CN112416817A - 预取方法、信息处理装置、设备以及存储介质 - Google Patents

预取方法、信息处理装置、设备以及存储介质 Download PDF

Info

Publication number
CN112416817A
CN112416817A CN202011399309.4A CN202011399309A CN112416817A CN 112416817 A CN112416817 A CN 112416817A CN 202011399309 A CN202011399309 A CN 202011399309A CN 112416817 A CN112416817 A CN 112416817A
Authority
CN
China
Prior art keywords
prefetch
cache memory
request
level cache
address
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.)
Granted
Application number
CN202011399309.4A
Other languages
English (en)
Other versions
CN112416817B (zh
Inventor
胡世文
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.)
Haiguang Information Technology Co Ltd
Original Assignee
Haiguang Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Haiguang Information Technology Co Ltd filed Critical Haiguang Information Technology Co Ltd
Priority to CN202011399309.4A priority Critical patent/CN112416817B/zh
Publication of CN112416817A publication Critical patent/CN112416817A/zh
Application granted granted Critical
Publication of CN112416817B publication Critical patent/CN112416817B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明的各个方面涉及一种预取的方法、信息处理装置、在计算机中实现的设备以及存储介质。其中,预取的方法,包括:接收访问请求,并至少部分基于访问请求进行训练形成预取请求;基于预取请求对缓存存储器进行预取,其中,基于预取请求对缓存存储器进行预取包括:当预取请求的预取虚拟地址与训练虚拟地址位于相同存储器页面中时,通过计算获取与预取请求的预取虚拟地址相对应的预取物理地址,并将预取物理地址保存在预取队列中;以及基于预取物理地址将对应于预取请求的预取对象放入到缓存存储器中。

Description

预取方法、信息处理装置、设备以及存储介质
技术领域
本发明涉及一种在计算机中实施的预取方法和信息处理装置。
背景技术
在相关的中央处理单元(central processing unit,CPU)架构中,程序指令与数据可以保存在动态随机存取存储器(Dynamic Random Access Memory,DRAM,内存的一种)中。
发明内容
本发明的实施例提供了一种实现在计算机中的预取方法和信息处理装置,以解决现有技术中缓存存储器预取的时延增加的问题。
本发明的至少一个方面提供了一种预取的方法,包括:接收访问请求,并至少部分基于所述访问请求进行训练形成预取请求;基于所述预取请求对缓存存储器进行预取,其中,基于所述预取请求对所述缓存存储器进行预取,包括:当所述预取请求的预取虚拟地址与训练虚拟地址位于相同存储器页面中时,通过计算获取与所述预取请求的预取虚拟地址相对应的预取物理地址,并将所述预取物理地址保存在预取队列中;以及基于所述预取物理地址将对应于所述预取请求的预取对象放入到所述缓存存储器中。
在一个实施例中,基于所述预取请求对所述缓存存储器进行预取是基于所述预取请求对第二级缓存存储器进行预取。
在一个实施例中,基于所述预取物理地址将对应于所述预取请求的预取对象放入到所述缓存存储器中包括:基于所述预取物理地址确定预取对象是否存在于第二级缓存存储器中;响应于确定预取对象存在于所述第二级缓存存储器中,则在所述预取队列中丢弃所述预取请求;以及响应于确定预取对象不存在于所述第二级缓存存储器中,则基于所述预取物理地址向下一级缓存存储器获取预取对象,并将所述获取的预取对象放入到所述第二级缓存存储器中。
在一个实施例中,基于所述预取请求对所述缓存存储器进行预取还包括基于所述预取请求对第一级缓存存储器进行预取,其包括:通过地址翻译获取与所述预取请求的预取虚拟地址相对应的预取物理地址;以及基于经翻译的所述预取物理地址将预取对象放入到所述第一级缓存存储器中,其中,对于所述第一级缓存存储器进行数据读取的优先级高于对于所述第二级缓存存储器进行数据读取的优先级。
在一个实施例中,基于经翻译的所述预取物理地址将预取对象放入到所述第一级缓存存储器中包括:基于经翻译的所述预取物理地址确定预取对象是否存在于所述第一级缓存存储器中;响应于确定所述预取对象存在于所述第一级缓存存储器中,则丢弃所述预取请求;以及响应于确定所述预取对象不存在于所述第一级缓存存储器中,则基于所述预取物理地址向第二级缓存存储器获取预取对象,并将所述获取的预取对象放入到所述第一级缓存存储器中。
在一个实施例中,对所述第一级缓存存储器进行预取与对所述第二级缓存存储器进行预取同时进行。
在一个实施例中,至少部分基于所述访问请求进行训练形成预取请求包括:至少部分基于所述访问请求的虚拟地址、物理地址及访问属性中的至少一个进行训练,生成所述预取请求的预取虚拟地址。
在一个实施例中,通过计算获取所述预取请求的预取虚拟地址相对应的预取物理地址包括:通过以下公式计算所述预取物理地址:预取物理地址=训练物理地址+(预取虚拟地址-训练虚拟地址)。
在一个实施例中,所述访问请求包括数据访问请求和指令访问请求中的至少一个。
在一个实施例中,所述预取请求的预取虚拟地址与训练虚拟地址位于相同存储器页面中包括:所述预取虚拟地址的页面寻址段的地址与所述训练虚拟地址的页面寻址段的地址相同。
本发明的至少一个方面还提供了一种信息处理装置,包括:预取模块,被配置为接收访问请求,并至少部分基于对所述访问请求进行训练形成预取请求;缓存存储器模块,被配置为储存对应于所述预取请求的预取对象;以及预取队列模块。其中,所述预取模块还被配置为基于所述预取请求对所述缓存存储器模块进行预取;并且其中,基于所述预取请求对所述缓存存储器进行预取包括:当所述预取请求的预取虚拟地址与训练虚拟地址位于相同存储器页面中时,通过计算获取与所述预取请求的预取虚拟地址相对应的预取物理地址,并将所述预取物理地址保存在预取队列中;以及基于所述预取物理地址将对应于所述预取请求的预取对象放入到所述缓存存储器中。
在一个实施例中,所述缓存存储器模块包括第二级缓存存储器,并且所述预取模块还被配置为基于所述预取请求对所述第二缓存存储器模块进行预取。
在一个实施例中,所述缓存存储器模块还包括第一级缓存存储器,并且预取模块还被配置为基于所述预取请求对所述第一缓存存储器模块进行预取,其中对于所述第一级缓存存储器进行数据读取的优先级高于对于所述第二级缓存存储器进行数据读取的优先级。
在一个实施例中,信息处理装置还包括:地址翻译模块,被配置为将所述预取请求的预取虚拟地址翻译为相对应的预取物理地址。
在一个实施例中,所述第一级缓存存储器还被配置为基于经翻译的所述预取物理地址储存预取对象。
在一个实施例中,所述第一级缓存存储器基于经翻译的所述预取物理地址储存预取对象包括:基于经翻译的所述预取物理地址确定预取对象是否存在于所述第一级缓存存储器中;响应于确定所述预取对象存在于所述第一级缓存存储器中,则丢弃所述预取请求;以及响应于确定所述预取对象不存在于所述第一级缓存存储器中,则基于所述预取物理地址向第二级缓存存储器获取预取对象,并将所述获取的预取对象放入到所述第一级缓存存储器中。
在一个实施例中,所述预取模块还被配置为:至少部分基于所述访问请求的虚拟地址、物理地址及访问属性中的至少一个进行训练,生成所述预取请求的预取虚拟地址。
在一个实施例中,所述预取模块还被配置为:通过以下公式计算所述预取物理地址:预取物理地址=训练物理地址+(预取虚拟地址-训练虚拟地址)。
在一个实施例中,信息处理装置还包括:第三级缓存存储器,其中对于所述第三级缓存存储器进行信息读取的优先级低于对于第二级缓存存储器进行信息读取的优先级,其中,所述预取模块还被配置为:基于所述预取物理地址确定预取对象是否存在于所述第二级缓存存储器中;响应于确定预取对象存在于所述第二级缓存存储器中,则在所述预取队列中丢弃所述预取请求;以及响应于确定预取对象不存在于所述第二级缓存存储器中,则基于所述预取物理地址向下一级缓存存储器获取预取对象,并将所述获取的预取对象放入到所述第二级缓存存储器中。
在一个实施例中,所述访问请求包括数据访问请求和指令访问请求中的至少一个。
在一个实施例中,所述预取器被配置为同时对所述第一级缓存存储器以及所述第二级缓存存储器进行预取。
在一个实施例中,所述预取请求的预取虚拟地址与训练虚拟地址位于相同存储器页面中包括:所述预取虚拟地址的页面寻址段的地址与所述训练虚拟地址的页面寻址段的地址相同。
本发明的至少一个方面还提供了一种实现在计算机中的设备,包括处理器和其上具有指令的非瞬态存储器,其中,当由所述处理器执行所述指令时,使所述处理器实现任一项上述方法。
本发明的至少一个方面还提供了一种计算机可读储存介质,其中储存有计算机可读指令,所述计算机可读指令包含用于执行任一项上述方法的程序代码。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例的附图作简单地介绍,显而易见地,下面描述中的附图仅仅涉及本发明的一些实施例,而非对本发明的限制。
图1是示出一种CPU核读取操作流程的示意图;
图2是示出一种预取器进行训练与预取操作的流程的示意图;
图3是根据本公开至少一个实施例提供的预取方法的流程图;
图4是根据本公开至少一个实施例提供的预取操作流程的示意图;
图5是根据本公开至少一个实施例提供的信息处理装置的示例性框图;
图6是根据本公开至少一个实施例提供的计算机中实现的设备的示意图。
图7是根据本公开至少一个实施例提供的计算机可读存储介质的示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例的附图,对本发明实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于所描述的本发明的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其它实施例,都属于本发明保护的范围。
除非另作定义,此处使用的技术术语或者科学术语应当为本发明所属领域内具有一般技能的人士所理解的通常意义。本公开说明书以及权利要求书中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。同样,“一个”或者“一”等类似词语也不表示数量限制,而是表示存在至少一个。同样,“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其它元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
本公开的至少一个实施例可能涉及的术语的解释如下。
指令/数据预取:CPU架构中,程序指令与数据都保存在内存存储器(例如,DRAM)中。CPU核运行频率远远高于内存运行频率,因此,从内存获取数据与指令需要上百个CPU核时钟,往往会造成CPU核由于无法继续运行相关指令而空转,造成性能损失。鉴于此,高性能CPU核都使用包含多级缓存存储器的架构来保存最近被访问的数据,同时利用预取器发现CPU数据访问的规律,来提前预取即将被访问的数据、指令到缓存中。如果预取的是指令,则称为指令预取器;如果预取的是数据,则称为数据预取器。
地址翻译:操作系统往往同时支持多个进程同时运行。为了简化多进程管理与增强安全性,应用程序使用的是一片完整的虚拟地址,比如32比特寻址的应用程序最多有232=4GB的虚拟地址空间可供使用。当程序被运行时,这些虚拟地址会被映射为多个内存页面,每一个页面有自己的物理存储地址。应用程序程序访问指令和数据时,必须先将指令和数据的虚拟地址翻译为物理地址,并检测应用程序对该页面的访问是否合法,然后去内存或者缓存中获得相应数据传递给CPU核。从虚拟地址到物理地址的转换过程称为地址翻译。
页表缓冲器(Table Lookaside Buffer,TLB):虚拟地址到物理地址的映射存储在内存的表格中,访问这些内存中的表格同样需要上百个时钟。为了减少这些内存访问,CPU核内部使用多级的缓存来保存最近被使用的映射,这些特定的缓存被称为页表缓冲器。
CPU核流水阶段及流水级:为了提高CPU核的性能,CPU核可以使用流水线的方式,也就是一条指令从被提取、解码、执行、结果写入的整个过程被分为多个流水阶段,一个时钟一个指令只能在某一个流水阶段;而CPU核则可以有多条指令运行在不同的流水阶段。每一个流水阶段可以包括多个流水级,每个流水级执行有限的操作,以进一步提高CPU核的性能。
未命中地址缓存存储器(Missing Address Buffer,MAB):也可以被称为MSHR(Missing Status Handling Register),即当一个读写、预取请求不在第一级缓存中,而需要向下一级缓存读取时,该请求及其相应属性被保存在MAB里,直到下一级缓存返回该请求的数据。
流预取器(Stream prefetcher):用于针对一整片数据进行访问。
跨步预取器(Stride prefetcher):用于针对固定步幅的数据访问(比如访问地址A,A+2,A+4,A+6,…)。
图1示出了一种CPU核读取数据的流程图。如图1所示,该CPU核读取数据的流程包括以下的步骤S01-步骤S07。需要指出的是,这里的CPU核也可以替换为其他具有信息处理能力的处理装置或单元。
步骤S01:CPU核(CPU Core)输出访问请求的目标数据或指令的虚拟地址至地址翻译器101(例如,地址翻译流水线),地址翻译器101将上述虚拟地址翻译为物理地址,然后,CPU核确定该访问请求的目标数据或指令是否在第一级缓存存储器(例如,L1 Cache)中。在一个实施例中,访问请求可以是数据或指令的读取请求。
步骤S02:如果访问请求的目标数据或指令存在于第一级缓存存储器中,则从第一级缓存存储器取出访问请求的目标数据或指令,并通过下面的步骤S07将访问请求的目标数据或指令发送给CPU核。
步骤S03:如果访问请求的目标数据或指令不存在于第一级缓存存储器中,则向未命中地址缓存存储器(MAB)102申请一个存储项,并将该存储项分配给上述访问请求。
步骤S04:未命中地址缓存存储器102基于该存储项向下一级的缓存存储器(例如,第二级缓存存储器,L2 Cache)请求该访问请求的目标数据或指令。
步骤S05:下一级的缓存存储器获取该访问请求的目标数据或指令,并将该访问请求的目标数据或指令返还给未命中地址缓存存储器。
在一个实施例中,如图1所示,在访问请求的目标数据或指令存储在第二级缓存存储器中的情况下,第二级缓存存储器从第二级缓存存储器中获取访问请求的目标数据或指令。在另一个实施例中,在访问请求的目标数据或指令不存储在第二级缓存存储器中的情况下,第二级缓存存储器可以从位于第二级缓存存储器下一级的存储器获取该访问请求的目标数据或指令。例如,位于第二级缓存存储器下一级的存储器可以是第三级缓存存储器(L3Cache)、第四级缓存存储器(例如,最后一级缓存存储器,Last Level Cache)或者内存(例如,DRAM)等。
步骤S06:未命中地址缓存存储器102将该访问请求的目标数据或指令写入至第一级缓存存储器中。
步骤S07:第一级缓存存储器将访问请求的目标数据或指令提供给CPU核以供CPU核进行进一步处理。
在一个实施例中,缓存存储器(例如上述第一级或第二级缓存存储器)可能只能保存CPU核最近访问过的数据。在某些情况下,例如,当读取从未被CPU核访问的数据时或是因受限于缓存存储器的尺寸数据被踢出(驱逐)缓存存储器时,需要从内存(例如,DRAM内存)获取数据。然而,由于CPU核运行频率远远高于DRAM内存的运行频率,例如,从DRAM内存获取数据与指令需要上百个CPU核时钟,因此,在上述情况中,CPU核需要等待数十甚至上百个时钟周期来从内存获取数据和指令,这往往会造成CPU核由于无法继续运行相关指令而空转,从而造成CPU的性能损失。
为了解决上述问题引起的CPU的性能损失,可以采用多级缓存存储器的架构来保存最近被访问的数据,同时利用预取器训练历史数据以获取CPU核的访问规律,并基于上述访问规律来提前预取即将被使用的数据或指令,从而减少CPU核等待数据或指令的时钟周期,提升CPU整体性能。
按照预取内容的类型,预取器可以分为用于预取指令的指令预取器,以及用于预取数据的数据预取器。在一个实施例中,数据预取器还可以分为第一级预取器(即,将目标数据或指令预取到第一级缓存存储器中的预取器),第二级预取器(即,将目标数据或指令预取到第二级缓存存储器中的预取器),第三级/最后一级(Last Level)预取器(即,将目标数据或指令预取到最后一级缓存存储器中的预取器)等。在多级缓存存储器架构中,第一级(L1)缓存存储器的访问速度最快,但是容量最小,最后一级(LLC,例如为第三级或第四级)缓存存储器容量最大,但访问速度最慢,第二级(L2)缓存存储器的访问速度和容量都介于第一级缓存存储器与下一级(例如最后一级)缓存存储器之间。此外,对于第一级缓存存储器进行数据读取的优先级高于对于第二级缓存存储器进行数据读取的优先级,并且对于第二级缓存存储器进行数据读取的优先级高于对于第三级/最后一级缓存存储器进行数据读取的优先级。
图2是示出一种预取器进行训练与预取操作的流程的示意图。在一个实施例中,图2所示的预取器为第一级预取器,也即,将目标数据或指令预取到第一级缓存存储器中的预取器。此外,图2所示的预取器使用虚拟地址对预取器进行训练。
在一个实施例中,如图2所示,预取器通过以下的步骤S11-步骤S16进行训练与预取。
步骤S11:预取器接收来自CPU核的至少部分(例如所有)的访问请求(例如,历史访问请求)的虚拟地址及其他属性,利用上述访问请求(例如,历史访问请求)的虚拟地址及其他属性进行训练,以获取CPU核的访问规律,并基于上述访问规律形成预取请求。
步骤S12:通过地址翻译器201将预取请求的预取虚拟地址翻译为预取物理地址。基于预取物理地址确定该预取请求的目标数据或指令是否存在于第一级缓存存储器中。
在一个实施例中,如果该预取请求的目标数据或指令存在于第一级缓存存储器中,则丢弃该预取请求。对应地,针对该预取请求,无需执行下面的步骤S13-步骤S16。
步骤S13:如果该预取请求的目标数据或指令不存在于第一级缓存存储器,则基于该预取物理地址向第二级缓存存储器获取所需预取的预取对象(例如,目标数据或指令)。
例如,向未命中地址缓存存储器(MAB)202申请一个存储项,并将该存储项分配给上述预取请求。
步骤S14:未命中地址缓存存储器202基于该存储项向下一级的缓存存储器(例如,第二级缓存存储器)请求该目标数据或指令。
步骤S15:下一级的缓存存储器获取该目标数据或指令,并将该目标数据或指令返还给未命中地址缓存存储器。
在一个实施例中,如图2所示,在预取请求的目标数据或指令存储在第二级缓存存储器中的情况下,第一级缓存存储器从第二级缓存存储器中获取数据预取请求的目标数据或指令。在另一个实施例中,在预取请求的目标数据或指令不存储在第二级缓存存储器中的情况下,第二级缓存存储器可以从位于第二级缓存存储器下一级的存储器件(例如,最后一级缓存存储器或内存)获取该预取请求的目标数据或指令。例如,位于第二级缓存存储器下一级的存储器可以是第三级缓存存储器(例如,最后一级缓存存储器,Last LevelCache)或者内存(例如,DRAM)。
步骤S16:未命中地址缓存存储器202在收到将该目标数据或指令后,将该目标数据或指令放入至第一级缓存存储器中,以完成预取操作。
需要说明的是,在预取器进行训练与预取的同时,CPU核还进行读取数据或指令的操作,以执行相关处理。对应地,为方便描述,图2还示出了CPU核读取数据或指令的流程的部分。例如,CPU核读取数据或指令的流程包括以下步骤。
步骤S10:CPU核输出访问请求的目标数据/指令的虚拟地址至地址翻译器201(例如,地址翻译流水线),地址翻译器201将上述虚拟地址翻译为物理地址,然后,CPU核确定该访问请求的目标数据/指令是否在一级缓存存储器中。
此外,上述读取数据或指令的操作还包括类似图1中描述的读取操作:例如,如果访问请求的目标数据或指令存在于第一级缓存存储器中,则从第一级缓存存储器取出访问请求的目标数据或指令;如果访问请求的目标数据或指令不存在于第一级缓存存储器中,则向未命中地址缓存存储器(MAB)申请一个存储项,并将该存储项分配给上述访问请求。未命中地址缓存存储器基于该存储项向下一级的缓存存储器(例如,第二级缓存存储器,L2Cache)请求该访问请求的目标数据或指令。下一级的缓存存储器获取该访问请求的目标数据或指令,并将该访问请求的目标数据或指令返还给未命中地址缓存存储器。然后,未命中地址缓存存储器将该访问请求的目标数据或指令写入至第一级缓存存储器中。然后,第一级缓存存储器将访问请求的目标数据或指令提供给CPU核以供CPU核完成读取数据或指令的操作。
在高性能CPU中,对于数据/指令的虚拟地址的预取往往与正常的数据/指令读取共享地址翻译器/地址翻译流水线。在高频率高性能CPU中,该地址翻译流水线可能是多级的,而由于预取操作的重要性和优先级均低于正常读取的重要性和优先级,因此,一个预取操作可能需要等待多个时钟周期才能够进入地址翻译流水线。同时由于地址翻译的多个流水时钟周期,这样一个预取需要多个时钟才能够发给下一级缓存。在许多情况下,预取操作是有时效性的,相对应的CPU核访问请求往往很快就会发生,上述地址翻译造成的时延往往会造成预取数据过晚到达第一级缓存存储器,从而无法完全避免缓存遗漏(cache miss)。
另一方面,在许多高性能CPU中,未命中地址缓存存储器(MAB)的数量决定了同时错过第一级缓存存储器的请求的数量,因此,未命中地址缓存存储器(MAB)是相对稀缺的资源。在未命中地址缓存存储器已满的情况下,一个新的请求会被拒绝,然后需要在重新走一遍地址翻译流水线后,重新确定可以分配未命中地址缓存存储器的存储项。这会进一步增加对于缓存存储器预取的时延,降低系统的有效性。
本公开的至少一个实施例提供了一种预取方法和数据处理装置。该预取方法包括:接收访问请求,并至少部分基于访问请求进行训练形成预取请求;基于预取请求对缓存存储器进行预取,其中,基于预取请求对缓存存储器进行预取包括:当预取请求的预取虚拟地址与训练虚拟地址位于相同存储器页面中时,通过计算获取与预取请求的预取虚拟地址相对应的预取物理地址,并将预取物理地址保存在预取队列中;以及基于预取物理地址将对应于预取请求的预取对象放入到缓存存储器中。例如,本公开的至少一个实施例提供的预取方法和数据处理装置可以降低预取数据不在缓存存储器中时的时延,从而提高系统的整体性能。
本公开的至少一个实施例基于常常可能出现的预取请求的预取虚拟地址与训练虚拟地址位于相同存储器页面中的情况,通过计算获取与预取请求的预取虚拟地址相对应的预取物理地址,避免了使用地址翻译流水对预取请求的预取虚拟地址进行翻译,从而可以尽快将所需的预取的数据或指令预取到缓存存储器中,从而降低预取数据不在缓存存储器时的时延,提高整体系统运行的效率,提升了系统处理的性能。
下面通过几个示例和实施例对根据本公开至少一个实施例提供的数据预取方法进行非限制性的说明,如下面所描述的,在不相互抵触的情况下这些具体示例和实施例中不同特征可以相互组合,从而得到新的示例和实施例,这些新的示例和实施例也都属于本公开保护的范围。
图3是根据本公开至少一个实施例提供的预取方法的流程图。例如,如图3所示,该数据预取方法包括以下的步骤S21-步骤S23。
步骤S21:接收访问请求,并至少部分基于基于访问请求进行训练形成预取请求;
步骤S22:基于预取请求对缓存存储器进行预取,其包括:当预取请求的预取虚拟地址与训练虚拟地址位于相同存储器页面中时,通过计算获取与预取请求的预取虚拟地址相对应的预取物理地址,并将预取物理地址保存在预取队列中;以及
步骤S23:基于预取物理地址将对应于预取请求的预取对象放入到缓存存储器中。
图4是根据本公开至少一个实施例提供的预取操作流程的示意图。下面结合图4对于根据本公开提供的预取方法进行示例性说明,在图4的示例中,以对第二缓存存储器进行预取操作为例进行说明。
如图4所示,在一个实施例中,该预取方法包括以下的步骤S321-步骤S325。
步骤S321:预取器接收访问请求,并至少部分基于访问请求进行训练形成预取请求。
在一个实施例中,访问请求可以包括由例如CPU核的处理装置或处理单元发送的所有访问请求或者部分访问请求(例如,历史访问请求),且例如该访问请求的内容可以包括访问请求的虚拟地址、物理地址及访问属性。此外,访问请求可以包括数据访问请求和指令访问请求。
在一个实施例中,对于访问请求的训练对象可以包括:用于训练的访问请求的虚拟地址,即训练虚拟地址,例如,该训练虚拟地址可以包括输入到预取器的用于训练的多条历史访问请求的虚拟地址;用于训练的访问请求的物理地址,即训练物理地址,例如可以包括用于训练的历史访问请求的物理地址;以及访问请求的访问属性,例如可以是读取访问或是写入访问的访问属性。
在一个实施例中,至少部分基于访问请求的虚拟地址、物理地址和访问属性的至少一个进行训练,检测访问规律,并生成预取请求的预取虚拟地址。
步骤S322:预取器判断预取请求的预取虚拟地址与历史访问请求的至少一个训练虚拟地址是否位于相同存储器页面中,当预取请求的预取虚拟地址与历史访问请求的某一个训练虚拟地址位于相同存储器页面中时,基于该预取请求对第二级缓存存储器进行预取。
在一个实施例中,判断预取请求的预取虚拟地址与历史访问请求的某一个训练虚拟地址是否位于相同存储器页面(例如,位于同一个4KB内存页面)中,例如可以通过以下条件判断:预取虚拟地址的页面寻址段的地址与训练虚拟地址的页面寻址段的地址是否相同。在以内存页面大小为4KB的存储器示例中,预取虚拟地址的页面寻址段的地址与训练虚拟地址的页面寻址段的地址是否相同意味着预取虚拟地址的第12位以上(高位)的地址与训练虚拟地址的第12位以上(高位)的地址相同。因此,在一个实施例中,当预取虚拟地址的页面寻址段的地址与训练虚拟地址的页面寻址段的地址相同时,可以通过计算获取与预取请求的预取虚拟地址相对应的预取物理地址,并将所计算获取的预取物理地址保存在预取队列中。
需要说明的是,虽然大多数存储器页面采用4KB大小的最小页面设计,但是本公开的上述方案并不限于此,而是可以适用于不同存储器页面大小的实施方式。例如,在一个实施例中,可以通过首先将训练读取的相应页面的大小发送给预取器,然后,预取器可以根据存储器页面的大小通过计算来判断预取请求的预取虚拟地址与历史访问请求的某一个训练虚拟地址是否位于同一个存储器页面,进而实现本公开的上述实施方式。
在一个实施例中,可以通过以下公式计算预取物理地址:
预取物理地址=训练物理地址+(预取虚拟地址-训练虚拟地址)
通过上述计算的方式获取预取物理地址避免了通过地址翻译流水线以及竞争MAB资源所需的多个时钟周期,此外,通过增加预取队列的方式来保存无需地址翻译的预取物理地址,节省了缓存资源,从而提升了运行处理的效率。
步骤S323:基于预取物理地址将对应于预取请求的预取对象放入到该第二级缓存存储器中。
在一个实施例中,基于预取物理地址确定预取对象是否存在于第二级缓存存储器中;并且响应于确定预取对象存在于第二级缓存存储器中,则在预取队列中丢弃该预取请求;
步骤S324:响应于确定预取对象不存在于第二级缓存存储器中,则基于预取物理地址向下一级缓存存储器(例如,最后一级缓存存储器/第三级缓存存储器)获取预取对象。
步骤S325:下一级的缓存存储器获取该预取对象,并将该预取对象返还给第二级缓存存储器,以完成对于第二级缓存存储器的预取操作。这里所称的预取对象可以包括目标数据或者指令。
在一个实施例中,在预取请求的预取对象存储在第三级缓存存储器中的情况下,第二级缓存存储器从第三级缓存存储器中获取数据预取请求的预取对象。在另一个实施例中,在预取请求的预取对象不存储在第三级缓存存储器中的情况下,第二级缓存存储器可以从位于第三级缓存存储器下一级的存储器件(例如,内存)获取该预取请求的预取对象。
由于预取器检测到的地址读取规律往往是局部性的(也即,地址之间跨度不是很大),例如,根据实验的结果,约62%-80%的预取虚拟地址与训练虚拟地址位于相同的页面中,因此可以使用本公开的上述计算的方式来避免大部分预取虚拟地址的地址翻译。因此,通过上述计算的方式获取预取物理地址一方面绕开了等待地址翻译流水线多个时钟周期,并且通过增加预取队列可以将所需预取的信息尽快地预取到缓存存储器中(例如,第二级缓存存储器),从而提升CPU核心的整体处理性能,以进一步提升系统整体的运行效率。
应当理解的是,上述对第二级缓存存储器进行预取的操作可以应用于对于其他缓存存储器的预取,例如第三级/最后一级缓存存储器。
此外,需要说明的是,在预取器对于第二级缓存存储器进行预取的同时,预取器还可以对第一级缓存存储器进行预取。对应地,为方便描述,图4还示出了预取器还对第一级缓存存储器进行预取的部分流程。例如,对第一级缓存存储器进行预取可以包括以下步骤。
步骤S321:预取器接收访问请求,并通过训练访问请求形成预取请求。
步骤S312:通过地址翻译器401将预取请求的预取虚拟地址翻译为预取物理地址。基于预取物理地址确定该预取请求的预取对象是否存在于第一级缓存存储器中。
在一个实施例中,如果该预取请求的预取对象存在于第一级缓存存储器中,则丢弃该预取请求。对应地,针对该预取请求,无需执行下面的步骤S313-步骤S316。
步骤S313:如果该预取请求的预取对象不存在于第一级缓存存储器,则基于该预取物理地址向第二级缓存存储器获取所需预取的预取对象。
例如,向未命中地址缓存存储器(MAB)402申请一个存储项,并将该存储项分配给上述预取请求。
步骤S314:未命中地址缓存存储器402基于该存储项向下一级的缓存存储器(例如,第二级缓存存储器)请求该预取对象。
步骤S315:下一级的缓存存储器获取该预取对象,并将该预取对象返还给未命中地址缓存存储器。
在一个实施例中,如图4所示,在预取请求的预取对象存储在第二级缓存存储器中的情况下,第一级缓存存储器从第二级缓存存储器中获取数据预取请求的预取对象。在另一个实施例中,在预取请求的预取对象不存储在第二级缓存存储器中的情况下,第二级缓存存储器可以从位于第二级缓存存储器下一级的存储器件(例如,最后一级缓存存储器或内存)获取该预取请求的预取对象。
步骤S316:未命中地址缓存存储器402在收到将该预取对象后,将该预取对象放入至第一级缓存存储器中,以完成第一级缓存存储器的预取操作。
在本公开的实施例中,上述步骤S321-S325与步骤S312-S316可以并行执行,即,预取器对于第二级缓存存储器的预取操作与对第一级缓存存储器预取操作可以同时进行。但应当理解的是,在另一个实施例中,对第一级缓存存储器的预取操作也可以不与对第二级缓存存储器的预取操作同时进行,而是在第一级缓存存储器的预取操作之后,进行第二级缓存存储器的预取操作。
此外,还需要说明的是,在一个实施例中,在预取器进行对于第一级缓存存储器和第二级缓存存储器预取的同时,CPU核还进行读取数据或指令的操作,以执行相关处理。对应地,为方便描述,图4还示出了CPU核读取数据或指令的流程的部分。例如,CPU核读取数据或指令的流程包括以下步骤。
步骤S301:CPU核输出访问请求的目标数据/指令的虚拟地址至地址翻译器201(例如,地址翻译流水线),地址翻译器401将上述虚拟地址翻译为物理地址,然后,CPU核确定该访问请求的目标数据/指令是否在一级缓存存储器中。
此外,上述读取数据或指令的操作还包括类似图1中描述的读取操作:例如,如果访问请求的目标数据或指令存在于第一级缓存存储器中,则从第一级缓存存储器取出访问请求的目标数据或指令;如果访问请求的目标数据或指令不存在于第一级缓存存储器中,则向未命中地址缓存存储器(MAB)申请一个存储项,并将该存储项分配给上述访问请求。未命中地址缓存存储器基于该存储项向下一级的缓存存储器(例如,第二级缓存存储器,L2Cache)请求该访问请求的目标数据或指令。下一级的缓存存储器获取该访问请求的目标数据或指令,并将该访问请求的目标数据或指令返还给未命中地址缓存存储器。然后,未命中地址缓存存储器将该访问请求的目标数据或指令写入至第一级缓存存储器中。然后,第一级缓存存储器将访问请求的目标数据或指令提供给CPU核以供CPU核完成读取数据或指令的操作。
本公开的至少一个实施例还提供了一种信息处理装置500。图5是根据本公开至少一个实施例提供的信息处理装置的示例性框图。
如图5所示,该信息处理装置500包括预取模块501,缓存存储器模块502,预取队列模块503和地址翻译模块504。
预取模块501可以被配置为接收访问请求,并通过训练访问请求形成预取请求。在一个实施例中,预取模块501可以被配置为基于预取请求对缓存存储器模块502进行预取。例如,基于预取请求对缓存存储器进行预取可以包括:当预取请求的预取虚拟地址与训练虚拟地址位于相同存储器页面中时,通过计算获取与预取请求的预取虚拟地址相对应的预取物理地址,并将预取物理地址保存在预取队列模块503中;以及基于预取物理地址将对应于预取请求的预取对象放入到缓存存储器模块502中。
缓存存储器模块502被配置为储存对应于预取请求的预取对象,并且缓存存储器模块502可以进一步包括第一缓存存储器模块5021、第二缓存存储器模块5022和第三缓存存储器模块5023。
地址翻译模块504,被配置为根据需要将预取请求的预取虚拟地址翻译为相对应的预取物理地址。
应当注意的是,本公开的实施方式并局限于某一预取器或者信息处理装置的实现方式中,而是可以实现在使用虚拟地址进行训练的任何设备中。
这里所描述的模块的一些方面可以使用例如计算机软件、硬件、固件或者计算机软件、硬件和固件的任何组合而实施。例如,某些模块可以使用集成电路的组合而完全用硬件实施,而某些模块可以使用在通用计算机上执行的软件来实施。可替换地或额外地,其他模块可以使用被设计为执行上述特定功能的专用计算机而不是通用计算机来完全地或部分地实施。
图6是根据本公开至少一个实施例提供的计算机中实现的设备的示意图。如图6所示,计算机中实现的设备600包含处理器602和非瞬态存储器603。其中,在该非瞬态存储器上存储有指令601。在一个实施例中,当处理器602执行指令601时,可以实现根据上文所述的预取方法中的一个或多个步骤。
图7是根据本公开至少一个实施例提供的计算机可读存储介质的示意图。如图7所示,计算机可读存储介质700非暂时性地存储有计算机可读指令701。例如,当计算机可读指令701由计算机执行时可以执行根据上文所述的预取方法中的一个或多个步骤。
例如,该计算机可读存储介质700可以应用于上述用于计算机实现的设备600中。例如,存储介质700可以为图6所示的设备600中的存储器603。
有以下几点需要说明:
(1)本公开实施例附图只涉及到与本公开实施例涉及到的结构,其他结构可参考通常设计。
(2)在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合以得到新的实施例。
以上,仅为本公开的具体实施方式,但本公开的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应以权利要求的保护范围为准。

Claims (20)

1.一种预取的方法,包括:
接收访问请求,并至少部分基于所述访问请求进行训练形成预取请求;
基于所述预取请求对缓存存储器进行预取,
其中,基于所述预取请求对所述缓存存储器进行预取,包括:
当所述预取请求的预取虚拟地址与训练虚拟地址位于相同存储器页面中时,通过计算获取与所述预取请求的预取虚拟地址相对应的预取物理地址,并将所述预取物理地址保存在预取队列中;以及
基于所述预取物理地址将对应于所述预取请求的预取对象放入到所述缓存存储器中。
2.如权利要求1所述的方法,其中,基于所述预取请求对所述缓存存储器进行预取是基于所述预取请求对第二级缓存存储器进行预取。
3.如权利要求2所述的方法,其中,基于所述预取物理地址将对应于所述预取请求的预取对象放入到所述缓存存储器中包括:
基于所述预取物理地址确定所述预取对象是否存在于所述第二级缓存存储器中;
响应于确定所述预取对象存在于所述第二级缓存存储器中,则在所述预取队列中丢弃所述预取请求;
响应于确定所述预取对象不存在于所述第二级缓存存储器中,则基于所述预取物理地址向下一级缓存存储器获取所述预取对象,并将所述获取的所述预取对象放入到所述第二级缓存存储器中。
4.如权利要求2所述的方法,其中,基于所述预取请求对所述缓存存储器进行预取还包括:
基于所述预取请求对第一级缓存存储器进行预取,包括:
通过地址翻译获取与所述预取请求的预取虚拟地址相对应的预取物理地址;以及
基于经翻译的所述预取物理地址将所述预取对象放入到所述第一级缓存存储器中,其中,对于所述第一级缓存存储器进行数据读取的优先级高于对于所述第二级缓存存储器进行数据读取的优先级。
5.如权利要求4所述的方法,其中,基于经翻译的所述预取物理地址将所述预取对象放入到所述第一级缓存存储器中包括:
基于经翻译的所述预取物理地址确定所述预取对象是否存在于所述第一级缓存存储器中;
响应于确定所述预取对象存在于所述第一级缓存存储器中,则丢弃所述预取请求;
响应于确定所述预取对象不存在于所述第一级缓存存储器中,则基于所述预取物理地址向第二级缓存存储器获取所述预取对象,并将所述获取的所述预取对象放入到所述第一级缓存存储器中。
6.如权利要求4所述的方法,其中,对所述第一级缓存存储器进行预取与对所述第二级缓存存储器进行预取同时进行。
7.如权利要求1所述的方法,其中,至少部分基于所述访问请求进行训练形成预取请求包括:
至少部分基于所述访问请求的虚拟地址、物理地址和访问属性中的至少一个进行训练,生成所述预取请求的预取虚拟地址。
8.如权利要求1所述的方法,其中,通过计算获取所述预取请求的预取虚拟地址相对应的预取物理地址包括:
通过以下公式计算所述预取物理地址:
预取物理地址=训练物理地址+(预取虚拟地址-训练虚拟地址)。
9.如权利要求1所述的方法,其中,所述预取请求的预取虚拟地址与所述训练虚拟地址位于相同存储器页面中包括:
所述预取虚拟地址的页面寻址段的地址与所述训练虚拟地址的页面寻址段的地址相同。
10.如权利要求1-9中任一项所述的方法,其中,所述访问请求包括数据访问请求和指令访问请求中的至少一个。
11.一种信息处理装置,包括:
预取模块,被配置为接收访问请求,并至少部分基于所述访问请求进行训练形成预取请求;
缓存存储器模块,被配置为储存对应于所述预取请求的预取对象;以及
预取队列模块,
其中,所述预取模块还被配置为基于所述预取请求对所述缓存存储器模块进行预取;其中,基于所述预取请求对所述缓存存储器进行预取包括:
当所述预取请求的预取虚拟地址与训练虚拟地址位于相同存储器页面中时,通过计算获取与所述预取请求的预取虚拟地址相对应的预取物理地址,并将所述预取物理地址保存在预取队列中;以及
基于所述预取物理地址将对应于所述预取请求的预取对象放入到所述缓存存储器中。
12.如权利要求11所述的装置,其中,所述缓存存储器模块包括第二级缓存存储器,并且
所述预取模块还被配置为基于所述预取请求对所述第二缓存存储器模块进行预取。
13.如权利要求12所述的装置,其中,所述缓存存储器模块还包括第一级缓存存储器,并且
所述预取模块还被配置为基于所述预取请求对所述第一缓存存储器模块进行预取,
其中,对于所述第一级缓存存储器进行数据读取的优先级高于对于所述第二级缓存存储器进行数据读取的优先级。
14.如权利要求13所述的装置,还包括:
地址翻译模块,被配置为将所述预取请求的预取虚拟地址翻译为相对应的预取物理地址。
15.如权利要求14所述的装置,其中,所述第一级缓存存储器还被配置为基于经翻译的所述预取物理地址储存预取对象。
16.如权利要求11所述的装置,其中,所述预取模块还被配置为:至少部分基于所述访问请求的虚拟地址、物理地址和访问属性中的至少一个进行训练,生成所述预取请求的预取虚拟地址。
17.如权利要求11所述的装置,其中,所述预取模块还被配置为通过以下公式计算所述预取物理地址:
预取物理地址=训练物理地址+(预取虚拟地址-训练虚拟地址)。
18.如权利要求12所述的装置,还包括:
第三级缓存存储器,其中对于所述第三级缓存存储器进行信息读取的优先级低于对于第二级缓存存储器进行信息读取的优先级,
其中,所述预取模块还被配置为:
基于所述预取物理地址确定预取对象是否存在于所述第二级缓存存储器中;
响应于确定预取对象存在于所述第二级缓存存储器中,则在所述预取队列中丢弃所述预取请求;
响应于确定预取对象不存在于所述第二级缓存存储器中,则基于所述预取物理地址向下一级缓存存储器获取预取对象,并将所述获取的预取对象放入到所述第二级缓存存储器中。
19.一种实现在计算机中的设备,包括:
处理器;以及
其上具有指令的非瞬态存储器,
其中,当由所述处理器执行所述指令时,使所述处理器实现权利要求1至10中任一项所述的方法。
20.一种计算机可读储存介质,其中储存有计算机可读指令,所述计算机可读指令包含用于执行权利要求1至10中任一项所述的方法的程序代码。
CN202011399309.4A 2020-12-02 2020-12-02 预取方法、信息处理装置、设备以及存储介质 Active CN112416817B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011399309.4A CN112416817B (zh) 2020-12-02 2020-12-02 预取方法、信息处理装置、设备以及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011399309.4A CN112416817B (zh) 2020-12-02 2020-12-02 预取方法、信息处理装置、设备以及存储介质

Publications (2)

Publication Number Publication Date
CN112416817A true CN112416817A (zh) 2021-02-26
CN112416817B CN112416817B (zh) 2023-02-17

Family

ID=74829177

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011399309.4A Active CN112416817B (zh) 2020-12-02 2020-12-02 预取方法、信息处理装置、设备以及存储介质

Country Status (1)

Country Link
CN (1) CN112416817B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114281720A (zh) * 2021-12-14 2022-04-05 海光信息技术股份有限公司 处理器、用于处理器的地址翻译方法、电子设备
CN114358179A (zh) * 2021-12-31 2022-04-15 海光信息技术股份有限公司 处理器的预取训练方法、处理装置、处理器和计算设备
CN114625674A (zh) * 2022-03-24 2022-06-14 广东华芯微特集成电路有限公司 预驱指令架构与预驱指令架构的预取方法
CN114995882A (zh) * 2022-07-19 2022-09-02 沐曦集成电路(上海)有限公司 一种异构结构系统包处理的方法
CN116055429A (zh) * 2023-01-17 2023-05-02 杭州鸿钧微电子科技有限公司 基于pcie的通信数据处理方法、装置、设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120166733A1 (en) * 2010-12-22 2012-06-28 Naveen Cherukuri Apparatus and method for improving data prefetching efficiency using history based prefetching
CN104133780A (zh) * 2013-05-02 2014-11-05 华为技术有限公司 一种跨页预取方法、装置及系统
CN109446111A (zh) * 2018-10-15 2019-03-08 上海兆芯集成电路有限公司 存储器集成电路及其预取地址决定方法
CN110704107A (zh) * 2019-09-30 2020-01-17 上海兆芯集成电路有限公司 预取器、预取器的运作方法及处理器
CN111240743A (zh) * 2020-01-03 2020-06-05 上海兆芯集成电路有限公司 人工智能集成电路

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120166733A1 (en) * 2010-12-22 2012-06-28 Naveen Cherukuri Apparatus and method for improving data prefetching efficiency using history based prefetching
CN104133780A (zh) * 2013-05-02 2014-11-05 华为技术有限公司 一种跨页预取方法、装置及系统
CN109446111A (zh) * 2018-10-15 2019-03-08 上海兆芯集成电路有限公司 存储器集成电路及其预取地址决定方法
CN110704107A (zh) * 2019-09-30 2020-01-17 上海兆芯集成电路有限公司 预取器、预取器的运作方法及处理器
CN111240743A (zh) * 2020-01-03 2020-06-05 上海兆芯集成电路有限公司 人工智能集成电路

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
吴晓慧等: "微架构瞬态执行攻击与防御方法", 《软件学报》 *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114281720A (zh) * 2021-12-14 2022-04-05 海光信息技术股份有限公司 处理器、用于处理器的地址翻译方法、电子设备
CN114281720B (zh) * 2021-12-14 2022-09-02 海光信息技术股份有限公司 处理器、用于处理器的地址翻译方法、电子设备
CN114358179A (zh) * 2021-12-31 2022-04-15 海光信息技术股份有限公司 处理器的预取训练方法、处理装置、处理器和计算设备
CN114625674A (zh) * 2022-03-24 2022-06-14 广东华芯微特集成电路有限公司 预驱指令架构与预驱指令架构的预取方法
CN114995882A (zh) * 2022-07-19 2022-09-02 沐曦集成电路(上海)有限公司 一种异构结构系统包处理的方法
CN114995882B (zh) * 2022-07-19 2022-11-04 沐曦集成电路(上海)有限公司 一种异构结构系统包处理的方法
CN116055429A (zh) * 2023-01-17 2023-05-02 杭州鸿钧微电子科技有限公司 基于pcie的通信数据处理方法、装置、设备及存储介质

Also Published As

Publication number Publication date
CN112416817B (zh) 2023-02-17

Similar Documents

Publication Publication Date Title
CN112416817B (zh) 预取方法、信息处理装置、设备以及存储介质
CN106537362B (zh) 数据处理装置和在数据处理装置中处理地址转换的方法
KR102448124B1 (ko) 가상 주소들을 사용하여 액세스된 캐시
US8161246B2 (en) Prefetching of next physically sequential cache line after cache line that includes loaded page table entry
US20150121046A1 (en) Ordering and bandwidth improvements for load and store unit and data cache
US10831675B2 (en) Adaptive tablewalk translation storage buffer predictor
US20160140042A1 (en) Instruction cache translation management
US20090106498A1 (en) Coherent dram prefetcher
US11775445B2 (en) Translation support for a virtual cache
KR20210058877A (ko) 외부 메모리 기반 변환 색인 버퍼
CN108874691B (zh) 数据预取方法和内存控制器
CN114238167B (zh) 信息预取方法、处理器、电子设备
CN114925001A (zh) 处理器、页表预取方法、电子设备
KR102482516B1 (ko) 메모리 어드레스 변환
CN112416436B (zh) 信息处理方法、信息处理装置和电子设备
US10929306B2 (en) Arithmetic processor, information processing apparatus, and control method of arithmetic processor
CN112527395B (zh) 数据预取方法和数据处理装置
CN114924797A (zh) 预取指令的方法、信息处理装置、设备及存储介质
CN113760783B (zh) 联合偏移预取方法、装置、计算设备和可读存储介质
CN114218132B (zh) 信息预取方法、处理器、电子设备
CN111198827B (zh) 页表预取方法及装置
CN114281720B (zh) 处理器、用于处理器的地址翻译方法、电子设备
CN114238176B (zh) 处理器、用于处理器的地址翻译方法、电子设备
CN115080464B (zh) 数据处理方法和数据处理装置

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
GR01 Patent grant
GR01 Patent grant