Application-Specific SSD
On August 9, 2011, Flash Memory Summit, Santa Clara, CA—Eric Kao, CEO of Memoright Corporation talked about application-specific SSDs. In general, storage is not recognized as a malleable function, but the firmware can change the personality of the drive.
An HDD has fixed segments and some parameters which can change to hardware and software modifications for application tuning, but there’s only a limited range of parameters to adjust. SSDs on the other hand can address a wider range of performance because each one is equivalent of an array of drive with hundreds of flash chips each capable of being fashioned as an individual drive.
The controller and for more work to make the flash as busy as possible. SSD controllers are complex because they have to manage the transition between/nature and SSD drive performance. These issues are made more difficult because flash can operate as a random access device for a read, but must perform a block erase before a write. The firmware and has to find a clean block or find a block to erase before moving data in for a write.
These requirements determine operating criteria and trade-offs within an SSD. For example, video functions must access video at about 40 Mb per second but the accompanying audio is running in hundreds of kilobytes. Therefore data locality must be high and you want intact, contiguous blocks for the data. One approach would be to establish block mapping with vertical rights to minimize write amplitude and frequency and achieve relatively constant speed. In this application, SSDs might have a wider latency distribution than HDDs and might therefore be slower overall.
A RAID array will have a range of relatively random 4K to 256K IOPS. This application calls for narrow latency spread with high reliability and endurance being key criteria. Therefore a good strategy would be to define the problem space for worst-case performance and trade capacity for better overall performance.
The linear drives are working with large blocks, so the firmware can do chip level redundancy in their spare time. PCs have varying payloads and work with 4K or 8K sectors. These characteristics will be shared by tablets in the future and optimization will be between random write for scratch pad purposes and sequential writes for media.
All of these functions require some type of enhanced data robustness for a number of reasons. The bit error rates vary between SLC, MLC, and TLC and increases for all technologies with the number of page erase cycles. One technique to improve bit error rate is to use some type of error correction coding to correct and detect errors in the data. The problem is that ECC uses additional memory which is also subject to bit errors.
Flash is always trading between programming time and number of page erase cycles. As a result, optimization requires knowledge of data patterns for the SSDs. Over provisioning of drives is a function of the performance requirements, so a single drive for user has extremely low over provisioning compared to a RAID array. As there is no agreement on whether file systems should fit storage or vice versa, storage requirements are measured relative to the tolerance of the user and the operating system.


