Skip to content
Ivan Picoli edited this page Aug 20, 2019 · 36 revisions

Table of Contents:

1.1. Introduction (OX v1.4)

1.2. Introduction (OX v2.6)

2. Open-Channel SSDs
Figure 1. Solid-State Drive Geometry

3. LightNVM
Figure 2. LightNVM Ecosystem (Matias Bjørling, 2016)

4. OX Controller
Figure 3. OX Controller Layers

4.1. OX Layers in the C code

4.2. The raw FTL (lnvm_ftl): NVMe to MMGR Translation
Figure 4. NVMe to MMGR I/O Translation
Table 1. nvm_io_cmd Fields
Table 2. nvm_mmgr_io_cmd Fields

4.3. DFC Implementation
Table 3. Latest DFC firmware tested with OX

4.4. I/O Command Flow
Figure 5. OX I/O Command Flow

4.5. DFC OX Installation

4.6. OX Command Line
Start and Debug
Admin
Tests

5. OX Layer Registration

6. OX Logs

7. AppNVM: A Framework for Application-specific FTLs

7.1. OX-Block: The AppNVM full-fledged FTL
7.1.1. Overview
Figure 6: FTL Global View

7.1.2. Bad Block Table (Module 1)
Figure 7: Bad Block Table layout

7.1.3. Block Metadata (Module 2)
Figure 8: Block Metadata layout

7.1.4. Provisioning (Modules 3 and 4)
Figure 9: Channel Provisioning design
Figure 10: Global Provisioning design

7.1.5. Logical to physical mapping (Modules 5 and 6)
Figure 11: Mapping Strategy

7.1.6. Back-end PPA I/O (Module 7)
Figure 12: Read LPIO command flow

7.1.7. Front-end LBA I/O (Module 8)
Figure 13: Read and write path at the front-end

7.1.8. Garbage collection (GC) (Module 9)
Figure 14: Channel-based GC strategy

7.1.9. GC configuration

Clone this wiki locally