CN110874281A - 存储器管理方法以及存储控制器 - Google Patents
存储器管理方法以及存储控制器 Download PDFInfo
- Publication number
- CN110874281A CN110874281A CN201811001141.XA CN201811001141A CN110874281A CN 110874281 A CN110874281 A CN 110874281A CN 201811001141 A CN201811001141 A CN 201811001141A CN 110874281 A CN110874281 A CN 110874281A
- Authority
- CN
- China
- Prior art keywords
- memory
- word line
- golay
- abnormal
- circuit
- 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.)
- Granted
Links
- 230000015654 memory Effects 0.000 title claims abstract description 380
- 238000007726 management method Methods 0.000 title claims abstract description 66
- 230000002159 abnormal effect Effects 0.000 claims abstract description 104
- 238000000034 method Methods 0.000 claims abstract description 15
- 230000008878 coupling Effects 0.000 claims 2
- 238000010168 coupling process Methods 0.000 claims 2
- 238000005859 coupling reaction Methods 0.000 claims 2
- 230000005856 abnormality Effects 0.000 description 18
- 238000010586 diagram Methods 0.000 description 12
- 230000004044 response Effects 0.000 description 12
- 230000005540 biological transmission Effects 0.000 description 11
- 238000013507 mapping Methods 0.000 description 10
- 238000013523 data management Methods 0.000 description 8
- 238000001514 detection method Methods 0.000 description 8
- 238000012795 verification Methods 0.000 description 8
- 230000005055 memory storage Effects 0.000 description 6
- 238000009826 distribution Methods 0.000 description 4
- 238000012937 correction Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000002922 simulated annealing Methods 0.000 description 2
- 208000011580 syndromic disease Diseases 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000009194 climbing Effects 0.000 description 1
- 238000011478 gradient descent method Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- 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/1012—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 codes or arrangements adapted for a specific type of error
-
- 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)
- Read Only Memory (AREA)
Abstract
本发明提供一种存储器管理方法与使用所述方法的存储控制器。所述方法包括读取目标字线以识别对应所述目标字线的多个存储单元的多个原始葛雷码索引值;对所述目标字线的原始数据执行解码操作,以识别对应该些存储单元的多个解码后葛雷码索引值;根据该些原始葛雷码索引值与该些解码后葛雷码索引值来计算对应该些存储单元的多个葛雷码绝对偏离值;以及根据该些葛雷码绝对偏离值来识别该些存储单元中的一或多个异常存储单元,并且记录所述一或多个异常存储单元至异常存储单元表,其中所述一或多个异常存储单元的葛雷码绝对偏离值大于偏离门槛值。
Description
技术领域
本发明涉及一种存储器管理方法,尤其涉及一种适用于配置有可复写式非易失性存储器模块的存储装置的存储器管理方法与存储控制器。
背景技术
一般来说,可复写式非易失性存储器模块具有多个实体区块,每一实体区块会具有多个存储单元(Memory Cells),并且所述多个存储单元可构成多个字线(Word-Lines)(每个实体区块具有所述多个字线)。可复写式非易失性存储器模块中的所述多个存储单元会随着使用次数等因素而导致损坏,进而导致一或多个实体区块不能再被使用。传统上,可复写式非易失性存储器模块的控制器会检测或是判定此些不可再被使用的实体区块为坏实体区块,并且不使用所述坏实体区块来存储数据。然而,每个被判定的坏实体区块中的多个字线并非皆是损坏的。如此一来,会因为坏实体区块的判定而过度减少了可复写式非易失性存储器模块整体的可用空间。
举例来说,假设一实体区块经由传统作法被判定/标记为坏实体区块而不可存储数据并且其存在有好的字线(没有损坏的字线,并且可适当地存储数据)。在此情况下,所述实体区块的好的字线会因为所述实体区块已被判定/标记为坏实体区块而不能被使用,导致了所述实体区块的好的字线不可被用于存储数据,进而浪费了位于所述坏实体区块中的对应所述好的字线的可用空间。
因此,如何较细致地判断可复写式非易失性存储器模块的一个字线中的多个存储单元是否损坏(异常的),且根据所判定的结果来进一步地执行对应的后续管理操作,以改善因为异常存储单元所导致的解码错误问题且提升可复写式非易失性存储器模块的可用空间的利用效率,是本领域人员研究的课题之一。
发明内容
本发明提供一种存储器管理方法与存储控制器,可经由对可复写式非易失性存储器模块的多个实体区块的多个字线中的字线进行解码操作,以经由比较解码前后的数据来识别所述字线中的所有存储单元的葛雷码偏离值,进而利用葛雷码偏离值来有效率地识别所述字线中的异常存储单元。
本发明的一实施例提供适用于可复写式非易失性存储器模块的一种存储器管理方法,其中该非易失性存储器模块具有多个字线,并且每一该些字线由多个存储单元构成,其中该些存储单元中的每一个存储单元用以被程序化以存储对应不同的多个葛雷码(GrayCode)的其中之一的比特值。所述方法包括:读取目标字线,以获得原始数据,并且根据所述原始数据来识别对应所述目标字线的多个存储单元的多个原始葛雷码索引值;对所述原始数据执行解码操作,以获得解码后数据,并且根据所述解码后数据来识别对应该些存储单元的多个解码后葛雷码索引值;根据该些原始葛雷码索引值与该些解码后葛雷码索引值来计算对应该些存储单元的多个葛雷码绝对偏离值;以及根据该些葛雷码绝对偏离值来识别该些存储单元中的一或多个异常存储单元,并且记录所述一或多个异常存储单元至异常存储单元表,其中所述一或多个异常存储单元的葛雷码绝对偏离值大于偏离门槛值。
本发明的一实施例提供用于控制配置有可复写式非易失性存储器模块的存储装置的一种存储控制器,其中所述非易失性存储器模块具有多个字线,并且每一所述多个字线由多个存储单元构成,其中所述多个存储单元中的每一个存储单元用以被程序化以存储对应不同的多个葛雷码(Gray Code)的其中之一的比特值。所述存储控制器包括连接接口电路、存储器接口控制电路、字线管理电路单元、处理器、错误检查与校正电路。连接接口电路用以耦接至主机系统。存储器接口控制电路用以耦接至所述可复写式非易失性存储器模块。错误检查与校正电路用以进行解码操作。处理器耦接至所述连接接口电路、所述存储器接口控制电路、所述字线管理电路单元与所述错误检查与校正电路。其中所述处理器用以指示所述存储器接口控制电路读取目标字线,以获得原始数据,其中所述字线管理电路单元用以根据所述原始数据来识别对应所述目标字线的多个存储单元的多个原始葛雷码索引值。所述处理器还用以指示所述错误检查与校正电路对所述原始数据执行所述解码操作,以获得解码后数据,其中所述字线管理电路单元还用以根据所述解码后数据来识别对应所述多个存储单元的多个解码后葛雷码索引值。所述字线管理电路单元还用以根据所述多个原始葛雷码索引值与所述多个解码后葛雷码索引值来计算对应所述多个存储单元的多个葛雷码绝对偏离值,其中所述字线管理电路单元还用以根据所述多个葛雷码绝对偏离值来识别所述多个存储单元中的一或多个异常存储单元,并且记录所述一或多个异常存储单元至异常存储单元表,其中所述一或多个异常存储单元的葛雷码绝对偏离值大于偏离门槛值。
基于上述,本发明实施例所提供的存储器管理方法以及存储控制器,可执行对存储装置的可复写式非易失性存储器模块中的字线检验操作,以根据所读取的目标字线的多个存储单元的原始比特值与解码后比特值来获得对应的多个葛雷码偏离值,并且根据所述多个葛雷码偏离值来判断目标字线是否具有异常存储单元。如此一来,可有效地且精细地判断可复写式非易失性存储器模块的多个字线的每个存储单元是否为异常存储单元,并且记录异常存储单元的位置。如此一来,可让存储控制器降低存储装置的可复写式非易失性存储器模块的异常存储单元所导致的负面效应,或避免使用具有过多异常存储单元的字线,进而改善了存储装置的整体效能。
为让本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合附图作详细说明如下。
附图说明
图1为根据本发明的一实施例所示出的主机系统及存储装置的方块示意图。
图2为根据本发明的一实施例所示出的存储器管理方法的流程图。
图3为根据本发明的一实施例所示出的葛雷码与对应的葛雷码索引值的示意图。
图4为根据本发明的一实施例所示出的字线的示意图。
图5为根据本发明的一实施例所示出识别葛雷码索引值的示意图。
图6A为根据本发明的一实施例所示出计算葛雷码绝对偏离值的示意图。
图6B为根据本发明的一实施例所示出的异常存储单元表的示意图。
图7为根据本发明的一实施例所示出的解码方法的流程图。
图8为根据本发明的一实施例所示出的存储器管理方法的流程图。
附图标记说明:
10:主机系统;
20:存储装置;
110、211:处理器;
120:主机存储器;
130:数据传输接口电路;
210:存储控制器;
212:数据管理电路;
213:存储器接口控制电路;
214:错误检查与校正电路;
215:字线管理电路单元;
2151:葛雷码偏离检测电路;
2152:异常管理电路;
216:缓冲存储器;
217:电源管理电路;
220:可复写式非易失性存储器模块;
230:连接接口电路;
S21、S23、S25、S27:存储器管理方法的流程步骤;
VR(1):读取电压组;
R11~R17:读取电压;
GI:葛雷码索引值;
BL1~BL5:比特线;
C11~C15:存储单元;
WL1、WL2、WLN:字线;
500、510、600、601、610:表;
A51、A61~A65、A66、A67、A68:箭头;
S71、S72、S73、S74、S75、S76、S77:解码方法的流程步骤;
S81、S83、S85、S87、S89:存储器管理方法的流程步骤。
具体实施方式
在本实施例中,存储装置包括可复写式非易失性存储器模块(rewritable non-volatile memory module)与存储装置控制器(也称,存储控制器或存储控制电路)。此外,存储装置是与主机系统一起使用,以使主机系统可将数据写入至存储装置或从存储装置中读取数据。
图1是根据本发明的一实施例所示出的主机系统及存储装置的方块示意图。
请参照图1,主机系统(Host System)10包括处理器(Processor)110、主机存储器(Host Memory)120及数据传输接口电路(Data Transfer Interface Circuit)130。在本实施例中,数据传输接口电路130耦接(也称,电性连接)至处理器110与主机存储器120。在另一实施例中,处理器110、主机存储器120与数据传输接口电路130之间利用系统总线(System Bus)彼此耦接。
存储装置20包括存储控制器(Storage Controller)210、可复写式非易失性存储器模块(Rewritable Non-Volatile Memory Module)220及连接接口电路(ConnectionInterface Circuit)230。其中,存储控制器210包括处理器211、数据管理电路(DataManagement Circuit)212与存储器接口控制电路(Memory Interface Control Circuit)213。
在本实施例中,主机系统10是通过数据传输接口电路130与存储装置20的连接接口电路230耦接至存储装置20来进行数据的存取操作。例如,主机系统10可经由数据传输接口电路130将数据存储至存储装置20或从存储装置20中读取数据。
在本实施例中,处理器110、主机存储器120及数据传输接口电路130可设置在主机系统10的主机板上。数据传输接口电路130的数目可以是一或多个。通过数据传输接口电路130,主机板可以经由有线或无线方式耦接至存储装置20。存储装置20可例如是U盘、存储卡、固态硬盘(Solid State Drive,SSD)或无线存储器存储装置。无线存储器存储装置可例如是近距离无线通信(Near Field Communication,NFC)存储器存储装置、无线传真(WiFi)存储器存储装置、蓝牙(Bluetooth)存储器存储装置或低功耗蓝牙存储器存储装置(例如,iBeacon)等以各式无线通信技术为基础的存储器存储装置。此外,主机板也可以通过系统总线耦接至全球定位系统(Global Positioning System,GPS)模块、网络接口卡、无线传输装置、键盘、屏幕、喇叭等各式I/O装置。
在本实施例中,数据传输接口电路130与连接接口电路230是相容于高速周边零件连接接口(Peripheral Component Interconnect Express,PCI Express)标准的接口电路。并且,数据传输接口电路130与连接接口电路230之间是利用快速非易失性存储器接口标准(Non-Volatile Memory express,NVMe)通信协定来进行数据的传输。
然而,必须了解的是,本发明不限于此,数据传输接口电路130与连接接口电路230也可以是符合并列先进附件(Parallel Advanced Technology Attachment,PATA)标准、电气和电子工程师协会(Institute of Electrical and Electronic Engineers,IEEE)1394标准、序列先进附件(Serial Advanced Technology Attachment,SATA)标准、通用序列总线(Universal Serial Bus,USB)标准、SD接口标准、超高速一代(Ultra High Speed-I,UHS-I)接口标准、超高速二代(Ultra High Speed-II,UHS-II)接口标准、记忆棒(MemoryStick,MS)接口标准、多芯片封装(Multi-Chip Package)接口标准、多媒体存储卡(MultiMedia Card,MMC)接口标准、eMMC接口标准、通用快闪存储器(Universal Flash Storage,UFS)接口标准、eMCP接口标准、CF接口标准、整合式驱动电子接口(Integrated DeviceElectronics,IDE)标准或其他适合的标准。此外,在另一实施例中,连接接口电路230可与存储控制器210封装在一个芯片中,或者连接接口电路230是布设于包含存储控制器210的芯片外。
在本实施例中,主机存储器120用以暂存处理器110所执行的指令或数据。例如,在本范例实施例中,主机存储器120可以是动态随机存取存储器(Dynamic Random AccessMemory,DRAM)、静态随机存取存储器(Static Random Access Memory,SRAM)等。然而,必须了解的是,本发明不限于此,主机存储器120也可以是其他适合的存储器。
存储控制器210用以执行以硬件型式或固件型式实作的多个逻辑门或控制指令并且根据主机系统10的指令在可复写式非易失性存储器模块220中进行数据的写入、读取与抹除等运作。
更详细来说,存储控制器210中的处理器211为具备运算能力的硬件,其用以控制存储控制器210的整体运作。具体来说,处理器211具有多个控制指令,并且在存储装置20运作时,此些控制指令会被执行以进行数据的写入、读取与抹除等运作。
值得一提的是,在本实施例中,处理器110与处理器211例如是中央处理单元(Central Processing Unit,CPU)、微处理器(micro-processor)、或是其他可程序化的处理单元(Microprocessor)、数字信号处理器(Digital Signal Processor,DSP)、可程序化控制器、特殊应用集成电路(Application Specific Integrated Circuits,ASIC)、可程序化逻辑装置(Programmable Logic Device,PLD)或其他类似电路元件,本发明并不限于此。
在一实施例中,存储控制器210还具有只读存储器(未示出)及随机存取存储器(未示出)。特别是,此只读存储器具有开机码(boot code),并且当存储控制器210被致能时,处理器211会先执行此开机码来将存储于可复写式非易失性存储器模块220中的控制指令载入至存储控制器210的随机存取存储器中。之后,处理器211会运转此些控制指令以进行数据的写入、读取与抹除等运作。在另一实施例中,处理器211的控制指令也可以程序码型式存储于可复写式非易失性存储器模块220的特定区域,例如,可复写式非易失性存储器模块220中专用于存放系统数据的实体存储单元中。
在本实施例中,如上所述,存储控制器210还包括数据管理电路212与存储器接口控制电路213。应注意的是,存储控制器210各部件所执行的操作也可视为存储控制器210所执行的操作。
其中,数据管理电路212耦接至处理器211、存储器接口控制电路213与连接接口电路230。数据管理电路212用以接受处理器211的指示来进行数据的传输。例如,经由连接接口电路230从主机系统10(如,主机存储器120)读取数据,并且将所读取的数据经由存储器接口控制电路213写入至可复写式非易失性存储器模块220中(如,根据来自主机系统10的写入指令来进行写入操作)。又例如,经由存储器接口控制电路213从可复写式非易失性存储器模块220的一或多个实体单元中读取数据(数据可读取自一或多个实体单元中的一或多个存储单元),并且将所读取的数据经由连接接口电路230写入至主机系统10(如,主机存储器120)中(如,根据来自主机系统10的读取指令来进行读取操作)。在另一实施例中,数据管理电路212也可整合至处理器211中。
存储器接口控制电路213用以接受处理器211的指示,配合数据管理电路212来进行对于可复写式非易失性存储器模块220的写入(也称,程序化,Programming)操作、读取操作或抹除操作。
举例来说,处理器211可执行写入指令序列,以指示存储器接口控制电路213将数据写入至可复写式非易失性存储器模块220中;处理器211可执行读取指令序列,以指示存储器接口控制电路213从可复写式非易失性存储器模块220的对应读取指令的一或多个实体单元(也称,目标实体单元)中读取数据;处理器211可执行抹除指令序列,以指示存储器接口控制电路213对可复写式非易失性存储器模块220进行抹除操作。写入指令序列、读取指令序列及抹除指令序列可各别包括一或多个程序码或指令码并且用以指示对可复写式非易失性存储器模块220执行相对应的写入、读取及抹除等操作。在一实施例中,处理器211还可以下达其他类型的指令序列给存储器接口控制电路213,以对可复写式非易失性存储器模块220执行相对应的操作。
此外,欲写入至可复写式非易失性存储器模块220的数据会经由存储器接口控制电路213转换为可复写式非易失性存储器模块220所能接受的格式。具体来说,若处理器211要存取可复写式非易失性存储器模块220,处理器211会传送对应的指令序列给存储器接口控制电路213以指示存储器接口控制电路213执行对应的操作。例如,这些指令序列可包括指示写入数据的写入指令序列、指示读取数据的读取指令序列、指示抹除数据的抹除指令序列、以及用以指示各种存储器操作(例如,改变预设读取电压组的多个预设读取电压值以进行读取操作,或执行垃圾回收程序等等)的相对应的指令序列。这些指令序列可包括一或多个信号,或是在总线上的数据。这些信号或数据可包括指令码或程序码。例如,在读取指令序列中,会包括读取的识别码、存储器地址等信息。
可复写式非易失性存储器模块220是耦接至存储控制器210(存储器接口控制电路213)并且用以存储主机系统10所写入的数据。可复写式非易失性存储器模块220可以是单阶存储单元(Single Level Cell,SLC)NAND型快闪存储器模块(即,一个存储单元中可存储1个比特的快闪存储器模块)、多阶存储单元(Multi Level Cell,MLC)NAND型快闪存储器模块(即,一个存储单元中可存储2个比特的快闪存储器模块)、三阶存储单元(Triple LevelCell,TLC)NAND型快闪存储器模块(即,一个存储单元中可存储3个比特的快闪存储器模块)、四阶存储单元(Quadruple Level Cell,QLC)NAND型快闪存储器模块(即,一个存储单元中可存储4个比特的快闪存储器模块)、三维NAND型快闪存储器模块(3D NAND flashmemory module)或垂直NAND型快闪存储器模块(Vertical NAND flash memory module)等其他快闪存储器模块或其他具有相同特性的存储器模块。可复写式非易失性存储器模块220中的存储单元是以阵列的方式设置。
在本实施例中,可复写式非易失性存储器模块220具有多个字线,其中所述多个字线的每一个字线包括多个存储单元。同一条字线上的多个存储单元会组成一或多个实体程序化单元(实体页面)。此外,多个实体程序化单元可组成一个实体单元(实体区块或实体抹除单元)。
存储控制器210会配置多个逻辑单元给可复写式非易失性存储器模块220。主机系统10是通过所配置的逻辑单元来存取存储在多个实体单元中的使用者数据。在此,每一个逻辑单元可以是由一或多个逻辑地址组成。例如,逻辑单元可以是逻辑区块(LogicalBlock)、逻辑页面(Logical Page)或是逻辑扇区(Logical Sector)。一个逻辑单元可以是映射至一或多个实体单元,其中实体单元可以是一或多个实体地址、一或多个实体扇、一或多个实体程序化单元或者一或多个实体抹除单元。在本实施例中,逻辑单元为逻辑区块,并且逻辑子单元为逻辑页面。每一逻辑单元具有多个逻辑子单元。在本实施例中,逻辑子单元的地址也称为逻辑地址。
此外,存储控制器210会建立逻辑转实体地址映射表(Logical To Physicaladdress mapping table)与实体转逻辑地址映射表(Physical To Logical addressmapping table),以记录配置给可复写式非易失性存储器模块220的逻辑地址与实体地址之间的映射关系。换言之,存储控制器210可通过逻辑转实体地址映射表来查找逻辑地址所映射的实体地址,并且存储控制器210可通过实体转逻辑地址映射表来查找实体地址所映射的逻辑地址。然而,上述有关逻辑地址与实体地址之间的映射关系的技术概念为本领域技术人员的惯用技术手段,不再赘述于此。在存储控制器的一般运作中,所述逻辑转实体地址映射表与实体转逻辑地址映射表可被维护于缓冲存储器216中。
在本实施例中,错误检查与校正电路214是耦接至处理器211并且用以执行错误检查与校正程序以确保数据的正确性。具体来说,当处理器211从主机系统10中接收到写入指令时,错误检查与校正电路214会为对应此写入指令的数据产生对应的错误更正码(errorcorrecting code,ECC)和/或错误检查码(error detecting code,EDC)(也称,编码操作),并且处理器211会将对应此写入指令的数据与对应的错误更正码和/或错误检查码写入至可复写式非易失性存储器模块220中。之后,当处理器211从可复写式非易失性存储器模块220中读取数据时会同时读取此数据对应的错误更正码和/或错误检查码,并且错误检查与校正电路214会依据此错误更正码和/或错误检查码对所读取的数据执行错误检查与校正程序(也称,解码操作),以在成功完成解码操作后,获得正确的解码后数据及对应的错误比特数目(Error bits value)。
在一实施例中,存储控制器210还包括缓冲存储器216与电源管理电路217。缓冲存储器216是耦接至处理器211并且用以暂存来自于主机系统10的数据与指令、来自于可复写式非易失性存储器模块220的数据或其他用以管理存储装置20的系统数据,以让处理器211可快速地从缓冲存储器216中存取所述数据、指令或系统数据。电源管理电路217是耦接至处理器211并且用以控制存储装置20的电源。
在本实施例中,字线管理电路单元215包括葛雷码偏离检测电路2151与异常管理电路2152。所述字线管理电路单元215用以实现本实施例所提供的存储器管理方法(也称,字线检验方法)。应注意的是,在一实施例中,上述字线管理电路单元215也可整合至处理器211中,以使处理器211可实行本实施例所提供的存储器管理方法。另外,在另一实施例中,字线管理电路单元215也可以固件或软件的方式被视作为字线管理电路单元模块,被处理器211所存取且执行,以实现本发明所提供的存储器管理方法。
在本实施例中,可复写式非易失性存储器模块220的多个字线中的两个或两个以上彼此相邻的字线的相邻的多个存储单元之间会有机率会发生存储单元短路(MemoryCell Short)现象或是存储单元断路(Memory Cell Open,or Memory Cell Broken)现象。
举例来说,若字线的一个存储单元(也称,异常存储单元)发生存储单元短路现象,此异常存储单元的对应所存储的比特值的临界电压会被施加至邻近存储单元(所短路的存储单元)的程序化电压所影响,而导致所存储的比特值发生错误。又例如,若字线的一个存储单元(也称,异常存储单元)发生存储单元断路现象,此异常存储单元的临界电压并不能被预计施加的程序化电压所正确地程序化,而导致所存储的比特值发生错误。也就是说,这两种异常存储单元都会让所存储的比特值(数据)发生错误。当一个字线的异常存储单元的数量增多时,也会导致此字线所存储的数据的错误比特数目增加。基此,本实施例所提供的存储器管理方法与对应的字线管理电路单元215,可判断每个字线是否具有异常存储单元,并且识别(与记录)所判定的异常存储单元的位置与总数。以下会通过图2来详细说明本实施例所提供的存储器管理方法与对应的字线管理电路单元215的细节。
图2为根据本发明的一实施例所示出的存储器管理方法的流程图。请参照图2,在步骤S21中,处理器211指示存储器接口控制电路213读取目标字线,以获得原始数据,并且字线管理电路单元215(或葛雷码偏离检测电路2151)根据所述原始数据来识别对应所述目标字线的多个存储单元的多个原始葛雷码索引值。
具体来说,在本实施例中,处理器211可在特定时间点来选择可复写式非易失性存储器模块220的多个字线中其中之一个字线(也称,目标字线)来执行字线检验操作。所述特定时间点例如是下列时间点的其中之一或其组合:(1)从目标字线读取数据且异常存储单元表中没有对应目标字线的记录时;(2)存储装置20闲置时;(3)目标字线的错误比特数目大于错误比特门槛值时;(4)当对应存储装置20的所有实体区块的平均抹除次数值达到检验次数参数的倍数时,将所有存储有数据的字线设定为目标字线,并且一个一个地执行字线检验操作;(5)目标字线的抹除次数值(或写入次数)达到检验次数参数的倍数时。应注意的是,被选择的目标字线是已存储数据的字线。
在本实施例中,如上所述,目标字线的存储有数据。具体来说,可复写式非易失性存储器模块220的每个字线的多个存储单元用以被程序化以存储对应不同的多个葛雷码(Gray Code)的其中之一的比特值,并且所述葛雷码的总数为N。N的数值是根据可复写式非易失性存储器模块220的每个存储单元可存储的比特的总数(M)而被决定。N为2的M次方。例如,若可复写式非易失性存储器模块220为TLC(即,M等于3),则N=8;若可复写式非易失性存储器模块220为MLC(即,M等于2),则N=4;若可复写式非易失性存储器模块220为SLC(即,M等于1),则N=2;若可复写式非易失性存储器模块220为QLC(即,M等于4),则N=16。以下先通过图3来说明本实施例所述的葛雷码与对应的葛雷码索引值的细节。
图3为根据本发明的一实施例所示出的葛雷码与对应的葛雷码索引值的示意图。请参照图3,本实施例是以三阶存储单元NAND型快闪存储器模块做例子来说明,其中N等于8(即,23)。三阶存储单元NAND型快闪存储器模块的每一存储单元具有三个实体页面来分别存储比特数据,所述每一存储单元包括各自可存储一个比特值的下实体页面(LowerPhysical Page,L)、中实体页面(Middle Physical Page,M)与上实体页面(UpperPhysical Page,U)。假设处理器211经由第一读取电压组VR(1)的多个读取电压R11~R17读取三阶存储单元NAND型快闪存储器模块的目标字线的多个存储单元(多个目标存储单元),并且藉此识别出所述多个存储单元所存储的不同比特值(分别对应不同葛雷码的比特值)。每一存储单元中的栅极电压可依据第一读取电压组中的读取电压R11~R17而区分为8种葛雷码,如“L:1M:1U:1”、“L:0M:1U:1”、“L:0M:0U:1”、“L:0M:0U:0”、“L:0M:1U:0”、“L:1M:1U:0”、“L:1M:0U:0”与“L:1M:0U:1”的8种葛雷码(“L:”表示下实体页面的比特值;“M:”表示中实体页面的比特值;“U:”表示上实体页面的比特值)。所述8种葛雷码也可表示为“111”、“011”、“001”、“000”、“010”、“110”、“100”与“101”,8种比特值组合,其中每个比特值组合中的比特值的先后排序是依据下、中、上实体页面的顺序。也就是说,经由分别施加第一读取电压组VR(1)的不同电压值的读取电压R11~R17至目标字线的一个存储单元上,处理器211可根据判断该存储单元的通道是否导通而分别判定出该存储单元所存储的比特值(也称,比特数据或读取比特值)对应不同的多个葛雷码(“111”、“011”、“001”、“000”、“010”、“110”、“100”或“101”)的其中之一(即,经由使用第一读取电压组VR(1)来从目标字线的一个存储单元读取出读取比特值)。例如,读取电压R11可区分葛雷码“111”与葛雷码“011”(读取电压R11的左方是对应葛雷码“111”的临界电压分布;读取电压R11的右方是对应葛雷码“011”的临界电压分布)。
在本实施例中,所述多个葛雷码会被分别赋予多个葛雷码索引值GI。例如,葛雷码索引值GI可依据所述多个葛雷码所对应的临界电压分布的大小,由小至大排列(也称,第一顺序),其中,两个相邻的葛雷码索引值GI的绝对差值为1。即,如图3所示出,葛雷码“111”的葛雷码索引值GI为“1”;葛雷码“011”的葛雷码索引值GI为“2”;葛雷码“001”的葛雷码索引值GI为“3”;葛雷码“000”的葛雷码索引值GI为“4”;葛雷码“010”的葛雷码索引值GI为“5”;葛雷码“110”的葛雷码索引值GI为“6”;葛雷码“100”的葛雷码索引值GI为“7”;葛雷码“101”的葛雷码索引值GI为“8”。然而,本发明的葛雷码索引值的设定并不限于上述方式,例如,在另一实施例中,葛雷码索引值GI可依据所述多个葛雷码所对应的临界电压分布的大小,由大至小排列(也称,第二顺序)。此外,又另一实施例中,葛雷码索引值为依据第一顺序排列,并且相邻的葛雷码索引值之间的绝对差值被设定为大于1的正整数。
请在回到图2,当经由读取目标字线而获得原始数据(Raw data/Channel data)后,字线管理电路单元215(或葛雷码偏离检测电路2151)可根据所述原始数据的多个原始比特值来识别目标字线的多个存储单元所存储的葛雷码(也可称为,原始葛雷码),并且根据识别出对应的葛雷码索引值(也称,原始葛雷码索引值)。应注意的是,由于原始数据尚未经过解码操作,因此,原始数据的所述多个原始比特值的正确并不能被保证。
接着,在步骤S23中,处理器211指示错误检查与校正电路214经由对应所述原始数据的错误检查与校正码来对所述原始数据执行解码操作,以获得解码后数据,并且字线管理电路单元215(或葛雷码偏离检测电路2151)根据所述解码后数据来识别对应所述多个存储单元的多个解码后葛雷码索引值。具体来说,在获得原始数据后,处理器211指示错误检查与校正电路214对所述原始数据执行解码操作,以在解码操作成功后获得解码后数据(Decoded data)。所述解码后数据中的多个解码后比特值会是正确的数据。相似步骤S21,字线管理电路单元215(或葛雷码偏离检测电路2151)可根据所述解码后数据的多个解码后比特值来识别目标字线的多个存储单元所存储的葛雷码(也可称为,解码后葛雷码),并且根据识别出对应的葛雷码索引值(也称,解码后葛雷码索引值)。以下利用图4与图5来举例说明。
图4为根据本发明的一实施例所示出的字线的示意图。图5为根据本发明的一实施例所示出识别葛雷码索引值的示意图。
举例来说,请参照图4,假设目标字线WL1上具有多个存储单元C11~C15,其中所述多个存储单元C11~C15分别位于字线WL1与比特线BL1~BL5的交汇处。在施加读取电压来读取目标字线WL1时,对应所述多个存储单元C11~C15所存储的原始比特值的原始葛雷码以及对应所述多个原始葛雷码的原始葛雷码索引值会被识别。此外,在经过解码操作后,对应所述多个存储单元C11~C15所存储的解码后数据的解码后比特值的解码后葛雷码以及对应所述多个解码后葛雷码的解码后葛雷码索引值会被识别。
请参照图5,假设对应存储单元C11~C15的多个原始比特值的多个原始葛雷码分别是“111”、“011”、“001”、“000”、“010”,对应存储单元C11~C15的多个解码后比特值的多个解码后葛雷码分别是“011”、“011”、“011”、“111”、“010”(如表500所示)。字线管理电路单元215(或葛雷码偏离检测电路2151)可识别出(如箭头A51)对应存储单元C11~C15的多个原始葛雷码索引值“1”、“2”、“3”、“4”、“5”,以及对应存储单元C11~C15的多个解码后葛雷码索引值“2”、“2”、“2”、“1”、“5”(如,表510所示)。
请再回到图2,接着,在步骤S25中,字线管理电路单元215(或葛雷码偏离检测电路2151)根据所述多个原始葛雷码索引值与所述多个解码后葛雷码索引值来计算对应所述多个存储单元的多个葛雷码绝对偏离值。具体来说,字线管理电路单元215(或葛雷码偏离检测电路2151)将所述多个原始葛雷码索引值与所述多个解码后葛雷码索引值之间的绝对差值作为所述多个葛雷码绝对偏离值。例如,字线管理电路单元215(或葛雷码偏离检测电路2151)将存储单元的原始葛雷码索引值减去该存储单元的解码后葛雷码索引值所获得的差值的绝对值作为该存储单元的葛雷码绝对偏离值。又例如,字线管理电路单元215(或葛雷码偏离检测电路2151)将存储单元的解码后葛雷码索引值减去该存储单元的原始葛雷码索引值所获得的差值的绝对值作为该存储单元的葛雷码绝对偏离值。
图6A为根据本发明的一实施例所示出计算葛雷码绝对偏离值的示意图。请参照图6A,接续图5的例子,在识别出对应存储单元C11~C15的多个原始葛雷码索引值“1”、“2”、“3”、“4”、“5”,以及对应存储单元C11~C15的多个解码后葛雷码索引值“3”、“2”、“2”、“1”、“5”后,字线管理电路单元215(或葛雷码偏离检测电路2151)分别对存储单元C11~C15来计算差值,即,葛雷码偏离值(如,箭头A61~A65所示)。所获得的存储单元C11~C15的葛雷码偏离值为“2”、“0”、“-1”、“-3”、“0”(如,表600所示)。字线管理电路单元215(或葛雷码偏离检测电路2151)会进一步计算(如,箭头A66所示)所述葛雷码偏离值的绝对值(即,葛雷码绝对偏离职)为“2”、“0”、“1”、“3”、“0”(如,表601所示)。
请再回到图2,在获得所述多个存储单元的所述多个葛雷码绝对偏离值后,接续至步骤S27,字线管理电路单元215(或异常管理电路2152)根据所述多个葛雷码绝对偏离值来识别所述多个存储单元中的一或多个异常存储单元,并且记录所述一或多个异常存储单元至异常存储单元表,其中所述一或多个异常存储单元的葛雷码绝对偏离值大于偏离门槛值。
举例来说,请再回到图6A,假设偏离门槛值为1,字线管理电路单元215(或异常管理电路2152)会根据所获得的多个葛雷码绝对偏离值来判断所述多个存储单元是否为异常存储单元。具体来说,反应于大于偏离门槛值的葛雷码绝对偏离值,字线管理电路单元215(或异常管理电路2152)会判定对应此葛雷码绝对偏离值的存储单元为异常存储单元。如箭头A67所示,在偏离门槛值为1的情况下,存储单元C11的葛雷码绝对偏离值为大于1的“2”,字线管理电路单元215(或异常管理电路2152)会判定存储单元C11为异常存储单元。如箭头A68所示,在偏离门槛值为1的情况下,存储单元C14的葛雷码绝对偏离值为大于1的“3”,字线管理电路单元215(或异常管理电路2152)会判定存储单元C14为异常存储单元。
应注意的是,在本实施例中,异常管理电路2152更可经由比较一个存储单元的葛雷码偏离值与断路偏离门槛值来判断所述一个存储单元是否具有断路(open circuit)现象;以及经由比较一个存储单元的葛雷码偏离值与短路偏离门槛值来判断所述一个存储单元是否具有短路(short circuit)现象。所述断路偏离门槛值例如为正整数,1;所述短路偏离门槛值例如为负数,-1。
举例来说,假设一个存储单元的葛雷码偏离值为正值。异常管理电路2151可进一步比较葛雷码偏离值与所述断路偏离门槛值。反应于所述一个存储单元的葛雷码偏离值大于所述断路偏离门槛值,异常管理电路2151判定所述一个存储单元具有断路现象(如,图6A所示出的存储单元C11)。又例如,假设一个存储单元的葛雷码偏离值为负值。异常管理电路2151可进一步比较葛雷码偏离值与所述短路偏离门槛值。反应于所述一个存储单元的葛雷码偏离值小于所述短路偏离门槛值,异常管理电路2151判定所述一个存储单元具有短路现象(如,图6A所示出的存储单元C14)。
在判定出存储单元C11、C14异常存储单元后,字线管理电路单元215(或异常管理电路2152)可利用异常存储单元表来记录目标字线WL1的存储单元C11、C14为异常存储单元。图6B为根据本发明的一实施例所示出的异常存储单元表的示意图。
请参照图6B,举例来说,在本实施例中,异常存储单元表610包括第一栏位与第二栏位。第一栏位记录对应的字线的异常存储单元位置,第二栏位记录对应的字线的异常存储单元总数。每个栏位的条目会依照可复写式非易失性存储器模块220的所有字线索引值(如,WL1~WLN)的顺序来排列。接续图6A的例子,字线管理电路单元215(或异常管理电路2152)会将对应字线WL1的第一栏位(异常存储单元位置)记录“1,4”,以表示字线WL1的第一个存储单元C11与第四个存储单元C14为异常存储单元,并且同时根据字线WL1的异常存储单元的总数来记录对应的数值(即,2)至第二栏位(异常存储单元总数)。所述异常存储单元表610在存储装置20运行时,会被维护于缓冲存储器216中,并且在适当的时机,被备份至可复写式非易失性存储器模块220中。应注意的是,本发明并不限定于所述异常存储单元表的格式。例如,异常存储单元表可不具有第二栏位,或异常存储单元表中第一栏位的多个条目可不依据字线索引值来排列。此外,反应于判定一个字线的多个存储单元皆非异常存储单元,字线管理电路单元215(或异常管理电路2152)可记录“0”至第一栏位,以表示此字线并没有任何异常存储单元。值得一提的是,若一个字线尚未被执行字线检验操作,异常记录表中对应此字线的第一栏位与第二栏位的条目会为空值(NULL),即,不存在有任何值(或是被预设为对应空值的特定值)。应注意的是,在另一实施例中,字线管理电路单元215(或异常管理电路2152)更可根据异常存储单元为短路或断路现象的事实来记录至异常存储单元表,以使处理器211可知道可复写式非易失性存储器模块220中发生短路现象与断路现象的存储单元。
在本实施例中,上述的异常存储单元表也可被应用至所执行的解码操作中。以下利用图7来说明。
图7为根据本发明的一实施例所示出的解码方法的流程图。请参照图7,在步骤S71中,处理器211指示存储器接口控制电路213读取目标字线,以获得原始数据,其中所述目标字线具有多个存储单元。
接着,在步骤S72中,字线管理电路单元215(或异常管理电路2152)根据异常存储单元表来判断所述存储单元中是否具有一或多个异常存储单元。具体来说,字线管理电路单元215(或异常管理电路2152)会根据所记录的异常存储单元表来判断是否要对应地调整即将要对原始数据所执行的解码操作。
反应于判定目标字线具有异常存储单元,接续至步骤S73,错误检查与校正电路214根据所述目标字线的一或多个异常存储单元,仅调整对应所述一或多个异常存储单元的解码参数,并且维持所述多个存储单元中非所述一或多个异常存储单元的多个正常存储单元的原有的解码参数。
所述解码参数为在解码操作中对应所读取的字线的存储单元而变动或设定的参数,并且所述解码参数会对应解码操作所使用的解码。
举例来说,在本实施例中,错误检查与校正电路214所使用的是低密度奇偶检查码(low density parity code,LDPC)算法。低密度奇偶检查码的解码过程可以表示为一个置信传播图。置信传播图包括多个检查节点与多个变数节点。每一个检查节点是对应到一个校验子(syndrome),而每一个变数节点是对应当前欲解码的码字中的一个比特值(Bitvalue)(也称,数据比特)。数据比特与校验子之间的对应关系(即,所述多个变数节点与检查节点之间的连结关系)是根据低密度奇偶检查码所采用的一个奇偶检查矩阵所产生的。
当处理器211从可复写式非易失性存储器模块220中读取n个数据比特(形成一个码字)时,错误检查与校正电路214也会取得每一个数据比特的通道可靠度信息。此通道可靠度信息用以表示对应的数据比特被解码为比特“1”或是“0”的机率(或称信心度)。例如,在置信传播图,所述多个变数节点会各接收到对应的多个通道可靠度信息。错误检查与校正电路214会根据置信传播图的结构与所述多个通道可靠度信息来执行解码操作。在本实施例中,对应低密度奇偶检查码算法的解码参数即为对应每个存储单元所存储的比特值的通道可靠度信息。
所述通道可靠度信息皆是以对数似然比值(Log Likelihood Ratio,LLR)来表示。对数似然比值广泛用于低密度奇偶检查码电路的各种算法,如总和-乘积算法(Sum-Product Algorithm,SPA)、最小值-总和算法(Min-Sum Algorithm)、或比特翻转算法(Bit-Flipping Algorithm)、对数似然比值(Log-Likelihood Ratio,LLR)算法,补偿式最小值-总和(Offset Min-Sum Algorithm)算法等,由于此等算法已为本领域人员所熟悉,故在此不再多做赘述。
在本实施例中,迭代解码操作中的迭代(iteration)会不断的重复执行,以更新(或最佳化)至少部分数据比特所对应的通道可靠度信息。藉此,实际用来对数据比特进行解码的通道可靠度信息可能会在任一次的迭代中被更新。若经由解码操作中的某一次迭代所产生的码字为有效(valid)码字,表示解码成功,并且解码操作会停止。若所产生的码字不是有效的码字,则会进行下一次的迭代。
在本领域中,对数似然比值为解码LDPC之一输入参数,用以通过LDPC电路对数据进行解码操作。此外,在本领域中,更新对数似然比值的方式例如有登山法(HillClimbing)、模拟退火法(Simulated Annealing)、梯度下降法(Gradient Descent)等最佳化方法。然而,如上所述,错误检查与校正电路214会根据异常存储单元表来对目标字线中的异常存储单元所对应的通道可靠度信息(对数似然比值)另外进行调整/改变。
通过改变迭代解码操作中所使用的多个对数似然比值,可能会改变解码操作的解码结果,进而将错误比特更正回来(或解码成功)。上述改变迭代解码操作中所使用的多个对数似然比值的数值的操作也可称为扰动操作(perturbation operation)。
也就是说,若在识别出目标字线的一或多个异常存储单元后,字线管理电路单元215(或异常管理电路2152)会将所述一或多个异常存储单元的位置传送给错误检查与校正电路214,并且错误检查与校正电路214会将对应所述一或多个异常存储单元的对数似然比值的数值设定为0或是相反于原有对数似然比值(如,1)的相反值(如,-1)。应注意的是,非异常存储单元的正常存储单元的原本所运算的对数似然比值不会被调整(改变)。
接着,在调整完解码参数后,错误检查与校正电路214根据所述一或多个异常存储单元的所述调整后解码参数与所述多个正常存储单元的所述原有的解码参数来执行解码操作,以获得解码后数据。即,在本实施例中,错误检查与校正电路214会在异常存储单元的对数似然比值被调整后,开始执行一次(迭代)解码操作。
接着,在步骤S77中,反应于判定所述解码操作成功,错误检查与校正电路214输出所述解码后数据。反之,反应于判定所述解码操作不成功(失败),错误检查与校正电路214可再次执行步骤S73、S74,再次地执行一次解码操作,以尝试获得正确的解码后数据。
此外,在另一实施例中,也可通过直接翻转(flip)异常存储单元所存储的数据比特(如,使用比特翻转算法),并对翻转后的码字重新执行解码操作,以改变解码操作的结果。在一些情况下,在翻转前无法解码的码字(有不可更正的错误比特),有可能在翻转后可以解码成功(不可更正的错误比特被成功更正)。
反应于判定目标字线不具有异常存储单元,接续至步骤S75,错误检查与校正电路214维持所述多个存储单元的原有的解码参数。即,反应于判定目标字线不具有异常存储单元,字线管理电路单元215(或异常管理电路2152)会通知错误检查与校正电路214不去调整目标字线的所有存储单元的原有的对数似然比值。接着,在步骤S76,错误检查与校正电路214根据所述多个存储单元的所述原有的解码参数来执行解码操作,以获得解码后数据。接着,反应于判定所述解码操作成功(步骤S77),输出所述解码后数据。反之,若判定所述解码操作不成功(失败),错误检查与校正电路214可根据前次解码结果,再次地执行迭代解码操作,并且继续检验是否解码成功。
应注意的是,若在步骤S72中,字线管理电路单元215(或异常管理电路2152)判定异常存储单元表不具有对应目标字线的记录,流程会接续至步骤S75。
值得一提的是,在一实施例中,为了识别出坏字线,字线管理电路单元215(或异常管理电路2152)会利用异常存储单元表来根据一个字线中所具有的异常存储单元的总数来判断是否将此字线标记为坏字线。
图8为根据本发明的一实施例所示出的存储器管理方法的流程图。步骤S81~步骤S87相似于图2中的步骤S21~S27,不赘述于此。在步骤S89中,字线管理电路单元215(或异常管理电路2152)反应于所述一或多个异常存储单元的总数大于异常数量门槛值,判定所述目标字线为坏字线,并且记录所述目标字线至坏字线表。具体来说,在完成对目标字线的字线检验操作而识别出目标字线的一或多个异常存储单元后,字线管理电路单元215(或异常管理电路2152)更会在所识别的所述一或多个异常存储单元的总数大于异常数量门槛值时,判定目标字线为坏字线,并且将目标字线的字线索引值记录至坏字线表,或是将坏字线中对应目标字线的条目所记录的数值从预设的用以表示正常的第一数值改变为用以表示异常的第二数值。所述坏字线为不适合再用以存储数据的字线。
例如,在执行写入操作时,若对应的写入数据欲被写入至目标字线,处理器211可根据坏字线表判断字线是否被标记为坏字线。具体来说,处理器211可根据坏字线表进一步检查目标字线是否为坏字线。若判定目标字线被标记为所述坏字线,处理器211会选择其他的字线作为存储写入数据的字线。
反之,若处理器211判定所述目标字线不被标记为所述坏字线,处理器211会直接执行写入指令,以将写入数据写入至所述目标字线。如此一来,在执行写入操作以将写入数据写入至目标字线之前,处理器211可根据判断所述目标字线是否被标记为该坏字线来写入该写入数据。
值得一提的是,反应于一个实体区块的多个坏字线的总数大于一坏字线门槛值,处理器211可判定此实体区块为坏实体区块。接着,处理器211可对此坏实体区块执行坏实体区块管理操作(例如,标记此坏实体区块至坏区块表,并且搬移此坏实体区块中的有效数据至其他实体区块)。
综上所述,本发明实施例所提供的存储器管理方法以及存储控制器,可执行对存储装置的可复写式非易失性存储器模块中的字线检验操作,以根据所读取的目标字线的多个存储单元的原始比特值与解码后比特值来获得对应的多个葛雷码绝对偏离值,并且根据所述多个葛雷码绝对偏离值来判断目标字线是否具有异常存储单元。如此一来,可有效地且精细地判断可复写式非易失性存储器模块的多个字线的每个存储单元是否为异常存储单元,并且记录异常存储单元的位置。如此一来,可让存储控制器降低存储装置的可复写式非易失性存储器模块的异常存储单元所导致的负面效应且改善解码操作的效率,或避免使用具有过多异常存储单元的字线以改善了存储装置所存储的数据的可靠度。
虽然本发明已以实施例揭示如上,然其并非用以限定本发明,任何所属技术领域中技术人员,在不脱离本发明的精神和范围内,当可作些许的更改与润饰,故本发明的保护范围当视所附的权利要求所界定者为准。
Claims (10)
1.一种存储器管理方法,适用于可复写式非易失性存储器模块,其中所述非易失性存储器模块具有多个字线,并且每一所述多个字线由多个存储单元构成,其中所述多个存储单元中的每一个存储单元用以被程序化以存储对应不同的多个葛雷码的其中之一的比特值,所述方法包括:
读取目标字线,以获得原始数据,并且根据所述原始数据来识别对应所述目标字线的多个存储单元的多个原始葛雷码索引值;
对所述原始数据执行解码操作,以获得解码后数据,并且根据所述解码后数据来识别对应所述多个存储单元的多个解码后葛雷码索引值;
根据所述多个原始葛雷码索引值与所述多个解码后葛雷码索引值来计算对应所述多个存储单元的多个葛雷码绝对偏离值;以及
根据所述多个葛雷码绝对偏离值来识别所述多个存储单元中的一或多个异常存储单元,并且记录所述一或多个异常存储单元至异常存储单元表,其中所述一或多个异常存储单元的葛雷码绝对偏离值大于偏离门槛值。
2.根据权利要求1的存储器管理方法,其中所述不同的多个葛雷码依据第一顺序排列,其中
所述多个葛雷码所对应的多个葛雷码索引值用以表示所述多个葛雷码依据所述第一顺序所排列的顺序。
3.根据权利要求2的存储器管理方法,其中上述根据所述多个原始葛雷码索引值与所述多个解码后葛雷码索引值来计算对应所述多个存储单元的所述多个葛雷码绝对偏离值的步骤包括:
将所述多个原始葛雷码索引值与所述多个解码后葛雷码索引值之间的多个差值作为多个葛雷码偏离值;以及
将所述多个葛雷码偏离值的绝对值作为所述多个葛雷码绝对偏离值。
4.根据权利要求1的存储器管理方法,其中所述偏离门槛值为1,断路偏离门槛值为1,并且短路偏离门槛值为-1,
其中所述一或多个异常存储单元中具有断路现象的第一异常存储单元的葛雷码偏离值大于所述断路偏离门槛值,
其中所述一或多个异常存储单元中具有短路现象的第二异常存储单元的葛雷码偏离值小于所述短路偏离门槛值。
5.根据权利要求1的存储器管理方法,其中所述异常存储单元表包括:
第一栏位,其中所述第一栏位用以记录所述多个字线各自的异常存储单元的位置;以及
第二栏位,其中所述第二栏位用以记录所述多个字线各自的异常存储单元的总数。
6.一种存储控制器,用于控制配置有可复写式非易失性存储器模块的存储装置,其中所述非易失性存储器模块具有多个字线,并且每一所述多个字线由多个存储单元构成,其中所述多个存储单元中的每一个存储单元用以被程序化以存储对应不同的多个葛雷码的其中之一的比特值,所述存储控制器包括:
连接接口电路,用以耦接至主机系统;
存储器接口控制电路,用以耦接至所述可复写式非易失性存储器模块;
错误检查与校正电路,用以进行解码操作;
字线管理电路单元;以及
处理器,耦接至连接接口电路、所述存储器接口控制电路、所述错误检查与校正电路与所述字线管理电路单元,
其中所述处理器用以指示所述存储器接口控制电路读取目标字线,以获得原始数据,其中所述字线管理电路单元用以根据所述原始数据来识别对应所述目标字线的多个存储单元的多个原始葛雷码索引值,
其中所述处理器还用以指示所述错误检查与校正电路对所述原始数据执行所述解码操作,以获得解码后数据,其中所述字线管理电路单元还用以根据所述解码后数据来识别对应所述多个存储单元的多个解码后葛雷码索引值,
其中所述字线管理电路单元还用以根据所述多个原始葛雷码索引值与所述多个解码后葛雷码索引值来计算对应所述多个存储单元的多个葛雷码绝对偏离值,
其中所述字线管理电路单元还用以根据所述多个葛雷码绝对偏离值来识别所述多个存储单元中的一或多个异常存储单元,并且记录所述一或多个异常存储单元至异常存储单元表,其中所述一或多个异常存储单元的葛雷码绝对偏离值大于偏离门槛值。
7.根据权利要求6的存储控制器,其中所述不同的多个葛雷码依据第一顺序排列,其中
所述多个葛雷码所对应的多个葛雷码索引值用以表示所述多个葛雷码依据所述第一顺序所排列的顺序。
8.根据权利要求7所述的存储控制器,其中在上述根据所述多个原始葛雷码索引值与所述多个解码后葛雷码索引值来计算对应所述多个存储单元的所述多个葛雷码绝对偏离值的运作中,
所述字线管理电路单元将所述多个原始葛雷码索引值与所述多个解码后葛雷码索引值之间的多个差值作为多个葛雷码偏离值,
其中所述字线管理电路单元将所述多个葛雷码偏离值的绝对值作为所述多个葛雷码绝对偏离值。
9.根据权利要求8的存储控制器,其中所述偏离门槛值为1,断路偏离门槛值为1,并且短路偏离门槛值为-1,
其中所述一或多个异常存储单元中具有断路现象的第一异常存储单元的葛雷码偏离值大于所述断路偏离门槛值,
其中所述一或多个异常存储单元中具有短路现象的第二异常存储单元的葛雷码偏离值小于所述短路偏离门槛值。
10.根据权利要求6的存储控制器,其中所述异常存储单元表包括:
第一栏位,其中所述第一栏位用以记录所述多个字线各自的异常存储单元的位置;以及
第二栏位,其中所述第二栏位用以记录所述多个字线各自的异常存储单元的总数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811001141.XA CN110874281B (zh) | 2018-08-30 | 2018-08-30 | 存储器管理方法以及存储控制器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811001141.XA CN110874281B (zh) | 2018-08-30 | 2018-08-30 | 存储器管理方法以及存储控制器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110874281A true CN110874281A (zh) | 2020-03-10 |
CN110874281B CN110874281B (zh) | 2023-11-24 |
Family
ID=69714308
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811001141.XA Active CN110874281B (zh) | 2018-08-30 | 2018-08-30 | 存储器管理方法以及存储控制器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110874281B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN201581709U (zh) * | 2009-12-18 | 2010-09-15 | 上海伟赛智能科技有限公司 | 电子封条 |
US20110307758A1 (en) * | 2010-06-15 | 2011-12-15 | Fusion-Io, Inc. | Apparatus, system, and method for providing error correction |
CN105338294A (zh) * | 2014-08-07 | 2016-02-17 | 富士通株式会社 | 监控装置和方法 |
US20180011662A1 (en) * | 2015-01-22 | 2018-01-11 | Sony Corporation | Memory controller, storage device, information processing system, and method of controlling memory |
-
2018
- 2018-08-30 CN CN201811001141.XA patent/CN110874281B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN201581709U (zh) * | 2009-12-18 | 2010-09-15 | 上海伟赛智能科技有限公司 | 电子封条 |
US20110307758A1 (en) * | 2010-06-15 | 2011-12-15 | Fusion-Io, Inc. | Apparatus, system, and method for providing error correction |
CN105338294A (zh) * | 2014-08-07 | 2016-02-17 | 富士通株式会社 | 监控装置和方法 |
US20180011662A1 (en) * | 2015-01-22 | 2018-01-11 | Sony Corporation | Memory controller, storage device, information processing system, and method of controlling memory |
Also Published As
Publication number | Publication date |
---|---|
CN110874281B (zh) | 2023-11-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10936391B2 (en) | Memory management method and storage controller | |
US10803973B2 (en) | Memory management method and storage controller | |
US10768855B1 (en) | Data reading method, storage controller and storage device | |
US9478298B2 (en) | Memory system and method of reading data thereof | |
US9952926B2 (en) | Decoding method, memory storage device and memory control circuit unit | |
US10522234B2 (en) | Bit tagging method, memory control circuit unit and memory storage device | |
US10424383B1 (en) | Decoding method and storage controller | |
US10748599B1 (en) | Data reading method, storage controller and storage device background of the disclosure | |
US10685711B1 (en) | Decoding method, memory controlling circuit unit and memory storage device | |
US10565053B1 (en) | Data reading method, storage controller and storage device | |
CN113094307B (zh) | 映射信息管理方法、存储器存储装置及存储器控制器 | |
CN107025935B (zh) | 译码方法、内存储存装置及内存控制电路单元 | |
TWI717171B (zh) | 資料讀取方法、儲存控制器與儲存裝置 | |
CN110874281B (zh) | 存储器管理方法以及存储控制器 | |
TW202244732A (zh) | 資料存取方法、記憶體控制電路單元以及記憶體儲存裝置 | |
CN107301873B (zh) | 译码方法、存储器储存装置及存储器控制电路单元 | |
TWI762843B (zh) | 儲存控制器、記憶體管理方法與儲存裝置 | |
US10628259B2 (en) | Bit determining method, memory control circuit unit and memory storage device | |
CN110391815B (zh) | 解码方法及储存控制器 | |
US11966289B2 (en) | Cross-temperature compensation in non-volatile memory devices | |
CN111724851B (zh) | 数据保护方法、存储器存储装置及存储器控制电路单元 | |
CN110795268B (zh) | 比特判断方法、存储器控制电路单元以及存储器存储装置 | |
US11145372B2 (en) | Decoding method, memory controlling circuit unit, and memory storage device | |
CN111258791B (zh) | 存储器控制方法、存储器存储装置及存储器控制电路单元 | |
CN111796961A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |