JPH0760388B2 - パイプライン制御回路 - Google Patents
パイプライン制御回路Info
- Publication number
- JPH0760388B2 JPH0760388B2 JP62144394A JP14439487A JPH0760388B2 JP H0760388 B2 JPH0760388 B2 JP H0760388B2 JP 62144394 A JP62144394 A JP 62144394A JP 14439487 A JP14439487 A JP 14439487A JP H0760388 B2 JPH0760388 B2 JP H0760388B2
- Authority
- JP
- Japan
- Prior art keywords
- stage
- instruction
- pipeline
- register
- general
- 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
- 230000007704 transition Effects 0.000 claims description 3
- 238000000034 method Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 3
- 239000000470 constituent Substances 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000007274 generation of a signal involved in cell-cell signaling Effects 0.000 description 1
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/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
- G06F9/3824—Operand accessing
-
- 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
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)
Description
【発明の詳細な説明】 〔産業上の利用分野〕 この発明は、パイプライン制御手段を有し、転送や加減
算等を実行するデータ演算処理ステージのデステイネー
シヨンとして指定可能で、レジスタ間接アドレツシング
のためのアドレス計算を行うアドレス計算ステージのソ
ースデータとしても指定されるような、複数のパイプラ
インステージにおいてアクセス可能な汎用レジスタを備
えたデータ処理装置に関するものである。
算等を実行するデータ演算処理ステージのデステイネー
シヨンとして指定可能で、レジスタ間接アドレツシング
のためのアドレス計算を行うアドレス計算ステージのソ
ースデータとしても指定されるような、複数のパイプラ
インステージにおいてアクセス可能な汎用レジスタを備
えたデータ処理装置に関するものである。
第3図は従来の前の命令が更新するレジスタをアドレス
計算に使用した場合に生じるレジスタコンフリクト処理
にともなうパイプライン制御機構を示したものである。
(18)は命令デコーダ、(19)はレジスタコンフリクト
処理用SRフリツプフロツプ、(20)は演算処理部をそれ
ぞれ示す。第4図は命令のデコード時に汎用レジスタに
対する書き込み予約が生じ、その次の命令がアドレス計
算時にレジスタを使用した、すなわちレジスタコンフリ
クトが生じた場合のパイプライン処理における遅延を示
したものである。第4図ではステージが4段あるパイプ
ライン構成における動作を示す。(21)はデコードステ
ージを示す行、(22)はアドレス計算ステージを示す
行、(23)はオペランド・フエツチステージを示す行、
(24)は演算実行ステージを示す行である。第3図を用
いて従来のレジスタコンフリクトの発生にともなうパイ
プライン制御方式を説明する。命令デコーダ(18)は入
力された命令が演算実行ステージにおいて汎用レジスタ
にデータを書き込むかどうかを調べ、書き込む場合はレ
ジスタ書き込み予約信号をSRフリツプフロツプ(19)に
送り1をセツトする。そして、そのことによりそれ以降
の命令がアドレス計算ステージにおいて汎用レジスタを
使用する場合レジスタコンフリクトの発生としてその命
令の処理を停止する。SRフリツプフロツプ(19)の値は
1をセツトした命令が演算実行ステージにおいて処理を
終了したときに0にリセツトされる。SRフリツプフロツ
プ(19)がリセツトされたことにより次の命令はアドレ
ス計算処理を実行できる。このようにして従来はレジス
タコンフリクトに対するパイプライン制御を行つてい
た。次に第4図を用いて4段のパイプライン・ステージ
を有するデータ処理装置におけるレジスタコンフリクト
の発生にともなうステージの遅延を説明する。命令I1が
レジスタ書き込み予約を生じ、その次の命令I2がアドレ
ス計算において汎用レジスタを使用する場合I2は、T3の
サイクルでレジスタコンフリクトが発生して処理が停止
し、T4のサイクルでI1が汎用レジスタにデータを書き込
むまで実行できない。T4で汎用レジスタが解放され、T5
で命令I2は再び処理を開始する。結果として命令I2には
2サイクルの遅延が生じる。
計算に使用した場合に生じるレジスタコンフリクト処理
にともなうパイプライン制御機構を示したものである。
(18)は命令デコーダ、(19)はレジスタコンフリクト
処理用SRフリツプフロツプ、(20)は演算処理部をそれ
ぞれ示す。第4図は命令のデコード時に汎用レジスタに
対する書き込み予約が生じ、その次の命令がアドレス計
算時にレジスタを使用した、すなわちレジスタコンフリ
クトが生じた場合のパイプライン処理における遅延を示
したものである。第4図ではステージが4段あるパイプ
ライン構成における動作を示す。(21)はデコードステ
ージを示す行、(22)はアドレス計算ステージを示す
行、(23)はオペランド・フエツチステージを示す行、
(24)は演算実行ステージを示す行である。第3図を用
いて従来のレジスタコンフリクトの発生にともなうパイ
プライン制御方式を説明する。命令デコーダ(18)は入
力された命令が演算実行ステージにおいて汎用レジスタ
にデータを書き込むかどうかを調べ、書き込む場合はレ
ジスタ書き込み予約信号をSRフリツプフロツプ(19)に
送り1をセツトする。そして、そのことによりそれ以降
の命令がアドレス計算ステージにおいて汎用レジスタを
使用する場合レジスタコンフリクトの発生としてその命
令の処理を停止する。SRフリツプフロツプ(19)の値は
1をセツトした命令が演算実行ステージにおいて処理を
終了したときに0にリセツトされる。SRフリツプフロツ
プ(19)がリセツトされたことにより次の命令はアドレ
ス計算処理を実行できる。このようにして従来はレジス
タコンフリクトに対するパイプライン制御を行つてい
た。次に第4図を用いて4段のパイプライン・ステージ
を有するデータ処理装置におけるレジスタコンフリクト
の発生にともなうステージの遅延を説明する。命令I1が
レジスタ書き込み予約を生じ、その次の命令I2がアドレ
ス計算において汎用レジスタを使用する場合I2は、T3の
サイクルでレジスタコンフリクトが発生して処理が停止
し、T4のサイクルでI1が汎用レジスタにデータを書き込
むまで実行できない。T4で汎用レジスタが解放され、T5
で命令I2は再び処理を開始する。結果として命令I2には
2サイクルの遅延が生じる。
従来の方法では前の命令がレジスタに値を書き込む場
合、その後の命令がレジスタを使用する指定を含んだ
時、後の命令は前の命令の処理によつてレジスタの値が
書き変わるまで処理を停止するので、汎用レジスタの本
数の多い、あるいはアドレス計算ステージにおいて汎用
レジスタを頻繁に使用するデータ処理装置、特に高機能
マイクロプロセツサ等においてはパイプラインの処理速
度の著しい低下を招くことになるという問題点があつ
た。
合、その後の命令がレジスタを使用する指定を含んだ
時、後の命令は前の命令の処理によつてレジスタの値が
書き変わるまで処理を停止するので、汎用レジスタの本
数の多い、あるいはアドレス計算ステージにおいて汎用
レジスタを頻繁に使用するデータ処理装置、特に高機能
マイクロプロセツサ等においてはパイプラインの処理速
度の著しい低下を招くことになるという問題点があつ
た。
本発明は、上記のような問題点を解消するためになされ
たもので、アドレス計算のためのレジスタコンフリクト
によつてパイプラインの各ステージの停止する頻度を低
減することを目的とする。
たもので、アドレス計算のためのレジスタコンフリクト
によつてパイプラインの各ステージの停止する頻度を低
減することを目的とする。
本発明にかかるパイプライン制御回路は、命令のデコー
ドのステージに前もつて、演算処理ステージにおいてど
の汎用レジスタにデータを書き込むかを調べ、汎用レジ
スタの個々に対して演算処理ステージにおいて書き込み
が生じることを予告する書き込み予約フラグビツトをそ
のデータ処理装置におけるパイプラインのステージの段
数に対応して同等数設け、命令デコード時にそれを設定
し、その後は各命令のステージ遷移とともに前記フラグ
ビツト群を遷移させ、それ以降の命令は前の命令におけ
る各々の汎用レジスタの書き込み予約フラグビツト群を
参照し、レジスタコンフリクトが発生したかどうかの判
断を行わせるようにしたものである。
ドのステージに前もつて、演算処理ステージにおいてど
の汎用レジスタにデータを書き込むかを調べ、汎用レジ
スタの個々に対して演算処理ステージにおいて書き込み
が生じることを予告する書き込み予約フラグビツトをそ
のデータ処理装置におけるパイプラインのステージの段
数に対応して同等数設け、命令デコード時にそれを設定
し、その後は各命令のステージ遷移とともに前記フラグ
ビツト群を遷移させ、それ以降の命令は前の命令におけ
る各々の汎用レジスタの書き込み予約フラグビツト群を
参照し、レジスタコンフリクトが発生したかどうかの判
断を行わせるようにしたものである。
この発明におけるパイプライン制御回路は、データ処理
装置内の汎用レジスタの個々に書き込み予約フラグを1
ビツトづつ設けたので、前の命令が汎用レジスタ群のど
れか1つに書き込み予約を行つた場合でも、それ以降の
命令が同じ汎用レジスタを前の命令が書き込む以前に使
わない限り処理が停止することはなく、レジスタコンフ
リクトによるパイプライン処理の遅延を最小限度に抑え
ることが可能である。
装置内の汎用レジスタの個々に書き込み予約フラグを1
ビツトづつ設けたので、前の命令が汎用レジスタ群のど
れか1つに書き込み予約を行つた場合でも、それ以降の
命令が同じ汎用レジスタを前の命令が書き込む以前に使
わない限り処理が停止することはなく、レジスタコンフ
リクトによるパイプライン処理の遅延を最小限度に抑え
ることが可能である。
以下、この発明の一実施例を図について説明する。第1
図において(1)は命令デコーダ、(2)〜(4)は汎
用レジスタR0〜RN、(5)〜(7)は各汎用レジスタに
対応する書き込み予約フラグ、(8)はアドレス計算ス
テージで処理中の命令の書き込み予約フラグ群、(10)
〜(12)は演算実行ステージで処理中の命令の書き込み
予約フラグ群、(30)はパイプライン制御回路である。
命令デコードステージでその命令が演算実行ステージで
汎用レジスタにデータを書き込むかどうかを命令デコー
ダ(1)により判断し、データが書き込まれる汎用レジ
スタ全ての書き込み予約フラグ(5)〜(7)に1をセ
ツトする。そして、その命令の命令デコードステージに
おける処理が終了して、その次のステージであるアドレ
ス計算ステージに処理を移すのと同時に前記書き込み予
約フラグ群も次段の書き込み予約フラグ群(8)に移
す。以後のステージについても同様にステージの遷移と
ともにその命令の書き込み予約フラグ群も遷移させる。
そして、演算実行ステージまで書き込み予約フラグ群が
遷移した後、演算実行ステージで処理が終了した時点で
書き込み予約フラグ(10)〜(12)をリセツトする。パ
イプライン制御回路(30)は、命令が汎用レジスタを使
用するステージにおいてそのステージより先のステージ
におけるその使用する汎用レジスタの書き込み予約フラ
グを調べ、対応するレジスタのステージ毎の書き込み予
約フラグの少なくとも1つに1がセツトされていた場
合、処理を停止させ、それらの書き込み予約フラグがす
べてリセツトされるまで待たせる。第2図を用いて、上
記書き込み予約フラグの1ビツトについての構成の一実
施例を説明する。(13)〜(17)はSRフリツプフロツプ
である。第2図の実施例ではパイプラインのステージ構
成として4つのステージを持つ。命令デコードステージ
でレジスタ書き込み予約信号を生成し、その信号を用い
てSRフリツプフロツプ(13)をセツトする。命令デコー
ドステージにおいて1つの命令が複数のワードを有し、
複数のサイクルにわたつてレジスタの書き込み予約を行
う可能性があるので、命令デコードステージの書き込み
予約フラグとしてマスタースレーブ型のフリツプフロツ
プ構成を採用している。命令デコードステージにおいて
処理が終了し、アドレス計算ステージに処理が移つた
後、命令デコードステージのSRフリツプフロツプ(13)
はリセツトされる。以後、命令がパイプラインの次段の
ステージに移るに従い書き込み予約フラグの値も次段へ
と移つていく。そして、その後の命令がアドレス計算ス
テージでレジスタ間接アドレツシングを発生し、かつそ
のアドレス計算時に指定された汎用レジスタのオペラン
ドフエツチステージもしくは演算実行ステージの書き込
み予約フラグがセツトされていた場合のみ、レジスタコ
ンフリクト信号が生成される。レジスタコンフリクトが
発生した場合、アドレス計算ステージは処理を停止し、
前の命令の処理が終るの待つ。その際、オペランドフエ
ツチステージで処理中の命令の書き込み予約フラグによ
つてアドレス計算ステージが停止したときは、アドレス
計算ステージの処理はオペランドフエツチステージで処
理中の命令が演算実行ステージで処理を終了するまで待
たなければならない。そのためオペランドフエツチステ
ージの書き込み予約フラグはオペランドフエツチステー
ジの処理が終了した時点で自分自身でリセツトする必要
がある。オペランドフエツチステージの開始信号がセツ
トされずに演算実行ステージに処理を移したときはオペ
ランドフエツチステージの書き込み予約フラグはリセツ
トされる。また、アドレス計算ステージは制御信号は受
け取つているので必要な時点から処理を開始できるよう
に構成することによつて、より高速に処理を再開するこ
とが可能である。
図において(1)は命令デコーダ、(2)〜(4)は汎
用レジスタR0〜RN、(5)〜(7)は各汎用レジスタに
対応する書き込み予約フラグ、(8)はアドレス計算ス
テージで処理中の命令の書き込み予約フラグ群、(10)
〜(12)は演算実行ステージで処理中の命令の書き込み
予約フラグ群、(30)はパイプライン制御回路である。
命令デコードステージでその命令が演算実行ステージで
汎用レジスタにデータを書き込むかどうかを命令デコー
ダ(1)により判断し、データが書き込まれる汎用レジ
スタ全ての書き込み予約フラグ(5)〜(7)に1をセ
ツトする。そして、その命令の命令デコードステージに
おける処理が終了して、その次のステージであるアドレ
ス計算ステージに処理を移すのと同時に前記書き込み予
約フラグ群も次段の書き込み予約フラグ群(8)に移
す。以後のステージについても同様にステージの遷移と
ともにその命令の書き込み予約フラグ群も遷移させる。
そして、演算実行ステージまで書き込み予約フラグ群が
遷移した後、演算実行ステージで処理が終了した時点で
書き込み予約フラグ(10)〜(12)をリセツトする。パ
イプライン制御回路(30)は、命令が汎用レジスタを使
用するステージにおいてそのステージより先のステージ
におけるその使用する汎用レジスタの書き込み予約フラ
グを調べ、対応するレジスタのステージ毎の書き込み予
約フラグの少なくとも1つに1がセツトされていた場
合、処理を停止させ、それらの書き込み予約フラグがす
べてリセツトされるまで待たせる。第2図を用いて、上
記書き込み予約フラグの1ビツトについての構成の一実
施例を説明する。(13)〜(17)はSRフリツプフロツプ
である。第2図の実施例ではパイプラインのステージ構
成として4つのステージを持つ。命令デコードステージ
でレジスタ書き込み予約信号を生成し、その信号を用い
てSRフリツプフロツプ(13)をセツトする。命令デコー
ドステージにおいて1つの命令が複数のワードを有し、
複数のサイクルにわたつてレジスタの書き込み予約を行
う可能性があるので、命令デコードステージの書き込み
予約フラグとしてマスタースレーブ型のフリツプフロツ
プ構成を採用している。命令デコードステージにおいて
処理が終了し、アドレス計算ステージに処理が移つた
後、命令デコードステージのSRフリツプフロツプ(13)
はリセツトされる。以後、命令がパイプラインの次段の
ステージに移るに従い書き込み予約フラグの値も次段へ
と移つていく。そして、その後の命令がアドレス計算ス
テージでレジスタ間接アドレツシングを発生し、かつそ
のアドレス計算時に指定された汎用レジスタのオペラン
ドフエツチステージもしくは演算実行ステージの書き込
み予約フラグがセツトされていた場合のみ、レジスタコ
ンフリクト信号が生成される。レジスタコンフリクトが
発生した場合、アドレス計算ステージは処理を停止し、
前の命令の処理が終るの待つ。その際、オペランドフエ
ツチステージで処理中の命令の書き込み予約フラグによ
つてアドレス計算ステージが停止したときは、アドレス
計算ステージの処理はオペランドフエツチステージで処
理中の命令が演算実行ステージで処理を終了するまで待
たなければならない。そのためオペランドフエツチステ
ージの書き込み予約フラグはオペランドフエツチステー
ジの処理が終了した時点で自分自身でリセツトする必要
がある。オペランドフエツチステージの開始信号がセツ
トされずに演算実行ステージに処理を移したときはオペ
ランドフエツチステージの書き込み予約フラグはリセツ
トされる。また、アドレス計算ステージは制御信号は受
け取つているので必要な時点から処理を開始できるよう
に構成することによつて、より高速に処理を再開するこ
とが可能である。
レジスタ書き込み予約信号の生成回路の一実施例を第5
図と第6図に示す。まず第5図について説明する。(2
5)はOPコードを格納する命令レジスタ、(26)はOPコ
ード中のレジスタフイールド、(27)はOPコードデコー
ダ、(28)はインバータ、(100)〜(102)はOPコード
デコーダの出力信号である。OPコードデコーダ(27)の
出力信号(100)が1ならばI0、I1はOPコードデコーダ
の出力信号(101),(102)を取り込み、OPコードデコ
ーダの出力信号(100)が0ならばI0〜I3はレジスタフ
イールド(26)の値が取り込まれるようにマルチプレク
スする。I4には出力信号(100)をI2,I3にはレジスタフ
イールド(26)のビツト2、ビツト3を常にそのまま取
り込む。次に第6図について説明する。(29)はAND-OR
構成のPLAゲート、R0〜R15は16本のレジスタ書き込み予
約信号、I0〜I4は命令デコーダから送られる制御信号で
ある。第5図、第6図の実施例では16本の32ビツト幅の
汎用レジスタの制御を示す。演算実行ステージで何本の
汎用レジスタに書き込むかは命令の処理内容によつて異
なる。デステイネーシヨンとして汎用レジスタを指定
し、かつ、32ビツト幅までしかデータサイズが許されて
いないならば、書き込む汎用レジスタは1本であるが、
ストリング命令やブロツク転送命令のように複数の汎用
レジスタに書き込む可能性のある命令の場合は、逐一書
き込み予約フラグをセツトするのではなく、命令のタイ
プ毎に制御信号を分けて行う。それにより実行サイクル
数が短縮できる。I4が0ならばR0〜R14はどれか1つし
か1にならず、すなわち単一汎用レジスタだけを書き込
み予約し、I4が1ならばI1、I0の2ビツトによつて書き
込み予約を行う汎用レジスタ群を指定する。これらは命
令の実行タイプによつて、命令デコーダでデコード可能
である。
図と第6図に示す。まず第5図について説明する。(2
5)はOPコードを格納する命令レジスタ、(26)はOPコ
ード中のレジスタフイールド、(27)はOPコードデコー
ダ、(28)はインバータ、(100)〜(102)はOPコード
デコーダの出力信号である。OPコードデコーダ(27)の
出力信号(100)が1ならばI0、I1はOPコードデコーダ
の出力信号(101),(102)を取り込み、OPコードデコ
ーダの出力信号(100)が0ならばI0〜I3はレジスタフ
イールド(26)の値が取り込まれるようにマルチプレク
スする。I4には出力信号(100)をI2,I3にはレジスタフ
イールド(26)のビツト2、ビツト3を常にそのまま取
り込む。次に第6図について説明する。(29)はAND-OR
構成のPLAゲート、R0〜R15は16本のレジスタ書き込み予
約信号、I0〜I4は命令デコーダから送られる制御信号で
ある。第5図、第6図の実施例では16本の32ビツト幅の
汎用レジスタの制御を示す。演算実行ステージで何本の
汎用レジスタに書き込むかは命令の処理内容によつて異
なる。デステイネーシヨンとして汎用レジスタを指定
し、かつ、32ビツト幅までしかデータサイズが許されて
いないならば、書き込む汎用レジスタは1本であるが、
ストリング命令やブロツク転送命令のように複数の汎用
レジスタに書き込む可能性のある命令の場合は、逐一書
き込み予約フラグをセツトするのではなく、命令のタイ
プ毎に制御信号を分けて行う。それにより実行サイクル
数が短縮できる。I4が0ならばR0〜R14はどれか1つし
か1にならず、すなわち単一汎用レジスタだけを書き込
み予約し、I4が1ならばI1、I0の2ビツトによつて書き
込み予約を行う汎用レジスタ群を指定する。これらは命
令の実行タイプによつて、命令デコーダでデコード可能
である。
なお、上記第2図の実施例では4段構成のパイプライン
の場合についての動作を示したが、パイプラインの段数
が増えた場合はレジスタコンフリクトによるオーバーヘ
ツドがより大きいので、本発明によるレジスタコンフリ
クトの発生の低減により、より大きな効果を得ることが
出来る。
の場合についての動作を示したが、パイプラインの段数
が増えた場合はレジスタコンフリクトによるオーバーヘ
ツドがより大きいので、本発明によるレジスタコンフリ
クトの発生の低減により、より大きな効果を得ることが
出来る。
また本発明ではデコードステージ、アドレス計算ステー
ジでも書き込み予約フラグ群を持たせたが、書き込み予
約フラグ群に対するセツトをオペランドフエツチステー
ジの直前で行うことにより、書き込み予約フラグ群にか
かる回路構成素子数を減少し、同等の効果を得ることが
出来る。
ジでも書き込み予約フラグ群を持たせたが、書き込み予
約フラグ群に対するセツトをオペランドフエツチステー
ジの直前で行うことにより、書き込み予約フラグ群にか
かる回路構成素子数を減少し、同等の効果を得ることが
出来る。
以上のように、この発明によれば数多くの汎用レジスタ
を有し、また、数多くのパイプラインの段数を有するデ
ータ処理装置におけるレジスタコンフリクトの発生を低
減でき、パイプライン処理の乱れを少なく出来るという
効果がある。そして、個々の汎用レジスタについてパイ
プラインのステージ毎に書き込み予約フラグを持たせた
ので、本発明を採用したデータ処理装置、特にマイクロ
プロセツサのコンパイラプログラムにおいて汎用レジス
タの指定方法を工夫することによりレジスタコンフリク
トにかかるパイプラインの乱れは大きく低減することが
出来る。
を有し、また、数多くのパイプラインの段数を有するデ
ータ処理装置におけるレジスタコンフリクトの発生を低
減でき、パイプライン処理の乱れを少なく出来るという
効果がある。そして、個々の汎用レジスタについてパイ
プラインのステージ毎に書き込み予約フラグを持たせた
ので、本発明を採用したデータ処理装置、特にマイクロ
プロセツサのコンパイラプログラムにおいて汎用レジス
タの指定方法を工夫することによりレジスタコンフリク
トにかかるパイプラインの乱れは大きく低減することが
出来る。
また、パイプラインの各ステージごとに書き込み予約フ
ラグ群があるので、汎用レジスタに対する複数の命令に
よる多重の書き込み予約をすることも可能である。
ラグ群があるので、汎用レジスタに対する複数の命令に
よる多重の書き込み予約をすることも可能である。
第1図は本発明の一実施例によるデータ処理装置におけ
る書き込み予約フラグの制御方法を示した図、第2図は
本発明における書き込み予約フラグ1ビツトの回路構成
を示した図、第3図は従来のデータ処理装置におけるレ
ジスタコンフリクトの検知および制御方法を示した図、
第4図は4段のパイプライン構成のデータ処理装置にお
いてレジスタコンフリクトが生じた場合の命令処理の流
れを示した図、第5図、第6図はレジスタ書き込み予約
信号の生成方法の一実施例を示した回路図である。 図において、(1)は本発明に係る命令デコーダ、
(2)〜(4)は汎用レジスタ、(5)〜(7)は命令
デコードステージにおける書き込み予約フラグ、(8)
はアドレス計算ステージにおける書き込み予約フラグ
群、(9)は演算処理装置、(10)〜(12)は演算実行
ステージにおける書き込み予約フラグ、(13)〜(17)
及び(19)はSRフリツプフロツプ、(18)は従来の命令
デコーダ、(20)は演算処理部、(21)は命令デコード
ステージを示す行、(22)はアドレス計算ステージを示
す行、(23)はオペランドフエツチステージを示す行、
(24)は演算実行ステージを示す行、(25)は命令レジ
スタ、(26)はレジスタフイールド格納レジスタ、(2
7)はOPコードデコーダ、(28)はインバータ、(29)
はAND-OR型PLAゲート、(30)はパイプライン制御回
路、(100)〜(102)はOPコードデコーダの出力信号で
ある。 なお、図中同一符号は同一または相当部分を示す。
る書き込み予約フラグの制御方法を示した図、第2図は
本発明における書き込み予約フラグ1ビツトの回路構成
を示した図、第3図は従来のデータ処理装置におけるレ
ジスタコンフリクトの検知および制御方法を示した図、
第4図は4段のパイプライン構成のデータ処理装置にお
いてレジスタコンフリクトが生じた場合の命令処理の流
れを示した図、第5図、第6図はレジスタ書き込み予約
信号の生成方法の一実施例を示した回路図である。 図において、(1)は本発明に係る命令デコーダ、
(2)〜(4)は汎用レジスタ、(5)〜(7)は命令
デコードステージにおける書き込み予約フラグ、(8)
はアドレス計算ステージにおける書き込み予約フラグ
群、(9)は演算処理装置、(10)〜(12)は演算実行
ステージにおける書き込み予約フラグ、(13)〜(17)
及び(19)はSRフリツプフロツプ、(18)は従来の命令
デコーダ、(20)は演算処理部、(21)は命令デコード
ステージを示す行、(22)はアドレス計算ステージを示
す行、(23)はオペランドフエツチステージを示す行、
(24)は演算実行ステージを示す行、(25)は命令レジ
スタ、(26)はレジスタフイールド格納レジスタ、(2
7)はOPコードデコーダ、(28)はインバータ、(29)
はAND-OR型PLAゲート、(30)はパイプライン制御回
路、(100)〜(102)はOPコードデコーダの出力信号で
ある。 なお、図中同一符号は同一または相当部分を示す。
Claims (2)
- 【請求項1】複数の汎用レジスタを備え、かつ同時に複
数の命令の処理を行うパイプライン制御手段を有するデ
ータ処理装置において、命令をデコードする時に少なく
とも次段以降のパイプラインステージにおいてどの汎用
レジスタのデータを書換えるかの情報を得る手段と、該
書換え情報を汎用レジスタの1つ毎に対応して格納する
フラグ群とを備え、該フラグ群は該データ処理装置にお
ける少なくとも2つ以上のパイプラインステージに対応
して設けられ、前記パイプライン制御手段は前記フラグ
群を参照してレジスタコンフリクトが発生したかどうか
を判断することを特徴とするパイプライン制御回路。 - 【請求項2】前記パイプライン制御手段は、前記書換え
情報を格納する各々のフラグ群のデータを該書換え情報
を生成した命令のパイプラインステージ遷移と同時に遷
移させる手段と、該各々のフラグ群のデータによつてパ
イプラインステージ処理を停止させる手段と、該パイプ
ラインステージ処理が停止した場合、前記パイプライン
ステージ処理が停止したステージの命令より少なくとも
前に前記データ処理装置において処理を開始した命令を
実行しているステージに対応する前記各々のフラグ群の
データを、該対応するステージの処理の終了とともに初
期化する手段とを備えたことを特徴とする特許請求の範
囲第1項記載のパイプライン制御回路。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP62144394A JPH0760388B2 (ja) | 1987-06-09 | 1987-06-09 | パイプライン制御回路 |
US07/156,271 US4907147A (en) | 1987-06-09 | 1988-02-12 | Pipelined data processing system with register indirect addressing |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP62144394A JPH0760388B2 (ja) | 1987-06-09 | 1987-06-09 | パイプライン制御回路 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPS63307535A JPS63307535A (ja) | 1988-12-15 |
JPH0760388B2 true JPH0760388B2 (ja) | 1995-06-28 |
Family
ID=15361131
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP62144394A Expired - Fee Related JPH0760388B2 (ja) | 1987-06-09 | 1987-06-09 | パイプライン制御回路 |
Country Status (2)
Country | Link |
---|---|
US (1) | US4907147A (ja) |
JP (1) | JPH0760388B2 (ja) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5193205A (en) * | 1988-03-01 | 1993-03-09 | Mitsubishi Denki Kabushiki Kaisha | Pipeline processor, with return address stack storing only pre-return processed address for judging validity and correction of unprocessed address |
US5127093A (en) * | 1989-01-17 | 1992-06-30 | Cray Research Inc. | Computer look-ahead instruction issue control |
US5142631A (en) * | 1989-02-03 | 1992-08-25 | Digital Equipment Corporation | System for queuing individual read or write mask and generating respective composite mask for controlling access to general purpose register |
US5239633A (en) * | 1989-03-24 | 1993-08-24 | Mitsubishi Denki Kabushiki Kaisha | Data processor executing memory indirect addressing and register indirect addressing |
JPH03266121A (ja) * | 1990-03-16 | 1991-11-27 | Fujitsu Ltd | パイプライン制御方式 |
US5367648A (en) * | 1991-02-20 | 1994-11-22 | International Business Machines Corporation | General purpose memory access scheme using register-indirect mode |
US5522051A (en) * | 1992-07-29 | 1996-05-28 | Intel Corporation | Method and apparatus for stack manipulation in a pipelined processor |
JP3338488B2 (ja) * | 1992-11-18 | 2002-10-28 | 富士通株式会社 | データ処理装置の検証方法及び装置 |
US5416911A (en) * | 1993-02-02 | 1995-05-16 | International Business Machines Corporation | Performance enhancement for load multiple register instruction |
US5860155A (en) * | 1995-11-16 | 1999-01-12 | Utek Semiconductor Corporation | Instruction decoding mechanism for reducing execution time by earlier detection and replacement of indirect addresses with direct addresses |
US6052766A (en) * | 1998-07-07 | 2000-04-18 | Lucent Technologies Inc. | Pointer register indirectly addressing a second register in the processor core of a digital processor |
US6671794B1 (en) | 2000-10-02 | 2003-12-30 | International Business Machines Corporation | Address generation interlock detection |
US7085274B1 (en) * | 2001-09-19 | 2006-08-01 | Juniper Networks, Inc. | Context-switched multi-stream pipelined reorder engine |
JP6024281B2 (ja) * | 2012-08-21 | 2016-11-16 | 富士通株式会社 | プロセッサ |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3771138A (en) * | 1971-08-31 | 1973-11-06 | Ibm | Apparatus and method for serializing instructions from two independent instruction streams |
US3787673A (en) * | 1972-04-28 | 1974-01-22 | Texas Instruments Inc | Pipelined high speed arithmetic unit |
US3875391A (en) * | 1973-11-02 | 1975-04-01 | Raytheon Co | Pipeline signal processor |
US4025771A (en) * | 1974-03-25 | 1977-05-24 | Hughes Aircraft Company | Pipe line high speed signal processor |
GB1506972A (en) * | 1976-02-06 | 1978-04-12 | Int Computers Ltd | Data processing systems |
GB1527289A (en) * | 1976-08-17 | 1978-10-04 | Int Computers Ltd | Data processing systems |
-
1987
- 1987-06-09 JP JP62144394A patent/JPH0760388B2/ja not_active Expired - Fee Related
-
1988
- 1988-02-12 US US07/156,271 patent/US4907147A/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
US4907147A (en) | 1990-03-06 |
JPS63307535A (ja) | 1988-12-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2818249B2 (ja) | 電子計算機 | |
JPH0816870B2 (ja) | 命令パイプラインをドレーンさせるためのシステム | |
JPH0760388B2 (ja) | パイプライン制御回路 | |
JPH0348537B2 (ja) | ||
JPH05342084A (ja) | データ記憶装置及びデータ記憶方法 | |
JPH04188229A (ja) | 浮動小数点演算処理装置 | |
JPH0810437B2 (ja) | 仮想計算機システムのゲスト実行制御方式 | |
JPS60178580A (ja) | 命令制御方式 | |
JP7137058B2 (ja) | 演算処理装置、情報処理装置及び情報処理装置の制御方法 | |
JPH0384631A (ja) | 情報処理装置及びその制御方法 | |
JPS6134188B2 (ja) | ||
JP2668987B2 (ja) | データ処理装置 | |
JP2671160B2 (ja) | 例外処理方式 | |
JP2876791B2 (ja) | 例外処理装置および例外処理方法 | |
JPH06324861A (ja) | Cpu制御システム及び制御方法 | |
JPS6221130B2 (ja) | ||
JPH0136198B2 (ja) | ||
JP3743155B2 (ja) | パイプライン制御型計算機 | |
JPH0225933A (ja) | データ処理装置 | |
JPH03164945A (ja) | データ処理装置 | |
JPH03184127A (ja) | レジスタ退避制御方法 | |
JPS5896346A (ja) | 階層型演算方式 | |
JPS6149695B2 (ja) | ||
JPH03288929A (ja) | 二重パイプライン制御方式 | |
JPH0916399A (ja) | 計算機 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
LAPS | Cancellation because of no payment of annual fees |