CN112817878B - 操作具有动态可变属性的存储器的系统和方法 - Google Patents
操作具有动态可变属性的存储器的系统和方法 Download PDFInfo
- Publication number
- CN112817878B CN112817878B CN202011266436.7A CN202011266436A CN112817878B CN 112817878 B CN112817878 B CN 112817878B CN 202011266436 A CN202011266436 A CN 202011266436A CN 112817878 B CN112817878 B CN 112817878B
- Authority
- CN
- China
- Prior art keywords
- data
- memory
- attributes
- attribute
- received command
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
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/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/0292—User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
-
- 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
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- 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
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Computer Security & Cryptography (AREA)
- Read Only Memory (AREA)
Abstract
本申请涉及一种操作具有动态可变属性的存储器的系统和方法。可以定义一个特征,以允许将数据属性动态地分配给存储装置中的数据。例如,引入了称为“数据组”的特征。数据组定义为一系列本地块地址的分组。存储装置可以分为多个数据组。每个数据组可以有自己的数据属性配置,可以有指定的位数。定义了一个新命令,以允许主机动态地分配存储装置的数据组的属性。例如,所述命令可以通过将所述命令中的字节映射表从所述主机发送到所述存储装置来动态地分配数据组属性。
Description
技术领域
本公开的实施例总体上涉及存储器系统,并且更具体地,涉及存储器系统中数据属性的管理。
背景技术
通常提供存储器装置作为计算机或其它电子装置中的内部半导体集成电路。存在许多不同类型的存储器,包含易失性存储器和非易失性存储器。易失性存储器需要电力来维护其数据,并且尤其包含随机存取存储器(RAM)、动态随机存取存储器(DRAM)或同步动态随机存取存储器(SDRAM)。非易失性存储器可以在不通电时保留存储的数据,并且包含闪存、只读存储器(ROM)、电可擦除可编程ROM(EEPROM)、可擦除可编程ROM(EPROM)、电阻可变存储器,例如相变随机存取存储器(PCRAM)、电阻随机存取存储器(RRAM)、磁阻随机存取存储器(MRAM)或3D XPointTM存储器等。
闪存用作广泛的电子应用的非易失性存储器。闪存装置通常包含一或多组单晶体管、浮栅或电荷陷阱存储单元,其允许高存储密度、高可靠性和低功耗。两种常见类型的闪存阵列架构包含NAND架构和NOR架构,它们以逻辑形式命名,每种架构的基本存储器单元以逻辑形式布置的。存储器阵列的存储器单元通常布置成矩阵。在实例中,阵列的行中的每个浮置栅极存储器单元的栅极耦合到存取线(例如,字线)。在NOR架构中,阵列的列中的每个存储器单元的漏极耦合到数据线(例如,位线)。在NAND架构中,阵列的串中的每个存储器单元的漏极在源极线与位线之间以源极到漏极的方式串联耦合在一起。
发明内容
在一个方面,本公开涉及一种数据存储系统,所述系统包括:一或多个存储器装置,所述一或多个存储器装置包含多个数据组,其中,一个数据组是一系列本地块地址的分组;以及处理器,所述处理器配置为执行存储在系统中的一或多个组件上的指令,当处理器执行指令时,使得系统执行操作,所述操作包括:对对应于多个数据组中的一或多个数据组的接收的命令进行解码,所述接收的命令标识数据组的至少一个属性;以及响应于解码,在系统中执行关于一或多个数据组的功能。
在另一方面,本公开涉及一种向数据存储系统动态地更新数据信息的方法,所述方法包括:使用数据存储系统中的处理器对对应于多个数据组中的一或多个数据组的接收的命令进行解码,所述多个数据组包含在数据存储系统的一或多个存储器装置中,接收的命令包含至少一个数据组的至少一个属性的标识符;以及响应于解码,在系统中执行关于一或多个数据组的功能。
在又一方面,本公开涉及一种与数据存储装置介接的系统,所述系统包括:处理器,所述处理器配置为执行存储在系统中的一或多个组件上的指令,当处理器执行指令时,使得系统执行操作,所述操作包括:将属性分配给多个数据组中的一或多个数据组,所述多个数据组包含在数据存储装置的一或多个存储器装置中,一个数据组是一系列本地块地址的分组;将分配的属性编码成命令;以及将命令传送到数据存储装置。
附图说明
附图不一定按比例绘制,通常通过举例以非限制方式示出本文件中所讨论的各种实施例。
图1示出了根据各种实施例的包含存储器装置的环境的实例。
图2和3示出了根据各种实施例的三维NAND架构半导体存储器阵列的实例的示意图。
图4示出了根据各种实施例的存储器模块的实例框图。
图5是示出根据各种实施例的机器的实例的框图,在该机器上可以实施一或多个实施例。
图6是根据各种实施例的实例系统的框图,该实例系统包含与存储装置一起操作的主机,其中,主机可以动态地将数据属性分配给存储装置中的数据或加载到存储装置中的数据。
图7示出了根据各种实施例的被分成几个数据组的数据存储装置。
图8示出了根据各种实施例的实例数据属性配置。
图9示出了根据各种实施例的装置描述符的数据组特征支持的实例定义。
图10示出了根据各种实施例的单元描述符的数据组粒度的实例定义。
图11示出了根据各种实施例的针对通用闪存装置中的数据组的命令的使用的实例协议定义。
图12是根据各种实施例的从与数据存储装置介接的系统向数据存储系统动态地更新数据信息的实例方法的流程图。
图13是根据各种实施例的动态地更新数据存储系统中的数据信息的实例方法的流程图。
具体实施方式
以下详细描述是指通过图式示出可以实施的各种实施例的附图。充分详细地描述这些实施例以使得本领域普通技术人员能够实践这些和其它实施例。可以利用其它实施例,并且可以对这些实施例作出结构、逻辑、机械和电气改变。各种实施例不一定是相互排斥的,因为一些实施例可以与一或多个其它实施例组合以形成新的实施例。因此,以下详细描述不应被认为是限制性的。
存储在存储装置中的数据有其自身的属性。通过主机将数据的属性传递给存储装置,主机可以获得更好的性能和更长的寿命。此外,通过存储装置从主机接收该信息,存储装置可以更好地管理和存储数据。数据属性可以包含但不限于热或冷、快或慢存取、顺序存取或随机存取、只读和临时写入。对于主机和存储装置,这种数据属性可以有不同的相应的特性。冷数据是主机不经常覆盖的地址上的数据。冷数据可以被认为是例如媒体文件的静态数据,其不经常被重写,其实例可以包含但不限于操作系统(OS)、视频文件、音乐文件和图片。热数据是主机经常覆盖的地址上的数据。有效地可以由主机连续覆盖的热数据可以包含例如但不限于系统元数据。元数据是关于其它数据的信息。在各种实施例中,数据温度还可以包含例如正常、温暖等其它温度和用于重写的存取频率的其它刻度。
对于热或冷属性,主机的透视图可以是重写和读取数据的频率,而从存储装置的透视图来看,热或冷属性可以用于分隔物理位置,以提高写入放大(WA)。写入放大是与闪存和固态驱动器相关的一种情况,其中,物理写入存储介质的实际信息量是预期写入的逻辑量的倍数。对于快速存取与慢速存取属性,主机视角可能与数据存取时序的敏感性相关,而从存储装置视角来看,快速存取与慢速存取属性与以不同的块类型存储数据相关,例如,单层单元(SLC)与四层单元(QLC)。对于顺序存取与随机存取属性,主机视角可以与接触相邻LBA范围的逻辑块地址(LBA)的位置相关,而从存储装置视角来看,顺序存取与随机存取属性可以与块级与页级数据映射管理相关。对于只读属性,主机视角可以与操作系统(OS)映像二进制、应用程序执行文件或格式相关,而从存储装置视角来看,只读属性可以与块级管理相关。例如,对于临时写入属性,主机视角可以与用于SQL原子更新的日志记录相关,而从存储装置视角来看,临时写入属性可以与较少的数据保留请求相关。
现有的数据流方法是流标识(ID)或组号,这种方法是在主机最初将数据传输到存储装置时标记数据的属性。数据流只是一个静态标记。无法更改分配的数据属性。不幸的是,由于存储装置的“热数据分区”的大小有限,随着存储越来越多的数据,主机可能会错误地将一些数据标识为变得“冷”,并将数据从“热分区”中踢出,而另一个LBA范围变得“热”,这需要新的标记,这在传统方法中是不可用的。附加地,当最初发送数据时,主机不能预测数据总是按顺序存取。由于在某个时间内观察到正在存取的数据的位置,主机可能会在以后确认顺序存取行为。这个LBA范围然后应接收一个标记更新,这在传统方法中是不可用的。
在各种实施例中,可以定义特征以允许主机动态地分配数据属性。存储装置可以配置为接收动态地分配的数据属性的通知。例如,可以引入称为“数据组”的特征。本文中将数据组定义为一系列本地块地址的分组。存储装置可以分为多个数据组。每个数据组都可以有自己的数据属性配置。数据属性配置可以包含指定数量的位。例如,指定的位数可以是但不限于八位。本文定义了一个新命令,以允许主机动态地分配数据组的属性。例如,命令可以通过将命令中的字节映射表从主机发送到存储装置来动态地分配数据组的属性。该命令可以定义为“设置数据组”,但也可以使用其它名称。数据组的粒度可以由存储供应商根据与存储装置类型相对应的规范来定义。例如,在通用闪存(UFSTM)存储装置中,粒度可以包含在UFS“单元描述符”中。例如,考虑UFS装置。UFS装置的一种形式是128GB UFS。128GB UFS装置可管理为具有1024个数据组,其中,数据组粒度可以设置为128MB。对于本实例,整个装置的数据属性字节映射表的大小可以是1KB字节。
使用一或多个处理器的主机可以执行操作来动态地提供或更新存储器存储装置中的数据属性。主机可以将属性分配给多个数据组的一或多个数据组,其中,多个数据组包含在数据存储装置的一或多个存储器装置中。主机可以将分配的属性编码成命令,并将该命令发送到数据存储装置。数据存储装置的处理器装置可以操作来解码从主机接收的命令,其中,该命令对应于数据存储装置的一或多个数据组。响应于解码,数据存储装置的处理器装置可以操作来执行数据存储装置中关于一或多个数据组的功能。这些功能可以包含将数据重新分配给数据存储装置中的存储器块。可以将该命令添加到主机根据给定存储装置的规范与给定存储装置交互的一组命令中。此外,在这种存储装置的数据结构的相关标准的规范中引用的未使用的位位置可以由主机用来与给定类型的存储装置一起操作,以提供关于数据和数据组与给定存储装置的关系的信息,例如但不限于数据属性。
存储器装置可以包含单独的存储器管芯,该存储器管芯可以例如包含存储区域,该存储区域包括实施一种(或多种)选定存储技术的一或多个存储器单元阵列。这种存储器管芯通常包含用于操作存储器阵列的支持电路系统。其它实例,有时通常称为“管理的存储器装置”,包含与配置为控制一或多个存储器管芯的操作的控制器功能相关联的一或多个存储器管芯的组件。这种控制器功能可以简化与外部装置(例如主机)的互操作性。在这种管理的存储器装置中,控制器功能可以在一或多个也结合了存储器阵列的管芯上实施,或者在单独的管芯上实施。在其它实例中,一或多个存储器装置可以与控制器功能相结合以形成固态驱动器(SSD)存储卷。
本公开的实施例是在实施NAND闪存单元的管理存储器装置(称为“管理的NAND”装置)的实例中描述的。然而,这些实例并不限制本公开的范围,本公开可以以其它形式的存储器装置和/或其它形式的存储技术来实施。
NOR和NAND闪存架构半导体存储器阵列都通过解码器来存取,该解码器通过选择耦合到特定存储器单元的栅极的字线来激活该特定存储器单元。在NOR架构半导体存储器阵列中,一旦激活选定的存储器单元,就将其数据值置于位线上,从而导致有不同的电流流动,这取决于特定单元被编程的状态。在NAND架构半导体存储器阵列中,将高偏置电压施加到漏极侧选择栅极(SGD)线。以指定的通过电压(例如,Vpass)驱动耦合到每个组的未选定存储器单元的栅极的字线,以使每个组的未选定存储器单元作为传输晶体管操作(例如,以不受未选定存储器单元的存储的数据值限制的方式传输电流)。电流然后通过每个串联耦合组从源极线流到位线,仅受每个组的选定存储器单元的限制,将选定存储器单元的当前编码数据值置于位线上。
NOR或NAND架构半导体存储器阵列中的每个闪存单元可以单独地或共同地编程为一或多个编程状态。例如,单级单元(SLC)可以表示两个编程状态(例如,1或0)中的一个,表示一个数据位。闪存单元也可以表示两个以上编程状态,从而允许在不增加存储器单元的数量的情况下制造更高密度的存储器,因为每个单元可以表示一个以上的二进制数字(例如,超过一位)。此类单元可以称为多状态存储器单元、多位单元或多级单元(MLC)。在某些实例中,MLC可以指代可以在每个单元中存储两位数据(例如,四个编程状态中的一个)的存储器单元,三级单元(TLC)可以指代每个单元可以存储三位数据(例如,八个编程状态中的一个)的存储器单元,并且四级单元(QLC)可以每个单元存储四位数据。本文中的MLC在其更广泛的背景中用于指代可以在每个单元中存储一位以上的数据(即,可以表示两个以上的编程状态)的任何存储器单元。
管理的存储器装置可以根据公认的行业标准来配置和操作。例如,管理的NAND装置可以是(作为非限制性实例)UFS装置或嵌入式MMC装置(eMMCTM)等。例如,在上述实例的情况下,UFS装置可以根据联合电子装置工程委员会(JEDEC)标准(例如,JEDEC标准JESD223D,标题为“JEDEC UFS闪存3.0”,和/或该标准的更新或后续版本)。类似地,标识的eMMC装置也可以根据JEDEC标准JESD84-A51(标题为“JEDEC eMMC标准5.1”)和/或该标准的更新或后续版本进行配置。
SSD可以用作计算机的主要存储装置,在性能、尺寸、重量、耐用性、工作温度范围和功耗等方面优于带有移动组件的传统硬盘。例如,SSD可以减少寻道时间、等待时间或与磁盘驱动器(例如,机电等)相关联的其它延迟。SSD使用非易失性存储单元,例如闪存单元,以避免内部电池供电要求,从而使驱动器更加通用和紧凑。管理的NAND装置可以在各种形式的电子装置中用作主存储器或辅助存储器,并且通常用于移动装置。
SSD和管理的存储器装置都可以包含多个存储器装置,包含多个管芯或逻辑单元(例如,逻辑单元号或逻LUN),并且可以包含一或多个处理器或执行操作存储器装置或与外部系统介接所需的逻辑功能的其它控制器。这种SSD和管理的存储器装置可以包含一或多个闪存管芯,包含其上的多个存储器阵列和外围电路系统。闪存阵列可以包含组织为多个物理页的多个存储器单元块。在一些实例中,SSD还可以包含DRAM或静态随机存取存储器(SRAM)(或其它形式的存储器管芯或其它存储器结构)。类似地,管理的“NAND”装置可以包含一或多个易失性和/或非易失性存储器阵列,其与“NAND”存储阵列分离,并且在控制器内或与控制器分离。SSD和管理的NAND装置都可以从主机接收与存储器操作相关联的命令,例如读取或写入操作,以在存储器装置与主机之间传输数据(例如,用户数据和相关联的完整性数据,例如错误数据和地址数据等),或者擦除操作,以从存储器装置擦除数据。
电子装置,例如移动电子装置(例如,智能手机、平板电脑等)、用于汽车应用的电子装置(例如,汽车传感器、控制单元、驾驶员辅助系统、乘客安全或舒适系统等)以及互联网连接的电器或装置(例如,物联网装置(IoT)等),根据电子装置的类型、使用环境、性能预期等,具有不同的存储需求。
电子装置可以分解成几个主要组件:处理器(例如,中央处理器(CPU)或其它主处理器);存储器(例如,一或多个易失性或非易失性RAM存储器装置,例如DRAM、移动或低功率双数据速率同步DRAM(DDR SDRAM)等;和存储装置(例如,非易失性存储器(NVM)装置,例如闪存、ROM、SSD、MMC或其它存储卡结构或组件等。在某些实例中,电子装置可以包含用户界面(例如,显示器、触摸屏、键盘、一或多个按钮等)、图形处理单元(GPU)、电源管理电路、基带处理器或一或多个收发器电路等。
图1示出了环境100的实例,包含配置为通过通信接口通信的主机装置105和存储器装置110。主机装置105或存储器装置110可以包含在各种产品150中,例如IoT装置(例如,冰箱或其它电器、传感器、马达或致动器、移动通信装置、汽车、无人机等),以支持产品150的处理、通信或控制。
存储器装置110包含存储器处理装置115和存储器阵列120,该存储器阵列包含例如多个单独的存储器管芯(例如,3D NAND管芯堆叠)。在3D架构半导体存储器技术中,堆叠了垂直结构,增加了层、物理页的数量,并因此增加了存储器装置的密度(例如,存储器装置)。在实例中,存储器装置110可以是主机装置105的分立存储器或存储器装置组件。在其它实例中,存储器装置110可以是集成电路的一部分(例如,片上系统(SOC)等),堆叠或以其它方式包含在主机装置105的一或多个其它组件中。
一或多个通信接口可以用于在存储器装置110与主机装置105的一或多个其它组件之间传输数据,这些组件例如串行高级技术附件(SATA)接口、外围组件互连高速(PCIe)接口、通用串行总线(USB)接口、UFS接口、eMMCTM接口或一或多个其它连接器或接口。主机装置105可以包含主机系统、电子装置、处理器、存储卡读取器或存储器装置110外部的一或多个其它电子装置。在一些实例中,主机装置105可以是具有参考图5的机器500讨论的组件的一些部分或全部的机器。
存储器处理装置115可以从主机装置105接收指令,并且可以与存储器阵列120通信,例如向存储器阵列120的一或多个存储器单元、平面、子块、块或页传输数据(例如,写入或擦除)或从其传输数据(例如,读取)。存储器处理装置115可以包含电路系统或固件等,包含一或多个组件或集成电路。例如,存储器处理装置115可以包含一或多个存储器控制单元、电路或组件,其配置为控制存储器阵列120上的存取并在主机装置105与存储器装置110之间提供转换层。存储器处理装置115可以包含一或多个输入/输出(I/O)电路、线路或接口,以向存储器阵列120传输数据或从其传输数据。存储器处理装置115可以包含存储器管理器125和阵列控制器135。
存储器管理器125尤其可以包含电路系统或固件,例如与各种存储器管理功能相关联的多个组件或集成电路。在一些实施例中,存储器管理器125的功能由执行固件指令的控制器(或处理器)实施。例如,在一些实例中,存储器管理器125可以至少部分地由一或多个处理器实施,例如可以在图6的处理装置615中找到的处理器,其可以执行存储在存储器中的指令,例如存储在图6的存储器616中或存储器装置612-1……612-N中的一或多个中的指令。管理表130可以类似地存储在存储器处理装置115上,在任一这样的存储器装置位置中。在其它实例中,指令和/或管理表130可以存储在NAND管芯堆栈120的某些块中,并且在操作期间加载到存储器处理装置115的工作存储器中。
本领域技术人员将认识到,在一些实例中,存储器管理器125和阵列控制器135的组件和功能可以由本文描述的组件(或其子集)的任何组合来实施,例如图6的处理装置615和存储器装置612-1……612-N;并且可以包含附加的硬件组件。
出于本说明书的目的,将在NAND存储器的背景下描述实例存储器操作和管理功能。本领域技术人员将认识到,其它形式的非易失性存储器可以具有类似的存储器操作或管理功能。此类NAND管理功能包含磨损均衡(例如,垃圾收集或回收)、错误检测或纠错、块报废或者一或多种其它存储器管理功能。存储器管理器125可以将主机命令(例如,从主机接收的命令)解析或格式化为装置命令(例如,与存储器阵列的操作相关联的命令等),或者为阵列控制器135或存储器装置110的一或多个其它组件生成装置命令(例如,以实现各种存储器管理功能)。
存储器管理器125可以包含一组管理表130,其配置为维护与存储器装置110的一或多个组件相关联的各种信息(例如,与耦合到存储器处理装置115的存储器阵列或一或多个存储器单元相关联的各种信息)。例如,管理表130可以包含关于耦合到存储器处理装置115的一或多个存储单元块的块年龄、块擦除计数、错误历史或一或多个错误计数(例如,写操作错误计数、读位错误计数、读操作错误计数、擦除错误计数等)的信息。在某些实例中,如果错误计数中的一或多个的检测到的错误的数量高于阈值,则位错误可以称为不可修正的位错误。管理表130尤其可以维护可修正或不可修正位错误的计数。
阵列控制器135尤其可以包含电路系统或组件,该电路系统或组件配置为控制与向耦合到存储器处理装置115的存储器装置110的一或多个存储器单元写入数据、从其读取数据或擦除该一或多个存储器单元相关联的存储器操作。例如,存储器操作可以基于从主机装置105接收的主机命令,或者由存储器管理器125内部生成(例如,与磨损均衡、错误检测或校正等相关联)。
阵列控制器135可以包含纠错码(ECC)组件140,该纠错码组件尤其可以包含ECC引擎或其它电路系统,ECC引擎或其它电路系统配置为检测或纠正与向耦合到存储器处理装置115的存储器装置110的一或多个存储单元写入数据或从其读取数据相关联的错误。阵列控制器135可以包含数据组管理组件142,其可以包含用于对具有数据组的数据属性的命令进行解码的指令。存储器处理装置115可以配置为主动检测和恢复与数据的各种操作或存储相关联的错误发生(例如,位错误、操作错误等),同时保持主机装置105与存储器装置110之间传输的数据的完整性,或者保持存储的数据的完整性(例如,使用冗余RAID存储等),并且可以移除(例如,退出)故障存储器资源(例如,存储器单元、存储器阵列、页、块等)以防止将来的错误。
例如,存储器阵列120可以包含布置在多个装置、平面、子块、块或页中的几个存储器单元。作为一个实例,48GB TLC NAND存储器装置可以包含每页18,592字节(B)的数据(16,384+2208字节)、每个块1536页、每个平面548块以及每个装置4个或更多个平面。作为另一个实例,32GB多层存储器装置(每个单元存储两位数据(即,4个可编程状态))可以包含每页18,592字节(B)的数据(16,384+2208字节)、每个块1024页、每个平面548块和每个装置4个平面,但是具有所需写入时间的一半和作为对应TLC存储器装置的编程/擦除(P/E)周期的两倍。其它实例可以包含其它数字或布置。在一些实例中,存储器装置或其一部分可以选择性地以SLC模式或期望的MLC模式(例如TLC、QLC等)操作。
在操作中,数据通常以页的形式写入到NAND存储器装置110或从该NAND存储器装置读取,并且以块的形式擦除。然而,根据需要,可以在更大或更小组的存储器单元上执行一或多个存储器操作(例如,读、写、擦除等)。“NAND”存储器装置110的数据传输大小通常称为页,而主机的数据传输大小通常称为扇区。
尽管数据页可以包含多个字节的用户数据(例如,包含多个数据扇区的数据有效负荷)及其对应的元数据,但是页的大小通常仅指代用于存储用户数据的字节数。作为实例,页大小为4KB的数据页可以包含4KB用户数据(例如,假设扇区大小为512B的8个扇区)以及与用户数据相对应的多个字节(例如,32B、54B、224B等)的元数据,例如完整性数据(例如,错误检测或修正代码数据)、地址数据(例如,逻辑地址数据等)或与用户数据相关联的其它元数据。
不同类型的存储器单元或存储器阵列120可以提供不同的页大小,或者可能需要与其关联的不同数量的元数据。例如,不同的存储器装置类型可能具有不同的误码率,这可能导致确保数据页的完整性所必需的不同数量的元数据(例如,具有较高误码率的存储器装置可能比具有较低误码率的存储器装置需要更多字节的纠错码数据)。作为实例,与对应的SLC NAND闪存装置相比,MLC NAND闪存装置可能具有更高的误码率。这样,与对应的SLC装置相比,MLC装置可能需要更多的元数据字节用于错误数据。
图2示出了3D NAND架构半导体存储器阵列200的实例示意图,其可以实施为图1的存储器阵列120。3D NAND架构半导体存储器阵列200可以包含以块(如A块201A、B块201B等)和子块(例如,子块A0 201A0、子块An 201An、子块B0 201B0、子块Bn 201Bn等)组织的多个存储器单元串(例如,第一至第三A0存储器串205A0-207A0、第一至第三An存储器串205An-207An、第一至第三B0存储器串205B0-207B0、第一至第三Bn存储器串205Bn-207Bn等)。存储器阵列200表示通常在存储器装置的块、装置或其它单元中发现的更多类似结构的一部分。
每个存储器单元串包含在源极线(SRC)235或源极侧选择栅极(SGS)(例如,第一至第三A0 SGS 231A0-233A0、第一至第三An SGS 231An-233An、第一至第三B0 SGS 231B0-233B0、第一至第三Bn SGS 231Bn-233Bn等)与漏极侧选择栅极(SGD)(例如,第一至第三A0SGD 226A0-228A0、第一至第三An SGD 226An-228An、第一至第三B0 SGD 226B0-228B0、第一至第三Bn SGD 226Bn-228Bn等)之间沿源极到漏极的Z方向堆叠的多层电荷存储晶体管(例如,浮置栅极晶体管、电荷俘获结构等)。3D存储器阵列中的每个存储器单元串可以沿着X方向布置成数据线(例如,位线(BL)BL0至BL2 220-222)并且沿着Y方向布置成物理页。
在物理页内,每个层表示一行存储器单元,而每个存储器单元串表示一列。子块可以包含一或多个物理页。块可以包含多个子块(或物理页)(例如,128、256、384个等)。尽管在本文中示为具有两个块,其中,每个块具有两个子块,每个子块具有单个物理页,每个物理页具有三个存储器单元串,并且每个串具有8层存储器单元,但在其它实例中,存储器阵列200可以包含更多或更少的块、子块、物理页、存储器单元串、存储器单元或层。例如,每个存储器单元串可以根据需要包含更多或更少的层(例如,16、32、64、128层等)以及电荷存储晶体管上方或下方的一或多个附加的半导体材料层(例如,选择栅极、数据线等)。作为实例,48GB TLC NAND存储器装置可以包含每页18,592字节(B)的数据(16,384+2208字节)、每个块1536页、每个平面548块以及每个装置4个或更多个平面。
存储器阵列200中的每个存储器单元包含耦合到(例如,电气地或以其它方式操作地连接到)存取线(例如,字线(WL)WL00-WL70 210A-217A、WL01-WL71 210B-217B等)的控制栅极(CG),该存取线根据需要跨特定的层或层的一部分而共同地耦合控制栅极(CG)。3D存储器阵列200中的特定层以及相应的串中的特定存储器单元可以使用相应的存取线来存取或控制。可以使用各种选择线来存取选择栅极组。例如,第一至第三A0 SGD 226A0-228A0可以使用A0 SGD线SGDA0 225A0来存取,第一至第三An SGD 226An-228An可以使用An SGD线SGD225An来存取,第一至第三B0 SGD 226B0-228B0可以使用B0 SGD线SGDB0 225B0来存取,并且第一至第三Bn SGD 226Bn-228Bn可以使用Bn SGD线SGDBn 225Bn来存取。第一至第三A0 SGS231A0-233A0和第一至第三An SGS 231An-233An可以使用栅极选择线SGS0 230A来存取,第一至第三B0 SGS231B0-233B0和第一至第三Bn SGS 231Bn-233Bn可以使用栅极选择线SGS1230B来存取。
在实例中,存储器阵列200可以包含多级半导体材料(例如,多晶硅等),该半导体材料配置为耦合阵列200的相应层的每个存储器单元的或选择栅极(或CG或选择栅极的一部分)的CG。可以使用位线(BL)和选择栅极等的组合来存取、选择或控制阵列中的特定存储器单元串,并且可以使用一或多个存取线(例如,字线)来存取、选择或控制特定串中的一或多个层处的特定存储器单元。
图3示出了NAND架构半导体存储器阵列300的一部分的实例示意图,其可以实施为图1的存储器阵列120。NAND架构半导体存储器阵列300的该部分可以包含以串(例如,第一至第三串305-307)和层(例如,示出为相应的字线(WL)WL0-WL7 310-317、漏极侧选择栅极(SGD)线325、源极侧选择栅极(SGS)线330等)的2D阵列布置的多个存储器单元302,以及读出放大器或装置360。例如,存储器阵列300可以说明3D NAND架构半导体存储器装置的存储器单元的一个物理页的一部分的实例示意图,例如图2中所示。
每个存储器单元串使用相应的源极侧选择栅极(SGS)(例如,第一至第三SGS 331-333)耦合到源极线(SRC)335,并且使用相应的漏极侧选择栅极(SGD)(例如,第一至第三SGD326-328)耦合到相应的数据线(例如,第一至第三位线(BL)BL0-BL2 320-322)。尽管在图3的实例中示为具有8个层(例如,使用字线(WL)WL0-WL7 310-317)和三个数据线(BL0-BL2326-328),但是其它实例可以根据需要包含具有更多或更少层或数据线的存储器单元串。
在NAND架构半导体存储器阵列(例如实例存储器阵列300)中,可以通过感测与含有选定存储器单元的特定数据线相关联的电流或电压变化来存取选定存储器单元302的状态。可以(例如,通过控制电路、一或多个处理器、数字逻辑等)使用一或多个驱动器来存取存储器阵列300。在实例中,取决于期望对特定存储器单元或存储器单元组执行的操作类型,一或多个驱动器可以通过将特定电位驱动到一或多个数据线(例如,位线BL0-BL2)、存取线(例如,字线WL0-WL7)或选择栅极来激活特定存储器单元或存储器单元组。
为了将数据编程或写入到存储器单元,可以将编程电压(Vpgm)(例如,一或多个编程脉冲等)施加到选定字线(例如,WL4),并且因此施加到耦合到选定字线的每个存储器单元的控制栅极(例如,耦合到WL4的存储器单元的第一至第三CG(341-343))。编程脉冲可以在(例如)15V处或附近开始,并且在某些实例中,可以在每个编程脉冲施加期间增加量值。在将编程电压施加到选定字线时,可以将例如接地电位(例如,Vss)等电位施加到旨在进行编程的存储器单元的数据线(例如,位线)和衬底(因此施加到源极与漏极之间的沟道),从而导致从沟道到目标存储器单元的浮动栅极的电荷传输(例如,直接注入或福勒-诺得海姆(Fowler-Nordheim,FN)隧穿等)。
相反,可以将通过电压(Vpass)施加到具有未旨在进行编程的存储器单元的一或多个字线,或者可以将抑制电压(例如,Vcc)施加到具有未旨在进行编程的存储器单元的数据线(例如,位线),以(例如)抑制电荷从沟道传输到此类非目标存储器单元的浮动栅极。通过电压可以是可变的,这取决于例如所施加的通过电压与旨在进行编程的字线的接近程度。抑制电压可以包含相对于接地电位(例如,Vss)的电源电压(Vcc),例如来自外部源或电源(例如,电池、AC至DC转换器等)的电压。
作为实例,如果将编程电压(例如,15V或更大电压)施加到特定字线(例如WL4),则可以将10V的通过电压施加到一或多个其它字线(例如WL3、WL5等),以抑制对非目标存储器单元的编程,或者保持存储在不旨在进行编程的此类存储器单元上的值。随着所施加的编程电压与非目标存储器单元之间的距离增加,禁止对非目标存储器单元编程所需的通过电压可以减小。例如,在将15V的编程电压施加到WL4的情况下,可以将10V的通过电压施加到WL3和WL5,可以将8V的通过电压施加到WL2和WL6,可以将7V的通过电压施加到WL1和WL7等。在其它实例中,通过电压或字线的数量等可更高或更低,或者更多或更少。
耦合到数据线中的一或多个(例如,第一、第二或第三位线(BL0-BL2)320-322)的感测放大器360可以通过感测特定数据线上的电压或电流来检测相应的数据线中的每个存储器单元的状态。
在施加一或多个编程脉冲(例如,Vpgm)之间,可以执行检验操作以确定选定存储器单元是否已达到其预期编程状态。如果选定存储器单元已达到其预期编程状态,则可以抑制其进一步编程。如果选定存储器单元尚未达到其预期编程状态,则可以施加附加的编程脉冲。如果选定存储器单元在特定数量(例如,最大数量)的编程脉冲之后尚未达到其预期编程状态,则可以将选定存储器单元或与此选定存储器单元相关联的串、块或页标记为有缺陷。
为了擦除存储器单元或存储器单元组(例如,通常在块或子块中执行擦除),可以将擦除电压(Vers)(例如,通常为Vpgm)施加到旨在(例如,使用一或多个位线、选择栅极等)进行擦除的存储器单元的衬底(以及因此源极与漏极之间的沟道),同时将目标存储器单元的字线保持在例如接地电位(例如,Vss)等的电位,从而导致从目标存储器单元的浮动栅极到沟道的电荷传输(例如,直接注入或FN隧穿等)。
图4示出了可以在图1的存储器装置110中实施的存储器装置400的实例框图,包含具有多个存储器单元404的存储器阵列402,以及提供与存储器阵列402的通信或对其执行一或多个存储器操作的一或多个电路或组件。存储器装置400可以包含行解码器412、列解码器414、读出放大器420、页缓冲器422、选择器424、I/O电路426和存储器控制单元430。
可以将存储器阵列404的存储器阵列402布置成块,例如第一块402A和第二块402B。每个块可以包含子块。例如,第一块402A可以包含第一子块402A0和第二子块402An,第二块402B可以包含第一子块402B0和第二子块402Bn。每个子块可以包含多个物理页,每个页包含多个存储单元404。尽管在本文中示为具有两个块,其中,每个块具有两个子块,并且每个子块具有多个存储器单元404,但是在其它实例中,存储器阵列402可以包含更多或更少的块、子块、存储器单元等。在其它实例中,存储器单元404可以布置成多个行、列、页、子块、块等,并且使用(例如)存取线406、第一数据线410或一或多个选择栅极、源极线等来存取。
存储器控制单元430可以根据在控制线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中,感测放大器420中的一或多个可以响应于存储器阵列402中通过选定串流到达数据线410的读取电流而读取选定存储器单元404中的逻辑电平。
存储器装置400外部的一或多个装置可以使用I/O线(DQ0-DQN)408、地址线416(A0-AX)或控制线432与存储器装置400通信。I/O电路426可以使用I/O线408,根据例如控制线432和地址线416,将数据值传入或传出存储器装置400,例如传入或传出页缓冲器422或存储器阵列402。页缓冲器422可以在将数据编程到存储器阵列402的相关部分之前存储从存储器装置400外部的一或多个装置接收的数据,或者可以在将数据发送到存储器装置400外部的一或多个装置之前存储从存储器阵列402读取的数据。
列解码器414可以接收地址信号(A0-AX)并将其解码为一或多个列选择信号(CSEL1-CSELn)。选择器424(例如,选择电路)可以接收列选择信号(CSEL1-CSELn)并选择页缓冲器422中的数据,该数据表示待从存储器单元404读取或待编程到该存储器单元中的数据的值。可以在页缓冲器422与I/O电路426之间使用第二数据线418传输选定数据。
存储器控制单元430可以从外部源或电源(例如,内部或外部电池、AC至DC转换器等)接收正和负电源信号,例如电源电压(Vcc)434和负电源(Vss)436(例如,接地电位)。在某些实例中,存储器控制单元430可以包含调节器428以在内部提供正或负电源信号。
图5示出了实例机器500的框图,在该机器上可以执行本文讨论的任何一或多种技术(例如,方法)。在替代实施例中,机器500可以作为独立装置操作,或者可以连接(例如,联网)到其它机器。在网络部署中,机器500可以在服务器-客户端网络环境中以服务器机器、客户端机器或两者的能力进行操作。在实例中,机器500可以在对等(P2P)(或其它分布式)网络环境中充当对等机器。机器500可以是个人计算机(PC)、平板计算机、机顶盒(STB)、个人数字助理(PDA)、移动电话、网络装置、IoT装置、汽车系统或能够执行指令(顺序的或其它的)的任何机器,该指令指定该机器要采取的动作。进一步,尽管仅示出了单个机器,但是术语“机器”还应被认为包含单独或联合执行指令集(或多个指令集)以执行本文讨论的任何一或多种方法的任何机器集合,例如云计算、软件即服务(SaaS)、其它计算机集群配置。实例机器500可以布置成在图1的环境100中操作。实例机器500可以包含一或多个存储器装置,其具有关于图2的存储器阵列200、图3的存储器阵列300和图4的存储器装置400所讨论的结构。
如本文所述,实例可以包含逻辑、组件、装置、封装或机制,或者可以由其操作。电路系统是在包含硬件(例如,简单电路、门、逻辑等)的有形实体中实施的电路系的集合(例如,一组电路)。电路系统成员资格可以随时间推移以及潜在的硬件可变性而灵活变化。电路包含可以在操作时单独或组合执行特定任务的成员。在实例中,电路系统的硬件可以不变地设计为执行特定操作(例如,硬连线)。在实例中,电路系统的硬件可以包含可变连接的物理组件(例如,执行单元、晶体管、简单电路等),其包含物理修改的计算机可读介质(例如,不变的聚集粒子的磁、电、可移动放置等)对特定操作的指令进行编码。在连接物理组件的过程中,硬件组件的基本电气性能会发生变化,例如,从绝缘体变为导体,反之亦然。该指令使得加入硬件(例如,执行单元或加载机构)能够经由可变连接在硬件中创建电路系统的成员以在操作时执行特定任务的一部分。因此,当装置运行时,计算机可读介质通信地耦合到电路系统的其它组件。在实例中,任何物理组件都可以在一个以上电路系统的一个以上成员中使用。例如,在操作下,执行单元可以在一个时间点在第一电路系统的第一电路中使用,并且可以在不同的时间由第一电路系统中的第二电路或第二电路系统中的第三电路重新使用。
机器(例如,计算机系统)500(例如,主机装置105、存储器装置110等),可以包含硬件处理器502(例如,CPU、GPU、硬件处理器核心或其任意组合,例如存储器处理装置115等)、主存储器504和静态存储器506,它们中的一些或全部可以通过互连(例如,总线)508彼此通信。机器500可以进一步包含显示装置510、字母数字输入装置512(例如,键盘)和用户界面(UI)导航装置514(例如,鼠标)。在实例中,显示装置510、输入装置512和UI导航装置514可以是触摸屏显示器。附加地,机器500可以包含存储装置(例如,驱动单元)521、信号生成装置518(例如,扬声器)、网络接口装置520和一或多个传感器516,例如全球定位系统(GPS)传感器、指南针、加速度计或其它传感器。机器500可以包含输出控制器528,例如串行(例如,USB、并行或其它有线或无线(例如,红外(IR)、近场通信(NFC)等)连接,以通信或控制一或多个外围装置(例如,打印机、读卡器等)。
机器500可以包含机器可读介质522,其上存储有一或多组数据结构或指令524(例如,软件),这些数据结构或指令体现或由本文描述的任何一或多种技术或功能所利用。在机器500执行指令524期间,该指令还可以完全或至少部分地驻留在主存储器504内、静态存储器506内或硬件处理器502内。在实例中,硬件处理器502、主存储器504、静态存储器506或存储装置521中的一个或任意组合可以构成机器可读介质522。指令524可以包含使用数据组进行数据管理的指令。这种数据管理可以包含解码具有分配给数据组的数据属性的接收的命令。
虽然机器可读介质522示出为单个介质,但是术语“机器可读介质”可以包含单个介质或多个介质(例如,集中式或分布式数据库,或相关联的高速缓存和服务器),该介质配置为存储一或多个指令524。
术语“机器可读介质”可以包含能够存储、编码或携带由机器500执行的指令并使机器500执行本公开的任何一或多种技术的任何介质,或者能够存储、编码或携带由这些指令使用或与这些指令相关联的数据结构的任何介质。非限制性机器可读介质实例可以包含固态存储器以及光学和磁性介质。在实例中,聚集的机器可读介质包括具有多个粒子的机器可读介质,这些粒子具有不变(例如,静止)质量。因此,聚集的机器可读介质不是暂时传播的信号。聚集的机器可读介质的具体实例可以包含:非易失性存储器,例如半导体存储器装置(例如,EPROM、EEPROM)和闪存装置;磁盘,例如内部硬盘和可移动磁盘;磁光盘;光盘ROM(CD-ROM)和数字多功能光盘只读存储器(DVD-ROM)光盘。
指令524(例如,软件、程序、操作系统(OS)等)或者其它数据存储在存储装置521上,可以由存储器504存取以由处理器502使用。存储器504(例如,DRAM)通常是快速的,但是易失性的,因此是与存储装置521不同的存储类型(例如,SSD),适合长期存储,包含处于“关闭”状态时。用户或机器500使用的指令524或数据通常加载到存储器504中以由处理器502使用。当存储器504满时,可以分配来自存储装置521的虚拟空间来补充存储器504;然而,因为存储装置521通常比存储器504慢,并且写速度通常至少是读速度的两倍,所以由于存储装置等待时间(与存储器504相反,例如,DRAM)。进一步,将存储装置521用于虚拟存储器可以大大缩短存储装置521的可用寿命。
与虚拟存储器相反,虚拟存储器压缩(例如,内核特征“ZRAM”)使用部分存储器作为压缩块存储,以避免对存储装置521的分页。分页发生在压缩块中,直到需要将这样的数据写入存储装置521。虚拟存储器压缩增加了存储器504的可用大小,同时减少了存储装置521的磨损。
针对移动电子装置或移动存储优化的存储装置传统上包含MMC固态存储装置(例如,micro Secure Digital(microSDTM)卡等。MMC装置包含多个并行接口(例如,8位并行接口),并且通常是可移除的,并且是与主机装置分离的组件。相比之下,eMMCTM装置连接到电路板,被视为主机装置的一个组件,其读取速度可与基于SATA的SSD装置相媲美。然而,对移动装置性能的需求持续增加,例如完全启用虚拟或增强现实装置、利用不断提高的网络速度等。为了响应这一需求,存储装置已经从并行通信接口转变为串行通信接口。包含控制器和固件在内的UFS装置使用具有专用读/写路径的低压差分信号(LVDS)串行接口与主机装置通信,进一步提高了读/写速度。
指令524可以进一步使用传输介质经由网络接口装置520利用多种传输协议(例如,帧中继、互联网协议(IP)、传输控制协议(TCP)、用户数据报协议(UDP)、超文本传输协议(HTTP)等)中的任何一种在通信网络526上发送或接收。实例通信网络可以包含局域网(LAN)、广域网(WAN)、分组数据网络(例如,因特网)、移动电话网络(例如,蜂窝网络)、普通老式电话(POTS)网络和无线数据网络(例如,称为的电气电子工程师学会(IEEE)802.11系列标准、称为的IEEE 802.16系列标准)、IEEE 802.15.4系列标准、对等(P2P)网络等。在实例中,网络接口装置520可以包含一或多个物理插孔(例如,以太网、同轴或电话插孔)或一或多个天线,以连接到通信网络526。在实例中,网络接口装置520可以包含多个天线,以使用单输入多输出(SIMO)、多输入多输出(MIMO)或多输入单输出(MISO)技术中的至少一种进行无线通信。术语“传输介质”应理解为包含能够存储、编码或携带由机器500执行的指令的任何有形介质,并且包含传播数字或模拟通信信号的手段或有助于这种软件的通信的其它有形介质。
图6是实例系统600的实施例的框图,该实例系统包含与存储装置610一起操作的主机605,其中,主机605可以动态地将数据属性分配给存储装置610中的或加载到该存储装置中的数据。可以相对于图1的环境100实施实例系统600。实例系统600可以相对于存储装置610来实施,该存储器装置具有一或多个存储器装置,该存储器装置具有关于图2的存储阵列200、图3的存储阵列300和图4的存储器装置400所讨论的结构。
在该实例实施例中,主机605通过接口620耦合到存储装置610。存储装置610可以包含耦合到存储器装置612-1……612-N的处理装置615,其中N是等于或大于1的整数。图6中未示出的总线可以用于将处理装置615耦合到存储装置612-1……612-N。存储器装置612-1……612-N可以是NAND存储器装置。尽管图6中示出了四个存储器装置,但是存储装置610可以用少于或多于四个的存储器装置来实施,也就是说,存储装置610可以包括一或多个存储器装置。存储器装置可以以多种格式实现,包含但不限于多个存储器管芯。处理装置615可以包含或构造为一或多个处理器,例如但不限于CPU。处理装置615可以构造为一或多个存储器控制器。
在实例系统600中,处理装置615配置(例如,硬件和/或软件实施方式)为执行与接收和使用根据本文描述的方法(包含与图7至13相关联的方法)动态地分配给存储装置610中的数据的数据属性相关的操作。例如,处理装置615可以存例如本文所述的用于对数据属性进行操作的指令。指令可以存储在存储器616中或者存储在处理装置615外部的存储装置610的组件中。存储器616或处理装置615可以包括可由处理装置615执行的代码,以至少管理存储器装置612-1……612-N。存储器616可以包含固件,固件包含指令。可替代地,固件可以驻留在耦合到处理装置615的存储装置610的存储器装置中,该存储器装置与存储器装置612-1……612-N分离。固件可以包含具有可由处理装置615执行的指令的代码,以在存储器装置612-1……612-N上操作。如本文所教导的,可由处理装置615执行的指令可以包含对已编程或正编程到存储装置610的存储器装置612-1……612-N中的数据执行数据属性处理的指令。
系统600及其组件可以以多种不同的布置来结构化。例如,系统600可以设置有包括主机605、接口620、存储装置610、存储器装置612-1……612-N和处理装置615的组件类型的变化。主机605可以包括一或多个处理器,该处理器的类型可以变化。接口620可以布置成(但不限于)PCIe接口。存储装置610可以构造为但不限于SSD、UFS装置或eMMC装置。例如,存储装置610可以构造为移动存储装置。存储装置610可以构造为管理的“NAND”系统。存储器装置612-1……612-N可以是NAND存储器装置。处理装置615可以包含或构造为与存储器装置612-1……612-N兼容的一或多种类型的处理器。
存储装置610可以包含协议接口611,以解释从耦合到主机605的接口620接收的输入。协议接口611可以包含硬件和用于在主机605和存储装置610之间交换信息的指令,这些指令提供了定义如何传递和解释数据的规范。协议接口611可以布置用于UFS协议、eMMC协议或其它协议。存储装置610可以包含错误校正单元(ECU)613,其配置为检测或校正与向存储装置610写入数据或从该存储装置读取数据相关联的错误。
在各种实施例中,处理装置615可以具有存储在存储器616中的指令,例如可由处理装置615执行的微码,以在存储装置610的存储器装置612-1……612-N上操作,其中存储装置612-1……612-N包含多个数据组,其中数据组是一系列LBA的分组。指令可以永久存储在实现为控制器的处理装置615中。可替代地,指令可以存储在存储器装置612-1……612-N的存储器管芯上,并且在启动/初始化时加载到处理装置615的存储器616中,在一些实例中,存储器616可以实现为SRAM。可以执行这些指令以执行以下操作:解码对应于存储装置610的多个数据组中的一或多个数据组的接收的命令,并响应于解码而执行关于一或多个数据组的功能。这些功能可以包含响应于确定存储在存储装置610中的数据的属性,重新组织存储装置610中的一些数据的存储。这些动作可以是对特定数据的一或多个属性的变化的确定的响应。
用于操作存储装置610的指令的变型可以包含多个不同的实施例,这些实施例可以根据这些指令的应用和/或实施这些指令的系统的体系结构来组合。当由处理装置615执行时,这些指令可以导致操作的执行,这些操作可以包含关于从例如主机605的主机接收命令的操作。随着主机对数据的利用发生变化,存储装置610中的数据的特征也发生变化。这种特征的改变可以通过重新分配属性给数据组来实现。例如,数据可以从热数据变成冷数据。例如主机605等主机可以将属性重新分配给数据组,并将新的属性发送给存储装置,这允许存储装置基于例如热数据和冷数据的新的重新分配来映射存储器。具有对数据组的其它属性改变的接收的命令允许存储装置610动态地改变与存储装置610中的数据相关联的属性,使得存储装置610可以有效地维护其存储的数据。
接收的命令可以是对存储装置610接收数据组属性表的请求。数据组属性表可以包含一组完整的数据组列表,其中,一些可以具有更新的属性。接收的命令可以包含多个数据组的数据属性。在各种实施例中,从主机605接收的命令可以包含指定数量的数据组的每个数据组的数据结构,其中,该数据结构标识相应的数据组的至少一个属性。该数据结构可以包含对应于多个对应的属性的多个位位置。数据结构可以包括一个字节,该字节具有分配给一个属性的一个位位置。在各种实施例中,数据结构可以包含六个位位置,其中,一个位位置标识临时写入属性,一个位位置标识只读属性,一个位位置标识顺序存取属性,一个位位置标识快速存取属性,一个位位置标识冷属性,以及一个位位置标识热属性。
当由处理装置615执行时,这些指令可以导致操作的执行,这些操作可以包含执行功能以存储从接收的命令解码的映射表,该映射表是对多个数据组的属性的分配。操作可以包含从第一接收的数据结构中提取系统600支持数据组协议的指示符。操作可以包含从第二接收的数据结构中提取数据组粒度的指示符。
主机605可以构造和传送命令,以向存储在存储装置610中的数据动态地提供数据属性。主机605可以包含一或多个处理器604和主机存储器606。一或多个处理器604可以配置为执行存储在主机存储器606中或主机605中的一或多个组件上的指令,当这些指令由处理器604执行时,使得系统600执行操作。操作可以包括将属性分配给多个数据组的一或多个数据组,其中,多个数据组包括在数据存储装置610的一或多个存储器装置中。这些操作还可以包括将分配的属性编码成命令,并将该命令传送到数据存储装置。
从主机605传送到存储装置610的命令可以包含指定数量的数据组的每个数据组的数据结构。数据结构可以标识对应的数据组的属性,并且数据结构可以具有对应于多个属性的多个位位置。数据结构可以包括一个字节,该字节具有分配给一个属性的一个位位置。
用于操作主机605的指令的变型可以包含多个不同的实施例,这些实施例可以根据这些指令的应用和/或实施这些指令的系统的体系结构来组合。当由一或多个处理器604执行时,这样的指令可以导致操作的执行,这些操作可以包含发送标识数据存储装置支持数据组协议的第一数据结构。这些操作可以包含发送标识数据组粒度的第二数据结构。
图7示出了被分成几个数据组的数据存储装置。存储装置可以以类似于图6的存储装置610来实施。在这个实例中,数据存储装置的整个LBA范围被分成数据组761-765。数据组761包含快速存取、顺序存取和只读属性。数据组762包含热存取和快速存取的属性。数据组763包含只读和顺序存取的属性。数据组764包含热属性和只读属性。数据组765包含冷属性。这些数据组761-765和它们的属性是一个非限制性的实例,因为数据存储装置可以包含更多的分配了不同于图7的数据组761-765的属性的数据组。例如,假设UFS装置的结构是128GB UFS。128GB UFS装置可管理为具有1024个数据组,其中,数据组粒度可以设置为128MB。对于本实例,整个装置的数据属性字节映射表的大小可以是1KB字节。图6的存储装置610可以布置成包含多个数据组。这种多个数据组可以包含存储装置610的整个LBA范围。
图8示出了实例数据属性配置830的实施例。数据属性配置830可以针对类似于图6的主机605和存储装置610的主机存储装置布置来实施。该配置可以用作数据结构,该数据结构可以包含在对数据存储的命令中,以用存储在数据存储装置中的数据的属性来更新数据存储器。例如,可以构建图6的存储装置610的数据组的具有一或多个数据结构的命令,并将其从图6的主机605发送到存储装置610。
在各种实施例中,数据属性配置830可以是8位构造。数据属性配置830可以包含指定来标识数据是否具有热属性的位0。数据属性配置830可以包含指定来标识数据是否具有冷属性的位1。数据属性配置830可以包含指定来标识数据是否具有快速存取属性的位2。数据属性配置830可以包含指定来标识数据是否具有顺序属性的位3。数据属性配置830可以包含指定来标识数据是否具有只读属性的位4。数据属性配置830可以包含指定来标识数据是否具有临时写入属性的位5。可以保留数据属性配置830的位位置6和7,用于其它或未来的用途。
位位置是包含表示数据结构中信息的数据的字段。数据属性配置830的位位置中的值一可以用于标识相应的数据组具有为该位位置指定的属性。可替代地,数据属性配置830的位位置中的值零可以用于标识相应的数据组具有为该位位置指定的属性。一个数据组可以有多个属性,但通常没有相反的属性。例如,数据组通常没有冷属性和热属性,除非冷属性和热属性的这种分配用于标识数据组的另一个属性或条件。可以以不同于数据属性配置830的方式将属性分配给位位置来构造位位置到属性的指定,这可以取决于存储器装置中使用的存储器装置的类型。尽管数据属性配置830示出了8位配置,但是数据属性配置可以具有多于或少于8位。
数据属性的指定可以用于不同类型的存储器装置。此外,与给定类型的存储器装置相关联,可以有与从主机向存储装置发送数据属性相关联的附加数据结构。图9、10和11示出了与UFS存储装置的数据组相关联的数据结构的实施例。可以为其它类型的存储装置构建类似的方法。
对于UFS装置,信息传输(主机和装置之间的通信)是通过称为UFS协议信息单元(PIU)的消息来执行的。这些消息是UFS定义的数据结构,包含许多按顺序寻址的字节,布置成各种信息字段。例如,命令结构由包括命令操作码和相关参数、标志和属性的命令描述符块(CDB)组成。命令事务源自发起方装置,并被发送到目标装置内的逻辑单元。对于枚举和配置,基于UFS的设备支持定义和控制装置细节的描述符、属性和标志的系统,包含操作特性、接口、逻辑单元的数量、操作速度、功率分布等。该系统是相关元素的层次树。
查询用于在主机和UFS装置之间读写数据结构。该数据不同于正常的装置读取或写入,因为该数据被视为系统数据、配置数据、生产信息、描述符、特殊参数和标志以及其它类似数据。对于UFS设备,查询功能通常用于读取或写入描述符、属性和标志。还有一系列特定于供应商的操作,可以用于在主机与UFS装置之间传输特定于供应商的数据。这些项目可以驻留在UFS装置存储器中,并且可以由UFS装置用来控制或定义其操作。
描述符是描述作为描述符主题的UFS装置的参数块或页。描述符是具有定义格式的数据结构。有许多描述符,例如,装置描述符、配置描述符、单元描述符和其它描述符。属性是单个参数,表示可以设置或读取的特定数值范围。该值可以表示为字节、字或浮点数。属性大小的范围可以从1位到更高的位数,例如32位大小。相同类型的属性可以组织在阵列中,其中,属性阵列的每个元素都可以通过索引来标识。
标志是一个布尔值,表示值的真或假、“0”或“1”、开或关类型。标志可以清除或重置、设置、切换或读取。标志对于启用或禁用装置中的某些功能、模式或状态很有用。
图9和10示出了在UFS存储装置中使用数据组的实例协议定义的实施例。使用这些协议的UFS存储装置可以在图6的存储装置610中实施,这些协议在图6的主机605中使用。图9示出了对装置描述符935的数据组特征支持的实例定义的实施例。装置描述符935包含偏移量、大小、名称、MDV、用户配置和描述的参数。偏移量提供了从装置的指定内存或缓冲区开始的信息位置。偏移量的值可以是字节。在本实例中,偏移量设置为4Fh。大小参数是标识描述中使用的字节数的值。在本实例中,描述使用了4个字节,即32位。名称参数提供了一个标识信息类型的值,在本实例中,定义为扩展的UFS特征支持。参数MDV(制造商默认值)指定装置制造后的参数值,在本实例中为装置特定值。用户配置参数提供一个值,该值标识该信息是否是用户配置的,对于扩展UFS特征支持,该值定义没有用户配置。描述参数有一定数量的字节,如在大小参数中设置的,具有定义的格式。数据组特征支持的定义使用描述部分中的位位置来标识数据组的特征支持,该位位置目前在UFS标准中没有使用。数据组的标识位于描述的32位数据结构的位位置10。除了在此协议定义中为数据组分配的位10之外,位0用于FFU(现场固件更新),位1用于PSA(生产状态感知),位8用于turbo写入,位9用于自动深度空闲,保留位11-31。FFU、PSA、turbo写入和自动深度空闲的描述数据结构中提供的状态当前在UFS装置中使用。如本文所教导的,数据组特征支持可以用数据组参数添加到UFS装置的协议中。
图10示出了单元描述符1040的数据组粒度的实例定义的实施例。类似于装置描述符935,单元描述符1040包含偏移量、大小、名称、MDV、用户配置和描述的参数。在本实例中,偏移量设置为30h。单元描述符1040的描述部分具有由大小参数标识的4字节长度。名称参数有一个标识信息类型的值,在本实例中,该值被定义为数据组粒度。MDV参数标识装置特定状态,并且用户配置参数标识没有用户配置。描述参数具有标识数据组粒度的值。在本实例中,数据组大小设置为1MB,可以给出为dDataGroupGranularity+1。如本文所教导的,数据组粒度可以用数据组参数添加到UFS装置的协议中。
图11示出了使用指向UFS存储装置中的数据组的命令的实例协议定义的实施例。使用该协议的UFS存储装置可以在图6的存储装置610中实施,该协议在图6的主机605中使用。图11示出了CDB 1150中“设置数据组(Set DataGroup)”UFS命令的定义。设置数据组UFS命令请求装置服务器接收UFS存储装置的选定数据组的属性。选定数据组可以是UFS存储装置的完整数据组集,在这种情况下,设置数据组UFS命令会导致装置服务器从应用程序客户端接收属性字节映射表中整个数据组的属性。在UFS客户端-服务器模型中,装置服务器是UFS存储装置,客户端是与UFS存储装置介接的主机装置。设置数据组UFS命令生成为设置数据组UFS CDB 1150。设置数据组UFS CDB1150是具有操作码条目、数据组属性的数字N+1的条目以及例如保留条目和控制条目的附加条目的块。N+1数据组属性的条目称为分配长度。每个条目可以有一个字节的大小。在这种命令的定义中可以使用其它大小。在本实例中,操作码定义为05h,控制定义为00h。可以将每个条目分配到集合数据组UFS CDB 1150的块中的一个字节位置。在图11的实例中,分配长度等于N+1,对应于UFS存储装置的多个数据组,设置数据组UFS CDB 1150可以具有N+3个条目的块大小。
图11还示出了图11的UFS CDB 1150的分配长度的设置数据组参数列表1152。设置数据组参数列表1152具有N+1个条目,其中,每个条目是8位数据结构。条目可以定义为在数据结构中具有多于或少于8位。N+1条目对应于从将接收设置数据组UFS命令的UFS装置的数据组中选择的N+1个数据组。N+1个条目中的一个条目是所选择的数据组中的一个的数据结构,其中,所选择的一个数据组的数据属性被设置或更新。
在图11中,示出了设置数据组参数列表1152的条目的数据属性定义。数据属性定义可以为设置数据组参数列表1152的条目的属性定义数据结构。数据结构可以是但不限于8位结构。设置数据组参数列表1152的每个条目的数据结构可以定义为图8的数据属性配置830的位0-7。如前所述,来自数据属性配置830的数据结构可以包含指定用于标识数据是否具有热属性的位0、指定用于标识数据是否具有冷属性的位1、指定用于标识数据是否具有快速存取属性的位2、指定用于标识数据是否具有顺序属性的位3,指定用于标识数据是否具有只读属性的位4,指定用于标识数据是否具有临时写属性的位5,其中,保留位位置6和7,用于其它或未来的用途。属性到位位置的分配可以用不同于数据属性配置830的分配来实施,尽管无论使用什么分配,该分配都是为主机-存储装置通信定义的格式。
与图9、10和11相关联的数据组特征支持、数据组粒度和设置数据组命令的协议定义适用于可在UFS标准下运行的UFS装置。可以为其它类型的数据存储装置定义类似的协议定义,其中,这种协议定义可以应用于在相应的类型的标准下操作的其它类型的数据存储装置。
图12是从与数据存储装置介接的系统向数据存储系统动态地更新数据信息的实例方法1200的实施例的流程图。与数据存储装置介接的系统可以包含配置为执行存储在系统中的一或多个组件上的指令的处理器。该系统可以是具有一或多个处理器和主机存储器的主机,以相对于数据存储系统(例如图6的主机605、处理器604和主机存储器606)操作。在1210中,分配多个数据组的一或多个数据组的属性,其中,多个数据组包含在数据存储装置的一或多个存储器装置中,例如图6的存储装置610中。数据组是一系列本地块地址的分组。在1220中,将分配的属性编码成命令。在1230中,将命令发送到数据存储装置。
方法1200或类似于方法1200的方法的变型可以包含多个不同的实施例,这些实施例可以根据这些方法的应用和/或实施这些方法的系统的体系结构来组合。这些方法可以包含被结构化为包含指定数量的数据组的每个数据组的数据结构的命令,其中,该数据结构标识相应的数据组的属性。数据结构可以具有对应于多个属性的多个位位置。在各种实施例中,数据结构可以包括一个字节,该字节具有分配给一个属性的一个位位置。
方法1200或类似于方法1200的方法的变型可以包含与数据组和关于数据组信息的传输相关的许多操作。这些操作可以包含发送标识数据存储装置支持数据组协议的第一数据结构。这些操作可以包含发送标识数据组粒度的第二数据结构。方法1200或类似于方法1200的方法的变型可以包含执行与系统相关联的其它操作,该系统与数据存储装置就本文教导的数据组进行介接。
在各种实施例中,与数据存储装置介接的系统可以包括处理器,该处理器配置为执行存储在系统中的一或多个组件上的指令,当这些指令由处理器执行时,使得系统执行操作。操作可以包括将属性分配给多个数据组中的一或多个数据组,其中,多个数据组包括在系统与之介接的数据存储装置的一或多个存储器装置中。数据组是一系列本地块地址的分组。这些操作可以包括将分配的属性编码成命令,并将该命令发送到数据存储装置。
与数据存储装置介接的这种系统或与数据存储装置介接的类似系统的变型可以包含多个不同的实施例,这些实施例可以根据这种系统的应用和/或实施这种与数据存储装置介接的系统的体系结构来组合。这些系统可以包含这些系统的处理器,以执行生成命令的指令,该命令包含指定数量的数据组中的每个数据组的数据结构,该数据结构标识相应的数据组的属性,该数据结构具有对应于多个属性的多个位位置。
与数据存储装置介接的这种系统或与数据存储装置介接的类似系统的变型可以包含数据结构,该数据结构包括一个字节,该字节具有分配给一个属性的一个位位置。在各种实施例中,这些操作可以包含发送标识数据存储装置支持数据组协议的第一数据结构。这些操作可以包含发送标识数据组粒度的第二数据结构。
图13是动态地更新数据存储系统中的数据信息的实例方法1300的实施例的流程图。数据存储系统可以类似于具有图6的处理装置615和存储器616的存储装置610来实施。在1310中,使用数据存储系统中的处理器,例如存储装置610中的处理装置615,解码对应于多个数据组中的一或多个数据组的接收命令。多个数据组包含在数据存储系统的一或多个存储器装置中。接收的命令可以是数据存储系统接收数据组属性表的请求,其中,数据组表具有多个数据组的数据属性。
接收的命令可以包含指定数量的数据组的每个数据组的数据结构,该数据结构标识相应的数据组的属性。数据结构可以包含对应于多个属性的多个位位置。在各种实施例中,数据结构可以包括一个字节,该字节具有分配给一个属性的一个位位置。
在1320中,响应于解码,在系统中执行关于一或多个数据组的功能。执行功能可以包含存储从命令解码的映射表,该映射表是对数据组的属性的分配。功能可以包含重新组织数据存储装置中的数据。
方法1300或类似于方法1300的方法的变型可以包含多个不同的实施例,这些实施例可以根据这些方法的应用和/或实施这些方法的系统的体系结构来组合。这种方法可以包含从第一接收数据结构中提取系统支持数据组协议的指示符;以及从第二接收的数据结构中提取数据组粒度的指示符。
在各种实施例中,用于数据存储的系统可以包括:一或多个存储器装置,该一或多个存储器装置包含多个数据组,其中,一个数据组是一系列本地块地址的分组;处理器,该处理器配置为执行存储在系统中的一或多个组件上的指令,当处理器执行指令时,使得系统执行操作。这些操作可以包括:对对应于多个数据组中的一或多个数据组的接收命令进行解码;以及响应于解码,在系统中执行关于一或多个数据组的功能。
这种数据存储系统或类似数据存储系统的变型可以包含多个不同的实施例,这些实施例可以根据这种系统的应用和/或实施这种数据存储系统的体系结构来组合。这些系统可以包含所接收的命令,该命令是对数据存储系统接收数据组属性表的请求。接收的命令可以包含多个数据组的数据属性。执行功能可以包含存储从命令解码的映射表,该映射表是对多个数据组的属性的分配。
这些系统的变型可以包含所接收的命令具有用于指定数量的数据组的每个数据组的数据结构,该数据结构标识相应的数据组的至少一个属性。数据结构可以包含对应于多个对应的属性的多个位位置。在各种实施例中,数据结构可以包括一个字节,该字节具有分配给一个属性的一个位位置。对于在数据存储中动态地更新的所有属性,这种分配可以是属性到位位置的一对一分配。根据提供改变的属性的方式,更新可以包含提供不随改变的属性一起改变的属性。数据结构可以包含六个位位置,其中,一个位位置标识临时写入属性,一个位位置标识只读属性,一个位位置标识顺序存取属性,一个位位置标识快速存取属性,一个位位置标识冷属性,以及一个位位置标识热属性。
这些用于数据存储的系统或用于数据存储的类似系统的变型可以包含处理器,该处理器布置成执行操作,该操作包含从第一接收数据结构中提取系统支持数据组协议的指示符。该操作可以包含从第二接收的数据结构中提取数据组粒度的指示符。
下面是根据本文的教导的系统和方法的实例实施例。
用于数据存储的实例系统1可以包括:一或多个存储器装置,该一或多个存储器装置包括多个数据组,其中,一个数据组是一系列本地块地址的分组;以及处理器,处理器配置为执行存储在系统中的一或多个组件上的指令,当处理器执行指令时,使得系统执行操作,操作包括:对对应于多个数据组中的一或多个数据组的接收命令进行解码;以及响应于解码,在系统中执行关于一或多个数据组的功能。
用于数据存储的实例系统2可以包含用于数据存储的实例系统1的特征,并且可以包含所接收的命令,该命令是对用于数据存储的系统接收数据组属性表的请求。
用于数据存储的实例系统3可以包含任何前述用于数据存储的实例系统的特征,并且可以包含接收的命令以包含多个数据组的数据属性。
用于数据存储的实例系统4可以包含任何前述用于数据存储的实例系统的特征,并且可以包含所接收的命令,以包含指定数量的数据组的每个数据组的数据结构,该数据结构标识相应的数据组的至少一个属性。
用于数据存储的实例系统5可以包含用于数据存储的实例系统4和任何前述用于数据存储的实例系统的特征,并且可以包含数据结构以包含对应于多个对应的属性的多个位位置。
用于数据存储的实例系统6可以包含用于数据存储的实例系统5和任何前述用于数据存储的实例系统的特征,并且可以包括数据结构以包括一个字节,该字节具有分配给一个属性的一个位位置。
用于数据存储的实例系统7可以包含用于数据存储的实例系统5和任何前述用于数据存储的实例系统的特征,并且可以包含数据结构,该数据结构包含六个位位置,其中,一个位位置标识临时写入属性,一个位位置标识只读属性,一个位位置标识顺序存取属性,一个位位置标识快速存取属性,一个位位置标识冷属性,以及一个位位置标识热属性。
用于数据存储的实例系统8可以包含任何前述用于数据存储的实例系统的特征,并且可以包含执行功能,以包含存储从接收的命令解码的映射表,其中,该映射表是对多个数据组的属性的分配。
用于数据存储的实例系统9可以包含任何前述用于数据存储的实例系统的特征,并且可以包含以下操作:从第一接收数据结构中提取系统支持数据组协议的指示符;以及从第二接收的数据结构中提取数据组粒度的指示符。
在实例系统10中,用于数据存储的实例系统1至9的任何用于数据存储的系统可以包含结合到电子系统中的存储器装置,该电子系统进一步包括主处理器和在主处理器与存储器装置之间延伸的通信总线。
与数据存储装置介接的实例系统11可以包括:处理器,配置为执行存储在系统中的一或多个组件上的指令,当这些指令由处理器执行时,使得系统执行操作,该操作包括:将属性分配给多个数据组的一或多个数据组,该多个数据组包含在数据存储装置的一或多个存储器装置中,数据组是一系列本地块地址的分组;将分配的属性编码成命令;以及将命令发送到数据存储装置。
与数据存储装置介接的实例系统12可以包含与数据存储装置介接的实例系统11的特征,并且可以包含命令以包含指定数量的数据组的每个数据组的数据结构,该数据结构标识对应的数据组的属性,该数据结构具有对应于多个属性的多个位位置。
与数据存储装置介接的实例系统13可以包含与数据存储装置介接的任何前述实例系统11和12的特征,并且可以包含数据结构,以包括一个字节,该字节具有分配给一个属性的一个位位置。
与数据存储装置介接的实例系统14可以包含与数据存储装置介接的前述实例系统11至13中的任何一个的特征,并且可以包含以下操作:发送标识数据存储装置支持数据组协议的第一数据结构;以及发送标识数据组粒度的第二数据结构。
在实例系统15中,实例系统1至14的任何系统可以包含结合到电子系统中的存储器装置,该电子系统进一步包括主处理器和在主处理器与存储器装置之间延伸的通信总线。
在实例系统16中,实例系统1至15的任何系统可以被修改为包含在另一实例系统1至15中呈现的任何结构。
在实例系统17中,实例系统1至16的任何系统的任何设备可以进一步包含配置为将指令存储为物理状态的机器可读存储装置,其中,指令可以用于执行该设备的一或多个操作。
在实例系统18中,实例系统1至17的任何系统可以被适配和操作以根据以下实例方法1至8的任何方法来执行操作。
向数据存储系统动态地更新数据信息的实例方法1可以包括:使用数据存储系统中的处理器,对对应于多个数据组中的一或多个数据组的接收的命令进行解码,该多个数据组包括在数据存储系统的一或多个存储器装置中;以及响应于解码,在系统中执行关于一或多个数据组的功能。
向数据存储系统动态地更新数据信息的实例方法2可以包含向数据存储系统动态地更新数据信息的实例方法1的特征,并且可以包含所接收的命令,该命令是对数据存储系统接收数据组属性表的请求,该数据组属性表具有多个数据组的数据属性。
向数据存储系统动态地更新数据信息的实例方法3可以包含向数据存储系统动态地更新数据信息的任何前述实例方法的特征,并且可以包含所接收的命令,以包含指定数量的数据组中的每个数据组的数据结构,该数据结构标识相应的数据组的属性。
向数据存储系统动态地更新数据信息的实例方法4可以包含向数据存储系统动态地更新数据信息的实例方法3的特征和向数据存储系统动态地更新数据信息的任何前述实例方法的特征,并且可以包含数据结构,以包含对应于多个属性的多个位位置。
向数据存储系统动态地更新数据信息的实例方法5可以包含向数据存储系统动态地更新数据信息的实例方法4的特征和向数据存储系统动态地更新数据信息的任何前述实例方法的特征,并且可以包含数据结构,该数据结构包括具有分配给一个属性的一个位位置的一个字节。
向数据存储系统动态地更新数据信息的实例方法6可以包含向数据存储系统动态地更新数据信息的实例方法5的特征和向数据存储系统动态地更新数据信息的任何前述实例方法的特征,并且可以包含执行功能,以包含存储从接收的命令解码的映射表,该映射表是对数据组的属性的分配。
向数据存储系统动态地更新数据信息的实例方法7可以包括向数据存储系统动态地更新数据信息的任何前述实例方法的特征,并且可以包括:从第一接收数据结构中提取系统支持数据组协议的指示符;以及从第二接收的数据结构中提取数据组粒度的指示符。
在向数据存储系统动态地更新数据信息的实例方法8中,向数据存储系统动态地更新数据信息的实例方法1至7中的任何一种可以由包含主处理器和在主处理器与存储器装置之间延伸的通信接口的电子系统来执行。
在向数据存储系统动态地更新数据信息的实例方法9中,可以修改向数据存储系统动态地更新数据信息的实例方法1至8中的任何一个,以包含向数据存储系统动态地更新数据信息的方法实例1至8中的任何其它方法中阐述的操作。
在向数据存储系统动态地更新数据信息的实例方法10中,向数据存储系统动态地更新数据信息的实例方法1至9中的任何一个可以至少部分地通过使用作为物理状态存储在一或多个机器可读存储装置中的指令来实施。
向数据存储系统动态地更新数据信息的实例方法11可以包含向数据存储系统动态地更新数据信息的任何前述实例方法1至10的特征,并且可以包含执行与实例系统1至18的任何特征相关联的功能。
存储指令的实例机器可读存储装置1,当由一或多个处理器执行时,使得机器执行操作,可以包括执行与实例系统1至18的任何特征相关联的功能或者执行与实例方法1至11的任何特征相关联的方法的指令。
在各种实例中,本文描述的组件、控制器、处理器、单元、引擎或表格可以包含存储在物理装置上的物理电路系统或固件等。如本文所用,“处理器装置”是指任何类型的计算电路,例如但不限于微处理器、微控制器、图形处理器、数字信号处理器(DSP)或任何其它类型的处理器或处理电路,包含一组处理器或多核装置。
如本文所使用,操作存储器单元包含读取、写入或擦除存储器单元。将存储器单元置于预期状态的操作在本文被称为“编程”,并且可以包含写入存储器单元或从存储器单元擦除(例如,存储器单元可以被编程为擦除状态)。
可至少部分地以机器或计算机实施本文描述的方法实例。一些实例可以包含用指令编码的计算机可读介质或机器可读介质,该指令可操作来配置电子装置以执行上述实例中描述的方法。这些方法的实施方式可以包含代码,例如微代码、汇编语言代码、高级语言代码等。这种代码可以包含用于执行各种方法的计算机可读指令。该代码可以形成计算机程序产品的部分。进一步,可以例如在执行期间或在其它时间将代码有形地存储在一或多个易失性或非易失性有形计算机可读介质上。这些有形计算机可读介质的实例可以包含但不限于硬盘、可移动磁盘、可移动光盘(例如,光盘和数字视频盘)、盒式磁带、存储卡或记忆棒、RAM、ROM、SSD、UFS装置、eMMC装置等。
尽管已在本文中示出和描述特定实施例,但是本领域普通技术人员应理解,被设计成实现相同目的的任何布置都可以替代所示的特定实施例。各种实施例使用本文描述的实施例的布置和/或组合。上面的描述是说明性的,而不是限制性的,并且本文使用的措辞或术语是为了描述的目的。另外,在以上具体实施方式中可以看出,出于使本公开行文流畅的目的,各种特征在单个实施例中分组在一起。通过研究以上描述,上述实施例和其它实施例的组合对于本领域技术人员来说将是显而易见的。
Claims (20)
1.一种数据存储系统,所述系统包括:
一或多个存储器装置,所述一或多个存储器装置包含多个数据组,其中,一个数据组是一系列本地块地址的分组;以及
处理器,所述处理器配置为执行存储在所述系统中的一或多个组件上的指令,当所述处理器执行所述指令时,使得所述系统执行操作,所述操作包括:
对对应于所述多个数据组中的一或多个数据组的接收的命令进行解码,所述接收的命令标识所述一或多个数据组的至少一个属性,针对所述一或多个数据组中的每个数据组,所述接收的命令具有针对多个属性的位位置,每个位位置分配有不同的属性;以及
响应于所述解码,在所述系统中执行关于所述一或多个数据组的功能。
2.根据权利要求1所述的系统,其中,所述接收的命令是对所述数据存储系统接收数据组属性表的请求。
3.根据权利要求1所述的系统,其中,所述接收的命令包含所述多个数据组的数据属性。
4.根据权利要求1所述的系统,其中,所述接收的命令包含在所述接收的命令中布置为分配长度的数据结构的多个条目的列表,每个数据结构包含与所述一或多个数据组中的其他者不同的所述一或多个数据组中的给定一者的所述位位置。
5.根据权利要求1所述的系统,其中,在所述系统中执行功能包含重新组织所述一或多个存储器装置中的数据。
6.根据权利要求1所述的系统,其中,每个数据组的所述位位置被布置为包括一个字节的数据结构。
7.根据权利要求1所述的系统,其中,每个数据组的所述位位置包含六个位位置,其中,一个位位置标识临时写入属性,一个位位置标识只读属性,一个位位置标识顺序存取属性,一个位位置标识快速存取属性,一个位位置标识冷属性,以及一个位位置标识热属性。
8.根据权利要求1所述的系统,其中,执行功能包含存储从所述接收的命令解码的映射表,其中,所述映射表是对所述多个数据组的属性的分配。
9.根据权利要求1所述的系统,其中,所述操作包含:
从第一接收的数据结构中提取所述系统支持数据组协议的指示符;以及
从第二接收的数据结构中提取数据组粒度的指示符。
10.一种向数据存储系统动态地更新数据信息的方法,所述方法包括:
使用所述数据存储系统中的处理器对对应于多个数据组中的一或多个数据组的接收的命令进行解码,所述多个数据组包含在所述数据存储系统的一或多个存储器装置中,所述接收的命令包含所述一或多个数据组的至少一个属性的标识符,所述接收的命令具有针对多个属性的位位置,每个位位置分配有不同的属性;以及
响应于所述解码,在所述系统中执行关于所述一或多个数据组的功能。
11.根据权利要求10所述的方法,其中,所述接收的命令是对所述数据存储系统接收数据组属性表的请求,所述数据组属性表具有所述多个数据组的数据属性。
12.根据权利要求10所述的方法,其中,所述接收的命令包含在所述接收的命令中布置为分配长度的数据结构的多个条目的列表,每个数据结构包含与所述一或多个数据组中的其他者不同的所述一或多个数据组中的给定一者的所述位位置。
13.根据权利要求10所述的方法,其中,在所述系统中执行功能包含重新组织所述一或多个存储器装置中的数据。
14.根据权利要求10所述的方法,其中,每个数据组的所述位位置被布置为包括一个字节的数据结构。
15.根据权利要求10所述的方法,其中,执行功能包含存储从所述接收的命令解码的映射表,其中,所述映射表是对所述数据组的属性的分配。
16.根据权利要求10所述的方法,包括:
从第一接收的数据结构中提取所述系统支持数据组协议的指示符;以及
从第二接收的数据结构中提取数据组粒度的指示符。
17.一种与数据存储装置介接的系统,所述系统包括:
处理器,所述处理器配置为执行存储在所述系统中的一或多个组件上的指令,当所述处理器执行所述指令时,使得所述系统执行操作,所述操作包括:
将属性分配给多个数据组中的一或多个数据组,所述多个数据组包含在所述数据存储装置的一或多个存储器装置中,一个数据组是一系列本地块地址的分组;
将分配的属性编码成命令,所述命令具有针对不同属性的位位置,每个位位置分配有不同的属性;以及
将所述命令传送到所述数据存储装置。
18.根据权利要求17所述的系统,其中,所述命令包含在所述命令中布置为分配长度的数据结构的多个条目的列表,每个数据结构包含与所述一或多个数据组中的其他者不同的所述一或多个数据组中的给定一者的所述位位置。
19.根据权利要求18所述的系统,其中,每个数据组的所述位位置被布置为包括一个字节的数据结构。
20.根据权利要求17所述的系统,其中,所述操作包含:
传送标识所述数据存储装置支持数据组协议的第一数据结构;以及
传送标识所述数据组粒度的第二数据结构。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/685,879 | 2019-11-15 | ||
US16/685,879 US11119914B2 (en) | 2019-11-15 | 2019-11-15 | Method of operating a memory with dynamically changeable attributes |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112817878A CN112817878A (zh) | 2021-05-18 |
CN112817878B true CN112817878B (zh) | 2022-04-19 |
Family
ID=75853188
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011266436.7A Active CN112817878B (zh) | 2019-11-15 | 2020-11-13 | 操作具有动态可变属性的存储器的系统和方法 |
Country Status (2)
Country | Link |
---|---|
US (2) | US11119914B2 (zh) |
CN (1) | CN112817878B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11119914B2 (en) | 2019-11-15 | 2021-09-14 | Micron Technology, Inc. | Method of operating a memory with dynamically changeable attributes |
US11989453B2 (en) | 2022-02-23 | 2024-05-21 | Micron Technology, Inc. | Production state awareness selection |
CN114420182B (zh) * | 2022-03-29 | 2022-06-17 | 北京智芯微电子科技有限公司 | 非易失性存储单元的数据处理方法、装置及存储介质 |
US20230333771A1 (en) * | 2022-04-19 | 2023-10-19 | Dell Products L.P. | Attribute-only reading of specified data |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105164653A (zh) * | 2013-05-06 | 2015-12-16 | 高通股份有限公司 | 属性字段的多核页表集合 |
CN106487704A (zh) * | 2015-09-02 | 2017-03-08 | 三星电子株式会社 | 包括接口电路、存储器模块以及切换电路的服务器设备 |
CN108140005A (zh) * | 2015-09-21 | 2018-06-08 | 美光科技公司 | 在存储器系统协议中提供文件信息的系统及方法 |
CN110196851A (zh) * | 2019-05-09 | 2019-09-03 | 腾讯科技(深圳)有限公司 | 一种数据存储方法、装置、设备及存储介质 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7991965B2 (en) * | 2006-02-07 | 2011-08-02 | Intel Corporation | Technique for using memory attributes |
US9696935B2 (en) * | 2015-04-24 | 2017-07-04 | Kabushiki Kaisha Toshiba | Storage device that secures a block for a stream or namespace and system having the storage device |
US10403377B2 (en) * | 2017-06-26 | 2019-09-03 | Western Digital Technologies, Inc. | Non-volatile storage with adaptive redundancy |
JP2019179455A (ja) * | 2018-03-30 | 2019-10-17 | 東芝メモリ株式会社 | 記憶装置及びコンピュータシステム |
US10725686B2 (en) * | 2018-09-28 | 2020-07-28 | Burlywood, Inc. | Write stream separation into multiple partitions |
US11119914B2 (en) | 2019-11-15 | 2021-09-14 | Micron Technology, Inc. | Method of operating a memory with dynamically changeable attributes |
-
2019
- 2019-11-15 US US16/685,879 patent/US11119914B2/en active Active
-
2020
- 2020-11-13 CN CN202011266436.7A patent/CN112817878B/zh active Active
-
2021
- 2021-08-30 US US17/461,603 patent/US11609850B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105164653A (zh) * | 2013-05-06 | 2015-12-16 | 高通股份有限公司 | 属性字段的多核页表集合 |
CN106487704A (zh) * | 2015-09-02 | 2017-03-08 | 三星电子株式会社 | 包括接口电路、存储器模块以及切换电路的服务器设备 |
CN108140005A (zh) * | 2015-09-21 | 2018-06-08 | 美光科技公司 | 在存储器系统协议中提供文件信息的系统及方法 |
CN110196851A (zh) * | 2019-05-09 | 2019-09-03 | 腾讯科技(深圳)有限公司 | 一种数据存储方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
US11609850B2 (en) | 2023-03-21 |
US20210390046A1 (en) | 2021-12-16 |
US11119914B2 (en) | 2021-09-14 |
US20210149798A1 (en) | 2021-05-20 |
CN112817878A (zh) | 2021-05-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111108499B (zh) | Nand存储器装置、相关方法及机器可读媒体 | |
CN111684527B (zh) | Nand装置及相关方法和机器可读介质 | |
CN111164565B (zh) | 受管理的nvm自适应高速缓冲存储器管理 | |
US11720489B2 (en) | Scheme to improve efficiency of device garbage collection in memory devices | |
CN111183481B (zh) | 数据损坏的安全擦除 | |
CN112817878B (zh) | 操作具有动态可变属性的存储器的系统和方法 | |
CN111538682A (zh) | 混合逻辑到物理高速缓存方案 | |
KR20200063257A (ko) | 동적 l2p 캐시 | |
KR20210099184A (ko) | 저장 디바이스의 순차적 데이터 최적화 서브 영역 | |
CN112041931B (zh) | 跟踪逻辑块地址的数据温度 | |
US20210141557A1 (en) | Nand logical-to-physical table region tracking | |
CN111433751B (zh) | 存储器装置及相关方法和机器可读媒体 | |
US11972294B2 (en) | Allocation schema for a scalable memory area | |
US11163692B2 (en) | Memory constrained translation table management | |
CN113439266A (zh) | 使用行程长度编码算法的映射表压缩 | |
CN111045852B (zh) | 移动nand奇偶校验信息技术 | |
CN114093407A (zh) | 一种存储器装置、数据处理系统、方法及存储介质 | |
CN112445717A (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 |