When it comes down to it, the problem that is posed by the bandwidth gap between the Common Flash Memory Interface (CFI) bus and the PCI Express (PCIe) bus is not dissimilar to that which has happened with other technology inflections. The difference with this inflection point is that it is further amplified by the rapidly growing capacity of today’s SSDs. This is an issue that NGD Systems highlighted this issue in a video that we launched on our website with the introduction of our next-generation Newport Computational Storage Platform. With SSD capacities at 16TB today, going soon to 32TB in the U.2 form factor, and even greater densities in form factors such as the Enterprise/Datacenter Small Form Factor (EDSFF) SSD, the ability to move the entirety of an SSD‘s data to a server’s memory complex becomes problematic. It would take nearly 35 minutes to move the contents of a 16TB SSD across 4-lane PCIe Gen4 interface (twice as long on a 4-lane PCIe Gen3 interface!).
Now think about moving a petabyte of this data (the contents of sixty-four 16GB SSDs), even across multiple PCIe interfaces! Clearly, one way to avoid the amount of time it takes to move lots of data is to cut down the amount of data needing to be moved. While many solutions such as databases have utilized the concept of scanning and indexing data before it is placed into storage devices, once the data is inside the storage device it cannot be processed further without moving it back to a server. Since computational storage enables processing of data by moving the processor into the storage device (typically in the flash controller), data can be processed at any time. This capability is known as in-situ processing.
Computational storage fits best with problems where significant portions of the application workload are parallel in nature. Some examples include those where:
- The application performs matching across objects or vectors;
- The data needs to be indexed with multiple indices that may change over time; or
- Data needs to remain encrypted and/or compressed, even when being stored.
These are the types of operations that computational storage, and the types of processors and accelerators used in computational storage, do well. When used as part of an overall solution, computational storage can significantly improve overall processing times, while at the same time reducing both the solution footprint and energy consumed.