产生流水线微处理器的早期状态标志的装置及方法制造方法及图纸

技术编号:2862431 阅读:183 留言:0更新日期:2012-04-11 18:40
一种在管线式微处理器中用于产生早期状态标志的装置及方法被揭露。产生早期状态标志的装置包括一早期状态标志产生逻辑电路,其接收一指令、一指令的早期结果及早期结果的一有效指标且响应地产生一早期标志。若指令是标志修正,则早期状态标志储存在一早期标志寄存器中。若从寄存器被产生的早期结果是无效的,则寄存器中的早期标志无效。早期状态标志及相关的有效指标可能会由随后的条件指令所使用,用于早期执行以避免因等待由管线晚期的执行单元所产生的结构化状态标志值而延迟。当所有在早期标志产生逻辑电路之下的管线阶段的标志修正指令已准备好更新结构化状态标志,则早期标志会被重新预估。

【技术实现步骤摘要】

本专利技术涉及一种管线式微处理器,特别是涉及一种管线式微处理器的早期指令执行。
技术介绍
现今的微处理器一般为管线式微处理器(Pipeline microprocessor)。即在微处理器不同的模块中或是管线的阶段内,同时执行复数个指令。Hennessy和Patterson将管线定义为“在一个执行动作中有复数个指令重叠执行的一种执行技术。”他们对于管线式技术在ComputerArchitectureA Quantitative Approach,2nd edition,by John L.Hennessyand David A.Patterson,Morgan Kaufmann Publishers,San Francisco,CA,1966一书中,提供以下说明一管线就像一装配线,以汽车装配线为例在汽车装配线中,包括了很多步骤,每一个步骤都对制造汽车提供了一些贡献,且虽然在不同的汽车上,但步骤间的运行上都是平行的。在计算机管线中,管线中的每一个步骤用于完成指令的一部分,就像是装配线,不同的步骤平行地完成不同指令的不同部分。每一个步骤就称为一管线阶段(pipe stage)或一管线区段(pipe segment)。这些阶段相互连接以形成一管线,指令由管线的一端进入经过阶段处理后,由另一端出去,就像汽车在装配线上完成一样。同步微处理器依据时钟周期(clock cycle)而运行。典型的做法是在一时钟周期将一指令从管线式微处理器管线的一阶段用管线传递至下一个阶段。在一汽车装配线中,若在装配线的某一阶段的工作者因为没有汽车可组装而闲置,则此装配线的成果或产量会降低。同样地,若一微处理器的阶段在一时钟周期中因为没有指令可执行而闲置,则这个程序的成果会降低,一般的情形被称为管线气泡(pipeline bubble)。造成管线气泡的一个潜在原因是因为分支指令(branchinstruction)。当分支指令发生时,处理器必须判断分支指令的目标地址,且开始在目标地址取出指令,而不是取出分支指令的下一个连续地址。此外,若分支指令是一条件分支指令(即一分支是否发生取决于一明确条件是否存在),处理器必须判断分支指令是否发生,除此之外,处理器还必须判断目标地址。因为管线阶段最后判断目标地址及/或分支结果(即分支是否发生)的时间,通常是在此阶段之后的许多阶段取出指令,而产生气泡。针对这个问题,现代的微处理器通常利用分支预测机制以在管线中提早预测目标地址与分支结果。而微处理器设计者也不停地努力设计具有较高准确性的分支预测器。然而,分支错误预测将浪费许多时间。如上所述,错误预测必须在分支预测阶段的管线阶段被察觉及修正。由于与错误预测相关的损失关系到在分支预测与分支错误预测修正阶段间许多管线阶段的执行。因此,一种用来修正在管线的前段所错误预测的条件分支指令的装置和方法实为当前所需。此外,条件分支指令指示一分支条件,若成立,则指示微处理器将分支条件转移至分支目标地址;否则,微处理器则继续取出下一个连续地址的指令。微处理器包含储存微处理器状态的状态标志,状态标志是被用来检测以判断被条件分支指令所指示的条件是否成立。因此,最终为了判断一条件分支指令是否被错误预测,微处理器必须检测最新状态标志的状态。然而在现今,状态标志会在管线晚期才被检测以判断分支条件是否成立,以及分支预测是否正确。因此,一种在管线早期产生状态标志的装置与方法实属当前所需。最后,状态标志的状态通常是被先前的条件分支指令指示的结果所影响。例如条件可能被一种状态标志一进位标志(carry flag)所设定,其状态可能被最新的加法指令结果所决定。然而,影响状态标志的指令结果是在微处理器较低管线阶段的执行单元所产生。因此,一种能在管线早期产生指令的装置或方法实属当前所需。
技术实现思路
鉴于上述课题,本专利技术提供一种。因此,依据本专利技术一实施例的产生早期状态标志的装置包括早期状态标志产生逻辑电路,其用于接收一指令、此指令的一早期结果、以及用于表示早期结果是否有效的一有效指标。早期标志产生逻辑电路产生早期状态标志。若指令是一状态标志修正指令,则早期状态标志将被储存于早期标志寄存器。若早期标志在早期结果之前被产生,则早期状态标志寄存器是无效的。早期状态标志及相关的有效指标可能被其后的条件指令所使用,用以在等待结构化状态标志值时早期执行以避免时间延迟。若所有在管线阶段中的标志修正指令是在早期标志产生逻辑电路所在阶段之后,则早期标志会被重新预估,若早期标志被重新预估则表示结构化状态标志已被更新。早期状态标志可能在管线式微处理器中被用来执行条件分支指令的早期修正。一分支预测器是预测管线中的条件分支指令的结果。此预测随着分支指令在管线中被传递。早期分支修正逻辑电路在一管线阶段被执行,此管线阶段位于晚期分支修正逻辑电路会被执行的阶段之前。当分支指令抵达早期分支修正逻辑电路,为了确定是否错误预测,早期分支指令逻辑电路会利用分支指令指示并且确定被指示的条件是否满足于早期状态标志,以检查条件码。早期状态标志依据分支指令之前的指令而产生。若早期状态标志是有效的且是错误预测的,则早期分支修正逻辑电路会修正此错误预测。有鉴于上述课题,根据本专利技术的某些实施例,在条件分支指令之前的指令的早期结果由早期执行逻辑电路所产生。早期执行逻辑电路在一管线阶段被执行,且其是较执行单元早被执行,而执行单元用于产生最终指令结果及最终状态标志值。早期执行逻辑电路是用于执行微处理器指令集的一指令子集中的多数指令。特别是,早期执行逻辑电路是对应到管线的一地址阶段且包含一地址产生器,早期处理逻辑电路可增加对频繁被执行的指令们的处理速率。在一实施例中,早期执行逻辑电路包含了普通执行的逻辑电路、快速计算、布尔运算以及移位运算。若由早期执行逻辑电路所产生的早期结果是早期执行逻辑电路执行一先前指令的结果,但是此早期执行逻辑电路并不是被设计来执行该先前指令,则此早期结果是无效的。又若此指令是一状态标志修正指令,此早期状态标志是无效的。有鉴于上述课题,在本专利技术的某实施例中,早期结果储存在一早期寄存器文件中,其寄存器对应于微处理器的结构化寄存器文件,早期结果与每一寄存器的有效指标一起储存于早期寄存器文件中。早期寄存器文件提供被当成操作数的早期结果至早期执行逻辑电路/地址产生器,以作为产生早期结果之用。若早期寄存器文件提供一无效的输入操作数至早期执行逻辑电路,则早期结果的产生是无效的。又若指令是一状态标志的修正指令,则早期状态标志是无效的。附图说明图1为显示依据本专利技术的一管线式微处理器的一方块示意图;图2为显示依据本专利技术图1的管线式微处理器的R阶段、A阶段及J阶段的一方块示意图详细说明;图3为显示依据本专利技术图1及图2的结构化寄存器文件、早期寄存器文件、结构化状态寄存器及早期状态寄存器的一方块图详细说明;图4为显示依据本专利技术图2的产生早期结果及早期状态寄存器的一装置运行流程图;图5为显示依据本专利技术图2的装置的恢复及确认早期状态寄存器的一运算流程图;图6为显示依据本专利技术的管线式微处理器的执行早期分支修正操作流程图;以及图7为显示依据本专利技术执行晚期分支修正的微处理器的操作流程图。元件符号说明100 管线式微处理器102 I阶段104 F本文档来自技高网
...

【技术保护点】
一种用于产生早期状态标志的装置,其使一具有至少一结构化状态标志的管线式微处理器中的一条件指令可以被早期执行,该装置包含:一储存元件,其用于累积与至少一该结构化状态标志相对应的至少一早期状态标志;以及一逻辑电路,其与该储存元件 连接,该逻辑电路依据在该条件指令前的至少一先前指令的早期结果,而更新该储存元件中的该早期状态标志,其中,若用于修正该早期状态标志的至少一该指令的该早期结果其中之一为无效的,则该逻辑电路使该早期状态标志无效,藉此若该早期状态标志是有效的,则在管线式微处理器更新该结构化状态标志之前,便依据该早期状态标志使能该条件指令的执行,在此是依据该先前指令的最终结果。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:吉拉德M卡尔
申请(专利权)人:威盛电子股份有限公司
类型:发明
国别省市:71[中国|台湾]

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

1