CN112214348B - 存取闪存模块的方法及相关的闪存控制器与记忆装置 - Google Patents
存取闪存模块的方法及相关的闪存控制器与记忆装置 Download PDFInfo
- Publication number
- CN112214348B CN112214348B CN202011217569.5A CN202011217569A CN112214348B CN 112214348 B CN112214348 B CN 112214348B CN 202011217569 A CN202011217569 A CN 202011217569A CN 112214348 B CN112214348 B CN 112214348B
- Authority
- CN
- China
- Prior art keywords
- flash memory
- data
- superblock
- word line
- check codes
- 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
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/1072—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 multilevel memories
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/29—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
-
- 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
-
- 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
- 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/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/56—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
- G11C11/5621—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
- G11C11/5628—Programming or writing circuits; Data input circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/56—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
- G11C11/5621—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
- G11C11/5642—Sensing or reading circuits; Data output circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/04—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
- G11C16/0483—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/08—Address circuits; Decoders; Word-line control circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/38—Response verification devices
- G11C29/42—Response verification devices using error correcting codes [ECC] or parity check
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/44—Indication or identification of errors, e.g. for repair
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/52—Protection of memory contents; Detection of errors in memory contents
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1006—Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/11—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
- H03M13/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7202—Allocation control and policies
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7207—Details relating to flash memory management management of metadata or control data
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2211/00—Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C2211/56—Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
- G11C2211/564—Miscellaneous aspects
- G11C2211/5641—Multilevel memory having cells with different number of storage levels
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Computer Hardware Design (AREA)
- Probability & Statistics with Applications (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
Abstract
本发明公开了一种存取一闪存模块的方法,其中所述闪存模块是包括了多个闪存芯片的一立体闪存模块,每一个闪存芯片包括了多个区块,每一个区块包括了多个数据页;以及所述方法包括有:规划所述多个闪存芯片以使得所述多个闪存芯片具有至少一第一超级区块以及至少一第二超级区块;以及指派所述至少一第二超级区块以用来储存在一数据写入至所述至少一第一超级区块的过程中所编码产生的多组暂时性的校验码。本发明的有益之处于,除了可以对数据写入错误、字线断路以及字线短路所造成的数据读取错误进行更正之外,也可以大幅降低闪存控制器中缓冲存储器的容量需求,故可以大幅降低闪存控制器的成本以及闪存模块的使用效率。
Description
本申请是申请日为2017年04月26日、申请号为201710280253.2、发明创造名称为“存取闪存模块的方法及相关的闪存控制器与记忆装置”的中国发明申请的分案申请。
技术领域
本发明涉及闪存,尤其是涉及一种存取闪存模块的方法及相关的闪存控制器与记忆装置。
背景技术
为了让闪存能够有更高的密度以及更大的容量,闪存的制程也朝向立体化的发展,而产生了几种不同的立体NAND型闪存(3D NAND-type flash)。在立体NAND型闪存中,由于整体结构的不同以及浮闸形状位置的改变,因此在数据的写入以及读取上也较传统的平面NAND型闪存多出了些许的问题。举例来说,在某些立体NAND型闪存中,会将多条字线(word line)定义为一字线组,而所述字线组会共同具有部分的控制电路,进而导致当数据写入到所述字线组的一条字在线的浮闸晶体管发生失败时(写入失败),会连带导致所述字线组的其他字在线的浮闸晶体管的数据发生错误;此外,若是所述字线组中的一条字线发生断路或短路的状况时,也会连带影响到所述字线组的其他字在线的浮闸晶体管的数据发生错误,因此,如何就上述问题提出一种错误更正方式,以尽可能地维持数据的正确性,且又不会浪费存储器空间以节省成本,是一个重要的课题。
发明内容
因此,本发明的目的的一在于提出一种存取一闪存模块的方法及相关的闪存控制器与记忆装置,其使用类似容错式磁盘阵列(Redundant Array of Independent Disks,RAID)的错误更正方式,但是却不会大幅浪费闪存空间,且在闪存控制器的处理过程中也仅需要很少量的缓冲存储器空间,以解决现有技术中的问题。
在本发明的一个实施例中,公开了一种存取一闪存模块的方法,其中所述闪存模块是一立体闪存模块,所述闪存模块包括了多个闪存芯片,每一个闪存芯片包括了多个多层式储存区块以及多个单层式储存区块,每一个区块包括了多个数据页;每一个区块包括了分别位于多个不同平面的多条字线以及位线来控制的多个浮闸晶体管,且每一条字在线的浮闸晶体管构成了所述多个数据页中的至少一数据页;以及所述方法包括有:对一数据进行编码以产生至少一组校验码,其中所述数据是准备写入到所述多个闪存芯片的一第一超级区块中,其中所述第一超级区块包括了所述多个闪存芯片中每一个闪存芯片的一个多层式储存区块;将所述数据写入至所述第一超级区块;以及将所述至少一组校验码写入至一第二超级区块中,其中所述第二超级区块包括了所述多个闪存芯片中每一个闪存芯片的一个单层式储存区块。
在本发明的另一个实施例中,公开了一种闪存控制器,其中所述闪存控制器是用来存取一闪存模块,所述闪存模块是一立体闪存模块,所述闪存模块包括了多个闪存芯片,每一个闪存芯片包括了多个多层式储存区块以及多个单层式储存区块,每一个区块包括了多个数据页;每一个区块包括了分别位于多个不同平面的多条字线以及位线来控制的多个浮闸晶体管,且每一条字在线的浮闸晶体管构成了所述多个数据页中的至少一数据页;以及所述闪存控制器包括有:一存储器、一微处理器以及一编解码器。所述存储器用来储存一程序代码;所述微处理器用来执行所述程序代码以控制对所述闪存模块的存取;以及在本实施例的操作中,所述编解码器对一数据进行编码以产生至少一组校验码,其中所述数据是准备写入到所述多个闪存芯片的一第一超级区块中,其中所述第一超级区块包括了所述多个闪存芯片中每一个闪存芯片的一个多层式储存区块;以及所述微处理器将所述数据写入至所述第一超级区块,以及将所述至少一组校验码写入至一第二超级区块中,其中所述第二超级区块包括了所述多个闪存芯片中每一个闪存芯片的一个单层式储存区块。
在本发明的另一个实施例中,公开了一种记忆装置,其包括有一闪存模块以及一闪存控制器,其中所述闪存模块是一立体闪存模块,所述闪存模块包括了多个闪存芯片,每一个闪存芯片包括了多个多层式储存区块以及多个单层式储存区块,每一个区块包括了多个数据页;每一个区块包括了分别位于多个不同平面的多条字线以及位线来控制的多个浮闸晶体管,且每一条字在线的浮闸晶体管构成了所述多个数据页中的至少一数据页;以及当接收到来自一主机的写入指令以要求将一数据写入至所述闪存模块中时,所述闪存控制器对所述数据进行编码以产生至少一组校验码,并将所述数据写入到所述多个闪存芯片的一第一超级区块中,其中所述第一超级区块包括了所述多个闪存芯片中每一个闪存芯片的一个多层式储存区块;以及将所述至少一组校验码写入至一第二超级区块中,其中所述第二超级区块包括了所述多个闪存芯片中每一个闪存芯片的一个单层式储存区块。
在本发明的另一个实施例中,公开了一种存取一闪存模块的方法,其中所述闪存模块是一立体闪存模块,所述闪存模块包括了多个闪存芯片,每一个闪存芯片包括了多个区块,每一个区块包括了多个数据页;每一个区块包括了分别位于多个不同平面的多条字线以及位线来控制的多个浮闸晶体管,且每一条字在线的浮闸晶体管构成了所述多个数据页中的至少一数据页;以及所述方法包括有:规划所述多个闪存芯片以使得所述多个闪存芯片具有至少一第一超级区块(super block)以及至少一第二超级区块;以及指派所述至少一第二超级区块以用来储存在一数据写入至所述至少一第一超级区块的过程中所编码产生的多组暂时性的校验码。
在本发明的另一个实施例中,公开了一种闪存控制器,所述闪存控制器是用来存取一闪存模块,其中所述闪存模块是一立体闪存模块,所述闪存模块包括了多个闪存芯片,每一个闪存芯片包括了多个区块,每一个区块包括了多个数据页;每一个区块包括了分别位于多个不同平面的多条字线以及位线来控制的多个浮闸晶体管,且每一条字在线的浮闸晶体管构成了所述多个数据页中的至少一数据页;以及所述闪存控制器包括有一存储器、一微处理器以及一编解码器。所述存储器用来储存一程序代码;所述微处理器用来执行所述程序代码以控制对所述闪存模块的存取;以及在本实施例的操作中,所述微处理器规划所述多个闪存芯片以使得所述多个闪存芯片具有至少一第一超级区块以及至少一第二超级区块;以及指派所述至少一第二超级区块以用来储存在一数据写入至所述至少一第一超级区块的过程中所编码产生的多组暂时性的校验码。
在本发明的另一个实施例中,公开了一种记忆装置,其包括有一闪存模块以及一闪存控制器。所述闪存模块是一立体闪存模块,所述闪存模块包括了多个闪存芯片,每一个闪存芯片包括了多个区块,每一个区块包括了多个数据页;每一个区块包括了分别位于多个不同平面的多条字线以及位线来控制的多个浮闸晶体管,且每一条字在线的浮闸晶体管构成了所述多个数据页中的至少一数据页;以及所述闪存控制器规划所述多个闪存芯片以使得所述多个闪存芯片具有至少一第一超级区块以及至少一第二超级区块,以及指派所述至少一第二超级区块以用来储存在一数据写入至所述至少一第一超级区块的过程中所编码产生的多组暂时性的校验码。
附图说明
图1为依据本发明一实施例的一种记忆装置的示意图。
图2为一立体NAND型闪存的范例示意图。
图3为浮闸晶体管结构的概念示意图。
图4为一区块中多个字线组的示意图。
图5为闪存控制器将数据写入到闪存模块、以及超级区块的示意图。
图6为依据本发明一第一实施例的闪存控制器将数据写入到超级区块的示意图。
图7为根据第1~192组校验码S0~S191来产生8组最终校验码SF0~SF7的示意图。
图8为根据本发明一实施例的存取一闪存模块的方法的流程图。
其中,附图标记说明如下:
100 记忆装置
110 闪存控制器
112 微处理器
112C 程序代码
112M 只读存储器
114 控制逻辑
116 缓冲存储器
118 接口逻辑
120 闪存模块
132 第一编解码器
134 第二编解码器
202 浮闸晶体管
510、520 通道
512、514、516、518 闪存芯片
530、540 超级区块
800~814 步骤
B1~B3 位线
WL0~WL47 字线
WL_G0~WL_G47 字线组
具体实施方式
请参考图1,图1为依据本发明一实施例的一种记忆装置100的示意图,其中本实施例的记忆装置100尤其是可携式记忆装置(例如:符合SD/MMC、CF、MS、XD标准的记忆卡)。记忆装置100包括有一闪存(Flash Memory)模块120以及一闪存控制器110,且闪存控制器110用来存取闪存模块120。依据本实施例,闪存控制器110包括一微处理器112、一只读存储器(Read Only Memory,ROM)112M、一控制逻辑114、一缓冲存储器116、与一接口逻辑118。只读存储器是用来储存一程序代码112C,而微处理器112则用来执行程序代码112C以控制对闪存模块120的存取(Access)。
于典型状况下,闪存模块120包括了多个闪存芯片,而每一个闪存芯片包括多个区块(Block),而所述控制器(例如:通过微处理器112执行程序代码112C的闪存控制器110)对闪存模块120进行复制、抹除、合并数据等运作是以区块为单位来进行复制、抹除、合并数据。另外,一区块可记录特定数量的数据页(Page),其中所述控制器(例如:通过微处理器112执行程序代码112C的存储器控制器110)对闪存模块120进行写入数据的运作是以数据页为单位来进行写入。
实作上,通过微处理器112执行程序代码112C的闪存控制器110可利用其本身内部的组件来进行诸多控制运作,例如:利用控制逻辑114来控制闪存模块120的存取运作(尤其是对至少一区块或至少一数据页的存取运作)、利用缓冲存储器116进行所需的缓冲处理、以及利用接口逻辑118来与一主装置(Host Device)沟通。
另一方面,在本实施例中,控制逻辑114包括了一第一编解码器(codec)132以及一第二编解码器134,其中第一编解码器132是用来对写入到闪存模块120的一区块中的数据进行编码,以产生对应的错误更正码(error correction code),其中第一编解码器132所产生的错误更正码仅是根据写入到一数据页中一区段(sector)的内容所产生的,且所产生的错误更正码会连同所述区段的数据内容一并写入到所述数据页中。另外,第二编解码器134为一容错式磁盘阵列(RAID)编解码器,其是用来对写入至多个闪存芯片中的数据进行编码,以产生对应的校验码,其操作将于以下内容中详述。
在本实施例中,闪存模块120是一立体NAND型闪存(3D NAND-type flash)模块,请参考图2,其为一立体NAND型闪存的范例示意图,如图2所示,立体NAND型闪存包括了多个浮闸晶体管202,其通过多条位线(图示仅绘示了BL1~BL3)及多条字线(例如图示的WL0~WL2、WL4~WL6)来构成立体NAND型闪存架构。在图2中,以最上面的一个平面为例,字线WL0上的所有浮闸晶体管构成了至少一数据页,字线WL1上的所有浮闸晶体管构成了另至少一数据页,而字线WL2的所有浮闸晶体管构成了再另至少一数据页…以此类堆。此外,根据闪存写入方式的不同,字线WL0与数据页(逻辑数据页)之间的定义也会有所不同,详细来说,当使用单层式储存(Single-Level Cell,SLC)的方式写入时,字线WL0上的所有浮闸晶体管仅对应到单一逻辑数据页;当使用多层式储存(Multi-Level Cell,MLC)的方式写入时,字线WL0上的所有浮闸晶体管对应到两个、三个或是四个逻辑数据页,其中字线WL0上的所有浮闸晶体管对应到三个逻辑数据页的情形可以称为三层式储存(Triple-Level Cell,TLC)架构,而字线WL0上的所有浮闸晶体管对应到四个逻辑数据页的情形可以称为四层式储存(Quad-Level Cell,QLC)架构。由于本技术领域中具有通常知识者应能了解立体NAND型闪存的结构以及字线及数据页之间的关系,故相关的细节在此不予赘述。另外,在闪存控制器110的操作中,“数据页”为一最小写入单位,且“区块”为一最小抹除单位。
请参考图3,其为浮闸晶体管202结构的概念示意图,如图3所示,每一个浮闸晶体管的栅极及浮闸是围绕在源极与漏极周围(gate all around),以增强通道感应能力。
需注意的是,图2、3所示的仅为立体NAND型闪存与浮闸晶体管202的范例,而并非是作为本发明的限制,本技术领域中具有通常知识者应能了解立体NAND型闪存尚有其他种型式,例如部分的字线可彼此连接..等等,且浮闸晶体管202的设计也能有些许的改变。
如现有技术中所述,在某些立体NAND型闪存中,会将多条字线定义为一字线组,而所述字线组会共同具有部分的控制电路,进而导致当数据写入到所述字线组的一条字在线的浮闸晶体管发生失败时(写入失败),会连带导致所述字线组的其他字在线的浮闸晶体管的数据发生错误。在一实施例中,位于同一个平面上的字线会被设定为一字线组,参考图2,字线WL0~WL2会被归于第一字线组,而字线WL4~WL6会被归于第二字线组…以此类推。请参考图4,其为一区块中多个字线组的示意图,在图4中是假设所述区块包括了192条字在线的所有浮闸晶体管,且一个字线组包括了4条字线,因此,在图4中的区块是包括了48个字线组WL_G0~WL_G47;另外,在图式中所述区块为三层式储存(TLC)区块,也就是说,每一条字在线的浮闸晶体管可用来储存三个数据页的数据,如图4所示,以字线组WL_G0为例,其包括的字线WL0上的浮闸晶体管可用来储存低数据页P0L、中间数据页P0M及高数据页P0U,字线WL1上的浮闸晶体管可用来储存低数据页P1L、中间数据页P1M及高数据页P1U,字线WL2上的浮闸晶体管可用来储存低数据页P2L、中间数据页P2M及高数据页P2U,以及字线WL3上的浮闸晶体管可用来储存低数据页P3L、中间数据页P3M及高数据页P3U。当控制器中将数据写入到字线组WL_G0的数据页中时,是循序将数据写入到字线WL0、WL1、WL2、WL3中的浮闸晶体管,而假设字线WL0、WL1上的数据都成功写入,但是当数据写入字线WL2时发生写入错误,则会连带使得字线WL0、WL1上原本写入成功的数据也发生错误。
另外,在某些情况下,即使数据已经成功写入,但在后续的读取中仍然以可能会发生无法读取或是读取错误的情形,例如字线发生断路(open)的情形而造成无法读取数据的情形,此外,如现有所述,一个字线组中只要有一条字线发生断路,便会造成整个字线组的数据都会发生错误。另一方面,若是在不同字线组中的两个字线发生短路,例如图4中的字线WL3和字线WL4发生短路的现象,则会造成两个字线组WL_G0与WL_G1上的数据均无法成功读取。
如上所述,由于闪存在写入数据以及后续的读取中会碰到上述写入失败、字线断路以及字线短路的情形而造成整个字线组的数据均发生错误,因此,本发明在以下的实施例中提出了一种可以确实解决上述问题的存取闪存模块120的方法,且仅需要很少的资源(也就是说,很少的存储器空间)便可以完成。具体内容如下所述。
先参考图5,图5为闪存控制器110将数据写入到闪存模块120的示意图。如图5所示,闪存模块120包括了多个通道(在本实施例中,是以两个通道510、520为例),且每一个通道在闪存控制器110中有各自的串行传输器(sequencer)且均包括了多个闪存芯片,而在本实施例中通道510包括了闪存芯片512、514,且通道520包括了闪存芯片522、524。另外,每一个闪存芯片512、514、522、524中的一个区块会被组态为一个超级区块(super block),而闪存控制器110会将数据以超级区块为单位来进行写入。在本实施例中,超级区块530包括了每一个闪存芯片512、514、522、524中的一个三层式储存区块,且超级区块540包括了每一个闪存芯片512、514、522、524中的一个单层式储存区块。需注意的是,在本发明的其他实施例中,超级区块530所包括的也可以是每一个闪存芯片512、514、522、524中的一个四层式储存区块。
请同时参考图5、6,其中图6为依据本发明一第一实施例的闪存控制器110将数据写入到超级区块530的示意图,其中在以下的叙述中,每一笔数据是写入到闪存芯片512、514、522、524的一个数据页,也就是说,第1笔数据会被写入到每一个闪存芯片512、514、522、524中的第一个数据页P0,第2笔数据会被写入到每一个闪存芯片512、514、522、524中的第二个数据页P1,…,第N笔数据会被写入到每一个闪存芯片512、514、522、524中的第N个数据页P(N-1)。参考图6,当闪存控制器110需要将第1笔数据写入至超级区块530中时,首先,第一编解码器132分别对第1笔数据进行编码以产生对应的错误更正码,并将第1笔数据与第一编解码器132所产生的错误更正码一并写入到每一个闪存芯片512、514、522、524中的第一个数据页P0中,详细来说,第一编解码器132对第1笔数据中第一部分数据进行编码以产生错误更正码,并将第一部分数据与其错误更正码写入到闪存芯片512的第一个数据页P0;第一编解码器132对第1笔数据中第二部分数据进行编码以产生错误更正码,并将第二部分数据与其错误更正码写入到闪存芯片514的第一个数据页P0;第一编解码器132对第1笔数据中第三部分数据进行编码以产生错误更正码,并将第三部分数据与其错误更正码写入到闪存芯片522的第一个数据页P0;以及第一编解码器132对第1笔数据中第四部分数据(最后一部分数据)进行编码以产生错误更正码,并将第四部分数据与其错误更正码写入到闪存芯片524的第一个数据页P0。需注意的是,第一编解码器132要的操作可以是以一个区段(sector)为单位来进行,其中每一个数据页是由多个区段所组成。在第1笔数据以及第一编解码器132所产生的错误更正码写入至超级区块530之前,闪存控制器110中的第二编解码器134会针对第1笔数据以及其错误更正码进行编码以产生第1组校验码S0。在一实施例中,第二编解码器134可以采用里德-所罗门(Reed Solomon,RS)编码方式或是互斥或(exclusive-OR,XOR)运算来对写入到每一个闪存芯片512、514、522、524中的第一个数据页P0的数据进行编码,以产生第1组错误更正码S0。举例来说,但并非作为本发明的限制,第二编解码器134可以对闪存芯片512、514、522、524中的第一个数据页P0的第一个位彼此一起作互斥或运算来得到第1组校验码S0的第一个位,对闪存芯片512、514、522、524中的第一个数据页P0的第二个位彼此一起作互斥或运算来得到第1组校验码S0的第二个位…以此类推。
第二编解码器134所产生的第1组校验码S0是用来当闪存芯片512、514、522或524中的其中一个闪存芯片的第一个数据页P0发生数据错误时进行错误更正,举例来说,假设当闪存芯片512中的第一个数据页P0的数据发生无法利用本身的数据进行更正的错误时(也就是说,无法利用第一编解码器132所产生的错误更正码来进行更正时),第二编解码器134可以读取闪存芯片514、522、524中所有第一个数据页P0的数据,再加上第1组校验码S0,来进行错误更正以决定出闪存芯片512中的第一个数据页P0的数据。
此外,第二编解码器134所产生的第1组校验码S0会先暂时储存在闪存控制器110的缓冲存储器116中。
另外,在第1笔数据写入的过程中,闪存控制器110会对写入的数据进行读取检查的操作,以确定数据是否成功写入。当数据写入错误时,第二编解码器134可以直接使用储存在缓冲存储器116中的第1组校验码S0来对所读出的数据进行更正,而由于闪存模块120无法直接对已写入的数据做修正,更正后的数据(更正后的第1笔数据)可以等待后续适合的时间连同超级区块530中的其他数据一并写入到另外一个超级区块中。而在闪存控制器110判断第1笔数据已经成功写入到闪存芯片512、514、522、524中第一个数据页P0后,闪存控制器110便会将第1组校验码S0从缓冲存储器116中搬移到超级区块540中。
接着,当闪存控制器110需要将第2笔数据写入至超级区块530中时,首先,第一编解码器132分别对第2笔数据进行编码以产生对应的错误更正码,并将第2笔数据与第一编解码器132所产生的错误更正码一并写入到每一个闪存芯片512、514、522、524中的第二个数据页P1中。在第2笔数据以及第一编解码器132所产生的错误更正码写入至超级区块530之前,闪存控制器110中的第二编解码器134会针对第2笔数据以及其错误更正码进行编码以产生第2组校验码S1。在一实施例中,第二编解码器134可以采用里德-所罗门编码方式或是互斥或运算来对写入到每一个闪存芯片512、514、522、524中的第二个数据页P1的数据进行编码,以产生第2组错误更正码S1。
此外,第二编解码器134所产生的第2组校验码S1会先暂时储存在闪存控制器110的缓冲存储器116中。
类似地,在第2笔数据写入的过程中,闪存控制器110也会对写入的数据进行读取检查的操作,以确定数据是否成功写入。当数据写入错误时,第二编解码器134可以直接使用储存在缓冲存储器116中的第2组校验码S1来对所读出的数据进行更正,而更正后的数据(更正后的第2笔数据)可以等待后续适合的时间连同超级区块530中的其他数据一并写入到另外一个超级区块中。而在闪存控制器110判断第2笔数据已经成功写入到闪存芯片512、514、522、524中第二个数据页P1后,闪存控制器110便会将第2组校验码S1从缓冲存储器116中搬移到超级区块540中。
需注意的是,当第2笔数据写入的过程中也发生写入错误的情形时,则由于数据页P1、P0是属于同一个字线组WL_G0,因此,闪存芯片512、514、522、524中的数据页P0也有可能发生损坏。举例来说,假设闪存芯片514的数据页P1在数据写入的过程中发生错误,则现有已成功写入的闪存芯片514的数据页P0也会发生错误。此时,由于缓冲存储器116本身并没有储存第1组校验码S0,因此,闪存控制器110会自超级区块540中读取第1组校验码S0,来对自超级区块530所读取的第1笔数据来进行更正。
基于同样的操作,闪存控制器110继续将第3笔数据写入至闪存芯片512、514、522、524中的第三个数据页P2中,并产生相对应的第3组校验码S2;以及将第4笔数据写入至闪存芯片512、514、522、524中的第四个数据页P3中,并产生相对应的第4组校验码S3,以完成字线组WL_G0上的数据写入操作。
接着,类似以上步骤,闪存控制器110将接下来的第5~184笔数据写入至闪存芯片512、514、522、524中,且第二编解码器134对第5~184笔数据进行编码以分别产生第5~183组校验码S4~S183,并将第5~183组校验码S4~S183储存至超级区块540中。
针对第185笔数据,闪存控制器110只会将第185笔数据连同第一编解码器132所产生的错误更正码来写入至闪存芯片512、514、522中的数据页P184,而并不会将数据写入到闪存芯片524中的数据页P184。在第185笔数据写入至超级区块530之前,第二编解码器134对第185笔数据及其错误更正码来进行编码以产生第185组校验码S184。接着,闪存控制器110自超级区块540中读取每一个字线组WL_G0~WL_G45的第一组校验码S0、S8、S16、…、S176,且第二编解码器对校验码S0、S8、S16、…、S176以及校验码S184彼此一起作互斥或运算来得到第一组最终校验码SF0。接着,闪存控制器110将第185笔数据写入至闪存芯片512、514、522中的数据页P184,并将第一组最终校验码SF0写入到闪存芯片524中的数据页P184。在一实施例中,第二编解码器134对校验码S0、S8、S16、…、S184中的第一个位一起作互斥或运算来产生最终校验码SF0的第一个位,对校验码S0、S8、S16、…、S184中的第二个位一起作互斥或运算来产生最终校验码SF0的第二个位…以此类推,直到完成最终校验码SF0的最后一个位。另外,校验码S184可以储存至超级区块540中。
针对第186笔数据,闪存控制器110只会将第186笔数据连同第一编解码器132所产生的错误更正码来写入至闪存芯片512、514、522中的数据页P185,而并不会将数据写入到闪存芯片524中的数据页P185。在第186笔数据写入至超级区块530之前,第二编解码器134对第186笔数据及其错误更正码来进行编码以产生第186组校验码S185。接着,闪存控制器110自超级区块540中读取每一个字线组WL_G0~WL_G45的第二组校验码S1、S9、S17、…、S177,且第二编解码器对校验码S1、S9、S17、…、S177以及校验码S185彼此一起作互斥或运算来得到第二组最终校验码SF1。接着,闪存控制器110将第186笔数据写入至闪存芯片512、514、522中的数据页P185,并将第二组最终校验码SF1写入到闪存芯片524中的数据页P185。在一实施例中,第二编解码器134对校验码S1、S9、S17、…、S185中的第一个位一起作互斥或运算来产生最终校验码SF1的第一个位,对校验码S1、S9、S17、…、S185中的第二个位一起作互斥或运算来产生最终校验码SF1的第二个位…以此类推,直到完成最终校验码SF1的最后一个位。此外,校验码S185可以储存至超级区块540中。
基于类似的操作,针对第187~192笔数据,闪存控制器110将第187~192笔数据连同第一编解码器132所产生的错误更正码来写入至闪存芯片512、514、522中的数据页P186~P191;且第二编解码器134也根据上述类似的操作来产生第三至八组最终校验码SF2~SF7,并将第三至八组最终校验码SF2~SF7分别写入到闪存芯片524中的数据页P186~P191。
上述根据第1~192组校验码S0~S191来产生8组最终校验码SF0~SF7的概念可以参考图7所示的内容。
在本实施例中,超级区块540中所储存的校验码本身只是一个暂时性的校验码,也就是说,超级区块540所储存的多组校验码S0~S191只有在数据写入到超级区块530的过程中发生错误时才会使用到。因此,在最终校验码SF0~SF7写入至超级区块530之后,超级区块540所储存的多组校验码S0~S191便不需要再被需要使用,因此,在后续超级区块530中所储存的所述数据仍然为有效的情形下,闪存控制器110可以将超级区块540的内容抹除或是标记为无效。
需注意的是,由于上述的最终校验码SF0~SF7是由校验码S0~S191所产生的,因此,最终校验码SF0~SF7便带有现有每一组校验码S0~S191的信息。也就是说,在后续的读取操作中,每一组校验码S0~S191除了可以再次根据相对应的数据页内容来得到之外(例如读取闪存芯片512、514、522、524的数据页P1来得到校验码S1),若是发生错误时也可以通过相对应的最终校验码SF0~SF7来进行更正。举例来说,假设字线组WL_G0中有一条字线发生断路,例如闪存芯片514的数据页P0所对应到的字线断路,则闪存控制器110可以读取其他字线组中的数据来重新产生校验码S8、S16、...、S184以及最终校验码SF0,以重新产生校验码S0,之后再使用校验码S0以及自闪存芯片512、522、524的数据页P0所读取的内容来重新产生闪存芯片514的数据页P0的数据;闪存控制器110读取其他字线组中的数据来重新产生校验码S9、S17、...、S185以及最终校验码SF1,以重新产生校验码S1,之后再使用校验码S1以及自闪存芯片512、522、524的数据页P1所读取的内容来重新产生闪存芯片514的数据页P1的数据;以及根据上述类似操作来重新产生闪存芯片514的数据页P2、P3的数据。如上所述,通过上述操作,只要超级区块530没有出现多个数据线断路的情形,均可以顺利地将数据更正还原,而不会发生数据无法修复的情形。
此外,若是字线组WL_G0和WL_G1之间发生两条数据线短路,例如闪存芯片514的数据页P3、P4所对应到的字线短路的情形,也可以通过上一个段落所提及的方法来将字线组WL_G0和WL_G1内的数据更正还原,而不会发生数据无法修复的情形。
需注意的是,图6所绘示的P0~P191的每一者所代表的并非限定是三个数据页,而可能是2个或是4个数据页。
此外,在图6~7所示的实施例中,最终校验码SF0~SF7是通过读取现有所储存在超级区块540中的校验码所产生的,然而,本发明并不以此为限。在另一实施例中,储存至超级区块540中的校验码在产生的过程中也可以同时使用之前字线组的校验码来一同进行编码,举例来说,第二编解码器134可以对第9笔数据(写入至每一个闪存芯片512、514、522、524中的第9个数据页P8)以及第1组校验码S0一同进行编码来产生第9组校验码S8、对第17笔数据(写入至每一个闪存芯片512、514、522、524中的第17个数据页P16)以及第9组校验码S8一同进行编码来产生第17组校验码S16、…、对第185笔数据(写入至每一个闪存芯片512、514、522、524中的第185个数据页P184)以及第177组校验码S176一同进行编码来产生第185组校验码S184。如此一来,由于第185组校验码S184本身已经带有现有的校验码S0、S8、S16、…、S176的信息,故第185组校验码S184便可以直接作为第一组最终校验码SF0,并储存至超级区块530的对应到闪存芯片524的数据页P184。同理,最终校验码SF1~SF7也可通过上述方式来产生,并分别储存至超级区块530的对应到闪存芯片524的数据页P185~P191中。
另外,在图5中,超级区块530仅包括了每一个闪存芯片512、514、522、524中的一个三层式储存区块,然而,在其他实施例中,例如闪存模块120是被组态为两个区块平面的情形之下,超级区块530可以包括了每一个闪存芯片512、514、522、524中的两个三层式储存区块,而每一个闪存芯片512、514、522、524中的两个三层式储存区块是由不同的芯片启用(chip enable)信号所控制的。同理,超级区块540也可以包括了每一个闪存芯片512、514、522、524中的两个单层式储存区块。
请参考图8,其为根据本发明一实施例的存取一闪存模块的方法的流程图。参考以上所公开的内容,流程如下所述:
步骤800:流程开始。
步骤802:规划多个闪存芯片以使得多个闪存芯片具有至少一第一超级区块以及至少一第二超级区块。
步骤804:将一数据写入至所述至少一超级区块中。
步骤806:对所述数据进行编码以产生多组暂时性的校验码,并将所述多组暂时性的校验码储存至所述至少一第二超级区块。
步骤808:根据所述多组暂时性的校验码来产生最终校验码。
步骤810:将最终校验码写入至所述至少一第一超级区块。
步骤812:将所述至少一第二超级区块抹除或是标记为无效。
步骤814:流程结束。
简要归纳本发明,在本发明的存取闪存模块的方法的实施例中,第二编解码器会循序对写入至多层式储存的超级区块的多笔数据来进行编码,并将所产生的暂时性的校验码储存至单层式储存的超级区块,之后再读取单层式储存的超级区块中所储存的暂时性的校验码来产生数据量很低的最终校验码,并将最终校验码储存至多层式储存的超级区块中。通过上述存取方式,除了可以对数据写入错误、字线断路以及字线短路所造成的数据读取错误进行更正之外,也可以大幅降低闪存控制器中缓冲存储器的容量需求,且闪存模块中也不需要浪费太多个空间来储存校验码,故可以大幅降低闪存控制器的成本以及闪存模块的使用效率。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1. 一种存取一闪存模块的方法,其中所述闪存模块是一立体闪存模块,所述闪存模块包括了多个闪存芯片,每一个闪存芯片包括了多个区块,每一个区块包括了多个数据页;每一个区块包括了分别位于多个不同平面的多条字线以及位线来控制的多个浮闸晶体管,且每一条字线的浮闸晶体管构成了所述多个数据页中的至少一数据页;以及其特征在于,所述方法包括有:
规划所述多个闪存芯片以使得所述多个闪存芯片具有至少一第一超级区块以及至少一第二超级区块;每一个闪存芯片中的一个区块被组态为一个超级区块,闪存控制器将数据以超级区块为单位进行写入;以及
指派所述至少一第二超级区块以用来储存在一数据写入至所述至少一第一超级区块的过程中所编码产生的多组暂时性的校验码;
自所述至少一第二超级区块中读取所述多组暂时性的校验码;
对所述多组暂时性的校验码进行编码以产生一组最终校验码;以及
将所述组最终校验码写入至所述至少一第一超级区块中;
其中,通过对所述多组暂时性的校验码进行编码以产生一组最终校验码,包括:
通过使用与存储在所述第一超级区块的非相邻字线组中的与一个相同次序有关的多个特定字线的所述数据相对应的所述暂时性的校验码来生成每个最终奇偶校验码,并且每个字线组具有多个字线;所有的字线组被分类为奇数组的多个字线组以及偶数组的多个字线组;且所述非相邻字线组是所述奇数组的多个字线组或是所述偶数组的多个字线组。
2.如权利要求1所述的方法,其特征在于,所述至少一第二超级区块是专属用来储存任何数据写入至所述至少一第一超级区块的编码过程中所产生的暂时性的校验码。
3.如权利要求1所述的方法,其特征在于,所述方法还包括有:
在所述数据写入至所述至少一第一超级区块的过程中:
自所述第一超级区块中读取所述数据的已经写入至所述至少一第一超级区块的部分内容;以及
当读取所述数据的部分内容的过程中发生无法更正的错误时,自所述第二超级区块读取至少一部份的暂时性的校验码,并使用所读取的暂时性的校验码来对所读取的数据进行错误更正。
4.如权利要求1所述的方法,其特征在于,所述方法还包括有:
在将所述组最终校验码写入至所述第一超级区块之后,在所述至少一第一超级区块中所储存的所述数据仍然为有效的情形下,将所述至少一第二超级区块的内容抹除或是标记为无效。
5.一种闪存控制器,所述闪存控制器是用来存取一闪存模块,其中所述闪存模块是一立体闪存模块,所述闪存模块包括了多个闪存芯片,每一个闪存芯片包括了多个区块,每一个区块包括了多个数据页;每一个区块包括了分别位于多个不同平面的多条字线以及位线来控制的多个浮闸晶体管,且每一条字线的浮闸晶体管构成了所述多个数据页中的至少一数据页;以及其特征在于,所述闪存控制器包括有:
一存储器,用来储存一程序代码;
一微处理器,用来执行所述程序代码以控制对所述闪存模块的存取;以及
一编解码器;
其中所述微处理器规划所述多个闪存芯片以使得所述多个闪存芯片具有至少一第一超级区块以及至少一第二超级区块;每一个闪存芯片中的一个区块被组态为一个超级区块,闪存控制器将数据以超级区块为单位进行写入;以及指派所述至少一第二超级区块以用来储存在一数据写入至所述至少一第一超级区块的过程中所编码产生的多组暂时性的校验码;
其中所述微处理器自所述至少一第二超级区块中读取所述多组暂时性的校验码,所述编解码器对所述多组暂时性的校验码进行编码以产生一组最终校验码,以及所述微处理器将所述组最终校验码写入至所述至少一第一超级区块中;
其中,所述编解码器对所述多组暂时性的校验码进行编码以产生一组最终校验码,包括:
通过使用与存储在所述第一超级区块的非相邻字线组中的与一个相同次序有关的多个特定字线的所述数据相对应的所述暂时性的校验码来生成每个最终奇偶校验码,并且每个字线组具有多个字线;所有的字线组被分类为奇数组的多个字线组以及偶数组的多个字线组;且所述非相邻字线组是所述奇数组的多个字线组或是所述偶数组的多个字线组。
6.如权利要求5所述的闪存控制器,其特征在于,所述至少一第二超级区块是专属用来储存任意数据写入至所述至少一第一超级区块的编码过程中所产生的暂时性的校验码。
7.如权利要求5所述的闪存控制器,其特征在于,在所述数据写入至所述至少一第一超级区块的过程中:所述微处理器自所述第一超级区块中读取所述数据的已经写入至所述至少一第一超级区块的部分内容;以及当读取所述数据的部分内容的过程中发生无法更正的错误时,自所述第二超级区块读取至少一部份的暂时性的校验码,且所述编解码器使用所读取的暂时性的校验码来对所读取的数据进行错误更正。
8.如权利要求5所述的闪存控制器,其特征在于,在将所述组最终校验码写入至所述第一超级区块之后,在所述至少一第一超级区块中所储存的所述数据仍然为有效的情形下,所述微处理器将所述至少一第二超级区块的内容抹除或是标记为无效。
9. 一种记忆装置,其特征在于,包括有:
一闪存模块,其中所述闪存模块是一立体闪存模块,所述闪存模块包括了多个闪存芯片,每一个闪存芯片包括了多个区块,每一个区块包括了多个数据页;每一个区块包括了分别位于多个不同平面的多条字线以及位线来控制的多个浮闸晶体管,且每一条字线的浮闸晶体管构成了所述多个数据页中的至少一数据页;以及
一闪存控制器,用来存取所述闪存模块;
其中所述闪存控制器规划所述多个闪存芯片以使得所述多个闪存芯片具有至少一第一超级区块以及至少一第二超级区块,每一个闪存芯片中的一个区块被组态为一个超级区块,闪存控制器将数据以超级区块为单位进行写入;以及指派所述至少一第二超级区块以用来储存在一数据写入至所述至少一第一超级区块的过程中所编码产生的多组暂时性的校验码;
其中所述闪存控制器自所述至少一第二超级区块中读取所述多组暂时性的校验码,并对所述多组暂时性的校验码进行编码以产生一组最终校验码,且将所述组最终校验码写入至所述至少一第一超级区块中;
其中,对所述多组暂时性的校验码进行编码以产生一组最终校验码,包括:
通过使用与存储在所述第一超级区块的非相邻字线组中的与一个相同次序有关的多个特定字线的所述数据相对应的所述暂时性的校验码来生成每个最终奇偶校验码,并且每个字线组具有多个字线;所有的字线组被分类为奇数组的多个字线组以及偶数组的多个字线组;且所述非相邻字线组是所述奇数组的多个字线组或是所述偶数组的多个字线组。
10.如权利要求9所述的记忆装置,其特征在于,所述至少一第二超级区块是专属用来储存任意数据写入至所述至少一第一超级区块的编码过程中所产生的暂时性的校验码。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011217569.5A CN112214348B (zh) | 2016-04-27 | 2017-04-26 | 存取闪存模块的方法及相关的闪存控制器与记忆装置 |
Applications Claiming Priority (8)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201662328027P | 2016-04-27 | 2016-04-27 | |
US201662328025P | 2016-04-27 | 2016-04-27 | |
US62/328,025 | 2016-04-27 | ||
US62/328,027 | 2016-04-27 | ||
TW106110446 | 2017-03-29 | ||
TW106110446A TWI629690B (zh) | 2016-04-27 | 2017-03-29 | 存取快閃記憶體模組的方法及相關的快閃記憶體控制器與記憶裝置 |
CN201710280253.2A CN107423158B (zh) | 2016-04-27 | 2017-04-26 | 存取闪存模块的方法及相关的闪存控制器与记忆装置 |
CN202011217569.5A CN112214348B (zh) | 2016-04-27 | 2017-04-26 | 存取闪存模块的方法及相关的闪存控制器与记忆装置 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710280253.2A Division CN107423158B (zh) | 2016-04-27 | 2017-04-26 | 存取闪存模块的方法及相关的闪存控制器与记忆装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112214348A CN112214348A (zh) | 2021-01-12 |
CN112214348B true CN112214348B (zh) | 2023-08-29 |
Family
ID=87759530
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011217569.5A Active CN112214348B (zh) | 2016-04-27 | 2017-04-26 | 存取闪存模块的方法及相关的闪存控制器与记忆装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112214348B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103514101A (zh) * | 2012-06-18 | 2014-01-15 | 慧荣科技股份有限公司 | 存取闪存的方法以及相关的记忆装置 |
CN104205059A (zh) * | 2012-04-27 | 2014-12-10 | 株式会社日立制作所 | 存储系统和存储控制装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5166074B2 (ja) * | 2008-02-29 | 2013-03-21 | 株式会社東芝 | 半導体記憶装置、その制御方法、および誤り訂正システム |
TWI594254B (zh) * | 2012-07-17 | 2017-08-01 | 慧榮科技股份有限公司 | 讀取快閃記憶體中區塊之資料的方法及相關的記憶裝置 |
US8914670B2 (en) * | 2012-11-07 | 2014-12-16 | Apple Inc. | Redundancy schemes for non-volatile memory using parity zones having new and old parity blocks |
-
2017
- 2017-04-26 CN CN202011217569.5A patent/CN112214348B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104205059A (zh) * | 2012-04-27 | 2014-12-10 | 株式会社日立制作所 | 存储系统和存储控制装置 |
CN103514101A (zh) * | 2012-06-18 | 2014-01-15 | 慧荣科技股份有限公司 | 存取闪存的方法以及相关的记忆装置 |
Also Published As
Publication number | Publication date |
---|---|
CN112214348A (zh) | 2021-01-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107403640B (zh) | 存取闪存模块的方法及相关的闪存控制器与记忆装置 | |
CN110147295B (zh) | 存取闪存模块的方法、闪存控制器以及记忆装置 | |
CN107391296B (zh) | 存取闪存模块的方法及相关的闪存控制器与记忆装置 | |
CN107423158B (zh) | 存取闪存模块的方法及相关的闪存控制器与记忆装置 | |
TWI629690B (zh) | 存取快閃記憶體模組的方法及相關的快閃記憶體控制器與記憶裝置 | |
CN112463433B (zh) | 存取闪存模块的方法及相关的闪存控制器与记忆装置 | |
CN111951855B (zh) | 存取闪存模块的方法及相关的闪存控制器与记忆装置 | |
CN112214348B (zh) | 存取闪存模块的方法及相关的闪存控制器与记忆装置 | |
TWI575530B (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 |