CN101567220B - 闪存的损坏区块辨识方法、储存系统及其控制器 - Google Patents
闪存的损坏区块辨识方法、储存系统及其控制器 Download PDFInfo
- Publication number
- CN101567220B CN101567220B CN200810092333.6A CN200810092333A CN101567220B CN 101567220 B CN101567220 B CN 101567220B CN 200810092333 A CN200810092333 A CN 200810092333A CN 101567220 B CN101567220 B CN 101567220B
- Authority
- CN
- China
- Prior art keywords
- block
- misprogrammed
- flash memory
- log file
- controller
- 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
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
Abstract
一种用于闪存的损坏区块辨识方法、储存系统及其控制器。此损坏区块辨识方法包括在编程闪存的区块之后检查所编程的区块是否发生编程错误,以及当所编程的区块连续地发生编程错误时标记此区块为损坏区块。基此,由于在多次发生编程错误下才判定区块为损坏,由此避免误判而延长闪存储存系统的使用寿命。
Description
技术领域
本发明是有关于一种存储器损坏区块辨识方法,且特别是有关于一种用于闪存的损坏区块辨识方法、储存系统及其控制器。
背景技术
近年来,由于数字相机、具有照相功能的手机、MP3、以及MP4的成长十分迅速,所以使得消费者对储存媒体的需求也急剧增加。综观现今所有的储存媒体而言,由于闪存(Flash Memory)具有数据非易失性、省电、体积小,以及无机械结构等特性,所以最适合内建于上述所举例的多种可携式多媒体装置中。
在已知技术中,使用闪存的储存系统在对区块执行写入与抹除等编程(program)操作后会检查所执行的写入或抹除操作是否正确。如果判断有发生错误时,则此区块会被判定为损坏区块,并且会在损坏区块管理表中记录此区块的地址或者在此区块上进行标记,由此避免储存系统之后误用有问题的区块。
随着技术的进步,闪存通过制程技术上的提升使得写入或抹除的循环时间(cycletime)更为缩短。此外,通过同时编程两个页的技术更可加速闪存写入的时间。然而,在编程速度提升的同时,相对的储存系统会更具噪声,此可能导致在编程操作中发生区块被误判为损坏。此类误判会使得被误判的区块被标记于损坏区块管理表中而不再被使用,导致浪费了系统可用的资源(即区块)而缩短闪存储存系统的寿命。
发明内容
本发明提供一种损坏区块辨识方法,其能够避免误判闪存区块的损毁而延长闪存储存系统的使用寿命。
本发明提供一种储存系统,其所执行的闪存损坏区块辨识程序可避免误判闪存区块的损毁而延长储存系统的使用寿命。
本发明提供一种控制器,其可执行闪存损坏区块辨识程序,以避免误判闪存区块的损毁而延长闪存储存系统的使用寿命。
本发明提出一种损坏区块辨识方法,此损坏区块辨识方法包括在编程闪存的区块之后检查所编程的区块是否发生编程错误,以及当所编程的区块连续地发生编程错误时将此区块标记为损坏区块。
在本发明的一实施例中,上述的编程闪存的区块的步骤包括对闪存进行写入操作或抹除操作。
在本发明的一实施例中,上述的损坏区块辨识方法还包括读取所编程的区块的读取状态(Read Status)以判断此区块是否发生编程错误。
在本发明的一实施例中,上述的损坏区块辨识方法还包括使用错误校正码检查所编程的区块中的数据以判断此区块是否发生编程错误,其中当确认此区块的数据为不正确或不可回复时则判断此区块发生编程错误。
在本发明的一实施例中,上述的将区块标记为损坏区块的步骤包括于损坏区块管理表中记录此区块的地址。
在本发明的一实施例中,上述的将区块标记为损坏区块的步骤包括于此区块中至少一页的冗余区中标记此区块为损坏区块。
在本发明的一实施例中,上述的损坏区块辨识方法还包括在编程错误记录文件中记录区块连续发生编程错误的次数,其中当此区块的编程错误次数等于错误上限门坎值时则于损坏区块管理表中记录此区块的地址。
在本发明的一实施例中,上述的错误上限门坎值为至少2以上。
在本发明的一实施例中,上述的损坏区块辨识方法还包括将编程错误记录文件储存于闪存的其它区块中或静态随机存取存储器中。
本发明提出一种控制器,其适用于具有闪存的储存系统,此闪存控制器包括微处理器单元、闪存接口、缓冲存储器以及存储器管理模块。闪存接口耦接至微处理单元且用以存取闪存。缓冲存储器耦接至微处理单元且用以暂时地储存数据。存储器管理模块耦接至微处理器单元且用以在微处理单元编程闪存的区块之后检查区块是否发生编程错误,并且当区块的编程错误连续地发生时将此区块标记为损坏区块。
在本发明的一实施例中,上述的编程包括写入操作或抹除操作。
在本发明的一实施例中,上述的存储器管理模块会读取区块的读取状态以判断区块是否发生编程错误。
在本发明的一实施例中,上述的控制器还包括错误校正模块,其中存储器管理模块通过错误校正模块检查区块的数据,并且当确认区块的数据为不正确或不可回复时则判断区块发生编程错误。
在本发明的一实施例中,上述的存储器管理模块会于损坏区块管理表中记录此区块的地址。
在本发明的一实施例中,上述的存储器管理模块会于此区块中至少一页的冗余区中标记此区块为损坏区块。
在本发明的一实施例中,上述的存储器管理模块会在编程错误记录文件中记录区块连续发生编程错误的次数,其中当编程错误的次数等于错误上限门坎值时则于损坏区块管理表中记录区块的地址。
在本发明的一实施例中,上述的错误上限门坎值为至少2以上。
在本发明的一实施例中,上述的存储器管理模块会将编程错误记录文件储存于闪存的其它区块中或静态随机存取存储器中。
本发明提出一种储存系统,其包括闪存、控制器与总线连接接口。闪存用以储存数据。控制器耦接至闪存并且用以在编程闪存的区块之后检查区块是否发生编程错误,并且当区块的编程错误连续地发生时将此区块标记为损坏区块。总线连接接口耦接至控制器且用以连接主机。
在本发明的一实施例中,上述的编程包括写入操作或抹除操作。
在本发明的一实施例中,上述的控制器会读取区块的读取状态以判断区块是否发生编程错误。
在本发明的一实施例中,上述的控制器会经由错误校正模块检查区块的数据,并且当确认此区块的数据为不正确或不可回复时则判断此区块发生编程错误。
在本发明的一实施例中,上述的控制器会于损坏区块管理表中记录此区块的地址。
在本发明的一实施例中,上述的控制器会于此区块中至少一页的冗余区中标记此区块为损坏区块。
在本发明的一实施例中,上述的控制器会在编程错误记录文件中记录区块连续发生编程错误的次数,其中当编程错误的次数等于错误上限门坎值时则于损坏区块管理表中记录此区块的地址。
本发明因采用当区块连续地发生编程错误时才判定为损毁的损坏区块辨识方法,因此可避免误判闪存区块的损毁,由此延长闪存储存系统的使用寿命。
为让本发明的上述特征和优点能更明显易懂,下文特举较佳实施例,并配合所附图式,作详细说明如下。
附图说明
图1是根据本发明第一实施例绘示储存系统的概要方块图。
图2A~2C是根据本发明第一实施例绘示闪存及其运作的详细方块图。
图3是根据本发明第一实施例绘示损坏区块辨识程序(方法)的流程图。
图4是根据本发明第二实施例绘示储存系统的概要方块图。
图5是根据本发明第二实施例绘示损坏区块辨识程序(方法)的流程图。
[主要元件标号说明]
100:储存系统
110:控制器
110a:微处理器单元
110b:闪存接口
110c:缓冲存储器
110d:存储器管理模块
120:总线连接接口
130:闪存
130-0、130-1、130-2、130-N:区块
200:主机
202:系统区
204:数据区
206:备用区
208:替换区块
300:总线
400:储存系统
410:控制器
410a:微处理器单元
410b:闪存接口
410c:缓冲存储器
410d:存储器管理模块
420:总线连接接口
430:闪存
S301、S303、S305、S307、S309、S311、S313、S315:损坏区块辨识方法的步骤
S501、S503、S505、S507、S509、S511、S515:损坏区块辨识方法的步骤
S、M、C:区块
具体实施方式
本发明所提出的损坏区块辨识方法是在区块连续地发生编程错误时才将此区块视为损坏区块。由此,可避免闪存中区块内的区块因其它噪声造成的编程错误而被误判为损坏区块。以下将以数个范例实施例并配合图式详细说明本发明。
[第一实施例]
图1是根据本发明第一实施例绘示储存系统的概要方块图。请参照图1,储存系统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,以进行对闪存130的写入、读取与抹除等运作。
闪存接口110b是电性连接至微处理器单元110a并且用以存取闪存130。也就是,主机200欲写入至闪存130的数据会经由闪存接口110b转换为闪存130所能接受的格式。
缓冲存储器110c是电性连接至微处理器单元110a,并且用以暂时地储存系统性数据(例如逻辑区块与物理区块的对映表)或者主机200所读取或写入的数据。特别是,在本实施例中缓冲存储器110c用以储存编程错误记录文件,其用以记录发生编程错误的区块的地址。在本实施例中,缓冲存储器110c为静态随机存取存储器(static random accessmemory,SRAM)。然而,必须了解的是,本发明不限于此,动态随机存取存储器(DynamicRandom Accessmemory,DRAM)、磁阻式存储器(Magnetoresistive Random AccessMemory,MRAM)、相变化存储器(Phase Change Random Access Memory,PRAM)或其它适合的存储器亦可应用于本发明。
存储器管理模块110d是电性连接至微处理器单元110a。存储器管理模块110d会管理闪存130,例如执行平均磨损(wear leveling)方法、坏区块管理、维护对映表(mappingtable)等。特别是,在本发明实施例中,存储器管理模块110d会执行根据本发明实施例的损坏区块辨识程序(如图3所示)。值得一提的是,本实施例中是以硬件方式来实现存储器管理模块110d,然而其亦可以固件方式来实现。
此外,虽未绘示于本实施例,但控制器110可还包括一般闪存控制器常见的功能模块,例如电源管理模块等。
总线连接接口120用以通过总线300连接主机200。在本实施例中,总线连接接口120为USB接口。然而,必须了解的是本发明不限于此,总线连接接口120亦可以是PCIExpress接口、IEEE 1394接口、SATA接口、MS接口、MMC接口、SD接口、CF接口、IDE接口或其它适合的数据传输接口。
闪存130是耦接控制器110并且用以储存数据。在本实施中闪存130为多层记忆胞(Multi Level Cell,MLC)反及(NAND)闪存。然而,必须了解的是,本发明不限于此。在本发明另一实施例中,单层记忆胞(Single Level Cell,SLC)NAND闪存亦可应用于本发明。
闪存130通常会被分割为多个物理区块(physical block)130-0至130-N,为方便说明以下将物理区块简称为区块。一般而言,在闪存中区块为抹除的最小单位。亦即,每一区块含有最小数目之一并被抹除的记忆胞。每一区块通常会分割为数个页(page)。页通常为编程(program)的最小单元,但要特别说明的是于有些不同的闪存设计,最小的编程单位也可为一个扇区(sector)大小,即一页中有多个扇区并以一扇区为编程的最小单元。换言之,页为写入数据或读取数据的最小单元。每一页通常包括使用者数据区D与冗余区R。使用者数据区用以储存使用者的数据,而冗余区用以储存系统的数据(例如,错误校正码(errorcorrecting code,ECC))。
为对应于磁盘驱动器的扇区(sector)大小,一般而言,使用者数据区D通常为512字节,而冗余区R通常为16字节。也就是,一页为一个扇区。然而,亦可以多个扇区形成一页,例如一页包括4个扇区。
一般而言,区块可由任意数目的页所组成,例如64页、128页、256页等。区块130-0至130-N通常也可被分组为数个区域(zone),以区域来管理存储器某种程度上是彼此独立地操作以增加操作执行的平行程度且简化管理的复杂度。
以下将根据本发明并配合图式详细说明闪存的运作。必须了解的是,在以下描述中使用“提取”、“搬移”、“交换”等词来操作闪存区块是逻辑上的概念。也就是说,闪存区块的实际位置并未更动,而是逻辑上对闪存区块进行操作。
图2A~2C是根据本发明第一实施例绘示闪存130及其运作的详细方块图。
请参照图2A,在本发明实施例中,为了有效率地编程(即写入与抹除)闪存130,闪存130的区块130-1至130-N会在逻辑上分组为一系统区202、一数据区204与一备用区206。一般来说,闪存130中属于数据区204的区块会占90%以上。
系统区202的区块用以储存系统性数据,例如逻辑物理区块对映表、固件码等。
数据区204中的区块用以储存数据,一般来说就是主机200所操作的逻辑区块地址所对应的区块。
备用区206中的区块是用以替换数据区204中的区块,因此在备用区206中的区块为空或可使用的区块,即无记录数据或标记为已没用的无效数据。具体来说,由于若要对已写过数据位置再次写入数据时,必须先执行抹除的操作。然而,如前所述闪存写入单位为页,而抹除单位为区块。一个抹除的单位大于写入的单位,这表示若要执行区块抹除操作,必须先将欲抹除区块中的有效页复制至其它区块后才可进行。因此,当欲在数据区204中已写过数据位置的区块M中写入新数据时,一般会在备用区206中提取区块S,然后将区块M中的有效数据复制至区块S且将新数据写入区块S后,将区块M抹除后搬移至备用区206同时将区块S搬移至数据区204。必须了解的是,将区块M抹除后搬移至备用区206同时将区块S搬移至数据区204是逻辑上将区块M搬移至备用区206而将区块S搬移至数据区204。其中本领域技术人员皆能了解数据区204中区块的逻辑关系可由逻辑物理对映表来维护。
一般来说,为了更有效率地使用闪存130,区块在逻辑上会更分为替换区块208。图2B是绘示闪存的另一种运作方式,而图2C是绘示图2B的详细运作示意图。
请参照图2B与2C,替换区块208是用来取代数据区204的区块。更详细而言,当从上述备用区206中提取区块C来取代数据区204的区块M时,会将新数据入至区块C,但不会立刻将区块M中的所有有效数据搬移至区块C而抹除区块M。具体来说,会将区块M中欲写入地址之前的有效数据(即页P0与P1)复制至区块C(如图2C的(a)),并且将新数据(即区块C的页P2与P3)写入至C区块(如图2C的(b))。此时,将含有部分的有效旧数据与所写入新数据的区块C暂时地搬移为替换区块208。此是因为,区块M中的有效数据有可能在下个操作中变成无效,因此立刻将区块M中的所有有效数据搬移至物理区块C可能会造成无谓的搬移。在此案例中,在逻辑区块地址与物理区块地址的对映上会记录多个物理区块地址对应到一个逻辑区块地址的情况,也就是区块M与区块C的内容整合起来才是所对映逻辑区块的内容。此等母子区块(区块M与区块C)的瞬时关系可依据控制器110中缓冲存储器110d的大小而定,在本发明实施例中是以五组来实作。
之后,当需要将区块M与区块C的内容真正合并时,才将区块M与区块C整并为一区块,由此提升区块的使用效率。例如,如图2C的(c)所示,当进行整并时,区块M中剩余的有效数据(即页P4~PN)会复制至区块C,然后将区块M抹除并搬移至备用区206,同时,将区块C搬移至数据区204,由此完成合并。
值得一提的是,当如图2A或图2B与2C的运作过程中,倘若区块M或C在写入或抹除之后被判断为损坏区块时,则区块M或C将不会再被搬移为备用区206。换言之,被判断为损坏的区块将不会再于系统中轮动替换,而备用区的区块数就会减少。当备用区的区块数目不足以提供储存系统100的轮动替换时,则储存系统100就无法再使用。
图3是根据本发明第一实施例绘示损坏区块辨识程序(方法)的流程图。
本实施例所述的损坏区块辨识程序会在控制器110的微处理器单元110a执行编程(即写入或抹除)之后被启动。请参照图3,在步骤S301中会读取所编程的区块的读取状态(Read Status),并且在步骤S303中依据此读取状态来判断所编程的区块是否发生编程错误。具体来说,在本实施例中闪存130具有状态读取功能,存储器管理模块110d可通过读取此状态来判断此区块是否发生编程错误。
倘若在步骤S303中判断此区块发生编程错误时,则在步骤S305中会读取编程错误记录文件并且判断编程错误记录文件中是否存有此区块的地址的记录。倘若在步骤S305中判断编程错误记录文件中存有此区块的地址的记录时,则表示此区块已连续发生编程错误。因此,在步骤S307中会在损坏区块管理表中记录此区块的地址,以将此区块视为损毁的区块而不再使用。倘若在步骤S305中判断编程错误记录文件中无存有此区块的地址的记录时,则在步骤S309中会在编程错误记录文件中记录此区块的地址,并且在步骤S311中将此区块搬移至备用区206以供后续轮动替换使用。
倘若在步骤S303中判断此区块正常地编程(即无发生编程错误)时,则在步骤S313中会读取编程错误记录文件并且判断编程错误记录文件中是否存有此区块的地址的记录。倘若在步骤S313中判断在编程错误记录文件中存有此区块的地址的记录时,则在步骤S315中会删除此记录。换言之,由于先前编程此区块时发生编程错误,因此其地址被记录在编程错误记录文件中。然而,当微处理器单元110a再次编程此区块时,此区块并未再发生编程错误,因此存储器管理模块110d会认定此区块实际上并未损毁,所以在步骤S315中会清除其发生编程错误的记录。
在本发明实施例中,编程错误记录文件是在缓冲存储器110c中被记录与更新。因此,一旦储存系统100重新启动或开机时,储存系统100必须重新建立编程错误记录文件来重新记录所发生编程错误的区块。然而,在本发明另一实施例中,编程错误记录文件可更记录在闪存130的区块(例如系统区202中的区块)中以便于储存系统100重新启动时可加载,由此可依据关机前的记录继续更新。
此外,在本发明另一实施例中,编程错误记录文件可更记录区块发生编程错误的次数,由此可更判断当区块发生编程错误的次数等于错误上限门坎值时才判定为损毁,其中此错误上限门坎值可依据闪存的质量或储存系统发生误判的机率来设定,例如设定为2次、3次或5次。
在本实施例中,是以编程错误记录文件以及损坏区块管理表来分别地记录发生编程错误的区块与管理已判定为损毁的区块。然而,在本发明另一实施例中,当区块编程错误发生时亦可在区块中至少一页的冗余区R中记录发生编程错误或连续发生编程错误的次数,并且当连续发生编程错误时在此冗余区R中标记为此区块为损毁区块。
在本实施例中可在连续两次或两次以上对区块编程都发生编程错误时才判定此区块已损毁。基此,可避免因其它噪声所造成的误判,延长闪存储存系统的使用寿命。
[第二实施例]
第一实施例是通过闪存所具有的读取状态功能来判定区块是否发生编程错误。然而,本发明亦可使用其它方法来判定是否发生编程错误。
图4是根据本发明第二实施例绘示储存系统的概要方块图。请参照图4,储存系统400包括控制器410、总线连接接口420以及闪存430。类似于储存系统100,通常储存系统400会通过总线300连接至主机200使用,以使主机200可将数据写入至储存系统400或从储存系统400中读取数据。在本实施例中,储存系统400为随身碟。但必须了解的是,在本发明另一实施例中储存系统400亦可以是存储卡或固态硬盘(Solid State Drive,SSD)。
在本实施例中,控制器410、总线连接接口420以及闪存430是大致上是相同于第一实施例的控制器110、总线连接接口120以及闪存130,其中不同之处在于控制器410除了微处理单元410a、闪存模块410b、缓冲存储器410c与存储器管理模块410d还包括错误校正模块440,并且存储器管理模块410d会执行根据本发明第二实施例的损坏区块辨识程序(如图5所示)。
错误校正模块410e会对欲写入的数据产生一组错校正码并且与此数据一同储存至闪存430,其中之后当从闪存430中读取此数据时,错误校正模块410e可依据错误校正码来检查数据是否正确,或者当数据不正确时尝试将错误的数据回复为正确的数据。
图5是根据本发明第二实施例绘示损坏区块辨识程序(方法)的流程图。
本实施例所述的损坏区块辨识程序会在控制器410的微处理器单元410a执行编程之后被启动。请参照图5,在步骤S501中会读取所编程的区块的数据,并且在步骤S503中依据此数据的错误校正码来检查数据是否为正确或可回复,以判断所编程的区块是否发生编程错误。
倘若在步骤S503中判断数据为不正确且无法回复时,则在步骤S505中会在编程错误记录文件中计数此区块的编程错误次数(例如于编程错误次数中增加1)。之后,在步骤S507中会判断此区块的编程错误次数是否等于错误上限门坎值,其中此错误上限门坎值可依据闪存的质量或储存系统发生误判的机率来设定,例如设定为2次、3次或5次。倘若在步骤S507中判断此区块的编程错误次数等于错误上限门坎值时,则在步骤S509中会在损坏区块管理表中记录此区块的地址,以将此区块视为损毁的区块而不再使用。倘若在步骤S507中判断此区块的编程错误次数不等于错误上限门坎值时,则在步骤S511中将此区块搬移至备用区206以供后续轮动替换使用。
倘若在步骤S503中判断数据为正确或可回复时,则在步骤S513中会在编程错误记录文件中将此区块的编程错误次数重置(例如将编程错误次数归0)。换言之,倘若计数值是由有次数记录而被归0表示此区块先前虽发生编程错误,但微处理器单元410a再次编程此区块时,此区块并未再发生编程错误,因此存储器管理模块410d会认定此区块实际上并未损毁,所以在步骤S513中会清除其发生编程错误的次数记录。
在本发明实施例中,编程错误记录文件是在缓冲存储器410c中被记录与更新。因此,一旦储存系统400重新启动或开机时,储存系统400必须重新建立编程错误记录文件来重新记录所发生编程错误的区块。然而,在本发明另一实施例中,编程错误记录文件可更记录在闪存430中以便于储存系统400重新启动时可加载,由此可依据关机前的记录继续更新。
此外,在本发明另一实施例中,编程错误记录文件可如第一实施例所述仅记录发生编程错误的区块的地址,并且当此区块连续地再一次发生编程错误时就判定此区块为损毁。
在本实施例中是以错误校正码来判定是否发生编程错误,并且在连续两次或两次以上对区块编程都发生编程错误时才判定此区块已损毁。基此,可避免因其它噪声所造成的误判,延长闪存储存系统的使用寿命。
综上所述,本发明所提供的损坏区块辨识方法是通过编程错误记录文件的记录在区块连续地发生编程错误时才判定为损毁区块,由此可避免因闪存高速写入的噪声所造成的误判,并且可因此延长闪存储存系统的使用寿命。
虽然本发明已以较佳实施例揭露如上,然其并非用以限定本发明,任何本领域技术人员,在不脱离本发明的精神和范围内,当可作些许的更动与润饰,因此本发明的保护范围当视所附的权利要求范围所界定者为准。
Claims (23)
1.一种损坏区块辨识方法,用于一闪存,其中该闪存有多个区块,该多个区块会在逻辑上分组为一系统区、一数据区与一备用区,该损坏区块辨识方法包括:
在编程该多个区块之中的一个区块之后检查该区块是否发生编程错误;
当该区块发生编程错误时,判断在编程错误记录文件中是否已记录该区块的地址;
当该编程错误记录文件中无记录该区块的地址时,在该编程错误记录文件中记录该区块的地址且将该区块搬移至该备用区;
当该编程错误记录文件中已记录有该区块地址时,认定该区块的编程错误连续地发生并将该区块标记为损坏区块;以及
当该区块未发生编程错误时,在该编程错误记录文件中删除对应该区块的编程错误记录。
2.根据权利要求1所述的损坏区块辨识方法,其中编程该区块的步骤包括对该闪存进行写入操作或抹除操作。
3.根据权利要求1所述的损坏区块辨识方法,还包括读取该区块的读取状态以判断该区块是否发生该编程错误。
4.根据权利要求1所述的损坏区块辨识方法,还包括使用错误校正码检查该区块的数据以判断该区块是否发生编程错误,
其中当确认该区块的数据为不正确或不可回复时则判断该区块发生该编程错误。
5.根据权利要求1所述的损坏区块辨识方法,其中将该区块标记为损坏区块的步骤包括于损坏区块管理表中记录该区块的地址。
6.根据权利要求1所述的损坏区块辨识方法,其中将该区块标记为损坏区块的步骤包括于该区块中至少一页的冗余区中标记该区块为损坏区块。
7.根据权利要求5所述的损坏区块辨识方法,还包括在编程错误记录文件中记录该区块的编程错误次数。
8.根据权利要求7所述的损坏区块辨识方法,还包括将该编程错误记录文件储存于该闪存的其它区块中或静态随机存取存储器中。
9.一种控制器,其适用于具有闪存的储存系统,其中该闪存有多个区块,该控制器包括:
微处理器单元;
闪存接口,耦接至该微处理单元且用以存取该闪存;
缓冲存储器,耦接至该微处理单元且用以暂时地储存数据;以及
存储器管理模块,耦接至该微处理器单元且用以将该多个区块逻辑上分组为一系统区、一数据区与一备用区,
其中该存储器管理模块在该微处理单元编程该多个区块之中的一个区块之后检查该区块是否发生编程错误,
其中当该区块发生编程错误时,该存储器管理模块判断在编程错误记录文件中是否已记录该区块的地址,
其中当该编程错误记录文件中无记录该区块的地址时,该存储器管理模块在该编程错误记录文件中记录该区块的地址且将该区块搬移至该备用区,
其中当该编程错误记录文件中已记录有该区块地址时,该存储器管理模块认定该区块的编程错误连续地发生并将该区块标记为损坏区块,
其中当该区块未发生编程错误时,该存储器管理模块在该编程错误记录文件中删除对应该区块的编程错误记录。
10.根据权利要求9所述的控制器,其中该编程包括写入操作或抹除操作。
11.根据权利要求9所述的控制器,该存储器管理模块会读取该区块的读取状态以判断该区块是否发生该编程错误。
12.根据权利要求9所述的控制器,还包括错误校正模块,其中该存储器管理模块通过该错误校正模块检查该区块的数据,并且当确认该区块的数据为不正确或不可回复时则判断该区块发生该编程错误。
13.根据权利要求9所述的控制器,其中该存储器管理模块会于损坏区块管理表中记录该区块的地址。
14.根据权利要求9所述的控制器,其中该存储器管理模块会于该区块中至少一页的冗余区中标记该区块为损坏区块。
15.根据权利要求13所述的控制器,该存储器管理模块会在编程错误记录文件中记录该区块的编程错误次数。
16.根据权利要求15所述的控制器,该存储器管理模块会将该编程错误记录文件储存于该闪存的其它区块中或静态随机存取存储器中。
17.一种储存系统,包括:
闪存,用以储存数据,其中该闪存有多个区块;
控制器,耦接至该闪存用以将该多个区块逻辑上分组为一系统区、一数据区与一备用区;以及
总线连接接口,耦接至该控制器且用以连接主机;
其中该控制器在编程该多个区块之中的一个区块之后检查该区块是否发生编程错误,
其中当该区块发生编程错误时,该控制器判断在编程错误记录文件中是否已记录该区块的地址,
其中当该编程错误记录文件中无记录该区块的地址时,该控制器在该编程错误记录文件中记录该区块的地址且将该区块搬移至该备用区,
其中当该编程错误记录文件中已记录有该区块地址时,该控制器认定该区块的编程错误连续地发生并将该区块标记为损坏区块,
其中当该区块未发生编程错误时,该控制器在编程错误记录文件中删除对应该区块的编程错误记录。
18.根据权利要求17所述的储存系统,其中该编程包括写入操作或抹除操作。
19.根据权利要求17所述的储存系统,该控制器会读取该区块的读取状态以判断该区块是否发生该编程错误。
20.根据权利要求17所述的储存系统,其中该控制器会经由错误校正模块检查该区块的数据,并且当确认该区块的数据为不正确或不可回复时则判断该区块发生该编程错误。
21.根据权利要求17所述的储存系统,其中该控制器会于损坏区块管理表中记录该区块的地址。
22.根据权利要求17所述的储存系统,其中该控制器会于该区块中至少一页的冗余区中标记该区块为损坏区块。
23.根据权利要求21所述的储存系统,该控制器会在编程错误记录文件中记录该区块的编程错误次数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200810092333.6A CN101567220B (zh) | 2008-04-22 | 2008-04-22 | 闪存的损坏区块辨识方法、储存系统及其控制器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200810092333.6A CN101567220B (zh) | 2008-04-22 | 2008-04-22 | 闪存的损坏区块辨识方法、储存系统及其控制器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101567220A CN101567220A (zh) | 2009-10-28 |
CN101567220B true CN101567220B (zh) | 2016-08-24 |
Family
ID=41283338
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200810092333.6A Active CN101567220B (zh) | 2008-04-22 | 2008-04-22 | 闪存的损坏区块辨识方法、储存系统及其控制器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101567220B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102347082A (zh) * | 2011-05-30 | 2012-02-08 | 福州思迈特数码科技有限公司 | 录音/录像设备的flash坏块重用方法 |
CN104252883B (zh) * | 2013-06-26 | 2017-06-13 | 深圳市江波龙电子有限公司 | 闪存管理方法和系统 |
CN103927128B (zh) * | 2013-07-11 | 2017-03-01 | 威盛电子股份有限公司 | 数据储存装置以及快闪存储器控制方法 |
CN107025941A (zh) * | 2016-01-29 | 2017-08-08 | 瑞昱半导体股份有限公司 | 固态硬盘控制电路 |
CN106205737B (zh) * | 2016-07-06 | 2019-04-26 | 深圳佰维存储科技股份有限公司 | 一种测试Nand flash生命周期的方法 |
CN109584943B (zh) * | 2017-09-28 | 2021-01-29 | 成都华为技术有限公司 | 一种评估存储介质的方法及装置 |
CN107992268B (zh) * | 2017-11-24 | 2021-08-10 | 郑州云海信息技术有限公司 | 一种坏块标记的方法及相关装置 |
CN108958655B (zh) * | 2018-06-26 | 2021-08-10 | 郑州云海信息技术有限公司 | 一种固态硬盘的数据擦写方法、装置、设备及存储介质 |
CN109102839B (zh) * | 2018-08-15 | 2021-06-11 | 浪潮电子信息产业股份有限公司 | 一种坏块标记方法、装置、设备及可读存储介质 |
CN110473586B (zh) * | 2019-07-31 | 2021-05-14 | 珠海博雅科技有限公司 | 一种写失效存储单元的替换方法、装置、设备及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1728284A (zh) * | 2004-07-26 | 2006-02-01 | 深圳市朗科科技有限公司 | 一种扫描闪存盘的闪存芯片的方法 |
CN1949382A (zh) * | 2005-10-11 | 2007-04-18 | 广明光电股份有限公司 | 损坏区块管理的方法及其装置 |
-
2008
- 2008-04-22 CN CN200810092333.6A patent/CN101567220B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1728284A (zh) * | 2004-07-26 | 2006-02-01 | 深圳市朗科科技有限公司 | 一种扫描闪存盘的闪存芯片的方法 |
CN1949382A (zh) * | 2005-10-11 | 2007-04-18 | 广明光电股份有限公司 | 损坏区块管理的方法及其装置 |
Also Published As
Publication number | Publication date |
---|---|
CN101567220A (zh) | 2009-10-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101567220B (zh) | 闪存的损坏区块辨识方法、储存系统及其控制器 | |
TWI381390B (zh) | 快閃記憶體的損壞區塊辨識方法、儲存系統及其控制器 | |
CN101427323B (zh) | 读取非易失性计算机存储器的系统和方法 | |
CN101483067B (zh) | 快闪存储器数据写入方法及其快闪存储器控制器 | |
CN101944386B (zh) | 识别闪速存储器中错误数据的控制电路及存储系统与方法 | |
CN104699413B (zh) | 数据管理方法、存储器存储装置及存储器控制电路单元 | |
CN106776376B (zh) | 缓冲存储器管理方法、存储器控制电路单元及存储装置 | |
TWI435329B (zh) | 快閃記憶體管理方法、快閃記憶體控制器與儲存系統 | |
US20100241789A1 (en) | Data storage method for flash memory and data storage system using the same | |
CN101859604A (zh) | 闪存坏块的利用方法 | |
TW200929224A (en) | Data writing method for flash memory and controller thereof | |
CN103699491B (zh) | 数据储存方法、存储器控制器与存储器储存装置 | |
CN102073600B (zh) | 数据备份方法、闪存控制器及闪存储存系统 | |
CN110058795A (zh) | 管理闪存模块的方法及相关的闪存控制器及电子装置 | |
CN101000569A (zh) | 一种对多重扇区进行错误修正编码的方法 | |
TWI381393B (zh) | 區塊管理與更換方法、快閃記憶體儲存系統及其控制器 | |
CN105808371A (zh) | 数据备份与恢复方法、控制芯片及存储装置 | |
CN101667157A (zh) | 闪存数据传输方法、闪存储存系统及控制器 | |
CN103136111B (zh) | 数据写入方法、存储器控制器与存储器储存装置 | |
TWI459198B (zh) | 記憶體儲存裝置、其記憶體控制器與有效資料識別方法 | |
CN102890655A (zh) | 存储器储存装置、其存储器控制器与有效数据识别方法 | |
TWI404071B (zh) | 能識別快閃記憶體中錯誤資料的控制電路及儲存系統與方法 | |
CN102902626A (zh) | 区块管理方法、存储器控制器与存储器储存装置 | |
CN102789813B (zh) | 一种控制存储设备内非最低有效位页使用的方法及装置 | |
CN110069362B (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 |