CN1021144C - 带有指令标识装置的数据处理*** - Google Patents
带有指令标识装置的数据处理*** Download PDFInfo
- Publication number
- CN1021144C CN1021144C CN90109188A CN90109188A CN1021144C CN 1021144 C CN1021144 C CN 1021144C CN 90109188 A CN90109188 A CN 90109188A CN 90109188 A CN90109188 A CN 90109188A CN 1021144 C CN1021144 C CN 1021144C
- Authority
- CN
- China
- Prior art keywords
- instruction
- data
- register
- circuit
- execution
- 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
- 238000003860 storage Methods 0.000 claims description 21
- 238000000034 method Methods 0.000 claims description 19
- 230000004044 response Effects 0.000 abstract 1
- 230000015572 biosynthetic process Effects 0.000 description 22
- 238000005755 formation reaction Methods 0.000 description 22
- 238000012856 packing Methods 0.000 description 15
- 239000000872 buffer Substances 0.000 description 10
- 238000010586 diagram Methods 0.000 description 9
- 238000007792 addition Methods 0.000 description 7
- 230000014759 maintenance of location Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000001052 transient 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
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
- G06F9/3889—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute
-
- 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
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)
- Computer And Data Communications (AREA)
Abstract
本数据处理***包括执行第一型指令的指令执行电路,根据第二型指令从存储器中取指令和数据的取出电路,一个指令解码器用于对取出的指令解码,并将第一型指令分配给指令排队电路,将第二型指令分配给取出电路。当执行第一型指令所需的数据未被取出时,指令排队电路能够存储被解码的第一型指令,同时将这些指令标识;当数据取出时,该电路清除这些指令的标识符。指令排队电路逐次将去掉标识的第一型指令提供给指令执行电路。
Description
本发明涉及处理***,特别是具有执行一个单独顺序指令的多处理单元的数据处理***。
在现代Von Neuman体系结构中遇到的一个共同问题是从相同的存储器中取指令和数据。在现代数据处理***中,访问存储器与在处理单元中执行指令相比是非常费时间的。访问存储器带来的费时问题由于采用高速缓冲存储器而在一定程度上缓和了,这是一种速度非常快的存储器,与数据处理***相连,保持频繁使用的信息。然而,如果在高速缓冲存储器中得不到要访问的信息,那么就需要另外的时间去访问主存储器。在传统的流水线数据处理***中指令是按顺序、但是是以一种伪并行方式执行的。每条指令被分成几个阶段执行,当执行一个指令阶段时,其它指令的其它阶段也被并行执行。作为流水处理的结果,指令按顺序并发执行,而指令的顺序关系保持不变。然而,通常当一条指令需要从存储器中提取数据时,数据从存储器中提取时流水线是停止的,这样,在流水线处理中并发式并行执行指令的许多优点就不存在了。本发明的目的就是为了减小由访问存储器而造成的损失。
过去采用的解决这个问题的方法是对一个寄存器进行标识,该寄存器是装入操作的目标(即,寄存器接收从存储器来的数据)。根据该方法中阐述的原理,处理机的
每个寄存器包括一个标识符存储装置。当指令被执行而不需要从被标识的寄存器中取数据时,指令被允许继续执行。然而,如果执行指令的过程取决于存储在被标识的寄存器中的数据,并且寄存器并没有收到被标识符指出的数据,指令就不能被执行。
本发明的目的是为包括多个处理机的数据处理***提供一个标识装置,其中在第一处理机中执行指令,而由第二处理机为指令提取所需的数据。本发明通过允许顺序执行流水线指令,从而提供顺序执行指令的能力,同时能够从存贮器中提取数据。
根据本发明,有一个数据处理***,它包括一个指令执行电路,用于执行第一型指令。取出电路用来从存储器中取出指令,并且根据第二型指令,从存储器中取出数据。还包括一个指令解码器,它对取出的指令解码,并将第一型指令送给指令排队电路,将第二型指令送给取出电路。当执行这些指令所需的数据还未被取出时,指令排队电路存储被解码的第一型指令,并标识这些第一型指令。当执行指令所需的数据已经取出时,清除这些指令的标识符。指令排队电路将去掉标识的指令逐次送给指令执行电路执行。
在最佳实施例中,有一个多处理***,其中存储器存有指令和数据。在这个最佳实施例中,有两个处理机,用于执行从指令控制单元来的指令。在这个最佳实施例中,第一型指令是浮点指令,它仅仅可以由一个浮点处理机执行。第二型指令是装入指令,用于向浮点处理机寄存器提供浮点数据,并且由定点处理机执行。定点处理机实际上计算放在与存储器相连的总线上的地址,以便存取浮点数据。此外,在最佳实施例中,第一队列用来存储寄存器至寄存器指令和寄存器至存储器指令,而第二队列用来存储存储器至寄存器指令。最佳实施例
中的指令解码装置具有对多条并行指令解码的能力。装入指令存储在一个指令队列中(存储器至寄存器队列),与另外的存储在另外队列中的浮点算术指令分开。当浮点算术指令需要数据、而该数据作为装入指令的结果正在被装入时,浮点算术指令在其指令队列中被标识。当一条指令没有标识符,它便提供给浮点处理机执行。
通过参照附图对体现本发明的最佳方式的详细描述,可以更好地理解本发明的上述内容以及其它目的、方面和优点。其中:
图1是数据处理***的框图;
图2是表示位于浮点单元中的指令队列的框图;
图3是表示与浮点单元16中的指令队列互连的指令解码逻辑电路的框图;
图4是表示标识过程的流程图;
图5是表示通过标识过程的指令流的状态图;
图6A是指令的第一序列;
图6B表示图6A中指令序列的流水线执行过程的时序图;
图7A是第二指令序列;
图7B表示图7A中指令序列的流水线执行过程的时序图;
图8A是第三指令序列;
图8B表示图8A中指令序列的流水线执行过程的时序图。
图1表示数据处理***的框图,该***包括一个与指令单元12相连的存储器10。指令单元12的输出是两种指令,它们被供给定点处理单元14或浮点处理单元16。定点处理单元包括一个指令队列27,称作“顺序指令执行队列”。浮点处理单元16包括一个指令队列34,它是由定点处理单元14在第二队列30
中执行的同步指令,指令队列30包括称作“异步指令”的指令。除了“同步指令”之外,浮点处理单元16的指令执行过程与定点处理单元14的指令执行过程无关。“同步指令”包括装入数据指令,它们将存储器20的数据提供给浮点处理单元16的寄存器。定点处理单元14完成对这些装入指令的地址计算,比如一条索引装入指令的定点计算。定点处理单元14从存储器10中取出数据。然后数据经数据高速缓冲存储器18送至浮点处理单元16中的寄存器。浮点处理单元16的装入数据指令被包含在队列34和27中。装入指令存储的协调通过线29完成。
图2表示一个框图及一个浮点处理单元16。指令由预取缓冲控制器20进行检查,确定这些指令是否有效。如果一条指令是一条有效指令,就将其存储在浮点指令队列22中。然后,这些指令在解码逻辑电路24的控制下,二条指令同时在解码器26和28中被解码。被解码的指令然后送至指令队列30和34,并被放入第一个适用的缓冲器中。除装入数据指令以外的浮点处理单元指令被存储在指令队列30中。这包括所有的浮点处理单元寄存器至寄存器以及寄存器至存储器的操作。浮点处理单元16存储器至寄存器的操作(装入数据指令)存储在指令队列34中。执行控制单元32在适当的时候调度队列30和34中的指令。
在操作过程中,指令队列30中的指令可能要求数据存于浮点处理单元寄存器中。该数据必须在这些指令可以被调度执行之前存储。本发明的标识装置为这些指令的适当管理提供了保证,保证当指令调度时,为这些指令所需的数据已经适当地存于寄存器中。
图3表示本发明的标识机构。该发明由浮点单元16中的电路组
成。在浮点单元16中,解码器0的寄存器26和解码器1的寄存器28存储被解码的指令。在解码过程中,利用比较器40、42、44、46和48进行比较,确定正在被解码的任何指令是否依赖于存储在装入指令队列34中(图3中表示为队列存储单元70和72)的装入指令的执行。队列存储单元70和72都包括一个六位“T”描述符,它是浮点执行单元16中的寄存器地址,正在被装入指令装入。这些寄存器地址被输入比较器40、42、44、46和48,与由解码电路26和28中的指令指定的寄存器进行比较。应该懂得,在最佳实施例中,一个浮点指令最多包括三个源寄存器和一个目的寄存器。源寄存器以“A”、“B”和“C”表示。目的寄存器或目标寄存器以“T”表示。在最佳实施例中,浮点执行单元16提供的指令执行乘法和加法即“A*B+C”。根据该格式,乘法/加法运算的结果放入一个目标寄存器“T”中。
如果对任何正在被解码的指令中带有寄存器指示符的寄存器进行正比较,那么当在指令缓冲器62中存储指令时,设置合适的标识符。标识符在标识符控制电路68的控制下存储在一个两位缓冲器64中。缓冲器50、54、58和62对应于图2中的指令队列30。当每条指令被解码,它就存储在第一个可适用的缓冲器中(从用于装入指令的缓冲器72和用于所有其它浮点指令的缓冲器62开始)。因此,所有异步指令(这些指令在浮点执行单元16中执行,不依赖于定点单元14中的指令执行情况)首先存储在缓冲器50中。此外,就存储在缓冲器50、54、58和62中的指令而言,它们各自的标识符分别传送至标识符存储器52、56、60和64。当指令被调度,它便被送至执行电路66。连接标识符控制逻
辑电路68,从存储器总线8接收数据准备就绪信号。当接收到数据准备就绪信号时,相应的标识符便变为零。并且,当缓冲器存储单元64中的两个标识符位都为零时,标识符控制逻辑电路将调度缓冲器存储单元62中的指令。用这样的方法,本发明管理指令队列中指令的顺序,保证执行指令要用到的数据在要执行的指令真正被调度之前,已经正确地取出,并且是有效的。
图4以流程图形式表示标识过程。在步骤100确定解码电路中是否存在一条有效指令。如果不是的话,则控制成一回路状,直到存在一条有效指令为止。接下来,在步骤102确定在装入队列1中是否存在一条有效指令。如果在装入队列1中不存在一条有效指令,那么控制回路返回步骤102的开始处。如果在队列1中存在一条有效指令,那么控制进行到步骤106,确定正在取出的操作数对正在解码的指令来说是否是合适的操作数。如果是的话,则控制进行到步骤110,设置指令标识符位1等于1。如果不是的话,则控制进行到步骤112,设置指令标识符位1等于0。以并行的方式,在步骤104,控制确定装入队列0中是否存在一条有效指令。如果不是的话,则控制回路返回步骤104的开始处。如果有一条有效的装入指令存在,则控制进行到步骤108,确定正在取出的操作数对正在解码的指令来说是否是合适的操作数。如果是的话,在步骤114,指令标识符位0设置为1。否则,在步骤116,指令标识符位0设置为0。
参照图3应该懂得,对于存储在四个指令缓冲器50、54、58或62其中之一的指令,可能需要操作数已经被装入,而这些操作数作为存储在缓冲器72和70中的两条装入指令的结果正在被装
入。在这种情况下,对于其各自的指令缓冲器50、54、58或62来说,位存储缓冲器52、56、60或64中的两位将包括一个1。当缓冲器72中的装入操作移到执行单元74时,缓冲器70中的操作向下移到缓冲器72,并且标识符缓冲器52、56、60或64的最左边的位移到最右边的位置。因此,如果两个位位置都是1,那么这表明存储在指令缓冲器70和72中的两条装入指令请求数据。同样,如果两个位位置都是0,那么这表明不需要任何正在装入的数据,并且指令可以进行调度以便执行。
图5表示标识顺序以及中止的指令执行的状态图。在第一状态120,当一条指令依赖于在装入缓冲器70中执行的装入指令时,标识符设置为1X,其中“X”表示“不理会”。执行状态置于0,表示指令不能进行调度以便执行。只要那个操作数的数据准备就绪信号是0,过程就保持这一状态。一旦那个操作数的数据准备就绪信号收到了,过程进行到状态122。这表明装入指令从图3中的装入指令缓冲器70传送到装入指令缓冲器72。过程再一次保持122状态,直至收到下一个数据准备就绪信号,这时,过程进行到状态124,其中标识符设置为00,执行状态变为1,表明指令已经被调度以便执行。
图6A表示一个指令序列。在通常的按顺序执行的流水线处理***的操作中,第一条指令LD0(表示装入寄存器0)将首先被调度以便执行。所有下面的指令都将等待这一条装入寄存器0的指令完成。接下来,乘法指令表示将寄存器2中的内容与寄存器3中的内容相乘,并将结果存于寄存器2中。乘法指令之后是一条装入指令,表示装入寄存器1。最后是一条加法指令,表示将寄存器0中的内容与
寄存器1中的内容相加,并将结果存于寄存器4中。
为了这一实例的目的,我们假定寄存器2和3预先已经装入数据。参照图3,在周期0(图6B)装入寄存器0的指令寄存在解码器0寄存器26中,乘法指令寄存在解码器1寄存器28中。在周期2中,由于不依赖于数据,装入寄存器0的指令传送至未完成的装入队列1的寄存器72,并且乘法指令经异步指令缓冲器50、54、58和62传送至执行单元66,以便执行。
在周期1中,装入寄存器1的指令放在解码器0的寄存器26中,并且加法指令放在解码器1的寄存器28中。在周期1,装入寄存器0的指令依然保持在未完成的装入指令队列1的寄存器72中,并且装入寄存器1的指令放在未完成的装入指令队列0的寄存器70中。加法指令放在缓冲器0的寄存器62中,并且标识符寄存器64设置为11,表明加法指令依赖于存储在寄存器70和72中的指令的完成。在周期3,由数据准备就绪线150指示收到了数据准备就绪信号。这表明数据送给浮点执行单元16,以便存储在合适的寄存器中。装入指令依然存储在它们合适的未完成的装入指令队列中寄存器70和72中,并且加法指令依然存储在寄存器62中,同时它的标识符存在标识符存储器60中。在周期4,装入寄存器0的指令从寄存器72中移出,因为它已经完成并被从寄存器70来的装入寄存器1的指令代替。当加法指令在寄存器62中保持时,寄存器64中的标识符复位为01,表明一个装入指令已经完成,该指令所依赖的未完成的装入现在存储在寄存器72中。在周期5,线150上收到第二个数据准备就绪信号。在周期6,由于浮点执行单元16收到了第二条数据,所以加法标识符置于00,并且加法指令调度给执行单
元66。
图7A是与图6A类似的第二指令序列。然而,图7A中的指令序列包括一条与乘法指令相反的除法指令。除法指令意味着要比乘法指令占用多得多的周期来完成。在图6B中,乘法指令用一个周期就完成了。而在图7B表示的实例中,除法指令要用七个周期完成。
在周期0,装入指令和除法指令和以前一样放在解码寄存器26和28中(图6A和6B)。在周期1,从解码寄存器28来的除法指令直接存放在执行单元66中。装入寄存器0的指令放在未完成的装入指令队列1的寄存器72中。同样,装入寄存器1的指令放在解码器0的寄存器26中,并且加法指令放在解码器1的寄存器28中。在周期2,装入寄存器1的指令存放在未完成的装入指令队列0的寄存器70中,并且加法指令放在缓冲器0的寄存器62中。此时,标识符控制逻辑电路在寄存器70和72中的装入指令完成时设置标识符,在周期3,线152指出,收到一个数据准备就绪信号。
在周期4,装入寄存器0的指令已经无用了,因为它已经完成,并且数据已经存放在适合的浮点处理单元寄存器中。然后装入寄存器1的指令从寄存器70移至寄存器72。然后标识符控制逻辑电路68将在标识符存储器64中的标识符复位成01,表明数据仅依赖于一条单独的装入指令,并且该装入指令存储在寄存器72中。在周期5,收到第二个数据准备就绪信号。在周期6,在寄存器72中装入1的指令已经无用了,因为它已经完成,并且数据已经存放在适合的浮点处理单元中。标识符控制逻辑电路68将暂时存储在标识符存储器64中的标识符复位成00,表明存储在寄存器58中的加法指令不依赖于数据。然而,除法指令继续执行。在周期7,除法指令仍
旧继续执行,因此,缓冲器1的寄存器62中的加法指令不能被调度到执行单元66。在周期8,除法指令终于完成,并且加法指令被调度,在纯粹的顺序执行中保留总共3个周期。
图8A包括第三指令序列,其中两条装入指令被解码,其后是加法指令和乘法指令。这个指令序列的目的是说明不依赖数据的指令(不依赖于未完成的装入的完成)能够被调度至执行单元。在图8B中,装入寄存器0的指令和装入寄存器1的指令分别调度至解码器0的寄存器26和解码器1的寄存器28中。在周期1,装入寄存器0的指令放在未完成的装入指令队列0的寄存器72中。装入寄存器1的指令放在未完成的装入指令队列0的寄存器70中。加法和乘法指令分别放在解码器0的寄存器26和解码器1的寄存器28中。注意:加法和乘法指令依赖于装入寄存器0的数据。为了说明该实例的目的,假定已经提供了为这些指令所需要的其它数据(在寄存器5和7中)。在周期2,装入寄存器1的指令和装入寄存器0的指令分别保持在寄存器70和72中,而乘法指令放在缓冲器1的寄存器58中,并且加法指令放在缓冲器0的寄存器62中。由于加法和乘法指令都依赖于寄存器72中正在完成的装入指令,所以二者的标识符都设置为01。这些相应指令的标识符存储在寄存器60和64中。在周期3,线154上收到一个数据准备就绪信号。在周期4,加法指令的标识符在暂时存储的存储器64中复位成00,并且加法指令被调度至指令执行单元66。同时,乘法指令移至缓冲器0的寄存器62,并且其标识符跟着从标识符存储器60移至标识符存储器64。如同加法指令一样,乘法指令的标识符复位成00,表明不依赖数据。同样,在周期4,已经完成的装入0指令无用了。装入寄存器1
的指令传送至未完成的装入指令队列1的寄存器72。在周期5,乘法指令调度至执行单元66,而装入寄存器1的指令等待完成。最后,在周期8,线154上收到一个数据准备就绪信号,表明装入寄存器1的指令已经完成。
虽然根据最佳实施例对本发明进行了具体的展示和描述,但是本领域的技术人员应该懂得,在不偏离本发明的范围和精神的前提下,可以在形式和细节上做各种修改。
Claims (9)
1、一个数据处理***,包括:
用于执行第一指令的指令执行装置;
取出装置,该装置与一存储器连接,用于从所述存储器中取出指令和响应第二指令从该存储器中取出数据;
指令解码装置,该装置与所述取出装置连接用于对取出的指令解码,将所述第一指令分配给一个指令排队装置,并且将所述第二指令分配给所述取出装置;其特征在于:
所述指令排队装置与所述指令解码装置,所述取出装置及所述指令执行装置连接,用于存储被解码的第一指令,确定所述存储的第一指令执行要求的数据是否未取出,当为执行所需要的数据还没有被取出时,标识被存储的第一指令,当为执行所需要的数据被取出时,清除所述第一指令的标识符,并且逐次将去掉标识的第一指令提供给指令执行装置并存储所述第二指令。
2、根据权利要求1的数据处理***,其特征在于所述指令排队装置进一步包括一个第一排队装置,用于存储寄存器至寄存器的指令和寄存器至存储器的指令,还包括一个第二排队装置,用于存储存储器至寄存器的指令。
3、根据权利要求2的数据处理***,其特征在于所说的指令解码装置包括第一和第二指令解码电路装置,用于同时对两条指令解码。
4、根据权利要求3的数据处理***,其特征在于所说的取出装置包括一个第二指令队列,用于当根据第二指令从存储器中取出数据时,存储所述的第二指令,并且所说的指令排队装置包括这样的装置,它用于存储存储在所说的第二指令队列中的第二指令,与第一指令的存储分开。
5、根据权利要求4的数据处理***,其特征在于所说的取出装置包括这样的装置,它把根据第二指令取出的数据提供给指令执行装置。
6、根据权利要求5的数据处理***,其特征在于当为第一指令所需要的数据已经由取出装置存储在指令执行装置中时,所说的指令排队装置清除存储的第一指令的标识符。
7、根据权利要求6的数据处理***,其特征在于所说的指令解码装置包括比较装置,在执行每条被解码的第一指令时,用于确定是否需要来自于存储在指令排队装置中的第二指令数据。
8、根据权利要求7的数据处理***,其特征在于所说的指令排队装置包括多个有序的第一指令存储锁存器,这些锁存器包括第一指令标识符锁存器,用于以一个有序的序列存储第一指令连同各自的标识符,并且所说的指令排队装置还包括这样的装置,它根据第二指令的执行情况,改变所说存储的第一指令和相应标识符的次序。
9、一种在数据处理***中分配指令的方法,该数据处理***中包括一个用于执行第一指令的指令执行电路、一个用于根据第二指令从存储器中取出数据的取出电路、一个用于将取出的指令进行解码的指令解码电路和一个用于存储第一及第二指令的指令排队电路,其特征在于以下步骤:
从所述指令解码电路将所述第一指令分配给指令排队电路;
从所述指令解码电路将所述第二指令分配给取出电路;
将被解码的第一指令存入排队装置;
确定第一指令的执行所需要的数据是否已取到;
当执行所需要的数据尚未被取出时,标识存储的第一指令;
当执行所需要的数据被取出时,将第一指令上的标识清除;
将未标识的第一指令提供给指令执行电路。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US453,529 | 1989-12-20 | ||
US07/453,529 US5150470A (en) | 1989-12-20 | 1989-12-20 | Data processing system with instruction queue having tags indicating outstanding data status |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1052740A CN1052740A (zh) | 1991-07-03 |
CN1021144C true CN1021144C (zh) | 1993-06-09 |
Family
ID=23800914
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN90109188A Expired - Fee Related CN1021144C (zh) | 1989-12-20 | 1990-11-17 | 带有指令标识装置的数据处理*** |
Country Status (10)
Country | Link |
---|---|
US (1) | US5150470A (zh) |
EP (1) | EP0437044B1 (zh) |
JP (1) | JP2701179B2 (zh) |
KR (1) | KR930008035B1 (zh) |
CN (1) | CN1021144C (zh) |
AU (1) | AU639953B2 (zh) |
DE (1) | DE69017178T2 (zh) |
HK (1) | HK90795A (zh) |
MY (1) | MY104531A (zh) |
NZ (1) | NZ236142A (zh) |
Families Citing this family (42)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2507638B2 (ja) * | 1989-12-01 | 1996-06-12 | 三菱電機株式会社 | デ―タ処理装置 |
US5255371A (en) * | 1990-04-02 | 1993-10-19 | Unisys Corporation | Apparatus for interfacing a real-time communication link to an asynchronous digital computer system by utilizing grouped data transfer commands |
JP2834292B2 (ja) * | 1990-08-15 | 1998-12-09 | 株式会社日立製作所 | データ・プロセッサ |
US5363495A (en) * | 1991-08-26 | 1994-11-08 | International Business Machines Corporation | Data processing system with multiple execution units capable of executing instructions out of sequence |
US5371684A (en) * | 1992-03-31 | 1994-12-06 | Seiko Epson Corporation | Semiconductor floor plan for a register renaming circuit |
JP2549256B2 (ja) * | 1992-12-01 | 1996-10-30 | インターナショナル・ビジネス・マシーンズ・コーポレイション | 浮動小数点プロセッサへデータを転送する方法及び装置 |
US5761473A (en) * | 1993-01-08 | 1998-06-02 | International Business Machines Corporation | Method and system for increased instruction synchronization efficiency in a superscalar processsor system utilizing partial data dependency interlocking |
US5434987A (en) * | 1993-09-21 | 1995-07-18 | Intel Corporation | Method and apparatus for preventing incorrect fetching of an instruction of a self-modifying code sequence with dependency on a bufered store |
WO1995016955A1 (en) * | 1993-12-15 | 1995-06-22 | Silicon Graphics, Inc. | Load latency of zero for floating point load instructions using a load data queue |
US5734856A (en) * | 1994-04-05 | 1998-03-31 | Seiko Epson Corporation | System and method for generating supplemental ready signals to eliminate wasted cycles between operations |
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 |
CN1069983C (zh) * | 1994-10-13 | 2001-08-22 | 联华电子股份有限公司 | 一种虚拟排队装置 |
US5745726A (en) * | 1995-03-03 | 1998-04-28 | Fujitsu, Ltd | Method and apparatus for selecting the oldest queued instructions without data dependencies |
US5751983A (en) * | 1995-10-03 | 1998-05-12 | Abramson; Jeffrey M. | Out-of-order processor with a memory subsystem which handles speculatively dispatched load operations |
US5799165A (en) * | 1996-01-26 | 1998-08-25 | Advanced Micro Devices, Inc. | Out-of-order processing that removes an issued operation from an execution pipeline upon determining that the operation would cause a lengthy pipeline delay |
US5796997A (en) * | 1996-05-15 | 1998-08-18 | Hewlett-Packard Company | Fast nullify system and method for transforming a nullify function into a select function |
US5920710A (en) * | 1996-11-18 | 1999-07-06 | Advanced Micro Devices, Inc. | Apparatus and method for modifying status bits in a reorder buffer with a large speculative state |
US5878242A (en) * | 1997-04-21 | 1999-03-02 | International Business Machines Corporation | Method and system for forwarding instructions in a processor with increased forwarding probability |
US5941983A (en) * | 1997-06-24 | 1999-08-24 | Hewlett-Packard Company | Out-of-order execution using encoded dependencies between instructions in queues to determine stall values that control issurance of instructions from the queues |
US5958047A (en) * | 1997-06-25 | 1999-09-28 | Sun Microsystems, Inc. | Method for precise architectural update in an out-of-order processor |
US5958041A (en) * | 1997-06-26 | 1999-09-28 | Sun Microsystems, Inc. | Latency prediction in a pipelined microarchitecture |
US6032249A (en) * | 1998-02-02 | 2000-02-29 | International Business Machines Corporation | Method and system for executing a serializing instruction while bypassing a floating point unit pipeline |
US7287147B1 (en) | 2000-12-29 | 2007-10-23 | Mips Technologies, Inc. | Configurable co-processor interface |
US7237090B1 (en) | 2000-12-29 | 2007-06-26 | Mips Technologies, Inc. | Configurable out-of-order data transfer in a coprocessor interface |
US7178133B1 (en) | 2001-04-30 | 2007-02-13 | Mips Technologies, Inc. | Trace control based on a characteristic of a processor's operating state |
US7168066B1 (en) * | 2001-04-30 | 2007-01-23 | Mips Technologies, Inc. | Tracing out-of order load data |
US7181728B1 (en) | 2001-04-30 | 2007-02-20 | Mips Technologies, Inc. | User controlled trace records |
US7185234B1 (en) * | 2001-04-30 | 2007-02-27 | Mips Technologies, Inc. | Trace control from hardware and software |
US7069544B1 (en) | 2001-04-30 | 2006-06-27 | Mips Technologies, Inc. | Dynamic selection of a compression algorithm for trace data |
US7124072B1 (en) | 2001-04-30 | 2006-10-17 | Mips Technologies, Inc. | Program counter and data tracing from a multi-issue processor |
US7134116B1 (en) | 2001-04-30 | 2006-11-07 | Mips Technologies, Inc. | External trace synchronization via periodic sampling |
US7065675B1 (en) | 2001-05-08 | 2006-06-20 | Mips Technologies, Inc. | System and method for speeding up EJTAG block data transfers |
US7043668B1 (en) | 2001-06-29 | 2006-05-09 | Mips Technologies, Inc. | Optimized external trace formats |
US7231551B1 (en) | 2001-06-29 | 2007-06-12 | Mips Technologies, Inc. | Distributed tap controller |
US7159101B1 (en) | 2003-05-28 | 2007-01-02 | Mips Technologies, Inc. | System and method to trace high performance multi-issue processors |
DE102004004307A1 (de) * | 2004-01-28 | 2005-09-01 | Infineon Technologies Ag | Schaltungsanordnung mit Zustandskontrolleinrichtung zur Überprüfung von abgesetzten Befehlen |
US20110004718A1 (en) | 2009-07-02 | 2011-01-06 | Ross John Stenfort | System, method, and computer program product for ordering a plurality of write commands associated with a storage device |
US20120117335A1 (en) * | 2010-11-10 | 2012-05-10 | Advanced Micro Devices, Inc. | Load ordering queue |
US9519944B2 (en) * | 2014-09-02 | 2016-12-13 | Apple Inc. | Pipeline dependency resolution |
GB2564144B (en) * | 2017-07-05 | 2020-01-08 | Advanced Risc Mach Ltd | Context data management |
GB2572954B (en) * | 2018-04-16 | 2020-12-30 | Advanced Risc Mach Ltd | An apparatus and method for prefetching data items |
CN111290786B (zh) * | 2018-12-12 | 2022-05-06 | 展讯通信(上海)有限公司 | 一种信息处理方法、设备及存储介质 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3718912A (en) * | 1970-12-22 | 1973-02-27 | Ibm | Instruction execution unit |
US4179736A (en) * | 1977-11-22 | 1979-12-18 | Honeywell Information Systems Inc. | Microprogrammed computer control unit capable of efficiently executing a large repertoire of instructions for a high performance data processing unit |
JPS58151655A (ja) * | 1982-03-03 | 1983-09-08 | Fujitsu Ltd | 情報処理装置 |
JP2564805B2 (ja) * | 1985-08-08 | 1996-12-18 | 日本電気株式会社 | 情報処理装置 |
US4972317A (en) * | 1986-10-06 | 1990-11-20 | International Business Machines Corp. | Microprocessor implemented data processing system capable of emulating execution of special instructions not within the established microprocessor instruction set by switching access from a main store portion of a memory |
US5001624A (en) * | 1987-02-13 | 1991-03-19 | Harrell Hoffman | Processor controlled DMA controller for transferring instruction and data from memory to coprocessor |
US5045992A (en) * | 1988-10-19 | 1991-09-03 | Hewlett-Packard Company | Apparatus for executing instruction regardless of data types and thereafter selectively branching to other instruction upon determining of incompatible data type |
US4999802A (en) * | 1989-01-13 | 1991-03-12 | International Business Machines Corporation | Floating point arithmetic two cycle data flow |
-
1989
- 1989-12-20 US US07/453,529 patent/US5150470A/en not_active Expired - Fee Related
-
1990
- 1990-10-19 JP JP2279510A patent/JP2701179B2/ja not_active Expired - Lifetime
- 1990-11-17 CN CN90109188A patent/CN1021144C/zh not_active Expired - Fee Related
- 1990-11-20 AU AU66753/90A patent/AU639953B2/en not_active Ceased
- 1990-11-20 MY MYPI90002044A patent/MY104531A/en unknown
- 1990-11-20 NZ NZ236142A patent/NZ236142A/en unknown
- 1990-12-07 EP EP90313353A patent/EP0437044B1/en not_active Expired - Lifetime
- 1990-12-07 DE DE69017178T patent/DE69017178T2/de not_active Expired - Fee Related
- 1990-12-08 KR KR9020196A patent/KR930008035B1/ko not_active IP Right Cessation
-
1995
- 1995-06-08 HK HK90795A patent/HK90795A/xx not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
EP0437044A2 (en) | 1991-07-17 |
HK90795A (en) | 1995-06-16 |
MY104531A (en) | 1994-04-30 |
US5150470A (en) | 1992-09-22 |
AU639953B2 (en) | 1993-08-12 |
DE69017178D1 (de) | 1995-03-30 |
AU6675390A (en) | 1991-06-27 |
CN1052740A (zh) | 1991-07-03 |
JP2701179B2 (ja) | 1998-01-21 |
JPH03191461A (ja) | 1991-08-21 |
KR910012913A (ko) | 1991-08-08 |
EP0437044B1 (en) | 1995-02-22 |
KR930008035B1 (en) | 1993-08-25 |
DE69017178T2 (de) | 1995-08-10 |
NZ236142A (en) | 1992-12-23 |
EP0437044A3 (en) | 1992-11-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1021144C (zh) | 带有指令标识装置的数据处理*** | |
US5075840A (en) | Tightly coupled multiprocessor instruction synchronization | |
EP0021399B1 (en) | A method and a machine for multiple instruction execution | |
CN1045024C (zh) | 在超标量处理机***中提高指令调度效率的方法 | |
EP0762270B1 (en) | Microprocessor with load/store operation to/from multiple registers | |
US7363467B2 (en) | Dependence-chain processing using trace descriptors having dependency descriptors | |
US5499349A (en) | Pipelined processor with fork, join, and start instructions using tokens to indicate the next instruction for each of multiple threads of execution | |
EP1023659B1 (en) | Efficient processing of clustered branch instructions | |
US20090055633A1 (en) | Computer processing system employing an instruction reorder buffer | |
US5604912A (en) | System and method for assigning tags to instructions to control instruction execution | |
CN1161689C (zh) | 在超标量处理器中处理装入指令的方法和电路 | |
JPS61286931A (ja) | 情報処理装置 | |
US4287561A (en) | Address formulation interlock mechanism | |
US5974522A (en) | Machine for processing interrupted out-of-order instructions | |
US6108771A (en) | Register renaming with a pool of physical registers | |
CN1833222A (zh) | 采用ilp和tlp的可重构处理器阵列 | |
KR100260680B1 (ko) | 순서외의 다중 인스트럭션 완료 지원 방법 및 수퍼스칼라 마이크로프로세서 | |
US7107478B2 (en) | Data processing system having a Cartesian Controller | |
CN117931294B (zh) | 指令处理设备和处理*** | |
Farrens et al. | Pipeline | |
Vokorokos et al. | Paralelization of the Sequantial Threads in DF Computers | |
JPH03141429A (ja) | 電子計算機 | |
JPH03163627A (ja) | 命令処理装置 |
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 |