掌桥专利:专业的专利平台
掌桥专利
首页

用于存储器装置的元数据指示

文献发布时间:2023-06-19 11:52:33


用于存储器装置的元数据指示

本专利申请要求Ish等人在2019年12月30日提交的标题为“用于存储器装置的元数据指示(METADATA INDICATION FOR A MEMORY DEVICE)”的第16/730,919号美国专利申请的优先权,所述美国专利申请转让给本受让人且以全文引用的方式明确地并入本文中。

技术领域

技术领域涉及用于存储器装置的元数据指示。

背景技术

存储器子系统可包含存储数据的一或多个存储器组件。存储器组件可以是例如非易失性存储器组件和易失性存储器组件。一般来说,主机系统可利用存储器子系统以在存储器组件处存储数据且从存储器组件检索数据。

发明内容

描述了一种方法。所述方法可包含:从主机系统接收从存储器装置的第一块检索信息的读取命令;标识与在所述读取命令中指示的所述第一块相关联的传送单元;至少部分地基于标识所述传送单元而标识所标识的传送单元的元数据中的指示符,所述指示符指示所述传送单元的至少一个扇区已经被更改;至少部分地基于标识所述元数据中的所述指示符而验证所述传送单元的存储在所述存储器装置中的数据;以及至少部分地基于验证所述传送单元的所述数据而检索存储在所述第一块中的所述信息。

描述了一种系统。所述系统可包含多个存储器组件和处理装置,所述处理装置可操作地与所述多个存储器组件耦合以进行以下操作:从主机系统接收从存储器装置的第一块检索信息的读取命令;标识与在所述读取命令中指示的所述第一块相关联的传送单元;至少部分地基于标识所述传送单元而标识所标识的传送单元的元数据中的指示符,所述指示符指示所述传送单元的至少一个扇区已经被更改;至少部分地基于标识所述元数据中的所述指示符而验证所述传送单元的存储在所述存储器装置中的数据;以及至少部分地基于验证所述传送单元的所述数据而检索存储在所述第一块中的所述信息。

描述了一种非暂时性计算机可读媒体。所述非暂时性计算机可读媒体可包含指令,所述指令在由处理器执行时使所述处理器进行以下操作:从主机系统接收从存储器装置的第一块检索信息的读取命令;标识与在所述读取命令中指示的所述第一块相关联的传送单元;至少部分地基于标识所述传送单元而标识所标识的传送单元的元数据中的指示符,所述指示符指示所述传送单元的至少一个扇区已经被更改;至少部分地基于标识所述元数据中的所述指示符而验证所述传送单元的存储在所述存储器装置中的数据;以及至少部分地基于验证所述传送单元的所述数据而检索存储在所述第一块中的所述信息。

附图说明

图1说明根据如本文中所公开的实例的计算系统的实例。

图2说明根据如本文中所公开的实例的支持用于存储器装置的存取操作的元数据指示的过程流程的实例。

图3说明根据如本文中所公开的实例的支持用于存储器装置的存取操作的元数据指示的实例系统。

图4说明根据如本文中所公开的实例的支持用于存储器装置的元数据指示的计算机系统的实例机器。

具体实施方式

本公开的方面针对于用于存储器子系统的元数据指示。存储器子系统可为存储装置、存储器模块,或存储装置和存储器模块的混合。参考图1描述存储装置和存储器模块的实例。一般来说,主机系统可利用包含一或多个组件(例如,存储数据的存储器装置)的存储器子系统。主机系统可以提供数据以存储在存储器子系统处并且可以请求从存储器子系统检索数据。

存储器装置可为非易失性存储器装置。非易失性存储器装置是一或多个裸片的封装。非易失性存储器装置的一个实例是与非(NAND)存储器装置。下文结合图1描述非易失性存储器装置的其它实例。封装中的裸片可指配给一或多个通道以用于与存储器子系统控制器通信。每个裸片可由一或多个平面组成。平面可分组成逻辑单元(LUN)。对于一些类型的非易失性存储器装置(例如,NAND存储器装置),每一平面由一组物理块组成,所述物理块是用于存储数据的存储器单元的群组。单元为存储信息的电子电路。下文中,数据块是指用以存储数据的存储器装置的单元,且可以包含一组存储器单元、字线组、字线或单独存储器单元。

可对存储器装置执行存取操作,包含读取、写入、擦除和重写操作。在存取操作期间,主机系统可从存储器子系统内的存储器单元的块请求数据。存储器单元的块可以是存储器单元的分区,例如存储器单元的扇区。主机系统可将存取请求(例如,写入命令、读取命令)发送到存储器子系统,以便在存储器子系统处将数据存储在存储器装置上,且在存储器子系统上从存储器装置读取数据。如由主机请求指定,待读取或写入的数据在下文中被称作“主机数据”。主机请求可包含主机数据的逻辑地址信息(例如,逻辑块地址(LBA)、名字空间),其为主机系统与主机数据相关联的位置。逻辑地址信息(例如,LBA、名字空间)可以是主机数据的元数据的部分。元数据还可包含错误处理数据(例如,ECC码字、奇偶检验码)、数据版本(例如,用于区分所写入数据的期限)、有效位图(其LBA或逻辑传送单元含有有效数据)等。

举例来说,在读取操作期间,主机系统可从存储器装置内的存储器单元的块请求数据。在一些情况下,请求可包含LBA。请求可包含可用以标识主机系统已经在逻辑上请求接入的存储器装置内的存储器单元的特定物理块的元数据。

存储器装置可组织成存储器单元的物理分区。分区可被称为块和/或扇区。在一些情况下,主机系统与存储器块相关联的物理位置可能与存储器装置中的存储器单元的物理位置不匹配。此不匹配可能是由于存储器单元的存储器装置物理分区的组织方式不同于主机系统在逻辑上组织块的方式。

举例来说,主机系统可将存储在存储器单元中的数据组织成连续扇区(例如,512字节(B)扇区)。在此类情况下,由主机系统针对块使用的地址可基于扇区的组织。存储器装置的存储器单元可组织成物理分区(例如,4千字节(kB)分区)或数据块,其被称作传送单元(TU)。在此类情况下,TU的组织可不同于组织主机系统块的方式。当主机系统请求数据时,存储器单元的物理地址(即,数据存储于TU中的位置)与主机系统已经将块在逻辑上寻址到的区域之间可能会发生不匹配。不匹配可能是由于当实际上以不同方式组织块时,主机系统使存储器装置与存储器单元的相邻单元相关联。为了避免在存取操作期间(例如,由对应于存储器装置中的错误物理位置的LBA)存取错误数据,存储器子系统可使由主机系统使用的块与存储器装置内的物理TU相关联以在存取操作期间进行存取。

在一些情况下,元数据可写入到TU以标识主机系统的哪一个块(例如,如由LBA传达)驻留于每一TU中。举例来说,元数据可与可用于确定哪些扇区被组织成每一TU的TU相关联。在一些情况下,元数据可为传送单元地址(TUA)的部分。元数据可经读取且用于确定哪些块与TU相关联。当TU被调用时,存储器子系统可读取相关联元数据以确定哪些存储器单元存取来自主机系统的对应块接入请求。存储器子系统可接着在存取操作期间存取正确数据并将其传输到主机。在每一读取操作期间读取TUA中的元数据可能将时延引入系统中。举例来说,读取元数据可能占用原本可用于存储器子系统的其它功能的资源。因而,可能会在存储器子系统中增加其它操作中的时延。另外,由于用于读取元数据的额外读取循环,功率消耗可能会增加。

本公开的方面通过包含通过使用包含元数据指示符的存储器子系统来解决上述和其它缺陷。指示符(例如,标志位)可包含在TU的元数据内以指示TU的至少一个扇区(或块)是无效的(例如,在TU中已经擦除扇区)。存储器子系统的一些硬件(例如,一致性检查器)可以将从主机系统接收的元数据与关联于TU的元数据进行比较以确定元数据是否匹配。如果元数据匹配(例如,TU的元数据中的指示符未设置),那么存储器子系统可不在读取操作期间读取元数据。如果元数据不匹配(例如,TU的元数据的指示符已设置),那么存储器子系统可在读取操作期间读取元数据。存储器子系统可在读取操作期间读取元数据以确定TU的哪些扇区是有效的。举例来说,存储器子系统可在读取操作期间读取元数据以确定TU内已经擦除哪一个扇区(例如,512B块)。通过在某一读取操作中不读取元数据,可减少读取操作的总时延,这是因为可在所有情况下不读取元数据,由此释放存储器子系统的处理资源以用于其它功能。

首先在参考图1描述的计算环境的上下文中描述本公开的特征。在如参考图2所描述的过程流程图中描述本公开的特征。本公开的这些和其它特征进一步参考涉及如参考图3到4所描述的元数据指示的设备图和计算机图加以说明和描述。

图1说明根据本公开的一些实施例的包含存储器子系统110的计算系统100的实例。存储器子系统110可包含媒体,例如一或多个易失性存储器装置(例如,存储器装置140)、一或多个非易失性存储器装置(例如,存储器装置130),或其组合。

存储器子系统110可为存储装置、存储器模块,或存储装置和存储器模块的混合。存储装置的实例包含固态驱动器(SSD)、快闪驱动器、通用串行总线(USB)快闪驱动器、嵌入式多媒体控制器(eMMC)驱动器、通用快闪存储(UFS)驱动器、安全数字(SD)卡,和硬盘驱动器(HDD)。存储器模块的实例包含双列直插式存储器模块(DIMM)、小外形DIMM(SO-DIMM)及各种类型的非易失性DIMM(NVDIMM)。

计算系统100可为计算装置,例如台式计算机、膝上型计算机、网络服务器、移动装置、交通工具(例如,飞机、无人机、火车、汽车或其它运输工具)、具有物联网(IoT)功能的装置、嵌入式计算机(例如,交通工具、工业设备或联网商业装置中包含的嵌入式计算机),或包含存储器和处理装置的此类计算装置。

计算系统100可包含与一或多个存储器子系统110耦合的主机系统105。在一些实例中,主机系统105与不同类型的存储器子系统110耦合。图1说明与一个存储器子系统110耦合的主机系统105的一个实例。如本文中所使用,“耦合到”或“与...耦合”通常指代组件之间的连接,其可为间接通信连接或直接通信连接(例如,没有中间组件),无论有线或无线,包含例如电连接、光学连接、磁性连接等连接。

主机系统105可包含处理器芯片组及由处理器芯片组执行的软件堆叠。处理器芯片组可包含一或多个核心、一或多个高速缓冲存储器、存储器控制器(例如,NVDIMM控制器),和存储协议控制器(例如,PCIe控制器、SATA控制器)。主机系统105使用存储器子系统110,例如,将数据写入到存储器子系统110以及从存储器子系统110读取数据。

主机系统105可以使用物理主机接口耦合到存储器子系统110。物理主机接口的实例包含但不限于串行高级技术附件(SATA)接口、外围组件互连高速(PCIe)接口、USB接口、光纤通道、小型计算机系统接口(SCSI)、串行连接的SCSI(SAS)、双数据速率(DDR)存储器总线、双列直插式存储器模块(DIMM)接口(例如支持双数据速率(DDR)的DIMM套接接口)、开放NAND闪存接口(ONFI)、双数据速率(DDR)、低功率双数据速率(LPDDR)或任何其它接口。物理主机接口可用于在主机系统105与存储器子系统110之间传输数据。当存储器子系统110通过PCIe接口与主机系统105耦合时,主机系统105可进一步利用非易失性存储器快速(NVMe)接口来存取存储器组件(例如,存储器装置130)。物理主机接口可提供用于在存储器子系统110与主机系统105之间传递控制、地址、数据和其它信号的接口。图1说明存储器子系统110作为实例。一般来说,主机系统105可经由相同通信连接、多个单独通信连接和/或通信连接的组合存取多个存储器子系统。

存储器装置130、140可包含不同类型的非易失性存储器装置和/或易失性存储器装置的任何组合。易失性存储器装置(例如,存储器装置140)可以是但不限于随机存取存储器(RAM),例如动态RAM(DRAM)和同步DRAM(SDRAM)。

非易失性存储器装置(例如,存储器装置130)的一些实例包含与非(NAND)型快闪存储器和就地写入存储器,例如三维交叉点(“3D交叉点”)存储器装置,其是非易失性存储器单元的交叉点阵列。非易失性存储器的交叉点阵列可以结合可堆叠交叉网格化数据存取阵列基于体电阻的改变来执行位存储。另外,与许多基于闪存的存储器对比,交叉点非易失性存储器可执行就地写入操作,其中可在不预先擦除非易失性存储器单元的情况下对非易失性存储器单元进行编程。NAND型快闪存储器包含(例如)二维NAND(2D NAND)和三维NAND(3D NAND)。

存储器装置130中的每一个可包含一或多个存储器单元阵列。一种类型的存储器单元,例如单电平单元(SLC)可每单元存储一个位。其它类型的存储器单元,例如多电平单元(MLC)、三电平单元(TLC)和四电平单元(QLC)可每单元存储多个位。在一些实施例中,存储器装置130中的每一个可包含一或多个存储器单元阵列,例如SLC、MLC、TLC、QLC或这些的任何组合。在一些实施例中,特定存储器装置可包含存储器单元的SLC部分,以及MLC部分、TLC部分或QLC部分。存储器装置130的存储器单元可分组为页,页可指用以存储数据的存储器装置的逻辑单元。对于一些类型的存储器(例如,NAND),页可进行分组以形成块。

尽管描述了非易失性存储器组件,例如NAND型快闪存储器(例如,2D NAND、3DNAND)和3D交叉点非易失性存储器单元阵列,但是存储器装置130可以基于任何其它类型的非易失性存储器,例如只读存储器(ROM)、相变存储器(PCM)、自选存储器、其它基于硫属化物的存储器、铁电晶体管随机存取存储器(FeTRAM)、铁电RAM(FeRAM)、磁RAM(MRAM)、自旋转移力矩(STT)-MRAM、导电桥接RAM(CBRAM)、电阻性随机存取存储器(RRAM)、基于氧化物的RRAM(OxRAM)、或非(NOR)快闪存储器和电可擦除可编程ROM(EEPROM)。

存储器子系统控制器115(或简称为控制器115)可与存储器装置130通信以执行操作,例如在存储器装置130处读取数据、写入数据或擦除数据,及其它这类操作。存储器子系统控制器115可以包含硬件,例如一或多个集成电路和/或离散组件、缓冲存储器或其组合。硬件可包含具有专用(即,硬译码)逻辑的数字电路系统以执行本文中所描述的操作。存储器子系统控制器115可为微控制器、专用逻辑电路系统(例如现场可编程门阵列(FPGA)、专用集成电路(ASIC)、数字信号处理器(DSP)),或其它合适的处理器。

存储器子系统控制器115可包含经配置以执行存储在本地存储器125中的指令的处理器120(例如,处理装置)。在所说明的实例中,存储器子系统控制器115的本地存储器125包含经配置以存储指令的嵌入式存储器,所述指令用于执行控制存储器子系统110的操作(包含处置存储器子系统110与主机系统105之间的通信)的各种过程、操作、逻辑流和例程。

在一些实例中,本地存储器125可包含存储存储器指针、所提取数据等的存储器寄存器。本地存储器125还可包含用于存储微码的ROM。虽然图1中的实例存储器子系统110已说明为包含存储器子系统控制器115,但在本公开的另一实例中,存储器子系统110不包含存储器子系统控制器115,而是可依靠外部控制(例如,由外部主机或由与存储器子系统分开的处理器或控制器提供)。

通常,存储器子系统控制器115可从主机系统105接收命令或操作,且可将所述命令或操作转换成指令或适当命令以实现对存储器装置130的所需存取。存储器子系统控制器115可负责其它操作,例如耗损均衡操作、垃圾收集操作、错误检测和错误校正码(ECC)操作、加密操作、高速缓存操作,以及与存储器装置130相关联的逻辑地址(例如,逻辑块地址(LBA)、名字空间)与物理地址(例如,物理块地址)之间的地址转译。存储器子系统控制器115可进一步包含主机接口电路系统以经由物理主机接口与主机系统105通信。主机接口电路系统可以将从主机系统接收到的命令转换成存取存储器装置130的命令指令,以及将与存储器装置130相关联的响应转换成用于主机系统105的信息。

