CN101546298B - 用于闪存的数据读取方法、其控制器与储存系统 - Google Patents
用于闪存的数据读取方法、其控制器与储存系统 Download PDFInfo
- Publication number
- CN101546298B CN101546298B CN2008100885620A CN200810088562A CN101546298B CN 101546298 B CN101546298 B CN 101546298B CN 2008100885620 A CN2008100885620 A CN 2008100885620A CN 200810088562 A CN200810088562 A CN 200810088562A CN 101546298 B CN101546298 B CN 101546298B
- Authority
- CN
- China
- Prior art keywords
- block
- data
- reading
- frequently
- storage area
- 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
Images
Abstract
本发明关于用于闪存的数据读取方法、其控制器与储存系统,其中该数据读取方法适用于具有闪存的闪存储存系统,其中闪存(flash memory)实质上分割为多个区块且这些区块至少分组为数据区与备用区。此读取方法包括分别地决定数据区的区块是否为频繁读取区块。此数据读取方法也包括配置对应此频繁读取区块的缓冲储存区并且将储存于此频繁读取区块中的数据复制至对应此频繁读取区块的缓冲储存区中。此数据读取方法还包括当欲从此频繁读取区块中读取数据时,则从对应此频繁读取区块的缓冲储存区中读取数据。基此,能够有效地避免因读取干扰所造成的数据遗失。
Description
技术领域
本发明涉及一种数据读取方法,且特别是涉及一种用于闪存的数据读取方法及使用此数据读取方法的控制器。
背景技术
近年来,由于数字相机、具有照相功能的手机、MP3,以及MP4的发展十分迅速,所以使得消费者对储存媒体的需求也急剧增加。综观现今所有的储存媒体,由于闪存(Flash Memory)具有数据非易失性、省电、体积小,以及无机械结构等特性,所以最适合内建于上述所举例的多种便携式多媒体装置中。再者,由于小型存储卡与随身盘等外接式产品对于现代人而言的需求也很大,所以各家闪存的制造厂商无不朝向让闪存的容量变得更大及使用稳定度提升的研发方向而努力研发着。
一般而言,闪存的种类大致可以按照工艺的精密程度而分成两种。而众所皆知的是,由较低精密程度的工艺所制作出来的是单层存储单元(SingleLevel Cell,SLC)NAND闪存,而由较高精密程度的工艺所制作出来的是多层存储单元(Multi Level Cell,MLC)NAND闪存。其中,多层存储单元NAND闪存的记忆容量会高于单层存储单元NAND闪存的记忆容量,但是多层存储单元NAND闪存的使用稳定度却会比单层存储单元NAND闪存的使用稳定度来得低。
然而,无论是对多层存储单元NAND闪存或是单层存储单元NAND闪存内的同一个区块所储存的数据进行多次读取时,例如十万至百万次间的读取次数,很有可能会发生所读取的数据是错误的,甚至此被多次读取区块内所储存的数据会发生异常或遗失。而此类现象被本发明领域技术人员惯称为『读取干扰』(read-disturb)。特别是,闪存中会储存闪存闪存储存系统的系统数据(例如固件码(Firmware Code)、文件配置表(File Allocation Table,FAT)),且此系统数据会在闪存闪存储存系统运作期间高频率地的读取。也亦因有着这样的现象存在着,无不驱使着各家厂商必须发展出能防止读取干扰的技术,藉以来有效地抑制因读取干扰所造成的数据遗失。
发明内容
有鉴于此,本发明提供一种数据读取方法,其能够有效地避免因读取干扰所造成的数据遗失。
本发明提供一种闪存控制器,其所执行的数据读取方法能够有效地避免因读取干扰所造成的数据遗失。
基于上述,本发明提出一种数据读取方法,其适用于具有闪存的闪存储存系统,其中闪存实质上会分割为多个区块且此些区块至少分组为数据区与备用区。此数据读取方法包括分别地决定数据区中的区块是否为频繁读取区块。此数据读取方法也包括配置对应频繁读取区块的缓冲储存区并且将储存于频繁读取区块中的数据复制至对应频繁读取区块的缓冲储存区中。此数据读取方法还包括当欲从频繁读取区块中读取数据时,则从对应此频繁读取区块的缓冲储存区中读取数据。
在本发明的一实施例中,上述的分别地决定数据区的区块是否为频繁读取区块的步骤包括计数数据区中每一区块的读取次数,以及分别地判断数据区的区块的读取次数是否大于频繁读取阈值,若是,则此数据区的区块会判断为频繁存取区块。
在本发明的一实施例中,上述的数据读取方法还包括从闪存的备用区中选择区块作为对应频繁读取区块的缓冲储存区。
在本发明的一实施例中,上述的数据读取方法还包括计数对应频繁读取区块的缓冲储存区的读取次数,以及判断对应频繁读取区块的缓冲储存区的读取次数是否大于缓冲区读取阈值,若是,则将储存于对应频繁读取区块的缓冲储存区中的数据复制至闪存的备用区中的另一区块并且将此另一区块作为对应此频繁读取区块的缓冲储存区。
在本发明的一实施例中,上述的数据读取方法,还包括计数对应频繁读取区块的缓冲储存区的读取次数,以及判断对应频繁读取区块的缓冲储存区的读取次数是否大于缓冲区读取阈值,若是,则将储存于此频繁读取区块中的数据复制至闪存的备用区中的另一区块并且将此另一区块作为对应此频繁读取区块的缓冲储存区。
在本发明的一实施例中,上述的数据读取方法,还包括当从对应频繁读取区块的缓冲储存区中读取数据发生错误时,则将储存于此频繁读取区块中的数据复制至闪存的备用区中的另一区块并且将此另一区块作为对应此频繁读取区块的缓冲储存区。
在本发明的一实施例中,上述的数据读取方法还包括执行错误校正(error correcting)以判断从对应频繁读取区块的缓冲储存区中读取数据时是否发生错误。
在本发明的一实施例中,上述的数据读取方法还包括从另一闪存中选择区块或以一静态随机存取存储器作为对应此频繁读取区块的缓冲储存区。
在本发明的一实施例中,上述的数据区的频繁读取区块中储存用于闪存储存系统的固件码(Firmware code)或文件配置表(File Allocation Table,FAT)。
本发明提出一种闪存控制器,其适用于具有闪存的闪存储存系统,其中闪存实质上会分割为多个区块且此些区块至少分组为数据区与备用区。此闪存控制器包括微处理器与存储器接口。存储器接口是耦接至微处理器并且用以存取闪存。微处理器会分别地决定数据区的区块是否为频繁读取区块,并配置对应频繁读取区块的缓冲储存区,且将储存于此频繁读取区块中的数据复制至对应此频繁读取区块的缓冲储存区中,当微处理器之后欲从频繁读取区块中读取数据时,则从对应频繁读取区块的缓冲储存区中读取数据。
在本发明的一实施例中,上述的微处理器分别计数数据区中每一区块的读取次数,以及当判断数据区的区块的读取次数大于频繁读取阈值时,判断数据区的此区块为频繁存取区块。
在本发明的一实施例中,上述的微处理器从闪存的备用区中选择区块作为对应此频繁读取区块的缓冲储存区。
在本发明的一实施例中,上述的微处理器计数对应频繁读取区块的缓冲储存区的读取次数,并且判断对应频繁读取区块的缓冲储存区的读取次数是否大于缓冲区读取阈值,若是,则将储存于对应此频繁读取区块的缓冲储存区中的数据复制至闪存的备用区中的另一区块并且将此另一区块作为对应此频繁读取区块的缓冲储存区。
在本发明的一实施例中,上述的微处理器计数对应频繁读取区块的缓冲储存区的读取次数,并且判断对应频繁读取区块的缓冲储存区的读取次数是否大于缓冲区读取阈值,若是,则将储存于此频繁读取区块中的数据复制至闪存的备用区中的另一区块并且将此另一区块作为对应频繁读取区块的缓冲储存区。
在本发明的一实施例中,上述的微处理器当从对应频繁读取区块的缓冲储存区中读取数据发生错误时,将储存于此频繁读取区块中的数据复制至闪存的备用区中的另一区块并且将此另一区块作为对应此频繁读取区块的缓冲储存区。
在本发明的一实施例中,上述的闪存控制器还包括错误校正单元,其用以判断从对应频繁读取区块的缓冲储存区中读取数据时是否发生错误。
在本发明的一实施例中,上述的微处理器从另一闪存中选择区块或以静态随机存取存储器作为对应此频繁读取区块的缓冲储存区。
在本发明的一实施例中,上述的数据区的频繁读取区块中包括固件码或文件配置表。
在本发明的一实施例中,上述的闪存为单层存储单元(Single LevelCell,SLC)NAND闪存或多层存储单元(Multi Level Cell,MLC)NAND闪存。
在本发明的一实施例中,上述的闪存储存系统为USB随身盘、存储卡或固态硬盘。
本发明提出一种闪存储存系统,其包括总线连接接口、闪存与闪存控制器。总线连接接口用以连接主机。闪存会分割为多个区块且此些区块至少分组为数据区与备用区。闪存控制器是耦接至该总线连接接口与闪存,其会分别地决定数据区的区块是否为频繁读取区块,并配置对应频繁读取区块的缓冲储存区,且将储存于此频繁读取区块中的数据复制至对应此频繁读取区块的缓冲储存区中,当闪存控制器之后欲从频繁读取区块中读取数据时,则从对应频繁读取区块的缓冲储存区中读取数据。
在本发明的一实施例中,上述的闪存控制器分别计数数据区中每一区块的读取次数,以及当判断数据区的区块的读取次数大于频繁读取阈值时,判断数据区的此区块为频繁存取区块。
在本发明的一实施例中,上述的闪存控制器从闪存的备用区中选择区块作为对应此频繁读取区块的缓冲储存区。
在本发明的一实施例中,上述的闪存控制器计数对应频繁读取区块的缓冲储存区的读取次数,并且判断对应频繁读取区块的缓冲储存区的读取次数是否大于缓冲区读取阈值,若是,则将储存于对应此频繁读取区块的缓冲储存区中的数据复制至闪存的备用区中的另一区块并且将此另一区块作为对应此频繁读取区块的缓冲储存区。
在本发明的一实施例中,上述的闪存控制器计数对应频繁读取区块的缓冲储存区的读取次数,并且判断对应频繁读取区块的缓冲储存区的读取次数是否大于缓冲区读取阈值,若是,则将储存于此频繁读取区块中的数据复制至闪存的备用区中的另一区块并且将此另一区块作为对应频繁读取区块的缓冲储存区。
本发明因采用缓冲储存区来储存闪存中频繁读取区块内的数据,并且以此缓冲储存区作为后续读取之用。因此,可有效地避免因频繁读取而发生读取干扰时所造成的数据遗失。
为使本发明的上述特征和优点能更明显易懂,下文特举较佳实施例,并结合附图详细说明如下。
附图说明
图1是根据本发明第一实施例绘示闪存储存系统的概要方块图。
图2A-2C是根据本发明第一实施例绘示闪存及其运作的详细方块图。
图3(a)-(b)是根据本发明第一实施例绘示数据读取方法的流程图。
图4(a)-(b)是根据本发明另一实施例绘示数据读取方法的流程图。
图5是根据本发明第二实施例绘示闪存储存系统的概要方块图。
图6(a)-(b)是根据本发明第二实施例绘示数据读取方法的流程图。
图7是根据本发明第三实施例绘示数据读取方法的流程图。
图8是根据本发明另一实施例绘示数据读取方法的流程图。
图9是根据本发明第四实施例绘示数据读取方法的流程图。
附图符号说明
100、100’:闪存储存系统
110、110’:闪存控制器
110a:微处理器
110b:闪存接口
110c:错误校正单元
120:总线连接接口
130:闪存
130-0、130-1、130-N:物理区块
200:主机
204:数据区
206:备用区
208:替换区块
S301、S303、S305、S307、S309、S311、S313、S315、S317、S317’:数据读取方法的步骤
S601、S603、S605、S607、S609、S611、S613、S615、S617:数据读取方法的步骤
S701、S703、S705、S707、S709、S711、S713、S715、S717、S719、S719’:数据读取方法的步骤
S901、S903、S905、S907、S909、S911、S913、S915、S917、S919:数据读取方法的步骤
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。
微处理器110a会管理与操作闪存130,例如执行平均磨损(wearleveling)功能、坏区块管理功能、维护对映表(mapping table)等。特别是,在本发明实施例中,微处理器110a会执行根据本实施例的数据读取方法的步骤(如图3所示)。
闪存接口110b耦接至微处理器110a并且用以存取闪存130。也就是,主机200欲写入至闪存130的数据会经由闪存接口110b转换为闪存130所能接受的格式。
此外,虽未绘示于本实施例,但闪存控制器110可还包括存储器管理模块、缓冲存储器与电源管理模块等一般闪存常见的功能模块。
总线连接接口120用以连接主机200。在本实施例中,总线连接接口120为USB接口。然而,必须了解的是本发明不限于此,总线连接接口120也可以是PCI Express接口、IEEE 1394接口、SATA接口、MS接口、MMC接口、SD接口、CF接口、IDE接口或其它适合的数据传输接口。
闪存130耦接闪存控制器110并且用以储存数据。闪存130通常实质上分割为多个物理区块(physical block)130-0至130-N,为方便说明以下将物理区块简称为区块。一般而言,在闪存中区块为擦除的最小单位。亦即,每一区块含有最小数目的一并被擦除的存储单元。每一区块通常会分割为数个页(page)。页通常为编程(program)的最小单元,但要特别说明的是在有些不同的闪存设计,最小的编程单位也可为一个扇区(sector)大小,即一页中有多个扇区并以一扇区为编程的最小单元。换言之,页为写入数据或读取数据的最小单元。每一页通常包括使用者数据区D与冗余区R。使用者数据区用以储存使用者的数据,而冗余区用以储存系统的数据(例如,错误校正码(error correcting 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会在逻辑上分组为一数据区204与一备用区206。一般来说,闪存130中属于数据区204的区块会占90%以上。
数据区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,由此完成合并。
在本实施中闪存130为多层存储单元(Multi Level Cell,MLC)NAND(NAND)闪存。然而,必须了解的是,本发明不限于此。在本发明另一实施例中,单层存储单元(Single Level Cell,SLC)NAND闪存也可应用于本发明。
如上所述,由于闪存130会因对同一地址的多次读取后造成此地址上所储存的数据遗失。因此,在本发明实施例中微处理器110a会执行能够有效避免读取干扰的数据读取程序。
图3是根据本发明第一实施例绘示数据读取方法的流程图。
请参考图3的(a),当闪存储存系统100被启动时,首先会决定数据区204中属于频繁读取的区块(步骤S301)。也就是说,根据本发明实施例的读取方法会先判断数据区204中哪些区块是储存被经常读取的数据。一般来说,经常被读取的数据为系统性数据。在本实施例中,此系统数据为闪存储存系统100的固件码、文件配置表(File Allocation Table,FAT)等。
接着,在步骤S303中会配置对应频繁读取的区块的缓冲储存区。也就是,在本实施例的读取方法中会为频繁读取区块另外分别地配置对应的缓冲储存区。在本实施例中,是从闪存130的备用区206中提取区块作为缓冲储存区。然而,必须了解的是在本发明另一实施例中也可从另一闪存中选择区块或以一静态随机存取存储器作为对应的缓冲储存区。
值得一提的是,如上所述在闪存130中备用区206的区块是用于与数据区204的区块轮替以写入数据。当使用备用区206的区块作为缓冲储存区时会减少可轮替的区块,因此在本实施例中是以5个区块作为缓冲储存区来实作。当频繁读取区块超过5个时,则仅会对相对较频繁读取的5个区块设置缓冲储存区。然而,必须了解的是本发明不限于此,系统设计者可依据闪存的备用区内可使用的区块来决定作为缓冲储存区的区块数。
在步骤S305中会将储存于频繁读取区块中的数据复制至对应的缓冲储存区中。
之后,请参考图3的(b),当欲从闪存130的区块中读取数据时,在步骤S307中会判断欲读取的区块是否为在步骤S301中所判断的频繁读取区块。倘若在步骤S307中判断欲读取的区块为频繁读取区块时,则从对应此频繁读取区块的缓冲储存区中读取数据(步骤S309)。倘若在步骤S307中判断欲读取的区块不是频繁读取区块时,则直接从此区块中读取数据(步骤S311)。也就是,在本实施例中是将频繁读取的区块中的数据于对应缓冲储存区中制作一副本,并且之后对于此频繁读取区块的读取会改由读取其对应的缓冲储存区。由此避免对原频繁读取区块的多次读取而造成读取干扰的问题。
此外,由于本实施例是以闪存130的备用区206的区块作为缓冲储存区,因此备用区206的区块也可能发生读取干扰的问题。因此,本实施例的读取方法还包括计数对应的缓冲储存区的读取次数(步骤S313),例如在读取次数的计数值上加1。并且之后判断对应频繁读取区块的缓冲储存区的读取次数是否大于缓冲区读取阈值(步骤S315),其中缓冲区读取阈值是使用者可自行设定的值,此当读取次数超过此值时来表示缓冲储存区可能快要发生读取干扰。
因此,倘若在步骤S315中判断对应的缓冲储存区的读取次数大于缓冲区读取阈值时,则将储存于对应的缓冲储存区中的数据复制至闪存130的备用区206中的另一区块并且以此另一区块取代原先作为缓冲储存区的区块作为新对应此频繁读取区块的缓冲储存区(步骤S317)。
另外,除了上述从对应的缓冲储存区中复制数据至此另一区块外,在本发明另一实施例中亦可从原频繁读取区块中复制数据至此另一区块(如图4所示的步骤S317’)。
[第二实施例]
如上所述,第一实施例是以缓冲区读取阈值来衡量以闪存130的另一区块所实作的缓冲储存区是否达到可能即将发生读取干扰而重新配置新的缓冲储存区。然而,本发明也可通过检查从缓冲储存区中读取的数据是否为错误来判定发生读取干扰而重新配置新的缓冲储存区。
本发明第二实施例的硬件结构与闪存的操作类似于第一实施例(如图1与图2A-2C),因此相同部分在此不再重复说明。第二实施例与第一实施例所不同的之处在于第二实施例在数据读取的步骤中是以检查从缓冲储存区中所读取的数据是否为错误来判断是否重新配置新的缓冲储存区。
图5是根据本发明第二实施例绘示闪存储存系统的概要方块图。图5的闪存储存系统100’与图1的闪存储存系统100的不同之处在于闪存储存系统100’的闪存控制器110’还包括错误校正(error correcting)单元110c,其用以对写入至闪存130的数据进行错误校正编码并且对从闪存130中读取的数据进行错误校正程序,错误校正程序为本领域技术人员所能轻易了解,在此不赘述。
图6是根据本发明第二实施例绘示数据读取方法的流程图。
请参考图6,步骤S601、S603、S605、S607、S609与S611是相同于图3的步骤S301、S303、S305、S307、S309与S311,在此不再重复说明。在步骤S613中会判断从缓冲储存区中读取的数据是否发生错误,在本实施例中是以错误校正单元110c所产生的错误校正码来检查数据是否发生错误。倘若在步骤S613中判断从缓冲储存区中读取的数据发生错误时,则在步骤S615中会从原频繁读取区块中读取数据,并且在步骤S617中会将从原频繁读取区块中读取的数据复制至闪存130的备用区206中的另一区块并且以此另一区块取代原先作为缓冲储存区的区块,由此作为对应此频繁读取区块的新缓冲储存区。其中,值得说明的是,其也可在步骤S613中判断从缓冲储存区中读取的数据发生错误超过一定次数时,方执行步骤S615。
[第三实施例]
第一实施例与第二实施例是在闪存储存系统启动时,先决定数据区中频繁读取的区块以配置缓冲储存区避免此些频繁读取区块的过渡读取。然而,本发明也可以动态的方式来决定闪存的数据区中此次运作时频繁读取的区块而为此些频繁读取区块配置缓冲储存区。
本发明第三实施例的硬件结构与闪存的操作是相同于第一实施例(如图1与图2A-2C),因此在此不再重复说明。
图7是根据本发明第三实施例绘示数据读取方法的流程图。
请参考图7,当欲读取闪存储存系统100的闪存130时,在步骤S701中会判断欲读取的区块是否已配置对应的缓冲储存区。倘若在步骤S701中判断欲读取的区块未配置对应的缓冲储存区时,则直接从此欲读取的区块中读取数据(步骤S703)。
接着,在步骤S705中会计数所读取区块的读取次数,例如将读取次数加1。之后,在步骤S707中会判断所读取区块的读取次数是否大于频繁读取阈值,其中频繁读取阈值是由使用者自行决设定以判断是否区块为频繁读取区块。
倘若在步骤S707中判断所读取区块的读取次数大于频繁读取阈值时,则在步骤S709中会将此区块视为频繁读取区块并且为此区块配置对应的缓冲储存区。在本实施例中,是从闪存130的备用区206中提取区块作为缓冲储存区。然而,必须了解的是在本发明另一实施例中也可从另一闪存中选择区块或以一静态随机存取存储器作为对应的缓冲储存区。
类似地在本实施例中是以5个区块作为缓冲储存区来实作。当频繁读取区块超过5个时,则仅会对相对较频繁读取的5个区块设置缓冲储存区。然而,必须了解的是本发明不限于此,系统设计者可依据闪存的备用区内可使用的区块来决定作为缓冲储存区的区块数。
在步骤S711中会将储存于频繁读取的区块中的数据复制至对应的缓冲储存区中。
倘若在步骤S701中判断欲读取的区块已配置对应的缓冲储存区时,则从对应的缓冲储存区中读取数据(步骤S713)。
类似于第一实施例,由于本实施例是以闪存130的备用区206的区块作为缓冲储存区,因此其也可能发生读取干扰的问题。因此,本实施例的读取方法还包括计数对应的缓冲储存区的读取次数(步骤S715),并且判断对应频繁读取区块的缓冲储存区的读取次数是否大于缓冲区读取阈值(步骤S717),其中缓冲区读取阈值是使用者可自行设定的值,此值是用来判断缓冲储存区可能即将发生读取干扰。
因此,倘若在步骤S717中判断对应的缓冲储存区的读取次数大于缓冲区读取阈值时,则将储存于对应缓冲储存区中的数据复制至闪存130的备用区206中的另一区块并且以此另一区块取代原先作为缓冲储存区的区块作为新对应此频繁读取区块的缓冲储存区(步骤S719)。
另外,除了上述从对应的缓冲储存区中复制数据至此另一区块外,在本发明另一实施例中也可从原频繁读取的区块中复制数据至此另一区块(如图8所示的步骤S719’)。
在本实施例中是动态的方式在每次对区块读取时计数此区块的读取次数并判断是否达到属于频繁读取区块的阈值以配置对应缓冲储存区来储存所读取区块内的数据的副本,并且之后若再对此频繁读取区块的读取时会改由读取其对应的缓冲储存区。由此避免对原频繁读取区块的多次读取而造成读取干扰的问题。
[第四实施例]
在以上述动态的方式来决定闪存的数据区中此次运作时频繁读取的区块来配置缓冲储存区的结构下,也可应用本发明第二实施例所述通过检查从缓冲储存区中读取的数据为错误而判定发生读取干扰而重新配置新的缓冲储存区。
本发明第四实施例的硬件结构与闪存的操作是相同于第二实施例,在此不再重复说明。图9是根据本发明第四实施例绘示数据读取方法的流程图。
请参考图9,步骤S901、S903、S905、S907、S909、S911与S913是相同于图7的步骤S701、S703、S705、S707、S709、S711与S713,在此不再重复说明。
在步骤S915中会判断从缓冲储存区中读取的数据是否发生错误,在本实施例中是以错误校正单元110c所产生的错误校正码来检查数据是否发生错误。倘若在步骤S915中判断从缓冲储存区中读取的数据发生错误时,则在步骤S917中会从原频繁读取区块中读取数据,并且在步骤S919中会将从原频繁读取区块中读取的数据复制至闪存130的备用区206中的另一区块并且以此另一区块取代原先作为缓冲储存区的区块,由此作为对应此频繁读取区块的新缓冲储存区。
必须了解的是,上述本发明实施例所述步骤的执行顺序并非限制本发明。本领域技术人员可在不违背本发明精神下以不同的顺序执行。
综上所述,本发明使用缓冲储存区来储存闪存中频繁读取区块的数据,并且以此缓冲储存区提供控制器来读取数据。基此,可以有效地避免闪存因发生读取干扰而造成数据遗失问题。
虽然本发明已以较佳实施例披露如上,但其并非用以限定本发明,本领域技术人员,在不脱离本发明的精神和范围的前提下,当可作若干的更改与修饰,因此本发明的保护范围应以本发明的权利要求为准。
Claims (16)
1.一种数据读取方法,适用于具有闪存的闪存储存系统,其中该闪存实质上分割为多个区块且所述区块至少分组为数据区与备用区,该读取方法包括:
分别地决定该数据区的所述区块是否为频繁读取区块;
从该闪存的备用区中选择区块作为对应该频繁读取区块的缓冲储存区并且将储存于该频繁读取区块中的数据复制至对应该频繁读取区块的缓冲储存区中;以及
当欲从该频繁读取区块中读取该数据时,则从对应该频繁读取区块的缓冲储存区中读取该数据。
2.如权利要求1所述的数据读取方法,其中分别地决定该数据区的所述区块是否为该频繁读取区块的步骤包括:
计数该数据区的每一区块的读取次数;以及
分别地判断该数据区的所述区块的读取次数是否大于频繁读取阈值,若是,则判断该数据区的所述区块为该频繁存取区块。
3.如权利要求1所述的数据读取方法,还包括:
计数对应该频繁读取区块的缓冲储存区的读取次数;以及
判断对应该频繁读取区块的缓冲储存区的读取次数是否大于缓冲区读取阈值,若是,则将储存于对应该频繁读取区块的缓冲储存区中的该数据复制至该闪存的备用区中的另一区块并且将该另一区块作为对应该频繁读取区块的缓冲储存区。
4.如权利要求1所述的数据读取方法,还包括:
计数对应该频繁读取区块的缓冲储存区的读取次数;以及
判断对应该频繁读取区块的缓冲储存区的读取次数是否大于缓冲区读取阈值,若是,则将储存于该频繁读取区块中的该数据复制至该闪存的备用区中的另一区块并且将该另一区块作为对应该频繁读取区块的缓冲储存区。
5.如权利要求1所述的数据读取方法,还包括:
当从对应该频繁读取区块的缓冲储存区中读取该数据发生错误时,则将储存于该频繁读取区块中的该数据复制至该闪存的备用区中的另一区块并且将该另一区块作为对应该频繁读取区块的缓冲储存区。
6.如权利要求5所述的数据读取方法,还包括:
执行错误校正以判断从对应该频繁读取区块的缓冲储存区中读取该数据时是否发生错误。
7.如权利要求1所述的数据读取方法,其中该数据区的该频繁读取区块中储存用于该闪存储存系统的一固件码或一文件配置表。
8.一种数据读取系统,其适用于具有闪存的闪存储存系统,其中该闪存实质上分割为多个区块且所述区块至少分组为数据区与备用区,该数据读取系统包括:
一用以分别地决定该数据区的所述区块是否为频繁读取区块的装置;
一用以从该闪存的备用区中选择区块作为对应该频繁读取区块的缓冲储存区的装置;
一用以将储存于该频繁读取区块中的数据复制至对应该频繁读取区块的缓冲储存区中的装置;以及
一用以当该微处理器之后欲从该频繁读取区块中读取该数据时,则从对应该频繁读取区块的缓冲储存区中读取该数据的装置。
9.如权利要求8所述的数据读取系统,其中该分别地决定该数据区的所述区块是否为频繁读取区块的装置分别计数该数据区的每一区块的读取次数;以及当判断该数据区的所述区块的读取次数大于频繁读取阈值时,判断该数据区的所述区块为该频繁存取区块。
10.如权利要求8所述的数据读取系统,更包括:
一用以计数对应该频繁读取区块的缓冲储存区的读取次数的装置;
一用以判断对应该频繁读取区块的缓冲储存区的读取次数是否大于缓冲区读取阈值的装置;以及
一用以将储存于对应该频繁读取区块的缓冲储存区中的该数据复制至该闪存的备用区中的另一区块并且将该另一区块作为对应该频繁读取区块的缓冲储存区的装置。
11.如权利要求8所述的数据读取系统,更包括:
一用以计数对应该频繁读取区块的缓冲储存区的读取次数的装置;
一用以判断对应该频繁读取区块的缓冲储存区的读取次数是否大于缓冲区读取阈值的装置;以及
一用以将储存于该频繁读取区块中的该数据复制至该闪存的备用区中的另一区块并且将该另一区块作为对应该频繁读取区块的缓冲储存区的装置。
12.如权利要求8所述的数据读取系统,更包括:
一用以当从对应该频繁读取区块的缓冲储存区中读取该数据发生错误时,将储存于该频繁读取区块中的该数据复制至该闪存的备用区中的另一区块并且将该另一区块作为对应该频繁读取区块的缓冲储存区的装置。
13.如权利要求12所述的数据读取系统,还包括一错误校正单元,其用以判断从对应该频繁读取区块的缓冲储存区中读取该数据时是否发生错误。
14.如权利要求8所述的数据读取系统,其中该数据区的该频繁读取区块中包括一固件码或一文件配置表。
15.如权利要求8所述的数据读取系统,其中该闪存为单层存储单元NAND闪存或多层存储单元NAND闪存。
16.如权利要求8所述的数据读取系统,其中该闪存储存系统为一USB随身盘、一存储卡或一固态硬盘。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008100885620A CN101546298B (zh) | 2008-03-28 | 2008-03-28 | 用于闪存的数据读取方法、其控制器与储存系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008100885620A CN101546298B (zh) | 2008-03-28 | 2008-03-28 | 用于闪存的数据读取方法、其控制器与储存系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101546298A CN101546298A (zh) | 2009-09-30 |
CN101546298B true CN101546298B (zh) | 2012-01-11 |
Family
ID=41193441
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008100885620A Active CN101546298B (zh) | 2008-03-28 | 2008-03-28 | 用于闪存的数据读取方法、其控制器与储存系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101546298B (zh) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102129353B (zh) * | 2010-01-13 | 2017-04-12 | 群联电子股份有限公司 | 数据写入系统与数据写入方法 |
JP2015082166A (ja) * | 2013-10-22 | 2015-04-27 | ルネサスエレクトロニクス株式会社 | データ格納用フラッシュメモリの管理方法およびそのプログラム |
TWI525635B (zh) * | 2013-12-17 | 2016-03-11 | 慧榮科技股份有限公司 | 資料儲存裝置及其資料維護方法 |
CN104484290B (zh) * | 2014-12-19 | 2018-09-28 | 上海斐讯数据通信技术有限公司 | Flash的操作方法及Flash的操作装置 |
TWI606336B (zh) * | 2016-04-21 | 2017-11-21 | 慧榮科技股份有限公司 | 儲存裝置及其控制單元、可用於儲存裝置的資料儲存方法 |
KR20180014975A (ko) * | 2016-08-02 | 2018-02-12 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
US10664402B2 (en) * | 2017-01-27 | 2020-05-26 | Hewlett-Packard Development Company, L.P. | Read operation redirect |
KR20180108939A (ko) * | 2017-03-23 | 2018-10-05 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
CN108874298B (zh) * | 2017-05-15 | 2021-08-03 | 深圳市奇辉电气有限公司 | 一种数据存储的方法及装置 |
KR20190001417A (ko) * | 2017-06-27 | 2019-01-04 | 에스케이하이닉스 주식회사 | 컨트롤러 및 그 동작 방법 |
CN107846681A (zh) * | 2017-10-10 | 2018-03-27 | 北京小米移动软件有限公司 | 信息更新方法及装置 |
CN108052279B (zh) * | 2017-11-23 | 2020-06-19 | 深圳市江波龙电子股份有限公司 | 一种提升闪存性能的方法、装置、设备及存储介质 |
CN113157601A (zh) * | 2021-05-06 | 2021-07-23 | 北京集创北方科技股份有限公司 | 闪存数据读写方法、装置、存储介质和终端设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1517884A (zh) * | 2003-01-09 | 2004-08-04 | 三星电子株式会社 | 控制串行快闪存储器中适当执行的装置和方法及相应芯片 |
CN1551243A (zh) * | 2003-04-04 | 2004-12-01 | ���ǵ�����ʽ���� | 管理闪存中的不良存储块的装置和方法 |
-
2008
- 2008-03-28 CN CN2008100885620A patent/CN101546298B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1517884A (zh) * | 2003-01-09 | 2004-08-04 | 三星电子株式会社 | 控制串行快闪存储器中适当执行的装置和方法及相应芯片 |
CN1551243A (zh) * | 2003-04-04 | 2004-12-01 | ���ǵ�����ʽ���� | 管理闪存中的不良存储块的装置和方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101546298A (zh) | 2009-09-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101546298B (zh) | 用于闪存的数据读取方法、其控制器与储存系统 | |
US9098395B2 (en) | Logical block management method for a flash memory and control circuit storage system using the same | |
CN101483067B (zh) | 快闪存储器数据写入方法及其快闪存储器控制器 | |
CN101634967B (zh) | 用于闪存的区块管理方法、储存系统与控制器 | |
CN101556555B (zh) | 用于闪存的区块管理方法、其控制器与储存系统 | |
CN101464834B (zh) | 闪存数据写入方法及使用此方法的控制器 | |
TWI385518B (zh) | 用於快閃記憶體的資料儲存方法及儲存系統 | |
TWI405209B (zh) | 資料管理方法及使用此方法的快閃儲存系統與控制器 | |
CN101494085B (zh) | 防止非易失性存储器发生读取干扰的方法及其控制器 | |
CN101625897B (zh) | 用于快闪存储器的数据写入方法、储存系统与控制器 | |
CN102157202B (zh) | 防止非易失性存储器发生读取干扰的方法及其控制器 | |
CN101567220A (zh) | 闪存的损坏区块辨识方法、储存系统及其控制器 | |
CN101571832A (zh) | 数据写入方法及使用该方法的快闪存储系统与其控制器 | |
CN102053796A (zh) | 闪存储存系统、闪存控制器与数据处理方法 | |
CN101408864B (zh) | 用于断电时的数据保护方法及使用此方法的控制器 | |
CN101661431B (zh) | 用于快闪存储器的区块管理方法、快闪储存系统及控制器 | |
US8943264B2 (en) | Data storing method, and memory controller and memory storage apparatus using the same | |
CN103678162B (zh) | 系统数据储存方法、存储器控制器与存储器储存装置 | |
CN103136111A (zh) | 数据写入方法、存储器控制器与存储器储存装置 | |
CN103713857A (zh) | 存储数据的方法及存储装置 | |
CN112230849B (zh) | 存储器控制方法、存储器存储装置及存储器控制器 | |
CN103714008A (zh) | 数据存储方法、存储器控制器与存储器存储装置 | |
CN102800357A (zh) | 程序码载入与存取方法、存储器控制器与存储器储存装置 | |
CN101872318B (zh) | 用于快闪记忆体的资料存取方法及其储存系统与控制器 | |
CN114063933B (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 | ||
TR01 | Transfer of patent right |
Effective date of registration: 20210323 Address after: Han Guojingjidao Patentee after: Samsung Electronics Co.,Ltd. Address before: Miaoli County, Taiwan, China Patentee before: PHISON ELECTRONICS Corp. |
|
TR01 | Transfer of patent right |