JPH0248932B2 - - Google Patents

Info

Publication number
JPH0248932B2
JPH0248932B2 JP59136772A JP13677284A JPH0248932B2 JP H0248932 B2 JPH0248932 B2 JP H0248932B2 JP 59136772 A JP59136772 A JP 59136772A JP 13677284 A JP13677284 A JP 13677284A JP H0248932 B2 JPH0248932 B2 JP H0248932B2
Authority
JP
Japan
Prior art keywords
instruction
execution
circuit
register
instructions
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
JP59136772A
Other languages
English (en)
Other versions
JPS6116335A (ja
Inventor
Hiroshi Matsumoto
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
Nippon Electric Co Ltd
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 Nippon Electric Co Ltd filed Critical Nippon Electric Co Ltd
Priority to JP13677284A priority Critical patent/JPS6116335A/ja
Publication of JPS6116335A publication Critical patent/JPS6116335A/ja
Publication of JPH0248932B2 publication Critical patent/JPH0248932B2/ja
Granted legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)

Description

【発明の詳細な説明】 発明の属する技術分野 本発明は命令先取り回路において命令列の順序
を変えて実行させるための制御を行なう情報処理
装置に関する。
従来技術 処理装置の高速化を計るには大きく分けて2つ
ある。1つはテクノロジー、および実装技術の高
速化であり、もう1つは論理方式による高速化で
ある。
論理方式の高速化では、従来から並列処理方式
とパイプライン処理方式の2つの方式が採用され
ている。使用する金物量の関係から最近の処理装
置ではパイプライン処理方式を採用しているもの
が多い。処理装置をパイプライン化し高速化を計
つた場合、問題はパイプラインの乱れである。こ
れをできる限り小さくすることが高速化のポイン
トとなる。
ところで与えられた命令列をパイプライン方式
により順次処理していく処理装置においては、1
命令づつ順次実行させるのが基本である。パイプ
ラインの乱れ、すなわち、例えば、前命令の結果
を次命令で使用するため前命令の実行を終了しな
ければ次の命令が実行できないとか、金物量の関
係で一部不完全なパイプライン機能を持ち同一機
能を使う命令が連続すると前命令が終了するまで
次の命令処理ができないといつた遅れの要因が生
じると後続の命令処理を中断する。乱れの要因が
無くなつた時点で、後続の最初の命令から順次処
理を再開する方法がとられている。この場合、後
続の最初の命令は処理を止める必要があるにして
も、2番目以降の命令の中には処理を停止する必
要のない場合も多く、命令の順序を変えて処理す
れば高速化されるが回路の複雑さ金物量の増加を
考えて採用せず性能向上をあきらめている場合が
多い。
発明の目的 本発明の目的は上記欠点を解決し、比較的簡単
な回路で性能を向上させるようにした情報処理装
置を提供することにある。
発明の構成 並列に実行することができる複数の実行ユニツ
トと メモリ上に格納された命令列を順次解読し、前
記実行ユニツトのいずれかに実行を指示する命令
先取りユニツトとを備えた情報処理装置におい
て、 前記命令先取りユニツトは 各命令語に応じて少なくとも命令実行に必要な
情報が格納されている場所、実行結果の格納場
所、使用すべき実行ユニツトおよび命令解読後す
ぐに実行指示を行なう第1のタイプの命令か、一
旦解読済み命令バツフアに格納後実行指示を行な
う第2のタイプの命令かを認識する命令解読手段
と、 前記複数の実行手段のうち、所望の実行ユニツ
トに対して実行を指示すれば結果が正しく得られ
る状態実行可能状態にあるかどうかを示すビジー
登録手段と、 命令解読終了段階の命令が前記第1のタイプの
命令であれば、ビジー登録手段の状態を調べ前記
第1のタイプの命令が実行可能状態にあれば所望
の実行ユニツトに対して実行を指示し、実行可能
状態になければ、命令解読終了状態のまま後続命
令の命令先取りも停止させて実行可能状態になる
のを待ち合わせ、命令解読終了段階の命令が前記
第2のタイプの命令であれば一旦実行に必要な情
報を少なくとも1命令分のエリアから成る解読済
み命令バツフアに格納してからビジー登録手段の
状態を調べ、この状態が実行可能状態にあれば所
望の実行ユニツトに対して実行を指示し、実行可
能状態になければ解読済み命令バツフア上で待ち
合わせ、この待ち合わせの間、後続命令の命令先
取りは停止させず、先取りされた命令の中に前記
第1のタイプの命令で、実行可能状態のものがあ
ればこれを先に実行指示させるように制御する実
行指示手段 とを含むことを特徴とする。
発明の実施例 次に本発明について図面を参照して詳細に説明
する。
以下に命令形式を示す。
加算命令 (R1)←(R2)+(R3) 乗算命令 (R1)←(R2)×(R3) ロード命令 (R1)←メモリの〔(R2)÷(R3)+
D〕番地のデータ ストア命令 (R1)→メモリの〔(R2)+(R3)+
D〕番地 ●(RX)はRXで指定されたプログラムレジ
スタの内容を意味する。
命令語は4バイトまたは8バイトからなり説明
上必要なもののみ示している。4バイト命令は主
にプログラムレジスタ間の演算を行なうものであ
る。プログラムレジスタとして、8バイトのデー
タを格納するレジスタが256個有り、これを0〜
255の番号で指定することができる。命令語のビ
ツト0〜7は加算とは乗算とかのオペレーシヨン
を表わす命令コードである。ビツト8〜15、16〜
23、および24〜31はそれぞれ8ビツトからなり、
プログラムレジスタの番号を指定するフイールド
である。例えば、加算命令ではR2フイールドで
指定されたプログラムレジスタの内容8バイトと
R3フイールドで指定されたプログラムレジスタ
の内容8バイトとを加算して、結果をR1フイー
ルドで指定したプログラムレジスタへ格納するこ
とを意味する。
8バイト命令は主に、主メモリとレジスタとの
間のデータの移送を行なうもので、R2フイール
ドおよびR3フイールドで指定された2つのプロ
グラムレジスタの下位4バイトの内容と、命令語
のビツト32〜63のDフイールドの値の3つの4バ
イトデータとを加算したものが、主メモリ上のア
ドレス情報となる。命令コードがロード命令を指
定していれば、主メモリ上の該当アドレスのデー
タがR1フイールドで指定されたプログラムレジ
スタへ転送し、ストア命令を指定していれば、R
1フイールドで指定されたプログラムレジスタの
内容が主メモリ上の該当アドレスへ転送される。
第1図を参照すると、本発明が適用されるシス
テムは、主メモリ1、命令先取回路2、プログラ
ムレジスタ群3および複数の実行回路4〜7から
構成されている。前記主メモリ1は処理すべき命
令、オペランドを格納するメモリである。
命令先取回路2は主メモリ1から転送パス10
1を介して命令語を順次読み出し、必要な処理を
行なつてプログラムレジスタ群3および各種実行
回路4〜7に必要情報を送り、命令の実行(演算
または移送など)を行なわせるものである。
プログラムレジスタ群3は、アドレス計算また
は演算のオペランドとして使用する8バイトデー
タを保持するレジスタを256個有し、256個のいず
れかは8ビツトの情報(番号)で指定される。上
述の8ビツトからなるR1,R2およびR3フイ
ールドの情報それぞれのうち各命令に応じて、プ
ログラムレジスタの内容を読み出す必要のあるも
のが同時に転送パス102を介して、プログラム
レジスタ群3に送られる。対応して読み出された
プログラムレジスタの内容は同時に、転送パス1
03を介して、実行回路4〜7に送られる。
実行回路4〜7はいずれも実行指示を受けてか
ら結果を出力するまで8マシンサイクルを必要と
するが、パイプライン方式の実行回路であり、1
マシンサイクル毎に実行指示を受けて実行するこ
とができる。また各実行回路はそれぞれ独立して
おり同時動作が可能である。
実行回路4は加減算の演算を行なう回路であ
る。2つのオペランドがプログラムレジスタ群3
から転送パス103を介して送られ、命令先取回
路2から転送パス102を介して、結果を格納す
るプログラムレジスタの番号と、演算種類つまり
固定小数点加算、固定小数点減算、浮動小数点加
算、浮動小数点減算を表わす情報および実行回路
4に対する実行指示信号が送られてくる。実行回
路4はこれに応答して所望の演算を行ない結果が
求まると転送パス104を介して、結果を格納す
るプログラムレジスタの番号と格納指示信号と
を、転送パス104を介して、また、結果のデー
タを転送バス105を介してプログラムレジスタ
群3に転送し、所望のレジスタに格納する。同時
に転送パス104を介して、結果格納用プログラ
ムレジスタの番号と格納指示信号とをビジー登録
回路23に送り、プログラムレジスタの更新を報
告する。
実行回路5は乗算を行なう回路であり実行回路
4とほぼ同様のため、説明は省略するが、転送パ
ス102を介して送られるものは、結果格納用プ
ログラムレジスタの番号と演算種類つまり、固定
小数点乗算、浮動小数点乗算を表わす情報および
実行回路5に対する実行指示信号である。
実行回路6は主メモリのデータをプログラムレ
ジスタへ移送するロード命令を実行する回路であ
る。プログラムレジスタ群3から転送パス103
を介して、アドレス計算に使用するプログラムレ
ジスタ2個の内容が、命令先取回路2から転送パ
ス106を介して命令語のDフイールドの情報が
送られ、転送パス102を介して実行回路6に対
する実行指示信号が与えられると、3つの情報を
加算してアドレス計算を行ない、結果のアドレス
情報と読出し要求信号とが転送パス107により
主メモリ1に転送される。これに応答して主メモ
リ1から読出されたデータが転送パス108を介
して実行回路6に送られてくると、実行回路6は
転送パス104を介して、結果を格納するプログ
ラムレジスタの番号と格納指示信号を転送すると
ともに、転送パス105を介して主メモリから読
出されたデータを転送し、実行回路4の所で述べ
たのと同じ動作を行なう。
実行回路7はプログラムレジスタの内容を主メ
モリへ移送するストア命令を実行する回路であ
る。プログラムレジスタ群3から転送パス103
を介してアドレス計算に使用するプログラムレジ
スタ2個の内容とストアすべきプログラムレジス
タの内容とが送られ、命令先取回路2から転送パ
ス106を介して命令語のDフイールドの情報が
送られ転送パス102を介して実行回路7に対す
る実行指示信号が与えられると、3つのアドレス
情報を加算してアドレス計算が行なわれる。結果
のアドレス情報と書込要求信号とが転送パス10
7を介して転送されるとともに、ストアすべきデ
ータが転送パス109を介して主メモリ1へ転送
し主メモリへの格納を行なう。
命令先取回路2は命令語を解読するための命令
解読回路21、解読後の命令について所望の実行
回路へ実行指示を行なうための判断および各種制
御を行なう実行指示回路22、実行回路へ指示が
出来るかどうかの情報を登録しておくためのビジ
ー登録回路23、命令によつては命令解読後すぐ
に実行指示を行なわず、一時、命令実行情報を格
納しておく解読済み命令バツフア24、命令解読
回路21から直接実行指示を行なうか、解読済み
命令バツフア24から実行指示を行なうかまたは
いずれからも実行指示を行なわないかによつて適
切な情報を出力する選択回路25から構成されて
いる。
命令解読回路21は、主メモリ1から転送パス
101を介して送られてくる命令語の命令コード
を調べ、その命令を実行させるべき実行回路を判
断する。所望の実行回路に対する実行指示信号
と、その実行回路に詳細を指示を与えるための情
報、例えば、加減算の実行回路4を使用する場合
には、固定小数点の加算であるか、固定小数点の
減算であるか、浮動小数点の加算であるか、浮動
小数点の減算であるかの情報が転送パス201に
出力される。またその命令で使用するプログラム
レジスタの番号またはDフイールドの情報が命令
語から取り出し、転送パス201に出力される。
さらにその命令でプログラムレジスタを更新する
場合には、そのレジスタ番号が転送パス208に
出力される。この命令解読回路21はパイプライ
ン構造になつており、基本的には1マシンサイク
ル毎に1命令を処理することができる。解読が終
了すると実行指示回路22に対し、転送パス20
2を介して解読が終つたことを連絡する。転送パ
ス202には、転送パス201に出力した情報の
うち、命令で使用するプログラムレジスタ番号す
べても出力される。
実行指示回路22は、解読の終了報告を受ける
と、実行を指示して良いかどうかの判断を行な
う。先ず、命令が、命令解読回路21から直接実
行指示を行なうタイプの命令か、解読済み命令バ
ツフア24から実行指示を行なうタイプの命令か
によつて動作が異なる。直接実行指示タイプ命令
であれば転送パス202を介して送られた、その
命令で使用するプログラムレジスタの番号すべて
と、転送パス204を介して送られている、ビジ
ー登録回路23に登録されたレジスタ番号すべて
との比較が行なわれる。比較の結果一致するもの
がなければ、その命令で使用するレジスタの中に
更新待ちのものがないことを意味し、命令は実行
可能状態である。この場合、制御信号205によ
つて選択回路25で命令解読回路21からの情報
201が選択され、転送パス102、および10
6に必要情報が出力され、所望の実行回路に実行
指示が与えられる。同時に転送パス208を介し
て送られるその命令で更新されるプログラムレジ
スタ番号を、ビジー登録回路23に登録させるた
めに、制御信号線203に信号が送られ、登録が
行なわれる。比較の結果、一致するものがあれば
その命令で使用するレジスタの中に更新待ちのも
のがあることを意味し、命令は実行不可能状態で
ある。この場合、制御信号線205の信号によ
り、選択回路25の出力には何も出力させず実行
指示を与えない。同時に制御信号線211を介し
て命令解読中断の指示が出力され、これを受けた
命令解読回路21では後続命令の解読処理が中断
され本命令の実行待ちとなる。
次に解読済み命令バツフア24から実行指示を
行なうタイプの命令であれば、制御信号線206
の信号により解読済み命令バツフア24に命令解
読回路21から情報線201を介して与えられる
情報を格納するように指示され、命令実行情報の
格納が行なわれる。また同時に転送パス208を
介して送られている、その命令で更新されるプロ
グラムレジスタ番号をビジー登録回路23に登録
するために制御信号線203を介して制御信号が
送られる。しかし登録の際実行ではなく、解読済
み命令バツフア24に格納したことを覚えておく
ための待機中フラグをレジスタ番号に付して登録
するように指示する。
解読済み命令バツフア24は複数命令分の情報
を格納することができる回路であり、格納された
命令実行情報のうち格納順の最も早い命令で使用
するプログラムレジスタのレジスタ番号を転送パ
ス210を介して実行指示回路22に送る。実行
指示回路22では転送パス204によつて送られ
ているビジー登録回路23に登録されているレジ
スタ番号のうち、待機中フラグのないものと常時
比較が行なわれる。比較の結果、一致するものが
ある間は、格納された命令はレジスタ更新待ちで
実行できないので格納したまま待合せの状態とな
る。これとともに引き続き命令解読回路21で解
読された後続命令がこれと並行して実行できるか
どうかの判断が行なわれている。後続命令が命令
解読回路21から直接実行指示を行なうタイプの
命令で実行可能状態であれば、後続命令の方が先
に実行指示される。後続命令が解読済み命令バツ
フア24から実行指示を行なうタイプの命令であ
れば前述と同様にして解読済み命令バツフア24
に格納される。比較の結果、一致するものがなく
なれば、制御信号線205の信号により選択回路
25で、解読済み命令バツフア24からの実行可
能になつた命令の実行情報209を選択させるこ
とにより転送パス102に必要情報が出力され、
所望の実行回路に実行を指示される。同時に制御
信号線203の制御信号がビジー登録回路23に
送られ転送パス207を介して解読済み命令バツ
フア24から送られているその命令で更新するレ
ジスタ番号に対応する待機中フラグがリセツトさ
れる。
ビジー登録回路23に登録されたレジスタ番号
は、実行回路4〜7のいずれかにより結果が求ま
り、プログラムレジスタを更新する際に転送パス
104で送られる更新レジスタ番号と更新信号と
によつて、登録が解除される。つまり、命令解読
回路21からの実行指示または解読済み命令バツ
フア24への格納と同時に登録されたレジスタ番
号は、命令実行終了に応答して、登録解除され
る。その間、そのレジスタは更新待ちの状態であ
り後続命令でそのレジスタを使用する場合は実行
不可能の状態であり、このための情報を保持する
のがビジー登録回路23である。
次に命令先取回路2を構成する命令解読回路2
1、実行指示回路22、ビジー登録回路23、解
読済み命令バツフア24および選択回路25につ
いて詳細に説明する。
第2図を参照すると、命令解読回路21は命令
語取出し制御回路2101、命令レジスタ210
2、デコーダ2103、制御フリツプフロツプ
(以下F/F)2104−2115、および制御
レジスタ2116−2119から構成されてい
る。
前記命令語取出し制御回路2101は、主メモ
リ1から命令語を隙間なく供給するための制御回
路である。しかし実施例の動作を理解するために
不必要な詳細な説明は省略する。主メモリ1から
送られてくる命令語は8バイトから構成される命
令レジスタ2102にセツトされる。4バイト長
命令の場合は左づめでセツトされる。デコーダ2
103は命令語中の命令コードを調べ、各命令に
応じた制御信号を作成する。まずその命令が命令
解読後直接実行指示を行なう第1のタイプの命令
か、一たん解読済み命令バツフア24に格納しそ
こから実行指示を行なう第2のタイプの命令かが
判断され、対応する制御F/FDおよびI210
4および2105がそれぞれセツトされる。ロー
ド命令およびストア命令は第1のタイプの命令に
属するのでF/FD=1、F/FI=0となり、加
減算系命令、および乗算系命令は第2のタイプの
命令に属するのでF/FD=0、F/FI=1とな
る。次にその命令を実行させるべき実行回路が判
断され、所望の実行回路に対する実行指示が行な
えるように制御F/FLD,ST,AS、およびMP
2106〜2109がセツトされる。ロード命令
の場合はF/FLD=1、ストア命令の場合は
F/FST=1、加減算系命令の場合はF/FAS
=1、乗算系命令の場合はF/FMP=1となる。
また、所望の実行回路に詳細な演算指示を与える
ため制御F/FFXおよびAD2110,2111
がセツトされる。加減算系命令の場合は、固定小
数点演算であればF/FFX=1、浮動小数点演
算であればF/FFX=0、加算であればF/
FAD=1、減算であればF/FAD=0、乗算系
命令の場合は、固定小数点演算であればF/
FFX=1、浮動小数点演算であればF/FFX=
0となる。さらにその命令で、R1フイールド、
R2フイールド、およびR3フイールドで指定さ
れるプログラムレジスタを読出す必要があるかど
うか、R1フイールドについてはそのプログラム
レジスタを更新するかどうかが判断され、制御フ
リツプフロツプ(F/F)W1,V1,V2、およ
びV32112〜2115がセツトされる。前記
F/FW1の内容はR1フイールドで指定されたプ
ログラムレジスタの更新の有無を示し、前記F/
FV1 V2およびV3の内容はそれぞれR1フイー
ルド、R2フイールドおよびR3フイールドで指
定されたプログラムレジスタの内容を読出す必要
の有無を示す。ロード命令、加減算系命令、およ
び乗算系命令ではF/F(W1,V1,V2,V3)=
1、0、1、1であり、ストア命令ではF/F
(W1,V1,V2,V3)=0、1、1、1となる。
ここでは説明上、上記4種の命令について述べて
いるが、他の命令ではF/FV2またはV3の内容
が“0”となる命令もありうる。レジスタ211
6〜2119はパイプライン構造上単に命令レジ
スタ2102のR1フイールド、R2フイール
ド、R3フイールドおよびDフイールドの内容を
1マシンサイクル遅れでセツトするためのレジス
タである。
こうしてセツトされた各種F/Fおよびレジス
タの出力は図に示すように、実行指示回路22、
ビジー登録回路23、解読済み命令バツフア2
4、および選択回路25に対して送出され後述の
処理が行なわれることになる。
実行指示回路22からの信号線FWが“1”に
なるとこれは命令の解読処理を一時中断せよとい
う指示である。この指示に応答して命令語取出し
制御回路2101の動作が停止され、命令レジス
タ2102、各種制御F/F、レジスタ2104
〜2119の内容がその時の状態のままで保持さ
れる。信号線FWが“0”になると後続命令の解
読が再開される。
第3図を参照すると、実行指示回路22は、命
令解読後実行に移れるかどうか、または解読済み
命令バツフアに格納できるかどうかを命令に応じ
て判断する第1の判断回路、および解読済み命令
バツフアに格納された命令が、実行に移れるかど
うかを判断する第2の判断回路から構成されてい
る。
先ず第1の判断回路について説明する。
最初に命令が、命令解読回路21から直接実行
指示を行なう第1のタイプの命令の場合、すなわ
ち、命令解読回路21からの入力信号線Dの状態
が“1”、線Iの状態が“0”について説明する。
命令解読回路21から入力されたプログラムレジ
スタ番号RR1,RR2およびRR3とビジー登録回
路23から入力されたプログラムレジスタ番号
BR0〜BR7との比較が24個の比較器2201〜
2224で行なわれる。各比較器の出力は、比較
したレジスタ番号が有効であることを意味する信
号、すなわちプログラムレジスタ番号RR1,
RR2、およびRR3については命令解読回路21
からの入力信号線W1vV1,V2,V3の状態、
およびプログラムレジスタ番号BR0〜BR7につ
いてはビジー登録回路23から入力する有効フラ
グ信号線BV0〜BV7の状態とがアンド回路2
225〜2248でそれぞれ論理積がとられ、論
理積結果の論理和がとられ、信号線L2201に
出力される。一致するレジスタ番号がない場合に
は、線L2201が“0”となり、ある場合には
線L2201が“1”になる。線L2201が
“0”のときは本命令で使用しようとしているプ
ログラムレジスタの内容は既に使える状態にある
ことを意味する。他の要因、すなわち、ビジー登
録回路23の空き無しがなければ本命令は実行す
ることができる。線L2201が“1”のとき
は、本命令で使用しようとしているプログラムレ
ジスタの内容を本命令以前の命令で更新しようと
している、すなわち、まだ更新されていないこと
を意味する。したがつて、本命令は実行すること
ができず、プログラムレジスタの内容が更新され
ビジー登録回路23からの対応する有効フラグの
信号線BViの状態が変化して線L2201が
“0”になるまで待たなければならない。そこで
「一致するレジスタ番号がなく(線L2201が
“0”)」かつ「命令がプログラムレジスタを更新
する命令でない(線W1が“0”)か、または更
新する命令であつてもビジー登録回路23に空き
がある(信号線L2203が“0”)の場合、す
なわち信号線L2202が“0”の場合」は信号
線L2204が“1”となる。信号線IDが“1”
の信号が選択回路25に送られることにより命令
の実行指示が与えられる。命令がプログラムレジ
スタを更新する命令であれば(線W1が“1”)、
線VSが“1”、線WSが“0”の信号がビジー登
録回路23に送られることによりプログラムレジ
スタ番号の登録が行なわれる。条件が満足され
ず、信号線L2204が“0”となる場合は、選
択回路25への信号線IDが“0”であるため命
令の実行指示は与えられない。線FWの信号
“1”が命令解読回路21に送られることにより
後続命令の解読処理が中止され、本命令の実行開
始待ちが行なわれる。
次に命令が、一たん、解読済み命令バツフア2
4に格納され、そこから実行指示を行なうタイプ
の命令の場合、すなわち命令解読回路21からの
入力信号線Dが“0”、線Iが“1”についてみ
ると命令解読回路21から入力されたプログラム
レジスタ番号RR1とビジー登録回路23から入
力されたプログラムレジスタ番号BR0〜BR7と
の比較が8個の比較器2201〜2208で行な
われる。各比較器の出力は、比較したレジスタ番
号が有効であることを意味する信号(プログラム
レジスタ番号RR1についてはW1vV1、プログ
ラムレジスタ番号BR0〜BR7についてはBV0〜
BV7)とアンド回路2225〜2232でそれ
ぞれ論理積がとられたあと論理和がとられ信号線
W1の信号と論理積がとられて信号線L2205
の信号となる。一致するレジスタ番号がない場合
には信号線L2205が“0”となり、ある場合
には信号線L2205が“1”になる。信号線L
2205が“0”のときは本命令では更新すべき
プログラムレジスタがないかまたは本命令で更新
しようとするプログラムレジスタの番号がビジー
登録回路23に登録されていないことを意味す
る。他の要因、すなわち、ビジー登録回路のあき
なし、または解読済み命令バツフアのあきなしが
なければ本命令は解読済み命令バツフアに格納す
ることができる。線L2205が“1”のときは
本命令で更新しようとするプログラムレジスタの
番号がビジー登録回路23に登録されていること
を意味する。ビジー登録回路23への同一番号の
2重登録を避けるため、本命令は解読済み命令バ
ツフア24に格納できず、プログラムレジスタの
内容が更新されビジー登録回路23からの対応す
る有効フラグの信号線BViの状態が変化して、線
L2205が“0”になるまで待たなければなら
ない。そこで「一致するレジスタ番号がなく線L
2205が“0”」かつ「命令がプログラムレジ
スタを更新する命令でない、すなわち線W1が
“0”か、または、更新する命令であつてもビジ
ー登録回路23にあきがあるすなわち、線L22
03が“0”の場合、従つて線L2202が
“0”の場合」でかつ「解読済み命令バツフア2
4にあきがある場合(解読済み命令バツフア24
から入力された信号線IFが“0”)」は信号線L
2206が“1”となる。信号線IIが“1”の信
号が解読済み命令バツフア24に送られることに
より、命令が解読済み命令バツフア24に格納さ
れ、命令がプログラムレジスタを更新する命令、
すなわち線W1が“1”であれば信号線VSが
“0”、線WSが“1”の信号群がビジー登録回路
23に送られることによりプログラムレジスタ番
号の登録が行なわれ、待機中フラグも合せてセツ
トされる。条件が満足されず信号線L2206が
“0”となる場合には解読済み命令バツフア24
への信号線IIの状態“0”により、解読済み命令
バツフア24への命令の格納が行なわれない。線
FWの“1”が命令解読回路21に送られること
により後続命令の解読処理が中止され、本命令の
解読済み命令バツフア24への登録待ちが行なわ
れる。
次に第2の判断回路について説明する。
解読済み命令バツフア24から入力されたプロ
グラムレジスタ番号SR1,SR2およびSR3とビジ
ー登録回路23から入力されたプログラムレジス
タ番号BR0〜BR7との比較が24個の比較器22
49〜2272で行なわれる。各比較器の出力
は、比較したレジスタ番号が有効であることを意
味する信号、すなわち、プログラムレジスタ番号
SR1,SR2、およびSR3については解読済み命令
バツフア24からの入力信号線SW1vSV1,
SV2,SV3の状態、プログラムレジスタ番号
BR0〜BR7についてはビジー登録回路23から
入力する待機中フラグのない有効フラグ信号線の
状態0・BV0,〜7・BV7とアンド回
路2273〜2296でそれぞれ論理積がとられ
た後ノア回路により信号線L2210に出力され
る。一致するレジスタ番号がない場合には線L2
210が“1”となり、ある場合には線L221
0が“0”になる。線L2210が“1”のとき
は命令で使用しようとしているプログラムレジス
タの内容はすでに使える状態にあることを意味
し、本命令は実行に入ることができる。線L22
10が“0”のときは本命令で使用しようとして
いるプログラムレジスタの内容を本命令以前の命
令で更新しようとしている、すなわち、まだ更新
されていないことを意味する。従つて、本命令は
実行に入れず、プログラムレジスタの内容が更新
され、ビジー登録回路23からの対応する有効フ
ラグの信号線BVjの状態が変化して線L2210
が“1”になるまで待たなければならない。そこ
で解読済み命令バツフア24に有効な命令があ
り、すなわち信号線IV3が“1”の状態でかつ
一致するレジスタ番号がない、すなわち線L22
10の状態が“1”の場合には信号線ISの状態
“1”の信号が選択回路25に送られる。このこ
とにより解読済み命令バツフア24からの命令の
実行指示を示え、命令がプログラムを更新する命
令すなわち信号線SW1が“1”であれば、信号
線WRの状態“1”の信号がビジー登録回路23
に送られ、対応する待機フラグがリセツトされ
る。また、選択回路25に送られた信号線ISの状
態“1”の信号が解読済み命令バツフア24にも
送られ、実行に入る命令が解読済み命令バツフア
から消去される。解読済み命令バツフア24に有
効な命令がない、すなわち線IV3の状態が“0”
または一致するレジスタ番号がある、すなわち線
L2210の状態が“0”の場合には線ISが
“0”、線WRが“0”となり実行指示も何も行な
わず、解読済み命令バツフア24の命令はそのま
まの状態で待合せが行なわれる。
ビジー登録回路23の詳細は第4図に示されて
いる。第4図において、ビジー登録回路には更新
待ちプログラムレジスタ番号を登録できる8個の
エントリー2300〜2307がある。さらにこの8個の
エントリー2300〜2307に対応して各1個のフリツ
プフロツプからなる有効フラグ(そのエントリー
に登録されているレジスタ番号が有効であること
を表わすフラグ2310〜2317)と同じく各
1個のフリツプフロツプからなる待機中フラグ
(そのエントリーに登録されている番号のレジス
タを更新する命令が命令バツフアにあつて実行開
始待ちの状態にあることを表わすフラグ2320
〜2327)とを持つている。
実行指示回路22から信号線VS,WSを介し
て与えられる信号が“1”、“0”になると、これ
は命令解読回路21から、プログラムレジスタを
更新する命令が実行に入ろうとしていることを意
味する。この場合、レジスタ番号の登録されてい
ないすなわち、有効フラグのセツトされていない
エントリーのうち若番のエントリーiに対して、
命令解読回路21から送られているレジスタ番号
R1を登録する信号L230iが“1”となり登
録が行なわれる。同時にそのエントリーに対応し
た有効フラグ231iがセツトされる。その後命
令の実行が終了し、プログラムレジスタの更新が
行なわれると同時に実行回路から信号線Wを介し
てビジー解除信号と信号線WAを介してプログラ
ムレジスタ番号が送られてくると、一致するレジ
スタ番号が登録されているエントリーの有効フラ
グをリセツトする信号線L231iが“1”とな
る。この信号に応答して有効フラグ231iがリ
セツトされそのエントリーは空き状態となる。
信号線VSおよびWSが“0”および“1”に
なると、これは命令解読回路21からプログラム
レジスタを更新する命令を解読済み命令バツフア
24に格納しようとしていることを意味する。こ
の場合、レジスタ番号の登録されていないすなわ
ち、有効フラグのセツトされていないエントリー
のうち、若番のエントリーjに対して命令解読回
路21から送られているレジスタ番号R1を登録
する信号線L230jが“1”となり登録が行な
われる。同時にそのエントリーに対応した有効フ
ラグ231jがセツトされるとともに信号線L2
32jの状態“1”により待機中フラグ232j
もセツトされる。その後、実行指示回路22から
の信号線WRが“1”になるとこれは解読済み命
令バツフア24からプログラムレジスタを更新す
る命令が、実行に入ろうとしていることを意味す
る。どのエントリーに対応したものであるかは解
読済み命令バツフアから実行に移ろうとしている
命令の更新レジスタ番号とビジー登録回路に登録
されているレジスタ番号とを比較することによつ
て判る。従つて線WRが“1”になると、解読済
み命令バツフア24から送られているレジスタ番
号SR1と、登録されているレジスタ番号BR0〜
BR7のうち、待機中フラグBW0〜BW7のセツ
トされているものとの比較を行ない、一致したも
の(j)に対応したリセツト信号線L233jが
“1”となる。この信号に応答して、待機中フラ
グ232jがリセツトされ、そのエントリーに対
応する命令は解読済み命令バツフア24から抜
け、実行に移つた状態を表わす。その後その命令
の実行が終了し、プログラムレジスタの更新が行
なわれると同時に実行回路から信号線Wのビジー
解除信号と、プログラムレジスタ番号WAが送ら
れて来ると、対応するレジスタ番号が登録されて
いるエントリーの有効フラグをリセツトする信号
L231jが“1”となり、有効フラグ231j
がリセツトされそのエントリーは空き状態とな
る。
各エントリーのレジスタ番号の出力BR0〜
BR7、有効フラグの出力BV0〜BV7、待機中
フラグの出力BW0〜BW7は実行指示回路22
へ送られ命令実行指示のための条件に使用され
る。
解読済み命令バツフア24の詳細は第5図に示
されている。この回路は命令解読回路21からの
命令実行情報を格納しておくレジスタを4個
(IB0〜IB3、2400〜2403)持ち、それ
ぞれに対して、1個のF/Fからなり、各レジス
タIB0〜IB3の内容が有効であることを示す命
令有効フラグ4個(IV0〜IV3、2410〜2
413)を有する。この4エントリー0〜3への
命令実行情報の格納は下側のエントリー(エント
リー3)から順に行なわれ、命令実行に移ること
のできるのは、エントリー3に入つている命令だ
けである。エントリー3に入つている命令が実行
に移ると、その情報はエントリー3から抜け同時
にエントリーiにはエントリーi−1の内容が移
る(i=1〜3。エントリー0には全ビツト0が
入る。)。
実行指示回路22から信号線IIを介し与えられ
る信号が“1”になると、これは、命令解読回路
21から解読済み命令バツフア24に命令実行情
報を格納する指示である。どのエントリーに対し
て格納するかは信号線L2410〜L2413の
うち“1”になつているもので指定される。この
信号線は命令有効フラグIV0〜IV3のうち、フ
ラグIV3から順にみて最初に“0”になつてい
るエントリーに対して“1”となる。線L241
iが“1”になつたとすると、レジスタIBiのセ
ツト信号線L240iが“1”となり、その時信
号線IIの信号により、レジスタIBiの入力として
命令解読回路21からの命令実行情報AS,MP,
FX,AD,W1,V1,RR1,V2,RR2,
V3、およびRR3が選ばれているので、これを
格納する。同時に、対応する命令有効フラグIVi
のセツト信号線L242iが“1”となるので、
エントリーIViが“1”にセツトされ、解読済み
命令バツフア24への格納は終了することにな
る。
最も下側のエントリーIB3とIV3の出力、およ
びエントリーの空きがないという信号線IFの信
号、すなわちエントリーIV0〜IV3がすべて“1”
のとき信号線IFの信号“1”は図に示すように
命令指示回路22、切替回路25、およびビジー
登録回路23に送られている。
実行指示回路22では、送られた情報により、
解読済み命令バツフアから実行に移ることができ
るかどうかを判断する。実行に移ることができる
ようになると、信号線ISの信号“1”を送つてく
る。線ISが“1”になると、各エントリーのレジ
スタIB0〜IB3のセツト信号線L2400〜L2
403がすべて“1”となる。その時信号線ISの
信号によつてレジスタIBjの入力としてレジスタ
IBj−1(j=1〜3。レジスタIB0の入力は全ビ
ツト“0”。)の出力が選ばれているのでこれが格
納される。同時に、対応する命令有効フラグに対
しては、後続のエントリーの命令有効フラグの値
に応じて、セツト信号線L242j(エントリー
IVj−1=1のとき)の信号か、リセツト信号線
L243j(エントリーIVj−1=0のとき)の
信号のいずれかが“1”となり、エントリーIVj
にはエントリーIVj−1(j=1〜3。IV0には
0)の値がセツトされて動作を終了する。これに
よつてエントリー3の命令は解読済み命令バツフ
ア24から抜け、実行指示回路22では後続命令
の実行開始の判断を始めることになる。
選択回路25の詳細は第6図に示されている。
実行指示回路22からの信号線IDが“1”の場
合には命令解読回路21から入力された情報がア
ンド回路で有効にされ、信号線ISが“1”の場合
には解読済み命令バツフア24から入力された情
報がアンド回路で有効にされ、出力を図のように
プログラムレジスタ群3、実行回路4〜7に送る
ことにより実行指示が行なわれる。なお、図中、
命令解読回路21からの信号線RR1,RR2、
およびRR3の信号と解読済み命令バツフア24
からの信号線SR1,SR2,SR3の信号のアン
ド−オア回路は8ビツト分、命令解読回路21か
らの信号線RDのアンド回路は32ビツト分ある
が、図では機能を判り易くするためそれぞれ1つ
ずつのアンド、オア回路で示している。
次に、本発明の回路により高速化される一例に
ついて説明する。
第7図に示すような4命令が連続しているもの
とする。1番目のロード命令で更新するプログラ
ムレジスタ0の内容が、2番目の加算命令でオペ
ランドとして使用される。3番目のロード命令で
更新するプログラムレジスタ5の内容が、4番目
の乗算命令でオペランドとして使用される。従つ
て2番目の加算命令、4番目の乗算命令はそれぞ
れ1番目、3番目のロード命令が終了していない
時に、つまりプログラムレジスタ0、または5が
更新されていない時に実行を開始すると、誤つた
結果となるので、更新待ちをしなければならな
い。
第9A図を参照すると、本発明による命令追い
越しの回路がなければ3番目のロード命令は待ち
合わせの必要がないにもかかわらず、2番目の加
算命令が実行できるようになるまで実行を待たな
ければならないので、4命令を実行するのに25マ
シンサイクルを必要とする。
第1図および第9B図を参照すると、ロード命
令は命令解読回路21から直接実行指示を行なう
タイプの命令であり、加算および乗算命令は解読
済み命令バツフア24から実行指示を行なうタイ
プの命令である。本発明の回路によれば、1番目
のロード命令を実行回路6で実行させるように実
行指示回路22が実行指示を出させると同時に、
ビジー登録回路23にレジスタ番号0を登録す
る。次のサイクル(サイクル1)で2番目の加算
命令が命令解読終状態となる。本命令は解読済み
命令バツフア24から実行指示を行なうタイプの
命令であり、更新レジスタ番号3はビジー登録回
路23に登録されている番号と一致しないので必
要情報を解読済み命令バツフア24に格納する。
同時にビジー登録回路23にレジスタ番号3を待
機中フラグを付して登録する。その後実行指示回
路22は解読済み命令バツフア24から加算命令
で使用するレジスタ番号3,4、および0の情報
を入力し、ビジー登録回路23に登録されたレジ
スタ番号0および3のうち、待機中フラグの付い
ていないレジスタ番号0との比較を継続して行な
う。次に、サイクル2で3番目のロード命令を実
行回路6で実行させようとするとき、実行指示回
路22はビジー登録回路23に登録されたレジス
タ番号0および3とロード命令で使用するレジス
タ番号5,6および7とを比較し、一致するもの
がないので、実行指示回路22は実行回路6に実
行を指示すると同時にビジー登録回路23にレジ
スタ番号5を登録する。サイクル3で4番目の乗
算命令が命令解読終了状態となるが、本命令は解
読済み命令バツフア24から実行指示を行なうタ
イプの命令である。したがつて、更新レジスタ番
号8はビジー登録回路23に登録されている番号
と一致しないので、必要情報を解読済み命令バツ
フア24へ格納すると同時に、ビジー登録回路2
3にレジスタ番号8を待機中フラグ付きで登録す
る。以後命令が続いている場合は同様に処理を継
続するが、この例では4命令に着目しているので
省略する。実行指示回路22は解読済み命令バツ
フア24に格納した加算命令で使用するレジスタ
番号3,4および0とビジー登録回路23に登録
されたレジスタ番号0,3,5および8のうち待
機中フラグのないレジスタ番号0および5との比
較をしている。サイクル8になると、1番目のロ
ード命令が終了しレジスタ0が更新され、登録さ
れたレジスタ番号0が登録解除されるので加算命
令の待ち合わせはなくなる。そこで実行指示回路
22は加算命令の実行指示を行なうために、解読
済み命令バツフア24から加算命令の実行に必要
な情報を読み出し、選択回路25を通して実行回
路4に実行指示を行なう。同時に、ビジー登録回
路23に登録していたレジスタ番号3の待機中フ
ラグのみがリセツトされ、正式登録の状態とな
る。実行指示回路22はこの後、解読済み命令バ
ツフア24に格納した乗算命令で使用するレジス
タ番号8,5および9とビジー登録回路23に登
録されたレジスタ番号3,5および8のうち待機
中フラグのないレジスタ番号3および5との比較
を始め、レジスタ番号5が一致するので待ち合わ
せを行なう。サイクル10になると3番目のロード
命令が終了し、以下上記加算命令の場合と同様の
動作を行つて乗算命令の実行を開始させる。従つ
て本発明の回路によれば第9B図に示すように、
2番目の加算命令より後続の3番目のロード命令
の実行が時間的に早くなり(命令の追い越し)、
処理サイクルは18サイクルとなつて第9A図に比
べて高速化されることは明らかである。
なお、ここで説明したものは本発明を実現して
いる一例であり、実行回路の処理時間が可変であ
つても良いしビジー登録回路としては、レジスタ
番号の登録のみを記載しているが、これ以外に実
行回路が使用中で待ち合わせを行なわなければな
らない場合など他の条件の登録を行なつていても
良いし、解読済み命令バツフアから実行に移る命
令の順は格納順でなくても良いことは言うまでも
ない。
発明の効果 本発明は命令の実行を何らかの原因で待たなけ
ればならない場合が比較的多い命令については必
要な情報を一時命令バツフアに格納し、後続の命
令が命令バツフアへの格納の対象にならない命令
で、しかも待ちの原因がなければ、後続の命令を
先に実行させることによつて処理が高速化できる
という効果がある。
【図面の簡単な説明】
第1図は本発明の一実施例を示す図、第2図〜
第6図はそれぞれ第1図に示した命令解読回路2
1、実行指示回路22、ビジー登録回路23、解
読済み命令バツフア24、切替回路25の詳細な
構成を示す図、第7図は本発明により高速化され
ることを説明する為の命令の連続例を示す図およ
び第8A図および第8B図はそれぞれ本発明のな
い回路と本発明の回路で処理した場合のタイムチ
ヤートである。 第1図から第8B図において、1……主メモ
リ、2……命令先取回路、3……プログラムレジ
スタ群、4……加減算命令実行回路、5……乗算
命令実行回路、6……ロード命令実行回路、7…
…ストア命令実行回路、21……命令解読回路、
22……実行指示回路、23……ビジー登録回
路、24……解読済み命令バツフア、25……選
択回路。

