CN113496744A - 用于存储器装置的元数据感知回拷 - Google Patents
用于存储器装置的元数据感知回拷 Download PDFInfo
- Publication number
- CN113496744A CN113496744A CN202110357854.5A CN202110357854A CN113496744A CN 113496744 A CN113496744 A CN 113496744A CN 202110357854 A CN202110357854 A CN 202110357854A CN 113496744 A CN113496744 A CN 113496744A
- Authority
- CN
- China
- Prior art keywords
- metadata
- memory
- encoded
- data
- host data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- 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/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/3404—Convergence or correction of memory cell threshold voltages; Repair or recovery of overerased or overprogrammed cells
-
- 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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1012—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1012—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
- G06F11/1032—Simple parity
-
- 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/0804—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
-
- 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/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0817—Cache consistency protocols using directory methods
- G06F12/0822—Copy directories
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1408—Protection against unauthorised use of memory or access to memory by using cryptography
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1458—Protection against unauthorised use of memory or access to memory by checking the subject access rights
- G06F12/1466—Key-lock mechanism
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30029—Logical and Boolean instructions, e.g. XOR, NOT
-
- 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/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/3418—Disturbance prevention or evaluation; Refreshing of disturbed memory data
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/02—Detection or location of defective auxiliary circuits, e.g. defective refresh counters
- G11C29/026—Detection or location of defective auxiliary circuits, e.g. defective refresh counters in sense amplifiers
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/38—Response verification devices
- G11C29/42—Response verification devices using error correcting codes [ECC] or parity check
-
- G—PHYSICS
- 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/1016—Performance improvement
- G06F2212/1024—Latency reduction
-
- 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/7205—Cleaning, compaction, garbage collection, erase control
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Quality & Reliability (AREA)
- Read Only Memory (AREA)
Abstract
本申请涉及用于存储器装置的元数据感知回拷。在一些实例中公开提供用于加扰和/或更新元数据的实现高效内部回拷操作的技术的方法、系统、装置及机器可读媒体。在一些实例中,为了更新所述元数据,分离所述元数据及主机数据,且仅将所述元数据发送到控制器以在经修改内部回拷操作期间更新。所述主机数据并不发射到所述控制器。尽管发送所述元数据利用所述存储器裸片与所述控制器之间的通信链路的资源,但其使用比还发射所述主机数据时少得多的资源。
Description
技术领域
实施例涉及存储器装置。一些实施例涉及实现高效内部回拷操作,所述操作用于在存储器装置中的同一存储器裸片内的两个不同位置之间复制数据,同时还维持数据随机化且更新经受回拷操作的数据的元数据。
背景技术
用于计算机或其它电子装置的存储器装置可分类为易失性和非易失性存储器。易失性存储器需要电力来维持其数据,且包含随机存取存储器(RAM)、动态随机存取存储器(DRAM)或同步动态随机存取存储器(SDRAM)等等。非易失性存储器可在未供电时保持所存储数据,且包含快闪存储器、只读存储器(ROM)、电可擦除可编程ROM(EEPROM)、静态RAM(SRAM)、可擦除可编程ROM(EPROM)、电阻可变存储器、相变存储器、存储级存储器、电阻式随机存取存储器(RRAM)和磁阻随机存取存储器(MRAM)等。
快闪存储器用作广泛范围的电子应用的非易失性存储器。快闪存储器装置通常包含允许高存储器密度、高可靠性和低功耗的例如浮动栅极或电荷阱存储器单元等晶体管的一或多个群组。
发明内容
本公开的方面提供一种用于在存储器装置中执行回拷操作的方法,其中所述方法包括:在所述存储器装置的存储器控制器处:经由所述存储器装置的内部通信接口且响应于回拷操作的发起而从存储器裸片接收经编码元数据,其中对应于所述元数据的主机数据并不通过所述存储器裸片经由所述内部通信接口发送;对所述经编码元数据进行解码以产生经解码元数据;使用密钥值对所述经解码元数据进行解扰以产生经解扰元数据,所述密钥值存储为所述经解码元数据的部分;更新所述经解扰元数据以产生经更新元数据;运用所述密钥值对所述经更新元数据进行加扰以产生加扰的经更新元数据;对所述加扰的经更新元数据进行编码以产生经编码的经更新元数据;及将所述经编码的经更新元数据发送到所述存储器裸片,所述经编码的经更新元数据与经编码主机数据组合且写入到所述存储器裸片上的新位置。
本公开的另一方面提供一种存储器装置,其包括:存储器控制器,其经配置以执行包括以下各项的操作:经由所述存储器装置的内部通信接口且响应于回拷操作的发起而从存储器裸片接收经编码元数据,其中对应于所述元数据的主机数据并不通过所述存储器裸片经由所述内部通信接口发送;对所述经编码元数据进行解码以产生经解码元数据;使用密钥值对所述经解码元数据进行解扰以产生经解扰元数据,所述密钥值存储为所述经解码元数据的部分;更新所述经解扰元数据以产生经更新元数据;运用所述密钥值对所述经更新元数据进行加扰以产生加扰的经更新元数据;对所述加扰的经更新元数据进行编码以产生经编码的经更新元数据;及将所述经编码的经更新元数据发送到所述存储器裸片,所述经编码的经更新元数据与经编码主机数据组合且写入到所述存储器裸片上的新位置。
本公开的另一方面提供一种存储指令的非暂时性机器可读媒体,所述指令在由存储器装置执行时使所述存储器装置执行包括以下各项的操作:经由所述存储器装置的内部通信接口且响应于回拷操作的发起而从存储器裸片接收经编码元数据,其中对应于所述元数据的主机数据并不通过所述存储器裸片经由所述内部通信接口发送;对所述经编码元数据进行解码以产生经解码元数据;使用密钥值对所述经解码元数据进行解扰以产生经解扰元数据,所述密钥值存储为所述经解码元数据的部分;更新所述经解扰元数据以产生经更新元数据;运用所述密钥值对所述经更新元数据进行加扰以产生加扰的经更新元数据;对所述加扰的经更新元数据进行编码以产生经编码的经更新元数据;及将所述经编码的经更新元数据发送到所述存储器裸片,所述经编码的经更新元数据与经编码主机数据组合且写入到所述存储器裸片上的新位置。
附图说明
在未必按比例绘制的图式中,相同数字可以描述不同视图中的类似组件。具有不同字母后缀的相似编号可表示类似组件的不同例子。图式借助于实例而非限制性地总体上说明本文件中所论述的各种实施例。
图1说明根据本公开的一些实例的例如存储装置的存储器装置的图式。
图2说明根据本公开的一些实例的NAND架构半导体存储器阵列的一部分的实例示意图。
图3说明根据本公开的一些实例的3D NAND架构半导体存储器的实例示意图。
图4说明根据本公开的一些实例的存储器裸片的实例框图。
图5说明根据本公开的一些实例的写入操作的数据流。
图6说明根据本公开的一些实例的读取操作的数据流。
图7说明根据本公开的一些实例的将数据写入到存储器装置的方法的流程图。
图8说明根据本公开的一些实例的从存储器装置读取数据的方法的流程图。
图9说明根据本公开的一些实例的写入操作的数据流,其中单独地对元数据及主机数据进行编码。
图10说明根据本公开的一些实例的具有元数据更新的内部回拷操作的数据流,其中单独地对元数据及主机数据进行编码。
图11说明根据本公开的一些实例的将数据写入到存储器装置的方法的流程图。
图12说明根据本公开的一些实例在内部回拷操作期间将数据写入到存储器装置的方法的流程图。
图13说明根据本公开的一些实例的对存储器装置进行内部回拷操作的方法的流程图。
图14说明上面可执行本文中所论述的技术(例如,方法)中的任何一或多个的实例机器的框图。
具体实施方式
存储器装置通常由经由例如总线的内部通信接口连接到控制器的多个物理存储器裸片构成。存储器装置的某些操作需要将数据从裸片上的一个位置中的单元复制到同一裸片上的另一位置。一个实例为从SLC高速缓存块到TLC/QLC存储块的复制操作。出于性能原因,许多TLC/QLC存储器系统使用SLC块作为写入高速缓存。当这些SLC高速缓存块中的数据需要移动到较慢(但更密集)TLC/QLC块时,需要复制操作。传统方法已经由内部通信接口将数据从裸片传送到控制器以用于处理,且接着经由内部I/O总线返回到裸片以供存储在不同位置中。
为了减少I/O总线业务且降低控制器的利用率,可执行内部回拷操作,其中数据从存储器装置的同一存储器裸片中的一个位置移动到另一位置而无需经由通信接口将数据传送到控制器。使用内部回拷操作节约控制器资源(例如,处理周期及工作存储器)、接口带宽,降低能耗,且在完成操作时具有较低时延。由于存储器裸片并不具有以与控制器相同的方式处理数据的资源,所以内部回拷操作并不以任何计算密集型方式处理数据。通常,内部回拷在无任何修改或处理的情况下复制数据。
在无修改或处理的情况下写入数据可影响存储器装置及所写入数据的可靠性。此处理的缺乏可造成内部回拷操作的问题。虽然可修改个别存储器裸片以执行这些处理步骤,但这将不可接受地增加这些装置的成本及复杂度。
举例来说,随机化器通常在存储器装置中使用,这是因为存储于存储器单元中的数据样式必须符合特定要求以满足可靠性目标。如稍后将描述,NAND快闪存储器单元以网格布置,所述网格具有以行连接存储器单元的字线(WL)及以列连接单元的位线(BL)。NAND存储器装置通常确保存储在每一WL中的位具有大致相等数目的0及1,且存储在每一BL中的位具有大致相等数目的0及1。另外,如果每一存储器单元存储多于1位,例如在MLC/TLC/QLC中,那么每一单元中存在多于两个临限电压状态。在这些实例中,存储器装置确保每一状态中的单元的数目在同一WL内大致相等。通过确保此数据样式分布,其减少了存储错误。
通常通过使用加扰器来满足这些数据样式分布要求。虽然存储器系统无法控制用户可选择写入何种数据样式,但加扰器“加扰”待写入的数据,使得更有可能将平衡数目的0/1编程到媒体。加扰器可实施于控制器中,或实施于存储器裸片自身内。
通过跨字线及位线两者存储平衡数目的一及零来获得增加的可靠性。通常,通过确保适当加扰器接种来满足沿着BL及针对同一WL中的多页的分布要求。出于此目的广泛使用基于物理地址的接种。举例来说,运用通过待写入的传入词语所写入到的页的物理地址接种的随机序列对传入词语进行XOR。当读取数据时,所读取的数据接着再次运用物理地址进行XOR以产生经解扰数据。使用物理页地址作为加扰器种子的部分或全部通常确保即使相同数据样式写入到块中的每一页,被编程到媒体的数据也会跨位线随机化。
基于物理地址的加扰器接种不与内部回拷兼容。如已经论述,内部回拷通常不改变所复制的数据。如果加扰器使用物理页地址来执行加扰(例如,加扰器运用物理页来“接种”),那么在内部回拷操作完成之后,页的物理地址将发生变化。如果数据的当前物理地址(例如,在内部回拷之后的物理地址)用于解扰数据而不是原始物理地址,那么在读取操作期间对数据进行解扰的尝试将失效。虽然存储器装置可提供出于解码目的跟踪数据的原始物理页的机制,但就存储这类数据所需的存储器来说这可能过于昂贵。
内部回拷操作的另一问题为更新在数据首先写入时产生的元数据。此元数据与从主机接收到的数据(主机数据)一起写入。元数据可为在写入操作时特定针对存储器装置的条件的数据。举例来说,写入数据的时间、存储器装置在初始写入期间的温度、写入电压、初始写入验证指示符等。这些字段允许存储器装置更可靠地读取主机数据。由于内部回拷操作并不对数据进行解码及解扰,所以其无法更新此元数据。未能更新元数据可导致稍后的可靠性和/或性能问题(例如,在稍后试图读取数据时)。虽然存储器裸片可解码元数据,更新值,且恢复数据,但这将需要存储器裸片上的额外处理及易失性存储器资源。此增加每一存储器裸片的费用及复杂度。
在一些实例中公开提供用于加扰和/或更新元数据的实现高效内部回拷操作的技术的方法、系统、装置及机器可读媒体。在一些实例中,改进的数据分布技术将加扰密钥从物理地址解耦以允许回拷操作,同时维持跨存储器装置的数据分发要求。控制器可产生种子值,所述种子值由算法使用以在数据被写入之前对主机数据及元数据进行加扰。接着运用经加扰用户数据及元数据的经编码版本将种子值编码并写入到所述页,所述随机种子在不加扰随机种子的情况下经写入。在读取数据时,因为种子与数据一起存储,所以其可容易地解扰。在一些实例中,种子值为通过随机数产生器产生的随机值。
在一些实例中,为了更新元数据,分离元数据及主机数据,且仅将元数据发送到控制器以在经修改内部回拷操作期间更新。主机数据并不发射到控制器。尽管发送元数据利用存储器裸片与控制器之间的通信链路的资源,但其使用比还发射主机数据时少得多的资源。为了单独地发送主机数据及元数据,元数据及主机数据经加扰及编码以使得元数据可在不存在主机数据的情况下单独地解扰及解码。举例来说,通过单独地对主机数据及元数据进行编码和/或加扰。
通过采用以上技术,可避免内部回拷操作的各种问题。第一,由于物理地址并不用作加扰器的密钥,所以可在不从一个存储器位置到另一存储器位置进行修改的情况下复制主机数据及元数据。因此,可保留通过加扰数据而实现的数据可靠性增益,同时允许对经受内部回拷操作的数据的解扰。第二,由于元数据及主机数据经加扰及编码以使得其可单独地解扰及解码,所以元数据可在内部回拷完成之前发送回到控制器以用于更新。此更新元数据,同时使用控制器的通信及处理资源的极小部分及存储器裸片与控制器之间的接口带宽。
存储器装置概览
如前文所述,快闪存储器用作广范围的电子应用的非易失性存储器。快闪存储器通常包含允许高存储器密度、高可靠性和低功耗的例如浮动栅极或电荷阱存储器单元等晶体管的一或多个群组。两种常见类型的快闪存储器阵列架构包含NAND和NOR架构,所述架构以每一者的基本存储器单元配置所布置的逻辑形式来命名。存储器阵列的存储器单元通常布置成矩阵。在实例中,阵列的一行中的每一存储器单元的栅极耦合到存取线(例如,字线)。在NOR架构中,阵列的一列中的每一存储器单元的漏极耦合到数据线(例如,位线)。在NAND架构中,阵列的串中的每一存储器单元的漏极以源极到漏极方式一起串联耦合在源极线与位线之间。
NOR及NAND架构半导体存储器阵列均通过解码器来存取,所述解码器通过选择耦合到特定存储器单元的栅极的字线来激活特定存储器单元。在NOR架构半导体存储器阵列中,一旦被激活,选定存储器单元便使其数据值置于位线上,从而取决于特定单元经编程的状态而使不同电流流动。在NAND架构半导体存储器阵列中,将高偏压电压施加于漏极侧选择栅极(SGD)线。以指定传递电压(例如,Vpass)驱动耦合到每个群组的未经选择的存储器单元的栅极的字线,以使每个群组的未经选择的存储器单元作为传递晶体管操作(例如,以不受其所存储的数据值限制的方式传递电流)。电流随后从源极线通过每一串联耦合的群组流动到位线,仅受每一群组中的选定存储器单元限制,从而将选定存储器单元的当前经编码数据值置于位线上。
NOR或NAND架构半导体存储器阵列中的快闪存储器单元可个别地或共同地编程到一个或若干编程状态。举例来说,单层级单元(SLC)可表示两个编程状态(例如,1或0)中的一个,从而表示一位数据。然而,快闪存储器单元还可表示多于两个经编程状态中的一个,从而允许在不增大存储器单元数目的情况下制造较高密度的存储器,因为每个单元可表示多于一个二进制数字(例如,多于一个位)。这类单元可称为多状态存储器单元、多数字单元或多层级单元(MLC)。在某些实例中,MLC可指每单元可存储两位数据(例如,四个经编程状态中的一个)的存储器单元,三层级单元(TLC)可指每单元可存储三位数据(例如,八个经编程状态中的一个)的存储器单元,且四层级单元(QLC)每单元可存储四位数据。MLC在本文中以其较广泛情形使用,可指每单元可存储多于一位数据(即,可表示多于两个经编程状态)的任何存储器单元。
传统存储器阵列是布置于半导体衬底的表面上的二维(two-dimensional;2D)结构。为了针对给定面积增大存储器容量且降低成本,已减小个别存储器单元的大小。然而,个别存储器单元大小的减小存在技术限制,因此2D存储器阵列的存储器密度也存在技术限制。作为响应,正开发三维(3D)存储器结构,如3D NAND架构半导体存储器装置,以进一步增大存储器密度且降低存储器成本。
这些3D NAND装置经常包含存储单元串,其串联(例如,漏极到源极)耦合于接近源极的一或多个源极侧选择栅极(SGS)与接近位线的一或多个漏极侧选择栅极(SGD)之间。在实例中,SGS或SGD可包含一或多个场效应晶体管(FET)或金属氧化物半导体(MOS)结构装置等。在一些实例中,所述串将竖直地延伸通过含有相应字线的多个竖直地间隔开的层次。半导体结构(例如,多晶硅结构)可邻近于存储单元串而延伸以形成用于所述串的存储单元的沟道。在竖直串的实例中,多晶硅结构可呈竖直延伸柱的形式。在一些实例中,串可“折叠”,且因此相对于U形柱而布置。在其它实例中,多个竖直结构可堆叠于彼此之上以形成存储单元串的堆叠阵列。
存储器阵列或装置可组合在一起以形成例如固态驱动器(SSD)等存储器系统或各种形式的受管理存储器装置中的一个的存储卷。可以根据公认的行业标准来配置和操作受管理存储器装置。举例来说,受管理NAND装置可为(作为非限制性实例)通用快闪存储(UFSTM)装置或嵌入式MMC装置(eMMCTM)等。举例来说,在以上实例的情况下,可以根据标题为“JEDEC UFS快闪存储装置3.0(JEDEC UFS Flash Storage 3.0)”的联合电子装置工程委员会(JEDEC)标准(例如,JEDEC标准JESD223D)和/或对此类标准的更新或后续版本来配置UFS装置。类似地,可以根据标题为“JEDEC eMMC标准5.1(JEDEC eMMC standard 5.1)”的JEDEC标准JESD84-A51(同样,和/或此类标准的更新或后续版本)配置所识别的eMMC装置。
SSD尤其可用作计算机的主存储装置,其在例如性能、大小、重量、强度、操作温度范围和电力消耗方面具有优于具有移动部件的传统硬盘驱动器的优点。举例来说,SSD可具有减少的寻道时间、时延或与磁盘驱动器相关联的其它延迟(例如,机电等)。SSD使用例如快闪存储器单元等非易失性存储器单元来避免内部电池电源要求,因此允许驱动器更为多功能且紧凑。
SSD可包含若干存储器装置,包含若干裸片或逻辑单元(例如,逻辑单元数字或LUN),且可包含执行操作存储器装置或与外部系统介接所需的逻辑功能的一或多个处理器或其它控制器。这类SSD可包含一或多个快闪存储器裸片,其上包含若干存储器阵列及外围电路系统。快闪存储器阵列可包含组织成数个物理页的若干存储器单元块。在许多实例中,SSD还会包含DRAM或SRAM(或其它形式的存储器裸片或其它存储器结构)。SSD可结合存储器操作从主机接收命令,所述存储器操作例如在存储器装置与主机之间传送数据(例如,用户数据和相关联的完整性数据,例如误差数据和地址数据等)的读取或写入操作,或从存储器装置擦除数据的擦除操作。
存储器装置包含个别存储器裸片,所述存储器裸片可例如包含存储区,所述存储区包括一或多个存储器单元阵列,从而实施一种(或多种)选定存储技术。这类存储器裸片通常包含用于操作存储器阵列的支持电路系统。有时通常被称为“受管理存储器装置”的其它实例包含与被配置成控制一或多个存储器裸片的操作的控制器功能性相关联的一或多个存储器裸片的组合件。这类控制器功能可以简化与例如“主机”的外部装置的互操作性,如本文稍后所论述。在这类受管理存储器装置中,控制器功能可以在也合并了存储器阵列的一或多个裸片上或在单独的裸片上实施。在其它实例中,一或多个存储器装置可以与控制器功能组合以形成固态驱动器(SSD)存储卷。术语“存储器系统”在本文中使用为包含一或多个存储器裸片以及用于这类存储器裸片的任何控制器功能(当存在时);且因此,包含个别存储器装置、受管理存储器装置和SSD。
出于当前描述的目的,实例实施例包含实施NAND快闪存储器单元的受管理存储器装置,被称为“受管理NAND”装置。这类受管理NAND装置可大体上根据所描述的JEDEC UFS快闪存储装置3.0规范来构造和操作,可按需要修改以并入有本文中所描述的结构和功能性。然而,所描述功能性可利用如上文所描述的可并入有其它存储技术的其它类型的存储器装置来实施,其若干非限制性实例在本文中早先论述;且可经配置以用于根据如上文所论述的其它工业标准操作;或根据非工业标准协议操作。
例如移动电子装置(例如,智能电话、平板计算机等)、用于汽车应用的电子装置(例如,汽车传感器、控制单元、驾驶员辅助系统、乘客安全或舒适系统等)和因特网连接的电器设备或装置(例如,物联网(IoT)装置等)的电子装置尤其取决于电子装置的类型、使用环境、性能期望等而具有变化的存储需要。
电子装置可分解为若干主要组件:处理器(例如,中央处理单元(CPU)或其它主处理器);存储器(例如,一或多个易失性或非易失性随机存取存储器(RAM)存储器装置,例如动态RAM(DRAM)、移动或低功率双数据速率同步DRAM(DDR SDRAM)等);及存储装置(例如,非易失性存储器(NVM)装置,例如快闪存储器、只读存储器(ROM)、SSD、MMC或其它存储卡结构或组合件等)。在某些实例中,电子装置可包含用户接口(例如,显示器、触摸屏、键盘、一或多个按钮等)、图形处理单元(GPU)、电力管理电路、基带处理器或者一或多个收发器电路等。
图1说明根据本公开的一些实例的例如存储装置的存储器装置100的图式。存储器装置100可包含一或多个主机接口123,其可利用一或多个协议,例如串行高级技术附件(SATA)接口、外围组件互连高速(PCIe)接口、通用串行总线(USB)接口、通用快闪存储(UFS)接口、eMMCTM接口,或者与主机装置135通信的一或多个其它连接器或接口。主机135可经由主机接口123将例如读取注释、写入命令、擦除命令等一或多个命令发送到存储器装置100。主机接口123可以是控制器105的一部分或可由单独的电路系统实施。
存储器装置100可包含一或多个控制器105。控制器105可包含处理电路系统110,其可包含一或多个处理器115。处理器115可以是通用硬件处理器,其执行固件或其它软件指令以用于执行存储器装置的操作,包含实施主机接口123和存储器裸片接口125。在其它实例中,处理器115可以是专用硬件处理器,其经特别设计以经由硬件逻辑和/或经由软件指令的执行来执行存储器装置100的操作。处理电路系统110还可包含逻辑电路和其它电路组件,其被配置成执行各种控制功能性和存储器管理操作或其部分,其实例在下文描述。
在所描绘的实例中,存储器装置100包含经由主机总线137提供到外部主机装置135的通信的主机接口123。取决于存储器装置100(其也可被称为“存储器系统”)的特定配置,主机接口123的配置可具有各种形式。举例来说,在其中存储器装置100为UFS装置的实例中,主机接口将根据可适用的UFS标准。
存储器装置100还并入有控制器105的处理电路系统110与存储器装置100内的存储器裸片130-A到130N+1的至少某一部分之间的一或多个存储器裸片接口125。存储器裸片接口125可以是控制器105的一部分或可由单独的电路系统实施。举例来说,在UFS装置的实例中,存储器裸片接口125中的一或多个将是合适的存储器接口,例如,比如由ONFI 4.0规范或其稍后版本或修正限定的开放式NAND快闪接口(“ONFI”)。
存储器装置100的组件,例如控制器105,可包含用于执行存储器装置100的操作的随机存取存储器120。随机存取存储器120可与控制器105分离,或如所展示,可集成在控制器105中。在一些实例中,可能存在在控制器105中且与控制器105分离的随机存取存储器120。
控制器105可通过与作为一或多个存储器裸片130-A到130N+1的一部分的存储器装置的存储器单元交互来处理存储器的一或多个功能。图4中展示存储器裸片130的实例实施方案的示意图。控制器105可跨内部通信接口127(例如I/O总线)通过存储器裸片接口125与这些存储器裸片通信。在一些实例中,存储器裸片可具有其自身的装置控制器,包含处理电路系统和处理器,以控制相应存储器裸片上的操作。这类装置控制器可形成于与装置存储阵列共同的裸片上,或可在与含有装置存储阵列的裸片分离的裸片上。两种配置均由本文中所描述的所识别的“存储器裸片”(130A-N+1)涵盖。存储器裸片可以是NAND裸片、三维NAND裸片、相变存储器裸片等。
主机装置135可以是个人计算机、智能手机、平板计算机、集成电路的一部分、物联网(IoT)装置(例如,冰箱或其它电器、传感器、电机或致动器、移动通信装置、汽车、无人机等)等。
出于当前描述的目的,将在NAND存储器的上下文中描述实例存储器操作和管理功能。本领域的技术人员将认识到,其它形式的非易失性存储器可具有类似的存储器操作或管理功能。这种NAND管理功能包含损耗均衡(例如垃圾收集或回收)、错误检测或校正、块引退或一或多个其它存储器管理功能。
存储器裸片130-A到130-N+1可包含以例如若干平面、子块、块或页布置的若干存储器单元。作为一个实例,48GB TLC NAND存储器装置可包含每页18,592字节(B)的数据(16,384+2208字节)、每块1536页、每平面548个块,及每装置4个或更多个平面。作为另一实例,32GB MLC存储器装置(每单元存储两位数据(即,4个可编程状态))可包含每页18,592字节(B)的数据(16,384+2208字节)、每块1024页、每平面548个块及每装置4个平面,但与对应TLC存储器装置相比所需的写入时间为一半且编程/擦除(P/E)周期为两倍。其它实例可包含其它数目或布置。在一些实例中,存储器装置或其部分可选择性地以SLC模式或以期望的MLC模式(例如TLC、QLC等)操作。
在操作中,数据通常以页写入到存储器装置100或从所述存储器装置读取,且以块擦除。然而,可视需要对存储器单元的更大或更小群组执行一或多个存储器操作(例如,读取、写入、擦除等)。存储器装置100的数据传送大小通常被称作页,而主机的数据传送大小通常被称作扇区。
虽然数据页可包含若干字节的用户数据(例如,包含若干数据扇区的数据的有效负载)及其对应的元数据,但页的大小经常仅指代用以存储用户数据的字节的数目。作为实例,具有4KB的页大小的数据页可包含4KB的用户数据(例如,假定512B的扇区大小的8个扇区)以及对应于用户数据的若干字节(例如32B、54B等)的元数据,例如完整性数据、地址数据(例如,逻辑地址数据等)或与用户数据相关联的其它元数据。
不同类型的存储器单元可提供不同的页大小,或可能需要与其相关联的不同量的元数据。举例来说,不同存储器装置类型可具有不同位错误率,这可导致必需要不同量的元数据来确保数据页的完整性(例如,具有较高位错误率的存储器装置可要求比具有较低位错误率的存储器装置更多字节的错误校正码数据)。举例来说,多层级单元(MLC)NAND快闪装置可具有比对应单层级单元(SLC)NAND快闪装置高的位错误率。由此,相比于对应SLC装置,MLC装置可能需要更多的元数据字节用于错误数据。
图2示出根据本公开的一些实例的NAND架构半导体存储器阵列300的一部分的实例示意图,其包含布置于串(例如,串205-207)和层次(例如,示出为相应字线(WL)WL0-WL7210-217、漏极侧选择栅极(SGD)线225、源极侧选择栅极(SGS)线230等)的二维阵列中的多个存储器单元202,以及感测放大器或装置260。举例来说,存储器阵列200可示出来自图1的存储器裸片130的存储器单元的一个物理页的一部分的实例示意图。
每一存储器单元串使用相应源极侧选择栅极(SGS)(例如,SGS 231-233)耦合到源极线(SRC)235,且使用相应漏极侧选择栅极(SGD)(例如,SGD 226-228)耦合到相应数据线(例如,位线(BL)BL0-BL2 220-222)。尽管在图2的实例中示出为具有8个层次(例如,使用字线(WL)WL0-WL7 210-217)和三个数据线(BL0-BL2 226-228),但其它实例按需要可包含具有更多或更少层次或数据线的存储器单元串。
在例如实例存储器阵列200的NAND架构半导体存储器阵列中,可通过感测与含有选定存储器单元的特定数据线相关联的电流或电压变化来存取选定存储器单元202的状态。可使用一或多个驱动器(例如,通过控制电路、一或多个处理器、数字逻辑等)来存取存储器阵列200。在实例中,取决于将对特定存储器单元或存储器单元组执行的所需操作的类型,一或多个驱动器可通过将特定电势驱动到一或多个数据线(例如,位线BL0-BL2)、存取线(例如,字线WL0-WL7)或选择栅极来激活特定存储器单元或存储器单元组。
为了将数据编程或写入到存储器单元,可将编程电压(Vpgm)(例如,一或多个编程脉冲等)施加到选定字线(例如,WL4),且因此施加到耦合到选定字线的每一存储器单元的控制栅极(例如,耦合到WL4的存储器单元的控制栅极(CG)241-243)。举例来说,编程脉冲可以在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)220-222)中的一或多个的感测放大器260可通过感测特定数据线上的电压或电流来检测相应数据线中的每一存储器单元的状态。
在一或多个编程脉冲(例如Vpgm)的施加之间,可执行验证操作以确定选定存储器单元是否已达到其预期编程状态。如果选定存储器单元已达到其预期的经编程状态,那么可以禁止其进一步编程。如果选定存储器单元尚未达到其预期经编程状态,则可施加额外编程脉冲。如果选定存储器单元在特定数目的编程脉冲(例如,最大数目)之后尚未达到其预期经编程状态,那么可以将选定存储器单元或与这类选定存储器单元相关联的串、块或页标记为有缺陷的。
对于单层级单元(SLC),存在两个编程到单元中的可能的电压电平,一个电压电平表示二进制‘1’,且另一电压电平表示二进制‘0’。对于多层级单元(MLC),存在编程到单元中的四个可能的电压电平。四个可能的电压电平表示‘00’、‘01’、‘10’和‘11’。为了对MLC单元进行编程,施加多个编程脉冲。第一脉冲对表示单元的最高有效位或最低有效位的第一数据“页”进行编程。第二脉冲对表示单元的未由第一脉冲编程的另一位的第二数据“页”进行编程。类似地,三层级单元(TLC)存储八个可能的电压电平,且四层级单元(QLC)存储16个可能的电压电平。
为了读取存储于一或多个存储器单元中的值,将读取电压施加到选定单元的字线。如果存储在字线的单元中的电压大于读取电压,那么单元将电压传递到感测放大器。对于SLC单元,将读取电压选择为在表示‘1’和‘0’的两个电压之间。对于MLC、TLC和QLC,使用多个读取操作来读取存储于单元中的每一位,每一读取操作利用不同的读取电压。
为了擦除存储器单元或存储器单元群组(例如,通常以块或子块执行擦除),擦除电压(Vers)可施加到作为擦除的目标的存储器单元的衬底(且因此源极与漏极之间的沟道)(例如,使用一或多个位线、选择栅极等),同时目标存储器单元的字线保持在例如接地电势(例如,Vss)等电势下,从而导致从目标存储器单元的电荷存储结构到沟道的电荷转移(例如,直接注入或佛勒-诺特海姆隧穿等)。
图3说明包含若干存储器单元串(例如,A0存储器串305A0-307A0、An存储器串305An-307An、B0存储器串305B0-307B0、Bn存储器串305Bn-307Bn等)的3D NAND架构半导体存储器阵列300的实例示意图,所述存储器单元串组织成块(例如,块A 301A、块B 301B等)和子块(例如,子块A0 301A0、子块An 301An、子块B0 301B0、子块Bn 301Bn等)。存储器阵列300表示在存储器装置的块、装置或其它单元中通常将找到的较大数目的相似结构的一部分。
每一存储器单元串包含以源极到漏极的方式在Z方向上堆叠于源极线(SRC)335或源极侧选择栅极(SGS)(例如,A0 SGS 331A0-333A0、An SGS 331An-333An、B0 SGS331B0-333B0、Bn SGS 231Bn-233Bn等)与漏极侧选择栅极(SGD)(例如,A0 SGD326A0-328A0、An SGD326An-328An、B0 SGD 326B0-328B0、Bn SGD 326Bn-328Bn等)之间的电荷存储晶体管(例如,浮动栅极晶体管、电荷捕集结构等)的若干层次。3D存储器阵列中的每一存储器单元串可沿着X方向布置为数据线(例如,位线(BL)BL0-BL2320-322),且沿着Y方向布置为物理页。
在物理页内,每个层次表示一个存储器单元行,并且每个存储器单元串表示一列。子块可以包含一或多个物理页。块可以包含若干子块(或物理页)(例如,128个、256个、384个等)。虽然本文中示出为具有两个块,每一块具有两个子块,每一子块具有单个物理页,每一物理页具有三个存储器单元串,且每一串具有8个层次的存储器单元,但在其它实例中,存储器阵列300可包含更多或更少的块、子块、物理页、存储器单元串、存储器单元或层次。举例来说,每一存储器单元串按需要可包含更多或更少层次(例如,16、32、64、128等),以及电荷存储晶体管(例如,选择栅极、数据线等)上方或下方的半导体材料的一或多个额外层次。作为实例,48GB TLC NAND存储器装置可包含每页18,592字节(B)的数据(16,384+2208字节)、每块1536页、每平面548个块,及每装置4个或更多个平面。
存储器阵列300中的每一存储器单元包含耦合到(例如,电连接或以其它可操作方式连接到)存取线(例如,字线(WL)WL00-WL70 310A-317A、WL01-WL71 310B-317B等)的控制栅极(CG),所述存取线按需要共同地耦合跨特定层次或层次的部分的控制栅极(CG)。可使用相应存取线存取或控制3D存储器阵列中的特定层次,并相应地存取或控制串中的特定存储器单元。可以使用各种选择线来存取选择栅极的群组。举例来说,可使用A0 SGD线SGDA0325A0来存取A0 SGD 326A0-328A0,可使用SGD线SGDAn 325An来存取An SGD 326An-328An,可使用B0 SGD线SGDB0 325B0来存取B0 SGD 326B0-328B0,且可使用Bn SGD线SGDBn 325Bn来存取Bn SGD 326Bn-328Bn。可使用栅极选择线SGS0 330A来存取A0 SGS 331A0-333A0及An SGS331An-333An,且可使用栅极选择线SGS1 330B来存取B0 SGS 331B0-333B0及Bn SGS 331Bn-333Bn。
在实例中,存储器阵列300可包含若干层级的半导体材料(例如,多晶硅等),其经配置以耦合阵列的相应层的每一存储器单元的控制栅极(CG)或选择栅极(或CG或选择栅极的一部分)。可以使用位线(BL)和选择栅极等的组合来存取、选择或控制阵列中的特定存储器单元串,且可使用一或多个存取线(例如,字线)来存取、选择或控制特定串中的一或多个层的特定存储器单元。
图4说明根据本公开的一些实例的存储器裸片400的实例框图,所述存储器裸片400包含具有多个存储器单元404的存储器阵列402,以及用以提供与存储器阵列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可根据利用存储器控制器在存储器接口处(如关于图1的存储器装置100的控制器105和主机接口123所描述)在控制线432上接收的一或多个信号和/或指令/命令控制存储器裸片400的存储器操作。这类信号和/或指令可包含(例如)指示所要操作(例如,写入、读取、擦除等)的一或多个时钟信号和/或控制信号,或者在一或多个地址线416上接收到的地址信号(A0-AX)。在存储器裸片400外部的一或多个装置可控制控制线432上的控制信号或地址线416上的地址信号的值。在存储器裸片400外部的装置的实例可包含(但不限于)主机、存储器控制器、处理器或图4中未说明的一或多个电路或组件。
存储器裸片400可使用存取线406和第一数据线410向(例如,写入或擦除)或从(例如,读取)存储器单元404中的一或多个传送数据。行解码器412及列解码器414可接收及解码来自地址线416的地址信号(A0到AX),可确定待存取哪些存储器单元404,且可将信号提供到例如上文描述的存取线406(如,多个字线(WL0-WLm)中的一或多者)或第一数据线410(例如,多个位线(BL0-BLn)中的一或多者)中的一或多者。
存储器裸片400可包含例如感测放大器420的感测电路系统,其经配置以使用第一数据线410来确定(例如,读取)存储器单元404上的数据的值,或确定待写入到存储器单元404的数据的值。举例来说,在存储器单元404的选定串中,感测放大器420中的一或多个可响应于读取电流在存储器阵列402中穿过选定串流动到数据线410而读取选定存储器单元404中的逻辑电平。
在存储器裸片400外部的一或多个装置(例如,控制器105)可使用I/O线(DQ0-DQN)408、地址线416(A0-AX)或控制线432与存储器裸片400通信。输入/输出(I/O)电路426可根据例如控制线432和地址线416使用I/O线408将数据值传送到存储器裸片400中或从其中传送数据值,例如将数据值传送到页缓冲器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说明根据本公开的一些实例的写入操作的数据流。从主机接收主机数据615以用于写入到存储器装置。元数据610由存储器装置产生,例如由控制器105、存储器裸片130产生,或元数据610的部分可由控制器105及存储器裸片130两者产生。元数据可包含关于主机数据及其存储条件的信息,例如写入温度及其它细节。
主机数据615及元数据610接着输入到加扰器620。加扰器620可以是可使用一或多个种子值将主机数据615及元数据610可逆地变换为不同值的任何算法。举例来说,XOR运算、加密操作(例如,RSA、数据加密标准、三重DES、RSA、Blowfish、高级加密标准(AES)等)等。普通技术人员将了解,多个种子值可例如用于加扰器算法,所述加扰器算法利用多个密钥或用于解扰元数据及主机数据的其它值,或在一些实例中,元数据及主机数据可通过不同种子分裂及加扰。在利用多个种子的实例中,用于解扰数据的每一种子可与经加扰主机数据及元数据一起存储。
种子630可由加扰器使用以产生经加扰元数据和主机数据635。种子630可通过种子产生器625产生。在一些实例中,种子产生器625可以是随机数产生器。种子产生器625可以是硬件随机数产生器、软件随机数产生器等。种子产生器625可以是真随机数产生器或伪随机数产生器。在其它实例中,种子产生器625可以是加密密钥产生器等。种子产生器625可从先前确定的种子值列表进行选择或可产生新种子值(例如,基于硬件逻辑的公式或执行)。可响应于接收到主机数据615而特定地产生每一种子,使得用于第一主机数据的第一种子可与用于稍后接收到的主机数据的第二种子不同。
在一些实例中,种子产生器625可能需要接种。举例来说,如果种子产生器625为伪随机数产生器,那么可初始地、在存储器装置的每一启动时、周期性地等接种种子产生器。可通过当前时间、当前温度、对应于存储器装置或存储器装置的一部分(例如,裸片)的最后写入字的物理地址、即将写入的物理地址等接种种子产生器625。如所提及,种子产生器可具有周期性地刷新(例如,在预定时间段之后)的种子。
写入到存储器装置的每一页可具有针对所述页产生或选择且由加扰器使用以加扰主机数据和/或元数据的种子。在一些实例中,针对元数据及主机数据两者产生单个种子,但在其它实例中,针对元数据及主机数据产生不同种子。在一些实例中,种子630及加扰器620可操作以加扰主机数据及元数据,使得可独立于另一者解扰主机数据及元数据,使得可在不知道主机数据的情况下解扰元数据。
一旦产生及使用种子,将种子附加到加扰元数据及主机数据(如所展示,在经加扰元数据和主机数据之前,但其可在经加扰元数据和主机数据之后)。组合的种子及经加扰元数据和主机数据接着用错误校正译码编码器640编码以产生编程到存储器装置的存储器单元的经编码数据645。
图6说明根据本公开的一些实例的读取操作的数据流。主机将具有逻辑地址的读取请求发送到存储器装置。存储器装置使用逻辑到物理(L2P)表将此转换为物理地址。命令接着发布到对应于所述物理地址的适当存储器裸片。接着通过将适当读取电压施加到存储器单元而读取所述物理地址处的存储器单元。接着用ECC解码器650解码所得经编码数据645。如果ECC解码成功,那么恢复经加扰元数据和主机数据635以及种子630。种子接着由解扰器655使用以将经加扰元数据和主机数据635解扰成原始元数据610及主机数据615。解扰器655可将逆运算应用于由加扰器620执行的运算。举例来说,如果加扰器620应用XOR运算以通过具有种子630的随机序列对元数据610及主机数据615进行XOR;那么解扰器655应用XOR运算且对具有种子及经加扰元数据和主机数据635的随机序列进行XOR以获得经解扰元数据610及主机数据615。
图7说明根据本公开的一些实例的将数据写入到存储器装置的方法700的流程图。在操作710处,存储器装置可接收用以写入到存储器单元的数据。举例来说,主机可指示存储器装置将主机数据写入到存储器装置。通过此指令,主机可提供用以写入到存储器装置的主机数据。
在操作715处,可产生种子值。可响应于待写入的数据的接收而产生种子值(例如,通过与接收到数据的时间同时产生)。种子值可以是整数值。每当存储器装置将新数据写入到存储器单元时,可新产生或选择种子值。特定种子值可与先前产生的种子值不同。在一些实例中,种子值在特定平面、特定裸片、特定存储器装置等内可为唯一的。在其它实例中,种子值可能不是唯一的,但可最终在不同种子值的序列之后重复。种子值可为随机的,或伪随机的。如所提及,种子值可以是随机产生的值、加密密钥等。
在操作720处,可使用种子值加扰待写入的数据。举例来说,在操作710中接收到的数据可与由存储器装置产生的元数据组合且可由使用种子值的加扰算法变换。举例来说,算法可以是XOR算法,且可用种子对数据及元数据进行XOR以产生经加扰值。在其它实例中,可用种子加密数据及元数据。加扰算法可以是采用至少两个输入(数据(例如,组合的主机数据及元数据)及种子值)的任何算法,且产生与数据不同同时还可逆的输出,因为函数可使用种子值将经加扰数据转换为原始数据。在一些实例中,元数据及主机数据可经加扰,使得可在不了解主机数据的情况下解扰元数据。在一些实例中,为了完成此情况,可用相同或不同的种子单独加扰元数据及主机数据。如果用不同种子加扰主机数据及元数据,那么每一种子可与经编码及加扰的元数据及主机数据一起存储(例如,操作730)。
在操作725处,种子值可与经加扰数据(例如,主机数据及元数据)级联且经编码。举例来说,使用错误校正译码(ECC)方案。在操作730处,接着可使此经编码数据写入到存储器装置的裸片(例如,表示为第一裸片)的第一多个存储器单元。举例来说,经编码数据可写入到形成存储器装置的字的一系列存储器单元。如所提及,如果利用多个种子值,那么多个种子值可与主机数据及元数据级联且一起存储。
在操作735处,存储器装置可稍后识别数据待复制到第一裸片的第二多个存储器单元,所述第一多个存储器单元和所述第二多个存储器单元为不同存储器单元。举例来说,第一多个存储器单元可包括SLC高速缓存,且数据可能需要从高速缓存中移动到MLC、TLC或QLC存储装置。在操作740处,可将数据复制到第二多个存储器单元。在一些实例中,数据都不经由存储器装置的内部通信接口传送(例如,到控制器)。在一些实例中,如下文将论述,元数据部分可跨存储器装置的内部通信接口传送(例如,到控制器),在所述内部通信接口中元数据经更新且在内部回拷期间传送返回其与主机数据组合以供存储之处。在这些实例中,不跨存储器装置(例如,控制器)的内部通信接口传送主机数据部分——仅传送元数据。在另外其它实例中,主机数据及元数据两者可经由存储器装置的内部通信接口传送(例如,到控制器)且接着传送返回以存储于第二多个单元中。操作735及740可独立于操作710到730发生。也就是说,操作735到740中所描述的回拷操作可在稍后时间发生,或根本不发生。
图8说明根据本公开的一些实例的从存储器装置读取数据的方法800的流程图。在操作810处,存储器装置可接收读取存储于存储器装置中的数据的请求。举例来说,主机可请求存储于存储器装置的特定逻辑地址中的数据。在操作815处,从指示位置处的存储器装置读取数据。对所读取的数据进行编码。在操作820处,对经编码数据进行解码。经解码数据包含一或多个种子值及经加扰数据(主机数据及元数据)。在操作825处,从经解码数据提取种子值。举例来说,种子值可存储在经加扰数据(例如,主机数据及元数据)之前、之后或邻近于经加扰数据。在操作830处,可通过解扰器用种子值对经加扰数据进行解扰。解扰器可以是将反向变换应用于加扰器的任何算法。接着在操作835处将主机数据发送到主机。在一些实例中,主机数据可在操作835处发送到主机之前经进一步处理。
元数据更新
如先前所描述,传统内部回拷操作并不对数据进行解码及解扰,且因此,并不更新与主机数据相关联的适当元数据。这可造成可靠性问题,因为这些元数据值可用于恰当地读取主机数据。在一些实例中,为了解决此问题,可将元数据与主机数据分离,且可跨内部I/O接口仅发送元数据以由控制器更新。经更新元数据接着经发送回到存储器裸片且与主机数据(其在等待经更新主机数据时可存储于存储器缓冲器中)组合且写入到裸片上的新位置。当发送元数据确实影响内部I/O接口时,所利用的I/O的量通常小于将元数据和主机数据两者发送回到控制器所需的I/O的1%。
在先前方法下,对主机数据和元数据进行加扰并一起编码。如果主机数据不与元数据一起传送,那么控制器无恰当地更新与数据一起存储的ECC信息(例如,ECC奇偶校验位)。这将导致不正确的解码,因为ECC信息是基于主机数据和元数据两者计算的。在一些实例中,为了解决此问题,存储器装置可将单独的ECC过程应用于元数据和主机数据以及存储元数据和主机数据的单独的ECC信息(例如,单独的奇偶校验位)。当元数据经更新及编码时,更新与元数据相关联的奇偶校验位。主机数据ECC信息不受影响且无需更新,因为主机数据不受影响。因此,即使已经修改元数据,也可恰当地对主机数据进行解码。
图9说明根据本公开的一些实例的写入操作的数据流,其中单独地对元数据及主机数据进行编码。将元数据910及主机数据915输入到加扰器920中。种子产生器925产生种子930,所述种子930用于对元数据及主机数据进行加扰以产生经加扰主机数据937。可能需要以允许在不存在经加扰主机数据的情况下对元数据进行解扰的方式加扰元数据和主机数据以允许更新元数据而不同时接收主机数据。
这可通过利用并不在计算经加扰元数据时利用主机数据的加扰算法来实现。举例来说,可通过应用与经加扰数据相同的XOR值来反转XOR运算,所述XOR运算以逐位方式对具有种子及数据的随机序列进行XOR。在这些实例中,即使元数据与主机数据分离,解扰仍将工作。在这些实例中,相同的种子值可用于对元数据和主机数据进行加扰。
在其它实例中,可用不同种子值对元数据910及主机数据915进行加扰。举例来说,如果加扰器920执行其中将需要存在元数据和主机数据两者以对数据(例如,经解扰元数据的值)进行解扰(例如,解除加密)的操作(例如,一些加密算法),那么可单独地用单独的种子对元数据及主机数据进行加扰。在这些实例中,可存储两个种子,或如果可从一个种子推断另一者,那么可仅存储一个种子。在其它实例中,其可以是相同种子值,但进行加扰操作以使得不需要对主机数据(经加扰或经解扰)的了解来对元数据进行解扰。
可将经加扰元数据935及种子930输入到ECC编码器940以产生经编码元数据945。单独地,经加扰主机数据937可馈送到ECC编码器940以产生经编码主机数据947。接着可将经编码元数据950及经编码主机数据952(连同例如奇偶校验位的ECC信息)写入到存储器装置的存储器单元。如所展示,用经加扰元数据935对种子930进行编码,但在其它实例中,可用经加扰主机数据937或经加扰元数据935和经加扰主机数据937两者对种子930进行编码。
图10说明根据本公开的一些实例的具有元数据更新的内部回拷操作的数据流1000,其中单独地对元数据及主机数据进行编码。从媒体读取经编码元数据1010及经编码主机数据1015。经编码主机数据1015存储于例如页缓冲器1020的存储器缓冲器中。在一些实例中,经编码元数据1010也存储在缓冲器中(对于不需要更新元数据的情况)。
经编码元数据1010跨通信接口传送到控制器,其中经编码元数据1010由解码器1025解码且由解扰器1030解扰。还可传送例如奇偶校验数据的ECC信息及用于加扰器的种子(其可用元数据、主机数据或两者来编码)以与解码器1025及解扰器1030一起使用。如果元数据未能通过ECC检查,那么存储器装置可中止内部回拷操作且进入数据的恢复步骤。
可读取元数据,且在1035处,可确定是否需要更新元数据。举例来说,更新驱动写入温度、写入时间等。在不需要更新元数据的情况下,可或可不将指示发送回到存储器裸片。举例来说,指示不需要改变的消息。在其它实例中,甚至对于其中不更新元数据的情况,元数据可重新随机化、重编码和发送回。这具有确保元数据无错误的益处。在一些实例中,如果写入的元数据足够接近(例如,在指定距离内),那么系统可决定不更新元数据。因此,如果最初写入数据的驱动温度接近于当前温度,那么可不更新元数据。在一些实例中,此确定是任选的,因为系统可经配置以始终更新元数据(例如,更新写入时戳)。在一些实例中,更新所有元数据,且在其它实例中,仅更新元数据的一些字段。在一些实例中,是否更新元数据的特定字段可取决于特定规则。举例来说,可始终更新一个特定字段,但如果规则评估到指示应更新元数据字段的结果,那么可仅更新其它字段。举例来说,规则可为如果当前温度高于与最初写入数据的温度的阈值差,那么可更新写入温度,否则可不更新写入温度。
如果在1035处确定需要更新元数据,那么元数据由元数据更新器1040更新。举例来说,通过在存储器装置处并入来自各种传感器的各种测量(例如,温度、时间等)。加扰器1045接着使用最初用于加扰元数据的相同密钥来加扰经更新元数据。编码器1050接着对经加扰和更新的元数据进行编码且产生新的ECC信息。接着将具有相关联的经更新ECC信息(例如,奇偶校验位)的经编码元数据发送回到存储器裸片,其中所述经编码元数据在页缓冲器1020中与经编码主机数据组合。接着将此组合的经更新元数据和主机数据写入到媒体。
图11说明根据本公开的一些实例的将数据写入到存储器装置的方法1100的流程图。图11可由存储器装置的控制器(例如图1的控制器105)执行。在操作1110处,控制器可接收包含主机数据的写入请求。在操作1115处,控制器可确定对应于主机数据的元数据。举例来说,写入温度、写入数据的时间等等。在操作1120处,控制器对元数据和主机数据进行加扰,使得可在不知道主机数据的情况下对元数据进行解扰。换句话说,加扰过程不利用主机数据,使得不需要对主机数据的了解来对元数据进行解扰。举例来说,可在与主机数据分离的操作中用种子或密钥(用以对主机数据进行加扰的相同种子或密钥或不同种子或密钥)对元数据进行加扰。在又其它实例中,对于某些加扰算法,可不需要单独处理,也就是说,归因于加扰算法的性质,其允许给定种子的位的独立解扰。举例来说,元数据的经解扰位的值不取决于除了密钥值以外的在元数据外的任何位的值(例如主机数据)。
在操作1125处,用单独的编码信息单独地对经加扰主机数据及元数据进行编码。在操作1130处,控制器可使得经编码元数据及经编码主机数据存储于存储器装置中。举例来说,控制器可跨内部通信接口发送命令以指示存储器裸片对存储器单元的物理字线进行编程以存储经编码元数据及经编码主机数据。
图12说明根据本公开的一些实例在内部回拷操作期间将数据写入到存储器装置的方法1200的流程图。图12可由存储器装置的控制器(例如图1的控制器105)执行。在操作1210处,响应于内部回拷命令(由控制器发布或在存储器裸片内产生),存储器裸片可传输且控制器可接收经编码和加扰的元数据。此元数据经编码和/或加扰以使得其可在无主机数据的情况下被解码和/或解扰。也就是说,主机数据并不由存储器裸片发射到控制器。
在操作1215处,使用编码信息对元数据进行解码。如先前所提到,如果解码失败(例如,在元数据中存在不可校正的ECC错误),那么存储器装置取消内部回拷操作且尝试通过恢复操作恢复数据。在操作1220处,控制器对来自操作1215的经解码元数据进行解扰。举例来说,通过使用附加到经解码元数据的种子或由存储器裸片发送的种子。如先前所描述,可不对种子进行加扰。操作1220在不了解主机数据或对应于主机数据的数据的情况下对经解码元数据进行解扰。也就是说,操作1220的解扰不需要了解主机数据、经编码主机数据、经加扰主机数据、经编码的加扰主机数据等。
在操作1225处,随后更新经解扰及解码的元数据。举例来说,经更新写入温度、经更新写入时间等。如先前所提到,在一些实例中,可基于一或多个规则、当前元数据、当前存储器装置条件(例如,温度、时间等)等的评估结果而选择性地更新元数据或元数据的字段。可运用当前存储器装置条件更新元数据。在操作1230处,用种子对经更新元数据进行加扰。在操作1235处,对加扰的经更新元数据进行编码。在操作1240处,将经编码和加扰的经更新元数据发送回到存储器裸片以用于与所存储的经加扰和编码的主机数据组合且写入到存储器单元。
图13说明根据本公开的一些实例的对存储器装置进行内部回拷操作的方法1300的流程图。图13可由存储器装置的存储器裸片(例如图1的存储器裸片130)执行。存储器裸片130可具有处理电路和工作存储器(例如,易失性存储器)。处理电路可为可经配置以执行方法1300的一或多个处理器。在操作1310处,存储器裸片130可识别用于存储器裸片中的一或多个存储器位置的内部回拷命令。举例来说,命令可通过控制器发布,各种触发事件可经识别以将存储于对应于SLC高速缓存的存储器单元中的数据移动到MLC、TLC或QLC存储装置等。各种触发事件可包含闲置时间、SLC高速缓存利用、控制器命令等。SLC高速缓存和最终目标MLC、TLC或QLC存储装置两者可在同一存储器裸片上。在这些实例(例如,源和目的地经识别为在同一存储器裸片上)中,可执行内部回拷操作以将数据(主机数据和元数据)从裸片上的第一位置复制到同一裸片上的第二位置而无需经由与控制器的通信接口传送全部数据。
在操作1315处,读取内部回拷的源存储器位置以获得元数据和主机数据。此元数据和主机数据都被加扰和编码。在操作1320处,将从源存储器位置读取的经编码和加扰的主机数据复制到缓冲器,例如页缓冲器。在一些实例中,还可将经编码及加扰的元数据复制到缓冲器,例如与经编码及加扰的主机数据相同的页缓冲器。
在操作1325处,可将经编码及加扰的元数据发送到控制器以用于经由内部通信接口(例如,通信总线)更新。在操作1330处,存储器裸片可接收经更新元数据或不需要更新元数据的指示。在操作1335处,存储器裸片可将经编码及加扰的经更新元数据(或在不需要更新元数据的情况下的原始元数据)连同经编码及加扰的主机数据一起写入到目的地存储器单元。
图14说明上面可执行本文中所论述的技术(例如,方法)中的任何一或多个的实例机器1400的框图。举例来说,存储器装置100可包含图14的一或多个组件,或由图14的一或多个组件实施。主机135可为或包含机器1400的一或多个组件。在这些实例中,存储器装置100可为大容量存储装置1421。机器1400的一或多个组件可实施图1到13的方法或结构中的一或多者。举例来说,通过指令1424的操作。
在替代实施例中,机器1400可作为独立装置而操作,或可连接(例如,联网)到其它机器。在联网部署中,机器1400可在服务器-客户端网络环境中以服务器机器、客户端机器或这两者的能力操作。在实例中,机器1400可充当对等(P2P)(或其它分布式)网络环境中的对等机器。机器1400可以是个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、移动电话、网络器具、IoT装置、汽车系统、主体装置、存储器装置,或能够(依序或以其它方式)执行指定将由所述机器采取的动作的指令的任何机器。机器1400的组件可存在于存储器装置(例如,处理器、主存储器、大容量存储装置等)中。此外,虽然仅说明单个机器,但术语“机器”也应被视为包含个别地或共同地执行指令集(或多个集合)以执行本文中所论述的方法中的任一或多者(例如,云计算、软件即服务(SaaS)、其它计算机集群配置)的任何机器集合。
如本文所描述,实例可包含逻辑、组件、装置、封装或机构,或者可通过逻辑、组件、装置、封装或机构操作。电路系统是在包含硬件(例如,简单电路、门、逻辑等)的有形实体中实施的电路集合(例如,组)。电路系统成员可以随时间和基础硬件可变性而为灵活的。电路系统包含操作时可单独或组合地执行特定任务的部件。在实例中,可将电路系统的硬件不变地设计成执行特定操作(例如,硬连线)。在实例中,电路系统的硬件可以包含可变地连接的物理组件(例如,执行单元、晶体管、简单电路等),所述物理组件包含以物理方式经修改(例如,不变集中式粒子的磁性、电气可移动放置等)以对特定操作的指令进行编码的计算机可读媒体。在连接物理组件时,硬件构成的基础电特性例如从绝缘体改变成导体或反之亦然。指令使得参与的硬件(例如,执行单元或加载机制)能够经由可变连接产生硬件中的电路系统部件以当在操作中时实行特定任务的部分。因此,当装置操作时计算机可读媒体以通信方式耦合到电路系统的其它组件。在实例中,物理组件中的任一个可以用于多于一个电路系统中的多于一个部件中。举例来说,在操作下,执行单元可以在一个时间点用于第一电路系统的第一电路,并且在不同时间由第一电路系统中的第二电路重新使用,或由第二电路系统中的第三电路重新使用。
机器(例如,计算机系统)1400(例如,主机装置135、存储器装置100等)可包含硬件处理器1402(例如,中央处理单元(CPU)、图形处理单元(GPU)、硬件处理器核心或其任何组合,例如存储器控制器105的处理器115等)、主存储器1404和静态存储器1406,其中的一些或全部可经由互连链路(例如,总线)1408彼此通信。机器1400可另外包含显示单元1410、字母数字输入装置1412(例如,键盘)和用户接口(UI)导航装置1414(例如,鼠标)。在实例中,显示单元1410、输入装置1412和UI导航装置1414可为触摸屏显示器。机器1400可另外包含传感器1416、信号产生装置1418(例如,扬声器)和网络接口装置1420。传感器1416可包含全球定位系统(GPS)传感器、指南针、加速度计和/或其它传感器。机器1400可包含输出控制器1428,例如串行(例如,通用串行总线(USB)、并行或其它有线或无线(例如,红外(IR)、近场通信(NFC)等)连接,以与一或多个外围装置(例如,打印机、读卡器等)通信或控制所述一或多个外围装置。
大容量存储装置1421可包含机器可读媒体1422,其上存储体现本文中所描述的技术或功能中的任何一或多种或者由本文中所描述的技术或功能中的任何一或多种利用的数据结构或指令1424(例如,软件)的一或多个集合。指令1424还可以在其由机器1400执行期间完全或至少部分地驻留于主存储器1404内、静态存储器1406内或硬件处理器1402内。在实例中,硬件处理器1402、主存储器1404、静态存储器1406或大容量存储装置1416中的一个或任何组合可构成机器可读媒体1422。
虽然机器可读媒体1422说明为单个媒体,但术语“机器可读媒体”可包含经配置以存储一或多个指令1424的单个媒体或多个媒体(例如,集中或分布式数据库,或相关联高速缓存和服务器)。
术语“机器可读媒体”可包含能够存储、编码或携载供机器1400执行的指令且致使机器1400执行本公开的技术中的任何一或多种或能够存储、编码或携载由此类指令使用或与此类指令相关联的数据结构的任何媒体。非限制性机器可读媒体实例可包含固态存储器以及光学和磁性媒体。在一些实例中,机器可读媒体1422为非暂时性机器可读媒体。在一实例中,集中式机器可读媒体包括具有多个粒子的机器可读媒体,所述粒子具有不变(例如,静止)质量。因此,集中式机器可读媒体是非暂时性传播信号。集中式机器可读媒体的特定实例可以包含:非易失性存储器,例如半导体存储器装置(例如,电可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM))和快闪存储器装置;磁盘,例如内部硬盘和可拆卸磁盘;磁光盘;和CD-ROM和DVD-ROM盘。
指令1424(例如,软件、程序、操作系统(OS)等)或其它数据存储在大容量存储装置1421上,可由存储器1404存取以供处理器1402使用。存储器1404(例如,DRAM)通常为快速但易失性的,且因此是与适于长期存储(包含在“关断”条件中)的存储装置1421(例如,SSD)不同类型的存储装置。供用户或机器1400使用的指令1424或数据通常加载在存储器1404中以供处理器1402使用。当存储器1404已满时,可分配来自存储装置1421的虚拟空间以增补存储器1404;然而,因为存储装置1421通常比存储器1404慢且写入速度通常比读取速度慢至少两倍,所以虚拟存储器的使用由于存储装置等待时间(相比于存储器1404,例如DRAM)可能极大地降低用户体验。此外,用于虚拟存储器的存储装置1421的使用可极大地减少存储装置1421的可用使用寿命。
相比于虚拟存储器,虚拟存储器压缩(例如,内核特征“ZRAM”)使用存储器的部分作为压缩块存储以避免寻呼到存储装置1421。在压缩块中进行寻呼,直至有必要将此类数据写入到存储装置1421为止。虚拟存储器压缩增大了存储器1404的可用大小,同时减少对存储装置1421的损耗。
例如大容量存储装置1421的存储装置可为存储器装置,例如NAND存储器装置。可针对移动电子装置或移动存储装置而优化例如大容量存储装置1421的存储装置,包含MMC固态存储装置(例如,微安全数字(microSDTM)卡等)。MMC装置包含与主机装置的若干并行接口(例如,8位并行接口),且通常是从主机装置可拆卸和分离的组件。相比之下,eMMCTM装置附接到电路板且视为主机装置的组件,其读取速度比得上基于串行ATATM(串行高级技术(AT)附件,或SATA)的SSD装置。然而,对移动装置性能的需求继续增大,以便完全启用虚拟或扩增现实装置,利用提高的网络速度等。响应于这一需求,存储装置已从并行移位到串行通信接口。包含控制器和固件的通用快闪存储(UFS)装置使用具有专用读取/写入路径的低电压差分信令(LVDS)串行接口与主机装置通信,从而进一步推进了更高的读取/写入速度。
可以进一步利用若干传送协议中的任一个(例如,帧中继、因特网协议(IP)、传输控制协议(TCP)、用户数据报协议(UDP)、超文本传送协议(HTTP)等)经由网络接口装置1420使用传输媒体在通信网络1426上传输或接收指令1424。实例通信网络可包含局域网(LAN)、广域网(WAN)、分组数据网络(例如,因特网)、移动电话网络(例如,蜂窝式网络)、普通老式电话(POTS)网络和无线数据网络(例如,被称为的电气电子工程师学会(IEEE)802.11标准系列、被称为的IEEE 802.16标准系列)、IEEE 802.15.4标准系列、对等(P2P)网络等等。在实例中,网络接口装置1420可以包含一或多个物理插口(例如,以太网、同轴或电话插口)或者一或多个天线以连接到通信网络1426。在实例中,网络接口装置1420可包含多个天线以使用单输入多输出(SIMO)、多输入多输出(MIMO)或多输入单输出(MISO)技术中的至少一者无线地通信。术语“发射媒体”应被视为包含能够存储、编码或携带指令以用于由机器1400执行的任何无形媒体,且包含数字或模拟通信信号或用以促进此类软件的通信的其它无形媒体。
以上详细描述包含对随附图式的参考,所述随附图式形成详细描述的部分。所述图借助于图示展示可实践本发明的具体实施例。这些实施例在本文中还被称作“实例”。此类实例可包含除了所展示或所描述的那些元件之外的元件。然而,本发明人还预期其中仅提供所示出或所描述的那些元件的实例。此外,本发明的发明人还预期使用相对于特定实例(或其一或多个方面)或相对于本文展示或描述的其它实例(或其一或多个方面)而展示或描述的那些元件的任何组合或排列的实例(或其一或多个方面)。
在本文件中,术语如专利文件中所常见而使用术语“一”以包含一个或多于一个,其独立于“至少一个”或“一或多个”的任何其它例子或使用。在本文件中,术语“或”用于指代非排它性,或使得除非另有指示,否则“A或B”可包含“A而非B”、“B而非A”以及“A及B”。在所附权利要求书中,术语“包含”和“在其中(in which)”用作相应术语“包括”和“其中(wherein)”的通俗等效术语。此外,在以下权利要求书中,术语“包含”和“包括”为开放式的,即,包含除权利要求书中在此术语之后列出的那些元件之外的元件的系统、装置、物品或过程仍被视为在权利要求书的范围内。此外,在以下权利要求书中,术语“第一”、“第二”和“第三”等仅用作标签,且并不在于对其对象施加数字要求。
在不同实例中,本文中所描述的组件、控制器、处理器、单元、引擎或表可尤其包含存储于物理装置上的物理电路系统或固件。如本文所用,“处理器”意指任何类型的计算电路,例如(但不限于)微处理器、微控制器、图形处理器、数字信号处理器(DSP),或任何其它类型的处理器或处理电路,包含处理器或多核心装置群组。
根据本公开且在本文中描述的各种实施例包含利用存储器单元的竖直结构(例如,存储器单元的NAND串)的存储器。如本文中所使用,将采用相对其上形成有存储器单元的衬底的表面的方向性形容词(即,垂直结构将视为远离衬底表面延伸,垂直结构的底端将视为最接近衬底表面的端部,且垂直结构的顶端将视为最远离衬底表面的端部)。
如本文中所使用,例如水平、竖直、正交、平行、垂直等方向性形容词可指相对定向,并且除非另外指出,否则并不意图需要严格遵守特定几何性质。举例来说,如本文中所使用,竖直结构无需精确地垂直于衬底的表面,而是可替代地大体上垂直于衬底的表面,并且可形成与衬底的表面的锐角(例如,在60度与120度之间,等)。
在本文中所描述的一些实施例中,不同掺杂配置可应用于源极侧选择栅极(SGS)、控制栅极(CG)和漏极侧选择栅极(SGD),其中的每一个在此实例中可由多晶硅形成或至少包含多晶硅,结果为使得这些层次(例如,多晶硅等)当暴露于刻蚀溶液时可具有不同的蚀刻速率。举例来说,在3D半导体装置中形成单体柱的过程中,SGS和CG可形成凹陷,而SGD可保持较少凹陷或甚至不凹陷。这些掺杂配置可因此通过使用蚀刻溶液(例如,四甲基铵氢氧化物(TMCH))来实现选择性蚀刻到3D半导体装置中的不同层次(例如,SGS、CG和SGD)中。
如本文所使用,操作存储器单元包含从存储器单元读取、对存储器单元写入或擦除存储器单元。将存储器单元置于既定状态的操作在本文中称为“编程”,且可包含对存储器单元写入或从存储器单元擦除(例如,存储器单元可经编程为擦除状态)。
根据本公开的一或多个实施例,位于存储器装置内部或外部的存储器控制器(例如,处理器、控制器、固件等)能够确定(例如,选择、设置、调整、计算、改变、清除、传达、调适、导出、限定、利用、修改、施加等)一定数量的损耗循环或损耗状态(例如,记录损耗循环、当其发生时对存储器装置的操作计数、跟踪其起始的存储器装置的操作、评估对应于损耗状态的存储器装置特性等)。
根据本公开的一或多个实施例,存储器存取装置可经配置以关于每一存储器操作将损耗循环信息提供到存储器装置。存储器装置控制电路(例如,控制逻辑)可经编程以补偿对应于损耗循环信息的存储器装置性能改变。存储器装置可接收损耗循环信息,且响应于损耗循环信息来确定一或多个操作参数(例如,值、特性)。
将理解,当一元件被称为“在另一元件上”、“连接到另一元件”或“与另一元件耦合”时,其可直接在另一元件上、与另一元件直接连接或耦合,或者可存在中间元件。相反地,当一个元件被称作“直接在另一元件上”、“直接连接到另一元件”或“与另一元件直接耦合”时,不存在中间元件或层。如果两个元件在图式中展示为被线连接,那么除非另外指明,否则所述两个元件可耦合或直接耦合。
本文所描述的方法实例可至少部分地由机器或计算机实施。一些实例可包含编码有指令的计算机可读媒体或机器可读媒体,所述指令可操作以配置电子装置以执行如在以上实例中描述的方法。此类方法的实施方案可包含代码,例如微码、汇编语言代码、高级语言代码等。这类代码可包含用于执行各种方法的计算机可读指令。代码可以形成计算机程序产品的部分。此外,代码可例如在执行期间或在其它时间有形地存储于一或多个易失性或非易失性有形计算机可读媒体上。这些有形计算机可读媒体的实例可包含但不限于:硬盘、可拆卸磁盘、可拆卸光盘(例如,压缩光盘和数字视频光盘)、盒式磁带、存储器卡或棒、随机存取存储器(RAM)、只读存储器(ROM)、固态驱动器(SSD)、通用快闪存储(UFS)装置、嵌入式MMC(eMMC)装置等。
以上描述意在为说明性的而非限制性的。例如,上述实例(或其一或多个方面)可以彼此组合使用。例如所属领域的一般技术人员在查阅以上描述后可使用其它实施例。应理解,所述实施例不应用于解释或限制权利要求的范围或含义。另外,在以上具体实施方式中,可将各种特征分组在一起以简化本公开。不应将这一情况解释为意图未要求保护的公开特征对于任何权利要求来说是必需的。实际上,本发明主题可在于比特定公开实施例的所有特征要少。因此,特此将所附权利要求书并入到具体实施方式中,其中每一权利要求作为一单独实施例而独立存在,且预期此些实施例可以各种组合或排列彼此组合。本发明的范围应参考所附权利要求书以及所述权利要求书所授权的等效物的完整范围来确定。
其它注释及实例
实例1为一种用于将数据存储在非易失性存储器装置上的方法,所述方法包括:接收用以写入到存储器装置的多个存储器单元的数据;响应于接收到数据,产生用于数据的加扰器种子值;通过使用加扰算法及种子值变换数据来对数据进行加扰以产生经加扰数据;对种子值及经加扰数据两者进行编码以产生经编码数据;使得经编码数据写入到存储器装置的第一裸片的第一多个存储器单元;识别经编码数据待复制到第一裸片内的第二多个存储器单元;及响应于识别经编码数据待复制到第二多个存储器单元,使得经编码数据在不将经编码数据的主机数据部分从第一裸片传送到存储器装置的控制器的情况下复制到第二多个存储器单元。
在实例2中,根据实例1所述的主题包含,其中产生种子值包括获得随机数。
在实例3中,根据实例2所述的主题包含,其中获得随机数包括使用硬件随机数产生器。
在实例4中,根据实例2到3所述的主题包含,其中随机数为从伪随机数产生器产生的伪随机数。
在实例5中,根据实例1到4所述的主题包含,其中种子值为加密密钥。
在实例6中,根据实例1到5所述的主题包含,其中加扰算法为XOR算法,且其中对数据进行加扰包括运用产生有种子值的随机序列对数据进行XOR以产生经加扰数据。
在实例7中,根据实例1到6所述的主题包含,其中加扰算法为加密算法,且其中通过使用加密算法及种子值变换数据来对数据进行加扰以产生经加扰数据包括用种子值对数据进行加密。
在实例8中,根据实例1到7所述的主题包含,接收对数据的读取请求;从第二多个存储器单元读取经编码数据;对经编码数据进行解码以产生经加扰数据及种子值;及用种子值对经加扰数据进行解扰以产生数据。
实例9为一种存储器装置,其包括:第一存储器裸片,其包含多个存储器单元;控制器,其经配置以执行包括以下各项的操作:接收用以写入到多个存储器单元的数据;响应于接收到数据,产生用于数据的加扰器种子值;通过使用加扰算法及种子值变换数据来对数据进行加扰以产生经加扰数据;对种子值及经加扰数据两者进行编码以产生经编码数据;使得经编码数据写入到第一裸片的第一多个存储器单元;识别经编码数据待复制到第一裸片内的第二多个存储器单元;及响应于识别经编码数据待复制到第二多个存储器单元,使得经编码数据在不将经编码数据的主机数据部分从第一裸片传送到存储器装置的控制器的情况下复制到第二多个存储器单元。
在实例10中,根据实例9所述的主题包含,其中产生种子值的操作包括获得随机数。
在实例11中,根据实例10所述的主题包含,其中存储器装置包括硬件随机数产生器,且其中获得随机数的操作包括从硬件随机数产生器获得随机数。
在实例12中,根据实例10到11所述的主题包含,其中随机数为从伪随机数产生器产生的伪随机数。
在实例13中,根据实例9到12所述的主题包含,其中种子值为加密密钥。
在实例14中,根据实例9到13所述的主题包含,其中加扰算法为XOR算法,且其中对数据进行加扰的操作包括运用产生有种子值的随机序列对数据进行XOR以产生经加扰数据。
在实例15中,根据实例9到14所述的主题包含,其中加扰算法为加密算法,且其中通过使用加密算法及种子值变换数据来对数据进行加扰以产生经加扰数据的操作包括用种子值对数据进行加密。
在实例16中,根据实例9到15所述的主题包含,其中操作进一步包括:接收对数据的读取请求;从第二多个存储器单元读取经编码数据;对经编码数据进行解码以产生经加扰数据及种子值;及用种子值对经加扰数据进行解扰以产生数据。
实例17为一种存储指令的非暂时性机器可读媒体,所述指令在执行时使得存储器装置执行包括以下各项的操作:接收用以写入到存储器装置的多个存储器单元的数据;响应于接收到数据,产生用于数据的加扰器种子值;通过使用加扰算法及种子值变换数据来对数据进行加扰以产生经加扰数据;对种子值及经加扰数据两者进行编码以产生经编码数据;使得经编码数据写入到第一裸片的第一多个存储器单元;识别经编码数据待复制到第一裸片内的第二多个存储器单元;及响应于识别经编码数据待复制到第二多个存储器单元,使得经编码数据在不将经编码数据的主机数据部分从第一裸片传送到存储器装置的控制器的情况下复制到第二多个存储器单元。
在实例18中,根据实例17所述的主题包含,其中产生种子值的操作包括获得随机数。
在实例19中,根据实例18所述的主题包含,其中存储器装置包括硬件随机数产生器,且其中获得随机数的操作包括从硬件随机数产生器获得随机数。
在实例20中,根据实例18到19所述的主题包含,其中随机数为从伪随机数产生器产生的伪随机数。
在实例21中,根据实例17到20所述的主题包含,其中种子值为加密密钥。
在实例22中,根据实例17到21所述的主题包含,其中加扰算法为XOR算法,且其中对数据进行加扰的操作包括运用产生有种子值的随机序列对数据进行XOR以产生经加扰数据。
在实例23中,根据实例17到22所述的主题包含,其中加扰算法为加密算法,且其中通过使用加密算法及种子值变换数据来对数据进行加扰以产生经加扰数据的操作包括用种子值对数据进行加密。
在实例24中,根据实例17到23所述的主题包含,其中操作进一步包括:接收对数据的读取请求;从第二多个存储器单元读取经编码数据;对经编码数据进行解码以产生经加扰数据及种子值;及用种子值对经加扰数据进行解扰以产生数据。
实例25是包含指令的至少一个机器可读媒体,所述指令在由处理电路系统执行时使所述处理电路系统执行操作以实施实例1到24中的任一个。
实例26是一种包括用于实施实例1到24中的任一个的装置的设备。
实例27是一种用于实施实例1到24中的任一个的系统。
实例28是一种用于实施实例1到24中的任一个的方法。
实例29为一种用于将数据存储在非易失性存储器装置上的方法,所述方法包括:接收用以写入到存储器装置的多个存储器单元的数据;响应于接收到数据,产生用于数据的加扰器种子值;通过使用加扰算法及种子值变换数据来对数据进行加扰以产生经加扰数据;对种子值及经加扰数据两者进行编码以产生经编码数据;使得经编码数据写入到存储器装置的第一裸片的第一多个存储器单元;识别经编码数据待复制到第一裸片内的第二多个存储器单元;及响应于识别经编码数据待复制到第二多个存储器单元,使得经编码数据在不将经编码数据的主机数据部分从第一裸片传送到存储器装置的控制器的情况下复制到第二多个存储器单元。
在实例30中,根据实例29所述的主题包含,其中产生种子值包括获得随机数。
在实例31中,根据实例30所述的主题包含,其中获得随机数包括使用硬件随机数产生器。
在实例32中,根据实例30到31所述的主题包含,其中随机数为从伪随机数产生器产生的伪随机数。
在实例33中,根据实例29到32所述的主题包含,其中种子值为加密密钥。
在实例34中,根据实例29到33所述的主题包含,其中加扰算法为XOR算法,且其中对数据进行加扰包括运用产生有种子值的随机序列对数据进行XOR以产生经加扰数据。
在实例35中,根据实例29到34所述的主题包含,其中加扰算法为加密算法,且其中通过使用加密算法及种子值变换数据来对数据进行加扰以产生经加扰数据包括用种子值对数据进行加密。
在实例36中,根据实例29到35所述的主题包含,接收对数据的读取请求;从第二多个存储器单元读取经编码数据;对经编码数据进行解码以产生经加扰数据及种子值;及用种子值对经加扰数据进行解扰以产生数据。
实例37为一种存储器装置,其包括:第一存储器裸片,其包含多个存储器单元;控制器,其经配置以执行包括以下各项的操作:接收用以写入到多个存储器单元的数据;响应于接收到数据,产生用于数据的加扰器种子值;通过使用加扰算法及种子值变换数据来对数据进行加扰以产生经加扰数据;对种子值及经加扰数据两者进行编码以产生经编码数据;使得经编码数据写入到第一裸片的第一多个存储器单元;识别经编码数据待复制到第一裸片内的第二多个存储器单元;及响应于识别经编码数据待复制到第二多个存储器单元,使得经编码数据在不将经编码数据的主机数据部分从第一裸片传送到存储器装置的控制器的情况下复制到第二多个存储器单元。
在实例38中,根据实例37所述的主题包含,其中产生种子值的操作包括获得随机数。
在实例39中,根据实例38所述的主题包含,其中存储器装置包括硬件随机数产生器,且其中获得随机数的操作包括从硬件随机数产生器获得随机数。
在实例40中,根据实例38到39所述的主题包含,其中随机数为从伪随机数产生器产生的伪随机数。
在实例41中,根据实例37到40所述的主题包含,其中种子值为加密密钥。
在实例42中,根据实例37到41所述的主题包含,其中加扰算法为XOR算法,且其中对数据进行加扰的操作包括运用产生有种子值的随机序列对数据进行XOR以产生经加扰数据。
在实例43中,根据实例37到42所述的主题包含,其中加扰算法为加密算法,且其中通过使用加密算法及种子值变换数据来对数据进行加扰以产生经加扰数据的操作包括用种子值对数据进行加密。
在实例44中,根据实例37到43所述的主题包含,其中操作进一步包括:接收对数据的读取请求;从第二多个存储器单元读取经编码数据;对经编码数据进行解码以产生经加扰数据及种子值;及用种子值对经加扰数据进行解扰以产生数据。
实例45为一种存储指令的非暂时性机器可读媒体,所述指令在执行时使得存储器装置执行包括以下各项的操作:接收用以写入到存储器装置的多个存储器单元的数据;响应于接收到数据,产生用于数据的加扰器种子值;通过使用加扰算法及种子值变换数据来对数据进行加扰以产生经加扰数据;对种子值及经加扰数据两者进行编码以产生经编码数据;使得经编码数据写入到第一裸片的第一多个存储器单元;识别经编码数据待复制到第一裸片内的第二多个存储器单元;及响应于识别经编码数据待复制到第二多个存储器单元,使得经编码数据在不将经编码数据的主机数据部分从第一裸片传送到存储器装置的控制器的情况下复制到第二多个存储器单元。
在实例46中,根据实例45所述的主题包含,其中产生种子值的操作包括获得随机数。
在实例47中,根据实例46所述的主题包含,其中存储器装置包括硬件随机数产生器,且其中获得随机数的操作包括从硬件随机数产生器获得随机数。
在实例48中,根据实例46到47所述的主题包含,其中随机数为从伪随机数产生器产生的伪随机数。
在实例49中,根据实例45到48所述的主题包含,其中种子值为加密密钥。
在实例50中,根据实例45到49所述的主题包含,其中加扰算法为XOR算法,且其中对数据进行加扰的操作包括运用产生有种子值的随机序列对数据进行XOR以产生经加扰数据。
在实例51中,根据实例45到50所述的主题包含,其中加扰算法为加密算法,且其中通过使用加密算法及种子值变换数据来对数据进行加扰以产生经加扰数据的操作包括用种子值对数据进行加密。
在实例52中,根据实例45到51所述的主题包含,其中操作进一步包括:接收对数据的读取请求;从第二多个存储器单元读取经编码数据;对经编码数据进行解码以产生经加扰数据及种子值;及用种子值对经加扰数据进行解扰以产生数据。
实例53是包含指令的至少一个机器可读媒体,所述指令在由处理电路系统执行时使所述处理电路系统执行操作以实施实例29到52中的任一个。
实例54是一种包括用于实施实例29到52中的任一个的装置的设备。
实例55是一种用于实施实例29到52中的任一个的系统。
实例56是一种用于实施实例29到52中的任一个的方法。
实例57为一种用于在存储器装置中执行回拷操作的方法,所述方法包括:在存储器装置的存储器控制器处:经由存储器装置的内部通信接口且响应于回拷操作的发起而从存储器裸片接收经编码元数据,其中对应于元数据的主机数据并不通过存储器裸片经由所述内部通信接口发送;对经编码元数据进行解码以产生经解码元数据;使用密钥值对经解码元数据进行解扰以产生经解扰元数据,所述密钥值存储为所述经解码元数据的部分;更新经解扰元数据以产生经更新元数据;运用密钥值对经更新元数据进行加扰以产生加扰的经更新元数据;对加扰的经更新元数据进行编码以产生经编码的经更新元数据;及将经编码的经更新元数据发送到存储器裸片,所述经编码的经更新元数据与经编码主机数据组合且写入到存储器裸片上的新位置。
在实例58中,根据实例57所述的主题包含,其中更新经解扰元数据包括更新写入温度。
在实例59中,根据实例57到58所述的主题包含,其中更新经解扰元数据包括更新写入时间。
在实例60中,根据实例57到59所述的主题包含,在存储器装置的存储器裸片处:识别用于第一存储器位置的内部回拷命令;读取第一存储器位置以获得经编码元数据和经编码主机数据;将经编码主机数据存储在存储器裸片上的存储器缓冲器中;将经编码元数据发送到存储器控制器;从存储器控制器接收经编码的经更新元数据;及将经编码的经更新元数据连同存储于存储器缓冲器中的经编码主机数据写入到存储器裸片上的新位置。
在实例61中,根据实例57到60所述的主题包含,其中使用密钥值对经解码元数据进行解扰以产生经解扰元数据包括对经解码元数据及密钥值应用XOR运算。
在实例62中,根据实例57到61所述的主题包含,其中经编码元数据包含在解码中使用的编码信息。
在实例63中,根据实例62所述的主题包含,其中编码信息为至少一个奇偶校验位。
在实例64中,根据实例62到63所述的主题包含,其中经编码元数据的编码信息与包含在对应于主机数据的经编码主机数据中的第二编码信息不同。
实例65为一种存储器装置,其包括:存储器控制器,其经配置以执行包括以下各项的操作:经由存储器装置的内部通信接口且响应于回拷操作的发起而从存储器裸片接收经编码元数据,其中对应于元数据的主机数据并不通过存储器裸片经由所述内部通信接口发送;对经编码元数据进行解码以产生经解码元数据;使用密钥值对经解码元数据进行解扰以产生经解扰元数据,所述密钥值存储为所述经解码元数据的部分;更新经解扰元数据以产生经更新元数据;运用密钥值对经更新元数据进行加扰以产生加扰的经更新元数据;对加扰的经更新元数据进行编码以产生经编码的经更新元数据;及将经编码的经更新元数据发送到存储器裸片,所述经编码的经更新元数据与经编码主机数据组合且写入到存储器裸片上的新位置。
在实例66中,根据实例65所述的主题包含,其中更新经解扰元数据的操作包括更新写入温度。
在实例67中,根据实例65到66所述的主题包含,其中更新经解扰元数据的操作包括更新写入时间。
在实例68中,根据实例65到67所述的主题包含,存储器裸片,所述存储器裸片包括经配置以执行包括以下各项的操作的处理器:识别用于第一存储器位置的内部回拷命令;读取第一存储器位置以获得经编码元数据和经编码主机数据;将经编码主机数据存储在存储器裸片上的存储器缓冲器中;将经编码元数据发送到存储器控制器;从存储器控制器接收经编码的经更新元数据;及将经编码的经更新元数据连同存储于存储器缓冲器中的经编码主机数据写入到存储器裸片上的新位置。
在实例69中,根据实例65到68所述的主题包含,其中使用密钥值对经解码元数据进行解扰以产生经解扰元数据的操作包括对经解码元数据及密钥值应用XOR运算。
在实例70中,根据实例65到69所述的主题包含,其中经编码元数据包含在解码中使用的编码信息。
在实例71中,根据实例70所述的主题包含,其中编码信息为至少一个奇偶校验位。
在实例72中,根据实例70到71所述的主题包含,其中经编码元数据的编码信息与包含在对应于主机数据的经编码主机数据中的第二编码信息不同。
实例73为一种存储指令的非暂时性机器可读媒体,所述指令在由存储器装置执行时使得所述存储器装置执行包括以下各项的操作:经由存储器装置的内部通信接口且响应于回拷操作的发起而从存储器裸片接收经编码元数据,其中对应于元数据的主机数据并不通过存储器裸片经由所述内部通信接口发送;对经编码元数据进行解码以产生经解码元数据;使用密钥值对经解码元数据进行解扰以产生经解扰元数据,所述密钥值存储为所述经解码元数据的部分;更新经解扰元数据以产生经更新元数据;运用密钥值对经更新元数据进行加扰以产生加扰的经更新元数据;对加扰的经更新元数据进行编码以产生经编码的经更新元数据;及将经编码的经更新元数据发送到存储器裸片,所述经编码的经更新元数据与经编码主机数据组合且写入到存储器裸片上的新位置。
在实例74中,根据实例73所述的主题包含,其中更新经解扰元数据的操作包括更新写入温度。
在实例75中,根据实例73到74所述的主题包含,其中更新经解扰元数据的操作包括更新写入时间。
在实例76中,根据实例73到75所述的主题包含,其中操作进一步包括:在存储器裸片处:识别用于第一存储器位置的内部回拷命令;读取第一存储器位置以获得经编码元数据和经编码主机数据;将经编码主机数据存储在存储器裸片上的存储器缓冲器中;将经编码元数据发送到存储器控制器;从存储器控制器接收经编码的经更新元数据;及将经编码的经更新元数据连同存储于存储器缓冲器中的经编码主机数据写入到存储器裸片上的新位置。
实例77是包含指令的至少一个机器可读媒体,所述指令在由处理电路系统执行时使所述处理电路系统执行操作以实施实例57到76中的任一个。
实例78是一种包括用于实施实例57到76中的任一个的装置的设备。
实例79是一种用于实施实例57到76中的任一个的系统。
实例80是一种用于实施实例57到76中的任一个的方法。
Claims (20)
1.一种用于在存储器装置中执行回拷操作的方法,所述方法包括:
在所述存储器装置的存储器控制器处:
经由所述存储器装置的内部通信接口且响应于回拷操作的发起而从存储器裸片接收经编码元数据,其中对应于所述元数据的主机数据并不通过所述存储器裸片经由所述内部通信接口发送;
对所述经编码元数据进行解码以产生经解码元数据;
使用密钥值对所述经解码元数据进行解扰以产生经解扰元数据,所述密钥值存储为所述经解码元数据的部分;
更新所述经解扰元数据以产生经更新元数据;
运用所述密钥值对所述经更新元数据进行加扰以产生加扰的经更新元数据;
对所述加扰的经更新元数据进行编码以产生经编码的经更新元数据;及
将所述经编码的经更新元数据发送到所述存储器裸片,所述经编码的经更新元数据与经编码主机数据组合且写入到所述存储器裸片上的新位置。
2.根据权利要求1所述的方法,其中更新所述经解扰元数据包括更新写入温度。
3.根据权利要求1所述的方法,其中更新所述经解扰元数据包括更新写入时间。
4.根据权利要求1所述的方法,其进一步包括:
在所述存储器装置的所述存储器裸片处:
识别用于第一存储器位置的内部回拷命令;
读取所述第一存储器位置以获得所述经编码元数据和所述经编码主机数据;
将所述经编码主机数据存储在所述存储器裸片上的存储器缓冲器中;
将所述经编码元数据发送到所述存储器控制器;
从所述存储器控制器接收所述经编码的经更新元数据;及
将所述经编码的经更新元数据连同存储于所述存储器缓冲器中的所述经编码主机数据写入到所述存储器裸片上的所述新位置。
5.根据权利要求1所述的方法,其中使用所述密钥值对所述经解码元数据进行解扰以产生经解扰元数据包括对所述经解码元数据及所述密钥值应用XOR运算。
6.根据权利要求1所述的方法,其中所述经编码元数据包含在所述解码中使用的编码信息。
7.根据权利要求6所述的方法,其中所述编码信息为至少一个奇偶校验位。
8.根据权利要求6所述的方法,其中所述经编码元数据的所述编码信息与包含在对应于所述主机数据的经编码主机数据中的第二编码信息不同。
9.一种存储器装置,其包括:
存储器控制器,其经配置以执行包括以下各项的操作:
经由所述存储器装置的内部通信接口且响应于回拷操作的发起而从存储器裸片接收经编码元数据,其中对应于所述元数据的主机数据并不通过所述存储器裸片经由所述内部通信接口发送;
对所述经编码元数据进行解码以产生经解码元数据;
使用密钥值对所述经解码元数据进行解扰以产生经解扰元数据,所述密钥值存储为所述经解码元数据的部分;
更新所述经解扰元数据以产生经更新元数据;
运用所述密钥值对所述经更新元数据进行加扰以产生加扰的经更新元数据;
对所述加扰的经更新元数据进行编码以产生经编码的经更新元数据;及
将所述经编码的经更新元数据发送到所述存储器裸片,所述经编码的经更新元数据与经编码主机数据组合且写入到所述存储器裸片上的新位置。
10.根据权利要求9所述的存储器装置,其中更新所述经解扰元数据的所述操作包括更新写入温度。
11.根据权利要求9所述的存储器装置,其中更新所述经解扰元数据的所述操作包括更新写入时间。
12.根据权利要求9所述的存储器装置,其进一步包括:
所述存储器裸片,所述存储器裸片包括经配置以执行包括以下各项的操作的处理器:
识别用于第一存储器位置的内部回拷命令;
读取所述第一存储器位置以获得所述经编码元数据和所述经编码主机数据;
将所述经编码主机数据存储在所述存储器裸片上的存储器缓冲器中;
将所述经编码元数据发送到所述存储器控制器;
从所述存储器控制器接收所述经编码的经更新元数据;及
将所述经编码的经更新元数据连同存储于所述存储器缓冲器中的所述经编码主机数据写入到所述存储器裸片上的所述新位置。
13.根据权利要求9所述的存储器装置,其中使用所述密钥值对所述经解码元数据进行解扰以产生经解扰元数据的所述操作包括对所述经解码元数据及所述密钥值应用XOR运算。
14.根据权利要求9所述的存储器装置,其中所述经编码元数据包含在所述解码中使用的编码信息。
15.根据权利要求14所述的存储器装置,其中所述编码信息为至少一个奇偶校验位。
16.根据权利要求14所述的存储器装置,其中所述经编码元数据的所述编码信息与包含在对应于所述主机数据的经编码主机数据中的第二编码信息不同。
17.一种存储指令的非暂时性机器可读媒体,所述指令在由存储器装置执行时使所述存储器装置执行包括以下各项的操作:
经由所述存储器装置的内部通信接口且响应于回拷操作的发起而从存储器裸片接收经编码元数据,其中对应于所述元数据的主机数据并不通过所述存储器裸片经由所述内部通信接口发送;
对所述经编码元数据进行解码以产生经解码元数据;
使用密钥值对所述经解码元数据进行解扰以产生经解扰元数据,所述密钥值存储为所述经解码元数据的部分;
更新所述经解扰元数据以产生经更新元数据;
运用所述密钥值对所述经更新元数据进行加扰以产生加扰的经更新元数据;
对所述加扰的经更新元数据进行编码以产生经编码的经更新元数据;及
将所述经编码的经更新元数据发送到所述存储器裸片,所述经编码的经更新元数据与经编码主机数据组合且写入到所述存储器裸片上的新位置。
18.根据权利要求17所述的非暂时性机器可读媒体,其中更新所述经解扰元数据的所述操作包括更新写入温度。
19.根据权利要求17所述的非暂时性机器可读媒体,其中更新所述经解扰元数据的所述操作包括更新写入时间。
20.根据权利要求17所述的非暂时性机器可读媒体,其中所述操作进一步包括:
在所述存储器裸片处:
识别用于第一存储器位置的内部回拷命令;
读取所述第一存储器位置以获得所述经编码元数据和所述经编码主机数据;
将所述经编码主机数据存储在所述存储器裸片上的存储器缓冲器中;
将所述经编码元数据发送到所述存储器控制器;
从所述存储器控制器接收所述经编码的经更新元数据;及
将所述经编码的经更新元数据连同存储于所述存储器缓冲器中的所述经编码主机数据写入到所述存储器裸片上的所述新位置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211319224.XA CN115497548A (zh) | 2020-04-01 | 2021-04-01 | 用于存储器装置的元数据感知回拷 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/837,384 US11256617B2 (en) | 2020-04-01 | 2020-04-01 | Metadata aware copyback for memory devices |
US16/837,384 | 2020-04-01 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211319224.XA Division CN115497548A (zh) | 2020-04-01 | 2021-04-01 | 用于存储器装置的元数据感知回拷 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113496744A true CN113496744A (zh) | 2021-10-12 |
CN113496744B CN113496744B (zh) | 2022-11-04 |
Family
ID=77921804
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110357854.5A Active CN113496744B (zh) | 2020-04-01 | 2021-04-01 | 用于存储器装置的元数据感知回拷 |
CN202211319224.XA Withdrawn CN115497548A (zh) | 2020-04-01 | 2021-04-01 | 用于存储器装置的元数据感知回拷 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211319224.XA Withdrawn CN115497548A (zh) | 2020-04-01 | 2021-04-01 | 用于存储器装置的元数据感知回拷 |
Country Status (2)
Country | Link |
---|---|
US (2) | US11256617B2 (zh) |
CN (2) | CN113496744B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11327884B2 (en) | 2020-04-01 | 2022-05-10 | Micron Technology, Inc. | Self-seeded randomizer for data randomization in flash memory |
US11768766B2 (en) | 2020-04-01 | 2023-09-26 | Micron Technology, Inc. | Metadata aware copyback for memory devices |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US12131794B2 (en) * | 2022-08-23 | 2024-10-29 | Micron Technology, Inc. | Structures for word line multiplexing in three-dimensional memory arrays |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110161784A1 (en) * | 2009-12-30 | 2011-06-30 | Selinger Robert D | Method and Controller for Performing a Copy-Back Operation |
CN103222006A (zh) * | 2010-11-02 | 2013-07-24 | 美光科技公司 | 回拷操作 |
CN107403645A (zh) * | 2016-05-12 | 2017-11-28 | 三星电子株式会社 | 非易失性存储器器件及其读取和拷回方法 |
Family Cites Families (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005332544A (ja) * | 2004-05-21 | 2005-12-02 | Sanyo Electric Co Ltd | データ符号化回路、データ符号化方法およびデータ記録装置 |
US8370561B2 (en) | 2006-12-24 | 2013-02-05 | Sandisk Il Ltd. | Randomizing for suppressing errors in a flash memory |
US8751467B2 (en) | 2007-01-18 | 2014-06-10 | Dot Hill Systems Corporation | Method and apparatus for quickly accessing backing store metadata |
US8661364B2 (en) | 2007-12-12 | 2014-02-25 | Sony Corporation | Planetary graphical interface |
US8301912B2 (en) | 2007-12-31 | 2012-10-30 | Sandisk Technologies Inc. | System, method and memory device providing data scrambling compatible with on-chip copy operation |
US20090187771A1 (en) * | 2008-01-17 | 2009-07-23 | Mclellan Jr Hubert Rae | Secure data storage with key update to prevent replay attacks |
US9223642B2 (en) | 2013-03-15 | 2015-12-29 | Super Talent Technology, Corp. | Green NAND device (GND) driver with DRAM data persistence for enhanced flash endurance and performance |
CN101807163A (zh) * | 2009-02-18 | 2010-08-18 | 英业达股份有限公司 | 保存及恢复基本输出输入系统数据的方法与系统 |
KR101563647B1 (ko) | 2009-02-24 | 2015-10-28 | 삼성전자주식회사 | 메모리 시스템 및 그것의 데이터 처리 방법 |
KR101575248B1 (ko) | 2009-04-30 | 2015-12-07 | 삼성전자주식회사 | 메모리 컨트롤러 및 그것을 포함하는 메모리 시스템 |
US9075733B1 (en) | 2010-05-20 | 2015-07-07 | Seagate Technology Llc | Selective storage of address mapping metadata in a system having multiple memories |
TWI455136B (zh) | 2010-07-01 | 2014-10-01 | Silicon Motion Inc | 用來進行資料整形之方法以及相關之記憶裝置及其控制器 |
US9158621B2 (en) * | 2011-08-29 | 2015-10-13 | Sandisk Technologies Inc. | System and method of copying data |
US20140115234A1 (en) | 2012-10-24 | 2014-04-24 | Samsung Electronics Co., Ltd. | Memory system comprising nonvolatile memory device and related method of operation |
US9318199B2 (en) | 2012-10-26 | 2016-04-19 | Micron Technology, Inc. | Partial page memory operations |
US20150199282A1 (en) | 2014-01-16 | 2015-07-16 | Storart Technology Co., Ltd. | Scramble random seed prediction method with storage device built-in data copy back procedure |
CN103777904B (zh) | 2014-02-12 | 2017-07-21 | 威盛电子股份有限公司 | 数据储存装置以及数据加扰与解扰方法 |
KR20160096435A (ko) | 2015-02-05 | 2016-08-16 | 에스케이하이닉스 주식회사 | 반도체 장치 및 이의 동작 방법 |
US10225082B2 (en) | 2016-07-26 | 2019-03-05 | International Business Machines Corporation | Carbon nanotube physical entropy source |
US10742237B2 (en) | 2018-06-21 | 2020-08-11 | Western Digital Technologies, Inc. | Memory device with adaptive descrambling |
US11658808B2 (en) * | 2019-08-21 | 2023-05-23 | Arm Limited | Re-encryption following an OTP update event |
KR20210029396A (ko) | 2019-09-06 | 2021-03-16 | 삼성전자주식회사 | 크랙 검출 구조물을 포함하는 반도체 장치 및 비휘발성 메모리 장치 |
FR3102272B1 (fr) | 2019-10-17 | 2022-07-15 | Amadeus | Génération périodique de fonction aléatoire dans le nuage informatique |
US10997070B1 (en) * | 2019-12-30 | 2021-05-04 | Micron Technology, Inc. | Efficient scrambling and encoding for copyback procedures using precomputed values |
US11256617B2 (en) | 2020-04-01 | 2022-02-22 | Micron Technology, Inc. | Metadata aware copyback for memory devices |
US11327884B2 (en) | 2020-04-01 | 2022-05-10 | Micron Technology, Inc. | Self-seeded randomizer for data randomization in flash memory |
-
2020
- 2020-04-01 US US16/837,384 patent/US11256617B2/en active Active
-
2021
- 2021-04-01 CN CN202110357854.5A patent/CN113496744B/zh active Active
- 2021-04-01 CN CN202211319224.XA patent/CN115497548A/zh not_active Withdrawn
-
2022
- 2022-02-21 US US17/676,595 patent/US11768766B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110161784A1 (en) * | 2009-12-30 | 2011-06-30 | Selinger Robert D | Method and Controller for Performing a Copy-Back Operation |
CN102782654A (zh) * | 2009-12-30 | 2012-11-14 | 桑迪士克科技股份有限公司 | 用于执行回拷操作的方法和控制器 |
CN103222006A (zh) * | 2010-11-02 | 2013-07-24 | 美光科技公司 | 回拷操作 |
CN107403645A (zh) * | 2016-05-12 | 2017-11-28 | 三星电子株式会社 | 非易失性存储器器件及其读取和拷回方法 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11327884B2 (en) | 2020-04-01 | 2022-05-10 | Micron Technology, Inc. | Self-seeded randomizer for data randomization in flash memory |
US11709771B2 (en) | 2020-04-01 | 2023-07-25 | Micron Technology, Inc. | Self-seeded randomizer for data randomization in flash memory |
US11768766B2 (en) | 2020-04-01 | 2023-09-26 | Micron Technology, Inc. | Metadata aware copyback for memory devices |
US12086058B2 (en) | 2020-04-01 | 2024-09-10 | Micron Technology, Inc. | Self-seeded randomizer for data randomization in flash memory |
Also Published As
Publication number | Publication date |
---|---|
US11256617B2 (en) | 2022-02-22 |
US20220171703A1 (en) | 2022-06-02 |
US20210311869A1 (en) | 2021-10-07 |
CN113496744B (zh) | 2022-11-04 |
CN115497548A (zh) | 2022-12-20 |
US11768766B2 (en) | 2023-09-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111108499B (zh) | Nand存储器装置、相关方法及机器可读媒体 | |
US11709771B2 (en) | Self-seeded randomizer for data randomization in flash memory | |
US11722323B2 (en) | Physical unclonable function with NAND memory array | |
CN113168358B (zh) | 具有奇偶校验保护的多个存储器装置 | |
CN113496744B (zh) | 用于存储器装置的元数据感知回拷 | |
CN111183481A (zh) | 数据损坏的安全擦除 | |
CN111656329A (zh) | 不可校正ecc | |
US11521690B2 (en) | NAND data placement schema | |
US20230367478A1 (en) | Clustered parity for nand data placement schema | |
CN113129978A (zh) | 使用奇偶校验增加存储器存取并行性 | |
CN111045852B (zh) | 移动nand奇偶校验信息技术 | |
CN114093406A (zh) | 一种存储器装置、系统、信息处理方法及可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |