JP2680899B2 - 情報処理装置及びその制御方法 - Google Patents
情報処理装置及びその制御方法Info
- Publication number
- JP2680899B2 JP2680899B2 JP1222062A JP22206289A JP2680899B2 JP 2680899 B2 JP2680899 B2 JP 2680899B2 JP 1222062 A JP1222062 A JP 1222062A JP 22206289 A JP22206289 A JP 22206289A JP 2680899 B2 JP2680899 B2 JP 2680899B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- operand
- signal
- conditional branch
- associative memory
- 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
- 238000000034 method Methods 0.000 title claims description 12
- 230000010365 information processing Effects 0.000 title claims description 11
- 230000015654 memory Effects 0.000 claims description 63
- 238000010586 diagram Methods 0.000 description 12
- 101000860430 Homo sapiens Versican core protein Proteins 0.000 description 3
- 102100028437 Versican core protein Human genes 0.000 description 3
- 101150054516 PRD1 gene Proteins 0.000 description 2
- 101100459905 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) NCP1 gene Proteins 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000011144 upstream manufacturing Methods 0.000 description 2
- 101100238374 Arabidopsis thaliana MPS1 gene Proteins 0.000 description 1
- 230000003213 activating effect Effects 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000001360 synchronised effect 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, look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3842—Speculative instruction execution
- G06F9/3846—Speculative instruction execution using static prediction, e.g. branch taken strategy
Description
【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、条件付き分岐命令を実行する中央処理装置
に関し、特に条件付き分岐命令の制御回路に関する。
に関し、特に条件付き分岐命令の制御回路に関する。
昨今の中央処理装置では、高速化のために、命令の先
取り制御を採り入れている。更に、パイプライン方式を
採る事により、一命令の実行を複数個の処理に分解し、
一時に複数個の命令を処理して高速化を図っているもの
も多い。しかし、条件付き分岐命令の実行に関しては、
命令の先取りや、パイプライン方式がその効果を発揮し
ないことがある。なぜなら、条件付き分岐命令を先取り
し、更に分岐先又は分岐しない場合の命令を先取りして
パイプラインを実行しても、条件付き分岐命令の条件が
前の命令の実行結果によって決定する場合には、条件付
き分岐命令の後で処理した結果が無効になることがある
ためである。
取り制御を採り入れている。更に、パイプライン方式を
採る事により、一命令の実行を複数個の処理に分解し、
一時に複数個の命令を処理して高速化を図っているもの
も多い。しかし、条件付き分岐命令の実行に関しては、
命令の先取りや、パイプライン方式がその効果を発揮し
ないことがある。なぜなら、条件付き分岐命令を先取り
し、更に分岐先又は分岐しない場合の命令を先取りして
パイプラインを実行しても、条件付き分岐命令の条件が
前の命令の実行結果によって決定する場合には、条件付
き分岐命令の後で処理した結果が無効になることがある
ためである。
第4図と、第5図、第6図を使用して、従来の条件付
き分岐命令制御回路を説明する。第4図は、条件付き分
岐命令を実行する中央処理装置の機能ブロック図であ
る。まず、条件付き分岐命令以外の命令の実行を説明す
る。BIU313(以降、BIUと略す)は中央処理装置と主記
憶のインタフェースを制御し、主記憶に対してバスサイ
クルを起動し、内部データバス302を介して、PFU315に
命令を転送する。PFU315(以降PFUと略す)は命令を先
取り、及び蓄積しながらIDU321に対して、命令を供給す
る。IDU321(以降IDUと略す)は命令をデコードする
と、EXU320に対して命令の実行情報を転送し、EAG326に
対してはその命令のオペランドのアドレス生成情報を転
送する。EAG326(以降EAGと略す)はアドレス生成情報
をもとにオペランド・アドレスを計算し、そのアドレス
を連想メモリ314とBIUに転送する。連想メモリ314(以
降連想メモリと略す)はEAGから供給されたアドレスが
以前に登録されたものであれば、その内容(オペランド
・データ)をBIUに転送すると同時に、そのことをHIT31
2(以降HITと略す)をアクティブにして通知する。又、
オペランド・データが連想メモリに、登録されていなか
った場合には、HITをインアクティブにしてBIUに通知す
る。BIUはHITによって連想メモリにオペランドが登録さ
れていないことを知ると外部アドレス端子A−bus307を
駆動して主記憶に対してバスサイクルを起動する。BIU
は外部データ端子D−bus308を介して主記憶からデータ
を入力し、連想メモリに登録する。また、BIUは連想メ
モリ又は主記憶から入力したデータをオペランドバス30
3を介してEXUに転送すると同時に、オペランドが揃って
いることをOPRBSY306によってEXUに通知する。EXUはオ
ペランドを使って命令を実行し、実行結果をオペランド
バス303に出力し内部レジスタ、またはメモリに格納す
る。メモリに格納する場合には、そのことをOPWWR304で
BIUに通知する。この場合BIUは、主記憶に対してライト
のバスサイクルを起動し、D−bus308にライトデータを
出力して実行を終了し次の命令の実行を開始する。
き分岐命令制御回路を説明する。第4図は、条件付き分
岐命令を実行する中央処理装置の機能ブロック図であ
る。まず、条件付き分岐命令以外の命令の実行を説明す
る。BIU313(以降、BIUと略す)は中央処理装置と主記
憶のインタフェースを制御し、主記憶に対してバスサイ
クルを起動し、内部データバス302を介して、PFU315に
命令を転送する。PFU315(以降PFUと略す)は命令を先
取り、及び蓄積しながらIDU321に対して、命令を供給す
る。IDU321(以降IDUと略す)は命令をデコードする
と、EXU320に対して命令の実行情報を転送し、EAG326に
対してはその命令のオペランドのアドレス生成情報を転
送する。EAG326(以降EAGと略す)はアドレス生成情報
をもとにオペランド・アドレスを計算し、そのアドレス
を連想メモリ314とBIUに転送する。連想メモリ314(以
降連想メモリと略す)はEAGから供給されたアドレスが
以前に登録されたものであれば、その内容(オペランド
・データ)をBIUに転送すると同時に、そのことをHIT31
2(以降HITと略す)をアクティブにして通知する。又、
オペランド・データが連想メモリに、登録されていなか
った場合には、HITをインアクティブにしてBIUに通知す
る。BIUはHITによって連想メモリにオペランドが登録さ
れていないことを知ると外部アドレス端子A−bus307を
駆動して主記憶に対してバスサイクルを起動する。BIU
は外部データ端子D−bus308を介して主記憶からデータ
を入力し、連想メモリに登録する。また、BIUは連想メ
モリ又は主記憶から入力したデータをオペランドバス30
3を介してEXUに転送すると同時に、オペランドが揃って
いることをOPRBSY306によってEXUに通知する。EXUはオ
ペランドを使って命令を実行し、実行結果をオペランド
バス303に出力し内部レジスタ、またはメモリに格納す
る。メモリに格納する場合には、そのことをOPWWR304で
BIUに通知する。この場合BIUは、主記憶に対してライト
のバスサイクルを起動し、D−bus308にライトデータを
出力して実行を終了し次の命令の実行を開始する。
条件付き分岐命令を実行する場合には、PFUには、分
岐先、又は分岐しない場合の次の命令が蓄積されてい
る。IDUは条件付き分岐命令をデコードした後、PFUから
転送される後続の命令をデコードする。後続の命令がメ
モリ・オペランドを持つ場合には、IDUはEAGに対してア
ドレス生成情報を転送する。ところが、条件付き分岐命
令の前の命令の実行が終了しておらず、分岐条件が前の
命令の実行結果に依存している場合には、このアドレス
は実際には実行しない可能性がある。EAGで計算される
オペランド・アドレスは、最終的にはオペランド・デー
タとしてBIUに蓄積されるため、もしこのオペランド・
アドレスを実行しなかった場合には余分なデータBIUに
残ってしまい、分岐命令の後の命令で誤ったオペランド
を実行してしまう。従来、この問題を解決するため次の
制御を行っていた。MCU322が、EXUからの実行フラグ類3
18と、IDUのデコードした条件付きの分岐命令の分岐条
件情報319とを照合して、命令の実行タイミング324の状
態により、これから計算するオペランド・アドレスが分
岐条件の確定する前のアドレスであることをEAGに通知
し、この信号(PRD1,323)をEAGはオペランドアドレス
と同じタイミングでPRD2,309として、BIUに出力する。
また、MCU322は分岐命令の前の命令の実行終了後、分岐
命令の後でデコードした命令を実行しないことを示す信
号VCAN311を生成し、BIUに出力する。
岐先、又は分岐しない場合の次の命令が蓄積されてい
る。IDUは条件付き分岐命令をデコードした後、PFUから
転送される後続の命令をデコードする。後続の命令がメ
モリ・オペランドを持つ場合には、IDUはEAGに対してア
ドレス生成情報を転送する。ところが、条件付き分岐命
令の前の命令の実行が終了しておらず、分岐条件が前の
命令の実行結果に依存している場合には、このアドレス
は実際には実行しない可能性がある。EAGで計算される
オペランド・アドレスは、最終的にはオペランド・デー
タとしてBIUに蓄積されるため、もしこのオペランド・
アドレスを実行しなかった場合には余分なデータBIUに
残ってしまい、分岐命令の後の命令で誤ったオペランド
を実行してしまう。従来、この問題を解決するため次の
制御を行っていた。MCU322が、EXUからの実行フラグ類3
18と、IDUのデコードした条件付きの分岐命令の分岐条
件情報319とを照合して、命令の実行タイミング324の状
態により、これから計算するオペランド・アドレスが分
岐条件の確定する前のアドレスであることをEAGに通知
し、この信号(PRD1,323)をEAGはオペランドアドレス
と同じタイミングでPRD2,309として、BIUに出力する。
また、MCU322は分岐命令の前の命令の実行終了後、分岐
命令の後でデコードした命令を実行しないことを示す信
号VCAN311を生成し、BIUに出力する。
その後のBIUの動作は、BIUの内部ブロック図である第
5図を使用して説明する。BIUの内部ブロック図の中
で、前記オペランドアドレスが実行されない場合に影響
を受けるのは、OPRBSY406である。そのため、VCAN411に
よって、この信号を初期化する。また、オペランドが連
想メモリに登録されていなかった場合には、通常417を
セットして、これを外部アクセス要求としてバスサイク
ルを起動する。バスサイクルを起動する場合には、タイ
ミング制御回路によりアドレス・ラッチ413と、データ
・ラッチ414を制御して、主記憶をアクセスする。なん
らかの理由によりVCAN411が出力された時点で、417がセ
ットしていてバスサイクルが起動していない場合には、
417をクリアしてアクセス自身をクリアする。
5図を使用して説明する。BIUの内部ブロック図の中
で、前記オペランドアドレスが実行されない場合に影響
を受けるのは、OPRBSY406である。そのため、VCAN411に
よって、この信号を初期化する。また、オペランドが連
想メモリに登録されていなかった場合には、通常417を
セットして、これを外部アクセス要求としてバスサイク
ルを起動する。バスサイクルを起動する場合には、タイ
ミング制御回路によりアドレス・ラッチ413と、データ
・ラッチ414を制御して、主記憶をアクセスする。なん
らかの理由によりVCAN411が出力された時点で、417がセ
ットしていてバスサイクルが起動していない場合には、
417をクリアしてアクセス自身をクリアする。
第6図に上記条件付き分岐命令実行時のタイミングチ
ャートを示す。はの条件付き分岐命令の分岐条件を
決定する演算命令の実行状態、は条件付き分岐命令の
実行状態、は条件付き分岐命令の次の命令(分岐しな
い場合に次に実行する命令)の実行状態、は条件付き
分岐命令の分岐先の命令の実行状態を示す。特に、ここ
で示すタイミングチャートは、の条件付き分岐命令が
分岐してのオペランドアドレスが連想メモリに登録さ
れていない場合のものである。各命令は矢印の順序に、
各パイプライン・ステージで処理される。
ャートを示す。はの条件付き分岐命令の分岐条件を
決定する演算命令の実行状態、は条件付き分岐命令の
実行状態、は条件付き分岐命令の次の命令(分岐しな
い場合に次に実行する命令)の実行状態、は条件付き
分岐命令の分岐先の命令の実行状態を示す。特に、ここ
で示すタイミングチャートは、の条件付き分岐命令が
分岐してのオペランドアドレスが連想メモリに登録さ
れていない場合のものである。各命令は矢印の順序に、
各パイプライン・ステージで処理される。
第6図で示すように、の条件付き分岐命令が分岐し
てのオペランドアドレスが連想メモリに登録されてい
ない場合には、の連想メモリの入れ替え処理が終了す
るまでの分岐先の命令が連想メモリ、BIUのパイプラ
イン・ステージで停止してしまう。
てのオペランドアドレスが連想メモリに登録されてい
ない場合には、の連想メモリの入れ替え処理が終了す
るまでの分岐先の命令が連想メモリ、BIUのパイプラ
イン・ステージで停止してしまう。
上記のようにオペランドアクセスが無効となる場合で
も、連想メモリへのアクセス自身は、主記憶へのアクセ
スに比較して高速であり、後の命令を実行するための回
復に時間を要しない。しかし、のようにオペランドが
連想メモリに登録されていなかった場合には、主記憶に
対するバスサイクルを起動すると、実行しないオペラン
ドであるのにもかかわらず、低速な主記憶へのアクセス
のために余分な時間を必要とし、本来、条件付き分岐命
令の後で実行すべき命令の実行を遅らせる可能性が大き
い。また、一般的に連想メモリのブロックサイズは外部
データ端子のバス幅よりも大きい場合が多く、連想メモ
リを入れ替えるためには、複数回のバスサイクルを必要
とし、そのオーバーヘッドは大きい。
も、連想メモリへのアクセス自身は、主記憶へのアクセ
スに比較して高速であり、後の命令を実行するための回
復に時間を要しない。しかし、のようにオペランドが
連想メモリに登録されていなかった場合には、主記憶に
対するバスサイクルを起動すると、実行しないオペラン
ドであるのにもかかわらず、低速な主記憶へのアクセス
のために余分な時間を必要とし、本来、条件付き分岐命
令の後で実行すべき命令の実行を遅らせる可能性が大き
い。また、一般的に連想メモリのブロックサイズは外部
データ端子のバス幅よりも大きい場合が多く、連想メモ
リを入れ替えるためには、複数回のバスサイクルを必要
とし、そのオーバーヘッドは大きい。
本発明による情報処理装置は、命令のフェッチ、デコ
ード、オペランドアドレス生成および実行をパイプライ
ン方法で行って条件付き分岐命令を含む一連の命令の各
命令に対する処理を行う情報処理装置であって、オペラ
ンドデータが登録される連想メモリを備えた情報処理装
置において、前記条件付き分岐命令の実行にもとづき分
岐を行うか行わないかが確定するまで、前記条件付き分
岐命令の次にフェッチされた命令が対象とするオペラン
ドデータが前記連想メモリに未登録であった場合の前記
連想メモリに対するデータの入れ替えを保留することを
特徴とする。
ード、オペランドアドレス生成および実行をパイプライ
ン方法で行って条件付き分岐命令を含む一連の命令の各
命令に対する処理を行う情報処理装置であって、オペラ
ンドデータが登録される連想メモリを備えた情報処理装
置において、前記条件付き分岐命令の実行にもとづき分
岐を行うか行わないかが確定するまで、前記条件付き分
岐命令の次にフェッチされた命令が対象とするオペラン
ドデータが前記連想メモリに未登録であった場合の前記
連想メモリに対するデータの入れ替えを保留することを
特徴とする。
具体的には、生成したオペランドアドレスが条件付き
分岐命令の次にフェッチされた命令におけるオペランド
アドレスであるときに制御信号を発生する第1の回路
と、アクセス要求信号が第1の状態になると前記連想メ
モリに対するデータの入れ替えを行う第2の回路と、前
記制御信号が発生されたときに前記条件付き分岐命令に
よる分岐を行うか行わないかが確定するまで、前記アク
セス要求信号を第2の状態に保持する第3の回路を設け
る。また、前記連想メモリは、供給されたオペランドア
ドレスに対応するオペランドデータを登録しているとき
はヒット信号をアクティブレベルとし、当該データを登
録していないときは前記ヒット信号をインアクティブレ
ベルとする手段を有し、前記第3の回路は前記ヒット信
号が前記アクティブレベルのときは前記アクセス要求信
号を前記第2の状態とし、前記ヒット信号が前記インア
クティブレベルのときであって前記制御信号が発生され
ていないときは前記アクセス要求信号を前記第1の状態
とし、前記ヒット信号が前記インアクティブレベルのと
きであって前記制御信号が発生されたときは前記アクセ
ス要求信号を前記第2の状態とする論理ゲート回路を有
することを特徴とする。
分岐命令の次にフェッチされた命令におけるオペランド
アドレスであるときに制御信号を発生する第1の回路
と、アクセス要求信号が第1の状態になると前記連想メ
モリに対するデータの入れ替えを行う第2の回路と、前
記制御信号が発生されたときに前記条件付き分岐命令に
よる分岐を行うか行わないかが確定するまで、前記アク
セス要求信号を第2の状態に保持する第3の回路を設け
る。また、前記連想メモリは、供給されたオペランドア
ドレスに対応するオペランドデータを登録しているとき
はヒット信号をアクティブレベルとし、当該データを登
録していないときは前記ヒット信号をインアクティブレ
ベルとする手段を有し、前記第3の回路は前記ヒット信
号が前記アクティブレベルのときは前記アクセス要求信
号を前記第2の状態とし、前記ヒット信号が前記インア
クティブレベルのときであって前記制御信号が発生され
ていないときは前記アクセス要求信号を前記第1の状態
とし、前記ヒット信号が前記インアクティブレベルのと
きであって前記制御信号が発生されたときは前記アクセ
ス要求信号を前記第2の状態とする論理ゲート回路を有
することを特徴とする。
第1図と第2図と第3図に本発明の一実施例の条件付
き分岐命令制御回路を有する中央処理装置の機能ブロッ
ク図を示す。第1図のPRD1,123とPRD2,109は本実施例で
の第1の手段であり、VCAN111とUCAN127は本実施例での
第2の手段、114は連想メモリ、第1図のBIU113と、そ
の内部ブロック図である第2図の217,218が連想メモリ
の入れ替えを行なう制御回路、219が前記第1の手段と
第2の手段で制御し、連想メモリの入れ替えを保留する
制御回路である。条件付き分岐命令以外の制御は、従来
例と同じなので省略する。条件付き分岐命令を実行する
場合には、PFU115(以降PFUと略す)には、分岐先、又
は分岐しない場合の次の命令が蓄積されている。IDU121
(以降IDUと略す)は条件付き分岐命令をデコードした
後、後続の命令をデコードする。後続の命令がメモリ・
オペランドを持つ場合には、IDUはEAG126(以降EAGと略
す)に対してアドレス生成情報125を転送する。ところ
が、条件付き分岐命令の前の命令の実行が終了しておら
ず、分岐条件が前の命令の実行結果に依存している場合
には、このアドレスは実際には実行しない可能性があ
る。EAGで計算されるオペランド・アドレスは、最終的
にはオペランド・データとしてBIU113(以降BIUと略
す)に蓄積されるため、もしこのオペランド・アドレス
を実行しなかった場合には余分なデータがBIUに残って
しまい、分岐命令の後の命令で誤ったオペランドを実行
してしまう。このため、MCU122が、EXUからの実行フラ
グ類118と、IDUのデコードした条件付き分岐命令の分岐
条件情報119とを照合して、命令の実行タイミング124の
状態により、これから計算するオペランド・アドレスが
分岐条件の確定する前のアドレスであることをEAGに通
知し、この信号(PRD1,123)をEAGはオペランドアドレ
スと同じタイミングでPRD2,109として、BIUに出力す
る。また、MCU122は分岐命令の前の命令の実行終了後、
分岐命令の後にデコードした命令を実行しないことを示
す信号VCAN111と、分岐命令の後にデコードした命令を
実行することを示す信号UCAN127を生成し、BIUに出力す
る。
き分岐命令制御回路を有する中央処理装置の機能ブロッ
ク図を示す。第1図のPRD1,123とPRD2,109は本実施例で
の第1の手段であり、VCAN111とUCAN127は本実施例での
第2の手段、114は連想メモリ、第1図のBIU113と、そ
の内部ブロック図である第2図の217,218が連想メモリ
の入れ替えを行なう制御回路、219が前記第1の手段と
第2の手段で制御し、連想メモリの入れ替えを保留する
制御回路である。条件付き分岐命令以外の制御は、従来
例と同じなので省略する。条件付き分岐命令を実行する
場合には、PFU115(以降PFUと略す)には、分岐先、又
は分岐しない場合の次の命令が蓄積されている。IDU121
(以降IDUと略す)は条件付き分岐命令をデコードした
後、後続の命令をデコードする。後続の命令がメモリ・
オペランドを持つ場合には、IDUはEAG126(以降EAGと略
す)に対してアドレス生成情報125を転送する。ところ
が、条件付き分岐命令の前の命令の実行が終了しておら
ず、分岐条件が前の命令の実行結果に依存している場合
には、このアドレスは実際には実行しない可能性があ
る。EAGで計算されるオペランド・アドレスは、最終的
にはオペランド・データとしてBIU113(以降BIUと略
す)に蓄積されるため、もしこのオペランド・アドレス
を実行しなかった場合には余分なデータがBIUに残って
しまい、分岐命令の後の命令で誤ったオペランドを実行
してしまう。このため、MCU122が、EXUからの実行フラ
グ類118と、IDUのデコードした条件付き分岐命令の分岐
条件情報119とを照合して、命令の実行タイミング124の
状態により、これから計算するオペランド・アドレスが
分岐条件の確定する前のアドレスであることをEAGに通
知し、この信号(PRD1,123)をEAGはオペランドアドレ
スと同じタイミングでPRD2,109として、BIUに出力す
る。また、MCU122は分岐命令の前の命令の実行終了後、
分岐命令の後にデコードした命令を実行しないことを示
す信号VCAN111と、分岐命令の後にデコードした命令を
実行することを示す信号UCAN127を生成し、BIUに出力す
る。
その後のBIUの動作は、BIUの内部ブロック図である第
2図を使用して説明する。BIUの内部ブロック図の中で
前記オペランドアドレスが実行されない場合に影響を受
けるのは、OPRBSY206である。そのため、VCAN211によっ
て、この信号を初期化する。また、オペランドが連想メ
モリに登録されていなかった場合には、通常217をセッ
トして、これを外部アクセス要求としてバスサイクルを
起動する。但し、このフラグ217がセットした時点で、
分岐条件が確定していない場合には、アクセス保留信号
219をセットしてバスサイクルの起動を保留する。
2図を使用して説明する。BIUの内部ブロック図の中で
前記オペランドアドレスが実行されない場合に影響を受
けるのは、OPRBSY206である。そのため、VCAN211によっ
て、この信号を初期化する。また、オペランドが連想メ
モリに登録されていなかった場合には、通常217をセッ
トして、これを外部アクセス要求としてバスサイクルを
起動する。但し、このフラグ217がセットした時点で、
分岐条件が確定していない場合には、アクセス保留信号
219をセットしてバスサイクルの起動を保留する。
やがて、分岐条件が確定し、前記オペランドアドレス
を実行する場合には、UCAN227がアクティブになり、ア
クセス保留信号219が初期化され、217の状態により、連
想メモリの入れ替えのためのバスサイクルを起動する。
前記オペランドアドレスが実行されない場合には、VCAN
211が出力された時点で、217,219がクリアされるため、
連想メモリのアクセスは一切行なわない。
を実行する場合には、UCAN227がアクティブになり、ア
クセス保留信号219が初期化され、217の状態により、連
想メモリの入れ替えのためのバスサイクルを起動する。
前記オペランドアドレスが実行されない場合には、VCAN
211が出力された時点で、217,219がクリアされるため、
連想メモリのアクセスは一切行なわない。
第3図に上記条件付き分岐命令実行時のタイミングチ
ャートを示す。はの条件付き分岐命令の分岐条件を
決定する演算命令の実行状態、は条件付き分岐命令の
実行状態、は条件付き分岐命令の次の命令(分岐しな
い場合に次に実行する命令)の実行状態、は条件付き
分岐命令の分岐先の命令の実行状態を示す。特に、ここ
で示すタイミングチャートは、の条件付き分岐命令が
分岐してのオペランドアドレスが連想メモリに登録さ
れていない場合のものである。各命令は矢印の順序に、
各パイプライン・ステージで処理される。
ャートを示す。はの条件付き分岐命令の分岐条件を
決定する演算命令の実行状態、は条件付き分岐命令の
実行状態、は条件付き分岐命令の次の命令(分岐しな
い場合に次に実行する命令)の実行状態、は条件付き
分岐命令の分岐先の命令の実行状態を示す。特に、ここ
で示すタイミングチャートは、の条件付き分岐命令が
分岐してのオペランドアドレスが連想メモリに登録さ
れていない場合のものである。各命令は矢印の順序に、
各パイプライン・ステージで処理される。
このように、の条件付き分岐命令が分岐してのオ
ペランドアドレスが連想メモリに登録されていない場合
にも、の連想メモリの入れ替え処理を保留することに
より、の分岐先の命令が連想メモリ、BIUのパイプラ
イン・ステージで停止することがなくなった。
ペランドアドレスが連想メモリに登録されていない場合
にも、の連想メモリの入れ替え処理を保留することに
より、の分岐先の命令が連想メモリ、BIUのパイプラ
イン・ステージで停止することがなくなった。
ここで説明した、連想メモリは主記憶のコピーを持つ
一般的にキャッシュ・メモリと呼ばれるものであるが、
仮想記憶管理の場合には仮想アドレスと物理アドレスの
対を持つ記憶装置についても同様に条件付き分岐命令制
御回路を適用できる。
一般的にキャッシュ・メモリと呼ばれるものであるが、
仮想記憶管理の場合には仮想アドレスと物理アドレスの
対を持つ記憶装置についても同様に条件付き分岐命令制
御回路を適用できる。
以上説明したように、条件付き分岐命令の分岐条件が
確定する前に連想メモリをアクセスするアドレスが、連
想メモリに登録されていない場合には、条件が確定する
まで連想メモリの入替えを保留することにより、主記憶
に対する余分なアクセス時間がなくなり、条件付き分岐
命令の後の命令の実行を遅らせることはなくなった。ま
た、本発明が解決しようとする問題点に対して、条件付
き分岐命令の分岐条件が確定するまでの期間中、命令デ
コードや、アドレス計算といったパイプラインの上流で
処理を停止させる解決手段を採る場合に比較して、連想
メモリの入れ替え時点というパイプラインの下流で処理
を停止させることにより、条件付き分岐命令の分岐条件
が確定するまでの期間もパイプラインの上流が処理を停
止させることなく、条件付き分岐命令以降の命令を実行
できるため、オペランドが無効にならない場合や、連想
メモリに登録されている場合の処理が高速である点で効
果が大きい。
確定する前に連想メモリをアクセスするアドレスが、連
想メモリに登録されていない場合には、条件が確定する
まで連想メモリの入替えを保留することにより、主記憶
に対する余分なアクセス時間がなくなり、条件付き分岐
命令の後の命令の実行を遅らせることはなくなった。ま
た、本発明が解決しようとする問題点に対して、条件付
き分岐命令の分岐条件が確定するまでの期間中、命令デ
コードや、アドレス計算といったパイプラインの上流で
処理を停止させる解決手段を採る場合に比較して、連想
メモリの入れ替え時点というパイプラインの下流で処理
を停止させることにより、条件付き分岐命令の分岐条件
が確定するまでの期間もパイプラインの上流が処理を停
止させることなく、条件付き分岐命令以降の命令を実行
できるため、オペランドが無効にならない場合や、連想
メモリに登録されている場合の処理が高速である点で効
果が大きい。
第1図は、本発明の条件付き分岐命令制御回路を有する
中央処理装置の一実施例を示すブロック図、第2図は第
1図に示すBIU113の一例を示すブロック図、第3図は本
実施例のタイミングチャート図、第4図は従来の条件付
き分岐命令を実行する中央処理装置のブロック図、第5
図は第4図のBIU313のブロック図、第6図は第4図,第
5図のタイミングチャート図である。 101……内部アドレス・バス、102……内部データ・バ
ス、103……オペランド・バス、104……OPRRD,EXU120が
メモリオペランドをBIU113から読み出す信号、105……O
PWWR,EXU120がメモリオペランドをBIU113へ書込む信
号、106……OPRBSY,BIU113にメモリオペランドが在るこ
とを示す信号、107……A−bus,外部アドレス端子、108
……D−bus,外部データ端子、109……PRD2,PRD1(12
3)をアドレス転送に同期をとった信号、110……ASTB,
内部アドレス転送タイミング信号、111……VCAN,条件付
き分岐命令の分岐条件確定後、分岐命令の後にデコード
した命令を実行しないことを示す、112……HIT,入力ア
ドレスに対して連想メモリが登録されていたことを示
す、113……BIU,中央処理装置の1ユニット。バス・イ
ンタフェース・ユニット、114……連想メモリ、115……
PFU,中央処理装置の1ユニット。先取り命令蓄積・ユニ
ット、116……命令供給バス、117……命令実行情報、11
8……実行フラグ類。条件分岐命令の条件フラグ類、119
……分岐条件情報。分岐分岐命令の条件の種類を示す、
120……EXU,中央処理装置の1ユニット。命令実行・ユ
ニット、121……IDU,中央処理装置の1ユニット。命令
デコード・ユニット、122……MCU,VCAN111,UCAN127の生
成回路、123……PRD1,これから計算するオペランド・ア
ドレスが分岐条件の確定する前のアドレスであることを
示す信号、124……実行タイミング信号、125……アドレ
ス生成情報、126……EAG,中央処理装置の1ユニット。
実行アドレス生成・ユニット、127……UCAN,条件付き分
岐命令の分岐条件確定後、分岐命令の後にデコードした
命令を実行することを示す。
中央処理装置の一実施例を示すブロック図、第2図は第
1図に示すBIU113の一例を示すブロック図、第3図は本
実施例のタイミングチャート図、第4図は従来の条件付
き分岐命令を実行する中央処理装置のブロック図、第5
図は第4図のBIU313のブロック図、第6図は第4図,第
5図のタイミングチャート図である。 101……内部アドレス・バス、102……内部データ・バ
ス、103……オペランド・バス、104……OPRRD,EXU120が
メモリオペランドをBIU113から読み出す信号、105……O
PWWR,EXU120がメモリオペランドをBIU113へ書込む信
号、106……OPRBSY,BIU113にメモリオペランドが在るこ
とを示す信号、107……A−bus,外部アドレス端子、108
……D−bus,外部データ端子、109……PRD2,PRD1(12
3)をアドレス転送に同期をとった信号、110……ASTB,
内部アドレス転送タイミング信号、111……VCAN,条件付
き分岐命令の分岐条件確定後、分岐命令の後にデコード
した命令を実行しないことを示す、112……HIT,入力ア
ドレスに対して連想メモリが登録されていたことを示
す、113……BIU,中央処理装置の1ユニット。バス・イ
ンタフェース・ユニット、114……連想メモリ、115……
PFU,中央処理装置の1ユニット。先取り命令蓄積・ユニ
ット、116……命令供給バス、117……命令実行情報、11
8……実行フラグ類。条件分岐命令の条件フラグ類、119
……分岐条件情報。分岐分岐命令の条件の種類を示す、
120……EXU,中央処理装置の1ユニット。命令実行・ユ
ニット、121……IDU,中央処理装置の1ユニット。命令
デコード・ユニット、122……MCU,VCAN111,UCAN127の生
成回路、123……PRD1,これから計算するオペランド・ア
ドレスが分岐条件の確定する前のアドレスであることを
示す信号、124……実行タイミング信号、125……アドレ
ス生成情報、126……EAG,中央処理装置の1ユニット。
実行アドレス生成・ユニット、127……UCAN,条件付き分
岐命令の分岐条件確定後、分岐命令の後にデコードした
命令を実行することを示す。
フロントページの続き (56)参考文献 特開 昭63−280355(JP,A)
Claims (3)
- 【請求項1】命令のフェッチ、デコード、オペランドア
ドレス生成および実行をパイプライン方法で行って条件
付き分岐命令を含む一連の命令の各命令に対する処理を
行う情報処理装置であって、オペランドデータが登録さ
れる連想メモリを備えた情報処理装置の制御方法におい
て、 前記条件付き分岐命令の実行にもとづき分岐を行うか行
わないかが確定するまで、前記条件付き分岐命令の次に
フェッチされた命令が対象とするオペランドデータが前
記連想メモリに未登録であった場合の前記連想メモリに
対するデータの入れ替えを保留することを特徴とする情
報処理装置の制御方法。 - 【請求項2】命令のフェッチ、デコード、オペランドア
ドレス生成および実行をパイプライン方法で行って条件
付き分岐命令を含む一連の命令の各命令に対する処理を
行う情報処理装置であって、オペランドデータが登録さ
れる連想メモリを備えた情報処理装置において、 生成したオペランドアドレスが条件付き分岐命令の次に
フェッチされた命令におけるオペランドアドレスである
ときに制御信号を発生する第1の回路と、アクセス要求
信号が第1の状態になると前記連想メモリに対するデー
タの入れ替えを行う第2の回路と、前記制御信号が発生
されたときに前記条件付き分岐命令による分岐を行うか
行わないかが確定するまで、前記アクセス要求信号を第
2の状態に保持する第3の回路を設けたことを特徴とす
る情報処理装置。 - 【請求項3】前記連想メモリは、供給されたオペランド
アドレスに対応するオペランドデータを登録していると
きはヒット信号をアクティブレベルとし、当該データを
登録していないときは前記ヒット信号をインアクティブ
レベルとする手段を有し、前記第3の回路は前記ヒット
信号が前記アクティブレベルのときは前記アクセス要求
信号を前記第2の状態とし、前記ヒット信号が前記イン
アクティブレベルのときであって前記制御信号が発生さ
れていないときは前記アクセス要求信号を前記第1の状
態とし、前記ヒット信号が前記インアクティブレベルの
ときであって前記制御信号が発生されたときは前記アク
セス要求信号を前記第2の状態とする論理ゲート回路を
有することを特徴とする請求項2記載の情報処理装置。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP1222062A JP2680899B2 (ja) | 1989-08-28 | 1989-08-28 | 情報処理装置及びその制御方法 |
EP19900116487 EP0415351A3 (en) | 1989-08-28 | 1990-08-28 | Data processor for processing instruction after conditional branch instruction at high speed |
US08/220,936 US5421026A (en) | 1989-08-28 | 1994-03-31 | Data processor for processing instruction after conditional branch instruction at high speed |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP1222062A JP2680899B2 (ja) | 1989-08-28 | 1989-08-28 | 情報処理装置及びその制御方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH0384631A JPH0384631A (ja) | 1991-04-10 |
JP2680899B2 true JP2680899B2 (ja) | 1997-11-19 |
Family
ID=16776514
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP1222062A Expired - Fee Related JP2680899B2 (ja) | 1989-08-28 | 1989-08-28 | 情報処理装置及びその制御方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US5421026A (ja) |
EP (1) | EP0415351A3 (ja) |
JP (1) | JP2680899B2 (ja) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2536726B2 (ja) * | 1993-07-07 | 1996-09-18 | 日本電気株式会社 | マイクロプロセッサ |
US5584009A (en) * | 1993-10-18 | 1996-12-10 | Cyrix Corporation | System and method of retiring store data from a write buffer |
US5659722A (en) * | 1994-04-28 | 1997-08-19 | International Business Machines Corporation | Multiple condition code branching system in a multi-processor environment |
JP3150611B2 (ja) * | 1996-03-29 | 2001-03-26 | 株式会社東芝 | パターン発生装置 |
SG143064A1 (en) | 2001-02-16 | 2008-06-27 | Sony Corp | Data processing method and its apparatus |
US7647486B2 (en) | 2006-05-02 | 2010-01-12 | Atmel Corporation | Method and system having instructions with different execution times in different modes, including a selected execution time different from default execution times in a first mode and a random execution time in a second mode |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4613935A (en) * | 1983-02-02 | 1986-09-23 | Couleur John F | Method and apparatus for pipe line processing with a single arithmetic logic unit |
FI86484C (fi) * | 1984-04-27 | 1992-08-25 | Honeywell Inf Systems | Styrorgan i en digital datamaskin. |
US4742451A (en) * | 1984-05-21 | 1988-05-03 | Digital Equipment Corporation | Instruction prefetch system for conditional branch instruction for central processor unit |
JPH0769818B2 (ja) * | 1984-10-31 | 1995-07-31 | 株式会社日立製作所 | デ−タ処理装置 |
CA1250667A (en) * | 1985-04-15 | 1989-02-28 | Larry D. Larsen | Branch control in a three phase pipelined signal processor |
US4991080A (en) * | 1986-03-13 | 1991-02-05 | International Business Machines Corporation | Pipeline processing apparatus for executing instructions in three streams, including branch stream pre-execution processor for pre-executing conditional branch instructions |
JPS63245525A (ja) * | 1987-03-31 | 1988-10-12 | Toshiba Corp | マイクロプログラム処理装置 |
JPS63280355A (ja) * | 1987-05-13 | 1988-11-17 | Hitachi Ltd | 情報処理装置 |
US4942520A (en) * | 1987-07-31 | 1990-07-17 | Prime Computer, Inc. | Method and apparatus for indexing, accessing and updating a memory |
JPH0766324B2 (ja) * | 1988-03-18 | 1995-07-19 | 三菱電機株式会社 | データ処理装置 |
-
1989
- 1989-08-28 JP JP1222062A patent/JP2680899B2/ja not_active Expired - Fee Related
-
1990
- 1990-08-28 EP EP19900116487 patent/EP0415351A3/en not_active Withdrawn
-
1994
- 1994-03-31 US US08/220,936 patent/US5421026A/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
EP0415351A3 (en) | 1992-03-18 |
US5421026A (en) | 1995-05-30 |
EP0415351A2 (en) | 1991-03-06 |
JPH0384631A (ja) | 1991-04-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2518616B2 (ja) | 分岐方法 | |
US6687809B2 (en) | Maintaining processor ordering by checking load addresses of unretired load instructions against snooping store addresses | |
JP5543366B2 (ja) | ロックされたオペレーションを実行するためのシステムおよび方法 | |
JPS63131230A (ja) | 情報処理装置 | |
JP2010526392A (ja) | システムおよびパイプラインプロセッサにおける条件命令実行の加速のためのローカル条件コードレジスタの使用方法 | |
JP2002024205A (ja) | ベクトルスキャタ命令制御回路及びベクトル型情報処理装置 | |
JPH07129413A (ja) | 割込み処理装置 | |
US20240036876A1 (en) | Pipeline protection for cpus with save and restore of intermediate results | |
US7293160B2 (en) | Mechanism for eliminating the restart penalty when reissuing deferred instructions | |
US5687381A (en) | Microprocessor including an interrupt polling unit configured to poll external devices for interrupts using interrupt acknowledge bus transactions | |
US6006325A (en) | Method and apparatus for instruction and data serialization in a computer processor | |
JP2680899B2 (ja) | 情報処理装置及びその制御方法 | |
JP2004511042A (ja) | プログラム可能なプロセッサのリセット | |
US5948093A (en) | Microprocessor including an interrupt polling unit configured to poll external devices for interrupts when said microprocessor is in a task switch state | |
JP2004145454A (ja) | 情報処理装置及び情報処理方法 | |
EP0374598B1 (en) | Control store addressing from multiple sources | |
JPH08249175A (ja) | スーパースカラ・プロセッサ装置内の非アーキテクト命令を選択的にサポートする方法及び装置 | |
JPS60103454A (ja) | 命令先読み制御装置 | |
JPH07182165A (ja) | コミット条件付き命令の処理方法およびその装置 | |
US20020144089A1 (en) | Use of a future file for data address calculations in a pipelined processor | |
JP3180803B2 (ja) | スーパースカラプロセッサ | |
JP2885548B2 (ja) | パイプライン制御方式 | |
JPH027128A (ja) | 情報処理装置 | |
JP2944335B2 (ja) | 情報処理装置 | |
JPH02183333A (ja) | データ処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
LAPS | Cancellation because of no payment of annual fees |