Yan-Yu Huang, 2013 IEE5008 –Autumn 2013 Memory Systems NAND Flash Memory Controller Yan-Yu Huang Department of Electronic Engineering National Chiao Tung

Embed Size (px)

Citation preview

  • Slide 1
  • Yan-Yu Huang, 2013 IEE5008 Autumn 2013 Memory Systems NAND Flash Memory Controller Yan-Yu Huang Department of Electronic Engineering National Chiao Tung University, Hsinchu, Taiwan, R.O.C. [email protected]
  • Slide 2
  • NCTU IEE5011 Memory Systems 2013Yan-Yu Huang, 2013 Outline Introduction Overview of a Basic Controller Structure Flash Translation Layer Multichip Parallelism in Flash memory A variety of Different Architectures Controllers Conclusion Reference 2
  • Slide 3
  • NCTU IEE5011 Memory Systems 2013Yan-Yu Huang, 2013 Introduction Improve chip performance Bit-flipping errors Bad blocks Increase battery life Reduces the CPU load on the device Do the operation independently Increases the overall throughput Reduce the load on the system 3
  • Slide 4
  • NCTU IEE5011 Memory Systems 2013Yan-Yu Huang, 2013 Introduction Integrated controller Smaller chip size Cheaper cost Inevitable delay between a new Flash technology Dedicated or External controller Sourced independently of other parts. More flexible design Cost more money 4
  • Slide 5
  • NCTU IEE5011 Memory Systems 2013Yan-Yu Huang, 2013 Overview of a Basic Controller Structure Host may be a computer or a terminal. FTL translates host request into flash request. Controller decide what time and which chip should work. Flash chip do read, write page or erase block. 5 Flash Controller FTL Host
  • Slide 6
  • NCTU IEE5011 Memory Systems 2013Yan-Yu Huang, 2013 Flash Translation Layer ( FTL ) Maintain a mapping between logic address and physical address. Page level One logical sector maps one physical block. More flexible Requires a large amount of memory for mapping table. Block level One logical block maps one physical block. It requires extra flash operations when only a few pages in a logical block are modified. 6
  • Slide 7
  • NCTU IEE5011 Memory Systems 2013Yan-Yu Huang, 2013 Flash Translation Layer ( FTL ) A basic structure of FTL Garbage Collection Bad Block Management Error Checking and Correcting Wear Leveling Low Level Driver 7 Flash Controller FTL Host
  • Slide 8
  • NCTU IEE5011 Memory Systems 2013Yan-Yu Huang, 2013 Garbage Collection Collect the valid data from the scattered blocks 8
  • Slide 9
  • NCTU IEE5011 Memory Systems 2013Yan-Yu Huang, 2013 Low Level Driver Provide basic operation. That executes the operation directly on NAND Flash memory device. Read Write Erase 9
  • Slide 10
  • NCTU IEE5011 Memory Systems 2013Yan-Yu Huang, 2013 Error Checking and Correcting ( ECC ) That can detect and correct the most common kinds of internal data corruption. Maintains a memory system immune to single-bit errors. 10 N: the number of bits of a block E : the number of errors in a block P : the bit error rate
  • Slide 11
  • NCTU IEE5011 Memory Systems 2013Yan-Yu Huang, 2013 Wear Leveling Maximizes the life span of NAND flash as each cell is used evenly. Static Dynamic 11
  • Slide 12
  • NCTU IEE5011 Memory Systems 2013Yan-Yu Huang, 2013 Wear Leveling Implementing static wear leveling. All good blocks are evenly distribute the wear. With an additional step Implementing dynamic wear leveling. Select the one with the lowest erase count for the next write Only the non-static part of array is wear-leveling 12
  • Slide 13
  • NCTU IEE5011 Memory Systems 2013Yan-Yu Huang, 2013 Bad Block Management ( BBM ) Perform write verification and remapping to spare sectors in case of write failure. 13
  • Slide 14
  • NCTU IEE5011 Memory Systems 2013Yan-Yu Huang, 2013 Bad Block Management ( BBM ) Skip Block Method With a bad block table when the target address is address of bad block then chose the next. Reverse Block Method re-directed to a 14 Reserved Block Area
  • Slide 15
  • NCTU IEE5011 Memory Systems 2013Yan-Yu Huang, 2013 Multichip parallelism in Flash memory Flash memory management High data accessing speed Chip-level Bus-level 15 Flash Controller FTL Host
  • Slide 16
  • NCTU IEE5011 Memory Systems 2013Yan-Yu Huang, 2013 Multichip parallelism in Flash memory Chip-level Increase the effective bandwidth of flash operations. Maximum bandwidth is limited by the bus. 16
  • Slide 17
  • NCTU IEE5011 Memory Systems 2013Yan-Yu Huang, 2013 Multichip parallelism in Flash memory Bus-level Parallel flash operation can across chips by different flash bus. Cost more area than chip-level. 17
  • Slide 18
  • NCTU IEE5011 Memory Systems 2013Yan-Yu Huang, 2013 A variety of Different Architectures Controllers Chip-level For FPGA application Bus-level & Chip-level Scalable Multi-channel Parallel Controller 18 Flash Controller FTL Host
  • Slide 19
  • NCTU IEE5011 Memory Systems 2013Yan-Yu Huang, 2013 Controller for FPGA Application Provides a main state-machine with an enhance command. 19 System reset Enable signal Sub-state machine Interrupt signal timing sequences Reverse Block Method
  • Slide 20
  • NCTU IEE5011 Memory Systems 2013Yan-Yu Huang, 2013 Scalable Multi-channel Parallel Controller Multi-channel parallelism 20 Addressed uniformly state
  • Slide 21
  • NCTU IEE5011 Memory Systems 2013Yan-Yu Huang, 2013 Scalable Multi-channel Parallel Controller Switching fabric to implement the multi-channel parallel access mechanism. 21 Stored the request Select signal Data path The number of the request Data command address
  • Slide 22
  • NCTU IEE5011 Memory Systems 2013Yan-Yu Huang, 2013 Scalable Multi-channel Parallel Controller The single controller Main Control Module ECC Module 22 request Implement the control of flash operation control logic
  • Slide 23
  • NCTU IEE5011 Memory Systems 2013Yan-Yu Huang, 2013 Scalable Multi-channel Parallel Controller Main Control Module Core of the single controller with a main state machine. 23 Stored the data need to input or output request Main control logic Main state machine Sub-state machine Generate different control signal
  • Slide 24
  • NCTU IEE5011 Memory Systems 2013Yan-Yu Huang, 2013 Scalable Multi-channel Parallel Controller ECC Module Generates a ECC code of each page Detect the bit-flipping errors Modify one bit error 24 request Program page operation data ECC code Spare data area of the target chip
  • Slide 25
  • NCTU IEE5011 Memory Systems 2013Yan-Yu Huang, 2013 Scalable Multi-channel Parallel Controller ECC Module Generates a ECC code of each page Detect the bit-flipping errors Modify one bit error 25 request read page operation Old code Bit-flipping error ? New code Address of error bit
  • Slide 26
  • NCTU IEE5011 Memory Systems 2013Yan-Yu Huang, 2013 Conclusion Controller for FPGA Application Advantage Without caring about the timing sequences Replace the invalid block Disadvantage Bit-flipping Reliability The scalable Multi-channel Parallel Controller Advantage Exploit the multi-chip parallelism to improve the bandwidth. New dynamic replacing strategy for the mapping table. Disadvantage For increase the bandwidth more channel will be needed. 26
  • Slide 27
  • NCTU IEE5011 Memory Systems 2013Yan-Yu Huang, 2013 Conclusion Improve chip performance Handle the bit errors Bad blocks management Wear leveling High data accessing speed Flash memory management A well designed controller gets the maximum bandwidth of the NAND Flash device, whereas poorly designed one only reduces system performance. 27
  • Slide 28
  • NCTU IEE5011 Memory Systems 2013Yan-Yu Huang, 2013 Reference [1] Jose, S.T., Pradeep, C., Design of a Multichannel NAND Flash Memory Controller for Efficient Utilization of Bandwidth in SSDs, 2013 International Multi-Conference on Automation, Computing, Communication, Control and Compressed Sensing (iMac4s), pp. 235-239, Mar 2013. [2] Micron Technology, Inc. All Rights Reserved, (2013), Choosing the Right NAND, Retrieved 2013 Nov 30 form URL:http://www.micron.com/products/nand-flash/choosing-the-right-nand [3] Yang Ou, Nong Xiao, Mingche Lai, A Scalable Multi-channel Parallel NAND Flash Memory Controller Architecture, 2011 Sixth Annual China Grid Conference, pp. 48-53, Aug 2011. [4] 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. [5] Jose, S.T., Pradeep, C., Design of a Multichannel NAND Flash Memory Controller for Efficient Utilization of Bandwidth in SSDs, 2013 International Multi-Conference on Automation, Computing, Communication, Control and Compressed Sensing (iMac4s), pp. 235-239, Mar 2013. [6] Chuan-Sheng Lin,Lan-Rong Dung, A NAND Flash memory controller for SD/MMC flash memory card, IEEE TRANSACTIONS ON MAGNETICS, vol. 43, no. 2, pp. 1284-1287, Feb 2007. [7] Tang Lei, Zhou Xuan, Wu Yao, Li Jincheng, Flash controller design for FPGA application, ICEEE 2010 International Conference, pp. 1-4, Nov. 2010. [8] Chanik Park, Prakash Talawar, Daesik Won, MyungJin Jung, JungBeen lm, Suksan Kim and Youngjoon Choi, A high performance controller for NAND Flash-based solid state disk (NSSD), IEEE 21 st Non-Volatile Semiconductor Memory Workshop, pp. 17-20, Feb 2006. [9] Y.J. Seong, E.H. Nam, J.H. Yoon, H. Kim, J.-y. Choi, S. Lee, Y.H. Bae, J. Lee, Y. Cho, nd S.L. Min, Hydra: a block-mapped parallel flash memory solid-state disk architecture, IEEE Transactions on Computers, vol. 59, no. 7, pp. 905-921, Jul 2010. 28
  • Slide 29
  • NCTU IEE5011 Memory Systems 2013Yan-Yu Huang, 2013 Reference [10] L.-P. Chang and T.W. Kuo, An adaptive striping architecture for flash memory storage systems of embedded systems, in Proceedings of the 8th Real-Time and Embedded Technology and Applications Symposium, San Jose, California, USA, pp. 187-196, 2002. [11] 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. [12] 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. 36 th Intl Symp.Computer Architecture, 2009. [13] Jin Hyuk Yoon, Eyee Hyun Nam, Yoon Jae Seong, Hongseok Kim, Bryan S. Kim, Sang Lyul Min, and Yookun Cho, Chameleon: A High Performance Flash/FRAM Hybrid Solid State Disk Architecture, IEEE Computer Architecture Letters, vol. 7, pp. 17, Jan 2008. [14] FUSION IO, ioDrive datasheet, http://www.fusionio.com/images/data-sheets/iodrive_data_sheet.pdf, 2008. [15] Denali, NAND Flash Controller IP, http://www.denali.com/en/products/databahn_flash.jsp, 2010. 29
  • Slide 30
  • NCTU IEE5011 Memory Systems 2013Yan-Yu Huang, 2013 30