失速控制制造技术

技术编号:2881759 阅读:196 留言:0更新日期:2012-04-11 18:40
本发明专利技术揭示了包括多条流水线的诸处理机,每条流水线都具有多个流水线级(142,146)用于在诸连续的时钟周期上执行一个指令。诸处理机包括分布的失速控制电路(148,150,152,154),它们允许在一条流水线中的一个指令变得暂时地与在另一条流水线中的一个指令不同步。这可以得到用于分布一个全局信号,如一个全局失速信号的时间。(*该技术在2021年保护过期,可自由使用*)

【技术实现步骤摘要】

本专利技术涉及处理机和操作处理机的方法。本专利技术在并行流水线处理机,如非常长的指令字(VLIW)处理机中有特殊的应用。高性能处理机用称为流水线式的技术增加处理指令的速率。流水线是通过在若干个阶段中执行一个指令,在单个流水线级中执行每个阶段进行工作的。指令通过连续的流水线级流动,所有部分地完成的指令在每个处理机的时钟周期上向前移动一级。当诸指令到达流水线的终端时完成对它们的执行。诸处理机试图使诸流水线在所有的时间中都是满的,这样来保证指令完成的高速率。然而,由于某种原因一个指令可能在单个时钟周期中不能通过一条流水线的诸级中的一级,例如,因为它需要接入慢存储器或许者计算一个多周期工作。我们将这种情况称为失速(stall)。当一条流水线的级i失速时,就会阻止在级i-1的指令向前行进,即便在级i-1的指令本身并不失速。反过来这又使级i-2失速,如此一直到级0(第1级)。当在级i有失速时,一个信号流动到在流水线中的所有的从0到i-1的级,使它们在流水线时钟信号的下一个有效边沿前失速。一些处理机结构提供两条或更多条并行流水线,用于同时处理不同的指令(或一个指令的不同部分)。在这种情形中,必须将失速信号分布到所有的流水线,以便保证并行地发出的诸指令也能并行地完成。然而,传播这样一个全局的失速信号的延迟可能限制处理机的工作时钟频率。而且,这样一个信号必须经过的距离随着加入更多的流水线而增加。所以一个具有较多流水线的处理机需要一个较慢时钟频率,于是使进一步增加流水线实现高的总处理能力的努力受到挫折。本专利技术就是要力图克服上述的诸缺点。根据本专利技术的第1方面,我们提供包括下列装置的处理机多条流水线,每条流水线都具有多个流水线级用于在连续的时钟周期上执行指令;和失速装置,用于响应在任何一条流水线中产生的失速信号在所有的流水线中使指令的执行失速。其中用失速装置使在一条不产生失速信号的流水线中的一个指令的执行在一条产生失速信号的流水线中的一个指令的执行后面至少一个时钟周期上失速,并在这条不产生失速信号的流水线中在这条产生失速信号的流水线中的失速后面至少一个时钟周期上解除失速。在不同的时钟周期在不同的流水线中使指令执行失速可以得到附加的时间,利用该时间使失速信号从这条产生失速信号的流水线分布到其它的流水线。这样可以使处理机以比其它情况更高的速度运行。通过比在流水线中产生失速信号的失速晚至少一个时钟周期释放在流水线中不产生失速信号的失速,在不同的流水线中的各指令在一个或多个时钟周期的不同步之后可以回到对准状态。优先地,从失速释放的相应的流水线之间的时钟周期的数目与被失速的相应的流水线之间的时钟周期的数目相等。本专利技术可以用于一个处理机流水线的全部或任何一部分。作为例子,每条流水线可以包括一个或多个地址计算级,一个指令提取级,一个指令解码级,一个指令执行级,和/或其它的级或子级。如果两个或更多的流水线同时产生一个失速信号,不必响应于另一流水线产生的失速信号对每一流水线进行失速。这是因为每一流水线可以实现适当的失速。如果每一条流水线也响应于由另一流水线产生的失速信号被失速,可能发生多于需要的失速。于是,失速装置可以被安排成使得当在第一流水线的一个流水线级从第二流水线接收到一个失速信号时,如果该流水线级响应于由第一流水线产生的失速信号在前一周期中失速,在第一流水线中的该流水线级中的指令的执行不被失速。失速装置可以被安排成使得当一条流水线在级i产生一个失速信号时,使包括那条流水线的级i在内的所有的级都失速。在这种方式中,使在一条流水线中的诸较前面的诸级失速以便防止在一条流水线中的诸指令相互复盖。不需要使较后面的诸级失速,从而较后面的诸级中的诸指令可以如通常那样地继续通过流水线前进,虽然,如果需要的话,也可以使所有的或一些较后面的级失速。可以如此安排失速装置,使得当一条流水线在级i产生失速信号时,在一个给定的时钟周期上使直到和包括那条流水线的级i的所有的级都失速,在所述给定的时钟循后面的m个时钟周期上使直到和包括一条不产生失速信号的流水线的级i+m的所有的级都失速,其中m是大于或等于1的整数。假定在一条不产生失速信号的流水线中后面的m个时钟周期上使直到级i+m的所有的级都失速,则使在那条流水线中的与在产生失速信号的流水线中的诸失速的指令相对应的诸指令失速。处理机可以包括多个流水线群集,每个群集包括多条流水线。在这种情形中,可以安排失速装置使在同一个时钟周期中在一个群集内的诸流水线中的指令执行失速。优先地,在工作中,并行地(也就是说在一个特定的时间周期中)进入各条流水线中的诸指令并行地离开诸流水线。可以在不同流水线中执行不同的指令。例如,处理机可以是一个VLIW处理机,其中将来自一个VLIW指令包的诸指令并行地发送给诸流水线。每条流水线可以包括至少一个执行级,在该执行级中一个指令至少可以被部分地执行。可以使诸流水线响应失速信号不被清洗那样地安排处理机。优先地将失速控装置分布在两个或更多个流水线级之间。这能够允许每个流水线级对它自己的失速进行控制。这样一种安排能够容易地使失速机构按比例放大以便根据需要包括更多的流水线或流水线级。于是,两个或多个流水线级的每个都可以与用于控制那个流水线级的失速的失速控制电路结合起来。可以安排在每个流水线级中的失速控制电路产生一个用于使另一条流水线失速的全局失速信号,并接收来自另一条流水线的一个全局失速信号用于使与失速控制电路结合的流水线级失速。可以这样安排失速控制电路,如果结合的流水线级受到来自在另一条流水线中的同一个级或后面的级的全局失速,则不产生全局失速信号。这能够有助于保证在不同流水线中的诸指令在两条或多条流水线同时产生诸失速信号的情形中正确地对准。优先地在两条或多条流水线中的每一条中的失速控制电路基本上是相同的。可以这样安排处理机使得如果在一个流水线级中存在一个泡则不使那个流水线级失速。甚至当在其它情况下使诸指令失速时,这也能够允许诸指令向前移动进入一个泡。根据本专利技术的第2方面,我们提供一个包括多条流水线的处理机,每条流水线都具有多个流水线级用于对通过诸流水线的信息执行一系列工作,两个或多个流水线级每个都有相结合的失速控制电路用于控制那个流水线级的失速,该控制电路包括用于产生一个保持信号的装置,该保持信号或者响应由那个流水线级产生的一个局域失速信号或者响应由另一条流水线产生的一个全局失速信号使结合的流水线级失速;用于产生全局失速信号的装置,该全局失速信号响应所述的局域失速信号使另一条流水线失速;和用于延迟全局失速信号的装置,使得在认定保持信号后面的一个给定数目的时钟周期上认定全局失速信号,而且在解除保持信号后面的相同数目的时钟周期上解除全局失速信号。第1方面的任何特点都可以加到第2方面中。我们也提供相应的诸方法,这样在本专利技术的第3方面提供了一个操作处理机的方法,该处理机包括多条流水线,每条流水线都有多个用于在诸连续时钟周期上执行诸指令的流水线级,每条流水线都能够产生一个失速信号,该方法包括在一条流水线中产生一个失速信号;在产生失速信号的流水线中使一个指令的执行失速;在不产生失速信号的流水线中在后面的至少一个时钟周期上使一个指令的执行失速;解除在产生失速信号的流水线中的失速;和在后面的至少一个时本文档来自技高网...

【技术保护点】
一个处理机,它包括:多条流水线,每条流水线都具有多个流水线级用于在诸连续的时钟周期上执行一个指令;和失速装置,用于响应在任何一条流水线中产生的一个失速信号在所有的流水线中使诸指令的执行失速。其中用失速装置,在一条产生失速信号的流 水线中的一个指令的执行后面至少一个时钟周期上,使在一条不产生失速信号的流水线中的一个指令的执行失速,并在这条产生失速信号的流水线中的失速后面至少一个时钟周期上,解除在这条不产生失速信号的流水线中的失速。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:卡尔里克卡西姆翁尼格尔皮特托法姆
申请(专利权)人:斯罗扬有限公司
类型:发明
国别省市:GB[英国]

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

1