指令转回处理器系统、指令转回方法和指令转回程序的制作方法

文档序号:6384969阅读:232来源:国知局
专利名称:指令转回处理器系统、指令转回方法和指令转回程序的制作方法
技术领域
本发明涉及作流水线处理的计算机,尤其涉及成本低且性能高的指令转回处理器系统、指令转回方法和指令转回程序。
背景技术
中央运算处理装置(CPU)在流水线级数增多的同时,能使并行处理的速度加快,因而强烈倾向于增加流水线的级数。另一方面,流水线级数增多时,流水线的再启动需要时间。因此,存在反而处理速度变慢的缺点。失常的CPU中不能调度时,或正常的CPU中执行的指令不能结束时,用装载指令在高速缓存故障时重装数据后,需要进行再发布。是否能使有再发布可能性的指令结束,成为问题,但已有技术例中还进行在指令窗缓存器存储有再发布可能性的指令的运作。此运作是转回控制的一部分。装载指令及其后续指令中,与表目的深度有关,但需要使指令保持并保留一定的时间。
已有的微处理器系统的结构例如图12所示,具有取指令单元1、指令窗缓存器(IWB)2、第1指令译码器(A)6、第2指令译码器(B)7、流水线寄存器(PLG)3、4和5、以及控制单元8。
从取指令单元1将指令COM供给IWB2,并保持在其中。如果解决数据故障、资源故障,IWB2就发布指令INS。将指令INS供给控制单元8、PLG3、PLG4、PLG5、第1指令译码器(A)6、第2指令译码器(B)7,流过执行流水线,使指令INS执行下去。控制单元8接收来自第1指令译码器(A)6的装载指令LCOM、来自第2指令译码器(B)7的信号和来自IWB2的指令INS。由已知的通用寄存器文件、功能单元、数据高速缓存单元、旁路网络、旁路控制块和流水线寄存器等组成控制单元8。这里,例如装载指令LCOM在控制单元8内访问数据高速缓存单元,以获取数据,但发生高速缓存故障时,得不到数据。这时取消装载指令LCOM及其后续指令的执行。然后,访问2级(L2)高速缓存等,获取数据,如果得到数据,就从IWB2再发布装载指令LCOM及其后续指令,重新执行。这次高速缓存命中,因而能继续执行后续指令。
这时,为了再发布装载指令LCOM及其后续指令,需要在IWB2保存这些指令。在指令发布后的几个周期后,才判明装载失误,因而该期间在IWB2仍旧保持指令。在该几个周期的期间,即使在高速缓存命中的情况下,也不知道高速缓存命中的事实,因而需要常在IWB2连续保持发行的指令。
如图13所示,已有的微处理器系统的运作可表示为(a)步骤S1中,从取指令单元1对IWB2供给指令COM的状态开始运作。
(b)接着,进至步骤S2,从IWB2发布指令INS。
(c)接着,进至步骤S3,执行指令INS。
(d)接着,进至步骤S4,执行装载指令LCOM,并判断是否发生高速缓存故障。
(e)不发生高速缓存故障,则进至步骤S5,使执行结束。
(f)如果发生高速缓存故障,进至步骤S6,触发高速缓存重装。
(g)接着,进至步骤S7,从流水线删除自指令(装载指令)和执行的中途的后续指令。
(h)接着,进至步骤S8,对无效指令,使IWB返回发布前的状态。(i)接着,进至步骤S9,判断高速缓存重装是否完成。
(j)“否”,则重复进行步骤S9。
(k)如果“是”,进至步骤S10,使已发布指令在循环中转回。
(l)接着,进行步骤S2、S3、S4,在步骤S4中重复进行一系列运作,直至装载指令LCOM中不发生高速缓存故障。
IWB2保持用于发布指令INS的复杂发布逻辑组成部分,已发布的指令INS占用费用高的IWB,因而IWB2的逻辑的利用率变差。
非专利文献1梯 沙特等人著“指令再发布机构的综合评价(Comprehensive Evaluation ofInstruction Reissue Mechanism)”,并行体系结构、算法和网络国际讨论会会议录(Proceedings of International Symposium on Parallel Architectures,Algorithmsand Networks)2000年,P.78-85。
非专利文献2格林 兴通等人著“奔腾(注册商标)4处理器的微体系结构(TheMicroarchitecture of Pentium 4 Processor)”,http//developer.intel.com,2001已有的微处理器系统中,有时在指令发布后,因数据高速缓存故障而需要再执行指令。为此,以往IWB2在指令发布后还留有指令,并且在判明需要再执行时,从IWB2对运算器再发布指令。因此,需要在IWB2将指令保持一定的时间,存在浪费面积成本大的IWB2的贵重表目的问题。
本发明的目的提供一种成本低且性能高的指令转回处理器系统、指令转回方法和指令转回程序,其具有的功能将PLG连接成环状,以保持再执行用的指令,并且转回运作时,在环状PLG内保持再执行用的指令,指令再发布运作时,从PLG再发布指令等。

