A Survey on NAND Flash Memory Controller Using FPGA

Similar documents
Solid State Drives (SSDs) Jin-Soo Kim Computer Systems Laboratory Sungkyunkwan University

NAND Flash-based Storage. Jin-Soo Kim Computer Systems Laboratory Sungkyunkwan University

NAND Flash-based Storage. Jin-Soo Kim Computer Systems Laboratory Sungkyunkwan University

NAND Flash-based Storage. Computer Systems Laboratory Sungkyunkwan University

NAND Flash Memory. Jinkyu Jeong Computer Systems Laboratory Sungkyunkwan University

NAND Flash Memory. Jin-Soo Kim Computer Systems Laboratory Sungkyunkwan University

Ind 1 I T I N O 2 P FO R P S M I I O

NAND Flash-based Storage. Jin-Soo Kim Computer Systems Laboratory Sungkyunkwan University

A High Performance Reconfigurable Architecture for Flash File Systems

CS311 Lecture 21: SRAM/DRAM/FLASH

Content courtesy of Wikipedia.org. David Harrison, CEO/Design Engineer for Model Sounds Inc.

Flash Memory. Gary J. Minden November 12, 2013

Data Organization and Processing

Flash Memory Overview: Technology & Market Trends. Allen Yu Phison Electronics Corp.

PEVA: A Page Endurance Variance Aware Strategy for the Lifetime Extension of NAND Flash

Key Points. Rotational delay vs seek delay Disks are slow. Techniques for making disks faster. Flash and SSDs

SSD (Solid State Disk)

Sub-block Wear-leveling for NAND Flash

Optimize your system designs using Flash memory

3ME Series. Customer Approver. Approver. Customer: Customer Part Number: Innodisk Part Number: Model Name: Date:

Myoungsoo Jung. Memory Architecture and Storage Systems

HLNAND: A New Standard for High Performance Flash Memory

Partitioned Real-Time NAND Flash Storage. Katherine Missimer and Rich West

The Many Flavors of NAND and More to Come

smxnand RTOS Innovators Flash Driver General Features

Pre-enabling designs with ONFI (Open NAND Flash Interface) Shahed Ameer Applications Engineer Flash Memory Group, Intel

Engineer-to-Engineer Note

Memory technology and optimizations ( 2.3) Main Memory

ELCT 912: Advanced Embedded Systems

NAND/MTD support under Linux

Presented by: Nafiseh Mahmoudi Spring 2017

Vulnerabilities in MLC NAND Flash Memory Programming: Experimental Analysis, Exploits, and Mitigation Techniques

CHAPTER 12 ARRAY SUBSYSTEMS [ ] MANJARI S. KULKARNI

Flash File Systems Overview

CS429: Computer Organization and Architecture

CS429: Computer Organization and Architecture

Optimizing Translation Information Management in NAND Flash Memory Storage Systems

A Caching-Oriented FTL Design for Multi-Chipped Solid-State Disks. Yuan-Hao Chang, Wei-Lun Lu, Po-Chun Huang, Lue-Jane Lee, and Tei-Wei Kuo

3MG-P Series. Customer Approver. Innodisk Approver. Customer: Customer Part Number: Innodisk Part Number: Innodisk Model Name: Date:

D E N A L I S T O R A G E I N T E R F A C E. Laura Caulfield Senior Software Engineer. Arie van der Hoeven Principal Program Manager

Memory Modem TM FTL Architecture for 1Xnm / 2Xnm MLC and TLC Nand Flash. Hanan Weingarten, CTO, DensBits Technologies

Random-Access Memory (RAM) CS429: Computer Organization and Architecture. SRAM and DRAM. Flash / RAM Summary. Storage Technologies

DIGITAL SYSTEM FUNDAMENTALS (ECE421) DIGITAL ELECTRONICS FUNDAMENTAL (ECE422)

3MG2-P Series. Customer Approver. Innodisk Approver. Customer: Customer Part Number: Innodisk Part Number: Innodisk Model Name: Date:

3ME2 Series. Customer Approver. Innodisk Approver. Customer: Customer Part Number: Innodisk Part Number: Innodisk Model Name: Date:

