CN110874282B - 数据存取方法、存储器控制电路单元与存储器存储装置 - Google Patents
数据存取方法、存储器控制电路单元与存储器存储装置 Download PDFInfo
- Publication number
- CN110874282B CN110874282B CN201811009285.XA CN201811009285A CN110874282B CN 110874282 B CN110874282 B CN 110874282B CN 201811009285 A CN201811009285 A CN 201811009285A CN 110874282 B CN110874282 B CN 110874282B
- Authority
- CN
- China
- Prior art keywords
- data
- error correction
- physical programming
- correction code
- programming unit
- 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
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1044—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices with specific ECC/EDC distribution
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明提供一种数据存取方法、存储器控制电路单元与存储器存储装置。此方法包括:依据第一错误校正编码操作产生与接收的第一数据对应的第一错误更正码;并且依据第二错误校正编码操作产生与接收的第二数据对应的第二错误更正码,其中第二错误更正码包括第一及第二部分错误更正码。此方法还包括将第一数据及第一错误更正码与第二部分错误更正码分别写入至第一实体程序化单元的数据比特区及冗余比特区;以及将第二数据及第一部分错误更正码分别写入至第二实体程序化单元的数据比特区及冗余比特区。
Description
技术领域
本发明涉及一种数据存取方法、存储器控制电路单元与存储器存储装置。
背景技术
数码相机、移动电话与MP3播放器在这几年来的成长十分迅速,使得消费者对存储媒体的需求也急速增加。由于可复写式非易失性存储器模块(rewritable non-volatilememory module),例如,快闪存储器,具有数据非易失性、省电、体积小,以及无机械结构等特性,所以非常适合内建于上述所举例的各种可携式多媒体装置中。
一般来说,为了确保数据的正确性,数据会先被编码然后再被写入可复写式非易失性存储器模块。在读取数据时,数据会被解码以尝试更正其中的错误。若数据中的错误比特皆被更正,数据才会被传回给主机系统。在写入数据至可复写式非易失性存储器模块的实体程序化单元时,会产生与数据相对应的错误更正码(error correcting code,ECC)和/或错误检查码(error detecting code,EDC),并且数据会被写入至实体程序化单元的数据比特区,而与数据相对应的错误更正码会被写入至实体程序化单元的冗余比特区。编码产生的错误更正码可用来更正欲保护的数据中的错误。
由于制程技术上的关系,存储在实体程序化单元的数据的错误比特发生机率(即,错误率)可能不相同。例如在TLC NAND型快闪存储器中,一般来说,下实体程序化单元的可靠度是高于中实体程序化单元的可靠度,中实体程序化单元的可靠度是高于上实体程序化单元的可靠度。也就是说,实体程序化单元的可靠度越低,其出现错误比特的数目也会越多,在执行解码操作令数据被更正时需要的错误更正码的比特数目也会越多。例如对于可靠度较高的下实体程序化单元,其出现错误比特的数目比较少,执行解码操作令数据被更正时需要的错误更正码的比特数目也会较少,需要存储错误更正码的存储空间也较小。相反地,对于可靠度较低的上实体程序化单元,其出现错误比特的数目比较多,则执行解码操作令数据被更正时需要的错误更正码的比特数目也会较多,需要存储错误更正码的存储空间也较大。
而在传统方式中,无论实体程序化单元的可靠度高低,实体程序化单元中用于存储错误更正码的冗余比特区的大小是固定。然而,对于可靠度低的实体程序单元来说,若有能较多存储空间存储校正能力更强的错误更正码,可以提高存储数据的可靠度。
发明内容
本发明提供一种数据存取方法、存储器控制电路单元与存储器存储装置。
本发明的一范例实施例提出一种数据存取方法,用于包括多个实体程序化单元的可复写式非易失性存储器模块,每一实体程序化单元包括数据比特区与冗余比特区。数据存取方法包括:接收第一数据;依据第一错误校正编码操作产生对应第一数据的第一错误更正码;接收第二数据;以及依据第二错误校正编码操作产生对应第二数据的第二错误更正码,其中,第二错误更正码包括第一部分错误更正码及第二部分错误更正码。此方法还包括:写入第一数据至该些实体程序化单元之中的第一实体程序化单元的数据比特区,并且将第一错误更正码与第二错误更正码的第二部分错误更正码写入至第一实体程序化单元的冗余比特区;以及写入第二数据至该些实体程序化单元之中的第二实体程序化单元的数据比特区,并且将第一部分错误更正码写入第二实体程序化单元的冗余比特区,其中第一错误更正码的比特数目与第二错误更正码的比特数目不同。
在本发明的一范例实施例中,上述数据存取方法还包括:从第一实体程序化单元的数据比特区中读取第一数据;从第一实体程序化单元的冗余比特区中读取第一错误更正码;依据从第一实体程序化单元的冗余比特区中读取的第一错误更正码,对从第一实体程序化单元的数据比特区中读取的第一数据执行第一错误校正解码操作,并且判断从第一实体程序化单元的数据比特区中读取的第一数据内的错误比特是否可被校正;以及若从该第一实体程序化单元的数据比特区中读取的该第一数据内的错误比特可被校正时,将已校正的第一数据传送至主机系统。
在本发明的一范例实施例中,上述数据存取方法还包括:从第二实体程序化单元的数据比特区中读取第二数据;从第二实体程序化单元的冗余比特区中读取第一部分错误更正码;依据从第二实体程序化单元的冗余比特区中读取的第一部分错误更正码,对从第二实体程序化单元的数据比特区中读取的第二数据执行第二错误校正解码操作,并且判断从第二实体程序化单元的数据比特区中读取的第二数据内的错误比特是否可被校正;以及若依据从第二实体程序化单元的冗余比特区中读取的第一部分错误更正码可校正从第二实体程序化单元的数据比特区中读取的第二数据内的错误比特时,将已校正的第二数据传送至主机系统。
在本发明的一范例实施例中,上述数据存取方法还包括:若依据从第二实体程序化单元的冗余比特区中读取的第一部分错误更正码无法校正从第二实体程序化单元的数据比特区中读取的第二数据内的错误比特时,从第一实体程序化单元的冗余比特区中读取第二部分错误更正码;依据从第二实体程序化单元的冗余比特区中读取的第一部分错误更正码和从第一实体程序化单元的冗余比特区中读取的第二部分错误更正码,对从第二实体程序化单元的数据比特区中读取的第二数据执行第二错误校正解码操作,并且判断从第二实体程序化单元的数据比特区中读取的第二数据内的错误比特是否可被校正;以及若依据从第二实体程序化单元的冗余比特区中读取的第一部分错误更正码和从第一实体程序化单元的冗余比特区中读取的第二部分错误更正码可校正从第二实体程序化单元的数据比特区中读取的第二数据内的错误比特时,将已校正的第二数据传送至主机系统。
在本发明的一范例实施例中,上述可复写式非易失性存储器模块为多阶存储单元反及快闪存储器模块,且第一实体程序化单元属于下实体程序化单元或者中实体程序化单元,并且第二实体程序化单元属于上实体程序化单元。
本发明的一范例实施例提出一种存储器控制电路单元,用于控制包括多个实体程序化单元的可复写式非易失性存储器模块,每一实体程序化单元包括数据比特区与冗余比特区。此存储器控制电路单元包括主机接口、存储器接口以及存储器管理电路。主机接口用以耦接电性连接至主机系统。存储器接口用以耦接电性连接至可复写式非易失性存储器模块。存储器管理电路耦接电性连接至主机接口以及存储器接口,存储器管理电路用以接收第一数据,依据第一错误校正编码操作产生对应第一数据的第一错误更正码。存储器管理电路还用以接收第二数据,依据第二错误校正编码操作产生对应第二数据的第二错误更正码,其中第二错误更正码包括第一部分错误更正码及第二部分错误更正码。存储器管理电路还用以写入第一数据至该些实体程序化单元之中的第一实体程序化单元的数据比特区,并且将第一错误更正码与第二错误更正码的第二部分错误更正码写入至第一实体程序化单元的冗余比特区。此外,存储器管理电路还用以写入第二数据至该些实体程序化单元之中的第二实体程序化单元的数据比特区,并且将第一部分错误更正码写入第二实体程序化单元的冗余比特区,其中第一错误更正码的比特数目与第二错误更正码的比特数目不同。
在本发明的一范例实施例中,上述存储器管理电路还用以从第一实体程序化单元的数据比特区中读取第一数据,从第一实体程序化单元的冗余比特区中读取第一错误更正码。存储器管理电路还用以依据从第一实体程序化单元的冗余比特区中读取的第一错误更正码,对从第一实体程序化单元的数据比特区中读取的第一数据执行第一错误校正解码操作。并且存储器管理电路还用以判断从第一实体程序化单元的数据比特区中读取的第一数据内的错误比特是否可被校正。若从第一实体程序化单元的数据比特区中读取的第一数据内的错误比特可被校正时,存储器管理电路还用以将已校正的第一数据传送至主机系统。
在本发明的一范例实施例中,上述存储器管理电路还用以从第二实体程序化单元的数据比特区中读取第二数据。存储器管理电路还用以从第二实体程序化单元的冗余比特区中读取第一部分错误更正码。存储器管理电路还用以依据第二实体程序化单元的冗余比特区中读取的第一部分错误更正码,对从第二实体程序化单元的数据比特区中读取的第二数据执行第二错误校正解码操作。并且,存储器管理电路还用以判断从第二实体程序化单元的数据比特区中读取的第二数据内的错误比特是否可被更正。若依据从第二实体程序化单元的冗余比特区中读取的第一部分错误更正码可校正从第二实体程序化单元的数据比特区中读取的第二数据内的错误比特时,存储器管理电路更用以将已校正第二数据传送至主机系统。
在本发明的一范例实施例中,若依据从第二实体程序化单元的冗余比特区中读取的第一部分错误更正码无法校正从第二实体程序化单元的数据比特区中读取的第二数据内的错误比特时,上述存储器管理电路还用以从第一实体程序化单元的冗余比特区中读取第二部分错误更正码,并且依据从第二实体程序化单元的冗余比特区中读取的第一部分错误更正码以及从第一实体程序化单元的冗余比特区中读取的第二部分错误更正码,对从第二实体程序化单元的数据比特区中读取的第二数据执行第二错误校正解码操作。此外,存储器管理电路还用以判断从第二实体程序化单元的数据比特区中读取的第二数据内的错误比特是否可被校正。若依据从第二实体程序化单元的冗余比特区中读取的第一部分错误更正码和从第一实体程序化单元的冗余比特区中读取的第二部分错误更正码可校正从第二实体程序化单元的数据比特区中读取的第二数据内的错误比特时,上述存储器管理电路还用以将已校正的第二数据传送至主机系统。
在本发明的一范例实施例中,上述可复写式非易失性存储器模块为多阶存储单元反及快闪存储器模块,且第一实体程序化单元属于下实体程序化单元或者中实体程序化单元,并且第二实体程序化单元属于上实体程序化单元。
本发明的一范例实施例提出一种存储器存储装置,其包括连接接口单元、可复写式非易失性存储器模块以及存储器控制电路单元。连接接口单元用以耦接电性连接至主机系统。可复写式非易失性存储器模块包括多个实体程序化单元,每一实体程序化单元包括数据比特区与冗余比特区。存储器控制电路单元耦接电性连接至连接接口单元与可复写式非易失性存储器模块,存储器控制电路单元用以接收第一数据,依据第一错误校正编码操作产生对应第一数据的第一错误更正码。存储器控制电路单元用以接收第二数据,依据第二错误校正编码操作产生对应第二数据的第二错误更正码,其中第二错误更正码包括第一部分错误更正码及第二部分错误更正码。存储器控制电路单元用以写入第一数据至该些实体程序化单元之中的第一实体程序化单元的数据比特区,并且将第一错误更正码与第二错误更正码的第二部分错误更正码写入至第一实体程序化单元的冗余比特区。此外,存储器控制电路单元用以写入第二数据至该些实体程序化单元之中的第二实体程序化单元的数据比特区,并且将第一部分错误更正码写入第二实体程序化单元的冗余比特区。其中第一错误更正码的比特数目与第二错误更正码的比特数目不同。
在本发明的一范例实施例中,上述存储器控制电路单元还用以从第一实体程序化单元的数据比特区读取第一数据,从第一实体程序化单元的冗余比特区读取第一错误更正码。存储器控制电路单元还用以依据第一实体程序化单元的冗余比特区中读取的第一错误更正码,对从第一实体程序化单元的数据比特区中读取的第一数据执行第一错误校正解码操作。并且存储器控制电路单元还用以判断从第一实体程序化单元的数据比特区中读取的第一数据内的错误比特是否可被校正。若从该第一实体程序化单元的数据比特区中读取的该第一数据内的错误比特可被校正时,上述存储器控制电路单元还用以将已校正的第一数据传送至主机系统。
在本发明的一范例实施例中,上述存储器控制电路单元还用以从第二实体程序化单元的数据比特区中读取第二数据。存储器控制电路单元还用以从第二实体程序化单元的冗余比特区中读取第一部分错误更正码。上述存储器控制电路单元还用以依据从第二实体程序化单元的冗余比特区中读取的第一部分错误更正码,对从第二实体程序化单元的数据比特区中读取的第二数据执行第二错误校正解码操作。并且上述存储器控制电路单元还用以判断从第二实体程序化单元的数据比特区中读取的第二数据内的错误比特是否可被校正。若依据从第二实体程序化单元的冗余比特区中读取的第一部分错误更正码可校正从第二实体程序化单元的数据比特区中读取的第二数据内的错误比特时,上述存储器控制电路单元还用以将已校正的第二数据传送至主机系统。
在本发明的一范例实施例中,若依据从第二实体程序化单元的冗余比特区中读取的第一部分错误更正码无法校正从第二实体程序化单元的数据比特区中读取的第二数据内的错误比特时,上述存储器控制电路单元还用以从第一实体程序化单元的冗余比特区中读取第二部分错误更正码,并且依据从第二实体程序化单元的冗余比特区中读取的第一部分错误更正码以及从第一实体程序化单元的冗余比特区中读取的第二部分错误更正码,对从第二实体程序化单元的数据比特区中读取的第二数据执行第二错误校正解码操作。此外,上述存储器控制电路单元还用以判断从第二实体程序化单元的数据比特区中读取的第二数据内的错误比特是否可被校正。若依据从第二实体程序化单元的冗余比特区中读取的第一部分错误更正码和从第一实体程序化单元的冗余比特区中读取的第二部分错误更正码可校正从第二实体程序化单元的数据比特区中读取的第二数据内的错误比特时,上述存储器控制电路单元还用以将已校正的第二数据传送至主机系统。
在本发明的一范例实施例中,上述可复写式非易失性存储器模块为多阶存储单元反及快闪存储器模块,且第一实体程序化单元属于下实体程序化单元或者中实体程序化单元,并且第二实体程序化单元属于上实体程序化单元。
基于上述,本发明提供一种数据存取方法、存储器控制电路单元与存储器存储装置,可以因应实体程序化单元的可靠度高低,在写入数据时将可靠度较低的实体程序化单元产生的错误更正码的一部分写入可靠度较高的实体程序化单元的冗余比特区,不仅可以得到最佳的解码能力,并且合理利用了实体程序化单元中用于存储错误更正码的冗余比特区的存储空间。
为让本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合附图作详细说明如下。
附图说明
图1是根据本发明的一范例实施例所示出的主机系统、存储器存储装置及输入/输出(I/O)装置的示意图。
图2是根据本发明的另一范例实施例所示出的主机系统、存储器存储装置及I/O装置的示意图。
图3是根据本发明的另一范例实施例所示出的主机系统与存储器存储装置的示意图。
图4是根据本发明的一范例实施例所示出的存储器存储装置的概要方块图。
图5是根据本发明的一范例实施例所示出的存储器控制电路单元的概要方块图。
图6是根据本发明的一范例实施例所示出的写入数据至实体程序化单元的示意图。
图7是根据本发明的一范例实施例所示出的数据写入方法的流程图。
图8是根据本发明的一范例实施例所示出的读取第一数据的方法的流程图。
图9是根据本发明的一范例实施例所示出的读取第二数据的方法的流程图。
附图标记说明:
10:存储器存储装置;
11:主机系统;
12:输入/输出(I/O)装置;
110:系统总线;
111:处理器;
112:随机存取存储器(RAM)/缓冲存储器;
113:只读存储器(ROM);
114:数据传输接口;
20:主机板;
201:U盘;
202:存储卡;
203:固态硬件;
204:无线存储器存储装置;
205:全球定位系统模块;
206:网络接口卡;
207:无线传输装置;
208:键盘;
209:屏幕;
210:喇叭;
30:存储器存储装置;
31:主机系统;
32:SD卡;
33:CF卡;
34:嵌入式存储装置;
341:嵌入式多媒体卡;
342:嵌入式多芯片封装存储装置;
402:连接接口单元;
404:存储器控制电路单元;
406:可复写式非易失性存储器模块;
408:选项只读存储器;
502:存储器管理电路;
504:主机接口;
506:存储器接口;
508:错误检查与校正电路;
510:缓冲存储器;
512:电源管理电路;
601:实体程序化单元、第一实体程序化单元;
602:实体程序化单元、第二实体程序化单元;
6011、6021:数据比特区;
6012、6022:冗余比特区;
D1:第一数据;
D2:第二数据;
S1:第一错误更正码;
S2:第二错误更正码;
S2_1:第一部分错误更正码;
S2_2:第二部分错误更正码;
S701:接收第一数据的步骤;
S703:依据第一错误校正编码操作产生对应第一数据的第一错误更正码的步骤;
S705:接收第二数据的步骤;
S707:依据第二错误校正编码操作产生对应第二数据的第二错误更正码,第二错误更正码包括第一部分错误更正码及第二部分错误更正码的步骤;
S709:将第一数据写入至第一实体程序化单元的数据比特区,并且将第一错误更正码与第二错误更正码的第二部分错误更正码写入第一实体程序化单元的冗余比特区的步骤;
S711:将第二数据写入至第二实体程序化单元的数据比特区,并且将第二错误更正码的第一部分错误更正码写入至第二实体程序化单元的冗余比特区的步骤;
S801:从第一实体程序化单元的数据比特区中读取第一数据的步骤;
S803:从第一实体程序化单元的冗余比特区读取第一错误更正码的步骤;
S805:依据第一错误更正码,对读取的第一数据执行第一错误校正解码操作,并且判断第一数据内的错误比特是否可被校正的步骤;
S807:将已校正的第一数据传送至主机系统的步骤;
S809:输出错误信息的步骤;
S901:从第二实体程序化单元的数据比特区中读取第二数据的步骤;
S903:从第二实体程序化单元的冗余比特区读取第二错误更正码的第一部分错误更正码的步骤;
S905:依据第一部分错误更正码,对读取的第二数据执行第二错误校正解码操作,并且判断第二数据内的错误比特是否可被校正的步骤;
S907:将已校正的第二数据传送至主机系统的步骤;
S909:从第一实体程序化单元的冗余比特区中读取第二部分错误更正码的步骤;
S911:依据第一部分错误更正码和第二部分错误更正码,对第二数据执行第二错误校正解码操作,并且判断第二数据内的错误比特是否可被校正的步骤;
S913:将已校正的第二数据传送至主机系统的步骤;
S915:输出错误信息的步骤。
具体实施方式
一般而言,存储器存储装置(也称,存储器存储系统)包括可复写式非易失性存储器模块(rewritable non-volatile memory module)与控制器(也称,控制电路)。通常存储器存储装置是与主机系统一起使用,以使主机系统可将数据写入至存储器存储装置或从存储器存储装置中读取数据。
图1是根据本发明的一范例实施例所示出的主机系统、存储器存储装置及输入/输出(I/O)装置的示意图。图2是根据本发明的另一范例实施例所示出的主机系统、存储器存储装置及I/O装置的示意图。请参照图1与图2,主机系统11一般包括处理器111、随机存取存储器(random access 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可例如是近距离无线通信(NearFieldCommunication,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可为其所使用的安全数字(SecureDigital,SD)卡32、小型快闪(Compact Flash,CF)卡33或嵌入式存储装置34等各式非易失性存储器存储装置。嵌入式存储装置34包括嵌入式多媒体卡(embedded Multi MediaCard,eMMC)341和/或嵌入式多芯片封装(embedded Multi Chip Package,eMCP)存储装置342等各类型将存储器模块直接耦接电性连接于主机系统的基板上的嵌入式存储装置。
图4是根据本发明的一范例实施例所示出的存储器存储装置的概要方块图。请参照图4,存储器存储装置10包括连接接口单元402、存储器控制电路单元404与可复写式非易失性存储器模块406。
连接接口单元402用以将存储器存储装置10耦接电性连接至主机系统11。在本范例实施例中,连接接口单元402是相容于序列先进附件(Serial Advanced TechnologyAttachment,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)标准、SD接口标准、超高速一代(UltraHigh Speed-I,UHS-I)接口标准、超高速二代(Ultra High Speed-II,UHS-II)接口标准、存储棒(MemoryStick,MS)接口标准、MCP接口标准、MMC接口标准、eMMC接口标准、通用快闪存储器(Universal Flash Storage,UFS)接口标准、eMCP接口标准、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 LevelCell,TLC)NAND型快闪存储器模块(即,一个存储单元中可存储3个比特的快闪存储器模块)、其他快闪存储器模块或其他具有相同特性的存储器模块。
可复写式非易失性存储器模块406中的每一个存储单元是以电压(以下也称为临界电压)的改变来存储一或多个比特。具体来说,每一个存储单元的控制闸极(controlgate)与通道之间有一个电荷捕捉层。通过施予写入电压至控制闸极,可以改变电荷补捉层的电子量,进而改变存储单元的临界电压。此改变存储单元的临界电压的操作也称为“把数据写入至存储单元”或“程序化(programming)存储单元”。随着临界电压的改变,可复写式非易失性存储器模块406中的每一个存储单元具有多个存储状态。通过施予读取电压可以判断一个存储单元是属于哪一个存储状态,藉此取得此存储单元所存储的一或多个比特。
在本范例实施例中,可复写式非易失性存储器模块406的存储单元会构成多个实体程序化单元,并且此些实体程序化单元会构成多个实体抹除单元。具体来说,同一条字元线上的存储单元会组成一或多个实体程序化单元。若每一个存储单元可存储2个以上的比特,则同一条字元线上的实体程序化单元至少可被分类为下实体程序化单元与上实体程序化单元。例如,存储单元的最低有效比特(Least Significant Bit,LSB)是属于下实体程序化单元,并且存储单元的最高有效比特(Most Significant Bit,MSB)是属于上实体程序化单元。一般来说,在MLC NAND型快闪存储器中,下实体程序化单元的写入速度会大于上实体程序化单元的写入速度,和/或下实体程序化单元的可靠度是高于上实体程序化单元的可靠度。
在本范例实施例中,实体程序化单元为程序化的最小单元。即,实体程序化单元为写入数据的最小单元。例如,实体程序化单元为实体页面(page)或是实体扇(sector)。若实体程序化单元为实体页面,则此些实体程序化单元通常包括数据比特区与冗余(redundancy)比特区。数据比特区包含多个实体扇,用以存储使用者数据,而冗余比特区用以存储系统数据(例如,错误更正码等管理数据)。在本范例实施例中,数据比特区包含32个实体扇,且一个实体扇的大小为512字节(byte,B)。然而,在其他范例实施例中,数据比特区中也可包含8个、16个或数目更多或更少的实体扇,并且每一个实体扇的大小也可以是更大或更小。另一方面,实体抹除单元为抹除的最小单位。也即,每一实体抹除单元含有最小数目之一并被抹除的存储单元。例如,实体抹除单元为实体区块(block)。
图5是根据本发明的一范例实施例所示出的存储器控制电路单元的概要方块图。
请参照图5,存储器控制电路单元404包括存储器管理电路502、主机接口504、存储器接口506及错误检查与校正电路508。
存储器管理电路502用以控制存储器控制电路单元404的整体运作。具体来说,存储器管理电路502具有多个控制指令,并且在存储器存储装置10运作时,此些控制指令会被执行以进行数据的写入、读取与抹除等运作。以下说明存储器管理电路502的操作时,等同于说明存储器控制电路单元404的操作。
在本范例实施例中,存储器管理电路502的控制指令是以固件型式来实作。例如,存储器管理电路502具有微处理器单元(未示出)与只读存储器(未示出),并且此些控制指令是被烧录至此只读存储器中。当存储器存储装置10运作时,此些控制指令会由微处理器单元来执行以进行数据的写入、读取与抹除等运作。
在另一范例实施例中,存储器管理电路502的控制指令也可以程序码型式存储于可复写式非易失性存储器模块406的特定区域(例如,存储器模块中专用于存放系统数据的系统区)中。此外,存储器管理电路502具有微处理器单元(未示出)、只读存储器(未示出)及随机存取存储器(未示出)。特别是,此只读存储器具有开机码(boot code),并且当存储器控制电路单元404被致能时,微处理器单元会先执行此开机码来将存储于可复写式非易失性存储器模块406中的控制指令载入至存储器管理电路502的随机存取存储器中。之后,微处理器单元会运转此些控制指令以进行数据的写入、读取与抹除等运作。
此外,在另一范例实施例中,存储器管理电路502的控制指令也可以硬件型式来实作。例如,存储器管理电路502包括微控制器、存储单元管理电路、存储器写入电路、存储器读取电路、存储器抹除电路与数据处理电路。存储单元管理电路、存储器写入电路、存储器读取电路、存储器抹除电路与数据处理电路是耦接电性连接至微控制器。存储单元管理电路用以管理可复写式非易失性存储器模块406的存储单元或其群组。存储器写入电路用以对可复写式非易失性存储器模块406下达写入指令序列以将数据写入至可复写式非易失性存储器模块406中。存储器读取电路用以对可复写式非易失性存储器模块406下达读取指令序列以从可复写式非易失性存储器模块406中读取数据。存储器抹除电路用以对可复写式非易失性存储器模块406下达抹除指令序列以将数据从可复写式非易失性存储器模块406中抹除。数据处理电路用以处理欲写入至可复写式非易失性存储器模块406的数据以及从可复写式非易失性存储器模块406中读取的数据。写入指令序列、读取指令序列及抹除指令序列可各别包括一或多个程序码或指令码并且用以指示可复写式非易失性存储器模块406执行相对应的写入、读取及抹除等操作。在一范例实施例中,存储器管理电路502还可以下达其他类型的指令序列给可复写式非易失性存储器模块406以指示执行相对应的操作。
存储器管理电路502可将可复写式非易失性存储器模块406的多个实体单元逻辑地分组至存储区与替换区。存储区中的实体单元是用以存储数据,而替换区中的实体单元则是用以替换存储区中损坏的实体单元。例如,若从某一个实体单元中读取的数据所包含的错误过多而无法被更正时,此实体单元可被视为是损坏的实体单元。须注意的是,若替换区中没有可用的实体单元,则存储器管理电路502可能会将整个存储器存储装置10宣告为写入保护(write protect)状态,而无法再写入数据。
在本范例实施例中,每一个实体单元是指一个实体抹除单元。然而,在另一范例实施例中,一个实体单元也可以是指一个实体地址、一个实体程序化单元或由多个连续或不连续的实体地址组成。存储器管理电路502可配置多个逻辑单元以映射存储区中的实体单元。在本范例实施例中,每一个逻辑单元是指一个逻辑地址。然而,在另一范例实施例中,一个逻辑单元也可以是指一个逻辑程序化单元、一个逻辑抹除单元或者由多个连续或不连续的逻辑地址组成。此外,逻辑单元中的每一者可被映射至一或多个实体单元。
存储器管理电路502可将逻辑单元与实体单元之间的映射关系(也称为逻辑-实体地址映射关系)记录于至少一逻辑-实体地址映射表。当主机系统11欲从存储器存储装置10读取数据或写入数据至存储器存储装置10时,存储器管理电路502可根据此逻辑-实体地址映射表来执行对于存储器存储装置10的数据存取操作。
主机接口504是耦接电性连接至存储器管理电路502并且用以接收与识别主机系统11所传送的指令与数据。也就是说,主机系统11所传送的指令与数据会通过主机接口504来传送至存储器管理电路502。在本范例实施例中,主机接口504是相容于SATA标准。然而,必须了解的是本发明不限于此,主机接口504也可以是相容于PATA标准、IEEE 1394标准、PCI Express标准、USB标准、SD标准、UHS-I标准、UHS-II标准、MS标准、MMC标准、eMMC标准、UFS标准、CF标准、IDE标准或其他适合的数据传输标准。
存储器接口506是耦接电性连接至存储器管理电路502并且用以存取可复写式非易失性存储器模块406。也就是说,欲写入至可复写式非易失性存储器模块406的数据会经由存储器接口506转换为可复写式非易失性存储器模块406所能接受的格式。具体来说,若存储器管理电路502要存取可复写式非易失性存储器模块406,存储器接口506会传送对应的指令序列。例如,这些指令序列可包括指示写入数据的写入指令序列、指示读取数据的读取指令序列、指示抹除数据的抹除指令序列、以及用以指示各种存储器操作(例如,改变读取电压电平或执行垃圾回收操作等等)的相对应的指令序列。这些指令序列例如是由存储器管理电路502产生并且通过存储器接口506传送至可复写式非易失性存储器模块406。这些指令序列可包括一或多个信号,或是在总线上的数据。这些信号或数据可包括指令码或程序码。例如,在读取指令序列中,会包括读取的辨识码、存储器地址等信息。
错误检查与校正电路508是耦接电性连接至存储器管理电路502并且用以执行错误检查与校正操作以确保数据的正确性。具体来说,当存储器管理电路502从主机系统11中接收到写入指令时,错误检查与校正电路508会为对应此写入指令的数据产生对应的错误更正码(error correcting code,ECC)和/或错误检查码(error detecting code,EDC),并且存储器管理电路502会将对应此写入指令的数据与对应的错误更正码和/或错误检查码写入至可复写式非易失性存储器模块406中。之后,当存储器管理电路502从可复写式非易失性存储器模块406中读取数据时会同时读取此数据对应的错误更正码和/或错误检查码,并且错误检查与校正电路508会依据此错误更正码和/或错误检查码对所读取的数据执行错误检查与校正操作。为了说明方便,以下将经由编码产生的错误更正码和/或错误检查码统称为ECC码。
在一范例实施例中,存储器控制电路单元404还包括缓冲存储器510与电源管理电路512。
缓冲存储器510是耦接电性连接至存储器管理电路502并且用以暂存来自于主机系统11的数据与指令或来自于可复写式非易失性存储器模块406的数据。电源管理电路512是耦接电性连接至存储器管理电路502并且用以控制存储器存储装置10的电源。
在本范例实施例中,错误检查与校正电路508支援低密度奇偶检查(low-densityparity-check,LDPC)码。例如,错误检查与校正电路508可利用低密度奇偶检查码来编码与解码。然而,在另一范例实施例中,错误检查与校正电路508也可以支援BCH码、回旋码(convolutional code)、涡轮码(turbo code)等等,本发明不加以限制。
图6是根据本发明的一范例实施例所示出的写入数据至实体程序化单元的示意图。
请参照图6,以存储器控制电路单元404写入数据至可复写式非易失性存储器模块406的实体程序化单元601~602来产生相对应的错误更正码为例。当存储器控制电路单元404接收数据,将数据写入至实体程序化单元601~602时,存储器控制电路单元404依据错误校正编码操作对数据进行编码以产生与数据对应的错误更正码,并且存储器控制电路单元404将数据写入实体程序化单元601~602的数据比特区,将与数据对应的错误更正码写入实体程序化单元601~602的冗余比特区。尔后,存储器控制电路单元404需从实体程序化单元601~602的数据比特区读取数据时,从实体程序化单元601~602的冗余比特区读取与数据对应的错误更正码,并且存储器控制电路单元404会依据从实体程序化单元601~602的冗余比特区读取的与数据对应的错误更正码,对从实体程序化单元601~602的数据比特区中读取的数据执行错误校正解码操作,以尝试更正所读取的数据内可能存在的错误比特。
在此须说明的是,由于制程技术上的关系,可复写式非易失性存储器模块406中实体程序化单元所存储的数据的错误发生机率(即,错误率)可能不相同。例如在TLC NAND型快闪存储器中,上实体程序化单元、中实体程序化单元、下实体程序化单元具有不同的可靠度。一般来说,下实体程序化单元的可靠度是高于中实体程序化单元的可靠度,中实体程序化单元的可靠度是高于上实体程序化单元的可靠度。也就是说,实体程序化单元的可靠度越低,其出现错误比特的数目也会越多,在执行解码操作令数据的错误比特被更正时需要的错误更正码的比特数目也会越多。例如对于可靠度较高的下实体程序化单元,其出现错误比特的数目比较少,执行解码操作令数据的错误比特被更正时需要的错误更正码的比特数目也会较少,需要存储错误更正码的存储空间也较小;相反,对于可靠度较低的上实体程序化单元,其出现错误比特的数目比较多,则执行解码操作令数据的错误比特被更正时需要的错误更正码的比特数目也会较多,需要存储错误更正码的存储空间也较大。
在本范例实施例中,以可复写式非易失性存储器模块406为TLC NAND型快闪存储器,且可复写式非易失性存储器模块406包括实体程序化单元601~602。其中,实体程序化单元601(也称为第一实体程序化单元601)包括数据比特区6011与冗余比特区6012,实体程序化单元602(也称为第二实体程序化单元602)包括数据比特区6021与冗余比特区6022。在此,第一实体程序化单元601属于下实体程序化单元,且第二实体程序化单元602属于上实体程序化单元。第一实体程序化单元601的可靠度较第二实体程序化单元602的可靠度高。在另一范例实施例中,第一实体程序化单元601属于中实体程序化单元,第二实体程序化单元602属于上实体程序化单元。本发明不以此为限。
在一范例实施例中,存储器控制电路单元404接收第一数据D1,依据第一错误校正编码操作对第一数据D1进行编码以产生与第一数据D1对应的第一错误更正码S1。存储器控制电路单元404接收第二数据D2,依据第二错误校正编码操作对第二数据D2进行编码以产生与第二数据D2对应的第二错误更正码S2,其中,第二错误更正码S2包括第一部分错误更正码S2_1及第二部分错误更正码S2_2。
存储器控制电路单元404将第一数据D1写入至第一实体程序化单元601的数据比特区6011,并且将第一错误更正码S1与第二错误更正码S2中的第二部分错误更正码S2_2写入第一实体程序化单元601的冗余比特区6012。类似地,存储器控制电路单元404将第二数据D2写入至第二实体程序化单元602的数据比特区6021,并且将与第二数据D2对应的第二错误更正码S2的第一部分错误更正码S2_1写入第二实体程序化单元602的冗余比特区6022。也就是说,在本范例实施例中,第一实体程序化单元601的数据比特区6011用以存储第一数据D1,第一实体程序化单元601的冗余比特区6012用以存储第一错误更正码S1以及第二错误更正码S2的第二部分错误更正码S2_2。第二实体程序化单元602的数据比特区6021用以存储第二数据D2,第二实体程序化单元602的冗余比特区6022用以存储第二错误更正码S2的第一部分错误更正码S2_1。
在本范例实施中,第一错误更正码S1的比特数目与第二错误更正码S2的比特数目不同。具体来说,由于第一实体程序化单元601属于下实体程序化单元,其出现错误比特的数目比较少,执行错误校正解码操作令数据的错误比特被更正时需要的错误更正码的比特数目也会较少,需要存储错误更正码的存储空间也较小,即是说,需要的冗余比特区的存储空间也较小。而属于可靠度较低的上实体程序化单元的第二实体程序化单元602,其出现错误比特的数目比较多,执行错误校正解码操作令数据的错误比特被更正时需要的错误更正码的比特数目也会较多,需要存储错误更正码的存储空间也较大,即是说,需要的冗余比特区的存储空间也较大。也就是说,第一错误更正码S1的比特数目比第二错误更正码S2的比特数目要少,存储第一错误更正码S1的存储空间比存储第二错误更正码S2的存储空间小。在实体程序化单元的冗余比特区的存储空间固定并且第二错误更正码S2的比特数目超出实体程序化单元的冗余比特区的存储空间的情况下,存储器控制电路单元404会将第二错误更正码S2的第二部分错误更正码S2_2写入第一实体程序化单元601的冗余比特区6012。
在一范例实施例中,当存储器控制电路单元404读取第一实体程序化单元601的数据比特区6011的第一数据D1时,存储器控制电路单元404从第一实体程序化单元601的冗余比特区6012读取与第一数据D1对应的第一错误更正码S1,并依据第一错误更正码S1对第一数据D1执行第一错误校正解码操作,并且,存储器控制电路单元404判断从第一实体程序化单元601的数据比特区6011中读取的第一数据D1内的错误比特是否可被校正。若从第一实体程序化单元601的数据比特区6011中读取的第一数据D1内的错误比特可被校正时,存储器控制电路单元404将已校正的第一数据D1传送至主机系统11。
在一范例实施例中,当存储器控制电路单元404读取第二实体程序化单元602的数据比特区6021的第二数据D2时,存储器控制电路单元404从第二实体程序化单元602的冗余比特区6022读取第二错误更正码S2的第一部分错误更正码S2_1,并依据读取的第一部分错误更正码S2_1,对第二数据D2执行第二错误校正解码操作,并且存储器控制电路单元404判断从第二实体程序化单元602的数据比特区6021中读取的第二数据D2内的错误比特是否可被校正。若依据从第二实体程序化单元602的冗余比特区6022中读取的第一部分错误更正码S2_1可校正从第二实体程序化单元602的数据比特区6021中读取的第二数据D2内的错误比特时,存储器控制电路单元404将已校正的第二数据D2传送至主机系统11。
在另一范例实施例中,若依据从第二实体程序化单元602的冗余比特区6022中读取的第一部分错误更正码S2_1无法校正从第二实体程序化单元602的数据比特区6021中读取的第二数据D2内的错误比特时,存储器控制电路单元404从第一实体程序化单元601的冗余比特区6012读取第二错误更正码S2的第二部分错误更正码S2_2,并且存储器控制电路单元404依据从第二实体程序化单元602的冗余比特区6022读取的第二错误更正码S2的第一部分错误更正码S2_1以及从第一实体程序化单元601的冗余比特区6012读取第二错误更正码S2的第二部分错误更正码S2_2,对从第二实体程序化单元602的数据比特区6021中读取的第二数据D2执行第二错误校正解码操作,判断从第二实体程序化单元602的数据比特区6021中读取的第二数据D2内的错误比特是否可被校正。若依据从第二实体程序化单元602的冗余比特区6022中读取的第一部分错误更正码S2_1和从第一实体程序化单元601的冗余比特区6012中读取的第二部分错误更正码S2_2可校正从第二实体程序化单元602的数据比特区6021中读取的第二数据D2内的错误比特时,存储器控制电路单元404将已校正的第二数据D2传送至主机系统11。
在此需要说明的是,若存储器控制电路单元404依据从第二实体程序化单元602的冗余比特区6022中读取的第一部分错误更正码S2_1对第二数据D2执行第二错误校正解码操作且第二数据D2可以在第二错误校正解码操作中被校正,则存储器控制电路单元404不再继续从第一实体程序化单元601的冗余比特区6012读取第二错误更正码S2的第二部分错误更正码S2_2。
图7是根据本发明的一范例实施例所示出的数据写入方法的流程图。
请参照图7,在步骤S701中,存储器控制电路单元404接收第一数据D1。在步骤S703中,存储器控制电路单元404依据第一错误校正编码操作产生对应第一数据D1的第一错误更正码S1。
在步骤S705中,存储器控制电路单元404接收第二数据D2。在步骤S707中,存储器控制电路单元404依据第二错误校正编码操作产生对应第二数据D2的第二错误更正码S2,其中,第二错误更正码S2包括第一部分错误更正码S2_1及第二部分错误更正码S2_2。
在步骤S709中,存储器控制电路单元404将第一数据D1写入至第一实体程序化单元601的数据比特区6011,并且存储器控制电路单元404将第一错误更正码S1与第二错误更正码S2的第二部分错误更正码S2_2写入第一实体程序化单元601的冗余比特区6012。
在步骤S711中,存储器控制电路单元404将第二数据D2写入至第二实体程序化单元602的数据比特区6021,并且将第二错误更正码S2的第一部分错误更正码S2_1写入至第二实体程序化单元602的冗余比特区6022。其中,在本范例实施例中,第一实体程序化单元601属于下实体程序化单元,第二实体程序化单元602属于上实体程序化单元。第一错误更正码S1的比特数目较第二错误更正码S2的比特数目少。也就是说,存储第一错误更正码S1的存储空间比存储第二错误更正码S2的存储空间小。
图8是根据本发明的一范例实施例所示出的读取第一数据的方法的流程图。
请参照图8,在步骤S801中,存储器控制电路单元404从第一实体程序化单元601的数据比特区6011中读取第一数据D1。在步骤S803中,存储器控制电路单元404从第一实体程序化单元601的冗余比特区6012读取第一错误更正码S1。在步骤S805中,存储器控制电路单元404依据从第一实体程序化单元601的冗余比特区6012读取的第一错误更正码S1,对从第一实体程序化单元601的数据比特区6011中读取的第一数据D1执行第一错误校正解码操作,并且存储器控制电路单元404判断从第一实体程序化单元601的数据比特区6011中读取的第一数据D1内的错误比特是否可被校正。
若从第一实体程序化单元601的冗余比特区6012中读取的第一错误更正码S1内的错误比特可被校正时,在步骤S807中,存储器控制电路单元404将已校正的第一数据D1传送至主机系统11。
若从第一实体程序化单元601的冗余比特区6012中读取的第一错误更正码S1内的错误比特无法被校正时,在步骤S809中,输出错误信息。
图9是根据本发明的一范例实施例所示出的读取第二数据的方法的流程图。
请参照图9,在步骤S901中,存储器控制电路单元404从第二实体程序化单元602的数据比特区6021中读取第二数据D2。在步骤S903中,存储器控制电路单元404从第二实体程序化单元602的冗余比特区6022读取第二错误更正码S2的第一部分错误更正码S2_1。在步骤S905中,存储器控制电路单元404依据从第二实体程序化单元602的冗余比特区6022中读取的第一部分错误更正码S2_1,对从第二实体程序化单元602的数据比特区6021中读取的第二数据D2执行第二错误校正解码操作,并且存储器控制电路单元404判断从第二实体程序化单元602的数据比特区6021中读取的第二数据D2内的错误比特是否可被校正。
若依据从第二实体程序化单元602的冗余比特区6022中读取的第一部分错误更正码S2_1可校正从第二实体程序化单元602的数据比特区6021中读取的第二数据D2内的错误比特时,在步骤S907中,存储器控制电路单元404将已校正的第二数据D2传送至主机系统11。
若依据从第二实体程序化单元602的冗余比特区6022中读取的第一部分错误更正码S2_1无法校正从第二实体程序化单元602的数据比特区6021中读取的第二数据D2内的错误比特时,在步骤S909中,存储器控制电路单元404从第一实体程序化单元601的冗余比特区6011中读取第二部分错误更正码S2_2。
在步骤S911中,存储器控制电路单元404依据从第二实体程序化单元602的冗余比特区6022中读取的第一部分错误更正码S2_1和从第一实体程序化单元601的第一冗余比特区6021中读取的第二部分错误更正码S2_2,存储器控制电路单元404对从第二实体程序化单元602的数据比特区6022中读取的第二数据D2执行第二错误校正解码操作,并且存储器控制电路单元404判断从第二实体程序化单元602的第二数据比特区6022中读取的第二数据D2内的错误比特是否可被校正。
若依据从第二实体程序化单元602的冗余比特区6022中读取的第一部分错误更正码S2_1和从第一实体程序化单元601的冗余比特区6012中读取的第二部分错误更正码S2_2可校正从第二实体程序化单元602的数据比特区6021中读取的第二数据D2内的错误比特时,在步骤S913中,存储器控制电路单元404将已校正的第二数据D2传送至主机系统11。若依据从第二实体程序化单元602的冗余比特区6022中读取的第一部分错误更正码S2_1和从第一实体程序化单元601的冗余比特区6012中读取的第二部分错误更正码S2_2无法校正从第二实体程序化单元602的数据比特区6021中读取的第二数据D2内的错误比特时,在步骤S915中,输出错误信息。
综上所述,本发明提出的数据存取方法、存储器控制电路单元与存储器存储装置,可以因应实体程序化单元的可靠度高低,在写入数据时将可靠度较低的实体程序化单元产生的错误更正码的一部分写入可靠度较高的实体程序化单元的冗余比特区,不仅可以得到最佳的解码能力,并且合理利用了冗余比特区的存储空间。
虽然本发明已以实施例揭示如上,然其并非用以限定本发明,任何所属技术领域中技术人员,在不脱离本发明的精神和范围内,当可作些许的更改与润饰,故本发明的保护范围当视所附权利要求所界定者为准。
Claims (12)
1.一种数据存取方法,用于包括多个实体程序化单元的可复写式非易失性存储器模块,所述可复写式非易失性存储器模块为三阶存储单元(TLC)NAND型快闪存储器模块;所述多个实体程序化单元被分为下实体程序化单元、中实体程序化单元和上实体程序化单元,所述下实体程序化单元的可靠度和所述中实体程序化单元的可靠度高于所述上实体程序化单元的可靠度,每一所述实体程序化单元包括数据比特区与冗余比特区,所述数据存取方法包括:
接收第一数据;
依据第一错误校正编码操作产生对应所述第一数据的第一错误更正码;
接收第二数据;
依据第二错误校正编码操作产生对应所述第二数据的第二错误更正码,所述第二错误更正码包括第一部分错误更正码及第二部分错误更正码;
写入所述第一数据至所述多个实体程序化单元之中的第一实体程序化单元的数据比特区,并且将所述第一错误更正码与所述第二错误更正码的第二部分错误更正码写入至所述第一实体程序化单元的冗余比特区;以及
写入所述第二数据至所述多个实体程序化单元之中的第二实体程序化单元的数据比特区,并且将所述第二错误更正码的所述第一部分错误更正码写入所述第二实体程序化单元的冗余比特区,
其中所述第一错误更正码的比特数目与所述第二错误更正码的比特数目不同,
其中所述第一实体程序化单元属于所述下实体程序化单元或者所述中实体程序化单元,并且所述第二实体程序化单元属于所述上实体程序化单元。
2.根据权利要求1所述的数据存取方法,其中所述数据存取方法还包括:
从所述第一实体程序化单元的数据比特区中读取所述第一数据;
从所述第一实体程序化单元的冗余比特区中读取所述第一错误更正码;
依据从所述第一实体程序化单元的冗余比特区中读取的所述第一错误更正码,对从所述第一实体程序化单元的数据比特区中读取的所述第一数据执行第一错误校正解码操作,并且判断从所述第一实体程序化单元的数据比特区中读取的所述第一数据内的错误比特是否可被校正;以及
若所述第一实体程序化单元的数据比特区中读取的所述第一数据内的错误比特可被校正时,将已校正的所述第一数据传送至主机系统。
3.根据权利要求1所述的数据存取方法,其中所述数据存取方法还包括:
从所述第二实体程序化单元的数据比特区中读取所述第二数据;
从所述第二实体程序化单元的冗余比特区中读取所述第一部分错误更正码;
依据从所述第二实体程序化单元的冗余比特区中读取的所述第一部分错误更正码,对从所述第二实体程序化单元的数据比特区中读取的所述第二数据执行第二错误校正解码操作,并且判断从所述第二实体程序化单元的数据比特区中读取的所述第二数据内的错误比特是否可被校正;以及
若依据从所述第二实体程序化单元的冗余比特区中读取的所述第一部分错误更正码可校正从所述第二实体程序化单元的数据比特区中读取的所述第二数据内的错误比特时,将已校正的所述第二数据传送至主机系统。
4.根据权利要求3所述的数据存取方法,其中所述数据存取方法还包括:
若依据从所述第二实体程序化单元的冗余比特区中读取的所述第一部分错误更正码无法校正从所述第二实体程序化单元的数据比特区中读取的所述第二数据内的错误比特时,从所述第一实体程序化单元的冗余比特区中读取所述第二部分错误更正码;
依据从所述第二实体程序化单元的冗余比特区中读取的所述第一部分错误更正码和从所述第一实体程序化单元的冗余比特区中读取的所述第二部分错误更正码,对从所述第二实体程序化单元的数据比特区中读取的所述第二数据执行所述第二错误校正解码操作,并且判断从所述第二实体程序化单元的数据比特区中读取的所述第二数据内的错误比特是否可被校正;以及
若依据从所述第二实体程序化单元的冗余比特区中读取的所述第一部分错误更正码和从所述第一实体程序化单元的冗余比特区中读取的所述第二部分错误更正码可校正从所述第二实体程序化单元的数据比特区中读取的所述第二数据内的错误比特时,将已校正的所述第二数据传送至所述主机系统。
5.一种存储器控制电路单元,用于控制包括多个实体程序化单元的可复写式非易失性存储器模块,所述可复写式非易失性存储器模块为三阶存储单元(TLC)NAND型快闪存储器模块;所述多个实体程序化单元被分为下实体程序化单元、中实体程序化单元和上实体程序化单元,所述下实体程序化单元的可靠度和所述中实体程序化单元的可靠度高于所述上实体程序化单元的可靠度,每一所述实体程序化单元包括数据比特区与冗余比特区,所述存储器控制电路单元包括:
主机接口,用以耦接电性连接至主机系统;
存储器接口,用以耦接电性连接至所述可复写式非易失性存储器模块;
存储器管理电路,耦接电性连接至所述主机接口以及所述存储器接口,
其中所述存储器管理电路用以接收第一数据,依据第一错误校正编码操作产生对应所述第一数据的第一错误更正码,
其中所述存储器管理电路用以接收第二数据,依据第二错误校正编码操作产生对应所述第二数据的第二错误更正码,所述第二错误更正码包括第一部分错误更正码及第二部分错误更正码,
其中所述存储器管理电路用以写入所述第一数据至所述多个实体程序化单元之中的第一实体程序化单元的数据比特区,并且将所述第一错误更正码与所述第二错误更正码的第二部分错误更正码写入至所述第一实体程序化单元的冗余比特区,以及,
其中所述存储器管理电路用以写入所述第二数据至所述多个实体程序化单元之中的第二实体程序化单元的数据比特区,并且将所述第二错误更正码的所述第一部分错误更正码写入所述第二实体程序化单元的冗余比特区,
其中所述第一错误更正码的比特数目与所述第二错误更正码的比特数目不同,
其中所述第一实体程序化单元属于所述下实体程序化单元或者所述中实体程序化单元,并且所述第二实体程序化单元属于所述上实体程序化单元。
6.根据权利要求5所述的存储器控制电路单元,其中,
所述存储器管理电路还用以从所述第一实体程序化单元的数据比特区中读取所述第一数据,从所述第一实体程序化单元的冗余比特区中读取所述第一错误更正码,
所述存储器管理电路还用以依据从所述第一实体程序化单元的冗余比特区中读取的所述第一错误更正码,对从所述第一实体程序化单元的数据比特区中读取的所述第一数据执行第一错误校正解码操作,并且所述存储器管理电路还用以判断从所述第一实体程序化单元的数据比特区中读取的所述第一数据内的错误比特是否可被校正,以及
若从所述第一实体程序化单元的数据比特区中读取的所述第一数据内的错误比特可被校正时,所述存储器管理电路还用以将已校正的所述第一数据传送至主机系统。
7.根据权利要求5所述的存储器控制电路单元,其中,
所述存储器管理电路还用以从所述第二实体程序化单元的数据比特区中读取所述第二数据,
所述存储器管理电路还用以从所述第二实体程序化单元的冗余比特区中读取所述第一部分错误更正码,
所述存储器管理电路还用以依据所述第二实体程序化单元的冗余比特区中读取的所述第一部分错误更正码,对从所述第二实体程序化单元的数据比特区中读取的所述第二数据执行第二错误校正解码操作,并且所述存储器管理电路还用以判断从所述第二实体程序化单元的数据比特区中读取的所述第二数据内的错误比特是否可被更正,以及
若依据从所述第二实体程序化单元的冗余比特区中读取的所述第一部分错误更正码可校正从所述第二实体程序化单元的数据比特区中读取的所述第二数据内的错误比特时,所述存储器管理电路还用以将已校正的所述第二数据传送至主机系统。
8.根据权利要求7所述的存储器控制电路单元,其中,
若依据从所述第二实体程序化单元的冗余比特区中读取的所述第一部分错误更正码无法校正从所述第二实体程序化单元的数据比特区中读取的所述第二数据内的错误比特时,所述存储器管理电路还用以从所述第一实体程序化单元的冗余比特区中读取所述第二部分错误更正码,
所述存储器管理电路还用以依据从所述第二实体程序化单元的冗余比特区中读取的所述第一部分错误更正码以及从所述第一实体程序化单元的冗余比特区中读取的所述第二部分错误更正码,对从第二实体程序化单元的数据比特区中读取的所述第二数据执行第二错误校正解码操作,并且所述存储器管理电路还用以判断从所述第二实体程序化单元的数据比特区中读取的所述第二数据内的错误比特是否可被校正,以及
若依据从所述第二实体程序化单元的冗余比特区中读取的所述第一部分错误更正码和从所述第一实体程序化单元的冗余比特区中读取的所述第二部分错误更正码可校正从所述第二实体程序化单元的数据比特区中读取的所述第二数据内的错误比特时,所述存储器管理电路还用以将已校正的所述第二数据传送至所述主机系统。
9.一种存储器存储装置,包括:
连接接口单元,用以耦接电性连接至主机系统;
可复写式非易失性存储器模块,包括多个实体程序化单元,每一所述实体程序化单元包括数据比特区与冗余比特区,所述可复写式非易失性存储器模块为三阶存储单元(TLC)NAND型快闪存储器模块;所述多个实体程序化单元被分为下实体程序化单元、中实体程序化单元和上实体程序化单元,所述下实体程序化单元的可靠度和所述中实体程序化单元的可靠度高于所述上实体程序化单元的可靠度;以及
存储器控制电路单元,耦接电性连接至所述连接接口单元与所述可复写式非易失性存储器模块,
其中所述存储器控制电路单元用以接收第一数据,依据第一错误校正编码操作产生对应所述第一数据的第一错误更正码,
其中所述存储器控制电路单元用以接收第二数据,依据第二错误校正编码操作产生对应所述第二数据的第二错误更正码,所述第二错误更正码包括第一部分错误更正码及第二部分错误更正码,
其中所述存储器控制电路单元用以写入所述第一数据至所述多个实体程序化单元之中的第一实体程序化单元的数据比特区,并且将所述第一错误更正码与所述第二错误更正码的第二部分错误更正码写入至所述第一实体程序化单元的冗余比特区,以及
其中所述存储器控制电路单元用以写入所述第二数据至所述多个实体程序化单元之中的第二实体程序化单元的数据比特区,并且将所述第一部分错误更正码写入所述第二实体程序化单元的冗余比特区,
其中所述第一错误更正码的比特数目与所述第二错误更正码的比特数目不同,
其中所述第一实体程序化单元属于所述下实体程序化单元或者所述中实体程序化单元,并且所述第二实体程序化单元属于所述上实体程序化单元。
10.根据权利要求9所述的存储器存储装置,其中,
所述存储器控制电路单元还用以从所述第一实体程序化单元的数据比特区读取所述第一数据,从所述第一实体程序化单元的冗余比特区读取所述第一错误更正码,
所述存储器控制电路单元还用以依据所述第一实体程序化单元的冗余比特区中读取的所述第一错误更正码,对从所述第一实体程序化单元的数据比特区中读取的所述第一数据执行第一错误校正解码操作,并且所述存储器控制电路单元还用以判断从所述第一实体程序化单元的数据比特区中读取的所述第一数据内的错误比特是否可被校正,以及
若从所述第一实体程序化单元的数据比特区中读取的所述第一数据内的错误比特可被校正时,所述存储器控制电路单元还用以将已校正的所述第一数据传送至主机系统。
11.根据权利要求9所述的存储器存储装置,其中,
所述存储器控制电路单元还用以从所述第二实体程序化单元的数据比特区中读取所述第二数据,所述存储器控制电路单元还用以从所述第二实体程序化单元的冗余比特区中读取所述第一部分错误更正码,
所述存储器控制电路单元还用以依据从所述第二实体程序化单元的冗余比特区中读取的所述第一部分错误更正码,对从所述第二实体程序化单元的数据比特区中读取的所述第二数据执行第二错误校正解码操作,并且所述存储器控制电路单元还用以判断从所述第二实体程序化单元的数据比特区中读取的所述第二数据内的错误比特是否可被校正,以及
若依据从所述第二实体程序化单元的冗余比特区中读取的所述第一部分错误更正码可校正从所述第二实体程序化单元的数据比特区中读取的所述第二数据内的错误比特时,所述存储器控制电路单元还用以将已校正的所述第二数据传送至主机系统。
12.根据权利要求11所述的存储器存储装置,其中,
若依据从所述第二实体程序化单元的冗余比特区中读取的所述第一部分错误更正码无法校正从所述第二实体程序化单元的数据比特区中读取的所述第二数据内的错误比特时,所述存储器控制电路单元还用以从所述第一实体程序化单元的冗余比特区中读取所述第二部分错误更正码,
所述存储器控制电路单元还用以依据从所述第二实体程序化单元的冗余比特区中读取的所述第一部分错误更正码以及从所述第一实体程序化单元的冗余比特区中读取的所述第二部分错误更正码,对从所述第二实体程序化单元的数据比特区中读取的所述第二数据执行所述第二错误校正解码操作,并且所述存储器控制电路单元还用以判断从所述第二实体程序化单元的数据比特区中读取的所述第二数据内的错误比特是否可被校正,以及
若依据从所述第二实体程序化单元的冗余比特区中读取的所述第一部分错误更正码和从所述第一实体程序化单元的冗余比特区中读取的所述第二部分错误更正码可校正从所述第二实体程序化单元的数据比特区中读取的所述第二数据内的错误比特时,所述存储器控制电路单元还用以将已校正的所述第二数据传送至所述主机系统。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811009285.XA CN110874282B (zh) | 2018-08-31 | 2018-08-31 | 数据存取方法、存储器控制电路单元与存储器存储装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811009285.XA CN110874282B (zh) | 2018-08-31 | 2018-08-31 | 数据存取方法、存储器控制电路单元与存储器存储装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110874282A CN110874282A (zh) | 2020-03-10 |
CN110874282B true CN110874282B (zh) | 2023-03-21 |
Family
ID=69714409
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811009285.XA Active CN110874282B (zh) | 2018-08-31 | 2018-08-31 | 数据存取方法、存储器控制电路单元与存储器存储装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110874282B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113051100B (zh) * | 2020-06-01 | 2024-05-17 | 长江存储科技有限责任公司 | 一种闪存存储器及其错误比特计数检测系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104182293A (zh) * | 2013-05-22 | 2014-12-03 | 群联电子股份有限公司 | 数据写入方法、存储器存储装置与存储器控制器 |
CN104252600A (zh) * | 2013-06-27 | 2014-12-31 | 群联电子股份有限公司 | 数据保护方法、存储器控制器与存储器储存装置 |
CN104272396A (zh) * | 2012-03-06 | 2015-01-07 | 美光科技公司 | 包含错误校正码组织的设备和方法 |
CN107092536A (zh) * | 2017-04-14 | 2017-08-25 | 合肥兆芯电子有限公司 | 解码方法、存储器存储装置及存储器控制电路单元 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100681429B1 (ko) * | 2005-10-24 | 2007-02-15 | 삼성전자주식회사 | 반도체 메모리 장치 및 그것의 비트 에러 검출 방법 |
TWI527040B (zh) * | 2013-05-13 | 2016-03-21 | 群聯電子股份有限公司 | 資料寫入方法、記憶體儲存裝置與記憶體控制器 |
-
2018
- 2018-08-31 CN CN201811009285.XA patent/CN110874282B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104272396A (zh) * | 2012-03-06 | 2015-01-07 | 美光科技公司 | 包含错误校正码组织的设备和方法 |
CN104182293A (zh) * | 2013-05-22 | 2014-12-03 | 群联电子股份有限公司 | 数据写入方法、存储器存储装置与存储器控制器 |
CN104252600A (zh) * | 2013-06-27 | 2014-12-31 | 群联电子股份有限公司 | 数据保护方法、存储器控制器与存储器储存装置 |
CN107092536A (zh) * | 2017-04-14 | 2017-08-25 | 合肥兆芯电子有限公司 | 解码方法、存储器存储装置及存储器控制电路单元 |
Also Published As
Publication number | Publication date |
---|---|
CN110874282A (zh) | 2020-03-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI658463B (zh) | 資料存取方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI731338B (zh) | 記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI628660B (zh) | 解碼方法、記憶體控制電路單元以及記憶體儲存裝置 | |
US20190138391A1 (en) | Data encoding method, data decoding method and storage controller | |
TWI628543B (zh) | 解碼方法、記憶體儲存裝置及記憶體控制電路單元 | |
TW202040370A (zh) | 資料寫入方法、記憶體控制電路單元以及記憶體儲存裝置 | |
CN109491828B (zh) | 解码方法、存储器存储装置及存储器控制电路单元 | |
CN111580741B (zh) | 数据写入方法、存储器控制电路单元与存储器存储装置 | |
TWI668699B (zh) | 資料儲存方法、記憶體控制電路單元以及記憶體儲存裝置 | |
TWI691962B (zh) | 解碼方法、記憶體控制電路單元與記憶體儲存裝置 | |
CN113724774B (zh) | 解码方法、存储器存储装置及存储器控制电路单元 | |
US9996415B2 (en) | Data correcting method, memory control circuit unit, and memory storage device | |
CN112051963B (zh) | 数据写入方法、存储器控制电路单元以及存储器存储装置 | |
TWI709850B (zh) | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 | |
CN110874282B (zh) | 数据存取方法、存储器控制电路单元与存储器存储装置 | |
CN112799874B (zh) | 存储器控制方法、存储器存储装置及存储器控制电路单元 | |
CN112732199B (zh) | 数据存取方法、存储器控制电路单元及存储器存储装置 | |
CN107179960B (zh) | 解码方法、存储器控制电路单元及存储器存储装置 | |
TW201802820A (zh) | 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI763310B (zh) | 記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元 | |
CN112347010B (zh) | 存储器控制方法、存储器存储装置及存储器控制电路单元 | |
CN111724851B (zh) | 数据保护方法、存储器存储装置及存储器控制电路单元 | |
CN112799973B (zh) | 编码控制方法、存储器存储装置及存储器控制电路单元 | |
CN111258791B (zh) | 存储器控制方法、存储器存储装置及存储器控制电路单元 | |
CN111858389B (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 |