CN117609105A - 用于访问存储器页的版本中的数据的方法和设备 - Google Patents
用于访问存储器页的版本中的数据的方法和设备 Download PDFInfo
- Publication number
- CN117609105A CN117609105A CN202310987558.2A CN202310987558A CN117609105A CN 117609105 A CN117609105 A CN 117609105A CN 202310987558 A CN202310987558 A CN 202310987558A CN 117609105 A CN117609105 A CN 117609105A
- Authority
- CN
- China
- Prior art keywords
- page
- version
- memory
- data
- cache
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 62
- 230000004048 modification Effects 0.000 claims description 14
- 238000012986 modification Methods 0.000 claims description 14
- 230000001427 coherent effect Effects 0.000 claims description 7
- 238000013507 mapping Methods 0.000 description 61
- 101100244635 Paramecium tetraurelia Ppn2 gene Proteins 0.000 description 39
- 238000006243 chemical reaction Methods 0.000 description 33
- 238000004891 communication Methods 0.000 description 11
- 230000012447 hatching Effects 0.000 description 11
- 230000006870 function Effects 0.000 description 10
- 230000008569 process Effects 0.000 description 7
- 230000004044 response Effects 0.000 description 5
- 238000013519 translation Methods 0.000 description 5
- 101001122833 Paramecium tetraurelia Serine/threonine-protein phosphatase PP2A catalytic subunit 2 Proteins 0.000 description 3
- 230000001934 delay Effects 0.000 description 3
- 230000002085 persistent effect Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 230000002688 persistence Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000002195 synergetic effect Effects 0.000 description 2
- 230000002123 temporal effect Effects 0.000 description 2
- 101100498818 Arabidopsis thaliana DDR4 gene Proteins 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000017702 response to host Effects 0.000 description 1
- 229920002803 thermoplastic polyurethane Polymers 0.000 description 1
Classifications
-
- 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/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/0873—Mapping of cache memory to specific storage devices or parts thereof
-
- 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
- G06F12/123—Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
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
技术领域
本公开总体上涉及存储器***,并且更具地,涉及用于访问存储器页的版本中的数据的***、方法和设备。
背景技术
存储器***可包括不同类型的存储器(诸如,易失性存储器和/或非易失性存储器)。易失性存储器可被配置为存储器高速缓存,以提供对数据的相对较快的访问和/或存储可被相对频繁地访问的数据。存储在高速缓存中的数据也可被存储在主存储器中,主存储器可例如用可跨电力循环保留数据的非易失性存储器来实现。
在本背景技术部分中公开的上面的信息仅用于增强发明原理的背景的理解,因此该信息可包含不构成现有技术的信息。
发明内容
一种设备可包括:至少一个存储器;以及至少一个处理器,被配置为:确定页的第一版本的可访问性,其中,页的第一版本被存储在所述至少一个存储器中,并且基于页的第一版本的可访问性,执行对页的第二版本的至少一部分的访问,其中,页的第二版本被存储在所述至少一个存储器中。页的第一版本的可访问性可基于页的第一版本的擦除操作。页的第一版本的可访问性可基于页的第一版本的访问量。页的第一版本的可访问性还可基于页的第二版本的访问量。对页的第二版本的所述至少一部分的访问可包括对页的第二版本的高速缓存行的访问。对页的第二版本的所述至少一部分的访问可基于页的第一版本的修改状态。对页的第二版本的所述至少一部分的访问可包括对页的第二版本的一部分的访问,并且页的第一版本的修改状态可基于与页的第二版本的所述一部分对应的页的第一版本的一部分的修改状态。页的第一版本的所述一部分可包括页的第一版本的高速缓存行,并且页的第二版本的所述一部分可包括与页的第一版本的高速缓存行对应的页的第二版本的高速缓存行。所述至少一个处理器可被配置为:跟踪页的第二版本的所述至少一部分的修改状态。对页的第二版本的所述至少一部分的访问可包括读取操作。所述至少一个处理器可被配置为:将页的第一版本存储在第一超级块中;并且将页的第二版本存储在第二超级块中。所述方法还可包括:高速缓存,被配置为存储页的第一版本,其中,所述至少一个处理器可被配置为跟踪页的第一版本的修改状态。所述至少一个处理器可被配置为:基于页的第一版本的修改状态来逐出页的第一版本。所述设备可包括存储装置,并且所述至少一个存储器可包括至少一个存储介质。存储装置可被配置为以一致性存储器模式进行操作。
一种方法可包括:确定页的第一版本的可访问性,其中,页的第一版本可被存储在至少一个存储器中;以及基于页的第一版本的可访问性来访问页的第二版本的至少一部分,其中,页的第二版本可被存储在所述至少一个存储器中。所述方法还可包括:确定页的第一版本的一部分的修改状态,其中,访问页的第二版本的所述至少一部分的步骤可包括:访问与页的第一版本的所述一部分对应的页的第二版本的一部分。
一种设备可包括:至少一个存储器;以及至少一个处理器,被配置为:将页的第一版本存储在至少一个存储器中,将页的第二版本存储在所述至少一个存储器中,并且跟踪页的第一版本的至少一部分的修改状态。页的第一版本的所述至少一部分的修改状态可包括页的第一版本的一部分的修改状态。页的第一版本的所述一部分可包括高速缓存行。
附图说明
附图不必按比例绘制,并且贯穿附图,出于说明性的目的,相似结构或功能的元素通常可由相似的参考标号或其部分来表示。附图仅意在便于在此描述的各种实施例的描述。附图不描述在此公开的教导的每个方面,并且不限制权利要求的范围。为了防止附图变得不清楚,并非全部的组件、连接等可被示出,并且并非全部的组件可具有参考标号。然而,组件配置的模式可从附图而易于清楚。附图连同说明书一起示出本公开的示例实施例,并且连同描述一起用于解释本公开的原理。
图1示出根据公开的示例实施例的存储器设备的实施例。
图2示出根据公开的示例实施例的存储器访问方案的实施例。
图3示出根据公开的示例实施例的数据高速缓存的实施例。
图4示出根据公开的示例实施例的缓冲页更新表的实施例。
图5示出根据公开的示例实施例的无效页映射表的实施例。
图6A示出根据公开的示例实施例的在与写入操作相关的第一状态下的存储器设备的示例实施例。
图6B示出根据公开的示例实施例的在与写入操作相关的第二状态下的图6A中示出的存储器设备的示例实施例。
图7示出根据公开的示例实施例的用于存储器设备操作的写入操作的方法的示例实施例。
图8A示出根据公开的示例实施例的在与逐出操作相关的第一状态下的存储器设备的示例实施例。
图8B示出根据公开的示例实施例的在与逐出操作相关的第二状态下的图8A中示出的存储器设备的示例实施例。
图9示出根据公开的示例实施例的用于存储器设备操作的逐出操作的方法的示例实施例。
图10A示出根据公开的示例实施例的在与读取操作相关的第一状态下的存储器设备的示例实施例。
图10B示出根据公开的示例实施例的在与读取操作相关的第二状态下的图10A中示出的存储器设备的示例实施例。
图11示出根据公开的示例实施例的用于存储器设备操作的读取操作的方法的示例实施例。
图12A示出根据公开的示例实施例的在与垃圾收集操作相关的第一状态下的存储器设备的示例实施例。
图12B示出根据公开的示例实施例的在与垃圾收集操作相关的第二状态下的图12A中示出的存储器设备的示例实施例。
图13示出根据公开的示例实施例的具有布置在超级块中的页的存储器设备的示例实施例。
图14示出根据公开的示例实施例的装置的示例实施例。
图15示出根据公开的示例实施例的用于访问页的版本的方法的实施例。
具体实施方式
存储器***可存储数据的页的多个版本。例如,一些存储器***可将数据存储在非易失性存储器中,非易失性存储器可以以页为单位被访问(例如,写入或读取)。然而,非易失性存储器可以以可包括多个页的块为较大单位被擦除。为了修改被存储在非易失性存储器中的数据的页的一部分,存储器***可将数据的更新的页(其可包括修改的部分和未修改的部分两者)写入非易失性存储器的新页。数据的更新的页(和/或数据可被存储在其中的非易失性存储器的新页)可被称为有效页。数据的原始页(和/或数据可被存储在其中的非易失性存储器的原始页)可被称为无效页。例如,当无效页所位于的块被无效页填充时,无效页可被标记用于最终擦除。因此,存储器***可至少临时地存储数据的页的不同的两个版本:可包括至少一些无效数据(例如,已经在页的相应更新版本中被修改的数据)的无效版本(例如,原始或较早版本)、以及可仅包括有效数据(或相比于无效版本较近更新的数据)的有效版本(例如,更新或较晚版本)。
存储器***可通过读取数据可被存储在其中的存储器的页来取得数据的页的有效版本。然而,在一些情况下,存储器的有效页可能不能够容易访问。例如,如果存储器的有效页位于正在经历擦除操作的存储器裸片(例如,集成电路(IC)芯片)上,则存储器***可在读取存储器的有效页之前等待直到擦除操作完成。可选地,存储器***可挂起(suspend)擦除操作,以读取存储器的有效页。然而,挂起擦除操作仍可减慢读取操作。作为另一示例,因为存储器的有效页可能位于可具有相对大量的待处理的输入和/或输出(I/O或IO)操作的忙碌的存储器裸片或通道上,所以存储器的有效页可能不能够容易访问。因此,针对存储器***读取存储器的有效页可仍然存在相对长的延迟。
存储器***可接收仅对存储在存储器(例如,非易失性存储器)中的数据的页的一部分的读取请求。如果存储在存储器中的数据的页先前被更新,使得还存在存储在存储器中的页的无效版本,则页的所请求部分在页的无效版本中可仍然是有效的。例如,当页的有效版本被更新和/或存储时,存储在无效页中的数据的所请求部分可能在页的有效版本中尚未被修改。
例如,在数据的所请求部分在页的无效版本中有效的情况下,根据公开的示例实施例的存储器方案可从页的无效版本访问数据的页的所请求部分。依据实施方式细节,例如,在页的相应有效版本不能够容易访问的情况下(例如,在有效页被存储在忙碌或正被擦除的存储器裸片上的情况下),这可减少访问所请求的数据所涉及的时间量。依据实施方式细节,如果目标高速缓存行(cache line)未被修改,则存储器请求可通过从无效页读取目标高速缓存行而在不中断擦除操作的情况下被快速服务。
在一些实施例中,因为当页的有效版本被更新和/或存储时,即使页的无效版本中的实际数据可尚未被改变,页的无效版本中的无效数据也可对应于页的有效版本的可已经被修改的部分,所以页的无效版本中的无效数据可被称为修改的数据(例如,修改的高速缓存行)。类似地,在一些实施例中,因为当页的有效版本被更新和/或存储时,页的无效版本中的有效数据可对应于页的有效版本的可尚未被修改的部分,所以页的无效版本中的有效数据可被称为未修改的数据(例如,未修改的高速缓存行)。
一些实施例可实现用于跟踪无效页中的有效数据的一个或多个方案。例如,无效页映射数据结构可将数据的有效页的逻辑页号映射到页的无效版本的物理页号。该数据结构还可例如使用页的无效版本中的数据的有效部分的映射来指示页的无效版本内的有效数据的位置。
根据公开的示例实施例,用于访问数据的页的不同版本中的数据的方案可与数据高速缓存方案结合使用。例如,数据的页的有效版本最初可被存储在高速缓存和主存储器(例如,非易失性存储器)两者中。在写回(write back)配置下,修改的数据可被写入高速缓存中的页的版本,并且高速缓存页跟踪数据结构可被更新,以指示与存储在主存储器中的页的版本(其可被称为无效页)相比被修改的高速缓存中的页的版本的一个或多个部分。当高速缓存中的页的版本(其可被称为有效页)从高速缓存(例如,通过逐出)被去除时,高速缓存中的页的版本可被写入主存储器中的新页。高速缓存页跟踪数据结构可用于更新无效页映射数据结构,以跟踪主存储器中的页的无效版本中的有效数据和无效数据。
在写直达(write through)配置下,修改的数据可被写入高速缓存中的页,该页也可被写入主存储器中的新页。因此,包含修改的数据的页的有效版本可被存储在高速缓存和主存储器两者中。如果页的较早版本存在于主存储器中,则无效页映射数据结构可被更新,以指示与页的较早版本(其可被称为无效页)相比页的有效版本(在高速缓存和主存储器中)的一个或多个部分已经被修改。
本公开包含许多发明原理。在此公开的原理可具有独立的实用性并且可被单独体现,并且不是每个实施例可利用每个原理。此外,原理还可以以各种组合被体现,组合中的一些可以以协同的方式放大各个原理的一些益处。
图1示出根据公开的示例实施例的存储器设备的实施例。存储器设备102可包括存储器104和控制器106。控制器106可将数据的页的多个版本存储在存储器104中。例如,如图1中所示,控制器106可将数据的页的第一版本110a(称为版本A)存储在存储器104中。版本A可包括如由单对角线阴影所指示的可包括数据的页的部分的第一版本的部分0、1、2和3。
控制器106还可将数据的页的第二版本110b(称为版本B)存储在存储器104中。版本B可包括其中数据(或其相关部分)可分别与版本A的部分0、2和3中的数据实际上相同的部分0、2和3。然而,版本B的部分1可包括如由对角线交叉阴影所示的与版本A的部分1中的数据实际上不同的数据。例如,可通过修改版本A的部分1来创建数据的页的版本B。
控制器106可包括跟踪逻辑108,跟踪逻辑108可跟踪数据的页的第一版本110a(版本A)和/或数据的页的第二版本110b(版本B)中的数据的一个或多个部分中的数据(例如,数据的修改状态)。例如,跟踪逻辑108可使用数据结构(例如,映射表)来跟踪数据的页的版本A的哪些部分与版本B的相应部分实际上相同以及哪些部分实际上不同。
控制器106可接收访问(例如,读取)存储在存储器104中的数据的页的版本B的部分3的请求112。跟踪逻辑108可确定数据的页的版本A的部分3中的数据实际上与数据的页的版本B的部分3中的数据相同。因此,控制器106可通过访问数据的页的版本A并用对请求112的响应114来发送版本A的部分3(指示为110a-3)来服务请求112。
图1中示出的实施例不限于用于访问数据的页的特定版本的任何特定原因。然而,在一些实施例中,如果版本B比版本A相对不能够访问(例如,因为版本B可位于可能正在经历擦除操作、经历相对高的流量(traffic)、经历故障、断电等的存储器裸片、模块、卡、服务器、机架等上,所以具有相对长的延迟、具有相对高的功耗、具有相对低的带宽等),则控制器106和/或跟踪逻辑108可访问数据的页的版本A。
图1中示出的实施例不限于用于存储数据的页的版本110a和110b的任何特定次序、原因等。然而,在一些实施例中,存储器104可用非易失性存储器来实现,非易失性存储器可以以页为单位被访问(例如,写入和/或读取)并以可包括多个页的块为单位被擦除。版本A可以是存储在存储器104中的数据的页的较早版本,并且版本B可以是其中部分1已经用新数据更新的较晚版本。因为存储器104可以以页为单位被写入,所以版本B可被写入存储器104的新页以更新部分1。因此,版本A仍然可至少临时地存在于存储器104中,直到版本A例如通过垃圾收集处理被擦除。
图1中示出的实施例和/或其组件不限于任何特定形式或构造。例如,在一些实施例中,存储器设备102、存储器104和/或控制器106可至少部分地用一个或多个存储器装置(诸如,基于任何存储器技术的单独或堆叠的存储器裸片(例如,集成电路(IC)芯片))来实现,任何存储器技术包括易失性存储器(诸如,动态随机存取存储器(DRAM)和/或静态随机存取存储器(SRAM))、非易失性存储器(包括闪存、持久性存储器(诸如,交叉网格非易失性存储器)、具有体电阻变化的存储器、相变存储器(PCM)等)和/或它们的任何组合。在一些实施例中,任何这样的存储器可位于一个或多个模块、卡、服务器、机架等或它们的组合处。尽管跟踪逻辑108被示出为控制器106的一部分,但是跟踪逻辑108可被部分地或完全地实现为单独的组件和/或实现为另外的组件(诸如,存储器104或存储器设备102的任何其他组件)的一部分。
作为另一示例,在一些实施例中,存储器设备102、存储器104和/或控制器106可至少部分地用存储装置来实现,该存储装置可包括基于例如固态介质(例如,固态驱动器(SSD))、磁介质(例如,硬盘驱动器(HDD))、光学介质等或它们的任何组合的任何类型的非易失性存储介质。在一些实施例中,存储器设备102可至少部分地用基于非与(NAND)闪存、持久性存储器等或它们的任何组合的SSD来实现。任何这样的存储装置可使用任何连接器配置(诸如,SATA、SCSI、SAS、U.2、M.2等)以任何形状因子(诸如,3.5英寸、2.5英寸、1.8英寸、M.2、企业和数据中心SSD形状因子(EDSFF)、NF1等)来实现。任何这样的存储装置可完全或部分地用服务器机箱、服务器机架、数据室(dataroom)、数据中心、边缘数据中心、移动边缘数据中心和/或它们的任何组合来实现,和/或与服务器机箱、服务器机架、数据室(dataroom)、数据中心、边缘数据中心、移动边缘数据中心和/或它们的任何组合结合使用。在一些实施例中,例如,在主机计算机、服务器计算机(例如,计算服务器、存储服务器、网络服务器等)、节点(例如,存储节点、计算节点等)或它们的任何组合中,存储器设备102可至少部分地用位于电路板上的存储器控制器和/或一个或多个存储器装置、模块等来实现。
作为再一示例,存储器设备102、存储器104和/或控制器106可使用任何类型的有线和/或无线通信介质、接口、网络、互连、协议等进行通信,任何类型的有线和/或无线通信介质、接口、网络、互连、协议等包括***组件互连快速(PCIe)、非易失性存储器快速(NVMe)、结构上的NVMe(NVMe-oF)、计算快速链路(CXL)和/或一致性协议(诸如,CXL.mem、CXL.cache、CXL.IO等)、Gen-Z、开放一致性加速器处理器接口(OpenCAPI)、用于加速器的高速缓存一致性互连(CCIX)等、高级可扩展接口(AXI)、直接存储器访问(DMA)、远程DMA(RDMA)、融合以太网上的RDMA(ROCE)、高级消息排队协议(AMQP)、以太网、传输控制协议/互联网协议(TCP/IP)、光纤通道、无限带宽、串行ATA(SATA)、小型计算机***接口(SCSI)、串行附接SCSI(SAS)、iWARP、包括2G、3G、4G、5G、6G等的任何代的无线网络、任何代的Wi-Fi、蓝牙、近场通信(NFC)等或它们的任何组合。
出于说明的目的,可在一些示例实施方式细节(诸如,用能够以存储器模式进行操作的存储装置实现的存储器设备)的上下文中描述一些示例实施例。然而,发明原理不限于这些或任何其他实施方式细节。
图2示出根据公开的示例实施例的存储器访问方案的实施例。图2中示出的方案可包括主机216、存储器220和存储装置202。存储装置202可被实现为例如图1中示出的存储器设备102的实施例。主机216可使用通信接口224与存储装置202通信,通信接口224可例如用如上面关于图1中示出的实施例所描述的任何类型的互连、网络、接口、协议等来实现。
尽管通信接口224不限于任何特定实施方式细节,但是出于示出发明原理的目的,图2中示出的通信接口224可使用CXL.mem协议用CXL互连来实现。存储装置202可被配置为至少部分地以存储器模式(例如,CXL高速缓存一致性存储器模式)进行操作,其中,存储装置202中的一些或所有存储介质可作为使用CXL.mem协议的存储器(例如,存储级存储器)对主机216可访问。
主机216还可使用任何合适的存储器接口222与存储器220通信。例如,如果存储器220用DRAM实现,则存储器接口222可用双倍数据速率(DDR)规范的任何版本(例如,代)(包括DDR3、DDR4、DDR5或任何其他当前或未来版本)来实现。
主机216可包括存储器控制器218,存储器控制器218可实现存储器220和存储装置202中的存储介质可被分层级(tier)、高速缓存、缓冲等的存储器方案。
存储装置202可包括控制器206和任何类型和/或量的存储介质。出于说明的目的,存储装置202可包括布置在两个通道228-0和228-1(分别指示为通道0和通道1)中的四个NAND闪存芯片226-0至226-3(分别指示为芯片0至芯片3),并且控制器206可用闪存转换层(FTL)来实现。
控制器206可实现可将逻辑页码(LPN)映射到物理页码(PPN)的存储器方案。逻辑到物理映射可使控制器206能够实现基于页的存储器访问(例如,存储器可以以页为单位被写入和/或读取)和基于块的擦除(例如,存储器可以以块为多页单位被擦除)。
主机216处的存储器控制器218可请求以诸如可小于页的高速缓存行为单位的数据的存储器访问(例如,读取和/或写入)。因为存储器可以以页为单位被写入(例如,编程)到存储器芯片226-0至226-3,所以当控制器206更新(例如,修改)页的一部分(例如,页中的高速缓存行)时,控制器206可将包括更新的部分(例如,修改的高速缓存行)的数据的更新的页写入存储器的新页(其可被称为有效页)并使页的先前版本(其可被称为无效页)无效。
可例如通过垃圾收集处理来擦除无效页,在垃圾收集处理中,包含一个或多个无效页的块(例如,整个块)可被擦除。如果块包含任何有效页,则在块被擦除之前有效页可被移动到新块。
控制器206可包括高速缓存行跟踪逻辑208,高速缓存行跟踪逻辑208可跟踪无效页和/或无效页的部分(例如,高速缓存行),该部分可以是有效的和/或无效的(例如,未修改和/或修改的高速缓存行)。依据实施方式细节,高速缓存行跟踪逻辑208可使控制器206能够访问无效页中的有效数据。例如,控制器206可将数据的页的第一版本230存储在芯片3中。如果主机216处的存储器控制器218向控制器206发送用于更新存储于在页230中存储的一部分中的数据的写入请求(例如,用于修改高速缓存行的请求),则控制器206可将数据的页的第二版本232(包括修改的高速缓存行)存储在芯片0中。因此,存储在芯片0中的页的第二版本232可以是有效页,并且存储在芯片3中的页的第一版本230可以是无效页。高速缓存行跟踪逻辑208可跟踪(例如,使用跟踪数据结构)页的第一版本230和/或页的第二版本232的哪些部分(例如,高速缓存行)是有效的和/或无效的(例如,哪些高速缓存行未被修改和/或被修改)。
主机216处的存储器控制器218可向控制器206发送读取请求以读取存储在芯片0中的有效页232的部分234(例如,高速缓存行)。如果有效页232容易访问,则控制器206可从芯片0读取有效页232的部分234并向存储器控制器218发送部分234与响应。然而,在一些情况下,有效页232可能不容易访问。例如,有效页232和/或芯片0可能相对忙于I/O请求,或者如图2中所示芯片0可能正在经历擦除操作(例如,作为垃圾收集操作的一部分)。因此,控制器206可在从芯片0读取有效页232之前等待其他I/O流量和/或擦除操作完成。可选地或附加地,控制器206可暂时挂起擦除操作以从芯片0读取有效页232,并且在读取有效页之后恢复擦除操作,然而,这仍然可延迟读取有效页以及延迟可基于擦除操作的其他处理。
依据实施方式细节,高速缓存行跟踪逻辑208可确定无效页230(例如,页的第一版本)的部分236仍然可包含与有效页232(例如,页的第二版本)的所请求部分234对应的有效数据。例如,当控制器将更新的页232存储在芯片0中时,所请求的部分234可尚未被更新(例如,可尚未被修改)。因此,无效页230的部分236可具有与有效页232的部分234相同或实际上相同的数据。
在一些实施例中,不是等待存储在芯片0中的有效页232变得更容易能够访问,而是如虚线箭头238所示,控制器206和/或高速缓存行跟踪逻辑208可读取芯片3中的无效页230的部分236(例如,高速缓存行)并将部分236发送到主机216处的存储器控制器218。依据实施方式细节,这可减少与对读取请求进行响应相关联的延迟、功耗等。
主机216可用任何类型的设备(诸如,服务器(例如,计算服务器、存储服务器、网络服务器、云服务器等)、计算机(诸如,工作站、个人计算机、平板电脑、智能电话等)或它们的多个和/或组合)中的一个或多个来实现。
图3示出根据公开的示例实施例的数据高速缓存的实施例。数据高速缓存340可例如与图2中示出的存储器方案组合使用,以提供可至少最终被存储在存储装置202的存储介质(例如,诸如闪存的非易失性存储器)中的数据的高速缓存。数据高速缓存340可例如在图2中示出的存储装置202中实现。
参照图3,数据高速缓存340可例如用易失性存储器(例如,DRAM)来实现,易失性存储器(例如,DRAM)可以以可小于页的粒度(granularity)(诸如,字节、高速缓存行等)能够寻址。如图3中所示,存储在数据高速缓存340中的数据可被组织在逻辑页中,逻辑页可由逻辑页号(诸如,LPN1、LPN2、LPN5和/或LPN10)标识。页可包括由页的左列中的索引指示的一个或多个高速缓存行。
包含在高速缓存行中的数据的版本可由高速缓存行的右列中的阴影指示。在图3中示出的示例中,单对角线阴影可指示数据的第一版本,例如,当页首次被加载到数据高速缓存340中时可已经存在于高速缓存行中的数据。附加地或可选地,由单对角线阴影指示的数据的第一版本可指示在最后一次页被保存到非易失性存储器(例如,在存储设备的存储介质中)时存在于页中的数据。
修改的高速缓存行(例如,包含数据的第二版本(例如,数据的稍后版本)的高速缓存行)可由对角线交叉阴影指示。例如,如果自从页被首次加载以来、自从页最后被存储在非易失性存储器中以来等新数据已经被写入高速缓存行,则高速缓存行可被指示为修改。例如,在图3中示出的实施例中,在指示为LPN2的页中,高速缓存行00、02和/或03可包括未修改的数据,并且高速缓存行01和/或7F可包括修改的数据。
图3中示出的页和高速缓存行不限于任何特定实施方式细节(诸如,页、高速缓存行等的数量和/或大小)。然而,出于说明的目的,可用包含8192字节的页来实现示例实施例,该8192字节被划分为包含64字节的128个高速缓存行(编号00至7F)。
图4示出根据公开的示例实施例的缓冲页更新表的实施例。缓冲页更新表442可用于例如跟踪已经在存储在数据高速缓存(诸如,图3中示出的数据高速缓存340)中的页中更新的高速缓存行。缓冲页更新表442可例如在图2中示出的高速缓存行跟踪逻辑208中实现。在一些实施例中,缓冲页更新表442可用于跟踪被配置用于利用CXL.mem协议的操作的数据高速缓存中的缓冲的高速缓存行。
参照图4,缓冲页更新表442可被实现为例如散列(hash)表,并且可包括与存储在数据高速缓存中的一个或多个页对应的一个或多个条目(例如,水平行)。条目可包括数据高速缓存中的相应页的页标识符(例如,LPN)和用于记录相应页中的哪些高速缓存行已经被修改的位图。例如,缓冲页更新表442的顶行可在第一列中包括标识符LPN2以指示它可跟踪LPN2中的修改的高速缓存行,并且在随后的列中包括位图。在图4中示出的示例中,逻辑1可指示未修改的高速缓存行,并且逻辑0可指示修改的高速缓存行。尽管缓冲页更新表442不限于任何特定实施方式细节,但是在图4中示出的示例中,条目可包括具有128位(00至7F)的位图,128位(00至7F)对应于图3中示出的数据高速缓存340中的页中的高速缓存行的数量。
缓冲页更新表442可使用任何类型的存储器和/或持久性方案来实现。例如,在一些实施例中,缓冲页更新表442可在存储装置中的DRAM中实现,并且可在运行时被创建。在数据高速缓存被保存到非易失性存储器(例如,在断电事件)的实施例中,缓冲页更新表442也可被保存到非易失性存储器。
例如,当相应页从数据高速缓存被逐出时,条目可从缓冲页更新表442被去除。可选地或附加地,当条目的位图中的未修改的高速缓存行的数量下降到阈值以下时,条目可从缓冲页更新表442被去除。
在一些实施例中,缓冲页更新表442可用于在回写高速缓存方案中跟踪针对高速缓存的页的修改的和未修改的高速缓存行,在回写高速缓存方案中,更新的页可仅基于一个或多个特定事件(诸如,页从高速缓存被逐出、断电事件等)被存储在主存储器(例如,非易失性存储器)中。
图5示出根据公开的示例实施例的无效页映射表的实施例。无效页映射表544可用于例如跟踪在可被存储在主存储器(例如,非易失性存储器)中的物理页中的页的无效版本(例如,最近无效的页)中仍然有效的高速缓存行,并且可对应于也可被存储在主存储器中的更新的逻辑页(例如,有效页)。无效页映射表544可例如在图2中示出的高速缓存行跟踪逻辑208中实现。在一些实施例中,无效页映射表544可用于跟踪被配置用于利用CXL.mem协议的操作的数据高速缓存中的先前缓冲的高速缓存行。
参照图5,无效页映射表544可被实现为例如散列表,并且可包括与一个或多个物理页(例如,无效页)对应的一个或多个条目(例如,水平行),该一个或多个物理页(例如,无效页)可被映射到一个或多个相应的逻辑页(例如,相应的有效页)。因此,条目可包括有效页的页标识符(例如,LPN)和相应无效页的页标识符(例如,PPN)。条目还可包括用于记录有效页中的哪些高速缓存行相对于无效页已经被修改的位图。例如,无效页映射表544的顶行可在第一列中包括标识符LPN2并且在第二列中包括标识符PPN2,以指示PPN2处的页可以是被标识为LPN2的页的无效版本。一些实施例可包括附加页映射表,附加页映射表可将被标识为LPN2的页的有效版本映射到存储在另外的物理页中的有效版本。在图5中示出的示例中,在顶行中的条目的位图列中(指示为00至7F),逻辑1可指示页的有效版本中的相应高速缓存行相对于页的无效版本中的相应高速缓存行尚未被修改,因此,页的无效版本中的相应高速缓存行是有效的。逻辑0可指示页的有效版本中的相应高速缓存行相对于页的无效版本中的相应高速缓存行已经被修改,因此,页的无效版本中的相应高速缓存行是无效的。
在一些实施例中,无效页映射表544可记录被映射到相应逻辑页(例如,LPN2)的最近无效的物理页(例如,PPN2)。在一些实施例中,可使用可从表去除较旧条目的最近最少使用(least recently used,LRU)策略来保持无效页映射表544。一些实施例可例如通过去除其中未修改的高速缓存行的数量小于阈值的逻辑页和/或物理页的条目来限制表的大小。因此,在一些实施例中,无效页映射表544被部分地、主要地或仅用于存储器的活动区域(其可被称为存储器的热区域(hot region))。在一些实施例中,条目可基于使用的新近度(recency)、使用的频率等而被选择用于从无效页映射表544包括和/或去除。在一些实施例中,条目可基于一个或多个机器学习(ML)算法而被选择用于从无效页映射表544包括和/或去除。
尽管无效页映射表544不限于任何特定实施方式细节,但是在图5中示出的示例中,条目可包括具有128位(00至7F)的位图,128位(00至7F)对应于图3中示出的数据高速缓存中的页中的高速缓存行的数量。无效页映射表544可使用任何类型的存储器和/或持久性方案来实现。例如,在一些实施例中,无效页映射表544可在易失性存储器(诸如,存储装置中的DRAM)中实现,并且可在运行时被创建。在数据高速缓存被保存到非易失性存储器(例如,在断电事件)的实施例中,无效页映射表544也可被保存到非易失性存储器。
图6A示出根据公开的示例实施例的在与写入操作相关的第一状态下的存储器设备的示例实施例。图6B示出根据公开的示例实施例的在与写入操作相关的第二状态下的图6A中示出的存储器设备的示例实施例。图6A和图6B共同地示出根据公开的示例实施例的写入操作,并且可共同地和/或单独地称为图6。图6中示出的实施例可例如使用在此公开的任何设备(包括上面图1至图5中示出的设备)来实现。
参照图6A,存储器设备可包括主机616和存储装置602。主机616和存储装置602可被配置为例如使用CXL接口进行通信,在CXL接口中,存储装置602可被配置为至少部分地以存储器模式(例如,CXL高速缓存一致性存储器模式)进行操作,其中,存储装置602中的存储介质中的一些或全部可作为使用CXL.mem协议的存储器(例如,存储级存储器)能够访问主机616。
存储装置602可包括数据高速缓存640、介质转换层606、物理层(PHY)646以及布置在一个或多个通道628_0和628-1(指示为Ch_0和Ch_1)中的一个或多个存储器芯片626-0至626-3(指示为芯片0至芯片3)。数据高速缓存640可例如使用易失性存储器(诸如,DRAM)来实现,并且可被配置为存储可包括一个或多个高速缓存行的数据的页。介质转换层606可执行与在从主机接收和/或发送到主机的格式与可适合于用于存储器通道Ch_0和Ch_1的底层存储介质的格式之间转换数据相关的一个或多个功能。例如,如果存储器芯片626-0至626-3用闪存(例如,NAND闪存)实现,则介质转换层606可被实施为闪存转换层。介质转换层606可包括页映射表650,页映射表650可将数据的有效页的LPN映射到存储器的PPN,存储器的PPN可使用LPN作为索引来存储数据的有效页。介质转换层606还可包括缓冲页更新表642和/或无效页映射表644,缓冲页更新表642和/或无效页映射表644可例如类似于上面关于图4和图5描述的那些。在一个实施例中,页的第一版本的修改状态可基于页映射表650、缓冲页更新表642和/或无效页映射表644来确定。
物理层646可实现介质转换层606与存储器芯片626-0至626-3之间的物理接口。
出于说明的目的,图6中示出的实施例可用具有六个高速缓存行的页被示出,但是发明原理不限于这些或任何其他实施方式细节。在在此示出的实施例中,用相同类型的阴影(例如,单对角线阴影、对角线交叉阴影、垂直和水平交叉阴影等)示出的高速缓存行和/或页可包括数据的相同或相似版本。
图6A示出设备在写入操作之前的初始状态。图6B示出设备在写入操作之后的状态。参照图6A,指示为LPN2的数据的页的第一版本可被存储在数据高速缓存640中。LPN2可包括指示为0至5的六个高速缓存行。六个高速缓存行可包括如由单对角线阴影指示的数据的第一版本。指示为LPN2的数据的页的第一版本还可被存储在芯片3中指示为PPN2的物理页中。因此,在写入操作之前的初始状态下,页映射表650可包括可将LPN2映射到PPN2的条目。在该示例中,可不存在存储在存储装置602中的LPN2的无效版本,因此,无效页映射表644可不具有LPN2的条目。
因为指示为LPN2的数据的页被存储在数据高速缓存640中,所以缓冲页更新表642可包括LPN2的条目。因为数据高速缓存640中被指示为LPN2的数据的页的版本被写入高速缓存,或者因为数据高速缓存640中被指示为LPN2的数据的页的版本被存储到芯片3,所以数据高速缓存640中被指示为LPN2的数据的页的版本可尚未被更新,因此,在写入操作之前的初始状态下,缓冲页更新表642中的LPN2的位图可包括全1,以指示没有高速缓存行已经被修改。
此外,在写入操作之前的初始状态下,主机616可包括具有用对角线交叉阴影示出的更新数据的高速缓存行648,主机可将该更新数据发送到存储装置602以修改LPN2的高速缓存行1(其可被称为目标高速缓存行)。
写入操作可包括指示为操作(1)至操作(6)的任何数量的以下操作。操作编号出于标识操作的目的而被提供,并且不一定指示操作可被执行的次序。因此,在一些实施例中,可改变操作的次序,可省略一个或多个操作,并且可包括一个或多个附加操作。此外,尽管关于图6A和图6B描述的操作中的一个或多个可被描述为由介质转换层606执行,但是在一些实施例中,操作中的一个或多个可由任何其他设备(诸如,存储装置控制器、通信接口、NVMe控制器等)执行。
(1)主机616可向存储装置602发送写入请求以及LPN2的更新的高速缓存行1。在图6A中示出的示例中,页LPN2已经存在于数据高速缓存640中,这可被称为高速缓存命中(hit)。可选地,如果LPN2不存在于数据高速缓存640中(这可被称为高速缓存未命中(miss)),则缓冲页更新表642可不包括LPN2的条目。在高速缓存未命中的情况下,介质转换层606可搜索页映射表650以找到与LPN2对应的物理页(在该示例中为PPN2)。介质转换层606可从存储介质(在该示例中为芯片3)读取物理页PPN2,将页加载到数据高速缓存640中,并且将LPN2的条目放置在缓冲页更新表642中。
(2)如图6B中所示,介质转换层606可将更新的高速缓存行1数据(用对角线交叉阴影示出)写入数据高速缓存640中的LPN2的高速缓存行1中。
(3)介质转换层606可清除(例如,变为逻辑0)如图6B中所示的缓冲页更新表642中的LPN2的条目的位图部分中的与高速缓存行1对应的位,以指示高速缓存行1是修改的高速缓存行。
(4)介质转换层606可将包括修改的高速缓存行1(如由对角线交叉阴影所指示)的更新的有效页LPN2写入新物理页(例如,如图6B中所示的芯片0中的PPN4)中。
(5)介质转换层606可搜索页映射表650以确定页映射表650是否包括LPN2的条目,LPN2的条目可指示LPN2的较早版本被存储在存储装置602中。在该示例中,将LPN2映射到PPN2的条目的存在可指示LPN2的较早版本被存储在芯片3中的PPN2中。存储在芯片3中的PPN2中的LPN2的较早版本可变成无效页,因此,如图6B中所示,介质转换层606可将LPN2的条目放置在无效页映射表644中。LPN2的条目可将LPN2映射到第二列中的PPN2,以指示芯片3中的PPN2可变成LPN2的无效版本。
无效页映射表644中的LPN2的条目的位图部分可包括高速缓存行1的位置中的逻辑0,以指示PPN2中的高速缓存行1可对应于存储在芯片0中的PPN4中的LPN2的有效版本中的修改的高速缓存行1,因此,芯片3中的PPN2中的高速缓存行1中的数据可以是无效的(如由图6B中的X所示)。无效页映射表644中的LPN2的条目的位图部分可包括高速缓存行0、2、3、4和/或5的位置中的逻辑1,以指示存储在芯片3中的PPN2中的这些高速缓存行可对应于存储在芯片0中的PPN4中的LPN2的有效版本中的未修改的高速缓存行,因此,PPN2中的高速缓存行0、2、3、4和/或5中的数据可以是有效的(如由图6B中的单对角线阴影所示)。
(6)如图6B中所示,介质转换层606可更新页映射表650中的LPN2的条目,以将LPN2映射到存储在芯片0中的PPN4中的LPN2的有效版本。
因此,在图6B中示出的写入操作之后,LPN2的有效版本(包括修改的高速缓存行1)可存在于数据高速缓存640和芯片0中的PPN4两者中,缓冲页更新表642可指示LPN2的高速缓存行1已经被修改,页映射表650可将LPN2映射到存储在芯片0中的PPN4中的LPN2的有效版本,和/或无效页映射表644可指示存储在PPN2中的LPN2的无效版本可包括与LPN2的有效版本的未修改的高速缓存行对应的高速缓存行0、2、3、4和/或5中的有效数据。依据实施方式细节,例如,如果具有所请求的高速缓存行的页的有效版本不容易访问,这可使得介质转换层606能够快速地确定所请求的高速缓存行的有效版本在无效页中可用。
在一些实施例中,如果数据高速缓存640被配置用于回写操作,则在完成操作(1)至操作(3)之后,LPN2的条目可从页映射表650被去除,并且写入操作可被认为完成。图6中示出的设备可不采取进一步的动作,直到例如LPN2从数据高速缓存640被逐出为止,此时,介质转换层606可执行操作(4)至操作(6)中的一个或多个以将逐出的页存储在存储介质中,并且如果LPN2的无效版本被存储在存储装置602中,则跟踪无效页的位置和/或无效页中有效数据的存在。
图7示出根据公开的示例实施例的用于存储器设备操作的写入操作的方法的示例实施例。图7中示出的实施例可例如使用在此公开的任何设备(包括上面图1至图6中示出的设备)来实现。
参照图7,该方法可在操作751开始,在操作751,存储器设备可(例如,从主机)接收用于将更新的高速缓存行写入数据高速缓存中的页的请求。在操作752,该方法可确定具有所请求的高速缓存行的页是否存在于数据高速缓存中(例如,是否存在高速缓存命中)。如果存在高速缓存命中,则该方法可进行到操作756。然而,如果页不存在于数据高速缓存中(例如,存在高速缓存未命中),则该方法可进行到操作753,在操作753,可从主存储器(例如,存储装置中的非易失性存储器)读取具有所请求的高速缓存行的页。
在操作754,该方法可确定数据高速缓存是否已满。如果数据高速缓存未满,则该方法可进行到操作756。然而,如果在操作754数据高速缓存已满,则该方法可进行到操作755,在操作755,可从数据高速缓存逐出页。在一些实施例中,可基于LRU策略、页中的未修改的高速缓存行的数量等来选择页用于逐出。例如,在一些实施例中,如果页具有相对低的数量的未修改的高速缓存行(例如,最少数量的未修改的高速缓存行)(这可指示与选择的页对应的一个或多个无效页可包括相对少量的有效数据),则可选择该页用于逐出。该方法可进行到操作756。
在操作756,该方法可将更新的高速缓存行写入数据高速缓存中的页。在操作757,该方法可更新缓冲页更新表,例如,以指示数据高速缓存中的页的高速缓存行已经被修改。该方法可进行到操作758,在操作758,该方法可确定数据高速缓存是否被配置用于写直达或写回操作。如果数据高速缓存未被配置用于回写操作,则该方法可进行到操作761。
然而,如果数据高速缓存被配置用于写直达操作,则该方法可进行到操作759,在操作759,可将数据高速缓存中的更新的页写入主存储器(例如,存储装置中的非易失性存储器)中的新物理页。在一些实施例中,页映射表可被更新,以将更新的页的LPN映射到新的有效物理页的PPN。在操作760,可更新无效页映射表以指示更新的页的无效版本可被存储在主存储器中,并且指示与页的有效版本中的修改的高速缓存行对应的页的无效版本的高速缓存行可包含无效数据。该方法可进行到操作761,在操作761,存储器设备可将响应(例如,完成、错误等)返回到主机。
图8A示出根据公开的示例实施例的在与逐出操作相关的第一状态下的存储器设备的示例实施例。图8B示出根据公开的示例实施例的在与逐出操作相关的第二状态下的图8A中示出的存储器设备的示例实施例。图8A和图8B共同地示出根据公开的示例实施例的逐出操作,并且可共同地和/或单独地称为图8。图8中示出的实施例可例如使用在此公开的任何设备(包括上面图1至图6中示出的设备)来实现。
在一些方面,图8A和图8B中示出的实施例可类似于图6A和图6B中示出的实施例,并且相似的组件可用以相同数字结尾的附图标记来标识。因此,图8A和图8B中示出的实施例可包括主机816和存储装置802,存储装置802可包括数据高速缓存840、介质转换层806、物理层846以及布置在一个或多个通道828-0和828-1(指示为Ch 0和Ch 1)中的一个或多个存储器芯片826-0至826-3(指示为芯片0至芯片3)。介质转换层806可包括页映射表850、缓冲页更新表842和/或无效页映射表844,页映射表850、缓冲页更新表842和/或无效页映射表844可例如类似于上面关于图6A和图6B描述的那些。此外,主机816和存储装置802可被配置为例如使用CXL接口进行通信,在CXL接口中,存储装置802可被配置为至少部分地以存储器模式(例如,CXL高速缓存一致性存储器模式)进行操作,其中,存储装置802中的存储介质中的一些或全部可作为使用CLX.mem协议的存储器(例如,存储级存储器)能够访问主机816。
图8A示出存储器设备在数据高速缓存逐出操作之前的初始状态。图8B示出存储器设备在数据高速缓存逐出操作之后的状态。参照图8A,指示为LPN2的数据的页可被存储在数据高速缓存840中。存储在数据高速缓存840中的页LPN2可包括不同的三个版本的数据:高速缓存行0可包括由对角线交叉阴影指示的数据的版本,高速缓存行1可包括由垂直和水平交叉阴影指示的数据的版本,并且高速缓存行2至5可包括由单对角线阴影指示的数据的版本。
页映射表850可将LPN2映射到存储在芯片0中的物理页PPN4,物理页PPN4可包括存储在数据高速缓存840中的LPN2中的数据的页的不同版本。存储在芯片0中的物理页PPN4中的高速缓存行可包括两个版本的数据:高速缓存行0至1可包括由垂直和水平交叉阴影指示的数据的版本,并且高速缓存行2至5可包括由单对角线阴影指示的数据的版本。
缓冲页更新表842可包括具有位图部分的LPN2的条目,该位图部分指示LPN2中的高速缓存行0可相对于PPN4中的高速缓存行0被修改(由逻辑0指示),并且LPN2中的高速缓存行1至5可相对于PPN4中的高速缓存行1至5被修改(由逻辑1指示)。因为PPN4包括已相对于LPN2修改的高速缓存行(高速缓存行0),所以PPN4可被认为是无效页。然而,因为PPN4中的高速缓存行1至5可包括实际上与LPN2的相应未修改的高速缓存行中的数据相同的数据,所以PPN4中的高速缓存行1至5可包含有效数据。
无效页映射表844可包括可将LPN2映射到存储在芯片2中的物理页PPN2的条目。存储在芯片2中的物理页PPN2可包括不同的三个版本的数据:高速缓存行0可包括由垂直和水平交叉阴影指示的数据的版本,高速缓存行1可包括由点指示的数据的版本,并且高速缓存行2至5可包括由单对角线阴影指示的数据版本。因此,因为PPN2中的高速缓存行0至1可包括可实际上与LPN2中的相应修改的高速缓存行0至1中的数据不同的数据,所以无效页映射表844中的LPN2的条目可包括位图部分,该位图部分指示PPN2中的高速缓存行0至1可以是无效的(由逻辑0指示)。因此,芯片2中的PPN2可被认为是无效页。因为PPN2中的高速缓存行2至5可包括实际上与存储在数据高速缓存840中的LPN2中的相应修改的高速缓存行2至5中的数据相同的数据,所以LPN2的条目的位图部分还可指示PPN2中的高速缓存行2至5可以是有效的(由逻辑1指示)。
例如,因为数据高速缓存840中的页LPN2可包括相对于芯片0中的PPN4中的页的最近存储版本已经修改的高速缓存行(在该示例中,高速缓存行0),所以数据高速缓存840中的页LPN2可被认为是脏页(dirty page)。
页LPN2可被逐出,例如,以在数据高速缓存840中为其他数据的页制造空间。例如,可基于LRU策略、页中的未修改的高速缓存行的数量等来选择页LPN2用于逐出。例如,在一些实施例中,因为LPN2可具有相对低的数量的未修改的高速缓存行,所以LPN2可被选择用于逐出。
逐出操作可包括指示为操作(1)至操作(6)的任何数量的以下操作。操作编号出于标识操作的目的而被提供,并且不一定指示操作可被执行的次序。因此,在一些实施例中,可改变操作的次序,可省略一个或多个操作,并且可包括一个或多个附加操作。此外,尽管关于图8A和图8B描述的操作中的一个或多个可被描述为由介质转换层806执行,但是在一些实施例中,操作中的一个或多个可由任何其他设备(诸如,存储装置控制器、通信接口、NVMe控制器等)执行。
(1)介质转换层806可选择存储在数据高速缓存840中的指示为LPN2的数据的页用于逐出。
(2)如图8B中所示,介质转换层806可在无效页映射表844中定位LPN2的条目,并且更新该条目以将LPN2映射到芯片0中的无效物理页PPN4。
(3)如图8B中所示,介质转换层806可在缓冲页更新表842中定位LPN2的条目的位图部分,并且使用该位图部分来更新无效页映射表844中的LPN2的条目的位图部分。因为PPN4中的高速缓存行0可包括可实际上与LPN2中的相应修改的高速缓存行0中的数据不同的数据,所以更新的位图部分可指示PPN4中的高速缓存行0可以是无效的(由逻辑0指示),并且因为PPN4中的高速缓存行1至5可包括可实际上与LPN2中的相应未修改的高速缓存行1至5中的数据相同的数据,所以PPN4中的高速缓存行1至5可以是有效的(由逻辑1指示)。
(4)如图8B中所示,介质转换层806可通过将脏页LPN2写入芯片3中的新物理页PPN5并从缓冲页更新表842去除LPN2的条目来从数据高速缓存840逐出脏页LPN2。
(5)介质转换层806可更新页映射表850以将LPN2映射到芯片3中的PPN5。因此,如图8B中所示,LPN2可不再被映射到芯片2中的物理页PPN2。
(6)芯片2中的物理页PPN2可被标记用于擦除和/或垃圾收集。
因此,在图8A和图8B中示出的逐出操作之后,指示为LPN2的数据的页可从数据高速缓存840被去除,页映射表850可将LPN2映射到存储在芯片3中的物理页PPN5中的页的有效版本,页的无效版本可被存储在芯片0中的物理页PPN4中,并且无效页映射表844可包括这样的条目:将LPN2映射到无效页PPN4并指示PPN4的高速缓存行0可包含与PPN5中的修改的高速缓存行0对应的无效数据、但PPN4的高速缓存行1至5可包括与PPN5中的未修改的高速缓存行1至5对应的有效数据。
图9示出根据公开的示例实施例的用于存储器设备操作的逐出操作的方法的示例实施例。图9中示出的实施例可例如使用在此公开的任何设备(包括上面图1至图6和图8中示出的设备)来实现。
参照图9,该方法可在操作962开始,在操作962,存储器设备可选择用于从数据高速缓存逐出的页。例如,如果页具有相对低的数量的未修改的高速缓存行(例如,最少数量的未修改的高速缓存行)(这可指示与选择的页对应的一个或多个无效页可包括相对少量的有效数据),则该页可被选择,因此,如果相应的有效页不容易访问用于读取操作,则可能相对不太可能用作有效数据的替代源。
在操作963,该方法可将逐出的页写入主存储器(例如,存储装置中的非易失性存储器)中的新物理页。在操作964,该方法可更新无效页映射表中的逐出的页的条目,例如,以将逐出的页的LPN映射到页的无效版本的PPN。逐出的页的条目也可被更新,以指示无效页中的一个或多个高速缓存行,无效页中的一个或多个高速缓存行可对应于逐出的页中的未修改的高速缓存行,因此逐出的页的条目可包括有效数据。在操作965,该方法可从缓冲页更新表去除逐出的页的条目。
图10A示出根据公开的示例实施例的在与读取操作相关的第一状态下的存储器设备的示例实施例。图10B示出根据公开的示例实施例的在与读取操作相关的第二状态下的图10A中示出的存储器设备的示例实施例。图10A和图10B共同地示出根据公开的示例实施例的读取操作,并且可共同地和/或单独地称为图10。图10中示出的实施例可例如使用在此公开的任何设备(包括上面图1至图6中示出的设备)来实现。
在一些方面,图10A和图10B中示出的实施例可类似于图6A和图6B中示出的实施例,并且相似的组件可用以相同数字结尾的附图标记来标识。因此,图10A和10B中示出的实施例可包括主机1016和存储装置1002,存储装置1002可包括数据高速缓存1040、介质转换层1006、物理层1046以及布置在一个或多个通道1028-0和1028-1(指示为Ch 0和Ch 1)中的一个或多个存储器芯片1026-0至1026-3(指示为芯片0至芯片3)。介质转换层1006可包括页映射表1050、缓冲页更新表1042和/或无效页映射表1044,页映射表1050、缓冲页更新表1042和/或无效页映射表1044可例如类似于上面关于图6A和图6B描述的那些。此外,主机1016和存储装置1002可被配置为例如使用CXL接口进行通信,在CXL接口中,存储装置1002可被配置为至少部分地以存储器模式(例如,CXL高速缓存一致性存储器模式)进行操作,其中,存储装置1002中的存储介质中的一些或全部可作为使用CLX.mem协议的存储器(例如,存储级存储器)能够访问主机1016。
图10A示出存储器设备在数据高速缓存逐出操作之前的初始状态。图10B示出存储器设备在数据高速缓存逐出操作之后的状态。参照图10A,页映射表1050可包括可将逻辑页LPN2映射到存储在芯片0中的物理页PPN4中的页的有效版本的条目。无效页映射表1044可包括还可将LPN2映射到存储在芯片3中的物理页PPN2中的页的无效版本的条目。
因为PPN2中的高速缓存行0和2至5可实际上可与存储在芯片0中的PPN4中的页的有效版本中的相应未修改的高速缓存行0和2至5中的数据相同,所以无效页映射表1044中的LPN2的条目的位图部分可指示PPN2中的高速缓存行0和2至5可包括可有效的数据(由逻辑1指示)。因为PPN2中的高速缓存行1可实际上不同于存储在芯片0中的PPN4中的页的有效版本中的相应修改的高速缓存行1中的数据,所以无效页映射表1044中的LPN2的条目的位图部分还可指示PPN2中的高速缓存行1可包括可无效的数据(由逻辑0指示)。这在图10A中可视地示出,在图10A中,PPN2和PPN4两者中的高速缓存行0和2至5用由单对角线阴影指示的数据的版本被示出,PPN4中的高速缓存行1用由对角线交叉阴影指示的数据的版本被示出,并且PPN2中的高速缓存行1被示出为由X指示的无效。
读取操作可包括指示为操作(1)至操作(8)的任何数量的以下操作。操作编号出于标识操作的目的而被提供,并且不一定指示操作可被执行的次序。因此,在一些实施例中,可改变操作的次序,可省略一个或多个操作,并且可包括一个或多个附加操作。此外,尽管关于图10A和图10B描述的操作中的一个或多个可被描述为由介质转换层1006执行,但是在一些实施例中,操作中的一个或多个可由任何其他设备(诸如,存储装置控制器、通信接口、NVMe控制器等)执行。
(1)存储装置1002可从主机1016接收从逻辑页LPN2读取高速缓存行2的请求。(2)如果LPN2被存储在数据高速缓存1040中,则存储装置1002可从数据高速缓存1040中的LPN2读取高速缓存行,并向主机1016发送包括来自LPN2的高速缓存行2的响应。
(3)如果LPN2未被存储在数据高速缓存1040中,则介质转换层1006可搜索页映射表1050以定位LPN2可被存储在其中的芯片0中的有效物理页PPN4。
(4)如图10A中的边界框1066所示,例如,因为PPN4可被存储在其中的芯片0可能忙于正在进行的擦除和/或垃圾收集操作、相对繁重的I/O流量等,所以介质转换层1006可确定PPN4可被存储在其中的芯片0可能不容易访问。
(5)介质转换层1006可在无效页映射表1044搜索LPN2的条目。LPN2的条目可指示LPN2的无效版本可被存储在芯片3中的物理页PPN2中。无效页映射表1044中的LPN2的条目的位图部分可指示存储在芯片3中的物理页PPN2中的页LPN2的无效版本可包括高速缓存行2的有效版本(由位图中的逻辑1指示)。例如,因为PPN2中的高速缓存行2可对应于存储在芯片0中的PPN4中的LPN2的有效版本中的未修改的高速缓存行2,所以PPN2中的高速缓存行2可以是有效的。
(6)(例如,因为芯片3可没有正在经历擦除和/或垃圾收集操作,可不忙于相对繁重的I/O操作等,所以)介质转换层1006可确定芯片3比芯片0更容易访问。
(7)如图10B中所示,因为存储在芯片3中的物理页PPN2中的页LPN2的无效版本可包括所请求的高速缓存行2的有效版本,并且芯片3可比芯片0更容易访问,所以介质转换层1006可读取存储于在芯片3中存储的物理页PPN2中的页LPN2的无效版本,并将页LPN2的无效版本加载到数据高速缓存1040中。
(8)如图10B中所示,存储装置1002可读取存储在数据高速缓存1040中的LPN2的高速缓存行2中的有效数据,并响应于读取请求将LPN2的高速缓存行2中的有效数据发送到主机1016。
依据实施方式细节,如上面关于图10A和图10B描述的适时地从数据的页的无效版本读取有效高速缓存行可减少与从相对不可访问的页读取数据相关联的延迟和/或功耗。此外,如上面关于图10A和图10B描述的适时地从数据的页的无效版本读取有效高速缓存行可使得能够在不挂起擦除操作的情况下读取高速缓存行,这可减少可访问正在被擦除的芯片的其他处理的延迟。此外,依据实施方式细节,在此公开的技术可对可在其中实现它的存储装置的耐久性、可靠性、寿命等具有很小的影响或没有影响。
图11示出根据公开的示例实施例的用于存储器设备操作的读取操作的方法的示例实施例。图11中示出的实施例可例如使用在此公开的任何设备(包括上面图1至图6、图8和/或图10中示出的设备)来实现。
参照图11,该方法可在操作1168开始,在操作1168,存储器设备可接收用于从数据的逻辑页读取高速缓存行的读取请求。在操作1169,该方法可例如使用页映射表来定位所请求的高速缓存行可被存储在其中的有效物理页。在操作1170,该方法可确定所请求的高速缓存行被存储在其中的有效物理页是否忙碌(例如,具有擦除操作、其他I/O流量等)。如果有效页位于未正被擦除的芯片上,并且有效页和/或有效页所在的芯片不忙于相对高的I/O流量,则该方法可在操作1175将有效页加载到数据高速缓存中并进行到操作1174。
然而,如果在操作1170该方法确定有效物理页所在的芯片正在被擦除,或者有效页和/或有效页所在的芯片忙于相对高的I/O流量,则该方法可尝试避免经历擦除的页和/或可尝试通过尝试从可包括所请求的高速缓存行的有效版本的无效页读取所请求的高速缓存行来实现负载平衡。因此,该方法可进行到操作1171,在操作1171,该方法可确定逻辑页的无效版本是否包括所请求的高速缓存行的有效版本。如果在操作1172,该方法不能在页的无效版本中定位所请求的高速缓存行的有效版本,则该方法可在操作1175将有效页加载到数据高速缓存中并进行到操作1174。然而,如果在操作1172该方法能够在页的无效版本中定位所请求的高速缓存行的有效版本,则该方法可在操作1173将无效页加载到数据高速缓存中并进行到操作1174。
在操作1174,该方法可从数据高速缓存中的页读取所请求的高速缓存行。存储器设备可向高速缓存行发送对读取请求的响应。
图12A示出根据公开的示例实施例的在与垃圾收集操作相关的第一状态下的存储器设备的示例实施例。图12B示出根据公开的示例实施例的在与垃圾收集操作相关的第二状态下的图12A中示出的存储器设备的示例实施例。图12A和图12B共同地示出根据公开的示例实施例的垃圾收集操作,并且可共同地和/或单独地称为图12。图12中示出的实施例可例如使用在此公开的任何设备(包括上面图1至图6、图8和/或图10中示出的设备)来实现。
在一些方面,图12A和图12B中示出的实施例可类似于图6A和图6B中示出的实施例,并且相似的组件可用以相同数字结尾的附图标记来标识。因此,图12A和图12B中示出的实施例可包括主机1216和存储装置1202,存储装置1202可包括数据高速缓存1240、介质转换层1206、物理层1246以及布置在一个或多个通道1228-0和1228-1(指示为Ch 0和Ch 1)中的一个或多个存储器芯片1226-0至1226-3(指示为芯片0至芯片3)。介质转换层1206可包括页映射表1250、缓冲页更新表1242和/或无效页映射表1244,页映射表1250、缓冲页更新表1242和/或无效页映射表1244可例如类似于上面关于图6A和图6B描述的那些。此外,主机1216和存储装置1202可被配置为例如使用CXL接口进行通信,在CXL接口中,存储装置1202可被配置为至少部分地以存储器模式(例如,CXL高速缓存一致性存储器模式)进行操作,其中,存储装置1202中的存储介质中的一些或全部可作为使用CLX.mem协议的存储器(例如,存储级存储器)能够访问主机1216。
图12A示出存储器设备在垃圾收集操作之前的初始状态。图12B示出存储器设备在垃圾收集操作之后的状态。参照图12A,页映射表1250可包括LPN2的条目,LPN2的条目可将逻辑页LPN2映射到存储在芯片1中的有效物理页PPN4。无效页映射表1244还可将逻辑页LPN2映射到存储在芯片2中的无效物理页PPN2。
在一些实施例中,如果任何有效页被存储在芯片2中,则存储装置1202可通过将有效页移动到不同的芯片来发起垃圾收集操作。如由边界框1266所示,在移动任何有效页之后,存储装置1202可对芯片2发起擦除操作。因此,如图12B中所示,无效页PPN2可从芯片2被擦除。如图12B中所示,介质转换层1206可从无效页映射表1244去除PPN2的条目。
图13示出根据公开的示例实施例的具有布置在超级块中的页的存储器设备的示例实施例。在一些方面中,图13中示出的实施例可类似于图8B中示出的实施例,并且相似的组件可用以相同数字结尾的附图标记来标识。然而,在图13中示出的实施例中,芯片0至芯片3中的页可布置在指示为超级块0和超级块1的超级块中。存储在芯片0中的物理页PPN4(其可以是超级块0的一部分)可以是在从数据高速缓存1340逐出LPN2之前写入非易失性存储器的页LPN2的最新版本。当LPN2从数据高速缓存1340被逐出时,将新的有效页写入与最新无效页相比不同芯片上的不同超级块(例如,超级块1中的芯片3)中的物理页PPN5可防止正在进行的对超级块的擦除操作阻止对属于该超级块的一个或多个芯片的访问。依据实施方式细节,这可避免或消除在从无效页读取有效高速缓存行时由等待擦除操作引起的延迟。
在此描述的任何功能(包括任何的主机功能、功能上的存储器设备等(例如,控制器、跟踪逻辑、高速缓存行跟踪等))可用执行存储在任何类型的存储器中的指令的硬件、软件、固件或它们的任何组合(包括例如硬件和/或软件组合逻辑、顺序逻辑、定时器、计数器、寄存器、状态机、易失性存储器(诸如,动态随机访问存储器(DRAM)和/或静态随机访问存储器(SRAM))、非易失性存储器(包括闪存、持久性存储器(诸如,交叉网格非易失性存储器)、具有体电阻变化的存储器、相变存储器(PCM)等和/或它们的任何组合)、复杂可编程逻辑器件(CPLD)、现场可编程门阵列(FPGA)、专用集成电路(ASIC)、CPU(包括复杂指令集计算机(CISC)处理器(诸如,x86处理器)和/或精简指令集计算机(RISC)处理器(诸如,ARM处理器))、图形处理器(GPU)、神经处理器(NPU)、张量处理器(TPU)等)来实现。在一些实施例中,一个或多个组件可被实现为片上***(SOC)。
图14示出根据公开的示例实施例的装置的示例实施例。图14中示出的实施例可用于例如实现在此公开的任何存储器设备。装置1400可包括装置控制器1402、跟踪逻辑1408、装置功能电路1406和/或通信接口1410。图14中示出的组件可通过一条或多条装置总线1412进行通信。跟踪逻辑1408可用于例如实现在此公开的任何无效页跟踪功能。
装置功能电路1406可包括用于实现装置1400的主要功能的任何硬件。例如,如果装置1400被实现为存储装置,则装置功能电路1406可包括存储介质(诸如,一个或多个闪存装置、FTL等)。作为另一示例,如果装置1400被实现为网络接口卡(NIC),则装置功能电路1406可包括一个或多个调制解调器、网络接口、物理层(PHY)、介质访问控制层(MAC)等。作为又一示例,如果装置1400被实现为加速器,则装置功能电路1406可包括一个或多个加速器电路、存储器电路等。
图15示出根据公开的示例实施例的用于访问页的版本的方法的实施例。该方法可在操作1502开始。在操作1504,该方法可确定页的第一版本的可访问性,其中,页的第一版本被存储在至少一个存储器中。页的第一版本的可访问性可基于例如第一页(例如,页的第一版本)的擦除操作、第一页的访问量、页的第二版本的访问量等。在操作1506,该方法可基于页的第一版本的可访问性来访问页的第二版本的至少一部分,其中,页的第二版本被存储在至少一个存储器中。页的第二版本的至少一部分可包括例如高速缓存行。该方法可在操作1508结束。
图15中示出的实施例以及在此描述的全部的其他实施例是示例操作和/或组件。在一些实施例中,可省略一些操作和/或组件和/或可包括其他操作和/或组件。此外,在一些实施例中,可改变操作和/或组件的时间次序和/或空间次序。尽管一些组件和/或操作可被示出为单独的组件和/或操作,但是在一些实施例中,单独示出的一些组件和/或操作可被集成到单个组件和/或操作中,和/或示出为单个组件和/或操作的一些组件和/或操作可用多个组件和/或操作来实现。
已经在各种实施方式细节的上下文中描述了上面公开的一些实施例,但是本公开的原理不限于这些或任何其他特定的细节。例如,一些功能已经被描述为由特定组件实现,但是在其他实施例中,功能可分布在不同位置中的并且具有各种用户接口的不同***和组件之间。特定实施例已经被描述为具有特定的处理、操作等,但是这些术语还包括特定的处理、操作等可用多个处理、操作等来实现的实施例,或者多个处理、操作等可被集成到单个处理、操作等中的实施例。对组件或元件的引用可仅表示组件或元件的一部分。例如,对块的引用可表示整个块或者一个或多个子块。除非另外从上下文清楚,否则在本公开和权利要求中使用诸如“第一”和“第二”的术语可仅出于将它们所修饰的元件区分开的目的,并且可不指示任何空间次序或时间次序。在一些实施例中,对元件的引用可表示元件的至少一部分,例如,“基于”可表示“至少部分地基于”等。对第一元件的引用可不暗示第二元件的存在。在此公开的原理具有独立的实用性并且可被单独体现,并且不是每个实施例可能利用每个原理。然而,原理也可以以各种组合被体现,组合中的一些可以以协同的方式放大各个原理的益处。
上面描述的各种细节和实施例可被组合以产生根据本专利公开的发明原理的附加实施例。由于在不脱离发明构思的情况下,本专利公开的发明原理可在布置和细节上进行修改,因此这样的改变和修改被认为落入所附权利要求的范围内。
Claims (20)
1.一种用于访问存储器页的版本中的数据的设备,包括:
至少一个存储器;以及
至少一个处理器,被配置为:
确定页的第一版本的可访问性,其中,页的第一版本被存储在所述至少一个存储器中,并且
基于页的第一版本的可访问性,执行对页的第二版本的至少一部分的访问,其中,页的第二版本被存储在所述至少一个存储器中。
2.根据权利要求1所述的设备,其中,页的第一版本的可访问性基于页的第一版本的擦除操作。
3.根据权利要求1所述的设备,其中,页的第一版本的可访问性基于页的第一版本的访问量。
4.根据权利要求1所述的设备,其中,页的第一版本的可访问性基于页的第二版本的访问量。
5.根据权利要求1所述的设备,其中,对页的第二版本的所述至少一部分的访问包括对页的第二版本的高速缓存行的访问。
6.根据权利要求1所述的设备,其中,对页的第二版本的所述至少一部分的访问基于页的第一版本的修改状态。
7.根据权利要求6所述的设备,其中:
对页的第二版本的所述至少一部分的访问包括对页的第二版本的一部分的访问;并且
页的第一版本的修改状态基于与页的第二版本的所述一部分对应的页的第一版本的一部分的修改状态。
8.根据权利要求7所述的设备,其中:
页的第一版本的所述一部分包括页的第一版本的高速缓存行;并且
页的第二版本的所述一部分包括与页的第一版本的高速缓存行对应的页的第二版本的高速缓存行。
9.根据权利要求1至权利要求8中的任一项所述的设备,所述至少一个处理器被配置为:跟踪页的第二版本的所述至少一部分的修改状态。
10.根据权利要求1至权利要求8中的任一项所述的设备,其中,对页的第二版本的所述至少一部分的访问包括读取操作。
11.根据权利要求1至权利要求8中的任一项所述的设备,其中,所述至少一个处理器被配置为:
将页的第一版本存储在第一超级块中;并且
将页的第二版本存储在第二超级块中。
12.根据权利要求1至权利要求8中的任一项所述的设备,还包括:高速缓存,被配置为存储页的第一版本,其中,所述至少一个处理器被配置为跟踪页的第一版本的修改状态。
13.根据权利要求12所述的设备,其中,所述至少一个处理器被配置为:基于页的第一版本的修改状态来逐出页的第一版本。
14.根据权利要求1至权利要求8中的任一项所述的设备,其中:
所述设备包括存储装置;并且
所述至少一个存储器包括至少一个存储介质。
15.根据权利要求14所述的设备,其中,存储装置被配置为以一致性存储器模式进行操作。
16.一种用于访问存储器页的版本中的数据的方法,包括:
确定页的第一版本的可访问性,其中,页的第一版本被存储在至少一个存储器中;以及
基于页的第一版本的可访问性来访问页的第二版本的至少一部分,其中,页的第二版本被存储在所述至少一个存储器中。
17.根据权利要求16所述的方法,还包括:确定页的第一版本的一部分的修改状态,其中,访问页的第二版本的所述至少一部分的步骤包括:访问与页的第一版本的所述一部分对应的页的第二版本的一部分。
18.一种用于访问存储器页的版本中的数据的设备,包括:
至少一个存储器;以及
至少一个处理器,被配置为:
将页的第一版本存储在所述至少一个存储器中,
将页的第二版本存储在所述至少一个存储器中,并且
跟踪页的第一版本的至少一部分的修改状态。
19.根据权利要求18所述的设备,其中,页的第一版本的所述至少一部分的修改状态包括页的第一版本的一部分的修改状态。
20.根据权利要求19所述的设备,其中,页的第一版本的所述一部分包括高速缓存行。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US63/400,041 | 2022-08-22 | ||
US17/986,889 | 2022-11-14 | ||
US17/986,889 US20240061786A1 (en) | 2022-08-22 | 2022-11-14 | Systems, methods, and apparatus for accessing data in versions of memory pages |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117609105A true CN117609105A (zh) | 2024-02-27 |
Family
ID=89954019
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310987558.2A Pending CN117609105A (zh) | 2022-08-22 | 2023-08-07 | 用于访问存储器页的版本中的数据的方法和设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117609105A (zh) |
-
2023
- 2023-08-07 CN CN202310987558.2A patent/CN117609105A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10126964B2 (en) | Hardware based map acceleration using forward and reverse cache tables | |
CN101593160B (zh) | 减少来自侦听过滤器的后无效事务 | |
US9235346B2 (en) | Dynamic map pre-fetching for improved sequential reads of a solid-state media | |
US9146688B2 (en) | Advanced groomer for storage array | |
US20120102273A1 (en) | Memory agent to access memory blade as part of the cache coherency domain | |
US11544093B2 (en) | Virtual machine replication and migration | |
US20120110247A1 (en) | Management of cache memory in a flash cache architecture | |
US9639481B2 (en) | Systems and methods to manage cache data storage in working memory of computing system | |
DE112011105984T5 (de) | Dynamische teilweise Abschaltung eines arbeitsspeicherseitigen Zwischenspeichers in einer Arbeitsspeicherhierarchie auf zwei Ebenen | |
US11016905B1 (en) | Storage class memory access | |
CN109213693B (zh) | 存储管理方法、存储***和计算机程序产品 | |
US9785552B2 (en) | Computer system including virtual memory or cache | |
US20140258591A1 (en) | Data storage and retrieval in a hybrid drive | |
US10769062B2 (en) | Fine granularity translation layer for data storage devices | |
CN109983444A (zh) | 具有不同高速缓存结构和支持对不同高速缓存结构的并发查找的存储器控制器的多级***存储器 | |
CN114600092A (zh) | 用于混合dimm中的非易失性存储器的低延时高速缓存 | |
US11989126B2 (en) | Tracking memory modifications at cache line granularity | |
US11663136B2 (en) | Storage capacity recovery source selection | |
EP4328755A1 (en) | Systems, methods, and apparatus for accessing data in versions of memory pages | |
CN117609105A (zh) | 用于访问存储器页的版本中的数据的方法和设备 | |
US9454488B2 (en) | Systems and methods to manage cache data storage | |
Yoon et al. | Access characteristic-based cache replacement policy in an SSD | |
US10552325B2 (en) | Reducing write-backs to memory by controlling the age of cache lines in lower level cache | |
US20240211406A1 (en) | Systems, methods, and apparatus for accessing data from memory or storage at a storage node | |
US20240256449A1 (en) | Tracking memory modifications at cache line granularity |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |