CN107967187A - 物理页、逻辑页及码字对应 - Google Patents

物理页、逻辑页及码字对应 Download PDF

Info

Publication number
CN107967187A
CN107967187A CN201711351793.1A CN201711351793A CN107967187A CN 107967187 A CN107967187 A CN 107967187A CN 201711351793 A CN201711351793 A CN 201711351793A CN 107967187 A CN107967187 A CN 107967187A
Authority
CN
China
Prior art keywords
page
code word
data
logical
logical data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201711351793.1A
Other languages
English (en)
Other versions
CN107967187B (zh
Inventor
特洛伊·A·曼宁
特洛伊·D·拉森
马丁·L·卡利
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Micron Technology Inc
Original Assignee
Micron Technology Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Micron Technology Inc filed Critical Micron Technology Inc
Publication of CN107967187A publication Critical patent/CN107967187A/zh
Application granted granted Critical
Publication of CN107967187B publication Critical patent/CN107967187B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • G06F11/108Parity data distribution in semiconductor storages, e.g. in SSD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/10Indexing scheme relating to G06F11/10
    • G06F2211/1002Indexing scheme relating to G06F11/1076
    • G06F2211/104Metadata, i.e. metadata associated with RAID systems with parity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)

Abstract

本发明包含用于物理页、逻辑页及码字对应的设备及方法。数种方法包含将数个逻辑数据页错误译码为数个码字及将所述数个码字写入到数个存储器物理页。逻辑数据页的数目可不同于存储器物理页的数目。

Description

物理页、逻辑页及码字对应
本申请为发明名称为“物理页、逻辑页及码字对应”、申请号为201380023613.0、申请日为2013年3月8日的原中国发明专利申请的分案申请。
技术领域
本发明大体上涉及半导体存储器及方法,且更特定来说涉及用于物理页、逻辑页及码字对应的设备及方法。
背景技术
通常提供存储器装置作为计算机或其它电子装置中的内部半导体集成电路。存在许多不同类型的存储器,包含易失性存储器及非易失性存储器。易失性存储器可需要电力来维持其信息(例如,数据、错误信息等等)且包含随机存取存储器(RAM)、动态随机存取存储器(DRAM)及同步动态随机存取存储器(SDRAM),以及其它存储器。非易失性存储器可通过在未供电时留存所存储的数据而提供永久性数据且可包含NAND快闪存储器、NOR快闪存储器、只读存储器(ROM)、电可擦除可编程ROM(EEPROM)、可擦除可编程ROM(EPROM)及电阻可变存储器(例如相变随机存取存储器(PCRAM))、电阻性随机存取存储器(RRAM)及磁阻随机存取存储器(MRAM),以及其它存储器。
存储器装置可组合在一起以形成存储器系统的存储卷,例如固态驱动器(SSD)。固态驱动器可包含非易失性存储器(例如,NAND快闪存储器及/或NOR快闪存储器)及/或可包含易失性存储器(例如,DRAM及SRAM),以及各种其它类型的非易失性存储器及易失性存储器。
SSD可用以取代硬盘驱动器作为计算机的主存储卷,这是因为固态驱动器在性能、大小、重量、强度、操作温度范围及电力消耗方面优于硬盘驱动器。例如,SSD在与磁盘驱动器相比时因其缺乏移动部件而具有优越性能,此缺乏移动部件可避免与磁盘驱动器相关联的搜索时间、延时及其它机电延迟。SSD制造商可使用非易失性快闪存储器以产生可不使用内部电池供应器的快闪SSD,因此允许磁盘驱动器更通用且更紧凑。
SSD可从主机接收与例如读取及写入操作等存储器操作相关联的命令以(例如,在存储器装置与所述主机之间)传送数据。例如,增加与SSD相关联的吞吐量及/或增加SSD的存储容量可为有益的。
发明内容
根据一个实施例,本申请涉及一种用于操作存储器(110-1,110-N)的方法,所述方法包括:使用总码字大小的可变码字包装数据大小及可变码字有效负载大小来错误译码数据;以及在基于用于码字有效负载的所要错误校正量错误译码所述数据之前接收指示特定码字包装数据大小的输入。
根据另一实施例,本申请涉及一种用于操作存储器(110-1,110-N)的方法,所述方法包括:仅将包含逻辑数据页(222,322,422,622-0,622-1)的开始部分的所述逻辑数据页(222,322,422,622-0,622-1)的一部分编码为特定码字(224,324,424);以及写入多个存储器物理页(226,326,426,526-0,526-1,626)作为条带,其中所述多个存储器物理页(226,326,426,526-0,526-1,626)中的一者包含整数数目个码字(224,324,424),所述码字(224,324,424)包含所述特定码字(224,324,424)。
根据又一实施例,本申请涉及一种设备(104),其包括:数个存储器装置(110-1,110-N);以及控制器(108),其耦合到所述数个存储器装置(110-1,110-N)且经配置以:使用第一码率将第一逻辑数据页(222,322,422,622-0,622-1)的一部分错误译码为第一码字(224,324,424);以及使用第二码率将第二逻辑数据页(222,322,422,622-0,622-1)的一部分错误译码为第二码字(224,324,424),其中所述第一码字(224,324,424)的大小等于所述第二码字(224,324,424)的大小。
根据再一实施例,本申请涉及一种设备(104),其包括:数个存储器装置(110-1,110-N);以及控制器(108),其耦合到所述数个存储器装置(110-1,110-N)且经配置以:将多个逻辑数据页(222,322,422,622-0,622-1)映射到多个对应存储器物理页(226,326,426,526-0,526-1,626),其中非整数数目个所述多个逻辑数据页(222,322,422,622-0,622-1)被映射到所述多个存储器物理页(226,326,426,526-0,526-1,626)中的至少一者。
附图说明
图1是根据本发明的数个实施例呈包含至少一个存储器系统的计算系统的形式的设备的框图。
图2是根据本发明的数个实施例的页条带布局的框图。
图3是根据本发明的数个实施例包含已知有损坏部分的页条带布局的框图。
图4是根据本发明的数个实施例包含强制单元存取或无额外写入数据的页条带布局的框图。
图5是根据本发明的数个实施例用于写入逻辑页的缓冲器分配的框图。
图6是根据本发明的数个实施例用于损耗平衡的缓冲器分配的框图。
具体实施方式
本发明包含用于物理页、逻辑页及码字对应的设备及方法。数种方法包含将数个逻辑数据页错误译码为数个码字及将所述数个码字写入到数个存储器物理页。逻辑数据页的数目可不同于存储器物理页的数目。
进行页映射的一些先前途径包含逻辑数据页与存储器物理页之间的一对一对应。即,一个逻辑数据页中的数据量等于存储于存储器物理页中的数据量。相比而言,本发明的数个实施例使逻辑数据页大小(例如,主机逻辑页大小)与存储器物理页大小(例如,NAND页大小)不相关联。在本发明的一些实施例中,码字(例如,错误校正码(ECC)码字)可取决于存储器物理页的大小,但是可独立于逻辑数据页的大小。因此,可跨任意码字大小提供灵活的逻辑数据页大小,使得不同的主机区段大小可映射到任意存储器页。
本发明的数个实施例可包含ECC码字的可变码率,同时维持恒定码字大小。因此,本发明的一些实施例可管理码字有效负载大小(例如,并非物理页有效负载大小)的缓冲存储器。可维持启用RAIN条带(例如,包含灵活条带长度)以提供缺陷保护。固件可置于执行路径之外以提高速度。
在本发明的以下详细描述中,参考形成本发明的一部分且在其中通过图解说明展示可如何实践本发明的一或多个实施例的附图。这些实施例经足够详细地描述以使所属领域的一般技术人员能够实践本发明的实施例,且应了解,可使用其它实施例且可在不脱离本发明的范围的情况下做出处理过程改变、电改变及/或结构改变。如本文所使用,尤其关于图式中的参考数字的标示符“N”指示可包含如此指定的数个特定特征。如本文所使用,“数个”特定事物可指代一或多个此类事物(例如,数个存储器装置可指代一或多个存储器装置)。
本文的图遵循编号惯例,其中第一个数字或前几个数字对应于图式编号且剩余数字识别图式中的元件或组件。可通过使用类似数字来识别不同图之间的类似元件或组件。例如,222可指代图2中的元件“22”,且在图3中可将类似元件称为322。将了解,可添加、交换及/或消除本文中的各种实施例中展示的元件以提供本发明的数个额外实施例。此外,将了解,在图中提供的元件的比例及相对尺度意在说明本发明的某些实施例,且不应以限制意义来理解。
图1是根据本发明的数个实施例呈包含至少一个存储器系统104的计算系统100的形式的设备的框图。如本文所使用,存储器系统104、控制器108或存储器装置110还可单独视为“设备”。存储器系统104可为例如固态驱动器(SSD),且可包含主机接口106、控制器108(例如,处理器及/或其它控制电路)及数个存储器装置110-1、……、110-N(例如,例如NAND快闪装置等固态存储器装置),所述存储器装置提供用于存储器系统104的存储卷。
如图1中所说明,控制器108可经由多个通道耦合到主机接口106及存储器装置110-1、……、110-N,且可用以在存储器系统104与主机102之间传送数据。接口106可呈标准化接口的形式。例如,当存储器系统104用于计算系统100中的数据存储时,接口106可为串行高级技术附件(SATA)、高速外部组件互连(PCIe)或通用串行总线(USB),以及其它连接器及接口。然而,一般来说,接口106可提供用于在存储器系统104与主机102之间传递控制项、地址、数据及其它信号的接口,主机102具有用于接口106的兼容接纳器。
主机102可为主机系统,例如个人膝上型计算机、桌上型计算机、数码相机、移动电话或存储器读卡器,以及各种其它类型的主机。主机102可包含系统主板及/或背板,且可包含数个存储器存取装置(例如,数个处理器)。
控制器108可与存储器装置110-1、……、110-N通信以控制数据读取、写入及擦除操作,以及其它操作。虽然未具体说明,但是在一些实施例中,控制器108可包含用于将控制器108耦合到存储器装置110-1、……、110-N的每一通道的离散存储器通道控制器。控制器108可包含例如呈硬件及/或固件(例如,一或多个集成电路)及/或软件的形式的数个组件以控制对数个存储器装置110-1、……、110-N的存取及/或促进主机102与存储器装置110-1、……、110-N之间的数据传送。
在一些实施例中且如图1中说明,控制器108可包含错误译码组件112(例如,例如错误校正码(ECC)引擎等错误译码器)、缓冲组件114、映射组件116及独立NAND冗余阵列(RAIN)组件118。错误译码组件112、缓冲组件114、映射组件116及RAIN组件118中的每一者可为例如专用集成电路(ASIC)等离散组件,或所述组件可反映由控制器108内的无需具有与控制器108的其它部分分离的离散物理形式的电路提供的功能性。虽然说明为图1中的控制器108内的组件,但是错误译码组件112、缓冲组件114、映射组件116及RAIN组件118中的每一者可在控制器108外部或具有位于控制器108内的数个组件及位于控制器108外部的数个组件。例如,缓冲组件可包含位于控制器108上的数个缓冲器及位于控制器108外部的数个缓冲器。
错误译码组件112可经配置以将数个逻辑数据页错误译码为数个码字。例如,如本文中更详细描述,错误译码组件112可经配置以将非整数数目个逻辑数据页错误译码为整数数目个码字。错误译码组件112可经配置以将逻辑数据页及非整数数目个额外逻辑数据页错误译码为整数数目个码字。
码字可具有包含包装数据及有效负载的总大小。码字有效负载可指代在所述码字内编码的数据(例如,用户数据)。码字包装数据可指代在所述码字中连同用户数据一起编码的错误信息。错误译码组件112可编程地使用可变码字包装数据大小及可变码字有效负载大小。所述可变码字包装数据大小及所述可变码字有效负载大小可编程为用户功能(例如,可经由主机接口106编程)或可在制造之后针对特定应用程序而编程。例如,可根据码字有效负载的所要错误校正量编程码字包装数据大小。在一些实施例中,可基于特定码字包装数据大小而编程码字有效负载大小(例如,其中固定数目个及/或整数数目个码字经设计以适配于物理页中使得码字的总大小固定而包装数据及/或有效负载大小可变)。在总码字大小中,较大的码字包装数据为码字有效负载提供更多错误保护,但是导致更小码字有效负载,且因此导致用户数据的减小存储器的密度,这是因为用户数据接着被分裂为各自具有与其一起存储的较大码字包装数据的较小部分。一旦已编程特定码字包装数据及/或码字有效负载大小,便可将数据错误译码为具有经编程有效负载大小的码字。
码字有效负载大小对总码字大小的比率在本文中被称为码率。在本发明的一些实施例中,可使用第一码率将第一逻辑数据页的一部分错误译码为第一码字,且可使用第二码率将第二逻辑数据页的一部分错误译码为第二码字。第一码字与第二码字的大小可相等。因此,第一码字的码字有效负载大小可不同于第二码字的码字有效负载大小。在数个实施例中,可将码率设定为可编程选项。
缓冲组件114可包含分段为多个逻辑缓冲器段的多个物理缓冲器(例如,使得特定物理缓冲器分段为一个以上逻辑缓冲器段)。每一逻辑缓冲器段可对应于码字有效负载大小(例如,每一逻辑缓冲器段可存储的信息与码字有效负载中所存储的信息一样多)。每一物理缓冲器可对应于物理页大小(例如,每一物理缓冲器可存储的信息与每一物理页所存储的信息一样多)。所述多个物理缓冲器中的数个物理缓冲器可在控制器108外部及/或内部。控制器108可经配置以基于逻辑页大小而与主机102通信且基于总码字大小缓冲管理存储器装置110-1、……、110-N。
在数个实施例中,控制器108可经配置以通过将数个逻辑数据页的一部分错误译码为各自具有等于数个逻辑缓冲器段中的每一者的大小的有效负载大小的数个码字而将所述数个逻辑数据页的所述部分错误译码为所述数个码字。所述数个码字的有效负载在写入到存储器物理页之前可在所述数个逻辑缓冲器段中缓冲。
在数个实施例中,控制器108可包含映射组件116且可经配置以将多个逻辑数据页映射到多个对应存储器物理页。所述多个逻辑数据页中的非整数数目个逻辑数据页可映射到所述多个存储器物理页中的每一者。在本文中且尤其关于图5更详细地描述与映射组件116相关联的额外功能性。
RAIN组件118可有助于保护存储于存储器装置110、……、110-N中的数据。RAIN为例如在多个存储器装置之间分配及/或复制信息的计算机信息存储方案的涵盖性术语。RAIN阵列中的多个存储器装置可对用户及计算机的操作系统呈现为单个存储器装置(例如,光盘)。RAIN可包含条带化(例如,分裂)信息,使得所述信息的不同部分存储在不同的存储器装置(例如,存储器装置110、……、110-N)上。存储分裂数据的一个以上装置的部分被统称为条带。相比而言,RAIN还可包含镜像,其可包含将数据复本存储在一个以上装置上。作为实例,可跨N个存储器装置中的N-1个存储器装置条带化写入数据,其中错误信息可存储在第N个存储器装置中。错误信息(例如,奇偶数据)可通过RAIN组件118(例如,通过XOR电路)计算且写入到第N个存储器装置。RAIN组件118可采用灵活条带长度。RAIN组件118可经配置以跨多个存储器装置110-1、……、110-N将数据写入到条带中及/或读取条带中的数据。例如,控制器108可经配置以从多个存储器物理页读取数据条带,其中所述多个存储器物理页中的每一者存储相应多个码字。控制器108可经配置以组合来自所述多个存储器物理页中的一者的相应多个码字中的一个以上码字的有效负载部分以形成逻辑数据页。所述逻辑数据页可接着被(例如,作为数个区段)传送到主机。在本文中且尤其关于图2更详细描述关于RAIN操作的额外细节。
存储器装置110-1、……、110-N可包含数个存储器单元(例如,非易失性存储器单元)阵列。所述阵列可为具有例如NAND架构的快闪存储器阵列。然而,实施例并不限于特定类型的存储器阵列或阵列架构。所述存储器单元可被分组为例如包含数个物理页的数个块。数个块可包含于存储器单元的平面中,且一阵列可包含数个平面。作为一个实例,存储器装置可经配置以每页存储8KB(千字节)的用户数据、每块存储128页用户数据、每平面存储2048个块且每装置存储16个平面。
在操作中,可将数据作为例如物理数据页写入到存储器系统的存储器装置(例如,系统104的存储器装置110-1、……、110-N)及/或从所述存储器装置读取。因而,物理数据页可被称为存储器系统的数据传送大小。数据可按称为区段(例如,主机区段)的数据段传送到/从主机(例如,主机102)传送。因而,数据区段可被称为主机的数据传送大小。多个区段可构成逻辑数据页。
虽然物理数据页可包含数个字节的用户数据(例如,包含数个数据区段的数据有效负载)以及对应于用户数据的元数据,但是物理数据页的大小通常可仅指代用户数据的字节数目。作为实例,具有4KB的页大小的物理数据页可包含4KB用户数据(例如,4KB逻辑数据页)以及对应于用户数据的数个字节(例如,32B、54B、224B等等)的元数据。所述元数据可包含完整性数据(例如错误数据,例如,错误检测及/或校正码数据)及/或地址数据(例如,逻辑地址数据),以及对应于用户数据的其它元数据。
图2为根据本发明的数个实施例的页条带布局220的框图。根据本发明的数个实施例,所述页条带布局说明数个逻辑页222、数个码字224与数个物理页226之间的相关。数个逻辑数据页222可被错误译码为数个码字224。例如,物理页元数据228、逻辑页LP0及逻辑页LP1的一部分可被错误译码为码字CW0、CW1、CW2及CW3。数个码字224可被写入到数个存储器物理页226,其中逻辑数据页222的数目不同于存储器物理页226的数目。例如,码字CW0、CW1、CW2及CW3可被写入到物理页D0P0(例如,与裸片零、平面零相关联的物理页)。在一些实施例中,物理页元数据228可包含条带(例如,条带长度)、时戳、擦除计数、块类型及/或更多或更少信息的定义。如图2中说明,物理页元数据228并不具有专用码字,而是连同逻辑页的一部分一起进行编码(例如,CW0包含物理页元数据228及LP0的一部分)。
在一些实施例中,可将数个逻辑数据页222的一部分(例如,LP0及LP1的一部分)编码为数个码字224(例如,CW0、CW1、CW2及CW3)。可将数个码字224(例如,CW0、CW1、CW2及CW3)写入到一个存储器物理页(例如,D0P0)。可通过将特定逻辑数据页(例如,LP0)错误译码为第一码字(例如,CW0)的第一有效负载部分及第二码字(例如,CW1)的第二有效负载部分而错误译码所述数个逻辑数据页的部分。第一码字(例如,CW0)的大小可等于第二码字(例如,CW1)的大小。存储器物理页的大小可独立于数个逻辑数据页222中的任一者的大小。
如图2中说明,可将逻辑页LP1的剩余部分(例如,连同物理页元数据及逻辑页LP2的一部分一起)错误译码为与物理页D0P1相关联且(例如,连同物理页元数据、逻辑页LP2及逻辑页LP3的一部分一起)写入到物理页D0P1的不同码字CW0。因此,错误译码数个逻辑数据页可包含将非整数数目个逻辑数据页错误译码为整数数目个码字。如图2中所说明,在一些实施例中,每一存储器物理页可与整数数目个码字相关联(例如,每物理页四个码字,但是实施例并不限于每页特定数目个码字)。可将整数数目个码字写入到整数数目个存储器物理页。对于给定条带,码字224的数目可不同于逻辑数据页222的数目及与其相关联的存储器物理页226的数目。
针对图2中所说明的实施例,错误译码数个逻辑数据页222可包含将物理页元数据228及第一逻辑数据页(例如,LP0)的第一部分错误译码为第一码字(例如,CW0)、将第一逻辑数据页(例如,LP0)的第二部分错误译码为第二码字(例如,CW1)、将所述第一逻辑数据页(例如,LP0)的第三部分及第二逻辑数据页(例如,LP1)的第一部分错误译码为第三码字(例如,CW2)、将所述第二逻辑数据页(例如,LP1)的第二部分错误译码为第四码字(例如,CW3)。将数个码字224写入到数个存储器物理页226可包含将所述第一码字(例如,CW0)、所述第二码字(例如,CW1)、所述第三码字(例如,CW2)及所述第四码字(例如,CW3)写入到第一存储器物理页(例如,D0P0)。错误译码数个逻辑数据页222可进一步包含将第二物理页的物理页元数据、所述第二逻辑数据页(例如,LP1)的第三部分及第三逻辑数据页(例如,LP2)的第一部分错误译码为第五码字(例如,D0P1中的CW0)。可将所述第五码字(例如,D0P1中的CW0)以及其它信息写入到第二存储器物理页(例如,D0P1)。
还如图2中所说明,页条带布局220可包含用于条带的数个奇偶数据页(例如,“DnP0–平面0奇偶”及“DnP1–平面1奇偶”,但是实施例并不限于特定数目个奇偶数据页)。在奇偶数据之前,图2还说明最后一个逻辑数据页(例如,LPx)结束时“浪费的”数据。此“浪费的”数据可用以填充最后一个码字,这是因为根据本发明的数个实施例,数个逻辑数据页中可用的数据量不一定在条带的码字边界处结束,因为(如本文所述)非整数数目个逻辑数据页可被编码为整数数目个码字。在一些实施例中,每存储器物理页的码字的整数数目可保持恒定,而与整数数目个码字中的任一者的码率无关。
关于读取操作,可从多个存储器物理页226读取数据条带,其中存储器物理页226中的每一者存储相应多个码字224且可组合来自所述存储器物理页中的一者的相应多个码字224的一个以上码字224的有效负载部分以形成逻辑数据页222。例如,第一码字(例如,CW0)的一部分及第三码字(例如,CW2)的一部分可与第二码字(例如,CW1)(其中的每一者是从第一物理页读取(例如,D0P0))组合,以形成第一逻辑数据页(例如,LP0)。可组合来自多个存储器物理页226中的一个以上存储器物理页226的相应多个码字224中的一个以上码字224的有效负载部分以形逻辑数据页222。例如,来自第一存储器物理页(例如,D0P0)的第三码字(例如,CW2)的一部分及第四码字(例如,CW3)可与来自第二存储器物理页(例如,D0P1)的第一码字(例如,CW0)的一部分组合以形成第二逻辑数据页(例如,LP1)。
读取数据条带可包含读取整数数目个码字224。例如,每存储器物理页226、每裸片(例如,每D0、D1、……、Dn)、每条带等等可读取整数数目个码字224。可组合来自多个物理页226的相应多个码字224的有效负载部分以形成多个逻辑数据页222。组合所述相应多个码字222的有效负载部分可包含组合所述相应多个码字中的第一者(例如,CW3)的整个有效负载部分与所述相应多个码字中的第二者(例如,CW2)的少于整个有效负载部分以形成逻辑数据页(例如,与D0P0相关联的LP1)。
图2中还说明实例逻辑页格式230(例如,LP4的格式)。逻辑页格式230可包含逻辑页元数据232及数个主机区段234(例如,每逻辑页8个区段;然而,实施例并不限于此)。逻辑页元数据232可包含逻辑块地址(LBA)编号、有效区段位映射及逻辑页类型,以及更多或更少数据。主机区段234可包含有效负载(例如,512字节到528字节,然而实施例不限于此)及数据路径保护(DPP)信息,以及更多或更少数据。在一些实施例中,例如循环码冗余检查(CRC)信息的错误信息可包含于逻辑页格式内。
除本发明的其它益处之外,本文所述的页条带布局可启用用户数据压缩方案,所述用户数据压缩方案允许在逐页基础上的可变压缩速率,以及在其它基础上的可变压缩速率。此类可变压缩方案的细节超出本发明的范围。
图3为根据本发明的数个实施例包含已知有损坏部分336的页条带布局320的框图。除所述已知有损坏部分336以外,页条带布局320可类似于图2中说明的页条带布局220。即,页条带布局320可包含逻辑数据页322、码字324及物理数据页326。多个逻辑数据页322可映射到多个对应存储器物理页326,其中多个逻辑页322中的非整数数目个逻辑页322映射到多个存储器物理页326中的每一者。
例如,在图3中,已知有损坏部分336可为存储器单元的有损坏物理块(例如,与D1P1相关联,使得与D1P1相关联的物理页因此也被视为有损坏)。对于其中条带布局320包含已知有损坏部分336的那些情况,控制器可经配置以至少部分响应于多个逻辑页322中的特定者的特定部分336被映射到已知有损坏存储器物理页(例如,D1P1)而略过以主机数据填入多个逻辑页322中的所述特定者。略过填入意味着控制器可避免将主机数据填入对应于有损坏物理页(例如,D1P1)的逻辑数据页322。原本将被填入到逻辑数据页322的数据可被填入到页条带布局320中的后续逻辑数据页322(例如,至少一个后续逻辑数据页)。
控制器可进一步经配置而以错误数据填入多个逻辑数据页322中的特定者的第二部分,其中多个逻辑数据页322中的所述特定者的第二部分映射到已知的良好存储器物理页。控制器可经配置以将多个逻辑数据页322映射到RAIN条带中的多个存储器物理页326。
例如,与D1P1相关联的存储器物理页被视为有损坏。与D1P1相关联的存储器物理页至少对应于原始页条带布局320中的逻辑页LP5、LP6及LP7的部分。因此,即使仅LP5的一部分及LP7的一部分对应于与D1P1相关联的存储器物理页,仍可通过控制器略过填入逻辑页LP5、LP6及LP7(例如,未被填入主机数据)。原本将被填入到LP5、LP6及LP7的数据可被填入到后续逻辑页(例如,LP8、LP9及LP10)。如图3中所说明,LP5的一部分及LP7的一部分对应于良好存储器物理页(例如,D1P0及D2P0)。因此,可将可用以维持RAIN条带的错误数据填入LP5及LP7或LP5及LP7的对应于良好存储器物理页的至少部分(例如,使得奇偶数据可经计算且对于RAIN条带有效)。在一些实施例中,填入到略过填入的逻辑页或其对应于良好存储器物理页的部分的错误数据可为随机产生的数据。
图4为根据本发明的数个实施例包含强制单元存取(FUA)或无额外写入数据的页条带布局420的框图。可对于即刻写入到物理存储器的逻辑数据页指示FUA(例如,无需等待后续数据量被填入,使得可同时编程额外存储器物理页)。在一些实施例中,关于FUA的存储器操作可类似于不存在可用的额外写入数据时的存储器操作。
例如,关于图4,可对于LP4指示FUA,使得在对额外逻辑数据页(例如,LP5)填入任何数据之前将LP4中的数据写入到对应存储器物理页(例如,D1P0)。可维持RAIN条带布局420,然而,归因于FUA,可在不同的写入操作期间(例如,非同时)写入物理页D1P0与D1P1。
类似地,如果在逻辑数据页(例如,LP4)之后无可用的额外写入数据,那么在对额外逻辑数据页(例如,LP5)填入任何数据之前将LP4中的数据写入到对应存储器物理页(例如,D1P0)。可维持RAIN条带布局420,然而,归因于例如暂时缺乏额外写入数据而可在不同的写入操作期间(例如,非同时)写入物理页D1P0与D1P1。
因此,在一些实施例中,控制器可经配置以至少部分响应于与多个逻辑数据页422中的前一个逻辑页相关联的FUA及/或目前无额外写入数据可供写入而略过将主机数据填入多个逻辑页422中的特定者(例如,LP5)。控制器可经配置以在将主机数据填入逻辑数据页438(例如,LP4)之后但在将与多个逻辑数据页422的前一个逻辑页(例如,LP4)相关联的数据写入多个存储器物理页426的数个物理页(例如,物理页D1P0)之前将错误数据(例如,如本文所述的RAIN条带的奇偶数据,其在一些实例中可为随机数据或其它非主机数据)填入多个逻辑页422中的特定者(例如,LP5)的第一部分440。如本文所述,此错误数据可有助于维持RAIN条带(例如,RAIN条带的奇偶数据),且此错误数据可包含例如随机产生的数据。所述错误数据的其它实例可包含所有0、所有1等等。
控制器可经配置以在FUA之后及/或额外写入数据变得可用之后以错误数据填入多个逻辑数据页422中的特定者(例如,LP5)的第二部分442。例如,控制器可经配置以在FUA之后及/或额外写入数据变得可用时在下一逻辑数据页444(例如,LP6)中继续填入有效主机数据。
图5为根据本发明的数个实施例用于写入逻辑页的缓冲器分配的框图。如本文所述,物理缓冲器可分隔成数个逻辑缓冲器段。例如,物理缓冲器546-0可分隔成第一数目个逻辑缓冲器段548-0(例如,“BUFFER0”、“BUFFER1”、“BUFFER2”及“BUFFER3”),物理缓冲器546-1可分隔成第二数目个逻辑缓冲器段548-1(例如,“BUFFER4”、“BUFFER5”、“BUFFER6”及“BUFFER7”),且物理缓冲器546-2可分隔成第三数目个逻辑缓冲器段548-2(例如,“BUFFER8”)。物理缓冲器可分隔成任何数目个逻辑缓冲器段,且实施例并不限于图5中说明的实例。物理缓冲器可具有等于存储器物理页的大小(例如,物理缓冲器546-0可具有等于存储器物理页526-0的大小)。在一些实施例中,逻辑缓冲器段可具有等于码字有效负载大小的大小。例如,可在第一逻辑缓冲器段(例如,“BUFFER0”)中缓冲的信息量可等于ECC码字的有效负载。所述逻辑缓冲器段可在错误译码数据以存储于存储器物理页中之前缓冲所述数据。因此,提供大小等于码字有效负载的逻辑缓冲器段可有助于在缓冲组件(例如,图1中说明的缓冲组件114)与错误译码组件(例如,图1中说明的错误译码组件112)之间提供快速且有效的数据传送。
写入操作(例如,条带写入操作)可开始于对第一逻辑数据页的写入请求。可分配足以存储所述逻辑数据页的数个逻辑缓冲器段(例如,在此实例中三个逻辑缓冲器段“BUFFER0”、“BUFFER1”、“BUFFER2”及“BUFFER3”)。第一逻辑缓冲器段(例如,“BUFFER0”)的一部分可缓冲存储器物理页元数据528及逻辑数据页元数据532-0。可针对存储器元数据528的物理页(例如,位置0)及数据元数据的逻辑页(例如,位置27)中的每一者映射所述第一逻辑缓冲器段(例如,“BUFFER0”)内的开始部分的位置。可映射逻辑数据页的开始部分的位置(例如,映射到条带)。逻辑数据页的开始部分的位置可对应于错误译码为数个码字的数个逻辑数据页的部分。各种映射可有利于从条带读取各个部分。例如,可使用映射来识别包含逻辑数据页的开始部分的条带,且可将偏移计入所述条带中以识别多个存储器物理页中的一者及包含逻辑数据页的开始部分的特定码字。在数个实施例中,可基于包含例如以下各者的一组参数确定逻辑数据页的地址:存储器物理页总大小、存储器物理页元数据大小、码字总大小、码字有效负载大小、主机区段大小及逻辑页元数据大小。
主机区段可被填入到逻辑数据页(例如,与写入请求相关联的逻辑数据页)中。所分配的逻辑缓冲器段(例如,“BUFFER0”、“BUFFER1”、“BUFFER2”及“BUFFER3”)可至少部分缓冲逻辑数据页。在一些实施例中,控制器可经配置以在逐主机区段基础上至少部分缓冲所分配的逻辑缓冲器段中的信息。例如,可在第一逻辑缓冲器段(例如,“BUFFER0”)中缓冲第一主机区段“0”、第二主机区段“1”及第三主机区段“2”。可在第一逻辑缓冲器段(例如,“BUFFER0”)中缓冲第四主机区段“3”的一部分以完全填充所述第一逻辑缓冲器段。可在第二逻辑缓冲器段(例如,“BUFFER1”)中缓冲所述第四主机区段“3”的剩余部分。在一些实施例中,逻辑数据页可包含8个主机区段(例如,主机区段0到7),然而,实施例并不限于每逻辑数据页特定数目个主机区段。如图5中说明,可在第二逻辑缓冲器段(例如,“BUFFER1”)及第三逻辑缓冲器段(例如,“BUFFER2”)的一部分中缓冲主机区段4到7。控制器可经配置以至少部分缓冲所分配的逻辑缓冲器段中的逻辑数据页,使得逻辑数据页填充(例如,完全填充)除所述所分配的逻辑缓冲器段中的一者以外的所有逻辑缓冲器段(例如,其中逻辑数据页完全填充逻辑缓冲器段“BUFFER0”及逻辑缓冲器段“BUFFER1”且部分填充逻辑缓冲器段“BUFFER2”)。
后续逻辑数据页(无论相同于第一逻辑数据页的写入请求的部分还是后续写入请求)可分配有逻辑缓冲器段。例如,后续逻辑数据页可被分配第三逻辑缓冲器段(例如,“BUFFER2”)的剩余部分以及第四逻辑缓冲器段(例如,“BUFFER3”)及第五逻辑缓冲器段(例如,“BUFFER4”)。例如,在缓冲逻辑页元数据532-1之后可填充开始于第一逻辑数据页在第三逻辑缓冲器段(例如,“BUFFER2”)中停止之处的后续分配的逻辑缓冲器段。如图5中说明,可在第三逻辑缓冲器段(例如,“BUFFER2”)及第四逻辑缓冲器段(例如,“BUFFER3”)中缓冲且在第五逻辑缓冲器段(例如,“BUFFER4”)中部分缓冲后续逻辑数据页(例如,包含后续主机区段0到7)。图5还说明在逻辑缓冲器段(例如,“BUFFER4”、“BUFFER5”及“BUFFER6”)中缓冲的第三逻辑数据页(例如,包含第三主机区段0到7)。图5还说明在逻辑缓冲器段(例如,“BUFFER6”、“BUFFER7”及“BUFFER8”)中缓冲的第四逻辑数据页(例如,包含第四主机区段0到7)。
逻辑数据页(及至少一个主机区段)可横越逻辑缓冲器边界(例如,第一分配逻辑缓冲器段“BUFFER0”与第二分配逻辑缓冲器段“BUFFER1”之间的边界)。链结可从所分配逻辑缓冲器段中的第一者(例如,“BUFFER0”)映射到所分配逻辑缓冲器段中的第二者(例如,“BUFFER1”)。所述链结可结合横越第一逻辑缓冲器段(例如,“BUFFER0”)与第二逻辑缓冲器段(例如,“BUFFER1”)之间的逻辑缓冲器边界的特定主机区段而使用。此外,可在后续逻辑缓冲器段之间(例如,逻辑缓冲器段“BUFFER1”与逻辑缓冲器段“BUFFER2”之间,等等)映射链结。
在已填充物理缓冲器(例如,包含包括于其中的逻辑缓冲器段)之后,可错误译码所述物理缓冲器且将所述物理缓冲器写入到存储器物理页。例如,可错误译码物理缓冲器546-0且将物理缓冲器546-0写入到存储器物理页526-0,且可错误译码物理缓冲器546-1且将物理缓冲器546-1写入到存储器物理页526-1。在一些实施例中,可将多个物理缓冲器一起写入到多个存储器物理页(例如,在多平面写入操作及RAIN条带写入操作中,等等)。
如本文所述,可基于总码字大小通过在多个逻辑缓冲器段中的每一者中缓冲相应码字的有效负载而缓冲管理存储器。与主机的通信可基于逻辑页大小通过与主机传达逻辑数据页来进行,其中所述逻辑数据页包含来自所述多个逻辑缓冲器段中的每一者的相应码字有效负载。
图6为根据本发明的数个实施例用于损耗平衡操作的缓冲器分配的框图。损耗平衡操作的一个实例被视为废弃项目收集。废弃项目收集可包含(例如,根据“贪婪算法”)回收具有最无效页的块(例如,擦除具有最无效页的块及使得具有最无效页的块可用于写入)。或者,废弃项目收集可包含回收具有多于阈值量的无效页的块。例如,无效页可为已更新到不同页的数据页。
例如,可针对损耗平衡识别两个逻辑数据页(例如,第一逻辑数据页622-0及第二逻辑数据页622-1)。在此实例中,第一逻辑数据页622-0可包含主机区段0到7且第二逻辑数据页622-1可包含主机区段8到15。每一逻辑数据页可具有对应数目个码字(例如,三个码字可分别对应于每一逻辑页),但是整数数目个码字可对应于非整数数目个逻辑数据页。即,例如,每一逻辑数据页可具有三个对应的码字,但是特定逻辑数据页不一定将所有信息存储在所有三个码字中。可读取针对损耗平衡识别的逻辑页的对应数目个码字,且可在经分配用于损耗平衡操作的数个逻辑缓冲器段中缓冲码字有效负载(例如,可在第一数目个逻辑缓冲器段648-0中缓冲第一逻辑页622-0的码字有效负载,且可在第二数目个逻辑缓冲器段648-1中缓冲第二逻辑页622-1的码字有效负载)。
可获知所述两个逻辑数据页中的每一者的开始部分的位置(例如,在特定逻辑缓冲器段内的位置),如本文所述(例如,逻辑数据页622-0可在旧的物理页元数据628-X之后(但是包含旧的第一逻辑页元数据632-X0)的19处具有开始部分的位置,且逻辑数据页622-1可在231处(包含旧的第二逻辑页元数据632-X1)具有开始部分的位置)。由物理缓冲器分段而成的第三数目个逻辑缓冲器段648-2(例如,“BUFFER9”、“BUFFER10”、“BUFFER11”及“BUFFER12”)可经分配用于损耗平衡操作。可在新分配的缓冲器段(例如,“BUFFER9”)中产生并缓冲用于待作为损耗平衡操作的部分而写入的新的物理页的物理页元数据628-Y。
可针对作为损耗平衡操作的部分的单页写入填入链结清单。所述链结清单可包含经分配用于损耗平衡操作的第一逻辑缓冲器段(例如,数个逻辑缓冲器段648-2中的“BUFFER9”)的位置的识别、物理页元数据628-Y的计数、链结及存储第一逻辑数据页622-0及第二逻辑数据页622-1的每一缓冲器的计数。可通过逻辑缓冲器段将每一项目的计数及到下一项目(例如到下一逻辑缓冲器段,例如从“BUFFER0”到“BUFFER1”)的链结填入所述链结列表中的项目。所述计数可识别与每一项目相关联的信息量。所述链结列表还可包含整个清单的总计数。因此,来自第一逻辑数据页622-0及第二逻辑数据页622-1的数据可移动到逻辑缓冲器段648-2(例如,缓冲器9到12)。随后,逻辑缓冲器段648-2(例如,缓冲器9到12)可被写入到存储器物理页626。
于在逻辑缓冲器段648-2中缓冲第一逻辑数据页622-0及第二逻辑数据页622-1之后,可将第一逻辑数据页622-0的一部分及第二逻辑数据页622-1写入到存储器物理页626。例如,写入到存储器物理页626的第一逻辑数据页622-0的部分及第二逻辑数据页622-1可包含第一逻辑页元数据632-Y0、第二逻辑页元数据632-Y1、所有主机区段0到14及主机区段15的一部分。在更新第二逻辑数据页622-1的逻辑-物理地址表(例如,LBA表)中的项目之前,可将主机区段15的剩余部分写入到新的存储器物理页。
结论
本发明包含用于物理页、逻辑页及码字对应的设备及方法。数种方法包含将数个逻辑数据页错误译码为数个码字及将所述数个码字写入到数个存储器物理页。逻辑数据页的数目可不同于存储器物理页的数目。
虽然已说明并描述特定实施例,但是所属领域的一般技术人员应了解,适合实现相同结果的布置可替代所展示的特定实施例。本发明希望涵盖本发明的一或多个实施例的调适或变动。应了解,以上描述是以说明性方式而非限制性方式做出。所属领域的一般技术人员在审阅以上描述后将了解上述实施例的组合及本文未明确描述的其它实施例。本发明的一或多个实施例的范围包含其中使用上述结构及方法的其它应用。因此,应参考所附权利要求书连同此权利要求书所具有的等效物的全部范围来确定本发明的一或多个实施例的范围。
在前述“具体实施方式”中,为简化本发明的目的,将一些特征一起分组于单个实施例中。本发明的此方法不应被解释为反映本发明的所揭示实施例必须使用比明确陈述于每一请求项中更多的特征的意图。实际上,如所附权利要求书所反映,发明标的在于少于单个所揭示实施例的全部特征。因此,特此将所附权利要求书并入“具体实施方式”中,其中每一请求项独立地作为单独实施例。

Claims (15)

1.一种用于操作存储器(110-1,110-N)的方法,所述方法包括:
使用总码字大小的可变码字包装数据大小及可变码字有效负载大小来错误译码数据;以及
在基于用于码字有效负载的所要错误校正量错误译码所述数据之前接收指示特定码字包装数据大小的输入。
2.根据权利要求1所述的方法,其中所述方法进一步包括:
基于所述特定码字包装数据大小设定特定码字有效负载大小;以及
将所述数据错误译码为具有所述特定码字有效负载大小的码字(224,324,424)。
3.根据权利要求1到2中任一权利要求所述的方法,其中所述方法进一步包括:
基于逻辑页大小与主机(102)通信;以及
基于所述总码字大小缓冲管理所述存储器(110-1,110-N)。
4.根据权利要求3所述的方法,其中基于总码字大小缓冲管理所述存储器(110-1,
110-N)包括在多个逻辑缓冲器段(548-0,548-1,548-2,648-0,648-1,648-2)中的每一者中缓冲相应码字(224,324,424)的有效负载;且
其中基于逻辑页大小与所述主机(102)通信包括将逻辑数据页(222,322,422,
622-0,622-1)传达到所述主机(102),所述逻辑数据页(222,322,422,622-0,622-1)包括来自所述多个逻辑缓冲器段(548-0,548-1,548-2,648-0,648-1,648-2)中的每一者的相应码字有效负载。
5.一种用于操作存储器(110-1,110-N)的方法,所述方法包括:
仅将包含逻辑数据页(222,322,422,622-0,622-1)的开始部分的所述逻辑数据页(222,322,422,622-0,622-1)的一部分编码为特定码字(224,324,424);以及
写入多个存储器物理页(226,326,426,526-0,526-1,626)作为条带,其中所述多个存储器物理页(226,326,426,526-0,526-1,626)中的一者包含整数数目个码字(224,324,424),所述码字(224,324,424)包含所述特定码字(224,324,424)。
6.根据权利要求5所述的方法,其中所述方法进一步包括:
将所述逻辑数据页(222,322,422,622-0,622-1)的所述开始部分的位置映射到所述条带;以及
通过以下操作读取所述逻辑数据页(222,322,422,622-0,622-1):
使用所述映射以识别包含所述逻辑数据页(222,322,422,622-0,622-1)的所述开始部分的所述条带;以及
将偏移计入所述量条带中以识别所述多个存储器物理页(226,326,426,526-0,526-1,626)的所述一者及包含所述逻辑数据页(222,322,422,622-0,622-1)的所述开始部分的所述特定码字(224,324,424)。
7.一种设备(104),其包括:
数个存储器装置(110-1,110-N);以及
控制器(108),其耦合到所述数个存储器装置(110-1,110-N)且经配置以:
使用第一码率将第一逻辑数据页(222,322,422,622-0,622-1)的一部分错误译码为第一码字(224,324,424);以及
使用第二码率将第二逻辑数据页(222,322,422,622-0,622-1)的一部分错误译码为第二码字(224,324,424),其中所述第一码字(224,324,424)的大小等于所述第二码字(224,324,424)的大小。
8.根据权利要求7所述的设备(104),其中所述控制器(108)经进一步配置以将整数数目个码字(224,324,424)写入到存储器物理页(226,326,426,526-0,526-1,626),其中所述整数数目个码字(224,324,424)对应于非整数数目个逻辑数据页(222,322,422,622-0,622-1)。
9.根据权利要求8所述的设备(104),其中码字(224,324,424)的所述整数数目是恒定的而与所述整数数目个码字(224,324,424)中的任一者的码率无关。
10.根据权利要求7到9中任一权利要求所述的设备(104),其中所述第一码字(224,324,424)的有效负载大小不同于所述第二码字(224,324,424)的有效负载大小。
11.根据权利要求7到9中任一权利要求所述的设备(104),其中所述控制器(108)经配置以接收输入以将码率设定为可编程选项。
12.一种设备(104),其包括:
数个存储器装置(110-1,110-N);以及
控制器(108),其耦合到所述数个存储器装置(110-1,110-N)且经配置以:
将多个逻辑数据页(222,322,422,622-0,622-1)映射到多个对应存储器物理页(226,326,426,526-0,526-1,626),其中非整数数目个所述多个逻辑数据页(222,322,422,622-0,622-1)被映射到所述多个存储器物理页(226,326,
426,526-0,526-1,626)中的至少一者。
13.根据权利要求12所述的设备(104),其中所述控制器(108)经进一步配置以至少部分响应于所述多个逻辑页(222,322,422,622-0,622-1)中的特定者的特定部分被映射到已知有损坏存储器物理页而略过以主机数据填入所述多个逻辑页(222,322,
422,622-0,622-1)的所述特定者。
14.根据权利要求12所述的设备(104),其中所述控制器(108)经进一步配置以至少部分响应于与所述多个逻辑页(222,322,422,622-0,622-1)中的前一个逻辑页相关联的强制单元存取FUA而略过以主机数据填入所述多个逻辑页(222,322,422,622-0,622-1)中的特定者。
15.根据权利要12到14中任一权利要求所述的设备(104),其中所述控制器(108)经进一步配置以至少部分响应于没有额外主机数据当前可用于写入而略过以主机数据填入所述多个逻辑页(222,322,422,622-0,622-1)中的特定者。
CN201711351793.1A 2012-03-15 2013-03-08 一种存储器设备及用于操作存储器的方法 Active CN107967187B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/421,088 US9026887B2 (en) 2012-03-15 2012-03-15 Physical page, logical page, and codeword correspondence
US13/421,088 2012-03-15
CN201380023613.0A CN104272262B (zh) 2012-03-15 2013-03-08 物理页、逻辑页及码字对应

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201380023613.0A Division CN104272262B (zh) 2012-03-15 2013-03-08 物理页、逻辑页及码字对应

