[发明专利]预执行指导的数据预取方法及系统无效
| 申请号: | 201110096900.7 | 申请日: | 2011-04-18 |
| 公开(公告)号: | CN102156633A | 公开(公告)日: | 2011-08-17 |
| 发明(设计)人: | 程旭;党向磊;王箫音;佟冬;陆俊林;王克义 | 申请(专利权)人: | 北京北大众志微系统科技有限责任公司 |
| 主分类号: | G06F9/38 | 分类号: | G06F9/38 |
| 代理公司: | 北京安信方达知识产权代理有限公司 11262 | 代理人: | 栗若木;王漪 |
| 地址: | 100080 北京市海淀*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 执行 指导 数据 方法 系统 | ||
技术领域
本发明涉及数据预取技术,尤其涉及一种预执行(Pre-execution)指导的数据预取方法及系统。
背景技术
随着处理器和存储器性能差距的不断扩大,访存延时对处理器性能的影响日益严重,已经成为制约处理器性能提升的主要瓶颈。虽然高速缓存(Cache)的使用可以有效地填补处理器与存储器之间的性能鸿沟,但是高速缓存设计往往采用按需数据取回策略,无法有效处理应用程序中复杂多样的访存地址模式。随着应用程序工作集的不断扩大,即使采用大容量片上缓存也可能难以满足应用程序的数据访问需求。因此,如何有效降低或隐藏访存延时,是高性能处理器设计的关键问题之一。
数据预取技术是一种已经被广泛应用的访存延时包容技术,它在处理器真正需要某数据之前就预测其访存地址并提前发出请求,而不需要等到发生缓存失效后再发起主存访问,从而达到将访存延时隐藏的效果。
预取的实现主要可以分为软件预取和硬件预取两种。
软件预取通常由程序员手动或编译器自动在程序中插入专门的预取指令来触发预取。软件预取指令不仅会占用额外的处理器执行周期,而且会增加代码体积。此外,软件预取往往借助对程序静态访存特性的剖视来插入预取指令,因而无法对程序运行时刻的动态访存特性加以利用,并且,软件预取无法加速各种以二进制可执行文件形式存在的程序。
硬件预取通常由硬件预取器在运行时监测程序执行过程中可重复的访存地址模式并自动发起预取请求。硬件预取能够捕获并利用程序运行时刻的动态访存特性,从而进行准确和及时的预取。硬件预取还可以避免由预取指令带来的执行周期和代码体积的开销,并且不受程序是否可重新编译的限制。
传统的硬件预取技术可主要分为基于相关性的预取(Correlation-based Prefetching)和跨距预取(Stride Prefetching)两类。
基于相关性的预取发掘并记录程序执行过程中特定的相关性规律和事件,并在监测到这些相关性规律和事件重复发生时触发相应的预取请求。该技术需要使用大容量(通常为兆比特(MB)级)的存储结构对相关性历史信息及相应的预取地址进行记录,这会造成不容忽视的复杂度和硬件开销,使其很难被应用到实际的处理器中。
与基于相关性的预取相比,跨距预取是一种复杂度和硬件开销较低的预取技术,目前已被广泛应用于英特尔(Intel)奔腾(Pentium)4和IBM Power6等商用处理器中。跨距预取技术主要基于访存的空间局部性规律进行数据预取,主要适用于规则的访存模式。
预执行技术也是一种简单有效的访存延时包容技术。
为了避免流水线由于长延时的缓存失效(比如二级缓存(L2Cache)失效)而停顿,预执行技术利用处理器的空闲周期预先执行失效访存指令的后续指令,通过对程序中存储级并行的充分发掘以及对访存带宽资源的有效利用,达到将多个主存访问的延时相重叠的效果。通过对发生L2Cache失效指令的后续指令的预先执行,预执行技术能够对任意访存模式进行精确的数据预取。
本发明的发明人经分析后发现:
与预执行相比,跨距预取的优势主要体现在两个方面。
首先,跨距预取可以在任意时刻对符合跨距访存模式的地址进行预取,而预执行只在L2Cache失效引发处理器进入预执行模式后才进行预取。
其次,预执行发起预取的提前时间不够长,可能导致在处理器需要某数据时,对该数据的预取请求尚未完成,而跨距预取能够较早地发起预取请求,从而保证预取数据在处理器需要之前及时返回。
与跨距预取相比,预执行的优势主要体现在两个方面。
首先,预执行能够通过对真实指令片段的提前执行进行精确的预取,而跨距预取则是使用预测的访存地址进行预取。
其次,预执行能够对非规则的访存模式进行预取,而跨距预取只能对规则的访存模式进行预取。
由以上分析可以看出,跨距预取与预执行有着各自的特点和优势,因此,可以考虑将两者的优势进行有效结合,使各自都能发挥更大效用,从而进一步改善处理器的性能。
发明内容
本发明所要解决的技术问题是需要提供一种预执行指导的数据预取技术,克服现有技术没有很好地将预执行和跨距预取这两种数据预取技术融合的不足。
为了解决上述技术问题,本发明提供了一种预执行指导的数据预取方法,该方法包括:
跨距预取器监测二级缓存失效访存序列,并在捕获到跨距访存模式时自动触发预取请求;
在监测到二级缓存访问发生失效时,处理器对当前的寄存器状态进行备份,转换到预执行模式;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京北大众志微系统科技有限责任公司,未经北京北大众志微系统科技有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110096900.7/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种叠加别墅
- 下一篇:电容式触摸屏及其制造方法和触摸显示器件
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置





