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

实施映射数据结构以最小化依序写入的数据存取

文献发布时间:2023-06-19 18:35:48


实施映射数据结构以最小化依序写入的数据存取

技术领域

本公开的实施例大体上涉及存储器子系统,且更确切地说,涉及实施映射数据结构以最小化依序写入的数据存取。

背景技术

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

发明内容

在一个方面中,本申请提供一种系统,其包括:存储器装置;和处理装置,其操作性地与存储器装置耦合以执行包括以下的操作:接收将数据依序写入到存储器装置的块的请求;响应于接收到请求,将数据写入到块以获得依序写入的数据;启动对应于依序写入的数据的逻辑到物理L2P映射数据的累积;确定符合用于终止L2P映射数据的累积的标准;响应于确定符合标准,终止L2P映射数据的累积以获得累积的L2P映射数据;及基于累积的L2P映射数据来更新L2P映射数据结构。

在另一方面中,本申请提供一种系统,其包括:由处理装置接收将数据依序写入到存储器装置的块的请求;响应于接收到请求,由处理装置将数据写入到块以获得依序写入的数据;由处理装置启动对应于依序写入的数据的逻辑到物理(L2P)映射数据的累积;由处理装置确定符合用于终止L2P映射数据的累积的标准;响应于确定符合标准,由处理装置终止L2P映射数据的累积以获得累积的L2P映射数据;及由处理装置基于累积的L2P映射数据来更新L2P映射数据结构。

在又一方面中,本申请提供一种非暂时性计算机可读存储媒体,其包括指令,所述指令在由处理装置执行时使得处理装置执行包括以下的操作:接收将数据依序写入到存储器装置的块的请求;响应于接收到请求,将数据写入到块以获得依序写入的数据;启动对应于依序写入的数据的逻辑到物理(L2P)映射数据的累积;确定符合用于终止L2P映射数据的累积的标准;响应于确定符合标准,终止L2P映射数据的累积以获得包括多个逻辑转换单元(LTU)的累积的L2P映射数据;及基于累积的L2P映射数据来更新维持在易失性存储器上的L2P映射数据结构,其中L2P映射数据结构通过维持依序写入的数据的对应于初始LTU的快闪物理地址和来自初始LTU的依序写入数据的长度而将多个LTU进行分组,且其中FPA转换为存储器装置的物理转换单元(PTU)。

附图说明

根据下文给出的详细描述且根据本公开的各种实施例的附图将更充分地理解本公开。然而,图式不应视为将本公开限于具体实施例,而是仅用于解释和理解。

图1说明根据本公开的一些实施例的包含存储器子系统的实例计算系统。

图2为根据本公开的一些实施例的逻辑到物理(L2P)映射数据的实例组织的图。

图3为根据本公开的一些实施例的逻辑转换单元(LTU)到快闪物理地址(FPA)映射数据结构的图。

图4为根据本公开的一些实施例的用于在写入操作期间处理对映射数据结构的更新的实例方法的流程图。

图5为根据本公开的一些实施例的用于使用映射数据结构来满足读取依序写入的数据的请求读取的实例方法的流程图。

图6为其中可操作本公开的实施例的实例计算机系统的框图。

具体实施方式

本公开的方面涉及实施映射数据结构以最小化依序写入的数据存取。存储器子系统可为存储装置、存储器模块,或存储装置与存储器模块的组合。下文结合图1描述存储装置和存储器模块的实例。一般来说,主机系统可利用包含一或多个组件(诸如,存储数据的存储器装置)的存储器子系统。主机系统可提供待存储在存储器子系统处的数据且可请求待从存储器子系统检索的数据。

存储器子系统可包含高密度非易失性存储器装置,其中当未将电力供应到存储器装置时需要保留数据。非易失性存储器装置的一个实例为“与非”(NAND)存储器装置。下文结合图1描述非易失性存储器装置的其它实例。非易失性存储器装置为一或多个裸片的封装。每一裸片可由一或多个存储器平面(“平面”)组成。对于一些类型的非易失性存储器装置(例如,NAND装置),每一平面由一组物理块(“块”)组成。每一块由一组页组成。每一页由一组存储器单元(“单元”)组成。单元为存储信息的电子电路。取决于单元类型,单元可存储二进制信息的一或多个位,且具有与正存储的位数相关的各种逻辑状态。逻辑状态可由二进制值(诸如“0”和“1”)或这类值的组合表示。

存储器装置可包含以二维网格布置的多个存储器单元。将存储器单元刻蚀到列(也称为位线)和行(也称为字线)的阵列中的硅晶片上。字线可以指存储器装置的存储器单元的一或多个行,其与一或多个位线一起使用以产生存储器单元中的每一个的地址。位线和字线的相交点构成存储器单元的地址。可将一或多个块分组在一起以形成存储器装置的平面,以便允许在每一平面上进行并发操作。存储器装置可包含执行两个或更多个存储器平面的并发存储器页存取的电路系统。举例来说,存储器装置可包含用于存储器装置的每一平面的相应存取线驱动器电路和电源电路以促进对包含不同页类型的两个或更多个存储器平面的页进行并发存取。

举例来说,存储器子系统(例如,SSD)的存储器装置(例如,NAND)可与各自提供存储器装置的一部分(例如,储存容量)的逻辑表示的多个逻辑单元(LU)相关联。每一LU分配有逻辑单元号(LUN),其供主机系统用来在使用合适的接口标准将LU附接到主机系统时标识所述LU。举例来说,LUN可与存储器装置的平面相关联,且每一平面可包含多个物理转换单元(PTU)。PTU对应于由存储器装置管理的数据的基础粒度。举例来说,每一PTU可对应于定义存储器装置相对于特定LUN和平面的物理位置的物理地址。在一些实例中,给定LUN可包含4个平面,且平面中的每一个可包含4个PTU(例如,每LUN有16个PTU)。

在从指定逻辑地址(例如,LTU)的主机系统接收数据存取请求(例如,读取命令和/或写入命令)之后,将逻辑地址转换为存储器装置(例如,LUN、平面、PTU)的对应物理地址以处理数据存取请求。为实现这一点,可维持逻辑到物理(L2P)映射数据结构(例如,L2P映射表)以管理转换。L2P映射表维持多个逻辑地址到相应物理地址的一对一映射。举例来说,就NAND快闪存储器而言,逻辑地址可为逻辑转换单元(LTU)。逻辑地址可对应于存储器装置上的多个连续物理地址(例如,16个LTU、32个LTU、64个LTU)。即,如果将数据依序写入到存储器装置的连续位置,那么连续逻辑地址可存在于相同块或页中。就NAND快闪存储器而言,物理地址可称为快闪物理地址(FPA)。举例来说,如果L2P映射数据结构维持表示为LTU

一般来说,在NAND快闪存储器的情况下,可将更新后的数据写入到不同块的“空闲”(例如,已擦除)页,而不是重写特定块的页,且可将包含旧数据的页标记为无效页。可执行称为“垃圾收集”的过程,以通过识别用于回收的一或多个候选块来维持可用于写入数据的空闲块。一或多个候选块可包含有效和/或无效数据。举例来说,有效数据可以指对应于具有当前(例如,最新)L2P映射条目的页的数据,而无效数据可以指对应于其映射条目失效(例如,对应逻辑页已重新映射到新物理页)的页的数据。在垃圾收集期间擦除给定候选块之前,可将给定候选块的有效页复制到另一块。垃圾收集过程利用读取和写入操作,其可引起写入放大且因此使得存储器子系统(例如,SSD)的电力消耗增加和/或减少存储器子系统(例如,存储器单元可在经历一定数目的编程/擦除循环之后变得不可用)的使用寿命。

然而,在写入操作期间,在每LTU的单独L2P条目的基础上更新维持在易失性存储器(例如,DRAM)中的某些L2P映射数据结构。此外,响应于接收到对依序写入的数据的主机读取请求,控制器可向这类L2P映射数据结构中的对应LTU中的每一个发出单独读取请求。对依序写入的数据的这类L2P映射数据结构中的条目进行单独存取可使资源利用率增加。因此,至少相对于管理对依序写入的数据的数据存取,某些L2P映射数据结构可为低效的。