Publications (2)

Publication Number Publication Date
CN107967187A true CN107967187A (zh) 2018-04-27
CN107967187B CN107967187B (zh) 2019-11-26

Family

ID=49158860

Family Applications (3)

Application Number Title Priority Date Filing Date
CN201911060952.1A Pending CN110941507A (zh) 2012-03-15 2013-03-08 一种存储器设备及用于操作存储器的方法
CN201711351793.1A Active CN107967187B (zh) 2012-03-15 2013-03-08 一种存储器设备及用于操作存储器的方法
CN201380023613.0A Active CN104272262B (zh) 2012-03-15 2013-03-08 物理页、逻辑页及码字对应

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN201911060952.1A Pending CN110941507A (zh) 2012-03-15 2013-03-08 一种存储器设备及用于操作存储器的方法

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN201380023613.0A Active CN104272262B (zh) 2012-03-15 2013-03-08 物理页、逻辑页及码字对应

Country Status (7)

Country Link
US (4) US9026887B2 (zh)
EP (1) EP2825960B1 (zh)
JP (1) JP6053078B2 (zh)
KR (1) KR101660150B1 (zh)
CN (3) CN110941507A (zh)
TW (1) TWI514139B (zh)
WO (1) WO2013138190A1 (zh)

Families Citing this family (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9159422B1 (en) * 2011-04-12 2015-10-13 Sk Hynix Memory Solutions Inc. Cross page management to avoid NAND physical page size limitation
US9021337B1 (en) 2012-05-22 2015-04-28 Pmc-Sierra, Inc. Systems and methods for adaptively selecting among different error correction coding schemes in a flash drive
US8996957B1 (en) 2012-05-22 2015-03-31 Pmc-Sierra, Inc. Systems and methods for initializing regions of a flash drive having diverse error correction coding (ECC) schemes
US9021333B1 (en) 2012-05-22 2015-04-28 Pmc-Sierra, Inc. Systems and methods for recovering data from failed portions of a flash drive
US8788910B1 (en) 2012-05-22 2014-07-22 Pmc-Sierra, Inc. Systems and methods for low latency, high reliability error correction in a flash drive
US9021336B1 (en) 2012-05-22 2015-04-28 Pmc-Sierra, Inc. Systems and methods for redundantly storing error correction codes in a flash drive with secondary parity information spread out across each page of a group of pages
US9183085B1 (en) * 2012-05-22 2015-11-10 Pmc-Sierra, Inc. Systems and methods for adaptively selecting from among a plurality of error correction coding schemes in a flash drive for robustness and low latency
US9047214B1 (en) 2012-05-22 2015-06-02 Pmc-Sierra, Inc. System and method for tolerating a failed page in a flash device
US9176812B1 (en) * 2012-05-22 2015-11-03 Pmc-Sierra, Inc. Systems and methods for storing data in page stripes of a flash drive
US8793556B1 (en) 2012-05-22 2014-07-29 Pmc-Sierra, Inc. Systems and methods for reclaiming flash blocks of a flash drive
US8972824B1 (en) 2012-05-22 2015-03-03 Pmc-Sierra, Inc. Systems and methods for transparently varying error correction code strength in a flash drive
US9442840B2 (en) * 2012-12-19 2016-09-13 Qualcomm Incorporated Virtual boundary codes in a data image of a read-write memory device
US9053012B1 (en) 2013-03-15 2015-06-09 Pmc-Sierra, Inc. Systems and methods for storing data for solid-state memory
US9009565B1 (en) 2013-03-15 2015-04-14 Pmc-Sierra, Inc. Systems and methods for mapping for solid-state memory
US9026867B1 (en) 2013-03-15 2015-05-05 Pmc-Sierra, Inc. Systems and methods for adapting to changing characteristics of multi-level cells in solid-state memory
US9081701B1 (en) 2013-03-15 2015-07-14 Pmc-Sierra, Inc. Systems and methods for decoding data for solid-state memory
US9208018B1 (en) 2013-03-15 2015-12-08 Pmc-Sierra, Inc. Systems and methods for reclaiming memory for solid-state memory
KR102195298B1 (ko) 2014-02-13 2020-12-24 삼성전자주식회사 비휘발성 메모리 장치의 부분 페이지 프로그램 방법
US9299457B2 (en) 2014-02-23 2016-03-29 Qualcomm Incorporated Kernel masking of DRAM defects
US9448745B2 (en) * 2014-03-13 2016-09-20 NXGN Data, Inc. Configurable read-modify-write engine and method for operating the same in a solid state drive
KR102308777B1 (ko) 2014-06-02 2021-10-05 삼성전자주식회사 비휘발성 메모리 시스템 및 비휘발성 메모리 시스템의 동작방법
CN105278867A (zh) * 2014-07-24 2016-01-27 宇瞻科技股份有限公司 储存装置的载入方法及分割方法
US10176039B2 (en) 2014-09-19 2019-01-08 Micron Technology, Inc. Self-accumulating exclusive OR program
TWI556254B (zh) * 2014-10-14 2016-11-01 慧榮科技股份有限公司 資料儲存裝置及其資料存取方法
US9703631B2 (en) * 2015-03-20 2017-07-11 Burlywood, LLC Storage emulation in a storage controller
TWI560718B (en) * 2015-03-27 2016-12-01 Silicon Motion Inc Data storage device and encoding method thereof
US20160299844A1 (en) * 2015-04-08 2016-10-13 Sandisk Enterprise Ip Llc Mapping Logical Groups of Data to Physical Locations In Memory
US9946594B2 (en) * 2015-08-19 2018-04-17 International Business Machines Corporation Validation bits and offsets to represent logical pages split between data containers
US9940034B2 (en) 2016-01-25 2018-04-10 International Business Machines Corporation Reducing read access latency by straddling pages across non-volatile memory channels
US10318378B2 (en) 2016-02-25 2019-06-11 Micron Technology, Inc Redundant array of independent NAND for a three-dimensional memory array
US10198313B2 (en) * 2016-03-11 2019-02-05 Western Digital Technologies, Inc. Redundancy of error correction encoded data in a storage system
US10169142B2 (en) * 2016-07-12 2019-01-01 Futurewei Technologies, Inc. Generating parity for storage device
KR102706994B1 (ko) * 2016-09-07 2024-09-19 에스케이하이닉스 주식회사 메모리 컨트롤러, 반도체 메모리 시스템 및 그것의 동작 방법
JP6524039B2 (ja) * 2016-09-23 2019-06-05 東芝メモリ株式会社 メモリシステム及び制御方法
US10877842B2 (en) * 2017-09-08 2020-12-29 Intel Corporation Detecting silent data corruption for mass storage devices
TWI664531B (zh) * 2018-01-25 2019-07-01 矽創電子股份有限公司 快閃記憶體之控制器及控制方法
US11314425B2 (en) 2018-05-08 2022-04-26 Micron Technology, Inc. Read error recovery
CN110489351B (zh) * 2018-05-14 2021-03-09 英韧科技(上海)有限公司 芯片指纹管理装置及安全芯片
US11221910B2 (en) * 2018-07-24 2022-01-11 Micron Technology, Inc. Media scrubber in memory system
US10824502B2 (en) * 2018-08-08 2020-11-03 Micron Technology, Inc. Enhanced codeword for media persistence and diagnostics
US10817430B2 (en) 2018-10-02 2020-10-27 Micron Technology, Inc. Access unit and management segment memory operations
US10789126B2 (en) 2018-10-09 2020-09-29 Micron Technology, Inc. Multiple memory devices having parity protection
US11188250B2 (en) * 2018-10-25 2021-11-30 Micron Technology, Inc. Two-stage hybrid memory buffer for multiple streams
US10963342B2 (en) * 2019-02-01 2021-03-30 Micron Technology, Inc. Metadata-assisted encoding and decoding for a memory sub-system
US10915400B1 (en) * 2019-11-08 2021-02-09 Micron Technology, Inc. Dynamic over provisioning allocation for purposed blocks
US11144392B1 (en) * 2020-07-17 2021-10-12 Toshiba Memory Corporation Payload distribution in solid state drives
US11481151B2 (en) * 2020-07-17 2022-10-25 Kioxia Corporation Payload spill boundary table assisted read in solid state drives
US11620068B2 (en) * 2021-01-06 2023-04-04 EMC IP Holding Company LLC Data transfer optimizations
US11550658B1 (en) 2021-09-02 2023-01-10 Western Digital Technologies, Inc. Storage system and method for storing logical-to-physical address table entries in a codeword in volatile memory

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1923792A1 (en) * 2006-11-20 2008-05-21 Samsung Electronics Co., Ltd Apparatus and method of managing nonvolatile memory
CN101937399A (zh) * 2009-07-02 2011-01-05 联发科技股份有限公司 在非易失性存储器上执行随机写入操作的方法与装置
CN101999116A (zh) * 2008-03-11 2011-03-30 艾格瑞系统有限公司 通过交叉页面扇区、多页面编码以及每一页面编码将数据存储在多级单元闪速存储器装置中的方法和设备
US20110280068A1 (en) * 2010-05-17 2011-11-17 Seagate Technology Llc Joint encoding of logical pages in multi-page memory architecture

Family Cites Families (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3020060A (en) 1960-07-13 1962-02-06 Gen Motors Corp Steering arrangement for a solid front axle suspension
WO1992002879A1 (en) 1990-08-03 1992-02-20 Du Pont Pixel Systems Limited Virtual memory system
JP4199519B2 (ja) * 2002-11-05 2008-12-17 パナソニック株式会社 メモリ管理装置及びメモリ管理方法
US7739577B2 (en) * 2004-06-03 2010-06-15 Inphase Technologies Data protection system
US20060282643A1 (en) * 2005-06-10 2006-12-14 Subramanyam Chandramouli Transparent low-density mode for multi-level cell flash memory devices
US7681109B2 (en) 2005-10-13 2010-03-16 Ramot At Tel Aviv University Ltd. Method of error correction in MBC flash memory
WO2007066720A1 (ja) * 2005-12-09 2007-06-14 Matsushita Electric Industrial Co., Ltd. 不揮発性記憶装置並びにデータ書込み方法及びデータ読み出し方法
US8020060B2 (en) * 2006-01-18 2011-09-13 Sandisk Il Ltd Method of arranging data in a multi-level cell memory device
US7844879B2 (en) 2006-01-20 2010-11-30 Marvell World Trade Ltd. Method and system for error correction in flash memory
US20070180349A1 (en) * 2006-01-31 2007-08-02 Jacobsen Eric A Techniques for uequal error protection for layered protection applications
US7810017B2 (en) * 2006-03-20 2010-10-05 Micron Technology, Inc. Variable sector-count ECC
US7873779B2 (en) 2007-05-14 2011-01-18 Qualcomm Incorporated Memory page size auto detection
WO2009053962A2 (en) * 2007-10-22 2009-04-30 Densbits Technologies Ltd. Systems and methods for averaging error rates in non-volatile devices and storage systems
JP5150245B2 (ja) * 2007-12-27 2013-02-20 株式会社東芝 半導体記憶装置
KR101398200B1 (ko) * 2008-03-18 2014-05-26 삼성전자주식회사 메모리 장치 및 인코딩/디코딩 방법
EP2293195A4 (en) * 2008-04-11 2011-11-23 Lg Electronics Inc MEMORY READER THAT CAN OPERATE AS AN OPTICAL DISK DRIVE AND METHOD FOR VIRTUALIZING MEMORY DRIVE AS OPTICAL DISK DRIVE
US8321652B2 (en) 2008-08-01 2012-11-27 Infineon Technologies Ag Process and method for logical-to-physical address mapping using a volatile memory device in solid state disks
US8732388B2 (en) * 2008-09-16 2014-05-20 Micron Technology, Inc. Embedded mapping information for memory devices
CN101676882B (zh) 2008-09-16 2013-01-16 美光科技公司 存储器装置的内嵌映射信息
US20100070733A1 (en) 2008-09-18 2010-03-18 Seagate Technology Llc System and method of allocating memory locations
KR100965051B1 (ko) 2008-10-01 2010-06-21 서울시립대학교 산학협력단 플래시 메모리 장치를 위한 가변 공간 페이지 사상 방법 및그 장치
WO2010125574A1 (en) * 2009-04-27 2010-11-04 Kamlesh Gandhi Description
TWI400707B (zh) * 2009-07-09 2013-07-01 Phison Electronics Corp 快閃記憶體邏輯區塊管理方法及其控制電路與儲存系統
US8402217B2 (en) 2009-09-15 2013-03-19 Marvell International Ltd. Implementing RAID in solid state memory
US8266501B2 (en) 2009-09-29 2012-09-11 Micron Technology, Inc. Stripe based memory operation
US8468294B2 (en) * 2009-12-18 2013-06-18 Sandisk Technologies Inc. Non-volatile memory with multi-gear control using on-chip folding of data
KR20110073932A (ko) * 2009-12-24 2011-06-30 주식회사 하이닉스반도체 Ecc 회로를 포함하는 반도체 스토리지 시스템 및 그 제어 방법
US8589766B2 (en) 2010-02-24 2013-11-19 Apple Inc. Codeword remapping schemes for non-volatile memories
US8406051B2 (en) * 2010-05-17 2013-03-26 Seagate Technology Llc Iterative demodulation and decoding for multi-page memory architecture
TWI496161B (zh) * 2010-08-06 2015-08-11 Phison Electronics Corp 記憶體識別碼產生方法、管理方法、控制器與儲存系統
TWI451435B (zh) * 2010-10-08 2014-09-01 Phison Electronics Corp 非揮發性記憶體儲存裝置、記憶體控制器與資料儲存方法
WO2012056491A1 (en) * 2010-10-26 2012-05-03 Hitachi, Ltd. Storage apparatus and data control method
TWI579692B (zh) * 2010-10-29 2017-04-21 三星電子股份有限公司 記憶體系統、資料儲存系統、使用者裝置及其資料管理方法
US8626989B2 (en) * 2011-02-02 2014-01-07 Micron Technology, Inc. Control arrangements and methods for accessing block oriented nonvolatile memory
US8589761B2 (en) * 2011-05-31 2013-11-19 Micron Technology, Inc. Apparatus and methods for providing data integrity
US8874994B2 (en) * 2011-07-22 2014-10-28 Sandisk Technologies Inc. Systems and methods of storing data

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1923792A1 (en) * 2006-11-20 2008-05-21 Samsung Electronics Co., Ltd Apparatus and method of managing nonvolatile memory
CN101999116A (zh) * 2008-03-11 2011-03-30 艾格瑞系统有限公司 通过交叉页面扇区、多页面编码以及每一页面编码将数据存储在多级单元闪速存储器装置中的方法和设备
CN101937399A (zh) * 2009-07-02 2011-01-05 联发科技股份有限公司 在非易失性存储器上执行随机写入操作的方法与装置
US20110280068A1 (en) * 2010-05-17 2011-11-17 Seagate Technology Llc Joint encoding of logical pages in multi-page memory architecture

Also Published As

Publication number Publication date
US20200272538A1 (en) 2020-08-27
TW201346550A (zh) 2013-11-16
JP6053078B2 (ja) 2016-12-27
US20180336093A1 (en) 2018-11-22
EP2825960B1 (en) 2019-04-24
KR20140139545A (ko) 2014-12-05
US20150212882A1 (en) 2015-07-30
US10055285B2 (en) 2018-08-21
CN107967187B (zh) 2019-11-26
TWI514139B (zh) 2015-12-21
US10664345B2 (en) 2020-05-26
US20130246891A1 (en) 2013-09-19
EP2825960A1 (en) 2015-01-21
US11354187B2 (en) 2022-06-07
US9026887B2 (en) 2015-05-05
EP2825960A4 (en) 2016-01-06
JP2015510213A (ja) 2015-04-02
CN104272262A (zh) 2015-01-07
CN110941507A (zh) 2020-03-31
CN104272262B (zh) 2018-01-19
WO2013138190A1 (en) 2013-09-19
KR101660150B1 (ko) 2016-09-26

Similar Documents

Publication Publication Date Title
CN104272262B (zh) 物理页、逻辑页及码字对应
CN101727976B (zh) 一种多层闪存装置、固态硬盘和分割非易失性存储器系统
KR101405741B1 (ko) 스트라이프-기반 비-휘발성 멀티레벨 메모리 동작
USRE46013E1 (en) Method and controller for performing a copy-back operation
US8266367B2 (en) Multi-level striping and truncation channel-equalization for flash-memory system
KR101502519B1 (ko) 메모리 관리 시스템 및 방법
US8176284B2 (en) FLASH-based memory system with variable length page stripes including data protection information
US9292382B2 (en) Codewords that span pages of memory
CN107678695B (zh) 基于可用存储器空间选择冗余存储配置
CN101923512B (zh) 三层闪存装置、智能存储开关和三层控制器
US8959420B1 (en) Data storage system and method for data migration between high-performance computing architectures and data storage devices using memory controller with embedded XOR capability
US8316175B2 (en) High throughput flash memory system
US9838045B1 (en) Apparatus and method for accessing compressed data
CN116126251A (zh) 一种实现多并发写入的方法、控制器和固态存储设备
WO2011019794A2 (en) Method and apparatus for addressing actual or predicted failures in a flash-based storage system
US7114014B2 (en) Method and system for data movement in data storage systems employing parcel-based data mapping
WO2023050147A1 (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