[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

JP3446658B2 - Processor and its performance evaluation method - Google Patents

Processor and its performance evaluation method

Info

Publication number
JP3446658B2
JP3446658B2 JP14781599A JP14781599A JP3446658B2 JP 3446658 B2 JP3446658 B2 JP 3446658B2 JP 14781599 A JP14781599 A JP 14781599A JP 14781599 A JP14781599 A JP 14781599A JP 3446658 B2 JP3446658 B2 JP 3446658B2
Authority
JP
Japan
Prior art keywords
full
processor
buffer
instruction
fullness
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 - Lifetime
Application number
JP14781599A
Other languages
Japanese (ja)
Other versions
JP2000339158A (en
Inventor
忠明 宮田
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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP14781599A priority Critical patent/JP3446658B2/en
Publication of JP2000339158A publication Critical patent/JP2000339158A/en
Application granted granted Critical
Publication of JP3446658B2 publication Critical patent/JP3446658B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)

Description

【発明の詳細な説明】Detailed Description of the Invention

【0001】[0001]

【発明の属する技術分野】本発明は、プログラム中での
命令の出現順序によらずに命令を実行させる機能を備え
たプロセッサ及びその性能評価方法に関する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a processor having a function of executing instructions regardless of the order in which the instructions appear in a program, and a performance evaluation method thereof.

【0002】[0002]

【従来の技術】従来より、単一命令列を処理するパイプ
ラインプロセッサの処理性能を向上させるために、例え
ば、特開平8−283289号公報や特開平7−182
160号公報などにおいて、同時に複数の命令を実行す
るスーパースカラ方式や、命令の発行順序を変えて実行
する Out of Order命令発行方式のプロセッサが提案さ
れている。
2. Description of the Related Art Conventionally, in order to improve the processing performance of a pipeline processor that processes a single instruction sequence, for example, Japanese Patent Application Laid-Open No. 8-283289 and Japanese Patent Application Laid-Open No. 7-182.
In JP-A No. 160, etc., a processor of a superscalar method for executing a plurality of instructions at the same time or an Out of Order instruction issuing method for executing the instructions in different order is proposed.

【0003】このような方式のプロセッサは、命令をそ
のプログラム中での出現順序によらずに実行することが
できるように、リザベーションステーションやリオーダ
バッファを備えており、命令デコーダがデコードした命
令に関する情報をリザベーションステーションやリオー
ダバッファに登録する。そして、リザベーションステー
ションまたはリオーダバッファに登録された情報に基づ
いて、最も効率よくプログラムを処理できる順序で各命
令を実行していく。
A processor of such a system is provided with a reservation station and a reorder buffer so that instructions can be executed regardless of the order of appearance in the program, and information on the instructions decoded by the instruction decoder is provided. To the reservation station or reorder buffer. Then, based on the information registered in the reservation station or the reorder buffer, the respective instructions are executed in the order in which the program can be processed most efficiently.

【0004】しかしながら、このようなプロセッサで実
行する命令で同一オペランドに対するアクセスが連続す
る場合、特に演算時間の長い命令の後に同一のオペラン
ドを参照する命令が続いた場合や、或いは分岐命令が発
行されてから分岐先が確定するまでのレイテンシが長い
場合は、リザベーションステーションやリオーダバッフ
ァが満杯となって後続の命令に関する情報の登録が不可
能となる。このような状態が発生すると、命令の Out o
f Order実行や投機実行ができなくなり、プロセッサの
処理性能を生かすことができなくなる。
However, in the case where the instructions executed by such a processor continuously access the same operand, particularly when an instruction having a long operation time is followed by an instruction referencing the same operand, or a branch instruction is issued. If the latency from the determination of the branch destination to the determination of the branch destination is long, the reservation station and the reorder buffer become full, and it becomes impossible to register information on the subsequent instruction. When this occurs, the instruction Out o
f Order execution and speculative execution cannot be performed, and the processing performance of the processor cannot be utilized.

【0005】[0005]

【発明が解決しようとする課題】ところが、従来のプロ
セッサでは、このような状態の発生を把握し、その原因
を究明することで Out of Order実行や投機実行を有効
に行わせるための有効な対策手段がなかった。すなわ
ち、従来は、上記のような状態の発生を見つけるために
プログラムのソースリストを頼りに解析を行っていた
が、プログラムのソースリストからプロセッサが実際に
どのように命令列を処理するのかを知るのが困難であっ
たため、上記のような状況を発生させる該当個所を特定
するのが困難であった。
However, in the conventional processor, by grasping the occurrence of such a state and investigating the cause, an effective measure for effectively executing Out of Order execution or speculative execution. There was no means. That is, in the past, analysis was performed by relying on the source list of the program in order to find out the occurrence of the above state, but from the source list of the program, it is possible to know how the processor actually processes the instruction sequence. It was difficult to identify the relevant location that causes the above situation.

【0006】また、従来のプロセッサは、リザベーショ
ンステーション或いはリオーダバッファが満杯になって
いるかどうかを調べる手段がなかったため、異なるプロ
グラム毎に命令の Out of Order実行や投機実行が有効
に行われているかどうかを調べることができず、当該プ
ロセッサでの投機実行の特性を性能評価するのが困難で
あった。
Further, since the conventional processor has no means for checking whether or not the reservation station or the reorder buffer is full, whether or not Out of Order execution or speculative execution of instructions is effectively performed for each different program. However, it was difficult to evaluate the performance of speculative execution in the processor.

【0007】本発明は、命令の出現順序に関わらない実
行が効率的に行われているかどうかという性能評価が可
能なプロセッサ、及びその性能を評価する方法を提供す
ることを目的とする。
It is an object of the present invention to provide a processor capable of performance evaluation as to whether or not execution is efficiently performed regardless of the order of appearance of instructions, and a method of evaluating the performance.

【0008】[0008]

【課題を解決するための手段】上記目的を達成するた
め、本発明の第1の観点にかかるプロセッサは、プログ
ラム中の命令をその出現順に関わらずに実行するために
記憶装置から取り出した命令に関する情報を一次記憶す
るバッファと、命令に関する情報を記憶することによ
り、前記バッファが満杯になっているかどうかを判定す
る満杯判定手段と、前記満杯判定手段が満杯と判定した
回数を計数する満杯回数計数手段と、前記満杯回数計数
手段が計数した回数に応じて、所定の満杯処理を行う満
杯処理手段とを備えることを特徴とする。
To achieve the above object, a processor according to a first aspect of the present invention relates to an instruction fetched from a storage device for executing an instruction in a program regardless of the order of appearance. A buffer for temporarily storing information, a fullness determination means for determining whether or not the buffer is full by storing information about an instruction, and a fullness number counting for counting the number of times the fullness determination means determines fullness. Means and a full processing means for performing a predetermined full processing according to the number of times the full-number counting means counts.

【0009】上記プロセッサでは、バッファが満杯とな
っている状態において、所定の満杯処理が行われる。こ
の満杯処理は、例えば、バッファが満杯となっている状
態を外部に示したり、プロセッサ内部のデータを外部に
出力させたりするものとすることができる。これによ
り、命令の出現順序に関わらない実行が効率的に行われ
ているかどうかという性能評価が可能となる。
In the above processor, a predetermined full process is performed while the buffer is full. This full processing can be, for example, externally indicating that the buffer is full or outputting data inside the processor to the outside. As a result, it becomes possible to evaluate the performance as to whether or not the execution is efficiently performed regardless of the order of appearance of the instructions.

【0010】なお、満杯回数計数手段が計数する満杯と
判定した回数とは、例えば、満杯と判定されている状態
で所定のクロック信号が入力された回数とすることがで
きる。また、満杯処理を行うまでの回数は、外部から設
定できるようにしてもよい。
The number of times the full-frequency counting means determines that the clock is full may be the number of times a predetermined clock signal is input while the full-frequency counter is determined to be full. Further, the number of times until the full process is performed may be set externally.

【0011】上記プロセッサにおいて、前記満杯判定手
段は、前記バッファが所定時間以上満杯になっていると
きに、前記バッファが満杯であると判定するものとして
もよい。
In the above processor, the fullness determination means may determine that the buffer is full when the buffer is full for a predetermined time or more.

【0012】上記プロセッサにおいて、前記満杯処理手
段は、例えば、前記プロセッサの動作を停止する手段を
備えるものとしてもよい。
In the above processor, the full processing means may include means for stopping the operation of the processor, for example.

【0013】この場合、上記プロセッサは、前記バッフ
ァに一次記憶されていた命令が発行されたとき、または
命令の実行が完了したときに、当該発行または完了した
命令に関する情報を登録する登録手段と、前記満杯処理
手段によってプロセッサの動作が停止されたときに、前
記登録手段に登録した命令に関する情報を外部に出力す
る手段をさらに備えるものとすることができる。
In this case, the processor includes registration means for registering information relating to the issued or completed instruction when the instruction temporarily stored in the buffer is issued or when the execution of the instruction is completed. It may further include means for outputting information regarding an instruction registered in the registration means to the outside when the operation of the processor is stopped by the full processing means.

【0014】上記プロセッサにおいて、前記満杯処理手
段は、また、前記プロセッサに対して所定の割り込みを
発生する手段を備えるものとしてもよい。
In the above processor, the full processing means may also include means for generating a predetermined interrupt to the processor.

【0015】この場合、上記プロセッサは、前記満杯処
理手段が前記プロセッサに対して割り込みを発生したと
きに、前記満杯判定手段と前記満杯回数計数回路との少
なくとも一方の動作状態を外部に出力する手段をさらに
備えるものとすることができる。
In this case, the processor outputs the operating state of at least one of the fullness determining means and the fullness counting circuit to the outside when the fullness processing means generates an interrupt to the processor. Can be further provided.

【0016】上記プロセッサにおいて、前記バッファ
は、各エントリが有効であるかどうかを示すエントリビ
ットを含むものとしてもよい。この場合、前記プロセッ
サは、前記バッファに含まれるすべてのエントリビット
の値を論理演算することにより、前記バッファが満杯で
あるかどうかを検出する検出手段をさらに備えるものと
することができ、前記満杯判定手段は、前記検出手段に
よる論理演算の結果に基づいて、前記バッファが満杯で
あるかどうかを判定するものとすることができる。
In the above processor, the buffer may include an entry bit indicating whether or not each entry is valid. In this case, the processor may further include detection means for detecting whether or not the buffer is full by logically operating the values of all entry bits included in the buffer. The determining means may determine whether or not the buffer is full based on the result of the logical operation by the detecting means.

【0017】なお、上記プロセッサにおいて、前記バッ
ファは、記憶装置から取り出された命令のデコード結果
を当該命令の実行が完了するまで保持するリオーダバッ
ファ、および/または記憶装置から取り出された命令の
デコード結果を当該命令が発行されるまで保持するリザ
ベーションステーションによって構成することができ
る。
In the above processor, the buffer is a reorder buffer that holds the decoding result of the instruction fetched from the storage device until the execution of the instruction is completed, and / or the decoding result of the instruction fetched from the storage device. Can be configured by a reservation station that holds the command until the instruction is issued.

【0018】上記目的を達成するため、本発明の第2の
観点にかかるプロセッサの性能評価方法は、プログラム
中の命令をその出現順に関わらず実行するために記憶装
置から取り出した命令に関する情報を一次記憶するバッ
ファを備えるプロセッサの性能評価方法であって、命令
に関する情報を記憶することにより、前記バッファが満
杯になっているかどうかを判定する満杯判定ステップ
と、前記満杯判定ステップで前記バッファが満杯である
と判定した回数に応じて、所定の処理を前記プロセッサ
に行わせる満杯制御ステップとを含むことを特徴とす
る。
In order to achieve the above object, a processor performance evaluation method according to a second aspect of the present invention is a method for temporarily executing information about an instruction fetched from a storage device for executing an instruction in a program regardless of the order of appearance. A method for evaluating the performance of a processor having a buffer for storing, wherein a full determination step of determining whether or not the buffer is full by storing information regarding an instruction, and the buffer being full in the full determination step A full control step of causing the processor to perform a predetermined process in accordance with the number of times it is determined to be present.

【0019】上記プロセッサの評価方法において、前記
満杯判定ステップは、前記バッファが所定時間以上満杯
になっているときに、前記バッファが満杯であると判定
するものとすることができる。
In the above processor evaluation method, the fullness determining step may determine that the buffer is full when the buffer is full for a predetermined time or more.

【0020】[0020]

【発明の実施の形態】以下、添付図面を参照して、本発
明の実施の形態について説明する。
BEST MODE FOR CARRYING OUT THE INVENTION Embodiments of the present invention will be described below with reference to the accompanying drawings.

【0021】図1は、この実施の形態にかかるプロセッ
サ全体の構成を示すブロック図である。図示するよう
に、このプロセッサは、命令キャッシュ101と、命令
デコーダ102と、リザベーションステーション103
と、リオーダバッファ104と、演算器105と、リネ
ーミングレジスタ106と、レジスタ107と、検出回
路109と、リオーダバッファフル判定回路110と、
リオーダバッファフルカウンタ回路111と、検出回路
112と、リザベーションステーションフル判定回路1
13と、リザベーションステーションフルカウンタ回路
114と、ハードウェア停止回路115と、割り込み/
例外処理回路116と、OR回路117、118と、命
令トレーサ119とを備えている。
FIG. 1 is a block diagram showing the overall configuration of the processor according to this embodiment. As shown, the processor includes an instruction cache 101, an instruction decoder 102, and a reservation station 103.
A reorder buffer 104, a computing unit 105, a renaming register 106, a register 107, a detection circuit 109, a reorder buffer full determination circuit 110,
Reorder buffer full counter circuit 111, detection circuit 112, reservation station full determination circuit 1
13, reservation station full counter circuit 114, hardware stop circuit 115, interrupt /
An exception processing circuit 116, OR circuits 117 and 118, and an instruction tracer 119 are provided.

【0022】命令キャッシュ101は、主記憶装置(図
示せず)に記憶されている命令の一部を記憶しておくた
めのバッファである。命令デコーダ102は、命令キャ
ッシュ101から読み出した命令をデコードし、そのデ
コード結果を含む当該命令に関する情報をリザベーショ
ンステーション103とリオーダバッファ104とに登
録する。
The instruction cache 101 is a buffer for storing a part of instructions stored in a main storage device (not shown). The instruction decoder 102 decodes the instruction read from the instruction cache 101, and registers information about the instruction including the decoded result in the reservation station 103 and the reorder buffer 104.

【0023】リザベーションステーション103は、登
録されている命令のうちで発行可能な命令を調べ、発行
可能な命令を登録された順序に関わらずに演算器105
に対して発行する。すなわち、リザベーションステーシ
ョン103は、Out of Order命令発行処理を行うもので
あり、登録されている命令同士のレジスタの依存関係を
調べ、他の命令との間にレジスタの依存関係のない命令
を発行可能な命令として判断する。なお、リザベーショ
ンステーション103に登録された命令に関する情報
は、当該命令が発行されることによって消去される。
The reservation station 103 checks an issuable instruction among the registered instructions, and the computing unit 105 does not depend on the order in which the issuable instructions are registered.
Issue to. That is, the reservation station 103 performs the Out of Order instruction issuing process, and can check the register dependency between the registered instructions and issue an instruction that has no register dependency with other instructions. It is judged as a command. The information regarding the command registered in the reservation station 103 is erased by the issuance of the command.

【0024】リオーダバッファ104は、分岐命令の出
現時に分岐予測をして投機実行される命令に関する情報
を記憶しておくためのバッファであり、命令デコーダ1
02によって登録された命令に関する情報と対応付け
て、投機実行中の命令で更新されたリネーミングレジス
タ106の番号などを記憶する。なお、リオーダバッフ
ァ104に登録された命令に関する情報は、分岐命令の
分岐先が確定して命令実行完了となったとき、或いは投
機実行された命令が無効化されたときに消去される。
The reorder buffer 104 is a buffer for storing information about an instruction that is speculatively executed by branch prediction when a branch instruction appears, and the instruction decoder 1
The information of the renaming register 106 updated by the instruction being speculatively executed is stored in association with the information about the instruction registered by 02. The information about the instruction registered in the reorder buffer 104 is erased when the branch destination of the branch instruction is determined and the instruction execution is completed, or when the speculatively executed instruction is invalidated.

【0025】演算器105は、受け取った命令に対して
必要なオペランドをリネーミングレジスタ106または
レジスタ107から取り出して演算を実行し、その演算
結果のデータをリネーミングレジスタ106またはレジ
スタ107に書き込む。リネーミングレジスタ106
は、投機実行中のレジスタ更新値を一時的に退避してお
くためのレジスタである。レジスタ107は、プログラ
ムから参照可能なレジスタである。
The arithmetic unit 105 extracts an operand required for the received instruction from the renaming register 106 or the register 107, executes the arithmetic operation, and writes the data of the arithmetic result into the renaming register 106 or the register 107. Renaming register 106
Is a register for temporarily saving the register update value during speculative execution. The register 107 is a register that can be referred to by a program.

【0026】検出回路109は、リオーダバッファ10
4に空きエントリがなくなった、すなわちリオーダバッ
ファ104が満杯となったことを検出し、リオーダバッ
ファフル信号121をリオーダバッファフル判定回路1
10に出力する。なお、検出回路109の詳細な構成に
ついては、後述する。
The detection circuit 109 includes a reorder buffer 10
4 detects that there are no free entries, that is, the reorder buffer 104 is full, and the reorder buffer full signal 121 is sent to the reorder buffer full determination circuit 1
Output to 10. The detailed configuration of the detection circuit 109 will be described later.

【0027】リオーダバッファフル判定回路110は、
検出回路109からリオーダバッファフル信号121を
一定クロック時間以上連続して受け取ったときに、リオ
ーダバッファ104が満杯であると判定し、満杯である
との判定結果としてリオーダバッファフル検出信号12
2をリオーダバッファフルカウンタ回路111に出力す
る。なお、リオーダバッファフル判定回路110の詳細
な構成については、後述する。
The reorder buffer full determination circuit 110 is
When the reorder buffer full signal 121 is continuously received for a fixed clock time or longer from the detection circuit 109, it is determined that the reorder buffer 104 is full, and the reorder buffer full detection signal 12 is determined to be full.
2 is output to the reorder buffer full counter circuit 111. The detailed configuration of the reorder buffer full determination circuit 110 will be described later.

【0028】リオーダバッファフルカウンタ回路111
は、リオーダバッファフル検出信号122を受け取った
回数をカウントし、そのカウントした値に従って割り込
み要求信号124やハードウェア停止要求信号123を
出力する。なお、リオーダバッファフルカウンタ回路1
11の詳細な構成については、後述する。
Reorder buffer full counter circuit 111
Counts the number of times the reorder buffer full detection signal 122 is received, and outputs the interrupt request signal 124 or the hardware stop request signal 123 according to the counted value. The reorder buffer full counter circuit 1
The detailed configuration of 11 will be described later.

【0029】検出回路112は、リザベーションステー
ション103が満杯になったことを検出する。リザベー
ションステーションフル判定回路113は、検出回路1
12により一定クロック期間以上満杯が検出されたとき
に、リザベーションステーション103が満杯であると
判定する。リザベーションステーションフルカウンタ回
路114は、リザベーションステーション103が満杯
であると判定された回数をカウントし、そのカウントし
た値に従って割り込み要求信号126やハードウェア停
止要求信号125を出力する。
The detection circuit 112 detects that the reservation station 103 is full. The reservation station full determination circuit 113 includes the detection circuit 1
When 12 indicates that the reservation station 103 is full for a certain clock period or more, it is determined that the reservation station 103 is full. The reservation station full counter circuit 114 counts the number of times that the reservation station 103 is determined to be full, and outputs an interrupt request signal 126 or a hardware stop request signal 125 according to the counted value.

【0030】ハードウェア停止回路115は、ハードウ
ェア停止要求信号123、125を受け取ったときに、
このプロセッサを含むハードウェアの通常の演算動作を
停止させる。
When the hardware stop circuit 115 receives the hardware stop request signals 123 and 125,
The normal arithmetic operation of the hardware including this processor is stopped.

【0031】割り込み/例外処理回路116は、割り込
み要求信号124、126を受け取ったときに、このプ
ロセッサに対して内部割り込みまたは例外を発生させ、
これが受け付けられると、所定の割り込み処理を行う。
なお、「例外」は、広義の意味で割り込みに含まれるの
で、「割り込み」というときは、「例外」を含むものと
する。
When the interrupt / exception processing circuit 116 receives the interrupt request signals 124 and 126, it causes an internal interrupt or exception to this processor,
When this is accepted, a predetermined interrupt process is performed.
Note that “exception” is included in an interrupt in a broad sense, and therefore “interrupt” includes “exception”.

【0032】OR回路117は、ハードウェア停止要求
信号123、125の論理和をとって、ハードウェア停
止回路115に供給する。OR回路118は、割り込み
要求信号124、126の論理和をとって、割り込み/
例外処理回路116に供給する。
The OR circuit 117 takes the logical sum of the hardware stop request signals 123 and 125 and supplies it to the hardware stop circuit 115. The OR circuit 118 takes the logical sum of the interrupt request signals 124 and 126 to generate an interrupt /
It is supplied to the exception processing circuit 116.

【0033】命令トレーサ119は、FIFO(First
In First Out)方式のバッファによって構成され、命令
が実際に発行された順序で、発行された命令に関する情
報を記憶していく。命令トレーサ119は、また、ハー
ドウェア停止要求信号123、125を受け取ったとき
に、その内容を外部に出力する。
The instruction tracer 119 has a FIFO (First
In First Out) buffer, it stores information about issued instructions in the order in which they were actually issued. When the instruction tracer 119 also receives the hardware stop request signals 123 and 125, it outputs their contents to the outside.

【0034】図2は、図1の検出回路109の構成を示
す図である。図2に示すように、リオーダバッファ10
4は、各エントリが有効か無効かを示すValid-bit20
1を有しており、検出回路109は、すべてのValid-bi
t201の論理積をとるAND回路202によって構成
される。検出回路109(AND回路202)は、すべ
てのエントリのValid-bit201が有効を示していると
きに、リオーダバッファフル信号121を出力する。
FIG. 2 is a diagram showing the configuration of the detection circuit 109 of FIG. As shown in FIG. 2, the reorder buffer 10
4 is a Valid-bit 20 indicating whether each entry is valid or invalid
1 and the detection circuit 109 has all Valid-bi
It is configured by an AND circuit 202 that takes the logical product of t201. The detection circuit 109 (AND circuit 202) outputs the reorder buffer full signal 121 when the Valid-bits 201 of all entries are valid.

【0035】図3は、図1のリオーダバッファフル判定
回路110の構成を示す図である。図3に示すように、
リオーダバッファフル判定回路110は、フル検出カウ
ント301と、フル検出カウンタ302と、比較器30
3と、カウントダウン回路304と、マルチプレクサ3
05と、セレクタ306とから構成されている。
FIG. 3 is a diagram showing the configuration of the reorder buffer full determination circuit 110 of FIG. As shown in FIG.
The reorder buffer full determination circuit 110 includes a full detection count 301, a full detection counter 302, and a comparator 30.
3, a countdown circuit 304, and a multiplexer 3
05 and a selector 306.

【0036】フル検出カウント301は、初期値の設定
が可能なフリップフロップによって構成され、どれくら
いのクロック時間だけリオーダバッファフル信号121
が入力されているときに、リオーダバッファ104が満
杯であるかと判断するために用いられる。フル検出カウ
ンタ302は、リオーダバッファ104がフル検出カウ
ント301に設定されたクロック期間だけ満杯であると
きに、リオーダバッファ104が満杯であると判断する
ために用いられるカウンタである。
The full detection count 301 is composed of a flip-flop whose initial value can be set, and how many clock times the reorder buffer full signal 121 is stored.
Is used to determine if the reorder buffer 104 is full. The full detection counter 302 is a counter used to determine that the reorder buffer 104 is full when the reorder buffer 104 is full for the clock period set in the full detection count 301.

【0037】比較器303は、フル検出カウンタ302
の内容を“all0”と比較し、一致する場合にフル検出
カウンタゼロ信号321を出力する。カウントダウン回
路304は、マルチプレクサ305によって選択されて
いるときに、クロックタイミング毎にフル検出カウンタ
302の値をカウントダウンさせる。
The comparator 303 has a full detection counter 302.
Is compared with "all0", and if they match, the full detection counter zero signal 321 is output. The countdown circuit 304, when selected by the multiplexer 305, counts down the value of the full detection counter 302 at each clock timing.

【0038】マルチプレクサ305は、リオーダバッフ
ァフル信号121が入力されている間は、カウントダウ
ン回路302を選択してフル検出カウンタ302をカウ
ントダウンさせ、リオーダバッファフル信号121が入
力されていないときは、フル検出カウント301を選択
してフル検出カウンタ302の値を初期化する。マルチ
プレクサ305は、また、フル検出カウンタゼロ信号3
21が入力されているときには、フル検出カウンタ30
2の値をホールドさせるための信号を選択する。
The multiplexer 305 selects the countdown circuit 302 to count down the full detection counter 302 while the reorder buffer full signal 121 is input, and when the reorder buffer full signal 121 is not input, the full detection is performed. The count 301 is selected to initialize the value of the full detection counter 302. The multiplexer 305 also receives the full detection counter zero signal 3
When 21 is input, the full detection counter 30
A signal for holding the value of 2 is selected.

【0039】セレクタ306は、リオーダバッファフル
信号121が入力されているときは比較器303から出
力されたフル検出カウンタゼロ信号321を、そうでな
いときは“0”を選択する。これにより、リオーダバッ
ファ104が一定時間満杯であるときに、リオーダバッ
ファフルカウンタ回路111にリオーダバッファフル検
出信号122が出力される。
The selector 306 selects the full detection counter zero signal 321 output from the comparator 303 when the reorder buffer full signal 121 is input, and selects "0" otherwise. As a result, when the reorder buffer 104 is full for a certain period of time, the reorder buffer full detection signal 122 is output to the reorder buffer full counter circuit 111.

【0040】図4は、図1のリオーダバッファフルカウ
ンタ回路111の構成を示す図である。リオーダバッフ
ァフルカウンタ回路111は、リオーダバッファ110
が満杯と判定された回数をカウントする回路と、割り込
みを発生させるタイミングをカウントする回路との二つ
に、概略として分けることができる。
FIG. 4 is a diagram showing the configuration of the reorder buffer full counter circuit 111 of FIG. The reorder buffer full counter circuit 111 includes a reorder buffer 110.
Can be roughly divided into a circuit that counts the number of times that is determined to be full and a circuit that counts the timing of generating an interrupt.

【0041】図4に示すように、リオーダバッファフル
カウンタ回路111は、前者の回路として、リオーダバ
ッファフルカウンタ403と、カウントアップ回路40
4と、ハード停止/割り込み発生カウント405と、比
較器406と、ハードウェア停止抑止407と、EIF
408と、セレクタ409と、NOT回路410と、A
ND回路411とを有している。一方、後者の回路とし
て、カウントダウン回路412と、マルチプレクサ41
3と、割り込みカウンタ414と、比較器415とを有
している。ハード停止/割り込み発生カウント405
は、後者の回路としても用いられている。
As shown in FIG. 4, the reorder buffer full counter circuit 111 includes a reorder buffer full counter 403 and a count-up circuit 40 as the former circuit.
4, hardware stop / interrupt occurrence count 405, comparator 406, hardware stop suppression 407, EIF
408, a selector 409, a NOT circuit 410, A
And an ND circuit 411. On the other hand, as the latter circuit, the countdown circuit 412 and the multiplexer 41 are provided.
3, an interrupt counter 414, and a comparator 415. Hardware stop / interrupt occurrence count 405
Is also used as the latter circuit.

【0042】リオーダバッファフルカウンタ403は、
ハード停止/割り込み発生カウント405に設定された
クロック期間だけリオーダバッファ104が満杯である
と判断されている場合に、ハードウェアを停止させるた
めに用いられるカウンタである。カウントアップ回路4
04は、セレクタ409によって選択されているとき
に、クロックタイミング毎にリオーダバッファフルカウ
ンタ403をカウントアップさせる。
The reorder buffer full counter 403 is
This counter is used to stop the hardware when it is determined that the reorder buffer 104 is full for the clock period set in the hardware stop / interrupt generation count 405. Count-up circuit 4
04, when selected by the selector 409, causes the reorder buffer full counter 403 to count up at each clock timing.

【0043】ハード停止/割り込み発生カウント405
は、初期値の設定が可能なフリップフロップによって構
成され、リオーダバッファフルカウンタ403の値がい
くつになったらハードウェアを停止させるか、割り込み
カウンタ414の値がいくつになったら割り込みを発生
するかを決定するために用いられる。
Hardware stop / interrupt generation count 405
Is configured by a flip-flop whose initial value can be set, and determines how many times the value of the reorder buffer full counter 403 stops the hardware and how many times the value of the interrupt counter 414 causes an interrupt. Used to make a decision.

【0044】比較器406は、リオーダバッファフルカ
ウンタ403の値とハード停止/割り込み発生カウント
405の値とを比較し、一致する場合にフルカウント一
致信号421を出力する。
The comparator 406 compares the value of the reorder buffer full counter 403 with the value of the hardware stop / interrupt occurrence count 405, and outputs a full count match signal 421 when they match.

【0045】ハードウェア停止抑止407は、初期設定
可能なフリップフロップで構成され、フルカウント一致
信号421が比較器406から出力されたときに、ハー
ドウェアを停止させるかどうかを決定する。ハードウェ
ア停止抑止407に設定された値は、NOT回路410
を介してAND回路411に入力されており、その設定
値が“1”であるときにはハードウェアの動作停止がな
く、“0”に設定されている場合のみ、ハードウェアの
動作が停止されるようになっている。
The hardware stop inhibition 407 is composed of a flip-flop that can be initialized, and determines whether or not to stop the hardware when the full count match signal 421 is output from the comparator 406. The value set in the hardware stop suppression 407 is the NOT circuit 410
It is input to the AND circuit 411 via, and the operation of the hardware is not stopped when the set value is “1”, and the operation of the hardware is stopped only when the set value is set to “0”. It has become.

【0046】EIF408は、AND回路411からハ
イレベル(値“1”)の信号が一旦出力されると、その
値をホールドして、ハードウェア停止要求信号123と
して、図1に示したハードウェア停止回路113と命令
トレーサ119とに出力する。
Once the high level (value "1") signal is output from the AND circuit 411, the EIF 408 holds the value and outputs it as the hardware stop request signal 123 to stop the hardware stop shown in FIG. Output to the circuit 113 and the instruction tracer 119.

【0047】セレクタ409は、リオーダバッファフル
検出信号122が入力されている間、カウントアップ回
路404を選択してリオーダバッファフルカウンタ40
3をカウントアップさせ、リオーダバッファフル検出信
号122が入力されていないときは、リオーダバッファ
フルカウンタ403の値をホールドさせるための信号を
選択する。
The selector 409 selects the count-up circuit 404 while the reorder buffer full detection signal 122 is input, and selects the reorder buffer full counter 40.
When 3 is counted up and the reorder buffer full detection signal 122 is not input, a signal for holding the value of the reorder buffer full counter 403 is selected.

【0048】カウントダウン回路412は、セレクタ4
13によって選択されているときに、クロックタイミン
グ毎に割り込みカウンタ414をカウントダウンさせ
る。割り込みカウンタ414は、リオーダバッファ10
3がハード停止/割り込み発生カウント405に設定さ
れたクロック期間だけ満杯であると判断されているとき
に、割り込み要求信号124を出力させるために用いら
れるカウンタである。比較器415は、割り込みカウン
タ414の内容を“all0”と比較し、一致する場合に
割り込み要求信号124を出力する。
The countdown circuit 412 includes the selector 4
When it is selected by 13, the interrupt counter 414 is counted down at every clock timing. The interrupt counter 414 is the reorder buffer 10
3 is a counter used to output the interrupt request signal 124 when it is determined that the hardware stop / interrupt generation count 405 is full for the clock period set. The comparator 415 compares the content of the interrupt counter 414 with “all0” and outputs the interrupt request signal 124 when they match.

【0049】マルチプレクサ413は、リオーダバッフ
ァフル検出信号122が入力されている間は、カウント
ダウン回路412を選択して割り込みカウンタ414を
カウントダウンさせ、リオーダバッファフル検出信号1
22が入力されていないときは、ハード停止/割り込み
発生カウント405を選択して割り込みカウンタ414
の値を初期化する。マルチプレクサ413は、また、割
り込み要求信号124が入力されているときには、割り
込みカウンタ414の値をホールドさせるための信号を
選択する。
While the reorder buffer full detection signal 122 is being input, the multiplexer 413 selects the countdown circuit 412 to count down the interrupt counter 414, and the reorder buffer full detection signal 1
When 22 is not input, the hardware stop / interrupt occurrence count 405 is selected and the interrupt counter 414 is selected.
Initialize the value of. The multiplexer 413 also selects a signal for holding the value of the interrupt counter 414 when the interrupt request signal 124 is input.

【0050】なお、リザベーションステーション103
が満杯かどうかを検出する検出回路112、リザベーシ
ョンステーションフル判定回路113、及びリザベーシ
ョンステーションフルカウンタ回路114の構成は、そ
れぞれ検出回路109、リオーダバッファフル判定回路
110、リオーダバッファフルカウンタ回路111の構
成と実質的に同じである。
The reservation station 103
Of the detection circuit 112, the reservation station full determination circuit 113, and the reservation station full counter circuit 114, which detect whether or not the memory is full, are the same as the detection circuit 109, the reorder buffer full determination circuit 110, and the reorder buffer full counter circuit 111, respectively. Substantially the same.

【0051】以下、この実施の形態にかかるプロセッサ
における動作について説明する。
The operation of the processor according to this embodiment will be described below.

【0052】まず、命令キャッシュ101から命令が読
み出されると、命令デコーダ102は、その命令をデコ
ードする。命令デコーダ102は、命令をデコードする
と、そのデコード結果を含む当該命令に関する情報をリ
ザベーションステーション103とリオーダバッファ1
04とに順番に登録する。
First, when an instruction is read from the instruction cache 101, the instruction decoder 102 decodes the instruction. When the instruction decoder 102 decodes the instruction, the instruction decoder 102 outputs information about the instruction including the decoding result to the reservation station 103 and the reorder buffer 1.
04 and so on.

【0053】リザベーションステーション103は、プ
ログラム中での命令の出現順序に関わらず、登録されて
いる命令のうち他の命令とレジスタの依存性がない命令
を実行可能な命令と判断し、演算器105に対して当該
命令を発行する。演算器105は、リザベーションステ
ーション103から発行された命令に対して、必要なオ
ペランドをリネーミングレジスタ106またはレジスタ
107から取り出して、演算を実行し、その演算結果を
レジスタ107(場合によっては、リネーミングレジス
タ106)に書き込む。
The reservation station 103 determines that an instruction having no register dependency with other instructions among the registered instructions can be executed regardless of the order in which the instructions appear in the program, and the arithmetic unit 105 Issue the command to the. The arithmetic unit 105 extracts a necessary operand from the renaming register 106 or the register 107 for the instruction issued from the reservation station 103, executes the arithmetic operation, and outputs the arithmetic result to the register 107 (in some cases, renaming). Write to register 106).

【0054】一方、リザベーションステーション103
から分岐命令が発行された場合、当該分岐命令の分岐先
を予測し、予測した分岐先以降の命令を順次命令キャッ
シュ101から読み出していく。分岐予測して実行して
いく命令も、同様にして命令デコーダ102でデコード
され、リザベーションステーション103とリオーダバ
ッファ104への情報の登録が行われる。さらに、リザ
ベーションステーション103から命令が発行され、演
算器105によって演算が実行される。
On the other hand, the reservation station 103
When the branch instruction is issued from, the branch destination of the branch instruction is predicted, and the instructions after the predicted branch destination are sequentially read from the instruction cache 101. Similarly, an instruction to be executed after branch prediction is also decoded by the instruction decoder 102, and information is registered in the reservation station 103 and the reorder buffer 104. Further, the reservation station 103 issues a command, and the calculator 105 executes the calculation.

【0055】但し、分岐予測で命令の投機実行が行われ
た場合には、投機実行した各命令と更新したリネーミン
グレジスタ106の番号などが、リオーダバッファ10
4に書き込まれる。その後、投機実行の開始元となった
分岐命令の分岐先が確定し、且つ分岐予測が成功した場
合には、リオーダバッファ104に登録されている情報
に基づいて、リネーミングレジスタ106に書き込んだ
演算結果のデータをレジスタ107に書き戻す。これに
より命令の実行が完了する。
However, when the speculative execution of the instruction is performed by the branch prediction, each speculatively executed instruction and the updated number of the renaming register 106 are stored in the reorder buffer 10.
Written to 4. After that, when the branch destination of the branch instruction from which the speculative execution is started is fixed and the branch prediction is successful, the operation written in the renaming register 106 based on the information registered in the reorder buffer 104. The resulting data is written back to the register 107. This completes the execution of the instruction.

【0056】一方、分岐予測が失敗した場合には、リネ
ーミングレジスタ106に書き込んだデータを無効化す
る処理を行い、確定した実際の分岐先以降の命令を命令
キャッシュ101から読み出していく。投機実行された
命令の実行完了するか、または投機実行による演算結果
のデータの無効化が行われると、リオーダバッファ10
4に登録された命令に関する情報がクリアされる。
On the other hand, if the branch prediction fails, the data written in the renaming register 106 is invalidated, and the instructions after the confirmed actual branch destination are read from the instruction cache 101. When the execution of the speculatively executed instruction is completed or the data of the operation result is invalidated by the speculative execution, the reorder buffer 10
The information related to the instruction registered in 4 is cleared.

【0057】上記のようにしてプログラム中の命令が順
次実行されていくのと並行して、このプロセッサで、投
機実行を含む命令の出現順序に関わらない実行が効率的
に行われているかどうか性能評価するための動作が行わ
れる。このための、検出回路109、リオーダバッファ
フル判定回路110及びリオーダバッファフルカウンタ
回路111の動作を、図5のタイミングチャートの場合
を例として説明する。
In parallel with the sequential execution of the instructions in the program as described above, whether performance is efficiently executed in this processor regardless of the order of appearance of the instructions including speculative execution. Actions are performed to evaluate. The operations of the detection circuit 109, the reorder buffer full determination circuit 110, and the reorder buffer full counter circuit 111 for this purpose will be described by taking the case of the timing chart of FIG. 5 as an example.

