CN109710450B - 数据编码方法、存储器控制电路单元与存储器存储装置 - Google Patents
数据编码方法、存储器控制电路单元与存储器存储装置 Download PDFInfo
- Publication number
- CN109710450B CN109710450B CN201711006199.9A CN201711006199A CN109710450B CN 109710450 B CN109710450 B CN 109710450B CN 201711006199 A CN201711006199 A CN 201711006199A CN 109710450 B CN109710450 B CN 109710450B
- Authority
- CN
- China
- Prior art keywords
- data
- physical programming
- programming unit
- sub
- encoded data
- 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
-
- 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
- Storage Device Security (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明提供一种数据编码方法、存储器控制电路单元与存储器存储装置。所述方法包括:将第一数据写入至第一实体程序化单元;将第二数据写入至第二实体程序化单元;使用第一数据而不使用第二数据进行编码以产生第一编码数据;使用第二数据以及第一数据中的第一子数据进行编码以产生第二编码数据;以及将第一编码数据以及第二编码数据分别写入至第三实体程序化单元以及第四实体程序化单元。
Description
技术领域
本发明涉及一种数据编码方法、存储器控制电路单元与存储器存储装置。
背景技术
数码相机、移动电话与MP3播放器在这几年来的成长十分迅速,使得消费者对存储媒体的需求也急速增加。由于可复写式非易失性存储器模块(例如,快闪存储器)具有数据非易失性、省电、体积小,以及无机械结构等特性,所以非常适合内建于上述所举例的各种可携式多媒体装置中。
一般来说,在将数据写入至可复写式非易失性存储器模块后,通常会对已写入的数据进行编码以产生编码数据。此编码数据可以用于之后在存取时对于数据的错误检测与更正。然而在可复写式非易失性存储器模块中,在对于不同的字符线上的存储单元所形成的实体程序化单元写入数据时可能会因可复写式非易失性存储器模块物理上的特性造成不同的字符线上的实体程序化单元产生错误的机率不相同。而在产生编码数据的过程中,若一编码数据皆是使用错误率较高的实体程序化单元中的数据进行编码所产生时,此编码数据用于错误检测与更正的能力也相对地较低。
发明内容
本发明提供一种数据编码方法、存储器控制电路单元与存储器存储装置,可以将可复写式非易失性存储器模块分为至少两个区域,每个区域可以使用各自的编码方法来产生编码数据,藉以提升用于对错误率较高的字符线中的数据进行解码的编码数据的错误检测与更正能力。
本发明提出一种数据编码方法,用于可复写式非易失性存储器模块,其中所述可复写式非易失性存储器模块包括多个实体程序化单元,所述方法包括:将第一数据写入至所述多个实体程序化单元中的第一实体程序化单元;将第二数据写入至所述多个实体程序化单元中的第二实体程序化单元;使用所述第一数据而不使用所述第二数据进行编码以产生第一编码数据;使用所述第二数据以及所述第一数据中的至少一第一子数据进行编码以产生第二编码数据;以及将所述第一编码数据以及所述第二编码数据分别写入至所述多个实体程序化单元中的第三实体程序化单元以及第四实体程序化单元。
在本发明的一实施例中,所述第一编码数据用以更正所述第一实体程序化单元中所存储的数据的错误,所述第二编码数据用以更正所述第一实体程序化单元中所存储的数据的错误或更正所述第二实体程序化单元中所存储的数据的错误。
在本发明的一实施例中,所述可复写式非易失性存储器模块至少包括第一区域与第二区域,所述多个实体程序化单元分别属于所述第一区域与所述第二区域的至少其中之一,所述第一区域的实体程序化单元中所存储的数据的错误率大于所述第二区域的实体程序化单元中所存储的数据的错误率,所述第一区域的实体程序化单元包括所述第一实体程序化单元,且所述第二区域的实体程序化单元包括所述第二实体程序化单元。
在本发明的一实施例中,所述可复写式非易失性存储器模块包括多个字符线,多个存储单元被配置于所述多个字符线,所述多个字符线中的多个第一字符线上的多个第一存储单元形成所述第一区域的实体程序化单元,所述多个字符线中的多个第二字符线上的多个第二存储单元形成所述第二区域的实体程序化单元。所述方法还包括:决定所述多个字符线中的第三字符线以根据所述第三字符线识别所述多个字符线中的所述多个第一字符线与所述多个第二字符线,其中所述多个第一字符线包括位于对应于所述第三字符线的第一方向上的所述多个字符线中的至少一第四字符线,所述多个第二字符线包括位于对应于所述第三字符线的第二方向上的所述多个字符线中的至少一第五字符线。
在本发明的一实施例中,其中决定所述多个字符线中的所述第三字符线的步骤包括:预先决定或动态地决定所述多个字符线中的所述第三字符线。
在本发明的一实施例中,所述方法还包括:使用所述第一编码数据对所述第一实体程序化单元中所存储的数据进行解码以更正所述第一实体程序化单元中所存储的数据的错误;当无法使用所述第一编码数据更正所述第一实体程序化单元中所存储的数据的错误时,使用所述第二编码数据对所述第一实体程序化单元中所存储的数据进行解码以更正所述第一实体程序化单元中所存储的数据的错误。
在本发明的一实施例中,其中所述第一编码数据是根据所述第一数据中第一数量的至少一第二子数据进行编码所产生,所述第二编码数据是根据所述第二数据中第二数量的至少一第三子数据以及所述第一数据中第三数量的所述第一子数据进行编码所产生,所述第一子数据中的每一个第一子数据、所述第二子数据中的每一个第二子数据以及所述第三子数据中的每一个第三子数据的大小皆相同,且所述第一数量小于所述第二数量与所述第三数量的总和。
在本发明的一实施例中,所述方法还包括:使用第一数据进行编码以产生第三编码数据;使用第二数据进行编码以产生第四编码数据;以及将所述第三编码数据写入至所述第一实体程序化单元以及将所述第四编码数据写入至所述第二实体程序化单元,其中所述第三编码数据用以更正所述第一实体程序化单元中所存储的数据的错误,所述第四编码数据用以更正所述第二实体程序化单元中所存储的数据的错误,其中所述第一编码数据与所述第二编码数据是根据一第一算法所产生,所述第三编码数据与所述第四编码数据是根据一第二算法所产生,所述第一算法不同于所述第二算法。
在本发明的一实施例中,其中所述第一算法为多框架编码算法,所述第二算法为单框架编码算法。
在本发明的一实施例中,其中所述多框架编码算法用以编码所述多个实体程序化单元中多个第五实体程序化单元中所存储的数据以产生第五编码数据,所述第五编码数据用以更正所述多个第五实体程序化单元中所存储的数据的错误。所述单框架编码算法用以编码所述多个实体程序化单元中单一一个第六实体程序化单元中所存储的数据以产生第六编码数据,且所述第六编码数据用以更正所述第六实体程序化单元中所存储的数据的错误。
本发明提供一种存储器控制电路单元,用于控制可复写式非易失性存储器模块,其中可复写式非易失性存储器模块包括多个实体程序化单元,所述存储器控制电路单元包括主机接口、存储器接口以及存储器管理电路。主机接口用以电性连接至主机系统。存储器接口用以电性连接至可复写式非易失性存储器模块。存储器管理电路电性连接至主机接口以及存储器接口。存储器管理电路用以执行下述运作:将第一数据写入至所述多个实体程序化单元中的第一实体程序化单元;将第二数据写入至所述多个实体程序化单元中的第二实体程序化单元;使用所述第一数据而不使用所述第二数据进行编码以产生第一编码数据;使用所述第二数据以及所述第一数据中的至少一第一子数据进行编码以产生第二编码数据;以及将所述第一编码数据以及所述第二编码数据分别写入至所述多个实体程序化单元中的第三实体程序化单元以及第四实体程序化单元。
在本发明的一实施例中,所述第一编码数据用以更正所述第一实体程序化单元中所存储的数据的错误,所述第二编码数据用以更正所述第一实体程序化单元中所存储的数据的错误或更正所述第二实体程序化单元中所存储的数据的错误。
在本发明的一实施例中,所述可复写式非易失性存储器模块至少包括第一区域与第二区域,所述多个实体程序化单元分别属于所述第一区域与所述第二区域的至少其中之一,所述第一区域的实体程序化单元中所存储的数据的错误率大于所述第二区域的实体程序化单元中所存储的数据的错误率,所述第一区域的实体程序化单元包括所述第一实体程序化单元,且所述第二区域的实体程序化单元包括所述第二实体程序化单元。
在本发明的一实施例中,所述可复写式非易失性存储器模块包括多个字符线,多个存储单元被配置于所述多个字符线,所述多个字符线中的多个第一字符线上的多个第一存储单元形成所述第一区域的实体程序化单元,所述多个字符线中的多个第二字符线上的多个第二存储单元形成所述第二区域的实体程序化单元。存储器管理电路还用以执行下述运作:决定所述多个字符线中的第三字符线以根据所述第三字符线识别所述多个字符线中的所述多个第一字符线与所述多个第二字符线,其中所述多个第一字符线包括位于对应于所述第三字符线的第一方向上的所述多个字符线中的至少一第四字符线,所述多个第二字符线包括位于对应于所述第三字符线的第二方向上的所述多个字符线中的至少一第五字符线。
在本发明的一实施例中,其中决定所述多个字符线中的所述第三字符线的运作中,存储器管理电路预先决定或动态地决定所述多个字符线中的所述第三字符线。
在本发明的一实施例中,存储器管理电路还用以执行下述运作:使用所述第一编码数据对所述第一实体程序化单元中所存储的数据进行解码以更正所述第一实体程序化单元中所存储的数据的错误;当无法使用所述第一编码数据更正所述第一实体程序化单元中所存储的数据的错误时,使用所述第二编码数据对所述第一实体程序化单元中所存储的数据进行解码以更正所述第一实体程序化单元中所存储的数据的错误。
在本发明的一实施例中,其中所述第一编码数据是根据所述第一数据中第一数量的至少一第二子数据进行编码所产生,所述第二编码数据是根据所述第二数据中第二数量的至少一第三子数据以及所述第一数据中第三数量的所述第一子数据进行编码所产生,所述第一子数据中的每一个第一子数据、所述第二子数据中的每一个第二子数据以及所述第三子数据中的每一个第三子数据的大小皆相同,且所述第一数量小于所述第二数量与所述第三数量的总和。
在本发明的一实施例中,存储器管理电路还用以执行下述运作:使用第一数据进行编码以产生第三编码数据;使用第二数据进行编码以产生第四编码数据;以及将所述第三编码数据写入至所述第一实体程序化单元以及将所述第四编码数据写入至所述第二实体程序化单元,其中所述第三编码数据用以更正所述第一实体程序化单元中所存储的数据的错误,所述第四编码数据用以更正所述第二实体程序化单元中所存储的数据的错误,其中所述第一编码数据与所述第二编码数据是根据第一算法所产生,所述第三编码数据与所述第四编码数据是根据第二算法所产生,所述第一算法不同于所述第二算法。
在本发明的一实施例中,其中所述第一算法为多框架编码算法,所述第二算法为单框架编码算法。
在本发明的一实施例中,其中所述多框架编码算法用以编码所述多个实体程序化单元中多个第五实体程序化单元中所存储的数据以产生第五编码数据,所述第五编码数据用以更正所述多个第五实体程序化单元中所存储的数据的错误。所述单框架编码算法用以编码所述多个实体程序化单元中单一一个第六实体程序化单元中所存储的数据以产生第六编码数据,且所述第六编码数据用以更正所述第六实体程序化单元中所存储的数据的错误。
本发明提供一种存储器存储装置。存储器存储装置包括连接接口单元、可复写式非易失性存储器模块以及存储器控制电路单元。连接接口单元用以电性连接至主机系统。可复写式非易失性存储器模块包括多个区域,所述多个区域中的每一个区域包括多个实体程序化单元。存储器控制电路单元电性连接至连接接口单元与可复写式非易失性存储器模块。存储器控制电路单元用以执行下述运作:将第一数据写入至所述多个实体程序化单元中的第一实体程序化单元;将第二数据写入至所述多个实体程序化单元中的第二实体程序化单元;使用所述第一数据而不使用所述第二数据进行编码以产生第一编码数据;使用所述第二数据以及所述第一数据中的至少一第一子数据进行编码以产生第二编码数据;以及将所述第一编码数据以及所述第二编码数据分别写入至所述多个实体程序化单元中的第三实体程序化单元以及第四实体程序化单元。
在本发明的一实施例中,所述第一编码数据用以更正所述第一实体程序化单元中所存储的数据的错误,所述第二编码数据用以更正所述第一实体程序化单元中所存储的数据的错误或更正所述第二实体程序化单元中所存储的数据的错误。
在本发明的一实施例中,所述可复写式非易失性存储器模块至少包括第一区域与第二区域,所述多个实体程序化单元分别属于所述第一区域与所述第二区域的至少其中之一,所述第一区域的实体程序化单元中所存储的数据的错误率大于所述第二区域的实体程序化单元中所存储的数据的错误率,所述第一区域的实体程序化单元包括所述第一实体程序化单元,且所述第二区域的实体程序化单元包括所述第二实体程序化单元。
在本发明的一实施例中,所述可复写式非易失性存储器模块包括多个字符线,多个存储单元被配置于所述多个字符线,所述多个字符线中的多个第一字符线上的多个第一存储单元形成所述第一区域的实体程序化单元,所述多个字符线中的多个第二字符线上的多个第二存储单元形成所述第二区域的实体程序化单元。存储器控制电路单元还用以执行下述运作:决定所述多个字符线中的第三字符线以根据所述第三字符线识别所述多个字符线中的所述多个第一字符线与所述多个第二字符线,其中所述多个第一字符线包括位于对应于所述第三字符线的第一方向上的所述多个字符线中的至少一第四字符线,所述多个第二字符线包括位于对应于所述第三字符线的第二方向上的所述多个字符线中的至少一第五字符线。
在本发明的一实施例中,其中决定所述多个字符线中的所述第三字符线的运作中,存储器控制电路单元预先决定或动态地决定所述多个字符线中的所述第三字符线。
在本发明的一实施例中,存储器控制电路单元还用以执行下述运作:使用所述第一编码数据对所述第一实体程序化单元中所存储的数据进行解码以更正所述第一实体程序化单元中所存储的数据的错误;当无法使用所述第一编码数据更正所述第一实体程序化单元中所存储的数据的错误时,使用所述第二编码数据对所述第一实体程序化单元中所存储的数据进行解码以更正所述第一实体程序化单元中所存储的数据的错误。
在本发明的一实施例中,其中所述第一编码数据是根据所述第一数据中第一数量的至少一第二子数据进行编码所产生,所述第二编码数据是根据所述第二数据中第二数量的至少一第三子数据以及所述第一数据中第三数量的所述第一子数据进行编码所产生,所述第一子数据中的每一个第一子数据、所述第二子数据中的每一个第二子数据以及所述第三子数据中的每一个第三子数据的大小皆相同,且所述第一数量小于所述第二数量与所述第三数量的总和。
在本发明的一实施例中,存储器控制电路单元还用以执行下述运作:使用第一数据进行编码以产生第三编码数据;使用第二数据进行编码以产生第四编码数据;以及将所述第三编码数据写入至所述第一实体程序化单元以及将所述第四编码数据写入至所述第二实体程序化单元,其中所述第三编码数据用以更正所述第一实体程序化单元中所存储的数据的错误,所述第四编码数据用以更正所述第二实体程序化单元中所存储的数据的错误,其中所述第一编码数据与所述第二编码数据是根据第一算法所产生,所述第三编码数据与所述第四编码数据是根据第二算法所产生,所述第一算法不同于所述第二算法。
在本发明的一实施例中,其中所述第一算法为多框架编码算法,所述第二算法为单框架编码算法。
在本发明的一实施例中,其中所述多框架编码算法用以编码所述多个实体程序化单元中多个第五实体程序化单元中所存储的数据以产生第五编码数据,所述第五编码数据用以更正所述多个第五实体程序化单元中所存储的数据的错误。所述单框架编码算法用以编码所述多个实体程序化单元中单一一个第六实体程序化单元中所存储的数据以产生第六编码数据,且所述第六编码数据用以更正所述第六实体程序化单元中所存储的数据的错误。
基于上述,本发明提出的数据编码方法、存储器控制电路单元与存储器存储装置可以将可复写式非易失性存储器模块分为至少两个区域,每个区域可以使用各自的编码方法来产生编码数据,藉以提升用于对错误率较高的字符线中的数据进行解码的编码数据的错误检测与更正能力。
为让本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合附图作详细说明如下。
附图说明
图1是根据本发明的一范例实施例所示出的主机系统、存储器存储装置及输入/输出(I/O)装置的示意图;
图2是根据本发明的另一范例实施例所示出的主机系统、存储器存储装置及I/O装置的示意图;
图3是根据本发明的另一范例实施例所示出的主机系统与存储器存储装置的示意图;
图4是根据本发明的一范例实施例所示出的存储器存储装置的概要方块图;
图5A是根据本发明的一范例实施例所示出的存储单元阵列的示意图;
图5B是根据本发明的另一范例实施例所示出的存储单元阵列的示意图;
图6是根据本发明的一范例实施例所示出的存储器控制电路单元的概要方块图;
图7是根据本发明的一范例实施例所示出的多框架编码的示意图;
图8是根据本发明的一范例实施例所示出的数据编码方法的流程图;
图9A至图9B是根据本发明的第一范例实施例所示出的各个字符线上所存储的数据与对应的编码数据的示意图;
图10是根据本发明的第一范例实施例所示出的数据编码方法的流程图;
图11A至图11B是根据本发明的第二与第三范例实施例所示出的各个字符线上所存储的数据与对应的编码数据的示意图;
图12是根据本发明的第一范例实施例所示出的数据编码方法的流程图;
图13是根据本发明的第三范例实施例所示出的数据编码方法的流程图。
附图标号说明
10、30:存储器存储装置;
11、31:主机系统;
110:系统总线;
111:处理器;
112:随机存取存储器;
113:只读存储器;
114:数据传输接口;
12:输入/输出(I/O)装置;
20:主机板;
201:U盘;
202:存储卡;
203:固态硬盘;
204:无线存储器存储装置;
205:全球定位系统模块;
206:网络接口卡;
207:无线传输装置;
208:键盘;
209:屏幕;
210:喇叭;
32:SD卡;
33:CF卡;
34:嵌入式存储装置;
341:嵌入式多媒体卡;
342:嵌入式多芯片封装存储装置;
402:连接接口单元;
404:存储器控制电路单元;
406:可复写式非易失性存储器模块;
510:存储单元阵列;
502、522:存储单元;
504、524:比特线;
506、526(0)~526(5):字符线;
508:共用源极线;
512:选择栅漏极晶体管;
514:选择栅源极晶体管;
524(0)~524(3):比特线组;
702:存储器管理电路;
704:主机接口;
706:存储器接口;
708:错误检查与校正电路;
710:缓冲存储器;
712:电源管理电路;
801(1)~801(r):位置;
820、RS0~RS8:编码数据;
步骤S801:将第一数据写入至多个区域中的第一区域的第一实体程序化单元的步骤;
步骤S803:将第二数据写入至多个区域中的第二区域的第二实体程序化单元的步骤;
步骤S805:编码第一数据以产生第一编码数据的步骤;
步骤S807:编码第二数据以产生第二编码数据,其中编码第一数据的方法不同于编码所述第二数据的方法的步骤;
步骤S809:将第一编码数据以及第二编码数据分别写入至多个实体程序化单元中的第三实体程序化单元以及第四实体程序化单元的步骤;
P0(0)~P0(5)、P1(0)~P1(5)、P2(0)~P2(5)、P3(0)~P3(5)、P4(0)~P4(5)、P5(0)~P5(5):实体程序化单元;
A_0~A_14、B_0~B_14、C_0~C_11、D_0~D_14:子数据;
步骤S1001:将第一数据写入至多个区域中的第一区域的第一实体程序化单元的步骤;
步骤S1003:将第二数据写入至多个区域中的第二区域的第二实体程序化单元的步骤;
步骤S1005:使用第一数据而不使用第二数据进行编码以产生第一编码数据的步骤;
步骤S1007:使用第二数据以及第一数据中的至少一第一子数据进行编码以产生第二编码数据的步骤;
步骤S1009:将第一编码数据以及第二编码数据分别写入至多个实体程序化单元中的第三实体程序化单元以及第四实体程序化单元的步骤;
步骤S1201:将第一数据写入至多个区域中的第一区域的第一实体程序化单元的步骤;
步骤S1203:将第二数据写入至多个区域中的第二区域的第二实体程序化单元的步骤;
步骤S1205:编码第一数据以产生第一编码数据,其中第一编码数据是根据第一数据中第四数量的至少一第四子数据进行编码所产生的步骤;
步骤S1207:编码第二数据以产生第二编码数据,其中第二编码数据是根据第二数据中第五数量的至少一第五子数据进行编码所产生,第四子数据中的每一个第四子数据的大小相同于第五子数据中的每一个第五子数据的大小,且第四数量小于第五数量的步骤;
步骤S1209:将第一编码数据以及第二编码数据分别写入至多个实体程序化单元中的第三实体程序化单元以及第四实体程序化单元的步骤;
步骤S1301:将第一数据写入至多个区域中的第一区域的第一实体程序化单元的步骤;
步骤S1303:将第二数据写入至多个区域中的第二区域的第二实体程序化单元的步骤;
步骤S1305:编码第一数据以产生第一编码数据,其中第一编码数据是根据第一数据中第一数量的至少一第二子数据进行编码所产生的步骤;
步骤S1307:编码第二数据以产生第二编码数据,其中第二编码数据是根据第二数据中第二数量的至少一第三子数据以及第一数据中第三数量的第一子数据进行编码所产生,第一子数据中的每一个第一子数据、第二子数据中的每一个第二子数据以及第三子数据中的每一个第三子数据的大小皆相同,且第一数量小于第二数量与第三数量的总和的步骤;
步骤S1309:将第一编码数据以及第二编码数据分别写入至多个实体程序化单元中的第三实体程序化单元以及第四实体程序化单元的步骤。
具体实施方式
一般而言,存储器存储装置(也称,存储器存储系统)包括可复写式非易失性存储器模块(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可例如是U盘201、存储卡202、固态硬盘(Solid State Drive,SSD)203或无线存储器存储装置204。无线存储器存储装置204可例如是近距离无线通讯(Near FieldCommunication,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是相容于串行高级技术附件(SerialAdvanced Technology Attachment,SATA)标准。然而,必须了解的是,本发明不限于此,连接接口单元402也可以是符合并行高级技术附件(Parallel Advanced TechnologyAttachment,PATA)标准、电气和电子工程师协会(Institute of Electrical andElectronic Engineers,IEEE)1394标准、高速周边零件连接接口(Peripheral ComponentInterconnect Express,PCI Express)标准、通用序列总线(Universal Serial Bus,USB)标准、安全数字(Secure Digital,SD)接口标准、超高速一代(Ultra High Speed-I,UHS-I)接口标准、超高速二代(Ultra High Speed-II,UHS-II)接口标准、存储棒(Memory Stick,MS)接口标准、多芯片封装(Multi-Chip Package)接口标准、多媒体存储卡(Multi MediaCard,MMC)接口标准、崁入式多媒体存储卡(Embedded Multimedia Card,eMMC)接口标准、通用快闪存储器(Universal Flash Storage,UFS)接口标准、嵌入式多芯片封装(embeddedMulti Chip Package,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中的存储单元是以阵列的方式设置。以下分别以二维阵列与三维阵列来对不同范例实施例中的存储单元阵列进行说明。但是,在此须注意的是,以下范例实施例只是存储单元阵列的几种范例,在其他的范例实施例中,存储单元阵列的配置方式可以被调整以符合实务上的需求。
图5A是根据本发明的一范例实施例所示出的存储单元阵列的示意图。
请参照图5A,存储单元阵列510包括用以存储数据的多个存储单元502、多个选择栅漏极(select gate drain,SGD)晶体管512与多个选择栅源极(select gate source,SGS)晶体管514、以及连接此些存储单元的多条比特线504、多条字符线506、与共用源极线508。存储单元502是以阵列方式配置在比特线504与字符线506的交叉点上。
图5B是根据本发明的另一范例实施例所示出的存储单元阵列的示意图。
请参照图5B,在本范例实施例中,存储单元阵列包括用以存储数据的多个存储单元522、多个比特线组524(0)~524(3)及多个字符线526(0)~526(5)。在图5B的范例实施例中,字符线526(0)~526(5)中的每一个字符线也可以被称作字符线层。比特线组524(0)~524(3)彼此独立(例如,彼此分离)并且沿一方向(例如,X轴)排列。比特线组524(0)~524(3)中的每一个字符线组包括彼此独立(例如,彼此分离)的多条比特线524。包含于比特线组524(0)~524(3)中的比特线524沿一方向(例如,Y轴)排列并且往另一方向(例如,Z轴)延伸。字符线526(0)~526(5)彼此独立(例如,彼此分离)并且沿上述Z轴方向堆叠。在本范例实施例中,字符线526(0)~526(5)中的每一个字符线可视为一个字符线平面。存储单元522被配置于比特线组524(0)~524(3)中的每一比特线524与字符线526(0)~526(5)之间的每一个交错处。然而,在另一范例实施例中,一个比特线组可以包括更多或更少的比特线,并且一个字符线也可以让更多或更少的比特线组通过。
可复写式非易失性存储器模块406中的每一个存储单元是基于电压(以下也称为临界电压)的改变来存储一或多个比特。当从存储器控制电路单元404接收到写入指令序列或读取指令序列时,可复写式非易失性存储器模块406中的控制电路(未示出)会控制施予至某一字符线与某一比特线(或比特线组)的电压来改变至少一存储单元的临界电压或检测所述存储单元的存储状态(state)。例如,每一个存储单元的控制栅极(control gate)与通道之间有一个电荷捕捉层。通过施予一写入电压(或程序化电压)至某一个存储单元的控制栅极,可以改变其电荷补捉层的电子量,进而改变此存储单元的临界电压。此改变临界电压的程序也称为“把数据写入至存储单元”或“程序化存储单元”。随着临界电压的改变,可复写式非易失性存储器模块406中的存储单元可具有多个存储状态。通过施予读取电压可以判断一个存储单元是属于哪一个存储状态,藉此取得此存储单元所存储的一或多个比特。
此外,可复写式非易失性存储器模块406的存储单元会构成多个实体程序化单元,并且此些实体程序化单元会构成多个实体抹除单元。具体而言,图5A中同一条字符线或图5B中同一个字符线上的存储单元会组成一或多个实体程序化单元。例如,若可复写式非易失性存储器模块406为MLC NAND型快闪存储器模块,则同一条字符线与多条比特线的交错处上的存储单元会构成2个实体程序化单元。或者,若可复写式非易失性存储器模块406为TLC NAND型快闪存储器模块,则同一条字符线与多条比特线的交错处上的存储单元会构成3个实体程序化单元。
在本范例实施例中,实体程序化单元为程序化的最小单元。即,实体程序化单元为写入数据的最小单元。例如,实体程序化单元为实体页面(page)或是实体扇(sector)。若实体程序化单元为实体页面,则此些实体程序化单元通常包括数据比特区与冗余(redundancy)比特区。数据比特区包含多个实体扇,用以存储使用者数据,而冗余比特区用以存储系统数据(例如,错误更正码)。在本范例实施例中,数据比特区包含32个实体扇,且一个实体扇的大小为512比特组(byte,B)。然而,在其他范例实施例中,数据比特区中也可包含8个、16个或数目更多或更少的实体扇,并且每一个实体扇的大小也可以是更大或更小。另一方面,实体抹除单元为抹除的最小单位。也即,每一实体抹除单元含有最小数目的一并被抹除的存储单元。例如,实体抹除单元为实体区块(block)。
在一个存储单元可以存储多个比特(例如,MLC或TLC NAND快闪存储器模块)的范例实施例中,属于同一条字符线(或同一个字符线层)的实体程序化单元至少可被分类为下实体程序化单元与上实体程序化单元。例如,在MLC NAND快闪存储器模块中,一存储单元的最低有效比特(Least Significant Bit,LSB)是属于下实体程序化单元,并且此存储单元的最高有效比特(Most Significant Bit,MSB)是属于上实体程序化单元。下实体程序化单元的可靠度一般会高于上实体程序化单元的可靠度。在一范例实施例中,下实体程序化单元也称为快页(fast page),而上实体程序化单元也称为慢页(slow page)。此外,在TLCNAND快闪存储器模块中,一存储单元的最低有效比特(Least Significant Bit,LSB)是属于下实体程序化单元,此存储单元的中间有效比特(Center Significant Bit,CSB)是属于中实体程序化单元,并且此存储单元的最高有效比特(Most Significant Bit,MSB)是属于上实体程序化单元。
图6是根据本发明的一范例实施例所示出的存储器控制电路单元的概要方块图。
请参照图6,存储器控制电路单元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可以编码欲保护的数据来产生相对应的错误更正码和/或错误检查码。为了说明方便,以下将经由编码产生的错误更正码和/或错误检查码统称为编码数据。特别是,在本发明的范例实施例中,多框架编码算法还可以称为“第一算法”,单框架编码算法还可以称为“第二算法”。
图7是根据本发明的一范例实施例所示出的多框架编码的示意图。
请参照图7,以编码实体程序化单元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)中读取的数据进行解码,以尝试更正所读取的数据中可能存在的错误。
此外,在图7的另一范例实施例中,用于产生编码数据820的数据也可能包括实体程序化单元810(0)~810(E)所存储的数据中的数据比特(data bits)所对应的冗余比特(redundancy bits)。以实体程序化单元810(0)所存储的数据为例,其中的冗余比特例如是对存储于实体程序化单元810(0)中的数据比特进行单框架编码而产生的。
在此须说明的是,由于制程技术上的关系,可复写式非易失性存储器模块406中各个字符线上的存储单元所存储的数据的错误发生机率(即,错误率)可能不相同。在本范例实施例中,以图5B的存储单元阵列为例,字符线526(0)~526(5)上的存储单元所存储的数据的错误率由大到小可能依序是字符线526(0)、字符线526(1)、字符线526(2)、字符线526(3)、字符线526(4)以及字符线526(5)。然而,在另一实施例中,字符线526(0)~526(5)上的存储单元所存储的数据的错误率由大到小也可能依序是字符线526(5)、字符线526(4)、字符线526(3)、字符线526(2)、字符线526(1)以及字符线526(0)。特别是,在从一字符线读取数据的过程中,当所读取出的数据发生错误时,需额外地从其他实体程序化单元中读取对应的编码数据以及用以产生该编码数据的相关数据以进行解码,藉此尝试更正目前所读取的数据中存在的错误。而在产生编码数据的过程中,若一码数据皆是使用错误率较低的数据(例如,字符线526(5)的存储单元中的数据)进行编码所产生时,此编码数据用于错误检测与更正的能力也相对地较高。相对地,在产生编码数据的过程中,若一码数据皆是使用错误率较高的数据(例如,字符线526(0)的存储单元中的数据)进行编码所产生时,此编码数据用于错误检测与更正的能力也相对地较低。
基于上述,本发明提出一种数据编码方法,可以将可复写式非易失性存储器模块406分为至少两个区域,每个区域可以使用各自的编码方法来产生编码数据,藉以提升用于对错误率较高的字符线(例如,字符线526(0))中的数据进行解码的编码数据的错误检测与更正能力。
图8是根据本发明的一范例实施例所示出的数据编码方法的流程图。
请参照图8,在步骤S801中,存储器管理电路702会将第一数据写入至可复写式非易失性存储器模块406的多个区域中的第一区域的第一实体程序化单元。在步骤S803中,存储器管理电路702将第二数据写入至可复写式非易失性存储器模块406的多个区域中的第二区域的第二实体程序化单元。在步骤S805中,存储器管理电路702编码第一数据以产生第一编码数据。在步骤S807中,存储器管理电路702编码第二数据以产生第二编码数据。其中,编码第一数据的方法不同于编码所述第二数据的方法。在步骤S809中,存储器管理电路702将第一编码数据以及第二编码数据分别写入至多个实体程序化单元中的第三实体程序化单元以及第四实体程序化单元。特别是,本发明并不用于限定图8中各个步骤的先后顺序。在另一实施例中,存储器管理电路702例如也可以先执行步骤S803再执行步骤S801,或者也可以先执行步骤S807再执行步骤S805。
以下以多个实施例来详细描述本发明的数据编码方法。
[第一范例实施例]
图9A至图9B是根据本发明的第一范例实施例所示出的各个字符线上所存储的数据与对应的编码数据的示意图。
请同时参照图9A与图9B,在本范例实施例中,假设可复写式非易失性存储器模块406是如图5B的存储单元阵列所构成的三维(Three-Dimension,3D)NAND型快闪存储器模块,且字符线526(0)~526(5)上的存储单元所存储的数据的错误率由大到小依序是字符线526(0)、字符线526(1)、字符线526(2)、字符线526(3)、字符线526(4)以及字符线526(5)。在本范例实施例中,假设可复写式非易失性存储器模块406中的每一条字符线上的存储单元可形成六个实体程序化单元。如图9A与图9B所示,字符线526(0)上的存储单元形成实体程序化单元P0(0)~P0(5),字符线526(1)上的存储单元形成实体程序化单元P1(0)~P1(5),字符线526(2)上的存储单元形成实体程序化单元P2(0)~P2(5),字符线526(3)上的存储单元形成实体程序化单元P3(0)~P3(5),字符线526(4)上的存储单元形成实体程序化单元P4(0)~P4(5),字符线526(5)上的存储单元形成实体程序化单元P5(0)~P5(5)。
特别是,请同时参照图5B、图9A与图9B,在本范例实施例中,存储器管理电路702会设定字符线526(0)~526(5)中的一字符线(也称为,第三字符线),并根据此第三字符线识别可复写式非易失性存储器模块406中的第一区域与第二区域。其中,第一区域包括多个第一字符线且第二区域包括多个第二字符线,第一字符线上的存储单元会形成第一区域的实体程序化单元且第二字符线上的存储单元会形成第二区域的实体程序化单元。
详细来说,假设存储器管理电路702设定字符线526(2)为上述的第三字符线,存储器管理电路702会将图5B中位于对应于字符线526(2)的Z1方向上(也称为,第一方向)的字符线526(0)~526(1)(统称为,第四字符线)识别为第一区域的第一字符线,并将位于对应于字符线526(2)的Z2方向上(也称为,第二方向)的字符线526(3)~526(5)(统称为,第五字符线)识别为第二区域的第二字符线。在此须说明的是,在本范例实施例中,存储器管理电路702还会将上述的第三字符线(即,字符线5262(2))识别(或归类)为第一区域的第一字符线。也就是说,第三字符线是属于第一区域而不属于第二区域。然而本发明不限于此,在另一实施例中,第三字符线也可以是属于第二区域而不属于第一区域。
须注意的是,第三字符线可以是在存储器存储装置10在出厂前预先被决定或是存储器存储装置10在运作的过程中动态地被决定。如图9A与图9B所示,在本范例实施例中,由于字符线526(0)~526(5)上的存储单元所存储的数据的错误率由大到小依序是字符线526(0)、字符线526(1)、字符线526(2)、字符线526(3)、字符线526(4)以及字符线526(5),且由于字符线526(0)、字符线526(1)以及字符线526(2)被归类为第一区域的第一字符线,故字符线526(0)的实体程序化单元P0(0)~P0(5)、字符线526(1)的实体程序化单元P1(0)~P1(5)以及字符线526(2)的实体程序化单元P2(0)~P2(5)中所存储的数据的错误率会大于一第一错误率门槛值。而由于字符线526(3)、字符线526(4)以及字符线526(5)被归类为第二区域的第二字符线,故字符线526(3)的实体程序化单元P3(0)~P3(5)、字符线526(4)的实体程序化单元P4(0)~P4(5)以及字符线526(5)的实体程序化单元P5(0)~P5(5)中所存储的数据的错误率会非大于上述的第一错误率门槛值。其中,第一错误率门槛值例如是20%。
也就是说,在决定第三字符线的过程中,会使用上述的第一错误率门槛值来决定出第三字符线。更明确的说,当一字符线的实体程序化单元中所存储的数据的错误率大于第一错误率门槛值而在Z1方向上(或Z2方向上)与该字符线最接近的另一字符线的实体程序化单元中所存储的数据的错误率非大于第一错误率门槛值时,存储器管理电路702会将前者决定为第三字符线。在本范例实施例中,由于字符线526(2)的实体程序化单元P2(0)~P2(5)中所存储的数据的错误率大于第一错误率门槛值,而在图5B中Z2方向上与字符线526(2)最接近的字符线526(3)的实体程序化单元P3(0)~P3(5)中所存储的数据的错误率非大于第一错误率门槛值,故存储器管理电路702会将字符线526(2)决定为上述的第三字符线。
请再次参照图9A与图9B,在此假设存储器管理电路702已将一第一数据写入至字符线526(0)~526(2)上的实体程序化单元中。所述第一数据包括子数据A_0~A_14。其中,子数据A_0~A_4被分别写入至字符线526(0)的实体程序化单元P0(0)~P0(4),子数据A_5~A_9被分别写入至字符线526(1)的实体程序化单元P1(0)~P1(4),子数据A_10~A_14被分别写入至字符线526(2)的实体程序化单元P2(0)~P2(4)。
特别是,在本范例实施例中,存储器管理电路702会使用单框架编码算法对每一个子数据A_0~A_14进行编码,并且将编码后所产生的编码数据(在此称为,单框架编码数据)与对应的子数据存储在同一个实体程序化单元中。举例来说,存储器管理电路702会使用单框架编码算法对子数据A_0进行编码以产生对应于子数据A_0的单框架编码数据(未示出),并且将此对应于子数据A_0的单框架编码数据与子数据A_0一起存储在实体程序化单元P0(0)中。对应于子数据A_0的单框架编码数据是用于更正实体程序化单元P0(0)中所存储的数据的错误。类似地,存储器管理电路702会使用单框架编码算法分别对子数据A_1~A_14进行编码以产生对应于子数据A_1~A_14的单框架编码数据(未示出),并且将对应于子数据A_1~A_14的单框架编码数据分别存储至实体程序化单元P0(1)~P0(4)、实体程序化单元P1(0)~P1(4)以及实体程序化单元P2(0)~P2(4)中。其中,对应于子数据A_1的单框架编码数据是用于更正实体程序化单元P0(1)中所存储的数据的错误,对应于子数据A_2的单框架编码数据是用于更正实体程序化单元P0(2)中所存储的数据的错误,以此类推。在此,可以将对应于子数据A_1~A14的单框架编码数据统称为“第三编码数据”。
此外,假设存储器管理电路702已将一第二数据写入至字符线526(3)~526(5)上的实体程序化单元中。所述第二数据包括子数据B_0~B_14。其中,子数据B_0~B_4被分别写入至字符线526(3)的实体程序化单元P3(0)~P3(4),子数据B_5~B_9被分别写入至字符线526(4)的实体程序化单元P4(0)~P4(4),子数据B_10~B_14被分别写入至字符线526(5)的实体程序化单元P5(0)~P5(4)。
特别是,在本范例实施例中,存储器管理电路702会使用单框架编码算法对每一个子数据B_0~B_14进行编码,并且将编码后所产生的编码数据(在此称为,单框架编码数据)与对应的子数据存储在同一个实体程序化单元中。举例来说,存储器管理电路702会使用单框架编码算法对子数据B_0进行编码以产生对应于子数据B_0的单框架编码数据(未示出),并且将此对应于子数据B_0的单框架编码数据与子数据B_0一起存储在实体程序化单元P3(0)中。对应于子数据B_0的单框架编码数据是用于更正实体程序化单元P3(0)中所存储的数据的错误。类似地,存储器管理电路702会使用单框架编码算法分别对子数据B_1~B_14进行编码以产生对应于子数据B_1~B_14的单框架编码数据(未示出),并且将对应于子数据B_1~B_14的单框架编码数据分别存储至实体程序化单元P3(1)~P3(4)、实体程序化单元P4(0)~P4(4)以及实体程序化单元P5(0)~P5(4)中。其中,对应于子数据B_1的单框架编码数据是用于更正实体程序化单元P3(1)中所存储的数据的错误,对应于子数据B_2的单框架编码数据是用于更正实体程序化单元P3(2)中所存储的数据的错误,以此类推。在此,可以将对应于子数据B_1~B_14的单框架编码数据统称为“第四编码数据”。
在本发明的数据编码方法中,存储器管理电路702还会使用多框架编码算法为第一区域中的字符线526(0)~526(2)分别产生用于错误检测与更正的编码数据。详细来说,存储器管理电路702会使用多框架编码算法编码子数据A_0、子数据A_1、子数据A_2、子数据A_3以及子数据A_4以产生编码数据RS0。存储器管理电路702会将此编码数据RS0写入至字符线526(0)的实体程序化单元P0(5)。
类似地,存储器管理电路702会使用多框架编码算法编码子数据A_5、子数据A_6、子数据A_7、子数据A_8以及子数据A_9以产生编码数据RS1。存储器管理电路702会将此编码数据RS1写入至字符线526(1)的实体程序化单元P1(5)。
类似地,存储器管理电路702会使用多框架编码算法编码子数据A_10、子数据A_11、子数据A_12、子数据A_13以及子数据A_14以产生编码数据RS2。存储器管理电路702会将此编码数据RS2写入至字符线526(2)的实体程序化单元P2(5)。
特别是,上述的编码数据RS0~RS2可以称为“第一编码数据”。而实体程序化单元P0(5)、实体程序化单元P1(5)以及实体程序化单元P2(5)可以称为“第三实体程序化单元”。
在本发明的数据编码方法中,存储器管理电路702还会使用多框架编码算法为第二区域中的字符线526(3)~526(5)分别产生用于错误检测与更正的编码数据。详细来说,存储器管理电路702会使用多框架编码算法编码子数据B_0、子数据B_1、子数据B_2、子数据B_3、子数据B_4、子数据A_0以及子数据A_1以产生编码数据RS3。存储器管理电路702会将此编码数据RS3写入至字符线526(3)的实体程序化单元P3(5)。
类似地,存储器管理电路702会使用多框架编码算法编码子数据B_5、子数据B_6、子数据B_7、子数据B_8、子数据B_9、子数据A_5以及子数据A_6以产生编码数据RS4。存储器管理电路702会将此编码数据RS4写入至字符线526(4)的实体程序化单元P4(5)。
类似地,存储器管理电路702会使用多框架编码算法编码子数据B_10、子数据B_11、子数据B_12、子数据B_13、子数据B_14、子数据A_10以及子数据A_11以产生编码数据RS5。存储器管理电路702会将此编码数据RS5写入至字符线526(5)的实体程序化单元P5(5)。
也就是说,上述第一区域的编码数据产生方法会不同于第二区域的编码数据产生方法。以第一区域的字符线526(0)来说,编码数据RS0仅是使用子数据A_0~A_4进行编码而产生。而编码数据RS0是用以更正字符线526(0)的实体程序化单元P0(0)~P0(4)中的一实体程序化单元所存储的数据的错误。
然而,以第二区域的字符线526(3)来说,编码数据RS3是使用子数据B_0~B_4以及子数据A_0~A_1进行编码而产生。而编码数据RS3可以用来更正字符线526(3)的实体程序化单元P3(0)~P3(4)中的一实体程序化单元所存储的数据的错误,或者是字符线526(0)的实体程序化单元P0(0)~P0(1)中的一实体程序化单元所存储的数据的错误。
也就是说,对应于第一区域的编码数据RS0~RS2仅是根据存储在第一区域中的子数据A_0~A_14所产生,而对应于第一区域的编码数据RS0~RS2不会根据存储在第二区域中的子数据B_0~B_14而产生。此外,对应于第二区域的编码数据RS3~RS5是根据存储在第一区域中的子数据A_0~A_14以及存储在第二区域中的子数据B_0~B_14所产生。以上述的编码方式来说,由于第一区域所存储的数据的错误率可能较大,第二区域的编码数据不但可以用以对存储在第二区域中的数据进行解码以进行错误检测与更正,还可以对存储在第一区域中的部分数据进行解码以进行错误检测与更正。藉此,可以提高存储在错误率较高的第一区域的数据的解码成功机率。
以使用编码数据RS0进行解码为例,在一实施例中,存储器管理电路702可以先使用第一区域的编码数据RS0对实体程序化单元P0(0)~P0(4)中所存储的数据进行解码以更正实体程序化单元P0(0)~P0(4)中所存储的数据的错误。当无法使用编码数据RS0更正实体程序化单元P0(0)~P0(4)中所存储的数据的错误时,可以再使用编码数据RS3进行解码以更正实体程序化单元P0(0)~P0(4)中的实体程序化单元P0(0)~P0(1)所存储的数据的错误,以增加解码成功的机率。
特别是,上述的编码数据RS3~RS5可以称为“第二编码数据”。而实体程序化单元P3(5)、实体程序化单元P4(5)以及实体程序化单元P5(5)可以称为“第四实体程序化单元”。而子数据A_0~A_1、子数据A_5~A_6以及子数据A_10~A_11可以称为“第一子数据”。
在此须说明的是,在本范例实施例中,虽然编码数据RS3是使用存储在字符线526(3)中的子数据B_0~B_4以及存储在字符线526(0)中的两个子数据(即,子数据A_0~A_1)进行编码而产生。然而在其他实施例中,编码数据RS3也可以是从第一区域的其他字符线(或其他的实体程序化单元)中选择子数据来进行编码而产生。此外,本发明也不用于限定在产生编码数据RS3时从第一区域选择的用于编码的子数据的数量。类似地,编码数据RS4~RS5也可以是从第一区域任意选择字符线,并从所选择的第一区域的字符线中挑选子数据来进行编码而产生。此外,本发明也不用于限定编码数据RS4~RS5从第一区域选择的用于编码的子数据的数量。
特别是,在一范例实施例中,存储器管理电路702可以优先地选择错误率最大的字符线(例如,字符线526(0)上所存储的数据与错误率最低的字符线(例如,字符线526(5)上所存储的数据进行多框架编码,并且选择错误率次大的字符线(例如,字符线526(1)上所存储的数据与错误率次低的字符线(例如,字符线526(7)上所存储的数据进行多框架编码,以此类推。藉此,可以更加提高存储在错误率较高的第一区域的数据的解码成功机率。
图10是根据本发明的第一范例实施例所示出的数据编码方法的流程图。
请参照图10,在步骤S1001中,存储器管理电路702会将第一数据写入至可复写式非易失性存储器模块406的多个区域中的第一区域的第一实体程序化单元。在步骤S1003中,存储器管理电路702将第二数据写入至可复写式非易失性存储器模块406的多个区域中的第二区域的第二实体程序化单元。在步骤S1005中,存储器管理电路702使用第一数据而不使用第二数据进行编码以产生第一编码数据。在步骤S1007中,存储器管理电路702使用第二数据以及第一数据中的至少一第一子数据进行编码以产生第二编码数据。在步骤S1009中,存储器管理电路702将第一编码数据以及第二编码数据分别写入至多个实体程序化单元中的第三实体程序化单元以及第四实体程序化单元。特别是,本发明并不用于限定图10中各个步骤的先后顺序。在另一实施例中,存储器管理电路702例如也可以先执行步骤S1003再执行步骤S1001,或者也可以先执行步骤S1007再执行步骤S1005。
以上述第一范例实施例的编码方式来说,由于第一区域的实体程序化单元所存储的数据的错误率大于第二区域的实体程序化单元所存储的数据的错误率,第二区域中使用多框架编码算法所产生的编码数据不但可以用以对存储在第二区域中的数据进行解码以进行错误检测与更正,还可以对存储在第一区域中的进行数据解码以进行错误检测与更正。藉此,可以提高存储在错误率较高的第一区域的数据的解码成功机率。
[第二范例实施例]
图11A至图11B是根据本发明的第二与第三范例实施例所示出的各个字符线上所存储的数据与对应的编码数据的示意图。
请参照图11A与图11B,类似于图9A与图9B,在本范例实施例中,假设可复写式非易失性存储器模块406是如图5B的存储单元阵列所构成的三维(Three-Dimension,3D)NAND型快闪存储器模块,且字符线526(0)~526(5)上的存储单元所存储的数据的错误率由大到小依序是字符线526(0)、字符线526(1)、字符线526(2)、字符线526(3)、字符线526(4)以及字符线526(5)。在本范例实施例中,字符线526(0)上的存储单元形成实体程序化单元P0(0)~P0(5),字符线526(1)上的存储单元形成实体程序化单元P1(0)~P1(5),字符线526(2)上的存储单元形成实体程序化单元P2(0)~P2(5),字符线526(3)上的存储单元形成实体程序化单元P3(0)~P3(5),字符线526(4)上的存储单元形成实体程序化单元P4(0)~P4(5),字符线526(5)上的存储单元形成实体程序化单元P5(0)~P5(5)。
此外,在此假设字符线526(2)被设定为前述的第三字符线。存储器管理电路702会根据此第三字符线将字符线526(0)、字符线526(1)以及字符线526(2)识别为第一区域的第一字符线,并且将字符线526(3)、字符线526(4)以及字符线526(5)识别为第二区域的第二字符线。第三字符线的决定方式已详述如前,在此不再赘述。
在此假设存储器管理电路702已将一第一数据写入至字符线526(0)~526(2)上的实体程序化单元中。在第二范例实施例中,假设第一数据包括子数据C_0~C_11。其中,子数据C_0~C_3被分别写入至字符线526(0)的实体程序化单元P0(0)~P0(3),子数据C_4~C_7被分别写入至字符线526(1)的实体程序化单元P1(0)~P1(3),子数据C_8~C_11被分别写入至字符线526(2)的实体程序化单元P2(0)~P2(3)。
特别是,在本范例实施例中,存储器管理电路702还会使用单框架编码算法对每一个子数据C_0~C_11进行编码,并且将编码后所产生的编码数据(在此称为,单框架编码数据)与对应的子数据存储在同一个实体程序化单元中。举例来说,存储器管理电路702会使用单框架编码算法对子数据C_0进行编码以产生对应于子数据C_0的单框架编码数据(未示出),并且将此对应于子数据C_0的单框架编码数据与子数据C_0一起存储在实体程序化单元P0(0)中。对应于子数据C_0的单框架编码数据是用于更正实体程序化单元P0(0)中所存储的数据的错误。类似地,存储器管理电路702会使用单框架编码算法分别对子数据C_1~C11进行编码以产生对应于子数据C_1~C_11的单框架编码数据(未示出),并且将对应于子数据C_1~C_11的单框架编码数据分别存储至实体程序化单元P0(1)~P0(3)、实体程序化单元P1(0)~P1(3)以及实体程序化单元P2(0)~P2(3)中。其中,对应于子数据C_1的单框架编码数据是用于更正实体程序化单元P0(1)中所存储的数据的错误,对应于子数据C_2的单框架编码数据是用于更正实体程序化单元P0(2)中所存储的数据的错误,以此类推。
此外,假设存储器管理电路702已将一第二数据写入至字符线526(3)~526(5)上的实体程序化单元中。所述第二数据包括子数据D_0~D_14。其中,子数据D_0~D_4被分别写入至字符线526(3)的实体程序化单元P3(0)~P3(4),子数据D_5~D_9被分别写入至字符线526(4)的实体程序化单元P4(0)~P4(4),子数据D_10~D_14被分别写入至字符线526(5)的实体程序化单元P5(0)~P5(4)。
特别是,在本范例实施例中,存储器管理电路702还会使用单框架编码算法对每一个子数据D_0~D_14进行编码,并且将编码后所产生的编码数据(在此称为,单框架编码数据)与对应的子数据存储在同一个实体程序化单元中。举例来说,存储器管理电路702会使用单框架编码算法对子数据D_0进行编码以产生对应于子数据D_0的单框架编码数据(未示出),并且将此对应于子数据D_0的单框架编码数据与子数据D_0一起存储在实体程序化单元P3(0)中。对应于子数据D_0的单框架编码数据是用于更正实体程序化单元P3(0)中所存储的数据的错误。类似地,存储器管理电路702会使用单框架编码算法分别对子数据D_1~D_14进行编码以产生对应于子数据D_1~D_14的单框架编码数据(未示出),并且将对应于子数据D_1~D_14的单框架编码数据分别存储至实体程序化单元P3(1)~P3(4)、实体程序化单元P4(0)~P4(4)以及实体程序化单元P5(0)~P5(4)中。其中,对应于子数据D_1的单框架编码数据是用于更正实体程序化单元P3(1)中所存储的数据的错误,对应于子数据D_2的单框架编码数据是用于更正实体程序化单元P3(2)中所存储的数据的错误,以此类推。
在本发明的第二范例实施例中,存储器管理电路702还会使用多框架编码算法为第一区域中的字符线526(0)~526(2)分别产生用于错误检测与更正的编码数据。详细来说,存储器管理电路702会使用多框架编码算法编码子数据C_0以及子数据C_2以产生编码数据RS0。存储器管理电路702会将此编码数据RS0写入至字符线526(0)的实体程序化单元P0(4)。存储器管理电路702会使用多框架编码算法编码子数据C_1以及子数据C_3以产生编码数据RS1。存储器管理电路702会将此编码数据RS1写入至字符线526(0)的实体程序化单元P0(5)。
类似地,存储器管理电路702会使用多框架编码算法编码子数据C_4以及子数据C_6以产生编码数据RS2。存储器管理电路702会将此编码数据RS2写入至字符线526(1)的实体程序化单元P1(4)。存储器管理电路702会使用多框架编码算法编码子数据C_5以及子数据C_7以产生编码数据RS3。存储器管理电路702会将此编码数据RS3写入至字符线526(1)的实体程序化单元P1(5)。
类似地,存储器管理电路702会使用多框架编码算法编码子数据C_8以及子数据C_10以产生编码数据RS4。存储器管理电路702会将此编码数据RS4写入至字符线526(2)的实体程序化单元P2(4)。存储器管理电路702会使用多框架编码算法编码子数据C_9以及子数据C_11以产生编码数据RS5。存储器管理电路702会将此编码数据RS5写入至字符线526(2)的实体程序化单元P2(5)。
在本发明的数据编码方法中,存储器管理电路702还会使用多框架编码算法为第二区域中的字符线526(3)~526(5)分别产生用于错误检测与更正的编码数据。详细来说,存储器管理电路702会使用多框架编码算法编码子数据D_0、子数据D_1、子数据D_2、子数据D_3以及子数据D_4以产生编码数据RS6。存储器管理电路702会将此编码数据RS6写入至字符线526(3)的实体程序化单元P3(5)。
类似地,存储器管理电路702会使用多框架编码算法编码子数据D_5、子数据D_6、子数据D_7、子数据D_8以及子数据D_9以产生编码数据RS7。存储器管理电路702会将此编码数据RS7写入至字符线526(4)的实体程序化单元P4(5)。
类似地,存储器管理电路702会使用多框架编码算法编码子数据D_10、子数据D_11、子数据D_12、子数据D_13以及子数据D_14以产生编码数据RS8。存储器管理电路702会将此编码数据RS8写入至字符线526(5)的实体程序化单元P5(5)。
也就是说,上述第一区域的编码数据产生方法会不同于第二区域的编码数据产生方法。详细来说,第一区域的每一个使用多框架编码算法产生的编码数据是使用两个(也称为,第四数量)子数据(也称为,第四子数据)进行编码产生,而第二区域的每一个使用多框架编码算法产生的编码数据是使用五个(也称为,第五数量)子数据(也称为,第五子数据)进行编码产生。而一般来说,在使用多框架编码算法对子数据进行编码以产生编码数据的过程中,若用于编码的子数据的大小相同时,则使用数量较少的子数据进行编码所产生的编码数据的错误更正能力会比使用数量较多的子数据进行编码所产生的编码数据的错误更正能力佳。因此,通过使用数量较少的子数据来产生第一区域的编码数据RS0~RS5,可以提升编码数据RS0~RS5对于存储在第一区域中的数据的错误检测与更正能力。
图12是根据本发明的第一范例实施例所示出的数据编码方法的流程图。
请参照图12,在步骤S1201中,存储器管理电路702会将第一数据写入至可复写式非易失性存储器模块406的多个区域中的第一区域的第一实体程序化单元。在步骤S1203中,存储器管理电路702将第二数据写入至可复写式非易失性存储器模块406的多个区域中的第二区域的第二实体程序化单元。在步骤S1205中,存储器管理电路702编码第一数据以产生第一编码数据。其中,第一编码数据是根据第一数据中第四数量的至少一第四子数据进行编码所产生。在步骤S1207中,存储器管理电路702编码第二数据以产生第二编码数据。其中,第二编码数据是根据第二数据中第五数量的至少一第五子数据进行编码所产生,第四子数据中的每一个第四子数据的大小相同于第五子数据中的每一个第五子数据的大小,且第四数量小于第五数量。在步骤S1209中,存储器管理电路702将第一编码数据以及第二编码数据分别写入至多个实体程序化单元中的第三实体程序化单元以及第四实体程序化单元。特别是,本发明并不用于限定图10中各个步骤的先后顺序。在另一实施例中,存储器管理电路702例如也可以先执行步骤S1203再执行步骤S1201,或者也可以先执行步骤S1207再执行步骤S1205。
基于上述,由于第一区域所存储的数据的错误率较高,而通过使用数量较少的子数据来产生第一区域的编码数据,可以提升编码数据对于存储在第一区域中的数据的错误检测与更正能力。
[第三范例实施例]
本发明的第三范例实施例的数据编码方法是综合第一范例实施例的数据编码方法与第二范例实施例的数据编码方法。详细来说,请再次参照图11A与图11B,类似于图9A与图9B,在本范例实施例中,假设可复写式非易失性存储器模块406的字符线526(0)~526(5)上的存储单元所存储的数据的错误率由大到小依序是字符线526(0)、字符线526(1)、字符线526(2)、字符线526(3)、字符线526(4)以及字符线526(5)。相同于前述的范例,在此假设字符线526(2)被设定为前述的第三字符线。存储器管理电路702会根据此第三字符线将字符线526(0)~526(2)识别为第一区域的第一字符线,并且将字符线526(3)~526(5)识别为第二区域的第二字符线。第三字符线的决定方式已详述如前,在此不再赘述。
在此假设存储器管理电路702已将一第一数据写入至字符线526(0)~526(2)上的实体程序化单元中。在第三范例实施例中,假设第一数据包括子数据C_0~C_11。其中,子数据C_0~C_3被分别写入至字符线526(0)的实体程序化单元P0(0)~P0(3),子数据C_4~C_7被分别写入至字符线526(1)的实体程序化单元P1(0)~P1(3),子数据C_8~C_11被分别写入至字符线526(2)的实体程序化单元P2(0)~P2(3)。
类似于第二范例实施例,在本范例实施例中,存储器管理电路702还会使用单框架编码算法对每一个子数据C_0~C_11进行编码,并且将编码后所产生的编码数据(在此称为,单框架编码数据)与对应的子数据存储在同一个实体程序化单元中。举例来说,存储器管理电路702会使用单框架编码算法对子数据C_0进行编码以产生对应于子数据C_0的单框架编码数据(未示出),并且将此对应于子数据C_0的单框架编码数据与子数据C_0一起存储在实体程序化单元P0(0)中。对应于子数据C_0的单框架编码数据是用于更正实体程序化单元P0(0)中所存储的数据的错误。类似地,存储器管理电路702会使用单框架编码算法分别对子数据C_1~C11进行编码以产生对应于子数据C_1~C_11的单框架编码数据(未示出),并且将对应于子数据C_1~C_11的单框架编码数据分别存储至实体程序化单元P0(1)~P0(3)、实体程序化单元P1(0)~P1(3)以及实体程序化单元P2(0)~P2(3)中。其中,对应于子数据C_1的单框架编码数据是用于更正实体程序化单元P0(1)中所存储的数据的错误,对应于子数据C_2的单框架编码数据是用于更正实体程序化单元P0(2)中所存储的数据的错误,以此类推。
此外,假设存储器管理电路702已将一第二数据写入至字符线526(3)~526(5)上的实体程序化单元中。所述第二数据包括子数据D_0~D_14。其中,子数据D_0~D_4被分别写入至字符线526(3)的实体程序化单元P3(0)~P3(4),子数据D_5~D_9被分别写入至字符线526(4)的实体程序化单元P4(0)~P4(4),子数据D_10~D_14被分别写入至字符线526(5)的实体程序化单元P5(0)~P5(4)。
类似于第二范例实施例,在本范例实施例中,存储器管理电路702还会使用单框架编码算法对每一个子数据D_0~D_14进行编码,并且将编码后所产生的编码数据(在此称为,单框架编码数据)与对应的子数据存储在同一个实体程序化单元中。举例来说,存储器管理电路702会使用单框架编码算法对子数据D_0进行编码以产生对应于子数据D_0的单框架编码数据(未示出),并且将此对应于子数据D_0的单框架编码数据与子数据D_0一起存储在实体程序化单元P3(0)中。对应于子数据D_0的单框架编码数据是用于更正实体程序化单元P3(0)中所存储的数据的错误。类似地,存储器管理电路702会使用单框架编码算法分别对子数据D_1~D_14进行编码以产生对应于子数据D_1~D_14的单框架编码数据(未示出),并且将对应于子数据D_1~D_14的单框架编码数据分别存储至实体程序化单元P3(1)~P3(4)、实体程序化单元P4(0)~P4(4)以及实体程序化单元P5(0)~P5(4)中。其中,对应于子数据D_1的单框架编码数据是用于更正实体程序化单元P3(1)中所存储的数据的错误,对应于子数据D_2的单框架编码数据是用于更正实体程序化单元P3(2)中所存储的数据的错误,以此类推。
在本发明的第三范例实施例中,存储器管理电路702还会使用多框架编码算法为第一区域中的字符线526(0)~526(2)分别产生用于错误检测与更正的编码数据。详细来说,存储器管理电路702会使用多框架编码算法编码子数据C_0以及子数据C_2以产生编码数据RS0。存储器管理电路702会将此编码数据RS0写入至字符线526(0)的实体程序化单元P0(4)。存储器管理电路702会使用多框架编码算法编码子数据C_1以及子数据C_3以产生编码数据RS1。存储器管理电路702会将此编码数据RS1写入至字符线526(0)的实体程序化单元P0(5)。
类似地,存储器管理电路702会使用多框架编码算法编码子数据C_4以及子数据C_6以产生编码数据RS2。存储器管理电路702会将此编码数据RS2写入至字符线526(1)的实体程序化单元P1(4)。存储器管理电路702会使用多框架编码算法编码子数据C_5以及子数据C_7以产生编码数据RS3。存储器管理电路702会将此编码数据RS3写入至字符线526(1)的实体程序化单元P1(5)。
类似地,存储器管理电路702会使用多框架编码算法编码子数据C_8以及子数据C_10以产生编码数据RS4。存储器管理电路702会将此编码数据RS4写入至字符线526(2)的实体程序化单元P2(4)。存储器管理电路702会使用多框架编码算法编码子数据C_9以及子数据C_11以产生编码数据RS5。存储器管理电路702会将此编码数据RS5写入至字符线526(2)的实体程序化单元P2(5)。
在本发明的数据编码方法中,存储器管理电路702还会使用多框架编码算法为第二区域中的字符线526(3)~526(5)分别产生用于错误检测与更正的编码数据。详细来说,存储器管理电路702会使用多框架编码算法编码子数据D_0、子数据D_1、子数据D_2、子数据D_3、子数据D_4、子数据C_0以及子数据C_1以产生编码数据RS6。存储器管理电路702会将此编码数据RS6写入至字符线526(3)的实体程序化单元P3(5)。
类似地,存储器管理电路702会使用多框架编码算法编码子数据D_5、子数据D_6、子数据D_7、子数据D_8、子数据D_9、子数据C_4以及子数据C_5以产生编码数据RS7。存储器管理电路702会将此编码数据RS7写入至字符线526(4)的实体程序化单元P4(5)。
类似地,存储器管理电路702会使用多框架编码算法编码子数据D_10、子数据D_11、子数据D_12、子数据D_13、子数据D_14、子数据C_8以及子数据C_9以产生编码数据RS8。存储器管理电路702会将此编码数据RS8写入至字符线526(5)的实体程序化单元P5(5)。
在第三范例实施例中,子数据C_0、子数据C_1、子数据C_4、子数据C_5、子数据C_8以及子数据C_9可以称为“第一子数据”。
在此须说明的是,在本范例实施例中,以编码数据RS6为例,虽然编码数据RS6是使用存储在字符线526(3)中的子数据D_0~D_4以及存储在字符线526(0)中的两个子数据(即,子数据C_0~C_1)进行编码而产生。然而在其他实施例中,编码数据RS6也可以是从第一区域的其他字符线中(或其他实体程序化单元中)选择不定数量的子数据来进行编码而产生。类似地,编码数据RS7~RS8也可以是从第一区域任意选择一字符线,并从所选择的第一区域的字符线中挑选任意数量的子数据来进行编码而产生。
特别是,在一范例实施例中,存储器管理电路702可以优先地选择错误率最大的字符线(例如,字符线526(0)上所存储的数据与错误率最低的字符线(例如,字符线526(5)上所存储的数据进行多框架编码,并且选择错误率次大的字符线(例如,字符线526(1)上所存储的数据与错误率次低的字符线(例如,字符线526(7)上所存储的数据进行多框架编码,以此类推。藉此,可以更加提高存储在错误率较高的第一区域的数据的解码成功机率。
基于上述第三范例实施例的编码方式,由于第一区域的字符线526(0)~526(2)所存储的数据的错误率较高,而通过使用数量较少的子数据来分别产生第一区域的编码数据RS0~RS5,可以提升编码数据RS0~RS5对于存储在第一区域中的数据的错误检测与更正能力。此外,对于第二区域的编码数据RS6~RS8来说,编码数据RS6~RS8是根据存储在第一区域中的部分子数据以及存储在第二区域中的部分子数据所产生。藉此,第二区域的编码数据RS6~RS8不但可以用以对存储在第二区域中的数据进行解码以进行错误检测与更正,还可以对存储在第一区域中的部分数据进行解码以进行错误检测与更正。通过上述,可以更有效地提高存储在错误率较高的第一区域的数据的解码成功机率。
例如,存储器管理电路702可以先使用第一区域的编码数据RS0对实体程序化单元P0(0)以及实体程序化单元P0(2)中所存储的数据进行解码以更正实体程序化单元P0(0)以及实体程序化单元P0(2)中所存储的数据的错误。当无法使用编码数据RS0更实体程序化单元P0(0)以及实体程序化单元P0(2)中所存储的数据的错误时,可以再使用编码数据RS6进行解码以更正实体程序化单元P0(0)中所存储的数据的错误,以增加解码成功的机率。
图13是根据本发明的第三范例实施例所示出的数据编码方法的流程图。
请参照图13,在步骤S1301中,存储器管理电路702会将第一数据写入至可复写式非易失性存储器模块406的多个区域中的第一区域的第一实体程序化单元。在步骤S1303中,存储器管理电路702将第二数据写入至可复写式非易失性存储器模块406的多个区域中的第二区域的第二实体程序化单元。在步骤S1305中,存储器管理电路702编码第一数据以产生第一编码数据。其中,第一编码数据是根据第一数据中第一数量的至少一第二子数据进行编码所产生。在步骤S1307中,存储器管理电路702编码第二数据以产生第二编码数据。其中,第二编码数据是根据第二数据中第二数量的至少一第三子数据以及第一数据中第三数量的第一子数据进行编码所产生,第一子数据中的每一个第一子数据、第二子数据中的每一个第二子数据以及第三子数据中的每一个第三子数据的大小皆相同,且第一数量小于第二数量与第三数量的总和。在步骤S1309中,存储器管理电路702将第一编码数据以及第二编码数据分别写入至多个实体程序化单元中的第三实体程序化单元以及第四实体程序化单元。特别是,本发明并不用于限定图13中各个步骤的先后顺序。在另一实施例中,存储器管理电路702例如也可以先执行步骤S1303再执行步骤S1301,或者也可以先执行步骤S1307再执行步骤S1305。
综上所述,本发明提出的数据编码方法可以将可复写式非易失性存储器模块分为至少两个区域,每个区域可以使用各自的编码方法来产生编码数据,藉以提升用于对错误率较高的字符线中的数据进行解码的编码数据的错误检测与更正能力。
虽然本发明已以实施例揭示如上,然其并非用以限定本发明,任何所属技术领域中技术人员,在不脱离本发明的精神和范围内,当可作些许的更动与润饰,故本发明的保护范围当视权利要求所界定者为准。
Claims (27)
1.一种数据编码方法,用于可复写式非易失性存储器模块,其中所述可复写式非易失性存储器模块包括多个实体程序化单元,所述方法包括:
将第一数据写入至所述多个实体程序化单元中的第一实体程序化单元;
将第二数据写入至所述多个实体程序化单元中的第二实体程序化单元;
使用所述第一数据而不使用所述第二数据进行编码以产生第一编码数据,其中所述第一编码数据是根据所述第一数据中第一数量的至少一第二子数据进行编码所产生;
使用所述第二数据以及所述第一数据中的至少一第一子数据进行编码以产生第二编码数据,其中所述第二编码数据是根据所述第二数据中第二数量的至少一第三子数据以及所述第一数据中第三数量的所述第一子数据进行编码所产生,
所述第一子数据中的每一个第一子数据、所述第二子数据中的每一个第二子数据以及所述第三子数据中的每一个第三子数据的大小皆相同,且所述第一数量小于所述第二数量与所述第三数量的总和;以及
将所述第一编码数据以及所述第二编码数据分别写入至所述多个实体程序化单元中的第三实体程序化单元以及第四实体程序化单元。
2.根据权利要求1所述的数据编码方法,其中,
所述第一编码数据用以更正所述第一实体程序化单元中所存储的数据的错误,
所述第二编码数据用以更正所述第一实体程序化单元中所存储的数据的错误或更正所述第二实体程序化单元中所存储的数据的错误。
3.根据权利要求1所述的数据编码方法,其中所述可复写式非易失性存储器模块至少包括第一区域与第二区域,所述多个实体程序化单元分别属于所述第一区域与所述第二区域的至少其中之一,所述第一区域的实体程序化单元中所存储的数据的错误率大于所述第二区域的实体程序化单元中所存储的数据的错误率,所述第一区域的实体程序化单元包括所述第一实体程序化单元,且所述第二区域的实体程序化单元包括所述第二实体程序化单元。
4.根据权利要求3所述的数据编码方法,其中所述可复写式非易失性存储器模块包括多个字符线,多个存储单元被配置于所述多个字符线,所述多个字符线中的多个第一字符线上的多个第一存储单元形成所述第一区域的实体程序化单元,所述多个字符线中的多个第二字符线上的多个第二存储单元形成所述第二区域的实体程序化单元,所述方法还包括:
决定所述多个字符线中的第三字符线以根据所述第三字符线识别所述多个字符线中的所述多个第一字符线与所述多个第二字符线,
其中所述多个第一字符线包括位于对应于所述第三字符线的第一方向上的所述多个字符线中的至少一第四字符线,所述多个第二字符线包括位于对应于所述第三字符线的第二方向上的所述多个字符线中的至少一第五字符线。
5.根据权利要求4所述的数据编码方法,其中决定所述多个字符线中的所述第三字符线的步骤包括:
预先决定或动态地决定所述多个字符线中的所述第三字符线。
6.根据权利要求2所述的数据编码方法,还包括:
使用所述第一编码数据对所述第一实体程序化单元中所存储的数据进行解码以更正所述第一实体程序化单元中所存储的数据的错误;
当无法使用所述第一编码数据更正所述第一实体程序化单元中所存储的数据的错误时,使用所述第二编码数据对所述第一实体程序化单元中所存储的数据进行解码以更正所述第一实体程序化单元中所存储的数据的错误。
7.根据权利要求2所述的数据编码方法,所述方法还包括:
使用所述第一数据进行编码以产生第三编码数据;
使用所述第二数据进行编码以产生第四编码数据;以及
将所述第三编码数据写入至所述第一实体程序化单元以及将所述第四编码数据写入至所述第二实体程序化单元,
其中所述第三编码数据用以更正所述第一实体程序化单元中所存储的数据的错误,所述第四编码数据用以更正所述第二实体程序化单元中所存储的数据的错误,
其中所述第一编码数据与所述第二编码数据是根据第一算法所产生,所述第三编码数据与所述第四编码数据是根据第二算法所产生,所述第一算法不同于所述第二算法。
8.根据权利要求7所述的数据编码方法,其中所述第一算法为多框架编码算法,所述第二算法为单框架编码算法。
9.根据权利要求8所述的数据编码方法,其中,
所述多框架编码算法用以编码所述多个实体程序化单元中多个第五实体程序化单元中所存储的数据以产生第五编码数据,所述第五编码数据用以更正所述多个第五实体程序化单元中所存储的数据的错误,
所述单框架编码算法用以编码所述多个实体程序化单元中单一一个第六实体程序化单元中所存储的数据以产生第六编码数据,且所述第六编码数据用以更正所述第六实体程序化单元中所存储的数据的错误。
10.一种存储器控制电路单元,用于控制可复写式非易失性存储器模块,其中所述可复写式非易失性存储器模块包括多个实体程序化单元,所述存储器控制电路单元包括:
主机接口,用以电性连接至主机系统;
存储器接口,用以电性连接至所述可复写式非易失性存储器模块;
存储器管理电路,电性连接至所述主机接口以及所述存储器接口,
其中所述存储器管理电路用以将第一数据写入至所述多个实体程序化单元中的第一实体程序化单元,
其中所述存储器管理电路还用以将第二数据写入至所述多个实体程序化单元中的第二实体程序化单元,
其中所述存储器管理电路还用以使用所述第一数据而不使用所述第二数据进行编码以产生第一编码数据,其中所述第一编码数据是根据所述第一数据中第一数量的至少一第二子数据进行编码所产生,
其中所述存储器管理电路还用以使用所述第二数据以及所述第一数据中的至少一第一子数据进行编码以产生第二编码数据,其中所述第二编码数据是根据所述第二数据中第二数量的至少一第三子数据以及所述第一数据中第三数量的所述第一子数据进行编码所产生,
所述第一子数据中的每一个第一子数据、所述第二子数据中的每一个第二子数据以及所述第三子数据中的每一个第三子数据的大小皆相同,且所述第一数量小于所述第二数量与所述第三数量的总和,
其中所述存储器管理电路还用以将所述第一编码数据以及所述第二编码数据分别写入至所述多个实体程序化单元中的第三实体程序化单元以及第四实体程序化单元。
11.根据权利要求10所述的存储器控制电路单元,其中
所述第一编码数据用以更正所述第一实体程序化单元中所存储的数据的错误,
所述第二编码数据用以更正所述第一实体程序化单元中所存储的数据的错误或更正所述第二实体程序化单元中所存储的数据的错误。
12.根据权利要求10所述的存储器控制电路单元,其中所述可复写式非易失性存储器模块至少包括第一区域与第二区域,所述多个实体程序化单元分别属于所述第一区域与所述第二区域的至少其中之一,所述第一区域的实体程序化单元中所存储的数据的错误率大于所述第二区域的实体程序化单元中所存储的数据的错误率,所述第一区域的实体程序化单元包括所述第一实体程序化单元,且所述第二区域的实体程序化单元包括所述第二实体程序化单元。
13.根据权利要求12所述的存储器控制电路单元,所述可复写式非易失性存储器模块包括多个字符线,多个存储单元被配置于所述多个字符线,所述多个字符线中的多个第一字符线上的多个第一存储单元形成所述第一区域的实体程序化单元,所述多个字符线中的多个第二字符线上的多个第二存储单元形成所述第二区域的实体程序化单元,其中
所述存储器管理电路决定所述多个字符线中的第三字符线以根据所述第三字符线识别所述多个字符线中的所述多个第一字符线与所述多个第二字符线,
其中所述多个第一字符线包括位于对应于所述第三字符线的第一方向上的所述多个字符线中的至少一第四字符线,所述多个第二字符线包括位于对应于所述第三字符线的第二方向上的所述多个字符线中的至少一第五字符线。
14.根据权利要求13所述的存储器控制电路单元,其中在决定所述多个字符线中的所述第三字符线的运作中,
所述存储器管理电路预先决定或动态地决定所述多个字符线中的所述第三字符线。
15.根据权利要求11所述的存储器控制电路单元,其中
所述存储器管理电路使用所述第一编码数据对所述第一实体程序化单元中所存储的数据进行解码以更正所述第一实体程序化单元中所存储的数据的错误,
当无法使用所述第一编码数据更正所述第一实体程序化单元中所存储的数据的错误时,所述存储器管理电路使用所述第二编码数据对所述第一实体程序化单元中所存储的数据进行解码以更正所述第一实体程序化单元中所存储的数据的错误。
16.根据权利要求11所述的存储器控制电路单元,其中
所述存储器管理电路使用所述第一数据进行编码以产生第三编码数据,
所述存储器管理电路使用所述第二数据进行编码以产生第四编码数据,以及
所述存储器管理电路将所述第三编码数据写入至所述第一实体程序化单元以及将所述第四编码数据写入至所述第二实体程序化单元,
其中所述第三编码数据用以更正所述第一实体程序化单元中所存储的数据的错误,所述第四编码数据用以更正所述第二实体程序化单元中所存储的数据的错误,
其中所述第一编码数据与所述第二编码数据是根据第一算法所产生,所述第三编码数据与所述第四编码数据是根据第二算法所产生,所述第一算法不同于所述第二算法。
17.根据权利要求16所述的存储器控制电路单元,其中所述第一算法为多框架编码算法,所述第二算法为单框架编码算法。
18.根据权利要求17所述的存储器控制电路单元,其中
所述多框架编码算法用以编码所述多个实体程序化单元中多个第五实体程序化单元中所存储的数据以产生第五编码数据,所述第五编码数据用以更正所述多个第五实体程序化单元中所存储的数据的错误,
所述单框架编码算法用以编码所述多个实体程序化单元中单一一个第六实体程序化单元中所存储的数据以产生第六编码数据,且所述第六编码数据用以更正所述第六实体程序化单元中所存储的数据的错误。
19.一种存储器存储装置,包括:
连接接口单元,用以电性连接至主机系统;
可复写式非易失性存储器模块,包括多个实体程序化单元;以及
存储器控制电路单元,电性连接至所述连接接口单元与所述可复写式非易失性存储器模块,
其中所述存储器控制电路单元用以将第一数据写入至所述多个实体程序化单元中的第一实体程序化单元,
其中所述存储器控制电路单元还用以将第二数据写入至所述多个实体程序化单元中的第二实体程序化单元,
其中所述存储器控制电路单元还用以使用所述第一数据而不使用所述第二数据进行编码以产生第一编码数据,其中所述第一编码数据是根据所述第一数据中第一数量的至少一第二子数据进行编码所产生,
其中所述存储器控制电路单元还用以使用所述第二数据以及所述第一数据中的至少一第一子数据进行编码以产生第二编码数据,其中所述第二编码数据是根据所述第二数据中第二数量的至少一第三子数据以及所述第一数据中第三数量的所述第一子数据进行编码所产生,
所述第一子数据中的每一个第一子数据、所述第二子数据中的每一个第二子数据以及所述第三子数据中的每一个第三子数据的大小皆相同,且所述第一数量小于所述第二数量与所述第三数量的总和,
其中所述存储器控制电路单元还用以将所述第一编码数据以及所述第二编码数据分别写入至所述多个实体程序化单元中的第三实体程序化单元以及第四实体程序化单元。
20.根据权利要求19所述的存储器存储装置,其中
所述第一编码数据用以更正所述第一实体程序化单元中所存储的数据的错误,
所述第二编码数据用以更正所述第一实体程序化单元中所存储的数据的错误或更正所述第二实体程序化单元中所存储的数据的错误。
21.根据权利要求19所述的存储器存储装置,其中所述可复写式非易失性存储器模块至少包括第一区域与第二区域,所述多个实体程序化单元分别属于所述第一区域与所述第二区域的至少其中之一,所述第一区域的实体程序化单元中所存储的数据的错误率大于所述第二区域的实体程序化单元中所存储的数据的错误率,所述第一区域的实体程序化单元包括所述第一实体程序化单元,且所述第二区域的实体程序化单元包括所述第二实体程序化单元。
22.根据权利要求21所述的存储器存储装置,其中所述可复写式非易失性存储器模块包括多个字符线,多个存储单元被配置于所述多个字符线,所述多个字符线中的多个第一字符线上的多个第一存储单元形成所述第一区域的实体程序化单元,所述多个字符线中的多个第二字符线上的多个第二存储单元形成所述第二区域的实体程序化单元,其中,
所述存储器控制电路单元决定所述多个字符线中的第三字符线以根据所述第三字符线识别所述多个字符线中的所述多个第一字符线与所述多个第二字符线,
其中所述多个第一字符线包括位于对应于所述第三字符线的第一方向上的所述多个字符线中的至少一第四字符线,所述多个第二字符线包括位于对应于所述第三字符线的第二方向上的所述多个字符线中的至少一第五字符线。
23.根据权利要求22所述的存储器存储装置,其中在决定所述多个字符线中的所述第三字符线的运作中,
所述存储器控制电路单元预先决定或动态地决定所述多个字符线中的所述第三字符线。
24.根据权利要求20所述的存储器存储装置,更其中
所述存储器控制电路单元使用所述第一编码数据对所述第一实体程序化单元中所存储的数据进行解码以更正所述第一实体程序化单元中所存储的数据的错误,
当无法使用所述第一编码数据更正所述第一实体程序化单元中所存储的数据的错误时,所述存储器控制电路单元使用所述第二编码数据对所述第一实体程序化单元中所存储的数据进行解码以更正所述第一实体程序化单元中所存储的数据的错误。
25.根据权利要求20所述的存储器存储装置,其中
所述存储器控制电路单元使用所述第一数据进行编码以产生第三编码数据,
所述存储器控制电路单元使用所述第二数据进行编码以产生第四编码数据,以及
所述存储器控制电路单元将所述第三编码数据写入至所述第一实体程序化单元以及将所述第四编码数据写入至所述第二实体程序化单元,
其中所述第三编码数据用以更正所述第一实体程序化单元中所存储的数据的错误,所述第四编码数据用以更正所述第二实体程序化单元中所存储的数据的错误,
其中所述第一编码数据与所述第二编码数据是根据第一算法所产生,所述第三编码数据与所述第四编码数据是根据第二算法所产生,所述第一算法不同于所述第二算法。
26.根据权利要求25所述的存储器存储装置,其中所述第一算法为多框架编码算法,所述第二算法为单框架编码算法。
27.根据权利要求26所述的存储器存储装置,其中
所述多框架编码算法用以编码所述多个实体程序化单元中多个第五实体程序化单元中所存储的数据以产生第五编码数据,所述第五编码数据用以更正所述多个第五实体程序化单元中所存储的数据的错误,
所述单框架编码算法用以编码所述多个实体程序化单元中单一一个第六实体程序化单元中所存储的数据以产生第六编码数据,且所述第六编码数据用以更正所述第六实体程序化单元中所存储的数据的错误。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711006199.9A CN109710450B (zh) | 2017-10-25 | 2017-10-25 | 数据编码方法、存储器控制电路单元与存储器存储装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711006199.9A CN109710450B (zh) | 2017-10-25 | 2017-10-25 | 数据编码方法、存储器控制电路单元与存储器存储装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109710450A CN109710450A (zh) | 2019-05-03 |
CN109710450B true CN109710450B (zh) | 2022-05-31 |
Family
ID=66252348
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711006199.9A Active CN109710450B (zh) | 2017-10-25 | 2017-10-25 | 数据编码方法、存储器控制电路单元与存储器存储装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109710450B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113299329A (zh) * | 2021-06-10 | 2021-08-24 | 深圳宏芯宇电子股份有限公司 | 存储装置及其控制方法、控制电路单元 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5748547A (en) * | 1996-05-24 | 1998-05-05 | Shau; Jeng-Jye | High performance semiconductor memory devices having multiple dimension bit lines |
CN105991230A (zh) * | 2015-02-13 | 2016-10-05 | 瑞昱半导体股份有限公司 | 存储器控制模块与方法以及纠错码编/解码电路与方法 |
CN106158040A (zh) * | 2015-04-21 | 2016-11-23 | 群联电子股份有限公司 | 读取电压准位估测方法、存储器存储装置及控制电路单元 |
CN106297883A (zh) * | 2015-06-05 | 2017-01-04 | 群联电子股份有限公司 | 解码方法、存储器存储装置及存储器控制电路单元 |
CN106445404A (zh) * | 2015-08-13 | 2017-02-22 | 群联电子股份有限公司 | 存储器编程方法、存储器控制电路单元与存储器存储装置 |
-
2017
- 2017-10-25 CN CN201711006199.9A patent/CN109710450B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5748547A (en) * | 1996-05-24 | 1998-05-05 | Shau; Jeng-Jye | High performance semiconductor memory devices having multiple dimension bit lines |
CN105991230A (zh) * | 2015-02-13 | 2016-10-05 | 瑞昱半导体股份有限公司 | 存储器控制模块与方法以及纠错码编/解码电路与方法 |
CN106158040A (zh) * | 2015-04-21 | 2016-11-23 | 群联电子股份有限公司 | 读取电压准位估测方法、存储器存储装置及控制电路单元 |
CN106297883A (zh) * | 2015-06-05 | 2017-01-04 | 群联电子股份有限公司 | 解码方法、存储器存储装置及存储器控制电路单元 |
CN106445404A (zh) * | 2015-08-13 | 2017-02-22 | 群联电子股份有限公司 | 存储器编程方法、存储器控制电路单元与存储器存储装置 |
Also Published As
Publication number | Publication date |
---|---|
CN109710450A (zh) | 2019-05-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9812194B1 (en) | Decoding method, memory storage device and memory control circuit unit | |
US20200065187A1 (en) | Data access method, memory control circuit unit and memory storage device | |
CN107146638B (zh) | 译码方法、存储器储存装置及存储器控制电路单元 | |
CN106843744B (zh) | 数据程序化方法与存储器储存装置 | |
CN109491828B (zh) | 解码方法、存储器存储装置及存储器控制电路单元 | |
CN113140253A (zh) | 存储器管理方法、存储器存储装置及存储器控制电路单元 | |
CN111580741A (zh) | 数据写入方法、存储器控制电路单元与存储器存储装置 | |
CN107305510B (zh) | 数据处理方法、存储器存储装置及存储器控制电路单元 | |
CN109559774B (zh) | 解码方法、存储器控制电路单元以及存储器存储装置 | |
CN109710450B (zh) | 数据编码方法、存储器控制电路单元与存储器存储装置 | |
CN109697134B (zh) | 解码方法、存储器存储装置及存储器控制电路单元 | |
CN112799874B (zh) | 存储器控制方法、存储器存储装置及存储器控制电路单元 | |
CN107608817B (zh) | 解码方法、存储器存储装置及存储器控制电路单元 | |
CN109508252B (zh) | 数据编码方法、存储器控制电路单元与存储器存储装置 | |
CN110874282B (zh) | 数据存取方法、存储器控制电路单元与存储器存储装置 | |
CN113724774A (zh) | 解码方法、存储器存储装置及存储器控制电路单元 | |
CN108428464B (zh) | 解码方法、存储器储存装置及存储器控制电路单元 | |
CN109308930B (zh) | 数据写入方法、存储器控制电路单元及存储器存储装置 | |
CN107239224B (zh) | 数据保护方法、存储器控制电路单元与存储器存储装置 | |
CN111143253A (zh) | 数据储存方法、存储器控制电路单元以及存储器储存装置 | |
TWI763310B (zh) | 記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元 | |
CN110875081A (zh) | 存储器测试方法与存储器测试系统 | |
CN111666174B (zh) | 数据写入方法、存储器控制电路单元以及存储器存储装置 | |
US11669394B2 (en) | Crossing frames encoding management method, memory storage apparatus and memory control circuit unit | |
US10074433B1 (en) | Data encoding method, memory control circuit unit and memory storage device |
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 |