CN110047544A - 用于包括qlc单元的存储器装置的编码方法及系统 - Google Patents
用于包括qlc单元的存储器装置的编码方法及系统 Download PDFInfo
- Publication number
- CN110047544A CN110047544A CN201910016138.3A CN201910016138A CN110047544A CN 110047544 A CN110047544 A CN 110047544A CN 201910016138 A CN201910016138 A CN 201910016138A CN 110047544 A CN110047544 A CN 110047544A
- Authority
- CN
- China
- Prior art keywords
- page
- data
- lpage
- group
- logical page
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 24
- 238000003860 storage Methods 0.000 claims abstract description 63
- 238000012937 correction Methods 0.000 claims description 12
- 230000005611 electricity Effects 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 26
- 239000010410 layer Substances 0.000 description 19
- 238000013507 mapping Methods 0.000 description 17
- 239000000872 buffer Substances 0.000 description 16
- 239000004065 semiconductor Substances 0.000 description 13
- 230000004044 response Effects 0.000 description 8
- 230000002093 peripheral effect Effects 0.000 description 5
- 238000013461 design Methods 0.000 description 4
- 238000005457 optimization Methods 0.000 description 4
- 238000013500 data storage Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 239000002356 single layer Substances 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 239000013598 vector Substances 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 230000000712 assembly Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000000151 deposition Methods 0.000 description 1
- 230000006866 deterioration Effects 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- GOLXNESZZPUPJE-UHFFFAOYSA-N spiromesifen Chemical compound CC1=CC(C)=CC(C)=C1C(C(O1)=O)=C(OC(=O)CC(C)(C)C)C11CCCC1 GOLXNESZZPUPJE-UHFFFAOYSA-N 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
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/1004—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
-
- 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
-
- 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/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input 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/52—Protection of memory contents; Detection of errors in memory contents
-
- 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
-
- 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
- H03M13/2906—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 using block codes
- H03M13/2909—Product codes
-
- 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
- G11C2029/0411—Online error correction
-
- 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
-
- 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
-
- 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/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
- H03M13/151—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
- H03M13/1515—Reed-Solomon codes
-
- 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/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
- H03M13/151—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
- H03M13/152—Bose-Chaudhuri-Hocquenghem [BCH] codes
-
- 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/25—Error detection or forward error correction by signal space coding, i.e. adding redundancy in the signal constellation, e.g. Trellis Coded Modulation [TCM]
- H03M13/251—Error detection or forward error correction by signal space coding, i.e. adding redundancy in the signal constellation, e.g. Trellis Coded Modulation [TCM] with block coding
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- General Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Computer Security & Cryptography (AREA)
- Read Only Memory (AREA)
Abstract
本发明公开一种用于包括四层单元(QLC)存储器单元的存储器装置的编码方法和系统。存储器系统的控制器包括第一编码器和第二编码器。该第一编码器基于约束码对第一组数据进行编码以生成第三组数据,第一组数据对应于多个逻辑页面中的第一逻辑页面和第三逻辑页面。该第二编码器基于格雷码对第二组数据和第三组数据进行编码,以生成对应于多个编程电压(PV)电平的编码顺序,第二组数据对应于多个逻辑页面中的第二逻辑页面和第四逻辑页面。
Description
相关申请的交叉引用
本申请要求2018年1月8日提交的申请号为62/614,844的美国临时申请的优先权,其全部内容通过引用并入本文。
技术领域
本公开的实施例涉及一种用于存储器装置的编码方案。
背景技术
计算机环境范例已经转变成可随时随地使用的普适计算系统。因此,诸如移动电话、数码相机和笔记本电脑的便携式电子装置的使用已经迅速增加。这些便携式电子装置通常使用具有存储器装置,即数据存储装置的存储器系统。数据存储装置被用作便携式电子装置的主存储器装置或辅助存储器装置。
由于不具有移动部件,使用存储器装置的存储器系统提供了优异的稳定性、耐用性、高信息访问速度和低功耗。具有这些优点的存储器系统的示例包括通用串行总线(USB)存储器装置、具有各种接口的存储卡以及固态驱动器(SSD)。存储器系统对存储器单元使用各种编码方案。
发明内容
本发明的方面包括一种用于包括四层单元(QLC)存储器单元的存储器装置的编码方法和系统。
一方面,一种存储器系统包括存储器装置,该存储器装置包括四层单元(QLC)和控制器。控制器包括第一编码器和第二编码器。第一编码器基于约束码对第一组数据进行编码以生成第三组数据,第一组数据对应于多个逻辑页面中的第一逻辑页面和第三逻辑页面。第二编码器基于格雷码对第二组数据和第三组数据进行编码,以生成对应于多个编程电压(PV)电平的编码顺序,第二组数据对应于多个逻辑页面中的第二逻辑页面和第四逻辑页面。
另一方面,一种用于操作存储器系统的方法,存储器系统包括包含四层单元(QLC)的存储器装置,该方法包括:基于约束码对第一组数据进行编码以生成第三组数据,第一组数据对应于多个逻辑页面中的第一逻辑页面和第三逻辑页面;以及基于格雷码对第二组数据和第三组数据进行编码,以生成对应于多个编程电压(PV)电平的编码顺序,第二组数据对应于多个逻辑页面中第二逻辑页面和第四逻辑页面。
从以下描述中,本发明的其它方面将变得显而易见。
附图说明
图1是示出根据本发明的实施例的存储器系统的框图。
图2是示出根据本发明的实施例的存储器系统的框图。
图3是示出根据本发明的实施例的存储器系统的存储器装置的存储块的电路图。
图4是示出存储器装置的单元状态的示图。
图5是示出存储器装置的单元的示图。
图6是用于描述存储器装置中的单元间干扰的示图。
图7是示出用于四层单元(QLC)的编程电压电平和逻辑页面之间的映射的格雷码的示例的示图。
图8是示出利用图7的格雷码的存储器装置中的单元间干扰的示图。
图9是示出根据本发明的实施例的用于四层单元(QLC)的编程电压(PV)电平和逻辑页面之间映射的格雷码的示图。
图10是示出根据本发明的实施例的存储器系统的示图。
图11是示出根据本发明的实施例的编码器装置的示图。
图12是示出根据本发明的实施例的编码器装置的示图。
图13是示出根据本发明的实施例的编码器装置的示图。
具体实施方式
以下参照附图更详细地描述各个实施例。然而,本发明可以以不同的形式实施,因此不应该被解释为限于本文阐述的实施例。相反,提供这些实施例是为了使本公开是彻底的和完整的,并且向本领域技术人员充分传达本发明的范围。而且,本文对“实施例”、“另一实施例”等的引用不一定仅针对一个实施例,并且对任何这样的短语的不同引用不一定针对相同的实施例。在整个本公开中,相同的附图标记在本发明的附图和实施例中表示相同的部件。
本发明可以以多种方式实施,包括进程;设备;系统;物质的组成;在计算机可读存储介质上实施的计算机程序产品;和/或处理器,例如适用于执行存储在联接到处理器的存储器上和/或由存储器提供的指令的处理器。在本说明书中,这些实施例或本发明可以采用的任何其它形式都可以称为技术。通常,可以在本发明的范围内改变所公开的进程的步骤的顺序。除非另有说明,否则被描述为适用于执行任务的诸如处理器或存储器的组件可以被实施为临时配置为在给定时间执行任务的通用组件或者为执行任务而制造的特定组件。如本文所使用的,术语“处理器”等指的是适用于处理诸如计算机程序指令的数据的一个或多个装置、电路和/或处理内核。
下面提供本发明实施例的详细描述以及说明本发明各方面的附图。结合这些实施例描述本发明,但是本发明不限于任何实施例。本发明的范围仅受权利要求的限制。本发明包括在权利要求范围内的许多替代、修改和等同方案。在以下描述中阐述了许多具体细节,以便提供对本发明的透彻理解。提供这些细节是为了例示的目的;本发明可以在没有一些或全部这些具体细节的情况下根据权利要求实施。为了简洁,没有详细描述与本发明相关的技术领域中已知的技术材料,从而避免不必要地模糊本发明。
图1是示出根据本发明的实施例的存储器系统10的框图。
参照图1,存储器系统10可以包括存储器控制器100和半导体存储器装置200,其可以代表一个以上的这种装置。半导体存储器装置200可以是闪速存储器装置,特别是NAND型闪速存储器装置。
存储器控制器100可以控制半导体存储器装置200的全部操作。
半导体存储器装置200可以在存储器控制器100的控制下执行一个或多个擦除操作、编程操作和读取操作。半导体存储器装置200可以通过输入/输出(I/O)线接收命令CMD、地址ADDR和数据DATA。半导体存储器装置200可以通过电源线接收电力PWR,以及通过控制线接收控制信号CTRL。控制信号CTRL可以包括命令锁存使能(CLE)信号、地址锁存使能(ALE)信号、芯片使能(CE)信号、写入使能(WE)信号,读取使能(RE)信号等。
存储器控制器100和半导体存储器装置200可以集成在例如固态驱动器(SSD)的单个半导体装置中。SSD可以包括用于在其中存储数据的存储装置。当半导体存储器系统10用于SSD中时,联接到存储器系统10的主机(未示出)的操作速度可以显著提高。
存储器控制器100和半导体存储器装置200可以集成在诸如存储卡的单个半导体装置中。例如,存储器控制器100和半导体存储器装置200可以被集成以形成个人计算机存储卡国际协会(PCMCIA)的PC卡、紧凑式闪存卡(CF)、智能媒体卡(SM)、记忆棒、多媒体卡(MMC)、缩小尺寸的多媒体卡(RS-MMC)、微型MMC(MMC微型)、安全数字卡(SD)、迷你安全数字卡(迷你SD)、微型安全数字卡(微型SD)、高容量安全数字(SDHC)和/或通用闪存(UFS)。
在另一个实施例中,存储器系统10可以被设置为诸如以下的电子装置中的各种组件之一:计算机、超移动PC(UMPC)、工作站、上网本、个人数字助理(PDA)、便携式计算机、网络平板电脑、无线电话、移动电话、智能电话、电子书阅读器、便携式多媒体播放器(PMP)、便携式游戏装置、导航装置、黑盒、数码相机、数字多媒体广播(DMB)播放器、三维电视、智能电视、数字音频记录器、数字音频播放器、数字图片记录器、数字图片播放器、数字视频记录器、数字视频播放器、数据中心的存储装置、能够在无线环境下接收和发送信息的装置、射频识别(RFID)装置、以及家庭网络的各种电子装置之一、计算机网络的各种电子装置之一、远程信息处理网络的各种电子装置之一、或计算系统的各种组件之一。
图2是示出根据本发明的实施例的存储器系统的详细框图。例如,图2的存储器系统可以描述图1中所示的存储器系统10。
参照图2,存储器系统10可以包括存储器控制器100和半导体存储器装置200。存储器系统10可以响应于来自主机装置的请求进行操作,特别地,存储待由主机装置访问的数据。
主机装置可以利用各种电子装置中的任意一种来实施。在一些实施例中,主机装置可以包括电子装置,例如台式计算机、工作站、三维(3D)电视、智能电视、数字音频记录器、数字音频播放器、数字图片记录器、数字图片播放器和/或数字视频记录器和数字视频播放器。在一些实施例中,主机装置可以包括便携式电子装置,例如移动电话、智能电话、电子书、MP3播放器、便携式多媒体播放器(PMP)和/或便携式游戏机。
存储器装置200可以存储待由主机装置访问的数据。
存储器装置200可以可利用诸如动态随机存取存储器(DRAM)和/或静态随机存取存储器(SRAM)的易失性存储器装置或诸如只读存储器(ROM)、掩模ROM(MROM)、可编程ROM(PROM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、铁电随机存取存储器(FRAM)、相变RAM(PRAM)、磁阻RAM(MRAM)和/或电阻式RAM(RRAM)的非易失性存储器装置来实施。
控制器100可以控制存储器装置200中的数据的存储。例如,控制器100可以响应于来自主机装置的请求来控制存储器装置200。控制器100可将从存储器装置200读取的数据提供至主机装置,并且可将从主机装置提供的数据存储到存储器装置200中。
控制器100可以包括通过总线160联接的存储装置110、可以实施为诸如中央处理单元(CPU)的处理器的控制组件120、错误校正码(ECC)部件130、主机接口(I/F)140以及存储器接口(I/F)150。
存储装置110可用作存储器系统10和控制器100的工作存储器,并存储用于驱动存储器系统10和控制器100的数据。当控制器100控制存储器装置200的操作时,存储装置110可以存储由控制器100和存储器装置200使用的数据,以用于诸如读取操作、写入操作、编程操作和擦除操作的操作。
存储装置110可以利用诸如静态随机存取存储器(SRAM)或动态随机存取存储器(DRAM)的易失性存储器来实施。如上所述,存储装置110可以将主机装置使用的数据存储在存储器装置200中以用于读取和写入操作。为了存储数据,存储装置110可以包括编程存储器、数据存储器、写入缓冲器、读取缓冲器、映射缓冲器等。
控制组件120可以响应于来自主机装置的写入请求或读取请求,控制存储系统10的一般操作,以及对存储器装置200的写入操作或读取操作。控制组件120可以驱动固件,其被称为闪存转换层(FTL),以控制存储器系统10的一般操作。例如,FTL可以执行诸如逻辑到物理(L2P)映射、耗损均衡、垃圾收集和/或坏块处理的操作。L2P映射称为逻辑块寻址(LBA)。
ECC组件130可在读取操作期间检测并校正从存储器装置200读取的数据中的错误。当错误位的数量大于或等于可校正错误位的阈值数量时,ECC组件130可以不校正错误位,而是可以输出指示错误位校正失败的错误校正失败信号。
在一些实施例中,ECC组件130可以基于诸如以下的编码调制执行错误校正操作:低密度奇偶校验(LDPC)码、博斯-查德胡里-霍昆格姆(Bose-Chaudhri-Hocquenghem,BCH)码、turbo码、turbo产品码(TPC)、里德-所罗门(RS)码、卷积码、递归系统码(RSC)、网格编码调制(TCM)或分组编码调制(BCM)。这样,ECC组件130可以包括用于适当的错误校正操作的所有电路、系统或装置。
主机接口140可以通过诸如以下的各种接口协议中的一种或多种与主机装置通信:通用串行总线(USB)、多媒体卡(MMC)、高速外围组件互连(PCI-e)、小型计算机系统接口(SCSI)、串列SCSI(SAS)、串行高级技术附件(SATA)、并行高级技术附件(PATA)、增强型小型磁盘接口(ESDI)、电子集成驱动器(IDE)以及高速非易失性存储器(NVMe)。
存储器接口150可以提供控制器100和存储器装置200之间的接口,从而允许控制器100响应于来自主机装置的请求来控制存储器装置200。存储器接口150可以在CPU 120的控制下生成用于存储器装置200的控制信号并处理数据。当存储器装置200是诸如NAND闪速存储器的闪速存储器时,存储器接口150可以在CPU 120的控制下生成用于存储器的控制信号并处理数据。
存储器装置200可包括存储器单元阵列210、控制电路220、电压生成电路230、行解码器240、可以是页面缓冲器阵列的形式的页面缓冲器250、列解码器260以及输入/输出电路270。存储器单元阵列210可以包括可以存储数据的多个存储块211。电压生成电路230、行解码器240、页面缓冲器阵列250、列解码器260和输入/输出电路270可以形成用于存储器单元阵列210的外围电路。外围电路可以执行存储器单元阵列210的编程操作、读取操作或擦除操作。控制电路220可以控制外围电路。
电压生成电路230可以产生各种电平的操作电压。例如,在擦除操作中,电压生成电路230可以产生例如擦除电压和通过电压的各种电平的操作电压。
行解码器240可以与电压生成电路230和多个存储块211电通信。行解码器240可以响应于由控制电路220生成的行地址RADD来选择多个存储块211中的至少一个存储块,并将从电压生成电路230提供的操作电压发送到所选择的存储块。
页面缓冲器250可以通过位线BL(如图3所示)与存储器单元阵列210电通信。页面缓冲器250可以响应于由控制电路220产生的页面缓冲器控制信号,利用正电压对位线BL进行预充电,在编程操作和读取操作中向所选择的存储块发送数据以及从所选择的存储块接收数据,或者临时存储发送的数据。
列解码器260可以向页面缓冲器250发送数据和从页面缓冲器250接收数据或者与输入/输出电路270交换数据。
输入/输出电路270可以向控制电路220发送从外部装置(例如,存储器控制器100)接收的命令和地址,通过输入/输出电路270将数据从外部装置发送至列解码器260或者将数据从列解码器260输出至外部装置。
控制电路220可以响应于命令和地址来控制外围电路。
图3是示出根据本发明的实施例的半导体存储器装置的存储块的电路图。例如,图3的存储块可以是图2中所示的存储器单元阵列200的存储块211中的任意存储块。
参照图3,示例性存储块211可以包括联接至行解码器240的多个字线WL0至WLn-1、漏极选择线DSL和源极选择线SSL。这些线可以并行布置,其中多条字线在DSL和SSL之间。
示例性存储块211进一步可包括分别联接到位线BL0至BLm-1的多个单元串221。每个列的单元串340可包括一个或多个漏极选择晶体管DST以及一个或多个源极选择晶体管SST。在所示的实施例中,每个单元串具有一个DST和一个SST。在单元串中,多个存储器单元或存储器单元晶体管MC0至MCn-1可以被串行地联接在选择晶体管DST和SST之间。每个存储器单元可以形成为存储1位数据的单层单元(SLC)。每个存储器单元可以形成为存储2位数据的多层单元(MLC)。每个存储器单元可以形成为存储3位数据的三层单元(TLC)。每个存储器单元可以形成为存储4位数据的四层单元(QLC)。
每个单元串中的SST的源极可以联接到公共源极线CSL,并且每个DST的漏极可以联接到对应的位线。单元串中的SST的栅极可以联接到SSL,并且单元串中的DST的栅极可以联接到DSL。横跨单元串的存储器单元的栅极可以联接到相应的字线。也就是说,存储器单元MC0的栅极联接到对应的字线WL0,存储器单元MC1的栅极联接到对应的字线WL1等。联接到具体字线的存储器单元的组可称为物理页面。因此,存储块211中的物理页面的数量可以对应于字线的数量。
页面缓冲器阵列250可以包括联接到位线BL0至BLm-1的多个页面缓冲器251。页面缓冲器251可以响应于页面缓冲器控制信号而进行操作。例如,页面缓冲器251可临时存储通过位线BL0至BLm-1接收的数据或者在读取操作或验证操作期间感测位线的电压或电流。
在一些实施例中,存储块211可以包括NAND型闪速存储器单元。然而,存储块211不限于这种单元类型而可以包括NOR型闪速存储器单元。存储器单元阵列210可以实施为其中组合了两种或更多种类型的存储器单元的混合闪速存储器,或者其中存储器芯片内嵌入控制器的1-NAND闪速存储器。
图4是示出存储器装置的单元的编程状态或电压电平的分布的示图。
参照图4,每个存储器单元可以利用存储1位数据的单层单元(SLC)、存储2位数据的多层单元(MLC)、存储3位数据的三层单元(TLC)或存储4位数据的四层单元(QLC)来实施。
SLC的存储器单元可以包括两个状态P0和P1。P0可以指示擦除状态,P1可以指示编程状态。由于SLC的存储器单元可以设置为两种不同状态中的一种状态,因此每个存储器单元可以根据设置的编码方法编程或存储1位。MLC的存储器单元可以包括四个状态P0、P1、P2和P3。在这些状态中,P0可以指示擦除状态,P1至P3可以指示编程状态。由于MLC的存储器单元可以设置为四种不同状态中的一种状态,因此每个存储器单元可以根据设置的编码方法编程或存储两个不同的位。TLC的存储器单元可以包括八个状态P0至P7。在这些状态中,P0可以指示擦除状态,P1至P7可以指示编程状态。由于TLC的存储器单元可以设置为八种不同状态中的一种状态,因此每个存储器单元可以根据设置的编码方法编程或存储三个不同的位。QLC的存储器单元可以包括十六个状态P0至P15。在这些状态中,P0可以指示擦除状态,P1至P15可以指示编程状态。由于QLC的存储器单元可以设置为十六种不同状态中的一种状态,因此每个存储器单元可以根据设置的编码方法编程或存储四个不同的位。
图5是示出存储器装置的单元的示图。参照图5,存储器装置可以包括联接到字线WLi的多个存储器单元Cell 0到Cell(m-1)。
图6是用于描述存储器装置中的单元间干扰(ICI)的示图。
参照图6,当从包括联接到字线WLi的存储器单元Cell 0到Cell 2的存储器装置(例如,NAND闪速存储器)读取数据时,可能发生错误。从NAND闪速存储器读取的数据中的主要错误源可以是单元间干扰。当处于低编程电压(PV)电平的单元(例如,Cell 1)被处于高PV电平的单元(例如,Cell 0和Cell 2)包围时,处于低PV电平的单元的读取参考(或阈值)电压电平可能增加,从而导致它作为较高的PV电平而被读回。
图7是示出用于四层单元(QLC)的编程电压(PV)电平和逻辑页面之间的映射的格雷码的示例的示图。
参照图7,QLC存储器单元可以将信息(或数据)存储在十六个可能的编程电压(PV)电平PV0至PV15中。这16个PV电平中的每个都可以映射到独有的4位矢量。如图7所示,可以使用格雷映射,使得相邻PV电平的映射恰好相差一位。包括QLC的存储器装置中的物理页面,即单元的集合可以被划分为四个逻辑页面:作为最高有效位(MSB)页面的第一页面、作为最高中间有效位(MCSB)页面的第二页面、作为最低中间有效位(LCSB)页面的第三页面以及作为最低有效位(LSB)页面的第四页面。可以独立地编码和/或解码逻辑页面以获得最佳可能的随机读取性能。
再次参照图6,当处于低PV电平的单元(例如,Cell 1)被处于高PV电平的单元(例如,Cell 0和Cell 2)包围时,由于单元间干扰,处于低PV电平的单元(例如,Cell 1)的读取参考(或阈值)电压电平可能增加。
图8是示出使用图7的格雷码的存储器装置的连续单元的编程电压(PV)电平顺序的示图,这可能由于单元间干扰而导致读取数据中的错误。
参照图8,当处于低PV电平的单元被处于高PV电平的单元包围时,可能发生单元间干扰。低PV电平可以包括PV电平PV0和PV1,高PV电平可以包括PV电平PV14和PV15。进一步地,低PV电平可以包括PV电平PV2和PV3,高PV电平可以包括PV电平PV12和PV13。以下列表表示连续单元中的PV电平顺序的示例,这可能导致读取数据中的错误:
引起单元间干扰(ICI)的PV电平顺序具有所有逻辑页面的一些页面(即,最高有效位(MSB)页面和最低中间有效位(LCSB页面))的某些模式。换句话说,引起单元间干扰(ICI)的PV电平顺序具有MSB页面“111”和LCSB页面“010”的某些模式,如虚线框所示。
因此,需要提供减少这样错误中的单元数量的方案。重要的是提供约束编码方案,使得编码顺序不会引起这种单元间干扰。此外,重要的是当编码和/或解码以解决单元间干扰时保持良好的随机读取性能。
本发明的实施例提供了一种用于将四层单元(QLC)存储器单元的编程电压(PV)电平映射到四个逻辑页面的方案,使得逻辑页面在执行读取操作所需的感测操作的数量和质量上达到平衡。而且,所选择的格雷映射允许仅使用四个逻辑页面中的两个逻辑页面来识别有害的单元间干扰(ICI)模式。为了最小化随机读取性能的劣化,本发明的实施例横跨两个逻辑页面来执行约束编码以避免一些有害的ICI模式,从而使其它两个逻辑页面无需任何约束编码。此外,设计优化的格雷映射是有益的,使得利用高速率约束编码方案可以禁止所有有害的ICI模式。换句话说,本发明的实施例提供了一种联合设计的格雷编码和约束编码方案,使得可以在可忽略的速率损失和可忽略的读取性能劣化的情况下,完全消除许多有害的ICI模式。
图9是示出根据本发明实施例的用于在四层单元(QLC)存储器单元的编程电压(PV)电平和逻辑页面之间映射的格雷码的示图。
参照图9,基于优化的格雷码,可以将十六个PV电平PV0至PV15映射到四位矢量(或四位数据)。属于最高有效位(MSB)页面的第一位作为第一页面。属于最高中间有效位(MCSB)页面的第二位作为第二页面。属于最低中间有效位(LCSB)页面的第三位作为第三页面。属于最低有效位(MSB)页面的第四位作为第四页面。映射满足格雷码的属性,即代表任意两个相邻PV电平的位变化了一位。变化的位在图9中被突出显示。例如,PV0中的第四位(即“1”)与PV1中的第四位(即“0”)不同。PV1中的第二位(即“1”)与PV2中的第二位(即“0”)不同。PV2中的第四位(即“0”)与PV3中的第四位(即“1”)不同。PV3中的第一位(即“1”)与PV4中的第一位(即“0”)不同。PV4中的第二位(即“0”)与PV5中的第二位(即“1”)不同。PV5中的第三位(即“1”)与PV6中的第三位(即“0”)不同。PV6中的第四位(即“1”)与PV7中的第四位(即“0”)不同。PV7中的第三位(即“0”)与PV8中的第三位(即“1”)不同。PV8中的第二位(即“1”)与PV9中的第二位(即“0”)不同。PV9中的第三位(即“1”)与PV10中的第三位(即“0”)不同。PV10中的第四位(即“0”)与PV11中的第四位(即“1”)不同。PV11中的第一位(即“0”)与PV12中的第一位(即“1”)不同。PV12中的第二位(即“0”)与PV13中的第二位(即“1”)不同。PV13中的第四位(即“1”)与PV14中的第四位(即“0”)不同。PV14中的第二位(即“1”)与PV15中的第二位(即“0”)不同。
在各个实施例中,如图9所示,基于优化的格雷码的编码顺序具有对应于MSB、MCSB、LCSB和LSB页面的位与16个PV电平之间的映射关系,如下表1所示:
表1
下面的表2示出了对应于图9中的映射方案的针对所有逻辑页面的感测操作。
表2
逻辑页面 | 用于读取的感测操作 | 感测操作的数量 |
MSB | R4,R12 | 2 |
MCSB | R2,R5,R9,R13,R15 | 5 |
LCSB | R6,R8,R10 | 3 |
LSB | R1,R3,R7,R11,R14 | 5 |
MSB&LCSB | R4,R6,R8,R10,R12 | 5 |
在表2中,可以通过利用读取阈值R4和R12的2次感测操作来读取MSB页面。可以通过利用读取阈值R2、R5、R9、R13和R15的5次感测操作来读取MCSB页面。可以通过利用读取阈值R6、R8和R10的3次感测操作来读取LCSB页面。可以通过利用读取阈值R1、R3、R7、R11和R14的5次感测操作来读取LSB页面。可以通过利用读取阈值R4、R6、R8、R10和R12的5次感测操作来读取MSB页面和LCSB页面。
再次参照图9,读取阈值R1和R15是弱的,即PV0中的许多单元可能作为PV1被读回,反之亦然。类似地,PV15中的许多单元可能作为PV14被读回,反之亦然。本发明的实施例可以将这些读取阈值分配给单独的逻辑页面。
图10是示出根据本发明的实施例的存储器系统的示图。
参照图10,存储器系统可以包括控制器100和存储器装置200。存储器装置200可以包括具有诸如单层单元(SLC)、多层单元(MLC)、三层单元(TLC)或四层单元(QLC)的存储器单元的NAND型闪速存储器装置。控制器100可以从主机(未示出)接收命令,并向存储器装置200提供所接收的命令。例如,控制器100接收写入命令和与写入命令对应的写入数据,并控制存储器装置200对写入数据执行编程操作。又例如,控制器100接收读取命令,并控制存储器装置200对与读取命令对应的数据执行读取操作。
控制器100可以包括编码器装置1000。在编程操作期间,编码器装置1000可以基于设置的编码方案对写入数据执行编码操作。在各个实施例中,存储器装置200可包括具有QLC的存储器单元(即,QLC)的NAND型闪速存储器装置,且该编码方案可与图9中所示的用于映射的格雷码相关。下面将参照图11至图13描述该编码方案。虽然这里没有再次描述,但是控制器100和存储器装置200可以执行图1和图2中描述的操作。
如上所述,当在同一字线上存储低PV电平的单元被存储高PV电平的单元包围时,单元间干扰(ICI)最严重。低PV电平可以包括诸如PV0、PV1、PV2和PV3的PV电平。高PV电平可以包括诸如PV15、PV14、PV13和PV12的PV电平。为了减少由这种ICI引起的错误的数量,编码方案可以使用约束编码来消除所有这样的模式被编程到任何字线。
图11是示出根据本发明的实施例的例如图10中的控制器100的编码器装置1000的编码器装置的示图。
参照图11,编码器装置1000可以包括第一编码器1100和第二编码器1300。编码器装置1000进一步可以包括第三编码器1200。第一编码器1100可以基于约束码执行编码操作。第二编码器1300可以基于格雷码执行编码操作。第三编码器1200可以基于错误校正码(ECC)执行编码操作。包括编码器装置1000的控制器100可以控制存储器装置200将由编码器装置1000生成的编码顺序编程在存储器装置200的存储器单元中。
第一编码器1100可以基于约束码对第一组数据进行编码以生成第三组数据。第一组数据可以与对应于四层单元(QLC)的每个的多个逻辑页面中的第一逻辑页面和第三逻辑页面对应。第一编码器1100对第一组数据进行编码以串行地生成约束编码数据。
第二编码器1300可以基于格雷码对第二组数据和第三组数据进行编码,以生成对应于16个编程电压(PV)电平的编码顺序。第二组数据可以对应于多个逻辑页面中的第二逻辑页面和第四逻辑页面。
第三编码器1200可以基于错误校正码分别对第二组数据和第三组数据进行编码,以生成错误校正数据来基于格雷码进行编码。
编码器装置1000可以进一步包括串行-并行(S/P)转换器,用于将约束编码数据转换为并行编码数据以基于错误校正码进行编码。
第三编码器1200可以包括第一组编码器和第二组编码器。第一组编码器可以分别对包括在第三组数据中的、与第一逻辑页面和第三逻辑页面对应的第一并行编码数据和第三并行编码数据进行编码。第二组编码器可以分别对包括在第二组数据中的、与第二逻辑页面和第四逻辑页面对应的第二并行编码数据和第四并行编码数据进行编码。
第一逻辑页面可以包括最高有效位(MSB)页面。第二逻辑页面可以包括最高中间有效位(MCSB)页面。第三逻辑页面可以包括最低中间有效位(LCSB)页面。第四逻辑页面可以包括最低有效位(LSB)页面。
约束码可以包括这样的代码:使得在编码顺序中,与在16个PV电平之中的处于设置的低PV电平和高PV电平的MSB页面和LCSB页面对应的位具有某种模式的值。在编码顺序中,与处于设置的低PV电平的MSB页面和LCSB页面对应的位可以具有模式“11”的值。在编码顺序中,与处于设置的高PV电平的MSB页面和LCSB页面对应的位具有模式“10”的值。
图12是示出根据本发明的实施例的例如图11的编码器装置1000的编码器装置的示图。
参照图12,编码器装置1000可以包括第一编码器1100和第二编码器1300。进一步地,编码器装置1000可以包括串行-并行(S/P)转换器1150和第三编码器1200。
第一编码器1100可以基于约束码执行编码操作。第一编码器1100可以基于约束码对与多个逻辑页面对应的用户数据(例如,4U位)进行编码,其中该多个逻辑页面对应于四层单元(QLC)的每个。第一编码器1100对用户数据进行编码以串行地生成约束编码数据。约束编码数据可以包括编码用户数据(例如,4U位)和奇偶校验位(例如,P1位)。
在各个实施例中,多个逻辑页面可包括第一逻辑页面、第二逻辑页面、第三逻辑页面和第四逻辑页面。第一逻辑页面可以包括最高有效位(MSB)页面。第二逻辑页面可以包括最高中间有效位(MCSB)页面。第三逻辑页面可以包括最低中间有效位(LCSB)页面。第四逻辑页面可以包括最低有效位(LSB)页面。
串行-并行(S/P)转换器1150可以将约束编码数据转换为并行编码数据以用于基于错误校正码进行编码。
第三编码器1200可以基于错误校正码分别对来自S/P转换器1150的并行编码数据进行编码,以生成错误校正数据。第三编码器1200可以包括与多个页面对应的多个编码器。例如,第三编码器1200可以包括分别与4个逻辑页面对应的4个编码器1200A、1200B、1200C和1200D。编码器1200A、1200B、1200C和1200D中的每个可以基于错误校正码来编码对应的并行编码数据,以生成错误校正数据(例如,C位)。
第二编码器1300可以接收来自编码器1200A、1200B、1200C和1200D中的每个的错误校正数据并基于格雷码对其进行编码,以生成与多个编程电压(PV)电平(例如,C(=16)个PV电平)对应的编码顺序。
包括编码器装置1000的控制器100可以控制存储器装置200将由编码器装置1000生成的编码顺序编程在存储器装置200的存储器单元(即,QLC单元)中。
如上所述,图12中的编码方案是利用合适的约束码对所有逻辑页面进行编码,以便减少导致错误的ICI。消除所有禁止模式的约束码的容量是0.9945,即至少0.55%的存储容量被用于消除禁止模式。对于图12中的方案,当排除了由于ECC引起的速率损失时,总速率最多为4×0.9945位/单元。
虽然图12中的方案的速率是优异的,但随机读取性能可能会严重降低。这是因为确定于任何逻辑页面对应的U用户位需要知道约束码编码器1100输出的(4U+P1)位。因此,需要15个感测操作来确定单个逻辑页面的用户位。
因此,更好的编码方案是使用图9中所示的格雷码映射属性。根据图9中的格雷码映射,仅通过单元的对应于MSB页面和LCSB页面的位,可识别该单元是存储低PV电平、高PV电平还是两者都不存储。下面的表3示出了低PV电平和高PV电平与对应于MSB页面和LCSB页面的位之间的映射。
表3
PV电平的类型 | 对应于MSB的位 | 对应于LCSB的位 |
低 | 1 | 1 |
高 | 1 | 0 |
然后,约束码仅需要MSB页面和LCSB页面的信息来消除禁止模式。根据该方案的编码器装置的结构如图13所示。
图13是示出根据本发明的实施例的例如图11的编码器装置1000的编码器装置的示图。
参照图13,编码器装置1000可以包括第一编码器1100和第二编码器1300。编码器装置1000进一步可以包括串行-并行(S/P)转换器1150和第三编码器1200。
第一编码器1100可以基于约束码执行编码操作。第一编码器1100可以基于约束码对第一组数据进行编码以生成第三组数据。第一组数据可以与多个逻辑页面中的第一逻辑页面和第三逻辑页面对应,其中该多个逻辑页面对应于四层单元(QLC)的每个。
在各个实施例中,多个逻辑页面可包括第一逻辑页面、第二逻辑页面、第三逻辑页面和第四逻辑页面。第一逻辑页面可以包括最高有效位(MSB)页面。第二逻辑页面可以包括最高中间有效位(MCSB)页面。第三逻辑页面可以包括最低中间有效位(LCSB)页面。第四逻辑页面可以包括最低有效位(LSB)页面。
第一组数据可以包括与MSB逻辑页面和LCSB逻辑页面对应的用户数据(例如,2U位)。第一编码器1100可以编码第一组数据以生成第三组数据作为串行的约束编码数据。约束编码数据可以包括编码用户数据(例如,2U位)和奇偶校验位(例如,P2位)。
约束码可以包括这样的代码:使得与在16个PV电平之中的处于设置的低PV电平和高PV电平的MSB页面和LCSB页面对应的位具有某种模式的值。在由编码器装置1000生成和输出的编码顺序中,与处于设置的低PV电平的MSB页面和LCSB页面对应的位可以具有模式“11”的值。在编码顺序中,与处于设置的高PV电平的MSB页面和LCSB页面对应的位具有模式“10”的值。
串行-并行(S/P)转换器1150可以从第一编码器1100接收第三组数据作为约束编码数据,并且将约束编码数据转换为并行编码数据以基于错误校正码进行编码。作为约束编码数据的第三组数据可包括编码用户数据(例如,2U位)和奇偶校验位(例如,P2位)。
第三编码器1200可以接收第二组数据和来自S/P转换器1150的并行编码数据并且基于错误校正码分别进行编码,以生成错误校正数据以基于格雷码进行编码。第二组数据可以包括与MCSB逻辑页面对应的用户数据(例如,U位)以及与LSB逻辑页面对应的用户数据(例如,U位)。
第三编码器1200可以包括与多个页面对应的多个编码器。例如,第三编码器1200可以包括分别与4个逻辑页面对应的4个编码器1200A、1200B、1200C和1200D。编码器1200A和编码器1200B可以是第一组编码器,编码器1200C和编码器1200D可以是第二组编码器。第一组编码器的错误校正码与第二组编码器的错误校正码具有不同的码率。第一组编码器可以分别对包括在第三组数据中的、与第一逻辑页面和第三逻辑页面对应的第一并行编码数据和第三并行编码数据进行编码。第二组编码器可以分别对包括在第二组数据中的、与第二逻辑页面和第四逻辑页面对应的用户数据进行编码。编码器1200A、1200B、1200C和1200D中的每个可以基于错误校正码来编码相应的数据,以生成错误校正数据(例如,C位)。
第二编码器1300可以接收来自编码器1200A、1200B、1200C和1200D中的每个的错误校正数据并基于格雷码对其进行编码,以生成与多个编程电压(PV)电平(例如,C(=16)个PV电平)对应的编码顺序。
包括编码器装置1000的控制器100可以控制存储器装置200将由编码器装置1000生成的编码顺序编程在存储器装置200的存储器单元(即,QLC单元)中。
如上所述,使用约束码编码器1100对MSB页面和LCSB页面一起进行编码。然后,使用错误校正码(ECC)对编码器1100输出的约束位以及来自MCSB页面和LSB页面的无约束位进行编码,以校正读回的数据中的任何错误。然后,ECC编码顺序被用于确定待被编程到某个字线中的所有存储器单元(例如,NAND单元)的PV电平。
与图12中的对所有逻辑页面一起进行编码的编码方案不同,图13中的编码方案可以用5次感测操作独立地解码MCSB页面和LSB页面。此外,确定MSB页面或LCSB页面需要知道(2U+P2)位,这也需要5次感测操作。由于图9中的格雷码的优化设计,这种平衡的读取次数是可能的。如果不执行约束编码,则任意格雷码的最佳感测操作次数是4次。因此,图13中的编码方案实现了消除导致有害模式的ICI,同时伴随较少增加的感测操作以及较低的速率损失。
图13中的方案示出了约束码和错误校正码的级联(concatenation)。在可选实施例中,可以使用级联架构,其中首先利用ECC对用户数据进行编码,然后使用约束码对得到的码字进行编码。此外,可以设计具有与在根据本发明实施例的方案中使用的属性相同的属性的其它格雷码,即能够利用两个逻辑页面来识别低PV电平和高PV电平,平衡读取逻辑页面的感测操作的数量,以及平衡弱感测阈值的数量。
如前所述,本发明的实施例提供了一种用于将四层单元(QLC)存储器单元的编程电压(PV)电平映射到四个逻辑页面的方案,使得逻辑页面在执行读取操作所需的感测操作的数量和质量上达到平衡。而且,所选择的格雷映射允许仅使用四个逻辑页面中的两个逻辑页面来识别有害的单元间干扰(ICI)模式。
尽管为了清楚和理解的目的已经在一些细节上说明和描述了前述实施例,但是本发明不限于所提供的细节。如本领域技术人员根据前述公开内容将理解的,存在实施本发明的许多替代方式。因此所公开的实施例是说明性的而非限制性的。本发明旨在涵盖落入权利要求范围内的所有修改和替代方案。
Claims (20)
1.一种存储器系统,包括:
存储器装置,包括四层单元,即QLC;以及
控制器,包括:
第一编码器,基于约束码对第一组数据进行编码以生成第三组数据,所述第一组数据对应于多个逻辑页面中的第一逻辑页面和第三逻辑页面;以及
第二编码器,基于格雷码对第二组数据和所述第三组数据进行编码,以生成对应于多个编程电压电平,即PV电平的编码顺序,所述第二组数据对应于所述多个逻辑页面中的第二逻辑页面和第四逻辑页面。
2.根据权利要求1所述的存储器系统,其中所述控制器控制所述存储器装置以将所述编码顺序编程在所述存储器单元中。
3.根据权利要求1所述的存储器系统,进一步包括:
第三编码器,基于错误校正码分别对所述第二组数据和所述第三组数据进行编码,以生成错误校正数据以用于基于所述格雷码进行编码。
4.根据权利要求3所述的存储器系统,其中所述第一编码器对所述第一组数据进行编码以生成串行输出的约束编码数据。
5.根据权利要求4所述的存储器系统,进一步包括:
串行-并行转换器,将串行输出的所述约束编码数据转换成并行编码数据以用于基于所述错误校正码进行编码。
6.根据权利要求4所述的存储器系统,其中所述第三编码器包括:
第一组编码器,分别对包括在所述第三组数据中的、与所述第一逻辑页面和所述第三逻辑页面对应的第一并行编码数据和第三并行编码数据进行编码;以及
第二组编码器,分别对包括在所述第二组数据中的、与所述第二逻辑页面和所述第四逻辑页面对应的第二并行编码数据和第四并行编码数据进行编码。
7.根据权利要求1所述的存储器系统,其中所述第一逻辑页面包括最高有效位页面,即MSB页面,
所述第二逻辑页面包括最高中间有效位页面,即MCSB页面,
所述第三逻辑页面包括最低中间有效位页面,即LCSB页面,以及
所述第四逻辑页面包括最低有效位页面,即LSB页面。
8.根据权利要求7所述的存储器系统,其中所述约束码包括使得在所述编码顺序之中,与处于16个PV电平中的低PV电平和高PV电平的MSB页面和LCSB页面对应的位具有某种模式的值的码。
9.根据权利要求8所述的存储器系统,其中在所述编码顺序之中,与处于所述低PV电平的MSB页面和LCSB页面对应的位具有模式“11”的值。
10.根据权利要求9所述的存储器系统,其中在所述编码顺序之中,与处于所述高PV电平的MSB页面和LCSB页面对应的位具有模式“10”的值。
11.一种操作存储器系统的方法,所述存储器系统包括包含四层单元,即QLC的存储器装置,所述方法包括:
基于约束码对第一组数据进行编码以生成第三组数据,所述第一组数据对应于多个逻辑页面中的第一逻辑页面和第三逻辑页面;以及
基于格雷码对第二组数据和所述第三组数据进行编码,以生成对应于多个编程电压电平,即PV电平的编码顺序,所述第二组数据对应于所述多个逻辑页面中的第二逻辑页面和第四逻辑页面。
12.根据权利要求11所述的方法,进一步包括:
将所述编码顺序编程在所述存储器装置的所述四层单元中。
13.根据权利要求11所述的方法,进一步包括:
基于错误校正码分别对所述第二组数据和所述第三组数据进行编码,以生成错误校正数据以用于基于所述格雷码进行编码。
14.根据权利要求13所述的方法,其中编码所述第一组数据包括对所述第一组数据进行编码以生成串行输出的约束编码数据。
15.根据权利要求14所述的方法,进一步包括:
将串行输出的所述约束编码数据转换成并行编码数据以用于基于所述错误校正码进行编码。
16.根据权利要求14所述的方法,其中基于所述错误校正码的编码包括:
分别对包括在所述第三组数据中的、与所述第一逻辑页面和所述第三逻辑页面对应的第一并行编码数据和第三并行编码数据进行编码;以及
分别对包括在所述第二组数据中的、与所述第二逻辑页面和所述第四逻辑页面对应的数据进行编码。
17.根据权利要求11所述的方法,其中所述第一逻辑页面包括最高有效位页面,即MSB页面,
所述第二逻辑页面包括最高中间有效位页面,即MCSB页面,
所述第三逻辑页面包括最低中间有效位页面,即LCSB页面,以及
所述第四逻辑页面包括最低有效位页面,即LSB页面。
18.根据权利要求17所述的方法,其中所述约束码包括在所述编码顺序之中,与处于16个PV电平中的低PV电平和高PV电平的MSB页面和LCSB页面对应的位具有某种模式的值的码。
19.根据权利要求18所述的方法,其中在所述编码顺序之中,与处于所述低PV电平的MSB页面和LCSB页面对应的位具有模式“11”的值。
20.根据权利要求19所述的方法,其中在所述编码顺序之中,与处于所述高PV电平的MSB页面和LCSB页面对应的位具有模式“10”的值。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862614844P | 2018-01-08 | 2018-01-08 | |
US62/614,844 | 2018-01-08 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110047544A true CN110047544A (zh) | 2019-07-23 |
CN110047544B CN110047544B (zh) | 2023-11-10 |
Family
ID=67139533
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910016138.3A Active CN110047544B (zh) | 2018-01-08 | 2019-01-08 | 用于包括qlc单元的存储器装置的编码方法及系统 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10846172B2 (zh) |
CN (1) | CN110047544B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112204536A (zh) * | 2020-08-26 | 2021-01-08 | 长江存储科技有限责任公司 | 在nand闪速存储器设备中的非破坏性模式高速缓存编程 |
CN114255816A (zh) * | 2020-09-25 | 2022-03-29 | 爱思开海力士有限公司 | 半导体存储器设备及其操作方法 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10938419B2 (en) * | 2018-03-16 | 2021-03-02 | SK Hynix Inc. | Encoding method and system for memory device including QLC cells |
US10970165B2 (en) * | 2018-05-03 | 2021-04-06 | SK Hynix Inc. | Encoder and decoder for memory system and method thereof |
US10991409B2 (en) * | 2019-07-19 | 2021-04-27 | SK Hynix Inc. | Encoder for memory system and method thereof |
CN113272902B (zh) * | 2021-03-31 | 2023-02-10 | 长江存储科技有限责任公司 | 使用不同格雷码的编程和读取操作以及用于执行这种操作的存储器件 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5896419A (en) * | 1996-05-27 | 1999-04-20 | Sony Corporation | Communication method and apparatus in which transmission control data stored in memory is selected based on a detected signal quality from a decoder |
TW200739334A (en) * | 2006-01-20 | 2007-10-16 | Marvell World Trade Ltd | Flash memory with coding and signal processing |
CN101405811A (zh) * | 2006-01-20 | 2009-04-08 | 马维尔国际贸易有限公司 | 具有编码和信号处理的闪存 |
US20110246703A1 (en) * | 2010-03-31 | 2011-10-06 | International Business Machines Corporation | Constrained coding to reduce floating gate coupling in non-volatile memories |
US9536600B2 (en) * | 2014-10-22 | 2017-01-03 | International Business Machines Corporation | Simultaneous multi-page commands for non-volatile memories |
US20170371565A1 (en) * | 2016-06-28 | 2017-12-28 | Intel Corporation | Method and apparatus for improving sequential reading in nand flash |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100766042B1 (ko) | 2006-12-06 | 2007-10-12 | 삼성전자주식회사 | 연접 부호화를 이용한 멀티 레벨 셀 메모리 장치 |
US9229804B2 (en) | 2010-08-17 | 2016-01-05 | Technion Research And Development Foundation Ltd. | Mitigating inter-cell coupling effects in non volatile memory (NVM) cells |
US10263639B2 (en) * | 2017-02-07 | 2019-04-16 | Alibaba Group Holding Limited | Managing soft information in high-capacity solid state drive |
US10339343B2 (en) * | 2017-06-06 | 2019-07-02 | Western Digital Technologies, Inc. | Storage system and method for improved generation and storage of data protection information |
-
2019
- 2019-01-04 US US16/240,266 patent/US10846172B2/en active Active
- 2019-01-08 CN CN201910016138.3A patent/CN110047544B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5896419A (en) * | 1996-05-27 | 1999-04-20 | Sony Corporation | Communication method and apparatus in which transmission control data stored in memory is selected based on a detected signal quality from a decoder |
TW200739334A (en) * | 2006-01-20 | 2007-10-16 | Marvell World Trade Ltd | Flash memory with coding and signal processing |
CN101405811A (zh) * | 2006-01-20 | 2009-04-08 | 马维尔国际贸易有限公司 | 具有编码和信号处理的闪存 |
US20110246703A1 (en) * | 2010-03-31 | 2011-10-06 | International Business Machines Corporation | Constrained coding to reduce floating gate coupling in non-volatile memories |
US9536600B2 (en) * | 2014-10-22 | 2017-01-03 | International Business Machines Corporation | Simultaneous multi-page commands for non-volatile memories |
US20170371565A1 (en) * | 2016-06-28 | 2017-12-28 | Intel Corporation | Method and apparatus for improving sequential reading in nand flash |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112204536A (zh) * | 2020-08-26 | 2021-01-08 | 长江存储科技有限责任公司 | 在nand闪速存储器设备中的非破坏性模式高速缓存编程 |
CN112204536B (zh) * | 2020-08-26 | 2024-04-05 | 长江存储科技有限责任公司 | 在nand闪速存储器设备中的非破坏性模式高速缓存编程 |
CN114255816A (zh) * | 2020-09-25 | 2022-03-29 | 爱思开海力士有限公司 | 半导体存储器设备及其操作方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110047544B (zh) | 2023-11-10 |
US20190213074A1 (en) | 2019-07-11 |
US10846172B2 (en) | 2020-11-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107229577B (zh) | 存储系统及其操作方法 | |
CN110444246B (zh) | 用于存储器系统的相邻辅助校正错误恢复及其方法 | |
CN110047544A (zh) | 用于包括qlc单元的存储器装置的编码方法及系统 | |
CN110275796B (zh) | 具有混合解码方案的存储器系统及其操作方法 | |
CN107957959A (zh) | 具有文件级安全擦除的存储器系统及其操作方法 | |
US10991409B2 (en) | Encoder for memory system and method thereof | |
CN110750380B (zh) | 具有奇偶校验高速缓存方案的存储器系统以及操作方法 | |
CN110444240A (zh) | 存储器系统的编码器和解码器及其方法 | |
CN110444242A (zh) | 有基于深度学习的干扰校正能力的存储器系统及操作方法 | |
CN109800178B (zh) | 垃圾收集方法以及用于混合地址映射的存储器系统 | |
CN107977283A (zh) | 具有ldpc解码器的存储器系统及其操作方法 | |
CN111540393B (zh) | 用于基于字线分组的读取操作的存储器系统和方法 | |
CN110277129B (zh) | 用于包括qlc单元的存储器装置的编码方法和系统 | |
CN116153364A (zh) | 估计非参数化最佳读取阈值的系统和方法 | |
CN110277124A (zh) | 具有混合解码方案的存储器系统及其操作方法 | |
US11036579B2 (en) | Decoder for memory system and method thereof | |
US20220011969A1 (en) | Read threshold optimization systems and methods using domain transformation | |
US11217319B2 (en) | Read threshold optimization systems and methods by multi-dimensional search | |
CN115910181A (zh) | 基于预处理条件生成测试多核ssd固件的系统和方法 | |
US20210223974A1 (en) | Memory system for multi-clustering read thresholds and method thereof | |
CN114550785A (zh) | 使用元信息自适应地确定读取阈值电压的系统 | |
CN114255807A (zh) | 以先前读取为条件的读取重试阈值优化系统和方法 | |
CN112216328A (zh) | 具有低复杂度解码的存储器系统及其操作方法 | |
US11520507B1 (en) | System and method for test precondition generation based on factory-formatted state of memory device | |
US11150985B2 (en) | Decoder for memory system and method thereof |
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 |