存储器子系统110还可以包含未说明的额外电路系统或组件。在一些实例中,存储器子系统110可包含高速缓冲存储器或缓冲器(例如,DRAM)以及地址电路系统(例如,行解码器和列解码器),所述地址电路系统可从存储器子系统控制器115接收地址,并对地址进行解码以存取存储器装置130。

在一些实例中,存储器装置130包含本地媒体控制器135,其结合存储器子系统控制器115操作以对存储器装置130的一或多个存储器单元执行操作。外部控制器(例如,存储器子系统控制器115)可在外部管理存储器装置130(例如,对存储器装置130执行媒体管理操作)。在一些实施例中,存储器装置130是受管理存储器装置,其为与本地控制器(例如,本地控制器135)组合以在同一存储器装置封装内进行媒体管理的原始存储器装置。受管理存储器装置的实例是受管理NAND(MNAND)装置。

存储器子系统110包含元数据管理器150,其可经配置以使与TUA相关联的元数据内的指示符(例如标志位)指示何时扇区(例如,512B块)在TU中无效(例如,已经擦除扇区)。此指示符可允许存储器装置140的硬件在存取操作期间确定元数据中的不匹配,且指示与存储器子系统控制器115不匹配。存储器子系统110可接着读取TUA的元数据以确定已经擦除哪一个512B块。然而,在一些情况下,元数据管理器150可不将标志位包含在TUA的元数据中。这可在TU内的数据有效时(例如,当尚未对TU内的512B块执行擦除时)发生。在此类情况下,存储器子系统可绕过读取TUA的元数据(例如,可不读取TUA的元数据)且存取TU的存储器单元的数据。在一些实例中,存储器子系统控制器115包含元数据管理器150的至少一部分。举例来说,存储器子系统控制器115可包含处理器120(例如,处理装置),其经配置以执行存储在本地存储器125中的用于执行本文中所描述的操作的指令。在一些实例中,元数据管理器150是主机系统105、应用程序或操作系统的部分。

图2说明根据本公开的一些实例的支持用于存储器子系统的存取操作的元数据指示技术的方法200的实例。在一些实例中,方法200可由存储器装置执行,所述存储器装置可为参考图1的存储器装置130的实例。在其它实例中,方法200可由存储器子系统执行,所述存储器子系统可为参考图1所描述的存储器子系统110的实例。

方法200可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。方法200可另外或替代地由图1的存储器子系统控制器115执行。在其它实施例中,方法200可由图1的本地媒体控制器135执行。虽然以特定顺序或次序来展示,但是除非另有指定,否则可修改过程的次序。因此,所说明实施例应仅作为实例理解,且所说明过程可以不同次序进行,且一些过程可并行进行。另外,在各种实施例中可以省略一或多个过程。并非每个实施例中都使用所有过程。其它过程流程是可能的。

存储器子系统可从主机系统接收存取命令。此类存取命令可为读取命令、写入命令或擦除命令,其可将数据读取、擦除、写入和/或重写到存储器子系统的存储器装置中的特定存储器单元。在一些情况下,存取命令可对应于存储器装置内的存储器单元的特定块。在一些情况下,存储器子系统可对对应于主机系统的存取命令的块执行存取操作。

然而,在一些情况下,对应于主机系统的存取命令的块地址可不对应于存储器子系统内的存储器单元的物理块。举例来说,主机系统可传达LBA,所述LBA可含有与主机系统希望读取的存储器块相关联的元数据。在一些情况下,存储器子系统的组织可能与主机系统使LBA的元数据基于的组织不匹配。举例来说,主机系统可能已使用具有存储器子系统内的存储器单元的第一大小(例如,512B)的扇区或块基于LBA。在此些情况下,读取命令可对应于存储器装置中的第一大小的存储器块的读取操作。然而,存储器子系统可经配置以使用具有不同于第一大小的第二大小(例如,4kB)的扇区、块或分区来存取存储器单元。在此类情况下,第二大小的TU与第一大小的块可能不匹配。

扇区或块可由存储器子系统组织成TU,且存储器子系统可将数个主机系统的扇区或块关联成单个TU。举例来说,单个TU(例如,4kB)可包含八个扇区或块(例如,512B)。在其它实例中,单个TU可包含任何数目个扇区或块(例如,一个、二个、三个、四个、五个、六个、七个、八个等)。存储器子系统可相对于逻辑到物理(L2P)表中的TU对扇区或块的组织编索引。L2P表可充当用于标识逻辑值(例如,扇区或块)在物理上驻留于存储器装置中的位置的位图。因为主机系统所请求的扇区或块的大小与从存储器装置检索的分区大小之间存在不匹配,所以存储器子系统可存取比主机系统所请求的存储器多的存储器。将扇区或块组织成TU可阻止存储器子系统一次存取单个LBA的数据,这是因为存储器子系统的粒度大于主机系统的粒度。

存储器子系统可包含用于跟踪哪些扇区或块驻留于哪一个TU中的位图。位图可包含为与TU相关联的TUA中所含有的十六个元数据位。在一些实例中,位图可存储在存储器装置中。在其它情况下,位图可存储在可由存储器子系统调用以在存取操作期间进行比较的表(例如,L2P表)中。可在存取特定存储器单元之前读取十六位元数据以确定哪些扇区或块驻留于TU中。元数据可另外或替代地包含关于TU内的存储器单元的信息(例如,如果存储器单元的块已经被擦除)。在此类情况下,正确数据可由存储器子系统在读取操作期间存取且传达到主机系统。

与不存取或读取元数据相比,通过在存取存储器单元之前读取元数据(例如,十六位),可将时延引入到存储器子系统中。在此类情况下,可使用比较(例如,奇偶校验)来避免在存取存储器单元之前读取元数据。比较可将存储在存储器装置上的TU的所存储元数据与关联于从主机系统接收的块的其它元数据进行比较。如果从主机系统接收的元数据(例如,第二元数据)与TU的元数据匹配(例如,存在奇偶校验),那么可在存储器子系统不读取元数据的情况下执行存取存储器单元。在此类情况下,可减少存储器子系统执行读取操作的时延。然而,在一些情况下,TU的元数据与第二元数据之间可能会发生不匹配。这可能是由于从主机系统接收的元数据中的错误或引入到存储于存储器子系统中的元数据中的错误。在一些实施例中,指示符可包含在由存储器子系统存储的元数据中,这可能在设置指示符引起不匹配。

在操作205处,可更改存储在TU内的信息。举例来说,存储器子系统可更改存储在传送单元的至少一个扇区或块中的信息。从主机系统接收的扇区或块可称为块或LBA。举例来说,可响应于主机系统的写入命令而更改TU内的存储器单元的块内的数据。举例来说,主机系统可使存储在TU的一或多个块中的数据被擦除。在其它实例中,例如,更改存储于传送单元的至少一个块中的信息包含删除传送单元的至少一个块中的信息。在其它实例中,写入操作可将数据写入到存储器子系统内的存储器单元的一或多个块和/或从存储器子系统内的存储器单元的一或多个块删除数据。在其它实例中,存储器子系统可从主机系统接收存储或删除传送单元的第二块的信息的写入命令,其中更改信息是基于接收写入命令。TU内的存储器单元的一或多个块内的数据可在存取操作之前从初始状态更改。当在TU内更改数据时,存储器子系统可指示与TU相关联的元数据中(例如,在TUA的所存储元数据中)的指示符或标志已发生更改。

在操作210处,可将指示符设置在与TU相关联的所存储元数据中。举例来说,存储器子系统可基于更改存储于传送单元的至少一个块中的信息而设置传送单元的指示符,其中标识标志被设置是基于设置指示符。在一些情况下,存取操作可使存储器子系统指示存储器子系统内的数据已改变。TU可含有多个存储器单元块(例如,一个TU中可含有八个存储器单元块)。当TU内的存储器单元块中的一或多个发生数据更改(例如,和擦除)时,存储器管理器可设置指示符(例如,一或多个元数据位)以指示改变。指示符可表示可读取与TU相关联的元数据(例如,TUA的元数据)以确定哪一个存储器单元块已经被更改。指示符可经配置以使存储器装置在某一读取操作期间跳过读取元数据。在一些情况下,存储器管理器可通过将位设置在与TU相关联的元数据(例如,TUA的元数据)中而设置指示符。举例来说,指示符包含由存储器装置存储的单个元数据位。在一些情况下,指示符位可在与TU相关联的元数据位之外(例如,第十七个元数据位,其中先前已使用十六个元数据位)。元数据可存储于存储器子系统的硬件和/或固件中。元数据可用于与关联于TU的第二元数据(例如,从主机系统接收的元数据)进行比较以确定是否已发生不匹配。不匹配可确定是否可在存取存储器单元块之前读取除指示符之外的元数据位。在一些情况下,指示符可称为标志、标志位或其组合。

在一些情况下,操作205和210可在整个方法200中的任何时间进行。因而,指示符可如图2中所说明的那样设置,或以除图2中所说明的放置以外的替代放置设置。替代地,可不设置指示符(例如,可不进行操作205及操作210)。这可能是由于未在传送单元中更改数据。可使用存储器单元块的更改对不更改来确定是否读取元数据作为对TU执行存取操作(例如,读取操作)的部分。

在操作215处,存储器子系统可从主机系统接收存取命令,例如读取命令。举例来说,存储器子系统可从主机系统接收读取命令以从存储器装置的第一块检索信息。读取命令可对应于存取存储器子系统内的存储器的第一块。主机系统可传达除存取命令之外或在存取命令中的与存储器块相关联的元数据。在一些情况下,元数据可为LBA。在其它情况下,元数据可用于标识地址(例如,LBA)。举例来说,存储器子系统可基于接收到读取命令而标识第一块的逻辑块地址,其中标识传送单元是基于标识逻辑块地址。在这些实例中,LBA可用于确定存取命令与哪一个存储器块特定相关。举例来说,LBA可存储在L2P表中,且可由存储器子系统调用。存储器子系统的存储器单元可组织成TU。在一些情况下,TU可组织成第一大小(例如,4kB)。主机系统可请求存取具有不同于第一大小的第二大小(例如,512B)的存储器单元块。因而,大小不匹配可存在于由主机系统请求的块与由存储器子系统使用的TU之间。

在操作220处,存储器子系统可标识与主机系统所请求的存储器块(例如,第一块)相关联的TU。举例来说,存储器子系统可标识与读取命令中指示的第一块相关联的传送单元。主机系统块大小与存储器子系统TU的大小之间可能存在不匹配。举例来说,存储器单元块可对应于512B,且TU可对应于4kB。在此实例中,存储器子系统可将八个存储器块组织成一个TU。在其它实例中,TU可对应于存储器页,且存储器单元块可对应于小于存储器页。举例来说,传送单元包含存储器页,且第一块包含比存储器页少的存储器。存储器子系统可将多个存储器块组织成一个TU。存储器子系统可动态地将与存储器块相关联的数据移动到TU和从TU移出以组织数据,从而最大化性能,以及其它因素,例如耗损均衡。存储器子系统可通过利用位图来管理将存储器块组织成TU。位图可映射TU的数据位,使得可对TU中所含有的特定数据块执行存取操作。位图可包含为与TU相关联的元数据。举例来说,位图可包含关于主机系统的哪些存储器块与TU相关联的信息,以及哪一种(如果存在)类型的数据包含在TU中。可在存取操作期间读取元数据以确保当存储器子系统存取物理存储器单元时,正确数据被传递到主机系统(例如,被验证)。在一些实例中,可不读取元数据以减少存储器子系统中的时延。元数据的读取对不读取可基于元数据中的指示符(例如,标志位)被设置。

