处理器延迟的利记博彩app

文档序号:6475582阅读:184来源:国知局
专利名称:处理器延迟的利记博彩app
背景本发明涉及延迟可编程处理器。
“流水线操作”是使用在常规可编程处理器,比如数字信号处理器中的一种技术。在这种可编程处理器中,为了增加总体处理速度,指令是被重复执行的。典型的流水线处理器处理大量的阶段性处理指令。指令依据系统时钟从一个阶段移动到另一个阶段,其中,典型的系统时钟有以流水线中最慢阶段决定的时钟速率。
然而,处理器称为“危险因素”的指令和条件有时候阻止了指令流中下一条指令的执行。例如,当一条指令依赖于还没有从流水线中结束的前一条指令的结果时,数据危险因素就发生了。因此,危险导致流水线“阻塞”并降低了流水线的性能。
普通的解决方法是附加硬件,这被称作流水线互锁,它检测危险因素并延迟流水线直到危险因素被清除。有代表性的是,流水线互锁通过特定指令,通常称作“NOP”来延迟流水线。其中,该“NOP”指令不需要流水线的操作,但它却消耗了指令流中的一个位置。
图2是可编程处理器流水线范例的结构图。
图3是延迟控制器一个实施例的结构图。
图4是延迟发生器一个实施范例的示意图。
图5是指令跟踪电路一个实施例的示意图。
图6是单循环延迟的条件探测发生器一个实施例的示意图。
图7是双循环延迟的条件探测器一个实施例的示意图。
图8是N重循环条件探测器一个实施例的示意图。
具体实施例方式


图1是具备执行流水线4和控制单元6的可编程处理器2的结构图。控制单元6控制流水线4中指令和数据的流动。例如,在处理指令时,控制单元6可以指引流水线的不同部分来对指令解码,并正确的执行相应的操作,比如说将结果写回内存。
指令可以被载入流水线4的第一阶段,并由后续阶段处理。每个阶段与其他阶段并发处理。数据与系统时钟一致,在流水线4的阶段中通过。指令的结果快速接替的出现在流水线4的末端。
延迟控制器8可以探测危险条件并维护(assert)到延迟流水线4的一个或多个延迟信号。如下所述,延迟控制器8同步产生依据系统时钟9的延迟信号。
图2是依照本发明流水线4的例子图解。例如,流水线4可以有5个阶段取指令(IF)、指令解码(DEC)、地址计算(AC)、执行(EX)和回写(WB)。在第一阶段(IF),指令能通过取单元11从比如像主存或指令高速缓冲存储器这样的存储装置中取出,并在第二阶段(DEC)通过指令解码单元12来解码。在下一个时钟周期,结果被传送到第三阶段(AC),在那里数据地址发生器13计算存储地址并执行操作。
在执行阶段(EX),执行单元15执行特定的操作,例如,将两个数相加或相乘。执行单元可能包含专门的硬件用来执行这样的操作,这包括像一个或多个算术逻辑单元(ALU’S)、浮点数单元(FPU)和桶转换器(barrel shifters)。数据的多样性可以适用于执行单元15,比如由数据地址发生器13产生的地址、从存储器17中重新得到的数据或从数据寄存器14中重新得到的数据。在末尾阶段(WB),结果被写回数据存储器或数据寄存器14中。
流水线4的阶段包括阶段存储电路,比如阶段存储器19,它用来存储当前阶段的结果。典型的,阶段存储器19依据系统时钟来闭锁结果。阶段寄存器19接收到延迟信号18,这将控制阶段寄存器19是否闭锁前一阶段的结果。如此,延迟控制器8可以同步延迟流水线4中一个或多个阶段。特别的,控制器8在指令流中不插入非操作指令(“NOP”)的情况下,能有效的冻结流水线4。
另外,如下面将要更详细讨论的,延迟控制器8可能在早于危险条件发生的一个或更多周期时,就探测到了危险条件,这样延迟信号18可能由存储电路的输出产生,该存储电路为比如像能支持高扇出(fan-out)需求的触发器。此外,流水线4不必包括附加硬件用来在延迟条件不再存在之前暂时存储操作的结果。
图3是延迟控制器8一个实施例的结构图。延迟控制器8可包括延迟发生器32、条件探测器34和指令跟踪电路33。如下面将要详细描述的,指令跟踪电路33输出一个或多个阶段指示信号36来指示流水线4不同阶段中一种或多种类型指令的存在。例如,当分支指令在流水线4的地址计算(AC)阶段中时,指令跟踪电路33可以确定特别的阶段指示信号36。
通常,指令跟踪电路33探测指令不同类型的存在与否,当某个阶段存在时,指令跟踪电路33就创建危险条件,这就需要流水线4延迟一个或多个周期。指令跟踪电路33确定阶段指示信号36,并将它作为通过流水线4的不同阶段并能导致潜在危险的指令流。条件探测器34接收到阶段指示信号36,并确定在流水线4不同阶段中指令的存在是否导致危险因素。如果如此,那么流水线4就需要延迟周期数。当在流水线4中探测到危险条件时,条件探测器34可能确定危险条件35一个或多个周期。延迟发生器32接收到危险条件信号35,并基于探测到的危险因素,可确定延迟信号18,并用一个或多个周期来延迟流水线4的一个或多个阶段。
图4是延迟发生器32一个实施范例的示意图。延迟发生器可接收许多危险条件信号35,比如通过延迟_条件_8的延迟_条件_1,当各个延迟条件已被条件探测器34探测到时,这一点能确定。输入信号仅作为范例目的;例如,延迟发生器32可接收流水线4不同阶段的不同延迟条件的任何数目。
响应于危险条件信号35,延迟发生器32可以产生延迟信号18来延迟流水线4。延迟发生器32可产生大多数的延迟信号18,这些延迟信号相应于流水线4的阶段。例如,当确定延迟_条件_1或延迟_条件_2,且处理器2没有被重置时,延迟发生器32可确定延迟_回写输出信号,这导至了流水线4回写阶段的延迟。特别的,延迟_回写输出信号被用来产生对流水线4较早阶段的延迟输出信号,比如延迟_执行输出信号。更明确的说,当确定延迟_条件_3、延迟_条件_4或延迟_回写,且处理器2没有被重置时,延迟发生器32确定了延迟_执行输出信号。如此,在回写阶段的延迟就迫使产生了执行阶段的延迟。类似的,延迟发生器32产生基于独立危险条件的延迟_地址计算和延迟_指令解码信号,也产生了流水线4较低阶段的延迟。
图5是提供阶段指示信号36的指令跟踪电路33一个实施范例的图解。在图解实施例中,两种指令类型可被监控,但本发明不局限于此。指令跟踪电路33提供三种输出信号,用来指示第一指令类型的存在指令_类型1`_地址计算、指令_类型1_执行和指令_类型1_回写。这些信号分别指示地址计算、执行和回写阶段的第一指令类型的存在。
另外,指令跟踪电路33提供指示第二指令类型存在的信号输出指令_类型2_地址计算。这个信号指示流水线4地址计算状态中第二指令类型的存在。
指令跟踪电路33接收到许多输入,包括指令_类型1_解码和指令_类型2_解码。这些指令分别执行这样的操作,即由控制单元6中的解码逻辑给出,当第一指令类型或第二指令类型存在时被确定,并在解码阶段解码。这两个信号都适于确保解码阶段的指令是有效的且没有被“剔除(killed)”,例如由分支条件导致的指令流改变而引起“剔除”现象,这两个信号还适于确保解码阶段中指令没有被延迟。第一指令类型的存在引发确定信号在触发器51系列中的传播,这如同指令在流水线4中的流动一样。确定的信号在每个阶段中被进一步限定。
同样的,在解码阶段第二指令类型的存在被探测到,并在单触发器中传播,用来提供输出指令_类型2_地址计算。第二指令类型的进程能在所有阶段中被监控;然而,下面描述的例子在地址计算阶段探测到了第二指令类型的存在。
下面描述的范例电路阐明了用来在地址计算阶段延迟第二指令类型的范例逻辑。此时,指令流中,第二指令类型跟随第一指令类型之后,并在第二指令类型和第一指令类型之间插入了一个或多个“气泡”。
图6是条件探测器34中范例电路60的示意图,该电路是用来探测危险因素和延迟单循环流水线4的。更明确的说,电路60产生了延迟条件信号,比如图4的延迟_条件_5,用来延迟单时钟循环流水线4的地址计算阶段,此时在指令流中,第二指令类型跟随第一指令类型之后。特别的,条件发生器60同步产生了延迟_条件_5,这样以至延迟_条件_5直接从时钟存储电路,比如说触发器65中给出。
在图解的实施例中,当指令在流水线4中传播时,电路60在第一指令和第二指令中插入了单气泡。当类型1指令在地址计算阶段时,与门66确定延迟发生信号62,类型2指令在译码阶段并且类型2指令是有效指令,它既没有被延迟也没有被剔除。在下一个时钟周期,当指令1和指令2分别传播到地址计算和执行阶段时,存储电路65闭锁延迟_发生_信号62并输出延迟_条件_5来延迟发生器32。在下一个时钟周期,假设延迟条件不在流水线4执行阶段或较低阶段,那么当第一指令传播到回写阶段时,延迟_条件_5的确定引起了地址计算阶段中第二指令的延迟。因此,要在两条指令中插入气泡。然而,如果在执行阶段已经有了延迟,那么当第一指令在执行阶段被延迟时,与门67确定了延迟_保持_信号64,而且第二指令2在地址计算阶段被延迟了。延迟_保持_信号64促使存储电路65在第一指令不再于执行阶段中被延迟前维持延迟_条件_5信号,在该点,在接下来的时钟周期里,指令中插入了单气泡。到与门67的延迟_执行输入确保当执行延迟被释放时,延迟_保持_信号64将及时的解除确定(deasserted)以使不再插入不想要的额外气泡。
图7是条件探测器34中范例电路70的示意图。该电路是用来探测危险条件并在第一指令和第二指令中插入两个气泡,此时第一指令是类型1,第二指令是类型2。更明确的说,在第一指令完成了回写阶段之前,电路70延迟了地址计算阶段中的第二指令。
在图解的实施例中,当有效和经限定(qualfied)类型2指令存在于流水线4的解码阶段时,延迟_发生_信号72被确定。此时类型1指令存在于流水线4的执行阶段或地址计算阶段。这样,在后续的时钟周期里,延迟_发生_信号72促使存储电路75确定延迟_条件_6信号。假设延迟条件不存在于流水线4的较低阶段,那么在第一指令和第二指令中会插入两个气泡。当第一指令清除回写阶段时,第二指令可允许在流水线4中传播。
然而,当第二指令类型存在于地址计算阶段,并且第一指令类型在回写阶段被延迟或者存在于执行阶段中时,延迟_保持_信号74被确定了。延迟_保持信号74促使存储电路75在第一指令清除回写阶段之前维持延迟_条件_6信号。到与门76的延迟_回写输入信号确保当回写延迟被释放时,延迟_保持_信号74将及时解除确定以使不再插入不想要的额外气泡。
图8是范例电路80的示意图,该电路是用来预探测阶段M中延迟条件,延迟阶段M+1中的第二指令,并在第一指令和第二指令中插入N个气泡。当类型2指令在阶段M中,且类型1指令存在于阶段M+1和阶段M+N中的任何阶段时,延迟_发生_信号82被确定。同样的,当类型2指令存在于阶段M+1,例如,该阶段紧跟预探测延迟条件阶段之后,且类型1指令在阶段M+2和阶段M+N+1中的任何阶段都被延迟的情况下,延迟_保持_信号84被确定了。到与门85的延迟_阶段(M+N+1)输入确保了当阶段M+N+1的延迟被释放时,延迟_保持_信号84将被及时解除以使不再插入不想要的额外气泡。
我们已经描述了本发明的不同实施例。例如,我们说明了有条件的将数据在指针寄存器和数据寄存器之间移动的单机器指令。该处理器能在不同的系统中运行,这包括通用计算系统、数字处理系统、膝上计算机、个人数字助理(PDA’s)和便携式电话。在这样的系统中,处理器可与存储装置结合,比如闪存装置或静态随机存取存储器(SRAM),这样处理器就可存储操作系统或其他的应用软件了。这些以及其他的实施例在下面权利要求书的范围之内。
权利要求
1.一种方法,其特征在于,包含在第一时钟周期,预探测流水线处理器中的危险条件;在第二时钟周期,产生一系列延迟信号;根据产生的流水线信号,延迟一个或多个流水线状态。
2.如权利要求1所述的方法,其特征在于,当在阶段M中探测到危险条件时,产生一系列延迟信号,包括产生一系列延迟信号来延迟阶段1到阶段M+1。
3.如权利要求1所述的方法,其特征在于,还包含在第一时钟周期,产生延迟发生信号来延迟一个时钟周期流水线并在第一时钟周期,基于探测到的危险因素产生的延迟保持信号来延迟一个或多个附加循环的流水线。
4.如权利要求1所述的方法,其特征在于,延迟一个或多个流水线阶段包含产生从时钟存储电路来的延迟信号。
5.如权利要求2所述的方法,其特征在于,第二时钟周期紧跟在第一时钟周期之后。
6.如权利要求1所述的方法,其特征在于,还包括用有效信号和剔除信号来限定延迟信号。
7.如权利要求2所述的方法,其特征在于,还包含确定当前的延迟条件是否已经存在于流水线中;并延迟基于该确定条件的延迟信号。
8.如权利要求2所述的方法,其特征在于,还包含当探测到的危险因素需要不止一个流水线单循环延迟时,保存存储电路中的延迟信号。
9.一种设备,其特征在于,包含具备许多阶段的流水线;延迟控制器包含适合在第一时钟周期探测危险条件的条件探测电路;适合在第二时钟周期产生一系列基于探测到危险因素的延迟信号的延迟发生器,它用来延迟流水线的一个或多个阶段。
10.如权利要求9所述的设备,其特征在于,延迟控制器包含具备一个或多个阶段指示输出信号的指令跟踪电路,该阶段指示输出信号可指示流水线阶段中一种或多种指令类型的存在与否,进一步,其中条件探测电路预探测基于阶段指示输出信号的危险因素。
11.如权利要求9所述的设备,其特征在于,该阶段包含具备写允许输入的流水线寄存器来接收延迟信号。
12.如权利要求9所述的设备,其特征在于,延迟控制器接收到时钟信号并同步产生依据时钟信号的延迟信号。
13.如权利要求12所述的设备,其特征在于,延迟控制器包含适合输出延迟信号的存储电路,该延迟信号至少在探测到危险条件后的一个时钟周期内。
14.如权利要求9所述的设备,其特征在于,当条件探测单元探测到阶段M中的危险条件时,延迟发生器适合输出对流水线阶段1到M+1的延迟信号。
15.如权利要求9所述的设备,其特征在于,条件探测单元包括延迟发生输出信号和延迟保持信号,其中延迟发生输出信号用来将流水线延迟一个时钟周期,而延迟保持信号用来将流水线延迟一个或多个附加周期。
16.一种系统,其特征在于,包含闪存装置;与闪存装置结合的处理器,其中处理器包括具备大多数阶段的流水线,延迟控制器包括适合在第一时钟周期探测危险条件的条件探测电路;基于探测到的危险因素,适合在第二时钟周期产生一系列延迟信号的延迟发生器,并用它来延迟一个或多个流水线阶段。
17.如权利要求16所述的系统,其特征在于,延迟控制器包含具备一个或多个阶段指示输出信号的指令跟踪电路,该阶段指示输出信号指示流水线阶段中一种或多个种指令类型的存在与否,进一步,其中条件探测电路预探测基于阶段指示输出信号的危险因素。
18.如权利要求16所述的系统,其特征在于,阶段包含具备写允许输入的流水线寄存器来接收延迟信号。
19.如权利要求16所述的系统,其特征在于,延迟控制器接收到时钟信号并同步产生依据时钟信号的延迟信号。
20.如权利要求16所述的系统,其特征在于,延迟控制器包含适合输出延迟信号的存储电路,该延迟信号至少在探测到危险条件后的一个时钟周期内。
21.如权利要求16所述的系统,其特征在于,当条件探测单元探测到阶段M中的危险条件时,延迟发生器适合输出对流水线阶段1到M+1的延迟信号。
22.如权利要求16所述的系统,其特征在于,条件探测单元包括延迟发生信号和延迟保持信号,其中延迟发生信号用来将流水线延迟一个时钟周期,而延迟保持信号用来将流水线延迟一个或多个附加周期。
23.在流水线处理器的第一指令和第二指令之间插入N个延迟周期所述的设备,它包括条件探测电路,适合确定当第二指令在阶段M中,并且第一指令存在于阶段M+1和阶段M+N之间的任何阶段时的延迟发生信号;当第二指令存在于阶段M+1,并且第一指令在阶段M+2和阶段M+N+1中被延迟时的延迟保持信号。
24.如权利要求23所述的设备,其特征在于,延迟发生器还包含时钟存储电路来输出基于延迟发生信号和延迟保持信号的延迟条件信号。
25.如权利要求24所述的设备,其特征在于,还包含适合产生基于延迟条件信号的一系列延迟信号的延迟发生器。
26.如权利要求23所述的设备,其特征在于,还包含具备一个或多个阶段指示输出信号的指令跟踪电路,其阶段指示输出信号指示流水线阶段中一种或多种指令类型的存在与否,进一步,其中条件探测电路确定基于阶段指示输出信号的延迟发生信号和延迟保持信号。
27.在具备大多数阶段的流水线处理器的第一指令和第二指令之间插入N个延迟周期所述的方法,其特征在于,包含当第二指令在阶段M中,且第一指令存在于阶段M+1和阶段M+N之间的任何阶段时,确定延迟发生信号;当第二指令存在于阶段M+1中,且第一指令在阶段M+2和M+N+1之间被延迟时,确定延迟保持信号;延迟响应延迟发生信号和延迟保持信号的流水线一个或多个阶段。
28.如权利要求27所述的方法,其特征在于,包含将延迟发生信号和延迟保持信号置于第一时钟周期中的存储电路中;输出从第二时钟周期中存储电路来的延迟条件信号。
29.如权利要求28所述的方法,其特征在于,还包含产生基于延迟条件信号的一系列延迟信号。
全文摘要
在一个实施例中,可编程处理器包括具有许多阶段的流水线。延迟控制器适合于预探测流水线其中一个阶段中的危险条件,并同步延迟流水线的另一个阶段。为在流水线中延迟其他信号,延迟控制器产生了附加延迟信号。
文档编号G06F9/38GK1478229SQ01819987
公开日2004年2月25日 申请日期2001年12月6日 优先权日2000年12月6日
发明者C·P·罗思, R·P·辛格, G·A·奥弗坎普, C P 罗思, 奥弗坎普, 辛格 申请人:英特尔公司, 模拟设备股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1