CN115202584A - 存储器管理方法、存储器控制器及存储器存储装置 - Google Patents
存储器管理方法、存储器控制器及存储器存储装置 Download PDFInfo
- Publication number
- CN115202584A CN115202584A CN202210901078.5A CN202210901078A CN115202584A CN 115202584 A CN115202584 A CN 115202584A CN 202210901078 A CN202210901078 A CN 202210901078A CN 115202584 A CN115202584 A CN 115202584A
- Authority
- CN
- China
- Prior art keywords
- entity
- unit
- units
- reading
- memory
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明属于存储技术领域,其提供一种存储器管理方法、存储器控制器与存储器存储装置,其根据实体单元的抹除次数将多个实体单元进行群组划分,得到多个第一群组,每个第一群组分别对应于一个读干扰门槛值;将每个第一群组中读取次数中超过读干扰门槛值的实体单元记录为目标实体单元;将目标实体单元中的第一数据复制至存储器模块中操作值最小的实体单元中。籍此,可减少实体单元的读取次数累计过快而造成的数据搬移次数,从而提升存储器存储装置的系统效能。
Description
技术领域
本发明涉及存储技术领域,尤其涉及一种存储器管理方法、存储器控制器及存储器存储装置。
背景技术
可复写式非易失性存储器(rewritable non-volatile memory)具有数据非易失性、省电、体积小与无机械结构等特性,故被广泛地应用于各种电子装置。可复写式非易失性存储器具有多个实体区块(physical block),每一实体区块包括多个实体程序化单元(physical page)。其中,实体区块为数据擦除的最小单位,而实体程序化单元则是数据写入的最小单位。
在主机系统欲从存储器存储装置中读取存储数据时,存储器存储装置会根据读取指令从实体区块中读取数据。一般在多次对实体程序化单元进行数据操作时,可能对同一个实体区块内其它实体程序化单元的数据操作造成干扰,造成读取数据出错。
如何处理读取干扰问题实为本发明领域技术人员所致力研究的课题之一。
发明内容
本发明提供一种存储器管理方法、存储器控制器与存储器存储装置,可解决存储器存储装置中实体单元的读干扰的技术问题。
本发明的一实施例提出一种存储器管理方法,应用于存储器存储装置,所述存储器存储装置包括存储器模块,所述存储器模块包括多个实体单元,所述方法包括:根据实体单元的抹除次数将所述多个实体单元进行群组划分,得到多个第一群组,每个所述第一群组分别对应于一个读干扰门槛值;将每个所述第一群组中读取次数中超过所述读干扰门槛值的实体单元记录为目标实体单元;将所述目标实体单元中的第一数据复制至第一实体单元中,所述第一实体单元为所述存储器模块中操作值最小的实体单元;根据所述第一实体单元的物理地址而更新所述第一数据的逻辑至物理映射关系。
在一实施例中,其中将每个所述第一群组中读取次数中超过所述读干扰门槛值的实体单元记录为目标实体单元的步骤包括:每个所述第一群组分别对应于一个读干扰监控值,将每个所述第一群组中读取次数超过所述读干扰监控值的实体单元记录为风险实体单元,所述读干扰监控值小于所述读干扰门槛值;将所述风险实体单元中读取次数超过所述读干扰门槛值的实体单元记录为目标实体单元。
进一步,在另一实施例中,其中将所述风险实体单元中读取次数超过所述读干扰门槛值的实体单元记录为目标实体单元的步骤包括:将所述风险实体单元中读取次数超过所述读干扰门槛值的实体单元记录为第二实体单元;获取所述第二实体单元的第一读取时间值,将所述第一读取时间值不大于第一阈值的所述第二实体单元记录为目标实体单元。
进一步,在另一实施例中,其中获取所述多个实体单元的读取次数和获取所述第二实体单元的第一读取时间值的步骤包括:建立第一读取次数表和第二读取次数表;所述第一读取次数表用于记录不大于所述读干扰监控值的读取次数,按照读取次数对所述第一读取次数表中的实体单元进行排序,其中所述读取次数越大,所述实体单元的排序越高;所述第二读取次数表用于记录超过所述读干扰监控值和/或所述读干扰门槛值的读取次数,以及还记录所述第二实体单元的第一读取时间值,所述第一读取时间值为所述第二实体单元最近一次被读取到现在的时间间隔,按照所述第一读取时间值对所述风险实体单元进行排序,其中所述第一读取时间值越小,所述第二实体单元的排序越高。
进一步,在另一实施例中,从所述第二实体单元中挑选出所述目标实体单元的步骤包括:获取所述第二实体单元的第一实体程序化单元的第二读取时间值,将所述第二读取时间值大于第二阈值的所述第二实体单元记录为所述目标实体单元,所述第二读取时间值为响应于数据读取指令而成功地读取到存储于所述第一实体程序化单元中数据的时间。
进一步,在另一实施例中,所述获取所述第二实体单元的第一实体程序化单元的第二读取时间值,将所述第二读取时间值大于第二阈值的所述第二实体单元记录为所述目标实体单元的步骤包括:获取所述第二实体单元的第二实体程序化单元的第三读取时间值,将所述第三读取时间值大于第二阈值的所述第二实体单元记录为所述目标实体单元,所述第三读取时间值为响应于数据读取指令而成功地读取到存储于所述第二实体程序化单元中数据的时间,所述第一实体程序化单元和所述第二实体程序化单元属于同一个实体单元。
进一步,在另一实施例中,其中将所述目标实体单元中的数据复制至所述第一实体单元的步骤包括:将所述存储器模块中的多个实体单元划分为数据区和闲置区;根据实体单元的抹除次数将所述闲置区中的多个实体单元进行群组划分,得到多个第二群组,每个第二群组分别对应不同的抹除次数取值区间;根据所述目标实体单元中数据量的大小,从抹除次数取值区间最小的第二群组中挑选合适数量的实体单元来作为第一实体单元,对所述第一实体单元执行抹除操作,将所述目标实体单元中的数据写入到所述第一实体单元中;将所述目标实体单元中的数据标记为无效数据或者将所述目标实体单元划分到所述闲置区中;将所述第一实体单元划分到所述数据区中。
进一步,在另一实施例中,其中从抹除次数取值区间最小的第二群组中挑选合适数量的实体单元来作为第一实体单元的步骤包括:根据实体单元的错误比特值将抹除次数取值区间最小的第二群组进一步进行群组划分,得到多个基于具有相同的抹除次数取值区间但是具有不同的错误比特值取值区间的子群组;从抹除次数取值区间最小且错误比特值取值区间最小的子群组中挑选抹除次数最小且错误比特值最小的实体单元来作为第一实体单元。
本发明的一实施例还提供一种存储器控制器,用于控制存储器模块,其中所述存储器模块包括多个实体单元,所述实体单元包括多个实体程序化单元;所述存储器控制器包括:主机接口,用以连接至主机系统;存储器接口,用以连接至所述存储器模块;存储器控制电路,其连接至所述主机接口与所述存储器接口;其中所述存储器控制电路根据实体单元的抹除次数将所述多个实体单元进行群组划分,得到多个第一群组,每个所述第一群组分别对应于一个读干扰门槛值;以及所述存储器控制电路将每个所述第一群组中读取次数中超过所述读干扰门槛值的实体单元记录为目标实体单元;所述存储器控制电路将所述目标实体单元中的第一数据复制至第一实体单元中,所述第一实体单元为所述存储器模块中操作值最小的实体单元;以及所述存储器控制电路根据所述第一实体单元的物理地址而更新所述第一数据的逻辑至物理映射关系。
进一步,在一实施例中,其中所述存储器控制电路将每个所述第一群组中读取次数中超过所述读干扰门槛值的实体单元记录为目标实体单元的操作包括:所述存储器控制电路将每个所述第一群组分别配置一个读干扰监控值,所述存储器控制电路将每个所述第一群组中读取次数超过所述读干扰监控值的实体单元记录为风险实体单元,所述读干扰监控值小于所述读干扰门槛值;所述存储器控制电路将所述风险实体单元中读取次数超过所述读干扰门槛值的实体单元记录为目标实体单元。
进一步,在另一实施例中,其中所述存储器控制电路将所述风险实体单元中读取次数超过所述读干扰门槛值的实体单元记录为目标实体单元的操作包括:所述存储器控制电路将所述风险实体单元中读取次数超过所述读干扰门槛值的实体单元记录为第二实体单元;所述存储器控制电路获取所述第二实体单元的第一读取时间值,且所述存储器控制电路将所述第一读取时间值不大于第一阈值的所述第二实体单元记录为目标实体单元。
进一步,在另一实施例中,其中所述存储器控制电路获取所述多个实体单元的读取次数和获取所述第二实体单元的第一读取时间值的操作包括:所述存储器控制电路建立和维护第一、第二读取次数表;所述第一读取次数表用于记录不大于所述读干扰监控值的读取次数,按照读取次数对所述第一读取次数表中的实体单元进行排序,其中所述读取次数越大,所述实体单元的排序越高;所述第二读取次数表用于记录超过所述读干扰监控值和/或所述读干扰门槛值的读取次数,以及还记录所述第二实体单元的第一读取时间值,所述第一读取时间值为所述第二实体单元最近一次被读取到现在的时间间隔,按照所述第一读取时间值对所述风险实体单元进行排序,其中所述第一读取时间值越小,所述第二实体单元的排序越高。
进一步,在另一实施例中,所述存储器控制电路从所述第二实体单元中挑选出所述目标实体单元的操作包括:所述存储器控制电路获取所述第二实体单元的第一实体程序化单元的第二读取时间值,以及所述存储器控制电路将所述第二读取时间值大于第二阈值的所述第二实体单元记录为所述目标实体单元,所述第二读取时间值为响应于数据读取指令而成功地读取到存储于所述第一实体程序化单元中数据的时间。
进一步,在另一实施例中,所述存储器控制电路获取所述第二实体单元的第一实体程序化单元的第二读取时间值,将所述第二读取时间值大于第二阈值的所述第二实体单元记录为所述目标实体单元的操作包括:所述存储器控制电路获取所述第二实体单元的第二实体程序化单元的第三读取时间值,以及所述存储器控制电路将所述第三读取时间值大于第二阈值的所述第二实体单元记录为所述目标实体单元,所述第三读取时间值为响应于数据读取指令而成功地读取到存储于所述第二实体程序化单元中数据的时间,所述第一实体程序化单元和所述第二实体程序化单元属于同一个实体单元。
进一步,在另一实施例中,其中所述存储器控制电路将所述目标实体单元中的数据复制至所述第一实体单元的操作包括:所述存储器控制电路将所述存储器模块中的多个实体单元划分为数据区和闲置区;所述存储器控制电路根据实体单元的抹除次数将所述闲置区中的多个实体单元进行群组划分,得到多个第二群组,每个第二群组分别对应不同的抹除次数取值区间;所述存储器控制电路根据所述目标实体单元中数据量的大小,从抹除次数取值区间最小的第二群组中挑选合适数量的实体单元来作为第一实体单元,以及所述存储器控制电路对所述第一实体单元执行抹除操作和将所述目标实体单元中的数据写入到所述第一实体单元中;所述存储器控制电路将所述目标实体单元中的数据标记为无效数据或者将所述目标实体单元划分到所述闲置区中;所述存储器控制电路将所述第一实体单元划分到所述数据区中。
进一步,在另一实施例中,其中所述存储器控制电路从抹除次数取值区间最小的第二群组中挑选合适数量的实体单元来作为第一实体单元的操作包括:所述存储器控制电路根据实体单元的错误比特值将抹除次数取值区间最小的第二群组进一步进行群组划分,得到多个基于具有相同的抹除次数取值区间但是具有不同的错误比特值取值区间的子群组;所述存储器控制电路从抹除次数取值区间最小且错误比特值取值区间最小的子群组中挑选抹除次数最小且错误比特值最小的实体单元来作为第一实体单元。
本发明的一实施例还提供一种存储器存储装置,所述存储器存储装置包括连接接口、存储器模块及存储器控制器;所述连接接口用于将存储器存储装置连接至主机系统;所述存储器模块包括多个实体单元,所述实体单元包括多个实体程序化单元;所述存储器控制器连接至所述连接接口与所述存储器模块;其中所述存储器控制器根据实体单元的抹除次数将所述多个实体单元进行群组划分,得到多个第一群组,每个所述第一群组分别对应于一个读干扰门槛值;以及所述存储器控制器将每个所述第一群组中读取次数中超过所述读干扰门槛值的实体单元记录为目标实体单元;所述存储器控制器将所述目标实体单元中的第一数据复制至第一实体单元中,所述第一实体单元为所述存储器模块中操作值最小的实体单元;以及所述存储器控制器根据所述第一实体单元的物理地址而更新所述第一数据的逻辑至物理映射关系。
进一步,在一实施例中,其中所述存储器控制器将每个所述第一群组中读取次数中超过所述读干扰门槛值的实体单元记录为目标实体单元的操作包括:所述存储器控制器将每个所述第一群组分别配置一个读干扰监控值,所述存储器控制器将每个所述第一群组中读取次数超过所述读干扰监控值的实体单元记录为风险实体单元,所述读干扰监控值小于所述读干扰门槛值;所述存储器控制器将所述风险实体单元中读取次数超过所述读干扰门槛值的实体单元记录为目标实体单元。
进一步,在另一实施例中,其中所述存储器控制器将所述风险实体单元中读取次数超过所述读干扰门槛值的实体单元记录为目标实体单元的操作包括:所述存储器控制器将所述风险实体单元中读取次数超过所述读干扰门槛值的实体单元记录为第二实体单元;所述存储器控制器获取所述第二实体单元的第一读取时间值,且所述存储器控制器将所述第一读取时间值不大于第一阈值的所述第二实体单元记录为目标实体单元。
进一步,在另一实施例中,其中所述存储器控制器获取所述多个实体单元的读取次数和获取所述第二实体单元的第一读取时间值的操作包括:所述存储器控制器建立和维护第一、第二读取次数表;所述第一读取次数表用于记录不大于所述读干扰监控值的读取次数,按照读取次数对所述第一读取次数表中的实体单元进行排序,其中所述读取次数越大,所述实体单元的排序越高;所述第二读取次数表用于记录超过所述读干扰监控值和/或所述读干扰门槛值的读取次数,以及还记录所述第二实体单元的第一读取时间值,所述第一读取时间值为所述第二实体单元最近一次被读取到现在的时间间隔,按照所述第一读取时间值对所述风险实体单元进行排序,其中所述第一读取时间值越小,所述第二实体单元的排序越高。
进一步,在另一实施例中,所述存储器控制器从所述第二实体单元中挑选出所述目标实体单元的操作包括:所述存储器控制器获取所述第二实体单元的第一实体程序化单元的第二读取时间值,以及所述存储器控制器将所述第二读取时间值大于第二阈值的所述第二实体单元记录为所述目标实体单元,所述第二读取时间值为响应于数据读取指令而成功地读取到存储于所述第一实体程序化单元中数据的时间。
进一步,在另一实施例中,所述存储器控制器获取所述第二实体单元的第一实体程序化单元的第二读取时间值,将所述第二读取时间值大于第二阈值的所述第二实体单元记录为所述目标实体单元的操作包括:所述存储器控制器获取所述第二实体单元的第二实体程序化单元的第三读取时间值,以及所述存储器控制器将所述第三读取时间值大于第二阈值的所述第二实体单元记录为所述目标实体单元,所述第三读取时间值为响应于数据读取指令而成功地读取到存储于所述第二实体程序化单元中数据的时间,所述第一实体程序化单元和所述第二实体程序化单元属于同一个实体单元。
进一步,在另一实施例中,其中所述存储器控制器将所述目标实体单元中的数据复制至所述第一实体单元的操作包括:所述存储器控制器将所述存储器模块中的多个实体单元划分为数据区和闲置区;所述存储器控制器根据实体单元的抹除次数将所述闲置区中的多个实体单元进行群组划分,得到多个第二群组,每个第二群组分别对应不同的抹除次数取值区间;所述存储器控制器根据所述目标实体单元中数据量的大小,从抹除次数取值区间最小的第二群组中挑选合适数量的实体单元来作为第一实体单元,以及所述存储器控制器对所述第一实体单元执行抹除操作和将所述目标实体单元中的数据写入到所述第一实体单元中;所述存储器控制器将所述目标实体单元中的数据标记为无效数据或者将所述目标实体单元划分到所述闲置区中;所述存储器控制器将所述第一实体单元划分到所述数据区中。
进一步,在另一实施例中,其中所述存储器控制器从抹除次数取值区间最小的第二群组中挑选合适数量的实体单元来作为第一实体单元的操作包括:所述存储器控制器根据实体单元的错误比特值将抹除次数取值区间最小的第二群组进一步进行群组划分,得到多个基于具有相同的抹除次数取值区间但是具有不同的错误比特值取值区间的子群组;所述存储器控制器从抹除次数取值区间最小且错误比特值取值区间最小的子群组中挑选抹除次数最小且错误比特值最小的实体单元来作为第一实体单元。
基于上述,本发明提供一种存储器管理方法、存储器控制器与存储器存储装置,其根据实体单元的抹除次数将所述多个实体单元进行群组划分,得到多个第一群组,每个所述第一群组分别对应于一个读干扰门槛值;将每个所述第一群组中读取次数中超过所述读干扰门槛值的实体单元记录为目标实体单元;将所述目标实体单元中的第一数据复制至所述存储器模块中操作值最小的实体单元中。籍此,可减少实体单元的读取次数累计过快而造成的数据搬移次数,从而提升存储器存储装置的系统效能。
为让本发明的上述技术特征和有益效果能更明显易懂,下文特举实施例,并配合附图作详细说明如下。
附图说明
图1为本发明实施例所示出的一种存储器存储装置的示意图;
图2为本发明一实施例所示出的一种存储器控制器的结构框图;
图3为本发明一实施例所示出的一种管理存储器模块的示意图;
图4为本发明一实施例所示出的一种管理存储器模块的示意图;
图5为本发明一实施例所示出的一种第一实体单元读取次数表示意图;
图6为本发明一实施例所示出的一种实体单元抹除次数表的示意图;
图7为本发明一实施例所示出的一种实体单元不同的抹除次数取值区间和不同的读干扰门槛值的示意图;
图8为本发明一实施例所示出的一种管理存储器模块的示意图;
图9为本发明一实施例所示出的一种第二实体单元读取次数表示意图;
图10为本发明一实施例所示出的一种管理存储器模块的示意图;
图11为本发明一实施例所示出的一种坏块表的示意图;
图12为本发明一实施例所示出的一种将第二群组分成多个子群组来管理的示意图;
图13本发明一实施例所示出的一种存储器管理方法的流程图
具体实施方式
下面结合附图及案例详细说明本申请实施例所述存储器存储装置的具体结构及实现方案。
图1是根据本发明的实施例所示出的存储器存储装置的示意图。请参照图1,存储系统10包括主机系统11与存储器存储装置12。主机系统11可为任意型态的计算机系统。例如。主机系统11可为笔记本计算机、台式计算机、智能手机、平板计算机、工业计算机、游戏机、数码相机等各式电子系统。存储器存储装置12用于存储来自主机系统11的数据。例如,存储器存储装置12可包括固态硬盘、U盘、存储卡或其他类型的非易失性存储装置。主机系统11可经由串行高级技术附件(Serial Advanced Technology Attachment,SATA)接口、高速周边零件连接接口(Peripheral Component Interconnect Express,PCI Express)、通用串行总线(Universal Serial Bus,USB)或其他类型的连接接口电性连接至存储器存储装置12。因此,主机系统11可将数据存储至存储器存储装置12和/或从存储器存储装置12读取数据。
存储器存储装置12可包括连接接口121、存储器模块122及存储器控制器123。连接接口121用于将存储器存储装置12连接至主机系统11。例如,连接接口121可支持SATA、PCIExpress或USB等连接接口标准。存储器存储装置12可经由连接接口121与主机系统11通信。
存储器模块122用于存储数据。存储器模块122可包括可复写式非易失性存储器模块。存储器模块122包括存储单元阵列。存储器模块122中的存储单元是以电压的形式来存储数据。例如,存储器模块122可包括单层存储单元(Single Level Cell,SLC)NAND型快闪存储器模块、多层存储单元(Multi Level Cell,MLC)NAND型快闪存储器模块、三层存储单元(Triple Level Cell,TLC)NAND型快闪存储器模块、四层存储单元(Quad Level Cell,QLC)NAND型快闪存储器模块或其他具有相似特性的存储器模块。
进一步,SLC(单层存储单元)全称是Single-Level Cell,单层电子结构,每个cell可以存放1bit数据,SLC达到1bit/cell,写入数据的时候电压变化区间小,P/E寿命较长,理论抹除次数在10万次以上;MLC(双层存储单元)全称是Multi-Level Cell,使用高低电压的而不同构建的双层电子结构,MLC达到2bit/cell,P/E寿命较长,理论抹除次数在3000-5000次左右;TLC(三层存储单元)全称是Trinary-Level Cell,三层式存储单元,是MLC闪存延伸,TLC达到3bit/cell,由于存储密度较高,所以容量理论上是MLC的1.5倍,成本较低,但是P/E寿命相对要低一些,理论抹除次数在1000-3000次不等;QLC(四层存储单元)全称是Quad-Level Cell,四层式存储单元,QLC闪存颗粒拥有比TLC更高的存储密度,同时成本上相比TLC更低,优势就是可以将容量做的更大,成本上更低,劣势就是P/E寿命更短,理论抹除次数仅150次。
存储器控制器123连接至连接接口121与存储器模块122。存储器控制器123可用于控制存储器存储装置12。例如,存储器控制器123可控制连接接口121与存储器模块122以进行数据存取与数据管理。例如,存储器控制器123可包括中央处理单元(CPU)、或是其他可编程的一般用途或特殊用途的微处理器、数字信号处理器(Digital Signal Processor,DSP)、可编程控制器、专用集成电路(Application Specific Integrated Circuits,ASIC)、可编程逻辑器件(Programmable Logic Device,PLD)或其他类似装置或这些装置的组合。
在一实施例中,存储器控制器123亦称为快闪存储器控制器。在一实施例中,存储器模块122也称为快闪存储器模块。存储器模块122可接收来自存储器控制器123的指令序列并根据此指令序列存取存储单元。
图2是根据本发明的一实施例所示出的存储器控制器的结构框图。请参照图2,存储器控制器123包括存储器控制电路204、主机接口202及存储器接口206。
存储器控制电路204用于控制存储器控制器123的整体运作。具体来说,存储器控制电路204具有多个控制指令,并且在存储器存储装置12运作时,这些控制指令会被执行以进行数据的写入、读取与擦除等运作。以下说明存储器控制电路204的操作时,等同于说明存储器控制器123的操作。
在本实施例中,存储器控制电路204的控制指令是以固件型式来操作。例如,存储器控制电路204具有微处理器单元(图2中未示出)与只读存储器(图2中未示出),并且控制指令是被烧录至此只读存储器中。当存储器存储装置12运作时,这些控制指令会由微处理器单元来执行以进行数据的写入、读取与擦除等运作。
在另一实施例中,存储器控制电路204的控制指令也可以程序码型式存储于存储器模块122的特定区域(例如,存储器模块中专用于存放系统数据的系统区)中。此外,存储器控制电路204具有微处理器单元(未示出)、只读存储器(未示出)及随机存取存储器(未示出)。特别是,只读存储器具有开机码(boot code),并且当存储器控制器123被致能时,微处理器单元会先执行开机码来将存储于存储器模块122中的控制指令载入至存储器控制电路204的随机存取存储器中。之后,微处理器单元会运转这些控制指令以进行数据的写入、读取与擦除等运作。
此外,在另一实施例中,存储器控制电路204的控制指令也可以一硬件型式来操作。例如,存储器控制电路204包括微控制器、存储单元管理电路、存储器写入电路、存储器读取电路、存储器擦除电路与数据处理电路。存储单元管理电路、存储器写入电路、存储器读取电路、存储器擦除电路与数据处理电路是电性连接至微控制器。存储单元管理电路用于管理存储器模块122的存储单元或其群组。存储器写入电路用于对存储器模块122下达写入指令序列以将数据写入至存储器模块122中。存储器读取电路用于对存储器模块122下达读取指令序列以从存储器模块122中读取数据。存储器擦除电路用于对存储器模块122下达擦除指令序列以将数据从存储器模块122中擦除。数据处理电路用于处理欲写入至存储器模块122的数据以及从存储器模块122中读取的数据。写入指令序列、读取指令序列及擦除指令序列可分别包括一个或多个程序码或指令码并且用于指示存储器模块122执行相对应的写入、读取及擦除等操作。在一实施例中,存储器控制电路204还可以下达其他类型的指令序列给存储器模块122以指示执行相对应的操作。
主机接口202是电性连接至存储器控制电路204并且用于接收与识别主机系统11所传送的指令与数据。也就是说,主机系统11所传送的指令与数据会通过主机接口202来传送至存储器控制电路204。在本实施例中,主机接口202是相容于SATA标准。然而,必须了解的是本发明不限于此,主机接口202也可以是相容于PATA标准、IEEE 1394标准、PCIExpress标准、USB标准、SD标准、UHS-I标准、UHS-II标准、MS标准、MMC标准、eMMC标准、UFS标准、CF标准、IDE标准或其他适合的数据传输标准。
存储器接口206是电性连接至存储器控制电路204并且用于存取存储器模块122。也就是说,欲写入至存储器模块122的数据会经由存储器接口206转换为存储器模块122所能接受的格式。具体来说,若存储器控制电路204要存取存储器模块122,存储器接口206会传送对应的指令序列。例如,这些指令序列可包括指示写入数据的写入指令序列、指示读取数据的读取指令序列、指示擦除数据的擦除指令序列、以及用于指示各种存储器操作(例如,改变读取电压电平或执行垃圾回收操作等等)的相对应的指令序列。这些指令序列例如是由存储器控制电路204产生并且通过存储器接口206传送至存储器模块122。这些指令序列可包括一个或多个信号,或是在总线上的数据。这些信号或数据可包括指令码或程序码。例如,在读取指令序列中,会包括读取的识别码、存储器地址等信息。
在本实施例中,存储器控制器123可以针对存储于同一个实体程序化单元中的数据进行单框架(single-frame)编码,也可以针对存储于多个实体程序化单元中的数据进行多框架(multi-frame)编码。根据所采用的编码算法,存储器控制器123可以编码欲保护的数据来产生相对应的错误更正码和/或错误检查码。
在一实施例中,存储器控制器123还包括缓冲存储器210、错误检查与校正电路212与电源管理电路208。缓冲存储器210是电性连接至存储器控制电路204并且用于暂存来自于主机系统11的数据与指令或来自于存储器模块122的数据。电源管理电路208是电性连接至存储器控制电路204并且用于控制存储器存储装置12的电源。错误检查与校正电路212是电性连接至存储器控制电路204并且用于执行错误检查与校正操作以确保数据的正确性。
具体来说,当存储器控制电路204从主机系统11中接收到写入指令时,错误检查与校正电路212会为对应写入指令的数据产生对应的错误校正码(error correcting code,ECC)和/或错误检查码(error detecting code,EDC),并且存储器控制电路204会将对应写入指令的数据与对应的错误校正码和/或错误检查码写入至存储器模块122中。之后,当存储器控制电路204从存储器模块122中读取数据时会同时读取数据对应的错误校正码和/或错误检查码,并且错误检查与校正电路212会依据错误校正码和/或错误检查码对所读取的数据执行错误检查与校正操作。
图3是根据本发明的一实施例所示出的管理存储器模块的示意图。请参照图3,存储器模块122包括多个实体单元301(0)--301(A)。每一个实体单元皆包括多个存储单元且用于非易失性地存储数据。例如,一个实体单元可包括一个或多个实体区块。每一个实体区块可包括多个实体程序化单元。一个实体程序化单元可包括一个或多个存储单元。一个实体程序化单元中的多个存储单元可被同时程序化以存储数据。此外,一个实体单元中的所有实体程序化单元可被同时擦除。
进一步,如图3所示,存储器控制电路204可配置多个逻辑单元302(0)--302(B)来映射实体单元301(1)--301(A)。例如,一个逻辑单元可由一个或多个逻辑地址组成。逻辑单元与实体单元之间的映射关系则可记载于逻辑至实体映射表(L2P)中。示例性地,逻辑实体单元映射至物理实体单元被称之为区块(块)映射;逻辑实体程序化单元映射至物理实体程序化单元被称之为实体程序化单元(页)映射。下文中,逻辑至实体映射表可被理解成逻辑至物理映射表。当接收到来自主机系统11的存取指令时,存储器控制电路204可根据相应的逻辑至实体映射表来将数据存取到实体单元上。
图4是根据本发明的一实施例所示出的管理存储器模块的示意图。进一步,如图4所示,在一实施例中,存储器控制电路204会将实体单元301(0)--301(A)逻辑地分组为数据区506、闲置区504、系统区502与取代区508。
必须了解的是,本实施例中在描述存储器模块122的实体单元的运作时,以“提取”、“分组”、“划分”、“关联”等词来操作实体单元是逻辑上的概念。也就是说,存储器模块122的实体单元的实际位置并未改变,而是逻辑上对存储器模块122的实体单元进行操作。
逻辑上属于数据区506与闲置区504的实体单元是用于存储来自于主机系统11的数据。具体来说,数据区506的实体单元是被视为已存储数据的实体单元,而闲置区504的实体单元是用于替换数据区506的实体单元。也就是说,当从主机系统11接收到写入指令与欲写入的数据时,存储器控制电路204会从闲置区504中提取实体单元来写入数据,写入了数据的实体单元在此之后就从闲置区504中划分到数据区506中,不再被划分到闲置区504中。当从主机系统11接收到读取指令与欲读取的数据时,存储器控制电路204会根据相应的逻辑至实体映射表从数据区506中的实体单元中读取数据。
具体地,数据区506、闲置区504、系统区502与取代区508分别包括一个或多个实体单元。数据区506中的实体单元是被视为已存储有效数据的实体单元,闲置区504中的实体单元也存储了数据,只是这些数据是无效数据,实体单元内有存储有数据(即使是无效数据),可以避免实体单元的漏电,有效地提高实体单元或存储器模块122的寿命。在后续需要使用闲置区504中的实体单元时,先擦除它们中的数据(无效数据),再写入到新数据到这些实体单元中。
逻辑上属于系统区502的实体单元是用于记录系统数据。例如,系统数据包括关于存储器模块122的制造商与型号、存储器模块122的实体单元数、每一实体单元的实体程序化单元数等。具体地,系统区502用于存储逻辑至实体映射表、读取次数表、实体单元的擦除次数表和实体单元的坏块表。
逻辑上属于取代区508中的实体单元是用于坏实体单元取代程序,以取代损坏的实体单元。具体来说,倘若取代区508中仍存有正常的实体单元并且数据区506、闲置区504、系统区502中的实体单元损坏时,存储器控制电路204会从取代区508中提取正常的实体单元来更换数据区506、闲置区504、系统区502中损坏的实体单元。
进一步,数据区506、闲置区504、系统区502与取代区508的实体单元的数量会根据不同的存储器规格而有所不同。此外,必须了解的是,在存储器存储装置12的运作中,实体单元关联至数据区506、闲置区504、系统区502与取代区508的分组关系会动态地变动。例如,当闲置区504中的实体单元损坏而被取代区508的实体单元取代时,则原本取代区508的实体单元会被关联至闲置区504。
进一步,数据区506的实体单元是被视为已存储数据的实体单元,而闲置区504的实体单元是用于待存储新数据的实体单元,当写入了新数据的实体单元就划分到数据区506中,变成数据区506中的实体单元。也就是说,当从主机系统11接收到写入指令与欲写入的数据时,存储器控制电路204会根据相应的逻辑至实体映射表从闲置区504中提取实体单元来写入数据,并更新所述实体单元的所属区域关系,即将该存储新数据的原本属于闲置区504的实体单元变成数据区506中的实体单元。当从主机系统11接收到读取指令与欲读取的数据时,存储器控制电路204会根据相应的逻辑至实体映射表从数据区506中的实体单元中读取数据。
实体单元有读取次数的阈值限制,随着存储器存储装置10的使用,某一些实体单元的读取次数可能会达到其读干扰门槛值的限制,需要将这些实体单元中的数据进行数据搬移操作,即搬移到新的实体单元中。以此来保证存储于存储器模块122中数据的稳定性。
基于此,在一实施例中,存储器控制电路204建立和维护一实体单元读取次数表(亦称之为第一读取次数表,表1),如图5所示。图5为本发明的一实施例所示出的实体单元读取次数表示意图。图5中用H来表示实体单元301(C)--301(D)的读取次数值,301(C)表示序号为C的实体单元。Hc表示序号为c的实体单元的读取次数值。存储器控制电路204在执行完对某一实体单元的读取指令后,在图5中该序号的实体单元的读取次数上+1,以实现对图5的维护。优选地,该实体单元取次数表可保存在系统区中。
优选地,在一实施例中,存储器控制电路204按照读取次数对该读取次数表中的实体单元进行排序,其中读取次数越大的实体单元的排序越高。优选地,排序高的实体单元排列在图5的表头,此举方便后续根据读取次数的大小挑选实体单元时可从图5中的读取次数表的表头来挑选出符合需要的实体单元。籍此,使得执行挑选实体单元的操作速度更快。
在一实施例中,存储器控制电路204还建立和维护一实体单元抹除次数表(P/E表)来记录存储器模块122中实体单元的使用状况,P/E表中记录有存储器模块122中所有实体单元的抹除次数,如图6所示。图6中,301(M)中的M表述实体单元301的序号,N表示序号实体单元301(M)的抹除次数。该实体单元抹除次数表可保存在系统区中。
优选地,在一实施例中,存储器控制电路204根据实体单元的抹除次数对多个实体单元进行排序,存储器控制电路204将排序后的多个实体单元按照抹除次数小的实体单元序号排列在所述抹除次数表的表头,方便后续从图7中根据抹除次数来挑选实体单元,此举可提高实体单元的挑选速度。
进一步,在一实施例中,存储器控制电路204还建立和维护一抹除次数和读干扰门槛值表,详情见图7。图7中,其中对于不同的存储单元,抹除次数与读干扰门槛值之间的关系亦可能有所不同。对于单层存储单元NAND型快闪存储器模块而言,其读干扰门槛值会随着抹除次数增加而减少。另一方面多层存储单元NAND型快闪存储器模块,读干扰门槛值会随着抹除次数的增加而先增加然后减少。
进一步,在一实施例中,存储器控制电路204根据实体单元的抹除次数将数据区506中多个实体单元进行群组划分,得到多个第一群组。每个第一群组分别对应不同的抹除次数取值区间;其中,每一个第一群组可包含一个或多个实体单元且每一个实体单元其在某一个时间段的抹除次数只能属于某一个第一群组;每一个第一群组的抹除次数取值区间都是不相同的。
从图7中可知,实体单元的抹除次数不同,其对应的读干扰门槛值(K)也是不同的。通过群组的方式来对存储器模块122中的实体单元进行管理,每一个第一群组都会有其对应的读干扰门槛值K,比如K1、K2、K3…。不用通过一个读干扰门槛值K来管理存储器模块122中的所有实体单元,此举可以提高实体单元管理的精细度,可提升存储器存储装置12的系统效能。具体地,某一些抹除次数小的实体单元,其读干扰门槛值可设置大一些,降低对这类实体单元进行数据搬移的操作次数。某一些抹除次数大的实体单元,其读干扰门槛值相比较抹除次数小的实体单元的读取阈值可设置小一些,提高对这类实体单元进行数据搬移的操作次数。
进一步,在一实施例中,存储器控制电路204还将每个第一群组分别设置有一个读干扰监控值(W),所述读干扰监控值(W)小于所述读干扰门槛值(K)。每一个K1对应有一个W1。具体地,将每个第一群组中读取次数超过K的实体单元记录为目标实体单元的步骤包括:先将读取次数大于W1的实体单元记录为风险实体单元,然后再将风险实体单元中读取次数大于K1的风险实体单元记录为目标实体单元。同理适用于其他的每一第一群组。
示例性地,请参见图8所示,图8为根据实体单元不同的抹除次数取值区间构建多个不同的第一群组,且每一个第一群组具有不同的读干扰门槛值。存储器模块122中包括2000个实体单元,分别为B0—B1999。其中抹除次数为0-50的第一群组41(0)的实体单元数量为500个,抹除次数为51-150的第一群组4(1)的实体单元数量为600个,抹除次数为151-500的第一群组41(2)的实体单元数量为300个,抹除次数为501-1000的第一群组41(3)的实体单元数量为400个,抹除次数为1001-5000的第一群组41(4)的实体单元数量为200个。根据抹除次数区间值分成多个第一群组和每一个第一群组都有所属的读干扰门槛值K。图8中,读干扰门槛值K1小于K2,K1小于K3,K1小于K4,K1大于K5。读干扰监控值W1小于W2,W1小于W3,W1小于W4,W1大于W5。
进一步,在一实施例中,进一步,图5用于记录不大于W的读取次数,按照读取次数对表1中的实体单元进行排序,其中读取次数越大,实体单元的排序越高。但是当有实体单元的读取次数达到W次(读干扰监控值)时,则将这些实体单元从图5中放到表2中(亦称之为第二读取次数表),用表2来管理之,图5中的表1不再管理这些实体单元。换句话说,表2用于维护和管理超过W和/或K的读取次数。
在一实施例中,将读取次数大于W次的实体单元标注为风险实体单元并从图5中剔除改用图9中的表2来记录之。进一步,将风险实体单元中读取次数超过读干扰门槛值的实体单元记录为第二实体单元。具体地,图9中的表2还记录第二实体单元的第一读取时间值T,如图9所示。表2除了维护和管理超过W和/或K的读取次数外,还记录第二实体单元的第一读取时间值T,T为第二实体单元最近一次被读取到现在的时间间隔,按照第一读取时间值对第二实体单元进行排序,其中第一读取时间值越小,第二实体单元的排序越高。
相比较用一个读取次数表来记录和维护所有实体单元的读取次数,本实施例用2个读取次数表来记录和维护实体单元的读取次数,尤其是表2中的实体单元都是读取次数超过W次,使得后续在筛选目标实体单元时,可在表2中依据K值和/或T值来挑选实体单元,此举使得挑选目标实体单元的操作速度更快。
在一实施例中,上述读干扰门槛值是一个概率值,在解决读干扰的问题时,并不是对读取次数超过读干扰门槛值的实体单元执行数据搬移操作。而是在将风险实体单元中读取次数超过读干扰门槛值的实体单元记录为第二实体单元,然后获取所述第二实体单元的第一读取时间值,将所述第一读取时间值不大于第一阈值的所述第二实体单元记录为目标实体单元。通过对第二实体单元增加一个第一读取时间值不大于第一阈值的判断,可减少目标实体单元的选择范围,降低对实体单元执行数据搬移操作的次数。使得最后被挑选出来的目标实体单元是真正需要被执行数据搬移操作的实体单元。在一实施例中,所述第一阈值是一个可变的阈值,其可设定为1S、1M等。在另一实施例中,所述第一阈值是一个不变的阈值,其可设定为1S或1M等,在此实施例中不作限定。所述第一阈值的目的是用于确定或挑选实体单元读取次数超过K且是最近被读取的实体单元。
进一步,在一实施例中,还提出一种存储器控制电路204从第二实体单元中挑选目标实体单元并将挑选出来的实体单元记录为目标实体单元的方法。具体地,存储器控制电路204获取第二实体单元的第一实体程序化单元的第二读取时间值,以及存储器控制电路204将该第二读取时间值大于第二阈值的第二实体单元记录为目标实体单元,上述第二读取时间值为响应于数据读取指令而成功地读取到存储于所述第一实体程序化单元中数据的时间。
进一步,在另一实施例中,其中获取第二实体单元的第一实体程序化单元的第二读取时间值,将第二读取时间值大于第二阈值的第二实体单元记录为目标实体单元的步骤还包括:获取第二实体单元的第二实体程序化单元的第三读取时间值,将该第三读取时间值大于第二阈值的第二实体单元记录为目标实体单元,第三读取时间值为响应于数据读取指令而成功地读取到存储于第二实体程序化单元中数据的时间,所述第一实体程序化单元和所述第二实体程序化单元属于同一个实体单元。
在一实施例中,所述第二阈值是一个可变的阈值,其可设定为0.1mS、0.01mS等。在另一实施例中,所述第二阈值是一个不变的阈值,其可设定为0.1mS、或0.01mS等,在此实施例中不作限定。所述第二阈值的目的是用于确定或挑选一些实体程序化单元中的数据被读取的时间。
示例性地,一个实体单元包括200个实体程序化,第一实体程序化单元为P0,第二实体程序化单元为P199。通过检测同一个风险实体单元中的两个实体程序化单元的读取时间,使得检测或筛选目标实体单元更为精准。
进一步,也可在此基础上,增加同一个风险实体单元中实体程序化单元的数量,比如第三实体程序化单元或者更多的实体程序化单元数量。
在一实施例中,检测同一个风险实体单元中的偶数或奇数序号的实体程序化单元。
在另一实施例中,检测同一个风险实体单元中的序号“0”的实体程序化单元。比如P0、P10、P20等等。
上述对所述第一实体程序化单元和所述第二实体程序化单元的限定,其目的是提高第二实体单元中挑选出来的目标实体单元更具有代表性。即挑选出最应该被执行数据搬移操作的目标实体单元。
在另一实施例中,所述第一实体程序化单元和所述第二实体程序化单元属于不同的字线。
示例性地,若第二实体单元的数量为100个实体单元,需要从这100个实体单元中挑选20个实体单元作为目标实体单元。判断这100个实体单元中一些实体程序化单元(称之为第一实体程序化单元)的读取时间(称之为第二读取时间值),若一些实体程序化单元(第一实体程序化单元)的读取时间大于第二阈值,那么基于Nand Flash存储数据的原理,可知读取到这些实体程序化单元中数据的过程中经过了重读的操作或者由于经过较长时间的ECC解码操作;从而导致读取到这些实体程序化单元中数据所花费的时间相较于读取到其它的实体程序化单元中数据长。进而可判断出这些实体程序化单元所属的实体单元可被认定为目标实体单元。需要将存储于其上面的数据进行数据搬移操作,以此一方面是提高存储器存储装置12的数据读取的速度,另外一方面以保证存储于存储器模块122中的数据的安全性和稳定性。
在另一实施例中,所述第一实体程序化单元和/或所述第二实体程序化单元为所述第二实体单元中的存储了有效数据的实体程序化单元。
进一步,存储器控制电路204在完成对目标实体单元的记录或者挑选后,需要对目标实体单元执行数据搬移操作。在一实施例中,该数据搬移操作为将目标实体单元中的有效数据(第一数据)复制至第一实体单元中,而实体单元中的无效数据(第二数据)则不执行数据搬移操作。在对第一数据执行数据搬移操作之后,对原本存储第一数据的实体单元(即目标实体单元)做标记,表明这(些)实体单元中的某一(些)实体程序化单元中存储的数据为无效数据。若这(些)实体单元中的所有实体程序化单元中存储的数据为无效数据时,那么将该个(些)实体单元从数据区506中改划分到闲置区504中。
在一实施例中,第一实体单元为存储器模块122中操作值最小的实体单元。关于第一实体单元为存储器模块122中操作值最小的实体单元,在一实施例中,操作值可被认为是抹除次数。也就是说操作值最小的实体单元可被认为是抹除次数最小的实体单元。
优选地,在一实施例中,目标实体单元为数据区506的实体单元,而抹除次数最小的实体单元是从闲置区504中挑选的。
进一步,在另一实施例中,提出一种管理闲置区504中实体单元的方法,以提供符合需要的第一实体单元。
具体地,存储器控制电路204根据实体单元的抹除次数将闲置区504中多个实体单元进行群组划分,得到多个第二群组51(0)--51(G)【G+1表示第二群组的数量】,每个第二群组分别对应不同的抹除次数取值区间;其中,每一个第二群组可包含一个或多个实体单元且每一个实体单元其在某一个时间段的抹除次数只能属于某一个第二群组;每一个第二群组的抹除次数取值区间都是不相同的;存储器控制电路204根据存储于所述目标实体单元中第一数据的数据量大小,从抹除次数取值区间最小的第二群组中挑选合适数量的实体单元来存储第一数据。优选地,从抹除次数取值区间最小的第二群组中挑选合适数量的且抹除次数最小的实体单元来存储第一数据。通过群组的方式来对存储器模块122中的实体单元进行管理,此举可以提高挑选出符合需要的第一实体单元的速度,从而可以提高数据搬移的速度。
示例性地,闲置区504中包括200个实体单元,假设这200个实体单元为Block0—Block199。根据实体单元的抹除次数将这200个实体单元进行群组划分,得到如图10所示的4个群组51(0)、51(1)、51(2)和51(3)。图10为本发明一实施例所示出的根据实体单元的抹除次数将多个实体单元进行群组划分,得到多个第二群组,每个第二群组分别对应不同的抹除次数取值区间的示意图。
具体地,如图10所示,所述抹除次数取值区间最小的群组序号为51(0),群组51(0)的抹除次数取值区间为0-200,其包括50个实体单元,这50个实体单元的抹除次数明细为30个抹除次数为80次的实体单元,10个抹除次数为120次的实体单元,10个抹除次数为180次实体单元。如果需要第一实体单元的数量为2个,那么就从30个抹除次数为80次的实体单元中挑选2个实体单元来作为第一实体单元。
进一步,在另一实施例中,关于所述第一实体单元的挑选操作,还包括:存储器控制电路204从抹除次数取值区间最小且错误比特值取值区间最小的子群组中挑选抹除次数最小且错误比特值最小的实体单元来作为第一实体单元。
具体地,存储器控制电路204根据实体单元的错误比特值将抹除次数取值区间最小的第二群组进一步进行群组划分,得到多个基于具有相同的抹除次数取值区间但是具有不同的错误比特值取值区间的子群组;其中,每一个子群组可包含一个或多个实体单元且每一个实体单元其在某一个时间段的错误比特值只能属于某一个子群组;每个子群组可属于相同的抹除次数取值区间但是分别对应不同的错误比特值取值区间;每一个子群组包含的实体单元数量可以是相同的也可是不相同的;存储器控制电路204从抹除次数取值区间最小且错误比特值取值区间最小的子群组中挑选抹除次数最小且错误比特值最小的实体单元来作为第一实体单元。
示例性地,实体单元的错误比特数可从坏块表(保存在系统区中)中得到,坏块表如图11所示。图11中,301(F)中的F表述实体单元301的序号,S表示序号实体单元301(F)的错误比特数。
示例性地,存储器控制电路204获取群组51(0)中各实体单元的错误比特数,按照各实体单元的错误比特数将群组51(0)进一步进行群组划分,得到多个基于具有相同的抹除次数取值区间但是具有不同的错误比特值取值区间的子群组,如图12所示。图12为本发明一实施例所示出的根据实体单元的错误比特值将抹除次数取值区间最小的第二群组进一步进行群组划分,得到多个基于具有相同的抹除次数取值区间但是具有不同的错误比特值取值区间的子群组的示意图。
具体地,图11中,Block15和Block17的抹除次数最小,并且错误比特值也最小。因此,挑选Block15和Block17来作为第一实体单元。
进一步,在另一实施例中,根据第一数据的大小,存储器控制电路204挑选合适数量的实体单元来作为第一实体单元。具体地,根据第一数据的大小,存储器控制电路204从抹除次数取值区间最小的第二群组中挑选合适数量的实体单元来作为第一实体单元。更进一步,根据第一数据的大小,存储器控制电路204从抹除次数取值区间最小且错误比特值取值区间最小的子群组中挑选抹除次数最小且错误比特值最小的实体单元来作为第一实体单元。
必须了解的是,上述关于本实施例中在描述存储器模块的实体单元的运作时,以“群组划分”等词来操作实体单元是逻辑上的概念。也就是说,存储器模块122中的实体单元的实际位置并未更动,而是逻辑上对存储器模块122中的实体单元进行操作。
在一实施例中,上述排序算法可以为插入排序、希尔排序、选择排序、冒泡排序、快速排序、归并排序、计数排序和桶排序中的任一种算法。
在一实施例中,根据第一实体单元的物理地址而更新第一数据的逻辑至物理映射关系。由于对目标实体单元执行了数据搬移操作,因此第一数据的物理地址由原来的目标实体单元所属的物理地址而变为第一实体单元所属的物理地址。即存储第一数据的物理地址变化了。举例来说,第一逻辑地址映射至第一物理地址,第一物理地址为原来存储第一数据的物理地址,现在存储第一数据的物理地址为第二物理地址,那么存储器控制电路204会将第一逻辑地址与第一物理地址的映射关系移除,并且存储器控制电路204会重新建立第一逻辑地址与第二物理地址的映射关系。第二物理地址为第一数据新的物理地址。也为第一实体单元的物理地址。
在一实施例中,存储器控制电路204挑选到第一实体单元,将所述目标实体单元中的第一数据复制至第一实体单元中的步骤还包括:
存储器控制电路204先对第一实体单元执行抹除操作,将第一实体单元中的数据(无效数据)抹除之后,再将第一数据写入到第一实体单元中。
图13是根据本发明的一实施例所示出的存储器管理方法的流程图。
请参照图13,在步骤S100中,根据实体单元的抹除次数将所述多个实体单元进行群组划分,得到多个第一群组,每个所述第一群组分别对应于一个读干扰门槛值。在步骤S200中,将每个所述第一群组中读取次数中超过所述读干扰门槛值的实体单元记录为目标实体单元。在步骤S300中,将所述目标实体单元中的第一数据复制至第一实体单元中,所述第一实体单元为所述存储器模块中操作值最小的实体单元。
然而,图13中各步骤已详细说明如上,在此便不再赘述。值得注意的是,图13中各步骤可以实作为多个代码或是电路,本发明不加以限制。此外,图13的方法可以搭配以上范例实施例使用,也可以单独使用,本发明不加以限制。
综上所述,本发明提供一种存储器管理方法、存储器控制器与存储器存储装置,其根据实体单元的抹除次数将所述多个实体单元进行群组划分,得到多个第一群组,每个所述第一群组分别对应于一个读干扰门槛值;将每个所述第一群组中读取次数中超过所述读干扰门槛值的实体单元记录为目标实体单元;在挑选到了目标实体单元后,对第一数据执行数据搬移操作;还提出一种从存储器模块122的闲置区504中挑选第一实体单元来存储所述第一数据的方法。具体地,该第一实体单元为存储器模块122中操作值最小的实体单元。进一步,所述操作值最小的实体单元可被理解为抹除次数最小实体单元,由于实体单元的抹除次数越小,其读干扰门槛值越大,可以减少第一数据被再次执行数据搬移操作的次数,由此可减少对存储第一数据的实体单元的抹除次数,进而可提高存储器存储装置的寿命。
更进一步,所述操作值最小的实体单元可被理解为从抹除次数取值区间最小且错误比特值取值区间最小的子群组中挑选抹除次数最小且错误比特值最小的实体单元。将第一数据搬移(复制)到错误比特值比较小的实体单元中,一方面提高数据存储于存储器存储装置中的安全稳定性;另外一方面可提高第一数据被读取的速度,进而实现提升存储器存储装置的系统效能。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (10)
1.一种存储器管理方法,应用于存储器存储装置,其特征在于,所述存储器存储装置包括存储器模块,所述存储器模块包括多个实体单元,所述实体单元包括多个实体程序化单元,所述方法包括:
根据实体单元的抹除次数将所述多个实体单元进行群组划分,得到多个第一群组,每个所述第一群组分别对应于一个读干扰门槛值;
将每个所述第一群组中读取次数中超过所述读干扰门槛值的实体单元记录为目标实体单元;
将所述目标实体单元中的第一数据复制至第一实体单元中,所述第一实体单元为所述存储器模块中操作值最小的实体单元。
2.根据权利要求1所述的存储器管理方法,其特征在于,其中将每个所述第一群组中读取次数中超过所述读干扰门槛值的实体单元记录为目标实体单元的步骤包括:
每个所述第一群组分别对应于一个读干扰监控值,将每个所述第一群组中读取次数超过所述读干扰监控值的实体单元记录为风险实体单元,所述读干扰监控值小于所述读干扰门槛值;
将所述风险实体单元中读取次数超过所述读干扰门槛值的实体单元记录为目标实体单元。
3.根据权利要求2所述的存储器管理方法,其特征在于,其中将所述风险实体单元中读取次数超过所述读干扰门槛值的实体单元记录为目标实体单元的步骤包括:
将所述风险实体单元中读取次数超过所述读干扰门槛值的实体单元记录为第二实体单元;
获取所述第二实体单元的第一读取时间值,将所述第一读取时间值不大于第一阈值的所述第二实体单元记录为目标实体单元。
4.根据权利要求3所述的存储器管理方法,其特征在于,其中获取所述多个实体单元的读取次数和获取所述第二实体单元的第一读取时间值的步骤包括:
建立第一读取次数表和第二读取次数表;
所述第一读取次数表用于记录不大于所述读干扰监控值的读取次数,按照读取次数对所述第一读取次数表中的实体单元进行排序,其中所述读取次数越大,所述实体单元的排序越高;
所述第二读取次数表用于记录超过所述读干扰监控值和/或所述读干扰门槛值的读取次数,以及还记录所述第二实体单元的第一读取时间值,所述第一读取时间值为所述第二实体单元最近一次被读取到现在的时间间隔,按照所述第一读取时间值对所述风险实体单元进行排序,其中所述第一读取时间值越小,所述第二实体单元的排序越高。
5.根据权利要求4所述的存储器管理方法,其特征在于,从所述第二实体单元中挑选出所述目标实体单元的步骤包括:
获取所述第二实体单元的第一实体程序化单元的第二读取时间值,将所述第二读取时间值大于第二阈值的所述第二实体单元记录为所述目标实体单元,所述第二读取时间值为响应于数据读取指令而成功地读取到存储于所述第一实体程序化单元中数据的时间。
6.根据权利要求5所述的存储器管理方法,其特征在于,所述获取所述第二实体单元的第一实体程序化单元的第二读取时间值,将所述第二读取时间值大于第二阈值的所述第二实体单元记录为所述目标实体单元的步骤包括:
获取所述第二实体单元的第二实体程序化单元的第三读取时间值,将所述第三读取时间值大于第二阈值的所述第二实体单元记录为所述目标实体单元,所述第三读取时间值为响应于数据读取指令而成功地读取到存储于所述第二实体程序化单元中数据的时间,所述第一实体程序化单元和所述第二实体程序化单元属于同一个实体单元。
7.根据权利要求1所述的存储器管理方法,其特征在于,其中将所述目标实体单元中的数据复制至所述第一实体单元的步骤包括:
将所述存储器模块中的多个实体单元划分为数据区和闲置区;
根据实体单元的抹除次数将所述闲置区中的多个实体单元进行群组划分,得到多个第二群组,每个第二群组分别对应不同的抹除次数取值区间;
根据所述目标实体单元中数据量的大小,从抹除次数取值区间最小的第二群组中挑选合适数量的实体单元来作为第一实体单元,对所述第一实体单元执行抹除操作,将所述目标实体单元中的数据写入到所述第一实体单元中;
将所述目标实体单元中的数据标记为无效数据或者将所述目标实体单元划分到所述闲置区中;
将所述第一实体单元划分到所述数据区中。
8.根据权利要求7所述的存储器管理方法,其特征在于,其中从抹除次数取值区间最小的第二群组中挑选合适数量的实体单元来作为第一实体单元的步骤包括:
根据实体单元的错误比特值将抹除次数取值区间最小的第二群组进一步进行群组划分,得到多个基于具有相同的抹除次数取值区间但是具有不同的错误比特值取值区间的子群组;
从抹除次数取值区间最小且错误比特值取值区间最小的子群组中挑选抹除次数最小且错误比特值最小的实体单元来作为第一实体单元。
9.一种存储器控制器,用于控制存储器模块,其中所述存储器模块包括多个实体单元,所述实体单元包括多个实体程序化单元;所述存储器控制器包括:主机接口,用以连接至主机系统;存储器接口,用以连接至所述存储器模块;存储器控制电路,其连接至所述主机接口与所述存储器接口;其特征在于,所述存储器控制电路用于执行权利要求1至8中任意一项所述的存储器管理方法中的各个步骤。
10.一种存储器存储装置,所述存储器存储装置包括连接接口、存储器模块及存储器控制器;所述连接接口用于将存储器存储装置连接至主机系统;所述存储器模块包括多个实体单元,所述实体单元包括多个实体程序化单元;所述存储器控制器连接至所述连接接口与所述存储器模块;其特征在于,所述存储器控制器用于执行权利要求1至8中任意一项所述的存储器管理方法中的各个步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210901078.5A CN115202584A (zh) | 2022-07-28 | 2022-07-28 | 存储器管理方法、存储器控制器及存储器存储装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210901078.5A CN115202584A (zh) | 2022-07-28 | 2022-07-28 | 存储器管理方法、存储器控制器及存储器存储装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115202584A true CN115202584A (zh) | 2022-10-18 |
Family
ID=83584241
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210901078.5A Pending CN115202584A (zh) | 2022-07-28 | 2022-07-28 | 存储器管理方法、存储器控制器及存储器存储装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115202584A (zh) |
-
2022
- 2022-07-28 CN CN202210901078.5A patent/CN115202584A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10713178B2 (en) | Mapping table updating method, memory controlling circuit unit and memory storage device | |
TWI476590B (zh) | 記憶體管理方法、記憶體控制器與記憶體儲存裝置 | |
US20190332331A1 (en) | Memory management method and storage controller | |
US9141530B2 (en) | Data writing method, memory controller and memory storage device | |
US10579518B2 (en) | Memory management method and storage controller | |
KR101090394B1 (ko) | 예비 영역을 유동적으로 관리하는 반도체 스토리지 시스템 및 그 제어 방법 | |
CN104765569A (zh) | 数据写入方法、存储器控制电路单元与存储器储存装置 | |
US9298610B2 (en) | Data writing method, memory control circuit unit and memory storage apparatus | |
US9236148B2 (en) | Memory management method, memory control circuit unit and memory storage apparatus | |
US10509583B1 (en) | Memory management method and storage controller | |
CN110471612B (zh) | 存储器管理方法以及存储控制器 | |
CN115185468A (zh) | 存储器管理方法、存储器控制器及存储器存储装置 | |
US10824340B2 (en) | Method for managing association relationship of physical units between storage area and temporary area, memory control circuit unit, and memory storage apparatus | |
CN106354651B (zh) | 平均磨损方法、存储器控制电路单元及存储器储存装置 | |
CN110377538B (zh) | 存储器管理方法以及存储控制器 | |
CN109032957B (zh) | 存储器管理方法、存储器控制电路单元与存储器存储装置 | |
CN108108118B (zh) | 数据写入方法以及存储控制器 | |
CN106469019B (zh) | 存储器管理方法、存储器控制电路单元及存储器储存装置 | |
CN111583976B (zh) | 数据写入方法、存储器控制电路单元以及存储器存储装置 | |
CN110162493B (zh) | 存储器管理方法及使用所述方法的储存控制器 | |
CN115202584A (zh) | 存储器管理方法、存储器控制器及存储器存储装置 | |
CN115145491A (zh) | 存储器管理方法、存储器控制器及存储器存储装置 | |
CN117420963B (zh) | 一种存储器及其控制方法 | |
CN114327265B (zh) | 读取干扰检查方法、存储器存储装置及控制电路单元 | |
CN114281255B (zh) | 存储装置区块管理方法、存储器存储装置及存储器控制器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |