JPH01100638A - 命令リトライ制御方式 - Google Patents
命令リトライ制御方式Info
- Publication number
- JPH01100638A JPH01100638A JP62259341A JP25934187A JPH01100638A JP H01100638 A JPH01100638 A JP H01100638A JP 62259341 A JP62259341 A JP 62259341A JP 25934187 A JP25934187 A JP 25934187A JP H01100638 A JPH01100638 A JP H01100638A
- Authority
- JP
- Japan
- Prior art keywords
- register
- instruction
- counter
- data
- buffer
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Advance Control (AREA)
- Retry When Errors Occur (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
技術分野
本発明はりトライ制御方式に関し、特に間欠障害の救済
を行うための命令リトライ制御方式に関する。
を行うための命令リトライ制御方式に関する。
従来技術
従来のパイプライン処理型情報処理装置でのパイプライ
ン処理は次のようにして行われる。第4図を参照すると
、このパイプライン処理の一例では、アドレス手段によ
り命令キャッシュから命令を取出す命令取出(IF)ス
テージ、このステージで取出された命令を命令レジスタ
に格納したあとこの命令のオペランドにもとづきアドレ
ス加算器で論理アドレスを生成するオペランドアドレス
生成(AC)ステージ、このステージで生成された論理
アドレスを論理アドレスレジスタに格納した後アドレス
変換バッファで論理アドレスを物理アドレスに変換する
アドレス変換(AT)ステージ、このステージで変換さ
れた物理アドレスを物理アドレスレジスタに格納したあ
と、この物理アドレスでオペランドキャッシュをアクセ
スし、オペランドを読出すオペランドキャッシュアクセ
ス(CA)ステージ、このステージで読出されたオペラ
ンドを実行レジスタに格納したあと演算器で演算する演
算実行([X)ステージ、及びこのステージで演算され
た結果を格納する結果格納(ST)ステージの6つのス
テージに分割されでいる。
ン処理は次のようにして行われる。第4図を参照すると
、このパイプライン処理の一例では、アドレス手段によ
り命令キャッシュから命令を取出す命令取出(IF)ス
テージ、このステージで取出された命令を命令レジスタ
に格納したあとこの命令のオペランドにもとづきアドレ
ス加算器で論理アドレスを生成するオペランドアドレス
生成(AC)ステージ、このステージで生成された論理
アドレスを論理アドレスレジスタに格納した後アドレス
変換バッファで論理アドレスを物理アドレスに変換する
アドレス変換(AT)ステージ、このステージで変換さ
れた物理アドレスを物理アドレスレジスタに格納したあ
と、この物理アドレスでオペランドキャッシュをアクセ
スし、オペランドを読出すオペランドキャッシュアクセ
ス(CA)ステージ、このステージで読出されたオペラ
ンドを実行レジスタに格納したあと演算器で演算する演
算実行([X)ステージ、及びこのステージで演算され
た結果を格納する結果格納(ST)ステージの6つのス
テージに分割されでいる。
この各ステージは一般には1マシンサイクルタイムtが
割当てられ、この入力端から1マシンサイクルを毎にデ
ータが与えられ夫々のステージで論理処理が行われたあ
と、出力端に1マシンサイクルタイムを毎に格納される
。このうち演算実行(EX)ステージはさらに数段階の
演算実行ステージに分割されており、これは1マシンサ
イクルタイムを以上の時間を必要とする。
割当てられ、この入力端から1マシンサイクルを毎にデ
ータが与えられ夫々のステージで論理処理が行われたあ
と、出力端に1マシンサイクルタイムを毎に格納される
。このうち演算実行(EX)ステージはさらに数段階の
演算実行ステージに分割されており、これは1マシンサ
イクルタイムを以上の時間を必要とする。
第5図を参照すると、演算器の左側には浮動小数点の演
算を行うパイプラインステージが構成され、右側には固
定小数点の演算を行うパイプラインステージが構成され
ている。このような構成では、固定小数点演算命令のよ
うに右側の一段目のステージで演算が終了してしまうに
もかかわらず、左側のソフトウェアステージに合せた固
定レジスタが配置されタイミング調整が行われるため、
命令カウンタの更新は長い左側の浮動小数点用バイプラ
インによる命令カウンタの更新時まで待たれることにな
る。従って、固定レジスタを何段も重ねる必要があり、
またその制御回路も必要となってハードウェアの増大を
招くことになる。その上、演算結果は固定レジスタを順
次流れることになり、後続の命令のこの演算実行ステー
ジへの導入が遅延されるという欠点も招く。
算を行うパイプラインステージが構成され、右側には固
定小数点の演算を行うパイプラインステージが構成され
ている。このような構成では、固定小数点演算命令のよ
うに右側の一段目のステージで演算が終了してしまうに
もかかわらず、左側のソフトウェアステージに合せた固
定レジスタが配置されタイミング調整が行われるため、
命令カウンタの更新は長い左側の浮動小数点用バイプラ
インによる命令カウンタの更新時まで待たれることにな
る。従って、固定レジスタを何段も重ねる必要があり、
またその制御回路も必要となってハードウェアの増大を
招くことになる。その上、演算結果は固定レジスタを順
次流れることになり、後続の命令のこの演算実行ステー
ジへの導入が遅延されるという欠点も招く。
発明の目的
本発明の目的は、後続の命令に早く更新されたソフトビ
ジプルレジスタのデータを渡すことにより、演算速度の
向上をはかり、少ないハードウニで高いリトライ率を得
るようにした命令リトライ制御方式を提供することにあ
る。
ジプルレジスタのデータを渡すことにより、演算速度の
向上をはかり、少ないハードウニで高いリトライ率を得
るようにした命令リトライ制御方式を提供することにあ
る。
発明の構成
本発明の方式は、パイプラインの長さの異なる演算制御
手段を有する命令リトライ制御方式であって、前記演算
制御手段からの演算結果を格納するソフトウエアビジブ
ル格納手段と、このソフトウエアビジブル格納手段の内
容がある命令に対していくつ更新されたかを示す値を表
示するレジメタセーブバッファカウンタ手段と、どの命
令がいくつ前記ソフトウエアビジブル格納手段の内容を
更新し前記レジスタセーブカウンタ手段のどの値が表示
されているかを認識し制御する手段とを含む構成である
。
手段を有する命令リトライ制御方式であって、前記演算
制御手段からの演算結果を格納するソフトウエアビジブ
ル格納手段と、このソフトウエアビジブル格納手段の内
容がある命令に対していくつ更新されたかを示す値を表
示するレジメタセーブバッファカウンタ手段と、どの命
令がいくつ前記ソフトウエアビジブル格納手段の内容を
更新し前記レジスタセーブカウンタ手段のどの値が表示
されているかを認識し制御する手段とを含む構成である
。
実施例
次に本発明の一実施例について図面を参照して詳細に説
明する。
明する。
第1図を参照すると、本発明の一実施例は第4図の命令
取出(IF)、オペランドアドレス生成(AC) 、ア
ドレス変換(AT)、及びオペランドキャッシュアクセ
ス(CA)の各処理のあと演算実行([X)の制御を行
う演算制御部1、ソフトウェアが操作可能なソフトウエ
アビジブルレジスタ2、演算制御部1から線101を介
して与えられるレジスタ2用更新指示信号を格納する第
1更新指示レジスタPCC3、演算制御部1から線10
2を介して与えられるレジスタ2用種別指示信号を格納
する第1種別指示レジスタRID 4、演算制御部1か
ら線103を介して与えられるレジスタ2のレジスタ番
号を格納する第1番号レジスタRNO5、演算制御部1
から線104を介して与えられるレジスタ2用更新デー
タを格納する更新データレジスタRDR6、第1更新指
示レジスタPCC3からの更新指示信号を格納する第2
更新指示レジスタPCC’ 7 、第1種別指示レジス
タRID 4からの種別指示信号を格納するRID°8
、第1番号レジスタRNO5からのレジスタ番号を格納
する第2番号レジスタRNO’9、ソフトウエアビジブ
ルレジスタ2からの書込前データを格納する読出データ
レジスタRDR’10、ソフトウエアビジブルレジスタ
2の更新に応答して更新前のデータをレジスタセーブバ
ッファ13に書込む指示をし、リカバーに応答してレジ
スタセーブバッファ13内の有効データをすべてソフト
ウエアビジブルレジスタ2に書戻すように指示するレジ
スタセーブバッファセーブ/リカバー制御部11、この
制御部11の指示に応答して更新前のデータを記憶し有
効データを読出すレジスタセーブバッファ13、このレ
ジスタセーブバッファ13に対しクリア指示を行うレジ
スタセーブバツファクリア制御部21、線115を介し
て前記レジスタセーブバッファ13にセーブアドレスを
供給するセーブアドレスレジスタ5BA12、このレジ
スタSBA 12の内容を更新するためのカウンタCN
T14、命令カウンタ17、この命令カウンタ17の内
容を更新するためのCNT 18、障害処理を制御し線
108を介して障害検出信号を送出し線111を介して
セーブ/リカバー制御部11にリカバー指示信号を送出
する障害処理制御部16、線108を介して与えられる
障害検出信号に応答して命令カウンタ17の内容の更新
を制御する命令カウンタ更新制御部15、ある命令がい
くつのソフトウエアビジブルレジスタ2の内容を更新し
たかを示す値を保持するレジスタセーブバッファカウン
タ20、及び演算部における複数の段数の異なるパイプ
ラインによりソフトウエアビジブルレジスタ2の更新順
序は演算部に入るまでのシリアルな命令順序とは一致し
なくなるために、どの命令がいくつソフトウエアビジブ
ルレジスタ2の値を更新しその値であるカウント数をレ
ジスタセーブバッファカウンタ20の中のどのカウンタ
(I)、(II>または(Ill)が保持しているかを
認識し制御するレジスタバッフ7力ウンタ制御部19を
含む。
取出(IF)、オペランドアドレス生成(AC) 、ア
ドレス変換(AT)、及びオペランドキャッシュアクセ
ス(CA)の各処理のあと演算実行([X)の制御を行
う演算制御部1、ソフトウェアが操作可能なソフトウエ
アビジブルレジスタ2、演算制御部1から線101を介
して与えられるレジスタ2用更新指示信号を格納する第
1更新指示レジスタPCC3、演算制御部1から線10
2を介して与えられるレジスタ2用種別指示信号を格納
する第1種別指示レジスタRID 4、演算制御部1か
ら線103を介して与えられるレジスタ2のレジスタ番
号を格納する第1番号レジスタRNO5、演算制御部1
から線104を介して与えられるレジスタ2用更新デー
タを格納する更新データレジスタRDR6、第1更新指
示レジスタPCC3からの更新指示信号を格納する第2
更新指示レジスタPCC’ 7 、第1種別指示レジス
タRID 4からの種別指示信号を格納するRID°8
、第1番号レジスタRNO5からのレジスタ番号を格納
する第2番号レジスタRNO’9、ソフトウエアビジブ
ルレジスタ2からの書込前データを格納する読出データ
レジスタRDR’10、ソフトウエアビジブルレジスタ
2の更新に応答して更新前のデータをレジスタセーブバ
ッファ13に書込む指示をし、リカバーに応答してレジ
スタセーブバッファ13内の有効データをすべてソフト
ウエアビジブルレジスタ2に書戻すように指示するレジ
スタセーブバッファセーブ/リカバー制御部11、この
制御部11の指示に応答して更新前のデータを記憶し有
効データを読出すレジスタセーブバッファ13、このレ
ジスタセーブバッファ13に対しクリア指示を行うレジ
スタセーブバツファクリア制御部21、線115を介し
て前記レジスタセーブバッファ13にセーブアドレスを
供給するセーブアドレスレジスタ5BA12、このレジ
スタSBA 12の内容を更新するためのカウンタCN
T14、命令カウンタ17、この命令カウンタ17の内
容を更新するためのCNT 18、障害処理を制御し線
108を介して障害検出信号を送出し線111を介して
セーブ/リカバー制御部11にリカバー指示信号を送出
する障害処理制御部16、線108を介して与えられる
障害検出信号に応答して命令カウンタ17の内容の更新
を制御する命令カウンタ更新制御部15、ある命令がい
くつのソフトウエアビジブルレジスタ2の内容を更新し
たかを示す値を保持するレジスタセーブバッファカウン
タ20、及び演算部における複数の段数の異なるパイプ
ラインによりソフトウエアビジブルレジスタ2の更新順
序は演算部に入るまでのシリアルな命令順序とは一致し
なくなるために、どの命令がいくつソフトウエアビジブ
ルレジスタ2の値を更新しその値であるカウント数をレ
ジスタセーブバッファカウンタ20の中のどのカウンタ
(I)、(II>または(Ill)が保持しているかを
認識し制御するレジスタバッフ7力ウンタ制御部19を
含む。
第2図を参照すると、第1図の演算制御部1は5段のパ
イプラインで形成されており、浮動小数点演算にともな
いソフトウエアビジブルレジスタ2用更新指示信号を夫
々のステージ(段)で保持するレジスタ群31〜36、
浮動小数点演算にともない更新すべきソフトウエアビジ
ブルレジスタ2種別信号をパイプラインの各ステージで
保持するレジスタ群37〜42、浮動小数点演算にとも
ない更新すべきソフトウエアビジブルレジスタ2のレジ
スタ番号をパイプラインの各ステージで保持するレジス
タ群43〜48、浮動小数点演算を行うためのレジスタ
群49〜54と、桁合せ回路55及び59と、演算器群
56〜58、固定小数点演算にともないソフトウエアビ
ジブルレジスタ2用更新指示信号をパイプラインの最初
のステージのみで保持するレジスタ60及び61、固定
小数点演算にともない更新すべきソフトウエアビジブル
レジスタ2種別信号をパイプラインの最初のステージの
みで保持するレジスタ62及び63、固定小数点演算に
ともない更新すべきソフトウエアビジブルレジスタのレ
ジスタ番号をパイプラインの最初のステージのみで保持
するレジスタ64及び65、固定小数点演算を行うため
のレジスタ66及び67と演算器68、浮動小数点用レ
ジスタ36及び固定小数点用レジスタ61のどちらか一
方からの更新指示信号を選択して線101に送出するセ
レクタ69、浮動小数点用レジスタ42及び固定小数点
用レジスタ63のどちらか一方からの種別信号を選択し
て線102に送出するセレクタ70、浮動小数点用レジ
スタ48及び固定小数点用レジスタ65のどちらか一方
からのレジスタ番号を選択して線103に送出するセレ
クタ71、及び浮動小数点用レジスタ54及び固定小数
点用レジスタ67のどちらか一方からの演算結果を選択
して線104に送出するセレクタ72を含む。
イプラインで形成されており、浮動小数点演算にともな
いソフトウエアビジブルレジスタ2用更新指示信号を夫
々のステージ(段)で保持するレジスタ群31〜36、
浮動小数点演算にともない更新すべきソフトウエアビジ
ブルレジスタ2種別信号をパイプラインの各ステージで
保持するレジスタ群37〜42、浮動小数点演算にとも
ない更新すべきソフトウエアビジブルレジスタ2のレジ
スタ番号をパイプラインの各ステージで保持するレジス
タ群43〜48、浮動小数点演算を行うためのレジスタ
群49〜54と、桁合せ回路55及び59と、演算器群
56〜58、固定小数点演算にともないソフトウエアビ
ジブルレジスタ2用更新指示信号をパイプラインの最初
のステージのみで保持するレジスタ60及び61、固定
小数点演算にともない更新すべきソフトウエアビジブル
レジスタ2種別信号をパイプラインの最初のステージの
みで保持するレジスタ62及び63、固定小数点演算に
ともない更新すべきソフトウエアビジブルレジスタのレ
ジスタ番号をパイプラインの最初のステージのみで保持
するレジスタ64及び65、固定小数点演算を行うため
のレジスタ66及び67と演算器68、浮動小数点用レ
ジスタ36及び固定小数点用レジスタ61のどちらか一
方からの更新指示信号を選択して線101に送出するセ
レクタ69、浮動小数点用レジスタ42及び固定小数点
用レジスタ63のどちらか一方からの種別信号を選択し
て線102に送出するセレクタ70、浮動小数点用レジ
スタ48及び固定小数点用レジスタ65のどちらか一方
からのレジスタ番号を選択して線103に送出するセレ
クタ71、及び浮動小数点用レジスタ54及び固定小数
点用レジスタ67のどちらか一方からの演算結果を選択
して線104に送出するセレクタ72を含む。
まず、本発明の一実施例の前提となる動作について詳細
に説明する。まず、先行する命令Aは浮動小数点演算命
令のように長いパイプライン演算処理を必要とするもの
とする。
に説明する。まず、先行する命令Aは浮動小数点演算命
令のように長いパイプライン演算処理を必要とするもの
とする。
第3図を参照すると、サイクル1で命令Aが命令取出(
IF)ステージの処理により取出される。
IF)ステージの処理により取出される。
次にサイクル2では、命令Aはアドレス生成(AC)ス
テージの処理によりアドレス生成されるとともに、固定
小数点演算命令のような短いパイプライン演算ですむ命
令Bは、命令取出(IF)ステージの処理により取出さ
れる。以下同様に、命令Aはアドレス変換(AT)、及
びキャッシュアクセス(’CA)の処理がなされたあと
、サイクル5から浮動小数点の演算が行われる。命令B
はアドレス生成(AC) 、アドレス変換(^T)及び
キャッシュアクセス(CA)の処理がなされたあと、サ
イクル6から32ビット固定小数点データの16バイト
ずつの演算が行われる。
テージの処理によりアドレス生成されるとともに、固定
小数点演算命令のような短いパイプライン演算ですむ命
令Bは、命令取出(IF)ステージの処理により取出さ
れる。以下同様に、命令Aはアドレス変換(AT)、及
びキャッシュアクセス(’CA)の処理がなされたあと
、サイクル5から浮動小数点の演算が行われる。命令B
はアドレス生成(AC) 、アドレス変換(^T)及び
キャッシュアクセス(CA)の処理がなされたあと、サ
イクル6から32ビット固定小数点データの16バイト
ずつの演算が行われる。
命令Cに関しては、命令Bに続いてサイクル3から命令
取出(IF>、アドレス生成(AC)、アドレス変換(
AT)及びキャッシュアクセス(CA)の処理がなされ
たあと、サイクル8から1バイト固定小数点データの演
算が行われる。
取出(IF>、アドレス生成(AC)、アドレス変換(
AT)及びキャッシュアクセス(CA)の処理がなされ
たあと、サイクル8から1バイト固定小数点データの演
算が行われる。
第1図、第2図及び第3図を参照すると、命令への演算
はサイクル5で桁合せ回路55により桁合せ処理がなさ
れたあと、サイクル6.7及び8で演尊器群56.57
及び58により浮動小数点演算が行われる。
はサイクル5で桁合せ回路55により桁合せ処理がなさ
れたあと、サイクル6.7及び8で演尊器群56.57
及び58により浮動小数点演算が行われる。
一方、命令Bのオペランドはサイクル5で取出されたあ
と、前半の16ビツトのデータが次のサイクル6で固定
小数点演算器68により演算される。次に後半の16ビ
ツトのデータがサイクル7で該演算器68により演算さ
れる。このようにして演算された結果はサイクル7及び
8でレジスタ54、セレクタ72を介してデータレジス
タ6にセットされる。
と、前半の16ビツトのデータが次のサイクル6で固定
小数点演算器68により演算される。次に後半の16ビ
ツトのデータがサイクル7で該演算器68により演算さ
れる。このようにして演算された結果はサイクル7及び
8でレジスタ54、セレクタ72を介してデータレジス
タ6にセットされる。
次にソフトウエアビジブルレジスタ2からの読出及び書
込動作について詳細に説明する。
込動作について詳細に説明する。
第1図及び第3図を参照すると、サイクル7で更新デー
タレジスタ6への演算結果のセットとともに、更新指示
レジスタPCC3に更新指示信号がセットされ、第1種
別指示レジスタRID 4に種別指示信号がセットされ
、第1番号レジスタRNO5にレジスタ番号がセットさ
れる。この更新指示信号は、レジスタ7及び線105を
介してレジスタバッファセーブ/リカバー制御部11に
与えられ線106を介してセーブバッファアドレスレジ
スタ12を初期化する。このレジスタ12のアドレスは
サイクル毎に+1ずつカウンタCNT 14によりカウ
ントアツプされる。従って、次のサイクル8では、レジ
スタ3からの更新指示信号に応答して、レジスタ4から
の種別指示信号及びレジスタRNO5からのレジスタ番
号にもとづきソフトウエアビジブルレジスタ2から更新
前のデータBO°を読出し、レジスタ10を介してレジ
スタセーブバッファ13に格納する。
タレジスタ6への演算結果のセットとともに、更新指示
レジスタPCC3に更新指示信号がセットされ、第1種
別指示レジスタRID 4に種別指示信号がセットされ
、第1番号レジスタRNO5にレジスタ番号がセットさ
れる。この更新指示信号は、レジスタ7及び線105を
介してレジスタバッファセーブ/リカバー制御部11に
与えられ線106を介してセーブバッファアドレスレジ
スタ12を初期化する。このレジスタ12のアドレスは
サイクル毎に+1ずつカウンタCNT 14によりカウ
ントアツプされる。従って、次のサイクル8では、レジ
スタ3からの更新指示信号に応答して、レジスタ4から
の種別指示信号及びレジスタRNO5からのレジスタ番
号にもとづきソフトウエアビジブルレジスタ2から更新
前のデータBO°を読出し、レジスタ10を介してレジ
スタセーブバッファ13に格納する。
この時有効性ビットは1″とされ、セーブ/リカバー制
御部11から線116を介してライト指示信号が与えら
れるとともに、アドレスレジスタ12から線115を介
してアドレス1111jが与えられる。このとき、レジ
スタ8からの種別指示信号及びレジスタ9からのレジス
タ番号がレジスタセーブバッファ13に格納される。
御部11から線116を介してライト指示信号が与えら
れるとともに、アドレスレジスタ12から線115を介
してアドレス1111jが与えられる。このとき、レジ
スタ8からの種別指示信号及びレジスタ9からのレジス
タ番号がレジスタセーブバッファ13に格納される。
一方、ソフトウエアビジブルレジスタ2にはレジスタ6
からの演算結果が格納される。このサイクル8では、セ
ーブ/リカバー制御部11から線118を介してレジス
タセーブバッファカウンタ制御部19から起動され、制
御部19内の擬似命令カウンタ(IC’ )には命令B
が設定されるとともに、制御部19は信号線117を介
して初期設定されていたレジスタバッファカウンタ20
の応答するカウンタ■をカウントさせる。
からの演算結果が格納される。このサイクル8では、セ
ーブ/リカバー制御部11から線118を介してレジス
タセーブバッファカウンタ制御部19から起動され、制
御部19内の擬似命令カウンタ(IC’ )には命令B
が設定されるとともに、制御部19は信号線117を介
して初期設定されていたレジスタバッファカウンタ20
の応答するカウンタ■をカウントさせる。
演算制御部1から線107を介して命令カウンタ更新制
御部15が起動される。命令カウンタ更新制御部15は
線108を介して送られてくる信号で障害検出のないこ
とを判定し、線107を介して与えられてくる信号によ
り演算制御部1で実行されている命令Bが当初予定して
いた命令Aでないことを判定し、命令カウンタ17では
なく、レジスタバッファカウンタ制御部19)にある擬
似命令カウンタに命令Bがカウントされる。
御部15が起動される。命令カウンタ更新制御部15は
線108を介して送られてくる信号で障害検出のないこ
とを判定し、線107を介して与えられてくる信号によ
り演算制御部1で実行されている命令Bが当初予定して
いた命令Aでないことを判定し、命令カウンタ17では
なく、レジスタバッファカウンタ制御部19)にある擬
似命令カウンタに命令Bがカウントされる。
サイクル9はサイクル8と同じ動作が次の命令またはデ
ータに対して行われる。
ータに対して行われる。
本発明の特徴は、このステージEX5で演算実行中に障
害が検出された場合の命令リトライにある。
害が検出された場合の命令リトライにある。
すなわち、障害検出は障害処理制御部16は線108を
介して命令カウンタ更新制御部15に通知される。サイ
クル10でこの制御部15は制御部19内の擬似命令カ
ウンタをリセットするとともに、線109を介して命令
Aをセットする。
介して命令カウンタ更新制御部15に通知される。サイ
クル10でこの制御部15は制御部19内の擬似命令カ
ウンタをリセットするとともに、線109を介して命令
Aをセットする。
サイクル10では、ソフトウエアビジブルレジスタ2か
ら更新前のデータC−がレジスタセーブバッファ13に
セーブされる。レジスタセーブバッファ13へのセーブ
では、命令に対応するレジスタセーブバッファカウンタ
20の対応するカウンタ(II)の内容とレジスタセー
ブアドレスレジスタ12の内容を+1カウントアツプす
る。レジスタセーブバッファカウンタ20内のカウンタ
(IF)は命令Bによるソフトウエアビジブルレジスタ
2の更新が終了するとカウント数″′2″を確保し続け
る。後続の命令Cによるソフトウエアビジブルレジスタ
2の更新は、次のレジスタセーブバッフ7カウンタ(I
II)を+1ずつカウントアツプしながら行われる。
ら更新前のデータC−がレジスタセーブバッファ13に
セーブされる。レジスタセーブバッファ13へのセーブ
では、命令に対応するレジスタセーブバッファカウンタ
20の対応するカウンタ(II)の内容とレジスタセー
ブアドレスレジスタ12の内容を+1カウントアツプす
る。レジスタセーブバッファカウンタ20内のカウンタ
(IF)は命令Bによるソフトウエアビジブルレジスタ
2の更新が終了するとカウント数″′2″を確保し続け
る。後続の命令Cによるソフトウエアビジブルレジスタ
2の更新は、次のレジスタセーブバッフ7カウンタ(I
II)を+1ずつカウントアツプしながら行われる。
なお、タイムチャートでは、図示されていないが、命令
カウンタ17の更新に応答して、それに対応するレジス
タセーブバッファカウンタ(I)〜(I[[)のうちの
いずれかの保持カウント数だけ、レジスタセーブバッフ
ァアドレスの小さいものからレジスタセーブバッファ1
3内のデータがクリアされる。これは命令カウンタの更
新により、レジスタセーブバッファ13の内容が不要に
なるためであり、また次の命令のセーブに備えるためで
あり、その上後述するリカバー動作を容易にするためで
もある。
カウンタ17の更新に応答して、それに対応するレジス
タセーブバッファカウンタ(I)〜(I[[)のうちの
いずれかの保持カウント数だけ、レジスタセーブバッフ
ァアドレスの小さいものからレジスタセーブバッファ1
3内のデータがクリアされる。これは命令カウンタの更
新により、レジスタセーブバッファ13の内容が不要に
なるためであり、また次の命令のセーブに備えるためで
あり、その上後述するリカバー動作を容易にするためで
もある。
この動作を第1図を参照して詳細に説明する。
第1図を参照すると、線108を介して障害処理制御部
16から障害検出通知がない場合、命令カウンタ更新制
御部15は信号線110を介してレジスタセーブバッフ
ァカウンタ制御部19に命令の更新が行われたことを通
知する。レジスタセーブバッファカウンタ制御部19は
線119を介してレジスタセーブバッファカウンタ20
内の更新された命令に対応するカウンタの情報を線12
0を介してレジスタセーブバッファクリア制御部21に
通知するよう指示する。
16から障害検出通知がない場合、命令カウンタ更新制
御部15は信号線110を介してレジスタセーブバッフ
ァカウンタ制御部19に命令の更新が行われたことを通
知する。レジスタセーブバッファカウンタ制御部19は
線119を介してレジスタセーブバッファカウンタ20
内の更新された命令に対応するカウンタの情報を線12
0を介してレジスタセーブバッファクリア制御部21に
通知するよう指示する。
命令カウンタ更新制御部15はレジスタセーブバッファ
クリア制御部21に線121を介してクリア指示を行う
。レジスタセーブバッファクリア制御部21は線120
を介して与えられる更新された命令に対応するカウンタ
の情報をもとに、線122を介して、レジスタセーブバ
ッファ13の若いアドレスからデータ有効性ビットの有
効表示をクリアする。このクリア動作は、レジスタセー
ブバッファカウンタ20内の対応するカウンタのカウン
ト数を一1カウントダウンしながら行われ、カウント数
が“0″になるまで繰返される。
クリア制御部21に線121を介してクリア指示を行う
。レジスタセーブバッファクリア制御部21は線120
を介して与えられる更新された命令に対応するカウンタ
の情報をもとに、線122を介して、レジスタセーブバ
ッファ13の若いアドレスからデータ有効性ビットの有
効表示をクリアする。このクリア動作は、レジスタセー
ブバッファカウンタ20内の対応するカウンタのカウン
ト数を一1カウントダウンしながら行われ、カウント数
が“0″になるまで繰返される。
障害発生が障害処理部へ報告されると、命令リトライを
開始するためのリカバー処理が、サイクル11から行わ
れる。レジスタセーフバッファアドレスレジスタ12で
示されたアドレスから一1ずつカウントダウンされ、サ
イクル12〜15において、レジスタセーブバッファの
内容がソフトウエアビジブルレジスタ2にリカバーされ
、命令リトライが開始される。この動作を以下詳述する
。
開始するためのリカバー処理が、サイクル11から行わ
れる。レジスタセーフバッファアドレスレジスタ12で
示されたアドレスから一1ずつカウントダウンされ、サ
イクル12〜15において、レジスタセーブバッファの
内容がソフトウエアビジブルレジスタ2にリカバーされ
、命令リトライが開始される。この動作を以下詳述する
。
第1図及び第3図を参照すると、リカバー処理は、障害
処理制御部16が線111を介してレジスタセーブバッ
ファセーブ/リカバー制御部11にリカバー指示を出す
ことにより開始される。このリカバーセーブバッファセ
ーブ/リカバー制御部11から線125を介して与えら
れる指示に応答して、サイクル12.13及び14にお
いてレジスタセーブバッファ13内の有効性ビットによ
り有効性表示されている全てのデータBO=、81′及
びC−1更にこれに付随する種別指示信号及びレジスタ
番号が線114 、113及び112、レジスタ6゜5
及び4を介してソフトウエアビジブルレジスタ2に格納
される。これとともに読出されたデータに対応するレジ
スタセーブバッファ13内の有効性ビットを1″から0
″に戻す。
処理制御部16が線111を介してレジスタセーブバッ
ファセーブ/リカバー制御部11にリカバー指示を出す
ことにより開始される。このリカバーセーブバッファセ
ーブ/リカバー制御部11から線125を介して与えら
れる指示に応答して、サイクル12.13及び14にお
いてレジスタセーブバッファ13内の有効性ビットによ
り有効性表示されている全てのデータBO=、81′及
びC−1更にこれに付随する種別指示信号及びレジスタ
番号が線114 、113及び112、レジスタ6゜5
及び4を介してソフトウエアビジブルレジスタ2に格納
される。これとともに読出されたデータに対応するレジ
スタセーブバッファ13内の有効性ビットを1″から0
″に戻す。
このソフトウエアビジブルレジスタ2へのデータリカバ
ー完了後、レジスタセーブバッフ7セーブ/リカバー制
御部11から線123を介して与えられるクリア指示に
よりレジスタセーブバッファカウンタ20のカウント数
がリセットされる。これにより、命令リトライ可能状態
となり、障害発生時点から保持し続けている命令カウン
タの値から命令をやり直すことができる。
ー完了後、レジスタセーブバッフ7セーブ/リカバー制
御部11から線123を介して与えられるクリア指示に
よりレジスタセーブバッファカウンタ20のカウント数
がリセットされる。これにより、命令リトライ可能状態
となり、障害発生時点から保持し続けている命令カウン
タの値から命令をやり直すことができる。
この実施例では説明の便宜上、パイプラインを浮動小数
点用演算パイプラインと固定小数点用演算パイプライン
との2本で説明したが、本発明は・ これに限定されず
3以上の演算パイプラインでも実施可能である。
点用演算パイプラインと固定小数点用演算パイプライン
との2本で説明したが、本発明は・ これに限定されず
3以上の演算パイプラインでも実施可能である。
発明の詳細
な説明したように、本発明によれば、データが決定され
るとソフトウエアビジブルレジスタの内容をすぐに更新
し、更新前データをレジスタセーブ/リカバーし命令リ
トライを可能とすることにより、後続の命令に更新され
たソフトウエアビジブルレジスタのデータを早く渡して
やれるので、演算速度の向上を計り、また少ないハード
ウェア量で高いリトライ率を得ることができるという効
果がある。
るとソフトウエアビジブルレジスタの内容をすぐに更新
し、更新前データをレジスタセーブ/リカバーし命令リ
トライを可能とすることにより、後続の命令に更新され
たソフトウエアビジブルレジスタのデータを早く渡して
やれるので、演算速度の向上を計り、また少ないハード
ウェア量で高いリトライ率を得ることができるという効
果がある。
第1図は本発明の一実施例を示す図、第2図は第1図の
演算制御部1の詳細な構成例を示す図、第3図は本発明
の一実施例の動作を説明するための図、第4図は本発明
の前提となるパイプライン処理を説明するための図、第
5図は従来の演算パイプライン処理を説明するための図
である。 主要部分の符号の説明 1・・・・・・演算制御部 2・・・・・・ソフトウエアビジブルレジスタ3〜10
・・・・・・レジスタ 11・・・・・・レジスタセーフ−バッファセーブ/リ
カバー制御部 13・・・・・・レジスタセーブバッファ15・・・・
・・レジスタ命令カウンタ更新制御部16・・・・・・
障害処理制御 19・・・・・・レジスタセーブバッファカウンタ制御
部 20・・・・・・レジスタセーブバッファカウンタ21
・・・・・・レジスタセーブバッファクリア制御部
演算制御部1の詳細な構成例を示す図、第3図は本発明
の一実施例の動作を説明するための図、第4図は本発明
の前提となるパイプライン処理を説明するための図、第
5図は従来の演算パイプライン処理を説明するための図
である。 主要部分の符号の説明 1・・・・・・演算制御部 2・・・・・・ソフトウエアビジブルレジスタ3〜10
・・・・・・レジスタ 11・・・・・・レジスタセーフ−バッファセーブ/リ
カバー制御部 13・・・・・・レジスタセーブバッファ15・・・・
・・レジスタ命令カウンタ更新制御部16・・・・・・
障害処理制御 19・・・・・・レジスタセーブバッファカウンタ制御
部 20・・・・・・レジスタセーブバッファカウンタ21
・・・・・・レジスタセーブバッファクリア制御部
Claims (1)
- パイプラインの長さの異なる演算制御手段を有する命令
リトライ制御方式であって、前記演算制御手段からの演
算結果を格納するソフトウエアビジブル格納手段と、こ
のソフトウェアビジブル格納手段の内容がある命令に対
していくつ更新されたかを示す値を表示するレジスタセ
ーブバッファカウンタ手段と、どの命令がいくつ前記ソ
フトウェアビジブル格納手段の内容を更新し前記レジス
タセーブバッファカウンタ手段のどの値が表示されてい
るかを認識し制御する手段とを含むことを特徴とする命
令リトライ制御方式。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP62259341A JPH01100638A (ja) | 1987-10-14 | 1987-10-14 | 命令リトライ制御方式 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP62259341A JPH01100638A (ja) | 1987-10-14 | 1987-10-14 | 命令リトライ制御方式 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH01100638A true JPH01100638A (ja) | 1989-04-18 |
Family
ID=17332760
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP62259341A Pending JPH01100638A (ja) | 1987-10-14 | 1987-10-14 | 命令リトライ制御方式 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH01100638A (ja) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7395417B2 (en) | 1992-03-05 | 2008-07-01 | Seiko Epson Corporation | Register file backup queue |
| US7716452B1 (en) | 1996-08-22 | 2010-05-11 | Kelly Edmund J | Translated memory protection apparatus for an advanced microprocessor |
-
1987
- 1987-10-14 JP JP62259341A patent/JPH01100638A/ja active Pending
Cited By (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7395417B2 (en) | 1992-03-05 | 2008-07-01 | Seiko Epson Corporation | Register file backup queue |
| US7657728B2 (en) | 1992-03-05 | 2010-02-02 | Seiko Epson Corporation | Register file backup queue |
| US7716452B1 (en) | 1996-08-22 | 2010-05-11 | Kelly Edmund J | Translated memory protection apparatus for an advanced microprocessor |
| US7840776B1 (en) | 1996-08-22 | 2010-11-23 | Kelly Edmund J | Translated memory protection apparatus for an advanced microprocessor |
| US8055877B1 (en) | 1996-08-22 | 2011-11-08 | Kelly Edmund J | Translated memory protection apparatus for an advanced microprocessor |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| EP1324190B1 (en) | Data processing system having a read-modify-write unit | |
| JPH0762823B2 (ja) | デ−タ処理装置 | |
| JPS6353571B2 (ja) | ||
| JPS61107434A (ja) | デ−タ処理装置 | |
| JPH0517588B2 (ja) | ||
| JPH0348537B2 (ja) | ||
| EP0497485A2 (en) | Computer for implementing two-operand instructions | |
| US20080215859A1 (en) | Computer with high-speed context switching | |
| JPH01100638A (ja) | 命令リトライ制御方式 | |
| US6691223B1 (en) | Processing full exceptions using partial exceptions | |
| EP0415351A2 (en) | Data processor for processing instruction after conditional branch instruction at high speed | |
| JP2812610B2 (ja) | パイプライン制御方式 | |
| JP2783285B2 (ja) | 情報処理装置 | |
| JP2626675B2 (ja) | データ誘起状態信号発生装置及び方法 | |
| JPH0277940A (ja) | データ処理装置 | |
| JP2901247B2 (ja) | 掃出し制御方式 | |
| JPS615357A (ja) | デ−タ処理装置 | |
| JP2536651B2 (ja) | 例外アドレスバッファ管理方式 | |
| JPH01231126A (ja) | 情報処理装置 | |
| JP2908117B2 (ja) | ベクトル演算処理装置 | |
| JPS63197233A (ja) | 情報処理装置 | |
| JPS62262141A (ja) | データ処理装置 | |
| JP2001034474A (ja) | データ処理装置及びデータ処理方法 | |
| JPH0540629A (ja) | 情報処理装置 | |
| JPS5936853A (ja) | 演算処理装置 |