翻译页表的深度预取方法、部件、微处理器及计算机设备技术

技术编号:24755982 阅读:17 留言:0更新日期:2020-07-04 09:07
本发明专利技术公开了一种翻译页表的深度预取方法、部件、微处理器及计算机设备,本发明专利技术翻译页表的深度预取方法包括在TLB命中失效时进行页表翻译,且在页表翻译过程中获得当前i级的页表项地址addr_i后,根据当前i级的页表项地址addr_i获取页表项addr_i+x,解析页表项addr_i+x获取下一级页表项的基地址;根据基地址和设定的偏移量y生成预取表项的物理地址;根据生成的物理地址从主存中获取数据作为下一级页表项的预取。本发明专利技术能够减少虚拟地址到物理地址翻译时每一级页表查找的时间,能够有效降低页表查找延迟、提高处理器性能,具有开销小、易于实现、使用灵活的优点。

Depth prefetching method, components, microprocessor and computer equipment of translation page table

【技术实现步骤摘要】
翻译页表的深度预取方法、部件、微处理器及计算机设备
本专利技术涉及处理器微体系结构设计领域,具体涉及一种翻译页表的深度预取方法、部件、微处理器及计算机设备。
技术介绍
在高性能微处理器设计中,存储问题一直是困扰处理器性能提升的瓶颈,该问题被称为“存储墙”问题。数据从主存读取到处理器流水线中通常需要几百个时钟周期。当前的处理器为了更好支持支持多个程序并发运行,多采用虚拟地址进行数据访问,而主存访问使用物理地址,所以需要一个硬件完成虚拟地址到物理地址的映射。以X86处理器为例,其地址翻译过程如图1所示,48位虚拟地址通过四级页表(第一级~第四级)查询生成物理地址。从图中可见,一次地址翻译需要4次存储访问,那么需要约上千时钟周期才能完成。当前处理器中,大多设置了一个虚拟地址到物理地址映射的缓冲,称为TLB(TranslationLookasideBuffer,地址转换后援缓冲器)。命中TLB时,虚拟地址到物理地址的映射就不用去经历四级查找,避免了耗时的存储操作。随着大数据应用的发展,当前应用的数据集越来越庞大,不命中TLB的情况越来越多,那么虚拟地址到物理地址的映射就必须进行四级页表查找,耗费上千个时钟周期,降低了程序性能。为了减少TLB不命中的情况,目前也有一些针对页表查找的预取算法,提前将需要的页表项取回。但是这些预取算法没有充分利用页表查找的规律。
技术实现思路
本专利技术要解决的技术问题:针对现有技术的上述问题,提供一种翻译页表的深度预取方法、部件、微处理器及计算机设备,本专利技术能够减少虚拟地址到物理地址翻译时每一级页表查找的时间,能够有效降低页表查找延迟、提高处理器性能,具有开销小、易于实现、使用灵活的优点。为了解决上述技术问题,本专利技术采用的技术方案为:一种翻译页表的深度预取方法,实施步骤包括:1)在地址转换后援缓冲器TLB命中失效时进行页表翻译,且在页表翻译过程中获得当前i级的页表项地址addr_i后跳转执行下一步;2)根据当前i级的页表项地址addr_i获取页表项addr_i+x,其中addr_i为当前i级的页表项地址,x为偏移量;3)解析页表项addr_i+x获取下一级页表项的基地址;4)根据基地址和设定的偏移量y生成预取表项的物理地址;5)根据生成的物理地址从主存中获取数据作为下一级页表项的预取。可选地,步骤1)中进行页表翻译的详细步骤包括:S1)初始化循环级数变量i为N,其中N为翻译页表的遍历级数;S2)从翻译页表基地址寄存器中获取翻译页表第N级的翻译页表基地址;S3)根据翻译页表基地址、虚拟地址中的偏移量生成当前i级的翻译页表项地址addr_i;S4)访问主存中当前i级的翻译页表项地址addr_i获取相应的页表项;S5)解析获得的页表项根据页表格式,解析页表项中的相应物理地址和页表属性,解析出的物理地址作为下一级翻译的翻译页表基地址;S6)将循环级数变量i的值减1,判断循环级数变量i的值是否为0,如果不为0则跳转执行步骤S3);否则,结束翻译,将最后一次执行步骤S5)解析出的物理地址合并虚拟地址的低位,形成最终翻译出的物理地址。可选地,步骤2)中的偏移量x为预设的定值。可选地,步骤2)之前还包括追踪该级页表的访问规律生成偏移量x的步骤,详细步骤包括:2.1)设置偏移量x的初始值为1;设置一组饱和计数器,每个饱和计数器为2比特;2.2)计算本次页表访问的虚拟地址和上次页表访问虚拟地址在该级页表查询的偏移量差值,将该偏移量差值作为编号,该编号索引的饱和计数器计数加1;在预取请求发生时,查询该组饱和计数器,获得饱和计数器值为3的编号最小项,该项的编号即为偏移量x的值;若没有查询到饱和计数器值为3的项,则偏移量x的值设为1;同时这组饱和计数器在特定的时间间隔内,全部清零,重新计数,此时偏移量x重新设置为初始值。可选地,步骤4)中的偏移量y为预设的定值。可选地,步骤4)之前还包括追踪该级页表的访问规律生成偏移量y的步骤,详细步骤包括:4.1)设置偏移量y的初始值为0;设置一组饱和计数器,每个饱和计数器为2比特;4.2)使用本次页表访问的虚拟地址中相应的下一级访问的偏移作为饱和计数器编号,将该编号对应的饱和计数器计数加1;在预取请求发生时,查询该组饱和计数器,获得饱和计数器值为3的编号最小项,该项的编号即为偏移量y的值;若没有查询到饱和计数器值为3的项,则偏移量y的值设为0;同时,这组饱和计数器在特定的时间间隔内,全部清零,重新计数,此时偏移量y重新设置为初始值。此外,本专利技术还提供一种翻译页表的深度预取部件,该翻译页表的深度预取部件被编程或配置以执行所述翻译页表的深度预取方法的步骤。此外,本专利技术还提供一种微处理器,该微处理器被编程或配置以执行所述翻译页表的深度预取方法的步骤。此外,本专利技术还提供一种计算机设备,该计算机设备的微处理器被编程或配置以执行所述翻译页表的深度预取方法的步骤,或该计算机设备的存储器上存储有被编程或配置以执行所述翻译页表的深度预取方法的计算机程序。此外,本专利技术还提供一种计算机可读存储介质,该计算机可读存储介质上存储有被编程或配置以执行所述翻译页表的深度预取方法的计算机程序。和现有技术相比,本专利技术具有下述优点:1、降低页表查找延迟,提高处理器性能。由于本专利技术所提的算法提前将相应的页表项从主存中取回到Cache中,将几百个周期的访问延迟变为10个周期左右的延迟,减少了页表查找的时间,提高了程序执行的性能。2、实现代价小。本专利技术所提的方法开销小,只需要在页表翻译路径上增加少量预取请求生成部件即可,其余控制和数据通路可以借用正常的页表处理通路。3、使用灵活。本专利技术所提的页表深度预取算法不影响现有的TLB预取算法,可以和这些算法叠加使用,并且该机制可方便地通过配置进行开启和关闭。附图说明图1为现有技术的虚拟地址翻译过程中的多级页表查找示意图。图2为本专利技术实施例的基本实施流程示意图。图3为本专利技术实施例与正常虚拟地址翻译多级页表关系示意图。具体实施方式如图2所示,本实施例翻译页表的深度预取方法的实施步骤包括:1)在地址转换后援缓冲器TLB命中失效时进行页表翻译,且在页表翻译过程中获得当前i级的页表项地址addr_i后跳转执行下一步;2)根据当前i级的页表项地址addr_i获取页表项addr_i+x,其中addr_i为当前i级的页表项地址,x为偏移量;3)解析页表项addr_i+x获取下一级页表项的基地址;4)根据基地址和设定的偏移量y生成预取表项的物理地址;5)根据生成的物理地址从主存中获取数据作为下一级页表项的预取。预取出的数据可以放在二级缓冲(L2Cache)中,也可以放在页表翻译中的缓冲(Cache)中。未来的页表项翻译可以在L2Cache中或者页表翻译Cach本文档来自技高网...

【技术保护点】
1.一种翻译页表的深度预取方法,其特征在于实施步骤包括:/n1)在地址转换后援缓冲器TLB命中失效时进行页表翻译,且在页表翻译过程中获得当前i级的页表项地址addr_i后跳转执行下一步;/n2)根据当前i级的页表项地址addr_i获取页表项addr_i+x,其中addr_i为当前i级的页表项地址,x为偏移量;/n3)解析页表项addr_i+x获取下一级页表项的基地址;/n4)根据基地址和设定的偏移量y生成预取表项的物理地址;/n5)根据生成的物理地址从主存中获取数据作为下一级页表项的预取。/n

【技术特征摘要】
1.一种翻译页表的深度预取方法,其特征在于实施步骤包括:
1)在地址转换后援缓冲器TLB命中失效时进行页表翻译,且在页表翻译过程中获得当前i级的页表项地址addr_i后跳转执行下一步;
2)根据当前i级的页表项地址addr_i获取页表项addr_i+x,其中addr_i为当前i级的页表项地址,x为偏移量;
3)解析页表项addr_i+x获取下一级页表项的基地址;
4)根据基地址和设定的偏移量y生成预取表项的物理地址;
5)根据生成的物理地址从主存中获取数据作为下一级页表项的预取。


2.根据权利要求1所述的翻译页表的深度预取方法,其特征在于,步骤1)中进行页表翻译的详细步骤包括:
S1)初始化循环级数变量i为N,其中N为翻译页表的遍历级数;
S2)从翻译页表基地址寄存器中获取翻译页表第N级的翻译页表基地址;
S3)根据翻译页表基地址、虚拟地址中的偏移量生成当前i级的翻译页表项地址addr_i;
S4)访问主存中当前i级的翻译页表项地址addr_i获取相应的页表项;
S5)解析获得的页表项根据页表格式,解析页表项中的相应物理地址和页表属性,解析出的物理地址作为下一级翻译的翻译页表基地址;
S6)将循环级数变量i的值减1,判断循环级数变量i的值是否为0,如果不为0则跳转执行步骤S3);否则,结束翻译,将最后一次执行步骤S5)解析出的物理地址合并虚拟地址的低位,形成最终翻译出的物理地址。


3.根据权利要求1所述的翻译页表的深度预取方法,其特征在于,步骤2)中的偏移量x为预设的定值。


4.根据权利要求1所述的翻译页表的深度预取方法,其特征在于,步骤2)之前还包括追踪该级页表的访问规律生成偏移量x的步骤,详细步骤包括:
2.1)设置偏移量x的初始值为1;设置一组饱和计数器,每个饱和计数器为2比特;
2.2)计算本次页表访问的虚拟地址和上次页表访问虚拟地址在该级页表查询的偏移量差值,将该偏移量差值作为...

【专利技术属性】
技术研发人员:施军叶晨
申请(专利权)人:超验信息科技长沙有限公司
类型:发明
国别省市:湖南;43

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1