CN1092188A - 采用独立存取中间存储器的超标量处理器系统中加强指令调度的方法和系统 - Google Patents

采用独立存取中间存储器的超标量处理器系统中加强指令调度的方法和系统 Download PDF

Info

Publication number
CN1092188A
CN1092188A CN94100117A CN94100117A CN1092188A CN 1092188 A CN1092188 A CN 1092188A CN 94100117 A CN94100117 A CN 94100117A CN 94100117 A CN94100117 A CN 94100117A CN 1092188 A CN1092188 A CN 1092188A
Authority
CN
China
Prior art keywords
mentioned
instruction
intermediate storage
storage buffers
superscalar processor
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.)
Granted
Application number
CN94100117A
Other languages
English (en)
Other versions
CN1047245C (zh
Inventor
詹姆斯·A·卡尔
高新程
奥布里·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 CN1092188A publication Critical patent/CN1092188A/zh
Application granted granted Critical
Publication of CN1047245C publication Critical patent/CN1047245C/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 or 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 or 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
    • 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 or look ahead
    • G06F9/3854Instruction completion, e.g. retiring, committing or graduating
    • G06F9/3856Reordering of instructions, e.g. using queues or age tags

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)
  • Multi Processors (AREA)

Abstract

可在超标量处理器系统中进行单周期指令调度 的方法和系统,该系统同时调度多条指令到执行单元 以供执行,并将其结果存放于特定的通用寄存器中。 每一指令一般至少包含一个源操作数以及一个目的 操作数。提供了多个中间存储缓冲器,并且每当一指 令被调度到一可用的执行单元,为被调度的指令中任 一目的操作数据一特定的中间存储缓冲器,以允许在 一个周期中调度指令,因为不必判定和选择特定通用 寄存器或被指定的另外的通用寄存器。

Description

