CN114281715A - 缓存合成预取方法、装置、处理器以及电子设备 - Google Patents
缓存合成预取方法、装置、处理器以及电子设备 Download PDFInfo
- Publication number
- CN114281715A CN114281715A CN202111659172.6A CN202111659172A CN114281715A CN 114281715 A CN114281715 A CN 114281715A CN 202111659172 A CN202111659172 A CN 202111659172A CN 114281715 A CN114281715 A CN 114281715A
- Authority
- CN
- China
- Prior art keywords
- cache
- prefetch
- mode
- prefetching
- trigger
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
一种缓存合成预取方法、装置、处理器以及电子设备,该缓存合成预取方法用于对第一缓存和第二缓存进行预取,第一缓存比第二缓存更接近处理器核。该方法包括:获取预取信息源的利用率信息;根据预取信息源的利用率信息,确定对于第一缓存和第二缓存的预取方式,其中,对于第一缓存和第二缓存的预取方式不同。该缓存合成预取方法能够有效减小目标缓存(例如,第一缓存和第二缓存)的缓存污染,提高CPU整体性能。
Description
技术领域
本公开的实施例涉及一种缓存合成预取方法、装置、处理器以及电子设备。
背景技术
现有CPU(中央处理器)架构中,程序指令与数据可以都保存在DRAM(DynamicRandom Access Memory,动态随机存取存储器)内存中。CPU核心(又被称为处理器核)运行频率远远高于DRAM内存运行频率,因此,处理器核从内存获取指令与数据需要上百个时钟周期,往往会造成处理器核由于无法继续运行相关指令而空转,造成性能损失。因此,现代高性能CPU架构包含多级缓存架构(Cache Hierarchy)来保存最近被访问的数据。虽然各级缓存用来保存处理器核最近访问过的数据,然而,当读取从未被访问的数据或是由于缓存大小限制被踢除的数据时,处理器核仍然需要等待数十甚至上百个时钟周期,从而造成性能损失。当前,通常利用数据预取(Data Prefetching)技术来提升现代高性能CPU架构的性能。指令或数据预取技术通过分析以往指令或数据访问规律来提前预取即将被使用的指令或数据,从而减少处理器核等待的时钟周期,并提升CPU架构的整体性能。
发明内容
本公开至少一实施例提供一种缓存合成预取方法,用于对第一缓存和第二缓存进行预取,所述第一缓存比所述第二缓存更接近处理器核,所述方法包括:获取预取信息源的利用率信息;根据所述预取信息源的利用率信息,确定对于所述第一缓存和所述第二缓存的预取方式,其中,对于所述第一缓存和所述第二缓存的预取方式不同。
例如,在本公开一些实施例提供的方法中,根据所述预取信息源的利用率信息,确定对于所述第一缓存和所述第二缓存的预取方式,包括:对所述第一缓存采用第一模式进行预取;对所述第二缓存采用第二模式进行预取或不进行预取,其中,所述第一模式的预取准确率高于所述第二模式的预取准确率。
例如,在本公开一些实施例提供的方法中,所述第一模式的预取覆盖率小于所述第二模式的预取覆盖率。
例如,本公开一些实施例提供的方法还包括:提供第一预取触发模式,其中,所述第一预取触发模式表示预取准确率信息,根据所述预取信息源的利用率信息,确定对于所述第一缓存和所述第二缓存的预取方式,包括:响应于所述利用率信息大于等于第一阈值,确定所述第一预取触发模式是否饱和;以及响应于所述第一预取触发模式不饱和,对所述第一缓存和所述第二缓存之一采用所述第一模式进行预取,对所述第一缓存和所述第二缓存另一个缓存不进行预取,响应于所述第一预取触发模式饱和,对所述第一缓存和所述第二缓存都不进行预取。
例如,本公开一些实施例提供的方法,还包括:提供第二预取触发模式,其中,所述第二预取触发模式表示预取覆盖率信息,根据所述预取信息源的利用率信息,确定对于所述第一缓存和所述第二缓存的预取方式,还包括:响应于所述利用率信息小于第一阈值且大于等于第二阈值,确定所述第二预取触发模式是否饱和,以及响应于所述第二预取触发模式饱和,对所述第一缓存和所述第二缓存之一采用所述第一模式进行预取,对所述第一缓存和所述第二缓存另一个不进行预取,或者响应于所述第二预取触发模式不饱和,对所述第一缓存采用第一模式进行预取,对所述第二缓存采用所述第二模式进行预取,其中,所述第二阈值小于所述第一阈值,所述第一模式的预取准确率高于所述第二模式的预取准确率。
例如,在本公开一些实施例提供的方法中,根据所述预取信息源的利用率信息,确定对于所述第一缓存和所述第二缓存的预取方式,还包括:响应于所述利用率信息小于所述第二阈值,对所述第一缓存采用所述第一模式进行预取,对所述第二缓存采用所述第二模式进行预取。
例如,在本公开一些实施例提供的方法中,对所述第一缓存和所述第二缓存之一采用所述第一模式进行预取,对所述第一缓存和所述第二缓存另一个不进行预取,包括:对所述第一缓存采用所述第一模式进行预取而对所述第二缓存不进行预取。
例如,在本公开一些实施例提供的方法中,由所述第一预取触发模式产生所述第一模式;由所述第一预取触发模式和所述第二预取触发模式共同产生所述第二模式。
例如,在本公开一些实施例提供的方法中,所述第一预取触发模式和所述第二预取触发模式具有相同的位数,每一位取1或0,且所述第二预取触发模式包括所述第一预取触发模式的全部为1的位。
例如,在本公开一些实施例提供的方法中,所述第一预取触发模式表示为准确性偏置位模式AP,所述第二预取触发模式表示为覆盖率偏置位模式CP,由所述第一预取触发模式和所述第二预取触发模式共同产生第二模式,包括:由(~AP)&CP得到第三预取触发模式,由所述第三预取触发模式产生所述第二模式。
例如,在本公开一些实施例提供的方法中,所述第一缓存为第一级缓存,所述第二缓存为第二级缓存;或者所述第一级缓为第二级缓存而所述第二缓存为第三级缓存。
例如,在本公开一些实施例提供的方法中,所述预取信息源为内存,所述利用率信息为对于所述内存的访存带宽。
本公开至少一实施例还提供一种缓存合成预取装置,设置为与第一缓存或第二缓存同级,所述第一缓存比所述第二缓存更接近处理器核,其中,所述缓存合成预取装置包括:利用率监测模块,配置为获取预取存储源的利用率信息,预取方式选择模块,配置为根据所述预取存储源的利用率信息,确定对于所述第一缓存和所述第二缓存的预取方式,其中,对于所述第一缓存和所述第二缓存的预取方式不同。
例如,在本公开一些实施例提供的装置中,所述预取方式选择模块包括:第一模式选择单元,配置为对所述第一缓存采用所述第一模式进行预取,第二模式选择单元,配置为对所述第二缓存采用所述第二模式进行预取或不进行预取,其中,所述第一模式的预取准确率高于所述第二模式的预取准确率。
例如,在本公开一些实施例提供的装置中,还包括:预取预测模块,配置为提供第一预取触发模式,其中,所述第一预取触发模式表示预取准确率信息,所述第一模式选择单元还配置为:响应于所述利用率信息大于等于第一阈值,确定所述第一预取触发模式是否饱和,以及响应于所述第一预取触发模式不饱和,对所述第一缓存和所述第二缓存之一采用所述第一模式进行预取,对所述第一缓存和所述第二缓存另一个不进行预取,响应于所述第一预取触发模式饱和,对所述第一缓存和所述第二缓存都不进行预取。
例如,在本公开一些实施例提供的装置中,所述预取预测单元还配置为提供第二预取触发模式,其中,所述第二预取触发模式表示预取覆盖率信息,所述第一模式选择单元还配置为:响应于所述利用率信息小于第一阈值且大于等于第二阈值,确定所述第二预取触发模式是否饱和,以及响应于所述第二预取触发模式饱和,对所述第一缓存和所述第二缓存之一采用第一模式进行预取,对所述第一缓存和所述第二缓存另一个不进行预取,或者响应于所述第二预取触发模式不饱和,对所述第一缓存采用第一模式进行预取,所述第二模式选择单元还配置为:响应于所述利用率信息小于第一阈值且大于等于第二阈值,确定所述第二预取触发模式是否饱和,以及响应于所述第二预取触发模式饱和,对所述第二缓存采用所述第二模式进行预取,其中,所述第二阈值小于所述第一阈值,所述第一模式的预取准确率高于所述第二模式的预取准确率。
例如,在本公开一些实施例提供的装置中,所述第一模式选择单元还配置为:响应于所述利用率信息小于所述第二阈值,对所述第一缓存采用第一模式进行预取,所述第二模式选择单元还配置为:响应于所述利用率信息小于所述第二阈值,对所述第二缓存采用所述第二模式进行预取。
例如,在本公开一些实施例提供的装置中,所述第一模式选择单元还配置为:对所述第一缓存采用所述第一模式进行预取而对所述第二缓存不进行预取。
例如,在本公开一些实施例提供的装置中,所述预取预测模块还配置为:由所述第一预取触发模式和所述第二预取触发模式得到第三预取触发模式,以使所述第三预取触发模式产生所述第二模式。
本公开至少一实施例还提供一种处理器,包括如上述任一实施例提供的缓存合成预取装置。
本公开至少一实施例还提供一种电子设备,包括如上所述的处理器。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例的附图作简单地介绍,显而易见地,下面描述中的附图仅仅涉及本公开的一些实施例,而非对本公开的限制。
图1示出了一种多核处理器的架构示意图;
图2A示出了一种处理器中L2预取器对L2缓存预取的示意图;
图2B示出了一种处理器中L2预取器对L2缓存和L1D缓存预取的示意图;
图2C示出了一种处理器中L2预取器对L2缓存和LLC缓存预取的示意图;
图2D示出了一种处理器中L2预取器对L2缓存、LLC缓存预取的示意图;
图3为本公开一些实施例提供的一种缓存合成预取方法流程图;
图4为图3中的步骤S20的示例性流程图;
图5为图3中的步骤S20的另一示例性流程图;
图6为本公开一些实施例提供的一种缓存合成预取装置的示意框图;
图7为本公开一些实施例提供的一种电子设备的示意框图;
图8为本公开一些实施例提供的另一种电子设备的示意框图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例的附图,对本公开实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例是本公开的一部分实施例,而不是全部的实施例。基于所描述的本公开的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
除非另外定义,本公开使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本公开中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。同样,“一个”、“一”或者“该”等类似词语也不表示数量限制,而是表示存在至少一个。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
下面通过几个具体的实施例对本公开进行说明。为了保持本公开实施例的以下说明清楚且简明,本公开省略了已知功能和已知部件的详细说明。当本公开实施例的任一部件在一个以上的附图中出现时,该部件在每个附图中由相同或类似的参考标号表示。
在通常的CPU架构中,程序的指令与数据都保存在内存中,而处理器核运行频率远远高于内存运行频率,因此,从内存获取数据或者指令需要上百个时钟,这往往会造成处理器核由于无法继续运行相关指令而空转,造成性能损失。因此,现代高性能处理器都包含多级缓存架构来保存最近被访问的数据,同时提前预取即将被访问的数据、指令到缓存中。通过提前预取数据、指令到缓存,使得相应读写操作能命中缓存,从而可以减少时延。
例如,图1为一种多核处理器的架构示意图。如图1所示,该处理器具有4个处理器核(CPU Core)。同时,该处理器还具有多级缓存,例如第一级缓存(L1 Cache)、第二级缓存(L2 Cache)和最后一级缓存(Last Level Cache,LLC)。在该示例中,最后一级缓存实际上是第三级缓存(L3 Cache)。当然,本公开的实施例不限于此,处理器可以具有任意数量的多级缓存,因此最后一级缓存也可以为任意等级的缓存,这可以根据实际需求而定。例如,多级缓存可以包括第一级缓存空间至第N级缓存空间,N是大于2的整数。第一级缓存空间距离内存最远且距离处理器核最近;第N级缓存空间距离内存最近且距离处理器核最远。例如,在图1所示的示例中,处理器包括N=3级缓存空间。当然,本公开的实施例不限于此,N可以为任意的大于2的整数,例如为4、5、6等,相应地,该处理器为4级缓存架构、5级缓存架构、6级缓存架构等。
例如,可以为每个处理器核单独设置一个专用的第一级缓存,第一级缓存设置在处理器核内部。例如,第一级缓存可以包括第一级指令缓存(L1I缓存)和第一级数据缓存(L1D缓存),分别用于缓存指令和数据。处理器核通过多级缓存与内存的数据缓存机制实现指令传递和数据读取。当然,本公开的实施例不限于此,在其他示例中,也可以不区分L1I缓存和L1D缓存,而仅设置一个L1缓存,该L1缓存既用于存储数据又用于存储指令。
例如,在该示例中,最后一级缓存是多个处理器核共享的,第二级缓存是各个处理器核私有的。也即是,多个处理器核共用一个最后一级缓存,而每个处理器核被单独提供一个专用的第二级缓存。最后一级缓存和第二级缓存用于存储指令与数据,最后一级缓存与内存连接。需要说明的是,在另一些示例中,第二级缓存也可以是共享类型的缓存,本公开的实施例对此不作限制。
例如,第一级缓存至第N级缓存依序通信连接以形成通信链路,由此可以实现逐级向下的数据获取。例如,处理器核需要获取数据时,首先到第一级缓存查询,如果没有命中,则继续到第二级缓存查询,如果仍然没有命中,则到最后一级缓存查询。如果最后一级缓存还是未命中,则到内存中获取数据。例如,第一级缓存的缓存速度最快,但是容量最小,最后一级缓存容量最大,但速度最慢,第二级缓存的缓存速度及容量都介于第一级缓存与最后一级缓存之间。
例如,处理器可以使用预取器(例如,预取电路)来实现数据预取功能,对于CPU将来要访问的数据,可以提前从内存中取出。具体而言,预取器预测数据访问地址并将这些地址存储的数据存储至多级缓存中的任意目标缓存(例如,第一级缓存、第二级缓存或最后一级缓存等)中。例如,预取器可以设置在某一级缓存的附近,即该预取器与附近的缓存设置为同一级,也即是同一路径等级,例如,L1D缓存同一级的预取器可以称为L1D预取器(图中未示出),L2缓存同一级的预取器可以称为L2预取器(如图2A-2D)。需要说明是,本公开对于预取器的实现方式不做限定,例如,预取器可以通过软件程序实现,也可以通过硬件实现,或者通过软件程序结合硬件实现,只要实现数据预取功能即可。而且,预取器可以与现有的内存控制器结构相结合共同实现数据预取功能。
图2A-图2D示出了一种处理器的架构示意图。在该处理器中,L2缓存同级设置有L2预取器。例如,一个预取器可以预取数据到同一级的缓存中,这种预取器被称为“单一预取器”。如图2A所示,L2预取器为单一预取器的情况下,只能将数据预取至L2缓存中。例如,一个预取器也可以预取数据到多级缓存,这种预取器被称为“合成预取器”。例如,L1D缓存同级的L1D预取器可以预取数据到L1D缓存和L2缓存,或者L2缓存同级的L2预取器可以预取数据到L1D缓存、L2缓存、LLC缓存等。如图2B所示,L2预取器为合成预取器的情况下,将数据预取至L1D缓存和L2缓存中。如图2C所示,L2预取器为合成预取器的情况下,将数据预取至L1D缓存和L2缓存中。如图2D所示,L2预取器为合成预取器的情况下,将数据预取至L1D缓存、L2缓存以及LLC缓存中。在图2B~图2D中,使用斜线填充的缓存图示是被合成预取器操作的缓存。
例如,预取器在缓存(Cache)可能会发生访问失效之前向同一级的缓存发出预取请求,例如,预取请求可以是一种特殊的读请求,包括读数据的地址、读数据的类型、预取读数据的一个或多个目标缓存等。在数据真正被使用到时,接收预取请求的该缓存己提前将该数据取入目标缓存,从而避免缓存失效造成的处理器停顿。例如,假设L2预取器为单一预取器,L2预取器可以发送预取请求至同级的L2缓存中,L2缓存对预取请求进行解析,得到读数据的地址、读数据的类型、目标缓存为L2缓存等信息,并根据读数据的地址在该缓存至内存的路径中以逐级查询的方式获取该读数据,将获取的读数据缓存至一个目标缓存即L2缓存中,完成预取流程。例如,合成预取器可以将原本两个预取器合并为一个,同时可以根据不同信息(例如,预取准确率等)来动态决定发送预取请求至哪一级的缓存。例如,假设L2预取器为合成预取器,L2预取器能够将从内存或其他缓存中预取的数据发送至两级目标缓存,这两级目标缓存区分为低级缓存(Cache low)和高级缓存(Cache high),低级缓存更靠近处理器核(例如,L1缓存),高级缓存离处理器核更远(例如,LLC缓存)。具体而言,L2预取器可以发送预取请求至同级的L2缓存中,L2缓存对预取请求进行解析,得到读数据的地址、读数据的类型以及预取读数据的多个目标缓存(例如,低级缓存为L1缓存和高级缓存为LLC缓存)等,并根据读数据的地址在该缓存至内存的路径中以逐级查询的方式获取该读数据,将获取的读数据缓存至L2缓存中,然后由L2缓存将读数据转发给L1缓存和LLC缓存,完成预取流程。需要指出的是,用于接收预取器生成的预取请求的缓存与目标缓存并不一定是同级缓存。
例如,预取器可以通过数据访问的以往规律来进行训练,以更好的预测数据的访问地址。预取器与处理器核通信连接,可以通过以下的步骤S1-步骤S3进行训练与预取。
步骤S1:预取器接收来自CPU核的至少部分(例如所有)的访问请求(例如,历史访问请求)的虚拟地址及其他属性,利用上述访问请求(例如,历史访问请求)的虚拟地址及其他属性进行训练,以获取CPU核的访问规律,并基于上述访问规律形成预取请求。例如,L1预取器可以使用虚拟地址及其他属性进行训练,生成虚拟地址预取请求。例如,预取器还可以使用访问请求的物理地址及其他属性进行训练,生成物理地址预取请求。例如,L2预取器或LLC预取器可以使用物理地址及其他属性训练,生成物理地址预取请求。
步骤S2:基于虚拟地址预取请求对应的预取虚拟地址或物理地址预取请求对应的预取物理地址确定该预取请求的目标数据或指令是否存在于预取器同级的缓存中。如果该预取请求的目标数据或指令存在于预取器同级的缓存中,则丢弃该预取请求。如果不存在预取器同级的缓存中,则执行步骤S3。
步骤S3:基于该预取物理地址或预取虚拟地址向预取器同级的缓存的下一级缓存(例如,预取器同级的缓存为第二缓存,下一级缓存为最后一级缓存存储器,Last LevelCache)或者内存(例如,DRAM)获取该预取请求的目标数据或指令,以便于预取器同级的缓存将获取的目标数据或指令发送至目标缓存中。
例如,预取器通常被同级缓存的读取请求来训练。例如,L2预取器只能被(所有或未命中的)L2缓存的读写请求来训练。这是由于L2缓存看不到命中L1缓存的数据读写请求,因此这些命中L1缓存的读写请求无法被用来训练一个L2预取器,但是会被用来训练一个L1预取器。如图2B所示,L2预取器可以与高级缓存即L2缓存通信连接,但无需与低级缓存即L1D缓存通信连接。这是因为可以通过L2预取器将原本发往低级缓存(即L1D)与高级缓存(即L2缓存)的预取数据都发送给高级缓存,也即,高级缓存需要保存低级缓存的预取数据,如果当前预取数据命中高级缓存或者从下一级缓存/内存中获得时,将原本发送至高级缓存的该当前预取数据Stash(插入)为将该当前预取数据发送至低级缓存。Stash(插入)用于表示预取数据发送至缓存的请求不是来自处理器核,因此该低级缓存需要支持Stash(插入)操作。如图2C所示,L2预取器可以与低级缓存(L1D缓存)和高级缓存(LLC缓存)通信连接。L2预取器将预取数据发送至低级缓存(L1D缓存)和高级缓存(LLC缓存)来训练L2预取器。
三个因素影响指令预取有效性:及时性、覆盖率、准确率。及时性衡量了预取请求是否恰好在处理器需要的时候提供,太晚提供有性能损失,太早提供则占据缓存有效空间。准确率衡量了有用的预取请求的数量,有用的预取请求是基于预取请求预取到目标缓存的数据被程序使用到。覆盖率衡量了第一数量的有用的预取请求涵盖第二数量的程序数据读取请求。
例如,一类局域的预取器适合对有局部性(访问地址在一个范围内,例如2KB),但访问地址及顺序不规律的数据读取请求进行预取。这一类预取器用比特位(bitset)记录对一块局部区域内的数据访问,比特位置0的值表示对应一条或者多条缓存行(Cache Line)无访问,比特位置1的值表示对应一条或者多条缓存行(Cache Line)有访问。缓存行(CacheLine)可以理解为CPU缓存中的最小缓存单位。内存和高速缓存之间或高速缓存之间的数据移动不是以单个字节或甚至字节完成的。相反,移动的最小数据单位称为缓存行,有时称为缓存块。例如,CPU缓存的缓存行大小为64字节(Byte)。假设第一级缓存为512字节,那么按照64字节的缓存单位大小来算,该级缓存所能存放的缓存行个数就是512/64=8个。当预取器再次接收触发信号时,例如相同访问指令或者访问地址时,该预取器使用当前访问地址以及该比特位(bitset)计算出多条预取请求的地址,并发送这些预取请求至与预取器同级的缓存中,如果该预取请求预取至目标缓存的数据准确率较高,则能够减少时延,但是如果预取至目标缓存的数据过多会造成目标缓存中有用数据被大量替换掉,造成性能损失,这个现象被称为“缓存污染”。
下面,将参考附图详细地说明本公开的实施例。应当注意的是,不同的附图中相同的附图标记将用于指代已描述的相同的元件。
本公开至少一个实施例提供一种缓存合成预取方法、装置、处理器以及电子设备。该缓存合成预取方法能够有效降低缓存污染,提高处理器核的整体性能。
本公开至少一个实施例提供一种处理器,该处理器至少包括处理器核、第一缓存、第二缓存以及预取器,第一缓存比第二缓存更接近处理器核。该处理器可以是多核处理器或单核处理器。这里,“第一缓存”、“第二缓存”用于指代处理器中多级缓存中相比较而言更接近处理核的缓存和远离处理核的缓存,而非特指某个具体的缓存或某一级具体的缓存。例如,第一缓存为第一级缓存,第二缓存为第二级缓存,或者第一级缓为第二级缓存而第二缓存为第三级缓存。预取器可以是“合成预取器”,用于对多级缓存进行预取,例如,该预取器可以设置与L1D缓存同一级,预取数据到L1D缓存和L2缓存中。例如,该预取器可以设置与L2缓存同一级,预取数据到L1D缓存和L2缓存中。例如,在一个示例中,第一缓存为更接近处理器核的L1D缓存(第一级缓存),第二缓存为远离处理器核的L2缓存(第二级缓存)。又例如,该预取器可以设置与L2缓存同一级,预取数据到LLC缓存和L2缓存中,或者该预取器可以设置与LLC缓存同一级,预取数据到LLC缓存和L2缓存中。例如,第一缓存为更接近处理器核的L2缓存(第二级缓存),第二缓存为远离处理器核的LLC缓存(第三级缓存)。
图3为本公开一些实施例提供的一种缓存合成预取方法流程图,该缓存合成预取方法用于对第一缓存和第二缓存进行预取。该缓存合成预取方法包括:
步骤S10:获取预取信息源的利用率信息;
步骤S20:根据预取信息源的利用率信息,确定对于第一缓存和第二缓存的预取方式,其中,对于第一缓存和第二缓存的预取方式不同。
例如,在步骤S10中,可以通过预取器获取预取信息源的利用率信息。预取信息源中保存有程序的指令与数据,例如,预取信息源可以是内存、或者是多个处理器核共享的缓存,例如最后一级缓存(LLC)等。利用率信息是用于表示预取信息源本身的繁忙程度的信息,例如,利用率信息可以为处理器对内存或者是多个处理器核共享的缓存进行访问的带宽,通常带宽越大则表示越繁忙。通常内存(DDR)或者是多个处理器核共享的缓存有最大带宽,而处理器(CPU)访问内存或者是多个处理器核共享的缓存的带宽利用率是动态变化的,也即是当前带宽利用率=当前访问带宽/最大带宽也是动态变化的。例如,假设内存的最大宽带为5GB/s,当前访存带宽为4GB/s,那么当前带宽利用率为80%(4/5)。
例如,在步骤S20中,该预取器可以根据预取信息源的利用率信息,确定对于第一缓存和第二缓存的预取方式,以向该预取器同级的缓存发送预取请求,该缓存将数据预取至目标缓存中,例如,目标缓存为第一缓存和第二缓存。同时,预取器确定对于第一缓存和第二缓存采用不同的预取方式。
例如,图4为图3中步骤S20的示例性流程图。在一些示例中,上述步骤S20可以进一步包括如下操作。
步骤S201:提供第一预取触发模式和第二预取触发模式,其中,第一预取触发模式表示预取准确率信息,第二预取触发模式表示预取覆盖率信息。
步骤S202:由第一预取触发模式产生第一模式;由第一预取触发模式和第二预取触发模式共同产生第二模式。
步骤S203:对第一缓存采用第一模式进行预取,对第二缓存采用第二模式进行预取或不进行预取。
例如,步骤S201中,预取准确率信息可以表示为被程序需求命中的预取请求(或获取的预取数据)个数与预取请求获取的总预取数据个数的比值,也即是预取至目标缓存中的预取数据被后续程序需求使用的准确率,预取覆盖率信息可以表示为被程序需求命中的预取请求(或获取的预取数据)个数与程序总需求个数的比值,其中,程序总需求个数是程序根据需求进行读操作和写操作的个数。例如,第一预取触发模式表示为准确率偏置位模式AP,第二预取触发模式表示为覆盖率偏置位模式CP。
例如,在步骤S202中,预取器针对不同的目标缓存(例如,第一缓存和第二缓存)使用第一预取触发模式和第二预取触发模式触发不同的预取方式,例如,由第一预取触发模式产生第一模式,由第一预取触发模式和第二预取触发模式共同产生第二模式。也即是,由准确率偏置位模式AP产生第一模式,由准确率偏置位模式AP和覆盖率偏置位模式CP共同产生第二模式,其中,第一模式的预取准确率高于第二模式的预取准确率,第一模式的预取覆盖率小于第二模式的预取覆盖率。例如,准确率偏置位模式AP和覆盖率偏置位模式CP都通过比特位(bitset)表示预取请求。例如,第一预取触发模式和第二预取触发模式具有相同的位数,每一位取值1或0,且第二预取触发模式包括第一预取触发模式的全部为1的位。例如,CP bitset=111111110000表示覆盖率偏置位模式CP生成8个覆盖率较高的预取请求,AP bitset=111001110000表示准确率偏置位模式AP生成6个准确率较高的预取请求,覆盖率偏置位模式CP生成的预取请求包括准确率偏置位模式AP生成的预取请求(参见上下划线的六个位置的为1的位)。
在一示例中,由(~AP)&CP得到第三预取触发模式,由第三预取触发模式产生第二模式。例如,对AP bitset=111001110000每一数据位进行取反操作得到~AP bitset=000110001111,和CP bitset=111111110000进行“与”操作,得到(~AP)&CP=000110000000。使用“(~AP)&CP”得到的bitset生成预取请求,得到第三预取触发模式,也即是在覆盖率较高的预取请求中选择除了准确率较高的部分预取请求,以将这部分预取请求获取的数据预取到高级缓存,进而减少对低级缓存的污染。
例如,步骤S203中,预取器针对第一缓存采用第一模式进行预取,例如,将被后续程序需求使用准确率高的预取数据发送至离处理器核近的低级缓存(第一缓存)中。预取器针对第二缓存采用第二模式进行预取或不进行预取,例如,预取器针对第二缓存采用第二模式进行预取,也即是将被后续程序需求使用准确率低但是覆盖率高的预取数据发送至离处理器核远的高级缓存(第二缓存)中,有效减小高级缓存(第二缓存)的缓存污染。
例如,图5为图4中步骤S20的示例性流程图,步骤S20包括:响应于预取信息源的利用率信息大于等于第一阈值,确定第一预取触发模式是否饱和;以及响应于第一预取触发模式不饱和,对第一缓存和第二缓存之一采用第一模式进行预取,对另一个缓存不进行预取,以及响应于第一预取触发模式饱和,对第一缓存和第二缓存都不进行预取。
例如,第一阈值为内存的访存带宽的利用率的阈值。预取器响应于利用率信息大于等于第一阈值,可以利用饱和计数器测量第一预取触发模式表示为准确率偏置位模式AP是否饱和,也即是准确率偏置位模式AP生成的通过比特位(bitset)表示的预取请求会越来越多,直至达到一定阈值即为“饱和”。例如,训练过程中,AP bitset中置0位的个数较多(例如,超过阈值75%的位数都为0),此时,将AP bitset清零,重新进行训练。如果第一预取触发模式饱和,那么针对第一缓存和第二缓存可以有两种不同的预取方式,例如,第一缓存(低级缓存)采用第一模式进行预取,对第二缓存(高级缓存)不进行预取,或者第二缓存(高级缓存)采用第一模式进行预取,对第一缓存(低级缓存)不进行预取。
例如,当利用率信息大于等于第一阈值时,对第一缓存(低级缓存)采用第一模式进行预取,例如,预取器将AP生成的预取请求发送到同级的缓存中,该缓存根据预取请求将从内存获取的准确率高的预取数据发送至第一缓存(低级缓存)中,对第二缓存(高级缓存)不进行预取,从而对第二缓存(高级缓存)不会造成缓存污染。或者,对第二缓存(高级缓存)采用第一模式进行预取,预取器将AP生成的预取请求发送到同级的缓存中,该缓存根据预取请求将从内存获取的准确率高的预取数据发送至第二缓存(高级缓存)中,对第一缓存(低级缓存)不进行预取,从而对第一缓存(低级缓存)不会造成缓存污染。
例如,步骤S20还包括:响应于预取信息源的利用率信息小于第一阈值且大于等于第二阈值,确定第二预取触发模式是否饱和,以及响应于第二预取触发模式饱和,对第一缓存和第二缓存之一采用第一模式进行预取,对第一缓存和第二缓存另一个不进行预取,其中,第二阈值小于第一阈值,第一模式的预取准确率高于第二模式的预取准确率。
例如,第二阈值为内存的访存带宽的利用率的阈值,第二阈值小于第一阈值。预取器响应于利用率信息小于第一阈值且大于等于第二阈值,可以利用饱和计数器测量第二预取触发模式表示为覆盖率偏置位模式CP是否饱和,也即是覆盖率偏置位模式CP生成的通过比特位(bitset)表示的预取请求会越来越多,直至达到一定阈值即为“饱和”。例如,训练过程中,CP bitset中置1位的个数较多(例如,超过阈值75%的位数都为1),此时,将CPbitset清零,重新进行训练。如果第二预取触发模式饱和,那么针对第一缓存和第二缓存可以有两种不同的预取方式,例如,对第一缓存(低级缓存)采用第一模式和第二模式均可进行预取,对第二缓存(高级缓存)采用第一模式和第二模式均可进行预取。当对第一缓存(低级缓存)采用第一模式进行预取时,对第二缓存(高级缓存)不预取,例如,预取器将AP生成的预取请求发送到同级的缓存中,该缓存根据预取请求将从内存获取的准确率高的预取数据发送至第一缓存(低级缓存),对第二缓存(高级缓存)不预取,从而对第二缓存(高级缓存)不会造成缓存污染。或者,当对第二缓存(高级缓存)采用第一模式进行预取时,对第一缓存(低级缓存)不预取,例如,预取器将AP生成的预取请求发送到同级的缓存中,该缓存根据预取请求将从内存获取的准确率高的预取数据发送至第二缓存(高级缓存)中,对第一缓存(低级缓存)不进行预取,从而对第一缓存(低级缓存)不会造成缓存污染。
例如,步骤S20还包括:响应于预取信息源的利用率信息小于第一阈值且大于等于第二阈值,确定第二预取触发模式是否饱和,以及响应于第二预取触发模式不饱和,对第一缓存采用第一模式进行预取,对第二缓存采用第二模式进行预取。
例如,步骤S20还包括:响应于预取信息源的利用率信息小于第二阈值,对第一缓存采用第一模式进行预取,对第二缓存采用第二模式进行预取。
例如,预取器响应于利用率信息小于第一阈值且大于等于第二阈值,可以利用饱和计数器测量第二预取触发模式表示为覆盖率偏置位模式CP是否饱和,如果第二预取触发模式不饱和,那么针对第一缓存和第二缓存可以有一种不同的预取方式,例如,对第一缓存(低级缓存)采用第一模式进行预取,对第二缓存(高级缓存)采用第二模式进行预取。
例如,预取器响应于利用率信息小于第二阈值,那么针对第一缓存和第二缓存可以有一种不同的预取方式,例如,对第一缓存(低级缓存)采用第一模式进行预取,对第二缓存(高级缓存)采用第二模式进行预取。
例如,预取器将AP生成的预取请求发送到同级的缓存中,该缓存根据预取请求将从内存获取的准确率高的预取数据发送至第一缓存(低级缓存),对第二缓存采用第二模式进行预取,即将覆盖率较高的预取数据中选择出准确率较低的预取数据发送至第二缓存(高级缓存),对第二缓存不会造成缓存污染。
图6为本公开一些实施例提供的一种缓存合成预取装置,该缓存合成预取装置设置为与第一缓存或第二缓存同级,第一缓存比第二缓存更接近处理器核。
该缓存合成预取装置包括预取信息源的利用率监测模块10和预取方式选择模块20。预取信息源的利用率监测模块10配置为获取预取存储源的利用率信息,预取方式选择模块20配置为根据预取存储源的利用率信息,确定对于第一缓存和第二缓存的预取方式,其中,对于第一缓存和第二缓存的预取方式不同。
例如,在本公开一些实施例提供的缓存合成预取装置中,预取方式选择模块20包括第一模式选择单元和第二模式选择单元。第一模式选择单元配置为对第一缓存采用第一模式进行预取,第二模式选择单元配置为对第二缓存采用第二模式进行预取或不进行预取,其中,第一模式的预取准确率高于第二模式的预取准确率。
例如,在本公开一些实施例提供的缓存合成预取装置还包括预取预测模块30;预取预测模块30配置为提供第一预取触发模式。例如,第一预取触发模式表示预取准确率信息,第一模式选择单元还配置为:响应于利用率信息大于等于第一阈值,确定第一预取触发模式是否饱和,以及响应于第一预取触发模式饱和,对第一缓存和第二缓存之一采用第一模式进行预取,对第一缓存和第二缓存另一个不进行预取。
例如,在本公开一些实施例提供的缓存合成预取装置中,预取预测单元还配置为提供第二预取触发模式。例如,第二预取触发模式表示预取覆盖率信息。第一模式选择单元还配置为:响应于利用率信息小于第一阈值且大于等于第二阈值,确定第二预取触发模式是否饱和,以及响应于第二预取触发模式饱和,对第一缓存和第二缓存之一采用第一模式进行预取,对第一缓存和第二缓存另一个不进行预取,或者响应于第二预取触发模式不饱和,对第一缓存采用第一模式进行预取。第二模式选择单元还配置为:响应于利用率信息小于第一阈值且大于等于第二阈值,确定第二预取触发模式是否饱和,以及响应于第二预取触发模式饱和,对第二缓存采用第二模式进行预取,其中,第二阈值小于第一阈值,第一模式的预取准确率高于第二模式的预取准确率。
例如,在本公开一些实施例提供的缓存合成预取装置中,第一模式选择单元还配置为:响应于利用率信息小于第二阈值,对第一缓存采用第一模式进行预取;第二模式选择单元还配置为:响应于利用率信息小于第二阈值,对第二缓存采用第二模式进行预取。
例如,在本公开一些实施例提供的缓存合成预取装置中,第一模式选择单元还配置为:对第一缓存采用第一模式进行预取而对第二缓存不进行预取。
例如,在本公开一些实施例提供的缓存合成预取装置中,预取预测模块30还配置为:由第一预取触发模式和第二预取触发模式得到第三预取触发模式,以使第三预取触发模式产生第二模式。
本公开至少一个实施例还提供一种处理器,该处理器包括本公开任一实施例提供的缓存合成预取装置。该处理器可以是单核处理器或多核处理器,根据需要还可以包括多级缓存、内存等。
本公开至少一个实施例还提供一种电子设备,该电子设备包括本公开任一实施例提供的处理器。该电子设备可以在降低地址翻译时延的同时实现数据/指令预取功能,有效减少数据/指令读写操作的时延,提高系统整体性能。
图7为本公开一些实施例提供的一种电子设备的示意框图。如图7所示,电子设备100包括处理器110,处理器110为本公开任一实施例提供的处理器,例如为图7所示的处理器。该电子设备100可以用于大数据、云计算、人工智能(AI)等新型应用场景,相应地,电子设备100可以为大数据计算设备、云计算设备、人工智能设备等,本公开的实施例对此不作限制。
图8为本公开一些实施例提供的另一种电子设备的示意框图。如图8所示,该电子设备200例如适于用来实施本公开实施例提供的信息预取方法。电子设备200可以是终端设备或服务器等。需要注意的是,图8示出的电子设备200仅仅是一个示例,其不会对本公开实施例的功能和使用范围带来任何限制。
如图8所示,电子设备200可以包括处理装置(例如中央处理器、图形处理器等)21,其可以根据存储在只读存储器(ROM)22中的程序或者从存储装置28加载到随机访问存储器(RAM)23中的程序而执行各种适当的动作和处理。例如,处理装置21可以为本公开任一实施例提供的处理器,例如为图7所示的处理器。在RAM 23中,还存储有电子设备200操作所需的各种程序和数据。处理装置21、ROM 22以及RAM 23通过总线24彼此相连。输入/输出(I/O)接口25也连接至总线24。
通常,以下装置可以连接至I/O接口25:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置26;包括例如液晶显示器(LCD)、扬声器、振动器等的输出装置27;该电子设备200还可以包括例如磁带、硬盘等的存储装置28以及通信装置29。通信装置29可以允许电子设备200与其他电子设备进行无线或有线通信以交换数据。虽然图8示出了具有各种装置的电子设备200,但应理解的是,并不要求实施或具备所有示出的装置,电子设备200可以替代地实施或具备更多或更少的装置。
关于上述电子设备100/电子设备200的详细说明和技术效果,可以参考上文中关于处理器和信息预取方法的描述,此处不再赘述。
有以下几点需要说明:
(1)本公开实施例附图只涉及到本公开实施例涉及到的结构,其他结构可参考通常设计。
(2)在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合以得到新的实施例。
以上,仅为本公开的具体实施方式,但本公开的保护范围并不局限于此,本公开的保护范围应以权利要求的保护范围为准。
Claims (21)
1.一种缓存合成预取方法,用于对第一缓存和第二缓存进行预取,所述第一缓存比所述第二缓存更接近处理器核,
所述方法包括:
获取预取信息源的利用率信息;
根据所述预取信息源的利用率信息,确定对于所述第一缓存和所述第二缓存的预取方式,其中,对于所述第一缓存和所述第二缓存的预取方式不同。
2.根据权利要求1所述的方法,其中,根据所述预取信息源的利用率信息,确定对于所述第一缓存和所述第二缓存的预取方式,包括:
对所述第一缓存采用第一模式进行预取;
对所述第二缓存采用第二模式进行预取或不进行预取,其中,所述第一模式的预取准确率高于所述第二模式的预取准确率。
3.根据权利要求2所述的方法,其中,所述第一模式的预取覆盖率小于所述第二模式的预取覆盖率。
4.根据权利要求1所述的方法,其中,还包括:提供第一预取触发模式,其中,所述第一预取触发模式表示预取准确率信息,
根据所述预取信息源的利用率信息,确定对于所述第一缓存和所述第二缓存的预取方式,包括:
响应于所述利用率信息大于等于第一阈值,确定所述第一预取触发模式是否饱和;以及
响应于所述第一预取触发模式不饱和,对所述第一缓存和所述第二缓存之一采用所述第一模式进行预取,对所述第一缓存和所述第二缓存另一个不进行预取,
响应于所述第一预取触发模式饱和,对所述第一缓存和所述第二缓存都不进行预取。
5.根据权利要求4所述的方法,其中,还包括:
提供第二预取触发模式,其中,所述第二预取触发模式表示预取覆盖率信息,
根据所述预取信息源的利用率信息,确定对于所述第一缓存和所述第二缓存的预取方式,还包括:
响应于所述利用率信息小于第一阈值且大于等于第二阈值,确定所述第二预取触发模式是否饱和,以及响应于所述第二预取触发模式饱和,对所述第一缓存和所述第二缓存之一采用所述第一模式进行预取,对所述第一缓存和所述第二缓存另一个不进行预取,或者响应于所述第二预取触发模式不饱和,对所述第一缓存采用第一模式进行预取,对所述第二缓存采用所述第二模式进行预取,
其中,所述第二阈值小于所述第一阈值,所述第一模式的预取准确率高于所述第二模式的预取准确率。
6.根据权利要求5所述的方法,其中,根据所述预取信息源的利用率信息,确定对于所述第一缓存和所述第二缓存的预取方式,还包括:
响应于所述利用率信息小于所述第二阈值,对所述第一缓存采用所述第一模式进行预取,对所述第二缓存采用所述第二模式进行预取。
7.根据权利要求5所述的方法,其中,对所述第一缓存和所述第二缓存之一采用所述第一模式进行预取,对所述第一缓存和所述第二缓存另一个不进行预取,包括:
对所述第一缓存采用所述第一模式进行预取而对所述第二缓存不进行预取。
8.根据权利要求5所述的方法,其中,由所述第一预取触发模式产生所述第一模式;由所述第一预取触发模式和所述第二预取触发模式共同产生所述第二模式。
9.根据权利要求5所述的方法,其中,所述第一预取触发模式和所述第二预取触发模式具有相同的位数,每一位取1或0,且所述第二预取触发模式包括所述第一预取触发模式的全部为1的位。
10.根据权利要求9所述的方法,其中,所述第一预取触发模式表示为准确性偏置位模式AP,所述第二预取触发模式表示为覆盖率偏置位模式CP,
由所述第一预取触发模式和所述第二预取触发模式共同产生第二模式,包括:
由(~AP)&CP得到第三预取触发模式,由所述第三预取触发模式产生所述第二模式。
11.根据权利要求1所述的方法,其中,所述第一缓存为第一级缓存,所述第二缓存为第二级缓存;或者所述第一级缓为第二级缓存而所述第二缓存为第三级缓存。
12.根据权利要求1所述的方法,其中,所述预取信息源为内存,所述利用率信息为对于所述内存的访存带宽。
13.一种缓存合成预取装置,设置为与第一缓存或第二缓存同级,所述第一缓存比所述第二缓存更接近处理器核,
其中,所述缓存合成预取装置包括:
利用率监测模块,配置为获取预取存储源的利用率信息,
预取方式选择模块,配置为根据所述预取存储源的利用率信息,确定对于所述第一缓存和所述第二缓存的预取方式,其中,对于所述第一缓存和所述第二缓存的预取方式不同。
14.根据权利要求13所述的装置,其中,所述预取方式选择模块包括:
第一模式选择单元,配置为对所述第一缓存采用所述第一模式进行预取,
第二模式选择单元,配置为对所述第二缓存采用所述第二模式进行预取或不进行预取,其中,所述第一模式的预取准确率高于所述第二模式的预取准确率。
15.根据权利要求14所述的装置,还包括:
预取预测模块,配置为提供第一预取触发模式,其中,所述第一预取触发模式表示预取准确率信息,
所述第一模式选择单元还配置为:响应于所述利用率信息大于等于第一阈值,确定所述第一预取触发模式是否饱和,以及响应于所述第一预取触发模式不饱和,对所述第一缓存和所述第二缓存之一采用所述第一模式进行预取,对所述第一缓存和所述第二缓存另一个不进行预取,响应于所述第一预取触发模式饱和,对所述第一缓存和所述第二缓存都不进行预取。
16.根据权利要求15所述的装置,其中,所述预取预测单元还配置为提供第二预取触发模式,其中,所述第二预取触发模式表示预取覆盖率信息,
所述第一模式选择单元还配置为:响应于所述利用率信息小于第一阈值且大于等于第二阈值,确定所述第二预取触发模式是否饱和,以及响应于所述第二预取触发模式饱和,对所述第一缓存和所述第二缓存之一采用第一模式进行预取,对所述第一缓存和所述第二缓存另一个不进行预取,或者响应于所述第二预取触发模式不饱和,对所述第一缓存采用第一模式进行预取,
所述第二模式选择单元还配置为:响应于所述利用率信息小于第一阈值且大于等于第二阈值,确定所述第二预取触发模式是否饱和,以及响应于所述第二预取触发模式饱和,对所述第二缓存采用所述第二模式进行预取,其中,所述第二阈值小于所述第一阈值,所述第一模式的预取准确率高于所述第二模式的预取准确率。
17.根据权利要求16所述的装置,其中,所述第一模式选择单元还配置为:响应于所述利用率信息小于所述第二阈值,对所述第一缓存采用第一模式进行预取,
所述第二模式选择单元还配置为:响应于所述利用率信息小于所述第二阈值,对所述第二缓存采用所述第二模式进行预取。
18.根据权利要求16所述的装置,其中,所述第一模式选择单元还配置为:对所述第一缓存采用所述第一模式进行预取而对所述第二缓存不进行预取。
19.根据权利要求16所述的装置,其中,所述预取预测模块还配置为:由所述第一预取触发模式和所述第二预取触发模式得到第三预取触发模式,以使所述第三预取触发模式产生所述第二模式。
20.一种处理器,包括如权利要求13至19任一项所述的缓存合成预取装置。
21.一种电子设备,包括权利要求20所述的处理器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111659172.6A CN114281715A (zh) | 2021-12-30 | 2021-12-30 | 缓存合成预取方法、装置、处理器以及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111659172.6A CN114281715A (zh) | 2021-12-30 | 2021-12-30 | 缓存合成预取方法、装置、处理器以及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114281715A true CN114281715A (zh) | 2022-04-05 |
Family
ID=80879001
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111659172.6A Pending CN114281715A (zh) | 2021-12-30 | 2021-12-30 | 缓存合成预取方法、装置、处理器以及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114281715A (zh) |
-
2021
- 2021-12-30 CN CN202111659172.6A patent/CN114281715A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210141724A1 (en) | Methods to utilize heterogeneous memories with variable properties | |
US10133675B2 (en) | Data processing apparatus, and a method of handling address translation within a data processing apparatus | |
JP5731020B2 (ja) | 事前充填能力を有するメモリ管理ユニット | |
CN112416437B (zh) | 信息处理方法、信息处理装置和电子设备 | |
US9251048B2 (en) | Memory page management | |
JP2005346215A (ja) | 情報処理装置および情報処理方法 | |
US10114761B2 (en) | Sharing translation lookaside buffer resources for different traffic classes | |
JP2023507078A (ja) | プリフェッチレベルの降格 | |
US20140229682A1 (en) | Conditional prefetching | |
US10684857B2 (en) | Data prefetching that stores memory addresses in a first table and responsive to the occurrence of loads corresponding to the memory addresses stores the memory addresses in a second table | |
WO2023055486A1 (en) | Re-reference interval prediction (rrip) with pseudo-lru supplemental age information | |
CN114238167B (zh) | 信息预取方法、处理器、电子设备 | |
CN114925001A (zh) | 处理器、页表预取方法、电子设备 | |
CN112416436B (zh) | 信息处理方法、信息处理装置和电子设备 | |
US8661169B2 (en) | Copying data to a cache using direct memory access | |
EP3140744A1 (en) | Controlled cache injection of incoming data | |
CN114281715A (zh) | 缓存合成预取方法、装置、处理器以及电子设备 | |
US11645209B2 (en) | Method of cache prefetching that increases the hit rate of a next faster cache | |
CN115098410A (zh) | 处理器、用于处理器的数据处理方法及电子设备 | |
US11494300B2 (en) | Page table walker with page table entry (PTE) physical address prediction | |
CN114238176B (zh) | 处理器、用于处理器的地址翻译方法、电子设备 | |
US9552293B1 (en) | Emulating eviction data paths for invalidated instruction cache | |
US11762777B2 (en) | Method and apparatus for a dram cache tag prefetcher | |
CN114281720B (zh) | 处理器、用于处理器的地址翻译方法、电子设备 | |
US20120151150A1 (en) | Cache Line Fetching and Fetch Ahead Control Using Post Modification Information |
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 |