【0058】まず、タイムスロットT0において、検出
回路109は、リオーダバッファ104に空きエントリ
があることを検出し、リオーダバッファフル信号121
を出力していないとする。この場合、タイムスロットT
0〜T1において、フル検出カウンタ302は、例えば
フル検出カウント301の値が“2”だとすると、その
値をホールドし続ける。
First, in the time slot T0, the detection circuit 109 detects that there is an empty entry in the reorder buffer 104, and the reorder buffer full signal 121.
Is not output. In this case, time slot T
In 0 to T1, when the value of the full detection counter 301 is “2”, the full detection counter 302 continues to hold the value.

【0059】次に、タイムスロットT1において、検出
回路109がリオーダバッファ104が満杯になったと
検出すると、リオーダバッファフル信号121が出力さ
れる。これにより、タイムスロットT2において、フル
検出カウンタ302は、リオーダバッファフル信号12
1が入力されたことにより、その値が“2”から“1”
へとカウントダウンされる。
Next, at time slot T1, when the detection circuit 109 detects that the reorder buffer 104 is full, a reorder buffer full signal 121 is output. As a result, in the time slot T2, the full detection counter 302 causes the reorder buffer full signal 12
By inputting 1, the value changes from "2" to "1"
Is counted down.

【0060】次に、タイムスロットT2において、検出
回路109が再びリオーダバッファ104に空きエント
リがあることを検出したすると、マルチプレクサ305
はフル検出カウント301の出力を選択する。これによ
り、タイムスロットT3では、リオーダバッファフル信
号121が入力されなくなったことにより、フル検出カ
ウンタ302の値は、初期値の“2”に戻される。
Next, in the time slot T2, when the detection circuit 109 detects again that there is an empty entry in the reorder buffer 104, the multiplexer 305.
Selects the output of full detection count 301. As a result, at time slot T3, the reorder buffer full signal 121 is no longer input, and the value of the full detection counter 302 is returned to the initial value "2".

