CN117170587A - 区块管理方法、存储器存储装置及存储器控制器 - Google Patents
区块管理方法、存储器存储装置及存储器控制器 Download PDFInfo
- Publication number
- CN117170587A CN117170587A CN202311263332.4A CN202311263332A CN117170587A CN 117170587 A CN117170587 A CN 117170587A CN 202311263332 A CN202311263332 A CN 202311263332A CN 117170587 A CN117170587 A CN 117170587A
- Authority
- CN
- China
- Prior art keywords
- entity
- block
- physical
- memory
- physical block
- 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
- 230000015654 memory Effects 0.000 title claims abstract description 229
- 230000005055 memory storage Effects 0.000 title claims abstract description 38
- 238000007726 management method Methods 0.000 title claims abstract description 25
- 230000004044 response Effects 0.000 claims abstract description 17
- 238000013507 mapping Methods 0.000 claims description 28
- 238000010586 diagram Methods 0.000 description 14
- 238000000034 method Methods 0.000 description 11
- 238000012937 correction Methods 0.000 description 9
- 230000008569 process Effects 0.000 description 8
- 230000007246 mechanism Effects 0.000 description 7
- 239000007787 solid Substances 0.000 description 5
- 230000003321 amplification Effects 0.000 description 3
- 239000000284 extract Substances 0.000 description 3
- 238000003199 nucleic acid amplification method Methods 0.000 description 3
- 239000003550 marker Substances 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000004064 recycling Methods 0.000 description 2
- 238000013523 data management Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- 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
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明提供一种区块管理方法、存储器存储装置及存储器控制器,用于控制存储器模块,其中存储器模块包括多个实体群组,每一实体群组包括属于不同存储器平面的多个实体区块,每一实体区块包括多个实体页面,所述区块管理方法包括获取每一实体群组中每一实体区块的有效数据个数,并且依据每一实体区块的有效数据个数获取每一实体群组的有效数据总数;在执行垃圾回收操作时,依据有效数据总数获取目标实体群组;依据目标实体群组中第一实体区块的有效数据占比是否大于阈值判断是否对第一实体区块执行替换操作;响应于第一实体区块的有效数据占比大于阈值,将第一实体区块与多个实体群组中另一实体群组的空实体区块替换。
Description
技术领域
本发明涉及一种存储器管理技术,尤其涉及一种区块管理方法、存储器存储装置及存储器控制器。
背景技术
固态硬盘(Solid State Disk,SSD)是用固态电子存储芯片阵列制成的硬盘,一个固态硬盘的存储单元由闪存块构成,一个闪存块可划分成若干个数据页。
SSD使用过程中,会不断产生新的数据,在这种情况下需要将已存储的数据也相应的进行更新,这样,已存储的数据就自动成为垃圾数据,更新后的数据为有效数据,有效数据所在的页即为有效数据页。当固态硬盘的可用空间不足时,就需要回收旧的闪存块,即将旧的闪存块上的有效数据页中的有效数据搬移到新的闪存块上,有效数据搬移完毕后,将整个旧的闪存块进行擦除,从而释放旧的闪存块用于新数据的写入。
目前,对旧的闪存块进行垃圾回收的过程,先是遍历所有闪存块上的数据,以寻找出每一个闪存块上的有效数据页,并将其中的有效数据页上的有效数据搬移到其他的闪存块上,之后,擦除上述某一个闪存块。上述垃圾回收的过程会占用了较多的资源,影响了系统的性能。
发明内容
本发明提供了一种区块管理方法、存储器存储装置及存储器控制器,可减少存储器存储装置在垃圾回收过程中产生的写放大,从而延长存储器存储装置的使用寿命。
本发明的实施例提供一种区块管理方法,其中,用于控制存储器模块,其中存储器模块包括多个实体群组,每一实体群组包括属于不同存储器平面的多个实体区块,每一实体区块包括多个实体页面,且区块管理方法包括获取每一实体群组中每一实体区块的有效数据个数,并且依据每一实体区块的有效数据个数获取每一实体群组的有效数据总数;在执行垃圾回收操作时,依据有效数据总数获取目标实体群组;依据目标实体群组中第一实体区块的有效数据占比是否大于阈值判断是否对第一实体区块执行替换操作;响应于第一实体区块的有效数据占比大于阈值,将第一实体区块与多个实体群组中另一实体群组的空实体区块替换。
本发明的实施例提供一种存储器存储装置,包括连接接口、存储器模块及存储器控制器。连接接口用以连接主机系统。存储器模块包括多个实体群组,每一实体群组包括属于不同存储器平面的多个实体区块,每一实体区块包括多个实体页面。存储器控制器连接连接接口与存储器模块,其中,存储器控制器用以获取每一实体群组中每一实体区块的有效数据个数,并且依据每一实体区块的有效数据个数获取每一实体群组的有效数据总数。在执行垃圾回收操作时,存储器控制器用以依据有效数据总数获取目标实体群组。存储器控制器用以依据目标实体群组中第一实体区块的有效数据占比是否大于阈值判断是否对第一实体区块执行替换操作。响应于第一实体区块的有效数据占比大于阈值,存储器控制器用以将第一实体区块与多个实体群组中另一实体群组的空实体区块替换。
本发明的实施例提供一种存储器控制器,其中,包括主机接口、存储器接口、错误检查与校正电路以及存储器控制电路。主机接口用以连接主机系统。存储器接口用以连接存储器模块,其中存储器模块包括多个实体群组,每一实体群组包括属于不同存储器平面的多个实体区块,每一实体区块包括多个实体页面。存储器控制电路连接主机接口、存储器接口与错误检查与校正电路,其中存储器控制电路用以获取每一实体群组中每一实体区块的有效数据个数,并且依据每一实体区块的有效数据个数获取每一实体群组的有效数据总数。在执行垃圾回收操作时,存储器控制电路用以依据有效数据总数获取目标实体群组;存储器控制电路用以依据目标实体群组中第一实体区块的有效数据占比是否大于阈值判断是否对第一实体区块执行替换操作;响应于第一实体区块的有效数据占比大于阈值,存储器控制电路用以将第一实体区块与多个实体群组中另一实体群组的空实体区块替换。
基于上述,本发明提供了一种区块管理方法、存储器存储装置及存储器控制器,在垃圾回收的过程中将目标实体群组中存储有有效数据的第一实体区块与另一实体群组中未存有有效数据的空实体区块进行替换,并且将目标实体群组中其他实体区块存储的有效数据搬移至其他实体群组的实体区块上,再对目标实体群组进行擦除,以此来减少存储器存储装置在垃圾回收过程中产生的写放大,从而延长存储器存储装置的使用寿命。
为让本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合所附附图作详细说明如下。
附图说明
包含附图以便进一步理解本发明,且附图并入本说明书中并构成本说明书的一部分。附图说明本发明的实施例,并与描述一起用于解释本发明的原理。
图1是根据本发明的一实施例所示出的存储器存储装置的示意图;
图2是根据本发明的一实施例所示出的存储器控制器的示意图;
图3是根据本发明的一实施例所示出的管理存储器模块的示意图;
图4是根据本发明的一实施例所示出的实体群组的示意图;
图5是根据本发明的一实施例所示出的VC表的示意图;
图6是根据本发明的一实施例所示出的三级页表分页的示意图;
图7是根据本发明的一实施例所示出的RUT表的示意图;
图8是根据本发明的一实施例所示出的区块管理方法的流程图;
图9是根据本发明的一实施例所示出的使用RUT表对第一实体区块执行替换操作的流程图。
具体实施方式
现将详细地参考本发明的示范性实施例,示范性实施例的实例说明于附图中。只要有可能,相同元件符号在附图和描述中用来表示相同或相似部分。
图1是根据本发明的一实施例所示出的存储器存储装置的示意图。请参照图1,存储器存储系统10包括主机系统11与存储器存储装置12。主机系统11可为任意型态的计算机系统。例如。主机系统11可为笔记本计算机、台式计算机、智能手机、平板计算机、工业计算机等。存储器存储装置12用以存储来自主机系统11的数据。例如,存储器存储装置12可包括固态硬盘、U盘或其他类型的非易失性存储装置。主机系统11可经由串行先进技术总线附属(Serial Advanced Technology Attachment,SATA)接口、外设部件互连快速(PeripheralComponent Interconnect Express,PCI Express)、通用串行总线(Universal SerialBus,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型快闪存储器模块、三维NAND型快闪存储器模块(3D NAND flash memorymodule)(可具有多个三阶或四阶存储单元)或其他具有相似特性的存储器模块。
存储器控制器123连接至连接接口121与存储器模块122。存储器控制器123可用以控制存储器存储装置12。例如,存储器控制器123可控制连接接口121与存储器模块122以进行数据存取与数据管理。例如,存储器控制器123可包括中央处理单元(CPU)、图形处理单元(GPU),或是其他可编程的一般用途或特殊用途的微处理器、数字信号处理器(DigitalSignal Processor,DSP)、可编程控制器、专用集成电路(Application SpecificIntegrated Circuits,ASIC)、可编程逻辑器件(Programmable Logic Device,PLD)或其他类似装置或这些装置的组合。
在一实施例中,存储器控制器123亦称为快闪(flash)存储器控制器。在一实施例中,存储器模块122亦称为快闪存储器模块。存储器模块122可接收来自存储器控制器123的指令序列并根据此指令序列存取存储于存储单元中的数据。
图2是根据本发明的一实施例所示出的存储器控制器的示意图。请参照图1与图2,存储器控制器123包括主机接口21、存储器接口22及存储器控制电路23。主机接口21用以经由连接接口121连接至主机系统11,以与主机系统11通信。存储器接口22用以连接至存储器模块122,以与存储器模块122通信。
存储器控制电路23连接至主机接口21与存储器接口22。存储器控制电路23可经由主机接口21与主机系统11沟通并经由存储器接口22存取至存储器模块122。存储器控制电路23也可视为存储器控制器123的控制核心。在以下实施例中,对于存储器控制电路23的说明等同于对于存储器控制器123的说明。此外,存储器控制电路23可包括一或多个缓冲存储器,其用以暂存数据。
在一实施例中,存储器控制器123还包括错误检查与校正电路24、缓冲存储器25与电源管理电路26。
错误检查与校正电路24是耦接至存储器控制电路23并且用以执行错误检查与校正程序以确保数据的正确性。具体来说,当存储器控制电路23从主机系统11中接收到写入指令时,错误检查与校正电路24会为对应此写入指令的数据产生对应的错误更正码(errorcorrecting code,ECC)和/或错误检查码(error detecting code,EDC),并且存储器控制电路23会将对应此写入指令的数据与对应的错误更正码和/或错误检查码写入至存储器模块122中。之后,当存储器控制电路23从存储器模块122中读取数据时会同时读取此数据对应的错误更正码和/或错误检查码,并且错误检查与校正电路24会依据此错误更正码和/或错误检查码对所读取的数据执行错误检查与校正操作。
在一实施例中,错误检查与校正电路24可以针对存储于同一个实体单元中的数据进行单框架(single-frame)编码,也可以针对存储于多个实体单元中的数据进行多框架(multi-frame)编码,单框架编码与多框架编码可以分别采用低密度奇偶检查校正码(lowdensity parity code,LDPC)、BCH码、回旋码(convolutional code)或涡轮码(turbocode)等编码算法的至少其中之一。或者,在一实施例中,多框架编码还可以采用里德-所罗门码(Reed-Solomon codes,RS codes)算法或互斥或(XOR)算法。此外,在另一实施例中,更多未列于上的编码算法也可以被采用,在此便不赘述。根据所采用的编码算法,错误检查与校正电路24可以编码欲保护的数据来产生相对应的错误更正码和/或错误检查码。
缓冲存储器25是耦接至存储器控制电路23并且用以暂存来自于主机系统11的数据与指令或来自于存储器模块122的数据。电源管理电路26是耦接至存储器控制电路23并且用以控制存储器存储装置12的电源。
图3是根据本发明的一实施例所示出的管理存储器模块的示意图。请参照图1与图3,存储器模块122包括多个实体单元301(0)~301(C)。每一个实体单元皆包括多个存储单元且用以非易失性地存储数据。多个实体单元可组成一个实体区块。一个实体区块中的多个实体单元(或存储单元)可被同时抹除。此外,存储器控制电路23可配置多个逻辑单元311(0)~311(D)来映射至少部分的实体单元。例如,一个逻辑单元可由一或多个逻辑地址组成。逻辑单元与实体单元之间的映射关系则可记载于逻辑至实体映射表中。
在一实施例中,存储器模块122逻辑地区分为数据区310、闲置区320与系统区330。逻辑上属于数据区310的实体单元301(1)~301(A)存储有来自主机系统11的数据(亦称为使用者数据)。也就是说,当从主机系统11接收到写入指令与欲写入数据时,存储器控制电路23会从闲置区320中提取实体区块,并且将数据写入(或称为程序化、编程)至所提取的实体区块中,以替换数据区310的实体区块。数据区310中的实体单元被抹除后就会被关连至闲置区320。换言之,闲置区320中的实体单元301(A+1)~301(B)皆已被抹除且未存储有效数据。其中,闲置区320中的多个实体单元可组成一个闲置实体区块。
逻辑上属于系统区330的实体单元301(B+1)~301(C)是用以记录系统数据。例如,系统数据包括关于存储器模块的制造商与型号、存储器模块的实体区块数、每一实体区块的实体单元数等。特别是,数据区310、闲置区320与系统区330的实体单元的数量会根据不同的存储器规格而有所不同。
一般而言,存储器控制电路23会将逻辑单元与实体单元之间的映射关系记载于逻辑至实体映射表。当主机系统11欲从存储器存储装置12读取数据或写入数据至存储器存储装置12时,存储器控制电路23可根据逻辑至实体映射表中的信息来存取存储器模块122。
如上所述,在执行写入指令时,不管目前数据是要写入至哪个逻辑单元,存储器控制电路23皆会以一个实体单元接续一个实体单元的方式来写入数据(亦称为随机写入机制)。具体来说,存储器控制电路23会从闲置区320中提取一个空的闲置实体区块作为目前使用或作动(active)的实体区块来写入数据。并且,当此作动实体区块已被写满时,存储器控制电路23会再从闲置区320中提取另一个空的闲置实体区块作为作动实体区块,以继续写入对应来自于主机系统11的写入指令的数据。
图4是根据本发明的一实施例所示出的实体群组的示意图。存储器模块122包括多个芯片致能(亦称为芯片致能群组)。为方便说明,本实施例假设存储器模块122包括芯片致能CE(0)、CE(1)、CE(2)与CE(3)。芯片致能CE(0)、CE(1)、CE(2)与CE(3)分别包含多个实体节点。存储器控制电路23可分别地通过芯片致能(chip enable)脚位来致能芯片致能。此外,芯片致能CE(0)、CE(1)、CE(2)与CE(3)可分别包含多个平面(例如图4的平面PL(1)与PL(2)、PL(3)与PL(4)、PL(5)与PL(6)、PL(7)与PL(8))。本领域技术人员应可清楚了解存储器模块122可具有其他任意个芯片致能,在此并不赘述。
存储器控制电路23可将属于不同存储器平面的连续的数个实体区块组合为一个实体群组来进行操作(例如,数据抹除操作及垃圾回收操作)。一个实体群组中会包括所有实体区块中的至少两个可用的实体区块。在本实施例中,一个实体群组所包括的至少两个可用实体区块是属于不同的操作单元(例如,平面(plane)、交错(interleave)或通道(channel))。因此,实体群组包括的实体区块可以根据同一个写入指令而同时被程序化。在一实施例中,在执行数据抹除操作时,以一个实体群组为单位对一个实体群组中包括的实体区块同时进行数据抹除操作。在执行垃圾回收操作时,会以一个实体群组为单位将实体群组包括的实体区块中的数据同时复制至其他实体群组的实体区块中。
在本实施例中,如图4所示,实体区块Block0由实体页面401(0)~401(3)组成、实体区块Block 1由实体页面402(0)~402(3)组成、实体区块Block 2由实体页面403(0)~403(3)组成、实体区块Block 3由实体页面404(0)~404(3)组成、实体区块Block 4由实体页面405(0)~405(3)组成、实体区块Block 5由实体页面406(0)~406(3)组成、实体区块Block 6由实体页面407(0)~407(3)组成、实体区块Block 7由实体页面408(0)~408(3)组成,而分别属于不同的平面(PL(1)、PL(2)、PL(3)、PL(4)、PL(5)、PL(6)、PL(7)、PL(8))的实体区块Block0、Block 1、Block 2…Block7可被配置为实体群组410(0)。实体群组410(0)中的各实体区块来自于不同的Plane,可多Plane操作并行读写。在另一实施例中,实体区块Block 0、Block 1、Block 2…Block 15可被配置为实体群组Unit 0。本发明并不以此为限。
图5是根据本发明的一实施例所示出的VC表的示意图。于本实施例中,VC(validcount)表利用VC字段记录各实体群组(例如Unit 0、Unit 1、Unit2…Unit N)的有效数据总数及实体群组中各实体区块(例如每一实体群组中各包括实体区块Block 0、Block 1、Block 2…Block 15)的有效数据个数。
请参考图5,已被点填满表示的实体页面中的数据为有效数据(valid data)。而图5中的白色示意的实体页面中存储的数据为无效数据(invalid data)。因此,实体群组Unit0、实体群组Unit 1、实体群组Unit 2、实体群组Unit 3、实体群组Unit N的有效数据总数分别为VC=22、VC=26、VC=27、VC=30、VC=18,其中实体群组Unit N的实体区块Block 0、Block 1、Block 2、Block15的VC值(有效数据个数)分别为VC=4、VC=5、VC=3、VC=6。
于一实施例中,在执行垃圾回收操作时,依据图5所示的VC表中VC字段记录各实体群组的有效数据总数来获取有效数据总数最小或较小(VC=18为最小)的实体群组Unit N(即目标实体群组),同时判断实体群组Unit N中各实体区块的有效数据占比是否大于阈值,于本实施例中,使用者可依据需求或经验设定阈值为0.5,实体区块Block 0的VC值为4,计算其有效数据占比为4/10=0.4。以此类推,计算实体区块Block 1的有效数据占比为0.5,实体区块Block 2的有效数据占比为0.3,实体区块Block 15的有效数据占比为0.6,也即是说,仅实体区块Block 15(即第一实体区块)的有效数据占比大于阈值,存储器控制电路23判断需对实体区块Block 15执行替换操作。而实体区块的有效数据占比不大于阈值时,将实体群组Unit N的实体区块中的有效数据搬移至其他实体群组的实体区块中。
在一实施例中,存储器控制电路23可选择另一空实体群组中的空实体区块与实体群组Unit N中的实体区块Block 15进行替换,并且将实体群组Unit N中其他的实体区块(例如实体区块Block 0、Block 1、Block 2)的有效数据搬移至其他实体群组(例如实体群组Unit 0等)的实体区块中。其中,所选择的空实体区块的程序化/抹除次数接近或相同于实体区块Block 15的程序化/抹除次数,且空实体区块与实体区块Block 15属于同一存储器平面,以此来维护经替换实体区块后的实体群组Unit N中的各实体区块是来自于不同的存储器平面,因为多Plane并行读写操作比较快,以提高可复写式非易失性存储器模块的读写效率。
在一实施例中,可根据页表(Page Table Entry,PTE)记录的实体地址(PhysicalCell Address,PCA)来判断是否为有效数据。有记录的PCA,其对应存储的数据就是有效数据,无效的PCA为0xFFFFFFFF,其对应存储的数据为无效数据。换句话说,如果某个PTE的表项中有记录的PCA,那么该PCA对应存储的数据就是有效数据。反之,对应的数据不可用或者已被擦除,为无效数据。
在执行垃圾回收操作中,通常使用页级别标记和块级别标记来标记有效数据。在一实施例中,每个实体页面都有一个标记位(valid bit),用于标记该实体页面中的数据是否有效,即是否为有效数据。当数据被写入一个实体页面时,该实体页面的标记位被设置为有效。当数据被删除或更新时,对应的标记位被设置为无效。在垃圾回收过程中,只有标记位为有效的实体页面才会被保留,其他无效的实体页面将被擦除。在另一实施例中,每个实体区块都有一个块标记位(block marker),用于标记整个实体区块中的数据是否有效。当一个实体区块中的所有实体页面都被标记为无效时,该实体区块的块标记位被设置为无效。在垃圾回收过程中,只有块标记位为有效的实体区块才会被保留,其他无效的实体区块将被擦除。上述页级别标记和块级别标记的方式可以结合使用,可提高垃圾回收操作的效率和准确性。
进一步地,本申请提出多级分页的机制来建立上述PTE表。具体地,多级分页是一种将虚拟地址空间划分为多个层级的页表结构。
在多级分页中,虚拟地址空间被划分为多个层级,每个层级都有一个对应的页表。每个页表包含一组PTE表项,每个PTE表项对应一个实体地址。通过多级分页,可以将大的虚拟地址空间划分为多个小的页表,从而减小了页表的大小。
在可复写式非易失性存储器模块中,PTE表的建立也采用了多级分页的机制。首先,整个可复写式非易失性存储器模块的虚拟地址空间被划分为多个页表,每个页表对应一个逻辑地址范围。然后,每个页表中的PTE表项记录了对应逻辑地址范围内的实体地址。
例如,假设可复写式非易失性存储器模块的虚拟地址空间被划分为4个页表,每个页表对应逻辑地址范围为1GB。那么,第一个页表对应的逻辑地址范围为0GB-1GB,第二个页表对应的逻辑地址范围为1GB-2GB,以此类推。每个页表中的PTE表项记录了对应逻辑地址范围内的实体地址。
通过多级分页的机制,可复写式非易失性存储器模块可以高效地管理大量的实体地址,并且可以根据需要进行动态调整和扩展。
以下结合图6来说明本申请实施例提出的一种三级页表分页机制,可依据三级索引来快速查找实体页面,并且获得对应的实体页面存储的数据是有效数据或无效数据的信息。
图6是根据本发明的一实施例所示出的三级页表分页的示意图。请参考图6,可将可复写式非易失性存储器模块的虚拟地址空间划分为三个页表,并使用三级索引来快速查找实体页面。
具体来说,三级页表分页机制包含三级索引:页目录表索引(PageGlobalDirectory index,PGD index)、页中间表PMD索引(PageMiddle Directory index,PMDindex)和页表PTE(Page Table Entry)。每个索引都是一个数组,其中每个条目对应一个页面。虚拟地址被划分为三个部分:页目录索引、页中间索引和页表。
当需查找实体页面时,首先从页目录表索引中获取页中间表PMD PCA(即页中间表PMD的实体地址)找到对应的页中间表,然后根据页中间索引获取页表PTE PCA(即页表PTE的实体地址)找到对应的页表。最后从页表存储的实体页面号中找到对应的实体页面,从而从对应的实体页面中获得其存储的数据是有效数据或无效数据的信息。
本申请提供的三级页表分页机制,每次仅需将所需要的页表读出来,利用多级索引来灵活地分配和管理页表,不仅可加速查找实体页面,还可以减少内存访问的时间。
本申请更提出利用RUT(replace unit table)表来记录目标实体群组与需替换的实体区块的管理。
图7是根据本发明的一实施例所示出的RUT表的示意图。请参照图7,于本实施例中,响应于实体区块的有效数据占比大于阈值,确定需将实体群组Unit4、Unit5和Unit3中的实体区块(来源区块source block)S4、S5和S3替换到实体群组Unit6、Unit1和Unit0中的实体区块(目标区块target block)T6、T0和T1。
在需要替换时,首先依据第一替换群组表(RUT L1)获取实体区块S4、S5和S3所属的存储器平面以及存储器平面在第二替换群组表(RUT L2)的偏移量,然后依据偏移量读取RUT L2中记录的K-line的上下映射关系,依据映射关系将映射至实体区块S4、S5和S3更新为映射至实体区块T6、T0和T1,以将属于同一存储器平面的实体区块与空实体区块进行替换。
于本实施例中,通过RUT L1获取需替换的实体区块S4所属的存储器平面为PB0以及偏移量为0,依据此偏移量读取RUT L2中的映射关系(即PB0,T6,S4),可依据此映射关系将映射至实体区块S4更新为映射至实体区块T6,且实体区块S4与实体区块T6属于同一存储器平面PB0。
以此类推,同样地,可通过RUT L1获取需替换的实体区块S5所属的存储器平面为PB7以及偏移量为3,依据此偏移量读取RUT L2中的映射关系(即PB7,T0,S5),可依据此映射关系将映射至实体区块S5更新为映射至实体区块T0,且实体区块S5与实体区块T0属于同一存储器平面PB7。可通过RUT L1获取需替换的实体区块S3所属的存储器平面为PB5、PB2以及偏移量为2、1,依据此偏移量读取RUT L2中的映射关系(即PB5,T6,S3以及PB2,T1,S3),可依据此映射关系将映射至实体区块S3更新为映射至实体区块T6,且实体区块S3与实体区块T6属于同一存储器平面PB5,将映射至实体区块S3更新为映射至实体区块T1,且实体区块S3与实体区块T1属于同一存储器平面PB2。
在将实体群组Unit4、Unit5和Unit3中的实体区块(来源区块source block)S4、S5和S3替换到实体群组Unit6、Unit1和Unit0中的实体区块(目标区块target block)T6、T0和T1之后,可参考图7中右侧图示,其中实体群组Unit2、Unit4、Unit5和Unit3中的有效数据已被搬移或其实体区块已被替换为空实体区块。
在一实施例中,RUT L2可依据偏移量由小到大记录K-line的上下映射关系,以便于搜寻。以K-line表示排序后可获得最大Unit数。
图8是根据本发明的一实施例所示出的区块管理方法的流程图。
请参考图8,本实施例的方法适用于上述实施例中的存储器存储装置12,以下即搭配存储器存储装置12中的各项元件说明本实施例的详细步骤。值得注意的是,图8中各步骤可以是作为多个代码或是电路,本发明不加以限制。此外,图8的方法可以搭配以下范例实施例使用,也可以单独使用,本发明不加以限制。
于步骤S801中,存储器控制器123获取每一实体群组中每一实体区块的有效数据个数,并且依据每一实体区块的有效数据个数获取每一实体群组的有效数据总数。
于步骤S802中,在执行垃圾回收操作时,存储器控制器123从多个实体群组中获取有效数据总数较小的目标实体群组。
于步骤S803中,存储器控制器123依据目标实体群组中第一实体区块的有效数据占比是否大于阈值判断是否对第一实体区块执行替换操作。
于步骤S804中,响应于第一实体区块的有效数据占比大于阈值,存储器控制器123将第一实体区块与另一实体群组的空实体区块替换,并且将目标实体群组中其他的实体区块的有效数据搬移至其他实体群组的实体区块中。在一实施例中,第一实体区块与空实体区块属于同一个存储器平面,且空实体区块的程序化/抹除次数接近于第一实体区块的程序化/抹除次数。
于步骤S805中,存储器控制器123对目标实体群组进行擦除。
于步骤S806中,响应于第一实体区块的有效数据占比非大于阈值,存储器控制器123将目标实体群组的实体区块中的有效数据搬移至其他实体群组的实体区块中,并且跳转至步骤S805,对目标实体群组进行擦除。
图9是根据本发明的一实施例所示出的使用RUT表对第一实体区块执行替换操作的流程图。
请参考图9,于步骤S8041中,响应于第一实体区块的有效数据占比大于阈值,存储器控制器123确定需替换第一实体区块。
于步骤S8042中,存储器控制器123依据第一替换群组表(RUT L1)获取第一实体区块所属的存储器平面以及存储器平面在第二替换群组表(RUT L2)的偏移量。
于步骤S8043中,存储器控制器123依据偏移量读取第二替换群组表中的映射关系,依据映射关系将映射至第一实体区块更新为映射至空实体区块,以将属于同一存储器平面的第一实体区块与空实体区块替换。
基于上述,本发明提供了一种区块管理方法、存储器存储装置及存储器控制器,在垃圾回收的过程中将目标实体群组中存储有有效数据的第一实体区块与另一实体群组中未存有有效数据的空实体区块进行替换,并且将目标实体群组中其他实体区块存储的有效数据搬移至其他实体群组的实体区块上,再对目标实体群组进行擦除,以此来减少存储器存储装置在垃圾回收过程中产生的写放大,从而延长存储器存储装置的使用寿命。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (18)
1.一种区块管理方法,其特征在于,用于控制存储器模块,其中所述存储器模块包括多个实体群组,每一所述实体群组包括属于不同存储器平面的多个实体区块,每一所述实体区块包括多个实体页面,且所述区块管理方法包括:
获取每一所述实体群组中每一所述实体区块的有效数据个数,并且依据每一所述实体区块的所述有效数据个数获取每一所述实体群组的有效数据总数;
在执行垃圾回收操作时,依据所述有效数据总数获取目标实体群组;
依据所述目标实体群组中第一实体区块的有效数据占比是否大于阈值判断是否对所述第一实体区块执行替换操作;
响应于所述第一实体区块的所述有效数据占比大于所述阈值,将所述第一实体区块与所述多个实体群组中另一实体群组的空实体区块替换。
2.根据权利要求1所述的区块管理方法,其特征在于,所述空实体区块与所述第一实体区块属于同一所述存储器平面,且所述空实体区块的程序化/抹除次数接近于所述第一实体区块的所述程序化/抹除次数。
3.根据权利要求1所述的区块管理方法,其特征在于,所述区块管理方法还包括:
将所述存储器模块的逻辑地址空间划分为对应于多个逻辑地址范围的多个页表,每一所述页表包括用以记录对应每一所述逻辑地址范围的实体地址的表项。
4.根据权利要求3所述的区块管理方法,其特征在于,所述区块管理方法还包括:
依据所述表项记录的所述实体地址读取所述实体地址对应的实体页面,并且判断所述实体页面中存储的数据是否为有效数据。
5.根据权利要求1所述的区块管理方法,其特征在于,所述响应于所述第一实体区块的所述有效数据占比大于所述阈值,将所述第一实体区块与所述空实体区块替换的步骤中还包括:
响应于所述第一实体区块的所述有效数据占比大于所述阈值,确定需替换所述第一实体区块;
依据第一替换群组表获取所述第一实体区块所属的所述存储器平面以及所述存储器平面在第二替换群组表的偏移量;
依据所述偏移量读取所述第二替换群组表中的映射关系,依据所述映射关系将映射至所述第一实体区块更新为映射至所述空实体区块,以将属于同一所述存储器平面的所述第一实体区块与所述空实体区块替换。
6.根据权利要求1所述的区块管理方法,其特征在于,第二替换群组表记录的映射关系包括所述存储器平面、属于同一所述存储器平面的所述空实体区块以及所述第一实体区块。
7.一种存储器存储装置,其特征在于,包括:
连接接口,用以连接主机系统;
存储器模块,包括多个实体群组,每一所述实体群组包括属于不同存储器平面的多个实体区块,每一所述实体区块包括多个实体页面;以及
存储器控制器,连接所述连接接口与所述存储器模块,
其中,所述存储器控制器用以获取每一所述实体群组中每一所述实体区块的有效数据个数,并且依据每一所述实体区块的所述有效数据个数获取每一所述实体群组的有效数据总数;
在执行垃圾回收操作时,所述存储器控制器用以依据所述有效数据总数获取目标实体群组;
所述存储器控制器用以依据所述目标实体群组中第一实体区块的有效数据占比是否大于阈值判断是否对所述第一实体区块执行替换操作;
响应于所述第一实体区块的所述有效数据占比大于所述阈值,所述存储器控制器用以将所述第一实体区块与所述多个实体群组中另一实体群组的空实体区块替换。
8.根据权利要求7所述的存储器存储装置,其特征在于,所述空实体区块与所述第一实体区块属于同一所述存储器平面,且所述空实体区块的程序化/抹除次数接近于所述第一实体区块的所述程序化/抹除次数。
9.根据权利要求7所述的存储器存储装置,其特征在于,所述存储器控制器更用以将所述存储器模块的逻辑地址空间划分为对应于多个逻辑地址范围的多个页表,每一所述页表包括用以记录对应每一所述逻辑地址范围的实体地址的表项。
10.根据权利要求9所述的存储器存储装置,其特征在于,所述存储器控制器更用以依据所述表项记录的所述实体地址读取所述实体地址对应的实体页面,并且判断所述实体页面中存储的数据是否为有效数据。
11.根据权利要求7所述的存储器存储装置,其特征在于,所述响应于所述第一实体区块的所述有效数据占比大于所述阈值,所述存储器控制器用以将所述第一实体区块与所述空实体区块替换的操作中还包括:
响应于所述第一实体区块的所述有效数据占比大于所述阈值,所述存储器控制器更用以确定需替换所述第一实体区块;
所述存储器控制器更用以依据第一替换群组表获取所述第一实体区块所属的所述存储器平面以及所述存储器平面在第二替换群组表的偏移量;
所述存储器控制器更用以依据所述偏移量读取所述第二替换群组表中的映射关系,依据所述映射关系将映射至所述第一实体区块更新为映射至所述空实体区块,以将属于同一所述存储器平面的所述第一实体区块与所述空实体区块替换。
12.根据权利要求7所述的存储器存储装置,其特征在于,第二替换群组表记录的映射关系包括所述存储器平面、属于同一所述存储器平面的所述空实体区块以及所述第一实体区块。
13.一种存储器控制器,其特征在于,包括:
主机接口,用以连接主机系统;
存储器接口,用以连接存储器模块,其中所述存储器模块包括多个实体群组,每一所述实体群组包括属于不同存储器平面的多个实体区块,每一所述实体区块包括多个实体页面;
错误检查与校正电路;以及
存储器控制电路,连接所述主机接口、所述存储器接口与所述错误检查与校正电路,
其中所述存储器控制电路用以获取每一所述实体群组中每一所述实体区块的有效数据个数,并且依据每一所述实体区块的所述有效数据个数获取每一所述实体群组的有效数据总数;
在执行垃圾回收操作时,所述存储器控制电路用以依据所述有效数据总数获取目标实体群组;
所述存储器控制电路用以依据所述目标实体群组中第一实体区块的有效数据占比是否大于阈值判断是否对所述第一实体区块执行替换操作;
响应于所述第一实体区块的所述有效数据占比大于所述阈值,所述存储器控制电路用以将所述第一实体区块与所述多个实体群组中另一实体群组的空实体区块替换。
14.根据权利要求13所述的存储器控制器,其特征在于,所述空实体区块与所述第一实体区块属于同一所述存储器平面,且所述空实体区块的程序化/抹除次数接近于所述第一实体区块的所述程序化/抹除次数。
15.根据权利要求13所述的存储器控制器,其特征在于,所述存储器控制电路更用以将所述存储器模块的逻辑地址空间划分为对应于多个逻辑地址范围的多个页表,每一所述页表包括用以记录对应每一所述逻辑地址范围的实体地址的表项。
16.根据权利要求15所述的存储器控制器,其特征在于,所述存储器控制电路更用以依据所述表项记录的所述实体地址读取所述实体地址对应的实体页面,并且判断所述实体页面中存储的数据是否为有效数据。
17.根据权利要求13所述的存储器控制器,其特征在于,所述响应于所述第一实体区块的所述有效数据占比大于所述阈值,所述存储器控制电路用以将所述第一实体区块与所述空实体区块替换的操作中还包括:
响应于所述第一实体区块的所述有效数据占比大于所述阈值,所述存储器控制电路更用以确定需替换所述第一实体区块;
所述存储器控制电路更用以依据第一替换群组表获取所述第一实体区块所属的所述存储器平面以及所述存储器平面在第二替换群组表的偏移量;
所述存储器控制电路更用以依据所述偏移量读取所述第二替换群组表中的映射关系,依据所述映射关系将映射至所述第一实体区块更新为映射至所述空实体区块,以将属于同一所述存储器平面的所述第一实体区块与所述空实体区块替换。
18.根据权利要求13所述的存储器控制器,其特征在于,第二替换群组表记录的映射关系包括所述存储器平面、属于同一所述存储器平面的所述空实体区块以及所述第一实体区块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311263332.4A CN117170587A (zh) | 2023-09-27 | 2023-09-27 | 区块管理方法、存储器存储装置及存储器控制器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311263332.4A CN117170587A (zh) | 2023-09-27 | 2023-09-27 | 区块管理方法、存储器存储装置及存储器控制器 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117170587A true CN117170587A (zh) | 2023-12-05 |
Family
ID=88931818
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311263332.4A Pending CN117170587A (zh) | 2023-09-27 | 2023-09-27 | 区块管理方法、存储器存储装置及存储器控制器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117170587A (zh) |
-
2023
- 2023-09-27 CN CN202311263332.4A patent/CN117170587A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10713178B2 (en) | Mapping table updating method, memory controlling circuit unit and memory storage device | |
CN111078149B (zh) | 存储器管理方法、存储器存储装置及存储器控制电路单元 | |
US10310739B2 (en) | Memory management method, memory control circuit unit and memory storage device | |
CN102549554B (zh) | 基于条带的存储器操作 | |
US8892814B2 (en) | Data storing method, and memory controller and memory storage apparatus using the same | |
CN110442529B (zh) | 可配置的存储器系统及配置和使用该存储器系统的方法 | |
US8589619B2 (en) | Data writing method, memory controller, and memory storage apparatus | |
US8516184B2 (en) | Data updating using mark count threshold in non-volatile memory | |
US8489942B1 (en) | Memory management method, and memory controller and memory storage device using the same | |
US9383929B2 (en) | Data storing method and memory controller and memory storage device using the same | |
CN109800178B (zh) | 垃圾收集方法以及用于混合地址映射的存储器系统 | |
US8943264B2 (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 | |
US9990152B1 (en) | Data writing method and storage controller | |
US10509583B1 (en) | Memory management method and storage controller | |
CN113628655B (zh) | 用以存取闪存模块的方法、闪存控制器与电子装置 | |
CN110471612B (zh) | 存储器管理方法以及存储控制器 | |
US10430288B2 (en) | Data backup method, data recovery method and storage controller | |
CN109032957B (zh) | 存储器管理方法、存储器控制电路单元与存储器存储装置 | |
CN108108118B (zh) | 数据写入方法以及存储控制器 | |
CN112988069B (zh) | 存储器管理方法、存储器存储装置及存储器控制器 | |
CN113094307B (zh) | 映射信息管理方法、存储器存储装置及存储器控制器 | |
CN113377282B (zh) | 数据存储装置与数据处理方法 | |
CN113515466B (zh) | 用于多内核之间动态逻辑块地址分布的系统和方法 | |
US11210008B2 (en) | Memory system for multi-clustering read thresholds and method thereof |
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 |