CN114281720A - 处理器、用于处理器的地址翻译方法、电子设备 - Google Patents

处理器、用于处理器的地址翻译方法、电子设备 Download PDF

Info

Publication number
CN114281720A
CN114281720A CN202111531682.5A CN202111531682A CN114281720A CN 114281720 A CN114281720 A CN 114281720A CN 202111531682 A CN202111531682 A CN 202111531682A CN 114281720 A CN114281720 A CN 114281720A
Authority
CN
China
Prior art keywords
page table
cache space
address translation
processor
level
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
CN202111531682.5A
Other languages
English (en)
Other versions
CN114281720B (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 CN202111531682.5A priority Critical patent/CN114281720B/zh
Publication of CN114281720A publication Critical patent/CN114281720A/zh
Application granted granted Critical
Publication of CN114281720B publication Critical patent/CN114281720B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

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为本公开一些实施例提供的另一种用于处理器的地址翻译方法的流程示意图;
图11为本公开一些实施例提供的一种电子设备的示意框图;
图12为本公开一些实施例提供的另一种电子设备的示意框图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例的附图,对本公开实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例是本公开的一部分实施例,而不是全部的实施例。基于所描述的本公开的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
除非另外定义,本公开使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本公开中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。同样,“一个”、“一”或者“该”等类似词语也不表示数量限制,而是表示存在至少一个。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
下面通过几个具体的实施例对本公开进行说明。为了保持本公开实施例的以下说明清楚且简明,本公开省略了已知功能和已知部件的详细说明。当本公开实施例的任一部件在一个以上的附图中出现时,该部件在每个附图中由相同或类似的参考标号表示。
在计算机操作系统处理任务时,需要将应用程序使用的虚拟地址转换为物理地址,从而基于物理地址进行内存访问,以获取数据。将虚拟地址转换为物理地址的过程被称为地址翻译(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所示,在本公开的一些实施例中,该处理器包括处理器核、第一级缓存空间、第一页表遍历器、第二页表遍历器和至少一个预设缓存空间。在一些示例中,第一页表遍历器和第二页表遍历器可以为前述的硬件页表遍历器(PTW)。这里,第一页表遍历器和第二页表遍历器可以为前述的PTW,是指其实现的地址翻译功能类似,所采用的地址翻译原理相似,而第一页表遍历器与前述的PTW的硬件结构、设置位置等可以不同,第二页表遍历器与前述的PTW的硬件结构、设置位置等也可以不同,本公开的实施例对此不作限制。第一页表遍历器为新增的硬件页表遍历器(PTW),与处理器的各级缓存空间中除第一级缓存空间外的任一级缓存空间设置在同一路径等级,第二页表遍历器可以与第一级缓存空间设置在同一路径等级。
例如,第一级缓存空间为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示出了将最后一级缓存空间作为目标预设缓存空间并且将第一页表遍历器设置在最后一级缓存空间的旁边,但这并不构成对本公开实施例的限制。在其他示例中,在将第二级缓存空间作为目标预设缓存空间的情形中,第一页表遍历器可以设置在第二级缓存空间旁边,且与第二级缓存空间通信连接。在再一些示例中,当处理器包括更多级别的缓存时,可以将除了第一级缓存空间之外的其他任意一级缓存空间作为目标预设缓存空间,由此相应调整第一页表遍历器的设置位置。需要注意的是,第一页表遍历器没有设置在处理器核内,或者,第一页表遍历器没有设置在第一级缓存空间的旁边。
图5为本公开一些实施例提供的另一种处理器的架构示意图。例如,如图5所示,在一些实施例中,进一步包括页表项缓存空间和请求缓存区,该处理器与图4所示的处理器基本相同。
例如,该处理器还包括页表项缓存空间,页表项缓存空间可以为前述的翻译后备缓冲器(TLB)。例如,页表项缓存空间可以包括针对指令的翻译后备缓冲器(ITLB)和针对数据的翻译后备缓冲器(DTLB)。例如,在一些示例中,页表项缓存空间可以设置在处理器核内部。处理器核与页表项缓存空间设置在同一路径等级,处理器核与页表项缓存空间通信连接。这里,“设置在同一路径等级”是指在芯片中的物理位置相邻或相近,且可以直接进行数据交互和传递。因此,处理器核与页表项缓存空间设置在同一路径等级可以指页表项缓存空间设置在处理器核旁边,距处理器核的距离较近,且处理器核可以与页表项缓存空间直接进行数据交互和传输。例如,“通信连接”是指可以直接传输数据/指令。又例如,页表项缓存空间可以设置在处理器核内,可以与同样设置在处理器核内的第二页表遍历器在同一路径等级,第二页表遍历器与页表项缓存空间通信连接。例如,第二页表遍历器与针对指令的翻译后备缓冲器(ITLB)和针对数据的翻译后备缓冲器(DTLB)设置在同一路径等级。
例如,页表项缓存空间、第一级缓存空间、至少一个预设缓存空间依序通信连接以形成通信链路,由此可以实现逐级向下的数据获取。例如,设置在处理器核内的第二页表遍历器需要获取数据(例如页表项数据)时,可以首先到页表项缓存空间查询,如果没有命中,则继续到第一级缓存空间查询,如果没有命中,则继续到第二级缓存空间查询,如果仍然没有命中,则到最后一级缓存空间查询。如果最后一级缓存空间还是未命中,则到内存中获取数据。
例如,页表项缓存空间储存有第一级页表的页表项数据至第M级页表的页表项数据中的至少部分页表项数据,M是大于1的整数。也即是,页表项缓存空间可以存储最近使用过的任意的页表项数据,例如PTE等。
例如,请求缓存区也可以称为页申请缓存(Page Request Buffer,PRB),请求缓存区与第一页表遍历器设置在同一路径等级。请求缓存区与第一页表遍历器通信连接,并且与目标预设缓存空间通信连接,请求缓存区例如设置在第一页表遍历器与目标预设缓存空间之间。这里,“设置在同一路径等级”是指在芯片中的物理位置相邻或相近,且可以直接进行数据交互和传递。因此,请求缓存区与第一页表遍历器设置在同一路径等级可以指请求缓存区设置在第一页表遍历器旁边,距第一页表遍历器的距离较近,且第一页表遍历器可以与请求缓存区直接进行数据交互和传输。同时,请求缓存区还可以与目标预设缓存空间直接进行数据交互和传输。
请求缓存区配置为存储处理器核发送的待处理的地址翻译请求队列。当本公开实施例提供的处理器包括多个处理器核时,第一页表遍历器无法处理多个处理器核同时发送的地址翻译请求,因此可以采用请求缓存区来存储待处理的地址翻译请求队列。第一页表遍历器可以从请求缓存区依序获取地址翻译请求并执行相应的地址翻译操作。
是否需要设置请求缓存区、请求缓存区的大小如何确定等取决于多种因素。例如,这些因素可以包括:(1)每个处理器核每时钟周期最大可以发送多少个地址翻译请求;(2)第一页表遍历器每个时钟能够处理多少个地址翻译请求;(3)处理器包含多少个处理器核;(4)在请求缓存区将满时,第一页表遍历器能否请求每个处理器核暂停发送地址翻译请求,以防止请求缓存区溢出。这些因素随具体的处理器设计而异。在一些示例中,假设第一页表遍历器每个时钟能够处理所有处理器核的地址翻译请求,在该情形下,可以不设置请求缓存区。当然,本公开的实施例不限于此,也可以在满足其他可能的条件时省略请求缓存区。
图6和图7为采用本公开实施例提供的处理器进行地址翻译的数据流示意图。例如,处理器配置为响应于地址翻译请求,基于预设规则确定第一页表遍历器和第二页表遍历器之一执行地址翻译操作。例如,处理器基于预设规则动态选择使用第一页表遍历器或第二页表遍历器来处理一个新的地址翻译请求,选择出更合适的页表遍历器来减少地址翻译的时延。例如,预设规则包括:当页表项缓存空间中不存在地址翻译所需的页表项数据,或者页表项缓存空间中对应于地址翻译所需的页表项数据的页表级大于阈值时,确定由第一页表遍历器执行地址翻译操作,否则,确定由第二页表遍历器执行该地址翻译操作。例如,阈值与CPU架构以及芯片工艺中多种因素相关,可以根据实际需求进行任意设定,本公开的实施例对此不作限制。
例如,在一些示例中,若页表项缓存空间中不存在地址翻译所需的页表项数据,则确定由第一页表遍历器执行地址翻译操作。例如,在另一些示例中,若页表项缓存空间中对应于地址翻译所需的页表项数据的页表级大于阈值,则确定由第一页表遍历器执行地址翻译操作。假设阈值为2,则当页表项缓存空间中对应于地址翻译所需的页表项数据为第3级页表项数据或第4级页表项数据时,则确定由第一页表遍历器执行地址翻译操作。需要说明的是,预设规则不限于上文描述的方式,可以采用任意适用的规则来选择第一页表遍历器和第二页表遍历器其中之一进行地址翻译操作,这可以根据实际需求而定,本公开的实施例对此不作限制。
例如,处理器核配置为响应于页表项缓存空间中不存在地址翻译所需的页表项数据,生成地址翻译请求,以及在确定由第一页表遍历器执行地址翻译操作的情形下向第一页表遍历器发送地址翻译请求。例如,当需要将虚拟地址翻译为物理地址时,如果地址翻译所需要的页表项数据在ITLB或DTLB中未命中,则需要进行地址翻译操作。此时处理器会基于预设规则确定第一页表遍历器和第二页表遍历器之一来执行地址翻译操作。当确定由第一页表遍历器执行地址翻译操作时,处理器核会向第一页表遍历器发送地址翻译请求。当确定由第二页表遍历器执行地址翻译操作时,处理器核会向第二页表遍历器发送地址翻译请求。例如,TLB的架构不限于ITLB和DTLB的方式,可以采用任意适用的架构,本公开的实施例对此不作限制。
例如,第一页表遍历器配置为,响应于第一页表遍历器被确定执行地址翻译操作,根据处理器核生成的地址翻译请求,经由目标预设缓存空间从内存获取页表项数据,并使用页表项数据进行地址翻译,以获得物理地址。
例如,地址翻译请求可以触发第一页表遍历器执行地址翻译操作。地址翻译请求可以通过多级缓存架构传递至第一页表遍历器,也可以通过处理器内部的流水线传递至第一页表遍历器,本公开实施例对地址翻译请求的传递方式不作限制。在地址翻译请求通过多级缓存架构传递至第一页表遍历器的情形中,地址翻译请求采用多级缓存架构可识别的数据读取请求类型。
例如,地址翻译操作可以是多级页表的地址翻译过程,可以参见关于图1的说明,此处不再赘述。需要注意的是,进行地址翻译的页表不限于4级,可以采用任意数量的多级页表,例如2级页表、3级页表、5级页表等,还可以采用单级页表,这可以根据实际需求而定,本公开的实施例对此不作限制。例如,页表级数越多,每次地址翻译访问内存的次数就越多,因此本公开实施例提供的处理器能够提供的性能提升空间也就越大。例如,页表的物理页面大小不受限制,可以根据实际需求而定。
地址翻译请求可以包括翻译信息。翻译信息可以包括:地址翻译请求序列号、需要翻译的虚拟地址值、最高级页表的初始地址。第一页表遍历器接收到地址翻译请求后,会被触发执行地址翻译操作,并且基于翻译信息可以获取执行地址翻译操作所需要的内容,例如虚拟地址值、最高级页表的初始地址等。在一些示例中,可以用Addr_Trans_Req表示该请求为地址翻译请求,用Addr_Trans_SN表示地址翻译请求序列号,用REG_pt表示最高级页表的初始地址(也即该进程的REG_pt值),用VA表示需要翻译的虚拟地址值。
例如,第一页表遍历器并不与内存直接通信连接,不会直接访问内存,而是通过目标预设缓存空间间接访问内存,以获得页表项数据。例如,第一页表遍历器还配置为根据地址翻译请求从目标预设缓存空间至内存的路径中以逐级查询的方式获取页表项数据。该逐级查询的方式与通过多级缓存逐级获取数据的方式类似。例如,当目标预设缓存空间为最后一级缓存空间时,第一页表遍历器通过最后一级缓存空间访问内存;当目标预设缓存空间是第二级缓存空间或其他级缓存空间时,第一页表遍历器通过目标预设缓存空间逐级向下查询访问内存。例如,第一级缓存空间至第N级缓存空间存储有第一级页表的页表项数据至第M级页表的页表项数据中的至少部分页表项数据,M是大于1的整数。
由此,第一页表遍历器读取的页表项数据可以被保存在目标预设缓存空间以及目标预设缓存空间与内存之间的缓存空间中,可以便于在下一次地址翻译过程中查询缓存空间中可能存在的页表项,如果命中,则无需再访问内存,以进一步提高地址翻译的效率,获得比内存访问更少的时延。并且,在本公开实施例中,在多核架构下,由于第一页表遍历器读取的页表项数据被保存在目标预设缓存空间中,因此缓存一致性机制可以保证第一页表遍历器获得正确的页表项内容。
例如,第一页表遍历器还配置为响应于无法获取到地址翻译所需的页表项数据,发送错误反馈指令至处理器核,以确定页表项读取错误。也即是,在处理器架构下,当某一级被访问的页表不在内存中,或者数据操作与该数据所属页表项属性不符时,会触发页面错误(Page Fault),并由操作系统来处理该异常。因此,当无法获取到地址翻译所需的页表项数据,第一页表遍历器会发送错误反馈指令至处理器核,错误反馈指令例如为中断指令或其他类型的指令,表示存在页表项读取错误,从而触发Page Fault。
例如,在一些示例中,第一页表遍历器还配置为发送数据返回指令至处理器核。当第一页表遍历器执行完地址翻译操作后,可以得到相应的物理地址,因此第一页表遍历器将数据返回指令发送至处理器核,从而将物理地址传递给处理器核。数据返回指令可以通过多级缓存架构传递至处理器核,也可以通过处理器内部的流水线传递至处理器核,本公开实施例对数据返回指令的传递方式不作限制。在数据返回指令通过多级缓存架构传递至处理器核的情形中,数据返回指令采用多级缓存架构可识别的请求响应类型。
例如,数据返回指令包括地址翻译请求序列号、内存页的物理地址及属性等。例如,在一些示例中,可以用Addr_Trans_Resp表示该信息是对地址翻译请求Addr_Trans_SN的回复(也即表示该信息是数据返回指令),用Addr_Trans_SN表示地址翻译请求序列号,用PTE表示相应的第一级页表项内容,例如包含内存页的物理地址及属性。
例如,第二页表遍历器配置为,响应于第二页表遍历器被确定执行地址翻译操作,根据地址翻译请求从内存获取页表项数据,并使用页表项数据进行地址翻译,以获得物理地址。第二页表遍历器执行地址翻译操作的过程请参考图2,在此不再赘述。
例如,在一些示例中,第二页表遍历器还配置为,响应于第一页表遍历器被确定执行地址翻译操作,接收地址翻译请求并将地址翻译请求转发至第一页表遍历器。例如,第二页表遍历器可以接收来自处理器核的地址翻译请求,然后再将地址翻译请求转发至第一页表遍历器,由此为地址翻译请求提供多样化的传输方式。第一页表遍历器接收该地址翻译请求后执行地址翻译操作,具体地址翻译操作过程请参考上述实施例,在此不再赘述。
例如,在一些示例中,第一页表遍历器和第二页表遍历器中每个可以包括多级页表缓存区(Page Walk Cache,PWT)。多级页表缓存区配置为缓存第一级页表的页表项数据至第M级页表的页表项数据中的至少部分页表项数据,M是大于1的整数。例如,多级页表缓存区是第一页表遍历器或第二页表遍历器内部的一个缓存,用于保存最近使用过的第一级页表、第二级页表项、第三级页表项、第四级页表项等任意页表项。如果一个地址翻译在多级页表缓存区中找到相应的页表项,则可以跳过更高级的页表访问,从而减少内存访问次数及地址翻译时延。需要说明的是,多级页表缓存区是针对第一页表遍历器和第二页表遍历器的微架构优化,也可以省略,这可以根据实际需求而定,本公开的实施例对此不作限制。
图6示出采用本公开实施例提供的处理器基于预设规则选择第一页表遍历器进行地址翻译操作的数据流示意图。
如图6所示,在一种可能的情况下,图1所示的4级页表结构下,假设阈值为3,如果翻译后备缓冲器(TLB)没有命中,或者在TLB中命中的页表项级数大于3,例如,命中的页表项级数为4,此时,需要访问内存3次(用于获取第1级页表项数据、第2级页表项数据、第3级页表项数据)来获得最终内存页的物理地址,然后将物理地址发送至处理器核以及TLB。处理器选择设置在目标预设缓存空间的旁边的第一页表遍历器进行地址翻译操作,可以有效缩短访问内存的时间。虽然从第一页表遍历器到TLB的传输时间有所增加(处理器核将地址翻译请求发送至第一页表遍历器所需要的时间),但是,在半导体工艺下,访问内存缩短的时间远远大于从第一页表遍历器到TLB增加的传输时间,因此地址翻译的整体时延有效缩短。相比于图3所示的情形,本公开实施例提供的处理器可以大幅度缩短页表遍历器访问内存的时间,从而降低页表遍历器访问内存及地址翻译的时延,提高地址翻译的效率。
图7示出采用本公开实施例提供的处理器基于预设规则选择第二页表遍历器进行地址翻译操作的数据流示意图。
如图7所示,在一种可能的情况下,图1所示的4级页表结构下,假设阈值为3,如果翻译后备缓冲器(TLB)命中的页表项级数为3,此时,需要访问内存2次(用于获取第1级页表项数据、第2级页表项数据)来获得最终内存页的物理地址,然后将物理地址发送至处理器核以及TLB。处理器选择设置在处理器核内的第二页表遍历器进行地址翻译操作,由于访问内存的次数较少,那么选择第二页表遍历器可以避免将地址翻译请求发送至第一页表遍历器所需要的时间,可以有效缩短整体访问内存的时间。关于这种地址翻译的方式,可以参考图3所示的实施例中PTW访问内存的过程,在此不再赘述。
在本公开的实施例中,处理器可以动态选择第一页表遍历器或第二页表遍历器来进行地址翻译,从而可以根据每次翻译的具体情况来选择最有效的翻译方式。当需要多次访问内存获取页表项数据时,选择第一页表遍历器来执行地址翻译操作,由于第一页表遍历器距内存较近,因此可以有效缩短访问时间,降低地址翻译的时延。当不需要多次访问内存时,则可以选择第二页表遍历器来执行地址翻译操作,由此兼容通常的地址翻译方式。本公开实施例提供的处理器可以有效降低地址翻译的时延,提高地址翻译的效率,进而提高系统性能,有助于提高用于新型应用场景时的整体性能。
本公开至少一个实施例还提供一种处理器,该处理器包括第一级缓存空间、第一页表遍历器、第二页表遍历器和内存。第一页表遍历器与内存设置在同一路径等级,第一页表遍历器与内存通信连接。第二页表遍历器与第一级缓存空间设置在同一路径等级,第二页表遍历器与第一级缓存空间通信连接。处理器配置为响应于地址翻译请求,基于预设规则确定第一页表遍历器和第二页表遍历器之一执行地址翻译操作。也即是,可以将图4所示的处理器中的第一页表遍历器变更为设置在内存旁边,从而可以得到该实施例提供的处理器。在该实施例中,第一页表遍历器与内存直接通信连接,可以直接访问内存,以获得页表项数据。由此,可以降低第一页表遍历器访问内存及地址翻译的时延,提高地址翻译的效率,从而提高系统性能,有助于提高用于新型应用场景时的整体性能。
需要说明的是,本公开的实施例中,处理器可以为单核架构,也可以为多核架构,本公开的实施例对此不作限制。缓存的数量以及设置方式也不受限制,这可以根据实际需求而定。处理器不限于图4至图7所示出的结构,可以包括更多或更少的组成部分,各个组成部分之间的连接方式不受限制。
本公开至少一个实施例还提供一种用于处理器的地址翻译方法。该方法可以动态选择第一页表遍历器或第二页表遍历器来进行地址翻译,可以降低页表遍历器访问内存及地址翻译的时延,提高地址翻译的效率,从而提高系统性能,有助于提高用于新型应用场景时的整体性能。
该处理器包括第一级缓存空间、第一页表遍历器、第二页表遍历器和至少一个预设缓存空间。第一级缓存空间和至少一个预设缓存空间依序通信连接以形成通信链路,至少一个预设缓存空间包括目标预设缓存空间,第一页表遍历器与目标预设缓存空间设置在同一路径等级,第一页表遍历器与目标预设缓存空间通信连接。第二页表遍历器与第一级缓存空间设置在同一路径等级,第二页表遍历器与第一级缓存空间通信连接。例如,该处理器可以为图4至图6所示的处理器。关于处理器的相关说明可参照上文内容,此处不再赘述。
如图8所示,在一些实施例中,该方法包括步骤S11。图8所示的方法例如用于处理器核侧。
步骤S11:响应于地址翻译请求,处理器基于预设规则确定第一页表遍历器和第二页表遍历器之一执行地址翻译操作。
例如,在步骤S11中,处理器基于预设规则动态选择使用第一页表遍历器或第二页表遍历器来处理一个新的地址翻译请求,选择出更合适的页表遍历器来减少地址翻译的时延。例如,预设规则包括:当页表项缓存空间中不存在地址翻译所需的页表项数据,或者页表项缓存空间中对应于地址翻译所需的页表项数据的页表级大于阈值时,确定由第一页表遍历器执行地址翻译操作,否则,确定由第二页表遍历器执行该地址翻译操作。阈值与CPU架构以及芯片工艺中多种因素相关,可以根据实际需求进行任意设定,本公开的实施例对此不作限制。
例如,在一些示例中,如图8所示,该方法还可以包括步骤S12-S13。
步骤S12:响应于页表项缓存空间中不存在地址翻译所需的页表项数据,利用处理器核生成地址翻译请求。
步骤S13:利用处理器核向请求缓存区发送待处理的地址翻译请求队列。
例如,在步骤S12中,当需要将虚拟地址翻译为物理地址时,如果在ITLB或DTLB中未命中,也即,页表项缓存空间中不存在地址翻译所需的页表项数据,则处理器核会生成地址翻译请求。
例如,在步骤S13中,当处理器包括多个处理器核时,第一页表遍历器无法处理多个处理器核同时发送的地址翻译请求,因此利用处理器核向请求缓存区发送待处理的地址翻译请求队列。第一页表遍历器可以从请求缓存区依序获取地址翻译请求并执行相应的地址翻译操作。
如图9所示,在另一些实施例中,该方法包括步骤S110。图9所示的方法例如用于第一页表遍历器侧。
步骤S110:响应于地址翻译请求,利用第一页表遍历器执行地址翻译操作。
例如,在步骤S110中,在确定由第一页表遍历器执行地址翻译操作的情形下,第一页表遍历器接收到地址翻译请求后,响应于该地址翻译请求,执行地址翻译操作。例如,利用第一页表遍历器执行地址翻译操作可以包括:第一页表遍历器经由目标预设缓存空间从内存获取页表项数据,并使用页表项数据进行地址翻译操作,以获得物理地址。例如,上述操作可以进一步包括:第一页表遍历器根据地址翻译请求从目标预设缓存空间至内存的路径中以逐级查询的方式获取页表项数据,并使用页表项数据进行翻译以获得物理地址。
例如,在一些示例中,如图9所示,该方法还可以包括步骤S120-S140。
步骤S120:利用第一页表遍历器接收处理器核生成的地址翻译请求;
步骤S130:利用第一页表遍历器发送数据返回指令至处理器核;
步骤S140:响应于无法获取到地址翻译所需的页表项数据,利用第一页表遍历器发送错误反馈指令至处理器核,以确定页表项读取错误。
例如,在步骤S120中,当页表项缓存空间中不存在地址翻译所需的页表项数据时,处理器核会生成地址翻译请求,因此可以利用第一页表遍历器接收该地址翻译请求,从而触发第一页表遍历器执行地址翻译操作。地址翻译请求可以包括翻译信息。翻译信息可以包括:地址翻译请求序列号、需要翻译的虚拟地址值、最高级页表的初始地址等。
例如,在步骤S130中,当第一页表遍历器执行完地址翻译操作后,可以得到相应的物理地址,因此第一页表遍历器将数据返回指令发送至处理器核,从而将数据返回指令携带的物理地址传递给处理器核。数据返回指令包括地址翻译请求序列号、内存页的物理地址及属性等。
例如,在步骤S140中,当无法获取到地址翻译所需的页表项数据时,第一页表遍历器会发送错误反馈指令至处理器核,错误反馈指令例如为中断指令或其他类型的指令,表示存在页表项读取错误,从而触发Page Fault,以使操作系统来处理该异常。
如图10所示,在一些实施例中,该方法包括步骤S210。图10所示的方法例如用于第二页表遍历器侧。
步骤S210:响应于地址翻译请求,利用第二页表遍历器执行地址翻译操作。
步骤S220:在确定由第二页表遍历器执行地址翻译操作的情形下,利用第二页表遍历器从内存获取页表项数据,并使用页表项数据进行地址翻译,以获得物理地址。
例如,第二页表遍历器根据地址翻译请求从内存中获取页表项数据,并使用页表项数据进行翻译以获得物理地址。
例如,在一些示例中,该方法还可以包括:
响应于第一页表遍历器被确定执行地址翻译操作,利用第二页表遍历器向第一页表遍历器发送地址翻译请求。
例如,处理器核响应于页表项缓存空间中不存在地址翻译所需的页表项数据,生成地址翻译请求,以及在确定由第一页表遍历器执行地址翻译操作的情形下,可以通过第二页表遍历器转发地址翻译请求给第一页表遍历器。例如,当需要将虚拟地址翻译为物理地址时,如果地址翻译所需要的页表项数据在ITLB或DTLB中未命中,则需要进行地址翻译操作。此时处理器会基于预设规则确定第一页表遍历器和第二页表遍历器之一来执行地址翻译操作。当确定由第一页表遍历器执行地址翻译操作时,处理器核触发第二页表遍历器转发地址翻译请求给第一页表遍历器。
例如,图8所示的方法可以为处理器中处理器核所执行的操作,图9所示的方法可以为处理器中第一页表遍历器所执行的操作。图10所示的方法可以为处理器中第二页表遍历器所执行的操作。图8和图9所示的方法彼此配合,或图8和图10所示的方法彼此配合,从而可以实现地址翻译。
需要说明的是,本公开的实施例中,地址翻译方法不限于上文描述的步骤,还可以包括更多或更少的步骤,各个步骤的执行顺序不受限制,这可以根据实际需求而定。关于该方法的详细说明,可以参考上文中关于处理器的描述,此处不再赘述。
本公开至少一个实施例还提供一种电子设备,该电子设备包括本公开任一实施例提供的处理器。该电子设备可以动态选择第一页表遍历器或第二页表遍历器来进行地址翻译,可以降低页表遍历器访问内存及地址翻译的时延,提高地址翻译的效率,从而提高系统性能,有助于提高用于新型应用场景时的整体性能。
图11为本公开一些实施例提供的一种电子设备的示意框图。如图11所示,电子设备100包括处理器110,处理器110为本公开任一实施例提供的处理器,例如为图4至图6所示的处理器。电子设备100可以用于大数据、云计算、人工智能(AI)等新型应用场景,相应地,电子设备100可以为大数据计算设备、云计算设备、人工智能设备等,本公开的实施例对此不作限制。
图12为本公开一些实施例提供的另一种电子设备的示意框图。如图12所示,该电子设备200例如适于用来实施本公开实施例提供的地址翻译方法。电子设备200可以是终端设备或服务器等。需要注意的是,图12示出的电子设备200仅仅是一个示例,其不会对本公开实施例的功能和使用范围带来任何限制。
如图12所示,电子设备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与其他电子设备进行无线或有线通信以交换数据。虽然图12示出了具有各种装置的电子设备200,但应理解的是,并不要求实施或具备所有示出的装置,电子设备200可以替代地实施或具备更多或更少的装置。
关于电子设备100/200的详细说明和技术效果,可以参考上文中关于处理器的描述,此处不再赘述。
有以下几点需要说明:
(1)本公开实施例附图只涉及到本公开实施例涉及到的结构,其他结构可参考通常设计。
(2)在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合以得到新的实施例。
以上所述,仅为本公开的具体实施方式,但本公开的保护范围并不局限于此,本公开的保护范围应以所述权利要求的保护范围为准。

Claims (33)

1.一种处理器,包括第一级缓存空间、第一页表遍历器、第二页表遍历器和至少一个预设缓存空间,
其中,所述第一级缓存空间和所述至少一个预设缓存空间依序通信连接以形成通信链路,
所述至少一个预设缓存空间包括目标预设缓存空间,所述第一页表遍历器与所述目标预设缓存空间设置在同一路径等级,所述第一页表遍历器与所述目标预设缓存空间通信连接,
所述第二页表遍历器与所述第一级缓存空间设置在同一路径等级,所述第二页表遍历器与所述第一级缓存空间通信连接,
所述处理器配置为响应于地址翻译请求,基于预设规则确定所述第一页表遍历器和所述第二页表遍历器之一执行地址翻译操作。
2.根据权利要求1所述的处理器,还包括处理器核,
其中,所述第一页表遍历器配置为,响应于所述第一页表遍历器被确定执行所述地址翻译操作,根据所述处理器核生成的所述地址翻译请求,经由所述目标预设缓存空间从内存获取页表项数据,并使用所述页表项数据进行地址翻译,以获得物理地址。
3.根据权利要求2所述的处理器,其中,所述第二页表遍历器配置为,响应于所述第二页表遍历器被确定执行所述地址翻译操作,根据所述地址翻译请求从所述内存获取所述页表项数据,并使用所述页表项数据进行地址翻译,以获得物理地址。
4.根据权利要求2所述的处理器,其中,所述第二页表遍历器还配置为,响应于所述第一页表遍历器被确定执行所述地址翻译操作,接收所述地址翻译请求并将所述地址翻译请求转发至所述第一页表遍历器。
5.根据权利要求2所述的处理器,还包括页表项缓存空间,
其中,所述处理器核与所述页表项缓存空间设置在同一路径等级,所述处理器核与所述页表项缓存空间通信连接,
所述处理器核配置为响应于所述页表项缓存空间中不存在地址翻译所需的页表项数据,生成所述地址翻译请求。
6.根据权利要求5所述的处理器,其中,所述页表项缓存空间储存有第一级页表的页表项数据至第M级页表的页表项数据中的至少部分页表项数据,M是大于1的整数。
7.根据权利要求6所述的处理器,其中,所述预设规则包括:当所述页表项缓存空间中不存在地址翻译所需的页表项数据,或者所述页表项缓存空间中对应于地址翻译所需的页表项数据的页表级大于阈值时,确定由所述第一页表遍历器执行所述地址翻译操作。
8.根据权利要求7所述的处理器,其中,所述处理器核配置为向所述第一页表遍历器发送所述地址翻译请求。
9.根据权利要求2所述的处理器,其中,所述至少一个预设缓存空间包括第二级缓存空间至第N级缓存空间,N是大于2的整数,
所述第N级缓存空间距离所述内存最近且距离所述处理器核最远,所述第二级缓存空间至所述第N级缓存空间中的任一级缓存空间作为所述目标预设缓存空间。
10.根据权利要求9所述的处理器,其中,所述第二级缓存空间是私有类型或共享类型的缓存空间,所述第二级缓存空间作为所述目标预设缓存空间。
11.根据权利要求9所述的处理器,其中,所述第N级缓存空间是共享类型的缓存空间,所述第N级缓存空间作为所述目标预设缓存空间。
12.根据权利要求9所述的处理器,其中,所述第一级缓存空间至所述第N级缓存空间存储有第一级页表的页表项数据至第M级页表的页表项数据中的至少部分页表项数据,M是大于1的整数。
13.根据权利要求12所述的处理器,其中,所述第一页表遍历器还配置为根据所述地址翻译请求从所述目标预设缓存空间至所述内存的路径中以逐级查询的方式获取所述页表项数据。
14.根据权利要求13所述的处理器,其中,所述第一页表遍历器还配置为响应于无法获取到地址翻译所需的页表项数据,发送错误反馈指令至所述处理器核,以确定页表项读取错误。
15.根据权利要求1所述的处理器,其中,所述第一页表遍历器和所述第二页表遍历器中每个包括多级页表缓存区,所述多级页表缓存区配置为缓存第一级页表的页表项数据至第M级页表的页表项数据中的至少部分页表项数据,M是大于1的整数。
16.根据权利要求2所述的处理器,还包括请求缓存区,
其中,所述请求缓存区与所述第一页表遍历器设置在同一路径等级,所述请求缓存区与所述第一页表遍历器通信连接,并且与所述目标预设缓存空间通信连接,所述请求缓存区配置为存储所述处理器核发送的待处理的地址翻译请求队列。
17.根据权利要求14所述的处理器,其中,所述地址翻译请求包括翻译信息,所述翻译信息包括:地址翻译请求序列号、需要翻译的虚拟地址值、最高级页表的初始地址。
18.根据权利要求17所述的处理器,其中,所述第一页表遍历器还配置为将数据返回指令发送至所述处理器核,
所述数据返回指令包括所述地址翻译请求序列号、内存页的物理地址及属性。
19.一种处理器,其中,包括第一级缓存空间、第一页表遍历器、第二页表遍历器和内存,
所述第一页表遍历器与所述内存设置在同一路径等级,所述第一页表遍历器与所述内存通信连接,
所述第二页表遍历器与所述第一级缓存空间设置在同一路径等级,所述第二页表遍历器与所述第一级缓存空间通信连接,
所述处理器配置为响应于地址翻译请求,基于预设规则确定所述第一页表遍历器和所述第二页表遍历器之一执行地址翻译操作。
20.一种用于处理器的地址翻译方法,其中,所述处理器包括第一级缓存空间、第一页表遍历器、第二页表遍历器和至少一个预设缓存空间,所述第一级缓存空间和所述至少一个预设缓存空间依序通信连接以形成通信链路,所述至少一个预设缓存空间包括目标预设缓存空间,所述第一页表遍历器与所述目标预设缓存空间设置在同一路径等级,所述第一页表遍历器与所述目标预设缓存空间通信连接,所述第二页表遍历器与所述第一级缓存空间设置在同一路径等级,所述第二页表遍历器与所述第一级缓存空间通信连接,
所述方法包括:
响应于地址翻译请求,所述处理器基于预设规则确定所述第一页表遍历器和所述第二页表遍历器之一执行地址翻译操作。
21.根据权利要求20所述的方法,其中,所述处理器还包括处理器核和页表项缓存空间,所述处理器核与所述页表项缓存空间设置在同一路径等级,所述处理器核与所述页表项缓存空间通信连接,
所述方法还包括:
响应于所述页表项缓存空间中不存在地址翻译所需的页表项数据,利用所述处理器核生成所述地址翻译请求。
22.根据权利要求20所述的方法,其中,所述处理器还包括请求缓存区,所述请求缓存区与所述第一页表遍历器设置在同一路径等级,所述请求缓存区与所述第一页表遍历器通信连接,并且与所述目标预设缓存空间通信连接,
所述方法还包括:
利用所述处理器核向所述请求缓存区发送待处理的地址翻译请求队列。
23.一种用于处理器的地址翻译方法,其中,所述处理器包括第一级缓存空间、第一页表遍历器、第二页表遍历器和至少一个预设缓存空间,所述第一级缓存空间和所述至少一个预设缓存空间依序通信连接以形成通信链路,所述至少一个预设缓存空间包括目标预设缓存空间,所述第一页表遍历器与所述目标预设缓存空间设置在同一路径等级,所述第一页表遍历器与所述目标预设缓存空间通信连接,所述第二页表遍历器与所述第一级缓存空间设置在同一路径等级,所述第二页表遍历器与所述第一级缓存空间通信连接,
所述方法包括:
响应于地址翻译请求,利用所述第一页表遍历器执行地址翻译操作。
24.根据权利要求23所述的方法,其中,利用所述第一页表遍历器执行地址翻译操作,包括:
所述第一页表遍历器经由所述目标预设缓存空间从内存获取页表项数据,并使用所述页表项数据进行所述地址翻译操作,以获得物理地址。
25.根据权利要求24所述的方法,其中,所述第一页表遍历器经由所述目标预设缓存空间从所述内存获取所述页表项数据,并使用所述页表项数据进行所述地址翻译操作,包括:
所述第一页表遍历器根据所述地址翻译请求从所述目标预设缓存空间至所述内存的路径中以逐级查询的方式获取所述页表项数据,并使用所述页表项数据进行翻译以获得所述物理地址。
26.根据权利要求23所述的方法,其中,所述处理器还包括处理器核,
所述方法还包括:
利用所述第一页表遍历器接收所述处理器核生成的所述地址翻译请求。
27.根据权利要求26所述的方法,还包括:
利用所述第一页表遍历器接收所述第二页表遍历器转发的所述地址翻译请求。
28.根据权利要求25所述的方法,还包括:
响应于无法获取到地址翻译所需的页表项数据,利用所述第一页表遍历器发送错误反馈指令至所述处理器核,以确定页表项读取错误。
29.根据权利要求25所述的方法,还包括:
利用所述第一页表遍历器将数据返回指令发送至所述处理器核,
其中,所述数据返回指令包括所述地址翻译请求序列号、内存页的物理地址及属性。
30.一种用于处理器的地址翻译方法,其中,所述处理器包括第一级缓存空间、第一页表遍历器、第二页表遍历器和至少一个预设缓存空间,所述第一级缓存空间和所述至少一个预设缓存空间依序通信连接以形成通信链路,所述至少一个预设缓存空间包括目标预设缓存空间,所述第一页表遍历器与所述目标预设缓存空间设置在同一路径等级,所述第一页表遍历器与所述目标预设缓存空间通信连接,所述第二页表遍历器与所述第一级缓存空间设置在同一路径等级,所述第二页表遍历器与所述第一级缓存空间通信连接,
所述方法包括:
响应于地址翻译请求,利用所述第二页表遍历器执行地址翻译操作。
31.根据权利要求30所述的方法,其中,利用所述第二页表遍历器执行地址翻译操作,包括:
利用所述第二页表遍历器从内存获取页表项数据,并使用所述页表项数据进行地址翻译,以获得物理地址。
32.根据权利要求30所述的方法,还包括:
响应于所述第一页表遍历器被确定执行所述地址翻译操作,利用所述第二页表遍历器向所述第一页表遍历器发送所述地址翻译请求。
33.一种电子设备,包括根据权利要求1~19任一项所述的处理器。
CN202111531682.5A 2021-12-14 2021-12-14 处理器、用于处理器的地址翻译方法、电子设备 Active CN114281720B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111531682.5A CN114281720B (zh) 2021-12-14 2021-12-14 处理器、用于处理器的地址翻译方法、电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111531682.5A CN114281720B (zh) 2021-12-14 2021-12-14 处理器、用于处理器的地址翻译方法、电子设备

Publications (2)

Publication Number Publication Date
CN114281720A true CN114281720A (zh) 2022-04-05
CN114281720B CN114281720B (zh) 2022-09-02

Family

ID=80872281

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111531682.5A Active CN114281720B (zh) 2021-12-14 2021-12-14 处理器、用于处理器的地址翻译方法、电子设备

Country Status (1)

Country Link
CN (1) CN114281720B (zh)

Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101326499A (zh) * 2005-10-20 2008-12-17 高通股份有限公司 更新多级翻译旁视缓冲器(tlb)字段
US20100011188A1 (en) * 2008-07-14 2010-01-14 Via Technologies, Inc. Microprocessor that performs speculative tablewalks
US20100223447A1 (en) * 2009-02-27 2010-09-02 Serebrin Benjamin C Translate and Verify Instruction for a Processor
CN104050089A (zh) * 2013-03-11 2014-09-17 三星电子株式会社 片上系统及其操作方法
CN110389911A (zh) * 2018-04-23 2019-10-29 珠海全志科技股份有限公司 一种设备内存管理单元的预取方法、装置及系统
US20190384722A1 (en) * 2018-06-13 2019-12-19 Advanced Micro Devices, Inc. Quality of service for input/output memory management unit
CN110998549A (zh) * 2017-07-31 2020-04-10 Arm有限公司 地址转换缓存
CN111552654A (zh) * 2019-02-08 2020-08-18 三星电子株式会社 对页表遍历的冗余进行检测的处理器
CN112416817A (zh) * 2020-12-02 2021-02-26 海光信息技术股份有限公司 预取方法、信息处理装置、设备以及存储介质
CN112860600A (zh) * 2019-11-28 2021-05-28 深圳市海思半导体有限公司 一种加速硬件页表遍历的方法及装置
CN113220225A (zh) * 2021-04-06 2021-08-06 浙江大学 Risc-v处理器的内存数据读写方法及装置、处理器、存储介质
US20210303478A1 (en) * 2020-03-24 2021-09-30 Arm Limited Memory management
CN113722246A (zh) * 2021-11-02 2021-11-30 超验信息科技(长沙)有限公司 处理器中物理内存保护机制的实现方法及装置

Patent Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101326499A (zh) * 2005-10-20 2008-12-17 高通股份有限公司 更新多级翻译旁视缓冲器(tlb)字段
US20100011188A1 (en) * 2008-07-14 2010-01-14 Via Technologies, Inc. Microprocessor that performs speculative tablewalks
US20100223447A1 (en) * 2009-02-27 2010-09-02 Serebrin Benjamin C Translate and Verify Instruction for a Processor
CN104050089A (zh) * 2013-03-11 2014-09-17 三星电子株式会社 片上系统及其操作方法
CN110998549A (zh) * 2017-07-31 2020-04-10 Arm有限公司 地址转换缓存
CN110389911A (zh) * 2018-04-23 2019-10-29 珠海全志科技股份有限公司 一种设备内存管理单元的预取方法、装置及系统
US20190384722A1 (en) * 2018-06-13 2019-12-19 Advanced Micro Devices, Inc. Quality of service for input/output memory management unit
CN111552654A (zh) * 2019-02-08 2020-08-18 三星电子株式会社 对页表遍历的冗余进行检测的处理器
CN112860600A (zh) * 2019-11-28 2021-05-28 深圳市海思半导体有限公司 一种加速硬件页表遍历的方法及装置
US20210303478A1 (en) * 2020-03-24 2021-09-30 Arm Limited Memory management
CN112416817A (zh) * 2020-12-02 2021-02-26 海光信息技术股份有限公司 预取方法、信息处理装置、设备以及存储介质
CN113220225A (zh) * 2021-04-06 2021-08-06 浙江大学 Risc-v处理器的内存数据读写方法及装置、处理器、存储介质
CN113722246A (zh) * 2021-11-02 2021-11-30 超验信息科技(长沙)有限公司 处理器中物理内存保护机制的实现方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
朱琛等: "MIPS VZ虚拟化环境中透明大页性能的优化", 《高技术通讯》 *

Also Published As

Publication number Publication date
CN114281720B (zh) 2022-09-02

Similar Documents

Publication Publication Date Title
US10133675B2 (en) Data processing apparatus, and a method of handling address translation within a data processing apparatus
US8370575B2 (en) Optimized software cache lookup for SIMD architectures
CN112416817B (zh) 预取方法、信息处理装置、设备以及存储介质
US9563568B2 (en) Hierarchical cache structure and handling thereof
US10579522B2 (en) Method and device for accessing a cache memory
CN114238167B (zh) 信息预取方法、处理器、电子设备
US20200065255A1 (en) Apparatus and method for neighborhood-aware virtual to physical address translations
EP3454219B1 (en) An apparatus and method for efficient utilisation of an address translation cache
US11775445B2 (en) Translation support for a virtual cache
CN112416437B (zh) 信息处理方法、信息处理装置和电子设备
WO2023108938A1 (zh) 解决高速缓冲存储器地址二义性问题的方法和装置
CN115292214A (zh) 页表预测方法、存储访问操作方法、电子装置和电子设备
US9384131B2 (en) Systems and methods for accessing cache memory
CN114925001A (zh) 处理器、页表预取方法、电子设备
KR102482516B1 (ko) 메모리 어드레스 변환
CN112416436B (zh) 信息处理方法、信息处理装置和电子设备
CN108874691B (zh) 数据预取方法和内存控制器
US10754791B2 (en) Software translation prefetch instructions
CN114281720B (zh) 处理器、用于处理器的地址翻译方法、电子设备
CN115098410A (zh) 处理器、用于处理器的数据处理方法及电子设备
CN114238176B (zh) 处理器、用于处理器的地址翻译方法、电子设备
CN114218132B (zh) 信息预取方法、处理器、电子设备
US11853597B2 (en) Memory management unit, method for memory management, and information processing apparatus
US10977176B2 (en) Prefetching data to reduce cache misses
US11157285B2 (en) Dynamic modification of instructions that do not modify the architectural state of a processor

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