[发明专利]推测性加载分发有效
| 申请号: | 201410047131.5 | 申请日: | 2014-02-11 |
| 公开(公告)号: | CN103984643A | 公开(公告)日: | 2014-08-13 |
| 发明(设计)人: | H·杰克逊 | 申请(专利权)人: | 想象力科技有限公司 |
| 主分类号: | G06F12/08 | 分类号: | G06F12/08;G06F9/445 |
| 代理公司: | 永新专利商标代理有限公司 72002 | 代理人: | 王英;张立达 |
| 地址: | 英国赫*** | 国省代码: | 英国;GB |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 推测 加载 分发 | ||
背景技术
在乱序处理器中,在解析位于加载指令之前的所有存储指令的存储器地址之前,可能不会向该存储器地址安全地分发加载指令。这是因为如果之前的存储指令写入到由该加载指令读取的存储器地址,则该加载指令应该读取由该存储指令写入的数据,而不是存储器中的数据,以便确保它具有最近的数据。然而,停止加载指令直到解析了所有之前的存储指令的存储器地址为止,会引起不必要的延迟。
在一些乱序处理器中,通过在解析所有之前的存储指令的存储器地址之前推测性地将加载指令分发到存储器来解决这一问题。如果之前的存储指令稍后被确定为与该加载指令写入到相同的存储器地址,则该加载指令被倒回并且使用正确的数据。然而,倒回是复杂且昂贵的,并且理想地应该被避免。
在一些乱序处理器中,通过以加载指令与之前的存储指令在过去是否冲突为基础来预测它们是否将冲突(例如,存储指令将与加载指令写入到相同的存储器地址),减少倒回的数量。例如,程序计数器可以用于浏览表格以便确定加载和存储指令在过去是否冲突。如果它们在过去冲突,则加载指令可以不被分发,直到解析了存储指令的存储器地址为止。这一技术在加载指令和存储指令在循环中并且因而被重复执行的情况下是有用的。
下面描述的实施例并不局限于解决已知的乱序处理器的任何或所有缺点的实现。
发明内容
提供这一发明内容以便以简化的形式引入下面在具体实施方式中进一步描述的概念的选择。这一发明内容并不意在识别请求保护的主题的关键特征或本质特征,也不意在用作确定请求保护的主题的范围时的辅助。
本文描述了用于将加载指令分发到数据高速缓存的方法以及加载和存储缓冲器。所述方法包括确定所述存储缓冲器中是否存在比所述加载指令更旧的任何未解析的存储指令。如果所述存储缓冲器中存在比所述加载指令更旧的至少一个未解析的存储指令,则确定所述存储缓冲器中最旧的未解析的存储指令是否在所述加载指令的推测窗内。如果所述最旧的未解析的存储指令在所述加载指令的推测窗内,则将所述加载指令推测性地分发到数据高速缓存。否则,所述加载指令被停止,直到解析了所述推测窗外侧的任何未解析的存储指令为止。推测窗是可以定义紧接着在所述加载指令之前的指令或存储指令的数量的短窗。
第一方面提供一种将程序中的加载指令分发到数据高速缓存的方法,所述方法包括:在加载和存储逻辑单元处确定存储缓冲器中是否存在比所述加载指令更旧的任何未解析的存储指令;如果所述存储缓冲器中存在比所述加载指令更旧的至少一个未解析的存储指令,则在所述加载和存储逻辑单元处确定所述存储缓冲器中最旧的未解析的存储指令是否在所述加载指令的推测窗内;并且如果所述最旧的未解析的存储指令在所述加载指令的推测窗内,则将所述加载指令推测性地分发到所述数据高速缓存。
第二方面提供一种用于将程序中的加载指令分发到数据高速缓存的加载和存储缓冲器,所述加载和存储缓冲器包括:用于存储一个或多个存储指令的存储缓冲器;以及与所述存储缓冲器通信的加载和存储逻辑单元,所述加载和存储逻辑单元配置为:确定所述存储缓冲器中是否存在比所述加载指令更旧的任何未解析的存储指令;如果在所述存储缓冲器中存在比所述加载指令更旧的至少一个未解析的存储指令,则确定所述存储缓冲器中最旧的未解析的存储指令是否在所述加载指令的推测窗内;并且如果所述最旧的未解析的存储指令在所述加载指令的推测窗内,则将所述加载指令推测性地分发到所述数据高速缓存。
第三方面提供一种包括所述第二方面的加载和存储缓冲器的乱序处理器。
第四方面提供一种如实质上参照图2描述的加载和存储缓冲器。
第五方面提供一种将加载指令分发到如实质上参照图4描述的数据高速缓存的方法。
第六方面提供一种动态地调整如实质上参照图5描述的推测窗的尺寸的方法。
本文描述的方法可以由计算机执行,所述计算机配置有以机器可读形式存储在有形存储介质上的软件,例如包括用于配置计算机以便执行所述方法的构成部分的计算机程序代码的计算机程序的形式。有形(或非暂态)存储介质的示例包括磁盘、拇指驱动、存储卡等等,并且不包括传播的信号。软件可以适合于在并行处理器或串行处理器上执行,以使得可以按照任何适当的顺序或者同时执行所述方法步骤。
这承认固件和软件可以是有价值的、可单独买卖的商品。意在包括在“哑”或标准硬件上运行或者控制该“哑”或标准硬件的软件以便执行期望的功能。也意在包括“描述”或定义硬件的配置的软件,例如HDL(硬件描述语言)软件,如用于设计硅芯片或用于配置通用可编程芯片使用的,以便执行期望的功能。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于想象力科技有限公司,未经想象力科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410047131.5/2.html,转载请声明来源钻瓜专利网。





