CN1095506A - 具有最新分配比特的数据处理器及其操作方法 - Google Patents
具有最新分配比特的数据处理器及其操作方法 Download PDFInfo
- Publication number
- CN1095506A CN1095506A CN94102516A CN94102516A CN1095506A CN 1095506 A CN1095506 A CN 1095506A CN 94102516 A CN94102516 A CN 94102516A CN 94102516 A CN94102516 A CN 94102516A CN 1095506 A CN1095506 A CN 1095506A
- Authority
- CN
- China
- Prior art keywords
- result
- identifier
- bit
- instruction
- memory cell
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims description 32
- 239000000872 buffer Substances 0.000 claims abstract description 111
- 238000012546 transfer Methods 0.000 claims description 35
- 238000003860 storage Methods 0.000 claims description 21
- 230000005540 biological transmission Effects 0.000 claims description 5
- 230000005611 electricity Effects 0.000 claims 1
- 230000008569 process Effects 0.000 description 17
- 230000008859 change Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000033228 biological regulation Effects 0.000 description 2
- 230000001052 transient effect Effects 0.000 description 2
- 241001604129 Polydactylus Species 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000013316 zoning Methods 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/30003—Arrangements for executing specific machine instructions
- G06F9/3005—Arrangements for executing specific machine instructions to perform operations for flow control
- G06F9/30061—Multi-way branch instructions, e.g. CASE
-
- 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
-
- 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
-
- 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
-
- 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/3842—Speculative 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/3854—Instruction completion, e.g. retiring, committing or graduating
- G06F9/3858—Result writeback, i.e. updating the architectural state or memory
-
- 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/3861—Recovery, e.g. branch miss-prediction, exception handling
- G06F9/3863—Recovery, e.g. branch miss-prediction, exception handling using multiple copies of the architectural state, e.g. shadow registers
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)
Abstract
数据处理器,具有执行单元(12),再命名缓存器
(14),与执行单元连接,和结构寄存器(16),执行单元
及再命名缓存器连接。再命名缓存器周期地接收和
存储结果还周期地接收操作数的请求。接收到的每
个结果和操作数与一个结构寄存器相关联。再命名
缓存器将与结构寄存器相关联的接收结果周期地传
送到执行单元,并判定哪个输入数是更新该结构寄存
器的最新分配比特。仅传送一个合适的值就可增加
数据处理器的输出量并减少指令阻塞。
Description
本发明涉及数字计算系统,具体涉及具有无序指令的执行或完成功能的一种数据处理器。
现在,许多数据处理器结构中组合有多个执行单元,每次同时执行一条以上的指令。相对于另一种只有单个的一般用途执行单元的系统,或者另一种在开始执行相继的第二条指令之前必须先等候到第一条指令完成的系统,此种具有多个执行单元的结构可大大地增加这个数据处理系统的输出量。例如,一个数据处理器可以有着一个整数执行单元、一个浮点执行单元、一个数据执行单元和一个指令执行单元。这些单元中的每一个都只能实现少数几条指令。然而,总括起来,它们能实现一个一般用途数据处理器所需要的一整套指令。此外,视各种因素而定,这四个执行单元在同一时间里能实现的单个指令可达四条之多。
对于组合有多个执行单元的数据处理器,就“回写”指令使用到结构寄存器而言,按照它们所遵循的协议可进一步分类。当一个数据处理器将一个已完成指令的结果写入一结构寄存器时,回写是该数据处理器随后进行的一个过程。数据处理器的回写或是可以“按指令次序”,或是可以“不按指令次序”。一个回写协议的选择是在硬件和软件的综合之间取折衷。例如,对一个按指令次序的数据处理器编程处理中断和异常,要比对一个不按指令次序的数据处理器编程来处理同样的事件,较为简单些。相反,设计一个不按指令次序的数据处理器,要比设计一个按指令次序的数据处理器,将较为简单些。
一个按指令次序的数据处理器是这样一种数据处理器,它按原始指令流中出现的各指令,有次序地以一条条指令的结果来更新结构寄存器。一个按指令次序的数据处理器如果在原始指令次序中不需要完成得到结果,它可以应用一个再命名缓存器在回写之前暂时存储其结果。如果各指令是不按次序地开始的,如果不同类型的指令要花不同的时间长度去完成,又或若兼有这两种情况,则各指令的完成将是不按次序的。运行中,一旦完成第一条指令,便将第一个结果从再命名缓存器中写入合适的结构寄存器中。一旦完成第二条指令且第一条指令被回写,便将第二个结果从再命名缓存器中写入第二个结构寄存器,如此等等。
一个不按指令次序的数据处理器是这样一种数据处理器,它按各个执行单元中完成指令的次序,以一条条指令的结果来更新结构寄存器。执行单元一旦完成指令,它便将其结果直接写入结构寄存器,而对指令次序不作任何考虑。所以,一个不按指令次序的数据处理器的回写次序,与原始指令次序可能一致,也可能不一致。
在一组指令中会存在有大量的数据关联性,计及这一点,已经知道,按指令次序的数据处理器它们的复杂性会增加而它们的性能会下降。如果有多条指令要同时执行,则必须考虑到这类数据关联性。例如,一个执行单元可能需要来自一个结构寄存器的数据,而它却尚未由前面一条指令确定出来。同一个结构寄存器单元会被两条或更多条先前的指令所修改。在第一种情况下,在数据成为有效之前,执行单元必须一直等候到前面一条指令完成。在第二种情况下,在其数据有效之前,执行单元必须等候着去完成前面第二条指令。然而,在前面两条指令中的第一条完成之后,执行单元必须无差错地立即读出结构寄存器的值。
本发明是这样一种数据处理器,它具有许多执行单元,与该许多执行单元中至少一个执行单元相连接的一个再命名缓存器,与至少一个执行单元以及与该再命名缓存器相连接的结构寄存器。诸执行单元实行这样一个指令集,它至少有一条指令需要一个操作数,并至少有一条指令产生一个结果。诸结构寄存器定期地接收各执行单元的结果。再命名缓存器也定期地接收和存储结果,并定期地接收关于操作数的请求。每一个接收的结果和操作数与一个结构寄存器相关联。再命名缓存器定期地将一组接收的结果之一传送到一个执行单元。该组中每一个接收的结果与同一个结构寄存器相关联。
此外,本发明中运行一个数据处理器的一种方法具有以下步骤:在第一个时间上,将第一标识符和第一最新分配比特存储入一个第一存储器单元,并在随后的第二个时间上将第二标识符和第二最新分配比特存储入一个第二存储器单元。该第一标识符和第一最新分配比特在存储后作为许多组数据中的第一组数据。该第二标识符和第二最新分配比特在存储后作为许多组数据中的第二组数据。这第一和第二存储器单元各是许多存储器单元中的一个。这第一和第二标识符分别代表第一和第二存储器单元的一个地址,并分别与第一和第二结果相关联。这第一和第二最新分配比行分别与第一和第二结果相关联,并设定出初始的第一逻辑状态。在第二个时间上,将一个第二逻辑状态存储入最析分配比特中的一个子集。该子集有着那样一些存储器单元,它们的标识符在逻辑上是与该第二标识符等价的。
从下面结合各附图的详细描述中,可以较清楚地了解本发明的特点和优点;各图中同样的数字是指各同样相应的部分,这些图是:
图1示明按照本发明构成的一个数据处理器的方框图;
图2示明图1中示出的再命名缓存器的一个方框图;
图3至图7示明在各个顺序时间上图2中示出的再命名缓存器中的内容;
图8示明可运行来实现本发明的一套步骤的一个流程图;
图9示明可运行来实现图8中示出的一套步骤里一项步骤的一个流程图;
图10示明可运行来实现本发明的一套步骤的一个流程图。
图1示明按照本发明构成的一个数据处理器10的方框图。数据处理器10有许多个执行单元12(为简化下面的说明而只示出一个)、一个再命名缓存器14、一个结构寄存器堆16、一个传送电路18以及将这些方框连接起来的各条总线。结构寄存器堆16具有许多个结构寄存器(未示出),对它们定期地写入指令结果,并从它们那里定期地传送出操作数。再命名缓存器14、执行单元12或者这两者的组合,可定期地将这些结果写入结构寄存器堆16。下面将说明,再命名缓存器14也可以向执行单元12传送操作数。
传送电路18通过一条操作数总线20向执行单元12传送操作数和数据有效信号。再命名缓存器14通过一条标识符总线22向执行单元12传送再命名标识符。执行单元12在结果总线24上产生出结果,并在结果/请求标识符总线26上产生出结果/请求标识符。执行单元12对再命名缓存器14同时传送出结果和结果/请求标识符。再命名缓存器14在一条操作数总线/R828上传送出一个操作数和一个数据有效信号。再命名缓存器14按照预定的协议通过一条回写总线29又向结构寄存器堆16传送出其操作数。再命名缓存器14一般按原始指令流次序中出现的同样次序来回写或更新结构寄存器堆16。再命名缓存器14指明,它是否在“命中/没命中”信号线30上包含有一个请求的操作数。再命名缓存器14将其操作数、数据有效信号和命中/没命中信号传送到传送电路18。再命名缓存器14在一条传送结果/请求标识符总线32上向结构寄存器堆16传送出操作数请求。结构寄存器堆16在一条操作数总线/ARF34上向传送电路18传送出操作数和一个数据有效信号。
按照本发明,再命名缓存器14可包含有去往的目的地为结构寄存器堆16内同一结构寄存器的一组结果。再命名缓存器14能够判定,当执行单元12请求一个来自目的地结构寄存器的操作数时,该组结果内的哪一个结果应传送到执行单元12去。这种组选择能力允许数据处理器10在“阻塞”或暂停指令发出之前能发出较多的指令。已经知道,当一个即将来临的指令指明,该指令将回写其结果到一个结构寄存器,该结构寄存器已经是发出的但未结束的指令的目标时,数据处理器将阻塞。按照本发明,数据处理器可继续发出指令,直至其再命名缓存器占满。当前,扩大一个再命名缓存器比之去限制一个指令流中目的地寄存器的顺序要容易些。一个指令流中目的地寄存器的顺序例如可以由一个软件编译程序来限制。
容易看出,图1示明的是一个十分简化的并只是局部的数据处理器10。为了较清晰地说明本发明,对于本技术领域内周知的以及与本发明不直接相关的数据处理器10中的那些部分,都省略了。
数据处理器10是这样一类数据处理器的一个例子,即通过向多个执行单元调度多个指令,数据处理器10能同时执行多条指令。然而,数据处理器10要求将其各执行单元产生的各个结果以这样一种次序回写各结构寄存器,该次序对应于产生出各结果的指令在原始指令流中出现的次序。例如,原始指令流中的第一条指令必须在其它指令回写之前先回写到结构寄存器堆16中它的指定寄存器内。原始指令流中的第二条指令必须只当第一条指令回写到结构寄存器堆16中后才回写到结构寄存器堆16中它的指定寄存器内,如此等等。如果一系列指令中各条指令需要不一致的时间长度来完成,如果各条指令以不同的次序开始执行,又或者两者兼而有之,则可能难在保证该系列指令的回写次序。
再命名缓存器14在它能将各结果按规定的次序传送到结构寄存器堆16中的一个结构寄存器内之前,一直接收和存储执行单元12给出的结果。这个控制是由数据处理器10中一般称为“定序器”或其它类中以名称的另一部分(未示出)来提供出的。再命名缓存器14也能够将对应于再命名缓存器14中请求结果之未来位置的一个请求结果或标识符直接传送到执行单元12。再命名缓存器14的这一传送特点允许执行单元12即使若再命名缓存器14尚未更新结构寄存器堆16,也能开始另一条指令。
图2示出图1中示明的再命名缓冲器14的一个方框图。再命名缓冲器14有许多个存储器单元35,它们都能运行于存储七个数据信息组/比特:一个再命名标识符信息组,一个结构寄存器堆标识符信息组,一个有效比特(可记作“V”),一个最新分配比特(此后简称为“MRA比特”),一个影子MRA比特,一个数据信息组,以及一个数据存在比特。数据处理器10发出的每条指令分配给一个存储器单元35。(如本技术领域内的人员所周知,某些指令可能不需要一个存储器单元35。)再命名缓存器14中的存储器单元数目可以调整,以补全一个具体数据处理器中并行指令执行的具体层级数。
再命名标识符信息组唯一地标识出分配给一条指令的具体存储器单元。再命名标识符不必需实际存储在一个存储器单元中。一般,一个存储器单元的地址将足以标识该存储器单元。这个信息组并不变化。
结构寄存堆标识符信息组对结构寄存器堆16中的结构寄存器进行标识,标明指令的结果最终将写入该结构寄厚器。当一个具体的存储器单元分配给一条具体指令时,结果寄存器堆标识符便写入进去。
有效比特指明,已对一条指令分配了存储器单元,即结构寄存器堆标识符信息组和MRA比特是有效的。当有关的数据信息组写入至规定的结构寄存器时,有效比特被置为“无效”。于是,该存储器单元可用来存储一个随后的结果。当该具体的存储器单元被分配给一条指令时,有效比特便置为“有效”。由有效比特实行的功能也可以例如由具有合适的控制电路的一个头部和尾部指示符来实行。于是,“有效”存储器单元便对应于那样一些存储器单元,它们的地址将小于头部指示符所指明的地址,而大于或等于尾部指示符所指明的地址。有效比特的如此实现法可由本技术领域内人员周知的某些运行约束来适当地给出。
MRA比特指明,具体的存储器单元35包含有或者将包含有由结构寄存器堆标识符信息组标识出的结构寄存器之再命名缓存器14内的最近拷贝。当一个存储器单元35在指令发出下被分配给一条具体的指令时,其MRA比特便置为“最新分配的”,而具有同一结构寄存器堆标识特征位符信息组的所有其它存储器单元的MR比特都被置为“非最新分配的”。对于其具有结构寄存器堆标识符不用于该指令发出的标识符的那些存储器单元,它们的MRA比特不作变更。有着同一结构寄存器堆标识符信息的各存储器单元将接收这样的结果,即目的地为结构寄存器堆16内之同一结构寄存器中的那些结果。然而,对于一个具体的结构寄存器,仅仅一个并且仅仅是最后的最新分配再命名缓存器中的存储器单元才会有逻辑1电平的MRA比特。
影子MRA比特在数据处理器10实行一个推测转移时存储MRA比特的拷贝。下面,将结合图5至图7较详细地说明该影子MRA比特。
数据信息组包含有一条有关指令的结果。
数据存在比特指明,该数据信息组可由另一条指令使用,并且该数据信息组可合格地回写入结构寄存器堆16。当一个具体的存储器单元35被分配给一条指令时,数据存在比特被置为“无效”;而当该具体的指令将其结果写入该存储器单元时,数据存在比特被置为“有效”。
回到图1,在运行中,执行单元12接收一条指令,它可以有一个或多个操作数,及一个或多个与此指令相关联的结果目的地。今后,为了说明方便,示例的指令将只有单个操作数,以及只需要单个结构寄存器的单个结果。
在指令调度上,数据处理器10的另一部分(未示出)对再命名缓存器14由的一个具体存储器单元进行分配,作为指令的结果的暂时目的地。再命名缓存器14中一个存储器单元的被分配,是依靠写入结构寄存器的名字;对此结构寄存器,在分配的存储器单元中的结构寄存器堆标识符信息组里最终地写入结果,其方法是将分配的存储器单元这再命名标识符传送到将实行比指令的执行单元中,并将有效比特、MRA比特和数据存在比特分别置为“有效”、“最新分配的”和“不存在”。同时,对于具有与分配的存储器单的那样同一结构寄存器堆标识符信息组的各存储器单元,它们所有的MRA比特都置为对应于“非最新分配的”的逻辑状态。(今后,有效比特、MRA比特和数据存在比特都是高电平有效,也即“有效”时有效比特为逻辑1电平,“数据不存在”时它对应于逻辑O电平,如此等等。)
定序器电路(未示出)或执行单元12将一个所需操作数的结构寄存器堆标识符分别经结果/请求标识符总线26和传送结果/请求总线32传送到再命名缓存器14和结构寄存器堆16。
根据一个操作数请求,有三种可能的结果:(1)操作数仅存留在结构寄存器堆16内的一个结构寄存器中;或(2)操作数存留在再命名缓存器14内的一个存储器单元中并是存在的;或(3)操作数存留在再命名缓存器14内的一个存储器单元中并是不存在的。在每种情况下,再命名缓存器14都实行一个比较,并将一个操作数、一个数据有效信号和一个再命名标识符传送到执行单元12去。实行比较中是将请求的结构寄存器堆标识符与具有着“有效”的有效比特和“最新分配的”的MRA比特定之每一个结构寄存器堆标识符信息组进行对比。操作数和数据有效信号是通过操作数总线20供出的。再命名标识符是通过标识符总线22供给执行单元12的。
可能性(1),操作数仅存留在结构寄存器堆16内的工作如下:
在此情况下,比较后产生出无相配的信息,也即再命名缓存器14内没有一个数据信息组要传送给所定名的结构寄存器。因此,再命名缓存器14向传送电路18指示信号“没命中”(相当于超高速缓冲存储器领域内同样的术语)。于是,传送电路18在操作数总线/ARF34上选择操作数存在,通过操作数总线20传送到执行单元12去。一方面再命名缓存器14实行看它的比较,另一方面结构寄存器堆16选择由结构寄存器堆标识符(该寄存器名字)标识的寄存器中所存储的值,并将该有关的数据值输出至操作数总线/ARF34。当结构寄存器堆16产生这数据时,数据有效信号总为“有效”。而与该配比的存储器单元相关联的再命名标识符信息组将由再命名缓存器14通过标识符总线22传送到执行单元12去。当数据有效信号对应于“操作数有效时,对于由再命名缓存器14供给出的再命名标识符,执行单元12将置之不顾。
可能性(2),操作数存留在再命名缓存器14中并且存在的工作如下:
在此情况下,再命名缓存器14中的一个或多个输入数与供给的操作数名字相配。所以,再命名缓存器14指示信号“命中”去往传送电路18。于是,传送电路18在操作数总线/RB28上选择操作数存在,通过操作数总线20传送到执行单元12去。然而,再命名缓存器14也将有效比特和MRA比特与对应于“有效”和“最新分配的”状态的逻辑状态进行比较。这可以保证,再命名缓存器14将数据值的最新分配的版本传送到执行单元12去。当再命名缓存器14中操作数请求“命中”时,与再命名缓存器14中选择的存储器单元相关联的数据存在比特便产生出数据有效信号。按照构成法,数据存在比特为逻辑电平时是指示出一个存在的操作数。对于由再命名缓存器14供给出的再命名标识符,执行单元12再又置之不顾。
可能性(3),操作数存贸在再命名缓存器14中并且不存在的工作如下:
在此情况下,也是再命名缓存器14中的一个或多个输入数与结构寄存器堆标识供给的操作数相配。所以,再命名缓存器14指示信号“命中”去往传送电路18。于是,传送电路18在操作数总线/RB28上选择操作数存在,通过操作数总线20传送到执行单元12去。再者,再命名缓存器14将具有着一个与请求的结构寄存器堆标识符相配的结构寄存器堆标识符信息组的数据信息组及一个电平有效比特和一个高电平RMA比特通过操作数总线/RB28传送到传送电路18去。然而,在此情况下,输入数据是假定为“不存在”的。所以,与再命名缓存器14选择的存储器单元相关联的数据存在比特包含有一个逻辑O状态。在一个无效数据信号(数据不存在)的情况下,执行单元12不理会传送的操作数,而是由执行单元12对传送到它这儿的再命名标识符进行闩锁。
在随后的一个时钟周期期间,执行单元12监测结果总线24和结果/请求标识符总线26。这个过程称为“窥探”。一个第二执行单元将最终返回一个结果,那是个所需的操作数,并带有与该操作数有关的再命名特征位符。第二执行单元将通过结果总线24和结果/请求标识符总线26向再命名缓存器14分别传送出操作数和再命名标识符。执行单元12则能依靠结果/请求标识符总线26上的再命名标识符识别出此操作数,并能闩锁该操作数,与此同时,再命名缓存器14闩锁住该操作数和再命名标识符。
图3至图7示出在各个顺序时间上图2中示明的再命名缓存器14里的内容。在这些示出的例子中,再命名缓存器14有着标号为A至G的七个存储器单元,它们对八个结构寄存器存储八个数据信息组中的八个结果;为避免混淆,对此标号以0至7。实际上,七个存储器单元和八个结构寄存可由二进制数来标识。图3至图7中空白的输入数表明,该信息组值与这里的讨论无关。
图3上示出存储器单元A、B、C已分配给三条指令之后图2中示明的再命名缓存器14里的内容。存储器单元A的数据信息组已包含有一条指令的结果(数据存在比特征置于逻辑1状态),它将写入结构寄存器#4。存储器单元B和C的数据信息组将包含两条指令的结果,它们将分别写入结构寄存器#5和#7。因为两个相应的数据存在比特为逻辑O状态,所以表明这后两条指令还未完成。所有三个存储器单元的MRA比特反映出,它们每一个是或者即将是某一个结构寄存器(这里为结构寄存器#、#5和#7)的最新版本。存储器单元D至G由它们各自存储器单元中有效比特为逻辑O状态指出,它们不是有效的。
图4示出在附加的一个存储器单元即存储器单元D已分配给某条指令之后图2中示明的再命名缓存器14里的内容。就象与存储器单元A相关联的指令那样,此附加的一条指令将写入结构寄存器#4。在指令发出时,存储器单元D的MRA比特置为逻辑1状态,而存储器单元A的MRA比特置为逻辑O状态。结果,对于请求结构寄存器#4之内容的任一条更后面的指令,取决于存储器单元D的数据存在比特情况,该条指令接收一牟将是存储器单元D的数据信息组成再命名标识符信息组。在图4中所示的状态时刻,与存储器单元D相关联的指令的结果还未运算完成。在那种情况下,再命名缓存器14将向请求结构寄存器#4的任一个执行单元传送出再命名标识符信息组。
再命名缓存器14可予以修改以工作在支持推测转移的一个数据处理器内。能实现一种推测转移方案的数据处理器是这样一个处理器,在该数据处理器实际判定所选择的指令流是否事实上是正确的指令流之前,它将两个(或多个)可能的指令流之一进行转移。如果该数据处理器稍后判定新的指令流是正确的,它将循着其新的指令流接续运行。然而,如果该数据处理器判定为它“猜测”得不正确,则它将停止沿选择路径发出指令。然后,该数据处理器将尝试去反转沿不正确路径发出的指令的影响,并沿正确的路径发出指令。应该理解到,可能的指令流之一或是可串行地随着第一个指令流,或是会要求跳转至软件中的一个不同点上。推测转移特性示明在下面的图5至图7中。
图5示出,结合上面图3和图4所示在发出四条指令之后,如果数据处理器10进行一推测转移,图2中示明的再命名缓存器14里的内容情况。再命名缓存器14将每个MRA比特的拷贝保存在与每个MRA比特相关联的影子MRA比特中。具体地,存储器单元A的影子MRA比特等于存储器单元A的MRA比特,存储器单元B的影子MRA比特等于存储器单元B的MAR比特,如此等等。
图6示出数据处理器10从新的指令流中发出一条指令之后图2中示明的再命名缓存器14里的内容。这其次一条指令分配给存储器单元E,并将写入结构寄存器#5。结果,再命名缓储器14将存储器单元B的MRA比特置为逻辑O状态,以反映出存储器单元E将包含结构寄存器#5的最新分配的版本。其它的影子MRA比特都不变更。
当数据处理器10推测地作转移时,如果它“猜测”出正确的指令路径,则数据处理器10将循着该同一个指令流接续运行。再命名缓存器14将不顾及其各个影子MRA比特,直至数据处理器10进行第二次推测转移时为止。在那个时刻,再命名缓存器14再次将各MRA比特拷贝入各影子MRA比特,改写图6中示明的矢量。然而,如果数据处理器10猜测不正确,则再命名缓存器14将各影子MRA比特拷贝回到各有关的MRA比特中。再命名缓存器14,或者也许是数据处理器10的一个转移单元,亦将使沿着不正确指令流路径的所有指令为无效的。
图7示出,在数据处理器10判定为它随从着一个不正确的指令流后,图2中示明的再命名缓存器14里的内容情况。再命名缓存器14使存储器单元E为无效,并将影子MRA比特的内容拷贝回MRA比特。在现在的示例中,在数据处理器10判定出跟随正确的指令流之前,只发出了一条指令。所以,只有一个存储器单元需使之无效,并只有一个MRA比特需要复原。然而,不正确地发出的指令给定为任意条数时,本发明的方法也会产生出一样的结果。
每个存储器单元中影子RMA比特的数目可以增加,以支持多个层级的推测转移。例如,在数据处理器10判定第一个推测转移是否正确之前,可能希望数据处理器10能进行第二个推测转移。在这种情况下,对每个存储器单元可提供给一个第二影子MRA比特。根据第二个未完成的推测转称的执行,MRA比特的内容可存储入第二影子MRA比特中。然后,如果数据处理器的转移单元判定,第N个未完成的推测转移是不正确的(这里,N是个整数值),则再命名缓存器14将第N个影子MRA比特恢复入MRA比特。总之,对于所需的每一层级的推测转移,可提供给一个影子MRA比特。
图8示出可运行来实现本发明的一套步骤的一个流程图36。再命名缓存器14实行流程图36时每次向某个执行单元请求一个操作数。在步骤38中,再命名缓存器14将请求的操作数的结构寄存器堆标识符与再命名缓存器14中的每一个结构寄存器堆标识符信息进行比较,看有否相配的。然后,取决于再命名缓存器14终究找到一个相配的或找不到一个相配的信息组,再命名缓存器14将流程分别转移至路径40或路径42。对步骤38将在下面结合图9作较为充分地说明。
沿路径40进行时,在步骤44中,再命名缓存器14向传送电路18传送一个“命中”信号,以指明传送电路18应将由再命名缓存器14供给出的操作数传送到操作数总线20上。然后在步骤46中,再命名缓存器14将相配的再命名标识符信息组和数据信息组(如果有的话)以及数据存在信息组传送到执行单元12去。如上面所述,取决于数据存在信息组的值,执行单元12将不顾及这些信息组中的某一些。
沿路径42进行时,在步骤48中,再命名缓存器14向传送电路18传送一个“没命中”信号,以指明传送电路18应将由结构寄存器堆16供给出的操作数传送出去。取决于再命名缓存器14的工作细情,再命名缓存器14会或不会向执行无单元12传送任何别的数据。按照上述的协议,无论怎样地给定由结构寄存器堆16供给的有效数据信号,传送到执行单元12的任何数据都将被置之不顾。
然后,流程图36内的两条路径在流程图36的结束处汇合。
图9示出一套步骤的一个流程图,其运行可实现图8中示明的步骤38。在步骤50中,再命名缓存器14实行对标识符的比较。如上面所述,再命名缓存器14对下面两列信息组作对应的比较:(1)请求的操作数的标识符、一个逻辑1电平、一个逻辑1电平,(2)每个存储器单元35的结构寄存器堆标识符信息组、有效比特、RMA比特。然后,在步骤52中,取决于在步骤50中是否找到相配的信息组,再命名缓存器14转移至路径40或42。步骤50中进行比较的细情取决于再命名缓存器14中各存储器单元的硬件设备。例如,如果再命名缓存器14设计成一种小块的随机存取存储器(RMA)单元,则步骤50中会涉及一个迭代循环;在迭代循环中,依照一个变址计数器来寻址存储器单元,对存储器单元的内容进行比较,如果未找到相配的,则对变址计数器的地址加一个增量。与此相反,再命名缓存器14可以是一种小块的内容可寻址存储器(CAM)单元。如果再命名缓存器14是一块CAM单元,则每个CAM单元的内容可以与输入操作数相互并行地进行比较。具有着所需信息组的CAM单元将自动地输出其再命名标识符信息组、数据信息组和数据存在信息组。
图10示出一套步骤的一个流程图54,其运行可实现本发明。具体地,流程图54示明,再命名缓存器14如何能组合成上面结合图5至图7所说明的推测转移特性。在每个数据处理器时钟周期的开始,再命名缓存器14可执行图10中示出的各步骤。在步骤56中,再命名缓存器14判定,数据处理器10是否进行一个推测转移。如果数据处理器10已进行一个推测转移,则在步骤58中再命名缓存器14将每个MRA比特拷贝至有关的影子MRA比特中。然后,流程图54进入步骤60。如果数据处理器10未进行一个推测转移,则再命名缓存器14从步骤56直接进入步骤60。
然后,在步骤60中,再命名缓存器14判定,是否有一个数据处理器指明,数据处理器10跟随了一个不正确的指令流。如果数据处理器10确实跟随一个不正确的指令流,则在步骤62中,再命名缓存器14使得与一条指令相关联的每个有效比特成为无效化,而该条指令是指跟随于推测转移指令之后的指令。在步骤64中,再命名缓存器14还将每个影子MRA比特拷贝回对应的MRA比特中。然后,再命名缓存器14进入流程图54的结束处。如果数据处理器10并未跟随一个不正确的指令流,则再命名缓存器14从步骤60直接进入流程图54的结束处。
A.权利要求4的数据处理器,其中,许多存储器单元中的每一个还包含有一个有效(V)比特和一个数据存在(DATA PRESENT)比特,有效比特代表第一逻辑状态中的一个有效标识符,数据存在比特代表第一逻辑状态中的一个有效接收结果,和其中选择的接收结果包含有一个结构寄存器堆标识符(ARCHITECTURAL REG-ISTER FILE TAG)、一个有效比特、一个第一最新分配比特和一个数据存在比特,逻辑状态上分别对应于结构寄存器中第一选择的一个结构寄存器、有效比特的第一逻辑状态、第一最新分配比特的第一逻辑状态和数据存在比特的第一逻辑状态。
B.权利要求3的数据处理器,其中,传送电路包含有标识符电路,以向各执行单元之一传送一个选择接收结果的地址(再命名标识符,RENAME TAG)。
C.上述B项所述的数据处理器,其中,许多存储器单元中的每一个还包含有一个有效比特和一个数据存在比特,有效比特代表第一逻辑状态中的一个有效标识符,数据存在比特代表第一逻辑状态中的一个有效接收结果,又,其中选择的接收结果包含有一个结构寄存器堆特征住符、一个有效比特、一个第一最新分配比特和一个数据存在比特,逻辑状态上分别对应于结构寄存器中第一选择的一个结构寄存器、有效比特的第一逻辑状态、第一最新分配比特的第一逻辑状态和数据存在比特的第一逻辑状态。
D.权利要求3的数据处理器,其中,许多存储器单元中的每一个还包含有一个有效比特和一个数据存在比特,有效比特代表第一逻辑状态中的一个有效标识符,数据存在比特代表第一逻辑状态中的一个有效接收结果,又,其中选择的接收结果包含有一个结构寄存器堆标识符、一个有效比特、一个第一最新分配比特和一个数据存在比特,逻辑状态上分别对应于结构寄存器中第一选择的结构寄存器、有效比特的第一逻辑状态、第一最新分配比特的第一逻辑状态和数据存在比特的第一逻辑状态。
E.权利要求7的数据处理器,其中,各存储器装置中的每一个包含有一个与各第一最新分配比特中之每一个相关联的第二是新分配比特(影子MRA,SHADOW MRA),又,其中和其中分配装置的运行,可根据一个预定的条件将每个第一最新分配比特存储入一个相关的第二最新分配比特位置。
F.上述E项所述的数据处理器,其中,该预定条件是一个推测转移指令。
G.上述F项所述的数据处理器,其中,传送装置包含有标识符装置,用以传送一个与选择的结果相关联的存储器装置地址(再命名特征位符,REN AME TAG)。
H.权利要求7的数据处理器,其中,传送装置包含有标识符装置,用以传送一个与选择的结果相关联的存储器装置地址。
I.权利要求8的方法,还包括以下步骤:
从数据处理器内的一条通信总线上接收一个结果;和存储所接收的结果。
J.上述I项所述的方法,还包括以下步骤:
接收一个请求的结果的标识符;
将该接收的标识符和一个第一逻辑状态分别与每个标识符组和第一最新分配比特进行比较;
根据该比较步骤,传送出与一个得出的标识符组相关联的一个结果以及第一最新分配比特。
K.上述J项所述的方法,还包括以下步骤:
向数据处理器内的一个执行单元发出一条推测转移指令(56);和
在一个有关的第二最新分配比特位置中存储入每个第一最新分配比特(58)。
L.上述I项所述的方法,还包括以下步骤:
向数据处理器内的一个执行单元发出一条推测转称指令(56);和
在一个有关的第二最新分配比特位置中存储入每个第一最新分配比特(58)。
虽然,参照一个具体实施例已说明了本发明,但本技术领域内的熟练技术人员可作出进一步的变更和改进。例如,归属于上面数据处理器10中一具体部分的许多功能,可以由一个特定的数据处理器的不同部分来实行。所以,实行一项必需功能的单元之名字或者在一组单元中工作的区划,不是本发明的要素。因此,应该理解到,本发明包罗了所有此类变更,它们均偏离不开所附权利要求书中规定的本发明的精神和范围。
Claims (8)
1、一种数据处理器(10),其特征在于包括:
许多执行单元(12),所述执行单元可运行来实行一个指令集,该指令集中至少有一条指令需要一个操作数,该指令集中至少有一条指令产生一个结果;
与至少一个执行单元相连接的许多结构寄存器(16),所述结构寄存器定期地从产生一个结果的至少一条指令那里接收该结果;和
与诸如执行单元中至少一个以及与许多结构寄存器相连的一个再命名缓存器(14),所述再命名缓存器定期地对产生个结果的至少一条指令来的结果进行接收和存储,每个接收的结果是与诸结构寄存器中选择的一个结构寄存器相关联的,再命名缓存器定期地从请求一个操作数的至少一条指令那里接收关于操作数的请求,所请求的操作数是与诸结构寄存器中第一选择的结构寄存器相关联的,再命名缓存器可运行来向请求的执行单元传送一个接收的结果,所传送的接收结果出自一组接收结果,该组接收结果中的每一个接收结果是与诸如结构寄存器中第一选择的结构寄存器相关联的。
2、根据权利要求1的数据处理器,其特征在于,再命名缓存器还包括:
许多存储器单元(35),每个存储器单元可运行来存储接收的结果、一个表片与该接收结果相关联的结构寄存器堆标识符及一个与该接收结果相关联的第一最新分配比特(MRA);和
与许多存储器单元相连接的传送电路(14,18),该传送电定定期地接收对结构寄存器之一作出标识的一个第一标识符,将该标识符存储入存储器单元中预定的一个存储器单元内,将与存储器单元之中该预定的一个存储器单元相关联的第一最新分配比特置位于第一逻辑状态,将一个存储器单元子集中的每一个最新分配比特置位于第一逻辑状态,该存储器单元子集内的每个存储器单元包含有一个第二标识符,它逻辑上等价于所述存储器单元中预定的一个存储器单元的第一标识符,和传送电路向执行单元之一传送一个选择的接收结果。
3、根据权利要求2的数据处理器,其特征在于,每个存储器单元包含有珍上与第一第一最新分配比特相关联的第二最新分配比特(SHADOW MRA),和其中传送电路的运行可根据一个预定的条件,将每个第一最新分配比特存储入一个相关的第二最新分配比特位置中。
4、根据权利要求3的数据处理器,其特征在于,所述预定条件是一个推测转移指令。
5、根据权利要求4的数据处理器,其特征在于,传送电路包含有标识符电路,以向执行单元之一传送一个选择的接收结果的地址(再命名标识符,RENAE TAG)。
6、根据权利要求5的数据处理器,其特征在于,许多存储器单元的每一个还包含有一个有效比特和一个数据存在比特,有效比特代表第一逻辑状态中的一个有效标识符,数据存在在比特代表第一逻辑状态中一个有效的接收结果,和其中选择的接收结果包含有一个结构寄存器堆标识符、一个有效比特、一个第一最新分配比特和一个数据存在比特,逻辑状态上分别对应于结构寄存器中第一选择的结构寄存器、有效比特的第一逻辑状态、第一最新分配比特的第一逻辑状态和数据存在比特的第一逻辑状态。
7、一种数据处理器(10),其特征在于包括:
许多执行单元(12),所述执行单元可运行来实行一个指令集,该指令集之各指令中至少有一条指令需要一个操作数,该指令集之指令中至少有一条指令产生一个结果;
与所述执行单元中至少一个执行单元相连接的许多结构寄存器(16),所述结构寄存定期地从产生一个结果的至少一条指令那里接收该结果;
许多存储器装置(35),每个存储器可运行来存储一个结果(DATA)、一个表片与该接收结果相关联的结构寄存器堆标识符及一个与该接收结果关联的第一最新分配比特(MRA);
与执行单元中至少一个执行单元以及与许多存储器装置相连接的分配装置(14,18),所述分配装置定期地接收一个时一结构寄存器作出标识的第一标识符,将该第一标识符存储入所述存储器装置中预定的一个存储器装置里,将与存储器装置中该预定的存储器装置相关联的第一最新分配比特置位于第一逻辑状态,将一个存储器单元子集中的每个第一最新分配比特置位于第二逻辑状态,该存储器单元子集包含有一个标识符,它逻辑上等价于所述第一标识符;和
与所述执行单元中至少一个执行单元以及与许多存储器装置相连接的传送装置(14,18),该传送装置向请求一个操作数的执行单元传送一个选择的结果,该操作数是与结构寄存器中的第一结构寄存器相关联的,选择的结果与存储器装置之一相关联,每个存储器装置包含有一个标识特征位符和一个第一最新分配比特,逻辑状态上分别对应于结构寄存器中的第一结构寄存器和第一最新分配比特的第一逻辑状态。
8、一种数据处理器的工作方法,其特征在于包括以下步骤:
在第一个时间上,在第一存储器单元中存储第一标识符和第一最新分配比特,作为许多组数据中的第一组数据,第一存储器单元是许多存储器单元中的一个,第一标识符识别与第一结果相关联的第一存储器单元的一个地址,第一最新分配比特与该第一结果相关联,该第一最新分配比特设定第一逻辑状态;
在随后的第二个时间上,在第二存储器单元中存储第二标识符和第二个第一最新分配比特,作为许多组数据中的第二组数据,第二存储器单元是许多存储器单元中的一个,第二标识符识别与第二结果相关联的一个存储器单元的地址,而第二个第一最新分配比特与该第二结果相关联,该第二个第一最新分配比特设定第二逻辑状态,并将第二逻辑状态存储入第一最新分配比特的一个子集,与第一最新分配比特的该子集关联的每一个标识符在逻辑上等价于该第二标识符。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US025,453 | 1993-03-03 | ||
US08/025,453 US5493669A (en) | 1993-03-03 | 1993-03-03 | Data processor for simultaneously searching two fields of the rename buffer having first and second most recently allogated bits |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1095506A true CN1095506A (zh) | 1994-11-23 |
Family
ID=21826155
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN94102516A Pending CN1095506A (zh) | 1993-03-03 | 1994-02-25 | 具有最新分配比特的数据处理器及其操作方法 |
Country Status (6)
Country | Link |
---|---|
US (1) | US5493669A (zh) |
EP (1) | EP0614138A1 (zh) |
JP (1) | JPH06259253A (zh) |
KR (1) | KR940022250A (zh) |
CN (1) | CN1095506A (zh) |
TW (1) | TW255023B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102103673A (zh) * | 2009-12-16 | 2011-06-22 | 英特尔公司 | 在隐藏执行环境中提供完整性验证和证明 |
Families Citing this family (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5784589A (en) * | 1993-10-18 | 1998-07-21 | Cyrix Corporation | Distributed free register tracking for register renaming using an availability tracking register associated with each stage of an execution pipeline |
JP3699518B2 (ja) * | 1995-01-26 | 2005-09-28 | サン マイクロシステムズ インコーポレイテッド | パイプライン・プロセッサ内において、誤って予測された実行分岐後にアネックス内のヤング・ビットを回復する方法及び装置 |
US5675759A (en) * | 1995-03-03 | 1997-10-07 | Shebanow; Michael C. | Method and apparatus for register management using issue sequence prior physical register and register association validity information |
US5664120A (en) * | 1995-08-25 | 1997-09-02 | International Business Machines Corporation | Method for executing instructions and execution unit instruction reservation table within an in-order completion processor |
US5809324A (en) * | 1995-12-07 | 1998-09-15 | Sun Microsystems, Inc. | Multiple instruction dispatch system for pipelined microprocessor without branch breaks |
US6108769A (en) | 1996-05-17 | 2000-08-22 | Advanced Micro Devices, Inc. | Dependency table for reducing dependency checking hardware |
US6131156A (en) * | 1996-05-31 | 2000-10-10 | Hewlett-Packard Company | Optimized storage system and method for a processor that executes instructions out of order |
DE69736404T2 (de) * | 1997-08-06 | 2007-03-08 | Advanced Micro Devices, Inc., Sunnyvale | Abhängigkeitstabelle zum reduzieren von hardware zur überprüfung von abhängigkeiten |
US5961636A (en) * | 1997-09-22 | 1999-10-05 | International Business Machines Corporation | Checkpoint table for selective instruction flushing in a speculative execution unit |
US6539471B2 (en) * | 1998-12-23 | 2003-03-25 | Intel Corporation | Method and apparatus for pre-processing instructions for a processor |
US6910123B1 (en) * | 2000-01-13 | 2005-06-21 | Texas Instruments Incorporated | Processor with conditional instruction execution based upon state of corresponding annul bit of annul code |
US6968447B1 (en) * | 2001-04-13 | 2005-11-22 | The United States Of America As Represented By The Secretary Of The Navy | System and method for data forwarding in a programmable multiple network processor environment |
US6807586B2 (en) * | 2002-01-09 | 2004-10-19 | International Business Machines Corporation | Increased computer peripheral throughput by using data available withholding |
US7046687B1 (en) * | 2002-01-16 | 2006-05-16 | Tau Networks | Configurable virtual output queues in a scalable switching system |
US7107438B2 (en) * | 2003-02-04 | 2006-09-12 | Via Technologies, Inc. | Pipelined microprocessor, apparatus, and method for performing early correction of conditional branch instruction mispredictions |
US7100024B2 (en) * | 2003-02-04 | 2006-08-29 | Via Technologies, Inc. | Pipelined microprocessor, apparatus, and method for generating early status flags |
US7185182B2 (en) * | 2003-02-04 | 2007-02-27 | Via Technologies, Inc. | Pipelined microprocessor, apparatus, and method for generating early instruction results |
US7263577B2 (en) * | 2005-03-03 | 2007-08-28 | Qualcomm Incorporated | Power saving methods and apparatus to selectively enable comparators in a CAM renaming register file based on known processor state |
US7508396B2 (en) | 2005-09-28 | 2009-03-24 | Silicon Integrated Systems Corp. | Register-collecting mechanism, method for performing the same and pixel processing system employing the same |
US7820483B2 (en) | 2007-02-02 | 2010-10-26 | International Business Machines Corporation | Injection molded soldering process and arrangement for three-dimensional structures |
US7904697B2 (en) * | 2008-03-07 | 2011-03-08 | International Business Machines Corporation | Load register instruction short circuiting method |
US8966230B2 (en) * | 2009-09-30 | 2015-02-24 | Intel Corporation | Dynamic selection of execution stage |
US8914617B2 (en) * | 2009-12-26 | 2014-12-16 | Intel Corporation | Tracking mechanism coupled to retirement in reorder buffer for indicating sharing logical registers of physical register in record indexed by logical register |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4521851A (en) * | 1982-10-13 | 1985-06-04 | Honeywell Information Systems Inc. | Central processor |
US4731739A (en) * | 1983-08-29 | 1988-03-15 | Amdahl Corporation | Eviction control apparatus |
US4631660A (en) * | 1983-08-30 | 1986-12-23 | Amdahl Corporation | Addressing system for an associative cache memory |
US4903196A (en) * | 1986-05-02 | 1990-02-20 | International Business Machines Corporation | Method and apparatus for guaranteeing the logical integrity of data in the general purpose registers of a complex multi-execution unit uniprocessor |
US4991090A (en) * | 1987-05-18 | 1991-02-05 | International Business Machines Corporation | Posting out-of-sequence fetches |
US4901233A (en) * | 1987-07-20 | 1990-02-13 | International Business Machines Corporation | Computer system with logic for writing instruction identifying data into array control lists for precise post-branch recoveries |
US5134561A (en) * | 1987-07-20 | 1992-07-28 | International Business Machines Corporation | Computer system with logic for writing instruction identifying data into array control lists for precise post-branch recoveries |
US5003462A (en) * | 1988-05-31 | 1991-03-26 | International Business Machines Corporation | Apparatus and method for implementing precise interrupts on a pipelined processor with multiple functional units with separate address translation interrupt means |
US5226126A (en) * | 1989-02-24 | 1993-07-06 | Nexgen Microsystems | Processor having plurality of functional units for orderly retiring outstanding operations based upon its associated tags |
US5185868A (en) * | 1990-01-16 | 1993-02-09 | Advanced Micro Devices, Inc. | Apparatus having hierarchically arranged decoders concurrently decoding instructions and shifting instructions not ready for execution to vacant decoders higher in the hierarchy |
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 |
-
1993
- 1993-03-03 US US08/025,453 patent/US5493669A/en not_active Expired - Fee Related
- 1993-12-15 TW TW082110649A patent/TW255023B/zh active
- 1993-12-23 EP EP93120761A patent/EP0614138A1/en not_active Withdrawn
-
1994
- 1994-02-25 CN CN94102516A patent/CN1095506A/zh active Pending
- 1994-02-28 KR KR1019940003707A patent/KR940022250A/ko not_active Application Discontinuation
- 1994-03-01 JP JP6054845A patent/JPH06259253A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102103673A (zh) * | 2009-12-16 | 2011-06-22 | 英特尔公司 | 在隐藏执行环境中提供完整性验证和证明 |
Also Published As
Publication number | Publication date |
---|---|
EP0614138A1 (en) | 1994-09-07 |
TW255023B (zh) | 1995-08-21 |
KR940022250A (ko) | 1994-10-20 |
US5493669A (en) | 1996-02-20 |
JPH06259253A (ja) | 1994-09-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1095506A (zh) | 具有最新分配比特的数据处理器及其操作方法 | |
CN1053508C (zh) | 超标量计算机 | |
CN1047245C (zh) | 采用独立存取中间存储器的超标量处理器系统中加强指令调度的方法和系统 | |
CN1292370C (zh) | 从源系统复制信息到目标系统的方法 | |
CN1188932A (zh) | 多线程处理器中指令和关联读取请求的后台完成 | |
US5465373A (en) | Method and system for single cycle dispatch of multiple instructions in a superscalar processor system | |
US6223342B1 (en) | Object-oriented sequencing using hierarachical configuration streams | |
CN1324460C (zh) | 用最近条目队列补充分支目标缓冲器的方法和系统 | |
CN1329304A (zh) | 基于寄存器地址环绕式处理的提前装载地址表项目无效 | |
CN1411575A (zh) | 处理有序数据请求到存储器 | |
CN86102662A (zh) | 输入/输出控制系统 | |
US5491829A (en) | Method and system for indexing the assignment of intermediate storage buffers in a superscalar processor system | |
CN102084357B (zh) | 检索装置以及检索方法 | |
CN1390329A (zh) | 控制使用动态反馈的指令转换 | |
CN1862495A (zh) | 用于在执行被转换指令时维持环境的方法和装置 | |
CN1140869C (zh) | 一种环绕式缓冲器以及在其中确定项目顺序优先级的方法 | |
CN1328659C (zh) | 具有共享存储器的改进结构 | |
CN1499379A (zh) | 针对异构体系结构的在集成可执行程序内进行覆盖管理的方法和设备 | |
JPS62113234A (ja) | レコ−ドセツト分類方法 | |
US7403944B2 (en) | Reduced comparison coordinate-value sorting process | |
CN1041566C (zh) | 超标量处理器系统中分配和执行非顺序指令的方法和系统 | |
CN1829200A (zh) | 用于在网络处理器中记帐的装置和方法 | |
CN1226023A (zh) | 加载/加载检测和重定序方法 | |
CN1258716C (zh) | 片内多处理器局部cache一致性的双环监听方法 | |
CN1306394C (zh) | 有限游程转移预测的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C01 | Deemed withdrawal of patent application (patent law 1993) | ||
WD01 | Invention patent application deemed withdrawn after publication |