Exploring Design Challenges in Getting Solid State Drives Closer to CPU

The PCI Express Solid State Drives (PCIe SSDs) blur the difference between block and memory access semantic devices. Since these SSDs leverage PCIe bus as their storage interface, their interfaces are different from conventional memory system interconnects, as well as from standard storage interfaces. This leads to a new SSD architecture and storage software stack design. Unfortunately, there are not ample studies focusing on the system-level characteristics and the power consumption behaviors behind these emerging PCIe SSD platforms. In this paper, we quantitatively analyze the challenges faced by PCIe SSDs in getting flash memory closer to CPU, and study two representative PCIe SSD architectures (from-scratch SSD and bridge-based SSD) using state-of-the-art real SSDs with our in-house resource analyzer and dynamic evaluation platform. Our experimental analysis reveals that 1) while the from-scratch SSD approach offers remarkable performance improvements, it requires enormous host-side memory and computational resources; 2) the performance of the from-scratch SSD significantly degrades in a multi-core system; 3) bridge-based SSD architecture has a potential to improve performance by co-optimizing their flash software and controllers; 4) PCIe SSDs' latencies significantly degrade with their storage-level queueing mechanism; 5) tested PCIe SSDs consume 200 $\sim$ 500 percent more dynamic power than a conventional SSD; and 6) the power consumption increases by 33 percent, on average, when PCIe SSDs suffer from the performance drops caused by garbage collections. While our analytical study using the commercially available PCIe SSD products can include technical conjecture and inference, the findings and the empirical evidences present many design challenges that the future architecture and software stack probably need to address.

[1]  Tei-Wei Kuo,et al.  Real-time garbage collection for flash-memory storage systems of real-time embedded systems , 2004, TECS.

[2]  Euiseong Seo,et al.  Empirical Analysis on Energy Efficiency of Flash-based SSDs , 2008, HotPower.

[3]  Paul H. Siegel,et al.  Characterizing flash memory: Anomalies, observations, and applications , 2009, 2009 42nd Annual IEEE/ACM International Symposium on Microarchitecture (MICRO).

[4]  Evangelos Eleftheriou,et al.  Write amplification analysis in flash-based solid state drives , 2009, SYSTOR '09.

[5]  Andrea C. Arpaci-Dusseau,et al.  Removing the Costs of Indirection in Flash-based SSDs with Nameless Writes , 2010, HotStorage.

[6]  David Flynn,et al.  DFS: A file system for virtualized flash storage , 2010, TOS.

[7]  Peter Desnoyers,et al.  Write Endurance in Flash Drives: Measurements and Analysis , 2010, FAST.

[8]  Marcelo Yuffe,et al.  A fully integrated multi-CPU, GPU and memory controller 32nm processor , 2011, 2011 IEEE International Solid-State Circuits Conference.

[9]  Yiqi Xu De-indirection for Flash-based SSDs with , 2012 .

[10]  Mahmut T. Kandemir,et al.  An Evaluation of Different Page Allocation Strategies on High-Speed SSDs , 2012, HotStorage.

[11]  Mahmut Kandemir,et al.  Middleware - firmware cooperation for high-speed solid state drives , 2012, Middleware '12.

[12]  Mahmut T. Kandemir,et al.  Revisiting widely held SSD expectations and rethinking system-level implications , 2013, SIGMETRICS '13.

[13]  Mahmut T. Kandemir,et al.  Challenges in Getting Flash Drives Closer to CPU , 2013, HotStorage.

[14]  Ming Zhao,et al.  Write policies for host-side flash caches , 2013, FAST.

[15]  Steven Swanson,et al.  Refactor, Reduce, Recycle: Restructuring the I/O Stack for the Future of Storage , 2013, Computer.

[16]  Mahmut T. Kandemir,et al.  HIOS: A host interface I/O scheduler for Solid State Disks , 2014, 2014 ACM/IEEE 41st International Symposium on Computer Architecture (ISCA).

[17]  Isabella Stilkerich,et al.  Cooperative Memory Management in Safety-Critical Embedded Systems , 2016 .