本发明一般涉及一种改进的数据处理系统,并特别涉及在超标量处理器系统中用于加强的指令调度效率的方法和系统。更具体地,本发明涉及在应用独立存取中间存储器的超标量处理系统中用于加强指令调节的一种方法和系统。
当今新型数据处理系统的设计者正不断努力加强这类系统诸方面的性能。短周期时间和每条指令的低循环(CPI)率的实现,是强化数据处理效率的一种技术。这些技术在加强的数据处理系统中应用的一个良好范例,是国际商业机器公司的RISC系统/6000(RS/6000)计算机。该RS/6000系统设计是为有效地执行复杂的工程和科学数值计算应用程序以及多用户的商业环境。RS/6000处理器应用了超标量实现方案,而同时产生和执行多指令。
同时产生和执行多指令需要能够以高指令带宽并行执行的独立功能单元。RS/6000系统通过采用单独分支、定点与实质上流水线化的浮定处理单元,而实现了这一点。这类系统中就处理器的流水线化性质而言,必须注意为执行后继指令所必须的特定指令的结果应在被调度后续指令之前获得。保证不会出现这种所谓“数据机关性危险”的一种技术是限制特定指令的调度,直到所有先前的指令都已调度时为止。虽然这一技术保证了数据相关性危险不会发生。但应用这一技术所碰到的性能恶化是显著的。
于是,现代超标量数据处理系统常应用所谓“数据相关互锁电路”。这类电路包含其操作与指令调度电路原理协调一致的逻辑,从而保证了为正确执行该指令所必须的先前指令得出的结果已获得之前不会调度一个指令。实现数据相关互锁电路的逻辑量正比于每一指令中的源操作数。源操作数是用来访问寄存器文件内一个操作数的指令中的一个字段。
虽然数据相关互锁电路使得数据相关危险得以避免,同时不会遇到上述的性能上的本质恶化,但对于包含大量源和目的操作数的指令,数据相关互锁电路的设计与实现变得相当复杂。
对由于在每一处理器循环中同时执行多指令而发生的数据相关危险,也应用了称为“寄存器更名”的方法而试图予以克服,寄存器更名是用以向寄存器暂时存放特定指令的结果的一种技术,以备在指令的最终结果存放在寄存器文件之前可能由后面的指令所用。寄存器更名,一般是通过提供带有额外的存储单元和用来标识特定的物理寄存器的一个指针装置的寄存器文件来实现的,该特定的物理寄存器已指定给逻辑寄存器。
虽然这一技术在那些否则可能需要串行执行的地方使得能够同时调度和执行多指令,但在应用这类技术将指令调度到执行存储单元时存在一个问题。用于存储指令执行结果的目的存储单元,以及用于实现该执行所必需的操作数的源存储单元,必须进行识别,以便对一个指令进行调度。复杂的寄存器更名方案需应用查寻表和/或逻辑电路,并且往往导致在用于访问该包括了可更名寄存器的寄存器文件的执行单元之间出现争用,因而降低了这类系统的处理效率。
因而显著需要一种方法和系统,它们通过提供独立可访问的中间存储器设备而能够在超标量处理器系统内加强指令调度,从而使用于数据目的的执行单元之间的争用减到最小。
因而本发明的一个目的是提供一种改进的数据处理系统。
本发明的另一目的在于提供一种用于超标量处理器系统中提高指令调度效率的一种改进的方法和系统。
本发明的又一目的,是提供一种应用独立被访问中间存储器在超标量处理系统中强化指令调度的方法和系统。
现将说明的如何达到上述目的。本发明的方法和系统允许在超标量处理器系统中强化指令的调度,该系统将多条指令同时调度到一组执行单元中去,以在特定的通用寄存器中执行和放置执行结果。每一指令一般至少包含一个源操作数的一个目的操作数。提供了多个中间存储缓冲器,其每一个都通过一个独立总线耦合到所有的执行单元。每当一个指令调度到一个可用的执行单元时,一个特定的中间存储缓冲器就被指定给该被调度的指令内任何目的操作数,通过消除对判定和选择特定的通用寄存器或被指定的替换的通用寄存器的要求,并通过允许执行单元通过独立总线直接访问指定的中间存储缓冲器,从而能够有效地进行指令的调度,并消除了与其他执行单元可能发生的访问争用。
本发明的以上以及其他目的、特点和优点将在以下详细的书面说明中更为明了。
作为本发明特征的新颖之处在所附权利要求中列出。而本发明自身以及较佳应用方式、及其进一步的目的和优点,则宜参考下述结合附图对示范实施例的详述而予以理解。在附图中:
图1是一可用以实现本发明的方法和系统的超标量数据处理系统的高级框图;
图2是图1的可用以实现本发明的方法和系统的超标量数据处理系统的指令调度电路的更详细的框图;
图3是根据本发明的方法和系统描述图1的超标量数据处理系统中的中间存储缓冲器用法的高级框图;
图4是根据本发明的方法和系统的调度控制过程的图示;
图5是根据本发明的方法和系统描述对于单循环指令调度过程的逻辑流程图;
图6是描述根据本发明在一个被选指令确定源操作数过程的逻辑流程图。
现参见附图特别是图1,该图示出可用以实现本发明的方法和系统的超标量数据处理系统10的一个高级框图。如图所示,数据处理系统10包括用于存储数据、指令等的存储器18。在存储器18内存储的数据和指令最好以本专业技术人员熟知的方式应用高速缓冲存储器/存储器接口20进行存取。高速缓冲存储器系统的规格和用法在数据处理技术中是熟知的,因此本申请中将不再赘述。但本技术专业人员将会理解,通过应用当代的有关高速缓冲存储器技术,大部分的存储器存取可利用暂存于高速缓冲存储器/存储器接口20中的数据而实现。
来自高速缓冲器/存储器接口20的指令一般加载到指令调度器22,该指令调度器最好包括多个排队位置。在超标量数据处理系统的一个典型实施例中,指令调度器内的每一位置可包含二到八个指令,于是在一个给定的循环之中可将多至八个的指令加载到指令调度器22之中,这取决于有多少有效指令被高速缓冲存储器/存储器接口20传送以及在指令调度器22内有多少可用空间。
作为在那种超标量数据处理系统的中的典型,指令调度器22被用以向执行单元24调度指令。如图1中所示,数据处理系统10可能包括一个或多个浮点单元、定点处理器单元、加载/存储单元以及一个分支处理单元,这取决于设计的选择。于是指令调度器22可将多个指令逐个在单独一个循环中分别调度到每一执行单元中。执行单元可能包括保留站,这些保留站能够按设计选择,允许将一个以上的指令在一个周期内调度到单一指令单元中。于是在一个周期内,超标量处理器中多个执行单元的每一个可收到多个指令。而且,在多处理器系统中,指令能被调度到与多处理器相关联的多执行单元24之中。
现参见图2,其中表示出可用以实现本发明方法和系统的图1中的超标量数据处理系统的指令调度电路的更详细的框图。如图所示,来自高速缓冲存储器/存储器接口20的指令通常按应用程序指定的顺序成组地加载到指令调度器22之中。于是,按设计的选择,指令以两个、四个或八个为一组被从高速缓冲存储器/存储器接口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读出或对其进行写入。本专业人员应理解,所应用的总线数目是可按设计要求变化的。
所示的多个执行单元24a,24b,24c与多个独立总线64的每一条耦合。在较佳实施例中,执行单元24a,24b,24c可包含一个浮点执行单元、多个加载/存储单元、多个定点执行单元和一个分支执行单元。但本专业人员当能明白,执行单元的数量和类型是可按设计要求而变化的。
多个执行单元24a,24b,24c的每一个也可由每一独立总线64上读取和对其进行写入。于是多个执行单元24a,24b,24c通过多独立总线64与多个中间存储缓冲器60的每一个耦合。于是,当数据在一个执行单元中由一个指令的执行而产生时,该执行单元可将此数据存放在对应于已被规定为该数据目的地的指定中间存储缓冲器的总线上,在该缓冲器上数据可被暂时存储。同时,执行单元通过将“有效”位设定为一个适当的状态,而显示总线上的数据是有效的。这样,当数据在总线上时,且在数据被存储在指定的中间存储缓冲器之前或在同时,任何需要这一数据的其他执行单元都能从总线上检索该数据。于是设置独立总线的优点就在于无需在缓冲器中存储这数据并在此后又从该缓冲器中存取之。直接从总线检索数据的能力将大大增加该处理器系统的操作速度。
仍参见图3,可看到多条独立总线64的每一个都与通用寄存器62耦合。当一个指令要被调度到一个执行单元时,被指定的中间存储缓冲器与选定的通用寄存器之间的关系最好存储在存储缓冲器索引58之中。当其他执行单元需要这些执行结果时,可应用存储缓冲器索引58中的信息传送这些结果。如果更为详细描述的,存储在存储缓冲器索引58中的信息,可是用于指定的中间存储缓冲器的标识符,该缓冲器的存取是应用通用寄存器的通用寄存器标识或一个标识符进行的,而通用寄存器的存取是应用被指定的中间存储缓冲器的标识进行的。
这样,由于对于每一待调度的指令中的目的操作数中间存储缓冲器可立即被指定为存储位置,而无需通用寄存器文件的更名,因而也就不需要维持通常与寄存器更名模式相关的复杂的查寻表。而且,由于每一指令的执行结果被暂存于中间存储缓冲器60之中并可通过利用存储在缓冲器索引58之中的信息及完成缓冲器48的内容(见图2)而被后继指令继续使用,因而存储缓冲器索引58可按非顺序方式执行指令。
参见图4,其中示意表示出按本发明的方法和系统的调度控制过程。如图所示,在指令调度缓冲器64之中示出了多个指令。这样,指令66、68、70和72表示已按应用规定的顺序加载到指令调度缓冲器64之中的多个指令。如图所示,每一指令一般包含一个源操作数和一个目的操作数;但本技术专业的人员应当明白,也可出现较多的操作数。
按照本发明的一个重要特点,一个偿试的调度指令72要求分配中间存储缓冲器以用于调度DN。而且必须规定一个用于源操作数SN的位置。按本发明的方法和系统这一点是通过首先将源操作数SN与指令调度缓冲器64内的先于该源操作数的诸目的操作数进行比较而实现的。于是,比较单元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 (10)

