CN115605851A - 用于读取操作的映射描述符 - Google Patents

用于读取操作的映射描述符 Download PDF

Info

Publication number
CN115605851A
CN115605851A CN202080100955.8A CN202080100955A CN115605851A CN 115605851 A CN115605851 A CN 115605851A CN 202080100955 A CN202080100955 A CN 202080100955A CN 115605851 A CN115605851 A CN 115605851A
Authority
CN
China
Prior art keywords
memory array
addresses
cache
descriptor
physical
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.)
Pending
Application number
CN202080100955.8A
Other languages
English (en)
Inventor
段星辉
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 CN115605851A publication Critical patent/CN115605851A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/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
    • 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
    • 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/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/128Replacement control using replacement algorithms adapted to multidimensional cache systems, e.g. set-associative, multicache, multiset or multilevel
    • 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/1028Power efficiency
    • 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/1041Resource optimization
    • G06F2212/1044Space efficiency 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/21Employing a record carrier using a specific recording technology
    • G06F2212/214Solid state disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/28Using a specific disk cache architecture
    • G06F2212/283Plural cache memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/46Caching storage objects of specific type in disk cache
    • G06F2212/466Metadata, control data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/50Control mechanisms for virtual memory, cache or TLB
    • G06F2212/502Control mechanisms for virtual memory, cache or TLB using adaptive policy
    • 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
    • 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/7208Multiple device management, e.g. distributing data over multiple flash devices
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System (AREA)

Abstract

描述针对用于读取操作的映射描述符的方法、系统及装置。存储器装置可包含第一高速缓存,可包含逻辑地址与物理地址之间的映射表,并且第二高速缓存可包含所述存储器阵列的一或多个物理地址的一或多个描述符。描述符可包含起始逻辑地址、起始物理地址及所述描述符中的地址的数量,并且可经配置以识别被频繁存取的地址或地址组。当接收存取命令(例如,读取命令)时,可查询所述第一高速缓存,且接着可查询所述第二高速缓存(如果在所述第一高速缓存处存在高速缓存未命中)。所述存储器阵列的数据的所述物理地址可基于存储在所述第二高速缓存中的所述描述符来确定(及存取)。

Description

用于读取操作的映射描述符
背景技术
下文大体上涉及一或多个存储器系统,且更具体地说,涉及用于读取操作的映射描述符。
存储器装置广泛用于在各种电子装置(例如计算机、无线通信装置、照相机、数字显示器及类似者)中存储信息。通过将存储器装置内的存储器单元编程为各种状态来存储信息。举例来说,二进制存储器单元可被编程为两个支持的状态中的一者,通常由逻辑1或逻辑0表示。在一些实例中,单个存储器单元可支持两个以上状态,可存储其中的任一者。为存取存储信息,组件可读取或感测存储器装置中的至少一种存储状态。为存储信息,组件可在存储器装置中写入或编程状态。
存在各种类型的存储器装置及存储器单元,包含磁性硬盘、随机存取存储器(RAM)、只读存储器(ROM)、动态RAM(DRAM)、同步动态RAM(SDRAM)、铁电RAM(FeRAM)、磁性RAM(MRAM)、电阻性RAM(RRAM)、快闪存储器、相变存储器(PCM)、自选择存储器、硫族化物存储器技术及其它。存储器单元可为易失性或非易失性的。非易失性存储器(例如FeRAM)即使在不存在外部电源的情况下也可长时间维持其存储的逻辑状态。易失性存储器装置(例如DRAM)在与外部电源断开时可能丢失其存储状态。
附图说明
图1说明根据如本文公开的实例支持用于读取操作的映射描述符的计算环境的实例。
图2及3说明根据如本文公开的实例支持用于读取操作的映射描述符的过程流程图的实例。
图4展示根据如本文公开的实例的支持用于读取操作的映射描述符的存储器装置的框图。
图5及6展示根据如本文公开的实例的支持用于读取操作的映射描述符的方法的流程图。
具体实施方式
本公开的方面涉及用于存储器装置的读取操作的映射描述符。存储器装置可为包含非易失性存储器单元(例如快闪存储器单元(例如“与非”(NAND)存储器单元)的非易失存储器装置。存储器装置可由含有有效数据、无效数据或不含有数据的一或多个物理块组成。物理块中的每一存储器单元可与物理地址相关联。
当存储器装置接收到存取命令(例如,读取命令)时,所述命令可能包含逻辑地址,例如由主机系统在物理到逻辑(P2L)映射表中引用的逻辑地址。存储器装置可存储用于将所接收逻辑地址转译为物理地址以便存取相关联存储器单元的映射表。映射表可存储在存储器装置的指定易失性存储器(例如,高速缓存)中。因为存储器装置通常包含大量的存储器单元,所以用于将每一物理地址映射到对应逻辑地址的映射表可能很大。这又可能会使用相对较大的高速缓存存储。此外,一些实施方案(例如,移动存储器装置)可包含相对较小的易失性存储器,并且可能无法将整个P2L映射表加载到易失性高速缓存中。因此,可能需要减小将物理地址映射到逻辑地址所需的高速缓存的大小,这又可减小存储器装置的总体功耗。
根据本文描述的技术,可减小存储器装置的功耗及高速缓存大小(例如,用于存储映射表)。存储器装置可包含:第一高速缓存(例如,映射页高速缓存(MPC)),其经配置以存储存储器装置的物理地址的一部分的映射表;以及第二高速缓存(例如,映射描述符高速缓存(MDC)),其用于存储与存储器装置的逻辑地址及物理地址相关联的条目(例如,压缩映射数据)。所述条目可称为描述符并且可包含起始逻辑地址、起始物理地址及第二高速缓存中的条目的地址的数量。
当存储器装置接收针对存储在存储器装置的存储器阵列处的数据的存取命令(例如,读取命令)时,存储器控制器可确定相关联逻辑地址是否存储在MPC中。如果逻辑地址未存储在MPC中,那么存储器控制器可确定相关联逻辑地址是否存储在MDC中。存储器控制器可使用起始逻辑地址及条目中的地址的数量来确定逻辑地址是否存储在MDC中。基于存储在MDC中的逻辑地址,存储器控制器可确定相关联物理地址并从存储器阵列读取数据。
在其它实例中,存储器控制器可经配置以产生描述符并将其存储到MDC。描述符可基于各种准则产生,例如存取数据的频率及待包含在描述符中的物理地址的数量。描述符中的起始逻辑地址、起始物理地址及长度字段可表示相对较少数量的数据,这可允许MPC及MDC的大小更小。较小高速缓存大小可减小存储器装置的总体功耗。
首先,在如参考图1描述的存储器系统的上下文中描述本公开的特征。在如参考图2及3描述的流程图的上下文中描述本公开的特征。通过与用于如参考图4到6描述的用于读取操作的映射描述符相关的设备图及流程图来进一步说明并对其进行参考来描述本公开的这些及其它特征。
图1是根据本公开的实例的支持用于读取操作的映射描述符的计算环境100的实例。计算环境100可包含存储器系统110,其可包含媒体,例如一或多个非易失性存储器装置(例如,存储器装置140)。存储器系统110可包含与存储器装置140耦合的第一高速缓存135及第二高速缓存137。第一高速缓存135及第二高速缓存137可经配置以存储用于将逻辑地址映射到存储器装置140的物理地址的条目。
存储器系统110可为存储装置、存储器模块或存储装置与存储器模块的混合体。存储装置的实例包含固态驱动器(SSD)、快闪驱动器、通用串行总线(USB)快闪驱动器、嵌入式多媒体控制器(eMMC)驱动器、通用快闪存储(UFS)驱动器及硬盘驱动器(HDD)。存储器模块的实例包含双列直插式存储器模块(DIMM)、小外形DIMM(SO-DIMM)及非易失性双列直插式存储器模块(NVDIMM)。
计算环境100可包含耦合到一或多个存储器系统110的主机系统105。在一些实例中,主机系统105可耦合到不同类型的存储器系统110。举例来说,主机系统105可使用存储器系统110以将数据写入存储器装置140并从存储器装置140读取数据。如本文使用,“耦合到”或“与…耦合”一般是指组件或装置之间的连接,其可为间接通信连接或直接通信连接(例如,不具有中介组件或装置),无论是有线的还是无线的,包含例如电、光学、磁等的连接。
主机系统105可为计算装置,例如台式计算机、膝上型计算机、网络服务器、移动装置、交通工具(例如,飞机、无人机、火车、汽车或其它交通工具)、物联网(IoT)启用装置、嵌入式计算机(例如,包含在交通工具、工业装备或联网商业装置中的计算机),或包含存储器及处理装置的此计算装置。物理主机接口的实例包含(但不限于)串行高级技术附接(SATA)接口、外围组件互连快速(PCIe)接口、通用串行总线(USB)接口、光纤通道、串行附接SCSI(SAS)接口等。物理主机接口可用于在主机系统105与存储器系统110之间传输数据。所述物理主机接口可提供用于在存储器系统110与主机系统105之间传递控制、地址,数据及其它信号的接口。
存储器装置可包含不同类型的非易失性存储器装置及/或易失性存储器装置的任一组合。易失性存储器装置(例如,存储器装置140)可为(但不限于)随机存取存储器(RAM),例如动态随机存取存储器(DRAM)及同步动态随机存取存储器(SDRAM)。在由图1所说明的本实例中,存储器装置140可为非易失性存储器装置,例如NAND存储器装置。在此实例中,存储器装置140可不包含任何易失性存储器(例如DRAM)。然而,应认识到,在其它实例中,存储器装置140可包含易失性及/或非易失性存储器。
非易失性存储器装置(例如,存储器装置140)的一些实例包含“与非”(NAND)型快闪存储器及就地写入存储器,例如三维交叉点(“3D交叉点”)存储器。非易失性存储器的交叉点阵列可结合可堆叠交叉网格数据存取阵列基于体电阻的改变执行位存储。另外,与许多基于快闪的存储器相反,交叉点非易失性存储器可执行就地写入操作,其中可对非易失性存储器单元进行编程而无需事先擦除非易失性存储器单元。
存储器系统控制器115(或为简单起见,控制器115)可与存储器装置140及/或本地存储器125通信以执行例如读取数据、写入数据或擦除数据的操作。存储器系统控制器115可包含硬件,例如一或多个集成电路或离散组件、缓冲存储器或其组合。硬件可包含具有专用(即,硬编码)逻辑的数字电路系统以执行本文所描述的操作。存储器系统控制器115可为微控制器、专用逻辑电路系统(例如,现场可编程门阵列(FPGA)、专用集成电路(ASIC)等)或其它合适处理器。
存储器系统控制器115可包含经配置以执行存储在本地存储器125中的指令的处理器120(例如,处理装置)。在所说明实例中,存储器系统控制器115的本地存储器125包含经配置以存储用于执行各种过程、操作、逻辑流程以及控制存储器系统110的操作的嵌入式存储器,其包含处置存储器系统110与主机系统105之间的通信。
在一些实例中,本地存储器125可包含存储存储器指针、经提取数据等的存储器寄存器。本地存储器125还可包含用于存储微代码的只读存储器(ROM)。尽管图1中的实例存储器系统110已经说明为包含存储器系统控制器115,但在本公开的另一实例中,存储器系统110可不包含存储器系统控制器115,而是可依赖于外部控制(例如,由外部主机或由与存储器系统分离的处理器或控制器提供)。
存储器系统控制器115可从主机系统105接收命令或操作,并且可将命令或操作转换为指令或适当命令以实现对存储器装置140的期望存取。存储器系统控制器115可负责其它操作,例如损耗均衡操作、废弃项目收集操作、错误检测及错误校正码(ECC)操作、加密操作、高速缓存操作以及与存储器装置140相关联的逻辑地址(例如,逻辑块地址(LBA)、命名空间)与物理地址(例如,物理MU地址、物理块地址)之间的地址转译。存储器系统控制器115可进一步包含主机接口电路系统,以经由物理主机接口与主机系统105通信。主机接口电路系统可将从主机系统接收的命令转换为命令指令以存取存储器装置140以及将与存储器装置140相关联的响应转换为用于主机系统105的信息。
在一些实例中,存储器装置140可包含一或多个本地媒体控制器(未展示),其与存储器系统控制器115结合操作以对存储器装置140的一或多个存储器单元执行操作。外部控制器(例如,存储器系统控制器115)可在外部管理存储器装置140(例如,对存储器装置140执行媒体管理操作)。在一些实例中,存储器装置140可为本地管理的存储器装置,其为与本地媒体控制器组合的存储器装置,所述本地媒体控制器对同一存储器装置封装内的存储器装置140执行存储器管理操作。
在一些实例中,存储器系统110可包含命令管理器130,例如快闪转译层(FTL),其可经配置为主机系统105与存储器装置140之间的接口。命令管理器130可包含在存储器系统控制器115中(例如,存储器系统控制器115可执行由命令管理器130执行的功能,如本文描述)。在一些实施方案中,由主机系统105使用的命令及信令方案可能不同于由存储器装置140使用的命令与信令方案。为促进主机系统105与代表主机系统存储数据的存储器装置140之间的通信,命令管理器130可将主机系统105信息转译或以其它方式转换为存储器装置140信息,反之亦然。可使用一或多个核心来执行命令管理器130的功能。举例来说,可使用一或多个核心来实施命令管理器130的功能。在一些实例中,这些核心可专用于执行命令管理器130的功能。
在一些实例中,存储器系统110可包含第一高速缓存135(例如,映射页高速缓存)。第一高速缓存135可在对存储器装置140的存取操作期间与命令管理器130通信。举例来说,存储器装置140可包含一或多个NAND存储器单元。由于NAND存储器单元无法就地更新,命令管理器130可将数据写入新页,并将前一页标记为无效。因此,可使用地址映射表将逻辑地址(由主机系统105提供)转译为物理快闪地址。在一些情况下,第一高速缓存135可存储地址映射表的一部分。额外地或替代地,地址映射表的其余部分(例如,整个地址映射表可存储到存储器装置140)。
在一些实例中,地址映射表(例如,第一高速缓存135的地址映射表)可分类为页级、块级或混合方案。页级方案将快闪存储器中的逻辑页号(LPN)转译为物理页号(PPN)。块级方案可通过将逻辑块号(LBN)转译为物理块号(PBN)来降低总体存储器要求。混合方案可包含页级及块级映射方案两者的一或多个部分。
当使用页级方案时,为存储映射表,第一高速缓存135的大小可相对较大。然而,如本文描述,减小存储器系统110的总体大小及相关联电力使用可能是有益的,因此减小第一高速缓存135的总体大小可能是有益的。
在一些实例中,第一高速缓存135的大小可通过高速缓存存储到第一高速缓存135的条目来减小。当高速缓存条目时,由映射表利用的条目可存储在快闪存储器中(例如,存储器装置140或另一存储器装置),并且映射页(例如,存储在第一高速缓存135中的单位)可在需要时加载到第一高速缓存135。
对于读取操作,当存储器系统110从主机系统105接收读取命令(例如,在命令管理器130处)时,存储器系统110可用于确定逻辑页的物理页地址。为确定物理页,存储器系统110可查看第一高速缓存135。如果相关联物理地址存储在MPC中,那么可检索物理地址,并且可根据物理地址从存储器装置140读取数据。如果物理页未存储到第一高速缓存135,那么存储器系统110可在根据物理地址从存储器装置140读取数据之前,将对应映射页从存储到快闪存储器(例如,存储在存储器装置140或另一存储器装置的专用部分中)的映射表(例如,L2P表)读取到映射高速缓存。如本文描述,存储器系统110可包含第二高速缓存137(例如,映射描述符高速缓存),以减小第一高速缓存135的大小并减少高速缓存未命中的频率,其中存储器系统控制器115将需要存取映射表以找到与存取命令相关联的对应物理位置。
在一些实例中,第二高速缓存137可对存储器装置140的存取操作期间与第一高速缓存135及/或命令管理器130通信。如在图1中展示,第一高速缓存135及第二高速缓存137可为两个不同(例如,单独)高速缓存。然而,在其它实例(未展示)中,第一高速缓存135及第二高速缓存137可驻留在同一高速缓存中及/或可使用本地存储器125来实施。举例来说,第一高速缓存135及第二高速缓存137可为存储器单元的同一高速高速缓存的不同分区。
第二高速缓存137可经配置以存储与存储器装置140的被频繁存取的地址的组相关联的描述符。在一些情况下,存储器装置140的地址的组或块可频繁地一起存取。连续地址的此类组可简化为描述符,并且描述符可存储在高速缓存中。举例来说,存储到第二高速缓存137的每一条目可由起始逻辑地址、起始物理地址及/或长度字段(例如,指示描述符中的地址的数量)组成。当读取命令由存储器系统110接收时,相关联逻辑地址可与存储到第二高速缓存137的逻辑地址的范围进行比较(例如,逻辑地址将基于所存储起始逻辑地址及长度字段与逻辑地址的范围进行比较)。如果逻辑地址在存储到第二高速缓存137的范围内,那么可确定相关联物理地址,并且可根据物理地址从存储器装置140读取数据。因此,当接收读取命令时,存储器系统控制器115可检查第一高速缓存135及第二高速缓存137的相关联逻辑地址。
在一些实例中,第二高速缓存137可经配置以存储与存储器装置140的频繁存取的(例如,热)数据相关联的条目。尽管存储器装置140可存储多页数据,但大多数页相对较不频繁地被存取(例如,冷)。本专利的目的是提高热数据存取速度,因为热数据存取的延时及性能对用户体验有很大贡献。为追踪数据的温度,可将存储器装置140划分(例如,逻辑划分)为子LBA范围。举例来说,128GB存储装置可划分为128个1GB子LBA范围。
当存储器系统110接收读取命令时,控制器115可识别待被读取的对应LBA范围,并增加LBA范围的读取计数。一次LBA读取可对应于一次读取计数增加。随着读取计数的增加,数据可变得更热。频繁存取的数据的某个阈值的映射(例如,最频繁存取的数据的数量)可在任一时间存储到第二高速缓存137。随着时间的推移,不同数据更加(或更不)频繁地被存取,存储到第二高速缓存137的条目可被更新(例如,被移除并且由不同条目替换)。通过在存储器系统中使用第二高速缓存137,可减小第一高速缓存135的大小,并且可减小存储器系统110的总体功耗及大小。
存储器系统110还可包含未说明的额外电路系统或组件。在一些实例中,存储器系统110可包含额外高速缓存、存储器装置(例如,DRAM)及地址电路系统(例如,行解码器及列解码器),其可从存储器系统控制器115接收地址并解码地址以存取存储器装置140。
在其它实例中,存储器系统110可包含非暂时性计算机可读媒体(CRM)(例如,本地存储器125及/或存储器装置140),其存储用于执行本文描述的用于映射描述符的方法(例如,方法200、300、500及600)的指令(例如,固件)。举例来说,所述指令在由存储器系统控制器115(或存储器系统控制器112的处理器120)执行时可致使存储器系统控制器115执行本文描述的用于映射描述符的方法。
图2说明根据如本文公开的实例支持用于读取操作的映射描述符的流程图200的实例。流程图200可说明主机系统(例如,如参考图1描述的主机系统105)及存储器系统(例如,如参考图1描述的存储器系统110)的操作。存储器系统可包含控制器、第一高速缓存(例如,映射页高速缓存或MPC)、第二高速缓存(例如,映射描述符高速缓存或MDC)及存储器阵列。存储器系统的组件可为如参考图1论述的存储器系统的相关联组件的实例。流程图200可说明存储器系统接收读取命令(例如,从主机系统)并利用MDC存取存储器阵列的一或多个存储器单元。如本文描述,MDC可包含一或多个映射条目(例如,压缩映射条目),这可减小存储器阵列的总体功耗及大小。
在205处,可接收存取命令。在一些实例中,存储器装置可从主机系统接收存取命令。举例来说,存取命令可为包含存储器阵列的一或多个存储器单元的逻辑地址(例如,逻辑块地址)的读取命令。读取命令可由控制器接收及处理,所述控制器例如如参考图1描述的存储器系统控制器115。控制器可基于接收读取命令来确定待存取的存储器阵列的物理地址。控制器可利用存储在MDC中的一或多个条目(例如,描述符)来确定存储器阵列的物理地址并存取相关联数据。
在210处,可确定与存取命令相关联的逻辑地址是否存储在MPC处。在一些实例中,控制器可确定与存取命令相关联的逻辑地址是否存储在MPC处。如本文所论述,MPC可包含存储器阵列的逻辑地址与物理地址之间的映射表(例如,映射表的一部分)。控制器最终可基于逻辑地址未包含(例如,存储)在MPC中而利用MDC。
在215处,如果与存取命令相关联的逻辑地址存储在MPC处,那么可确定与存取命令的逻辑地址相关联的存储器阵列的物理地址。在一些实例中,控制器可确定与存取命令的逻辑地址相关联的存储器阵列的物理地址。举例来说,MPC的映射表(例如,映射表的部分)可包含将逻辑地址映射到物理地址的条目(例如,行)。因此,如果逻辑地址存储到MPC,那么控制器可基于表条目来确定相关联物理地址。在确定存储器阵列的物理地址后,控制器可检索(例如,存取)存储到存储器阵列的相应物理地址的数据。在一些实例中,控制器可向主机系统提供(例如,传输)所检索数据。
在220处,如果与存取命令相关联的逻辑地址未存储在MPC处,那么可确定与存取命令相关联的逻辑地址是否存储在MDC处。在一些实例中,控制器可确定与存取命令相关联的逻辑地址是否存储在MDC处。如本文论述,MDC可包含被称为描述符的条目(例如,压缩条目)。每一描述符可包含起始逻辑地址、起始物理地址及/或指示相应条目的长度的长度字段。下面展示的表1说明保存到MDC的实例描述符。
起始LPN 起始PPN 长度
100 20 128
500 200 2
表1
举例来说,第一条目说明起始逻辑地址(逻辑页号(LPN))“100”及长度128。类似地,第二条目说明起始逻辑地址“500”及长度2。因此,第一条目可表示逻辑地址100到228,且第二条目可表示逻辑地址500到502。因此,在此实例中,在220处,控制器可通过使用至少起始逻辑地址及长度字段来确定所接收存取命令的逻辑地址是否落在逻辑地址的任一范围内。
在225处,如果与存取命令相关联的逻辑地址未存储在MDC处,那么可产生包含至少逻辑地址及对应物理地址的描述符。在一些实例中,控制器可任选地产生包含至少逻辑地址及对应物理地址的描述符。存储器地址可基于一或多个先前存取操作来确定与逻辑地址相关联的物理地址。在一些实例中,可基于存储器系统(例如,控制器)接收具有循序逻辑地址的多个写入命令来产生描述符。在此实例中,起始逻辑地址可基于序列中的第一逻辑地址,并且长度字段可基于包含在序列中的逻辑地址的数量。
在一些实例中,可使用MPC产生描述符。在一些实例中,控制器可使用MPC来产生描述符。举例来说,控制器可将存储器阵列的物理地址的页加载到MPC。控制器可基于物理地址的页来产生一或多个描述符以存储到MDC。有关描述符的产生的其它细节是参考图4。
在230处,可将所产生描述符任选地存储到MDC。在一些实例中,控制器可任选地将所产生描述符存储到MDC。如本文所论述(例如,参考图4),描述符可基于一或多个准则存储到MDC。举例来说,描述符可基于存取相相关数据(例如,数据的相关联物理地址)阈值次数而存储到MDC。举例来说,控制器可追踪对逻辑地址的子集(例如,范围)执行的存取操作的数量。当逻辑地址的子集经历阈值数量的存取操作时,可产生相关联描述符并将其存储到MDC。
在其它实例中,描述符可基于长度(例如,条目中的数量逻辑地址及/或对应物理地址)满足阈值而存储到MDC。举例来说,控制器可基于长度字段来确定所产生描述符的长度。可将长度满足阈值数量的描述符存储到MDC。有关将描述符存储到MDC的额外细节参考图4。
在235处,可存取存储器阵列。在一些实例中,控制器可存取存储器阵列。在一些情况下,如果MDC不包含逻辑地址,那么控制器可跳过特征225及230,并且直接转到235。控制器可检索(例如,存取)存储到与所产生(及所存储)描述符的逻辑地址相关联的物理地址的数据。在一些实例中,控制器可向主机系统提供(例如,传输)所检索数据。
在240处,如果与存取命令相关联的逻辑地址存储在MDC处,那么可确定与存取命令的逻辑地址相关联的存储器阵列的物理地址。在一些实例中,控制器可确定与存取命令的逻辑地址相关联的存储器阵列的物理地址。举例来说,如参考表1描述,MDC可能包含包括起始逻辑地址、起始物理地址及/或指示相应条目的长度的长度字段的条目。为确定逻辑地址是否存储到MDC,控制器可通过使用至少起始逻辑地址及长度字段来确定所接收存取命令的逻辑地址是否落在逻辑地址的范围内。
当确定逻辑地址包含在所存储描述符的范围中时,可计算对应物理地址。为计算物理地址,可确定逻辑地址在序列中的位置。举例来说,逻辑地址可为“103”,其按逻辑地址的顺序可为第四(4)。因为起始物理地址可为“20”,所以控制器可确定(例如,计算)对应物理地址是“23”。可确定包含在存储到MDC的描述符中的任何逻辑地址的对应物理地址。
在245处,在确定对应于所接收逻辑地址的存储器阵列的物理地址后,可检索存储到存储器阵列的相应物理地址的数据。在一些实例中,控制器可检索(例如,存取)存储到存储器阵列的相应物理地址的数据。在一些实例中,控制器可向主机系统提供(例如,传输)所检索数据。
图3说明根据如本文公开的实例支持用于读取操作的映射描述符的流程图300的实例。流程图300可说明主机系统(例如,如参考图1描述的主机系统105)及存储器系统(例如,如参考图1描述的存储器系统110)的操作。存储器系统可包含控制器、第一高速缓存(例如,映射页高速缓存)、第二高速缓存(例如,映射描述符高速缓存)及存储器阵列。存储器系统的组件可为如参考图1及2论述的存储器系统的相关联组件的实例。流程图300可说明存储器系统接收多个读取命令(例如,从主机系统)并确定是否产生条目(例如,描述符)及/或将条目存储到MDC。如本文描述,存储到MDC的条目可减小存储器阵列的总体功耗及大小。
在305处,可接收多个存取命令。在一些实例中,存储器装置可从主机系统接收多个存取命令。举例来说,存取命令可为读取命令,其各自包含存储器阵列的一或多个存储器单元的逻辑地址(例如,逻辑块地址)。读取命令可由控制器接收及处理,例如如参考图1描述的存储器系统控制器115。在一些实例中,存储器阵列可被划分(例如,逻辑细分)为一或多个子块,其各自与逻辑地址的范围相关联。控制器可追踪对每一子块执行的存取操作的数量。举例来说,当接收针对子块内逻辑地址的单个读取命令时,控制器可递增对子块执行的存取操作的值(例如,使用计数器)。
在310处,可确定对存储器阵列的子块执行的读取操作数量是否满足阈值。在一些实例中,控制器可确定对存储器阵列的子块执行的读取操作数量是否满足阈值(例如,第一阈值)。对子块执行的读取操作数量可指示子块是否频繁地被存取(例如,其是否含有“热”数据)。可能需要产生与热数据相关联的描述符以减少与针对数据的未来存取操作相关联的延时,并避免使用MPC来确定与数据相关的物理地址。在一些实例中,阈值数量可为基于存储器系统的所需设计参数的可配置(例如,可调整)数量。如果读取操作数量满足阈值,那么可产生针对包含在子块内的一或多个逻辑地址的描述符。
在315处,如果对存储器阵列的子块执行的读取操作数量不满足阈值(例如,数量低于阈值),那么可避免产生包含在子块内的任何逻辑地址的描述符。在一些实例中,控制器可避免为包含在子块内的任何逻辑地址产生描述符。控制器可在另一时间确定(例如,重新确定)读取操作数量是否满足阈值。
在320处,基于对子块执行的读取操作数量满足阈值,可确定子块的物理地址的数量是否满足阈值(例如,第二阈值)。在一些实例中,控制器可确定子块的物理地址的数量是否满足阈值(例如,第二阈值)。当读取操作数量满足第一阈值时,控制器可从存储器阵列的相关联子块读取数据。举例来说,控制器可读取与包含在子块中的每一逻辑地址相关联的物理地址。在控制器读取数据时,其可识别(例如,追踪)连续物理地址的群组。每一群组的连续物理地址可与第二阈值进行比较,第二阈值可为基于存储器系统的所需设计参数的可配置(例如,可调整)值。如果连续物理地址的数量满足第二阈值,那么可产生包含在子块内的一或多个逻辑地址的描述符。
在325处,如果从存储器阵列读取的连续物理地址的数量不满足第二阈值(例如,数量低于第二阈值),那么可避免产生包含在子块内的对应逻辑地址的描述符。在一些实例中,控制器可避免为包含在子块中的对应逻辑地址产生描述符。控制器可在另一时间确定(例如,重新确定)连续物理地址的数量是否满足第二阈值。
在330处,基于连续物理地址的数量满足第二阈值,可产生用于在MDC处存储的描述符。在一些实例中,控制器可产生用于在MDC处存储的描述符。描述符可包含起始逻辑地址、起始物理地址及/或描述符的长度。所产生描述符可存储到MDC。
在335处,可尝试将所产生描述符存储到MDC。在一些实例中,控制器可尝试将所产生描述符存储到MDC。在一些情况下,MDC可能已满(例如,充满一或多个所存储描述符),并且可或可不存储所产生描述符。是否存储所产生描述符可取决于MDC是否已满以及描述符的长度是否大于(或小于)存储到MDC的任何一个描述符的长度。在一些例子中,所存储MDC可被盖写(例如,被删除并且由所产生描述符替换)。
在340处,可确定MDC是否已满。在一些实例中,控制器可确定MDC是否已满。在一些实例中,MDC可经配置以存储有限数量的描述符。在此实例中,控制器可确定MDC是否含有有限数量的描述符,或者是否可存储额外描述符。在其它实例中,MDC可经配置以存储有限数量的数据(例如,有限数量的字节)。在此实例中,控制器可确定MDC是否含有足够的空间来存储所产生描述符的大小。
在345处,可确定MDC未满。在一些实例中,控制器可确定MDC未满。基于MDC具有可用空间来存储一或多个描述符,控制器可将所产生描述符存储到MDC。所存储MDC可用于基于存储器系统接收包含逻辑地址的存取命令来确定存储器阵列的物理地址。
在350处,可确定MDC已满并且可产生所产生描述符的长度是否超过任何所存储描述符的长度。在一些实例中,控制器可确定MDC已满,并且可确定所产生描述符的长度是否超过任何所存储描述符的长度。条目可基于其长度存储到MDC。举例来说,条目可按降序存储在MDC中,且控制器可经配置以将所产生描述符的大小与最小条目进行比较。如果所产生描述符大于最小条目,那么将从MDC移除最小条目,并且将存储所产生描述符。
在355处,所产生描述符的大小不大于存储到MDC的描述符中的任一者。在此实例中,所产生描述符可不被存储到MDC。在此实例中,MDC中先前存储的条目将依旧存储在MDC中。
在360处,所产生描述符的大小可大于存储到MDC的最小描述符。在此实例中,存储到MDC的最小描述符可能会被移除(例如,删除),并且所产生描述符可被存储到MDC。控制器可根据所产生描述符的大小将所产生描述符存储到MDC,使得根据所存储描述符的大小来组织MDC。所存储描述符可用于基于存储器系统接收包含逻辑地址的存取命令来确定存储器阵列的物理地址。利用MDC可减小原本由于仅使用MPC来确定存储器阵列的物理地址而带来的总功耗及存储器装置的大小。
图4展示根据如本文公开的实例的支持用于读取操作的映射描述符的存储器装置405的框图400。存储器装置405可为如参考图1到3描述的存储器装置的方面的实例。存储器装置405可包含接收组件410、确定组件415、识别组件420、检索组件425、产生组件430、存储组件435、读取组件440及移除组件445。这些模块中的每一者可直接或间接地彼此通信(例如,经由一或多个总线)。
接收组件410可在存储器装置处接收包含由读取命令请求的数据的存储器阵列的逻辑地址的读取命令。
确定组件415可确定存储器装置的第一高速缓存中是否缺少逻辑地址,第一高速缓存包含存储器阵列的第一组逻辑地址与第一组物理地址之间的映射。在一些实例中,确定组件415可确定对存储器阵列的一部分执行的读取操作数量是否满足第一阈值。在一些实例中,确定组件415可基于确定读取操作数量满足第一阈值来确定存储器阵列的部分的物理地址的数量是否满足第二阈值。
在一些实例中,确定组件415可确定第二组逻辑地址的子集的逻辑地址的数量。在一些实例中,确定组件415可基于识别第二组逻辑地址的子集的起始逻辑地址并确定第二组的逻辑地址的子集中的逻辑地址的数量来确定逻辑地址包含在第二组逻辑地址的子集中。在一些实例中,确定组件415可确定在起始逻辑地址与由读取命令请求的逻辑地址之间的第二组逻辑地址的子集中的地址的数量。
在一些实例中,确定组件415可确定与读取命令的逻辑地址相关联的描述符未存储在第二高速缓存中。在一些实例中,确定组件415可基于尝试存储第二描述符来确定高速缓存是否已满。在一些实例中,确定组件415可确定存储器阵列的第二部分的物理地址的数量是否满足存储器阵列的部分的物理地置的数量。在一些实例中,确定组件415可确定存储器阵列的第二部分的物理地址的数量是否不满足存储器阵列的部分的物理位置的数量。
在一些实例中,确定组件415可确定连续物理地址的数量是否满足第二阈值,其中产生描述符是基于数量满足第二阈。在一些实例中,确定组件415可确定满足第一阈值及第二阈值的存储器阵列的部分的连续物理地址。
识别组件420可基于确定第一高速缓存中缺少逻辑地址来识别与逻辑地址相关联并存储在第二高速缓存中的描述符,第二高速缓存包含存储器阵列的第二组逻辑地址与第二组物理地址之间的一或多个描述符。在一些实例中,识别组件420可识别第二组逻辑地址的子集的起始逻辑地址。
在一些实例中,识别组件420可基于存储在第二高速缓存中的描述符来识别与逻辑地址相关联的物理地址,其中检索数据是基于识别物理地址。在一些实例中,识别组件420可基于识别描述符来识别第二组逻辑地址的子集的起始逻辑地址。在一些实例中,识别组件420可识别与第二组逻辑地址的子集相关联的第二组物理地址的子集的起始物理地址,其中与由读取命令请求的逻辑地址相关联的物理地址是基于第二组物理地址的子集的经识别起始物理地址以及起始逻辑地址与由读取命令请求的逻辑地址之间的地址的数量。
在一些实例中,识别组件420可识别已经历满足第一阈值的数量的读取操作的数据的一部分。在一些实例中,识别组件420可识别满足第一阈值的数据的部分的物理地址。在一些实例中,识别组件420可基于识别满足第一阈值的数据的部分的物理地址来识别物理地址的具有连续物理地址的一部分,其中产生描述符是基于识别物理地址的具有连续物理地址的部分。
检索组件425可基于存储在第二高速缓存中的描述符而从存储器阵列检索数据。
产生组件430可基于确定存储器阵列的部分的物理地址的数量满足第二阈值而为存储器阵列的部分产生描述符。在一些实例中,产生组件430可基于确定与读取命令的逻辑地址相关联的描述符未存储在第二高速缓存中而产生与存储器阵列的逻辑地址及对应物理地址相关联的描述符。在一些实例中,产生组件430可基于存储器阵列的第二部分的物理地址的数量满足第二阈值而为存储器阵列的第二部分产生第二描述符。
存储组件435可将描述符存储在与存储器阵列相关联的高速缓存中。在一些实例中,存储组件435可将描述符存储到第二高速缓存。在一些实例中,存储组件435可基于产生第二描述符来尝试将第二描述符存储在与存储器阵列相关联的高速缓存中。在一些实例中,存储组件435可基于移除描述符而将第二描述符存储在高速缓存中。在一些实例中,存储组件435可基于确定存储器阵列的第二部分的物理地址的数量不满足存储器阵列的部分的物理位置的数量而避免将第二描述符存储在高速缓存中。
读取组件440可读取与经识别物理地址相关联的存储器阵列的存储器单元。在一些实例中,读取组件440可与满足第一阈值的读取操作数量相关联的数据在一持续时间内被存取的频率高于与不满足第一阈值的读取操作数量相关联的数据。
移除组件445可基于确定存储器阵列的第二部分的物理地址的数量满足存储器阵列的部分的物理位置的数量而从高速缓存移除描述符。
图5展示说明根据如本文公开的实例的支持用于读取操作的映射描述符的方法500的流程图。方法500的操作可由本文描述的存储器装置或其组件实施。举例来说,方法500的操作可由参考图4描述的存储器装置执行。在一些实例中,存储器装置可执行一组指令以控制存储器装置的功能元件执行所描述功能。额外地或替代地,存储器装置可使用专用硬件来执行所描述功能的方面。
在505处,存储器装置可在存储器装置处接收包含由读取命令请求的数据的存储器阵列的逻辑地址的读取命令。操作505可根据本文描述的方法来执行。在一些实例中,操作505的方面可由如参考图4描述的接收组件来执行。
在510处,存储器装置可确定存储器装置的第一高速缓存中是否缺少逻辑地址,第一高速缓存包含存储器阵列的第一组逻辑地址与第一组物理地址之间的映射。操作510可根据本文描述的方法来执行。在一些实例中,操作510的方面可由如参考图4描述的确定组件来执行。
在515处,存储器装置可基于确定第一高速缓存中缺少逻辑地址来识别与逻辑地址相关联并存储在存储器装置的第二高速缓存中的描述符,第二高速缓存包含存储器阵列的第二组逻辑地址与第二组物理地址之间的一或多个描述符。操作515可根据本文描述的方法来执行。在一些实例中,操作515的方面可由如参考图4描述的识别组件来执行。
在520处,存储器装置可基于存储在第二高速缓存中的描述符而从存储器阵列检索数据。操作520可根据本文描述的方法来执行。在一些实例中,操作520的方面可由如参考图4描述的检索组件来执行。
在一些实例中,如本文描述的设备可执行例如方法500的方法。所述设备可包含用于以下操作的特征、构件或指令(例如,存储可由处理器执行的指令的非暂时性计算机可读媒体):在存储器装置处接收由所述读取命令请求的数据的存储器阵列的逻辑地址的读取命令;确定所述存储器装置的第一高速缓存中是否缺少所述逻辑地址,所述第一高速缓存包含所述存储器阵列的第一组逻辑地址与第一组物理地址之间的映射;基于确定所述第一高速缓存中缺少所述逻辑地址来识别与所述逻辑地址相关联并存储在所述存储器装置的第二高速缓存中的描述符,所述第二高速缓存包含所述存储器阵列的第二组逻辑地址与第二组物理地址之间的一或多个描述符;以及基于存储在所述第二高速缓存中的所述描述符而从所述存储器阵列检索所述数据。
在本文描述的方法500及设备的一些实例中,识别描述符可包含用于以下操作的操作、特征、构件或指令:识别所述第二组逻辑地址的子集的起始逻辑地址;以及确定所述第二组逻辑地址的所述子集的逻辑地址的数量。
本文描述的方法500及设备的一些实例可进一步包含用于以下操作的操作、特征、构件或指令:基于识别所述第二组逻辑地址的子集的所述起始逻辑地址及确定所述第二组逻辑地址的所述子集中的逻辑地址的所述数量来确定所述逻辑地址可包含在所述第二组逻辑地址的所述子集中。
本文描述的方法500及设备的一些实例可进一步包含用于以下操作的操作、特征、构件或指令:基于存储在所述第二高速缓存中的所述描述符来识别与所述逻辑地址相关联的物理地址,其中检索所述数据可基于识别所述物理地址。
在本文描述的方法500及设备的一些实例中,识别所述物理地址可包含用于以下操作的操作、特征、构件或指令:基于识别所述描述符来识别所述第二组逻辑地址的子集的起始逻辑地址;以及确定可在所述起始逻辑地址与由所述读取命令请求的所述逻辑地址之间的所述第二组逻辑地址的所述子集中的地址的数量。
本文描述的方法500及设备的一些实例可进一步包含用于以下操作的操作、特征、构件或指令:识别可与所述第二组逻辑地址的所述子集相关联的所述第二组物理地址的子集的起始物理地址,其中与由所述读取命令请求的所述逻辑地址相关联的所述物理地址可基于所述第二组物理地址的所述子集的所述经识别起始物理地址以及在所述起始逻辑地址与由所述读取命令请求的所述逻辑地址之间的地址的所述数量。
本文描述的方法500及设备的一些实例可进一步包含用于以下操作的操作、特征、构件或指令:确定与所述读取命令的所述逻辑地址相关联的所述描述符可能未存储在所述第二高速缓存中;基于确定与所述读取命令的所述逻辑地址相关联的所述描述符可能未存储在所述第二高速缓存中来产生与所述存储器阵列的所述逻辑地址及对应物理地址相关联的所述描述符;以及将所述描述符存储到所述第二高速缓存。
在本文描述的方法500及设备的一些实例中,从所述存储器阵列检索所述数据可包含用于读取与所述经识别物理地址相关联的所述存储器阵列的存储器单元的操作、特征、构件或指令。
图6展示说明根据如本文公开的实例的支持用于读取操作的映射描述符的方法600的流程图。方法600的操作可由本文描述的存储器装置或其组件实施。举例来说,方法600的操作可由参考图4描述的存储器装置执行。在一些实例中,存储器装置可执行一组指令以控制存储器装置的功能元件执行所描述功能。额外地或替代地,存储器装置可使用专用硬件来执行所描述功能的方面。
在605处,存储器装置可确定对存储器阵列的一部分执行的读取操作数量是否满足第一阈值。操作605可根据本文描述的方法来执行。在一些实例中,操作605的方面可由如参考图4描述的确定组件来执行。
在610处,存储器装置可基于确定读取操作数量满足第一阈值来确定存储器阵列的部分的物理地址的数量是否满足第二阈值。操作610可根据本文描述的方法来执行。在一些实例中,操作610的方面可由如参考图4描述的确定组件来执行。
在615处,存储器装置可基于确定存储器阵列的部分的物理地址的数量满足第二阈值而为存储器阵列的部分产生描述符。操作615可根据本文描述的方法来执行。在一些实例中,操作615的方面可由如参考图4描述的产生组件来执行。
在620处,存储器装置可将描述符存储在与存储器阵列相关联的高速缓存中。操作620可根据本文描述的方法来执行。在一些实例中,操作620的方面可由如参考图4描述的存储组件来执行。
在一些实例中,如本文描述的设备可执行例如方法600的方法。所述设备可包含用于以下操作的特征、构件或指令(例如,存储可由处理器执行的指令的非暂时性计算机可读媒体):确定对存储器阵列的一部分执行的读取操作数量是否满足第一阈值;基于确定所述读取操作数量满足所述第一阈值来确定所述存储器阵列的所述部分的物理地址的数量是否满足第二阈值;基于确定所述存储器阵列的所述部分的物理地址的所述数量满足所述第二阈值来为所述存储器阵列的所述部分产生描述符;以及将所述描述符存储在与所述存储器阵列相关联的高速缓存中。
本文描述的方法600及设备的一些实例可进一步包含用于以下操作的操作、特征、构件或指令:基于所述存储器阵列的所述第二部分的物理地址的所述数量满足所述第二阈值来为所述存储器阵列的第二部分产生第二描述符;尝试基于产生所述第二描述符而将所述第二描述符存储在与所述存储器阵列相关联的所述高速缓存中;以及基于尝试存储所述第二描述符来确定所述高速缓存是否已满。
本文描述的方法600及设备的一些实例可进一步包含用于以下操作的操作、特征、构件或指令:确定所述存储器阵列的所述第二部分的物理地址的所述数量是否满足所述存储器阵列的所述部分的物理位置的所述数量;基于确定所述存储器阵列的所述第二部分的物理地址的所述数量满足所述存储器阵列的所述部分的物理位置的所述数量而从所述高速缓存移除所述描述符;以及基于移除所述描述符而将所述第二描述符存储在所述高速缓存中。
本文描述的方法600及设备的一些实例可进一步包含用于以下操作的操作、特征、构件或指令:确定所述存储器阵列的所述第二部分的物理地址的所述数量是否不满足所述存储器阵列的所述部分的物理位置的所述数量;以及基于确定所述存储器阵列的所述第二部分的物理地址的所述数量不满足所述存储器阵列的所述部分的物理位置的所述数量而避免将所述第二描述符存储在所述高速缓存中。
本文描述的方法600及设备的一些实例可进一步包含用于以下操作的操作、特征、构件或指令:识别已经历满足所述第一阈值的所述数量的读取操作的数据的一部分;识别满足所述第一阈值的数据的所述部分的物理地址;以及基于识别满足所述第一阈值的数据的所述部分的所述物理地址来识别所述物理地址的具有连续物理地址的一部分,其中产生所述描述符可基于识别所述物理地址的具有所述连续物理地址的所述部分。
本文描述的方法600及设备的一些实例可进一步包含用于以下操作的操作、特征、构件或指令:确定所述连续物理地址的数量是否满足所述第二阈值,其中产生所述描述符可基于所述数量满足所述第二阈值。
在本文描述的方法600及设备的一些实例中,产生所述描述符可包含用于确定满足所述第一阈值及所述第二阈值的所述存储器阵列的所述部分的连续物理地址的操作、特征、构件或指令。
本文描述的方法600及设备的一些实例可进一步包含用于与满足所述第一阈值的所述读取操作数量相关联的数据在一持续时间内被存取的频率可高于与不满足所述第一阈值的读取操作数量相关联的数据的操作、特征、构件或指令。
在本文描述的方法600及设备的一些实例中,所述描述符包含所述存储器阵列的所述部分的起始物理地址及所述存储器阵列的所述部分的物理地址的所述数量。
应注意,上文所描述的方法描述可能的实施方案,且操作及步骤可经重新布置或以其它方式修改,且其它实施方案是可能的。此外,可组合来自方法中的两者或更多者的部分。
描述一种设备。所述设备可包含:存储器装置,其包含具有一组存储器单元的存储器阵列;第一高速缓存,其经配置用于存储所述存储器阵列的第一组逻辑地址与第一组物理地址之间的映射;以及第二高速缓存,其经配置用于存储所述存储器阵列的第二组逻辑地址与第二组物理地址之间的描述符,其中描述符识别所述存储器阵列的起始物理地址及待针对相关联逻辑地址的读取操作读取的数据的长度。
在一些实例中,所述第二高速缓存可经配置以基于对与所述第二组物理地址相关联的所述存储器阵列的一部分执行的读取操作数量来存储所述第二组逻辑地址与所述第二组物理地址之间的所述描述符。在一些实例中,所述存储器装置可经配置以基于对与所述第二组物理地址相关联的所述存储器阵列的一部分执行的所述读取操作数量来更新存储在所述第二高速缓存处的所述描述符。
在一些实例中,所述存储器装置可经配置以接收包含所述存储器阵列的数据的逻辑地址的读取命令,并且基于存储在所述第二高速缓存处的所述描述符来读取所述相关联数据。
在一些实例中,所述存储器系统可经配置以确定可与所述读取命令的所述逻辑地址相关联的所述第二组物理地址的物理地址,其中所述存储器装置可经配置以基于确定所述数据的所述物理地址来读取所述相关联数据。
在一些实例中,所述第二组逻辑地址包含一组循序逻辑地址,且其中所述第二组物理地址包含一组循序物理地址。在一些实例中,所述第一高速缓存可与所述存储器阵列耦合,且所述第二高速缓存可与所述第一高速缓存耦合。在一些实例中,所述第一高速缓存及所述第二高速缓存可位于与所述存储器阵列耦合的易失性存储器中。
本文描述的信息及信号可使用各种不同科技及技术中的任一者来表示。举例来说,可贯穿上文描述引用的数据、指令、命令、信息、信号、位、符号及芯片可由电压、电流、电磁波、磁场或磁性粒子、光场或光学粒子或其任何组合来表示。一些图式可将信号说明为单个信号;然而,所属领域的一般技术人员将理解,所述信号可表示信号总线,其中所述总线可具有各种位宽度。
术语“电子通信”、“导电接触”、“连接”及“耦合”可指代支持组件之间的信号流动的组件之间的关系。如果组件之间存在可在任何时间支持组件之间的信号流动的任何导电路径,那么可认为组件彼此电子通信(或彼此导电接触、连接或耦合)。在任何给定时间,基于包含经连接组件的装置的操作,彼此电子通信(或彼此导电接触或连接或耦合)的组件之间的导电路径可为开路或闭路。经连接组件之间的导电路径可为组件之间的直接导电路径,或经连接组件之间的导电路径可为可包含中间组件(例如开关、晶体管或其它组件)的间接导电路径。在一些实例中,经连接组件之间的信号流动可例如使用一或多个中间组件(例如开关或晶体管)来中断一段时间。
术语“耦合”指代从组件之间的开路关系(其中信号当前不能够通过导电路径来在组件之间传送)转变为组件之间的闭路关系(其中信号能够通过导电路径来在组件之间传送)的条件。当例如控制器的组件将其它组件耦合在一起时,组件引发允许信号通过先前不允许信号流动的导电路径来在其它组件之间流动的改变。
术语“隔离”指代其中信号当前无法在组件之间流动的组件之间的关系。如果组件之间存在开路,那么它们彼此隔离。举例来说,当定位于两个组件之间的开关断开时,由开关分离的组件彼此隔离。当控制器隔离两个组件时,控制器引起阻止信号使用先前允许信号流动的导电路径来在组件之间流动的改变。
本文中所论述的装置(包含存储器阵列)可形成于半导体衬底(例如硅、锗、硅锗合金、砷化镓、氮化镓等)上。在一些实例中,衬底是半导体晶片。在其它实例中,衬底可为绝缘体上硅(SOI)衬底,例如玻璃上硅(SOG)或蓝宝石上硅(SOP),或另一衬底上的半导体材料的外延层。可通过使用各种化学物种(包含但不限于:磷、硼或砷)的掺杂来控制衬底或衬底子区域的导电性。掺杂可在衬底的初始形成或生长期间通过离子植入或通过任何其它掺杂方法而执行。
本文中论述的开关组件或晶体管可表示场效应晶体管(FET)且包括三端子装置,其包含源极、漏极及栅极。端子可通过导电材料(例如,金属)连接到其它电子元件。源极及漏极可为导电的且可包括重度掺杂(例如,退化)半导体区域。源极及漏极可通过轻度掺杂半导体区域或沟道分离。如果沟道是n型(即,多数载子是电子),那么FET可被称为n型FET。如果沟道是p型(即,多数载子是空穴),那么FET可被称为p型FET。沟道可通过绝缘栅极氧化物封盖。可通过将电压施加到栅极而控制沟道导电性。举例来说,将正电压或负电压分别施加到n型FET或p型FET可导致沟道变为导电。当将大于或等于晶体管的阈值电压的电压施加到晶体管栅极时,晶体管可为“接通”或“激活”。当将小于晶体管的阈值电压的电压施加到晶体管栅极时,晶体管可为“关断”或“撤销激活”。
结合附图在本文中阐述的描述对实例配置进行描述且不表示可实施或权利要求书的范围内的全部实例。本文中使用的术语“实例”意味着“充当实例、例子或说明”且非“优选”或“比其它实例有利”。然而,这些技术可在没有这些具体细节的情况下实践。然而,可在不具有这些具体细节的情况下实践这些技术。在一些例子中,以框图形式展示众所周知结构及装置以免模糊所描述的实例的概念。
在附图中,类似组件或特征可具有相同参考标记。此外,可通过在参考标记之后加上在类似组件当中区分的破折号及第二标记而区分相同类型的各种组件。如果在说明书中仅使用第一参考标记,那么描述适用于具有相同第一参考标记的类似组件中的任一者而不考虑第二参考标记。
本文描述的信息及信号可使用各种不同科技及技术中的任一者来表示。举例来说,可贯穿上文描述引用的数据、指令、命令、信息、信号、位、符号及芯片可由电压、电流、电磁波、磁场或磁性粒子、光场或光学粒子或其任何组合来表示。
可使用经设计以执行本文中描述的功能的通用处理器、数字信号处理器(DSP)、ASIC、FPGA或其它可编程逻辑装置、离散门或晶体管逻辑、离散硬件组件或其任何组合而实施或执行结合本文的揭示内容描述的各种说明性块及模块。通用处理器可为微处理器,但在替代例中,处理器可为任何处理器、控制器、微控制器或状态机。处理器还可实施为计算装置的组合(例如DSP及微处理器的组合、多个微处理器、结合DSP核心的一或多个微处理器或任何其它此类配置)。
可在硬件、由处理器执行的软件、固件或其任何组合中实施本文中描述的功能。如果在由处理器执行的软件中实施,那么可将功能作为一或多个指令或码存储于计算机可读媒体上或经由计算机可读媒体传输。其它实例及实施方案是在本公开及所附权利要求书的范围内。举例来说,归因于软件的性质,可使用由处理器执行的软件、硬件、固件、硬接线或这些中的任一者的组合来实施上文描述的功能。实施功能的特征件还可在物理上定位在各种位置处,包含经分布使得在不同物理位置处实施功能的部分。此外,如本文中使用,包含权利要求书中,如在项目列表(例如,前面标有例如“中的至少一者”或“中的一或多者”的短语的项目列表)中使用的“或”指示包含列表使得(例如)A、B或C中的至少一者的列表意味着A或B或C或AB或AC或BC或ABC(即,A及B及C)。此外,如本文中使用,短语“基于”不应理解为对一组封闭条件的引用。举例来说,描述为“基于条件A”的实例步骤可基于条件A及条件B两者而不脱离本公开的范围。换句话说,如本文中使用,短语“基于”应以与短语“至少部分基于”的相同方式理解。
计算机可读媒体包含非暂时性计算机存储媒体及通信媒体两者,其包含促进计算机程序从一个位置传送到另一位置的任何媒体。非暂时性存储媒体可为可通过通用或专用计算机存取的任何可用媒体。通过实例但非限制,非暂时性计算机可读媒体可包括RAM、ROM、电可擦除可编程只读存储器(EEPROM)、光盘(CD)ROM或其它光盘存储装置、磁盘存储装置或其它磁性存储装置或可用于携载或存储呈指令或数据结构形式的所要过程代码装置且可通过通用或专用计算机或通用或专用处理器存取的任何其它非暂时性媒体。此外,任何连接适当地称为计算机可读媒体。举例来说,如果使用同轴电缆、光缆、双绞线、数字用户线(DSL)或例如红外线、无线电及微波的无线科技从网站、服务器或其它远程源传输软件,那么同轴电缆、光缆、双绞线、数字用户线(DSL)或例如红外线、无线电及微波的无线科技包含于媒体的定义中。如本文中使用,磁盘及光盘包含CD、激光光盘、光盘、数字多功能光盘(DVD)、软盘及蓝光光盘,其中磁盘通常磁性地重现数据,而光盘使用激光光学地重现数据。上文的组合也包含于计算机可读媒体的范围内。
提供本文中的描述以使所属领域的技术人员能够制造或使用本公开。所属领域的技术人员将明白对本公开的各种修改,且本文中定义的一般原理可应用到其它变化而不脱离本公开的范围。因此,本公开不限于本文中描述的实例及设计,但符合与本文中公开的原理及新颖特征一致的最广范围。

Claims (25)

1.一种设备,其包括:
存储器阵列;
控制器,其与所述存储器阵列耦合并且经配置以致使所述设备:
接收包括由所述读取命令请求的数据的所述存储器阵列的逻辑地址的读取命令;
确定第一高速缓存中是否缺少所述逻辑地址,所述第一高速缓存包括所述存储器阵列的第一组逻辑地址与第一组物理地址之间的映射;
至少部分基于确定所述第一高速缓存中缺少所述逻辑地址来识别与所述逻辑地址相关联并存储在第二高速缓存中的描述符,所述第二高速缓存包括所述存储器阵列的第二组逻辑地址与第二组物理地址之间的一或多个描述符;以及
至少部分基于存储在所述第二高速缓存中的所述描述符而从所述存储器阵列检索所述数据。
2.根据权利要求1所述的设备,其中识别所述描述符包括:
识别所述第二组逻辑地址的子集的起始逻辑地址;及
确定所述第二组逻辑地址的所述子集的逻辑地址的数量。
3.根据权利要求2所述的设备,其中所述控制器经配置以致使所述设备:
至少部分基于识别所述第二组逻辑地址的子集的所述起始逻辑地址及确定所述第二组逻辑地址的所述子集中的逻辑地址的所述数量来确定所述逻辑地址包含在所述第二组逻辑地址的所述子集中。
4.根据权利要求1所述的设备,其中所述控制器经配置以致使所述设备:
至少部分基于存储在所述第二高速缓存中的所述描述符来识别与所述逻辑地址相关联的物理地址,其中检索所述数据是至少部分基于识别所述物理地址。
5.根据权利要求4所述的设备,其中识别所述物理地址包括:
至少部分基于识别所述描述符来识别所述第二组逻辑地址的子集的起始逻辑地址;及
确定在所述起始逻辑地址与由所述读取命令请求的所述逻辑地址之间的所述第二组逻辑地址的所述子集中的地址的数量。
6.根据权利要求5所述的设备,其中所述控制器经配置以致使所述设备:
识别与所述第二组逻辑地址的所述子集相关联的所述第二组物理地址的子集的起始物理地址,其中与由所述读取命令请求的所述逻辑地址相关联的所述物理地址是至少部分基于所述第二组物理地址的所述子集的所述经识别起始物理地址以及在所述起始逻辑地址与由所述读取命令请求的所述逻辑地址之间的地址的所述数量。
7.根据权利要求1所述的设备,其中所述控制器经配置以致使所述设备:
确定与所述读取命令的所述逻辑地址相关联的所述描述符未存储在所述第二高速缓存中;
至少部分基于确定与所述读取命令的所述逻辑地址相关联的所述描述符未存储在所述第二高速缓存中来产生与所述存储器阵列的所述逻辑地址及对应物理地址相关联的所述描述符;及
将所述描述符存储到所述第二高速缓存。
8.根据权利要求1所述的设备,其中从所述存储器阵列检索所述数据包括:
读取与所述经识别物理地址相关联的所述存储器阵列的存储器单元。
9.一种设备,其包括:
存储器系统,其包括具有多个存储器单元的存储器阵列;
第一高速缓存,其经配置用于存储所述存储器阵列的第一组逻辑地址与第一组物理地址之间的映射;以及
第二高速缓存,其经配置用于存储所述存储器阵列的第二组逻辑地址与第二组物理地址之间的描述符,其中描述符识别所述存储器阵列的起始物理地址及待针对相关联逻辑地址的读取操作读取的数据的长度。
10.根据权利要求9所述的设备,其中所述第二高速缓存经配置以至少部分基于对与所述第二组物理地址相关联的所述存储器阵列的一部分执行的读取操作数量来存储所述第二组逻辑地址与所述第二组物理地址之间的所述描述符。
11.根据权利要求10所述的设备,其中所述存储器系统经配置以至少部分基于对与所述第二组物理地址相关联的所述存储器阵列的一部分执行的所述读取操作数量来更新存储在所述第二高速缓存处的所述描述符。
12.根据权利要求9所述的设备,其中所述存储器系统经配置以接收包括所述存储器阵列的数据的逻辑地址的读取命令,并且至少部分基于存储在所述第二高速缓存处的所述描述符来读取所述相关联数据。
13.根据权利要求12所述的设备,其中所述存储器系统经配置以确定与所述读取命令的逻辑地址相关联的所述第二组物理地址的物理地址,其中所述存储器装置经配置以至少部分基于确定所述数据的所述物理地址来读取所述相关联数据。
14.根据权利要求9所述的设备,其中所述第二组逻辑地址包括多个循序逻辑地址,且其中所述第二组物理地址包含多个循序物理地址。
15.根据权利要求9所述的设备,其中所述第一高速缓存与所述存储器阵列耦合,且所述第二高速缓存与所述第一高速缓存耦合。
16.根据权利要求9所述的设备,其中所述第一高速缓存及所述第二高速缓存位于与所述存储器阵列耦合的易失性存储器中。
17.一种设备,其包括:
存储器阵列;
控制器,其与所述存储器阵列耦合并且经配置以致使所述设备:
确定对所述存储器阵列的一部分执行的读取操作数量是否满足第一阈值;
至少部分基于确定所述读取操作数量满足所述第一阈值来确定所述存储器阵列的所述部分的物理地址的数量是否满足第二阈值;
至少部分基于确定所述存储器阵列的所述部分的物理地址的所述数量满足所述第二阈值来为所述存储器阵列的所述部分产生描述符;以及
将所述描述符存储在与所述存储器阵列相关联的高速缓存中。
18.根据权利要求17所述的设备,其中所述控制器经配置以致使所述设备:
至少部分基于所述存储器阵列的所述第二部分的物理地址的所述数量满足所述第二阈值来为所述存储器阵列的第二部分产生第二描述符;
尝试至少部分基于产生所述第二描述符而将所述第二描述符存储在与所述存储器阵列相关联的所述高速缓存中;及
至少部分基于尝试存储所述第二描述符来确定所述高速缓存是否已满。
19.根据权利要求18所述的设备,其中所述控制器经配置以致使所述设备:
确定所述存储器阵列的所述第二部分的物理地址的所述数量是否满足所述存储器阵列的所述部分的物理位置的所述数量;
至少部分基于确定所述存储器阵列的所述第二部分的物理地址的所述数量满足所述存储器阵列的所述部分的物理位置的所述数量而从所述高速缓存移除所述描述符;及
至少部分基于移除所述描述符而将所述第二描述符存储在所述高速缓存中。
20.根据权利要求18所述的设备,其中所述控制器经配置以致使所述设备:
确定所述存储器阵列的所述第二部分的物理地址的所述数量是否不满足所述存储器阵列的所述部分的物理位置的所述数量;及
至少部分基于确定所述存储器阵列的所述第二部分的物理地址的所述数量不满足所述存储器阵列的所述部分的物理位置的所述数量而避免将所述第二描述符存储在所述高速缓存中。
21.根据权利要求18所述的设备,其中所述控制器经配置以致使所述设备:
识别已经历满足所述第一阈值的所述数量的读取操作的数据的一部分;
识别满足所述第一阈值的数据的所述部分的物理地址;及
至少部分基于识别满足所述第一阈值的数据的所述部分的所述物理地址来识别所述物理地址的具有连续物理地址的一部分,其中产生所述描述符是至少部分基于识别所述物理地址的具有所述连续物理地址的所述部分。
22.根据权利要求21所述的设备,其中所述控制器经配置以致使所述设备:
确定所述连续物理地址的数量是否满足所述第二阈值,其中产生所述描述符是至少部分基于所述数量满足所述第二阈值。
23.根据权利要求18所述的设备,其中产生所述描述符包括:
确定满足所述第一阈值及所述第二阈值的所述存储器阵列的所述部分的连续物理地址。
24.根据权利要求18所述的设备,其中与满足所述第一阈值的所述读取操作数量相关联的数据在一持续时间内被存取的频率高于与不满足所述第一阈值的读取操作数量相关联的数据。
25.根据权利要求18所述的设备,其中所述描述符包括所述存储器阵列的所述部分的起始物理地址及所述存储器阵列的所述部分的物理地址的所述数量。
CN202080100955.8A 2020-04-22 2020-04-22 用于读取操作的映射描述符 Pending CN115605851A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2020/086039 WO2021212353A1 (en) 2020-04-22 2020-04-22 Mapping descriptors for read operations

Publications (1)

Publication Number Publication Date
CN115605851A true CN115605851A (zh) 2023-01-13

Family

ID=78271080

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080100955.8A Pending CN115605851A (zh) 2020-04-22 2020-04-22 用于读取操作的映射描述符

Country Status (4)

Country Link
US (1) US11947451B2 (zh)
EP (1) EP4139805A4 (zh)
CN (1) CN115605851A (zh)
WO (1) WO2021212353A1 (zh)

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2396930B (en) * 2002-11-18 2005-09-07 Advanced Risc Mach Ltd Apparatus and method for managing access to a memory
US8285687B2 (en) * 2008-08-27 2012-10-09 Netapp, Inc. System and method for file system level compression using compression group descriptors
US9582431B2 (en) * 2010-03-22 2017-02-28 Seagate Technology Llc Storage address space to NVM address, span, and length mapping/converting
JP5295286B2 (ja) * 2011-02-23 2013-09-18 株式会社日立製作所 記憶装置およびそれを搭載した計算機
WO2012116369A2 (en) * 2011-02-25 2012-08-30 Fusion-Io, Inc. Apparatus, system, and method for managing contents of a cache
CN104346294B (zh) * 2013-07-31 2017-08-25 华为技术有限公司 基于多级缓存的数据读/写方法、装置和计算机系统
US9229876B2 (en) * 2013-12-17 2016-01-05 Sandisk Technologies Inc. Method and system for dynamic compression of address tables in a memory
US10067881B2 (en) * 2016-06-15 2018-09-04 Western Digital Technologies, Inc. Compression and caching for logical-to-physical storage address mapping tables
US9946463B2 (en) * 2016-07-12 2018-04-17 Western Digital Technologies, Inc. Compression of indirection tables
KR20190105869A (ko) * 2018-03-06 2019-09-18 에스케이하이닉스 주식회사 메모리 컨트롤러 및 그 동작 방법
US10949210B2 (en) 2018-05-02 2021-03-16 Micron Technology, Inc. Shadow cache for securing conditional speculative instruction execution
CN110765034B (zh) * 2018-07-27 2022-06-14 华为技术有限公司 一种数据预取方法及终端设备
US10725923B1 (en) * 2019-02-05 2020-07-28 Arm Limited Cache access detection and prediction
JP2020154603A (ja) * 2019-03-19 2020-09-24 キオクシア株式会社 メモリシステム

Also Published As

Publication number Publication date
EP4139805A1 (en) 2023-03-01
WO2021212353A1 (en) 2021-10-28
US11947451B2 (en) 2024-04-02
EP4139805A4 (en) 2023-06-21
US20230153234A1 (en) 2023-05-18

Similar Documents

Publication Publication Date Title
CN115917501A (zh) 系统启动程序期间的读取预测
CN114639418A (zh) 取消映射操作技术
US11847468B2 (en) Data defragmentation for a system boot procedure having random indexes indicating a relationship between sequential logical addresses and random logical addresses
US11966752B2 (en) Data caching for fast system boot-up
US11966632B2 (en) Reading sequential data using mapping information stored at a host device
US11886739B2 (en) Read operation using compressed memory
US11947451B2 (en) Mapping descriptors for read operations
US11429528B2 (en) Split cache for address mapping data
CN114520016B (zh) 用于存储器地址区的激活和去激活的增强
US11989133B2 (en) Logical-to-physical mapping compression techniques
US11520525B2 (en) Integrated pivot table in a logical-to-physical mapping having entries and subsets associated via a flag
WO2022232969A1 (en) Data organization for logical to physical table compression
CN114546895B (zh) 主机侧存储器地址管理
US20240078022A1 (en) Memory system logical unit number procedures
US20240160352A1 (en) Memory cell folding operations using host system memory
US20240020053A1 (en) Techniques for firmware enhancement in memory devices
US20210373908A1 (en) Data techniques for system boot procedures
CN113885786A (zh) 用于垃圾收集的数据分离
CN114077399A (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