CN102043721B - 闪存存储管理方法 - Google Patents

闪存存储管理方法 Download PDF

Info

Publication number
CN102043721B
CN102043721B CN201010172669.0A CN201010172669A CN102043721B CN 102043721 B CN102043721 B CN 102043721B CN 201010172669 A CN201010172669 A CN 201010172669A CN 102043721 B CN102043721 B CN 102043721B
Authority
CN
China
Prior art keywords
block
territory
district
ram
address
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN201010172669.0A
Other languages
English (en)
Other versions
CN102043721A (zh
Inventor
张钦
苗诗君
聂仙丽
龚静
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SINO WEALTH ELECTRONIC CO Ltd
Original Assignee
SINO WEALTH ELECTRONIC CO Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by SINO WEALTH ELECTRONIC CO Ltd filed Critical SINO WEALTH ELECTRONIC CO Ltd
Priority to CN201010172669.0A priority Critical patent/CN102043721B/zh
Publication of CN102043721A publication Critical patent/CN102043721A/zh
Application granted granted Critical
Publication of CN102043721B publication Critical patent/CN102043721B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Memory System (AREA)
  • Read Only Memory (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

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

Description

闪存存储管理方法
技术领域
本发明涉及闪存技术领域,特别是涉及一种闪存存储管理方法。
背景技术
快闪存储器(Flash Memory),简称闪存,是一种非易失性存储器,即在断电情况下仍能保持其所存储的数据信息。闪存是一种特殊的、以大区块擦写的电可擦可编程只读存储器(EEPROM),允许在操作中被多次擦(Erase)或写(Program)。其成本和速度相对于普通的以字节为单位写入的EEPROM具有极大的优势,因此成为非易失性固态储存最重要也最广为采纳的技术。
目前,闪存主要分为NOR型和NAND型两种,其中NAND Flash相较于NOR Flash具有擦写速度快,储存密度高,单位成本低等优点,因此非常适合用于记忆卡与U盘之类的大容量储存装置,例如,在笔记本电脑、PDA、随身听,数码相机与手机等电子产品上均可以见到。
虽然,闪存相对于普通的以字节为单位写入的EEPROM具有极大的优势,但也存在着一些限制,这些限制主要表现在其擦写方式上。例如,闪存的物理单元在写操作(Program)时只能由“1”变成“0”,因此当一个单元写过之后,只能借助擦除操作(Erase)来回复“1”的状态,才可再次写入。目前,NANDFlash在物理上分为块(Block)和页(Page),例如,一个NAND Flash由n个块组成,每个块又被划分为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)之间的块地址映射表(Logical to Physical Block Address Mapping Table,以下简称L2P Table)。假设逻辑块地址用x表示,物理块地址用y表示,映射表用T表示,则其映射关系为y=T(x),其中x的取值范围为{0~X},y的取值范围为{0~Y}。
4、如前所述,闪存的基本读写单位是页,擦除则以块为单位。同一型号的闪存的每个块包含的页的数量是相同的,因此在对闪存进行页地址访问时,先通过映射表得到物理块的地址,然后再找到对应的页地址即可。
5、应用程序对闪存的访问大多以扇区(Sector)为单位,而页的大小是扇区的倍数,因此通常建立一个与页大小相同的缓存区来实现。
在以上几点的基础上,来详细描述对闪存进行读写操作的原理:
对闪存进行读操作的过程是比较简单的,只需直接将扇区地址转换成闪存的物理块地址和对应的页地址,读取整个页之后,获得对应的扇区数据即可。
在对闪存进行写操作时,由于会涉及到覆盖写已有数据的页地址,此时通常采用的方法是在Assign Table中找一个空块,将原来被覆写的块中的数据与需要写入的新数据一起写到该空块当中,再将之前的块擦除,并更新L2P Table和Assign Table。
下面结合图1至图3来详细描述数据写入闪存的情况。假设物理块的总数为4096个,保留96个物理块作为冗余块,则逻辑块为4000个。则闪存的物理块地址为0~4095,逻辑块地址0~3999,每个块含有128页,且另每个页的大小为一个扇区。
初始状态下,即在未写入数据之前,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用1bit表示每个物理块的状态,大小为4096*1bit=512Byte;由于4096=212,则L2P Table需用12bit表示物理块的地址,由于冗余块数设定为96个,逻辑块数最大支持到4000个,则L2P Table大小为4000*12bit=6000Byte。显然,对于以KB为单位计算RAM的嵌入式系统而言,这种建表方式是比较大的负担。尤其是当闪存容量较大,物理块数更多时,所占的RAM更是成比例增长。
可见,现有技术对整个闪存建立逻辑块地址与物理块地址之间的块地址映射表(L2P Table),利用映射表来进行存储管理,闪存的容量越大,存储管理所占的RAM也按比例增加,成本也会相应增加。
发明内容
本发明的目的在于提供一种闪存存储管理方法,以解决现有存储管理对RAM的资源需求较高,成本较大的问题。
为解决以上技术问题,本发明提供一种闪存存储管理方法,包括:建立表格,其包括:将闪存划分为至少一个区以及至少两个域,每个域包括多个物理块,且区大小为域大小的整数倍;以区为单位,建立物理块分配表;以域为单位,建立逻辑块地址与物理块地址之间的块地址映射表;调用表格,其包括:仅调用当前读写操作地址所对应域的块地址映射表与其所对应区的物理块分配表至RAM;进行读写操作,其包括:依据RAM中的块地址映射表进行逻辑地址与物理地址转换,然后依据RAM中的物理块分配表进行相应的读写操作。
进一步的,所述的闪存存储管理方法,还包括存储表格,其包括:将每个区的物理块分配表块与该区内域的地址映射表存储至该区的一物理空块中,形成表记录块;利用数组记录每个表记录块的地址。
进一步的,所述区大小为域大小的一倍。
进一步的,继续进行读写操作之前还包括:判断当前读写操作地址所对应的域的块地址映射表是否在RAM中;若在RAM中,则返回以上读写操作步骤;若不在RAM中,则将RAM中的块地址映射表与物理块分配表写入相应的表记录块中,返回以上调用表格步骤,以调用的表格替换RAM中的块地址映射表与物理块分配表,以进行读写操作。
进一步的,所述区大小为域大小的两倍或两倍以上。
进一步的,继续进行读写操作之前还包括:判断当前读写操作地址所对应的区的物理块分配表是否在RAM中;若在RAM中,则判断当前读写操作地址所对应的域的块地址映射表是否在RAM中:若是,则返回以上读写操作步骤;若否,则将RAM中的块地址映射表写入相应的表记录块中,并调用当前读写操作地址所对应域的块地址映射表替换RAM中的块地址映射表,以进行读写操作;若不在RAM中,则将RAM中的块地址映射表与物理块分配表写入相应的表记录块中,返回以上调用表格步骤,以调用的表格替换RAM中的块地址映射表与物理块分配表,以进行读写操作。
采用以上闪存存储管理方法,在任意时刻,RAM中仅需暂存一个域的块地址映射表与一个区的物理块分配表,相对于现有技术中存储整个闪存的块地址映射表与物理块分配表,其所占的RAM资源大幅减少,成本随之降低。
附图说明
图1至图3为一种现有的闪存存储管理方法中数据写入闪存的示意图;
图4为本发明一实施例所提供的闪存存储管理方法的流程示意图;
图5为本发明实施例一所提供的闪存存储管理方法的流程示意图;
图6为本发明实施例一所提供的闪存存储管理方法中块地址映射表和物理块分配表的示意图以及域表记录块地址数组的示意图;
图7为本发明实施例二所提供的闪存存储管理方法的流程示意图;
图8为本发明实施例二所提供的闪存存储管理方法中块地址映射表的示意图以及区表记录块地址数组的示意图。
具体实施方式
为使本发明的目的、特征更明显易懂,下面结合附图对本发明的具体实施方式作进一步的说明。
现有技术对整个闪存建立逻辑块地址与物理块地址之间的块地址映射表(L2P Table),利用映射表来进行存储管理;然而,闪存的容量越大,存储管理所占的RAM也按比例增加,成本也会相应增加。为了解决这一问题,本发明实施例提出了一种分区域建表的方案,即将整个闪存划分为至少一个区以及至少两个域;以区为单位,建立物理块分配表;以域为单位,建立逻辑块地址与物理块地址之间的块地址映射表;且任意时刻只有一个域块地址映射表与其所在区的物理块分配表常驻在RAM当中,以减少对RAM资源的需求。
下面结合图4,详述利用以上建表方式实现闪存存储管理方法。如图所示,该方法包括建立表格、调用表格和进行读写操作等步骤,其中建立表格的过程包括:
步骤S11:将闪存划分为至少一个区(District)以及至少两个域(Zone),其中每个域包括多个物理块,且区大小为域大小的整数倍。具体而言,就是对闪存按一定数量的物理块进行划分,例如,以1024个物理块为单位划为一个域;而区的划分可以与域的划分相同,也可以按一定数量的域进行划分,例如,以4个域为单位划为一个区。
步骤S12:以区为单位,建立物理块分配表(Assign Table);
步骤S13:以域为单位,建立逻辑块地址与物理块地址之间的块地址映射表(L2P Table)。
表格的建立完成后,便可以调用表格,对闪存进行读写操作。具体调用表格的过程包括:
步骤S21:仅调用当前读写操作地址所对应域的块地址映射表与其所对应区的物理块分配表至RAM。
进行读写操作的过程包括:
步骤S31:依据RAM中的块地址映射表进行逻辑地址与物理地址转换,然后依据RAM中的物理块分配表进行相应的读写操作。
以上提及,区的划分可以与域的划分相同,也可以按一定数量的域进行划分。下面分别通过实施例一与实施例二来详细描述以上两种情况下的闪存存储管理实现方法,以及它们之间的区别。
实施例一:区的划分与域的划分相同,即区大小为域大小的一倍。
由于区的划分与域的划分相同,也就是说,可以将区等同为域,即采用分域建表的方法来实现闪存的存储管理。具体,请参考图5,其包括如下步骤:
步骤S1、建立表格:由于在本实施例中,区等同为域。故在闪存划分的过程中,仅需进行域的划分。即按照一定数量的物理块将闪存划分成多个域。接下来,以域为单位,建立逻辑块地址与物理块地址之间的块地址映射表(L2PTable)以及物理块分配表(Assign Table),这样便为每个域建立了L2P Table和Assign Table,完成了表格建立的过程。
同样以4096个物理块的闪存为例,如果以1024个物理块为单位进行划分,则可以划分为4个域;保留24个物理块作为每个域的冗余块,则对于每个域而言,逻辑块数量为1000个;由此建立的L2P Table和Assign Table(如图6所示)。需要说明的是,由于每个域的物理块数量为1024,则L2P Table仅需10bit来表示物理块地址。
步骤S2、调用表格:现有技术在对闪存进行读写操作之前,需将整个闪存的L2P Table和Assign Table调用至RAM中,而在本实施例中,仅需将读写操作地址所对应域的L2P Table和Assign Table调用至RAM,便可以进行读写操作。即,任意时刻,只有一个域的L2P Table和Assign Table常驻在RAM当中。
步骤S3、当需要继续进行读写操作时,需判断当前读写操作地址所对应的域的块地址映射表是否在RAM中(步骤S4):若在RAM中,则返回以上读写操作步骤,即依据RAM中的L2P Table进行逻辑地址与物理地址转换,然后配合Assign Table进行相应的读写操作。若不在RAM中,则执行步骤S5,将RAM中的L2P Table和Assign Table写入相应的表记录块中;而后,返回步骤S2,以调用当前读写操作地址所对应域的表格,并以调用的表格替换RAM中的表格,进行读写操作。
以上所述的表记录块往往是在建立表格之后形成的,具体如下:
在每个域中选取一个物理空块,将该域的L2P Table和Assign Table储存至该物理空块中,则该物理块称之为表记录块。为了方便对表记录块进行寻址,利用数组记录每个表记录块的地址,该数组称为域表记录块地址数组(ZoneTable Block Address Array)。
同样以图6所示的情况为例,即闪存被划分为4个域,则相应的域表记录块地址数组包括四个元素,每个元素记录了一个域表记录块地址。如图6所示,第一元素表示域0的表记录块地址位于该域中的物理块0;第二元素表示域1的表记录块地址位于该域中的物理块689,......第四个元素表示域3的表记录块地址位于该域中的物理块2。当然,闪存所划分的域越多,该数组所含的元素越多;且通常每个元素由多个bit构成,其bit数往往与域内所含的物理块总数相配合,需能表达出所有物理块地址。例如,以上包含1024个物理块的域,通常利用10bit以上的元素来记录其域表记录块地址。较佳的,考虑到16bit基本可以满足现有的内存容量需求,故从通用性角度考虑,选用16bit来表达域表记录块地址。
可见,采用以上方案,任意时刻,只有一个域的L2P Table和Assign Table常驻于RAM当中,也就是说,其所占用RAM的资源仅是一个域的L2P Table和Assign Table以及域表记录块地址数组三者的大小。相对于现有技术中对整个闪存建表的方案来讲,其RAM资源的占用量大幅减小。为了使该效果更明显直观,下面以4096个物理块的闪存为例,来比较一下本方案与现有技术方案的RAM占用量。具体如图6所示,假设该内存被划分为4个域,且每个域表记录块的地址利用16bit的数组元素来表示,则记录4个域的表记录块的地址需要4*16bit=8Byte;一个域的Assign Table的大小为1024*1bit=128Byte;L2PTable的大小为1000*10bit=1250Byte;则RAM的需求量为(8+128+1250)Byte=1386Byte。从背景技术可以知道,现有技术对RAM资源的需求量为6512Byte。显然,该方案对RAM资源的需求大幅减少,且当域的大小进一步缩小时,还可以进一步减少对RAM的占用量。
虽然以上方案有效的减少了闪存在读写过程中对RAM资源的占用量,但是其也存在一定的缺陷。因为,在以上方案中,冗余块的配置也是按照域进行划分的,而对于一般存储应用而言,通常是存储介质越靠前的容量越经常使用,而越靠后的容量则越少用到。以闪存作为介质来看,因其写入操作都是先写入冗余块,再将数据块擦除变成新的冗余块,只要针对冗余块进行循环利用,按照现有技术的方式,对整个闪存配置冗余块,则整个闪存的擦写都是均匀的;而对于本方案而言,由于冗余块的配置也是按照域进行的,块的擦写只在同一个域内是均匀的,而不同域的数据访问是不均匀的,因此整个闪存的块擦写是不均匀的。
为此,针对以上方案的不足,实施例二提出一种改进方案,以兼顾存储管理所占的RAM开销与闪存的读写均匀性,从而有助于保持嵌入式系统的成本优势和延长闪存的读写使用寿命。
实施例二:区的划分与域的划分不同,即区大小为域大小的两倍或两倍以上。
由于区的划分与域的划分不同,且区大小为域大小的整数倍,则表明域是在区基础上的进一步划分。也就是说,在本方案中,首先将闪存划分为区,再将区划分为域;然后采用分区域建表来实现闪存的存储管理。具体,请参考图7,其包括如下步骤:
步骤S10、建立表格,其包括如下步骤:
首先将闪存划分为M个区,并对每个区建立物理块分配表(Assign Table),假定每个区的物理块数量为j。
然后将每个区再划分成N个域,并对每个域各自建立逻辑块地址与物理块地址之间的块地址映射表(L2P Table),假定每个域的逻辑块数为i。如此,相当于区内的每个域的逻辑块地址与整个区的物理块地址建立了L2P Table,相当于把实施例一中的域L2P Table分成几个子表,如图8所示。
步骤S20、调用表格:现有技术在对闪存进行读写操作之前,需将整个闪存的L2P Table和Assign Table调用至RAM中,而在本实施例中,仅需将读写操作地址所对应域的L2P Table与其所对应区的Assign Table调用至RAM,便可以进行读写操作。即,任意时刻,只有一个域的L2P Table和区的Assign Table常驻在RAM当中。
如此,当对闪存进行读写操作时,依据域的L2P Table进行逻辑地址与物理地址的转换,然后配合对应的区的Assign Table进行相应的读写操作。
步骤S30、当需要继续进行读写操作时,需判断当前读写操作地址所对应的区的物理块分配表是否在RAM中(步骤S40):
若在RAM中,则执行步骤S50判断当前读写操作地址所对应的域的块地址映射表是否在RAM中:若在,则返回步骤S30,对闪存进行读写操作,即依据域的L2P Table进行逻辑地址与物理地址的转换,然后配合对应的区的AssignTable进行相应的读写操作;若不在,则执行步骤S60,将RAM中的块地址映射表写入相应的表记录块中,并调用当前读写操作地址所对应域的块地址映射表替换RAM中的块地址映射表(步骤S70),以进行读写操作;
若不在RAM中,则执行步骤S80,将RAM中的块地址映射表与物理块分配表写入相应的表记录块中,返回以上调用表格步骤(S20),以调用的表格替换RAM中的块地址映射表与物理块分配表,以进行读写操作。
以上所述的表记录块往往是在建立表格之后形成的,具体如下:
在每个区中选取一个物理空块,将该区中每个域的L2P Table和Assign Table储存至该物理空块中,则这些物理块称之为表记录块。为了方便对表记录块进行寻址,利用数组记录每个表记录块的地址,该数组称为区表记录块地址数组(District Table Block Address Array)。
本实施例与实施例一的区别在于L2P Table与Assign Table的采用不同的大小进行划分,下面的讨论可以看出这种划分方式的好处。
首先,在RAM开销上:本方案与实施例一的方案类似,为一个域L2P Table、一个区Assign Table以及区表记录块地址数组三者的大小。同样以4096个物理块的闪存为例,来比较一下本方案与现有技术方案的RAM占用量。具体如图8所示,假设整个闪存被划分为一个区,建立Assign Table,其大小为4096×1bit=512Byte;保留96个物理块作为冗余块,且一个区被划分为4个域,每个域分别建立L2P Table,此时L2P Table中物理块地址范围是区内的4096个物理块,需要用12bit(4096=212)来表示,因此每个L2P Table的大小为1000×12bit=1500Byte。可见Assign Table和L2P Table加起来不到2KB,其远小于现有技术中对RAM资源的需求量(6512Byte)。
其次,在读写均匀性上:本方案对冗余块的配置是按照区进行划分的,且区的大小为域大小的两倍或两倍以上,则其读写均匀性优于实施例一所述的情况。尤其当整个闪存被划分为一个区时,其读写均匀性并未受到影响。
可见,以上方案对RAM资源的需求量不到2KB,但是却兼顾了存储管理所占的RAM开销与闪存的读写均匀性两方面的优点。
需要提及的是,Assign Table是以bit为单位存放,其资源占用量远小于L2PTable,因此在划分区建立Assign Table时,可以考虑将整个闪存作为一个区来处理,则与现有技术中建Assign Table是一样的。由实施例一的讨论可知,区越大,冗余块的擦写均匀生越好。而L2P Table存放的是块地址,需要较多的RAM资源,因而域的大小应当越小越好。但考虑到访问闪存的地址存在跨域的问题,此时需要把表格回写,访问效率会受一定影响,域划分的越多,跨域的几率越高,访问效率越低。因此域的划分也应当按实际应用取一个合适的值。
故,在闪存访问效率基本不受影响的情况下,可将区划分成更多个域,分别建立L2P Table。例如将区划分为16个域,则平均每个域的L2PTable的大小为250*12bit=500Byte。因此与Assign Table加起来所占的RAM开销不到1KB,而冗余块的配置不变,闪存擦写的均匀性并未受影响,可见在性能上没有多少妥协的情况下该方案可以进一步减少RAM资源的占用。此外,若是闪存容量较大,物理块数较多,可考虑划分成多个区,尽管会对闪存的均匀性造成一定的影响,但在RAM资源紧张的情况下,也不失为一种折中的方案。同样以4096个物理块的闪存为例,若是整个闪存划分成2个区(每个区为2048个物理块)建立Assign Table,其大小为2048×1bit=256Byte;每个区划分成8个域(每个域为256个物理块,冗余块为6个),此时L2P Table中物理块地址范围是区内的2048个物理块,则需要用11bit(2048=211)来表示,因此每个L2P Table的大小为250×11bit=344Byte。此时Assign Table和L2P Table加起仅600Byte。总之,本发明不限制区和域的划分数量,设计人员可依据实际情况,采取灵活的区和域的划分方式,满足实际需求。
综上所述,现有技术对整个闪存建立L2P Table和Assign Table来进行存储管理,所占的RAM资源较大,但具有较好的读写均匀性;实施例一以域为单位建立L2P Table和Assign Table来进行存储管理,所占的RAM资源大幅减少,但有读写均匀性的缺陷;实施例二以区为单位建立Assign Table,以域为单位建立L2P Table,兼顾了存储管理所占的RAM开销与闪存的读写均匀性两方面的优点,尽管从整体上来讲其对RAM资源的需求介于现有技术与实施例一之间,但总体来说更接近实施例一,资源需求较低,此外还可以根据实际应用情况进行灵活调整,以减少成本压力,尤其是对嵌入式系统而言,是比较理想的一种方案。

Claims (3)

1.一种闪存存储管理方法,其特征是,包括:
建立表格,其包括:
将闪存划分为至少两个区,所述区还包括域,每个域包括多个物理块,每个物理块包括多个页,且区大小为域大小的两倍或两倍以上;
以区为单位,建立物理块分配表;
以区为单位,将若干物理块定义为冗余块;
以域为单位,建立逻辑块地址与物理块地址之间的块地址映射表;其中,所述物理块分配表对应的物理块地址范围大于所述块地址映射表对应的物理块地址范围;
调用表格,其包括:
仅调用当前读写操作地址所对应域的块地址映射表与其所对应区的物理块分配表至RAM;
进行读写操作,其包括:
依据RAM中的块地址映射表进行逻辑地址与物理地址转换,然后依据RAM中的物理块分配表进行相应的读写操作。
2.根据权利要求1所述的闪存存储管理方法,其特征是,还包括存储表格,其包括:
将每个区的物理块分配表块与该区内域的地址映射表存储至该区的一物理空块中,形成表记录块,所述物理空块为未写入数据的物理块;
利用数组记录每个表记录块的地址。
3.根据权利要求2所述的闪存存储管理方法,其特征是,继续进行读写操作之前还包括:
判断当前读写操作地址所对应的区的物理块分配表是否在RAM中;
若在RAM中,则判断当前读写操作地址所对应的域的块地址映射表是否在RAM中:
若是,则返回以上读写操作步骤;
若否,则将RAM中的块地址映射表写入相应的表记录块中,并调用当前读写操作地址所对应域的块地址映射表替换RAM中的块地址映射表,以进行读写操作;
若不在RAM中,则将RAM中的块地址映射表与物理块分配表写入相应的表记录块中,返回以上调用表格步骤,以调用的表格替换RAM中的块地址映射表与物理块分配表,以进行读写操作。
CN201010172669.0A 2010-05-12 2010-05-12 闪存存储管理方法 Expired - Fee Related CN102043721B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201010172669.0A CN102043721B (zh) 2010-05-12 2010-05-12 闪存存储管理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201010172669.0A CN102043721B (zh) 2010-05-12 2010-05-12 闪存存储管理方法

Publications (2)

Publication Number Publication Date
CN102043721A CN102043721A (zh) 2011-05-04
CN102043721B true CN102043721B (zh) 2016-10-26

Family

ID=43909872

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201010172669.0A Expired - Fee Related CN102043721B (zh) 2010-05-12 2010-05-12 闪存存储管理方法

Country Status (1)

Country Link
CN (1) CN102043721B (zh)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102306124A (zh) * 2011-08-01 2012-01-04 深圳市文鼎创数据科技有限公司 Nand Flash芯片硬件驱动层的实现方法
CN102521156A (zh) * 2011-12-12 2012-06-27 云海创想信息技术(天津)有限公司 一种映射关系访问方法和装置
CN102819496B (zh) * 2012-08-16 2015-02-18 常州新超电子科技有限公司 闪存ftl的地址转换方法
CN102981963B (zh) * 2012-10-30 2015-12-02 华中科技大学 一种固态盘的闪存转换层的实现方法
CN106557432B (zh) * 2015-09-29 2019-08-06 群联电子股份有限公司 缓冲存储器管理方法、存储器控制电路单元及存储装置
US9940261B2 (en) 2016-05-05 2018-04-10 Western Digital Technology, Inc. Zoning of logical to physical data address translation tables with parallelized log list replay
CN107015919A (zh) * 2017-04-13 2017-08-04 济南浪潮高新科技投资发展有限公司 Nand‑flash存储阵列Mapping管理方法
CN107957852B (zh) * 2017-10-13 2021-08-13 记忆科技(深圳)有限公司 一种提升固态硬盘性能一致性的方法
CN108255742A (zh) * 2017-11-29 2018-07-06 深圳忆联信息系统有限公司 一种大容量固态硬盘映射方法
CN108255436A (zh) * 2018-01-25 2018-07-06 广东美的制冷设备有限公司 数据存取方法、存取装置、家电设备和可读存储介质
CN109408403A (zh) * 2018-10-12 2019-03-01 深圳市硅格半导体有限公司 基于存储设备底层的映射方法、装置、系统及存储介质
CN109542799B (zh) * 2018-11-05 2023-03-28 西安智多晶微电子有限公司 块存储器拼接方法、拼接模块、存储装置及现场可编程门阵列
CN115543865B (zh) * 2022-11-25 2023-04-11 成都佰维存储科技有限公司 掉电保护方法、装置、可读存储介质及电子设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1241786A (zh) * 1998-06-30 2000-01-19 索尼株式会社 数据存储器、数据处理系统和方法
CN1932778A (zh) * 2006-07-23 2007-03-21 海信集团有限公司 一种对nand flash存储器进行虚拟空间管理的方法
CN101075211A (zh) * 2007-06-08 2007-11-21 马彩艳 基于sector访问的flash存储器的存储管理

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101625661B (zh) * 2008-07-07 2013-01-23 群联电子股份有限公司 用于闪存的数据管理方法、储存系统与控制器
CN101661431B (zh) * 2008-08-29 2011-11-09 群联电子股份有限公司 用于快闪存储器的区块管理方法、快闪储存系统及控制器

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1241786A (zh) * 1998-06-30 2000-01-19 索尼株式会社 数据存储器、数据处理系统和方法
CN1932778A (zh) * 2006-07-23 2007-03-21 海信集团有限公司 一种对nand flash存储器进行虚拟空间管理的方法
CN101075211A (zh) * 2007-06-08 2007-11-21 马彩艳 基于sector访问的flash存储器的存储管理

Also Published As

Publication number Publication date
CN102043721A (zh) 2011-05-04

Similar Documents

Publication Publication Date Title
CN102043721B (zh) 闪存存储管理方法
US11880602B2 (en) Data writing method and storage device
CN102841851B (zh) 闪存管理方法和闪存设备
KR100885181B1 (ko) 그룹 맵핑 동작을 수행하는 메모리 시스템 및 그것의어드레스 맵핑 방법
US8583860B2 (en) Block management method for flash memory and controller and storage system using the same
US8046526B2 (en) Wear leveling method and controller using the same
CN101354681B (zh) 存储器系统、非易失性存储器的磨损均衡方法及装置
US20170160942A1 (en) Data storage device and flash memory control method
US8656090B2 (en) Method for performing block management, and associated memory device and controller thereof
CN106293521A (zh) 一种映射粒度自适应的闪存转换层管理方法
CN104077235A (zh) 分割物理块的方法及存储器系统
CN105278875B (zh) 一种混合异构nand固态硬盘
CN101556555B (zh) 用于闪存的区块管理方法、其控制器与储存系统
CN104679440A (zh) 一种闪存阵列管理方法及装置
CN102214143A (zh) 一种多层单元闪存的管理方法、装置及存储设备
CN115437580B (zh) 一种数据存储设备的管理方法、系统及数据存储设备
CN102520885B (zh) 一种混合硬盘的数据管理系统
CN108073359B (zh) 数据储存装置的操作方法
CN101609431B (zh) 闪存装置的运作方法及闪存装置
CN102763070B (zh) 磁盘缓存的管理方法及装置
TWI687811B (zh) 資料儲存裝置及系統資訊的編程方法
CN101604291B (zh) 增进多级单元非挥发性内存的数据存取可靠度的方法
CN106205707A (zh) 存储器装置
KR101119866B1 (ko) 파티션별로 플랙시블한 크기의 로그블록을 포함하는 플래시 메모리 및 이를 이용한 메모리 시스템
CN106201326A (zh) 信息处理装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20161026

Termination date: 20200512

CF01 Termination of patent right due to non-payment of annual fee