CN107403640A - 存取闪存模块的方法及相关的闪存控制器与记忆装置 - Google Patents

存取闪存模块的方法及相关的闪存控制器与记忆装置 Download PDF

Info

Publication number
CN107403640A
CN107403640A CN201710279848.6A CN201710279848A CN107403640A CN 107403640 A CN107403640 A CN 107403640A CN 201710279848 A CN201710279848 A CN 201710279848A CN 107403640 A CN107403640 A CN 107403640A
Authority
CN
China
Prior art keywords
data
check code
block
super block
flash
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.)
Granted
Application number
CN201710279848.6A
Other languages
English (en)
Other versions
CN107403640B (zh
Inventor
杨宗杰
许鸿荣
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Silicon Motion Inc
Original Assignee
Silicon Motion Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Priority claimed from TW106110436A external-priority patent/TWI665679B/zh
Application filed by Silicon Motion Inc filed Critical Silicon Motion Inc
Priority to CN202010697066.6A priority Critical patent/CN111951855B/zh
Publication of CN107403640A publication Critical patent/CN107403640A/zh
Application granted granted Critical
Publication of CN107403640B publication Critical patent/CN107403640B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding 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/1072Adding 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital 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/5621Digital 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/5628Programming or writing circuits; Data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital 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/5621Digital 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/5628Programming or writing circuits; Data input circuits
    • G11C11/5635Erasing circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital 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/5621Digital 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/5642Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/08Address circuits; Decoders; Word-line control circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/14Circuits for erasing electrically, e.g. erase voltage switching circuits
    • G11C16/16Circuits for erasing electrically, e.g. erase voltage switching circuits for erasing blocks, e.g. arrays, words, groups
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/26Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2211/00Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C2211/56Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
    • G11C2211/564Miscellaneous aspects
    • G11C2211/5641Multilevel 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)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Read Only Memory (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本发明公开了一种存取一闪存模块的方法,其中所述闪存模块是包括了多个闪存芯片的一立体闪存模块,每一个闪存芯片包括了多个区块,每一个区块包括了多个数据页;以及所述方法包括有:规划所述多个闪存芯片以使得所述多个闪存芯片具有至少一第一超级区块以及至少一第二超级区块;以及指派所述至少一第二超级区块以用来储存在一数据写入至所述至少一第一超级区块的过程中所编码产生的多组暂时性的校验码。本发明的有益之处在于,除了可以对数据写入错误、字线断路以及字线短路所造成的数据读取错误进行更正之外,也可以大幅降低闪存控制器中缓冲存储器的容量需求,故可以大幅降低闪存控制器的成本以及闪存模块的使用效率。

Description

存取闪存模块的方法及相关的闪存控制器与记忆装置
技术领域
本发明涉及闪存,尤其是涉及一种存取闪存模块的方法及相关的闪存控制器与记忆装置。
背景技术
为了让闪存能够有更高的密度以及更大的容量,闪存的制程也朝向立体化的发展,而产生了几种不同的立体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 (24)

1.一种存取一闪存模块的方法,其中所述闪存模块是一立体闪存模块,所述闪存模块包括了多个闪存芯片,每一个闪存芯片包括了多个区块,所述多个区块包括了多个多层式储存区块以及多个单层式储存区块,每一个区块包括了多个数据页;每一个区块包括了分别位于多个不同平面的多条字线以及位线来控制的多个浮闸晶体管,且每一条字在线的浮闸晶体管构成了所述多个数据页中的至少一数据页;以及所述方法包括有:
对一数据进行编码以产生至少一组校验码,其中所述数据是准备写入到所述多个闪存芯片的一第一超级区块中,其中所述第一超级区块包括了所述多个闪存芯片中每一个闪存芯片的一个多层式储存区块;
将所述数据写入至所述第一超级区块;以及
将所述至少一组校验码写入至一第二超级区块中,其中所述第二超级区块包括了所述多个闪存芯片中每一个闪存芯片的一个单层式储存区块。
2.如权利要求1所述的方法,还包括有:
在所述数据写入至所述第一超级区块之前,先对所述数据进行编码以产生所述至少一组校验码,并将所述至少一组校验码储存至一闪存控制器的一缓冲存储器中;以及
当所述数据发生写入错误的情形时,直接使用储存在所述缓冲存储器中的所述至少一组校验码来对数据进行更正。
3.如权利要求1所述的方法,还包括有:
在所述数据写入至所述至少一第一超级区块的过程中:
自所述第一超级区块读取所述数据的已经写入至所述至少一第一超级区块的部分内容;
当读取所述数据的部分内容的过程中发生无法更正的错误时,自所述第二超级区块读取至少一部份的校验码,并使用所述至少一部份的校验码来对所读取的数据进行错误更正。
4.如权利要求1所述的方法,其中所述至少一组校验码为一暂时性的校验码,且所述方法还包括有:
自所述第二超级区块读取所述至少一组校验码,并根据所述至少一组校验码来产生一组最终校验码;
将所述组最终校验码写入至所述第一超级区块中。
5.如权利要求1所述的方法,其中对所述数据进行编码以产生所述至少一组校验码的步骤包括有:
依序对第1~N笔数据进行编码以产生第1~N组校验码;
以及将所述将所述数据写入至所述第一超级区块的步骤包括有:
将所述第1~N笔数据分别写入至所述第一超级区块的对应于所述多个闪存芯片的第1~N个数据页中;以及
将所述组校验码写入至所述第二超级区块的步骤包括有:
将所述第1~N组校验码写入至所述第二超级区块。
6.如权利要求1所述的方法,其中所述至少一组校验码为一暂时性的校验码,且所述方法还包括有:
自所述第二超级区块读取所述第1~N组校验码,并根据所述第1~N组校验码来产生多组最终校验码;
将所述多组最终校验码写入至所述第一超级区块中。
7.如权利要求6所述的方法,其中每一个区块中位于同一个平面上的多条字线构成一个字线组,以及将所述多组最终校验码写入至所述第一超级区块的步骤包括有:
将所述多组最终校验码写入至所述第一超级区块的对应于所述多个闪存芯片的最后两个字线组所包括的数据页中。
8.如权利要求7所述的方法,其中所述第P~N笔数据也是被写入至所述第一超级区块的对应于所述多个闪存芯片的最后两个字线组所包括的数据页中。
9.如权利要求1所述的方法,还包括有:
在将所述组最终校验码写入至所述第一超级区块之后,在所述第一超级区块中所储存的所述数据仍然为有效的情形下,将所述第二超级区块的内容抹除或是标记为无效。
10.如权利要求1所述的方法,其中所述多层式储存区块为三层式储存区块或是四层式储存区块。
11.一种闪存控制器,所述闪存控制器是用来存取一闪存模块,其中所述闪存模块是一立体闪存模块,所述闪存模块包括了多个闪存芯片,每一个闪存芯片包括了多个区块,所述多个区块包括了多个多层式储存区块以及多个单层式储存区块,每一个区块包括了多个数据页;每一个区块包括了分别位于多个不同平面的多条字线以及位线来控制的多个浮闸晶体管,且每一条字在线的浮闸晶体管构成了所述多个数据页中的至少一数据页;以及所述闪存控制器包括有:
一存储器,用来储存一程序代码;
一微处理器,用来执行所述程序代码以控制对所述闪存模块的存取;以及
一编解码器;
所述编解码器对一数据进行编码以产生至少一组校验码,其中所述数据是准备写入到所述多个闪存芯片的一第一超级区块中,其中所述第一超级区块包括了所述多个闪存芯片中每一个闪存芯片的一个多层式储存区块;以及所述微处理器将所述数据写入至所述第一超级区块,以及将所述至少一组校验码写入至一第二超级区块中,其中所述第二超级区块包括了所述多个闪存芯片中每一个闪存芯片的一个单层式储存区块。
12.如权利要求11所述的闪存控制器,其中在所述数据写入至所述第一超级区块之前,所述编解码器先对所述数据进行编码以产生所述至少一组校验码,并将所述组校验码储存至一闪存控制器的一缓冲存储器中;以及当所述数据发生写入错误的情形时,所述编解码器直接使用储存在所述缓冲存储器中的所述至少一组校验码来对数据进行更正。
13.如权利要求11所述的闪存控制器,其中在所述数据写入至所述至少一第一超级区块的过程中:所述微处理器自所述第一超级区块读取所述数据的已经写入至所述至少一第一超级区块的部分内容;以及当读取所述数据的部分内容的过程中发生无法更正的错误时,所述微处理器自所述第二超级区块读取至少一部份的校验码,且所述编解码器使用所述至少一部份的校验码来对所读取的数据进行错误更正。
14.如权利要求11所述的闪存控制器,其中所述至少一组校验码为一暂时性的校验码,且所述微处理器自所述第二超级区块读取所述至少一组校验码,且所述编解码器根据所述至少一组校验码来产生一组最终校验码,并将所述组最终校验码写入至所述第一超级区块中。
15.如权利要求11所述的闪存控制器,其中所述编解码器依序对第1~N笔数据进行编码以产生第1~N组校验码,并将所述第1~N笔数据分别写入至所述第一超级区块的对应于所述多个闪存芯片的第1~N个数据页中;以及所述微处理器将所述第1~N组校验码写入至所述第二超级区块。
16.如权利要求11所述的闪存控制器,其中所述至少一组校验码为一暂时性的校验码,且所述微处理器自所述第二超级区块读取所述第1~N组校验码,并根据所述第1~N组校验码来产生多组最终校验码,之后再将所述多组最终校验码写入至所述第一超级区块中。
17.如权利要求16所述的闪存控制器,其中每一个区块中位于同一个平面上的多条字线构成一个字线组,且所述微处理器将所述多组最终校验码写入至所述第一超级区块的对应于所述多个闪存芯片的最后两个字线组所包括的数据页中。
18.如权利要求17所述的闪存控制器,其中所述第P~N笔数据也是被写入至所述第一超级区块的对应于所述多个闪存芯片的最后两个字线组所包括的数据页中。
19.如权利要求11所述的闪存控制器,其中在将所述组最终校验码写入至所述第一超级区块之后,在所述第一超级区块中所储存的所述数据仍然为有效的情形下,所述微处理器将所述第二超级区块的内容抹除或是标记为无效。
20.如权利要求11所述的闪存控制器,其中所述多层式储存区块为三层式储存区块或是四层式储存区块。
21.一种记忆装置,其包括有:
一闪存模块,其中所述闪存模块是一立体闪存模块,所述闪存模块包括了多个闪存芯片,每一个闪存芯片包括了多个区块,所述多个区块包括了多个多层式储存区块以及多个单层式储存区块,每一个区块包括了多个数据页;每一个区块包括了分别位于多个不同平面的多条字线以及位线来控制的多个浮闸晶体管,且每一条字在线的浮闸晶体管构成了所述多个数据页中的至少一数据页;以及
一闪存控制器,用来存取所述闪存模块;
其中当接收到来自一主机的写入指令以要求将一数据写入至所述闪存模块中时,所述闪存控制器对所述数据进行编码以产生至少一组校验码,并将所述数据写入到所述多个闪存芯片的一第一超级区块中,其中所述第一超级区块包括了所述多个闪存芯片中每一个闪存芯片的一个多层式储存区块;以及将所述至少一组校验码写入至一第二超级区块中,其中所述第二超级区块包括了所述多个闪存芯片中每一个闪存芯片的一个单层式储存区块。
22.如权利要求21所述的记忆装置,其中在所述数据写入至所述第一超级区块之前,所述闪存控制器先对所述数据进行编码以产生所述至少一组校验码,并将所述组校验码储存至所述闪存控制器的一缓冲存储器中;以及当所述数据发生写入错误的情形时,所述闪存控制器直接使用储存在所述缓冲存储器中的所述至少一组校验码来对数据进行更正。
23.如权利要求21所述的记忆装置,其中在所述数据写入至所述至少一第一超级区块的过程中:所述闪存控制器自所述第一超级区块读取所述数据的已经写入至所述至少一第一超级区块的部分内容;以及当读取所述数据的部分内容的过程中发生无法更正的错误时,所述闪存控制器自所述第二超级区块读取至少一部份的校验码,并使用所述至少一部份的校验码来对所读取的数据进行错误更正。
24.如权利要求21所述的记忆装置,其中所述至少一组校验码为一暂时性的校验码,且所述闪存控制器自所述第二超级区块读取所述至少一组校验码,并根据所述至少一组校验码来产生一组最终校验码,且将所述组最终校验码写入至所述第一超级区块中。
CN201710279848.6A 2016-04-27 2017-04-26 存取闪存模块的方法及相关的闪存控制器与记忆装置 Active CN107403640B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010697066.6A CN111951855B (zh) 2016-04-27 2017-04-26 存取闪存模块的方法及相关的闪存控制器与记忆装置

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US201662328025P 2016-04-27 2016-04-27
US201662328027P 2016-04-27 2016-04-27
US62/328,025 2016-04-27
US62/328,027 2016-04-27
TW106110436A TWI665679B (zh) 2016-04-27 2017-03-29 存取快閃記憶體模組的方法及相關的快閃記憶體控制器與記憶裝置
TW106110436 2017-03-29

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN202010697066.6A Division CN111951855B (zh) 2016-04-27 2017-04-26 存取闪存模块的方法及相关的闪存控制器与记忆装置

Publications (2)

Publication Number Publication Date
CN107403640A true CN107403640A (zh) 2017-11-28
CN107403640B CN107403640B (zh) 2020-08-18

Family

ID=60158379

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710279848.6A Active CN107403640B (zh) 2016-04-27 2017-04-26 存取闪存模块的方法及相关的闪存控制器与记忆装置

Country Status (2)

Country Link
US (2) US10289487B2 (zh)
CN (1) CN107403640B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109032532A (zh) * 2018-08-28 2018-12-18 深圳忆联信息系统有限公司 闪存存储管理方法及闪存装置
CN111049529A (zh) * 2018-10-12 2020-04-21 慧荣科技股份有限公司 编码器及相关的编码方法与闪存
CN111488118A (zh) * 2019-01-29 2020-08-04 慧荣科技股份有限公司 管理闪存模块的方法及相关的闪存控制器与电子装置
CN111651371A (zh) * 2019-03-04 2020-09-11 慧荣科技股份有限公司 非对称型平面管理方法以及数据存储装置及其控制器
CN112017725A (zh) * 2019-05-28 2020-12-01 慧荣科技股份有限公司 超前处理的数据保护的非挥发性存储器存取方法和设备

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102469174B1 (ko) * 2018-01-11 2022-11-23 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
US11635894B2 (en) 2018-03-16 2023-04-25 Micron Technology, Inc. Clustered parity for NAND data placement schema
CN118444854A (zh) 2018-03-16 2024-08-06 美光科技公司 Nand数据放置模式
CN109582227B (zh) * 2018-11-15 2022-01-21 深圳忆联信息系统有限公司 固态硬盘写入方法、装置、计算机设备和存储介质
CN111124290A (zh) * 2019-12-06 2020-05-08 合肥沛睿微电子股份有限公司 应用于闪存存储装置的冗余方法及闪存存储装置
US11442808B2 (en) * 2020-03-12 2022-09-13 Kioxia Corporation Memory system
TWI722938B (zh) * 2020-07-06 2021-03-21 慧榮科技股份有限公司 記憶裝置、快閃記憶體控制器及其存取方法
US11321176B2 (en) * 2020-08-27 2022-05-03 Micron Technology, Inc. Reduced parity data management
CN113966499B (zh) * 2021-09-08 2023-10-27 长江存储科技有限责任公司 用于存储器的数据保护方法及其存储装置
US11966607B2 (en) 2021-09-29 2024-04-23 Silicon Motion, Inc. Method and non-transitory computer-readable storage medium and apparatus for accessing to encoding-history information
US12061819B2 (en) * 2021-12-06 2024-08-13 Micron Technology, Inc. Managing single-level and multi-level programming operations

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1567256A (zh) * 2003-06-20 2005-01-19 深圳市朗科科技有限公司 闪存介质中数据保护方法
CN102236585A (zh) * 2010-04-20 2011-11-09 慧荣科技股份有限公司 提升错误更正能力的方法以及相关的记忆装置及其控制器
CN102623055A (zh) * 2007-03-02 2012-08-01 株式会社东芝 非易失性半导体存储装置、系统及其中的不良列的管理方法
CN103093818A (zh) * 2011-11-04 2013-05-08 三星电子株式会社 存储系统及其操作方法
CN103325417A (zh) * 2012-03-23 2013-09-25 三星电子株式会社 非易失性存储器件、非易失性存储系统、及其编程方法
US20140129874A1 (en) * 2012-11-07 2014-05-08 Apple Inc. Redundancy schemes for non-volatile memory using parity zones having new and old parity blocks
US20140380129A1 (en) * 2013-06-24 2014-12-25 Samsung Electronics Co., Ltd. Memory system and method of reading data thereof
CN105009215A (zh) * 2013-02-28 2015-10-28 美光科技公司 三维存储器中的子块停用
CN105513638A (zh) * 2014-10-14 2016-04-20 慧荣科技股份有限公司 数据储存装置及其数据存取方法

Family Cites Families (77)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8341332B2 (en) 2003-12-02 2012-12-25 Super Talent Electronics, Inc. Multi-level controller with smart storage transfer manager for interleaving multiple single-chip flash memory devices
US6906961B2 (en) 2003-06-24 2005-06-14 Micron Technology, Inc. Erase block data splitting
US6903972B2 (en) 2003-07-30 2005-06-07 M-Systems Flash Disk Pioneers Ltd. Different methods applied for archiving data according to their desired lifetime
ITRM20040418A1 (it) 2004-08-25 2004-11-25 Micron Technology Inc Modo di lettura a compressione di dati a piu' livelli per il collaudo di memorie.
JP4504138B2 (ja) 2004-09-03 2010-07-14 株式会社東芝 記憶システム及びそのデータコピー方法
US7710777B1 (en) 2006-12-20 2010-05-04 Marvell International Ltd. Semi-volatile NAND flash memory
JP4498370B2 (ja) 2007-02-14 2010-07-07 株式会社東芝 データ書き込み方法
JP2008257773A (ja) 2007-04-02 2008-10-23 Toshiba Corp 不揮発性半導体記憶装置、不揮発性半導体記憶装置の制御方法、不揮発性半導体記憶システム、及びメモリカード
US8024637B2 (en) 2007-04-02 2011-09-20 Broadcom Corporation Super block error correction code (ECC) adaptable to communication systems including hard disk drives (HDDs) and other memory storage devices
CN101281492B (zh) 2007-04-04 2011-02-02 扬智科技股份有限公司 恢复闪存的对照表的方法
JP5166074B2 (ja) 2008-02-29 2013-03-21 株式会社東芝 半導体記憶装置、その制御方法、および誤り訂正システム
KR101398212B1 (ko) 2008-03-18 2014-05-26 삼성전자주식회사 메모리 장치 및 인코딩/디코딩 방법
CN101593156B (zh) 2008-05-28 2011-09-21 群联电子股份有限公司 多种存储器的管理方法、系统及控制器
TWI364661B (en) 2008-09-25 2012-05-21 Silicon Motion Inc Access methods for a flash memory and memory devices
US8327066B2 (en) 2008-09-30 2012-12-04 Samsung Electronics Co., Ltd. Method of managing a solid state drive, associated systems and implementations
CN101727976B (zh) 2008-10-15 2012-09-19 晶天电子(深圳)有限公司 一种多层闪存装置、固态硬盘和分割非易失性存储器系统
KR20100111990A (ko) 2009-04-08 2010-10-18 삼성전자주식회사 플래시 메모리 장치 및 그것의 데이터 랜덤화 방법
US20100332922A1 (en) 2009-06-30 2010-12-30 Mediatek Inc. Method for managing device and solid state disk drive utilizing the same
JP5349256B2 (ja) 2009-11-06 2013-11-20 株式会社東芝 メモリシステム
KR20110073932A (ko) 2009-12-24 2011-06-30 주식회사 하이닉스반도체 Ecc 회로를 포함하는 반도체 스토리지 시스템 및 그 제어 방법
US8726126B2 (en) 2010-03-23 2014-05-13 Apple Inc. Non-regular parity distribution detection via metadata tag
KR101650130B1 (ko) 2010-05-14 2016-08-24 삼성전자주식회사 불휘발성 메모리 장치를 포함하는 저장 장치 및 그것의 카피-백 방법
US8892981B2 (en) 2010-09-30 2014-11-18 Apple Inc. Data recovery using outer codewords stored in volatile memory
KR101214285B1 (ko) 2010-12-30 2012-12-20 에스케이하이닉스 주식회사 메모리 시스템 및 이의 동작 방법
KR20120096212A (ko) 2011-02-22 2012-08-30 삼성전자주식회사 비휘발성 메모리 장치, 메모리 컨트롤러, 및 이들의 동작 방법
KR101826137B1 (ko) 2011-03-24 2018-03-22 삼성전자주식회사 메모리 컨트롤러, 이를 포함하는 장치들, 및 이의 동작 방법
KR101893145B1 (ko) 2011-12-06 2018-10-05 삼성전자주식회사 메모리 시스템들 및 그것들의 블록 복사 방법들
US8856611B2 (en) 2012-08-04 2014-10-07 Lsi Corporation Soft-decision compensation for flash channel variation
KR101996004B1 (ko) 2012-05-29 2019-07-03 삼성전자주식회사 비휘발성 메모리 장치의 프로그램 방법 및 그것의 메모리 시스템
US9110824B2 (en) 2012-06-08 2015-08-18 Silicon Motion Inc. Method, controller, and memory device for correcting data bit(s) of at least one cell of flash memory
US8924820B2 (en) 2012-07-27 2014-12-30 Kabushiki Kaisha Toshiba Memory controller, semiconductor memory system, and memory control method
US20140063983A1 (en) 2012-09-06 2014-03-06 International Business Machines Corporation Error Detection And Correction In A Memory System
KR102025263B1 (ko) 2012-10-05 2019-09-25 삼성전자주식회사 메모리 시스템 및 그것의 읽기 교정 방법
US8958244B2 (en) 2012-10-16 2015-02-17 Conversant Intellectual Property Management Inc. Split block decoder for a nonvolatile memory device
CN103839594A (zh) 2012-11-27 2014-06-04 建兴电子科技股份有限公司 固态储存装置及其联合编解码方法
US9671962B2 (en) * 2012-11-30 2017-06-06 Sandisk Technologies Llc Storage control system with data management mechanism of parity and method of operation thereof
US9734911B2 (en) 2012-12-31 2017-08-15 Sandisk Technologies Llc Method and system for asynchronous die operations in a non-volatile memory
US9286985B2 (en) 2013-02-12 2016-03-15 Kabushiki Kaisha Toshiba Semiconductor device with power mode transitioning operation
KR102143517B1 (ko) 2013-02-26 2020-08-12 삼성전자 주식회사 에러 정정회로를 포함하는 반도체 메모리 장치 및 반도체 메모리 장치의 동작방법
US8972776B2 (en) 2013-03-06 2015-03-03 Seagate Technology, Llc Partial R-block recycling
US9672910B2 (en) 2013-04-30 2017-06-06 International Business Machines Corporation Memory architecture for storing data in a plurality of memory chips
CN104424127A (zh) 2013-08-23 2015-03-18 慧荣科技股份有限公司 存取快闪存储器中储存单元的方法以及使用该方法的装置
TWI588843B (zh) 2013-08-23 2017-06-21 慧榮科技股份有限公司 存取快閃記憶體中儲存單元的方法以及使用該方法的裝置
CN104425019B (zh) 2013-08-23 2018-07-06 慧荣科技股份有限公司 存取快闪存储器中存储单元的方法以及使用该方法的装置
CN104424040B (zh) 2013-08-23 2017-10-31 慧荣科技股份有限公司 存取快闪存储器中储存单元的方法以及使用该方法的装置
US9424126B2 (en) 2013-09-03 2016-08-23 Kabushiki Kaisha Toshiba Memory controller
US9262316B2 (en) 2013-12-09 2016-02-16 International Business Machines Corporation Recording dwell time in a non-volatile memory system
US9262268B2 (en) 2013-12-20 2016-02-16 Seagate Technology Llc Method to distribute user data and error correction data over different page types by leveraging error rate variations
US9645895B2 (en) 2013-12-26 2017-05-09 Silicon Motion, Inc. Data storage device and flash memory control method
TWI541819B (zh) 2013-12-30 2016-07-11 慧榮科技股份有限公司 用來進行錯誤更正之方法、記憶裝置、與控制器
US9319073B2 (en) 2014-02-11 2016-04-19 Seagate Technology Llc Mitigation of write errors in multi-level cell flash memory through adaptive error correction code decoding
US9685242B2 (en) 2014-03-11 2017-06-20 Kabushiki Kaisha Toshiba Memory system
KR102289919B1 (ko) 2014-04-15 2021-08-12 삼성전자주식회사 스토리지 컨트롤러, 스토리지 장치, 스토리지 시스템 및 상기 스토리지 컨트롤러의 동작 방법
US8891303B1 (en) * 2014-05-30 2014-11-18 Sandisk Technologies Inc. Method and system for dynamic word line based configuration of a three-dimensional memory device
TWI530959B (zh) 2014-06-17 2016-04-21 慧榮科技股份有限公司 用來控制一記憶裝置之方法以及記憶裝置與控制器
TWI554944B (zh) 2014-06-20 2016-10-21 慧榮科技股份有限公司 快閃記憶體控制裝置、快閃記憶體控制系統以及快閃記憶體控制方法
US9105333B1 (en) 2014-07-03 2015-08-11 Sandisk Technologies Inc. On-chip copying of data between NAND flash memory and ReRAM of a memory die
US10395753B2 (en) 2014-08-28 2019-08-27 Winbond Electronics Corp. Semiconductor memory device and programming method thereof
US20160062829A1 (en) 2014-08-29 2016-03-03 Kabushiki Kaisha Toshiba Semiconductor memory device
KR102233074B1 (ko) 2014-10-08 2021-03-30 삼성전자주식회사 저장 장치 및 그것의 신뢰성 검증 방법
KR20160046391A (ko) 2014-10-20 2016-04-29 삼성전자주식회사 하이브리드 딤 스트럭쳐 및 하이브리드 딤 스트럭쳐의 구동 방법
US9959059B2 (en) 2014-10-20 2018-05-01 Sandisk Technologies Llc Storage error management
US9984768B2 (en) 2014-10-20 2018-05-29 Sandisk Technologies Llc Distributing storage of ECC code words
KR102355580B1 (ko) 2015-03-02 2022-01-28 삼성전자주식회사 비휘발성 메모리 장치, 그것을 포함하는 저장 장치 및 그것의 동작 방법
US9753653B2 (en) * 2015-04-14 2017-09-05 Sandisk Technologies Llc High-priority NAND operations management
KR20160127524A (ko) * 2015-04-27 2016-11-04 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
US9639282B2 (en) * 2015-05-20 2017-05-02 Sandisk Technologies Llc Variable bit encoding per NAND flash cell to improve device endurance and extend life of flash-based storage devices
US9489260B1 (en) * 2015-05-26 2016-11-08 Seagate Technology Llc Flexible super block sizing for failed sector recovery
KR102372825B1 (ko) 2015-07-31 2022-03-14 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
TWI575531B (zh) 2015-08-10 2017-03-21 慧榮科技股份有限公司 存取快閃記憶體模組的方法及相關的快閃記憶體控制器與記憶裝置
US20170060425A1 (en) 2015-08-27 2017-03-02 Kabushiki Kaisha Toshiba Memory system and method of controlling nonvolatile memory
US10725860B2 (en) 2016-03-04 2020-07-28 Sandisk Technologies Llc Storage system and method for handling a burst of errors
US9910772B2 (en) 2016-04-27 2018-03-06 Silicon Motion Inc. Flash memory apparatus and storage management method for flash memory
CN107391026B (zh) 2016-04-27 2020-06-02 慧荣科技股份有限公司 闪存装置及闪存存储管理方法
KR102653401B1 (ko) 2016-07-18 2024-04-03 에스케이하이닉스 주식회사 메모리 시스템 및 그의 동작방법
CN106504796A (zh) 2016-10-28 2017-03-15 东南大学 一种应用于nand闪存上的极化码纠错方案
JP6709180B2 (ja) 2017-02-28 2020-06-10 キオクシア株式会社 メモリシステムおよび制御方法

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1567256A (zh) * 2003-06-20 2005-01-19 深圳市朗科科技有限公司 闪存介质中数据保护方法
CN102623055A (zh) * 2007-03-02 2012-08-01 株式会社东芝 非易失性半导体存储装置、系统及其中的不良列的管理方法
CN102236585A (zh) * 2010-04-20 2011-11-09 慧荣科技股份有限公司 提升错误更正能力的方法以及相关的记忆装置及其控制器
CN103093818A (zh) * 2011-11-04 2013-05-08 三星电子株式会社 存储系统及其操作方法
CN103325417A (zh) * 2012-03-23 2013-09-25 三星电子株式会社 非易失性存储器件、非易失性存储系统、及其编程方法
US20140129874A1 (en) * 2012-11-07 2014-05-08 Apple Inc. Redundancy schemes for non-volatile memory using parity zones having new and old parity blocks
CN105009215A (zh) * 2013-02-28 2015-10-28 美光科技公司 三维存储器中的子块停用
US20140380129A1 (en) * 2013-06-24 2014-12-25 Samsung Electronics Co., Ltd. Memory system and method of reading data thereof
CN105513638A (zh) * 2014-10-14 2016-04-20 慧荣科技股份有限公司 数据储存装置及其数据存取方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
MYEONGWOON JEON: "Limited magnitude error locating parity check codes for flash memories", 《2012 IEEE 55TH INTERNATIONAL MIDWEST SYMPOSIUM ON CIRCUITS AND SYSTEMS (MWSCAS)》 *

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109032532A (zh) * 2018-08-28 2018-12-18 深圳忆联信息系统有限公司 闪存存储管理方法及闪存装置
CN109032532B (zh) * 2018-08-28 2021-07-13 深圳忆联信息系统有限公司 闪存存储管理方法及闪存装置
CN111049529A (zh) * 2018-10-12 2020-04-21 慧荣科技股份有限公司 编码器及相关的编码方法与闪存
CN111049529B (zh) * 2018-10-12 2023-03-28 慧荣科技股份有限公司 编码器及相关的编码方法与闪存
CN111488118A (zh) * 2019-01-29 2020-08-04 慧荣科技股份有限公司 管理闪存模块的方法及相关的闪存控制器与电子装置
CN111488118B (zh) * 2019-01-29 2023-06-20 慧荣科技股份有限公司 管理闪存模块的方法及相关的闪存控制器与电子装置
CN111651371A (zh) * 2019-03-04 2020-09-11 慧荣科技股份有限公司 非对称型平面管理方法以及数据存储装置及其控制器
CN111651371B (zh) * 2019-03-04 2023-06-16 慧荣科技股份有限公司 非对称型平面管理方法以及数据存储装置及其控制器
US11809723B2 (en) 2019-03-04 2023-11-07 Silicon Motion, Inc. Unbalanced plane management method, associated data storage device and controller thereof
CN112017725A (zh) * 2019-05-28 2020-12-01 慧荣科技股份有限公司 超前处理的数据保护的非挥发性存储器存取方法和设备
CN112017725B (zh) * 2019-05-28 2022-10-21 慧荣科技股份有限公司 超前处理的数据保护的非挥发性存储器存取方法和设备

Also Published As

Publication number Publication date
US10846173B2 (en) 2020-11-24
US20190220353A1 (en) 2019-07-18
US10289487B2 (en) 2019-05-14
US20170315867A1 (en) 2017-11-02
CN107403640B (zh) 2020-08-18

Similar Documents

Publication Publication Date Title
CN107403640A (zh) 存取闪存模块的方法及相关的闪存控制器与记忆装置
CN106445723B (zh) 存取闪存模块的方法、闪存控制器以及记忆装置
CN107391296A (zh) 存取闪存模块的方法及相关的闪存控制器与记忆装置
CN107423158A (zh) 存取闪存模块的方法及相关的闪存控制器与记忆装置
TWI674586B (zh) 存取快閃記憶體模組的方法及相關的快閃記憶體控制器與記憶裝置
CN104850514B (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