NAND Flash管理算法的设计及实现

发布者:Xingfu8888最新更新时间:2013-11-11 来源: eefocus关键字:NAND  Flash  管理算法 手机看文章 扫描二维码
随时随地手机看文章

  引言

  Flash是一种非易失存储器,它在掉电条件下仍然能够长期保持数据。由于它具有容量大、速度快、功耗低、抗震性能好等优点,近几年在U盘、SD卡、SSD硬盘等各种移动存储设备中得到了广泛的应用。本文给出了一款性能优异、成本低廉可用于SD卡的NAND flash控制芯片的设计方法。(本方法也同样适用于其他存储设备。文中集中探讨了一种高效管理物理块的算法,包括逻辑物理地址映射以及spare区的定义,另外,还有双缓冲器优化读写的方法等。

  1 Flash简介

  1.1 SLC flash与MLC flash的比较

  从架构上,flash可以分为SLC(Single-Level-Cell) flash和MLC(Multi-Level-Cell)flash两种。和SLC Flash相比较,MLC flash的优点是面积小、成本低:缺点是出错率高,寿命短(SLC的每个block能够擦写100,000次,而MLC能够擦写10,000次)。由于MLC flash具有成本低的优势,而其出错率高的缺陷又可以通过ECC(Error Correction Code)纠错来有效解决,寿命短的问题也可以通过磨损均衡来弥补,因此,MLC flash的应用更加广泛,但在一些高端应用仍然会使SLCflash。本设计就是针对MLC flash,但是,本方法对SLC flash也能够处理。

  1.2 NAND flash结构

  不同厂商不同型号的flash的结构都大同小异,图l所示是三星K9G8G08UOA型号的flash结构图,图l中的1个flash芯片包含4096个物理块(block),每个物理块含有128个页(page),每个页包含2112(2048+64)字节其中多出的64字节用于存放纠错码及其他信息用。

 

  1.3 NAND flash的特点

  Flash可支持读(Read)操作、写(Program)操作和擦除(Erase)操作。其中读操作和写操作的基本单位是页,擦除操作的基本单位是块。对flash的写入操作只能在尚未写入的空闲页上进行,并且只能按照从低地址页到高地址页的顺序进行操作,而不能写了高地址页之后,再写低地址页。如果想要修改某个已经写过的页,只能先对整个物理块进行擦除,然后才能正确写入。

  2 Flash管理算法

  2.1 逻辑物理地址映射

  由于flash具有上述特点,因此,如果不采用逻辑物理地址映射,将会存在两个问题:其一是Flash中难免会有坏块,因而某些地址空间将是不可用的;其二,Flash读写的基本单位是页,擦除的基本单位是块,故在同一个页的两次写之间,就必须要进行一次擦除操作,而擦除会擦除掉整个块,这样,为了避免其他页的数据丢失,就得先把这些页中的数据暂存到其他地方备份起来,之后再和新数据一起重新写回到该块中,因此,整个过程会比较复杂,而且会造成速度降低。这样,一般都需要对flash加入逻辑物理地址映射管理算法,该算法的逻辑地址和物理地址的对应关系是变动的。

  2.2 两级地址映射

  为了减少更新数据时原有数据的搬移,提高写操作的速度,本文提出了采用两级地址映射的机制,也就是在块级别逻辑物理地址映射的基础上引入页级别上的逻辑物理地址映射。一个逻辑块对应一个或两个物理块(称为母块和子块),逻辑块中的逻辑页对应一或两个物理块中的某个面。图2所示是其地址解析示意图。[page]

  在读写时,首先应将逻辑地址分为逻辑块地址和逻辑页地址,再根据块映射表将逻辑块地址映射到物理块地址,然后读取母块和子块中的sDare区,并据此建立页映射表,再根据逻辑页地址映射到物理页地址,从而完成从逻辑地址到物理地址的转换。其数据更新示意图如图3所示。

  当需要更新数据时,写入的策略可分为两种情况。首先,当子块仍然有空闲页时,可直接将数据写到子块中的下一个空闲页中,并在spare区中记录该块对应的子块、该物理块对应的逻辑块以及该物理页对应的逻辑页,这样,当重新上电时,就可以建立逻辑物理映射关系。其次,当母块和子块都写满时,需要从空块池中取出一个新的子块。如果允许一个逻辑块对应三个或更多的物理块,一方面管理起来比较复杂,另外也会造成空物理块紧缺,因此,可以考虑将母块或者子块释放掉,这样,母块或者子块中原有的有效数据就需要搬移到新子块中并将该母块或子块擦除再释放到空块池。出于速度的考虑,选择母块和子块有效页数较少的块进行数据转移并释放。

  实践证明,这样操作对写文件速度有明显提高,特别是写小文件时,其速度提升可达9.2倍。

        2.3 SPARE区和ECC校验

  Flash中每个页里的每个字节都是没有任何差别的,物理上并没有data区和spare区的区别,具体怎样划分data区和spare区,可由用户自己决定。本设计采用的划分办法如图4所示,这样,每个扇区和一个spare区相连,故可方便连续读出,并进行校验纠错。

  图4中同时给出了Spare的区定义,其中两字节用于标识本物理块所对应的母块;两字节用于标识本物理块对应的逻辑块;一字节用于标识本物理页对应的逻辑页,一字节用于标识连续逻辑页数(表示上面连续逻辑页的个数,此域可以辅助加快建立页映射表的时间),余下的10字节用于存放ECC,这样可以达到4字节错误的纠错能力。一般情况下,前面的4个字节是建立块地址映射表的关键,其次,后面两个字节则是建立页地址映射表的关键。

  2.4 页映射表建立时间的优化

  因为建立页映射表需要读取母块和子块中各物理页spare区以判定该物理页对应的逻辑页,而每个物理页的读取都要花费大约50μs的时间。因此,如果对每个物理页都读取,建立页映射表就会比较费时。为了加快建立页映射表的速度,一般只希望能读取一个物理页,而免于读取其他若干页,以便加快建表速度。因为很多时候都是连续写,而连续的几个物理页在逻辑上也是连续的,因此可以考虑在spare区加入连续逻辑页号,这样,重新建表时,就可根据连续页号知道连续几个物理页对应的逻辑页,从而加快建表的速度。对于最佳情形,有时只需要读一个页就可以建立整个逻辑块的页映射表。图5所示是一种加快建表的示意图。


  2.5 分区

  不同的flash,块数是不同的,其块映射表需要的RAM空间也不一样。对于当前主流flash,有的具有8192个块,如果对整个flash建表,需要的RAM空间将多达32KB,这样芯片成本就会比较高。一个可行的解决办法是对flash分区,比如1024个块为一个分区,每次只对一个分区进行建表,这样,RAM空间就可以降低到4KB。这样,随着将来flash容量的增加,块数即使再多,也能够用同样的方法处理,而不用增大RAM。

  3 结束语

  本文介绍了一种针对MLC flash的优异管理算法及软件实现方法,并且已在SD卡上大规模商用。该算法只需简单配置就能支持市场上的各种flash,而且也兼容各种SD设备。同时RAM空间需求小,成本低,寿命长,兼容性好,扩展性强,flash空间利用率高,具有很高的商用价值。

关键字:NAND  Flash  管理算法 引用地址:NAND Flash管理算法的设计及实现

上一篇:基于SRAM/DRAM的大容量FIFO的设计与实现
下一篇:单片机下程序RAM, ROM ,Flash

推荐阅读最新更新时间:2024-03-16 13:30

STM32通过sram启动方法来运行一个flash解锁程序
STM32通过sram启动方法 最近将两年前买的STM32F103最小系统板拿出来准备学习,安装完MDK5后写了一个点亮LED程序,发现无法下载。查了下购买评论,原来这种板子发货时已经锁定了flash。鼓捣了2、3天,最后采取的办法是通过sram启动方式,来运行一个flash解锁程序,程序运行后就可以将板子恢复。在此将该过程记录下来。 一、系统板外形是这种。 二、硬件跳线 将两个黄色跳线帽全部插在1端,即BOOT0、BOO1全部接1。 三、MDK5设置 3-1、新建一个工程,取名Flash_Unlock。设置Run-time,选择CMSIS- CORE、Device- Startup、Device- StdPeriph D
[单片机]
STM32通过sram启动方法来运行一个<font color='red'>flash</font>解锁程序
汽车存储器需求旺盛, NOR flash抢占商机
随着汽车变得越来越智慧而需要使用更多存储器,许多技术都瞄准了掌控车辆的“驾驶座”等核心应用;然而,可以肯定的是,NOR快闪存储器(NOR flash)至少将从“副驾驶座”等子系统延伸至更多的车用体验。 NOR flash由于具备可编程能力,而在许多应用中作为EEPROM的替代技术,并逐渐在一些需要快速、非挥发性存储器(NVM)的应用领域中找到新机会,包括通讯、工业和汽车领域。特别是在自动驾驶车的快速发展下,NOR flash在车用领域的商机更受关注。 旺宏电子(Macronix International)自诩为NOR flash市场的主导供应商之一,最近宣称已在这一车用市场排名第三。旺宏电子市场行销处资深处长Anthony
[嵌入式]
大容量NAND FLASH在ARM嵌入式系统中的设计与实现
1 引 言   随着嵌人式系统在数码相机、数字摄像机、移动电话、mp3音乐播放器等移动设备中越来越广泛的应用,FLASH存储器已经逐步取代其他半导体存储元件,成为嵌入式系统中主要数据和程序载体。FLASH存储器又称闪存,是一种可在线多次擦除的非易失性存储器,即掉电后数据不会丢失。FLASH存储器还具有体积小、功耗低、抗振性强等优点,是嵌入式系统的首选存储设备。 NAND和NOR FLASH是现在市场上两种主要的非易失闪存芯片,这两种类型的FLASH区别在于:   NOR类型FLASH可以按照字节访问,所以存放在FLASH里的程序可以直接执行,而NAND类型FLASH是串行访问的,需要先把程序读取到内存然后再从内存中运行。与NOR型
[单片机]
大容量<font color='red'>NAND</font> <font color='red'>FLASH</font>在ARM嵌入式系统中的设计与实现
海力士宣布2021年将量产1α DRAM和176层NAND
全球第三大半导体制造商SK海力士(SK Hynix)承诺将在一年内生产1 α DRAM和176层4D NAND闪存。 这家韩国公司表示,此举将“提高在竞争激烈的市场中的成本竞争力”。第四大芯片制造商美光科技公司(Micron Technology)最近表示,在去年宣布量产首批176层NAND之后,其1 α节点DRAM也开始量产。 SK海力士在2020财年第四季度公告中做出了如上承诺。它还计划增加HBM2E等高附加值DRAM产品的比例,以满足高性能计算和人工智能的需求。 该公司表示,2020年,其收入为31.0万亿韩元(约286亿美元),比2019年增长18%。2020年四季度收入为7.9万亿韩元(约合71亿美元),同比
[嵌入式]
关于S3C2440开发板Nand flash程序烧写和运行的一些理解
这两天刚开始学习ARM9的裸机编程和Linux系统移植,在烧写Nand flash内存的时候对一些指定的地址产生了疑惑。 我看过很多教学视频,他们在烧写程序到Nand flash的时候一般会指定一个地址0X3000_0000,而S3C2440的官方手册上指明了0X3000_0000地址对应的片内外设是SDRAM。这不禁让我产生了疑问。明明是指定了SDRAM却烧写到了Nand flash,为什么? 为了解决我的疑惑,在网上看了很多人的解释,这不仅解开了我的疑惑,还引出了许多相关知识点。 要解答这个问题,首先要从Nand flash本身的结构说起。Nand flash的结构和RAM不一样,它的数据线是复用的,内与足够的地址线用来寻址,
[单片机]
51单片机程序丢失问题的分析
1 C8051Fxxx单片机简单介绍和Flash结构   C8051Fxxx系列器件是Silicon Labs推出的一个高速单片机系列。这款单片机是完全集成的混合信号片上系统型MCU 芯片,具有高速、流水线结构的8051 兼容的CIP51内核;70%的指令的执行时间为1个或2个系统时钟周期;片上有丰富的片内外设,根据型号的不同,包括ADC、DAC、UART、捕捉/比较模块的可编程计数器/定时器阵列、SPI、SMBus等。   C8051Fxxx单片机有大容量的Flash存储器,用于程序代码和非易失性数据存储,可在系统编程。Flash的结构是以扇区为单位组织的(128 KB系列以1 024字节为1个扇区,64 KB系列以512字
[单片机]
SK海力士全球首发基于128层NAND闪存消费级SSD!
据BusinessKorea报道,SK海力士发布了全球首款基于128层NAND闪存的消费级SSD——SK海力士Gold P31,提供500GB和1TB两种存储容量,产品已上架亚马逊。 据介绍,Gold P31支持基于4D NAND闪存技术的PCIe NVMe接口,读取速度最高可达3500 MB/s,写入速度高达3200 MB/s,该款产品是为所有个人电脑用户设计的,特别关注游戏玩家、设计师和内容创造者。另外,Gold P31的可靠性已通过1000小时高温运行寿命试验(HTOL)进行测试和验证,平均无故障时间(MTBF)达到150万小时。 该报道称,固态硬盘市场向PCIe NVMe接口的快速过渡,以及Gold P31的诞生,突显
[手机便携]
手机应用LED闪光灯的几大优势
现在的照相手机几乎都可以当作数字相机使用,用户当然希望在低 照度 情况下也能拍摄出高质量的照片,因而照相手机中需要增加一个照明光源并且不会很快耗尽手机电池的需求开始出现。 白光LED 作为相机闪光灯在照相手机中应用广泛。现在有两种数字相机闪光灯可供选择:氙气闪光灯管和白光LED。氙气闪光灯由于具有高 亮度 和白色光的特点,因而广泛用于胶卷相机和独立的数字相机。而大多数可拍照手机则选择了白光LED照明。 1.LED的频闪速度快于任何光源 LED是电流 驱动 器件,其光输出由通过的正向电流决定。LED的频闪速度要快于任何其它光源,包括氙气闪光灯,它具有很短的上升时间,范围在10ns~100ns之间。现在白光LE
[电源管理]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
热门活动
换一批
更多
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

更多精选电路图
换一换 更多 相关热搜器件
更多每日新闻
随便看看
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved