用于在超标量处理机系统中索引中间存储器缓冲的指定的方法和系统的制作方法

文档序号:6407654阅读:199来源:国知局
专利名称:用于在超标量处理机系统中索引中间存储器缓冲的指定的方法和系统的制作方法
技术领域
本发明总地来说涉及改进的数据处理系统,特别是用于在超标量处理机系统中提高指令调度效率的方法和系统。更具体地说,本发明涉及用于在超标量处理机系统中索引中间存储器缓冲区的指定的方法和系统。
现代先有技术处理系统的设计者一直在试图提高这类系统的各种性能。用于提高数据处理效率的一种技术方案是实现短的周期时间和低的周期/指令率(CPI)。将这些技术应用于提高效率的数据处理系统的一个良好实例是国际商业机器公司RISC系统/600(RS/6000)计算机。RS/6000系统是设计用于在数字密集和工程和科学应用中以及在多用户的商业场合能够良好地运行。RS/6000处理机使用了一种超标量执行过程,这就意味着同时发出和执行多条指令。
多条指令的同时发出和执行需要能够用高的指令带宽同时执行的独立功能部件。通过采用分离转移处理部件、定点处理部件和浮点处理部件,这些部件实质上是流水线式的,RS/6000系统实现了上述的要求。鉴于这种系统中处理机的流水线式的性质,必须注意确保在调度后继指令之前,就要从对执行后续指令所必要的特定指令中得到一个结果。确保这种所谓“数据相关性危险”不会发生的一种技术方案是直到所有先前指令都已经被调度的时间为止,对特定指令调度进行限制。虽然这种技术能够确保不会发生数据相关性危险,但是采用这种技术导致的性能损失也是显著的。
因此,现代超标量数据处理系统通常采用所谓“数据相关性互锁电路”。这种电路包括与指令调度电路一齐操作的逻辑电路,以便确保直到从对正确执行某条指令所必要的先前指令的已经得到结果的时间之前,不调度该指令。实现数据相关性互锁电路所需的逻辑电路的数量与每条指令中源操作数的数量成正比。源操作数是指令中的一个字段,它被用来在寄存器堆中存取操作数,以便在该指令的执行中使用。
虽然数据相关性互锁电路能使数据相关性危险得以避免,并且不会导致上述显著的性能损失,但是对于包含较大量源操作数和目的操作数的指令,设计和实现数据相关性互锁电路变得非常复杂。相关性互锁禁止相关指令的调度,这些相关指令阻止其后的指令输入调度器,进行调度和执行,而其后的指令可能是无关的和可执行的。
通过采用称为“寄存器重新命名”(registerrenaming)的方法,也已经论述了在单一的处理器周期中同时执行多条指令发生的数据相关性危险问题。寄存器重新命名是一种技术方案,用于在来自指令的最终结果被置放在寄存器堆中之前,暂时将特定指令的结果置放到寄存器中,以便可能由在后的指令使用。寄存器重新命名一般通过提供具有附加存储单元的寄存器堆阵列和指针装置来实现,该指针装置用于标识已经被指定给逻辑寄存器的特定物理寄存器。选择的现有技术方法也采用多个寄存器堆阵列,以便对数据提供许多“读出”端口,或者在例外的情况下提供备份,用于保存先前的结果。虽然这种技术为在其他情况下可能必须串行执行的指令提供了同时调度和执行多条指令的能力,但是采用这种技术随着将指令调度到执行部件仍然存在问题。因为调度部件或执行部件一般必须通过查寻表或指针系统完成复杂的读操作,以便确定什么时候暂存寄存器包含执行某条指令所需的数据,所以该指令为了执行而使用特定数据或操作数的要求,一般已经使得在一个单一处理器周期中不可能将指令和相关的数据调度到执行部件。
此外,某些系统可以在单一处理器周期中多于一次地重新命名寄存器。因此在那些为了寄存器重新命名而使用查找表的系统中,必须有大容量的查寻表,以便能够确定为特定寄存器最新指定的重新命名缓冲器。
因此将能明显地看出,通过允许数据或操作数与指令一起迅速地被调度,存在着对一种方法和系统的需要,它允许在超标量处理机系统中在单一处理机周期内进行指令调度。
本发明的一个目的是提供一种改进的数据处理系统。
本发明的另一个目的是提供一种用于在超标量处理机系统中提高指令调度效率的改进的方法和系统。
本发明还有另一个目的是提供一种用于在超标量处理机系统中索引中间存储器缓冲区的指定的方法和系统。
下面将说明上述目的是如何实现的。为了在超标量处理机系统中提高指令调度效率,提供了一种方法和系统,该超标量处理机系统具有多个中间存储器缓冲区、多个通用寄存器和存储器缓冲区索引。多条标量指令可以同时从调度缓冲区调度到多个执行部件。多条标量指令中每要指令一般包含至少一个源操作数和一个目的操作数。对多条标量指令中选定的一条指令中的目的操作数指定多个中间存储器缓冲区中一个特定的缓冲区。在应用程序顺序中,当已经被调度的指令由另一指令放置在调度器时,将多个中间存储器缓冲区中特定的缓冲区与多个通用寄存器中指定的寄存器之间的关系存储在存储器缓冲区索引中。当执行选定的指令时,从多条标量指令中所选定指令的执行结果被存储在特定的一个中间存储器缓冲区中。存储器缓冲区索引用于确定哪些存储器缓冲区用作那些指令的源操作数,那些指令在已经为指定的通用寄存器指定了存储器缓冲区与执行结果从该存储器缓冲区转移到该通用寄存器的时间之间被调度的指令。
通过下面的详细说明,将能够明显地看出本发明的上述以及附加的目的、特征和优点。
被认为是本发明特征的那些新的技术特征记载在与本说明书一起提交的权利要求书中。通过结合附图阅读下面对图示实施例的详细说明,将能够更好地理解本发明,以及其优选的使用方式、其他目的和优点。


