[发明专利]多级指令高速缓存预取有效
申请号: | 201210520348.4 | 申请日: | 2012-12-06 |
公开(公告)号: | CN103218309A | 公开(公告)日: | 2013-07-24 |
发明(设计)人: | 王若凡;杰克·希莱尔·肖凯特 | 申请(专利权)人: | 辉达公司 |
主分类号: | G06F12/08 | 分类号: | G06F12/08 |
代理公司: | 北京市磐华律师事务所 11336 | 代理人: | 徐丁峰;魏宁 |
地址: | 美国加利*** | 国省代码: | 美国;US |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 多级 指令 高速缓存 | ||
技术领域
本发明总地涉及计算机架构,并且,更具体地,涉及用于多线程处理器的多级指令高速缓存预取。
背景技术
在诸如多线程处理器的高速计算系统中的惯例是利用多级高速缓存系统来在获取(fetch)指令期间减少延迟。第一级高速缓存级别称为一级(L1)高速缓存并且一般是与处理器紧密相关的小型高速存储器。L1高速缓存通常具有各种高速缓存级别的最低存储器访问延迟并且含有处理器频繁访问或有可能最近要访问的指令。当在由处理器访问指令之时或之前将指令存储在L1高速缓存中时,性能得到提高。二级(L2)高速缓存一般是比L1高速缓存更大且更慢、但比系统存储器快的存储器。一些高速缓存系统可采用在L1和L2高速缓存之间的、延迟和大小处于L1和L2高速缓存之间某处的中间级(L1.5)高速缓存。
常规地,当处理器访问新指令时,处理系统内的获取单元首先在L1高速缓存中搜寻指令。如果L1高速缓存命中(即指令实际上存在于L1高速缓存中),那么转移(transfer)指令并执行存储器访问操作。如果指令不在L1高速缓存中,那么L1高速缓存未命中(miss),并且获取单元不得不尝试在L1.5高速缓存中寻找指令。如果在L1.5高速缓存中未命中,那么获取单元随后在L2高速缓存中搜寻指令,并且如果L2高速缓存未命中,那么最后搜索系统存储器。
当以可预见的方式进行指令访问时,可通过在处理器尝试从L1高速缓存访问相应的指令之前从L1.5高速缓存预取高速缓存线并转移这些高速缓存线至L1高速缓存来改善L1高速缓存命中率。处理器可预见地在连续的存储器地址位置访问指令,除非出现至非序列性(non-sequential)存储器位置的支路。因此,如果处理器正在访问在特定L1高速缓存线的位置,那么获取单元一般从L1.5高速缓存预取高速缓存线,其含有紧跟随当前L1高速缓存线的存储器位置。该下一个的高速缓存线可称为预取目标,并且位于在紧跟随与当前L1高速缓存线相对应的L1.5高速缓存地址的L1.5高速缓存内。如果预取操作成功,那么到处理器到达紧跟随当前L1高速缓存线的存储器地址位置时,下一个L1高速缓存线已从L1.5高速缓存被预取并存储在更快的L1高速缓存内。用这种方式,成功的预取增加了在L1高速缓存内的命中率。序列性的存储器访问一般致使高速缓存命中。可在高速缓存层级内的任一级采用类似的技术。例如,L1.5高速缓存可从L2高速缓存预取线,并且L2高速缓存可从系统存储器预取线。
在一种预取方法中,处理器可一次从L1高速缓存访问两条指令,其中每个L1高速缓存线均包括八条指令。这种技术称作“扇形”访问,其中每对指令代表L1高速缓存线内的“扇区(sector)”,且每个L1高速缓存线具有四个扇区。获取单元在任意给定时间监视处理器访问哪个扇区并使用该信息来预取下一个L1高速缓存线。此外,如果预取操作成功,那么到处理器消耗当前L1高速缓存线中最后的扇区时,下一个L1高速缓存已从L1.5高速缓存被预取并存储在L1高速缓存内。
该常规方法预取指令的一个缺点是,更快的处理器可一次转移整个L1高速缓存线(在该示例中含有八条指令)。在这种情况下,为了从L1.5高速缓存预取附加的高速缓存线,获取单元不能逐扇区地监视处理器访问。该方法的另一个缺点是,更快的处理器可以以如此高的速率消耗指令,以致于获取单元不能足够快地预取L1高速缓存线,致使高速缓存未命中增加。为了克服该第二种问题,获取单元可从L1.5高速缓存向前预取两个L1高速缓存线,力图在处理器访问L1高速缓存线之前填充那些线。然而,如果有指向非序列性位置的支路,则处理器通常以引发两个或更多个高速缓存未命中而结束,对于每条所执行的支路,不是只一个高速缓存未命中,而是支路目标的前两个高速缓存线的每一个都有一个高速缓存未命中。因此,高速缓存未命中增加,从而降低了总体性能。
如前述示出的,本领域中需要更优化的方式来在具有多级指令高速缓存层级的系统中预取指令。
发明内容
本发明的一个实施例阐释了用于预取高速缓存线的计算机实现的方法。获取单元确定在第一高速缓存内的存储器位置。所述获取单元生成伪随机数。所述获取单元随后选择在所述第一高速缓存内的与所述存储器位置和所述伪随机数相关联的第一高速缓存线。所述获取单元在第二高速缓存内的第一高速缓存线内定位第一扇区,其中所述第一扇区与在所述第一高速缓存内的所述第一高速缓存线相对应。所述获取单元随后转移所述第一扇区到在所述第一高速缓存内的所述第一高速缓存线。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于辉达公司,未经辉达公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210520348.4/2.html,转载请声明来源钻瓜专利网。