-
Notifications
You must be signed in to change notification settings - Fork 12
2. Open Channel SSDs
SSDs are composed of tens of flash chips wired in parallel to a controller through channels. Flash memory is organized as shown in Figure 1. An embedded FTL abstracts the non-volatile memory and exposes a flat address space to the host. This arbitration shields the host from dealing with physical media.

Open-channel SSDs expose their media geometry to the host and allow applications to decide how to place and manage data across flash chips, dies, blocks, and pages. FTL responsibilities such as wear-leveling (WL), logical to physical mapping (L2P), garbage collection (GC), bad block management (BB), recovery (REC), among others, may be implemented on the host side or kept within the device controller. These decisions depend on the application needs and will result on different generations of Open-Channel SSDs. Open-Channel SSDs implement the PPA I/O interface. Please refer to Open-Channel SSDs for further details.
This was the first generation of open-channel SSDs. This is the specification that OX currently implements. Future versions of OX are expected to implemented later versions of open-channel SSDs.
PPA format: [channel,LUN,block,plane,page,sector]
In this generation, a few functionalities previously implemented by the host are back to the device controller. An example is the metadata related to physical blocks and the bad block table.
PPA format: [group,punit,chunk,sector]
This is the latest generation, which encapsulates even more functionalities in its controller. An example is the write pointer of each physical blocks that is now handled by the ZNS SSD. These devices also implement the "append" function in each of its zones.
PPA format: To be defined
Created by Ivan L. Picoli
Home
1.1 Introduction (OX v1.4)
1.2 Introduction (OX v2.x)
2. Open Channel SSDs
3. LightNVM
4. OX Controller
4.1. OX Libraries (OX v2.x)
4.2. The LNVM FTL (OX v1.4)
4.3. DFC Implementation
4.4. I/O Flow (OX v1.4)
4.5. OX Installation
5.1. OX Commands (OX v1.4)
5.2. OX Commands (OX v2.x)
6. OX Logs
7. OX-App: A Framework for Application-specific FTLs
7.1. OX-Block: The AppNVM full-fledged FTL
7.1.1. Overview
7.1.2. Bad Block Table
7.1.3. Block Metadata
7.1.4. Provisioning
7.1.5. Logical/physical mapping
7.1.6. Back-end PPA I/O
7.1.7. Front-end LBA I/O
7.1.8. Garbage collection
7.1.9. GC configuration