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

逻辑到物理数据结构

文献发布时间:2023-06-19 09:29:07


逻辑到物理数据结构

技术领域

本发明大体上涉及半导体存储器及方法,且更特定来说,涉及与逻辑到物理数据结构相关的设备及方法。

背景技术

存储器装置通常被提供为计算系统中的内部半导体集成电路。存在许多不同类型的存储器,包含易失性及非易失性存储器。易失性存储器可能需要电力来维持其数据(例如,主机数据、错误数据等)且包含随机存取存储器(RAM)、动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、同步动态随机存取存储器(SDRAM)及晶闸管随机存取存储器(TRAM)等等。非易失性存储器可通过在不被供电时保留经存储数据来提供持久性数据且可包含NAND快闪存储器及NOR快闪存储器等等。

可根据逻辑块地址(LBA)及物理块地址(PBA)存储数据。LBA与PBA之间的映射可被称为逻辑到物理(L2P)映射。LBA与PBA之间的映射可经存储在树结构中。用于存储L2P数据的树结构可包含P层级L2P表,其中P是非零整数。根据一些方法的简单实例可包含2层级L2P表。第一层级表可含有第二层级表的地址,其可被称为“段”。在一些方法中,每一段可包含用于小范围的连续LBA(例如,1024个LBA)的L2P表。

附图说明

图1是根据本发明的数个实施例的呈包括存储器系统的计算系统的形式的设备的功能性框图。

图2是根据本发明的数个实施例的呈存储器系统的形式的设备的框图。

图3A是根据本发明的数个实施例的快闪存储器数据结构的框图。

图3B是根据本发明的数个实施例的实例逻辑到物理数据结构的框图。

图3C是根据本发明的数个实施例的实例逻辑到物理数据结构的另一框图。

图4说明根据本发明的数个实施例的逻辑到物理数据结构的实例流程图。

具体实施方式

本发明包含与逻辑到物理数据结构相关的设备及方法。一种实例设备包括耦合到非易失性存储器(NVM)装置的控制器。所述控制器可经配置以致使逻辑块地址(LBA)被存储在所述NVM装置中的第一逻辑到物理(L2P)数据结构中且物理块地址(PBA)被存储在所述NVM装置中的第二L2P数据结构中。所述第一L2P数据结构及所述第二L2P数据结构可具有与其相关联的相同大小。

例如个人计算机、膝上型计算机、平板计算机、平板手机、智能电话、物联网(IoT)启用装置等的计算系统可包含一或多个存储器装置(例如,存储器资源)以存储与计算系统相关联的数据及/或指令。如本文中所使用,“IoT启用装置”包含物理装置、交通工具、家用电器以及嵌入有电子器件、软件、传感器、致动器及/或网络连接性的其它装置,所述网络连接性使此类物体能够连接及交换数据。IoT启用装置的实例包含可穿戴技术、智能家用装置、智能购物系统及监视装置,以及其它信息物理系统。另外,计算系统可包含一或多个处理资源以执行系统软件、此操作系统以为在计算系统上运行的应用程序提供通用服务。操作系统的实例包含

在操作期间,计算系统可将数据(例如,命令、固件、软件、计算机代码、元代码、框架文件等)存储在一或多个存储器装置中。此类存储器装置可为易失性的或非易失性的(例如,持久性的)。非易失性存储器(NVM)装置的实例可包含例如NAND快闪存储器、NOR快闪存储器等的持久性快闪存储器资源以及新兴存储器装置。新兴存储器(EM)技术可包含相变存储器(PCM)、磁阻式随机存取存储器(MRAM)、电阻式随机存取存储器(ReRAM)、铁电RAM(FeRAM)及/或3D XPoint存储器,其与其它存储器技术相比可改善存储器相关延时。易失性存储器装置可包含需要电力来维持经存储信息的存储器装置。易失性存储器装置的实例包含动态随机存取存储器(DRAM)及静态随机存取存储器(SRAM)等等。

由(若干)存储器装置存储的数据可驻留在(若干)存储器装置的物理位置中。其中存储有数据的物理位置(例如,物理块地址)可经映射到逻辑块地址(LBA)。逻辑块地址可经存储在数据结构中且可经调用以存取其中存储有数据的物理块地址(PBA)。例如,为了存取(例如,读取、写入、擦除等)数据,可调用LBA,LBA又将计算系统引导到PBA。如本文中所使用,“数据结构”是指用于组织及/或存储数据的专用格式,其可或可不以行及列来组织。数据结构的实例包含阵列、文件、记录、表、树、链表、哈希表等。

