How to accurately measure performance in embedded storage systems
When deciding which solid-state drives (SSDs) to specify for a certain system or product, it would be customary to delve into the spec sheets and select the one with the best stated performance. But is this the performance that you can expect to achieve over the lifetime of the drive? As we all know, the answer to that is no.
When manufacturers quote figures for the performance of flash memory, these do not necessarily tell the whole story. Traditionally, a single figure is quoted that measures how the drive will perform under optimum conditions. This is quoted as a function of the amount of data read in a given amount of time. This figure is often used to compare devices, but it is not a true test of their performance over time.
First, there is a big difference between read and write values, and performance can also be affected by the randomness of allocated units. But crucially, unlike hard drives, SSD performance deteriorates over its lifetime as it is constantly rewritten with new data.
Fresh out of the box
The figures quoted for performance are referred to as fresh out of the box (FOB). This state refers to the performance of a drive when all the cells are unused – in this condition, the write performance of the drive will be at its peak for both sequential and random operations. However, this state is only temporary – it will deteriorate almost immediately, and the drive will never again reach the stated FOB performance.
It is a common mistake to assume that the speed is consistent over the life of a drive, but that is not the case. Over time, because of the effects of fragmentation, garbage collection and wear leveling, the performance will taper off. The speed of this deterioration will depend on how much of its memory capacity is used and the frequency of erasing and rewriting.
Not so Flash
The way that SSDs work differs from traditional hard drives. When it needs to write a file, the SSD searches for an empty block and saves the data. If the blocks still contain data it must either be moved, if it is still required, or deleted if it is invalid or old data. SSDs can only write data to 4KB or 8KB pages that are contained within a 256KB block, and because of this restriction blocks are not often filled. One major drawback with SSDs is that they cannot use any spare space in the block to store new data, as that process would damage any data on the other pages.
Therefore, as the drive continues to be used it will eventually run out of empty blocks, even though there will be vacant space within these blocks.
SSDs overcome this with a process dubbed “garbage collection.” This process moves existing data to new locations that allows existing unwanted data to be erased. This constant reorganization and movement of data slows the performance of the drive. This drop-off in performance is a greater problem for random writing operations, because sequential writes usually leave fewer blocks of free space.
This difference between FOB and normal-use performance can be a problem for designers when specifying memory. Therefore, when it comes to gaining a meaningful measurement of a drive’s performance, the tests should be undertaken after each page of memory has been written at least once.
Controlling performance
An important way of improving the performance of a flash device is the controller that is responsible for wear leveling, error correction and garbage collection. Most manufacturers focus on reliability – correcting errors and improving write cycles – but SSD controller technology can also be used to improve performance. A significant consideration is the amount of intelligence that is built into the controller. Its main contribution to performance comes from its ability to ensure that writes are effectively planned, especially when it comes to garbage collection.
NAND flash memory storage applications require a controller to communicate and manage data transactions between the host interface and NAND flash arrays, and the selection of this controller is vital in ensuring that data is handled and managed reliably. We support many different NAND flash memory storage applications within the common understanding of SSDs. Focusing on embedded technologies, reliability and endurance, as well as our superior wear leveling and advanced ECC methodologies, guarantees our SSD controller solutions are successfully embedded in a range of global applications.
Living with loss
When specifying an SSD it is crucial that loss of performance is factored into any system. It can be mitigated by ensuring that a full specification is obtained for any drive with the performance measured in normal-use conditions. An alternative option from some manufacturers is to supply extra storage that is not available to the user. Finally, ensure that a controller is chosen that can optimize the performance of the drive under the working conditions in which it will operate.