一种数据预取的方法和系统技术方案

技术编号:10185520 阅读:132 留言:0更新日期:2014-07-04 16:24
本发明专利技术公开了一种数据预取的方法和系统。本发明专利技术实施例采用预先对本地终端和与本地终端相连的远端终端设置不同的预取深度值,当预取系统接收到处理器发送的访存地址时,对该访存地址所属的终端进行区分判断,从而得到相应的预取深度值。本发明专利技术可在不增设额外预取系统情况下提高高速缓存命中率,降低访问远端内存的时延,降低了成本。同时提供软件编程接口,可在运行时动态修改各终端对应的预取深度值。

【技术实现步骤摘要】
一种数据预取的方法和系统
本专利技术涉及通信
,具体涉及一种数据预取的方法和系统。
技术介绍
随着信息技术的迅速发展,网络规模随着用户数呈指数级增长,也越来越庞大,为了支持断接操作采用了预取技术,预取技术利用程序的局部性原理,从主存预取数据到缓存器中,使处理器访存时直接从缓存器中取数据,大大减少访存时间和网络延迟,提高系统性能。预取技术可以分为软件预取和硬件预取。目前,对于软件预取,大部分的处理器支持不同格式的预取指令,但通过指令进行数据预取会有指令开销;硬件预取技术在真实环境中应用广泛,它不需要程序员和编译器的参与,不需要修改可执行文件,所以没有指令开销,硬件预取也可以利用系统运行时的信息修改预取系统参数,使预取更加有效。在服务器集群中,利用互联技术,可以在节点之间共享内存,即有些节点可以使用不属于自己的内存,而使用远端节点的内存,但是访问远端内存的时延要比访问本地内存的时延高很多。假设有个节点使用了不属于自己的内存,该节点上的预取器不区分处理器发出的访存地址是本地内存还是远端内存,也就无法针对访问远端内存的情况进行数据预取优化。本专利技术的专利技术人发现,现有的只针对节点的本地内存进行数据预取,不考虑节点使用远端内存的预取方法无法降低访问远端内存的时延,这将导致在使用远端内存的集群中,降低系统系能。
技术实现思路
本专利技术实施例提供一种数据预取的方法和系统,以期在互联的集群系统中,区分对待处理器访问本地内存和远端内存的情况,改进针对远端内存的预取方式,减少访问远端内存的时延,提高系统整体性能。第一方面,本专利技术实施例提供一种数据预取的方法,包括:接收第一终端的处理器发送的访存地址;根据预设的第一关系表获取所述访存地址所属的终端及所述终端对应的预取深度值,其中,所述第一关系表包括所述第一终端对应的预取深度值、与所述第一终端相连的终端的内存地址、及与所述第一终端相连的终端对应的预取深度值;利用获取的预取深度值对所述第一终端进行数据预取。在第一种可能的实施方式中,结合第一方面,所述根据预设的第一关系表获取所述访存地址所属的终端及所述终端对应的预取深度值包括:将接收到的访存地址与所述第一关系表中的与所述第一终端相连的终端的内存地址进行匹配,若匹配成功,则根据第一关系表获取与所述第一终端相连的终端的内存地址所对应的预取深度值;若匹配不成功,则根据所述第一关系表获取所述第一终端对应的预取深度值。在第二种可能的实施方式中,结合第一方面或者第一方面的第一种可能的实施方式,所述第一关系表中的第一终端对应的预取深度值、与所述第一终端相连的终端对应的预取深度值分别存储于M个预取深度寄存其中,与所述第一终端相连的终端的内存地址分别存储于N个地址寄存器中,其中,M和N都为正整数。在第三种可能的实施方式中,结合第二种可能的实施方式,所述根据第一关系表获取所述访存地址所属的终端及所述终端对应的预取深度值包括:将接收到的访存地址依次与所述N个地址寄存器中存储的内存地址进行匹配;若匹配成功,则从所述N个预取深度寄存器中,选择与匹配成功的地址寄存器相对应的预取深度寄存器,并获取预取深度值;若匹配不成功,则从第一终端对应的预取深度寄存器中获取预取深度值。其中,在上述的实施方式中,所述访存地址为所述处理器发送的虚拟地址经旁路转换缓冲TLB转换后得到的物理地址。在第四种可能的实施方式中,所述数据预取的方法还包括定期对所述第一关系表中的所述第一终端对应的预取深度值、与所述第一终端相连的终端对应的预取深度值进行更新。在第五种可能的实施方式中,结合第二种可能的实施方式,所述将接收到的访存地址依次与所述N个地址寄存器中存储的内存地址进行匹配具体包括:将所述访存地址与预设的地址掩码进行相与运算;将相与运算后所得结果依次与所述N个地址寄存器中存储的内存地址进行匹配。第二方面,本专利技术实施例还提供一种数据预取的系统,包括:接收模块,用于接收第一终端的处理器发送的访存地址;获取模块,用于根据预设的第一关系表获取所述访存地址所属的终端及所述终端对应的预取深度值,其中,所述第一关系表包括第一终端对应的预取深度值、与所述第一终端相连的终端的内存地址、及与所述第一终端相连的终端对应的预取深度值;预取模块,利用所述获取模块获取的预取深度值对所述第一终端进行数据预取。在第一种可能的实施方式中,结合第二方面,所述获取模块中包括:第一匹配单元,用于将所述接收模块接收到的访存地址与所述第一关系表中的与所述第一终端相连的终端的内存地址进行匹配;第一调取单元,用于当所述第一匹配模块匹配成功时,根据所述第一关系表获取与所述第一终端相连的终端对应的预取深度值;当所述第一匹配模块匹配不成功时,根据所述第一关系表获取所述第一终端对应的预取深度值。在第二种可能的实施方式中,结合第二方面,所述获取模块中包括N个地址寄存器、M个预取深度寄存器、第二匹配单元和第二调取单元,其中,N和M为正整数;所述N个地址寄存器分别用于存储与所述第一终端相连的终端的内存地址;所述M个预取深度寄存器分别用于存储所述第一终端对应的预取深度值,或者与所述第一终端相连的终端对应的预取深度值;所述第二匹配单元用于将所述接收模块所接收的访存地址依次与所述N个地址寄存器中存储的内存地址进行匹配;所述第二调取单元用于当所述第二匹配单元匹配成功时,从所述M个预取深度寄存器中选择与匹配成功的地址寄存器相对应的预取深度寄存器并获取预取深度值;当所述第二匹配单元匹配不成功时,从所述第一终端对应的预取深度寄存器中调取第一终端对应的预取深度值。在第三种可能的实施方式中,结合第二方面或者第二方面的第一种可能的实施方式或者第二方面第二种可能的实施方式,所述数据预取的系统还包括转换模块,所述转换模块连接所述接收模块,用于将所述第一终端的处理器发送的虚拟的访存地址转换为物理的访存地址后发送给所述接收模块。在第四种可能的实施方式中,结合第二方面或者第二方面的第一种或者第二种或者第三种可能的实施方式,所述数据预取的系统还包括更新模块,用于定期对所述第一关系表中的所述第一终端对应的预取深度值、与所述第一终端相连的终端对应的预取深度值进行更新。在第五种可能的实施方式中,结合第二种可能的实施方式,所述数据预取的系统还包括掩码寄存器,用于存储地址掩码;所述第二匹配单元用于将所述接收模块接收的访存地址与所述掩码寄存器中的地址掩码进行相与运算,将相与运算后所得结果依次与所述N个地址寄存器中存储的内存地址进行匹配。本专利技术实施例提供的数据预取的方法对本地终端的第一终端和与第一终端相连的远端终端各自设置相适应的预取深度值,当接收到处理器发送的访存地址时,对该访存地址所属的终端进行判断,从而得到相应的预取深度值,本专利技术可在不增设额外预取系统情况下提高高速缓存命中率,降低访问远端内存的时延,降低了成本,同时提供软件编程接口,可在运行时动态修改各终端对应的预取深度值。附图说明图1是本专利技术实施例提供的数据预取方法的基本流程示意图;图2是本专利技术实施例提供的数据预取系统的基本逻辑结构示意图;图3是本专利技术实施例提供的另一种数据预取系统的基本逻辑结构示意图;图4是本专利技术实施例提供的另一种数据预取系统的基本逻辑结构示意图;图5是本专利技术实施例提供的另一种数据预取系统的基本逻辑结构示意图本文档来自技高网...
一种数据预取的方法和系统

【技术保护点】
一种数据预取的方法,其特征在于,包括:接收第一终端的处理器发送的访存地址;根据预设的第一关系表获取所述访存地址所属的终端及所述终端对应的预取深度值,其中,所述第一关系表包括所述第一终端对应的预取深度值、与所述第一终端相连的终端的内存地址、及与所述第一终端相连的终端对应的预取深度值;利用获取的预取深度值对所述第一终端进行数据预取。

【技术特征摘要】
1.一种数据预取的方法,其特征在于,包括:接收第一终端的处理器发送的访存地址;根据预设的第一关系表获取所述访存地址所属的终端及所述访存地址所属的终端对应的预取深度值,其中,所述第一关系表包括所述第一终端对应的预取深度值、与所述第一终端相连的终端的内存地址、及与所述第一终端相连的终端对应的预取深度值;利用获取的预取深度值对所述第一终端进行数据预取;其中,所述根据预设的第一关系表获取所述访存地址所属的终端及所述访存地址所属的终端对应的预取深度值包括:将接收到的访存地址与所述第一关系表中的与所述第一终端相连的终端的内存地址进行匹配,若匹配成功,则根据第一关系表获取与所述第一终端相连的终端的内存地址所对应的预取深度值;若匹配不成功,则根据所述第一关系表获取所述第一终端对应的预取深度值;或,所述第一关系表中的第一终端对应的预取深度值、与所述第一终端相连的终端对应的预取深度值分别存储于M个预取深度寄存器中,与所述第一终端相连的终端的内存地址分别存储于N个地址寄存器中,其中,M和N都为正整数;所述根据第一关系表获取所述访存地址所属的终端及所述访存地址所属的终端对应的预取深度值包括:将接收到的访存地址依次与所述N个地址寄存器中存储的内存地址进行匹配;若匹配成功,则从所述M个预取深度寄存器中,选择与匹配成功的地址寄存器相对应的预取深度寄存器,并获取预取深度值;若匹配不成功,则从第一终端对应的预取深度寄存器中获取预取深度值。2.根据权利要求1所述的数据预取的方法,其特征在于,所述访存地址为所述处理器发送的虚拟地址经旁路转换缓冲TLB转换后得到的物理地址。3.根据权利要求1所述的数据预取的方法,其特征在于,还包括:定期对所述第一关系表中的所述第一终端对应的预取深度值、与所述第一终端相连的终端对应的预取深度值进行更新。4.根据权利要求1所述的数据预取的方法,其特征在于,所述将接收到的访存地址依次与所述N个地址寄存器中存储的内存地址进行匹配具体包括:将所述访存地址与预设的地址掩码进行相与运算;将相与运算后所得结果依次与所述N个地址寄存器中存储的内存地址进行匹配。5.一种数据预取的系统,其特征在于,包括:接收模块,用于接收第一终端的处理器发送的访存地址;获取...

【专利技术属性】
技术研发人员:张乾龙江涛侯锐张立新
申请(专利权)人:华为技术有限公司中国科学院计算技术研究所
类型:发明
国别省市:广东;44

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

1