CN113851166A - 存储器子系统中的加速读取转译路径 - Google Patents

存储器子系统中的加速读取转译路径 Download PDF

Info

Publication number
CN113851166A
CN113851166A CN202110712415.1A CN202110712415A CN113851166A CN 113851166 A CN113851166 A CN 113851166A CN 202110712415 A CN202110712415 A CN 202110712415A CN 113851166 A CN113851166 A CN 113851166A
Authority
CN
China
Prior art keywords
data structure
identifier
ltu
zone
mapping
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202110712415.1A
Other languages
English (en)
Other versions
CN113851166B (zh
Inventor
J·A·拉姆
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Micron Technology Inc
Original Assignee
Micron Technology Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Micron Technology Inc filed Critical Micron Technology Inc
Publication of CN113851166A publication Critical patent/CN113851166A/zh
Application granted granted Critical
Publication of CN113851166B publication Critical patent/CN113851166B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/08Address circuits; Decoders; Word-line control circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/26Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/18Address generation devices; Devices for accessing memories, e.g. details of addressing circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/18Address generation devices; Devices for accessing memories, e.g. details of addressing circuits
    • G11C2029/1802Address decoder
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/18Address generation devices; Devices for accessing memories, e.g. details of addressing circuits
    • G11C2029/1806Address conversion or mapping, i.e. logical to physical address

Abstract

本申请案涉及存储器子系统中的加速读取转译路径。一种处理装置包含:系统标签数据结构,其用以存储包含对应于逻辑传送单元LTU的LTU识别符的系统标签,所述LTU包含包括读取请求的逻辑块地址LBA的多个循序LBA的子集;以及映射数据结构,其将LBA空间的区映射到物理地址空间。硬件逻辑将:从所述系统标签检索所述LTU识别符;基于所述LTU识别符确定区识别符ID;使用所述区ID或所述LTU识别符中的至少一个向所述映射数据结构中编索引,以检索指定所述LTU识别符和所述物理地址空间的物理地址之间的映射的元数据;以及与所述系统标签相关联将所述元数据存储在所述系统标签数据结构中。

Description

存储器子系统中的加速读取转译路径
技术领域
本公开的实施例大体上涉及存储器子系统,且更确切地说涉及存储器子系统中的加速读取转译路径。
背景技术
存储器子系统可包含存储数据的一或多个存储器装置。存储器装置可为例如非易失性存储器装置和易失性存储器装置。一般来说,主机系统可以利用存储器子系统以在存储器装置处存储数据且从存储器装置检索数据。
发明内容
本公开的一方面提供一种系统,其包括:非易失性存储器装置;易失性存储器装置,其用以存储:映射数据结构,其将逻辑块地址(LBA)空间的区映射到所述非易失性存储器装置的物理地址空间,其中所述区包括循序映射到多个循序物理地址的多个循序LBA;以及系统标签数据结构;以及处理装置,其耦合到所述非易失性存储器装置和所述易失性存储器装置,所述处理装置用以:从读取请求中接收的LBA创建逻辑传送单元(LTU),其中所述LTU包括包含所述LBA的所述多个循序LBA的子集;以及将含有所述LTU的LTU识别符的系统标签存储在所述系统标签数据结构中;以及其中所述处理装置包括硬件加速器以:响应于所述处理装置将所述系统标签写入到所述系统标签数据结构中而从所述系统标签检索所述LTU识别符;基于所述LTU识别符确定区识别符(ID);使用所述区ID或所述LTU识别符中的至少一个向所述映射数据结构中编索引,以检索指定所述LTU识别符和所述物理地址空间的物理地址之间的映射的元数据;以及与所述系统标签相关联将所述元数据存储在所述系统标签数据结构中。
本公开的另一方面提供一种处理装置,其包括:易失性存储器,其包括:系统标签数据结构,其用以存储包括对应于逻辑传送单元(LTU)的LTU识别符的系统标签,其中所述LTU包括包含读取请求的逻辑块地址(LBA)的多个循序LBA的子集;以及映射数据结构,其将LBA空间的区映射到存储器子系统的物理地址空间,其中所述区包括循序映射到多个循序物理地址的所述多个循序LBA;以及硬件逻辑,其耦合到所述易失性存储器,所述硬件逻辑用以:响应于所述处理装置将所述系统标签写入到所述系统标签数据结构中而从所述系统标签检索所述LTU识别符;基于所述LTU识别符确定区识别符(ID);确定所述区ID的散列值;使用所述散列值或所述LTU识别符中的至少一个向所述映射数据结构中编索引,以检索指定所述LTU识别符和所述物理地址空间的物理地址之间的映射的元数据;以及与所述系统标签相关联将所述元数据存储在所述系统标签数据结构中。
本公开的另一方面提供一种方法,其包括:由存储器子系统的处理装置在系统标签数据结构内存储包括对应于逻辑传送单元(LTU)的LTU识别符的系统标签,其中所述LTU包括包含读取请求的逻辑块地址(LBA)的多个循序LBA的子集;在所述存储器子系统的映射数据结构内将LBA空间的区映射到所述存储器子系统的物理地址空间,其中所述区包括循序映射到多个循序物理地址的所述多个循序LBA;由所述处理装置的硬件加速器响应于所述处理装置将所述系统标签写入到所述系统标签数据结构中而从所述系统标签检索所述LTU识别符;由所述硬件加速器基于所述LTU识别符确定区识别符(ID);由所述硬件加速器使用所述区ID或所述LTU识别符中的至少一个向所述映射数据结构中编索引,以检索指定所述LTU识别符和所述物理地址空间的物理地址之间的映射的元数据;以及由所述硬件加速器与所述系统标签相关联将所述元数据存储在所述系统标签数据结构中。
附图说明
根据下文给出的详细描述和本公开的各种实施例的附图,将更充分地理解本公开。
图1A示出根据实施例的包含存储器子系统的实例计算系统。
图1B示出根据一实施例的图1A的存储器子系统的额外细节。
图2是示出根据各种实施例的被配置成支持基于区的映射的数据结构的实例的框图。
图3是根据一实施例的图1A-1B的控制器的命令生成处理器、转译处理器和硬件加速器的相互关系的框图。
图4是根据一实施例的用于使用硬件加速器加速读取转译路径的方法的流程图。
图5是本公开的实施例可在其中操作的实例计算机系统的框图。
具体实施方式
本公开的方面是针对存储器子系统中的加速读取转译路径。存储器子系统可为存储装置、存储器模块,或存储装置和存储器模块的混合。下文结合图1A描述存储装置和存储器模块的实例。一般来说,主机系统可利用包含一或多个组件(例如,存储数据的存储器装置)的存储器子系统。主机系统可提供待存储在存储器子系统处的数据且可请求待从存储器子系统检索的数据。
存储器装置可以是可存储来自主机系统的数据的非易失性存储器装置。非易失性存储器装置的一个实例是与非(NAND)存储器装置。下文结合图1A描述非易失性存储器装置的其它实例。存储器装置中的每一个可包含一或多个存储器单元阵列。存储器单元(“单元”)是存储信息的电子电路。取决于单元类型,单元可以存储二进制信息的一或多个位,且具有与正存储的位数目相关的各种逻辑状态。逻辑状态可由二进制值(例如“0”和“1”)或这些值的组合表示。
可在存储器单元上执行各种存取操作。举例来说,数据可写入到存储器单元、从存储器单元读取以及从存储器单元擦除。存储器单元可分组到写入单元(例如页)中。对于一些类型的存储器装置,页为最小写入单元。页是跨相同字线的单元的集合。页大小表示页的单元的特定数目。对于一些类型的存储器装置(例如,NAND),存储器单元可分组到作为页的群组的擦除单元(例如,物理单元,比如物理块)中。物理块是页(单元行)和串(单元列)的2维存储器阵列。可将数据逐页写入到块。数据可在块层级处擦除。然而,块的部分无法擦除。
多个块可分组在一起以形成平面。一或多个平面可分组在一起以形成存储器装置的物理裸片。存储器装置可包含一或多个裸片。单个裸片或层层堆叠的多个裸片可分组以形成封装。裸片在下文也称为逻辑单元(LUN)。LUN可含有一或多个平面。
存储器子系统可使用分带(striping)方案在执行数据操作(例如,写入、读取、擦除)时将数据的各个集合处理为单元。LUN条带是在写入、读取或擦除数据时处理为一个单元的平面的集合。LUN条带中的每一平面可并行地实行LUN条带中的所有其它平面的相同操作。块条带是处理为单元的块的集合(LUN条带中的每一平面一个)。块条带中的块在其相应平面中具有相同块识别符(例如,块编号)。因此,块条带(在下文也称为块集合)可以是跨不同裸片的平面排列的块的集合,使得块出于数据存储的目的分组在一起。到块集合的写入使得可跨多个裸片同时写入且同时读取更多数据。一或多个块集合的多个块可识别为数据群组。
主机文件系统可依据定位对数据进行分组,且将数据循序地写入到存储器子系统的存储器装置。文件系统可接着将不同定位的数据作为并行循序流写入到存储器装置,每一流具有其自身的定位,例如其中不同应用可各自写入到其自身的流。“定位”可以指时间定位或空间定位。常规地,控制器(例如,其包含一或多个处理装置)以数据部分(例如,4KB)的形式随机地向IC裸片写入。控制器可使用元数据将LBA空间的一或多个逻辑块地址(LBA)映射到其中存储数据的IC裸片的物理地址空间。然而,当写入具有数据定位的较大数据群组(例如,100MB或更多)时,“数据群组”可作为较大组块循序地写入到跨多个裸片的一或多个块集合。为了简化此些数据群组的映射,在LBA空间内循序排序的区的LBA(例如,与数据群组相关联的逻辑地址空间碎片)可映射到物理地址空间内的循序经排序的物理地址。可一次写入(例如,编程)数据区且相应地映射所述区的存储器装置可称为在区名称空间(ZNS)中操作,例如其中逻辑地址区被命名/识别为群组。
在常规存储器装置中,以到控制器的转译处理器一次一个命令标签的形式满足读取请求(或读取操作),从而实现由命令标签指定的粒度下的随机读取。逻辑传送单元(LTU)是可经由映射数据结构的集合映射到物理地址的多个循序LBA的子集。也称为系统标签(例如,systag)的命令标签包含LTU识别符(与LTU相关联),和识别其中存储(如同在高速缓存中)与转译单元相关联的数据的缓冲器(例如,易失性存储器中的时隙)。控制器可将数据从存储器缓冲器传回到主机系统(或其它请求代理)。LTU识别符由逻辑到物理(LTP)映射数据结构映射到物理地址空间的物理地址。
在存储器装置内采用ZNS的益处之一是低时延读取性能,尤其是在针对循序数据的读取请求实现以读取前视的方式读取例如对应于多个命令标签的较大数据组块的情况下。当前,静态LTP映射数据结构存储于存储器中以供用于将LTU识别符快速映射到物理地址空间中的物理地址。在一个实施例中,这些LTP映射数据结构被实施为散列表。因为这些数据结构驻留在存储器(例如,动态随机存取存储器或DRAM)中,所以映射数据结构内的查找(例如,编索引)的速度就与存储数据结构的存储器一样快。
在各种实施例中,随着在硬件(例如,定位于控制器内的硬件加速器)中处理读取命令的加速,可使满足读取请求的时延更低。此外,一些映射数据结构(不是太大的)可在定位成较接近控制器的处理器的较快易失性存储器(例如,静态随机存取存储器(SRAM)装置或紧密耦合存储器(TCM)装置)内存储和编索引。较大映射数据结构可存储于例如DRAM等系统主存储器中。硬件加速器可包含硬件逻辑以:执行到映射数据结构中的基于散列的编索引,检索指定LTU识别符和物理地址之间的映射的元数据,以及将元数据存储到例如相对于与读取请求相关联的系统标签编索引的系统标签数据结构中。这些映射数据结构可由代理(例如,共享存储器装置的控制器或I/O控制器)共享,所述代理可通过将系统标签存储在系统标签数据结构内而向所述映射数据结构中编索引,如在下文详细描述。相对于系统标签的写入到系统标签数据结构的元数据可接着由处理装置的命令执行处理器使用以检索和缓冲从物理地址读取的数据以供传回到主机系统。
在一个实施例中,系统包含非易失性存储器装置和易失性存储器装置(例如,TCM或SRAM),两者均耦合到例如控制器的处理装置。易失性存储器装置可存储将逻辑块地址(LBA)空间的区映射到存储器装置的物理地址空间的映射数据结构。映射数据结构可包含用于将逻辑地址映射到物理地址的逻辑到物理(LTP)数据结构中的任一个或其组合。所述区包含循序映射到多个循序物理地址的多个循序LBA。易失性存储器装置还可存储系统标签数据结构(例如,表)以含有待映射到物理地址的系统标签以及读取请求中接收的其它系统标签。
在实施例中,处理装置接收具有LBA的读取请求。处理装置的命令生成处理器可从LBA创建LTU,其中LTU包含包括来自读取请求的LBA的多个循序LBA的子集。处理装置还可将含有LTU的LTU识别符的系统标签存储在系统标签数据结构中。位于处理装置中的硬件加速器可接着代表处理装置执行映射,以加速将LTU映射到物理地址的元数据的生成。
在各种实施例中,举例来说,加速器可响应于处理装置将系统标签写入到系统标签数据结构中来检索LTU识别符,且基于LTU识别符确定区ID。加速器可接着使用区ID或LTU识别符中的至少一个向映射数据结构中编索引,以检索指定LTU识别符和物理地址空间的物理地址之间的映射的元数据。加速器可与系统标签相关联而将元数据存储在系统标签数据结构中。一旦存储,处理装置就可检索元数据,用所述元数据填充待发送到命令执行处理器的读取命令以满足读取请求。
本公开的优点包含(但不限于)满足读取请求的过程中的进一步降低的时延。可针对ZNS存储器装置以及与控制器一起(或在控制器内)利用简单且可配置的通用逻辑到物理地址加速转译器。所属领域的技术人员将了解下文中论述的存储器子系统内的存储器分配和误差优化的其它优点。
图1A示出根据本公开的一些实施例的包含存储器子系统110的实例计算系统100。存储器子系统110可包含例如一或多个易失性存储器装置(例如,存储器装置140)、一或多个非易失性存储器装置(例如,存储器装置130)或此类装置的组合等介质。每一存储器装置130或140可以是一或多个存储器组件。
存储器子系统110可以是存储装置、存储器模块,或存储装置与存储器模块的混合。存储装置的实例包含固态驱动器(SSD)、快闪驱动器、通用串行总线(USB)快闪驱动器、嵌入式多媒体控制器(eMMC)驱动器、通用快闪存储(UFS)驱动器、安全数字(SD)卡和硬盘驱动器(HDD)。存储器模块的实例包含双列直插式存储器模块(DIMM)、小外形DIMM(SO-DIMM),和各种类型的非易失性双列直插式存储器模块(NVDIMM)。
计算系统100可为计算装置,例如台式计算机、膝上型计算机、网络服务器、移动装置、交通工具(例如,飞机、无人机、火车、汽车或其它运输工具)、具有物联网(IoT)功能的装置、嵌入式计算机(例如,交通工具、工业设备或联网商业装置中包含的嵌入式计算机),或包含存储器和处理装置的此类计算装置。
计算系统100可包含耦合到一或多个存储器子系统110的主机系统120。在一些实施例中,主机系统120耦合到不同类型的存储器子系统110。图1A示出耦合到一个存储器子系统110的主机系统120的一个实例。如本文中所使用,“耦合到......”或“与......耦合”通常是指组件或装置之间的连接,其可以是间接通信连接或直接通信连接(例如,不具有中间组件或装置),无论有线或无线,包含例如电连接、光学连接、磁连接等连接。
主机系统120可包含处理器芯片组以及由处理器芯片组执行的软件堆栈。处理器芯片组可包含一或多个核心、一或多个高速缓存、存储器控制器(例如,NVDIMM控制器),和存储协议控制器(例如,PCIe控制器、SATA控制器)。主机系统120使用存储器子系统110例如将数据写入到存储器子系统110和从存储器子系统110读取数据。
主机系统120可经由可在系统总线上通信的物理主机接口耦合到存储器子系统110。物理主机接口的实例包含(但不限于)串行高级技术附件(SATA)接口、外围组件互连高速(PCIe)接口、通用串行总线(USB)接口、光纤通道、串行附接SCSI(SAS)、双数据速率(DDR)存储器总线、小型计算机系统接口(SCSI)、双列直插式存储器模块(DIMM)接口(例如,支持双数据速率(DDR)的DIMM套接接口)、开放NAND快闪接口(ONFI)、双数据速率(DDR)、低功率双数据速率(LPDDR),或任何其它接口。物理主机接口可以用于在主机系统120与存储器子系统110之间发射数据。当存储器子系统110通过PCIe接口与主机系统120耦合时,主机系统120可以进一步利用NVM高速(NVM Express,NVMe)接口来访问组件(例如,存储器装置130)。物理主机接口可提供接口以用于在存储器子系统110与主机系统120之间传递控制、地址、数据以及其它信号。图1A示出存储器子系统110作为实例。一般来说,主机系统120可经由相同通信连接、多个单独的通信连接和/或通信连接的组合存取多个存储器子系统。
存储器装置130、140可包含不同类型的非易失性存储器装置和/或易失性存储器装置的任何组合。易失性存储器装置(例如,存储器装置140)可以是(但不限于)随机存取存储器(RAM),例如动态随机存取存储器(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、3D NAND)和非易失性存储器单元的3D交叉点阵列等非易失性存储器组件,但存储器装置130可基于任何其它类型的非易失性存储器,例如只读存储器(ROM)、相变存储器(PCM)、自选存储器、其它基于硫属化物的存储器、铁电晶体管随机存取存储器(FeTRAM)、铁电随机存取存储器(FeRAM)、磁随机存取存储器(MRAM)、自旋转移力矩(STT)-MRAM、导电桥接RAM(CBRAM)、电阻性随机存取存储器(RRAM)、基于氧化物的RRAM(OxRAM)、或非(NOR)快闪存储器,以及电可擦除可编程只读存储器(EEPROM)。
存储器子系统控制器115(或为简单起见,控制器115)可与存储器装置130通信以执行操作,例如在存储器装置130处读取数据、写入数据或擦除数据,和其它此类操作。存储器子系统控制器115可包含例如一或多个集成电路和/或离散组件、缓冲存储器或其组合等硬件。硬件可包含具有用以执行本文中所描述的操作的专用(即,硬译码)逻辑的数字电路系统。存储器子系统控制器115可以是微控制器、专用逻辑电路系统(例如,现场可编程门阵列(FPGA)、专用集成电路(ASIC)等),或其它合适的处理器。
存储器子系统控制器115可包含处理器117(例如,处理装置),其被配置成执行存储在本地存储器119中的指令。在所示出的实例中,存储器子系统控制器115的本地存储器119包含嵌入式存储器,其被配置成存储用于执行控制存储器子系统110的操作的各种过程、操作、逻辑流和例程的指令,包含处理存储器子系统110与主机系统120之间的通信。
在一些实施例中,本地存储器119可包含存储存储器指针、所提取数据等的存储器寄存器。本地存储器119还可包含用于存储微码的只读存储器(ROM)。虽然图1A中的实例存储器子系统110已示出为包含存储器子系统控制器115,但在本公开的另一实施例中,存储器子系统110不包含存储器子系统控制器115,而是可依靠外部控制(例如,由外部主机或由与存储器子系统分开的处理器或控制器提供)。
一般来说,存储器子系统控制器115可从主机系统120接收命令或操作,且可将所述命令或操作转换为指令或适当命令以实现对存储器装置130的所要存取。存储器子系统控制器115可负责其它操作,例如耗损均衡操作、垃圾收集操作、错误检测和错误校正码(ECC)操作、加密操作、高速缓存操作,以及与存储器装置130相关联的逻辑块地址(例如,逻辑块地址(LBA)、名称空间)和物理地址(例如,物理块地址)之间的地址转译。存储器子系统控制器115可进一步包含主机接口电路系统以经由物理主机接口与主机系统120通信。主机接口电路系统可将从主机系统接收的命令转换成命令指令以存取存储器装置130,以及将与存储器装置130相关联的响应转换成用于主机系统120的信息。
存储器子系统110还可包含未示出的额外电路系统或组件。在一些实施例中,存储器子系统110可包含高速缓存或缓冲器(例如,DRAM)和地址电路系统(例如,行解码器和列解码器),所述地址电路系统可从存储器子系统控制器115接收地址并解码所述地址以存取存储器装置130。
在一些实施例中,存储器装置130包含本地媒体控制器135,其结合存储器子系统控制器115操作以对存储器装置130的一或多个存储器单元执行操作。外部控制器(例如,存储器子系统控制器115)可在外部管理存储器装置130(例如,执行存储器装置130上的媒体管理操作)。在一些实施例中,存储器装置130是受管理存储器装置,其是与本地控制器(例如,本地媒体控制器135)组合以用于同一存储器装置封装或存储器裸片内的存储器管理的原始存储器装置。受管理存储器装置的实例是受管理NAND(MNAND)装置。
在一些实施例中,控制器115包含错误校正码(ECC)编码器/解码器111。ECC编码器/解码器111可分别对写入到存储器装置130的数据执行ECC编码,以及对从存储器装置130读取的数据执行ECC解码。可执行ECC解码以对ECC码字进行解码以校正原始读取数据中的错误,且在许多情况下还报告原始读取数据中的位错误的数目。
图1B示出根据一实施例的图1A的存储器子系统110的额外细节。在一个实施例中,存储器子系统110还包含存储器装置140A(其为例如DRAM或其它主存储器等易失性存储器),来存储区描述符数据结构121和块集合映射数据结构123,因为这些数据结构通常太大而不能存储在控制器115上。在各种实施例中,控制器115在处理器117内包含处理装置的多个部分(或多个单独的处理装置),包含命令生成处理器112、转译处理器113和命令执行处理器114。本地存储器119可以是例如易失性存储器装置,例如静态随机存取存储器(SRAM)装置或紧密耦合存储器(TCM)装置或其组合。此易失性存储器装置可存储系统标签数据结构154和逻辑到物理(LTP)映射数据结构156,其足够小而能够存储于例如TCM或SRAM等较快存储器中且将更详细地论述。
在各种实施例中,控制器115进一步包含一或多个寄存器127(其包含至少一个固件可配置寄存器),以及硬件加速器150(例如,可编程处理器或其它可编程硬件装置)。硬件加速器150可包含硬件逻辑152和配置数据结构125。硬件加速器150可包含一或多个硬件寄存器以维持配置数据结构125,所述配置数据结构将关于系统标签数据结构154和LTP映射数据结构156内编索引的位置和方式的信息提供到硬件加速器150,如将阐述。举例来说,配置数据结构125中的每一条目可存储于单独编索引的硬件寄存器中。在一个实施例中,硬件加速器150是LTP批量加速转译器或其一部分,所述LTP批量加速转译器包含队列和逻辑以分批地加速来自LTP映射数据结构156的元数据的查找和聚集,且将元数据存储在系统标签数据结构154中。还参考图2更详细地论述一些映射数据结构。
此外,如先前参考一或多个存储器装置130、140所论述,多个裸片(例如,裸片A和裸片B)的物理地址空间可依据平面、块和页以层级方式组织。如此,举例来说,裸片A和裸片B中的每一个可包含平面A和平面B,且平面A和平面B中的每一个可包含块A和块B。块集合(或块条带)可限定为跨存储器装置的多个裸片的平面排列的块的群组。如所示出,块集合144经排列以包含裸片A的平面A的块A、裸片B的平面B的块A等等,例如还包含裸片C的平面C的块A,直到更多裸片(如果存在且在线上的话)。
在各种实施例中,转译处理器113(和/或耦合到转译处理器113的控制器115的动态数据放置器)动态地确定存储器装置中的布局以将与逻辑地址相关联的数据放置在存储器装置130、140的物理单元或存储器组件(也称为“IC裸片”)中。布局指定存储器子系统110中接收的(例如,来自主机系统120)命令中使用的逻辑地址和存储器子系统110的IC裸片中的物理存储器位置之间的映射。
转译处理器113可例如基于在存储器子系统110中的输入/输出调度时存储器装置内的写入、编程、存储、提交数据的可用性,来确定LBA空间的逻辑地址的一部分的布局以将数据放置在与存储器装置130或140的IC裸片的物理地址相关联的逻辑地址处。当在IC裸片内包含物理单元的所述IC裸片可用于提交/编程数据时,调度写入命令以供在存储器子系统110中执行;且转译处理器113生成写入命令的布局的一部分,并映射写入命令中使用的逻辑地址以映射到IC裸片内的物理地址。写入命令的执行致使存储器子系统110将与写入命令相关联的数据提交/编程到IC裸片中。
取决于跨循序映射方案的媒体和/或应用的IC裸片的可用性,控制器115可循序地写入数据群组(例如,提供于循序数据流定位中)以一次填充一个IC裸片,或可一次并行地循序写入到多个IC裸片,例如以同时填充媒体的IC裸片。写入在LBA空间的区内的映射也可循序地进行以简化用于执行映射的计算,如将参考ZNS映射数据结构更详细地论述。当存在多个可用的IC裸片时,来自多个写入流的命令中使用的逻辑地址(例如,LBA)可由布局的动态生成的部分分别映射到多个IC裸片,使得来自所述多个写入流的命令的执行过程中不存在媒体接入冲突。
在一些实施例中,转译处理器113常规地访问特定逻辑到物理(LTP)映射数据结构以便将逻辑传送单元(LTU)识别符(位于读取命令中且包含读取请求的LBA)映射到存储器装置130的物理地址空间的物理地址。在一些实施例中,快闪介质(例如,NOR或NAND快闪存储器)的上下文中的转译处理器113被称作快闪转译层(FTL)。由转译处理器113采用的映射可通常被认为涉及一种类型的块映射,例如块层级映射或逻辑块映射。在数据定位被检测到的情况下或在ZNS存储器装置中,转译处理器113可映射例如在LTP映射数据结构156内形成区的块的群组。此映射可涉及将循序编号的LBA映射到循序编号的物理地址。参考图2-3更详细地论述用于将区的LBA空间映射到介质的物理地址空间的LTP映射数据结构156的使用及其相互关系。
在各种实施例中,命令生成处理器112执行命令处理,例如基于分别从主机系统120或其它请求代理接收的读取和写入请求生成读取命令和写入命令。命令生成处理器112常规地将系统标签缓冲在(例如,本地存储器119的)命令存储器中,且将系统标签发送到转译处理器113。转译处理器113常规地可将每一系统标签的LTU识别符转译(或映射)到存储器装置130或140的物理地址空间的物理地址。一旦转译,转译处理器113就可用其对应的物理地址填充每一系统标签,且将系统标签发送回到命令生成处理器112。命令生成处理器112可接着向命令执行处理器114发射包含系统标签的命令以便执行读取请求。在一些实施例中,命令生成处理器112与循序递增的物理地址同时发射读取命令的群组,以便执行循序映射的数据到存储器的缓冲器中的前视读取。以此方式,每一系统标签包含用于映射到物理地址的LTU的LTU识别符。
在这些和其它实施例中,命令执行处理器124将数据总线的信道内的写入和读取命令序列化到存储器装置130、140。此外,命令执行处理器124可响应于接收到读取命令,从(读取命令的)系统标签指向的存储器装置130或140的物理地址检索数据。每一系统标签包含LTU识别符,其映射到物理地址,以及存储器缓冲器的集合内的命令执行处理器124将数据写入(例如,高速缓存)到的缓冲器的缓冲器地址。
在各种读取路径加速实施例中,硬件加速器150代替处理器117的转译处理器113执行LTU识别符到物理地址的转译。更确切地说,命令生成处理器112可将(读取命令的)系统标签存储在硬件加速器150的系统标签数据结构154中。硬件加速器150(例如,硬件逻辑152)可接着通过首先基于存储于系统标签中的LTU识别符确定(例如计算)区识别符(ID)来执行转译。硬件逻辑152可例如通过存取固件可配置寄存器(例如,寄存器127中的一个)内的区大小值且使用LTU识别符和区大小值计算区ID来确定区ID。在一个实施例中,此计算包含将LTU识别符的值除以区大小值。
在各种实施例中,硬件逻辑152使用区ID来执行LTP映射数据结构156内的基于散列的索引查找。在一个实施例中,硬件逻辑152可使用LTU识别符(或LBA)执行逻辑到物理(LTP)块映射数据结构(图2-3中的203)内的基于散列的索引,或可使用区ID与LTU识别符组合对区大小值取模。硬件逻辑152可在LTP映射数据结构156内的编索引位置处进一步检索元数据,且将相对于系统标签的元数据存储在系统标签数据结构154中。尽管本文中常常参考单个系统标签,但应理解,系统标签数据结构154可存储许多系统标签且类似于本文中参考的系统标签而处理或使用。将参看图3更详细地论述元数据的编索引、映射和聚集。在所公开的实施例中,元数据指定LTU识别符和物理地址之间的映射。举例来说,所述映射可以是从区ID到块集合ID、从块集合ID到块ID,且最终从块ID到将从中读取数据以满足读取请求的页的页ID的加速转译路径。
在一些实施例中,取决于设计要求,区描述符数据结构121和块集合映射数据结构123太大而不能定位于本地存储器119内,且因此可存储于存储器装置140A中。如果本地存储器119足够大,在另一实施例中,区描述符数据结构121和/或块集合映射数据结构123可存储于本地存储器119中。在一个实施例中,区描述符数据结构121是通过区ID(例如,区ID的散列值)进行散列的平面索引映射表,其中区ID是比LTU识别符大得多的值。术语“平面”是参考二维的散列索引表,例如树或链表。区描述符数据结构121可存储由主机系统120发送到控制器115的区描述符数据。在一个实施例中,块集合映射数据结构123是依据块集合ID(例如,块条带ID)编索引的平面索引映射表。块集合映射数据结构123可从块集合ID映射到介质的每一裸片内的物理块(例如,物理块地址或识别符)。在一个实施例中,硬件加速器150可管理块集合映射数据结构123。
在各种实施例中,尽管配置数据结构125论述为存储于硬件加速器的硬件寄存器中,但配置数据结构125还可存储于本地存储器119中。配置数据结构125可将例如数据结构条目大小等硬件信息存储在LTP映射数据结构156、区描述符数据结构121和块集合映射数据结构123中的每一个内。配置数据结构125可进一步存储LTU识别符的位数目、区ID和其它类似信息,转译处理器113和硬件逻辑152可在本文中提及的映射数据结构内编索引时使用这些信息将每一LTU识别符转译(例如,映射)到每一物理地址。此外,取决于设计实施方案,配置数据结构125可将到上文提及的数据结构的位置的指针存储在存储器中(例如本地存储器119或存储器装置140A内)。处理器117的命令生成处理器112可进一步使硬件逻辑152指向配置数据结构125的某一位置,在该位置处将例如借助于首先参考配置数据结构125的元数据以在映射数据结构内编索引来起始编索引。参看图3更详细地论述使用配置数据结构125来辅助执行编索引。
图2是示出根据各种实施例的被配置成支持基于区的映射的数据结构的实例的框图。控制器115可将图2中示出的一些数据结构存储在本地存储器119(例如,SRAM装置和/或TCM装置)中,且将其它数据结构存储在存储器装置140的存储器组件中(例如,DRAM中)。这些数据结构可包含表示为图1B中的LTP映射数据结构156的数据结构。在图2中,区映射数据结构201被配置成提供名称空间(例如,用于ZNS操作的LBA空间)中的区的布局信息。区映射数据结构201可与图1B的区映射数据结构101相同或类似。区映射数据结构201可具有多个条目。区映射数据结构201中的每一区映射条目识别关于区的信息,例如区的起始LBA地址211、区的块集合识别符213、区的区光标值215、区的状态217等。
主机系统120在区起始LBA地址211的LBA处开始在区中写入数据。主机系统120在LBA空间中循序地在区中写入数据。在一定量的数据已写入到区中之后,由区光标值215识别用于写入后续数据的当前起始LBA地址。针对区的每一写入命令将区光标值215移动到用于区的下一写入命令的新起始LBA地址。状态217可具有指示区为空、已满、隐式地打开、显式地打开、关闭等的值,以跟踪对所述区进行写入的进程。
在图2中,逻辑到物理(LTP)块映射数据结构203被配置成促进LBA地址到IC裸片中的物理地址的转译。LTP块映射数据结构203可具有多个条目。LBA可用作或转换为用于LTP块映射数据结构203中的条目的索引(例如,LTU识别符)。由LTU识别符识别的LTU可包含包括所述LBA的多个循序LBA的子集。索引可用于查找用于LBA的条目。LTP块映射数据结构203中的每一条目针对LBA识别IC裸片中的存储器块的物理地址。举例来说,IC裸片中的存储器块的物理地址可包含裸片识别符233、块识别符235、页映射条目识别符237、页识别符251等。裸片识别符233识别存储器子系统110的存储器装置130、140中的特定IC裸片(例如,裸片A或裸片B)。块识别符235识别使用裸片识别符233识别的IC裸片内的特定存储器块(例如,NAND快闪存储器)。页映射条目识别符237识别页映射数据结构205中的条目。
页映射数据结构205可具有多个条目。页映射205中的每一条目可包含识别存储器单元块(例如,NAND存储器单元)内的存储器单元页的页识别符251。举例来说,页识别符251可包含页的字线编号和NAND存储器单元块中的页的子块编号。此外,页的条目可包含页的编程模式253。举例来说,页可在SLC模式、MLC模式、TLC模式或QLC模式中编程。档配置于SLC模式中时,页中的每一存储器单元将存储一个数据位。当配置于MLC模式中时,页中的每一存储器单元将存储两个数据位。当配置于TLC模式中时,页中的每一存储器单元将存储三个数据位。当配置于QLC模式中时,页中的每一存储器单元将存储四个数据位。集成电路裸片中的不同页可具有用于数据编程的不同模式。
在图2中,块集合映射数据结构123存储区的动态布局的数据控制方面。块集合映射数据结构123(在一个实施例中,其可以是表)可具有多个条目。块集合数据结构123中的每一块集合条目识别其中存储区的数据的集成电路裸片(例如,裸片A和裸片B)的数目/计数271。对于用于区的集成电路裸片中的每一个,块集合映射数据结构123的块集合条目具有裸片识别符273、块识别符275、页映射条目识别符277、页映射偏移值等。
裸片识别符273识别在上面可存储区的IC裸片后续数据的存储器子系统110的IC裸片中的特定IC裸片(例如,裸片A或裸片B)。块识别符275识别使用裸片识别符273识别的IC裸片内的特定存储器块(例如,NAND快闪存储器或其它IC裸片),在所述块中可存储区的后续数据。页映射条目识别符237识别页映射数据结构205中的页映射条目,其识别可用于存储区的后续数据的页。
举例来说,存储器子系统110接收多个写入命令流。在一实施例中,所述多个流中的每一相应流被配置成在一个实施例中循序地在逻辑地址空间中写入数据;且在另一实施例中,所述多个流中的流被配置成在一个实施例中伪循序地或随机地在逻辑地址空间中写入数据。每一写入流包含经标注以将数据集一起作为群组进行写入、微调、重写的命令集合。在所述群组中,数据可循序、随机或伪循序地在逻辑空间中写入。优选地,群组中的数据写入到擦除块集合中,其中擦除块集合中的存储器单元存储所述流的数据,但不存储来自其它流的数据。可擦除所述擦除块集合以移除所述流的数据,而不擦除其它流的数据。
举例来说,准许写入流中的每一个在存储器子系统110的存储器装置130、140的IC裸片中分配的名称空间中的区中的LBA处循序地写入,但禁止其在LBA(或逻辑地址)空间中无序地写入数据。存储器子系统110的转译处理器113识别可用于同时写入数据的存储器子系统110中的多个物理单元。
转译处理器113可从多个流选择第一命令以供在可用于写入数据的多个物理单元中同时执行。转译处理器113可动态地响应于选择第一命令以供在多个物理单元中同时执行而生成和存储从逻辑地址空间中的第一命令识别的逻辑地址映射到多个存储器单元中的存储器单元的物理地址的布局的一部分。
命令执行处理器124可通过根据物理地址将数据存储到存储器单元中来同时执行第一命令。举例来说,在调度第一命令以供执行时,第二命令的执行可在存储器子系统110的IC裸片的存储器单元的子集中处于进行中。因此,用于执行第二命令的存储器单元的子集不可用于第一命令。在调度第一命令且确定第一命令中使用的逻辑地址的布局的所述部分之后,可同时在多个物理单元中和/或与存储器子系统110的剩余物理单元中第二命令的执行进程同时执行第一命令。
举例来说,在识别可用于执行接下来的命令的多个存储器单元(例如,IC裸片)之后,转译处理器113可从块集合映射数据结构123识别可用于存储接下来的命令的数据的物理地址。物理地址可用于更新LTP块映射数据结构203中的针对接下来的命令中使用的LBA地址231的相应条目。
举例来说,当IC裸片可用于写入数据时,转译处理器113可确定可写入/编程到IC裸片中的存储器单元中的区的命令。依据块集合映射数据结构123,转译处理器113定位区的条目,定位与集成电路裸片的识别符273相关联的块识别符275和页映射条目识别符277,且使用裸片识别符273、块识别符275和页映射条目识别符277来更新LTP块映射数据结构203中的针对区的命令中使用的LBA的条目的相应字段。
图3是根据一实施例的图1A-1B的控制器115的命令生成处理器112、转译处理器113和硬件加速器150的相互关系的框图。在各种实施例中,硬件加速器150包含硬件逻辑152和配置数据结构125。硬件逻辑152可执行到系统标签数据结构154和多个映射数据结构中的基于散列的编索引,所述多个映射数据结构任选地包含块映射集合数据结构123和LTP映射数据结构156。在一些实施例中,LTP映射数据结构156包含(但不限于)区映射数据结构201(图2)、LTP块映射数据结构203(图2)、页映射数据结构205(图2),以及进一步包含区-块集合(ZTBS)数据结构209和写入序列数据结构210。如所论述,映射数据结构可被配置成将LTU识别符(或LTU的LBA,这取决于数据结构)映射到存储器装置130和/或140的物理地址空间的物理地址。
在各种实施例中,系统标签数据结构154存储系统标签(例如,systag)的多个条目,每一条目包含与每一相应系统标签相关联的元数据或对照所述元数据编索引。例如命令生成处理器112等处理装置可处理具有LBA的读取请求,且用将LTU(具有LBA)映射到物理地址的LTU识别符填充系统标签。LTU可映射到逻辑块或逻辑页,这取决于LTU类型。处理装置可接着将系统标签存储在系统标签数据结构154中。如所论述,系统标签包含LTU识别符和缓冲器识别符。元数据可指定LTU识别符(具有LBA)与存储器装置130和/或140的物理地址空间中的物理地址之间的映射(例如,读取路径)。读取路径可与物理地址同义,且可包含例如裸片识别符、块集合识别符、块识别符和页识别符。在实施例中,硬件逻辑152可从LTP映射数据结构156提取物理地址的这些识别符,如参考图2及本文下文中所论述。
在各种实施例中,一旦硬件逻辑152将相对于相应系统标签的元数据存储在系统标签数据结构154中,硬件逻辑152就可将所述系统标签的系统标签识别符(ID)发送到控制器115的命令生成处理器112。命令生成处理器112可使用随系统标签一起存储在系统标签数据结构中的元数据进一步生成(或更新)读取命令,且将读取命令发送到命令执行处理器114,所述命令执行处理器检索与LTU/LBA相关联的数据以满足读取请求。
在一个实施例中,区映射数据结构201是依据散列区ID(例如,比LTU识别符的值大得多的值)编索引的平面索引映射表。区映射数据结构201中的每一条目可含有包含区状态、区写入指针提交值和区写入指针完成值的元数据。这些值可同时且在到由区ID识别的区的写入完成后写入。如参看图1B所论述可依据LTU识别符和区大小值来计算区ID,例如通过将LTU识别符的值除以区大小值。在一个实施例中,硬件加速器150管理区映射数据结构201。
在一个实施例中,ZTBS数据结构209是依据散列区ID值(例如,比LTU识别符的值大得多的值)编索引的平面索引映射表。在一实施例中,转译处理器113管理ZTBS数据结构201。ZTBS数据结构209可将区ID映射到识别数据所驻留的块集合的块集合识别符(ID)(例如,块条带编号)。取决于写入粒度,硬件加速器150还可管理ZTBS数据结构209。
此外,块集合映射数据结构123可编索引且从块集合ID映射到物理地址空间(例如,存储器装置130和/或140的IC裸片中的裸片)内的物理块的块识别符(ID)。更确切地说,ZTBS数据结构209的条目内的块集合ID可编索引到块集合映射数据结构123的条目中以识别物理地址空间的块识别符。
在一个实施例中,写入序列数据结构210是依据散列LTU识别符或LBA值编索引的平面索引映射表。写入序列数据结构210可跟踪到存储器装置130和140的物理地址的写入的位置,以确保依据ZNS协议以循序次序写入到物理地址。在一个实施例中,硬件加速器可管理写入序列数据结构210。
在一个实施例中,LTP块映射数据结构203是依据散列LTU识别符或LBA值编索引的平面索引映射表。在另一实施例中,使用散列区ID与LTU识别符组合对区大小值取模来对LTP块映射数据结构203编索引。LTP块映射数据结构203可将LTU识别符或LBA值映射到裸片识别符233、块识别符235和页映射条目识别符237。在一个实施例中,硬件加速器150可管理LTP块映射数据结构。在实施例中,页映射数据结构205是依据页映射条目识别符编索引的平面索引映射结构,且可映射到页识别符251,所述页识别符是读取路径的末端处的目的地物理地址。
在各种实施例中,配置数据结构125是指定用于多个LTP映射数据结构156的每一相应数据结构的定位和使用的存取相关元数据的条目的表。举例来说,每一条目可包含用于数据结构的起始地址、数据结构的条目大小、数据结构的条目中的识别符掩码和到另一数据结构的指针的寄存器(例如,寄存器127的)。此指针可以是先前限定的数据结构的识别符,例如ZTBS数据结构209和块集合映射数据结构123之间的指针。
借助于实例,用于区映射数据结构201的配置数据结构125中的条目可包含区映射数据结构201的起始地址、区映射数据结构201的条目大小、区映射数据结构201中的条目数目,以及被设定为无效的条目中的ID掩码。举例来说,每一条目可存储于如参看图1B所论述的硬件寄存器中。借助于另一实例,用于ZTBS数据结构209的配置数据结构125中的条目可包含ZTBS数据结构209的起始地址、ZTBS数据结构209的条目大小、块集合的条目数目、条目中的ID掩码、到将在上面使用ID掩码的其它数据结构(在此情况下,块集合映射数据结构123)的指针、用于块集合映射数据结构123的寄存器、块集合映射数据结构123的条目大小,以及块集合映射数据结构123的条目数目。
在一些实施例中,配置表125的条目分层到系统标签数据结构154中,这可通过在起始到映射数据结构中编索引时绕过命令生成处理器112来实现。以此方式,控制器115可避免必须在读取转译路径中使用命令生成处理器112(包含避免需要存取区映射数据结构201),这可进一步降低读取处理时延。
在额外实施例中,硬件加速器150可通过允许控制器115在配置数据结构125内设定无效值范围和掩码来检查以确定区(与区ID相关联)是否处于正确状态(例如,而非复位状态)。更确切地说,考虑将最大值的另一字段添加到配置数据结构125(例如,作为寄存器值)。随后,硬件逻辑152可分析条目和ID掩码的值。硬件逻辑152可接着进行范围检查以确保数据是有效的,因为其具有最小值零和由寄存器指定的最大值。在此情况下,因为控制器115已经设定无效值范围和掩码,所以硬件逻辑将不分配系统标签,而是向控制器115报告错误(或类似的通知),指示出错,因此验证正确状态。作为此状态检查的扩展,考虑显式最小值字段也包含在配置数据结构125中且控制器115还可设定最小值字段。当MIN==MAX,例如最小值与最大值相同时,接着硬件逻辑152可使用此信息来检查状态,方式是确保MIN==MAX与从条目和掩码拉动所述值相同。
图4是根据一实施例的用于使用硬件加速器加速读取转译路径的方法400的流程图。方法400可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,处理装置上运行或执行的指令),或其组合。在一些实施例中,方法400由图1A-1B的控制器115(例如,处理器117和硬件加速器150)执行。虽然以特定序列或次序展示,但是除非另有指定,否则可修改过程的次序。因此,应理解,所说明的实施例仅为实例,且所说明的过程可以不同次序执行,且一些过程可并行地执行。另外,可在各种实施例中省略一或多个过程。因此,并非在每个实施例中需要所有的过程。其它过程流程是可能的。
参看图4,在操作410处,(处理器117的)处理逻辑将从存储器子系统的处理装置接收的系统标签存储在易失性存储器(图1B;图3)的系统标签数据结构154中。系统标签可包含对应于LTU的逻辑传送单元(LTU)识别符。LTU可以是包含读取请求的LBA且待由处理逻辑映射到物理地址的所述多个循序LBA的子集。在一些实施例中,处理逻辑还可或替代地检查针对可用读取命令的系统标签数据结构154,且用LTU填充读取命令。
在操作420处,处理逻辑在至少一个映射数据结构内将LBA空间的区映射到存储器子系统的物理地址空间。举例来说,所述区可包含循序映射到多个循序物理地址的多个循序LBA。此映射数据结构可对应于图1B、图2和图3的多个LTP映射数据结构156。
在操作430处,(硬件加速器150的)处理逻辑响应于处理器117将系统标签写入到系统标签数据结构154中而从存储于系统标签数据结构154中的系统标签检索LTU识别符。举例来说,LTU识别符可以是对系统标签数据结构内的系统标签编索引的LTU识别符。
在操作440处,(硬件加速器150的)处理逻辑基于LTU识别符确定区识别符(ID)。举例来说,处理逻辑可在固件可配置寄存器内存取区大小值。处理逻辑可例如通过将LTU识别符的值除以区大小值来使用LTU识别符和区大小值进一步计算区ID。
在操作450处,(硬件加速器150的)处理逻辑使用区ID或LTU识别符中的至少一个向映射数据结构中编索引以检索指定LTU识别符(可能LBA)和物理地址空间的物理地址之间的映射的元数据。所述元数据(例如,裸片识别符和块集合识别符)可从与区映射数据结构201和区-块集合数据结构209中的区ID的基于散列的值匹配的条目提取,以及从具有块识别符的区-块集合数据结构209编索引到块集合映射数据结构123中。元数据可进一步从与来自写入序列数据结构的LTU识别符匹配的条目以及与LTP块映射数据结构203内的LBA或LTU识别符匹配的条目提取。针对LTP块映射数据结构203中的条目的页映射条目识别符可进一步编索引到页映射数据结构205中以确定页识别符。依据这些条目,元数据(待在下文的操作460处存储)可包含页或存储器块的至少一物理地址(例如,读取路径),包含裸片识别符233、块集合识别符213、块识别符235和页识别符251(见图2)。
在操作460处,(硬件加速器150的)处理逻辑与系统标签相关联将元数据存储在系统标签数据结构中。一旦存储,处理逻辑就可通知处理器117已用元数据填充系统标签。举例来说,处理逻辑可将LTU识别符发送到命令生成处理器112以指示LTU识别符的元数据已存储于系统标签数据结构中。响应于所述通知,处理器117(例如,命令生成处理器112)可检索用来填充待发送到命令执行处理器114以满足读取请求的读取命令的元数据。
图5示出计算机系统500的实例机器,所述实例机器内可执行用于致使所述机器执行本文中所论述的方法中的任何一或多种的指令集。在一些实施例中,计算机系统500可对应于主机系统(例如,图1A的主机系统120),其包含、耦合到或利用存储器子系统(例如,图1A的存储器子系统110)。在替代实施例中,机器可连接(例如,联网)到LAN、内联网、外联网和/或因特网中的其它机器。机器可作为对等(或分布式)网络环境中的对等机器或作为云计算基础架构或环境中的服务器或客户端机器在客户端-服务器网络环境中的服务器或客户端机器的容量中操作。
所述机器可为个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、蜂窝电话、网络器具、服务器、网络路由器、交换机或桥接器,或能够执行(循序或以其它方式)指定将由所述机器采取的动作的指令集的任何机器。另外,尽管说明单个机器,但还应认为术语“机器”包含机器的任何集合,所述机器个别地或联合地执行指令的集合(或多个集合)以执行本文中所论述的方法中的任何一或多种。
实例计算机系统500包含处理装置502、主存储器504(例如,只读存储器(ROM)、快闪存储器、例如同步DRAM(SDRAM)或Rambus DRAM(RDRAM)等动态随机存取存储器(DRAM))、静态存储器506(例如,快闪存储器、静态随机存取存储器(SRAM)等),以及数据存储系统518,其经由总线530彼此通信。
处理装置502表示一或多个通用处理装置,例如微处理器、中央处理单元等。更确切地说,处理装置可以是复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器,或实施其它指令集的处理器,或实施指令集的组合的处理器。处理装置502也可为一或多个专用处理装置,例如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、网络处理器等。处理装置502被配置成执行用于执行本文中所论述的操作和步骤的指令526。计算机系统500可进一步包含网络接口装置508以经由网络520通信。
数据存储系统518可以包含机器可读存储介质524(也称为计算机可读介质),其上存储有一或多个指令集526或体现本文中所描述的任何一或多种方法或功能的软件。指令526还可在其由计算机系统500执行期间完全或至少部分地驻留在主存储器504内和/或处理装置502内,主存储器504和处理装置502也构成机器可读存储介质。机器可读存储介质524、数据存储系统518和/或主存储器504可对应于图1A-1B的存储器子系统110。
在一个实施例中,指令526包含用以实施对应于图1B的命令生成处理器112的功能性的指令。虽然机器可读存储介质524在实例实施例中展示为单个介质,但术语“非暂时性机器可读存储介质”应被认为包含存储所述一或多个指令集的单个介质或多个介质。术语“机器可读存储介质”还应被认为包含能够存储或编码供机器执行的指令集且致使机器执行本公开的方法中的任何一种或多种的任何介质。术语“机器可读存储介质”应相应地被理解为包含(但不限于)固态存储器、光学介质和磁性介质。
已依据计算机存储器内的数据位的操作的算法和符号表示呈现了先前详细描述的一些部分。这些算法描述和表示是数据处理领域的技术人员用以将其工作的主旨最有效地传达给所属领域的其他技术人员的方式。算法在这里并且通常被认为是引起所期望的结果的操作的自洽序列。操作是要求对物理量进行物理操纵的操作。这些量通常但未必呈能够被存储、组合、比较和以其它方式操纵的电或磁信号的形式。主要出于常见使用的原因,有时将此些信号称为位、值、要素、符号、字符、项、数字等已证实是方便的。
然而,应牢记,所有这些和类似术语应与适当物理量相关联,且仅是应用于这些量的方便的标签。本公开可涉及将计算机系统的寄存器和存储器内的表示为物理(电子)量的数据操纵和变换为计算机系统存储器或寄存器或其它此类信息存储系统内的类似地表示为物理量的其它数据的计算机系统或类似电子计算装置的动作和过程。
本发明还涉及用于执行本文中的操作的设备。此设备可以出于既定目的而专门构造,或其可包含由存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。此计算机程序可存储在计算机可读存储介质中,例如(但不限于)任何类型的盘(包含软盘、光盘、CD-ROM和磁光盘)、只读存储器(ROM)、随机存取存储器(RAM)、EPROM、EEPROM、磁卡或光卡,或适合于存储电子指令的任何类型的介质,它们各自耦合到计算机系统总线。
本文中呈现的算法和显示并不与任何特定计算机或其它设备在本质上相关。各种通用系统可根据本文中的教示与程序一起使用,或可证明构造更专用的设备来执行所述方法是方便的。将如下文描述中所阐述的那样来呈现多种这些系统的结构。另外,不参考任何特定编程语言来描述本公开。应了解,可使用多种编程语言来实施本文中所描述的本公开的教示。
本公开可以提供为计算机程序产品或软件,其可以包含在其上存储有指令的机器可读介质,所述指令可以用于编程计算机系统(或其它电子装置)以执行根据本公开的过程。机器可读介质包含用于以机器(例如,计算机)可读的形式存储信息的任何机制。在一些实施例中,机器可读(例如,计算机可读)介质包含机器(例如,计算机)可读存储介质,例如只读存储器(“ROM”)、随机存取存储器(“RAM”)、磁盘存储介质、光学存储介质、快闪存储器组件等。
在前述说明书中,已参考本公开的特定实例实施例描述了本公开的实施例。将显而易见的是,可以在不脱离如所附权利要求书中阐述的本公开的实施例的更广精神和范围的情况下对本公开作出各种修改。因此,说明书和图式应在说明性意义上而非限制性意义上看待。

Claims (20)

1.一种系统,其包括:
非易失性存储器装置;
易失性存储器装置,其用以存储:
映射数据结构,其将逻辑块地址LBA空间的区映射到所述非易失性存储器装置的物理地址空间,其中所述区包括循序映射到多个循序物理地址的多个循序LBA;以及
系统标签数据结构;以及
处理装置,其耦合到所述非易失性存储器装置和所述易失性存储器装置,所述处理装置用以:
从读取请求中接收的LBA创建逻辑传送单元LTU,其中所述LTU包括包含所述LBA的所述多个循序LBA的子集;以及
将含有所述LTU的LTU识别符的系统标签存储在所述系统标签数据结构中;以及
其中所述处理装置包括硬件加速器以:
响应于所述处理装置将所述系统标签写入到所述系统标签数据结构中而从所述系统标签检索所述LTU识别符;
基于所述LTU识别符确定区识别符ID;
使用所述区ID或所述LTU识别符中的至少一个向所述映射数据结构中编索引,以检索指定所述LTU识别符和所述物理地址空间的物理地址之间的映射的元数据;以及
与所述系统标签相关联将所述元数据存储在所述系统标签数据结构中。
2.根据权利要求1所述的系统,其中所述易失性存储器装置是静态随机存取存储器SRAM装置或紧密耦合存储器TCM装置中的一个。
3.根据权利要求1所述的系统,其中所述硬件加速器进一步计算用以执行所述向所述映射数据结构中编索引的所述区ID的散列值。
4.根据权利要求1所述的系统,其中,在与所述系统标签相关联存储所述元数据之后,所述硬件加速器将把所述系统标签的系统标签识别符发送到所述处理装置的命令生成处理器,且其中所述处理装置的所述命令生成处理器将进一步使用随所述系统标签一起存储在所述系统标签数据结构中的所述元数据来生成读取命令。
5.根据权利要求1所述的系统,其中所述映射数据结构包括:
逻辑到物理块映射数据结构,其用以将所述LTU识别符映射到页映射条目识别符,其中所述硬件加速器将管理所述逻辑到物理块映射数据结构;以及
页映射数据结构,其通过所述页映射条目识别符编索引以提供页识别符。
6.根据权利要求1所述的系统,其中,为了确定所述区ID,所述硬件加速器进一步进行以下操作:
在固件可配置寄存器内存取区大小值;以及
使用所述LTU识别符和所述区大小值计算所述区ID。
7.根据权利要求1所述的系统,其中所述映射数据结构包括区映射数据结构以将所述区ID映射到区状态、区写入指针提交值和区写入指针完成值,且其中所述硬件加速器将管理所述区映射数据结构。
8.根据权利要求1所述的系统,其中所述映射数据结构包括:
区-块集合数据结构,其用以将所述区ID映射到块集合ID,其中所述硬件加速器将管理所述区-块集合数据结构;以及
块集合映射数据结构,其用以将所述块集合ID映射到所述物理地址空间内的物理块的块识别符。
9.根据权利要求1所述的系统,其中所述映射数据结构包括写入序列数据结构,所述写入序列数据结构通过所述区ID编索引,以跟踪到所述非易失性存储器装置的物理地址的循序写入的位置,其中所述硬件加速器将管理所述写入序列数据结构。
10.根据权利要求1所述的系统,其中所述硬件加速器包括一或多个寄存器以维持配置数据结构,其中所述配置数据结构将存储以下中的至少一个:
所述LTU识别符的位数目;
所述映射数据结构的条目大小;或
所述易失性存储器装置中的所述映射数据结构的位置。
11.一种处理装置,其包括:
易失性存储器,其包括:
系统标签数据结构,其用以存储包括对应于逻辑传送单元LTU的LTU识别符的系统标签,其中所述LTU包括包含读取请求的逻辑块地址LBA的多个循序LBA的子集;以及
映射数据结构,其将LBA空间的区映射到存储器子系统的物理地址空间,其中所述区包括循序映射到多个循序物理地址的所述多个循序LBA;以及
硬件逻辑,其耦合到所述易失性存储器,所述硬件逻辑用以:
响应于所述处理装置将所述系统标签写入到所述系统标签数据结构中而从所述系统标签检索所述LTU识别符;
基于所述LTU识别符确定区识别符ID;
确定所述区ID的散列值;
使用所述散列值或所述LTU识别符中的至少一个向所述映射数据结构中编索引,以检索指定所述LTU识别符和所述物理地址空间的物理地址之间的映射的元数据;以及
与所述系统标签相关联将所述元数据存储在所述系统标签数据结构中。
12.根据权利要求11所述的处理装置,其中所述易失性存储器包括紧密耦合存储器TCM装置或静态随机存取存储器SRAM装置中的一个。
13.根据权利要求11所述的处理装置,其中所述映射数据结构包括:
逻辑到物理块映射数据结构,其用以将所述LTU识别符映射到裸片识别符、块识别符和页映射条目识别符,其中所述硬件逻辑将管理所述逻辑到物理块映射数据结构;以及
页映射数据结构,其通过所述页映射条目识别符编索引以提供页识别符。
14.根据权利要求11所述的处理装置,其中,为了确定所述区ID,所述硬件逻辑进一步进行以下操作:
在固件可配置寄存器内存取区大小值;以及
使用所述LTU识别符和所述区大小值计算所述区ID。
15.根据权利要求11所述的处理装置,其中所述映射数据结构包括区映射数据结构以将所述区ID映射到区状态、区写入指针提交值和区写入指针完成值,且其中所述硬件逻辑将管理所述区映射数据结构。
16.根据权利要求11所述的处理装置,其中所述映射数据结构包括区-块集合数据结构以将所述区ID映射到块集合ID,其中所述硬件逻辑将管理所述区-块集合数据结构。
17.根据权利要求16所述的处理装置,其中所述映射数据结构包括块集合映射数据结构以将所述块集合ID映射到所述物理地址空间内的物理块的块识别符。
18.根据权利要求11所述的处理装置,其中所述映射数据结构包括写入序列数据结构,所述写入序列数据结构通过所述区ID编索引,以跟踪到所述存储器子系统的物理地址的循序写入的位置,其中所述硬件逻辑将管理所述写入序列数据结构。
19.根据权利要求11所述的处理装置,其进一步包括一或多个寄存器以维持配置数据结构,其中所述配置数据结构将存储以下中的至少一个:
所述LTU识别符的位数目;
所述映射数据结构的条目大小;或
所述映射数据结构在所述存储器子系统中的存储器内位置。
20.一种方法,其包括:
由存储器子系统的处理装置在系统标签数据结构内存储包括对应于逻辑传送单元LTU的LTU识别符的系统标签,其中所述LTU包括包含读取请求的逻辑块地址LBA的多个循序LBA的子集;
在所述存储器子系统的映射数据结构内将LBA空间的区映射到所述存储器子系统的物理地址空间,其中所述区包括循序映射到多个循序物理地址的所述多个循序LBA;
由所述处理装置的硬件加速器响应于所述处理装置将所述系统标签写入到所述系统标签数据结构中而从所述系统标签检索所述LTU识别符;
由所述硬件加速器基于所述LTU识别符确定区识别符ID;
由所述硬件加速器使用所述区ID或所述LTU识别符中的至少一个向所述映射数据结构中编索引,以检索指定所述LTU识别符和所述物理地址空间的物理地址之间的映射的元数据;以及
由所述硬件加速器与所述系统标签相关联将所述元数据存储在所述系统标签数据结构中。
CN202110712415.1A 2020-06-25 2021-06-25 存储器子系统中的加速读取转译路径 Active CN113851166B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/912,402 2020-06-25
US16/912,402 US11314446B2 (en) 2020-06-25 2020-06-25 Accelerated read translation path in memory sub-system

Publications (2)

Publication Number Publication Date
CN113851166A true CN113851166A (zh) 2021-12-28
CN113851166B CN113851166B (zh) 2023-01-03

Family

ID=78975360

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110712415.1A Active CN113851166B (zh) 2020-06-25 2021-06-25 存储器子系统中的加速读取转译路径

Country Status (2)

Country Link
US (2) US11314446B2 (zh)
CN (1) CN113851166B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220027488A (ko) * 2020-08-27 2022-03-08 에스케이하이닉스 주식회사 메모리 컨트롤러 및 그 동작 방법
US11615020B2 (en) * 2021-08-12 2023-03-28 Micron Technology, Inc. Implementing mapping data structures to minimize sequentially written data accesses
US20230141409A1 (en) * 2021-11-11 2023-05-11 Samsung Electronics Co., Ltd. Storage device and operating method thereof
US11954037B2 (en) * 2022-02-10 2024-04-09 Nvidia Corporation Memory address allocation and cache mapping to retain data in cache

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102084330A (zh) * 2008-04-06 2011-06-01 弗森-艾奥公司 用于有效地映射虚拟地址和物理地址的装置、系统和方法
US20130080732A1 (en) * 2011-09-27 2013-03-28 Fusion-Io, Inc. Apparatus, system, and method for an address translation layer
CN103026346A (zh) * 2010-07-27 2013-04-03 国际商业机器公司 包括固态存储器设备的存储系统中的逻辑到物理地址映射
US20160342509A1 (en) * 2015-05-22 2016-11-24 Sandisk Enterprise Ip Llc Hierarchical FTL Mapping Optimized for Workload
US20190294554A1 (en) * 2018-03-26 2019-09-26 Arm Limited Apparatus and method for handling access requests
CN110799953A (zh) * 2017-06-28 2020-02-14 Arm有限公司 用于转换缓存查找的领域标识符比较

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8838937B1 (en) * 2012-05-23 2014-09-16 Densbits Technologies Ltd. Methods, systems and computer readable medium for writing and reading data
KR20140032789A (ko) * 2012-09-07 2014-03-17 삼성전자주식회사 불휘발성 메모리 장치의 컨트롤러 및 그것의 커멘드 스케줄링 방법
JP6079347B2 (ja) * 2013-03-21 2017-02-15 富士通株式会社 制御装置、ストレージシステム、及び制御プログラム
KR20160075174A (ko) * 2014-12-19 2016-06-29 에스케이하이닉스 주식회사 메모리 시스템 및 그 동작방법
US9823852B2 (en) * 2015-05-01 2017-11-21 Toshiba Memory Corporation Memory system with nonvolatile memory
US9703716B2 (en) * 2015-08-31 2017-07-11 Sandisk Technologies Llc Partial memory command fetching
US9841906B2 (en) * 2016-02-01 2017-12-12 Seagate Technology Llc Zone forward drive management
US10489064B2 (en) * 2016-10-03 2019-11-26 Cypress Semiconductor Corporation Systems, methods, and devices for user configurable wear leveling of non-volatile memory
KR20190057887A (ko) * 2017-11-21 2019-05-29 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
US10878859B2 (en) * 2017-12-20 2020-12-29 Micron Technology, Inc. Utilizing write stream attributes in storage write commands
US10884850B2 (en) * 2018-07-24 2021-01-05 Arm Limited Fault tolerant memory system
US10838629B2 (en) * 2018-09-24 2020-11-17 Western Digital Technologies, Inc. Solid state device with fast boot after ungraceful shutdown
US11249657B2 (en) * 2019-07-10 2022-02-15 Arm Limited Non-volatile storage circuitry accessible as primary storage for processing circuitry
US11734175B2 (en) * 2019-08-22 2023-08-22 SK Hynix Inc. Storage device and method of operating the same
US10990537B1 (en) * 2020-01-07 2021-04-27 International Business Machines Corporation Logical to virtual and virtual to physical translation in storage class memory
US10997080B1 (en) * 2020-02-11 2021-05-04 Western Digital Technologies, Inc. Method and system for address table cache management based on correlation metric of first logical address and second logical address, wherein the correlation metric is incremented and decremented based on receive order of the first logical address and the second logical address
KR20210111993A (ko) * 2020-03-04 2021-09-14 에스케이하이닉스 주식회사 컨트롤러 및 컨트롤러의 동작 방법

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102084330A (zh) * 2008-04-06 2011-06-01 弗森-艾奥公司 用于有效地映射虚拟地址和物理地址的装置、系统和方法
CN103026346A (zh) * 2010-07-27 2013-04-03 国际商业机器公司 包括固态存储器设备的存储系统中的逻辑到物理地址映射
US20130080732A1 (en) * 2011-09-27 2013-03-28 Fusion-Io, Inc. Apparatus, system, and method for an address translation layer
US20160342509A1 (en) * 2015-05-22 2016-11-24 Sandisk Enterprise Ip Llc Hierarchical FTL Mapping Optimized for Workload
CN110799953A (zh) * 2017-06-28 2020-02-14 Arm有限公司 用于转换缓存查找的领域标识符比较
US20190294554A1 (en) * 2018-03-26 2019-09-26 Arm Limited Apparatus and method for handling access requests

Also Published As

Publication number Publication date
US20220214830A1 (en) 2022-07-07
US20210405914A1 (en) 2021-12-30
CN113851166B (zh) 2023-01-03
US11314446B2 (en) 2022-04-26

Similar Documents

Publication Publication Date Title
US11113006B2 (en) Dynamic data placement for collision avoidance among concurrent write streams
CN113851166B (zh) 存储器子系统中的加速读取转译路径
US11216364B2 (en) Sequential read optimization in a memory sub-system that programs sequentially
US11640354B2 (en) Logical-to-physical mapping of data groups with data locality
US11681629B2 (en) Direct cache hit and transfer in a memory sub-system that programs sequentially
CN114077549A (zh) 基于数据特性寻址区域命名空间和非分区存储器
US20240069739A1 (en) Effective storage allocation for sequentially-written memory devices
US20240028239A1 (en) Zone block staging component for a memory sub-system with zoned namespace
CN113961142A (zh) 包含各种时延和容量的存储器装置的存储器子系统
US20230350798A1 (en) Namespace management for memory sub-systems
CN112805692A (zh) 混合式双列直插式存储器模块中的高速缓存操作
CN113126906B (zh) 用于元数据指示的方法和系统
CN115048043A (zh) 基于整合存储器区描述数据的操作
WO2022225603A1 (en) Memory instruction for memory tiers
CN113094293B (zh) 存储器系统及相关方法和计算机可读存储介质
CN113918479B (zh) 用于并行独立线程的低位密度存储器高速缓存的方法及系统
US20230266897A1 (en) Dynamic zone group configuration at a memory sub-system
US20230266898A1 (en) Host Defined Zone Group Configuration At A Memory Sub-System
US20220035747A1 (en) Write requests with partial translation units

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