[发明专利]处理涵盖跨越指令高速线的分支目标地址高速区的分支的装置及方法有效

专利信息
申请号: 02107138.1 申请日: 2002-03-11
公开(公告)号: CN1369780A 公开(公告)日: 2002-09-18
发明(设计)人: 布兰特;比恩;G·葛兰;亨利;汤玛斯C·麦当劳 申请(专利权)人: 智权第一公司
主分类号: G06F9/42 分类号: G06F9/42;G06F12/02
代理公司: 北京集佳专利商标事务所 代理人: 王学强
地址: 美国*** 国省代码: 暂无信息
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 处理 涵盖 跨越 指令 高速 分支 目标 地址 装置 方法
【说明书】:

技术领域

发明是有关于微处理器中的分支目标地址高速区的领域,且特别是有关于一种涵盖跨越指令高速线的分支指令。

背景技术

微处理器包括多个管线(pipeline)阶段,而每个阶段完成程序指令的执行中的不同的功能需求。管线阶段的功能通常为指令提取、指令译码、指令执行、存储器存取及结果写回(write-back)。

指令提取阶段是提取目前执行程序中的下个指令。下个指令通常为具有下个连续存储器地址的指令。然而,就执行(taken)的分支指令而言,下个指令为通过此分支指令所指定的存储器地址的指令,通常是做为分支目标地址的参考。指令提取阶段是提取自指令高速缓存(cache)的指令。如果指令不存在于指令高速缓存中,则会从存储器组织阶层中的较高阶层(如从较高阶的高速缓存或从系统存储器)提取指令至高速缓存。所提取的指令用于指令译码阶段。

指令译码阶段包括用以译码自指令提取阶段所接收到的指令字节的指令译码逻辑。就可支持可变长度指令的处理器(如x86结构的处理器)而言,指令译码阶段的功能之一就是将指令字节流(stream)格式化成分离的指令。格式化指令流包括决定每个指令的长度。也就是,指令格式化逻辑是接收自指令提取阶段的未区分的指令流,并且将指令字节流格式化(或符合语法)成各自的字节的群组。每个字节的群组为一个指令,此指令是组成通过处理器所执行的程序。指令译码阶段也可能包括将宏指令(如x86指令)转换成可通过其余的管线所能执行的微指令。

执行阶段包括用以执行自指令译码阶段所接收到的已格式化及已译码的指令的执行逻辑。执行逻辑是运作来自处理器的缓存器组及/或来自存储器的数据。写回阶段是将通过执行逻辑所产生的结果储存至处理器的缓存器组。

管线处理器的效能的一个重要的方面就是保持处理器的每个阶段都忙碌的执行其设计用来执行的功能。特别是,如果当指令译码阶段已准备好提取下个指令而指令提取阶段未提供指令,则处理器的效能将变差。为了避免指令译码阶段的匮乏,指令缓冲器通常置于指令高速缓存及指令格式化逻辑之间。指令提取阶段会试图保持拥有指令字节的多个指令于指令缓冲器中,以使得指令译码阶段将有指令字节可以译码,而不会匮乏。

通常,指令高速缓存提供高速线的指令字节,通常一次为16或32字节。指令提取阶段自指令高速缓存提取一条或多条高速线的指令字节至指令缓冲器。当指令译码阶段已准备好译码指令时,其会存取指令字节于指令缓冲器中,而不用等待指令高速缓存。

指令高速缓存提供用于指令提取阶段的指令高速缓存的提取地址所选择到的高速线的指令字节。在正常的程序运作期间,因为预先使程序指令循序的执行,所以提取地址只会经由高速线的大小而增加。所增加的提取地址是做为下个循序提取地址的参考。然而,如果分支指令是经由指令译码逻辑来译码及分支指令执行被执行(或预测执行),则更新的提取地址会送至分支指令的目标地址(以高速线的大小为模(modulo)),而下个循序提取地址不会更新。

然而,到将更新提取地址送至分支目标地址的时候,在分支指令之后,指令缓冲器可能已含有下个循序指令的指令字节。因为分支已发生,在分支指令之后的指令必需不被译码及执行。也就是,正确的程序执行需要在分支目标地址时的指令来执行,而不是在分支指令之后的下个循序指令。在指令缓冲器中,以程序中的循序指令流程的较通常预期状况所预取的指令是错误的。为了修正此错误,处理器必须清除(flush)在分支指令后的所有的指令,其中包括指令缓冲器中的指令字节。

在执行分支指令后,立即清除指令缓冲器的代价是很高的,这是因为此时的指令译码阶段在指令缓冲器从指令高速缓存再获得之前,都是匮乏的。此问题的一个解决方案就是在译码分支指令前做分支。此可通过使用分支目标地址高速缓存(branch target addresscache,简称BTAC)来达成,而指令高速线的高速缓存预取地址包含先前执行的分支指令及其相关的目标地址。

用于BTAC的指令高速缓存预取地址实质上是与用于指令高速缓存的预取地址并行。就包含分支指令的高速线的指令高速缓存预取地址而言,高速线用于指令缓冲器中。除此之外,当预取地址击入BTAC中时,BTAC会提供相关的分支目标地址。当预取地址击入预测要执行的BTAC中时,更新的指令高速缓存预取地址会送到由BTAC所提供的目标地址。因此,包含目标指令的高速线,也就是在目标地址的指令,将储存于包含分支指令的高速线后的指令缓冲器中。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于智权第一公司,未经智权第一公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/02107138.1/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top