CN108628770A - 用于高性能高速缓存的基于近期最少使用的热跟踪机制增强 - Google Patents

用于高性能高速缓存的基于近期最少使用的热跟踪机制增强 Download PDF

Info

Publication number
CN108628770A
CN108628770A CN201810154756.XA CN201810154756A CN108628770A CN 108628770 A CN108628770 A CN 108628770A CN 201810154756 A CN201810154756 A CN 201810154756A CN 108628770 A CN108628770 A CN 108628770A
Authority
CN
China
Prior art keywords
list
cacheline
cache
accessed
order
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
CN201810154756.XA
Other languages
English (en)
Inventor
M·怀佐克赞斯基
M·巴尔科扎克
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of CN108628770A publication Critical patent/CN108628770A/zh
Pending legal-status Critical Current

Links

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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • 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/123Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/604Details relating to cache allocation

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

用于高性能高速缓存的基于近期最少使用的热跟踪机制增强
技术领域
本文所描述的各种方面总体上涉及用于对数据取回进行优化的方法和 设备,并且更具体地涉及增强的高速缓存性能架构和与其相关联的高速缓 存管理技术。
背景技术
可以通过将一定量的数据放入高速缓冲存储器中来减少与系统存储器 存取相关联的时延。通过将数据存储在高速缓冲存储器中,在下次该数据 被请求时,处理器可以更快速地对该数据进行存取。然而,高性能处理器 架构已经朝向以多个处理核心为特征的设计进行转移,每个处理核心具有 同时执行多个独立线程的能力。因此,共享资源(比如用于高速缓冲存储 器的近期最少使用(LRU)列表)可能由于源自于这些高处理能力中的一 个或多个的输入/输出(I/O)瓶颈而在减少时延方面变得没那么高效。
附图说明
在附图中,相似的附图标记一般贯穿不同的视图指代相同的部分。附 图不一定按比例绘制,而是重点一般应放在对本公开的原理进行说明上。 在下面的说明中,参考以下附图描述了本公开的各种方面,其中:
图1示出了示例性计算系统架构的配置;
图2A示出了第一高速缓存管理列表实现;
图2B示出了第一高速缓存管理列表实现的操作;
图3示出了双向链表实现的逻辑表示;
图4A示出了第二高速缓存管理列表实现;
图4B示出了第二高速缓存管理列表实现的操作;
图4C示出了第二高速缓存管理列表实现的方法;
图5A示出了第三高速缓存管理列表实现;
图5B示出了第三高速缓存管理列表实现的操作;
图5C示出了第三高速缓存管理列表实现的方法;
图6A示出了第四高速缓存管理列表实现;
图6B示出了第四高速缓存管理列表实现的操作;
图6C示出了第四高速缓存管理列表实现的方法;
图6D示出了第四高速缓存管理列表实现的流程图;以及
图7示出了根据第一高速缓存管理列表实现和第四高速缓存管理列表 实现获得的数据吞吐量测量的比较。
具体实施方式
下面的详细描述参考附图,附图通过说明的方式示出了可以实践本公 开内容的具体细节和方面。
贯穿附图,应当注意,相似的附图标记用于描绘相同或类似的元素、 特征以及结构。
“示例性”一词在本文中用于表示“用作示例、实例、或说明”。本文 描述为“示例性”的任何方面或设计不一定解释为相对于其它方面或设计 是优选的或有利的。
说明书和权利要求书中的用词“复数”和“多个”明确地指代大于一 的量。因此,对涉及对象的量的上述用词进行明确地援引的任何短语(例 如,“复数个【对象】”、“多个【对象】”明确地指代所述对象中的多于一个 对象。说明书和权利要求书中的术语“(的)组”、“(的)集合”、“(的)集 合体”、“(的)系列”、“(的)序列”、“(的)群组”等等(如果有的话)指代等于或大于一的量,即,一个或多个。术语“恰当子集”、“精简子集” 以及“较小子集”指代集合中的不等于该集合的子集,即,集合中的包含 比该集合少的元素的子集。
应意识到,本文所使用的任何向量和/或矩阵记号本质上是示例性的, 并且仅用于说明的目的。因此,应理解的是,本公开中详述的方法不限于 仅使用向量和/或矩阵来实现,并且可以关于数据、观测、信息、信号等的 集合、序列、组等来等同地执行相关联的过程和计算。此外,应意识到, 对“向量”的提及可以指代任何大小或取向的向量,例如,包括1x1向量(例如,标量)、1xM向量(例如,行向量)以及Mx1向量(例如,列向 量)。类似地,应意识到,对“矩阵”的提及可以指代任何大小或取向的矩 阵,例如,包括1x1矩阵(例如,标量)、1xM矩阵(例如,行向量)以及 Mx1矩阵(例如,列向量)。
如本文所使用的“电路”应理解为任何种类的逻辑实现实体,其可以 包括专用硬件或执行软件的处理器。电路因此可以是模拟电路、数字电路、 混合信号电路、逻辑电路、处理器、微处理器、中央处理单元(CPU)、图 形处理单元(GPU)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、 集成电路、专用集成电路(ASIC)等,或其任何组合。将在下面更详细描 述的相应功能的任何其它种类的实现方式也可以理解为“电路”。应理解, 本文详述的电路中的任何两个(或更多个)可以实现为具有等同功能的单 个电路等等,并且相反,本文详述的任何单个电路可以实现为具有等同功 能的两个(或更多个)分开的电路等等。另外,对“电路”的提及可以指 代共同地形成单个电路的两个或更多个电路。
如本文所使用的,“存储器”、“存储器设备”等可以理解为非暂时性计 算机可读介质,其中可以存储数据或信息以供取回。本文所包含的对“存 储器”的提及因此可理解为指代易失性或非易失性存储器,包括随机存取 存储器(RAM)、只读存储器(ROM)、闪速存储器、固态存储装置、磁带、 硬盘驱动器、光驱动器、3D交叉点(3DXP)等,或其任何组合。此外, 应意识到,寄存器、移位寄存器、处理器寄存器、数据缓冲器等也由术语 存储器包含于本文中。应意识到,被称为“存储器”或“一个存储器”的 单个组件可以由多于一种不同类型的存储器构成,并且因此可以指代包括 一种或多种类型的存储器的集合体组件。易于理解的是,任何单个存储器 组件可以分离成多个共同等同的存储器组件,并且反之亦然。此外,虽然 存储器可以描绘为与一个或多个其它组件分开(例如,在附图中),但是应 理解,存储器可以集成在另一组件内,例如,在公共集成芯片上。
易失性存储器可以是需要电力来维持由介质存储的数据的状态的存储 介质。易失性存储器的非限制示例可以包括各种类型的RAM,例如,动态 随机存取存储器(DRAM)或静态随机存取存储器(SRAM)。可以在存储 器模块中使用的一种特定类型的DRAM是同步动态随机存取存储器(SDRAM)。在一些方面,存储器组件的DRAM可以满足由联合电子设备 工程委员会(JEDEC)颁布的标准,例如,用于双数据速率(DDR)SDRAM 的JESD79F、用于DDR2SDRAM的JESD79-2F、用于DDR3SDRAM的 JESD79-3F、用于DDR4SDRAM的JESD79-4A、用于低功率DDR(LPDDR) 的JESD209、用于LPDDR2的JESD209-2、用于LPDDR3的JESD209-3、 以及用于LPDDR4的JESD209-4(这些标准可以在www.jedec.org获得)。 这些标准(以及类似的标准)可以称为基于DDR的标准,并且实现这些标 准的存储设备的通信接口可以称为基于DDR的接口。
各种方面可以应用于包括非易失性存储器的任何存储器设备。在一个 方面,存储器设备是块可寻址的存储器设备,例如,基于与非(NAND)逻 辑或者或非(NOR)逻辑技术的那些存储器设备。存储器还可以包括下一 代非易失性设备,例如,3DXP存储器设备、或者其它字节可寻址的写入到 位(write-in-place)非易失性存储器设备。3DXP存储器可以包括无晶体管 可堆叠交叉点架构,其中存储器单元位于字线和位线的交叉处并且单独可 寻址,并且其中位存储是基于体电阻的变化的。
在一些方面,存储器设备可以是或者可以包括使用硫系玻璃的存储器 设备,多阈值水平NAND闪速存储器,NOR闪速存储器,单级或多级相变 存储器(PCM),电阻存储器,纳米线存储器,铁电晶体管随机存取存储器 (FeTRAM),防铁电存储器,包含忆阻器技术的磁阻随机存取存储器 (MRAM)存储器,包括金属氧化物基、氧空位基的电阻存储器和导电桥 随机存取存储器(CB-RAM),自旋移矩(STT)-MRAM,基于自旋电子磁 结存储器的设备,基于磁通道结(MTJ)的设备,基于DW(域壁)和SOT (自旋轨道转移)的设备,基于晶闸管的存储器设备,或以上中的任何存 储器的组合,或其它存储器。术语存储器或存储器设备可以指代管芯本身 和/或封装的存储器产品。
图1示出了示例性计算系统100架构的配置。根据一些方面,计算系 统100可以是包括第一处理器170-1和第二处理器170-2的多处理器系统。 虽然图1中仅示出了两个处理器170-1和170-2,但是仅出于说明性目的而 选择该数量。可以根据系统资源和需求来实现更多或更少的处理器。
处理器170可以包括核心区域178和集成区域180。在一些方面,核心 区域178可以包括一个或多个处理核心174,而集成区域180包括存储器控 制器中心(MCH)172、处理器-中心接口176以及处理器-处理器接口175。 在至少一个方面,MCH 172可以实现如本文所描述的高速缓冲存储器控制 器。
在至少一个方面,处理核心174可以各自包括用于支持执行管线的硬 件资源和固件资源(未进行描绘)。在一些方面,这些资源可以包括高速缓 冲存储器(其可以是共享或私有的)层级,其可以包括:专用一级(L1) 指令高速缓存、专用L1数据高速缓存、二级(L2)数据/指令高速缓存、 或其组合,预取逻辑和缓冲器,分支预测逻辑,解码逻辑,寄存器文件, 包括算术逻辑单元、浮点单元、负载/存储单元、地址生成单元、数据高速 缓存、I/O控制逻辑、查找表、索引等的各种并行执行资源。
在一些方面,MCH 172支持经由存储器互连182在处理器170与系统 存储器132(例如,两级存储器(2LM)、或3DXP、或DRAM&3DXP等) 之间进行双向数据传输。在至少一个方面,系统存储器132可以是DDR型 DRAM,而存储器互连182和MCH 172可以符合DDR接口规范。在至少 一个方面,系统存储器132-1可以表示可以针对DRAM容量利用对应的存 储器电路进行填充的一排存储器接口(或槽)。MCH 172还可以被配置为支 持处理器170与高速缓冲存储器之间的双向数据传输。
在一些方面,每个处理器170包括用于与位于处理器170本地的系统 存储器132的一部分和/或高速缓冲存储器进行通信的MCH 172。在至少一 个方面,系统存储器132-1位于第一处理器170-1本地并且作为整体表示系 统存储器132的一部分。在一些方面,系统100是分布式存储器多处理器 系统,其中每个处理器170能够对系统存储器132的每个部分和/或高速缓 冲存储器进行存取,无论其是否在本地。在至少一个方面,虽然本地存取 可以具有较低的时延,但是对系统存储器132的非本地部分进行存取也是 允许的。在至少一个方面,MCH 172可以被配置为接收对存储器的块进行 存取的I/O请求。例如,MCH 172可以基于I/O控制逻辑和/或LRU列表来 处理接收到的对存储器的块进行存取的I/O请求。该过程可以包括与在接收 到的I/O请求中标识的一个或多个组件(例如,驱动器)的协作。
在一些方面,每个处理器170还包括处理器-处理器接口175,其支持 经由处理器-处理器互连151与其它处理器170中的一个处理器的处理器- 处理器接口175进行信息通信。在一些方面,处理器-中心互连152和处理 器-处理器互连151是互连的公共集合的不同实例。在其它方面,处理器- 中心互连152可以不同于处理器-处理器互连151。
在至少一个方面,处理器170包括用于经由互连152与I/O中心190 的接口194进行通信的处理器-中心接口176。接口194可以例如将对于高 速缓冲存储器的(多个)高速缓存块的(多个)I/O请求传送到处理器-中 心接口176。在一些方面,I/O中心190包括用于支持经由图形互连116与 图形适配器138进行双向数据通信的图形接口192,图形互连116可以实现 为高速串行总线,例如,外围组件互连快速(PCIe)总线或另一适合的总 线。
在一些方面,I/O中心190还经由接口196和对应的互连156与总线桥 中心118进行通信,总线桥中心118支持用于不同类型的I/O设备或外围设 备的各种总线协议。在至少一个方面,总线桥中心118支持实现分组交换 网络通信协议(例如,吉比特以太网)的网络接口控制器(NIC)130,以 及低带宽总线122(例如,低引脚计数(LPC)、I2C、工业标准架构(ISA) 等),以支持本文称为桌面I/O设备124的传统式接口(可能包括用于键盘、 鼠标、串行端口、并行端口、以及可移除介质驱动器的接口)。在至少一个 方面,低带宽总线122还包括用于诸如闪存只读存储器(ROM)126的非 易失性存储器(NVM)设备和桌面I/O设备124(例如,键盘、鼠标、或 其它I/O设备等)的接口。在一些方面,存储协议总线121(例如,串行 AT附件(SATA)、小型计算机系统接口(SCSI)等)支持包括常规磁核心 硬盘驱动器(HDD)128的持久性存储设备。在至少一个方面,HDD 128 包括存储代码129,其可以表示处理器可执行的指令,包括操作系统指令、 应用程序指令等,这些指令当由处理器执行时使得处理器执行本文所描述 的操作。
在至少一个方面,系统100还包括固态驱动器(SSD)140以及用于支 持各种I/O设备112的通用串行通信总线120(例如,USB、PCI、PCIe、 NVM快速(NVMe)等)。虽然已经说明并描述了通信总线和总线目标的具 体实例,但是其它方面可以采用不同的通信总线和不同的目标设备。
图2A示出了第一高速缓存管理列表实现200。根据一些方面,第一高 速缓存管理列表实现200包括列表220、节点222-228、头节点位置230以 及尾节点位置232。列表220可以实现为链式数据结构,例如,存储器(例 如,高速缓冲存储器)中的双向链表、队列、阵列等。
图3示出了双向链表实现300的逻辑表示。根据一些方面,双向链表 320包含一组按顺序地排序的节点322-328。虽然图3中仅示出了四个节点 322-328,但是仅出于说明性目的而选择该数量。可以根据系统资源和需求 来实现更多或更少的节点。
双向链表320的节点322-328中的每个节点包括三个字段:到下一节点 340的链接、数据元素342以及到前一节点344的链接。到下一节点340的 链接可以存储下一节点在存储器(例如,高速缓冲存储器)中的地址。当 节点322-328中的一个节点(例如,节点322)在双向链表320中的序列中 不具有下一节点340时,到下一节点340的链接可以可替代地设定为空或 零值。数据元素342可以定义整数值、另一数据值类型或可操作以用于返 回数据值的函数。到前一节点344的链接可以存储前一节点在存储器(例 如,高速缓冲存储器)中的地址。当节点322-328中的一个节点(例如,节 点328)在双向链表320中的序列中不具有前一节点344时,到前一节点 344的链接可以可替代地设定为空或零值。
头节点指针330可以指向双向链表320的节点的地址。例如,头节点 指针330可以指向节点322的地址,节点322图示地处于双向链表320的 头部处。同样,尾节点指针332可以指向双向链表320的节点的地址。在 一个示例中,尾节点指针332可以指向节点328的地址,节点328被描绘 为处于双向链表320的尾部处。
对于整数构成的双向链表,节点可以以诸如C或C++程序、Java、Ada 等编程语言来定义。例如,在C或C++中,节点可以定义为:
双向链表320可以与散列图(未进行描绘)进行交互。双向链表320 和散列图可以通过算法用于经由高速缓冲存储器控制器执行各种列表管理 功能和/或策略。这些功能可以包括新节点的定义,节点322-328中的一个 节点的移除,节点322-328中的一个节点向双向链表320内的头部、尾部、 或其它位置的移动或推进。
根据一些方面,LRU可以由高速缓冲存储器控制器实现为双向链表 320。到下一节点340的链接以及到前一节点344的链接可以指代存储器(例 如,高速缓冲存储器)中的相应块的地址位置。另外,头节点指针330或 尾节点指针332中的一个与双向链表320的被指定为最不频繁使用的一侧 相关联。虽然双向链表320的具有尾节点位置232的一侧在本文中用于描 述最不频繁使用的侧,但是本公开不限于此。
图2B示出了第一高速缓存管理列表实现200的操作。如先前指出的, 第一高速缓存管理列表实现200包括列表220、节点222-228、头节点位置 230以及尾节点位置232。
在列表220的LRU实现的上下文中,术语“热”和“冷”在本文中用 于描述节点222-228中的近期节点相对于列表220的其它节点222-228如何 由高速缓冲存储器控制器进行存取。对节点222-228中的一个节点的存取可 以例如响应于对于从其引用的高速缓存块的I/O请求而提供。响应于这样的 存取,节点228可以变“热”并且由高速缓冲存储器控制器推进到列表220 的头节点位置230。由于节点228被推进,节点222、224以及226的位置 也相应地在列表220指示的次序内更新。也即,每次节点222-228中的一个 节点被存取,列表220都由高速缓冲存储器控制器更新。值得注意的是, 虽然在本文中一般性地描述了LRU实现,但是高速缓冲存储器控制器可以 使用其它类型的算法、数据结构、和/或策略来组织高速缓冲存储器的高速 缓存块,例如,近期最多使用(MRU)等。
图4A示出了第二高速缓存管理列表实现400。根据一些方面,第二高 速缓存管理列表实现400包括列表420a-n、节点422a-n-428a-n、头节点位置 430a-n、尾节点位置432a-n。与上面描述的第一高速缓存管理列表实现200 的组件相同或类似的组件可以由相似的字符来表示,并且将省略对其的描 述。特别地,列表420a-n、节点422a-n-428a-n、头节点位置430a-n、尾节点位 置432a-n中的每一个可以分别对应于图2A-图2B的列表220、节点222-228、头节点位置230以及尾节点位置232。
图4B示出了第二高速缓存管理列表实现400的操作。第二高速缓存管 理列表实现400的操作可以区别于第一高速缓存管理列表实现200的操作。 在一个方面,高速缓冲存储器由高速缓冲存储器控制器划分成具有相等或 不同大小的多个n个高速缓冲存储器部分。因此,多个列表420a-n中的每个 列表可以由高速缓冲存储器控制器分配给多个n个高速缓存部分中的相应 高速缓存部分。因此,多个列表420a-n中的每个列表可以指示相应高速缓存 部分中的高速缓存块被存取的次序。
在列表420a-n的LRU实现的上下文中,由高速缓冲存储器控制器对节 点422a-n-428a-n中的一个节点进行的存取可以在例如对于从其引用的高速缓 存块的I/O请求时提供。响应于该I/O请求,高速缓冲存储器控制器可以从 多个列表420a-n中选择分配给高速缓冲存储器的高速缓存块的列表。这样的 选择可能需要对在I/O请求中标识的高速缓存块的地址进行确定。为此,在 确定选择哪个列表时,高速缓冲存储器控制器可以使用索引(例如,查找 表)来将在I/O请求中标识的高速缓存块的地址与多个列表420a-n中的一个 列表进行关联。
根据一个方面,从多个列表420a-n中选择列表可以在每当节点 422a-n-428a-n中的一个节点被推进到头节点位置430a-n时由高速缓冲存储器 控制器使用以下等式来执行:
L=A mod N (等式1)
其中L是要使用的列表的索引,A是高速缓存块索引,N是LRU列表 的数量,并且mod是取模运算,使得N大于或等于用于I/O提交的CPU核 心的数量。
在对节点428a引用的高速缓存块进行I/O存取并且由高速缓冲存储器 控制器对列表进行选择时,节点428a变“热”并且因此被推进到列表420a的头节点位置430a。由于节点428a被高速缓冲存储器控制器推进,节点422a、 424a以及426a的位置也相应地在列表420a指示的次序内更新。
图4C示出了根据第二高速缓存管理列表实现的一个方面的方法480。 特别地,方法480用于对在存储设备中存取的数据进行缓存,该方法包括: 基于从高速缓冲存储器存取的高速缓存块从多个列表中选择列表,高速缓 冲存储器被划分成多个高速缓存部分,多个列表中的每个列表被分配给多 个高速缓存部分中的相应高速缓存部分,多个列表中的每个列表指示相应 高速缓存部分中的高速缓存块被存取的次序482;以及基于所存取的高速缓 存块来对分配给所选定的列表的高速缓存块被存取的次序进行更新484。
关于操作的效果,第一高速缓存管理列表实现200与第二高速缓存管 理列表实现400之间的另一区别是明显的。与第一高速缓存管理列表实现 200相反,对多个列表420a-n之中的特定列表进行I/O存取和次序的更新不 太可能导致针对多个列表420a-n之中的I/O存取的竞争点。换言之,对多个 列表420a-n的并行操作和更新可以有助于降低列表420a-n中的每个列表处的 I/O瓶颈的频率。因此,与存储器存取相关联的时延在高性能处理器架构中 可以降低。
图5A示出了第三高速缓存管理列表实现500。根据一些方面,第三高 速缓存管理列表实现500包括列表520、节点522-528、头节点位置530、 尾节点位置532以及候选逐出区域560。与第一高速缓存管理列表实现200 的组件相同的组件可以由相似的字符表示,并且将省略对其的描述。特别 地,列表520、节点522-528、头节点位置530、尾节点位置532可以分别 对应于图2A-图2B的列表220、节点222-228、头节点位置230以及尾节点 位置232。
图5B示出了第三高速缓存管理列表实现500的操作。第三高速缓存管 理列表实现500的操作可以区别于第一高速缓存管理列表实现200的操作。 在一个方面,列表520指示的次序不是基于列表520的列表更新标准针对 所存取的节点522-528来更新的。说明性地,列表更新标准对列表520的影 响可以可视化为位于候选逐出区域560内部/外部的(多个)节点的数量。 虽然节点526和528在图5B中示出为在候选逐出区域560内,但是本公开 不限于此。在其它实现中,候选逐出区域560可以包括更多或更少的节点。
特别地,由高速缓冲存储器控制器对节点524的I/O存取不会导致节点 524变“热”或被推进到列表520的头节点位置530,因为节点524未包括 在候选逐出区域560中。同样,节点522、526以及528的位置也不会由于 对节点524的I/O存取而在列表520指示的次序内更新。然而,相反,对节 点528的I/O存取将导致节点528变“热”或被高速缓冲存储器控制器推进 到列表520的头节点位置530,因为节点528包括在候选逐出区域560中。 因此,节点522、524以及526的位置将由于对节点528的I/O存取而在列 表520指示的次序内更新。
根据一个方面,列表更新标准可以基于列表更新计数器的值U,每次 对节点522-528中的一个节点的存取导致列表520指示的次序由高速缓冲存 储器控制器进行更新时,该值U都被修改(例如,递增)。换言之,当对节 点522-528中的一个节点的I/O存取导致所存取的节点被推进到头节点位置 530时,对存储在存储器中的列表更新计数器的值U进行修改。
在前面的说明中,对节点524的I/O存取不会导致列表520指示的次序 被更新。因此,列表更新计数器的值U在这种情形下无须修改。然而,对 节点528的I/O存取导致节点528被推进到头节点位置530,并且因此列表 520的次序被更新。因此,列表更新计数器的值U在这种情况下将被修改。
根据另一方面,列表更新标准可以基于时间戳C,时间戳C可以与多 个节点522-528中的每个节点相关联。时间戳C可以指示当对多个节点 522-528中的相应节点的I/O存取导致列表520指示的次序被更新时列表更 新计数器的值U。例如,响应于列表更新计数器的值U被修改,存储在存 储器中的时间戳C的值被设定为针对被存取的相应节点的修改后的值U。
当通过I/O请求对多个节点522-528中的相应节点进行存取时,可以从 存储器中读取与该相应节点相关联的时间戳C。然后可以由高速缓冲存储 器控制器在列表更新计数器的值U和与该相应节点相关联的时间戳C之间 进行比较。在一些方面,列表更新标准可以基于这样的比较。时间戳C与 列表更新计数器的值U之间的量值上的相关性指示相应节点相对于列表 520的其它节点522-528有多近期地被存取。特别地,高速缓冲存储器控制 器可以使用该比较来确定对多个节点522-528之中的相应节点的I/O存取是 否将导致对列表520的更新,并且因此导致对列表更新计数器的值U的修 改。
在一些方面,下面的等式可以用于这样的比较:
U-C>T (等式2)
之后,在一些方面,列表更新标准可以基于存储在存储器中的阈值变 量T。阈值变量T可以由高速缓冲存储器控制器用于选择列表520可以多 频繁地进行更新。
随着阈值变量T的量值增加,候选逐出区域560内的节点522-528的 数量有效地增加。通过审阅的方式,对候选逐出区域560内的节点522-528 的存取可以导致列表520的次序更新。统计地,这产生了对节点522-528 中的一个节点进行存取的I/O请求将导致列表520更新的较高概率。
随着阈值变量T的量值减小,候选逐出区域560内的节点522-528的 数量有效地减少。统计地,这产生了对节点522-528中的一个节点进行存取 的I/O请求将导致列表520更新的较低概率。
在至少一个方面,当等式2的比较由高速缓冲存储器控制器确定为是 满足(例如,真)的时,则多个节点522-528中的通过I/O请求存取的相应 节点可以被推进到头节点位置530,这更新列表520指示的次序。在该更新 后,可以在执行逐出操作之前修改(例如,递增)列表更新计数器的值U, 并且时间戳C可以设定为针对被存取的相应节点的修改后的值U。
然而,如果确定等式2的比较是不满足(例如,假)的,则可以执行 逐出操作。在逐出操作期间,在候选逐出区域560内的节点522-528中的任 何节点可以由高速缓冲存储器控制器从列表520中移除,或被替换以便为 表示高速缓冲存储器的至少一个高速缓存块的一个或多个新节点留出空 间。在至少一个方面,位于尾节点位置532处的节点可以由高速缓冲存储 器控制器从列表520中逐出。
图5C示出了第三高速缓存管理列表实现的方法580。特别地,方法580 用于对在存储设备中存取的数据进行缓存,该方法包括:确定要从存储设 备存取的块是否为存储在高速缓冲存储器中的高速缓存块,高速缓冲存储 器已经被分配了指示高速缓存块从高速缓冲存储器被存取的次序的列表 582;响应于确定该块是存储在高速缓冲存储器中的高速缓存块之中的高速 缓存块,确定该块是否满足列表更新标准584;以及响应于确定该块满足列 表更新标准,对由列表指示的、高速缓存块从高速缓冲存储器被存取的次 序进行更新586。
关于操作的效果,第一高速缓存管理列表实现200与第三高速缓存管 理列表实现500之间的另一区别是明显的。与第一高速缓存管理列表实现200相反,对节点522-528中的一个节点的每个I/O存取不会导致对列表520 的次序的更新。因此,列表520变成针对I/O存取的竞争点的可能性降低。 换言之,降低对列表520进行更新的概率可以有助于降低列表520处的I/O 瓶颈的频率。因此,与存储器存取相关联的时延在高性能处理器架构中可 以降低。
图6A示出了第四高速缓存管理列表实现600。根据一些方面,第四高 速缓存管理列表实现600包括列表620a-n、节点622a-n-628a-n、头节点位置 630a-n、尾节点位置632a-n以及候选逐出区域660a-n。与第二高速缓存管理列 表实现400和第三高速缓存管理列表实现500的组件相同或类似的组件可 以由相似的字符来表示,并且将省略对其的描述。例如,列表620a-n、节点 622a-n-628a-n、头节点位置630a-n、尾节点位置632a-n中的每一个可以分别对 应于图4A-图4B的列表420a-n、节点422a-n-428a-n、头节点位置430a-n以及 尾节点位置432a-n。同样,候选逐出区域660a-n中的每一个可以分别对应于 图5A-图5B的候选逐出区域560。
虽然候选逐出区域660a-n被示为单独的区域,但是候选逐出区域660a-n可以被配置为作为一个或多个区域来操作。例如,候选逐出区域660a-n中的 每个候选逐出区域可以分别根据阈值变量Ta-n来操作。阈值变量Ta-n可以由 高速缓冲存储器控制器设定为相同的值或不同的值。在一些方面,在响应 于事件而将阈值变量Ta-n中的一个或多个设定为不同的值之前,可以将阈值 变量Ta-n设定为相同的值。在至少一个方面,在响应于事件而将阈值变量 Ta-n中的两个或更多个设定为相同的值之前,可以将阈值变量Ta-n设定为不 同的值。虽然阈值变量Ta-n在本文中描述为单独的变量,但是应注意,阈值 变量Ta-n在一些方面中可以由单个变量来实现。
图6B示出了第四高速缓存管理列表实现600的操作。第四高速缓存管 理列表实现600的操作可以区别于第一高速缓存管理列表实现200的操作。 在一个方面,第四高速缓存管理列表实现600与第二高速缓存管理列表实 现400和第三高速缓存管理列表实现500的结构和技术相一致。
如在第二高速缓存管理列表实现400中,第四高速缓存管理列表实现 600的高速缓冲存储器可以划分成具有相等或不同大小的多个n个高速缓冲 存储器部分。多个列表620a-n中的每一个因此可以由高速缓冲存储器控制器 分配给多个n个高速缓存部分中的相应高速缓存部分。因此,多个列表620a-n中的每一个可以指示相应高速缓存部分中的高速缓存块被存取的次序。在 提供该配置的情况下,对多个列表420a-n之中的特定列表进行I/O存取和次 序的更新不太可能导致针对多个列表620a-n之中的I/O存取的竞争点。换言 之,对多个列表420a-n的并行操作和更新可以有助于降低列表420a-n中的每 个列表处的I/O瓶颈的频率。因此,与存储器存取相关联的时延在高性能处 理器架构中可以降低。
如在第三高速缓存管理列表实现500中,不针对无法满足其相应列表 620a-n的列表更新标准的所存取的节点622a-n-628a-n来更新列表620a-n指示的 次序。如先前指出的,可以将列表更新标准描绘为位于候选逐出区域660a-n内的节点中的一个或多个。因此,列表620a-n将变成针对I/O存取的竞争点 的可能性降低。在提供该配置的情况下,对列表620a-n进行更新的概率可以 降低,这可以有助于降低列表620a-n处的I/O瓶颈的频率。因此,与存储器 存取相关联的时延在高性能处理器架构中可以进一步降低。
此外,多个n个高速缓冲存储器部分和/或候选逐出区域660a-n中的每 一个可以单独地或共同地由高速缓冲存储器控制器根据各种控制方案来进 行控制。每个控制方案可以实现一组静态和/或动态变量(例如,n,U,C, T),其从存储器读取,用于管理多个n个高速缓冲存储器部分和/或候选逐 出区域660a-n中的一个或多个。控制方案中的每个控制方案可以响应于由高 速缓冲存储器控制器确定的一个或多个事件(例如,吞吐量水平、外围输入、命中率、CPU使用、线程数量等)而被触发、暂停和/或结束。换言之, 对多个n个高速缓冲存储器部分和/或候选逐出区域660a-n的单独优化可以 有助于降低列表620a-n处的I/O瓶颈的频率。因此,与存储器存取相关联的 时延在高性能处理器架构中可以更进一步地降低。
图6C示出了第四高速缓存管理列表实现600的方法680。特别地,用 于对在存储设备中存取的数据进行缓存的方法680包括:基于从高速缓冲 存储器中存取的高速缓存块来从多个列表中选择列表,高速缓冲存储器被 划分成多个高速缓存部分,多个列表中的每个列表被分配给多个高速缓存 部分中的相应高速缓存部分,多个列表中的每个列表指示相应高速缓存部 分中的高速缓存块被存取的次序682;确定所存取的高速缓存块是否满足列表更新标准684;以及基于确定所存取的高速缓存块满足列表更新标准,对 分配给所选定的列表的高速缓存块从高速缓冲存储器被存取的次序进行更 新686。
图6D示出了第四高速缓存管理列表实现600的流程图690。在一些方 面,对节点622a-n-628a-n中的一个节点的存取可以在例如在691处对从其引 用的高速缓存块进行的I/O请求时提供。响应于该I/O请求,在692处,高 速缓冲存储器控制器可以从多个列表620a-n中选择被分配给高速缓冲存储 器的高速缓存块的列表。这样的选择可能需要根据高速缓存块索引A和/或 使用等式1来确定在I/O请求中标识的高速缓存块的地址。在693处,可以由高速缓冲存储器控制器基于来自多个列表620a-n中的所选定的列表从存 储器中读取时间戳C和列表更新计数器的值U。
然后,在694处,可以由高速缓冲存储器控制器在列表更新计数器的 值U和与相应节点相关联的时间戳C之间进行比较。在一些方面,可以使 用等式2来进行比较。如果比较为真,则由相应节点引用的高速缓存块变 “热”,并且因此可以由高速缓冲存储器控制器将该相应节点推进到所选定 的列表的相应头节点位置。由于相应节点被推进,在695处,所选定的列 表中的节点的位置也由高速缓冲存储器控制器在所选定的列表指示的次序 内进行更新。在该更新之后,在696处,高速缓冲存储器控制器可以在697 处执行逐出操作之前修改列表更新计数器的值U并且将时间戳C设定为针 对被存取的相应节点的修改后的值U。然而,如果比较为假,则该过程将 同样在697处执行逐出操作。
在逐出操作697期间,候选逐出区域660a-n内的节点622a-n-628a-n中的 任何节点可以由高速缓冲存储器控制器从其相应列表620a-n中移除,或者被 替换以便为表示高速缓冲存储器的至少一个高速缓存块的一个或多个新节 点留出空间。在至少一个方面,位于尾节点位置632a-n中的一个处的节点可 以由高速缓冲存储器控制器逐入。高速缓冲存储器控制器可以基于逐出的 次序(例如,按顺序的、不按顺序的等)和/或基于列表620a-n中的一个列表的大小来选择列表620a-n中的一个列表以供逐出。
图7示出了根据第一高速缓存管理列表实现200和第四高速缓存管理 列表实现600所获得的数据吞吐量测量的比较。如曲线图700所示,以kIOps 为单位,在8个线程上方第四高速缓存管理列表实现600的数据吞吐量性 能(线760)开始在图形上超过其对立部分的数据吞吐量性能(线720)。
虽然本文关于高速缓冲存储器控制器描述了若干方面和实现,但是本 公开不限于该配置。另外或可替代地,本文所描述的包括MCH 172等的至 少一个或多个电路和/或处理器可以相反在前述方面、实现和/或以下示例的 任一个中实现。
下面的示例涉及本公开的另外的方面:
在示例1中,一种用于对在存储设备中存取的数据进行缓存的方法, 该方法包括:基于从高速缓冲存储器存取的高速缓存块来从第一列表和第 二列表之中选择列表,高速缓冲存储器包括多个高速缓存部分,该多个高 速缓存部分包括第一高速缓存部分和第二高速缓存部分,第一列表被分配 给第一高速缓存部分并且第二列表被分配给第二高速缓存部分,第一列表 指示第一高速缓存部分中的高速缓存块被存取的次序,第二列表指示第二 高速缓存部分中的高速缓存块被存取的次序;以及基于所存取的高速缓存 块来对分配给所选定的列表的高速缓存块被存取的次序进行更新。
在示例2中,一种用于对在存储设备中存取的数据进行缓存的方法, 该方法包括:基于从高速缓冲存储器存取的高速缓存块来从多个列表中选 择列表,高速缓冲存储器被划分成多个高速缓存部分,多个列表中的每个 列表被分配给多个高速缓存部分中的相应高速缓存部分,多个列表中的每 个列表指示相应高速缓存部分中的高速缓存块被存取的次序;以及基于所 存取的高速缓存块来对分配给所选定的列表的高速缓存块被存取的次序进 行更新。
在示例3中,示例1或2中的任一示例的方法,其中,从多个列表中 选择列表包括:确定所存取的高速缓存块在高速缓冲存储器中的地址。
在示例4中,示例3的方法,其中,从多个列表中选择列表还包括: 基于所确定的所存取的高速缓存块的地址来从多个列表中选择列表。
在示例5中,示例1至4中的任一示例的方法,其中,从多个列表中 选择列表包括:确定所存取的高速缓存块在高速缓冲存储器中的地址是否 在表内。
在示例6中,示例5的方法,其中,从多个列表中选择列表还包括: 基于确定所存取的高速缓存块的地址在表内来从多个列表中选择列表。
在示例7中,示例1至6中的任一示例的方法,其中,从多个列表中 选择列表包括:在表内确定所存取的高速缓存块在高速缓冲存储器中的地 址是否与所选定的列表相关联。
在示例8中,示例7的方法,其中,从多个列表中选择列表还包括: 基于确定所存取的高速缓存块的地址与所选定的列表相关联来从多个列表 中选择列表。
在示例9中,示例1至8中的任一示例的方法,其中,从多个列表中 选择列表包括:在查找表内确定所存取的高速缓存块在高速缓冲存储器中 的地址是否与所选定的列表相关联。
在示例10中,示例9的方法,其中,从多个列表中选择列表还包括: 基于确定所存取的高速缓存块的地址与所选定的列表相关联来从多个列表 中选择列表。
在示例11中,示例1至10中的任一示例的方法,其中,对分配给所 选定的列表的高速缓存块被存取的次序进行更新包括:响应于高速缓存块 被存取,对分配给所选定的列表的高速缓存块被存取的次序进行更新。
在示例12中,示例1至11中的任一示例的方法,其中,对分配给所 选定的列表的高速缓存块被存取的次序进行更新包括:对所存取的高速缓 存块在由所选定的列表指示的次序内的位置进行更新。
在示例13中,示例1至12中的任一示例的方法,其中,对分配给所 选定的列表的高速缓存块被存取的次序进行更新包括:将所存取的高速缓 存块的位置更新到由所选定的列表指示的次序内的头位置。
在示例14中,示例1至13中的任一示例的方法,还包括:使用多个 列表中的列表来从高速缓冲存储器返回高速缓存块。
在示例15中,示例1至14中的任一示例的方法,还包括:使用指示 更新后的次序的所选定的列表来从高速缓冲存储器返回高速缓存块。
在示例16中,示例1至15中的任一示例的方法,还包括:将高速缓 冲存储器划分成多个高速缓存部分,使得每个高速缓存部分具有相等的大 小。
在示例17中,示例1至16中的任一示例的方法,还包括:基于逐出 次序来从多个列表中确定用于逐出过程的列表。
在示例18中,示例17的方法,还包括:基于逐出次序来从所确定的 列表中逐出高速缓存块。
在示例19中,示例1至18中的任一示例的方法,还包括:基于预确 定的逐出次序来从多个列表中确定用于逐出过程的列表。
在示例20中,示例19的方法,还包括:基于预确定的逐出次序来从 所确定的列表中逐出高速缓存块。
在示例21中,示例1至20中的任一示例的方法,还包括:基于顺序 的逐出次序来从多个列表中确定用于逐出过程的列表。
在示例22中,示例21的方法,还包括:基于顺序的逐出次序来从所 确定的列表中逐出高速缓存块。
在示例23中,示例1至22中的任一示例的方法,还包括:基于非顺 序的逐出次序来从多个列表中确定用于逐出过程的列表。
在示例24中,示例23的方法,还包括:基于非顺序的逐出次序来从 所确定的列表中逐出高速缓存块。
在示例25中,示例1至24中的任一示例的方法,还包括:基于所确 定的列表的大小与阈值列表大小的比较来从多个列表中确定用于逐出过程 的列表。
在示例26中,示例25的方法,还包括:基于所确定的列表的大小与 阈值列表大小的比较来从所确定的列表中逐出高速缓存块。
在示例27中,示例1至26中的任一示例的方法,还包括:基于所确 定的列表的大小与预确定的阈值列表大小的比较来从多个列表中确定用于 逐出过程的列表。
在示例28中,示例27的方法,还包括:基于所确定的列表的大小与 预确定的阈值列表大小的比较来从所确定的列表中逐出高速缓存块。
在示例29中,示例1至28中的任一示例的方法,还包括:基于所确 定的列表的大小与可变阈值列表大小的比较来从多个列表中确定用于逐出 过程的列表。
在示例30中,示例29的方法,还包括:基于所确定的列表的大小与 可变阈值列表大小的比较来从所确定的列表中逐出高速缓存块。
在示例31中,示例1至30中的任一示例的方法,还包括:确定用于 逐出过程的候选高速缓存块在由多个列表之中的候选高速缓存块被分配给 的列表指示的次序内的位置。
在示例32中,示例31的方法,还包括:基于所确定的候选高速缓存 块的位置来从候选高速缓存块被分配给的列表中逐出候选高速缓存块。
在示例33中,示例1至32中的任一示例的方法,还包括:确定候选 高速缓存块在由多个列表之中的候选高速缓存块被分配给的列表指示的次 序内的位置。
在示例34中,示例33的方法,还包括:响应于确定候选高速缓存块 的位置是尾位置,从候选高速缓存块被分配给的列表中逐出候选高速缓存 块。
在示例35中,一种用于对在存储设备中存取的数据进行缓存的设备, 该设备包括:高速缓冲存储器,其包括多个高速缓存部分,该多个高速缓 存部分包括第一高速缓存部分和第二高速缓存部分;以及高速缓冲存储器 控制器,其被配置为:基于从高速缓冲存储器存取的高速缓存块来从第一 列表和第二列表之中选择列表,第一列表被分配给第一高速缓存部分并且 第二列表被分配给第二高速缓存部分,第一列表指示第一部分中的高速缓 存块被存取的次序,第二列表指示第二部分中的高速缓存块被存取的次序, 以及基于所存取的高速缓存块来对分配给所选定的列表的高速缓存块被存 取的次序进行更新。
在示例36中,一种用于对在存储设备中存取的数据进行缓存的设备, 该设备包括:高速缓冲存储器,其被划分成多个高速缓存部分;以及
高速缓冲存储器控制器,其被配置为:基于从高速缓冲存储器存取的 高速缓存块来从多个列表中选择列表,多个列表中的每个列表被分配给多 个高速缓存部分中的相应高速缓存部分,多个列表中的每个列表指示相应 高速缓存部分中的高速缓存块被存取的次序,以及基于所存取的高速缓存 块来对分配给所选定的列表的高速缓存块被存取的次序进行更新。
在示例37中,示例35或36中的任一示例的设备,其中,高速缓冲存 储器控制器被配置为通过以下操作来从多个列表中选择列表:确定所存取 的高速缓存块在高速缓冲存储器中的地址。
在示例38中,示例37的设备,其中,高速缓冲存储器控制器还被配 置为基于所确定的所存取的高速缓存块的地址来从多个列表中选择列表。
在示例39中,示例35至38中的任一示例的设备,其中,高速缓冲存 储器控制器被配置为通过以下操作来从多个列表中选择列表:确定所存取 的高速缓存块在高速缓冲存储器中的地址在表内。
在示例40中,示例39的设备,其中,高速缓冲存储器控制器还被配 置为基于确定所存取的高速缓存块的地址在表内来从多个列表中选择列 表。
在示例41中,示例35至40中的任一示例的设备,其中,高速缓冲存 储器控制器被配置为通过以下操作来从多个列表中选择列表:在表内确定 所存取的高速缓存块在高速缓冲存储器中的地址与所选定的列表相关联。
在示例42中,示例41的设备,其中,高速缓冲存储器控制器还被配 置为基于确定所存取的高速缓存块的地址与所选定的列表相关联来从多个 列表中选择列表。
在示例43中,示例35至42中的任一示例的设备,其中,高速缓冲存 储器控制器被配置为通过以下操作来从多个列表中选择列表:在查找表内 确定所存取的高速缓存块在高速缓冲存储器中的地址与所选定的列表相关 联。
在示例44中,示例43的设备,其中,高速缓冲存储器控制器还被配 置为基于确定所存取的高速缓存块的地址与所选定的列表相关联来从多个 列表中选择列表。
在示例45中,示例35至44中的任一示例的设备,其中,高速缓冲存 储器控制器被配置为响应于高速缓存块被存取而对分配给所选定的列表的 高速缓存块被存取的次序进行更新。
在示例46中,示例35至45中的任一示例的设备,其中,高速缓冲存 储器控制器被配置为通过以下操作来对分配给所选定的列表的高速缓存块 被存取的次序进行更新:对所存取的高速缓存块在由所选定的列表指示的 次序内的位置进行更新。
在示例47中,示例35至46中的任一示例的设备,其中,高速缓冲存 储器控制器被配置为通过以下操作来对分配给所选定的列表的高速缓存块 被存取的次序进行更新:将所存取的高速缓存块的位置更新到由所选定的 列表指示的次序内的头位置。
在示例48中,示例35至47中的任一示例的设备,其中,高速缓冲存 储器控制器还被配置为:使用多个列表中的一个列表来从高速缓冲存储器 返回高速缓存块。
在示例49中,示例35至48中的任一示例的设备,其中,高速缓冲存 储器控制器还被配置为:使用指示更新后的次序的所选定的列表来从高速 缓冲存储器返回高速缓存块。
在示例50中,示例35至49中的任一示例的设备,其中,高速缓冲存 储器控制器还被配置为:将高速缓冲存储器划分成多个高速缓存部分,使 得每个高速缓存部分具有相等的大小。
在示例51中,示例35至50中的任一示例的设备,其中,高速缓冲存 储器控制器还被配置为:基于逐出次序来从多个列表中确定用于逐出过程 的列表。
在示例52中,示例35至51中的任一示例的设备,其中,高速缓冲存 储器控制器还被配置为:基于逐出次序来从所确定的列表中逐出高速缓存 块。
在示例53中,示例36的设备,其中,高速缓冲存储器控制器还被配 置为:基于预确定的逐出次序来从多个列表中确定用于逐出过程的列表。
在示例54中,示例53的设备,其中,高速缓冲存储器控制器还被配 置为:基于预确定的逐出次序来从所确定的列表中逐出高速缓存块。
在示例55中,示例35至54中的任一示例的设备,其中,高速缓冲存 储器控制器还被配置为:基于顺序的逐出次序来从多个列表中确定用于逐 出过程的列表。
在示例56中,示例55的设备,其中,高速缓冲存储器控制器还被配 置为:基于顺序的逐出次序来从所确定的列表中逐出高速缓存块。
在示例57中,示例35至56中的任一示例的设备,其中,高速缓冲存 储器控制器还被配置为:基于非顺序的逐出次序来从多个列表中确定用于 逐出过程的列表。
在示例58中,示例57的设备,其中,高速缓冲存储器控制器还被配 置为:基于非顺序的逐出次序来从所确定的列表中逐出高速缓存块。
在示例59中,示例35至58中的任一示例的设备,其中,高速缓冲存 储器控制器还被配置为:基于所确定的列表的大小与阈值列表大小的比较 来从多个列表中确定用于逐出过程的列表。
在示例60中,示例59的设备,其中,高速缓冲存储器控制器还被配 置为:基于所确定的列表的大小与阈值列表大小的比较来从所确定的列表 中逐出高速缓存块。
在示例61中,示例35至60中的任一示例的设备,其中,高速缓冲存 储器控制器还被配置为:基于所确定的表的大小与预确定的阈值列表大小 的比较来从多个列表中确定用于逐出过程的列表。
在示例62中,示例61的设备,其中,高速缓冲存储器控制器还被配 置为:基于所确定的列表的大小与预确定的阈值列表大小的比较来从所确 定的列表中逐出高速缓存块。
在示例63中,示例35至62中的任一示例的设备,其中,高速缓冲存 储器控制器还被配置为:基于所确定的列表的大小与可变阈值列表大小的 比较来从多个列表中确定用于逐出过程的列表。
在示例64中,示例63的设备,其中,高速缓冲存储器控制器还被配 置为:基于所确定的列表的大小与可变阈值列表大小的比较来从所确定的 列表中逐出高速缓存块。
在示例65中,示例35至64中的任一示例的设备,其中,高速缓冲存 储器控制器还被配置为:确定用于逐出过程的候选高速缓存块在由多个列 表之中的候选高速缓存块被分配给的列表指示的次序内的位置。
在示例66中,示例65的设备,其中,高速缓冲存储器控制器还被配 置为:基于所确定的候选高速缓存块的位置来从候选高速缓存块被分配给 的列表中逐出候选高速缓存块。
在示例67中,示例35至66中的任一示例的设备,其中,高速缓冲存 储器控制器还被配置为:确定候选高速缓存块在由多个列表之中的候选高 速缓存块被分配给的列表指示的次序内的位置。
在示例68中,示例67的设备,其中,高速缓冲存储器控制器还被配 置为:响应于确定候选高速缓存块的位置是尾位置,从候选高速缓存块被 分配给的列表中逐出候选高速缓存块。
在示例69中,一种用于对在存储设备中存取的数据进行缓存的方法, 该方法包括:确定要从存储设备存取的块是否为存储在高速缓冲存储器中 的高速缓存块,高速缓冲存储器被分配有列表,该列表指示高速缓存块从 高速缓冲存储器被存取的次序;响应于确定该块是存储在高速缓冲存储器 中的高速缓存块之中的高速缓存块,确定该块是否满足列表更新标准;以 及响应于确定该块满足列表更新标准,对由列表指示的、高速缓存块从高 速缓冲存储器被存取的次序进行更新。
在示例70中,示例69的方法,其中,确定块是否为存储在高速缓冲 存储器中的高速缓存块包括:确定块在高速缓冲存储器中的地址。
在示例71中,示例69或70中的任一示例的方法,其中,确定块是否 为存储在高速缓冲存储器中的高速缓存块包括:确定块在高速缓冲存储器 中的地址在表内。
在示例72中,示例69至71中的任一示例的方法,其中,确定块是否 为存储在高速缓冲存储器中的高速缓存块包括:在表内确定块在高速缓冲 存储器中的地址与列表相关联。
在示例73中,示例69至72中的任一示例的方法,其中,确定块是否 为存储在高速缓冲存储器中的高速缓存块包括:在查找表内确定块在高速 缓冲存储器中的地址与列表相关联。
在示例74中,示例69至73中的任一示例的方法,其中,确定块是否 满足列表更新标准包括:确定块是否先前在列表的阈值更新次数内被存取。
在示例75中,示例69至74中的任一示例的方法,其中,确定块是否 满足列表更新标准包括:将与块相关联的时间戳值与列表的阈值更新次数 进行比较。
在示例76中,示例75的方法,其中,确定块是否满足列表更新标准 包括:基于时间戳值大于或等于阈值更新次数,确定块满足列表更新标准。
在示例77中,示例69至76中的任一示例的方法,还包括:当对高速 缓存块中的相应高速缓存块的存取使得次序被更新时修改计数值;以及将 修改后的计数值与高速缓存块中的使得列表被更新的相应高速缓存块进行 关联,其中,确定块是否满足列表更新标准包括:将与块相关联的修改后 的计数值与列表的阈值更新次数进行比较。
在示例78中,示例77的方法,其中,确定块是否满足列表更新标准 还包括:基于修改后的计数值大于或等于阈值更新次数,确定块满足列表 更新标准。
在示例79中,示例77或78中的任一示例的方法,还包括:将修改后 的计数值设定为与高速缓存块中的使得列表被更新的相应高速缓存块相关 联的时间戳值,其中,确定块是否满足列表更新标准还包括:将与块相关 联的时间戳值与列表的阈值更新次数进行比较。
在示例80中,示例79的方法,其中,确定块是否满足列表更新标准 包括:基于时间戳值大于或等于阈值更新次数,确定块满足列表更新标准。
在示例81中,示例69至80中的任一示例的方法,其中,对高速缓存 块被存取的次序进行更新包括:对块在由列表指示的次序内的位置进行更 新。
在示例82中,示例69至81中的任一示例的方法,其中,对高速缓存 块被存取的次序进行更新包括:将块的位置更新到由列表指示的次序内的 头位置。
在示例83中,示例69至82中的任一示例的方法,还包括:使用多个 列表中的一个列表从高速缓冲存储器返回高速缓存块,其中,高速缓冲存 储器包括多个高速缓存部分,多个列表中的每个列表被分配给多个高速缓 存部分中的相应高速缓存部分,每个列表指示相应部分中的高速缓存块被 存取的次序。
在示例84中,示例69至83中的任一示例的方法,还包括:使用指示 更新后的次序的列表从高速缓冲存储器中返回高速缓存块。
在示例85中,示例69至84中的任一示例的方法,还包括:将高速缓 冲存储器划分成多个高速缓存部分,使得每个高速缓存部分具有相等的大 小。
在示例86中,示例83的方法,还包括:基于逐出次序来从多个列表 中确定用于逐出过程的列表。
在示例87中,示例86的方法,还包括:基于逐出次序来从所确定的 列表中逐出高速缓存块。
在示例88中,示例83的方法,还包括:基于预确定的逐出次序来从 多个列表中确定用于逐出过程的列表。
在示例89中,示例88的方法,还包括:基于预确定的逐出次序来从 所确定的列表中逐出高速缓存块。
在示例90中,示例83的方法,还包括:基于顺序的逐出次序来从多 个列表中确定用于逐出过程的列表。
在示例91中,示例90的方法,还包括:基于顺序的逐出次序来从所 确定的列表中逐出高速缓存块。
在示例92中,示例83的方法,还包括:基于非顺序的逐出次序来从 多个列表中确定用于逐出过程的列表。
在示例93中,示例92的方法,还包括:基于非顺序的逐出次序来从 所确定的列表中逐出高速缓存块。
在示例94中,示例83的方法,还包括:基于所确定的列表的大小与 阈值列表大小的比较来从多个列表中确定用于逐出过程的列表。
在示例95中,示例94的方法,还包括:基于所确定的列表的大小与 阈值列表大小的比较来从所确定的列表中逐出高速缓存块。
在示例96中,示例83的方法,还包括:基于所确定的列表的大小与 预确定的阈值列表大小的比较来从多个列表中确定用于逐出过程的列表。
在示例97中,示例96的方法,还包括:基于所确定的列表的大小与 预确定的阈值列表大小的比较来从所确定的列表中逐出高速缓存块。
在示例98中,示例83的方法,还包括:基于所确定的列表的大小与 可变阈值列表大小的比较来从多个列表中确定用于逐出过程的列表。
在示例99中,示例98的方法,还包括:基于所确定的列表的大小与 可变阈值列表大小的比较来从所确定的列表中逐出高速缓存块。
在示例100中,示例83的方法,还包括:确定用于逐出过程的候选高 速缓存块在由多个列表之中的候选高速缓存块被分配给的列表指示的次序 内的位置。
在示例101中,示例100的方法,还包括:基于所确定的候选高速缓 存块的位置来从候选高速缓存块被分配给的列表中逐出候选高速缓存块。
在示例102中,示例83的方法,还包括:确定候选高速缓存块在由多 个列表之中的候选高速缓存块被分配给的列表指示的次序内的位置。
在示例103中,示例102的方法,还包括:响应于确定候选高速缓存 块的位置是尾位置,从候选高速缓存块被分配给的列表中逐出候选高速缓 存块。
在示例104中,示例102的方法,还包括:响应于确定候选高速缓存 块的位置由列表的尾位置引用,从候选高速缓存块被分配给的列表中逐出 候选高速缓存块。
在示例105中,一种用于对数据进行缓存的设备,该设备包括:存储 多个高速缓存块的高速缓冲存储器,该高速缓冲存储器被分配有列表,该 列表指示高速缓存块从高速缓冲存储器被存取的次序;以及高速缓冲存储 器控制器,其被配置为:确定从存储设备存取的块是否为存储在高速缓冲 存储器中的高速缓存块;响应于确定该块是存储在高速缓冲存储器中的高 速缓存块之中的高速缓存块,确定该块是否满足列表更新标准;以及响应于确定该块满足列表更新标准,对由列表指示的、高速缓存块从高速缓冲 存储器被存取的次序进行更新。
在示例106中,示例105的设备,其中,高速缓冲存储器控制器被配 置为通过以下操作来确定块是否为存储在高速缓冲存储器中的高速缓存 块:确定块在高速缓冲存储器中的地址。
在示例107中,示例105或106中的任一示例的设备,其中,高速缓 冲存储器控制器被配置为通过以下操作来确定块是否为存储在高速缓冲存 储器中的高速缓存块:确定块在高速缓冲存储器中的地址在表内。
在示例108中,示例105至107中的任一示例的设备,其中,高速缓 冲存储器控制器被配置为通过以下操作来确定块是否为存储在高速缓冲存 储器中的高速缓存块:在表内确定块在高速缓冲存储器中的地址与列表相 关联。
在示例109中,示例105至108中的任一示例的设备,其中,高速缓 冲存储器控制器被配置为通过以下操作来确定块是否为存储在高速缓冲存 储器中的高速缓存块:在查找表内确定块在高速缓冲存储器中的地址与列 表相关联。
在示例110中,示例105至109中的任一示例的设备,其中,高速缓 冲存储器控制器被配置为通过以下操作来确定块是否满足列表更新标准: 确定块是否先前在列表的阈值更新次数内被存取。
在示例111中,示例105至110中的任一示例的设备,其中,高速缓 冲存储器控制器被配置为通过以下操作来确定块是否满足列表更新标准: 将与块相关联的时间戳值与列表的阈值更新次数进行比较。
在示例112中,示例111的设备,其中,高速缓冲存储器控制器被配 置为基于时间戳值大于或等于阈值更新次数来确定块是否满足列表更新标 准。
在示例113中,示例105至112中的任一示例的设备,其中,高速缓 冲存储器控制器被配置为:当对高速缓存块中的相应高速缓存块的存取使 得次序被更新时修改计数值;以及将修改后的计数值与高速缓存块中的使 得列表被更新的相应高速缓存块进行关联,并且高速缓冲存储器控制器还 被配置为通过以下操作来确定所存取的高速缓存块是否满足列表更新标 准:将与块相关联的修改后的计数值与列表的阈值更新次数进行比较。
在示例114中,示例113的设备,其中,高速缓冲存储器控制器被配 置为基于修改后的计数值大于或等于阈值更新次数来确定块是否满足列表 更新标准。
在示例115中,示例113或114中的任一示例的设备,其中,高速缓 冲存储器控制器被配置为将修改后的计数值设定为与高速缓存块中的使得 列表被更新的相应高速缓存块相关联的时间戳值,并且高速缓冲存储器控 制器还被配置为通过将与块相关联的时间戳值与列表的阈值更新次数进行 比较来确定块是否满足列表更新标准。
在示例116中,示例115的设备,其中,高速缓冲存储器控制器被配 置为基于时间戳值大于或等于阈值更新次数来确定块是否满足列表更新标 准。
在示例117中,示例105至116中的任一示例的设备,其中,高速缓 冲存储器控制器被配置为通过以下操作来对高速缓存块被存取的次序进行 更新:对块在由列表指示的次序内的位置进行更新。
在示例118中,示例105至117中的任一示例的设备,其中,高速缓 冲存储器控制器被配置为通过以下操作来对高速缓存块被存取的次序进行 更新:将块的位置更新到由列表指示的次序内的头位置。
在示例119中,示例105至118中的任一示例的设备,其中,高速缓 冲存储器控制器被配置为使用多个列表中的一个列表从高速缓冲存储器返 回高速缓存块,并且高速缓冲存储器包括多个高速缓存部分,多个列表中 的每个列表被分配给多个高速缓存部分中的相应高速缓存部分,每个列表 指示相应高速缓存部分中的高速缓存块被存取的次序。
在示例120中,示例105至119中的任一示例的设备,其中,高速缓 冲存储器控制器被配置为:使用指示更新后的次序的列表从高速缓冲存储 器返回高速缓存块。
在示例121中,示例105至120中的任一示例的设备,其中,高速缓 冲存储器控制器被配置为:将高速缓冲存储器划分成多个高速缓存部分, 使得每个高速缓存部分具有相等的大小。
在示例122中,示例119的设备,其中,高速缓冲存储器控制器被配 置为:基于逐出次序来从多个列表中确定用于逐出过程的列表。
在示例123中,示例122的设备,其中,高速缓冲存储器控制器被配 置为:基于逐出次序来从确定的列表中逐出高速缓存块。
在示例124中,示例119的设备,其中,高速缓冲存储器控制器被配 置为:基于预确定的逐出次序来从多个列表中确定用于逐出过程的列表。
在示例125中,示例124的设备,其中,高速缓冲存储器控制器被配 置为:基于预确定的逐出次序来从所确定的列表中逐出高速缓存块。
在示例126中,示例119的设备,其中,高速缓冲存储器控制器被配 置为:基于顺序的逐出次序来从多个列表中确定用于逐出过程的列表。
在示例127中,示例126的设备,其中,高速缓冲存储器控制器被配 置为:基于顺序的逐出次序来从所确定的列表中逐出高速缓存块。
在示例128中,示例119的设备,其中,高速缓冲存储器控制器被配 置为:基于非顺序的逐出次序来从多个列表中确定用于逐出过程的列表。
在示例129中,示例128的设备,其中,高速缓冲存储器控制器被配 置为:基于非顺序的逐出次序来从所确定的列表中逐出高速缓存块。
在示例130中,示例119的设备,其中,高速缓冲存储器控制器被配 置为:基于所确定的列表的大小与阈值列表大小的比较来从多个列表中确 定用于逐出过程的列表。
在示例131中,示例130的设备,其中,高速缓冲存储器控制器被配 置为:基于所确定的列表的大小与阈值列表大小的比较来从所确定的列表 中逐出高速缓存块。
在示例132中,示例119的设备,其中,高速缓冲存储器控制器被配 置为:基于所确定的列表的大小与预确定的阈值列表大小的比较来从多个 列表中确定用于逐出过程的列表。
在示例133中,示例132的设备,其中,高速缓冲存储器控制器被配 置为:基于所确定的列表的大小与预确定的阈值列表大小的比较来从所确 定的列表中逐出高速缓存块。
在示例134中,示例119的设备,其中,高速缓冲存储器控制器被配 置为:基于所确定的列表的大小与可变的阈值列表大小的比较来从多个列 表中确定用于逐出过程的列表。
在示例135中,示例134的设备,其中,高速缓冲存储器控制器被配 置为:基于所确定的列表的大小与可变阈值列表大小的比较来从所确定的 列表中逐出高速缓存块。
在示例136中,示例119的设备,其中,高速缓冲存储器控制器被配 置为:确定用于逐出过程的候选高速缓存块在由多个列表之中的候选高速 缓存块被分配给的列表指示的次序内的位置。
在示例137中,示例136的设备,其中,高速缓冲存储器控制器被配 置为:基于所确定的候选高速缓存块的位置来从候选高速缓存块被分配给 的列表中逐出候选高速缓存块。
在示例138中,示例119的设备,其中,高速缓冲存储器控制器被配 置为:确定候选高速缓存块在由多个列表之中的候选高速缓存块被分配给 的列表指示的次序内的位置。
在示例139中,示例138的设备,其中,高速缓冲存储器控制器被配 置为:响应于确定候选高速缓存块的位置是尾位置,从候选高速缓存块被 分配给的列表中逐出候选高速缓存块。
在示例140中,一种用于对在存储设备中存取的数据进行缓存的方法, 该方法包括:基于从高速缓冲存储器存取的高速缓存块来从第一列表和第 二列表之中选择列表,该高速缓冲存储器包括多个高速缓存部分,该多个 高速缓存部分包括第一高速缓存部分和第二高速缓存部分,第一列表被分 配给第一高速缓存部分并且第二列表被分配给第二高速缓存部分,第一列 表指示第一高速缓存部分中的高速缓存块被存取的次序,第二列表指示第 二高速缓存部分中的高速缓存块被存取的次序;确定所存取的块是否满足 列表更新标准;以及基于确定所存取的高速缓存块满足列表更新标准,对 分配给所选定的列表的高速缓存块从高速缓冲存储器被存取的次序进行更 新。
在示例141中,一种用于对在存储设备中存取的数据进行缓存的方法, 该方法包括:基于从高速缓冲存储器存取的高速缓存块来从多个列表中选 择列表,高速缓冲存储器被划分成多个高速缓存部分,多个列表中的每个 列表被分配给多个高速缓存部分中的相应高速缓存部分,多个列表中的每 个列表指示相应高速缓存部分中的高速缓存块被存取的次序;确定所存取 的高速缓存块是否满足列表更新标准;以及基于确定所存取的高速缓存块 满足列表更新标准,对分配给所选定的列表的高速缓存块从高速缓冲存储 器被存取的次序进行更新。
在示例142中,示例140或141中的任一示例的方法,其中,从多个 列表中选择列表包括:确定所存取的高速缓存块在高速缓冲存储器中的地 址。
在示例143中,示例142的方法,其中,从多个列表中选择列表还包 括:基于所确定的所存取的高速缓存块的地址,从多个列表中选择列表。
在示例144中,示例140至143中的任一示例的方法,其中,从多个 列表中选择列表包括:确定所存取的高速缓存块在高速缓冲存储器中的地 址是否在表内。
在示例145中,示例144的方法,其中,从多个列表中选择列表还包 括:基于确定所存取的高速缓存块的地址在表内,从多个列表中选择列表。
在示例146中,示例140至145中的任一示例的方法,其中,从多个 列表中选择列表包括:在表内确定所存取的高速缓存块在高速缓冲存储器 中的地址是否与所选定的列表相关联。
在示例147中,示例146的方法,其中,从多个列表中选择列表还包 括:基于确定所存取的高速缓存块的地址与所选定的列表相关联,从多个 列表中选择列表。
在示例148中,示例140至147中的任一示例的方法,其中,从多个 列表中选择列表包括:在查找表内确定所存取的高速缓存块在高速缓冲存 储器中的地址与所选定的列表相关联。
在示例149中,示例148的方法,其中,从多个列表中选择列表还包 括:基于确定所存取的高速缓存块的地址与所选定的列表相关联,从多个 列表中选择列表。
在示例150中,示例140至149中的任一示例的方法,其中,确定所 存取的高速缓存块是否满足列表更新标准包括:确定所存取的高速缓存块 是否先前在所选定的列表的阈值更新次数内被存取。
在示例151中,示例140至150中的任一示例的方法,其中,确定所 存取的高速缓存块是否满足列表更新标准包括:将与所存取的高速缓存块 相关联的时间戳值与所选定的列表的阈值更新次数进行比较。
在示例152中,示例151的方法,其中,确定所存取的高速缓存块是 否满足列表更新标准包括:基于时间戳值大于或等于阈值更新次数,确定 所存取的高速缓存块满足列表更新标准。
在示例153中,示例140至152中的任一示例的方法,还包括:每次 对高速缓存块中的相应高速缓存块进行的存取使得所选定的列表的次序被 更新时修改计数值;以及将修改后的计数值与高速缓存块中的使得所选定 的列表被更新的相应高速缓存块进行关联,其中,确定所存取的高速缓存 块是否满足列表更新标准包括:将与所存取的高速缓存块相关联的修改后 的计数值与所选定的列表的阈值更新次数进行比较。
在示例154中,示例153的方法,其中,确定所存取的高速缓存块是 否满足列表更新标准还包括:基于修改后的计数值大于或等于阈值更新次 数,确定所存取的高速缓存块满足列表更新标准。
在示例155中,示例153或154中的任一示例的方法,还包括:将修 改后的计数值设定为与高速缓存块中的使得所选定的列表被更新的相应高 速缓存块相关联的时间戳值,其中,确定所存取的高速缓存块是否满足列 表更新标准还包括:将与所存取的高速缓存块相关联的时间戳值与所选定 的列表的阈值更新次数进行比较。
在示例156中,示例155的方法,其中,确定所存取的高速缓存块是 否满足列表更新标准包括:基于时间戳值大于或等于阈值更新次数,确定 所存取的高速缓存块满足列表更新标准。
在示例157中,示例140至156中的任一示例的方法,其中,对分配 给所选定的列表的高速缓存块被存取的次序进行更新包括:响应于高速缓 存块被存取,对分配给所选定的列表的高速缓存块被存取的次序进行更新。
在示例158中,示例140至157中的任一示例的方法,其中,对分配 给所选定的列表的高速缓存块被存取的次序进行更新包括:对所存取的高 速缓存块在由所选定的列表指示的次序内的位置进行更新。
在示例159中,示例140至158中的任一示例的方法,其中,对分配 给所选定的列表的高速缓存块被存取的次序进行更新包括:将所存取的高 速缓存块的位置更新到由所选定的列表指示的次序内的头位置。
在示例160中,示例140至159中的任一示例的方法,还包括:使用 多个列表中的列表从高速缓冲存储器返回高速缓存块。
在示例161中,示例140至160中的任一示例的方法,还包括:使用 指示更新后的次序的所选定的列表从高速缓冲存储器返回高速缓存块。
在示例162中,示例140至161中的任一示例的方法,还包括:将高 速缓冲存储器划分成多个高速缓存部分,使得每个高速缓存部分具有相等 的大小。
在示例163中,示例140至162中的任一示例的方法,还包括:基于 逐出次序来从多个列表中确定用于逐出过程的列表。
在示例164中,示例163的方法,还包括:基于逐出次序来从所确定 的列表中逐出高速缓存块。
在示例165中,示例140至164中的任一示例的方法,还包括:基于 预确定的逐出次序来从多个列表中确定用于逐出过程的列表。
在示例166中,示例165的方法,还包括:基于预确定的逐出次序来 从所确定的列表中逐出高速缓存块。
在示例167中,示例140至166中的任一示例的方法,还包括:基于 顺序的逐出次序来从多个列表中确定用于逐出过程的列表。
在示例168中,示例167的方法,还包括:基于顺序的逐出过程来从 所确定的列表中逐出高速缓存块。
在示例169中,示例140至168中的任一示例的方法,还包括:基于 非顺序的逐出次序来从多个列表中确定用于逐出过程的列表。
在示例170中,示例169的方法,还包括:基于非顺序的逐出次序来 从所确定的列表中逐出高速缓存块。
在示例171中,示例140至170中的任一示例的方法,还包括:基于 所确定的列表的大小与阈值列表大小的比较来从多个列表中确定用于逐出 过程的列表。
在示例172中,示例171的方法,还包括:基于所确定的列表的大小 与阈值列表大小的比较来从所确定的列表中逐出高速缓存块。
在示例173中,示例140至172中的任一示例的方法,还包括:基于 所确定的列表的大小与预确定的阈值列表大小的比较来从多个列表中确定 用于逐出过程的列表。
在示例174中,示例173的方法,还包括:基于所确定的列表的大小 与预确定的阈值列表大小的比较来从所确定的列表中逐出高速缓存块。
在示例175中,示例140至174中的任一示例的方法,还包括:基于 所确定的列表的大小与可变阈值列表大小的比较来从多个列表中确定用逐 出过程的列表。
在示例176中,示例175的方法,还包括:基于所确定的列表的大小 与可变阈值列表大小的比较来从所确定的列表中逐出高速缓存块。
在示例177中,示例140至176中的任一示例的方法,还包括:确定 用于逐出过程的候选高速缓存块在由多个列表之中的候选高速缓存块被分 配给的列表指示的次序内的位置。
在示例178中,示例177的方法,还包括:基于所确定的候选高速缓 存块的位置,从候选高速缓存块被分配给的列表中逐出候选高速缓存块。
在示例179中,示例140至178中的任一示例的方法,还包括:确定 候选高速缓存块在由多个列表中的候选高速缓存块被分配给的列表指示的 次序内的位置。
在示例180中,示例179的方法,还包括:响应于确定候选高速缓存 块的位置是尾位置,从候选高速缓存块被分配给的列表中逐出候选高速缓 存块。
在示例181中,一种用于对在存储设备中存取的数据进行缓存的设备, 该设备包括:高速缓冲存储器,其被划分成包括第一高速缓存部分和第二 高速缓存部分的多个高速缓存部分;以及高速缓冲存储器控制器,其被配 置为:基于从高速缓冲存储器存取的高速缓存块来从第一列表和第二列表 之中选择列表,第一列表被分配给第一高速缓存部分并且第二列表被分配 给第二高速缓存部分,第一列表指示第一高速缓存部分中的高速缓存块被 存取的次序,第二列表指示第二高速缓存部分中的高速缓存块被存取的次 序;以及确定所存取的高速缓存块是否满足列表更新标准;以及基于确定 所存取的高速缓存块满足列表更新标准,对分配给所选定的列表的高速缓 存块从高速缓冲存储器被存取的次序进行更新。
在示例182中,一种用于对在存储设备中存取的数据进行缓存的设备, 该设备包括:高速缓冲存储器,其被划分成多个高速缓存部分;以及高速 缓冲存储器控制器,其被配置为:基于从高速缓冲存储器存取的高速缓存 块来从多个列表中选择列表,多个列表中的每个列表被分配给多个高速缓 存部分中的相应高速缓存部分,多个列表中的每个列表指示相应部分中的 高速缓存块被存取的次序;确定所存取的高速缓存块是否满足列表更新标 准;以及基于确定所存取的高速缓存块满足列表更新标准,对分配给所选 定的列表的高速缓存块从高速缓冲存储器被存取的次序进行更新。
在示例183中,示例181或182中的任一示例的设备,其中,高速缓 冲存储器控制器被配置为通过以下操作来从多个列表中选择列表:确定所 存取的高速缓存块在高速缓冲存储器中的地址。
在示例184中,示例183的设备,其中,高速缓冲存储器控制器还被 配置为基于所确定的所存取的高速缓存块的地址来从多个列表中选择列 表。
在示例185中,示例181至184中的任一示例的设备,其中,高速缓 冲存储器控制器被配置为通过以下操作来从多个列表中选择列表:确定所 存取的高速缓存块在高速缓冲存储器中的地址是否在表内。
在示例186中,示例185的设备,其中,高速缓冲存储器控制器还被 配置为基于确定所存取的高速缓存块的地址在表内来从多个列表中选择列 表。
在示例187中,示例181至186中的任一示例的设备,其中,高速缓 冲存储器控制器被配置为通过以下操作来从多个列表中选择列表:在表内 确定所存取的高速缓存块在高速缓冲存储器中的地址是否与所选定的列表 相关联。
在示例188中,示例187的设备,其中,高速缓冲存储器控制器还被 配置为基于确定所存取的高速缓存块的地址与所选定的列表相关联来从多 个列表中选择列表。
在示例189中,示例181至188中的任一示例的设备,其中,高速缓 冲存储器控制器被配置为通过以下操作来从多个列表中选择列表:在查找 表内确定所存取的高速缓存块在高速缓冲存储器中的地址是否与所选定的 列表相关联。
在示例190中,示例189的设备,其中,高速缓冲存储器控制器还被 配置为基于确定所存取的高速缓存块的地址与所选定的列表相关联来从多 个列表中选择列表。
在示例191中,示例181至190中的任一示例的设备,其中,高速缓 冲存储器控制器被配置为通过以下操作来确定所存取的高速缓存块是否满 足列表更新标准:确定所存取的高速缓存块是否先前在所选定的列表的阈 值更新次数内被存取。
在示例192中,示例181至191中的任一示例的设备,其中,高速缓 冲存储器控制器被配置为通过以下操作来确定所存取的高速缓存块是否满 足列表更新标准:将与所存取的高速缓存块相关联的时间戳值与所选定的 列表的阈值更新次数进行比较。
在示例193中,示例192的设备,其中,高速缓冲存储器控制器还被 配置为通过以下操作来确定所存取的高速缓存块是否满足列表更新标准: 基于时间戳值大于或等于阈值更新次数,确定所存取的高速缓存块满足列 表更新标准。
在示例194中,示例181至193中的任一示例的设备,其中,高速缓 冲存储器控制器被配置为:每次对高速缓存块中的相应高速缓存块进行的 存取使得所选定的列表的次序被更新时修改计数值;以及将修改后的计数 值与高速缓存块中的相应高速缓存块相关联,并且高速缓冲存储器控制器 还被配置为通过以下操作来确定所存取的高速缓存块是否满足列表更新标 准:将与所存取的高速缓存块相关联的修改后的计数值与所选定的列表的阈值更新次数进行比较。
在示例195中,示例194的设备,其中,高速缓冲存储器控制器还被 配置为通过以下操作来确定所存取的高速缓存块是否满足列表更新标准: 基于修改后的计数值大于或等于阈值更新次数,确定所存取的高速缓存块 满足列表更新标准。
在示例196中,示例194或195中的任一示例的设备,其中,高速缓 冲存储器控制器被配置为:将修改后的计数值设定为与高速缓存块中的使 得所选定的列表被更新的相应高速缓存块相关联的时间戳值,并且高速缓 冲存储器控制器还被配置为通过以下操作来确定所存取的高速缓存块是否 满足列表更新标准:将与所存取的高速缓存块相关联的时间戳值与所选定 的列表的阈值更新次数进行比较。
在示例197中,示例196的设备,其中,高速缓冲存储器控制器还被 配置为基于时间戳值大于或等于阈值更新次数来确定所存取的高速缓存块 是否满足列表更新标准。
在示例198中,示例181至197中的任一示例的设备,其中,高速缓 冲存储器控制器被配置为响应于高速缓存块被存取而对分配给所选定的列 表的高速缓存块被存取的次序进行更新。
在示例199中,示例181至198中的任一示例的设备,其中,高速缓 冲存储器控制器被配置为通过以下操作来对分配给所选定的列表的高速缓 存块被存取的次序进行更新:对所存取的高速缓存块在由所选定的列表指 示的次序内的位置进行更新。
在示例200中,示例181至199中的任一示例的设备,其中,高速缓 冲存储器控制器被配置为通过以下操作来对分配给所选定的列表的高速缓 存块被存取的次序进行更新:将所存取的高速缓存块的位置更新到由所选 定的列表指示的次序内的头位置。
在示例201中,示例181至200中的任一示例的设备,其中,高速缓 冲存储器控制器被配置为:使用多个列表中的列表来从高速缓冲存储器返 回高速缓存块。
在示例202中,示例181至201中的任一示例的设备,其中,高速缓 冲存储器控制器被配置为:使用指示更新后的次序的所选定的列表来从高 速缓冲存储器返回高速缓存块。
在示例203中,示例181至202中的任一示例的设备,其中,高速缓 冲存储器控制器被配置为:将高速缓冲存储器划分成多个高速缓存部分, 使得每个高速缓存部分具有相等的大小。
在示例204中,示例181至203中的任一示例的设备,其中,高速缓 冲存储器控制器被配置为:基于逐出次序来从多个列表中确定用于逐出过 程的列表。
在示例205中,示例204的设备,其中,高速缓冲存储器控制器被配 置为:基于逐出次序来从所确定的列表中逐出高速缓存块。
在示例206中,示例181至205中的任一示例的设备,其中,高速缓 冲存储器控制器被配置为:基于预确定的逐出次序来从多个列表中确定用 于逐出过程的列表。
在示例207中,示例206的设备,其中,高速缓冲存储器控制器被配 置为:基于预确定的逐出次序来从所确定的列表中逐出高速缓存块。
在示例208中,示例181至205中的任一示例的设备,其中,高速缓 冲存储器控制器被配置为:基于顺序的逐出次序来从多个列表中确定用于 逐出过程的列表。
在示例209中,示例208的设备,其中,高速缓冲存储器控制器被配 置为:基于顺序的逐出次序来从所确定的列表中逐出高速缓存块。
在示例210中,示例181至209中的任一示例的设备,其中,高速缓 冲存储器控制器被配置为:基于非顺序的逐出次序来从多个列表中确定用 于逐出过程的列表。
在示例211中,示例210的设备,其中,高速缓冲存储器控制器被配 置为:基于非顺序的逐出次序来从确定的列表中逐出高速缓存块。
在示例212中,示例181至209中的任一示例的设备,其中,高速缓 冲存储器控制器被配置为:基于所确定的列表的大小与阈值列表大小的比 较来从多个列表中确定用于逐出过程的列表。
在示例213中,示例212的设备,其中,高速缓冲存储器控制器被配 置为:基于所确定的列表的大小与阈值列表大小的比较来从所确定的列表 中逐出高速缓存块。
在示例214中,示例181至213中的任一示例的设备,其中,高速缓 冲存储器控制器被配置为:基于所确定的列表的大小与预确定的阈值列表 大小的比较来从多个列表中确定用于逐出过程的列表。
在示例215中,示例214的设备,其中,高速缓冲存储器控制器被配 置为:基于所确定的列表的大小与预确定的阈值列表大小的比较来从所确 定的列表中逐出高速缓存块。
在示例216中,示例181至215中的任一示例的设备,其中,高速缓 冲存储器控制器被配置为:基于所确定的列表的大小与可变阈值列表大小 的比较来从多个列表中确定用于逐出过程的列表。
在示例217中,示例216的设备,其中,高速缓冲存储器控制器被配 置为:基于所确定的列表的大小与可变阈值列表大小的比较来从所确定的 列表中逐出高速缓存块。
在示例218中,示例181至217中的任一示例的设备,其中,高速缓 冲存储器控制器被配置为:确定用于逐出过程的候选高速缓存在由多个列 表之中的候选高速缓存被分配给的列表指示的次序内的位置。
在示例219中,示例218的设备,其中,高速缓冲存储器控制器被配 置为:基于所确定的候选高速缓存块的位置,从候选高速缓存块被分配给 的列表中逐出候选高速缓存块。
在示例220中,示例181至219中的任一示例的设备,其中,高速缓 冲存储器控制器被配置为:确定候选高速缓存块在由多个列表之中的候选 高速缓存块被分配给的列表指示的次序内的位置。
在示例221中,示例220的设备,其中,高速缓冲存储器控制器被配 置为:响应于确定候选高速缓存块的位置是尾位置,从候选高速缓存块被 分配给的列表中逐出候选高速缓存块。
在示例222中,示例220的设备,其中,高速缓冲存储器控制器被配 置为:响应于确定候选高速缓存块的位置是尾位置,从候选高速缓存块被 分配给的列表中逐出候选高速缓存块。
在示例223中,一种计算设备,包括被配置为执行示例1至34中的任 一示例的方法的处理电路。
在示例224中,一种计算设备,包括被配置为执行示例69至103中的 任一示例的方法的处理电路。
在示例225中,一种计算设备,包括被配置为执行示例140至180中 的任一示例的方法的处理电路。
在示例226中,一种处理电路,其被配置为执行示例1至34中的任一 示例的方法。
在示例227中,一种处理电路,其被配置为执行示例69至103中的任 一示例的方法。
在示例228中,一种处理电路,其被配置为执行示例140至180中的 任一示例的方法。
在示例229中,一种存储有指令的非暂时性计算机可读介质,该指令 在由处理器执行时使得处理器执行示例1至20中的任一示例的方法。
在示例230中,一种存储有指令的非暂时性计算机可读介质,该指令 在由处理器执行时使得处理器执行示例69至103中的任一示例的方法。
在示例231中,一种存储有指令的非暂时性计算机可读介质,该指令 在由处理器执行时使得处理器执行示例140至180中的任一示例的方法。
在示例232中,一种存储有指令的非暂时性计算机可读介质,该指令 在由计算设备的处理电路执行时使得计算设备执行示例1至20中的任一示 例的方法。
在示例233中,一种存储有指令的非暂时性计算机可读介质,该指令 在由计算设备的处理电路执行时使得计算设备执行示例69至103中的任一 示例的方法。
在示例234中,一种存储有指令的非暂时性计算机可读介质,该指令 在由计算设备的处理电路执行时使得计算设备执行示例140至180中的任 一示例的方法。
虽然上面的说明书和相关的附图可以将电子设备组件描绘为单独的元 件,但是技术人员将意识到将分立的元件组合或集成为单个元件的各种可 能性。这可以包括:组合两个或更多个电路以形成单个电路,将两个或更 多个电路安装到公共芯片或底座上以形成集成元件,在公共处理器核心上 执行分立的软件组件等。相反,技术人员将认识到将单个元件分离成两个 或更多个分立的元件的可能性,例如,将单个电路拆分成两个或更多个单 独的电路,将芯片或底座分离成最初设置于其上的分立元件,将软件组件 分离成两个或更多个部分并且在单独的处理器核心上执行每个部分等。
应意识到,本文详述的方法的实现本质上是说明性的,并且因此理解 为能够实现在对应的设备中。同样意识到,本文详述的设备的实现理解为 能够实现为对应的方法。因此应理解,与本文详述的方法相对应的设备可 以包括被配置为执行相关方法的每个方面的一个或多个组件。
在上面的说明书中定义的所有缩略词另外在本文包含的所有权利要求 中适用。
本文所使用的术语仅出于描述特定示例方面的目的,而并不旨在进行 限制。如本文所使用的,单数形式“一”、“一个”以及“该”可以旨在还 包括复数形式,除非上下文另外明确指出。术语“和/或”包括相关联的所 列项中的一个或多个的任何和全部组合。术语“包括”、“包括有”、“包含” 以及“具有”是包含性的,并且因此指定所陈述的特征、整体、步骤、操 作、元件、和/或组件的存在,但是不排除一个或多个其它特征、整体、步 骤、操作、元件、组件、和/或其组的存在或添加。本文所描述的方法步骤、 过程以及操作不应解释为必需要求其以所讨论或所示出的特定次序来执 行,除非具体标识为执行次序。还应理解,可以采用附加的或可替代的步 骤。
虽然在本文中可以使用术语第一、第二、第三等来描述各种元件、组 件、区域、层和/或部分,但是这些元件、组件、区域、层和/或部分不应受 这些术语限制。这些术语仅可以用于将一个元件、组件、区域、层或部分 与另一区域、层或部分区分开。当在本文使用时,诸如“第一”、“第二” 以及其它数字项的术语不暗示顺序或次序,除非上下文明确指示。因此, 下面讨论的第一元件、组件、区域、层或部分可以称为第二元件、组件、 区域、层或部分,而不脱离示例方面的教导。
虽然已经参考具体方面特别地示出并描述了公开内容,但是本领域技 术人员应理解,可以在不脱离如由随附权利要求限定的公开内容的精神和 范围的情况下在其中进行形式和细节上的各种改变。本公开的各种方面不 一定相互排斥,因为本公开的一些方面可以与本公开的一个或多个其它方 面组合以形成新的方面。公开内容的范围因此由随附权利要求指示,并且 因此旨在包含落入权利的等同内容的含义和范围内的所有改变。

Claims (25)

1.一种用于对在存储设备中存取的数据进行缓存的方法,所述方法包括:
基于从高速缓冲存储器存取的高速缓存块来从多个列表中选择列表,所述高速缓冲存储器被划分成多个高速缓存部分,所述多个列表中的每个列表被分配给所述多个高速缓存部分中的相应高速缓存部分,所述多个列表中的每个列表指示所述相应高速缓存部分中的高速缓存块被存取的次序;
确定所存取的高速缓存块是否满足列表更新标准;以及
基于确定所存取的高速缓存块满足所述列表更新标准,对分配给所选定的列表的高速缓存块从所述高速缓冲存储器被存取的所述次序进行更新。
2.根据权利要求1所述的方法,其中,从所述多个列表中选择所述列表包括:
在查找表内确定所存取的高速缓存块在所述高速缓冲存储器中的地址是否与所选定的列表相关联。
3.根据权利要求2所述的方法,其中,从所述多个列表中选择所述列表还包括:
基于确定所存取的高速缓存块的所述地址与所选定的列表相关联,从所述多个列表中选择所述列表。
4.根据权利要求1至3中任一项所述的方法,其中,确定所存取的高速缓存块是否满足所述列表更新标准包括:
确定所存取的高速缓存块是否先前在所选定的列表的阈值更新次数内被存取。
5.根据权利要求1所述的方法,还包括:
每次对高速缓存块中的相应高速缓存块进行的存取使得所选定的列表的所述次序被更新时对计数值进行修改;以及
将修改后的计数值与高速缓存块中的使得所选定的列表被更新的所述相应高速缓存块进行关联,
其中,确定所存取的高速缓存块是否满足所述列表更新标准包括:
将与所存取的高速缓存块相关联的所述修改后的计数值与所选定的列表的阈值更新次数进行比较。
6.根据权利要求5所述的方法,其中,确定所存取的高速缓存块是否满足所述列表更新标准还包括:
基于所述修改后的计数值大于或等于所述阈值更新次数,确定所存取的高速缓存块满足所述列表更新标准。
7.根据权利要求5或6中任一项所述的方法,还包括:
将所述修改后的计数值设定为与高速缓存块中的使得所选定的列表被更新的所述相应高速缓存块相关联的时间戳值,
其中,确定所存取的高速缓存块是否满足所述列表更新标准还包括:
将与所存取的高速缓存块相关联的所述时间戳值与所选定的列表的阈值更新次数进行比较。
8.根据权利要求1至6中任一项所述的方法,其中,对分配给所选定的列表的高速缓存块被存取的所述次序进行更新包括:
将所存取的高速缓存块的位置更新到由所选定的列表指示的所述次序内的头位置。
9.根据权利要求1至6中任一项所述的方法,还包括:
使用指示更新后的次序的所选定的列表来从所述高速缓冲存储器返回高速缓存块。
10.根据权利要求1至6中任一项所述的方法,还包括:
基于逐出次序来从所述多个列表中确定用于逐出过程的列表。
11.根据权利要求10所述的方法,还包括:
基于所述逐出次序来从所确定的列表中逐出高速缓存块。
12.一种用于对在存储设备中存取的数据进行缓存的方法,所述方法包括:
基于从高速缓冲存储器存取的高速缓存块来从多个列表中选择列表,所述高速缓冲存储器被划分成多个高速缓存部分,所述多个列表中的每个列表被分配给所述多个高速缓存部分中的相应高速缓存部分,所述多个列表中的每个列表指示所述相应高速缓存部分中的高速缓存块被存取的次序;以及
基于所存取的高速缓存块来对分配给所选定的列表的高速缓存块被存取的所述次序进行更新。
13.根据权利要求12所述的方法,其中,从所述多个列表中选择所述列表包括:
确定所存取的高速缓存块在所述高速缓冲存储器中的地址。
14.根据权利要求12或13中任一项所述的方法,还包括:
使用指示更新后的次序的所选定的列表来从所述高速缓冲存储器返回高速缓存块。
15.根据权利要求12或13中任一项所述的方法,还包括:
基于顺序的逐出次序来从所述多个列表中确定用于逐出过程的列表。
16.根据权利要求15所述的方法,还包括:
基于所述顺序的逐出次序来从所确定的列表中逐出高速缓存块。
17.一种用于对数据进行缓存的设备,所述设备包括:
高速缓冲存储器,其存储多个高速缓存块,所述高速缓冲存储器被分配有列表,所述列表指示高速缓存块从所述高速缓冲存储器被存取的次序;以及
高速缓冲存储器控制器,其被配置为
确定要从存储设备存取的块是否为存储在所述高速缓冲存储器中的高速缓存块;
响应于确定所述块是存储在所述高速缓冲存储器中的高速缓存块之中的一个高速缓存块,确定所述块是否满足列表更新标准;以及
响应于确定所述块满足所述列表更新标准,对由所述列表指示的、高速缓存块从所述高速缓冲存储器被存取的所述次序进行更新。
18.根据权利要求17所述的设备,其中,所述高速缓冲存储器控制器被配置为使用多个列表中的一个列表从所述高速缓冲存储器返回高速缓存块,并且
所述高速缓冲存储器包括多个高速缓存部分,所述多个列表中的每个列表被分配给所述多个高速缓存部分中的相应高速缓存部分,每个列表指示所述相应高速缓存部分中的高速缓存块被存取的次序。
19.根据权利要求17至18中任一项所述的设备,其中,所述高速缓冲存储器控制器被配置为:
使用指示更新后的次序的所述列表来从所述高速缓冲存储器返回高速缓存块。
20.根据权利要求17至19中任一项所述的设备,其中,所述高速缓冲存储器控制器被配置为:
将所述高速缓冲存储器划分成多个高速缓存部分,使得每个高速缓存部分具有相等的大小。
21.根据权利要求18所述的设备,其中,所述高速缓冲存储器控制器被配置为:
基于逐出次序来从所述多个列表中确定用于逐出过程的列表。
22.根据权利要求20所述的设备,其中,所述高速缓冲存储器控制器被配置为:
基于所述逐出次序来从所确定的列表中逐出高速缓存块。
23.一种计算设备,包括被配置为执行根据权利要求1或12中任一项所述的方法的处理电路。
24.一种处理电路,其被配置为执行根据权利要求1或12中任一项所述的方法。
25.一种存储有指令的非暂时性计算机可读介质,所述指令在由处理器执行时使得所述处理器执行根据权利要求1或12中任一项所述的方法。
CN201810154756.XA 2017-03-23 2018-02-23 用于高性能高速缓存的基于近期最少使用的热跟踪机制增强 Pending CN108628770A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/466,986 US10599585B2 (en) 2017-03-23 2017-03-23 Least recently used-based hotness tracking mechanism enhancements for high performance caching
US15/466,986 2017-03-23

Publications (1)

Publication Number Publication Date
CN108628770A true CN108628770A (zh) 2018-10-09

Family

ID=63450454

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810154756.XA Pending CN108628770A (zh) 2017-03-23 2018-02-23 用于高性能高速缓存的基于近期最少使用的热跟踪机制增强

Country Status (3)

Country Link
US (1) US10599585B2 (zh)
CN (1) CN108628770A (zh)
DE (1) DE102018106986A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117130792A (zh) * 2023-10-26 2023-11-28 腾讯科技(深圳)有限公司 缓存对象的处理方法、装置、设备及存储介质

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109327396A (zh) * 2018-12-03 2019-02-12 中国人民解放军陆军工程大学 路由查表电路中的哈希表缓变更新方法
KR20200085522A (ko) * 2019-01-07 2020-07-15 에스케이하이닉스 주식회사 이종 메모리를 갖는 메인 메모리 장치, 이를 포함하는 컴퓨터 시스템 및 그것의 데이터 관리 방법
US11853250B2 (en) 2021-09-28 2023-12-26 Shanghai Zhaoxin Semiconductor Co., Ltd. Interconnect interface

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5590310A (en) * 1993-01-14 1996-12-31 Integrated Device Technology, Inc. Method and structure for data integrity in a multiple level cache system
US20050235114A1 (en) * 2002-11-14 2005-10-20 International Business Machines Corporation System and method for adaptively managing pages in a memory
US20060143396A1 (en) * 2004-12-29 2006-06-29 Mason Cabot Method for programmer-controlled cache line eviction policy
US7469320B2 (en) * 2005-11-04 2008-12-23 Sun Microsystems, Inc. Adaptive replacement cache
US20140229680A1 (en) * 2013-02-11 2014-08-14 Empire Technology Development Llc Aggregating Cache Eviction Notifications to a Directory
US20150088805A1 (en) * 2013-09-20 2015-03-26 Oracle International Corporation Automatic caching of scan and random access data in computing systems
EP2965209A1 (en) * 2013-03-07 2016-01-13 QUALCOMM Incorporated Critical-word-first ordering of cache memory fills to accelerate cache memory accesses, and related processor-based systems and methods

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6591346B1 (en) * 2001-01-19 2003-07-08 Sun Microsystems, Inc. Mechanism for managing an object cache
US7177853B1 (en) * 2002-02-21 2007-02-13 Emc Corporation Cache management via statistically adjusted time stamp queue
US7424577B2 (en) * 2005-08-26 2008-09-09 Network Appliance, Inc. Dynamic optimization of cache memory
US8429351B1 (en) * 2008-03-28 2013-04-23 Emc Corporation Techniques for determining an amount of data to prefetch
US9164702B1 (en) * 2012-09-07 2015-10-20 Google Inc. Single-sided distributed cache system
US10114849B2 (en) * 2013-02-20 2018-10-30 Quick Eye Technologies Inc. Managing changes to information
US20140258628A1 (en) * 2013-03-11 2014-09-11 Lsi Corporation System, method and computer-readable medium for managing a cache store to achieve improved cache ramp-up across system reboots
US10216632B2 (en) * 2013-12-30 2019-02-26 Michael Henry Kass Memory system cache eviction policies
US9779031B2 (en) * 2015-06-17 2017-10-03 International Business Machines Corporation Caching policies for selection and replacement of objects

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5590310A (en) * 1993-01-14 1996-12-31 Integrated Device Technology, Inc. Method and structure for data integrity in a multiple level cache system
US20050235114A1 (en) * 2002-11-14 2005-10-20 International Business Machines Corporation System and method for adaptively managing pages in a memory
US20060143396A1 (en) * 2004-12-29 2006-06-29 Mason Cabot Method for programmer-controlled cache line eviction policy
US7469320B2 (en) * 2005-11-04 2008-12-23 Sun Microsystems, Inc. Adaptive replacement cache
US20140229680A1 (en) * 2013-02-11 2014-08-14 Empire Technology Development Llc Aggregating Cache Eviction Notifications to a Directory
EP2965209A1 (en) * 2013-03-07 2016-01-13 QUALCOMM Incorporated Critical-word-first ordering of cache memory fills to accelerate cache memory accesses, and related processor-based systems and methods
US20150088805A1 (en) * 2013-09-20 2015-03-26 Oracle International Corporation Automatic caching of scan and random access data in computing systems

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117130792A (zh) * 2023-10-26 2023-11-28 腾讯科技(深圳)有限公司 缓存对象的处理方法、装置、设备及存储介质
CN117130792B (zh) * 2023-10-26 2024-02-20 腾讯科技(深圳)有限公司 缓存对象的处理方法、装置、设备及存储介质

Also Published As

Publication number Publication date
DE102018106986A1 (de) 2018-09-27
US20180276139A1 (en) 2018-09-27
US10599585B2 (en) 2020-03-24

Similar Documents

Publication Publication Date Title
TWI545435B (zh) 於階層式快取處理器中之協調預取
CN108628770A (zh) 用于高性能高速缓存的基于近期最少使用的热跟踪机制增强
US8473689B2 (en) Predictive sequential prefetching for data caching
US7380065B2 (en) Performance of a cache by detecting cache lines that have been reused
US6427188B1 (en) Method and system for early tag accesses for lower-level caches in parallel with first-level cache
US9734059B2 (en) Methods and apparatus for data cache way prediction based on classification as stack data
US8583874B2 (en) Method and apparatus for caching prefetched data
US20130007373A1 (en) Region based cache replacement policy utilizing usage information
US10474578B2 (en) Utilization-based throttling of hardware prefetchers
CN114077553A (zh) 自适应性高速缓存分区
JP7108141B2 (ja) データ領域を記憶するためのキャッシュ
US11232035B2 (en) Memory controller with pre-loader
US8589627B2 (en) Partially sectored cache
US20180285268A1 (en) Method and apparatus for reducing write congestion in non-volatile memory based last level caches
US10649901B2 (en) Victim cache line selection
US9996478B1 (en) No allocate cache policy
Agarwal et al. Reuse-distance-aware write-intensity prediction of dataless entries for energy-efficient hybrid caches
US10360151B2 (en) Cache memory system including first cache memory and second cache memory having multiple regions with different access speed and processor system
US11138125B2 (en) Hybrid cache memory and method for reducing latency in the same
US10467137B2 (en) Apparatus, system, integrated circuit die, and method to determine when to bypass a second level cache when evicting modified data from a first level cache
CN115203076B (zh) 数据结构优化的专用存储器缓存
US20150032970A1 (en) Performance of accesses from multiple processors to a same memory location
US10725675B2 (en) Management apparatus, information processing apparatus, management method, and computer program product
CN108701093A (zh) 使用动态随机存取存储器(dram)高速缓存指示符高速缓存存储器以提供可扩展dram高速缓存管理
US20140310461A1 (en) Optimized and parallel processing methods with application to query evaluation

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