【0061】次に、タイムスロットT4〜T6の間、検
出回路109がリオーダバッファ104が満杯になって
いることを検出し続けたとすると、フル検出カウンタ3
02の値はカウントダウンし続ける。そして、タイムス
ロットT5においてその値が“0”になると、タイムス
ロットT6では、比較器303からフル検出カウンタゼ
ロ信号321が出力される。また、タイムスロットT6
では、リオーダバッファフル信号121とフル検出カウ
ンタ0信号321がマルチプレクサ305に入力される
ことにより、フル検出カウンタ302の値は、“0”に
ホールドされたままとなる。このように、リオーダバッ
ファフル判定回路111は、一定クロック時間が経った
ときのみにリオーダバッファ104が満杯であると判定
する。
Next, if the detection circuit 109 continues to detect that the reorder buffer 104 is full during the time slots T4 to T6, the full detection counter 3
The value of 02 continues to count down. Then, when the value becomes "0" in the time slot T5, the full detection counter zero signal 321 is output from the comparator 303 in the time slot T6. Also, the time slot T6
Then, since the reorder buffer full signal 121 and the full detection counter 0 signal 321 are input to the multiplexer 305, the value of the full detection counter 302 remains held at “0”. In this way, the reorder buffer full determination circuit 111 determines that the reorder buffer 104 is full only when a fixed clock time has elapsed.

