A solid-state drive commonly referred to as SSD is a storage device that makes use of integrated circuit assemblies for storing data persistently. SSDs typically use flash memory and it functions as the secondary storage in the hierarchy of computer storage. SSDs lack physical spinning discs like the hard disk drives or any movable read or write head like the floppy discs.
The form factors and protocols of the traditional hard disc such as the SATA and SAS can also be implemented for the SSDs when using it in computers and that makes the use of SSDs extremely simple.
However, there exist new form factors such as the M.2 form factor, and new protocols for input and output for example the NVM Express that have been developed for addressing the requirements of the flash memory technology that is used in SSD. The data in SSDs are stored in electrical charges that leak with passing time is left without any power. This contributes to the reason why these are not suitable devices for archiving because they start to lose the data after one or two years in storage.
THE NEED FOR PROGRAMMABLE SSD:
At present, there is a huge difference between the speed at which application and operating systems are developed and at which storage infrastructures are developed. When the application and operating systems are patched with new and improved functionality at a very Rapid rate the storage devices are neglected and are given no software updates throughout their hardware lifecycle of four to five years.
The data inside the storage software are written by the vendors and the developers cannot do anything to change the software because it is proprietary firmware and cannot be modified by any developer.
This causes the stuff with the storage device that has its functionality and capabilities bounded by the vendor. When we look at the cloud industry in which SSDs are widely implemented, A period of 5 years is a long time. To be struck up with storage that is un programmable for 5 years while other technologies advance at a fast pace is a great disadvantage to developers. This difference in speed in the evolution of the storage device may affect the innovative limits of the computing world.
This problem brings us to the need for a Programmable SSD. The Programmable SSD would be as agile and flexible as compared to the applications or operating systems that need storage devices. A Programmable SSD will provide us with many opportunities such as bridging the gap between the needs of any application and the limitations of the storage system.
DEVELOPMENT OF PROGRAMMABLE SSD:
The concept of SSD is having storage processing capabilities were proposed many years ago, but the experimentation on SSD programming. It has been very limited because of the unavailability of real hardware on which the prototype of Programmable SSD can be paid for demonstrating its potential. But the recent development of prototyping boards that are made available for both purposes of commerce and research developers the opportunity to put their ideas into action. One such prototype is the Dragon Fire Card (DFC). Dragon Fire Card was designed by Dell EMC and NXP for research. It is a card with very high capability and resources and is very flexible and powerful. It has two boats, the mainboard, and the storage board. The mainboard has a 16GB Ram and various on-chip hardware accelerators with an Armv8 processor.
The industry of SSD is rapidly moving towards bringing computation power to the SSD so that the data can be processed in the place where it is originally stored. Many developers and industries are working hard to establish a value proposition that is compelling for the demonstration of applications in areas of the Programmable SSD. In the beginning, the main focus is given to moving the computation power closer to the storage itself. This is going to be a great help in examining a large amount of data to uncover hidden patterns and insights in Big Data Analytics.
Big Data Analytics then can have data at a much greater bandwidth than the DRAM. Its latency is so low that it can be compared to accessing a non-volatile memory. If we talk about its use in cloud systems, then we can say that it will also save a lot of energy as the processor that would be present inside the SSD can be more energy-efficient as compared to the processor inside the host-server CPU. The data wouldn’t have to be sent over the network all the way to the host because processing the data and then sending it would be much more energy-efficient.
In this article, we discussed the vision of a fully Programmable storage device that will allow the developers to innovate the infrastructure for storage. At the speed of today’s technologies such as cloud computing just like the software application or any operating system. If we think of a highly converged infrastructure where all the storage networking and the computing process are tightly knitted in one place then the Programmable SSD can be a very good example. It will have a very low latency with very high throughput access while still providing complete availability. Bridging the gap between application and operating systems with the limitations of the storage device Can be done by this evolution in the conventional SSD.