CN114218132B - 信息预取方法、处理器、电子设备 - Google Patents

信息预取方法、处理器、电子设备 Download PDF

Info

Publication number
CN114218132B
CN114218132B CN202111531678.9A CN202111531678A CN114218132B CN 114218132 B CN114218132 B CN 114218132B CN 202111531678 A CN202111531678 A CN 202111531678A CN 114218132 B CN114218132 B CN 114218132B
Authority
CN
China
Prior art keywords
cache space
level
page table
target
preset
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.)
Active
Application number
CN202111531678.9A
Other languages
English (en)
Other versions
CN114218132A (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 CN202111531678.9A priority Critical patent/CN114218132B/zh
Publication of CN114218132A publication Critical patent/CN114218132A/zh
Application granted granted Critical
Publication of CN114218132B publication Critical patent/CN114218132B/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
    • 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/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0646Configuration or reconfiguration
    • 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/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • 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/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]

Abstract

一种信息预取方法、处理器、电子设备。该方法用于处理器。处理器包括第一级缓存空间、页表遍历器和至少一个预设缓存空间。第一级缓存空间和至少一个预设缓存空间依序通信连接以形成通信链路。至少一个预设缓存空间包括目标预设缓存空间,页表遍历器与目标预设缓存空间设置在同一路径等级,页表遍历器与目标预设缓存空间通信连接。该方法包括:响应于页表遍历器进行地址翻译操作得到物理地址,页表遍历器向目标预设缓存空间发送预取请求,预取请求包括物理地址;响应于预取请求,目标预设缓存空间基于物理地址进行信息预取操作。该方法可以在降低地址翻译时延的同时实现数据/指令预取功能,减少数据/指令读写操作的时延,提高系统整体性能。

Description

信息预取方法、处理器、电子设备
技术领域
本公开的实施例涉及一种信息预取方法、处理器、电子设备。
背景技术
在计算机技术领域,计算机操作系统的重要职能之一是内存管理。在多进程操作系统中,每个进程都有自己的虚拟地址空间,可以使用系统规定范围内的任意虚拟地址(Virtual Address)。中央处理器(Central Processing Unit,CPU)执行应用程序时所使用的地址是虚拟地址。操作系统给进程分配内存时,需要把使用到的虚拟地址映射到物理地址(Physical Address),物理地址才是真正的物理内存访问地址。通过这种将地址区分为虚拟地址和物理地址的方式,可以简化程序编译,使编译器基于连续的、充足的虚拟地址空间来编译程序,并且不同进程的虚拟地址被分配到不同的物理地址,使得系统能够同时运行多个进程,从而提高整个计算机系统的运行效率。此外,由于应用程序可以使用但无法更改地址翻译,因此一个进程无法访问到另一个进程的内存内容,从而增加了系统的安全性。
发明内容
本公开至少一个实施例提供一种信息预取方法,用于处理器,其中,所述处理器包括第一级缓存空间、页表遍历器和至少一个预设缓存空间,所述第一级缓存空间和所述至少一个预设缓存空间依序通信连接以形成通信链路,所述至少一个预设缓存空间包括目标预设缓存空间,所述页表遍历器与所述目标预设缓存空间设置在同一路径等级,所述页表遍历器与所述目标预设缓存空间通信连接,所述方法包括:响应于所述页表遍历器进行地址翻译操作得到物理地址,所述页表遍历器向所述目标预设缓存空间发送预取请求,其中,所述预取请求包括所述物理地址;响应于所述预取请求,所述目标预设缓存空间基于所述物理地址进行信息预取操作。
例如,在本公开一实施例提供的方法中,所述处理器还包括处理器核,所述目标预设缓存空间基于所述物理地址进行所述信息预取操作,包括:确定预取缓存空间,其中,所述预取缓存空间是所述第一级缓存空间和所述至少一个预设缓存空间中至少之一;基于所述物理地址,所述目标预设缓存空间获取所述物理地址对应存储的目标信息;所述目标预设缓存空间将所述目标信息发送至所述预取缓存空间。
例如,在本公开一实施例提供的方法中,确定所述预取缓存空间包括:获取预设标识,其中,所述预设标识表示缓存空间的等级信息,所述预设标识存储在指定存储空间或者被携带在所述预取请求中;根据所述预设标识确定所述预取缓存空间。
例如,在本公开一实施例提供的方法中,所述第一级缓存空间包括第一级指令空间和第一级数据空间,所述等级信息指示第一级,根据所述预设标识确定所述预取缓存空间,包括:响应于所述目标信息为指令类型,确定所述预取缓存空间为所述第一级指令空间;响应于所述目标信息为数据类型,确定所述预取缓存空间为所述第一级数据空间。
例如,在本公开一实施例提供的方法中,基于所述物理地址,所述目标预设缓存空间获取所述物理地址对应存储的所述目标信息,包括:基于所述物理地址,从所述目标预设缓存空间至内存的路径中以逐级查询的方式获取所述目标信息。
例如,在本公开一实施例提供的方法中,所述目标预设缓存空间将所述目标信息发送至所述预取缓存空间,包括:从所述目标预设缓存空间至所述预取缓存空间的路径中以逐级传递的方式将所述目标信息发送至所述预取缓存空间。
例如,本公开一实施例提供的方法还包括:所述目标预设缓存空间将所述物理地址发送至所述处理器核。
例如,在本公开一实施例提供的方法中,所述目标预设缓存空间将所述物理地址发送至所述处理器核,包括:所述目标预设缓存空间以逐级传递的方式将所述物理地址发送至所述处理器核。
例如,本公开一实施例提供的方法还包括:响应于地址翻译请求,所述页表遍历器执行所述地址翻译操作。
例如,在本公开一实施例提供的方法中,响应于所述地址翻译请求,所述页表遍历器执行所述地址翻译操作,包括:所述页表遍历器接收所述处理器核生成的所述地址翻译请求,经由所述目标预设缓存空间从内存获取页表项数据,并使用所述页表项数据进行所述地址翻译操作,以获得所述物理地址。
例如,在本公开一实施例提供的方法中,所述地址翻译请求包括翻译信息,所述翻译信息包括:地址翻译请求序列号、需要翻译的虚拟地址值、最高级页表的初始地址。
例如,在本公开一实施例提供的方法中,所述翻译信息还包括请求类型标识,所述请求类型标识指示所述物理地址对应存储的所述目标信息是指令类型或数据类型。
例如,本公开一实施例提供的方法还包括:所述处理器核根据所述第一级缓存空间和所述至少一个预设缓存空间的存储状态确定用于存储所述目标信息的缓存空间,并使所述地址翻译请求以所述预设标识的方式携带用于存储所述目标信息的缓存空间的等级信息;所述页表遍历器解析得到所述预设标识,并使所述预取请求携带所述预设标识。
例如,在本公开一实施例提供的方法中,所述至少一个预设缓存空间包括第二级缓存空间至第N级缓存空间,N是大于2的整数,所述第N级缓存空间距离内存最近且距离所述处理器核最远,所述第二级缓存空间至所述第N级缓存空间中的任一级缓存空间作为所述目标预设缓存空间。
例如,在本公开一实施例提供的方法中,所述第N级缓存空间是共享类型的缓存空间,所述第N级缓存空间作为所述目标预设缓存空间。
例如,在本公开一实施例提供的方法中,所述第二级缓存空间是私有类型或共享类型的缓存空间,所述第二级缓存空间作为所述目标预设缓存空间。
本公开至少一个实施例还提供一种处理器,包括第一级缓存空间、页表遍历器和至少一个预设缓存空间,其中,所述第一级缓存空间和所述至少一个预设缓存空间依序通信连接以形成通信链路,所述至少一个预设缓存空间包括目标预设缓存空间,所述页表遍历器与所述目标预设缓存空间设置在同一路径等级,所述页表遍历器与所述目标预设缓存空间通信连接,所述页表遍历器配置为响应于地址翻译请求执行地址翻译操作以得到物理地址,并且向所述目标预设缓存空间发送预取请求,其中,所述预取请求包括所述物理地址,所述目标预设缓存空间配置为响应于所述预取请求,基于所述物理地址进行信息预取操作。
例如,在本公开一实施例提供的处理器中,所述目标预设缓存空间还配置为确定预取缓存空间,基于所述物理地址获取所述物理地址对应存储的目标信息,并将所述目标信息发送至所述预取缓存空间,所述预取缓存空间是所述第一级缓存空间和所述至少一个预设缓存空间中至少之一。
本公开至少一个实施例还提供一种电子设备,包括本公开任一实施例提供的处理器。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例的附图作简单地介绍,显而易见地,下面描述中的附图仅仅涉及本公开的一些实施例,而非对本公开的限制。
图1为一种地址翻译流程的示意图;
图2为一种多核处理器的架构示意图;
图3为采用图2所示的处理器进行地址翻译的数据流示意图;
图4为采用图2所示的处理器进行地址翻译以及请求数据的过程示意图;
图5为本公开一些实施例提供的一种处理器的架构示意图;
图6为本公开一些实施例提供的一种信息预取方法的流程示意图;
图7为采用本公开实施例提供的处理器进行地址翻译以及请求数据的过程示意图;
图8为图6中步骤S20的示例性流程图;
图9为图8中步骤S21的示例性流程图;
图10为图9中步骤S212的示例性流程图;
图11为本公开一些实施例提供的另一种信息预取方法的流程示意图;
图12为本公开一些实施例提供的另一种信息预取方法的流程示意图;
图13为本公开一些实施例提供的一种电子设备的示意框图;
图14为本公开一些实施例提供的另一种电子设备的示意框图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例的附图,对本公开实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例是本公开的一部分实施例,而不是全部的实施例。基于所描述的本公开的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
除非另外定义,本公开使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本公开中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。同样,“一个”、“一”或者“该”等类似词语也不表示数量限制,而是表示存在至少一个。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
在计算机操作系统处理任务时,需要将应用程序使用的虚拟地址转换为物理地址,从而基于物理地址进行内存访问,以获取数据。将虚拟地址转换为物理地址的过程被称为地址翻译(Address Generation)。
图1为一种地址翻译流程的示意图,示出了四级页表的地址翻译过程。如图1所示,一个虚拟地址被划分为几段,例如分别表示为EXT、OFFSET_lvl4、OFFSET_lvl3、OFFSET_lvl2、OFFSET_lvl1、OFFSET_pg。在该示例中,高位的虚拟地址段EXT没有被使用。虚拟地址段OFFSET_lvl4、OFFSET_lvl3、OFFSET_lvl2、OFFSET_lvl1分别表示四级页表的偏移值,也即是,虚拟地址段OFFSET_lvl4表示第四级页表的偏移值,虚拟地址段OFFSET_lvl3表示第三级页表的偏移值,虚拟地址段OFFSET_lvl2表示第二级页表的偏移值,虚拟地址段OFFSET_lvl1表示第一级页表的偏移值。
最高一级页表(也即第四级页表)的初始地址存放在架构寄存器REG_pt中,其内容由操作系统设定,应用程序无法更改。在第二级页表、第三级页表、第四级页表中,每一级页表的页表项中存放的是下一级页表的起始地址。第一级页表项(Page Table Entry,PTE)存放的是相应内存页的物理地址的高位,它与虚拟地址偏移(OFFSET_pg)合并即可得到该虚拟地址对应的物理地址。由此,通过这种方式逐级获取下一级页表的起始地址,最终可以得到第一级页表项(PTE),从而进一步得到对应的物理地址,实现了从虚拟地址到物理地址的翻译。
需要说明的是,虽然图1示出了4级页表,但是本公开的实施例不限于此,可以采用任意数量的多级页表,例如2级页表、3级页表、5级页表等,还可以采用单级页表,这可以根据实际需求而定,本公开的实施例对此不作限制。例如,一个系统可能支持不同大小的页,每个页的大小由虚拟地址偏移OFFSET_pg的位数来表示。同一个系统中,越大的页所需的地址翻译级数越少。
图2为一种多核处理器的架构示意图。例如,如图2所示,该处理器具有4个处理器核(CPU Core)。同时,该处理器还具有多级缓存,例如第一级缓存(L1 Cache)、第二级缓存(L2 Cache)和最后一级缓存(Last Level Cache,LLC)。在该示例中,最后一级缓存实际上是第三级缓存(L3 Cache)。当然,本公开的实施例不限于此,处理器可以具有任意数量的多级缓存,因此最后一级缓存也可以为任意等级的缓存,这可以根据实际需求而定。
例如,在该示例中,最后一级缓存是多个处理器核共享的,第二级缓存是各个处理器核私有的。也即是,多个处理器核共用一个最后一级缓存,而每个处理器核被单独提供一个专用的第二级缓存。最后一级缓存和第二级缓存用于存储指令与数据,最后一级缓存与内存连接。需要说明的是,在另一些示例中,第二级缓存也可以是共享类型的缓存,本公开的实施例对此不作限制。
例如,为每个处理器核单独设置一个专用的第一级缓存,第一级缓存设置在处理器核内部。例如,第一级缓存可以包括第一级指令缓存(L1I缓存)和第一级数据缓存(L1D缓存),分别用于缓存指令和数据。该处理器还包括内存,处理器核通过多级缓存与内存的数据缓存机制实现指令传递和数据读取。
例如,为每个处理器核单独设置有翻译后备缓冲器(Translation LookasideBuffer,TLB),翻译后备缓冲器可以包括针对指令的翻译后备缓冲器(ITLB)和针对数据的翻译后备缓冲器(DTLB)。ITLB和DTLB都设置在处理器核内。
地址翻译是一个非常耗时的过程,对于多级页表,通常需要多次访问内存才能获得相应的物理地址。以图1所示的4级页表为例,需要访问内存4次才能获得相应的物理地址。因此,为了节省地址翻译时间,提升计算机系统性能,可以在处理器核中设置TLB(例如包括ITLB和DTLB)来存放之前使用过的第一级页表项(PTE)。当需要进行地址翻译时,首先到TLB中查询是否有需要的PTE,如果命中,则可以立即获得相应的物理地址。与CPU缓存架构类似,TLB也可以有多种架构,比如全相联(Fully Associative)、组相联(SetAssociative)、直接索引(Directly Indexed)等。TLB架构也可以是多级结构,最低一级TLB的尺寸最小且速度最快,当最低一级TLB没有命中时,再搜索下一级TLB。
尽管TLB能够减少很多地址翻译的时延,但是,在执行程序的过程中,还是避免不了访问页表来进行地址翻译。为了减少翻译操作所需时间,通常为处理器核单独设置一个硬件页表遍历器(Hardware Page Table Walker,PTW),该硬件页表遍历器设置在处理器核内部。通过使用硬件页表遍历器,可以遍历多级页表以获得最终的内存页物理地址。
L1I缓存和L1D缓存使用物理地址(physically indexed,virtually tagged方式)来访问,第二级缓存、最后一级缓存、内存也使用物理地址进行访问。因此,在访问数据之前,需要先通过ITLB或DTLB进行地址翻译。与正常数据读取请求一致,硬件页表遍历器的读取请求最远可以经过第一级缓存、第二级缓存、最后一级缓存到达内存。如果硬件页表遍历器请求的数据在某一级缓存中存在,则该缓存返回该数据,且不再向下级缓存/内存传递该硬件页表遍历器的请求。
图3为采用图2所示的处理器进行地址翻译的数据流示意图。如图3所示,在一种可能的情况下,TLB没有命中因而需要访问内存进行地址翻译,此时,需要访问内存4次来获得最终内存页的物理地址。在大数据、云计算、人工智能(AI)等新型应用场景下,往往同时使用很大的指令与数据空间,且热点指令段与数据段的数量多且彼此分散。因此,这些新型应用程序往往存在较多的缓存未命中(Cache Miss)和TLB未命中(TLB Miss)。这使得硬件页表遍历器的数据请求往往不在某一级缓存中,而只能通过多次内存访问进行地址翻译。
在通常的CPU架构中,程序的指令与数据都保存在内存中,而处理器核运行频率远远高于内存运行频率,因此,从内存获取数据或者指令需要上百个时钟,这往往会造成处理器核由于无法继续运行相关指令而空转,造成性能损失。因此,现代高性能处理器都包含多级缓存架构来保存最近被访问的数据,同时提前预取即将被访问的数据、指令到缓存中。通过提前预取数据、指令到缓存,使得相应读写操作能命中缓存,从而可以减少时延。
当采用图2所示的处理器时,地址翻译以及请求数据的过程如图4所示。例如,当数据读取请求发生TLB未命中(TLB Miss)时,需要先进行页表遍历获得物理地址,也即,从内存中读取四级页表项以进行地址翻译,然后根据翻译得到的物理地址从缓存/内存获得相应数据。图4中两个五角星图形之间的时间是该操作的所有时延,包括地址翻译时延(实线间最长距离)及数据读取时延(虚线间距离)。
在图4所示的示例中,一个需要通过页表遍历进行地址翻译的数据读写操作(该操作可能本身就是一个数据预取请求)已经没有机会进行数据预取,只能在获得物理地址之后,通过多级缓存从内存中获得数据。这使得数据预取无法发挥作用,不能减少时延,对系统整体性能带来消极影响。
本公开至少一个实施例提供一种信息预取方法、处理器、电子设备。该信息预取方法可以在降低地址翻译时延的同时实现数据/指令预取功能,有效减少数据/指令读写操作的时延,提高系统整体性能。
下面,将参考附图详细地说明本公开的实施例。应当注意的是,不同的附图中相同的附图标记将用于指代已描述的相同的元件。
本公开至少一个实施例提供一种信息预取方法,用于处理器。该处理器包括第一级缓存空间、页表遍历器和至少一个预设缓存空间。第一级缓存空间和至少一个预设缓存空间依序通信连接以形成通信链路。至少一个预设缓存空间包括目标预设缓存空间,页表遍历器与目标预设缓存空间设置在同一路径等级,页表遍历器与目标预设缓存空间通信连接。该信息预取方法包括:响应于页表遍历器进行地址翻译操作得到物理地址,页表遍历器向目标预设缓存空间发送预取请求,预取请求包括物理地址;响应于预取请求,目标预设缓存空间基于物理地址进行信息预取操作。
本公开至少一个实施例提供一种处理器。该处理器包括第一级缓存空间、页表遍历器和至少一个预设缓存空间。第一级缓存空间和至少一个预设缓存空间依序通信连接以形成通信链路。至少一个预设缓存空间包括目标预设缓存空间,页表遍历器与目标预设缓存空间设置在同一路径等级,页表遍历器与目标预设缓存空间通信连接。页表遍历器配置为响应于地址翻译请求执行地址翻译操作以得到物理地址,并且向目标预设缓存空间发送预取请求。预取请求包括物理地址。目标预设缓存空间配置为响应于预取请求,基于物理地址进行信息预取操作。
图5为本公开一些实施例提供的一种处理器的架构示意图。下面先结合图5对本公开实施例提供的处理器进行说明,然后再对本公开实施例提供的信息预取方法进行说明。
如图5所示,在本公开的一些实施例中,该处理器包括处理器核、第一级缓存空间、页表遍历器和至少一个预设缓存空间。
例如,第一级缓存空间为L1缓存,可以设置在处理器核内部。例如,第一级缓存空间与处理器核设置在同一路径等级,第一级缓存空间与处理器核通信连接,处理器核可以直接从第一级缓存空间获取数据或指令。这里,“设置在同一路径等级”是指在芯片中的物理位置相邻或相近,且可以直接进行数据交互和传递。因此,第一级缓存空间与处理器核设置在同一路径等级可以指第一缓存空间设置在处理器核旁边,距处理器核的距离较近,且处理器核可以与第一缓存空间直接进行数据交互和传输。例如,“通信连接”是指可以直接传输数据/指令。
在一些示例中,第一级缓存空间包括L1I缓存和L1D缓存,L1I缓存用于存储指令,L1D缓存用于存储数据。当然,本公开的实施例不限于此,在其他示例中,也可以不区分L1I缓存和L1D缓存,而仅设置一个L1缓存,既用于存储数据又用于存储指令。
例如,在一些示例中,至少一个预设缓存空间包括第二级缓存空间至第N级缓存空间,N是大于2的整数。第N级缓存空间距离内存最近且距离处理器核最远。例如,在图5所示的示例中,至少一个预设缓存空间可以包括第二级缓存空间(L2缓存)和最后一级缓存空间(LLC),也即是,此时N=3。当然,本公开的实施例不限于此,N可以为任意的大于2的整数,例如为4、5、6等,相应地,该处理器为4级缓存架构、5级缓存架构、6级缓存架构等。例如,在另一些示例中,至少一个预设缓存空间包括一个缓存空间,也即仅包括第二级缓存空间,此时,该处理器为2级缓存架构。需要说明的是,在本公开实施例提供的处理器中,除了第一级缓存空间以外,其他级别的缓存可以统称为预设缓存空间。
例如,第一级缓存空间、至少一个预设缓存空间依序通信连接以形成通信链路,由此可以实现逐级向下的数据获取。例如,处理器核需要获取数据时,可以首先到第一级缓存空间查询,如果没有命中,则继续到第二级缓存空间查询,如果仍然没有命中,则到最后一级缓存空间查询。如果最后一级缓存空间还是未命中,则到内存中获取数据。
例如,至少一个预设缓存空间包括目标预设缓存空间,该目标预设缓存空间可以是多个预设缓存空间中的任意一个。例如,可以将第二级缓存空间至第N级缓存空间中的任一级缓存空间作为目标预设缓存空间。页表遍历器与目标预设缓存空间设置在同一路径等级,页表遍历器与目标预设缓存空间通信连接。
例如,在图5的示例中,最后一级缓存空间作为目标预设缓存空间,页表遍历器与最后一级缓存空间设置在同一路径等级,页表遍历器与最后一级缓存空间通信连接。这里,“设置在同一路径等级”是指在芯片中的物理位置相邻或相近,且可以直接进行数据交互和传递。因此,页表遍历器与最后一级缓存空间设置在同一路径等级可以指页表遍历器设置在最后一级缓存空间旁边,距最后一级缓存空间的距离较近,且最后一级缓存空间可以与页表遍历器直接进行数据交互和传输。
例如,在一些示例中,第N级缓存空间是共享类型的缓存空间,第N级缓存空间作为目标预设缓存空间,该示例为图5所示的情形。例如,在另一些示例中,第二级缓存空间是私有类型或共享类型的缓存空间,第二级缓存空间作为目标预设缓存空间。也即是,在一些处理器架构中,第二级缓存空间是针对每个处理器核单独提供的,属于私有类型,而在另一些处理器架构中,第二级缓存空间是多个处理器核共享的,属于共享类型。无论第二级缓存空间是私有类型还是共享类型,都可以将第二级缓存空间作为目标预设缓存空间。
需要说明的是,虽然图5示出了将最后一级缓存空间作为目标预设缓存空间并且将页表遍历器设置在最后一级缓存空间的旁边,但这并不构成对本公开实施例的限制。在其他示例中,在将第二级缓存空间作为目标预设缓存空间的情形中,页表遍历器设置在第二级缓存空间旁边,且与第二级缓存空间通信连接。在再一些示例中,当处理器包括更多级别的缓存时,可以将除了第一级缓存空间之外的其他任意一级缓存空间作为目标预设缓存空间,由此相应调整页表遍历器的设置位置。需要注意的是,页表遍历器没有设置在处理器核内,或者,页表遍历器没有设置在第一级缓存空间的旁边。
例如,页表遍历器配置为响应于地址翻译请求执行地址翻译操作以得到物理地址,并且向目标预设缓存空间发送预取请求。例如,预取请求包括物理地址,也即,预取请求携带有页表遍历器翻译得到的物理地址。例如,在一些示例中,页表遍历器可以为前述的硬件页表遍历器(PTW)。这里,页表遍历器可以为前述的PTW,是指其实现的地址翻译功能类似,所采用的地址翻译原理相似,而两者的硬件结构、设置位置等可以不同,本公开的实施例对此不作限制。当需要将虚拟地址翻译为物理地址时,如果在ITLB或DTLB中未命中,则处理器核会向页表遍历器发送地址翻译请求。TLB的架构不限于ITLB和DTLB的方式,可以采用任意适用的架构,本公开的实施例对此不作限制。
例如,地址翻译请求可以触发页表遍历器执行地址翻译操作。地址翻译请求可以通过多级缓存架构传递至页表遍历器,也可以通过处理器内部的流水线传递至页表遍历器,本公开的实施例对地址翻译请求的传递方式不作限制。在地址翻译请求通过多级缓存架构传递至页表遍历器的情形中,地址翻译请求采用多级缓存架构可识别的数据读取请求类型。
例如,地址翻译操作可以是多级页表的地址翻译过程,可以参见关于图1的说明,此处不再赘述。需要注意的是,进行地址翻译的页表不限于4级,可以采用任意数量的多级页表,例如2级页表、3级页表、5级页表等,还可以采用单级页表,这可以根据实际需求而定,本公开的实施例对此不作限制。例如,页表级数越多,每次地址翻译访问内存的次数就越多,因此本公开实施例提供的处理器能够提供的性能提升空间也就越大。例如,页表的物理页面大小不受限制,可以根据实际需求而定。
地址翻译请求可以包括翻译信息。翻译信息可以包括:地址翻译请求序列号、需要翻译的虚拟地址值、最高级页表的初始地址。页表遍历器接收到地址翻译请求后,会被触发执行地址翻译操作,并且基于翻译信息可以获取执行地址翻译操作所需要的内容,例如虚拟地址值、最高级页表的初始地址等。在一些示例中,可以用Addr_Trans_Req表示该请求为地址翻译请求,用Addr_Trans_SN表示地址翻译请求序列号,用REG_pt表示最高级页表的初始地址(也即该进程的REG_pt值),用VA表示需要翻译的虚拟地址值。
例如,翻译信息还可以包括请求类型标识。请求类型标识指示物理地址对应存储的目标信息是指令类型或数据类型。在一些示例中,可以用I/D表示该请求对应的是指令还是数据,例如用I表示指令,用D表示数据。
由于页表遍历器设置在目标预设缓存空间(该示例中为最后一级缓存空间)旁边,页表遍历器距离内存较近,因此,页表遍历器每次从内存获取页表项的时间较短,这显著提高了地址翻译的效率,大大缩短了地址翻译所花费的时间。页表遍历器没有设置在第一级缓存空间(L1缓存)的旁边,摆脱了通常将页表遍历器设置在处理器核内的束缚,并且由于页表遍历器可以更靠近内存,因而可以降低页表遍历器访问内存及地址翻译的时延,提高处理器的系统性能。这种页表遍历器的设置方式适用于多种新型应用场景(例如大数据、云计算、AI等)及多种CPU架构,可以进一步提高这些新型应用场景的性能。
需要说明的是,本公开的实施例中,可以将页表遍历器设置在除了第一级缓存空间以外的任意一级缓存空间的旁边,也可以将页表遍历器直接设置在内存旁边,这可以根据实际需求而定,例如根据处理器架构、工艺、缓存大小与延迟、内存延迟、是否支持缓存一致性、常用应用程序特性等多种因素而定,本公开的实施例对此不作限制。
例如,目标预设缓存空间配置为响应于预取请求,基于物理地址进行信息预取操作。例如,目标预设缓存空间进一步配置为:确定预取缓存空间,基于物理地址获取物理地址对应存储的目标信息,并将目标信息发送至预取缓存空间。例如,预取缓存空间是第一级缓存空间和至少一个预设缓存空间中至少之一,也即是,可以是第一级缓存空间和预设缓存空间中的任意一个或多个缓存空间。例如,在一些示例中,预取缓存空间是第一级缓存空间和至少一个预设缓存空间所形成的通信链路中相比于目标预设缓存空间更靠近处理器核的缓存空间,由此可以提高预取效率。
也即是,在处理器核接收到物理地址并请求信息(例如数据或指令)之前,目标预设缓存空间根据物理地址进行信息预取操作,将该物理地址对应存储的目标信息存入预取缓存空间。由此,当处理器核基于物理地址请求信息时,可以在预取缓存空间中命中,从而可以有效减少时延,实现数据/指令的预取。
例如,在一些示例中,页表遍历器还配置为接收处理器核生成的地址翻译请求,经由目标预设缓存空间从内存获取页表项数据,并使用页表项数据进行地址翻译操作,以获得物理地址。
例如,在该示例中,页表遍历器并不与内存直接通信连接,不会直接访问内存,而是通过目标预设缓存空间间接访问内存,以获得页表项数据。例如,页表遍历器还配置为根据地址翻译请求从目标预设缓存空间至内存的路径中以逐级查询的方式获取页表项数据。该逐级查询的方式与通过多级缓存逐级获取数据的方式类似。例如,当目标预设缓存空间为最后一级缓存空间时,页表遍历器通过最后一级缓存空间访问内存;当目标预设缓存空间是第二级缓存空间或其他级缓存空间时,页表遍历器通过目标预设缓存空间逐级向下查询访问内存。例如,第一级缓存空间至第N级缓存空间存储有第一级页表的页表项数据至第M级页表的页表项数据中的至少部分页表项数据,M是大于1的整数。
由此,页表遍历器读取的页表项数据可以被保存在目标预设缓存空间以及目标预设缓存空间与内存之间的缓存空间中,可以便于在下一次地址翻译过程中查询缓存空间中可能存在的页表项,如果命中,则无需再访问内存,以进一步提高地址翻译的效率,获得比内存访问更少的时延。并且,在本公开的实施例中,在多核架构下,由于页表遍历器读取的页表项数据被保存在目标预设缓存空间中,因此缓存一致性机制可以保证页表遍历器获得正确的页表项内容。
例如,在一些示例中,页表遍历器可以包括多级页表缓存区(Page Walk Cache,PWT)。多级页表缓存区配置为缓存第一级页表的页表项数据至第M级页表的页表项数据中的至少部分页表项数据,M是大于1的整数。例如,多级页表缓存区是页表遍历器内部的一个缓存,用于保存最近使用过的第一级页表、第二级页表项、第三级页表项、第四级页表项等任意页表项。如果一个地址翻译在多级页表缓存区中找到相应的页表项,则可以跳过更高级的页表访问,从而减少内存访问次数及地址翻译时延。需要说明的是,多级页表缓存区是针对页表遍历器的微架构优化,也可以省略,这可以根据实际需求而定,本公开的实施例对此不作限制。
例如,在一些示例中,页表遍历器还配置为发送数据返回指令至处理器核。当页表遍历器执行完地址翻译操作后,可以得到相应的物理地址,因此页表遍历器将数据返回指令发送至处理器核,从而将物理地址传递给处理器核。数据返回指令可以通过多级缓存架构传递至处理器核,也可以通过处理器内部的流水线传递至处理器核,本公开实施例对数据返回指令的传递方式不作限制。在数据返回指令通过多级缓存架构传递至处理器核的情形中,数据返回指令采用多级缓存架构可识别的请求响应类型。
例如,数据返回指令包括地址翻译请求序列号、内存页的物理地址及属性等。例如,在一些示例中,可以用Addr_Trans_Resp表示该信息是对地址翻译请求Addr_Trans_SN的回复(也即表示该信息是数据返回指令),用Addr_Trans_SN表示地址翻译请求序列号,用PTE表示相应的第一级页表项内容,例如包含内存页的物理地址及属性。
例如,如图5所示,该处理器还可以包括页表项缓存空间,页表项缓存空间可以为前述的翻译后备缓冲器(TLB),例如TLB可以进一步包括ITLB和DTLB。例如,处理器核与页表项缓存空间设置在同一路径等级,处理器核与页表项缓存空间通信连接。这里,“设置在同一路径等级”是指在芯片中的物理位置相邻或相近,且可以直接进行数据交互和传递。因此,处理器核与页表项缓存空间设置在同一路径等级可以指页表项缓存空间设置在处理器核旁边,距处理器核的距离较近,且处理器核可以与页表项缓存空间直接进行数据交互和传输。例如,“通信连接”是指可以直接传输数据/指令。
例如,处理器核配置为响应于页表项缓存空间中不存在地址翻译所需的页表项数据,生成地址翻译请求。也即是,当需要进行地址翻译时,处理器核在页表项缓存空间中查询所需要的页表项数据,当页表项缓存空间未命中(页表项缓存空间中不存在所需的页表项数据)时,处理器核会生成地址翻译请求。例如,在生成地址翻译请求之后,处理器核配置为向页表遍历器发送地址翻译请求,以使页表遍历器执行地址翻译操作。例如,当页表项缓存空间命中时,则可以从页表项缓存空间直接获取页表项数据,从而无需使用页表遍历器进行地址翻译,因此也就无需生成地址翻译请求。
例如,页表项缓存空间储存有第一级页表的页表项数据至第M级页表的页表项数据中的至少部分页表项数据,M是大于1的整数。也即是,页表项缓存空间可以存储最近使用过的任意的页表项数据,例如PTE等。
例如,如图5所示,该处理器还可以包括请求缓存区。请求缓存区也可以称为页申请缓存(Page Request Buffer,PRB),请求缓存区与页表遍历器设置在同一路径等级。请求缓存区与页表遍历器通信连接,并且与目标预设缓存空间通信连接,请求缓存区例如设置在页表遍历器与目标预设缓存空间之间。这里,“设置在同一路径等级”是指在芯片中的物理位置相邻或相近,且可以直接进行数据交互和传递。因此,请求缓存区与页表遍历器设置在同一路径等级可以指请求缓存区设置在页表遍历器旁边,距页表遍历器的距离较近,且页表遍历器可以与请求缓存区直接进行数据交互和传输。同时,请求缓存区还可以与目标预设缓存空间直接进行数据交互和传输。
请求缓存区配置为存储处理器核发送的待处理的地址翻译请求队列。当本公开实施例提供的处理器包括多个处理器核时,页表遍历器无法处理多个处理器核同时发送的地址翻译请求,因此可以采用请求缓存区来存储待处理的地址翻译请求队列。页表遍历器可以从请求缓存区依序获取地址翻译请求并执行相应的地址翻译操作。
需要说明的是,本公开的实施例中,处理器可以为单核架构,也可以为多核架构,本公开的实施例对此不作限制。缓存的数量以及设置方式也不受限制,这可以根据实际需求而定。处理器不限于图5所示出的结构,可以包括更多或更少的组成部分,各个组成部分之间的连接方式不受限制。
图6为本公开一些实施例提供的一种信息预取方法的流程示意图。该信息预取方法可以用于图5所示的处理器。在一些实施例中,如图6所示,该信息预取方法包括如下操作。
步骤S10:响应于页表遍历器进行地址翻译操作得到物理地址,页表遍历器向目标预设缓存空间发送预取请求,其中,预取请求包括物理地址;
步骤S20:响应于预取请求,目标预设缓存空间基于物理地址进行信息预取操作。
例如,在步骤S10中,当页表遍历器进行地址翻译操作得到物理地址后,页表遍历器向目标预设缓存空间发送预取请求。例如,预取请求包括物理地址,也即,预取请求中携带有物理地址,由此可以使目标预设缓存空间获得物理地址。
例如,在步骤S20中,目标预设缓存空间接收到预取请求后,会根据预取请求中携带的物理地址进行信息预取操作。例如,预取请求是用于触发目标预设缓存空间进行信息预取操作的请求,可以采用任意适用的请求类型,本公开的实施例对此不作限制。例如,信息预取操作用于实现信息预取,所预取的目标信息可以为数据也可以为指令,该目标信息存储在物理地址所指示的存储空间中。
图7为采用本公开实施例提供的处理器进行地址翻译以及请求数据的过程示意图。如图7所示,当某一数据读取请求发生TLB未命中(TLB Miss)时,需要先进行页表遍历获得物理地址。例如,页表遍历器从内存中读取四级页表项以进行地址翻译,从而得到物理地址。该物理地址被发送至处理器核,然后处理器核根据物理地址从缓存/内存获得相应数据。
由于页表遍历器设置在目标预设缓存空间(例如LLC)旁边,因此页表遍历器以页表遍历的方式进行地址翻译时,页表遍历器与目标预设缓存空间比处理器核更早获得该请求的物理地址。此时,在处理器核基于物理地址请求数据之前,目标预设缓存空间可以提前根据物理地址从内存中获得相应数据,并发送到处理器核中(或者也可以发送到指定的缓存中,例如L1缓存或L2缓存等),从而实现数据预取。图7中两个五角星图形之间的时间是该操作的所有时延,包括地址翻译时延(实线间最长距离)及数据预取时延(虚线间距离)。
在该示例中,数据预取的时间如图7中虚线所示。与图4中请求数据的时间(图4中虚线所示的时间)相比,数据预取节省的时间大致等于从处理器核到目标预设缓存空间(例如LLC)的时延。因此,在页表遍历器靠近内存从而节省地址翻译时延的基础上,该数据预取方法可以进一步节省获取数据的时延。
通过上述方式,该信息预取方法可以在降低地址翻译时延的同时实现数据/指令预取功能,有效减少数据/指令读写操作的时延,提高系统整体性能。
图8为图6中步骤S20的示例性流程图。在一些示例中,上述步骤S20可以进一步包括如下操作。
步骤S21:确定预取缓存空间;
步骤S22:基于物理地址,目标预设缓存空间获取物理地址对应存储的目标信息;
步骤S23:目标预设缓存空间将目标信息发送至预取缓存空间。
例如,在步骤S21中,首先需要确定预取缓存空间,预取缓存空间用于缓存物理地址对应存储的目标信息。例如,预取缓存空间是第一级缓存空间和至少一个预设缓存空间中至少之一,也即是,可以是第一级缓存空间和预设缓存空间中的任意一个或多个缓存空间。例如,在一些示例中,预取缓存空间是第一级缓存空间和至少一个预设缓存空间所形成的通信链路中相比于目标预设缓存空间更靠近处理器核的缓存空间,由此可以提高预取效率。在图5所示的处理器架构中,预取缓存空间可以是L2缓存,也可以是L1缓存(L1I缓存或L1D缓存)。
图9为图8中步骤S21的示例性流程图。在一些示例中,如图9所示,上述步骤S21可以进一步包括如下操作。
步骤S211:获取预设标识;
步骤S212:根据预设标识确定预取缓存空间。
例如,在步骤S211中,预设标识表示缓存空间的等级信息,也即,指示预取缓存空间是哪一级缓存空间。例如,预设标识为1时,表示预取缓存空间为L1缓存;预设标识为2时,表示预取缓存空间为L2缓存,此次类推。需要说明的是,本公开实施例对预设标识的具体数据格式和表示方式不作限制,只要能根据预设标识确定出预取缓存空间是哪一级缓存空间即可。
例如,预设标识存储在指定存储空间或者被携带在预取请求中。
例如,在一些示例中,预设标识存储在指定存储空间中,也即,预设标识可以是提前设定好的并且是固定不变的。在需要获取预设标识时,只需到指定存储空间读取即可。这种方式可以简化预设标识的获取方式。
例如,在另一些示例中,预设标识被携带在预取请求中。当页表遍历器向目标预设缓存空间发送预取请求时,使预取请求携带预设标识,从而使目标预设缓存空间可以获得预设标识,以确定预取缓存空间是哪一级缓存空间。页表遍历器确定预设标识的方式将在后文说明,此处不再赘述。通过这种方式,可以动态选择预取缓存空间,使预取缓存空间不固定为某一级缓存空间,可以在每次预取时灵活设定,从而提高整体的处理效率。
需要说明的是,本公开的实施例中,获取预设标识的方式不限于上文描述的方式,还可以为其他任意适用的方式,这可以根据实际需求而定,本公开的实施例对此不作限制。
例如,在步骤S212中,在获取到预设标识之后,可以根据预设标识确定预取缓存空间。例如,预设标识为1时,则确定预取缓存空间为L1缓存;预设标识为2时,则确定预取缓存空间为L2缓存,此次类推。在图5所示的处理器架构中,目标预设缓存空间为LLC,因此所确定的预取缓存空间L1缓存或L2缓存相比于LLC更靠近处理器核,由此可以提高预取效率。
例如,在一些示例中,第一级缓存空间包括第一级指令空间(例如L1I缓存)和第一级数据空间(例如L1D缓存)。在一种可能的情形中,预设标识所表示的等级信息指示第一级,也即,预设标识为1,则上述步骤S212可以进一步包括如下操作,如图10所示。
步骤S212a:响应于目标信息为指令类型,确定预取缓存空间为第一级指令空间;
步骤S212b:响应于目标信息为数据类型,确定预取缓存空间为第一级数据空间。
例如,在步骤S212a和步骤S212b中,由于第一级缓存空间包括L1I缓存和L1D缓存,两者分别缓存不同类型的信息,因此需要进一步确定预取缓存空间为L1I缓存和L1D缓存中的哪一个。若物理地址对应存储的目标信息是指令类型,则确定预取缓存空间为L1I缓存;若物理地址对应存储的目标信息是数据类型,则确定预取缓存空间为L1D缓存。由此可以将目标信息预取到正确的缓存中。
返回至图8,在步骤S22中,基于物理地址,目标预设缓存空间获取物理地址对应存储的目标信息。例如,在一些示例中,步骤S22可以包括:基于该物理地址,从目标预设缓存空间至内存的路径中以逐级查询的方式获取目标信息。如果目标信息在某一级缓存中命中,则可以直接获取。如果目标信息在缓存中未命中,则需要到内存中获取。逐级查询的方式与通过多级缓存逐级获取数据的方式类似。
例如,在一些示例中,物理地址PA可以表示为:PA=(第一级PTE值)<<X|OFFSET_pg。这里,OFFSET_pg表示虚拟地址偏移,X表示内存页大小的log值。例如,对于4KB页面,其X值为12。需要说明的是,这仅是物理地址计算方式的一个示例,不构成对本公开实施例的限制。
例如,在步骤S23中,在获取到目标信息之后,目标预设缓存空间将目标信息发送至预取缓存空间,从而将目标信息缓存在预取缓存空间中。例如,在一些示例中,步骤S23可以包括:从目标预设缓存空间至预取缓存空间的路径中以逐级传递的方式将目标信息发送至预取缓存空间。逐级传递的方式与通过多级缓存逐级传递数据的方式类似。
通过上述方式,目标信息被缓存在预取缓存空间中,当处理器核根据物理地址请求该目标信息时,可以在预取缓存空间中命中,从而有效减少数据/指令读写操作的时延,提高系统整体性能。这种预取方式只需很少的硬件改动,并且只需增加较少的硬件资源,易于实现。
图11为本公开一些实施例提供的另一种信息预取方法的流程示意图。在一些实施例中,除了包括步骤S10-S20,该信息预取方法还可以进一步包括步骤S30-S40。该实施例中的步骤S10-S20与图6中所示的步骤S10-S20基本相同,此处不再赘述。
步骤S30:响应于地址翻译请求,页表遍历器执行地址翻译操作;
步骤S40:目标预设缓存空间将物理地址发送至处理器核。
例如,在步骤S30中,当需要将虚拟地址翻译为物理地址时,如果在ITLB或DTLB中未命中,则处理器核会向页表遍历器发送地址翻译请求。TLB的架构不限于ITLB和DTLB的方式,可以采用任意适用的架构,本公开的实施例对此不作限制。例如,地址翻译请求可以触发页表遍历器执行地址翻译操作。例如,地址翻译操作可以是多级页表的地址翻译过程,可以参见关于图1的说明,此处不再赘述。需要注意的是,进行地址翻译的页表不限于4级,可以采用任意数量的多级页表,例如2级页表、3级页表、5级页表等,还可以采用单级页表,这可以根据实际需求而定,本公开的实施例对此不作限制。例如,页表级数越多,每次地址翻译访问内存的次数就越多,因此本公开实施例提供的处理器能够提供的性能提升空间也就越大。例如,页表的物理页面大小不受限制,可以根据实际需求而定。
例如,在一些示例中,步骤S30可以包括:页表遍历器接收处理器核生成的地址翻译请求,经由目标预设缓存空间从内存获取页表项数据,并使用页表项数据进行地址翻译操作,以获得物理地址。例如,页表遍历器根据地址翻译请求从目标预设缓存空间至内存的路径中以逐级查询的方式获取页表项数据,并使用页表项数据进行翻译以获得物理地址。
例如,地址翻译请求包括翻译信息,该翻译信息包括:地址翻译请求序列号、需要翻译的虚拟地址值、最高级页表的初始地址。在一些示例中,可以用Addr_Trans_Req表示该请求为地址翻译请求,用Addr_Trans_SN表示地址翻译请求序列号,用REG_pt表示最高级页表的初始地址(也即该进程的REG_pt值),用VA表示需要翻译的虚拟地址值。
例如,翻译信息还可以包括请求类型标识,该请求类型标识指示物理地址对应存储的目标信息是指令类型或数据类型。在一些示例中,可以用I/D表示该请求对应的是指令还是数据,例如用I表示指令,用D表示数据。由此,在预设缓存空间为第一级缓存空间的情形中,可以根据目标信息的类型确定预设缓存空间为L1I缓存或L1D缓存。
例如,在步骤S40中,在页表遍历器进行地址翻译操作得到物理地址并且向目标预设缓存空间发送预取请求之后,目标预设缓存空间将物理地址发送至处理器核。由于预取请求携带有物理地址,因此目标预设缓存空间可以获得物理地址。当然,本公开的实施例不限于此,也可以由页表遍历器单独发送物理地址至目标预设缓存空间,这可以根据实际需求而定。
例如,在一些示例中,步骤S40可以包括:目标预设缓存空间以逐级传递的方式将物理地址发送至处理器核,也即,通过多级缓存架构传递至处理器核。当然,本公开的实施例不限于此,也可以通过处理器内部的流水线将物理地址传递至处理器核,本公开实施例对此不作限制。例如,可以采用数据返回指令实现物理地址的传输。例如,数据返回指令包括地址翻译请求序列号、内存页的物理地址及属性等。例如,在一些示例中,可以用Addr_Trans_Resp表示该信息是对地址翻译请求Addr_Trans_SN的回复(也即表示该信息是数据返回指令),用Addr_Trans_SN表示地址翻译请求序列号,用PTE表示相应的第一级页表项内容,例如包含内存页的物理地址及属性。
需要说明的是,当目标预设缓存空间接收到预取请求之后,可以并行执行步骤S20和S40,也即是,在将物理地址发送至处理器核的同时进行信息预取操作。这里,“同时”可以指在同一时刻开始执行,也可以指两个操作之间具有较小的时间差,本公开的实施例对此不作限制。当然,本公开的实施例不限于此,也可以按照一定顺序执行步骤S20和S40,例如先执行步骤S20再执行步骤S40,或者先执行步骤S40再执行步骤S20,这可以根据实际需求而定。
图12为本公开一些实施例提供的另一种信息预取方法的流程示意图。如图12所示,在一些示例中,该信息预取方法还可以进一步包括步骤S50和步骤S60。
步骤S50:处理器核根据第一级缓存空间和至少一个预设缓存空间的存储状态确定用于存储目标信息的缓存空间,并使地址翻译请求以预设标识的方式携带用于存储目标信息的缓存空间的等级信息;
步骤S60:页表遍历器解析得到预设标识,并使预取请求携带预设标识。
例如,在步骤S50中,当需要将虚拟地址翻译为物理地址时,处理器核会生成地址翻译请求并发送至页表遍历器。此时,处理器核根据第一级缓存空间和预设缓存空间的存储状态确定用于存储目标信息的缓存空间,并使地址翻译请求携带预设标识,该预设标识指示用于存储目标信息的缓存空间的等级信息。例如,可以在地址翻译请求中增加相应域来表示预设标识,以用于指定预取缓存空间。由此,可以将预设标识传递至页表遍历器。需要说明的是,可以根据每1000条指令的缓存未命中数(Misses Per ThousandInstructions,MPKI)来确定用于存储目标信息的缓存空间,当然,还可以根据各个缓存空间的空闲程度、所缓存的数据的有效性和命中率等因素来确定用于存储目标信息的缓存空间,本公开的实施例对此不作限制。
例如,在一些示例中,若第一级缓存空间的MPKI数值较大,则确定采用第一级缓存空间作为预取缓存空间,也即,将物理地址对应存储的目标信息预取并缓存至第一级缓存空间。此时处理器核将预设标识设置为1并且随同地址翻译请求发送至页表遍历器。例如,在该情形中,结合图10所示的确定L1I缓存和L1D缓存的方法,可以进一步具体确定出预取缓存空间。
例如,在另一些示例中,若第二级缓存空间的MPKI数值较大,则确定采用第二级缓存空间作为预取缓存空间,也即,将物理地址对应存储的目标信息预取并缓存至第二级缓存空间。此时处理器核将预设标识设置为2并且随同地址翻译请求发送至页表遍历器。
例如,在步骤S60中,当页表遍历器需要向目标预设缓存空间发送预取请求时,页表遍历器会将根据解析地址翻译请求所得到的预设标识随同预取请求发送至目标预设缓存空间,由此可以使目标预设缓存空间根据预设标识确定出预取缓存空间。例如,可以在预取请求中增加相应域来表示预设标识,以用于指定预取缓存空间。
通过上述方式,可以由处理器核确定本次预取所采用的缓存空间并将预设标识通过页表遍历器传递至目标预设缓存空间,从而使目标预设缓存空间获知本次预取所采用的缓存空间。由此,可以动态选择预取缓存空间,使预取缓存空间不固定为某一级缓存空间,可以在每次预取时灵活设定,从而提高整体的处理效率。
需要说明的是,本公开的实施例中,信息预取方法不限于上文描述的步骤,还可以包括更多或更少的步骤,各个步骤的执行顺序不受限制,这可以根据实际需求而定。关于该方法的详细说明,可以参考上文中关于处理器的描述,此处不再赘述。
本公开至少一个实施例还提供一种电子设备,该电子设备包括本公开任一实施例提供的处理器。该电子设备可以在降低地址翻译时延的同时实现数据/指令预取功能,有效减少数据/指令读写操作的时延,提高系统整体性能。
图13为本公开一些实施例提供的一种电子设备的示意框图。如图13所示,电子设备100包括处理器110,处理器110为本公开任一实施例提供的处理器,例如为图5所示的处理器。电子设备100可以用于大数据、云计算、人工智能(AI)等新型应用场景,相应地,电子设备100可以为大数据计算设备、云计算设备、人工智能设备等,本公开的实施例对此不作限制。
图14为本公开一些实施例提供的另一种电子设备的示意框图。如图14所示,该电子设备200例如适于用来实施本公开实施例提供的信息预取方法。电子设备200可以是终端设备或服务器等。需要注意的是,图14示出的电子设备200仅仅是一个示例,其不会对本公开实施例的功能和使用范围带来任何限制。
如图14所示,电子设备200可以包括处理装置(例如中央处理器、图形处理器等)21,其可以根据存储在只读存储器(ROM)22中的程序或者从存储装置28加载到随机访问存储器(RAM)23中的程序而执行各种适当的动作和处理。例如,处理装置21可以为本公开任一实施例提供的处理器,例如为图5所示的处理器。在RAM 23中,还存储有电子设备200操作所需的各种程序和数据。处理装置21、ROM 22以及RAM 23通过总线24彼此相连。输入/输出(I/O)接口25也连接至总线24。
通常,以下装置可以连接至I/O接口25:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置26;包括例如液晶显示器(LCD)、扬声器、振动器等的输出装置27;包括例如磁带、硬盘等的存储装置28;以及通信装置29。通信装置29可以允许电子设备200与其他电子设备进行无线或有线通信以交换数据。虽然图14示出了具有各种装置的电子设备200,但应理解的是,并不要求实施或具备所有示出的装置,电子设备200可以替代地实施或具备更多或更少的装置。
关于电子设备100/200的详细说明和技术效果,可以参考上文中关于处理器和信息预取方法的描述,此处不再赘述。
有以下几点需要说明:
(1)本公开实施例附图只涉及到本公开实施例涉及到的结构,其他结构可参考通常设计。
(2)在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合以得到新的实施例。
以上所述,仅为本公开的具体实施方式,但本公开的保护范围并不局限于此,本公开的保护范围应以所述权利要求的保护范围为准。

Claims (19)

1.一种信息预取方法,用于处理器,其中,所述处理器包括第一级缓存空间、页表遍历器和至少一个预设缓存空间,所述第一级缓存空间和所述至少一个预设缓存空间依序通信连接以形成通信链路,所述至少一个预设缓存空间包括目标预设缓存空间,所述目标预设缓存空间是所述至少一个预设缓存空间中的一个,所述页表遍历器与所述目标预设缓存空间设置在同一路径等级以直接进行数据交互和传递,所述页表遍历器与所述目标预设缓存空间通信连接,
所述方法包括:
响应于所述页表遍历器进行地址翻译操作得到物理地址,所述页表遍历器向所述目标预设缓存空间发送预取请求,其中,所述预取请求包括所述物理地址;
响应于所述预取请求,所述目标预设缓存空间基于所述物理地址进行信息预取操作。
2.根据权利要求1所述的方法,其中,所述处理器还包括处理器核,
所述目标预设缓存空间基于所述物理地址进行所述信息预取操作,包括:
确定预取缓存空间,其中,所述预取缓存空间是所述第一级缓存空间和所述至少一个预设缓存空间中至少之一;
基于所述物理地址,所述目标预设缓存空间获取所述物理地址对应存储的目标信息;
所述目标预设缓存空间将所述目标信息发送至所述预取缓存空间。
3.根据权利要求2所述的方法,其中,确定所述预取缓存空间包括:
获取预设标识,其中,所述预设标识表示缓存空间的等级信息,所述预设标识存储在指定存储空间或者被携带在所述预取请求中;
根据所述预设标识确定所述预取缓存空间。
4.根据权利要求3所述的方法,其中,所述第一级缓存空间包括第一级指令空间和第一级数据空间,所述等级信息指示第一级,
根据所述预设标识确定所述预取缓存空间,包括:
响应于所述目标信息为指令类型,确定所述预取缓存空间为所述第一级指令空间;
响应于所述目标信息为数据类型,确定所述预取缓存空间为所述第一级数据空间。
5.根据权利要求2所述的方法,其中,基于所述物理地址,所述目标预设缓存空间获取所述物理地址对应存储的所述目标信息,包括:
基于所述物理地址,从所述目标预设缓存空间至内存的路径中以逐级查询的方式获取所述目标信息。
6.根据权利要求2所述的方法,其中,所述目标预设缓存空间将所述目标信息发送至所述预取缓存空间,包括:
从所述目标预设缓存空间至所述预取缓存空间的路径中以逐级传递的方式将所述目标信息发送至所述预取缓存空间。
7.根据权利要求2所述的方法,还包括:
所述目标预设缓存空间将所述物理地址发送至所述处理器核。
8.根据权利要求7所述的方法,其中,所述目标预设缓存空间将所述物理地址发送至所述处理器核,包括:
所述目标预设缓存空间以逐级传递的方式将所述物理地址发送至所述处理器核。
9.根据权利要求3所述的方法,还包括:
响应于地址翻译请求,所述页表遍历器执行所述地址翻译操作。
10.根据权利要求9所述的方法,其中,响应于所述地址翻译请求,所述页表遍历器执行所述地址翻译操作,包括:
所述页表遍历器接收所述处理器核生成的所述地址翻译请求,经由所述目标预设缓存空间从内存获取页表项数据,并使用所述页表项数据进行所述地址翻译操作,以获得所述物理地址。
11.根据权利要求10所述的方法,其中,所述地址翻译请求包括翻译信息,所述翻译信息包括:地址翻译请求序列号、需要翻译的虚拟地址值、最高级页表的初始地址。
12.根据权利要求11所述的方法,其中,所述翻译信息还包括请求类型标识,所述请求类型标识指示所述物理地址对应存储的所述目标信息是指令类型或数据类型。
13.根据权利要求9所述的方法,还包括:
所述处理器核根据所述第一级缓存空间和所述至少一个预设缓存空间的存储状态确定用于存储所述目标信息的缓存空间,并使所述地址翻译请求以所述预设标识的方式携带用于存储所述目标信息的缓存空间的等级信息;
所述页表遍历器解析得到所述预设标识,并使所述预取请求携带所述预设标识。
14.根据权利要求2所述的方法,其中,所述至少一个预设缓存空间包括第二级缓存空间至第N级缓存空间,N是大于2的整数,
所述第N级缓存空间距离内存最近且距离所述处理器核最远,所述第二级缓存空间至所述第N级缓存空间中的任一级缓存空间作为所述目标预设缓存空间。
15.根据权利要求14所述的方法,其中,所述第N级缓存空间是共享类型的缓存空间,所述第N级缓存空间作为所述目标预设缓存空间。
16.根据权利要求14所述的方法,其中,所述第二级缓存空间是私有类型或共享类型的缓存空间,所述第二级缓存空间作为所述目标预设缓存空间。
17.一种处理器,包括第一级缓存空间、页表遍历器和至少一个预设缓存空间,
其中,所述第一级缓存空间和所述至少一个预设缓存空间依序通信连接以形成通信链路,所述至少一个预设缓存空间包括目标预设缓存空间,所述目标预设缓存空间是所述至少一个预设缓存空间中的一个,所述页表遍历器与所述目标预设缓存空间设置在同一路径等级以直接进行数据交互和传递,所述页表遍历器与所述目标预设缓存空间通信连接,
所述页表遍历器配置为响应于地址翻译请求执行地址翻译操作以得到物理地址,并且向所述目标预设缓存空间发送预取请求,其中,所述预取请求包括所述物理地址,
所述目标预设缓存空间配置为响应于所述预取请求,基于所述物理地址进行信息预取操作。
18.根据权利要求17所述的处理器,其中,所述目标预设缓存空间还配置为确定预取缓存空间,基于所述物理地址获取所述物理地址对应存储的目标信息,并将所述目标信息发送至所述预取缓存空间,
所述预取缓存空间是所述第一级缓存空间和所述至少一个预设缓存空间中至少之一。
19.一种电子设备,包括根据权利要求17或18所述的处理器。
CN202111531678.9A 2021-12-14 2021-12-14 信息预取方法、处理器、电子设备 Active CN114218132B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111531678.9A CN114218132B (zh) 2021-12-14 2021-12-14 信息预取方法、处理器、电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111531678.9A CN114218132B (zh) 2021-12-14 2021-12-14 信息预取方法、处理器、电子设备

Publications (2)

Publication Number Publication Date
CN114218132A CN114218132A (zh) 2022-03-22
CN114218132B true CN114218132B (zh) 2023-03-24

Family

ID=80702157

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111531678.9A Active CN114218132B (zh) 2021-12-14 2021-12-14 信息预取方法、处理器、电子设备

Country Status (1)

Country Link
CN (1) CN114218132B (zh)

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8161246B2 (en) * 2009-03-30 2012-04-17 Via Technologies, Inc. Prefetching of next physically sequential cache line after cache line that includes loaded page table entry
US9569363B2 (en) * 2009-03-30 2017-02-14 Via Technologies, Inc. Selective prefetching of physically sequential cache line to cache line that includes loaded page table entry
CN102521158B (zh) * 2011-12-13 2014-09-24 北京北大众志微系统科技有限责任公司 一种实现数据预取的方法及装置
GB2528842B (en) * 2014-07-29 2021-06-02 Advanced Risc Mach Ltd A data processing apparatus, and a method of handling address translation within a data processing apparatus
US20170161194A1 (en) * 2015-12-02 2017-06-08 Advanced Micro Devices, Inc. Page-based prefetching triggered by tlb activity
WO2018100363A1 (en) * 2016-11-29 2018-06-07 Arm Limited Memory address translation
US10831673B2 (en) * 2017-11-22 2020-11-10 Arm Limited Memory address translation
CN110389911A (zh) * 2018-04-23 2019-10-29 珠海全志科技股份有限公司 一种设备内存管理单元的预取方法、装置及系统
US10884943B2 (en) * 2018-08-30 2021-01-05 International Business Machines Corporation Speculative checkin of ERAT cache entries
CN109461113B (zh) * 2018-10-11 2021-07-16 中国人民解放军国防科技大学 一种面向数据结构的图形处理器数据预取方法及装置
US11210232B2 (en) * 2019-02-08 2021-12-28 Samsung Electronics Co., Ltd. Processor to detect redundancy of page table walk
GB2593484B (en) * 2020-03-24 2022-09-28 Advanced Risc Mach Ltd Memory management
CN111367831B (zh) * 2020-03-26 2022-11-11 超睿科技(长沙)有限公司 翻译页表的深度预取方法、部件、微处理器及计算机设备
CN112416437B (zh) * 2020-12-02 2023-04-21 海光信息技术股份有限公司 信息处理方法、信息处理装置和电子设备
CN113391974B (zh) * 2021-05-25 2023-04-07 龙芯中科技术股份有限公司 内存监测方法、装置、处理器及存储介质

Also Published As

Publication number Publication date
CN114218132A (zh) 2022-03-22

Similar Documents

Publication Publication Date Title
CN106537362B (zh) 数据处理装置和在数据处理装置中处理地址转换的方法
US8161246B2 (en) Prefetching of next physically sequential cache line after cache line that includes loaded page table entry
KR101593107B1 (ko) 메모리 요청들을 처리하기 위한 시스템들 및 방법들
CN112416817B (zh) 预取方法、信息处理装置、设备以及存储介质
CN114238167B (zh) 信息预取方法、处理器、电子设备
KR960001945B1 (ko) 우선변환참조버퍼에서 적중수를 증가시키기 위한 장치
US11847064B2 (en) Buffer and methods for address translations in a processor
WO2023055486A1 (en) Re-reference interval prediction (rrip) with pseudo-lru supplemental age information
US20220012183A1 (en) Methods and systems for translating virtual addresses in a virtual memory based system
KR102482516B1 (ko) 메모리 어드레스 변환
US10754791B2 (en) Software translation prefetch instructions
CN115098410A (zh) 处理器、用于处理器的数据处理方法及电子设备
CN114218132B (zh) 信息预取方法、处理器、电子设备
CN115061955A (zh) 处理器、电子设备、地址翻译方法以及缓存页表项方法
CN114238176B (zh) 处理器、用于处理器的地址翻译方法、电子设备
US11494300B2 (en) Page table walker with page table entry (PTE) physical address prediction
CN114925001A (zh) 处理器、页表预取方法、电子设备
CN117099087A (zh) 用于处理储存请求的装置和方法
CN114281720B (zh) 处理器、用于处理器的地址翻译方法、电子设备
US11461237B2 (en) Methods and systems for translating virtual addresses in a virtual memory based system
US11157285B2 (en) Dynamic modification of instructions that do not modify the architectural state of a processor
US11853597B2 (en) Memory management unit, method for memory management, and information processing apparatus
US10977176B2 (en) Prefetching data to reduce cache misses
CN115080464A (zh) 数据处理方法和数据处理装置
JP2019096307A (ja) 複数のデータ・タイプのためのデータ・ストレージ

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