Samsung today launched its SmartSSD, designed in collaboration with Xilinx that combines traditional NVMe based NAND storage with an FPGA accelerator. You’re looking at a regular enterprise SSD paired with Xilinx’s Kintex Ultrascale+ FPGA, and 4GB of DRAM for the latter.
The FPGA is primarily used to accelerate the bandwidth as well as for offloading compute-based workloads to the SSD, most notably compression and encryption. The SmartSSD CSD uses the FPGA as a PCIe switch, so the FPGA and SSD each appear as separate devices to the system. However, all PCIe traffic going to the SSD is first routed through the FPGA.
This isn’t of much use in a consumer PC, but in Data Centers and servers where you have several stacks of SSD, the CPU can run into an I/O bandwidth, failing to service all the drives simultaneously. The FPGA on each drive adds compute resources with each drive you add to the server, thereby reducing the load on the CPU, and also allowing the use of a higher number of PCIe devices.
On the software side, both Samsung and Xilinx have been working on their own solutions. Xilinx has been adding a library for storage accelerators for use with the SmartSSD CSD, as part of the Vitis libararies. Samsung, on the other hand, has worked with Bigstream to implement Apache Spark analytics acceleration.
At present, there’s only a 3.84TB variant available, but other storage sizes are also in the pipeline.