管线式微处理器及其执行两种条件分支指令的方法技术

技术编号:4276615 阅读:235 留言:0更新日期:2012-04-11 18:40
一种管线式微处理器及其执行两种条件分支指令的方法,管线式微处理器包括一管线,该管线具有多个阶段,用以处理多个指令;一正规条件分支指令,该正规条件分支指令包括在一程序中,其中管线式微处理器用以对正规条件分支指令进行预测,并且若预测随后被认定为不正确,则管线式微处理器清除多个管线指令;以及一快速条件分支指令,该快速条件分支指令包括在程序中,其中管线式微处理器一直正确地分析快速条件分支指令,并且不对快速条件分支指令进行预测。本发明专利技术执行快速条件分支指令的速度比执行传统条件分支指令的速度快,且消除了与传统条件分支指令有关的误预测与校正,并使用较少的资源即可分析并引退快速条件分支指令。

【技术实现步骤摘要】

本专利技术有关于微处理器,特别关于在一微处理器中执行条件分支指令 (conditional branch instruction)0
技术介绍
当没有控制流程指令时,微处理器依序地提取指令并执行该指令。换言之,预设动 作就是让微处理器先提取一指令,接着再提取下一个循序指令,然后再提取下一个循序指 令,以此类推。然而,控制流程指令会命令微处理器脱离此循序提取制度。微处理器在其指 令集结构(instruction set architecture)中包括某种型式的条件分支指令,用以指定一 分支条件状态(通常是一条件旗标(condition flag)或是一通用暂存器中的数值)及一 分支条件(举例而言,位设定、位清除、等于零或大于一定值)。条件分支指令也指定一分支 目标地址(branch target address)。微处理器根据分支条件检查分支条件状态,用以决 定分支条件状态是否满足被条件分支指令所指定的分支条件。若分支条件状态满足分支条 件,微处理器开始提取分支目标地址上的指令,而不是提取下一个循序指令。正如众所皆知的微处理器技术,现今的微处理器包括一个具有多个阶段的管线 (a pipeline of stages),每一阶段执行有关程序指令的不同工作。在标准的管线式微处 理器中,包括指令提取(instruction fetch)、指令解码(instruction decode)、运算元提 取(operand fetch)、执行(execute)以及写回结果(resultwrite-back)这五个阶段。一 程序中的条件分支指令会大大地增加微处理器执行程序所需的时间。这是因为在传统上, 执行阶段(execute stage)用以分析条件分支指令,即决定分支条件状态是否满足分支条 件。其中一个原因是因为程序中的指令在程序顺序(program order)中的顺序可能会比 条件分支指令还要旧(older),因此,在运算元提取阶段可以提取条件分支指令的来源运 算元(source operands)之前,微处理器必须等待直到执行单元产生上述比较旧的指令的 结果(这些比较旧的指令的结果为条件分支指令中用以构成(constitute)分支条件状态 的来源运算元),以便发出条件分支指令用以执行。然而,特别是在高度管线化(deeply pipelined)及/或乱序执行(out-of-order execution)微处理器中,微处理器可能已经 提取以及处理许多程度不同的下一个循序指令(位于条件分支指令之后),并且在执行 单元分析条件分支指令时,这些循序指令在程序顺序中的顺序要比条件分支指令还要新 (newer)。若执行单元决定分支条件状态满足分支条件(即会发生(taken)条件分支指令), 微处理器必须清除(flush)所有位于条件分支指令之后依序提取的指令,并开始提取分支 目标地址上的指令。这大大地增加了微处理器执行程序所需的时间。为了解决此问题,现今的微处理器包括分支预测器(branchpredictors)用以预 测方向(direction)(即分支条件状态是否会满足分支条件(称为“发生(taken) ”),或不满 足分支条件(称为“不发生(not taken)”)。然而,分支预测器可能会误预测(mispredict) 方向,在此情况下,因为微处理器必须清除管线中错误提取的指令,并开始提取正确地址 上的指令(即根据是否发生正确的方向来决定该正确地址为下一个循序地址或分支目标地址),所以微处理器需要承担一分支误预测代价(branch mispredictionpenalty) 0再 者,这会大大地增加程序执行时间,特别是在程序中具有一些难以准确预测的条件分支指 令的情况下。因此,需要一种能够及早正确地分析管线中的条件分支指令的方法,用以置 换(override)分支预测器。举例而言,该方法已揭露于Boseet al.所获得的美国专利第 5,805,876号“一种适用于一处理器的方法与系统,用以减少平均分支解析时间及有影响的 误预测代价”。然而,Bose et al.所提出的微处理器有一个缺点,就是该微处理器会选择 性地提早分析条件分支指令。换言之,该微处理器只在分支指令满足一组特定的条件时,才 会提早分析条件分支指令,例如第一个侦测到的条件分支指令设置在一指令缓冲器中的第 一可调度位置(dispatchable position)中。因此,需要一种具有一改良技术的微处理器,用以允许程序条件性地分支。
技术实现思路
本专利技术提供一种管线式微处理器,包括一管线,具有多个阶段,用以处理多个指 令;上述管线式微处理器接收一正规条件分支指令,该正规条件分支指令包括于一程序 中,其中管线式微处理器用以对正规条件分支指令进行预测,并且若预测随后被认定为不 正确,则管线式微处理器清除多个管线指令;以及一快速条件分支指令,该快速条件分支指 令包括于程序中,其中管线式微处理器一直正确地分析快速条件分支指令,并且不对快速 条件分支指令进行预测。本专利技术提供另一种管线式微处理器,该管线式微处理器接收包括一快速条件分 支指令,该快速条件分支指令包括于一程序中,其中快速条件分支指令命令管线式微处理 器正确地分析快速条件分支指令,而不需要考虑程序中比快速条件分支指令还要旧的其他 指令是否更新快速条件分支指令所使用的一快速分支条件;以及一正规条件分支指令,该 正规条件分支指令包括于程序中,其中正规条件分支指令通过考虑程序中比正规条件分支 指令还要旧的其他指令是否更新正规条件分支指令所使用的一正规分支条件,命令管线式 微处理器正确地分析正规条件分支指令。本专利技术提供一种执行两种条件分支指令的方法,应用于具有用以处理指令的多个 管线阶段的一管线式微处理器,上述方法包括预测一正规条件分支指令,正规条件分支指 令包括于一程序中;若预测随后被认定为不正确,则清除多个管线指令;以及一直正确地 分析一快速条件分支指令,并且不对快速条件分支指令进行预测,其中快速条件分支指令 包括于程序中。本专利技术提供另一种执行两种条件分支指令的方法,应用于具有用以处理指令的多 个管线阶段的一管线式微处理器,上述方法包括不考虑一程序中比一快速条件分支指令还 要旧的其他指令是否更新快速条件分支指令所使用的一快速分支条件;在不需考虑程序中 比快速条件分支指令还要旧的其他指令是否更新快速条件分支指令所使用的快速分支条 件的同时,命令管线式微处理器正确地分析快速条件分支指令;以及通过考虑程序中比一 正规条件分支指令还要旧的其他指令是否更新正规条件分支指令所使用的一正规分支条 件,命令管线式微处理器正确地分析正规条件分支指令,其中正规条件分支指令包括于程 序中。本专利技术的其中一个好处是,因为提取单元(或微码单元)可在不需将快速条件分支(fast conditional branch ;FCB)指令(在此之后简称为FCB指令)配送至执行管线 的情况下,即可分析并引退FCB指令,因此执行FCB指令的速度会比执行传统条件分支指令 的速度还要快。此外,当程序设计师使用一 FCB指令而不是一传统条件分支指令时,由于提 取单元正确地执行FCB指令,因此消除了与传统条件分支指令有关的误预测与校正。另本文档来自技高网
...

【技术保护点】
一种管线式微处理器,其特征在于,包括:一管线,具有多个阶段,用以处理多个指令;上述管线式微处理器接收:一正规条件分支指令,该正规条件分支指令包括于一程序中,其中上述管线式微处理器用以对上述正规条件分支指令进行预测,并且若上述预测随后被认定为不正确,则上述管线式微处理器清除多个管线指令;以及一快速条件分支指令,该快速条件分支指令包括于上述程序中,其中上述管线式微处理器一直正确地分析上述快速条件分支指令,并且不对上述快速条件分支指令进行预测。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:G葛兰亨利泰瑞派克斯布兰特比恩
申请(专利权)人:威盛电子股份有限公司
类型:发明
国别省市:71[中国|台湾]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1