在操作225处,可将第一元数据(例如,由存储器子系统存储的元数据)与关联于TU(例如,从主机系统接收)的第二元数据进行比较。举例来说,存储器子系统可将传送单元的由存储器装置存储的元数据与关联于基于读取命令标识的传送单元的第二元数据进行比较,其中标识指示符被设置是基于将所述元数据与第二元数据进行比较。在一些情况下,第二元数据可为从主机系统接收的LBA,或可为与所请求的块相关联的元数据。在一些情况下,第一元数据可存储在L2P表中。举例来说,元数据可存储在经配置以用于执行一或多个奇偶校验的逻辑到物理表中。第一元数据可包含指示符。指示符可连同与TU相关联的额外元数据(例如,指示哪些存储器块与存储器装置相关联)一起存储。指示符可为除与TU相关联的元数据位(例如,十六个位或三十二个位)之外的额外元数据位。在此类情况下,指示符可用于引起包含指示符的第一元数据与不包含指示符的第二元数据之间的不匹配。

两个元数据的比较可由存储器子系统的硬件(例如,一致性检查器或奇偶校验检查器)执行。在一些情况下,作为存取操作的部分,存储器装置可对存储器装置内的存储器单元执行奇偶校验。奇偶校验可用于确定逻辑上请求的存储器单元块是否对应于存储器装置内的物理存储器单元。如果奇偶校验指示所比较的数据之间存在不匹配,那么存储器子系统的固件可实施一或多个操作以试图确定不匹配的原因或解决不匹配。存储器子系统的固件可经配置以在奇偶校验指示不匹配之后确定指示符存在于第一元数据中。在一些情况下,第二元数据可与第一元数据匹配,且存储器子系统可验证正在存取正确数据。

在一些情况下,数据之间的不匹配可由包含于由存储器子系统存储且与TU相关联的第一元数据中的指示符(例如,标志位)引起。举例来说,TU中的数据块的更改(例如,擦除)可通过将指示符设置在第一元数据中来指示。可将第一元数据与第二元数据进行比较。因为额外位在第二元数据的范围之外(例如,包含指示符的第一元数据可为十七个位,且第二元数据可为十六个位),所以两个元数据之间可存在不匹配,这可触发读取第一元数据以确定哪一个(哪些)块无效或已经被擦除。此不匹配可不同于元数据的非指示符位中的元数据的不匹配。

在操作230处,存储器子系统可标识指示符是否设置在与TU相关联的元数据中。举例来说,存储器子系统可至少部分地基于标识传送单元而标识指示符被设置在所标识的传送单元的由存储器装置存储的元数据中。存储器子系统(在一些情况下,存储器装置)可比较TUA和LBA的元数据,且如果已经设置指示符,那么可标识不匹配。在此类情况下,可经由奇偶校验确定不匹配,且可将逻辑值发送到指示不存在奇偶校验的存储器子系统的固件。举例来说,将第一元数据与第二元数据进行比较可作为奇偶校验的部分而执行。另外,存储器子系统可通过硬件到固件指示第一元数据与第二元数据之间存在不匹配,其中将所述元数据与第二元数据进行比较是由硬件执行的。在一些情况下,逻辑值可从硬件(例如,当执行奇偶校验时)传达到存储器装置的固件。举例来说,存储器子系统可至少部分地基于硬件指示存在不匹配而标识元数据位的逻辑值,其中标识标志被设置至少部分地基于标识位的逻辑值。

不存在奇偶校验可使存储器子系统读取包含指示符的元数据以确定存储器块中的哪一个(如果存在)已经被擦除。举例来说,在操作235处,存储器子系统可读取标记的TU的其余元数据。举例来说,存储器子系统可读取传送单元的由存储器装置存储的元数据,其中验证传送单元的数据至少部分地基于读取元数据。在此实例中,可能已经响应于TU内的数据的更改而设置指示符。存储器子系统可读取额外元数据以确定更改了哪一个块。以此方式,存储器子系统可经由读取额外元数据来验证元数据。举例来说,存储器子系统可至少部分地基于标识标志被设置在元数据中而验证传送单元的存储在存储器装置中的数据。

替代地或另外,在操作230处,存储器子系统可标识指示符未设置在与TU相关联的元数据(例如,TUA的元数据)中。举例来说,可至少部分地基于确定指示符未被设置而在不验证传送单元的元数据的情况下执行检索存储在第一块中的信息。存储器子系统(在一些情况下,使用存储器装置)可将第一元数据与第二元数据进行比较,且如果不设置指示符,那么无法标识不匹配。在此类情况下,奇偶校验可确定所比较的元数据之间不存在不匹配。不存在不匹配可允许存储器子系统绕过读取元数据(例如,绕过操作235),且存储器子系统可继续存取由主机系统的存取命令请求的存储器单元块。

