CN109508252B - 数据编码方法、存储器控制电路单元与存储器存储装置 - Google Patents
数据编码方法、存储器控制电路单元与存储器存储装置 Download PDFInfo
- Publication number
- CN109508252B CN109508252B CN201710830622.0A CN201710830622A CN109508252B CN 109508252 B CN109508252 B CN 109508252B CN 201710830622 A CN201710830622 A CN 201710830622A CN 109508252 B CN109508252 B CN 109508252B
- Authority
- CN
- China
- Prior art keywords
- data
- memory
- physical
- cell
- memory cells
- 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/1012—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1068—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C8/00—Arrangements for selecting an address in a digital store
- G11C8/14—Word line organisation; Word line lay-out
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Read Only Memory (AREA)
Abstract
本发明提出一种数据编码方法、存储器控制电路单元与存储器存储装置。所述方法包括:将第一数据写入至多个实体程序化单元组中的第一实体程序化单元组的第一实体程序化单元;将第二数据写入至多个实体程序化单元组中的第二实体程序化单元组的第二实体程序化单元;编码第一数据以及第二数据产生编码数据;以及将编码数据写入至多个实体程序化单元组中的第三实体程序化单元组中。
Description
技术领域
本发明涉及一种数据编码方法、存储器控制电路单元与存储器存储装置。
背景技术
数码相机、移动电话与MP3播放器在这几年来的成长十分迅速,使得消费者对存储媒体的需求也急速增加。由于可复写式非易失性存储器模块(例如,快闪存储器)具有数据非易失性、省电、体积小,以及无机械结构等特性,所以非常适合内建于上述所举例的各种可携式多媒体装置中。
一般来说,在将数据写入至可复写式非易失性存储器模块后,通常会对已写入的数据进行编码以产生编码数据。此编码数据可以用于之后在存取时对于数据的错误检测与更正。然而在可复写式非易失性存储器模块中,在对于不同的实体程序化单元写入数据时可能会因可复写式非易失性存储器模块物理上的特性造成各个实体程序化单元产生错误的机率不相同。而在产生编码数据的过程中,若一边码数据皆是使用错误率较高的实体程序化单元中的数据进行编码所产生时,此编码数据用于错误检测与更正的能力也相对地较低。
发明内容
因此,本发明提出一种数据编码方法、存储器控制电路单元与存储器存储装置可以使用位于不同字元线和/或不同子区块中的上实体程序化单元、中实体程序化单元以及下实体程序化单元来进行编码以产生编码数据,藉此让各个编码数据具有较一致的的错误检测与更正能力,并提高数据解码的成功率。
本发明提供一种数据编码方法,用于可复写式非易失性存储器模块,可复写式非易失性存储器模块具有多个存储单元,所述多个存储单元中的每一个存储单元具有第一有效比特以及第二有效比特,所述多个存储单元形成多个实体程序化单元组,所述多个实体程序化单元组之中的每一个实体程序化单元组具有多个实体程序化单元,所述数据编码方法包括:将第一数据写入至所述多个实体程序化单元组中的第一实体程序化单元组的第一实体程序化单元,其中所述多个存储单元中的多个第一存储单元形成所述第一实体程序化单元组,所述多个第一存储单元中的所述第一有效比特形成所述第一实体程序化单元并用以存储所述第一数据;将第二数据写入至多个实体程序化单元组中的第二实体程序化单元组的第二实体程序化单元,其中所述多个存储单元中的多个第二存储单元形成所述第二实体程序化单元组,所述多个第二存储单元中的所述第二有效比特形成所述第二实体程序化单元并用以存储所述第二数据;以及编码所述第一数据以及所述第二数据产生编码数据。
在本发明的一实施例中,所述数据编码方法还包括:将所述编码数据写入至所述多个实体程序化单元组中的第三实体程序化单元组中。
在本发明的一实施例中,所述多个存储单元中的每一个存储单元还具有一第三有效比特,所述数据编码方法还包括:将第三数据写入至所述多个实体程序化单元组中的第四实体程序化单元组的第三实体程序化单元,其中所述多个存储单元中的多个第三存储单元形成所述第四实体程序化单元组,所述多个第三存储单元中的所述第三有效比特形成所述第三实体程序化单元并用以存储所述第三数据。其中编码所述第一数据以及所述第二数据产生所述编码数据的步骤包括:编码所述第一数据、所述第二数据以及所述第三数据产生所述编码数据。
在本发明的一实施例中,其中所述可复写式非易失性存储器模块包括多个字元线,上述的多个存储单元被配置于所述多个字元线与多个比特线的交错处,其中第一存储单元位于所述多个字元线中的第一字元线上,第二存储单元位于所述多个字元线中的第二字元线上,第三存储单元位于所述多个字元线中的第三字元线上。
在本发明的一实施例中,其中第一存储单元位于第一字元线与多个比特线中的第一比特线组的交错处,第二存储单元位于第二字元线与多个比特线中的第二比特线组的交错处,第三存储单元位于第三字元线与多个比特线中的第三比特线组的交错处,第一比特线组、第三比特线组以及第二比特线组互不相同。
在本发明的一实施例中,其中编码数据用以更正在写入第一数据、第二数据以及第三数据时分别在第一实体程序化单元、第二实体程序化单元以及第三实体程序化单元所引起的错误
在本发明的一实施例中,第一实体程序化单元为上实体程序化单元,第二实体程序化单元为下实体程序化单元,第三实体程序化单元为中实体程序化单元。
在本发明的一实施例中,其中编码第一数据以及第二数据产生编码数据的步骤包括:使用里德-所罗门码(Reed-solomon codes,RS codes)算法或互斥或(XOR)算法来编码第一数据以及第二数据以产生编码数据。
本发明提供一种存储器控制电路单元,用于控制可复写式非易失性存储器模块,其中可复写式非易失性存储器模块具有多个存储单元,所述多个存储单元中的每一个存储单元具有一第一有效比特以及一第二有效比特,所述多个存储单元形成多个实体程序化单元组,所述多个实体程序化单元组之中的每一个实体程序化单元组具有多个实体程序化单元,所述存储器控制电路单元包括主机接口、存储器接口以及存储器管理电路。主机接口用以电性连接至主机系统。存储器接口用以电性连接至可复写式非易失性存储器模块。存储器管理电路电性连接至主机接口以及存储器接口。存储器管理电路用以执行下述运作:将第一数据写入至所述多个实体程序化单元组中的第一实体程序化单元组的第一实体程序化单元,其中所述多个存储单元中的多个第一存储单元形成所述第一实体程序化单元组,所述多个第一存储单元中的所述第一有效比特形成所述第一实体程序化单元并用以存储所述第一数据;将第二数据写入至多个实体程序化单元组中的第二实体程序化单元组的第二实体程序化单元,其中所述多个存储单元中的多个第二存储单元形成所述第二实体程序化单元组,所述多个第二存储单元中的所述第二有效比特形成所述第二实体程序化单元并用以存储所述第二数据;以及编码所述第一数据以及所述第二数据产生编码数据。
在本发明的一实施例中,其中存储器管理电路将所述编码数据写入至所述多个实体程序化单元组中的第三实体程序化单元组中。
在本发明的一实施例中,所述多个存储单元中的每一个存储单元还具有一第三有效比特,其中存储器管理电路将第三数据写入至所述多个实体程序化单元组中的第四实体程序化单元组的第三实体程序化单元,其中所述多个存储单元中的多个第三存储单元形成所述第四实体程序化单元组,所述多个第三存储单元中的所述第三有效比特形成所述第三实体程序化单元并用以存储所述第三数据。其中编码所述第一数据以及所述第二数据产生所述编码数据的运作中,存储器管理电路编码所述第一数据、所述第二数据以及所述第三数据产生所述编码数据。
在本发明的一实施例中,其中所述可复写式非易失性存储器模块包括多个字元线,上述的多个存储单元被配置于所述多个字元线与多个比特线的交错处,其中第一存储单元位于所述多个字元线中的第一字元线上,第二存储单元位于所述多个字元线中的第二字元线上,第三存储单元位于所述多个字元线中的第三字元线上的多个第三存储单元形成所述第四实体程序化单元组。
在本发明的一实施例中,其中第一存储单元位于第一字元线与多个比特线中的第一比特线组的交错处,第二存储单元位于第二字元线与多个比特线中的第二比特线组的交错处,第三存储单元位于第三字元线与多个比特线中的第三比特线组的交错处,第一比特线组、第三比特线组以及第二比特线组互不相同。
在本发明的一实施例中,其中编码数据用以更正在写入第一数据、第二数据以及第三数据时分别在第一实体程序化单元、第二实体程序化单元以及第三实体程序化单元所引起的错误。
在本发明的一实施例中,第一实体程序化单元为上实体程序化单元,第二实体程序化单元为下实体程序化单元,第三实体程序化单元为中实体程序化单元。
在本发明的一实施例中,其中在编码第一数据以及第二数据产生编码数据的运作中,存储器管理电路使用里德-所罗门码(Reed-solomon codes,RS codes)算法或互斥或(XOR)算法来编码第一数据以及第二数据以产生编码数据。
本发明提供一种存储器存储装置。存储器存储装置包括连接接口单元、可复写式非易失性存储器模块以及存储器控制电路单元。连接接口单元用以电性连接至主机系统。可复写式非易失性存储器模块具有多个存储单元,所述多个存储单元中的每一个存储单元具有第一有效比特以及第二有效比特,所述多个存储单元形成多个实体程序化单元组,所述多个实体程序化单元组之中的每一个实体程序化单元组具有多个实体程序化单元。存储器控制电路单元电性连接至连接接口单元与可复写式非易失性存储器模块。存储器控制电路单元用以执行下述运作:将第一数据写入至所述多个实体程序化单元组中的第一实体程序化单元组的第一实体程序化单元,其中所述多个存储单元中的多个第一存储单元形成所述第一实体程序化单元组,所述多个第一存储单元中的所述第一有效比特形成所述第一实体程序化单元并用以存储所述第一数据;将第二数据写入至多个实体程序化单元组中的第二实体程序化单元组的第二实体程序化单元,其中所述多个存储单元中的多个第二存储单元形成所述第二实体程序化单元组,所述多个第二存储单元中的所述第二有效比特形成所述第二实体程序化单元并用以存储所述第二数据;以及编码所述第一数据以及所述第二数据产生编码数据。
在本发明的一实施例中,存储器控制电路单元将所述编码数据写入至所述多个实体程序化单元组中的第三实体程序化单元组中。
在本发明的一实施例中,所述多个存储单元中的每一个存储单元还具有一第三有效比特,其中所述多个实体程序化单元组之中的每一个实体程序化单元组还具有中实体程序化单元,其中存储器控制电路单元将第三数据写入至所述多个实体程序化单元组中的第四实体程序化单元组的第三实体程序化单元,其中所述多个存储单元中的多个第三存储单元形成所述第四实体程序化单元组,所述多个第三存储单元中的所述第三有效比特形成所述第三实体程序化单元并用以存储所述第三数据。其中编码所述第一数据以及所述第二数据产生所述编码数据的运作中,存储器控制电路单元编码所述第一数据、所述第二数据以及所述第三数据产生所述编码数据
在本发明的一实施例中,其中所述可复写式非易失性存储器模块包括多个字元线,上述的多个存储单元被配置于所述多个字元线与多个比特线的交错处,其中第一存储单元位于所述多个字元线中的第一字元线上,第二存储单元位于所述多个字元线中的第二字元线上,第三存储单元位于所述多个字元线中的第三字元线上的多个第三存储单元形成所述第四实体程序化单元组。
在本发明的一实施例中,其中第一存储单元位于第一字元线与多个比特线中的第一比特线组的交错处,第二存储单元位于第二字元线与多个比特线中的第二比特线组的交错处,第三存储单元位于第三字元线与多个比特线中的第三比特线组的交错处,第一比特线组、第三比特线组以及第二比特线组互不相同。
在本发明的一实施例中,其中编码数据用以更正在写入第一数据、第二数据以及第三数据时分别在第一实体程序化单元、第二实体程序化单元以及第三实体程序化单元所引起的错误。
在本发明的一实施例中,第一实体程序化单元为上实体程序化单元,第二实体程序化单元为下实体程序化单元,第三实体程序化单元为中实体程序化单元。
在本发明的一实施例中,其中在编码第一数据以及第二数据产生编码数据的运作中,存储器控制电路单元使用里德-所罗门码(Reed-solomon codes,RS codes)算法或互斥或(XOR)算法来编码第一数据以及第二数据以产生编码数据。
本发明提出一种数据编码方法,用于可复写式非易失性存储器模块,所述可复写式非易失性存储器模块具有多个存储单元,所述多个存储单元中的每一个存储单元具有多个存储状态的其中之一,所述多个存储状态中的每一个存储状态具有一第一有效比特以及一第二有效比特,所述数据编码方法包括:对所述多个存储单元中的第一存储单元进行程序化以使得所述第一存储单元具有所述多个存储状态中的第一存储状态;对所述多个存储单元中的第二存储单元进行程序化以使得所述第二存储单元具有所述多个存储状态中的第二存储状态;以及根据所述第一存储状态中的第一有效比特以及所述第二存储状态的第二有效比特进行编码以产生编码数据。
在本发明的一实施例中,所述方法还包括:将所述编码数据写入至所述多个存储单元的至少其中之一中。
在本发明的一实施例中,其中所述多个存储状态中的每一个存储状态还具有一第三有效比特,所述数据编码方法还包括:对所述多个存储单元中的第三存储单元进行程序化以使得所述第三存储单元具有所述多个存储状态中的第三存储状态。其中根据所述第一存储状态中的第一有效比特以及所述第二存储状态中的第二有效比特进行编码以产生所述编码数据的步骤包括:根据所述第一存储状态中的第一有效比特、所述第二存储状态中的第二有效比特以及所述第三存储状态中的第三有效比特进行编码以产生所述编码数据。
在本发明的一实施例中,其中所述可复写式非易失性存储器模块包括多个字元线,所述多个存储单元被配置于所述多个字元线与多个比特线的交错处,其中所述第一存储单元位于所述多个字元线中的第一字元线上,所述第二存储单元位于所述多个字元线中的第二字元线上,所述第三存储单元位于所述多个字元线中的第三字元线上。
在本发明的一实施例中,其中所述第一存储单元位于所述第一字元线与所述多个比特线中的第一比特线组的交错处,所述第二存储单元位于所述第二字元线与所述多个比特线中的第二比特线组的交错处,所述第三存储单元位于所述第三字元线与所述多个比特线中的第三比特线组的交错处,所述第一比特线组、所述第二比特线组以及所述第三比特线组互不相同。
基于上述,本发明提出的数据编码方法、存储器控制电路单元与存储器存储装置可以使用位于不同字元线和/或不同子区块中的上实体程序化单元、中实体程序化单元以及下实体程序化单元来进行编码以产生编码数据,藉此让各个编码数据具有较一致的的错误检测与更正能力,并提高数据解码的成功率。
为让本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合附图作详细说明如下。
附图说明
图1是根据本发明的一范例实施例所示出的主机系统、存储器存储装置及输入/输出(I/O)装置的示意图。
图2是根据本发明的另一范例实施例所示出的主机系统、存储器存储装置及I/O装置的示意图。
图3是根据本发明的另一范例实施例所示出的主机系统与存储器存储装置的示意图。
图4是根据本发明的一范例实施例所示出的存储器存储装置的概要方块图。
图5A是根据本发明的一范例实施例所示出的存储单元阵列的示意图。
图5B是根据本发明的另一范例实施例所示出的存储单元阵列的示意图。
图6是根据一范例实施例所示出存储于存储单元阵列中的写入数据所对应的栅极电压的统计分配图。
图7是根据一范例实施例所示出的从存储单元中读取数据的示意图。
图8是根据另一范例实施例所示出的从存储单元中读取数据的示意图。
图9是根据本范例实施例所示出的实体抹除单元的范例示意图。
图10是根据本发明的一范例实施例所示出的存储器控制电路单元的概要方块图。
图11是根据本发明的一范例实施例所示出的多框架编码的示意图。
图12是根据本发明的一范例实施例所示出的实体程序化单元与存储单元阵列的关系的示意图。
图13是根据本发明的一范例实施例所示出的传统根据实体程序化单元产生编码数据的示意图。
图14是根据本发明的一范例实施例所示出的根据实体程序化单元产生编码数据的示意图。
图15是根据本发明的一范例实施例所示出的数据编码方法的流程图。
图16是根据本发明的另一范例实施例所示出的数据编码方法的流程图。
附图标号说明
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~RS11:编码数据
810(0)~810(E):实体程序化单元
SUB0_0、SUB0_1、SUB0_2、SUB0_3、SUB0_4、SUB0_5、SUB1_0、SUB1_1、SUB1_2、SUB1_3、SUB1_4、SUB1_5、SUB2_0、SUB2_1、SUB2_2、SUB2_3、SUB2_4、SUB2_5、SUB3_0、SUB3_1、SUB3_2、SUB3_3、SUB3_4、SUB3_5:实体程序化单元组
SUB0、SUB1、SUB2、SUB3:子区块
L0_0、L1_0、L2_0、L3_0、L4_0、L5_0、L0_1、L1_1、L2_1、L3_1、L4_1、L5_1、L0_2、L1_2、L2_2、L3_2、L4_2、L5_2、L0_3、L1_3、L2_3、L3_3、L4_3、L5_3:下实体程序化单元
M0_0、M1_0、M2_0、M3_0、M4_0、M5_0、M0_1、M1_1、M2_1、M3_1、M4_1、M5_1、M0_2、M1_2、M2_2、M3_2、M4_2、M5_2、M0_3、M1_3、M2_3、M3_3、M4_3、M5_3:中实体程序化单元
U0_0、U1_0、U2_0、U3_0、U4_0、U5_0、U0_1、U1_1、U2_1、U3_1、U4_1、U5_1、U0_2、U1_2、U2_2、U3_2、U4_2、U5_2、U0_3、U1_3、U2_3、U3_3、U4_3、U5_3:上实体程序化单元
步骤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)彼此独立(例如,彼此分离)并且沿第二方向堆迭。在本范例实施例中,字元线526(0)~526(5)中的每一个字元线可视为一个字元线平面。存储单元522被配置于比特线组524(0)~524(3)中的每一比特线524与字元线526(0)~526(5)之间的每一个交错处。然而,在另一范例实施例中,一个比特线组可以包括更多或更少的比特线,并且一个字元线也可以让更多或更少的比特线组通过。
可复写式非易失性存储器模块406中的每一个存储单元是基于电压(以下也称为临界电压)的改变来存储一或多个比特。当从存储器控制电路单元404接收到写入指令序列或读取指令序列时,可复写式非易失性存储器模块406中的控制电路(未示出)会控制施予至某一字元线与某一比特线(或比特线组)的电压来改变至少一存储单元的临界电压或检测所述存储单元的存储状态(state)。例如,每一个存储单元的控制栅极(control gate)与通道之间有一个电荷捕捉层。通过施予一写入电压(或程序化电压)至某一个存储单元的控制栅极,可以改变其电荷补捉层的电子量,进而改变此存储单元的临界电压。此改变临界电压的程序也称为“把数据写入至存储单元”或“程序化存储单元”。随着临界电压的改变,可复写式非易失性存储器模块406中的存储单元可具有多个存储状态。通过施予读取电压可以判断一个存储单元是属于哪一个存储状态,藉此取得此存储单元所存储的一或多个比特。
图6是根据一范例实施例所示出存储于存储单元阵列中的写入数据所对应的栅极电压的统计分配图。
请参照图6,以MLC NAND型快闪存储器为例,随着不同的临界电压,每一存储单元具有4种存储状态,并且此些存储状态分别地代表"11"、"10"、"00"与"01"等比特。换言之,每一个存储状态包括最低有效比特(Least Significant Bit,LSB)以及最高有效比特(Most Significant Bit,MSB)。在本范例实施例中,存储状态(即,"11"、"10"、"00"与"01")中从左侧算起的第1个比特为LSB,而从左侧算起的第2个比特为MSB。因此,在此范例实施例中,每一存储单元可存储2个比特。必须了解的是,图6所示出的临界电压及其存储状态的对应仅为一个范例。在本发明另一范例实施例中,临界电压与存储状态的对应也可是随着临界电压越大而以"11"、"10"、"01"与"00"排列,或是其他排列。此外,在另一范例实施例中,也可定义从左侧算起的第1个比特为MSB,而从左侧算起的第2个比特为LSB。
图7是根据一范例实施例所示出的从存储单元中读取数据的示意图,其是以MLCNAND型快闪存储器为例。
请参照图7,存储单元阵列中的存储单元的读取运作是通过施予读取电压于控制栅极,通过存储单元通道的导通状态,来识别存储单元存储的数据。验证比特(VA)是用以指示施予读取电压VA时存储单元通道是否为导通;验证比特(VC)是用以指示施予读取电压VC时,存储单元通道是否为导通;验证比特(VB)是用以指示施予读取电压VB时,存储单元通道是否为导通。在此假设验证比特是”1”时表示对应的存储单元通道导通,而验证比特是”0”时表示对应的存储单元通道没有导通。如图7所示,通过验证比特(VA)~(VC)可以判断存储单元是处于哪一个存储状态,进而取得所存储的比特。
图8是根据另一范例实施例所示出的从存储单元中读取数据的示意图。
请参照图8,以一TLC NAND型快闪存储器为例,每一个存储状态包括左侧算起的第1个比特的最低有效比特LSB、从左侧算起的第2个比特的中间有效比特(CenterSignificant Bit,CSB)以及从左侧算起的第3个比特的最高有效比特MSB。在此范例中,依照不同的临界电压,存储单元具有8种存储状态(即,"111"、"110"、"100"、"101"、"001"、"000"、"010"与"011")。通过施加读取电压VA~VG于控制栅极,可以识别存储单元所存储的比特。其中,值得说明的是,此8种存储状态的排列顺序,可依制造商的设计而订,非以本范例的排列方式为限。
可复写式非易失性存储器模块406的存储单元会构成多个实体程序化单元,并且此些实体程序化单元会构成多个实体抹除单元。具体而言,图5A中同一条字元线或图5B中同一个字元线上的存储单元会组成一或多个实体程序化单元。例如,若可复写式非易失性存储器模块406为MLC NAND型快闪存储器模块,则同一条字元线与多条比特线的交错处上的存储单元会构成2个实体程序化单元。或者,若可复写式非易失性存储器模块406为TLCNAND型快闪存储器模块,则同一条字元线与多条比特线的交错处上的存储单元会构成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)是属于上实体程序化单元。
图9是根据本范例实施例所示出的实体抹除单元的范例示意图。
请参照图9,在本范例实施例中,一个实体抹除单元是由多个实体程序化单元组所组成,其中每个实体程序化单元组包括由排列在同一条字元线上的数个存储单元的最低有效比特所组成的下实体程序化单元、此些存储单元的中间有效比特所组成的中实体程序化单元与此些存储单元的最高有效比特所组成的上实体程序化单元。例如,在实体抹除单元中,属于下实体程序化单元的第0个实体程序化单元、属于中实体程序化单元的第1个实体程序化单元和属于上实体程序化单元的第2个实体程序化单元会被视为一个实体程序化单元组。类似地,第3、4、5个实体程序化单元会被视为一个实体程序化单元组,并且以此类推其他实体程序化单元也是依据此方式被区分为多个实体程序化单元组。
图10是根据本发明的一范例实施例所示出的存储器控制电路单元的概要方块图。
请参照图10,存储器控制电路单元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可以编码欲保护的数据来产生相对应的错误更正码和/或错误检查码。为了说明方便,以下将经由编码产生的错误更正码和/或错误检查码统称为编码数据。
图11是根据本发明的一范例实施例所示出的多框架编码的示意图。
请参照图11,以编码实体程序化单元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)中读取的数据进行解码,以尝试更正所读取的数据中可能存在的错误。
此外,在图11的另一范例实施例中,用于产生编码数据820的数据也可能包括实体程序化单元810(0)~810(E)所存储的数据中的数据比特(data bits)所对应的冗余比特(redundancy bits)。以实体程序化单元810(0)所存储的数据为例,其中的冗余比特例如是对存储于实体程序化单元810(0)中的数据比特进行单框架编码而产生的。
图12是根据本发明的一范例实施例所示出的实体程序化单元与存储单元阵列的关系的示意图。
请参照图12,图12的存储单元阵列实质上相同于图5B的存储单元阵列。在本范例实施例中,假设一个字元线可以包括一个实体抹除单元,而此实体抹除单元中会包括多个实体程序化单元组,每一个实体程序化单元组会具有上实体程序化单元、中实体程序化单元以及下实体程序化单元。此外,配置在一个比特线组与一字元线的交错处上的存储单元会形成一个实体程序化单元组。
举例来说,字元线526(5)会包括实体程序化单元组SUB0_5、实体程序化单元组SUB1_5、实体程序化单元组SUB2_5以及实体程序化单元组SUB3_5。实体程序化单元组SUB0_5、实体程序化单元组SUB1_5、实体程序化单元组SUB2_5以及实体程序化单元组SUB3_5会组成一个实体抹除单元。实体程序化单元组SUB0_5、实体程序化单元组SUB1_5、实体程序化单元组SUB2_5以及实体程序化单元组SUB3_5中的每一个实体程序化单元组会具有上实体程序化单元、中实体程序化单元以及下实体程序化单元。特别是,配置在比特线组524(0)与字元线526(5)的交错处的存储单元会形成上述的实体程序化单元组SUB0_5。配置在比特线组524(1)与字元线526(5)的交错处的存储单元会形成上述的实体程序化单元组SUB1_5。配置在比特线组524(2)与字元线526(5)的交错处的存储单元会形成上述的实体程序化单元组SUB2_5。配置在比特线组524(3)与字元线526(5)的交错处的存储单元会形成上述的实体程序化单元组SUB3_5。
此外,字元线526(4)会包括实体程序化单元组SUB0_4、实体程序化单元组SUB1_4、实体程序化单元组SUB2_4以及实体程序化单元组SUB3_4。字元线526(3)会包括实体程序化单元组SUB0_3、实体程序化单元组SUB1_3、实体程序化单元组SUB2_3以及实体程序化单元组SUB3_3。字元线526(2)会包括实体程序化单元组SUB0_2、实体程序化单元组SUB1_2、实体程序化单元组SUB2_2以及实体程序化单元组SUB3_2。字元线526(1)会包括实体程序化单元组SUB0_1、实体程序化单元组SUB1_1、实体程序化单元组SUB2_1以及实体程序化单元组SUB3_1。字元线526(0)会包括实体程序化单元组SUB0_0、实体程序化单元组SUB1_0、实体程序化单元组SUB2_0以及实体程序化单元组SUB3_0。而上述各个字元线与其所包括的实体程序化单元组的关系皆类似于上述字元线526(5)、比特线组524(0)~524(3)、实体程序化单元组SUB0_5、实体程序化单元组SUB1_5、实体程序化单元组SUB2_5以及实体程序化单元组SUB3_5彼此之间的关系,故在此不再赘述。
特别是,对位于不同字元线中的存储单元来说,若不同字元线中的存储单元是连接至同一个比特线组,则此些连接至同一个比特线组的存储单元所构成的多个实体程序化单元组可以合称为一个子区块。举例来说,由于图12中实体程序化单元组SUB0_5、实体程序化单元组SUB0_4、实体程序化单元组SUB0_3、实体程序化单元组SUB0_2、实体程序化单元组SUB0_1以及实体程序化单元组SUB0_0中的存储单元是连接至比特线组524(0),故实体程序化单元组SUB0_5、实体程序化单元组SUB0_4、实体程序化单元组SUB0_3、实体程序化单元组SUB0_2、实体程序化单元组SUB0_1以及实体程序化单元组SUB0_0可以组成一个子区块SUB0(未示出)。
类似地,实体程序化单元组SUB1_5、实体程序化单元组SUB1_4、实体程序化单元组SUB1_3、实体程序化单元组SUB1_2、实体程序化单元组SUB1_1以及实体程序化单元组SUB1_0中的存储单元是连接至比特线组524(1),故实体程序化单元组SUB1_5、实体程序化单元组SUB1_4、实体程序化单元组SUB1_3、实体程序化单元组SUB1_2、实体程序化单元组SUB1_1以及实体程序化单元组SUB1_0可以组成一个子区块SUB1(未示出)。
类似地,实体程序化单元组SUB2_5、实体程序化单元组SUB2_4、实体程序化单元组SUB2_3、实体程序化单元组SUB2_2、实体程序化单元组SUB2_1以及实体程序化单元组SUB2_0中的存储单元是连接至比特线组524(2),故实体程序化单元组SUB2_5、实体程序化单元组SUB2_4、实体程序化单元组SUB2_3、实体程序化单元组SUB2_2、实体程序化单元组SUB2_1以及实体程序化单元组SUB2_0可以组成一个子区块SUB2(未示出)。
类似地,实体程序化单元组SUB3_5、实体程序化单元组SUB3_4、实体程序化单元组SUB3_3、实体程序化单元组SUB3_2、实体程序化单元组SUB3_1以及实体程序化单元组SUB3_0中的存储单元是连接至比特线组524(3),故实体程序化单元组SUB3_5、实体程序化单元组SUB3_4、实体程序化单元组SUB3_3、实体程序化单元组SUB3_2、实体程序化单元组SUB3_1以及实体程序化单元组SUB3_0可以组成一个子区块SUB3(未示出)。
传统来说,同一个子区块中的所有上实体程序化单元会被编码产生编码数据,同一个子区块中的所有中实体程序化单元会被编码来产生编码数据,且同一个子区块中的所有下实体程序化单元会被编码产生编码数据。
举例来说,图13是根据本发明的一范例实施例所示出的传统根据实体程序化单元产生编码数据的示意图。
请同时参照图12以及图13,假设图12中各个实体程序化单元组中的上实体程序化单元、中实体程序化单元以及下实体程序化单元皆已被写入数据。在传统的方法中,存储器管理电路702会对子区块SUB0中实体程序化单元组SUB0_0的下实体程序化单元L0_0、实体程序化单元组SUB0_1中的下实体程序化单元L1_0、实体程序化单元组SUB0_2的下实体程序化单元L2_0、实体程序化单元组SUB0_3的下实体程序化单元L3_0、实体程序化单元组SUB0_4的下实体程序化单元L4_0以及实体程序化单元组SUB0_5的下实体程序化单元L5_0进行编码以产生编码数据RS0。
类似地,存储器管理电路702会对子区块SUB0中实体程序化单元组SUB0_0的中实体程序化单元M0_0、实体程序化单元组SUB0_1的中实体程序化单元M1_0、实体程序化单元组SUB0_2的中实体程序化单元M2_0、实体程序化单元组SUB0_3的中实体程序化单元M3_0、实体程序化单元组SUB0_4的中实体程序化单元M4_0以及实体程序化单元组SUB0_5的中实体程序化单元M5_0进行编码以产生编码数据RS1。
类似地,存储器管理电路702会对子区块SUB0中实体程序化单元组SUB0_0的上实体程序化单元U0_0、实体程序化单元组SUB0_1的上实体程序化单元U1_0、实体程序化单元组SUB0_2的上实体程序化单元U2_0、实体程序化单元组SUB0_3的上实体程序化单元U3_0、实体程序化单元组SUB0_4的上实体程序化单元U4_0以及实体程序化单元组SUB0_5的上实体程序化单元U5_0进行编码以产生编码数据RS2。
类似于上述编码数据RS0、编码数据RS1以及编码数据RS2的产生方式,存储器管理电路702会对子区块SUB1中所有的下实体程序化单元进行编码产生编码数据RS3、对子区块SUB1中所有的中实体程序化单元进行编码产生编码数据RS4以及对子区块SUB1中所有的上实体程序化单元进行编码产生编码数据RS5。存储器管理电路702会对子区块SUB2中所有的下实体程序化单元进行编码产生编码数据RS6、对子区块SUB2中所有的中实体程序化单元进行编码产生编码数据RS7以及对子区块SUB2中所有的上实体程序化单元进行编码产生编码数据RS8。存储器管理电路702会对子区块SUB3中所有的下实体程序化单元进行编码产生编码数据RS9、对子区块SUB3中所有的中实体程序化单元进行编码产生编码数据RS10以及对子区块SUB3中所有的上实体程序化单元进行编码产生编码数据RS11。
然而须注意的是,由于可复写式非易失性存储器模块406在物理上的特性,不同的实体程序化单元在被程序化时(或在被写入数据时)所可能造成的错误率并不相同。一般来说,错误率由大到小依序为中实体程序化单元、上实体程序化单元以及下实体程序化单元。也就是说,若存储器管理电路702皆使用中实体程序化单元中的数据进行编码产生编码数据(例如,上述的编码数据RS1、编码数据RS4、编码数据RS7以及编码数据RS10),则此编码数据的错误检测与更正能力可能也会较低。
因此,本发明提出一种数据的编码方法,可以使用位于不同字元线和/或不同子区块中的上实体程序化单元、中实体程序化单元以及下实体程序化单元来进行编码以产生编码数据,藉此让各个编码数据具有较一致的错误检测与更正能力,并提高数据解码的成功率。
详细来说,图14是根据本发明的一范例实施例所示出的根据实体程序化单元产生编码数据的示意图。
请同时参照图12以及图14,假设图12中各个实体程序化单元组中的上实体程序化单元、中实体程序化单元以及下实体程序化单元皆已被写入数据。在本发明的数据编码方法中,存储器管理电路702会对子区块SUB0中实体程序化单元组SUB0_0的下实体程序化单元L0_0、子区块SUB0中实体程序化单元组SUB0_1中的下实体程序化单元L1_0、子区块SUB1中实体程序化单元组SUB1_2的中实体程序化单元M2_1、子区块SUB1中实体程序化单元组SUB1_3的中实体程序化单元M3_1、子区块SUB2中实体程序化单元组SUB2_4的上实体程序化单元U4_2以及子区块SUB2中实体程序化单元组SUB2_5的上实体程序化单元U5_2进行编码以产生编码数据RS0。
在此须说明的是,实体程序化单元组SUB2_5以及实体程序化单元组SUB2_4可以合称为“第一实体程序化单元组”,上实体程序化单元U5_2以及上实体程序化单元U4_2可以合称为“第一实体程序化单元”。实体程序化单元组SUB1_3以及实体程序化单元组SUB1_2可以合称为“第四实体程序化单元组”,中实体程序化单元M3_1以及中实体程序化单元M2_1可以合称为“第三实体程序化单元”。实体程序化单元组SUB0_1以及实体程序化单元组SUB0_0可以合称为“第二实体程序化单元组”,下实体程序化单元L1_0以及下实体程序化单元L0_0可以合称为“第二实体程序化单元”。也就是说,存储器管理电路702会对上述第一实体程序化单元中的数据(也称为,第一数据)、上述第三实体程序化单元中的数据(也称为,第三数据)以及上述第二实体程序化单元中的数据(也称为,第二数据)进行编码以产生编码数据RS0,并且会将此编码数据RS0存储至一实体程序化单元组(也称为,第三实体程序化单元组)中。而编码数据RS0是用以更正在写入第一数据、第二数据以及第三数据时分别在上述第一实体程序化单元、上述第二实体程序化单元以及上述第三实体程序化单元所引起的错误。
须注意的是,本发明并不用于限定编码数据RS0的产生时间点。在一实施例中,存储器管理电路702可以先编码第一数据、第二数据以及第三数据以产生编码数据RS0,之后再将第一数据、第二数据以及第三数据分别写入至第一实体程序化单元、第二实体程序化单元以及第三实体程序化单元中。然而在另一实施例中,存储器管理电路702也可以先将第一数据、第二数据以及第三数据分别写入至第一实体程序化单元、第二实体程序化单元以及第三实体程序化单元,之后再编码第一数据、第二数据以及第三数据以产生编码数据RS0。
还须注意的是,虽然在本范例实施例中,第一实体程序化单元是一实体程序化单元组中的“上实体程序化单元”,然而本发明并不限于此。在其他实施例中,第一实体程序化单元也可以是一实体程序化单元组中的“中实体程序化单元”或“下实体程序化单元”。类似地,在本范例实施例中,第三实体程序化单元是一实体程序化单元组中的“中实体程序化单元”,然而本发明并不限于此。在其他实施例中,第三实体程序化单元也可以是一实体程序化单元组中的“上实体程序化单元”或“下实体程序化单元”。类似地,在本范例实施例中,第二实体程序化单元是一实体程序化单元组中的“下实体程序化单元”,然而本发明并不限于此。在其他实施例中,第二实体程序化单元也可以是一实体程序化单元组中的“上实体程序化单元”或“中实体程序化单元”。
特别是,在本范例实施例中,上述的第一实体程序化单元组是由字元线526(4)~526(5)(也称为,第一字元线)上的实体程序化单元组SUB2-5与实体程序化单元组SUB2-4的存储单元(也称为,第一存储单元)所组成,而此些第一存储单元位于字元线526(4)~526(5)与比特线组524(2)(也称为,第一比特线组)的交错处。
在本范例实施例中,上述的第四实体程序化单元组是由字元线526(2)~526(3)(也称为,第三字元线)上的实体程序化单元组SUB1_2与实体程序化单元组SUB1_3的存储单元(也称为,第三存储单元)所组成,而此些第三存储单元位于字元线526(2)~526(3)与比特线组524(1)(也称为,第三比特线组)的交错处。
在本范例实施例中,上述的第二实体程序化单元组是由字元线526(0)~526(1)(也称为,第二字元线)上的实体程序化单元组SUB0_0与实体程序化单元组SUB0_1的存储单元(也称为,第二存储单元)所组成,而此些第二存储单元位于字元线526(0)~526(1)与比特线组524(0)(也称为,第二比特线组)的交错处。
须注意的是,上述产生编码数据的方式是以“实体程序化单元”的角度来做描述。然而,在本发明的一实施例中,产生编码数据的方式还可以是以“存储单元”的角度来做描述。具体来说,上述编码数据RS0的可以根据上述实体程序化单元组SUB2-5与实体程序化单元组SUB2-4的存储单元(即,第一存储单元)的存储状态(也称为,第一存储状态)的最高有效比特(也称为,第一有效比特)、实体程序化单元组SUB1_2与实体程序化单元组SUB1_3的存储单元(即,第三存储单元)的存储状态(也称为,第三存储状态)的中间有效比特(也称为,第三有效比特)以及实体程序化单元组SUB0_0与实体程序化单元组SUB0_1的存储单元(即,第二存储单元)的存储状态(也称为,第二存储状态)的最低有效比特(也称为,第二有效比特)来进行编码而产生。在此须说明的是,在本范例实施例中,上述第一存储单元中的第一有效比特会形成上实体程序化单元U5_2以及上实体程序化单元U4_2(即,第一实体程序化单元)并用以存储前述的第一数据。类似地,上述第三存储单元中的第三有效比特会形成中实体程序化单元M3_1以及中实体程序化单元M2_1(即,第三实体程序化单元)并用以存储前述的第三数据。类似地,上述第二存储单元中的第二有效比特会形成下实体程序化单元L1_0以及下实体程序化单元L0_0(即,第二实体程序化单元)并用以存储前述的第二数据。
须注意的是,上述的第一存储状态、第二存储状态以及第三存储状态可以分别是如图8所示出的多个存储状态的其中之一。其中,第一存储状态、第二存储状态以及第三存储状态彼此之间可以是相同的存储状态或者是不同的存储状态。本发明并不用于限定第一存储状态、第二存储状态以及第三存储状态实际的存储状态为何。此外,在本范例实施例中,虽然第一有效比特为“最高有效比特”,然而在其他实施例中,第一有效比特也可以是“中间有效比特”或“最低有效比特”。类似地,在本范例实施例中,虽然第三有效比特为“中间有效比特”,然而在其他实施例中,第三有效比特也可以是“最高有效比特”或“最低有效比特”。类似地,在本范例实施例中,虽然第二有效比特为“最低有效比特”,然而在其他实施例中,第二有效比特也可以是“最高有效比特”或“中间有效比特”。
类似地,再次以“实体程序化单元”的角度来描述产生编码数据的方式。存储器管理电路702会对子区块SUB0中实体程序化单元组SUB0_0的中实体程序化单元M0_0、子区块SUB0中实体程序化单元组SUB0_1的中实体程序化单元M1_0、子区块SUB1中实体程序化单元组SUB1_2的上实体程序化单元U2_1、子区块SUB1中实体程序化单元组SUB1_3的上实体程序化单元U3_1、子区块SUB3中实体程序化单元组SUB3_4的下实体程序化单元L4_3以及子区块SUB3中实体程序化单元组SUB3_5的下实体程序化单元U5_3进行编码以产生编码数据RS1。
类似地,存储器管理电路702会对子区块SUB0中实体程序化单元组SUB0_0的上实体程序化单元U0_0、子区块SUB0中实体程序化单元组SUB0_1的上实体程序化单元U1_0、子区块SUB2中实体程序化单元组SUB2_2的下实体程序化单元L2_2、子区块SUB2中实体程序化单元组SUB2_3的下实体程序化单元U3_2、子区块SUB3中实体程序化单元组SUB3_4的中实体程序化单元M4_3以及子区块SUB3中实体程序化单元组SUB3_5的中实体程序化单元M5_3进行编码以产生编码数据RS2。
在此须说明的是,编码数据RS3至编码数据RS11的编码方式可以是以类似于上述编码数据RS0至编码数据RS2使用位于不同字元线和/或不同子区块中的上实体程序化单元、中实体程序化单元以及下实体程序化单元来进行编码以产生编码数据,故在此并不再赘述。而所产生的编码数据可以被存储至一或多个实体程序化单元组中。
须注意的是,虽然上述是以TLC NAND型快闪存储器模块为范例来描述产生编码数据的方式,然而本发明不限于此。在一实施例中,本发明的数据编码方法也可以应用在MLCNAND型快闪存储器模块中。例如,在将数据编码方法应用于MLC NAND型快闪存储器模块的实施例中,假设一个字元线可以包括一个实体抹除单元,而此实体抹除单元中会包括多个实体程序化单元组,每一个实体程序化单元组会具有上实体程序化单元以及下实体程序化单元。此外,配置在一个比特线组与一字元线的交错处上的存储单元会形成一个实体程序化单元组。存储器管理电路702可以对一程序化单元组的上实体程序化单元的数据以及另一程序化单元组的下实体程序化单元的数据进行编码以产生编码数据,之后再将编码数据写入至其他的实体程序化单元组中。或者,以存储单元的角度来看,存储器管理电路702可以仅根据一存储单元的存储状态的最高有效比特以及另一存储单元的存储状态的最低有效比特进行编码以产生编码数据。而上述的最高有效比特可以对应至上实体程序化单元,而上述的最低有效比特可以对应至下实体程序化单元。
此外,在上述的实施例中,进行编码的上实体程序化单元、中实体程序化单元以及下实体程序化单元是分别由位于不同的字元线中的存储单元所构成。然而本发明不限于此,在一实施例中,进行编码的上实体程序化单元、中实体程序化单元以及下实体程序化单元也可以是由位于相同的字元线中的存储单元所构成。而以存储单元的角度来看,可以对同一字元线中的多个存储单元所分别具有的存储状态的最低有效比特、中间有效比特以及最高有效比特进行编码以产生编码数据。
图15是根据本发明的一范例实施例所示出的数据编码方法的流程图。特别是,图15是以“实体程序化单元”的角度进行编码的数据编码方法的流程图。
请参照图15,在步骤S1201中,存储器管理电路702将第一数据写入至多个实体程序化单元组中的第一实体程序化单元组的第一实体程序化单元。其中,可复写式非易失性存储器模块406中的多个第一存储单元形成上述的第一实体程序化单元组,所述多个第一存储单元中的第一有效比特形成上述的第一实体程序化单元并用以存储第一数据。在步骤S1203中,存储器管理电路702将第二数据写入至多个实体程序化单元组中的第二实体程序化单元组的第二实体程序化单元。其中,可复写式非易失性存储器模块406中的多个第二存储单元形成上述的第二实体程序化单元组,所述多个第二存储单元中的第二有效比特形成上述的第二实体程序化单元并用以存储第二数据。在步骤S1205中,存储器管理电路702将第三数据写入至多个实体程序化单元组中的第四实体程序化单元组的第三实体程序化单元。其中,可复写式非易失性存储器模块406中的多个第三存储单元形成上述的第四实体程序化单元组,所述多个第三存储单元中的第三有效比特形成上述的第三实体程序化单元并用以存储第三数据。在步骤S1207中,存储器管理电路702编码第一数据、第二数据以及第三数据产生一编码数据。最后在步骤S1209中,存储器管理电路702将编码数据写入至多个实体程序化单元组中的第三实体程序化单元组中。
图16是根据本发明的另一范例实施例所示出的数据编码方法的流程图。特别是,图16是以“存储单元”的角度进行编码的数据编码方法的流程图。
请参照图16,在步骤S1301中,存储器管理电路702对多个存储单元中的第一存储单元进行程序化以使得此第一存储单元具有多个存储状态中的第一存储状态。在步骤S1303中,存储器管理电路702对多个存储单元中的第二存储单元进行程序化以使得此第二存储单元具有上述多个存储状态中的第二存储状态。在步骤S1305中,存储器管理电路702对多个存储单元中的第三存储单元进行程序化以使得此第三存储单元具有上述多个存储状态中的第三存储状态。在步骤S1307中,存储器管理电路702根据第一存储状态中的第一有效比特、第二存储状态中的第二有效比特以及第三存储状态中的第三有效比特进行编码以产生编码数据。最后在步骤S1309中,存储器管理电路702将编码数据写入至多个存储单元的至少其中之一中。
综上所述,本发明提出的数据编码方法、存储器控制电路单元与存储器存储装置可以使用位于不同字元线和/或不同子区块中的上实体程序化单元、中实体程序化单元以及下实体程序化单元来进行编码以产生编码数据,或者使用不同字元线和/或不同子区块中的存储单元的最高有效比特、中间有效比特以及最低有效比特来进行编码以产生编码数据,藉此让各个编码数据具有较一致的的错误检测与更正能力,并提高数据解码的成功率。
虽然本发明已以实施例揭示如上,然其并非用以限定本发明,任何所属技术领域中技术人员,在不脱离本发明的精神和范围内,当可作些许的更动与润饰,故本发明的保护范围当视权利要求所界定者为准。
Claims (29)
1.一种数据编码方法,用于可复写式非易失性存储器模块,所述可复写式非易失性存储器模块具有多个存储单元以及多个字元线,所述多个存储单元中的每一个存储单元具有第一有效比特以及第二有效比特,所述多个存储单元形成多个实体程序化单元组,所述多个实体程序化单元组之中的每一个实体程序化单元组具有多个实体程序化单元,所述多个存储单元被配置于所述多个字元线与多个比特线的交错处,所述多个存储单元中的多个第一存储单元位于所述多个字元线中的第一字元线上,所述多个存储单元中的多个第二存储单元位于所述多个字元线中的第二字元线上,其中所述多个第一存储单元位于所述第一字元线与所述多个比特线中的第一比特线组的交错处,所述多个第二存储单元位于所述第二字元线与所述多个比特线中的第二比特线组的交错处,所述第一比特线组以及所述第二比特线组互不相同,所述数据编码方法包括:
将第一数据写入至所述多个实体程序化单元组中的第一实体程序化单元组的第一实体程序化单元,其中所述多个第一存储单元形成所述第一实体程序化单元组,所述多个第一存储单元中的所述第一有效比特形成所述第一实体程序化单元并用以存储所述第一数据;
将第二数据写入至所述多个实体程序化单元组中的第二实体程序化单元组的第二实体程序化单元,其中所述多个第二存储单元形成所述第二实体程序化单元组,所述多个第二存储单元中的所述第二有效比特形成所述第二实体程序化单元并用以存储所述第二数据;以及
编码所述第一数据以及所述第二数据产生编码数据。
2.根据权利要求1所述的数据编码方法,还包括:
将所述编码数据写入至所述多个实体程序化单元组中的第三实体程序化单元组中。
3.根据权利要求1所述的数据编码方法,所述多个存储单元中的每一个存储单元还具有第三有效比特,所述方法还包括:
将第三数据写入至所述多个实体程序化单元组中的第四实体程序化单元组的第三实体程序化单元,其中所述多个存储单元中的多个第三存储单元形成所述第四实体程序化单元组,所述多个第三存储单元中的所述第三有效比特形成所述第三实体程序化单元并用以存储所述第三数据;
其中编码所述第一数据以及所述第二数据产生所述编码数据的步骤包括:
编码所述第一数据、所述第二数据以及所述第三数据产生所述编码数据。
4.根据权利要求3所述的数据编码方法,其中
所述多个第三存储单元位于所述多个字元线中的第三字元线上。
5.根据权利要求4所述的数据编码方法,所述多个第三存储单元位于所述第三字元线与所述多个比特线中的第三比特线组的交错处,所述第一比特线组、所述第二比特线组以及所述第三比特线组互不相同。
6.根据权利要求3所述的数据编码方法,其中所述编码数据用以更正在写入所述第一数据、所述第二数据以及所述第三数据时分别在所述第一实体程序化单元、所述第二实体程序化单元以及所述第三实体程序化单元所引起的错误。
7.根据权利要求3所述的数据编码方法,其中所述第一实体程序化单元为上实体程序化单元,所述第二实体程序化单元为下实体程序化单元,所述第三实体程序化单元为中实体程序化单元。
8.根据权利要求1所述的数据编码方法,其中编码所述第一数据以及所述第二数据产生所述编码数据的步骤包括:
使用里德-所罗门码(Reed-solomon codes,RS codes)算法或互斥或(XOR)算法来编码所述第一数据以及所述第二数据以产生所述编码数据。
9.一种存储器控制电路单元,用于控制可复写式非易失性存储器模块,其中所述可复写式非易失性存储器模块具有多个存储单元以及多个字元线,所述多个存储单元中的每一个存储单元具有一第一有效比特以及第二有效比特,所述多个存储单元形成多个实体程序化单元组,所述多个实体程序化单元组之中的每一个实体程序化单元组具有多个实体程序化单元,所述多个存储单元被配置于所述多个字元线与多个比特线的交错处,所述多个存储单元中的多个第一存储单元位于所述多个字元线中的第一字元线上,所述多个存储单元中的多个第二存储单元位于所述多个字元线中的第二字元线上,其中所述多个第一存储单元位于所述第一字元线与所述多个比特线中的第一比特线组的交错处,所述多个第二存储单元位于所述第二字元线与所述多个比特线中的第二比特线组的交错处,所述第一比特线组以及所述第二比特线组互不相同,所述存储器控制电路单元包括:
主机接口,用以电性连接至主机系统;
存储器接口,用以电性连接至所述可复写式非易失性存储器模块;
存储器管理电路,电性连接至所述主机接口以及所述存储器接口;
其中所述存储器管理电路用以将第一数据写入至所述多个实体程序化单元组中的第一实体程序化单元组的第一实体程序化单元,其中所述多个第一存储单元形成所述第一实体程序化单元组,所述多个第一存储单元中的所述第一有效比特形成所述第一实体程序化单元并用以存储所述第一数据,
其中所述存储器管理电路更用以将第二数据写入至所述多个实体程序化单元组中的第二实体程序化单元组的第二实体程序化单元,其中所述多个第二存储单元形成所述第二实体程序化单元组,所述多个第二存储单元中的所述第二有效比特形成所述第二实体程序化单元并用以存储所述第二数据,
其中所述存储器管理电路更用以编码所述第一数据以及所述第二数据产生编码数据。
10.根据权利要求9所述的存储器控制电路单元,其中
所述存储器管理电路将所述编码数据写入至所述多个实体程序化单元组中的第三实体程序化单元组中。
11.根据权利要求9所述的存储器控制电路单元,所述多个存储单元中的每一个存储单元还具有第三有效比特,其中
所述存储器管理电路将第三数据写入至所述多个实体程序化单元组中的第四实体程序化单元组的第三实体程序化单元,其中所述多个存储单元中的多个第三存储单元形成所述第四实体程序化单元组,所述多个第三存储单元中的所述第三有效比特形成所述第三实体程序化单元并用以存储所述第三数据;
其中编码所述第一数据以及所述第二数据产生所述编码数据的运作中,
所述存储器管理电路编码所述第一数据、所述第二数据以及所述第三数据产生所述编码数据。
12.根据权利要求11所述的存储器控制电路单元,其中
所述多个第三存储单元位于所述多个字元线中的第三字元线上。
13.根据权利要求12所述的存储器控制电路单元,所述多个第三存储单元位于所述第三字元线与所述多个比特线中的第三比特线组的交错处,所述第一比特线组、所述第二比特线组以及所述第三比特线组互不相同。
14.根据权利要求11所述的存储器控制电路单元,其中所述编码数据用以更正在写入所述第一数据、所述第二数据以及所述第三数据时分别在所述第一实体程序化单元、所述第二实体程序化单元以及所述第三实体程序化单元所引起的错误。
15.根据权利要求11所述的存储器控制电路单元,其中所述第一实体程序化单元为上实体程序化单元,所述第二实体程序化单元为下实体程序化单元,所述第三实体程序化单元为中实体程序化单元。
16.根据权利要求9所述的存储器控制电路单元,其中在编码所述第一数据以及所述第二数据产生所述编码数据的运作中;
所述存储器管理电路使用里德-所罗门码(Reed-solomon codes,RS codes)算法或互斥或(XOR)算法来编码所述第一数据以及所述第二数据以产生所述编码数据。
17.一种存储器存储装置,包括:
连接接口单元,用以电性连接至主机系统;
可复写式非易失性存储器模块,具有多个存储单元以及多个字元线,所述多个存储单元中的每一个存储单元具有第一有效比特以及第二有效比特,所述多个存储单元形成多个实体程序化单元组,所述多个实体程序化单元组之中的每一个实体程序化单元组具有多个实体程序化单元,所述多个存储单元被配置于所述多个字元线与多个比特线的交错处,所述多个存储单元中的多个第一存储单元位于所述多个字元线中的第一字元线上,所述多个存储单元中的多个第二存储单元位于所述多个字元线中的第二字元线上,其中所述多个第一存储单元位于所述第一字元线与所述多个比特线中的第一比特线组的交错处,所述多个第二存储单元位于所述第二字元线与所述多个比特线中的第二比特线组的交错处,所述第一比特线组以及所述第二比特线组互不相同;以及
存储器控制电路单元,电性连接至所述连接接口单元与所述可复写式非易失性存储器模块;
其中所述存储器控制电路单元用以将第一数据写入至所述多个实体程序化单元组中的第一实体程序化单元组的第一实体程序化单元,其中所述多个第一存储单元形成所述第一实体程序化单元组,所述多个第一存储单元中的所述第一有效比特形成所述第一实体程序化单元并用以存储所述第一数据;
其中所述存储器控制电路单元更用以将第二数据写入至所述多个实体程序化单元组中的第二实体程序化单元组的第二实体程序化单元,其中所述多个第二存储单元形成所述第二实体程序化单元组,所述多个第二存储单元中的所述第二有效比特形成所述第二实体程序化单元并用以存储所述第二数据;
其中所述存储器控制电路单元更用以编码所述第一数据以及所述第二数据产生编码数据。
18.根据权利要求17所述的存储器存储装置,其中
所述存储器控制电路单元将所述编码数据写入至所述多个实体程序化单元组中的第三实体程序化单元组中。
19.根据权利要求17所述的存储器存储装置,所述多个存储单元中的每一个存储单元还具有第三有效比特,其中
所述存储器控制电路单元将第三数据写入至所述多个实体程序化单元组中的第四实体程序化单元组的第三实体程序化单元,其中所述多个存储单元中的多个第三存储单元形成所述第四实体程序化单元组,所述多个第三存储单元中的所述第三有效比特形成所述第三实体程序化单元并用以存储所述第三数据;
其中编码所述第一数据以及所述第二数据产生所述编码数据的运作中,
所述存储器控制电路单元编码所述第一数据、所述第二数据以及所述第三数据产生所述编码数据。
20.根据权利要求19所述的存储器存储装置,其中
所述多个第三存储单元位于所述多个字元线中的第三字元线上。
21.根据权利要求20所述的存储器存储装置,所述多个第三存储单元位于所述第三字元线与所述多个比特线中的第三比特线组的交错处,所述第一比特线组、所述第二比特线组以及所述第三比特线组互不相同。
22.根据权利要求19所述的存储器存储装置,其中所述编码数据用以更正在写入所述第一数据、所述第二数据以及所述第三数据时分别在所述第一实体程序化单元、所述第二实体程序化单元以及所述第三实体程序化单元所引起的错误。
23.根据权利要求19所述的存储器存储装置,其中所述第一实体程序化单元为上实体程序化单元,所述第二实体程序化单元为下实体程序化单元,所述第三实体程序化单元为中实体程序化单元。
24.根据权利要求17项所述的存储器存储装置,其中在编码所述第一数据以及所述第二数据产生所述编码数据的运作中,
所述存储器控制电路单元使用里德-所罗门码(Reed-solomon codes,RS codes)算法或互斥或(XOR)算法来编码所述第一数据以及所述第二数据以产生所述编码数据。
25.一种数据编码方法,用于可复写式非易失性存储器模块,所述可复写式非易失性存储器模块具有多个存储单元以及多个字元线,所述多个存储单元中的每一个存储单元具有多个存储状态的其中之一,所述多个存储状态中的每一个存储状态具有第一有效比特以及第二有效比特,所述多个存储单元被配置于所述多个字元线与多个比特线的交错处,所述多个存储单元中的多个第一存储单元位于所述多个字元线中的第一字元线上,所述多个存储单元中的多个第二存储单元位于所述多个字元线中的第二字元线上,其中所述多个第一存储单元位于所述第一字元线与所述多个比特线中的第一比特线组的交错处,所述多个第二存储单元位于所述第二字元线与所述多个比特线中的第二比特线组的交错处,所述第一比特线组以及所述第二比特线组互不相同,所述数据编码方法包括:
对所述第一存储单元进行程序化以使得所述第一存储单元具有所述多个存储状态中的第一存储状态;
对所述第二存储单元进行程序化以使得所述第二存储单元具有所述多个存储状态中的第二存储状态;以及
根据所述第一存储状态中的所述第一有效比特以及所述第二存储状态中的所述第二有效比特进行编码以产生编码数据。
26.根据权利要求25所述的数据编码方法,还包括:
将所述编码数据写入至所述多个存储单元的至少其中之一中。
27.根据权利要求25所述的数据编码方法,其中所述多个存储状态中的每一个存储状态还具有第三有效比特,所述方法还包括:
对所述多个存储单元中的第三存储单元进行程序化以使得所述第三存储单元具有所述多个存储状态中的第三存储状态;
其中根据所述第一存储状态中的所述第一有效比特以及所述第二存储状态中的所述第二有效比特进行编码以产生所述编码数据的步骤包括:
根据所述第一存储状态中的所述第一有效比特、所述第二存储状态中的所述第二有效比特以及所述第三存储状态中的所述第三有效比特进行编码以产生所述编码数据。
28.根据权利要求27所述的数据编码方法,其中
所述第三存储单元位于所述多个字元线中的第三字元线上。
29.根据权利要求28所述的数据编码方法,所述第三存储单元位于所述第三字元线与所述多个比特线中的第三比特线组的交错处,所述第一比特线组、所述第二比特线组以及所述第三比特线组互不相同。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710830622.0A CN109508252B (zh) | 2017-09-15 | 2017-09-15 | 数据编码方法、存储器控制电路单元与存储器存储装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710830622.0A CN109508252B (zh) | 2017-09-15 | 2017-09-15 | 数据编码方法、存储器控制电路单元与存储器存储装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109508252A CN109508252A (zh) | 2019-03-22 |
CN109508252B true CN109508252B (zh) | 2022-03-01 |
Family
ID=65744664
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710830622.0A Active CN109508252B (zh) | 2017-09-15 | 2017-09-15 | 数据编码方法、存储器控制电路单元与存储器存储装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109508252B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117631952A (zh) * | 2022-08-11 | 2024-03-01 | 深圳市奥拓电子股份有限公司 | 一种编码方法、装置和电子设备 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050174841A1 (en) * | 2004-02-05 | 2005-08-11 | Iota Technology, Inc. | Electronic memory with tri-level cell pair |
CN105005450B (zh) * | 2014-04-25 | 2018-11-02 | 群联电子股份有限公司 | 数据写入方法、存储器存储装置及存储器控制电路单元 |
CN105304142B (zh) * | 2014-06-20 | 2019-01-11 | 群联电子股份有限公司 | 解码方法、存储器存储装置及存储器控制电路单元 |
CN106445404B (zh) * | 2015-08-13 | 2019-04-23 | 群联电子股份有限公司 | 存储器编程方法、存储器控制电路单元与存储器存储装置 |
-
2017
- 2017-09-15 CN CN201710830622.0A patent/CN109508252B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN109508252A (zh) | 2019-03-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10424391B2 (en) | Decoding method, memory controlling circuit unit and memory storage device | |
CN111415692B (zh) | 解码方法、存储器控制电路单元以及存储器存储装置 | |
CN107146638B (zh) | 译码方法、存储器储存装置及存储器控制电路单元 | |
CN106843744B (zh) | 数据程序化方法与存储器储存装置 | |
CN109491828B (zh) | 解码方法、存储器存储装置及存储器控制电路单元 | |
CN111580741B (zh) | 数据写入方法、存储器控制电路单元与存储器存储装置 | |
CN109901784B (zh) | 数据存取方法、存储器控制电路单元以及存储器储存装置 | |
CN109559774B (zh) | 解码方法、存储器控制电路单元以及存储器存储装置 | |
CN109697134B (zh) | 解码方法、存储器存储装置及存储器控制电路单元 | |
CN109508252B (zh) | 数据编码方法、存储器控制电路单元与存储器存储装置 | |
CN112051963A (zh) | 数据写入方法、存储器控制电路单元以及存储器存储装置 | |
CN112799874B (zh) | 存储器控制方法、存储器存储装置及存储器控制电路单元 | |
CN109710450B (zh) | 数据编码方法、存储器控制电路单元与存储器存储装置 | |
CN110797069B (zh) | 电压调整方法、存储器控制电路单元以及存储器存储装置 | |
CN110875081B (zh) | 存储器测试方法与存储器测试系统 | |
CN110874282B (zh) | 数据存取方法、存储器控制电路单元与存储器存储装置 | |
CN108428464B (zh) | 解码方法、存储器储存装置及存储器控制电路单元 | |
CN108091364B (zh) | 数据写入方法、存储器控制电路单元与存储器存储装置 | |
CN111666174B (zh) | 数据写入方法、存储器控制电路单元以及存储器存储装置 | |
TWI763310B (zh) | 記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI657454B (zh) | 資料編碼方法、記憶體控制電路單元與記憶體儲存裝置 | |
CN111143253A (zh) | 数据储存方法、存储器控制电路单元以及存储器储存装置 | |
CN111324478B (zh) | 解码方法、存储器控制电路单元以及存储器存储装置 | |
TWI777087B (zh) | 資料管理方法、記憶體控制電路單元以及記憶體儲存裝置 | |
US11145372B2 (en) | Decoding method, memory controlling 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 |