CN113129978B - 使用奇偶校验增加存储器存取并行性 - Google Patents

使用奇偶校验增加存储器存取并行性 Download PDF

Info

Publication number
CN113129978B
CN113129978B CN202011588269.8A CN202011588269A CN113129978B CN 113129978 B CN113129978 B CN 113129978B CN 202011588269 A CN202011588269 A CN 202011588269A CN 113129978 B CN113129978 B CN 113129978B
Authority
CN
China
Prior art keywords
data
memory
die
memory device
read
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
Application number
CN202011588269.8A
Other languages
English (en)
Other versions
CN113129978A (zh
Inventor
梁卿
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 CN113129978A publication Critical patent/CN113129978A/zh
Application granted granted Critical
Publication of CN113129978B publication Critical patent/CN113129978B/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/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • 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
    • 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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • 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
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • 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
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1045Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
    • 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
    • G06F3/0611Improving I/O performance in relation to response time
    • 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/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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/657Virtual address space management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7209Validity control, e.g. using flags, time stamps or sequence numbers

Landscapes

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

Abstract

本申请案涉及使用奇偶校验增加存储器存取并行性。在读取来自第一存储器裸片中的第一条带的第一数据块时,同时读取属于存储在除所述第一存储器裸片以外的存储器裸片中的第二条带的数据块。这包含读取所述第二条带的奇偶校验值。然后使用所述奇偶校验数据连同来自除所述第一裸片以外的裸片的所述第二条带的所述数据块来确定存储在所述第一存储器裸片中的所述第二条带的所述数据块,而无需实际上读取来自所述第一存储器裸片中的所述块的值。此重构可与对所述第一裸片执行的对其它数据的额外读取操作并行地进行。

Description

使用奇偶校验增加存储器存取并行性
技术领域
本文中所描述的实施例大体上涉及用于增加存储器存取并行性以加快存储器读取操作的系统及方法。
背景技术
存储器装置通常经提供作为计算机或其它电子装置中的内部半导体集成电路。存在许多不同类型的存储器,包含易失性及非易失性存储器。易失性存储器需要电力来维护其数据且包含呈各种形式的随机存取存储器(RAM),例如,动态随机存取存储器(DRAM)或同步动态随机存取存储器(SDRAM)以及其它存储器。非易失性存储器在未通电时可以保留所存储数据(在一些状况下可实施为只读存储器(ROM)),且可包含一或多个存储技术,例如快闪存储器(例如,“与非”或“或非”快闪存储器)、电可擦除可编程ROM(EEPROM)、静态RAM(SRAM)、铁电RAM(FeRAM)、可擦除可编程ROM(EPROM)、电阻可变存储器,例如相变随机存取存储器(PCRAM)、电阻式随机存取存储器(RRAM)、磁阻随机存取存储器(MRAM)或3D XPointTM存储器,以及其它存储器。并入有存储器的系统可包含多个存储器装置或实施多种存储技术的存储器系统。
快闪存储器用作用于广泛范围的电子应用的非易失性存储器。快闪存储器装置通常包含允许高存储器密度、高可靠性及低电力消耗的一或多个组单晶体管、浮动栅极或电荷俘获存储器单元。两种常见类型的快闪存储器阵列架构包含“与非”及“或非”架构,以布置每一个的基本存储器单元配置的逻辑形式命名。存储器阵列的存储器单元通常布置成矩阵。在一实例中,阵列的行中的每一浮动栅极存储器单元的栅极耦合到存取线(例如,字线)。在“或非”架构中,阵列的列中的每一存储器单元的漏极耦合到数据线(例如,位线)。在“与非”架构中,阵列的串中的每一存储器单元的漏极在源极线与位线之间以源极到漏极串联耦合在一起。
受管“与非”(MNAND)装置的快闪存储器控制器(例如,通用快闪存储(UFSTM)装置、嵌入式MMC装置(eMMCTM)等通常实施静态随机存取存储器(SRAM),用于在存储器存取期间将虚拟存储器地址转换为物理存储器地址的逻辑到物理(L2P)转换表(也被称为页表)。然而,SRAM的大小通常有限,可能无法容纳整个逻辑到物理(L2P)转换表。例如,典型的SRAM可保留大约2MB的数据,而整个L2P转换表可保留128MB的数据。在一些实施例中,快闪存储器控制器可实施L2P高速缓冲存储器,所述L2P高速缓冲存储器保留大约128kB,以保持频繁存取L2P节点的地址,该节点仅为整个L2P转换表的小分区。在任何此类配置中,期望快速存取所存储数据以改进存储器读取操作的效率。
发明内容
在一个方面中,本申请案提供一种存储器装置,其包括:多裸片存储器阵列;存储器控制器,其包括一或多个处理器,且经配置以执行包括以下的操作:同时地致使从第一存储器裸片读取第一部分数据,从第二存储器裸片读取第二部分数据,且从第三存储器裸片读取第三部分数据,所述第三部分数据包含关于包含所述第二部分数据及存储在所述第一存储器裸片中的第四部分数据的数据的奇偶校验数据;及与从选定存储器裸片读取第五部分数据并行地使用所述第三部分的所述第二部分数据及所述奇偶校验数据,重组存储在所述第一存储器裸片中的所述第四部分数据。
在另一方面中,本申请案提供一种从“与非”存储器装置读取数据的方法,其包括:同时地致使从第一存储器裸片读取第一部分数据,从第二存储器裸片读取第二部分数据,且从第三存储器裸片读取第三部分数据,所述第三部分数据包含关于包含所述第二部分数据及存储在所述第一存储器裸片中的第四部分数据的数据的奇偶校验数据;及与从选定存储器裸片读取第五部分数据并行地使用所述第二部分数据及所述奇偶校验数据,重组存储在所述第一存储器裸片中的所述第四部分数据。
在另一方面中,本申请案提供一种机器可读媒体,其存储指令,所述指令当由存储器装置的控制器执行时致使所述控制器执行包括以下的操作:同时地致使从第一存储器裸片读取第一部分数据,从第二存储器裸片读取第二部分数据,且从第三存储器裸片读取第三部分数据,所述第三部分数据包含奇偶校验数据;及与从所述第一存储器裸片读取第五部分数据并行地使用所述第二部分数据及所述奇偶校验数据,重组存储在所述第一存储器裸片中的第四部分数据。
附图说明
在图式(其未必按比例绘制)中,相似编号可在不同视图中描述类似组件。具有不同字母后缀的相似编号可表示类似组件的不同情况。图式通常以实例方式而非限制方式说明本文件中所论述的各种实施例。
图1根据本公开的一些实施例说明包含存储器装置的环境的实例。
图2到3为根据本公开的一些实例说明“与非”架构半导体存储器阵列的实例的示意图。
图4为根据本公开的一些实例说明存储器模块的实例的框图。
图5根据本公开的一些实例说明从主机装置发送到“与非”存储器装置的读取命令的逻辑流流程图。
图6根据本公开的一些实例说明已实施奇偶校验以保护所存储数据的完整性的存储器阵列中的数据存储。
图7到8根据本公开的一些实例说明用于并行存取数据的时序图。
图9到10根据本公开的一些实例说明展示从存储器装置读取数据的方法的流程图。
图11为说明可在其上实施本文中所公开的一或多个实施例的机器的实例的框图。
具体实施方式
快闪存储器装置可将装置的存储器单元组织成多个裸片,每一裸片具有一或多个平面,且每一平面具有一或多个页。存储器装置可存储横跨多个裸片条带化的数据。例如,第一部分数据可存储在第一裸片上,且第二部分数据可存储在第二裸片上。另外,奇偶校验值可存储在第三裸片上。例如,如果奇偶校验值为第一部分及第二部分的“异或”值,那么使用非丢失部分及奇偶校验数据可恢复第一部分及第二部分中任一者(但不是两者)的丢失。此存储方案可允许增加数据的冗余,因为单个裸片的丢失不会使存储在其中的数据无法恢复。此增加的冗余可对重要数据(例如L2P转换表)有用。如本文中所使用,条带由多个数据值组成,其中每一数据值写入到存储器装置的不同部分(例如,横跨不同的裸片)。条带可具有对应奇偶校验值,所述奇偶校验值允许在给定其它数据值及奇偶校验值重构数据值中的一个。
快闪存储器装置可仅限于从同一裸片一次读取一个数据部分(例如,页),但可同时从不同裸片读取数据部分。也就是说,存储器装置可读取第一裸片中的第一值,同时读取第二裸片中的第二值。在一些实例中公开通过利用条带化及奇偶校验增加存储器装置上的读取操作的并行性的方法、系统、机器可读媒体及存储器装置。在读取来自第一存储器裸片中的第一条带的第一数据块时,同时读取属于存储在除所述第一存储器裸片以外的存储器裸片中的第二条带的数据块。这包含读取所述第二条带的奇偶校验值。然后使用所述奇偶校验数据连同来自除所述第一裸片以外的裸片的所述第二条带的所述数据块来确定存储在所述第一存储器裸片中的所述第二条带的所述数据块,而无需实际上读取来自所述第一存储器裸片中的所述块的值。此重构可与对所述第一裸片执行的对其它数据的额外读取操作并行地进行,因此,在大约通常执行两次读取的跨度中,可对第一裸片执行三次读取。以此方式,数据读出带宽可增加,而不必改变存储器阵列的读取/写入速度。
存储器装置
在本文中所描述的实施例中,存储器装置包含个别存储器裸片,例如,其可包含存储区域,所述存储区域包括实施一个(或多个)选定的存储技术的一或多个存储器单元阵列。此类存储器裸片通常将包含用于操作存储器阵列的支持电路系统。其它实例(有时通常被称为“受管存储器装置”)包含一或多个存储器裸片的组合件,所述存储器裸片与经配置以控制一或多个存储器裸片的操作的控制器功能性相关联。此类控制器功能性可简化与外部装置(例如本文中稍后论述的“主机”)的互操作性。在此类受管存储器装置中,控制器功能性可实施在也合并存储器阵列的一或多个裸片上,或在单独裸片上。在其它实例中,一或多个存储器装置可与控制器功能行组合以形成固态硬盘(SSD)存储卷。术语“存储器系统”在本文中用作包含一或多个存储器裸片,以及此存储器裸片的任何控制器功能性(当存在时);且因此包含单个存储器装置、受管存储器装置及SSD。
本公开的实施例在实施“与非”快闪存储器单元的受管存储器装置(被称为“受管“与非””装置)的实例中描述。然而,这些实例并不限制本公开的范围,其可以其它形式的存储器装置及/或其它形式的存储技术来实施。
“与非”快闪架构半导体存储器阵列两者均通过解码器进行存取,所述解码器通过选择耦合到其栅极的字线来激活特定存储器单元。在此类“与非”存储器阵列中,高偏压被施加到漏极侧选择栅极(SGD)线。以规定通过电压(例如,Vpass)驱动耦合到每一组的未选定存储器单元的栅极的字线以操作每一组的未选定存储器单元作为通过晶体管(例如,以未受其所存储数据值限制的方式通过电流)。电流然后通过每一串联耦合组从源极线流动到位线,仅受每一组的选定存储器单元的限制,将选定存储器单元的当前编码数据值放置在位线上。
每一“与非”快闪存储器单元均可单独或共同经编程为一或多个编程状态。例如,单层级单元(SLC)可表示两个编程状态(例如,1或0)中的一个,表示一个数据位。快闪存储器单元也可以表示多于两个编程状态,从而允许在不增加存储器单元数目的情况下制造更高密度的存储器,因为每一单元可以表示多于一个二进制数字(例如,多于一个位)。此类单元可以被称为多状态存储器单元、多位单元或多层级单元(MLC)。在某些实例中,MLC可指代可每单元存储两个数据位(例如,四个编程状态中的一个)的存储器单元,三层级单元(TLC)可指代可每单元存储三个数据位(例如,八个编程状态中的一个)的存储器单元,且四层级单元(QLC)可每单元存储四个数据位。MLC在本文中在更广泛的上下文中用于指代可每单元存储多于一个数据位(即,其可表示多于两个编程状态)的任何存储器单元。
受管存储器装置可根据公认的行业标准进行配置及操作。例如,受管“与非”装置可为(作为非限制实例)、通用快闪存储(UFSTM)装置、嵌入式MMC装置(eMMCTM)等等。例如,在上述实例的状况下,UFS装置可根据联合电子装置工程委员会(JEDEC)标准(例如,JEDEC标准JESD223D,标题为“JEDEC UFS快闪存储3.0”)及/或此类标准的更新或后续版本进行配置。类似地,所识别eMMC装置可根据JEDEC标准JESD84-A51(标题为“JEDEC eMMC标准5.1”)及/或此类标准的更新或后续版本进行配置。所识别标准仅提供作为可使用所描述方法及结构的实例环境。除本文中明确指示外,此类方法及结构可用于已识别标准(或任何其它实际或建议标准)以外的各种环境。
此外,SSD可用作计算机的主要存储装置,与具有移动部分的传统硬盘相比,在性能、尺寸、重量、坚固性、操作温度范围及功耗方面具有优势。例如,SSD可减少寻道时间、等待时间或与磁盘驱动器(例如,机电等)相关联的其它延迟。SSD使用非易失性存储器单元(例如,快闪存储器单元)来消除内部电池供电要求,因此允许驱动器更通用且更紧凑。
SSD及受管存储器装置两者均可包含多个存储器装置,包含多个裸片或逻辑单元(例如,逻辑单元号或LUN),且可包含执行操作存储器装置或与外部系介接所需的逻辑功能的一或多个处理器或其它控制器。此类SSD及受管存储器装置可包含一或多个快闪存储器裸片,其上包含多个存储器阵列及外围电路系统。快闪存储器阵列可包含组织成多个物理页的多个存储器单元块。在一些实例中,SSD也可包含DRAM或SRAM(或其它形式的存储器裸片或其它存储器结构)。类似地,受管“与非”装置可包含一或多个易失性存储器及/或非易失性存储器阵列,所述一或多个阵列与“与非”存储阵列分离,且在控制器内或与控制器分离。SSD及受管“与非”装置两者均可从主机接收与存储器操作相关联的命令,例如用以在存储器装置与主机之间传送数据(例如,用户数据以及相关联完整性数据,例如错误数据及地址数据等)的读取或写入操作,或用以从存储器装置擦除数据的擦除操作。
在以下详细说明中,参考形成本文的一部分且其中以说明的方式展示特定实施例的附图。在图式中,相同编号遍及数个视图基本上类似组件。可利用其它实施例,且可在不背离本公开的范围的情况下做出结构、逻辑和电改变。因此,不应在限制意义上理解以下详细描述。
尽管实施例在本文件中参考“与非”媒体进行论述,但所述实施例并不限于“与非”媒体且可应用于“或非”媒体。此外,尽管实施例主要参考受管“与非”装置时进行论述,但所描述实施例可替代地与其它类型的非易失性存储技术(例如纳米线存储器、铁电随机存取存储器(FeRAM)、磁阻随机存取存储器(MRAM)、快闪存储器、旋转扭矩传送随机存取存储器(STTRAM)、电阻式随机存取存储器(RRAM)、字节可寻址3维交叉点存储器(3D X-Point)、PCM(相变存储器)等实施。
图1说明存储器装置110的实例,其可包含在各种产品中,例如物联网(IoT)装置(例如,冰箱或其它器具、传感器、电动机或致动器、移动通信装置、汽车、无人机等)以支持产品的处理、通信或控制。存储器装置110包含存储器控制器115及存储器阵列120。存储器阵列120可以包含多个单个存储器裸片(例如,二维(2D)“与非”裸片或三维(3D)“与非”裸片堆叠)。存储器阵列120可为布置在半导体衬底的表面上的2D结构。为了增加给定区域的存储容量并降低成本,个别存储器单元的大小已减小。替代地,存储器阵列120可为可进一步增加存储器密度并降低存储器成本的3D结构,例如3D“与非”存储器装置。
此类3D“与非”装置通常包含多串存储单元,所述存储单元串联(例如,漏极到源极)耦合在接近源极的一或多个源极侧选择栅极(SGS)与接近位线的一或多个漏极侧选择栅极(SGD)之间。在实例中,SGS或SGD可包含一或多个场效应晶体管(FET)或金属氧化物半导体(MOS)结构装置等。在一些实例中,串将垂直延伸并穿过多个垂直间隔层,所述垂直间隔层含有相应字线。半导体结构可以邻近存储器单元串延伸以形成用于所述串的存储单元的沟道。在垂直串的实例中,多晶硅结构可呈垂直延伸柱的形式。在一些实例中,串可“折叠”,且因此相对于U形柱布置。在其它实例中,可将多个垂直结构彼此堆叠以形成存储单元串的堆叠阵列。
在3D架构半导体存储器技术中,垂直结构经堆叠,从而增加层、物理页的数目,且因此增加存储器装置(例如,存储装置)的密度。在一实例中,存储器装置110可为主机装置的离散存储器或存储装置组件。在其它实例中,存储器装置110可为集成电路(例如,单片系统(SOC)等)的一部分,与主机装置的一或多个其它组件堆叠或以其它方式包含在一起。
存储器控制器115可从主机装置105接收指令,且可与存储器阵列120通信,例如以将数据传送到(例如,写入或擦除)存储器阵列的存储器单元、平面、子块、块或页中的一或多个或从存储器阵列的存储器单元、平面、子块、块或页中的一或多个传送数据(例如,读取),平面,存储器阵列的子块,块或页。存储器控制器115包含处理电路系统,其可包含一或多个处理器,当存在时,所述处理器可操作以执行存储在存储器装置中的指令。出于本实例的目的,所述指令将被论述为固件,但指令也可作为软件存在;所描述功能的全部或某一部分也可在包含一或多个组件或集成电路的电路系统中实施。在一些实例中,存储器控制器115的功能由执行固件的指令的处理器实施,在一些实例中,固件将存储在存储器控制器115中。在其它实例中,存储器控制器115内的一或多个处理器可执行存储在存储器阵列120中的指令。类似地,管理表130可存储在存储器控制器115上或存储器阵列120中。在此类实例中,指令及/或管理表130可存储在存储器阵列120的“与非”裸片的某些块中,并在操作期间加载到存储器控制器115的工作存储器中。
存储器控制器115可经配置(例如,硬件及/或软件实施方案)以执行本文中所描述的方法,包含下文参考图5到9所描述的示范性方法。例如,存储器控制器115可存储执行本文中所描述的存储器读取及地址转换方法的指令。在样本实施例中,指令可包含在固件中,或包含在由存储器控制器115的处理器实施的软件中。例如,存储器控制器115可包含经配置以控制横跨存储器阵列120的存取并在主机与存储器装置110之间提供转换层的一或多个存储器控制单元、电路或组件。存储器控制器115可包含一或多个输入/输出(I/O)电路、线或接口,以将数据传送到存储器阵列120或从存储器阵列120传送数据。存储器控制器115还可包含存储器管理器125及阵列控制器135。
此外,存储器管理器125还可包含电路系统或固件,例如与各种存储器管理功能相关联的多个组件或集成电路。出于本描述的目的,将在“与非”存储器的上下文中描述实例存储器操作及管理功能。所属领域的技术人员将认识到,其它形式的非易失性存储器可具有类似的存储器操作或管理功能。此类“与非”管理功能包含损耗均衡(例如,无用信息收集或回收)、错误检测或纠正、块停用或一或多个其它存储器管理功能。存储器管理器125可将主机命令(例如,从主机接收的命令)解析或格式化为装置命令(例如,与存储器阵列的操作相关联的命令等),或为阵列控制器135或存储器装置110的一或多个其它组件生成装置命令(例如,以完成各种存储器管理功能)。
存储器管理器125可包含一组管理表130,所述管理表经配置以维护与存储器装置110的一或多个组件相关联的各种信息(例如,与存储器阵列或耦合到存储器控制器115的一或多个存储器单元相关联的各种信息)。例如,管理表130可包含关于用于耦合到存储器控制器115的一或多个存储器单元块的块寿命、块擦除计数、错误历史记录或一或多个错误计数(例如,写入操作错误计数、读取位错误计数、读取操作错误计数、擦除错误计数等)的信息。在某些实例中,如果针对错误计数中的一或多个的所检测到的错误的数目高于阈值,那么位错误可被称为不可校正位错误。管理表130可维护可校正或不可校正位错误的计数,以及其它计数。
此外,阵列控制器135还可包含电路系统或组件,所述电路系统或组件经配置以控制与将数据写入到耦合到存储器控制器115的存储器装置110的一或多个存储器单元、从所述一或多个存储器单元读取数据或擦除所述一或多个存储器单元相关联的存储器操作。阵列控制器135可包含纠错码(ECC)组件140,所述纠错码组件此外还可以包含ECC引擎或其它经配置以检测或纠正错误的电路系统,所述错误与将数据写入到耦合到存储器控制器115的存储器装置110的一或多个存储器单元或从所述一或多个存储器单元读取数据相关联。存储器控制器115可经配置以主动地检测与各种数据的操作或存储相关联的错误发生(例如,位错误、操作错误等)并从中恢复,同时维护在主机与存储器装置110之间传送的数据的完整性,或维护所存储数据的完整性(例如,使用冗余RAID存储等),且可以将故障存储资源(例如,存储器单元、存储器阵列、页、块等)移除(例如,停用)以防止未来错误。
在一些实例中,存储器阵列可包括多个“与非”裸片,且可在特定“与非”裸片上的裸片上控制器上实施用于所述特定裸片的存储器控制器115的一或多个功能。也可利用控制功能性的其它组织及描述,例如用于每一裸片、平面、超级块、块、页等的控制器。
存储器阵列120可包含布置在例如多个装置、半导体裸片、平面、子块、块或页中的数个存储器单元。在操作中,数据通常以页为单位写入到“与非”存储器装置110或从中读取,且以块为单位擦除。然而,根据需要,可对更大或更小存储器单元组执行一或多个存储器操作(例如,读取、写入、擦除等)。“与非”存储器装置110的数据传送大小通常被称为页;而主机的数据传送大小通常被称为扇区。
尽管数据页可包含多个字节的用户数据(例如,包含多个数据扇区的数据有效负载)及其对应元数据,但页的大小通常仅指代用于存储用户数据的字节数目。作为实例,具有4kB的页大小的数据页可包含4kB的用户数据(例如,采用512B的扇区大小的8个扇区)以及若干个字节(例如,32B、54B、224B等)的对应于用户数据的元数据,例如完整性数据(例如,错误检测或纠错码数据)、地址数据(例如,逻辑地址数据等)或与用户数据相关联的其它元数据。
不同类型的存储器单元或存储器阵列120可提供不同的页大小,或可需要与其相关联的不同量的元数据。例如,不同的存储器装置类型可具有不同的位误差率,这可导致确保数据页完整性所需的元数据量不同(例如,具有更高位误差率的存储器装置可能比具有较低位误差率的存储器装置需要更多字节的纠错码数据)。作为实例,与对应单层级单元(SLC)“与非”快闪存储器装置相比,多层级单元(MLC)“与非”快闪存储器装置可具有更高位误差率。如此,MLC装置可需要比对应的SLC装置更多的元数据字节用于错误数据。
图2为说明图1中所说明的类型的“与非”存储器装置110的3D“与非”架构半导体存储器阵列200的实例的示意图,所述阵列包含多个存储器单元串(例如,第一A0存储器串205A0到第三A0存储器串207A0,第一An存储器串205An到第三An存储器串207An,第一B0存储器串205B0到第三B0存储器串207B0,第一Bn存储器串205Bn到第三Bn存储器串207Bn等),按块(例如,块A 201A、块B 201B等)及子块(例如,子块A0 201A0、子块An 201An、子块B0201B0、子块Bn 201Bn等)组织。存储器阵列200表示通常在存储器装置110的块、装置或其它单位中发现的大量相似结构的一部分。
每一存储器单元串包含多层电荷存储晶体管(例如,浮动栅极晶体管、电荷俘获结构等),所述多层电荷存储晶体管在Z方向上从源极到漏极堆叠在源极线(SRC)235或源极侧选择栅极(SGS)(例如,第一A0 SGS 231A0到第三A0 SGS 233A0、第一An SGS 231An到第三An SGS 233An、第一B0 SGS 231B0到第三B0 SGS 233B0、第一Bn SGS 231Bn到第三Bn SGS233Bn等)与漏极侧选择栅极(SGD)(例如,第一A0 SGD 226A0到第三A0 SGD 228A0,第一AnSGD 226An到第三An SGD 228An、第一B0 SGD 226B0到第三B0 SGD 228B0、第一Bn SGD226Bn到第三Bn SGD 228Bn等)之间。3D存储器阵列中的每一存储器单元串可沿着X方向布置为数据线(例如,位线(BL)BL0 220到BL2 222),且沿着Y方向布置为物理页。
在物理页内,每一层表示一行存储器单元,且每一存储器单元串表示一列。子块可包含一或多个物理页。块可包含多个子块(或物理页)(例如128个、256个、384个等)。尽管在本文中被说明为具有两个块,每一块具有两个子块,每一子块具有单个物理页,每一物理页具有三个存储器单元串,且每一串具有8个存储器单元层,但在其它实例中,存储器阵列200可包含更多或更少块、子块、物理页、存储器单元串、存储器单元或层。例如,每一存储器单元串可包含更多或更少层(例如16个、32个、64个、128个等),以及根据需要在电荷存储晶体管(例如,选择栅极、数据线等)上面或下面的一或多个额外半导体材料层。作为实例,48GBTLC“与非”存储器装置可包含每页18,592个字节(B)数据(16,384+2208个字节),每块1536个页,每平面548个块以及每装置4个或多于4个面。
存储器阵列200中的每一存储器单元包含控制栅极(CG),所述控制栅极耦合到(例如,电或以其它方式操作地连接到)存取线(例如,字线(WL)WL00 210A到WL70 217A,WL01210B到WL71 217B等),其根据需要横跨特定层或层的部分共同地耦合控制栅极(CG)。3D存储器阵列中的特定层以及相应地串中的特定存储器单元可使用相应的存取线进行存取或控制。可使用各种选择线来存取选择栅极组。例如,可使用A0 SGD线SGDA0 225A0存取第一A0 SGD 226A0到第三A0 SGD 228A0,可使用SGD线SGDAn 225An存取第一An SGD 226An到第三An SGD 228An,可使用B0 SGD线SGDB0 225B0存取第一B0 SGD 226B0到第三B0 SGD228B0,且可使用Bn SGD线SGDBn 225Bn存取第一Bn SGD 226Bn到第三Bn SGD 228Bn。可使用栅极选择线SGS0 230A存取第一A0 SGS 231A0到第三A0 SGS 233A0及第一An SGS 231An到第三An SGS 233An,且可经由栅极选择线SGS1 230B存取第一B0 SGS 231B0到第三B0SGS 233B0及第一Bn SGS 231Bn到第三Bn SGS 233Bn。
在一实例中,存储器阵列200可包含多个层级半导体材料(例如,多晶硅等),其经配置以耦合每一存储器单元的控制栅极(CG)或阵列的相应层的选择栅极(或CG或选择栅极的一部分)。可使用位线(BL)与选择栅极的组合等来存取、选择或控制阵列中的特定存储器单元串,且可使用一或多个存取线(例如,WL)来存取、选择或控制特定串中的一或多个层的特定存储器单元。
图3说明“与非”架构半导体存储器阵列300的一部分的实例示意图,所述阵列包含多个存储器单元302及感测放大器或装置360,所述多个存储器单元布置成串(例如,第一串305到第三串307)及层(例如,说明为相应字线(WL)WL0 310到WL7 317、漏极侧选择栅极(SGD)线325、源极侧选择栅极(SGS)线330等)的二维阵列。例如,存储器阵列300可说明例如图2中所说明的3D“与非”架构半导体存储器装置200的存储器单元的一个物理页的一部分的实例示意图。
每一存储器单元串使用相应源极侧选择栅极(SGS)(例如,第一SGS 331到第三SGS333)耦合到源极线(SRC),且使用相应漏极侧选择栅极(SGD)(例如,第一SGD 326到第三SGD328)耦合到相应数据线(例如,第一位线(BL)BL0 320到第三位线(BL)BL2 322)。尽管在图3的实例中以8个层(例如,使用字线(WL)WL0 310到WL7 317)及三个数据线(BL0 326到BL2328)进行说明,但根据需要其它实例可以包含具有更多或更少层或数据线的存储器单元串。
在“与非”架构半导体存储器阵列(例如实例存储器阵列300)中,可通过感测与包含选定存储器单元的特定数据线相关联的电流或电压变化来存取选定存储器单元302的状态。可使用一或多个驱动器来存取存储器阵列300(例如,通过控制电路、一或多个处理器、数字逻辑等)。在一实例中,一或多个驱动器可通过将特定电势驱动到一或多个数据线(例如,位线BL0到BL2)、存取线(例如,字线WL0到WL7)或选择栅极来激活特定存储器单元或存储器单元组,这取决于期望对特定存储器单元或存储器单元组执行的操作类型。
为将数据编程或写入到存储器单元,可将编程电压(Vpgm)(例如,一或多个编程脉冲等)施加到选定字线(例如,WL4),且因此,耦合到选定字线的每一存储器单元的控制栅极(例如,耦合到WL4的存储器单元的第一控制栅(CG)341到第三控制栅(CG)343)。编程脉冲可例如以15V或接近15V开始,且在某些实例中,可在每一编程脉冲施加期间增加量级。当将编程电压施加到选定字线时,可将例如接地电势Vss的电势施加到经定目标用于编程的存储器单元的数据线(例如,位线)及衬底(以及因此在源极与漏极之间的沟道),致使从沟道到目标存储器单元的浮动栅极的电荷转移(例如,直接注入或富勒-诺德海姆(Fowler-Nordheim,FN)隧穿等)。
相反,可将通过电压(VPASS)施加到一或多个具有经定目标用于编程的存储器单元的字线,或可将禁止电压(例如,Vcc)施加到具有未经定目标用于编程的存储器单元的数据线(例如,位线),以例如禁止电荷从沟道转移到此类非目标存储器单元的浮动栅极。通过电压可为可变的,例如取决于所施加通过电压与经定目标用于编程的字线的接近度。禁止电压可包含供应电压(Vcc),例如相对于接地电势Vss,来自外部电源或供应器(例如,电池、AC到DC转换器等)的电压。
作为实例,如果将编程电压(例如,15V或更高)施加到特定字线(例如,WL4),那么可以将10V的通过电压施加到一或多个其它字线,例如,WL3、WL5等,以禁止对非目标存储器单元进行编程,或保留存储在此类未经定目标用于编程的存储器单元上的值。随着所施加编程电压与非目标存储器单元之间的距离增加,抑制对非目标存储器单元进行编程所需的通过电压可能降低。例如,在将15V的编程电压施加到WL4的情况下,可将10V的通过电压施加到WL3和WL5,可将8V的通过电压施加到WL2和WL6,可将7V的通过电压施加到WL1和WL7,等。在其它实例中,通过电压或字线的数目等可为更高或更低,或更多或更少。
耦合到数据线(例如,第一、第二或第三位线(BL0到BL2)320到322)中的一或多个的感测放大器360可以通过感测特定数据线上的电压或电流来检测相应数据线中的每一存储器单元的状态。
在施加一或多个编程脉冲(例如,Vpgm)之间,可执行检验操作以确定选定存储器单元是否已达到其预期编程状态。如果选定存储器单元已达到其预期编程状态,那么可禁止其进一步编程。如果选定存储器单元尚未达到其预期编程状态,那么可施加额外编程脉冲。如果在特定数目个编程脉冲(例如,最大数目)之后选定存储器单元尚未达到其预期编程状态,那么可以将所述选定存储器单元或与此类选定存储器单元相关联的串、块或页标记为有缺陷。
为了擦除存储器单元或存储器单元组(例如,擦除通常以块或子块为单位执行),可将擦除电压(Vers)(例如,通常为Vpgm)施加到经定目标用于擦除的存储器单元的衬底(以及因此在源极与漏极之间的沟道)(例如,使用一或多个位线、选择栅极等),而目标存储器单元的字线保持处于电势,例如接地Vss,从而导致从目标存储器单元的浮动栅极到沟道的电荷转移(例如,直接注入或富勒-诺德海姆(FN)隧穿等)。
图4说明图1中所说明类型的存储器装置400的实例的框图,所述存储器装置包含具有多个存储器单元404的存储器阵列402,以及一或多个用以提供与存储器阵列402的通信或对其执行一或多个存储器操作的电路或组件。存储器装置400可包含行解码器412、列解码器414、感测放大器420、页缓冲器422、选择器424、输入/输出(I/O)电路426和存储器控制单元430。
存储器阵列402的存储器单元404可布置成块,例如第一块402A及第二块402B。每一块可包含子块。例如,第一块402A可包含第一子块402A0及第二子块402An,且第二块402B可包含第一子块402B0及第二子块402Bn。每一子块可包含多个物理页,每一页包含多个存储器单元404。尽管在本文中经说明为具有两个块,每一块具有两个子块,且每一子块具有多个存储器单元404,但在其它实例中,存储器阵列402可包含更多或更少块、子块、存储器单元。在其它实例中,可将存储器单元404布置成多个行、列、页、子块、块等,且使用例如存取线406、第一数据线410或一或多个选择栅极、源极线等进行存取。
存储器控制单元430可根据在控制线432上接收到的一或多个信号或指令(例如包含一或多个时钟信号或指示所要操作(例如,写入、读取、擦除等)的控制信号)或在一或多个地址线416上接收的地址信号(A0到AX)来控制存储器装置400的存储器操作。存储器装置400外部的一或多个装置可控制控制线432上的控制信号或地址线416上的地址信号的值。存储器装置400外部的装置的实例可包含(但不限于)主机、存储器控制器、处理器或图4中未说明的一或多个电路或组件。
存储器装置400可使用存取线406及第一数据线410将数据传送到存储器单元404中的一或多个(例如,写入或擦除)或从存储器单元404中的一或多个传送数据(例如,读取)。存储器控制单元430可包含与行解码器412耦合的状态机431、列解码器414及I/O电路426。状态机413还可输出快闪存储器的状态数据,例如READY/BUSY或PASS/FAIL。在一些设计中,状态机431可经配置以管理编程过程。行解码器412及列解码器414可从地址线416接收及解码地址信号(A0到AX),可确定待存取存储器单元404中的哪些,且可将信号提供到存取线406(例如,多个字线(WL0到WLm)中的一或多个)或第一数据线410(例如,多个位线(BL0到BLn)中的一或多个)中的一或多个,例如上文所描述。
存储器装置400可包含例如感测放大器420的感测电路系统,所述感测电路经配置以确定(例如,读取的)数据的值,或确定待使用第一数据线410写入到存储器单元404的数据的值。例如,在选定存储器单元404串中,感测放大器420中的一或多个可响应于通过读取电流在存储器阵列402中通过选定串流到数据线410而读取选定存储器单元404中的逻辑电平。
存储器装置400外部的一或多个装置可使用I/O线(DQ0到DQN)408、地址线416(A0到AX)或控制线432与存储器装置400进行通信。输入/输出(I/O)电路426可根据例如控制线432及地址线416使用I/O线408将数据的值传送到存储器装置400中或从存储器装置400中传送出,例如传送在页缓冲器422或存储器阵列402中或从页缓冲器422或存储器阵列402传送出。页缓冲器422可在数据经编程到存储器阵列402的相关部分中之前存储从存储器装置400外部的一或多个装置接收的数据,或可在将数据传输到存储器装置400外部的一或多个装置之前存储从存储器阵列402读取的数据。
列解码器414可接收地址信号(A0到AX)并将其解码为一或多个列选择信号(CSEL1到CSELn)。选择器424(例如,选择电路)可接收列选择信号(CSEL1到CSELn),且在页缓冲器422中选择表示待从存储器单元404读取或待编程到存储器单元404中的数据的值的数据。可使用第二数据线418在页缓冲器422与I/O电路426之间传送选定数据。在一些实例中,快闪存储器转换层(未展示)可将由主机提供的地址映射到由行解码器412及列解码器414用于读取存储器阵列402中的数据的物理存储器地址。
存储器控制单元430可从外部电源或供应器(例如,内部或外部电池、AC到DC转换器等)接收正供应信号及负供应信号,例如供应电压Vcc 434及接地电势Vss 436。在某些实例中,存储器控制单元430可包含调节器428以内部提供正或负供应信号。
本文档描述使用奇偶校验数据及条带化来增加受管“与非”装置的读取命令的带宽的方法、系统、存储器装置及机器可读媒体的实例。如先前所述,在一些实例中,虽然正在读取来自第一存储器裸片中第一条带的数据块,但存储在不同存储器裸片中的第二条带的数据部分是并行读取的,包含奇偶校验部分。然后,使用奇偶校验数据来重组存储在第一存储器裸片中的第二条带的部分,而无需读取第一裸片。此重构可与第一裸片的其它读取并行地发生。因此,此过程会增加数据读出带宽,而不必改变存储器阵列的读取/写入速度。
图5根据本公开的一些实例说明从主机装置到图1中所说明类型的“与非”存储器装置的读取命令的过程。虽然在UFS主机系统100的上下文中描述,通过UFS控制器120与受管“与非”设备110通信,但UFC设备仅用于说明目的,因此不胜感激。所属领域的技术人员将了解本文中所描述的技术可与其它类型的受管存储器装置一起使用。
如图5中所说明,主机系统500通过经由主机系统的I/O单元520发出读取命令(Read命令),从受管“与非”装置510启动读取。在样本实施例中,Read命令引用由受管“与非”装置510的存储器控制器530转换为“与非”存储器540的物理存储器地址的虚拟(逻辑)存储器地址。当存储器控制器530的I/O单元550接收到具有逻辑存储器地址的Read命令时,处理器560在(1)处理Read命令,以从所提供逻辑地址解码逻辑块地址(LBA),使用逻辑到物理(L2P)转换表来识别存储在“与非”540中的目标主机数据的物理地址。
L2P转换表可存储在SRAM 570中,或部分地存储在SRAM 570中。所属领域的技术人员将了解,存储器装置的存储器控制器530可具有有限大小的SRAM 570,所述大小可无法保留用于将逻辑地址转换为物理地址的整个L2P转换表。例如,SRAM 570可保持大约2MB,而整个L2P转换表可为大约128MB。为了解决此问题,存储器控制器530可实施大约128KB的L2P高速缓冲存储器,所述L2P高速缓冲存储器保留L2P转换表的一部分,所述部分仅为整个L2P转换表的一小部分。另外,因为大型SRAM 570可为昂贵的,所以整个L2P转换表可存储在“与非”阵列540的一部分中。在接收到读取命令后,如果逻辑地址不在L2P高速缓冲存储器中,那么在(2)处,处理器560分派“与非”Read命令,从“与非”540获取覆盖所识别逻辑地址的L2P转换表的部分。所请求L2P数据在(3)处从“与非”540传送到SRAM 570。在(4)处,处理器560可利用SRAM 570中L2P转换表的传送部分来确定与读取命令的逻辑地址相对应的物理地址。在一些实例中,L2P转换表的传送部分可添加到SRAM 570中的L2P高速缓冲存储器中。最近未存取的L2P转换表的较旧部分可会从高速缓冲存储器中逐出,以便为传送部分提供空间。
然后,处理器560在(5)处分派“与非”读取命令,以获取位于“与非”540的所识别物理地址处的主机数据。然后,“与非”540中的所识别物理地址处的数据有效负载在(6)处从“与非”540传送到存储器控制器530的I/O单元550,以传送到请求主机系统500的I/O单元520。
在一些实例中,可使用先前连同奇偶校验位所描述的裸片条带方法将存储在“与非”540中的L2P转换表存储在“与非”540上。这可确保L2P表免受裸片故障的影响,因为L2P表对存储器装置的功能非常重要。
图6说明根据本公开的一些实施例说明将数据存储在“与非”阵列600中。如所说明,关于每一页0到3的数据存储在横跨相应2平面裸片0到2的块中。奇偶校验数据存储在裸片3中,用于在裸片0到2中的一个发生故障的情况下保护存储在裸片0到2中的数据的完整性。当然,4裸片/2平面“与非”存储器平面600只为实例,因为也可使用具有不同数目个裸片(例如,移动装置中通常使用2、4或8个裸片)或平面的“与非”存储器平面来实施本文中所描述的技术。此外,本文中所描述的技术可与其中奇偶校验数据也横跨裸片分布的RAID配置中的任何者一起使用。数据经展示横跨多个裸片“条带化”。关于每一条带的数据经展示在同一形状内。也就是说,数据部分1、3及5经展示在圆圈中,以表示其为同一条带。条带中的每一个的奇偶校验存储在裸片3中。存储在裸片3的平面0中的奇偶校验对应于存储在每一裸片的平面0中的条带,且存储在裸片3的平面1中的奇偶校验对应于存储在每一裸片的平面1中的条带。因此,奇偶校验00用于具有数据部分1、3、5的条带,且奇偶校验01用于具有数据部分2、4及6的条带。
如所展示,“与非”存储器平面600的页0中的数据通过将第一条带的相应数据块1、3及5以及第二条带的相应数据块2、4、6分别存储在裸片1的平面0及1中、裸片2的平面0及1中及裸片2的平面0及1来横跨裸片0到2“条带化”。关于裸片0到2的平面0中的数据块[1]、[3]及[5]的奇偶校验数据[00]存储在裸片3的平面0中。类似地,关于裸片0到2的平面1中的数据块[2]、[4]及[6]的奇偶校验数据[01]存储在裸片3的平面1中。此外,第三数据条带通过横跨裸片0到2“条带化”数据(通过将相应数据块7、9及11分别存储在裸片0、裸片1及裸片2的平面0中)来存储在页1中。类似地,第四数据条带存储在裸片0平面1、裸片1平面1、裸片2平面1中的页1中。关于裸片0到2的平面0中的数据块[7]、[9]及[11]的奇偶校验数据[10]存储在裸片3的平面0中。类似地,关于裸片0到2的平面1中的数据块[8]、[10]及[12]的奇偶校验数据[11]存储在裸片3的平面1中。页2及3具有类似的条带化数据部分13到24及在裸片3中的对应奇偶校验值。
在图6中,将了解,对数据块[1]的读取请求将由裸片0服务。然而,对数据块[7]的同时读取请求将必须等待,这是因为裸片0正忙于读取数据块[1]。然而,对数据块[3]或数据块[9]的读取请求可同时由裸片1服务。在操作中,对L2P转换表的部分的多个读取请求可位于同一裸片上在同一平面上,这将阻止L2P读取的并行性,从而显著影响性能。例如,在图6的“与非”存储器平面600中,如果分别对数据块[1]、数据块[7]、数据块[13]及数据块[19]发出4个同时L2P读取请求,那么由于裸片0处的读取冲突而将需要4个“与非”读取周期。此限制对以最佳方式从“与非”存储器平面600读出数据的能力产生负面影响。在样本实施例中,通过利用裸片3中的奇偶校验数据及存储在同一条带的其它部分中的数据,解决了此限制。
如上文所述,奇偶校验数据可用于实现冗余。如果存储器阵列中的裸片发生故障,其它裸片上的剩余数据可与奇偶校验数据(使用布尔“异或”函数)组合,以重构缺失的数据。例如,假设三裸片阵列中的两个裸片含有以下数据:
裸片1:01101101
裸片2:11010100
为了计算关于两个裸片的奇偶校验数据,对其数据执行“异或”:
然后,所得奇偶校验数据10111001存储在裸片3上。如果三个裸片中的任何一个发生故障,那么故障裸片的内容可通过将其余裸片的数据进行同一“异或”运算,在替换裸片上重构。例如,如果裸片2发生故障,则可使用剩余两个裸片(裸片1及裸片3)的内容的“异或”结果重建其数据:
裸片1:01101101
裸片3:10111001
如下:
所述“异或”计算结果产生裸片2的内容。然后,11010100存储在裸片2上,完全修复阵列。此相同“异或”概念类似地适用于使用任何数目的裸片的较大阵列。例如,在12个裸片的阵列的状况下,11个裸片参与上文所展示的“异或”计算,并生成一个值,然后将所述值存储在专用奇偶校验驱动上。
如上文所述,存储器裸片可一次仅读取一部分。因此,对同一存储器裸片的多个同时读取请求可导致性能欠佳。然而,发明者已认识到,读取带宽可通过以最小化存储器冲突的顺序从存储器裸片读取数据来最大化。
例如,参考图6,如果同时接收到对数据块[1]、数据块[7]、数据块[13]及数据块[19]中的数据的读取请求,那么可通过以以下顺序读取数据来最大化带宽。首先,读取裸片0、平面0、页0获取数据部分[1]。同时,从裸片1、2及3读取页1的数据部分[9]、数据部分[11]及奇偶校验[10]。然后,可将数据部分[1]从“与非”540传送到SRAM 570。在下一周期中,数据部分[9]、[11]及奇偶校验[10]可从“与非”裸片1、2及3传送到SRAM 570,用于对数据部分[9]、数据部分[11]及奇偶校验[10]执行“异或”运算以重组数据部分[7]。当处理器560执行操作以重组数据部分[7]时,可从“与非”裸片0读出页2的数据部分[13]。同时地,可从裸片1、2及3读取页3的数据部分[21]、数据部分[23]及奇偶校验[30]。然后,数据部分[13]可从“与非”540传送出到SRAM 570。在下一周期中,数据部分[21]、数据部分[23]及奇偶校验[30]可传送到SRAM 570,用于对数据部分[21]、数据部分[23]及奇偶校验[30]执行“异或”运算,以重组部分[19]进行传送。如同之前,当处理器560执行重组数据部分[19]的操作时,可从“与非”裸片0读出数据。
图7说明使用奇偶校验数据并行地存取数据的时序图,如关于图7所描述。如所说明,在样本实施例中,33微秒被分配到每一裸片读取的数据块。当然,读取时间将因存储器装置而异。在第一数据读取周期中,数据部分[1]从“与非”裸片0读取,数据部分[9]从“与非”裸片1读取,数据部分[11]从“与非”裸片2读取,且奇偶校验[10]从“与非”裸片3读取。来自“与非”裸片0的读取数据部分[1]在700处传送,以完成数据部分#1。现在转向图8,图7的时序图继续。在第二数据读取周期中,页2的数据部分[13]从“与非”裸片0读出。同时地,数据部分[21]从“与非”裸片1读取,数据部分[23]从“与非”裸片2读取,且奇偶校验[30]从“与非”裸片3读取。在此期间,在先前数据读取周期期间读取的数据部分[9]、数据部分[11]及奇偶校验[10]将传送到SRAM 570中,以对数据部分[9]、数据部分[11]及奇偶校验[10]执行“异或”运算,以重组数据部分[7]。如所说明,此过程比裸片0到3的数据读取周期花费的时间少,且与其它读取操作并行地执行。来自“与非”裸片0的数据部分[13]在810处传送到SRAM 570。在第三数据读取周期期间,在上一数据读取周期期间读取的数据部分[21]、数据部分[23]及奇偶校验[30]被传送到SRAM 570中,用于对数据部分[21]、数据部分[23]及奇偶校验[30]执行“异或”运算以重组数据部分[19]。
在此实例中,将了解,当依序读取数据部分[1]、[7]、[13]及[19]时,根据需要,在85微秒(33微秒+33微秒+19微秒)而非132微秒(33微秒×4)内读出数据部分[1]、[7]、[13]及[19]。其它数据平面可使用相同技术同时地读取。此外,还将了解此过程通过增加存取同一“与非”平面的读取请求的读取带宽来加快数据读出速度。例如,对L2P转换表的部分的读取请求。此过程更高效,因为使用“异或”函数在裸片中重建数据比执行额外数据读取周期更快。
虽然上述方法是参照L2P转换表数据描述的,但受益于本公开的所属领域的技术人员将了解,所描述方法通常适用于所存储的任何数据,如用所描述奇偶校验位所描述。更一般地,所述方法使得存储器装置能够通过从剩余数据及奇偶校验位重组所跳过数据来跳过实际存储器读取操作。通过跳过此存储器读取操作,可从所述裸片读取其它数据块—增加并行性。
图9为方法900的流程图,其根据本公开的一些实例说明从存储器装置读取数据的方法。在样本实施例中,图8中所说明的流程图由图5的存储器控制器530的处理器560实施,以执行从主机系统500接收的读取命令。在操作910处,控制器可接收到具有虚拟地址的读取命令。在操作915处,控制器可解码逻辑块地址(LBA),以识别将逻辑块地址转换为存储器阵列的物理地址所需要的LBA转换表的部分。如果所需的LBA转换表的部分在L2P高速缓冲存储器中,那么控制器用来自高速缓冲存储器的物理地址服务读取(为了清楚起见未展示)。另一方面,如果LBA转换表的部分不在L2P高速缓冲存储器中,那么控制器从“与非”存储器阵列读取部分。
使得操作920及925同时地或几乎同时地执行。在操作920处,致使L2P转换表的页X的部分A从裸片Y读取,同时地,在925处,从裸片Y+1到Y+N从页X+1读取部分A+1到A+N(包含奇偶校验数据)。使用页X+1的实例用作实例,然而,同时读取可为另一页,而非与页X连续。出于本实例目的,部分A及页X将为多裸片阵列中横跨多个裸片的第一条带的一部分;且来自页X+1(或除页X以外的其它页)的同时读取部分将为多裸片阵列中跨横跨多个裸片的第二条带的一部分。如本文中先前所描述,多裸片阵列中的多裸片可为多平面裸片。如先前所论述,相对于图6,多裸片阵列中单个裸片的不同平面中的部分可包含在不同的数据条带中。
在操作930处,将部分A传送到SRAM。在操作940处,系统将部分A+1到A+N传送到SRAM,且在操作950处,依据部分A+1到A+N(包含奇偶校验位)来计算页X+1的部分A,用于形成L2P表的段。同时地,系统确定是否已读取所有部分。如果已读取所有部分,那么在操作955处,控制器利用由上述部分表示的L2P表的段来服务读取命令。如果存在额外数据部分,那么可对额外数据重复920、925、930、935、940及950的操作,直到已读取所有L2P数据部分。
如本文中所使用的一部分为存储器装置中的任何数据存储单元,例如页、块等。例如,虽然所公开方法已读取例如读取部分1,同时读取部分9、11及奇偶校验10(例如,在图6中)且可使用部分9、11及奇偶校验第10来重构部分7,但受益于本公开的所属领域的技术人员将了解,在其它实例中,可使用其它次序。例如,可读取部分3,且同时地可读取部分7、11及奇偶校验10以重构部分9。
现在转向图10,方法1000的流程图说明根据本公开的一些实例从存储器装置读取数据的方法。在操作处,系统可同时致使从第一存储器裸片读取第一部分数据,且从第二存储器裸片读取第二部分数据,且从第三存储器裸片读取第三部分数据,所述第三部分数据包含奇偶校验数据。在操作1010处,系统可与从第一存储器裸片读取第五部分数据并行地使用第二部分数据及奇偶校验数据确定存储在第一存储器裸片中的第四部分数据。在一些实例中,第二及第三裸片的第六及第七部分可与操作1010同时地读取,且第六及第七部分可用于重构存储在第一存储器裸片中的第八部分,而不读取第一存储器裸片。虽然图10说明具有三个存储器裸片的配置,如先前所解释,可包含额外存储器裸片。
如上文所述,对于存取“与非”540的同一“与非”平面的所有L2P请求的条件,此过程有效地将L2P读取带宽加倍。此外,虽然在将L2P数据从“与非”读取到SRAM的上下文中进行描述,但将了解,本文中所描述的技术可用于所有类型的数据传送,用于实施RAID的存储器。
图11说明实例机器1100的框图。机器1100可为主机装置(例如,UFS主机500)的一部分。在一些实例中,机器1100或机器1100的组件中的一或多个可为存储器装置(例如MNAND 510)或并入到其中。机器1100可执行或实施本文中所描述的实施例中的一或多个,包含图1到10。在替代实施例中,机器1100可作为独立装置操作,或可连接(例如,联网)到其它机器。在网络部署中,机器1100可在服务器-客户端网络环境中以服务器机器、客户端机器或两者的能力操作。在一实例中,机器1100可在对等(P2P)(或其它分布式)网络环境中充当对等机器。机器1100可为个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、移动电话、Web器具、IoT装置、汽车系统或规定欲由所述机器执行的动作的任何能够执行指令(顺序的或其它方式)的机器。此外,尽管说明仅单个机器,但还应将术语“机器”视为包含个别地或联合地执行一组(或多组)指令以执行本文中所论述的方法(例如,云计算、软件即服务(SaaS)、其它计算机群集配置)中的任一或多个的任何机器集合。
如本文中所描述,实例可包含逻辑、组件、装置、封装或机制,或可由其操作。电路系统为在包含硬件(例如,简单电路、门、逻辑等)的有形实体中实施的电路的集合(例如,一组)。电路系统隶属关系可随时间及基础硬件可变性而具有灵活性。电路系统包含可在操作时单独或组合地执行特定任务的成员。在一实例中,电路系统的硬件可经不变地设计为实施特定操作(例如,硬连线)。在一实例中,电路系统的硬件可包含可变地连接的物理组件(例如,执行单元、晶体管、简单电路等),包含经物理修改(例如,磁性地、电气地、不变质量粒子的可移动放置)以对特定操作的指令进行编码的计算机可读媒体。在连接物理组件时,硬件构成的基础电性质例如从绝缘体改变成导体,或反之亦然。指令使得参与的硬件(例如,执行单元或加载机制)能够经由变量连接在硬件中创建电路系统的成员,以在操作时实施特定任务的部分。因此,当装置正在操作时,计算机可读媒体通信地耦合到电路系统的其它组件。在一实例中,物理组件中的任何一个可在多于一个电路系统的多于一个成员中使用。例如,在操作中,执行单元可在一个时间点在第一电路系统的第一电路中使用,且可在不同的时间被第一电路系统中的第二电路或第二电路系统中的第三电路重新使用。
机器(例如,计算机系统)1100可包含硬件处理器1102(例如,中央处理单元(CPU)、图形处理单元(GPU)、硬件处理器内核或其任一组合,例如,存储器控制器115,等)、主存储器1104及静态存储器1106,其中一些或全部可经由互连(例如,总线)1108彼此通信。机器1100可进一步包含显示单元1110、字母数字输入装置1112(例如,键盘)及用户界面(UI)导航装置1114(例如,鼠标)。在一实例中,显示单元1110、输入装置1112及UI导航装置1114可为触摸屏显示器。机器1100可另外包含信号生成装置1118(例如,扬声器)、网络接口装置1120,以及一或多个传感器1116,例如全球定位系统(GPS)传感器、指南针、加速度计或其它传感器。机器1100可以包含输出控制器1128,例如串行(例如,通用串行总线(USB)、并行或其它有线或无线(例如,红外线(IR)、近场通信(NFC)等)连接以与一或多个外围装置(例如,打印机、读卡器等)进行通信或控制所述一或多个外围装置。
机器1100可以包含机器可读媒体1122,在所述机器可读媒体上存储体现本文中所描述的技术或功能中的任何一或多个或由其所利用的一或多组数据结构或指令1124(例如,软件)。指令1124也可以在由机器1100执行其期间完全或至少部分地驻存在主存储器1104内,在静态存储器1106内或在硬件处理器1102内。在一实例中,硬件处理器1102、主存储器1104或静态存储器1106中的一个或任何组合可以构成机器可读媒体1122。
虽然机器可读媒体1122被说明为单个媒体,但术语“机器可读媒体”可包含经配置以存储一或多个指令1124的单个媒体或多个媒体(例如,集中式或分布式数据库,或相关联高速缓冲存储器及服务器)。
术语“机器可读媒体”可包含能够存储或编码供由机器1100执行且致使机器1100执行本公开的技术中的任何一或多个的指令,或能够存储、编码或载运由此类指令使用或与其相关联的数据结构的任何媒体。非限制性机器可读媒体实例可包含固态存储器以及光学及磁性媒体。在一实例中,有质量的机器可读媒体包括具有多个具有不变(例如,静止)质量的粒子的机器可读媒体。因此,有质量的机器可读媒体不是暂时性传播信号。有质量的机器可读媒体的特定实例可包含:非易失性存储器,例如半导体存储装置(例如,电可编程只读存储器(EPROM)、电可擦可编程只读存储器(EEPROM))及快闪存储器装置;磁盘,例如内部硬盘及可拆卸式磁盘;磁光盘;以及CD-ROM及DVD-ROM磁盘。
可通过存储器1104存取存储在存储装置1121上的指令1124(例如,软件、程序、操作系统(OS)等)或其它数据,以供由处理器1102使用。存储器1104(例如,DRAM)通常较快速但易失的,且因此与存储装置1121(例如,SSD)不同类型的存储,其适合于长期存储,包含处于“关闭”状态时。用户或机器1100正在使用的指令1124或数据通常被加载到存储器1104中,以供由处理器1102使用。当存储器1104已满时,可分配来自存储装置1121的虚拟空间以补充存储器1104;然而,由于存储装置1121通常比存储器1104慢,且写入速度通常比读取速度慢至少两倍,因此,使用虚拟存储器可能由于存储装置等待时间而大大降低用户体验(与存储器1104,例如,DRAM相比)。此外,将存储装置1121用于虚拟存储器可大大地减少存储装置1121的可用寿命。
与虚拟存储器相比,虚拟存储器压缩(例如,内核特征“ZRAM”)使用存储器的一部分作为压缩块存储装置,以避免分页到存储装置1121。在压缩块中进行分页,直到有必要将此类数据写入到存储装置1121。虚拟存储器压缩增加存储器1104的可用大小,同时减少存储装置1121的磨损。
针对移动电子装置或移动存储装置进行优化的存储装置,传统上包含MMC固态存储装置(例如,微型安全数字(microSDTM)卡等)。MMC装置包含与主机装置的许多并行接口(例如,8位并行接口),且通常为可拆卸的且与主机装置分离的组件。相反,eMMCTM装置附接到电路板上并被视为主机装置的组件,其中读取速度可与基于串行ATATM(串行AT(先进技术)附件或SATA)的SSD装置相媲美。然而,对移动装置性能的需求不断提高,例如为完全启用虚拟或增强现实装置,利用不断增长的网络速度等。响应于此需求,存储装置已从并行通信接口转换为串行通信接口。通用快闪存储(UFS)装置(包含控制器及固件)使用具有专用读取/写入路径的低压差分信号(LVDS)串行接口与主机装置进行通信,从而进一步提高读取/写入速度。
可进一步使用传输媒体经由利用多种传送协议(例如,帧中继、因特网协议(IP)、传输控制协议(TCP)、用户数据报协议(UDP)、超文本传送协议(HTTP)等)中的任何一个的网络接口装置1120在网络1126上传输或接收指令1124。实例通信网络可包含局域网(LAN)、广域网(WAN)、分组数据网络(例如,因特网)、移动电话网络(例如,蜂窝网络)、普通老式电话(POTS)网络,及无线数据网络(例如,被称为的电气及电子工程师协会(IEEE)802.11标准系列,被称为/>的IEEE 802.16标准系列),IEEE 802.15.4标准系列,对等(P2P)网络,以及其它网络。在一实例中,网络接口装置1120可包含一或多个物理插孔(例如,以太网、同轴或电话插孔)或一或多个天线以连接到网络1126。在一实例中,网络接口装置1120可包含多个天线,以使用单输入多输出(SIMO)、多输入多输出(MIMO)或多输入单输出(MISO)技术中的至少一个进行无线通信。术语“传输媒体”应被视为包含能够存储、编码或运载由机器1100执行的指令的任何无形媒体,且包含数字或模拟通信信号或其它无形媒体以促进此类软件的通信。
以上详细描述包含对形成所述详细描述的部分的附图的参考。所述图式以说明方式展示其中可实践本发明的具体实施例。这些实施例在本文中也被称为“实例”。此类实例除显示或描述的内容外,还包含元素。然而,本发明者还设想其中仅提供所展示或描述的那些元件的实例。此外,本发明者还预期使用关于特定实例(或其一或多个方面)或关于本文中所展示或所描述的其它实例(或其一或多个方面)所展示或所描述的那些元素的任何组合或排列的实例(或其一或多个方面)。
在本文件中,如在专利文件中常见,使用术语“一(a或an)”来包含一个或多于一个,独立于任何其它例子或“至少一个(at least one)”或“一或多个(one or more)”的使用。在此文件中,除非另有指示,否则使用术语“或”来指代非排他性,或使得“A或B”可以包含“A但非B”、“B但非A”以及“A及B”。所附在权利要求书中,将术语“包含(including)”及“其中(in which)”用作相应术语“包括(comprising)”及“其中(wherein)”的普通英语等效形式。此外,在以下权利要求书中,术语“包含(including)”及“包括(comprising)”是开放式的,也就是说,在权利要求中除列于此术语之后的那些元素以外还包含若干元素的系统、装置、物品或进程仍被视为归属于所述权利要求的范围内。此外,在以下权利要求书中,术语“第一”、“第二”及“第三”等仅用作标记,且并不意欲对其对象施加数字要求。
在各种实例中,本文中所描述的组件、控制器、处理器、单位、引擎或表除其它外还可以包含存储在物理装置上的物理电路系统或固件。如本文中所使用,“处理器”意指任何类型的计算电路,例如但不限于微处理器、微控制器、图形处理器、数字信号处理器(DSP)或者任何其它类型的处理器或处理电路,包含一组处理器或多核装置。
根据本公开且在本文中所描述的各种实施例包含利用存储器单元的垂直结构(例如,存储器单元的“与非”串)的存储器。如本文中所使用,方向性形容词将相对于其上形成有存储器单元的衬底的表面采取(即,垂直结构将被视为远离衬底表面延伸,垂直结构的底端将被视为最靠近衬底表面的端部且垂直结构的顶端将被视为离衬底表面最远的端部)。
如本文中所使用,操作存储器单元包含从存储器单元读取,写入到存储器单元或擦除存储器单元。将存储器单元置于预期状态的操作在本文中被称为“编程”,且可包含写入到存储器单元或从存储器单元擦除(例如,存储器单元可被编程为擦除状态)两者。
根据本公开的一或多个实施例,位于存储器装置内部或外部的存储器控制器(例如处理器、控制器、固件等)能够控制使用此处所述的RAID实施时从存储器装置读出数据。
将理解,当将元件称为“在”另一元件“上”、“连接到”另一元件或“与”另一元件“耦合”时,其可直接在另一元件上、直接连接到另一元件或直接与另一元件耦合,或可存在介入元件。相比来说,当将元件称为“直接在”另一元件“上”、“直接连接到”另一元件或“直接与”另一元件“耦合”时,不存在介入元件或层。如果两个元件在图式中经展示用线将其连接在一起,那么除非另外说明,否则两个元件可耦合或直接耦合。
本文中所描述的方法实例可为至少部分地机器或计算机实施的。一些实例可包含用指令编码的计算机可读媒体或机器可读媒体,所述指令可操作以配置电子装置以执行如在以上实例中所描述的方法。此类方法的实施方案可包含代码,例如微码、汇编语言代码、高级语言代码等。此类代码可包含用于执行各种方法的计算机可读指令。所述代码可形成计算机程序产品的部分。此外,例如在执行期间或在其它时间,所述代码可有形地存储在一或多个易失性或非易失性有形计算机可读媒体上。这些有形计算机可读媒体的实例可包含(但不限于)硬盘、可拆卸式磁盘、可拆卸式光盘(例如,压缩磁盘及数字视频磁盘)、磁带盒、存储卡或存储条、随机存取存储器(RAM)、只读存储器(ROM)、固态硬盘(SSD)、通用快闪存储(UFS)装置、嵌入式MMC(eMMC)装置,等等。
上文描述打算为说明性而非限制性。例如,上文所描述的实例(或其一或多个方面)可彼此组合方式使用。例如,所属领域的技术人员可在审阅上文描述后即刻使用其它实施例。提交上文描述是基于以下理解:其将不被用于解释或限制权利要求书的范围或含义。此外,在以上详细描述中,各种特征可分组在一起以简化本公开。此不应解释为意指未主张的所公开特征对任一权利要求为必要的。而是,发明性标的物可在于少于特定所公开实施例的所有特征。因此,以下权利要求书特此并入到详细描述中,其中每一权利要求独立地作为单独的实施例,且可预期,此类实施例可以各种组合或排列彼此组合。本发明的范围应参考所附权利要求书连同此权利要求书授权的等效物的全部范围来确定。
其它注释及实例
实例1为一种从存储器装置读取数据的方法,其包括:同时地致使从第一存储器裸片读取第一部分数据,且从第二存储器裸片读取第二部分数据,且从第三存储器裸片读取的第三部分数据,所述第三部分数据包含关于包含所述第二部分数据及存储在所述第一存储器裸片中的第四部分数据的数据的奇偶校验数据;及与从选定存储器裸片读取第五部分数据并行地使用所述第二部分数据及所述奇偶校验数据重组存储在所述第一存储器裸片中的所述第四部分数据。
在实例2中,实例1的标的物,其中:所述第一部分数据为存储在所述存储器装置的多裸片阵列中的第一数据条带的一部分;所述第二、第三及第四部分数据为存储在所述存储器装置的所述多裸片阵列中的第二数据条带的一部分;且所述第五部分数据为存储在所述存储器装置的所述多裸片阵列中的第三数据条带的一部分。
在实例3中,根据实例2所述的标的物,其中所述第五部分数据从所述第一存储器装置读取。
在实例4中,实例2到3中的任何一或多个的标的物,其中所述多裸片阵列的所述存储器裸片为多平面裸片,且其中所述第一、第二、第三、第四及第五部分数据中的每一个位于相应裸片的相应平面中。
在实例5中,实例1到4中的任何一或多个的标的物任选地包含P)转换表条目。
在实例6中,实例5的标的物任选地包含接收主机命令;确定所述存储器装置的易失性存储器中的L2P高速缓冲存储器不具有所述主机命令中所包含的逻辑地址的条目;且其中响应于确定所述存储器装置的所述易失性存储器中的所述L2P高速缓冲存储器不具有用于所述主机命令中所包含的所述逻辑地址的所述条目而执行致使读取所述第一部分、第二部分、第三部分及第五部分。
在实例7中,实例6的标的物任选地包含使用所述第一部分、第二部分、第三部分、第四部分或第五部分中的至少一部分将所述主机命令中所包含的所述逻辑地址转换为物理地址;并致使在所述物理地址上执行所述主机命令。
在实例8中,实例5到7中的任何一或多个的标的物任选地包含接收主机命令;确定所述存储器装置的易失性存储器中的L2P高速缓冲存储器不具有用于所述主机命令中所包含的逻辑地址的条目;确定读取用于所述主机命令中所包含的所述逻辑地址的所述条目包含读取存储在同一裸片中的至少两个部分数据;且其中响应于确定读取用于所述主机命令中所包含的所述逻辑地址的所述条目包含读取存储在所述同一裸片中的至少两个部分数据而执行所述致使读取所述第一部分、第二部分、第三部分及第五部分,以及重组所述第四部分。
在实例9中,实例1到8中任何一或多个的标的物,其中重组所述第四部分数据包括对所述第二部分数据及所述第三部分数据的值执行“异或”运算以产生所述第四部分数据。
在实例10中,实例1到9中任何一或多个的标的物,其中所述存储器装置为“与非”存储器装置。
实例11为一种存储器装置,其包括:多裸片存储器阵列;存储器控制器,其经配置以执行包括以下的操作:同时地致使从第一存储器裸片读取第一部分数据,且从第二存储器裸片读取第二部分数据,且从第三存储器裸片读取的第三部分数据,所述第三部分数据包含关于包含所述第二部分数据及存储在所述第一存储器裸片中的第四部分数据的数据的奇偶校验数据;及与从选定存储器裸片读取第五部分数据并行地使用所述第二部分数据及所述奇偶校验数据重组存储在所述第一存储器裸片中的所述第四部分数据。
在实例12中,实例12的标的物,其中:所述第一部分数据为存储在所述存储器装置的所述多裸片存储器阵列中的第一数据条带的一部分;所述第二、第三及第四部分数据为存储在所述存储器装置的所述多裸片阵列中的第二数据条带的一部分;且所述第五部分数据为存储在所述存储器装置的所述多裸片阵列中的第三数据条带的一部分。
在实例13中,根据实例12所述的标的物,其中所述第五部分数据从所述第一存储器装置读取。
在实例14中,实例12到13中的任何一或多个的标的物,其中所述多裸片阵列的所述存储器裸片为多平面存储器裸片,且其中所述第一、第二、第三、第四及第五部分数据中的每一个位于相应裸片的相应平面中。
在实例15中,实例11到14中的任何一或多个的标的物任选地包含P)转换表条目。
在实例16中,实例15的标的物,其中所述操作进一步包括:接收主机命令;确定所述存储器装置的易失性存储器中的L2P高速缓冲存储器不具有所述主机命令中所包含的逻辑地址的条目;且其中响应于确定所述存储器装置的所述易失性存储器中的所述L2P高速缓冲存储器不具有用于所述主机命令中所包含的所述逻辑地址的所述条目而执行致使读取所述第一部分、第二部分、第三部分及第五部分。
在实例17中,实例16的标的物,其中所述操作进一步包括:使用所述第一部分、第二部分、第三部分、第四部分或第五部分中的至少一部分将所述主机命令中所包含的所述逻辑地址转换为物理地址;并致使在所述物理地址上执行所述主机命令。
在实例18中,实例15到17中的任何一或多个的标的物,其中所述操作进一步包括:接收主机命令;确定所述存储器装置的易失性存储器中的L2P高速缓冲存储器不具有用于所述主机命令中所包含的逻辑地址的条目;确定读取用于所述主机命令中所包含的所述逻辑地址的所述条目包含读取存储在同一裸片中的至少两个部分数据;且其中响应于确定读取用于所述主机命令中所包含的所述逻辑地址的所述条目包含读取存储在所述同一裸片中的至少两个部分数据而执行所述致使读取所述第一部分、第二部分、第三部分及第五部分,以及重组所述第四部分。
在实例19中,实例11到18中任何一或多个的标的物,其中重组所述第四部分数据的所述操作包括对所述第二部分数据及所述第三部分数据的值执行“异或”运算以产生所述第四部分数据。
在实例20中,实例11到19中任何一或多个的标的物,其中所述存储器装置为“与非”存储器装置。
实例21为一种机器可读媒体,其存储指令,当由存储器装置的控制器执行时,所述指令致使所述控制器执行包括以下的操作:同时地致使从第一存储器裸片读取第一部分数据,且从第二存储器裸片读取第二部分数据,且从第三存储器裸片读取的第三部分数据,所述第三部分数据包含奇偶校验数据;及与从所述第一存储器裸片读取第五部分数据并行地使用所述第二部分数据及所述奇偶校验数据重组存储在所述第一存储器裸片中的第四部分数据。
在实例22中,实例21的标的物任选地包含P)转换表条目。
在实例23中,实例22的标的物,其中所述操作进一步包括:接收主机命令;确定所述存储器装置的易失性存储器中的L2P高速缓冲存储器不具有所述主机命令中所包含的逻辑地址的条目;且其中响应于确定所述存储器装置的所述易失性存储器中的所述L2P高速缓冲存储器不具有用于所述主机命令中所包含的所述逻辑地址的所述条目而执行致使读取所述第一部分、第二部分、第三部分及第五部分。
在实例24中,实例23的标的物,其中所述操作进一步包括:使用所述第一部分、第二部分、第三部分、第四部分或第五部分中的至少一部分将所述主机命令中所包含的所述逻辑地址转换为物理地址;并致使在所述物理地址上执行所述主机命令。
在实例25中,实例22到24中的任何一或多个的标的物,其中所述操作进一步包括:接收主机命令;确定所述存储器装置的易失性存储器中的L2P高速缓冲存储器不具有用于所述主机命令中所包含的逻辑地址的条目;确定读取用于所述主机命令中所包含的所述逻辑地址的所述条目包含读取存储在同一裸片中的至少两个部分数据;且其中响应于确定读取用于所述主机命令中所包含的所述逻辑地址的所述条目包含读取存储在所述同一裸片中的至少两个部分数据而执行所述致使读取所述第一部分、第二部分、第三部分及第五部分,以及重组所述第四部分。
在实例26中,实例21到25中任何一或多个的标的物,其中重组所述第四部分数据的所述操作包括对所述第二部分数据及所述第三部分数据的值执行“异或”运算以产生所述第四部分数据。
实例27为至少一个机器可读媒体,其包含指令,所述指令在由处理电路系统执行时致使所述处理电路系统执行用以实施实例1到10的方法中的任一个的操作。
实例28为一种结构化并经配置以实施实例1到10的方法中的任一个的设备。
实例29为一种结构化并经配置以实施实例1到20中的任一个的方法或设备中的任一个的系统。
实例30为一种用以实施由实例11到20的存储器装置中的任一个执行的操作中的任一个的方法。

Claims (22)

1.一种存储器装置,其包括:
多裸片存储器阵列;
存储器控制器,其包括一或多个处理器,且经配置以执行包括以下的操作:
同时地致使从第一存储器裸片读取第一部分数据,从第二存储器裸片读取第二部分数据,且从第三存储器裸片读取第三部分数据,所述第三部分数据包含关于包含所述第二部分数据及存储在所述第一存储器裸片中的第四部分数据的数据的奇偶校验数据;及
与从选定存储器裸片读取第五部分数据并行地使用所述第三部分的所述第二部分数据及所述奇偶校验数据,重组存储在所述第一存储器裸片中的所述第四部分数据。
2.根据权利要求1所述的存储器装置,其中:
所述第一部分数据为存储在所述存储器装置的所述多裸片存储器阵列中的第一数据条带的一部分;
所述第二、第三及第四部分数据为存储在所述存储器装置的所述多裸片存储器阵列中的第二数据条带的一部分;且
所述第五部分数据为存储在所述存储器装置的所述多裸片存储器阵列中的第三数据条带的一部分。
3.根据权利要求2所述的存储器装置,其中所述第五部分数据从所述第一存储器裸片读取。
4.根据权利要求2所述的存储器装置,其中所述多裸片存储器阵列的存储器裸片为多平面存储器裸片,且其中所述第一、第二、第三、第四及第五部分数据中的每一个位于相应存储器裸片的相应平面中。
5.根据权利要求1所述的存储器装置,其中所述第一、第二、第三、第四及第五部分数据为逻辑到物理L2P转换表条目。
6.根据权利要求5所述的存储器装置,其中所述操作进一步包括:
接收主机命令;
确定所述存储器装置的易失性存储器中的L2P高速缓冲存储器不具有用于所述主机命令中所包含的逻辑地址的条目;且
其中响应于确定所述存储器装置的所述易失性存储器中的所述L2P高速缓冲存储器不具有用于所述主机命令中所包含的所述逻辑地址的所述条目而执行致使读取所述第一部分、第二部分、第三部分及第五部分。
7.根据权利要求6所述的存储器装置,其中所述操作进一步包括:
使用所述第一部分、第二部分、第三部分、第四部分或第五部分的至少一部分将所述主机命令中所包含的所述逻辑地址转换为物理地址;及
致使在所述物理地址上执行所述主机命令。
8.根据权利要求5所述的存储器装置,其中所述操作进一步包括:
接收主机命令;
确定所述存储器装置的易失性存储器中的L2P高速缓冲存储器不具有用于所述主机命令中所包含的逻辑地址的条目;
确定读取所述主机命令中所包含的所述逻辑地址的所述条目包含读取存储在同一裸片中的至少两个部分数据;且
其中响应于确定读取所述主机命令中所包含的所述逻辑地址的所述条目包含读取存储在所述同一裸片中的至少两个部分数据而执行所述致使读取所述第一部分、第二部分、第三部分及第五部分,以及重组所述第四部分。
9.根据权利要求1所述的存储器装置,其中重组所述第四部分数据的所述操作包括对所述第二部分数据及所述第三部分数据的值执行“异或”运算以产生所述第四部分数据。
10.一种从“与非”存储器装置读取数据的方法,其包括:
同时地致使从第一存储器裸片读取第一部分数据,从第二存储器裸片读取第二部分数据,且从第三存储器裸片读取第三部分数据,所述第三部分数据包含关于包含所述第二部分数据及存储在所述第一存储器裸片中的第四部分数据的数据的奇偶校验数据;及
与从选定存储器裸片读取第五部分数据并行地使用所述第二部分数据及所述奇偶校验数据,重组存储在所述第一存储器裸片中的所述第四部分数据。
11.根据权利要求10所述的方法,其中:
所述第一部分数据为存储在所述存储器装置的多裸片阵列中的第一数据条带的一部分;
所述第二、第三及第四部分数据为存储在所述存储器装置的所述多裸片阵列中的第二数据条带的一部分;且
所述第五部分数据为存储在所述存储器装置的所述多裸片阵列中的第三数据条带的一部分。
12.根据权利要求11所述的方法,其中所述第五部分数据是从所述第一存储器裸片读取。
13.根据权利要求11所述的方法,其中所述多裸片阵列的存储器裸片为多平面裸片,且其中所述第一、第二、第三、第四及第五部分数据中的每一个位于相应裸片的相应平面中。
14.根据权利要求10所述的方法,其中所述第一、第二、第三、第四及第五部分数据为逻辑到物理L2P转换表条目。
15.根据权利要求14所述的方法,其进一步包括:
接收主机命令;
确定所述存储器装置的易失性存储器中的L2P高速缓冲存储器不具有用于所述主机命令中所包含的逻辑地址的条目;且
其中响应于确定所述存储器装置的所述易失性存储器中的所述L2P高速缓冲存储器不具有用于所述主机命令中所包含的所述逻辑地址的所述条目而执行致使读取所述第一部分、第二部分、第三部分及第五部分。
16.根据权利要求15所述的方法,其进一步包括:
接收主机命令;
确定所述存储器装置的易失性存储器中的L2P高速缓冲存储器不具有用于所述主机命令中所包含的逻辑地址的条目;且
其中响应于确定所述存储器装置的所述易失性存储器中的所述L2P高速缓冲存储器不具有用于所述主机命令中所包含的所述逻辑地址的所述条目而执行致使读取所述第一部分、第二部分、第三部分及第五部分。
17.根据权利要求16所述的方法,其进一步包括:
使用所述第一部分、第二部分、第三部分、第四部分或第五部分的至少一部分将所述主机命令中所包含的所述逻辑地址转换为物理地址;及
致使在所述物理地址上执行所述主机命令。
18.根据权利要求15所述的方法,其进一步包括:
接收主机命令;
确定所述存储器装置的易失性存储器中的L2P高速缓冲存储器不具有用于所述主机命令中所包含的逻辑地址的条目;
确定读取所述主机命令中所包含的所述逻辑地址的所述条目包含读取存储在同一裸片中的至少两个部分数据;且
其中响应于确定读取所述主机命令中所包含的所述逻辑地址的所述条目包含读取存储在所述同一裸片中的至少两个部分数据而执行所述致使读取所述第一部分、第二部分、第三部分及第五部分,以及重组所述第四部分。
19.根据权利要求11所述的方法,其中重组所述第四部分数据包括对所述第二部分数据及所述第三部分数据的值执行“异或”运算以产生所述第四部分数据。
20.一种机器可读媒体,其存储指令,所述指令当由存储器装置的控制器执行时致使所述控制器执行包括以下的操作:
同时地致使从第一存储器裸片读取第一部分数据,从第二存储器裸片读取第二部分数据,且从第三存储器裸片读取第三部分数据,所述第三部分数据包含奇偶校验数据;及
与从所述第一存储器裸片读取第五部分数据并行地使用所述第二部分数据及所述奇偶校验数据,重组存储在所述第一存储器裸片中的第四部分数据。
21.根据权利要求20所述的机器可读媒体,其中所述第一、第二、第三、第四及第五部分数据为逻辑到物理L2P转换表条目。
22.根据权利要求20所述的机器可读媒体,其中所述操作进一步包括:
接收主机命令;
确定所述存储器装置的易失性存储器中的L2P高速缓冲存储器不具有用于所述主机命令中所包含的逻辑地址的条目;且
其中响应于确定所述存储器装置的所述易失性存储器中的所述L2P高速缓冲存储器不具有用于所述主机命令中所包含的所述逻辑地址的所述条目而执行致使读取所述第一部分、第二部分、第三部分及第五部分。
CN202011588269.8A 2019-12-30 2020-12-29 使用奇偶校验增加存储器存取并行性 Active CN113129978B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201962955085P 2019-12-30 2019-12-30
US62/955,085 2019-12-30

Publications (2)

Publication Number Publication Date
CN113129978A CN113129978A (zh) 2021-07-16
CN113129978B true CN113129978B (zh) 2024-01-26

Family

ID=76546326

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011588269.8A Active CN113129978B (zh) 2019-12-30 2020-12-29 使用奇偶校验增加存储器存取并行性

Country Status (3)

Country Link
US (2) US11409600B2 (zh)
KR (1) KR20210086990A (zh)
CN (1) CN113129978B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113129978B (zh) 2019-12-30 2024-01-26 美光科技公司 使用奇偶校验增加存储器存取并行性
US11544185B2 (en) * 2020-07-16 2023-01-03 Silicon Motion, Inc. Method and apparatus for data reads in host performance acceleration mode
US11544186B2 (en) * 2020-07-16 2023-01-03 Silicon Motion, Inc. Method and apparatus for data reads in host performance acceleration mode
US11733893B2 (en) * 2021-07-28 2023-08-22 International Business Machines Corporation Management of flash storage media

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102687121A (zh) * 2010-01-04 2012-09-19 美光科技公司 堆叠式存储器中的错误校正
CN107767919A (zh) * 2016-08-17 2018-03-06 三星电子株式会社 半导体存储器设备、包括其的存储器系统及操作其的方法
JP2018073312A (ja) * 2016-11-04 2018-05-10 東芝メモリ株式会社 メモリシステムおよび制御方法
CN109426583A (zh) * 2017-08-23 2019-03-05 东芝存储器株式会社 运行中的独立磁盘冗余阵列奇偶校验计算

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11869586B2 (en) * 2018-07-11 2024-01-09 Pure Storage, Inc. Increased data protection by recovering data from partially-failed solid-state devices
CN111104245B (zh) * 2018-10-29 2023-07-14 建兴储存科技(广州)有限公司 固态存储装置的读取重试方法
US10922234B2 (en) * 2019-04-11 2021-02-16 Alibaba Group Holding Limited Method and system for online recovery of logical-to-physical mapping table affected by noise sources in a solid state drive
CN113129978B (zh) 2019-12-30 2024-01-26 美光科技公司 使用奇偶校验增加存储器存取并行性

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102687121A (zh) * 2010-01-04 2012-09-19 美光科技公司 堆叠式存储器中的错误校正
CN105005512A (zh) * 2010-01-04 2015-10-28 美光科技公司 堆叠式存储器中的错误校正
CN107767919A (zh) * 2016-08-17 2018-03-06 三星电子株式会社 半导体存储器设备、包括其的存储器系统及操作其的方法
JP2018073312A (ja) * 2016-11-04 2018-05-10 東芝メモリ株式会社 メモリシステムおよび制御方法
CN109426583A (zh) * 2017-08-23 2019-03-05 东芝存储器株式会社 运行中的独立磁盘冗余阵列奇偶校验计算

Also Published As

Publication number Publication date
US11675661B2 (en) 2023-06-13
KR20210086990A (ko) 2021-07-09
US20210200633A1 (en) 2021-07-01
US11409600B2 (en) 2022-08-09
US20230028040A1 (en) 2023-01-26
CN113129978A (zh) 2021-07-16

Similar Documents

Publication Publication Date Title
CN111108499B (zh) Nand存储器装置、相关方法及机器可读媒体
US11720489B2 (en) Scheme to improve efficiency of device garbage collection in memory devices
US11238939B2 (en) Secure erase for data corruption
CN113168358B (zh) 具有奇偶校验保护的多个存储器装置
CN113129978B (zh) 使用奇偶校验增加存储器存取并行性
KR102420955B1 (ko) 정정 불가능 ecc
KR20200063257A (ko) 동적 l2p 캐시
CN111538619B (zh) 利用断电处置的多页奇偶校验保护
US10755793B2 (en) SLC page read
US11100996B2 (en) Log data storage for flash memory
US20200004689A1 (en) Memory constrained translation table management
CN112074908A (zh) Nand数据放置模式
CN112214422A (zh) 静态slc高速缓存的动态大小
CN112074816A (zh) Nand数据放置模式的集群奇偶校验
WO2021035551A1 (en) Write buffer control in managed memory system
US20210303394A1 (en) Nand parity information techniques for systems with limited ram

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