Host system software, e.g., file systems, block-level virtualization managers, or object/key value stores typically have comprehensive space managers, segment cleaners, and schedulers to intelligently manage storage media.
But this system software is not equipped to directly perform some of the unique processes required to manage Flash memory, and in particular Flash garbage collection. Symphonic provides the functionality to enable host system software to cooperatively perform this Flash management.
Symphonic followed a system-oriented approach that drove the architectural requirements:
- Leverage the host system’s intelligence, control and global perspective over workloads, data, prioritization, resources, and load balancing
- Avoid redundancies and overhead
- Realize the full potential of Flash memory while minimizing the modifications to the system’s current software stack
- Abstract geometry and vendor specific memory attributes to provide forward compatibility
- Ensure scalability and minimal consumption of host resources
- Minimize wear out and overprovisioning
- Provide a durable solution with data center class RAS functionality
As part of achieving the optimal system architecture, Symphonic redistributes functionality and responsibilities between the host system and SSD. Built on the premise of operating in host address space, Symphonic leverages the intelligent segment cleaning and macro scheduling that the host is already performing.
This enables the host to control and schedule processes such as garbage collection, but offloads process execution and lower level media management to the SSD. The Symphonic SSD retains many of the responsibilities of a conventional FTL SSD, in addition to including new functionality to support cooperative control and offload requirements.
The right amount of abstraction,
at the right level in the stack
Abstracting Flash at the right granularity leverages the host system’s extensive capabilities and provides the advantages of operating in host address space.
The Symphonic Address Configurator and Geometry Emulation abstract NAND constraints to minimize host modifications and hardware dependencies while obtaining optimal performance.
Because the SSD is in a superior position to manage NAND programming constraints, media properties and error handling, Symphonic firmware performs these functions along with offloading metadata generation and process execution.
Utilizing NAND memory for storage requires managing lower level, NAND-specific attributes and programming operations. If an existing host system attempted to access a raw NAND storage device directly, it would be unable to achieve the potential performance and efficiencies without significant modifications to the system software and become dependent on very specific SSD hardware.
Alternatively, FTLs provide such a heavy and redundant abstraction that the resulting inefficiencies prevent systems from realizing the potential performance and cost advantages from Flash storage.