在操作240处,存储器子系统可存取(例如,检索)与主机系统的存取命令相关联的TU中的数据。举例来说,存储器子系统可至少部分地基于验证传送单元的数据而检索存储在第一块中的信息。在一些实例中,可在执行元数据的验证之后(例如,在标志指示块的擦除的情况下)存取数据,或可在不验证元数据的情况下(例如,在未指示标志位的情况下)存取数据。在不读取相关联元数据的情况下存取TU内的数据可减少存储器子系统的时延,且进而改进存储器子系统的性能。存储器子系统可接着将TU内的数据传输到主机系统。举例来说,存储器子系统可至少部分地基于检索信息而将存储在第一块中的信息传输到主机系统。

应注意,上文描述的方法描述了可能的实施方案,且操作和步骤可以重新布置或以其它方式加以修改,且其它实施方案是可能的。此外,可以组合两个或更多个方法中的各部分。

图3说明根据如本文中所公开的实例的支持用于存储器装置的存取操作的指示技术的系统300的实例。在一些情况下,系统300可执行如参考图2所描述的方法200。

系统300包含主机系统305和存储器子系统310。主机系统305可为参考图1所描述的主机系统105的实例。主机系统305可将存取命令发送到存储器子系统310,所述存取命令例如读取命令、写入命令或擦除命令,其可将数据读取、擦除、写入和/或重写到存储器子系统310内的存储器单元块。在一些情况下,主机系统305可另外发送与命令相关联的元数据。举例来说,在读取操作期间,主机系统可将读取命令发送到存储器子系统310,所述读取命令可包含与主机系统已使用读取操作来请求存取的存储器块相关联的元数据。如参考图2所描述,当存储器子系统310的物理组织可基于具有不同于第一大小的第二大小(例如,4kB)的不同组织时,从主机系统305接收的读取请求和/或元数据可基于存储器子系统310内具有第一大小(例如,512B)的存储器单元块的组织。由主机系统305使用的块的组织与由存储器子系统310使用的TU的组织之间不匹配。

系统300还可包含存储器子系统310。存储器子系统310可为参考图1所描述的存储器子系统110的实例。存储器子系统310可执行如参考图2中的存储器子系统所论述的方法200。在一些情况下,存储器子系统可从主机系统305接收存取命令和/或元数据。

存储器子系统310可包含固件315、L2P表320、元数据管理器325、错误检测电路340、存储器装置或其组合。固件315可由存储器子系统控制器115的组件实施,所述组件例如参考图1所描述的处理器120、本地存储器125和/或本地媒体控制器135。固件315可执行存储器子系统310中所含有的数据的处理。举例来说,固件315可确定哪些存储器块对应于存储器装置中的哪些TU。在其它实例中,固件315可读取与TU相关联的元数据和/或读取从主机系统305接收的元数据。另外,固件315可验证TU中所含有的数据。举例来说,固件315可接收由存储器子系统310存储的元数据与从主机系统305接收的元数据的不匹配的指示。可从错误检测电路340接收不匹配的指示。这可使固件读取与TU相关联的元数据以验证TU中所含有的数据。一旦元数据被验证,固件315就可在验证之后存取存储器装置345内的存储器单元且将数据传输到主机系统305。

存储器子系统310可包含L2P表320。如参考图2所描述,L2P表320可用作存储器子系统310内的存储器单元的位图。在一些情况下,L2P表320可存储与每一TU相关联的元数据。当从主机系统305接收存取命令时,L2P表可由存储器子系统310(例如,由固件315)调用。L2P表320可用于将元数据与可由存储器子系统310修改的元数据进行比较。在一些实例中,L2P表320可为固件315和/或元数据管理器325的部分,或可为存储器子系统310内的单独组件。

存储器子系统310可包含元数据管理器325。如参考图2所描述,元数据管理器325可在TU内的数据已经被擦除时修改与TU相关联的元数据。举例来说,元数据管理器325可基于改变或擦除TU中的数据块而使标志335与元数据330包含在一起。元数据330可为与TU相关联的元数据。标志335可为与元数据330包含在一起的单个数据位。在一些情况下,标志335可为添加到正常元数据的长度的位。在一些实例中,元数据管理器325可为固件315的部分,或可为存储器子系统310内的单独组件。

存储器子系统310可包含错误检测电路340和存储器装置345。错误检测电路340可将存储在L2P表320中的元数据与从主机系统305接收的元数据进行比较。错误检测电路340可在奇偶校验期间标识两个元数据中的不匹配,且可向存储器子系统310的固件315指示不匹配。在一些情况下,错误检测电路340可为奇偶校验电路或一致性检查器的实例。在一些情况下,错误检测电路340可为存储器装置345的一部分。在一些情况下,错误检测电路340可为较宽存储器子系统310的部分。在一些情况下,元数据330可包含标志335或指示符。这可响应于TU内的块被擦除。在一些实例中,具有或不具有标志335的元数据330可存储在L2P表320中。错误检测电路340可将具有或不具有标志335的元数据330与从主机系统305接收的元数据进行比较。在标志335与元数据330包含在一起的情况下,标志335可引起两个元数据之间的不匹配。在此类情况下,错误检测电路340可将指示不匹配的逻辑值发送到固件315。不匹配可使存储器子系统310(例如,固件315)在存取和传输存储器装置345中的数据以检查数据的有效性之前读取元数据330。

在元数据330不包含标志335的实例中,错误检测电路340可不将逻辑值发送到固件315,或可将指示匹配的不同逻辑值发送到固件315。固件315可在不读取元数据的情况下存取存储器装置345中的存储器单元,且可基于存在匹配而将数据发送到主机系统305。这可减少存储器子系统310中的存取操作中的时延且改进存储器子系统310的性能。