逻辑块寻址是可由主机用于标识数据的逻辑扇区的方案。例如,每一逻辑扇区可对应于唯一逻辑块地址(LBA)。另外,LBA也可对应于物理地址。数据的逻辑扇区可为数据的数个字节(例如,256个字节、512个字节或1,024个字节)。然而,实施例不限于这些实例。

LBA与PBA之间的映射可经存储在逻辑到物理(L2P)数据结构(例如,L2P地址数据结构)中。在一些方法中,L2P数据结构是以树形结构布置。根据一些方法的用于存储L2P数据结构的实例树结构可包含P层级L2P表,其中P是非零整数。根据一些方法的简单实例可包含2层级L2P表。第一层级表可含有第二层级表的地址,其可被称为“段”。在一些方法中,每一段可包含用于小范围的连续LBA(例如,1024个LBA)的L2P表。

在一些方法中,利用如上文所描述的树状结构的L2P数据结构来简化在计算装置的操作期间对给定LBA的搜索。此外,在一些方法中,利用如上文所描述的树状结构的L2P数据结构来最小化与第一层级表相关联的大小。例如,如果与第一层级表相关联的大小保持在某个大小阈值内,那么可将第一层级表存储在计算系统的存储控制器的SRAM及/或DRAM部分中。

然而,其中使用树状结构的L2P数据结构的方法可能遭受各种缺点。例如,随着存储器装置的存储密度增加,使用树状结构的L2P数据结构的方法利用所述树中的额外层级。例如,随着存储器装置的存储密度增加,树状结构的L2P数据结构中的层级的数目可对应地增加。在一些方法中,这可能导致L2P查找及/或转译的较长延迟。此外,随着树的层级的数目增加,管理的复杂度(例如,存储器管理方案的复杂度)也增加。延迟时间的增加及/或管理复杂度的增加可对应于跨树的每一层级传播的L2P表的变化。

相比之下,本文中的实施例描述可在其中提供非易失性存储器装置(例如,新兴NVM装置)及快闪存储器装置(例如,NAND存储器装置)作为存储器装置的部分的应用中使用的L2P表结构。在一些实施例中,本文中所描述的L2P数据结构可包含L2P映射表。第一L2P映射表可包含逻辑块地址且第二L2P映射表可包含物理块地址。在一些实施例中,第一L2P映射表(例如,包含逻辑块地址的L2P映射表)及第二L2P映射表(例如,包含物理块地址的L2P映射表)可为相同大小(例如,其可包含相同数目个行及相同数目个列)。

在一些实施例中,可使用多个哈希函数(例如,两个哈希函数)来存取第一L2P映射表。接着,可使用位于利用哈希函数的第一L2P映射表中的索引来定位第二L2P映射表中的对应物理块地址的物理位置。在一些实施例中,在定位第二L2P映射表中的对应物理块地址的物理位置之后,可将物理块地址写入到第二L2P映射表中的物理位置或从其读取物理块地址。

在本发明的以下详细描述中,参考形成本发明的一部分的附图,且在附图中以说明方式展示可如何实践本发明的一或多个实施例。足够详细地描述这些实施例以使所属领域的一般技术人员能够实践本发明的实施例,且应理解,可利用其它实施例并可在不脱离本发明的范围的情况下进行过程改变、电气改变及/或结构改变。如本文中所使用,尤其是相对于附图中的参考数字的例如“N”等的指定符指示可包含如此指定的数个特定特征。如本文中所使用,“数个”特定事物是指一或多个此类事物(例如,数个存储器阵列可指一或多个存储器阵列)。“多个”意在指多于一个此类事物。

本文中的图遵循编号惯例,其中首位或前几位数字对应于附图图号且其余数字标识附图中的元件或组件。可通过使用类似数字来识别不同图之间的类似元件或组件。例如,110可在图1中指称元件“10”,且类似元件在图2中可被称为210。将明白,可添加、交换及/或消除本文中的各种实施例中所展示的元件以便提供本发明的数个额外实施例。另外,将明白,图中所提供的元件的比例及相对尺度意在说明本发明的某些实施例且不应被认为是限制性的。

图1是根据本发明的数个实施例的呈包括存储器系统104的计算系统100的形式的设备的功能性框图。如本文中所使用,“设备”可指但不限于各种结构中的任一者或结构组合,举例来说例如电路或电路系统、裸片或若干裸片、模块或若干模块、装置或若干装置或系统或若干系统。

