CN117642731A - 级感知高速缓存替换 - Google Patents

级感知高速缓存替换 Download PDF

Info

Publication number
CN117642731A
CN117642731A CN202280046582.XA CN202280046582A CN117642731A CN 117642731 A CN117642731 A CN 117642731A CN 202280046582 A CN202280046582 A CN 202280046582A CN 117642731 A CN117642731 A CN 117642731A
Authority
CN
China
Prior art keywords
cache
data
priority
entry
request
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
CN202280046582.XA
Other languages
English (en)
Inventor
A·库玛
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.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US17/666,429 external-priority patent/US20230012880A1/en
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Priority claimed from PCT/US2022/073591 external-priority patent/WO2023288192A1/en
Publication of CN117642731A publication Critical patent/CN117642731A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

一种电子设备包括一个或多个处理器和存储数据条目的高速缓存。该电子设备向该高速缓存传输用于对第一地址进行转换的请求。根据该高速缓存中的这些数据条目不满足该请求的确定,该电子设备将该请求传输到与该高速缓存不同的存储器,并且接收包括对应于该第一地址的第二地址的数据。根据该数据不满足高速缓存提升准则的确定,该电子设备将该高速缓存中的第一优先级处的条目替换成该数据。根据该数据满足该高速缓存提升准则的确定,该电子设备将该高速缓存中的第二优先级处的条目替换成包括该第二地址的该数据,该第二优先级是比该第一优先级高的优先级。

Description

