CN115145491A - 存储器管理方法、存储器控制器及存储器存储装置 - Google Patents
存储器管理方法、存储器控制器及存储器存储装置 Download PDFInfo
- Publication number
- CN115145491A CN115145491A CN202210901071.3A CN202210901071A CN115145491A CN 115145491 A CN115145491 A CN 115145491A CN 202210901071 A CN202210901071 A CN 202210901071A CN 115145491 A CN115145491 A CN 115145491A
- Authority
- CN
- China
- Prior art keywords
- entity
- unit
- units
- reading
- physical
- 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
- 230000005055 memory storage Effects 0.000 title claims abstract description 48
- 238000007726 management method Methods 0.000 title claims abstract description 21
- 238000013507 mapping Methods 0.000 claims description 25
- 230000004044 response Effects 0.000 claims description 15
- 238000000034 method Methods 0.000 claims description 10
- 238000002360 preparation method Methods 0.000 claims 2
- 238000012546 transfer Methods 0.000 abstract description 7
- 238000010586 diagram Methods 0.000 description 18
- 239000000284 extract Substances 0.000 description 4
- 238000012937 correction Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000013523 data management Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000002035 prolonged effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
- G06F3/0607—Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
-
- 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
- G06F3/0629—Configuration or reconfiguration of storage systems
-
- 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]
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本发明一实施例所示出的一种存储器管理方法的流程图。
具体实施方式
下面结合附图及案例详细说明本申请实施例所述存储系统的具体结构及实现方案。
图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型快闪存储器模块或其他具有相似特性的存储器模块。
存储器控制器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的随机存取存储器中。之后,微处理器单元会运转这些控制指令以进行数据的写入、读取与擦除等运作。
主机接口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获取存储器模块122中多个实体单元的读取次数,以及存储器控制电路204会判断存储器模块122中多个实体单元的读取次数是否大于一第一阈值,则存储器控制电路204将读取次数中超过第一阈值的实体单元记录或者标注为风险实体单元;
详细地,存储器控制电路204建立和维护一实体单元读取次数表(亦称之为第一读取次数表,表1),如图5所示。图5为本发明的一实施例所示出的实体单元读取次数表示意图。图5中用H来表示实体单元301(C)--301(D)的读取次数值,301(C)表示序号为C的实体单元。Hc表示序号为c的实体单元的读取次数值。存储器控制电路204在执行完对某一实体单元的读取指令后,在图5中该序号的实体单元的读取次数上+1,以实现对图5的维护。
进一步,按照读取次数对所述第一读取次数表中的实体单元进行排序,其中读取次数越大的实体单元的排序越高。优选地,排序高的实体单元排列在图5的表头,此举方便对实体单元的管理。进一步,图5用于记录所有实体单元的读取次数,但是当有实体单元的读取次数达到K次(第一阈值)时,则将这些实体单元从图5中放到表2中(亦称之为第二读取次数表),用表2来管理之,图5中的表1不再管理这些实体单元。换句话说,表2用于维护和管理读取次数超过K次的实体单元。
在一实施例中,将读取次数大于K次的实体单元标注为风险实体单元并从图5中剔除改用图6中的表2来记录之。进一步,表2用于记录所述读取次数超过第一阈值的实体单元,表2除了记录风险实体单元的读取次数外,还记录所述风险实体单元的第一读取时间值T,T值为风险实体单元最近一次被读取到现在的时间间隔;按照T值对所述风险实体单元进行排序,其中T值越小,所述风险实体单元的排序越高。
相比较用一个读取次数表来记录和维护所有实体单元的读取次数,本实施例用2个读取次数表来记录和维护实体单元的读取次数,尤其是表2中的实体单元都是读取次数超过K次(第一阈值),使得后续在筛选目标实体单元时,可在表2中依据第二阈值来挑选实体单元,此举使得挑选目标实体单元的操作速度更快。
详细地,存储器控制电路204将表2中的所有实体单元构成一个队列,若是一个实体单元被读取到了,那么存储器控制电路204除了在该实体单元的读取次数上+1外,还将该实体单元排列在队列的前列。依此类推,可实现排在队列前列的实体单元为最近被读取到的实体单元。此举可提高挑选目标实体单元的速度。
进一步,在一实施例中,引入一第二阈值来从表2中挑选目标实体单元。具体地,存储器控制电路204将表2中T值小于或等于第二阈值的风险实体单元记录为第二实体单元。该第二实体单元包括一个或多个风险实体单元。存储器控制电路204依据第二阈值从所述第二实体单元中挑选出目标实体单元或将第二实体单元记录为目标实体单元。示例性地,若是表2中记录有T1=5S的实体单元有10个,T2=10S的实体单元有12个,T3=15S的实体单元有15个,T4=20S的实体单元有25个。而第二阈值为18S,那么符合被记录为第二实体单元的数量为37个实体单元,也就是说目标实体单元从这37个实体单元中挑选得到。如果第二阈值为10S,那么符合被记录为第二实体单元的数量为22个实体单元,同理目标实体单元从这22个实体单元中挑选得到。
进一步,若是第二实体单元包括多个风险实体单元,在一实施例中,还提出一种存储器控制电路204从第二实体单元中挑选目标实体单元并将挑选出来的风险实体单元记录为目标实体单元的方法。
具体地,存储器控制电路204从第二实体单元中挑选实体单元并将挑选出来的实体单元记录为目标实体单元的步骤包括:存储器控制电路204获取第二实体单元的第一实体程序化单元的第二读取时间值,存储器控制电路204将第二读取时间值大于第三阈值的第二实体单元记录为目标实体单元,上述第二读取时间值为响应于数据读取指令而成功地读取到存储于所述第一实体程序化单元中数据的时间。
进一步,在另一实施例中,存储器控制电路204还获取第二实体单元的第二实体程序化单元的第三读取时间值,存储器控制电路204将第三读取时间值大于第三阈值的第二实体单元记录为目标实体单元,上述第三读取时间值为响应于数据读取指令而成功地读取到存储于所述第二实体程序化单元中数据的时间,且所述第一实体程序化单元和所述第二实体程序化单元属于同一个风险实体单元。
在另一实施例中,所述第一实体程序化单元和所述第二实体程序化单元属于不同的字线。
示例性地,若第二实体单元的数量为100个实体单元,需要从这100个实体单元中挑选20个实体单元作为目标实体单元。判断这100个实体单元中一些实体程序化单元(称之为第一实体程序化单元)的读取时间(称之为第二读取时间值),若一些实体程序化单元(第一实体程序化单元)的读取时间大于第三阈值,那么基于Nand Flash存储数据的原理,可知读取到这些实体程序化单元中数据的过程中经过了重读的操作或者由于经过较长时间的ECC解码操作;从而导致读取到这些实体程序化单元中数据所花费的时间相较于读取到其它的实体程序化单元中数据长。进而可判断出这些实体程序化单元所属的实体单元可被认定为目标实体单元。需要将存储于其上面的数据进行数据搬移操作,以此一方面是提高存储器存储装置12的数据读取的速度,另外一方面以保证存储于存储器模块122中的数据的安全性和稳定性。
在另一实施例中,所述第一实体程序化单元和/或所述第二实体程序化单元为所述第二实体单元中的任一个存储了有效数据的实体程序化单元。
进一步,若是第一实体程序化单元的第二读取时间值大于第三阈值的实体单元的数量为50个,那么就需要再进一步从这50个实体单元中挑选出符合需要的20个目标实体单元。判断这50个实体单元中的第二实体程序化单元的第三读取时间值,将所述第三读取时间值大于第三阈值的所述第二实体单元记录为所述目标实体单元,所述第三读取时间值为响应于数据读取指令而成功地读取到存储于所述第二实体程序化单元中数据的时间,第一实体程序化单元和第二实体程序化单元属于同一个风险实体单元。示例性地,一个实体单元包括200个实体程序化,第一实体程序化单元为P0,第二实体程序化单元为P199。通过检测同一个风险实体单元中的两个实体程序化单元的读取时间,使得检测或筛选目标实体单元更为精准。
进一步,也可在此基础上,增加同一个风险实体单元中实体程序化单元的数量,比如第三实体程序化单元或者更多的实体程序化单元数量。
在一实施例中,检测同一个风险实体单元中的偶数或奇数序号的实体程序化单元。
在另一实施例中,检测同一个风险实体单元中的序号“0”的实体程序化单元。比如P0、P10、P20等等。
上述对所述第一实体程序化单元和所述第二实体程序化单元的限定,其目的是提高第二实体单元中挑选出来的目标实体单元更具有代表性。即挑选出最应该被执行数据搬移操作的目标实体单元。
在一实施例中,还建立一实体单元抹除次数表(P/E表)【保存在系统区中】来记录存储器模块122中实体单元的使用状况,P/E表中记录有存储器模块122中所有实体单元的抹除次数,如图7所示。图7中,301(M)中的M表述实体单元301的序号,N表示序号实体单元301(M)的抹除次数。
优选地,在一实施例中,存储器控制电路204根据实体单元的抹除次数对多个实体单元进行排序,存储器控制电路204将排序后的多个实体单元按照抹除次数小的实体单元序号排列在所述抹除次数表的表头,方便后续从图7中根据抹除次数来挑选实体单元。此举可提高实体单元的挑选速度。
进一步,存储器控制电路204在完成对目标实体单元的记录或者挑选后,需要对目标实体单元执行数据搬移操作。在一实施例中,该数据搬移操作为将目标实体单元中的有效数据(第一数据)复制至第一实体单元中,而实体单元中的无效数据(第二数据)则不执行数据搬移操作。在对第一数据执行数据搬移操作之后,对原本存储第一数据的实体单元(即目标实体单元)做标记,表明这(些)实体单元中的某一(些)实体程序化单元中存储的数据为无效数据。若这(些)实体单元中的所有实体程序化单元中存储的数据为无效数据时,那么将该个(些)实体单元从数据区506中改划分到闲置区504中。
在一实施例中,第一实体单元为存储器模块122中操作值最小的实体单元。关于第一实体单元为存储器模块122中操作值最小的实体单元,在一实施例中,操作值可被认为是抹除次数。也就是说操作值最小的实体单元可被认为是抹除次数最小的实体单元。
优选地,在一实施例中,目标实体单元为数据区506的实体单元,而抹除次数最小的实体单元是从闲置区504中挑选的。
进一步,在另一实施例中,提出一种管理闲置区504中实体单元的方法,以提供符合需要的第一实体单元。
具体地,存储器控制电路204根据实体单元的抹除次数将闲置区504中多个实体单元进行群组划分,得到多个群组41(0)--41(G)【G+1表示群组的数量】,每个群组分别对应不同的抹除次数取值区间;其中,每一个群组可包含一个或多个实体单元且每一个实体单元其在某一个时间段的抹除次数只能属于某一个群组;每一个群组的抹除次数取值区间都是不相同的。存储器控制电路204根据存储于目标实体单元中第一数据的数据量大小,从抹除次数取值区间最小的群组中挑选合适数量的实体单元来存储第一数据。优选地,从抹除次数取值区间最小的群组中挑选合适数量的且抹除次数最小的实体单元来存储第一数据。通过群组的方式来对存储器模块122中的实体单元进行管理,此举可以提高挑选出符合需要的第一实体单元的速度,从而可以提高数据搬移的速度。
示例性地,闲置区504中包括200个实体单元,假设这200个实体单元为Block15—Block214。根据实体单元的抹除次数将这200个实体单元进行群组划分,得到如图8所示的4个群组41(0)、41(1)、41(2)和41(3)。图8为本发明一实施例所示出的根据实体单元的抹除次数将多个实体单元进行群组划分,得到多个群组,每个群组分别对应不同的抹除次数取值区间的示意图。
具体地,如图8所示,所述抹除次数取值区间最小的群组序号为41(0),群组41(0)的抹除次数取值区间为0-200,其包括50个实体单元,这50个实体单元的抹除次数明细为30个抹除次数为80次的实体单元,10个抹除次数为120次的实体单元,10个抹除次数为180次实体单元。如果需要第一实体单元的数量为2个,那么就从30个抹除次数为80次的实体单元中挑选2个实体单元来作为第一实体单元。
进一步,在另一实施例中,关于所述第一实体单元的挑选操作,还包括:存储器控制电路204从抹除次数取值区间最小且错误比特值取值区间最小的子群组中挑选抹除次数最小且错误比特值最小的实体单元来作为第一实体单元。
具体地,存储器控制电路204根据实体单元的错误比特值将抹除次数取值区间最小的群组进一步进行群组划分,得到多个基于具有相同的抹除次数取值区间但是具有不同的错误比特值取值区间的子群组;其中,每一个子群组可包含一个或多个实体单元且每一个实体单元其在某一个时间段的错误比特值只能属于某一个子群组;每个子群组可属于相同的抹除次数取值区间但是分别对应不同的错误比特值取值区间。每一个子群组包含的实体单元数量可以是相同的也可是不相同的。存储器控制电路204从抹除次数取值区间最小且错误比特值取值区间最小的子群组中挑选抹除次数最小且错误比特值最小的实体单元来作为第一实体单元。
示例性地,实体单元的错误比特数可从坏块表(保存在系统区中)中得到,坏块表如图9所示。图9中,301(F)中的F表述实体单元301的序号,S表示序号实体单元301(F)的错误比特数。
示例性地,存储器控制电路204获取群组41(0)中各实体单元的错误比特数,按照各实体单元的错误比特数将群组41(0)进一步进行群组划分,得到多个基于具有相同的抹除次数取值区间但是具有不同的错误比特值取值区间的子群组51(0)--51(R),如图10所示。图10为本发明一实施例所示出的根据实体单元的错误比特值将抹除次数取值区间最小的群组进一步进行群组划分,得到多个基于具有相同的抹除次数取值区间但是具有不同的错误比特值取值区间的子群组的示意图。
具体地,图10中,Block15和Block17的抹除次数最小,并且错误比特值也最小。因此,挑选Block15和Block17来作为第一实体单元。
综合之,在另一实施例中,根据第一数据的大小,存储器控制电路204挑选合适数量的实体单元来作为第一实体单元。具体地,根据第一数据的大小,存储器控制电路204从抹除次数取值区间最小的群组中挑选合适数量的实体单元来作为第一实体单元。更进一步,根据第一数据的大小,存储器控制电路204从抹除次数取值区间最小且错误比特值取值区间最小的子群组中挑选抹除次数最小且错误比特值最小的实体单元来作为第一实体单元。
必须了解的是,上述关于本实施例中在描述存储器模块的实体单元的运作时,以“群组划分”等词来操作实体单元是逻辑上的概念。也就是说,存储器模块122中的实体单元的实际位置并未更动,而是逻辑上对存储器模块122中的实体单元进行操作。
在一实施例中,上述排序算法可以为插入排序、希尔排序、选择排序、冒泡排序、快速排序、归并排序、计数排序和桶排序中的任一种算法。
在一实施例中,根据第一实体单元的物理地址而更新第一数据的逻辑至物理映射关系。由于对目标实体单元执行了数据搬移操作,因此第一数据的物理地址由原来的目标实体单元所属的物理地址而变为第一实体单元所属的物理地址。即存储第一数据的物理地址变化了。举例来说,第一逻辑地址映射至第一物理地址,第一物理地址为原来存储第一数据的物理地址,现在存储第一数据的物理地址为第二物理地址,那么存储器控制电路204会将第一逻辑地址与第一物理地址的映射关系移除,并且存储器控制电路204会重新建立第一逻辑地址与第二物理地址的映射关系。第二物理地址为第一数据新的物理地址。也为第一实体单元的物理地址。
在一实施例中,存储器控制电路204挑选到第一实体单元,将所述目标实体单元中的第一数据复制至第一实体单元中的步骤还包括:存储器控制电路204先对第一实体单元执行抹除操作,将第一实体单元中的数据(无效数据)抹除之后,再将第一数据写入到第一实体单元中。以及将所述目标实体单元中的数据标记为无效数据或者将所述目标实体单元划分到所述闲置区中;将所述第一实体单元划分到所述数据区中。
图11是根据本发明的一实施例所示出的存储器管理方法的流程图。
请参照图11,在步骤S100中,获取所述多个实体单元的读取次数,将所述读取次数中超过第一阈值的所述实体单元记录为风险实体单元。在步骤S200中,获取所述风险实体单元的第一读取时间值,将所述第一读取时间值不大于第二阈值的所述风险实体单元记录为目标实体单元。在步骤S300中,将所述目标实体单元中的数据复制至第一实体单元中,所述第一实体单元为所述存储器模块中操作值最小的实体单元。在步骤S400中,根据所述第一实体单元的物理地址而更新所述数据的逻辑至物理映射关系。
然而,图11中各步骤已详细说明如上,在此便不再赘述。值得注意的是,图11中各步骤可以实作为多个代码或是电路,本发明不加以限制。此外,图11的方法可以搭配以上范例实施例使用,也可以单独使用,本发明不加以限制。
综上所述,在主机系统11欲从存储器存储装置12中读取存储数据时,存储器存储装置12会根据读取指令从实体单元中读取数据。一般在多次对实体程序化单元进行数据操作时,可能对同一个实体单元内其它实体程序化单元的数据操作造成干扰,造成读取数据出错。本申请一方面提出一种挑选存储这类高频被读取数据的实体单元(目标实体单元)的方法,在挑选到了目标实体单元后,对第一数据执行数据搬移操作;另一方面还提出一种从存储器模块122中的闲置区504中挑选第一实体单元来存储所述第一数据。具体地,该第一实体单元为存储器模块122中操作值最小的实体单元。进一步,所述操作值最小的实体单元可被理解为抹除次数最小实体单元。更进一步,所述操作值最小的实体单元可被理解为从抹除次数取值区间最小且错误比特值取值区间最小的子群组中挑选抹除次数最小且错误比特值最小的实体单元。根据所述第一实体单元的物理地址而更新所述第一数据的逻辑至物理映射关系。将第一数据搬移(复制)到错误比特值比较小的实体单元中,也可减少数据将再次被搬移(复制)到新的实体单元中的次数,此举可提高影响存储器存储装置的寿命。即使第一数据还是被频繁地读取,也可减少数据将再次被搬移(复制)到新的实体单元中的次数,此举亦可提高影响存储器存储装置的寿命。除此之外,将第一数据搬移(复制)到错误比特值比较小的实体单元中,亦可提高后续第一数据读取的速度和提高数据存储于存储器存储装置中的安全性和稳定性。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (15)
1.一种存储器管理方法,应用于存储器存储装置,其特征在于,所述存储器存储装置包括存储器模块,所述存储器模块包括多个实体单元,所述实体单元包括多个实体程序化单元,所述方法包括:
获取所述多个实体单元的读取次数,将所述读取次数中超过第一阈值的所述实体单元记录为风险实体单元;
获取所述风险实体单元的第一读取时间值,将所述第一读取时间值不大于第二阈值的所述风险实体单元记录为目标实体单元;
将所述目标实体单元中的数据复制至第一实体单元中,所述第一实体单元为所述存储器模块中操作值最小的实体单元;
根据所述第一实体单元的物理地址而更新所述数据的逻辑至物理映射关系。
2.根据权利要求1所述的存储器管理方法,其特征在于,其中获取所述多个实体单元的读取次数和获取所述风险实体单元的第一读取时间值的步骤包括:
建立第一读取次数表和第二读取次数表;
所述第一读取次数表用于记录所述多个实体单元的读取次数,按照读取次数对所述第一读取次数表中的实体单元进行排序,其中所述读取次数越大,所述实体单元的排序越高;
所述第二读取次数表用于记录所述风险实体单元的第一读取时间值,所述第一读取时间值为所述风险实体单元最近一次被读取到现在的时间间隔,按照所述第一读取时间值对所述风险实体单元进行排序,其中所述第一读取时间值越小,所述风险实体单元的排序越高;
从所述第二读取次数表中挑选所述第一读取时间值不大于第二阈值的所述风险实体单元,将所述第一读取时间值不大于第二阈值的所述风险实体单元记录为第二实体单元;
从所述第二实体单元中挑选出所述目标实体单元。
3.根据权利要求2所述的存储器管理方法,其特征在于,从所述第二实体单元中挑选出所述目标实体单元的步骤包括:
获取所述第二实体单元的第一实体程序化单元的第二读取时间值,将所述第二读取时间值大于第三阈值的所述第二实体单元记录为所述目标实体单元,所述第二读取时间值为响应于数据读取指令而成功地读取到存储于所述第一实体程序化单元中数据的时间。
4.根据权利要求3所述的存储器管理方法,其特征在于,所述获取所述第二实体单元的第一实体程序化单元的第二读取时间值,将所述第二读取时间值大于第三阈值的所述第二实体单元记录为所述目标实体单元的步骤包括:
获取所述第二实体单元的第二实体程序化单元的第三读取时间值,将所述第三读取时间值大于第三阈值的所述第二实体单元记录为所述目标实体单元,所述第三读取时间值为响应于数据读取指令而成功地读取到存储于所述第二实体程序化单元中数据的时间,所述第一实体程序化单元和所述第二实体程序化单元属于同一个实体单元。
5.根据权利要求1-4任一所述的存储器管理方法,其特征在于,其中将所述目标实体单元中的数据复制至所述第一实体单元的步骤包括:
将所述存储器模块中的多个实体单元划分为数据区和闲置区;
根据实体单元的抹除次数将所述闲置区中的多个实体单元进行群组划分,得到多个群组,每个群组分别对应不同的抹除次数取值区间;
根据所述目标实体单元中数据量的大小,从抹除次数取值区间最小的群组中挑选合适数量的实体单元来作为第一实体单元,对所述第一实体单元执行抹除操作,将所述目标实体单元中的数据写入到所述第一实体单元中;
将所述目标实体单元中的数据标记为无效数据或者将所述目标实体单元划分到所述闲置区中;
将所述第一实体单元划分到所述数据区中。
6.一种存储器控制器,用于控制存储器模块,其中所述存储器模块包括多个实体单元,所述实体单元包括多个实体程序化单元;所述存储器控制器包括:主机接口,用以连接至主机系统;存储器接口,用以连接至所述存储器模块;以及存储器控制电路,其连接至所述主机接口与所述存储器接口;其特征在于,
所述存储器控制电路获取所述多个实体单元的读取次数,将所述读取次数中超过第一阈值的所述实体单元记录为风险实体单元;
所述存储器控制电路获取所述风险实体单元的第一读取时间值,将所述第一读取时间值不大于第二阈值的所述风险实体单元记录为目标实体单元;
所述存储器控制电路将所述目标实体单元中的数据复制至第一实体单元中,所述第一实体单元为所述存储器模块中操作值最小的实体单元;
所述存储器控制电路根据所述第一实体单元的物理地址而更新所述数据的逻辑至物理映射关系。
7.根据权利要求6所述的存储器控制器,其特征在于,其中所述存储器控制电路获取所述多个实体单元的读取次数和获取所述风险实体单元的第一读取时间值的操作包括:
建立第一读取次数表和第二读取次数表;
所述第一读取次数表用于记录所述多个实体单元的读取次数,所述存储器控制电路按照读取次数对所述第一读取次数表中的实体单元进行排序,其中所述读取次数越大,所述实体单元的排序越高;
所述第二读取次数表用于记录所述风险实体单元的第一读取时间值,所述第一读取时间值为所述风险实体单元最近一次被读取到现在的时间间隔,所述存储器控制电路按照所述第一读取时间值对所述风险实体单元进行排序,其中所述第一读取时间值越小,所述风险实体单元的排序越高;
所述存储器控制电路从所述第二读取次数表中挑选所述第一读取时间值不大于第二阈值的所述风险实体单元,将所述第一读取时间值不大于第二阈值的所述风险实体单元记录为第二实体单元;
所述存储器控制电路从所述第二实体单元中挑选出所述目标实体单元。
8.根据权利要求7所述的存储器控制器,其特征在于,所述存储器控制电路从所述第二实体单元中挑选出所述目标实体单元的操作包括:
所述存储器控制电路获取所述第二实体单元的第一实体程序化单元的第二读取时间值,以及所述存储器控制电路将所述第二读取时间值大于第三阈值的所述第二实体单元记录为所述目标实体单元,所述第二读取时间值为响应于数据读取指令而成功地读取到存储于所述第一实体程序化单元中数据的时间。
9.根据权利要求8所述的存储器控制器,其特征在于,所述存储器控制电路获取所述第二实体单元的第一实体程序化单元的第二读取时间值,将所述第二读取时间值大于第三阈值的所述第二实体单元记录为所述目标实体单元的操作包括:
所述存储器控制电路获取所述第二实体单元的第二实体程序化单元的第三读取时间值,且所述存储器控制电路将所述第三读取时间值大于第三阈值的所述第二实体单元记录为所述目标实体单元,所述第三读取时间值为响应于数据读取指令而成功地读取到存储于所述第二实体程序化单元中数据的时间,所述第一实体程序化单元和所述第二实体程序化单元属于同一个实体单元。
10.根据权利要求6-9任一所述的存储器控制器,其特征在于,其中所述存储器控制电路将所述目标实体单元中的数据复制至所述第一实体单元的操作包括:
所述存储器控制电路将所述存储器模块中的多个实体单元划分为数据区和闲置区;以及
所述存储器控制电路根据实体单元的抹除次数将所述闲置区中的多个实体单元进行群组划分,得到多个群组,每个群组分别对应不同的抹除次数取值区间;
所述存储器控制电路根据所述目标实体单元中数据量的大小,从抹除次数取值区间最小的群组中挑选合适数量的实体单元来作为第一实体单元,以及所述存储器控制电路对所述第一实体单元执行抹除操作,将所述目标实体单元中的数据写入到所述第一实体单元中;
所述存储器控制电路将所述目标实体单元中的数据标记为无效数据或者将所述目标实体单元划分到所述闲置区中;
所述存储器控制电路将所述第一实体单元划分到所述数据区中。
11.一种存储器存储装置,所述存储器存储装置包括连接接口、存储器模块及存储器控制器;所述连接接口用于将存储器存储装置连接至主机系统;所述存储器模块包括多个实体单元,所述实体单元包括多个实体程序化单元;所述存储器控制器连接至所述连接接口与所述存储器模块;其特征在于,
所述存储器控制器获取所述多个实体单元的读取次数,将所述读取次数中超过第一阈值的所述实体单元记录为风险实体单元;以及
所述存储器控制器获取所述风险实体单元的第一读取时间值,将所述第一读取时间值不大于第二阈值的所述风险实体单元记录为目标实体单元;
所述存储器控制器将所述目标实体单元中的数据复制至第一实体单元中,所述第一实体单元为所述存储器模块中操作值最小的实体单元;
所述存储器控制器根据所述第一实体单元的物理地址而更新所述数据的逻辑至物理映射关系。
12.根据权利要求11所述的存储器存储装置,其特征在于,其中所述存储器控制器获取所述多个实体单元的读取次数和获取所述风险实体单元的第一读取时间值的操作包括:
建立第一读取次数表和第二读取次数表;
所述第一读取次数表用于记录所述多个实体单元的读取次数,所述存储器控制器按照读取次数对所述第一读取次数表中的实体单元进行排序,其中所述读取次数越大,所述实体单元的排序越高;
所述第二读取次数表用于记录所述风险实体单元的第一读取时间值,所述第一读取时间值为所述风险实体单元最近一次被读取到现在的时间间隔,所述存储器控制器按照所述第一读取时间值对所述风险实体单元进行排序,其中所述第一读取时间值越小,所述风险实体单元的排序越高;
所述存储器控制器从所述第二读取次数表中挑选所述第一读取时间值不大于第二阈值的所述风险实体单元,将所述第一读取时间值不大于第二阈值的所述风险实体单元记录为第二实体单元;
所述存储器控制器从所述第二实体单元中挑选出所述目标实体单元。
13.根据权利要求12所述的存储器存储装置,其特征在于,所述存储器控制器从所述第二实体单元中挑选出所述目标实体单元的操作包括:
所述存储器控制器获取所述第二实体单元的第一实体程序化单元的第二读取时间值,以及所述存储器控制器将所述第二读取时间值大于第三阈值的所述第二实体单元记录为所述目标实体单元,所述第二读取时间值为响应于数据读取指令而成功地读取到存储于所述第一实体程序化单元中数据的时间。
14.根据权利要求13所述的存储器存储装置,其特征在于,所述存储器控制器获取所述第二实体单元的第一实体程序化单元的第二读取时间值,将所述第二读取时间值大于第三阈值的所述第二实体单元记录为所述目标实体单元的操作包括:
所述存储器控制器获取所述第二实体单元的第二实体程序化单元的第三读取时间值,且所述存储器控制器将所述第三读取时间值大于第三阈值的所述第二实体单元记录为所述目标实体单元,所述第三读取时间值为响应于数据读取指令而成功地读取到存储于所述第二实体程序化单元中数据的时间,所述第一实体程序化单元和所述第二实体程序化单元属于同一个实体单元。
15.根据权利要求11-14任一所述的存储器存储装置,其特征在于,其中所述存储器控制器将所述目标实体单元中的数据复制至所述第一实体单元的操作包括:
所述存储器控制器将所述存储器模块中的多个实体单元划分为数据区和闲置区;以及
所述存储器控制器根据实体单元的抹除次数将所述闲置区中的多个实体单元进行群组划分,得到多个群组,每个群组分别对应不同的抹除次数取值区间;
所述存储器控制器根据所述目标实体单元中数据量的大小,从抹除次数取值区间最小的群组中挑选合适数量的实体单元来作为第一实体单元,以及所述存储器控制器对所述第一实体单元执行抹除操作,将所述目标实体单元中的数据写入到所述第一实体单元中;
所述存储器控制器将所述目标实体单元中的数据标记为无效数据或者将所述目标实体单元划分到所述闲置区中;
所述存储器控制器将所述第一实体单元划分到所述数据区中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210901071.3A CN115145491A (zh) | 2022-07-28 | 2022-07-28 | 存储器管理方法、存储器控制器及存储器存储装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210901071.3A CN115145491A (zh) | 2022-07-28 | 2022-07-28 | 存储器管理方法、存储器控制器及存储器存储装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115145491A true CN115145491A (zh) | 2022-10-04 |
Family
ID=83414756
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210901071.3A Pending CN115145491A (zh) | 2022-07-28 | 2022-07-28 | 存储器管理方法、存储器控制器及存储器存储装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115145491A (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105810246A (zh) * | 2014-12-31 | 2016-07-27 | 群联电子股份有限公司 | 存储器管理方法、存储器存储装置及存储器控制电路单元 |
CN105989887A (zh) * | 2015-03-02 | 2016-10-05 | 群联电子股份有限公司 | 抹除操作配置方法、存储器控制电路单元与存储器 |
CN109840218A (zh) * | 2017-11-24 | 2019-06-04 | 深圳大心电子科技有限公司 | 有效数据管理方法以及存储控制器 |
CN111813325A (zh) * | 2019-04-12 | 2020-10-23 | 群联电子股份有限公司 | 存储器控制方法、存储器存储装置及存储器控制电路单元 |
CN112068782A (zh) * | 2020-09-17 | 2020-12-11 | 群联电子股份有限公司 | 存储器管理方法、存储器存储装置及存储器控制电路单元 |
CN114023372A (zh) * | 2021-11-02 | 2022-02-08 | 深圳宏芯宇电子股份有限公司 | 存储器管理方法、存储器存储装置及存储器控制器 |
CN114327265A (zh) * | 2021-12-23 | 2022-04-12 | 群联电子股份有限公司 | 读取干扰检查方法、存储器存储装置及控制电路单元 |
-
2022
- 2022-07-28 CN CN202210901071.3A patent/CN115145491A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105810246A (zh) * | 2014-12-31 | 2016-07-27 | 群联电子股份有限公司 | 存储器管理方法、存储器存储装置及存储器控制电路单元 |
CN105989887A (zh) * | 2015-03-02 | 2016-10-05 | 群联电子股份有限公司 | 抹除操作配置方法、存储器控制电路单元与存储器 |
CN109840218A (zh) * | 2017-11-24 | 2019-06-04 | 深圳大心电子科技有限公司 | 有效数据管理方法以及存储控制器 |
CN111813325A (zh) * | 2019-04-12 | 2020-10-23 | 群联电子股份有限公司 | 存储器控制方法、存储器存储装置及存储器控制电路单元 |
CN112068782A (zh) * | 2020-09-17 | 2020-12-11 | 群联电子股份有限公司 | 存储器管理方法、存储器存储装置及存储器控制电路单元 |
CN114023372A (zh) * | 2021-11-02 | 2022-02-08 | 深圳宏芯宇电子股份有限公司 | 存储器管理方法、存储器存储装置及存储器控制器 |
CN114327265A (zh) * | 2021-12-23 | 2022-04-12 | 群联电子股份有限公司 | 读取干扰检查方法、存储器存储装置及控制电路单元 |
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 | |
US9448868B2 (en) | Data storing method, memory control circuit unit and memory storage apparatus | |
US8892814B2 (en) | Data storing method, and memory controller and memory storage apparatus using the same | |
US10310739B2 (en) | Memory management method, memory control circuit unit and memory storage device | |
US9772797B2 (en) | Buffer memory management method, memory control circuit unit and memory storage device | |
US8516184B2 (en) | Data updating using mark count threshold in non-volatile memory | |
US9141530B2 (en) | Data writing method, memory controller and memory storage device | |
KR101090394B1 (ko) | 예비 영역을 유동적으로 관리하는 반도체 스토리지 시스템 및 그 제어 방법 | |
US9383929B2 (en) | Data storing method and memory controller and memory storage device using the same | |
CN104765569A (zh) | 数据写入方法、存储器控制电路单元与存储器储存装置 | |
TW201348960A (zh) | 記憶體管理方法、記憶體控制器與記憶體儲存裝置 | |
US9236148B2 (en) | Memory management method, memory control circuit unit and memory storage apparatus | |
US8943264B2 (en) | Data storing method, and memory controller and memory storage apparatus using the same | |
US9298610B2 (en) | Data writing method, memory control circuit unit and memory storage apparatus | |
US10509583B1 (en) | Memory management method and storage controller | |
CN110471612B (zh) | 存储器管理方法以及存储控制器 | |
CN115185468A (zh) | 存储器管理方法、存储器控制器及存储器存储装置 | |
CN106354651B (zh) | 平均磨损方法、存储器控制电路单元及存储器储存装置 | |
CN109032957B (zh) | 存储器管理方法、存储器控制电路单元与存储器存储装置 | |
CN108108118B (zh) | 数据写入方法以及存储控制器 | |
CN112988069B (zh) | 存储器管理方法、存储器存储装置及存储器控制器 | |
CN111639041B (zh) | 存储器控制方法、存储器存储装置及存储器控制器 | |
CN106469019B (zh) | 存储器管理方法、存储器控制电路单元及存储器储存装置 | |
CN115145491A (zh) | 存储器管理方法、存储器控制器及存储器存储装置 | |
CN110162493B (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 |