本公开的方面通过具有实施L2P映射数据结构以最小化对依序写入的数据的数据存取的存储器子系统来解决以上和其它缺陷。对于依序写入的数据,控制器(例如,控制器固件)可更新L2P映射数据结构。本文中所描述的L2P映射数据结构包含表示为“长度”的特定字段,所述长度对应于依序写入到存储器装置的相同块(例如,通过主机系统写入和/或垃圾收集写入)的数据的长度。更确切地说,对应于依序写入的数据的逻辑地址的LTU群组可包含初始LTU条目。举例来说,LTU条目群组可包含16个LTU、32个LTU、64个LTU、128个LTU等。L2P映射数据结构可进一步包含对应于初始LTU条目的起始物理地址(例如,FPA)条目,和对应于群组中的LTU条目的数目的依序写入的数据的长度。

通过使用单一物理地址和长度来定义LTU群组,可减少对易失性存储器中的L2P映射数据结构的存取。举例来说,在主机写入期间,与每LTU需要单独条目更新的维持单独LTU到物理地址映射的L2P映射数据结构相比,可使用单一条目更新来更新本文中所描述的L2P映射数据结构。作为另一实例,在对LTU群组的主机读取期间,本文中所描述的L2P映射数据结构可通过使控制器将单个L2P读取请求发出到易失性存储器来实现易失性存储器存取的减少。这与以下情况的L2P映射数据结构进行比较:控制器将最终将单独L2P读取请求发出到易失性存储器以获得群组的每一单独LTU的L2P条目。

本公开的优点包含但不限于减少了控制器开销和改善了数据存取路径(例如,读取和/或写入路径)的性能。

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

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

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

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

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

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

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

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

每一存储器装置130可包含一或多个存储器单元阵列。一种类型的存储器单元,例如单层级单元(SLC)每单元可存储一个位。其它类型的存储器单元,诸如多层级单元(MLC)、三层级单元(TLC)、四层级单元(QLC)和五层级单元(PLC)每单元可存储多个位。在一些实施例中,存储器装置130中的每一个可包含一或多个存储器单元阵列,诸如SLC、MLC、TLC、QLC、PLC或这类的任何组合。在一些实施例中,特定存储器装置可包含存储器单元的SLC部分,和MLC部分、TLC部分、QLC部分或PLC部分。可将存储器装置130的存储器单元分组为页,所述页可指用于存储数据的存储器装置的逻辑单元。在一些类型的存储器(例如,NAND)的情况下,可将页分组以形成块。

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

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

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

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

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

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

在一些实施例中,存储器装置130包含本地媒体控制器135,其结合存储器子系统控制器115操作以对存储器装置130的一或多个存储器单元执行操作。外部控制器(例如,存储器子系统控制器115)可在外部管理存储器装置130(例如,对存储器装置130执行媒体管理操作)。在一些实施例中,存储器子系统110为受管理存储器装置,其为具有裸片上的控制逻辑(例如,本地媒体控制器135)的原始存储器装置130和用于相同存储器装置封装内的媒体管理的控制器(例如,存储器子系统控制器115)。受管理存储器装置的实例为受管理NAND(MNAND)装置。

存储器子系统110包含L2P映射组件113。在一些实施例中,存储器子系统控制器115包含L2P映射组件113的至少一部分。在一些实施例中,L2P映射组件113为主机系统110、应用程序或操作系统的部分。在其它实施例中,本地媒体控制器135包含L2P映射组件113的至少一部分且配置成执行本文中所描述的功能性。

举例来说,如下文将参考图4进一步详细描述,L2P映射组件113可在写入操作期间启动L2P映射数据的累积,同时推迟对L2P映射数据结构的更新。如果L2P映射组件113确定符合用于终止L2P映射数据的累积的标准,那么L2P映射组件113可终止L2P映射数据的累积。此时,L2P映射组件113可使用已累积的L2P映射数据来更新L2P映射数据结构。L2P映射数据结构可包含对应于初始LTU的物理地址(例如,FPA),和来自初始LTU的依序写入的数据的长度。在一些实施例中,L2P映射数据结构为具有包含初始LTU的LTU列、起始物理地址条目和长度条目的表。

如下文将参考图5进一步详细描述,L2P映射组件113可使用L2P映射数据结构来服务读取依序写入的数据的读取请求。通过基于起始物理地址和长度来维持LTU群组,而不是使群组的每一LTU与相应物理地址相关联,L2P映射组件113使用L2P映射结构可最小化对依序写入的数据的数据存取。因此,更新如本文中所描述的L2P映射数据结构可实现存储器子系统控制器115和/或存储器子系统110的其它组件的资源消耗的减少。下文参考图2到5描述关于映射数据结构和L2P映射组件113的操作的进一步细节。

图2为展示根据本公开的一些实施例的逻辑到物理(L2P)映射数据的实例组织的图200。更确切地说,图200展示可如何将L2P映射数据维持在控制器存储器中(诸如,易失性存储器(例如,DRAM)或非易失性存储器中)。在这一说明性实例中,假设非易失性存储器为NAND快闪存储器。然而,这类实施例不应被视为具限制性。

如所展示,图200包含L2P映射表(“表”)210。表210包含多个列,包含子群组列220、LTU列230和NAND存储器地址列240。列220包含对应于子群组222-1到222-N的N个子群组条目,且列230包含对应于LTU 232-1到232-M的M个LTU条目。值M对应于所支持的LTU条目的最大数目。子群组222-1到222-N中的每一个为整个群组LTU 232-1到232-M的子群组。在这一说明性实例中,子群组1 222-1包含LTU 232-1到232-8,子群组2 222-2包含LTU 232-9到232-16等,使得每一子群组包含LTU 232-1到232-M群组的8个LTU子集。然而,这一实例不应被视为具限制性。

如进一步展示,表210进一步包含NAND存储器地址列240。列240包含对应于LTU232-1到232-M中的每一个的FPA数据条目。如所展示,列240包含对应于LTU 232-1、232-5到232-9和232-M中的相应者的FPA条目242-1到242-7。在主机写入期间,一旦将数据写入到NAND,控制器就将所述位置维持为FPA,其将在表210中相对于对应LTU进行更新。举例来说,图200进一步包含对应于包含NAND存储器条目252到262的NAND存储器的表250。为说明起见,提供表250,且可不存在于控制器存储器中的任何位置。每一条目242-1到242-7指向NAND存储器中的一个物理位置。在这一实例中,FPA242-1映射到条目256,FPA242-2映射到条目252,FPA 242-3映射到条目254,FPA242-4映射到条目260,FPA 242-5映射到条目258,且FPA 242-7映射到条目262。

如进一步展示,列240包含未被映射的FPA条目244-1和244-2。每一未被映射的FPA条目对应于具有尚未从主机写入的数据(例如,尚未存在于NAND存储器中的LTU数据)的LTU。列240进一步包含不可校正错误(UECC)FPA条目246。条目246对应于NAND中的不可读的数据的位置(例如,损坏数据位置)。

图3为根据本公开的一些实施例的实例逻辑到物理(L2P)映射数据结构300。在这一说明性实例中,L2P映射数据结构300相对于存储器装置(例如,NAND)执行LTU到FPA映射。然而,这一实例不应被视为具限制性。

如所展示,L2P映射数据结构300包含LTU条目群组310(“0”到“31”)。在这一说明性实例中,LTU条目群组包含32个LTU条目。然而,LTU条目群组310可包含任何合适数目个LTU条目。LTU条目群组310可分裂成子群组,如上文参考图2所描述。

LTU条目群组310的LTU条目为对应于存储器装置上的依序写入的数据的物理地址的逻辑地址。举例来说,每一LTU条目可映射到特定FPA,其中FPA可转换成对应物理地址。在这一实例中,LTU 0可映射到FPA 400400,LTU 1可映射到FPA400401,……LTU 9可映射到400409,LTU 10可映射到40040A,……LTU 15可映射到40040F,LTU 16可映射到400410,……且LTU 31可映射到40041F。然而,这一映射可使得每LTU单独更新L2P条目,但由于数据是依序写入的,因此这是对资源的浪费。举例来说,将需要对LTU 0到31中的每一个发出单独读取请求。

为了减少对依序写入的数据的易失性存储器存取且减少资源利用率,L2P映射数据结构300将LTU群组310构造为在更新期间对易失性存储器做出的单个条目。为实现这一点,L2P映射数据结构300进一步包含指定为依序写入数据的起始FPA的单个FPA条目320,和指示来自起始FPA的依序写入的数据的长度的长度条目330。在这一实例中,因为起始FPA对应于第一LTU 0,所以起始FPA为400400,且由于LTU条目群组310中存在32个LTU条目,因此长度为32。下文将参考图4到6描述关于数据结构310的实施的进一步细节。