级感知高速缓存替换
优先权申请
本申请要求2021年7月14日提交的名称为“级感知高速缓存替换(Level-AwareCache Replacement)”的美国临时专利申请63/221,875号的优先权,该专利申请据此全文以引用方式并入。
本申请还要求2022年2月7日提交的名称为“级感知高速缓存替换(Level-AwareCache Replacement)”的美国专利申请17/666,429号的优先权,该专利申请据此全文以引用方式并入。
技术领域
本申请整体涉及微处理器技术,包括但不限于用于控制具有多个处理器的处理集群的高速缓存中的高速缓存替换的方法、系统和设备。
背景技术
高速缓存通过将最近使用或经常使用的数据项(例如,对经常使用的数据的物理地址的引用)保持在与物理存储器存储区相比更快访问的高速缓存中来改善计算机性能。当从物理存储器存储区或高速缓存获取新信息时,更新高速缓存以存储新获取的信息以反映当前和/或预期数据需要。然而,高速缓存在其存储大小方面是有限的,并且经常需要将当前存储在高速缓存中的数据降级到更低的高速缓存级,或者将当前存储在高速缓存中的数据逐出到更低的高速缓存或存储器存储区,以便为新获取的信息腾出空间。因此,非常期望提供一种为具有多个处理器的处理器集群高效地管理高速缓存替换的电子设备或系统。
发明内容
所附权利要求书的范围内的系统、方法和设备的各种具体实施各自具有若干方面,这些方面中没有任何单一方面唯一地负责本文所述的属性。在不限制所附权利要求书的范围的情况下,在考虑本公开之后,并且尤其在考虑标题为“具体实施方式”的部分之后,人们将理解如何使用一些具体实施的各方面来基于级感知高速缓存替换策略来控制连接到多个处理器(例如,形成一个或多个处理器集群)的次级存储器高速缓存中的高速缓存替换。这种高速缓存替换提高了在包括一阶段表走查(table-walk)和两阶段表走查的表走查进程期间次级存储器高速缓存中的高速缓存命中率。在一些具体实施中,级感知高速缓存替换策略限定从其获得或生成高速缓存条目的表的级(例如,在表走查过程内)。在一些具体实施中,级感知高速缓存替换策略基于从其获得数据的表的级(例如,在表走查过程内)来确定高速缓存条目中的数据是否满足高速缓存提升准则。在一些具体实施中,级感知高速缓存替换策略包括用于存储满足高速缓存提升准则的数据的高速缓存条目的第一组一个或多个高速缓存管理规则,以及用于存储不满足高速缓存提升准则的数据的高速缓存条目的第二组一个或多个高速缓存管理规则。
根据一些具体实施,一种电子设备包括:第一处理集群,该第一处理集群包括一个或多个处理器;和高速缓存,该高速缓存耦合到该第一处理集群中的该一个或多个处理器。该高速缓存存储多个数据条目。该电子设备被配置为将第一地址的地址转换请求从该第一处理集群传输到该高速缓存。根据该高速缓存中的这些数据条目不满足该地址转换请求的确定(例如,该地址转换请求在该高速缓存中未命中,因为该高速缓存未存储所请求的数据),该电子设备将该地址转换请求传输到与该高速缓存不同的存储器(例如,更低级高速缓存或系统存储器)。根据该数据不满足高速缓存提升准则的确定,该电子设备将该高速缓存中的第一优先级(例如,第一高速缓存级)处的条目(例如,高速缓存条目)替换成该数据。根据该数据满足该高速缓存提升准则的确定,该电子设备将该高速缓存中的第二优先级(例如,第一高速缓存级)处的条目(例如,高速缓存条目)替换成包括该第二地址的该数据。该第二优先级是该高速缓存中的比该第一优先级高的优先级(例如,该第二高速缓存级存储与该第一高速缓存级相比最近更多使用的数据)。本文还描述了一种控制高速缓存中的高速缓存条目替换的方法。
根据本说明书中的描述和附图,其他具体实施和优点可对本领域技术人员显而易见。
附图说明
图1是根据一些具体实施的典型电子设备中的示例性系统模块的框图。
图2是根据一些具体实施的具有一个或多个处理集群的示例性电子设备的框图。
图3A例示了根据一些具体实施的用于从存储器获取数据的表走查的示例性方法。
图3B例示了根据一些具体实施的高速缓存表走查输出以使数据获取的速度增加的示例。
图4A例示了根据一些具体实施的用于从存储器获取数据的两阶段表走查的示例性方法。
图4B例示了根据一些具体实施的示例性高速缓存表走查输出以使数据获取的速度增加。
图5例示了根据一些具体实施的高速缓存中的级。
图6A至图6D例示了根据一些具体实施的用于存储不满足高速缓存提升准则的数据的高速缓存条目的高速缓存替换策略。
图7A至图7B例示了根据一些具体实施的用于存储满足高速缓存提升准则的数据的高速缓存条目的高速缓存替换策略。
图8A至图8C例示了根据一些具体实施的控制高速缓存中的高速缓存条目替换的示例性方法的流程图。
相似的附图标记贯穿附图指代对应的部分。
具体实施方式
图1是根据一些具体实施的典型电子设备中的示例性系统模块100的框图。该电子设备中的系统模块100至少包括片上系统(SoC)102、用于存储程序、指令和数据的存储器模块104、输入/输出(I/O)控制器106、一个或多个通信接口(诸如网络接口108)以及用于将这些部件互连的一个或多个通信总线150。在一些具体实施中,I/O控制器106允许SoC 102经由通用串行总线接口与I/O设备(例如,键盘、鼠标或触控板)通信。在一些具体实施中,网络接口108包括用于Wi-Fi、以太网和蓝牙网络的一个或多个接口,每个接口允许电子设备与外部源(例如,服务器或另一电子设备)交换数据。在一些具体实施中,通信总线150包括将系统模块100中包括的各种系统部件互连并控制在这些系统部件间的通信的电路系统(有时被称为芯片集)。
在一些具体实施中,存储器模块104(例如,图2中的存储器104)包括高速随机存取存储器,诸如DRAM、SRAM、DDR RAM或其他随机存取固态存储器设备。在一些具体实施中,存储器模块104包括非易失性存储器,诸如一个或多个磁盘存储设备、光盘存储设备、闪存存储器设备或其他非易失性固态存储设备。在一些具体实施中,存储器模块104或另选地存储器模块104内的非易失性存储器设备包括非暂态计算机可读存储介质。在一些具体实施中,系统模块100上预留了存储器插槽以用于接纳存储器模块104。一旦被插入存储器插槽中,存储器模块104就集成到系统模块100中。
在一些具体实施中,系统模块100还包括选自以下项的一个或多个部件:
·存储器控制器110,该存储器控制器控制电子设备中的SoC 102和存储器部件(包括存储器模块104)之间的通信,包括根据高速缓存替换策略来控制高速缓存中的存储器管理单元(MMU)行替换(例如,高速缓存条目替换、高速缓存行替换);
·固态驱动器(SSD)112,该SSD应用集成电路组件以将数据存储在电子设备中,并且在许多具体实施中,基于NAND或NOR存储器配置;
·硬盘驱动器114,该硬盘驱动器是用于基于机电磁盘来存储和检索数字信息的常规数据存储设备;
·电源连接器116,该电源连接器电耦合以接收外部电源;
·功率管理集成电路(PMIC)118,该PMIC将所接收的外部电源调制到其他期望DC电压电平,例如,5V、3.3V或1.8V,如电子设备内的各种部件或电路(例如,SoC 102)所要求;
·图形模块120,该图形模块根据一个或多个显示设备的期望图像/视频格式来生成输出图像到该一个或多个显示设备的馈送;以及
·声音模块122,该声音模块促成在计算机程序的控制下向电子设备输入和从电子设备输出音频信号。
需注意,通信总线150还将包括部件110至122的各种系统部件互连并控制在这些系统部件间的通信。
另外,本领域的技术人员知道,可使用其他非暂态计算机可读存储介质,因为新的数据存储技术被开发用于将信息存储在存储器模块104中的非暂态计算机可读存储介质中以及SSD 112中。这些新的非暂态计算机可读存储介质包括但不限于由生物材料、纳米线、碳纳米管和单独分子制造的那些非暂态计算机可读存储介质,即使相应数据存储技术当前正在开发并仍有待商业化。
在一些具体实施中,SoC 102被实现在集成电路上,该集成电路将一个或多个微处理器或中央处理单元、存储器、输入/输出端口和次级存储装置集成在单个衬底上。SoC 102被配置为接收由PMIC 118提供的一个或多个内部供电电压。在一些具体实施中,SoC 102和PMIC 118两者安装在主逻辑板上,例如安装在主逻辑板的两个不同区域上,并且经由形成在主逻辑板中的传导线彼此电耦合。如上所述,该布置引入寄生效应和电噪声,该寄生效应和电噪声可能折损SoC的性能,例如导致在内部电压供应处的电压降。另选地,在一些具体实施中,SoC 102和PMIC 118被竖直地布置在电子设备中,使得它们经由未形成在主逻辑板中的电连接彼此电耦合。SoC 102和PMIC 118的这种竖直布置可减小SoC 102和PMIC 118之间的电连接的长度并避免由主逻辑板的传导线引起的性能退化。在一些具体实施中,SoC102和PMIC 118的竖直布置部分地通过将薄膜电感器集成在SoC 102和PMIC 118之间的有限空间中来促成。
图2是根据一些具体实施的具有一个或多个处理集群202(例如,第一处理集群202-1、第M处理集群202-M)的示例性电子设备200的框图。除了处理集群202之外,电子设备200还包括高速缓存220和存储器104。高速缓存220耦合到SOC 102上的处理集群202,该高速缓存还耦合到在SOC 102外部的存储器104。每个处理集群202包括一个或多个处理器204和集群高速缓存212。集群高速缓存212耦合到一个或多个处理器204,并且维护用于一个或多个处理器204的一个或多个请求队列214。每个处理器204还包括相应数据获取器208以控制与相应处理器204相关联的高速缓存获取(包括高速缓存预取)。在一些具体实施中,每个处理器204还包括核心高速缓存218,该核心高速缓存任选地分为指令高速缓存和数据高速缓存,并且核心高速缓存218存储可立即由相应处理器204执行的指令和数据。
在示例中,第一处理集群202-1包括第一处理器204-1、……、第N处理器204-N、第一集群高速缓存212-1,其中N是大于1的整数。第一集群高速缓存212-1具有一个或多个第一请求队列,并且每个第一请求队列包括从第一处理集群202-1的处理器204的子集接收的需求请求和预取请求的队列。在一些实施方案中,SOC 102仅包括单个处理集群202-1。另选地,在一些实施方案中,SOC 102至少包括附加处理集群202,例如第M处理集群202-M。第M处理集群202-M包括第一处理器206-1、……、第N'处理器206-N'和第M集群高速缓存212-M,其中N'是大于1的整数并且第M集群高速缓存212-M具有一个或多个第M请求队列。
在一些具体实施中,一个或多个处理集群202被配置为为电子设备提供中央处理单元并与高速缓存分级结构相关联。例如,高速缓存分级结构包括三个级,这三个级基于它们的不同操作速度和大小来区分。出于本申请案的目的,对存储器(包括高速缓存)的“速度”的引用涉及向存储器写入数据或从存储器读出数据所需的时间(例如,更快的存储器与更慢的存储器相比具有更短的写入和/或读出时间),并且对存储器的“大小”的引用涉及存储器的存储容量(例如,更小的存储器与更大的存储器相比提供更少的存储空间)。核心高速缓存218、集群高速缓存212和高速缓存220分别对应于第一级(L1)高速缓存、第二级(L2)高速缓存和第三级(L3)高速缓存。每个核心高速缓存218保存将直接地由相应处理器204执行的指令和数据,并且在三个存储器级之间具有最快的操作速度和最小的大小。对于每个处理集群202,集群高速缓存212与核心高速缓存218相比在操作上更慢并在大小上更大,并且保存更可能被相应处理集群202的处理器204访问的数据。高速缓存220由多个处理集群202共享,并且与每个核心高速缓存218和集群高速缓存212相比在大小上更大并在速度上更慢。每个处理集群202控制向核心高速缓存218和/或集群高速缓存212预取指令和数据。每个单独的处理器204进一步控制将指令和数据从相应集群高速缓存212预取到相应单独的核心高速缓存218中。
在一些具体实施中,第一处理集群202-1的第一集群高速缓存212-1耦合到同一处理集群中的单个处理器204-1,并且不耦合到任何其他处理器(例如,204-N)。在一些具体实施中,第一处理集群202-1的第一集群高速缓存212-1耦合到同一处理集群中的多个处理器204-1和204-N。在一些具体实施中,第一处理集群202-1的第一集群高速缓存212-1耦合到同一处理集群202-1中的一个或多个处理器204,并且不耦合到除第一处理集群202-1之外的任何集群中的处理器(例如,集群202-M中的处理器206)。在此类情况下,第一处理集群202-1的第一集群高速缓存212-1有时被称为第二级高速缓存(例如,L2高速缓存)。
在每个处理集群202中,每个请求队列任选地包括从相应处理集群202的处理器204的子集接收的需求请求和预取请求的队列。从相应处理器204接收的每个数据检索请求被分配到与相应处理集群相关联的请求队列中的一个请求队列。在一些具体实施中,请求队列仅接收从特定处理器204接收的请求。在一些具体实施中,请求队列从处理集群202中的多于一个处理器204接收请求,从而允许在多个请求队列之间平衡请求负载。具体地,在一些情况下,请求队列从同一处理集群202中的不同处理器204接收仅一种类型的数据检索请求(例如,预取请求)。
每个处理集群202包括或耦合到处理器204中的一个或多个数据获取器208,并且数据获取请求(例如,需求请求、预取请求)由一个或多个数据获取器208生成并处理。在一些具体实施中,处理集群202中的每个处理器204包括或耦合到相应数据获取器208。在一些具体实施中,处理集群202中的两个或更多个处理器204共享同一数据获取器208。相应数据获取器208可包括用于获取需求请求的数据的需求获取器和用于获取预取请求的数据的预取器中的任一者。
在处理集群202的处理器(例如,处理器204-1)处接收数据获取请求(包括需求请求和预取请求)。数据获取请求是从存储器(例如,存储器104)检索数据的地址转换请求,该地址转换请求包括用于将虚拟地址转换成物理地址的信息(例如,以检索包括虚拟地址到物理地址转换或虚拟地址到物理地址映射的数据,其包括例如页表中的页条目)。处理器的数据获取器(诸如处理器204-1的数据获取器208-1)通过查询转换后备缓冲区(TLB)以查看所请求的数据390(例如,所请求的地址转换)是否存储在TLB中来开始数据获取过程。根据在TLB中找到所请求的数据390(例如,所请求的地址转换)的确定(例如,TLB“命中”),从TLB检索数据并且将数据传递到处理器上。根据在TLB中未找到所请求的数据390(例如,所请求的地址转换)的确定(例如,TLB“未命中”),数据获取器208开始在与处理器相关联的核心高速缓存218(例如,与处理器204-1相关联的核心高速缓存218-1)中搜索所请求的数据390。根据所请求的数据390未存储在核心高速缓存218-1中的确定,数据获取器208-1查询集群高速缓存212-1。根据所请求的数据390未存储在集群高速缓存212-1中的确定,数据获取器208-1查询高速缓存220,并且根据所请求的数据390未存储在高速缓存220中的确定,数据获取器208-1查询存储器104。
为了确定数据是否存储在相应高速缓存(例如,图2所示的高速缓存218、212和220中的任一者)中,数据获取器208在相应高速缓存中执行表走查过程。在一些具体实施中,表走查过程是一阶段表走查过程(例如,单阶段表走查过程),诸如图3A和图3B所示的表走查过程。在一些具体实施中,表走查过程是两阶段表走查过程,诸如图4A和图4B所示的两阶段表走查过程。
图3A例示了根据一些具体实施的用于由处理集群202(例如,由图2的第一处理集群202-1的数据获取器208)获取数据的一阶段表走查过程300的示例。在该示例中,地址转换信息(例如,页表)存储在多级分级结构中,该多级分级结构包括至少一个0级表、多个1级表、多个2级表和多个3级表。0级表存储包括标识特定1级表(例如,多个1级表中的特定表、多个1级表中的第一表)的表描述符的页条目,1级表存储包括标识特定2级表(例如,多个2级表中的特定表、多个2级表中的第一表)的表描述符的页条目,2级表存储包括标识特定3级表(例如,多个3级表中的特定表、多个3级表中的第一表)的表描述符的页条目,并且3级表存储包括标识存储器104中的特定页表的页描述符的页条目。表走查过程300开始于0级表并且持续到标识出存储在存储器104中的页条目(例如,存储器104中的页表)中的所请求的数据390。
数据获取过程开始于处理集群(例如,处理集群202-1)的处理器(例如,处理器204-1)接收包括要转换的虚拟地址312的地址转换请求310。虚拟地址312包括转换表基址寄存器(TTBR),该TTBR标识处理器的数据获取器(例如,处理器204-1的数据获取器208-1)可在其处开始表走查过程300的0级表。根据所请求的数据390(例如,由地址转换请求310请求的数据)未存储在TLB中的确定(例如,TLB“未命中”)来发起表走查过程300。
数据获取器208通过标识存储在0级表320中的页表条目中的第一表描述符322来开始表走查过程300。第一表描述符322包括标识数据获取器208可查询以继续表走查过程300的1级表330(例如,特定1级表)的信息。在一些具体实施中,使用虚拟地址312的至少一部分(例如,第一部分312-1)来找到0级表320中的第一表描述符322。例如,虚拟地址312的第一部分312-1可包括对存储第一表描述符322的0级表320中的页表条目的引用。
数据获取器208基于从0级表320获得(例如,输出)的第一表描述符322来标识1级表330,并且标识存储在1级表330中的页表条目中的第二表描述符332。第二表描述符332包括标识数据获取器208可查询以继续表走查过程300的2级表340(例如,特定2级表)的信息。在一些具体实施中,使用虚拟地址312的至少一部分(例如,第二部分312-2)来找到1级表330中的第二表描述符332。例如,虚拟地址312的第二部分312-2可包括对存储第二表描述符332的1级表330中的页表条目的引用。在一些具体实施中,除了提供第二表描述符332之外,1级表330还提供标识存储器104内的第一连续部分390-1(例如,存储器104中的在其内存储所请求的数据390的第一连续部分390-1)的第一块描述符334。
数据获取器208基于从1级表330获得的第二表描述符332来标识2级表340,并且标识存储在2级表340中的页表条目中的第三表描述符342。第三表描述符342包括标识数据获取器208可查询以继续表走查过程300的3级表350(例如,特定3级表)的信息。在一些具体实施中,使用虚拟地址312的至少一部分(例如,第三部分312-3)来找到2级表340中的第三表描述符342。例如,虚拟地址312的第三部分312-3可包括对存储第三表描述符342的2级表340中的页表条目的引用。在一些具体实施中,除了提供(例如,输出)第三表描述符342之外,2级表330还提供标识存储器104内的第二连续部分390-2(例如,存储器104中的在其内存储所请求的数据390(例如,所请求的地址转换)的第二连续部分390-2)的第二块描述符344。在一些具体实施中,存储器104中的第二连续部分390-2包括与存储器104中的第一连续部分390-1相比更小的存储器104部分,并且存储器390中的第一连续部分390-1包括存储器390中的第二连续部分390-2。例如,存储器104中的第一连续部分390-1包括存储器104中的16MB的空间,并且存储器104中的第二连续部分390-2包括存储器中的32KB的空间。
数据获取器208基于从2级表340获得(例如,输出)的第三表描述符342来标识3级表350,并且标识存储在3级表350中的页表条目中的页描述符352。页描述符352包括标识存储器104中的数据获取器208可查询以继续表走查过程300的页表360的信息。在一些具体实施中,使用虚拟地址312的至少一部分(例如,第四部分312-4)来找到存储器104中的页描述符352。例如,虚拟地址312的第四部分312-4可包括对存储页描述符352的3级表350中的页表条目的引用。
数据获取器208查询存储器104中的页表360(如由从3级表350输出的页描述符352所标识)以找到存储所请求的数据390(例如,存储所请求的虚拟地址到物理地址转换)的页条目362。在一些具体实施中,使用虚拟地址312的至少一部分(例如,第五部分312-5)来找到页表360中的页条目362。例如,虚拟地址312的第五部分312-5可包括对存储所请求的数据390的页表360上的字节的引用。
因此,使用表走查过程300,处理器的数据获取器(例如,处理器204-1的数据获取器208-1)能够获得所请求的数据390(例如,所请求的地址转换390、对应于请求310的物理地址390)并且将所请求的数据390传递到处理器。然而,表走查过程将等待时间引入到系统操作中。因此,在一些实施方案中,来自表走查过程的输出存储在高速缓存中以加速数据获取过程。
图3B例示了根据一些具体实施的高速缓存来自表走查过程的输出以增加数据获取速度的示例。可将分别从0级表320、1级表330和2级表350输出的表描述符322、332和342存储在高速缓存392中,使得可从高速缓存392快速检索对相同数据的未来数据请求(例如,对于相同地址转换),从而允许数据获取器208跳过表走查过程300的至少一部分。高速缓存392可对应于高速缓存218、高速缓存212和高速缓存220中的任一者。在一些具体实施中,表走查输出存储在高速缓存212中,该高速缓存是由多个处理核心204共享的最高级高速缓存。
例如,在第三表描述符342存储在高速缓存392中的情况下,响应于对虚拟地址312的地址转换的新请求(例如,对物理地址390的请求),数据获取器208能够跳过表走查过程300的对应于查询0级表320、1级表330和2级表340的部分。相反,数据获取器208可直接获得第三表描述符342,因为该第三表描述符存储在高速缓存392中。在实践中,高速缓存392存储物理地址390,从而进一步增加数据获取速度并减少等待时间,因为数据获取器208可直接从高速缓存392检索所请求的数据(例如,物理地址390),并因此不必执行表走查过程300。在一些情况下,完全跳过表走查过程300。
在另一示例中,在第二表描述符332存储在高速缓存392中的情况下,响应于对虚拟地址312的地址转换的新请求(例如,对物理地址390的请求),数据获取器208能够跳过查询0级表320和1级表330。相反,数据获取器208可直接获得第二表描述符332,因为该第二表描述符存储在高速缓存392中,并且通过使用第二表描述符332来直接标识2级表340(例如,而不必查询0级表320和1级表330)来完成表走查过程。数据获取器208通过遍历2级表340、3级表350和页表360以检索所请求的数据390(例如,物理地址390)来完成表走查过程300。因此,通过高速缓存来自表走查过程300的输出,数据获取器208可更快地处理TLB“未命中”,从而提高数据获取速度,减少系统操作中的等待时间。
另外,在一些实施方案中,表走查输出存储在高速缓存392中,并且具体地,来自2级表340的表走查输出存储在来自表走查过程的其他输出之上,因为来自2级表340的输出在表走查过程中提供最大捷径。在实践中,高速缓存392针对2级表340直接存储所请求的数据390(例如,物理地址390)。存储来自2级表340的表走查输出直接返回所请求的数据390,而不要求数据获取器208执行表走查。在一些具体实施中,高速缓存392针对2级表340存储页描述符352。
在一些具体实施中,高速缓存替换策略包括针对存储满足高速缓存提升准则的数据的高速缓存条目(在本文中也被称为“优先高速缓存条目”)与存储不满足高速缓存提升准则的数据的高速缓存条目(在本文中也被称为“非优先高速缓存条目”)的不同策略。在一些具体实施中,当数据对应于来自2级表340的输出时,数据满足高速缓存提升准则(例如,存储来自2级表340的输出的高速缓存条目是优先高速缓存条目)。因此,如果经常请求虚拟地址312的地址转换(例如,物理地址390),则以将从2级表340输出的数据存储在高速缓存392中的优先高速缓存条目的形式存储物理地址390(例如,高速缓存来自2级表340的输出)将导致数据获取中的等待时间显著减少。
在需要将虚拟地址转换为中间物理地址(IPA)以及将IPA转换为物理地址的虚拟机中使用的两阶段表走查中也可采用表走查高速缓存的类似使用。
图4A例示了根据一些具体实施的实现用于从存储器104获取数据的两阶段表走查过程400的示例性方法。两阶段表走查过程400包括阶段1表走查(也称为访客表走查)和阶段2表走查。阶段1表走查类似于图3A和图3B所示的一阶段表走查过程300,使得访客表走查首先标识并查询阶段1 0级表(例如,S1L0)以找到标识阶段1 1级表(例如,S1L1)的表描述符。然后,数据获取器208使用从阶段1 1级表获得(例如,从其输出)的表描述符来标识并查询阶段1 2级表(例如,S1L2)以找到标识阶段1 3级表(例如,S1L3)的表描述符。然后,数据获取器208使用从阶段1 3级表获得(例如,从其输出)的页描述符来标识并查询存储器104中的页表以找到所请求的数据(例如,所请求的地址转换、所请求的物理地址)。与图3A和图3B所示的一阶段表走查过程300相比,每个阶段1表(例如,表S1L0、S1L1、S1L2和S1L3)输出在两阶段表走查的第二阶段部分中使用的IPA以标识第一阶段中的下一表(例如,表S1L0输出指向阶段2 0级表的IPA,并且执行第二阶段表走查以标识表S1L1)。
请求410(例如,对地址转换的请求)包括虚拟地址,该虚拟地址包括转换表基址寄存器(TTBR)。与图3A和图3B所示的一阶段表走查过程300相比,TTBR标识阶段2 0级表(例如,由块“1”表示的S0L0),在该表处,处理器的数据获取器(例如,处理器204-1的数据获取器208-1)开始两阶段表走查过程400。
两阶段表走查过程400通过执行表走查过程的第二阶段来开始。在表走查过程400的第二阶段期间,数据获取器208查询阶段2表(例如,S2L0、S2L1、S2L2和S2L3表)以找到标识在表走查过程400的第一阶段期间要查询哪些阶段1表(例如,S1L0、S1L1、S1L2和S1L3表)的描述符(例如,IPA)。数据获取器208通过执行表走查过程400的第二阶段来开始,在提供标识阶段2 1级表(例如,由块“2”表示的S2L1)的描述符的阶段2 0级表(例如,由块“1”表示的S2L0)处开始,然后前进到提供标识阶段2 2级表(例如,由块“3”表示的S2L2)的描述符的阶段2 1级表(例如,由块“2”表示的S2L1),然后前进到提供标识阶段2 3级表(例如,由块“4”表示的S2L3)的描述符的阶段2 2级表,然后前进到提供标识阶段1 0级表(例如,S1L0)的描述符的阶段2 3级表。一旦标识出S1L1表,数据获取器208就可向S1L1表查询标识下一行中的阶段2 0级表(例如,由块“6”表示的S2L0)的IPA,并且数据获取器208执行表走查过程400的另一第二阶段以标识第二行中的阶段1 1级表(例如,由块“7”表示的S1L1)。重复该过程,直到数据获取器208标识S1L3表。然后,数据获取器208查询S1L3表以标识第五行中的阶段2 0级表(例如,由块“21”表示的S2L0)并且执行表走查400的第二阶段以进行标识,直到标识出阶段2 3级表(例如,由块“24”表示的S2L3)。然后,数据获取器查询阶段23级表(例如,由块“24”表示的S2L3)以找到指向存储器104中的存储所请求的数据490(例如,所请求的地址转换490、所请求的物理地址490)的页表的页描述符。
图4A所示的两阶段表走查过程400可通过存储在两阶段表走查过程400期间获得的存储区输出(例如,高速缓存输出,诸如IPA、表描述符、页描述符和物理地址)来加速。例如,来自阶段2表(例如,任一行中的S2L0、S2L1、S2L2和S2L3)和阶段1表(例如,S1L0、S1L1和S1L3)中的任一者的输出可存储在高速缓存392中。
图4B例示了根据一些具体实施的示例性高速缓存表走查输出以使数据获取的速度增加。高速缓存(例如,高速缓存392、218、212或220)存储来自表走查过程400中所涉及的表的输出,这些表例如任一行中的阶段2表S2L0、S2L1、S2L2和S2L3、阶段1表S1L0、S1L1和S1L3。响应于与先前所请求的物理地址相关的后续请求,直接从存储来自表走查过程400的输出的高速缓存检索这些物理地址,从而允许数据获取器208跳过两阶段表走查过程400的至少一部分或全部。在示例中,高速缓存212是由多个处理核心204共享的最上高速缓存,并且被应用于存储来自表走查过程400的输出。
例如,在来自S1L1表的输出存储在高速缓存392中的情况下,响应于对物理地址490的新请求,数据获取器208被配置为跳过表走查的针对第一行的S2L0表(块“1”)、S2L1表(块“2”)、S2L2表(块“3”)和S2L3表(块“4”)的第二阶段并且在表走查的针对包括S2L0表(块“6”)、S2L1表(块“7”)、S2L2表(块“8”)和S2L3表(块“9”)的第二行的阶段2表的第二阶段处直接开始表走查。
在另一示例中,在来自S1L2表的输出存储在高速缓存392中的情况下,响应于对物理地址490的新请求,数据获取器208能够跳过查询前三行的阶段2表并且跳过表走查中的S1L0、S1L1和S1L2表。数据获取器208可使用所高速缓存的输出来标识第四行中的阶段2 0级表(例如,S2L0(块“16”))并且执行两阶段表走查过程400,直到检索到(例如,获得、得到、标识出)物理地址490。
在又一示例中,在来自第五行中的阶段2表(例如,分别由块“21”、“22”、“23”和“24”表示的S2L0、S2L1、S2L2和S2L3表)中的任一者的输出存储在高速缓存392中的情况下,响应于对物理地址490的新请求,数据获取器208能够完全跳过阶段1表走查并且跳过前四行的表走查的第二阶段,并且在阶段2表的第五行处直接开始表走查。在一些具体实施中,当高速缓存来自第五行中的阶段2表S2L0、S2L1、S2L2和S2L3的输出时,高速缓存392存储物理地址490并且不存储描述符,从而进一步增加数据获取速度并减少等待时间。
在一些具体实施中,来自两阶段表走查过程400的所有输出存储在高速缓存392中。高速缓存392存储来自阶段1 2级表(例如,由块“15”表示并且以图案化填充所示的S1L2)以及第五行中的阶段2表(例如,分别由块“21”、“22”、“23”和“24”表示的S2L0、S2L1、S2L2和S2L3表,每一者以图案化填充所示)的表走查输出。那些输出在两阶段表走查过程400中提供最大捷径(例如,跳过的最多步骤)。因此,如果频繁地请求物理地址490,则将来自阶段1 2级表(例如,由块“15”表示的S1L2)以及第五行中的阶段2表(例如,分别由块“21”、“22”、“23”和“24”表示的S2L0、S2L1、S2L2和S2L3表)的表走查输出存储在高速缓存392中减少了对应等待时间并且提高了数据获取速度。在一些具体实施中,高速缓存替换策略包括针对存储满足高速缓存提升准则的数据的高速缓存条目(例如,优先高速缓存条目)和存储不满足高速缓存提升准则的数据的高速缓存条目(例如,非优先高速缓存条目)的不同策略。在此类情况下,当数据对应于来自阶段1 2级表(例如,由块“15”表示并且以图案化填充所示的S1L2)以及第五行中的阶段2表S2L0、S2L1、S2L2和S2L3(例如,分别由块“21”、“22”、“23”和“24”表示的表,每一者以图案化填充所示)中的任一者的输出时,数据满足高速缓存提升准则。
在一些具体实施中,将新高速缓存条目添加到高速缓存392。新高速缓存条目的示例任选地包括但不限于存储包括物理地址转换、表描述符和页描述符的表走查输出的新高速缓存行和MMU行。移除高速缓存392内的高速缓存条目以便为新高速缓存条目腾出空间。高速缓存392依赖于高速缓存替换策略来确定在高速缓存392中的何处存储新高速缓存行,例如在高速缓存392中的何处插入新高速缓存行、在高速缓存392中的什么级插入新高速缓存行。高速缓存392还使用高速缓存替换策略来确定替换高速缓存392中的哪个高速缓存条目、降级到更低的高速缓存行、或被逐出以便为新高速缓存行腾出空间。在一些具体实施中,被选择用于替换、降级或逐出的高速缓存条目被称为“牺牲品”。下文相对于图5论述了关于高速缓存中的高速缓存行的更多细节,并且下文相对于图6A至图6D和图7A至图7B论述了关于高速缓存替换策略的更多细节。
图5例示了根据一些具体实施的高速缓存392中的高速缓存行501(例如,高速缓存行501-1至501-P,在本文中也被称为“高速缓存级”)。高速缓存392可对应于高速缓存218、212和220(图2所示)中的任一者。高速缓存392包括N个高速缓存行501,其中N是任何整数。例如,8路高速缓存包括8个高速缓存行(例如,N=8)。高速缓存行501经排序为使得高速缓存行501-1为最低高速缓存行并且高速缓存行501-P为最高高速缓存行。因此,高速缓存行502-2高于第一高速缓存行501-1并且低于高速缓存行501-3。在一些实施方案中,如图所示,高速缓存行501从最近最多使用(MRU)(例如,最近最多访问)到最近最少使用(LRU)(例如,最近最少访问)来组织。因此,存储在MRU高速缓存行501-P处的高速缓存条目与存储在LRU+1高速缓存行501-2处的高速缓存条目相比被最近更多使用(例如,最近更多访问、最近更多由处理器请求)。
在一些具体实施中,如图所示,基于高速缓存条目(例如,高速缓存条目中的数据)的最近访问程度来组织高速缓存392。在此类情况下,高速缓存392的高速缓存条目存储数据(例如,地址转换)以及对应于该数据的标签。该标签包括指示数据的最近使用(例如,访问、请求)程度的一个或多个位。例如,数据存储在存储在LRU+1高速缓存行502-2处的第一高速缓存条目中并被请求,并且因此更新对应于第一数据的标签以指示该数据最近被访问。在一些实施方案中,响应于接收到对第一数据的请求,将第一高速缓存条目(其存储第一数据)提升到更高高速缓存行。例如,将第一高速缓存条目移动到MRU高速缓存行501-P或LRU+2高速缓存行501-3。将第一高速缓存条目移动到高速缓存392中的哪个高速缓存行501取决于高速缓存的高速缓存替换策略。响应于将第一高速缓存条目提升到新高速缓存行,根据第一数据的提升来更新新高速缓存行之下的所有高速缓存行。例如,如果将第一高速缓存条目从LRU+1高速缓存行501-2提升到LRU+3高速缓存行501-4,则更新高速缓存行501-1至501-3。例如,将先前存储在高速缓存行501-4中的数据降级到高速缓存行501-3,使得第一高速缓存条目可存储在高速缓存行501-4处,将先前存储在高速缓存行501-3中的数据降级到高速缓存行501-2,将先前存储在高速缓存行501-2中的数据降级到高速缓存行501-1,将先前存储在高速缓存行501-1中的数据从高速缓存392逐出,并且501-4上方的高速缓存行不受影响(例如,只要N>4,MRU高速缓存行501-P就不受影响)。在另一示例中,将先前存储在高速缓存行501-4中的数据降级到高速缓存行501-3,使得第一高速缓存条目可存储在高速缓存行501-4处并且将先前存储在高速缓存行501-3中的数据逐出高速缓存。在又一示例中,将先前存储在高速缓存行501-4中的数据逐出高速缓存。
在一些实施方案中,选择高速缓存392中的高速缓存行501中的一个高速缓存行来存储新高速缓存条目。在一些具体实施中,当将新高速缓存添加到高速缓存392时,选择当前存储在高速缓存392中的高速缓存条目中的一个高速缓存条目来替换。在一些实施方案中,响应于对来自高速缓存条目的数据的请求,选择高速缓存392中的高速缓存行501中的一个高速缓存行来接收要移动的高速缓存条目(其已经存储在高速缓存392中)。
在一些具体实施中,高速缓存替换策略包括用于存储满足高速缓存提升准则的数据的高速缓存条目(例如,优先高速缓存条目)的第一组一个或多个规则以及用于存储不满足高速缓存提升准则的数据的高速缓存条目(例如,非优先高速缓存条目)的与第一组一个或多个规则不同的第二组一个或多个规则。在此类情况下,实现高速缓存替换策略包括将指示(例如,标识、确定)存储在高速缓存条目中的数据满足高速缓存提升准则的指示符(例如,标记、标签)存储在存储满足高速缓存提升准则的数据的高速缓存条目中(例如,在优先高速缓存条目中)。在一些具体实施中,实现高速缓存替换策略包括将指示存储在高速缓存条目中的数据是否满足高速缓存提升准则(例如,高速缓存条目是优先高速缓存条目还是非优先高速缓存条目)的指示符指示符(例如,标记、标签)存储在高速缓存条目中。包含用于优先高速缓存条目与非优先高速缓存条目的不同组规则在高速缓存中维护有用的(例如,相关的)信息是有用的。例如,当将来自表走查过程的输出存储在高速缓存中时,高速缓存将存储物理地址的高速缓存条目存储在存储输出(例如,表走查描述符)的高速缓存条目之上,这些输出在表走查过程中不提供同样大的捷径。在另一示例中,与在高速缓存中的较低高速缓存行存储高速缓存条目相比,高速缓存存储在高高速缓存行处存储物理地址的高速缓存条目,以便为高速缓存中的高速缓存条目提供更长的寿命。因此,利用与非优先高速缓存条目不同地处理优先高速缓存条目的高速缓存替换策略可导致更高效的高速缓存管理。
图6A至图6D和图7A至图7B例示了根据一些具体实施的高速缓存392的替换策略。高速缓存392可对应于高速缓存218、212和220(图2所示)中的任一者。在一些具体实施中,高速缓存392对应于2级高速缓存(例如,次级高速缓存,高速缓存212)。在一些具体实施中,存储器控制器110(图1所示)被配置为当向高速缓存添加新高速缓存条目、从高速缓存替换现有高速缓存条目以及重新组织高速缓存行(包括将高速缓存中的现有高速缓存条目提升到更高的高速缓存行和/或将高速缓存中的现有高速缓存条目降级到更低的高速缓存行)时执行高速缓存替换策略。高速缓存条目包括数据(诸如物理地址转换、中间地址转换、块描述符或页描述符)和标签,该标签包括关于高速缓存条目或存储在高速缓存条目中的数据的一个或多个指示符。在一些具体实施中,对应于高速缓存条目的标签可包括(例如,高速缓存条目的标签部分中的位包括)关于以下各项中的任一者的信息:(i)高速缓存条目是对应于预取请求还是需求请求,(ii)高速缓存条目中的数据是否满足高速缓存提升准则(例如,高速缓存条目是优先高速缓存条目还是非优先高速缓存条目),(iii)高速缓存条目在存储在高速缓存中时是否已被重复使用。例如,标签可包括多个位。在一些具体实施中,高速缓存替换策略基于存储在对应于高速缓存条目的标签中的信息来处理高速缓存条目。
在一些具体实施中,高速缓存替换策略偏离选择优先高速缓存条目作为牺牲品(例如,存储器控制器110将在选择非优先高速缓存条目进行替换之前选择非优先高速缓存条目进行替换,而不管优先高速缓存条目和非优先高速缓存条目存储在哪个高速缓存行)。
图6A至图6D例示了根据一些具体实施的用于存储不满足高速缓存提升准则的数据的高速缓存条目(例如,非优先高速缓存条目)的高速缓存替换策略。存储在高速缓存条目601中的数据不满足高速缓存提升准则,并且因此高速缓存条目601是非优先高速缓存条目(例如,非优先高速缓存行、非优先MMU行)。高速缓存条目601包括具有指示存储在高速缓存条目601中的数据不满足高速缓存提升准则的一个或多个位的标签。
参见图6A,根据数据获取器(诸如数据获取器208)响应于对数据的第一请求(例如,预取请求或需求请求)而执行表走查过程以从存储器104检索数据的确定,存储器控制器110接收指令以将数据作为非优先高速缓存条目601存储在高速缓存392中(例如,将非优先高速缓存条目601添加到高速缓存392)。根据高速缓存条目601为非优先高速缓存条目,存储器控制器110在预先确定的高速缓存行501-x(例如,阈值高速缓存行501-x、预定义高速缓存行501-x)之下的高速缓存行501处添加非优先高速缓存条目601。例如,如果x=3,则存储器控制器110在LRU高速缓存行501-1或LRU+1高速缓存行501-2处将非优先高速缓存条目601存储到高速缓存392(例如,使得非优先高速缓存条目601存储在高速缓存392的LRU高速缓存行501-1或LRU+1高速缓存行501-2处)。高速缓存392将非优先高速缓存条目601存储在所选择的高速缓存行(在该示例中为LRU+1高速缓存行501-2)处,直到存储器控制器110从高速缓存392选择高速缓存条目601作为牺牲品进行替换(例如,为新高速缓存条目腾出空间),直到在随时间将新高速缓存条目添加到高速缓存392并且高速缓存条目601变得更旧(例如,最近更少使用)时将高速缓存条目601移动(例如,降级)到更低高速缓存行(例如,LRU高速缓存行501-1),直到将高速缓存条目601从高速缓存392逐出,或者直到与高速缓存392通信的处理器接收到对存储在非优先高速缓存条目601中的数据的另一请求(例如,预取请求或需求请求)(例如,直到与高速缓存212-1通信的处理集群202-1的处理器204-1至204-N中的任一者接收到对存储在非优先高速缓存条目601中的数据的请求)。
根据在与高速缓存392通信的处理器处接收到对存储在非优先高速缓存条目601中的数据的请求之前选择非优先高速缓存条目601进行替换的确定,存储器控制器110将非优先高速缓存条目601降级到高速缓存392中的更低高速缓存行或逐出高速缓存条目601(例如,高速缓存条目601不再存储在高速缓存392处)以为新高速缓存条目腾出空间。
图6B和图6C例示了根据在将非优先高速缓存条目601存储在高速缓存392中(不管高速缓存条目601存储在哪个高速缓存行501处)时在与高速缓存392通信的处理器处接收到对存储在非优先高速缓存条目601中的数据的第二请求(例如,在第一请求之后并且与第一请求不同)的确定来提升非优先高速缓存条目601。
参见图6B,根据第二请求是需求请求的确定,数据获取器将存储在非优先高速缓存条目601中的数据传递到处理器(例如,数据获取器208将存储在非优先高速缓存条目601中的数据传递到处理器204-1),并且存储器控制器110将非优先高速缓存条目601提升为存储在最高高速缓存行(例如,MRU高速缓存行501-P)处,从而增加(例如,最大化)高速缓存392中的非优先高速缓存条目601的寿命。在一些具体实施中,响应于接收到对存储在非优先高速缓存条目601中的数据的第二请求,更新与存储在非优先高速缓存条目601中的数据相关联的标签以指示高速缓存条目601已被重复使用(例如,高速缓存条目601在存储在高速缓存392中时被访问)。在一些具体实施中,响应于接收到对存储在非优先高速缓存条目601中的数据的第二请求并且根据第二请求是需求请求的确定,更新与存储在非优先高速缓存条目601中的数据相关联的标签以指示高速缓存条目601对应于需求请求。
参见图6C,根据第二请求是预取请求的确定,数据获取器将存储在非优先高速缓存条目601中的数据传递到处理器(例如,数据获取器208将存储在非优先高速缓存条目601中的数据传递到处理器204-1),并且存储器控制器110将非优先高速缓存条目601提升为存储在高于当前存储非优先高速缓存条目601的高速缓存行的高速缓存行(例如,高速缓存行501-3至501-P中的任一者)处,从而增加高速缓存392中的非优先高速缓存条目601的寿命。例如,如果当接收到第二请求时非优先高速缓存条目601存储在LRU+1高速缓存行501-2处,则存储器控制器110可将非优先高速缓存条目601提升到高速缓存行501-3至501-P中的任一者。在另一示例中,如果非优先高速缓存条目601在其寿命期间的某一点处从高速缓存392中的LRU+1高速缓存行501-2降级并且在接收到第二请求时存储在LRU高速缓存行501-1处,则存储器控制器110可将非优先高速缓存条目601提升到高速缓存行501-2至501-P中的任一者。在一些具体实施中,存储器控制器110将非优先高速缓存条目601提升为存储在除最高高速缓存行(例如,MRU高速缓存行501-P)之外的高于当前存储非优先高速缓存条目601的高速缓存行的高速缓存行(例如,高速缓存行501-3至501-(P-1)中的任一者)处。
在一些具体实施中,响应于接收到对存储在非优先高速缓存条目601中的数据的第二请求,更新与存储在非优先高速缓存条目601中的数据相关联的标签以指示高速缓存条目601已被重复使用(例如,高速缓存条目601在存储在高速缓存392中时被访问)。在一些具体实施中,响应于接收到对存储在非优先高速缓存条目601中的数据的第二请求并且根据第二请求是预取请求的确定,更新与存储在非优先高速缓存条目601中的数据相关联的标签以指示高速缓存条目601对应于预取请求。
参见图6D,根据在将非优先高速缓存条目601存储在高速缓存392中(不管高速缓存条目601存储在哪个高速缓存行501处)时在与高速缓存392通信的处理器处接收到对存储在非优先高速缓存条目601中的数据的第三请求(例如,在第一请求和第二请求之后并且与第一请求和第二请求中的每一者不同)的确定,数据获取器将存储在非优先高速缓存条目601中的数据传递到处理器(例如,数据获取器208将存储在非优先高速缓存条目601中的数据传递到处理器204-1)并且存储器控制器110将非优先高速缓存条目601提升为存储在最高高速缓存行(例如,MRU高速缓存行501-P)处,从而增加(例如,最大化)高速缓存392中的非优先高速缓存条目601的寿命。在图6D所示的示例中,响应于第二请求,存储器控制器110将非优先高速缓存条目601提升为存储在高速缓存392中的LRU+3高速缓存行501-4处,并且响应于第三请求,存储器控制器110将非优先高速缓存条目601提升为存储在高速缓存392中的MRU高速缓存行501-P处。
在一些具体实施中,响应于接收到对存储在非优先高速缓存条目601中的数据的第三请求,更新与存储在非优先高速缓存条目601中的数据相关联的标签以指示高速缓存条目601已被多次重复使用(例如,高速缓存条目601在存储在高速缓存392中时被访问至少两次)。在一些具体实施中,更新与非优先高速缓存条目601相关联的标签以指示高速缓存条目601在存储在高速缓存392中时已被访问的次数(例如,标签指示高速缓存条目601在存储在高速缓存392中时被访问两次)。
在一些具体实施中,响应于对存储在高速缓存条目601中的数据的后续请求(例如,第三请求之后的每个后续请求),如果高速缓存条目601存储在高速缓存392中的不同于MRU高速缓存行501-P的高速缓存行处,则存储器控制器110将高速缓存条目601提升到MRU高速缓存行501-P。在一些具体实施中,响应于每个后续请求,更新与高速缓存条目601相关联的标签以指示高速缓存条目601在存储在高速缓存392中时已被访问的次数。
图7A至图7B例示了根据一些具体实施的存储满足高速缓存提升准则的数据的高速缓存392的高速缓存替换策略。存储在高速缓存条目701中的数据满足高速缓存提升准则,并且因此高速缓存条目701是优先高速缓存条目(例如,优先高速缓存行、优先MMU行)。高速缓存条目701包括具有指示高速缓存条目701中的数据满足高速缓存提升准则的一个或多个位的标签。在一些具体实施中,当存储在高速缓存条目中的数据包括以下各项中的任一项时,该数据满足高速缓存提升准则(并且因此存储该数据的高速缓存条目是优先高速缓存条目):(i)来自2级表的表走查输出(诸如存储与来自图3B所示的一阶段表走查过程300中的2级表340的输出相关联的表描述符342或物理地址390的高速缓存条目),以及(ii)来自阶段1 2级表的表走查输出(诸如存储与来自图4B所示的两阶段表走查过程400中的S1L2表(例如,块“15”)的输出相关联的表描述符、中间物理地址或物理地址490的高速缓存条目),以及(iii)来自两阶段表走查的第五行中的任何阶段2表的表走查输出(诸如存储与来自图4B所示的两阶段表走查过程400中的两阶段表走查的第五行中的S2L0、S2L1、S2L2、S2L3中的任一者的输出相关联的表描述符、页描述符、中间物理地址或物理地址490的高速缓存条目490)。
参见图7A,根据数据获取器(诸如数据获取器208)响应于对数据的第一请求(例如,预取请求或需求请求)而执行表走查过程以检索数据的确定,存储器控制器110接收指令以将数据作为优先高速缓存条目701存储在高速缓存392中(例如,将优先高速缓存条目701添加到高速缓存392)。根据高速缓存条目701为优先高速缓存条目,存储器控制器110在预先确定的高速缓存行501-x(例如,阈值高速缓存行501-x、预定义高速缓存行501-x)处或上方的高速缓存行501处添加优先高速缓存条目701。例如,如果x=3,则存储器控制器110在位于LRU+2高速缓存行501-3或更高高速缓存行处的任何高速缓存行(例如,LRU+2高速缓存行501-3至MRU高速缓存行501-P中的任一者)处向高速缓存392添加优先高速缓存条目701(例如,使得优先高速缓存条目701存储在高速缓存392的LRU+2高速缓存行501-3至MRU高速缓存行501-P之间(并且包括它们)的任何高速缓存行处)。在一些具体实施中,存储器控制器110在除MRU高速缓存行501-P之外的预先确定的高速缓存行501-x(例如,阈值高速缓存行501-x、预定义高速缓存行501-x)处或上方的高速缓存行501处添加优先高速缓存条目701。例如,如果x=3,则存储器控制器110在除MRU高速缓存行501-P之外的位于LRU+2高速缓存行501-3或更高高速缓存行处的任何高速缓存行(例如,LRU+2高速缓存行501-3至MRU-1高速缓存行501-(P-1)中的任一者)处向高速缓存392添加优先高速缓存条目701(例如,使得优先高速缓存条目701存储在高速缓存392的LRU+2高速缓存行501-3至MRU-1高速缓存行501-(P-1)之间(并且包括它们)的任何高速缓存行处)。
在一些实施方案中,根据第一请求是需求请求的确定,将数据存储在MRU高速缓存行501-P处的优先高速缓存条目701中。
在一些实施方案中,根据第一请求是预取请求的确定,将数据存储在除MRU高速缓存行501-P之外的预先确定的高速缓存行501-x(例如,阈值高速缓存行501-x、预定义高速缓存行501-x)处或上方的任何高速缓存行501处的优先高速缓存条目701中。
高速缓存392将优先高速缓存条目701存储在所选择的高速缓存行(在该示例中为LRU+3高速缓存行501-4)处,直到将高速缓存条目701从高速缓存392逐出(例如,为新高速缓存条目腾出空间),直到在随时间将新高速缓存条目添加到高速缓存392并且高速缓存条目701变得更旧(例如,最近更少使用)时将高速缓存条目701移动(例如,降级)到更低高速缓存行(例如,LRU+2高速缓存行501-3、LRU+1高速缓存行501-2或LRU高速缓存行501-1),或者直到与高速缓存392通信的处理器接收到对存储在优先高速缓存条目701中的数据的另一请求(例如,预取请求或需求请求)(例如,直到与高速缓存212-1通信的处理集群202-1的处理器204-1至204-N中的任一者接收到对存储在优先高速缓存条目701中的数据的请求)。
根据在与高速缓存392通信的处理器处接收到对存储在优先高速缓存条目701中的数据的请求之前选择优先高速缓存条目701进行替换的确定,存储器控制器110将优先高速缓存条目701降级到高速缓存392中的更低高速缓存行或将优先高速缓存条目701从高速缓存392逐出(例如,高速缓存条目601不再存储在高速缓存392处),以为新高速缓存条目腾出空间。在一些具体实施中,高速缓存替换策略指示存储器控制器110偏离选择存储满足高速缓存提升准则的数据的优先高速缓存条目(诸如优先高速缓存条目701)进行替换。在此类情况下,如果高速缓存392包括至少一个非优先高速缓存条目(诸如非优先高速缓存条目601),则不会选择优先高速缓存条目(诸如优先高速缓存条目701)进行替换。另外,高速缓存392还可存储除高速缓存条目之外的其他信息。例如,高速缓存392可存储用于与高速缓存392通信的处理器的指令(例如,用于与高速缓存212-1通信的处理器204-1至204-N中的任一者的指令)。在一些具体实施中,在选择优先高速缓存条目701进行替换之前,存储器控制器110可选择存储在高速缓存392中的其他数据(例如,指令、未存储在优先高速缓存条目中的数据)进行替换。例如,高速缓存替换策略可指示存储器控制器110偏离选择在表走查过程中提供最大捷径的高速缓存条目,并且因此偏离选择优先高速缓存条目(例如,存储对应于以下各项中的任一项的数据的高速缓存条目:(i)来自一阶段表走查过程中的2级表340(图3B所示)的输出、来自两阶段表走查过程中的阶段1 2级表(例如,图4B中的S1L2表)的输出,以及(iii)来自两阶段表走查的第五行中的任何阶段2表(例如,图4B中的S2L0、S2L1、S2L2、S2L3)的输出)进行替换。
例如,当从高速缓存392选择牺牲品时,存储器控制器110考虑选择存储在LRU高速缓存行501-1中的高速缓存条目。根据高速缓存行501-1存储优先高速缓存条目(诸如优先高速缓存条目701),存储器控制器110选择非优先高速缓存条目(诸如非优先高速缓存条目601)进行替换而不是选择优先高速缓存条目。在一些具体实施中,存储器控制器110选择非优先高速缓存条目进行替换,而不是独立于存储非优先高速缓存条目的高速缓存行并且独立于存储优先高速缓存条目的高速缓存行来选择优先高速缓存条目。例如,即使非优先高速缓存条目存储在比优先高速缓存条目高的高速缓存行处,存储器控制器110也可选择非优先高速缓存条目进行替换而不是选择优先高速缓存条目。
图7B例示了根据在将优先高速缓存条目701存储在高速缓存392中(不管高速缓存条目701存储在哪个高速缓存行501处)时在与高速缓存392通信的处理器处接收到对存储在优先高速缓存条目701中的数据的第二请求(例如,在第一请求之后并且与第一请求不同)的确定来提升优先高速缓存条目701。根据在将优先高速缓存条目701存储在高速缓存392中时在处理器处接收到第二请求(例如,预取请求、需求请求)的确定,数据获取器将存储在优先高速缓存条目701中的数据传递到处理器(例如,数据获取器208将存储在优先高速缓存条目701中的数据传递到处理器204-1),并且存储器控制器110将优先高速缓存条目701提升为存储在最高高速缓存行(例如,MRU高速缓存行501-P)处,从而增加(例如,最大化)高速缓存392中的优先高速缓存条目701的寿命。在一些具体实施中,响应于接收到对存储在优先高速缓存条目701中的数据的第二请求,更新与存储在优先高速缓存条目701中的数据相关联的标签以指示高速缓存条目701已被重复使用(例如,高速缓存条目701在存储在高速缓存392中时被访问)。
在一些具体实施中,响应于对存储在高速缓存条目701中的数据的后续请求(例如,第三请求之后的每个后续请求),如果高速缓存条目701存储在高速缓存392中的不同于MRU高速缓存行501-P的高速缓存行处,则存储器控制器110将高速缓存条目701提升到MRU高速缓存行501-P。在一些具体实施中,响应于每个后续请求,更新与高速缓存条目701相关联的标签以指示高速缓存条目701在存储在高速缓存392中时已被访问的次数。
图8A至图8C例示了根据一些具体实施的控制高速缓存中的高速缓存条目(例如,高速缓存行、存储器管理单元行)替换的示例性方法的流程图。方法800在电子设备200处实现,该电子设备包括具有一个或多个处理器204的第一处理集群202-1,以及耦合到第一处理集群202-1中的一个或多个处理器204的高速缓存212-1。高速缓存212-1存储多个数据条目。电子设备200将用于对第一地址进行转换的地址转换请求(例如,地址转换请求310或410)从第一处理集群202-1传输到高速缓存212(810)。根据高速缓存212-2中的数据条目不满足地址转换请求的确定(820),电子设备200将地址转换请求传输到与高速缓存212-1不同的存储器(例如,更低级高速缓存诸如L3高速缓存220或系统存储器104诸如DRAM)(830)。响应于地址转换请求(例如,请求310或410),电子设备200接收包括对应于第一地址的第二地址(例如,所请求的地址转换,诸如物理地址390或490)的数据(例如,从更低级高速缓存(诸如高速缓存220)或系统存储器104请求并检索所接收的数据)(840)。根据数据不满足高速缓存提升准则(例如,数据将不存储为优先高速缓存条目)的确定,将高速缓存212-1中的第一优先级(例如,第一高速缓存行)处的条目(例如,高速缓存条目)替换成数据(850)(例如,停止在第一优先级处存储所替换的条目并且在第一优先级处存储所接收的数据(代替所替换的条目),所替换的条目任选地存储在低于第一优先级的级处或者从高速缓存212-1逐出(例如,不再存储在该高速缓存处)。根据数据满足高速缓存提升准则(例如,数据将存储为优先高速缓存条目)的确定,将高速缓存212-1中的第二优先级(例如,第二高速缓存行)处的条目(例如,高速缓存条目)替换成包括第二地址的数据(860)(例如,停止在第二优先级处存储所替换的条目并且在第二优先级处存储所接收的数据(代替所替换的条目),所替换的条目任选地存储在低于第二优先级的级处或者从高速缓存212-1逐出(例如,不再存储在该高速缓存处)。第二优先级是高速缓存212-1中的比第一优先级高的优先级。
例如,地址转换请求包括对将虚拟地址312转换为物理地址(例如,物理地址390或490)的请求。在另一示例中,地址转换请求包括对将虚拟地址312转换为中间物理地址的请求。在又一示例中,地址转换请求包括对将中间物理地址转换为另一中间物理地址的请求。在第四示例中,地址转换请求包括对将中间物理地址转换为物理地址的请求。
在一些具体实施中,地址转换请求(例如,请求310或410)是从第一处理集群202-1的一个或多个处理器(例如,处理器204-1至204-N中的任一者)传输的需求请求。在一些具体实施中,根据一个或多个处理器204执行要求转换第一地址(例如,地址312)的指令来传输地址转换请求。
在一些具体实施中,第二优先级指示高速缓存212-1中的最近最多使用(MRU)条目。在一些具体实施中,根据地址转换请求(例如,请求310或410)是需求请求并且根据需求请求来执行地址转换的确定,将所检索的经转换地址(例如,物理地址390或490)存储在高速缓存级(例如,高速缓存行)中,该高速缓存级指示最近最多使用条目(例如,在MRU高速缓存行501-P处)或者高速缓存中的阈值数目的最近最多使用条目中的一个最近最多使用条目(例如,两个、三个或其他数目的最近最多使用条目中的一个最近最多使用条目,诸如在阈值高速缓存行501-x处或上方的任何高速缓存行)。图6B例示了根据地址转换请求是需求请求的确定的高速缓存替换策略的具体实施。
在一些实施方案中,地址转换请求是预取请求(例如,独立于要求转换第一地址的指令的执行来传输地址转换请求)。在一些具体实施中,在不存在来自一个或多个处理器的对转换第一地址的特定请求(例如,需求请求)的情况下传输地址转换预取请求。在一些具体实施中,从第一处理集群202-1的预取电路传输地址转换预取请求。在一些具体实施中,在响应于预取请求(例如,而不是需求请求)而执行地址转换的情况下,将所检索的经转换地址存储在高速缓存级中,该高速缓存级指示与最近最少使用条目相比最近更多使用的条目,但不一定是最近最多使用条目(例如,将经转换地址存储在更低高速缓存级(例如,阈值高速缓存行501-x之下的高速缓存行)处)。在一些具体实施中,将经转换地址存储在阈值高速缓存行501-x之下但不在LRU高速缓存行501-1处的更低高速缓存行处。在一些实施方案中,将经转换地址存储在LRU高速缓存行501-1处。
在一些具体实施中,第一优先级指示高速缓存212-1中的最近最少使用(LRU)条目。相对于图6A提供了将不满足高速缓存提升准则的所检索的数据存储在LRU高速缓存行501-1处的高速缓存条目(例如,非优先高速缓存条目,诸如高速缓存条目601)中的示例。
在一些具体实施中,根据地址转换请求是预取请求的确定,将所接收的数据存储在指示最近最少使用条目的高速缓存级中。例如,将所接收的数据存储在高速缓存392的LRU高速缓存行501-1处。在一些具体实施中,响应于对相同数据的后续数据检索请求(例如,需求请求),将数据移动到指示最近最多使用条目的高速缓存级(例如,如本文参考操作880至886所描述)。例如,响应于后续数据检索请求,将高速缓存条目移动到比高速缓存条目当前存储在高速缓存中的高速缓存行高的高速缓存行。上文在图6A至图6C中提供了响应于第一请求而将所检索的数据存储在LRU高速缓存行501-1处的高速缓存条目处并且响应于第二请求而将高速缓存条目提升到更高高速缓存行(例如,更高高速缓存级)的示例。在一些具体实施中,第一请求和第二请求两者都是预取请求。
在一些具体实施中,第一优先级(例如,阈值高速缓存行501-x之下的高速缓存级)指示高速缓存212-1中阈值数目的最近最少使用条目中的一个最近最少使用条目(例如,两个、三个或其他数目的最近最少使用条目中的一个最近最少使用条目)。在一些具体实施中,第一优先级指示高速缓存212-1中的第二最近最少使用条目(例如,LRU+1高速缓存行501-2)、高速缓存中的第三最近最少使用条目(例如,LRU+2高速缓存行501-3)或高速缓存中的其他最近最少使用条目。在一些具体实施中,根据地址转换请求是预取请求的确定,将所接收的数据存储在指示阈值数目的最近最少使用条目中的一个最近最少使用条目的高速缓存级中。在一些具体实施中,响应于对相同数据的后续数据检索请求(例如,需求请求),将数据移动到指示最近最多使用条目的高速缓存级(例如,如本文参考操作880至886所描述)。图6A例示了通过将数据存储在高速缓存行阈值501-x(例如,高速缓存级阈值)之下的高速缓存行501处的非优先高速缓存条目(诸如非优先高速缓存条目601)中来将不满足高速缓存提升准则的数据添加到高速缓存392的示例。
在一些具体实施中,根据用于对第一地址进行转换的地址转换请求是对将相应级的中间物理地址转换为下一级的中间物理地址的请求的确定,数据满足高速缓存提升准则。在示例中,数据对应于来自两阶段表走查过程400中的阶段1 2级表(例如,图4A和图4B中的S1L2(块“15”))的输出。在一些具体实施中,将相应级的中间物理地址转换为下一级的中间物理地址构成了在两阶段表走查的第一阶段期间的最后一级转换。
在一些具体实施中,根据用于对第一地址进行转换的地址转换请求是对将中间物理地址转换为物理地址的请求的确定,数据满足高速缓存提升准则。例如,数据对应于来自两阶段表走查过程400中的阶段2表(例如,S2L、S2L1、S2L2和S2L3表)的输出。在一些具体实施中,将中间物理地址转换为物理地址构成了两阶段表走查的第二阶段转换。在一些具体实施中,从两阶段表走查的第一阶段转换(例如,第一阶段的最后一级转换,阶段1 3级表(S1L3))获得中间物理地址。
在一些具体实施中,方法800还包括放弃选择高速缓存中的满足高速缓存提升准则的一个或多个相应条目(例如,优先高速缓存条目,诸如存储满足高速缓存提升准则的数据的优先高速缓存条目701)来由数据替换(870)。在示例中,电子设备200避免选择满足高速缓存提升准则的任何相应条目(例如,存储满足高速缓存提升准则的数据的任何优先高速缓存条目)作为牺牲品进行替换。在一些具体实施中,根据所替换的条目未能满足高速缓存提升准则的确定,选择所替换的条目进行替换(例如,选择存储不满足高速缓存提升准则的数据的非优先高速缓存条目作为牺牲品进行替换)。在一些具体实施中,根据条目已满足对高速缓存的地址转换请求确定,高速缓存条目满足高速缓存提升准则。在存储在高速缓存中时,高速缓存条目已被重复使用。在一些具体实施中,使用与条目相关联的一个或多个重复使用位(例如,与数据一起存储在高速缓存条目中的标签)来指示高速缓存条目是否已满足地址转换请求。
在一些具体实施中,方法800还包括接收对高速缓存212-1处的数据的数据检索请求(例如,用于对第一地址进行转换的第二地址转换请求,诸如来自第一处理集群202-1的需求请求)(880),并且响应于在高速缓存处接收到对数据的数据检索请求(882),将数据从高速缓存212-1传输到第一处理集群202-1(884)。根据数据满足高速缓存提升准则的确定,方法800还包括将高速缓存212-1中的第三级处的条目(例如,高速缓存条目)替换成数据(886)。第三级是高速缓存212-1中的比存储数据的相应级高的优先级。在一些具体实施中,第三级处的条目停止存储在第三级处,并且任选地存储在低于第三级的级处。在一些具体实施中,将存储数据的优先高速缓存条目(诸如优先高速缓存条目701)提升(例如,移动)到更高高速缓存行,使得存储数据的优先高速缓存条目存储在比当前存储优先高速缓存条目的高速缓存行高的新高速缓存行处。在一些具体实施中,作为对数据的预取请求的结果,将数据存储在指示最近最少使用条目或阈值数目的最近最少使用条目中的一个最近最少使用条目的级处(例如,在阈值高速缓存行501-x之下的更低高速缓存行处)。在一些具体实施中,随时间推移,如果未接收到对数据的数据检索请求,则将数据移动到高速缓存中的逐渐更低的级(例如,随时间推移,数据被降级或不使用而退化)。在一些具体实施中,如果数据满足高速缓存提升准则,则对数据的后续需求请求使得数据提升到高速缓存中的更高优先级(任选地,指示最近最多使用条目的级(例如,MRU高速缓存行501-P),或者指示阈值数目的最近最多使用条目中的一个最近最多使用条目的级(例如,在阈值高速缓存行501-x处或上方的更高高速缓存行))。
在一些具体实施中,方法800还包括在高速缓存212-1处接收对数据的数据检索请求(例如,用于对第一地址进行转换的第二地址转换请求,诸如来自第一处理集群202-1的需求请求)(890)。方法800还包括,响应于在高速缓存处接收到对数据的数据检索请求(892)并且根据数据不满足高速缓存提升准则的确定,将数据存储在高速缓存中的比存储数据的相应级(例如,第一优先级)高第一数目的级的级处(例如,将数据存储在比存储非优先高速缓存条目的高速缓存行高的高速缓存行处的非优先高速缓存条目中)(894)。在一些具体实施中,第一数目(例如,整数)大于0,并且数据从相应级(例如,第一优先级)移动到更高优先级,并且先前存储在更高优先级处的条目停止存储在更高优先级处,并且任选地存储在低于更高优先级的级处。在一些具体实施中,第一数目的级为0,并且数据继续存储在相应级处。相对于图6C提供了一个示例。
方法800还包括,响应于在高速缓存处接收到对数据的数据检索请求(892)并且根据数据满足高速缓存提升准则的确定,将数据存储在高速缓存中的比存储数据的相应级(例如,第二优先级)高第二数目的级的级处(例如,将数据存储在比存储优先高速缓存条目的高速缓存行高的高速缓存行处的优先高速缓存条目中)(896)。第二数目的级大于第一数目的级。在一些具体实施中,高速缓存被配置为将先前存储在高速缓存中的更高优先级处的条目替换成数据。在一些具体实施中,响应于对存储在高速缓存中的数据的后续请求(例如,对预取数据的需求请求),如果数据满足高速缓存提升准则,则与数据不满足高速缓存提升准则相比,数据在高速缓存中提升更多。
实现到物理地址的高速缓存转换,使得可使用虚拟地址作为输入来访问每个物理地址。当TLB未命中虚拟地址时,存储器管理单元(MMU)执行表走查过程以访问存储在存储器中的树状转换表。树状转换表包括多个页表。表走查过程包括对存储在存储器中的页表的存储器访问序列。在一些实施方案中,表走查过程的这些存储器访问是行大小访问,例如对允许在与TLB分级结构不同的高速缓存分级结构中高速缓存的64B高速缓存行的访问。在一些情况下,与行大小访问相关联的这些高速缓存行被应用于L2和/或L3高速缓存而不是L1高速缓存中。具体地,在L2高速缓存中应用的64B行中的每一者保存多个描述符,并且表走查过程至少标识描述符的子集。该应用的各种具体实施可被应用于实现L2高速缓存中的高速缓存替换。与其他L2高速缓存访问或替换相比,表走查过程的一组级或步骤(例如,对L2高速缓存的某些存储器访问或替换)与L2高速缓存中的更高优先级相关联并给予优先处理。
应当理解,描述图8中的操作所按的特定次序仅是示例性的并且不旨在指示所述的次序是可执行操作的唯一次序。本领域的普通技术人员将认识到重新排序本文所述的操作的各种方式。另外,应注意,本文中关于方法800(例如,图8)描述的其他过程的细节也可以可交换的方式应用。为了简洁起见,这里不再重复这些细节。
已经参考具体实施方案提供了以上描述。然而,以上例示性讨论不旨在是详尽的或局限于所公开的精确形式。鉴于以上教导,许多修改和变化是可能的。选择和描述实施方案是为了最好地解释所公开的原理及其实际应用,从而使得其他人能够最好地利用本公开以及具有适于所设想的特定用途的各种修改的各种实施方案。
在至少以下经编号条款中描述了具体实施示例:
条款1:一种电子设备,包括:第一处理集群,该第一处理集群包括一个或多个处理器;和高速缓存,该高速缓存耦合到该第一处理集群中的该一个或多个处理器并且存储多个数据条目;其中该电子设备被配置为:向该高速缓存传输用于对第一地址进行转换的地址转换请求;根据该高速缓存中的这些数据条目不满足该地址转换请求的确定:将该地址转换请求传输到与该高速缓存不同的存储器;响应于该地址转换请求,接收包括对应于该第一地址的第二地址的数据;根据该数据不满足高速缓存提升准则的确定,将该高速缓存中的第一优先级处的条目替换成该数据;以及根据该数据满足该高速缓存提升准则的确定,将该高速缓存中的第二优先级处的条目替换成包括该第二地址的该数据,其中该第二优先级是该高速缓存中的比该第一优先级高的优先级。
条款2:根据条款1所述的电子设备,其中该地址转换请求是从该第一处理集群的该一个或多个处理器传输的需求请求。
条款3:根据条款2所述的电子设备,其中该第二优先级指示该高速缓存中的最近最多使用条目。
条款4:根据前述条款中任一项所述的电子设备,其中该地址转换请求是预取请求。
条款5:根据前述条款中任一项所述的电子设备,其中该第一优先级指示该高速缓存中的最近最少使用条目。
条款6:根据条款1至4中任一项所述的电子设备,其中该第一优先级指示该高速缓存中的阈值数目的最近最少使用条目中的一个最近最少使用条目。
条款7:根据前述条款中任一项所述的电子设备,其中根据该对转换该第一地址的地址转换请求是对将相应级的中间物理地址转换为下一级的中间物理地址的请求的确定,该数据满足该高速缓存提升准则。
条款8:根据条款1至6中任一项所述的电子设备,其中根据该对转换该第一地址的地址转换请求是对将中间物理地址转换为物理地址的请求的确定,该数据满足该高速缓存提升准则。
条款9:根据前述条款中任一项所述的电子设备,包括放弃选择该高速缓存中的满足该高速缓存提升准则的一个或多个相应条目来由该数据替换。
条款10:根据前述条款中任一项所述的电子设备,其中该高速缓存被配置为:接收对该数据的数据检索请求;响应于接收到该对该数据的数据检索请求:传输该数据;以及根据该数据满足该高速缓存提升准则的确定,将该高速缓存中的第三级处的条目替换成该数据,其中该第三级是该高速缓存中的比存储该数据的该相应级高的优先级。
条款11:根据条款1至9中任一项所述的电子设备,其中该高速缓存被配置为:接收对该数据的数据检索请求;响应于接收到该对该数据的数据检索请求:传输该数据;以及根据该数据不满足该高速缓存提升准则的确定,将该数据存储在该高速缓存中的比存储该数据的相应级高第一数目的级的级处;以及根据该数据满足该高速缓存提升准则的确定,将该数据存储在该高速缓存中的比存储该数据的相应级高第二数目的级的级处,并且该第二数目的级大于该第一数目的级。
条款12:一种在电子设备处执行的方法,该电子设备包括:第一处理集群,该第一处理集群具有一个或多个处理器;和高速缓存,该高速缓存耦合到该第一处理集群中的该一个或多个处理器并且存储多个数据条目,该方法包括:向该高速缓存传输用于对第一地址进行转换的地址转换请求;根据该高速缓存中的这些数据条目不满足该地址转换请求的确定:将该地址转换请求传输到与该高速缓存不同的存储器;响应于该地址转换请求,接收包括对应于该第一地址的第二地址的数据;根据该数据不满足高速缓存提升准则的确定,将该高速缓存中的第一优先级处的条目替换成该数据;以及根据该数据满足该高速缓存提升准则的确定,将该高速缓存中的第二优先级处的条目替换成包括该第二地址的该数据,其中该第二优先级是该高速缓存中的比该第一优先级高的优先级。
条款13:根据条款12所述的方法,其中该地址转换请求是从该第一处理集群的该一个或多个处理器传输的需求请求。
条款14:根据条款13所述的方法,其中该第二优先级指示该高速缓存中的最近最多使用条目。
条款15:根据条款12至14中任一项所述的方法,其中该地址转换请求是预取请求。
条款16:根据条款12至15中任一项所述的方法,其中该第一优先级指示该高速缓存中的最近最少使用条目。
条款17:根据条款12至15中任一项所述的方法,其中该第一优先级指示该高速缓存中的阈值数目的最近最少使用条目中的一个最近最少使用条目。
条款18:根据条款12至17中任一项所述的方法,其中根据该对转换该第一地址的地址转换请求是对将相应级的中间物理地址转换为下一级的中间物理地址的请求的确定,该数据满足该高速缓存提升准则。
条款19:根据条款12至17中任一项所述的方法,其中根据该对转换该第一地址的地址转换请求是对将中间物理地址转换为物理地址的请求的确定,该数据满足该高速缓存提升准则。
条款20:根据条款12至19中任一项所述的方法,还包括:放弃选择该高速缓存中的满足该高速缓存提升准则的一个或多个相应条目来由该数据替换。
条款21:根据条款12至20中任一项所述的方法,还包括:在该高速缓存处接收对该数据的数据检索请求;响应于在该高速缓存处接收到该对该数据的数据检索请求:从该高速缓存传输该数据;以及根据该数据满足该高速缓存提升准则的确定,将该高速缓存中的第三级处的条目替换成该数据,其中该第三级是该高速缓存中的比存储该数据的该相应级高的优先级。
条款22:根据条款12至20中任一项所述的方法,还包括:在该高速缓存处接收对该数据的数据检索请求;响应于在该高速缓存处接收到该对该数据的数据检索请求:从该高速缓存传输该数据;以及根据该数据不满足该高速缓存提升准则的确定,将该数据存储在该高速缓存中的比存储该数据的相应级高第一数目的级的级处;以及根据该数据满足该高速缓存提升准则的确定,将该数据存储在该高速缓存中的比存储该数据的相应级高第二数目的级的级处,并且该第二数目的级大于该第一数目的级。
条款23:一种非暂态计算机可读存储介质,该非暂态计算机可读存储介质存储被配置用于由电子设备执行的一个或多个程序,该电子设备包括:第一处理集群,该第一处理集群包括一个或多个处理器;和高速缓存,该高速缓存耦合到该第一处理集群中的该一个或多个处理器并且存储多个数据条目,该一个或多个程序包括指令,这些指令在由该电子设备执行时,使得该电子设备执行根据条款12至22中任一项所述的方法。
条款24:一种电子设备,该电子设备包括:第一处理集群,该第一处理集群具有一个或多个处理器;和高速缓存,该高速缓存耦合到该第一处理集群中的该一个或多个处理器并且存储多个数据条目,该电子设备包括:用于执行根据条款12至22中任一项所述的方法的至少一个装置。
已经参考特定具体实施提供了以上描述。然而,以上例示性讨论不旨在是详尽的或局限于所公开的精确形式。鉴于以上教导,许多修改和变化是可能的。选择和描述具体实施是为了最好地解释所公开的原理及其实际应用,从而使得其他人能够最好地利用本公开以及具有适于所设想的特定用途的各种修改的各种具体实施。
本文的各种所述的具体实施的描述中使用的术语仅出于描述特定具体实施的目的,而不旨在进行限制。如在各种所述的具体实施的描述和所附权利要求书中所用,单数形式的“一个”、“一种”和“该”旨在也包括复数形式,除非上下文另有明确指示。还将理解,如本文所用的术语“和/或”是指并且涵盖相关联的所列项中的一个或多个相关联的所列项的任何和所有可能组合。将进一步理解,术语“包括(includes)”、“包括(including)”、“包括(comprises)”和/或“包括(comprising)”当在本说明书中使用时指定陈述特征、整体、步骤、操作、元件和/或部件的存在,但是不排除一个或多个其他特征、整体、步骤、操作、元件、部件和/或它们的组的存在或添加。另外,将理解,尽管术语“第一”、“第二”等可在本文中用于描述各种元件,但是这些元件不应当受这些术语限制。这些术语仅用于区分一个元件与另一个元件。
如本文所用,术语“如果”任选地被解释为意指“当……时”或“在……时”或“响应于确定……”或“响应于检测到……”或“根据确定……”,这取决于上下文。类似地,短语“如果确定……”或“如果检测到[陈述条件或事件]”任选地被解释为意指“在确定……时”或“响应于确定……”或“在检测到[陈述条件或事件]时”或“响应于检测到[陈述条件或事件]”或“根据确定检测到[陈述条件或事件]”,这取决于上下文。
虽然各个附图以特定次序例示多个逻辑阶段,但可将不取决于次序的阶段重新排序并可组合或拆分其他阶段。虽然具体地提及一些重新排序或其他分组,但是其他重新排序或其他分组将对本领域普通技术人员显而易见,因此本文呈现的排序和分组不是另选方案的详尽列表。此外,应当认识到,阶段可实施在硬件、固件、软件或它们的任何组合中。

Claims (30)

1.一种电子设备,包括:
第一处理集群,所述第一处理集群包括一个或多个处理器;和
高速缓存,所述高速缓存耦合到所述第一处理集群中的所述一个或多个处理器并且存储多个数据条目;
其中所述电子设备被配置为:
向所述高速缓存传输用于对第一地址进行转换的地址转换请求;
根据所述高速缓存中的所述数据条目不满足所述地址转换请求的确定:
将所述地址转换请求传输到与所述高速缓存不同的存储器;
响应于所述地址转换请求,接收包括对应于所述第一地址的第二地址的数据;
根据所述数据不满足高速缓存提升准则的确定,将所述高速缓存中的第一优先级处的条目替换成所述数据;以及
根据所述数据满足所述高速缓存提升准则的确定,将所述高速缓存中的第二优先级处的条目替换成包括所述第二地址的所述数据,其中所述第二优先级是所述高速缓存中的比所述第一优先级高的优先级。
2.根据权利要求1所述的电子设备,其中所述地址转换请求是从所述第一处理集群的所述一个或多个处理器传输的需求请求。
3.根据权利要求2所述的电子设备,其中所述第二优先级指示所述高速缓存中的最近最多使用条目。
4.根据权利要求1所述的电子设备,其中所述地址转换请求是预取请求。
5.根据权利要求1所述的电子设备,其中所述第一优先级指示所述高速缓存中的最近最少使用条目。
6.根据权利要求1所述的电子设备,其中所述第一优先级指示所述高速缓存中的阈值数目的最近最少使用条目中的一个最近最少使用条目。
7.根据权利要求1所述的电子设备,其中根据所述对转换所述第一地址的地址转换请求是对将相应级的中间物理地址转换为下一级的中间物理地址的请求的确定,所述数据满足所述高速缓存提升准则。
8.根据权利要求1所述的电子设备,其中根据所述对转换所述第一地址的地址转换请求是对将中间物理地址转换为物理地址的请求的确定,所述数据满足所述高速缓存提升准则。
9.根据权利要求1所述的电子设备,包括放弃选择所述高速缓存中的满足所述高速缓存提升准则的一个或多个相应条目来由所述数据替换。
10.根据权利要求1所述的电子设备,其中所述高速缓存被配置为:
接收对所述数据的数据检索请求;
响应于接收对所述数据的所述数据检索请求:
传输所述数据;以及
根据所述数据满足所述高速缓存提升准则的确定,将所述高速缓存中的第三级处的条目替换成所述数据,其中所述第三级是所述高速缓存中的比存储所述数据的所述相应级高的优先级。
11.根据权利要求1所述的电子设备,其中所述高速缓存被配置为:
接收对所述数据的数据检索请求;
响应于接收对所述数据的所述数据检索请求:
传输所述数据;以及
根据所述数据不满足所述高速缓存提升准则的确定,将所述数据存储在所述高速缓存中的比存储所述数据的相应级高第一数目的级的级处;以及
根据所述数据满足所述高速缓存提升准则的确定,将所述数据存储在所述高速缓存中的比存储所述数据的相应级高第二数目的级的级处,并且所述第二数目的级大于所述第一数目的级。
12.一种在电子设备处执行的方法,所述电子设备包括:第一处理集群,所述第一处理集群具有一个或多个处理器;和高速缓存,所述高速缓存耦合到所述第一处理集群中的所述一个或多个处理器并且存储多个数据条目,所述方法包括:
向所述高速缓存传输用于对第一地址进行转换的地址转换请求;
根据所述高速缓存中的所述数据条目不满足所述地址转换请求的确定:
将所述地址转换请求传输到与所述高速缓存不同的存储器;响应于所述地址转换请求,接收包括对应于所述第一地址的第二地址的数据;
根据所述数据不满足高速缓存提升准则的确定,将所述高速缓存中的第一优先级处的条目替换成所述数据;以及
根据所述数据满足所述高速缓存提升准则的确定,将所述高速缓存中的第二优先级处的条目替换成包括所述第二地址的所述数据,其中所述第二优先级是所述高速缓存中的比所述第一优先级高的优先级。
13.根据权利要求12所述的方法,其中所述地址转换请求是从所述第一处理集群的所述一个或多个处理器传输的需求请求。
14.根据权利要求13所述的方法,其中所述第二优先级指示所述高速缓存中的最近最多使用条目。
15.根据权利要求12所述的方法,其中所述地址转换请求是预取请求。
16.根据权利要求12所述的方法,其中所述第一优先级指示所述高速缓存中的最近最少使用条目。
17.根据权利要求12所述的方法,其中所述第一优先级指示所述高速缓存中的阈值数目的最近最少使用条目中的一个最近最少使用条目。
18.根据权利要求12所述的方法,其中根据所述对转换所述第一地址的地址转换请求是对将相应级的中间物理地址转换为下一级的中间物理地址的请求的确定,所述数据满足所述高速缓存提升准则。
19.根据权利要求12所述的方法,其中根据所述对转换所述第一地址的地址转换请求是对将中间物理地址转换为物理地址的请求的确定,所述数据满足所述高速缓存提升准则。
20.根据权利要求12所述的方法,还包括:
放弃选择所述高速缓存中的满足所述高速缓存提升准则的一个或多个相应条目来由所述数据替换。
21.根据权利要求12所述的方法,还包括:
在所述高速缓存处接收对所述数据的数据检索请求;
响应于在所述高速缓存处接收对所述数据的所述数据检索请求:
从所述高速缓存传输所述数据;以及
根据所述数据满足所述高速缓存提升准则的确定,将所述高速缓存中的第三级处的条目替换成所述数据,其中所述第三级是所述高速缓存中的比存储所述数据的所述相应级高的优先级。
22.根据权利要求12所述的方法,还包括:
在所述高速缓存处接收对所述数据的数据检索请求;
响应于在所述高速缓存处接收对所述数据的所述数据检索请求:
从所述高速缓存传输所述数据;以及
根据所述数据不满足所述高速缓存提升准则的确定,将所述数据存储在所述高速缓存中的比存储所述数据的相应级高第一数目的级的级处;以及
根据所述数据满足所述高速缓存提升准则的确定,将所述数据存储在所述高速缓存中的比存储所述数据的相应级高第二数目的级的级处,并且所述第二数目的级大于所述第一数目的级。
23.一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储被配置用于由电子设备执行的一个或多个程序,所述电子设备包括:第一处理集群,所述第一处理集群包括一个或多个处理器;和高速缓存,所述高速缓存耦合到所述第一处理集群中的所述一个或多个处理器并且存储多个数据条目,所述一个或多个程序包括指令,所述指令在由所述电子设备执行时,使得所述电子设备:
向所述高速缓存传输用于对第一地址进行转换的地址转换请求;
根据所述高速缓存中的所述数据条目不满足所述地址转换请求的确定:
将所述地址转换请求传输到与所述高速缓存不同的存储器;
响应于所述地址转换请求,接收包括对应于所述第一地址的第二地址的数据;
根据所述数据不满足高速缓存提升准则的确定,将所述高速缓存中的第一优先级处的条目替换成所述数据;以及
根据所述数据满足所述高速缓存提升准则的确定,将所述高速缓存中的第二优先级处的条目替换成包括所述第二地址的所述数据,其中所述第二优先级是所述高速缓存中的比所述第一优先级高的优先级。
24.根据权利要求23所述的非暂态计算机可读存储介质,其中所述地址转换请求是从所述第一处理集群的所述一个或多个处理器传输的需求请求。
25.根据权利要求24所述的非暂态计算机可读存储介质,其中所述第二优先级指示所述高速缓存中的最近最多使用条目。
26.根据权利要求23所述的非暂态计算机可读存储介质,其中所述地址转换请求是预取请求。
27.根据权利要求23所述的非暂态计算机可读存储介质,其中所述第一优先级指示所述高速缓存中的最近最少使用条目。
28.一种电子设备,所述电子设备包括:第一处理集群,所述第一处理集群具有一个或多个处理器;和高速缓存,所述高速缓存耦合到所述第一处理集群中的所述一个或多个处理器并且存储多个数据条目,所述电子设备包括:
用于向所述高速缓存传输用于对第一地址进行转换的地址转换请求的装置;
用于根据所述高速缓存中的所述数据条目不满足所述地址转换请求的确定来执行以下操作的装置:
将所述地址转换请求传输到与所述高速缓存不同的存储器;
响应于所述地址转换请求,接收包括对应于所述第一地址的第二地址的数据;
根据所述数据不满足高速缓存提升准则的确定,将所述高速缓存中的第一优先级处的条目替换成所述数据;以及
根据所述数据满足所述高速缓存提升准则的确定,将所述高速缓存中的第二优先级处的条目替换成包括所述第二地址的所述数据,其中所述第二优先级是所述高速缓存中的比所述第一优先级高的优先级。
29.根据权利要求28所述的电子设备,还包括:
用于在所述高速缓存处接收对所述数据的数据检索请求的装置;
用于响应于在所述高速缓存处接收对所述数据的所述数据检索请求而执行以下操作的装置:
从所述高速缓存传输所述数据;以及
根据所述数据满足所述高速缓存提升准则的确定,将所述高速缓存中的第三级处的条目替换成所述数据,其中所述第三级是所述高速缓存中的比存储所述数据的所述相应级高的优先级。
30.根据权利要求28所述的电子设备,还包括:
用于在所述高速缓存处接收对所述数据的数据检索请求的装置;
用于响应于在所述高速缓存处接收对所述数据的所述数据检索请求而执行以下操作的装置:
从所述高速缓存传输所述数据;以及
根据所述数据不满足所述高速缓存提升准则的确定,将所述数据存储在所述高速缓存中的比存储所述数据的相应级高第一数目的级的级处;以及
根据所述数据满足所述高速缓存提升准则的确定,将所述数据存储在所述高速缓存中的比存储所述数据的相应级高第二数目的级的级处,并且所述第二数目的级大于所述第一数目的级。
CN202280046582.XA 2021-07-14 2022-07-11 级感知高速缓存替换 Pending CN117642731A (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US63/221,875 2021-07-14
US17/666,429 US20230012880A1 (en) 2021-07-14 2022-02-07 Level-aware cache replacement
US17/666,429 2022-02-07
PCT/US2022/073591 WO2023288192A1 (en) 2021-07-14 2022-07-11 Level-aware cache replacement

Publications (1)

Publication Number Publication Date
CN117642731A true CN117642731A (zh) 2024-03-01

Family

ID=90038062

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202280046582.XA Pending CN117642731A (zh) 2021-07-14 2022-07-11 级感知高速缓存替换

Country Status (1)

Country Link
CN (1) CN117642731A (zh)

Similar Documents

Publication Publication Date Title
US7552286B2 (en) Performance of a cache by detecting cache lines that have been reused
JP6505132B2 (ja) メモリ容量圧縮を利用するメモリコントローラならびに関連するプロセッサベースのシステムおよび方法
US7266647B2 (en) List based method and apparatus for selective and rapid cache flushes
US8176255B2 (en) Allocating space in dedicated cache ways
US7783837B2 (en) System and storage medium for memory management
US20230153251A1 (en) Cache Memory That Supports Tagless Addressing
KR102665339B1 (ko) 변환 색인 버퍼 축출 기반 캐시 교체
US20130205089A1 (en) Cache Device and Methods Thereof
US8185692B2 (en) Unified cache structure that facilitates accessing translation table entries
US8583874B2 (en) Method and apparatus for caching prefetched data
JP6859361B2 (ja) 中央処理ユニット(cpu)ベースシステムにおいて複数のラストレベルキャッシュ(llc)ラインを使用してメモリ帯域幅圧縮を行うこと
US10628318B2 (en) Cache sector usage prediction
JPS61156346A (ja) 記憶階層の先取り装置
JPH06231044A (ja) キャッシュ・メモリを有するデータ処理システム
US20110320720A1 (en) Cache Line Replacement In A Symmetric Multiprocessing Computer
KR20180103907A (ko) 태그 디렉터리 캐시들을 이용한 확장 가능 동적 랜덤 액세스 메모리(dram) 캐시 관리의 제공
US11599483B2 (en) Dedicated cache-related block transfer in a memory system
CN110858181A (zh) 用于执行地址转换的装置和方法
US7844777B2 (en) Cache for a host controller to store command header information
US10528284B2 (en) Method and apparatus for enabling larger memory capacity than physical memory size
KR101689094B1 (ko) 스티키 제거 엔진을 구비한 시스템 캐시
US8656106B2 (en) Managing unforced injections of cache lines into a cache utilizing predetermined address ranges
US20230012880A1 (en) Level-aware cache replacement
CN117642731A (zh) 级感知高速缓存替换
WO2002027498A2 (en) System and method for identifying and managing streaming-data

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