【0062】次に、タイムスロットT6〜T7におい
て、リオーダバッファフル信号121とリオーダバッフ
ァフル検出信号122が出力され続けているとする。こ
の期間では、リオーダバッファフルカウンタ403の値
が“2”までカウントアップされ、また、同時に割り込
みカウンタ414の値が“0”までカウントダウンされ
る。
Next, it is assumed that the reorder buffer full signal 121 and the reorder buffer full detection signal 122 continue to be output in the time slots T6 to T7. During this period, the value of the reorder buffer full counter 403 is counted up to "2", and at the same time, the value of the interrupt counter 414 is counted down to "0".

【0063】次に、タイムスロットT8において、検出
回路109が、再びリオーダバッファに空きエントリが
存在すると検出したとする。これにより、リオーダバッ
ファフル信号121が出力されなくなることで、リオー
ダバッファフル検出信号122も入力されなくなり、リ
オーダバッファフルカウンタ403の値が“2”にホー
ルドされる。さらに、リオーダバッファフル信号121
が入力されたことで、マルチプレクサ305でフル検出
カウント301の出力が選択され、フル検出カウンタ3
02の値が“2”に初期化される。以後、タイムスロッ
トT9,T10,・・・と、再びリオーダバッファフル
信号121が入力されるのを待つことになる。
Next, at time slot T8, the detection circuit 109 again detects that there is a free entry in the reorder buffer. As a result, the reorder buffer full signal 121 is not output, the reorder buffer full detection signal 122 is not input, and the value of the reorder buffer full counter 403 is held at “2”. Furthermore, the reorder buffer full signal 121
Is input, the multiplexer 305 selects the output of the full detection count 301, and the full detection counter 3
The value of 02 is initialized to "2". After that, it waits for the time slots T9, T10, ... And the input of the reorder buffer full signal 121 again.

【0064】ここで、リオーダバッファフルカウンタ4
03の値が、ハード停止/割り込み発生カウント405
の値と一致すると、フルカウント一致信号421が出力
される。ここでハードウェア停止抑止407が停止抑止
状態(値“1”)になっていないのであれば、AND回
路411の出力がハイレベル(値“1”)となり、EI
F408からハードウェア停止信号123が出力され
る。EIF408は、一旦ハードウェア停止信号123
を入力されると、この出力状態をホールドする。
Here, the reorder buffer full counter 4
The value of 03 is the hardware stop / interrupt occurrence count 405.
When it matches the value of, the full count match signal 421 is output. Here, if the hardware stop inhibition 407 is not in the stop inhibition state (value "1"), the output of the AND circuit 411 becomes high level (value "1"), and EI
The hardware stop signal 123 is output from F408. The EIF 408 once outputs the hardware stop signal 123.
When is input, this output state is held.

【0065】こうしてEIF408からハードウェア停
止信号123がハードウェア停止回路115と命令トレ
ーサ119に入力されることにより、ハードウェアの通
常の演算動作が停止され、命令トレーサ119に格納さ
れているデータが外部に出力される。また、この状態で
は、外部から読み出し可能なフリップフロップの値や命
令トレーサに登録された値を外部に読み出してもよい。
このようにして外部に出力されたデータに基づいて、ど
のような状態でリオーダバッファ104が満杯になった
のかの原因を突き止めることが可能となる。
By inputting the hardware stop signal 123 from the EIF 408 to the hardware stop circuit 115 and the instruction tracer 119 in this way, the normal arithmetic operation of the hardware is stopped, and the data stored in the instruction tracer 119 is externally stored. Is output to. Further, in this state, the value of the flip-flop that can be read from the outside or the value registered in the instruction tracer may be read to the outside.
In this way, it is possible to find out the cause of how full the reorder buffer 104 is based on the data output to the outside.

【0066】一方、タイムスロットT7において、割り
込みカウンタ413の値は“0”になり、割り込み要求
信号124が割り込み/例外処理回路114へ出力され
る。ここでハードウェア停止抑止407が停止抑止状態
(値“0”)になっている場合で、且つ割り込み要求信
号124に対する割り込みがマスクされていないのであ
れば、割り込み/例外処理回路114は、このプロセッ
サに対して割り込みを発生させる。
On the other hand, in the time slot T7, the value of the interrupt counter 413 becomes "0", and the interrupt request signal 124 is output to the interrupt / exception processing circuit 114. Here, if the hardware stop inhibition 407 is in the stop inhibition state (value “0”) and the interrupt for the interrupt request signal 124 is not masked, the interrupt / exception processing circuit 114 determines that the processor Generate an interrupt to.

【0067】発生した割り込みが受け付けられると、割
り込み/例外処理回路114は、所定の割り込み処理ル
ーチンを実行させることにより、リアルタイムにリザベ
ーションステーション103および/またはリオーダバ
ッファ104が満杯の状態を検出することができる。
When the generated interrupt is accepted, the interrupt / exception processing circuit 114 can detect the full state of the reservation station 103 and / or the reorder buffer 104 in real time by executing a predetermined interrupt processing routine. it can.

【0068】さらに、タイムスロットT8では、比較器
414の出力に従って、マルチプレクサ412は、停止
/割り込みカウント405の値を出力として選択する。
これにより、割り込みカウンタ414の値は“2”に初
期化され、割り込み要求信号124が出力されなくな
り、通常の演算動作に戻ることになる。
Further, in the time slot T8, the multiplexer 412 selects the value of the stop / interrupt count 405 as an output according to the output of the comparator 414.
As a result, the value of the interrupt counter 414 is initialized to "2", the interrupt request signal 124 is not output, and the normal arithmetic operation is resumed.

【0069】なお、検出回路112、リザベーションス
テーションフル判定回路113、及びリザベーションス
テーションフルカウンタ回路114の動作は、それぞれ
検出回路109、リオーダバッファフル判定回路11
0、リオーダバッファフルカウンタ回路111の動作と
実質的に同じである。
The operations of the detection circuit 112, the reservation station full determination circuit 113, and the reservation station full counter circuit 114 are performed by the detection circuit 109 and the reorder buffer full determination circuit 11, respectively.
0, which is substantially the same as the operation of the reorder buffer full counter circuit 111.

【0070】上記したように、ハードウェア停止要求信
号123、125が出力され、OR回路117を介して
ハードウェア停止回路115及び命令トレーサ119に
入力された場合、ハードウェア停止回路115は、この
プロセッサによる通常の演算動作を停止させる。また、
命令トレーサ119に記憶されているデータの内容その
他の内容が外部に出力される。
As described above, when the hardware stop request signals 123 and 125 are output and input to the hardware stop circuit 115 and the instruction tracer 119 via the OR circuit 117, the hardware stop circuit 115 determines that the processor The normal calculation operation by is stopped. Also,
The contents of the data stored in the instruction tracer 119 and other contents are output to the outside.

【0071】一方、割り込み要求信号124、126が
出力され、OR回路118を介して割り込み/例外処理
回路116に入力された場合、割り込み/例外処理回路
116は、このプロセッサに対して割り込みを発生す
る。そして、この割り込みが受け付けられると、割り込
み処理として、例えば、リオーダバッファ104または
リザベーションステーション104が満杯になっている
ことが外部に通知される。
On the other hand, when the interrupt request signals 124 and 126 are output and input to the interrupt / exception processing circuit 116 via the OR circuit 118, the interrupt / exception processing circuit 116 issues an interrupt to this processor. . Then, when this interrupt is accepted, as the interrupt process, for example, the fact that the reorder buffer 104 or the reservation station 104 is full is notified to the outside.