1、在超标量处理器系统中强化指令调度效率的方法,该超标量系统可读取应用程序指定的标量指令的有序序列并同时调度该标量指令组到多个执行单元,该方法的特征在于包括以下步骤:
在该超标量处理器系统中提供多个中间存储缓冲器;
将上述多个中间存储缓冲器的每一个通过一独立总线与到上述多个执行单元的每一个耦合;
将上述标量指令组的选定指令按照机会调度到上述多个执行,单元的选定执行单元;以及
将上述所调度的标量指令的每一个的执行结果从上述多个执行单元之一通过独立总线传送到上述多个中间存储缓冲器中指定的一个缓冲器,其中上述结果可在没有上述多个执行单元之间的存取竞争的情况下得到存储,并且其中上述结果对于上述多执行单元的每一个都是可用的。
2、根据权利要求1的超标量处理器系统中强化指令调度效率的方法,其特征在于包括将上述被调度的标量指令的每一个指令的上述执行结果从上述多个中间存储缓冲器中传送到选定的通用寄存器中的步骤。
3、根据权利要求1的超标量处理器系统中的强化指令调度效率的方法,其特征在于上述在超标量处理器系统中提供多个中间存储缓冲器的步骤包括在上述超标量处理器系统中提供十二个中间存储缓冲器的步骤。
4、根据权利要求3的在超标量处理器系统中强化指令调度效率的方法,其特征在于将上述多个中间存储缓冲器的每个通过一个独立总线耦合到上述多个执行单元的每一个的上述步骤包括将十二个独立总线耦合到上述多执行单元的每一个的步骤,上述十二个独立总线的每一个被耦合到上述十二个中间存储缓冲器之一。
5、根据权利要求1的在超标量处理器系统中强化指令调度效率的方法,其特征在于将上述每个调度标量的指令的执行结果从上述多个执行单元之一通过独立总线传送到上述多个中间存储缓冲器中指定的一个的步骤包括响应上述传送提供表示上述独立总线上的数据为有效的指示的步骤。
6、在超标量处理器系统中用于强化指令调度的效率的系统,该超标量处理系统可读取应用程序指定的标量指令的有序序列并同时将一组上述标量指令调度到多个执行单元中去,该系统的特征在于包括:
在所述超标量处理器系统中的多个中间存储缓冲器;
用于将上述多个中间存储缓冲器的每一个通过一独立总线耦合到上述多个执行单元的每一个的装置;
用于根据机会将上述标量指令组选定的指令调度到上述多个执行单元中选定的单元的装置;以及
用于将上述被调度的标量指令的每个指令的执行结果从上述多个执行单元之一通过一独立总线传送到上述多个中间存储缓冲器中指定的一个缓冲器之中的装置,其中上述结果可在没有上述多个执行单元之间的存取竞争的情况下得到存储,并且其中上述结果对于上述多个执行单元每一个都是可用的。
7、根据权利要求6的在超标量处理器系统中用于强化指令调度效率的系统,其特征在于包括用于将上述被调度的标量指令的每个指令的执行结果从上述多个中间存储缓冲器传送到选定的通用寄存器的装置。
8、根据权利要求6的在超标量系统中用于强化指令调度效率的系统,其特征在于上述用于在该超标量处理器系统中提供多个中间存储缓冲器的装置包括在该超标量处理器系统中提供的十二个中间存储缓冲器的步骤。
9、根据权利要求6的在超标量处理器系统中用于强化指令调度效率的系统,其特征在于上述用于通过一独立总线将上述多个中间存储缓冲器的每一个耦合到上述多个执行单元中的每一个的装置包括被耦合到上述多个执行单元每一个的十二条独立总线,上述十二条独立总线的每一条都被耦合到上述十二个中间存储缓冲器之一。
10、根据权利要求6的在超标量处理器系统中用于强化指令调度效率的系统,其特征在于用于将上述调度标量指令的每一个的执行结果从上述多个执行单元之一通过一独立总线传送到上述多个中间存储缓冲器中指定的一个缓冲器的上述装置还包括响应上述的传输提供表明上述独立总线上的数据为有效的显示的装置。
CN94100117A 1993-01-08 1994-01-06 采用独立存取中间存储器的超标量处理器系统中加强指令调度的方法和系统 Expired - Fee Related CN1047245C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/001,865 1993-01-08
US08/001,865 US5898882A (en) 1993-01-08 1993-01-08 Method and system for enhanced instruction dispatch in a superscalar processor system utilizing independently accessed intermediate storage

