微处理器及其执行方法技术

技术编号:4006944 阅读:156 留言:0更新日期:2012-04-11 18:40
微处理器及其执行方法,用于管线化非循序执行暨循序引退。该微处理器,包括:分支预测器、提取单元以及执行单元。分支预测器预测分支指令的预测目标地址。提取单元在预测目标地址上提取指令。执行单元解析分支指令的目标地址,并且检测预测目标地址与所解析出的目标地址是否不同;当预测目标地址与所解析出的目标地址不同时,判断是否具有程序顺序较旧于分支指令且需要被校正的未引退指令;若没有,则清除由预测目标地址所提取的错误预测的分支指令,并使得提取单元由所解析出的目标地址进行提取,以便执行分支指令;若有,则暂缓分支指令的执行。

【技术实现步骤摘要】

本专利技术涉及非循序执行的微处理器领域,特别涉及其分支指令的执行。
技术介绍
超标量微处理器(superscalar microprocessors)具有多个执行单元(execution units),用以执行微处理器的指令集(instruction set)。超标量微处理器通过多重执行 单元(multiple execution unit)来改善处理效能,因此超标量微处理器能够在每一个时 钟周期中同时地执行多重指令。使得超标量微处理器具有这种潜在效能改善的关键是必 须让指令持续地供应给执行单元来执行;否则,超标量微处理器的效能并不会比标量微处 理器的效能更好,并且超标量微处理器会比标量微处理器花费更多的硬件成本。举例而 言,执行单元用以载入并存储指令运算元(instruction operands)、计算地址、执行逻辑和 计算操作,以及解析(resolve)分支指令(branch instructions) 0如果使用愈多数量及 类型的执行单元,在每一个时钟周期,微处理器要为每一个执行单元找回指令的程序指令 串流(program instruction stream)的范围也愈大。这通常称为微处理器的预寻找能力 (lookahead capability)。有一种方法已经被用来改善微处理器的预寻找能力,其允许指令不依照程序的顺 序执行,并且通称为非循序执行微处理器(out-of-order executionmicroprocessor)。虽 然指令可以非循序地执行,但是多数微处理器架构仍需将指令依照程序顺序引退(retired in program order)。换句话说,被指令结果影响的微处理器架构的状态仅能依照程序顺序 被更新。非循序执行暨循序引退微处理器通常包括相当多的管线级(pipelinestages),所 以有时候称为超级管线化(super-pipelining)。微处理器具有这么多管线级的原因之一 是若微处理器的指令集架构允许指令改变长度,则在管线前端通常便需要相当多的管线 级,用以将未差异化指令字节(undifferentiated instruction bytes)的串流作语法分析 (parse),并且将已语法分析的指令(parsed instructions)转译成微指令。虽然在微处理器设计领域,使用分支预测器对效能是有助益的,但在超级管线化 的微处理器中,发生分支指令对效能的不利影响是众所皆知的。具体而言,在用以根据分支 预测器所提供的预测分支目标地址(predictedbranch target address)提取指令的级,与 使得提取器(fetcher)在不同于预测分支目标地址的解析出的目标地址(resolved target address)开始提取指令的级之间,如果管线级的数量越多,则相关于分支错误预测(branch mispredictions)的效能损失(penalty)也越大。因此,亟需一种有效的执行方法,用以在非循序执行暨循序引退的微处理器内执 行分支指令。
技术实现思路
本专利技术一实施例提供一种管线化非循序执行暨循序引退的微处理器,包括分支预测器、提取单元以及至少一执行单元。分支预测器用以预测分支指令的预测目标地址。 提取单元耦接于分支预测器,用以从上述预测目标地址提取分支指令。执行单元,耦接于提 取单元,用以解析分支指令的目标地址,并且预测目标地址与所解析出的目标地址是否不 同;当预测目标地址与所解析出的目标地址不同时,判断是否具有程序顺序较旧于分支指 令且需要被校正的未引退指令;若没有程序顺序较旧于分支指令且需要被校正的未引退指 令,则清除由预测目标地址所提取的错误预测的分支指令,并使得提取单元由所解析出的 目标地址进行提取,以便执行分支指令;以及若有程序顺序较旧于上述分支指令且需要被 校正的指令,则暂缓执行分支指令。本专利技术另一实施例提供一种执行方法,用以在管线化非循序执行暨循序引退微的 处理器中执行分支指令,包括预测分支指令将被解析至第一提取路径且根据上述预测由 第一提取路径提取分支指令;在上述预测和提取步骤之后,解析分支指令至第二提取路径, 第二提取路径不同于第一提取路径;判断是否具有程序顺序较旧于分支指令且需要被校正 的未引退指令;若没有程序顺序较旧于分支指令且需要被校正的未引退指令,则清除由第 一提取路径所提取的错误预测分支指令,并改由第二提取路径提取分支指令,以执行分支 指令;以及若有程序顺序较旧于分支指令且需要被校正的未引退指令,则暂缓执行分支指 令。附图说明图1为根据本专利技术的微处理器的方块图;图2为图1微处理器的操作流程图,其用以说明非循序微处理器的选择性执行。主要元件符号说明100 微处理器;102 指令快取存储器;124 指令格式器;126 已格式化指令队列;104 指令转译器;128 已转译指令队列;106 寄存器别名表;108 保留站;166 载入单元;164 执行逻辑单元;162 分支指令比对逻辑单元;158 控制逻辑单元;152、154、156 寄存器;112 执行单元;114 引退单元;118 分支预测器;116 重整缓冲器;122 提取单元;172 加法器;170、174 提取地址;176 预测目标地址;138 重新执 行指令;136 正确分支地址;134 分支校正信号;178 指令;146 载入指令错失标签;144 整数指令重新执行标签;142 分支指令错误预测标签;132 清除信号。具体实施例方式图1为本专利技术的微处理器100的方块图。微处理器100包括由多个级(stages) 或功能单元(functional units)所构成的管线,此管线包括提取单元(instruction fetch unit) 122、指令快取存储器(instruction cache) 102、指令格式器(instruction formatter) 124,已格式化指令队列(formatted instructionqueue) 1洸、指令转译器 (instruction translator) 104、已转译指令队列(translatedinstruction queue) 128、寄 存器别名表(register alias table) 106、保留站(reservation station) 108、执行单元 (execution unit) 112,以及引退单元(retireunit) 114。微处理器100还包括分支预测器 (branch predictor) 118,耦接到提取单元122。微处理器100还包括重整缓冲器(reorder buffer) 116,耦接到寄存器别名表106、保留站108、执行单元112以及引退单元114。执行单元112包括载入单元(load unit) 166、执行逻辑单元 (executionlogic) 164,以及分支指令比对逻辑单元(branch checking logic) 162,上 述每一个均耦接至控制逻辑单元(control logic) 158.执行单元112也包括寄存器 (register) 156、寄存器154,以及寄存器152。寄存器156用以存储最旧的错失的载入本文档来自技高网
...

【技术保护点】
一种微处理器,用以非循序执行暨循序引退指令,包括:一分支预测器,用以预测一分支指令的一预测目标地址;一提取单元,耦接于上述分支预测器,用以从上述预测目标地址提取上述分支指令;以及至少一执行单元,耦接于上述提取单元,用以:解析上述分支指令的目标地址,并且检测上述预测目标地址与所解析出的目标地址是否不同;当上述预测目标地址与上述所解析出的目标地址不同时,判断是否具有程序顺序较旧于上述分支指令且需要被校正的一未引退指令;如果没有程序顺序较旧于上述分支指令且需要被校正的上述未引退指令,则清除由上述预测目标地址所提取的一错误预测的分支指令,并使得上述提取单元由上述所解析出的目标地址进行提取,以便执行上述分支指令;以及如果有程序顺序较旧于上述分支指令且需要被校正的上述未引退指令,则暂缓执行上述分支指令。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:杰拉德M卡尔罗德尼E虎克布莱恩W伯格
申请(专利权)人:威盛电子股份有限公司
类型:发明
国别省市:71[中国|台湾]

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

1