CN108140407A - 用于读取数据存储设备的软比特技术 - Google Patents
用于读取数据存储设备的软比特技术 Download PDFInfo
- Publication number
- CN108140407A CN108140407A CN201680056511.2A CN201680056511A CN108140407A CN 108140407 A CN108140407 A CN 108140407A CN 201680056511 A CN201680056511 A CN 201680056511A CN 108140407 A CN108140407 A CN 108140407A
- Authority
- CN
- China
- Prior art keywords
- group
- memory
- bit
- soft bit
- soft
- 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
Classifications
-
- 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
- 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/1048—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
-
- 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
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- 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/26—Sensing or reading circuits; Data output circuits
- G11C16/28—Sensing or reading circuits; Data output circuits using differential sensing or reference cells, e.g. dummy cells
-
- 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
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)
- Quality & Reliability (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
数据存储设备包括存储器、第一模块和第二模块。第一模块被配置为对存储在存储器处的数据进行感测,以生成具有第一比特数量的第一软比特组。第二模块被配置为使用第一软比特组来执行操作,以生成具有小于第一比特数量的第二比特数量的第二软比特组。在说明性的实施方式中,第二软比特组与三阶段解码处理结合使用,以对表示数据的硬比特组进行解码。
Description
技术领域
本公开大体上涉及数据存储设备,并且更具体地涉及在数据存储设备的操作期间使用软比特。
背景技术
非易失性存储设备包括闪存设备和其他存储设备。在闪存设备中,存储元件可以被编程为对指示一个或多个比特值的特定阈值电压进行存储。举例来说,特定范围的阈值电压可以对应于逻辑“1”比特值,且另一范围的阈值电压可对应于逻辑“0”比特值。
非易失性存储设备可以使用错误校正技术来提高数据存储和取回的可靠性。例如,可以在将数据存储在存储设备之前对数据进行编码,并且可以在从存储设备读取数据之后对数据进行解码以校正数据中的一个或多个错误(直至错误校正能力,诸如概率错误校正能力)。
某些错误校正技术使用软比特来提高错误校正能力。软比特可以指示从存储元件读取的硬比特的可靠性。作为示例,硬比特可以指示逻辑“0”比特值,并且与该硬比特相对应的软比特可以指示逻辑“0”比特值是相对可靠的(例如,如果反映存储元件状态的读取电压离读取阈值相对较远)或者逻辑“0”比特值是相对不可靠的(例如,如果指示存储元件状态的读取电压与阈值电压目标范围的边界相邻)。软比特可以通过指示数据的哪些比特可能是“不正确的”(例如,由于靠近阈值电压范围的边界)来改善解码处理。
生成和使用软比特消耗存储设备处的资源。例如,可能执行另外的感测操作以生成软比特(与在读取处理期间仅生成硬比特相比)。作为另一示例,将软比特从存储器传送到控制器可能使用***带宽,并且可能减少可用于其他操作的资源,这在某些情况下可能减慢存储器的性能。
附图说明
图1A是包括被配置为使用压缩后的软比特的数据存储设备的***的特定说明性示例的框图;
图1B是示出数据存储设备(例如图1A的数据存储设备)的示例的某些方面的图;
图2是在数据存储设备(例如图1A的数据存储设备)中可包括的解码器的说明性示例的图;
图3是数据存储设备(例如图1A的数据存储设备)的操作方法的说明性示例的流程图;
图4是数据存储设备(例如图1A的数据存储设备)的操作方法的另一说明性示例的流程图;
图5是在数据存储设备(例如图1A的数据存储设备)中可包括的存储器裸片的一部分的说明性实施例的图;
图6是在数据存储设备(例如图1A的数据存储设备)中可包括的存储器裸片的一部分的另一说明性实施例的图。
具体实施方式
数据存储设备可以响应于感测到来自存储器的软比特组(a set of soft bits)而压缩该软比特组,以减少从存储器传送到控制器的信息量。在说明性实施方式中,数据存储设备包括存储器设备(例如,一个或多个存储器裸片),并且存储器设备包括存储器、被配置为在存储器处执行感测处理的第一模块(例如,读/写电路)以及第二模块(例如,一个或多个逻辑门、一组锁存器、一个或多个其他组件,或其组合)。第一模块被配置为对存储在存储器的存储区中的数据进行感测,以生成硬比特组和具有第一比特计数的第一软比特组。例如,第一软比特组可以包括存储区的每个存储元件的一个比特(例如,与每单元单个比特(single-bit-per-cell)的数据存储方案相结合)或存储区的每个存储元件的多个比特(例如,与每单元多个比特(multiple-bits-per-cell)的数据存储方案相结合)。
第二模块被配置为使用第一软比特组来执行操作,以生成具有小于第一比特计数的第二比特计数的第二软比特组。该操作的示例是与(AND)操作(例如,对“0”的第一软比特和“1”的第二软比特进行压缩以生成“0”的压缩后的软比特的与操作)。在这个示例中,使用与操作可以减少从存储器传送到控制器的大量软比特(因为第二比特计数小于第一比特计数)。由于第二软比特组的尺寸小于第一软比特组的尺寸是因为“损失”包含在一个或多个软比特中的不能被取回的信息,所以通过应用上述技术而实现的压缩是“有损压缩”。
第二软比特组可以被提供给数据存储设备的解码器以用于在解码处理中来解码该硬比特组。例如,第二软比特组可以与利用压缩后的软比特的三阶段(三重)解码处理相结合来使用。为了说明,基于低密度奇偶校验(LDPC)ECC的解码器的曲线模型描述可以包括第一节点组(例如,一变量节点组)、第二节点组(例如,一校验节点组)和第三节点组(例如,一压缩后的软比特节点组)。每个节点组可以指示一组值,例如一组对数似然比(LLR)值,并且每个节点组可以向另一节点组提供一组值。三阶段解码方案处理可以至少部分地补偿由于应用有损压缩技术以生成第二软比特组而导致的软比特信息损失。例如,该压缩后的软比特节点组可以更新由该变量节点组提供的一组LLR值,并且例如响应于基于由该变量节点组提供的该组LLR值而估计一群(group)压缩后的软比特中的哪个软比特是不可靠的,可以将更新后的该组LLR值提供给该变量节点组。更新由该变量节点组提供的该组LLR值可以提高解码处理的准确性(例如,通过补偿由于使用有损软比特压缩而导致的软比特信息丢失)。
下面参照附图描述本公开的特定方面。在说明书中,共同的特征用共同的附图标记来指定。如本文所使用的,“示例性”可以指示示例、实施方式和/或方面,并且不应被解释为限制或指示优选例或优选的实施方式。
图1A描绘了***100的说明性示例。***100包括数据存储设备102和存取设备160(例如,主机设备)。
数据存储设备102包括存储器设备103。存储器设备103可以包括一个或多个存储器裸片(例如,一个存储器裸片、两个存储器裸片、八个存储器裸片或另一数量的存储器裸片)。
存储器设备103包括存储器阵列104,例如在存储器裸片中包括的存储元件的非易失性存储器。例如,作为说明性实例,存储器阵列104可包括闪存(例如,NAND闪存)或电阻式存储器,比如电阻性随机存取存储器(ReRAM)。存储器阵列104可具有三维(3D)存储器配置。作为示例,存储器阵列104可以具有3D垂直位线(VBL)配置。在特定的实施方式中,存储器阵列104是具有3D存储器阵列配置的非易失性存储器,其以单片形式形成在具有设置在硅基板上方的有源区的存储器单元阵列的一个或多个物理级中。可选地,存储器阵列104可具有另一配置,例如二维(2D)存储器配置或非单片3D存储器配置(例如,堆叠式裸片3D存储器配置)。
存储器阵列104包括存储元件的一个或多个区,比如存储区106和存储区109。存储区的示例是块,比如在NAND闪存处被激活擦除操作的基本存储器单元,或在ReRAM实施方式中响应于单个命令而被编程的一群基于电阻的存储元件。存储区的另一示例是存储元件的字线(例如,NAND闪存存储元件的字线或基于电阻的存储元件的物理上相邻的存储单元的“指状物(Finger)”)。存储器阵列104的存储区(例如,存储区106和/或存储区109)可以被配置为使用特定数据存储方案来存储数据(例如数据108),例如使用每单元单个比特或每单元多个比特的数据存储方案。为了进一步说明,作为说明性示例,存储区可以具有单级单元(SLC)配置、多级单元(MLC)配置或三级单元(TLC)配置。存储器阵列104的每个存储元件可以被编程到指示一个或多个值的状态(例如,闪存配置中的阈值电压或电阻式存储器配置中的电阻状态)。作为示例,在说明性的TLC方案中,存储元件可以被编程到指示三个值的状态。作为另外的示例,在说明性的MLC方案中,存储元件可以被编程到指示两个值的状态。
存储器设备103可进一步包括耦合到存储器阵列104的第一模块(例如,读/写电路110),以及第二模块,比如压缩后的软比特(CSB)电路118和/或一个或多个锁存器(例如,一组锁存器111,诸如锁存器112、114和116)。在一些实施方式中,可以使用读/写电路110来执行一个或多个CSB操作。存储器阵列104、第一模块和第二模块可以集成在存储器设备103的存储器裸片内。取决于具体实施方式,CSB电路118可以被耦合到以下的一个或多个:存储器阵列104、读/写电路110、锁存器112、114和116中的一个或多个、或存储器设备103和控制器130之间的连接,比如存储器至控制器总线126。CSB电路118可以包括一个或多个逻辑门,例如一个或多个与逻辑门。可替换地或另外地,CSB电路118可以包括一个或多个其他逻辑门,例如一个或多个或(OR)逻辑门、一个或多个异或(XOR)逻辑门、一个或多个反相器(NOT)逻辑门、一个或多个与非(NOT-AND,NAND)逻辑门、一个或多个或非(NOR)逻辑门、一个或多个同或(XNOR)门、一个或多个其他逻辑门,或其组合。在一些实施方式中,CSB电路118(例如,一个或多个逻辑门)可以从存储器设备103中省略,并且参考CSB电路118所描述的操作可以在锁存器112、114和116处执行(例如,使用在锁存器112、114和116处执行的逻辑操作)。
数据存储设备102还可以包括控制器130。控制器130经由诸如总线(例如,存储器至控制器总线126)、无线连接、另一连接或其组合之类的连接,被耦合到存储器设备103。控制器130可以包括错误校正码(ECC)引擎132和接口154(例如,主机接口)。ECC引擎132可以包括一个或多个编码器(例如,编码器134)和一个或多个解码器(例如,解码器136)。在说明性实施方式中,编码器134包括低密度奇偶校验(LDPC)编码器,并且解码器136包括LDPC解码器。可替换地或另外地,ECC引擎132可以包括一个或多个其他编码器或解码器,例如被配置为根据汉明(Hamming)方案、里德-所罗门(Reed-Solomon,RS)方案、博斯-乔赫里-黑姆(Bose-Chaudhuri-Hocquenghem,BCH)方案、涡轮(turbo)方案、一个或多个其他ECC方案或其组合进行操作的编码器或解码器。
在根据本公开的一些实施方式中,ECC引擎132可以存储(或可以被配置为存取)对存储器阵列104的一个或多个结构(例如,物理上相邻的存储元件的一个或多个束,其可以被称为,例如“位线”、“列”、“指状物”、“梳齿(comb)”、“垂直位线”(“VBL”)或任何其他结构,或其组合)进行指示的信息135。信息135可以指示一个或多个“坏”结构,例如一个或多个具有缺陷(例如,中断)的结构。举例来说,ECC引擎132可以被配置为基于从耦合到一结构的存储元件所感测的数据中错误的阈值数量来识别该结构中的缺陷。
解码器136包括基于CSB的对数似然比(LLR)生成器138、第一节点组(例如,变量节点组148)和第二节点组(例如,校验节点组152)。基于CSB的LLR生成器138包括第三节点组140。该第三节点组耦合到该变量节点组148,并且该变量节点组148耦合到该校验节点组152。解码器136可以担当三阶段解码器,比如基于表示LDPC方案的三阶段(或三重)曲线而操作的三重解码器。
在操作期间,控制器130被配置为使用接口154从存取设备160接收数据和指令。例如,控制器130可以经由接口154从存取设备160接收数据162。控制器130可以接收用于从存取设备160利用数据162对存储器阵列104进行写入访问的请求。
ECC引擎132可以被配置为接收数据162。ECC引擎132可以被配置为响应于对写入访问的请求而使用数据162启动编码处理,例如通过将数据162输入到编码器134以生成数据108(例如,基于数据162的一个或多个ECC码字)。控制器130可将数据108发送到存储器设备103,并且存储器设备103可将数据108存储在存储器阵列104处。
控制器130可以将读取命令120发送到存储器设备103以使得读/写电路110对数据108进行感测。例如,控制器130可以响应于接收到来自存取设备160的对读取访问的请求,而将读取命令120发送到存储器设备103。
响应于接收到读取命令120,存储器设备103可以感测存储区106(例如,使用读/写电路110)以生成一个或多个比特组,例如表示数据108的硬比特组172、以及第一软比特组174。第一软比特组174可以指示在对该硬比特组172的解码期间可由解码器136使用的可靠性信息。
为了进一步说明,图1B描绘了说明性数据存储方案190,其表示数据108(上页193、中页194和下页195)到状态(擦除(“Er”)状态、“A”状态、“B”状态、“C”状态、“D”状态、“E”状态、“E”状态和“G”状态)的说明性映射。应该理解的是,尽管数据存储方案190描绘了用于说明的每单元三个比特的方案,但是在其他情况下,可以使用每单元一个比特的数据存储方案、每单元两个比特的数据存储方案、每单元四个比特的数据存储方案或每单元其他数量比特来存储数据108。此外,可替换地或除了页193-195之外,可以使用一个或多个其它逻辑页来存储数据108(例如,使用除了页193-195之外的第四逻辑页,比如与每单元四个比特的数据存储方案相结合)。
该硬比特组172可以表示页193-195、一个或多个其他逻辑页,或其组合。第一软比特组174可以表示页193-195、一个或多个其他逻辑页,或其组合。第一软比特组174可以包括使用“页内(intra-page)”技术来表示单个逻辑页(例如,页193-195中的一个,或另一个逻辑页)的软比特。在该示例中,操作180可以对应于页内压缩操作。可替换地,第一软比特组174可以包括使用“页间(inter-page)”技术来表示多个逻辑页的软比特。在该示例中,可以将多个页存储在单个存储区(例如,存储区106)或多个存储区(例如存储区106、109)处,并且操作180可以对应于页间压缩操作。
在图1B的示例中,可使用第一阈值电压(V1)及使用第二阈值电压(V2)来感测上页193以生成硬比特,例如该硬比特组172。可使用一个或多个其他阈值电压来感测上页193以生成一个或多个软比特,比如第一软比特组174。例如,图1B示出了可以使用第三阈值电压(V1-Δ)及使用第四阈值电压(V1+Δ)来感测上页193,其中增量值Δ指示硬比特感测阈值和软比特感测阈值之间的差。
在一些应用中,存储器设备103可以被配置为执行特定的读取处理,与参考图1B的数据存储方案190所描述的以上说明相比,该特定的读取处理减少用于生成该硬比特组172及第一软比特组174的感测操作的数量。例如,存储器设备103可使用多状态感测技术(例如,通过同时感测存储区106处的多个存储元件阈值电压)、斜坡感测技术(例如,通过在存储区106处“斜升”读取电压(以连续方式增加读取阈值)并通过在预定时间步骤时校验存储器元件是否导电)或另一感测技术来感测存储区106。在一些实施方式中,可以在存储区106处使用非斜坡感测技术,比如通过将不同读取电压的序列施加到存储区106的存储元件(而不是使用斜升读取电压)。
在说明性的实施方式中,使用斜坡感测处理来减少在读取处理期间执行的多个操作(或者减少读取处理的总体持续时间)以生成硬比特组172和第一软比特组174。斜坡感测处理可以被用于与生成第一软比特组174同时地生成该硬比特组172。为了说明,存储器设备103可以包括数字计数器。该数字计数器可以被配置为存储随着读取电压增加而在斜坡感测处理期间递增的数字值(一组比特)。该数字值可以包括指示一个或多个硬比特的一个或多个最高有效比特(MSB),并且还可以包括指示一个或多个软比特的一个或多个最低有效比特(LSB)。应该理解的是,上述示例被提供用于说明,并且可以在存储器设备103处使用一个或多个其他读取处理。
再次参照图1A,CSB电路118可以被配置为使用第一软比特组174来执行操作以生成第二软比特组176。在说明性的实施方式中,CSB电路118包括一个或多个与逻辑门,其被配置为根据有损压缩方案来压缩第一软比特组174以生成第二软比特组176。例如,CSB电路118可以执行操作以基于压缩率r来压缩第一软比特组174,其中r指示第一软比特组174的第一比特数量(在本文中也被称为第一比特计数)与第二软比特组176的第二比特数量(在本文中也被称为第二比特计数)的比率。该操作可以包括按位操作,例如按位与操作、按位或操作,或另一按位操作。
为了说明,如果r等于2,则CSB电路118可以使用第一软比特组174的每两个比特来执行“与”操作,以生成第二软比特组176(其中第二比特计数是第一比特计数的一半)。作为另一示例,如果r等于三,则CSB电路118可以使用第一软比特组174的每三个比特来执行“与”操作,以生成第二软比特组176(其中第二比特计数是第一比特计数的三分之一)。在其他实施方式中,作为说明性示例,可以使用另一操作来生成第二软比特组176,例如按位或操作。
为了进一步说明,图1B描绘了该硬比特组172、第一软比特组174和第二软比特组176的说明性示例。图1B示出了可以使用第一软比特组174来执行操作180(例如,按位与操作),以生成第二软比特组176。在图1B的示例中,操作180是基于r=3来执行的(例如,其中第一软比特组174的每群三个软比特被“压缩”成第二软比特组176的一个特定软比特)。作为特定示例,可以基于第一软比特组174的子集175来生成压缩后的软比特177。在该示例中,压缩后的软比特177的值(“0”)指示使用子集175的执行按位与操作的结果为“0”(即,“1”与“0”与“1”的结果为“0”值)。
再次参照图1A,存储器设备103可具有基于特定应用的特定配置。为了说明,在第一示例中,CSB电路118被耦合到读/写电路110及一个或多个锁存器112-116。在此示例中,CSB电路118被配置为从读/写电路110接收第一软比特组174,并且基于该第一软比特组174将第二软比特组176提供到锁存器112-116中的一个或多个。
在第二示例中,CSB电路118耦合到锁存器112-116中的一个或多个及耦合到存储器设备103和控制器130之间的连接(例如,存储器至控制器总线126)。在此示例中,CSB电路118可以被配置为从锁存器112-116中之一接收该第一软比特组174,并且使用存储器至控制器总线126将第二软比特组176提供到控制器130。
在第三示例中,可以在锁存器112-116处执行软比特操作。在该示例中,可以使用来自控制器130的基于锁存器的命令来使能软比特压缩(例如,通过使用使得存储器设备103在锁存器112-116处执行诸如与操作、或操作或其他逻辑操作的逻辑操作的命令)。取决于特定应用,可以通过不在存储设备103中包括CSB电路118,从而在存储设备103中省略CSB电路118(并且锁存器112-116可以用于执行参考CSB电路所描述的操作,诸如按位与操作),或者CSB电路118可以耦合在锁存器112-116之间(例如,一个或多个与门可以耦合在锁存器112、114之间及在锁存器114、116之间)。
在一些应用中,CSB电路118可以被配置为对指示存储器阵列104的一个或多个“坏”结构的信息(诸如在一些实施方式中,可以存储在存储器阵列104处的信息135)进行存取。CSB电路118可以被配置为,如果从耦合到一个或多个结构的一个或多个存储元件感测到第一软比特组174的一个或多个软比特,则从生成第二软比特组176的操作中排除该一个或多个软比特。
为了进一步说明,再次参考图1B,如果从耦合到特定结构(例如,由信息135识别为“坏”结构的结构)的存储元件感测到子集175的第二个比特(“0”),则可以从操作180中排除子集175的第二个比特。如果从操作180中排除该第二个比特,则压缩后的软比特177的值可以是“1”(即,“1”与“1”的结果为“1”值)。
在使用每单元多个比特的一些实施方式中,软比特的子集可以对应于存储器阵列104的特定存储元件。例如,比如如果子集175的每个比特被包括在页193-195的相应页中,则可以从存储器阵列104的特定存储元件感测子集175的每个比特。在这种情况下,子集175的每个比特可以具有共同比特位置,并且可以存储在存储器阵列104的共同存储元件(单个存储元件)中。为了说明,可以使用上页193、中页194或下页195中的一个来将子集175的第一比特存储在共同存储元件处,可以使用上页193、中页194或下页195中的另一个来将子集175的第二比特存储在共同存储元件处,并且可以使用上页193、中页194或下页195中的另一个来将子集175的第三比特存储在共同存储元件处。因此,第一软比特组174可以包括从存储区106的单个存储元件感测到的多个软比特。
可替换地或另外地,第一软比特组174可以包括从存储区106感测到的一个或多个软比特,并且还可以包括从另一个区、比如从存储区106的相邻区或者从存储区106的非相邻区感测到的一个或多个软比特。例如,第一软比特组174可以包括从存储区109感测到的一个或多个软比特,该存储区109可以对应于存储区106的“相邻”区(例如,邻近的存储区)。从相邻区感测一个或多个软比特可以使得能够检测由于存储区106处的交叉耦合或干扰效应(例如,写入干扰效应)而导致的一个或多个错误。作为特定的非限制的说明性示例,可以从存储区106的特定存储元件感测子集175的第一比特,可以从存储区109的对应存储元件感测子集175的第二比特,并且可以从存储区106的特定存储元件、从存储区109的对应存储元件或从另一存储区(例如,存储区106的另一相邻区)的对应存储元件感测子集175的第三比特。
CSB电路118可以被配置为选择子集175的比特用于按位操作。在说明性示例中,压缩率r可以等于每个单元所存储的比特数量。在操作180和数据存储方案190的示例中,压缩率r和每个单元所存储的比特数量等于三。在其他情况下,压缩率r和/或每个单元所存储的比特数量可以是另一数字。在特定的说明性示例中,感测处理(例如,斜坡感测处理)可生成对应于页193-195中每一个的三个软比特组(例如,第一软比特组174),并且该三个软比特组可以存储在锁存器112-116处。可执行基于锁存的操作(例如,可以由控制器130启动的按位与操作),以将该三个软比特组压缩成单个软比特组(例如,第二软比特组176)。
再次参照图1A,取决于特定的实施方式,压缩率r可以是由CSB电路118实现的“默认”比率。可替换地或另外地,控制器130可以向存储器设备103提供指定压缩率r的指示(例如,指示122)。指示122可以指定压缩率r、在感测数据时要生成的每个存储元件的软比特数量、或者一个或多个增量值(例如,增量值Δ,这可以表示为压缩率r的函数)中的一个或多个。例如,尽管图1B的数据存储方案190指示使用第三阈值电压(V1-Δ)和第四阈值电压(V1+Δ)来感测每个存储元件的两个软比特,但是在其他情况下,每个存储元件可以生成不同数量的软比特(例如,作为说明性示例,每个存储元件四个软比特,比如使用第五阈值电压(V1+2Δ)和第六阈值电压(V1-2Δ))。控制器130可以利用读取命令120或结合另一命令向存储器设备103提供指示122。
控制器130可以从CSB电路118接收该硬比特组172和第二软比特组176。控制器130可以将该硬比特组172和第二软比特组176输入到解码器136以启动解码处理,该解码处理使用第二软比特组176对该硬比特组172进行解码。例如,基于CSB的LLR生成器138可以基于硬比特组172及第二软比特组176来生成第一组LLR值141。第一组LLR值141可以指示与该硬比特组172相关联的可靠性。例如,第一组LLR值141的特定值可以指示该硬比特组172的一个比特具有逻辑“0”值(例如,如果特定值为正)或逻辑“1”值(例如,如果特定值为负)的可能性。
在解码处理的特定示例中,第一组LLR值141是作为压缩率r值的函数而生成的。例如,第一组LLR值141可以指示硬比特组172中每个硬比特(该硬比特具有在第二软比特组176中具有逻辑“0”值的对应的软比特)的预期错误概率,其中每个预期错误概率根据以下确定:
在该示例中,PH指示与硬比特组172中的硬比特——该硬比特具有在第二软比特组176中具有逻辑“0”值的对应的压缩后的软比特——相关联的可靠性(例如,预期错误概率),PL指示与硬比特组172中的硬比特——该硬比特具有在第二软比特组176中具有逻辑“1”值的对应的压缩后的软比特——相关联的可靠性(例如,预期错误概率),并且PL<PH。
此外,α指示该硬比特组172中不可靠的硬比特与该硬比特组172中的可靠的硬比特的分数比(fraction)。
在此示例中,解码处理可以使用双重解码技术。在另一个实施方式中,解码处理可以使用三重解码技术。结合三重解码技术,基于CSB的LLR生成器138可以被配置为根据以下生成第一组LLR值141:
sign(HBv)∈{-1,1}
在该示例中,Psv指示第一组LLR值141,PL指示与关联于等于1的软比特的存储元件相关联的比特错误率(BER),HBv指示该硬比特组172中的硬比特,CSB指示第二软比特组176中的压缩后的软比特,并且PA基于以下来确定:
PA=q*PH+(1-q)*PL
该变量节点组148可以部分地基于第一组LLR值141来生成第二组LLR值142。例如,该变量节点组148可以执行由奇偶校验矩阵、比如LDPC奇偶校验矩阵指定的变量节点处理,以生成第二组LLR值142。该变量节点组148可以被配置为根据由LDPC奇偶校验矩阵的列的组所指定的奇偶等式组来执行计算,以生成第二组LLR值142。该变量节点组148可以将第二组LLR值142提供给该校验节点组152(例如,使用可变到校验(variable-to-check)消息)。在说明性实施方式中,可变节点组148可以被配置为根据以下来生成第二组LLR值142:
在该示例中,Qvc对应于第二组LLR值142。该校验节点组152可以部分地基于第二组LLR值142来生成第三组LLR值143。例如,该校验节点组152可以根据诸如LDPC奇偶校验矩阵之类的奇偶校验矩阵来执行校验节点处理,以基于第二组LLR值142生成第三组LLR值143。校验节点组152可以被配置为根据由LDPC奇偶校验矩阵的行的组所指定的奇偶等式组来执行计算,以生成第三组LLR值143。该校验节点组152可将第三组LLR值143提供给变量节点组148(例如,使用校验到变量消息)。在说明性的实施方式中,可变节点组148可被配置为根据以下生成第三组LLR值143:
在该示例中,Rcv对应于第三组LLR值143,并且指示软异或(XOR)操作。该变量节点组148可以部分地基于第二组LLR值142来生成第四组LLR值144。例如,该校验节点组152可以根据诸如LDPC奇偶校验矩阵之类的奇偶校验矩阵来执行校验节点处理,以基于第三组LLR值143来生成第四组LLR值。该变量节点组148可以将第四组LLR值144提供给第三节点组140。在说明性的实施方式中,变量节点组148可以被配置为根据以下来生成第四组LLR值144:
基于CSB的LLR生成器138可以被配置为从变量节点组148接收第四组LLR值。基于CSB的LLR生成器138可以部分地基于第四组LLR值来生成“更新后的”可靠性信息。例如,基于CSB的LLR生成器138可以生成第五组LLR值(例如,第一组LLR值141的更新后版本)。为了生成第五组LLR值,基于CSB的LLR生成器138可以被配置为基于与该变量节点组148中的特定变量节点相对应的硬比特值、基于特定的压缩后的软比特值(例如,作为说明性示例,图1B的压缩后的软比特177)、以及基于通过与压缩后的软比特值相对应的变量节点组148中的特定群组(例如,子集)而生成的一个或多个值,来更新第一组LLR值141的特定值,如参考图2所进一步描述的。
基于CSB的LLR生成器138被配置为向该变量节点组148提供第五组LLR值。在一些实施方式中,第一组LLR值141和第四组LLR值144可以在解码处理的多次解码迭代期间仅被更新一次。在这种情况下,第二组LLR值142和第三组LLR值143可以比第一组LLR值141和第四组LLR值144更频繁地被更新。在其他实施方式中,第一组LLR值141和第四组LLR值144可以在解码处理的每个解码迭代时被更新。
该变量节点组148可以基于第五组LLR值执行变量节点处理,以生成第六组LLR值(例如,第二组LLR值142的更新后版本)。该变量节点组148可以将第六组LLR值提供给该校验节点组152。解码器136的操作可以继续,直到解码操作收敛以生成有效码字(例如,通过生成各组LLR值并且通过基于各组LLR值更新硬比特组172的比特值,直到硬比特组172满足由LDPC奇偶校验矩阵指示的奇偶校验条件)或解码操作“超时”而没有收敛以生成有效码字。
在一些情况下,如果解码操作不收敛以生成有效码字,则控制器130可以从存储器设备103请求另外的信息(例如,以便于解码操作的重试)。例如,控制器130可将消息124发送到存储器设备103,并且消息124可以指示存储器设备103将使用压缩率r的另一值来生成另一软比特组,例如通过使用r=2来生成第三软比特组178。第三软比特组具有小于第一软比特组174的第一比特计数的第三比特数量(在本文中也称为第三比特计数)。
在一些实施方式中,消息124可以指示压缩率r的值(例如,r=3,r=2或另一压缩率(包括r=1的直接情况→其中不进行压缩)。例如,在一些情况下,消息124可以包括指示122。在其他实施方式中,消息124可以不指示压缩率r的值。例如,CSB电路118可以被配置为使压缩率r的值递减(例如,作为说明性示例,响应于接收到消息124,从r=3到r=2或从r=2到r=1)。在一些实施方式中,压缩率r可以具有非整数值。例如,如果第一软比特组174包括被压缩以生成压缩后的软比特的三个软比特的群(如参考操作180所述的,其中r=3),并且还包括被压缩以生成压缩后的软比特的两个软比特的群(在此示例中包括相同数量的存储元件),则压缩率r的值可以等于2.5。
可替换地,可以将压缩率设置为任何其他值(对于r>1)。例如,可以根据群尺寸与不同压缩率(“r”)值的关系来设置压缩率(例如,如果要从多个存储区中感测软比特,其中每个存储区与相应的压缩率相关联,并且如果r的值是基于与多个存储区相关联的压缩率的平均值)。在一些实施方式中,如果在感测处理期间要感测相对大量的存储元件,或者,如果要使用感测处理来生成相对大量的软比特以便减少从存储器设备103传送到控制器130的信息量,则r可以增大。
为了进一步说明,再次参考图1B,图1A的CSB电路118可以基于第一软比特组174来执行操作182,以生成第三软比特组178。例如,可以使用第一软比特组174的比特1和比特2(“1”和“0”)来执行按位与操作,以生成第三软比特组的比特1(“0”)。作为另一示例,可以使用第一软比特组174的比特3和比特4(“1”和“1”)来执行按位与操作,以生成第三软比特组178的比特2(“1”)。取决于特定的实施方式,可以响应于接收到消息124重新感测第一软比特组174,或者可以从锁存器112-116中之一存取第一软比特组174(例如,如果第一软比特组174在锁存器112-116中之一处还没有被重写)。
因此,操作(例如,操作180或操作182)可以包括基于未压缩的软比特组(例如,第一软比特组174)来生成压缩后的软比特(例如,第二软比特组176或第三软比特组178)。可替换地或另外地,可以执行包括基于压缩后的软比特组来生成压缩后的软比特组的操作。为了说明,图1B描绘了可基于第二软比特组174来执行操作184。在操作184的示例中,第二软比特组174的子集(“00,”“01,”“11,”“01,”和“11”)可被压缩以生成第四软比特组179(“0,”“0,”“1,”“0,”和“1”)。在此示例中,r=2。应当理解的是,在其他示例中,r可以具有不同的值和/或可以使用不同的压缩后的软比特组来执行操作(例如,作为说明性的示例,使用第三软比特组178)。
可替换地或另外地,可以使用带有一个或多个(压缩后的或未压缩的)软比特组、比如软比特组174、176和178中的任何一个的一个或多个硬比特组(例如,硬比特组172)来执行压缩操作。作为示例,可以使用操作186对硬比特组172和第一软比特组174进行压缩(例如,使用与操作)以生成“混合”比特组188。在此示例中,操作可以包括:将该硬比特组172中的一个或多个硬比特与第一软比特组174中的一个或多个软比特进行压缩,以生成该混合比特组188中的一个或多个比特。
再次参照图1A,控制器130可将第三软比特组178输入到解码器136以启动另一解码操作以解码该硬比特组172。使用第三软比特组178的解码可以如参考使用第二软比特组176的解码所述的那样来执行。解码器136的操作可以继续,直到解码操作收敛以生成有效码字为止(例如,通过生成各组LLR值,直到满足由LDPC奇偶校验矩阵指示的奇偶条件),或解码操作“超时”而没有收敛以生成有效码字。在一些情况下,控制器130可以从存储器设备103请求“全”软比特组(例如,通过响应于解码失败而请求第一软比特组174)。
在一些实施方式中,基于CSB的LLR生成器138被配置为对信息135进行存取以识别从一个或多个“坏”结构感测到的数据。为了说明,如果从由信息135识别的“坏”结构感测到该硬比特组172的特定比特173,则基于CSB的LLR生成器138可以“覆盖(override)”第二软比特组176中的一个或多个相对应的压缩后的软比特,以指示特定比特173的低可靠性,例如通过“强制”图1B的压缩后的软比特177的值为零(或指示低可靠性的另一值)。
取决于具体实施方式,可以自动地或“根据需要”来生成未压缩的软比特和/或压缩后的软比特。例如,可以响应于命令120而自动地在存储器设备103处生成第二软比特组176。在另一示例中,控制器130可以在请求第二软比特组176、第三软比特组178和/或第四软比特组179之前使用该硬比特组172(或使用该硬比特组172和第一软比特组174)来执行解码处理(例如,通过向存储器设备103发送另一命令)。在此示例中,控制器130可以基于使用硬比特组172、第一软比特组174、第二软比特组176、第三软比特组178、第四软比特组179、混合比特组188或另一软比特组中的任何比特组的解码处理的解码失败,而请求第二软比特组176、第三软比特组178、第四软比特组179和/或混合比特组188(或另一比特组)中的任何比特组。可替换地或另外地,控制器130可以基于另一指示(例如,数据的BER或估计的BER超过阈值BER,或解码处理的持续时间超过阈值持续时间),而请求第二软比特组176、第三软比特组178、第四软比特组179和/或混合比特组188(或另一比特组)中的任何比特组。
在说明性实施方式中,硬比特组172表示多个逻辑页(例如,页193-195中的两个或更多个和/或一个或多个其他逻辑页),第一软比特组174表示多个逻辑页的子集(例如,一个逻辑页),并且多个逻辑页中的特定逻辑页的未压缩的表示被提供给控制器130以对该硬比特组172进行解码。该特定逻辑页与其他多个逻辑页中的每一个相比,可以与更高BER的相关联。为了说明,在数据存储方案190的示例中,作为与上页193和下页195相比在状态之间包括更多比特转换的结果,中页194可以相比于上页193和下页195与更高的BER相关联。在特定的非限制性示例中,该硬比特组172可以表示多个逻辑页中的每一个(例如,页193-195),第一软比特组174可以表示逻辑页的子集(例如,上页193和下页195),并且剩余页(例如,中页194)的未压缩的表示可以被提供给控制器130以补偿中页194的较高BER。在此示例中,可以压缩第一逻辑页(例如,上页193)和第二逻辑页(例如,下页195)而不压缩另一逻辑页(例如中页194)。应该理解的是,前面的示例是说明性的。例如,可以使用除了数据存储方案190的示例之外的一个或多个数据存储方案。
参照图1A和1B所描述的示例可以提高数据存储设备102处的性能。例如,通过压缩第一软比特组174以产生第二软比特组176,可以将较少的信息从存储器设备103发送到控制器130,从而减少存储器设备103与控制器130之间的连接(例如,存储器至控制器总线126)处的拥塞。在一些情况下,压缩第一软比特组174以生成第二软比特组176可使用由数据存储设备102使用的时钟信号的一个或多个时钟周期。
图2描绘与解码器、比如图1的解码器136相关联的某些说明性方面。图2示出解码器136包括第三节点组140、变量节点组148和校验节点组152。
第三节点组140包括压缩后的软比特节点(CSBN)组,比如代表性的CSBN 202。第三节点组140中的每个CSBN可以连接到该变量节点组148中的一个或多个变量节点(VN),例如代表性的VN 204。变量节点组148中的每个VN可以连接到校验节点组152中的一个或多个校验节点(CN),例如代表性的CN 206。
变量节点组148、校验节点组152、以及变量节点组148与校验节点组152之间的连接可以对应于奇偶校验矩阵,例如LDPC奇偶校验矩阵。例如,变量节点组148中包括的多个VN可以对应于奇偶校验矩阵中的多个列,并且校验节点组152中包括的多个CN可以对应于奇偶校验矩阵中的多个行。作为另一个示例,来自变量节点组148中每个VN的连接可以对应于奇偶校验矩阵的相应列,并且来自该组校验节点152中每个CN的连接可以对应于奇偶校验矩阵的相应行。变量节点组148和校验节点组152可对应于两阶段(或二重)曲线(例如,由奇偶校验矩阵指定的奇偶等式的曲线表示)。
在图2的示例中,第三节点组140中的每个CSBN对应于压缩率r=3。例如,图2中的每个CSBN连接到变量节点组148中的三个VN(例如,CSBN202连接到变量节点组148的变量节点的群208)。为了进一步说明,第三节点组140可以与第二软比特组176(其基于r=3而生成)结合使用。在其他实施方式中,可以使用不同值的压缩比r。参考解码器136所描述的组件可以使用硬件(例如,逻辑门)、处理器(例如,集成在控制器130内的微控制器)可执行的指令(例如,固件)或其组合来实现。
在操作期间,解码器136可以根据置信传播方案来运行。例如,第三节点组140中的每个CSBN可以将第一组LLR值141的相应值提供给该变量节点组148中的一个或多个VN,并且该变量节点组中的每个VN可以将第二组LLR值142的相应值提供给该校验节点组152中的一个或多个CN。
校验节点组152中的每个CN可以将第三组LLR值143的相应值提供给变量节点组148中的一个或多个VN,并且变量节点组148中的每个VN可以将第四组LLR值144的相应值提供给第三节点组140中的一个或多个CSBN。第三节点组140中的每个CSBN可以将第五组LLR值的相应值提供给变量节点组148中的一个或多个VN。为了生成第五组LLR值,第三节点组140中的每个CSBN可以被配置为基于与该变量节点组148中的特定变量节点相对应的硬比特值、基于特定的压缩后的软比特值、以及基于通过与压缩后的软比特值相对应的变量节点组148的特定群(例如,子集)而生成的一个或多个值,来更新图1A的第一组LLR值141的特定值。
为了说明,在迭代解码处理期间,CSBN 202可以被配置为基于与变量节点组148中的特定变量节点相对应的硬比特组172中的硬比特,比如对应于VN 204的硬比特,来更新第一组LLR值141的特定值。CSBN 202还可以被配置为进一步基于与包括VN 204的变量节点的群208相对应的特定的压缩后的软比特,来更新第一组LLR值141的特定值。作为说明性的示例,特定的压缩后的软比特可以对应于图1B的压缩后的软比特177(并且变量节点的群208可以对应于图1B的第一软比特组174的子集175)。CSBN 202还可以被配置为进一步基于由群208先前提供的消息(例如,基于第四组LLR值144的值的子集和/或在解码过程期间从群208向CSBN 202先前提供的一个或多个其他值)来更新第一组LLR值141的特定值。相应地,解码处理可以包括基于在解码处理期间由变量节点组148提供的一个或多个消息来更新第三节点组140处的LLR。
图2示出了解码器136可以使用利用三组节点的三重技术来运行。通过使用第三节点组140来更新由变量节点组148生成的LLR值(例如,通过基于第四组LLR值来生成第五组LLR值),解码处理在可以使用压缩后的软比特,同时还实现了高错误校正能力(例如,通过在解码处理的多次迭代期间利用第三节点组140来更新LLR值,而不是使用两阶段解码处理)。
参考图3,描绘了设备操作方法的特定说明性示例,并且将其总体指定为300。方法300可以在包括控制器的数据存储设备中执行,该控制器耦合到包括存储器的存储器设备,比如图1A的数据存储设备102、控制器130、存储器设备103和存储器阵列104。
在302处,方法300包括响应于从控制器接收到读取命令而感测存储在存储器处的数据,以生成具有第一比特计数的第一软比特组。例如,可以由读/写电路110响应于读取命令120而对数据108进行感测,以生成第一软比特组174。
在304处,方法300还包括使用第一软比特组来执行操作,以生成具有小于第一比特计数的第二比特计数的第二软比特组。例如,CSB电路118可以基于第一软比特组174来生成第二软比特组176,比如通过使用第一软比特组174的比特来执行按位操作(例如,按位与操作、按位或操作、或另一操作)。按位操作可以对应于操作180。取决于特定的实施方式,第一软比特组174可以被存储在图1A的存储器阵列104处,或者可以使用CSB电路118将其直接传送到第二软比特组176中。
在306处,方法300还包括将第二软比特组提供给控制器。例如,存储器设备103可以使用锁存器112-116中的任一个将第二软比特组176提供给控制器130。
如参照图3的方法300所述的对第一软比特组进行压缩以生成第二软比特组可以减少经由诸如图1A的存储器至控制器总线126之类的连接所传送的信息量。减少使用连接所传送的信息量可以增加可用于一个或多个其他操作的***带宽,增加***吞吐量并增强性能。此外,可以使用压缩后的软比特来执行特定的解码处理。参考图4描述可以使用压缩后的软比特的解码处理的示例。
参照图4,描绘了设备的操作方法的特定说明性示例,并且将其总体指定为400。方法400可以在包括被耦合到存储器设备的控制器的数据存储设备中执行,比如图1A的数据存储设备102、控制器130和存储器设备103。在说明性的示例中,响应于执行图3的方法300(例如,使用以图3的方法300生成的第二软比特组)而执行方法400。方法400在解码处理期间被执行,以解码从存储器感测到的数据,比如用以对表示数据的硬比特组进行解码的三阶段解码处理(例如,由解码器136执行以对硬比特组172解码的解码处理)。
在402处,方法400包括基于第一组值从校验节点组向变量节点组提供第二组值。例如,变量节点组可对应于变量节点组148,校验节点组可对应于校验节点组152,第一组值可对应于第二组LLR值142,并且第二组值可对应于第三组LLR值143。
在404处,方法400还包括将基于第二组值的第三组值提供给不同于该变量节点组和该校验节点组的第三节点组。例如,第三节点组可以对应于第三节点组140,并且第三组值可以对应于第四组LLR值144。
在406处,方法400还包括基于第三组值来更新与压缩后的软比特组相对应的、指示从存储器感测到的数据可靠性的第四组值。例如,第四组值可以对应于第一组LLR值141(其可以基于第二软比特组174生成,并且可以指示硬比特组172的可靠性)。取决于特定实施方式,第四组值可以在解码处理的每次解码迭代时被更新一次,或在解码处理的每多次解码迭代时被更新一次。
方法400可以可选地包括,在将第一组值提供给校验节点组之前,基于压缩后的软比特组生成第四组值(例如,基于第二软比特组176生成第一组LLR值141)并且将该第四组值提供给该变量节点组以使得该变量节点组能够生成第一组值(例如,以使得该变量节点组148能够生成该第二组LLR值142)。
图4的示例说明解码器(例如,解码器136)可以使用利用三个节点组的三重技术来运行。通过使用三组节点,解码处理在使用压缩后的软比特,同时还实现高错误校正能力(例如,通过利用第三节点组140在解码处理的多次迭代期间更新LLR值,而不是使用两阶段解码处理)。
图5和图6示出了单片3D存储器配置的某些示例。应该理解的是,提供图5和图6是为了说明,并且其他实施方式可以利用一个或多个其他配置,作为说明性的示例,比如图1的存储器设备103的平面存储器配置或图1A的存储器设备103的堆叠式裸片存储器配置。
图5示出了具有NAND快闪配置的存储器裸片500的一部分。存储器裸片500可以被包括在图1A的数据存储设备102中。例如,存储器裸片500可以对应于存储器设备103或可以被包括在图1的存储器设备103中。存储器裸片500可以耦合到图1A的控制器130。
存储器裸片500可以包括读/写电路504(例如读/写电路110)和一个或多个锁存器,比如锁存器505,该一个或多个锁存器可以对应于锁存器112-116中的任一个。存储器裸片500还包括CSB电路118。
存储器裸片500包括多个物理层,诸如物理层590的群。多个物理层单片地形成在诸如硅基板的基板594之上。诸如代表性的存储器单元510之类的存储元件(例如,存储器单元)以阵列布置在物理层中。
代表性的存储器单元510包括在字线/控制栅极(WL4)528与导电沟道512之间的电荷俘获结构514。电荷可经由导电沟道512相对于字线528的偏置而被注入电荷俘获结构514中或从其中排出。例如,电荷俘获结构514可以包括氮化硅,并且可以通过诸如氧化硅之类的栅极电介质而与字线528和导电沟道512分离。电荷俘获结构514中的电荷量影响在存储器单元510的读取操作期间经过导电沟道512的电流量,并且指示存储在存储器单元510中的一个或多个比特值。
存储器裸片500包括多个擦除块,包括第一块(块0)550、第二块(块1)552和第三块(块2)554。块550-554中的每个包括物理层590的“垂直切片”,其包括被图示为第一字线(WL0)520、第二字线(WL1)522、第三字线(WL2)524、第四字线(WL3)526和第五字线(WL4)528的字线的堆叠。字线520-528中的任一个可对应于图1A的存储区106。多个导电沟道(相对于图5具有基本上垂直的取向)延伸穿过字线的堆叠。每个导电沟道耦合到每个字线520-528中的存储元件,形成存储元件的NAND串。图5示出了三个块550-554,每个块中有五个字线520-528以及每个块中有三个导电沟道,以便于说明的清楚性。然而,存储器裸片500可以具有多于三个块,每个块多于五个字线,并且每个块多于三个导电沟道。
读/写电路504经由多条导线耦合到导电沟道,该多条导线图示为在导电沟道的“顶”端(例如,远离基板594)的第一位线(BL0)530、第二位线(BL1)532和第三位线(BL2)534。读/写电路504还经由多个源极线、比如经由在导电沟道的“底”端(例如,更靠近基板594或在基板594内)的第一源极线(SL0)540、第二源极线(SL1)542和第三源极线(SL2)544耦合到导电沟道。读/写电路504被图示为经由“P”控制线耦合到位线530-534,经由“M”控制线耦合到源极线540-544,并且经由“N”控制线耦合到字线520-528。基于存储器裸片500的特定配置,P、M和N中的每一个可以具有正整数值。在图5的说明性示例中,P=3,M=3,N=5。
在特定的实施例中,位线中的每一个及源极线中的每一个可耦合到不同导电沟道的相同端(例如,顶端或底端)。例如,特定的位线可以耦合到导电沟道592的顶部,并且特定的源极线可以耦合到导电沟道512的顶部。导电沟道592的底部可以耦合(例如电耦合)到导电沟道512的底部。相应地,导电沟道592和导电沟道512可以串联耦合并且可以耦合到特定的位线和特定的源极线。
在操作中,比如响应于从控制器130接收到命令,存储器裸片500可以执行写入操作和读取操作。对于写入操作,数据(例如,数据108)可以存储在锁存器505处。
读/写电路504可以被配置为对锁存器505中的数据进行存取,并且基于由特定命令指示的一个或多个写入参数将数据编程到存储器裸片500的存储元件。例如,读/写电路504可以被配置为将选择信号施加到控制线,该控制线耦合到字线520-528、位线530-534及源极线540-542,以使得编程电压(例如,电压脉冲或电压脉冲序列)被施加到所选字线(例如,作为说明性示例,字线528)的一个或多个所选存储元件两端。
读/写电路504可以被配置为对存储在存储器裸片500处的数据进行存取以生成该数据的表示(例如,硬比特组和软比特组)。例如,存储器裸片500可以使用读/写电路504来感测存储器裸片500的存储元件以生成该数据的表示,并且可以将该数据的表示提供给控制器130(例如,经由锁存器505)。在说明性示例中,读/写电路504被配置为将第一软比特组174提供给锁存器505,并且CSB电路118被配置为对第一软比特组174进行存取并基于该第一软比特组174生成第二软比特组176。CSB电路118可以被配置为经由锁存器505、经由另一锁存器或使用其他技术来将第二软比特组176提供给控制器130。
图5的示例示出了压缩后的软比特技术可以与3D存储器结合使用。3D存储器可以增加数据存储设备(例如,图1A的数据存储设备102)处的数据存储密度。
图6示出了具有ReRAM配置的存储器裸片600的一部分。存储器裸片600可以被包括在图1A的数据存储设备102中。例如,存储器裸片600可以对应于图1A的存储器设备103或可以被包括在存储器设备103内。存储器裸片600可以耦合到图1A的控制器130。
存储器裸片600可以包括读/写电路604和CSB电路118。在图6的示例中,存储器裸片600包括垂直位线(VBL)ReRAM,多个导线在基板(例如,基本上平行于基板的表面)以上的物理层中,比如代表性的字线620、621、622和623(在图6中仅示出其一部分)。字线620-623中的任一个可以对应于图1A的存储区106。VBL ReRAM还包括穿过物理层的多个垂直导线,比如代表性的位线610、611、612和613。字线622可以包括或对应于第一群物理层,并且字线620、621可以包括或对应于第二群物理层。
存储器裸片600还包括多个基于电阻的存储元件(例如,存储器单元),比如代表性的存储元件630、631、632、640、641和642。存储元件630、631、632、640、641和642中的每一个耦合到(或关联于)在基板(例如,硅基板)上的多个物理层中的存储器单元的阵列中的位线和字线。
在图6的示例中,每个字线包括多个指状物。为了说明,字线620包括指状物624、625、626和627。每个指状物可以耦合到多于一条位线。例如,字线620的指状物624经由在指状物624的第一端处的存储元件630耦合到位线610,并且指状物624经由在指状物624的第二端处的存储元件640进一步耦合到位线611。
在图6的示例中,每条位线可以耦合到多于一条字线。为了说明,位线610经由存储元件630耦合到字线620,并且位线610经由存储元件632进一步耦合到字线622。
在操作中,比如响应于接收到来自图1A的控制器130的命令,存储器裸片600可以执行写入操作和读取操作。对于写入操作,图1A的控制器130可以从图1A的存取设备160接收数据。控制器130可以向存储器裸片600发送命令以使得存储器裸片600启动写入操作。控制器130可以发送要在存储器裸片500的存储元件处写入的数据。
读/写电路604可以被配置为将数据编程到与该数据的目的地对应的存储元件。例如,读/写电路604可将选择信号施加到耦合到字线驱动器608及位线驱动器606的选择控制线,以使得写入电压被施加到存储器裸片600的所选的存储元件上。作为说明性的示例,为了选择存储元件630,读/写入电路604可以激活字线驱动器608和位线驱动器606以驱动编程电流(也被称为写入电流)经过存储元件630。为了说明,可以使用第一写入电流来将第一逻辑值(例如,对应于高电阻状态的值)写入到存储元件630,并且可以使用第二写入电流来将第二逻辑值(例如,对应于低电阻状态的值)写入到存储元件630。可以通过将第一电压施加到位线610以及除了字线620之外的字线并通过将第二电压施加到字线620而在存储元件630上生成编程电压,来施加编程电流。在特定实施例中,第一电压被施加到其他位线(例如,位线614、615),以减小存储器裸片600中的泄漏电流。
对于读取操作,控制器130可以从诸如图1A的存取设备160的主机设备接收请求。控制器130可以向存储器裸片600发出指定存储器裸片600的一个或多个物理地址、比如与存储要被感测的数据的存储器裸片600的位置相对应的一个或多个物理地址的命令。
存储器裸片600可以使得读/写电路604从存储器裸片600的特定存储元件读取比特,比如通过将选择信号施加到耦合到字线驱动器608和位线驱动器606的选择控制线以使得读取电压被施加在所选存储元件上。例如,为了选择存储元件630,读/写电路604可以激活字线驱动器608和位线驱动器606以将第一电压(例如,0.7伏(V))施加到位线610及除了字线620之外的字线。低电压(例如,0V)可以被施加到字线620。因此,读取电压被施加到存储元件630上,并且与读取电压相对应的读取电流可以在读/写电路604的感测放大器处被检测到。读取电流(经由欧姆定律)对应于存储元件630的电阻状态,该电阻状态对应于存储在存储元件630处的逻辑值。
在说明性示例中,读/写电路604被配置为向CSB电路118提供第一软比特组174,并且CSB电路被配置为基于第一软比特组174生成第二软比特组176。CSB电路118可以被配置为将第二软比特组176提供给图1A的控制器130。
图6的示例示出了压缩后的软比特技术可以与具有ReRAM配置的3D存储器结合使用。3D存储器可以增加数据存储设备(例如,图1A的数据存储设备102)处的数据存储密度。
尽管本文描述的CSB电路118和某些其他组件被图示为块组件并且以一般术语描述,但是这些组件可以包括被配置为使得数据存储设备102(或者一个或多个其组件)能够执行本文所述的操作的一个或多个微处理器、状态机和/或其他电路。本文描述的组件可以使用一个或多个节点、一个或多个总线(例如,数据总线和/或控制总线)、一个或多个其他结构或其组合而在操作上彼此耦合。本文描述的一个或多个组件可以包括一个或多个物理组件,比如硬件控制器、状态机、逻辑电路、一个或多个其他结构或其组合,以使数据存储设备102能够执行本文所述的一个或多个操作。
可替换地或另外地,数据存储设备102的一个或多个方面可以使用被编程(例如,通过执行指令)以执行本文所述的操作、比如方法300的一个或多个操作、方法400的一个或多个操作或其组合的微处理器或微控制器。在特定实施例中,数据存储设备102包括执行从存储器阵列104取回的指令(例如,固件)的处理器。可替换地或另外地,由处理器执行的指令可以从不是存储器阵列104的一部分的单独存储器位置、比如只读存储器(ROM)被取回。
应该理解的是,本文所述的由控制器130执行的一个或多个操作可以在存储器设备103处执行。作为说明性示例,替代地或除了在控制器130处执行存储器内ECC操作(例如,编码操作和/或解码操作)之外,可以在存储器设备103处执行这些操作。
数据存储设备102可以耦合到、附接到一个或多个存取设备或嵌入在一个或多个存取设备内,壁如在存取设备160的外壳内。例如,数据存储设备102可以嵌入在符合联合电子器件工程委员会(JEDEC)固态技术协会通用闪存(UFS)配置的存取设备160内。为了进一步说明,数据存储设备102可以集成在电子设备(例如,存取设备160)内,比如移动电话、计算机(例如,膝上型计算机、平板机或笔记本计算机)、音乐播放器、视频播放器、游戏设备或控制台、电子书阅读器、个人数字助理(PDA)、便携式导航设备或使用内部非易失性存储器的其他设备内。
在一个或多个其他实施方式中,数据存储设备102可以实现在被配置为选择性地耦合到一个或多个外部设备、比如主机设备的便携式设备中。例如,数据存储设备102可以从存取设备160中移除(即,“可移除地”耦合到存取设备160)。作为示例,数据存储设备102可以根据可移除通用串行总线(USB)配置而可移除地耦合到存取设备160。
存取设备160可对应于移动电话、计算机(例如,膝上型计算机,平板机或笔记本计算机)、音乐播放器、视频播放器、游戏设备或控制台、电子书阅读器、个人数字助理(PDA)、便携式导航设备、另一电子设备或其组合。存取设备160可以经由控制器进行通信,该控制器可以使得存取设备160能够与数据存储设备102进行通信。存取设备160可以按照JEDEC固态技术协会工业规范、比如嵌入式多媒体卡(eMMC)规范或通用闪存(UFS)主机控制器接口规范进行操作。存取设备160可以按照一个或多个其他规范进行操作,比如作为说明性示例的安全数字(SD)主机控制器规范。可替换地,存取设备160可以根据另一通信协议与数据存储设备102进行通信。在一些实施方式中,作为说明性示例,***100、数据存储设备102或存储器阵列104可以集成在诸如企业数据***、NAS***或云数据存储***之类的网络可存取数据存储***内。
在一些实施方式中,数据存储设备102可以包括固态驱动器(SSD)。作为说明性的非限制性示例,数据存储设备102可以用作嵌入式存储驱动器(例如,移动设备的嵌入式SSD驱动器)、企业存储驱动器(ESD)、云存储设备、网络附接存储(NAS)设备或者客户端存储设备。在一些实施方式中,数据存储设备102可以经由网络耦合到存取设备160。例如,网络可以包括数据中心存储***网络、企业存储***网络、存储区域网络、云存储网络、局域网(LAN)、广域网(WAN)、互联网和/或另一网络。
为了进一步说明,作为说明性示例,数据存储设备102可以被配置为作为嵌入式存储器而耦合到存取设备160,比如结合嵌入式多媒体卡(弗吉尼亚州阿灵顿市的JEDEC固态技术协会的商标)配置。数据存储设备102可以对应于eMMC设备。作为另一个例子,数据存储设备102可以对应于存储卡,例如安全数字卡、卡、miniSDTM卡(特拉华州威明顿市的SD-3C有限公司的商标)、MultiMediaCardTM(MMCTM)卡(弗吉尼亚州阿灵顿市的JEDEC固态技术协会的商标)或(CF)卡(加利福尼亚州米尔皮塔斯市的SanDisk公司的商标)。数据存储设备102可以按照JEDEC行业规范进行操作。例如,数据存储设备102可以依据JEDECeMMC规范、JEDEC通用闪存(UFS)规范、一个或多个其他规范或其组合来操作。
存储器阵列104可以包括三维(3D)存储器,比如电阻式随机存取存储器(ReRAM)、闪存(例如,NAND存储器、NOR存储器、单级单元(SLC)闪存、多级单元(MLC)闪存、划分位线NOR(DINOR)存储器、AND存储器、高电容耦合比(HiCR)器件、非对称无接触晶体管(ACT)器件或另一闪存)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、只读存储器(ROM)、一次可编程存储器(OTP)或其组合。可替换地或另外地,存储器阵列104可以包括另一种类型的存储器。在特定实施例中,数据存储设备102经由网络间接地耦合到存取设备(例如,存取设备160)。例如,数据存储设备102可以是数据中心存储***、企业存储***或存储区域网络的网络附接存储(NAS)设备或组件(例如,固态驱动器(SSD)组件)。存储器阵列104可以包括半导体存储器设备。
半导体存储器设备包括诸如动态随机存取存储器(“DRAM”)或静态随机存取存储器(“SRAM”)设备之类的易失性存储器设备、诸如电阻式随机存取存储器(“ReRAM”)、磁阻随机存取存储器(“MRAM”)、电可擦除可编程只读存储器(“EEPROM”)、闪存(其也可以被认为是EEPROM的子集)、铁电随机存取存储器(“FRAM”)之类的非易失性存储器设备、以及其他能够存储信息的半导体元件。每种类型的存储设备可能具有不同的配置。例如,闪存设备可以以NAND或NOR配置而配置。
存储器设备可以由无源和/或有源元件以任何组合形成。作为非限制性示例,无源半导体存储器元件包括ReRAM设备元件,其在一些实施例中包括诸如反熔丝、相变材料等的电阻率切换存储元件,并且可选地包括诸如二极管等的操纵元件。进一步通过非限制性示例,有源半导体存储器元件包括EEPROM和快闪存储器设备元件,其在一些实施例中包括含有电荷区的元件,诸如浮置栅极、导电纳米颗粒或电荷存储介电材料。
多个存储器元件可以被配置为使得它们串联连接或者使得每个元件可单独存取。通过非限制性示例的方式,NAND配置中的闪存设备(NAND存储器)通常包含串联连接的存储器元件。NAND存储器阵列可以被配置为使得该阵列由多个存储器串组成,其中一个串由共享单个位线并作为群被存取的多个存储器元件组成。可替换地,存储器元件可以被配置为使得每个元件是可以单独存取的,例如,NOR存储器阵列。NAND和NOR存储器配置是示例性的,并且可以另外配置存储器元件。
位于基板内和/或上方的半导体存储器元件可以以二维或三维布置,比如二维存储器结构或三维存储器结构。在二维存储器结构中,半导体存储器元件被布置在单个平面或单个存储器设备级中。典型地,在二维存储器结构中,存储器元件被布置在基本平行于支撑存储器元件的基板主表面而延伸的平面中(例如,在x-z方向平面中)。基板可以是在其上形成存储器元件层的晶片,或者可以是在形成存储器元件之后附接到存储器元件的载体基板。作为非限制性示例,基板可以包括诸如硅之类的半导体。
存储器元件可以以有序阵列、比如以多个行和/或列布置在单个存储器设备级中。然而,存储器元件可以以非规则或非正交配置而排布。存储器元件可以各自具有两个或更多个的电极或接触线,比如位线和字线。
三维存储器阵列被布置为使得存储器元件占据多个平面或多个存储器设备级,从而形成以三维(即,在x、y和z方向上,其中y方向基本垂直,并且x和z方向基本平行于基板的主表面)的结构。作为非限制性示例,三维存储器结构可以垂直地布置为多个二维存储器设备级的堆叠。作为另一个非限制性示例,三维存储器阵列可以被布置为多个垂直列(例如,基本垂直于基板的主表面、即在y方向上延伸的列),其中每个列具有每个列中的多个存储器元件。这些列可以以二维配置、例如在x-z平面中布置,得到存储器元件的三维布置,其中元件在多个垂直堆叠的存储器平面上。存储元件的其他三维配置也可以构成三维存储器阵列。
通过非限制性示例的方式,在三维NAND存储器阵列中,存储器元件可以耦合在一起以在单个水平(例如x-z)存储器设备级内形成NAND串。可替换地,存储器元件可以耦合在一起以形成跨过多个水平存储器设备级的垂直NAND串。可以设想其他三维配置,其中,一些NAND串包含单个存储级中的存储器元件,而其他串包含跨越多个存储器级的存储器元件。三维存储器阵列也可以以NOR配置和ReRAM配置而设计。
典型地,在单片三维存储器阵列中,一个或多个存储器设备级形成在单个基板上。可选地,单片三维存储器阵列还可以具有至少部分地位于单个基板内的一个或多个存储器级。作为非限制性示例,基板可以包括诸如硅之类的半导体。在单片三维阵列中,构成阵列的每个存储器设备级的层通常形成在阵列的底层存储器设备级的层上。然而,单片三维存储器阵列的相邻存储器设备级的层可以是共享的或是具有在存储器设备级之间的中间层。
可替换地,可以分别形成二维阵列,然后将其封装在一起以形成具有多层存储器的非单片存储器设备。例如,可以通过在分离的基板上形成存储器级,然后将存储器级一个在另一个上堆叠来构建非单片堆叠存储器。在堆叠之前,可以将基板削薄或从存储器设备级移除,但是由于存储器设备级最初在分离的基板上形成,所得到的存储器阵列不是单片三维存储器阵列。此外,多个二维存储器阵列或三维存储器阵列(单片或非单片)可以在分离的芯片上形成,然后封装在一起以形成芯片堆叠存储器设备。
存储器元件的操作和以及与存储器元件的通信通常需要相关电路。作为非限制性示例,存储器设备可具有用于控制和驱动存储器元件以实现诸如编程和读取的功能的电路。该相关联的电路可以与存储器元件位于相同的基板上和/或位于分离的基板上。例如,用于存储器读写操作的控制器可以位于单独的控制器芯片上和/或与存储器元件相同的基板上。
本领域的技术人员将认识到,本公开不限于所描述的二维和三维示例性结构,而是覆盖在本文所述的本公开的精神和范围内、并且如本领域的技术人员所理解的所有相关的存储器结构。本文描述的实施例的例示旨在提供对各个实施例的总体理解。可以利用并从本公开得到其他实施例,使得可以在不脱离本公开的范围的情况下进行结构和逻辑上的替换和改变。本公开旨在覆盖各种实施例的任何和所有随后的改编或变型领域技术人员将认识到,这些修改是在本公开的范围内的。
以上公开的主题应被认为是说明性的而非限制性的,并且所附权利要求旨在覆盖落入本公开范围内的所有这些修改、增强和其他实施例。因此,在法律允许的最大范围内,本发明的范围由下列权利要求及其等同物的最宽可允许解释来确定,并且不应受前述详细描述的制约或限制。
Claims (30)
1.一种数据存储设备,包括:
存储器;
第一模块,被配置为对存储在所述存储器处的数据进行感测,以生成具有第一比特数量的第一软比特组;
第二模块,被配置为使用所述第一软比特组来执行操作,以生成具有小于所述第一比特数量的第二比特数量的第二软比特组。
2.根据权利要求1所述的数据存储设备,其中,所述存储器包括存储区,所述存储区被配置为使用每单元单个比特或每单元多个比特的数据存储方案来存储数据,并且其中,所述操作包括对所述第一软比特组进行压缩以生成所述第二软比特组。
3.根据权利要求1所述的数据存储设备,其中,所述存储器包括被配置来存储数据的存储区,并且其中,所述第一软比特组包括与所述存储区的相邻区相关联的一个或多个软比特。
4.根据权利要求1所述的数据存储设备,其中,所述第二模块包括压缩后软比特(CSB)电路,该压缩后软比特(CSB)电路被配置来根据有损压缩方案对所述第一软比特组进行压缩以生成所述第二软比特组。
5.根据权利要求1所述的数据存储设备,其中,所述第二模块包括一组锁存器。
6.根据权利要求1所述的数据存储设备,其中,所述第一模块包括读/写电路。
7.根据权利要求1所述的数据存储设备,还包括存储器裸片,其中所述存储器、所述第一模块和所述第二模块被集成在所述存储器裸片内。
8.一种方法,包括:
在包括耦合到存储器设备的控制器的数据存储设备中,其中,所述存储器设备包括存储器,由所述存储器设备执行:
响应于从所述控制器接收到读取命令,对存储在所述存储器处的数据进行感测,以生成具有第一比特计数的第一软比特组;
使用所述第一软比特组来执行操作,以生成具有小于所述第一比特计数的第二比特计数的第二软比特组;并且
向所述控制器提供所述第二软比特组。
9.根据权利要求8所述的方法,其中,执行所述操作包含使用所述第一软比特组的子集执行按位操作,以生成所述第二软比特组的特定软比特。
10.根据权利要求9所述的方法,其中,所述按位操作包括按位与操作,并且其中,执行所述操作还包括使用所述子集的第一比特和所述子集的第二比特来执行按位与操作,以生成所述第二软比特组的第三比特。
11.根据权利要求10所述的方法,其中,所述第一比特和所述第二比特具有共同的比特位置,并且从所述存储器的共同的存储元件被感测。
12.根据权利要求11所述的方法,其中,使用上页、中页、下页或一个或多个其他逻辑页中的一个将所述第一比特存储在所述共同的存储元件处,并且其中,使用所述上页、中页、下页或一个或多个其他逻辑页中的另一个将所述第二比特存储在所述共同的存储元件处。
13.根据权利要求8所述的方法,其中,所述第一软比特组表示单个逻辑页,并且其中,所述操作对应于页内压缩操作。
14.根据权利要求8所述的方法,其中,所述第一软比特组表示多个逻辑页,并且其中,所述操作对应于页间压缩操作。
15.根据权利要求8所述的方法,其中,所述数据包括表示多个逻辑页的硬比特组,并且其中,所述第一软比特组表示所述多个逻辑页的子集。
16.根据权利要求15所述的方法,还包括将所述多个逻辑页的特定逻辑页的未压缩表示提供给所述控制器,其中,所述特定逻辑页相比于其他多个逻辑页的每个与较高的比特错误率(BER)相关联。
17.根据权利要求16所述的方法,其中,执行所述操作包括压缩所述多个逻辑页中的第一逻辑页及所述多个逻辑页中的第二逻辑页,而不压缩所述特定逻辑页。
18.根据权利要求8所述的方法,还包括:
在向所述控制器提供所述第二软比特组之后,接收消息;并且
响应于接收到所述消息,生成对应于所述数据的第三软比特组,所述第三软比特组具有小于所述第一比特计数且大于所述第二比特计数的第三比特计数。
19.根据权利要求18所述的方法,还包括响应于从所述控制器接收到所述消息而增加压缩率。
20.根据权利要求8所述的方法,还包括确定以下中的一个或多个:指示所述第一比特计数与所述第二比特计数的比率的压缩率、在感测所述数据的同时要产生的每个存储元件的软比特数量、或者作为所述压缩率的函数的一个或多个增量值,每个增量值指示硬比特感测阈值与软比特感测阈值之间的差。
21.一种方法,包括:
在包括存储器的数据存储设备处,在对从所述存储器感测到的数据进行解码的解码处理期间,执行:
基于第一组值,从校验节点组向变量节点组提供第二组值;
基于所述第二组值,向不同于所述变量节点组和所述校验节点组的第三节点组提供第三组值;并且
基于所述第三组值,更新与指示从所述存储器感测到的所述数据的可靠性的压缩后软比特组相对应的第四组值。
22.根据权利要求21所述的方法,其中,所述第四组值在所述解码处理的每次解码迭代被更新一次。
23.根据权利要求21所述的方法,其中,所述第四组值在所述解码处理的每多次解码迭代被更新一次。
24.根据权利要求21所述的方法,还包括:
在将所述第一组值提供给所述校验节点组之前:
基于所述压缩后软比特组生成所述第四组值;并且
将所述第四组值提供给所述变量节点组,以使得所述变量节点组能够生成所述第一组值。
25.根据权利要求24所述的方法,其中,从所述存储器感测到的所述数据包括硬比特组,并且其中,所述第四组值包括基于所述压缩后软比特组并指示所述硬比特组的可靠性的第一组对数似然比(LLR)值。
26.根据权利要求25所述的方法,其中,所述第一组值包括第二组LLR值,其中,所述第二组值包括第三组LLR值,并且其中,所述第三组值包括第四组LLR值。
27.根据权利要求21所述的方法,还包括:
对指示所述存储器的一个或多个结构的信息进行存取;并且
修改一个或多个软比特,以指示从耦合到所述一个或多个结构的一个或多个存储元件感测到的一个或多个硬比特的低可靠性。
28.一种数据存储设备,包括:
存储器;
控制器,耦合到所述存储器,所述控制器包括:
校验节点组,被配置为在解码处理期间接收第一组值,以对从所述存储器感测到的数据进行解码并且基于所述第一组值来生成第二组值;
变量节点组,被配置为基于所述第二组值来生成第三组值;以及
第三节点组,被配置为基于所述第三组值来更新一组压缩后软比特值,所述第三节点组不同于所述变量节点组及所述校验节点组。
29.根据权利要求28所述的数据存储设备,还包括基于压缩后软比特(CSB)的对数似然比(LLR)生成器,该基于CSB的LLR生成器包括所述第三节点组。
30.根据权利要求29所述的数据存储设备,其中,所述基于CSB的LLR生成器还被配置为生成所述第三组值的值,作为下列值的函数:与所述变量节点组中的特定变量节点相对应的硬比特值、该组压缩后软比特值中的压缩后软比特值、以及与所述压缩后软比特值相对应的由所述变量节点组中的一群变量节点生成的值。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/823,747 US10474525B2 (en) | 2015-08-11 | 2015-08-11 | Soft bit techniques for a data storage device |
US14/823,747 | 2015-08-11 | ||
PCT/US2016/036912 WO2017027094A1 (en) | 2015-08-11 | 2016-06-10 | Soft bit techniques for reading a data storage device |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108140407A true CN108140407A (zh) | 2018-06-08 |
CN108140407B CN108140407B (zh) | 2021-10-15 |
Family
ID=56134708
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680056511.2A Active CN108140407B (zh) | 2015-08-11 | 2016-06-10 | 用于读取数据存储设备的软比特技术 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10474525B2 (zh) |
CN (1) | CN108140407B (zh) |
WO (1) | WO2017027094A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109690683A (zh) * | 2018-12-10 | 2019-04-26 | 长江存储科技有限责任公司 | 用于闪存存储器的多遍编程的预读取技术 |
CN111490798A (zh) * | 2019-01-29 | 2020-08-04 | 华为技术有限公司 | 译码的方法和译码装置 |
Families Citing this family (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10181357B2 (en) * | 2015-08-18 | 2019-01-15 | Ememory Technology Inc. | Code generating apparatus and one time programming block |
US10204006B2 (en) | 2015-10-28 | 2019-02-12 | Avago Technologies International Sales Pte. Limited | Systems and methods for side data based soft data flash memory access |
US10108489B2 (en) | 2015-10-28 | 2018-10-23 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Systems and methods for efficient soft data based flash memory data recovery |
US9740559B2 (en) * | 2015-10-28 | 2017-08-22 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Systems and methods for compaction based flash memory data recovery |
US9934847B2 (en) * | 2016-03-11 | 2018-04-03 | Toshiba Memory Corporation | Memory system storing 4-bit data in each memory cell and method of controlling thereof including soft bit information |
US9984752B2 (en) * | 2016-03-14 | 2018-05-29 | Toshiba Memory Corporation | Memory system and data encoding and decoding method to mitigate inter-cell interference |
KR102289883B1 (ko) * | 2017-05-10 | 2021-08-17 | 에스케이하이닉스 주식회사 | 컨트롤러 및 컨트롤러의 동작방법 |
US10290347B2 (en) | 2017-06-30 | 2019-05-14 | Western Digital Technologies, Inc. | Compacting operating parameter groups in solid state memory devices |
US10289341B2 (en) | 2017-06-30 | 2019-05-14 | Western Digital Technologies, Inc. | Operating parameter offsets in solid state memory devices |
US10396821B2 (en) | 2017-06-30 | 2019-08-27 | Seagate Technologies Llc | Generating Hamming weights for data |
US10482984B2 (en) | 2018-04-13 | 2019-11-19 | Sandisk Technologies Llc | Ramp down sensing between program voltage and verify voltage in memory device |
KR20210019676A (ko) | 2019-08-13 | 2021-02-23 | 삼성전자주식회사 | 메모리 컨트롤러의 구동방법, 스토리지 장치 및 그 구동방법 |
US11456754B2 (en) | 2020-10-13 | 2022-09-27 | Western Digital Technologies, Inc. | Fixed size soft bit lossy compression in flash memory |
US11456758B1 (en) * | 2021-04-23 | 2022-09-27 | Western Digital Technologies, Inc. | Adaptive soft-bit compression in flash memory |
US11556416B2 (en) * | 2021-05-05 | 2023-01-17 | Apple Inc. | Controlling memory readout reliability and throughput by adjusting distance between read thresholds |
US11847342B2 (en) | 2021-07-28 | 2023-12-19 | Apple Inc. | Efficient transfer of hard data and confidence levels in reading a nonvolatile memory |
US11971829B2 (en) * | 2021-09-16 | 2024-04-30 | Sandisk Technologies Llc | On-the-fly compression scheme for soft bit data in non-volatile memory |
US11907545B2 (en) | 2021-09-16 | 2024-02-20 | Sandisk Technologies Llc | On-the-fly multiplexing scheme for compressed soft bit data in non-volatile memories |
US11894068B2 (en) | 2021-09-16 | 2024-02-06 | Sandisk Technologies Llc | Efficient sensing of soft bit data for non-volatile memory |
US11901019B2 (en) | 2021-09-16 | 2024-02-13 | Sandisk Technologies Llc | Use of data latches for compression of soft bit data in non-volatile memories |
US11971826B2 (en) * | 2021-09-16 | 2024-04-30 | Sandisk Technologies Llc | Architecture and data path options for compression of soft bit data in non-volatile memories |
JP2023078545A (ja) * | 2021-11-26 | 2023-06-07 | キオクシア株式会社 | メモリシステム及び不揮発性メモリ |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060140007A1 (en) * | 2004-12-29 | 2006-06-29 | Raul-Adrian Cernea | Non-volatile memory and method with shared processing for an aggregate of read/write circuits |
US20060227634A1 (en) * | 2005-04-06 | 2006-10-12 | Texas Instruments Incorporated | Method for determining and classifying SRAM bit fail modes suitable for production test implementation and real time feedback |
US8059463B2 (en) * | 2006-04-11 | 2011-11-15 | Sandisk Il Ltd | Method for generating soft bits in flash memories |
US8099652B1 (en) * | 2010-12-23 | 2012-01-17 | Sandisk Corporation | Non-volatile memory and methods with reading soft bits in non uniform schemes |
CN102479556A (zh) * | 2010-11-25 | 2012-05-30 | 三星电子株式会社 | 非易失性存储器件及其读取方法 |
US20130024748A1 (en) * | 2011-07-22 | 2013-01-24 | Sandisk Technologies Inc. | Systems and methods of storing data |
US20140237318A1 (en) * | 2013-02-20 | 2014-08-21 | Sandisk Enterprise Ip Llc | Bandwidth optimization in a non-volatile memory system |
CN104272392A (zh) * | 2012-05-07 | 2015-01-07 | 桑迪士克科技股份有限公司 | 从多级单元存储器读取数据 |
CN104733044A (zh) * | 2013-12-24 | 2015-06-24 | 群联电子股份有限公司 | 译码方法、存储器存储装置、存储器控制电路单元 |
US20150186212A1 (en) * | 2013-12-31 | 2015-07-02 | Phison Electronics Corp. | Decoding method, memory storage device, and memory controlling circuit unit |
CN104778975A (zh) * | 2014-01-14 | 2015-07-15 | 群联电子股份有限公司 | 译码方法、存储器存储装置、存储器控制电路单元 |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7194128B1 (en) * | 2000-07-26 | 2007-03-20 | Lockheed Martin Corporation | Data compression using principal components transformation |
US6661927B1 (en) * | 2000-07-27 | 2003-12-09 | Motorola, Inc. | System and method for efficiently encoding an image by prioritizing groups of spatially correlated coefficients based on an activity measure |
JP4298253B2 (ja) * | 2002-10-01 | 2009-07-15 | キヤノン株式会社 | 画像処理方法及び装置、及び撮像装置 |
JP2004214828A (ja) * | 2002-12-27 | 2004-07-29 | Ricoh Co Ltd | 画像処理装置、画像処理方法、画像処理用コンピュータプログラム、及びこの画像処理用コンピュータプログラムを記憶する記憶媒体 |
JP2005092923A (ja) * | 2003-09-12 | 2005-04-07 | Renesas Technology Corp | 半導体記憶装置 |
US9171585B2 (en) * | 2005-06-24 | 2015-10-27 | Google Inc. | Configurable memory circuit system and method |
US8248848B1 (en) * | 2007-10-01 | 2012-08-21 | Marvell International Ltd. | System and methods for multi-level nonvolatile memory read, program and erase |
US7848142B2 (en) * | 2007-10-31 | 2010-12-07 | Micron Technology, Inc. | Fractional bits in memory cells |
US8464131B2 (en) | 2008-06-23 | 2013-06-11 | Ramot At Tel Aviv University Ltd. | Reading a flash memory by constrained decoding |
US7944754B2 (en) | 2008-12-31 | 2011-05-17 | Sandisk Corporation | Non-volatile memory and method with continuous scanning time-domain sensing |
US8935595B2 (en) * | 2010-03-12 | 2015-01-13 | Lsi Corporation | LDPC erasure decoding for flash memories |
US8233324B2 (en) | 2010-03-25 | 2012-07-31 | Sandisk Il Ltd. | Simultaneous multi-state read or verify in non-volatile storage |
KR20110122529A (ko) * | 2010-05-04 | 2011-11-10 | 한국과학기술원 | 전기 모터 구동차량의 식별 경고음 발생장치 및 이를 이용한 식별경고음 발생방법 |
RU2011118108A (ru) * | 2011-05-06 | 2012-11-20 | ЭлЭсАй Корпорейшн (US) | Устройство (варианты) и способ параллельного декодирования для нескольких стандартов связи |
US9030870B2 (en) | 2011-08-26 | 2015-05-12 | Micron Technology, Inc. | Threshold voltage compensation in a multilevel memory |
US20130343125A1 (en) | 2012-06-22 | 2013-12-26 | Mosaid Technologies Incorporated | Apparatus and methods for carrying out operations in a non-volatile memory cell having multiple memory states |
US9632866B2 (en) * | 2012-09-28 | 2017-04-25 | Duke University | Systems for and methods of extending lifetime of non-volatile memory |
US9214965B2 (en) * | 2013-02-20 | 2015-12-15 | Sandisk Enterprise Ip Llc | Method and system for improving data integrity in non-volatile storage |
US9454414B2 (en) | 2013-03-15 | 2016-09-27 | Microsemi Storage Solutions (Us), Inc. | System and method for accumulating soft information in LDPC decoding |
US9467170B2 (en) * | 2013-05-17 | 2016-10-11 | Marvell World Trade Ltd. | NAND flash memory systems with efficient soft information interface |
US9529665B2 (en) * | 2014-03-26 | 2016-12-27 | Intel Corporation | Double consecutive error correction |
KR102194756B1 (ko) * | 2014-09-10 | 2020-12-23 | 애플 인크. | 클라우드 무선 액세스 네트워크를 위한 수정된 아키텍쳐 및 프론트-홀 데이터의 압축을 위한 접근방법 |
US9690656B2 (en) * | 2015-02-27 | 2017-06-27 | Microsoft Technology Licensing, Llc | Data encoding on single-level and variable multi-level cell storage |
US9733870B2 (en) * | 2015-05-06 | 2017-08-15 | International Business Machines Corporation | Error vector readout from a memory device |
-
2015
- 2015-08-11 US US14/823,747 patent/US10474525B2/en active Active
-
2016
- 2016-06-10 CN CN201680056511.2A patent/CN108140407B/zh active Active
- 2016-06-10 WO PCT/US2016/036912 patent/WO2017027094A1/en active Application Filing
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060140007A1 (en) * | 2004-12-29 | 2006-06-29 | Raul-Adrian Cernea | Non-volatile memory and method with shared processing for an aggregate of read/write circuits |
US20060227634A1 (en) * | 2005-04-06 | 2006-10-12 | Texas Instruments Incorporated | Method for determining and classifying SRAM bit fail modes suitable for production test implementation and real time feedback |
US8059463B2 (en) * | 2006-04-11 | 2011-11-15 | Sandisk Il Ltd | Method for generating soft bits in flash memories |
CN102479556A (zh) * | 2010-11-25 | 2012-05-30 | 三星电子株式会社 | 非易失性存储器件及其读取方法 |
US8099652B1 (en) * | 2010-12-23 | 2012-01-17 | Sandisk Corporation | Non-volatile memory and methods with reading soft bits in non uniform schemes |
US20130024748A1 (en) * | 2011-07-22 | 2013-01-24 | Sandisk Technologies Inc. | Systems and methods of storing data |
CN104272392A (zh) * | 2012-05-07 | 2015-01-07 | 桑迪士克科技股份有限公司 | 从多级单元存储器读取数据 |
US20140237318A1 (en) * | 2013-02-20 | 2014-08-21 | Sandisk Enterprise Ip Llc | Bandwidth optimization in a non-volatile memory system |
CN104733044A (zh) * | 2013-12-24 | 2015-06-24 | 群联电子股份有限公司 | 译码方法、存储器存储装置、存储器控制电路单元 |
US20150186212A1 (en) * | 2013-12-31 | 2015-07-02 | Phison Electronics Corp. | Decoding method, memory storage device, and memory controlling circuit unit |
CN104778975A (zh) * | 2014-01-14 | 2015-07-15 | 群联电子股份有限公司 | 译码方法、存储器存储装置、存储器控制电路单元 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109690683A (zh) * | 2018-12-10 | 2019-04-26 | 长江存储科技有限责任公司 | 用于闪存存储器的多遍编程的预读取技术 |
US10650896B1 (en) | 2018-12-10 | 2020-05-12 | Yangtze Memory Technologies Co., Ltd. | Pre-read technique for multi-pass programming of flash memory |
CN111490798A (zh) * | 2019-01-29 | 2020-08-04 | 华为技术有限公司 | 译码的方法和译码装置 |
CN111490798B (zh) * | 2019-01-29 | 2022-04-22 | 华为技术有限公司 | 译码的方法和译码装置 |
Also Published As
Publication number | Publication date |
---|---|
US20170046220A1 (en) | 2017-02-16 |
US10474525B2 (en) | 2019-11-12 |
WO2017027094A1 (en) | 2017-02-16 |
CN108140407B (zh) | 2021-10-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108140407A (zh) | 用于读取数据存储设备的软比特技术 | |
US9875156B2 (en) | Data storage device with a memory die that includes an interleaver | |
US9323613B2 (en) | Parity scheme for a data storage device | |
US9740425B2 (en) | Tag-based wear leveling for a data storage device | |
US10452471B2 (en) | Non-volatile memory with dynamic write abort detection and recovery | |
US9720769B2 (en) | Storage parameters for a data storage device | |
US9105333B1 (en) | On-chip copying of data between NAND flash memory and ReRAM of a memory die | |
US20160141029A1 (en) | Health data associated with a resistance-based memory | |
CN109074831A (zh) | 存储器的温度变化补偿 | |
CN108028058A (zh) | 用于设备的数据编码技术 | |
US20160162215A1 (en) | Meta plane operations for a storage device | |
US10691539B2 (en) | Grown defect detection and mitigation using ECC in memory systems | |
US8942028B1 (en) | Data reprogramming for a data storage device | |
US20150363262A1 (en) | Error correcting code adjustment for a data storage device | |
CN107430491B (zh) | 数据存储设备和方法 | |
JP2016506590A (ja) | データストレージシステムのための対数尤度比及び一括対数尤度比生成 | |
US9053790B1 (en) | Counter for write operations at a data storage device | |
CN105122372A (zh) | 用于在三维非易失性存储器中的冗余计算的数据的选择 | |
WO2015171315A1 (en) | Structure variation detection for a memory having a three-dimensional memory configuration | |
CN106933505B (zh) | 存储器***及其操作方法 | |
US9870167B2 (en) | Systems and methods of storing data | |
CN109785892A (zh) | 包括字线缺陷检测电路的存储器器件 | |
WO2015171316A1 (en) | Memory access techniques for a memory having a three-dimensional memory configuration | |
CN105304142B (zh) | 解码方法、存储器存储装置及存储器控制电路单元 | |
CN104103318B (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 |