CN102376362B - 应用于快闪存储器的方法与相关的控制器 - Google Patents
应用于快闪存储器的方法与相关的控制器 Download PDFInfo
- Publication number
- CN102376362B CN102376362B CN201010267969.7A CN201010267969A CN102376362B CN 102376362 B CN102376362 B CN 102376362B CN 201010267969 A CN201010267969 A CN 201010267969A CN 102376362 B CN102376362 B CN 102376362B
- Authority
- CN
- China
- Prior art keywords
- data
- block
- counter
- flash memory
- those
- 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
Links
Landscapes
- Read Only Memory (AREA)
Abstract
本发明涉及一种运用于快闪存储器的方法与相关控制器。快闪存储器中设有多个数据单元;当读取该快闪存储器时,可依据各数据单元被读取的次数决定是否刷新数据单元中的数据。
Description
技术领域
本发明有关于一种运用于快闪存储器的方法与相关控制器,特别是关于一种可依据快闪存储器中各存储单元被读取次数适当刷新数据以减少读取干扰的方法与相关控制器。
背景技术
快闪存储器已成为现代资讯社会最重要的非挥发性存储装置之一。
发明内容
快闪存储器是以浮接闸极(floating gate)储存电荷以记录数据。随着快闪存储器的积成度增加,并朝先进制程发展,快闪存储器的浮动闸极越来越小,其保留电荷的能力也受到影响。当每一次读取浮动闸极中以电荷记录的数据时,浮动闸极都会流失部份的电荷。因此,随着快闪存储器被读取次数增加,其数据记录的可靠度与正确性也随之下降;这种因读取次数累积而影响数据储存的现象可视为一种读取干扰。虽然在数据读取时可应用错误更正码来检测/修复出错的数据,但错误更正码修复数据错误的能力相当有限。考虑数据修复的成本与演算复杂度,一般的错误更正码在一位元组的数据中只能修复1到2位元的错误;若一位元组中有超过2位元的错误,错误更正码便无法将错误的数据修复回原先正确的数据。当快闪存储器被读取的次数持续累积,数据错误的程度也会持续恶化,终将超过错误更正码所能修复的程度。而本发明即是要针对读取干扰提出一解决方案,以降低/减少/克服现代快闪存储器的读取干扰。
本发明的目的是提供一种应用于一快闪存储器的方法;快闪存储器设有多个数据单元(如分页,page),而本发明方法包含:计数这些数据单元被读取的次数以产生多个计数值,并根据这些数据单元被读取的次数,决定是否刷新(refresh)这些数据单元中的数据。
在一实施例中,本发明会为快闪存储器配置多个计数器以记录该些计数值,每一数据单元对应这些计数器的其中之一。当各数据单元被读取时,就可在各数据单元对应的计数器中将一预设增量累增至该计数器的计数值中。依据各计数器中的计数值,就可计数这些数据单元被读取的次数。
由于快闪存储器的数据读取是以分页为单位来进行,但数据的抹除与写入则是以区块(block)为单位来进行,每一区块中有多个分页。譬如说,一快闪存储器中可设有M个区块,每一区块中有N个分页(即N个数据单元),而本发明可为每Y个数据单元(Y大于或等于1)配置一个计数器,使这Y个数据单元对应于同一个计数器。因此,每一区块中的N个数据单元会对应至Z个计数器,Z=N/Y,而Z可以大于或等于1。
在前述实施例中,因为Y个数据单元共用一个计数器,当要读取这Y个数据单元的其中一个时,可一并读取同一计数器对应的其他(Y-1)个数据单元。如此,同一计数器对应的Y个数据单元的被读取次数就会一致,而该计数器的计数值也就能确实反应这Y个数据单元被读取的次数。
为克服读取干扰的影响,当某一计数器的计数值大于一临界值时,本发明就会刷新该计数器对应的各个数据单元,譬如说是在快闪存储器中找出未被使用的数据单元(譬如说是已被抹除的备用数据单元)当作取代数据单元,以将该计数器对应的各数据单元的数据分别写入至取代数据单元。也就是说,本发明是藉由计数器来进行读取次数的记录与监控;在各数据单元被读取的次数累积到将要影响数据安全之前,本发明就会将数据以重新写入的方式来予以刷新。由于重新写入会重新将足够的电荷注入至浮动闸极,故能维护数据,保持数据的正确性与可靠度,使数据能够再继续承受后续的读取,克服读取干扰。在利用取代数据单元刷新一计数器对应的各该数据单元后,各取代数据单元所对应的计数器的计数值就可被设为一初始值。
如前面描述的,在实现本发明时,一个区块中的N个数据单元(分页)可分配对应至Z个计数器,而Z可以大于1。由于快闪存储器会以区块为单位来进行数据抹除与写入,本发明可用区块为单位来进行数据刷新。针对某一区块的Z个计数器,若这Z个计数器中有某一个计数器的计数值已经大于临界值,本发明就可刷新该区块中的所有N个数据单元,譬如说是在快闪存储器中找出另一个未被使用的区块作为取代区块,以将这N个数据单元中的数据写入至取代区块中的N个对应数据单元。刷新该区块后,取代区块对应的Z个计数器的计数值可一起被设为初始值。
在一实施例中,当为各数据单元配置计数器时,系于一挥发性存储器(如静态及/或动态随机存取存储器)中配置各计数器。譬如说,若挥发性存储器中有X位元组(byte)可用以配置计数器,每个计数器使用2个位元组(可记录0到65535的计数值),则X位元组可配置出(X/2)个计数器。由于快闪存储器的M个区块分别对应Z个计数器,总共使用M*Z个计数器,故(M*Z)=X/2,即Z=X/(2*M)。也就是说,根据挥发性存储器中可用于配置计数器的位元组总数X,以及快闪存储器中的区块总数M,就可计算出各区块所能对应到的计数器数目Z;连带地,各计数器所对应的数据单元(分页)总数Y就可计算为Y=N/Z,其中N为一区块中的数据单元总数。
当要停止使用快闪存储器时,各计数器的计数值可被回写至快闪存储器中,以将这些计数值以非挥发性的方式保留下来。当要再度开始使用快闪存储器时,就可将快闪存储器中记录的计数值载入至挥发性存储器中所配置的各计数器,以便能继续累计快闪存储器各数据单元的被读取次数。
本发明的另一目的是提供一种应用于一快闪存储器的控制器,包含有一存取模块、一计数模块及一判断模块,以利用本发明技术来克服快闪存储器的读取干扰。快闪存储器中有多个数据单元;存取模块耦接快闪存储器以存取快闪存储器。计数模块计数快闪存储器中该些数据单元(分页)被读取的次数并产生多个计数值,判断模块则根据该些计数值选择性地刷新该些数据单元中的数据。
在一实施例中,计数模块耦接多个计数器,记录该些计数值;每一数据单元对应其中一个计数器,每一计数值反应数据单元被读取的次数。当某一数据单元被读取时,计数模块会在该数据单元对应的计数器中将一预设增量累增至该计数器的计数值中,以依据计数器中的计数值计数对应数据单元被读取的次数。譬如说,快闪存储器中有M个区块,各区块中有N个数据单元(分页),每Y个(Y大于或等于1)数据单元可共同对应于同一个计数器,使每一区块对应Z个计数器。
存取模块还耦接一缓冲存储器,缓冲存储器的存储容量关联于同一计数器所对应的Y个数据单元。当存取模块读取某一数据单元时,存取模块针对该被读取数据单元所对应的计数器一并读取与同一计数器对应的其他(Y-1)个数据单元,以将该计数器对应的Y个数据单元的数据一起读入至缓冲存储器。如此可使同一计数器对应的Y个数据单元的被读取次数相同,而缓冲存储器中的数据也可作为快取。
当某一计数器的计数值大于一临界值时,判断模块使存取模块刷新该计数器对应的Y个数据单元。判断模块会在快取存储器中分别为各待刷新数据单元找出一未被使用的数据单元以作为一取代数据单元,存取模块则将该计数器对应的各数据单元的数据分别写入至各对应的取代数据单元。
譬如说,当某一区块对应的Z个计数器中有某一个计数器的计数值大于临界值时,该计数器与其他(Z-1)个计数器所对应的所有数据单元(也就是该区块中的所有数据单元)都将被刷新;判断模块会为此一待刷新区块找出一个未被使用的区块以作为取代区块,而存取模块就可将待刷新区块中各个数据单元的数据重新写入至取代区块中的对应数据单元。刷新后,计数模块将该些取代数据单元对应的Z个计数器的计数值重设为一初始值。
如前面描述过的,各计数器可被配置于一挥发性存储器中。当控制器要停止使用快闪存储器时,存取模块会将各计数器的计数值回写至快闪存储器中。等要重新开始使用快闪存储器时,存取模块就可将快闪存储器中记录的计数值载入至挥发性存储器中所配置的计数器。
为让本发明的上述和其他目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合附图,作详细说明如下。
附图说明
图1所示是依据本发明一实施例而进行数据刷新的流程。
图2所示是依据本发明一实施例以利用读取次数的监控触发数据刷新的流程。
图3所示是依据本发明一实施例的电子***。
主要元件符号说明
10 控制器
12 存取模块
14 计数模块
16 判断模块
18挥发性存储器
20 快闪存储器
22 缓冲存储器
300 电子***
100、200 流程
102-106、202-216 步骤
B(.) 区块
P(.) 数据单元
C(.)计数器
具体实施方式
如前面描述的,本发明针对快闪存储器被使用的状况(如各数据单元被读取的次数)适当地以数据刷新来维护快闪存储器中的数据,避免读取干扰的负面影响。快闪存储器中可设有M个区块,每个区块中设置N个数据单元(如分页),每一数据单元储存多个位元的数据。在快闪存储器中,数据的抹除与写入都是以区块为单位而进行。也就是说,快闪存储器不能只抹除某一区块中的某些数据单元(如分页)而不抹除该区块中的其他数据单元;同一区块的所有数据单元会一并被抹除,数据抹除后才能进行数据写入。由于数据刷新涉及数据重新写入,故本发明可用区块为单位来进行数据刷新。
请参考图1,其所示意的是依据本发明一实施例而在快闪存储器中进行数据刷新的流程100。流程100的主要步骤可描述如下:
步骤102:为刷新某一区块B(i),开始进行流程100。
步骤104:在快闪存储器中找出另一个未被使用的区块B(j),并将区块B(i)的数据复制写入至区块B(j)。快闪存储器中会保留某些区块作为备用的区块,这些备用的区块不会被计算在快闪存储器所能提供的存储空间中。此步骤就是要找出一个备用的区块B(j)作为区块B(i)的取代区块,以便为区块B(i)中的数据进行数据刷新。
在一实施例中,步骤104可进行如下:先找出一个未被使用的备用区块B(j),再将区块B(j)抹除,以便将区块B(i)中的数据写入至区块B(j)中,而原本的区块B(i)就可被当作是一个未被使用的备用区块。若流程100要再度进行而刷新另一区块B(k),上一次被归为未使用的备用区块B(i)可能被选为此次要使用的备用区块,因此在进行另一轮的步骤104时,备用区块B(i)的数据则被抹除,并将区块B(k)的数据写入至区块B(i),而区块B(k)则被归为未被使用的备用区块。
然而,本发明在另一实施例中,步骤104为:找出未被使用且已被抹除的备用区块B(j),将区块B(i)的数据写入复制至区块B(j)中,再于原本的区块B(i)中进行数据抹除,使区块B(i)变成一个未被使用且已被抹除的备用区块。当流程100为刷新区块B(k)而要再度进行步骤104时,区块B(k)的数据就可直接写入至区块B(i)中,而区块B(k)会被抹除,成为未被使用且已被抹除的备用区块。
无论是那一种实施例,本发明的步骤104的基本目的都是将区块B(i)中的数据写入/复制至一个已被抹除的取代区块B(j)中。
步骤104之后接着为步骤106:区块B(i)的数据已被复制至区块B(j)中,而区块B(j)就可用来取代原本的区块B(i)。在一电子***中应用快闪存储器时,电子***的主控端(host)会依据逻辑地址来定址快闪存储器,将快闪存储器的存储空间定址为不同的逻辑地址;逻辑地址会依照一地址对照表(lookup table)而被对应至实体地址,而快闪存储器则依据实体地址进行数据存取。譬如说,逻辑地址可以是依据扇区(sector)为单位而划分快闪存储器的存储空间,每个扇区储存多个位元/位元组的数据;而地址对照表则将各扇区分别对应至快闪存储器中各实体区块的各数据单元(分页)。在步骤106中,就是要修改此地址对照表,将区块B(i)原本对应的逻辑地址Add(i)转移给区块B(j),使区块B(j)对应区块B(i)原本的逻辑地址Add(i),而区块B(i)本身则被重新定位成一个备用的区块。
在流程100完成后,对主控端来说,逻辑地址Add(i)的数据没有改变;但就快闪存储器而言,逻辑地址Add(i)的数据已经从原先的区块B(i)中被刷新至区块B(j)。在流程100进行前,在区块B(i)的各浮动闸极中的电荷会因读取而逐渐流失,危及逻辑地址Add(i)中的数据安全;但在进行流程100后,足够的电荷会被注入至区块B(j)的对应浮动闸极以重新建立逻辑地址Add(i)的数据,使逻辑地址Add(i)的数据能拥有充分的余裕继续因应后续的读取。
为监控快闪存储器被使用的状况(如各数据单元被读取的次数)以适当地利用流程100的数据刷新来维护快闪存储器中的数据,本发明可为快闪存储器中的每Y个数据单元(Y大于或等于1)配置一个计数器,使这Y个数据单元对应于同一个计数器。因此,每一区块中的N个数据单元会对应至Z个计数器,Z=N/Y,而Z可以大于或等于1。请参考图2,其所示意的流程200即为本发明依据快闪存储器被读取次数进行数据刷新以维护数据的一种实施例。流程200的主要步骤可描述如下:
步骤202:开始数据读取。主控端发出指令以读取快闪存储器中的某个(或某些)扇区。依据前述的地址对照表,快闪存储器便可读取该(些)扇区对应的实体分页。
步骤204:在快闪存储器读取各实体的分页时,针对各分页对应的计数器,将一预设增量累计至各对应计数器的计数值中。譬如说,若有Y个数据单元共用一个计数器C(k),当这Y个数据单元的其中一个(或数个)被读取时,就可在计数器C(k)中累增预设增量,代表此Y个数据单元被读取次数增加。
步骤206:判断计数器的计数值是否已经大于一临界值。若是,则进行至步骤210以进行数据刷新。若否,则可进行至步骤208。如前所述,一区块可以对应Z个计数器,而在本发明一实施例中,若某一区块B(i)对应的Z个计数器中有任何一个计数器的计数值已经超过临界值,就可进行至步骤210以刷新区块B(i)的数据。
步骤208:结束数据读取。等下次主控端再度读取快闪存储器时,可由步骤202重新开始流程200。
步骤210:可依据流程100进行数据刷新。譬如说,若在步骤206中已判定要对区块B(i)进行数据刷新,就可将区块B(i)中各数据单元的数据复制至另一个备用取代区块B(j),并对应修改地址对照表,将区块B(i)的逻辑地址Add(i)改对应至区块B(j),也就是将区块B(i)中各数据单元的逻辑地址改指向至区块B(j)中的各对应数据单元,使区块B(j)得以取代区块B(i)。
步骤212:在步骤210中将原先在区块B(i)中的数据复制/写入至区块B(j)后,便可将取代区块B(j)对应的Z个计数器统一重设为初始值,代表逻辑地址Add(i)的数据又可再度承受后续的读取,达到本发明克服读取干扰的目的。等下次主控端再度读取快闪存储器时,可再由步骤202重新开始流程200。
步骤214:对快闪存储器来说,数据写入亦等效于数据刷新。当主控端要将数据写入至某一扇区时,同样可进行至步骤210,将该扇区对应的区块刷新,并重设对应计数器的计数值。譬如说,若该扇区的数据原先储存于区块B(i),便可在步骤210中将区块B(i)的数据写入至取代的区块B(j),并在步骤212中针对区块B(j)所对应的Z个计数器重设其计数值。
步骤216:在进行步骤202的数据读取时,可针对读出的数据进行错误更正码(ECC,Error Correction Code)的检查。若错误更正码反应读出的数据有误但可予以修复,就可依据错误更正码计算出正确的数据,并将正确的数据重新回写至快闪存储器,等效上也就是进行步骤210的数据刷新与步骤212的计数器重设。
值得强调的是,错误更正码修复错误的能力是有限的;若未采用本发明技术,快闪存储器因持续读取而累积的数据流失与错误终将超过错误更正码的能力所及,导致无法修复的严重数据错误。相较之下,本发明技术可与错误更正码相辅相成;在同一区块被读取的次数不断累积而使数据错误程度超过错误更正码能修复的程度之前,本发明就会进行数据刷新,以充足的电荷重新建立数据,中断数据错误的累积,使数据错误程度能被限制在错误更正码所能修复的范围内。本发明可依据数据错误累积的统计特性来设定步骤212中的临界值(与步骤206中的初始值)。譬如说,若某一快闪存储器在其浮动闸极中保留电荷的能力较佳,每次读取所流失的电荷较少,则临界值与初始值间的差异可加大,代表该快闪存储器能容忍较多次的读取次数累积。相对地,若某一快闪存储器流失数据的程度较为严重,其临界值与初始值间差异则可缩减,使数据刷新能较为频繁地被(步骤212)触发进行,以克服较为严重的读取干扰。
本发明于图1与图2的技术可应用于图3的电子***实施例;在此电子***300中设有一控制器10、一快闪存储器20、一挥发性存储器18与一缓冲存储器22。快闪存储器20可以是一非及架构(NAND)的多级单元型(MLC,Multi-Level Cell)快闪存储器或其他种类的快闪存储器,以便为电子***300提供非挥发性的存储空间。快闪存储器20中设有M个区块B(0)至B(M-1),每个区块B(m)(m=1至(M-1))设有N个数据单元(分页)P(m*N)至P((m+1)*N-1);譬如说,区块B(0)中有N个数据单元P(0)至P(N-1),区块B(M-1)中有N个数据单元P((M-1)*N)至P(M*N-1)。
挥发性存储器18可以是动态或静态随机存取存储器,以为电子***300提供挥发性的存储空间,譬如说是为控制器10提供其运作所需的暂存存储空间。缓冲存储器22亦为挥发性存储器。譬如说,缓冲存储器22与挥发性存储器18可实现于同一挥发性存储装置中;或者,缓冲存储器22可用暂存器(如先进先出暂存器)独立实现。控制器10可存取快闪存储器20,而缓冲存储器22即用以为快闪存储器的存取提供缓冲存储空间。举例来说,当控制器10读取快闪存储器20时,由快闪存储器20读出的数据可暂存于缓冲存储器22中;当控制器10要写入快闪存储器20前,要写入至快闪存储器20的数据也可先暂存于缓冲存储器22。
为实现本发明,控制器10设有一存取模块12、一计数模块14及一判断模块16。存取模块12经由适当的介面电路(未示于第3图)耦接快闪存储器20以存取快闪存储器20,亦耦接挥发性存储器18与缓冲存储器22以进行存取。计数模块14计数各数据单元P(0)至P(M*N-1)被读取的次数,判断模块16根据各数据单元被读取的次数决定是否刷新各数据单元中的数据。
如图3所示,计数模块14可经由存取模块12存取挥发性存储器18,以在挥发性存储器18中配置出多个计数器C(0)至C(M*Z-1)。计数模块14耦接这些计数器,每一计数器纪录一计数值,且每一数据单元对应该些计数器的其中之一。当存取模块12读取各数据单元时,计数模块14在各数据单元对应的计数器中将一预设增量累增至计数值中,以依据各计数器中的计数值计数各数据单元被读取的次数。在图3的实施例中,每Y个数据单元(Y大于或等于1)会被对应同一计数器;譬如说,数据单元P(0)至P(Y-1)对应计数器C(0),数据单元P(m*N)至P(m*N+Y-1)对应计数器C(m*Z),以此类推。
在配置计数器时,若挥发性存储器18中有X位元组(byte)可用以配置计数器,每个计数器使用2个位元组(可记录0到65535的计数值),则X位元组可配置出(X/2)个计数器。由于快闪存储器20的M个区块分别对应Z个计数器,总共使用M*Z个计数器,故(M*Z)=X/2,即Z=X/(2*M)。也就是说,根据挥发性存储器18中可用于配置计数器的位元组总数X,以及快闪存储器20中的区块总数M,就可计算出各区块所能对应到的计数器数目Z;连带地,各计数器所对应的数据单元(分页)总数Y就可计算为Y=N/Z,其中N为一区块中的数据单元总数。
由于每Y个数据单元P(k*Y)至P((k+1)*Y-1)对应同一计数器C(k)(k=1至(M*Z-1)),缓冲存储器22的存储容量可关联于一计数器所对应的Y个数据单元。当存取模块12在数据单元P(k*Y)至P((k+1)*Y-1)中读取某一数据单元时,存取模块12可针对这些数据单元所对应的计数器C(k)一并读取与同一计数器C(k)对应的其他(Y-1)个数据单元,以将计数器C(k)对应的Y个数据单元的数据一起读入至缓冲存储器22,并在计数器C(k)的计数值上累增一增量值。如此可使同一计数器对应的Y个数据单元的被读取次数相同,而缓冲存储器22中的数据也可作为快取。
就如图2中的流程200,当有一计数器C(k)的计数值大于临界值时,判断模块16便可使存取模块12刷新计数器C(k)对应的各数据单元P(k*Y)至P((k+1)*Y-1)。譬如说,判断模块16可在数据单元P(0)至P(M*N-1)中找出另外Y个未被使用的备用数据单元P(k’*Y)至P((k’+1)*Y-1),作为待刷新数据单元P(k*Y)至P((k+1)*Y-1)的取代数据单元;而存取模块12就可将数据单元P(k*Y)至P((k+1)*Y-1)的数据对应地复制写入至各取代数据单元P(k’*Y)至P((k’+1)*Y-1),计数模块14则将数据单元P(k’*Y)至P((k’+1)*Y-1)对应的计数器C(k’)重新设定为初始值。在实际运作时,存取模块12会针对数据单元P(k*Y)至P((k+1)*Y-1)所属的区块B(i)进行数据刷新;也就是说,判断模块16会在各区块B(0)至B(M-1)中找出一个未被使用的备用区块B(j)以取代待刷新区块B(i),而存取模块12便会将整个区块B(i)中的所有N个数据单元分别复制写入至取代区块B(j)中的N个对应数据单元,而计数模块14则将区块B(j)所对应的Z个计数器重设为初始值。
当控制器10要停止使用快闪存储器20时,存取模块12可将各计数器C(0)至C(M*Z-1)的计数值回写至快闪存储器20中。当控制器10要再度开始使用快闪存储器20时,存取模块12便可将快闪存储器20中记录的计数值载入至挥发性存储器18中所配置的计数器C(0)至C(M*Z-1),以持续监控快闪存储器20被读取的情形。譬如说,当电子***300要关机时,就可将挥发性存储器18中的计数值写入至快闪存储器20,以利用非挥发性的方式保留这些计数值;等电子***300再度开机时,便可利用这些计数值为基础,继续累计快闪存储器20被读取的次数。或者,快闪存储器20可以是一个可插拔的存储装置;当要将快闪存储器20由电子***300移除时,便可先将计数值写入至快闪存储器20;等快闪存储器20再度***至电子***300时,就可由快闪存储器20中将原先保留的计数值载入至挥发性存储器18的对应计数器中。
在控制器10中,计数模块14与判断模块16的功能可由控制器10中的微处理核心(未示于图3)执行软件或固体程序码而实现。缓冲存储器22及/或挥发性存储器18可和控制器10一起整合于同一控制芯片中。或者,控制器10、缓冲存储器22及/或挥发性存储器18可以是不同的芯片。
总结来说,本发明可依据快闪存储器被使用的情形(被读取的次数)适当地刷新快闪存储器中的数据,以维护数据的完整与正确。在某些视讯电子***(譬如说是数位相框)中,会因为画面更新而频繁地读取快闪存储器中的视讯数据,使此种电子***对快闪存储器的读取干扰十分敏感。若在此种电子***中应用本发明,就可以克服快闪存储器的读取干扰,有效避免读取次数累积所导致的数据错误与流失。
虽然本发明已以较佳实施例揭示如上,然其并非用以限定本发明,任何熟悉本技术领域者,在不脱离本发明的精神和范围内,当可作些许的更动与润饰,因此本发明的保护范围当由权利要求书界定。
Claims (14)
1.一种应用于一快闪存储器的方法,该快闪存储器设有多个数据单元,该方法包含:
计数该些数据单元被读取的次数以产生多个计数值;以及
根据该些计数值,决定是否刷新该些数据单元中的数据,
其中该方法还包含:
配置多个计数器,其记录该些计数值,并使每一该数据单元对应该些计数器的其中之一;
当各该数据单元被读取时,在各该数据单元对应的该计数器中将一预设增量累增至该计数值中;以及
依据该些计数器中的这些计数值计数该些数据单元被读取的次数,
其中,该快闪存储器包含多个区块,各区块中有多个该数据单元,而该方法还包含:
当配置该些计数器时,为每一该区块配置多个对应的计数器,使各该区块中的每一该数据单元对应该些计数器的其中之一;以及
当每一该区块对应的该些计数器的其中之一的计数值大于一临界值时,刷新该区块,
当配置该些计数器时,使多个该数据单元对应于同一个计数器,
其中,所述方法还包含:
当要读取该些数据单元的其中之一时,针对该被读取数据单元对应的该计数器一并读取与同一该计数器对应的其他该数据单元。
2.如权利要求1所述的方法,其特征在于,还包含:
当该些计数器的其中之一的该计数值大于一临界值时,刷新该计数器对应的各该数据单元。
3.如权利要求2所述的方法,其特征在于,当要刷新该计数器对应的各该数据单元时,在该快闪存储器中为各该待刷新数据单元找出一未被使用的对应数据单元以作为一取代数据单元,并将该计数器对应的各该数据单元的数据分别写入至各取代数据单元。
4.如权利要求2所述的方法,其特征在于,还包含:
当刷新该计数器对应的各该数据单元时,将各该数据单元对应的该计数器的该计数值设为一初始值。
5.如权利要求1所述的方法,其特征在于,当刷新该区块时,在该快闪存储器中找出一未被使用的对应区块作为一取代区块,并将该区块中各该数据单元的数据分别写入至该取代区块中的各该数据单元。
6.如权利要求5所述的方法,其特征在于,还包含:
刷新该区块时,将该取代区块对应的该些计数器的计数值设为一初始值。
7.如权利要求1所述的方法,其特征在于,当配置该些计数器时,于一挥发性存储器中配置该些计数器;
其中,当要停止使用该快闪存储器时,将该些计数器的该计数值回写至该快闪存储器中。
8.如权利要求7所述的方法,其特征在于,还包含:
当要开始使用该快闪存储器时,将该快闪存储器中记录的该计数值载入至该挥发性存储器中所配置的该些计数器。
9.一种应用于一快闪存储器的控制器,该快闪存储器设有多个数据单元以储存数据,而该控制器包含有:
一存取模块,耦接于该快闪存储器,以存取该快闪存储器;
一计数模块,计数该些数据单元被读取的次数以产生多个计数值;以及
一判断模块,根据该些计数值以选择性地刷新该些数据单元中的数据,
其中,该计数模块耦接多个计数器,记录该些计数值,且每一该数据单元对应该些计数器的其中之一;每一该计数值反应这些数据单元被读取的次数,
其中,该快闪存储器包含多个区块,各区块中有多个该数据单元,而每一该区块对应于多个对应的计数器,使各该区块中的每一该数据单元对应该些计数器的其中之一,当每一该区块对应的该些计数器的其中之一的计数值大于一临界值时,该存取模块刷新该区块,
该计数模块将多个该数据单元对应于该些计数器中的同一个,
其中,该存取模块还更耦接一缓冲存储器,该缓冲存储器的存储容量关联于同一该计数器所对应的该多个数据单元;当该存取模块读取该些数据单元的其中之一时,该存取模块针对该被读取数据单元所对应的该计数器一并读取与同一该计数器对应的其他该数据单元,以将该计数器对应的该些数据单元的数据读入至该缓冲存储器。
10.如权利要求9所述的控制器,其特征在于,当该些计数器的其中之一的计数值大于一临界值时,该判断模块使该存取模块刷新该计数器对应的各该数据单元。
11.如权利要求10所述的控制器,其特征在于,当该存取模块刷新该计数器对应的各该数据单元时,该判断模块在该快闪存储器中分别为各该待刷新数据单元找出一未被使用的数据单元以作为一取代数据单元,而该存取模块将该计数器对应的各该数据单元的数据分别写入至各该对应的取代数据单元。
12.如权利要求11所述的控制器,其特征在于,当该存取模块刷新该计数器对应的各该数据单元时,该计数模块将各该取代数据单元对应的该计数器的该计数值设为一初始值。
13.如权利要求9所述的控制器,其特征在于,当该存取模块刷新该区块时,该判断模块在该快闪存储器中为该待刷新区块找出一未被使用的对应区块作为取代区块,而该存取模块将该待刷新区块中各该数据单元的数据分别写入至该取代区块中的各该数据单元。
14.如权利要求13所述的控制器,其特征在于,当该存取模块刷新该区块时,该计数模块将该取代区块对应的该些计数器的计数值设为一初始值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010267969.7A CN102376362B (zh) | 2010-08-24 | 2010-08-24 | 应用于快闪存储器的方法与相关的控制器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010267969.7A CN102376362B (zh) | 2010-08-24 | 2010-08-24 | 应用于快闪存储器的方法与相关的控制器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102376362A CN102376362A (zh) | 2012-03-14 |
CN102376362B true CN102376362B (zh) | 2017-08-11 |
Family
ID=45794834
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010267969.7A Expired - Fee Related CN102376362B (zh) | 2010-08-24 | 2010-08-24 | 应用于快闪存储器的方法与相关的控制器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102376362B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104750577B (zh) * | 2015-04-13 | 2017-09-29 | 中国人民解放军国防科学技术大学 | 面向片上大容量缓冲存储器的任意多位容错方法及装置 |
CN105702293B (zh) * | 2016-01-06 | 2019-09-17 | 上海芯泽电子科技有限公司 | 一种用于检验非易失存储单元受干扰的方法及装置 |
KR102606490B1 (ko) * | 2016-06-30 | 2023-11-30 | 삼성전자주식회사 | 불휘발성 메모리 장치 및 컨트롤러를 포함하는 스토리지 장치 |
KR20180108939A (ko) * | 2017-03-23 | 2018-10-05 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
CN109582229A (zh) * | 2018-11-16 | 2019-04-05 | 陕西千山航空电子有限责任公司 | 一种固态记录设备数据存储和查找方法 |
KR20200079851A (ko) * | 2018-12-26 | 2020-07-06 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것의 동작방법 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101188141A (zh) * | 2006-11-22 | 2008-05-28 | 奇梦达北美公司 | 包括刷新操作的电阻式存储器 |
CN101266834A (zh) * | 2007-03-15 | 2008-09-17 | 财团法人工业技术研究院 | 相变化存储器写入的驱动方法与*** |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008181380A (ja) * | 2007-01-25 | 2008-08-07 | Toshiba Corp | メモリシステムおよびその制御方法 |
-
2010
- 2010-08-24 CN CN201010267969.7A patent/CN102376362B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101188141A (zh) * | 2006-11-22 | 2008-05-28 | 奇梦达北美公司 | 包括刷新操作的电阻式存储器 |
CN101266834A (zh) * | 2007-03-15 | 2008-09-17 | 财团法人工业技术研究院 | 相变化存储器写入的驱动方法与*** |
Also Published As
Publication number | Publication date |
---|---|
CN102376362A (zh) | 2012-03-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10600491B2 (en) | Method for managing data blocks and method of data management for data storage device | |
CN102376362B (zh) | 应用于快闪存储器的方法与相关的控制器 | |
CN108733510A (zh) | 数据储存装置及映射表重建方法 | |
US8316257B2 (en) | NAND power fail recovery | |
US8046528B2 (en) | Data writing method for flash memory, and flash memory controller and storage device thereof | |
EP2077559B1 (en) | Refresh method of a flash memory | |
US10776264B2 (en) | Data storage device with power recovery procedure and method for operating non-volatile memory | |
US10020065B2 (en) | Corruption-preventative programming in solid-state data storage | |
CN110045913A (zh) | 垃圾收集的方法、记忆装置及其控制器和电子装置 | |
CN101494085B (zh) | 防止非易失性存储器发生读取干扰的方法及其控制器 | |
US8533385B2 (en) | Method for preventing read-disturb happened in non-volatile memory and controller thereof | |
US20100199020A1 (en) | Non-volatile memory subsystem and a memory controller therefor | |
CN102157202B (zh) | 防止非易失性存储器发生读取干扰的方法及其控制器 | |
CN100458718C (zh) | 一种闪存存储装置及其数据读取和写入方法 | |
CN103578565A (zh) | 一种NAND Flash存储芯片的校验方法及装置 | |
TWI479314B (zh) | 系統資料儲存方法、記憶體控制器與記憶體儲存裝置 | |
TW201816787A (zh) | 資料儲存裝置及其資料寫入方法 | |
CN101567220B (zh) | 闪存的损坏区块辨识方法、储存***及其控制器 | |
US20120215962A1 (en) | Partitioning pages of an electronic memory | |
US10446252B2 (en) | Data storage device and method for data error management | |
TW201611018A (zh) | 非揮發性記憶體裝置進行耗損管理之方法 | |
TWI490869B (zh) | 應用於快閃記憶體的方法與相關的控制器 | |
TW201730892A (zh) | 邏輯性移除非揮發性記憶體儲存裝置缺陷頁之裝置及方法 | |
US20170010810A1 (en) | Method and Apparatus for Providing Wear Leveling to Non-Volatile Memory with Limited Program Cycles Using Flash Translation Layer | |
CN103984506A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20170811 Termination date: 20190824 |