闪存存储管理方法技术

技术编号:6163285 阅读:151 留言:0更新日期:2012-04-11 18:40
本发明专利技术揭示了一种闪存存储管理方法,将闪存划分为至少一个区以及至少两个域,每个域包括多个物理块,且区大小为域大小的整数倍;以区为单位,建立物理块分配表;以域为单位,建立逻辑块地址与物理块地址之间的块地址映射表;在对闪存进行读写操作时,仅调用当前读写操作地址所对应域的块地址映射表与其所对应区的物理块分配表至RAM。如此,任意时刻,RAM中仅需暂存一个域的块地址映射表与一个区的物理块分配表,相对于现有技术中存储整个闪存的块地址映射表与物理块分配表,本发明专利技术所占的RAM资源大幅减少,成本随之降低。

【技术实现步骤摘要】

本专利技术涉及闪存
,特别是涉及一种。
技术介绍
快闪存储器(Flash Memory),简称闪存,是一种非易失性存储器,即在断电情况下 仍能保持其所存储的数据信息。闪存是一种特殊的、以大区块擦写的电可擦可编程只读存 储器(EEPROM),允许在操作中被多次擦(Erase)或写(Program)。其成本和速度相对于普 通的以字节为单位写入的EEPROM具有极大的优势,因此成为非易失性固态储存最重要也 最广为采纳的技术。目前,闪存主要分为NOR型和NAND型两种,其中NAND Flash相较于NOR Flash具 有擦写速度快,储存密度高,单位成本低等优点,因此非常适合用于记忆卡与U盘之类的大 容量储存装置,例如,在笔记本电脑、PDA、随身听,数码相机与手机等电子产品上均可以见 到。虽然,闪存相对于普通的以字节为单位写入的EEPROM具有极大的优势,但也 存在着一些限制,这些限制主要表现在其擦写方式上。例如,闪存的物理单元在写操作 (Program)时只能由“ 1”变成“0”,因此当一个单元写过之后,只能借助擦除操作(Erase)来 回复“1”的状态,才可再次写入。目前,NANDFlash在物理上分为块(Block)和页O^ge), 例如,一个NAND Flash由η个块组成,每个块又被划分为m个页。其中,页是NAND Flash 的基本存储单元,块是其基本擦除单元,也就是说,NAND Flash的读写操作是以页为单位, 而擦除操作则是以块为单位。因此,在向NAND Flash的页写入数据之前,必须先保证该页 所在的块已经经过了擦除,而且当该页需要重新写入数据时,也必须先进行擦除操作。正是 由于NAND Flash的这个物理特性,导致其无法像传统的大容量存储器(如,硬盘)或普通 的以字节为单位写入的EEPROM—样,在物理上实现对任意地址的覆写操作。这与人们对存 储器的应用要求是相背离的,因此就需要设计一种针对NAND Flash的存储管理方法来解决 这个问题。闪存的另一个限制是擦写次数的限制。也就是说,当闪存中的某个单元被擦写 超过一定次数之后,这个单元就无法稳定的存储数据,其所在的块也需要标记成坏块(Bad Block)。因此闪存的存储管理方法还需要考虑到读写的效率和使用寿命。尤其是针对嵌入式系统而言,如何在资源有限的情况下实现一套有效的闪存存储 管理方法,在数据读写效率以及闪存的使用寿命,乃至实际可用容量方面达到可接受的范 围,是非常重要的。现有的,为了满足应用上的任意地址随机覆写的要求,往往采 用逻辑地址(Logical Address)与物理地址(Physical Address)映射的方法。具体而言, 在对闪存进行读写操作时,首先要将数据的逻辑地址转换成闪存的实际物理地址,再读取 或写入数据,其中的转换则是利用映射表来实现的。原理如下1、对闪存的所有物理块建立一张分配表(Physical Block Assign Table,以下简称Assign Table),如图1所示其中每个块的状态用一位(bit)表示,且“1”表示含有数 据的块,称之为数据块(Used Block),“0”表示未写过数据块,称之为空块(Empty Block)。2、保留一定比例的物理块作为冗余块(Redundant Block),剩下的物理块作为可 访问的逻辑可用物理块(以下简称逻辑块),其数量X等于物理块的总数Y减去冗余块的个 数Z。3、建立逻辑块地址(Logical Block Address)与物理块地址(Physical BlockAddress) 1 W ^ft tit 0 M ^ (Logical to Physical Block Address Mapping Table,以下简称L2P Table)。假设逻辑块地址用χ表示,物理块地址用y表示,映射表用T 表示,则其映射关系为y = T (χ),其中χ的取值范围为{O X},y的取值范围为{O Y}。4、如前所述,闪存的基本读写单位是页,擦除则以块为单位。同一型号的闪存的每 个块包含的页的数量是相同的,因此在对闪存进行页地址访问时,先通过映射表得到物理 块的地址,然后再找到对应的页地址即可。5、应用程序对闪存的访问大多以扇区(Sector)为单位,而页的大小是扇区的倍 数,因此通常建立一个与页大小相同的缓存区来实现。在以上几点的基础上,来详细描述对闪存进行读写操作的原理对闪存进行读操作的过程是比较简单的,只需直接将扇区地址转换成闪存的物理 块地址和对应的页地址,读取整个页之后,获得对应的扇区数据即可。在对闪存进行写操作时,由于会涉及到覆盖写已有数据的页地址,此时通常采用 的方法是在Assign Table中找一个空块,将原来被覆写的块中的数据与需要写入的新数据 一起写到该空块当中,再将之前的块擦除,并更新L2P Table和Assign Table。下面结合图1至图3来详细描述数据写入闪存的情况。假设物理块的总数为4096 个,保留96个物理块作为冗余块,则逻辑块为4000个。则闪存的物理块地址为0 4095, 逻辑块地址0 3999,每个块含有1 页,且另每个页的大小为一个扇区。初始状态下,即在未写入数据之前,L2P Table和Assign Table的初始状态如图1 所示。从L2P Table可以看出,逻辑块2映射至物理块4104,且物理块4104的状态为“1”, 代表其已写入数据。现要将一个页大小的数据写入到逻辑块2的页3中首先,依据L2P Table找到逻辑块2对应的物理块,即物理块4104。由于物理块 4104的状态为“1”,则需要对其进行覆写操作。为此,从Assign Table中找到第一个空的 物理块,假定是物理块133。然后把物理块4104除页3以外的其它数据与新数据一起写入 到物理块133中,如图2所示。最后擦除物理块4104,并更新L2P Table和Assign Table,得到如图3所示的写 入完成状态。上述方案虽然可以满足应用上的任意地址随机覆写的要求,但其主要缺点在于 需要对整个闪存建表,对RAM的资源需求也相应较高。以上述4096个物理块的闪存为例, Assign Table用Ibit表示每个物理块的状态,大小为4096*lbit = 512Byte ;由于4096 = 212,则L2P Table需用12bit表示物理块的地址,由于冗余块数设定为96个,逻辑块数最大 支持到4000个,则L2P Table大小为4000*12bit = 6000Byte。显然,对于以KB为单位计 算RAM的嵌入式系统而言,这种建表方式是比较大的负担。尤其是当闪存容量较大,物理块数更多时,所占的RAM更是成比例增长。可见,现有技术对整个闪存建立逻辑块地址与物理块地址之间的块地址映射表 (L2P Table),利用映射表来进行存储管理,闪存的容量越大,存储管理所占的RAM也按比例 增加,成本也会相应增加。
技术实现思路
本专利技术的目的在于提供一种,以解决现有存储管理对RAM的资 源需求较高,成本较大的问题。为解决以上技术问题,本专利技术提供一种,包括建立表格,其包 括将闪存划分为至少一个区以及至少两个域,每个域包括多个物理块,本文档来自技高网
...

【技术保护点】
一种闪存存储管理方法,其特征是,包括:建立表格,其包括:将闪存划分为至少一个区以及至少两个域,每个域包括多个物理块,且区大小为域大小的整数倍;以区为单位,建立物理块分配表;以域为单位,建立逻辑块地址与物理块地址之间的块地址映射表;调用表格,其包括:仅调用当前读写操作地址所对应域的块地址映射表与其所对应区的物理块分配表至RAM;进行读写操作,其包括:依据RAM中的块地址映射表进行逻辑地址与物理地址转换,然后依据RAM中的物理块分配表进行相应的读写操作。

【技术特征摘要】

【专利技术属性】
技术研发人员:张钦苗诗君聂仙丽龚静
申请(专利权)人:中颖电子股份有限公司
类型:发明
国别省市:31[中国|上海]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1