Kioxia today introduced software-enabled flash (SEF), a radical development in solid state storage management that gives users the ability to optimise for specific workloads using flash ‘personalities’.
Currently, the standard SSD controller assumption is that one-size-fits-all, apart from relatively crude read- or write-optimisations for specific products. Kioxia overturns this with a software-defined flash controller that enables dynamically reconfigurable flash at the SDD level or – for hyperscalers – the build-it-yourself flash storage pool.
Eric Ries, SVP, memory storage strategy division at KIOXIA America, said in a statement: “Our customers have been pushing for the ability to drive operational efficiency in the data centre programmatically, and SEF technology will meet this need by placing access and control of flash directly in the hands of hyperscale programmers.”
SEF virtualizes the dies and enables the operator to dynamically control how flash is optimised across thousands of dies to match it to specific workload needs. For instance, hyperscalers can gain better latency control, with host software managing tasks on the SSD through API access. This means background activities will not hinder latency-sensitive work.
As workload requirements change, a hyperscaler or large enterprise could reconfigure a population of SSDs and their dies to provide more performance and cost efficient use for the new workload.
The SEF and API scheme also means that host software can be used to manage the NAND dies across flash generation changes.
The controller or SEF unit hardware is a system-on-chip (SoC) unit with a micro-controller and flash dies mounted on a printed circuit board.
The SoC has a PCIe interface. Sub-units handle NAND block and page programming of timing, read tasks with error correction, cell health, defect management, and endurance extension algorithms. A DRAM controller sub-unit enables the optional addition of DRAM.
The SEF SoC sub-divides the NAND dies under its control into sub-domains or ‘virtual devices’. Each virtual device can have different characteristics such as quality of service arrangements and their own personality. These could include block device, Zoned Names Spaces, TRocksDB, Firecracker or a custom hyperscale flash translation layer (FTL). The host can control data placement using the virtual devices.
The virtual devices are dynamically reconfigurable through API access. Some or all of these personalities can operate in parallel on the same SSD, with the SEF software isolating the virtual device domains from each other. This capability may seem more useful as SSD capacities rise. The API code is open source and gives access to the full capacity of the NAND dies.
Check out a Kioxia technical introduction to its software-defined flash controller and API.