发明内容
为了达到上述目的,本发明的第1特征,其要点为一种指令转回处理器系统,其中具有(甲)发布按一定顺序排列的多条执行前指令的指令窗缓存器、(乙)在一个输入端输入指令窗缓存器的输出的多路变换器、以及(丙)连接在多路变换器的输出端与多路变换器的另一输入端之间的转回单元。
本发明的第2特征,其要点为一种指令转回方法,其中具有(甲)发生高速缓存故障时转回单元在循环中回转并保持未完成的指令的转回步骤、(乙)在高速缓存故障未解除且转回未正常结束时重复进行转回步骤的步骤、以及(丙)转回正常结束时对多路变换器发布转回控制信号并且从指令窗缓存器发布未发布的指令的再发布步骤。
本发明的第3特征,其要点为一种指令转回方法,(甲)用于指令转回处理器系统中,该系统具有存放按一定顺序排列多条执行前指令的指令窗缓存器、将指令窗缓存器的输出作为一个输入的多路变换器、以及连接多路变换器的转回单元,并且多路变换器的另一输入端连接转回单元的输出端,(乙)对未完成的指令进行转回时选择转回单元方的输入的转回步骤、以及(丙)发布未发布的指令时选择来自指令窗缓存器的输入的指令再发布步骤。
本发明的第4特征,其要点为一种指令转回方法,具有以下的步骤(甲)执行指令窗缓存器发布的执行前指令;(乙)发生高速缓存故障时驱动高速缓存重装电路,并且流水线寄存器中的装载指令和后续指令为非激活,使指令窗缓存器冻结在发生所述高速缓存故障时的状态;(丙)如果高速缓存重装电路完成而且装载指令处于所述高速缓存故障发生前的位置,则返回执行装载指令及其后续指令的步骤;(丁)如果高速缓存重装电路未完成,则循环回转并保持指令窗缓存器发布的已发布指令;(戊)如果高速缓存重装电路完成而且装载指令不处于高速缓存故障发生前的位置,则循环回转已发布指令。
本发明的第5特征,其要点为一种指令转回程序,使指令转回处理器系统执行的算法包含以下的步骤(甲)执行指令窗缓存器发布的执行前指令;(乙)发生高速缓存故障时驱动高速缓存重装电路,并且流水线寄存器中的装载指令和后续指令为非激活,使指令窗缓存器冻结在发生高速缓存故障时的状态;(丙)如果高速缓存重装电路完成而且循环回转指令处于高速缓存故障发生前的位置,则返回执行装载指令和后续指令的步骤;(丁)如果高速缓存重装电路未完成,则循环回转并保持指令窗缓存器发布的已发布指令;(戊)如果高速缓存重装电路完成而且所述循环指令不处于高速缓存故障发生前的位置,则循环回转已发布指令。


图1是本发明实施例的指令转回处理器系统的图解总体框图。
图2是本发明实施例的指令转回处理器系统的控制单元的图解组成框图。
图3是本发明实施例的指令转回处理器系统的转回控制单元的图解组成框图。
图4是说明本发明实施例的指令转回处理器系统的转回运作用的内部状态转移图。
图5是说明本发明实施例的指令转回处理器系统的运作用的流程图。
图6是本发明实施例的指令转回处理器系统的运作图解说明框图,说明发生数据高速缓存故障的状态。
图7是本发明实施例的指令转回处理器系统的运作图解说明框图,说明转回运作的状态。
图8是本发明实施例的指令转回处理器系统的运作图解说明框图,说明转回结束的状态。
图9是本发明实施例的指令转回处理器系统的图解组成框图,是流水线寄存器的级数为n级的例子中的组成图。
图10是构成用于本发明实施例的指令转回处理器系统的高速缓存器的数据高速缓存单元的图解组成图。
图11是本发明实施例的指令转回处理器系统中进行流水线处理的CPU的组成图。
图12是已有的微处理器系统的图解组成图。
图13是说明已有的微处理器系统的运作的流程图。
附图中,1是取指令单元,2是指令窗缓存器(IWB),3、4、5、13、14、15、16是流水线寄存器(PLG),6是第1指令译码器A,7是第2指令译码器B,8是控制单元,9是转回单元,10是转回控制单元,11、49是多路变换器(MUX),12是译码器单元,171、172、173、174、28是存放指令的第1源寄存器值Rs的数据存放部,181、182、183、184、29是存放指令的第2源寄存器值Rt的数据存放部,191、192、193、194是存放指令的目的处编号Rd的数据存放部,201、202、203、204是存放指令的操作码的数据存放部,21是通用寄存器(GPR),22是高速缓存重装电路,23是TLB,24是数据高速缓存单元,25是转回控制电路,26是转回判断电路,27是装载指令存放寄存器,30是加法器,31是高速缓存命中寄存器,32是TLB命中寄存器,33是装载数据寄存器,34、35、36、37是首部指针(HP)用PLG,38、39、40、41是启用信号(EN)用PLG,42、43、44、45是有效信号(VL)用PLG,46、47、48、53是与门,50是有效缓存器,51是虚拟地址存放部,52是一致性比较器,54是物理地址存储部,55是高速缓存器部,60是转回线,70是外存储器,100是CPU,101是指令高速缓存(ICACHE),102是LD/ST管段,103是分支管段,106a是整数管段0,106b是整数管段1,107是COP1管段,108是COP2管段,109是虚拟地址计算部,110是数据TLB(DTLBData TLB),111是数据高速缓存(DCACHEData Cache),112是响应缓存器,113是总线接口单元,S1、S2、S3、…、S12…是步骤,ST0是初始状态至“常规运作”的状态转移,ST1是“常规运作”至“转回运作”的状态转移,ST2是“转回运作”至“始端指令对准运作”的状态转移,ST3是“始端指令对准运作”至“指令再发布运作”的状态转移,ST4是“指令再发布运作”至“常规运作”的状态转移,C1是“常规运作”的内部状态转移,C2是“转回运作”的内部状态转移,C3是“始端指令对准运作”的内部状态转移,C4是“指令再发布运作”的内部状态转移,PLG1、PLG2、PLG3、PLG4、…、PLGn…是流水线寄存器,LCOM是装载指令,COM是指令,INS是指令,FLA是标记信号,ENA是启用信号,VAL是有效信号,RFC是重装完成信号,RBS是转回开始信号,RBC是转回控制信号,HMC是高速缓存命中寄存器内存放的命中失误信号,HMT是TLB命中寄存器内存放的命中失误信号。
具体实施例方式
下面参照

