多执行单元的指令相关调度技术制造技术

技术编号:2891562 阅读:184 留言:0更新日期:2012-04-11 18:40
本发明专利技术提供了一种多执行单元处理系统,其中每个执行单元有一个相关联的指令缓冲区,并且所有的指令都按顺序执行。第1执行单元(单元0)中总是包含最“老”的指令,而第2执行单元(单元1)中则总是包含最“新”的指令。处理器指令,例如取数,存数,加法等将从一个指令高速缓冲区中取出,然后提供给每个指令缓冲区(0,1)。第1条指令(最“老”的)被放在缓冲区0中,下一条(第2条)指令则存于缓冲区1中。在译码阶段决定指令是否依赖于其相邻的上一条指令。(*该技术在2014年保护过期,可自由使用*)

【技术实现步骤摘要】

本专利技术主要涉及带有多执行单元的处理系统中的指令调度技术。更具体地说,本专利技术提供了一种带有多指令缓冲区的系统,其中,指令被定义为相关的、非相关的或依赖于不可获得的资源的。这些指令按照其定义以及与其它指令的关系,或者顺序执行,或者并行执行。在处理系统中设置多执行单元的技术已众所周知。传统的绝大多数系统都包括多个特殊用途的执行单元,以完成诸如加、存数、取数、减、乘、分支跳转以及类似操作。为了解决指令相关的问题,传统系统将特定的指令放置于与对应的特殊用途执行单元相关联的缓冲区中。例如,一条取数操作指令将被放置于与取数执行单元相关联的缓冲区中,等等。如果出现了指令相关,传统系统所做的仅是将后面的那条依赖于前面指令输出的指令挂起。一旦前面的指令执行完毕后,后面的这条相关指令就可以在特定的执行单元中执行了。应当注意到,在传统的系统中,指令可能在与不同执行单元相关联的不同缓冲区之间移位。但是这种移位依赖于指令的类型与可执行该类型指令的特定执行单元之间的关系。也就是说,一条取数指令可以移位到与取数执行单元相关联的缓冲区中。另外,使用先前的这种技术,多处理单元系统通常不按次序执行指令,而本专利技术则能够保持指令之间的次序关系。美国专利5,133,077介绍了多重相异的执行,每种执行只负责特定类型的指令。因而,每条指令都必须按照指令类型,存贮于与某一执行单元相关联的特定缓冲区中。这些指令不能移位到与另外执行单元相关联的另外一个缓冲区中,这是因为它们被限定于某种类型的执行单元。这样,当指令相关情况出现时,这种系统别无选择,只有挂起后面的相关指令,直到该指令所依赖的前面那条指令执行完毕为止。美国专利4,837,678讨论了一种具有指令序列器的系统,含有移位电路的指令序列器用于接受指令并将它们移位,这种移位取决于指令的类型以及要求哪个执行单元来执行该指令(第8-30行,第11列),而不是指令间的相关。美国专利4,847,755介绍的系统中,具有多个用于分析指令流并给指令流增加智能化成分的处理器单元。例如,该系统寻找自然并发性(非相关指令)并为每条指令增加一些智能化成分,其中包括一个逻辑处理器号和一个指令执行时刻(第54-60行,第17列),这实质上是在对指令进行重排序的工作。然后(第10-25行,第18列),逻辑资源驱动器将每条指令发送到选定的处理单元。美国专利5,075,840讨论了一种可以不按次序执行指令的多处理器的系统。这个系统能够延迟执行某种特定类型的指令,直到它可以在其适当的序列顺序中执行为止。可以看出,所有的传统系统都没有提供一种通用的方法以实现在具有多处理单元的系统中既能执行相关指令,又能保持所有指令的顺序。许多传统的系统由于不按次序执行指令,从而需要一个复杂的分支跳转机构,这就大大增加了处理系统的复杂性。正因为如此,通过保持指令的顺序,本专利技术减小了系统开销,从而优化了系统性能,例如,可以决定何时发生一个分支跳转。如果一个处理器能工作在多种不同类型的计算机系统中,指令的分析和执行仅取决于它们与其它指令的依赖关系,而不是执行单元的能力,那么,这样的处理器将是十分优越的。与先前的技术不同,本专利技术提出的系统中,指令在译码阶段被分析,然后系统决定这些指令是否为非相关的、相关的、还是“不可利用的”(unavailable)。对本专利技术来说,相关的指令被定义为依赖于相邻的上一条指令的那些指令。有些指令依赖于某个资源的值是否可用,例如一个寄存器的值,这种指令被定义为“不可利用”,在某些情况下,本专利技术可以将这种指令看做是非相关的,并可以将它们并行移位(但不是不按次序的)。当然,完全不相关的指令是并行执行的。概括地说,本专利技术提出了一种双执行单元处理系统,其中,每个执行单元带有一个与之相关联的指令缓冲区。第1个执行单元(单元0)总是包含最“老”的指令,第2个执行单元(单元1)则包含最“新”的指令。系统将把处理器指令,诸如取数、存数、加和类似指令从指令高速缓冲区中取到每个指令缓冲区(0,1)中。第1条指令(最“老”的)存于缓冲区0中,下一条(第2条)指令存于缓冲区1中。在译码阶段,系统判断这些指令是否是相关的、非相关的、或是“不可利用的”,如果是相关的,那么必须依次执行;如果是非相关的或是“不可利用的”,那么可以并行执行。如果第2条指令依赖于第1条,那么(随着所执行的第1条指令)第2条指令将从缓冲区1中横向移位到第1个指令缓冲区0中。这种移位完全取决于第2条指令对第一条指令的依赖性。被移位的指令变成了第1条指令,同时,第2个指令缓冲区中又接收了一条新的“第2条”指令。应该注意到,所有的指令都将按顺序执行。如果遇到许多顺序相关的指令,那么,它们将只在执行单元0中顺序地执行。换句话说,系统将发现前两条指令是相关的,于是将它们放在两个指令缓冲区中;由于第2个缓冲区中的指令依赖于第1个中的指令,当第1条指令执行完毕后,第2条指令将被移位到第1个指令缓冲区中,于是,下一条指令将被放到第2个缓冲区1中,如果该指令仍是一条相关指令,它又将在前条指令执行完毕后,被移位到第1个缓冲区中…,如此进行下去。如果下一条指令是非相关的,那么,两条指令将在第1个和第2个执行单元中并行执行。采用这种方式,处理器指令能够有效地执行。执行的顺序取决于指令间的相关性,而不是执行单元的能力。因此,依据上面的概要说明,对于在这个
具有一定技术的人来说,从下面与附图有关的描述、所附的权利要求中可以明显看到本专利技术的目标、特点和优点。附图说明图1所示的结构框图显示了采用本专利技术的多执行单元处理器中的各组成部分;图2是关于本专利技术的一个更详细的图示,它示意了与每个执行单元相关联的指令缓冲区以及指令流的路径;图3a和3b所示的流程图显示了本专利技术的一个较佳实施例,其中,依照各种判别条件,第1条和第2条指令将作为相关的指令;图4所示的时序图显示了本专利技术执行相关和非相关指令所需要的机器周期数的一个示例。参看图1,该图在一个较高的层次上显示了在本专利技术的多执行处理器中的各组成部分。1号部件表示一个从指令总线A、B、C、D接收指令的指令缓冲区,指令缓冲区是一个存贮设备,例如人们熟悉的硬件存贮器。寄存器堆输入锁存器10从一个与系统存贮器(未画出)相连的双端口高速数据缓冲区(未画出)中接收数据。应该注意到,虽然带有多于两个执行单元的处理系统也可以考虑,本专利技术的较佳实施例是一个具有两个执行单元的处理器,译码控制单元3和5(分别对应于执行单元0和1)用来解释从指令缓冲区1中接收到的指令。译码控制单元3和5能够识别诸如取数、存数、加或类似的指令。译码单元3和5分别拥有一个相应的寄存器堆7和9,寄存器堆7、9从输入锁存器10中接收数据,该数据或者直接来自高速数据缓冲区总线36,或来自回写数据线35。译码单元3、5根据从缓冲区1中接收到的指令向寄存器7、9提供读/写控制信号。这些控制信号决定那些数据应该从输入锁存器10写入寄存器堆7、9,以及哪些数据应从寄存器堆7、9中读至执行单元输入锁存器11中。从图1中可以看出,寄存器堆7允许从输入寄存器中写入4个字的数据,由执行单元锁存器11从中读出3个字的数据。寄存器堆9则允许从输入寄存器堆10中写入4个字的数据,由执行单元锁存器11从中读出4个字的本文档来自技高网
...

【技术保护点】
一个包含有第1和第2执行单元的处理系统,其特征在于包含:与所述第1和第2执行单元相关联的第1和第2指令缓冲区,用以给执行单元提供指令;用以解释在前述的第1和第2指令缓冲区中的所述指令是否为数据相关的装置;以及用以向所述的第1执行 单元提供所述的数据相关指令,使得其它的指令可以并发地提供给所述的第2执行单元的装置。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:DS雷LE撒切尔小HS沃伦
申请(专利权)人:国际商业机器公司
类型:发明
国别省市:US[美国]

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

1