Claims (1)

  1. 【特許請求の範囲】 1 並列に実行することができる複数の実行ユニ
    ツトと メモリ上に格納された命令列を順次解読し前記
    実行ユニツトのいずれかに実行を指示する命令先
    取りユニツトとを備えた情報処理装置において 前記命令先取りユニツトは 各命令語に応じて少なくとも命令実行に必要な
    情報が格納されている場所、実行結果の格納場
    所、使用すべき実行ユニツトおよび命令解読後す
    ぐに実行指示を行なう第1のタイプの命令か、一
    旦解読済み命令バツフアに格納後実行指示を行な
    う第2のタイプの命令かを認識する命令解読手段
    と、 前記複数の実行ユニツトのうち、所望の実行ユ
    ニツトに対して実行を指示すれば結果が正しく得
    られる実行可能状態にあるかどうかを示すビジー
    登録手段と、 命令解読終了段階の命令が前記第1のタイプの
    命令であれば、ビジー登録手段の状態を調べ前記
    第1のタイプの命令が実行可能状態にあれば所望
    の実行ユニツトに対して実行を指示し、実行可能
    状態になければ、命令解読終了状態のまま後続命
    令の命令先取りも停止させて実行可能状態になる
    のを待ち合わせ、命令解読終了段階の命令が前記
    第2のタイプの命令であれば一旦実行に必要な情
    報を少なくとも1命令分のエリアから成る解読済
    み命令バツフアに格納してからビジー登録手段の
    状態を調べ、この状態が実行可能状態にあれば所
    望の実行ユニツトに対して実行を指示し、実行可
    能状態になければ解読済み命令バツフア上で待ち
    合わせ、この待ち合わせの間、後続命令の命令先
    取りは停止させず先取りされた命令の中に前記第
    1のタイプの命令で、実行可能状態のものがあれ
    ばこれを先に実行指示させるように制御する実行
    指示手段 とを含むことを特徴とする情報処理装置。