图4为根据本公开的一些实施例的用于在写入操作期间处理对映射数据结构的更新的实例方法的流程图。方法400可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,方法400由图1的L2P映射组件113执行。虽然以特定序列或次序展示,但是除非另外规定,否则可修改过程的次序。因此,说明的实施例应仅作为实例理解,且说明的过程可以不同次序执行,且一些过程可并行执行。另外,可以在各种实施例中省略一个或多个过程。因此,并非在每一实施例中需要所有过程。其它过程流程是可能的。

在操作410处,处理逻辑接收执行将数据写入到存储器装置的块的依序写入操作的请求。在操作420处,处理逻辑将数据写入到块以获得依序写入的数据。块上的位置对应于物理地址。举例来说,物理地址可对应于快闪物理地址(FPA)。

在操作430处,处理逻辑启动对应于依序写入的数据的L2P映射数据的累积。举例来说,L2P映射数据可包含对应于依序写入的数据的相应物理位置的一组LTU。处理逻辑可通过产生响应于接收到所述请求而启动L2P映射数据的累积的命令来启动L2P映射数据的累积。举例来说,控制器固件可跟踪L2P映射数据的聚合或更新,以及在周期性基础上使L2P映射数据持久性地在存储器装置(例如,NAND)上。然而,在L2P映射数据的累积期间,不更新L2P映射数据结构。因此,在L2P映射数据的累积期间,处理逻辑使L2P映射数据结构的更新推迟。