存储器系统104可为例如固态驱动器(SSD)。在图1中所说明的实施例中,存储器系统104包含主机接口106、存储器(例如,数个存储器装置110-1、110-2、...、110-N)(例如,固态存储器装置)以及耦合到物理主机接口106及存储器装置110-1、110-2、...、110-N的控制器108(例如,SSD控制器)。

存储器装置110-1、110-2、...、110-N可包含例如数个非易失性存储器阵列(例如,非易失性存储器单元的阵列)。例如,存储器装置110-1、110-2、...、110-N可包含数个非易失性存储器阵列,例如新兴存储器阵列及/或快闪存储器阵列,如本文中结合图2更详细地描述。

在一些实施例中,存储器装置110-1、...、110-N可包含数个存储器单元(例如,非易失性存储器单元)的阵列。例如,所述阵列可为具有NAND架构的快闪存储器阵列。然而,实施例不限于特定类型的存储器阵列或阵列架构。可将存储器单元例如分组成包含存储器单元的数个物理页的数个块。在数个实施例中,块是指作为一个单位一起擦除的存储器单元的群组。数个块可被包含在存储器单元的平面中且阵列可包含数个平面。作为一个实例,存储器装置可经配置以每页存储8KB(千字节)的用户数据,每块存储128个用户数据页,每平面存储2048个块且每装置存储16个平面。

在操作中,例如,可将数据作为数据页写入到存储器系统的存储器装置(例如,存储器系统104的存储器装置110-1、...、110-N)及/或从其读取。因而,数据页可被称为存储器系统的数据传送大小。数据可以被称为扇区(例如,主机扇区)的数据段传送到主机102或从主机102传送。因而,数据的扇区可被称为主机的数据传送大小。在一些实施例中,NAND块可被称为擦除块,其中块是擦除单位且页是读取及/或写入的量度。

主机接口106可用于在存储器系统104与例如主机102的另一装置之间传达信息。主机102可包含存储器存取装置(例如,处理器)。如本文中所使用,“处理器”可意指数个处理器,例如并行处理系统、数个协处理器等。实例主机可包含个人膝上型计算机、台式计算机、数码相机、数字记录及回放装置、移动(例如,智能)电话、PDA、存储卡读取器、接口集线器、IoT启用装置等。主机102可包含系统主板及/或底板且可包含数个处理资源(例如,一或多个处理器、微处理器等)。系统100可包含单独集成电路或主机102及存储器系统104两者可在同一集成电路上。系统100可为例如服务器系统及/或高性能计算(HPC)系统及/或其部分。

为了清楚起见,系统100已被简化为集中于与本发明特别相关的特征。存储器系统104可包含一或多个存储器资源,例如DRAM阵列(例如,2T2C DRAM阵列、3T DRAM阵列等)、FeRAM、SRAM阵列、STT RAM阵列、PCRAM阵列、TRAM阵列、RRAM阵列、NAND快闪存储器阵列、3DXpoint存储器、NOR快闪存储器阵列及/或包含例如控制器、3D Xpoint存储器部分及NAND快闪存储器部分的存储子系统。

主机接口106可呈标准化物理接口的形式。例如,当存储器系统104用于计算系统100中的信息存储时,主机接口106可为串行高级技术附件(SATA)物理接口、外围组件互连快速(PCIe)物理接口或通用串行总线(USB)物理接口,以及其它物理连接器及/或接口。然而,通常,主机接口106可提供用于在存储器系统104与具有和主机接口106兼容的接受器(receptor)的主机(例如,主机102)之间传递控制、地址、信息(例如,数据)及其它信号的接口。

控制器108可包含例如控制电路系统及/或逻辑(例如,硬件及固件)。控制器108可被包含在与存储器110-1、110-2、...、110-N相同的物理装置(例如,相同裸片)上。例如,控制器108可为耦合到包含物理主机接口106及存储器110-1、110-2、...、110-N的印刷电路板的专用集成电路(ASIC)。替代地,控制器108可被包含在通信地耦合到包含存储器110-1、110-2、...、110-N的物理装置的单独物理装置上。在数个实施例中,控制器108的组件可作为分布式控制器而跨多个物理装置(例如,在与存储器相同的裸片上的一些组件,及在不同裸片、模块或板上的一些组件)分布。