Storage Systems : Disks and SSDs. Manu Awasthi July 6 th 2018 Computer Architecture Summer School 2018

SD series. Customer Approver. Innodisk Approver. Customer: Customer Part Number: Innodisk Part Number: Innodisk Model Name: Date:

BDB FTL: Design and Implementation of a Buffer-Detector Based Flash Translation Layer

3SR-P Series. Customer Approver. Approver. Customer: Customer Part Number: Innodisk Part Number: Model Name: Date:

Designing with External Flash Memory on Renesas Platforms

MQSim: A Framework for Enabling Realistic Studies of Modern Multi-Queue SSD Devices

Selecting a Flash Memory Solution for Embedded Applications

Five Key Steps to High-Speed NAND Flash Performance and Reliability

NAND Flash Performance Improvement Using Internal Data Move

I/O Devices & SSD. Dongkun Shin, SKKU

College of Computer & Information Science Spring 2010 Northeastern University 12 March 2010

Don t Forget the Memory. Dean Klein, VP Memory System Development Micron Technology, Inc.

Storage Systems : Disks and SSDs. Manu Awasthi CASS 2018

Flash Memory Guide Portable Flash memory for computers, digital cameras, cell phones and other devices. kingston.com.flash

3ME2 Series. Customer Approver. Innodisk Approver. Customer: Customer Part Number: Innodisk Part Number: Innodisk Model Name: Date:

Design and Implementation of an AHB SRAM Memory Controller

Spansion SLC NAND Flash Memory for Embedded

NAND Flash Architecture and Specification Trends

3ME3 Series. Customer Approver. Innodisk Approver. Customer: Customer Part Number: Innodisk Part Number: Innodisk Model Name: Date:

Middleware and Flash Translation Layer Co-Design for the Performance Boost of Solid-State Drives

Three-box Model: These three boxes need interconnecting (usually done by wiring known as a bus. 1. Processor CPU e.g. Pentium 4 2.

Wear Leveling Implementation on SQFlash

3SR-P Series. Customer Approver. Innodisk Approver. Customer: Customer Part Number: Innodisk Part Number: Innodisk Model Name: Date:

3MG2-P Series. Customer Approver. Innodisk Approver. Customer: Customer Part Number: Innodisk Part Number: Innodisk Model Name: Date:

3MG2-P Series. Customer Approver. Approver. Customer: Customer Part Number: Innodisk Part Number: Model Name: Date:

Could We Make SSDs Self-Healing?

1SR-P Series. Customer Approver. Innodisk Approver. Customer: Customer Part Number: Innodisk Part Number: Innodisk Model Name: Date:

Advancements in SSD Forensics

3D NAND - Data Recovery and Erasure Verification

1ME Series. Customer Approver. Innodisk Approver. Customer: Customer Part Number: Innodisk Part Number: Innodisk Model Name: Date:

3SE-P Series. Customer Approver. Approver. Customer: Customer Part Number: Innodisk Part Number: Model Name: Date:

Chapter TEN. Memory and Memory Interfacing

Overview. Memory Classification Read-Only Memory (ROM) Random Access Memory (RAM) Functional Behavior of RAM. Implementing Static RAM

Performance of PC Solid-State Disks

Disks and RAID. CS 4410 Operating Systems. [R. Agarwal, L. Alvisi, A. Bracy, E. Sirer, R. Van Renesse]

VISUAL NAND RECONSTRUCTOR

COS 318: Operating Systems. Storage Devices. Jaswinder Pal Singh Computer Science Department Princeton University

SD 3.0 series (MLC) Customer Approver. Approver. Customer: Customer Part Number: Innodisk Part Number: Model Name: Date:

3MG-P Series. Customer Approver. Approver. Customer: Customer Part Number: Innodisk Part Number: Model Name: Date:

1MG3-P Series. Customer Approver. Innodisk Approver. Customer: Customer Part Number: Innodisk Part Number: Innodisk Model Name: Date:

MS800 Series. msata Solid State Drive Datasheet. Product Feature Capacity: 32GB,64GB,128GB,256GB,512GB Flash Type: MLC NAND FLASH

Frequently asked questions from the previous class survey

CMOS Logic Circuit Design Link( リンク ): センター教官講義ノートの下 CMOS 論理回路設計

Chapter 12 Wear Leveling for PCM Using Hot Data Identification

u Covered: l Management of CPU & concurrency l Management of main memory & virtual memory u Currently --- Management of I/O devices

Chapter 5. Internal Memory. Yonsei University

COS 318: Operating Systems. Storage Devices. Vivek Pai Computer Science Department Princeton University

Organization. 5.1 Semiconductor Main Memory. William Stallings Computer Organization and Architecture 6th Edition

CS370: Operating Systems [Spring 2017] Dept. Of Computer Science, Colorado State University

Flash memory talk Felton Linux Group 27 August 2016 Jim Warner

Memory Expansion. Lecture Embedded Systems

William Stallings Computer Organization and Architecture 6th Edition. Chapter 5 Internal Memory

Performance Assessment of an All-RRAM Solid State Drive Through a Cloud-Based Simulation Framework

Toshiba America Electronic Components, Inc. Flash Memory

From Silicon to Solutions: Getting the Right Memory Mix for the Application

Transcription:

A Survey on NAND Flash Memory Controller Using FPGA Vijay Kumar Magraiya 1,Koushel Agarwal 2 Assistant Professor,SRCEM Gwalior, vijay.magraiya@gmail.com Research Scholar,SRCEM, Gwalior, Koushel_agarwal@yahoo.co.in Abstract-NAND flash memory is a non volatile storage media used in today daily life electronic equipments like cell phones, digital cameras, MP-3 players, PC etc. By experiments it is prove that high performance NAND flash controller can improve the data access performance in both program and read state drastically. As the cell size of NAND flash memory is reduced every year the performance, reliability, speed is increased very rapidly. NAND flash memory is programmed on page by page basis. Typically programming time is very less few micro second per page. A good ECC (Error correction code) technique is always essential in NAND flash memory controller. ECC can be implemented by both software and hardware. Good bad block management software is also essential to remap data to avoid using bad blocks in the memory device. A special Boot upcode is also written in the NAND flash memory controller so system can boot through it. It is a capacity Solid State Drive (SSD) that uses NAND flash memory for storage media in personal computer and enterprise server. Garbage Collector (GC) technique, Built in defect management technique, wear leaving technique is also used in NAND flash memory controller. We design and implement FPGA based open framework for fast, correct features of flash memories. Index Terms-Flash memory, Non volatile, Solid State Drive (SSD), Error Correction Code (ECC), Boot up code, Garbage Collector (GC), Defect management technique, Wear leaving technique, FPGA. 1. Introduction NAND flash memory is widely used in semiconductor industry for its high performance, low cost, high capacity, high speed, and low power consumption solid state data storage drive. Flash memory is the combination of two technologies-eprom and EEPROM. The term Flash means - A large chunk of memory (memory cell) could be erased at one time.on the other hand in EEPROM each byte is erased one by one manner. Traditional hard disk drive is now replaced by flash memory because flash memory is always good in all the above parameters. To improve the input output bandwidth we have a multi Chanel parallel access mechanism in the flash array. Each NAND flash memory controller has always an ECC and GC mechanism.it is very essential for security and performance point of view. Flash memory controller offers higher capacity for ShriRam College of Engineering & Management 1

fast data transfer and random access of memory in I/O operations. It is possible to design a simple memory mapped interface to hardware with NAND flash memory. NAND flash memory controller has also a bidirectional bus in between peripheral devices and controller, controller internal bus for various l functional blocks and controller with memory connections. These buses travel all the I/O data as well as control and address signals from one place to another. In NAND flash memory cell are arranged in series with sharing of source and drain, simply NMOS transistors are arranged for building NAND gate. So sharing the source and drain of adjacent cells eliminate need for metal contact and reduce the die size. NAND flash cells placed together for saving 60% cell size over NOR flash cells. In nor flash cells arrange in parallel with all source node of the cells connected as a NMOS transistors are arranged for building NOR gate. NAND flash memory controller provides a serial access of data blocks in a very high speed. Single Level Cell (SLC) and Multi Level Cell (MLC) two techniques are used for storing data in memory cells. SLC offers 100,000 erase program cycle while MLC offers about 10,000 erase program cycle. In MLC we require 4 bit ECC while in SLC we require only 1 bit ECC. So in NAND flash memory controller it essential whether we use SLC or MLC in appropriate ECC scheme. Open NAND Flash Interface (ONFI) provides a common standard for different devices. NAND flash memory devices generally have 512 bytes or 2048 bytes of data page with spare columns of 16 or 64 bits of extra data associated with each page for improvement data integrity and ECC purposes. System can also boot from the NAND flash memory by using BOOT ROM part and this BOOT UP code present in NAND flash memory. 2. NAND Flash Device Architecture In NAND flash device we have mainly three blocks- I/o control block, control logic NAND flash array. A NAND flash array includes two dimensional NAND flash cells, Row/Column address decoder and cache / data registers. In conventional NAND flash cell array read/program commands access data within single page at a time. In NAND flash device it have two data and cache registers to parallelize array and I/O access operations for good performance, command, address and data are controlled by I/O control block. It have a shared, multiplexed, bidirectional (command, address and data) I/O bus. Figure-1 shows the block diagram of a typical NAND flash device. The capacity of NAND flash device is improved day by day, architecture are also improved day by day. Latest overall structure of NAND flash device is looks very similar to its conventional structure. A NAND flash controller implements memory mapped interface. The logic block have two control logic-timing control logic block, control signal control logic block.a multiplane array packs contains its own set of Cache/Data registers, more memory cells on a die and partitioned it into several plans. In multiplane array packs all operations performs parallels. Inside a single flash array operation time multiple page of data can be programmed, read, write, fetched etc. so average data access time is small. In ShriRam College of Engineering & Management 2

multiplane commands some addresses are restricted. A multidie array packs have multiple dies on one chip. All are independent in operations and share a common data, address and command bus. So page programmed event, page erase event, command through the chip level I/O interface event are performed parallels with in a chip.so new NAND flash chip with multidie and multiplane support is always increase performance, reduce the data access average time, and increase parallel execution of commands. Fig 1:- Functional block diagram of a typical NAND flash device Conventional NAND Flash Controller- Conventional NAND flash controller have flash chips. In today life it is widely used in storage devices. At many applications it is a very good replacement of hard disk drive because its low cost, high performance, low power consumption etc. NAND flash controller receives data and commands signals from computer and translates it into a set of commands to flash chips. The address translation unit translates a logical address into a physical address for flash memory cell. Bad block management technique keeps track of damaged blocks. ECC unit checks errors and correct it so data integrity is managed. All the commands inside the controller follow a queue algorithm. It works on First In First Out(FIFO) concept. A conventional NAND flash controller is good in the field of area and data flow control. But it does not provide a high command level parallelisms and high performance. Proposed NAND Flash Controller-In my proposed controller we have following blocks-control logic block, registers, buffer, bidirectional bus for data, address and control signal, a high performance ECC interface, garbage collection mechanism, flash translation layered. It always follows Open NAND Flash Interface (ONFI) slandered. NAND flash devices are programmed on a page by page basis. Typically ShriRam College of Engineering & Management 3

programming time is a few hundred micro second per page. We use two plane programming cache programming and random programming. ONFI provides a common standard for different flash devices. So future extension and interfacing is possible and it is very easy. We also use some spare columns with each page. It is fully addressable and it is used for storing ECC and other information for improve data integrity. By using ECC we recover wrong value from the remaining good data bits. Each and every vendor use ECC in NAND flash applications. Flash controller generates ECC code, it store in spare column area. some remapping technique of logical to physical address of the memory device. A software called Flash Transaction layer (FTL) use for wear leveling and bad block management technique. All vendors provide FTL software. We also design improved FTL software in flash memory controller. We used some shadowing technique for improve the performance. A special boot up code is also developed to the first page of flash memory so CPU can boot from this page. All the initial instructions are written within this boot up page. So CPU can boot through NAND flash memory. NAND flash device declare some blocks as bad blocks. During production, testing, wafer fabrication steps each and every die is tested and bad blocks are marked. User always avoids use of bad blocks. Some additional bad blocks may develop due to use of memory again and again. So important to remap these bad blocks and marked it as a bad blocks so user can avoid it. NAND flash cell can be programmed and erased only for limited time period (100,000 times for SLC and 10,000 times for MLC) before it fails. We always want to improve this limitation so flash memory performance is increased. By using wear leveling technique we can achieve it. This technique spreads the memory cell use evenly to different physical pages. So the entire flash device is used equally to improve the life of flash memory. Bad block management technique and wear leveling technique use 3. SIMULATION RESULT ShriRam College of Engineering & Management 4

The testing the NAND interface with the FPGA device model was performed similar to the AMD UltraNAND device. The following commands were executed with the Denali model in modelsim with the test bench provided. Frame Program and Status Read are used to program a frame; The Frame Register must be loaded with data prior to executing the frame program command. The test bench provided loads the frame register with 32 bytes of data. The status of the device is checked with the Status Read command. Figure 4. Test bench wave form of Nand flash controller The Figure 4 shows the completion of the page Program command. And also Notice that RY/BY# signal is asserted, representating that the flash device is busy with an operation. After the Page Program command is sent to the flash, a Read Status command is sent. The Read Status command is used to read the device status. When I/O6 is equal to 1, the device is ready for the next command. To check if an operation is successful, reading me /O0 will determine the pass/fail status. When I/O0 is equal to 0,the operation passed and when equal to 1, the operation failed. When port address is high the program operation is successful as shown in figure 4. Figure 3. Memory address Loder wave form of Nand flash controller.. ShriRam College of Engineering & Management 5

4. CONCLUSION In this paper we discuss various aspects of NAND flash memory controller. A conventional NAND flash memory controller is shown as well as a proposed NAND flash memory controller is also present. We believe that proposed architecturewill achieve a high performance, low cost, low power consumption memory system with a low cost. We also want to achieve replacement of conventional HDD to NAND flash memory. The experimental results demonstrate that proposed architecture can achieve better performancein various parameters. We also want to develop a new Flash Transaction Layer (FTL) in our controller. We include a new Garbage collection (GC) policy, Error Correction Code (ECC), Control Logic (CL) etc.they all provide an FPGA to facilitate the implementation of a wide range of NAND flash memory controller. Proposed architecture can be work with all the embedded computing system as a replacement of conventionalhard Disk Drive (HDD) with a very huge size of NAND flash memory. It will be a very fast and reliable system. REFFERENCES [1] L. Bouganim, B. J onsson, and P. Bonnet. uflip understanding flash IO patterns, In Int l Conf. on Innovative Data Systems Research (CIDR), 2009. [2] P. Huang, Y. Chang, T. Kuo, J. Hsieh, and M. Lin. The Behavior Analysis of Flash-Memory Storage Systems, In IEEE Symposium on Object Oriented Real-Time Distributed Computing, pages 529 534.IEEE Computer Society, 2008. [3] Hynix Semiconductor, Intel Corporation, Micron Technology Inc., Numonyx, Phison Electronics Corp.,Sony Corp., and Spansion. Open NAND FlashInterface Specification, rev. 2.1. Available from www.onfi.org/specifications, Jan. 2009. [4]Yu Chi, Erich F. Haratsch, Mark McCatney and Ken Mai FPGA-Based Solid State Drive Prototyping Platform In IEEE International Symposium on Field Programmable Custom Computing Machines 2011. [5] Yang Ou, Nong Xiao and Mingche Lai A Scalable Multi-channel Parallel NAND Flash Memory Controller Architecture, Sixth Annual ChinaGrid Conference 2011. [6] International Technology Roadmap for Semiconductor, 2007. [7] Micron Technology, Boise, Idaho. Technical Note TN-29-17 Design and Use Considerations for NAND Flash Memory, 2006. [8] Altera Corporation, Stratix data i sheet, May 2003. [9] Intel Corp., Understanding the Flash Transfer Layer (FTL) Specification, 1998. ShriRam College of Engineering & Management 6