CN105988738B - 服务混合负荷中有效使用数据锁存器的存储器裸芯和方法 - Google Patents

服务混合负荷中有效使用数据锁存器的存储器裸芯和方法 Download PDF

Info

Publication number
CN105988738B
CN105988738B CN201511009140.6A CN201511009140A CN105988738B CN 105988738 B CN105988738 B CN 105988738B CN 201511009140 A CN201511009140 A CN 201511009140A CN 105988738 B CN105988738 B CN 105988738B
Authority
CN
China
Prior art keywords
data
memory
data latches
naked core
sensing
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.)
Expired - Fee Related
Application number
CN201511009140.6A
Other languages
English (en)
Other versions
CN105988738A (zh
Inventor
D.E.图尔斯
A.P-L.高
A.马诺哈
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.)
SanDisk Technologies LLC
Original Assignee
SanDisk Technologies LLC
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 SanDisk Technologies LLC filed Critical SanDisk Technologies LLC
Publication of CN105988738A publication Critical patent/CN105988738A/zh
Application granted granted Critical
Publication of CN105988738B publication Critical patent/CN105988738B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/26Sensing or reading circuits; Data output circuits
    • 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
    • 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
    • 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/0656Data buffering 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/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
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5628Programming or writing circuits; Data input circuits
    • 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
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/02Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements
    • G11C11/16Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements using elements in which the storage effect is based on magnetic spin effect
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0483Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
    • 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
    • G11C2029/0411Online error correction
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1051Data output circuits, e.g. read-out amplifiers, data output buffers, data output registers, data output level conversion circuits
    • G11C7/106Data output latches

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)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • Read Only Memory (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

在一个实施例中,提供了存储器裸芯,其包括:非易失性存储器,以物理页而组织;转移数据锁存器,与所述非易失性存储器通信;至少一个辅助数据锁存器,与所述转移数据锁存器通信;以及电路。所述电路被配置为接收多个感测命令,其中每个感测命令指示在所述非易失性存储器中的将被感测的物理页以及将存储在所述至少一个辅助数据锁存器中的所述物理页的一部分。对于每个感测命令,所述电路被配置为将来自由所述感测命令感测的物理页的数据存储在所述转移数据锁存器中并且将来自由所述感测命令指示的所述物理页的部分的数据移动到在所述至少一个辅助数据锁存器中的可用位置。提供了其它实施例。

Description

服务混合负荷中有效使用数据锁存器的存储器裸芯和方法
技术领域
本发明涉及在服务混合流量负荷中有效使用数据锁存器的存储器裸芯和方法。
背景技术
存储器裸芯通常具有在将数据写入到存储器裸芯中的非易失性存储器以及从存储器裸芯中的非易失性存储器读取数据的过程中使用的一个或多个数据锁存器。在具有多个裸芯的存储器系统中,数据锁存器的使用允许在数据正被转移出一个存储器裸芯时,另一个裸芯感测数据并且将其存储在数据锁存器中以用于之后的转移。但是,在具有长序列读取/写入和短片段读取/写入两者的混合的流量负荷(traffic load)期间,在长序列读取/写入完成之前,进行短片段读取/写入的存储器裸芯需要是空闲的。为了增加存储器裸芯的效率,进行短片段读取/写入的存储器裸芯在等待其它存储器裸芯完成并且释放去往控制器的数据总线时,可以被提供更多的读取/写入请求以将它们保持忙碌。但是,许多当前架构将读取命令的数量限制为一。此外,用于保持数据不受到另外的命令的队列深度被限制为在存储器裸芯中的数据锁存器的数量。
发明内容
根据本发明的一个方面,提供了一种存储器裸芯,包括:非易失性存储器,以物理页而组织;转移数据锁存器,与所述非易失性存储器通信;至少一个辅助数据锁存器,与所述转移数据锁存器通信;以及电路,与所述非易失性存储器、所述转移数据锁存器和所述至少一个辅助数据锁存器通信。所述电路被配置为:接收多个感测命令,其中每个感测命令指示在所述非易失性存储器中的将被感测的物理页以及将存储在所述至少一个辅助数据锁存器中的所述物理页的部分;以及对于每个感测命令:将来自由所述感测命令感测的物理页的数据存储在所述转移数据锁存器中;以及将来自由所述感测命令指示的所述物理页的部分的数据移动到在所述至少一个辅助数据锁存器中的可用位置。
根据本发明的另一方面,提供了一种用于在存储器裸芯中使用数据锁存器的方法,所述方法包括:在包括以物理页组织的非易失性存储器、第一数据锁存器和第二数据锁存器的存储器裸芯中进行以下:接收多个感测命令,其中每个感测命令指示在所述非易失性存储器中的将被感测的物理页以及将存储在所述第二数据锁存器中的所述物理页的部分;以及对于每个感测命令:将来自由所述感测命令感测的物理页的数据存储在所述第一数据锁存器中;并且将来自由所述感测命令指示的所述物理页的部分的数据移动到所述第二数据锁存器中的可用位置。
根据本发明的另一方面,提供了一种存储器裸芯,包括:非易失性存储器,以物理页而组织;第一数据锁存器,被配置为存储从所述非易失性存储器的物理页之一感测的数据的页;第二数据锁存器;以及数据锁存器控制模块,与所述非易失性存储器以及所述第一数据锁存器和第二数据锁存器通信,其中所述数据锁存器控制模块被配置为仅将所述数据的一部分从所述第一数据锁存器移动到所述第二数据锁存器中的可用位置,其中所述部分在感测命令中指示。
附图说明
图1A是实施例的非易失性存储器系统的框图。
图1B是示出实施例的示例性存储模块的框图。
图1C是示出实施例的分层的存储系统的框图。
图2A是示出根据实施例的图1A中示出的非易失性存储器系统的控制器的示例性组件的框图。
图2B是示出根据实施例的图1A中示出的非易失性存储器存储系统的非易失性存储器的示例性组件的框图。
图3是实施例的存储器裸芯和控制器的图示。
图4是具有输入输出模块的实施例的存储器裸芯的图示。
图5是在层级中移动数据的实施例的存储器裸芯的图示。
图6是不使用读取缓存的实施例的图示。
图7是使用读取缓存的实施例的图示。
图8是使用读取缓存并且还使用数据锁存器填充的实施例的图示。
具体实施方式
概述
本发明的实施例由权利要求定义,并且在该部分中的任何内容都不应被认为是对那些权利要求的限制。
以介绍的方式,以下实施例涉及用于在服务于混合的流量负荷中有效使用数据锁存器的存储器裸芯和方法。在一个实施例中,提供存储器裸芯,包括:以物理页组织的非易失性存储器;转移数据锁存器,与该非易失性存储器通信;至少一个辅助数据锁存器,与该转移数据锁存器通信;以及电路。该电路被配置为接收多个感测命令,其中每个感测命令指示在非易失性存储器中的将被感测的物理页以及将被存储在该至少一个辅助数据锁存器中的该物理页的一部分。对于每个感测命令,该电路被配置为将来自由该感测命令感测的物理页的数据存储在该转移数据锁存器中并且将来自由该感测命令指示的物理页的部分的数据移动到在该至少一个辅助数据锁存器中的可用位置。
在另一实施例中,提供了用于在存储器裸芯中使用数据锁存器的方法。在该实施例中,该存储器裸芯接收多个感测命令,其中每个感测命令指示在该非易失性存储器中将被感测的物理页以及将被存储在第二数据锁存器中的该物理页的部分。对于每个感测命令,该存储器裸芯将来自由该感测命令感测的物理页的数据存储在第一数据锁存器中并且将来自由该感测命令指示的物理页的部分的数据移动到在该第二数据锁存器中的可用位置。
在又一实施例中,提供了存储器裸芯,其包括:以物理页组织的非易失性存储器;第一数据锁存器,被配置为存储从该非易失性存储器的物理页之一感测的数据的页;第二数据锁存器;以及数据锁存器控制模块。该数据锁存器控制模块被配置为仅将该数据的一部分从该第一数据锁存器移动到在该第二数据锁存器中的可用位置,其中该部分在感测命令中指示。
在一些实施例中,每个感测命令通过指示偏移和长度来指示该物理页的部分。
在一些实施例中,该转移(第一)数据锁存器和该至少一个辅助(第二)数据锁存器被组织在层级(tier)中,并且数据被从该转移数据锁存器移动到在该至少一个辅助数据锁存器中的可用位置,而不管该数据是否会被移动到不同的层级中。在其它实施例中,在相应的层级之间移动数据。在一些实施例中,可以使用输入-输出模块移动该数据。
在一些实施例中,该存储器是三维存储器,并且在一些实施例中,该存储器裸芯嵌入在主机中或者是可拆卸地连接到主机的存储器系统的一部分。
其它实施例是可能的,并且每个实施例可以被单独或者组合在一起使用。相应地,现将参考附图描述各种实施例。
示例性实施例
如在上述背景技术部分提到的,在存在长顺序读取/写入和短片段读取/写入两者的混合流量负荷期间,在长序列读取/写入完成之前,进行短片段读取/写入的存储器裸芯需要是空闲的。为增加存储器裸芯的效率,进行短片段读取/写入的存储器裸芯在等待其它存储器裸芯完成并且释放去往控制器的数据总线时,可以被提供更多的读取/写入请求以将它们保持忙碌。但是,许多当前架构将读取命令的数量限制为一。此外,用于保持数据不受到另外的命令的队列深度被限制为在存储器裸芯中的数据锁存器的数量。以下实施例可被用于解决该问题。在转向这些和其它实施例之前,以下段落提供对可以与这些实施例一起使用的示例性存储器系统的讨论。当然,这些仅是示例,可以使用其它合适类型的存储器系统。
适合于在实现这些实施例的方面时使用的存储器系统在图1A-1C中示出。图1A是示出根据这里描述的主题的实施例的非易失性存储器系统的框图。参考图1A,非易失性存储器系统100包括控制器102和可以由一个或多个非易失性存储器裸芯104构成的非易失性存储器。如在此所使用的,术语裸芯指形成在单个半导体基板上的非易失性存储器单元以及用于管理这些非易失性存储器单元的物理操作的相关联的电路的集合。控制器102与主机系统相接口并且将用于读取、编程和擦除操作的命令序列发送到非易失性存储器裸芯104。
控制器102(其可以是快闪存储器控制器)例如可以采取以下形式:处理电路、微处理器或处理器和存储可由(微)处理器执行的计算机可读程序代码(例如,固件)的计算机可读介质、逻辑门、开关、专用集成电路(ASIC)、可编程逻辑控制器和嵌入的微控制器。控制器102可以用硬件和/或固件配置以进行下面描述并且在流程图中示出的各种功能。此外,被示出为在控制器内部的一些组件也可以存储在控制器的外部,并且可以使用其它组件。此外,短语“可操作性地与...通信”可以指直接地与…通信或者通过一个或多个组件间接地(有线的或无线的)与…通信,其中该一个或多个组件可能在此被示出或者没有被示出。
如在此所使用的,快闪存储器控制器是管理存储在快闪存储器上的数据并且与诸如计算机或电子装置的主机通信的装置。快闪存储器控制器除了在此描述的特定功能以外可以具有各种功能。例如,快闪存储器控制器可以格式化快闪存储器以确保存储器恰当地操作,标出坏的快闪存储器单元,并分配备用单元以用于替换将来故障的单元。备用单元的一些部分可被用于保持固件以操作快闪存储器控制器并且实现其他特征。在操作中,当主机需要从快闪存储器读取数据或者将数据写入到快闪存储器时,它将与快闪存储器控制器通信。如果主机提供数据将被读取/写入的逻辑地址,快闪存储器控制器可以将从主机接收的逻辑地址转换为在快闪存储器中的物理地址。(可替换地,主机可以提供物理地址。)快闪存储器控制器还可以进行各种存储器管理功能,比如但不限于磨损均衡(分发写入以避免否则将被重复地写入的存储器的特定块的磨损)以及垃圾收集(当块已满之后,仅将数据的有效页移动到新的块,因此已满的块可以被擦除并且重新使用)。
非易失性存储器裸芯104可以包括任何合适的非易失性存储介质,包括NAND快闪存储器单元和/或NOR快闪存储器单元。存储器单元可以采取固态(例如,快闪)存储器单元的形式并且可以是可一次编程、可几次编程或可多次编程的。存储器单元也可以是单级单元(SLC)、多级单元(MLC)、三级单元(TLC)或使用现在已知或者将来开发的其它存储器单元级技术。此外,存储器单元可以以二维或三维的方式制造。
控制器102和非易失性存储器裸芯104之间的接口可以是任何合适的快闪接口,比如Toggle Mode(触发模式)200、400或800。在一个实施例中,存储器系统100可以是基于卡的系统,比如安全数字(SD)或微安全数字(微-SD)卡。在可替换的实施例中,存储器系统100可以是嵌入的存储器系统的一部分。
尽管在图1A中示出的示例中,非易失性存储器系统100(在此有时被称为存储模块)包括在控制器102和非易失性存储器裸芯104之间的单个通道,但是在此描述的主题不限于具有单个存储器通道。例如,在一些NAND存储器系统架构中(比如在图1B和1C中示出的那些),取决于控制器能力,2、4、8个或更多的NAND通道可以存在于控制器和NAND存储器装置之间。在在此所述的任何一个实施例中,在控制器和存储器裸芯之间可以存在多于单个通道,即使在附图中示出了单个通道。
图1B示出了包括多个非易失性存储器系统100的存储模块200。如此,存储模块200可以包括与主机并且与包括多个非易失性存储器系统100的存储系统204相接口的存储控制器202。存储控制器202和非易失性存储器系统100之间的接口可以是总线接口,比如串行高级技术附件(SATA)或外围组件接口快速(PCIe)接口。在一个实施例中,存储模块200可以是比如在诸如膝上型计算机和平板计算机的便携式计算装置中找到的固态驱动(SSD)。
图1C是示出分层的存储系统的框图。分层存储系统250包括多个存储控制器202,该多个存储控制器202的每一个控制各自的存储系统204。主机系统252可以经由总线接口访问存储系统中的存储器。在一个实施例中,总线接口可以是NVMe或以太网上的光纤信道(FCoE)接口。在一个实施例中,图1C中示出的系统可以是可由多个主机计算机访问的机架式可安装的大容量存储系统,比如将在数据中心或需要大容量存储的其它位置中找到的。
图2A是更加详细地示出控制器102的示例性组件的框图。控制器102包括与主机相接口的前端模块108、与一个或多个非易失性存储器裸芯104相接口的后端模块110和进行其它功能的各种其它模块。模块例如可以采取以下形式:设计为与其它组件一起使用的封装的功能性硬件单元、可以由通常进行有关功能的特定功能的(微)处理器或处理电路执行的程序代码的一部分(例如,软件或固件)、或与更大的系统相接口的自包含的硬件或软件组件。
再次参考控制器102的模块,缓冲器管理器/总线控制器114管理在随机存取存储器(RAM)116中的缓冲器并且控制控制器102的内部总线仲裁。只读存储器(ROM)118存储系统引导代码。尽管在图2A中示出为位于与控制器102分离,但是在其它实施例中,RAM 116和ROM 118中的一个或两者可以位于控制器内。在其它实施例中,RAM和ROM的部分可以同时位于控制器102中和在控制器之外。
前端模块108包括主机接口120和物理层接口(PHY)122,它们提供与主机或下一级的存储控制器的电接口。主机接口120的类型的选择可以取决于所使用的存储器的类型。主机接口120的示例包括但不限于SATA、SATA快速、SAS、光纤信道、USB、PCIe和NVMe。主机接口120通常促进数据、控制信号和定时信号的转移。
后端模块110包括错误校正控制器(ECC)引擎124,该错误校正控制器(ECC)引擎124编码从主机接收的数据字节,并且解码和错误校正从非易失性存储器读取的数据字节。命令排序器126产生将被传输到非易失性存储器裸芯104的命令序列,比如编程和擦除命令序列。RAID(独立驱动的冗余阵列)模块128管理RAID奇偶校验的产生以及损坏的数据的恢复。RAID奇偶校验可被用作正被写入到存储器装置104中的数据的另外级别的完整性保护。在一些情况中,RAID模块128可以是ECC引擎124的一部分。存储器接口130将命令序列提供到非易失性存储器裸芯104并且从非易失性存储器裸芯104接收状态信息。在一个实施例中,存储器接口130可以是双倍数据速率(DDR)接口,比如Toggle Mode(触发模式)200、400或800接口。快闪控制层132控制后端模块110的整体操作。
在图2A中示出的系统100的另外的组件包括介质管理层138,该介质管理层138进行非易失性存储器裸芯104的存储器单元的磨损均衡。系统100还包括其它分立的组件140,比如外部电接口、外部RAM、电阻器、电容器或可以与控制器102接口的其它组件。在可替换实施例中,物理层接口122、RAID模块128、介质管理层138和缓冲器管理/总线控制器114的一个或多个是控制器102中并非必需的可选组件。
图2B是更加详细地示出了非易失性存储器裸芯104的示例性组件的框图。非易失性存储器裸芯104包括外围电路141和非易失性存储器阵列142。非易失性存储器阵列142包括被用于存储数据的非易失性存储器单元。非易失性存储器单元可以是任何合适的非易失性存储器单元,包括以二维和/或三维配置的NAND快闪存储器单元和/或NOR快闪存储器单元。外围电路141包括向控制器102提供状态信息的状态机152。在一个实施例中,外围电路141还包括被配置为仅将该数据的一部分从第一数据锁存器移动到第二数据锁存器中的可用位置的数据锁存器控制模块154。将在下面更加详细地讨论该模块。非易失性存储器裸芯104还包括缓存数据的数据缓存器156。
图3是更加详细地示出数据缓存器156的使用的图。如在图3中所示,在该实施例中的数据缓存器156包括用于在控制器102(使用NAND接口模块130、135)和存储器裸芯104之间转移数据的转移数据锁存器300(有时被称为“第一数据锁存器”)和用于存储将被写入到非易失性存储器142或者从非易失性存储器142读取的数据的至少一个辅助数据锁存器(有时被称为“第二数据锁存器”),其中该非易失性存储器142以物理页而组织。
在读取操作期间,在控制器102中的微处理器103将多个感测命令发送到存储器裸芯104。通常,电路141(见图2B)将感测由该命令指示的物理页并且将数据存储在转移数据锁存器300中。该整页的数据然后可以被移动到辅助数据锁存器310,因此转移数据锁存器300可以用于另一读取或写入操作。在某时,数据从辅助数据锁存器310被移动回到转移数据锁存器300,并且控制器102读取出其感兴趣的数据的部分。由于辅助数据锁存器310的数量有限,存储器裸芯102仅能够存储来自有限数量的物理页的数据。
此实施例认识到,如果代替将整页的数据存储在辅助数据锁存器310中,而是存储器裸芯104仅存储控制器102将最终希望读出的页的那些部分,则更多的数据可以存储在辅助数据锁存器310中。例如,如果物理页存储四个错误校正码(ECC)页(的数据和ECC位),但是控制器102将仅希望读出这些ECC页的一个,则75%的辅助数据锁存器310将被用于存储控制器102将不会读出的数据。
为了使得更加有效地在辅助数据锁存器310中存储数据,代替控制器102发送仅指示哪个物理页要被读取的感测命令,感测命令指示物理页的哪个部分应该被存储在辅助数据锁存器310中。例如,感测命令不仅可以识别要被读取的物理页,而且可以识别将被存储在辅助数据锁存器310中的数据的偏移(offset)和长度。当存储器裸芯104接收这样的感测命令时(在图3中的动作1),存储器裸芯104(例如,电路141、数据锁存器控制模块154或者存储器裸芯104中的另一组件)感测由该命令指示的物理页并且将来自该物理页的数据存储在转移数据锁存器300中。然后,存储器裸芯104将来自由该感测命令指示的该物理页的部分的数据移动到辅助数据锁存器310中的可用位置。
例如,考虑其中三个感测命令被发送到存储器裸芯104的情况。感测命令“a”指示将感测物理页0并且以偏移0的1个ECC页大小的数据应存储在辅助数据锁存器310中。感测命令“b”指示将感测物理页x并且以偏移0的2个ECC页大小的数据应存储在辅助数据锁存器310中。感测命令“c”指示将感测物理页y并且以偏移2的1个ECC页大小的数据应存储在辅助数据锁存器310中。在该示例中,一个物理页是16KB,并且每个ECC页是4KB。当然,这仅是示例,并且可以使用其它配置。
如由图3中的2a箭头所示,当执行感测命令“a”时,物理页0被读取到转移数据锁存器300中,但是只有第一ECC页需要被存储在辅助数据锁存器310中(因为仅需要以偏移0的第一ECC页)。存储器裸芯104确定可用位置并且将该ECC页存储在辅助数据锁存器310中。在此,该ECC页被移动到与在转移数据锁存器300中存储该数据的层级相同的层级的辅助数据锁存器310。如由图3中的2b箭头所示,当执行感测命令“b”时,物理页x被读取到转移数据锁存器300中,但是只有前两个ECC页需要被存储在辅助数据锁存器310中(因为只需要以偏移0的前两个ECC页)。存储器裸芯确定可用位置并且将那些ECC页存储在辅助数据锁存器310中。在此,ECC页被存储在与转移数据锁存器300中不同的层级中,因为第一层级已经填满了来自命令“a”的ECC页。最后,如由图3中的2c箭头所示,当执行感测命令“c”时,物理页y被读取到转移数据锁存器300中,但是仅以偏移2的第一ECC页需要被存储在辅助数据锁存器310中。存储器裸芯确定可用位置并且将那些ECC页存储在辅助数据锁存器310中,再次,是在不同的层级中。当到控制器102的总线可用于通信时,存储器裸芯104将存储在辅助数据锁存器310中的数据转移到转移数据锁存器300,因此可以按转移数据锁存器300被填充的次序将数据转移到控制器102(箭头3a),尽管可以使用不同的次序。
在该示例中,发生三个感测并且以执行感测命令的次序填充一个辅助数据锁存器310(尽管可以使用不同的次序)。该示例可以延伸到以如下方式填充更多的辅助数据锁存器310:存储器裸芯104保持忙于感测以及填充辅助数据锁存器310,直到到控制器103的总线再次可用于通信。
在以上示例中,转移数据锁存器300和辅助数据锁存器310以层级而组织,并且数据从转移数据锁存器300移动到辅助数据锁存器310中的可用位置,而不管该数据是否会被移动到不同的层级中。如在图4中所示出的,这可以通过使用输入-输出模块400来实现。在此,将不存在对齐或码字限制。但是,在一些架构中,在层级之间移动数据可能是困难的(例如,由于非常小尺寸的硅间连接)。在该情况下(在图5中示出),数据可以在转移数据锁存器300和辅助数据锁存器310中的相应的层级之间移动。在此,如果复制操作对齐,则可以允许层级到层级的复制操作。将码字与层级对齐可以得到更快的复制操作。在该操作中涉及的等待时间实际上是无关紧要的,因为相比于不进行该操作,对裸芯的利用在两个操作(当前操作和缓存操作)之后降到零。
存在与这些实施例相关联的一些优点。例如,以有效的方式填充辅助数据锁存器310有效地增加了命令队列深度并且允许每个辅助数据锁存器310被充分利用。该改善在两裸芯的系统以及具有比两个得多多的裸芯(例如,8+裸芯)的系统上是可测量的。填充辅助数据锁存器310避免了在将数据转移到控制器102中的锁存器交换功能。这允许了到快闪总线的比缓存深度和队列深度更大的几个命令。如图6-8所示,这些实施例可被用于改善在存在长顺序读取/写入和短片段读取/写入两者的“混合流量”环境中的裸芯利用和读取性能。
图6示出了在存储器总线和两个存储器裸芯上的活动。在此,没有读取缓存,并且仅使用一个锁存器。当感测命令被发送到裸芯0和裸芯1时,两个裸芯都变为忙碌。裸芯0首先完成并且通过总线发送其数据。由于该转移相对较长,即使在裸芯1的操作完成之后,总线仍被数据转移占用。这意味着在从裸芯0的数据转移发生的同时,两个裸芯都空闲了相对长的时间。
图7示出了使用传统的读取缓存的情况。在此,由于存在读取缓存(例如,辅助数据缓存),多个感测命令可以被发送到每个裸芯。那样,存储器裸芯可以在等待总线变为空闲时进行另外的读取操作(并且将感测的数据存储在辅助数据缓存中)。当两个裸芯的空闲时间小于图6中的时,其仍是相对显著的。这在存在长顺序读取/写入和短片段读取/写入两者的混合的流量负荷期间尤其如此,因为进行短片段读取/写入的存储器裸芯需要是空闲的,直到长顺序读取/写入完成。即使在该示例中具有读取缓存,保持数据不受到另外的命令的队列深度也被限于在存储器裸芯中的数据锁存器的数量。图8示出了使用本实施例的情况。在此,代替如在图7中所示的仅发送两个感测命令到裸芯1,而是发送七个命令,因为可以更有效地将数据填充到锁存器中。如可以从图8中看到的,这显著减少了裸芯1空闲的时间。
最后,如上所述,可以使用任何合适的类型的存储器。半导体存储器装置包括易失性存储器装置,比如动态随机存取存储器(“DRAM”)或静态随机存取存储器(“SRAM”)装置;非易失性存储器装置,比如电阻式随机存取存储器(“ReRAM”)、电可擦除可编程只读存储器(“EEPROM”)、快闪存储器(其也可以被认为是EEPROM的子集)、铁电随机存取存储器(“FRAM”)和磁阻随机存取存储器(“MRAM”);以及能够存储信息的其它半导体元件。每种类型的存储器装置可以具有不同的配置。例如,快闪存储器装置可以以NAND或NOR配置而配置。
存储器装置可以以任何组合由无源和/或有源元件构成。以非限制性示例的方式,无源半导体存储器元件包括:ReRAM装置元件,其在一些实施例中包括电阻率切换存储元件,比如反熔丝、相变材料等;以及可选地包括控制元件,比如二极管等。进一步以非限制性示例的方式,有源半导体存储器元件包括EEPROM和快闪存储器装置元件,其在一些实施例中包括包含电荷存储区域的元件,比如浮置栅极、导电纳米粒子或电荷存储电介质材料。
多个存储器元件可以被配置为使得它们串联连接或者使得每个元件单独可访问。以非限制性示例的方式,在NAND配置(NAND存储器)中的快闪存储器装置通常包含串联连接的存储器元件。NAND存储器阵列可以被配置为使得阵列由多个存储器串构成,其中串由共享单个位线并作为一组被访问的多个存储器元件构成。可替换地,存储器元件可以被配置为使得每个元件单独可访问,例如NOR存储器阵列。NAND和NOR存储器配置是示例性的,并且可以以其它方式配置存储器元件。
位于衬底内和/或衬底上的半导体存储器元件可以被布置为二维或者三维,比如二维存储器结构或三维存储器结构。
在二维存储器结构中,半导体存储器元件被布置在单个平面或者单个存储器装置级中。典型地,在二维存储器结构中,存储器元件被布置在基本上平行于支撑存储器元件的基板的主表面而延伸的平面中(例如,在x-z方向平面中)。基板可以是在其上或其中形成存储器元件的层的晶片,或者可以是在存储器元件形成之后被附于存储器元件的载体基板。作为非限制性示例,基板可以包括诸如硅的半导体。
存储器元件可以布置在有序的阵列中的单个存储器装置级中,比如在多个行和/或列中。但是,存储器元件可以以不规则或者非正交的配置形成阵列。存储器元件的每一个可以具有两个或更多的电极或接触线,比如位线和字线。
三维存储器阵列被布置为使得存储器元件占据多个平面或多个存储器装置级,从而在三维中形成结构(即,在x、y和z方向中,其中y方向基本上垂直于基板的主表面,并且x和z方向基本上平行于基板的主表面)。
作为非限制性示例,三维存储器结构可以被垂直地布置为多个二维存储器装置级的堆叠。作为另一非限制性示例,三维存储器阵列可以被布置为多个垂直的列(例如,基本上垂直于基板的主表面、即在y方向上而延伸的列),每个列具有在每个列中的多个存储器元件。列可以布置在二维配置中,例如,在x-z平面中,得到具有在多个垂直地堆叠的存储器平面上的元件的存储器元件的三维布置。存储器元件在三维中的其它配置也可以组成三维存储器阵列。
以非限制性示例的方式,在三维NAND存储器阵列中,存储器元件可以耦接在一起以在单个水平的(例如,x-z)存储器装置级中形成NAND串。可替换地,存储器元件可以耦接在一起以形成穿过多个水平的存储器装置级的垂直NAND串。可以设想其它三维配置,其中一些NAND串在单个存储器级中的存储器元件,而其它串包含跨过多个存储器级的存储器元件。三维存储器阵列也可以以NOR配置和ReRAM配置而设计。
典型地,在单片三维存储器阵列中,一个或多个存储器装置级形成在单个基板上。可选地,单片三维存储器阵列也可以具有至少部分在单个基板内的一个或多个存储器层。作为非限制性示例,基板可以包括诸如硅的半导体。在单片三维阵列中,组成阵列的每个存储器装置级的层通常形成在阵列的基本存储器装置级的层上。但是,单片三维存储器阵列的相邻存储器装置级的层可以被共享或者可以在存储器装置级之间具有中间层。
然后再次,二维阵列可以单独地形成并且然后封装在一起以形成具有存储器的多个层的非单片存储器装置。例如,可以通过在分开的基板上形成存储器级并且然后将存储器级一个在另一个上堆叠来构造非单片堆叠的存储器。可以在堆叠之前将基板减薄或者从存储器装置级移除,但是由于存储器装置级初始形成在分开的基板之上,得到的存储器阵列不是单片三维存储器阵列。此外,多个二维存储器阵列或三维存储器阵列(单片或非单片)可以形成在分开的芯片上并且然后封装在一起以形成堆叠芯片存储器装置。
存储器元件的操作以及与存储器元件的通信通常需要相关联的电路。作为非限制性示例,存储器装置可以具有用于控制和驱动存储器元件以实现诸如编程和读取的功能的电路。该相关联的电路可以在与存储器元件相同的基板上和/或在单独的基板上。例如,用于存储器读-写操作的控制器可以位于单独的控制器芯片上和/或在与存储器元件相同的基板上。
本领域技术人员应认识到该发明不限于所述的二维和三维示例性结构,而是覆盖在如在此所述的并且如由本领域技术人员所理解的本发明的精神和范围内的所有相关的存储器结构。
意图以上详细的说明被理解为对本发明可以采用的所选形式的说明而不是作为本发明的限定。仅以下权利要求、包括所有等价物意图定义要求保护的本发明的范围。最后,应注意的是,在此所述的任何优选的实施例的任何方面可以单独使用或者相互组合使用。

Claims (24)

1.一种存储器裸芯,包括:
非易失性存储器,以物理页而组织;
转移数据锁存器,与所述非易失性存储器通信;
至少一个辅助数据锁存器,与所述转移数据锁存器通信;以及
电路,与所述非易失性存储器、所述转移数据锁存器和所述至少一个辅助数据锁存器通信,其中所述电路被配置为:
接收多个感测命令,其中每个感测命令指示在所述非易失性存储器中的将被感测的物理页以及将存储在所述至少一个辅助数据锁存器中的所述物理页的部分;以及
对于每个感测命令:
将来自由所述感测命令感测的物理页的数据存储在所述转移数据锁存器中;以及
将来自由所述感测命令指示的所述物理页的部分的数据移动到在所述至少一个辅助数据锁存器中的可用位置。
2.如权利要求1所述的存储器裸芯,其中每个感测命令通过指示偏移和长度来指示所述物理页的部分。
3.如权利要求1所述的存储器裸芯,其中所述转移数据锁存器和所述至少一个辅助数据锁存器以层级而组织,并且其中数据从所述转移数据锁存器移动到在所述至少一个辅助数据锁存器中的可用位置,而不管所述数据是否将被移动到不同的层级。
4.如权利要求1所述的存储器裸芯,其中所述转移数据锁存器和所述至少一个辅助数据锁存器以层级而组织,并且其中数据在所述转移数据锁存器和所述至少一个辅助数据锁存器中的相应的层级之间移动。
5.如权利要求1所述的存储器裸芯,其中使用输入-输出模块将所述数据从所述转移数据锁存器移动到所述至少一个辅助数据锁存器。
6.如权利要求1所述的存储器裸芯,其中所述非易失性存储器是三维存储器。
7.如权利要求1所述的存储器裸芯,其中所述存储器裸芯嵌入在主机中。
8.如权利要求1所述的存储器裸芯,其中所述存储器裸芯是可拆卸地连接到主机的存储器系统的一部分。
9.一种用于在存储器裸芯中使用数据锁存器的方法,所述方法包括:
在包括以物理页组织的非易失性存储器、第一数据锁存器和第二数据锁存器的存储器裸芯中进行以下:
接收多个感测命令,其中每个感测命令指示在所述非易失性存储器中的将被感测的物理页以及将存储在所述第二数据锁存器中的所述物理页的部分;以及
对于每个感测命令:
将来自由所述感测命令感测的物理页的数据存储在所述第一数据锁存器中;并且
将来自由所述感测命令指示的所述物理页的部分的数据移动到所述第二数据锁存器中的可用位置。
10.如权利要求9所述的方法,其中每个感测命令通过指示偏移和长度来指示所述物理页的部分。
11.如权利要求9所述的方法,其中所述第一数据锁存器和第二数据锁存器以层级而组织,并且其中数据从所述第一数据锁存器移动到所述第二数据锁存器中的可用位置,而不管所述数据是否将被移动到不同的层级中。
12.如权利要求9所述的方法,其中所述第一数据锁存器和第二数据锁存器以层级而组织,并且其中数据在所述第一数据锁存器和第二数据锁存器中的相应层级之间移动。
13.如权利要求9所述的方法,其中使用输入-输出模块将所述数据从所述第一数据锁存器移动到所述第二数据锁存器。
14.如权利要求9所述的方法,其中所述非易失性存储器是三维存储器。
15.如权利要求9所述的方法,其中所述存储器裸芯嵌入在主机中。
16.如权利要求9所述的方法,其中所述存储器裸芯是可拆卸地连接到主机的存储器系统的一部分。
17.一种存储器裸芯,包括:
非易失性存储器,以物理页而组织;
第一数据锁存器,被配置为存储从所述非易失性存储器的物理页之一感测的数据的页;
第二数据锁存器;以及
数据锁存器控制模块,与所述非易失性存储器以及所述第一数据锁存器和第二数据锁存器通信,其中所述数据锁存器控制模块被配置为仅将所述数据的一部分从所述第一数据锁存器移动到所述第二数据锁存器中的可用位置,其中所述部分在感测命令中指示;
其中所述感测命令能够指示所述物理页的数据的哪个部分应该被存储在第二数据锁存器中。
18.如权利要求17所述的存储器裸芯,其中所述部分由在所述感测命令中的偏移和长度指示。
19.如权利要求17所述的存储器裸芯,其中所述第一数据锁存器和第二数据锁存器以层级而组织,并且其中数据从所述第一数据锁存器移动到所述第二数据锁存器中的可用位置,而不管所述数据是否将被移动到不同的层级。
20.如权利要求17所述的存储器裸芯,其中所述第一数据锁存器和第二数据锁存器以层级而组织,并且其中数据在所述第一数据锁存器和第二数据锁存器中的相应层级之间移动。
21.如权利要求17所述的存储器裸芯,其中使用输入-输出模块将所述数据从所述第一数据锁存器移动到所述第二数据锁存器。
22.如权利要求17所述的存储器裸芯,其中所述非易失性存储器是三维存储器。
23.如权利要求17所述的存储器裸芯,其中所述存储器裸芯嵌入在主机中。
24.如权利要求17所述的存储器裸芯,其中所述存储器裸芯是可拆卸地连接到主机的存储器系统的一部分。
CN201511009140.6A 2015-03-23 2015-12-29 服务混合负荷中有效使用数据锁存器的存储器裸芯和方法 Expired - Fee Related CN105988738B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/665,920 2015-03-23
US14/665,920 US9431120B1 (en) 2015-03-23 2015-03-23 Memory die and method for efficient use of data latches in serving mixed traffic loads

Publications (2)

Publication Number Publication Date
CN105988738A CN105988738A (zh) 2016-10-05
CN105988738B true CN105988738B (zh) 2019-05-21

Family

ID=56739491

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201511009140.6A Expired - Fee Related CN105988738B (zh) 2015-03-23 2015-12-29 服务混合负荷中有效使用数据锁存器的存储器裸芯和方法

Country Status (2)

Country Link
US (1) US9431120B1 (zh)
CN (1) CN105988738B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10642513B2 (en) 2015-09-11 2020-05-05 Sandisk Technologies Llc Partially de-centralized latch management architectures for storage devices
US10025532B2 (en) 2015-09-11 2018-07-17 Sandisk Technologies Llc Preserving read look ahead data in auxiliary latches
CN106681664B (zh) * 2016-12-29 2020-01-07 至誉科技(武汉)有限公司 一种用于提高固态硬盘使用寿命的管理策略
CN108536475B (zh) * 2017-12-27 2023-08-15 贵阳忆芯科技有限公司 完整编程命令处理方法与装置
US10811082B1 (en) 2019-06-24 2020-10-20 Sandisk Technologies Llc Non-volatile memory with fast data cache transfer scheme
US10825526B1 (en) * 2019-06-24 2020-11-03 Sandisk Technologies Llc Non-volatile memory with reduced data cache buffer
US11823766B2 (en) 2021-11-12 2023-11-21 Western Digital Technologies, Inc. MLM mapped NAND latch

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1767069A (zh) * 2004-09-30 2006-05-03 三星电子株式会社 非易失性存储器以及验证非易失性存储器中的数据的方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8429330B2 (en) * 2008-09-12 2013-04-23 Sandisk Technologies Inc. Method for scrambling data in which scrambling data and scrambled data are stored in corresponding non-volatile memory locations
US8743615B2 (en) * 2011-08-22 2014-06-03 Sandisk Technologies Inc. Read compensation for partially programmed blocks of non-volatile storage
KR102024850B1 (ko) * 2012-08-08 2019-11-05 삼성전자주식회사 3차원 불휘발성 메모리 장치를 포함하는 메모리 시스템 및 그것의 프로그램 방법
US9124300B2 (en) * 2013-02-28 2015-09-01 Sandisk Technologies Inc. Error correction coding in non-volatile memory
US9218242B2 (en) * 2013-07-02 2015-12-22 Sandisk Technologies Inc. Write operations for defect management in nonvolatile memory
US9053790B1 (en) * 2014-07-01 2015-06-09 Sandisk Technologies Inc. Counter for write operations at a data storage device

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1767069A (zh) * 2004-09-30 2006-05-03 三星电子株式会社 非易失性存储器以及验证非易失性存储器中的数据的方法

Also Published As

Publication number Publication date
CN105988738A (zh) 2016-10-05
US9431120B1 (en) 2016-08-30

Similar Documents

Publication Publication Date Title
CN105988738B (zh) 服务混合负荷中有效使用数据锁存器的存储器裸芯和方法
CN108139970A (zh) 用于直接写入多级单元存储器的系统和方法
US10114562B2 (en) Adaptive block allocation in nonvolatile memory
WO2017074563A1 (en) System and method for utilization of a data buffer in a storage device
US9582435B2 (en) Memory system and method for efficient padding of memory pages
WO2017058301A1 (en) Zero read on trimmed blocks in a non-volatile memory system
CN107787486A (zh) 命令授权的系统和方法
CN110088739A (zh) 用于精简配置的存储系统和方法
US9875049B2 (en) Memory system and method for reducing peak current consumption
CN108874303A (zh) 非易失性存储器命令冲突避免的储存系统和方法
CN107111456A (zh) 用于生成与主机命令相关联的提示信息的系统和方法
US9658790B2 (en) Memory system and method for power-based operation scheduling
US9582205B2 (en) Protection scheme with dual programming of a memory system
US11442666B2 (en) Storage system and dual-write programming method with reverse order for secondary block
US20210389876A1 (en) Storage System and Method for Enabling Partial Defragmentation
US11036407B1 (en) Storage system and method for smart folding
US11437104B2 (en) Storage system and method for a hybrid quad-level cell (QLC) write scheme for reduced random access memory (RAM) footprint
US9678684B2 (en) Systems and methods for performing an adaptive sustain write in a memory system
US9620201B1 (en) Storage system and method for using hybrid blocks with sub-block erase operations
US11836374B1 (en) Storage system and method for data placement in zoned storage
US11334256B2 (en) Storage system and method for boundary wordline data retention handling
US11379117B2 (en) Storage system and method for using host-assisted variable zone speed grade modes to minimize overprovisioning
US11301168B2 (en) Storage system and method for user-defined data archiving
US20210081316A1 (en) Storage System and Method for Validation of Hints Prior to Garbage Collection
US11915772B1 (en) Data storage device and method for power on reset and read error handling

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20190521

Termination date: 20201229