控制器108可与存储器装置110-1、110-2、...、110-N进行通信以感测(例如,读取)、编程(例如,写入)及/或擦除信息,以及其它操作。控制器108可具有可为数个集成电路及/或离散组件的电路系统。在数个实施例中,控制器108中的电路系统可包含用于控制跨存储器装置110-1、110-2、...、110-N的存取的控制电路系统及/或用于在主机102与存储器系统104之间提供转译层(例如,快闪存储器转译层)的电路系统。

控制器108可控制每一相应存储器装置110-1、110-2、...、110-N作为L2P数据结构的专用区(例如块寻址部分)的操作(例如,配置每一相应存储器装置110-1、...、110-N的一部分以存储一或多个L2P数据结构,如本文中结合图2更详细地描述)。例如,每一相应存储器装置110-1、110-2、...110-N的第一部分可经配置以存储第一L2P数据结构,且每一相应存储器装置110-1、110-2、...、110-N的第二部分可经配置以存储第二L2P数据结构。

每一相应存储器装置110-1、110-2、...、110-N的第一部分可为例如每一相应存储器中的存储器单元的第一多个块(例如,物理块),如本文中将进一步描述(例如,结合图1),且可在本文中被称为存储器的第一部分。另外,每一相应存储器装置110-1、110-2、...、110-N的部分包含第二多个块、第三多个块等。

每一相应存储器110-1、110-2、...、110-N的第二部分可为例如每一相应存储器中的存储器单元的第二多个块(例如,物理块),如本文中将(例如,结合图2)进一步描述。控制器108可致使一或多个L2P数据结构(例如,图2中所说明的L2P数据结构216-1、...、216-N)被存储在相应存储器装置110-1、...、110-N中。

图1中所说明的实施例可包含未说明以免混淆本发明的实施例的额外电路系统、逻辑及/或组件。例如,存储器装置104可包含地址电路系统以锁存通过I/O电路系统在I/O连接器上提供的地址信号。地址信号可由行解码器及列解码器接收及解码,以存取存储器110-1、110-2、...、110-N。

图2是根据本发明的数个实施例的呈存储器系统的形式的设备的框图。如图2中所说明,控制器208可经耦合到存储器装置210。控制器208可类似于图1中所说明的控制器108,且存储器装置210可类似于图1中所说明的存储器装置110-1、...、110-N中的至少一者。存储器装置210可包含NVM装置212及快闪存储器装置214。控制器208、存储器装置210、NVM装置212及/或快闪存储器装置214可单独地被认为是“设备”。

NVM装置212可包含多个L2P数据结构216-1、...、216-N。尽管在图2中被展示为多个L2P数据结构216-1、...、216-N,但在至少一个实施例中,NVM装置212可包含两个相异L2P数据结构216-1、...、216-N;然而,实施例不限于两个相异L2P数据结构216-1、...、216-N。例如,在至少一个实施例中,NVM装置212可包含第一L2P数据结构(例如,L2P数据结构216-1)及第二L2P数据结构(例如,L2P数据结构216-N)。然而,实施例不限于此,且NVM装置212可包含多于两个相异L2P数据结构216-1、...、216-N(例如,三个或更多个相异L2P数据结构)。

L2P数据结构216-1、...、216-N可为可配置的以存储对应于L2P寻址方案的数据。例如,L2P数据结构216-1、...、216-N可为可配置的以存储L2P寻址表。在一些实施例中,L2P数据结构216-1可为a x b表(例如,a x b张量或多维阵列)且L2P数据结构216-N可为a x b表,其中a及b是非零整数。换句话说,在一些实施例中,L2P数据结构216-1及L2P数据结构216-N可包含相同数量的列及相同数量的行(例如,L2P数据结构216-1及L2P数据结构216-N可为相同大小)。在一些实施例中,控制器208可经配置以控制L2P数据结构216-1、...、216-N中的存储。

L2P数据结构216-1可类似于本文中结合图3B更详细地说明及描述的数据结构Λ,且L2P数据结构216-N可类似于本文中结合图3C更详细地说明及描述的数据结构Π。例如,L2P数据结构216-1可包含逻辑块地址(LBA),而L2P数据结构216-N可包含物理块地址(PBA)。图2中所说明的两个L2P数据结构216-1及216-N可按以下方式相关:如果LBA经存储在L2P数据结构216-1中的第i位置(position)(例如,位置(location)),那么对应PBA可经存储在L2P数据结构216-N的第i位置中。在一些实施例中,可通过执行多个哈希函数来定位、写入及/或读取存储在L2P表216-1中的LBA。在非限制性实例中,可通过执行在本文中被称为h及s的两个哈希函数来定位、写入及/或读取存储在L2P表216-1中的LBA。

