CN1042863C - 用于在超标量处理机系统中索引中间存储器缓冲区的指定的方法和系统 - Google Patents
用于在超标量处理机系统中索引中间存储器缓冲区的指定的方法和系统 Download PDFInfo
- Publication number
- CN1042863C CN1042863C CN94100120A CN94100120A CN1042863C CN 1042863 C CN1042863 C CN 1042863C CN 94100120 A CN94100120 A CN 94100120A CN 94100120 A CN94100120 A CN 94100120A CN 1042863 C CN1042863 C CN 1042863C
- Authority
- CN
- China
- Prior art keywords
- intermediate store
- store buffer
- buffer zone
- register
- instruction
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 239000000872 buffer Substances 0.000 title claims abstract description 111
- 238000000034 method Methods 0.000 title claims abstract description 30
- 238000012432 intermediate storage Methods 0.000 title claims abstract 5
- 239000012536 storage buffer Substances 0.000 claims abstract description 45
- 230000005055 memory storage Effects 0.000 claims description 6
- 230000000875 corresponding effect Effects 0.000 description 9
- 238000013461 design Methods 0.000 description 9
- 238000012545 processing Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 3
- 230000001419 dependent effect Effects 0.000 description 2
- 238000012856 packing Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 241001269238 Data Species 0.000 description 1
- 230000002159 abnormal effect Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000009897 systematic effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3838—Dependency mechanisms, e.g. register scoreboarding
- G06F9/384—Register renaming
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Executing Machine-Instructions (AREA)
Abstract
在超标量处理机系统中提高指令调度效率的方法和系统,该系统具有多个中间存储器缓冲区、多个通用寄存器和一个存储器缓冲区索引。多条标量指令可同时从调度缓冲器调度到多个执行部件中。其中每条标量指令一般包含至少一个源操作数和一个目的操作数。对多条标量指令中选定的一条标量指令中的目的操作数指定特定的一个中间存储器缓冲区,并将其与指定的一个通用寄存器之间的关系存储在存储缓冲器索引中。
Description
本发明总地来说涉及改进的数据处理系统,特别是用于在超标量处理机系统中提高指令调度效率的方法和系统。更具体地说,本发明涉及用于在超标量处理机系统中索引中间存储器缓冲区的指定的方法和系统。
现代先有技术处理系统的设计者一直在试图提高这类系统的各种性能。用于提高数据处理效率的一种技术方案是实现短的周期时间和低的周期/指令率(CPI)。将这些技术应用于提高效率的数据处理系统的一个良好实例是国际商业机器公司RISC系统/600(RS/6000)计算机。RS/6000系统是设计用于在数字密集和工程和科学应用中以及在多用户的商业场合能够良好地运行。RS/6000处理机使用了一种超标量执行过程,这就意味着同时发出和执行多条指令。
多条指令的同时发出和执行需要能够用高的指令带宽同时执行的独立功能部件。通过采用分离转移处理部件、定点处理部件和浮点处理部件,这些部件实质上是流水线式的,RS/6000系统实现了上述的要求。鉴于这种系统中处理机的流水线式的性质,必须注意确保:在调度后继指令之前,就要从对执行后继指令所必要的特定指令中得到一个结果。确保这种所谓“数据相关性危险”不会发生的一种技术方案是直到所有先前指令都已经被调度的时间为止,对特定指令调度进行限制。虽然这种技术能够确保不会发生数据相关性危险,但是采用这种技术导致的性能损失也是显著的。
因此,现代超标量数据处理系统通常采用所谓“数据相关性互锁电路”。这种电路包括与指令调度电路一齐操作的逻辑电路,以便确保:直到从对正确执行某条指令所必要的先前指令的已经得到结果的时间之前,不调度该指令。实现数据相关性互锁电路所需的逻辑电路的数量与每条指令中源操作数的数量成正比。源操作数是指令中的一个字段,它被用来在寄存器堆中存取操作数,以便在该指令的执行中使用。
虽然数据相关性互锁电路能使数据相关性危险得以避免,并且不会导致上述显著的性能损失,但是对于包含较大量源操作数和目的操作数的指令,设计和实现数据相关性互锁电路变得非常复杂。相关性互锁禁止相关指令的调度,这些相关指令阻止其后的指令输入调度器,进行调度和执行,而其后的指令可能是无关的和可执行的。
通过采用称为“寄存器重新命名”(register renaming)的方法,也已经论述了在单一的处理器周期中同时执行多条指令发生的数据相关性危险问题。寄存器重新命名是一种技术方案,用于在来自指令的最终结果被置放在寄存器堆中之前,暂时将特定指令的结果置放到寄存器中,以便可能由在后的指令使用。寄存器重新命名一般通过提供具有附加存储单元的寄存器堆阵列和指针装置来实现,该指针装置用于标识已经被指定给逻辑寄存器的特定物理寄存器。选择的现有技术方法也采用多个寄存器堆阵列,以便对数据提供许多“读出”端口,或者在例外的情况下提供备份,用于保存先前的结果。虽然这种技术为在其他情况下可能必须串行执行的指令提供了同时调度和执行多条指令的能力,但是采用这种技术随着将指令调度到执行部件仍然存在问题。因为调度部件或执行部件一般必须通过查寻表或指针系统完成复杂的读操作,以便确定什么时候暂存寄存器包含执行某条指令所需的数据,所以该指令为了执行而使用特定数据或操作数的要求,一般已经使得在一个单一处理器周期中不可能将指令和相关的数据调度到执行部件。
此外,某些系统可以在单一处理器周期中多于一次地重新命名寄存器。因此在那些为了寄存器重新命名而使用查寻表的系统中,必须有大容量的查寻表,以便能够确定为特定寄存器最新指定的重新命名缓冲器。
因此将能明显地看出,通过允许数据或操作数与指令一起迅速地被调度,存在着对一种方法和系统的需要,它允许在超标量处理机系统中在单一处理机周期内进行指令调度。
本发明的一个目的是提供一种改进的数据处理系统。
本发明的另一个目的是提供一种用于在超标量处理机系统中提高指令调度效率的改进的方法和系统。
本发明还有另一个目的是提供一种用于在超标量处理机系统中索引中间存储器缓冲区的指定的方法和系统。
下面将说明上述目的是如何实现的。为了在超标量处理机系统中提高指令调度效率,提供了一种方法和系统,该超标量处理机系统具有多个中间存储器缓冲区、多个通用寄存器和存储器缓冲区索引。多条标量指令可以同时从调度缓冲区调度到多个执行部件。多条标量指令中每要指令一般包含至少一个源操作数和一个目的操作数。对多条标量指令中选定的一条指令中的目的操作数指定多个中间存储器缓冲区中一个特定的缓冲区。在应用程序顺序中,当已经被调度的指令由另一指令放置在调度器时,将多个中间存储器缓冲区中特定的缓冲区与多个通用寄存器中指定的寄存器之间的关系存储在存储器缓冲区索引中。当执行选定的指令时,从多条标量指令中所选定指令的执行结果被存储在特定的一个中间存储器缓冲区中。存储器缓冲区索引用于确定哪个存储器缓冲区将被用作这些指令的操作数,这些指令是在已经为某特定通用寄存器分配了一个存储器缓冲区的时间以及将执行结果从该存储器缓冲区移入该通用寄存器的时间之间所调度的指令。
具体地说,本发明的技术方案如下。
本发明提供一种用于在超标量处理机系统中提高指令调度效率的方法,该方法能够同时将多条标量指令从调度缓冲器调度到多个执行部件中,所述多条标量指令中每条标量指令都包含至少一个源操作数和一个目的操作数,其中所述多条标量指令的执行结果被存储在多个通用寄存器中,所述方法的特征在于包括以下步骤:
对所述多条标量指令中选定的一条标量指令中的目的操作数,指定多个中间存储器缓冲区中特定的一个中间存储器缓冲区;
将所述多个中间存储器缓冲区中特定的一个中间存储器缓冲区与所述多个通用寄存器中指定的一个通用寄存器之间的关系存储在存储器缓冲区索引中;
将所述多条标量指令中所述选定的一条标量指令的执行结果存储在所述多个中间存储器缓冲区中所述特定的一个中间存储器缓冲区中;以及
将来自所述多个中间存储器缓冲区中特定的一个中间存储器缓冲区的所述执行结果传送到所述多个执行部件中另一个执行部件,以便利用所述存储器缓冲区索引用于执行所述多条标量指令中的另一条标量指令。
本发明还提供一种用于在超标量处理机系统中提高指令调度效率的系统,该系统能够同时将多条标量指令从调度缓冲器调度到多个执行部件,所述多条标量指令中每条标量指令都包含至少一个源操作数和一个目的操作数,其中所述多条标量指令的执行结果被存储在多个通用寄存器中,所述系统的特征在于包括:
指定装置,用于对所述多条标量指令中选定的一条标量指令中的目的操作数,指定多个中间存储器缓冲区中特定的一个中间存储器缓冲区;
存储装置,用于将所述多个中间存储器缓冲区中特定的一个中间存储器缓冲区与所述多个通用寄存器中指定的一个通用寄存器之间的关系存储在存储器缓冲区索引中;
存储装置,用于将所述多条标量指令中所述选定的一条标量指令的执行结果存储在所述多个中间存储器缓冲区中所述特定的一个中间存储器缓冲区中;以及
传送装置,用于将来自所述多个中间存储器缓中区中特定的一个中间存储器缓冲区的所述执行结果传送到所述多个执行部件中另一个执行部件,以便利用所述存储器缓冲区索引来执行所述多条标量指令中的另一条标量指令。
通过下面的详细说明,将能够明显地看出本发明的上述以及附加的目的、特征和优点。
被认为是本发明特征的那些新的技术特征记载在与本说明书一起提交的权利要求书中。通过结合附图阅读下面对图示实施例的详细说明,将能够更好地理解本发明,以及其优选的使用方式、其他目的和优点。
图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协调传送。
根据上述的说明,本领域的技术人员应当能理解,申请人已经提供了一种用于在超标量处理机系统中索引中间存储器缓冲区的指定的方法和系统。因为直到执行的结果以应用指定的次序存储在通用寄存器中之前,执行的结果被暂时地存储在中间存储器缓冲区中,所以消除了对大量的相关查寻表的需要。
虽然参照优选的实施例已经详细地指出并说明了本发明,但是本领域的技术人员应当能理解,无需脱离本发明的构思和保护范围,就可以进行形式上和细节上的各种改变。
Claims (6)
1.用于在超标量处理机系统中提高指令调度效率的方法,该方法能够同时将多条标量指令从调度缓冲器调度到多个执行部件中,所述多条标量指令中每条标量指令都包含至少一个源操作数和一个目的操作数,其中所述多条标量指令的执行结果被存储在多个通用寄存器中,所述方法的特征在于包括以下步骤:
对所述多条标量指令中选定的一条标量指令中的目的操作数,指定多个中间存储器缓冲区中特定的一个中间存储器缓冲区;
将所述多个中间存储器缓冲区中特定的一个中间存储器缓冲区与所述多个通用寄存器中指定的一个通用寄存器之间的关系存储在存储器缓冲区索引中;
将所述多条标量指令中所述选定的一条标量指令的执行结果存储在所述多个中间存储器缓冲区中所述特定的一个中间存储器缓冲区中;以及
将来自所述多个中间存储器缓冲区中特定的一个中间存储器缓冲区的所述执行结果传送到所述多个执行部件中另一个执行部件,以便利用所述存储器缓冲区索引用于执行所述多条标量指令中的另一条标量指令。
2.根据权利要求1所述的用于在超标量处理机系统中提高指令调度效率的方法,其特征在于:将所述多个中间存储器缓冲区中特定的一个中间存储器缓冲区与多个通用处理寄存器中指定的一个通用处理寄存器之间的关系存储在存储器缓冲区索引中的所述步骤包括:将用于所述多个中间存储器缓冲区中所述特定的一个中间存储器缓冲区的标识符存储在所述存储器缓冲区索引中,以及利用用于多个通用处理寄存器中所述指定的一个通用处理寄存器的标识符,从所述存储器缓冲区索引中存取用于所述多个中间存储器缓冲区中所述特定的一个中间存储器缓冲区的所述标识符。
3.根据权利要求1所述的用于在超标量处理机系统中提高指令调度效率的方法,其特征在于:将所述多个中间存储器缓冲区中特定的一个中间存储器缓冲区与多个通用处理寄存器中指定的一个通用处理寄存器之间的关系存储在存储器缓冲区索引中的所述步骤包括:将用于所述多个通用处理寄存器中所述指定的一个通用处理寄存器的标识符存储在所述存储器缓冲区索引中,以及利用用于所述多个中间存储器缓冲区中所述特定的一个中间存储器缓冲区的标识符,从所述存储器缓冲区索引中存取用于所述多个通用处理寄存器中所述指定的一个通用处理寄存器的所述标识符。
4.用于在超标量处理机系统中提高指令调度效率的系统,该系统能够同时将多条标量指令从调度缓冲器调度到多个执行部件,所述多条标量指令中每条标量指令都包含至少一个源操作数和一个目的操作数,其中所述多条标量指令的执行结果被存储在多个通用寄存器中,所述系统的特征包括:
指定装置,用于对所述多条标量指令中选定的一条标量指令中的目的操作数,指定多个中间存储器缓冲区中特定的一个中间存储器缓冲区;
存储装置,用于将所述多个中间存储器缓冲区中特定的一个中间存储器缓冲区与所述多个通用寄存器中指定的一个通用寄存器之间的关系存储在存储器缓冲区索引中;
存储装置,用于将所述多条标量指令中所述选定的一条标量指令的执行结果存储在所述多个中间存储器缓冲区中所述特定的一个中间存储器缓冲区中;以及
传送装置,用于将来自所述多个中间存储器缓冲区中特定的一个中间存储器缓冲区的所述执行结果传送到所述多个执行部件中另一个执行部件,以便利用所述存储器缓冲区索引来执行所述多条标量指令中的另一条标量指令。
5.根据权利要求4所述的用于在超标量处理机系统中提高指令调度效率的系统,其特征在于:将所述多个中间存储器缓冲区中特定的一个中间存储器缓冲区与多个通用处理寄存器中指定的一个通用处理寄存器之间的关系存储在存储器缓冲区索引中的所述装置包括:存储装置,用于将用于所述多个中间存储器缓冲区中所述特定的一个中间存储器缓冲区的标识符存储在所述存储缓冲器索引中;以及存取装置,利用用于多个通用处理寄存器中所述指定的一个通用处理寄存器的标识符,用于从所述存储器缓冲区索引中存取用于所述多个中间存储器缓冲区中所述特定的一个中间存储器缓冲区的所述标识符。
6.根据权利要求4所述的用于在超标量处理机系统中提高指令调度效率的系统,其特征在于:将所述多个中间存储器缓冲区中特定的一个中间存储器缓冲区与多个通用处理寄存器中指定的一个通用处理寄存器之间的关系存储在存储器缓冲区索引中的所述装置包括:存储装置,用于将用于所述多个通用处理寄存器中所述指定的一个通用处理寄存器的标识符存储在所述存储器缓冲区索引中;以及存取装置,利用用于所述多个中间存储缓冲器中所述特定的一个中间存储器缓冲区的标识符,用于从所述存储器缓冲区索引中存取用于所述多个通用处理寄存器中所述指定的一个通用处理寄存器的所述标识符。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US187293A | 1993-01-08 | 1993-01-08 | |
US08/001,872 | 1993-01-08 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1092189A CN1092189A (zh) | 1994-09-14 |
CN1042863C true CN1042863C (zh) | 1999-04-07 |
Family
ID=21698213
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN94100120A Expired - Fee Related CN1042863C (zh) | 1993-01-08 | 1994-01-08 | 用于在超标量处理机系统中索引中间存储器缓冲区的指定的方法和系统 |
Country Status (9)
Country | Link |
---|---|
US (1) | US5491829A (zh) |
EP (1) | EP0605868B1 (zh) |
JP (1) | JP2777535B2 (zh) |
KR (1) | KR0122528B1 (zh) |
CN (1) | CN1042863C (zh) |
AT (1) | ATE173100T1 (zh) |
CA (1) | CA2112995A1 (zh) |
DE (1) | DE69321929T2 (zh) |
TW (1) | TW230807B (zh) |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW242673B (zh) * | 1993-08-18 | 1995-03-11 | Ibm | |
US6378062B1 (en) * | 1994-01-04 | 2002-04-23 | Intel Corporation | Method and apparatus for performing a store operation |
CN101211255B (zh) | 1994-12-02 | 2012-07-04 | 英特尔公司 | 对复合操作数进行压缩操作的处理器、设备和计算系统 |
FR2731094B1 (fr) * | 1995-02-23 | 1997-04-30 | Dufal Frederic | Procede et dispositif de commande simultanee des etats de controle des unites d'execution d'un processeur programmable |
JP2636789B2 (ja) * | 1995-03-31 | 1997-07-30 | 日本電気株式会社 | マイクロプロセッサ |
US5974240A (en) * | 1995-06-07 | 1999-10-26 | International Business Machines Corporation | Method and system for buffering condition code data in a data processing system having out-of-order and speculative instruction execution |
US5875294A (en) | 1995-06-30 | 1999-02-23 | International Business Machines Corporation | Method and system for halting processor execution in response to an enumerated occurrence of a selected combination of internal states |
US5949971A (en) * | 1995-10-02 | 1999-09-07 | International Business Machines Corporation | Method and system for performance monitoring through identification of frequency and length of time of execution of serialization instructions in a processing system |
US5764970A (en) * | 1995-11-20 | 1998-06-09 | International Business Machines Corporation | Method and apparatus for supporting speculative branch and link/branch on count instructions |
US6792523B1 (en) | 1995-12-19 | 2004-09-14 | Intel Corporation | Processor with instructions that operate on different data types stored in the same single logical register file |
US5940859A (en) | 1995-12-19 | 1999-08-17 | Intel Corporation | Emptying packed data state during execution of packed data instructions |
US5701508A (en) | 1995-12-19 | 1997-12-23 | Intel Corporation | Executing different instructions that cause different data type operations to be performed on single logical register file |
US5852726A (en) * | 1995-12-19 | 1998-12-22 | Intel Corporation | Method and apparatus for executing two types of instructions that specify registers of a shared logical register file in a stack and a non-stack referenced manner |
US5845149A (en) * | 1996-04-10 | 1998-12-01 | Allen Bradley Company, Llc | Industrial controller with I/O mapping table for linking software addresses to physical network addresses |
US6298435B1 (en) * | 1996-04-16 | 2001-10-02 | International Business Machines Corporation | Methods and apparatus for exploiting virtual buffers to increase instruction parallelism in a pipelined processor |
US5870616A (en) * | 1996-10-04 | 1999-02-09 | International Business Machines Corporation | System and method for reducing power consumption in an electronic circuit |
US5805907A (en) * | 1996-10-04 | 1998-09-08 | International Business Machines Corporation | System and method for reducing power consumption in an electronic circuit |
US5765017A (en) * | 1997-01-13 | 1998-06-09 | International Business Machines Corporation | Method and system in a data processing system for efficient management of an indication of a status of each of multiple registers |
US5974538A (en) * | 1997-02-21 | 1999-10-26 | Wilmot, Ii; Richard Byron | Method and apparatus for annotating operands in a computer system with source instruction identifiers |
US5875326A (en) * | 1997-04-25 | 1999-02-23 | International Business Machines Corporation | Data processing system and method for completing out-of-order instructions |
JP2001092657A (ja) * | 1999-09-22 | 2001-04-06 | Toshiba Corp | 中央演算装置、コンパイル方法、及びコンパイルプログラムを記録した記録媒体 |
US7039060B2 (en) * | 2001-03-07 | 2006-05-02 | Mips Tech Inc | System and method for extracting fields from packets having fields spread over more than one register |
US6826704B1 (en) * | 2001-03-08 | 2004-11-30 | Advanced Micro Devices, Inc. | Microprocessor employing a performance throttling mechanism for power management |
US7330988B2 (en) * | 2004-06-30 | 2008-02-12 | Sun Microsystems, Inc. | Method and apparatus for power throttling in a multi-thread processor |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0106670A2 (en) * | 1982-10-13 | 1984-04-25 | Honeywell Information Systems Inc. | CPU with multiple execution units |
EP0381471A2 (en) * | 1989-02-03 | 1990-08-08 | Digital Equipment Corporation | Method and apparatus for preprocessing multiple instructions in a pipeline processor |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS581246A (ja) * | 1981-06-26 | 1983-01-06 | Fujitsu Ltd | 命令処理順序制御方式 |
JPS58178464A (ja) * | 1982-04-14 | 1983-10-19 | Hitachi Ltd | 並列演算処理装置 |
WO1990010267A1 (en) * | 1989-02-24 | 1990-09-07 | Nexgen Microsystems | Distributed pipeline control for a computer |
JP2825906B2 (ja) * | 1990-02-01 | 1998-11-18 | 株式会社日立製作所 | 計算機システム |
US5237694A (en) * | 1991-05-30 | 1993-08-17 | Advanced Micro Devices, Inc. | Processing system and method including lock buffer for controlling exclusive critical problem accesses by each processor |
US5345569A (en) * | 1991-09-20 | 1994-09-06 | Advanced Micro Devices, Inc. | Apparatus and method for resolving dependencies among a plurality of instructions within a storage device |
US5416913A (en) * | 1992-07-27 | 1995-05-16 | Intel Corporation | Method and apparatus for dependency checking in a multi-pipelined microprocessor |
US5367650A (en) * | 1992-07-31 | 1994-11-22 | Intel Corporation | Method and apparauts for parallel exchange operation in a pipelined processor |
-
1993
- 1993-12-20 KR KR1019930028551A patent/KR0122528B1/ko not_active IP Right Cessation
- 1993-12-22 JP JP5325254A patent/JP2777535B2/ja not_active Expired - Lifetime
- 1993-12-27 DE DE69321929T patent/DE69321929T2/de not_active Expired - Fee Related
- 1993-12-27 EP EP93120933A patent/EP0605868B1/en not_active Expired - Lifetime
- 1993-12-27 AT AT93120933T patent/ATE173100T1/de not_active IP Right Cessation
- 1993-12-29 TW TW082111133A patent/TW230807B/zh active
-
1994
- 1994-01-06 CA CA002112995A patent/CA2112995A1/en not_active Abandoned
- 1994-01-08 CN CN94100120A patent/CN1042863C/zh not_active Expired - Fee Related
-
1995
- 1995-05-11 US US08/438,819 patent/US5491829A/en not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0106670A2 (en) * | 1982-10-13 | 1984-04-25 | Honeywell Information Systems Inc. | CPU with multiple execution units |
EP0381471A2 (en) * | 1989-02-03 | 1990-08-08 | Digital Equipment Corporation | Method and apparatus for preprocessing multiple instructions in a pipeline processor |
Also Published As
Publication number | Publication date |
---|---|
KR940018757A (ko) | 1994-08-18 |
KR0122528B1 (ko) | 1997-11-20 |
US5491829A (en) | 1996-02-13 |
CN1092189A (zh) | 1994-09-14 |
DE69321929T2 (de) | 1999-07-01 |
ATE173100T1 (de) | 1998-11-15 |
TW230807B (zh) | 1994-09-21 |
EP0605868B1 (en) | 1998-11-04 |
JP2777535B2 (ja) | 1998-07-16 |
JPH06242955A (ja) | 1994-09-02 |
DE69321929D1 (de) | 1998-12-10 |
EP0605868A1 (en) | 1994-07-13 |
CA2112995A1 (en) | 1994-07-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1042863C (zh) | 用于在超标量处理机系统中索引中间存储器缓冲区的指定的方法和系统 | |
CN1128401C (zh) | 超标量处理机系统中单周期调度多指令的方法和系统 | |
CN1294485C (zh) | 相关性链处理器 | |
CN1188778C (zh) | 处理指令的方法、处理器和数据处理系统 | |
CN100340950C (zh) | 采用耗电控制用功能节制机构的微处理器 | |
CN1053508C (zh) | 超标量计算机 | |
CN1294484C (zh) | 利用重新调度的重放队列中断处理器中的重放依赖关系循环 | |
CN1158596C (zh) | 使用相关矩阵的调度操作 | |
EP0605866B1 (en) | Method and system for enhanced instruction dispatch in a superscalar processor system utilizing independently accessed intermediate storage | |
EP0762270B1 (en) | Microprocessor with load/store operation to/from multiple registers | |
CN1161689C (zh) | 在超标量处理器中处理装入指令的方法和电路 | |
CN1117765A (zh) | 计算机系统内部处理指令的装置 | |
CN1144934A (zh) | 具有执行送数指令执行部件的数据处理器及其操作方法 | |
CN1188932A (zh) | 多线程处理器中指令和关联读取请求的后台完成 | |
CN1494677A (zh) | 数字信号处理装置 | |
CN1196997C (zh) | 不按序执行指令的装置和检测不按序指令的方法 | |
CN1041566C (zh) | 超标量处理器系统中分配和执行非顺序指令的方法和系统 | |
CN1124546C (zh) | 一种超标量处理器及在该超标量处理器中完成指令的方法 | |
CN1833222A (zh) | 采用ilp和tlp的可重构处理器阵列 | |
CN1021604C (zh) | 在向量数据处理运算中从缺页故障中恢复的设备和方法 | |
CN1302379C (zh) | 条件控制管理装置及方法 | |
CN1669004A (zh) | 不中断处理器操作即可判断处理器状态的方法与装置 | |
EP0605873A1 (en) | Method and system for tracking scalar instructions within a superscalar processor system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C06 | Publication | ||
PB01 | Publication | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C19 | Lapse of patent right due to non-payment of the annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |