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] [2] 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 access open-channel solid state drives is called LightNVM. [3] [4] [5]
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:
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. [6]
Open Channel SSDs provide more flexibility with regard to data placement decisions, overprovisioning, scheduling, garbage collection and wear leveling. [7] Open-Channel SSDs can, however, not be considered a uniform class of devices, as critical device characteristics such as minimum unit of read and minimum unit of write varies from device to device. [8] One can therefore not design an FTL that automatically works on all Open-Channel SSDs.
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. [9]
File Systems for Open-Channel SSDs With open-channel SSDs, the L2P mapping can be directly integrated or merged with storage management in file systems. [10] This avoids the redundancy between system software and SSD firmware, and thus improves performance and endurance. Further, open-channel SSDs enables more flexible control over flash memory. The internal parallelism is exploited by coordinating the data layout, garbage collection and request scheduling of both system software and SSD firmware to remove the conflicts, and thus improves and smooths the performance. [11]
In computing, firmware is software that provides low-level control of computing device hardware. For a relatively simple device, firmware may perform all control, monitoring and data manipulation functionality. For a more complex device, firmware may provide relatively low-level control as well as hardware abstraction services to higher-level software such as an operating system.
Flash memory is an electronic non-volatile computer memory storage medium that can be electrically erased and reprogrammed. The two main types of flash memory, NOR flash and NAND flash, are named for the NOR and NAND logic gates. Both use the same cell design, consisting of floating gate MOSFETs. They differ at the circuit level depending on whether the state of the bit line or word lines is pulled high or low: in NAND flash, the relationship between the bit line and the word lines resembles a NAND gate; in NOR flash, it resembles a NOR gate.
In computing, Native Command Queuing (NCQ) is an extension of the Serial ATA protocol allowing hard disk drives to internally optimize the order in which received read and write commands are executed. This can reduce the amount of unnecessary drive head movement, resulting in increased performance for workloads where multiple simultaneous read/write requests are outstanding, most often occurring in server-type applications.
In computing, a hybrid drive is a logical or physical storage device that combines a faster storage medium such as solid-state drive (SSD) with a higher-capacity hard disk drive (HDD). The intent is adding some of the speed of SSDs to the cost-effective storage capacity of traditional HDDs. The purpose of the SSD in a hybrid drive is to act as a cache for the data stored on the HDD, improving the overall performance by keeping copies of the most frequently used data on the faster SSD drive.
Das U-Boot is an open-source boot loader used in embedded devices to perform various low-level hardware initialization tasks and boot the device's operating system kernel. It is available for a number of computer architectures, including M68000, ARM, Blackfin, MicroBlaze, IBM S360, My66, MOS 6502, ARM64, MIPS, Nios, SuperH, PPC, RISC-V and x86.
A solid-state drive (SSD) is a solid-state storage device. It provides persistent data storage using no moving parts. It is sometimes called semiconductor storage device or solid-state device. It is also called solid-state disk because it is frequently interfaced to a host system in the same manner as a hard disk drive (HDD).
In computer storage, a disk buffer is the embedded memory in a hard disk drive (HDD) or solid-state drive (SSD) acting as a buffer between the rest of the computer and the physical hard disk platter or flash memory that is used for storage. Modern hard disk drives come with 8 to 256 MiB of such memory, and solid-state drives come with up to 4 GB of cache memory.
The Open NAND Flash Interface Working Group is a consortium of technology companies working to develop open standards for NAND flash memory and devices that communicate with them. The formation of ONFI was announced at the Intel Developer Forum in March 2006.
Universal Flash Storage (UFS) is a flash storage specification for digital cameras, mobile phones and consumer electronic devices. It was designed to bring higher data transfer speed and increased reliability to flash memory storage, while reducing market confusion and removing the need for different adapters for different types of cards. The standard encompasses both packages permanently attached (embedded) within a device (eUFS), and removable UFS memory cards.
Read-only memory (ROM) is a type of non-volatile memory used in computers and other electronic devices. Data stored in ROM cannot be electronically modified after the manufacture of the memory device. Read-only memory is useful for storing software that is rarely changed during the life of the system, also known as firmware. Software applications, such as video games, for programmable devices can be distributed as plug-in cartridges containing ROM.
A flash file system is a file system designed for storing files on flash memory–based storage devices. While flash file systems are closely related to file systems in general, they are optimized for the nature and characteristics of flash memory, and for use in particular operating systems.
A trim command allows an operating system to inform a solid-state drive (SSD) which blocks of data are no longer considered to be "in use" and therefore can be erased internally.
Write amplification (WA) is an undesirable phenomenon associated with flash memory and solid-state drives (SSDs) where the actual amount of information physically written to the storage media is a multiple of the logical amount intended to be written.
A flash memory controller manages data stored on flash memory and communicates with a computer or electronic device. Flash memory controllers can be designed for operating in low duty-cycle environments like memory cards, or other similar media for use in PDAs, mobile phones, etc. USB flash drives use flash memory controllers designed to communicate with personal computers through the USB port at a low duty-cycle. Flash controllers can also be designed for higher duty-cycle environments like solid-state drives (SSD) used as data storage for laptop computer systems up to mission-critical enterprise storage arrays.
The Intel X25-M was a line of Serial ATA interface solid-state drives developed by Intel for personal computers, announced in late 2008. The SSD was a multi-level-cell solid-state drive available in a 2.5" form factor, came in 80 GB and 160 GB capacities and utilized NAND flash memory on a 50 nm process. The second-generation SSD which was called the "X25-M G2". The X25-M G2 was also available in a 2.5" form factor and 80 GB and 160 GB capacities, but with NAND flash memory on a more efficient 34 nm process.
NVM Express (NVMe) or Non-Volatile Memory Host Controller Interface Specification (NVMHCIS) is an open, logical-device interface specification for accessing a computer's non-volatile storage media usually attached via the PCI Express bus. The initial NVM stands for non-volatile memory, which is often NAND flash memory that comes in several physical form factors, including solid-state drives (SSDs), PCIe add-in cards, and M.2 cards, the successor to mSATA cards. NVM Express, as a logical-device interface, has been designed to capitalize on the low latency and internal parallelism of solid-state storage devices.
Flashcache is a disk cache component for the Linux kernel, initially developed by Facebook since April 2010, and released as open source in 2011. Since January 2013, there is a fork of Flashcache, named EnhanceIO and developed by sTec, Inc. Since 2015 that fork became unmaintained and it was forked again and maintained by individuals.
dm-cache is a component of the Linux kernel's device mapper, which is a framework for mapping block devices onto higher-level virtual block devices. It allows one or more fast storage devices, such as flash-based solid-state drives (SSDs), to act as a cache for one or more slower storage devices such as hard disk drives (HDDs); this effectively creates hybrid volumes and provides secondary storage performance improvements.
Solid-state storage (SSS) is non-volatile computer storage that has no moving parts; it uses only electronic circuits. This solid-state design dramatically differs from the commonly-used competing technology of electromechanical magnetic storage which uses moving media coated with magnetic material. Generally, SSS is much faster but more expensive for the same amount of storage.
3D XPoint is a discontinued non-volatile memory (NVM) technology developed jointly by Intel and Micron Technology. It was announced in July 2015 and was available on the open market under the brand name Optane (Intel) from April 2017 to July 2022. Bit storage is based on a change of bulk resistance, in conjunction with a stackable cross-grid data access array. Initial prices are less than dynamic random-access memory (DRAM) but more than flash memory.