In this paper, we present a flash solid-state drive (SSD) optimization that provides hints of SSD internal behaviors, such as device I/O time and buffer activities, to the OS in order to mitigate the impact of I/O completion scheduling delays. The hints enable the OS to make reliable latency predictions of each I/O request so that the OS can make accurate scheduling decisions when to yield or block (busy wait) the CPU, ultimately improving user-perceived I/O performance. This was achieved by implementing latency predictors supported with an SSD I/O behavior tracker within the SSD that tracks I/O behavior at the level of internal resources, such as DRAM buffers or NAND chips. Evaluations with an SSD prototype based on a Xilinx Zynq-7000 FPGA and MLC flash chips showed that our optimizations enabled the OS to mask the scheduling delays without severely impacting system parallelism compared to prior I/O completion methods.
[1]
David J. Lilja,et al.
High performance solid state storage under Linux
,
2010,
2010 IEEE 26th Symposium on Mass Storage Systems and Technologies (MSST).
[2]
Frank Hady,et al.
When poll is better than interrupt
,
2012,
FAST.
[3]
Arun Jagatheesan,et al.
Understanding the Impact of Emerging Non-Volatile Memories on High-Performance, IO-Intensive Computing
,
2010,
2010 ACM/IEEE International Conference for High Performance Computing, Networking, Storage and Analysis.
[4]
Timothy Roscoe,et al.
Arrakis
,
2014,
OSDI.
[5]
Steven Swanson,et al.
Providing safe, user space access to fast, solid state disks
,
2012,
ASPLOS XVII.
[6]
Bryan Veal,et al.
Towards SSD-Ready Enterprise Platforms
,
2010,
ADMS@VLDB.