图4说明根据如本文中所公开的实例的支持用于存储器装置的元数据指示的计算机系统400的实例机器。计算机系统400可包含用于使机器执行本文中所描述的技术中的任何一或多种的指令集。在一些实例中,计算机系统400可对应于主机系统(例如,参考图1所描述的主机系统105),其包含、耦合或利用存储器子系统(例如,参考图1所描述的存储器子系统110)或可用于执行控制器的操作(例如,执行操作系统以执行对应于参考图1所描述的元数据管理器150的操作)。在一些实例中,机器可连接(例如,网络连接)到LAN、内联网、外联网和/或互联网中的其它机器。机器可作为对等(或分散式)网络环境中的对等机器或作为云计算基础设施或环境中的服务器或客户端机器而在客户端-服务器网络环境中的服务器或客户端机器的容量中操作。

机器可以是个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、蜂窝式电话、网络器具、服务器、网络路由器、开关或桥接器,或能够(依序或以其它方式)执行指定由机器采取的动作的一组指令的任何机器。此外,虽然示出了单个机器,但是术语“机器”还可以包含单独地或共同地执行指令集(或多个指令集)以执行在此类情况下的任何一或多种方法的机器的任何集合。

实例计算机系统400可包含处理装置405、主存储器410(例如,只读存储器(ROM)、快闪存储器、DRAM,例如同步DRAM(SDRAM)或RDRAM等)、静态存储器415(例如,快闪存储器、静态随机存取存储器(SRAM)等),以及数据存储系统425,其经由总线445彼此通信。

处理装置405表示一或多个通用处理装置,例如微处理器、中央处理单元等等。更特定来说,处理装置可以是复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器或实施其它指令集的处理器,或实施指令集的组合的处理器。处理装置405也可以是一或多个专用处理装置,例如ASIC、FPGA、DSP、网络处理器等等。处理装置405经配置以执行用于执行在此类情况下的操作和步骤的指令435。计算机系统400可进一步包含网络接口装置420以经由网络440通信。

数据存储系统425可包含机器可读存储媒体430(也称为计算机可读媒体),其上存储有一或多个指令集435或体现本文中所描述的任何一或多种方法或功能的软件。指令435还可在由计算机系统400执行期间完全或至少部分地驻留在主存储器410内和/或处理装置405内,主存储器410和处理装置405也构成机器可读存储媒体。机器可读存储媒体430、数据存储系统425和/或主存储器410可对应于存储器子系统。

在一个实例中,指令435包含用以实施对应于元数据管理器450(例如,参考图1所描述的元数据管理器150)的功能性的指令。尽管机器可读存储媒体430展示为单个媒体,但术语“机器可读存储媒体”可以包含存储一或多个指令集的单个媒体或多个媒体。术语“机器可读存储媒体”还可包含能够存储或编码供机器执行的指令集且使机器执行本公开的方法中的任何一或多种的任何媒体。术语“机器可读存储媒体”可包含但不限于固态存储器、光学媒体以及磁性媒体。

已关于计算机存储器内的数据位的操作的算法和符号表示而呈现先前详细描述的一些部分。这些算法描述和表示是数据处理领域的技术人员用以将其工作的主旨最有效地传达给本领域的其它技术人员的方式。算法在这里并且通常被认为是产生期望的结果的操作的自洽序列。操作是要求对物理量进行物理操控的操作。这些量通常但未必呈能够被存储、组合、比较和以其它方式操控的电或磁信号的形式。有时,主要出于通用的原因,已经证明将这些信号称为位、值、元件、符号、字符、术语、数目等等是方便的。

然而,应牢记,所有这些和类似术语应与适当物理量相关联,且仅仅是应用于这些量的方便标签。本公开可以指操控和变换计算机系统的寄存器和存储器内的表示为物理(电子)数量的数据为计算机系统存储器或寄存器或其它这类信息存储系统内的类似地表示为物理量的其它数据的计算机系统或类似电子计算装置的动作和过程。

本公开还涉及用于执行本文中的操作的设备。此设备可以出于所需目的而专门构造,或其可以包含通过存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。此类计算机程序可存储在计算机可读存储媒体中,例如但不限于任何类型的盘(包含软盘、光盘、CD-ROM和磁性光盘)、ROM、RAM、EPROM、EEPROM、磁卡或光卡,或适合于存储电子指令的任何类型的媒体,它们各自耦合到计算机系统总线。

本文中呈现的算法和显示器在本质上并不与任何特定计算机或其它设备相关。各种通用系统可与根据本文中的教示的程序一起使用,或其可证明构造用以执行所述方法的更加专用的设备是方便的。将如下文描述中所阐述的那样来呈现多种这些系统的结构。此外,并不参考任何特定编程语言来描述本公开。将了解,可使用多种编程语言来实施如本文中所描述的本公开的教示。

本公开可提供为计算机程序产品或软件,其可包含在其上存储有可用于编程计算机系统(或其它电子装置)以执行根据本公开的过程的指令的机器可读介质。机器可读媒体包含用于以机器(例如,计算机)可读的形式存储信息的任何机构。在一些实例中,机器可读(例如,计算机可读)媒体包含机器(例如,计算机)可读存储媒体,例如ROM、RAM、磁盘存储媒体、光学存储媒体、快闪存储器组件等。

在前述说明书中,已参考其特定实例描述了本公开的实例。将显而易见的是,可在不脱离所附权利要求书中阐述的本公开的实施例的更广精神和范围的情况下对其进行各种修改。因此,应在说明性意义上而非限制性意义上看待说明书和图式。

相关技术
  • 用于存储器装置的元数据指示
  • 用于存储器装置的元数据感知回拷
技术分类

06120113084595