[发明专利]一种数据预取方法、相关装置及系统有效
申请号: | 201380001332.5 | 申请日: | 2013-04-01 |
公开(公告)号: | CN103608768B | 公开(公告)日: | 2017-03-01 |
发明(设计)人: | 钟云德;陈龙;毕波 | 申请(专利权)人: | 华为技术有限公司 |
主分类号: | G06F9/30 | 分类号: | G06F9/30;G06F12/08 |
代理公司: | 广州三环专利代理有限公司44202 | 代理人: | 郝传鑫,熊永强 |
地址: | 518129 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 数据 方法 相关 装置 系统 | ||
技术领域
本发明涉及计算机技术领域,尤其涉及一种数据预取方法、相关装置及系统。
背景技术
在现有的计算机系统中,虽然处理器如CPU(Central Processing Unit,中央处理器)主频的提升会带动系统性能的改善,但系统性能的提高不仅仅取决于CPU,还与系统架构、指令结构、信息在各个部件之间的传送速度及存储部件的存取速度等因素有关,特别是与CPU/内存之间的存取速度有关。若CPU工作速度较高,但内存存取速度相对较低,则造成CPU等待,降低处理速度,浪费CPU的能力。
当前减少CPU与内存之间速度差异的方法主要有以下几种方式:
在基本总线周期中插入等待,但这样会浪费CPU的能力;
采用存取时间较快的SRAM作存储器,这样虽然解决了CPU与存储器间速度不匹配的问题,但却大幅提升了系统成本;
在慢速的DRAM和快速CPU之间插入一速度较快、容量较小的SRAM,起到缓冲作用;使CPU既可以以较快速度存取SRAM中的数据,又不使系统成本上升过高,这就是Cache法;
采用新型的高速存储器。
目前,一般采用Cache法减少CPU与内存之间速度差异,它使硬件系统在不大增加成本的前提下,使计算处理性能提升的一个非常有效的技术。
Cache的工作原理是基于程序访问的局部性。对大量典型程序运行情况的分析结果表明,在一个较短的时间间隔内,由程序产生的地址往往集中在存储器逻辑地址空间的很小范围内。指令地址的分布本来就是连续的,再加上循环程序段和子程序段要重复执行多次。因此,对这些地址的访问就自然地具有时间上集中分布的倾向。虽然数据分布的这种集中倾向不如指令明显,但是对数组的存储和访问以及工作单元的选择都可以使存储器地址相对集中。这种对局部范围的存储器地址频繁访问,而对此范围以外的地址则访问甚少的现象,就称为程序访问的局部性。
根据程序的局部性原理,可以在主存和CPU通用寄存器之间设置一个高速但容量相对较小的存储器,把正在执行的指令地址附近的一部分指令或数据从主存调入这个存储器,供CPU在一段时间内使用。这对提高程序的运行速度有很大的作用。这个介于主存和CPU之间的高速小容量存储器称作高速缓冲存储器Cache。
系统正是依据局部性原理,不断地将与当前指令集相关联的一个不太大的后继指令集从内存读到Cache,然后再与CPU高速传送,从而达到速度匹配。CPU对存储器进行数据请求时,通常先访问Cache。由于局部性原理不能保证所请求的数据百分之百地在Cache中,这里便存在一个命中率,即CPU在任一时刻从Cache中可靠获取数据的几率。命中率越高,正确获取数据的可靠性就越大。为了提高数据的命中率,就需要选择适当的数据预取方式。
数据预取技术是提高计算机系统处理速度的有效方法。预取是指在指令或数据即将访问之前,将所需指令或数据提前从内存取至Cache,以达到访问时Cache命中的目的。针对预取的对象是指令还是数据,可分为指令预取和数据预取。目前使用的预取技术大多为软硬件结合预取技术。
软硬件结合的预取技术中,首先确定任务中需要预取数据的程序段,然后由计算机系统的硬件来决定预取的数据的数目并到内存中预取相应的数据流。发明人发现,现有技术中的软硬件结合的预取方式预取数据时,在任务对应的可执行程序的运行过程中,硬件需要一直处于预取状态,会带来不必要的能量消耗,并且硬件一直处理预取状态还可能产生不必要的预取操作,导致Cache污染等问题。
发明内容
本发明实施例提供一种数据预取方法、相关装置及系统,可控制硬件的预取状态的开启和关闭,以节约功耗并一定程度上避免Cache污染。
第一方面,本发明实施例提供了一种数据预取方法,包括:
运行可执行程序;
当运行到插入在所述可执行程序中的预取代码时,根据该预取代码的指示,对到数据存储器预取数据进行控制;
其中,所述根据该预取代码的指示对到数据存储器中预取数据进行控制包括:
若所述预取代码包括用于指示开启预取功能的预取开启代码,控制开启预取功能到数据存储器中预取数据;若所述预取代码包括用于指示关闭预取功能的预取关闭代码,控制关闭预取功能停止到数据存储器中预取数据。
结合第一方面,在第一种可能的实现方式中,所述运行可执行程序之前,还包括:
在所述可执行程序的预编译过程中,识别确定出所述可执行程序中密集访存的代码区间,并在所述密集访存的代码区间插入所述预取代码。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司,未经华为技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201380001332.5/2.html,转载请声明来源钻瓜专利网。
- 上一篇:通信系统
- 下一篇:一种射孔枪的盲孔定位键槽加工装置
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置