Software-Defined Flash: Tradeoffs of FTL, Open-Channel, and Cooperative Flash Management

Library Content Type:
Publish Date: 
Wednesday, September 21, 2016
Event Name: 
Focus Areas:

Systems can now utilize Software-Defined Flash to employ different levels of abstraction for processes such as garbage collection, wear leveling and error handling. SSDs have traditionally provided a complete abstraction of these processes in the FTL at the device level, while Software-Defined Flash exposes these processes with variable degrees of control and abstraction.

This type of system-driven approach enables host file systems, block virtualization layers, and key value stores to control the granularity of segment stripe sizes, timing of garbage collection processes, hot/cold separation, and physical data layout. This synchronization of processes and more efficient abstractions extract superior latency, determinism (QoS), and bandwidth from the Flash storage while reducing write amplification (wear out) and over provisioning. But obtaining these efficiencies has tradeoffs with respect to integration efforts, host resource consumption and scalability. The right Software-Defined Flash approach can range from an application-specific host FTL, to No-FTL, or hybrid implementation that distributes functionality between the host and the device.

Learning Objectives

Contrasting Software-Defined Flash to traditional FTL implementations
Examining flexible segment size configuration and deterministic versus asynchronous process control
Contrasting L2P address translation implementations between host FTL and No-FTL approaches
Full stack architectural overviews of Open-Channel and Cooperative Flash Management

Watch video: