A Solid-State Disk (SSD) is a data storage device that emulates a hard disk drive (HDD). There are no moving parts to an SSD. Information is stored in microchips. A typical SSD uses NAND-based flash memory. SSD are entirely different from hard disk drives(HDD). Read/write bandwidth of SSDs is higher than that of HDD. SSD have no seek time since they have no moving parts such as arms and spinning platters. Provide higher durability against shock, vibration and operating temperature. SSD consume less power than HDD. Faster start up. Extremely low read latency. The performance does not depends on the location of data.
It is a non volatile semi conductor device. It is organized into blocks where each block consists of a fixed number of pages. Page unit of read and write operation. Each page stores data and corresponding metadata and ECC(Error Correction Code) information. Latency of read and write operation is asymmetric. Does not allow in place update.
Main control software in SSD. Hides the complexity of flash. Maps Logical Block Addresses(LBA) from the host to physical addresses in flash memory. Garbage collection, a process that erases dirty blocks and recycles these pages.
Performance Parameters in SSD
SSDs have different performance parameters compared with HDD. For example, unit size of read/write operation in SSD is clustered page size and in HDD, it is the sector size. Actual value of parameter will depend on type of NAND flash memory and internal architecture of SSD. Main performance parameters are
- Clustered page
- Clustered block
- Size of read buffer
- Size of write buffer
Measuring the clustered page size
The unit of read and write operations inside SSD. Adjusting the size of data transfer to the clustered page size, can enhance the I/O performance, since the FTL does not need to read or write more data than requested. Micro benchmark exploits the difference in write latency depending on whether the write request is aligned to the clustered page boundary or not.
Measuring the clustered block size
It is the unit of erase operation. if there are many random writes whose sizes are smaller than the clustered block size, the write bandwidth will suffer from the overheads of copying valid pages. Micro benchmark exploits the difference in write bandwidth between sequential and random writes. As the request size approaches to the clustered block size, the gap between the bandwidth of sequential writes and that of random writes will become smaller.
Measuring the read buffer capacity
Measured to improve the read performance. if the size of the read request is larger than the size of the read buffer, then the data has to be read directly from NAND flash memory. Uses two benchmarks, measure the latency of read requests served from the read buffer and to measure the latency of read requests which are served from NAND flash memory directly
Measuring the write buffer capacity
Measured to enhance the write performance by temporarily storing the updated data into the DRAM buffer. When the size of write requests exceeds the write buffer size, some of data should be flushed into NAND flash memory. Uses 2 micro benchmarks, measures the time taken to write data into the write buffer and to measure the time to write the requested data to NAND flash memory
Optimizing Linux generic block layer
Merges consecutive requests from the file system. Increasing the request size hurts the response times for individual requests and consume more memory buffer cache resources. Propose two designs, Parameter aware splitting (PAS) and Parameter aware splitting and aligning (PASA)
We are proposing a new methodology that can extract several parameters SSDs and apply them to two components of a Linux operating system to improve the bandwidth of SSD. By optimizing the OS components with the extracted parameters, the write bandwidths for postmark and file bench improved by up to 24 percent and 321 percent, respectively. Understanding of the internal parameters of SSDs help to model SSD systems more accurately for system studies. This study shows that even a limited information of SSD internals can improve file system performance significantly for certain cases.