• 四川郎酒股份有限公司获第十二届人民企业社会责任奖年度环保奖 2019-05-13
  • 银保监会新规剑指大企业多头融资和过度融资 2019-05-12
  • 韩国再提4国联合申办世界杯 中国网友无视:我们自己来 2019-05-11
  • 中国人为什么一定要买房? 2019-05-11
  • 十九大精神进校园:风正扬帆当有为 勇做时代弄潮儿 2019-05-10
  • 粽叶飘香幸福邻里——廊坊市举办“我们的节日·端午”主题活动 2019-05-09
  • 太原设禁鸣路段 设备在测试中 2019-05-09
  • 拜耳医药保健有限公司获第十二届人民企业社会责任奖年度企业奖 2019-05-08
  • “港独”没出路!“梁天琦们”该醒醒了 2019-05-07
  • 陈卫平:中国文化内涵包含三方面 文化复兴表现在其中 2019-05-06
  • 人民日报客户端辟谣:“合成军装照”产品请放心使用 2019-05-05
  • 【十九大·理论新视野】为什么要“建设现代化经济体系”?   2019-05-04
  • 聚焦2017年乌鲁木齐市老城区改造提升工程 2019-05-04
  • 【专家谈】上合组织——构建区域命运共同体的有力实践者 2019-05-03
  • 【华商侃车NO.192】 亲!楼市火爆,别忘了买车位啊! 2019-05-03
    • / 33
    • 下载费用:30 金币  

    重庆时时彩不出: 一种跨页预取方法、装置及系统.pdf

    关 键 词:
    一种 跨页预取 方法 装置 系统
      专利查询网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    摘要
    申请专利号:

    CN201310159064.1

    申请日:

    2013.05.02

    公开号:

    CN104133780A

    公开日:

    2014.11.05

    当前法律状态:

    授权

    有效性:

    有权

    法律详情: 授权|||实质审查的生效IPC(主分类):G06F 12/08申请日:20130502|||公开
    IPC分类号: G06F12/08 主分类号: G06F12/08
    申请人: 华为技术有限公司; 中国科学院计算技术研究所
    发明人: 张立新; 张柳航; 侯锐; 张科
    地址: 518129 广东省深圳市龙岗区坂田华为总部办公楼
    优先权:
    专利代理机构: 北京中博世达专利商标代理有限公司 11274 代理人: 申健
    PDF完整版下载: PDF下载
    法律状态
    申请(专利)号:

    CN201310159064.1

    授权公告号:

    ||||||

    法律状态公告日:

    2017.04.05|||2014.12.10|||2014.11.05

    法律状态类型:

    授权|||实质审查的生效|||公开

    摘要

    本发明实施例提供一种跨页预取方法、装置及系统,能够提高预取设备的预取命中率,进而使得访问内存的效率提高。其中,所述方法包括:接收高速缓存寄存器发送的物理地址缺失的指示消息,所述指示消息携带被映射的第一物理地址、所述第一物理地址所属的第一物理页的连续信息;根据所述第一物理地址和预取设备中存储的步长,获取预取地址;若所述预取地址所属的物理页与所述第一物理页的页号不同,且根据所述第一物理页的连续信息确定所述第一物理页连续,预取所述预取地址中的数据。本发明适用于计算机领域。

    权利要求书

    权利要求书
    1.  一种跨页预取方法,其特征在于,所述方法包括:
    接收高速缓冲寄存器发送的物理地址缺失的指示消息,所述指示消息携带被映射的第一物理地址、所述第一物理地址所属的第一物理页的连续信息,其中,所述第一物理页的连续信息用于表示第一虚拟页映射的物理页和与所述第一虚拟页连续的下一虚拟页映射的物理页是否连续,所述第一虚拟页包含所述第一物理地址映射的第一虚拟地址;
    根据所述第一物理地址和预取设备中存储的步长,获取预取地址;
    若所述预取地址所属的物理页与所述第一物理页的页号不同,且根据所述第一物理页的连续信息确定所述第一物理页连续,则
    预取所述预取地址中的数据。

    2.  根据权利要求1所述的方法,其特征在于,在所述接收高速缓存寄存器发送的物理地址缺失的指示消息之后,所述方法还包括:
    将所述指示消息携带的所述第一物理地址所属的第一物理页的连续信息存储在预取信息表中第一物理地址对应的表项中,其中,所述预取信息表存储在所述预取设备中。

    3.  根据权利要求1所述的方法,其特征在于,在所述根据所述第一物理地址和预取设备中存储的步长,获取预取地址之前,所述方法还包括:
    根据压缩算法和所述第一物理地址,获取所述第一物理地址的第一索引信息;
    若预取信息表中第一索引信息对应的表项中包含的物理页的页号与所述第一物理页的页号匹配,判断所述预取设备的预取机制是否训练完成,其中,所述预取信息表存储在所述预取设备中;
    若所述预取机制训练完成,执行获取预取地址的步骤;
    若预取信息表中第一索引信息对应的表项中包含的物理页的页号与所述第一物理页的页号不匹配,将所述第一物理页的页号、所述第一物理页的连续信息存储在所述预取信息表中第一索引信息对应的表项中。

    4.  根据权利要求3所述的方法,其特征在于,所述第一物理地址的第一索引信息具体包括下列信息中的至少之一:
    所述第一物理地址所属的第一物理页的页号、
    所述第一物理地址所属的第一物理页的页号的压缩值、
    所述第一物理地址所属的第一物理页的页号的哈希值。

    5.  一种跨页预取方法,其特征在于,所述方法包括:
    接收申请内存空间的第一指示消息,其中,所述第一指示消息携带所述内存空间的容量信息;
    根据所述内存空间的容量信息,分配物理内存空间和虚拟内存空间;
    建立所述虚拟内存空间与所述物理内存空间的映射关系,其中,所述映射关系中包含所述虚拟内存空间包括的第一虚拟地址对应的被映射的第一物理地址所属的第一物理页的页号、所述第一物理页的连续信息,其中,所述第一物理页的连续信息用于表示第一虚拟页映射的物理页和与所述第一虚拟页连续的下一虚拟页映射的物理页是否连续,所述第一虚拟页包含所述第一物理地址映射的第一虚拟地址;
    发送所述映射关系至存储器,以使得所述存储器存储所述映射关系。

    6.  一种跨页预取方法,其特征在于,所述方法包括:
    发送第二指示消息给存储器,其中,所述第二指示消息携带第一虚拟地址,以使得所述存储器根据所述第一虚拟地址,发送所述第一虚拟地址对应的映射关系给所述旁路转换缓冲器TLB,所述映射关系中包含所述第一虚拟地址对应的被映射的第一物理地址所属的第一物理页的页号、所述第一物理页的连续信息,其中,所述第一物理页的连续信息用于表示第一虚拟页映射的物理页和与所述第一虚拟页连续的下一虚拟页映射的物理页是否连续,所述第一虚拟页包含所述第一物理地址映射的第一虚拟地址;
    接收所述存储器发送的所述映射关系;
    根据所述映射关系,获取所述第一虚拟地址对应的第一物理地址;
    发送所述第一物理地址、所述第一物理地址所属的第一物理页的连续信息至高速缓冲寄存器。

    7.  一种跨页预取方法,其特征在于,所述方法包括:
    接收旁路转换缓冲器TLB发送的第一物理地址、所述第一物理地址所属的第一物理页的连续信息,其中,所述第一物理页的连续信息用于表示第一虚拟页映射的物理页和与所述第一虚拟页连续的下一虚拟页映射的物理页是否连续,所述第一虚拟页包含所述第一物理地址映射的第一虚拟地址;
    若高速缓冲寄存器未存储所述第一物理地址的数据,发送所述第一物理地址至存储器,以使得处理器从所述存储器获取所述第一物理地址的数据;
    发送物理地址缺失的指示消息至预取设备,所述指示消息携带所述第一物理地址、所述第一物理地址所属的第一物理页的连续信息。

    8.  一种预取设备,其特征在于,所述预取设备包括接收单元、获取单元、预取单元;
    所述接收单元,用于接收高速缓冲寄存器发送的物理地址缺失的指示消息,所述指示消息携带被映射的第一物理地址、所述第一物理地址所属的第一物理页的连续信息,其中,所述第一物理页的连续信息用于表示第一虚拟页映射的物理页和与所述第一虚拟页连续的下一虚拟页映射的物理页是否连续,所述第一虚拟页包含所述第一物理地址映射的第一虚拟地址;
    所述获取单元,用于根据所述第一物理地址和预取设备中存储的步长,获取预取地址;
    所述预取单元,用于若所述预取地址所属的物理页与所述第一物理页的页号不同,且根据所述第一物理页的连续信息确定所述第一物理页连续,则
    预取所述预取地址中的数据。

    9.  根据权利要求8所述的预取设备,其特征在于,所述预取设备还包括存储单元;
    所述存储单元,用于在所述接收单元接收高速缓存寄存器发送的物理地址缺失的指示消息之后,将所述指示消息携带的所述第一物理地址所属的第一物理页的连续信息存储在预取信息表中第一物理地址对应的表项中,其中,所述预取信息表存储在所述预取设备中。

    10.  根据权利要求8所述的预取设备,其特征在于,所述预取设备还包括判断单元、执行单元、存储单元;
    所述获取单元,用于在所述根据所述第一物理地址和预取设备中存储的步长,获取预取地址之前,根据压缩算法和所述第一物理地址,获取所述第一物理地址的第一索引信息;
    所述判断单元,用于若预取信息表中第一索引信息对应的表项中包含的物理页的页号与所述第一物理页的页号匹配,判断所述预取设备的预取机制是否训练完成,其中,所述预取信息表存储在所述预取 设备中;
    所述执行单元,用于若所述预取机制训练完成,执行获取预取地址的步骤;
    所述存储单元,用于若预取信息表中第一索引信息对应的表项中包含的物理页的页号与所述第一物理页的页号不匹配,将所述第一物理页的页号、所述第一物理页的连续信息存储在所述预取信息表中第一索引信息对应的表项中。

    11.  根据权利要求10所述的预取设备,其特征在于,所述第一物理地址的第一索引信息具体包括下列信息中的至少之一:
    所述第一物理地址所属的第一物理页的页号、
    所述第一物理地址所属的第一物理页的页号的压缩值、
    所述第一物理地址所属的第一物理页的页号的哈希值。

    12.  一种处理器,其特征在于,所述处理器包括接收单元、分配单元、建立单元、发送单元;
    所述接收单元,用于接收申请内存空间的第一指示消息,其中,所述第一指示消息携带所述内存空间的容量信息;
    所述分配单元,用于根据所述内存空间的容量信息,分配物理内存空间和虚拟内存空间;
    所述建立单元,用于建立所述虚拟内存空间与所述物理内存空间的映射关系,其中,所述映射关系中包含所述虚拟内存空间包括的第一虚拟地址对应的被映射的第一物理地址所属的第一物理页的页号、所述第一物理页的连续信息,其中,所述第一物理页的连续信息用于表示第一虚拟页映射的物理页和与所述第一虚拟页连续的下一虚拟页映射的物理页是否连续,所述第一虚拟页包含所述第一物理地址映射的第一虚拟地址;
    所述发送单元,用于发送所述映射关系至存储器,以使得所述存储器存储所述映射关系。

    13.  一种旁路转换缓冲器TLB,其特征在于,所述TLB包括第一发送单元、接收单元、获取单元、第二发送单元;
    所述第一发送单元,用于发送第二指示消息给存储器,其中,所述第二指示消息携带第一虚拟地址,以使得所述存储器根据所述第一虚拟地址,发送所述第一虚拟地址对应的映射关系给所述旁路转换缓冲器TLB,所述映射关系中包含所述第一虚拟地址对应的被映射的第一 物理地址所属的第一物理页的页号、所述第一物理页的连续信息,其中,所述第一物理页的连续信息用于表示第一虚拟页映射的物理页和与所述第一虚拟页连续的下一虚拟页映射的物理页是否连续,所述第一虚拟页包含所述第一物理地址映射的第一虚拟地址;
    所述接收单元,用于接收所述存储器发送的所述映射关系;
    所述获取单元,用于根据所述映射关系,获取所述第一虚拟地址对应的第一物理地址;
    所述第二发送单元,用于发送所述第一物理地址、所述第一物理地址所属的第一物理页的连续信息至高速缓冲寄存器。

    14.  一种高速缓冲寄存器,其特征在于,所述高速缓冲寄存器包括接收单元、第一发送单元、第二发送单元;
    所述接收单元,用于接收旁路转换缓冲器TLB发送的第一物理地址、所述第一物理地址所属的第一物理页的连续信息,其中,所述第一物理页的连续信息用于表示第一虚拟页映射的物理页和与所述第一虚拟页连续的下一虚拟页映射的物理页是否连续,所述第一虚拟页包含所述第一物理地址映射的第一虚拟地址;
    所述第一发送单元,用于若高速缓冲寄存器未存储所述第一物理地址的数据,发送所述第一物理地址至存储器,以使得处理器从所述存储器获取所述第一物理地址的数据;
    所述第二发送单元,用于发送物理地址缺失的指示消息至预取设备,所述指示消息携带所述第一物理地址、所述第一物理地址所属的第一物理页的连续信息。

    15.  一种跨页预取系统,其特征在于,所述跨页预取系统包括存储器、权利要求8-11任一项所述的预取设备、权利要求12所述的处理器以及权利要求13所述的旁路转换缓冲器TLB、权利要求14所述的高速缓冲寄存器。

    说明书

    说明书一种跨页预取方法、装置及系统
    技术领域
    本发明涉及计算机领域,尤其涉及一种跨页预取方法、装置及系统。
    背景技术
    随着时代的发展,CPU(Central Processing Unit,中央处理器)和内存的性能差异越来越多,很多技术被开发出来以试图减小访问内存所带来的延迟,比如使用流水线,多线程等等,其中数据预取也是其中的一个技术。
    数据预取是在处理器访问内存前,将后续需要的数据A提前从内存中取出来存储到Cache(高速缓冲寄存器)中的一种方法,这样当CPU访问A时,因为A已经在Cache中,所以可以直接进行访问,减少了CPU访问内存查找A所带来的延迟。
    应用程序在执行过程中调用的指令或数据中使用的地址都是虚拟地址。为了能够从内存中访问对应的指令或数据,该虚拟地址需要映射为对应的物理地址。但是,虚拟地址和物理地址转换的过程中,连续的虚拟页可能被映射到连续的物理页,也可能被映射到不连续的物理页。
    现有的预取设备在判断出需要跨页预取时,便停止预取,这样便会阻止连续的虚拟页被映射到不连续的物理时跨页预取无效的情况。但是实际上,有50%-70%的虚拟页映射的物理页实际上是连续的,即确定的预取地址是有效的?;谙钟屑际醯姆椒?,在阻止跨页预取无效时,同时会阻止跨页预取有效的情况,导致预取设备的预取命中率低,进而会使得访问内存的效率降低。
    发明内容
    本发明的实施例提供一种跨页预取方法、装置及系统,能够提高预取设备的预取命中率,进而使得访问内存的效率提高。
    为达到上述目的,本发明的实施例采用如下技术方案:
    第一方面,提供一种跨页预取方法,所述方法包括:
    接收高速缓冲寄存器发送的物理地址缺失的指示消息,所述指示 消息携带被映射的第一物理地址、所述第一物理地址所属的第一物理页的连续信息,其中,所述第一物理页的连续信息用于表示第一虚拟页映射的物理页和与所述第一虚拟页连续的下一虚拟页映射的物理页是否连续,所述第一虚拟页包含所述第一物理地址映射的第一虚拟地址;
    根据所述第一物理地址和预取设备中存储的步长,获取预取地址;
    若所述预取地址所属的物理页与所述第一物理页的页号不同,且根据所述第一物理页的连续信息确定所述第一物理页连续,则
    预取所述预取地址中的数据。
    在第一种可能的实现方式中,根据所述第一方面,在所述接收高速缓存寄存器发送的物理地址缺失的指示消息之后,所述方法还包括:
    将所述指示消息携带的所述第一物理地址所属的第一物理页的连续信息存储在预取信息表中第一物理地址对应的表项中,其中,所述预取信息表存储在所述预取设备中。
    在第二种可能的实现方式中,根据所述第一方面,在所述根据所述第一物理地址和预取设备中存储的步长,获取预取地址之前,所述方法还包括:
    根据压缩算法和所述第一物理地址,获取所述第一物理地址的第一索引信息;
    若预取信息表中第一索引信息对应的表项中包含的物理页的页号与所述第一物理页的页号匹配,判断所述预取设备的预取机制是否训练完成,其中,所述预取信息表存储在所述预取设备中;
    若所述预取机制训练完成,执行获取预取地址的步骤;
    若预取信息表中第一索引信息对应的表项中包含的物理页的页号与所述第一物理页的页号不匹配,将所述第一物理页的页号、所述第一物理页的连续信息存储在所述预取信息表中第一索引信息对应的表项中。
    在第三种可能的实现方式中,根据所述第二种可能的实现方式,所述第一物理地址的第一索引信息具体包括下列信息中的至少之一:
    所述第一物理地址所属的第一物理页的页号、
    所述第一物理地址所属的第一物理页的页号的压缩值、
    所述第一物理地址所属的第一物理页的页号的哈希值。
    第二方面,提供了一种跨页预取方法,所述方法包括:
    接收申请内存空间的第一指示消息,其中,所述第一指示消息携带所述内存空间的容量信息;
    根据所述内存空间的容量信息,分配物理内存空间和虚拟内存空间;
    建立所述虚拟内存空间与所述物理内存空间的映射关系,其中,所述映射关系中包含所述虚拟内存空间包括的第一虚拟地址对应的被映射的第一物理地址所属的第一物理页的页号、所述第一物理页的连续信息,其中,所述第一物理页的连续信息用于表示第一虚拟页映射的物理页和与所述第一虚拟页连续的下一虚拟页映射的物理页是否连续,所述第一虚拟页包含所述第一物理地址映射的第一虚拟地址;
    发送所述映射关系至存储器,以使得所述存储器存储所述映射关系。
    第三方面,提供了一种跨页预取方法,所述方法包括:
    发送第二指示消息给存储器,其中,所述第二指示消息携带第一虚拟地址,以使得所述存储器根据所述第一虚拟地址,发送所述第一虚拟地址对应的映射关系给所述旁路转换缓冲器TLB,所述映射关系中包含所述第一虚拟地址对应的被映射的第一物理地址所属的第一物理页的页号、所述第一物理页的连续信息,其中,所述第一物理页的连续信息用于表示第一虚拟页映射的物理页和与所述第一虚拟页连续的下一虚拟页映射的物理页是否连续,所述第一虚拟页包含所述第一物理地址映射的第一虚拟地址;
    接收所述存储器发送的所述映射关系;
    根据所述映射关系,获取所述第一虚拟地址对应的第一物理地址;
    发送所述第一物理地址、所述第一物理地址所属的第一物理页的连续信息至高速缓冲寄存器。
    第四方面,提供了一种跨页预取的方法,所述方法包括:
    接收旁路转换缓冲器TLB发送的第一物理地址、所述第一物理地址所属的第一物理页的连续信息,其中,所述第一物理页的连续信息用于表示第一虚拟页映射的物理页和与所述第一虚拟页连续的下一虚 拟页映射的物理页是否连续,所述第一虚拟页包含所述第一物理地址映射的第一虚拟地址;
    若高速缓冲寄存器未存储所述第一物理地址的数据,发送所述第一物理地址至存储器,以使得处理器从所述存储器获取所述第一物理地址的数据;
    发送物理地址缺失的指示消息至预取设备,所述指示消息携带所述第一物理地址、所述第一物理地址所属的第一物理页的连续信息。
    第五方面,提供了一种预取设备,所述预取设备包括接收单元、获取单元、预取单元;
    所述接收单元,用于接收高速缓冲寄存器发送的物理地址缺失的指示消息,所述指示消息携带被映射的第一物理地址、所述第一物理地址所属的第一物理页的连续信息,其中,所述第一物理页的连续信息用于表示第一虚拟页映射的物理页和与所述第一虚拟页连续的下一虚拟页映射的物理页是否连续,所述第一虚拟页包含所述第一物理地址映射的第一虚拟地址;
    所述获取单元,用于根据所述第一物理地址和预取设备中存储的步长,获取预取地址;
    所述预取单元,用于若所述预取地址所属的物理页与所述第一物理页的页号不同,且根据所述第一物理页的连续信息确定所述第一物理页连续,则
    预取所述预取地址中的数据。
    在第一种可能的实现方式中,根据所述第五方面,所述预取设备还包括存储单元;
    所述存储单元,用于在所述接收单元接收高速缓存寄存器发送的物理地址缺失的指示消息之后,将所述指示消息携带的所述第一物理地址所属的第一物理页的连续信息存储在预取信息表中第一物理地址对应的表项中,其中,所述预取信息表存储在所述预取设备中。
    在第二种可能的实现方式中,根据所述第五方面,所述预取设备还包括判断单元、执行单元、存储单元;
    所述获取单元,用于在所述根据所述第一物理地址和预取设备中存储的步长,获取预取地址之前,根据压缩算法和所述第一物理地址, 获取所述第一物理地址的第一索引信息;
    所述判断单元,用于若预取信息表中第一索引信息对应的表项中包含的物理页的页号与所述第一物理页的页号匹配,判断所述预取设备的预取机制是否训练完成,其中,所述预取信息表存储在所述预取设备中;
    所述执行单元,用于若所述预取机制训练完成,执行获取预取地址的步骤;
    所述存储单元,用于若预取信息表中第一索引信息对应的表项中包含的物理页的页号与所述第一物理页的页号不匹配,将所述第一物理页的页号、所述第一物理页的连续信息存储在所述预取信息表中第一索引信息对应的表项中。
    在第三种可能的实现方式中,所述第一物理地址的第一索引信息具体包括下列信息中的至少之一:
    所述第一物理地址所属的第一物理页的页号、
    所述第一物理地址所属的第一物理页的页号的压缩值、
    所述第一物理地址所属的第一物理页的页号的哈希值。
    第六方面,提供了一种处理器,所述处理器包括接收单元、分配单元、建立单元、发送单元;
    所述接收单元,用于接收申请内存空间的第一指示消息,其中,所述第一指示消息携带所述内存空间的容量信息;
    所述分配单元,用于根据所述内存空间的容量信息,分配物理内存空间和虚拟内存空间;
    所述建立单元,用于建立所述虚拟内存空间与所述物理内存空间的映射关系,其中,所述映射关系中包含所述虚拟内存空间包括的第一虚拟地址对应的被映射的第一物理地址所属的第一物理页的页号、所述第一物理页的连续信息,其中,所述第一物理页的连续信息用于表示第一虚拟页映射的物理页和与所述第一虚拟页连续的下一虚拟页映射的物理页是否连续,所述第一虚拟页包含所述第一物理地址映射的第一虚拟地址;
    所述发送单元,用于发送所述映射关系至存储器,以使得所述存储器存储所述映射关系。
    第七方面,提供了一种旁路转换缓冲器TLB,所述TLB包括第一发送单元、接收单元、获取单元、第二发送单元;
    所述第一发送单元,用于发送第二指示消息给存储器,其中,所述第二指示消息携带第一虚拟地址,以使得所述存储器根据所述第一虚拟地址,发送所述第一虚拟地址对应的映射关系给所述旁路转换缓冲器TLB,所述映射关系中包含所述第一虚拟地址对应的被映射的第一物理地址所属的第一物理页的页号、所述第一物理页的连续信息,其中,所述第一物理页的连续信息用于表示第一虚拟页映射的物理页和与所述第一虚拟页连续的下一虚拟页映射的物理页是否连续,所述第一虚拟页包含所述第一物理地址映射的第一虚拟地址;
    所述接收单元,用于接收所述存储器发送的所述映射关系;
    所述获取单元,用于根据所述映射关系,获取所述第一虚拟地址对应的第一物理地址;
    所述第二发送单元,用于发送所述第一物理地址、所述第一物理地址所属的第一物理页的连续信息至高速缓冲寄存器。
    第八方面,提供了一种高速缓冲寄存器,所述高速缓冲寄存器包括接收单元、第一发送单元、第二发送单元;
    所述接收单元,用于接收旁路转换缓冲器TLB发送的第一物理地址、所述第一物理地址所属的第一物理页的连续信息,其中,所述第一物理页的连续信息用于表示第一虚拟页映射的物理页和与所述第一虚拟页连续的下一虚拟页映射的物理页是否连续,所述第一虚拟页包含所述第一物理地址映射的第一虚拟地址;
    所述第一发送单元,用于若高速缓冲寄存器未存储所述第一物理地址的数据,发送所述第一物理地址至存储器,以使得处理器从所述存储器获取所述第一物理地址的数据;
    所述第二发送单元,用于发送物理地址缺失的指示消息至预取设备,所述指示消息携带所述第一物理地址、所述第一物理地址所属的第一物理页的连续信息。
    第九方面,提供了一种跨页预取系统,所述跨页预取系统包括存储器、第五方面所述的预取设备、第六方面所述的处理器、第七方面所述的旁路转换缓冲器TLB以及第八方面所述的高速缓冲寄存器。
    本发明实施例提供一种跨页预取方法、装置及系统。所述方法包括:处理器接收申请内存空间的第一指示消息;然后所述处理器根据所述第一指示消息携带的所述内存空间的容量信息,分配物理内存空间和虚拟内存空间,接着所述处理器建立所述虚拟内存空间与所述物理内存空间的映射关系,其中,所述映射关系中包含所述虚拟内存空间包括的第一虚拟地址对应的被映射的第一物理地址所属的第一物理页的页号、所述第一物理页的连续信息,所述第一物理页的连续信息用于表示第一虚拟页映射的物理页和与所述第一虚拟页连续的下一虚拟页映射的物理页是否连续,所述第一虚拟页包含所述第一物理地址映射的第一虚拟地址;最后所述处理器发送所述映射关系至存储器。这样,当旁路转换缓冲器TLB发送第一虚拟地址对应的映射关系缺失的第二指示消息给存储器时,存储器可以将所述第一虚拟地址对应的包含第一物理页的连续信息的映射关系发送给所述TLB,以使得所述TLB接收所述包含第一物理页的连续信息的映射关系,并在第一虚拟地址和第一物理地址转换完成后,将所述第一物理地址、所述第一物理地址所属的第一物理页的连续信息发送给高速缓冲寄存器。这样,在高速缓冲寄存器发生物理地址缺失时,所述连续信息可以跟随数据流进入预取设备,使得所述预取设备在预取机制训练完成,获取预取地址后,若所述预取地址所属的物理页与所述第一物理页的页号不同,且根据所述第一物理页的连续信息确定所述第一物理页连续,则预取所述预取地址中的数据,因此本发明解决了现有技术中在判断出跨页预取后,便停止预取导致的预取设备命中率低的问题,提升了预取设备的预取命中率,进而提升了访问内存的效率。
    附图说明
    图1为预取设备中的预取结构示意图;
    图2为本发明实施例提供的一种跨页预取方法;
    图3为本发明实施例提供的一种预取机制训练的方法;
    图4为本发明实施例提供的另一种跨页预取方法;
    图5为本发明实施例提供的又一种跨页预取方法;
    图6为本发明实施例提供的又一种跨页预取方法;
    图7为本发明实施例提供的一种跨页预取系统;
    图8为本发明实施例提供的一种跨页预取系统中处理器与存储器的工作交互图;
    图9为本发明实施例提供的一种跨页预取系统中存储器、旁路转换缓冲、高速缓冲寄存器、预取设备的工作交互图;
    图10为本发明实施例提供的一种跨页预取系统中预取设备的工作流程图;
    图11为一种跨页预取的实例示意图;
    图12为本发明实施例提供的一种预取设备;
    图13为本发明实施例提供的另一种预取设备;
    图14为本发明实施例提供的又一种预取设备;
    图15为本发明实施例提供的一种处理器;
    图16为本发明实施例提供的一种旁路转换缓冲;
    图17为本发明实施例提供的一种高速缓冲寄存器;
    图18为本发明实施例提供的一种跨页预取系统。
    具体实施方式
    下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例?;诒痉⒚髦械氖凳├?,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明?;さ姆段?。
    为了提高处理器执行指令或获取数据的速度,现有技术中通常采用预取技术提前将处理器要执行的指令或要获取的数据从存储器中预取到高速缓冲寄存器中。其中预取技术可以分为软件预取和硬件预取。
    通过软件进行数据预取时,需要在程序代码中显式的添加预取指令,将后面要使用的数据,显式的进行预取。
    通过硬件预取时,则会由专门的硬件实现,该硬件会根据当前访存地址的情况,和之前的访存地址的情况,训练出一套“预取机制”,然后预取设备会利用该“预取机制”,结合当前访存地址计算出预取地址,从而将预取地址处的数据提前从内存预取到高速缓冲寄存器cache中,该过程对于程序员或者编译器是透明的,图1即为一个常用的预取结构:
    从图1可以看出,该预取结构中包含三个地址,分别是:当前访存地址、之前的访存地址、预取地址,另外该预取结构还存储了步长和预取设备的预取状态的信息。在获取预取地址时,首先将当前访存地址和之前的访存地址进行比较,得到步长,同时将计算出来的步长和之前保存在步长单元中的步长进行对比,若所述计算出来的步长和之前保存在步长单元中的步长一致,根据预取地址=当前访存地址+步长的关系计算出预取地址;若所述计算出来的步长和之前保存在步长单元中的步长不一致,适当更新步长和状态。
    需要说明的是,预取分为基于物理地址的预取和基于虚拟地址的预取,若预取设备是基于虚拟地址的预取,考虑到虚拟地址的连续性,跨页预取是有效的,可是基于虚拟地址的预取,需要查找TLB(Translation lookaside buffer,旁路转换缓冲器),进行虚实转换,这需要以性能为代价,另外,某些预取设备访问不到TLB,所以文中所涉及的预取均是基于物理地址的硬件预取,基于虚拟地址的预取本文不加讨论。
    实施例一、
    本发明实施例提供一种跨页预取方法,具体如图2所示,所述方法包括:
    201、接收高速缓冲寄存器发送的物理地址缺失的指示消息,所述指示消息携带被映射的第一物理地址、所述第一物理地址所属的第一物理页的连续信息,其中,所述第一物理页的连续信息用于表示第一虚拟页映射的物理页和与所述第一虚拟页连续的下一虚拟页映射的物理页是否连续,所述第一虚拟页包含所述第一物理地址映射的第一虚拟地址。
    需要说明的是,通常在处理器没有从高速缓冲寄存器中命中指令或数据时,为了提高读取指令或数据的速度,高速缓冲寄存器通?;岣荽砥鞣梦实闹噶罨蚴莸拇娲⒌刂?,从内存中获取对应的命令或数据,同时会向预取设备发送物理地址缺失的指示消息,指示预取设备从内存中预取处理器要访问的下一指令或数据,并存储到高速缓冲寄存器中。
    其中,预取设备可以将所述指示消息携带的所述第一物理地址所属的第一物理页的连续信息存储在预取信息表中第一物理地址对应的 表项中,其中,所述预取信息表存储在所述预取设备中。
    当然,为了减少表项,所述第一物理地址可能是以某种索引形式存储在预取设备的预取信息表中,预取设备在接收到物理地址缺失的指示消息后,首先应该按照预取设备的预取信息表中存储的物理地址的索引形式,根据索引算法,获取所述第一物理地址对应的第一索引信息,然后查找所述预取设备中存储的预取信息表中包含的第一索引信息,进而获取所述第一物理地址的相关表项。其中,所述第一索引信息具体可以包括下列信息中的至少之一:
    所述第一物理地址所属的第一物理页的页号、所述第一物理地址所属的第一物理页的页号的压缩值、所述第一物理地址所属的第一物理页的页号的哈希值。
    例如A、所述第一索引信息为所述第一物理地址所属的第一物理页的页号的压缩值:
    假设访存地址有32位,一个页大小为4kb,即该访存地址的高20位为页号,而低12位页内偏移,如第一物理地址(二进制表示)为:
    1010,1010,1010,1010,1010,0011,0011,0011,
    其中,页号为1010,1010,1010,1010,1010,
    业内偏移为0011,0011,0011,
    若以页号为第一索引信息,则预取设备中存储的索引信息2^20项;
    此时,可以用压缩算法取出页号的几位作为索引信息,比如若要预取设备中存储的索引信息仅有128项,则可用压缩算法,将页号中的前7位作为索引值,即,此时取1010101作为索引信息。
    例如B、所述第一索引信息为所述第一物理地址所属的第一物理页的页号的哈希值:
    假设按公式(1)计算哈希值:
    index=物理页号%128,           (公式1)
    其中,%表示取余。
    当访存地址(二进制表示)为:
    1010,1010,1010,1010,1010,0011,0011,0011时,
    页号为1010,1010,1010,1010,1010,转化为十进制为699050,
    根据公式(1)可得
    index=699050%128=42,
    即索引信息为42,用二进制表示为101010。
    本发明实施例仅是示例性的给出几种第一索引信息的表示方法,当然,所述第一索引信息还可能存储其它的形式,本发明实施例对此不作具体限定。
    具体的,所述预取信息表中第一索引信息对应的表项中包含的物理页的页号与所述第一物理页的页号可能不匹配,此时预取设备将在所述表项中存储所述第一物理页的页号、所述第一物理页的连续信息,并重新进行预取机制的训练。
    举例来说,假设当前接收到的物理地址缺失的指示消息中携带的第一物理地址是A+B(其中,A为物理页号,B为页内偏移量),在根据索引算法,获取第一索引信息M后,发现M中对应的表项中的物理页的页号与A不匹配,此时将M中对应的表项中的物理页的页号更新为A,同时更新物理页的连续信息、步长配置为0,预取状态为初始化状态,将A+B写入之前的访存地址项,重新进行预取机制的训练。
    但是,若所述预取信息表中第一索引信息对应的表项中的物理页的页号与所述第一物理页的页号匹配,但可能未完成预取机制的训练,此时仅需继续进行预取机制的训练,包括对该预取设备的步长、预取状态、之前的访存地址等信息进行更新,本发明在此不一一列举。
    举例来说,接上例,假设预取设备又接收到的物理地址缺失的指示消息中携带的第一物理地址是A+B+1(其中,A为物理页号,B+1为页内偏移量),在根据索引算法,获取第一索引信息M后,发现M中对应的第一表项中的物理页号与A匹配,此时计算出步长为1,预取状态更新为准备状态,之前的访存地址更新为A+B+1,继续进行预取机制的训练。
    202、根据所述第一物理地址和预取设备中存储的步长,获取预取地址。
    具体的,结合步骤301的说明部分,若所述预取信息表中第一索引信息对应的表项中的物理页的页号与所述第一物理页的页号匹配,且完成预取机制的训练,预取设备可以根据所述第一物理地址和预取 设备中存储的步长,获取预取地址。
    其中,预取机制的训练过程可以如图3所示,包括:
    S301、接收高速缓冲寄存器发送的物理地址缺失的指示消息,所述指示消息携带被映射的第一物理地址、所述第一物理地址所属的第一物理页的连续信息,其中,所述第一物理页的连续信息用于表示第一虚拟页映射的物理页和与所述第一虚拟页连续的下一虚拟页映射的物理页是否连续,所述第一虚拟页包含所述第一物理地址映射的第一虚拟地址。
    S302、根据压缩算法和所述第一物理地址,获取所述第一物理地址的第一索引信息。
    S303、若预取信息表中第一索引信息对应的表项中包含的物理页的页号与所述第一物理页的页号不匹配,将所述第一物理页的页号、所述第一物理页的连续信息存储在所述预取信息表中第一索引信息对应的表项中。
    具体的,所述预取信息表存储在所述预取设备中。
    此时,因为预取设备的预取机制刚开始训练,所以转去执行步骤S301,即再次接收物理地址缺失的指示消息,进行预取机制的训练。
    S304、若预取信息表中第一索引信息对应的表项中包含的物理页的页号与所述第一物理页的页号匹配,判断预取设备的预取机制是否训练完成。
    S305、若预取机制训练完成,根据所述第一物理地址和预取设备中存储的步长,获取预取地址。
    当然,若预取机制未训练完成,转去执行步骤S301,继续接收物理地址缺失的指示消息,以使得继续进行预取机制的训练,直到预取机制训练完成。
    需要说明的是,对于步骤201的说明部分所涉及的两种预取机制未训练完成的情况,预取设备无法产生预取地址,不属于本发明实施例讨论的范围。
    需要说明的是,上述的根据所述第一物理地址和预取设备中存储的步长,产生预取地址的方法仅是示例性的说明,现有技术中可能还存在其它的获取预取地址的方法??梢岳斫獾氖?,作为本领域的技术 人员应该了解现有技术中其它的获取预取地址的方法,本发明实施例对此不一一进行描述。
    203、若所述预取地址所属的物理页与所述第一物理页的页号不同,且根据所述第一物理页的连续信息确定所述第一物理页连续,则预取所述预取地址中的数据。
    具体的,若所述预取地址所属的物理页与所述第一物理页的页号不同,说明所述预取地址跨页,在根据所述第一物理页的连续信息确定所述第一物理页连续后,可以预取所述预取地址中的数据。
    需要说明的是,本方法为一种跨页预取的方法,故仅讨论预取地址跨页的情况,而对于预取地址不跨页的预取方法本发明实施例在此不作讨论。
    本发明实施例在预取地址跨页时,还对当前访存地址的物理页连续的跨页情况,执行跨页预取,解决了现有技术中在判断出跨页预取后,便停止预取导致的预取设备命中率低的问题,提升了预取设备的预取命中率,进而提升了访问内存的效率。
    本发明实施例还提供一种跨页预取方法,具体如图4所示,所述方法包括:
    401、接收申请物理内存空间的第一指示消息,其中,所述第一指示消息携带所述内存空间的容量信息。
    402、根据所述内存空间的容量信息,分配物理内存空间和虚拟内存空间。
    具体的,在应用程序加载时,处理器会首先接收到应用程序申请内存空间的第一指示消息,所述第一指示消息携带所述内存空间的容量信息。然后处理器会根据所述内存空间的容量信息,分配相应的物理内存空间和虚拟内存空间。在分配物理内存空间和虚拟内存空间时,如果所述第一指示消息中携带虚拟地址的信息,根据该虚拟地址开辟相应大小的虚拟内存空间,否则所述处理器会随机分配合适的虚拟内存空间;相应的,所述处理器会随机分配合适的物理内存空间。
    需要说明的是,内存空间的分配问题属于现有技术的问题,本发明实施例对此不作具体限定,仅示例性的提供一种实施的方案。
    403、建立所述虚拟内存空间与所述物理内存空间的映射关系,其 中,所述映射关系中包含所述虚拟内存空间包括的第一虚拟地址对应的被映射的第一物理地址所属的第一物理页的页号、所述第一物理页的连续信息,其中,所述第一物理页的连续信息用于表示第一虚拟页映射的物理页和与所述第一虚拟页连续的下一虚拟页映射的物理页是否连续,所述第一虚拟页包含所述第一物理地址映射的第一虚拟地址。
    具体的,现有技术中建立的所述虚拟内存空间与所述物理内存空间的映射关系中,仅含有所述虚拟内存空间包括的第一虚拟地址对应的被映射的第一物理地址所属的第一物理页的页号信息,本发明实施例中,处理器建立的所述映射关系中,还存储所述第一物理页的连续信息,所述第一物理页的连续信息用于表示第一虚拟页映射的物理页和与所述第一虚拟页连续的下一虚拟页映射的物理页是否连续,所述第一虚拟页包含所述第一物理地址映射的第一虚拟地址,该连续信息和所述第一物理页的页号共同存在于映射关系中。
    具体的,所述虚拟内存空间与所述物理内存空间的映射关系可以通过映射关系页表表示。其中,所述第一物理页的连续信息可以由页表的一bit确定,也可以是由页表的多bit确定的,本发明实施例对此不作具体限定。
    404、发送所述映射关系至存储器,以使得所述存储器存储所述映射关系。
    本发明实施例还提供一种跨页预取方法,具体如图5所示,所述方法包括:
    501、发送第二指示消息给存储器,其中,所述第二指示消息携带第一虚拟地址,以使得所述存储器根据所述第一虚拟地址,发送所述第一虚拟地址对应的映射关系给旁路转换缓冲器TLB,所述映射关系中包含所述第一虚拟地址对应的被映射的第一物理地址所属的第一物理页的页号、所述第一物理页的连续信息,其中,所述第一物理页的连续信息用于表示第一虚拟页映射的物理页和与所述第一虚拟页连续的下一虚拟页映射的物理页是否连续,所述第一虚拟页包含所述第一物理地址映射的第一虚拟地址。
    具体的,映射关系一般存放于存储器的内存中,但是,为了提高虚拟地址和物理地址转换的速度,会将少数几个常用的或者近期会用到的映射关系存放在旁路转换缓冲器TLB中。
    这样,在访问内存时,所述TLB会首先接收处理器访问内存的指示消息,所述指示消息携带第一虚拟地址,然后TLB根据存储的映射关系,进行虚拟地址和物理地址的转换。但是,在所述TLB接收到处理器访问内存的指示消息后,若TLB不存在所述第一虚拟地址对应的映射关系,则发送映射关系缺失的第二指示消息给存储器,向存储器申请所述第一虚拟地址对应的映射关系。存储器则根据所述第一虚拟地址,查找存储的映射关系,并将所述第一虚拟地址对应的映射关系发送给所述TLB。
    具体的,若上述所述虚拟内存空间与所述物理内存空间的映射关系可以通过映射关系页表表示,则此处所述第一虚拟地址和第一物理地址的映射关系可以通过页表中的页表项来表征。
    502、接收所述存储器发送的所述映射关系。
    503、根据所述映射关系,获取所述第一虚拟地址对应的第一物理地址。
    504、发送所述第一物理地址、所述第一物理地址所属的第一物理页的连续信息至高速缓存寄存器。
    具体的,TLB发送所述第一物理地址所属的第一物理页的连续信息至高速缓存寄存器。这样,在高速缓冲寄存器发生物理地址缺失时,所述连续信息可以跟随数据流进入预取设备,使得所述预取设备在预取机制训练完成,确定预取地址跨页后,且根据所述连续信息,确定当前访存地址所属的物理页连续时执行跨页预取,解决了现有技术中在判断出跨页预取后,便停止预取导致的预取设备命中率低的问题,提升了预取设备的预取命中率,进而提升了访问内存的效率。
    本发明实施例还提供一种跨页预取的方法,具体如图6所示,所述方法包括:
    601、接收旁路转换缓冲器TLB发送的第一物理地址、所述第一物理地址所属的第一物理页的连续信息,其中,所述第一物理页的连续信息用于表示第一虚拟页映射的物理页和与所述第一虚拟页连续的下一虚拟页映射的物理页是否连续,所述第一虚拟页包含所述第一物理地址映射的第一虚拟地址。
    602、若高速缓冲寄存器未存储所述第一物理地址的数据,发送所述第一物理地址至存储器,以使得处理器从所述存储器的内存中获取 所述第一物理地址的数据。
    603、发送物理地址缺失的指示消息至预取设备,所述指示消息携带所述第一物理地址、所述第一物理地址所属的第一物理页的连续信息。
    需要说明的是,通常在处理器没有从高速缓冲寄存器中命中指令或数据时,为了提高处理读取指令或数据的速度,高速缓冲寄存器通?;岣荽砥鞣梦实闹噶罨蚴莸拇娲⒌刂?,从内存中获取对应的命令或数据,同时会向预取设备发送物理地址缺失的指示消息,指示预取设备从内存中预取处理器要访问的下一指令或数据,存储到高速缓存中。
    需要说明的是,步骤602中发送所述第一物理地址至存储器和步骤603中发送物理地址缺失的指示消息至预取设备没有固定的先后顺序,二者均是在判断若未存储所述第一物理地址的数据后执行的动作,本发明实施例对二者的顺序不作具体限定。
    本发明实施例提供一种跨页预取的方法,所述方法包括:处理器接收申请内存空间的第一指示消息;然后所述处理器根据所述第一指示消息携带的所述内存空间的容量信息,分配物理内存空间和虚拟内存空间,接着所述处理器建立所述虚拟内存空间与所述物理内存空间的映射关系,其中,所述映射关系中包含所述虚拟内存空间包括的第一虚拟地址对应的被映射的第一物理地址所属的第一物理页的页号、所述第一物理页的连续信息,其中,所述第一物理页的连续信息用于表示第一虚拟页映射的物理页和与所述第一虚拟页连续的下一虚拟页映射的物理页是否连续,所述第一虚拟页包含所述第一物理地址映射的第一虚拟地址;最后所述处理器发送所述映射关系至存储器。这样,当旁路转换缓冲器TLB发送第一虚拟地址对应的映射关系缺失的第二指示消息给存储器时,存储器可以将所述第一虚拟地址对应的包含第一物理页的连续信息的映射关系发送给所述TLB,以使得所述TLB接收所述包含第一物理页的连续信息的映射关系,并在第一虚拟地址和第一物理地址转换完成后,将所述第一物理地址、所述第一物理地址所属的第一物理页的连续信息发送给高速缓冲寄存器。这样,在高速缓冲寄存器发生物理地址缺失时,所述连续信息可以跟随数据流进入预取设备,使得所述预取设备在预取机制训练完成,获取预取地址后, 若所述预取地址所属的物理页与所述第一物理页的页号不同,且根据所述第一物理页的连续信息确定所述第一物理页连续,则预取所述预取地址中的数据,解决了现有技术中在判断出跨页预取后,便停止预取导致的预取设备命中率低的问题,提升了预取设备的预取命中率,进而提升了访问内存的效率。
    实施例二、
    本发明实施例提供一种跨页预取方法,具体在如图7所示的跨页预取系统下进行说明,所述跨页预取系统包括处理器、存储器、高速缓冲寄存器、旁路转换缓冲器、预取设备。
    为了实现跨页预取,首先,在应用程序加载时,处理器在内存中为应用程序分配程序的指令和数据的存储空间,具体如图8所示,包括:
    801、处理器接收申请物理内存空间的第一指示消息,其中,所述第一指示消息携带所述内存空间的容量信息。
    802、处理器根据所述内存空间的容量信息,分配物理内存空间和虚拟内存空间。
    具体的,在应用程序加载时,处理器会首先接收到应用程序申请内存空间的第一指示消息,所述第一指示消息携带所述内存空间的容量信息。然后处理器会根据所述内存空间的容量信息,分配相应的物理内存空间和虚拟内存空间。在分配物理内存空间和虚拟内存空间时,如果所述第一指示消息中携带虚拟地址的信息,根据该虚拟地址开辟相应大小的虚拟内存空间,否则所述处理器会随机分配合适的虚拟内存空间;相应的,所述处理器会随机分配合适的物理内存空间。
    需要说明的是,内存空间的分配问题属于现有技术的问题,本发明实施例对此不作具体限定,仅示例性的提供一种实施的方案。
    803、处理器建立所述虚拟内存空间与所述物理内存空间的映射关系,其中,所述映射关系中包含所述虚拟内存空间包括的第一虚拟地址对应的被映射的第一物理地址所属的第一物理页的页号、所述第一物理页的连续信息,其中,所述第一物理页的连续信息用于表示第一虚拟页映射的物理页和与所述第一虚拟页连续的下一虚拟页映射的物理页是否连续,所述第一虚拟页包含所述第一物理地址映射的第一虚拟地址。
    具体的,现有技术中建立的所述虚拟内存空间与所述物理内存空间的映射关系中,仅含有所述虚拟内存空间包括的第一虚拟地址对应的被映射的第一物理地址所属的第一物理页的页号信息,本发明实施例中,处理器建立的所述映射关系中,还存储所述第一物理页的连续信息,所述第一物理页的连续信息用于表示第一虚拟页映射的物理页和与所述第一虚拟页连续的下一虚拟页映射的物理页是否连续,所述第一虚拟页包含所述第一物理地址映射的第一虚拟地址,该连续信息和所述第一物理页的页号共同存在于映射关系中。
    具体的,所述虚拟内存空间与所述物理内存空间的映射关系可以通过映射关系页表表示。其中,所述第一物理页的连续信息可以由页表的一bit确定,也可以是由页表的多bit确定的,本发明实施例对此不作具体限定。
    804、处理器发送所述映射关系至存储器。
    805、存储器接收所述处理器发送的所述映射关系。
    806、存储器存储所述映射关系。
    当然,在程序加载完成,处理器在内存中为应用程序分配程序的指令和数据的存储空间之后,处理器为了提高虚拟地址和物理地址转换的速度,会将少数几个常用的或者近期会用到的映射关系存放在旁路转换缓冲器TLB中。这样,在访问内存时,所述TLB会首先接收处理器访问内存的指示消息,下面具体以所述TLB接收到处理器访问第一内存的指示消息后,所述TLB与存储器、高速缓存寄存器的交互、所述高速缓冲寄存器与所述预取设备的交互为例继续说明,具体如图9所示,包括:
    901、TLB接收访问第一内存的指示消息,所述指示消息携带第一虚拟地址。
    需要说明的是,所述第一内存中的“第一”不具有任何特殊的含义,仅指代所述第一虚拟地址对应的第一物理地址所指向的内存。
    902、TLB根据所述第一虚拟地址,查找将所述第一虚拟地址映射成第一物理地址的映射关系。
    903、若不存在所述映射关系,发送第二指示消息给存储器,其中,所述第二指示消息携带第一虚拟地址,以使得所述存储器根据所述第 一虚拟地址,发送所述第一虚拟地址对应的映射关系给旁路转换缓冲器TLB,所述映射关系中包含所述第一虚拟地址对应的被映射的第一物理地址所属的第一物理页的页号、所述第一物理页的连续信息,其中,所述第一物理页的连续信息用于表示第一虚拟页映射的物理页和与所述第一虚拟页连续的下一虚拟页映射的物理页是否连续,所述第一虚拟页包含所述第一物理地址映射的第一虚拟地址。
    904、存储器接收所述第二指示消息。
    905、存储器根据所述第一虚拟地址,查找所述映射关系。
    906、存储器发送所述映射关系给所述TLB。
    907、TLB接收所述存储器发送的所述映射关系。
    当然,在所述TLB接收所述存储器发送的所述映射关系后,所述TLB中将存在所述第一虚拟地址与所述第一物理地址的映射关系。
    908、TLB根据所述映射关系,获取所述第一虚拟地址对应的第一物理地址。
    909、TLB发送所述第一物理地址、所述第一物理地址所属的第一物理页的连续信息至高速缓存寄存器。
    910、高速缓冲寄存器接收所述第一物理地址、所述第一物理地址所属的第一物理页的连续信息。
    911、若所述高速缓冲寄存器未存储所述第一物理地址的数据,发送所述第一物理地址至存储器,以使得处理器从所述存储器的内存中获取所述第一物理地址的数据。
    912、存储器接收所述高速缓冲寄存器发送的所述第一物理地址。
    913、TLB发送物理地址缺失的指示消息至预取设备,所述指示消息携带所述第一物理地址、所述第一物理地址所属的第一物理页的连续信息。
    具体的,在高速缓冲寄存器发生物理地址缺失时,所述连续信息可以跟随数据流进入预取设备,使得所述预取设备在预取机制训练完成后,若所述预取地址所属的物理页与所述第一物理页的页号不同,且根据所述第一物理页的连续信息确定所述第一物理页连续,则预取所述预取地址中的数据,解决了现有技术中在判断出跨页预取后,便停止预取导致的预取设备命中率低的问题,提升了预取设备的预取命 中率,进而提升了访问内存的效率。
    需要说明的是,步骤911中发送所述第一物理地址至存储器和步骤913中发送物理地址缺失的指示消息至预取设备没有固定的先后顺序,二者均是在判断若未存储所述物理地址的数据后执行的动作,本发明实施例对二者的顺序不作具体限定。
    914、预取设备接收所述高速缓冲寄存器发送的所述物理地址缺失的指示消息。
    具体的,当所述预取设备接收所述高速缓冲寄存器发送的所述物理地址缺失的指示消息后,预取设备侧的跨页预取的方法具体如图10所示,包括:
    1001、预取设备接收高速缓冲寄存器发送的物理地址缺失的指示消息,所述指示消息携带被映射的第一物理地址、所述第一物理地址所属的第一物理页的连续信息,其中,所述第一物理页的连续信息用于表示第一虚拟页映射的物理页和与所述第一虚拟页连续的下一虚拟页映射的物理页是否连续,所述第一虚拟页包含所述第一物理地址映射的第一虚拟地址。
    1002、根据压缩算法和所述第一物理地址,获取所述第一物理地址的第一索引信息。
    1003、若预取信息表中所述第一索引信息对应的表项中包含的物理页的页号与所述第一物理页的页号不匹配,将所述第一物理页的页号、所述第一物理页的连续信息存储在所述预取信息表中第一索引信息对应的表项中。
    1004、若预取信息表中第一索引信息对应的表项中包含的物理页的页号与所述第一物理页的页号匹配,判断预取设备的预取机制是否训练完成。
    1005、若预取机制训练完成,根据所述第一物理地址和预取设备中存储的步长,获取预取地址。
    1006、若所述预取地址所属的物理页与所述第一物理页的页号不同,且根据所述第一物理页的连续信息确定所述第一物理页连续,则预取所述预取地址中的数据。
    具体的,通过所述预取设备进行跨页预取的方法可参考实施例一 的描述,本发明实施例对此不再赘述。
    综上所述,实施例二在如图7所述的跨页预取系统下详述了一种跨页预取的方法,下面将给出一个示例性的操作,说明跨页预取的整个流程,具体如图11所示:
    图11中,虚拟内存中相邻的4个虚拟页分别被映射到物理内存的物理页1、2、3、5中,其中,物理页的连续信息用“1”和“0”表征,“1”表征物理页连续,“0”表征物理页不连续,从图11显然可以看出,页号为1和2的物理页连续,页号为3的物理页不连续。
    首先,操作系统将物理页的连续信息保存在物理内存中,接着,TLB将物理页的连续信息保存在TLB表项中,最后,预取设备将物理页的连续信息保存在预取设备中,然后预取设备根据该物理页的连续信息,确定是否跨页预取。
    本发明实施例提供一种跨页预取方法,所述方法包括:处理器接收申请内存空间的第一指示消息;然后所述处理器根据所述第一指示消息携带的所述内存空间的容量信息,分配物理内存空间和虚拟内存空间,接着所述处理器建立所述虚拟内存空间与所述物理内存空间的映射关系,其中,所述映射关系中包含所述虚拟内存空间包括的第一虚拟地址对应的被映射的第一物理地址所属的第一物理页的页号、所述第一物理页的连续信息,其中,所述第一物理页的连续信息用于表示第一虚拟页映射的物理页和与所述第一虚拟页连续的下一虚拟页映射的物理页是否连续,所述第一虚拟页包含所述第一物理地址映射的第一虚拟地址;最后所述处理器发送所述映射关系至存储器。这样,当旁路转换缓冲器TLB发送第一虚拟地址对应的映射关系缺失的第二指示消息给存储器时,存储器可以将所述第一虚拟地址对应的包含第一物理页的连续信息的映射关系发送给所述TLB,以使得所述TLB接收所述包含第一物理页的连续信息的映射关系,并在第一虚拟地址和第一物理地址转换完成后,将所述第一物理地址、所述第一物理地址所属的第一物理页的连续信息发送给高速缓冲寄存器。这样,在高速缓冲寄存器发生物理地址缺失时,所述连续信息可以跟随数据流进入预取设备,使得所述预取设备在预取机制训练完成,获取预取地址后,若所述预取地址所属的物理页与所述第一物理页的页号不同,且根据所述第一物理页的连续信息确定所述第一物理页连续,则预取所述预 取地址中的数据,解决了现有技术中在判断出跨页预取后,便停止预取导致的预取设备命中率低的问题,提升了预取设备的预取命中率,进而提升了访问内存的效率。
    实施例三、
    本发明实施例提供一种预取设备1200,具体如图12所示,所述预取设备1200包括接收单元1201、获取单元1202、预取单元1203。
    所述接收单元1201,用于接收高速缓冲寄存器发送的物理地址缺失的指示消息,所述指示消息携带被映射的第一物理地址、所述第一物理地址所属的第一物理页的连续信息,其中,所述第一物理页的连续信息用于表示第一虚拟页映射的物理页和与所述第一虚拟页连续的下一虚拟页映射的物理页是否连续,所述第一虚拟页包含所述第一物理地址映射的第一虚拟地址。
    所述获取单元1202,用于根据所述第一物理地址和预取设备中存储的步长,获取预取地址。
    所述预取单元1203,用于若所述预取地址所属的物理页与所述第一物理页的页号不同,且根据所述第一物理页的连续信息确定所述第一物理页连续,则
    预取所述预取地址中的数据。
    进一步的,如图13所示,所述预取设备还包括存储单元1204。
    所述存储单元1204,用于在所述接收单元1201接收高速缓存寄存器发送的物理地址缺失的指示消息之后,将所述指示消息携带的所述第一物理地址所属的第一物理页的连续信息存储在预取信息表中第一物理地址对应的表项中,其中,所述预取信息表存储在所述预取设备中。
    可选的,如图14所示,所述预取设备还包括判断单元1205、执行单元1206、存储单元1204。
    所述获取单元1202,用于在所述根据所述第一物理地址和预取设备中存储的步长,获取预取地址之前,根据压缩算法和所述第一物理地址,获取所述第一物理地址的第一索引信息。
    所述判断单元1205,用于若预取信息表中第一索引信息对应的表项中包含的物理页的页号与所述第一物理页的页号匹配,判断所述预 取设备的预取机制是否训练完成,其中,所述预取信息表存储在所述预取设备中。
    所述执行单元1206,用于若所述预取机制训练完成,执行获取预取地址的步骤
    所述存储单元1204,用于若预取信息表中第一索引信息对应的表项中包含的物理页的页号与所述第一物理页的页号不匹配,将所述第一物理页的页号、所述第一物理页的连续信息存储在所述预取信息表中第一索引信息对应的表项中。
    进一步的,所述第一物理地址的第一索引信息具体包括下列信息中的至少之一:
    所述第一物理地址所属的第一物理页的页号、
    所述第一物理地址所属的第一物理页的页号的压缩值、
    所述第一物理地址所属的第一物理页的页号的哈希值。
    具体的,在跨页预取时预取设备工作的过程可参考实施例一和实施例二的描述,本发明实施例对此不再赘述。
    本发明实施例提供一种预取设备,所述预取设备包括接收单元、获取单元、预取单元。所述接收单元,用于接收高速缓冲寄存器发送的物理地址缺失的指示消息,所述指示消息携带被映射的第一物理地址、所述第一物理地址所属的第一物理页的连续信息,其中,所述第一物理页的连续信息用于表示第一虚拟页映射的物理页和与所述第一虚拟页连续的下一虚拟页映射的物理页是否连续,所述第一虚拟页包含所述第一物理地址映射的第一虚拟地址;所述获取单元,用于根据所述第一物理地址和预取设备中存储的步长,获取预取地址;所述预取单元,用于若所述预取地址所属的物理页与所述第一物理页的页号不同,且根据所述第一物理页的连续信息确定所述第一物理页连续,则预取所述预取地址中的数据。
    因为所述预取设备在预取地址跨页时,还根据所述第一物理页的连续信息,确定所述第一物理页连续后,预取所述预取地址中的数据,解决了现有技术中在判断出跨页预取后,便停止预取导致的预取设备命中率低的问题,提升了预取设备的预取命中率,进而提升了访问内存的效率。
    实施例四、
    本发明实施例提供一种处理器1500,具体如图15所示,所述处理器1500包括接收单元1501、分配单元1502、建立单元1503、发送单元1504。
    所述接收单元1501,用于接收申请内存空间的第一指示消息,其中,所述第一指示消息携带所述内存空间的容量信息。
    所述分配单元1502,用于根据所述内存空间的容量信息,分配物理内存空间和虚拟内存空间。
    所述建立单元1503,用于建立所述虚拟内存空间与所述物理内存空间的映射关系,其中,所述映射关系中包含所述虚拟内存空间包括的第一虚拟地址对应的被映射的第一物理地址所属的第一物理页的页号、所述第一物理页的连续信息,其中,所述第一物理页的连续信息用于表示第一虚拟页映射的物理页和与所述第一虚拟页连续的下一虚拟页映射的物理页是否连续,所述第一虚拟页包含所述第一物理地址映射的第一虚拟地址。
    所述发送单元1504,用于发送所述映射关系至存储器,以使得所述存储器存储所述映射关系。
    具体的,在跨页预取时,处理器工作的过程可参考实施例一和实施例二的描述,本发明实施例对此不再赘述。
    基于本发明实施例提供的处理器,因为所述处理器建立的所述映射关系中包含被映射的第一物理页的连续信息,故在所述处理器发送所述映射关系至存储器后,所述存储器中的映射关系中也包含所述第一物理页的连续信息,这样旁路转换缓冲器TLB从存储器获取的映射关系中也包含所述第一物理页的连续信息,进而在高速缓冲寄存器发生物理地址缺失时,所述连续信息可以跟随数据流进入预取设备,使得所述预取设备在预取机制训练完成,获取预取地址,并确定预取地址跨页,且根据所述第一物理页的连续信息,确定当前访存地址所属的第一物理页连续后,预取所述预取地址中的数据,解决了现有技术中在判断出跨页预取后,便停止预取导致的预取设备命中率低的问题,提升了预取设备的预取命中率,进而提升了访问内存的效率。
    实施例五、
    本发明实施例提供一种旁路转换缓冲器TLB1600,具体如图16所示,所述TLB1600包括第一发送单元1601、接收单元1602、获取单元1603、第二发送单元1604。
    所述第一发送单元1601,用于发送第二指示消息给存储器,其中,所述第二指示消息携带第一虚拟地址,以使得所述存储器根据所述第一虚拟地址,发送所述第一虚拟地址对应的映射关系给所述旁路转换缓冲器TLB,所述映射关系中包含所述第一虚拟地址对应的被映射的第一物理地址所属的第一物理页的页号、所述第一物理页的连续信息,其中,所述第一物理页的连续信息用于表示第一虚拟页映射的物理页和与所述第一虚拟页连续的下一虚拟页映射的物理页是否连续,所述第一虚拟页包含所述第一物理地址映射的第一虚拟地址。
    所述接收单元1602,用于接收所述存储器发送的所述映射关系。
    所述获取单元1603,用于根据所述映射关系,获取所述第一虚拟地址对应的第一物理地址。
    所述第二发送单元1604,用于发送所述第一物理地址、所述第一物理地址所属的第一物理页的连续信息至高速缓冲寄存器。
    具体的,在跨页预取时,旁路转换缓冲器工作的过程可参考实施例一和实施例二的描述,本发明实施例对此不再赘述。
    本发明实施例提供的旁路转换缓冲器TLB,由于在映射关系缺失时,从存储器中获取的映射关系中包含第一物理页的连续信息,因此在所述TLB根据所述映射关系完成虚拟地址和物理地址的转换后,将所述第一物理地址、所述第一物理地址所属的第一物理页的连续信息发送给高速缓冲寄存器。这样,在高速缓冲寄存器发生物理地址缺失时,所述连续信息可以跟随数据流进入预取设备,使得所述预取设备在预取机制训练完成,获取预取地址,并确定预取地址跨页,且根据所述第一物理页的连续信息,确定当前访存地址所属的第一物理页连续后,预取所述预取地址中的数据,解决了现有技术中在判断出跨页预取后,便停止预取导致的预取设备命中率低的问题,提升了预取设备的预取命中率,进而提升了访问内存的效率。
    实施例六、
    本发明实施例提供一种高速缓冲寄存器1700,具体如图17所示,所述高速缓冲寄存器1700包括接收单元1701、第一发送单元1702、 第二发送单元1703。
    所述接收单元1701,用于接收旁路转换缓冲器TLB发送的第一物理地址、所述第一物理地址所属的第一物理页的连续信息,其中,所述第一物理页的连续信息用于表示第一虚拟页映射的物理页和与所述第一虚拟页连续的下一虚拟页映射的物理页是否连续,所述第一虚拟页包含所述第一物理地址映射的第一虚拟地址。
    所述第一发送单元1702,用于若高速缓冲寄存器未存储所述第一物理地址的数据,发送所述第一物理地址至存储器,以使得处理器从所述存储器获取所述第一物理地址的数据。
    所述第二发送单元1703,用于发送物理地址缺失的指示消息至预取设备,所述指示消息携带所述第一物理地址、所述第一物理地址所属的第一物理页的连续信息。
    具体的,在跨页预取时,高速缓冲寄存器工作的过程可参考实施例一和实施例二的描述,本发明实施例对此不再赘述。
    本发明实施例提供的高速缓冲寄存器,在发生物理地址缺失时,一方面可以发送所述第一物理地址至存储器,以使得处理器从所述存储器的内存中获取所述第一物理地址的数据;另一方面,发送物理地址缺失的指示消息给预取设备,其中,所述连续信息可以跟随数据流进入预取设备,使得所述预取设备在预取机制训练完成,获取预取地址,并确定预取地址跨页,且根据所述第一物理页的连续信息,确定当前访存地址所属的第一物理页连续后,预取所述预取地址中的数据,解决了现有技术中在判断出跨页预取后,便停止预取导致的预取设备命中率低的问题,提升了预取设备的预取命中率,进而提升了访问内存的效率。
    实施例七、
    本发明实施例提供一种跨页预取系统1800,具体如图18所示,所述跨页预取系统包括存储器1801、预取设备1200、处理器1500、旁路转换缓冲器TLB1600和高速缓冲寄存器1700。
    当所述处理器1500发送包含第一物理页的连续信息的映射关系至所述存储器1801后,所述存储器1801存储所述映射关系。当所述旁路转换缓冲器TLB1600中查找不到将第一虚拟地址映射成第一物理地址的映射关系后,将从所述存储器中获取所述映射关系,然后所述 TLB1600将所述第一物理地址、所述映射关系中的所述第一物理页的连续信息发送给所述高速缓冲寄存器1700,若所述高速缓冲寄存器1700中未存储所述第一物理地址的数据,所述高速缓冲寄存器1700发送所述第一物理地址至存储器1801,以使得在所述存储器1801的内存中获取所述第一物理地址的数据,另外所述高速缓冲寄存器1700还发送物理地址缺失的指示消息给所述预取设备1200,所述指示消息携带被映射的第一物理地址、所述第一物理地址所属的第一物理页的连续信息。其中,所述第一物理页的连续信息用于表示第一虚拟页映射的物理页和与所述第一虚拟页连续的下一虚拟页映射的物理页是否连续,所述第一虚拟页包含所述第一物理地址映射的第一虚拟地址。
    具体的所述预取设备、所述处理器、所述旁路转换缓冲器TLB、所述高速缓冲寄存器的工作过程可参考实施例一和实施例二的描述,本发明实施例对此不再赘述。
    本发明实施例提供一种跨页预取系统,所述跨页预取系统包括:存储器、实施例三所述的预取设备、实施例四所述的处理器、实施例五所述的旁路转换缓冲器TLB、实施例六所述的高速缓冲寄存器。因为所述处理器建立的所述映射关系中包含被映射的第一物理页的连续信息,故在所述处理器发送所述映射关系至存储器后,所述存储器中的映射关系中也包含被映射的第一物理页的连续信息,这样旁路转换缓冲器器TLB从存储器获取的映射关系中也包含所述第一物理页的连续信息,进而在高速缓冲寄存器发生物理地址缺失时,所述第一物理页的连续信息可以跟随数据流进入预取设备,使得所述预取设备在预取机制训练完成,获取预取地址,并确定预取地址跨页,且根据所述第一物理页的连续信息,确定当前访存地址所属的第一物理页连续后,预取所述预取地址中的数据,解决了现有技术中在判断出跨页预取后,便停止预取导致的预取设备命中率低的问题,提升了预取设备的预取命中率,进而提升了访问内存的效率。
    需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上??梢愿菔导实男枰≡衿渲械牟糠只蛘呷磕?槔词迪直臼凳├桨傅哪康?。另外,本发明 提供的装置实施例附图中,??橹涞牧庸叵当硎舅侵渚哂型ㄐ帕?,具体可以实现为一条或多条通信总线或信号线。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
    通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件的方式来实现,当然也可以通过专用硬件包括专用集成电路、专用CPU、专用存储器、专用元器件等来实现。一般情况下,凡由计算机程序完成的功能都可以很容易地用相应的硬件来实现,而且,用来实现同一功能的具体硬件结构也可以是多种多样的,例如模拟电路、数字电路或专用电路等。但是,对本发明而言更多情况下软件程序实现是更佳的实施方式?;谡庋睦斫?,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘,U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
    以上所述,仅为本发明的具体实施方式,但本发明的?;し段Р⒉痪窒抻诖?,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的?;し段е?。因此,本发明的?;し段вλ鲆匀ɡ蟮谋;し段?。

    关于本文
    本文标题:一种跨页预取方法、装置及系统.pdf
    链接地址://www.4mum.com.cn/p-6110585.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    [email protected] 2017-2018 www.4mum.com.cn网站版权所有
    经营许可证编号:粤ICP备17046363号-1 
     


    收起
    展开
  • 四川郎酒股份有限公司获第十二届人民企业社会责任奖年度环保奖 2019-05-13
  • 银保监会新规剑指大企业多头融资和过度融资 2019-05-12
  • 韩国再提4国联合申办世界杯 中国网友无视:我们自己来 2019-05-11
  • 中国人为什么一定要买房? 2019-05-11
  • 十九大精神进校园:风正扬帆当有为 勇做时代弄潮儿 2019-05-10
  • 粽叶飘香幸福邻里——廊坊市举办“我们的节日·端午”主题活动 2019-05-09
  • 太原设禁鸣路段 设备在测试中 2019-05-09
  • 拜耳医药保健有限公司获第十二届人民企业社会责任奖年度企业奖 2019-05-08
  • “港独”没出路!“梁天琦们”该醒醒了 2019-05-07
  • 陈卫平:中国文化内涵包含三方面 文化复兴表现在其中 2019-05-06
  • 人民日报客户端辟谣:“合成军装照”产品请放心使用 2019-05-05
  • 【十九大·理论新视野】为什么要“建设现代化经济体系”?   2019-05-04
  • 聚焦2017年乌鲁木齐市老城区改造提升工程 2019-05-04
  • 【专家谈】上合组织——构建区域命运共同体的有力实践者 2019-05-03
  • 【华商侃车NO.192】 亲!楼市火爆,别忘了买车位啊! 2019-05-03
  • 吉林时时论坛 腾讯分分彩后三组选包胆倍数 重庆时时预测下一把 彩票最稳的计划软件 黑龙江时时官网lm0 稳计划软件 分分彩怎么压稳赚不亏 老时时2星怎么买 扫码赚钱的软件 有优惠活动的彩票平台 极速时时75秒官方 彩神广东11选5全能版 五分快三免费计划软件 京pk10是正规彩票吗 时时彩独胆100%稳赚 福彩3d组选6投注技巧