JPH0277940A - データ処理装置 - Google Patents
データ処理装置Info
- Publication number
- JPH0277940A JPH0277940A JP22877788A JP22877788A JPH0277940A JP H0277940 A JPH0277940 A JP H0277940A JP 22877788 A JP22877788 A JP 22877788A JP 22877788 A JP22877788 A JP 22877788A JP H0277940 A JPH0277940 A JP H0277940A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- register
- path
- circuit
- executed
- 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)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
〔産業上の利用分野〕
本発明はデータ処理装置に係り、特にスカシにおける分
岐処理の高速化を図るデータ処理装置に関する。
岐処理の高速化を図るデータ処理装置に関する。
近年、スーパーコンピュータにおいて、ベクトル処理の
みならずスカシ処理を高速化することが重要になってい
る。特にスカシ処理における分岐処理の占める割合は1
/4〜1/3に達すると考えられており1分岐処理の高
速化が極めて重要である。
みならずスカシ処理を高速化することが重要になってい
る。特にスカシ処理における分岐処理の占める割合は1
/4〜1/3に達すると考えられており1分岐処理の高
速化が極めて重要である。
一方、スカシ処理プロセッサ(以下略してスカシプロセ
ッサという)において命令パイプラインのピッチを細か
くしていくと終には命令アドレス生成も1命令単位では
出来なくなる。このような極限の命令実行状態では、命
令語長は1種類に限定されかつ複数の命令が1ブロツク
なる単位で実行されるような制御になる。即ち、1マシ
ンサイクルに複数の命令を同時にデコードするような命
令並列パイプライン制御になる。
ッサという)において命令パイプラインのピッチを細か
くしていくと終には命令アドレス生成も1命令単位では
出来なくなる。このような極限の命令実行状態では、命
令語長は1種類に限定されかつ複数の命令が1ブロツク
なる単位で実行されるような制御になる。即ち、1マシ
ンサイクルに複数の命令を同時にデコードするような命
令並列パイプライン制御になる。
このような命令専行制御方式の一例として、「多重命令
パイプライン方式」が提唱されている(村上、福田、末
吉、富田、情報処理学会研究報告、 88−CA−69
,p、p、25〜32)。
パイプライン方式」が提唱されている(村上、福田、末
吉、富田、情報処理学会研究報告、 88−CA−69
,p、p、25〜32)。
この方式はスカラ処理を高速化するには効果があるが9
分岐命令の出現頻度が高くなると効果が減少していく、
多重命令パイプラインにはその命令処理方式に合致した
分岐処理方式が必要である。
分岐命令の出現頻度が高くなると効果が減少していく、
多重命令パイプラインにはその命令処理方式に合致した
分岐処理方式が必要である。
命令列をブロックに分割し、1ブロツクを複数の命令で
構成し、1マシンサイクルで実行するような制御をとる
と、分岐処理はブロック外へ分岐する場合とブロック内
に分岐する場合とに分けられるようになる。ブロック外
へ分岐する場合は従来の1マシンサイクルに1命令を処
理する場合と同様に制御できる。しかし、ブロック内へ
分岐する場合は従来の方法で制御すると1ブロツク内に
1命令しか置けなくなり、多重命令パイプラインの効果
が減少する。この欠点を除去するためには分岐処理を単
純に多重命令パイプラインで実行するのではなく、分岐
処理と同じ結果をうるような断制御方式を多重命令パイ
プラインで実施する。
構成し、1マシンサイクルで実行するような制御をとる
と、分岐処理はブロック外へ分岐する場合とブロック内
に分岐する場合とに分けられるようになる。ブロック外
へ分岐する場合は従来の1マシンサイクルに1命令を処
理する場合と同様に制御できる。しかし、ブロック内へ
分岐する場合は従来の方法で制御すると1ブロツク内に
1命令しか置けなくなり、多重命令パイプラインの効果
が減少する。この欠点を除去するためには分岐処理を単
純に多重命令パイプラインで実行するのではなく、分岐
処理と同じ結果をうるような断制御方式を多重命令パイ
プラインで実施する。
分岐結果として、
(1)命令列の実行スキップ、
(2)命令列の再実行が考えられる。
この2動作を1ブロツクの命令列内で実行できるように
制御すればよい。1ブロツク内の分岐制御の本質を簡単
に示すため、1ブロツク内の命令による命令書替を禁止
する。
制御すればよい。1ブロツク内の分岐制御の本質を簡単
に示すため、1ブロツク内の命令による命令書替を禁止
する。
本発明の目的は多重命令パイプラインの如き1マシンサ
イクル毎に複数の命令を同時にデコードし実行していく
ような制御をとるスカラプロセッサにおける分岐処理の
高速化を図るデータ処理装置を提供することにある。
イクル毎に複数の命令を同時にデコードし実行していく
ような制御をとるスカラプロセッサにおける分岐処理の
高速化を図るデータ処理装置を提供することにある。
上記目的を達成するために、分岐条件を保持するマスク
レジスタを設ける。このレジスタは従来の条件コードが
レジスタとして独立し、かつ複数になったものである。
レジスタを設ける。このレジスタは従来の条件コードが
レジスタとして独立し、かつ複数になったものである。
上記マスクレジスタの内容によって、命令を実行する場
合と無効命令として実行することを識別するフィールド
(以下フィールド/)と、命令の実行後の処理を示すフ
ィールド(以下フィールドα)を設ける。
合と無効命令として実行することを識別するフィールド
(以下フィールド/)と、命令の実行後の処理を示すフ
ィールド(以下フィールドα)を設ける。
命令語長を1種類にする。
以上のアーキテクチャ上の工夫、の他に、フィールドI
の値とマスクレジスタの値によって命令を無効化する論
理部、フィールドαの値によって完了した命令を複数の
命令レジスタ中にマスクレジスタの値が完了するまで保
持し、かつこれを適切なタイミングでとり出す論理部を
設ける。
の値とマスクレジスタの値によって命令を無効化する論
理部、フィールドαの値によって完了した命令を複数の
命令レジスタ中にマスクレジスタの値が完了するまで保
持し、かつこれを適切なタイミングでとり出す論理部を
設ける。
前記アーキテクチャ上の工夫とハードウェアの動作を説
明するために具体的な命令の表現形を与えて説明する。
明するために具体的な命令の表現形を与えて説明する。
第2図で示したフォーマットは多重命令パイプラインに
適合する命令フォーマットの一列である。
適合する命令フォーマットの一列である。
フィールド200,202,201はそれぞれオペレー
ション、オペランド、マスクフィールドを表す、マスク
フィールドを!、α、yのサブフィールドに分ける。サ
ブフィールドIが1′の時yフィールドで指定されたマ
スクレジスタの値が1′の時命令を実行し、0′の時命
令を無効命令にする。サブフィールドIが0′の時マス
クレジスタの値が何んであっても命令を実行する。サブ
フィールドαが11′の時yフィールドで指定されたマ
スクレジスタの値が10′の時命令を実行し、1′の時
無効命令とする。サブフィールドIとαの値が共に11
′であるとき指定例外とする(共に10′の時はマスク
レジスタを引用しない通常の命令である)。
ション、オペランド、マスクフィールドを表す、マスク
フィールドを!、α、yのサブフィールドに分ける。サ
ブフィールドIが1′の時yフィールドで指定されたマ
スクレジスタの値が1′の時命令を実行し、0′の時命
令を無効命令にする。サブフィールドIが0′の時マス
クレジスタの値が何んであっても命令を実行する。サブ
フィールドαが11′の時yフィールドで指定されたマ
スクレジスタの値が10′の時命令を実行し、1′の時
無効命令とする。サブフィールドIとαの値が共に11
′であるとき指定例外とする(共に10′の時はマスク
レジスタを引用しない通常の命令である)。
命令列はブロックに区分されるが、ブロックの切れ目は
単なる命令フェッチ動作の単位を意味するのではなく、
サブフィールドaが1′の命令のyフィールドで指示さ
れたマスクレジスタの値が1′になるまで当該ブロック
内のaフィールドが1′の命令を実行するように完了条
件を判定する単位を示す。またO8から見た割込みの単
位でもある。ここでは動作の説明を簡約化するため、1
ブロツクに置けるαフィールド11/ の命令で指定で
きるマスクレジスタは1種類にする。
単なる命令フェッチ動作の単位を意味するのではなく、
サブフィールドaが1′の命令のyフィールドで指示さ
れたマスクレジスタの値が1′になるまで当該ブロック
内のaフィールドが1′の命令を実行するように完了条
件を判定する単位を示す。またO8から見た割込みの単
位でもある。ここでは動作の説明を簡約化するため、1
ブロツクに置けるαフィールド11/ の命令で指定で
きるマスクレジスタは1種類にする。
また1ブロツク内でαフィールドで指定されているマス
クレジスタの値を定義する命令がない時。
クレジスタの値を定義する命令がない時。
指定例外にする。αフィールドを用いた一例を示す。
区dd(a=11’ 、MRO)FRO←FRL+A
(<71d<z=GR10) ・・・■Le4f(a=
ゝ1’ 、MRO)MRO←ン/ (FRO≧0)・・
・■ add(a=ゝ1’ 、MRO)ORIO十F11′・
・・■ ル、ρ
・・・・・・・・・・・・■■はFRIと命名された
レジスタの内容にインデックスレジスタGRIOが示す
A領域の内容を加算してFROレジスタに代入すること
を示す。
(<71d<z=GR10) ・・・■Le4f(a=
ゝ1’ 、MRO)MRO←ン/ (FRO≧0)・・
・■ add(a=ゝ1’ 、MRO)ORIO十F11′・
・・■ ル、ρ
・・・・・・・・・・・・■■はFRIと命名された
レジスタの内容にインデックスレジスタGRIOが示す
A領域の内容を加算してFROレジスタに代入すること
を示す。
■はFROの内容が0以上か否かをチエツクして0以上
ならばマスクレジスタMROを1′にセットする。
ならばマスクレジスタMROを1′にセットする。
■はインデックスレジスタ0RIOの更新を行う。
■は1ブロツクに含まれる命令数を合わせるために入れ
た命令である(もし1ブロツク3命令ならばなくてもよ
い)。
た命令である(もし1ブロツク3命令ならばなくてもよ
い)。
■〜■の命令列はマスクレジスタMROが1′になるま
で繰り返して実行され、分岐命令で構成したD○ループ
と同様のデータ処理を行う。
で繰り返して実行され、分岐命令で構成したD○ループ
と同様のデータ処理を行う。
fフィールドを用いた一例としては。
Lajr (/ = ’O’ ) MR1←
</(FRO≧0)・・・・・・・■tdd (/=
’1’ 、MRI)FRI←FR1+A (ind<χ
=GR1O)・・・■5ubtract (/ = ’
1’ 、 MHI) FR2←FR2−A (<nd4
!z=GR1o)+*+■add (/= ’1’ 、
MRI)FR34−FR3+A (<yLd<z=FR
10) ・・・■。
</(FRO≧0)・・・・・・・■tdd (/=
’1’ 、MRI)FRI←FR1+A (ind<χ
=GR1O)・・・■5ubtract (/ = ’
1’ 、 MHI) FR2←FR2−A (<nd4
!z=GR1o)+*+■add (/= ’1’ 、
MRI)FR34−FR3+A (<yLd<z=FR
10) ・・・■。
がある。最初の■でマスクレジスタMHIが10′にセ
ットされると、■〜■の命令を無効命令とし、MRIが
1′にセットされると実行する。即ち■の直後に分岐命
令を置いた場合と同様の処理を行う。
ットされると、■〜■の命令を無効命令とし、MRIが
1′にセットされると実行する。即ち■の直後に分岐命
令を置いた場合と同様の処理を行う。
以下9本発明の一実施例を図面を用いて詳細に説明する
。第1図は本発明のデータ処理装置の概略ブロック図で
ある。第1図において100は命令レジスタ、101は
デコーダ部、102はレジスタ群、103はマスクレジ
スタ群、104はスイッチング回路、105命令実行判
定部、106は演算器である。点線107で囲まれた論
理部は多重命令パイプラインの多重炭分存在する。演算
器106は命令によって書込レジスタが102側のレジ
スタが指定されている場合パス170上に結果を出力す
る。一方、書込レジスタがマスクレジスタ103である
とパス171側に結果を出力する。出力結果には書込レ
ジスタ番号が付けられ、この情報によってそれぞれスイ
ッチング回路110.111によって目的のレジスタに
書込が行われる。
。第1図は本発明のデータ処理装置の概略ブロック図で
ある。第1図において100は命令レジスタ、101は
デコーダ部、102はレジスタ群、103はマスクレジ
スタ群、104はスイッチング回路、105命令実行判
定部、106は演算器である。点線107で囲まれた論
理部は多重命令パイプラインの多重炭分存在する。演算
器106は命令によって書込レジスタが102側のレジ
スタが指定されている場合パス170上に結果を出力す
る。一方、書込レジスタがマスクレジスタ103である
とパス171側に結果を出力する。出力結果には書込レ
ジスタ番号が付けられ、この情報によってそれぞれスイ
ッチング回路110.111によって目的のレジスタに
書込が行われる。
命令のパイプラインは命令レジスタ100までが゛F′
、レジスタ112〜116までがlD′。
、レジスタ112〜116までがlD′。
レジスタ117〜120までが′E′、レジスタ群10
2・(又は103)の書込みまでがW′で全部で4段で
ある。この段数は何段であってもかまわない。
2・(又は103)の書込みまでがW′で全部で4段で
ある。この段数は何段であってもかまわない。
命令レジスタ100にセットされた信号はデコーダ10
1で解読される。パス150上には演算動作を規定する
オーダ、/フィールド情報、演算結果の書込レジスタ番
号が送出される。パス162上にはαフィールド情報、
パス163上にはレジスタ群102又はマスクレジスタ
103を読出した被演算データが送出される。パス15
0上の信号は命令実行判定回路105で処理されパス1
55上に演算器106文は第4図のアドレスアダー40
0への指示信号が送出される。パス163上に送出され
た信号はスイッチング回路104に作用し被演算データ
をパス157゜158上に送出する。マスクレジスタ1
03を読出したデータはパス160上に送出され、命令
実行判定回路105に送られる。
1で解読される。パス150上には演算動作を規定する
オーダ、/フィールド情報、演算結果の書込レジスタ番
号が送出される。パス162上にはαフィールド情報、
パス163上にはレジスタ群102又はマスクレジスタ
103を読出した被演算データが送出される。パス15
0上の信号は命令実行判定回路105で処理されパス1
55上に演算器106文は第4図のアドレスアダー40
0への指示信号が送出される。パス163上に送出され
た信号はスイッチング回路104に作用し被演算データ
をパス157゜158上に送出する。マスクレジスタ1
03を読出したデータはパス160上に送出され、命令
実行判定回路105に送られる。
図面の簡約化を行うため数種類の信号を1本の信号線で
表わすことがある。概略ブロック図では1本であっても
、詳細ブロック図では複数の信号線に分かれる時、信号
線を示す番号にα+ by c・・・等の添字をつける
。
表わすことがある。概略ブロック図では1本であっても
、詳細ブロック図では複数の信号線に分かれる時、信号
線を示す番号にα+ by c・・・等の添字をつける
。
第3図は第1図の命令レジスタ100に命令をセットす
るための論理部(命令読出論理部)のブロック図である
。第3図において、レジスタ300には命令語長の几倍
がセットされている。
るための論理部(命令読出論理部)のブロック図である
。第3図において、レジスタ300には命令語長の几倍
がセットされている。
ここで几は多重命令パイプラインの多重度である。
初め第1図の命令デコーダ101からユーザプログラム
の先頭アドレスがパス154を介してレジスタ302に
セットされる。プログラムのスタートはO8が行う。O
8がレジスタ302に主記憶上のデータをセットする特
権命令を発行して上記処理が行われる。プログラムの先
頭アドレスはパス360.3−61を通ってバッファス
トレイジに送られる。バッファストレイジから読出され
た命令は第1図のパス175を経由して命令レジスタ1
00にセットされる。読出された命令に対応してアドバ
ンス信号がパス176上にバッファストレイジから送ら
れる。アドバンス信号は命令パイプラインのF、D、E
、Wステージ毎にレジスタ310〜313にセットされ
ていく。論理回路314はレジスタ302.命令レジス
タ100のセット信号を作る論理部である。パス159
上に前記セット信号が送出されると、パス361上の命
令アドレスとレジスタ300上のデータが加算器301
で加算されパス154上に送出されていた次命令アドレ
スがレジスタ302にセットされる。
の先頭アドレスがパス154を介してレジスタ302に
セットされる。プログラムのスタートはO8が行う。O
8がレジスタ302に主記憶上のデータをセットする特
権命令を発行して上記処理が行われる。プログラムの先
頭アドレスはパス360.3−61を通ってバッファス
トレイジに送られる。バッファストレイジから読出され
た命令は第1図のパス175を経由して命令レジスタ1
00にセットされる。読出された命令に対応してアドバ
ンス信号がパス176上にバッファストレイジから送ら
れる。アドバンス信号は命令パイプラインのF、D、E
、Wステージ毎にレジスタ310〜313にセットされ
ていく。論理回路314はレジスタ302.命令レジス
タ100のセット信号を作る論理部である。パス159
上に前記セット信号が送出されると、パス361上の命
令アドレスとレジスタ300上のデータが加算器301
で加算されパス154上に送出されていた次命令アドレ
スがレジスタ302にセットされる。
レジスタ303には例外発生時の割込処理ルーチンの先
頭アドレスが格納されている。パス550.551上に
指定例外等が検出されたことを示す信号が発行されると
、OR回路304でこれらの検出信号が集められセレク
タ305に作用する。セレクタ305はレジスタ303
の出力をパス361に接続し、ユーザプログラムの処理
から割込処理ルーチンの処理に移行する。この時レジス
タ302のアドレスはレジスタ306にセットされる。
頭アドレスが格納されている。パス550.551上に
指定例外等が検出されたことを示す信号が発行されると
、OR回路304でこれらの検出信号が集められセレク
タ305に作用する。セレクタ305はレジスタ303
の出力をパス361に接続し、ユーザプログラムの処理
から割込処理ルーチンの処理に移行する。この時レジス
タ302のアドレスはレジスタ306にセットされる。
割込処理ルーチン内で処理を完了し再びユーザプログラ
ムへ制御を移す時、第1図のデコーダ101からオペコ
ードを解読したパス150σ上の信号をセレクタ305
に作用させてパス360とパス361を接続させる。レ
ジスタ306に退避したアドレスはパス367経出でい
ったんバッファストレイジに送られ、そこからパス15
4経出でレジスタ302にセットされる。
ムへ制御を移す時、第1図のデコーダ101からオペコ
ードを解読したパス150σ上の信号をセレクタ305
に作用させてパス360とパス361を接続させる。レ
ジスタ306に退避したアドレスはパス367経出でい
ったんバッファストレイジに送られ、そこからパス15
4経出でレジスタ302にセットされる。
この方法は一例であって、レジスタ302のアドレスを
第1図のレジスタ群102に送り退避回復処理を行うこ
ともできる。この場合はパス367のシンク先を第1図
のスイッチング回路110とし、パス157をレジスタ
302にまで接続する。
第1図のレジスタ群102に送り退避回復処理を行うこ
ともできる。この場合はパス367のシンク先を第1図
のスイッチング回路110とし、パス157をレジスタ
302にまで接続する。
第4図はオペランドで規定されたアドレスをバッファス
トレイジへ発行するアドレスアダ一部のブロック図であ
る。アドレスアダーの動作は命令パイプラインのEステ
ージで行われる。パス157.8上に送出されたレジス
タ群102を読み出したデータはレジスタ401〜40
4にセットされ加算器400に入力され、オペランドア
ドレスを生成する。このアドレスはパス45o。
トレイジへ発行するアドレスアダ一部のブロック図であ
る。アドレスアダーの動作は命令パイプラインのEステ
ージで行われる。パス157.8上に送出されたレジス
タ群102を読み出したデータはレジスタ401〜40
4にセットされ加算器400に入力され、オペランドア
ドレスを生成する。このアドレスはパス45o。
451を経由してバッファストレイジに送られる。
第5図は第1図のデコーダ101のブロック図である。
命令レジスタ100にセットされた命令をOP、/、α
、y、R1〜R3フィールド分ける。それぞれオペコー
ド、/、α、yサブフィールド、3つのオペランドフィ
ールドである。オペコードはパス555を経由してRA
M500を引用し、演算器又はアドレスアダー用のオー
ダ情報を生成する。これらの情報はレジスタ501にセ
ットされる。ここでレジスタ5016部にはマスクレジ
スタに値をセットする命令の時に1′がセットされると
する。レジスタ5018部の出力はαサブフィールドの
値とAND回路502で論理積がとられる。AND回路
502は第1図のデコーダ101に対応してい゛る。複
数のAND回路502の出力はOR回路503で論理和
がとられ、インバータ504で反転されてパス550上
に送出される。パス550上の信号は、1ブロック内に
αサブフィールドが1′である(即ちくりかえし実行さ
れる命令がある)とき、マスクレジスタに値をセットす
る命令が存在しない時゛1′になる。該信号は指定例外
の一条件を検出している。
、y、R1〜R3フィールド分ける。それぞれオペコー
ド、/、α、yサブフィールド、3つのオペランドフィ
ールドである。オペコードはパス555を経由してRA
M500を引用し、演算器又はアドレスアダー用のオー
ダ情報を生成する。これらの情報はレジスタ501にセ
ットされる。ここでレジスタ5016部にはマスクレジ
スタに値をセットする命令の時に1′がセットされると
する。レジスタ5018部の出力はαサブフィールドの
値とAND回路502で論理積がとられる。AND回路
502は第1図のデコーダ101に対応してい゛る。複
数のAND回路502の出力はOR回路503で論理和
がとられ、インバータ504で反転されてパス550上
に送出される。パス550上の信号は、1ブロック内に
αサブフィールドが1′である(即ちくりかえし実行さ
れる命令がある)とき、マスクレジスタに値をセットす
る命令が存在しない時゛1′になる。該信号は指定例外
の一条件を検出している。
yサブフィールドのマスクレジスタ番号は比較回路50
6によって他の命令レジスタのyサブフィールドのマス
クレジスタ番号と比較される。両者が一致すると出力゛
1′が得られる。該出力は反転されてのちAND回路5
07で論理積がとられ、OR回路508で論理和がとら
れる。AND回路507には命令のαサブフィールドが
1′であるか否かの情報が入力される。OR回路508
の出力は1ブロツク内でαフィールド゛1′の命令で異
ったマスクレジスタを引用した時゛1′になる。パス5
51上の信号は指定例外の一条件を検出している。
6によって他の命令レジスタのyサブフィールドのマス
クレジスタ番号と比較される。両者が一致すると出力゛
1′が得られる。該出力は反転されてのちAND回路5
07で論理積がとられ、OR回路508で論理和がとら
れる。AND回路507には命令のαサブフィールドが
1′であるか否かの情報が入力される。OR回路508
の出力は1ブロツク内でαフィールド゛1′の命令で異
ったマスクレジスタを引用した時゛1′になる。パス5
51上の信号は指定例外の一条件を検出している。
!、α、yサブフィールド、R1〜R3フィールド上の
データはいったんラッチされて後、それぞれパス150
(L、162,163c、150c。
データはいったんラッチされて後、それぞれパス150
(L、162,163c、150c。
163α、b上に送出される。
第6図は第1図の命令実行判定回路105のブロック図
である。第6図において、パス160α上にマスクレジ
スタの値が読出されると、パス150cL上のfサブフ
ィールドの続出結果とAND回路600で論理積がとら
れる。この結果は!サブフィールドが1′である命令が
実行されるか否かを示している0次に、レジスタ601
の出力はインバータ602で反転され、パス162上の
αサブフィールドのデータとAND回路603で論理積
がとられる。この結果はαサブフィールドが1′の命令
が実行されるか否かを示している。!サブフィールドが
0′の時マスクレジスタの値によらず命令を実行する。
である。第6図において、パス160α上にマスクレジ
スタの値が読出されると、パス150cL上のfサブフ
ィールドの続出結果とAND回路600で論理積がとら
れる。この結果は!サブフィールドが1′である命令が
実行されるか否かを示している0次に、レジスタ601
の出力はインバータ602で反転され、パス162上の
αサブフィールドのデータとAND回路603で論理積
がとられる。この結果はαサブフィールドが1′の命令
が実行されるか否かを示している。!サブフィールドが
0′の時マスクレジスタの値によらず命令を実行する。
このためレジスタ604の出力をインバータ605で反
転しOR回@606に入力する。同回路にはIサブフィ
ールドが1′の時の実行条件、αサブフィールドが1′
の時の実行条件がそれぞれパス651,652を通って
入力される。パス155α上には命令を実行するオーダ
信号が送出される。この信号がO′の時命令を無効命令
として処理する。すなわち第1,4図の演算器、アドレ
スアダーに無動作がパス155によって指示される。
転しOR回@606に入力する。同回路にはIサブフィ
ールドが1′の時の実行条件、αサブフィールドが1′
の時の実行条件がそれぞれパス651,652を通って
入力される。パス155α上には命令を実行するオーダ
信号が送出される。この信号がO′の時命令を無効命令
として処理する。すなわち第1,4図の演算器、アドレ
スアダーに無動作がパス155によって指示される。
レジスタ604.607の出力が共に1′の時即ち!、
αサブフィールドが共に1′の時は指定例外信号をパス
650上に送出する。この信号は第3図のOR回路30
4に送られる。
αサブフィールドが共に1′の時は指定例外信号をパス
650上に送出する。この信号は第3図のOR回路30
4に送られる。
第7図は第1図のスイッチング回路104のブロック図
である。第7図においてレジスタ700はマスクレジス
タの1つである。レジスタ700の出力はセレクタ70
1,702に送られ、パス163.164上の信号によ
って、命令によって指定されたマスクレジスタの出力が
選択されパス160a、b上に送り出される。
である。第7図においてレジスタ700はマスクレジス
タの1つである。レジスタ700の出力はセレクタ70
1,702に送られ、パス163.164上の信号によ
って、命令によって指定されたマスクレジスタの出力が
選択されパス160a、b上に送り出される。
第8図は第3図の論理回路314のブロック図である。
パス162,172経由に第1図101のデコーダから
αサブフィールドのデータが送られて来る。パス152
,153経由に第1図の演算器106からマスクレジス
タのデータが送られて来る。本論理回路はWステージで
動作するとし。
αサブフィールドのデータが送られて来る。パス152
,153経由に第1図の演算器106からマスクレジス
タのデータが送られて来る。本論理回路はWステージで
動作するとし。
αサブフィールドを用いない命令では演算器のマスク側
出力(パス171側)を0′にする。
出力(パス171側)を0′にする。
第8図において、AND回路800,801はαサブフ
ィールドを用いる(即ち該フィールドが1′)命令がマ
スクレジスタの値が1′になって完了する条件を検出す
る。AND回路80o。
ィールドを用いる(即ち該フィールドが1′)命令がマ
スクレジスタの値が1′になって完了する条件を検出す
る。AND回路80o。
801は第1図の命令レジスタ100に対応して在る。
該回路の出力はOR回路802で論理和がとられ、AN
D回路803に出力が送出される。
D回路803に出力が送出される。
OR回路804はαサブフィールドを用いない命令のみ
の場合があるか否かを判定する。OR回路804の出力
はAND回路803に入力されると同時に反転されてO
R回路805に入力される。
の場合があるか否かを判定する。OR回路804の出力
はAND回路803に入力されると同時に反転されてO
R回路805に入力される。
パス850上の信号は1′の時αサブフィールドが11
′であってマスクレジスタが1′になった時を示してい
る。パス851上の信号が11′の時αサブフィールド
が1ブロツク内の全命令が0′である場合を示している
。両者の論理和がとられてパス852上に次ブロックの
命令列を読出す指示信号が生成される。パス350は命
令がWステージに入っていることを示す信号を伝播して
いる。AND回路806は命令パイプラインとのステー
ジ合せのために設けられている。
′であってマスクレジスタが1′になった時を示してい
る。パス851上の信号が11′の時αサブフィールド
が1ブロツク内の全命令が0′である場合を示している
。両者の論理和がとられてパス852上に次ブロックの
命令列を読出す指示信号が生成される。パス350は命
令がWステージに入っていることを示す信号を伝播して
いる。AND回路806は命令パイプラインとのステー
ジ合せのために設けられている。
パス159上の信号は第1図の命令レジスタ100をセ
ットしたり、第3図のレジスタ302をセットするため
に用いられる。
ットしたり、第3図のレジスタ302をセットするため
に用いられる。
本発明によれば、1マシンサイクルで複数の命令を実行
する制御方式を採るデータ処理装置で、1マシンサイク
ルで実行される命令列を1ブロツクというとき、1ブロ
ツク内で行われる分岐処理を、命令実行処理に作用する
マスクデータという概念で高速に処理できる。また、マ
スクデータをマスクレジスタなるプログラムでアクセス
可能な複数のレジスタに保持することにより分岐条件の
設定を分岐命令から自由に離すことが可能になる。
する制御方式を採るデータ処理装置で、1マシンサイク
ルで実行される命令列を1ブロツクというとき、1ブロ
ツク内で行われる分岐処理を、命令実行処理に作用する
マスクデータという概念で高速に処理できる。また、マ
スクデータをマスクレジスタなるプログラムでアクセス
可能な複数のレジスタに保持することにより分岐条件の
設定を分岐命令から自由に離すことが可能になる。
さらに、1ブロツク内で繰り返し実行するようなループ
構造のプログラムを命令レジスタ上に命令列を保持して
実行することができる。この効果によって主記憶、バッ
ファストレイジなどに命令フェッチ動作を行わずに処理
を行うことができ、従来の分岐高速化方式よりも格段に
高速のループ処理が可能になるという効果が得られる。
構造のプログラムを命令レジスタ上に命令列を保持して
実行することができる。この効果によって主記憶、バッ
ファストレイジなどに命令フェッチ動作を行わずに処理
を行うことができ、従来の分岐高速化方式よりも格段に
高速のループ処理が可能になるという効果が得られる。
4、図面の簡単な説明 −
第1図は本発明のデータ処理装置の概略ブロック図、第
2図は命令フォーマット図、第3図は命令読出論理部の
ブロック図、第4図はアドレスアダ一部のブロック図、
第5図はデコーダ部のブロック図、第6図は命令実行判
定回路のブロック図、第7図はスイッチング回路のブロ
ック図、第8図は第3図の論理回路314のブロック図
である。
2図は命令フォーマット図、第3図は命令読出論理部の
ブロック図、第4図はアドレスアダ一部のブロック図、
第5図はデコーダ部のブロック図、第6図は命令実行判
定回路のブロック図、第7図はスイッチング回路のブロ
ック図、第8図は第3図の論理回路314のブロック図
である。
100・・・命令レジスタ。
101・・・デコーダ、
102・・・(汎用/浮動小数点)レジスタ群、103
・・・マスクレジスタ群、 105・・・命令実行判定回路、 106・・・演算器、 301・・・加算器。
・・・マスクレジスタ群、 105・・・命令実行判定回路、 106・・・演算器、 301・・・加算器。
506・・・比較回路。
晃/IEI
尾20
弗す圀
第6fjEJ
86目
第7目
Claims (1)
- 【特許請求の範囲】 1、命令の実行を複数のステージに分けて実行するデー
タ処理装置において、複数の命令の論理的に同一のステ
ージを同一のタイミングで実行することを特徴とするデ
ータ処理装置。 2、請求項1において、命令実行方式に作用する複数の
レジスタを備え、命令のフィールドに該レジスタの内容
によって命令実行を行うか否かの選択、あるいは命令実
行後に再度命令を実行するか否かの選択を行う領域を持
つことを特徴とするデータ処理装置。 3、請求項2において、レジスタの内容と命令の特定フ
ィールドとの論理積によってデータ処理装置の1タイミ
ングで実行される複数の命令列の完了条件を生成するこ
とを特徴とするデータ処理装置。 4、請求項1において、データ処理装置の1タイミング
で実行される命令列の例外を並列に検出し、これを契機
として割込処理部に制御を渡すことを特徴とするデータ
処理装置。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP22877788A JPH0277940A (ja) | 1988-09-14 | 1988-09-14 | データ処理装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP22877788A JPH0277940A (ja) | 1988-09-14 | 1988-09-14 | データ処理装置 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH0277940A true JPH0277940A (ja) | 1990-03-19 |
Family
ID=16881682
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP22877788A Pending JPH0277940A (ja) | 1988-09-14 | 1988-09-14 | データ処理装置 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH0277940A (ja) |
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH0728639A (ja) * | 1993-07-13 | 1995-01-31 | Nec Corp | マイクロプロセッサ |
| WO1998033115A1 (en) * | 1997-01-24 | 1998-07-30 | Mitsubishi Denki Kabushiki Kaisha | A data processor |
| US6112299A (en) * | 1997-12-31 | 2000-08-29 | International Business Machines Corporation | Method and apparatus to select the next instruction in a superscalar or a very long instruction word computer having N-way branching |
| KR101337438B1 (ko) * | 2012-12-24 | 2013-12-05 | (주)비젼알에프텍 | 위상 지연 보상 장치 및 방법 |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS5199427A (ja) * | 1975-02-27 | 1976-09-02 | Hitachi Ltd | |
| JPS5269538A (en) * | 1975-12-08 | 1977-06-09 | Fujitsu Ltd | Interruption control system for information processing unit |
| JPS5362439A (en) * | 1976-11-16 | 1978-06-03 | Nec Corp | Data producing unit |
| JPS62175831A (ja) * | 1986-01-30 | 1987-08-01 | Fujitsu Ltd | タグ付きパイプライン制御方式 |
-
1988
- 1988-09-14 JP JP22877788A patent/JPH0277940A/ja active Pending
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS5199427A (ja) * | 1975-02-27 | 1976-09-02 | Hitachi Ltd | |
| JPS5269538A (en) * | 1975-12-08 | 1977-06-09 | Fujitsu Ltd | Interruption control system for information processing unit |
| JPS5362439A (en) * | 1976-11-16 | 1978-06-03 | Nec Corp | Data producing unit |
| JPS62175831A (ja) * | 1986-01-30 | 1987-08-01 | Fujitsu Ltd | タグ付きパイプライン制御方式 |
Cited By (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH0728639A (ja) * | 1993-07-13 | 1995-01-31 | Nec Corp | マイクロプロセッサ |
| WO1998033115A1 (en) * | 1997-01-24 | 1998-07-30 | Mitsubishi Denki Kabushiki Kaisha | A data processor |
| US6484253B1 (en) | 1997-01-24 | 2002-11-19 | Mitsubishi Denki Kabushiki Kaisha | Data processor |
| US6112299A (en) * | 1997-12-31 | 2000-08-29 | International Business Machines Corporation | Method and apparatus to select the next instruction in a superscalar or a very long instruction word computer having N-way branching |
| KR101337438B1 (ko) * | 2012-12-24 | 2013-12-05 | (주)비젼알에프텍 | 위상 지연 보상 장치 및 방법 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP3688270B2 (ja) | プロセッサの停止 | |
| US4740893A (en) | Method for reducing the time for switching between programs | |
| US4476525A (en) | Pipeline-controlled data processing system capable of performing a plurality of instructions simultaneously | |
| JPH0810430B2 (ja) | 情報処理装置 | |
| JPS59114641A (ja) | 割込処理装置 | |
| JPH07248897A (ja) | コンピュータ・システムにおける例外からの回復方法、及びそのための装置 | |
| EP0093430B1 (en) | Pipeline data processing system | |
| EP0094535B1 (en) | Pipe-line data processing system | |
| US5301331A (en) | Interruption handling system | |
| JP2535252B2 (ja) | 並列処理装置 | |
| JPH03286332A (ja) | デジタルデータ処理装置 | |
| US5253349A (en) | Decreasing processing time for type 1 dyadic instructions | |
| JP3611304B2 (ja) | 1サイクルのパイプライン・ストールを生成するパイプライン・プロセッサのシステム及び方法 | |
| RU2150738C1 (ru) | Система обработки и способ ее функционирования | |
| JPH0277940A (ja) | データ処理装置 | |
| JP2812610B2 (ja) | パイプライン制御方式 | |
| JP2553728B2 (ja) | 演算装置 | |
| US20250390304A1 (en) | Systems and methods for executing an instruction by an arithmetic logic unit pipeline | |
| JP6340887B2 (ja) | 演算処理装置及び演算処理装置の制御方法 | |
| JP2904624B2 (ja) | 並列演算処理装置 | |
| JP2558831B2 (ja) | パイプライン制御方式 | |
| JP2924735B2 (ja) | パイプライン演算装置及びデコーダ装置 | |
| JPH0786838B2 (ja) | 割り込み処理方式 | |
| JP2000305782A (ja) | 演算装置 | |
| JP2763450B2 (ja) | パイプライン処理データ処理装置 |