哈希函数h及s可为LBA的函数。为了简单起见,LBA在本文中可被称为l。换句话说,第一哈希函数h可被称为h(l),且第二哈希函数可被称为s(l)。在一些实施例中,第一哈希函数h(l)可对应于LBA l的哈希地址,且第二哈希函数s(l)可对应于LBA l的哈希增量,如本文中结合方程式1到7以及表1及2更详细地描述。

在一些实施例中,可选择哈希函数h及s使得其可高效地计算。如本文中所使用,术语“可高效地计算”是指可容易地以硬件实施的函数。此外,可选择哈希函数h及s以具有低冲突概率。此处术语“低冲突概率”是指在接收到不同输入值之后可能输出不同哈希值的函数。例如,当h及s具有“低冲突概率”时,在不同LBA(例如,l的不同值)用作哈希函数的输入时,每一哈希函数h(l)及s(l)在执行之后将输出不同哈希值,如本文中结合表1更详细地描述。

与其中L2P数据经存储在多层级树结构中的一些方法相比,通过使用两个L2P地址表(例如,L2P数据结构216-1及L2P数据结构216-N),即使随着存储器装置210的存储密度增加也可最小化数据结构的数目(例如,在一些先前方法中使用的树的层级)的数目。例如,本文中所描述的其中利用两个离散L2P地址表(例如,第一L2P数据结构216-1及第二L2P数据结构216-N)的实施例可随着存储器装置210的存储密度增加而减少一些方法中使用的数据结构(例如,树)的数目。然而,如上文所描述,实施例不限于两个离散L2P地址表,且本发明意在涵盖其中多于两个离散L2P地址表可结合存储及检索逻辑及物理块地址使用的实例。

通过使用两个离散L2P地址表(例如,L2P数据结构216-1及L2P数据结构216-N),可仅使用两次操作来写入及/或读取LBA。例如,在一些实施例中,通过利用哈希函数h(l)及s(l),可仅使用两次写入操作来写入LBA。作为实例,当快闪存储器装置214含有少于阈值数量的条目时(例如,当部分地填充快闪存储器装置214时),本文中的实施例允许仅使用两次写入操作来将LBA写入到L2P数据结构216-1。在其中快闪存储器装置214含有多于阈值数量的条目的实施例中,本文中的实施例可允许仅使用三次写入操作来将LBA写入到L2P数据结构216-1。实施例不限于此;然而,且在一些实施例中,基于快闪存储器装置214中含有的条目的数量,可使用多于三次写入操作来将LBA写入到L2P数据结构216-1。

在一些实施例中,L2P数据结构216-1可经配置使得对其部分地排序,如本文中结合图3A到3C更详细地描述。如本文中所使用,“部分地排序”是指其中L2P数据结构216-1反映L2P数据结构216-1中的某些元素之间的二进制关系的状况。例如,L2P数据结构216-1中的某些元素可包含在对216-1排序方面先于L2P数据结构中的另一元素的元素。然而,并非L2P数据结构216-1中的每个元素均需要展现一个元素在排序方面先于另一元素的性质,且L2P数据结构216-1可包含数对元素,其中所述对中的任一元素都不在排序方面先于所述对中的其它元素。在一些实施例中,控制器208可经配置以维持L2P数据结构216-1使得对L2P数据结构216-1部分地排序。本文中结合图3A到3C更详细地论述对L2P数据结构216-1部分地排序的状况。

快闪存储器装置214可包含快闪存储器数据结构218。快闪存储器数据结构218可为可配置的以存储对应于存储在L2P数据结构216-1、...、216-N中的PBA及/或LBA的位置的数据,如本文中结合图3A更详细地描述。在一些实施例中,控制器208可经配置以控制对应于快闪存储器数据结构218中的PBA及/或LBA的位置的数据的存储。

如上文所论述,快闪存储器装置214可包含电子(例如,固态)非易失性存储器存储装置的一或多个部分。例如,快闪存储器装置214可包含NAND快闪存储器、NOR快闪存储器、NVRAM快闪存储器等的一或多个部分。快闪存储器装置214可经配置以被成块(或页)写入(或读取),所述块可小于整个快闪存储器装置214可用的存储空间量。然而,在一些实施例中,可逐字节地写入或读取快闪存储器装置214(例如,可独立地写入或读取快闪存储器装置214的位置)。

在一些实施例中,如方程式1中所展示,哈希函数h(l)及s(l)可被定义为对于n个LBAS(其中0≤n≤n-1)且对于m个PBA(其中m>n)

在方程式1中,可选择哈希函数s(l)使得s(l)与m互质。如本文中所使用,术语“互质”(或“互素”)描述两个整数使得不存在大于1的将所述两个整数除尽的整数。例如,整数12及13互质,因为不存在大于1的将12及13两者除尽的整数。相比之下,整数12及14不互质,因为存在大于1的将12及14两者除尽的整数(例如,2)。

在一些实施例中,通过选择s(l)使得其与m互质,可检查LBA结构Λ中的每一个相异位置(例如,本文在图3B中所说明的LBA数据表Λ316-1)。

如方程式2中所展示,L2P数据结构216-1(例如,图3B中所说明的LBA数据表Λ316-1)及L2P数据结构216-N(例如,图3B中所说明的PBA数据表Π316-1)可包含m个元素。例如,L2P数据结构216-1及L2P数据结构216-N可经配置使得针对每一PBA存在一个元素m。

在一些实施例中,L2P数据结构216-1及L2P数据结构216-N可为空。例如,在某个时间段,L2P数据结构216-1及L2P数据结构216-N可能不含有数据(例如,L2P数据结构216-1可能不含有LBA且L2P数据结构216-N可能不含有PBA),如由方程式3所展示:

Λ

主机(例如,本文在图1中所说明的主机102)可将LBA(l)写入到L2P数据结构216-1中的位置。在一些实施例中,在L2P数据结构216-N中可存在其中可写入有PBA(p)的对应空位置。可使用方程式4来确定L2P数据结构216-1中用于写入LBA的位置:

i=h(l) (方程式4)

在一些实施例中,如果如方程式3中所展示那样Λ

式5中所展示那样:

相比之下,如果L2P中的第i位置被占用,如方程式6中所展示,那么可能发生冲突。如本文中所使用,“冲突”是其中由哈希函数h(l)确定的L2P数据结构216-1中的位置已含有与l不同的LBA的情景。当检测到冲突时,无法在L2P数据结构216-1中的现存LBA上方写入新LBA。代替地,如果检测到冲突,那么第二哈希函数s(l)可用于确定L2P数据结构216-1中用于写入LBA的不同位置。

Λ

下文结合图3A到3C进一步描述将LBA写入到L2P数据结构216-1及将PBA写入到L2P数据结构216-N。

图3A是根据本发明的数个实施例的快闪存储器数据结构218的框图。快闪存储器装置可类似于图2中所说明的快闪存储器装置214。如图3A中所展示,快闪存储器数据结构318可包含多个位置(例如,例如图2中所说明的快闪存储器装置214的快闪存储器装置的存储位置)。此外,如图3A中所展示,快闪存储器数据结构318展示多个步(例如,步0、...、步4),所述步将在下文以实例方式进行描述。例如,图3A展示快闪存储器装置在多个步处的状态。

在图3A中,一些位置可为空余的、有效的或无效的。这些状态可随着时间增加且将数据写入到快闪存储器装置(例如,随着将数据写入到快闪存储器数据结构318)而改变。如图3A中所说明,空余的位置(例如,其中未存储有对应数据的位置)被指示为白框。含有有效数据的位置(例如,与给定LBA相关联的内容的最新版本)用单个哈希模式指示,且无效的位置(例如,含有对主机不再有效的数据的位置)由交叉影线指示。例如,在步0处,对应于索引0的位置是有效的,因为其含有与LBA 2相关联的数据的最新版本。相比之下,在步3处,对应于索引0的位置是无效的,因为LBA 2已由主机更新,且最新内容现在位于位置3中。

图3B是根据本发明的数个实施例的实例L2P数据结构的框图。图3B中所说明的L2P数据结构316-1可类似于图2中所说明的L2P数据结构216-1。如图3B中所展示,L2P数据结构316-1可包含多个位置(例如,例如图2中所说明的L2P数据结构216-1的LBA表中的位置)。此外,如图3B中所展示,L2P数据结构316-1展示多个步(例如,步0、...、步4),所述步将在下文以实例方式进行描述。例如,图3B展示L2P数据结构316-N针对多个步的演进。