举例来说,假设主机意图将128KB值的数据写入到存储器子系统(例如,SSD)。那么控制器可将每一请求分块成4KB的大小,使得将以依序方式获得32个请求。一旦控制器接收到对第一LTU的写入请求(例如,对应于用于将数据写入到某一块X的LTU

在操作440处,累积将继续直到处理逻辑确定符合用于终止L2P映射数据的累积的标准,且在操作450处,处理逻辑终止L2P映射数据的累积。标准可包含于用于终止L2P映射数据的累积的一组标准中。

在一些实施例中,确定符合标准可包含确定累积的连续位置的数目等于连续位置的阈值(例如,32/64/128LTU阈值)。

在一些实施例中,确定符合标准可包含确定将数据写入到新物理地址。举例来说,新物理地址可对应于不同于当前块的块(例如,在当前块已满之后的块交换期间)。

在一些实施例中,确定符合标准可包含确定L2P缓冲器(例如,SRAM)已满。这是因为L2P缓冲器仅可容纳固定数目个条目。

在操作460处,处理逻辑更新L2P映射数据结构。更确切地说,用在L2P映射数据的累积终止之后获得的累积的L2P映射数据来更新L2P映射数据结构。L2P映射数据结构可维持在易失性存储器(例如,DRAM)上。在一些实施例中,更新L2P映射数据结构包含更新先前存储的映射数据结构。在一些实施例中,更新L2P映射数据结构包含创建新的L2P映射数据结构。

举例来说,可更新L2P映射数据结构以维持对应于与依序写入的数据相关联的初始LTU的起始地址,和来自起始物理地址的依序写入的数据的长度。在一些实施例中,起始物理地址为快闪物理地址(FPA)。在一些实施例中,L2P映射数据结构为具有包含初始LTU条目的LTU列、起始物理地址条目和长度条目的表。

通过响应于如本文中所描述的依序写入操作而更新L2P映射数据结构,可较不频繁地对L2P映射数据结构进行更新。因此,与将单独LTU条目添加到L2P映射数据结构相比,可减少控制器开销。如下文将参考图5进一步详细描述,代替使每一LTU与单独物理地址相关联,可使用起始物理地址以及长度来服务对易失性存储器进行单次读取而非对易失性存储器进行多次单独读取的读取请求。

图5为根据本公开的一些实施例的用于服务读取依序写入的数据的读取请求的实例方法的流程图。方法500可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,方法500由图1的L2P映射组件113执行。虽然以特定序列或次序展示,但是除非另外规定,否则可修改过程的次序。因此,说明的实施例应仅作为实例理解,且说明的过程可以不同次序执行,且一些过程可并行执行。另外,可以在各种实施例中省略一个或多个过程。因此,并非在每一实施例中需要所有过程。其它过程流程是可能的。

在操作510处,处理逻辑接收读取存储器装置的块的依序写入的数据的读取请求。举例来说,读取请求可为主机系统启动的读取请求。

在操作520处,处理逻辑使用单次L2P读取来存取L2P映射数据结构。举例来说,L2P映射数据结构可维持在易失性存储器(例如,DRAM)中。L2P映射数据结构可包含对应于依序写入的数据的LTU群组中的初始LTU、对应于初始LTU的起始物理地址,和来自初始LTU的依序写入的数据的长度。在一些实施例中,起始物理地址为快闪物理地址(FPA)。举例来说,映射数据结构可包含具有包含初始LTU的LTU列、起始物理地址条目和长度条目的表。

说明性地,如果相对于对应于LTU#0到LTU#31的LTU群组接收主机读取请求(使得依序写入的数据的长度为32),那么控制器可基于初始LTU、起始物理地址和长度向易失性存储器发出单次L2P读取(而非向易失性存储器发出32个读取请求以获得LTU#0到LTU#31中的每一个的L2P条目)。因此,L2P映射数据结构可服务对易失性存储器进行较少L2P读取的读取存取,这可提高性能。

在操作530处,处理逻辑通过使用L2P映射数据结构执行读取操作来服务读取请求。

举例来说,假设主机意图将128KB值的数据写入到存储器子系统(例如,SSD)。那么控制器可将每一请求分块成4KB的大小,使得将以依序方式获得32个请求。一旦控制器接收到用于第一LTU,LTU

对于对应于下一个LTU,LTU

图6说明计算机系统600的实例机器,在所述实例机器内,可执行用于使得所述机器执行本文中所论述的方法中的任何一种或多种的指令集。在一些实施例中,计算机系统600可对应于包含、耦合到或利用存储器子系统(例如,图1的存储器子系统110)的主机系统(例如,图1的主机系统120),或可用于执行控制器的操作(例如,执行操作系统以执行对应于图1的L2P映射组件113的操作)。在替代实施例中,机器可连接(例如,联网)到LAN、内联网、外联网和/或互联网中的其它机器。机器可作为对等(或分布式)网络环境中的对等机器或作为云计算基础设施或环境中的服务器或客户端机器而以客户端-服务器网络环境中的服务器或客户端机器的能力进行操作。

机器可以是个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、蜂窝式电话、网络设备、服务器、网络路由器、交换机或桥接器,或能够(依序或以其它方式)执行指定待由所述机器采取的动作的指令集的任何机器。另外,虽然说明单个机器,但还应认为术语“机器”包含机器的任何集合,所述集合单独地或共同地执行指令集(或多个指令集)以执行本文中所论述的方法中的任何一种或多种方法。

实例计算机系统600包含经由总线630彼此通信的处理装置602、主存储器604(例如,只读存储器(ROM)、快闪存储器、动态随机存取存储器(DRAM),诸如同步DRAM(SDRAM)或RDRAM等)、静态存储器606(例如,快闪存储器、静态随机存取存储器(SRAM)等)和数据存储系统618。

处理装置602表示一或多个通用处理装置,诸如微处理器、中央处理单元,等。更确切地说,处理装置可为复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器,或实施其它指令集的处理器,或实施指令集的组合的处理器。处理装置602还可为一或多个专用处理装置,诸如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、网络处理器等。处理装置602配置成执行指令626以用于执行本文中所论述的操作和步骤。

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

在一个实施例中,指令626包含用于实施对应于L2P映射组件(例如,图1的L2P映射组件113)的功能性的指令。尽管在实例实施例中将机器可读存储媒体624展示为单个媒体,但应认为术语“机器可读存储媒体”包含存储一或多个指令集的单个媒体或多个媒体。还应认为术语“机器可读存储媒体”包含能够存储或编码供机器执行的指令集且使机器执行本公开的方法中的任何一或多种的任何媒体。因此,应认为术语“机器可读存储媒体”包含但不限于固态存储器、光学介质和磁性介质。

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

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

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

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

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

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

相关技术
  • 一次写入型记录介质、一次写入型记录介质的记录装置及方法、一次写入型记录介质的重放装置及方法、用于记录或重放控制的计算机程序、以及数据结构
  • 一次写入型记录介质、一次写入型记录介质的记录装置及方法、一次写入型记录介质的重放装置及方法、用于记录或重放控制的计算机程序、以及数据结构
技术分类

06120115625500