【0072】以上説明したように、この実施の形態にか
かるプロセッサでは、リオーダバッファ104および/
またはリザベーションステーション103が満杯になっ
ている場合に、ハードウェアの動作を停止させると共
に、命令トレーサ119のデータその他のデータを外部
に出力することができる。また、割り込みの発生によっ
て、リオーダバッファ104および/またはリザベーシ
ョンステーション103が満杯になっていることを外部
に出力することができる。
As described above, in the processor according to this embodiment, the reorder buffer 104 and / or
Alternatively, when the reservation station 103 is full, the operation of the hardware can be stopped and the data of the instruction tracer 119 and other data can be output to the outside. Further, the occurrence of the interrupt can output to the outside that the reorder buffer 104 and / or the reservation station 103 are full.

【0073】これにより、投機実行を含むものとしてプ
ログラム中の命令をその出現順序に関わらずに実行して
いく場合に、リザベーションステーション103やリオ
ーダバッファ104が満杯となっている状態を発見し、
さらにはどのような状況で満杯となったかを突き止める
ことが可能となる。このため、この実施の形態にかかる
プロセッサでは、プログラム中での命令の出現順序に関
わらない実行が効率的に行われているかどうかという性
能評価を適切に行うことができる。
As a result, when the instructions in the program are executed regardless of the order of appearance, including the speculative execution, the reservation station 103 and the reorder buffer 104 are found to be full,
In addition, it is possible to find out under what circumstances it was full. Therefore, in the processor according to the present embodiment, it is possible to appropriately perform performance evaluation as to whether or not execution is efficiently performed regardless of the order of appearance of instructions in the program.

【0074】さらに、この実施の形態にかかるプロセッ
サでは、リオーダバッファフル判定回路110及びリザ
ベーションステーションフル判定回路113は、それぞ
れリオーダバッファ104及びリザベーションステーシ
ョン103が設定されたクロック期間満杯であることが
検出された場合にのみ、これらが満杯であると判定して
いる。このため、これらが満杯の状態が続いてプロセッ
サの性能に影響が生じる可能性の高いところのみを観測
することができるようになる。
Further, in the processor according to this embodiment, the reorder buffer full determination circuit 110 and the reservation station full determination circuit 113 detect that the reorder buffer 104 and the reservation station 103 are full in the set clock period, respectively. Only when they are determined to be full. For this reason, it becomes possible to observe only the places where they are likely to continue to be full and affect the performance of the processor.

【0075】また、ハードウェア停止抑止407を設け
たことにより、ハードウェアの動作を停止させることな
く、リザベーションステーション103および/または
リオーダバッファ104が満杯の状態を見つけだすこと
ができるので、プログラム毎にこれらが満杯になるクロ
ック数を調べることができ、プログラムによる特性の違
いを把握することができるようになる。
Since the hardware stop inhibition 407 is provided, the reservation station 103 and / or the reorder buffer 104 can be found to be full without stopping the operation of the hardware. You can check the number of clocks that are full, and you can understand the difference in characteristics between programs.

【0076】また、ハード停止/割り込みカウント40
5を設けたことにより、任意のタイミングでハードウェ
アの動作を停止させたり、割り込みを発生させたりする
ことができるようになる。
Hardware stop / interrupt count 40
By providing 5, it is possible to stop the operation of the hardware or generate an interrupt at an arbitrary timing.

【0077】上記の実施の形態では、検出回路109、
リオーダバッファフル判定回路110及びリオーダバッ
ファフルカウンタ回路111の動作を、図5のタイミン
グチャートに従って説明したが、これらの回路の動作
は、図5のタイミングチャートの場合に限られるもので
はない。
In the above embodiment, the detection circuit 109,
Although the operations of the reorder buffer full determination circuit 110 and the reorder buffer full counter circuit 111 have been described according to the timing chart of FIG. 5, the operations of these circuits are not limited to the case of the timing chart of FIG.

【0078】上記の実施の形態では、リオーダバッファ
フルカウンタ回路111またはリザベーションステーシ
ョンフルカウンタ回路114のカウント値が所定の値に
達したときに行われる処理は、ハードウェア停止回路1
15によるハードウェアの動作停止及び命令トレーサ1
19の内容の読み出し、或いは割り込み/例外処理回路
116による割り込みの発生であった。が、このような
状況での満杯処理として、他の処理を行うことも可能で
ある。
In the above embodiment, the processing executed when the count value of the reorder buffer full counter circuit 111 or the reservation station full counter circuit 114 reaches a predetermined value is the hardware stop circuit 1.
Hardware stop by 15 and instruction tracer 1
The contents of 19 are read out or an interrupt is generated by the interrupt / exception processing circuit 116. However, it is possible to perform other processing as the full processing in such a situation.

【0079】上記の実施の形態では、リザベーションス
テーション103とリオーダバッファ104との両方を
有するプロセッサを例として説明した。しかしながら、
本発明は、リザベーションステーションとリオーダバッ
ファとの一方しか有しないプロセッサにも、適用するこ
とができる。
In the above embodiment, the processor having both the reservation station 103 and the reorder buffer 104 has been described as an example. However,
The present invention can be applied to a processor having only one of a reservation station and a reorder buffer.

【0080】[0080]

【発明の効果】以上説明したように、本発明によれば、
プログラム中の命令をその出現順に関わらず実行するた
めに記憶装置から取り出した命令に関する情報を一次記
憶するバッファを備えるプロセッサにおいて、命令の出
現順序に関わらない実行が効率的に行われているかどう
かという性能評価が可能となる。
As described above, according to the present invention,
In a processor equipped with a buffer that temporarily stores information about instructions fetched from a storage device in order to execute instructions in a program regardless of the order in which they appear, whether or not they are efficiently executed regardless of the order in which they appear. Performance evaluation is possible.

【図面の簡単な説明】[Brief description of drawings]

【図1】本発明の実施の形態にかかるプロセッサ全体の
構成を示すブロック図である。
FIG. 1 is a block diagram showing a configuration of an entire processor according to an exemplary embodiment of the present invention.

【図2】図1の検出回路の構成を示す図である。FIG. 2 is a diagram showing a configuration of a detection circuit of FIG.

【図3】図1のリオーダバッファフル判定回路の構成を
示す図である。
3 is a diagram showing a configuration of a reorder buffer full determination circuit of FIG.

【図4】図1のリオーダバッファフルカウンタ回路の構
成を示す図である。
FIG. 4 is a diagram showing a configuration of a reorder buffer full counter circuit of FIG.

【図5】本発明の実施の形態にかかるプロセッサの動作
を示すタイミングチャートである。
FIG. 5 is a timing chart showing an operation of the processor according to the exemplary embodiment of the present invention.

【符号の説明】[Explanation of symbols]

101 命令キャッシュ 102 命令デコーダ 103 リザベーションステーション 104 リオーダバッファ 105 演算器 106 リネーミングレジスタ 107 レジスタ 109 検出回路 110 リオーダバッファフル判定回路 111 リオーダバッファフルカウンタ回路 112 検出回路 113 リザベーションステーションフル判定回路 114 リザベーションステーションフルカウンタ回路 115 ハードウェア停止回路 116 割り込み/例外処理回路 117 OR回路 118 OR回路 119 命令トレーサ 101 instruction cache 102 Instruction decoder 103 reservation station 104 reorder buffer 105 arithmetic unit 106 renaming register 107 registers 109 detection circuit 110 Reorder buffer full judgment circuit 111 Reorder buffer full counter circuit 112 detection circuit 113 Reservation station full judgment circuit 114 Reservation Station Full Counter Circuit 115 Hardware stop circuit 116 Interrupt / Exception Processing Circuit 117 OR circuit 118 OR circuit 119 Command Tracer

───────────────────────────────────────────────────── フロントページの続き (58)調査した分野(Int.Cl.7,DB名) G06F 9/38 ─────────────────────────────────────────────────── ─── Continuation of front page (58) Fields surveyed (Int.Cl. 7 , DB name) G06F 9/38

Claims (10)