图3C是根据本发明的数个实施例的实例L2P数据结构的另一框图。图3C中所说明的L2P数据结构316-N可类似于图2中所说明的L2P数据结构216-N。如图3C中所展示,L2P数据结构316-N可包含多个位置(例如,例如图2中所说明的L2P数据结构216-N的LBA表中的位置)。此外,如图3C中所展示,L2P数据结构316-N展示多个步(例如,步0、...、步4),所述步将在下文以实例方式进行描述。例如,图3C展示L2P数据结构316-N针对多个步的演进。

在以下非限制性实例中,我们假设存在8个PBA(例如,m=8)及6个LBA(例如,n=6)。方程式7中展示此实例的两个哈希函数h(l)及s(l)的实例:

尽管方程式7中所展示的取模运算展示除数8,但实施例不限于此,且方程式7中所展示的h(l)及s(l)可具有与8不同的除数。例如,除数x,其中x是整数,可取代方程式7中的8来使用。表1中展示由其中m=8且n=6的实例的两个哈希函数h(l)及s(l)生成的值:

表1

继续这个实例,主机(例如,本文在图1中所说明的主机102)可将LBA序列写入到存储器装置(例如,本文在图2中所说明的存储器装置210)。在一些实施例中,可以步序列(例如,图3A到3C中所展示的步0、...、步4)写入LBA序列。LBA的实例序列可为表2中所展示的以下LBA序列:

表2

在图3A到3C中所展示的步0处,主机可尝试写入具有对应值2的LBA(如表2中所展示)。由于这是主机第一次尝试将LBA写入到存储器装置,因此L2P数据结构318-N中存在对应于0处的空余PBA块的空余块。使用方程式4,i=h(2)=4。由于Λ

在图3A到3C中所展示的步1处,主机可尝试写入具有对应值4的LBA(如表2中所展示)。如图3C中所展示,在L2P数据结构318-N中存在对应于1处的空余PBA块的空余块。使用方程式4,i=h(4)=0。由于Λ

在图3A到3C中所展示的步2处,主机可尝试写入具有对应值5的LBA(如表2中所展示)。如图3C中所展示,在L2P数据结构318-N中存在对应于2处的空余PBA块的空余块。使用方程式4,i=h(5)=6。由于Λ

在图3A到3C中所展示的步3处,主机可尝试更新具有对应值2的LBA的内容(如表2中所展示)。如图3C中所展示,在L2P数据结构318-N中存在对应于3处的空余PBA块的空余块。使用方程式4,i=h(2)=4。由于Λ

在图3A到3C中所展示的步4处,主机可尝试写入具有对应值0的LBA的内容(如表2中所展示)。如图3C中所展示,在L2P数据结构318-N中存在对应于4处的空余PBA块的空余块。使用方程式4,i=h(0)=0。由于Λ

遵循所述实例,存储在Λ

上文结合图3A到3C所描述的实例在下文以伪代码的以下实例进一步更全面地概述。在以下伪代码实例中,一开始,L2P数据结构318-1及318-N为空且通过设置Λ

在第一实例伪代码的第一操作中,可初始化写入(例如,插入)具有对应的PBA p的LBA l的程序。在一些实施例中,第二操作可包含将第一具有函数h(l)设置为i,如结合方程式4所描述。第三操作可包含将设置尚未完成的指示设置为错误,由此指示所述程序在第四操作处继续进行。

第四操作可包含在设置尚未完成时执行while循环,如第五到第二十一操作中所描述。在一些实施例中,第五操作可包含确定Λ

在第九操作处,可响应于Λ

在第十二操作处,可响应于Λ

由于LBA l具有大于先前存储在L2P数据结构318-1的第一位置中的LBA的值,因此在第十五操作处,可将Λ

响应于第十九操作的完成,可将i设置为i+s(l)(mod m)以通过使用第二哈希函数来使第一哈希函数递增,如上文结合图3A到3C所描述。随后,while循环可在第二十操作处终止,且所述程序可在第二十一操作处结束。

第二实例伪代码说明根据本发明的数个实施例的读取对应于LBA l的PBA p的实例。在第二实例伪代码中,如果将LBA写入(例如,存储)在L2P数据结构318-1中,那么返回PBA值-1:

在第二实例伪代码的第一操作中,可初始化读取(例如,检索)与对应LBA l相关联的PBA p的程序。在一些实施例中,第二操作可包含将h(l)设置为i,如方程式4中所展示。如果所述设置在第三操作处尚未完成,那么可在第四操作处执行while循环。

while循环可包含第五操作处的if then循环。例如,在第五操作处,如果Λ

如果在第五操作处执行的if then循环尚未完成,那么在第八操作处,可响应于Λ

在第十一操作处,在第五操作处执行的if循环可终止且在第十二操作处,可将i设置为i+s(l)(mod m)以通过使用第二哈希函数来使第一哈希函数递增,如上文结合图3A到3C所描述。在第十三操作处,在第四操作处执行的while循环可终止且可在第十四操作处传回PBA p。最后,在第十五操作处,所述程序可结束。

图4说明根据本发明的数个实施例的逻辑到物理数据结构的实例流程图。在框422处,方法420可包含确定存储在非易失性存储器装置中的第一逻辑到物理(L2P)数据结构(例如,本文在图2中所说明的L2P数据结构216-1)中用于写入第一逻辑块地址(LBA)的第一位置。在一些实施例中,方法420可包含通过执行第一哈希函数h(1)来确定第一L2P数据结构中用于写入第一LBA的第一位置,如本文中结合图3A到3C所描述。

在框424处,方法420可包含确定第一位置包含第二LBA。在一些实施例中,确定第一位置包含第二LBA可包含确定在第一位置处已发生冲突。第二LBA可能先前已存储在第一位置中(例如,第二LBA可能在尝试将第一LBA存储在第一位置中之前已存储在第一位置中)。在一些实施例中,方法420可包含通过执行第二哈希函数s(1)来确定第一L2P数据结构中用于写入第一LBA的第一位置,如本文中结合图3A到3C所描述。

在框426处,方法420可包含响应于第一位置包含第二LBA的确定而将第一LBA写入到第一L2P数据结构中的第二位置。例如,方法420可包含响应于已发生冲突的确定而将第一LBA写入到第一L2P数据结构中的第二位置。

在框428处,方法420可包含将对应于第一LBA的物理块地址(PBA)写入到存储在NVM装置中的第二L2P数据结构(例如,本文在图2中所说明的L2P数据结构216-N)中的第一位置。在一些实施例中,第一L2P数据结构中的第二位置可对应于第二L2P数据结构中的第一位置。

如上文所描述,第一L2P数据结构及第二L2P数据结构可含有相同数量的行及相同数量的列(例如,第一L2P数据结构可为a x b表且第二L2P数据结构可为a x b表,其中a及b是非零整数)。例如,在一些实施例中,第一L2P数据结构及第二L2P数据结构可具有相同大小。

在一些实施例中,方法420可进一步包含从第一L2P数据结构中的第二位置读取第一LBA。然而,实施例不限于此,且在一些实施例中,例如其中不是检测到的冲突且将第一LBA写入到L2P数据结构中的第一位置的实施例,所述方法可进一步包含从第一L2P数据结构中的第一位置读取LBA。

在一些实施例中,方法420可进一步包含从第二L2P数据结构中的第二位置读取PBA。例如,如果检测到冲突且将PBA写入到第二L2P数据结构中的第二位置,那么方法420可包含从第二L2P数据结构中的第二位置读取PBA。然而,实施例不限于此,且在一些实施例中,例如其中未检测到冲突且将PBA写入到第二L2P数据结构中的第一位置的实施例,所述方法可进一步包含从第二L2P数据结构中的第一位置读取PBA。

尽管已在本文中说明及描述特定实施例,但所属领域的一般技术人员将明白,经计算以实现相同结果的布置可替换所展示的特定实施例。本发明意在涵盖本发明的一或多个实施例的调适或变动。应理解,以上描述已以说明性方式而非限制性方式进行。在审阅以上描述后,以上实施例的组合及本文中未具体地描述的其它实施例对于所属领域的技术人员来说将是显而易见的。本发明的一或多个实施例的范围包含其中使用以上结构及方法的其它应用。因此,本发明的一或多个实施例的范围应参考所附权利要求书连同此权利要求书所享有的等效物的全部范围来确定。

在前文具体实施方式中,出于简化本发明的目的而在单个实施例中将一些特征组合在一起。本发明方法不应被解释为反映本发明的所揭示实施例必须使用多于每一权利要求中明确地叙述的特征的特征的意图。而是,如所附利要求书所反映,发明标的物在于少于单个所揭示实施例的所有特征。因此,所附权利要求书由此并入到具体实施方式中,其中每一权利要求独立地作为单独实施例。

相关技术
  • 逻辑到物理数据结构
  • 用于物理层封装的数据结构、数据结构产生设备及其方法
技术分类

06120112180749