CN112668062A - 指示数据存储的完成的令牌 - Google Patents
指示数据存储的完成的令牌 Download PDFInfo
- Publication number
- CN112668062A CN112668062A CN202011104668.2A CN202011104668A CN112668062A CN 112668062 A CN112668062 A CN 112668062A CN 202011104668 A CN202011104668 A CN 202011104668A CN 112668062 A CN112668062 A CN 112668062A
- Authority
- CN
- China
- Prior art keywords
- page
- row
- host
- command
- programming
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000013500 data storage Methods 0.000 title claims abstract description 28
- 230000015654 memory Effects 0.000 claims abstract description 166
- 230000004044 response Effects 0.000 claims abstract description 44
- 238000000034 method Methods 0.000 claims abstract description 37
- 238000003860 storage Methods 0.000 claims abstract description 20
- 230000004048 modification Effects 0.000 claims description 20
- 238000012986 modification Methods 0.000 claims description 20
- 230000003111 delayed effect Effects 0.000 claims description 3
- 238000004242 micellar liquid chromatography Methods 0.000 description 35
- 101000711846 Homo sapiens Transcription factor SOX-9 Proteins 0.000 description 9
- 102100034204 Transcription factor SOX-9 Human genes 0.000 description 9
- 238000010586 diagram Methods 0.000 description 9
- 238000003491 array Methods 0.000 description 8
- 101100232371 Hordeum vulgare IAT3 gene Proteins 0.000 description 7
- 238000007667 floating Methods 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 238000012795 verification Methods 0.000 description 4
- 239000003990 capacitor Substances 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- 230000005055 memory storage Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 239000004065 semiconductor Substances 0.000 description 3
- 230000006870 function Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 230000001010 compromised effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000004069 differentiation Effects 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000005669 field effect Effects 0.000 description 1
- 125000000524 functional group Chemical group 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0844—Multiple simultaneous or quasi-simultaneous cache accessing
- G06F12/0853—Cache with multiport tag or data arrays
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3037—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3058—Monitoring arrangements for monitoring environmental properties or parameters of the computing system or of the computing system component, e.g. monitoring of power, currents, temperature, humidity, position, vibrations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0877—Cache access modes
- G06F12/0882—Page mode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3034—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a storage system, e.g. DASD based or network based
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3055—Monitoring arrangements for monitoring the status of the computing system or of the computing system component, e.g. monitoring if the computing system is on, off, available, not available
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7204—Capacity control, e.g. partitioning, end-of-life degradation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7207—Details relating to flash memory management management of metadata or control data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7208—Multiple device management, e.g. distributing data over multiple flash devices
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/56—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
- G11C11/5621—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
- G11C11/5628—Programming or writing circuits; Data input circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/04—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
- G11C16/0483—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/22—Safety or protection circuits preventing unauthorised or accidental access to memory cells
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
本申请涉及指示数据存储的完成的令牌。描述了与指示数据存储到存储器的完成的令牌相关的系统、设备和方法。一种示范性方法可以包含:响应于从主机接收第一命令而由存储器单元阵列的第一行中的第一页存储多个数据值,其中所述第一命令与开放交易令牌相关联;和从所述主机接收第二命令,以由所述第一行中的第二页存储多个数据值。所述方法可以进一步包含:向所述主机发送安全令牌,以指示所述第一行中的所述第二页对所述多个数据值的存储的完成。
Description
技术领域
本公开总体上涉及半导体存储器和方法,并且更特别地涉及指示数据存储到存储器的完成的令牌。
背景技术
存储器装置通常被提供为计算机或其它电子装置中的内部、半导体、集成电路和/或外部可移动装置。存在许多不同类型的存储器,包含易失性和非易失性存储器。易失性存储器可能需要电力来维护其数据,并且可以包含随机存取存储器(RAM)、动态随机存取存储器(DRAM)和同步动态随机存取存储器(SDRAM)等。非易失性存储器可以在不上电时保持所存储的数据,并且可以包含NAND闪速存储器、NOR闪速存储器、相变随机存取存储器(PCRAM)、电阻式随机存取存储器(RRAM)和磁性随机存取存储器(MRAM)等。
可以将存储器存储装置组合在一起以形成固态驱动器(SSD)。SSD、嵌入式多媒体卡(eMMC)存储器或通用闪存存储(UFS)存储器可以包含非易失性存储器(例如,NAND闪速存储器、NOR闪速存储器和/或无线存储器),和/在可以包含易失性存储器(例如,DRAM和/或SRAM)以及各种其它类型的非易失性和易失性存储器。例如,闪速存储器装置可以包含以电荷存储结构(例如,浮动栅极或电荷陷阱)存储数据的存储器单元,并且可以用作用于广泛电子应用的非易失性存储器。闪速存储器装置可以使用允许高存储器密度、高可靠性和低功耗的单晶体管存储器单元。
改善存储器存储装置可以包含降低功耗,增加数据保持的可靠性,防止由于能量供应的中断所引起的数据值的潜在修改,和/或降低制造成本等等。
发明内容
本公开的一个方面涉及一种存储数据的方法,其包括:响应于从主机接收第一命令而由存储器单元阵列的第一行中的第一页存储多个数据值,其中所述第一命令与开放交易令牌相关联;从所述主机接收第二命令,以由所述第一行中的第二页存储多个数据值;和向所述主机发送安全令牌,以指示所述第一行中的所述第二页对所述多个数据值的存储的完成。
本公开的另一方面涉及一种数据存储设备,其包括:多层存储器单元阵列,其中所述相应单元各自被配置成存储与第一行中的相应多个下页相对应的多个数据值,并且存储与第一行中的上页相对应的数据值;和耦合到所述阵列的控制器,其中所述控制器被配置成:响应于接收包含待由所述上页存储的多个数据值的第一命令而引导所述第一行中的所述上页的编程,其中所述第一命令与第一开放交易令牌相关联;响应于接收包含待由所述第一行中的所述多个下页中的特定下页存储的多个数据值的第二命令而引导所述特定下页的编程;和输出安全令牌,以指示所述第一行中的所述多个下页中的所述特定下页的编程的完成。
本公开的又一方面涉及一种存储数据的系统,其包括:主机,其被配置成生成用于存储数据值的命令;和耦合到所述主机的存储器装置,其中所述存储器装置包括:存储器单元阵列,其中所述相应单元各自被配置成存储与特定行的第一页相对应的数据值,并且存储与特定行的第二页相对应的数据值;和耦合到所述阵列的控制器,其中所述控制器被配置成:响应于从所述主机接收包含待由所述第一页存储的多个数据值的第一命令而引导第一行中的所述第一页的编程,其中所述第一命令与第一开放交易令牌相关联;响应于从所述主机接收包含待由所述第二页存储的多个数据值的第二命令而引导所述第一行中的第二页的编程;和向所述主机发送安全令牌,以指示所述第一行中的所述第二页的编程的完成,其中所述安全令牌与由所述第一页和所述第二页存储的所述数据值中的每一个的逻辑位置的指示符相关联;其中发送给所述主机的所述安全令牌取消了所述第一开放交易令牌,并且指示所述第一行中的所述第二页的所述编程已完成。
附图说明
图1示出了根据本公开的一个实施例的示范性计算系统的框图。
图2示出了根据本公开的一个实施例的示范性存储器阵列的一部分的图。
图3A是根据本公开的一个实施例的示范性非易失性存储器阵列的一部分的示意图。
图3B是根据本公开的一个实施例的四层非易失性存储器单元的示范性非易失性存储器阵列的一部分的示意图。
图4示出了根据本公开的一个实施例的可由主机和存储器装置使用的令牌的表。
图5示出了根据本公开的一个实施例的主机和存储器装置使用令牌的示范性序列。
图6是根据本公开的多个实施例的用于使用令牌来指示数据存储到存储器的完成的示范性方法的流程图。
具体实施方式
各种类型的存储器装置可以具有导电路径以使得能够访问各种组件。导电路径可以包含电极、存取线(例如,字线)和感测线(例如,位线)以及其它可能的导电路径。经由导电路径可访问的组件可以包含控制电路系统、感测放大器、存储器单元、晶体管和存储器存储节点(例如,浮动栅极、电容器等)以及由能量源(例如,电力源)供电的其它可能的组件。
例如,可以将闪存阵列架构(NAND或NOR)中的存储器单元编程(例如,作为写入操作的结果)为期望状态。可以将电荷置于存储器单元的浮动栅极或电荷陷阱上或从其去除,以使所述单元进入多种数据值存储状态。单层单元(SLC)可以表示两种二进制状态(例如,1或0)。闪速存储器单元还可以存储两种以上的二进制状态(例如,对于四层存储器单元,1111、0111、0011、1011、1001、0001、0101、1101、1100、0100、0000、1000、1010、0010、0110和1110)。此单元可以被称为多状态存储器单元、多位单元或多层单元(MLC)。MLC可以在不增加存储器单元数量的情况下允许制造更高密度的存储器,因为每个单元可以表示多于一位。MLC可以具有多于一种编程状态。例如,能够存储四位的四层单元可以具有十五种编程状态和一种擦除状态。
SLC闪存阵列中的存储器单元可以各自具有仅两种潜在电荷电平。两种潜在电荷电平可以对应于两种二进制状态。被编程为这些二进制状态中的一种的非易失性存储器单元的电荷电平(例如,数据值)即使在SLC闪存阵列关闭和/或来自能量源的电力供应中断的情况下也可以相对稳定。相反,MLC闪存阵列中的存储器单元各自具有多于两种的潜在电荷电平。潜在电荷电平的数量可以对应于MLC闪存阵列中的每层存储器单元的两种二进制状态,并且可以使用2作为基数,以层数作为指数以指数方式计算。例如,二层MLC的潜在电荷电平的数量为22=4,三层MLC的潜在电荷电平的数量为23=8,四层MLC的潜在电荷电平的数量为24=16,依此类推。
因此,例如,对于二层MLC,潜在电荷电平可以具有一种擦除状态和电荷逐渐增加的三种编程状态,而对于四层MLC,潜在电荷电平可以具有一种擦除状态和电荷逐渐增加的十五种编程状态。被编程为这些多种二进制状态中的一种的非易失性MLC的电荷电平(例如,数据值)在一或多层保持未编程的过渡状态下可能相对不稳定(例如,与SLC相比)。例如,当MLC的上层和/或下层保持未编程时,过渡状态可以允许将与特定数据值相对应的电压电平以编程电平移位。从能量源到MLC的电力供应的中断可以阻止对MLC的上层和/或下层进行编程,这可能导致与数据值相对应的先前编程的电荷电平的不稳定性。MLC存储器通过针对存储的每种状态使用不同的阈值电平来在每个单元上存储多个位。与SLC存储器相比,相邻阈值电压分布之间的差异可能很小。因此,电力中断的影响阻止了对MLC的上层和/或下层的编程,可能会增加先前编程的数据值的意外修改(例如,丢失、损坏等)概率。
例如,NAND阵列中的一行MLC可以由一系列非易失性MLC(例如,4,096个存储器单元、8,192个存储器单元、16,384个存储器单元等)形成,所述非易失性MLC各自具有用于存储与每个单元上可存储的多个位相对应的潜在电荷电平的多层。在二层MLC的行中,每个MLC中的第一层可以被统称为用于存储与第一位相对应的数据值的第一页(例如,上页),而每个MLC中的第二层可以被统称为用于存储与第二位相对应的数据值的第二页(例如,下页)。
主机可以耦合到包含MLC阵列的存储器装置。主机可以被配置成向存储器装置和/或MLC阵列发送数据(例如,数据值)以存储在特定逻辑位置(例如,与阵列中的MLC和/或页的特定物理地址相对应)。此主机可以被配置成监控旨在被编程(例如,写入)到阵列的MLC的数据的稳定性或不稳定性(例如,安全性)。例如,当电力中断由于例如过渡状态下的电压电平的潜在移位而阻止了MLC的第二页(例如,上页和/或下页)的编程时,存储在第一页中的数据的安全性可能受到损害。因此,在第一页的编程之后由主机监控第二页的编程是否已经完成可以指示是否发生了中间的电力中断。
如果没有发生这种电力中断(或阻止编程的其它事件)和/或已经对第一和第二页进行了编程,则主机可以基于数据由阵列的预期MLC和/或页安全地存储来确定第一页(和第二页)上的数据的安全性。如本文所述,这种确定可以使主机随后向存储器装置发送另外的数据以存储在MLC阵列中。
如本文所述,这种电力中断的确定可以阻止主机再次向存储器装置发送数据以存储在MLC阵列中。例如,当已经确定发生了电力中断(或另一事件)以阻止第二页的编程时,主机可以确定第一页的数据没有被安全地存储,并且主机可以延迟(例如,停止)发送另外的数据。主机可以在恢复电力供应之后再次发送先前发送的数据和另外的数据,和/或可以引导存储器装置从备份数据存储组件(例如,SLC的备份存储器页、电容器等)恢复先前发送的数据。在存在备用数据存储组件的实施方案中,这些组件可以用于在将数据提供给存储器装置时存储数据(与命令相关联),以使得能够恢复所存储的数据值以用于MLC存储器的编程。这种从备份数据存储组件恢复数据值(例如,在恢复电力供应之后)可以在先前中断了来自主机的命令和/或数据的输入的情况下进行。
相反,在本公开的多个实施例中,基于使用令牌来指示数据存储到MLC存储器的完成(如本文所述),可以配置包含MLC存储器(例如,如分别在100和110示出并且结合图1描述)的计算系统,以便不包含备份数据存储组件(例如,备用存储器)。本文描述的令牌可以用于指示(例如,确保)与来自主机的命令相对应的数据不仅已经被编程(例如,写入)到适当的位置(MLC存储器中的层),而且已经被安全地编程。如此配置的计算系统可以通过减少例如在电力中断之后数据编程时的不必要的尝试和/或重复尝试来节省带宽和/或增加耐久性。除了不包含备份数据存储组件之外,节省带宽和/或增加耐久性同样可能有助于降低制造和/或运营成本。
本公开包含与指示数据存储到存储器的完成的令牌相关的系统、设备和方法。本文描述的方法的一个实例包含:响应于从主机接收第一命令而由存储器单元阵列的第一行中的第一页存储多个数据值,其中所述第一命令与开放交易令牌相关联;和从所述主机接收第二命令,以由所述第一行中的第二页存储多个数据值。所述方法可以进一步包含:向所述主机发送安全令牌,以指示所述第一行中的所述第二页对所述多个数据值的存储的完成。
在本公开的以下详细描述中,参考了形成本公开的一部分的附图,并且在附图中通过图示的方式示出了可以如何实践本公开的一或多个实施例。足够详细地描述了这些实施例,以使本领域普通技术人员能够实践本公开的实施例,并且应当理解,可以利用其它实施例,并且可以在不脱离本公开的范围的情况下进行过程、电气和/或结构改变。
本文中的附图遵循编号规定,其中第一位数字或前几位数字对应于附图的附图编号,其余几位数字标识附图中的元素或组件。可以通过使用相似的数字来标识不同附图之间的相似的元素或组件。例如,104可以在图1中标注元素“04”,而相似的元素在图5中可以被标注为504。在一些实例中,同一附图或不同附图中的多个相似但功能上和/或结构上可区分的元素或组件可以用相同的元件编号顺序地标注(例如,图2中的221-1和221-2)。另外,本文中使用的标记“B”、“M”、“N”、“R”和“S”,特别是相对于附图中的附图标记,旨在指示如此标记的一或多个特定特征可以包含在本公开的实施例中。
图1示出了根据本公开的一个实施例的计算系统100的框图。如图1中所示,计算系统100可以包含主机102和存储器装置104形式的设备。如本文使用,“设备”可以是指但不限于多种结构中的任何一种或结构的组合(诸如例如电路或电路系统、一或多个管芯、一或多个模块、一或多个装置或一或多个系统)。计算系统100可以包含能量源101(例如,电池、电容器、电源插座等)。主机102和存储器装置104可以耦合到能量源101,以向主机102和存储器装置104提供能量(例如,电力)。在多个实施例中,主机102和存储器装置104可以耦合到不同的能量源。
主机102可以包含诸如RAM的存储器(未示出,以免混淆本公开的实施例)和诸如处理器114的存储器存取装置。处理器114可以表示一或多个处理器,例如并行处理系统、一或多个协处理器等。示范性主机可以包含膝上型计算机、个人计算机、数码相机、数字记录和回放装置、移动装置(例如,智能手机、平板等)、个人数字助理(PDA)、存储器卡读取器、接口集线器等。
如图1中所示,主机102可以包含文件寄存器(例如,如在寄存器111示出),以存储响应于由主机102向存储器装置104的控制器108发送的命令(CMD)而由存储器装置104的存储器110存储的数据值的逻辑位置的指示符。主机102可以进一步包含第一令牌组件107-1(如将在本文中进一步描述),以用作可用于监控数据存储的完成的令牌来源(例如,创建、存储、更新等)的源。数据存储的完成可以指示在数据存储完成之前由于例如供应给存储器装置104的能量的中断而保护相应数据值免于意外修改(例如,安全性)。
如图1中所示,主机102可以包含直接或间接耦合到处理器114、文件寄存器111和第一令牌组件107-1的控制器116。主机102可以进一步包含直接或间接耦合到控制器116、文件寄存器111和第一令牌组件107-1的接口118。尽管未在图1中示出以便不模糊本公开的实施例,但是主机102还可以包含和/或被配置成实施使用驱动器(例如,通用闪存存储(UFS)驱动器)与存储器装置104通信的应用。驱动器可以通过UFS主机控制器接口(未示出)来管理控制器116。
如图1中所示,存储器装置104可以包含直接或间接耦合到控制器108、第二令牌组件107-2和存储器110的接口106。控制器108可以耦合到存储器110和第二令牌组件107-2。如将在本文中进一步描述,第二令牌组件107-2可以用作可与来自第一令牌组件107-1的令牌组合用于监控数据存储的完成的令牌来源(例如,创建、存储、更新等)的源。
在多个实施例中,存储器装置104可以是UFS存储器装置。UFS存储器装置可以是例如存储器卡(全尺寸或微小尺寸)、嵌入式可启动大容量存储装置或IO装置。尽管未示出以免混淆本公开的实施例,但是UFS装置还可以包含多个逻辑单元(LU)和装置管理器。装置管理器可以进行装置级功能,例如电力管理和监控;LU可以进行功能,例如向存储器110写入数据或从存储器110读取数据;文件寄存器111可以存储相关信息。此外,尽管在图1中示出了一个存储器110,但是本公开的实施例不限于此(例如,存储器装置104可以包含耦合到控制器108的多于一个存储器)。
接口106和118可以用于在主机102和存储器装置104之间传达信息(例如,数据)。例如,接口106和118可以提供用于在存储器装置104和主机102之间传递控制、地址、信息(例如,数据)、令牌、指示符和其它信号的接口。
在多个实施例中,接口106和118可以是物理接口,例如标准化物理接口。例如,当存储器装置104用于计算系统100中的信息存储时,接口106和118可以是UFS接口、串行高级技术附件(SATA)物理接口、外围组件互连快速(PCIe)物理接口或通用串行总线(USB)物理接口以及其它物理连接器和/或接口。例如,当接口106和118是UFS接口时,接口106和118可以在主机102与包含MIPI UniPro和MIPI M-PHY的存储器装置104之间包含UFS互连(UIC)层。物理层M-PHY可以是包含TX和RX对的差分双单工PHY。在此些实施例中,存储器装置104可以通过与主机102的有线连接从主机102接收能量和/或与主机102传达信息(例如,主机102和存储器装置104可以通过有线连接耦合)。
控制器108可以与存储器110通信,以感测(例如,读取)、编程(例如,写入)和/或擦除信息以及进行其它操作。控制器108可以包含例如控制电路系统和/或逻辑(例如,硬件和/或固件)。控制器108可以包含在与存储器110相同的物理装置(例如,相同的管芯)上,或者可以包含在通信地耦合到包含存储器110的物理装置的不同的物理装置上。在多个实施例中,组件控制器108的组件可以散布在多个物理装置上(例如,一些组件与存储器110在同一管芯上,而一些组件在不同的管芯、模块或板上)。
存储器110可以包含例如一或多个非易失性存储器阵列(例如,其可以包含一或多个非易失性存储器单元)。例如,存储器110可以是具有NAND架构的闪速存储器。存储器110的实例将在本文中进一步描述(例如,结合图2和3A-3B)。然而,本公开的实施例不限于特定类型的存储器或存储器装置。例如,在多个实施例中,存储器110可以是NOR、SRAM、DRAM、RRAM、FeRAM和/或PCRAM以及其它类型的易失性和非易失性存储器。
在NAND架构中,一“行”的存储器单元的控制栅极可以与存取(例如,字)线耦合,而存储器单元可以在选择栅极源极晶体管和选择栅极漏极晶体管之间以一“串”源极到漏极串联耦合。所述串可以通过选择栅漏极晶体管连接到数据感测(例如,位)线。术语“行”和“串”的使用不暗示存储器单元的线性或正交布置。如本领域的普通技术人员将了解,将存储器单元连接到位线和源极线的方式取决于阵列是NAND架构、NOR架构还是一些其它存储器阵列架构。
存储器110的一或多个存储器阵列可以包含可以被分组的一或多个存储器单元。如本文使用,一组可以包含一或多个存储器单元,例如页、块、平面、管芯、整个阵列或其它存储器单元组。例如,一些存储器阵列可以包含构成存储器单元块的一或多个存储器单元页。一或多个块可以包含在存储器单元平面中,而一或多个存储器单元平面可以包含在管芯上。例如,一个128GB存储器装置可以每页包含4320字节的信息,每块包含128个页,每平面包含2048个块并且每装置包含16个平面。
图1中示出的实施例可以包含另外的电路系统,其未示出以免模糊本公开的实施例。例如,存储器110可以包含地址电路系统,以锁存通过I/O电路系统在输入/输出(I/O)连接器上提供的地址信号。地址信号可以由行解码器和列解码器接收和解码,以访问存储器110(例如,存储器110的一或多个阵列)。
与使用本文描述的令牌来指示数据存储的完成(其被用于保护免于从能量源101供应的能量的潜在中断)形成互补,主机102(例如,处理器114和/或控制器116)可以确定存储器装置104(例如,存储器110)的能量信息并将能量信息提供给存储器装置104(例如,控制器108)。例如,主机102可以处理包含其能量源101的特性(例如,类型)(例如,其电池是可移动的还是不可移动的)、电荷电平、容量(例如,电荷存储容量)、系统100的特性及其用户活动(例如,由于例如显示器打开或关闭所导致的系统功率消耗的速率)、能量源当前是否正在充电、当前提供给存储器装置104的能量是否不受限制(例如,由于主机102插入插座)和/或其能量源的寿命。主机102可以使用这种处理信息来确定存储器装置104是否有必要进行功率损耗保护操作(例如,突然断电恢复操作)以保护已经被编程和/或正被编程到存储器110的数据免受突然和/或意外能量损失的影响,和/或确定是否可从其能量源101获得足够量的能量以维持正常操作。然后,主机102可以例如使用单个数据位将这种确定提供给存储器装置104。
图2示出了根据本公开的一个实施例的示范性存储器阵列220的一部分的图。在多个实施例中,存储器阵列220可以是先前结合图1描述的存储器110。此外,尽管未在图2中示出,但是存储器阵列220可以连同与其操作相关联的各种外围电路系统一起位于特定的半导体管芯上。
如图2中所示,存储器阵列220可以包含存储器单元的一或多个物理块224-0(块0)、224-1(块1)、……、224-B(块B)。存储器单元可以包含SLC和/或MLC,诸如例如二层单元、三层(three level/triple level)单元(TLC)和/或四层(four level/quadruple level)单元(QLC)以及其它可能性。例如,存储器阵列220中的物理块的数量可以是128个块、512个块或1,024个块,但是实施例不限于存储器阵列220中的二的特定幂数个或任何特定数量的物理块。
存储器单元的一或多个物理块(例如,块224-0、224-1、……、224-B)可以包含在存储器单元平面中,而一或多个存储器单元平面可以包含在管芯上。例如,在图2中示出的实例中,每个物理块224-0、224-1、……、224-B可以是单个管芯的一部分。也就是说,图2中示出的存储器阵列220的部分可以是存储器单元的管芯。
如图2中所示,每个物理块224-0、224-1、……、224-B包含耦合到存取线(例如,字线)的存储器单元的一或多个物理行(例如,221-0、221-1、……、221-R)。每个物理块中的行(例如,字线)的数量可以是32,但是实施例不限于每个物理块特定数量的行221、221-1、……、221-R。此外,尽管未在图2中示出,但是存储器单元可以耦合到感测线(例如,位线、数据线和/或数位线)。
在多个实施例中,每行221-0、221-1、……、221-R可以包含一或多个存储器单元页(例如,物理页)。物理页是指编程和/或感测的单元(例如,一起被编程和/或感测为功能组的一或多个存储器单元)。在图2中示出的实施例中,每行221-0、221-1、……、221-R看起来示出了存储器单元的一个物理页;但是,本公开的实施例不限于此。例如,在多个实施例中,每行可以包含存储器单元的多个物理页(例如,耦合到偶数位线的存储器单元的一或多个偶数页,和耦合到奇数位线的存储器单元的一或多个奇数页)。另外,对于包含MLC的实施例,存储器单元的行(物理页)可以存储多页(例如,逻辑页)的数据。例如,二层MLC的一行可以存储上页的数据和下页的数据,而物理页中的每个单元存储指向上页的数据的一或多位和指向下页的数据的一或多位。
如图2中所示,存储器单元的物理页可以包含一或多个物理扇区222-0、222-1、……、222-S(例如,存储器单元的子集)。单元的每个物理扇区222-0、222-1、……、222-S可以存储一或多个逻辑扇区的数据(例如,数据字)。另外,每个逻辑扇区的数据可以对应于特定页的数据的一部分。例如,存储在特定物理扇区中的第一逻辑扇区的数据可以对应于与第一页的数据相对应的逻辑扇区,而存储在特定物理扇区中的第二逻辑扇区的数据可以对应于第二页的数据。每个物理扇区222-0、222-1、……、222-S可以存储系统和/或用户数据和/或可以包含开销数据,例如错误校正码(ECC)数据和逻辑块地址(LBA)数据。
物理块224-0、224-1、……、224-B、行221-0、221-1、……、221-R、扇区222-0、222-1、……、222-S和页的其它配置是可能的。例如,物理块224-0、224-1、……、224-B的行221-0、221-1、……、221-R可以各自存储与单个逻辑扇区相对应的数据,所述逻辑扇区可以包含例如多于或少于512字节的数据。
图3A是根据本公开的一个实施例的示范性非易失性存储器阵列325的一部分的示意图。图3A的实施例示出了NAND架构非易失性存储器;但是,本文描述的实施例不限于本实例。在多个实施例中,存储器阵列325可以是先前结合图1和2描述的存储器110和/或220。如图3A中所示,存储器阵列325包含存取线(字线)326-1、……、326-N和相交的感测线(位线)327-1、……、327-M。为了在数字环境中易于寻址,字线326-1、……、326-N的数量和位线327-1、……、327-M的数量各自是二的某一幂数(例如,256个字线乘以4,096个位线)。
存储器阵列325包含NAND串329-1、……、329-M。每个NAND串329-1、……、329-M包含非易失性存储器单元328-1、……、328-N,其各自位于字线326-1、……、326-N和本地位线327-1、……、327-M的交点处。每个NAND串329-1、……、329-M的非易失性存储器单元328-1、……、328-N在源极选择栅极(SGS)330(例如,场效应晶体管(FET))和漏极选择栅极(SGD)334(例如,FET)之间源极到漏极串联连接。源极选择栅极330位于本地位线327-1和源极选择线331的交点处,而漏极选择栅极334位于本地位线327-1和漏极选择线333的交点处。
如图3A中所示,源极选择栅极330的源极可以连接到公共源极线332。源极选择栅极330的漏极可以连接到相对应的NAND串329-1的存储器单元328-1的源极。漏极选择栅极334的漏极可以在漏极接触335处连接到相对应的NAND串329-1的本地位线327-1。漏极选择栅极334的源极可以连接到相对应的NAND串329-1的最后一个存储器单元328-N(例如,浮动栅极晶体管)的漏极。
在多个实施例中,非易失性存储器单元328-1、……、328-N的构造可以包含源极、漏极、浮动栅极或电荷存储层以及控制栅极。非易失性存储器单元328-1、……、328-N使其控制栅极耦合到相应字线326-1、……、326-N。非易失性存储器单元328-1、……、328-N的列构成NAND串329-1、……、329-M,其可以分别耦合到给定的本地位线327-1、……、327-M。非易失性存储器单元的行通常耦合到给定的字线326-1、……、326-N。
图3B是根据本公开的一个实施例的四层存储器单元的NAND阵列340的一个实例的一部分的示意图。在多个实施例中,NAND阵列340可以是先前结合图1、2和3A描述的存储器110、220和/或325。
图3B示出了四位非易失性存储器单元的NAND阵列340的一个实施例,其中所述四位对应于结合图3B描述的每个MLC 342的四层343、344、345和346。图3B中示出的位线BL0327-1和BL1 327-2可以对应于结合图3A描述的各个位线327-1、……、327-M。在多个实施例中,位线BL0 327-1和BL1 327-2可以表示与相应编程序列相对应的偶数和奇数位线。
对于图3B中示出的每个MLC 342,左下数字343旨在表示第一下页(LP1)的编程数据,左上数字344旨在表示第二下页(LP2)的编程数据,右上页345旨在表示第三下页(LP3)的编程数据,而右下页346旨在表示上页(UP)的编程数据。此描述旨在使MLC中的不同程序状态能够区分,而不旨在限于MLC中的浮动栅极的特定物理结构或序列,也不限于对其进行编程的顺序。例如,在所述四个页中,上页可以是待被编程的第一个页或待被编程的最后一个页(例如,取决于编程设计的偏好和待应用于每层的术语以及其它考虑)。
图3B的实施例示出了从与NAND阵列340的SGS线331相邻的第一字线(WL1)326-1开始,并且在与多个次相邻字线(例如,WL1 326-1、WL2 326-2、……、WLN326-N)之间的偶数BL0 327-1和奇数BL1 327-2相关联的MLC 342的第一下页343、第二下页344和第三下页345以及上页346的编程之间交替。
图3B中示出的实施例可以表示首先在偶数BL0 327-1上编程MLC 342-0的343-0处的第一下页(LP1),并且在与326-1处的第一字线(WL1)相关联的奇数BL1 327-2上编程MLC342-1的343-1处的第一下页(LP1)。所述实施例可以表示接下来在偶数BL0327-1上编程MLC342-2的LP1 343-2,并且在与326-2处的第二WL2相关联的奇数BL1327-2上编程MLC 342-3的LP1 343-3。所述实施例可以表示接下来在偶数BL0 327-1上编程MLC 342-4的LP1 343-4,并且在与326-3处的第三WL3相关联的奇数BL1 327-2上编程MLC 342-5的LP1 343-5。在多个实施例中,本编程序列可以继续直到与326-N处的最后一个WLN相关联的MLC 342-N-1和342-N的第一下页已经被编程。
在多个实施例中,然后可以进行类似的序列以编程与WL 326-1、……、326-N相关联的MLC 342-0、……、342-N的344-0、344-1等处的第二下页(LP2)。然后,可以进行序列以编程与WL 326-1、……、326-N相关联的MLC 342-0、……、342-N的345-0、345-1等处的第三下页(LP3)。然后,可以用编程与WL 326-1、……、326-N相关联的MLC 342-0、……、342-N的346-0、346-1等处的上页(UP)的序列来完成MLC 342-0、……、342-N的每一层的编程。
在存储器装置的控制器(例如,结合图1示出和描述的存储器装置104的控制器108)从主机(例如,结合图1示出和描述的主机102)接收命令以编程NAND阵列340中的MLC342和完成对特定MLC 342中的不同(例如,成对)层中的每一层的编程之间可能存在明显的延迟。在一或多个MLC的下页的编程和一或多个MLC的上页的编程之间的延迟中可能会发生能量(例如,电力)的中断,使得至少一些上页可能在中断之前尚未被编程,即使一些成对的下页已被编程。因此,相对于成对的上页被成功地编程,由下页存储的数据值的意外修改的概率由于数据值未在成对的上页中编程而增加。使用本文所述的令牌来指示数据存储到存储器的完成旨在降低由下页存储的数据值的这种意外修改的概率。
图4示出了根据本公开的一个实施例的可由主机和存储器装置使用的令牌450的表。对于每种类型的令牌,表中的令牌450分别以名称451、来源453和描述455列出。来源453旨在指示可用于监控数据存储的完成的特定令牌的创建、存储、更新等的源。
与编程存储器单元阵列的相对应数量的行的至少多个第一页(例如,将数据值写入/存储在其中)的第一命令相关联,开放交易令牌456可以来源于主机(例如,使用主机(如图1中的102示出)的第一令牌组件107-1来创建、存储和/或更新)。关闭交易令牌457也可以来源于主机(例如,使用第一令牌组件107-1来创建、存储和/或更新)。在多个实施例中,开放交易令牌456和/或关闭交易令牌457可以在第一令牌组件107-1和/或文件寄存器(例如,图1中的主机102上示出的寄存器111)中存储和/或更新。
在多个实施例中,存储器装置(例如,存储器装置104的控制器108和/或耦合到所述存储器装置/控制器的固件(未示出))可以向主机发送指示符(例如,如在571示出并且结合图5描述),以指示编程相对应数量的行的至少所述数量的第一页的第一命令的完成。指示符可以是发送到文件寄存器(例如,图1中的主机102上示出的寄存器111)的信号(例如,对应于特定序列的位)。在多个实施例中,可以经由存储器装置的接口和主机的接口(例如,如图1中分别在106和118示出)发送指示符。在多个实施例中,指示符然后可以被发送(例如,由图1中示出的控制器116)到文件寄存器。指示符可以实现关闭交易令牌457的验证,以指示编程第一页的第一命令的成功完成。
安全令牌458可以来源于存储器装置(例如,使用存储器装置(如在图1中的104示出)的第二令牌组件107-2来创建、存储和/或更新)。安全令牌458可以由存储器装置(例如,由控制器和/或固件)发送到主机,以指示编程与由开放交易令牌456和关闭交易令牌457封装的所述多个第一页相关联的多个第二页的第二命令的完成。由开放交易令牌456和关闭交易令牌457“封装”旨在是指,已经成功地编程了被引导为以与开放交易令牌相关联的第一命令编程的相对应多个MLC的多个第一页,如发送指示符以验证相对应的关闭交易令牌457所指示。开放交易令牌456和关闭交易令牌457可以各自对应于相对应数量的行的一或多个第一页,例如如在图5中针对与第一开放交易令牌556-1和第一关闭交易令牌557-1相关联的564-1处的命令(CMD)1和564-2处的CMD 2示出。与由图5中的开放交易令牌556-1和关闭交易令牌557-1封装的所述多个第一页(例如,图5中的页569-1和569-2)相关联(例如,成对)的所述多个第二页分别是与CMD 564-5和CMD 564-6相关联的第二页569-5和569-6。
相关联的安全令牌458(例如,如针对与图5中的564-1处的CMD 1和564-2处的CMD2相对应的第一安全令牌558-1示出)可以指示,在第一页(例如,页569-1和569-2)的编程之后,已经成功地完成了成对的第二页(例如,页569-5和569-6)的编程。发出相关联的安全令牌458还可以指示,尚未发生中间的电力中断。在多个实施例中,安全令牌458的接收(例如,由图1中示出的主机102上的文件寄存器111)可以导致通过指示第二页(例如,页569-5和569-6)对所述多个数据值的存储的成功完成而取消开放交易令牌456(例如,第一开放交易令牌556-1)。
图5示出了根据本公开的一个实施例的由主机502和存储器装置504使用令牌的示范性序列560。在多个实施例中,结合图4示出和描述的令牌450可以对应于结合图5示出和描述的令牌(例如,与其相同)。主机502和存储器装置504标头下的交易令牌和指示符在图5中的定位旨在指示它们的每个来源(例如,如在453示出并且结合图4描述)。
图5中示出的示范性序列560示出了主机502发出与第一开放交易令牌556-1相关联的564-1处的CMD1和564-2处的CMD2。示范性序列560的子序列中的两个命令各自包含待被编程到MLC阵列的特定页569的数据值。除了关于待编程的阵列的哪个行、列、页等的指令之外,每个命令可以包含可以与阵列的一行中的多个MLC相对应的待编程的多个数据值。所述行中的所述多个MLC中的不同层(例如,结合图3B示出和描述的MLC 342的四个层)中的每一层可以被统称为页569,使得与图3B中示出的WL1326-1、WL2 326-2、……、WLN 326-N相关联的行可以各自具有四个页569(例如,LP1343、LP2 344、LP3 345和UP 346),用于存储与所述行中的所述多个MLC相对应的多个数据值。为了清楚起见,图5中的示范性序列560被示出为具有与每一行中的MLC中的两个层相对应的两个页569(例如,上页和下页);但是,实施例不限于每行两个页和/或每个MLC中两个层。
与第一开放交易令牌556-1相关联的两个命令564-1和564-2可以被连续地(例如,在主机502的两个连续周期中)发送到存储器装置504,以被编程(例如,写入)到适当的页569(例如,如由图1中示出的控制器108接收和/或引导)。与包含在两个命令564-1和564-2中的指令一致,569-1处的上页1(例如,属于行1中的MLC)可以响应于CMD1利用数据值来编程,并且569-2处的上页2(例如,属于行2中的MLC)可以响应于CMD2利用数据值来编程。在完成了569-1处的上页1和569-2处的上页2的编程之后,存储器装置504(例如,其控制器和/或固件)可以被配置成向主机502输出562完成了CMD1和CMD2的指示符571-1。
指示符571-1由主机502(例如,由图1中示出的控制器116、第一令牌组件107-1和/或文件寄存器111)接收可以验证与第一开放交易令牌556-1相对应的由主机(例如,在文件寄存器111中或在第一令牌组件107-1中)存储的第一关闭交易令牌557-1。第一关闭交易令牌557-1的验证可以用于指示与CMD1 564-1和CMD2 564-2相关联的569-1处的上页1和569-2处的上页2的编程的完成。
与开放交易令牌556相关联的示范性序列560的子序列不限于仅包含两个命令564(例如,CMD1 564-1和CMD2 564-2)从主机502连续发送到存储器装置504。与开放交易令牌556相关联的子序列也不限于仅对MLC的一层和/或一种类型的页569(例如,569-1处的上页1和569-2处的上页2)进行编程。
例如,图5示出了第二开放交易令牌556-2与564-3处的CMD3、564-4处的CMD4、564-5处的CMD5、564-6处的CMD6、564-7处的CMD7和564-8处的CMD8相关联。与这六个命令564-3、……、564-8中包含的指令一致,569-3处的上页3(例如,属于行3中的MLC)可以响应于CMD1利用数据值来编程,并且569-4处的上页4(例如,属于行4中的MLC)可以响应于CMD4利用数据值来编程。
如图5中所示,示范性序列560的子序列可以包含向不同类型的页569的编程引导的命令与相同的开放交易令牌556相关联。例如,不仅上页3和4的编程与开放交易令牌556-2相关联,与开放交易令牌556-2相关联的还包括569-5处的下页1(例如,属于行1中的MLC),其可以响应于CMD5利用数据值来编程;569-6处的下页2(例如,属于行2中的MLC),其可以响应于CMD6利用数据值来编程;569-7处的下页3(例如,属于行3中的MLC),其可以响应于CMD7利用数据值来编程;和569-8处的下页4(例如,属于行4中的MLC),其可以响应于CMD8利用数据值来编程。
在完成了569-5处的下页1和569-6处的下页2的编程之后,存储器装置504可以被配置成向主机502输出562第一安全令牌558-1,以指示与CMD5和CMD6相关联的数据值的编程的完成。编程的完成还指示,在与CMD1 564-1和CMD2 564-2相关联的569-1处的上页1和569-2处的上页2以及与CMD5 564-5和CMD6 564-6相关联的成对的569-5处的下页1和569-6处的下页2的编程之间尚未发生电力的中断(或阻止编程的其它事件)。此外,第一安全令牌558-1还可以指示,基于第一和第二行中的成对的569-5处的下页1和569-6处的下页2的编程已完成,在相应第一和第二行的成对的569-1处的上页1和569-2处的上页2的意外修改概率降低(例如,相对安全)。
包含在与第二开放交易令牌556-2相关联的子序列中,示范性序列560可以继续响应于CMD7 564-7利用数据值来编程569-7处的下页3(例如,属于行3中的MLC)并响应于CMD8564-8利用数据值来编程569-8处的下页4(例如,属于行4中的MLC)。在完成了569-7处的下页3和569-8处的下页4的编程之后,存储器装置504可以被配置成向主机502输出562完成了CMD3、CMD4、CMD5、CMD6、CMD7和CMD8的指示符571-2。
指示符571-2由主机502接收可以验证与第二开放交易令牌566-2相对应的由主机(例如,在文件寄存器111中或在第一令牌组件107-1中)存储的第二关闭交易令牌557-2。第二关闭交易令牌557-2的验证可以用于指示与CMD3 564-3和CMD4 564-4相关联的569-3处的上页3和569-4处的上页4的编程的完成。第二关闭交易令牌557-2的验证还可以用于指示分别与CMD5 564-5、CMD6 564-6、CMD7 564-7和CMD8 564-8相关联的569-5处的下页1、569-6处的下页2、569-7处的下页3和569-8处的下页4的编程的完成。可替代地或另外地,在完成了上页4的编程之后,可以向主机502输出562指示符571,以指示与CMD3 564-3和CMD3 564-3相对应的上页3和上页4的编程的完成。
在完成了569-8处的下页4的编程之后,存储器装置504可以被配置成向主机502输出562第二安全令牌558-2,以指示与CMD7 564-7和CMD8 564-8相关联的数据值的编程的完成。编程的完成还指示,在与CMD3 564-3和CMD4 564-4相关联的569-3处的上页3和569-4处的上页4以及与CMD7 564-7和CMD8 564-8相关联的成对的569-7处的下页3和569-8处的下页4的编程之间尚未发生电力的中断(或阻止编程的其它事件)。此外,第二安全令牌558-2还可以指示,基于第三和第四行中的成对的569-7处的下页3和569-8处的下页4的编程已完成,在相应第三和第四行的成对的569-3处的上页3和569-4处的上页4的意外修改概率降低(例如,相对安全)。因此,存储器装置504(例如,控制器108)可以被配置成延迟适用于特定命令的完成的安全令牌的输出,直到多个另外的命令被完成,使得安全令牌指示与特定命令和另外的命令相关联的编程的完成。
在多个实施例中,由主机502接收安全令牌558可以导致文件寄存器111中的相应开放交易令牌556(例如,和相对应的关闭交易令牌557)的取消。例如,第一安全令牌558-1的接收可以导致第一开放交易令牌556-1的取消,并且第二安全令牌558-2的接收可以导致第二开放交易令牌556-2的取消。文件寄存器111可以响应于相应安全令牌的接收而存储由相应行以及上和下页安全地存储的数据值的逻辑位置的指示符。
因此,存储器装置(例如,如在104示出并且结合图1描述)可以包含存储器中的MLC阵列。在多个实施例中,所述阵列可以是以行布置的非易失性MLC的NAND阵列。可以与在110示出并且结合图1描述的实施例、在220示出并且结合图2描述的实施例、在325示出并且结合图3A描述的实施例和/或在340示出并且结合图3B描述的实施例以及符合本公开的存储器的其它可能的实施例一致地形成阵列。
阵列中的MLC 342可以各自被配置成存储与相应数量的下页相对应的多个数据值,并且存储与第一行的上页相对应的数据值。例如,在图3B中示出的四层(例如,四位)非易失性存储器单元的NAND阵列340的第一行(例如,WL1 326-1)中,MLC 342-0可以包含LP1343-0、LP2 344-0、LP3 345-0和UP 346-0。类似地,第一行的MLC 342-1可以包含LP1 343-1、LP2 344-1、LP3 345-1和UP 346-1。第一行可以包含任意数量的四层MLC(例如,1,024个、2,048个、4,096个、8,192个或16,384个以及不等于2的幂数的其它可能数量的存储器单元)。与第一行326-1中的MLC 342(例如,342-0、342-1等)的数量相对应的下页层LP1 343-0、LP1 343-1等的总数可以是被称为第一行326-1的第一页。与第一行326-1中的MLC 342的数量相对应的下页层LP2 344-0、LP2 344-1等的总数可以被称为第一行326-1的第二页。类似地,与第一行326-1中的MLC 342的数量相对应的下页层LP3 345-0、LP2 345-1等的总数可以被称为第一行326-1的第三页。与第一行326-1中的MLC 342的数量相对应的上页层UP346-0、LP2 346-1等的总数可以被称为第一行326-1的第四页。在每一行326-2、326-3、……、326-N中使用的MLC 342的LP1 343、LP2 344、LP3 345和UP 346的四个页可以类似地形成。
多个实施例在每个MLC 342中可以具有少于四个层(例如,两或三个层),或者在每个MLC 342中可以具有多于四个层(例如,五个或五个以上层),使得每行的页的数量可以对应于层的数量。此外,页的编号可以颠倒。例如,下页层LP1 343-0、LP1 343-1等可以被称为第一行326-1的第四页,并且上页层UP 346-0、LP2 346-1等可以被称为第一行326-1的第一页。例如,对于二层MLC,下页层可以被称为第一页,并且上页层可以被称为第二页,或反之亦然。
控制器(例如,如在108示出并且结合图1描述)可以耦合到MLC阵列。在多个实施例中,控制器可以被配置成响应于包含待由上页(例如,在569-1示出并且结合图5描述的上页1)存储的多个数据值的第一命令(例如,在564-1示出并且结合图5描述的CMD1)的接收来引导第一行中的上页的编程。第一命令可以与第一开放交易令牌(例如,如分别在456和556-1示出并且结合图4和图5描述)相关联。
控制器可以进一步被配置成响应于包含待由特定下页存储的多个数据值的第二命令(例如,在564-5示出并且结合图5描述的CMD5)的接收来引导多个下页中的特定下页(例如,二层MLC的第二页或四层MLC的第四页)的编程。在图5中示出的实例中,下页中的特定下页可以是在569-5示出的下页1。控制器可以进一步被配置成引导第一安全令牌(例如,如分别在458和558-1示出并且结合图4和图5描述)的输出,以指示第一行中的多个下页中的特定下页的编程的完成。
第一安全令牌可以导致第一开放交易令牌的取消,并且可以指示第一行中的下页中的特定下页的编程已完成。例如,响应于由主机502接收安全令牌,确认第一行中的下页中的特定下页的编程的完成,并且取消第一开放交易令牌。第一安全令牌可以进一步指示,在完成下页中的特定下页的编程之前,完成了第一行中的上页的编程。第一安全令牌可以进一步指示,上页中编程的数据值的意外修改的概率由于完成了所述数据值在第一行中的下页中的特定下页中的编程而降低。所述降低的概率可以相对于在下页中的特定下页保持未编程的情况下的数据值的意外修改的概率。响应于下页中的特定下页没有保持未编程,例如通过在上页的编程之后向包含阵列的存储器装置供应的能量(例如,电力)的中断,可以输出第一安全令牌,以指示在完成下页中的特定下页的编程之前尚未发生能量的中断。
在多个实施例中,第一命令(例如,在564-1示出并且结合图5描述的CMD1)之后可以是第三命令(例如,在564-2示出的CMD2),以引导第二行中的上页(例如,在569-1示出的上页2)的编程。第一命令和第三命令都可以与第二开放交易令牌(例如,其可以与在556-1示出的第一开放交易令牌相同)相关联。存储器装置的控制器可以进一步被配置成响应于第一行中的上页和第二行中的上页(例如,上页569-1和569-2)的编程的完成而输出指示符(例如,如在571-1示出)。
第三命令(例如,在564-2示出的CMD2)之后可以是第四命令(例如,在564-6示出的CMD6),以引导第二行中的多个下页中的特定下页(例如,在569-6示出的下页2)的编程。控制器可以进一步被配置成引导第一安全令牌(例如,在558-1示出)的输出,以指示第一行中的多个下页中的特定下页(例如,下页569-5)的编程和第二行中的多个下页中的特定下页(例如,下页569-6)的编程的完成。第一安全令牌558-1的接收可以导致第二开放交易令牌(例如,在556-1示出的第一开放交易令牌)的取消。第一安全令牌558-1还可以指示,第一和第二行中的下页中的特定下页(例如,下页569-5和569-6)的编程已完成,并且第一和第二行的上页(例如,上页569-1和569-2)中编程的数据值的意外修改的概率降低。
计算系统(例如,如在100示出并且结合图1描述)可以包含被配置成生成用于存储数据值的命令的主机(例如,如在102示出)。计算系统100可以进一步包含耦合到主机102的存储器装置(例如,如在104示出)。存储器装置104可以包含MLC的阵列(例如,如在110、220、325和340示出)。每个MLC可以被配置成存储与特定行中的第一页(例如,569-1处的上页1)相对应的数据值,并且存储与特定行中的第二页(例如,569-5处的下页1)相对应的数据值。第一行中的MLC的总数可以对应于待由第一页和第二页中的每一个存储的数据值的相应数量。
控制器(例如,如在108示出)可以耦合到阵列。控制器可以被配置成响应于从主机接收包含待由第一页存储的多个数据值的第一命令(例如,564-1处的CMD1)来引导第一行中的第一页(例如,569-1处的上页1)的编程。第一命令可以与第一开放交易令牌(例如,在556-1示出)相关联。开放交易令牌可以与编程阵列的相对应数量的行的至少多个第一页的命令相关联地来源于主机。例如,图5中示出的第一开放交易令牌556-1与分别用于行1中的上页1 569-1的编程以及行2中的上页2 569-1的编程的CMD1 564-1和CMD2564-2相关联。图5中示出的第二开放交易令牌556-2与分别用于行3中的上页1 569-3的编程以及行4中的上页4 569-4的编程的CMD3 564-3和CMD4 564-4相关联。另外,第二开放交易令牌556-2可以与用于行1中的下页1 569-5的编程的CMD5 569-5、用于行2中的下页2 569-6的编程的CMD6569-6、用于行3中的下页3 569-7的编程的CMD7569-7和用于行4中的下页4 569-8的编程的CMD8 569-8相关联。
控制器可以进一步被配置成响应于从主机接收包含待由第二页存储的多个数据值的第二命令(例如,564-5处的CMD5)来引导第一行中的第二页(例如,569-5处的下页1)的编程。控制器可以进一步被配置成引导将第一安全令牌(例如,在558-1示出)发送到主机,以指示第一行中的第二页的编程的完成。可以将第一安全令牌发送给主机(例如,由控制器),以指示编程与由第一开放交易令牌(例如,在556-1示出)和第一关闭交易令牌(例如,在557-1示出)封装的所述多个第一页(例如,页569-1和569-2)相关联的多个第二页(例如,569-5和569-6)的第二命令(例如,564-5处的CMD5和564-6处的CMD6)的完成。
第一安全令牌可以与由阵列中的第一页和第二页存储的每个数据值的逻辑位置的指示符相关联(例如,将其包含在内)。发送给主机的安全令牌可以指示第一行中的第二页的编程已完成。发送给主机的安全令牌还可以导致第一开放交易令牌的取消。
指示符(例如,如在571-1和/或571-2示出)可以由控制器发送(或被引导为由其发送)到主机,以指示编程相对应数量的行的至少所述多个第一页的第一命令的完成。例如,指示符571-1可以指示与第一开放交易令牌556-1相关联的分别编程上页1 569-1和上页2569-2的CMD1 564-1和CMD2 564-2的完成。在多个实施例中,指示符571-2可以指示与第二开放交易令牌556-2相关联的分别编程上页3 569-3和上页4 569-4的CMD3564-3和CMD4564-2的完成。可替代地,指示符571-2可以指示除了与第二开放交易令牌556-2相关联的下页1-4之外还编程上页3和4的CMD 3-8的完成。指示符571-1可以验证对应于第一开放交易令牌556-1的第一关闭交易令牌557-1,并且指示符571-2可以验证对应于第二开放交易令牌556-2的由主机存储的第二关闭交易令牌557-1。
如本文所述,安全令牌(例如,在558-1示出的第一安全令牌)可以指示,相对于第二页(例如,成对的页569-5)保持未编程,第一页(例如,页569-1)中编程的数据值的意外修改的概率由于供应给存储器装置的能量(例如,电力)的中断而降低。例如,由主机接收安全令牌可以指示,相对于第二页保持未编程,第一页中编程的数据值的意外修改的概率由于完成了所述数据值在第一行中的第二页中的编程而降低。
第一命令(例如,用于编程行1中的上页1的564-1处的CMD1)之后可以是第三命令(例如,用于编程行2中的上页2的564-2处的CMD2),以引导第二行中的第一页的编程。第一命令和第三命令可以与第二开放交易令牌(例如,在556-1示出的第一开放交易令牌)相关联。第三命令之后可以是第四命令(例如,564-6处的CMD6),以引导第二行中的第二页的编程(例如,569-6处的下页2)。控制器可以进一步被配置成向主机发送CMD1 564-1和CMD2564-2的第一安全令牌558-1,以指示第一行中的第二页的编程和第二行中的第二页的编程的完成(例如,下页569-5和569-6)。
响应于由主机接收第一安全令牌558-1,可以取消第二开放交易令牌(例如,如在556-1示出)。响应于接收第一安全令牌558-1,可以(例如,由控制器118)引导主机的文件寄存器(例如,在111示出)存储由相应第一和第二行中的每一行中的第一页和第二页存储的数据值的逻辑位置的指示符。第一页中的每个数据值的逻辑位置的指示符由文件寄存器存储可以指示,第一页中的数据值的意外修改的概率由于供应给存储器装置的能量的中断而降低。
安全令牌的接收可以向主机指示,数据值已经由与第一页和第二页相对应的非易失性MLC存储,并且所存储的数据值由于供应给存储器装置的能量的中断而被保护免于意外修改。相反,没有接收(例如,未接收)安全令牌可以向主机指示,MLC的至少第二页尚未存储数据值。因此,主机可以被配置成确定不会向存储器装置发送用于存储数据值的另外的命令。主机可以进一步被配置成延迟向存储器装置发送用于存储数据值的命令,直到供应给存储器装置的能量恢复(例如,通过主机102被配置成监控能量源101的特性,如本文其它地方所述)。
图6是根据本公开的多个实施例的用于使用令牌来指示数据存储到存储器的完成的示范性方法680的流程图。方法680可以由可以包含硬件和/或固件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合的处理逻辑来进行。除非明确说明,否则本文描述的方法的元素不限于特定的顺序或序列。另外,本文描述的多个方法实施例或其元素可以在相同或基本相同的时间点进行。
在多个实施例中,方法680可以使用存储器装置104的控制器108和/或主机102的控制器116(例如,与存储器110和/或处理器114组合)来进行,如图所示并且结合图1描述。由存储器装置104和/或主机102使用电路系统、存储器、控制器和/或与其相关联的处理器进行的本文所述的操作(例如,存储、发送、取消、记录、取消、检测等)通过执行计算机可读媒体(CRM)上存储的指令来实现。在多个实施例中,CRM可以存储在有形硬件、固件和/或软件上,所述硬件、固件和/或软件可以是存储器装置104和主机102的控制器、存储器和/或处理器的一部分,与其直接耦合和/或与其间接耦合(例如,可操作地耦合)。例如,存储器装置104的控制器108和/或存储器110可以包含CRM(其包含可执行以引导令牌107-2的生成和/或输出(例如,经由接口106)的指令),或与其可操作地耦合。主机102的控制器116和/或处理器114可以包含CRM(其包含可执行以引导令牌107-2的接收(例如,经由接口118)的指令),或与其可操作地耦合。在多个实施例中,CRM可以进一步包含可由控制器116执行以引导令牌107-2(例如,如在458示出并且结合图4描述的安全令牌)的使用的指令。
在框681,方法680可以包含:响应于从主机接收第一命令而由存储器单元阵列的第一行中的第一页存储多个数据值(例如,如图所示并且结合图3B和5以及本文其它地方描述)。第一命令可以与开放交易令牌相关联(例如,如图所示并且结合图4和5以及本文其它地方描述)。在框683,方法680可以包含:从主机接收第二命令,以由第一行中的第二页存储多个数据值(例如,如图所示并且结合图3B和5以及本文其它地方描述)。在框685,方法680可以包含:向主机发送安全令牌,以指示第一行中的第二页对所述多个数据值的存储的完成(例如,如图所示并且结合图4和5以及本文其它地方描述)。
在多个实施例中,方法680可以进一步包含:响应于接收安全令牌而取消(例如,由主机)开放交易令牌,以指示第二页对所述多个数据值的存储的完成(例如,如图所示并且结合图4和5以及本文其它地方描述)。方法680可以进一步包含:有条件地响应于将开放交易令牌与所接收的安全令牌匹配而记录(例如,由主机)第一行中的第一和第二页对所述多个数据值的存储的完成。例如,特定开放交易令牌(例如,图5中示出的第一开放交易令牌556-1或第二开放交易令牌556-2)的取消可以取决于主机(例如,其控制器)从存储器装置接收匹配安全令牌(例如,相应第一安全令牌558-1或相应第二安全令牌558-2)。方法680可以进一步包含:基于开放交易令牌与所接收的安全令牌的不匹配,检测(例如,由主机)供应给阵列的能量(例如,电力)的中断。方法680可以进一步包含:安全令牌指示,相对于数据值未由第二页存储,由第一页存储的数据值的意外修改的概率由于供应给阵列的能量的中断而降低。
方法680可以进一步包含:基于开放交易令牌与所接收的安全令牌的不匹配的确定,延迟(例如,由主机)向包括存储器单元阵列的存储器装置发送用于存储数据值的命令(例如,如图所示并且结合图5以及本文其它地方描述)。方法680可以进一步包含:由于用于存储数据值的命令的发送被延迟,存储器装置不包含备用数据存储组件。例如,在多个实施例中,系统100和/或存储器装置104可以不包含备份数据存储组件,因为系统(例如,主机102)可以被配置成响应于未接收到如本文所述的安全令牌而延迟向存储器装置发送用于存储数据值的命令(例如,直到供应给存储器装置的能量恢复)。因此,由于用于存储数据值的命令在例如来自能量源的电力供应中断时没有被存储器装置接收,因此可以减少(例如,消除)由备用数据存储组件存储的数据值的潜在使用。
在本公开的以上详细描述中,参考了形成本公开的一部分的附图,并且在附图中通过图示的方式示出了可以如何实践本公开的一或多个实施例。足够详细地描述了这些实施例,以使本领域普通技术人员能够实践本公开的实施例,并且应当理解,可以利用其它实施例,并且可以在不脱离本公开的范围的情况下进行过程、电气和/或结构改变。此外,在附图中示出的结构特征旨在指示一或多个实施例中的结构特征的相对定位,并且不一定相对于附图或其它方面中的其它结构特征按比例绘制。
应当理解,本文使用的术语仅出于描述特定实施例的目的,而并非旨在是限制性的。除非上下文另有明确规定,如本文使用,单数形式“一种/一个(a/an)”和“所述(the)”包含单数和复数指代物,“多个”、“至少一个”和“一或多个”也是如此(例如,多个存储器阵列可以是指一或多个存储器阵列),而“多个”旨在是指多于一个这种事物。此外,在整个本申请中,词语“可以/可能(can/may)”以许可性的意义(即,有可能、能够)而非强制性的意义(即,必须)使用。术语“包含”及其派生词是指“包含但不限于”。术语“耦合(coupled/coupling)”是指物理上直接或间接地连接以访问和/或移动(传输)指令(例如,控制信号、地址信号等)和数据(视上下文而定)。
尽管本文已经示出并描述了包含能量源、主机、存储器装置、控制器、存储器阵列、MLC、令牌、令牌组件、指示符、文件寄存器以及与指示数据存储到存储器的完成的令牌相关的其它材料和/或组件的各种组合和配置的示范性实施例,但是本公开的实施例不限于本文明确叙述的那些组合。除本文公开的那些之外的与指示数据存储到存储器的完成的令牌相关的能量源、主机、存储器装置、控制器、存储器阵列、MLC、令牌、令牌组件、指示符和/或文件寄存器的其它组合和配置明确地包含在本公开的范围内。
尽管本文已经示出并描述了具体实施例,但是本领域普通技术人员将理解,被计算成实现相同结果的布置可以取代所示出的具体实施例。本公开旨在涵盖本公开的一或多个实施例的改编或变型。应当理解,以上描述是以说明性方式进行的,而不是限制性的。通过阅读以上描述,以上实施例的组合以及本文中未具体描述的其它实施例对于本领域技术人员将是显而易见的。本公开的一或多个实施例的范围包含使用上述结构和过程的其它应用。因此,本公开的一或多个实施例的范围应参考所附权利要求以及这些权利要求所享有的全部范围的等同来确定。
在前述具体实施方式中,出于简化本公开的目的,在单个实施例中将一些特征分组在一起。本公开的这种方法不应被解释为反映了以下意图:本公开的公开实施例必须使用比每项权利要求中明确记载的特征更多的特征。相反,如以下权利要求所反映,发明主题在于少于单个公开实施例的所有特征。因此,以下权利要求由此并入具体实施方式中,其中每项权利要求独立地作为单独的实施例。
Claims (26)
1.一种存储数据的方法(680),其包括:
响应于从主机(102,502)接收第一命令(564-1)而由存储器单元(328-1……328-N)阵列(220,325,340)的第一行(326-1)中的第一页(569-1,569-2)存储多个数据值,其中所述第一命令与开放交易令牌(456,556-1)相关联;
从所述主机接收第二命令(564-5),以由所述第一行中的第二页(569-5,569-6)存储多个数据值;和
向所述主机发送安全令牌(458,558-1),以指示所述第一行中的所述第二页对所述多个数据值的存储的完成。
2.根据权利要求1所述的方法,其中所述方法进一步包括:
响应于接收指示所述第二页对所述多个数据值的存储的所述完成的所述安全令牌而取消所述开放交易令牌;和
有条件地响应于将所述开放交易令牌与所接收的安全令牌匹配而记录所述第一行中的所述第一和第二页对所述多个数据值的存储的所述完成。
3.根据权利要求1所述的方法,其中所述方法进一步包括:基于所述开放交易令牌与所接收的安全令牌的不匹配,检测供应给所述阵列的能量的中断。
4.根据权利要求1所述的方法,其中所述方法进一步包括:基于所述开放交易令牌与所接收的安全令牌的不匹配的确定,延迟向包括所述存储器单元阵列的存储器装置发送用于存储数据值的命令。
5.根据权利要求4所述的方法,其中由于用于存储数据值的所述命令的所述发送被延迟,所述存储器装置不包含备用数据存储组件。
6.根据权利要求1到5中任一权利要求所述的方法,其中所述方法进一步包括:所述安全令牌指示,相对于数据值未由所述第二页存储,由所述第一页存储的所述数据值的意外修改的概率由于供应给所述阵列的能量的中断而降低。
7.一种数据存储设备,其包括:
多层存储器单元(342)阵列(220,325,340),其中所述相应单元各自被配置成存储与第一行(326-1)中的相应多个下页(343,344,345,569-5……569-8)相对应的多个数据值,并且存储与第一行(326-1)中的上页(346,569-1……569-4)相对应的数据值;和
耦合到所述阵列的控制器(108),其中所述控制器被配置成:
响应于接收包含待由所述上页存储的多个数据值的第一命令(564-1)而引导所述第一行中的所述上页的编程,其中所述第一命令与第一开放交易令牌(456,556-1)相关联;
响应于接收包含待由所述第一行中的所述多个下页中的特定下页存储的多个数据值的第二命令(564-5)而引导所述特定下页的编程;和
输出安全令牌(458,558-1),以指示所述第一行中的所述多个下页中的所述特定下页的编程的完成。
8.根据权利要求7所述的设备,其中:
响应于主机(102,502)接收所述安全令牌:
确认所述第一行中的所述下页中的所述特定下页的所述编程的所述完成;和
取消所述第一开放交易令牌。
9.根据权利要求7所述的设备,其中所述安全令牌进一步指示,在完成所述下页中的所述特定下页的所述编程之前,完成了所述第一行中的所述上页的所述编程。
10.根据权利要求7所述的设备,其中所述安全令牌进一步指示,相对于所述下页中的所述特定下页保持未编程,所述上页中编程的数据值的意外修改的概率由于完成了所述数据值在所述第一行中的所述下页中的所述特定下页中的编程而降低。
11.根据权利要求7所述的设备,其中:
在所述上页的所述编程之后,响应于所述下页中的所述特定下页因供应给包括所述阵列的存储器装置的能量的中断而没有保持未编程:
输出所述安全令牌,以指示在完成所述下页中的所述特定下页的所述编程之前尚未发生所述能量中断。
12.根据权利要求7所述的设备,其中:
所述第一命令之后是第三命令(564-2),以引导第二行(569-1)中的上页的编程,其中所述第一命令和所述第三命令与第二开放交易令牌(556-2)相关联;和
所述控制器进一步被配置成响应于所述第一行中的所述上页和所述第二行中的所述上页的所述编程的完成而输出指示符(571)。
13.根据权利要求12所述的设备,其中:
所述第三命令之后是第四命令(564-6),以引导所述第二行中的多个下页中的特定下页的编程;和
所述控制器进一步被配置成输出所述安全令牌,以指示所述第一行中的所述多个下页中的所述特定下页的编程和所述第二行中的所述多个下页中的所述特定下页的编程的完成;
其中所述安全令牌取消了所述第二开放交易令牌,并且指示所述第一和第二行中的所述下页中的所述特定下页的所述编程已完成,并且所述第一和第二行的所述上页中编程的数据值具有降低的意外修改概率。
14.根据权利要求7到13中任一权利要求所述的设备,其中所述控制器进一步被配置成延迟适用于特定命令的完成的所述安全令牌的输出,直到完成了多个另外的命令,使得所述安全令牌指示与所述特定命令和所述另外的命令相关联的编程的完成。
15.根据权利要求7到13中任一权利要求所述的设备,其中所述阵列是以行布置的非易失性多层存储器单元的NAND阵列。
16.一种存储数据的系统,其包括:
主机(102,502),其被配置成生成用于存储数据值的命令(564-1……564-8);和
耦合到所述主机的存储器装置(104),其中所述存储器装置包括:
存储器单元(328-1,……,328-N)阵列(220,325,340),其中所述相应单元各自被配置成存储与特定行的第一页(569-1,569-2)相对应的数据值,并且存储与特定行的第二页(569-5,569-6)相对应的数据值;和
耦合到所述阵列的控制器(108),其中所述控制器被配置成:
响应于从所述主机接收包含待由所述第一页存储的多个数据值的第一命令(564-1)而引导第一行(326-1)中的所述第一页的编程,其中所述第一命令与第一开放交易令牌(456,556-1)相关联;
响应于从所述主机接收包含待由所述第二页存储的多个数据值的第二命令(564-5)而引导所述第一行中的第二页(569-5,569-6)的编程;和
向所述主机发送安全令牌(458,558-1),以指示所述第一行中的所述第二页的编程的完成,其中所述安全令牌与由所述第一页和所述第二页存储的所述数据值中的每一个的逻辑位置的指示符(571)相关联;
其中发送给所述主机的所述安全令牌取消了所述第一开放交易令牌,并且指示所述第一行中的所述第二页的所述编程已完成。
17.根据权利要求16所述的系统,其中所述第一行中的存储器单元的总数对应于待由所述第一页和所述第二页中的每一个存储的数据值的相应数量。
18.根据权利要求16所述的系统,其中与编程所述阵列的相对应数量的行的至少多个第一页的命令相关联,开放交易令牌(456,556-1)来源于所述主机。
19.根据权利要求16所述的系统,其中:
由所述控制器向所述主机发送所述指示符,以指示编程所述相对应数量的行的至少所述多个第一页的所述第一命令的完成;和
所述指示符验证由所述主机存储的与所述第一开放交易令牌相对应的关闭交易令牌(457,557-1,557-2)。
20.根据权利要求16所述的系统,其中由所述控制器向所述主机所述安全令牌,以指示编程与由所述第一开放交易令牌和关闭交易令牌封装的所述多个第一页相关联的多个第二页的所述第二命令的完成。
21.根据权利要求16到20中任一权利要求所述的系统,其中所述主机的文件寄存器(111)响应于接收所述安全令牌而存储由所述第一页和所述第二页存储的所述数据值的所述逻辑位置的所述指示符。
22.根据权利要求21所述的系统,其中所述第一页中的所述数据值中的每一个的所述逻辑位置的所述指示符由所述文件寄存器存储指示,所述第一页中的所述数据值的意外修改的概率由于供应给所述存储器装置的能量的中断而降低。
23.根据权利要求16到20中任一权利要求所述的系统,其中:
接收所述安全令牌向所述主机指示:
所述数据值已经由与所述第一页和所述第二页相对应的非易失性存储器单元存储;和
所存储的数据值由于供应给所述存储器装置的能量的中断而被保护免于意外修改。
24.根据权利要求16到20中任一权利要求所述的系统,其中:
未接收所述安全令牌向所述主机指示:
所述数据值尚未由所述存储器单元的至少所述第二页存储;和
没有向所述存储器装置发送另外的用于存储数据值的命令。
25.根据权利要求24所述的系统,其中所述主机进一步被配置成延迟向所述存储器装置发送用于存储数据值的所述命令,直到供应给所述存储器装置的能量恢复。
26.根据权利要求16到20中任一权利要求所述的系统,其中:
所述第一命令之后是第三命令(564-2),以引导第二行(569-1)中的第一页的编程,其中所述第一命令和所述第三命令与第二开放交易令牌(556-2)相关联;
所述第三命令之后是第四命令(564-6),以引导所述第二行中的第二页的编程;
所述控制器进一步被配置成向所述主机发送所述安全令牌,以指示所述第一行中的所述第二页的编程和所述第二行中的所述第二页的编程的完成;和
响应于所述主机接收所述安全令牌:
取消所述第二开放交易令牌;和
所述主机的文件寄存器存储由所述相应第一和第二行中的每一行中的所述第一页和所述第二页存储的所述数据值的逻辑位置的指示符。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/653,338 | 2019-10-15 | ||
US16/653,338 US11151041B2 (en) | 2019-10-15 | 2019-10-15 | Tokens to indicate completion of data storage |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112668062A true CN112668062A (zh) | 2021-04-16 |
Family
ID=75382966
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011104668.2A Pending CN112668062A (zh) | 2019-10-15 | 2020-10-15 | 指示数据存储的完成的令牌 |
Country Status (2)
Country | Link |
---|---|
US (2) | US11151041B2 (zh) |
CN (1) | CN112668062A (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20220011945A1 (en) * | 2019-12-12 | 2022-01-13 | Pure Storage, Inc. | Optimizing dynamic power loss protection adjustment in a storage system |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101622594A (zh) * | 2006-12-06 | 2010-01-06 | 弗森多系统公司(dba弗森-艾奥) | 使用空数据令牌指令管理来自于请求设备的数据的装置、系统和方法 |
US20120059983A1 (en) * | 2010-09-03 | 2012-03-08 | David Wilkins Nellans | Predictor-based management of dram row-buffers |
CN105373416A (zh) * | 2014-08-19 | 2016-03-02 | 三星电子株式会社 | 存储器控制器、存储装置、服务器虚拟化系统及其方法 |
US20160307609A1 (en) * | 2011-07-27 | 2016-10-20 | Rambus Inc. | Memory with deferred fractional row activation |
US20170011084A1 (en) * | 2014-08-21 | 2017-01-12 | Dropbox, Inc. | Multi-User Search System Using Tokens |
CN106936800A (zh) * | 2015-12-31 | 2017-07-07 | 金雅拓股份有限公司 | 监测应用的下载数量的方法和装置 |
CN108268386A (zh) * | 2016-12-30 | 2018-07-10 | 英特尔公司 | 加速硬件中的存储器排序 |
CN108540459A (zh) * | 2018-03-22 | 2018-09-14 | 北京京东尚科信息技术有限公司 | 数据储存方法、装置、系统、电子设备及计算机可读介质 |
CN109726140A (zh) * | 2017-10-27 | 2019-05-07 | 三星电子株式会社 | 非易失性存储器件及其操作方法以及存储设备 |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3982141A (en) | 1974-10-07 | 1976-09-21 | Bell Telephone Laboratories, Incorporated | Voltage maintenance apparatus |
US4335447A (en) | 1980-02-05 | 1982-06-15 | Sangamo Weston, Inc. | Power outage recovery method and apparatus for demand recorder with solid state memory |
US5619671A (en) * | 1993-04-19 | 1997-04-08 | International Business Machines Corporation | Method and apparatus for providing token controlled access to protected pages of memory |
US6470345B1 (en) * | 2000-01-04 | 2002-10-22 | International Business Machines Corporation | Replacement of substrings in file/directory pathnames with numeric tokens |
TW200828273A (en) | 2006-12-28 | 2008-07-01 | Genesys Logic Inc | Hard disk cache device and method |
US7958432B2 (en) | 2007-04-11 | 2011-06-07 | International Business Machines Corporation | Verification of non volatile storage storing preserved unneeded data |
KR101598828B1 (ko) * | 2008-12-22 | 2016-03-02 | 삼성전자주식회사 | 메모리 장치의 페이지 오픈 시간 조절 방법 및 이를 이용한메모리 시스템 |
US8201009B2 (en) | 2009-07-14 | 2012-06-12 | T-Win Systems, Inc. | Computer management and power backup system and device |
US9354685B2 (en) | 2013-03-14 | 2016-05-31 | Comcast Cable Communications, Llc | Communication and control for powered devices |
US9830257B1 (en) * | 2013-06-12 | 2017-11-28 | Western Digital Technologies, Inc. | Fast saving of data during power interruption in data storage systems |
US9728241B2 (en) | 2015-04-30 | 2017-08-08 | University Of South Florida | Non-volatile flip-flop with enhanced-scan capability to sustain sudden power failure |
US20160372160A1 (en) * | 2015-06-16 | 2016-12-22 | Sandisk Technologies Inc. | Memory System and method for power management |
US20170097771A1 (en) * | 2015-10-01 | 2017-04-06 | Netapp, Inc. | Transaction log layout for efficient reclamation and recovery |
US11334288B2 (en) * | 2016-09-27 | 2022-05-17 | Integrated Silicon Solution, (Cayman) Inc. | MRAM access coordination systems and methods with a plurality of pipelines |
US20190122209A1 (en) * | 2016-11-15 | 2019-04-25 | Paypal, Inc. | Interoperable Token Issuance and Use in Transaction Processing |
US10289551B2 (en) * | 2017-05-11 | 2019-05-14 | Western Digital Technologies, Inc. | Preserving data upon a power shutdown |
US10621091B2 (en) * | 2018-05-04 | 2020-04-14 | Micron Technology, Inc. | Apparatuses and methods to perform continuous read operations |
US10853073B2 (en) * | 2018-06-30 | 2020-12-01 | Intel Corporation | Apparatuses, methods, and systems for conditional operations in a configurable spatial accelerator |
-
2019
- 2019-10-15 US US16/653,338 patent/US11151041B2/en active Active
-
2020
- 2020-10-15 CN CN202011104668.2A patent/CN112668062A/zh active Pending
-
2021
- 2021-10-08 US US17/497,596 patent/US11809324B2/en active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101622594A (zh) * | 2006-12-06 | 2010-01-06 | 弗森多系统公司(dba弗森-艾奥) | 使用空数据令牌指令管理来自于请求设备的数据的装置、系统和方法 |
US20120059983A1 (en) * | 2010-09-03 | 2012-03-08 | David Wilkins Nellans | Predictor-based management of dram row-buffers |
US20160307609A1 (en) * | 2011-07-27 | 2016-10-20 | Rambus Inc. | Memory with deferred fractional row activation |
CN105373416A (zh) * | 2014-08-19 | 2016-03-02 | 三星电子株式会社 | 存储器控制器、存储装置、服务器虚拟化系统及其方法 |
US20170011084A1 (en) * | 2014-08-21 | 2017-01-12 | Dropbox, Inc. | Multi-User Search System Using Tokens |
CN106936800A (zh) * | 2015-12-31 | 2017-07-07 | 金雅拓股份有限公司 | 监测应用的下载数量的方法和装置 |
CN108268386A (zh) * | 2016-12-30 | 2018-07-10 | 英特尔公司 | 加速硬件中的存储器排序 |
CN109726140A (zh) * | 2017-10-27 | 2019-05-07 | 三星电子株式会社 | 非易失性存储器件及其操作方法以及存储设备 |
CN108540459A (zh) * | 2018-03-22 | 2018-09-14 | 北京京东尚科信息技术有限公司 | 数据储存方法、装置、系统、电子设备及计算机可读介质 |
Non-Patent Citations (2)
Title |
---|
何明 等: "物联网环境下云数据存储安全及隐私保护策略研究", 《计算机科学》, vol. 39, no. 05, 15 May 2012 (2012-05-15), pages 62 - 65 * |
兰初军: "多核DSP中并发共享存储与快速DMA结构设计与实现", 《中国优秀硕士学位论文全文数据库 信息科技辑》, no. 03, 15 March 2016 (2016-03-15), pages 137 - 226 * |
Also Published As
Publication number | Publication date |
---|---|
US11809324B2 (en) | 2023-11-07 |
US11151041B2 (en) | 2021-10-19 |
US20210109858A1 (en) | 2021-04-15 |
US20220027277A1 (en) | 2022-01-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10303370B2 (en) | Flash memory system | |
US11586679B2 (en) | Proactive corrective actions in memory based on a probabilistic data structure | |
US9552888B2 (en) | Methods, devices, and systems for data sensing | |
US9367417B2 (en) | Nonvolatile memory device including dummy wordline, memory system, and method of operating memory system | |
US8607120B2 (en) | Semiconductor memory device for performing additional ECC correction according to cell pattern and electronic system including the same | |
KR100902008B1 (ko) | 메모리 셀에 멀티 비트 데이터를 저장하는 플래시 메모리를 포함한 메모리 시스템 | |
US8611150B2 (en) | Flash memory device including flag cells and method of programming the same | |
US20080313493A1 (en) | Programming error correction code into a solid state memory device with varying bits per cell | |
US8705276B2 (en) | Semiconductor memory device, reading method thereof, and data storage device having the same | |
US20180074896A1 (en) | Memory system | |
US9086982B1 (en) | Adjusting bit reliability information input for decoding stored data | |
JP2010530595A (ja) | セル当たりのビットの変更を用いたメモリのプログラミング | |
KR20140031556A (ko) | 플래시 메모리를 포함하는 플래시 메모리 시스템 및 그것의 비정상 워드 라인 검출 방법 | |
CN110970074B (zh) | 存储器系统及其操作方法 | |
CN110942795A (zh) | 存储器系统、其操作方法以及非易失性存储器装置 | |
US11809324B2 (en) | Tokens to indicate completion of data storage | |
US10084487B2 (en) | Apparatuses and methods for erasure-assisted ECC decoding | |
CN115376573A (zh) | 存储器设备及其操作方法 | |
US20240069748A1 (en) | Reducing bit error rate in memory devices | |
US20230031193A1 (en) | Memory system and operating method thereof | |
JP2023076806A (ja) | 半導体装置内の信号干渉を減らすための装置及び方法 |
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 |