JP13677284A 1984-07-02 1984-07-02 情報処理装置 Granted JPS6116335A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP13677284A JPS6116335A (ja) 1984-07-02 1984-07-02 情報処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP13677284A JPS6116335A (ja) 1984-07-02 1984-07-02 情報処理装置

Publications (2)

Publication Number Publication Date
JPS6116335A JPS6116335A (ja) 1986-01-24
JPH0248932B2 true JPH0248932B2 (ja) 1990-10-26

Family

ID=15183150

Family Applications (1)

Application Number Title Priority Date Filing Date
JP13677284A Granted JPS6116335A (ja) 1984-07-02 1984-07-02 情報処理装置

Country Status (1)

Country Link
JP (1) JPS6116335A (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0248990B1 (en) * 1986-06-12 1994-06-15 International Business Machines Corporation A sequence controller and method of an instruction processing unit for placing said unit in a ready, go, hold, or cancel state
US5031096A (en) * 1988-06-30 1991-07-09 International Business Machines Corporation Method and apparatus for compressing the execution time of an instruction stream executing in a pipelined processor
JPH0673105B2 (ja) * 1988-08-11 1994-09-14 株式会社東芝 命令パイプライン方式のマイクロプロセッサ
US5099421A (en) * 1988-12-30 1992-03-24 International Business Machine Corporation Variable length pipe operations sequencing
JPH02301832A (ja) * 1989-05-17 1990-12-13 Sony Tektronix Corp パイプライン処理方法
GB9412439D0 (en) * 1994-06-21 1994-08-10 Inmos Ltd Computer instruction pipelining
JP5007860B2 (ja) * 2007-04-17 2012-08-22 エヌイーシーコンピュータテクノ株式会社 ベクトル処理装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5744173B2 (ja) * 1975-02-27 1982-09-20
JPS5729153A (en) * 1980-07-29 1982-02-17 Fujitsu Ltd Control system for instruction processing order
JPS57161938A (en) * 1981-03-30 1982-10-05 Fujitsu Ltd Instruction control system
JPS5844569A (ja) * 1981-09-10 1983-03-15 Fujitsu Ltd 命令処理同期制御方式

Also Published As

Publication number Publication date
JPS6116335A (ja) 1986-01-24

Similar Documents

Publication Publication Date Title
EP0239081B1 (en) Pipelined data processor capable of decoding and executing plural instructions in parallel
US4740893A (en) Method for reducing the time for switching between programs
KR101148495B1 (ko) 파이프라인 프로세서에서 조건 명령 실행을 촉진시키기 위해 로컬 조건 코드 레지스터를 이용하기 위한 방법 및 장치
EP0205809B1 (en) Vector processing
EP0438961A2 (en) Hardware data string operation controller
CN1009396B (zh) 具有指令予取换向中断服务的数据处理器控制部件
JPH0766329B2 (ja) 情報処理装置
JPH0545985B2 (ja)
JP2560988B2 (ja) 情報処理装置および処理方法
JPH07129413A (ja) 割込み処理装置
JPH0895804A (ja) 中央処理装置
JPH10228376A (ja) 複数レジスタ命令を処理する方法及びプロセッサ
JPH0348537B2 (ja)
JPH0348536B2 (ja)
JPS63317828A (ja) マイクロコ−ド読み出し制御方式
JPH0248932B2 (ja)
EP0162929B1 (en) Method of controlling branching
JPH0512751B2 (ja)
JP2503984B2 (ja) 情報処理装置
JP2583614B2 (ja) ベクトル演算装置
JPH10283178A (ja) 命令を発行するための方法及びシステム
JPS6134186B2 (ja)
JP2821328B2 (ja) 並列計算機
JPS6134188B2 (ja)
JP2924735B2 (ja) パイプライン演算装置及びデコーダ装置