CN110364197B - 解码方法以及存储控制器 - Google Patents
解码方法以及存储控制器 Download PDFInfo
- Publication number
- CN110364197B CN110364197B CN201810321125.2A CN201810321125A CN110364197B CN 110364197 B CN110364197 B CN 110364197B CN 201810321125 A CN201810321125 A CN 201810321125A CN 110364197 B CN110364197 B CN 110364197B
- Authority
- CN
- China
- Prior art keywords
- read
- read voltage
- reading
- values
- voltage
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C8/00—Arrangements for selecting an address in a digital store
- G11C8/08—Word line control circuits, e.g. drivers, boosters, pull-up circuits, pull-down circuits, precharging circuits, for word lines
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C8/00—Arrangements for selecting an address in a digital store
- G11C8/10—Decoders
Landscapes
- Engineering & Computer Science (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Read Only Memory (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明提供适用于可复写式非易失性存储器模块的一种解码方法以及存储控制器。所述方法包括:选择所述多个字线中的目标字线,其中所述目标字线的多个目标存储单元皆已被程序化;分别利用不同的X个读取电压组读取所述多个目标存储单元,以获得X个葛雷码计数偏离值总和,其中所述X个读取电压组以及对应的所述X个葛雷码计数偏离值总和皆以第一预定顺序排列;以及根据所述X个葛雷码计数偏离值总和来选择所述X个读取电压组之中的一个读取电压组作为最佳化读取电压组。
Description
技术领域
本发明涉及一种解码方法,尤其涉及一种适用于配置有可复写式非易失性存储器模块的存储装置的解码方法以及存储控制器。
背景技术
一般来说,在对可复写式非易失性存储器模块读取数据时,若页面读取失败的情况没有发生,系统会使用预设读取电压组或之前用过的最佳读取电压组来读取数据。直到读取失败的情况发生,系统(存储系统)才会不使用预设读取电压组或已用过的最佳电压,并且对应地调整读取电压组。
换句话说,可复写式非易失性存储器模块的最佳读取电压组值并不会是固定的。然而,传统上调整读取电压组以获得最佳读取电压组来读取数据的作法是耗费资源的。举例来说,第一种传统的读取电压最佳化的过程会一直调整对应不同临界电压分布的多个不同读取电压的大小(调整一个读取电压组中的对应一个临界分布交界的一个读取电压,并且固定该读取电压组中其余的读取电压)来读取上述发生页面读取失败的数据,以尝试获得最好的数据读取结果且将对应最好的数据读取结果的读取电压组作为对应用以存储所述数据的物理单元的最佳化读取电压组。以TLC型快闪存储器(一个存储单元存储3个比特值)为例,一个读取电压组内共有七个读取电压对应于不同电压区段。采用传统方法,需固定六个读取电压,并改变一个读取电压。若每个读取电压需调整X次(且经由读取来获得结果,以比较所有结果来找出最佳者),则为了获得最佳读取电压所使用的读取次数为(23-1)×X=7×X次。此外,上述传统的作法还需要准备已经验证的数据。换言之,第一种传统作法会需要耗费大量的计算资源(调整读取电压及验证对应的读取扣数据)与存储空间(用以存储已验证数据的空间),进而降低了解码操作的效率。
此外,第二种传统作法是分别利用存储器模块硬件规格上所被预先设定的多个调整读取电压组来对尝试读取所述数据,以找寻最佳的数据读取结果。其中,每个调整读取电压组中的多个读取电压并不能被存储装置的控制器所设定,并且所述调整读取电压组的数量也是有限。换言之,利用第二种传统作法,或许可以找到其中的一组调整读取电压组以让通过此读取电压组所读取的数据可以为正确的(解码成功的)。但是,所述找到的调整读取电压组并不能够如同第一种传统作法,找到符合当前临界电压分布的最佳读取电压组。此外,由于调整读取电压组的数量与精度较低,因此,也会出现所有调整读取电压组皆不能使所读取的数据读取正确的情形。
也就是说,第二种传统作法虽然可以利用少数量的调整电压组来较第一种传统作法来较快速地找到可使所读取数据正确的读取电压组,但是此方法的失败机率也会相较于第一种传统作法大,并且所读取的数据的错误比特数也会较高,进而增加了解码操作的负担。
因此,如何在不需要准备验证数据的情况下,快速且有效率地对读取电压进行最佳化,以改善传统作法的缺陷,进而提升可复写式非易失性存储器模块的读取及对应的解码效率,是本领域人员研究的课题之一。
发明内容
本发明提供一种解码方法与存储控制器,可在不需要准备已验证数据的情况下,快速且有效率地获得最佳化读取电压组,进而可经由最佳化读取电压组的多个最佳化读取电压来正确地读取数据且有效率地进行解码操作。
本发明的一实施例提供适用于配置有可复写式非易失性存储器模块的存储装置的一种解码方法,其中所述可复写式非易失性存储器模块具有多个字线,其中所述多个字线的每一个字线包括多个存储单元,其中所述多个存储单元中的每一个存储单元用以被程序化以存储对应不同的多个葛雷码(Grey Code)的其中之一的比特值,并且所述多个葛雷码的总数为N,N为大于2的第一预定正整数。所述方法包括:选择所述多个字线中的目标字线,其中所述目标字线的多个目标存储单元皆已被程序化;分别利用不同的X个读取电压组读取所述多个目标存储单元,以获得X个葛雷码计数偏离值总和,其中X为一第二预定正整数,并且所述X个读取电压组以及对应的所述X个葛雷码计数偏离值总和皆以第一预定顺序排列,其中每一个所述X个读取电压组具有依据第二预定顺序排列的N-1个读取电压,并且所述X个葛雷码计数偏离值总和中的第i个葛雷码计数偏离值总和对应所述X个读取电压组中第i个读取电压组,其中i依据所述第一预定顺序为1至X;以及根据所述X个葛雷码计数偏离值总和来选择所述X个读取电压组之中的一个读取电压组作为最佳化读取电压组。
本发明的一实施例提供用于控制配置有可复写式非易失性存储器模块的存储装置的一种存储控制器。所述存储控制器包括:连接接口电路、存储器接口控制电路、读取电压管理电路单元以及处理器。连接接口电路用以电性连接至主机系统。存储器接口控制电路用以电性连接至所述可复写式非易失性存储器模块,其中所述可复写式非易失性存储器模块具有多个字线,其中所述多个字线的每一个字线包括多个存储单元,其中所述多个存储单元中的每一个存储单元用以被程序化以存储对应不同的多个葛雷码(Grey Code)的其中之一的比特值,并且所述多个葛雷码的总数为N,N为大于2的第一预定正整数。处理器电性连接至所述连接接口电路、所述存储器接口控制电路及所述读取电压管理电路单元。所述处理器选择所述多个字线中的目标字线,并且指示所述读取电压管理电路单元进行对应所述目标字线的读取电压最佳化操作,其中所述目标字线的多个目标存储单元皆已被程序化。在所述读取电压最佳化操作中,所述读取电压管理电路单元用以分别利用不同的X个读取电压组读取所述多个目标存储单元,以获得X个葛雷码计数偏离值总和,其中X为一第二预定正整数,并且所述X个读取电压组以及对应的所述X个葛雷码计数偏离值总和皆以第一预定顺序排列,其中每一个所述X个读取电压组具有依据第二预定顺序排列的N-1个读取电压,并且所述X个葛雷码计数偏离值总和中的第i个葛雷码计数偏离值总和对应所述X个读取电压组中第i个读取电压组,其中i依据所述第一预定顺序为1至X,其中所述读取电压管理电路单元更用以根据所述X个葛雷码计数偏离值总和来选择所述X个读取电压组之中的一个读取电压组作为最佳化读取电压组。
基于上述,本发明实施例所提供的解码方法以及存储控制器,可在不需要准备已验证数据的情况下,对任何目标字线执行对应所述目标字线的读取电压最佳化操作。在所述读取电压最佳化操作,存储控制器可直接使用多个不同的读取电压组来获得多个不同的葛雷码计数偏离值总和,以根据所述多个X个葛雷码计数偏离值总和来选择所述X个读取电压组之中的一个读取电压组作为最佳化读取电压组,以组成对应所述目标字线的最佳化读取电压组,进而通过利用所述最佳化读取电压组来增进了所读取数据的正确性且增进了用于读取的解码操作整体的效率。
为让本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合附图作详细说明如下。
附图说明
图1是根据本发明的一实施例所示出的主机系统及存储装置的方块示意图。
图2是根据本发明的一实施例所示出的解码方法的流程图。
图3为根据本发明的一实施例所示出的经由第一读取电压组所读取的对应N个葛雷码的比特值的多个存储单元的临界电压分布及对应的多个葛雷码计数的示意图。
图4为根据本发明的一实施例所示出的两个不同的读取电压组及其中的电压差的示意图。
图5是根据本发明的一实施例所示出的计算葛雷码计数偏离值的示意图。
图6A为根据本发明的一实施例所示出的根据葛雷码计数偏离值总和决定最佳化读取电压组的示意图。
图6B为根据本发明的另一实施例所示出的根据葛雷码计数偏离值总和决定最佳化读取电压组的示意图。
附图标记说明
10:主机系统;
20:存储装置;
110、211:处理器;
120:主机存储器;
130:数据传输接口电路;
210:存储控制器;
212:数据管理电路;
213:存储器接口控制电路;
214:错误检查与校正电路;
215:读取电压管理电路单元;
2151:葛雷码计数电路;
2152:读取电压最佳化电路;
216:缓冲存储器;
217:电源管理电路;
220:可复写式非易失性存储器模块;
230:连接接口电路;
S21、S23、S25:解码方法的流程步骤;
Voffset:预定电压差;
V(1)、V(2)、~、V(13)、V(X)、V(i):读取电压组;
V(1)1~V(1)7、V(2)1~V(2)7:读取电压;
C(1)~C(X):葛雷码计数组;
D(1)~D(X):葛雷码计数偏离值组;
SD(1)、SD(2)、~、SD(13)、SD(X)、SD(i):葛雷码计数偏离值总和;
C(1)1~C(1)7、C(2)1~C(2)7、C(X)1~C(X)7:葛雷码计数;
D(1)1~D(1)7、D(2)1~D(2)7、D(X)1~D(X)7:葛雷码计数偏离值;
510、520、610、620:表;
A50:箭头;
G1~G8:存储状态/葛雷码;
L:下物理页面的比特值;
M:中物理页面的比特值;
U:上物理页面的比特值。
具体实施方式
在本实施例中,存储装置包括可复写式非易失性存储器模块(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、数据管理电路(DataTransfer Management Circuit)212与存储器接口控制电路(Memory Interface ControlCircuit)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接口标准、超高速一代(UltraHigh Speed-I,UHS-I)接口标准、超高速二代(Ultra High Speed-II,UHS-II)接口标准、存储棒(Memory Stick,MS)接口标准、多芯片封装(Multi-Chip Package)接口标准、多媒体存储卡(Multi Media Card,MMC)接口标准、eMMC接口标准、通用快闪存储器(UniversalFlash Storage,UFS)接口标准、eMCP接口标准、CF接口标准、整合式驱动电子接口(Integrated Device Electronics,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。应注意的是,存储控制器220各部件所执行的操作也可视为存储控制器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个比特的快闪存储器模块)、三阶存储单元(TripleLevel Cell,TLC)NAND型快闪存储器模块(即,一个存储单元中可存储3个比特的快闪存储器模块)、四阶存储单元(Quadruple Level Cell,QLC)NAND型快闪存储器模块(即,一个存储单元中可存储4个比特的快闪存储器模块)、三维NAND型快闪存储器模块(3D NAND flashmemory module)或垂直NAND型快闪存储器模块(Vertical NAND flash memory module)等其他快闪存储器模块或其他具有相同特性的存储器模块。可复写式非易失性存储器模块220中的存储单元是以阵列的方式设置。
在本实施例中,可复写式非易失性存储器模块220具有多个字线,其中所述多个字线的每一个字线包括多个存储单元。同一条字线上的多个存储单元会组成一或多个物理程序化单元(物理页面)。此外,多个物理程序化单元可组成一个物理单元(物理区块或物理抹除单元)。在本实施例中,以三阶存储单元(Triple Level Cell,TLC)NAND型快闪存储器模块做例子来说明,即,在下述的实施例中,会将一个可存储3个比特值的存储单元作为一个物理程序化单元(即,在每次程序化操作中,会对一个物理程序化单元接着一个物理程序化单元来施加程序化电压以程序化数据),其中每一个存储单元可区分为各自可存储一个比特值的下物理页面(Lower Physical Page)、中物理页面(Middle Physical Page)与上物理页面(Upper Physical Page)。
在本实施例中,是以存储单元作为写入(程序化)数据的最小单位。物理单元为抹除的最小单位,即,每一物理单元含有最小数目之一并被抹除的存储单元。每一物理单元会具有多个存储单元。在以下实施例中,是以一个物理区块作为一个物理单元的范例。然而,在另一实施例中,一个物理单元也可以是指任意数目的存储单元组成,视实务上的需求而定。此外,必须了解的是,当处理器211对可复写式非易失性存储器模块220中的存储单元(或物理单元)进行分组以执行对应的管理操作时,此些存储单元(或物理单元)是被逻辑地分组,而其实际位置并未更动。
应注意的是,在本实施例中,用以记录一物理单元的信息的系统数据可利用该物理单元中的一或多个存储单元来记录,或是利用一个系统区中用以记录所有系统数据的特定物理单元的一或多个存储单元来记录。在本实施例中,所述对应一物理单元的系统数据包括该物理单元的抹除次数值(Program erase cycle,PEC)、数据存放时间戳记(DataRetention Timestamp,DRT)、读取次数值(Read counter value)等信息。更详细来说,每当处理器211对一物理单元进行抹除操作时,在完成所述抹除操作后,处理器211会对当前对应该物理单元的抹除次数值加1(如,抹除次数值会随着每次的抹除操作而从0开始累加)。即,抹除次数值可反映出其所对应的物理单元的被抹除的次数的总和。所述数据存放时间戳记用以指示存储于对应的物理单元中的数据的存放时间。时间戳记的大小(数值差异)可用来表示时间的先后顺序。本发明并不限定所述时间戳记的详细格式。每对所述物理单元执行写入操作时,处理器211会更新所述物理单元的数据存放时间戳记为所述物理单元执行所述写入操作的时间。即,对应一物理单元的数据存放时间戳记用以表示所述物理单元最后一次被执行写入操作的时间(如,完成最后一次写入操作的本地时间)。所述写入操作例如是程序化数据至所述物理单元的一或多个存储单元,或例如是程序化数据至所述物理单元的其他型态的物理地址。接着,处理器211可经由数据存放时间戳记来计算物理单元中的数据距离前一次的写入已存放了多长的时间。所述读取次数值用以统计对应的物理单元被读取的次数,并且所述读取次数值会在对应的物理单元被抹除时而被清空。
举例来说,在本实施例中,处理器211可根据该可复写式非易失性存储器模块220的多个物理单元的统计值划分所述多个物理单元至多个物理单元组。所述统计值包括前述的抹除次数值、数据存放时间戳记(也称,久存值)、读取次数值等信息的其中之一或其组合。被划分至同一物理单元组的多个物理单元会具有较接近的物理特性。处理器211可对划分至同一个物理单元组的物理单元经由同一组读取电压组来进行数据的读取(如,使用相同的读取电压组来下达读取指令序列,以对属于相同物理单元组的物理单元来进行读取操作)。
在其他实施例中,处理器211可根据该可复写式非易失性存储器模块220的多个字线的统计值划分所述多个字线至多个字线组(处理器211可统计每个字线的上述统计值),并且被划分至同一字线组的多个字线会具有较接近的物理特性,进而如上述实施例般被同一组读取电压(如,对应的最佳化读取电压)所读取。应注意的是,为了可以更精细地针对每个字线来进行对应每个字线的读取电压最佳化操作(而非针对每个物理单元),以下的实施例是针对每个字线来说明读取电压最佳化操作及其中的读取电压最佳化方法。然,针对多个物理单元组的实施例,处理器211可从每个物理单元组中挑选一个物理单元的字线来进行读取电压最佳化操作,或从每个物理单元组中挑选一个物理单元来进行读取电压最佳化操作。
存储控制器210会配置多个逻辑单元给可复写式非易失性存储器模块220。主机系统10是通过所配置的逻辑单元来存取存储在多个物理单元中的使用者数据。在此,每一个逻辑单元可以是由一或多个逻辑地址组成。例如,逻辑单元可以是逻辑区块(LogicalBlock)、逻辑页面(Logical Page)或是逻辑扇区(Logical Sector)。一个逻辑单元可以是映射至一或多个物理单元,其中物理单元可以是一或多个物理地址、一或多个物理扇、一或多个物理程序化单元或者一或多个物理抹除单元。在本实施例中,逻辑单元为逻辑区块,并且逻辑子单元为逻辑页面。每一逻辑单元具有多个逻辑子单元。
此外,存储控制器210会建立逻辑转物理地址映射表(Logical To Physicaladdress mapping table)与物理转逻辑地址映射表(Physical To Logical addressmapping table),以记录配置给可复写式非易失性存储器模块220的逻辑单元(如,逻辑区块、逻辑页面或逻辑扇区)与物理单元(如,物理抹除单元、物理程序化单元、物理扇区)之间的映射关系。换言之,存储控制器210可通过逻辑转物理地址映射表来查找一逻辑单元所映射的物理单元,并且存储控制器210可通过物理转逻辑地址映射表来查找一物理单元所映射的逻辑单元。然而,上述有关逻辑单元与物理单元映射的技术概念为本领域技术人员的惯用技术手段,不再赘述于此。
在本实施例中,错误检查与校正电路214是电性连接至处理器211并且用以执行错误检查与校正程序以确保数据的正确性。具体来说,当处理器211从主机系统10中接收到写入指令时,错误检查与校正电路508会为对应此写入指令的数据产生对应的错误更正码(error correcting code,ECC)和/或错误检查码(error detecting code,EDC),并且处理器211会将对应此写入指令的数据与对应的错误更正码和/或错误检查码写入至可复写式非易失性存储器模块220中。之后,当处理器211从可复写式非易失性存储器模块220中读取数据时会同时读取此数据对应的错误更正码和/或错误检查码,并且错误检查与校正电路214会依据此错误更正码和/或错误检查码对所读取的数据执行错误检查与校正程序。此外,在错误检查与校正程序后,若成功解码所读取的数据,错误检查与校正电路214可回传错误比特值给处理器211。
在一实施例中,存储控制器210还包括缓冲存储器216与电源管理电路217。缓冲存储器是电性连接至处理器211并且用以暂存来自于主机系统10的数据与指令、来自于可复写式非易失性存储器模块220的数据或其他用以管理存储装置20的系统数据,以让处理器211可快速地从缓冲存储器216中存取所述数据、指令或系统数据。电源管理电路217是电性连接至处理器211并且用以控制存储装置20的电源。
在本实施例中,读取电压管理电路单元215包括葛雷码计数电路2151与读取电压最佳化电路2152。所述读取电压管理电路单元215用以执行对多个字线的读取电压进行管理。更具体来说,处理器211可在特定的时间点来选择可复写式非易失性存储器模块220的属于多个物理单元的多个字线的其中的一个字线(也称,目标字线),并且指示读取电压管理电路单元215来对此目标字线进行读取电压最佳化操作。举例来说,处理器211可在(1)存储装置20闲暇(即,存储装置20闲置超过一预定时间门槛值)时;(2)存储装置开电时;或(3)从一字线所读取的数据的错误比特数超过一错误比特数门槛值时,来从所有字线中选择一目标字线进行读取电压最佳化操作。其中,处理器211可根据所有字线组的统计值与错误比特数的其中之一或其组合,来挑选物理状态较差的字线组(例如,抹除次数较多、读取次数较多、久存时间较长或错误比特数较多的字线组)中的一字线来作为目标字线。此外,处理器211也可根据错误检查与校正电路214所回传的错误比特数,来选择目标字线。具体来说,当从一字线所读取的数据的错误比特数超过一错误比特数门槛值时,其中该字线被设定为该目标字线。应注意的是,被选择的目标字线存储有数据,即,已被程序化数据。此外,若针对一目标字线的读取电压最佳化操作已经完成,读取电压管理电路单元215可记录对应该目标字线的读取电压组。
在一实施例中,处理器211也可随机挑选目标字线来进行读取电压最佳化操作。在另一实施例中,处理器211也可直接对每一个字线进行读取电压最佳化操作。
以下会配合多个附图来详细说明读取电压管理电路单元215如何进行读取电压最佳化操作的细节以及葛雷码计数电路2151与读取电压最佳化电路2152的功能。
图2是根据本发明的一实施例所示出的解码方法的流程图。请同时参照图1与图2,在步骤S21中,处理器211选择可复写式非易失性存储器模块的多个字线中的目标字线,其中所述目标字线的多个目标存储单元皆已被程序化。
假设处理器211目前对多个字线组的其中之一(也称,目标字线组)进行读取电压最佳化操作。处理器211会先从中选择欲进行读取电压最佳化操作的目标字线。目标字线可从目标字线组的多个字线中根据特定选择条件被选择。所述特定选择条件包括(1)目标字线的一统计值接近其所属的字线组中所有字线的该统计值的平均值;(2)目标字线的错误比特数是其所属的字线组中所有字线的最小者;或(3)随机选取一字线作为目标字线。
在本实施例中,如上所述,目标字线的存储有数据。具体来说,每个字线的多个存储单元用以被程序化以存储对应不同的多个葛雷码(Grey Code)的其中之一的比特值,并且所述葛雷码的总数为N,N为大于2的一第一预定正整数。换言之,目标字线的多个存储单元可存储有分别对应不同葛雷码的比特值。以下先配合图3来说明所述多个葛雷码的细节。
图3为根据本发明的一实施例所示出的经由第一读取电压组所读取的对应N个葛雷码的比特值的多个存储单元的临界电压分布及对应的多个葛雷码计数的示意图。由于本实施例是以三阶存储单元NAND型快闪存储器模块做例子来说明,其中N等于8(即,23)。三阶存储单元NAND型快闪存储器模块的每一存储单元具有三个物理页面来分别存储比特数据,所述每一存储单元包括各自可存储一个比特值的下物理页面(Lower Physical Page,L)、中物理页面(Middle Physical Page,M)与上物理页面(Upper Physical Page,U)。假设处理器211经由第一读取电压组V(1)的多个读取电压V(1)1~V(1)7读取三阶存储单元NAND型快闪存储器模块的目标字线的多个存储单元(多个目标存储单元),并且藉此识别出所述多个存储单元所存储的不同比特值(分别对应不同葛雷码的比特值)。每一存储单元中的栅极电压可依据第一读取电压组中的读取电压V(1)1~V(1)7而区分为8种葛雷码,如“L:1M:1U:1”、“L:0M:1U:1”、“L:0M:0U:1”、“L:0M:0U:0”、“L:0M:1U:0”、“L:1M:1U:1”、“L:1M:0U:0”与“L:1M:0U:1”的8种葛雷码(“L:”表示下物理页面的比特值;“M:”表示中物理页面的比特值;“U:”表示上物理页面的比特值)。所述8种葛雷码也可表示为“111”、“011”、“001”、“000”、“010”、“111”、“100”与“101”,8种比特值组合,其中每个比特值组合中的比特值的先后排序是依据下、中、上物理页面的顺序。也就是说,经由分别施加第一读取电压组V(1)的不同电压值的读取电压V(1)1~V(1)7至目标字线的一个存储单元上,处理器211可根据判断该存储单元的通道是否导通而分别判定出该存储单元所存储的比特值(也称,比特数据或读取比特值)对应不同的多个葛雷码(“111”、“011”、“001”、“000”、“010”、“111”、“100”或“101”)的其中之一(即,经由使用第一读取电压组V(1)来从目标字线的一个存储单元读取出读取比特值)。例如,读取电压V(1)1可区分葛雷码“111”与葛雷码“011”(读取电压V(1)1的左方是对应葛雷码“111”的临界电压分布;读取电压V(1)1的右方是对应葛雷码“011”的临界电压分布)。应注意的是,在可复写式非易失性存储器模块220的存储单元可具有的多个葛雷码的数目(在此例子中,为8),每个读取电压组的所述多个读取电压的数目为所述多个葛雷码的数目减一(在此例子,为7,即,N-1=8-1=7)。
应注意的是,根据可复写式非易失性存储器模块220的种类,N可为大于2的预定正整数(也称,第一预定正整数)。例如,若可复写式非易失性存储器模块220为MLC,则N=4;若可复写式非易失性存储器模块220为SLC,则N=2;若可复写式非易失性存储器模块220为QLC,则N=16。
值得一提的是,在本实施例中,字线的多个存储单元的临界电压分布相较于预设的临界电压分布可能会发生偏移的现象。由于临界电压分布的偏移,原本对应于预设临界电压的预设读取电压组已经不再适合用以读取具有已偏移临界电压分布的字线。处理器211需另外找出适合读取目标字线当前已偏移的临界电压分布的最佳化读取电压组,其中所述最佳化读取电压组的多个最佳化读取电压会接近对应的两个相邻的临界电压分布的交界处。
请再回到图2,在步骤S23中,读取电压管理电路单元215分别利用不同的X个读取电压组读取所述多个目标存储单元,以获得X个葛雷码计数偏离值总和,其中每一个所述X个读取电压组具有依据第二预定顺序(如,根据电压大小,由左到右,第1至第N-1个,N例如为8)排列的N-1个读取电压。其中,X为一第二预定正整数,并且所述X个读取电压组以及对应的所述X个X个葛雷码计数偏离值总和皆以一第一预定顺序排列。所述X个葛雷码计数偏离值总和中的第i个葛雷码计数偏离值总和对应所述X个读取电压组中第i个读取电压组,其中i依据所述第一预定顺序为1至X。
在一实施例中,所述X个读取电压组中相邻的两个读取电压组之间的电压差值为一第一预定电压差。具体来说,所述X个读取电压组中的第i个读取电压组的第j个读取电压与第i+1个读取电压组的第j个读取电压之间的电压差值固定为所述第一预定电压差,其中j依据该第二预定顺序为1至N-1。厂商可预先设定所述第二预定正整数(如,20或其他正整数)与第一预定电压差的值(如,7.5mV)。
应注意的是,在本实施例中,目标字线的所述多个目标存储单元为所述目标字线的用以存储任何数据的所有存储单元,但本发明不限于此。例如,在另一实施例中,所述多个目标存储单元为所述目标字线的用以存储任何数据的所有存储单元中的部分的存储单元。
图4为根据本发明的一实施例所示出的两个不同的读取电压组及其中的电压差的示意图。
举例来说,请参照图4,假设第一读取电压组V(1)为所述X个读取电压组的第一个读取电压组(如,预设的读取电压组),并且第二读取电压组V(2)为所述X个读取电压组的第二个读取电压组。此两个相邻的读取电压组之间的电压差值为第一预定电压差Voffset。例如,第二读取电压组的第一个读取电压V(2)1与对应的第一读取电压组的第一个读取电压V(1)1之间的电压差值为预定电压差Voffset,即,读取电压V(2)1的电压值减去读取电压V(1)1的电压值的差值等于Voffset。
应注意的是,X个读取电压组中可根据第一读取电压组来渐增预定电压差来形成多个读取电压组,或是根据第一读取电压组来渐减预定电压差来形成多个读取电压组。为了方便说明,以下实施例会以根据第一读取电压组来渐增预定电压差来形成X个读取电压组来作为例子,但此例子并不限制本发明的X个读取电压组。
值得一提的是,反应于选择所述目标字线,读取电压管理电路单元215可识别该目标字线的多个统计值,并且根据所述多个统计值的至少其中之一来调整所述预定电压差的大小且调整第二预定正整数的值。所述多个统计值包括该目标字线的抹除次数值;该目标字线的读取次数值;该目标字线的久存时间值;以及该目标字线所存储数据的错误比特数。具体来说,若所述多个统计值的其中之一反映出目标字线的物理状况较差时(例如,错误比特数较高或抹除次数值较高),读取电压管理电路单元215可使用较小的预定电压差,并且较多的第二预定正整数来更精细地使用彼此间隔小且数量较多组的多个读取电压组来找寻最佳化读取电压组。反之,若所述多个统计值的其中之一反映出目标字线的物理状况较好时(例如,错误比特数较低或抹除次数值较低),读取电压管理电路单元215可使用较大的预定电压差,并且较少的第二预定正整数来更粗略地使用彼此间隔大且数量较少组的多个读取电压组来找寻最佳化读取电压组。
应注意的是,本发明并不限定于上述的X个读取电压组的设定方式。例如,在另一实施例中,厂商可预先根据需求和/或可复写式非易失性存储器模块220的硬件规格来直接预先设定每个X个读取电压组。在此另一实施例中,每个读取电压组的多个读取电压的电压值的大小排列的样式不同,并且所述X个读取电压组中相邻的两个读取电压组之间的电压差值不为固定的电压差。更详细来说,所述X个读取电压组中的第i个读取电压组的第j个读取电压与第i+1个读取电压组的第j个读取电压之间的电压差值不是固定的,其中j依据该第二预定顺序为1至N-1。例如,在此另一实施例中,假设第1个读取电压组的第1个读取电压与第2个读取电压组的第1个读取电压之间的电压差值为7.5mV,但第1个读取电压组的第1个读取电压与第2个读取电压组的第1个读取电压之间的电压差值可为6mV、-7mV或其他不同于7.5mV的电压差值。
对于步骤S23的其他细节,在本实施例中,在上述分别利用不同的X个读取电压组读取所述多个目标存储单元,以获得所述X个葛雷码计数偏离值总和的运作中,读取电压管理电路单元215(如,葛雷码计数电路2151)选择所述X个读取电压组中的第i个读取电压组,其中i的数值依据该第一预定顺序为1至X。举例来说,请参照图3,假设i为1,即,读取电压管理电路单元215选择所述X个读取电压组中的第1个读取电压组(第一读取电压组V(1))来读取目标字线的多个目标存储单元。
接着,读取电压管理电路单元215(如,葛雷码计数电路2151)利用所述第i个读取电压组的N-1个读取电压分别读取所述多个目标存储单元,以获得多个读取比特值。
接着,读取电压管理电路单元215(或葛雷码计数电路2151)根据所述N个葛雷码来区分该些读取比特值为N个读取比特值组,其中所述N个读取比特值组中的第k个读取比特值组属于所述N个葛雷码中的第k个葛雷码。
更详细来说,如上所述,读取电压管理电路单元215利用所述第一读取电压组V(1)的7个读取电压V(1)1~V(1)7来读取目标字线的所述多个目标存储单元,以根据所获得的读取比特值来识别出每个目标存储单元所对应的葛雷码,进而依据这些不同的葛雷码来区分所获得的所述多个读取比特值至对应的读取比特值组。例如,所获得的读取比特值“111”会被区分至对应葛雷码“111”的读取比特值组。
接着,读取电压管理电路单元215(或葛雷码计数电路2151)总计所述第k个读取比特值组的读取比特值的个数为所述第i个读取电压组的对应所述第k个葛雷码的葛雷码计数(Grey Code Counts),以获得所述第i个读取电压组的N个葛雷码计数(所述第i个读取电压组的N个葛雷码计数也可视为所述第i个读取电压组的葛雷码计数组C(i)),其中所述N个葛雷码计数以一第三预定顺序排列,并且k依据所述第三预定顺序为1至N。举例来说,在所述多个目标存储单元的读取比特值被区分至对应不同的多个葛雷码G1~G8的读取比特值组后,读取电压管理电路单元215(或葛雷码计数电路2151)可进一步去总计,每个读取比特值组中的读取比特值的个数。例如,对应葛雷码G1“111”的读取比特值组的读取比特值的个数可被总计为葛雷码计数C(1)1。依此类推,分别对应葛雷码G1~G8的所述多个读取比特值组的葛雷码计数C(1)1~C(1)8皆可被计算出来(其中,“C(1)1”中的“(1)”用以表示此葛雷码计数所对应的读取电压组在X个读取电压组中的依据第一预定顺序的排序值;“C(1)1”中的下标“1”用以表示此葛雷码计数在其所属的葛雷码计数组中的依据第三预定顺序的排序值,并且也可表示此葛雷码计数对应所述N个葛雷码中的第几个葛雷码)。
应注意的是,读取电压管理电路单元215(或葛雷码计数电路2151)可利用第一读取电压组与对应的临界电压分布图来计算对应第一读取电压组的分别对应葛雷码G1~G8的葛雷码计数C(1)1~C(1)8。例如,对应葛雷码G1的葛雷码计数C(1)1可视为读取电压V(1)1左方的临界电压分布的存储单元个数(如图3所示出的对应葛雷码G1的灰色面积);对应葛雷码G5的葛雷码计数C(1)5可视为读取电压V(1)4与读取电压V(1)5之间的临界电压分布的存储单元个数(如图3所示出的对应葛雷码G5的灰色面积);对应葛雷码G8的葛雷码计数C(1)8可视为读取电压V(1)7右方的临界电压分布的存储单元个数(如图3所示出的对应葛雷码G8的灰色面积)。
图5是根据本发明的一实施例所示出的计算葛雷码计数偏离值的示意图。请参照图5,分别对应读取电压组V(1)~V(X)的葛雷码计数组C(1)~C(X)可例如以表510的形式来被记录。
在获得分别对应读取电压组V(1)~V(X)的葛雷码计数组C(1)~C(X)后,如箭头A50所示,读取电压管理电路单元215(或葛雷码计数电路2151)将所述第i个读取电压组的所述N个葛雷码计数分别减一葛雷码计数标准值,以获得N个差值,并且将所述N个差值作为对应所述第i个读取电压组的N个葛雷码计数偏离值(对应所述第i个读取电压组的N个葛雷码计数偏离值也可视为对应所述第i个读取电压组的葛雷码计数偏离值组D(i))。如此一来,可获得分别对应读取电压组V(1)~V(X)的葛雷码计数偏离值组D(1)~D(X)。
在本实施例中,所述葛雷码计数标准值可根据所读取的多个目标存储单元的总数量(也称,读取存储单元数量,Read Memory Cells Amount)来被设定。例如,所读取的多个目标存储单元的总数量为18592×8(在此例子下,此些被读取的目标存储单元中包括用以存储为16千比特组大小的使用者数据的多个存储单元及用以存储为2208比特组大小的系统数据的多个存储单元)。所述“18592”×8中的“18592”的值,也可被称为葛雷码计数标准值(可用Cstd表示)或葛雷码计数平均值(可用Cavg表示)。换句话说,葛雷码计数标准值为读取存储单元数量的值除以N,所述N的值如上所述会根据存储器的物理规格而被预先设定,如,MLC:N=4;TLC:N=8;QLC:N=16。
应注意的是,在一实施例中,读取电压管理电路单元215(或葛雷码计数电路2151)可利用下列的公式(F)来计算葛雷码计数偏离值D(i)k:
D(i)k=|C(i)k–Cstd|(F)
其中i依据第一预定顺序为1至X,并且k依据第三预定顺序为1至N。即,所述葛雷码计数偏离值为对应的葛雷码计数值与葛雷码计数标准值之间的差值的绝对值。
在获得对应所述第i个读取电压组的N个葛雷码计数偏离值后,分别对应读取电压组V(1)~V(X)的葛雷码计数偏离值组D(1)~D(X)可例如以表520的形式来被记录。此外,读取电压管理电路单元215(或葛雷码计数电路2151)计算对应所述第i个读取电压组的所述N个葛雷码计数偏离值的总和,并且将该总和作为所述X个葛雷码计数偏离值总和中的第i个葛雷码计数偏离值总和,其中所述第i个葛雷码计数偏离值总和对应所述第i个读取电压组。例如,读取电压管理电路单元215(或葛雷码计数电路2151)加总葛雷码计数偏离值组D(1)中的所有的葛雷码计数偏离值D(1)1~D(1)8,以将所获得的总和作为葛雷码计数偏离值总和SD(1)。所述葛雷码计数偏离值总和SD(1)对应读取电压组V(1)。
接着,请再参照图2,在步骤S25中,读取电压管理电路单元215(或读取电压最佳化电路2152)根据所述X个葛雷码计数偏离值总和来选择所述X个读取电压组之中的一个读取电压组作为最佳化读取电压组。
具体来说,在一实施例中,所述读取电压管理电路单元215(或读取电压最佳化电路2152)识别所述X个葛雷码计数偏离值总和中小于一偏离值总和门槛值的多个目标葛雷码计数偏离值总和。接着,所述读取电压管理电路单元215(或读取电压最佳化电路2152)根据所述第一预定顺序,将所述多个目标葛雷码计数偏离值总和中排序在中间的一个目标葛雷码计数偏离所对应的读取电压组作为所述最佳化读取电压组。
图6A为根据本发明的一实施例所示出的根据葛雷码计数偏离值总和决定最佳化读取电压组的示意图。举例来说,请参照图6A,为了方便说明,假设在此实施例中,共有13个读取电压组V(1)~V(13),所获得的分别对应读取电压组V(1)~V(13)的葛雷码计数偏离值总和SD(1)~SD(13)记录如表610,并且偏离值总和门槛值为1500。读取电压管理电路单元215(或读取电压最佳化电路2152)会识别出葛雷码计数偏离值总和SD(1)~SD(13)中小于偏离值总和门槛值的目标葛雷码计数偏离值总和SD(7)、SD(8)、SD(9),其中目标葛雷码计数偏离值总和SD(8)是依据第一预定顺序,为目标葛雷码计数偏离值总和SD(7)、SD(8)、SD(9)中排序在中间的目标葛雷码计数偏离值总和。基此,读取电压管理电路单元215(或读取电压最佳化电路2152)会将目标葛雷码计数偏离值总和SD(8)所对应的读取电压组V(8)作为最佳化读取电压组。
应注意的是,若有两个排序为中间的目标葛雷码计数偏离值总和(如,图6B中的目标葛雷码计数偏离值总和SD(7)、SD(8)),则读取电压管理电路单元215(或读取电压最佳化电路2152)会选择其中的最小者(如,目标葛雷码计数偏离值总和SD(7)),或是随机选择其中一个。
然而,在另一实施例中,所述读取电压管理电路单元215(或读取电压最佳化电路2152)识别所述X个葛雷码计数偏离值总和中小于一偏离值总和门槛值的多个目标葛雷码计数偏离值总和。接着,所述读取电压管理电路单元215(或读取电压最佳化电路2152)将所述多个目标葛雷码计数偏离值总和中最小的一个目标葛雷码计数偏离所对应的读取电压组作为所述最佳化读取电压组。
图6B为根据本发明的另一实施例所示出的根据葛雷码计数偏离值总和决定最佳化读取电压组的示意图。举例来说,请参照图6B,为了方便说明,假设在此实施例中,共有13个读取电压组V(1)~V(13),所获得的分别对应读取电压组V(1)~V(13)的葛雷码计数偏离值总和SD(1)~SD(13)记录如表620,并且偏离值总和门槛值为1500。读取电压管理电路单元215(或读取电压最佳化电路2152)会识别出葛雷码计数偏离值总和SD(1)~SD(13)中小于偏离值总和门槛值的目标葛雷码计数偏离值总和SD(6)、SD(7)、SD(8)、SD(9),其中目标葛雷码计数偏离值总和SD(7)是目标葛雷码计数偏离值总和SD(6)、SD(7)、SD(8)、SD(9)中的最小者。基此,读取电压管理电路单元215(或读取电压最佳化电路2152)会将目标葛雷码计数偏离值总和SD(7)所对应的读取电压组V(7)作为最佳化读取电压组。
应注意的是,若有多个最小的目标葛雷码计数偏离值总和,则读取电压管理电路单元215(或读取电压最佳化电路2152)会选择其中的中间者,或是随机选择其中一个。
此外,厂商可调整所述偏离值总和门槛值的数值。例如,在一实施例中,厂商可根据所述多个目标存储单元的物理条件来调整所述偏离值总和门槛值的数值。具体来说,根据可复写式非易失性存储器模块220的种类及错误检查与校正电路的解码能力,所述偏离值总和门槛值的数值可被设定为不同的值。例如,错误检查与校正电路的解码能力越大,所述偏离值总和门槛值的数值可被设定为越大的值。
在选择了最佳化读取电压组后,便完成整体对应所述多个目标存储单元的读取电压最佳化操作。读取电压管理电路单元215(或读取电压最佳化电路2152)可记录此最佳化读取电压组,以在尔后读取具有相似物理条件的其他字线时,可直接应用所记录的最佳化读取电压组。又例如,同组的其他字线可直接应用所记录的最佳化读取电压组。
值得一提的是,本发明的核心概念为,若对应一读取电压组的葛雷码计数组的多个葛雷码计数的每一个与葛雷码计数标准值之间的差值(即,葛雷码计数偏离值)越小,则表示经由该读取电压组的所获得的多个读取比特值越接近当初所程序化至所述多个目标存储单元的写入数据,即,所经由所述读取电压组所读取出的数据的品质会更好。因为,被写入的数据都会先经过一个均匀程序(例如,扰乱操作,Scramble operation),以让用以存储所述被写入数据的字线的多个存储单元可均匀地存储所有种类的葛雷码,进而使所有存储单元的葛雷码的个数都会接近葛雷码计数标准值。即,预期中,若利用最佳的读取电压组所读取的数据的葛雷码计数偏离值总和应该会接近葛雷码计数标准值。也就是说,葛雷码计数偏离值总和越小的读取电压组是更好的读取电压组。基此,可利用此特性来找寻最佳的读取电压组。
换言之,本实施例的基本精神在于,经由使用最佳化读取电压组来读取多个目标存储单元,所读取出的属于不同葛雷码的多个读取比特值组的葛雷码计数会接近于葛雷码计数标准值。基此,所找寻到的最佳化读取电压组的葛雷码计数偏离值总和相对于其他不适合的读取电压组的葛雷码计数偏离值总和会较小。也就是说,经由使用最佳化读取电压组来读取多个目标存储单元所读取出的数据的错误比特数会较低,即,利用具有越高的葛雷码计数偏离值总和的读取电压组所读出的数据会具有较高的错误比特数。
本领域技术人员,当可依照此概念来改良上述实施例的解码方法(读取电压最佳化方法/操作)。但,仍不脱离本发明的精神和范围。本实施例所提供的解码方法相较于传统作法,仅需要分别利用X个读取电压组来读取目标字线X×M次(M为一存储单元可存储的比特值的数量),即,需要X×M次的读取次数,就获得目标字线的最佳化读取电压组。但,前述第一种传统作法区所需要的读取次数会为(2M-1)×X次。以TLC型快闪存储器(一个存储单元存储3个比特值)为例,一个读取电压组内共有七个读取电压对应于不同电压区段。采用第一种传统方法,需固定六个读取电压,并改变一个读取电压,以进行读取。若每个读取电压需调整X次(且经由读取来获得结果,以比较所有结果来找出最佳者),则为了获得最佳读取电压所使用的读取次数为(23-1)×X=7×X次。此外,上述传统的作法还需要准备已经验证的数据。换言之,第一种传统作法会需要耗费大量的计算资源(调整读取电压及验证对应的读取扣数据)与存储空间(用以存储已验证数据的空间)。
在读取次数的差异上,本实施例所提供的解码方法会大量减少耗费在读取电压最佳化操作的时间与计算资源,但还可达到第一种传统作法的效用与精细度,进而增进了解码操作(错误检查与校正电路)的效率。
此外,相较于第二种传统作法,本实施例所提供的解码方法可利用较多的X个读取电压组,以获得较第二种传统作法精确的最佳化读取电压(第二种传统作法的调整读取电压组的数量会小于本实施例所提供的X个读取电压组的数量)。
相较于第二种传统作法的缺陷,即,第二种传统作法的缺陷在于:失败机率较高,并且所读取的数据的错误比特数也会较高。本发明的实施例所提供的解码方法以及存储控制器,可完全克服第二种传统作法的缺陷(因为,本发明的方法可以达到第一种传统作法的精确度),进而降低了解码操作(错误检查与校正电路)的负担。同时,也可以利用本发明的读取电压快筛操作及后续的读取电压最佳化操作,快速且有效率地找到最佳化读取电压组。换言之,本发明的实施例所提供的解码方法以及存储控制器,可同时拥有两种传统作法的优点,又改善了两种传统作法的缺陷。
综上所述,本发明实施例所提供的解码方法以及存储控制器,可在不需要准备已验证数据的情况下,对任何目标字线执行对应所述目标字线的读取电压最佳化操作。在所述读取电压最佳化操作,存储控制器可直接使用多个不同的读取电压组来获得多个不同的葛雷码计数偏离值总和,以根据所述多个X个葛雷码计数偏离值总和来选择所述X个读取电压组之中的一个读取电压组作为最佳化读取电压组,以组成对应所述目标字线的最佳化读取电压组,进而通过利用所述最佳化读取电压组来增进了所读取数据的正确性且增进了用于读取的解码操作整体的效率。
虽然本发明已以实施例揭示如上,然其并非用以限定本发明,任何所属技术领域中技术人员,在不脱离本发明的精神和范围内,当可作些许的更改与润饰,故本发明的保护范围当视权利要求所界定者为准。
Claims (14)
1.一种解码方法,其特征在于,适用于配置有可复写式非易失性存储器模块的存储装置,其中所述可复写式非易失性存储器模块具有多个字线,其中所述多个字线的每一个字线包括多个存储单元,其中所述多个存储单元中的每一个存储单元用以被程序化以存储对应不同的多个葛雷码的其中之一的比特值,并且所述多个葛雷码的总数为N,N为大于2的第一预定正整数,所述方法包括:
选择所述多个字线中的目标字线,其中所述目标字线的多个目标存储单元皆已被程序化;
分别利用不同的X个读取电压组读取所述多个目标存储单元,以获得X个葛雷码计数偏离值总和,其中X为第二预定正整数,并且所述X个读取电压组以及对应的所述X个葛雷码计数偏离值总和皆以第一预定顺序排列,其中每一个所述X个读取电压组具有依据第二预定顺序排列的N-1个读取电压,并且所述X个葛雷码计数偏离值总和中的第i个葛雷码计数偏离值总和对应所述X个读取电压组中第i个读取电压组,其中i依据所述第一预定顺序为1至X;以及
根据所述X个葛雷码计数偏离值总和来选择所述X个读取电压组之中的一个读取电压组作为最佳化读取电压组,
其中j的数值依据所述第二预定顺序为1至N-1,其中上述分别利用不同的X个读取电压组读取所述多个目标存储单元,以获得所述X个葛雷码计数偏离值总和的步骤包括:
选择所述X个读取电压组中的第i个读取电压组,其中i的数值依据所述第一预定顺序为1至X;
利用所述第i个读取电压组的N-1个读取电压分别读取所述多个目标存储单元,以获得多个读取比特值;
根据N个所述葛雷码来区分所述多个读取比特值为N个读取比特值组,其中所述N个读取比特值组中的第k个读取比特值组属于所述N个葛雷码中的第k个葛雷码;
总计所述第k个读取比特值组的读取比特值的个数为所述第i个读取电压组的对应所述第k个葛雷码的葛雷码计数,以获得所述第i个读取电压组的N个葛雷码计数,其中所述N个葛雷码计数以第三预定顺序排列,并且k依据所述第三预定顺序为1至N;
将所述第i个读取电压组的所述N个葛雷码计数分别减葛雷码计数标准值,以获得N个差值,并且将所述N个差值的绝对值作为对应所述第i个读取电压组的N个葛雷码计数偏离值;以及
计算对应所述第i个读取电压组的所述N个葛雷码计数偏离值的总和,并且将所述总和作为所述X个葛雷码计数偏离值总和中的第i个葛雷码计数偏离值总和,其中所述第i个葛雷码计数偏离值总和对应所述第i个读取电压组。
2.根据权利要求1所述的解码方法,其中所述X个读取电压组中的第i个读取电压组的第j个读取电压与第i+1个读取电压组的第j个读取电压之间的电压差值固定为第一预定电压差,其中j依据所述第二预定顺序为1至N-1。
3.根据权利要求1所述的解码方法,其中所述X个读取电压组中的第i个读取电压组的第j个读取电压与第i+1个读取电压组的第j个读取电压之间的电压差值不是固定的,其中j依据所述第二预定顺序为1至N-1。
4.根据权利要求1所述的解码方法,其中上述选择所述多个字线中的所述目标字线的步骤包括:
在特定时间点,选择所述目标字线,其中所述特定时间点包括下列条件的其中之一:
所述存储装置闲置超过预定时间门槛值时;
所述存储装置开电时;以及
当从字线所读取的数据的错误比特数超过错误比特数门槛值时,其中所述字线被设定为所述目标字线。
5.根据权利要求1所述的解码方法,还包括:
反应于选择所述目标字线,识别所述目标字线的多个统计值;以及
根据所述多个统计值的至少其中之一来调整所述预定电压差的大小且调整第二预定正整数的值,
其中所述多个统计值包括:
所述目标字线的抹除次数值;
所述目标字线的读取次数值;
所述目标字线的久存时间值;以及
所述目标字线所存储数据的错误比特数。
6.根据权利要求1所述的解码方法,其中上述根据所述X个葛雷码计数偏离值总和来选择所述X个读取电压组之中的一个读取电压组作为所述最佳化读取电压组的步骤包括:
识别所述X个葛雷码计数偏离值总和中小于偏离值总和门槛值的多个目标葛雷码计数偏离值总和;以及
根据所述第一预定顺序,将所述多个目标葛雷码计数偏离值总和中排序在中间的一个目标葛雷码计数偏离所对应的读取电压组作为所述最佳化读取电压组。
7.根据权利要求1所述的解码方法,其中上述根据所述X个葛雷码计数偏离值总和来选择所述X个读取电压组之中的一个读取电压组作为所述最佳化读取电压组的步骤包括:
识别所述X个葛雷码计数偏离值总和中小于偏离值总和门槛值的多个目标葛雷码计数偏离值总和;以及
将所述多个目标葛雷码计数偏离值总和中最小的一个目标葛雷码计数偏离所对应的读取电压组作为所述最佳化读取电压组。
8.一种存储控制器,其特征在于,用于控制配置有可复写式非易失性存储器模块的存储装置,所述存储控制器包括:
连接接口电路,用以电性连接至主机系统;
存储器接口控制电路,用以电性连接至所述可复写式非易失性存储器模块,其中所述可复写式非易失性存储器模块具有多个字线,其中所述多个字线的每一个字线包括多个存储单元,其中所述多个存储单元中的每一个存储单元用以被程序化以存储对应不同的多个葛雷码的其中之一的比特值,并且所述多个葛雷码的总数为N,N为大于2的第一预定正整数;
读取电压管理电路单元;以及
处理器,电性连接至所述连接接口电路、所述存储器接口控制电路及所述读取电压管理电路单元,
其中所述处理器选择所述多个字线中的目标字线,并且指示所述读取电压管理电路单元进行对应所述目标字线的读取电压最佳化操作,其中所述目标字线的多个目标存储单元皆已被程序化,其中在所述读取电压最佳化操作中,
所述读取电压管理电路单元用以分别利用不同的X个读取电压组读取所述多个目标存储单元,以获得X个葛雷码计数偏离值总和,其中X为第二预定正整数,并且所述X个读取电压组以及对应的所述X个葛雷码计数偏离值总和皆以第一预定顺序排列,其中每一个所述X个读取电压组具有依据第二预定顺序排列的N-1个读取电压,并且所述X个葛雷码计数偏离值总和中的第i个葛雷码计数偏离值总和对应所述X个读取电压组中第i个读取电压组,其中i依据所述第一预定顺序为1至X,
其中所述读取电压管理电路单元更用以根据所述X个葛雷码计数偏离值总和来选择所述X个读取电压组之中的一个读取电压组作为最佳化读取电压组,
其中j的数值依据所述第二预定顺序为1至N-1,其中在上述分别利用不同的X个读取电压组读取所述多个目标存储单元,以获得所述X个葛雷码计数偏离值总和的运作中,
所述读取电压管理电路单元选择所述X个读取电压组中的第i个读取电压组,其中i的数值依据所述第一预定顺序为1至X;
所述读取电压管理电路单元利用所述第i个读取电压组的N-1个读取电压分别读取所述多个目标存储单元,以获得多个读取比特值;
所述读取电压管理电路单元根据N个所述葛雷码来区分所述多个读取比特值为N个读取比特值组,其中所述N个读取比特值组中的第k个读取比特值组属于所述N个葛雷码中的第k个葛雷码;
所述读取电压管理电路单元总计所述第k个读取比特值组的读取比特值的个数为所述第i个读取电压组的对应所述第k个葛雷码的葛雷码计数,以获得所述第i个读取电压组的N个葛雷码计数,其中所述N个葛雷码计数以第三预定顺序排列,并且k依据所述第三预定顺序为1至N;
所述读取电压管理电路单元将所述第i个读取电压组的所述N个葛雷码计数分别减葛雷码计数标准值,以获得N个差值,并且将所述N个差值的绝对值作为对应所述第i个读取电压组的N个葛雷码计数偏离值;以及
所述读取电压管理电路单元计算对应所述第i个读取电压组的所述N个葛雷码计数偏离值的总和,并且将所述总和作为所述X个葛雷码计数偏离值总和中的第i个葛雷码计数偏离值总和,其中所述第i个葛雷码计数偏离值总和对应所述第i个读取电压组。
9.根据权利要求8所述的存储控制器,其中所述X个读取电压组中的第i个读取电压组的第j个读取电压与第i+1个读取电压组的第j个读取电压之间的电压差值固定为第一预定电压差,其中j依据所述第二预定顺序为1至N-1。
10.根据权利要求8所述的存储控制器,其中所述X个读取电压组中的第i个读取电压组的第j个读取电压与第i+1个读取电压组的第j个读取电压之间的电压差值不是固定的,其中j依据所述第二预定顺序为1至N-1。
11.根据权利要求8所述的存储控制器,其中在上述选择所述多个字线中的所述目标字线的运作中,
所述处理器于特定时间点,选择所述目标字线,其中所述特定时间点包括下列条件的其中之一:
所述存储装置闲置超过预定时间门槛值时;
所述存储装置开电时;以及
当从字线所读取的数据的错误比特数超过错误比特数门槛值时,其中所述字线被设定为所述目标字线。
12.根据权利要求8所述的存储控制器,
其中所述处理器反应于选择所述目标字线,识别所述目标字线的多个统计值;以及
所述处理器根据所述多个统计值的至少其中之一来调整所述预定电压差的大小且调整第二预定正整数的值,
其中所述多个统计值包括:
所述目标字线的抹除次数值;
所述目标字线的读取次数值;
所述目标字线的久存时间值;以及
所述目标字线所存储数据的错误比特数。
13.根据权利要求8所述的存储控制器,其中在上述根据所述X个葛雷码计数偏离值总和来选择所述X个读取电压组之中的一个读取电压组作为所述最佳化读取电压组的运作中,
所述读取电压管理电路单元识别所述X个葛雷码计数偏离值总和中小于偏离值总和门槛值的多个目标葛雷码计数偏离值总和;以及
所述读取电压管理电路单元根据所述第一预定顺序,将所述多个目标葛雷码计数偏离值总和中排序在中间的一个目标葛雷码计数偏离所对应的读取电压组作为所述最佳化读取电压组。
14.根据权利要求8所述的存储控制器,其中在上述根据所述X个葛雷码计数偏离值总和来选择所述X个读取电压组之中的一个读取电压组作为所述最佳化读取电压组的运作中,
所述读取电压管理电路单元识别所述X个葛雷码计数偏离值总和中小于偏离值总和门槛值的多个目标葛雷码计数偏离值总和;以及
所述读取电压管理电路单元将所述多个目标葛雷码计数偏离值总和中最小的一个目标葛雷码计数偏离所对应的读取电压组作为所述最佳化读取电压组。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810321125.2A CN110364197B (zh) | 2018-04-11 | 2018-04-11 | 解码方法以及存储控制器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810321125.2A CN110364197B (zh) | 2018-04-11 | 2018-04-11 | 解码方法以及存储控制器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110364197A CN110364197A (zh) | 2019-10-22 |
CN110364197B true CN110364197B (zh) | 2021-08-27 |
Family
ID=68214131
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810321125.2A Active CN110364197B (zh) | 2018-04-11 | 2018-04-11 | 解码方法以及存储控制器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110364197B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113129983B (zh) * | 2019-12-31 | 2022-09-06 | 杭州海康存储科技有限公司 | 标定阈值电压组的方法、装置及计算机存储介质 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4768298B2 (ja) * | 2005-03-28 | 2011-09-07 | 株式会社東芝 | 不揮発性半導体記憶装置 |
CN101060015A (zh) * | 2007-05-23 | 2007-10-24 | 北京芯技佳易微电子科技有限公司 | 一种多比特闪存及其错误检测和纠正的方法 |
KR20140045168A (ko) * | 2012-10-08 | 2014-04-16 | 삼성전자주식회사 | 불휘발성 메모리 장치, 메모리 시스템 및 불휘발성 메모리 장치의 동작방법 |
CN104167220B (zh) * | 2013-05-16 | 2018-06-15 | 群联电子股份有限公司 | 数据读取方法、控制电路、存储器模块与存储器存储装置 |
KR102290974B1 (ko) * | 2014-11-07 | 2021-08-19 | 삼성전자주식회사 | 불휘발성 메모리 장치, 메모리 컨트롤러 및 그것들을 포함하는 불휘발성 메모리 시스템의 동작 방법 |
CN106653087A (zh) * | 2015-10-28 | 2017-05-10 | 光宝电子(广州)有限公司 | 固态存储装置及其相关读取控制方法 |
-
2018
- 2018-04-11 CN CN201810321125.2A patent/CN110364197B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN110364197A (zh) | 2019-10-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10698762B2 (en) | Data reading method and storage controller | |
TWI650757B (zh) | 解碼方法以及儲存控制器 | |
US10579518B2 (en) | Memory management method and storage controller | |
US10884665B2 (en) | Data reading method, storage controller and storage device for optimizing read voltages | |
US10628257B2 (en) | Memory management method and storage controller | |
US10424383B1 (en) | Decoding method and storage controller | |
US10482978B2 (en) | Read voltage optimization method, memory storage device and memory control circuit unit | |
CN108701084A (zh) | 部分写入块处理 | |
US10628082B2 (en) | Data reading method and storage controller | |
US10748599B1 (en) | Data reading method, storage controller and storage device background of the disclosure | |
US10922028B2 (en) | Data programming method, memory storage device and memory control circuit unit | |
US20200234786A1 (en) | Data reading method, storage controller and storage device | |
CN111258505B (zh) | 快闪存储器的数据合并方法、控制电路单元与存储装置 | |
CN110471612B (zh) | 存储器管理方法以及存储控制器 | |
US10509583B1 (en) | Memory management method and storage controller | |
CN110377538B (zh) | 存储器管理方法以及存储控制器 | |
US10614892B1 (en) | Data reading method, storage controller and storage device | |
CN110364197B (zh) | 解码方法以及存储控制器 | |
US10474386B1 (en) | Memory management method and storage controller | |
CN110364207B (zh) | 解码方法以及储存控制器 | |
CN108108118B (zh) | 数据写入方法以及存储控制器 | |
CN110289036B (zh) | 读取电压最佳化方法以及存储控制器 | |
CN111489776B (zh) | 数据读取方法、存储控制器与存储装置 | |
CN109273037B (zh) | 数据读取方法以及存储控制器 | |
CN110727390B (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 |