This Article 
   
 Share 
   
 Bibliographic References 
   
 Add to: 
 
Digg
Furl
Spurl
Blink
Simpy
Google
Del.icio.us
Y!MyWeb
 
 Search 
   
Ozone (O3): An Out-of-Order Flash Memory Controller Architecture
May 2011 (vol. 60 no. 5)
pp. 653-666
Eyee Hyun Nam, Seoul National University, Seoul
Bryan Suk Joon Kim, University of California, San Diego
Hyeonsang Eom, Seoul National University, Seoul
Sang Lyul Min, Seoul National University, Seoul
Ozone (O3) is a flash memory controller that increases the performance of a flash storage system by executing multiple flash operations out of order. In the O3 flash controller, data dependencies are the only ordering constraints on the execution of multiple flash operations. This allows O3 to exploit the multichip parallelism inherent in flash memory much more effectively than interleaving. The O3 controller also provides a prioritized handling of flash operations, equipping flash management software, such as the FTL (flash translation layer), with control knobs for managing flash operations of different time criticalities. Running a range of workloads on an FPGA implementation showed that the O3 flash controller achieves 3 to 100 percent more throughput than interleaving, with 46 to 88 percent lower response times.

[1] C.-G. Hwang , “Nanotechnology Enables a New Memory Growth Model,” Proc. IEEE, vol. 91, no. 11, pp. 1765-1771, Nov. 2003.
[2] G.E. Moore , “Cramming More Components onto Integrated Circuits,” Electronics, vol. 38, no. 8, pp. 114-117, Apr. 1965.
[3] Samsung Electronics, Datasheet: 1G x 8 Bit/2G x 8 Bit NAND flash memory, http://www.datasheetcatalog.org/datasheets2/ 121244179_1.pdf, Mar. 2005.
[4] E. Gal and S. Toledo , “Algorithms and Data Structures for Flash Memories,” ACM Computing Surveys, vol. 37, no. 2, pp. 138-163, 2005.
[5] L.M. Grupp , A.M. Caulfield , J. Coburn , S. Swanson , E. Yaakobi , P.H. Siegel , and J.K. Wolf , “Characterizing Flash Memory: Anomalies, Observations, and Applications,” Proc. 42nd Ann. IEEE/ACM Int'l Symp. Microarchitecture, 2009.
[6] ONFI, ONFI 2.3 Specification, http://onfi.orgspecifications/, Aug. 2010.
[7] R. Schuetz , O. HakJune , K. Jin-Ki , P. Hong-Beom , S.A. Przybylski , and P. Gillingham , “HyperLink NAND Flash Architecture for Mass Storage Applications,” Proc. 22nd IEEE Non-Volatile Semiconductor Memory Workshop, pp. 3-4, 2007.
[8] Samsung Electronics, Toggle DDR NAND Flash, http://www.samsung.com/global/business/semiconductor/ products/flashProducts_Toggle_DDR_NANDFlash.html , 2010.
[9] A. Kawaguchi , S. Nishioka , and H. Motoda , “A Flash-Memory Based File System,” Proc. USENIX Ann. Technical Conf., 1995.
[10] M. Wu and W. Zwaenepoel , “ENVy: A Non-Volatile, Main Memory Storage System,” Proc. Sixth Int'l Conf. Architectural Support for Programming Languages and Operating Systems, 1994.
[11] J. Kim , J.M. Kim , S.H. Noh , S.L. Min , and Y. Cho , “A Space-Efficient Flash Translation Layer for Compactflash Systems,” IEEE Trans. Consumer Electronics, vol. 48, no. 2, pp. 366-375, May 2002.
[12] A. Ban and R. Hasharon , “Flash File System Optimized for Page-Mode Flash Technologies,” United States Patent, no. 5,637,425, Aug. 1999.
[13] J.-U. Kang , H. Jo , J.-S. Kim , and J. Lee , “A Superblock-Based Flash Translation Layer for NAND Flash Memory,” Proc. Sixth ACM and IEEE Int'l Conf. Embedded Software, 2006.
[14] S.-W. Lee , D.-J. Park , T.-S. Chung , D.-H. Lee , S. Park , and H.-J. Song , “A Log Buffer-Based Flash Translation Layer Using Fully-Associative Sector Translation,” ACM Trans. Embedded Computing Systems, vol. 6, no. 3, July 2007.
[15] C.-H. Wu and T.-W. Kuo , “An Adaptive Two-Level Management for the Flash Translation Layer in Embedded Systems,” Proc. IEEE/ACM Int'l Conf. Computer-Aided Design, 2006.
[16] M. Rosenblum and J.K. Ousterhout , “The Design and Implementation of a Log-Structured File System,” ACM Trans. Computer Systems, vol. 10, no. 1, pp. 26-52, 1992.
[17] M.-L. Chiang , P.C.H. Lee , and R.-C. Chang , “Using Data Clustering to Improve Cleaning Performance for Flash Memory,” Software Practice and Experience, vol. 29, no. 3, pp. 267-290, 1999.
[18] A. Gupta , Y. Kim , and B. Urgaonkar , “DFTL: A Flash Translation Layer Employing Demand-Based Selective Caching of Page-Level Address Mappings,” Proc. 14th Int'l Conf. Architectural Support for Programming Languages and Operating Systems, 2009.
[19] L.-P. Chang and T.W. Kuo , “An Adaptive Striping Architecture for Flash Memory Storage Systems of Embedded Systems,” Proc. Eighth Real-Time and Embedded Technology and Applications Symp., 2002.
[20] C. Park , P. Talawar , D. Won , M. Jung , J. Im , S. Kim , and Y. Choi , “A High Performance Controller for NAND Flash-Based Solid State Disk (NSSD),” Proc. 21st IEEE Non-Volatile Semiconductor Memory Workshop, 2006.
[21] J.-U. Kang , J.-S. Kim , C. Park , H. Park , and J. Lee , “A Multi-Channel Architecture for High-Performance NAND Flash-Based Storage System,” J. Systems Architecture, vol. 53, no. 9, pp. 644-658, 2007.
[22] J.H. Yoon , E.H. Nam , Y.J. Seong , H. Kim , B.S. Kim , S.L. Min , and Y. Cho , “Chameleon: A High Performance Flash/FRAM Hybrid Solid State Disk Architecture,” IEEE Computer Architecture Letters, vol. 7, no. 1, pp. 17-20, Jan.-June 2008.
[23] Y.J. Seong , E.H. Nam , J.H. Yoon , H. Kim , J.-Y. Choi , S. Lee , Y.H. Bae , J. Lee , Y. Cho , and S.L. Min , “Hydra: A Block-Mapped Parallel Flash Memory Solid-State Disk Architecture,” IEEE Trans. Computers, vol. 59, no. 7, pp. 905-921, July 2010.
[24] A.M. Caulfield , L.M. Grupp , and S. Swanson , “Gordon: Using Flash Memory to Build Fast, Power-Efficient Clusters for Data-Intensive Applications,” Proc. Architectural Support for Programming Languages and Operating Systems, 2009.
[25] N. Agrawal , V. Prabhakaran , T. Wobber , J.D. Davis , M. Manasse , and R. Panigrahy , “Design Tradeoffs for SSD Performance,” Proc. USENIX Ann. Technical Conf., 2008.
[26] C. Dirik and B. Jacob , “The Performance of PC Solid-State Disks (SSDs) as a Function of Bandwidth, Concurrency, Device Architecture, and System Organization,” Proc. 36th Int'l Symp. Computer Architecture, 2009.
[27] FUSION IO, ioDrive datasheet, http://www.fusionio.com/images/data-sheets iodrive_data_sheet.pdf, 2008.
[28] Denali, NAND Flash Controller IP, http://www.denali.com/en/productsdatabahn_flash.jsp , 2010.
[29] Intel, Serial ATA II Native Command Queuing Overview, http://www.intel.com/assets/pdf/whitepaper 252664.pdf, 2003.
[30] K. Grimsrud and H. Smith , Serial ATA Storage Architecture and Applications. Intel Corporation, 2007.
[31] Int'l Committee for Information Technology Standards (INCITS), SCSI Architecture Model-3 (SAM-3) T10 Project 1561-D, Revision 14. pp. 402-2005, T10 Technical Committee, Sept. 2004.
[32] D.A. Patterson , G. Gibson , and R.H. Katz , “A Case for Redundant Arrays of Inexpensive Disks (RAID),” Proc. ACM SIGMOD Int'l Conf. Management of Data, 1988.
[33] C. Ruemmler and J. Wilkes , “An Introduction to Disk Drive Modeling,” Computer, vol. 27, no. 3, pp. 17-28, Mar. 1994.
[34] M.J. Bach , The Design of the UNIX Operating System. Prentice-Hall, 1986.
[35] C. Mohan , D. Haderle , B. Lindsay , H. Pirahesh , and P. Schwarz , “ARIES: A Transaction Recovery Method Supporting Fine-Granularity Locking and Partial Rollbacks Using Write-Ahead Logging,” ACM Trans. Database Systems, vol. 17, no. 1, pp. 94-162, 1992.
[36] G.R. Ganger , M.K. McKusick , C.A.N. Soules , and Y.N. Patt , “Soft Updates: A Solution to the Metadata Update Problem in File Systems,” ACM Trans. Computer Systems, vol. 18, no. 2, pp. 127-153, 2000.
[37] M.K. McKusick and G.R. Ganger , “Soft Updates: A Technique for Eliminating Most Synchronous Writes in the Fast Filesystem,” Proc. USENIX Ann. Technical Conf., 1999.
[38] M.I. Seltzer , G.R. Ganger , M.K. McKusick , K.A. Smith , C.A.N. Soules , and C.A. Stein , “Journaling versus Soft Updates: Asynchronous Meta-Data Protection in File Systems,” Proc. USENIX Ann. Technical Conf., 2000.
[39] M.K. McKusick , W.N. Joy , S.J. Leffler , and R.S. Fabry , “Fsck—The UNIX File System Check Program,” Unix System Manager's Manual-4.3 BSD Virtual VAX-11 Version, 1986.
[40] C. Frost , M. Mammarella , E. Kohler , A.D.I. Reyes , S. Hovsepian , A. Matsuoka , and L. Zhang , “Generalized File System Dependencies,” Proc. ACM Symp. Operating Systems Principles, 2007.
[41] B. Kim , E.H. Nam , Y.J. Seong , H.J. Min , and S.L. Min , “Efficient Flash Memory Read Request Handling Based on Split Transactions,” Proc. Int'l Workshop Software Support for Portable Storage, 2009.
[42] G.M. Amdahl , “Validity of the Single Processor Approach to Achieving Large Scale Computing Capabilities,” Proc. AFIPS Spring Joint Computer Conf., 1967.
[43] D.A. Patterson and J.L. Hennessy , Computer Architecture: A Quantitative Approach, fourth ed. Morgan Kaufmann, 2007.
[44] Xilinx, Virtex-5 FPGA family, http://www.xilinx.com/products/virtex5index.htm , 2010.
[45] E.H. Nam , K.S. Choi , J.-y. Choi , H.J. Min , and S.L. Min , “Hardware Platforms for Flash Memory/NVRAM Software Development,” J. Computing Science and Eng., vol. 3, no. 3, pp. 181-194, 2009.
[46] Xilinx, Design tools, http://www.xilinx.com/toolsdesigntools. htm , 2010.
[47] Futuremark Corporation, PCMark05 whitepaper, http:/www. futuremark.com./, 2010.

Index Terms:
Flash memory, flash translation layer (FTL), storage system, solid-state disk (SSD).
Citation:
Eyee Hyun Nam, Bryan Suk Joon Kim, Hyeonsang Eom, Sang Lyul Min, "Ozone (O3): An Out-of-Order Flash Memory Controller Architecture," IEEE Transactions on Computers, vol. 60, no. 5, pp. 653-666, May 2011, doi:10.1109/TC.2010.209
Usage of this product signifies your acceptance of the Terms of Use.