CN101556555B - 用于闪存的区块管理方法、其控制器与储存系统 - Google Patents
用于闪存的区块管理方法、其控制器与储存系统 Download PDFInfo
- Publication number
- CN101556555B CN101556555B CN200810092701.7A CN200810092701A CN101556555B CN 101556555 B CN101556555 B CN 101556555B CN 200810092701 A CN200810092701 A CN 200810092701A CN 101556555 B CN101556555 B CN 101556555B
- Authority
- CN
- China
- Prior art keywords
- physical blocks
- blocks
- those
- flash memory
- data
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title abstract description 17
- 238000013507 mapping Methods 0.000 claims abstract description 33
- 238000007726 management method Methods 0.000 claims description 63
- 238000012217 deletion Methods 0.000 claims description 8
- 230000037430 deletion Effects 0.000 claims description 8
- 239000007787 solid Substances 0.000 claims description 4
- 230000002035 prolonged effect Effects 0.000 abstract 1
- 238000010586 diagram Methods 0.000 description 11
- 230000008569 process Effects 0.000 description 6
- 230000009183 running Effects 0.000 description 6
- 230000009471 action Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 238000000605 extraction Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000005299 abrasion Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012797 qualification Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
Images
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System (AREA)
Abstract
本发明公开一种区块管理方法,其适用于管理闪存的多个逻辑区块与多个实体区块之间的映射关系。此区块管理方法包括将逻辑区块分组为多个逻辑区域。此方法也包括以逻辑区域为单位在对应的逻辑区域表中记录每一逻辑区域内的每一逻辑区块与实体区块中所有数据实体区块之间的映射关系。此方法还包括以单一无数据实体区块表来记录实体区块中所有的无数据实体区块。基于此,逻辑区域可与所有实体区块进行映射,因此可减少因使用者对特定逻辑区域重复写入数据时而造成对特定实体区块的频繁编程和抹除,由此延长闪存的寿命。
Description
技术领域
本发明是有关于一种存储器管理方法,且特别是有关于一种在有限系统资源下管理大量闪存实体区块的区块管理方法及使用此方法的闪存控制器与闪存储存系统。
背景技术
近年来,由于数码相机、具有照相功能的手机、MP3,以及MP4的成长十分迅速,所以使得消费者对储存媒体的需求也急剧增加。综观现今所有的储存媒体而言,由于闪存(Flash Memory)具有数据非挥发性、省电、体积小,以及无机械结构等特性,所以最适合内建于上述所举例的多种可携式多媒体装置中。再者,由于小型存储卡与随身盘等外接式产品对于现代人而言的需求也很大,所以各家闪存的制造厂商无不朝向让闪存的容量变得更大及延长使用寿命的研发方向而努力。
由于闪存的存储单元在编程(program)时仅能单方向改变存储器的状态(例如由”1”变为”0”)。因此,在对闪存进行写入数据时,必需先对区块进行抹除的动作后才能进行编程的程序。一般来说,闪存的实体区块(physical block)会包括记录有效数据的数据实体区块以及无记录数据或所存数据已标记为无效数据的无数据实体区块。当欲写入数据的闪存中时闪存储存系统会借由以无数据实体区块替换已存有旧的数据实体区块来提升编程(即写入与抹除)的效率。由于实际记录数据的实体区块不断在轮动(即数据实体区块与无数据实体区块的替换),因此在闪存储存系统中闪存会设计有逻辑区块(logical block)以映射(mapping)不断轮动替换的实体区块,以提供闪存储存系统进行存取。
为了能够在有限系统资源下管理闪存中大量的逻辑区块与实体区块之间的映射关系,一般来说会将闪存中的逻辑区块区分为数个逻辑区域同时实体区块亦会被区分为数个实体区域。图1是绘示现有技术中将逻辑区块与实体区块区分为对应逻辑区域与实体区域的示意图。请参照图1,逻辑区域LZ1、LZ2、...、LZP会分别地对应特定实体区域PZ1、PZ2、...、PZP,并且每一逻辑区域LZ1、LZ2、...、LZP内的逻辑区块仅会映射其所对应特定实体区域PZ1、PZ2、...、PZP内的实体区块,而每一实体区域内的数据实体区块与无数据实体区块仅在此实体区域内进行轮动替换。例如逻辑区块1-1~1-k仅会映射实体区块1-0~1-L,并且实体区域PZ1内的数据实体区块与无数据实体区块替换仅限于在实体区块1-0~1-L之中轮动。换言之,在区块的管理上每一逻辑区域及其对应的实体区域是独立运作。因此,每当闪存储存系统欲写入数据时,仅需针对欲写入数据的逻辑区域及其对应的实体区域进行管理控制。
然而,在现有区块管理方法中每当闪存储存系统重新启动或开机后第一次存取某一逻辑区域时,闪存储存系统必须花费大量的时间重新建立每一逻辑区域与实体区域之间的对应关系。
此外,当实体区域内损坏的实体区块超过一定数量而使得无数据实体区块不足以进行轮动替换时,此整个实体区域内的实体区块将无法再作为储存之用,而造成生产上良率不佳或闪存储存系统可储存容量不足等问题。
再者,当使用者对于特定一逻辑区域内的逻辑区块进行频繁读写时会造成此逻辑区域所对应实体区域内的实体区块抹除次数增加而缩短所对应实体区域内的实体区块的寿命。
发明内容
本发明提供一种区块管理方法,其能够改善提升闪存媒体的良率以及延长闪存的寿命。
本发明提供一种闪存控制器,其所执行的区块管理方法能够改善提升闪存媒体的良率以及延长闪存的寿命。
本发明提供一种闪存储存系统,其闪存控制器所执行的区块管理方法能够改善提升闪存媒体的良率以及延长闪存的寿命。
本发明提出一种区块管理方法,其适用于管理闪存的多个逻辑区块与多个实体区块的映射关系。此区块管理方法包括将逻辑区块分组为多个逻辑区域。此方法也包括以逻辑区域为单位在对应的逻辑区域表中记录每一逻辑区域内的每一逻辑区块与实体区块中所有数据实体区块之间的映射关系。此方法还包括以单一无数据实体区块表来记录实体区块中所有的无数据实体区块。
在本发明的一实施例中,上述的区块管理方法还包括以坏实体区块表来记录实体区块中所有的坏实体区块。
在本发明的一实施例中,上述的区块管理方法还包括当欲写入数据至逻辑区块时,依据无数据实体区块表从所有无数据实体区块中选择实体区块以写入数据。
在本发明的一实施例中,上述的区块管理方法还包括在对应的逻辑区域表中将欲写入数据的逻辑区块映射的实体区块更新为所选择的实体区块,以及在无数据实体区块表中删除所选择的实体区块并且加入欲写入数据的逻辑区块原本映射的实体区块。
本发明提出一种闪存控制器,其适用于具有闪存的闪存储存系统,其中闪存中具有多个逻辑区块与多个实体区块。此闪存控制器包括微处理单元、闪存接口、缓冲存储器以及存储器管理模组。闪存接口是电性连接至微处理单元且用以存取闪存。缓冲存储器是电性连接至微处理单元且用以暂时地储存数据。存储器管理模组是电性连接至微处理单元,其中存储器管理模组会将逻辑区块分组为多个逻辑区域,以逻辑区域为单位在对应的逻辑区域表中记录每一逻辑区域内的每一逻辑区块与实体区块中所有的数据实体区块之间的映射关系,并且以无数据实体区块表来记录实体区块中所有的无数据实体区块。
在本发明的一实施例中,上述的存储器管理模组会以坏实体区块表来记录实体区块中所有的坏实体区块。
在本发明的一实施例中,其中当欲写入数据至逻辑区块时,上述的存储器管理模组会依据无数据实体区块表从所有无数据实体区块中选择实体区块以写入数据。
在本发明的一实施例中,上述的存储器管理模组会在对应的逻辑区域表中将欲写入数据的逻辑区块映射的实体区块更新为所选择的实体区块,并且在无数据实体区块表中删除所选择的实体区块并且加入欲写入数据的逻辑区块原本映射的实体区块。
在本发明的一实施例中,上述的闪存为单层存储单元(Single Level Cell,SLC)与非(NAND)闪存或多层存储单元(Multi Level Cell,MLC)与非(NAND)闪存。
在本发明的一实施例中,上述的闪存储存系统为USB随身盘、存储卡或固态硬盘。
本发明提出一种闪存储存系统,其包括闪存控制器、总线连接接口以及闪存。总线连接接口是电性连接至闪存控制器且用以连接主机。闪存是电性连接至闪存控制器且用以储存数据。其中闪存控制器会将逻辑区块分组为多个逻辑区域,以逻辑区域为单位在对应的逻辑区域表中记录每一逻辑区域内的每一逻辑区块与实体区块中所有的数据实体区块之间的映射关系,并且以无数据实体区块表来记录实体区块中所有的无数据实体区块。
在本发明的一实施例中,上述的闪存控制器会以坏实体区块表来记录实体区块中所有的坏实体区块。
在本发明的一实施例中,其中当欲写入数据至逻辑区块时,上述的闪存控制器还包括依据无数据实体区块表从所有无数据实体区块中选择实体区块以写入数据。
在本发明的一实施例中,上述的闪存控制器会在对应的逻辑区域表中将欲写入数据的逻辑区块映射的实体区块更新为所选择的实体区块,并且在无数据实体区块表中删除所选择的实体区块并且加入欲写入数据的逻辑区块原本映射的实体区块。
在本发明的一实施例中,上述的闪存为单层存储单元(Single Level Cell,SLC)与非(NAND)闪存或多层存储单元(Multi Level Cell,MLC)与非(NAND)闪存。
在本发明的一实施例中,上述的总线连接接口为PCI Express接口、USB接口、IEEE 1394接口、SATA接口、MS接口、MMC接口、SD接口、CF接口或IDE接口。
本发明提出一种包括储存单元的闪存控制器,其中储存单元储存可由闪存控制器的微处理单元执行以实现一区块管理程序的编程码,此区块管理程序适用于管理闪存的多个逻辑区块与多个实体区块的映射关系,此区块管理程序包括将逻辑区块分组为多个逻辑区域。此程序也包括以逻辑区域为单位在对应的逻辑区域表中记录每一逻辑区域内的每一逻辑区块与实体区块中所有数据实体区块之间的映射关系。此程序还包括以单一无数据实体区块表来记录实体区块中所有的无数据实体区块。
在本发明的一实施例中,上述的区块管理程序还包括以坏实体区块表来记录实体区块中所有的坏实体区块。
在本发明的一实施例中,上述的区块管理程序还包括当欲写入数据至逻辑区块时,依据无数据实体区块表从所有无数据实体区块中选择实体区块以写入数据。
在本发明的一实施例中,上述的区块管理程序还包括在对应的逻辑区域表中将欲写入数据的逻辑区块映射的实体区块更新为所选择的实体区块,以及在无数据实体区块表中删除所选择的实体区块并且加入欲写入数据的逻辑区块原本映射的实体区块。
本发明因采用统一管理实体区块的方法,可减少因使用者对特定逻辑区域重复写入数据时而造成对特定实体区块的频繁编程和抹除,由此延长闪存的寿命。
附图说明
为让本发明的上述目的、特征和优点能更明显易懂,以下结合附图对本发明的具体实施方式作详细说明,其中:
图1是根据现有技术绘示区块管理的概念图。
图2是根据本发明实施例绘示闪存储存系统的概要方块图。
图3A~3C是根据本发明实施例绘示闪存及其运作的详细方块图。
图4是根据本发明实施例绘示区块管理的概念图。
图5是根据本发明实施例绘示区块管理方法的流程图。
图6是根据本发明实施例绘示写入数据至闪存储存系统的流程图。
图7是根据本发明实施例绘示从闪存储存系统中读取数据的流程图。
主要元件符号说明:
LZ1、LZ2、LZP:
PZ1、PZ2、PZP:
100:闪存储存系统
110:闪存控制器
110a:微处理单元
110b:闪存接口
110c:缓冲存储器
110d:存储器管理模组
120:总线连接接口
130:闪存
130-0、130-1、130-2、130-N:实体区块
200:主机
204:数据区
206:备用区
208:替换实体区块
300:总线
S501、S503、S505:区块管理方法的步骤
S601、S603、S605、S607、S609:数据写入的步骤
S701、S703、S705、S707:数据读取的步骤
S、M、C:区块
具体实施方式
为克服上述现有闪存区块管理方法的至少一缺点,本发明提出一种区块管理方法,其借由使闪存中所有实体区块都可作为每一逻辑区域内的逻辑区块映射的实体区块,并且以所有实体区块为基础(即不分区域)来轮动替换,由此避免在现有管理方法中因特定实体区域内实体区块的过度使用而缩短闪存的寿命。以下将以范例实施例并配合附图详细说明本发明。
图2是根据本发明实施例绘示闪存储存系统的概要方块图。请参照图2,闪存储存系统100包括闪存控制器110、总线连接接口120以及闪存130。通常闪存储存系统100会与主机200一起使用,以使主机200可将数据写入至闪存储存系统100或从闪存储存系统100中读取数据。在本实施例中,闪存储存系统100为随身盘。但必须了解的是,在本发明另一实施例中闪存储存系统100也可以是存储卡或固态硬盘(Solid State Drive,SSD)。
闪存控制器110会控制总线连接接口120以及闪存130的整体运作,例如数据的储存、读取与抹除等。闪存控制器110包括微处理单元110a、闪存接口110b、缓冲存储器110c与存储器管理模组110d。
微处理单元110a会协调控制闪存接口110b、缓冲存储器110c与存储器管理模组110d的运作。
闪存接口110b是电性连接至微处理单元110a并且用以存取闪存130。也就是,主机200欲写入至闪存130的数据会经由闪存接口110b转换为闪存130所能接受的格式。
缓冲存储器110c是电性连接至微处理单元110a,并且用以暂时地储存系统性数据(例如逻辑区块与实体区块的映射表)或者主机200所读取或写入的数据。在本实施例中,缓冲存储器110c为静态随机存取存储器(static randomaccess memory,SRAM)。然而,必须了解的是,本发明不限于此,动态随机存取存储器(Dynamic Random Access memory,DRAM)、磁阻式存储器(Magnetoresistive Random Access Memory,MRAM)、相变化存储器(PhaseChange Random Access Memory,PRAM)或其他适合的存储器亦可应用于本发明。
存储器管理模组110d是电性连接至微处理单元110a。存储器管理模组110d会管理闪存130,例如执行平均磨损(wear leveling)方法、坏区块管理、维护映射表(mapping table)等。特别是,在本发明实施例中,存储器管理模组110d会执行根据本发明实施例的区块管理程序(如图6所示)。
此外,虽未绘示于本实施例,但闪存控制器110还可包括错误校正模组与电源管理模组等一般闪存控制器常见的功能模组。
总线连接接口120用以透过总线300连接于主机200。在本实施例中,总线连接接口120为PCI Express接口。然而,必须了解的是本发明不限于此,总线连接接口120可以是USB接口、IEEE 1394接口、SATA接口、MS接口、MMC接口、SD接口、CF接口、IDE接口或其他适合的数据传输接口。
闪存130是电性连接闪存控制器110并且用以储存数据。闪存130通常实质上分割为多个实体区块(physical block)130-0至130-N。一般而言,在闪存中实体区块为抹除的最小单位。亦即,每一实体区块含有最小数目之一并被抹除的存储单元。每一实体区块通常会分割为数个页(page),例如64页、128页、256页等。页通常为编程(program)的最小单元,但要特别说明的是于有些不同的闪存设计,最小的编程单位也可为一个扇区(sector)大小,即一页中有多个扇区并以一扇区为编程的最小单元。换言之,页为写入数据或读取数据的最小单元。每一页通常包括使用者数据区D与冗余区R。使用者数据区D用以储存使用者的数据,而冗余区用R以储存系统性的数据(例如,错误校正码(errorcorrecting code,ECC))。为对应于磁盘驱动器的扇区(sector)大小,一般而言,使用者数据区D通常为512字节,而冗余区R通常为16字节。也就是,一页为一个扇区。然而,也可以多个扇区形成一页,例如一页包括4个扇区。在本实施中闪存130为多层存储单元(Multi Level Cell,MLC)NAND闪存。然而,必须了解的是,本发明不限于此。在本发明另一实施例中,单层存储单元(Single Level Cell,SLC)NAND闪存亦可应用于本发明。
以下将根据本发明并配合图式详细说明闪存130的运作。必须了解的是,在以下描述中使用“提取”、“搬移”、“交换”等词来操作闪存区块是逻辑上的概念。也就是说,闪存实体区块的实际位置并未更动,而是逻辑上对闪存实体区块进行操作。
图3A~3C是根据本发明实施例绘示闪存130及其运作的详细方块图。
请参照图3A,在本发明实施例中,为了有效率地编程(即写入与抹除)闪存130,闪存130的实体区块130-1至130-N会在逻辑上分组为一数据区204与一备用区206。一般来说,闪存130中属于数据区204的实体区块会占90%以上。
数据区204中的实体区块(以下称为数据实体区块)用以储存数据,一般来说就是主机200所操作的逻辑区块所对应的实体区块。
备用区206中的实体区块是用以替换数据实体区块,因此在备用区206中的实体区块(以下称为无数据实体区块)为空或可使用的区块,即无记录数据或标记为已没用的无效数据。
具体来说,由于若要对已写过数据位置再次写入数据时,必须先执行抹除的动作。然而,如前所述闪存写入单位为页,而抹除单位为区块。一个抹除的单位大于写入的单位,这表示若要执行区块抹除动作,必须先将欲抹除区块中的有效页复制至其它区块后才可进行。
因此,当欲在数据区204中已写过数据位置的数据实体区块M中写入新数据时,一般会在备用区206中提取一无数据实体区块S,然后将数据实体区块M中的有效数据复制至无数据实体区块S且将新数据写入无数据实体区块S后,将数据实体区块M抹除后搬移至备用区206同时将无数据实体区块S搬移至数据区204,此时实体区块M会变成为无数据实体区块并且实体区块S会变成为数据实体区块。必须了解的是,将数据实体区块M抹除后搬移至备用区206同时将无数据实体区块S搬移至数据区204是逻辑上将数据实体区块M关联于备用区206而将无数据实体区块S关联于数据区204。
一般来说,为了更有效率地使用闪存130,区块在逻辑上会更分为替换实体区块208。图3B是绘示闪存的另一种运作方式,而图3C是绘示图3B的详细运作示意图。
请参照图3B与3C,替换实体区块208是用来取代数据区204的实体区块。更详细而言,当从上述备用区206中提取实体区块C来取代数据区204的数据实体区块M时,会将新数据入至实体区块C,但不会立刻将数据实体区块M中的所有有效数据搬移至实体区块C而抹除数据实体区块M。具体来说,会将数据实体区块M中欲写入地址之前的有效数据(即页P0与P1)复制至实体区块C(如图3C的(a)),并且将新数据(即区块C的页P2与P3)写入至实体区块C(如图3C的(b))。此时,将含有部分的有效旧数据与所写入新数据的实体区块C暂时地关联为替换实体区块208。此是因为,数据实体区块M中的有效数据有可能在下个操作中变成无效,因此立刻将数据实体区块M中的所有有效数据搬移至实体区块C可能会造成无谓的搬移。在此案例中,在逻辑区块地址与实体区块地址的映射上会记录多个实体区块地址对应到一个逻辑区块地址的情况,也就是数据实体区块M与实体区块C的内容整合起来才是所映射逻辑区块的内容。
之后,当需要将数据实体区块M与实体区块C的内容真正合并时,才将数据实体区块M与实体区块C整并为一数据实体区块,由此提升实体区块的使用效率。例如,如图3C的(c)所示,当进行整并时,数据实体区块M中剩余的有效数据(即页P4~PN)会复制至实体区块C,然后将数据实体区块M抹除并关联为备用区206成为无数据实体区块,同时将实体区块C关联为数据区204成为数据实体区块,由此完成合并。此等母子区块(数据实体区块M与实体区块C(替换实体区块))的暂态关系可依据闪存控制器110中缓冲存储器110c的大小而定,在本发明实施例中是以五组来实作。
由于闪存130中的实体区块130-0至130-N会区分为数据实体区块、无数据实体区块与替换实体区块,并且以轮动替换的方式来储存数据,因此闪存储存系统100的闪存130会设计有逻辑区块,并且逻辑区块是映射闪存中的数据实体区块,或数据实体区块及其对应替换实体区块。具体来说,主机200在对闪存储存系统100在进行数据存取时是以逻辑区块的地址来进行数据的写入与读取,而闪存控制器110会依据逻辑区块与数据实体区块的映射关系在上述图3A~3C所示的运作下正确地将数据写入至实体区块或从实体区块中读取。
值得一提的是,在本发明实施例中,由于缓冲存储器110c的储存空间有限,无法同时储存闪存130所有逻辑区块与数据实体区块的映射关系。因此,根据本发明实施例的区块管理方法会将逻辑区块区分为数个逻辑区域(logicalzone),并且为每一逻辑区域建立逻辑区域表(logical zone table)来储存此逻辑区域内的逻辑区块与数据实体区块的映射关系。在本实施例中,此些逻辑区域表会存放于闪存130中,并且当需要读取其内容时才载入(load)至缓冲存储器110c。此外,在本实施例中,实体区块130-1至130-N是以整体来进行轮动替换。换言之,实体区块130-1至130-N不会对应逻辑区域而区分为数个实体区域。图4是根据本发明实施例绘示区块管理的示意图。请参照图4,为了在有限系统资源下管理大量的逻辑区块,逻辑区块会区分为数个逻辑区域LZ1、LZ2、...、LZP,另外实体区块130-0~130-N则不区分区域而以所有实体区块来进行轮动替换。换言之,相对于图1的每一实体区域内以L个实体区块单独地轮动替换,图4的实体区块是以所有N(N=P×L)个实体区块进行轮动替换。
以下将配合图4详细说明本发明实施例的区块管理方法。
图5是根据本发明实施例绘示区块管理方法的流程图。
请参照图5,当初始化闪存储存系统100时,在步骤S501中存储器管理模组110d会将为闪存130所定义的逻辑区块分组为多个逻辑区域。之后,在步骤S503中存储器管理模组110d会为每一逻辑区域建立逻辑区域表,其中逻辑区域表会记录逻辑区域内的每一逻辑区块和所有实体区块内的数据实体区块之间的映射关系。在步骤S505中,存储器管理模组110d会以单一无数据实体区块表来记录实体区块之中所有的无数据实体区块,以供闪存储存系统100写入数据时替换之用。
根据本发明实施例的区块管理方法,由于逻辑区块已区分为数个逻辑区,因此当主机200对闪存储存系统进行存取时,仅需开启欲读取逻辑区块所属逻辑区域的逻辑区域表来获取此逻辑区块所映射的实体区块,且在写入数据后更新其所映射的实体区块。基此,可在有限缓冲存储器110c储存空间下管理与维护闪存130的逻辑区块与实体区块之间的映射关系。此外,透过单一无数据实体区块表来记录可用的所有无数据实体区块,可使闪存内所有的实体区块一起轮动替换,由此避免因对特定实体区块过度使用而缩短闪存的寿命。
此外,在本发明实施例中还可包括以一坏实体区块表来记录闪存130中所有的坏实体区块。上述坏实体区块表可避免闪存控制器110误用已损毁的实体区块。
在本发明实施例中,当主机200欲对闪存储存系统100写入数据时,存储器管理模组110d会依据无数据实体区块表中的记录来选择备用区206中的无数据实体区块来写入此数据以替换数据区204中的数据实体区块。
图6是根据本发明实施例绘示写入数据至闪存系统100的流程图。
请参照图6,在步骤S601中会判断欲写入数据的逻辑区块所属的逻辑区域表是否已存于缓冲存储器110c中。倘若在步骤S601中判断缓冲存储器110c未存有欲写入数据的逻辑区块所属的逻辑区域表时,则在步骤S603中会从闪存130中载入对应的逻辑区域表至缓冲存储器110c。之后,在步骤S605中会依据无数据实体区块表中的记录来在所有无数据实体区块之中选择一实体区块,并且在步骤S607中将有效数据写入至所选择的实体区块中(如图3A~3C所示)。接着,在步骤S609中会将欲写入数据的逻辑区块所映射的实体区块更新为所选择的实体区块,并且在无数据实体区块表中删除所选择的实体区块并且加入欲写入数据的逻辑区块原本所映射的数据实体区块。
类似地,当主机200欲从闪存储存系统100中读取数据时仅需读取所对应的逻辑区域表。
图7是根据本发明实施例绘示从闪存储存系统100中读取数据的流程图。
请参照图7,在步骤S701中,会判断欲读取数据的逻辑区块所属的逻辑区域表是否已存于缓冲存储器110c中。倘若在步骤S701中判断缓冲存储器110c未存有欲读取数据的逻辑区块所属的逻辑区域表时,则在步骤S503中会从闪存130中载入对应的逻辑区域表至缓冲存储器110c。之后,在步骤S705中会从此逻辑区域表中获取欲读取数据的逻辑区块所映射的数据实体区块,并且在步骤S707中从此数据实体区块中读取数据。
值得一提的是,在本发明另一实施例中,上述区块管理方法(程序)、数据写入方法(程序)与数据读取方法(程序)是以编程码(固件码)来实作并且储存在闪存控制器110的储存单元(未绘示)中,并且由闪存控制器110的微处理单元110a来执行以完成上述步骤。
综上所述,本发明是以单一无数据实体区块表来记录闪存中所有的无数据实体区块,并且任一逻辑区域中的写入都是依据此无数据实体区块表来从所有可用的无数据实体区块中提取实体区块作为任一逻辑区域内的逻辑区块所映射的实体区块。基此,根据本发明的区块管理方法可避免因对特定一逻辑区域进行频繁读写所造成此逻辑区域所对应实体区域内的实体区块过度抹除而缩短闪存的寿命。此外,根据本发明的区块管理方法亦可避免因某一实体区域内的损坏区块过多所造成无法再使用此实体区域而造成生产上良率不佳的问题。再者,根据本发明的区块管理方法亦可避免建立每一逻辑区域与实体区域的对应关系而提升系统的效能。
虽然本发明已以较佳实施例揭示如上,然其并非用以限定本发明,任何本领域技术人员,在不脱离本发明的精神和范围内,当可作些许的修改和完善,因此本发明的保护范围当以权利要求书所界定的为准。
Claims (16)
1.一种区块管理方法,其适用于管理闪存的多个逻辑区块与多个实体区块的映射关系,该区块管理方法包括:
将该些逻辑区块分组为多个逻辑区域;
将该些实体区块分组为一个数据区与一个备用区;
分别地映射该些逻辑区块至该数据区的该些实体区块,其中每一该些逻辑区块映射该数据区的该些实体区块的其中之一;
以该些逻辑区域为单位在对应的逻辑区域表中记录每一逻辑区域内的每一逻辑区块与该数据区的该些实体区块之间的映射关系;以及
以一无数据实体区块表来记录该备用区的所有该些实体区块,其中该备用区的所有该些实体区块为无数据实体区块。
2.如权利要求1所述的区块管理方法,其特征在于,还包括以一坏实体区块表来记录该些实体区块中所有的坏实体区块。
3.如权利要求1所述的区块管理方法,其特征在于,还包括当欲写入数据至该些逻辑区块时,依据该无数据实体区块表从该备用区的该些实体区块中选择实体区块以写入该数据。
4.如权利要求3所述的区块管理方法,其特征在于,还包括:
在对应的该些逻辑区域表中将欲写入数据的该些逻辑区块映射的实体区块更新为所选择的实体区块;以及
在该无数据实体区块表中删除所选择的实体区块并且加入欲写入数据的该些逻辑区块原本映射的实体区块。
5.一种闪存控制器,其适用于具有闪存的闪存储存系统,其中该闪存中具有多个逻辑区块与多个实体区块,该闪存控制器包括:
微处理单元;
闪存接口,电性连接至该微处理单元且用以存取该闪存;
缓冲存储器,电性连接至该微处理单元且用以暂时地储存数据;以及
存储器管理模组,电性连接至该微处理单元,其中该存储器管理模组将该些逻辑区块分组为多个逻辑区域,将该些实体区块分组为一个数据区与一个备用区,分别地映射该些逻辑区块至该数据区的该些实体区块,以该些逻辑区域为单位在对应的逻辑区域表中记录每一逻辑区域内的每一逻辑区块与该数据区的该些实体区块之间的映射关系,并且以一无数据实体区块表来记录该备用区的所有该些实体区块,
其中每一该些逻辑区块映射该数据区的该些实体区块的其中之一,并且该备用区的所有该些实体区块为无数据实体区块。
6.如权利要求5所述的闪存控制器,其特征在于,该存储器管理模组以一坏实体区块表来记录该些实体区块中所有的坏实体区块。
7.如权利要求5所述的闪存控制器,其特征在于,当欲写入数据至该些逻辑区块时,该存储器管理模组依据该无数据实体区块表从该备用区的该些实体区块中选择实体区块以写入该数据。
8.如权利要求7所述的闪存控制器,其特征在于,该存储器管理模组在对应的该些逻辑区域表中将欲写入数据的该些逻辑区块映射的实体区块更新为所选择的实体区块,并且在该无数据实体区块表中删除所选择的实体区块并且加入欲写入数据的该些逻辑区块原本映射的实体区块。
9.如权利要求5所述的闪存控制器,其特征在于,该闪存为单层存储单元NAND闪存或多层存储单元NAND闪存。
10.如权利要求5所述的闪存控制器,其特征在于,该闪存储存系统为USB随身盘、存储卡或固态硬盘。
11.一种闪存储存系统,包括:
闪存,具有多个逻辑区块与多个实体区块且用以储存数据;
闪存控制器,电性连接至该闪存,该闪存控制器用以将该些逻辑区块分组为多个逻辑区域,将该些实体区块分组为一个数据区与一个备用区,分别地映射该些逻辑区块至该数据区的该些实体区块,以该些逻辑区域为单位在对应的逻辑区域表中记录每一逻辑区域内的每一逻辑区块与该数据区的该些实体区块之间的映射关系,并且以一无数据实体区块表来记录该备用区的所有该些实体区块,其中每一该些逻辑区块映射该数据区的该些实体区块的其中之一,并且该备用区的所有该些实体区块为无数据实体区块;以及
总线连接接口,电性连接至该闪存控制器且用以连接主机。
12.如权利要求11所述的闪存储存系统,其特征在于,该闪存控制器以一坏实体区块表来记录该些实体区块中所有的坏实体区块。
13.如权利要求11所述的闪存储存系统,其特征在于,当欲写入数据至该些逻辑区块时,该闪存控制器依据该无数据实体区块表从该备用区的该些实体区块中选择实体区块以写入该数据。
14.如权利要求13所述的闪存储存系统,其特征在于,该闪存控制器在对应的该些逻辑区域表中将欲写入数据的该些逻辑区块映射的实体区块更新为所选择的实体区块,并且在该无数据实体区块表中删除所选择的实体区块并且加入欲写入数据的该些逻辑区块原本映射的实体区块。
15.如权利要求11所述的闪存储存系统,其特征在于,该闪存为单层存储单元NAND闪存或多层存储单元NAND闪存。
16.如权利要求11所述的闪存储存系统,其特征在于,该总线连接接口为PCI Express接口、USB接口、IEEE 1394接口、SATA接口、MS接口、MMC接口、SD接口、CF接口或IDE接口。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200810092701.7A CN101556555B (zh) | 2008-04-08 | 2008-04-08 | 用于闪存的区块管理方法、其控制器与储存系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200810092701.7A CN101556555B (zh) | 2008-04-08 | 2008-04-08 | 用于闪存的区块管理方法、其控制器与储存系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101556555A CN101556555A (zh) | 2009-10-14 |
CN101556555B true CN101556555B (zh) | 2011-09-14 |
Family
ID=41174677
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200810092701.7A Active CN101556555B (zh) | 2008-04-08 | 2008-04-08 | 用于闪存的区块管理方法、其控制器与储存系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101556555B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI426528B (zh) | 2009-09-30 | 2014-02-11 | Phison Electronics Corp | 用於快閃記憶體的區塊管理方法、控制器與儲存系統 |
CN102043724B (zh) * | 2009-10-15 | 2015-08-19 | 群联电子股份有限公司 | 用于闪存的区块管理方法、控制器与存储系统 |
TWI421870B (zh) * | 2009-10-30 | 2014-01-01 | Phison Electronics Corp | 用於快閃記憶體的資料寫入方法及其控制器與儲存系統 |
CN102063381B (zh) * | 2009-11-13 | 2013-01-02 | 群联电子股份有限公司 | 用于闪存的数据写入方法及其控制器与储存系统 |
CN102866861B (zh) * | 2010-01-13 | 2015-11-18 | 群联电子股份有限公司 | 闪存储存系统、闪存控制器与数据写入方法 |
CN102193870B (zh) * | 2010-03-09 | 2014-06-25 | 群联电子股份有限公司 | 存储器管理与写入方法、存储器控制器与存储器存储系统 |
CN102402396B (zh) * | 2010-09-15 | 2014-09-17 | 群联电子股份有限公司 | 复合式储存装置及其复合式储存媒体控制器与编址方法 |
CN102968389B (zh) * | 2012-10-30 | 2016-06-01 | 记忆科技(深圳)有限公司 | 基于多层闪存单元的存储装置及存储方法 |
DE102015225553A1 (de) * | 2015-12-17 | 2017-06-22 | Robert Bosch Gmbh | Verfahren und Vorrichtung zur Verwaltung eines nichtflüchtigen Speichers für ein Steuergerät |
TWI731775B (zh) * | 2020-08-24 | 2021-06-21 | 點序科技股份有限公司 | 快閃記憶體的記憶體控制器及其控制方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1936867A (zh) * | 2005-09-25 | 2007-03-28 | 深圳市朗科科技有限公司 | 闪存介质数据管理方法 |
CN1967504A (zh) * | 2005-11-18 | 2007-05-23 | 凌阳科技股份有限公司 | 闪存的控制装置与方法 |
-
2008
- 2008-04-08 CN CN200810092701.7A patent/CN101556555B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1936867A (zh) * | 2005-09-25 | 2007-03-28 | 深圳市朗科科技有限公司 | 闪存介质数据管理方法 |
CN1967504A (zh) * | 2005-11-18 | 2007-05-23 | 凌阳科技股份有限公司 | 闪存的控制装置与方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101556555A (zh) | 2009-10-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101556555B (zh) | 用于闪存的区块管理方法、其控制器与储存系统 | |
US8583860B2 (en) | Block management method for flash memory and controller and storage system using the same | |
CN101483067B (zh) | 快闪存储器数据写入方法及其快闪存储器控制器 | |
US9098395B2 (en) | Logical block management method for a flash memory and control circuit storage system using the same | |
US8386698B2 (en) | Data accessing method for flash memory and storage system and controller using the same | |
CN101625897B (zh) | 用于快闪存储器的数据写入方法、储存系统与控制器 | |
US8296504B2 (en) | Data management method and flash memory storage system and controller using the same | |
CN101571832B (zh) | 数据写入方法及使用该方法的快闪存储系统与其控制器 | |
CN101546298B (zh) | 用于闪存的数据读取方法、其控制器与储存系统 | |
CN101634967B (zh) | 用于闪存的区块管理方法、储存系统与控制器 | |
CN101169760B (zh) | 电子硬盘的存储空间的管理方法 | |
CN101923448A (zh) | 一种nand闪存的转换层读写方法 | |
US8074128B2 (en) | Block management and replacement method, flash memory storage system and controller using the same | |
CN101630233B (zh) | 用于闪存的数据存取方法、储存系统与控制器 | |
CN101661431B (zh) | 用于快闪存储器的区块管理方法、快闪储存系统及控制器 | |
US8037236B2 (en) | Flash memory writing method and storage system and controller using the same | |
CN101499315B (zh) | 快闪存储器平均磨损方法及其控制器 | |
CN101667157A (zh) | 闪存数据传输方法、闪存储存系统及控制器 | |
CN101567220A (zh) | 闪存的损坏区块辨识方法、储存系统及其控制器 | |
CN101425338B (zh) | 非易失性存储器的写入方法及使用此方法的控制器 | |
CN101727397B (zh) | 区块管理与更换方法、闪存储存系统及其控制器 | |
CN101324899B (zh) | 一种快速写nand型flash的方法 | |
CN102103546A (zh) | 用于储存装置以进行储存管理的方法及控制单元与相关储存装置 | |
CN101882111B (zh) | 用于闪存的数据存取方法、储存系统与控制器 | |
CN101661432B (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 |