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

文档序号:15615339发布日期:2018-10-09 21:13阅读:162来源:国知局

本文所描述的各种方面总体上涉及用于对数据取回进行优化的方法和设备,并且更具体地涉及增强的高速缓存性能架构和与其相关联的高速缓存管理技术。



背景技术:

可以通过将一定量的数据放入高速缓冲存储器中来减少与系统存储器存取相关联的时延。通过将数据存储在高速缓冲存储器中,在下次该数据被请求时,处理器可以更快速地对该数据进行存取。然而,高性能处理器架构已经朝向以多个处理核心为特征的设计进行转移,每个处理核心具有同时执行多个独立线程的能力。因此,共享资源(比如用于高速缓冲存储器的近期最少使用(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。在至少一个方面,mch172可以实现如本文所描述的高速缓冲存储器控制器。

在至少一个方面,处理核心174可以各自包括用于支持执行管线的硬件资源和固件资源(未进行描绘)。在一些方面,这些资源可以包括高速缓冲存储器(其可以是共享或私有的)层级,其可以包括:专用一级(l1)指令高速缓存、专用l1数据高速缓存、二级(l2)数据/指令高速缓存、或其组合,预取逻辑和缓冲器,分支预测逻辑,解码逻辑,寄存器文件,包括算术逻辑单元、浮点单元、负载/存储单元、地址生成单元、数据高速缓存、i/o控制逻辑、查找表、索引等的各种并行执行资源。

在一些方面,mch172支持经由存储器互连182在处理器170与系统存储器132(例如,两级存储器(2lm)、或3dxp、或dram&3dxp等)之间进行双向数据传输。在至少一个方面,系统存储器132可以是ddr型dram,而存储器互连182和mch172可以符合ddr接口规范。在至少一个方面,系统存储器132-1可以表示可以针对dram容量利用对应的存储器电路进行填充的一排存储器接口(或槽)。mch172还可以被配置为支持处理器170与高速缓冲存储器之间的双向数据传输。

在一些方面,每个处理器170包括用于与位于处理器170本地的系统存储器132的一部分和/或高速缓冲存储器进行通信的mch172。在至少一个方面,系统存储器132-1位于第一处理器170-1本地并且作为整体表示系统存储器132的一部分。在一些方面,系统100是分布式存储器多处理器系统,其中每个处理器170能够对系统存储器132的每个部分和/或高速缓冲存储器进行存取,无论其是否在本地。在至少一个方面,虽然本地存取可以具有较低的时延,但是对系统存储器132的非本地部分进行存取也是允许的。在至少一个方面,mch172可以被配置为接收对存储器的块进行存取的i/o请求。例如,mch172可以基于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的持久性存储设备。在至少一个方面,hdd128包括存储代码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=amodn(等式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)。

虽然本文关于高速缓冲存储器控制器描述了若干方面和实现,但是本公开不限于该配置。另外或可替代地,本文所描述的包括mch172等的至少一个或多个电路和/或处理器可以相反在前述方面、实现和/或以下示例的任一个中实现。

下面的示例涉及本公开的另外的方面:

在示例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中的任一示例的方法。

虽然上面的说明书和相关的附图可以将电子设备组件描绘为单独的元件,但是技术人员将意识到将分立的元件组合或集成为单个元件的各种可能性。这可以包括:组合两个或更多个电路以形成单个电路,将两个或更多个电路安装到公共芯片或底座上以形成集成元件,在公共处理器核心上执行分立的软件组件等。相反,技术人员将认识到将单个元件分离成两个或更多个分立的元件的可能性,例如,将单个电路拆分成两个或更多个单独的电路,将芯片或底座分离成最初设置于其上的分立元件,将软件组件分离成两个或更多个部分并且在单独的处理器核心上执行每个部分等。

应意识到,本文详述的方法的实现本质上是说明性的,并且因此理解为能够实现在对应的设备中。同样意识到,本文详述的设备的实现理解为能够实现为对应的方法。因此应理解,与本文详述的方法相对应的设备可以包括被配置为执行相关方法的每个方面的一个或多个组件。

在上面的说明书中定义的所有缩略词另外在本文包含的所有权利要求中适用。

本文所使用的术语仅出于描述特定示例方面的目的,而并不旨在进行限制。如本文所使用的,单数形式“一”、“一个”以及“该”可以旨在还包括复数形式,除非上下文另外明确指出。术语“和/或”包括相关联的所列项中的一个或多个的任何和全部组合。术语“包括”、“包括有”、“包含”以及“具有”是包含性的,并且因此指定所陈述的特征、整体、步骤、操作、元件、和/或组件的存在,但是不排除一个或多个其它特征、整体、步骤、操作、元件、组件、和/或其组的存在或添加。本文所描述的方法步骤、过程以及操作不应解释为必需要求其以所讨论或所示出的特定次序来执行,除非具体标识为执行次序。还应理解,可以采用附加的或可替代的步骤。

虽然在本文中可以使用术语第一、第二、第三等来描述各种元件、组件、区域、层和/或部分,但是这些元件、组件、区域、层和/或部分不应受这些术语限制。这些术语仅可以用于将一个元件、组件、区域、层或部分与另一区域、层或部分区分开。当在本文使用时,诸如“第一”、“第二”以及其它数字项的术语不暗示顺序或次序,除非上下文明确指示。因此,下面讨论的第一元件、组件、区域、层或部分可以称为第二元件、组件、区域、层或部分,而不脱离示例方面的教导。

虽然已经参考具体方面特别地示出并描述了公开内容,但是本领域技术人员应理解,可以在不脱离如由随附权利要求限定的公开内容的精神和范围的情况下在其中进行形式和细节上的各种改变。本公开的各种方面不一定相互排斥,因为本公开的一些方面可以与本公开的一个或多个其它方面组合以形成新的方面。公开内容的范围因此由随附权利要求指示,并且因此旨在包含落入权利的等同内容的含义和范围内的所有改变。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1