图1是可以用于实现本发明的方法和系统的超标量处理机系统的高级方框图。
图2是图1所示超标量处理机系统的指令调度电路的更详细框图,该系统可以用于实现本发明的方法和系统。
图3是高级框图,图中示出了根据本发明的方法和系统在图1所示超标量处理机系统中采用的中间存储器缓冲区。
图4表示了图3所示超标量处理机系统中的存储器缓冲区索引,该系统可以用于实现本发明的方法和系统。
图5表示了图3所示超标量处理机系统中的另一种存储器缓冲区索引,该系统可以用于实现本发明的方法和系统。
下面将对附图,特别是参见附图1进行说明,该图中示出了可以用于实现本发明的方法和系统的超标量数字处理系统10的高级框图。如图所示,数据处理系统10包括用于存储数据、指令等的存储器18。以对本领域技术人员所共知的方式,优选地采用超高速缓冲存储器/存储器接口20对存储在存储器18中的数据或指令进行存取。超高速缓冲存储器系统的大小和使用是数据处理领域中的公知普通专业知识,因此就不在本申请进行论述了。然而本领域的技术人员应当理解,通过采用现有相关的超高速缓冲存储器技术,用超高速缓冲存储器/存储器接口20中暂存的数据,就可以实现相当大百分比的存储器存取操作。
来自超高速缓冲存储器/存储器接口20的指令一般被装入指令调度器22中,该指令调度器较好地包括多个队列位置。在超标量数据处理系统的典型实施例中,指令调度器中的每个位置可以包括2至8条指令,因此在一个给定的周期中,根据有多少有效的指令由超高速缓冲存储器/存储器接口20传送,以及在指令调度器22中有多少可用的空间,多达8条指令可以被装入指令调度器22。
如在这种超标量数据处理系统中通常的情况,指令调度器22将指令调度到执行部件24。如在图1中所示,数据处理系统10可以包括一个或多个浮点部件、定点处理器部件、装入/存储部件和转移处理机部件,这些只是根据设计而选择的问题。因此指令调度器22可在单一周期中调度多条指令,并将一条指令调度到每个执行部件。执行部件可以包括多个保留站,这些保留站允许在单一周期中向单个执行部件调度一条以上的指令,这也只是根据设计而选择的问题。这样超标量处理机的多个执行部件中每个执行部件都可以在单一周期中接收多条指令。此外,在多处理机系统中还可以将指令调度到与多个处理机相关的多个执行部件24。
下面对图2进行说明,该图示出了图1所示超标量数据处理系统的指令调度电路的更详细框图,该系统可以用于实现本发明的方法和系统。如图所示,来自超高速缓冲存储器/存储器接口20的指令一般按应用指定的顺序次序成组地装入指令调度器22。这样作为设计上的选择,一组为2条、4条或8条指令从超高速缓冲存储器/存储器接口20装入指令调度器22,用于在机会的基础上调度到执行部件24的一个或多个执行部件。如图2所示的实施例中,这些执行部件可以包括浮点执行部件26、多个装入/存储部件28和30、多个定点执行部件32和34、以及转移执行部件36。当然如上所述,在数据处理系统10中可以包括较多数量或较少数量的不同类型执行部件,这只是设计选择的问题。
例如图中所示那种超标量数据处理系统中通常的情况,还提供有多个通用寄存器。在图2所示的实施例中,有两组通用寄存器。浮点通用寄存器44和定点通用寄存器46。因此图2所示的执行部件中多条指令的执行结果一般被存储在选定的通用目的寄存器中,以备进一步使用。根据本发明的一个重要特征,还提供了多个中间存储器缓冲区,即浮点中间存储器缓冲区40和定点中间存储器缓冲区42。如图中更详细地描述的那样,通过独立总线,每个执行部件都被连接到每个中间存储器缓冲区。因此执行部件所需的数据,或者在执行部件中指令执行产生的数据可以被置入独立总线上,并且被存储在指定的中间存储器缓冲区中,以便由其他执行部件使用,或者以便进一步传送给一个通用寄存器。
采用这种方式,无需保留复杂的查寻表及相关的寄存器重新命名方案,而且中间存储器缓冲区可以被有效地指定立即被用作目的操作数的存储单元,允许在单一处理机周期中调度该指令,因为无需在重新命名的寄存器堆中确定数据单元。此外还可以允许以无顺序的方式执行指令,通过将那些指令的输出暂时存储在中间存储器缓冲区中,以便将来在通用寄存器中以应用指定的顺序次序进行汇编。
如图所示,定点执行部件每个都通过独立总线与定点中间存储器缓冲区42相连,而浮点执行部件通过独立总线与每个浮点中间存储器缓冲区40相连。本领域的技术人员应当能理解,装入/存储部件28和30必须与浮点中间存储器缓冲区40和定点中间存储器缓冲区42相连,因为这些部件将要装入和存储定点数据和浮点数据。
根据本发明的另一个重要特征,还具有完成缓冲器48。完成缓冲器48用于跟踪在执行部件24中正在被执行的多条标量指令的完成。如上所述,这些指令执行的结果都暂时存储在相关的中间存储器缓冲区中,并且根据一条指令或一组指令已经被成功地完成的指示且以应用规定的顺序次序,完成缓冲器48可以用于将那些完成的指令数据的结果初始地传送到相关的通用寄存器。此外在例外情况发生的事件中,完成缓冲器48可以用于启动存储在异常情况之前完成的任何指令执行的结果,并且控制指令调度器22在例外情况发生点重新开始处理,允许以有产的方式通过有效的输出置换有误的或无效的数据,或者通过对特定类型的例外所指定的应用专用程序来启动新的指令序列。
下面对图3进行说明,图中示出了根据本发明的方法和系统,在图1所示超标量处理机系统中使用中间存储器缓冲区的高级框图。提供了由指令调度器22存取的存储器缓冲区索引58。这里将更详细地进行说明,存储器缓冲区索引58用于存储和维护在多个中间存储器缓冲区60中的每个中间存储器缓冲区与指定的通用寄存器62之间关系的指示,用于在执行随后的指令期间使用。
多个中间存储器缓冲区60优选地连接到多条独立总线64。在优选的实施例中,独立总线64的数量等于中间存储器缓冲区60的数量,每个中间存储器缓冲区连接到一条总线。每个中间存储器缓冲区60都可以从相应的独立总线64读出,也可以写入到相应的独立总线64。本领域的技术人员应当能认识到,使用的总线数据可以变化,这只是个设计选择的问题。
多个执行部件24a、24b和24c连接到多条独立总线64中的每条总线上。在优选的实施例中,执行部件24a、24b和24c可以包括浮点执行部件、从个装入/存储部件、多个定点执行部件和转移执行部件。然而本领域的技术人员应当能理解执行部件的数量和类型可以变化,这也只是设计选择的问题。
多个执行部件24a、24b和24c中每个执行部件也可以从每条独立总线64读出,以及写入到每条独立总线64。因此,多个执行部件24a、24b和24c中每个执行部件都通过多条独立总线64连接到多个中间存储器缓冲区60中每个中间存储器缓冲区上。这样当在执行部件中通过执行指令产生数据时,该执行部件可以将那个数据置放在与已经被规定作为那个数据的目的的指定中间存储器缓冲区相对应的总线上,在那里可以暂时存储该数据。与此同时通过将“有效”位设定成适当的状态,执行部件表明总线上的该数据是有效的。采用这种方式,当数据在总线上时,以及数据被存储到指定的中间存储器缓冲区之前或者同时,任何其他需要该数据的执行部件都可以从总线上检索该数据。因此设有独立总线的一个优点是消除了数据存储器缓冲器中、然后才能从缓冲器访问该数据的需要。直接从总线检索数据的能力显著地提高了处理机系统的操作速度。
仍旧参见图3,从图中可以看出多条独立总线64中每条总线都连接到通用寄存器62。当一条指令要被调度到执行部件时,指定的中间存储器缓冲区与选定的通用寄存器之间的关系优选地存储在存储器缓冲区索引58中。当另一个执行部件需要执行的结果时,可以利用存储器缓冲区索引58中的信息完成那些结果的传送。这里将更详细地说明,存储在存储器缓冲区索引58中的信息可以是用通寄存器标识存取的指定的中间存储器缓冲区的标识符,或者是用指定的中间存储器缓冲区标识存取的通用寄存器的标识符。
采用这种方式,因为中间存储器缓冲区可以被立即指定为对要被调度的指令中每个目的操作数的存储单元,无需对通用寄存器重新命名,所以就无需保留与寄存器重新命名方案有关的复杂的查寻表。此外,因为每条指令执行的结果被暂时地存储在中间存储器缓冲区60中,并且通过利用存储器缓冲区索引58中的信息和完成缓冲器48的内容,且这些执行结果可以接着由随后的指令使用,所以存储器缓冲区索引58允许以非顺序的方式执行指令(参见图2)。
图4用图表示了图3所示超标量处理机系统中的存储器缓冲区索引,该系统可以被用于实现本发明的方法和系统。存储器缓冲区索引58包括若干个标号为0-r的项目。r等于超标量处理机系统中通用寄存器的数量。如上所述,当先前已被调度到执行部件的指令在调度器中被后继应用程序指定的指令置换时,在被调度的指令中目的操作数与指定的中间存储器缓冲区之间的关系被存储在存储器缓冲区索引58中。在该实施例中,对指定的中间存储器缓冲区的标识符被存储在与选定通用寄存器相对应的项目中。
例如在与通用寄存器0相对应的项目位置0中,已经存储了中间存储器缓冲区3的标识符。另外在与通用寄存器r相对应的项目位置r中,已经存储了中间存储器缓冲区2的标识符。这样当执行的结果要从中间存储器缓冲区3传送到另一个执行部件时,就通过利用存储器缓冲区索引58中的项目0完成传送。
图5图示了图3所示超标量处理机系统中的另一种存储器缓冲区索引,该系统可以用于实现本发明的方法和系统。存储器缓冲区索引58包括若干个标号为0-n的项目。n等于超标量处理机系统中中间存储器缓冲区的数量。当指令被调度到执行部件时,选定通用寄存器的标识符被存储在与执行结果要被存储的指定中间存储器缓冲区相对应的项目中。
例如在与中间存储器缓冲区0相对应的项目位置0中,已经存储了通用寄存器25的标识符。另外在与中间存储器缓冲区2相对应的项目位置2中,已经存储了通用寄存器2的标识符。这样当执行的结果要从中间存储器缓冲区0传送到另一个执行部件时,就通过利用存储器缓冲区索引58中的项目0协调传送。
根据上述的说明,本领域的技术人员应当能理解,申请人已经提供了一种用于在超标量处理机系统中索引中间存储器缓冲区的指定的方法和系统。因为直到执行的结果以应用指定的次序存储在通用寄存器中之前,执行的结果被暂时地存储在中间存储器缓冲区中,所以消除了对大量的相关查寻表的需要。
虽然参照优选的实施例已经详细地指出并说明了本发明,但是本领域的技术人员应当能理解,无需脱离本发明的构思和保护范围,就可以进行形式上和细节上的各种改变。
权利要求
1.用于在超标量处理机系统中提高指令调度效率的方法,该方法能够同时将多条标量指令从调度缓冲器调度到多个执行部件中,所述多条标量指令中每条标量指令都包含至少一个源操作数和一个目的操作数,其中所述多条标量指令的执行结果被存储在多个通用寄存器中,所述方法的特征在于包括以下步骤对所述多条标量指令中选定的一条标量指令中的目的操作数,指定多个中间存储器缓冲区中特定的一个中间存储器缓冲区;将所述多个中间存储器缓冲区中特定的一个中间存储器缓冲区与所述多个通用寄存器中指定的一个通用寄存器之间的关系存储在存储器缓冲区索引中;将所述多条标量指令中所述选定的一条标量指令的执行结果存储在所述多个中间存储器缓冲区中所述特定的一个中间存储器缓冲区中;以及将来自所述多个中间存储器缓冲区中特定的一个中间存储器缓冲区的所述执行结果传送到所述多个执行部件中另一个执行部件,以便利用所述存储器缓冲区索引用于执行所述多条标量指令中的另一条标量指令。
2.根据权利要求1所述的用于在超标量处理机系统中提高指令调度效率的方法,其特征在于将所述多个中间存储器缓冲区中特定的一个中间存储器缓冲区与多个通用处理寄存器中指定的一个通用处理寄存器之间的关系存储在存储器缓冲区索引中的所述步骤包括将用于所述多个中间存储器缓冲区中所述特定的一个中间存储器缓冲区的标识符存储在所述存储器缓冲区索引中,以及利用用于多个通用处理寄存器中所述指定的一个通用处理寄存器的标识符,从所述存储器缓冲区索引中存取用于所述多个中间存储器缓冲区中所述特定的一个中间存储器缓冲区的所述标识符。
3.根据权利要求1所述的用于在超标量处理机系统中提高指令调度效率的方法,其特征在于将所述多个中间存储器缓冲区中特定的一个中间存储器缓冲区与多个通用处理寄存器中指定的一个通用处理寄存器之间的关系存储在存储器缓冲区索引中的所述步骤包括将用于所述多个通用处理寄存器中所述指定的一个通用处理寄存器的标识符存储在所述存储器缓冲区索引中,以及利用用于所述多个中间存储器缓冲区中所述特定的一个中间存储器缓冲区的标识符,从所述存储器缓冲区索引中存取用于所述多个通用处理寄存器中所述指定的一个通用处理寄存器的所述标识符。
4.用于在超标量处理机系统中提高指令调度效率的系统,该系统能够同时将多条标量指令从调度缓冲器调度到多个执行部件,所述多条标量指令中每条标量指令都包含至少一个源操作数和一个目的操作数,其中所述多条标量指令的执行结果被存储在多个通用寄存器中,所述系统的特征包括指定装置,用于对所述多条标量指令中选定的一条标量指令中的目的操作数,指定多个中间存储器缓冲区中特定的一个中间存储器缓冲区;存储装置,用于将所述多个中间存储器缓冲区中特定的一个中间存储器缓冲区与所述多个通用寄存器中指定的一个通用寄存器之间的关系存储在存储器缓冲区索引中;存储装置,用于将所述多条标量指令中所述选定的一条标量指令的执行结果存储在所述多个中间存储器缓冲区中所述特定的一个中间存储器缓冲区中;以及传送装置,用于将来自所述多个中间存储器缓冲区中特定的一个中间存储器缓冲区的所述执行结果传送到所述多个执行部件中另一个执行部件,以便利用所述存储器缓冲区索引来执行所述多条标量指令中的另一条标量指令。
5.根据权利要求4所述的用于在超标量处理机系统中提高指令调度效率的系统,其特征在于将所述多个中间存储器缓冲区中特定的一个中间存储器缓冲区与多个通用处理寄存器中指定的一个通用处理寄存器之间的关系存储在存储器缓冲区索引中的所述装置包括存储装置,用于将用于所述多个中间存储器缓冲区中所述特定的一个中间存储器缓冲区的标识符存储在所述存储缓冲器索引中;以及存取装置,利用用于多个通用处理寄存器中所述指定的一个通用处理寄存器的标识符,用于从所述存储器缓冲区索引中存取用于所述多个中间存储器缓冲区中所述特定的一个中间存储器缓冲区的所述标识符。
6.根据权利要求4所述的用于在超标量处理机系统中提高指令调度效率的系统,其特征在于将所述多个中间存储器缓冲区中特定的一个中间存储器缓冲区与多个通用处理寄存器中指定的一个通用处理寄存器之间的关系存储在存储器缓冲区索引中的所述装置包括存储装置,用于将用于所述多个通用处理寄存器中所述指定的一个通用处理寄存器的标识符存储在所述存储器缓冲区索引中;以及存取装置,利用用于所述多个中间存储缓冲器中所述特定的一个中间存储器缓冲区的标识符,用于从所述存储器缓冲区索引中存取用于所述多个通用处理寄存器中所述指定的一个通用处理寄存器的所述标识符。
全文摘要
在超标量处理机系统中提高指令调度效率的方法和系统,该系统具有多个中间存储器缓冲区、多个通用寄存器和一个存储器缓冲区索引。多条标量指令可同时从调度缓冲器调度到多个执行部件中。其中每条标量指令一般包含至少一个源操作数和一个目的操作数。对多条标量指令中选定的一条标量指令中的目的操作数指定特定的一个中间存储器缓冲区,并将其与指定的一个通用寄存器之间的关系存储在存储缓冲器索引中。
文档编号G06F9/38GK1092189SQ94100120
公开日1994年9月14日 申请日期1994年1月8日 优先权日1993年1月8日
发明者高新程, 奥布里·D·奥格登, 唐纳德·E·沃尔德克尔 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1