SSDs Are Differentiated by Software
by Hu Yoshida on Jul 30, 2013
Unlike Hard Disk Drives (HDDs) that are defined by the hardware; spindle motors, actuator arms, servo mechanisms, and spin coated disks, Solid State Drives (SSDs) are differentiated by the software. Once you define a bit density and rotation speed, HDDs are pretty much the same, no matter which vendor you buy them from. The only difference might be in the cost of the manufacturing and packaging, which is determined by the market that they are targeting, consumer or enterprise. With a durability of 1018, HDDs essentially last forever and are only replaced when the maintenance and facilities costs exceed the cost of buying denser lower costs drives, or the storage array which houses the HDDs needs to be refreshed from a technology or capitalization perspective.
SSDs are much different and are thought to be simpler since they have no moving parts. Unfortunately SSDs require a lot of software and processing power to optimize performance, capacity and durability. The base hardware in an SSD is the Dual Interface Memory Module (DIMM), which houses the flash chips. The rest is all about the software, the processors that run the software, and the busses. SSDs are differentiated by how much power and bandwidth the vendors put into them.
Flash memory can be read or programmed a byte at a time in a random access fashion, but it can only be erased a “block” at a time. Erasing a block sets all bits to 1. Starting with a freshly erased block, any location in the block can be programmed. Once a bit has been set to zero, erasing the whole block is the only way to reset it. Reading and writing to flash is done in pages within a block. If a page is updated it has to be written to a new location in the block or another formatted block and the space for the old page is marked invalid. Unlike writing to HDDs where you write the record once, writes are amplified by the need to copy valid pages to new blocks while the old block is formatted to recover the use of invalidated pages.
Reformatting blocks is referred to as housekeeping. During housekeeping the processing may interfere with access to the data. Some SSDs experience a “write cliff” where the write performance seems to fall off the cliff when housekeeping occurs.
While flash is considered to be non-volatile, (it can retain electronic bits with out power) the non-volatility of a cell degrades with every write/format. Electrons are also leaking over time and electrons get pushed out when voltages are applied to read the page. This means that error correction codes must be applied to read a degrading page. The longer the error correction code the less frequently the pages have to be refreshed or rewritten. However, longer error correction codes require more processing power.
The number of write/formats for Multi-Level Cell (MLC) Ffash is about 103, which is nothing, compared to HDDs 1018. In order to extend the life of an SSD, SSDs have 25% to 30% spare cells and use wear leveling. Another way to extend the life is to reduce the number of times we write data. This can be done by buffering small writes together, extending the error correction code to reduce the need to refresh pages, compression of zeros, and logical to physical mapping to optimize the placement of pages.
Hitachi Data Systems designed our own controller for flash memory, with enough processing power and multi-pathing to eliminate the performance impact of housekeeping, ECC processing, compression, formatting, and physical to logical mapping. This also enabled the building of a larger capacity flash module starting with 1.6 TB going to 3.2 TB this year and 6.4 TB next year.
While these improvements needed to be made to the SSD itself (Hitachi calls our device Hitachi Accelerated Flash (HAF)), additional improvements had to be made to the storage array controller that houses the HAF modules to realize the full benefit of flash technology. More than 30 fundamental software changes were made to the microcode of our enterprise storage controllers to turbo charge performance with flash. This included new express I/O processing, new cache slot allocation methods, and reducing microcode overhead and path lengths. With these changes we have seen up to 65% reduction in response time and up tot 4x Random I/O scalability. These improvements can be easily seen with the microsecond performance of flash but will have little impact on the millisecond range of performance on HDDs. In addition to these performance improvements, all the enterprise functions of the storage controller like dynamic tiering can be used to improve the cost benefit of combining HAF with HDD technologies. These storage array controllers include VSP and HUS VM to date and will be extended to HUS in the near future.
The combination of HAF and VSP recently completed the SPC-1 benchmark and the results can be found on their website.
When compared to a VSP with 15K HDDs we saw:
– Greater Productivity: Sustain significantly more business transactions, up to 223 percent, compared to Hitachi VSP with all 15KRPM SAS hard disk drives (HDD)
– Increased Efficiency and Application Performance: Up to 88 percent reduction in application response times compared to Hitachi VSP with all-HDD, allowing support for more users and applications
– Lower Environmental Cost: Up to 98 percent reduction in drive footprint compared to Hitachi VSP with all-HDD
– Lower Price-Performance: Up to 65 percent lower price-performance compared to Hitachi VSP with all-HDD
Given these results, it is clear that flash can drive differentiated storage system performance. What may have been less obvious but just as critical is that SSDs are differentiated by software in the SSD device like HAF and in the storage array, Hitachi VSP and HUS VM.