CN114238176B - 处理器、用于处理器的地址翻译方法、电子设备 - Google Patents
处理器、用于处理器的地址翻译方法、电子设备 Download PDFInfo
- Publication number
- CN114238176B CN114238176B CN202111531679.3A CN202111531679A CN114238176B CN 114238176 B CN114238176 B CN 114238176B CN 202111531679 A CN202111531679 A CN 202111531679A CN 114238176 B CN114238176 B CN 114238176B
- Authority
- CN
- China
- Prior art keywords
- page table
- cache space
- level
- processor
- address translation
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0811—Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
Abstract
一种处理器、用于处理器的地址翻译方法、电子设备。该处理器包括第一级缓存空间、页表遍历器和至少一个预设缓存空间。第一级缓存空间和至少一个预设缓存空间依序通信连接以形成通信链路。至少一个预设缓存空间包括目标预设缓存空间,页表遍历器与目标预设缓存空间设置在同一路径等级,页表遍历器与目标预设缓存空间通信连接,页表遍历器配置为响应于地址翻译请求执行地址翻译操作。该处理器可以降低页表遍历器访问内存及地址翻译的时延,提高地址翻译的效率,从而提高系统性能,有助于提高用于新型应用场景时的整体性能。
Description
技术领域
本公开的实施例涉及一种处理器、用于处理器的地址翻译方法、电子设备。
背景技术
在计算机技术领域,计算机操作系统的重要职能之一是内存管理。在多进程操作系统中,每个进程都有自己的虚拟地址空间,可以使用系统规定范围内的任意虚拟地址(Virtual Address)。中央处理器(Central Processing Unit,CPU)执行应用程序时所使用的地址是虚拟地址。操作系统给进程分配内存时,需要把使用到的虚拟地址映射到物理地址(Physical Address),物理地址才是真正的物理内存访问地址。通过这种将地址区分为虚拟地址和物理地址的方式,可以简化程序编译,使编译器基于连续的、充足的虚拟地址空间来编译程序,并且不同进程的虚拟地址被分配到不同的物理地址,使得系统能够同时运行多个进程,从而提高整个计算机系统的运行效率。此外,由于应用程序可以使用但无法更改地址翻译,因此一个进程无法访问到另一个进程的内存内容,从而增加了系统的安全性。
发明内容
本公开至少一个实施例提供一种处理器,包括第一级缓存空间、页表遍历器和至少一个预设缓存空间,其中,所述第一级缓存空间和所述至少一个预设缓存空间依序通信连接以形成通信链路,所述至少一个预设缓存空间包括目标预设缓存空间,所述页表遍历器与所述目标预设缓存空间设置在同一路径等级,所述页表遍历器与所述目标预设缓存空间通信连接,所述页表遍历器配置为响应于地址翻译请求执行地址翻译操作。
例如,本公开一实施例提供的处理器还包括处理器核,所述页表遍历器还配置为接收所述处理器核生成的地址翻译请求,经由所述目标预设缓存空间从内存获取页表项数据,并使用所述页表项数据进行所述地址翻译操作,以获得物理地址。
例如,本公开一实施例提供的处理器还包括页表项缓存空间,其中,所述处理器核与所述页表项缓存空间设置在同一路径等级,所述处理器核与所述页表项缓存空间通信连接,所述处理器核配置为响应于所述页表项缓存空间中不存在地址翻译所需的页表项数据,生成所述地址翻译请求。
例如,在本公开一实施例提供的处理器中,所述页表项缓存空间储存有第一级页表的页表项数据至第M级页表的页表项数据中的至少部分页表项数据,M是大于1的整数。
例如,在本公开一实施例提供的处理器中,所述处理器核配置为向所述页表遍历器发送所述地址翻译请求。
例如,在本公开一实施例提供的处理器中,所述至少一个预设缓存空间包括第二级缓存空间至第N级缓存空间,N是大于2的整数,所述第N级缓存空间距离所述内存最近且距离所述处理器核最远,所述第二级缓存空间至所述第N级缓存空间中的任一级缓存空间作为所述目标预设缓存空间。
例如,在本公开一实施例提供的处理器中,所述第N级缓存空间是共享类型的缓存空间,所述第N级缓存空间作为所述目标预设缓存空间。
例如,在本公开一实施例提供的处理器中,所述第二级缓存空间是私有类型或共享类型的缓存空间,所述第二级缓存空间作为所述目标预设缓存空间。
例如,在本公开一实施例提供的处理器中,所述第一级缓存空间至所述第N级缓存空间存储有第一级页表的页表项数据至第M级页表的页表项数据中的至少部分页表项数据,M是大于1的整数。
例如,在本公开一实施例提供的处理器中,所述页表遍历器还配置为根据所述地址翻译请求从所述目标预设缓存空间至所述内存的路径中以逐级查询的方式获取所述页表项数据。
例如,在本公开一实施例提供的处理器中,所述页表遍历器还配置为响应于无法获取到地址翻译所需的页表项数据,发送错误反馈指令至所述处理器核,以确定页表项读取错误。
例如,在本公开一实施例提供的处理器中,所述页表遍历器包括多级页表缓存区,所述多级页表缓存区配置为缓存第一级页表的页表项数据至第M级页表的页表项数据中的至少部分页表项数据,M是大于1的整数。
例如,本公开一实施例提供的处理器还包括请求缓存区,其中,所述请求缓存区与所述页表遍历器设置在同一路径等级,所述请求缓存区与所述页表遍历器通信连接,并且与所述目标预设缓存空间通信连接,所述请求缓存区配置为存储所述处理器核发送的待处理的地址翻译请求队列。
例如,在本公开一实施例提供的处理器中,所述地址翻译请求包括翻译信息,所述翻译信息包括:地址翻译请求序列号、需要翻译的虚拟地址值、最高级页表的初始地址。
例如,在本公开一实施例提供的处理器中,所述页表遍历器还配置为发送数据返回指令至所述处理器核,所述数据返回指令包括所述地址翻译请求序列号、内存页的物理地址及属性。
本公开至少一个实施例还提供一种处理器,包括第一级缓存空间、页表遍历器和内存,其中,所述页表遍历器与所述内存设置在同一路径等级,所述页表遍历器与所述内存通信连接,所述页表遍历器与所述第一级缓存空间设置在不同路径等级,所述页表遍历器与所述第一级缓存空间不通信连接,所述页表遍历器配置为响应于地址翻译请求执行地址翻译操作。
本公开至少一个实施例还提供一种用于处理器的地址翻译方法,其中,所述处理器包括第一级缓存空间、页表遍历器和至少一个预设缓存空间,所述第一级缓存空间和所述至少一个预设缓存空间依序通信连接以形成通信链路,所述至少一个预设缓存空间包括目标预设缓存空间,所述页表遍历器与所述目标预设缓存空间设置在同一路径等级,所述页表遍历器与所述目标预设缓存空间通信连接,所述方法包括:响应于地址翻译请求,利用所述页表遍历器执行地址翻译操作。
例如,在本公开一实施例提供的方法中,利用所述页表遍历器执行所述地址翻译操作,包括:所述页表遍历器经由所述目标预设缓存空间从内存获取页表项数据,并使用所述页表项数据进行所述地址翻译操作,以获得物理地址。
例如,在本公开一实施例提供的方法中,所述页表遍历器经由所述目标预设缓存空间从所述内存获取所述页表项数据,并使用所述页表项数据进行所述地址翻译操作,包括:所述页表遍历器根据所述地址翻译请求从所述目标预设缓存空间至所述内存的路径中以逐级查询的方式获取所述页表项数据,并使用所述页表项数据进行翻译以获得所述物理地址。
例如,在本公开一实施例提供的方法中,所述处理器还包括处理器核,所述方法还包括:利用所述页表遍历器接收所述处理器核生成的所述地址翻译请求。
例如,本公开一实施例提供的方法还包括:响应于无法获取到地址翻译所需的页表项数据,利用所述页表遍历器发送错误反馈指令至所述处理器核,以确定页表项读取错误。
例如,本公开一实施例提供的方法还包括:利用所述页表遍历器发送数据返回指令至所述处理器核,其中,所述数据返回指令包括地址翻译请求序列号、内存页的物理地址及属性。
本公开至少一个实施例还提供一种用于处理器的地址翻译方法,其中,所述处理器包括处理器核、第一级缓存空间、页表遍历器和至少一个预设缓存空间,所述第一级缓存空间和所述至少一个预设缓存空间依序通信连接以形成通信链路,所述至少一个预设缓存空间包括目标预设缓存空间,所述页表遍历器与所述目标预设缓存空间设置在同一路径等级,所述页表遍历器与所述目标预设缓存空间通信连接,所述方法包括:利用所述处理器核向所述页表遍历器发送地址翻译请求,以使所述页表遍历器执行地址翻译操作。
例如,在本公开一实施例提供的方法中,所述处理器还包括页表项缓存空间,所述处理器核与所述页表项缓存空间设置在同一路径等级,所述处理器核与所述页表项缓存空间通信连接,所述方法还包括:响应于所述页表项缓存空间中不存在地址翻译所需的页表项数据,利用所述处理器核生成所述地址翻译请求。
例如,在本公开一实施例提供的方法中,所述处理器还包括请求缓存区,所述请求缓存区与所述页表遍历器设置在同一路径等级,所述请求缓存区与所述页表遍历器通信连接,并且与所述目标预设缓存空间通信连接,所述方法还包括:利用所述处理器核向所述请求缓存区发送待处理的地址翻译请求队列。
本公开至少一个实施例还提供一种电子设备,包括根据本公开任一实施例所述的处理器。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例的附图作简单地介绍,显而易见地,下面描述中的附图仅仅涉及本公开的一些实施例,而非对本公开的限制。
图1为一种地址翻译流程的示意图;
图2为一种多核处理器的架构示意图;
图3为采用图2所示的处理器进行地址翻译的数据流示意图;
图4为本公开一些实施例提供的一种处理器的架构示意图;
图5为本公开一些实施例提供的另一种处理器的架构示意图;
图6为采用本公开实施例提供的处理器进行地址翻译的数据流示意图;
图7为本公开一些实施例提供的一种用于处理器的地址翻译方法的流程示意图;
图8为本公开一些实施例提供的另一种用于处理器的地址翻译方法的流程示意图;
图9为本公开一些实施例提供的一种电子设备的示意框图;
图10为本公开一些实施例提供的另一种电子设备的示意框图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例的附图,对本公开实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例是本公开的一部分实施例,而不是全部的实施例。基于所描述的本公开的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
除非另外定义,本公开使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本公开中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。同样,“一个”、“一”或者“该”等类似词语也不表示数量限制,而是表示存在至少一个。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
在计算机操作系统处理任务时,需要将应用程序使用的虚拟地址转换为物理地址,从而基于物理地址进行内存访问,以获取数据。将虚拟地址转换为物理地址的过程被称为地址翻译(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时钟周期。大量硬件页表遍历器地址翻译需要多次内存访问和/或长内存访问时延等多种因素导致地址翻译的效率较低,使得系统的整体性能下降。地址翻译造成的程序执行停顿是新型应用场景主要性能瓶颈之一,地址翻译的时延影响了新型应用的性能。
本公开至少一个实施例提供一种处理器、用于处理器的地址翻译方法、电子设备。该处理器可以降低页表遍历器访问内存及地址翻译的时延,提高地址翻译的效率,从而提高系统性能,有助于提高用于新型应用场景时的整体性能。
下面,将参考附图详细地说明本公开的实施例。应当注意的是,不同的附图中相同的附图标记将用于指代已描述的相同的元件。
本公开至少一个实施例提供一种处理器。该处理器包括第一级缓存空间、页表遍历器和至少一个预设缓存空间。第一级缓存空间和至少一个预设缓存空间依序通信连接以形成通信链路。至少一个预设缓存空间包括目标预设缓存空间,页表遍历器与目标预设缓存空间设置在同一路径等级,页表遍历器与目标预设缓存空间通信连接,页表遍历器配置为响应于地址翻译请求执行地址翻译操作。
图4为本公开一些实施例提供的一种处理器的架构示意图。如图4所示,在本公开的一些实施例中,该处理器包括处理器核、第一级缓存空间、页表遍历器和至少一个预设缓存空间。
例如,第一级缓存空间为L1缓存,可以设置在处理器核内部。例如,第一级缓存空间与处理器核设置在同一路径等级,第一级缓存空间与处理器核通信连接,处理器核可以直接从第一级缓存空间获取数据或指令。这里,“设置在同一路径等级”是指在芯片中的物理位置相邻或相近,且可以直接进行数据交互和传递。因此,第一级缓存空间与处理器核设置在同一路径等级可以指第一缓存空间设置在处理器核旁边,距处理器核的距离较近,且处理器核可以与第一缓存空间直接进行数据交互和传输。例如,“通信连接”是指可以直接传输数据/指令。
在一些示例中,第一级缓存空间包括L1I缓存和L1D缓存,L1I缓存用于存储指令,L1D缓存用于存储数据。当然,本公开的实施例不限于此,在其他示例中,也可以不区分L1I缓存和L1D缓存,而仅设置一个L1缓存,既用于存储数据又用于存储指令。
例如,在一些示例中,至少一个预设缓存空间包括第二级缓存空间至第N级缓存空间,N是大于2的整数。第N级缓存空间距离内存最近且距离处理器核最远。例如,在图4所示的示例中,至少一个预设缓存空间可以包括第二级缓存空间(L2缓存)和最后一级缓存空间(LLC),也即是,此时N=3。当然,本公开的实施例不限于此,N可以为任意的大于2的整数,例如为4、5、6等,相应地,该处理器为4级缓存架构、5级缓存架构、6级缓存架构等。例如,在另一些示例中,至少一个预设缓存空间包括一个缓存空间,也即仅包括第二级缓存空间,此时,该处理器为2级缓存架构。需要说明的是,在本公开实施例提供的处理器中,除了第一级缓存空间以外,其他级别的缓存可以统称为预设缓存空间。
例如,第一级缓存空间、至少一个预设缓存空间依序通信连接以形成通信链路,由此可以实现逐级向下的数据获取。例如,处理器核需要获取数据时,可以首先到第一级缓存空间查询,如果没有命中,则继续到第二级缓存空间查询,如果仍然没有命中,则到最后一级缓存空间查询。如果最后一级缓存空间还是未命中,则到内存中获取数据。
例如,至少一个预设缓存空间包括目标预设缓存空间,该目标预设缓存空间可以是多个预设缓存空间中的任意一个。例如,可以将第二级缓存空间至第N级缓存空间中的任一级缓存空间作为目标预设缓存空间。页表遍历器与目标预设缓存空间设置在同一路径等级,页表遍历器与目标预设缓存空间通信连接。
例如,在图4的示例中,最后一级缓存空间作为目标预设缓存空间,页表遍历器与最后一级缓存空间设置在同一路径等级,页表遍历器与最后一级缓存空间通信连接。这里,“设置在同一路径等级”是指在芯片中的物理位置相邻或相近,且可以直接进行数据交互和传递。因此,页表遍历器与最后一级缓存空间设置在同一路径等级可以指页表遍历器设置在最后一级缓存空间旁边,距最后一级缓存空间的距离较近,且最后一级缓存空间可以与页表遍历器直接进行数据交互和传输。
例如,在一些示例中,第N级缓存空间是共享类型的缓存空间,第N级缓存空间作为目标预设缓存空间,该示例为图4所示的情形。例如,在另一些示例中,第二级缓存空间是私有类型或共享类型的缓存空间,第二级缓存空间作为目标预设缓存空间。也即是,在一些处理器架构中,第二级缓存空间是针对每个处理器核单独提供的,属于私有类型,而在另一些处理器架构中,第二级缓存空间是多个处理器核共享的,属于共享类型。无论第二级缓存空间是私有类型还是共享类型,都可以将第二级缓存空间作为目标预设缓存空间。
需要说明的是,虽然图4示出了将最后一级缓存空间作为目标预设缓存空间并且将页表遍历器设置在最后一级缓存空间的旁边,但这并不构成对本公开实施例的限制。在其他示例中,在将第二级缓存空间作为目标预设缓存空间的情形中,页表遍历器设置在第二级缓存空间旁边,且与第二级缓存空间通信连接。在再一些示例中,当处理器包括更多级别的缓存时,可以将除了第一级缓存空间之外的其他任意一级缓存空间作为目标预设缓存空间,由此相应调整页表遍历器的设置位置。需要注意的是,页表遍历器没有设置在处理器核内,或者,页表遍历器没有设置在第一级缓存空间的旁边。
例如,页表遍历器配置为响应于地址翻译请求执行地址翻译操作。例如,在一些示例中,页表遍历器可以为前述的硬件页表遍历器(PTW)。这里,页表遍历器可以为前述的PTW,是指其实现的地址翻译功能类似,所采用的地址翻译原理相似,而两者的硬件结构、设置位置等可以不同,本公开的实施例对此不作限制。当需要将虚拟地址翻译为物理地址时,如果在ITLB或DTLB中未命中,则处理器核会向页表遍历器发送地址翻译请求。TLB的架构不限于ITLB和DTLB的方式,可以采用任意适用的架构,本公开的实施例对此不作限制。
例如,地址翻译请求可以触发页表遍历器执行地址翻译操作。地址翻译请求可以通过多级缓存架构传递至页表遍历器,也可以通过处理器内部的流水线传递至页表遍历器,本公开实施例对地址翻译请求的传递方式不作限制。在地址翻译请求通过多级缓存架构传递至页表遍历器的情形中,地址翻译请求采用多级缓存架构可识别的数据读取请求类型。
例如,地址翻译操作可以是多级页表的地址翻译过程,可以参见关于图1的说明,此处不再赘述。需要注意的是,进行地址翻译的页表不限于4级,可以采用任意数量的多级页表,例如2级页表、3级页表、5级页表等,还可以采用单级页表,这可以根据实际需求而定,本公开的实施例对此不作限制。例如,页表级数越多,每次地址翻译访问内存的次数就越多,因此本公开实施例提供的处理器能够提供的性能提升空间也就越大。例如,页表的物理页面大小不受限制,可以根据实际需求而定。
地址翻译请求可以包括翻译信息。翻译信息可以包括:地址翻译请求序列号、需要翻译的虚拟地址值、最高级页表的初始地址。页表遍历器接收到地址翻译请求后,会被触发执行地址翻译操作,并且基于翻译信息可以获取执行地址翻译操作所需要的内容,例如虚拟地址值、最高级页表的初始地址等。在一些示例中,可以用Addr_Trans_Req表示该请求为地址翻译请求,用Addr_Trans_SN表示地址翻译请求序列号,用REG_pt表示最高级页表的初始地址(也即该进程的REG_pt值),用VA表示需要翻译的虚拟地址值。
由于页表遍历器设置在目标预设缓存空间(该示例中为最后一级缓存空间)旁边,页表遍历器距离内存较近,因此,页表遍历器每次从内存获取页表项的时间较短,这显著提高了地址翻译的效率,大大缩短了地址翻译所花费的时间。页表遍历器没有设置在第一级缓存空间(L1缓存)的旁边,摆脱了通常将页表遍历器设置在处理器核内的束缚,并且由于页表遍历器可以更靠近内存,因而可以降低页表遍历器访问内存及地址翻译的时延,提高处理器的系统性能。这种页表遍历器的设置方式适用于多种新型应用场景(例如大数据、云计算、AI等)及多种CPU架构,可以进一步提高这些新型应用场景的性能。
需要说明的是,本公开的实施例中,可以将页表遍历器设置在除了第一级缓存空间以外的任意一级缓存空间的旁边,也可以将页表遍历器直接设置在内存旁边,这可以根据实际需求而定,例如根据处理器架构、工艺、缓存大小与延迟、内存延迟、是否支持缓存一致性、常用应用程序特性等多种因素而定,本公开的实施例对此不作限制。
例如,在一些示例中,页表遍历器还配置为接收处理器核生成的地址翻译请求,经由目标预设缓存空间从内存获取页表项数据,并使用页表项数据进行地址翻译操作,以获得物理地址。
例如,在该示例中,页表遍历器并不与内存直接通信连接,不会直接访问内存,而是通过目标预设缓存空间间接访问内存,以获得页表项数据。例如,页表遍历器还配置为根据地址翻译请求从目标预设缓存空间至内存的路径中以逐级查询的方式获取页表项数据。该逐级查询的方式与通过多级缓存逐级获取数据的方式类似。例如,当目标预设缓存空间为最后一级缓存空间时,页表遍历器通过最后一级缓存空间访问内存;当目标预设缓存空间是第二级缓存空间或其他级缓存空间时,页表遍历器通过目标预设缓存空间逐级向下查询访问内存。例如,第一级缓存空间至第N级缓存空间存储有第一级页表的页表项数据至第M级页表的页表项数据中的至少部分页表项数据,M是大于1的整数。
由此,页表遍历器读取的页表项数据可以被保存在目标预设缓存空间以及目标预设缓存空间与内存之间的缓存空间中,可以便于在下一次地址翻译过程中查询缓存空间中可能存在的页表项,如果命中,则无需再访问内存,以进一步提高地址翻译的效率,获得比内存访问更少的时延。并且,在本公开实施例中,在多核架构下,由于页表遍历器读取的页表项数据被保存在目标预设缓存空间中,因此缓存一致性机制可以保证页表遍历器获得正确的页表项内容。
例如,页表遍历器还配置为响应于无法获取到地址翻译所需的页表项数据,发送错误反馈指令至处理器核,以确定页表项读取错误。也即是,在处理器架构下,当某一级被访问的页表不在内存中,或者数据操作与该数据所属页表项属性不符时,会触发页面错误(Page Fault),并由操作系统来处理该异常。因此,当无法获取到地址翻译所需的页表项数据,页表遍历器会发送错误反馈指令至处理器核,错误反馈指令例如为中断指令或其他类型的指令,表示存在页表项读取错误,从而触发Page Fault。
例如,在一些示例中,页表遍历器可以包括多级页表缓存区(Page Walk Cache,PWT)。多级页表缓存区配置为缓存第一级页表的页表项数据至第M级页表的页表项数据中的至少部分页表项数据,M是大于1的整数。例如,多级页表缓存区是页表遍历器内部的一个缓存,用于保存最近使用过的第一级页表、第二级页表项、第三级页表项、第四级页表项等任意页表项。如果一个地址翻译在多级页表缓存区中找到相应的页表项,则可以跳过更高级的页表访问,从而减少内存访问次数及地址翻译时延。需要说明的是,多级页表缓存区是针对页表遍历器的微架构优化,也可以省略,这可以根据实际需求而定,本公开的实施例对此不作限制。
例如,在一些示例中,页表遍历器还配置为发送数据返回指令至处理器核。当页表遍历器执行完地址翻译操作后,可以得到相应的物理地址,因此页表遍历器将数据返回指令发送至处理器核,从而将物理地址传递给处理器核。数据返回指令可以通过多级缓存架构传递至处理器核,也可以通过处理器内部的流水线传递至处理器核,本公开实施例对数据返回指令的传递方式不作限制。在数据返回指令通过多级缓存架构传递至处理器核的情形中,数据返回指令采用多级缓存架构可识别的请求响应类型。
例如,数据返回指令包括地址翻译请求序列号、内存页的物理地址及属性等。例如,在一些示例中,可以用Addr_Trans_Resp表示该信息是对地址翻译请求Addr_Trans_SN的回复(也即表示该信息是数据返回指令),用Addr_Trans_SN表示地址翻译请求序列号,用PTE表示相应的第一级页表项内容,例如包含内存页的物理地址及属性。
图5为本公开一些实施例提供的另一种处理器的架构示意图。例如,如图5所示,在一些实施例中,除了进一步包括页表项缓存空间和请求缓存区,该处理器与图4所示的处理器基本相同。
例如,该处理器还包括页表项缓存空间,页表项缓存空间可以为前述的翻译后备缓冲器(TLB)。例如,处理器核与页表项缓存空间设置在同一路径等级,处理器核与页表项缓存空间通信连接。这里,“设置在同一路径等级”是指在芯片中的物理位置相邻或相近,且可以直接进行数据交互和传递。因此,处理器核与页表项缓存空间设置在同一路径等级可以指页表项缓存空间设置在处理器核旁边,距处理器核的距离较近,且处理器核可以与页表项缓存空间直接进行数据交互和传输。例如,“通信连接”是指可以直接传输数据/指令。例如,在一些示例中,页表项缓存空间可以设置在处理器核内部。
例如,处理器核配置为响应于页表项缓存空间中不存在地址翻译所需的页表项数据,生成地址翻译请求。也即是,当需要进行地址翻译时,处理器核在页表项缓存空间中查询所需要的页表项数据,当页表项缓存空间未命中(页表项缓存空间中不存在所需的页表项数据)时,处理器核会生成地址翻译请求。例如,在生成地址翻译请求之后,处理器核配置为向页表遍历器发送地址翻译请求,以使页表遍历器执行地址翻译操作。例如,当页表项缓存空间命中时,则可以从页表项缓存空间直接获取页表项数据,从而无需使用页表遍历器进行地址翻译,因此也就无需生成地址翻译请求。
例如,页表项缓存空间储存有第一级页表的页表项数据至第M级页表的页表项数据中的至少部分页表项数据,M是大于1的整数。也即是,页表项缓存空间可以存储最近使用过的任意的页表项数据,例如PTE等。
例如,请求缓存区也可以称为页申请缓存(Page Request Buffer,PRB),请求缓存区与页表遍历器设置在同一路径等级。请求缓存区与页表遍历器通信连接,并且与目标预设缓存空间通信连接,请求缓存区例如设置在页表遍历器与目标预设缓存空间之间。这里,“设置在同一路径等级”是指在芯片中的物理位置相邻或相近,且可以直接进行数据交互和传递。因此,请求缓存区与页表遍历器设置在同一路径等级可以指请求缓存区设置在页表遍历器旁边,距页表遍历器的距离较近,且页表遍历器可以与请求缓存区直接进行数据交互和传输。同时,请求缓存区还可以与目标预设缓存空间直接进行数据交互和传输。
请求缓存区配置为存储处理器核发送的待处理的地址翻译请求队列。当本公开实施例提供的处理器包括多个处理器核时,页表遍历器无法处理多个处理器核同时发送的地址翻译请求,因此可以采用请求缓存区来存储待处理的地址翻译请求队列。页表遍历器可以从请求缓存区依序获取地址翻译请求并执行相应的地址翻译操作。
是否需要设置请求缓存区、请求缓存区的大小如何确定等取决于多种因素。例如,这些因素可以包括:(1)每个处理器核每时钟周期最大可以发送多少个地址翻译请求;(2)页表遍历器每个时钟能够处理多少个地址翻译请求;(3)处理器包含多少个处理器核;(4)在请求缓存区将满时,页表遍历器能否请求每个处理器核暂停发送地址翻译请求,以防止请求缓存区溢出。这些因素随具体的处理器设计而异。在一些示例中,假设页表遍历器每个时钟能够处理所有处理器核的地址翻译请求,在该情形下,可以不设置请求缓存区。当然,本公开的实施例不限于此,也可以在满足其他可能的条件时省略请求缓存区。
图6为采用本公开实施例提供的处理器进行地址翻译的数据流示意图。如图6所示,在一种可能的情况下,翻译后备缓冲器(TLB)没有命中,因而需要访问内存进行地址翻译,此时,需要访问内存4次来获得最终内存页的物理地址,然后将物理地址发送至处理器核以及TLB。由于页表遍历器设置在目标预设缓存空间的旁边,因此可以有效缩短访问内存的时间。虽然从页表遍历器到TLB的传输时间有所增加,但是,在半导体工艺下,访问内存缩短的时间远远大于从页表遍历器到TLB增加的传输时间,因此地址翻译的整体时延有效缩短。相比于图3所示的情形,本公开实施例提供的处理器可以大幅度缩短页表遍历器访问内存的时间,从而降低页表遍历器访问内存及地址翻译的时延,提高地址翻译的效率。
本公开至少一个实施例还提供一种处理器,该处理器包括第一级缓存空间、页表遍历器和内存。页表遍历器与内存设置在同一路径等级,页表遍历器与内存通信连接。页表遍历器与第一级缓存空间设置在不同路径等级,页表遍历器与第一级缓存空间不通信连接。页表遍历器配置为响应于地址翻译请求执行地址翻译操作。也即是,可以将图4所示的处理器中的页表遍历器变更为设置在内存旁边,从而可以得到该实施例提供的处理器。在该实施例中,页表遍历器与内存直接通信连接,可以直接访问内存,以获得页表项数据。由此,可以降低页表遍历器访问内存及地址翻译的时延,提高地址翻译的效率,从而提高系统性能,有助于提高用于新型应用场景时的整体性能。
需要说明的是,本公开的实施例中,处理器可以为单核架构,也可以为多核架构,本公开的实施例对此不作限制。缓存的数量以及设置方式也不受限制,这可以根据实际需求而定。处理器不限于图4至图6所示出的结构,可以包括更多或更少的组成部分,各个组成部分之间的连接方式不受限制。
本公开至少一个实施例还提供一种用于处理器的地址翻译方法。该方法可以降低页表遍历器访问内存及地址翻译的时延,提高地址翻译的效率,从而提高系统性能,有助于提高用于新型应用场景时的整体性能。
图7为本公开一些实施例提供的一种用于处理器的地址翻译方法的流程示意图,图8为本公开一些实施例提供的另一种用于处理器的地址翻译方法的流程示意图。图7和图8所示的方法例如用于处理器的地址翻译。
该处理器包括第一级缓存空间、页表遍历器和至少一个预设缓存空间。第一级缓存空间、至少一个预设缓存空间依序通信连接以形成通信链路。至少一个预设缓存空间包括目标预设缓存空间,页表遍历器与目标预设缓存空间设置在同一路径等级,页表遍历器与目标预设缓存空间通信连接。例如,该处理器可以为图4至图6所示的处理器。关于处理器的相关说明可参照上文内容,此处不再赘述。
如图7所示,在一些实施例中,该方法包括步骤S11。
步骤S11:响应于地址翻译请求,利用页表遍历器执行地址翻译操作。
例如,在步骤S11中,页表遍历器接收到地址翻译请求后,响应于该地址翻译请求,执行地址翻译操作。例如,利用页表遍历器执行地址翻译操作可以包括:页表遍历器经由目标预设缓存空间从内存获取页表项数据,并使用页表项数据进行地址翻译操作,以获得物理地址。例如,上述操作可以进一步包括:页表遍历器根据地址翻译请求从目标预设缓存空间至内存的路径中以逐级查询的方式获取页表项数据,并使用页表项数据进行翻译以获得物理地址。
例如,在一些示例中,该处理器还包括处理器核。如图7所示,该方法还可以包括步骤S12-S14。
步骤S12:利用页表遍历器接收处理器核生成的地址翻译请求;
步骤S13:利用页表遍历器发送数据返回指令至处理器核;
步骤S14:响应于无法获取到地址翻译所需的页表项数据,利用页表遍历器发送错误反馈指令至处理器核,以确定页表项读取错误。
例如,在步骤S12中,当页表项缓存空间中不存在地址翻译所需的页表项数据时,处理器核会生成地址翻译请求,因此可以利用页表遍历器接收该地址翻译请求,从而触发页表遍历器执行地址翻译操作。地址翻译请求可以包括翻译信息。翻译信息可以包括:地址翻译请求序列号、需要翻译的虚拟地址值、最高级页表的初始地址等。
例如,在步骤S13中,当页表遍历器执行完地址翻译操作后,可以得到相应的物理地址,因此页表遍历器将数据返回指令发送至处理器核,从而将数据返回指令携带的物理地址传递给处理器核。数据返回指令包括地址翻译请求序列号、内存页的物理地址及属性等。
例如,在步骤S14中,当无法获取到地址翻译所需的页表项数据时,页表遍历器会发送错误反馈指令至处理器核,错误反馈指令例如为中断指令或其他类型的指令,表示存在页表项读取错误,从而触发Page Fault,以使操作系统来处理该异常。
如图8所示,在另一些实施例中,该方法包括步骤S21。
步骤S21:利用处理器核向页表遍历器发送地址翻译请求,以使页表遍历器执行地址翻译操作。
例如,在步骤S21中,当需要使页表遍历器执行地址翻译操作时,处理器核会向页表遍历器发送地址翻译请求,以触发页表遍历器进行地址翻译。
例如,在一些示例中,该处理器还包括页表项缓存空间,处理器核与页表项缓存空间设置在同一路径等级,处理器核与页表项缓存空间通信连接。处理器还可以包括请求缓存区,请求缓存区与页表遍历器设置在同一路径等级,请求缓存区与页表遍历器通信连接,并且与目标预设缓存空间通信连接。
在一些示例中,如图8所示,该方法还可以包括步骤S22-S23。
步骤S22:响应于页表项缓存空间中不存在地址翻译所需的页表项数据,利用处理器核生成地址翻译请求。
步骤S23:利用处理器核向请求缓存区发送待处理的地址翻译请求队列。
例如,在步骤S22中,当需要将虚拟地址翻译为物理地址时,如果在ITLB或DTLB中未命中,也即,页表项缓存空间中不存在地址翻译所需的页表项数据,则处理器核会生成地址翻译请求。
例如,在步骤S23中,当处理器包括多个处理器核时,页表遍历器无法处理多个处理器核同时发送的地址翻译请求,因此利用处理器核向请求缓存区发送待处理的地址翻译请求队列。页表遍历器可以从请求缓存区依序获取地址翻译请求并执行相应的地址翻译操作。
例如,图7所示的方法可以为处理器中页表遍历器所执行的操作,图8所示的方法可以为处理器中处理器核所执行的操作。图7和图8所示的方法彼此配合,从而可以实现地址翻译。
需要说明的是,本公开的实施例中,地址翻译方法不限于上文描述的步骤,还可以包括更多或更少的步骤,各个步骤的执行顺序不受限制,这可以根据实际需求而定。关于该方法的详细说明,可以参考上文中关于处理器的描述,此处不再赘述。
本公开至少一个实施例还提供一种电子设备,该电子设备包括本公开任一实施例提供的处理器。该电子设备可以降低页表遍历器访问内存及地址翻译的时延,提高地址翻译的效率,从而提高系统性能,有助于提高用于新型应用场景时的整体性能。
图9为本公开一些实施例提供的一种电子设备的示意框图。如图9所示,电子设备100包括处理器110,处理器110为本公开任一实施例提供的处理器,例如为图4至图6所示的处理器。电子设备100可以用于大数据、云计算、人工智能(AI)等新型应用场景,相应地,电子设备100可以为大数据计算设备、云计算设备、人工智能设备等,本公开的实施例对此不作限制。
图10为本公开一些实施例提供的另一种电子设备的示意框图。如图10所示,该电子设备200例如适于用来实施本公开实施例提供的地址翻译方法。电子设备200可以是终端设备或服务器等。需要注意的是,图10示出的电子设备200仅仅是一个示例,其不会对本公开实施例的功能和使用范围带来任何限制。
如图10所示,电子设备200可以包括处理装置(例如中央处理器、图形处理器等)21,其可以根据存储在只读存储器(ROM)22中的程序或者从存储装置28加载到随机访问存储器(RAM)23中的程序而执行各种适当的动作和处理。例如,处理装置21可以为本公开任一实施例提供的处理器,例如为图4至图6所示的处理器。在RAM 23中,还存储有电子设备200操作所需的各种程序和数据。处理装置21、ROM 22以及RAM 23通过总线24彼此相连。输入/输出(I/O)接口25也连接至总线24。
通常,以下装置可以连接至I/O接口25:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置26;包括例如液晶显示器(LCD)、扬声器、振动器等的输出装置27;包括例如磁带、硬盘等的存储装置28;以及通信装置29。通信装置29可以允许电子设备200与其他电子设备进行无线或有线通信以交换数据。虽然图10示出了具有各种装置的电子设备200,但应理解的是,并不要求实施或具备所有示出的装置,电子设备200可以替代地实施或具备更多或更少的装置。
关于电子设备100/200的详细说明和技术效果,可以参考上文中关于处理器的描述,此处不再赘述。
有以下几点需要说明:
(1)本公开实施例附图只涉及到本公开实施例涉及到的结构,其他结构可参考通常设计。
(2)在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合以得到新的实施例。
以上所述,仅为本公开的具体实施方式,但本公开的保护范围并不局限于此,本公开的保护范围应以所述权利要求的保护范围为准。
Claims (25)
1.一种处理器,包括处理器核、页表项缓存空间、第一级缓存空间、页表遍历器和至少一个预设缓存空间,
其中,所述第一级缓存空间和所述至少一个预设缓存空间依序通信连接以形成通信链路,
所述至少一个预设缓存空间包括目标预设缓存空间,所述页表遍历器与所述目标预设缓存空间设置在同一路径等级,所述页表遍历器与所述目标预设缓存空间通信连接,所述页表遍历器与所述目标预设缓存空间存在直接数据交互和传递但与所述第一级缓存空间不存在直接数据交互和传递,所述页表遍历器配置为响应于地址翻译请求执行地址翻译操作,
所述页表项缓存空间包括翻译后备缓冲器,所述处理器核与所述页表项缓存空间和所述第一级缓存空间设置在同一路径等级,所述处理器核与所述页表项缓存空间和所述第一级缓存空间存在直接数据交互和传递;
其中,所述页表遍历器与所述目标预设缓存空间设置在同一路径等级包括所述页表遍历器与所述目标预设缓存空间在所述处理器中的物理位置相邻或相近。
2.根据权利要求1所述的处理器,
其中,所述页表遍历器还配置为接收所述处理器核生成的地址翻译请求,经由所述目标预设缓存空间从内存获取页表项数据,并使用所述页表项数据进行所述地址翻译操作,以获得物理地址。
3.根据权利要求2所述的处理器,所述处理器核与所述页表项缓存空间通信连接,
所述处理器核配置为响应于所述页表项缓存空间中不存在地址翻译所需的页表项数据,生成所述地址翻译请求。
4.根据权利要求3所述的处理器,其中,所述页表项缓存空间储存有第一级页表的页表项数据至第M级页表的页表项数据中的至少部分页表项数据,M是大于1的整数。
5.根据权利要求3所述的处理器,其中,所述处理器核配置为向所述页表遍历器发送所述地址翻译请求。
6.根据权利要求2所述的处理器,其中,所述至少一个预设缓存空间包括第二级缓存空间至第N级缓存空间,N是大于2的整数,
所述第N级缓存空间距离所述内存最近且距离所述处理器核最远,所述第二级缓存空间至所述第N级缓存空间中的任一级缓存空间作为所述目标预设缓存空间。
7.根据权利要求6所述的处理器,其中,所述第N级缓存空间是共享类型的缓存空间,所述第N级缓存空间作为所述目标预设缓存空间。
8.根据权利要求6所述的处理器,其中,所述第二级缓存空间是私有类型或共享类型的缓存空间,所述第二级缓存空间作为所述目标预设缓存空间。
9.根据权利要求6所述的处理器,其中,所述第一级缓存空间至所述第N级缓存空间存储有第一级页表的页表项数据至第M级页表的页表项数据中的至少部分页表项数据,M是大于1的整数。
10.根据权利要求9所述的处理器,其中,所述页表遍历器还配置为根据所述地址翻译请求从所述目标预设缓存空间至所述内存的路径中以逐级查询的方式获取所述页表项数据。
11.根据权利要求2所述的处理器,其中,所述页表遍历器还配置为响应于无法获取到地址翻译所需的页表项数据,发送错误反馈指令至所述处理器核,以确定页表项读取错误。
12.根据权利要求1所述的处理器,其中,所述页表遍历器包括多级页表缓存区,所述多级页表缓存区配置为缓存第一级页表的页表项数据至第M级页表的页表项数据中的至少部分页表项数据,M是大于1的整数。
13.根据权利要求2所述的处理器,还包括请求缓存区,
其中,所述请求缓存区与所述页表遍历器设置在同一路径等级,所述请求缓存区与所述页表遍历器通信连接,并且与所述目标预设缓存空间通信连接,所述请求缓存区配置为存储所述处理器核发送的待处理的地址翻译请求队列。
14.根据权利要求2所述的处理器,其中,所述地址翻译请求包括翻译信息,所述翻译信息包括:地址翻译请求序列号、需要翻译的虚拟地址值、最高级页表的初始地址。
15.根据权利要求14所述的处理器,其中,所述页表遍历器还配置为发送数据返回指令至所述处理器核,
所述数据返回指令包括所述地址翻译请求序列号、内存页的物理地址及属性。
16.一种用于处理器的地址翻译方法,其中,所述处理器包括处理器核、页表项缓存空间、第一级缓存空间、页表遍历器和至少一个预设缓存空间,
所述第一级缓存空间和所述至少一个预设缓存空间依序通信连接以形成通信链路,所述至少一个预设缓存空间包括目标预设缓存空间,所述页表遍历器与所述目标预设缓存空间设置在同一路径等级,所述页表遍历器与所述目标预设缓存空间通信连接,所述页表遍历器与所述目标预设缓存空间存在直接数据交互和传递但与所述第一级缓存空间不存在直接数据交互和传递,
所述页表项缓存空间包括翻译后备缓冲器,所述处理器核与所述页表项缓存空间和所述第一级缓存空间设置在同一路径等级,所述处理器核与所述页表项缓存空间和所述第一级缓存空间存在直接数据交互和传递,
所述页表遍历器与所述目标预设缓存空间设置在同一路径等级包括所述页表遍历器与所述目标预设缓存空间在所述处理器中的物理位置相邻或相近,
所述方法包括:
响应于地址翻译请求,利用所述页表遍历器执行地址翻译操作。
17.根据权利要求16所述的方法,其中,利用所述页表遍历器执行所述地址翻译操作,包括:
所述页表遍历器经由所述目标预设缓存空间从内存获取页表项数据,并使用所述页表项数据进行所述地址翻译操作,以获得物理地址。
18.根据权利要求17所述的方法,其中,所述页表遍历器经由所述目标预设缓存空间从所述内存获取所述页表项数据,并使用所述页表项数据进行所述地址翻译操作,包括:
所述页表遍历器根据所述地址翻译请求从所述目标预设缓存空间至所述内存的路径中以逐级查询的方式获取所述页表项数据,并使用所述页表项数据进行翻译以获得所述物理地址。
19.根据权利要求16所述的方法,其中,
所述方法还包括:
利用所述页表遍历器接收所述处理器核生成的所述地址翻译请求。
20.根据权利要求19所述的方法,还包括:
响应于无法获取到地址翻译所需的页表项数据,利用所述页表遍历器发送错误反馈指令至所述处理器核,以确定页表项读取错误。
21.根据权利要求19所述的方法,还包括:
利用所述页表遍历器发送数据返回指令至所述处理器核,
其中,所述数据返回指令包括地址翻译请求序列号、内存页的物理地址及属性。
22.一种用于处理器的地址翻译方法,其中,所述处理器包括处理器核、页表项缓存空间、第一级缓存空间、页表遍历器和至少一个预设缓存空间,
所述第一级缓存空间和所述至少一个预设缓存空间依序通信连接以形成通信链路,所述至少一个预设缓存空间包括目标预设缓存空间,所述页表遍历器与所述目标预设缓存空间设置在同一路径等级,所述页表遍历器与所述目标预设缓存空间通信连接,所述页表遍历器与所述目标预设缓存空间存在直接数据交互和传递但与所述第一级缓存空间不存在直接数据交互和传递,
所述页表项缓存空间包括翻译后备缓冲器,所述处理器核与所述页表项缓存空间和所述第一级缓存空间设置在同一路径等级,所述处理器核与所述页表项缓存空间和所述第一级缓存空间存在直接数据交互和传递,
其中,所述页表遍历器与所述目标预设缓存空间设置在同一路径等级包括所述页表遍历器与所述目标预设缓存空间在所述处理器中的物理位置相邻或相近,
所述方法包括:
利用所述处理器核向所述页表遍历器发送地址翻译请求,以使所述页表遍历器执行地址翻译操作。
23.根据权利要求22所述的方法,其中,所述处理器核与所述页表项缓存空间通信连接,
所述方法还包括:
响应于所述页表项缓存空间中不存在地址翻译所需的页表项数据,利用所述处理器核生成所述地址翻译请求。
24.根据权利要求22所述的方法,其中,所述处理器还包括请求缓存区,所述请求缓存区与所述页表遍历器设置在同一路径等级,所述请求缓存区与所述页表遍历器通信连接,并且与所述目标预设缓存空间通信连接,
所述方法还包括:
利用所述处理器核向所述请求缓存区发送待处理的地址翻译请求队列。
25.一种电子设备,包括根据权利要求1-15任一项所述的处理器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111531679.3A CN114238176B (zh) | 2021-12-14 | 2021-12-14 | 处理器、用于处理器的地址翻译方法、电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111531679.3A CN114238176B (zh) | 2021-12-14 | 2021-12-14 | 处理器、用于处理器的地址翻译方法、电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114238176A CN114238176A (zh) | 2022-03-25 |
CN114238176B true CN114238176B (zh) | 2023-03-10 |
Family
ID=80756151
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111531679.3A Active CN114238176B (zh) | 2021-12-14 | 2021-12-14 | 处理器、用于处理器的地址翻译方法、电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114238176B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111552654A (zh) * | 2019-02-08 | 2020-08-18 | 三星电子株式会社 | 对页表遍历的冗余进行检测的处理器 |
CN112860600A (zh) * | 2019-11-28 | 2021-05-28 | 深圳市海思半导体有限公司 | 一种加速硬件页表遍历的方法及装置 |
US11126556B1 (en) * | 2019-07-19 | 2021-09-21 | Marvell Asia Pte, Ltd. | History table management for a correlated prefetcher |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030079103A1 (en) * | 2001-10-24 | 2003-04-24 | Morrow Michael W. | Apparatus and method to perform address translation |
US8015361B2 (en) * | 2007-12-14 | 2011-09-06 | International Business Machines Corporation | Memory-centric page table walker |
US9213649B2 (en) * | 2012-09-24 | 2015-12-15 | Oracle International Corporation | Distributed page-table lookups in a shared-memory system |
US9405702B2 (en) * | 2014-11-14 | 2016-08-02 | Cavium, Inc. | Caching TLB translations using a unified page table walker cache |
US20160147667A1 (en) * | 2014-11-24 | 2016-05-26 | Samsung Electronics Co., Ltd. | Address translation in memory |
US10372618B2 (en) * | 2016-10-14 | 2019-08-06 | Arm Limited | Apparatus and method for maintaining address translation data within an address translation cache |
KR20200098354A (ko) * | 2019-02-08 | 2020-08-20 | 삼성전자주식회사 | 페이지 테이블 워크의 리던던시를 검출하는 프로세서 |
-
2021
- 2021-12-14 CN CN202111531679.3A patent/CN114238176B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111552654A (zh) * | 2019-02-08 | 2020-08-18 | 三星电子株式会社 | 对页表遍历的冗余进行检测的处理器 |
US11126556B1 (en) * | 2019-07-19 | 2021-09-21 | Marvell Asia Pte, Ltd. | History table management for a correlated prefetcher |
CN112860600A (zh) * | 2019-11-28 | 2021-05-28 | 深圳市海思半导体有限公司 | 一种加速硬件页表遍历的方法及装置 |
Non-Patent Citations (2)
Title |
---|
"Scheduling Page Table Walks for Irregular GPU Applications";Seunghee Shin;《IEEE》;20180723;第180-192页 * |
"Translation caching: skip, don"t walk (the page table)";Thomas W. Barr;《ACM SIGARCH Computer Architecture News》;20100619;第38卷(第3期);第44-59页 * |
Also Published As
Publication number | Publication date |
---|---|
CN114238176A (zh) | 2022-03-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8161246B2 (en) | Prefetching of next physically sequential cache line after cache line that includes loaded page table entry | |
US8370575B2 (en) | Optimized software cache lookup for SIMD architectures | |
US9563568B2 (en) | Hierarchical cache structure and handling thereof | |
JP2003067357A (ja) | 不均一メモリ・アクセス(numa)データ処理システムおよびその操作方法 | |
CN112416817B (zh) | 预取方法、信息处理装置、设备以及存储介质 | |
US10684957B2 (en) | Apparatus and method for neighborhood-aware virtual to physical address translations | |
JP2011013858A (ja) | 演算処理装置およびアドレス変換方法 | |
US10579522B2 (en) | Method and device for accessing a cache memory | |
CN114238167B (zh) | 信息预取方法、处理器、电子设备 | |
EP3454219B1 (en) | An apparatus and method for efficient utilisation of an address translation cache | |
WO2023108938A1 (zh) | 解决高速缓冲存储器地址二义性问题的方法和装置 | |
JP2020523678A (ja) | 論理ディレクトリを使用したキャッシュ構造 | |
CN115292214A (zh) | 页表预测方法、存储访问操作方法、电子装置和电子设备 | |
US10754791B2 (en) | Software translation prefetch instructions | |
CN115098410A (zh) | 处理器、用于处理器的数据处理方法及电子设备 | |
CN114238176B (zh) | 处理器、用于处理器的地址翻译方法、电子设备 | |
US11977486B2 (en) | Shadow pointer directory in an inclusive hierarchical cache | |
US10691604B2 (en) | Minimizing cache latencies using set predictors | |
CN114281720B (zh) | 处理器、用于处理器的地址翻译方法、电子设备 | |
CN114218132B (zh) | 信息预取方法、处理器、电子设备 | |
CN115061955A (zh) | 处理器、电子设备、地址翻译方法以及缓存页表项方法 | |
US11494300B2 (en) | Page table walker with page table entry (PTE) physical address prediction | |
CN112416436B (zh) | 信息处理方法、信息处理装置和电子设备 | |
US11853597B2 (en) | Memory management unit, method for memory management, and information processing apparatus | |
US10977176B2 (en) | Prefetching data to reduce cache misses |
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 |