CN117409845A - 分组管理方法、存储器存储装置及存储器控制器 - Google Patents
分组管理方法、存储器存储装置及存储器控制器 Download PDFInfo
- Publication number
- CN117409845A CN117409845A CN202210790379.5A CN202210790379A CN117409845A CN 117409845 A CN117409845 A CN 117409845A CN 202210790379 A CN202210790379 A CN 202210790379A CN 117409845 A CN117409845 A CN 117409845A
- Authority
- CN
- China
- Prior art keywords
- entity
- group
- error probability
- physical
- units
- 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 195
- 230000005055 memory storage Effects 0.000 title claims abstract description 33
- 238000007726 management method Methods 0.000 title claims abstract description 27
- 238000000034 method Methods 0.000 claims abstract description 15
- 238000012937 correction Methods 0.000 claims description 18
- 238000011084 recovery Methods 0.000 description 12
- 238000010586 diagram Methods 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 3
- 238000013507 mapping Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000013523 data management Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/38—Response verification devices
- G11C29/42—Response verification devices using error correcting codes [ECC] or parity check
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1048—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1068—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明提供一种分组管理方法、存储器存储装置及存储器控制器,其中存储器模块包括多个实体抹除单元,每一实体抹除单元包括多个实体程序化单元,该方法包括:获取每一个实体程序化单元的出错概率值;以及依据每一个实体程序化单元的出错概率值将多个实体程序化单元分组至多个实体群组中,实现实体群组的群组出错概率值接近或相同。本发明根据实体程序化单元的出错频率选择分组至合适的实体群组,从而避免同一个实体群组中的出错的实体程序化单元的数目过多而超出RS算法恢复数据的能力。
Description
技术领域
本发明涉及一种存储器管理技术,尤其是涉及一种用于数据恢复的分组管理方法、存储器存储装置及存储器控制器。
背景技术
闪存尤其是NAND闪存是易失性存储器的一种,被广泛的应用于手机、笔记本电脑、云存储等存储领域。闪存的基本功能是保存数据,保证写入的数据和读出的数据的一致性是存储系统的基本要求。错误检查与校正码(ECC,Error Correcting Code),也称错误校正码,可用以于错误校正操作中对读出的数据的错误进行校正,是保证写入的数据和读出的数据的一致性,提高存储系统可靠性的重要手段。但错误校正码也有一定的纠错范围,如果读出数据的原始误码率较高,将会超出错误校正码的纠错能力,无法正确的恢复出写入的数据。
里德-所罗门码(Reed-solomon code,RS code)算法是一种数据恢复方式,在将主机系统的数据写入到存储器中的实体程序化单元时,一实体抹除单元(block)的实体程序化单元(data page)中的数据进行异或运算,并且存储此异或结果。在读取数据时,当此实体抹除单元中的任意一个实体程序化单元出错时,将异或结果与实体抹除单元中未出错的实体程序化单元中存储的数据互相异或,以计算出实体抹除单元中出错的实体程序化单元中存储的数据,从而达成数据恢复目的。
闪存的实体程序化单元的错误率具有分层现象,即某个连续的地址范围的实体程序化单元的错误率全部接近0,或者,某个连续的地址范围内实体程序化单元的错误率全部接近错误率上限,则存在密集的潜在的出错的实体程序化单元(error page)。
由于异或操作的特殊性,当且仅当一组实体程序化单元的error page不超过1个时,使用RS算法可以完成error page的数据恢复,所以一定地址范围内的实体程序化单元中的error page不能过多,否则会超出RS算法的恢复能力。
由于异或操作的特殊性,当且仅当一组实体程序化单元的error page不超过1时,使用RS算法可以完成error page的数据恢复。目前的分组方式是按照线性顺序对实体程序化单元进行遍历分组,倘若某一分组里的error page数目为0或者超过1时,将会导致无需RS算法进行数据恢复或者超出RS算法的数据恢复能力。
发明内容
本发明的实施例提供一种分组管理方法、存储器存储装置及存储器控制器,根据实体程序化单元的出错频率选择分组至合适的实体群组,从而避免同一个实体群组中的第二类实体程序化单元的数目过多而超出RS算法恢复数据的能力。
本发明的实施例提供一种分组管理方法,用于存储器模块,其中存储器模块包括多个实体抹除单元,每一实体抹除单元包括多个实体程序化单元,其中,分组管理方法包括:获取每一实体程序化单元的出错概率值;以及依据每一实体程序化单元的出错概率值将多个实体程序化单元分组至多个实体群组中,实现每一实体群组的群组出错概率值接近或相同。
本发明的实施例还提供一种存储器存储装置,包括连接接口、存储器模块以及存储器控制器。连接接口用以连接主机系统。存储器模块包括多个实体抹除单元,每一实体抹除单元包括多个实体程序化单元。存储器控制器,连接连接接口与存储器模块,其中存储器控制器还用以获取每一实体程序化单元的出错概率值。存储器控制器还用以依据每一实体程序化单元的出错概率值将多个实体程序化单元分组至多个实体群组中,实现每一实体群组的群组出错概率值接近或相同。
本发明的实施例还提供一种存储器控制器,包括主机接口、存储器接口、错误检查与校正电路以及存储器控制电路。其中,主机接口用以连接主机系统。存储器接口用以连接存储器模块,其中存储器模块包括多个实体抹除单元,每一实体抹除单元包括多个实体程序化单元。存储器控制电路连接主机接口、存储器接口与错误检查与校正电路,其中存储器控制电路还用以获取每一实体程序化单元的出错概率值,依据每一实体程序化单元的出错概率值将多个实体程序化单元分组至多个实体群组中,使得每一实体群组的群组出错概率值接近或相同。
基于上述,本发明提供的一种分组管理方法、存储器存储装置及存储器控制器,通过量化实体程序化单元的出错频率,将潜在的出错的实体程序化单元平均分配到不同的实体群组中,基于RS算法且根据实体程序化单元的出错频率值选择实体程序化单元分组至对应的实体群组,从而避免在使用RS算法对读取的数据进行解码时,由于同一个实体群组中的第二类实体程序化单元的数目过多而超出RS算法恢复数据的能力,导致无法恢复数据的情形。
附图说明
包含附图以便进一步理解本发明,且附图并入本说明书中并构成本说明书的一部分。附图说明本发明的实施例,并与描述一起用于解释本发明的原理。
图1是根据本发明的一实施例所示出的存储器存储装置的示意图;
图2是根据本发明的一实施例所示出的存储器控制器的示意图;
图3是根据本发明的一实施例所示出的管理存储器模块的示意图;
图4是根据本发明的一实施例所示出的多框架编码的示意图;
图5是根据本发明的一第一实施例所示出的用于数据恢复的分组管理方法的流程图;
图6是根据本发明的一第二实施例所示出的用于数据恢复的分组管理方法的流程图。
具体实施方式
现将详细地参考本发明的示范性实施例,示范性实施例的实例说明于附图中。只要有可能,相同元件符号在附图和描述中用来表示相同或相似部分。
图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)(可具有多个三阶或四阶存储单元)或其他具有相似特性的存储器模块。存储器模块122中的存储单元是以阵列的方式设置。
存储器控制器123连接至连接接口121与存储器模块122。存储器控制器123可用以控制存储器存储装置12。例如,存储器控制器123可控制连接接口121与存储器模块122以进行数据存取与数据管理。例如,存储器控制器123可包括中央处理单元(CPU)、图形处理单元(GPU),或是其他可编程的一般用途或特殊用途的微处理器、数字信号处理器(DigitalSignal Processor,DSP)、可编程控制器、专用集成电路(Application SpecificIntegrated Circuits,ASIC)、可编程逻辑器件(Programmable Logic Device,PLD)或其他类似装置或这些装置的组合。
在一实施例中,存储器控制器123亦称为快闪存储器控制器。在一实施例中,存储器模块122亦称为快闪存储器模块。存储器模块122可接收来自存储器控制器123的指令序列并根据此指令序列存取存储于存储单元中的数据。
图2是根据本发明的一实施例所示出的存储器控制器的示意图。请参照图1与图2,存储器控制器123包括主机接口21、存储器接口22、存储器控制电路23与错误检查与校正电路24。
主机接口21用以经由连接接口121连接至主机系统11,以与主机系统11通信。在本范例实施例中,主机接口504是兼容于SATA标准。然而,必须了解的是本发明不限于此,主机接口504亦可以是兼容于PATA标准、IEEE1394标准、PCI Express标准、USB标准、SD标准、UHS-I标准、UHS-II标准、MS标准、MMC标准、eMMC标准、UFS标准、CF标准、IDE标准或其他适合的数据传输标准。
存储器接口22用以连接至存储器模块122,以与存储器模块122通信。也就是说,欲写入至存储器模块122的数据会经由存储器接口22转换为存储器模块122所能接受的格式。
存储器控制电路23连接至主机接口21与存储器接口22。存储器控制电路23可经由主机接口21与主机系统11沟通并经由存储器接口22存取至存储器模块122。存储器控制电路23也可视为存储器控制器123的控制核心,其具有多个控制指令,在存储器存储装置12运作时这些控制指令会被执行以实现数据的写入、读取、抹除等运作。在不同实施例中,存储器控制电路23的控制指令可以是以固件形式、代码形式或硬件形式来实作,本发明不在此限制。在以下实施例中,对于存储器控制电路23的说明等同于对于存储器控制器123的说明。此外,存储器控制电路23还可包括一或多个缓冲存储器,其用以暂存数据。
错误检查与校正电路24电性连接至存储器控制电路23,并且用以执行错误检查与校正程序来确保数据的正确性。当存储器控制电路23从主机系统11接收到写入指令时,错误检查与校正电路24会为此写入指令对应的数据产生错误检查与校正码(Error Checkingand Correcting Code,ECC Code),并且存储器控制电路23会将数据与对应的错误检查与校正码写入至存储器模块122中。而当存储器控制电路23从存储器模块122中读取数据时,会同时读取错误检查与校正码。并且存储器控制电路23会依据读取出的错误检查与校正码对所读取的数据执行错误检查与校正程序。
图3是根据本发明的一实施例所示出的管理存储器模块的示意图。
请参照图1与图3,存储器模块122包括多个实体程序化单元,例如图3示出的实体单元301(0)~301(C)。存储器模块122是以实体程序化单元为基础来进行管理,每一个实体程序化单元都包括多个存储单元且用以非易失性地存储数据。多个实体程序化单元可组成一个实体抹除单元(例如,实体区块)。一个实体抹除单元中的多个实体程序化单元(或存储单元)可被同时抹除。此外,存储器控制电路23可配置多个逻辑单元311(0)~311(D)来映射至少部分的实体程序化单元。例如,一个逻辑单元可由一或多个逻辑地址组成。逻辑单元与实体程序化单元之间的映射关系则可记载于逻辑至实体映射表中。
在一实施例中,存储器控制电路23将存储器模块122逻辑地划分为数据区310、闲置区320与系统区330。逻辑上属于数据区310的实体单元301(1)~301(A)存储有来自主机系统11的数据(亦称为使用者数据)。数据区310中的实体程序化单元被标记后就会被关联至闲置区320。换言之,闲置区320中的实体单元301(A+1)~301(B)都已被标记且未存储有效数据。其中,闲置区320中的多个实体程序化单元可组成一个闲置实体抹除单元。
逻辑上属于系统区330的实体单元301(B+1)~301(C)是用以记录系统数据。例如,系统数据包括关于存储器模块的制造商与型号、存储器模块的实体抹除单元数、每一实体抹除单元的实体程序化单元数等。特别是,数据区310、闲置区320与系统区330的实体程序化单元的数量会根据不同的存储器规格而有所不同。
在一个存储单元可以存储多个比特(例如,MLC或TLC NAND型快闪存储器)的实施例中,属于同一条字线(或同一个字线层)的实体程序化单元至少可被分类为下实体程序化单元与上实体程序化单元。例如,在MLC NAND型快闪存储器中,一存储单元的最低有效位(Least Significant Bit,LSB)是属于下实体程序化单元,并且此存储单元的最高有效位(Most Significant Bit,MSB)是属于上实体程序化单元。下实体程序化单元的可靠度一般会高于上实体程序化单元的可靠度。在一范例实施例中,下实体程序化单元亦称为快页(fast page),而上实体程序化单元亦称为慢页(slow page)。换言之,以MLC NAND型快闪存储器为例,在MLC NAND型快闪存储器中,排列在同一条字线上的数个存储单元可组成2个实体程序化单元,其中包括由存储单元的最低有效位(亦称为,第一有效位)所组成的下实体程序化单元和由存储单元的最高有效位(亦称为,第二有效位)所组成的上实体程序化单元。
此外,在TLC NAND型快闪存储器中,一存储单元的最低有效位(LeastSignificant Bit,LSB)是属于下实体程序化单元,此存储单元的中间有效位(CenterSignificant Bit,CSB)是属于中实体程序化单元,并且此存储单元的最高有效位(MostSignificant Bit,MSB)是属于上实体程序化单元。
此外,在本范例实施例中,错误检查与校正电路24可以针对存储于同一个实体程序化单元中的数据进行单框架(single-frame)编码,也可以针对存储于多个实体程序化单元中的数据进行多框架(multi-frame)编码。单框架编码与多框架编码可以分别采用低密度奇偶检查校正码(low density parity code,LDPC)、BCH码、回旋码(convolutionalcode)或涡轮码(turbo code)等编码算法的至少其中之一。或者,在一范例实施例中,多框架编码还可以采用里德-所罗门码(Reed-solomon codes,RS codes)算法或异或(XOR)算法。此外,在另一范例实施例中,更多未列于上的编码算法也可以被采用,在此便不赘述。根据所采用的编码算法,错误检查与校正电路24可以编码欲保护的数据来产生相对应的错误更正码和/或错误检查码。为了说明方便,以下将经由编码产生的错误更正码和/或错误检查码统称为编码数据。
图4是根据本发明的一实施例所示出的多框架编码的示意图;
请参照图4,以编码实体程序化单元810(0)~810(E)所存储的数据来产生相对应的编码数据820为例,实体程序化单元810(0)~810(E)中的每一者所存储的至少部分数据可视为一个框架。在多框架编码中,是以每一个位(或,字节)所在的位置为依据来对实体程序化单元810(0)~810(E)中的数据进行编码。例如,位于位置801(1)的位b11、b21、…、bp1会被编码为编码数据820中的位bo1,位于位置801(2)的位b12、b22、…、bp2会被编码为编码数据820中的位bo2;以此类推,位于位置801(r)的位b1r、b2r、…、bpr会被编码为编码数据820中的位bor。然后,根据编码数据820即可对从实体程序化单元810(0)~810(E)中读取的数据进行解码,以尝试更正所读取的数据中可能存在的错误。
此外,在图4的另一范例实施例中,用于产生编码数据820的数据也可能包括实体程序化单元810(0)~810(E)所存储的数据中的数据位(data bits)所对应的冗余位(redundancy bits)。以实体程序化单元810(0)所存储的数据为例,其中的冗余位例如是对存储于实体程序化单元810(0)中的数据位进行单框架编码而产生的编码数据。在本范例实施例中,假设在读取实体程序化单元810(0)中的数据时,从实体程序化单元810(0)中读取出的数据可以先使用实体程序化单元810(0)中的冗余位(例如,使用单框架编码产生的编码数据)来解码以对所读取出的数据进行错误侦测与更正。然而,当使用实体程序化单元810(0)中的冗余位进行解码发生失败(例如,解码后实体程序化单元810(0)中所存储的数据的错误位数大于一门坎值)时,可以使用重新读取(Retry-Read)机制以选择并使用其他的读取电压尝试从实体程序化单元810(0)中读取出正确的数据。而当无法通过重新读取(Retry-Read)机制从实体程序化单元810(0)中读取出正确的数据时,可以读取编码数据820以及实体程序化单元810(1)~810(E)的数据,并根据编码数据820以及实体程序化单元810(1)~810(E)的数据进行解码,以尝试更正实体程序化单元810(0)中所存储的数据中存在的错误。也就是说,在本范例实施例中,当使用单框架编码产生的编码数据进行解码发生失败以及使用重新读取(Retry-Read)机制进行读取发生失败时,会改用多框架编码产生的编码数据进行解码。
需先说明的是,以下实施例中,出错的实体程序化单元(error page)为实体程序化单元中错误的位(bit)数超过错误检查与校正码(ECC)的更正能力,导致存储于出错的实体程序化单元中的数据不能读取或者无法正确读取出来。
图5是根据本发明的一第一实施例所示出的用于数据恢复的分组管理方法的流程图。
请参考图5,本实施例的方法适用于上述实施例中的存储器存储装置12,以下即搭配存储器存储装置12中的各项元件说明本实施例的详细步骤。值得注意的是,图5中各步骤可以是作为多个代码或是电路,本发明不加以限制。此外,图5的方法可以搭配以下范例实施例使用,也可以单独使用,本发明不加以限制。
于步骤S501中,存储器控制器123将主机系统11的数据写入多个实体程序化单元。
于步骤S502中,存储器控制器123获取存储器模块122中每一个实体程序化单元的出错概率值,其中,每一个实体程序化单元的出错概率值表示为:
f(x,y,z)=h 公式1
其中,x为实体抹除单元的程序化/抹除(P/E)次数,y为实体程序化单元的ECC值,z为实体程序化单元中数据被读取的次数,h为实体程序化单元的出错概率值。对应每一个实体程序化单元的出错概率值分别为h1、h2...hn,其中1、2…n为实体程序化单元的序号,n为实体程序化单元的总数。
举例而言,x可从对应于每一个实体抹除单元的P/E抹除次数表中查询,例如TLCNAND型快闪存储器中,其实体抹除单元的P/E抹除次数为3000-5000次,可设定P/E抹除次数大于2500次数的实体抹除单元中的实体程序化单元的出错概率值比较大。
同样地,y可从对应于每一个实体抹除单元的坏块表中查询,坏块表中记录了对应每一个实体程序化单元的ECC值,可设定快闪存储器中的ECC值为60,并将ECC值分别为0-7,8-15,16-23,24-31,32-47的实体程序化单元进行分类管理。一般而言,快闪存储器会使用ECC值比较小的实体程序化单元来存储数据。而ECC值比较大的例如ECC值为48-60的实体程序化单元,其出错概率值比较大。
同样地,z从对应于每一个实体程序化单元的读次数表中查询。实体程序化单元的读次数越大,则其出错概率值越大。
于一实施例中,可依据出错概率值将实体程序化单元至少分类为第一类实体程序化单元以及第二类实体程序化单元。其中,第一类实体程序化单元可以是好实体程序化单元或正常或高品质的实体程序化单元,举例来说,实体程序化单元所属的实体抹除单元的P/E抹除次数小于2500次数或者ECC值比较小或者读次数较小的实体程序化单元可分类为第一类实体程序化单元。相对而言,第二类实体程序化单元可以是坏实体程序化单元或潜在故障或低品质的实体程序化单元,例如,实体程序化单元所属的实体抹除单元的P/E抹除次数大于2500次数或者ECC值比较大或者读次数较大的实体程序化单元可分类为第二类实体程序化单元。
于步骤S503中,存储器控制器123依据每一个实体程序化单元的出错概率值将实体程序化单元分组至多个实体群组。
在存储器控制器123完成一轮依据每一个实体程序化单元的出错概率值将实体程序化单元分组至多个实体群组中的操作后,于步骤S504中,存储器控制器123进一步地计算对应于每一个实体群组的群组出错概率值,以获取到该多个实体群组的群组出错概率平均值。
示例性地,存储器控制器123将实体程序化单元1、实体程序化单元2…实体程序化单元n分为M个实体群组G1、G2…Gm,每一个实体群组中包括K个实体程序化单元,并且存储器控制器123依据实体程序化单元的出错概率值取得分别对应于实体群组G1、G2…Gm的群组出错概率值H1、H2…Hm。进一步,存储器控制器123还计算出实体群组G1、G2…Gm的群组出错概率平均值Havg。
其中实体群组出错概率值H可以以公式2表示为:
其中r为实体程序化单元的序号,h1为实体程序化单元1的出错概率值,h2为实体程序化单元2的出错概率值,hr为实体程序化单元r的出错概率值,H1为实体群组G1的群组出错概率值。
进一步地,实体群组的群组出错概率平均值Havg可以以公式3表示为:
其中H1为实体群组G1的群组出错概率值,H2为实体群组G2的群组出错概率值,Hm为实体群组Gm的群组出错概率值,Havg为实体群组G1、G2、Gm的群组出错概率值平均值。
于步骤S505中,存储器控制器123根据多个实体群组的群组出错概率平均值,获取到第一实体群组和第二实体群组,其中第一实体群组为群组出错概率值大于群组出错概率平均值的实体群组,第二实体群组为群组出错概率值不大于群组出错概率平均值的实体群组。
于步骤S506中,继续对还未完成分组管理的实体程序化单元执行新一轮的分组管理操作,存储器控制器123判断还未完成分组管理的实体程序化单元的出错概率值是否大于上述群组出错概率平均值。
于步骤S507中,倘若上述还未完成分组管理的实体程序化单元的出错概率值大于群组出错概率平均值,则存储器控制器123会将上述还未完成分组管理的实体程序化单元中出错概率值大于上述群组出错概率平均值的实体程序化单元(亦称之为第二实体程序化单元)分组至第二实体群组。
于步骤S508中,倘若上述还未完成分组管理的实体程序化单元的出错概率值不大于群组出错概率平均值,则存储器控制器123会将上述还未完成分组管理的实体程序化单元中出错概率值不大于群组出错概率平均值的实体程序化单元(亦称之为第一实体程序化单元)分组至第一实体群组,使得第一实体群组的群组出错概率值与第二实体群组的群组出错概率值接近或相同。
其中,每一个实体群组的群组出错概率值接近或相同为每一个实体群组中的第二类实体程序化单元的数目相同,且分组为同一个实体群组中的实体程序化单元属于不同的实体抹除单元,于一实施例中,每一个实体群组中的第二类实体程序化单元的数目为1,以避免在使用RS算法对读取的数据进行解码时,由于同一个实体群组中出错的实体程序化单元的数目超过RS算法恢复数据的能力,而无法更正或恢复所读取的数据中可能存在的错误的情形。
详细而言,在完成一轮依据每一个实体程序化单元的出错概率值将多个实体程序化单元分组至实体群组G1、G2…Gm中的操作后,存储器控制器123计算分别对应于实体群组G1、G2…Gm的群组出错概率值H1、H2…Hm,以获取到实体群组G1、G2…Gm的群组出错概率平均值Havg。
存储器控制器123根据群组出错概率平均值Havg获取到第一实体群组和第二实体群组,其中第一实体群组为群组出错概率值大于群组出错概率平均值的实体群组,第二实体群组为群组出错概率值不大于群组出错概率平均值的实体群组。
在获取到第一实体群组和第二实体群组后,存储器控制器123继续对还未完成分组管理的实体程序化单元执行新一轮的分组管理操作,存储器控制器123会依据实体程序化单元的出错概率值h,将出错概率值h大于群组出错概率值平均值Havg的还未完成分组管理的实体程序化单元分组至第二实体群组,将出错概率值h不大于群组出错概率值平均值Havg的实体程序化单元分组至第一实体群组,使得第一实体群组的群组出错概率值H1与第二实体群组的群组出错概率值H2接近或相同为第一实体群组与第二实体群组中的第二类实体程序化单元的数目相同。于本实施例中第一实体群组与第二实体群组中的第二类实体程序化单元的数目为1,以避免在使用RS算法对读取的数据进行解码时,超出使用RS算法恢复数据的能力。如此,直至将实体程序化单元1、实体程序化单元2…实体程序化单元n分组完毕,并且分组至同一实体群组的实体程序化单元可以是来自同一个实体抹除单元,也可以是来自不同的实体抹除单元。
于步骤S509中,存储器控制器123将写入至实体群组的实体程序化单元中的数据进行逻辑运算以产生错误检查与校正码,其中错误检查与校正码用以对实体程序化单元中的数据执行错误检查与校正操作,以恢复实体程序化单元中存储的数据。
图6是根据本发明的一第二实施例所示出的用于数据恢复的分组管理方法的流程图。
请参考图6,本实施例的方法适用于上述实施例中的存储器存储装置12,以下即搭配存储器存储装置12中的各项元件说明本实施例的详细步骤。值得注意的是,图6中各步骤可以是作为多个代码或是电路,本发明不加以限制。此外,图6的方法可以搭配以下范例实施例使用,也可以单独使用,本发明不加以限制。
于步骤S601中,存储器控制器123将主机系统11的数据写入多个实体群组中的实体程序化单元。
于步骤S602中,存储器控制器123获取存储器模块122中每一个实体程序化单元的出错概率值,其中,每一个实体程序化单元的出错概率值表示为:
f(x,y,z)=h 公式1
其中,x为实体抹除单元的程序化/抹除(P/E)次数,y为实体程序化单元的ECC值,z为实体程序化单元中数据被读取的次数,h为实体程序化单元的出错概率值。对应每一个实体程序化单元的出错概率值分别为h1、h2...hn,其中1、2…n为实体程序化单元的序号,n为实体程序化单元的总数。
举例而言,x可从对应每一个实体抹除单元的P/E抹除次数表中查询,例如TLCNAND型快闪存储器中,其实体抹除单元的P/E抹除次数为3000-5000次,可设定P/E抹除次数大于2500次数的实体抹除单元中的实体程序化单元的出错概率值比较大。
同样地,y可从对应于每一个实体抹除单元的坏块表中查询,坏块表中记录了对应每一个实体程序化单元的ECC值,可设定快闪存储器中的ECC值为60,并将ECC值分别为0-7,8-15,16-23,24-31,32-47的实体程序化单元进行分类管理。一般而言,快闪存储器会使用ECC值比较小的实体程序化单元来存储数据。而ECC值比较大的例如ECC值为48-60的实体程序化单元,其出错概率值比较大。
同样地,z从对应于每一个实体程序化单元的读次数表中查询。实体程序化单元的读次数越大,则其出错概率值越大。
于一实施例中,可依据出错概率值将实体程序化单元至少分类为第一类实体程序化单元以及第二类实体程序化单元。其中,第一类实体程序化单元可以是好实体程序化单元或正常或高品质的实体程序化单元,举例来说,实体程序化单元所属的实体抹除单元的P/E抹除次数小于2500次数或者ECC值比较小或者读次数较小的实体程序化单元可分类为第一类实体程序化单元。相对而言,第二类实体程序化单元可以是坏实体程序化单元或潜在故障或低品质的实体程序化单元,例如,实体程序化单元所属的实体抹除单元的P/E抹除次数大于2500次数或者ECC值比较大或者读次数较大的实体程序化单元可分类为第二类实体程序化单元。
于步骤S603中,存储器控制器123依据每一个实体程序化单元的出错概率值的大小将实体程序化单元进行排序。
举例来说,存储器控制器123可以建立出错概率值表格记录每一个实体程序化单元的出错概率值,并且将实体程序化单元1、实体程序化单元2…实体程序化单元n依据其出错概率值h由大至小进行排序。
于步骤S604中,存储器控制器123依据每一个实体程序化单元的出错概率值取得多个实体程序化单元的出错概率平均值havg。
于步骤S605中,存储器控制器123将实体程序化单元中具有较大出错概率值的第一数目的第三实体程序化单元分组至多个实体群组中的第三实体群组,并且将实体程序化单元中具有较小出错概率值的第二数目的第四实体程序化单元分组至第三实体群组,使得第三实体群组的出错概率值接近或相同于多个实体程序化单元的出错概率平均值,其中每一个实体群组的群组出错概率值接近或相同可被理解为每一个实体群组中的坏实体程序化单元的数目相同,于本实施例中,第三实体群组中第二类实体程序化单元的数目为1,且第一数目相同或不同于第二数目。如此,直至将实体程序化单元1、实体程序化单元2…实体程序化单元n分组完毕,并且分组至第三实体群组的实体程序化单元是来自不同的实体抹除单元。
详细来说,存储器控制器123从出错概率值表格中选取具有较大出错概率值的第一数目(例如A个)的实体程序化单元,且将A个实体程序化单元分组至第三实体群组G1,从出错概率值表格中选取具有较小出错概率值的第二数目(例如B个)的实体程序化单元,并且将B个实体程序化单元分组至第三实体群组G1,使得第三实体群组G1的群组出错概率值H1接近或相同于多个实体程序化单元的出错概率平均值havg,其中第三实体群组G1中坏实体程序化单元的数目为1,从而避免在使用RS算法对读取的数据进行解码时,超出使用RS算法恢复数据的能力。于本实施例中,第一数目可相同于第二数目,在另一实施例中,第一数目可不同于第二数目。
于步骤S606中,存储器控制器123将写入至实体群组的实体程序化单元中的数据进行逻辑运算以产生错误检查与校正码,其中错误检查与校正码用以对实体程序化单元中的数据执行错误检查与校正操作,以恢复实体程序化单元中存储的数据。
基于此,本发明提供的一种分组管理方法、存储器存储装置及存储器控制器,基于RS算法且根据实体程序化单元的出错频率值选择实体程序化单元分组至对应的实体群组,从而避免在使用RS算法对读取的数据进行解码时,由于同一个实体群组中的第二类实体程序化单元的数目过多而超出RS算法恢复数据的能力,导致无法恢复数据的情形。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (21)
1.一种分组管理方法,用于存储器模块,其中所述存储器模块包括多个实体抹除单元,每一所述实体抹除单元包括多个实体程序化单元,其特征在于,所述方法包括:
获取每一所述实体程序化单元的出错概率值;
依据每一所述实体程序化单元的所述出错概率值将所述多个实体程序化单元分组至多个实体群组中,实现每一所述实体群组的群组出错概率值接近或相同。
2.根据权利要求1所述的分组管理方法,其特征在于,所述依据每一所述实体程序化单元的所述出错概率值将所述多个实体程序化单元分组至所述多个实体群组中的步骤中还包括:
在完成一轮依据每一所述实体程序化单元的所述出错概率值将所述多个实体程序化单元分组至所述多个实体群组中的操作后,计算所述多个实体群组的群组出错概率值,以获取到所述多个实体群组的群组出错概率平均值;
根据所述多个实体群组的群组出错概率平均值,获取到第一实体群组和第二实体群组,所述第一实体群组为所述群组出错概率值大于所述群组出错概率平均值的实体群组,所述第二实体群组为所述群组出错概率值不大于所述群组出错概率平均值的实体群组;
在获取到所述第一实体群组和所述第二实体群组后,将所述多个实体程序化单元中所述出错概率值大于所述群组出错概率平均值的第二实体程序化单元分组至所述第二实体群组中,将所述多个实体程序化单元中所述出错概率值小于所述群组出错概率平均值的第一实体程序化单元分组至所述第一实体群组中。
3.根据权利要求1所述的分组管理方法,其特征在于,所述依据每一所述实体程序化单元的所述出错概率值将所述多个实体程序化单元分组至所述多个实体群组中,实现每一所述实体群组的所述群组出错概率值接近或相同的步骤中还包括:
依据每一所述实体程序化单元的所述出错概率值的大小将所述多个实体程序化单元进行排序;
依据每一所述实体程序化单元的所述出错概率值取得所述多个实体程序化单元的出错概率平均值;
根据所述出错概率平均值,将所述多个实体程序化单元中具有较大出错概率值的第一数目的第三实体程序化单元分组至所述多个实体群组中的第三实体群组,并且将所述多个实体程序化单元中具有较小出错概率值的第二数目的第四实体程序化单元分组至所述第三实体群组,使得所述第三实体群组的所述群组出错概率值接近或相同于所述出错概率平均值。
4.根据权利要求3所述的分组管理方法,其特征在于,所述第三实体程序化单元的所述第一数目相同或不同于所述第四实体程序化单元的所述第二数目。
5.根据权利要求1所述的分组管理方法,其特征在于,其中所述每一所述实体群组的群组出错概率值接近或相同为每一所述实体群组中的第二类实体程序化单元的数目相同,且分组为同一所述实体群组中的所述多个实体程序化单元属于不同的所述实体抹除单元。
6.根据权利要求1所述的分组管理方法,其特征在于,每一所述实体程序化单元的所述出错概率值表示为:
f(x,y,z)=h 公式1
其中,x为所述实体抹除单元的P/E次数,y为所述实体程序化单元的ECC值,z为所述实体程序化单元中数据被读取的次数,h为所述出错概率值。
7.根据权利要求1所述的分组管理方法,其特征在于,所述方法还包括:
将写入至所述多个实体群组中的所述多个实体程序化单元中的主机系统的数据进行逻辑运算以产生错误检查与校正码,其中所述错误检查与校正码用以对所述数据执行错误检查与校正操作,以恢复所述数据。
8.一种存储器存储装置,其特征在于,包括:
连接接口,用以连接主机系统;
存储器模块,包括多个实体抹除单元,每一所述实体抹除单元包括多个实体程序化单元;以及
存储器控制器,连接所述连接接口与所述存储器模块,
其中所述存储器控制器用以获取每一所述实体程序化单元的出错概率值;以及
所述存储器控制器还用以依据每一所述实体程序化单元的所述出错概率值将所述多个实体程序化单元分组至多个实体群组中,实现每一所述实体群组的群组出错概率值接近或相同。
9.根据权利要求8所述的存储器存储装置,其特征在于,所述存储器控制器还用以依据每一所述实体程序化单元的所述出错概率值将所述多个实体程序化单元分组至所述多个实体群组中,实现每一所述实体群组的所述群组出错概率值接近或相同的操作中,
所述存储器控制器还用以在完成一轮依据每一所述实体程序化单元的所述出错概率值将所述多个实体程序化单元分组至所述多个实体群组中的操作后,计算所述多个实体群组的群组出错概率值,以获取到所述多个实体群组的群组出错概率平均值,
所述存储器控制器还用以根据所述多个实体群组的群组出错概率平均值,获取到第一实体群组和第二实体群组,所述第一实体群组为所述群组出错概率值大于所述群组出错概率平均值的实体群组,所述第二实体群组为所述群组出错概率值不大于所述群组出错概率平均值的实体群组;
所述存储器控制器还用以在获取到所述第一实体群组和所述第二实体群组后,将所述多个实体程序化单元中所述出错概率值大于所述群组出错概率平均值的第二实体程序化单元分组至所述第二实体群组中,将所述多个实体程序化单元中所述出错概率值小于所述群组出错概率平均值的第一实体程序化单元分组至所述第一实体群组中。
10.根据权利要求8所述的存储器存储装置,其特征在于,所述存储器控制器还用以依据每一所述实体程序化单元的所述出错概率值将所述多个实体程序化单元分组至所述多个实体群组中,实现每一所述实体群组的所述群组出错概率值接近或相同的操作中,
所述存储器控制器还用以依据每一所述实体程序化单元的所述出错概率值的大小将所述多个实体程序化单元进行排序,
所述存储器控制器还用以依据每一所述实体程序化单元的所述出错概率值取得所述多个实体程序化单元的出错概率平均值,
所述存储器控制器还用以根据所述出错概率平均值,将所述多个实体程序化单元中具有较大出错概率值的第一数目的第三实体程序化单元分组至所述多个实体群组中的第三实体群组,并且将所述多个实体程序化单元中具有较小出错概率值的第二数目的第四实体程序化单元分组至所述第三实体群组,使得所述第三实体群组的所述群组出错概率值接近或相同于所述出错概率平均值。
11.根据权利要求10所述的存储器存储装置,其特征在于,所述第三实体程序化单元的所述第一数目相同或不同于所述第四实体程序化单元的所述第二数目。
12.根据权利要求8所述的存储器存储装置,其特征在于,其中所述每一所述实体群组的群组出错概率值接近或相同为每一所述实体群组中的第二类实体程序化单元的数目相同,且分组为同一所述实体群组中的所述多个实体程序化单元属于不同的所述实体抹除单元。
13.根据权利要求8所述的存储器存储装置,其特征在于,每一所述实体程序化单元的所述出错概率值表示为:
f(x,y,z)=h 公式1
其中,x为所述实体抹除单元的P/E次数,y为所述实体程序化单元的ECC值,z为所述实体程序化单元中数据被读取的次数,h为所述出错概率值。
14.根据权利要求8所述的存储器存储装置,其特征在于,所述存储器控制器还用以将写入至所述多个实体群组中的所述多个实体程序化单元中的主机系统的数据进行逻辑运算以产生错误检查与校正码,其中所述错误检查与校正码用以对所述数据执行错误检查与校正操作,以恢复所述数据。
15.一种存储器控制器,其特征在于,包括:
主机接口,用以连接主机系统;
存储器接口,用以连接存储器模块,其中所述存储器模块包括多个实体抹除单元,每一所述实体抹除单元包括多个实体程序化单元;
错误检查与校正电路;以及
存储器控制电路,连接所述主机接口、所述存储器接口与所述错误检查与校正电路,
其中所述存储器控制电路还用以获取每一所述实体程序化单元的出错概率值,以及
所述存储器控制电路还用以依据每一所述实体程序化单元的所述出错概率值将所述多个实体程序化单元分组至多个实体群组中,实现每一所述实体群组的群组出错概率值接近或相同。
16.根据权利要求15所述的存储器控制器,其特征在于,在所述存储器控制电路还用以依据每一所述实体程序化单元的所述出错概率值将所述多个实体程序化单元分组至所述多个实体群组中,实现每一所述实体群组的所述群组出错概率值接近或相同的操作中,
所述存储器控制电路还用以在完成一轮依据每一所述实体程序化单元的所述出错概率值将所述多个实体程序化单元分组至所述多个实体群组中的操作后,计算所述多个实体群组的群组出错概率值,以获取到所述多个实体群组的群组出错概率平均值,
所述存储器控制电路还用以根据所述多个实体群组的群组出错概率平均值,获取到第一实体群组和第二实体群组,所述第一实体群组为所述群组出错概率值大于所述群组出错概率平均值的实体群组,所述第二实体群组为所述群组出错概率值不大于所述群组出错概率平均值的实体群组,以及
所述存储器控制电路还用以在获取到所述第一实体群组和所述第二实体群组后,将所述多个实体程序化单元中所述出错概率值大于所述群组出错概率平均值的第二实体程序化单元分组至所述第二实体群组中,将所述多个实体程序化单元中所述出错概率值小于所述群组出错概率平均值的第一实体程序化单元分组至所述第一实体群组中。
17.根据权利要求15所述的存储器控制器,其特征在于,在所述存储器控制电路还用以依据每一所述实体程序化单元的所述出错概率值将所述多个实体程序化单元分组至所述多个实体群组中,实现每一所述实体群组的所述群组出错概率值接近或相同的操作中,
所述存储器控制电路还用以依据每一所述实体程序化单元的所述出错概率值的大小将所述多个实体程序化单元进行排序,
所述存储器控制电路还用以依据每一所述实体程序化单元的所述出错概率值取得所述多个实体程序化单元的出错概率平均值,以及
所述存储器控制电路还用以将所述实体程序化单元中具有较大出错概率值的第一数目的第三实体程序化单元分组至所述多个实体群组中的第三实体群组,并且将所述实体程序化单元中具有较小出错概率值的第二数目的第四实体程序化单元分组至所述第三实体群组,使得所述第三实体群组的所述群组出错概率值接近或相同于所述多个实体程序化单元的所述出错概率平均值。
18.根据权利要求17所述的存储器控制器,其特征在于,所述第三实体程序化单元的所述第一数目相同或不同于所述第四实体程序化单元的所述第二数目。
19.根据权利要求15所述的存储器控制器,其特征在于,其中所述每一所述实体群组的群组出错概率值接近或相同为每一所述实体群组中的第二类实体程序化单元的数目相同,且分组为同一所述实体群组中的所述多个实体程序化单元属于不同的所述实体抹除单元。
20.根据权利要求15所述的存储器控制器,其特征在于,每一所述实体程序化单元的所述出错概率值表示为:
f(x,y,z)=h 公式1
其中,x为所述实体抹除单元的P/E次数,y为所述实体程序化单元的ECC值,z为所述实体程序化单元中数据被读取的次数,h为所述出错概率值。
21.根据权利要求15所述的存储器控制器,其特征在于,所述存储器控制电路还用以将写入至所述多个实体群组中的所述多个实体程序化单元中的主机系统的数据进行逻辑运算以产生错误检查与校正码,其中所述错误检查与校正码用以对所述数据执行错误检查与校正操作,以恢复所述数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210790379.5A CN117409845A (zh) | 2022-07-06 | 2022-07-06 | 分组管理方法、存储器存储装置及存储器控制器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210790379.5A CN117409845A (zh) | 2022-07-06 | 2022-07-06 | 分组管理方法、存储器存储装置及存储器控制器 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117409845A true CN117409845A (zh) | 2024-01-16 |
Family
ID=89487627
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210790379.5A Pending CN117409845A (zh) | 2022-07-06 | 2022-07-06 | 分组管理方法、存储器存储装置及存储器控制器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117409845A (zh) |
-
2022
- 2022-07-06 CN CN202210790379.5A patent/CN117409845A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9583217B2 (en) | Decoding method, memory storage device and memory control circuit unit | |
US9768808B2 (en) | Method for modifying device-specific variable error correction settings | |
US20160350179A1 (en) | Decoding method, memory storage device and memory control circuit unit | |
US20160299812A1 (en) | Device-Specific Variable Error Correction | |
US9032278B2 (en) | Method for performing data shaping, and associated memory device and controller thereof | |
US20160299844A1 (en) | Mapping Logical Groups of Data to Physical Locations In Memory | |
US11907059B2 (en) | Abnormal power loss recovery method, memory control circuit unit, and memory storage device | |
US10997067B2 (en) | Data storing method, memory controlling circuit unit and memory storage device | |
CN111580741B (zh) | 数据写入方法、存储器控制电路单元与存储器存储装置 | |
US10872667B2 (en) | Decoding method, memory controlling circuit unit and memory storage device | |
US9996415B2 (en) | Data correcting method, memory control circuit unit, and memory storage device | |
CN112051963B (zh) | 数据写入方法、存储器控制电路单元以及存储器存储装置 | |
CN113724774B (zh) | 解码方法、存储器存储装置及存储器控制电路单元 | |
CN111796774B (zh) | 存储器控制方法、存储器存储装置及存储器控制器 | |
CN112799874B (zh) | 存储器控制方法、存储器存储装置及存储器控制电路单元 | |
CN106897023B (zh) | 数据读取方法、存储器控制电路单元及存储器储存装置 | |
US10922025B2 (en) | Nonvolatile memory bad row management | |
CN117409845A (zh) | 分组管理方法、存储器存储装置及存储器控制器 | |
CN113094307A (zh) | 映射信息管理方法、存储器存储装置及存储器控制器 | |
CN117632579B (zh) | 存储器控制方法和存储器存储装置 | |
CN117409844A (zh) | 数据恢复方法、存储器存储装置及存储器控制器 | |
CN111143253A (zh) | 数据储存方法、存储器控制电路单元以及存储器储存装置 | |
US10936248B2 (en) | Data writing method with verifying a part of data, memory controlling circuit unit and memory storage device | |
TWI777087B (zh) | 資料管理方法、記憶體控制電路單元以及記憶體儲存裝置 | |
CN111258791B (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 |