Publications (2)

Publication Number Publication Date
CN1092188A true CN1092188A (zh) 1994-09-14
CN1047245C CN1047245C (zh) 1999-12-08

Family

ID=21698179

Family Applications (1)

Application Number Title Priority Date Filing Date
CN94100117A Expired - Fee Related CN1047245C (zh) 1993-01-08 1994-01-06 采用独立存取中间存储器的超标量处理器系统中加强指令调度的方法和系统

Country Status (9)

Country Link
US (2) US5898882A (zh)
EP (1) EP0605866B1 (zh)
JP (1) JP2783505B2 (zh)
KR (1) KR0124812B1 (zh)
CN (1) CN1047245C (zh)
AT (1) ATE182013T1 (zh)
CA (1) CA2107306A1 (zh)
DE (1) DE69325566T2 (zh)
TW (1) TW280879B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1938730B (zh) * 2004-02-27 2012-05-30 辉达公司 基于寄存器的对纹理请求的排队
CN111656319A (zh) * 2017-12-22 2020-09-11 阿里巴巴集团控股有限公司 利用特定数检测的多流水线架构
CN117742794A (zh) * 2023-12-05 2024-03-22 摩尔线程智能科技(北京)有限责任公司 数据处理系统、方法、装置及存储介质

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0724215A1 (en) * 1995-01-26 1996-07-31 Sun Microsystems, Inc. Method and apparatus for recovering from mispredicted branches in a pipelined processor
US5881264A (en) * 1996-01-31 1999-03-09 Kabushiki Kaisha Toshiba Memory controller and memory control system
US6209083B1 (en) * 1996-02-28 2001-03-27 Via-Cyrix, Inc. Processor having selectable exception handling modes
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
US6295601B1 (en) * 1997-05-30 2001-09-25 Sun Micro Systems, Inc. System and method using partial trap barrier instruction to provide trap barrier class-based selective stall of instruction processing pipeline
US5964862A (en) * 1997-06-30 1999-10-12 Sun Microsystems, Inc. Execution unit and method for using architectural and working register files to reduce operand bypasses
US6085315A (en) * 1997-09-12 2000-07-04 Siemens Aktiengesellschaft Data processing device with loop pipeline
US6108768A (en) * 1998-04-22 2000-08-22 Sun Microsystems, Inc. Reissue logic for individually reissuing instructions trapped in a multiissue stack based computing system
US6487715B1 (en) * 1999-04-16 2002-11-26 Sun Microsystems, Inc. Dynamic code motion optimization and path tracing
US6298436B1 (en) 1999-06-08 2001-10-02 International Business Machines Corporation Method and system for performing atomic memory accesses in a processor system
US6453412B1 (en) * 1999-07-20 2002-09-17 Ip First L.L.C. Method and apparatus for reissuing paired MMX instructions singly during exception handling
US6591361B1 (en) 1999-12-28 2003-07-08 International Business Machines Corporation Method and apparatus for converting data into different ordinal types
US6851044B1 (en) * 2000-02-16 2005-02-01 Koninklijke Philips Electronics N.V. System and method for eliminating write backs with buffer for exception processing
US6857061B1 (en) 2000-04-07 2005-02-15 Nintendo Co., Ltd. Method and apparatus for obtaining a scalar value directly from a vector register
US6701424B1 (en) * 2000-04-07 2004-03-02 Nintendo Co., Ltd. Method and apparatus for efficient loading and storing of vectors
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
JP3855270B2 (ja) * 2003-05-29 2006-12-06 ソニー株式会社 アンテナ実装方法
US20060293644A1 (en) * 2005-06-21 2006-12-28 Donald Umstadter System and methods for laser-generated ionizing radiation
WO2008070688A1 (en) * 2006-12-04 2008-06-12 Commvault Systems, Inc. Systems and methods for creating copies of data, such as archive copies
US9582276B2 (en) * 2012-09-27 2017-02-28 Apple Inc. Processor and method for implementing barrier operation using speculative and architectural color values
JP6115394B2 (ja) * 2013-08-13 2017-04-19 富士通株式会社 演算処理装置及び演算処理装置の制御方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4051551A (en) * 1976-05-03 1977-09-27 Burroughs Corporation Multidimensional parallel access computer memory system
JPS581246A (ja) * 1981-06-26 1983-01-06 Fujitsu Ltd 命令処理順序制御方式
JPS58178464A (ja) * 1982-04-14 1983-10-19 Hitachi Ltd 並列演算処理装置
US4594660A (en) * 1982-10-13 1986-06-10 Honeywell Information Systems Inc. Collector
US5067069A (en) * 1989-02-03 1991-11-19 Digital Equipment Corporation Control of multiple functional units with parallel operation in a microcoded execution unit
WO1990010267A1 (en) * 1989-02-24 1990-09-07 Nexgen Microsystems Distributed pipeline control for a computer
US5136697A (en) * 1989-06-06 1992-08-04 Advanced Micro Devices, Inc. System for reducing delay for execution subsequent to correctly predicted branch instruction using fetch information stored with each block of instructions in cache
US5197137A (en) * 1989-07-28 1993-03-23 International Business Machines Corporation Computer architecture for the concurrent execution of sequential programs
US5471593A (en) * 1989-12-11 1995-11-28 Branigin; Michael H. Computer processor with an efficient means of executing many instructions simultaneously

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1938730B (zh) * 2004-02-27 2012-05-30 辉达公司 基于寄存器的对纹理请求的排队
CN111656319A (zh) * 2017-12-22 2020-09-11 阿里巴巴集团控股有限公司 利用特定数检测的多流水线架构
CN111656319B (zh) * 2017-12-22 2023-06-13 阿里巴巴集团控股有限公司 利用特定数检测的多流水线架构
CN117742794A (zh) * 2023-12-05 2024-03-22 摩尔线程智能科技(北京)有限责任公司 数据处理系统、方法、装置及存储介质

Also Published As

Publication number Publication date
JP2783505B2 (ja) 1998-08-06
CA2107306A1 (en) 1994-07-09
CN1047245C (zh) 1999-12-08
EP0605866A1 (en) 1994-07-13
EP0605866B1 (en) 1999-07-07
TW280879B (zh) 1996-07-11
DE69325566T2 (de) 2000-01-27
US5898882A (en) 1999-04-27
DE69325566D1 (de) 1999-08-12
JPH06242954A (ja) 1994-09-02
US5764942A (en) 1998-06-09
KR0124812B1 (ko) 1997-12-11
ATE182013T1 (de) 1999-07-15

Similar Documents

Publication Publication Date Title
CN1047245C (zh) 采用独立存取中间存储器的超标量处理器系统中加强指令调度的方法和系统
CN1045024C (zh) 在超标量处理机系统中提高指令调度效率的方法
US5923863A (en) Software mechanism for accurately handling exceptions generated by instructions scheduled speculatively due to branch elimination
US6996821B1 (en) Data processing systems and method for batching tasks of the same type in an instruction cache
US5491829A (en) Method and system for indexing the assignment of intermediate storage buffers in a superscalar processor system
EP0565705B1 (en) Out of order job processing method and apparatus
CN1760826A (zh) 用于处理指令的方法、处理器以及系统
CN1340760A (zh) 分区的发送队列和分配策略
AU642927B2 (en) Minimizing hardware pipeline breaks using software scheduling techniques during compilation
CN1226700A (zh) 高性能推测性未对齐加载操作
JP3142813B2 (ja) レジスタの名前変更を管理するための情報処理システムおよび方法
CN1041566C (zh) 超标量处理器系统中分配和执行非顺序指令的方法和系统
CN1171144C (zh) 可以跟踪不按序操作期间异常的数据处理系统及方法
EP0518420A2 (en) Computer system for concurrent processing of multiple out-of-order instructions
CN1151047A (zh) 将指令装入指令高速缓冲存储器中的方法
CN1124546C (zh) 一种超标量处理器及在该超标量处理器中完成指令的方法
JP3737573B2 (ja) Vliwプロセッサ
US6266761B1 (en) Method and system in an information processing system for efficient maintenance of copies of values stored within registers
Dwyer III A multiple, out-of-order, instruction issuing system for superscalar processors

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
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: 19991208

Termination date: 20100208