(57)【特許請求の範囲】(57) [Claims] 【請求項1】プログラム中の命令をその出現順に関わら
ずに実行するために記憶装置から取り出した命令に関す
る情報を一次記憶するバッファと、 命令に関する情報を記憶することにより、前記バッファ
が満杯になっているかどうかを判定する満杯判定手段
と、 前記満杯判定手段が満杯と判定した回数を計数する満杯
回数計数手段と、 前記満杯回数計数手段が計数した回数に応じて、所定の
満杯処理を行う満杯処理手段とを備えることを特徴とす
るプロセッサ。
1. A buffer for temporarily storing information on an instruction fetched from a storage device for executing instructions in a program regardless of the order of appearance, and a buffer for storing the information on the instruction to fill the buffer. A fullness determining means for determining whether or not there is a fullness, a fullness number counting means for counting the number of times the fullness determination means determines fullness, and a fullness for performing a predetermined fullness processing according to the number of times the fullness counting means counts. A processor comprising: a processing unit.
【請求項2】前記満杯判定手段は、前記バッファが所定
時間以上満杯になっているときに、前記バッファが満杯
であると判定することを特徴とする請求項1に記載のプ
ロセッサ。
2. The processor according to claim 1, wherein the fullness determining means determines that the buffer is full when the buffer is full for a predetermined time or more.
【請求項3】前記満杯処理手段は、前記プロセッサの動
作を停止する手段を備えることを特徴とする請求項1ま
たは2に記載のプロセッサ。
3. The processor according to claim 1, wherein the full processing means includes means for stopping the operation of the processor.
【請求項4】前記バッファに一次記憶されていた命令が
発行されたとき、または命令の実行が完了したときに、
当該発行または完了した命令に関する情報を登録する登
録手段と、 前記満杯処理手段によってプロセッサの動作が停止され
たときに、前記登録手段に登録した命令に関する情報を
外部に出力する手段をさらに備えることを特徴とする請
求項3に記載のプロセッサ。
4. When an instruction temporarily stored in the buffer is issued or when the execution of the instruction is completed,
The method further includes: a registration unit that registers information about the issued or completed instruction, and a unit that outputs information about the instruction registered in the registration unit to the outside when the operation of the processor is stopped by the full processing unit. The processor of claim 3 characterized.
【請求項5】前記満杯処理手段は、前記プロセッサに対
して所定の割り込みを発生する手段を備えることを特徴
とする請求項1または4に記載のプロセッサ。
5. The processor according to claim 1, wherein the full processing means includes means for generating a predetermined interrupt to the processor.
【請求項6】前記満杯処理手段が前記プロセッサに対し
て割り込みを発生したときに、前記満杯判定手段と前記
満杯回数計数回路との少なくとも一方の動作状態を外部
に出力する手段をさらに備えることを特徴とする請求項
5に記載のプロセッサ。
6. A means for outputting the operating state of at least one of said fullness determining means and said fullness counting circuit to the outside when said fullness processing means generates an interrupt to said processor. The processor of claim 5 characterized.
【請求項7】前記バッファは、各エントリが有効である
かどうかを示すエントリビットを含み、 前記プロセッサは、前記バッファに含まれるすべてのエ
ントリビットの値を論理演算することにより、前記バッ
ファが満杯であるかどうかを検出する検出手段をさらに
備え、 前記満杯判定手段は、前記検出手段による論理演算の結
果に基づいて、前記バッファが満杯であるかどうかを判
定することを特徴とする請求項1乃至6のいずれか1項
に記載のプロセッサ。
7. The buffer includes an entry bit indicating whether or not each entry is valid, and the processor performs a logical operation on values of all entry bits included in the buffer to fill the buffer. 3. The method according to claim 1, further comprising detection means for detecting whether or not the buffer is full, and the fullness determination means determines whether or not the buffer is full based on a result of a logical operation by the detection means. 7. The processor according to any one of items 1 to 6.
【請求項8】前記バッファは、記憶装置から取り出され
た命令のデコード結果を当該命令の実行が完了するまで
保持するリオーダバッファ、および/または記憶装置か
ら取り出された命令のデコード結果を当該命令が発行さ
れるまで保持するリザベーションステーションによって
構成されることを特徴とする請求項1乃至7のいずれか
1項に記載のプロセッサ。
8. The reorder buffer, wherein the buffer holds a decoding result of an instruction fetched from a storage device until execution of the instruction is completed, and / or a decoding result of the instruction fetched from the storage device is stored by the instruction. 8. Processor according to any one of the preceding claims, characterized in that it is constituted by a reservation station which holds it until issued.
【請求項9】プログラム中の命令をその出現順に関わら
ずに実行するために記憶装置から取り出した命令に関す
る情報を一次記憶するバッファを備えるプロセッサの性
能評価方法であって、 命令に関する情報を記憶することにより、前記バッファ
が満杯になっているかどうかを判定する満杯判定ステッ
プと、 前記満杯判定ステップで前記バッファが満杯であると判
定した回数に応じて、所定の処理を前記プロセッサに行
わせる満杯制御ステップとを含むことを特徴とするプロ
セッサの性能評価方法。
9. A method for evaluating the performance of a processor, comprising a buffer for temporarily storing information on an instruction fetched from a storage device for executing an instruction in a program regardless of the order of appearance, and storing the information on the instruction. Accordingly, a fullness determination step of determining whether or not the buffer is full, and a fullness control that causes the processor to perform a predetermined process according to the number of times that the buffer is determined to be full in the fullness determination step. A method of evaluating performance of a processor, comprising:
【請求項10】前記満杯判定ステップは、前記バッファ
が所定時間以上満杯になっているときに、前記バッファ
が満杯であると判定することを特徴とする請求項9に記
載のプロセッサの性能評価方法。
10. The processor performance evaluation method according to claim 9, wherein the fullness determining step determines that the buffer is full when the buffer is full for a predetermined time or more. .
JP14781599A 1999-05-27 1999-05-27 Processor and its performance evaluation method Expired - Lifetime JP3446658B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP14781599A JP3446658B2 (en) 1999-05-27 1999-05-27 Processor and its performance evaluation method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP14781599A JP3446658B2 (en) 1999-05-27 1999-05-27 Processor and its performance evaluation method

Publications (2)

Publication Number Publication Date
JP2000339158A JP2000339158A (en) 2000-12-08
JP3446658B2 true JP3446658B2 (en) 2003-09-16

Family

ID=15438858

Family Applications (1)

Application Number Title Priority Date Filing Date
JP14781599A Expired - Lifetime JP3446658B2 (en) 1999-05-27 1999-05-27 Processor and its performance evaluation method

Country Status (1)

Country Link
JP (1) JP3446658B2 (en)

Also Published As

Publication number Publication date
JP2000339158A (en) 2000-12-08

Similar Documents

Publication Publication Date Title
US7111126B2 (en) Apparatus and method for loading data values
US6189088B1 (en) Forwarding stored dara fetched for out-of-order load/read operation to over-taken operation read-accessing same memory location
US5421022A (en) Apparatus and method for speculatively executing instructions in a computer system
US7263600B2 (en) System and method for validating a memory file that links speculative results of load operations to register values
KR101192814B1 (en) Processor with dependence mechanism to predict whether a load is dependent on older store
JP2875909B2 (en) Parallel processing unit
US6098166A (en) Speculative issue of instructions under a load miss shadow
US6907520B2 (en) Threshold-based load address prediction and new thread identification in a multithreaded microprocessor
US5758051A (en) Method and apparatus for reordering memory operations in a processor
US5428807A (en) Method and apparatus for propagating exception conditions of a computer system
US5420990A (en) Mechanism for enforcing the correct order of instruction execution
EP1244961B1 (en) Store to load forwarding predictor with untraining
US5931957A (en) Support for out-of-order execution of loads and stores in a processor
US6694424B1 (en) Store load forward predictor training
JP2005149525A (en) Computer system
US7849293B2 (en) Method and structure for low latency load-tagged pointer instruction for computer microarchitechture
US6772317B2 (en) Method and apparatus for optimizing load memory accesses
KR100335744B1 (en) Load/load detection and reorder method
KR20020097149A (en) Scheduler capable of issuing and reissuing dependency chains
US20030126409A1 (en) Store sets poison propagation
US5699538A (en) Efficient firm consistency support mechanisms in an out-of-order execution superscaler multiprocessor
US20200379772A1 (en) Managing Load and Store Instructions for Memory Barrier Handling
US6704861B1 (en) Mechanism for executing computer instructions in parallel
US7937569B1 (en) System and method for scheduling operations using speculative data operands
JP3146058B2 (en) Parallel processing type processor system and control method of parallel processing type processor system

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20070704

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080704

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090704

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100704

Year of fee payment: 7