CN101510168B - 一种快闪记忆体的存取方法和记忆体装置 - Google Patents
一种快闪记忆体的存取方法和记忆体装置 Download PDFInfo
- Publication number
- CN101510168B CN101510168B CN2008102172952A CN200810217295A CN101510168B CN 101510168 B CN101510168 B CN 101510168B CN 2008102172952 A CN2008102172952 A CN 2008102172952A CN 200810217295 A CN200810217295 A CN 200810217295A CN 101510168 B CN101510168 B CN 101510168B
- Authority
- CN
- China
- Prior art keywords
- blocks
- data
- spare
- data blocks
- purge
- 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
Landscapes
- Read Only Memory (AREA)
Abstract
一种快闪记忆体的存取方法和记忆体装置,包括快闪记忆体和控制器,其中的快闪记忆体划分为资料区和备用区,其中的资料区包括数个资料区块、备用区包括数个备用区块。控制器根据来自主机的读取指令,从快闪记忆体中的对应资料区块中读取出含有错误检查码的对应资料,并利用错误检查码对对应资料进行既定检查,当既定检查的结果显示有错误发生时,则控制器判断错误是否可被校正,并且当错误可被校正时,将对应资料区块的清除次数增加一个既定值。
Description
技术领域
本发明涉及一种快闪记忆体,特别是一种平均地抹写快闪记忆体的方法和装置。
背景技术
快闪记忆体是一种可以被设定的电压抹除并且重新写入的非易失性记忆体,并且主要应用在记忆卡与USB快闪随身碟,用作一般的储存与电脑装置和数码产品间资料的转运。快闪记忆体的成本远小于EEPROM,所以已经成为主流的记忆体装置。例如,快闪记忆体已应用于个人数码助理(英文缩写PDA)、手提电脑、数码音频播放器、数码相机与移动电话中。快闪记忆体包括众多的记忆区块,并且每一记忆区块具有数个用以储存资料的储存页面。快闪记忆体为以记忆区块为单元进行抹除,而以储存页面为单位进行写入。换句话说,当快闪记忆体的资料被抹除时,快闪记忆体中的记忆区块中的所有储存页面都必须要被一起抹除。然而,当要写入资料至快闪记忆体中时,该资料可以被写入快闪记忆体中的一个记忆区块中一特定储存页面中。此外,资料仅可以被写入至未储存资料的储存页面或已抹除的储存页面,并无法直接对特定页面进行覆写。再者,快闪记忆体中每个记忆区块仅能被抹除的一定次数。当一记忆区块的抹除次数超过临界值时,该记忆区块将无法被正确地写入,并且从该记忆区块读取出资料时将可能发生错误。换句话说,对快闪记忆体的使用寿命而言,平均地使用记忆区块是十分重要的,但传统平均抹写方法不能有效实现此目的。因此,需要一种方式可以有效且平均地使用快闪记忆体中的记忆区块。
发明内容
本发明提供一种快闪记忆体的存取方法,其中快闪记忆体划分为资料区以及备用区,资料区包含数个资料区块,备用区包含数个备用区块,存取方法包括下步骤:根据来自主机的读取指令,从快闪记忆体的第一资料区块中读取出一份含有错误检查码的对应资料;利用错误检查码对对应资料进行既定检查;当既定检查之结果显示有一错误发生时,则判断错误是否可被校正;当错误可被校正时,将第一资料区块的清除次既代码值加1。
本发明还提供一种快闪记忆体的存取方法,其中快闪记忆体划分为资料区以及备用区,资料区包含数个资料区块,备用区包含数个备用区块,该存取方法包括下列步骤:根据来自主机的读取指令,从快闪记忆体中的第一资料区块中读取出一份中含有错误检查码的对应资料;利用错误检查码对该对应资料进行既定检查;当既定检查之结果显示有错误发生时,则判断错误是否可被校正;当错误可被校正时,将第一资料区块的清除次数增加一个既定值;接收到来自主机的写入指令时,接收对应于一个逻辑位址的资料,其中的逻辑位址链结至资料区中的第二资料区块;在备用区中选择第一备用区块,当第一备用区块的清除次超过一预设值、并且资料区中具有清除次数为0的第三资料区块时,则将储存于第三资料区块的资料写入至第一备用区块中,并且重新映射第三资料区块与第一备用区块。
发明还配套提供一种记忆体装置,包括快闪记忆体和控制器,其中的快闪记忆体划分为资料区和备用区,其中资料区包括数资料区块、备用区包括数个备用区块;控制器根据来自主机的读取指令,从快闪记忆体中的对应资料区块中读取出一份含有错误检查码的对应资料,并利用错误检查码对对应资料进行既定检查,当既定检查的结果显示有错误发生时,控制器则判断错误是否可被校正,并当错误可被校正时,将对应资料区块的清除次数增加一个既定值。
本发明的积极效果是:本发明提供的记忆体装置结构的特殊性,结合本发明提供的存取信息的方法可以有效的克服现有技术的缺陷实现平均地使用快闪记忆体中的所有记忆区块、延长记忆体使用寿命。
为了使本发明的上述和其他目的、特征和优点能更明显易懂,特举一较佳实施例,并配合所附图示,作详细说明如下:
附图说明
图1为显示记忆体装置的实施例。
图2为本发明中资料区块与备用区块的映射表。
图3为本发明中快闪记忆体存取方法的流程图。
图4为本发明中快闪记忆体存取方法的另一流程图。
图5A~5E为本发明中快闪记忆体的存取过程一个实施例示意图。
图6A~6C为本发明中快闪记忆体的存取一个实施例示意图。
图7A~7E为本发明中快闪记忆体的存取一个实施例示意图。
附图中主要元件符号说明:
40记忆体装置,41记忆体控制器,42快闪记忆体,50资料区块映射表,52备用区块映射表,410介面逻辑,412缓冲记忆体,414控制逻辑,416微处理器,422资料区,424备用区,B0~BN-1区块,LA0~LAK-1逻辑位址。
具体实施方式
结合附图所给出的实施以及存取的流程示意可以看出:所述的快闪记忆体划分为资料区和备用区,所述的资料区包含有数个资料区块,所述的备用区包含有数个备用区块,所述的存取方法的包括以下步骤:
A、根据来自主机的读取指令,从快闪记忆体中的第一资料区块中读取出一份含有错误检查码的对应资料;
B、利用所述的错误检查码对所述的对应资料进行既定检查;
C、当既定检查的结果显示有错误发生时,则判断错误是否可被校正;
D、当错误可被校正时,将第一资料区块的清除次数增加一个既定值;
E、当错误无法校正时,则将第一资料区块标记为故障区块。
以上所述的既定值大于2。
所述的一种快闪记忆体的存取方法,其特征还在于:
A、接收到来自主机的写入指令时,同时接收一个对应于一个逻辑位址的资料,所述的逻辑位址与所述的资料区中的第二资料区块链结;
B、在所述的备用区中选择一个备用区块,当被选择的备用区块的清除次少于预设值时,将所述的资料写入被选择的备用区块中,并将被选择的备用区块的实体位址链结到所述的逻辑位址;
C、在选择备用区块之前,对所述的资料区中的资料区块进行资料整合;
D、清除第二资料区块的内容,并将第二资料区块回收到所述的备用区中。
本发明的存取方法,所述的快闪记忆体划分为资料区和备用区,所述的资料区包含有数个资料区块,所述的备用区包含有数个备用区块,所述的存取方法的特征在于:
A、根据来自主机的读取指令,从快闪记忆体中的第一资料区块中读取出一份含有错误检查码的对应资料;
B、利用所述的错误检查码对所述的对应资料进行既定检查;
C、当既定检查的结果显示有错误发生时,则判断错误是否可被校正;
D、当错误可被校正时,将第一资料区块的清除次数增加一个既定值;
E、接收到来自主机的写入指令时,同时接收一个对应于一个逻辑位址的资料,所述的逻辑位址与所述的资料区中的第二资料区块链结;
F、在所述的备用区中选择第一备用区块,当第一备用区块的清除次超过预设值并且所述的资料区中具有清除次数为0的第三资料区块时,则将储存于第三资料区块的资料写入至第一备用区块中,并且重新映射第三资料区块与第一备用区块。
以上所述的一种快闪记忆体的存取方法,当被选择的备用区块的清除次超过预设值,而所述的资料区中不具有清除次数为0的第三资料区块时,则将所述的资料区块与所述的备用区块的清除次数减1。
在所述的备用区中选择第二备用区块,当第二备用区块的清除次少于预设值时,将对应于所述的逻辑位址的资料写入至第二备用区块中,并将第二备用区块的实体位址链结到所述的逻辑位址。
本发明包括与以上方法相配套的快闪记忆体装置,包括快闪记忆体和控制器,所述的快闪记忆体划分为资料区和备用区,所述的资料区包含有数个资料区块,所述的备用区包含有数个备用区块,所述的快闪记忆体装置的特征在于:
A、所述的控制器根据来自主机的读取指令,从快闪记忆体中的一个对应的资料区块中读取出一份含有错误检查码的对应资料;
B、利用所述的错误检查码对所述的对应资料进行既定检查;
C、当既定检查的结果显示有错误发生时,则所述的控制器判断错误是否可被校正;
D、当错误可被校正时,将所述的对应资料区块的清除次数增加一个既定值;
E、当错误无法校正时,则由所述的控制器将所述的资料区块标记为故障区块。
以上所述的既定值大于2。
上述的快闪记忆体装置,在存取过程中能够
A、接收到来自主机的写入指令时,同时接收一个对应于一个逻辑位址的资料,所述的逻辑位址与所述的资料区中的第二资料区块链结;
B、在所述的备用区中选择一个备用区块,当被选择的备用区块的清除次少于预设值时,所述的控制器则将所述的资料写入被选择的备用区块中,并将被选择的备用区块的实体位址链结到所述的逻辑位址。
C、所述的控制器在选择备用区块之前,对所述的资料区中的资料区块进行资料整合;
D、当被选择的备用区块的清除次数少于预设值时,所述的控制器清除所述的第二资料区块的内容,并将第二资料区块回收到所述的备用区中。
本发明中配套的装置可以进一步实现以下操作步骤:
A、当被选择的备用区块的清除次超过预设值,并且该资料区中具有清除次数为0的第三资料区块时,所述的控制器则将储存于第三资料区块的资料写入至被选择的备用区块中,并且重新映射第三资料区块与被选择的备用区块。
B、当被选择的备用区块的清除次超过预设值,而所述的资料区中不具有清除次数为0的第三资料区块时,所述的控制器则将所述的资料区块与所述的备用区块的清除次数减1。
C、当被选择的备用区块的清除次超过预设值,并且所述的资料区中具有清除次数为0的第三资料区块时,所述的控制器则清除第三资料区块的内容,并将第三资料区块回收到所述的备用区中。
下面结合附图进一步说明本发明的目的是如何实现的:
图1为本发明中记忆体装置示意图。如图所示,记忆体装置40包括记忆体控制器41以及非挥发性的快闪记忆体42。记忆体控制器41包括介面逻辑410、挥发性之缓冲记忆体412、控制逻辑414以及微处理器416。介面逻辑410为用以与主机(未图示)传输资料,而缓冲记忆体412则用以暂存正在写入或正读取自快闪记忆体42的资料。介面逻辑410、缓冲记忆体412、控制逻辑414和微处理器416相互连接,并且受控于微控制器416。例如,缓冲记忆体412可为随机存取记忆体(RAM),但不限定于此。快闪记忆体42划分为资料区422与备用区424。例如,资料区422包含「K」个存有资料的资料区块B0~BK-1,而备用区424包含「(N-K)」个备用区块BK~BN-1,其中备用区块BK~BN-1可以直接被写入,而存有资料的资料区块B0~BK-1只有于清除之后才能再覆写。
图2为本发明中资料区块与备用区块的映射表。如图所示,资料区块映射表50用以显示逻辑位址LA0~LAK-1与资料区块B0~BK-1的对应关係。此外,资料区块映射表50也记录资料区块B0~BK-1的清除次数,而备用区块映射表52用以记录备用区块BK~BN-1与其清除次数。于初始情况下,逻辑位址LA0为链结至区块B0的实体位址,逻辑位址LA1为链结至区块B1的实体位址、逻辑位址LA2为链结至区块B2的实体位址,依此类推。备用区块BK~BN-1的实体位址则不链结至逻辑位址。此外,对应于各区块的清除次数为0。
图3係本发明中快闪记忆体存取方法的流程图,其动作说明如下。首先,在步骤S302中,接收到来自主机(未图示)的指令。接着在步骤S304中,记忆体控制器41则会先判断所接收到的指令为读取指令或写入(储存)指令。若所接收到的指令为读取指令时,则进行步骤S306;相反地,若所接收到的指令为写入指令时,则进行步骤S316。在步骤S306中,由于所接收到的指令为读取指令,所以记忆体控制器41会根据该指令从快闪记忆体42中一个对应资料区块中读取出所要的资料。例如,读取出的资料会含有错误检查码(Error Correction Code;ECC)。接着,在步骤S308中,记忆体控制器41会利用该错误检查码对所读取出的资料进行既定检查,并根据既定检查的结果得知是否有错误发生。若没有错误发生,则进行步骤S309,记忆体控制器41会直接将所读取出的资料回传给主机。相反地,若既定检查的结果显示有错误发生时,则执行步骤S310。在步骤S310中,记忆体控制器41接着判断该错误是否为可被校正。若该错误无法被校正时,则进行步骤S312。相反地,若该错误可以被校正时,则进行步骤S314。在步骤S312中,因为该错误无法被校正,故记忆体控制器41则会将该对应资料区块标记为故障区块。在步骤S314中,因为该错误可以被校正,为了要减少该对应资料区块被使用的机会,因此记忆体控制器41会将该对应资料区块的清除次数增加一个既定值。一般来说,该既定值大于2。例如,该既定值可为10、20、50、100、150或240,但不限定于此。除此之外,记忆体控制器41还会将校正后的资料回传给主机。在步骤S316中,由于所接收到的指令为写入指令,记忆体控制器41则执行写入程序,以便将来自主机的新资料写入快闪记忆体42中,而该写入程序将在后面详加说明。
图4为表示图3中写入程序的步骤流程图。在步骤S402中,在接收到写入指令之后,记忆体控制器41自主机接收对应于一第一逻辑位址所链结中的第一资料区块的资料,并暂时储存该资料于缓冲记忆体412中。接着,在步骤S404中,记忆体控制器41会判断是否需要清除已使用区块。若需要清除已使用区块,则进行步骤S406。反之,则进行步骤S408。一般来说,资料区422中配置有数个档桉配置表(file allocation table;FAT)区块、母区块(mother block)以及子区块(child block),当档桉配置表(FAT)区块、母区块或子区块的配对数已经满了,则表示需要清除已使用区块。步骤S406,将已使用区块清除,并将其清除次数加1,并且回收至备用区424的序列尾端。换句话说,记忆体控制器41在步骤S408前,对资料区422中之该等资料区块进行资料整合。在步骤S408中,记忆体控制器41会于备用区424中选择用以写入(或储存)资料的备用区块。例如,记忆体控制器41于备用区424选择位于序列顶端的备用区块。随后,在步骤S410中,记忆体控制器41则判断所选择之备用区块的清除次数是否到达预设值。例如,预设值可为400,但不限定于此。若所选择的备用区块的清除次数少于该预设值,则进行步骤S412。反之,若所选择的备用区块的清除次数到达该预设值,则进行步骤S414。在步骤S412中,记忆体控制器41则会将来自主机对应于第一资料区块的资料写入所选择的备用区块中。接着,清除第一资料区块并将该第一资料区块回收至备用区424的序列尾端。此外,记忆体控制器41会重新映射所选择的备用区块的实体位址,再重回到步骤S402。例如,记忆体控制器41将所选择的备用区块的实体位址链结至第一逻辑位址。当所选择的备用区块的清除次数达到预设值(例如400)时,在步骤S414中记忆体控制器41则会在资料区422中搜寻是否有清除次数为0的资料区块。若记忆体控制器41搜寻到清除次数为0的第二资料区块,则进行步骤S416。反之,当资料区422中不存在清除次数为0的资料区块时,则进行步骤S418。在步骤S416中,记忆体控制器41会执行平均抹写程序。例如,记忆体控制器41会将储存于第二资料区块中的资料写入所选择的备用区块中。然后,记忆体控制器41会清除第二资料区块,并将该第二资料区块回收至备用区424的序列尾端。在步骤S416执行后,再回到步骤S408,以进一步处理对应于第一逻辑位址所链结的第一资料区块的资料。若下一个备用区块的清除次数少于400时,则进行步骤S412,用以将对应于第一逻辑位址所链结的第一资料区块的资料写入被选择的备用区块中。步骤S418中,记忆体控制器41会将清除次数到达预设值(例如400)的备用区块的实体位址暂存于缓冲记忆体中,并将所有区块的清除次数减1后,回到步骤S408,以进一步处理对应于第一逻辑位址所链结的第一资料区块的资料。假设下一个选择的备用区块(第二备用区块)的清除次数少于400时,则进行步骤S412,将对应于第一逻辑位址所链结的第一资料区块的资料写入至第二备用区块。在对应于第一逻辑位址所链结的第一资料区块的资料被写入第二备用区块后,记忆体控制器41会再度搜寻资料区422中搜寻是否有清除次数为0的资料区块。若此时该资料区块中之一的清除次数为0时,记忆体控制器41则会将储存于清除次数为0的资料区块中的资料写入清除次数超过预设值的备用区块中。然后,记忆体控制器41将清除次数为0的资料区块清除,并将其回收至备用区424的序列尾端。若不幸地,此时资料区422中仍然不存在清除次数为0的资料区块,记忆体控制器41则会再度将所有区块的清除次数减1,并于下一笔资料被写入后,再搜寻资料区422中搜寻是否有清除次数为0的资料区块,直到该资料区块中之一的清除次数为0时,由记忆体控制器41选择该资料区块,并将该资料区块所对应额逻辑位址链结至清除次数到达预设值的备用区块,再将该资料区块回收至备用区424的序列尾端。例如,记忆体控制器41在执行完步骤S412之后,再度搜寻资料区422中搜寻是否有清除次数为0的资料区块。若该资料区块中之一的清除次数为0时,由记忆体控制器41选择该资料区块,并将该资料区块所对应的逻辑位址链结至清除次数到达预设值的备用区块。接着,将该资料区块回收至备用区424之序列的尾端,再回到步骤S402。相反地,若仍然没有清除次数为0的资料区块,则直接回到步骤S402。
在另一实施例中,当资料区422中不存在清除次数为0的资料区块时,记忆体控制器41则会将所有区块的清除次数减1,直到该资料区块中之一的清除次数为0时,由记忆体控制器41选择该资料区块,并执行步骤S416。
图5A~5D係为本发明中快闪记忆体的存取示意图,用以说明前述写入程序。如图5A中所示,资料区422中的各个资料区块都存有资料,而备用区424中的各个备用区块则都是空的(即未填充资料)。一方面,逻辑位址LA0链结至清除次数为50的区块B0,逻辑位址LA1链结至清除次数为70的资料区块B1,逻辑位址LA2链结至清除次数为100的资料区块B2,依此类推。另一方面,备用区块映射表52显示备用区块BK的清除次数为100,备用区块BK+1的清除次数为200,备用区块BK+2的清除次数为400,依此类推。在接收到写入指令之后,记忆体控制器41自主机接收对应于逻辑位址LA1所链结的资料区块B1的资料,并暂时储存该资料于缓冲记忆体412中。随后记忆体控制器41会判断是否需要清除已使用区块,若是,则将该已使用区块清除,并将其清除次数加1,并且回收至备用区424的序列尾端。前述判断、清除与回收步骤是可选择性的,也可以省略不执行。接着,记忆体控制器41会在备用区424中选择位于序列顶端的备用区块BK,并判断备用区块BK的清除次数是否超过一预设值(例如400)。由于备用区块BK的清除次数100少于预设值(400),故记忆体控制器41相应地重新映射资料区块B1与备用区块BK间的关係。换句话说,记忆体控制器41会将来自主机对应于资料区块B1的资料写入该备用区块BK中,并将逻辑位址LA1链结至备用区块BK的实体位址。接着,记忆体控制器41会清除资料区块B1,并且将资料区块B1回收至备用区424的序列尾端。如图5B中所示,区块BK会被记录于资料区422中,而区块B1则会记录于备用区424中。要注意的是,区块B1的清除次数71也被记录至映射表52中。接下来,若记忆体控制器41自主机接收对应于逻辑位址LA2所链结的资料区块B2的资料,并暂时储存该资料于缓冲记忆体412中。随后记忆体控制器41会判断是否需要清除已使用区块,若是则将该已使用区块清除,并将其清除次数加1,并且回收至备用区424的序列的尾端。前述判断、清除与回收步骤是可选择性的,也可以省略不执行。接着,记忆体控制器41会于备用区424中选择位于序列顶端的备用区块BK+1,并判断备用区块BK+1的清除次数是否超过400。由于备用区块BK的清除次数200亦少于400,故记忆体控制器41相应地重新映射资料区块B2与备用区块BK+1间的关係。换句话说,记忆体控制器41会将来自主机对应于资料区块B2的资料写入该备用区块BK+1中,并将逻辑位址LA2链结至备用区块BK+1的实体位址。随后记忆体控制器41会清除资料区块B2,并且将资料区块B2回收至备用区424之序列尾端。如图5C中所示,区块BK+1会记录于资料区422中,而区块B2则记录于备用区424中。要注意的是,区块B2的清除次数101亦被记录至映射表52中。接下来,若记忆体控制器41自主机接收对应于逻辑位址LA3所链结的资料区块B3的资料,并暂时储存该资料于缓冲记忆体412中。随后记忆体控制器41会判断是否需要清除已使用区块,若是,则将该已使用区块清除,并将其清除次数加1,并且回收至备用区424的序列尾端。前述判断、清除与回收步骤是可选择性的,也可以省略不执行。接着,记忆体控制器41会于备用区424中选择位于序列顶端的备用区块BK+2,并判断备用区块BK+2的清除次数是否超过400。由于备用区块BK+2的清除次数已经达到预设值400,记忆体控制器41则会在资料区422中搜寻是否有清除次数为0的资料区块。由于资料区422中资料区块BK-2的清除次数为0,于是记忆体控制器41会选择资料区422中的资料区块BK-2。随后,记忆体控制器41将资料区块BK-2重新映射至备用区块BK+2。换句话说,记忆体控制器41会读取储存于资料区块BK-2中资料,并将所读取到的资料储存到备用区块BK+2中。同时,记忆体控制器41会将逻辑位址LA(K-2)链结至备用区块BK+2的实体位址。此外,记忆体控制器41亦会清除资料区块BK-2,并将资料区块BK-2回收至备用区424之序列尾端。如图5D中所示,区块BK+2会记录于资料区422中并链结至逻辑位址LAK-2,而区块BK-2则会记录于备用区424中。要注意的是,区块BK-2的清除次数为1也会被记录至映射表52中。在将资料区块BK-2重新映射至备用区块BK+2之后,记忆体控制器41则会于备用区424中再选择一备用区块,以便于其中写入/储存资料。此时记忆体控制器41会于备用区424中选择位于序列顶端的备用区块BK+3,并判断备用区块BK+3的清除次数是否超过预设值400。由于备用区块BK+3的清除次数80少于400,故记忆体控制器41相应地重新映射资料区块B3与备用区块BK+3间的关係。换句话说,记忆体控制器41会将来自主机对应于资料区块B3的资料写入该备用区块BK+3中。随后,记忆体控制器41会将逻辑位址LA3链结至备用区块BK+3的实体位址,并清除资料区块B3,且将资料区块B3回收至备用区424的序列的尾端。如图5E中所示,区块BK+3会记录于资料区422中,而区块B3则会记录于备用区424中。要注意的是,区块B3的清除次数91亦被记录至映射表52中。
图6A~6C为本发明中快闪记忆体的存取示意图,用以说明当资料区中搜寻不到清除次数为0的资料区块时的实施例。如图6A中所示,资料区422中的各个资料区块都存有资料,而备用区424中的各备用区块则都是空的(即未填充资料)。逻辑位址LA0链结至清除次数为50的资料区块B0,逻辑位址LA1链结至清除次数为100的资料区块BK,逻辑位址LA2链结至清除次数为200之资料区块BK+1,依此类推。备用区块映射表52显示备用区块BK+2的清除次数为400,备用区块BK+3的清除次数为80,备用区块BK+4的清除次数为35,依此类推。于接收到写入指令之后,记忆体控制器41自主机接收对应于逻辑位址LA3所链结的资料区块B3的资料,并暂时储存该资料于缓冲记忆体412中。随后记忆体控制器41会于备用区424中选择位于序列顶端的备用区块BK+2,并判断备用区块BK+2的清除次数是否超过预设值(400)。因为备用区块BK+2的清除次数已经达到预设值400,记忆体控制器41则会在资料区422中搜寻是否有清除次数为0的资料区块。再者,由于资料区422并没有清除次数为0的资料区块,故记忆体控制器41会将资料区422与备用区424中所有区块的清除次数都减1。
因为在减1之后资料区块BK-2的清除次数由1变成了0,故记忆体控制器41会选择资料区422中的资料区块BK-2。随后,记忆体控制器41将资料区块BK-2重新映射至备用区块BK+2。换句话说,记忆体控制器41会读取储存于资料区块BK-2中资料,并将所读取到的资料储存到备用区块BK+2中。同时,记忆体控制器41会将逻辑位址LAK-2链结至备用区块BK+2的实体位址。此外,记忆体控制器41也会清除资料区块BK-2,并将资料区块BK-2回收至备用区424的序列尾端。如图6B中所示,区块BK+2会记录于资料区422中并链结至逻辑位址LAK-2,而区块BK-2则会记录于备用区424中。要注意的是,区块BK-2的清除次数为1也会被记录至映射表52中。在将资料区块BK-2重新映射至备用区块BK+2之后,记忆体控制器41则会于备用区424中再选择一备用区块,以便于其中写入/储存资料。此时记忆体控制器41会于备用区424中选择位于序列顶端的备用区块BK+3,并判断备用区块BK+3的清除次数是否超过预设值400。由于备用区块BK+3的清除次数79少于400,故记忆体控制器41相应地重新映射资料区块B3与备用区块BK+3间的关係。换句话说,记忆体控制器41会将来自主机对应于资料区块B3的资料写入该备用区块BK+3中,并将逻辑位址LA3链结至备用区块BK+3的实体位址。随后记忆体控制器41会清除资料区块B3,并且将资料区块B3回收至备用区424的序列的尾端。如图6C中所示,区块BK+3会记录于资料区422中,而区块B3则会记录于备用区424中。要注意的是,区块B3之清除次数90也被记录至映射表52中。
图7A~7D係为本发明中快闪记忆体的存取示意图,用以说明当资料区中搜寻不到清除次数为0的资料区块时的另一实施例。
如图7A中所示,资料区422中的各个资料区块都存有资料,而备用区424中的各备用区块则都是空的(即未填充资料)。逻辑位址LA0链结至清除次数为50的资料区块B0,逻辑位址LA1链结至清除次数为100的资料区块BK,逻辑位址LA2链结至清除次数为200的资料区块BK+1,依此类推。另一方面,备用区块映射表52显示备用区块BK+2的清除次数为400,备用区块BK+3的清除次数为80,备用区块BK+4的清除次数为35,依此类推。于接收到写入指令之后,记忆体控制器41自主机接收对应于逻辑位址LA3所链结的资料区块B3的资料,并暂时储存该资料于缓冲记忆体412中。随后记忆体控制器41会于备用区424中选择位于序列顶端的备用区块BK+2,并判断备用区块BK+2的清除次数是否超过预设值(400)。因为备用区块BK+2的清除次数已经达到预设值400,记忆体控制器41则会在资料区422中搜寻是否有清除次数为0的资料区块。再者,由于资料区422并没有清除次数为0的资料区块,故记忆体控制器41将备用区块BK+2之实体位址暂存于缓冲记忆体412中,并将资料区422与备用区424中所有区块的清除次数都减1。如图7B中所示,资料区块B0的清除次数由50变为49,资料区块BK的清除次数由100变为99,资料区块BK+1的清除次数由200变为199,依此类推。接着,记忆体控制器41则会于备用区424中再选择位于序列顶端的备用区块BK+3,并判断备用区块BK+3的清除次数是否超过预设值400。由于备用区块BK+3的清除次数79少于400,故记忆体控制器41相应地重新映射资料区块B3与备用区块BK+3间的关係。换句话说,记忆体控制器41会将来自主机对应于资料区块B3的资料写入该备用区块BK+3中。随后,记忆体控制器41会将逻辑位址LA3链结至备用区块BK+3的实体位址,并清除资料区块B3,且将资料区块B3回收至备用区424的序列的尾端。如图7C中所示,区块BK+3会记录于资料区422中,而区块B3则会记录于备用区424中。要注意的是,区块B3的清除次数90也被记录至映射表52中。当记忆体控制器41自主机接收对应于逻辑位址LA4所链结的资料区块B4的资料,并暂时储存该资料于缓冲记忆体412中。随后记忆体控制器41会于备用区424中选择位于序列顶端的备用区块BK+4,并判断备用区块BK+4的清除次数是否超过400。由于备用区块BK+4的清除次数34也少于400,故记忆体控制器41相应地重新映射资料区块B4与备用区块BK+4间的关係。换句话说,记忆体控制器41会将来自主机对应于资料区块B4的资料写入该备用区块BK+4中,并将逻辑位址LA4链结至备用区块BK+4的实体位址。随后记忆体控制器41会清除资料区块B4,且将资料区块B4回收至备用区424的序列尾端。如图7D中所示,区块BK+4会记录于资料区422中,而区块B4则记录于备用区424中。要注意的是,区块B4的清除次数10也被记录至映射表52中。因为在减1之后资料区块BK-2的清除次数由1变成了0,故记忆体控制器41会选择资料区422中的资料区块BK-2,并且将资料区块BK-2重新映射至备用区块BK+2。换句话说,记忆体控制器41会读取储存于资料区块BK-2中资料,并将所读取到的资料储存到备用区块BK+2中。同时,记忆体控制器41会将逻辑位址LAK-2链结至备用区块BK+2的实体位址。此外,记忆体控制器41会清除资料区块BK-2,并将资料区块BK-2回收至备用区424的序列的尾端。如图7E中所示,区块BK+2会记录于资料区422中并链结至逻辑位址LAK-2,而区块BK-2则会记录于备用区424中。要注意的是,区块BK-2的清除次数为1也会被记录至映射表52中。虽然本发明已以较好的实施例说明如上,但并非用以限定本发明,任何熟知技艺者,在不脱离本发明的精神和范围内,可作些许更改与润饰,因此本发明的保护范围当视后附的申请专利范围所界定者为准。
Claims (8)
1.一种快闪记忆体的存取方法,所述的快闪记忆体划分为资料区和备用区,所述的资料区包含有数个资料区块,所述的备用区包含有数个备用区块,所述的存取方法的特征在于:
根据来自主机的读取指令,从快闪记忆体中的第一资料区块中读取出一份含有错误检查码的对应资料;
利用所述的错误检查码对所述的对应资料进行既定检查;
当既定检查的结果显示有错误发生时,则判断错误是否可被校正;
当错误可被校正时,将第一资料区块的清除次数增加一个既定值;
当错误无法校正时,则将第一资料区块标记为故障区块;
接收到来自主机的写入指令时,同时接收一个对应于一个逻辑位址的资料,所述的逻辑位址与所述的资料区中的第二资料区块链结;以及
在所述的备用区中选择一个备用区块,当被选择的备用区块的清除次少于预设值时,将所述的资料写入被选择的备用区块中,并将被选择的备用区块的实体位址链结到所述的逻辑位址。
2.根据权利要求1所述的一种快闪记忆体的存取方法,其特征在于:所述的既定值大于2。
3.一种快闪记忆体的存取方法,所述的快闪记忆体划分为资料区和备用区,所述的资料区包含有数个资料区块,所述的备用区包含有数个备用区块,所述的存取方法的特征在于:
根据来自主机的读取指令,从快闪记忆体中的第一资料区块中读取出一份含有错误检查码的对应资料;
利用所述的错误检查码对所述的对应资料进行既定检查;
当既定检查的结果显示有错误发生时,则判断错误是否可被校正;
当错误可被校正时,将第一资料区块的清除次数增加一个既定值;
接收到来自主机的写入指令时,同时接收一个对应于一个逻辑位址的资料,所述的逻辑位址与所述的资料区中的第二资料区块链结;以及
在所述的备用区中选择第一备用区块,当第一备用区块的清除次超过预设值并且所述的资料区中具有清除次数为0的第三资料区块时,则将储存于第三资料区块的资料写入至第一备用区块中,并且重新映射第三资料区块与第一备用区块。
4.根据权利要求3所述的一种快闪记忆体的存取方法,其特征在于:当被选择的备用区块的清除次超过预设值,而所述的资料区中不具有清除次数为0的第三资料区块时,则将所述的资料区块与所述的备用区块的清除次数减1。
5.根据权利要求4所述的一种快闪记忆体的存取方法,其特征在于:在所述的备用区中选择第二备用区块,当第二备用区块的清除次少于预设值时,将对应于所述的逻辑位址的资料写入至第二备用区块中,并将第二备用区块的实体位址链结到所述的逻辑位址。
6.一种快闪记忆体装置,包括快闪记忆体和控制器,所述的快闪记忆体划分为资料区和备用区,所述的资料区包含有数个资料区块,所述的备用区包含有数个备用区块,所述的快闪记忆体装置的特征在于:
所述的控制器根据来自主机的读取指令,从快闪记忆体中的一个对应的资料区块中读取出一份含有错误检查码的对应资料;
利用所述的错误检查码对所述的对应资料进行既定检查;
当既定检查的结果显示有错误发生时,则所述的控制器判断错误是否可被校正;
当错误可被校正时,将所述的对应资料区块的清除次数增加一个既定值;
当错误无法校正时,则由所述的控制器将所述的资料区块标记为故障区块;
接收到来自主机的写入指令时,同时接收一个对应于一个逻辑位址的资料,所述的逻辑位址与所述的资料区中的第二资料区块链结;
在所述的备用区中选择一个备用区块,当被选择的备用区块的清除次少于预设值时,所述的控制器则将所述的资料写入被选择的备用区块中,并将被选择的备用区块的实体位址链结到所述的逻辑位址;
所述的控制器在选择备用区块之前,对所述的资料区中的资料区块进行资料整合;以及
当被选择的备用区块的清除次数少于预设值时,所述的控制器清除所述的第二资料区块的内容,并将第二资料区块回收到所述的备用区中。
7.根据权利要求6所述的一种快闪记忆体装置,其特征在于:所述的既定值大于2。
8.根据权利要求6所述的一种快闪记忆体装置,其特征在于:
当被选择的备用区块的清除次超过预设值,并且该资料区中具有清除次数为0的第三资料区块时,所述的控制器则将储存于第三资料区块的资料写入至被选择的备用区块中,并且重新映射第三资料区块与被选择的备用区块;
当被选择的备用区块的清除次超过预设值,而所述的资料区中不具有清除次数为0的第三资料区块时,所述的控制器则将所述的资料区块与所述的备用区块的清除次数减1;以及
当被选择的备用区块的清除次超过预设值,并且所述的资料区中具有清除次数为0的第三资料区块时,所述的控制器则清除第三资料区块的内容,并将第三资料区块回收到所述的备用区中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008102172952A CN101510168B (zh) | 2008-11-07 | 2008-11-07 | 一种快闪记忆体的存取方法和记忆体装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008102172952A CN101510168B (zh) | 2008-11-07 | 2008-11-07 | 一种快闪记忆体的存取方法和记忆体装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101510168A CN101510168A (zh) | 2009-08-19 |
CN101510168B true CN101510168B (zh) | 2012-06-27 |
Family
ID=41002571
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008102172952A Active CN101510168B (zh) | 2008-11-07 | 2008-11-07 | 一种快闪记忆体的存取方法和记忆体装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101510168B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9965345B2 (en) | 2014-09-24 | 2018-05-08 | Macronix International Co., Ltd. | Health management of non-volatile memory |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102200946B (zh) * | 2010-03-22 | 2014-11-19 | 群联电子股份有限公司 | 资料存取方法、记忆体控制器与储存系统 |
CN103577342B (zh) * | 2012-07-25 | 2018-04-17 | 慧荣科技股份有限公司 | 管理闪存中所储存的数据的方法及相关记忆装置与控制器 |
CN106297881B (zh) * | 2015-05-27 | 2020-09-11 | 旺宏电子股份有限公司 | 非挥发性存储器的健康管理 |
CN107851253B (zh) * | 2015-07-13 | 2022-03-04 | 日本电信电话株式会社 | 合约合意方法、合意验证方法、合约合意系统、合意验证装置、合约合意装置、计算机可读记录介质 |
EA201992837A1 (ru) * | 2017-06-06 | 2020-04-06 | Линиус (Авст) Пти Лтд. | Системы и способы консенсуса транзакций контента |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1571069A (zh) * | 2003-02-07 | 2005-01-26 | 株式会社瑞萨科技 | 非易失性存储系统 |
-
2008
- 2008-11-07 CN CN2008102172952A patent/CN101510168B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1571069A (zh) * | 2003-02-07 | 2005-01-26 | 株式会社瑞萨科技 | 非易失性存储系统 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9965345B2 (en) | 2014-09-24 | 2018-05-08 | Macronix International Co., Ltd. | Health management of non-volatile memory |
Also Published As
Publication number | Publication date |
---|---|
CN101510168A (zh) | 2009-08-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20180260317A1 (en) | Method for managing the copying and storing of data in garbage collection, memory storage device and memory control circuit unit using the same | |
US9009399B2 (en) | Flash memory storage system and controller and data writing method thereof | |
US8275931B2 (en) | Block management method for flash memory, and storage system and controller using the same | |
US8806301B2 (en) | Data writing method for a flash memory, and controller and storage system using the same | |
US20090089484A1 (en) | Data protection method for power failure and controller using the same | |
CN101510168B (zh) | 一种快闪记忆体的存取方法和记忆体装置 | |
US9141530B2 (en) | Data writing method, memory controller and memory storage device | |
US8250292B2 (en) | Data writing method for a flash memory, and controller and storage system using the same | |
CN103544115B (zh) | 数据写入方法、存储器控制器与存储器存储装置 | |
US20140331107A1 (en) | Method of storing system data, and memory controller and memory storage apparatus using the same | |
US9383929B2 (en) | Data storing method and memory controller and memory storage device using the same | |
US9619380B2 (en) | Data writing method, memory control circuit unit and memory storage apparatus | |
CN104765568A (zh) | 数据存储方法、存储器控制电路单元与存储器存储装置 | |
CN104423888A (zh) | 数据写入方法、存储器控制电路单元与存储器存储装置 | |
US9122583B2 (en) | Memory controller and memory storage device and data writing method | |
US20130159605A1 (en) | Data merging method for non-volatile memory module, and memory controller and memory storage device using the same | |
CN107544922B (zh) | 数据写入方法、存储器控制电路单元及存储器存储装置 | |
US9378130B2 (en) | Data writing method, and memory controller and memory storage apparatus using the same | |
US20120166706A1 (en) | Data management method, memory controller and embedded memory storage apparatus using the same | |
US8943264B2 (en) | Data storing method, and memory controller and memory storage apparatus using the same | |
US20140089566A1 (en) | Data storing method, and memory controller and memory storage apparatus using the same | |
US9778862B2 (en) | Data storing method for preventing data losing during flush operation, memory control circuit unit and memory storage apparatus | |
CN105022695A (zh) | 数据存储方法、存储器控制电路单元与存储器存储装置 | |
US8209472B2 (en) | Data writing method for flash memory and control circuit and storage system using the same | |
US8762685B2 (en) | Data writing method, memory controller and memory storage apparatus |
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 | ||
CP03 | Change of name, title or address | ||
CP03 | Change of name, title or address |
Address after: B901, B902, B903, Tianan science and Technology Pioneer Park, Futian, Futian District Che Kung Temple, Shenzhen, Guangdong Co-patentee after: Silicon Motion Corp. Patentee after: Hui Rong Technology (Shenzhen) Co., Ltd. Address before: 518000 Guangdong Tianan digital city science and Technology Pioneer Park, Futian District, Shenzhen, B1102 Co-patentee before: Silicon Motion Corp. Patentee before: Silicon Motion (Shenzhen) Inc. |