[发明专利]推测版本控制高速缓存内的检查点有效
申请号: | 201080036698.2 | 申请日: | 2010-07-19 |
公开(公告)号: | CN102473156A | 公开(公告)日: | 2012-05-23 |
发明(设计)人: | A·埃钦伯格;A·加拉;M·格什温;M·奥赫马特 | 申请(专利权)人: | 国际商业机器公司 |
主分类号: | G06F15/00 | 分类号: | G06F15/00;G06F9/00 |
代理公司: | 中国国际贸易促进委员会专利商标事务所 11038 | 代理人: | 申发振 |
地址: | 美国*** | 国省代码: | 美国;US |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 推测 版本 控制 高速缓存 检查点 | ||
在美国政府支持下根据能源部授于的合同No.B554331做出本发明。美国政府具有本发明中的一定权利。
技术领域
本申请一般地涉及改进的数据处理装置和方法,并且更特别地,涉及执行推测版本控制高速缓存内的检查点,并且在某些实施例中,基于用于这些推测版本控制高速缓存的版本压力反馈机制执行这种检查点。
背景技术
推测版本控制高速缓存是能够存储高速缓存行的多个版本以便使得能够在多线程数据处理环境中实现线程的推测执行的高速缓存存储器结构。线程的推测执行是一种优化技术,根据该技术,进行线程的提早执行(该线程的结果可能是或不是以后需要的),以便如果在代码的执行过程中需要该线程的结果(即,如果线程从推测状态转变为使用所述结果的非推测状态)的情况下实现更好的性能。推测版本控制高速缓存是典型高速缓存的扩展,其中推测版本控制高速缓存能够保持仅能被写该推测版本控制高速缓存的硬件线程访问的数据。所有带有修改注释的高速缓存行可被使用特殊命令(Abort,丢弃)丢弃,或使用另一种命令(commit,提交)使得其在结构上被其它线程可见。
取决于模式,还可以由执行对应于逻辑后继任务的任务的其它线程访问在执行推测任务时由硬件线程写的数据。因此,推测版本控制需要在存储器位置的多个缓冲版本中追踪程序顺序,以便确保一定的顺序程序语义。首先,加载必须最终读取由对相同存储器位置的最近存储创建的值。这需要如果在该存储之前执行加载并且不正确地读取以前的版本,该加载必须被粉碎(squash)并且重新执行。另外,这需要在程序顺序中在该加载之后对相同存储器位置的所有存储必须被缓冲,直到该加载被执行为止。其次,存储器位置必须最终具有与版本的创建顺序无关的正确版本。从而,一个位置的推测版本必须被以程序顺序提交给体系结构存储设备。
通过提供与推测线程相关联地存储高速缓存行的推测版本的能力,推测版本控制高速缓存支持推测多线程。在Gopal等的“Speculative Versioning Cache,”Proceedings of the 4th International Symposium on High-Performance Computer Architecture,January 31 to February 04,1998,page 195中描述了推测版本控制高速缓存的一个例子。在推测版本控制高速缓存的这个例子中,为每个处理器提供专有高速缓存,以类似于基于探听总线的高速缓存一致性对称多处理器(SMP)组织系统。在专有高速缓存中命中的存储器引用不如同SMP中那样使用总线。任务提交不全体回写推测版本。当下次被访问时,每个高速缓存行被单独处理。
采用Gopal等描述的推测版本控制高速缓存,程序被划分为被称为任务的片段,这些任务形成对应于它们在动态指令流内的顺序的序列。更高层次的控制单元预测该序列中的下一个任务,并且将其分配到空闲处理器以便执行。每个处理器执行分配给它的任务中的指令,并且在其专有高速缓存中缓冲由该任务创建的推测状态。当检测到任务误预测时,包括不正确预测的任务和其之后的任务的该序列内的所有任务的推测状态被无效,并且释放对应的处理器。这被称为任务粉碎。然后分配该序列内的正确任务以便执行。当任务预测已被无效时,它通过将推测性缓冲状态拷贝到体系结构存储设备(例如,数据高速缓存)而提交。任务按照程序顺序一个接一个地提交。一旦任务提交,其处理器被释放以便执行下一个任务。由于任务按照程序顺序提交,因此任务被按照程序顺序分配给处理器。
一旦加载的地址可获得,任务就执行该加载,推测该序列内的前面任务中的存储不向相同位置写。该位置的最近的以前版本被提供给该加载。记录被提供了以前任务的版本的加载,以便指示在潜在定义之前的使用。如果发生了定义,例如,以前任务中对相同位置的存储,该加载被提供了不正确的版本,并且违反了存储器相关性。
当一个任务向一个存储器位置执行存储时,其被通知给序列内所有以后的活动任务。当一个任务从以前的任务接收到一个位置的新版本时,如果为该位置记录了定义之前的使用,即检测到存储器相关性违反,该任务被粉碎。在被粉碎的任务之后的所有任务也被作为任务误预测粉碎。
最早的活动任务是非推测性的,并且可以将其推测存储器状态(即,由这个任务中的存储创建的版本)提交给体系结构存储设备。提交一个版本涉及逻辑地将版本从推测缓冲器拷贝到体系结构存储设备,例如,数据高速缓存。当任务被粉碎时,与任务相关联的推测状态被无效,并且不被提交给体系结构存储设备。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于国际商业机器公司,未经国际商业机器公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201080036698.2/2.html,转载请声明来源钻瓜专利网。
- 上一篇:半导体装置的制造方法
- 下一篇:镀膜装置