Flash-memory cells are the core technology for solid state drives (SSD), and storage devices based on it (USB flash drives). However, before the information is recorded on a memory chip, it needs to go through several other SSD components. The basic SSD components are responsible for cell addressing, control, error correction and scaling.
In order to implement each of these functions, a combination of hardware, firmware and software techniques is used, and the development of each particular flash-memory drive requires a well-thought-out combination of them, in order to create a product balanced in terms of parameters.
These parameters include:
- Latency in data access
- Average read rate
- Average write rate
- Reformatting time (TRIM support)
Physical limitations and targets
- Design (form factor, PCB layout and available housings of components)
- Power consumption and heat dissipation
- Scaling (adding components, compaction of components, addition of submodules)
- Competitive basic price
- Competitive final price
- Fixed version (only one interface is possible)
- Version with different interfaces (e.g.: SATA and SAS)
- Version with multiple interfaces (e.g.: 1394/Firewire and USB)
Once a particular set of parameters is chosen for a particular SSD drive, the next step for a system architect is to study a wide range of tools to achieve these requirements. This involves development of various design solutions, repeated simulation of them, testing and comparison, before a final architecture version will be eventually selected for implementation. The final version of the architecture defines which part of each management function (addressing, control, error correction and scaling) will be implemented using hardware, firmware and software, both at the device level and at the software level on the host controller side.
Figure 2 shows the simplest implementation of this diagram. This device is very familiar to most people: it is a USB flash drive. In this case, up to two flash memory chips work in conjunction with a single controller. In this way, we get an elementary SSD drive. It is the controller’s firmware which is responsible for many functions, rather than some specialised (and faster) hardware components. For this type of device, the final price is the most important factor. This is why most of the functions are delegated to the software level of the controller and the host, rather than to the hardware component.