CN115148257A - 存储器装置中基于压缩的数据操作 - Google Patents
存储器装置中基于压缩的数据操作 Download PDFInfo
- Publication number
- CN115148257A CN115148257A CN202210322397.0A CN202210322397A CN115148257A CN 115148257 A CN115148257 A CN 115148257A CN 202210322397 A CN202210322397 A CN 202210322397A CN 115148257 A CN115148257 A CN 115148257A
- Authority
- CN
- China
- Prior art keywords
- codeword
- data
- compressed
- memory device
- memory
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/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
- 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
- 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
- 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/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/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
- 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/0608—Saving storage space on storage systems
-
- 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/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- 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
- 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/40—Response verification devices using compression techniques
-
- 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
- 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
- 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
- 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
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)
- Microelectronics & Electronic Packaging (AREA)
- Computer Security & Cryptography (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本公开涉及存储器装置中基于压缩的数据操作。处理装置接收将数据写入到存储器装置的请求。所述处理装置基于所述数据而生成码字。所述码字包括所述数据和纠错码。所述处理装置通过压缩所述码字生成经压缩码字。所述处理装置将所述经压缩码字存储在所述存储器装置的页上。
Description
技术领域
本公开的实施例大体上涉及存储器子系统,且更具体地说,涉及存储器装置中基于压缩的数据操作。
背景技术
存储器子系统可以包含存储数据的一或多个存储器装置。存储器组件可以是例如非易失性存储器装置和易失性存储器装置。一般来说,主机系统可以利用存储器子系统以在存储器装置处存储数据并且从存储器装置检索数据。
发明内容
本公开的一方面提供了一种系统,其包括:存储器装置;以及耦合到所述存储器装置的处理装置,所述处理装置经配置以执行包括以下各项的操作:接收将数据写入到所述存储器装置的请求;基于所述数据而生成码字,所述码字包括所述数据和纠错码;通过压缩所述码字生成经压缩码字;以及将所述经压缩码字存储在所述存储器装置的页上。
本公开的另一方面提供了一种方法,其包括:在处理装置处接收将数据写入到存储器装置的请求;由所述处理装置基于所述数据而生成码字,所述码字包括所述数据和纠错码;由所述处理装置通过压缩所述码字生成经压缩码字;以及由所述处理装置将所述经压缩码字存储在所述存储器装置的页上。
本公开的另一方面提供了一种计算机可读存储媒体,其包括指令,所述指令在由处理装置执行时将所述处理装置配置成执行包括以下各项的操作:接收将数据写入到存储器装置的请求;基于所述数据而生成码字,所述码字包括所述数据和纠错码;通过压缩所述码字生成经压缩码字;以及将所述经压缩码字存储在所述存储器装置的页上。
本公开的另一方面提供了一种系统,其包括:用以生成码字的编码器,所述编码器用以通过利用纠错码对数据进行编码来生成所述码字;用以通过压缩所述码字生成经压缩码字的压缩器;以及用以存储所述经压缩码字的存储器装置。
附图说明
根据下文给出的详细描述和本公开的各个实施例的附图,将更充分地理解本公开。
图1是示出根据本公开的一些实施例的包含存储器子系统的示例计算环境的框图。
图2A和2B是示出根据本公开的一些实施例的用于使用压缩对存储器装置执行数据操作的示例存储器子系统控制器架构的框图。
图3和4是示出根据本公开的一些实施例的用于使用压缩将数据写入到存储器装置的示例方法的流程图。
图5是示出根据本公开的一些实施例的用于从存储器装置读取经压缩数据的示例方法的流程图。
图6是其中可以操作本公开的实施例的示例计算机系统的框图。
具体实施方式
本公开的各方面涉及在存储器子系统的存储器装置中执行基于压缩的数据操作。存储器子系统可以为存储装置、存储器模块,或存储装置和存储器模块的混合。下文结合图1描述存储装置和存储器模块的实例。一般来说,主机系统可利用包含一或多个组件(例如,存储数据的存储器装置)的存储器子系统。主机系统可以提供将要存储在存储器子系统处的数据并且可以请求将要从存储器子系统检索的数据。
存储器装置可以为非易失性存储器装置。非易失性存储器装置的一个实例是与非(NAND)存储器装置。下文结合图1描述非易失性存储器装置的其它实例。例如NAND存储器装置等一些存储器装置包含用以存储数据的存储器单元阵列(例如,快闪单元)。这些装置中的存储器单元可被分组为可指代用以存储数据的存储器装置的逻辑单元的页。
存储器子系统的控制器(也被称为“存储器子系统控制器”)可以从主机系统接收命令或操作,并且可以将所述命令或操作转换为指令或恰当的命令以对存储器装置执行数据操作。存储器子系统控制器可以利用纠错码(ECC)来检测和校正由存储器装置存储的被损坏用户数据。在将数据存储在存储器装置上时,存储器子系统控制器可以组合用户数据与ECC和其它信息以形成码字。
NAND装置中的页大小不断减小,以降低成本。随着页大小减小,NAND装置上的用于存储ECC的备用存储空间量减小。因此,存储器子系统校正错误的能力降低,这会影响NAND装置的错误率。另外,市场对存储器装置中更大的逻辑块大小的需求正在增加。
传统地,在存储器装置中使用压缩来增加容量并缩短数据传送长度。常规的压缩方法涉及在将用户数据存储到存储器装置上之前对其进行压缩。然而,存储器装置内的常规数据压缩方法忽略了与例如ECC和元数据等用户数据一起存储的额外数据。
本公开的各方面通过将压缩引擎并入到存储器子系统的控制器的数据路径中来解决存储器装置容量的前述问题。压缩引擎包含:压缩器,其用于压缩待存储于存储器装置上的数据;以及解压缩器,其用于解压缩存储器装置所存储的经压缩数据。不像常规方法那样在主用户数据路径中执行压缩,而是代替仅仅压缩并存储用户数据,还压缩并存储码字。因此,在利用ECC对传入用户数据进行编码之后对写入操作执行压缩,并且在对从存储器装置读取的码字进行解码之前对读取操作执行解压缩。可以在数据路径中使用压缩器和解压缩器的多个例子,以满足性能规范。
在实例中,由存储器子系统从主机系统接收将用户数据存储在存储器装置上的请求。在此实例中,存储器子系统中的控制器包含编码器,其用以通过利用ECC对用户数据进行编码来生成码字。所述控制器进一步包含用以压缩码字的压缩器。所述控制器将经压缩码字存储在存储器装置的页上。经压缩码字可以与一或多个额外经压缩码字一起存储在页上。经压缩码字长度可以存储在码字的报头中,以使得解压缩器能够解压缩码字。
在另一实例中,由存储器子系统从主机系统接收从存储器装置读取用户数据的请求。存储器子系统的控制器从存储器装置读取对应的经压缩码字。控制器的解压缩器解压缩所述经压缩码字,且解码器对未经压缩码字进行解码。控制器存取用户数据且将其作为输出提供到主机系统。
以此方式将数据压缩并入到存储器子系统控制器路径中提高了编码率,由此允许更高的错误率,所述错误率可被折衷以缩短程序延迟并增加持续时间。在存储器装置中,程序延迟和持续时间是非常重要的考虑因素,因为它们会影响导线性能和每日全盘写入(drive writes per day,DWPD)规范。另外,可以在NAND装置内使用较大的逻辑单元,而无需任何特殊的NAND页布局改变。并且,考虑到压缩,可以增加ECC大小,由此进一步发挥上述优势。
图1示出了根据本公开的一些实施例的包含存储器子系统110的示例计算系统100。存储器子系统110可以包含媒体,例如一或多个易失性存储器装置(例如,存储器装置140)、一或多个非易失性存储器装置(例如,存储器装置130)或其组合。
存储器子系统110可以为存储装置、存储器模块,或存储装置和存储器模块的混合。存储装置的实例包含固态驱动器(SSD)、快闪驱动器、通用串行总线(USB)快闪驱动器、嵌入式多媒体控制器(eMMC)驱动器、通用快闪存储(UFS)驱动器、安全数字(SD)卡,以及硬盘驱动器(HDD)。存储器模块的实例包含双列直插式存储器模块(DIMM)、小型DIMM(SO-DIMM)以及各种类型的非易失性双列直插式存储器模块(NVDIMM)。
计算系统100可以为计算装置,例如台式计算机、膝上型计算机、网络服务器、移动装置、载具(例如,飞机、无人机、火车、汽车或其它运输工具)、启用物联网(IoT)的装置、嵌入式计算机(例如,运载工具、工业设备或联网商业装置中包含的嵌入式计算机),或包含存储器和处理装置的此类计算装置。
计算系统100可以包含耦合到一或多个存储器子系统110的多个主机系统。在一些实施例中,主机系统120耦合到不同类型的存储器子系统110。图1示出了耦合到一个存储器子系统110的示例主机系统120。如本文中所使用,“耦合到”或“与…耦合”通常是指组件之间的连接,其可以是间接通信连接或直接通信连接(例如,不具有中间组件),无论是有线还是无线的,包含例如电连接、光学连接、磁性连接等连接。
主机系统120可以包含处理器芯片组和由处理器芯片组执行的软件堆叠。处理器芯片组可以包含一或多个核心、一或多个高速缓冲存储器、存储器控制器(例如,NVDIMM控制器),以及存储协议控制器(例如,外围组件互连高速(PCIe)控制器、串行高级技术附件(SATA)控制器)。主机系统120使用存储器子系统110,例如以将数据写入到存储器子系统110和从存储器子系统110读取数据。
主机系统120可以经由主机接口耦合到存储器子系统110。主机接口的实例包含但不限于SATA接口、PCIe接口、USB接口、光纤通道、串行连接的SCSI(SAS)、小型计算机系统接口(SCSI)、双数据速率(DDR)存储器总线、DIMM接口(例如,支持双数据速率(DDR)的DIMM套接接口)、开放NAND快闪接口(ONFI)、双数据速率(DDR)、低功率双数据速率(LPDDR)或任何其它接口。主机接口可用于在主机系统120与存储器子系统110之间传输数据。当存储器子系统110通过PCIe接口与主机系统120耦合时,主机系统120可以进一步利用NVM高速(NVMe)接口来存取组件(例如,存储器装置130)。主机接口可以提供用于在存储器子系统110与主机系统120之间传递控制、地址、数据和其它信号的接口。图1示出了存储器子系统110作为实例。一般来说,主机系统120可以经由相同通信连接、多个单独通信连接和/或通信连接的组合存取多个存储器子系统。
存储器装置130、140可以包含不同类型的非易失性存储器装置和/或易失性存储器装置的任何组合。易失性存储器装置(例如,存储器装置140)可以是但不限于随机存取存储器(RAM),例如动态随机存取存储器(DRAM)和同步动态随机存取存储器(SDRAM)。
非易失性存储器装置(例如,存储器装置130)的一些实例包含NAND型快闪存储器和就地写入存储器,例如三维(3D)交叉点存储器装置,其为非易失性存储器单元的交叉点阵列。非易失性存储器的交叉点阵列可以结合可堆叠交叉网格化数据存取阵列基于体电阻的变化来执行位存储。另外,与许多基于快闪的存储器相比,交叉点非易失性存储器可以执行就地写入操作,其中可以在不预先擦除非易失性存储器单元的情况下对非易失性存储器单元进行编程。NAND型快闪存储器包含例如二维NAND(2D NAND)和3D NAND。
存储器装置130中的每一者可以包含一或多个存储器单元阵列。一种类型的存储器单元,例如单层级单元(SLC),每单元可以存储一个位。其它类型的存储器单元,例如多层级单元(MLC)、三层级单元(TLC)、四层级单元(QLC)和五层级单元(PLC),每单元可以存储多个位。在一些实施例中,存储器装置130中的每一者可以包含一或多个存储器单元阵列,例如SLC、MLC、TLC、QLC或其任何组合。在一些实施例中,特定存储器装置可以包含存储器单元的SLC部分,以及MLC部分、TLC部分、QLC部分或PLC部分。存储器装置130的存储器单元可以分组为可指代用于存储数据的存储器装置的逻辑单元的页。例如,NAND存储器装置中的存储器单元在其控制栅极处水平地连接到字线以形成页。对于一些类型的存储器(例如,NAND),页可以分组以形成块。另外,存储器装置内的字线可被组织成多个字线组,其中的每一者包含一或多个字线,但每一字线组包含的字线比块中包含的字线少。
尽管描述了例如NAND型快闪存储器(例如,2D NAND、3D NAND)和3D交叉点非易失性存储器单元阵列等非易失性存储器组件,但存储器装置130可基于任何其它类型的非易失性存储器,例如只读存储器(ROM)、相变存储器(PCM)、自选存储器、其它基于硫属化物的存储器、铁电晶体管随机存取存储器(FeTRAM)、铁电随机存取存储器(FeRAM)、磁随机存取存储器(MRAM)、自旋转移力矩(STT)-MRAM、导电桥接RAM(CBRAM)、电阻性随机存取存储器(RRAM)、基于氧化物的RRAM(OxRAM)、或非(NOR)快闪存储器,以及电可擦除可编程只读存储器(EEPROM)。
存储器子系统控制器115(或为简单起见,控制器115)可以与存储器装置130通信以执行例如在存储器装置130处读取数据、写入数据或擦除数据等操作以及其它此类操作。存储器子系统控制器115可以包含硬件,例如一或多个集成电路和/或离散组件、缓冲器存储器,或其组合。硬件可以包含具有用以执行本文中所描述的操作的专用(即,硬译码)逻辑的数字电路系统。存储器子系统控制器115可以是微控制器、专用逻辑电路系统(例如,现场可编程门阵列(FPGA)、专用集成电路(ASIC)等)或另一合适的处理器。
存储器子系统控制器115可以包含经配置以执行存储在本地存储器119中的指令的处理器117(处理装置)。在所示的实例中,存储器子系统控制器115的本地存储器119包含经配置以存储指令的嵌入式存储器,所述指令用于执行控制存储器子系统110的操作(包含处理存储器子系统110与主机系统120之间的通信)的各种过程、操作、逻辑流程和例程。
在一些实施例中,本地存储器119可以包含存储存储器指针、所提取数据等的存储器寄存器。本地存储器119还可以包含用于存储微码的ROM。尽管图1中的示例存储器子系统110已示出为包含存储器子系统控制器115,但在本公开的另一实施例中,存储器子系统110不包含存储器子系统控制器115,并且可替代地依赖于(例如,由外部主机或由与存储器子系统分离的处理器或控制器提供的)外部控制。
一般来说,存储器子系统控制器115可以从主机系统120接收命令或操作,并且可以将所述命令或操作转换为指令或恰当的命令以实现对存储器装置130和/或存储器装置140的所需存取。存储器子系统控制器115可以负责其它操作,例如耗损均衡操作、垃圾收集操作、错误检测和ECC操作、加密操作、高速缓存操作和与存储器装置130相关联的逻辑地址(例如,逻辑块地址(LBA)、命名空间)与物理地址(例如,物理块地址)之间的地址翻译。存储器子系统控制器115可进一步包含主机接口电路系统,以经由物理主机接口与主机系统120通信。主机接口电路系统可将从主机系统120接收到的命令转换成命令指令以存取存储器装置130和/或存储器装置140,且将与存储器装置130和/或存储器装置140相关联的响应转换成用于主机系统120的信息。
在一些实施例中,存储器装置130包含本地媒体控制器135,其结合存储器子系统控制器115操作以对存储器装置130的一或多个存储器单元执行操作。
存储器子系统控制器115还包含至少一个压缩引擎113。取决于实施例,压缩引擎113可以包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令),或其组合。
压缩引擎113包含:压缩器114,其用于压缩待存储于存储器装置上的数据;以及解压缩器116,其用于解压缩存储器装置130或140所存储的经压缩数据。更具体地说,压缩器114压缩基于用户数据生成的码字,并且解压缩器116解压缩从存储器装置130或140读取的经压缩码字。每一码字包括用户数据、基于用户数据生成的ECC和元数据。在利用ECC对用户数据进行编码之后对写入操作执行压缩,并且在对从存储器装置读取的码字进行解码之前对读取操作执行解压缩。尽管图1仅示出了单个压缩器114和解压缩器116,但应了解,压缩器114和解压缩器116的多个例子可以包含于压缩引擎113中。
在一些实施例中,存储器子系统控制器115包含数据压缩引擎113的至少一部分。例如,存储器子系统控制器115可以包含处理器117(处理装置),其经配置以执行存储在本地存储器119中的指令以用于执行本文中所描述的操作。在一些实施例中,数据压缩引擎113的至少一部分是主机系统120、应用程序或操作系统的一部分。
图2A和2B是示出根据本公开的一些实施例的用于使用压缩对存储器装置执行数据操作的示例存储器子系统控制器架构的框图。在图2A和2B所示的实例中,存储器装置130是包含多个存储器块的NAND存储器装置。如图所示,NAND块包含页(行)和串(列)的阵列(2D或3D)。每一NAND单元包含晶体管,且在每一单元内,基于单元的逻辑值(例如,0或1),将数据存储为晶体管的阈值电压。串在NAND块内连接以允许数据从所选择单元的存储和检索。同一列中的NAND单元串联连接以形成位线(BL)。位线中的所有单元在一个末端上连接到共同接地,并且在另一末端上连接到共同感测放大器以用于读取单元中的一者的阈值电压。NAND单元在其控制栅极处水平地连接到字线(WL)以形成页。页为共享同一字线的连接单元的集合且是编程的最小单元。
参考图2A,示出了其中由存储器子系统控制器115从主机系统120接收将用户数据200写入到存储器装置130的请求的实例。响应于所述请求,编码器202利用纠错码(ECC)206对用户数据200进行编码。编码器202可以使用数种已知ECC技术(例如,低密度奇偶校验(LDPC))中的一者来生成ECC 206。
存储器子系统控制器115(例如,存储器子系统控制器115的固件)生成包含用户数据200、ECC 206和元数据208的码字204。元数据208可以包含数据地址(例如,LBA)和控制信息。压缩器114压缩码字204以生成经压缩码字204。压缩器114可以使用多种已知的一般压缩算法中的一者来压缩码字204,例如LZ77或LZ78。
经压缩码字204被提供到扰码器212,并且扰码器212对经压缩码字204进行加扰。在对经压缩码字204进行加扰时,扰码器212随机化位以确保DC平衡信号不具有长时间的1s或0s运行。存储器子系统控制器115将加扰的经压缩码字204存储在存储器装置130的页上。存储器子系统控制器115可以将额外的加扰的经压缩码字存储在页上。存储器子系统控制器115可以更新至少一个经压缩码字的报头以指定压缩长度以辅助码字的解压缩。
参考图2B,示出了其中由存储器子系统控制器115从主机系统120接收从存储器装置130读取用户数据250的请求的实例。通过存储器子系统控制器115从存储器装置130的页读取对应于所请求用户数据250的加扰的经压缩码字。
解扰器252对经压缩码字进行解扰并将经压缩码字提供到解压缩器116。解压缩器116解压缩经压缩码字并将经解压缩码字提供到解码器254。解码器254对码字进行解码以检测并校正从存储器装置130读取的用户数据250中的任何被损坏数据。解码器254提供用户数据250作为输出,所述输出被提供到主机系统120。
图3是根据本公开的一些实施例的示出用于通过将目标电荷电平的指示符传送到存储器装置将数据编程到存储器装置的示例方法300的流程图。可通过处理装置执行方法300,所述处理装置可以包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令),或其组合。在一些实施例中,处理装置包含图1的压缩引擎113。尽管以特定顺序或次序示出过程,但除非另外说明,否则可以修改过程的次序。因此,所示实施例应仅作为实例理解,并且所示过程可以不同次序执行,且一些过程可以并行执行。另外,可以在各种实施例中省略一或多个过程。因此,并非每个实施例中都使用所有过程。其它过程流程是可能的。
在操作305处,处理装置接收将用户数据写入到存储器装置(例如,存储器装置130)的请求。可从主机系统(例如,主机系统120)接收写入请求或所述写入请求可基于从所述主机系统接收的请求或命令。
在操作310处,处理装置基于用户数据而生成码字。所述码字包含用户数据、基于用户数据生成的ECC和元数据。在操作315处,处理装置通过压缩码字而生成经压缩码字。处理装置可使用多种已知的压缩技术中的一者来压缩码字。在操作320处,处理装置将经压缩码字存储在存储器装置的页上。
如图4所示,在一些实施例中,方法300可以包含操作405、410、415和420。根据这些实施例,操作405和410可作为其中处理装置生成码字的操作310的部分而执行。在操作405处,处理装置利用ECC对用户数据进行编码。在利用ECC对用户数据进行编码时,处理装置可使用多种已知的ECC技术(例如,LDPC)中的一者。在操作410处,处理装置添加与已编码用户数据相关联的元数据以形成码字。元数据包含关于存储器子系统控制器115在数据操作中所使用的码字的信息。
根据这些实施例,操作415可在其中处理装置压缩码字的操作315之后执行。在操作415处,处理装置更新码字以包含压缩长度的指示符。例如,处理装置可将压缩长度添加到码字的报头。当从存储器装置读取码字时使用压缩长度,以辅助解压缩码字。
根据这些实施例,操作420可在其中处理装置将经压缩关键字存储到存储器装置的页的操作320之后执行或与所述操作并行执行。在操作420处,处理装置将至少一个额外的经压缩码字与存储在存储器装置上的经压缩码字一起存储在存储器装置的页上。
在实例中,存储器装置的页大小为8KB,且每一经压缩码字为4KB。在此实例中,处理装置使得将第一经压缩码字写入到页上的对应于第一LBA的第一位置(在操作320处),并且处理装置使得将第二经压缩码字写入到页上的对应于第二LBA的第二位置(在420处)。
图5是根据本公开的一些实施例的示出用于通过将目标电荷电平的指示符传送到存储器装置将数据编程到存储器装置的示例方法500的流程图。可通过处理装置执行方法500,所述处理装置可以包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令),或其组合。在一些实施例中,处理装置包含图1的压缩引擎113。尽管以特定顺序或次序示出过程,但除非另外说明,否则可以修改过程的次序。因此,所示实施例应仅作为实例理解,并且所示过程可以不同次序执行,且一些过程可以并行执行。另外,可以在各种实施例中省略一或多个过程。因此,并非每个实施例中都使用所有过程。其它过程流程是可能的。
在操作505处,处理装置接收从存储器装置(例如,存储器装置130)读取用户数据的请求。可从主机系统(例如,主机系统120)接收读取请求或所述读取请求可基于从所述主机系统接收的请求或命令。
在操作510处,处理装置从存储器装置的页读取经压缩的经编码码字。码字包括用户数据、ECC和元数据。在操作515处,处理装置解压缩经压缩码字。在解压缩经压缩码字时,处理装置可从经压缩码字的报头存取压缩长度并基于所述压缩长度而解压缩经压缩码字。
在操作520处,处理装置对未经压缩码字进行解码。在对未经压缩码字进行解码时,处理装置可基于ECC而检测所请求用户数据中是否存在任何被损坏数据。如果检测到任何数据损坏,则在操作525处,处理装置在提供用户数据作为输出之前校正数据损坏。
尽管方法300和500在上文中被描述并示出为不同的方法,但应理解,在一些情况下,在方法500的执行期间接收到的读取请求所涉及的用户数据可以与在方法300的执行期间接收到的写入请求所涉及的用户数据相同。也就是说,在方法500期间由处理装置从存储器装置读取的用户数据可以与在方法300期间存储于存储器装置上的用户数据相同。因此,在一些实施例中,方法300的操作可以与方法500的操作组合。换句话说,在一些实施例中,单个方法(例如,方法500)可以包含操作305、310、315、320、405、410、415、420、505、510、515、520和525中的任何一或多个。
主题的具体实施方式可包含如下文借助于实例所说明的单独或组合的一或多个特征。
实例1为一种系统,其包含:存储器装置;以及耦合到所述存储器装置的处理装置,所述处理装置经配置以执行包括以下各项的操作:接收将数据写入到所述存储器装置的请求;基于所述数据而生成码字,所述码字包括所述数据和纠错码;通过压缩所述码字生成经压缩码字;以及将所述经压缩码字存储在所述存储器装置的页上。
实例2包含根据实例1所述的系统,其中生成所述码字包括:利用所述纠错码对所述数据进行编码。
实例3包含根据实例1或2中任何一或多者所述的系统,其中:所述经压缩码字是第一经压缩码字;并且所述操作进一步包括:将第二经压缩码字存储在所述存储器装置的所述页上。
实例4包含根据实例1至3中任何一或多者所述的系统,其中所述操作进一步包括:接收从所述存储器装置读取所述数据的请求;从所述存储器装置的所述页读取所述经压缩码字;解压缩所述经压缩码字;对所述经压缩码字进行解码;以及响应于所述请求而提供所述数据作为输出。
实例5包含根据实例1至4中任何一或多者所述的系统,其中对所述经压缩码字进行所述解码包括:基于所述纠错码而检测从所述存储器装置的所述页读取的所述数据中的被损坏数据;并且使用所述纠错码校正所述被损坏数据。
实例6包含根据实例1至5中任何一或多者所述的系统,其中解压缩所述经压缩码字包含存取所述码字的报头中的压缩长度。
实例7包含根据实例1至6中任何一或多者所述的系统,其中所述码字进一步包括元数据。
实例8包含根据实例1至7中任何一或多者所述的系统,其中所述存储器装置包括多个页,每一页包括一组NAND存储器单元。
实例9为一种方法,其包括:接收将数据写入到存储器装置的请求;基于所述数据而生成码字,所述码字包括所述数据和纠错码;通过压缩所述码字生成经压缩码字;以及将所述经压缩码字存储在所述存储器装置的页上。
实例10包含根据实例9所述的方法,其中生成所述码字包括:利用所述纠错码对所述数据进行编码。
实例11包含根据实例9或10中任何一或多者所述的方法,其中:所述经压缩码字是第一经压缩码字;并且所述操作进一步包括:将第二经压缩码字存储在所述存储器装置的所述页上。
实例12包含根据实例9至11中任何一或多者所述的方法,其中所述操作进一步包括:接收从所述存储器装置读取所述数据的请求;从所述存储器装置的所述页读取所述经压缩码字;解压缩所述经压缩码字;对所述经压缩码字进行解码;以及响应于所述请求而提供所述数据作为输出。
实例13包含根据实例9至12中任何一或多者所述的方法,其中对所述经压缩码字进行所述解码包括:基于所述纠错码而检测从所述存储器装置的所述页读取的所述数据中的被损坏数据;并且使用所述纠错码校正所述被损坏数据。
实例14包含根据实例9至13中任何一或多者所述的方法,其中解压缩所述经压缩码字包含存取所述码字的报头中的压缩长度。
实例15包含根据实例9至14中任何一或多者所述的方法,其中所述码字进一步包括元数据。
实例16包含根据实例9至15中任何一或多者所述的方法,其中所述存储器装置包括多个页,每一页包括一组NAND存储器单元。
实例17为一种计算机可读存储媒体,其包括指令,所述指令在由处理装置执行时将所述处理装置配置成执行包括以下各项的操作:接收将数据写入到存储器装置的请求;基于所述数据而生成码字,所述码字包括所述数据和纠错码;通过压缩所述码字生成经压缩码字;以及将所述经压缩码字存储在所述存储器装置的页上。
实例18包含根据实例17所述的计算机可读存储媒体,其中所述操作进一步包括:接收从所述存储器装置读取所述数据的请求;从所述存储器装置的所述页读取所述经压缩码字;解压缩所述经压缩码字;对所述经压缩码字进行解码;以及响应于所述请求而提供所述数据作为输出。
实例19为一种系统,其包括:用以生成码字的编码器,所述编码器用以通过利用纠错码对数据进行编码来生成所述码字;用以通过压缩所述码字生成经压缩码字的压缩器;以及用以存储所述经压缩码字的存储器装置。
实例20包含根据实例19所述的系统且进一步包括:用以解压缩从所述存储器装置读取的所述经压缩码字的解压器;以及用以对经解压缩码字进行解码的解码器。
图6示出了呈计算机系统600形式的示例机器,在其内可执行指令集以使得所述机器执行本文中所论述的方法中的任何一或多种。在一些实施例中,计算机系统600可对应于主机系统(例如,图1的主机系统120),所述主机系统包含、耦合到或利用存储器子系统(例如,图1的存储器子系统110),或可用于执行控制器的操作(例如,以执行操作系统,从而执行对应于图1的压缩引擎113的操作)。在替代实施例中,所述机器可以连接(例如,联网)到局域网(LAN)、内联网、外联网和/或因特网中的其它机器。机器可以作为点对点(或分散式)网络环境中的对等机器或作为云计算基础设施或环境中的服务器或客户端机器而以客户端-服务器网络环境中的服务器或客户端机器操作。
所述机器可为个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、蜂窝电话、网络器具、服务器、网络路由器、交换机或桥接器,或能够执行(依序或以其它方式)指定待由所述机器采取的动作的指令集的任何机器。另外,尽管示出了单个机器,但还应认为术语“机器”包含机器的任何集合,所述集合单独地或共同地执行一个指令集(或多个指令集)以执行本文中所论述的方法中的任何一或多种方法。
示例计算机系统600包含处理装置602、主存储器604(例如,ROM、快闪存储器、例如SDRAM或RDRAM的DRAM,等)、静态存储器606(例如,快闪存储器、静态随机存取存储器(SRAM)等),以及数据存储系统618,上述各项经由总线630彼此通信。
处理装置602表示一或多个通用处理装置,例如微处理器、中央处理单元等。更具体地说,处理装置602可以是复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器、或实施其它指令集的处理器或实施指令集的组合的处理器。处理装置602也可以是一或多个专用处理装置,例如ASIC、FPGA、数字信号处理器(DSP)、网络处理器等。处理装置602经配置以执行指令626,以用于执行本文中所论述的操作和步骤。计算机系统600可以进一步包含通过网络620通信的网络接口装置608。
数据存储系统618可以包含机器可读存储媒体624(也称为计算机可读媒体),其上存储有一或多个指令集626或体现本文中所描述的方法或功能中的任何一或多种的软件。指令626还可以在其由计算机系统600执行期间完全或至少部分地驻存在主存储器604内和/或处理装置602内,主存储器604和处理装置602也构成机器可读存储媒体。机器可读存储媒体624、数据存储系统618,和/或主存储器604可对应于图1的存储器子系统110。
在一个实施例中,指令626包含用以实施对应于压缩引擎(例如,图1的压缩引擎113)的功能性的指令。尽管机器可读存储媒体624在示例实施例中示出为单个媒体,但术语“机器可读存储媒体”应被认为包含存储一或多个指令集的单个媒体或多个媒体。术语“机器可读存储媒体”还应被认为包含能够存储供机器执行的指令集或对所述指令集进行编码以及使机器执行本公开的方法中的任何一或多种方法的任何媒体。因此,术语“机器可读存储媒体”应被认为包含但不限于固态存储器、光学媒体和磁性媒体。
已依据计算机存储器内的数据位的操作的算法和符号表示呈现了先前详细描述的一些部分。这些算法描述和表示是数据处理领域的技术人员用于将其工作的主旨最有效地传达给本领域的其他技术人员的方式。算法在这里并且通常被认为是引起期望结果的操作的自洽序列。操作为要求对物理量进行物理操控的操作。这些量通常但不一定呈能够被存储、组合、比较和以其它方式操控的电信号或磁信号的形式。有时,主要出于通用的原因,已经证明将这些信号称为位、值、元素、符号、字符、术语、数量等是方便的。
然而,应牢记,所有这些和类似术语应与恰当的物理量相关联,并且仅是应用于这些量的方便标记。本公开可以指计算机系统或类似电子计算装置的操控计算机系统的寄存器和存储器内的表示为物理(电子)量的数据并将所述数据变换为计算机系统的存储器或寄存器或其它此类信息存储系统内的类似地表示为物理量的其它数据的动作和过程。
本公开还涉及用于执行本文中的操作的设备。可以出于预期目的而构造此设备,或所述设备可以包含通过存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。此计算机程序可以存储在计算机可读存储媒体中,例如但不限于任何类型的盘(包含软盘、光盘、CD-ROM和磁性光盘)、ROM、RAM、EPROM、EEPROM、磁卡或光卡,或者适于存储电子指令的任何类型的媒体,它们各自耦合到计算机系统总线。
本文中呈现的算法和显示在本质上与任何特定的计算机或其它设备无关。各种通用系统可以与根据本文中的教示的程序一起使用,或其可以证明构造用以执行所述方法的更加专用的设备是方便的。将如下文描述中所阐述的那样来呈现多种这些系统的结构。另外,不参考任何特定编程语言描述本公开。应了解,可以使用各种编程语言来实施如本文中所描述的本公开的教示。
本公开可以提供为计算机程序产品或软件,其可以包含在其上存储有可以用于对计算机系统(或其它电子装置)进行编程以执行根据本公开的过程的指令的机器可读媒体。机器可读媒体包含用于以机器(例如,计算机)可读的形式存储信息的任何机制。在一些实施例中,机器可读(例如,计算机可读)媒体包含例如ROM、RAM、磁盘存储媒体、光学存储媒体、快闪存储器组件等机器(例如,计算机)可读存储媒体。
在前述说明书中,已参考其具体示例实施例描述了本公开的实施例。将显而易见的是,可以在不脱离如所附权利要求书中阐述的本公开的实施例的更广泛范围的情况下对本公开进行各种修改。因此,说明书和图式应被视为说明性的而非限制性的。
Claims (20)
1.一种系统,其包括:
存储器装置;以及
耦合到所述存储器装置的处理装置,所述处理装置经配置以执行包括以下各项的操作:
接收将数据写入到所述存储器装置的请求;
基于所述数据而生成码字,所述码字包括所述数据和纠错码;
通过压缩所述码字生成经压缩码字;以及
将所述经压缩码字存储在所述存储器装置的页上。
2.根据权利要求1所述的系统,其中生成所述码字包括:
利用所述纠错码对所述数据进行编码。
3.根据权利要求1所述的系统,其中:
所述经压缩码字是第一经压缩码字;并且
所述操作进一步包括:
将第二经压缩码字存储在所述存储器装置的所述页上。
4.根据权利要求1所述的系统,其中所述操作进一步包括:
接收从所述存储器装置读取所述数据的请求;
从所述存储器装置的所述页读取所述经压缩码字;
解压缩所述经压缩码字;
对所述经压缩码字进行解码;以及
响应于所述请求而提供所述数据作为输出。
5.根据权利要求4所述的系统,其中对所述经压缩码字进行所述解码包括:
基于所述纠错码而检测从所述存储器装置的所述页读取的所述数据中的被损坏数据;并且
使用所述纠错码校正所述被损坏数据。
6.根据权利要求4所述的系统,其中解压缩所述经压缩码字包含存取所述码字的报头中的压缩长度。
7.根据权利要求1所述的系统,其中所述码字进一步包括元数据。
8.根据权利要求1所述的系统,其中所述存储器装置包括多个页,每一页包括一组NAND存储器单元。
9.一种方法,其包括:
在处理装置处接收将数据写入到存储器装置的请求;
由所述处理装置基于所述数据而生成码字,所述码字包括所述数据和纠错码;
由所述处理装置通过压缩所述码字生成经压缩码字;以及
由所述处理装置将所述经压缩码字存储在所述存储器装置的页上。
10.根据权利要求9所述的方法,其中生成所述码字包括:
利用所述纠错码对所述数据进行编码。
11.根据权利要求9所述的方法,其中:
所述经压缩码字是第一经压缩码字;并且
所述方法进一步包括:
将第二经压缩码字存储在所述存储器装置的所述页上。
12.根据权利要求9所述的方法,其进一步包括:
接收从所述存储器装置读取所述数据的请求;
从所述存储器装置的所述页读取所述经压缩码字;
解压缩所述经压缩码字;
对所述经压缩码字进行解码;以及
响应于所述请求而提供所述数据作为输出。
13.根据权利要求12所述的方法,其中对所述经压缩码字进行所述解码包括:
基于所述纠错码而检测从所述存储器装置的所述页读取的所述数据中的被损坏数据;并且
使用所述纠错码校正所述被损坏数据。
14.根据权利要求12所述的方法,其中解压缩所述经压缩码字包含存取所述码字的报头中的压缩长度。
15.根据权利要求9所述的方法,其中所述码字进一步包括元数据。
16.根据权利要求9所述的方法,其中所述存储器装置包括多个页,每一页包括一组NAND存储器单元。
17.一种计算机可读存储媒体,其包括指令,所述指令在由处理装置执行时将所述处理装置配置成执行包括以下各项的操作:
接收将数据写入到存储器装置的请求;
基于所述数据而生成码字,所述码字包括所述数据和纠错码;
通过压缩所述码字生成经压缩码字;以及
将所述经压缩码字存储在所述存储器装置的页上。
18.根据权利要求17所述的计算机可读存储媒体,其中所述操作进一步包括:
接收从所述存储器装置读取所述数据的请求;
从所述存储器装置的所述页读取所述经压缩码字;
解压缩所述经压缩码字;
对所述经压缩码字进行解码;以及
响应于所述请求而提供所述数据作为输出。
19.一种系统,其包括:
用以生成码字的编码器,所述编码器用以通过利用纠错码对数据进行编码来生成所述码字;
用以通过压缩所述码字生成经压缩码字的压缩器;以及
用以存储所述经压缩码字的存储器装置。
20.根据权利要求19所述的系统,其进一步包括:
用以解压缩从所述存储器装置读取的所述经压缩码字的解压器;以及
用以对经解压缩码字进行解码的解码器。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/216,087 | 2021-03-29 | ||
US17/216,087 US11599414B2 (en) | 2021-03-29 | 2021-03-29 | Compression-based data operations in a memory device |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115148257A true CN115148257A (zh) | 2022-10-04 |
Family
ID=83364619
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210322397.0A Pending CN115148257A (zh) | 2021-03-29 | 2022-03-29 | 存储器装置中基于压缩的数据操作 |
Country Status (2)
Country | Link |
---|---|
US (2) | US11599414B2 (zh) |
CN (1) | CN115148257A (zh) |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8533550B2 (en) * | 2010-06-29 | 2013-09-10 | Intel Corporation | Method and system to improve the performance and/or reliability of a solid-state drive |
US9712190B2 (en) * | 2015-09-24 | 2017-07-18 | International Business Machines Corporation | Data packing for compression-enabled storage systems |
US10114549B2 (en) * | 2016-03-17 | 2018-10-30 | Sandisk Technologies Llc | Error correction code processing and data shaping for reducing wear to a memory |
US10176886B1 (en) * | 2017-07-07 | 2019-01-08 | Seagate Technology Llc | Multi-level data block error detection code |
-
2021
- 2021-03-29 US US17/216,087 patent/US11599414B2/en active Active
-
2022
- 2022-03-29 CN CN202210322397.0A patent/CN115148257A/zh active Pending
-
2023
- 2023-02-16 US US18/110,684 patent/US20230195571A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US20220308959A1 (en) | 2022-09-29 |
US20230195571A1 (en) | 2023-06-22 |
US11599414B2 (en) | 2023-03-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113345513B (zh) | 使用来自先前迭代的准则配置迭代性错误校正参数 | |
CN114981892A (zh) | 预读取及读取阈值电压优化 | |
US11907066B2 (en) | Managing storage of multiple plane parity data in a memory sub-system | |
US20240160363A1 (en) | Descrambling of scrambled linear codewords using non-linear scramblers | |
WO2023014482A1 (en) | Managing defective bitline locations in a bit flipping decoder | |
US20240134554A1 (en) | Smart swapping and effective encoding of a double word in a memory sub-system | |
US12086028B2 (en) | Reduction of errors in data retrieved from a memory device to apply an error correction code of a predetermined code rate | |
US11750218B2 (en) | Iterative error correction with adjustable parameters after a threshold number of iterations | |
CN117153232A (zh) | 用于不规则低密度奇偶校验解码的跨列缩放的位翻转阈值 | |
US11830545B2 (en) | Data programming techniques to store multiple bits of data per memory cell with high reliability | |
US11599414B2 (en) | Compression-based data operations in a memory device | |
US11734190B2 (en) | Generating codewords with diverse physical addresses for 3DXP memory devices | |
US20240289218A1 (en) | Touchup for memory device using embedded encoder/decoder | |
EP3743814A1 (en) | Storing critical data at a memory system | |
US11720273B2 (en) | Codeword error leveling for 3DXP memory devices | |
US11394403B1 (en) | Error correction based on rate adaptive low density parity check (LDPC) codes with flexible column weights in the parity check matrices | |
US11722151B2 (en) | Bit flipping decoder based on soft information | |
US20240154625A1 (en) | Bypassing iterations in a bit flipping decoder using a least reliable bit energy function | |
US20240296093A1 (en) | Error correction decoder, storage device including error correction decoder, and operating 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 |