Open-channel SSD

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search

An open-channel solid state drive is a solid-state drive which does not have a firmware Flash Translation Layer implemented on the device, but instead leaves the management of the physical solid-state storage to the computer's operating system.[1] The Linux 4.4 kernel is an example of an operating system kernel that supports open-channel SSDs which follow the NVM Express specification. The interface used by the operating system to acces open-channel solid state drives is called LightNVM.[2][3][4]

NAND Flash Characteristics[edit]

Since SSDs use NAND flash memory for storing data, it is important to understand the characteristics of this medium. NAND flash provides a read/write/erase interface. A NAND package is organized into a hierarchy of dies, planes, blocks and pages. There may be one or several dies within a single physical package. A die allows a single I/O command to be executed at a time. A plane allows similar flash commands to be executed in parallel within a die. There are three fundamental programming constraints that apply to NAND: (i) a write command must always contain enough data to program one (or several) full flash page(s), (ii) writes must be sequential within a block, and (iii) an erase must be performed before a page within a block can be (re)written. The number of program/erase (PE) cycles is limited. Because of these constraints SSD controllers write data to NAND flash memory in another order than the logical block order. This implies that the SSD controller must maintain a mapping table from host (logical) to NAND (physical) addresses. This mapping is usually called the L2P table. The layer that performs the translation from logical to physical addresses is called the flash translation layer or FTL.[5]

Comparison with Traditional SSDs[edit]

Open Channel SSDs provide more flexibility with regard to data placement decisions, overprovisioning, scheduling, garbage collection and wear leveling.[6]

Traditional SSDs maintain the L2P table in DRAM on the SSD and use their own CPU for maintaining that L2P table. With Open Channel SSDs the L2P table is stored in host memory and the host CPU maintains that table. While the Open Channel SSD approach is more flexible, a significant amount of host memory and host CPU cycles is required for L2P management. With an average write size of 4 KB, almost 3 GB RAM is required for an SSD with a size of 1 TB.[7]

References[edit]

  1. ^ Matias Bjørling (March 12, 2015). "Open-Channel Solid State Drives" (PDF).
  2. ^ Corbet, Jonathan (22 April 2015). "Taking control of SSDs with LightNVM". Retrieved 3 February 2019.
  3. ^ Michael Larabel (15 November 2015). "A Look At The New Features Of The Linux 4.4 Kernel". Phoronix.
  4. ^ Michael Larabel (3 November 2015). "LightNVM Support Is Going Into Linux 4.4". Phoronix.
  5. ^ Bjørling, Matias; Gonzalez, Javier; Bonnet, Philippe (2017). LightNVM: The Linux Open-Channel SSD Subsystem (PDF). USENIX FAST. pp. 359–374.
  6. ^ Bjørling, Matias (12 March 2015). "Open-Channel Solid State Drives" (PDF). Retrieved 3 February 2019.
  7. ^ "Fusion ioMemory™ VSL® 3.2.15" (PDF). SanDisk, a Western Digital Brand. Retrieved 3 February 2019.