Abstract
Non-volatile memory technologies, such as NAND flash memory, have
improved storage system performance, reliability, durability, and cost. Due to their
speed and density, solid-state devices (SSDs) that are based on flash memory are being
used as workstations, desktops, and laptops. Despite offering superior performance,
stress resistance, and energy economy as compared to mechanical hard drives, NAND
flash memory has unique features and operating limits and cannot be employed as a
perfect block device. The design of SSDs has developed over time to make use of the
benefits offered by flash memory while, at the same time, hiding their drawbacks. SSD
concurrency techniques make use of the available parallelism of flash memories. This
chapter thoroughly examines SSD subjects, ranging from the physical features of a
flash memory cell to the design of SSDs themselves. The subjects pertaining to the
flash translation layer (FTL) are described within the context of interconnected systemlevel operations. These operations include garbage collection, wear-leveling, address
mapping and bad block management. This chapter also provides a review of the most
current SSD-related studies.