  NAND flash-based Solid State Drives (SSDs), which are widely used from
embedded systems to enterprise servers, are enhancing performance by exploiting
the parallelism of NAND flash memories. To cope with the performance
improvement of SSDs, storage systems have rapidly adopted the host interface
for SSDs from Serial-ATA, which is used for existing hard disk drives, to
high-speed PCI express. Since NAND flash memory does not allow in-place
updates, it requires special software called Flash Translation Layer (FTL), and
SSDs are equipped with embedded processors to run FTL. Existing SSDs increase
the clock frequency of embedded processors or increase the number of embedded
processors in order to prevent FTL from acting as bottleneck of SSD
performance, but these approaches are not scalable. This paper proposes a
hardware-automated Flash Map Management Unit, called FMMU, that handles the
address translation process dominating the execution time of the FTL by
hardware automation. FMMU provides methods for exploiting the parallelism of
flash memory by processing outstanding requests in a non-blocking manner while
reducing the number of flash operations. The experimental results show that the
FMMU reduces the FTL execution time in the map cache hit case and the miss case
by 44% and 37%, respectively, compared with the existing software-based
approach operating in 4-core. FMMU also prevents FTL from acting as a
performance bottleneck for up to 32-channel, 8-way SSD using PCIe 3.0 x32 host
interface.
