APP下载

基于连续页面合并以及缓存的硬件载入技术

2014-08-29党倩杨婷

现代电子技术 2014年15期

党倩+杨婷

摘 要: 提出了一种基于连续页面合并以及PTE基址缓存的硬件载入技术。对硬件载入改进有两种方法,分别是:合并Main TLB中物理页号、虚拟页号均连续的两个表项,扩大了Main TLB容量,降低TLB缺失率,减少硬件载入次数;缓存硬件载入过程中第一次查询页表得到的PTE基址,有相同PTE基址的虚拟页号将不需要进行第一次页表查询,节省了一半时间。

关键词: 旁路缓冲器; 连续页面归并; 页面回收; 硬件载入; PTE基址缓存

中图分类号: TN711?34 文献标识码: A 文章编号: 1004?373X(2014)15?0150?03

Hardware loading technology based on consecutive page merging and caching

DANG Qian1, YANG Ting2

(1. Shaanxi Vocational Technical Institute, Xian 710100, China; 2. Institute of Super?large?scale Integrated Circuit design, Hangzhou 310027, China)

Abstract: A hardware loading technology based on consecutive page merging and PTE base address caching is proposed in this paper. The improvement of hardware loading has two methods: Merge two table iterms whose VPN and PPN are both consecutive in Main TLB during hardware loading, which can expand the Main TLBs capacity, reduce TLB missing rate and decrease hardware loading times; Cache the page table entry (PTE) base address getting from the first query to the page table. The VPNs whose PTE base addresses are the same will not need to access page table to get PTE base address, which can save half of the hardware loading time.

Keywords: TLB; consecutive page merging; page recycling; hardware refill; PTE base address caching

1 旁路转换单元载入技术概述

曾有研究表明TLB控制时间占普通系统运行时间的5%~10%,然而最显著的开销是在处理TLB缺失上。显示TLB缺失程序是最常见的执行原语,表明TLB确实处理可以占到总运行时间的40%。因此对处理TLB缺失的问题的研究具有重要意义。

当TLB出现缺失时,有两种处理方式,分别是硬件载入TLB和软件载入TLB。硬件载入TLB不需要清空流水线,它对流水线的干扰是相当小的。硬件载入TLB由硬件实现页表的查询、表项填入TLB操作,在进行这一系列过程时,处理器并不需要清空流水线,只需要冻结流水线,暂时不执行下一条指令即可。本文主要研究硬件载入TLB技术。

TLB prefetching技术通过硬件上的预测以及预载入翻译的方式来隐藏TLB缺失造成的时间开销。其主要思想是一个基于时效性的TLB缺失预测算法。时效性的概念是利用一个基于LRU替换算法计算出特定应用中每个被使用到的TLB表项的历史使用频繁度。

SpecTLB 针对TLB缺失的情况提供了投机的地址翻译,而不通过跟踪部分填充的大页面保留页表。当一次TLB缺失出现时,SpecTLB检查该缺失的虚拟页是否是大页面保留页表的一部分,如果是这样,缺页的物理地址可以使用大范围内保留的小页面的相对位置在该保留大页面的开始和结束物理地址之间进行插值。

2 基于连续页面合并以及缓存的硬件载入技术

针对硬件载入时间在整个TLB访问过程总时间中占有巨大比例的问题,本文提出对硬件载入改进的两种方法:

(1) 合并Main TLB中物理页号、虚拟页号均连续的两个表项,扩大了Main TLB容量,降低TLB缺失率,减少硬件载入次数;

(2) 缓存硬件载入过程中第一次查询页表的到的PTE基址,有相同PTE基址的虚拟页号将不需要进行第一次页表查询,节省了一半时间。

这两种方法分别从减少硬件载入次数和缩短单次硬件载入时间上提升了旁路转换单元的性能,同时降低了缺失率。

2.1 基于连续页面合并的硬件载入技术

为减少硬件载入次数,本文提出一种用于连续页面合并的LTLB(Large Page TLB),当TLB缺失时,进行TLB硬件载入,首先从页表中获得所需要的翻译信息,在将该信息填回MTLB之前先检查MTLB中是否有其连续页面,若有则将两个页面合并之后填入LTLB,同时将合并前原本在MTLB中的表项无效掉,使其可以在未来存放新的翻译信息。这样做也就是将LTLB作为一个页面是MTLB两倍的大页面TLB进行查询,可以部分扩大页面大小,增加第二级TLB容量,减少TLB 缺失次数。

在硬件载入到MTLB之前先检查MTLB中该表项的前后页面是否存在MTLB中,若在,则合并这两个页面存入LTLB,同时释放掉被合并的那个表项。两路组相联的MTLB中若有连续的页面,这两个页面一定出现在组地址连续的几个表项中,因此只需要根据要填入的表项的虚拟页号(VPN)最低位选择跟组地址减1或是组地址加1的两个表项进行比较。当Micro TLB命中,直接返回物理地址。当Micro TLB缺失,则同时查找MTLB和LTLB。若LTLB命中或者MTLB命中则可直接得到物理地址;若二者都缺失则需要进行硬件载入;在该机制下不会出现二者都命中的情况,一旦出现属于硬件错误。若要进行硬件载入到MTLB,首先根据虚拟页号找到要填的表项,查看该表项附近是否有连续页面,若有,则将两个页面合并放入LTLB,并将原MTLB中的表项置为空,若没有,则直接填入。

如果要进行合并检查,则先根据VPN的最低位判定奇偶页面,若是奇页面,那么检查是否跟前面一组中的两个表项虚拟页面、物理页面都连续;若是偶页面,那么检查是否跟后面一组中的两个表项虚拟页面、物理页面都连续。如果有连续页面则进行合并后再填入LTLB,否则不合并直接填入MTLB。

2.2 PTE基址缓存的硬件载入技术

对于两级页表,需要进行两次查找,硬件载入时查找页表是非常耗时、影响性能的。首先将MPGD寄存器中的14~31位PBA与虚拟地址中的20~31位拼起来组成30位地址,再左移两位得到32位地址。用这个地址查询页目录表,将得到表项的10~31位与虚拟地址中的12~19位拼起来组成30位地址,再左移两位得到32位地址才是页表表项的地址。用这个地址查询页表,将得到表项的12~31位物理页号与虚拟地址的0~11位页内偏移拼起来组成32位地址,这个地址就是转换好的物理地址。

针对两级页表查询耗时的缺点,本文提出PTE基址缓存的硬件载入技术,就是在第一次查询得到页目录表表项地址之前先查找一个PTE基址缓存表PTLB(PTE Base Address TLB),若命中则直接得到页目录表表象地址,而不需要再进行第二次查找。这可以大大减少页表查询的时间。

其中PTLB每个表项含两部分,分别是12位的VPN1和22位的PTE基址。四个表项同时与所要查找的虚拟地址中的VPN1进行比较,若命中,则不许查找页目录表,直接得到PTE基址,与虚拟地址中的VPN2拼接作为页表表项地址,得到所需要的页表表项。

2.3 实验与分析

本文选取EEMBC中的部分多媒体应用以及网络应用测试基准程序,以32位高性能嵌入式处理CK510及其平台为基础,在原有两级TLB 的基础上设计实现连续页面合并以及缓存及其控制逻辑进行实验。

表1是5种不同TLB结构的缺失率比较,这5种TLB均是两级结构,第一级相同,不同在第二级的结构。如图1所示,这5种TLB的第二级分别是:

图1 各种TLB结构的硬件载入周期比较

① 2路组相联32表项的MTLB;

② 4路组相联32表项的MTLB;

③ 全相联32表项的MTLB;

④ 2路组相联32表项MTLB与4表项RTLB;

⑤ 2路组相联32表项MTLB与4表项LTLB及4表项PTLB。

由图1和表1可以看到,应用了本文提出的硬件载入技术的TLB在硬件载入总周期上相比传统的TLB结构有明显缩减。第2种4路组相联的TLB结构是最差的,毫无疑问这是路太多导致的。本文提出的TLB结构也是基本都优于其他TLB结构的。这两个测试基准的共同特点就是本身硬件载入的次数并不多,这可能是由于程序本身比较小、程序中所用到的数据量也比较少,因此在本身硬件载入次数不多的情况下,上文的方法效果不会太好,并且还要消耗非常多的硬件资源。

3 结 语

本文首先对旁路转换单元载入技术做了介绍。然后对提出的基于连续页面合并一级缓存的硬件载入技术进行了详细说明。一是连续页面合并,当TLB缺失时,进行TLB硬件载入,首先从页表中获得所需要的翻译信息,在将该信息填回MTLB之前先检查MTLB中是否有其连续页面,若有则将两个页面合并并填入LTLB,同时将合并前原本在MTLB中的表项无效掉,使其可以在未来存放新的翻译信息。二是将PTE机制进行缓存,在第一次查询得到页目录表表项地址之前先查找一个PTE基址缓存表PTLB,若命中则直接得到页目录表表象地址,而不需要再进行第二次查找。最后通过实验证明本文提出的基于连续页面合并以及缓存的硬件载入技术能有效降低访问时间。

参考文献

[1] BARR T W, COX A L, RIXNER S. SpecTLB: a mechanism for speculative address translation [C]// 2011 38th Annual International Symposium on Computer Architecture (ISCA). [S.l.]: IEEE, 2011: 307?317.

[2] 武淑丽,孟建熠,王荣华,等.基于预测缓存的低功耗TLB快速访问机制[J].计算机应用研究,2011,28(8):2964?2966.

[3] 葛海通.32位高性能嵌入式CPU及平台研发[D].杭州:浙江大学,2009.

[4] SAULSBURY A, DAHLGREN F, STENSTR?M P. Recency?based TLB preloading [J]. ACM SIGARCH Computer Architecture News, 2000, 28(2): 117?127.

[5] 何军,张晓东,郭勇.一种TLB结构优化方法[J]. Computer Engineering,2012,38(21):56?58.

[6] 崔更申,黄廷辉,王力.一种通用的嵌入式操作系统内存保护设计[J].计算机工程,2005(24):34?36.

如果要进行合并检查,则先根据VPN的最低位判定奇偶页面,若是奇页面,那么检查是否跟前面一组中的两个表项虚拟页面、物理页面都连续;若是偶页面,那么检查是否跟后面一组中的两个表项虚拟页面、物理页面都连续。如果有连续页面则进行合并后再填入LTLB,否则不合并直接填入MTLB。

2.2 PTE基址缓存的硬件载入技术

对于两级页表,需要进行两次查找,硬件载入时查找页表是非常耗时、影响性能的。首先将MPGD寄存器中的14~31位PBA与虚拟地址中的20~31位拼起来组成30位地址,再左移两位得到32位地址。用这个地址查询页目录表,将得到表项的10~31位与虚拟地址中的12~19位拼起来组成30位地址,再左移两位得到32位地址才是页表表项的地址。用这个地址查询页表,将得到表项的12~31位物理页号与虚拟地址的0~11位页内偏移拼起来组成32位地址,这个地址就是转换好的物理地址。

针对两级页表查询耗时的缺点,本文提出PTE基址缓存的硬件载入技术,就是在第一次查询得到页目录表表项地址之前先查找一个PTE基址缓存表PTLB(PTE Base Address TLB),若命中则直接得到页目录表表象地址,而不需要再进行第二次查找。这可以大大减少页表查询的时间。

其中PTLB每个表项含两部分,分别是12位的VPN1和22位的PTE基址。四个表项同时与所要查找的虚拟地址中的VPN1进行比较,若命中,则不许查找页目录表,直接得到PTE基址,与虚拟地址中的VPN2拼接作为页表表项地址,得到所需要的页表表项。

2.3 实验与分析

本文选取EEMBC中的部分多媒体应用以及网络应用测试基准程序,以32位高性能嵌入式处理CK510及其平台为基础,在原有两级TLB 的基础上设计实现连续页面合并以及缓存及其控制逻辑进行实验。

表1是5种不同TLB结构的缺失率比较,这5种TLB均是两级结构,第一级相同,不同在第二级的结构。如图1所示,这5种TLB的第二级分别是:

图1 各种TLB结构的硬件载入周期比较

① 2路组相联32表项的MTLB;

② 4路组相联32表项的MTLB;

③ 全相联32表项的MTLB;

④ 2路组相联32表项MTLB与4表项RTLB;

⑤ 2路组相联32表项MTLB与4表项LTLB及4表项PTLB。

由图1和表1可以看到,应用了本文提出的硬件载入技术的TLB在硬件载入总周期上相比传统的TLB结构有明显缩减。第2种4路组相联的TLB结构是最差的,毫无疑问这是路太多导致的。本文提出的TLB结构也是基本都优于其他TLB结构的。这两个测试基准的共同特点就是本身硬件载入的次数并不多,这可能是由于程序本身比较小、程序中所用到的数据量也比较少,因此在本身硬件载入次数不多的情况下,上文的方法效果不会太好,并且还要消耗非常多的硬件资源。

3 结 语

本文首先对旁路转换单元载入技术做了介绍。然后对提出的基于连续页面合并一级缓存的硬件载入技术进行了详细说明。一是连续页面合并,当TLB缺失时,进行TLB硬件载入,首先从页表中获得所需要的翻译信息,在将该信息填回MTLB之前先检查MTLB中是否有其连续页面,若有则将两个页面合并并填入LTLB,同时将合并前原本在MTLB中的表项无效掉,使其可以在未来存放新的翻译信息。二是将PTE机制进行缓存,在第一次查询得到页目录表表项地址之前先查找一个PTE基址缓存表PTLB,若命中则直接得到页目录表表象地址,而不需要再进行第二次查找。最后通过实验证明本文提出的基于连续页面合并以及缓存的硬件载入技术能有效降低访问时间。

参考文献

[1] BARR T W, COX A L, RIXNER S. SpecTLB: a mechanism for speculative address translation [C]// 2011 38th Annual International Symposium on Computer Architecture (ISCA). [S.l.]: IEEE, 2011: 307?317.

[2] 武淑丽,孟建熠,王荣华,等.基于预测缓存的低功耗TLB快速访问机制[J].计算机应用研究,2011,28(8):2964?2966.

[3] 葛海通.32位高性能嵌入式CPU及平台研发[D].杭州:浙江大学,2009.

[4] SAULSBURY A, DAHLGREN F, STENSTR?M P. Recency?based TLB preloading [J]. ACM SIGARCH Computer Architecture News, 2000, 28(2): 117?127.

[5] 何军,张晓东,郭勇.一种TLB结构优化方法[J]. Computer Engineering,2012,38(21):56?58.

[6] 崔更申,黄廷辉,王力.一种通用的嵌入式操作系统内存保护设计[J].计算机工程,2005(24):34?36.

如果要进行合并检查,则先根据VPN的最低位判定奇偶页面,若是奇页面,那么检查是否跟前面一组中的两个表项虚拟页面、物理页面都连续;若是偶页面,那么检查是否跟后面一组中的两个表项虚拟页面、物理页面都连续。如果有连续页面则进行合并后再填入LTLB,否则不合并直接填入MTLB。

2.2 PTE基址缓存的硬件载入技术

对于两级页表,需要进行两次查找,硬件载入时查找页表是非常耗时、影响性能的。首先将MPGD寄存器中的14~31位PBA与虚拟地址中的20~31位拼起来组成30位地址,再左移两位得到32位地址。用这个地址查询页目录表,将得到表项的10~31位与虚拟地址中的12~19位拼起来组成30位地址,再左移两位得到32位地址才是页表表项的地址。用这个地址查询页表,将得到表项的12~31位物理页号与虚拟地址的0~11位页内偏移拼起来组成32位地址,这个地址就是转换好的物理地址。

针对两级页表查询耗时的缺点,本文提出PTE基址缓存的硬件载入技术,就是在第一次查询得到页目录表表项地址之前先查找一个PTE基址缓存表PTLB(PTE Base Address TLB),若命中则直接得到页目录表表象地址,而不需要再进行第二次查找。这可以大大减少页表查询的时间。

其中PTLB每个表项含两部分,分别是12位的VPN1和22位的PTE基址。四个表项同时与所要查找的虚拟地址中的VPN1进行比较,若命中,则不许查找页目录表,直接得到PTE基址,与虚拟地址中的VPN2拼接作为页表表项地址,得到所需要的页表表项。

2.3 实验与分析

本文选取EEMBC中的部分多媒体应用以及网络应用测试基准程序,以32位高性能嵌入式处理CK510及其平台为基础,在原有两级TLB 的基础上设计实现连续页面合并以及缓存及其控制逻辑进行实验。

表1是5种不同TLB结构的缺失率比较,这5种TLB均是两级结构,第一级相同,不同在第二级的结构。如图1所示,这5种TLB的第二级分别是:

图1 各种TLB结构的硬件载入周期比较

① 2路组相联32表项的MTLB;

② 4路组相联32表项的MTLB;

③ 全相联32表项的MTLB;

④ 2路组相联32表项MTLB与4表项RTLB;

⑤ 2路组相联32表项MTLB与4表项LTLB及4表项PTLB。

由图1和表1可以看到,应用了本文提出的硬件载入技术的TLB在硬件载入总周期上相比传统的TLB结构有明显缩减。第2种4路组相联的TLB结构是最差的,毫无疑问这是路太多导致的。本文提出的TLB结构也是基本都优于其他TLB结构的。这两个测试基准的共同特点就是本身硬件载入的次数并不多,这可能是由于程序本身比较小、程序中所用到的数据量也比较少,因此在本身硬件载入次数不多的情况下,上文的方法效果不会太好,并且还要消耗非常多的硬件资源。

3 结 语

本文首先对旁路转换单元载入技术做了介绍。然后对提出的基于连续页面合并一级缓存的硬件载入技术进行了详细说明。一是连续页面合并,当TLB缺失时,进行TLB硬件载入,首先从页表中获得所需要的翻译信息,在将该信息填回MTLB之前先检查MTLB中是否有其连续页面,若有则将两个页面合并并填入LTLB,同时将合并前原本在MTLB中的表项无效掉,使其可以在未来存放新的翻译信息。二是将PTE机制进行缓存,在第一次查询得到页目录表表项地址之前先查找一个PTE基址缓存表PTLB,若命中则直接得到页目录表表象地址,而不需要再进行第二次查找。最后通过实验证明本文提出的基于连续页面合并以及缓存的硬件载入技术能有效降低访问时间。

参考文献

[1] BARR T W, COX A L, RIXNER S. SpecTLB: a mechanism for speculative address translation [C]// 2011 38th Annual International Symposium on Computer Architecture (ISCA). [S.l.]: IEEE, 2011: 307?317.

[2] 武淑丽,孟建熠,王荣华,等.基于预测缓存的低功耗TLB快速访问机制[J].计算机应用研究,2011,28(8):2964?2966.

[3] 葛海通.32位高性能嵌入式CPU及平台研发[D].杭州:浙江大学,2009.

[4] SAULSBURY A, DAHLGREN F, STENSTR?M P. Recency?based TLB preloading [J]. ACM SIGARCH Computer Architecture News, 2000, 28(2): 117?127.

[5] 何军,张晓东,郭勇.一种TLB结构优化方法[J]. Computer Engineering,2012,38(21):56?58.

[6] 崔更申,黄廷辉,王力.一种通用的嵌入式操作系统内存保护设计[J].计算机工程,2005(24):34?36.