CN112241333B - 用于存储器***的编码器及其方法 - Google Patents
用于存储器***的编码器及其方法 Download PDFInfo
- Publication number
- CN112241333B CN112241333B CN202010125730.XA CN202010125730A CN112241333B CN 112241333 B CN112241333 B CN 112241333B CN 202010125730 A CN202010125730 A CN 202010125730A CN 112241333 B CN112241333 B CN 112241333B
- Authority
- CN
- China
- Prior art keywords
- scrambling
- sequences
- memory
- data bits
- memory device
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 230000015654 memory Effects 0.000 title claims abstract description 133
- 238000000034 method Methods 0.000 title claims description 26
- 125000004122 cyclic group Chemical group 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 26
- 239000000872 buffer Substances 0.000 description 16
- 239000004065 semiconductor Substances 0.000 description 13
- 230000004044 response Effects 0.000 description 9
- 239000010410 layer Substances 0.000 description 8
- 238000012937 correction Methods 0.000 description 7
- 101001016186 Homo sapiens Dystonin Proteins 0.000 description 5
- 101000832669 Rattus norvegicus Probable alcohol sulfotransferase Proteins 0.000 description 5
- 230000002093 peripheral effect Effects 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 238000009826 distribution Methods 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 239000007787 solid Substances 0.000 description 3
- 230000003044 adaptive effect Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 239000002356 single layer Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000004242 micellar liquid chromatography Methods 0.000 description 1
- 208000011580 syndromic disease Diseases 0.000 description 1
- 230000009897 systematic effect Effects 0.000 description 1
- 239000004557 technical material Substances 0.000 description 1
- 238000004809 thin layer chromatography Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 230000003936 working memory Effects 0.000 description 1
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/02—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements
- G11C11/16—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements using elements in which the storage effect is based on magnetic spin effect
- G11C11/165—Auxiliary circuits
- G11C11/1653—Address circuits or decoders
- G11C11/1657—Word-line or row 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/52—Protection of memory contents; Detection of errors in memory contents
-
- 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/1044—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 with specific ECC/EDC distribution
-
- 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/1012—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1012—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
- G06F11/1032—Simple parity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1408—Protection against unauthorised use of memory or access to memory by using cryptography
-
- 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/02—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements
- G11C11/16—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements using elements in which the storage effect is based on magnetic spin effect
- G11C11/165—Auxiliary circuits
- G11C11/1673—Reading or sensing circuits or methods
-
- 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/02—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements
- G11C11/16—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements using elements in which the storage effect is based on magnetic spin effect
- G11C11/165—Auxiliary circuits
- G11C11/1675—Writing or programming circuits or methods
-
- 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
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/04—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
- G11C16/0483—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/08—Address circuits; Decoders; Word-line control circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C2029/0411—Online error correction
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Read Only Memory (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本申请涉及一种用于存储器***的编码器,该编码器用于接收数据位和关于存储器装置的存储区域之中待存储数据位的存储区域的位置信息,基于位置信息确定待使用的多个随机序列的数量,使用所确定数量的多个随机序列对数据位进行加扰,以生成加扰序列,从所生成的加扰序列之中选择具有最小数量的特定逻辑值的加扰序列,并且输出所选择的加扰序列以存储在存储器装置的存储区域中。
Description
技术领域
本发明的实施例涉及用于存储器***的编码及解码方案。
背景技术
计算机环境的范例已经转变为在任何时间和任何地点使用的普适计算***。因此,诸如移动电话、数码相机和笔记本电脑的便携式电子装置的使用迅速增加。这些便携式电子装置通常使用具有存储器装置的存储器***,即,数据存储装置。数据储存装置可用作便携式电子装置的主存储器装置或辅助存储器装置。
使用存储器装置的存储器***因为没有移动部件而提供了优异的稳定性、耐久性、高信息访问速度和低功耗。具有这种优点的存储器***的示例包括通用串行总线(USB)存储器装置、诸如通用闪存(UFS)的具有各种接口的存储卡以及固态驱动器(SSD)。存储器***可以使用各种编码器。
发明内容
本发明的各方面包括一种存储器***,该存储器***包括能够减少弱位出现的编码器。
一方面,一种存储器***包括存储器装置和控制器,存储器装置包括多个存储区域,控制器包括编码器。编码器接收数据位和关于存储器装置的多个存储区域之中待存储数据位的存储区域的位置信息,基于位置信息确定待使用的多个随机序列的数量,使用确定数量的多个随机序列来加扰数据位,以生成多个加扰序列,从多个加扰序列之中选择加扰序列,所选择的加扰序列在多个加扰序列之中具有最小数量的特定逻辑值,并且输出所选择的加扰序列以存储在存储器装置的存储区域中。
另一方面,一种操作存储器***的方法,该存储器***包括存储器装置,存储器装置包括多个存储区域。该方法包括:接收数据位和关于多个存储区域之中待存储数据位的存储区域的位置信息;基于位置信息确定待使用的多个随机序列的数量;使用确定数量的多个随机序列来加扰数据位,以生成多个加扰序列;从多个加扰序列之中选择加扰序列,所选择的加扰序列在多个加扰序列之中具有最小数量的特定逻辑值;并且输出所选择的加扰序列以存储在存储器装置的存储区域中。
本发明的其它方面将从以下描述中变得显而易见。
附图说明
图1是示出根据本发明的实施例的数据处理***的框图。
图2是示出根据本发明的实施例的存储器***的框图。
图3是示出根据本发明的实施例的存储器装置的存储块的电路图。
图4是示出存储器装置的单元的状态分布的示图。
图5A和5B是示出存储器装置中不同块的不同页面的位错误率的分布的示图。
图6是示出根据本发明的实施例的存储器***的示图。
图7是示出根据本发明的实施例的编码器的示图。
图8是示出根据本发明的实施例的编码器的示图。
图9A是示出根据本发明的实施例的编码组件的示图。
图9B是示出根据本发明的实施例的随机生成器和加扰器的示图。
图10A是示出根据本发明的实施例的选择器的示图。
图10B是示出根据本发明的实施例的选择器的示图。
图11是示出根据本发明的实施例的包括编码器的存储器***的示图。
图12是示出根据本发明的实施例的编码器的操作的流程图。
具体实施方式
下面参照附图更详细的描述各个实施例。然而,本发明可以以不同的形式来实现,并且不应被解释为仅限于本文中阐述的实施例。相反,提供这些实施例使本公开是彻底且完整的,并且将本发明的范围全面地传达给本领域技术人员。此外,对“实施例”、“另一实施例”等的参考不一定仅指一个实施例,并且对任何这样的短语的不同参考不一定针对相同的实施例。在整个本开中,相同的附图标记在本发明的附图和实施例中表示相同的部件。
本发明可以以多种方式实施,包括作为进程;设备;***;计算机可读存储介质上实现的计算机程序产品;和/或处理器,诸如适于执行存储在联接到处理器的存储器上和/或由联接到处理器的存储器提供的指令的处理器。在本说明书中,这些实施方式或者本发明可以采取的任何其他形式可被称为技术。通常,在本发明的范围内,可以改变所公开进程的步骤的顺序。除非另外说明,否则诸如被描述为适于执行任务的处理器或存储器的组件可以被实施为临时被配置为在给定时间执行任务的一般组件或被制造为执行任务的特定组件。如本文所使用的,术语“处理器”等是指适于处理诸如计算机程序指令的数据的一个或多个装置,电路和/或处理内核。
下面提供本发明的实施例的详细描述以及示出本发明的各方面的附图。结合这些实施例描述本发明,但本发明不限于任何实施例。本发明的范围仅由权利要求限定。本发明包括在权利要求范围内的许多替换、修改和等同方案。在以下描述中阐述了许多具体细节,以便提供对本发明的全面理解。这些细节是出于示例的目的而提供的;本发明可以根据权利要求,在没有这些具体细节中的一些或全部的情况下实施。为了清楚,没有详细描述与本发明相关的技术领域中公知的技术内容,以免不必要地模糊本发明。
图1是示出根据本发明的实施例的数据处理***2的框图。
参照图1,数据处理***2包括主机装置5和存储器***10。存储器***10可以从主机装置5接收请求,并且响应于所接收的请求而操作。例如,存储器***10可以存储待由主机装置5访问的数据。
主机装置5可以利用各种电子装置中的任意一种来实施。在各个实施例中,主机装置5包括电子装置,诸如台式计算机、工作站、三维(3D)电视、智能电视、数字音频记录器、数字音频播放器、数字图片记录器、数字图片播放器和/或数字视频记录器和数字视频播放器。在各个实施例中,主机装置5包括便携式电子装置,诸如移动电话、智能电话、电子书、MP3播放器、便携式多媒体播放器(PMP)和/或便携式游戏机。
存储器***10可以利用诸如固态驱动器(SSD)和存储卡的各种存储装置中的任意一种来实施。在各个实施例中,存储器***10可被提供作为诸如以下的电子装置中的各种组件之一:计算机、超级移动个人计算机(PC)(UMPC)、工作站、上网本计算机、个人数字助理(PDA)、便携式计算机、网络平板PC、无线电话、移动电话、智能电话、电子书阅读器、便携式多媒体播放器(PMP)、便携式游戏装置、导航装置、黑盒、数码相机、数字多媒体广播(DMB)播放器、3维电视、智能电视、数字音频记录器、数字音频播放器、数字图片记录器、数字图片播放器、数字视频记录器、数字视频播放器、数据中心的存储装置、能够在无线环境中接收和传送信息的装置、射频识别(RFID)装置、以及家庭网络的各种电子装置之一、计算机网络的各种电子装置之一、远程信息处理网络的电子装置之一、或计算***的各种组件之一。
存储器***10包括存储控制器100和半导体存储器装置200。存储器控制器100可以控制半导体存储器装置200的全部操作。
半导体存储器装置200可以在存储器控制器100的控制下执行一个或多个擦除操作、编程操作和读取操作。半导体存储器装置200可以通过输入/输出线接收命令CMD,地址ADDR和数据DATA。半导体存储器装置200可以通过电源线接收电力PWR,并通过控制线接收控制信号CTRL。根据存储器***10的设计和配置,控制信号CTRL可包括命令锁存使能信号、地址锁存使能信号、芯片使能信号、写入使能信号、读取使能信号以及其它操作信号。
存储器控制器100和半导体存储器装置200可集成在诸如固态驱动器(SSD)的单个半导体装置中。SSD包括用于存储数据的存储装置。当半导体存储器***10用于SSD中时,联接到该存储器***10的主机装置(例如,图1的主机装置5)的操作速度可显著提高。
存储器控制器100和半导体存储器装置200可集成在诸如存储卡的单个半导体装置中。例如,可以集成存储器控制器100和半导体存储器装置200,以配置个人计算机存储卡国际协会(PCMCIA)的个人计算机(PC)卡、紧凑型闪存(CF)卡、智能媒体(SM)卡、记忆棒、多媒体卡(MMC)、缩尺寸的多媒体卡(RS-MMC)、微型版本的MMC(MMCmicro)、安全数字(SD)卡、迷你安全数字(miniSD)卡、微型安全数字(microSD)卡、安全数字高容量(SDHC)和/或通用闪存(UFS)。
图2是示出根据本发明的实施例的存储器***的框图。例如,图2的存储器***可以示出图1所示的存储器***10。
参照图2,存储器***10包括存储器控制器100和半导体存储器装置200。存储器***10可响应于来自主机装置(例如,图1的主机装置5)的请求而操作,且特别地,存储待由主机装置访问的数据。
存储器装置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包括存储装置110、可以被实施为诸如中央处理单元(CPU)的处理器的控制组件120、错误校正码(ECC)组件130、主机接口(I/F)140和存储器接口(I/F)150,它们通过总线160联接。
存储装置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-Chaudhuri-Hocquenghem,BCH)码、turbo码、turbo乘积码(TPC)、里德-所罗门(RS)码、卷积码,递归***码(RSC)、网格编码调制(TCM)或分组编码调制(BCM)。然而,错误校正不限于这些技术。因此,ECC组件130可包括用于适当的错误校正操作的任何和所有电路、***或装置。
主机接口140可以通过诸如以下的各种接口协议中的一个或多个与主机装置通信:通用串行总线(USB)、多媒体卡(MMC)、高速***组件互连(PCI-e或PCIe)、小型计算机***接口(SCSI)、串列SCSI(SAS)、串行高级技术附件(SATA)、并行高级技术附件(PATA)、增强型小型磁盘接口(ESDI)和电子集成驱动器(IDE)。
存储器接口150可提供控制器100与存储器装置200之间的接口以允许控制器100响应于来自主机装置的请求而控制存储器装置200。存储器接口150可以在控制组件120的控制下生成用于存储器装置200的控制信号并且处理数据。当存储器装置200是诸如NAND闪速存储器的闪速存储器时,存储器接口150可以在控制组件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生成的行地址,从多个存储块211之中选择至少一个存储块,并且将电压生成电路230供应的操作电压传送到所选择的存储块。
页面缓冲器250可通过位线BL与存储器单元阵列210联接(图3中所示)。页面缓冲器250可以响应于由控制电路220生成的页面缓冲器控制信号,利用正电压对位线BL进行预充电,在编程操作和读取操作中向所选择的存储块传送数据以及从所选择的存储器块接收数据,或者临时存储所传送的数据。
列解码器260可以向页面缓冲器250传送数据和从页面缓冲器250接收数据,或者向输入/输出电路270传送数据和从输入/输出电路270接收数据。
输入/输出电路270可以将从外部装置(例如,图1的存储器控制器100)接收的命令及地址传送到控制电路220,通过输入/输出电路270,将数据从外部装置传送到列解码器260,或将数据从列解码器260输出到外部装置。
控制电路220可以响应于命令和地址来控制***电路。
图3是示出根据本发明的实施例的半导体存储器装置的存储块的电路图。例如,图3的存储块可为图2中所示的存储器单元阵列210的存储块211中的任意一个。
参照图3,示例性存储块211包括联接到行解码器240的多个字线WL0到WLn-1、漏极选择线DSL和源极选择线SSL。这些线可以与DSL和SSL之间的多个字线并行布置。
示例性存储块211可进一步包括分别联接到位线BL0至BLm-1的多个单元串221。每一列的单元串可包括一个或多个漏极选择晶体管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可以被实施为其中组合了两种或更多种类型的存储器单元的混合闪速存储器,或者其中控制器被嵌入在存储器芯片内部的NAND闪速存储器。
诸如闪速存储器(例如,NAND闪速存储器)的存储器装置包括多个存储块(例如,数百至数千个存储块)。每个块通常可以包括多个字线(例如,数百个字线)。联接到每个字线的每个单元可以包括多个逻辑页面。存储器装置可包括多个存储器单元,并且通过编程操作将存储器单元调制为不同的状态或编程电压(PV)电平,而使每单元存储多个位。
图4是示出存储器装置的不同类型的单元的状态或编程电压(PV)电平的分布的示图。
参照图4,存储器单元中的每一个可以利用多层单元来实施,例如,存储1位数据的单层单元(SLC)、存储2位数据的多层单元(MLC)、存储3位数据的三层单元(TLC)或存储4位数据的四层单元(QLC)。
SLC可以包括两个状态P0和P1。P0可以指示擦除状态,并且P1可指示编程状态。由于SLC可被设置为两种不同状态中的一种,所以每个SLC可以根据设置的编码方法来编程或存储1位。MLC可以包括四个状态P0、P1、P2及P3。在这些状态中,P0可以指示擦除状态,并且P1至P3可以指示编程状态。因为MLC可被设置为四种不同状态中的一个,所以每个MLC可根据设置的编码方法来编程或存储两个位。TLC可以包括八个状态P0至P7。在这些状态中,P0可以指示擦除状态,并且P1至P7可以指示编程状态。因为TLC可以被设置为八个不同状态中的一个,所以每个TLC可以根据设置的编码方法来编程或存储三个位。QLC可以包括16个状态P0至P15。在这些状态中,P0可以指示擦除状态,并且P1至P15可以指示编程状态。因为QLC可以被设置为十六个不同状态中的一个,所以每个QLC可根据设置的编码方法来编程或存储四个位。
因此,对于包括TLC的存储器装置,存在8个状态或PV电平,并且每个电平对应于唯一的3位元组。单元的第一、第二和第三位分别被一起分组为最低有效位(LSB)页面、中间有效位(CSB)页面和最高有效位(MSB)页面。不同的PV电平通常具有不同的噪声方差,因此,1→0错误的概率(即,p1→0)及0→1错误的概率(即,p0→1)对于每个逻辑页面、每个字线及每个块而不同,如图5A及5B中所示,p1→0可以表示当具有逻辑高值(即,bit-1)的位存储在相应页面中的位错误率,并且p0→1可以表示当具有逻辑低值(即,bit-0)的位存储在相应页面中的位错误率。当将bit-1错误地读取为bit-0时,可能出现p1→0,并且当将bit-0错误地读取为bit-1时,可能出现p0→1。
图5A和5B是示出在例如三层单元(TLC)NAND型闪速存储器装置的存储器装置中的不同块的不同逻辑页面的位错误率的分布的示图。
在图5A和5B中,x轴表示逻辑页面LSB、CSB或MSB,并且y轴表示原始位错误率(rber)(或错误概率)。在图5A中,对于块0的逻辑页面LSB、CSB或MSB中的每一个,p0→1不同于p1→0。在图5B中,对于块1的逻辑页面LSB、CSB或MSB中的每一个,p0→1不同于p1→0。另外,对于相同的逻辑页面LSB、CSB或MSB,块0的p0→1不同于块1的p0→1,并且块0的p1→0不同于块1的p1→0,换句话说,错误概率可以取决于TLC NAND型闪速存储器装置的存储的位值(“0”或“1”)及其位置(或存储区域)。位置可以是关于待存储在存储器装置中的数据的逻辑页面、字线和块。
因此,各个实施例提供一种方案来减少诸如TLC NAND型闪速存储器装置的存储器装置中的位错误率。
图6是示出根据本发明的实施例的存储器***的示图。
参照图6,存储器***包括控制器100和存储器装置200。存储器装置200可包括具有诸如单层单元(SLC)、多层单元(MLC)、三层单元(TLC)或四层单元(QLC)的存储器单元的NAND型闪速存储器装置。在各个实施例中,存储器装置200可包括具有QLC存储器单元(即,QLC)的NAND型闪速存储器装置。
控制器100可从主机接收命令,并将所接收的命令提供到存储器装置200。例如,控制器100接收写入命令和与该写入命令对应的写入数据,并控制存储器装置200对写入数据执行编程操作。例如,控制器100接收读取命令,并控制存储器装置200对与读取命令对应的数据执行读取操作。控制器100将与读取命令对应的读取数据传送到主机。
控制器100包括编码器600A和解码器600B。在编程操作期间,编码器600A可基于设置的编码方案对写入数据执行编码操作。在读取操作期间,解码器600B可基于与编码方案对应的、设置的解码方案对读取数据执行解码操作。以下将参照图7至图12描述编码方案。控制器100和存储器装置200可执行图1和图2中描述的操作。在实施例中,编码器600A和解码器600B可实现在图2中所示的控制器100的ECC组件130中。如下所述,也可以采用其它适当的布置。通常,编码器600A和解码器600B可以由硬件、软件、固件或其任何适当的组合来实施。
在各个实施例中,编码器600A可在编程操作之前使用多个加扰(即,引导加扰)执行编码操作,以便减少诸如TLC NAND型闪速存储器装置的存储器装置200中的位错误率。也就是说,编码器600A可以用作引导加扰编码器。对应于编码器600A的编码操作,解码器600B可以使用多个解扰来执行解码操作。
图7是示出根据本发明的实施例的编码器的示图。例如,图7的编码器可以示出图6所示的编码器600A。在各个实施例中,编码器600A可以执行自适应引导加扰,以选择关于待写入的数据的块索引、字线索引和页面索引而待使用的多个加扰器的数量。换句话说,编码器600A可以不使用相同数量的加扰器;相反,编码器600A可以使用数量被自适应确定的多个加扰器。进一步地,基于数据的页面类型,编码器600A可在多个序列之中选择具有导致最低原始位错误率的最高数量的逻辑位值(1或0)的序列。换句话说,编码器600A可输出在将数据写入存储器装置中时导致高原始位错误率的、具有最小数量的逻辑位值的序列。
参照图7,编码器600A包括配置器705、编码模块(或引导加扰模块)710和选择器720。编码器600A可从主机接收数据位和位置信息。进一步地,编码器600A可以输出多个加扰序列之中的最小加扰序列。该最小加扰序列是具有易于导致高原始位率的最小数量的逻辑位值的序列。在各个实施例中,位置信息可包括关于存储器装置(例如,图6的存储器装置200)的多个存储区域之中待存储数据位的存储区域的信息。例如,位置信息包括关于与存储区域相关联的块、字线和逻辑页面的信息(例如,块索引、字线索引和逻辑页面索引)。
配置器705可获得位置信息,并基于该位置信息确定待在编码模块710中使用的多个随机序列的数量。换句话说,配置器705可以决定在编码模块710中使用多少随机序列。在各个实施例中,可以从与数据位相关联的命令(例如,来自主机的写入命令)获得位置信息。
编码模块710可包括多个编码组件,例如,第一编码组件710_1、第二编码组件710_2直至第n编码组件710_n。在各个实施例中,编码模块710中的编码组件的数量可由配置器705确定。换句话说,编码模块710中的编码组件可由配置器705可变地或自适应地配置成对应于多个随机序列的数量。
多个编码组件710_1至710_n可接收数据位并使用多个随机序列对数据位进行加扰,以生成多个加扰序列。
在各个实施例中,多个编码组件710_1至710_n可包括多个随机生成器和多个加扰器。多个编码组件710_1至710_n中的每一个可包括随机生成器和加扰器。多个随机生成器可以使用多个种子来生成多个随机序列。多个加扰器可使用多个随机序列对数据位加扰以生成多个加扰序列。多个加扰器中的每一个可使用多个随机序列之中的相应随机序列来加扰数据位。
在各个实施例中,多个编码组件710_1至710_n中的每一个可以进一步包括用于对值进行计数并输出计数值的计数器。计数器可以对多个加扰序列之中的相应加扰序列中的特定逻辑值的数量进行计数,并输出相应计数值。例如,计数器可以对相应加扰序列中的0或1的数量进行计数。
选择器720可以接收多个加扰序列,并在多个加扰序列之中选择加扰序列。在各个实施例中,选择器720可以选择具有最小数量的逻辑高值“1”或逻辑低值“0”的加扰序列。换句话说,选择器720可以在多个加扰序列之中选择最小加扰序列。选择器720可向存储器装置(例如,图6的存储器装置200)提供待存储在存储器装置200的相应存储区域中的所选择的加扰序列。进一步地,选择器720可向存储器装置提供指示信息。该指示信息可以识别生成所选择的加扰序列的随机序列。
在各个实施例中,除了图7中所示的元件之外,编码器600A可包括错误校正码(ECC)编码器,例如低密度奇偶校验(LDPC)编码器。ECC编码器可以从选择器720接收所选择的加扰序列,使用错误校正码编码所接收的加扰序列,并将编码的加扰序列提供到存储器装置。
图8是示出根据本发明的实施例的编码器的示图。例如,图8的编码器可以示出图6所示的编码器600A。
参照图8,类似于图7所示的编码器600A,编码器600A包括配置器705、编码模块(或引导加扰模块)710和选择器725。进一步地,编码器600A可包括第一编码组件70A和第二编码组件70B。
第一编码组件70A可以从主机接收数据位。第一编码组件70A可以使用循环冗余码(CRC)对所接收的数据位进行编码以生成CRC编码数据位。第一编码组件70A可以将CRC编码数据位输出到编码模块710的多个编码组件710_1至710_n。
第二编码组件70B可以从编码模块710接收所选择的加扰序列(即,最小加扰序列)。第二编码组件70B可以使用低密度奇偶校验(LDPC)对所接收的加扰序列进行编码,以生成LDPC编码序列。第二编码组件70B可以将LDPC编码序列输出到存储器装置200。
选择器725可以接收多个加扰序列,并在多个加扰序列之中选择加扰序列。在各个实施例中,选择器725可以选择具有最小数量的逻辑高值“1”或逻辑低值“0”的加扰序列。换句话说,选择器725可以在多个加扰序列之中选择最小加扰序列,其中“最小”指代考虑中的特定逻辑值的最小数量。选择器725可以向存储器装置(例如,图6的存储器装置200)提供待存储在存储器装置200的相应存储区域中的所选择的加扰序列。与图7的选择器720不同,注意的是,选择器725可以不向存储器装置提供指示信息,该指示信息可以识别生成所选择的加扰序列的随机序列。
如上所述,编码器600A可以联接在CRC编码组件70A和LDPC编码组件70B之间。可以不提供用于所选择的加扰序列的指示信息并将其存储在存储器装置的相应页面中。为了恢复数据位,可以借助于CRC奇偶校验位来恢复指示信息。在解码器处,可以并行地测试所有候选随机序列。可以选择与具有全零的CRC校正子对应的随机序列来恢复数据位。
图9A是示出根据本发明的实施例的编码组件710_1的示图。例如,图9A的编码组件可以示出为图7所示的编码组件710_1至710_9中的一个。
参照图9A,编码组件710_1至710_9中的代表性编码组件710_1包括随机生成器712、加扰器714和计数器716。随机生成器712可以生成随机序列。在各个实施例中,随机生成器712可以生成伪随机序列。加扰器714可以使用随机序列来加扰数据位,以生成加扰序列。在各个实施例中,加扰器714可通过对数据位与随机序列执行XOR运算来加扰数据位。计数器716可以对加扰序列中的特定逻辑值(“0”或“1”)的数量进行计数,以生成计数值以供输出。
虽然图9A示出随机生成器712与加扰器714是独立实施的,但随机生成器712与加扰器714可以集成或组合,并且此组合称为加扰器。
图9B是示出根据本发明的实施例的随机生成器和加扰器的示图。例如,图9B的随机生成器和加扰器可以分别示出图9A中所示的随机生成器712和加扰器714。
参照图9B,随机生成器712包括如线性反馈移位寄存器(LFSR)的多个移位寄存器D0至Dk和异或门G0至G1。随机生成器712可以以伪随机方式生成随机序列。加扰器714包括异或门G0。加扰器714可以接收随机序列和数据位,并使用该随机序列来加扰数据位以输出加扰序列。
在各个实施例中,随机生成器712可由k个移位寄存器D0至Dk实施,其数量可基于待写入数据位的页面类型而确定。
图10A是示出根据本发明的实施例的选择器720的示图。例如,图10A的选择器可以示出图7所示的选择器720。
参照图10A,选择器720包括第一选择组件722和第二选择组件724。
第一选择组件722可以从图7中的编码组件710_1至710_n的计数器接收多个(例如,n个)计数值,即,计数。第一选择组件722可以在多个计数值之中选择最低计数值。第一选择组件722可以输出指示信息,该指示信息指示多个随机序列之中与最低计数值对应的随机序列。指示信息可以被传送到图6的存储器装置200以及第二选择组件724。
第二选择组件724可从图7中的编码组件710_1至710_n的加扰器接收多个(例如,n个)加扰序列。第二选择组件724可基于指示信息在多个(例如,n个)加扰序列之中选择最小加扰序列。第二选择组件1924可以向存储器装置200输出最小加扰序列。
图10B是示出根据本发明的实施例的选择器725的示图。例如,图10B的选择器可以示出图8所示的选择器725。
参照图10B,选择器725包括第一选择组件727和第二选择组件729。
第一选择组件727可以从图7中的编码组件710_1至710_n的计数器接收多个(例如,n个)计数值,即,计数。第一选择组件727可以在多个计数值之中选择最低计数值。第一选择组件727可以输出指示信息,该指示信息指示多个随机序列之中与最低计数值相对应的随机序列。指示信息可以被传送到第二选择组件729。
第二选择组件729可从图7中的编码组件710_1至710_n的加扰器接收多个(例如,n个)加扰序列。第二选择组件729可基于指示信息在多个(例如,n个)加扰序列之中选择最小加扰序列。第二选择组件729可以向存储器装置200输出最小加扰序列。
图11是示出根据本发明的实施例的包括编码器的存储器***的示图。
参照图11,存储器***包括控制器和存储器装置200,该控制器包括编码器600A。编码器600A可包括如图7或图8所示的配置器705及编码模块(或引导加扰模块)710。配置器705基于位置信息利用适当数量的加扰器和寄存器来配置编码模块710,如下文所示。
逻辑页面的用户位(例如,CRC编码的用户位)可反馈至编码器600A中,然后可获得与用户位相关联的位置信息。该位置信息可包括块索引、字线索引和页面索引。配置器705可根据位置信息来配置用于编码模块710的参数。换句话说,配置器705可以决定多少随机序列被用于编码模块710。随机序列的数量被认为是可变的。
对于图5A中LSB的1-288之间的页面,配置器705可以进行配置,使得编码模块710具有4个加扰器和12个寄存器,并且选择具有最小数量的1的序列。对于图5A中LSB的289-576之间的页面,配置器705可进行配置,使得编码模块710具有8个加扰器和24个寄存器,并且选择具有最小数量的1的序列。换句话说,基于位置信息,配置器705可以随着位错误率的增加而利用更多的加扰器和寄存器来配置编码模块710。
对于图5A中MSB的1-288之间的页面,配置器705可进行配置,使得编码模块710具有8个加扰器和24个寄存器,并且选择具有最小数量的0的序列。对于图5A中MSB的289-576之间的页面,配置器705可进行配置,使得编码模块710具有4个加扰器和12个寄存器,并且选择具有最小数量的0的序列。换句话说,基于位置信息,配置器705可以随着位错误率的增加而利用更多的加扰器和寄存器来配置编码模块710。
编码模块710可以通过使用与由配置器705决定的数量对应的多个随机序列来加扰数据位,生成多个加扰序列作为候选。编码模块710可对每个候选中的特定逻辑值进行计数。在多个加扰序列之中,可以选择具有最小数量的逻辑值(bit-1(或“1”)或bit-0(或“0”))的最小加扰序列。
如上所述,在编程操作之前,使用自适应引导加扰来编码页面的用户位,以减少bit-1和bit-0的发生。引导加扰的设置取决于与用户位相关联的位置信息(即,页面索引、字线索引和块索引)。选择使用不同数量的加扰器的、具有最小数量的1或0的序列,并且将其存储在存储器装置的单元上。
图12是示出根据本发明的实施例的编码器的操作1200的流程图。例如,图12的操作可以由包括图6和图7至图11的编码器600A的存储器控制器100执行。
参照图12,编码操作1200可包括操作1210、1220、1230、1240和1250。操作1210可包括接收数据位和关于存储器装置的多个存储区域之中待存储数据位的存储区域的位置信息。操作1220可包括基于位置信息确定待使用的多个随机序列的数量。
在各个实施例中,位置信息包括关于与存储区域相关联的块、字线和逻辑页面的信息。
在各个实施例中,操作1200可进一步包括从与数据位相关联的命令获得位置信息。
在各个实施例中,操作1200可进一步包括基于所确定的数量配置多个随机生成器,以及使用多个种子生成多个随机序列。
操作1230可包括使用与确定的数量相对应的多个随机序列来加扰数据位,以生成多个加扰序列。
在各个实施例中,操作1230可包括通过多个加扰器中的每一个,通过对数据位与多个随机序列之中相应的随机序列执行XOR运算来加扰数据位。
在各个实施例中,操作1200可以进一步包括对多个加扰序列中的每一个的特定逻辑值的数量进行计数,以生成多个计数值,每个加扰序列一个计数值。可以针对每个加扰序列使用单独的计数器。
操作1240可包括在多个加扰序列之中选择加扰序列,所选择的加扰序列具有最小数量的特定逻辑值。
在各个实施例中,操作1240可包括在多个计数之中选择最低计数,从多个加扰序列之中选择与最低计数对应的加扰序列,并且输出所选择的加扰序列。最低计数可以表示最小数量的特定逻辑值。
操作1250可包括输出所选择的加扰序列以存储在存储器装置的存储区域中。
在各个实施例中,操作1200可进一步包括使用循环冗余码(CRC)来编码数据位以生成CRC编码数据位,并且输出待加扰的CRC编码数据位,使用低密度奇偶校验(LDPC)来编码所选择的加扰序列以生成LDPC编码序列并将LDPC编码序列输出到存储器装置。
在各个实施例中,逻辑页面包括最高有效位(MSB)页面、中间有效位(CSB)页面和最低有效位(LSB)页面的所选择的逻辑页面。
在各个实施例中,所选择的逻辑页面包括具有大于阈值的第一概率与第二概率的比率的逻辑页面。第一概率表示存储器装置中存储的逻辑高值被错误地读取为逻辑低值的概率,并且第二概率值表示存储器装置中存储的逻辑低值被错误地读取为逻辑高值的概率。
如上所述,根据实施例的包括编码器的存储器***可以通过多个随机加扰器对页面的用户位自适应地执行编码,并且选择导致最少数量的弱位的序列,从而减少诸如闪速存储器的存储器装置中的原始位错误。
尽管为了清楚和理解的目的,已经详细地说明和描述了上述实施例,但是本发明不限于所提供的细节。如本领域技术人员根据前述公开所理解的,存在许多实施本发明的可选方式。因此,所公开的实施例是说明性的,而非限制性的。本发明旨在包括落入权利要求范围内的所有修改和替换。
Claims (20)
1.一种存储器***,包括:
存储器装置,包括多个存储区域;以及
控制器,包括编码器,所述编码器:
接收数据位和关于所述多个存储区域之中待存储所述数据位的存储区域的位置信息;
基于所述位置信息确定待使用的多个随机序列的数量;
使用所确定数量的多个随机序列来加扰所述数据位,以生成多个加扰序列;
从所述多个加扰序列之中选择加扰序列,所选择的加扰序列在所述多个加扰序列之中具有最小数量的特定逻辑值;并且
输出所选择的加扰序列以存储在所述存储器装置的所述存储区域中。
2.根据权利要求1所述的存储器***,其中所述位置信息包括关于与所述存储区域相关联的块、字线和逻辑页面的信息。
3.根据权利要求2所述的存储器***,其中所述编码器包括:
配置器,从与所述数据位相关联的命令获得所述位置信息,并且基于所述位置信息确定所述多个随机序列的数量。
4.根据权利要求3所述的存储器***,其中所述编码器包括:
多个随机生成器,基于所确定的数量来配置,使用多个种子来生成所述多个随机序列;
多个加扰器,使用所述多个随机序列对所述数据位进行加扰以生成所述多个加扰序列,其中所述多个加扰器中的每一个使用所述多个随机序列之中的相应随机序列对所述数据位进行加扰;以及
选择器,在所述多个加扰序列之中选择具有最小数量的特定逻辑值的加扰序列,
其中,所述编码器包括多个编码组件,所述多个编码组件中的每一个包括所述多个随机生成器之中的相应随机生成器和所述多个加扰器之中的相应加扰器。
5.根据权利要求4所述的存储器***,其中所述多个加扰器中的每一个通过对所述数据位与所述多个随机序列之中的所述相应随机序列执行XOR运算来对所述数据位进行加扰。
6.根据权利要求4所述的存储器***,其中所述编码器进一步包括多个计数器,所述多个计数器输出多个计数,
所述多个计数器中的每一个对所述多个加扰序列之中的相应加扰序列中的所述特定逻辑值的数量进行计数,以输出相应计数,并且
所述多个编码组件中的每一个包括所述多个计数器之中的相应计数器。
7.根据权利要求6所述的存储器***,其中所述选择器包括:
第一选择组件,接收所述多个计数,并且从中选择最小计数;以及
第二选择组件,接收所述多个加扰序列,在所述多个加扰序列之中选择与所述最小计数相对应的加扰序列,并且输出所选择的加扰序列。
8.根据权利要求7所述的存储器***,其中所述编码器进一步包括:
第一编码组件,接收所述数据位,使用循环冗余码即CRC对所接收的数据位进行编码以生成CRC编码数据位,并且将所述CRC编码数据位输出到所述多个加扰器;以及
第二编码组件,接收所选择的加扰序列,使用低密度奇偶校验即LDPC来对所接收的加扰序列进行编码以生成LDPC编码序列,并且将所述LDPC编码序列输出到所述存储器装置。
9.根据权利要求3所述的存储器***,其中所述逻辑页面包括最高有效位即MSB页面、中间有效位即CSB页面和最低有效位即LSB页面的所选择的逻辑页面。
10.根据权利要求9所述的存储器***,其中所选择的逻辑页面包括具有大于阈值的第一概率与第二概率的比率的逻辑页面,所述第一概率指示所述存储器装置中存储的逻辑高值被错误地读取为逻辑低值的概率,并且所述第二概率指示所述存储器装置中存储的逻辑低值被错误地读取为逻辑高值的概率。
11.一种操作存储器***的方法,所述存储器***包括存储器装置,所述存储器装置包括多个存储区域,所述方法包括:
接收数据位和关于所述多个存储区域之中待存储所述数据位的存储区域的位置信息;
基于所述位置信息确定待使用的多个随机序列的数量;
使用所确定数量的多个随机序列来加扰所述数据位,以生成多个加扰序列;
从所述多个加扰序列之中选择加扰序列,所选择的加扰序列在所述多个加扰序列之中具有最小数量的特定逻辑值;并且
输出所选择的加扰序列以存储在所述存储器装置的所述存储区域中。
12.根据权利要求11所述的方法,其中所述位置信息包括关于与所述存储区域相关联的块、字线和逻辑页面的信息。
13.根据权利要求12所述的方法,进一步包括:
从与所述数据位相关联的命令获得所述位置信息。
14.根据权利要求13所述的方法,进一步包括:
基于所确定的数量来配置多个随机生成器;并且
使用多个种子生成所述多个随机序列。
15.根据权利要求14所述的方法,其中对所述数据位进行加扰包括:
由多个加扰器中的每一个,通过对所述数据位与所述多个随机序列之中的相应随机序列执行XOR运算来对所述数据位进行加扰。
16.根据权利要求14所述的方法,进一步包括:
由多个计数器中的每一个对所述多个加扰序列之中的相应加扰序列中的所述特定逻辑值的数量进行计数,以输出多个计数之中的相应计数。
17.根据权利要求16所述的方法,其中选择所述加扰序列包括:
选择所述多个计数之中的最低计数值;
在所述多个加扰序列之中选择与所述最低计数值相对应的加扰序列;并且
输出所选择的加扰序列。
18.根据权利要求17所述的方法,进一步包括:
使用循环冗余码即CRC对所述数据位进行编码以生成CRC编码数据位,并且输出待加扰的所述CRC编码数据位;并且
使用低密度奇偶校验即LDPC对所选择的加扰序列进行编码以生成LDPC编码序列,以将所述LDPC编码序列输出到所述存储器装置。
19.根据权利要求13所述的方法,其中所述逻辑页面包括最高有效位即MSB页面、中间有效位即CSB页面和最低有效位即LSB页面的所选择的逻辑页面。
20.根据权利要求19所述的方法,其中所选择的逻辑页面包括具有大于阈值的第一概率与第二概率的比率的逻辑页面,所述第一概率指示所述存储器装置中存储的逻辑高值被错误地读取为逻辑低值的概率,并且所述第二概率指示所述存储器装置中存储的逻辑低值被错误地读取为逻辑高值的概率。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/517,212 | 2019-07-19 | ||
US16/517,212 US10991409B2 (en) | 2019-07-19 | 2019-07-19 | Encoder for memory system and method thereof |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112241333A CN112241333A (zh) | 2021-01-19 |
CN112241333B true CN112241333B (zh) | 2024-06-28 |
Family
ID=74170405
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010125730.XA Active CN112241333B (zh) | 2019-07-19 | 2020-02-27 | 用于存储器***的编码器及其方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10991409B2 (zh) |
CN (1) | CN112241333B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10606790B2 (en) * | 2018-04-16 | 2020-03-31 | Intel Corporation | Precoding mechanism in PCI-express |
US11573854B2 (en) * | 2021-02-02 | 2023-02-07 | Nvidia Corporation | Techniques for data scrambling on a memory interface |
US20220385451A1 (en) * | 2021-05-26 | 2022-12-01 | Micron Technology, Inc. | Data invalidation for memory |
CN113611364B (zh) * | 2021-08-27 | 2022-04-08 | 中国人民解放军军事科学院军事医学研究院 | 面向dna存储的dna序列处理方法、装置与电子设备 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107346213A (zh) * | 2016-05-04 | 2017-11-14 | 爱思开海力士有限公司 | 存储器***及其操作方法 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE19638404C1 (de) * | 1996-09-19 | 1998-02-19 | Siemens Ag | Verfahren und Empfänger zum Ermitteln von mit dem CDMA-Verfahren codierten Symbolwertfolgen mit Hilfe individueller Viterbi-Algorithmen |
US7269778B1 (en) * | 2002-10-15 | 2007-09-11 | Marvell International Ltd. | Data coding for enforcing constraints on ones and zeros in a communications channel |
US8848913B2 (en) * | 2007-10-04 | 2014-09-30 | Qualcomm Incorporated | Scrambling sequence generation in a communication system |
US8154918B2 (en) | 2008-06-30 | 2012-04-10 | Sandisk Il Ltd. | Method for page- and block based scrambling in non-volatile memory |
JP4572981B2 (ja) * | 2008-12-16 | 2010-11-04 | コニカミノルタビジネステクノロジーズ株式会社 | カウントデータ記録装置ならびにカウントデータ記録方法およびプログラム |
US8935589B2 (en) * | 2009-06-02 | 2015-01-13 | Silicon Motion, Inc. | Controller and data access method for flash memories |
US8386856B2 (en) * | 2009-07-01 | 2013-02-26 | Silicon Motion, Inc. | Data storage device capable of selecting scrambled signals according to transmission power |
JP2012128778A (ja) * | 2010-12-17 | 2012-07-05 | Sony Corp | データ転送装置、メモリ制御装置、およびメモリシステム |
JP2012248110A (ja) * | 2011-05-30 | 2012-12-13 | Toshiba Corp | マルチチャネルを有するメモリ装置及び同装置における誤り訂正チャネル決定を含む書き込み制御方法 |
KR20130080203A (ko) * | 2012-01-04 | 2013-07-12 | 삼성전자주식회사 | 셀 상태들의 비대칭 특성을 고려한 프로그램 데이터를 생성하는 방법 및 그것을 이용한 메모리 시스템 |
GB2530043A (en) * | 2014-09-10 | 2016-03-16 | Ibm | Device and method for storing data in a plurality of multi-level cell memory chips |
US10236070B2 (en) * | 2017-06-27 | 2019-03-19 | Western Digital Technologies, Inc. | Read level tracking and optimization |
US10846172B2 (en) * | 2018-01-08 | 2020-11-24 | 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 |
-
2019
- 2019-07-19 US US16/517,212 patent/US10991409B2/en active Active
-
2020
- 2020-02-27 CN CN202010125730.XA patent/CN112241333B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107346213A (zh) * | 2016-05-04 | 2017-11-14 | 爱思开海力士有限公司 | 存储器***及其操作方法 |
Also Published As
Publication number | Publication date |
---|---|
US10991409B2 (en) | 2021-04-27 |
CN112241333A (zh) | 2021-01-19 |
US20210020217A1 (en) | 2021-01-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10997017B2 (en) | Neighbor assisted correction error recovery for memory system and method thereof | |
CN112241333B (zh) | 用于存储器***的编码器及其方法 | |
CN109428606B (zh) | 具有ldpc解码器的存储器***及其操作方法 | |
CN110444240B (zh) | 存储器***的编码器和解码器及其方法 | |
US11681554B2 (en) | Logical address distribution in multicore memory system | |
US10846172B2 (en) | Encoding method and system for memory device including QLC cells | |
CN111540393B (zh) | 用于基于字线分组的读取操作的存储器***和方法 | |
US11854629B2 (en) | System and method for non-parametric optimal read threshold estimation using deep neural network | |
US10938419B2 (en) | Encoding method and system for memory device including QLC cells | |
US11907571B2 (en) | Read threshold optimization systems and methods using domain transformation | |
US11036579B2 (en) | Decoder for memory system and method thereof | |
US11650795B2 (en) | Raw read based physically unclonable function for flash memory | |
US20210303715A1 (en) | Data scrambler for memory systems and method thereof | |
CN112216328B (zh) | 具有低复杂度解码的存储器***及其操作方法 | |
US11217319B2 (en) | Read threshold optimization systems and methods by multi-dimensional search | |
US11210008B2 (en) | Memory system for multi-clustering read thresholds and method thereof | |
CN114550785A (zh) | 使用元信息自适应地确定读取阈值电压的*** | |
US11150985B2 (en) | Decoder for memory system and method thereof | |
US11502703B2 (en) | Descrambler for memory systems and method thereof | |
CN110047554B (zh) | 具有超级芯片删除恢复的存储器***及其操作方法 | |
CN115708164A (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 |