CN1045024C - 在超标量处理机系统中提高指令调度效率的方法 - Google Patents

在超标量处理机系统中提高指令调度效率的方法 Download PDF

Info

Publication number
CN1045024C
CN1045024C CN94100132A CN94100132A CN1045024C CN 1045024 C CN1045024 C CN 1045024C CN 94100132 A CN94100132 A CN 94100132A CN 94100132 A CN94100132 A CN 94100132A CN 1045024 C CN1045024 C CN 1045024C
Authority
CN
China
Prior art keywords
instruction
intermediate store
buffer zone
execution unit
operand
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
Application number
CN94100132A
Other languages
English (en)
Other versions
CN1092882A (zh
Inventor
詹姆斯·A·卡勒
郭星辰
大卫·S·莱文坦
奥伯雷·D·奥格登
阿里·A·布尔萨巴尼
鲍尔·涂光国
多纳尔德·E·沃尔德克
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN1092882A publication Critical patent/CN1092882A/zh
Application granted granted Critical
Publication of CN1045024C publication Critical patent/CN1045024C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3838Dependency mechanisms, e.g. register scoreboarding
    • G06F9/384Register renaming

Abstract

一种在超标量处理机系统中实现单周期指令调度的方法和系统,其把多指令同时调度给一组执行部件进行执行并把所产生的结果置入规定的通用寄存器。设置一批中间存储器缓冲区,每次把一条指令调度给一个可用的执行部件,某一特定的中间存储器缓冲区被指定给所调度指令中的任一目的操作数,通过取消任何确定和选择特定通用寄存器或指定的替代通用寄存器的要求达到在单个周期内对该指令的调度。

Description

在超标量处理机系统中提高指令调度效率的方法
本发明一般涉及一种改进型数据处理系统,尤其涉及一种提高超标量处理机系统指令调度效率的方法和系统。在更具体地,本发明涉及一种超标量处理机系统单周期调度多指令的方法和系统。
现代数据处理系统的设计者试图不断增强系统的运行性能。提高数据处理效率的一种技术是达到短的周期时间和低的每指令周期数(CPI)比。把这些技术应用到增强型数据处理系统的一个突出例子是国际商用机器公司的RISC系统/6000(RS/6000)计算机。RS/6000系统的目的是不仅在数字密集的工程和科学应用而且在多用户商用环境中都良好运行。RS/6000处理机使用了一种超标量实现,它的意思是同时发出和执行多个指令。
同时发出和执行多指令需要一些独立的功能部件,这些部件能在高指令带宽下并发执行。RS/6000系统通过使用本质上是流水线的分离的分支部件、定点处理部件和浮点处理部件来达到这一点。由于这类系统中处理机的流水线特性,必须小心保证对执行后继指令所需要的某特定指令的结果要在调度该后继指令之前获得。保证所谓“数据相关事件”不会出现的技术阻碍在完成调度前面所有指令之前对某一特定指令进行调度。尽管这种技术保证数据相关事件不会出现,应用这种技术带来的性能损失是相当大的。
因此,现代超标量数据处理系统经常采用一种通常所说的“数据相关互锁电路”。这种电路具有与指令调度电路一致运行的逻辑来保证在为正确执行某指令而需从前面的指令得到的结果尚未获得之前该指令不会受到调度。实现数据相关互锁电路的逻辑总量和每条指令中源操作数的数据成正比。源操作数是指令中的一个字段,其用来访问寄存器文件中的一个操作数,以实现对指令的执行。
尽管数据相关互锁电路能在不造成上述明显性能损失的情况下避免出现数据相关事件。但是为包括大量源操作数和目的操作数的指令而设计和实现的数据相关互锁电路变得相当复杂。相关互锁防止了相关指令的调度,这些相关指令阻止那些本身可能是不相关的和可执行的后继指令进入调度分配器得到调度和执行。
在应用一种称为“寄存器更名”方法时也提到随着在每个处理机周期同时执行多指令而出现的数据相关事件。寄存器更名是这样一种技术,在一条指令的最后结果被放到一个寄存器文件之前,暂时把某一特定指令的结果放到一个寄存器中可供后面指令潜在使用。寄存器更名通常是这样实现的,即设置一个具有附加定位的寄存器文件数组和一个指针装置来识别已赋作为逻辑寄存器的特定物理寄存器。现有技术中还利用多寄存器文件数组来提供数据的多个“读”端口或在异常情况下保留以前的结果作为备用。
尽管该技术提供了同时调度和执行多指令的能力,要不然可能需要连续的执行操作,使用该技术把指令调度给执行部件时存在着一个问题。一条指令对利用特定的数据或特定的操作数进行执行的要求通常使在单处理机周期内把一条指令及相关数据调度到一个执行部件成为不可能,因为调度部件或执行部件必须对查找表或指针系统进行复杂的阅读来确定何时临时寄存器含有执行该指令所需要的数据。
显而易见,需要一种方法和系统,它通过实现对指令中的数据和操作数迅速的调度来达到在单处理机周期内对超标量处理机的指令调度。
本发明的目的是提供一种可在超标量处理机系统中提高指令调度效率的方法。
为实现上述目的,本发明提供一种可在超标量处理机系统中提高指令调度效率的方法,它能够在单个处理机周期内同时把多条标量指令调度给多个执行部件,多条标量指令每条包括至少一个源操作数和一个目的操作数,该方法包括以下步骤:在超标量处理机系统中设置多个中间存储器缓冲区;在单处理机周期内:确定多个执行部件中是否有一个适当的执行部件可用来执行从多条标量指令中选定的一条指令,把多个中间存储器缓冲区中的一个特定的缓冲区分配给多条标量指令中的一个选定指令里的目的操作数,指定至少一个源操作数,以及响应于执行部件的可用性、多个中间存储器缓冲之一到目的操作数的分配以及至少一个源操作数的指定,把多条标量指令中的一条选定的指令调度给多个执行部件中的一个适当的执行部件,从而对多条标量指令中的一条选定指令的执行结果可以写到多个中间存储器缓冲区中的一个特定缓冲区中。
通过下面详尽的文字说明将会更清楚上述提要和本发明的其他目的、特性和优点。
对本发明本身以及最佳应用方式,进一步目的和其优点的最好了解可通过参考直观性实施例的下述详细说明并连带参阅相应附图来达到。附图为
图1是可用来实现本发明方法和系统的超标量数据处理系统高层方块图;
图2是可用来实现本发明方法和系统的超标量数据处理系统(图1)指令调度电路系统的更详细方块图;
图3是一个高层方块图,描述根据本发明的方法和系统的超标量处理系统(图1)中中间存储器缓冲区的应用;
图4是根据本发明的方法和系统的一个调度控制进行程的图解表示;
图5是一个逻辑流程图,描述根据本发明的方法和系统的一个单周期指令调度进程;而
图6是一个逻辑流程图,描述根据本发明的方法和系统在选定的指令中确定源操作数的一个进程。
现看附图特别是图1,图1是实现本发明方法和系统的超标量数据处理系统10的高层方块图。如所示,数据处理系统10包括一个存储器18,其可存储数据、指令等等。利用超高速缓冲器/存储器接口20按熟练的技术人员熟知的方式存储在存储器18内的数据或指令得到最好地存取。超高速缓冲存储器系统容量估计和应用是数据处理技术中一门得到很好了解的子专科,本应用中不再论述。尽管如此,熟练的技术人员懂得采用现代相联超高速缓冲器技术,利用临时地存储在超高速缓冲器/存储器接口20中的数据,可以达到存储器存取高百分率。
从超高速缓冲器/存储器接口20出来的指令通常装入到最好有多个队列位置的指令分配器22中。在超标量数据处理系统典型实施例中指令分配器的每个位置可包括2到8个指令,因此,在一给定周期,最多可有8个指令被装入到指令分配器22中,取决于有多少个有效的指令通过了超高速缓冲器/存储器接口20和在指令分配器22中有多大可使用空间。
如在这种超标量数据处理系统所典型的那样,指令分配器22被用来把指令调度给执行部件24。如图1中所示,根据设计选择数据处理系统10可以包括一个或多个浮点部件、定点处理部件、送入/存储部件和一个分支处理机部件。这样,指令分配器22在单周期内可调度多个指令,每个执行部件一条指令。根据设计选择,执行部件可包括保留站,保留站可允许在单周期内对单一执行部件调度多于一个的指令。这样,超标量处理机的多个执行部件的每一个在单周期内可接收多个指令。另外,在多处理机系统中指令可调度给带有多个处理机的多个执行部件24。
现参看图2,它是可用来实现本发明方法和系统的超标量数据处理系统(图1)中的指令调度电路系统的较详细方块图。如图示,从超高速缓冲器/存储器接口20出来的指令通常以组按应用规定的顺序序列装入到指令分配器22中。因而,根据设计选择,2个、4个或8个一组的指令从超高速缓冲器/存储器接口20装入到指令分配器22中,以在机会主义原理上调度到执行部件24中的一个或多个执行部件中。如图2所表示的实施例中,这些执行部件可包括1个浮点执行部件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中的各缓冲区和一个指定的通用寄存器之间的关系指示,以便应用在后继指令的执行中。
多中间存储器缓冲区60最好和多独立总线64相连。在最佳实施例中,独立总线64的数量等于中间存储器缓冲区60的数量,各个中间存储器缓冲区和一条总线相连。各个中间存储器缓冲区60可对一条相应的独立总线64进行读和写。熟练的技术人员公认总线的采用数量可按设计选择变化。
图中显示了多个执行部件24a、24b、24c,它们和多独立总线64的各条总线相连。最佳实施例中,执行部件24a、24b、24c可以包括一个浮点执行部件、多个送入/存储部件、多个定点执行部件和一个分支执行部件。但是,熟练的技术人员懂得执行部件的数量和类型可根据设计选择变化。
多执行部件24a、24b、26c中的每一个都可以对各条独立总线64进行读入和写给。从而,通过多独立总线64多执行部件24a、24b、24c中的每个和多中间存储器缓冲区60的每个相连。这样,当在一个执行部件里执行一条指令生成数据后,该执行部件可把这个数据放置到与定义为该数据目的地的某指定中间存储器缓冲区所对应的一条总线上,在那里该数据可暂时存储起来。同时,通过把一个“有效”位设置到适当的状态该执行部件标明该总线上的数据是有效的。如此,当该数据在总线上时,以及在该数据被存到指定的中间存储器缓冲区之前和存入的同时,任何需要该数据的其它执行部件可从总线上检索该数据。因此,预备独立总线的一个优点是不再需要把该数据存储到一个缓冲器中然后再从缓冲器中访问该数据。直接从总线检索数据的能力可大大提高处理机系统的动行速度。
继续参阅图3,可以看到多独立总线64的各条都和通用寄存器62连接。当要把一条指令调度给一个执行部件时,最好把指定的中间存储器缓冲区和被选定的通用寄存器之间的关系存储到存储器缓冲区索引58。当另一个执行部件需要该执行结果时,利用存储器缓冲区索引58里的信息可进行结果的传送。如同在这里将详细讨论那样,存储器缓冲区索引58中存放的信息可是该指定中间存储器缓冲区的一个标识符,利用通用寄存器的标识可对其进行访问,或者该存放的信息可是一个通用寄存器的标识符,并可利用该指定中间存储器缓冲区的标识对此通用寄存器进行访问。
按这种方式,不再需要维护通常和寄存器更名方法有关的复杂查找表,因为在调度一条指令中可以将一个中间存储器缓冲区立刻定为各目的。操作数的存储位置,而不需要对通用寄存器文件更名。进而,存储器缓冲区索引58允许按一种非顺序方法执行指令,因为各条指令的执行结果暂时地存放在中间存储器缓冲区60里,利用存储器缓冲区索引58里的信息和完成缓冲器48里的内容(见图2)这些结果可由后继指令接着使用。
现参看图4,它是按照本发明的方法和系统的调度控制进程的图示表示。如所示,多个指令图示在指令调度缓冲器64中。代表多指令的指令66、68、70和72按应用规定的顺序序列已装载到指令调度缓冲器64中。每条指令,如图示,一般包括一个源操作数和一个目的操作数;但是,熟练的技术人员懂得可以有更多操作数。
按照本发明的一个重要特性,试图调度指令72需要分配一个中间存储器缓冲区以供目的地DN使用。另外需要指定一个位置以供源操作数SN利用。按照本发明的方法和系统,它是这样完成的,首先对源操作数SN与在指令调度缓冲器中那些在该源操作数之前的目的。操作数进行比较。这样,比较部件74用来对目的地D3、D2、D1和源操作数SN进行比较。这个进程用来确定为源操作数SN规定的位置是否目前已经在指令调度缓冲器64之中。由于每条指令可以顺序地修改源的内容以及指令调度缓冲器64中的指令是按应用规定的顺序序列排列的,超前指令72最近的并和源操作数SN相等的目的地将得到利用。从而,如果利用比较部件74进行的第一次比较表明相匹配则对源操作数SN的说明置为等于目的操作数D3。类似地,当前面的目的操作数和源操作数SN都不匹配时,源操作数SN的说明可以被置为目的操作数D2或D1
现参看图5,其表示按照本发明的方法和系统的一个单周期指令调度进程的逻辑源程图。如所示,该进程从框80开始然后进入框82。框82中判定是否某一指令产生对执行部件的请求。如果没有,则该进程仅仅重复直到产生对执行部件的请求为止。当一个执行部件请求产生后该进程进入框84。
框84中判定是否可以得到这条指令所要求类型的执行部件。如果不能,进程仅仅重复直到某一合适的执行部件变为可以得到。然后,进程进入框86。框86中判定被调度指令中的各目的操作数是否可以得到一个中间存储器缓冲区。根据本发明一个重要特性,一个中间存储器缓冲区被分配给指令中的各个目的操作数,这样在单处理机周期内可对该指令及相关数据进行调度,不要求对通用寄存器文件中的一个更名寄存器进行复杂的判断。如果不能够把一个中间存储器缓冲区分配给选定指令中的目的操作数,该进程等候一个中间存储器缓冲区可用。
接着,进程进入框88。框88中表示在可以得到这样一个中间存储器缓冲区后为该选定指令里的目的操作数分配一个中间存储器缓冲区。然后,进程进入框90。在框90中判定是否该选定指令内的所有源操作数都已得到规定。如将在下面更详细说明那样,在允许一条指令被调度之前,必须为它包含的各源操作数规定一个获得数据的源或位置。若该选定指令的源操作数没有全部得到规定,则进程仅仅重复,直到对每个源操作数的规定明确之刻。
当选定指令的所有源操作数都得到规定后,进程进入框92。框92中表明在当前的处理机周期内对选定指令和数据说明进行调度。从而通过允许可把中间存储器缓冲区分配给各条指令的目的操作数,本发明的方法和系统允许一条指令和执行指令所需的数据说明可在一个单周期内得到调度。然后,进程进入框94并返回。尽管上述进程步骤描述为连续进行的,熟练的技术人员懂得为效率目的这些步骤通常实质上将同时并行出现。
最后参看图6,它是一个逻辑流程图,表示根据并发明的方法和系统确定选定指令中源操作数的进程。如图示,进程从框100开始,然后进入框102。在框102中识别指令中的一个源操作数以供说明。然后进程进入104。框104中判定在指令调度缓冲器中某一指令以前的一个目的操作数是否和当前正在考虑的源操作数相同。若是,进程进入框106。
框106中表示把该操作数说明设置为前面最近的目的操作数缓冲区分配。当然,熟练的技术人员懂得应用规定的顺序序列中每条相继的指令可改变已指定成为某特定的目的地的一个缓冲区的内容。这样,前面最近的目的操作数缓冲区分配应该总是得到使用。然后进程进入框114并返回,此时已允许该指令得到调度,如图5所示。
再次参看框104,若在指令调度缓冲器中前面的目的操作数都不等于当前的源操作数,进程进入框108。框108中判定用于该源操作数的一个指令缓冲区是否如前面所述已经指定的缓冲区索引中。若是,进程进入框110。在框110中把该源操作数说明设置为缓冲区索引中指定的缓冲区,然后进程进入框114并返回。按这种方式,如果一个中间存储器缓冲区已被分配给一个作为当前指令的源的以前的目的地,则即使以前的指令已被调度,仍可完成适当的中间存储器缓冲区的识别。
最后再看框108,当被识别源操作数的缓冲区未被指定在缓冲区索引中时,进程进入框112。框112中把源操作数的说明置为通用寄存器文件中规定的通用寄存器,然后进程返回,如框114所示。
尽管本流程图的进程是按连续方式描述的,熟练的技术人员懂得为提高指令的调度效率,对以前的一个目的操作数是否等于当前的源操作数的判定,对一个指令缓冲区是否已在缓冲区索引中得到指定的判定或通用寄存器是否需要被指定为当前源操作数的说明的判定通常是并行进行的,以大大提高进程的效率。
尽管通过参照最佳实施例本发明得到具体描述,熟练的技术人员会理解在不偏离本发明的精神和范围的前提下可对其格式或细节进行各种改变。

Claims (3)

1.一种可在超标量处理机系统中提高指令调度效率的方法,它能够在单个处理机周期内同时把多条标量指令调度给多个执行部件,所述多条标量指令每条包括至少一个源操作数和一个目的操作数,所述方法的特征在于包括以下步骤:
在所述超标量处理机系统中设置多个中间存储器缓冲区;
在单处理机周期内:
确定所述多个执行部件中是否有一个适当的执行部件可用来执行从所述多条标量指令中选定的一条指令;
把所述多个中间存储器缓冲区中的一个特定的缓冲区分配给所述多条标量指令中的所述一个选定指令里的所述目的操作数;
指定所述至少一个源操作数;以及
响应于执行部件的可用性、所述多个中间存储器缓冲之一到所述目的操作数的分配以及所述至少一个源操作数的指定,把所述多条标量指令中的所述一条选定的指令调度给所述多个执行部件中的一个适当的执行部件,从而对所述多条标量指令中的所述一条选定指令的执行结果可以写到所述多个中间存储器缓冲区中的所述一个特定缓冲区中。
2.根据权利要求1的方法,其特征在于所述指定至少一个源操作数的步骤包括这一步骤:利用所述多个中间存储器缓冲区中的一个选定的中间存储器缓冲区作为所述至少一个源操作数的位置。
3.根据权利要求1的方法,其特征在于包括这一步骤:利用一个通用寄存器作为所述至少一个源操作数的位置。
CN94100132A 1993-01-08 1994-01-04 在超标量处理机系统中提高指令调度效率的方法 Expired - Fee Related CN1045024C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/001,864 1993-01-08
US08/001,864 US5465373A (en) 1993-01-08 1993-01-08 Method and system for single cycle dispatch of multiple instructions in a superscalar processor system

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN98123801A Division CN1128401C (zh) 1993-01-08 1998-10-30 超标量处理机系统中单周期调度多指令的方法和系统

Publications (2)

Publication Number Publication Date
CN1092882A CN1092882A (zh) 1994-09-28
CN1045024C true CN1045024C (zh) 1999-09-08

Family

ID=21698175

Family Applications (2)

Application Number Title Priority Date Filing Date
CN94100132A Expired - Fee Related CN1045024C (zh) 1993-01-08 1994-01-04 在超标量处理机系统中提高指令调度效率的方法
CN98123801A Expired - Fee Related CN1128401C (zh) 1993-01-08 1998-10-30 超标量处理机系统中单周期调度多指令的方法和系统

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN98123801A Expired - Fee Related CN1128401C (zh) 1993-01-08 1998-10-30 超标量处理机系统中单周期调度多指令的方法和系统

Country Status (8)

Country Link
US (1) US5465373A (zh)
EP (1) EP0605875B1 (zh)
JP (1) JP2793488B2 (zh)
KR (1) KR0122529B1 (zh)
CN (2) CN1045024C (zh)
AT (1) ATE173345T1 (zh)
CA (1) CA2107304C (zh)
DE (1) DE69322064T2 (zh)

Families Citing this family (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW242673B (zh) * 1993-08-18 1995-03-11 Ibm
EP0651321B1 (en) * 1993-10-29 2001-11-14 Advanced Micro Devices, Inc. Superscalar microprocessors
DE69427265T2 (de) 1993-10-29 2002-05-02 Advanced Micro Devices Inc Superskalarbefehlsdekoder
US5903772A (en) * 1993-10-29 1999-05-11 Advanced Micro Devices, Inc. Plural operand buses of intermediate widths coupling to narrower width integer and wider width floating point superscalar processing core
US5642513A (en) * 1994-01-19 1997-06-24 Eastman Kodak Company Method and apparatus for multiple autorouter rule language
US5546554A (en) * 1994-02-02 1996-08-13 Sun Microsystems, Inc. Apparatus for dynamic register management in a floating point unit
US5581717A (en) * 1994-03-01 1996-12-03 Intel Corporation Decoding circuit and method providing immediate data for a micro-operation issued from a decoder
US5559975A (en) * 1994-06-01 1996-09-24 Advanced Micro Devices, Inc. Program counter update mechanism
US5758176A (en) * 1994-09-28 1998-05-26 International Business Machines Corporation Method and system for providing a single-instruction, multiple-data execution unit for performing single-instruction, multiple-data operations within a superscalar data processing system
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
US5678016A (en) * 1995-08-08 1997-10-14 International Business Machines Corporation Processor and method for managing execution of an instruction which determine subsequent to dispatch if an instruction is subject to serialization
US5796974A (en) * 1995-11-07 1998-08-18 Advanced Micro Devices, Inc. Microcode patching apparatus and method
US6088783A (en) * 1996-02-16 2000-07-11 Morton; Steven G DPS having a plurality of like processors controlled in parallel by an instruction word, and a control processor also controlled by the instruction word
US6317819B1 (en) 1996-01-11 2001-11-13 Steven G. Morton Digital signal processor containing scalar processor and a plurality of vector processors operating from a single instruction
US5822606A (en) * 1996-01-11 1998-10-13 Morton; Steven G. DSP having a plurality of like processors controlled in parallel by an instruction word, and a control processor also controlled by the instruction word
US5940785A (en) * 1996-04-29 1999-08-17 International Business Machines Corporation Performance-temperature optimization by cooperatively varying the voltage and frequency of a circuit
US5798918A (en) * 1996-04-29 1998-08-25 International Business Machines Corporation Performance-temperature optimization by modulating the switching factor of a circuit
US6006320A (en) * 1996-07-01 1999-12-21 Sun Microsystems, Inc. Processor architecture with independent OS resources
US5848257A (en) * 1996-09-20 1998-12-08 Bay Networks, Inc. Method and apparatus for multitasking in a computer system
US5805907A (en) * 1996-10-04 1998-09-08 International Business Machines Corporation System and method for reducing power consumption in an electronic circuit
US5870616A (en) * 1996-10-04 1999-02-09 International Business Machines Corporation System and method for reducing power consumption in an electronic circuit
US5870577A (en) * 1996-11-27 1999-02-09 International Business Machines, Corp. System and method for dispatching two instructions to the same execution unit in a single cycle
US5805916A (en) * 1996-11-27 1998-09-08 International Business Machines Corporation Method and apparatus for dynamic allocation of registers for intermediate floating-point results
US5913054A (en) * 1996-12-16 1999-06-15 International Business Machines Corporation Method and system for processing a multiple-register instruction that permit multiple data words to be written in a single processor cycle
US5838941A (en) * 1996-12-30 1998-11-17 Intel Corporation Out-of-order superscalar microprocessor with a renaming device that maps instructions from memory to registers
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
US6370637B1 (en) * 1999-08-05 2002-04-09 Advanced Micro Devices, Inc. Optimized allocation of multi-pipeline executable and specific pipeline executable instructions to execution pipelines based on criteria
US6791564B1 (en) 2000-05-05 2004-09-14 Ipfirst, Llc Mechanism for clipping RGB value during integer transfer
US20020124157A1 (en) * 2001-03-01 2002-09-05 International Business Machines Corporation Method and apparatus for fast operand access stage in a CPU design using a cache-like structure
GB2423604B (en) 2005-02-25 2007-11-21 Clearspeed Technology Plc Microprocessor architectures
US20060206732A1 (en) * 2005-03-14 2006-09-14 Sony Computer Entertainment Inc. Methods and apparatus for improving processing performance using instruction dependency check depth
US9122487B2 (en) * 2009-06-23 2015-09-01 Oracle America, Inc. System and method for balancing instruction loads between multiple execution units using assignment history
CN102540973B (zh) * 2010-12-09 2013-06-26 中国科学院沈阳计算技术研究所有限公司 一种用于数控系统的命令多发机制的实现方法
US10089277B2 (en) 2011-06-24 2018-10-02 Robert Keith Mykland Configurable circuit array
US9633160B2 (en) * 2012-06-11 2017-04-25 Robert Keith Mykland Method of placement and routing in a reconfiguration of a dynamically reconfigurable processor
US9304770B2 (en) 2011-11-21 2016-04-05 Robert Keith Mykland Method and system adapted for converting software constructs into resources for implementation by a dynamically reconfigurable processor

Citations (2)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0769818B2 (ja) * 1984-10-31 1995-07-31 株式会社日立製作所 デ−タ処理装置
JPH0754461B2 (ja) * 1985-02-08 1995-06-07 株式会社日立製作所 情報処理装置
JPH0762823B2 (ja) * 1985-05-22 1995-07-05 株式会社日立製作所 デ−タ処理装置
US5276819A (en) * 1987-05-01 1994-01-04 Hewlett-Packard Company Horizontal computer having register multiconnect for operand address generation during execution of iterations of a loop of program code
US5075844A (en) * 1989-05-24 1991-12-24 Tandem Computers Incorporated Paired instruction processor precise exception handling mechanism
US5197137A (en) * 1989-07-28 1993-03-23 International Business Machines Corporation Computer architecture for the concurrent execution of sequential programs
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
WO1993020505A2 (en) * 1992-03-31 1993-10-14 Seiko Epson Corporation Superscalar risc instruction scheduling

Patent Citations (2)

* Cited by examiner, † Cited by third party
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
KR0122529B1 (ko) 1997-11-20
US5465373A (en) 1995-11-07
CA2107304C (en) 1999-06-22
KR940018742A (ko) 1994-08-18
CN1128401C (zh) 2003-11-19
JPH06236273A (ja) 1994-08-23
EP0605875B1 (en) 1998-11-11
CA2107304A1 (en) 1994-07-09
DE69322064T2 (de) 1999-07-01
JP2793488B2 (ja) 1998-09-03
CN1092882A (zh) 1994-09-28
ATE173345T1 (de) 1998-11-15
EP0605875A1 (en) 1994-07-13
CN1221913A (zh) 1999-07-07
DE69322064D1 (de) 1998-12-17

Similar Documents

Publication Publication Date Title
CN1045024C (zh) 在超标量处理机系统中提高指令调度效率的方法
CN100357884C (zh) 用于处理指令的方法、处理器以及系统
CN1021144C (zh) 带有指令标识装置的数据处理系统
CN1047245C (zh) 采用独立存取中间存储器的超标量处理器系统中加强指令调度的方法和系统
CN1188778C (zh) 处理指令的方法、处理器和数据处理系统
US5185868A (en) Apparatus having hierarchically arranged decoders concurrently decoding instructions and shifting instructions not ready for execution to vacant decoders higher in the hierarchy
EP0682789B1 (en) System and method for register renaming
CN1042863C (zh) 用于在超标量处理机系统中索引中间存储器缓冲区的指定的方法和系统
EP0762270B1 (en) Microprocessor with load/store operation to/from multiple registers
EP1023659B1 (en) Efficient processing of clustered branch instructions
CN1161689C (zh) 在超标量处理器中处理装入指令的方法和电路
CN1117765A (zh) 计算机系统内部处理指令的装置
EP0653703B1 (en) Temporary pipeline register file for a superpipelined superscalar processor
CN1178941A (zh) 通过合并存储操作进行集中存储的处理机及方法
KR19990062575A (ko) N-지로 분기를 갖는 슈퍼스칼라 또는 초장 명령어 워드컴퓨터에서 다음 명령어를 선택하는 방법 및 장치
EP0518420A2 (en) Computer system for concurrent processing of multiple out-of-order instructions
CN1171144C (zh) 可以跟踪不按序操作期间异常的数据处理系统及方法
US6516462B1 (en) Cache miss saving for speculation load operation
KR0122527B1 (ko) 슈퍼스칼라 프로세서 시스템에서 비순차적 명령어의 디스패치 및 실행을 위한 방법 및 시스템
CN1124546C (zh) 一种超标量处理器及在该超标量处理器中完成指令的方法
US20020004895A1 (en) Method and apparatus for efficiently routing dependent instructions to clustered execution units
CN1833222A (zh) 采用ilp和tlp的可重构处理器阵列
US6266761B1 (en) Method and system in an information processing system for efficient maintenance of copies of values stored within registers

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
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 19990908

Termination date: 20120104