CN114546895B - 主机侧存储器地址管理 - Google Patents
主机侧存储器地址管理 Download PDFInfo
- Publication number
- CN114546895B CN114546895B CN202111355970.XA CN202111355970A CN114546895B CN 114546895 B CN114546895 B CN 114546895B CN 202111355970 A CN202111355970 A CN 202111355970A CN 114546895 B CN114546895 B CN 114546895B
- Authority
- CN
- China
- Prior art keywords
- page
- descriptor
- cache
- memory system
- block
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0868—Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0877—Cache access modes
- G06F12/0882—Page mode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
- G06F2212/1024—Latency reduction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/21—Employing a record carrier using a specific recording technology
- G06F2212/214—Solid state disk
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/31—Providing disk cache in a specific location of a storage system
- G06F2212/311—In host system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/46—Caching storage objects of specific type in disk cache
- G06F2212/466—Metadata, control data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy 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 Of A Hierarchy Structure (AREA)
Abstract
本申请涉及主机侧存储器地址管理。在一些实例中,主机系统可识别包含存储器装置的块的逻辑地址的读取请求。所述读取请求可与指示所述主机系统的高速缓存的页的描述符相关联。所述主机系统可确定将描述符指派到所述高速缓存的页,且可再循环所述高速缓存的一或多个页。在一些实例中,所述主机系统可确定由所述描述符指示的所述页是否包含所述存储器装置的所述逻辑地址与物理地址之间的映射,且可基于包含所述映射的所述页而将读取命令发布到所述存储器装置。
Description
交叉引用
本专利申请案要求霍(Huo)在2020年11月18日提交的名称为“主机侧存储器地址管理(HOST SIDE MEMORY ADDRESS MANAGEMENT)”的美国专利申请案第16/951,986号的优先权,所述申请案让与给本受让人且明确地以全文引用的方式并入本文中。
技术领域
以下内容大体上涉及用于存储器的一或多个系统,且更具体地说,涉及主机侧存储器地址(例如,逻辑到物理地址映射)管理。
背景技术
存储器装置广泛用于将信息存储在例如计算机、无线通信装置、相机、数字显示器等的各种电子装置中。通过将存储器装置内的存储器单元编程为各种状态来存储信息。举例来说,二进制存储器单元可编程为通常对应于逻辑1或逻辑0的两个支持状态中的一个。在一些实例中,单个存储器单元可支持多于两个可能状态,存储器单元可存储所述两个可能状态中的任一个。为了存取由存储器装置存储的信息,组件可读取或感测存储器装置内的一或多个存储器单元的状态。为了存储信息,组件可将存储器装置内的一或多个存储器单元写入或编程到对应状态。
存在各种类型的存储器装置,包含磁性硬盘、随机存取存储器(RAM)、只读存储器(ROM)、动态RAM(DRAM)、同步动态RAM(SDRAM)、铁电RAM(FeRAM)、磁性RAM(MRAM)、电阻性RAM(RRAM)、快闪存储器、相变存储器(PCM)、3维交叉点存储器(3D交叉点)、或非(NOR)和与非(NAND)存储器装置等。存储器装置可为易失性或非易失性的。除非由外部电源周期性地刷新,否则易失性存储器单元(例如,DRAM单元)可能随时间推移而丢失其编程状态。非易失性存储器单元(例如,NAND存储器单元)即使在不存在外部电源的情况下仍可在很长一段时间内维持其编程状态。
发明内容
描述一种存储码的非暂时性计算机可读媒体。在一些实例中,存储码的非暂时性计算机可读媒体可包含指令,所述指令在由主机系统的处理器执行时使得主机系统进行以下操作:至少部分地基于对来自存储器系统的逻辑单元的块的数据的读取请求而识别指示主机系统的高速缓存的页的描述符,其中读取请求包括与块相关联的逻辑地址,且高速缓存包括用于存储器系统的逻辑地址与物理地址之间的映射的页空间;确定由描述符指示的页是否包含与块相关联的逻辑地址与存储器系统的物理地址之间的映射;以及至少部分地基于确定由描述符指示的页空间包含与块相关联的逻辑地址与存储器系统的物理地址之间的映射而向存储器系统发布包括存储器系统的物理地址的读取命令。
描述一种存储码的非暂时性计算机可读媒体。在一些实例中,存储码的非暂时性计算机可读媒体可包含指令,所述指令在由主机系统的处理器执行时使得主机系统进行以下操作:至少部分地基于识别对来自存储器系统的逻辑单元的块的数据的读取请求而确定与块相关联的描述符是否与主机系统的高速缓存的页相关联,所述读取请求包括与块相关联的逻辑地址;至少部分地基于确定与读取请求相关联的描述符不与高速缓存的页相关联而确定高速缓存的页空间是否包括非活动页,其中跨多个逻辑单元共享高速缓存的页空间;以及至少部分地基于确定页为非活动的而将描述符映射到高速缓存的页。
描述一种设备。在一些实例中,设备可包含:存储器系统,其包括配置为高速缓存的存储器;以及控制器,其与存储器系统耦合。在一些实例中,控制器可配置成使得设备进行以下操作:至少部分地基于对来自存储器系统的逻辑单元的块的数据的读取请求而识别指示高速缓存的页的描述符,其中读取请求包括与块相关联的逻辑地址,且高速缓存包括用于存储器系统的逻辑地址与物理地址之间的映射的页空间;确定由描述符指示的页是否包含与块相关联的逻辑地址与存储器系统的物理地址之间的映射;以及至少部分地基于确定由描述符指示的页空间包含与块相关联的逻辑地址与存储器系统的物理地址之间的映射而向存储器系统发布包括存储器系统的物理地址的读取命令。
描述一种设备。在一些实例中,设备可包含:存储器系统,其包括配置为高速缓存的存储器;以及控制器,其与存储器系统耦合。在一些实例中,控制器可配置成使得设备进行以下操作:至少部分地基于识别对来自存储器系统的逻辑单元的块的数据的读取请求而确定与块相关联的描述符是否与高速缓存的页相关联,所述读取请求包括与块相关联的逻辑地址;至少部分地基于确定与读取请求相关联的描述符不与高速缓存的页相关联而确定高速缓存的页空间是否包括非活动页,其中跨多个逻辑单元共享高速缓存的页空间;以及至少部分地基于确定页为非活动的而将描述符映射到高速缓存的页。
附图说明
图1说明根据如本文中所公开的实例的支持主机侧存储器地址管理的系统的实例。
图2说明根据如本文中所公开的实例的支持主机侧存储器地址管理的存储器系统的实例。
图3说明根据如本文中所公开的实例的支持主机侧存储器地址管理的框图的实例。
图4到6说明根据如本文中所公开的实例的支持主机侧存储器地址管理的过程流程图的实例。
图7展示根据本公开的方面的支持主机侧存储器地址管理的主机系统的框图。
图8和9展示说明根据如本文中所公开的实例的支持主机侧存储器地址管理的一或多个方法的流程图。
具体实施方式
高容量存储系统可执行逻辑寻址与物理寻址之间的地址转换。存储器系统的存储器控制器可维持具有存储器系统的所有逻辑地址与物理地址之间的完整映射的表(例如,逻辑到物理(L2P)表)。一些存储器系统包含执行当读取量满足阈值时可激活(例如,每区激活)的主机性能提升(HPB)操作的能力。HPB操作可包含将L2P表的部分(例如,对应于满足阈值的区)发送到主机系统以及允许主机系统使用用于命令的物理地址。
主机系统可使用高速缓存来存储L2P表。归因于大小限制,高速缓存可能无法存储与存储器系统相关联的所有L2P表。实际上,由于存储器系统可包含控制器和若干独立逻辑单元(LUN),因此主机系统可包含用于每一LUN的有限数量的L2P存储器(例如,可针对每一LUN保留高速缓存的不同部分)。可单独地管理用于LUN的L2P存储器,且因此可导致主机系统的用于一或多个LUN的L2P存储器耗尽,而未使用用于其它LUN的存储器空间。因此,具有配置成用于全局管理L2P表的高速缓存的主机系统可以是合乎需要的。
本文中描述具有配置成用于全局管理L2P表的高速缓存的主机系统。在一些实例中,主机系统可包含高速缓存,所述高速缓存包含用于存储L2P表的共同页空间。存储器系统的每一LUN可与对应于LUN的每一块的描述符集合相关联,且描述符可映射到高速缓存的页。每一描述符可包含页的属性,例如(高速缓存的)页地址、页状态和/或指示页已打开的持续时间的定时器。当接收到指示存储器系统的逻辑块地址(LBA)的读取请求时,可识别与读取命令相关联(例如,与LUN的块相关联)的描述符。描述符可映射到高速缓存的页,所述页可包含存储器系统的LBA与物理地址之间的映射。在这种情况下,可使用存储到高速缓存的页的物理地址来将读取命令发布到存储器系统。
主机系统可维持用于管理高速缓存的活动和非活动页的一或多个表(例如,链)。在一些情况下,主机系统可将描述符映射到非活动(例如,空闲)页且可将LBA与物理地址之间的映射存储到相应页。在其它情况下,主机系统可再循环高速缓存的活动(例如,已使用)页以便使用于新映射的空间空闲。因此,主机系统可利用高速缓存来存储与存储器系统的各种LUN相关联的L2P表,这可防止主机系统的L2P存储器耗尽或未充分利用L2P存储器。
首先在如参考图1到3所描述的系统和框图的背景中描述本公开的特征。在如参考图4到6所描述的背景过程流程图中描述本公开的特征。参考涉及如参考图7到9所描述的主机侧存储器地址管理的设备图和流程图来进一步说明及描述本公开的这些和其它特征。
图1为根据如本文中所公开的实例的支持主机侧存储器地址管理的系统100的实例。系统100包含与存储器系统110耦合的主机系统105。
存储器系统110可以是或包含任何装置或装置的集合,其中装置或装置的集合包含至少一个存储器阵列。举例来说,存储器系统110可以是或包含通用快闪存储(UFS)装置、嵌入式多媒体控制器(eMMC)装置、快闪装置、通用串行总线(USB)快闪装置、安全数字(SD)卡、固态驱动器(SSD)、硬盘驱动器(HDD)、双列直插式存储器模块(DIMM)、小型DIMM(SO-DIMM),或非易失性DIMM(NVDIMM),以及其它可能性。
系统100可包含在计算装置中,所述计算装置例如台式计算机、膝上型计算机、网络服务器、移动装置、交通工具(例如,飞机、无人机、火车、汽车或其它运输工具)、具物联网(IoT)功能的装置、嵌入式计算机(例如,包含在交通工具、工业设备或联网商业装置中的嵌入式计算机),或包含存储器和处理装置的任何计算装置。
系统100可包含可与存储器系统110耦合的主机系统105。在一些实例中,这一耦合可包含与主机系统控制器106的接口,所述主机系统控制器106可以是配置成使得主机系统105执行根据如本文中所描述的实例的各种操作的控制组件的实例。主机系统105可包含一或多个装置,且在一些情况下可包含处理器芯片组和由处理器芯片组执行的软件堆栈。举例来说,主机系统105可包含配置成用于与存储器系统110或其中的装置通信的应用程序。处理器芯片组可包含一或多个核心、一或多个高速缓存(例如,主机系统105本地的或包含在主机系统105中的存储器)、存储器控制器(例如,NVDIMM控制器)和存储协议控制器(例如,PCIe控制器、SATA控制器)。主机系统105可使用存储器系统110,例如,将数据写入到存储器系统110以及从存储器系统110读取数据。虽然图1中展示一个存储器系统110,但应理解,主机系统105可与任何数量的存储器系统110耦合。
主机系统105可经由至少一个物理主机接口与存储器系统110耦合。在一些情况下,主机系统105和存储器系统110可配置成使用相关联协议经由物理主机接口通信(例如,以在存储器系统110与主机系统105之间交换或以其它方式传达控制、地址、数据和其它信号)。物理主机接口的实例可包含但不限于串行高级技术附件(SATA)接口、UFS接口、eMMC接口、外围组件互连高速(PCIe)接口、USB接口、光纤通道、小型计算机系统接口(SCSI)、串行附接SCSI(SAS)、双数据速率(DDR)、双列直插式存储器模块(DIMM)接口(例如,支持DDR的DIMM套接接口)、开放NAND快闪接口(ONFI)、低功率双数据速率(LPDDR)。在一些实例中,一或多个这类接口可包含在主机系统105的主机系统控制器106与存储器系统110的存储器系统控制器115中或以其它方式在其间得到支持。在一些实例中,主机系统105可经由用于包含在存储器系统110中的每一存储器装置130或存储器装置140的相应物理主机接口,或经由用于包含在存储器系统110中的每一类型的存储器装置130或存储器装置140的相应物理主机接口而与存储器系统110耦合(例如,主机系统控制器106可与存储器系统控制器115耦合)。
存储器系统110可包含存储器系统控制器115、存储器装置130和存储器装置140。存储器装置130可包含第一类型的存储器单元(例如,非易失性存储器单元类型)的一或多个存储器阵列,且存储器装置140可包含第二类型的存储器单元(例如,易失性存储器单元类型)的一或多个存储器阵列。虽然在图1的实例中展示一个存储器装置130和一个存储器装置140,但应理解,存储器系统110可包含任何数量的存储器装置130和存储器装置140,且在一些情况下,存储器系统110可缺少存储器装置130或存储器装置140。
存储器系统控制器115可与主机系统105耦合及通信(例如,经由物理主机接口),且可以是配置成使得存储器系统110执行根据如本文中所描述的实例的各种操作的控制组件的实例。存储器系统控制器115还可与存储器装置130或存储器装置140耦合及通信以执行例如在存储器装置130或存储器装置140处读取数据、写入数据、擦除数据或刷新数据的操作,以及可通常称为存取操作的其它这类操作。在一些情况下,存储器系统控制器115可从主机系统105接收命令,且与一或多个存储器装置130或存储器装置140通信以执行这类命令(例如,在一或多个存储器装置130或存储器装置140内的存储器阵列处)。举例来说,存储器系统控制器115可从主机系统105接收命令或操作,且可将命令或操作转换成指令或适当的命令,以实现对存储器装置130或存储器装置140的所需存取。且在一些情况下,存储器系统控制器115可与主机系统105且与一或多个存储器装置130或存储器装置140交换数据(例如,响应于或以其它方式结合来自主机系统105的命令)。举例来说,存储器系统控制器115可将与存储器装置130或存储器装置140相关联的响应(例如,数据包或其它信号)转换成用于主机系统105的对应信号。
存储器系统控制器115可配置成用于与存储器装置130或存储器装置140相关联的其它操作。举例来说,存储器系统控制器115可执行或管理操作,例如耗损均衡操作、垃圾收集操作、例如错误检测操作或错误校正操作的错误控制操作、加密操作、高速缓存操作、媒体管理操作、背景刷新、健康监测,以及与来自主机系统105的命令相关联的逻辑地址(例如,逻辑块地址(LBA))和与存储器装置130或存储器装置140内的存储器单元相关联的物理地址(例如,物理块地址)之间的地址转换。
存储器系统控制器115可包含硬件,例如一或多个集成电路或离散组件、缓冲存储器或其组合。硬件可包含具有专用(例如,硬译码)逻辑的电路,以执行本文中属于存储器系统控制器115的操作。存储器系统控制器115可以是或包含微控制器、专用逻辑电路(例如,现场可编程门阵列(FPGA)、专用集成电路(ASIC)、数字信号处理器(DSP)),或任何其它合适的处理器或处理电路。
存储器系统控制器115还可包含本地存储器120。在一些情况下,本地存储器120可包含只读存储器(ROM)或可存储操作码(例如,可执行指令)的其它存储器,所述操作码可由存储器系统控制器115执行以执行本文中属于存储器系统控制器115的功能。在一些情况下,本地存储器120可另外或替代地包含静态随机存取存储器(SRAM)或可供存储器系统控制器115用于内部存储或计算的其它存储器,例如,与本文中属于存储器系统控制器115的功能有关的内部存储或计算。另外或替代地,本地存储器120可用作存储器系统控制器115的高速缓存。举例来说,数据可在从存储器装置130或存储器装置140读取或向其写入时存储到本地存储器120,并且可在本地存储器120内供主机系统105(例如,相对于存储器装置130或存储器装置140具有减小的时延)根据高速缓存策略进行后续检索或操控(例如,更新)。
虽然图1中的存储器系统110的实例已说明为包含存储器系统控制器115,但在一些情况下,存储器系统110可不包含存储器系统控制器115。举例来说,存储器系统110可另外或替代地依赖于外部控制器(例如,由主机系统105实施)或可分别在存储器装置130或存储器装置140内部的一或多个本地控制器135或本地控制器145,以执行本文中属于存储器系统控制器115的功能。一般来说,本文中属于存储器系统控制器115的一或多个功能可在一些情况下改为由主机系统105、本地控制器135或本地控制器145或其任何组合执行。
存储器装置140可包含易失性存储器单元的一或多个阵列。举例来说,存储器装置140可包含随机存取存储器(RAM)存储器单元,例如动态RAM(DRAM)存储器单元和同步DRAM(SDRAM)存储器单元。在一些实例中,存储器装置140可(例如,由主机系统105)支持相对于存储器装置130具有减小的时延的随机存取操作,或可提供相对于存储器装置130的一或多个其它性能差异。
存储器装置130可包含非易失性存储器单元的一或多个阵列。举例来说,存储器装置130可包含NAND(例如,NAND快闪)存储器、ROM、相变存储器(PCM)、自选存储器、其它基于硫族化物的存储器、铁电RAM(FeRAM)、磁性RAM(MRAM)、NOR(例如,NOR快闪)存储器、自旋转移力矩(STT)-MRAM、导电桥接RAM(CBRAM)、电阻性随机存取存储器(RRAM)、基于氧化物的RRAM(OxRAM)和电可擦除可编程ROM(EEPROM)。
在一些实例中,存储器装置130或存储器装置140可分别包含(例如,在同一裸片上或同一封装内)本地控制器135或本地控制器145,其可对存储器装置130或存储器装置140的一或多个存储器单元执行操作。本地控制器135或本地控制器145可结合存储器系统控制器115操作,或可执行本文中属于存储器系统控制器115的一或多个功能。在一些情况下,包含本地控制器135或本地控制器145的存储器装置130或存储器装置140可称为受管理存储器装置,且可包含与本地(例如,裸片上或封装内)控制器(例如,本地控制器135或本地控制器145)组合的存储器阵列和相关电路。受管理存储器装置的实例是受管理NAND(MNAND)装置。
在一些情况下,存储器装置130可以是或包含NAND装置(例如,NAND快闪装置)。存储器装置130可以是或包含存储器裸片160。举例来说,在一些情况下,存储器装置130可以是包含一或多个裸片160的封装。在一些实例中,裸片160可以是从晶片切割的一块电子级半导体(例如,从硅晶片切割的硅裸片)。每一裸片160可包含一或多个平面165,且每一平面165可包含相应的块170的集合,其中每一块170可包含相应的页175的集合,且每一页175可包含存储器单元的集合。
在一些情况下,NAND存储器装置130可包含配置成各自存储一个信息位的存储器单元,其可称为单层级单元(SLC)。另外或替代地,NAND存储器装置130可包含配置成各自存储多个信息位的存储器单元,如果配置成各自存储两个信息位,那么其可称为多层级单元(MLC),如果配置成各自存储三个信息位,那么其可称为三层级单元(TLC),如果配置成各自存储四个信息位,那么其可称为四层级单元(QLC),或更一般地称为多层级存储器单元。多层级存储器单元可相对于SLC存储器单元提供更大的存储密度,但在一些情况下,可能涉及用于支持电路的更窄读取或写入裕度或更大复杂度。
在一些情况下,平面165可以指块170的群组,且在一些情况下,并行操作可在不同平面165内进行。举例来说,可对不同块170内的存储器单元执行并行操作,只要不同块170是在不同平面165中即可。在一些情况下,在不同平面165中执行并行操作可具有一或多个限制,例如相同操作是在相应平面165内具有相同页地址的不同页175内的存储器单元上执行的(例如,涉及命令解码、页地址解码电路或跨平面165共享的其它电路)。
在一些情况下,块170可包含组织成行(页175)和列(例如,串,未展示)的存储器单元。举例来说,同一页175中的存储器单元可共享共同字线(例如,与所述共同字线耦合),且同一串中的存储器单元可共享共同数字线(其可替代地称为位线)(例如,与所述共同数字线耦合)。
对于一些NAND架构,存储器单元可在第一粒度级别(例如,在页粒度级别)读取和编程(例如,写入),但可在第二粒度级别(例如,在块粒度级别)擦除。也就是说,页175可以是可独立地编程或读取(例如,作为单个编程或读取操作的一部分同时编程或读取)的存储器(例如,存储器单元的集合)的最小单元,且块170可以是可独立地擦除(例如,作为单个擦除操作的一部分同时擦除)的存储器(例如,存储器单元的集合)的最小单元。此外,在一些情况下,NAND存储器单元可在其可用新数据重写之前进行擦除。因此,举例来说,在一些情况下,可直到包含页175的整个块170已被擦除才更新所使用的页175。
在一些情况下,可维持L2P表且可在页粒度级别将数据标记为有效或无效,且页175可含有效数据、无效数据或不含数据。无效数据可以是由于数据的最新版本或更新版本存储在存储器装置130的不同页175中而过时的数据。无效数据先前已编程到无效页175,但可能不再与有效逻辑地址,例如由主机系统105参考的逻辑地址相关联。有效数据可为存储在存储器装置130上的这类数据的最新版本。不包含数据的页175可以是从未被写入或已被擦除的页175。
系统100可包含支持主机侧存储器地址管理的任何数量的非暂时性计算机可读媒体。举例来说,主机系统105、存储器系统控制器115、存储器装置130或存储器装置140可包含或以其它方式可存取存储指令(例如,固件)的一或多个非暂时性计算机可读媒体以用于执行本文中属于主机系统105、存储器系统控制器115、存储器装置130或存储器装置140的功能。举例来说,这类指令当由主机系统105(例如,由主机系统控制器106)、由存储器系统控制器115、由存储器装置130(例如,由本地控制器135)或由存储器装置140(例如,由本地控制器145)执行时可使得主机系统105、存储器系统控制器115、存储器装置130或存储器装置140执行本文中所描述的一或多个相关联功能。
在一些实例中,主机系统105可识别与存储器系统110的LBA以及描述符相关联的读取请求。举例来说,主机系统105可识别与LBA和指示主机系统105的高速缓存的页的描述符相关联的读取请求。主机系统105可确定高速缓存的页是否包含存储器系统110的LBA与物理地址之间的映射。如果页包含这类映射,那么主机系统105可发布包含存储器系统110的物理地址(例如,对应于存储器装置130或存储器装置140的物理地址的读取命令)。
另外或替代地,主机系统105可管理活动描述符的列表(例如,表),且可再循环高速缓存的一或多个页。举例来说,主机系统105可基于相关联描述符的特性(例如,基于包含脏和/或过期数据的描述符、基于在最长持续时间内活动的描述符等)再循环一或多个活动页。主机系统105可通过从活动描述符取消映射页(例如,或用以有效地再循环页的其它机制)来再循环页。主机系统105可接着将页(例如,再循环页)映射到新描述符(例如,与当前读取请求相关联的描述符)。通过利用本文中所描述的方法,主机系统105可避免耗尽用于存储一或多个LUN的L2P表的存储器,同时具有用于存储其它LUN的L2P表的未使用存储器空间。
图2说明根据如本文中所公开的实例的支持主机侧存储器地址管理的系统200的实例。系统200可包含主机系统205和存储器系统210。在一些实例中,主机系统205可以是主机系统105的实例,且存储器系统210可以是如参考图1所描述的存储器系统110的实例。主机系统205可包含高速缓存225(例如,配置为高速缓存存储区的主机系统205的存储器220的一部分),其包含用于存储L2P表的共同页空间。页空间对于存储器系统210的逻辑单元235(LUN)中的每一个可为共同的。由于页空间对于逻辑单元235中的每一个为共同的,因此主机系统205可基于每一逻辑单元的一或多个条件全局管理L2P表。因此,主机系统205可避免耗尽用于存储一或多个LUN的L2P表的存储器,且还避免具有用于存储其它LUN的L2P表的未使用存储器空间。
在一些实例中,主机系统205可配置成对存储器系统210执行存取操作(例如,读取操作、写入操作)。存储器系统210可包含组织成逻辑单元235的一或多个存储器单元(例如,一或多个非易失性存储器单元)。举例来说,每一逻辑单元235(例如,LUN1、LUN2、LUN-N)可包含一定量的块。每一块可包含相应页集合,且每一页可包含存储器单元的集合,例如非易失性存储器单元(例如,快闪存储器单元)的集合。当执行存取操作时,主机系统205可基于与读取请求相关联的逻辑地址(例如,逻辑块地址(LBA))确定(例如,存储器单元行的)存储器单元的物理地址。
在一些情况下,主机系统205可根据HPB操作执行一或多个存取命令。如本文中所描述,当区上的读取量满足阈值时或当主机系统205从存储器系统210接收加载用于区的L2P映射的通知时,HPB操作通常激活以每区(例如,每块)加载L2P映射。当区上的读取量满足阈值时,主机系统205可将区的LBA与物理地址之间的映射存储到本地L2P表(例如,可从存储器系统210接收用于区的L2P表),其可存储在高速缓存225处。高速缓存可以是或可包含静态随机存取存储器(SRAM)。当对区执行后续存取操作时,主机系统205可使用存储到L2P表的物理地址(例如,使用LBA与存储到L2P表的相关联物理地址之间的映射)存取相关联存储器单元。
如本文中所描述,高速缓存225可包含用于存储L2P表的共同页空间。共同页空间可存储用于存储器系统210的逻辑单元235中的每一个的L2P表。因此,在存取操作期间,CPU215(例如,主机系统205的L2P存储器管理器)可识别与读取请求相关联的LBA。在一些实例中,CPU 215还可识别与指示高速缓存225的页的读取请求相关联的描述符。描述符可与逻辑单元235相关联,所述逻辑单元235与读取请求相关联。举例来说,描述符可与逻辑单元LUN 1相关联。
由描述符指示的高速缓存225的页可用于存储块的L2P映射(例如,L2P表、L2P表条目),且CPU 215可确定L2P表条目是否包含与读取请求相关联的LBA与存储器系统210的地址(例如,物理地址)之间的映射。如果L2P条目包含相关联映射,那么主机系统205可使用存储在高速缓存225的页中的相关联映射(例如,物理地址)将读取命令发布到存储器系统210。读取命令可由控制器230接收和/或处理,且可存取与物理地址相关联的存储器单元。
CPU 215可确定高速缓存225是否包含与读取请求相关联的LBA与存储器系统210的物理地址之间的映射。举例来说,CPU 215可识别与读取请求相关联的LBA和描述符,且可确定高速缓存225不包含与读取请求相关联的LBA与存储器系统210的物理地址之间的映射(例如,描述符的块不与高速缓存225的页相关联)。当高速缓存225不包含LBA与物理地址之间的L2P映射时,CPU 215可针对LBA与相关联物理地址之间的映射指派高速缓存225的非活动页(例如,可用页、空页)。在这类实例中,CPU 215可执行地址转换,且将映射存储到高速缓存225的可用页。因此,如果CPU 215识别与同一描述符和/或LBA相关联的后续读取请求,那么主机系统205可使用存储到页的映射(例如,使用与存储到高速缓存225的页的LBA相关联的物理地址)将读取命令发布到存储器系统210。也就是说,如果CPU 215确定高速缓存225包含与读取请求相关联的LBA与存储器系统的物理地址之间的映射,那么主机系统205可使用所述映射将读取命令发布到存储器系统210。另外或替代地,当高速缓存225不包含LBA与物理地址之间的L2P映射时,CPU 215可确定高速缓存225是否包含任何非活动页。如果高速缓存225包含一或多个非活动页,那么CPU可将当前读取请求的LBA与存储器系统210的物理地址之间的映射指派到非活动页中的一个。如果高速缓存225不包含一或多个非活动页,那么CPU 215可基于与页相关联的描述符的特性(例如,基于包含脏和/或过期数据的描述符、基于在最长持续时间内活动的描述符等)再循环一或多个活动页。CPU 215可通过从页取消映射描述符(例如,或通过有效地再循环页的另一机制)以及指派当前读取请求的LBA与存储器系统210的物理地址之间的映射来再循环页。因此,如果CPU 215识别与同一描述符和/或LBA相关联的后续读取请求,那么主机系统205可使用存储到页的映射(例如,使用与在再循环操作期间存储到高速缓存225的页的LBA相关联的物理地址)将读取命令发布到存储器系统210。利用本文中所描述的方法,主机系统205可避免耗尽用于存储一或多个LUN的L2P表的存储器,且避免具有用于存储其它LUN的L2P表的未使用存储器空间。
图3说明根据如本文中所公开的实例的支持主机侧存储器地址管理的框图300的实例。框图300可说明与存储器系统的不同LUN(例如,如参考图2所描述的存储器系统210的不同逻辑单元235)相关联的逻辑单元块描述符链和高速缓存380的共同页空间。在一些实例中,高速缓存380可以是如参考图2所描述的高速缓存225的实例,且可包含活动页396(例如,所使用的页396)和非活动页398(例如,未使用的页398)。逻辑单元块描述符链的不同块描述符可指示高速缓存380的存储存储器装置的LBA与物理地址之间的映射的相应页。
逻辑单元块描述符链可各自包含与存储器装置的LUN的相应块相关联的描述符集合。举例来说,逻辑单元块描述符链305可包含块1描述符310、块2描述符315、块3描述符320和块N描述符325(其中N表示正整数)。高速缓存380的页的大小可由一个LUN块定义。因此,每一逻辑单元块描述符链可具有用于存储器装置的LUN的每一块的描述符。
在一些实例中,描述符可以指与LUN的块相关联的属性集合。举例来说,每一描述符可识别下表1中展示的属性。
表1
如表1中所展示,描述符可包含以下指示:高速缓存380的相关联页的位置;相关联页是可用还是不可用和/或相关联页包含纯净还是脏数据,或指示相关联页已激活的持续时间的定时器。仅出于示范性目的,逻辑单元块描述符链305的块1描述符310可与高速缓存380的L2P页1 382相关联,逻辑单元块描述符链330的块2描述符340可与高速缓存380的L2P页3 386相关联,且逻辑单元块描述符链355的块3描述符370可与高速缓存380的L2P页2384相关联。
主机系统(例如,如参考图2所描述的主机系统205)可识别与LBA和描述符相关联的读取请求。举例来说,主机系统可识别与LBA和块1描述符310相关联的读取请求。因此,主机系统可(例如,通过使用描述符的LPA)确定块1描述符310是否与高速缓存380的L2P页1382相关联。主机系统可接着确定高速缓存380的L2P页1 382是否包含存储器装置的LBA与物理地址之间的映射。如果L2P页1包含这类映射,那么主机系统可发布包含存储器系统的物理地址的读取命令。
在一些实例中,描述符的其它属性可用于确定高速缓存380的页是否包含LBA与物理地址之间的映射,和/或将读取命令发布到存储器系统。举例来说,如果L2P页状态(LPS)为“无”,那么描述符可能并不与高速缓存380的页相关联。另外或替代地,如果LPS为“脏”,那么高速缓存380的相关联页可理解为具有无效信息,且如果LPS为“纯净”,那么可根据存储到高速缓存380的相关联页的映射将读取命令发布到存储器装置。在一些情况下,主机系统可确定块描述符变脏的时间。举例来说,主机系统可确定与块相关联的数据中的一些(例如,高于阈值)或所有已改变、丢弃或擦除的时间。另外或替代地,存储器系统可向主机系统指示与块描述符相关联的L2P表脏(例如,基于块上的写入或取消映射操作)。此外,可在再循环操作期间使用打开的定时器来识别(例如,相对于其它页)已在最长持续时间内活动的高速缓存380的页。
如本文中所论述,高速缓存380可包含活动页396和非活动页398。举例来说,L2P页N-1 392和L2P页N 394可表示高速缓存380的非活动页398,其中N为正整数。当主机系统识别不与高速缓存380的页相关联的读取请求的描述符时,主机系统可从存储器系统检索与块相关联的L2P表。基于检索L2P表的条件,主机系统可将映射存储到非活动页398。在一些情况下,高速缓存380可不包含任何非活动页,这可导致主机系统执行再循环操作以取消映射活动页396中的一或多个。利用本文中所描述的方法,主机系统可连续地使用和/或再循环高速缓存380的页以供存储存储器系统的LBA与物理地址之间的映射。
图4说明根据如本文中所公开的实例的支持主机侧存储器地址管理的过程流程图400的实例。在一些实例中,过程流程图400可说明当(例如,从如参考图3所描述的高速缓存380的页)加载或试图加载L2P映射时发生的一或多个操作。过程流程图400可说明加载存储到活动页的映射,将映射指派到非活动页,和/或再循环一或多个非活动页。可使用存储到高速缓存的活动页的LBA与物理地址之间的映射来将读取命令发布到相关联存储器系统。
在405处,L2P加载操作可开始。在一些实例中,操作可与HPB操作相关联,所述HPB操作可在主机系统识别读取请求时开始。L2P加载操作可在主机系统确定加载L2P表(其可在读取量满足阈值时发生)时开始。当LUN或块上的读取量满足阈值时或当主机系统从存储器系统接收加载区的L2P映射的通知时,主机系统可确定加载L2P表。举例来说,主机系统可响应于确定(例如,检测)与特定LUN相关联的读取量满足阈值而确定加载L2P表。在一些实例中,主机系统可响应于确定与特定LUN相关联的读取量(例如,在持续时间内发生的读取)满足阈值而确定加载L2P表。
在一些实例中,在满足阈值且主机系统确定执行HPB操作之后,主机系统可识别读取请求且可(例如,基于满足阈值而)执行HPB读取。读取请求可与LBA和描述符(例如,块描述符)相关联。如本文中所描述,描述符可指示高速缓存的页的位置,以及其它属性。高速缓存的页的位置可包含存储器系统的LBA与物理地址之间的映射。描述符还可包含页状态(LPS)以及指示页已活动多长时间的定时器。
在410处,主机系统可从读取请求提取块描述符。可提取块描述符以便识别其属性。举例来说,可提取块描述符以使得主机系统的CPU(例如,主机系统的L2P存储器管理器)可识别高速缓存的页地址(例如,LPA)、页状态(LPS)和/或定时器的值。
在415处,主机系统可确定块描述符的LPS是否为“无”。如本文中所描述,如果块描述符的LPS为“无”,那么描述符可能并不与高速缓存的页相关联。因此,当LPS不为“无”时,可进行L2P加载操作以加载L2P映射(例如,在440处)。如果LPS为“无”,那么块描述符可能并不与高速缓存的页相关联,且主机系统可确定高速缓存是否包含任何空闲(例如,非活动)页。
在420处,主机系统可确定高速缓存是否包含任何空闲(例如,非活动)页。如果确定高速缓存不包含任何空闲页,那么主机系统可最终执行再循环操作以使高速缓存的页空闲。如果确定高速缓存包含一或多个空闲页,那么主机系统可将块描述符映射到非活动页(例如,在435处)。
在425处,主机系统可基于确定高速缓存不包含任何空闲页而设置页回叫值。通过设置页回叫值(例如,设置为“1”,设置为高值),可针对块描述符配置再循环操作。因此,主机系统可将块描述符添加到用于执行再循环操作的队列。
在430处,主机系统可执行再循环操作。执行再循环操作可取消映射高速缓存的一或多个活动页。取消映射页可有效地使页空闲,因此允许主机系统将块描述符映射到空闲的页。再循环操作可再循环页以将页重新用于具有断言的页回叫值(例如,设置为逻辑“1”)的块描述符。本文中描述与再循环操作相关的额外细节,至少包含图6。
在435处,主机系统可将块描述符映射到高速缓存的非活动页。在一些实例中,可能已使页空闲且不经历再循环操作(例如,在420处存在非活动页的情况下)。在其它实例中,可能已通过再循环操作(例如,在430处)使页空闲。主机系统可追踪非活动页的量,且因此可在435处将块描述符映射到非活动页后减少非活动页的量。在接收与同一块描述符和/或LBA相关联的后续读取请求后,主机系统可在435处使用存储到页的物理地址发布读取命令。
在440处,主机系统可从存储器系统加载L2P映射。在一些实例中,所提取描述符可能不包含为“无”的LPS,且页可在415之后加载。在其它实例中,页可在将描述符映射到页(以及接收用于描述符和/或LBA的后续读取请求)之后加载。在一些实例中,L2P映射可在HPB读取之前或在HPB读取期间加载,所述HPB读取可在读取量满足阈值时(例如,在对块执行的读取量满足阈值时)发生。在满足阈值后,L2P映射可加载,且主机系统可随后使用存储到高速缓存的页的物理地址发布读取命令。如本文中所描述,物理地址可对应于读取请求的LBA。
在445处,主机系统可启动与块描述符相关联的定时器,且可基于加载映射而将块描述符添加到活动块描述符链。如本文中所论述,可在再循环操作期间使用定时器来确定(一或多个)页已活动最长持续时间。在其它实例中,块描述符可添加到活动块描述符链,其可辅助在发布读取命令和/或执行再循环操作时识别活动描述符。
在450处,主机系统可将块描述符的LPS设置为“纯净”。如本文中所描述,如果LPS为“纯净”,那么可根据存储到高速缓存的相关联页的映射(例如,在接收与块描述符和/或LBA相关联的后续读取请求后)将读取命令发布到存储器装置。
在455处,L2P加载操作可结束。在一些实例中,主机系统可在执行L2P加载操作之后识别和/或处理后续读取命令。主机系统可根据由过程流程图400说明及参考图4所描述的步骤识别和/或处理后续读取命令。
图5说明根据如本文中所公开的实例的支持主机侧存储器地址管理的过程流程图500的实例。在一些实例中,过程流程图500可说明在由主机系统识别读取请求时发生的一或多个操作。过程流程图500可说明重置映射到高速缓存的页(例如,如参考图3所描述的高速缓存380的页)的块描述符的活动定时器以防止页再循环。通过防止页再循环,可使用存储到页的L2P映射来将后续读取命令发布到相关联存储器装置。
在505处,L2P定时器刷新操作可开始。在一些实例中,操作可在主机系统识别读取请求时开始。在一些实例中,读取请求可与LBA和描述符(例如,块描述符)相关联。如本文中所描述,描述符可指示高速缓存的页的位置,以及其它属性。高速缓存的页的位置可包含存储器装置的LBA与物理地址之间的映射。描述符还可包含页状态(LPS)以及指示页已活动多长时间的定时器。在块描述符映射到高速缓存的页的情况下(例如,块描述符为活动的),块描述符可存储到活动块描述符链。
在510处,主机系统可从读取请求提取LBA。可使用LBA来确定相关联描述符是否为活动的(例如,且存储到活动块描述符链)。如果相关联描述符为活动的,那么高速缓存的相关联页可存储可用于发布读取命令的存储器装置的LBA与物理地址之间的映射。
在515处,主机系统可根据LBA从活动块描述符链提取块描述符。可提取块描述符以便识别其属性。举例来说,可提取块描述符以使得主机系统的CPU(例如,主机系统的L2P存储器管理器)可识别高速缓存的页地址(例如,LPA)、页状态(LPS)和/或定时器的值。
在520处,主机系统可确定块描述符的LPS是否为“纯净”。如果LPS为“纯净”,那么高速缓存的相关联页可包含最新的数据(例如,映射)。换句话说,“纯净”LPS可指示高速缓存的对应页包含存储器装置的LBA与物理地址之间的最新映射。在这类实例中,主机系统可使用与描述符相关联的L2P表执行HPB读取(例如,主机系统可使用来自L2P表的物理地址执行读取操作)。
在525处,主机系统可基于指示“纯净”状态的LPS而重新初始化与块描述符相关联的定时器。通过重新初始化定时器,由于可对与已活动最长持续时间的块描述符相关联的页执行再循环操作,因此高速缓存的相关联页可不太容易受再循环操作影响。因此,重新初始化定时器可允许与块描述符相关联的后续读取请求由主机系统处理。
在530处,L2P定时器刷新操作可结束。在一些实例中,如果块描述符的页状态不为“纯净”(例如,在520处),那么操作可结束。在这类实例中,操作可在不重新初始化定时器的情况下结束,且主机装置可使用与读取请求相关联的LBA来执行正常读取操作。在其它实例中,操作可在重新初始化定时器(例如,在525处)之后结束。如本文中所描述,当重新初始化定时器时(例如,当页状态为“纯净”时),主机系统可使用与描述符相关联的L2P表来执行HPB读取,且主机系统可根据由过程流程图400说明及参考图4所描述的步骤识别和/或处理后续读取命令。
图6说明根据如本文中所公开的实例的支持主机侧存储器地址管理的过程流程图600的实例。在一些实例中,过程流程图600可说明在执行再循环操作时发生的一或多个操作。过程流程图600可说明执行如参考图4所描述的再循环操作(例如,在430处)。因此,由过程流程图600说明的操作可在如参考图4所描述的L2P加载操作期间发生。通过再循环高速缓存的页,页可变为非活动的,且可因此映射到与读取请求相关联的块描述符。
在605处,L2P再循环操作可开始。在一些实例中,操作可在主机系统基于读取操作确定加载页之后(例如,在读取操作的量到达阈值后)而开始。举例来说,当读取量满足阈值且可从存储器系统请求用于块的L2P表时,可针对HPB操作启用块。因此,L2P再循环操作可与HPB操作相关联,在主机系统识别读取请求时,且在主机系统确定相关联块描述符不映射到高速缓存的页以及高速缓存不包含任何非活动(例如,空闲)页后,所述HPB操作可开始。因此,可执行再循环操作以使高速缓存的一或多个页空闲,所述一或多个页可用于映射到块描述符。
在610处,主机系统可扫描活动块描述符。如本文中所描述,活动块描述符可存储到活动块描述符链。可扫描活动描述符链以识别活动块描述符的一或多个属性。
在615处,主机系统可确定活动块描述符中的任一个的LPS是否为“脏”。如果为“脏”,那么存储到高速缓存的相关联页的存储器装置的LBA与物理地址之间的映射可能并非最新的。可针对取消映射而选择具有“脏”LPS的活动块描述符,这可擦除与其相关联的高速缓存的页的内容。如果活动块描述符中的任一个的LPS不为“脏”,那么存储到高速缓存的相关联页的存储器装置的LBA与物理地址之间的映射可为最新的,且主机系统可前进以识别具有“纯净”LPS的活动块描述符。
在620处,主机系统可选择具有“脏”LPS的块描述符。可针对取消映射而选择具有“脏”LPS的任何块描述符。取消映射块描述符可擦除其相关联的高速缓存的页的内容,这可允许利用不同描述符(例如,与当前读取请求相关联的描述符)映射高速缓存的页。
在625处,主机系统可检查页回叫值(例如,在如参考图4所描述的425处的页回叫值集)。可能已基于确定高速缓存是否包含任何空闲页而设置页回叫值。举例来说,页回叫值(例如,“1”到高值)可指示用于块描述符的再循环操作。因此,主机系统可将块描述符添加到用于执行再循环操作的队列。
在630处,主机系统可识别具有“纯净”LPS的最旧活动块描述符。主机系统可通过识别每一块描述符的定时器的值来识别最旧活动块描述符。最旧块描述符可具有指示最大值(例如,最长持续时间)的定时器。如本文中所描述,指示最大值的定时器可在不重置其定时器的情况下识别哪一块描述符已活动最长时间(例如,如参考图5所描述)。
在635处,主机系统可选择具有指示最大值的定时器的块描述符。可针对取消映射而选择已活动最长持续时间的块描述符。取消映射块描述符可擦除其相关联的高速缓存的页的内容,这可允许利用不同描述符(例如,与当前读取请求相关联的描述符)映射高速缓存的页。
在640处,L2P再循环操作可结束。在一些实例中,一旦取消映射(例如,擦除)与所选择描述符相关联的高速缓存的页,操作便可结束。一旦擦除,主机系统便可将不同块描述符映射到页(例如,在如参考图4所描述的435处)。
图7展示根据如本文中所公开的实例的支持主机侧存储器地址管理的主机系统705的框图700。主机系统705可以是如参考图1到6所描述的主机系统的方面的实例。主机系统705可包含识别组件710、确定组件715、发布组件720、递增组件725、映射组件730、再循环组件735、追踪组件740、减小组件745、指派组件750和初始化组件755。这些模块中的每一个可直接或间接地彼此通信(例如,经由一或多个总线)。
识别组件710可基于对来自存储器系统的逻辑单元的块的数据的读取请求而识别指示主机系统的高速缓存的页的描述符,其中读取请求包含与块相关联的逻辑地址,且高速缓存包含用于存储器系统的逻辑地址与物理地址之间的映射的页空间。在一些实例中,识别组件710可识别对来自存储器系统的第二逻辑单元的第二块的数据的第二读取请求。在一些实例中,识别组件710可基于与第二块相关联的逻辑地址而识别第二描述符。
在一些实例中,识别组件710可基于确定第二描述符不与有效页相关联而识别由第二描述符指示的页状态。在一些实例中,识别组件710可基于识别读取请求而识别与块相关联的描述符,所述描述符指示逻辑地址并不对应于主机系统的高速缓存的页。在一些实例中,识别组件710可识别对来自存储器系统的第二逻辑单元的第二块的数据的第二读取请求。在一些实例中,识别组件710可基于识别第二读取请求而识别高速缓存的活动页集合,其中活动页集合中的每一活动页与相应描述符相关联。
在一些情况下,存储器系统与逻辑单元集合相关联,其中每一逻辑单元与配置成存储在主机系统的高速缓存中的描述符的量相关联。在一些情况下,主机系统的高速缓存包含用于页的单个共享空间,所述页配置成存储与存储器系统的逻辑单元集合相关联的地址表。在一些情况下,描述符识别主机系统的高速缓存的页的页空间的地址。
确定组件715可确定由描述符指示的页是否包含与块相关联的逻辑地址与存储器系统的物理地址之间的映射。在一些实例中,确定组件715可基于识别对来自存储器系统的逻辑单元的块的数据的读取请求而确定与块相关联的描述符不与主机系统的高速缓存的页相关联,所述读取请求包含与块相关联的逻辑地址。
在一些实例中,确定组件715可确定第二描述符是否与高速缓存的有效页相关联。在一些实例中,确定组件715可确定第二描述符是否指示第一页状态。在一些实例中,确定组件715可基于递增读取计数器而确定读取计数器的值是否满足阈值,其中基于读取计数器的值未能满足阈值而将第三读取命令发布到存储器系统。在一些实例中,确定组件715可基于读取计数器的值满足阈值而确定第二描述符是否指示第二页状态。
在一些实例中,确定组件715可确定由第二描述符指示的第二页的页状态。在一些实例中,确定组件715可确定第二描述符的定时器的值。在一些实例中,确定组件715可确定第二描述符的定时器的值是否满足阈值。
在一些实例中,可基于确定与读取请求相关联的描述符不与高速缓存的页相关联而确定高速缓存的页空间是否包含非活动页,其中跨逻辑单元集合共享高速缓存的页空间。在一些实例中,可基于确定第二描述符并不指示第二页状态而确定高速缓存是否包含非活动页。
发布组件720可基于确定由描述符指示的页空间包含与块相关联的逻辑地址与存储器系统的物理地址之间的映射而向存储器系统发布包含存储器系统的物理地址的读取命令。在一些实例中,发布组件720可基于指示第一页状态的第二描述符而将第二读取命令发布到存储器系统。
递增组件725可基于确定第二描述符并不指示第一页状态而递增与第二描述符相关联的读取计数器,其中读取计数器指示对第二块执行的读取操作的量。
映射组件730可基于确定页为非活动的而将描述符映射到高速缓存的页。在一些实例中,映射组件730可将第二描述符映射到再循环页。
在一些实例中,基于确定高速缓存包含至少一个非活动页而将第二描述符映射到高速缓存的非活动页。
再循环组件735可基于确定高速缓存不包含非活动页而再循环主机系统的高速缓存的页。在一些实例中,再循环组件735可基于指示第一页状态的第二描述符而再循环与第二描述符相关联的高速缓存的第二页,其中基于再循环第二页而将描述符映射到第二页。在一些实例中,再循环组件735可基于定时器满足阈值而再循环与第二描述符相关联的高速缓存的第二页,其中基于再循环第二页而将描述符映射到第二页。
追踪组件740可追踪高速缓存的非活动页的量。
减小组件745可基于将描述符映射到高速缓存的页而减小高速缓存的非活动页的追踪量。
指派组件750可基于将描述符映射到高速缓存的页而将第二页状态指派到高速缓存的页,其中第二页状态指示页包含存储器系统的逻辑地址与物理地址之间的映射。
初始化组件755可基于将描述符映射到高速缓存的页而初始化与描述符相关联的定时器,其中定时器指示页为活动的持续时间,其中页可供用于基于定时器满足阈值而再循环。
图8展示说明根据本公开的方面的支持主机侧存储器地址管理的一或多个方法800的流程图。方法800的操作可由如本文中所描述的主机系统或其组件实施。举例来说,方法800的操作可由如参考图7所描述的主机系统执行。在一些实例中,主机系统可执行指令集以控制主机系统的功能元件执行所描述功能。另外或替代地,主机系统可使用专用硬件执行所描述功能的方面。
在805处,主机系统可基于对来自存储器系统的逻辑单元的块的数据的读取请求而识别指示主机系统的高速缓存的页的描述符,其中读取请求包含与块相关联的逻辑地址,且高速缓存包含用于存储器系统的逻辑地址与物理地址之间的映射的页空间。可根据本文中所描述的方法执行805的操作。在一些实例中,805的操作的方面可由如参考图7所描述的识别组件执行。
在810处,主机系统可确定由描述符指示的页是否包含与块相关联的逻辑地址与存储器系统的物理地址之间的映射。810的操作可根据本文中所描述的方法来执行。在一些实例中,810的操作的方面可由如参考图7所描述的确定组件执行。
在815处,主机系统可基于确定由描述符指示的页空间包含与块相关联的逻辑地址与存储器系统的物理地址之间的映射而向存储器系统发布包含存储器系统的物理地址的读取命令。可根据本文中所描述的方法执行815的操作。在一些实例中,815的操作的方面可由如参考图7所描述的发布组件执行。
在一些实例中,如本文中所描述的设备可执行一或多个方法,例如方法800。设备可包含用于以下的特征、构件或指令(例如,存储可由处理器执行的指令的非暂时性计算机可读媒体):基于对来自存储器系统的逻辑单元的块的数据的读取请求而识别指示主机系统的高速缓存的页的描述符,其中读取请求包含与块相关联的逻辑地址,且高速缓存包含用于存储器系统的逻辑地址与物理地址之间的映射的页空间。设备可包含用于以下的特征、构件或指令(例如,存储可由处理器执行的指令的非暂时性计算机可读媒体):确定由描述符指示的页是否包含与块相关联的逻辑地址与存储器系统的物理地址之间的映射,以及基于确定由描述符指示的页空间包含与块相关联的逻辑地址与存储器系统的物理地址之间的映射而向存储器系统发布包含存储器系统的物理地址的读取命令。
本文中所描述的方法800和设备的一些实例可进一步包含用于以下的操作、特征、构件或指令:识别对来自存储器系统的第二逻辑单元的第二块的数据的第二读取请求,基于与第二块相关联的逻辑地址而识别第二描述符,以及确定第二描述符可不与高速缓存的有效页相关联。
本文中所描述的方法800和设备的一些实例可进一步包含用于以下的操作、特征、构件或指令:基于确定第二描述符不与有效页相关联而识别由第二描述符指示的页状态,以及基于指示第一页状态的第二描述符而将第二读取命令发布到存储器系统。
本文中所描述的方法800和设备的一些实例可进一步包含用于以下的操作、特征、构件或指令:确定第二描述符是否指示第一页状态,以及基于确定第二描述符并不指示第一页状态而递增与第二描述符相关联的读取计数器,其中读取计数器指示对第二块执行的读取操作的量。本文中所描述的方法800和设备的一些实例可进一步包含用于以下的操作、特征、构件或指令:基于递增读取计数器而确定读取计数器的值是否满足阈值,其中可基于读取计数器的值未能满足阈值而将第三读取命令发布到存储器系统。
本文中所描述的方法800和设备的一些实例可进一步包含用于以下的操作、特征、构件或指令:基于读取计数器的值满足阈值而确定第二描述符是否指示第二页状态,基于确定第二描述符并不指示第二页状态而确定高速缓存是否包含非活动页,以及基于确定高速缓存包含至少一个非活动页而将第二描述符映射到高速缓存的非活动页。
本文中所描述的方法800和设备的一些实例可进一步包含用于以下的操作、特征、构件或指令:基于确定高速缓存不包含非活动页而再循环主机系统的高速缓存的页,以及将第二描述符映射到再循环页。
在本文中所描述的方法800和设备的一些实例中,存储器系统可与逻辑单元集合相关联,其中每一逻辑单元可与配置成存储在主机系统的高速缓存中的描述符的量相关联。
在本文中所描述的方法800和设备的一些实例中,主机系统的高速缓存包含用于页的单个共享空间,所述页配置成存储与存储器系统的逻辑单元集合相关联的地址表。
在本文中所描述的方法800和设备的一些实例中,描述符识别主机系统的高速缓存的页的页空间的地址。
图9展示说明根据本公开的方面的支持主机侧存储器地址管理的一或多个方法900的流程图。方法900的操作可由如本文中所描述的主机系统或其组件实施。举例来说,方法900的操作可由如参考图7所描述的主机系统执行。在一些实例中,主机系统可执行指令集以控制主机系统的功能元件执行所描述功能。另外或替代地,主机系统可使用专用硬件执行所描述功能的方面。
在905处,主机系统可基于识别对来自存储器系统的逻辑单元的块的数据的读取请求而确定与块相关联的描述符是否与主机系统的高速缓存的页相关联,所述读取请求包含与块相关联的逻辑地址。可根据本文中所描述的方法执行905的操作。在一些实例中,905的操作的方面可由如参考图7所描述的确定组件执行。
在910处,主机系统可基于确定与读取请求相关联的描述符不与高速缓存的页相关联而确定高速缓存的页空间是否包含非活动页,其中跨逻辑单元集合共享高速缓存的页空间。可根据本文中所描述的方法执行910的操作。在一些实例中,910的操作的方面可由如参考图7所描述的确定组件执行。
在915处,主机系统可基于确定页为非活动的而将描述符映射到高速缓存的页。可根据本文中所描述的方法执行915的操作。在一些实例中,915的操作的方面可由如参考图7所描述的映射组件执行。
在一些实例中,如本文中所描述的设备可执行一或多个方法,例如方法900。设备可包含用于以下的特征、构件或指令(例如,存储可由处理器执行的指令的非暂时性计算机可读媒体):基于识别对来自存储器系统的逻辑单元的块的数据的读取请求而确定与块相关联的描述符是否与主机系统的高速缓存的页相关联,所述读取请求包含与块相关联的逻辑地址;基于确定与读取请求相关联的描述符不与高速缓存的页相关联而确定高速缓存的页空间是否包含非活动页,其中跨逻辑单元集合共享高速缓存的页空间;以及基于确定页为非活动的而将描述符映射到高速缓存的页。
本文中所描述的方法900和设备的一些实例可进一步包含用于以下的操作、特征、构件或指令:基于识别读取请求而识别与块相关联的描述符,所述描述符指示逻辑地址并不对应于主机系统的高速缓存的页。
本文中所描述的方法900和设备的一些实例可进一步包含用于以下的操作、特征、构件或指令:识别对来自存储器系统的第二逻辑单元的第二块的数据的第二读取请求,以及基于识别第二读取请求而识别高速缓存的活动页集合,其中活动页集合中的每一活动页可与相应描述符相关联。
本文中所描述的方法900和设备的一些实例可进一步包含用于以下的操作、特征、构件或指令:确定由第二描述符指示的第二页的页状态,以及基于指示第一页状态的第二描述符而再循环与第二描述符相关联的高速缓存的第二页,其中可基于再循环第二页而将描述符映射到第二页。
本文中所描述的方法900和设备的一些实例可进一步包含用于以下的操作、特征、构件或指令:确定第二描述符的定时器的值,确定第二描述符的定时器的值是否满足阈值,以及基于定时器满足阈值而再循环与第二描述符相关联的高速缓存的第二页,其中可基于再循环第二页而将描述符映射到第二页。
本文中所描述的方法900和设备的一些实例可进一步包含用于以下的操作、特征、构件或指令:追踪高速缓存的非活动页的量,以及基于将描述符映射到高速缓存的页而减小高速缓存的非活动页的追踪量。
本文中所描述的方法900和设备的一些实例可进一步包含用于以下的操作、特征、构件或指令:基于将描述符映射到高速缓存的页而将第二页状态指派到高速缓存的页,其中第二页状态指示页包含存储器系统的逻辑地址与物理地址之间的映射。
本文中所描述的方法900和设备的一些实例可进一步包含用于以下的操作、特征、构件或指令:基于将描述符映射到高速缓存的页而初始化与描述符相关联的定时器,其中定时器指示页可活动的持续时间,其中页能够可供用于基于定时器满足阈值而再循环。
应注意,上文所描述的方法描述了可能的实施方案,且操作和步骤可重新布置或以其它方式修改,且其它实施方案是可能的。另外,可组合来自所述方法中的两种或更多种的部分。
描述一种设备。设备可包含:存储器系统,其包含配置为高速缓存的存储器;以及控制器,其与存储器系统耦合,其中控制器配置成进行以下操作:基于对来自存储器系统的逻辑单元的块的数据的读取请求而识别指示高速缓存的页的描述符,其中读取请求包含与块相关联的逻辑地址,且高速缓存包含用于存储器系统的逻辑地址与物理地址之间的映射的页空间;确定由描述符指示的页是否包含与块相关联的逻辑地址与存储器系统的物理地址之间的映射;以及基于确定由描述符指示的页空间包含与块相关联的逻辑地址与存储器系统的物理地址之间的映射而向存储器系统发布包含存储器系统的物理地址的读取命令。
一些实例可进一步包含:识别对来自存储器系统的第二逻辑单元的第二块的数据的第二读取请求;基于与第二块相关联的逻辑地址而识别指示高速缓存的第二页的第二描述符;确定由第二描述符指示的第二页不包含与块相关联的逻辑地址与存储器系统的物理地址之间的映射;以及基于确定由描述符指示的第二页不包含与第二块相关联的逻辑地址与存储器系统的物理地址之间的映射而识别由第二描述符指示的页状态,其中可基于指示第一页状态的描述符而将第二读取命令发布到存储器系统。
一些实例可进一步包含:确定第二描述符并不指示第一页状态;基于确定第二描述符并不指示第一页状态而递增与第二描述符相关联的读取计数器,其中读取计数器指示对第二块执行的读取操作的量;以及基于递增读取计数器而确定读取计数器的值是否满足阈值,其中可基于读取计数器的值未能满足阈值而将与第二块相关联的逻辑地址发布到存储器系统。
一些实例可进一步包含:基于读取计数器的值满足阈值而确定第二描述符是否指示第二页状态;基于确定第二描述符并不指示第二页状态而确定高速缓存是否包含非活动页;以及基于确定高速缓存包含至少一个非活动页而将第二描述符映射到高速缓存的非活动页。
描述一种设备。设备可包含:存储器系统,其包含配置为高速缓存的存储器;以及控制器,其与存储器系统耦合,其中控制器配置成进行以下操作:基于识别对来自存储器系统的逻辑单元的块的数据的读取请求而确定与块相关联的描述符不与高速缓存的页相关联,所述读取请求包含与块相关联的逻辑地址;基于确定与读取请求相关联的描述符不与高速缓存的页相关联而确定高速缓存的页空间是否包含非活动页,其中跨逻辑单元集合共享高速缓存的页空间;以及基于确定页为非活动的而将描述符映射到高速缓存的页。
一些实例可进一步包含:识别对来自存储器系统的第二逻辑单元的第二块的数据的第二读取请求;确定由第二描述符指示的第二页的页状态;以及基于指示第一页状态的第二描述符而再循环与第二描述符相关联的高速缓存的第二页,其中可基于再循环第二页而将描述符映射到第二页。
一些实例可进一步包含:识别对来自存储器系统的第二逻辑单元的第二块的数据的第二读取请求;确定第二描述符的定时器的值;确定第二描述符的定时器的值是否满足阈值;以及基于定时器满足阈值而再循环与第二描述符相关联的高速缓存的第二页,其中可基于再循环第二页而将描述符映射到第二页。
一些实例可进一步包含:基于将描述符映射到高速缓存的页而初始化与描述符相关联的定时器,其中定时器指示页可活动的持续时间,其中页能够可供用于基于定时器满足阈值而再循环。
可使用多种不同技术和技艺中的任一个来表示本文中所描述的信息和信号。举例来说,可通过电压、电流、电磁波、磁场或磁粒子、光场或光粒子或其任何组合来表示在整个上文描述中可能参考的数据、指令、命令、信息、信号、位、符号和码片。一些图式可将信令说明为单个信号;然而,所属领域的一般技术人员应理解,信号可表示信号的总线,其中总线可具有各种位宽度。
术语“电子连通”、“导电接触”、“连接”和“耦合”可以指组件之间支持信号在组件之间流动的关系。如果组件之间存在可在任何时间支持信号在组件之间流动的任何导电路径,那么组件被视为彼此电子连通(或彼此导电接触,或彼此连接,或彼此耦合)。在任何给定时间,基于包含所连接组件的装置的操作,彼此电子连通(或彼此导电接触,或彼此连接,或彼此耦合)的组件之间的导电路径可以是开路或闭路。所连接组件之间的导电路径可以是组件之间的直接导电路径,或所连接组件之间的导电路径可以是可包含例如开关、晶体管或其它组件的中间组件的间接导电路径。在一些实例中,可例如使用例如开关或晶体管等一或多个中间组件来中断所连接组件之间的信号流一段时间。
术语“耦合”是指从组件之间的开路关系移动到组件之间的闭路关系的条件,在开路关系中,信号当前无法通过导电路径在组件之间传达,在闭路关系中,信号能够通过导电路径在组件之间传达。当例如控制器等组件将其它组件耦合在一起时,组件发起允许信号通过先前不准许信号流动的导电路径在其它组件之间流动的改变。
术语“隔离”是指信号当前不能在组件之间流动的组件之间的关系。如果组件之间存在开路,那么组件彼此隔离。举例来说,由定位在两个组件之间的开关分隔开的两个组件在开关断开时彼此隔离。当控制器使两个组件隔离时,所述控制器实现以下改变:阻止信号使用先前准许信号流动的导电路径在组件之间流动。
如果用于描述条件性动作或过程,术语“如果……,那么……”、“当……时”、“基于……”、“至少部分地基于……”和“响应于……”可互换。
本文中所论述的装置,包含存储器阵列,可形成于例如硅、锗、硅锗合金、砷化镓、氮化镓等半导体衬底上。在一些实例中,衬底是半导体晶片。在其它实例中,衬底可以是绝缘体上硅(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.根据权利要求1所述的非暂时性计算机可读媒体,其中所述描述符识别所述主机系统的所述高速缓存的所述页的所述页空间的地址。
7.一种存储包括指令的码的非暂时性计算机可读媒体,所述指令在由主机系统的处理器执行时使得所述主机系统进行以下操作:
至少部分地基于识别对来自存储器系统的逻辑单元的块的数据的读取请求而确定与所述块相关联的描述符是否与所述主机系统的高速缓存的页相关联,所述读取请求包括与所述块相关联的逻辑地址;
至少部分地基于确定与所述读取请求相关联的所述描述符不与所述高速缓存的所述页相关联而确定所述高速缓存的页空间是否包括非活动页,其中跨多个逻辑单元共享所述高速缓存的所述页空间;以及
至少部分地基于确定所述页为非活动的而将所述描述符映射到所述高速缓存的所述页。
8.根据权利要求7所述的非暂时性计算机可读媒体,其中所述指令在由所述存储器系统的所述处理器执行时进一步使得所述主机系统进行以下操作:
至少部分地基于识别所述读取请求而识别与所述块相关联的所述描述符,所述描述符指示所述逻辑地址并不对应于所述主机系统的所述高速缓存的所述页。
9.根据权利要求7所述的非暂时性计算机可读媒体,其中所述指令在由所述存储器系统的所述处理器执行时进一步使得所述主机系统进行以下操作:
识别对来自所述存储器系统的第二逻辑单元的第二块的数据的第二读取请求;以及
至少部分地基于识别所述第二读取请求而识别所述高速缓存的多个活动页,其中所述多个活动页中的每一活动页与相应描述符相关联。
10.根据权利要求9所述的非暂时性计算机可读媒体,其中所述指令在由所述存储器系统的所述处理器执行时进一步使得所述主机系统进行以下操作:
确定由第二描述符指示的第二页的页状态;以及
至少部分地基于指示第一页状态的所述第二描述符而再循环与所述第二描述符相关联的所述高速缓存的所述第二页,其中至少部分地基于再循环所述第二页而将所述描述符映射到所述第二页。
11.根据权利要求9所述的非暂时性计算机可读媒体,其中所述指令在由所述存储器系统的所述处理器执行时进一步使得所述主机系统进行以下操作:
确定第二描述符的定时器的值;
确定所述第二描述符的所述定时器的所述值是否满足阈值;以及
至少部分地基于所述定时器满足所述阈值而再循环与所述第二描述符相关联的所述高速缓存的第二页,其中至少部分地基于再循环所述第二页而将所述描述符映射到所述第二页。
12.根据权利要求7所述的非暂时性计算机可读媒体,其中所述指令在由所述存储器系统的所述处理器执行时进一步使得所述主机系统进行以下操作:
追踪所述高速缓存的非活动页的量;以及
至少部分地基于将所述描述符映射到所述高速缓存的所述页而减小经追踪的所述高速缓存的非活动页的量。
13.根据权利要求7所述的非暂时性计算机可读媒体,其中所述指令在由所述存储器系统的所述处理器执行时进一步使得所述主机系统进行以下操作:
至少部分地基于将所述描述符映射到所述高速缓存的所述页而将第二页状态指派到所述高速缓存的所述页,其中所述第二页状态指示所述页包括所述存储器系统的逻辑地址与物理地址之间的映射。
14.根据权利要求7所述的非暂时性计算机可读媒体,其中所述指令在由所述存储器系统的所述处理器执行时进一步使得所述主机系统进行以下操作:
至少部分地基于将所述描述符映射到所述高速缓存的所述页而初始化与所述描述符相关联的定时器,其中所述定时器指示所述页为活动的持续时间,其中所述页能够用于至少部分地基于所述定时器满足阈值而再循环。
15.一种设备,其包括:
存储器系统,其包括配置为高速缓存的存储器;以及
控制器,其与所述存储器系统耦合,其中所述控制器配置成使得所述设备进行以下操作:
至少部分地基于对来自所述存储器系统的逻辑单元的块的数据的读取请求而识别指示所述高速缓存的页的描述符,其中所述读取请求包括与所述块相关联的逻辑地址,且所述高速缓存包括用于所述存储器系统的逻辑地址与物理地址之间的映射的页空间;
确定由所述描述符指示的所述页是否包含与所述块相关联的所述逻辑地址与所述存储器系统的物理地址之间的映射;以及
至少部分地基于确定由所述描述符指示的所述页空间包含与所述块相关联的所述逻辑地址与所述存储器系统的所述物理地址之间的所述映射而向所述存储器系统发布包括所述存储器系统的所述物理地址的读取命令。
16.根据权利要求15所述的设备,其中所述控制器配置成使得所述设备进行以下操作:
识别对来自所述存储器系统的第二逻辑单元的第二块的数据的第二读取请求;
至少部分地基于与所述第二块相关联的逻辑地址而识别第二描述符;以及
确定所述第二描述符是否与所述高速缓存的有效页相关联。
17.根据权利要求15所述的设备,其中所述存储器系统与多个逻辑单元相关联,其中每一逻辑单元与配置成存储在所述高速缓存中的描述符的量相关联。
18.根据权利要求17所述的设备,其中所述高速缓存包括用于页的单个共享空间,所述页配置成存储与所述存储器系统的所述多个逻辑单元相关联的地址表。
19.根据权利要求15所述的设备,其中所述描述符识别所述高速缓存的所述页的所述页空间的地址。
20.一种设备,其包括:
存储器系统,其包括配置为高速缓存的存储器;以及
控制器,其与所述存储器系统耦合,其中所述控制器配置成使得所述设备进行以下操作:
至少部分地基于识别对来自所述存储器系统的逻辑单元的块的数据的读取请求而确定与所述块相关联的描述符是否与所述高速缓存的页相关联,所述读取请求包括与所述块相关联的逻辑地址;
至少部分地基于确定与所述读取请求相关联的所述描述符不与所述高速缓存的所述页相关联而确定所述高速缓存的页空间是否包括非活动页,其中跨多个逻辑单元共享所述高速缓存的所述页空间;以及
至少部分地基于确定所述页为非活动的而将所述描述符映射到所述高速缓存的所述页。
21.根据权利要求20所述的设备,其中所述控制器配置成使得所述设备进行以下操作:
至少部分地基于识别所述读取请求而识别与所述块相关联的所述描述符,所述描述符指示所述逻辑地址并不对应于所述存储器系统的所述高速缓存的所述页。
22.根据权利要求20所述的设备,其中所述控制器配置成使得所述设备进行以下操作:
识别对来自所述存储器系统的第二逻辑单元的第二块的数据的第二读取请求;以及
至少部分地基于识别所述第二读取请求而识别所述高速缓存的多个活动页,其中所述多个活动页中的每一活动页与相应描述符相关联。
23.根据权利要求22所述的设备,其中所述控制器配置成使得所述设备进行以下操作:
确定由第二描述符指示的第二页的页状态;以及
至少部分地基于指示第一页状态的所述第二描述符而再循环与所述第二描述符相关联的所述高速缓存的所述第二页,其中至少部分地基于再循环所述第二页而将所述描述符映射到所述第二页。
24.根据权利要求22所述的设备,其中所述控制器配置成使得所述设备进行以下操作:
确定第二描述符的定时器的值;
确定所述第二描述符的所述定时器的所述值是否满足阈值;以及
至少部分地基于所述定时器满足所述阈值而再循环与所述第二描述符相关联的所述高速缓存的第二页,其中至少部分地基于再循环所述第二页而将所述描述符映射到所述第二页。
25.根据权利要求20所述的设备,其中所述控制器配置成使得所述设备进行以下操作:
追踪所述高速缓存的非活动页的量;以及
至少部分地基于将所述描述符映射到所述高速缓存的所述页而减小经追踪的所述高速缓存的非活动页的量。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/951,986 | 2020-11-18 | ||
US16/951,986 US11301372B1 (en) | 2020-11-18 | 2020-11-18 | Host side memory address management |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114546895A CN114546895A (zh) | 2022-05-27 |
CN114546895B true CN114546895B (zh) | 2023-05-23 |
Family
ID=81123939
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111355970.XA Active CN114546895B (zh) | 2020-11-18 | 2021-11-16 | 主机侧存储器地址管理 |
Country Status (2)
Country | Link |
---|---|
US (2) | US11301372B1 (zh) |
CN (1) | CN114546895B (zh) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111538682A (zh) * | 2018-12-31 | 2020-08-14 | 美光科技公司 | 混合逻辑到物理高速缓存方案 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8291175B2 (en) * | 2009-10-16 | 2012-10-16 | Oracle America, Inc. | Processor-bus attached flash main-memory module |
US9558112B1 (en) * | 2012-05-08 | 2017-01-31 | Google Inc. | Data management in a data storage device |
KR20210016184A (ko) * | 2019-08-01 | 2021-02-15 | 삼성전자주식회사 | 스토리지 장치, 그것을 포함하는 메모리 시스템 및 그것의 동작 방법 |
-
2020
- 2020-11-18 US US16/951,986 patent/US11301372B1/en active Active
-
2021
- 2021-11-16 CN CN202111355970.XA patent/CN114546895B/zh active Active
-
2022
- 2022-04-06 US US17/714,757 patent/US11816028B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111538682A (zh) * | 2018-12-31 | 2020-08-14 | 美光科技公司 | 混合逻辑到物理高速缓存方案 |
Also Published As
Publication number | Publication date |
---|---|
US20220300411A1 (en) | 2022-09-22 |
US11301372B1 (en) | 2022-04-12 |
US11816028B2 (en) | 2023-11-14 |
CN114546895A (zh) | 2022-05-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20230185728A1 (en) | Data alignment for logical to physical table compression | |
US11907556B2 (en) | Data relocation operation techniques | |
CN115705887A (zh) | 存储器操作完成标记 | |
CN114639418A (zh) | 取消映射操作技术 | |
CN114822670A (zh) | 有效数据感知媒体可靠性扫描 | |
US11500769B2 (en) | Valid data identification for garbage collection | |
WO2022040914A1 (en) | Unmap backlog in a memory system | |
CN114691031A (zh) | 基于分片操作的存储器系统的存取 | |
CN114546895B (zh) | 主机侧存储器地址管理 | |
US11886341B2 (en) | Enhancement for activation and deactivation of memory address regions | |
US12007897B2 (en) | Split cache for address mapping data | |
US11989133B2 (en) | Logical-to-physical mapping compression techniques | |
US12007889B2 (en) | Valid data identification for garbage collection | |
US20230015332A1 (en) | Split cache for address mapping data | |
US11977758B2 (en) | Assigning blocks of memory systems | |
CN113885786B (zh) | 用于垃圾收集的数据分离 | |
US20220300208A1 (en) | Memory read performance techniques | |
US20240061587A1 (en) | Zone write operation techniques | |
US20230359552A1 (en) | Memory write performance techniques | |
WO2022193143A1 (en) | Validity mapping techniques | |
US20230161696A1 (en) | Data separation for garbage collection | |
US20240020016A1 (en) | Metadata allocation in memory systems | |
CN113741982A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |