CN111435604B - 解码方法、存储器控制电路单元以及存储器存储装置 - Google Patents
解码方法、存储器控制电路单元以及存储器存储装置 Download PDFInfo
- Publication number
- CN111435604B CN111435604B CN201910034821.XA CN201910034821A CN111435604B CN 111435604 B CN111435604 B CN 111435604B CN 201910034821 A CN201910034821 A CN 201910034821A CN 111435604 B CN111435604 B CN 111435604B
- Authority
- CN
- China
- Prior art keywords
- read
- data
- instructions
- read voltage
- voltage groups
- 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
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/26—Sensing or reading circuits; Data output circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/08—Address circuits; Decoders; Word-line control circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/24—Bit-line control circuits
-
- 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
- Read Only Memory (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明提供一种解码方法、存储器控制电路单元以及存储器存储装置,所述方法包括:接收多个指令;根据所述多个指令中的一第一读取指令,使用多个读取电压组中的多个第一读取电压组读取一第一实体程序化单元以分别获得多个第一数据,并对所述多个第一数据中的每一个第一数据执行一第一解码操作,其中所述多个第一读取电压组的数量小于所述多个读取电压组的数量;以及当对所述多个第一数据中的每一个第一数据执行所述第一解码操作皆发生失败时,执行所述多个指令中不同于第一读取指令的其他指令。
Description
技术领域
本发明涉及一种解码方法、存储器控制电路单元以及存储器存储装置。
背景技术
数字相机、移动电话与MP3播放器在这几年来的成长十分迅速,使得消费者对存储媒体的需求也急速增加。由于可复写式非易失性存储器模块(例如,快闪存储器)具有数据非易失性、省电、体积小,以及无机械结构等特性,所以非常适合内建于上述所举例的各种可携式多媒体装置中。
一般来说,在使用一读取电压从可复写式非易失性存储器模块中读取数据时,存储器管理电路可以对所读取出的数据进行解码以取得所欲读取的数据。然而,当解码失败时,存储器管理电路会执行重新读取(Retry-Read)机制以重新取得另一读取电压,并用此另一读取电压来进行读取以重新取得读取出的数据并进行解码。存储器管理电路会根据重新取得的验证比特来执行上述的解码操作以取得由多个解码比特组成的另一解码后的数据。而上述重新取得读取电压来进行重新读取的机制可以反复地被执行直到次数超过预设次数为止。当重新读取机制被执行到次数超过预设次数时,存储器管理电路例如可以改用其他非重新读取机制的方式来执行解码操作。
需注意的是,当对一个读取指令所读取出的数据执行解码操作但发生解码失败而反复地执行解码操作(例如,重新读取机制)时,在该读取指令后续的读取指令需都被迫等待而无法被执行,此情况会导致读取指令的执行效率低落。
发明内容
本发明提供一种解码方法、存储器控制电路单元以及存储器存储装置,可以减少后续的读取指令等待前一个读取指令执行完整的解码操作所花费的时间。
本发明提出一种解码方法,用于一可复写式非易失性存储器模块,所述可复写式非易失性存储器模块具有多个实体抹除单元,所述多个实体抹除单元之中的每一个实体抹除单元具有多个实体程序化单元,所述解码方法包括:接收多个指令;根据所述多个指令中的一第一读取指令,使用多个读取电压组中的多个第一读取电压组读取一第一实体程序化单元以分别获得多个第一数据,并对所述多个第一数据中的每一个第一数据执行一第一解码操作,其中所述多个第一读取电压组的数量小于所述多个读取电压组的数量;以及当对所述多个第一数据中的每一个第一数据执行所述第一解码操作皆发生失败时,执行所述多个指令中不同于所述第一读取指令的其他指令。
在本发明的一实施例中,其中执行所述多个指令中不同于所述第一读取指令的其他指令的步骤之后,所述方法还包括:根据所述第一读取指令,使用多个读取电压组中的多个第二读取电压组读取所述第一实体程序化单元以分别获得多个第二数据,并对所述多个第二数据中的每一个第二数据执行所述第一解码操作。其中所述多个第二读取电压组的数量小于所述多个读取电压组的数量且所述多个第二读取电压组不同于所述多个第一读取电压组。
在本发明的一实施例中,所述方法还包括:当对所述多个第二数据中的每一个第二数据执行所述第一解码操作皆发生失败时,执行所述多个指令中不同于所述第一读取指令的其他指令;以及当所述多个指令中已被执行的不同于所述第一读取指令的其他指令的数量达到一门槛值时,根据所述多个指令中的所述第一读取指令,使用所述多个读取电压组中所述多个第一读取电压组与所述多个第二读取电压组以外的至少一剩余读取电压组读取所述第一实体程序化单元以获得至少一第三数据,并对所述第三数据执行所述第一解码操作。
在本发明的一实施例中,所述方法还包括:当对所述第三数据执行所述第一解码操作发生失败时,读取所述第一实体程序化单元以获得一第四数据,并对所述第四数据执行一第二解码操作,其中所述第一解码操作所使用的算法不同于所述第二解码操作所使用的算法。
在本发明的一实施例中,所述多个第一读取电压组的数量为大于或等于五且所述多个第一读取电压组的数量小于或等于十。
在本发明的一实施例中,所述不同于所述第一读取指令的其他指令的数量为三。
在本发明的一实施例中,所述不同于所述第一读取指令的其他指令为读取指令。
本发明提出一种存储器控制电路单元,用于一可复写式非易失性存储器模块,所述可复写式非易失性存储器模块具有多个实体抹除单元,所述多个实体抹除单元之中的每一个实体抹除单元具有多个实体程序化单元,所述存储器控制电路单元包括:主机接口、存储器接口与存储器管理电路。主机接口用以电性连接至一主机系统。存储器接口用以电性连接至所述可复写式非易失性存储器模块。存储器管理电路电性连接至所述主机接口以及所述存储器接口。存储器管理电路用以执行下述运作:接收多个指令;根据所述多个指令中的一第一读取指令,使用多个读取电压组中的多个第一读取电压组读取一第一实体程序化单元以分别获得多个第一数据,并对所述多个第一数据中的每一个第一数据执行一第一解码操作,其中所述多个第一读取电压组的数量小于所述多个读取电压组的数量;以及当对所述多个第一数据中的每一个第一数据执行所述第一解码操作皆发生失败时,执行所述多个指令中不同于所述第一读取指令的其他指令。
在本发明的一实施例中,其中在执行所述多个指令中不同于所述第一读取指令的其他指令的运作之后,所述存储器管理电路还用以根据所述第一读取指令,使用多个读取电压组中的多个第二读取电压组读取所述第一实体程序化单元以分别获得多个第二数据,并对所述多个第二数据中的每一个第二数据执行所述第一解码操作。其中所述多个第二读取电压组的数量小于所述多个读取电压组的数量且所述多个第二读取电压组不同于所述多个第一读取电压组。
在本发明的一实施例中,当对所述多个第二数据中的每一个第二数据执行所述第一解码操作皆发生失败时,所述存储器管理电路还用以执行所述多个指令中不同于所述第一读取指令的其他指令。当所述多个指令中已被执行的不同于所述第一读取指令的其他指令的数量达到一门槛值时,所述存储器管理电路还用以根据所述多个读取指令中的所述第一读取指令,使用所述多个读取电压组中所述多个第一读取电压组与所述多个第二读取电压组以外的至少一剩余读取电压组读取所述第一实体程序化单元以获得至少一第三数据,并对所述第三数据执行所述第一解码操作。
在本发明的一实施例中,当对所述第三数据执行所述第一解码操作发生失败时,所述存储器管理电路还用以读取所述第一实体程序化单元以获得一第四数据,并对所述第四数据执行一第二解码操作,其中所述第一解码操作所使用的算法不同于所述第二解码操作所使用的算法。
在本发明的一实施例中,所述多个第一读取电压组的数量为大于或等于五且所述多个第一读取电压组的数量小于或等于十。
在本发明的一实施例中,所述不同于所述第一读取指令的其他指令的数量为三。
在本发明的一实施例中,所述不同于所述第一读取指令的其他指令为读取指令。
本发明提出一种存储器存储装置,包括:连接接口单元、可复写式非易失性存储器模块与存储器控制电路单元。连接接口单元用以电性连接至一主机系统。所述可复写式非易失性存储器模块具有多个实体抹除单元,所述多个实体抹除单元之中的每一个实体抹除单元具有多个实体程序化单元。存储器控制电路单元电性连接至所述连接接口单元与所述可复写式非易失性存储器模块。存储器控制电路单元用以执行下述运作:接收多个指令;根据所述多个指令中的一第一读取指令,使用多个读取电压组中的多个第一读取电压组读取一第一实体程序化单元以分别获得多个第一数据,并对所述多个第一数据中的每一个第一数据执行一第一解码操作,其中所述多个第一读取电压组的数量小于所述多个读取电压组的数量;以及当对所述多个第一数据中的每一个第一数据执行所述第一解码操作皆发生失败时,执行所述多个指令中不同于所述第一读取指令的其他指令。
在本发明的一实施例中,在执行所述多个指令中不同于所述第一读取指令的其他指令的运作之后,所述存储器控制电路单元还用以根据所述第一读取指令,使用多个读取电压组中的多个第二读取电压组读取所述第一实体程序化单元以分别获得多个第二数据,并对所述多个第二数据中的每一个第二数据执行所述第一解码操作。其中所述多个第二读取电压组的数量小于所述多个读取电压组的数量且所述多个第二读取电压组不同于所述多个第一读取电压组。
在本发明的一实施例中,当对所述多个第二数据中的每一个第二数据执行所述第一解码操作皆发生失败时,所述存储器控制电路单元还用以执行所述多个指令中不同于所述第一读取指令的其他指令。当所述多个指令中已被执行的不同于所述第一读取指令的其他指令的数量达到一门槛值时,所述存储器控制电路单元还用以根据所述多个指令中的所述第一读取指令,使用所述多个读取电压组中所述多个第一读取电压组与所述多个第二读取电压组以外的至少一剩余读取电压组读取所述第一实体程序化单元以获得至少一第三数据,并对所述第三数据执行所述第一解码操作。
在本发明的一实施例中,当对所述第三数据执行所述第一解码操作发生失败时,所述存储器控制电路单元还用以读取所述第一实体程序化单元以获得一第四数据,并对所述第四数据执行一第二解码操作。其中所述第一解码操作所使用的算法不同于所述第二解码操作所使用的算法。
在本发明的一实施例中,所述多个第一读取电压组的数量为大于或等于五且所述多个第一读取电压组的数量小于或等于十。
在本发明的一实施例中,所述不同于所述第一读取指令的其他指令的数量为三。
在本发明的一实施例中,所述不同于所述第一读取指令的其他指令为读取指令。
基于上述,本发明的解码方法、存储器控制电路单元以及存储器存储装置,可以在对某一个读取指令所读取出的数据执行部分的重新读取机制且该些部分的重新读取机制皆发生失败时,先暂停执行对应于该读取指令的解码,并且先执行该读取指令后续的其他指令,藉此减少后续的指令等待前一个读取指令执行完整的解码操作所花费的时间。
为让本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合所附附图作详细说明如下。
附图说明
图1是根据本发明的一范例实施例所示出的主机系统、存储器存储装置及输入/输出(I/O)装置的示意图。
图2是根据本发明的另一范例实施例所示出的主机系统、存储器存储装置及I/O装置的示意图。
图3是根据本发明的另一范例实施例所示出的主机系统与存储器存储装置的示意图。
图4是根据本发明的一范例实施例所示出的存储器存储装置的概要方块图。
图5是根据一范例实施例所示出的可复写式非易失性存储器模块的概要方块图。
图6是根据一范例实施例所示出的存储单元阵列的示意图。
图7是根据一范例实施例所示出存储于存储单元阵列中的写入数据所对应的栅极电压的统计分配图。
图8是根据一范例实施例所示出的从存储单元中读取数据的示意图。
图9是根据另一范例实施例所示出的从存储单元中读取数据的示意图。
图10是根据本范例实施例所示出的实体抹除单元的范例示意图。
图11是根据本发明的一范例实施例所示出的存储器控制电路单元的概要方块图。
图12是根据本发明的一范例实施例所示出的多框架编码的示意图。
图13是根据一范例实施例示出重新读取机制的示意图。
图14是根据一范例实施例所示出用于重新读取机制的多个读取电压组的示意图。
图15是根据一范例实施例示出解码方法的流程图。
【符号说明】
10:存储器存储装置
11:主机系统
110:系统总线
111:处理器
112:随机存取存储器
113:只读存储器
114:数据传输接口
12:输入/输出(I/O)装置
20:主机板
201:随身盘
202:存储卡
203:固态硬盘
204:无线存储器存储装置
205:全球定位系统模块
206:网络接口卡
207:无线传输装置
208:键盘
209:屏幕
210:喇叭
32:SD卡
33:CF卡
34:嵌入式存储装置
341:嵌入式多媒体卡
342:嵌入式多芯片封装存储装置
402:连接接口单元
404:存储器控制电路单元
406:可复写式非易失性存储器模块
2202:存储单元阵列
2204:字线控制电路
2206:位线控制电路
2208:行解码器
2210:数据输入/输出缓冲器
2212:控制电路
502:存储单元
504:位线
506:字线
508:共用源极线
512:选择栅漏极晶体管
514:选择栅源极晶体管
LSB:最低有效位
CSB:中间有效位
MSB:最高有效位
VA、VA1、VB、VC、VD、VE、VF、VG、1440~1444:读取电压
702:存储器管理电路
704:主机接口
706:存储器接口
708:错误检查与校正电路
710:缓冲存储器
712:电源管理电路
801(1)~801(r):位置
820:编码数据
810(0)~810(E):实体程序化单元
1410、1420:分布
1430:区域
G1~GX:读取电压组
V1~V1N、V2~V2N、V3~V3N、V4~V4N、V5~V5N、VX~VXN:读取电压
S1501:接收多个指令的步骤
S1503:根据前述多个指令中的第一读取指令,使用多个读取电压组中的多个第一读取电压组读取第一实体程序化单元以分别获得多个第一数据,并对此些第一数据中的每一个第一数据执行第一解码操作的步骤
S1505:判断所述多个第一数据的其中之一是否解码成功的步骤
S1507:执行所述多个指令中不同于第一读取指令的其他指令的步骤
S1509:根据第一读取指令,使用多个读取电压组中的多个第二读取电压组读取第一实体程序化单元以分别获得多个第二数据,并对此些第二数据中的每一个第二数据执行第一解码操作的步骤
S1511:判断所述多个第二数据的其中之一是否解码成功的步骤
S1513:执行所述多个指令中不同于第一读取指令的其他指令的步骤
S1515:当所述多个指令中已被执行的不同于第一读取指令的其他指令的数量达到一门槛值时,根据第一读取指令使用所述多个读取电压组中的剩余读取电压组读取第一实体程序化单元以获得第三数据,并对第三数据执行第一解码操作的步骤
具体实施方式
一般而言,存储器存储装置(也称,存储器存储系统)包括可复写式非易失性存储器模块(rewritable non-volatile memory module)与控制器(也称,控制电路)。通常存储器存储装置是与主机系统一起使用,以使主机系统可将数据写入至存储器存储装置或从存储器存储装置中读取数据。
图1是根据本发明的一范例实施例所示出的主机系统、存储器存储装置及输入/输出(I/O)装置的示意图。图2是根据本发明的另一范例实施例所示出的主机系统、存储器存储装置及I/O装置的示意图。
请参照图1与图2,主机系统11一般包括处理器111、随机存取存储器(randomaccess memory,RAM)112、只读存储器(read only memory,ROM)113及数据传输接口114。处理器111、随机存取存储器112、只读存储器113及数据传输接口114皆电性连接至系统总线(system bus)110。
在本范例实施例中,主机系统11是通过数据传输接口114与存储器存储装置10电性连接。例如,主机系统11可经由数据传输接口114将数据存储至存储器存储装置10或从存储器存储装置10中读取数据。此外,主机系统11是通过系统总线110与I/O装置12电性连接。例如,主机系统11可经由系统总线110将输出信号传送至I/O装置12或从I/O装置12接收输入信号。
在本范例实施例中,处理器111、随机存取存储器112、只读存储器113及数据传输接口114可设置在主机系统11的主机板20上。数据传输接口114的数目可以是一或多个。通过数据传输接口114,主机板20可以经由有线或无线方式电性连接至存储器存储装置10。存储器存储装置10可例如是随身盘201、存储卡202、固态硬盘(Solid State Drive,SSD)203或无线存储器存储装置204。无线存储器存储装置204可例如是近距离无线通讯(NearField Communication,NFC)存储器存储装置、无线传真(WiFi)存储器存储装置、蓝牙(Bluetooth)存储器存储装置或低功耗蓝牙存储器存储装置(例如,iBeacon)等以各式无线通讯技术为基础的存储器存储装置。此外,主机板20也可以通过系统总线110电性连接至全球定位系统(Global Positioning System,GPS)模块205、网络接口卡206、无线传输装置207、键盘208、屏幕209、喇叭210等各式I/O装置。例如,在一范例实施例中,主机板20可通过无线传输装置207存取无线存储器存储装置204。
在一范例实施例中,所提及的主机系统为可实质地与存储器存储装置配合以存储数据的任意系统。虽然在上述范例实施例中,主机系统是以电脑系统来作说明,然而,图3是根据本发明的另一范例实施例所示出的主机系统与存储器存储装置的示意图。请参照图3,在另一范例实施例中,主机系统31也可以是数字相机、摄影机、通讯装置、音频播放器、视频播放器或平板电脑等系统,而存储器存储装置30可为其所使用的SD卡32、CF卡33或嵌入式存储装置34等各式非易失性存储器存储装置。嵌入式存储装置34包括嵌入式多媒体卡(embedded MMC,eMMC)341和/或嵌入式多芯片封装存储装置(embedded Multi ChipPackage,eMCP)342等各类型将存储器模块直接电性连接于主机系统的基板上的嵌入式存储装置。
图4是根据本发明的一范例实施例所示出的存储器存储装置的概要方块图。
请参照图4,存储器存储装置10包括连接接口单元402、存储器控制电路单元404与可复写式非易失性存储器模块406。
在本范例实施例中,连接接口单元402是相容于串行高级附件(Serial AdvancedTechnology Attachment,SATA)标准。然而,必须了解的是,本发明不限于此,连接接口单元402也可以是符合并行高级附件(Parallel Advanced Technology Attachment,PATA)标准、电气和电子工程师协会(Institute of Electrical and Electronic Engineers,IEEE)1394标准、高速周边零件连接接口(Peripheral Component Interconnect Express,PCI Express)标准、通用串行总线(Universal Serial Bus,USB)标准、安全数字(SecureDigital,SD)接口标准、超高速一代(Ultra High Speed-I,UHS-I)接口标准、超高速二代(Ultra High Speed-II,UHS-II)接口标准、记忆棒(Memory Stick,MS)接口标准、多芯片封装(Multi-Chip Package)接口标准、多媒体存储卡(Multi Media Card,MMC)接口标准、嵌入式多媒体存储卡(Embedded Multimedia Card,eMMC)接口标准、通用快闪存储器(Universal Flash Storage,UFS)接口标准、嵌入式多芯片封装(embedded Multi ChipPackage,eMCP)接口标准、小型快闪(Compact Flash,CF)接口标准、整合式驱动电子接口(Integrated Device Electronics,IDE)标准或其他适合的标准。连接接口单元402可与存储器控制电路单元404封装在一个芯片中,或者连接接口单元402是布设于一包含存储器控制电路单元404的芯片外。
存储器控制电路单元404用以执行以硬件型式或固件型式实作的多个逻辑栅或控制指令并且根据主机系统11的指令在可复写式非易失性存储器模块406中进行数据的写入、读取与抹除等运作。
可复写式非易失性存储器模块406是电性连接至存储器控制电路单元404并且用以存储主机系统11所写入的数据。可复写式非易失性存储器模块406可以是单阶存储单元(Single Level Cell,SLC)NAND型快闪存储器模块(即,一个存储单元中可存储1个比特的快闪存储器模块)、多阶存储单元(Multi Level Cell,MLC)NAND型快闪存储器模块(即,一个存储单元中可存储2个比特的快闪存储器模块)、复数阶存储单元(Triple Level Cell,TLC)NAND型快闪存储器模块(即,一个存储单元中可存储3个比特的快闪存储器模块)、其他快闪存储器模块或其他具有相同特性的存储器模块。
可复写式非易失性存储器模块406中的存储单元是以阵列的方式设置。以下以二维阵列来对存储单元阵列进行说明。但是,在此须注意的是,以下范例实施例只是存储单元阵列的一种范例,在其他的范例实施例中,存储单元阵列的配置方式可以被调整以符合实务上的需求。
图5是根据一范例实施例所示出的可复写式非易失性存储器模块的概要方块图。图6是根据一范例实施例所示出的存储单元阵列的示意图。
请同时参照图5与图6,可复写式非易失性存储器模块406包括存储单元阵列2202、字线控制电路2204、位线控制电路2206、行解码器(column decoder)2208、数据输入/输出缓冲器2210与控制电路2212。
在本范例实施例中,存储单元阵列2202可包括用以存储数据的多个存储单元502、多个选择栅漏极(select gate drain,SGD)晶体管512与多个选择栅源极(select gatesource,SGS)晶体管514、以及连接此些存储单元的多条位线504、多条字线506、与共用源极线508(如图6所示)。存储单元502是以阵列方式(或立体堆叠的方式)配置在位线504与字线506的交叉点上。当从存储器控制电路单元404接收到写入指令或读取指令时,控制电路2212会控制字线控制电路2204、位线控制电路2206、行解码器2208、数据输入/输出缓冲器2210来写入数据至存储单元阵列2202或从存储单元阵列2202中读取数据,其中字线控制电路2204用以控制施予至字线506的电压,位线控制电路2206用以控制施予至位线504的电压,行解码器2208依据指令中的列地址以选择对应的位线,并且数据输入/输出缓冲器2210用以暂存数据。
可复写式非易失性存储器模块406中的存储单元是以临界电压的改变来存储多比特(bits)。具体来说,每一个存储单元的控制栅极(control gate)与通道之间有一个电荷捕捉层。通过施予一写入电压至控制栅极,可以改变电荷补捉层的电子量,因而改变了存储单元的临界电压。此改变临界电压的程序也称为“把数据写入至存储单元”或“程序化存储单元”。随着临界电压的改变,存储单元阵列2202的每一存储单元具有多个存储状态。并且通过读取电压可以判断存储单元是属于哪一个存储状态,藉此取得存储单元所存储的比特。
图7是根据一范例实施例所示出存储于存储单元阵列中的写入数据所对应的栅极电压的统计分配图。
请参照图7,以MLC NAND型快闪存储器为例,随着不同的临界电压,每一存储单元具有4种存储状态,并且此些存储状态分别地代表"11"、"10"、"00"与"01"等比特。换言之,每一个存储状态包括最低有效位(Least Significant Bit,LSB)以及最高有效位(MostSignificant Bit,MSB)。在本范例实施例中,存储状态(即,"11"、"10"、"00"与"01")中从左侧算起的第1个比特为LSB,而从左侧算起的第2个比特为MSB。因此,在此范例实施例中,每一存储单元可存储2个比特。必须了解的是,图7所示出的临界电压及其存储状态的对应仅为一个范例。在本发明另一范例实施例中,临界电压与存储状态的对应也可是随着临界电压越大而以"11"、"10"、"01"与"00"排列,或是其他排列。此外,在另一范例实施例中,也可定义从左侧算起的第1个比特为MSB,而从左侧算起的第2个比特为LSB。
在一个存储单元可以存储多个比特(例如,MLC或TLC NAND快闪存储器模块)的范例实施例中,属于同一条字线的实体程序化单元至少可被分类为下实体程序化单元与上实体程序化单元。例如,在MLC NAND快闪存储器模块中,一存储单元的最低有效位(LeastSignificant Bit,LSB)是属于下实体程序化单元,并且此存储单元的最高有效位(MostSignificant Bit,MSB)是属于上实体程序化单元。在一范例实施例中,下实体程序化单元也称为快页(fast page),而上实体程序化单元也称为慢页(slow page)。此外,在TLC NAND快闪存储器模块中,一存储单元的最低有效位(Least Significant Bit,LSB)是属于下实体程序化单元,此存储单元的中间有效位(Center Significant Bit,CSB)是属于中实体程序化单元,并且此存储单元的最高有效位(Most Significant Bit,MSB)是属于上实体程序化单元。
图8是根据一范例实施例所示出的从存储单元中读取数据的示意图,其是以MLCNAND型快闪存储器为例。
请参照图8,存储单元阵列2202的存储单元的读取运作是通过施予读取电压VA~VC于控制栅极,通过存储单元通道的导通状态,来识别存储单元存储的数据。验证比特(VA)是用以指示施予读取电压VA时存储单元通道是否为导通;验证比特(VC)是用以指示施予读取电压VC时,存储单元通道是否为导通;验证比特(VB)是用以指示施予读取电压VB时,存储单元通道是否为导通。在此假设验证比特是“1”时表示对应的存储单元通道导通,而验证比特是“0”时表示对应的存储单元通道没有导通。如图8所示,通过验证比特(VA)~(VC)可以判断存储单元是处于哪一个存储状态,进而取得所存储的比特。
图9是根据另一范例实施例所示出的从存储单元中读取数据的示意图。
请参照图9,以一TLC NAND型快闪存储器为例,每一个存储状态包括左侧算起的第1个比特的最低有效位LSB、从左侧算起的第2个比特的中间有效位(Center SignificantBit,CSB)以及从左侧算起的第3个比特的最高有效位MSB。在此范例中,依照不同的临界电压,存储单元具有8种存储状态(即,"111"、"110"、"100"、"101"、"001"、"000"、"010"与"011")。通过施加读取电压VA~VG于控制栅极,可以识别存储单元所存储的比特。
其中,值得说明的是,图9的8种存储状态的排列顺序,可依制造商的设计而订,非以本范例的排列方式为限。
此外,可复写式非易失性存储器模块406的存储单元会构成多个实体程序化单元,并且此些实体程序化单元会构成多个实体抹除单元。具体而言,图6中同一条字线上的存储单元会组成一或多个实体程序化单元。例如,若可复写式非易失性存储器模块406为MLCNAND型快闪存储器模块,则同一条字线与多条位线的交错处上的存储单元会构成2个实体程序化单元,亦即上实体程序化单元与下实体程序化单元。而一个上实体程序化单元与一个下实体程序化单元可以统称为一实体程序化单元组。特别是,倘若欲读取的数据位于一实体程序化单元组的一下实体程序化单元时,可以采用如图8中的读取电压VA来识别此下实体程序化单元中每一比特的值。倘若欲读取的数据位于一实体程序化单元组的一上实体程序化单元时,可以采用如图8中读取电压VB与读取电压VC来识别此上实体程序化单元中每一比特的值。
或者,若可复写式非易失性存储器模块406为TLC NAND型快闪存储器模块,则同一条字线与多条位线的交错处上的存储单元会构成3个实体程序化单元,亦即上实体程序化单元、中实体程序化单元与下实体程序化单元。而一个上实体程序化单元、一个中实体程序化单元与一个下实体程序化单元可以统称为一实体程序化单元组。特别是,倘若欲读取的数据位于一实体程序化单元组的一下实体程序化单元时,可以采用如图9中的读取电压VA来识别此下实体程序化单元中每一比特的值。倘若欲读取的数据位于一实体程序化单元组的一中实体程序化单元时,可以采用如图9中的读取电压VB与读取电压VC来识别此中实体程序化单元中每一比特的值。倘若欲读取的数据位于一实体程序化单元组的一上实体程序化单元时,可以采用如图9中的读取电压VD、读取电压VE、读取电压VF与读取电压VG来识别此上实体程序化单元中每一比特的值。
在本范例实施例中,实体程序化单元为程序化的最小单元。即,实体程序化单元为写入数据的最小单元。例如,实体程序化单元为实体页面(page)或是实体扇(sector)。若实体程序化单元为实体页面,则此些实体程序化单元通常包括数据比特区与冗余(redundancy)比特区。数据比特区包含多个实体扇,用以存储使用者数据,而冗余比特区用以存储系统数据(例如,错误更正码)。在本范例实施例中,数据比特区包含32个实体扇,且一个实体扇的大小为512字节(byte,B)。然而,在其他范例实施例中,数据比特区中也可包含8个、16个或数目更多或更少的实体扇,并且每一个实体扇的大小也可以是更大或更小。另一方面,实体抹除单元为抹除的最小单位。亦即,每一实体抹除单元含有最小数目的一并被抹除的存储单元。例如,实体抹除单元为实体区块(block)。
图10是根据本范例实施例所示出的实体抹除单元的范例示意图。
请参照图10,在本范例实施例中,假设一个实体抹除单元是由多个实体程序化单元组所组成,其中每个实体程序化单元组包括由排列在同一条字线上的数个存储单元所组成的下实体程序化单元、中实体程序化单元与上实体程序化单元。例如,在实体抹除单元中,属于下实体程序化单元的第0个实体程序化单元、属于中实体程序化单元的第1个实体程序化单元和属于上实体程序化单元的第2个实体程序化单元会被视为一个实体程序化单元组。类似地,第3、4、5个实体程序化单元会被视为一个实体程序化单元组,并且以此类推其他实体程序化单元也是依据此方式被区分为多个实体程序化单元组。
图11是根据本发明的一范例实施例所示出的存储器控制电路单元的概要方块图。
请参照图11,存储器控制电路单元404包括存储器管理电路702、主机接口704、存储器接口706及错误检查与校正电路708。
存储器管理电路702用以控制存储器控制电路单元404的整体运作。具体来说,存储器管理电路702具有多个控制指令,并且在存储器存储装置10运作时,此些控制指令会被执行以进行数据的写入、读取与抹除等运作。以下说明存储器管理电路702或任何包含于存储器控制电路单元404中的电路元件的操作时,等同于说明存储器控制电路单元404的操作。
在本范例实施例中,存储器管理电路702的控制指令是以固件型式来实作。例如,存储器管理电路702具有微处理器单元(未示出)与只读存储器(未示出),并且此些控制指令是被烧录至此只读存储器中。当存储器存储装置10运作时,此些控制指令会由微处理器单元来执行以进行数据的写入、读取与抹除等运作。
在另一范例实施例中,存储器管理电路702的控制指令也可以程序码型式存储于可复写式非易失性存储器模块406的特定区域(例如,存储器模块中专用于存放系统数据的系统区)中。此外,存储器管理电路702具有微处理器单元(未示出)、只读存储器(未示出)及随机存取存储器(未示出)。特别是,此只读存储器具有开机码(boot code),并且当存储器控制电路单元404被致能时,微处理器单元会先执行此开机码来将存储于可复写式非易失性存储器模块406中的控制指令载入至存储器管理电路702的随机存取存储器中。之后,微处理器单元会运转此些控制指令以进行数据的写入、读取与抹除等运作。
此外,在另一范例实施例中,存储器管理电路702的控制指令也可以一硬件型式来实作。例如,存储器管理电路702包括微控制器、存储单元管理电路、存储器写入电路、存储器读取电路、存储器抹除电路与数据处理电路。存储单元管理电路、存储器写入电路、存储器读取电路、存储器抹除电路与数据处理电路是电性连接至微控制器。存储单元管理电路用以管理可复写式非易失性存储器模块406的存储单元或其群组。存储器写入电路用以对可复写式非易失性存储器模块406下达写入指令序列以将数据写入至可复写式非易失性存储器模块406中。存储器读取电路用以对可复写式非易失性存储器模块406下达读取指令序列以从可复写式非易失性存储器模块406中读取数据。存储器抹除电路用以对可复写式非易失性存储器模块406下达抹除指令序列以将数据从可复写式非易失性存储器模块406中抹除。数据处理电路用以处理欲写入至可复写式非易失性存储器模块406的数据以及从可复写式非易失性存储器模块406中读取的数据。写入指令序列、读取指令序列及抹除指令序列可分别包括一或多个程序码或指令码并且用以指示可复写式非易失性存储器模块406执行相对应的写入、读取及抹除等操作。在一范例实施例中,存储器管理电路702还可以下达其他类型的指令序列给可复写式非易失性存储器模块406以指示执行相对应的操作。
主机接口704是电性连接至存储器管理电路702并且用以接收与识别主机系统11所传送的指令与数据。也就是说,主机系统11所传送的指令与数据会通过主机接口704来传送至存储器管理电路702。在本范例实施例中,主机接口704是相容于SATA标准。然而,必须了解的是本发明不限于此,主机接口704也可以是相容于PATA标准、IEEE 1394标准、PCIExpress标准、USB标准、SD标准、UHS-I标准、UHS-II标准、MS标准、MMC标准、eMMC标准、UFS标准、CF标准、IDE标准或其他适合的数据传输标准。
存储器接口706是电性连接至存储器管理电路702并且用以存取可复写式非易失性存储器模块406。也就是说,欲写入至可复写式非易失性存储器模块406的数据会经由存储器接口706转换为可复写式非易失性存储器模块406所能接受的格式。具体来说,若存储器管理电路702要存取可复写式非易失性存储器模块406,存储器接口706会传送对应的指令序列。例如,这些指令序列可包括指示写入数据的写入指令序列、指示读取数据的读取指令序列、指示抹除数据的抹除指令序列、以及用以指示各种存储器操作(例如,改变读取电压电平或执行垃圾回收程序等等)的相对应的指令序列。这些指令序列例如是由存储器管理电路702产生并且通过存储器接口706传送至可复写式非易失性存储器模块406。这些指令序列可包括一或多个信号,或是在总线上的数据。这些信号或数据可包括指令码或程序码。例如,在读取指令序列中,会包括读取的识别码、存储器地址等信息。
错误检查与校正电路708是电性连接至存储器管理电路702并且用以执行错误检查与校正程序以确保数据的正确性。具体来说,当存储器管理电路702从主机系统11中接收到写入指令时,错误检查与校正电路708会为对应此写入指令的数据产生对应的错误更正码(error correcting code,ECC)和/或错误检查码(error detecting code,EDC),并且存储器管理电路702会将对应此写入指令的数据与对应的错误更正码和/或错误检查码写入至可复写式非易失性存储器模块406中。之后,当存储器管理电路702从可复写式非易失性存储器模块406中读取数据时会同时读取此数据对应的错误更正码和/或错误检查码,并且错误检查与校正电路708会依据此错误更正码和/或错误检查码对所读取的数据执行错误检查与校正程序。
在一范例实施例中,存储器控制电路单元404还包括缓冲存储器710与电源管理电路712。
缓冲存储器710是电性连接至存储器管理电路702并且用以暂存来自于主机系统11的数据与指令或来自于可复写式非易失性存储器模块406的数据。电源管理电路712是电性连接至存储器管理电路702并且用以控制存储器存储装置10的电源。
在本范例实施例中,错误检查与校正电路708可以针对存储于同一个实体程序化单元中的数据进行单框架(single-frame)编码,也可以针对存储于多个实体程序化单元中的数据进行多框架(multi-frame)编码。单框架编码与多框架编码可以分别采用低密度奇偶检查校正码(low density parity code,LDPC)、BCH码、回旋码(convolutional code)或涡轮码(turbo code)等编码算法的至少其中之一。或者,在一范例实施例中,多框架编码还可以采用里德-所罗门码(Reed-solomon codes,RS codes)算法或互斥或(XOR)算法。此外,在另一范例实施例中,更多未列于上的编码算法也可以被采用,在此便不赘述。根据所采用的编码算法,错误检查与校正电路708可以编码欲保护的数据来产生相对应的错误更正码和/或错误检查码。为了说明方便,以下将经由编码产生的错误更正码和/或错误检查码统称为编码数据。图12是根据本发明的一范例实施例所示出的多框架编码的示意图。
请参照图12,以编码实体程序化单元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)中读取的数据进行解码,以尝试更正所读取的数据中可能存在的错误。
此外,在图12的另一范例实施例中,用于产生编码数据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)机制进行读取发生失败时,会改用多框架编码产生的编码数据进行解码。
特别是,图13是根据一范例实施例示出重新读取机制的示意图。
请参照图13,在此以SLC快闪存储器为例,分布1410与分布1420是用来表示多个第一存储单元的存储状态,而分布1410与1420分别代表着不同的存储状态。这些第一存储单元可以属于同样的实体程序化单元或是不同的实体程序化单元,本发明并不在此限制。在此假设当一个存储单元属于分布1410时,此存储单元所存储的是比特“1”;当存储单元属于分布1420时,此存储单元存储的是比特“0”。当存储器管理电路702以读取电压1440来读取存储单元时,存储器管理电路702会取得验证比特,其是用来指示此存储单元是否为导通。在此假设存储单元导通时验证比特是“1”,反之则是“0”,但本发明并不在此限制。若此验证比特为“1”,则存储器管理电路702会判断此存储单元属于分布1410,反之则是分布1420。然而,分布1410与分布1420在区域1430中是重叠的。也就是说,有若干个存储单元应该是属于分布1410但被识别为分布1420,并且有若干个存储单元应该是属于分布1420但被识别为分布1410。
在此范例实施例中,当要读取这些存储单元时,存储器管理电路702会先选择一预设的读取电压(例如,读取电压1441)来读取这些存储单元以取得这些存储单元的验证比特。错误检查与校正电路708会根据这些存储单元的验证比特来执行解码操作,以产生多个解码比特,而此些解码比特可以组成一个解码后的数据(也称为,码字)。
若解码失败,表示这些存储单元存储有不可更正的错误比特。若解码失败,在重新读取机制中,存储器管理电路702会重新取得另一读取电压,并用此另一读取电压(例如读取电压1442)来读取这些第一存储单元,以重新取得存储单元的验证比特。存储器管理电路702会根据重新取得的验证比特来执行上述的解码操作以取得由多个解码比特组成的另一解码后的数据。在一范例实施例中,错误检查与校正电路708会根据该另一解码后的数据所对应的校验子判断所述另一解码后的数据是否为有效的码字。若所述另一解码后的数据非为有效的码字时,存储器管理电路702会判断解码失败。若重新取得读取电压的次数没有超过预设次数,则存储器管理电路702会再重新取得其他读取电压(例如,读取电压1443),并且根据重新取得的读取电压1443读取存储单元,以重新取得验证比特并执行第一解码操作。
换句话说,当有不可更正的错误比特时,通过重新取得读取电压,一些存储单元的验证比特会被改变,进而有机会改变解码操作的解码结果。逻辑上来说,上述重新取得读取电压的动作是要翻转(flip)一个码字中的若干比特,并对新的码字重新解码。在一些情况下,在翻转前无法解码的码字(有不可更正的错误比特),有可能在翻转后可以解码。并且,在一范例实施例中存储器管理电路702会尝试解码数次,直到尝试的次数超过预设次数为止。然而,本发明并不限制预设次数为多少。
需说明的是,使用单框架编码所产生的编码数据所执行的解码操作可以分成硬比特(hard bit mode)模式解码与软比特模式(soft bit mode)解码。在硬比特模式解码与软比特模式解码的过程中,均需根据存储单元的“解码初始值”来进行解码。在硬比特模式解码的过程中,存储单元的解码初始值是根据一个验证比特而被分为两个数值(例如,n与-n)。例如,若验证比特是”1”,存储器管理电路702会设定对应的存储单元的解码初始值为-n;若验证比特是”0”,则解码初始值为n。其中n为正数,但本发明并不限制正整数n的值为多少。也就是说,根据两种数值来执行的叠代解码也被称为硬比特模式(hard bit mode)解码。然而,上述改变读取电压的步骤也可以应用在软比特模式(soft bit mode)解码,其中每一个存储单元的解码初始值是根据多个验证比特所决定。值得注意的是,不论是硬比特模式或是软比特模式,在叠代解码中都会计算比特的机率值,因此都属于机率解码算法。而硬比特模式解码与软比特模式解码的详细执行过程可以由现有技术而得知,在此不再赘述。
值得注意的是,在图13中所举的是SLC快闪存储器的例子,但重新取得读取电压的步骤也可以适用于MLC或是TLC快闪存储器。如图8所示,改变读取电压VA会翻转一个存储单元的LSB,而改变读取电压VB或VC则可以翻转一个存储单元的MSB。因此,改变读取电压VA、VB或VC都可以将一个码字改变为另一个码字。改变码字的结果也适用于图9的TLC快闪存储器。本发明并不限制所使用的是SLC、MLC或是TLC快闪存储器。需说明的是,读取电压VA~VC可以统称为一个读取电压组。而存储器管理电路702例如可以从多个读取电压组中挑选出某一组读取电压组来读取存储单元。
在此需说明的是,在本实施例中,当欲读取可复写式非易失性存储器模块406中的一实体程序化单元时,存储器管理电路702会先使用一预设电压组来读取该实体程序化单元并根据使用此预设电压组读取出的数据执行硬比特模式解码。当解码发生失败时,会执行前述的重新读取机制以再次地执行硬比特模式解码。当重新读取(Retry-Read)机制进行读取发生失败时,存储器管理电路702会执行软比特模式解码。当软比特模式解码发生失败时,存储器管理电路702会改用多框架编码产生的编码数据进行解码。
需注意的是,当对一个读取指令所读取出的数据执行解码操作但发生解码失败而反复地执行解码操作(例如,重新读取机制)时,在该读取指令后续的读取指令都需被迫等待而无法被执行,此情况会导致读取指令的执行效率低落。
因此,本发明提出一种解码方法,当某一个读取指令(也称为,第一读取指令)用以从一实体程序化单元(也称为,第一实体程序化单元)中读取出数据时,若读取的过程中所执行的部分的重新读取机制皆发生失败时,存储器管理电路702会先暂停执行对从第一实体程序化单元中读取出的数据的解码,并且会先执行第一读取指令后续的其他指令(例如,读取指令)。在执行后续的其他指令后,存储器管理电路702会再返回执行根据第一读取指令进行读取并对第一读取指令所读取出的数据执行另一部分的重新读取机制。
更详细来说,图14是根据一范例实施例所示出用于重新读取机制的多个读取电压组的示意图。请参照图14,假设存储器管理电路702从主机系统11接收多个指令时。在此假设此些指令中包括一第一读取指令,且第一读取指令以外的其他指令也皆为读取指令。然而在其他实施例中,前述第一读取指令以外的其他指令也可以是其他的指令(例如,写入指令、抹除指令、垃圾收集指令或区块损耗平衡指令等,本发明对此不做限制)。假设此些读取指令中的第一读取指令用于读取第一实体程序化单元。首先,存储器管理电路702会先使用预设电压组(未示出)来读取该第一实体程序化单元并根据使用此预设电压组读取出的数据执行硬比特模式解码。当解码发生失败时,存储器管理电路702会执行重新读取机制以选择如图14中的读取电压组G1,并根据读取电压组G1中的读取电压V1~V1N读取第一实体程序化单元以获得使用读取电压V1~V1N所读取出的数据。之后,存储器管理电路702会对使用读取电压V1~V1N所读取出的数据再次地执行硬比特模式解码。
当对使用读取电压V1~V1N所读取出的数据执行硬比特模式解码发生失败时,存储器管理电路702会执行重新读取机制以选择如图14中的读取电压组G2,并根据读取电压组G2中的读取电压V2~V2N读取第一实体程序化单元以获得使用读取电压V2~V2N所读取出的数据。之后,存储器管理电路702会对使用读取电压V2~V2N所读取出的数据再次地执行硬比特模式解码。
当对使用读取电压V2~V2N所读取出的数据执行硬比特模式解码发生失败时,存储器管理电路702会选择如图14中的读取电压组G3,并根据读取电压组G3中的读取电压V3~V3N读取第一实体程序化单元以获得使用读取电压V3~V3N所读取出的数据。之后,存储器管理电路702会对使用读取电压V3~V3N所读取出的数据再次地执行硬比特模式解码。
当对使用读取电压V3~V3N所读取出的数据执行硬比特模式解码发生失败时,存储器管理电路702会执行重新读取机制以选择如图14中的读取电压组G4,并根据读取电压组G4中的读取电压V4~V4N读取第一实体程序化单元以获得使用读取电压V4~V4N所读取出的数据。之后,存储器管理电路702会对使用读取电压V4~V4N所读取出的数据再次地执行硬比特模式解码。
当对使用读取电压V4~V4N所读取出的数据执行硬比特模式解码发生失败时,存储器管理电路702会执行重新读取机制以选择如图14中的读取电压组G5,并根据读取电压组G5中的读取电压V5~V5N读取第一实体程序化单元以获得使用读取电压V5~V5N所读取出的数据。之后,存储器管理电路702会对使用读取电压V5~V5N所读取出的数据再次地执行硬比特模式解码。
当对使用读取电压V5~V5N所读取出的数据执行硬比特模式解码发生失败时,此时存储器管理电路702会暂停执行前述的第一读取指令,并且会执行在第一读取指令后续的不同于第一读取指令的至少一其他指令(也称为,第一其他指令)。在本实施例中,此第一其他指令的数量例如是三个。在本实施例中,假设第一读取指令在所有的指令中是排序在第一个的指令,则前述的第一其他指令则是在所有的指令中排序为第二、第三与第四个的指令。然而本发明并不用于限定第一其他指令的数量。
在此需说明的是,前述读取电压组G1~G5可以统称为“第一读取电压组”。而使用读取电压组G1~G5从第一实体程序化单元中所读取出并且用以执行硬比特模式解码的数据可以统称为“第一数据”。硬比特模式解码的操作可以称为“第一解码操作”。需注意的是,在本实施例中第一读取电压组的数量为五,然而在较佳的实施例中,第一读取电压组的数量为大于或等于五且小于或等于十。
假设在成功地执行第一其他指令后,存储器管理电路702会返回执行第一读取指令。更详细来说,存储器管理电路702会根据第一读取指令,接续执行先前尚未执行完的重新读取机制以选择如图14中的读取电压组G6(未示出),并根据读取电压组G6中的读取电压读取第一实体程序化单元并根据所读取出的数据再次地执行硬比特模式解码。
当对使用读取电压组G6所读取出的数据进行解码发生失败时,存储器管理电路702会再次地执行重新读取机制。假设在后续的重新读取机制中,存储器管理电路702对使用读取电压组G7~G10(未示出)所读取出的数据(也称为,第二数据)执行硬比特模式解码皆发生失败时,存储器管理电路702会暂停执行前述的第一读取指令,并且会执行在前述第一其他指令后续的至少一第二其他指令。在本实施例中,第二其他指令的数量例如是三个。在本实施例中,假设第一其他指令是指所有指令中排序在第二个、第三个与第四个的指令,因此第二其他指令是所有指令中排序在第五个、第六个与第七个的指令。此外,读取电压组G6~G10可以统称为“第二读取电压组”。在此需说明的是,第一其他指令与第二其他指令可以统称为“不同于第一读取指令的其他指令”。
假设在成功地执行第二其他指令后,存储器管理电路702例如会判断在第一读取指令后续被成功执行的指令的数量(即,已被执行的不同于第一读取指令的其他指令的数量)是否达到门槛值。当已被执行的不同于第一读取指令的其他指令的数量非大于门槛值时,若存储器管理电路702再次执行一部分的重新读取机制皆发生失败时,存储器管理电路702可以再次先暂停执行第一读取指令并且先执行排序在前述第二其他指令后的多个指令。
然而,当已被执行的不同于第一读取指令的其他指令的数量大于门槛值时,存储器管理电路702返回执行第一读取指令以将完整的解码流程(例如,剩余未执行的重新读取机制与软比特模式解码)执行完毕。更详细来说,存储器管理电路702会根据第一读取指令,接续执行前述尚未执行完的重新读取机制以选择如图14中的读取电压组G11(未示出),并根据读取电压组G11中的读取电压读取第一实体程序化单元并根据所读取出的数据再次地执行硬比特模式解码。当对使用读取电压组G11所读取出的数据进行解码发生失败时,存储器管理电路702会再次地执行重新读取机制。假设在后续的重新读取机制中,存储器管理电路702对使用读取电压组G12(未示出)~GX所读取出的数据执行硬比特模式解码皆发生失败时,存储器管理电路702不会暂停执行前述的第一读取指令而是根据第一读取指令执行软比特模式解码(也称为,第二解码操作)。更详细来说,存储器管理电路702例如可以使用其他读取电压组(未示出)读取第一实体程序化单元以获得一数据(也称为,第四数据),并且对此第四数据执行软比特模式解码。
在此需说明的是,使用读取电压组G11~GX所读取出的数据可以统称为“第三数据”。
图15是根据一范例实施例示出解码方法的流程图。
请参照图15,在步骤S1501中,存储器管理电路702接收多个指令。在步骤S1503中,存储器管理电路702根据前述多个指令中的第一读取指令,使用多个读取电压组中的多个第一读取电压组读取第一实体程序化单元以分别获得多个第一数据,并对此些第一数据中的每一个第一数据执行第一解码操作。在步骤S1505中,存储器管理电路702判断所述多个第一数据的其中之一是否解码成功。当所述多个第一数据的其中之一解码成功时,则结束图15的流程。当对所述多个第一数据中的每一个第一数据执行第一解码操作皆发生失败时,在步骤S1507中,存储器管理电路702执行所述多个指令中不同于第一读取指令的其他指令。之后在执行完不同于第一读取指令的其他指令后,在步骤S1509中,存储器管理电路702根据第一读取指令,使用多个读取电压组中的多个第二读取电压组读取第一实体程序化单元以分别获得多个第二数据,并对此些第二数据中的每一个第二数据执行第一解码操作。在步骤S1511中,存储器管理电路702判断所述多个第二数据的其中之一是否解码成功。当所述多个第二数据的其中之一解码成功时,会结束图14的流程。当对所述多个第二数据中的每一个第二数据执行第一解码操作皆发生失败时,在步骤S1513中,存储器管理电路702执行所述多个读取指令中不同于第一读取指令的其他指令。之后在步骤S 1515中,当所述多个指令中已被执行的不同于第一读取指令的其他指令的数量达到一门槛值时,存储器管理电路702根据第一读取指令使用所述多个读取电压组中的剩余读取电压组读取第一实体程序化单元以获得第三数据,并对第三数据执行第一解码操作。
综上所述,本发明的解码方法、存储器控制电路单元以及存储器存储装置,可以在对某一个读取指令所读取出的数据执行部分的重新读取机制且该些部分的重新读取机制皆发生失败时,先暂停执行对应于该读取指令的解码,并且先执行该读取指令后续的其他指令,藉此避免后续的指令等待前一个读取指令执行完整的解码操作所花费的时间。
虽然本发明已以实施例揭示如上,然其并非用以限定本发明,任何所属技术领域中的技术人员,在不脱离本发明的精神和范围内,当可作些许的更改与润饰,故本发明的保护范围当视权利要求所界定的为准。
Claims (21)
1.一种解码方法,用于可复写式非易失性存储器模块,所述可复写式非易失性存储器模块具有多个实体抹除单元,所述多个实体抹除单元之中的每一个实体抹除单元具有多个实体程序化单元,所述解码方法包括:
接收多个指令;
根据所述多个指令中的第一读取指令,使用多个读取电压组中的多个第一读取电压组读取第一实体程序化单元以分别获得多个第一数据,并对所述多个第一数据中的每一个第一数据执行第一解码操作,其中所述多个第一读取电压组的数量小于所述多个读取电压组的数量;
当对所述多个第一数据中的每一个第一数据执行所述第一解码操作皆发生失败时,暂停执行所述第一读取指令以及所述第一解码操作,并且执行所述多个指令中不同于所述第一读取指令的其他指令;以及
在执行所述多个指令中不同于所述第一读取指令的其他指令之后,返回执行所述第一读取指令以及所述第一解码操作。
2.根据权利要求1所述的解码方法,其中执行所述多个指令中不同于所述第一读取指令的其他指令的步骤之后,所述方法还包括:
根据所述第一读取指令,使用多个读取电压组中的多个第二读取电压组读取所述第一实体程序化单元以分别获得多个第二数据,并对所述多个第二数据中的每一个第二数据执行所述第一解码操作,
其中所述多个第二读取电压组的数量小于所述多个读取电压组的数量且所述多个第二读取电压组不同于所述多个第一读取电压组。
3.根据权利要求2所述的解码方法,所述方法还包括:
当对所述多个第二数据中的每一个第二数据执行所述第一解码操作皆发生失败时,执行所述多个指令中不同于所述第一读取指令的其他指令;以及
当所述多个指令中已被执行的不同于所述第一读取指令的其他指令的数量达到门槛值时,
根据所述多个指令中的所述第一读取指令,使用所述多个读取电压组中所述多个第一读取电压组与所述多个第二读取电压组以外的至少一剩余读取电压组读取所述第一实体程序化单元以获得至少一第三数据,并对所述第三数据执行所述第一解码操作。
4.根据权利要求3所述的解码方法,所述方法还包括:
当对所述第三数据执行所述第一解码操作发生失败时,读取所述第一实体程序化单元以获得第四数据,并对所述第四数据执行第二解码操作,
其中所述第一解码操作所使用的算法不同于所述第二解码操作所使用的算法。
5.根据权利要求1所述的解码方法,其中所述多个第一读取电压组的数量为大于或等于五且所述多个第一读取电压组的数量小于或等于十。
6.根据权利要求1所述的解码方法,其中所述不同于所述第一读取指令的其他指令的数量为三。
7.根据权利要求1所述的解码方法,其中所述不同于所述第一读取指令的其他指令为读取指令。
8.一种存储器控制电路单元,用于可复写式非易失性存储器模块,所述可复写式非易失性存储器模块具有多个实体抹除单元,所述多个实体抹除单元之中的每一个实体抹除单元具有多个实体程序化单元,所述存储器控制电路单元包括:
主机接口,用以电性连接至主机系统;
存储器接口,用以电性连接至所述可复写式非易失性存储器模块;以及
存储器管理电路,电性连接至所述主机接口以及所述存储器接口,
其中所述存储器管理电路用以接收多个指令,
其中所述存储器管理电路还用以根据所述多个指令中的第一读取指令,使用多个读取电压组中的多个第一读取电压组读取第一实体程序化单元以分别获得多个第一数据,并对所述多个第一数据中的每一个第一数据执行第一解码操作,其中所述多个第一读取电压组的数量小于所述多个读取电压组的数量,
当对所述多个第一数据中的每一个第一数据执行所述第一解码操作皆发生失败时,所述存储器管理电路还用以暂停执行所述第一读取指令以及所述第一解码操作,并且执行所述多个指令中不同于所述第一读取指令的其他指令,以及
在所述存储器管理电路执行所述多个指令中不同于所述第一读取指令的其他指令之后,返回执行所述第一读取指令以及所述第一解码操作。
9.根据权利要求8所述的存储器控制电路单元,其中在执行所述多个指令中不同于所述第一读取指令的其他指令的运作之后,
所述存储器管理电路还用以根据所述第一读取指令,使用多个读取电压组中的多个第二读取电压组读取所述第一实体程序化单元以分别获得多个第二数据,并对所述多个第二数据中的每一个第二数据执行所述第一解码操作,
其中所述多个第二读取电压组的数量小于所述多个读取电压组的数量且所述多个第二读取电压组不同于所述多个第一读取电压组。
10.根据权利要求9所述的存储器控制电路单元,其中,
当对所述多个第二数据中的每一个第二数据执行所述第一解码操作皆发生失败时,所述存储器管理电路还用以执行所述多个指令中不同于所述第一读取指令的其他指令,以及
当所述多个指令中已被执行的不同于所述第一读取指令的其他指令的数量达到门槛值时,
所述存储器管理电路还用以根据所述多个指令中的所述第一读取指令,使用所述多个读取电压组中所述多个第一读取电压组与所述多个第二读取电压组以外的至少一剩余读取电压组读取所述第一实体程序化单元以获得至少一第三数据,并对所述第三数据执行所述第一解码操作。
11.根据权利要求10所述的存储器控制电路单元,其中,
当对所述第三数据执行所述第一解码操作发生失败时,所述存储器管理电路还用以读取所述第一实体程序化单元以获得第四数据,并对所述第四数据执行第二解码操作,
其中所述第一解码操作所使用的算法不同于所述第二解码操作所使用的算法。
12.根据权利要求8所述的存储器控制电路单元,其中所述多个第一读取电压组的数量为大于或等于五且所述多个第一读取电压组的数量小于或等于十。
13.根据权利要求8所述的存储器控制电路单元,其中所述不同于所述第一读取指令的其他指令的数量为三。
14.根据权利要求8所述的存储器控制电路单元,其中所述不同于所述第一读取指令的其他指令为读取指令。
15.一种存储器存储装置,包括:
连接接口单元,用以电性连接至主机系统;
可复写式非易失性存储器模块,所述可复写式非易失性存储器模块具有多个实体抹除单元,所述多个实体抹除单元之中的每一个实体抹除单元具有多个实体程序化单元;以及
存储器控制电路单元,电性连接至所述连接接口单元与所述可复写式非易失性存储器模块,
其中所述存储器控制电路单元用以接收多个指令,
其中所述存储器控制电路单元还用以根据所述多个指令中的第一读取指令,使用多个读取电压组中的多个第一读取电压组读取第一实体程序化单元以分别获得多个第一数据,并对所述多个第一数据中的每一个第一数据执行第一解码操作,其中所述多个第一读取电压组的数量小于所述多个读取电压组的数量,
当对所述多个第一数据中的每一个第一数据执行所述第一解码操作皆发生失败时,所述存储器控制电路单元还用以暂停执行所述第一读取指令以及所述第一解码操作,并且执行所述多个指令中不同于所述第一读取指令的其他指令,以及
在所述存储器控制电路单元执行所述多个指令中不同于所述第一读取指令的其他指令之后,返回执行所述第一读取指令以及所述第一解码操作。
16.根据权利要求15所述的存储器存储装置,其中在执行所述多个指令中不同于所述第一读取指令的其他指令的运作之后,
所述存储器控制电路单元还用以根据所述第一读取指令,使用多个读取电压组中的多个第二读取电压组读取所述第一实体程序化单元以分别获得多个第二数据,并对所述多个第二数据中的每一个第二数据执行所述第一解码操作,
其中所述多个第二读取电压组的数量小于所述多个读取电压组的数量且所述多个第二读取电压组不同于所述多个第一读取电压组。
17.根据权利要求16所述的存储器存储装置,其中,
当对所述多个第二数据中的每一个第二数据执行所述第一解码操作皆发生失败时,所述存储器控制电路单元还用以执行所述多个指令中不同于所述第一读取指令的其他指令,以及
当所述多个指令中已被执行的不同于所述第一读取指令的其他指令的数量达到门槛值时,
所述存储器控制电路单元还用以根据所述多个指令中的所述第一读取指令,使用所述多个读取电压组中所述多个第一读取电压组与所述多个第二读取电压组以外的至少一剩余读取电压组读取所述第一实体程序化单元以获得至少一第三数据,并对所述第三数据执行所述第一解码操作。
18.根据权利要求17所述的存储器存储装置,其中,
当对所述第三数据执行所述第一解码操作发生失败时,所述存储器控制电路单元还用以读取所述第一实体程序化单元以获得第四数据,并对所述第四数据执行第二解码操作,
其中所述第一解码操作所使用的算法不同于所述第二解码操作所使用的算法。
19.根据权利要求15所述的存储器存储装置,其中所述多个第一读取电压组的数量为大于或等于五且所述多个第一读取电压组的数量小于或等于十。
20.根据权利要求15所述的存储器存储装置,其中所述不同于所述第一读取指令的其他指令的数量为三。
21.根据权利要求15所述的存储器存储装置,其中所述不同于所述第一读取指令的其他指令为读取指令。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910034821.XA CN111435604B (zh) | 2019-01-15 | 2019-01-15 | 解码方法、存储器控制电路单元以及存储器存储装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910034821.XA CN111435604B (zh) | 2019-01-15 | 2019-01-15 | 解码方法、存储器控制电路单元以及存储器存储装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111435604A CN111435604A (zh) | 2020-07-21 |
CN111435604B true CN111435604B (zh) | 2023-05-02 |
Family
ID=71580202
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910034821.XA Active CN111435604B (zh) | 2019-01-15 | 2019-01-15 | 解码方法、存储器控制电路单元以及存储器存储装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111435604B (zh) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107844431A (zh) * | 2017-11-03 | 2018-03-27 | 合肥兆芯电子有限公司 | 映射表更新方法、存储器控制电路单元与存储器存储装置 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20130034522A (ko) * | 2011-09-28 | 2013-04-05 | 삼성전자주식회사 | 비휘발성 메모리 장치의 데이터 리드 방법, 및 이를 수행하는 장치 |
TWI582779B (zh) * | 2015-04-14 | 2017-05-11 | 群聯電子股份有限公司 | 讀取電壓準位估測方法、記憶體儲存裝置及記憶體控制電路單元 |
TWI562152B (en) * | 2015-05-29 | 2016-12-11 | Phison Electronics Corp | Decoding method, memory storage device and memory control circuit unit |
TWI611410B (zh) * | 2016-05-13 | 2018-01-11 | 群聯電子股份有限公司 | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 |
KR102302187B1 (ko) * | 2017-03-13 | 2021-09-14 | 삼성전자주식회사 | 비휘발성 메모리 장치의 동작 방법 및 비휘발성 메모리 장치 |
-
2019
- 2019-01-15 CN CN201910034821.XA patent/CN111435604B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107844431A (zh) * | 2017-11-03 | 2018-03-27 | 合肥兆芯电子有限公司 | 映射表更新方法、存储器控制电路单元与存储器存储装置 |
Also Published As
Publication number | Publication date |
---|---|
CN111435604A (zh) | 2020-07-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI628660B (zh) | 解碼方法、記憶體控制電路單元以及記憶體儲存裝置 | |
CN106297883B (zh) | 解码方法、存储器存储装置及存储器控制电路单元 | |
TWI725368B (zh) | 解碼方法、記憶體控制電路單元以及記憶體儲存裝置 | |
TW201928975A (zh) | 位元標記方法、記憶體控制電路單元以及記憶體儲存裝置 | |
CN111415692A (zh) | 解码方法、存储器控制电路单元以及存储器存储装置 | |
CN107146638B (zh) | 译码方法、存储器储存装置及存储器控制电路单元 | |
CN109901784B (zh) | 数据存取方法、存储器控制电路单元以及存储器储存装置 | |
US11190217B2 (en) | Data writing method, memory controlling circuit unit and memory storage device | |
TWI681396B (zh) | 解碼方法、記憶體控制電路單元以及記憶體儲存裝置 | |
TWI691962B (zh) | 解碼方法、記憶體控制電路單元與記憶體儲存裝置 | |
CN111580741B (zh) | 数据写入方法、存储器控制电路单元与存储器存储装置 | |
CN112799874B (zh) | 存储器控制方法、存储器存储装置及存储器控制电路单元 | |
CN111508546B (zh) | 解码方法、存储器控制电路单元与存储器存储装置 | |
CN107179960B (zh) | 解码方法、存储器控制电路单元及存储器存储装置 | |
CN111435604B (zh) | 解码方法、存储器控制电路单元以及存储器存储装置 | |
TWI681393B (zh) | 解碼方法、記憶體控制電路單元以及記憶體儲存裝置 | |
CN111324478B (zh) | 解码方法、存储器控制电路单元以及存储器存储装置 | |
TWI742509B (zh) | 資料寫入方法、記憶體控制電路單元以及記憶體儲存裝置 | |
CN112634972B (zh) | 电压识别方法、存储器控制电路单元以及存储器储存装置 | |
TWI705449B (zh) | 電壓識別方法、記憶體控制電路單元以及記憶體儲存裝置 | |
CN110797069A (zh) | 电压调整方法、存储器控制电路单元以及存储器存储装置 | |
US11430538B1 (en) | Memory control method, memory storage device, and memory control circuit unit | |
CN113138947B (zh) | 数据写入方法、存储器控制电路单元以及存储器存储装置 | |
CN113496752B (zh) | 解码方法、存储器存储装置及存储器控制电路单元 | |
CN111666174B (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 |