本发明的实施例。下面的附图中,相同或类似的部分带有相同或类似的符号。以下所示的实施例是示出使本发明的技术思想具体化用的装置和方法的例子,本发明的技术思想不将其组成部件、配置等规定为以下所记载的。本发明的技术思想在权利要求书的范围内可添加各种变换。
本发明中,“指令转回处理器系统”是指具有指令转回功能或指令转回装置的处理器系统。“指令转回处理器系统”是利用指令转回方法和指令转回程序进行运作的处理器系统。本发明中,“指令转回”是指环状级联的PLG群内,使已发布指令在循环中回转的运作。
如图1所示,本发明实施例的指令转回处理器系统具有存放按一定顺序排列的多条指令的指令窗缓存器(IWB)2、在一个输入端输入指令窗缓存器2的输出的多路变换器(MUX)11、以及连接在MUX11的输出端与MUX11的另一输入端之间转回单元9。从取指令单元1对IWB2供给指令COM。MUX11的输出端连接具有PLG13、14、15、16的转回单元9。转回单元9连接具有第1指令译码器(A)6和第2译码器(B)7的译码器单元12。译码器单元12连接控制单元8。控制单元8与MUX11之间连接转回控制单元10。PLG13、14、15、16的内部分别包含存放指令的第1源寄存器值Rs的数据存放部171、172、173和174、存放指令的第2源寄存器值Rt的数据存放部181、182、183和184、存放指令的目的处编号Rd的数据存放部191、192、193和194、存放指令的操作码Op的数据存放部201、202、203和204。存放这些指令的第1源寄存器值Rs的数据存放部171、172、173和174、存放指令的第2源寄存器值Rt的数据存放部181、182、183和184、存放指令的目的处编号Rd的数据存放部191、192、193和194、存放指令的操作码Op的数据存放部201、202、203和204构成在PLG内划分并存放指令用的数据存放部。后面详细说明其运作。
将图1所示的PLG13至PLG16的各存放指令的第1源寄存器值Rs的数据存放部171、172、173和174、存放指令的第2源寄存器值Rt的数据存放部181、182、183和184、存放指令的目的处编号Rd的数据存放部191、192、193和194、存放指令的操作码Op的数据存放部201、202、203和204表示为数据存放部。
存放指令的第1源寄存器值Rs的数据存放部171、172、173和174是存放指令的源寄存器值Rs的数据存放部。
存放指令的第2源寄存器值Rt的数据存放部181、182、183和184是存放指令的源寄存器值Rt的数据存放部。
存放指令的目的处编号Rd的数据存放部191、192、193和194是存放指令的目的处寄存器编号Rd的数据存放部。
存放指令的操作码的数据存放部201、202、203和204是存放指令的操作码Op的数据存放部。将指令的操作码Op译码,就能判断指令的类型。
与图12所示的已有技术例的不同点为在IWB2的输出端与PLG群之间配置MUX11,由转回控制单元10控制多路变换器11,末级PLG16的输出通过转回线60返回指令发布级侧,作为多路变换器11的一个输入,多路变换器11的另一输入端连接IWB2的输出端。需要用于控制多路变换器11的转回控制单元10。图1所示的PLG群示出4级的例子,未必限于4级。如图6至图8所示,可用3级构成。或者,如图9所示,可用任意的级数n构成。
构成图1所示指令转回处理器系统的控制单元8如图2所示,其组成部分为通用寄存器文件(GPR)21、高速缓存重装电路22、TLB(Translation Look-aside Buffer变换监视缓存器)23、数据高速缓存单元24。装载指令存放寄存器27、加法器30、高速缓存命中寄存器31、TLB命中寄存器32装载数据寄存器33、存放指令的第1源寄存器值Rs的数据存放部28和存放指令的第2源寄存器值Rt的数据存放部29。装载指令存放寄存器27接收来自第1译码器(A)6的装载指令LCOM,将其送到加法器30。加法器30计算装载指令存放寄存器27的虚拟地址。一般使源寄存器的内容加上别的寄存器的内容或已知值,从而算出装载-存储指令应访问的虚拟地址。这里不记载已知值的加法,仅记载以源寄存器与源寄存器的相加算出虚拟地址的途径。因此,加法器30接收来自装载指令存放寄存器27、存放指令的第1源寄存器值Rs的数据存放部28和存放指令的第2源寄存器值Rt的数据存放部29的数据,进行相加后,将其送到数据高速缓存单元24和TLB23。数据高速缓存单元24接收来自TLB23和加法器30的数据,与高速缓存重装电路22之间进行数据收发,同时对装载数据寄存器33和高速缓存命中寄存器31进行发送。装载数据寄存器33接收来自数据高速缓存单元24的数据,将其送到GPR21。GPR21接收来自装载数据寄存器33、第1指令译码器(A)6、PLG13内存放指令的第1源寄存器值Rs的数据存放部171和存放指令的第2源寄存器值Rt的数据存放部181的数据,将其分别发送到存放指令的第1源寄存器值Rs的数据存放部28和存放指令的第2源寄存器值Rt的数据存放部29。另一方面,TLB23接收来自加法器30的虚拟地址,与高速缓存重装电路22之间进行数据收发,而且对数据高速缓存单元24和TLB命中寄存器32发送数据。TLB命中寄存器32接收来自TLB23的TLB命中信息,将数据发送到高速缓存重装电路22,同时也对转回控制单元10内的转回判断电路26发送TLB命中信息。同样,高速缓存重装电路22从高速缓存命中寄存器31和TLB命中寄存器32接收数据,一面与TLB23和数据高速缓存单元24之间进行数据收发,一面对转回控制单元10内的转回控制电路25发送数据。此外,如图2中所示,在数据高速缓存单元24与高速缓存重装电路22之间也进行数据的收发。
图1所示的译码器单元12内示出第1指令译码器(A)6和第2指令译码器(B)7等2个指令译码器,但也可仅使第1指令译码器(A)6起作用。即,例如,如图2所示,该运作可为用第1译码器(A)6把包含装载指令LCOM在内的全部指令的控制译码,并且在控制单元8保持此已译码的信息,以供给GRP21或TLB23、加法器30等。
如图3所示,构成图1所示的指令转回处理器系统的转回控制单元10。其组成部分为转回控制电路25、转回判断电路26、首部指针(HP)用的PLG 34、35、36和37、启用信号(EN)用的PLG38、39、40和41、有效信号(VL)用的PLG42、43、44和45、与门电路46、47和48、MUX49、以及有效缓存器(Valid Buffer)50。
转回控制单元25从控制单元8中的高速缓存重装电路26接收重装完成信号RFC,或从转回判断电路26接收转回开始信号RBS,或接收来自首部指针(HP)用的PLG37信号。转回控制电路25还对首部指针(HP)用的PLG34和启用信号(EN)用的PLG38发送信号,同时也对MUX11和MUX49发送转回控制信号RBC。另一方面,转回判断电路26接收控制单元8中TLB命中寄存器32内存放的命中失误信号HMT、高速缓存命中寄存器31内存放的命中失误信号HMC。此外,还接收来自指令译码器(B)7的标记信号FLA。转回控制单元10中,接收来自与门48的输出信号,并且对转回控制电路25发送转回开始信号RBS。MUX49接收来自有效缓存器50的信号和来自有效信号(VL)用的PLG45的信号,并且对有效信号(VL)用的PLG42发送数据。这里从有效信号(VL)用的PLG42到有效信号(VL)用的PLG43、44和45的数据移位对应于从首部指针(HP)用的PLG34到首部指针(HP)用的PLG35、36和37的数据移位、从启用信号(EN)用的PLG38到启用信号(EN)用的PLG39、40和41的数据移位。这种数据移位的定时对应于图1中从PLG13到PLG14、15和16的数据移位。PLG13至PLG14之间对应于PLG 42至PLG43之间,PLG14至PLG15之间对应于PLG 43至PLG44之间,PLG44至PLG45之间对应于PLG15至PLG16之间。这些级分别定义为“ID级”、“EX级”和“WB级”。从有效缓存器50通过MUX49到PLG42的级对应于从IWB2通过MUX11到PLG13的级,定义为“IS级”。数据从取指令单元1输入到IWB2定义为“IF级”。
现参照图1至图3说明本实施例的指令转回处理器系统中的转回控制运作。
首先说明词语。以下的说明中标记(FlagFLA)信号、有效(VAL)信号、命中信号、译码输出均为正逻辑,意味着“0”时“无效”,“1”时“有效”。“断定”是指该信号为“有效”状态,即输出“1”,“否定”则指该信号为“无效”状态,即输出“0”。有效信号VAL构成环路状,存在于各级。为了每一级进行区别,表现为例如“ID级的有效信号”、“EX级的有效信号”、“WB级的有效信号”。
“有效信号(VAL)”存在于各级,级中存在有效指令时为“1”。指令存在时为“1”,与是否正在转回无关。“启用信号(ENA)”存在于每一PLG级,表示是否可执行该级的指令。在“启用信号”为“1”,而且“有效信号”为“1”的级执行指令。“首部指针(HP)信号”在常规运作时,所有的级为“0”。在转回中,仅对应启动转回的始端指令设定为“1”。对非始端的指令设定“0”。
“IF级”从取指令单元(指令高速缓存器)1读出指令,并写入IWB2。写入指令时,在有效缓存器50写入“1”,作为有效信号VAL。有效缓存器50具有与IWB2的各表目对应的表目,IWB2存放有效指令时写入“1”,不存放该指令时写入“0”。
“IS级”以指令陈旧程度的顺序发布“1”,即“有效”的指令。检测IWB2中存在的指令的断定,调查是否可发布指令。如果可发布指令,就执行指令。指令正在转回时,不是从指令缓存器发布,而是发布正在转回的PLG的指令。
“ID级”对指令进行译码。从GPR21读出源寄存器。进行数据旁路。
“EX级”执行指令。在装载指令的情况下,根据源寄存器值计算存储器地址。该地址中,参照TLB23,从虚拟地址变换到物理地址。TLB23命中时,获得正确的物理地址。TLB23命中失误时,得不到正确的物理地址。用TLB23输出的TLB命中信号判断是命中还是命中失误。在TLB命中寄存器32存放TLB命中信号。
用变换所得的物理地址参照数据高速缓存单元24。数据高速缓存单元24命中时,数据高速缓存单元24“断定”命中信号。将命中信号存放到高速缓存命中寄存器31。命中时,数据高速缓存器输出数据。在装载数据寄存器33存放该数据。也在此级执行加法运算等算术运算指令。
“WB级”在有效信号VAL为“1”,而且启用信号ENA为“1”时,将运算结果、装载数据写入到GPR21(Write Back)。在TLB命中寄存器32、高速缓存命中寄存器31均为“1”时,即TLB命中而且高速缓存也命中时,数据能正常装载,因而将PLG(数据寄存器)33的值写入GPR21。
在TLB命中寄存器32、高速缓存命中寄存器31哪一方的值为“0”时,即命中失误时,不能正常装载,因而进行转回运作。指令译码器(B)对指令的存放指令操作码的数据存放部20进行译码,并输出表示执行中的指令是否装载指令的标记信号FLA。转回判断电路26将该标记信号FLA、TLB寄存器32中存放的信号、高速缓存命中寄存器31存放的信号、启用信号ENA和有效信号VAL作为输入,进行下面的运作。即,在TLB命中为“1”而且高速缓存命中为“0”而且启用信号为“1”而且有效信号为“1”时,断定转回开始信号RBS。
这时,高速缓存重装电路22开始高速缓存重装运作。即,开始从外存储器70读入数据,并将读入的数据写入数据高速缓存单元24和TLB23。对数据高速缓存单元24和TLB23的写入结束时,断定重装完成信号RFC。
在各级之间环状连接有效信号VAL、首部指针信号HP。随着指令沿流水线级移动,把内容不断传到下一级。
转回运作如图4所示,本发明实施例的转回处理器系统一面使其内部状态转移,一面执行转回运作。图4中,ST0、ST1、ST2、ST3、ST4分别表示状态转移。“常规运作”、“转回运作”、“始端指令对准运作”和“指令再发布运作”表示各运作状态,C1、C2、C3、C4表示各运作状态内部的状态转移。即,ST0表示初始化,表示从初始状态到“常规运作”的状态转移。ST1表示从“常规运作”到“转回运作”的状态转移,转回开始信号RBS断定,而且“首部指针”为“1”。
ST2表示从“转回运作”到“始端指令对准运作”的状态转移,重装完成信号RFC断定。ST3表示从“始端指令对准运作”到“指令再发布运作”的状态转移。ST4表示从“指令再发布运作”到“常规运作”的状态转移,首部指针为“0”。C1表示“常规运作”的内部状态转移,C2表示“转回运作”的内部状态转移,C3表示“始端指令对准运作”的内部状态转移,C4表示“指令再发布运作”的内部状态转移。
下面说明转回运作。
(1)WB级中断定转回开始信号RBS时,转回控制电路25开始运作。
(i)转回控制电路25在转回开始信号RBS为“1”时,使内部状态转移到“转回运作”的运作状态。
(ii)作为IS级的首部指针(HP)用的PLG34中存放的信号,输出“1”。据此,将转回的始端指令对应的首部指针(HP)设定为“1”。但从其下一周期开始,进行的运作接收环路侧(WB级)的值,并进行输出,使其原样直通。
(iii)进行控制,使IWB2、有效缓存器50的输出连接的MUX11、49对环路侧输出。2个MUX11、49分别都输入来自IS级的信号和来自环路侧(WB级)的信号。非转回运作(常规运作)中,进行运作,以选择IS级侧,并对其输出。转回运作时,按照选择环路侧的要求进行运作,使指令和有效信号循环运作。
(iv)输出“0”,作为IS级的启用信号。据此,各级的启用信号依次为“0”。开始转回运作时,保持上述状态,同时使指令等循环。
(2)高速缓存重装电路22从外存储器读数据,并且完成对高速缓存单元24和TLB23的重装时,断定重装完成信号RFC。转回控制电路25如果断定重装完成信号RFC,就进行以下的运作。
(i)使内部状态转移到“始端指令对准运作”。
(ii)首部指针(HP)用的PLG34、35、36、37直通输出WB级的值。
(iii)继续输出“0”,作为IS级的启用信号,并且仍使各级的运作保持停止。
(iv)对MUX11、49进行控制,使其选择环路侧。
(v)监视WB级(环路侧)的首部指针(HP)信号,使其保持“1”以前的状态。
(3)WB级(环路侧)的首部指针(HP)信号为“1”,则执行以下的运作。
(i)使内部状态转移到“指令再发布运作”。
(ii)首部指针(HP)用的PLG34、35、36、37直通输出WB级的值。
(iii)输出“1”,作为IS级的启用信号,依次使各级运作。
(iv)对MUX11、49进行控制,使其选择环路侧。
再执行的指令循环一周后,继续再次执行,直到WB级的首部指针(HP)用的PLG34、35、36、37中存放的信息再次为“1”。
(4)WB级的首部指针(HP)再次为“1”,则进行以下的运作,以返回常规模式。
(i)使内部状态转移到“常规运作”状态。
(ii)输出“0”,作为首部指针(HP)信号。
(iii)输出“1”,作为IS级的启用信号。
(iv)对MUX11、49进行控制,使其选择级侧,即选择IWB2侧。
如图5所示,用步骤S1至步骤S12表示本发明实施形态的转回处理器系统的运作的流程。
(a)步骤S1中,从取指令单元1对IWB2供给指令COM的状态开始。
(b)接着,步骤S2中从IWB2发布执行前指令INS。
(c)接着,在步骤S3执行该执行前指令。
(d)接着,步骤S4中,在执行前指令INS是装载指令LCOM时,判断是否发生高速缓存故障。
(e)如果因装载指令LCOM而不发生高速缓存故障,进至步骤S5,完成指令。
(f)如果因装载指令LCOM而发生高速缓存故障,进至步骤S6,利用触发信号HMC驱动高速缓存重装电路22。
(g)接着,进至步骤S7,使流水线寄存器群中的装载指令和后续指令为非激活(保持信息)。
(h)接着,进至步骤S8,将IWB2冻结为发生高速缓存故障时的状态。
(i)接着,进至步骤S9,判断是否使高速缓存重装电路22完成。
(j)如果不能使高速缓存重装电路22完成,进至步骤S10,使已发布指令在循环中回转并保持。
(k)接着,返回步骤S9,重复判断是否使高速缓存重装电路22完成。
(l)能使高速缓存重装电路22完成,则进至步骤S11,判断循环中回转的装载指令是否处在高速缓存故障发生前的位置。
(m)步骤S11中,在循环中回转的指令处在高速缓存故障发生前的位置,则返回步骤S3,执行指令INS 。
(n)步骤S11中,在循环中回转的指令不处在高速缓存故障发生前的位置,则进至步骤S12,使已发布指令在循环中回转。
(o)接着,返回步骤S11,判断循环中回转的已发布指令是否处在高速缓存故障发生前的位置。
(p)步骤S11中,在循环中回转的指令处在高速缓存故障发生前的位置,则返回步骤S3,执行指令INS;步骤S4中,因装载指令LCOM而不发生高速缓存故障,则进至步骤S5,使指令完成。
以往,与指令的流水线执行同步地在PLG之间移动指令、使用的资源的类型、操作数控制信息等的数据,并将其保持在PLG。本发明的指令转回处理器系统,其特征为着眼于该保持的信息是再执行指令所充分需要的信息,使其在需要再执行时返回构成指令发布部的多路变换器11,加以再利用。依次,控制单元8中,在高速缓存命中寄存器31保持数据高速缓存单元24的命中失误信号,在TLB命中寄存器32保持TLB23的命中失误信号,并且在转回控制单元10输入成为转回原因的这些触发信号,与指令的执行同步地对触发信号取样,判断是否需要转回。这里,触发信号相当于高速缓存命中寄存器中存放的命中失误信息HMC和TLB命中寄存器中存放的命中失误信号HMT,如图2和图3所示。高速缓存命中寄存器中存放的命中失误信号HMC从高速缓存命中寄存器31输入到高速缓存重装电路22和转回判断电路26。TLB命中寄存器中存放的命中失误信号HMT从TLB命中寄存器32输入到相同的高速缓存重装电路22和转回判断电路26。
下面,使用图6至图8说明本发明的指令转回处理器系统的运作。图6示出发生数据高速缓存故障的状态,图7示出转回运作状态,图8示出转回结束状态。图6至图8所示的指令转回处理器系统的组成基本上对应于图1的组成中,PLG为3级的情况。图6至图8中也照样记载译码器单元12和控制单元8。图6至图8和后面说明的图9中所示的指令在图1和图2所示的译码器单元12和控制单元8受到流水线处理。
在发生数据高速缓存故障的状态下,如图6所示,IWB2内依次存放“指令4”、“指令5”、“指令6”,并且配置在MUX11的3级PLG1、PLG2、PLG3中分别存放“指令3”、“指令2”、“指令1”。在MUX11输入IWB2的输出。PLG3的输出环状返回MUX11的输入端。MUX11连接转回控制单元10。这里,假设“指令1”是装载指令,“指令2”、“指令3”是其后续指令。图6示出PLG3中“指令1”发生数据高速缓存故障,并且启动转回运作的瞬间。因此,其后转移到在MUX11选择“指令1”的模式。
需要转回的情况下,如图7和图8所示,其指令到达末级PLG3时,作为转回的始端的“指令1”到达末级PLG3,这时转回控制单元10设定控制信号,使MUX11选择末级PLG3的输出端,并对其输出。于是,PLG3、PLG2、PLG1保持的“指令1”、“指令2”、“指令3”依次通过MUX11再次返回PLG群构成的流水线寄存器,再次保持在PLG中。转回的初始指令和该时刻已在PLG中的指令(“指令1”~“指令3”)按在环路循环的方式,一个接一个转回(图7)。接着,继续进行转回,直到高速缓存重装电路22对转回控制电路25通知高速缓存的重装结束时,“指令1”再次返回PLG3的位置。
然后,判明启动转回的“指令1”再次到达末级PLG3,从而转回正常结束时,如图8所示,控制MUX11,使其选择来自IWB2的新指令(即“指令4”)后,按常规发布指令。
这时,在高速缓存故障没有得到恢复,从而需要再次进行转回的情况下,MUX11的控制信号进行控制,以继续选择PLG端,使转回运作又能继续进行。然后,重复执行“指令1”~“指令3”,直到转回成功。
图6至图8中,假设PLG1、PLG2、PLG3都填满指令,但也存在流水线故障不能每一周期发布指令的情况。该情况下,PLG1、PLG2、PLG3部分为“泡(空)”。在进行定时控制,以解除流水线故障方面,需要该“泡”。因此,即使在进行转回运作时,也会发生几乎相同的故障(有时部分不是这样),从而与“常规执行”相同,也需要“泡”。本发明的实施形态的指令转回处理器系统中,采用指令转回方法时,由于已经插入该“泡”,不需要新添解除故障用的控制。因此,仅用依次再发布单纯保持在PLG中的指令,就能简便地实现转回。
MUX11连接的PLG的级数不限于3级。存在n级(n为自然数)时,如图9所示那样组成,指令按PLG1、PLG2、PLG3、……、PLGn移位。末级PLGn的输出返回MUX11。利用转回控制单元10的控制,选择转回运作或从IWB2发布新指令的指令再发布运作。PLG的级数n增多时,并行处理的速度提高,因而CPU的处理能力提高。另一方面,由于各PLG中使指令保持一定时间,PLG的级数n增多,表目的深度加大时,流水线的再启动需要时间。从而,指令的执行处理速度变慢。因此,作为实际使用的级数n,选择诸如16级、32级左右。
如图10所示,用于本发明实施例的指令转回处理器系统中构成高速缓存器的数据高速缓存单元24的组成部分包含连接加法器30的虚拟地址存放部51、TLB23、物理地址存放部54和高速缓存部55。加法器30的输出连接到虚拟地址存放部51,虚拟地址存放部51的输出输入到TLB23。TLB23将该虚拟地址存放部51存放的虚拟地址变换成物理地址如下。TLB23中有多个表目,分别具有有效(valid)段、页面重写标志(dirty)段、标记(TAG)段、物理页号(Physical Page Number)段。TLB23把虚拟地址存放部51的虚拟页号(VPNVirtual Page Number)当作关键字,对TLB23进行检索从多个表目中取出一个。用一致性比较器52比较取出的表目的标记段(TAG)值与虚拟地址存放部51内存放的虚拟页号。如果两者一致,一致比较器52输出“1”。其表目中,有效(valid)段为“1”(有效)时,与门53的输出为“1”,TLB23命中,在TLB23中发现需要的表目。不一致时,TLB23的命中为“0”,在TLB23中找不到需要的表目,因而从存储器读出需要的表目,并写入到TLB23。此运作称为TLB重装。此后,如果再对TLB23进行检索,就会发现需要的表目,因而TLB23命中,接着进行数据高速缓存器的检索。
命中的TLB23的表目中具有物理页号段,该段成为装载指令LCOM的物理地址的高端位。连接该段和成为物理地址的低端位的、虚拟地址存放部51内的页偏移(Page Offset),从而生成物理地址54。
高速缓存器部55由多个表目组成。各表目具有有效(valid)段、标记(TAG)段、数据(Data)段。把物理地址的低端位作为索引(INDEX)关键字,对高速缓存器进行检索。比较检索到的高速缓存器的表目标记(TAG)段的值与作为物理地址的高端位的标记(TAG)部。在一致性比较器52的输出为“1”(表示一致)而且有效(valid)段为“1”(有效)的情况下,与门53的输出为“1”。高速缓存器命中。
表目不一致时,高速缓存器命中为“0”,成为高速缓存故障,高速缓存重装电路22从存储器读出数据,并写入到高速缓存器的表目。此后,如果再访问高速缓存器,就命中,能输出数据。
如图10所示,在本发明实施例的指令转回处理器系统中,进行流水线处理的CPU,其组成部分包含指令高速缓存器(ICHACHE)101、连接指令高速缓存器101的IWB2、GPR21、由LD/ST管段102、分支管段103、整数管段0、整数管段1、COP1管段107和COP2管段108组成的执行流水线、虚拟地址计算部109、DTLB(Data TLB)110、DCACHE(Data Cache)111、响应缓存器112、总线接口单元(BIUBus Interface Unit)113。从指令高速缓存器(ICACHE)101读取应执行的指令。将读取的指令写入IWB2。接着,从GPR21读出指令所指定的源寄存器值Rs和Rt。接着,将读出的源寄存器值送到执行部(执行流水线)。执行流水线有多条。这里,有执行装载/存储指令的LD/ST管段102、执行分支指令的分支管段103、执行整数运算指令的整数管段0和整数管段1、执行协处理器1的指令的COP1管段107、执行协处理器2的指令的COP2管段108。所执行的指令按照其指令的类型,与源寄存器值一起发送到某一适当的执行流水线。LD/ST管段102与虚拟地址计算部109、DTLB110、DCACHE(Data Cache)111协同运作。即,把GPR21供给的源寄存器值输入到虚拟地址计算部109,生成数据的虚拟地址51。接着,在DTLB110把虚拟地址51变换成物理地址54,并访问DCACHE111,以执行装载贮存指令。在高速缓存故障的情况下,把装载指令LCOM的物理地址传送到响应缓存器112,进而使BIU(Bus Interface Unit)113进行对外存储器的数据装载。把BIU113从外存储器读出的数据写入响应缓存器112,接着又写入DCACHE111。此运作称为高速缓存重装运作,写入后,再执行高速缓存故障的指令。
接着,各执行流水线在结果总线114输出指令的结果,即运算结果和装载数据,并将其写回到GPR21,从而结束指令的执行。
本发明的转回方式有以下的优点。
利用已有的PLG,因而添加的硬件是MUX11及其控制逻辑,能以低成本实现整个系统。
不需要为转回运作而占用IBS2的若干表目,能将IWB表目用于原本的指令发布。而且,能先读的指令数增多,因而能有效利用指令级并行性(InstructionLevel Parallelism),使性能提高。
进行转回运作时,不需要检测流水线故障(数据故障、资源故障、控制故障),因而控制简单,能用低成本实现。
其它实施例如上文所述,本发明有实施例记载,但不应构成此揭示的一部分的论述和附图理解为限定本发明。此揭示会使本领域的工作人员明白各种替换实施方式、实施例和运用技术。因此,本发明的技术范围仅由根据上述说明妥当的权利要求书范围所涉及的发明特定事项决定。
根据本发明,能实现一种利用已有的流水线寄存器,可将IWB用于指令发布,可有效利用指令级并行性,并且控制简单、成本低、性能高的指令转回处理器系统、指令转回方法和指令转回程序。
权利要求
1.一种指令转回处理器系统,其特征在于,具有存放按一定顺序排列的多条执行前指令的指令窗缓存器、在一个输入端输入所述指令窗缓存器的输出的多路变换器、以及连接在所述多路变换器的输出端与所述多路变换器的另一输入端之间的转回单元。
2.如权利要求1中所述的指令转回处理器系统,其特征在于,所述转回单元具有保持执行段流水线长度份额的所述多路变换器的输出的流水线寄存器。
3.如权利要求1中所述的指令转回处理器系统,其特征在于,所述转回单元具有环状级联的多级流水线寄存器。
4.如权利要求2或3中所述的指令转回处理器系统,其特征在于,所述流水线寄存器具有存放指令的第1源寄存器值的数据存放部、存放指令的第2源寄存器值的数据存放部、存放指令的目的处编号的数据存放部、以及存放指令的操作码的数据存放部。
5.如权利要求1中所述的指令转回处理器系统,其特征在于,还具有连接所述转回单元的译码器单元。
6.如权利要求5中所述的指令转回处理器系统,其特征在于,还具有连接所述译码器单元的控制单元。
7.如权利要求5中所述的指令转回处理器系统,其特征在于,所述译码器单元具有对所述多级流水线寄存器内的第1级流水线寄存器送来的指令进行译码的第1指令译码器。
8.如权利要求6中所述的指令转回处理器系统,其特征在于,还具有连接所述控制单元并且对所述多路变换器发布转回控制信号的转回控制单元。
9.一种指令转回方法,其特征在于,具有发生高速缓存故障时在转回单元中使未完成的指令在循环中回转并保持的转回步骤、在高速缓存故障未解除且转回未正常结束时重复进行转回步骤的步骤、以及转回正常结束时对多路变换器发布转回控制信号并且从指令窗缓存器发布未发布的指令的再发布步骤。
10.一种指令转回方法,其特征在于,用于指令转回处理器系统中,该系统具有按一定顺序排列多条执行前指令的指令窗缓存器、将所述指令窗缓存器的输出作为一个输入的多路变换器、以及连接所述多路变换器的转回单元,并且所述多路变换器的另一输入端连接所述转回单元的输出端,所述指令转回方法具有对未完成的指令进行转回时选择所述转回单元方的输入的转回步骤、以及发布未发布的指令时选择来自所述指令窗缓存器的输入的指令再发布步骤。
11.一种指令转回方法,其特征在于,具有以下的步骤执行指令窗缓存器发布的执行前指令的步骤;发生高速缓存故障时驱动高速缓存重装电路,并且流水线寄存器中的装载指令和后续指令为非激活,使所述指令窗缓存器冻结在发生所述高速缓存故障时的状态的步骤;返回步骤,如果所述高速缓存重装电路完成而且装载指令处于所述高速缓存故障发生前的位置,则返回执行所述装载指令和后续指令的步骤;如果所述高速缓存重装电路未完成,则使所述指令窗缓存器发布的已发布指令循环回转并保持;如果所述高速缓存重装电路完成而且所述装载指令不处于所述高速缓存故障发生前的位置,则循环回转所述已发布指令。
12.一种指令转回程序,其特征在于,使指令转回处理器系统执行的算法包含以下的步骤执行指令窗缓存器发布的执行指令;发生高速缓存故障时驱动高速缓存重装电路,并且流水线寄存器中的装载指令和后续指令为非激活,使所述指令窗缓存器冻结在发生所述高速缓存故障时的状态;如果所述高速缓存重装电路完成而且装载指令处于所述高速缓存故障发生前的位置,则返回执行所述装载指令和后续指令的步骤的返回步骤;以及如果所述高速缓存重装电路未完成,则循环回转并保持所述指令窗缓存器发布的已发布指令;如果所述高速缓存重装电路完成而且所述装载指令不处于所述高速缓存故障发生前的位置,则循环回转所述已发布指令。
全文摘要
提供一种指令转回处理器系统,具有转回运作时在环形流水线寄存器PLG群内保持再执行用的指令、指令再发布运作时从指令窗缓存器IWB再发布指令等功能,并且成本低,性能高。该指令转回处理器系统的特征为具有保持应发布的指令并且在可发布的定时发布指令的IWB(2)、连接IWB(2)的多路变换器MUX(11)、连接MUX(11)并且由多级PLG(13~16)组成的转回单元(9)、连接转回单元(9)的译码器单元(12)、连接译码器单元(12)的控制单元(8)、以及连接控制单元(8)并且对MUX(11)发布转回控制信号的转回控制单元(10),在MUX(11)的另一输入端连接转回控制单元(9)的输出。
文档编号G06F9/30GK1525309SQ20041000762
公开日2004年9月1日 申请日期2004年2月25日 优先权日2003年2月26日
发明者照山龙生 申请人:株式会社东芝
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1