Eric Kao, Chairperson and CEO of MemoRight, spoke at the Flash Memory Summit today with a somewhat unusual keynote for this normally hardware-fixated audience. He suggested that the industry exploit the inherent parallelism inside of solid-state drives (SSDs) by writing application-specific firmware for the SSD’s internal Flash controller. In essence, he was advocating the development of application-specific SSDs, what he dubbed ASSSDs. Kao said that the hard-disk industry was already doing the same thing and he presented this chart showing the spectrum of available hard drives:
We can do the same with SSDs, said Kao, and then he gave five case studies showing various use models for SSDs that would require different firmware for each drive type.
- Video Editing – Video and associated audio has known data locality. Therefore, you want to stream the data into sequential blocks “as much as possible.” Appropriate block mapping and vertical writing will reduce write amplification.
- PC Applications – PC applications create data streams with a range of payload sizes. There are a lot of 4Kbyte and 8Kbyte accesses, driven by the way the operating systems have been written to work with hard drives.
- RAID Array – Read and write patterns for RAID arrays are almost purely random, reflecting the multitasking and multiuser nature of the RAID workload.
- Linear Drive (tape replacement) – Purely sequential writing. Data can be packaged into superblocks.
- Tablet PC – Lots of random writes, perhaps for scratchpad access by many concurrent applications. Lots of sequential writes likely due to media accesses. Might need two SSDs to optimize this type of load.
Kao’s discussion of application-specific SSDs is yet another example of how software and firmware can significantly change the way a product performs—a central EDA360 theme.