JPS5896346A - 階層型演算方式 - Google Patents
階層型演算方式Info
- Publication number
- JPS5896346A JPS5896346A JP56194002A JP19400281A JPS5896346A JP S5896346 A JPS5896346 A JP S5896346A JP 56194002 A JP56194002 A JP 56194002A JP 19400281 A JP19400281 A JP 19400281A JP S5896346 A JPS5896346 A JP S5896346A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- arithmetic unit
- arithmetic
- data
- signal
- 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
- 238000004364 calculation method Methods 0.000 title claims description 62
- 238000012545 processing Methods 0.000 claims abstract description 21
- 238000000034 method Methods 0.000 claims description 14
- 230000005540 biological transmission Effects 0.000 claims 2
- 238000007796 conventional method Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 239000011159 matrix material Substances 0.000 description 2
- 230000015556 catabolic process Effects 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 238000012546 transfer Methods 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/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/3001—Arithmetic instructions
-
- 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
- G06F9/3826—Bypassing or forwarding of data results, e.g. locally between pipeline stages or within a pipeline stage
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Advance Control (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
本発明は、階層型演算方式に関し、特にパイプライン方
式のコンピュータにおいて、命令の先行制御の高速化を
計ることができる階層型演算方式%式% パイプライン方式の演算では、演算過程をいくつかの段
階に垂直に分割して、その間に多数組のデータを同時に
流し、逼常は1つの命令の実行に多数サイクルの時間か
かかるところを1命令/lサイクルの速度で命令の流れ
を処理できるようにしている。
式のコンピュータにおいて、命令の先行制御の高速化を
計ることができる階層型演算方式%式% パイプライン方式の演算では、演算過程をいくつかの段
階に垂直に分割して、その間に多数組のデータを同時に
流し、逼常は1つの命令の実行に多数サイクルの時間か
かかるところを1命令/lサイクルの速度で命令の流れ
を処理できるようにしている。
このようなパイプライン方式のコンピュータにおいては
、ある命令の処理に必要なデータが、先行する命令の演
算結果に依存する場合には、その演算結果が確定するま
でパイプライン処理を中断しなければならないため、性
能低下が生ずる。例えば、ペース・レジスタに格納され
たペース・アドレスと命令中のアドレスを加算して主メ
モリの絶対アドレスを計算する方式、あるいは更新可能
なインデックス・レジスタのアドレスと命令中のアドレ
スとを加算して主メモリの絶対アドレスを計算する方式
では、オペランド・アドレスの計算に用いられるペース
・レジスタ、あるいはインデックス・レジスタの内容が
近接する先行命令によって書き換えられる場合がある(
これをアドレス・コンフリクト(番地衝突)と呼ぶ)。
、ある命令の処理に必要なデータが、先行する命令の演
算結果に依存する場合には、その演算結果が確定するま
でパイプライン処理を中断しなければならないため、性
能低下が生ずる。例えば、ペース・レジスタに格納され
たペース・アドレスと命令中のアドレスを加算して主メ
モリの絶対アドレスを計算する方式、あるいは更新可能
なインデックス・レジスタのアドレスと命令中のアドレ
スとを加算して主メモリの絶対アドレスを計算する方式
では、オペランド・アドレスの計算に用いられるペース
・レジスタ、あるいはインデックス・レジスタの内容が
近接する先行命令によって書き換えられる場合がある(
これをアドレス・コンフリクト(番地衝突)と呼ぶ)。
また、加算命令の第1オペランドとしての被加算値は特
定の汎用レジスタ(例えば16個のうちの1個)に格納
され、加算値は命令の第2オペランドで指定されたアド
レスが示す主メモリ上に格納されているような制御方式
では、オペランドに用いられる汎用レジスタの内容が近
接する先行命令によって誉き換えられる場合がある(こ
れをオペランド・コンフリクトと呼ぶ)。アドレス・コ
ンフリクトとオペランド・コンフリクトを合わせて、レ
ジスタ・コンフリクトと呼ぶ。
定の汎用レジスタ(例えば16個のうちの1個)に格納
され、加算値は命令の第2オペランドで指定されたアド
レスが示す主メモリ上に格納されているような制御方式
では、オペランドに用いられる汎用レジスタの内容が近
接する先行命令によって誉き換えられる場合がある(こ
れをオペランド・コンフリクトと呼ぶ)。アドレス・コ
ンフリクトとオペランド・コンフリクトを合わせて、レ
ジスタ・コンフリクトと呼ぶ。
このようなレジスタ・コンフリクトが発生した場合、従
来においては、汎用レジスタの書き換えを行う命令(以
下、変更命令と呼ぶ)のうち、比較的簡単な演算を行う
命令については、演算結果を専用の回路(以下先行演算
器と呼ぶ)により早期に求め、この演算結果を必要とす
る後続命令(これを要求命令と呼ぶ)の処理に用いるこ
とによって性能の低下を最小限に止めている(日立、汎
用コンピュータM−200H参照)。
来においては、汎用レジスタの書き換えを行う命令(以
下、変更命令と呼ぶ)のうち、比較的簡単な演算を行う
命令については、演算結果を専用の回路(以下先行演算
器と呼ぶ)により早期に求め、この演算結果を必要とす
る後続命令(これを要求命令と呼ぶ)の処理に用いるこ
とによって性能の低下を最小限に止めている(日立、汎
用コンピュータM−200H参照)。
しかし、従来の方式では、命令の演算結果を汎用レジス
タ等の結果フィールドに書き込む際に。
タ等の結果フィールドに書き込む際に。
演算結果として先行演算器で求めたものを用いることな
く、演算ユニットで同一の演算を再度行って求めたもの
を書き込んでいる。それにもかかわらず、先行演算器へ
の入力データのセット・アップと演算ユニットへの入力
データのセット・アップを同一のパスを用いて行ってい
る。したがって。
く、演算ユニットで同一の演算を再度行って求めたもの
を書き込んでいる。それにもかかわらず、先行演算器へ
の入力データのセット・アップと演算ユニットへの入力
データのセット・アップを同一のパスを用いて行ってい
る。したがって。
もし先行演算器への入力データのセット・アップと演算
ユニットへの入力データのセット・アップを同一時刻に
行わないと仮定すれば、ある命令の先行演算器への入力
データのセット・アップと別の命令の演算ユニットへの
入力データのセラF・アップとが、セット・アップ・パ
スにおいて競合する可能性がある。そこで、この競合を
避けるために、1つの命令については、先行演算器への
入力データのセット・アップと演算ユニットへの入力デ
ータのセットアツプとを同一時刻に行うことにしている
。しかし、演算ユニットが同時に1命令しか処理不可能
であるとすれば、直前の命令の終了後でないと入力デー
タのセット・アップは行えない。したがって、先行演算
も直前の命令の終了後でなければ行えないことになる。
ユニットへの入力データのセット・アップを同一時刻に
行わないと仮定すれば、ある命令の先行演算器への入力
データのセット・アップと別の命令の演算ユニットへの
入力データのセラF・アップとが、セット・アップ・パ
スにおいて競合する可能性がある。そこで、この競合を
避けるために、1つの命令については、先行演算器への
入力データのセット・アップと演算ユニットへの入力デ
ータのセットアツプとを同一時刻に行うことにしている
。しかし、演算ユニットが同時に1命令しか処理不可能
であるとすれば、直前の命令の終了後でないと入力デー
タのセット・アップは行えない。したがって、先行演算
も直前の命令の終了後でなければ行えないことになる。
このように、従来の方式においては、パイプライン制御
の複雑化を避けるため、およびノ・−ドウエア規模の増
大を避けるため、先行演算器へのデータ・パスと演算ユ
ニットへのデータ・パスな共用しているので、先行演算
を直前の命令の演算実行終了後でなければ行うことがで
きない。
の複雑化を避けるため、およびノ・−ドウエア規模の増
大を避けるため、先行演算器へのデータ・パスと演算ユ
ニットへのデータ・パスな共用しているので、先行演算
を直前の命令の演算実行終了後でなければ行うことがで
きない。
一方、先行演算に必要なオペランド・データ自体は、直
前の命令の演算実行に並行して、あるいはそれ以前に行
われる命令の先行制御により、一般にはすでに読み出さ
れている。また、先行演算器自体は、直前の命令の演算
実行中には何の動作も行っていない。したがって、従来
の方式においては、直前の命令の演算実行が何らかの理
由により長びいている場合、その命令のオペランド・デ
ータがすでに読み出され、かつ先行演算器が空いている
にもかかわらず、直前の命令の演算実行が経了するまで
先行演算が延ばされるため、その命令の先行演算の結果
を必要とする後続命令の処理がさらに延ばされることに
なる。
前の命令の演算実行に並行して、あるいはそれ以前に行
われる命令の先行制御により、一般にはすでに読み出さ
れている。また、先行演算器自体は、直前の命令の演算
実行中には何の動作も行っていない。したがって、従来
の方式においては、直前の命令の演算実行が何らかの理
由により長びいている場合、その命令のオペランド・デ
ータがすでに読み出され、かつ先行演算器が空いている
にもかかわらず、直前の命令の演算実行が経了するまで
先行演算が延ばされるため、その命令の先行演算の結果
を必要とする後続命令の処理がさらに延ばされることに
なる。
本発明の目的は、このような従来の問題を解決するため
、パイプライン方式のコンピュータにおいて、レジスタ
・コンフリクトが発生した場合に、ヨ’)早期にレジス
タ・コンフリクトを解消し、処理速度を向上させること
ができる階層型演算方式を提供することにある。
、パイプライン方式のコンピュータにおいて、レジスタ
・コンフリクトが発生した場合に、ヨ’)早期にレジス
タ・コンフリクトを解消し、処理速度を向上させること
ができる階層型演算方式を提供することにある。
上記目的を達成するため1本発明の階層型演算方式では
、パイプライン方式のコンピュータにおいて、命令語の
解読情報とオペランド・データとを、演算ユニットでの
演算実行開始まで格納する入力データ・バッファ、およ
び上記演算ユニットとは独立に演算結果を求める先行演
算器を有し、先行する命令の演算実行のために、上記演
算ユニットが占有されているか否かに関係なく、上記入
力データ・バッファに命令語の解読情報とオペランド・
データが格納されると、直ちに該入力データ・バッファ
からデータを読み出し、該データを上記先行演算器に入
力して演算を行い、演算結果を上記命令以降の命令の処
理に用いることを特徴として−いる。
、パイプライン方式のコンピュータにおいて、命令語の
解読情報とオペランド・データとを、演算ユニットでの
演算実行開始まで格納する入力データ・バッファ、およ
び上記演算ユニットとは独立に演算結果を求める先行演
算器を有し、先行する命令の演算実行のために、上記演
算ユニットが占有されているか否かに関係なく、上記入
力データ・バッファに命令語の解読情報とオペランド・
データが格納されると、直ちに該入力データ・バッファ
からデータを読み出し、該データを上記先行演算器に入
力して演算を行い、演算結果を上記命令以降の命令の処
理に用いることを特徴として−いる。
以下、本発明の実施例を、図面により説明する。
第1図は1本発明の実施例を示す階層型演算処理装置の
ブロック図である。
ブロック図である。
第1図においては、演算エニツ)14と先行演算器29
とに、並行して演算処理させるため、命令の解読情報と
オペランド・データとを独立して読み出すセレクタ11
,12.2+、25、先行演算の結果を格納するバッフ
ァ32.この演算結果を任意の時点に読み出すセレクタ
38〜41、およびこれらのセレクタ38〜41を制御
するコンフリクト制御回路13が設けられている。
とに、並行して演算処理させるため、命令の解読情報と
オペランド・データとを独立して読み出すセレクタ11
,12.2+、25、先行演算の結果を格納するバッフ
ァ32.この演算結果を任意の時点に読み出すセレクタ
38〜41、およびこれらのセレクタ38〜41を制御
するコンフリクト制御回路13が設けられている。
先ず、メモリ装置18から読み出された命令語ハ命令レ
ジスタ1にセットされ、命令解読のために命令デコーダ
3に送られるとともに、アドレス・レジスタの読み出し
のために汎用レジスタ装置養に信号線2を介して送出さ
れる。同時に、アドレス計算のためにアドレス加算器5
に送出され、またアドレス・コンフリクトの検出のため
にコンフリクト制御回路13にも送出される。命令デコ
ーダ3に?いては、その命令の処理に必要な種々・の情
報か命令語を解読することにより生成される。
ジスタ1にセットされ、命令解読のために命令デコーダ
3に送られるとともに、アドレス・レジスタの読み出し
のために汎用レジスタ装置養に信号線2を介して送出さ
れる。同時に、アドレス計算のためにアドレス加算器5
に送出され、またアドレス・コンフリクトの検出のため
にコンフリクト制御回路13にも送出される。命令デコ
ーダ3に?いては、その命令の処理に必要な種々・の情
報か命令語を解読することにより生成される。
この解読情報の中には、先行演算が可能であるか否かを
示す情報、先行演算が可能である場合には演算のs類を
示す情報、変更する汎用レジスタの番号、オペランドと
して読み出す汎用レジスタの番号等が含まれ、これらの
解読情報は信号[6を介して命令待ち行列7およびコン
フリクト制御回路13に格納される。第1図では、命令
待ち行列7は3回設けられ、各面に1命令ごとの解読情
報が格納されており、命令の解読される脂にしたがって
3面がサイクリックに使用される。各自に格納された各
命令の解読情報は、順次16号線8,9゜lOを介して
セレクタ11.12に送出される。
示す情報、先行演算が可能である場合には演算のs類を
示す情報、変更する汎用レジスタの番号、オペランドと
して読み出す汎用レジスタの番号等が含まれ、これらの
解読情報は信号[6を介して命令待ち行列7およびコン
フリクト制御回路13に格納される。第1図では、命令
待ち行列7は3回設けられ、各面に1命令ごとの解読情
報が格納されており、命令の解読される脂にしたがって
3面がサイクリックに使用される。各自に格納された各
命令の解読情報は、順次16号線8,9゜lOを介して
セレクタ11.12に送出される。
セレクタ11は、命令待ち行列7に格納されている解読
情報のうち、現在演算ユニット14で積算が実行され【
いる命令の次に演算実行すべき命令より生成されたもの
を選択する。この場合、セレクタ11による命令待ち行
列7の選択は、従来と同じように、益金制御装置52か
ら信号線53を介して送出される命令待ち行列出カポイ
ンタの値によって行われる。この命令待ち行列出カポイ
ンタの値は、演算ユニット14に命令待ち行列の内容が
セット・アップされる良ごとに1ずつ更新される(ただ
し、5を法として、lを加算する方法を用いる)。
情報のうち、現在演算ユニット14で積算が実行され【
いる命令の次に演算実行すべき命令より生成されたもの
を選択する。この場合、セレクタ11による命令待ち行
列7の選択は、従来と同じように、益金制御装置52か
ら信号線53を介して送出される命令待ち行列出カポイ
ンタの値によって行われる。この命令待ち行列出カポイ
ンタの値は、演算ユニット14に命令待ち行列の内容が
セット・アップされる良ごとに1ずつ更新される(ただ
し、5を法として、lを加算する方法を用いる)。
第1図では、命令待ち行列7からセレクタ11によって
選択される解読情報のうち、特にオペランドとして読み
出す汎用レジスタ番号が、信号線15を介して汎用レジ
スタ装置4に送出さゎている。セレクタ11から出方さ
れるオペランドの汎用レジスタ番号は、その命令の解読
情報が命令待ち行列7に存在し、かつメモリ・オペラン
ド・データが読み出され、しかも直前の命令の演算実行
が終了した時点に、信号線15を介して汎用レジスタ装
f4に送出されることにより、送出された番号の汎用レ
ジスタの内容がオペランドとして読み出されて、信月線
16を介して演算ユニット14に送出される。なお、上
記説明で、直前の命令の演算実行か終了したことは、演
算エニツ)14から信号線59を介して送出されるE、
OP(End ofOperatlon)信号が“1′
となることにより判別される。
選択される解読情報のうち、特にオペランドとして読み
出す汎用レジスタ番号が、信号線15を介して汎用レジ
スタ装置4に送出さゎている。セレクタ11から出方さ
れるオペランドの汎用レジスタ番号は、その命令の解読
情報が命令待ち行列7に存在し、かつメモリ・オペラン
ド・データが読み出され、しかも直前の命令の演算実行
が終了した時点に、信号線15を介して汎用レジスタ装
f4に送出されることにより、送出された番号の汎用レ
ジスタの内容がオペランドとして読み出されて、信月線
16を介して演算ユニット14に送出される。なお、上
記説明で、直前の命令の演算実行か終了したことは、演
算エニツ)14から信号線59を介して送出されるE、
OP(End ofOperatlon)信号が“1′
となることにより判別される。
一方、命令レジスタ1から信号線2を介して汎用レジス
タ装置14にアドレス・レジスタ番号が送出されると、
そのアドレス・レジスタ番号で指定された汎用レジスタ
の内容が、汎用レジスタ装置4から信号1117を介し
てアドレス加算器5に送出される。アドレス計算によっ
て求められたアドレスによりメモリ装置18がアクセス
されると、メモリ装置18がらメモリ・オペランドが読
み出され、信号線19を介してオペランド・バッファ2
0に格納される。オペランド・バッファ2oは。
タ装置14にアドレス・レジスタ番号が送出されると、
そのアドレス・レジスタ番号で指定された汎用レジスタ
の内容が、汎用レジスタ装置4から信号1117を介し
てアドレス加算器5に送出される。アドレス計算によっ
て求められたアドレスによりメモリ装置18がアクセス
されると、メモリ装置18がらメモリ・オペランドが読
み出され、信号線19を介してオペランド・バッファ2
0に格納される。オペランド・バッファ2oは。
第1図では3面設けられており、各面ごとに1命令のオ
ペランドが格納され、命令の解読される順にしたがって
3面がサイクリック忙使用される。
ペランドが格納され、命令の解読される順にしたがって
3面がサイクリック忙使用される。
この場合、オペランド・バッファ2oの各面に格納され
たオペランド・データは、順次信号i121゜22.2
3を介してセレクタ24.25に送出される。
たオペランド・データは、順次信号i121゜22.2
3を介してセレクタ24.25に送出される。
セレクタ24は、オペランド・バッファ20に格納され
ているオペランド・データのうち、現在演算エニツ゛)
14で演算が実行されている命令の次に演算実行すべき
命令のものを選択する。第1図においては、オペランド
・バッファ2oの各面と命令待ち行列7の各面とは、1
対1に対応しており、セレクタ24によるオペランド・
バッファ20の選択は、セレクタ11による命令待ち行
列7の選択と同じようK、命令待ち行列出カポインタ5
3で示される値によって行われる。したがって、セレク
タ24から出力されたオペランド・データは、セレクタ
11から解読情報が出力される時刻と同期して、信号線
26を介し演算ユニット14に送出される。
ているオペランド・データのうち、現在演算エニツ゛)
14で演算が実行されている命令の次に演算実行すべき
命令のものを選択する。第1図においては、オペランド
・バッファ2oの各面と命令待ち行列7の各面とは、1
対1に対応しており、セレクタ24によるオペランド・
バッファ20の選択は、セレクタ11による命令待ち行
列7の選択と同じようK、命令待ち行列出カポインタ5
3で示される値によって行われる。したがって、セレク
タ24から出力されたオペランド・データは、セレクタ
11から解読情報が出力される時刻と同期して、信号線
26を介し演算ユニット14に送出される。
以上か、演算実行に必要なオペランドを、汎用レジスタ
装置4およびメモリ装置18から演算ユニット14へ送
出する処理の説明であって、これらは従来より行われて
いる動作であるが、以下に本発明により新しく設けられ
た論理回路の動作を説明する。
装置4およびメモリ装置18から演算ユニット14へ送
出する処理の説明であって、これらは従来より行われて
いる動作であるが、以下に本発明により新しく設けられ
た論理回路の動作を説明する。
セレクタ12は、先行演算を行うべき命令の解MfPt
報を選択し、そのうちオペランドとして読み出す汎用レ
ジスタ番号を信号線27を介して汎用レジスタ装置4に
送出する。セレクタ12で選択された汎用レジスタ番号
は1次に先行演算を行うべき命令の解読情報が命令待ち
行列7に存在することを示す信号(後述のI RDYE
)が“1”Kなり、かつその命令が必要とするオペラ
ンド・データが読み出されたことを示す信号(後述の0
RDYE)が1”になり、しかも先行演算器29より信
号線60を介して送出される先行演算終了を示す信号(
後述のEOPE)が“1”になった時点に、信号I!2
7を介して汎用レジスタ装置養に送出される。なお、上
記の信号IRDYEと0RDYEとEOPEとがともに
“1”になった時点K、先行演算が開始されたことを示
す信号BOPEが“1”とな木。
報を選択し、そのうちオペランドとして読み出す汎用レ
ジスタ番号を信号線27を介して汎用レジスタ装置4に
送出する。セレクタ12で選択された汎用レジスタ番号
は1次に先行演算を行うべき命令の解読情報が命令待ち
行列7に存在することを示す信号(後述のI RDYE
)が“1”Kなり、かつその命令が必要とするオペラ
ンド・データが読み出されたことを示す信号(後述の0
RDYE)が1”になり、しかも先行演算器29より信
号線60を介して送出される先行演算終了を示す信号(
後述のEOPE)が“1”になった時点に、信号I!2
7を介して汎用レジスタ装置養に送出される。なお、上
記の信号IRDYEと0RDYEとEOPEとがともに
“1”になった時点K、先行演算が開始されたことを示
す信号BOPEが“1”とな木。
汎用レジスタ番号が汎用レジスタ装置養に入力されると
、その番号の汎用レジスタの内容が読み出され、信号線
28を介して先行演算器29に送出される。セレクタ1
2による命令待ち行列7の選択は、先行演算制御装置5
0より信号線51を介して送出される先行出力ポインタ
の値によって行われる。この先行出力ポインタの値は、
先行演算器29に先行演算のための入力データがセット
アツプされると“1″ずつ更新される。すなわち、上記
のBOPE信号が“1”Kなるごとに、′3を法として
1を加算する方法により更新される。
、その番号の汎用レジスタの内容が読み出され、信号線
28を介して先行演算器29に送出される。セレクタ1
2による命令待ち行列7の選択は、先行演算制御装置5
0より信号線51を介して送出される先行出力ポインタ
の値によって行われる。この先行出力ポインタの値は、
先行演算器29に先行演算のための入力データがセット
アツプされると“1″ずつ更新される。すなわち、上記
のBOPE信号が“1”Kなるごとに、′3を法として
1を加算する方法により更新される。
次に、セレクタ25は、オペランド・バッファ20に格
納されているオペランド・データのうち、先行演算を行
うべき命令のものを選択し、信号線30を介して先行演
算結果9に送出する。セレクタ25によるオペランド・
バッファ20の選択は、セレクタ12による命令待ち行
列7の選択と同じように、先行出力ポインタ51で示さ
れる値によって行われる。したがって、セレクタ25か
ら出力されたオペランド・データは、セレクタ12から
解読情報が出力される時刻と同期して、信号線30を介
して先行演算器29に送出される。
納されているオペランド・データのうち、先行演算を行
うべき命令のものを選択し、信号線30を介して先行演
算結果9に送出する。セレクタ25によるオペランド・
バッファ20の選択は、セレクタ12による命令待ち行
列7の選択と同じように、先行出力ポインタ51で示さ
れる値によって行われる。したがって、セレクタ25か
ら出力されたオペランド・データは、セレクタ12から
解読情報が出力される時刻と同期して、信号線30を介
して先行演算器29に送出される。
先行演算器29は、先行演算を行うもので、演算エニツ
)14と階層構造を形成する。先行演算器29の先行演
算は、先行演算制御装置50から信号線54を介して送
出されるBOPE信号力?1″となったときに開始され
る。先行演算の終了時には、先行演算器29から先行演
算制御装置50に信号線60を介して送出されるEOP
K信号が“1”となる。このHOPB信号は、この他に
先行演算結果バッファ32、コンフリクト制御回路13
にも送出される。
)14と階層構造を形成する。先行演算器29の先行演
算は、先行演算制御装置50から信号線54を介して送
出されるBOPE信号力?1″となったときに開始され
る。先行演算の終了時には、先行演算器29から先行演
算制御装置50に信号線60を介して送出されるEOP
K信号が“1”となる。このHOPB信号は、この他に
先行演算結果バッファ32、コンフリクト制御回路13
にも送出される。
一般的には、先行演算器29は、あらゆる命令の演算を
実行できる演算器であっても差し支えないが、演算ユニ
ット14の処理よりも高速に演算結果を求めることが目
的であるため、第1図では比較的単純な演算のみを高速
に実行する。さらに。
実行できる演算器であっても差し支えないが、演算ユニ
ット14の処理よりも高速に演算結果を求めることが目
的であるため、第1図では比較的単純な演算のみを高速
に実行する。さらに。
制御上の簡単化のために、先行演算器29での演算は演
算開始から必ず一定時間以内で終了することが望ましい
。第1図では、先行@算器29において演算され仝命令
として、論理演算命令、比較命令、加減算命令、ロード
命令等があり、これらの演算が1マシン・サイクル以内
で終了するものとする。したがって、先行演算の開始を
示す信号BOPEと、終了を示す信号EOPEとは同期
していることになり、以後BOPE信号は先行演算の開
始と終了の両方を示すものとする。
算開始から必ず一定時間以内で終了することが望ましい
。第1図では、先行@算器29において演算され仝命令
として、論理演算命令、比較命令、加減算命令、ロード
命令等があり、これらの演算が1マシン・サイクル以内
で終了するものとする。したがって、先行演算の開始を
示す信号BOPEと、終了を示す信号EOPEとは同期
していることになり、以後BOPE信号は先行演算の開
始と終了の両方を示すものとする。
先行演算器29における演算結果は、信号[31を介し
て先行&X結結果ッファ32に格納される。
て先行&X結結果ッファ32に格納される。
先行演算結果バッファ32は、先行演算が終了してから
演算ユニット14で演算実行が開始されるまでの間、先
行演算結果を格納しておく機能を有する。先行演算結果
バッファ32は、命令待ち行列7と同じ面数、つまり第
1図では3面備えられており、かつ命令待ち行列7の各
面と1対1に対応している。
演算ユニット14で演算実行が開始されるまでの間、先
行演算結果を格納しておく機能を有する。先行演算結果
バッファ32は、命令待ち行列7と同じ面数、つまり第
1図では3面備えられており、かつ命令待ち行列7の各
面と1対1に対応している。
先行演算器29の演算結果は、EOPE信号6゜先行演
算結果バッファ32の各面の内容は、順に信号線35,
36.37を介してそれぞれのセレクタ38,39,4
0,41に送出される。セレクタ38.39は、先行演
算結果バッファ32内に格納されている先行演算結果が
後続命令のアドレス・レジスタとして必要となる場合に
、その先行演算結果を選択する。選択された先行演算結
果は、信号線42.43を介してアドレス加算器δに送
出される。例えば、日立Mシリーズ・コンピュータのよ
うに、インデックス・レジスタ、ベース・レジスタの2
種類が必要になる場合があるため、アドレス選択用セレ
クタは2個設けられる。
算結果バッファ32の各面の内容は、順に信号線35,
36.37を介してそれぞれのセレクタ38,39,4
0,41に送出される。セレクタ38.39は、先行演
算結果バッファ32内に格納されている先行演算結果が
後続命令のアドレス・レジスタとして必要となる場合に
、その先行演算結果を選択する。選択された先行演算結
果は、信号線42.43を介してアドレス加算器δに送
出される。例えば、日立Mシリーズ・コンピュータのよ
うに、インデックス・レジスタ、ベース・レジスタの2
種類が必要になる場合があるため、アドレス選択用セレ
クタは2個設けられる。
セレクタ40.41は、先行演算結果バッファ32内に
格納されている先行演算結果が、後続命令のオペランド
の汎用レジスタの内容として必要となる場合、その先行
演算結果を選択する。選択された先行演算結果は、信号
線44.45を介して先行演算器29に送出される。例
えば1Mシリーズ・;ンビュータのように、2つのオペ
ランドのいずれも汎用レジスタである命令があるため。
格納されている先行演算結果が、後続命令のオペランド
の汎用レジスタの内容として必要となる場合、その先行
演算結果を選択する。選択された先行演算結果は、信号
線44.45を介して先行演算器29に送出される。例
えば1Mシリーズ・;ンビュータのように、2つのオペ
ランドのいずれも汎用レジスタである命令があるため。
先行演算結果バッファ32から同時+C2つの先行演算
結果を選択できるように、オペランド選択用セレクタは
2個設けられる。
結果を選択できるように、オペランド選択用セレクタは
2個設けられる。
セレクタ38〜41の選択制御は、コンフリクト制御回
路13によって行われ1選択すべき先行演算結果バッフ
ァ32の番号がw!L次信号線46〜49を介してセレ
クタ38〜41に送出される。
路13によって行われ1選択すべき先行演算結果バッフ
ァ32の番号がw!L次信号線46〜49を介してセレ
クタ38〜41に送出される。
コンフリクト制御回路13は、アドレス・コンフリクト
の検出を行い、アドレス・コンフリクトが発生した場合
、信号1158を介してACONF信号を命令制御装置
52に送出し、要求命令のデコード完了を示すDSQ信
号が“1″になることを抑止して、コンフリクト解消ま
で要求命令におけるデコードとアドレス計算を延期させ
る。さらに。
の検出を行い、アドレス・コンフリクトが発生した場合
、信号1158を介してACONF信号を命令制御装置
52に送出し、要求命令のデコード完了を示すDSQ信
号が“1″になることを抑止して、コンフリクト解消ま
で要求命令におけるデコードとアドレス計算を延期させ
る。さらに。
要求命令の処理において、先行演算結果が使用可能であ
る場合には、セレクタ38〜41を制御するととKより
、先行演算結果バッファ32から必要な先行演算結果を
読み出す機能を有する。このため、コンフリクト制御回
路13には、命令のデコードの完了を示す信号DSQが
信号線δ6を介して入力され、また解読情報の格納され
るべき命令待、ち行列7の面番号を示す命令待ち行列入
力ポインタIQIP(0−1)が信号線57を介して入
力され、また命令の解読情報が信号線6を介して入力さ
れ、さらに先行演算の終了”を示すEOPE信号が信号
線60を介して入力され、さらに先行出力ポインタが信
号線51を介して入力される。
る場合には、セレクタ38〜41を制御するととKより
、先行演算結果バッファ32から必要な先行演算結果を
読み出す機能を有する。このため、コンフリクト制御回
路13には、命令のデコードの完了を示す信号DSQが
信号線δ6を介して入力され、また解読情報の格納され
るべき命令待、ち行列7の面番号を示す命令待ち行列入
力ポインタIQIP(0−1)が信号線57を介して入
力され、また命令の解読情報が信号線6を介して入力さ
れ、さらに先行演算の終了”を示すEOPE信号が信号
線60を介して入力され、さらに先行出力ポインタが信
号線51を介して入力される。
先行演算制御装置50には、命令制御装置52よりD8
Q信号が信号線56を介して入力され、命令待ち行列入
力ポインタIQIP(0〜1)が信号1[57を介して
入力され、さらにオペランド・バッファ20の各面につ
きオペランド・データが未だに読み出されていないとい
5状態を示す信号0BiFWAIT (1=O〜2)が
信号1Ij55を介して入力される。 − 第2図および第3図は、第1図における先行演算制御装
置の動作説明図である。
Q信号が信号線56を介して入力され、命令待ち行列入
力ポインタIQIP(0〜1)が信号1[57を介して
入力され、さらにオペランド・バッファ20の各面につ
きオペランド・データが未だに読み出されていないとい
5状態を示す信号0BiFWAIT (1=O〜2)が
信号1Ij55を介して入力される。 − 第2図および第3図は、第1図における先行演算制御装
置の動作説明図である。
先行演算制御装置50が作成する信号のうち。
第2図は命令待ち行列70面IK、先行演算を行うべき
命令が格納されている状態を示すIQiB8YE信号(
i=0〜2)の作成論理であり、第3図は先行演算の開
始と同時に終了を示すBOPE信号。
命令が格納されている状態を示すIQiB8YE信号(
i=0〜2)の作成論理であり、第3図は先行演算の開
始と同時に終了を示すBOPE信号。
および先行出力ポインタIQOPELB (0〜1)の
作成論理であって、第21と第3図は信号線126〜1
28,54.51が一致するA、B。
作成論理であって、第21と第3図は信号線126〜1
28,54.51が一致するA、B。
0点において接続される。
先ず、#!2図において、先行待ち行列状態セット回路
100は、7リツプ・70ツグ101〜103(IQi
B8YEDD(1=0〜2))のセットを制御するため
、入力として命令のデコード完了信号(nsq、156
)、命令待ち行列の入力ポインタ(IQIP(0〜1)
)1号線57)を入力し、また出力としてスリップ・フ
ロップ101〜103のセット信号(IQIBSYED
D8(1=0〜2))を信号線104〜106に出力す
る。デコード完了信号(線56)、命令待ち行列の入力
ポインタ(線57)は、従来方式と同じように命令制御
装置52で作成される。
100は、7リツプ・70ツグ101〜103(IQi
B8YEDD(1=0〜2))のセットを制御するため
、入力として命令のデコード完了信号(nsq、156
)、命令待ち行列の入力ポインタ(IQIP(0〜1)
)1号線57)を入力し、また出力としてスリップ・フ
ロップ101〜103のセット信号(IQIBSYED
D8(1=0〜2))を信号線104〜106に出力す
る。デコード完了信号(線56)、命令待ち行列の入力
ポインタ(線57)は、従来方式と同じように命令制御
装置52で作成される。
先行待ち行列状態セット回路100の動作は、第2図に
示すように、デコード完了信号(線56)が“1″のと
きに命令待ち行列入力ポインタ(線57)のi=o、1
の値の組み合わせによって、クリップ・フロップ101
〜103のいずれかのセット信号線104〜106が“
1″となる。
示すように、デコード完了信号(線56)が“1″のと
きに命令待ち行列入力ポインタ(線57)のi=o、1
の値の組み合わせによって、クリップ・フロップ101
〜103のいずれかのセット信号線104〜106が“
1″となる。
セット信号線104〜106の1つが“1″になると、
フリップ・フロップ101〜103の対応するD(デー
タ)入力が“1″となり、論理和ゲート107〜109
、その出力信号線110〜112を介してC(クロック
)入力が1”となって、対応するフリップ・フロップが
“1″にセットされる。
フリップ・フロップ101〜103の対応するD(デー
タ)入力が“1″となり、論理和ゲート107〜109
、その出力信号線110〜112を介してC(クロック
)入力が1”となって、対応するフリップ・フロップが
“1″にセットされる。
先行待ち行列状態リセット回路113は、フリップ・フ
ロップ101〜103のリセットを制御するため、先行
演算の開始を示すBOPE信号(1!54)。
ロップ101〜103のリセットを制御するため、先行
演算の開始を示すBOPE信号(1!54)。
先行出力ポインタ(線δ1)を入力して、フリップ・フ
ロップ101〜103のリセット信号CI Q 1BS
YEDDR(1=o〜2))を線114〜116に出ガ
す1゜ 先行待ち行列状態リセット回路113の動作は。
ロップ101〜103のリセット信号CI Q 1BS
YEDDR(1=o〜2))を線114〜116に出ガ
す1゜ 先行待ち行列状態リセット回路113の動作は。
第2図に示すように、先行演算開始@号(#54)が“
1′″のときに、先行出力ポインタ(IQOPELB)
(線51)のt=0.1 の値の組み合わせによって、
フリップ・フロップ101〜103のリセット信号@(
IQiBSYEDDR)114〜116の1つを“l”
にする。リセット信号線114〜116の1つが“l”
Kなると、フリップ・フロラ2101〜103の対応す
るD入力が“0″であれば、a埋相ゲー) 107〜1
09.その出力信号[110〜112を介してC(クロ
ック)入力が“1″となるため、対応する7リツプ・フ
ロップが“O”にリセットされる。
1′″のときに、先行出力ポインタ(IQOPELB)
(線51)のt=0.1 の値の組み合わせによって、
フリップ・フロップ101〜103のリセット信号@(
IQiBSYEDDR)114〜116の1つを“l”
にする。リセット信号線114〜116の1つが“l”
Kなると、フリップ・フロラ2101〜103の対応す
るD入力が“0″であれば、a埋相ゲー) 107〜1
09.その出力信号[110〜112を介してC(クロ
ック)入力が“1″となるため、対応する7リツプ・フ
ロップが“O”にリセットされる。
フリップ・フロップ101−103の出力信号は、第2
図に示すように、タイミング調整のために7リツプ・フ
ロップ117〜119,120〜122,123〜12
5により遅延され、先行待ち行列状態の信号[126〜
128に出力される。
図に示すように、タイミング調整のために7リツプ・フ
ロップ117〜119,120〜122,123〜12
5により遅延され、先行待ち行列状態の信号[126〜
128に出力される。
次に、第3図において、先行待ち行列状態信号が信号!
126〜128を介してセレクタ129に入力されると
、セレクタ129はこれらの状態信号線126〜128
のうちから先行出力ポインタの示す信号線51の値を信
号線132を介して論理積ゲート133に送出する。信
号線132は1次に先行演算を行5命令がデコードを完
了したことを示すもので、IRDYE信号である。
126〜128を介してセレクタ129に入力されると
、セレクタ129はこれらの状態信号線126〜128
のうちから先行出力ポインタの示す信号線51の値を信
号線132を介して論理積ゲート133に送出する。信
号線132は1次に先行演算を行5命令がデコードを完
了したことを示すもので、IRDYE信号である。
セレクタ141は、命令制御装置52から送出されるオ
ペランド・バッファ・ウェイト信号線55(OBiFW
AIT: i=o〜2)のうちから、先行出力ポインタ
(IQOPELB(0〜1))が示す信号$51の値を
バッファ・ウェイト信号(FWA I T)として信号
線145を介して出力する。オペランド・バッファ・ウ
ェイト信号(OBiFWAIT(1=0〜2))の意味
は、面番号lのオペランド・バック状態であることを示
す。
ペランド・バッファ・ウェイト信号線55(OBiFW
AIT: i=o〜2)のうちから、先行出力ポインタ
(IQOPELB(0〜1))が示す信号$51の値を
バッファ・ウェイト信号(FWA I T)として信号
線145を介して出力する。オペランド・バッファ・ウ
ェイト信号(OBiFWAIT(1=0〜2))の意味
は、面番号lのオペランド・バック状態であることを示
す。
また、信号線145のバッファ・ウェイト信号(FWA
ITK)は、否定回路146により反転された後、信号
線147を介し、0RDYE信号として論理積ゲート1
33に入力され、先行演算開始信号(BOPE)の抑止
の有無を制御する。論理積ゲ−)133の出方は、先行
演算開始信号(B OP E)として信号1!54を介
し先行出力ポインタ制御(ロ)路148に送出される。
ITK)は、否定回路146により反転された後、信号
線147を介し、0RDYE信号として論理積ゲート1
33に入力され、先行演算開始信号(BOPE)の抑止
の有無を制御する。論理積ゲ−)133の出方は、先行
演算開始信号(B OP E)として信号1!54を介
し先行出力ポインタ制御(ロ)路148に送出される。
先行出力ポインタ制御回路148は、先行演算開始fF
r号(BOPE)(線54)、先行出方ポインタゐ信号
(IQOPELB(0〜1))(&51 >4を入力と
し、フリップ・フロップ149,150の入力信号(I
QOPEADIN(0〜1)))km号m151゜15
2に出力する。先行出方ポインタ制御回路148の動作
は、先行演算開始信号(BOPE)(線54)が“1”
となったときに、先行出力ポインタの信号(IQOPE
LB(0〜1))の値に3を法として1インクリメント
した値を信号(IQOPEADIN(0〜1))として
出力する。フリップ・フロップ149゜150の値は、
信号線151,152を介してクリップ・フロップ15
3.15養に送出される。フリップ・フロップ153,
154は、先行出力ポインタの信号(IQOPELB(
0〜1))を信号線51に出力する。
r号(BOPE)(線54)、先行出方ポインタゐ信号
(IQOPELB(0〜1))(&51 >4を入力と
し、フリップ・フロップ149,150の入力信号(I
QOPEADIN(0〜1)))km号m151゜15
2に出力する。先行出方ポインタ制御回路148の動作
は、先行演算開始信号(BOPE)(線54)が“1”
となったときに、先行出力ポインタの信号(IQOPE
LB(0〜1))の値に3を法として1インクリメント
した値を信号(IQOPEADIN(0〜1))として
出力する。フリップ・フロップ149゜150の値は、
信号線151,152を介してクリップ・フロップ15
3.15養に送出される。フリップ・フロップ153,
154は、先行出力ポインタの信号(IQOPELB(
0〜1))を信号線51に出力する。
第4図は1本発明の実施例を示す動作タイム・チャート
である。
である。
1pJ4図においては5乗算命令Mが演算ユニット14
で演算されている間に、後続の加算命令Aの処理が開始
され、その演算結果をアドレス・レジスタの内容として
必要とするロード命令しの処理が行われる場合を例にと
っている。
で演算されている間に、後続の加算命令Aの処理が開始
され、その演算結果をアドレス・レジスタの内容として
必要とするロード命令しの処理が行われる場合を例にと
っている。
1つの命令の処理は、メモリ装置からの命令語の読み出
しから始まり、命令語のデコード(解読)、オペランド
の読み出し、演算、演算結果の書き込み、という段階に
分けることができる。
しから始まり、命令語のデコード(解読)、オペランド
の読み出し、演算、演算結果の書き込み、という段階に
分けることができる。
第4図においては、各々の命令M、A、Lについて、命
令語のデコードから演算を行うまでの処理をり、A、L
、E、EOP等で示している。
令語のデコードから演算を行うまでの処理をり、A、L
、E、EOP等で示している。
すなわち、第4図では、命令語のデコードから演算まで
を4つのステージに大きく分けている一第1のステージ
は、命令語のデコード・アドレス計算を行うステージで
あり、これをDステージと呼ぶ。第2のステージは、ア
ドレス計算結果で示されるメモリの内容をオペランドと
して読み出すステージであり、これをAステージと呼ぶ
。第3のステージは、演算ユニット14へオペランド・
データ等をセット・アップするステージであり、これを
Lステージと呼ぶ。第4のステージは、演算ユニット1
4により演算を行うステージであり。
を4つのステージに大きく分けている一第1のステージ
は、命令語のデコード・アドレス計算を行うステージで
あり、これをDステージと呼ぶ。第2のステージは、ア
ドレス計算結果で示されるメモリの内容をオペランドと
して読み出すステージであり、これをAステージと呼ぶ
。第3のステージは、演算ユニット14へオペランド・
データ等をセット・アップするステージであり、これを
Lステージと呼ぶ。第4のステージは、演算ユニット1
4により演算を行うステージであり。
Eステージと呼ぶ。なお、(L)のように括弧が付加さ
れているステージは、演算ユニット14にセット・アッ
プしたいが前の命令で占有されてし・るため、待機して
いる状態を示し、またEOPはEndof Op@ra
tionの略で、演算が終了し1次の命令のために空き
となる最後のEステージである。
れているステージは、演算ユニット14にセット・アッ
プしたいが前の命令で占有されてし・るため、待機して
いる状態を示し、またEOPはEndof Op@ra
tionの略で、演算が終了し1次の命令のために空き
となる最後のEステージである。
これらのステージは、いずれも各命令ごとに1ないし数
マシン・サイクルな喪する。第4図において、1マシン
・サイクルは時間軸上の目盛T。
マシン・サイクルな喪する。第4図において、1マシン
・サイクルは時間軸上の目盛T。
からTOまでの間であり、各マシン・サイクルに対して
便宜上1から10までの番号を付記しである。
便宜上1から10までの番号を付記しである。
いま、乗算命令MのEステージがマシン・サイクル1か
ら5までを要しているとする。また、加算命令AのDス
テージが、マシン・サイクル1から開始されるものとす
る。このとき、マシン・サイクル1において、加算命令
AのDステージの完了を示す信号DSQ(命令制御装置
52から信号線56を介して出力される)が“1”とな
り、これより2サイクル後に、命令待ち行列7の面1に
有効な解読情報が入力したことを示す状態信号(IQI
BsYE)が“1”となる(仮に、加算命令の解読情報
か面1に格納されるものとする)。信号(IQIBSY
E(t=o 〜2))は、命令待ち行列7の各面に対応
し、信号(DSQ)に同期してセットされ、かつ先行演
算の開始を示す信号(BOPB )に同期してリセット
される状態信号であり、対応する命令がデコードされた
ものの先行演算は行われていないことを示している。先
行出力ポインタが命令待ち行列70面1を指し【いると
すると。
ら5までを要しているとする。また、加算命令AのDス
テージが、マシン・サイクル1から開始されるものとす
る。このとき、マシン・サイクル1において、加算命令
AのDステージの完了を示す信号DSQ(命令制御装置
52から信号線56を介して出力される)が“1”とな
り、これより2サイクル後に、命令待ち行列7の面1に
有効な解読情報が入力したことを示す状態信号(IQI
BsYE)が“1”となる(仮に、加算命令の解読情報
か面1に格納されるものとする)。信号(IQIBSY
E(t=o 〜2))は、命令待ち行列7の各面に対応
し、信号(DSQ)に同期してセットされ、かつ先行演
算の開始を示す信号(BOPB )に同期してリセット
される状態信号であり、対応する命令がデコードされた
ものの先行演算は行われていないことを示している。先
行出力ポインタが命令待ち行列70面1を指し【いると
すると。
命令解読済みを示す信号(IRDYE)が“1”となる
。このとき、メモリ・オペランドの読み出しが完了して
いれば、信号(ORDYE)が“1″となる。
。このとき、メモリ・オペランドの読み出しが完了して
いれば、信号(ORDYE)が“1″となる。
また、ここで人命令以前の先行演算が終了していれば、
信号(EOPE)が“1″と′なり、したがって次の条
件が成立する。
信号(EOPE)が“1″と′なり、したがって次の条
件が成立する。
(IRDYE)△(ORDYE)△(EOPE)・・・
・・・・・・(1) (△は論理積を示す) 条件(1)が成立すると、先行演算開始信号(BOPE
)が“1”となり、先行演算が行われる。
・・・・・・(1) (△は論理積を示す) 条件(1)が成立すると、先行演算開始信号(BOPE
)が“1”となり、先行演算が行われる。
このとき、先行出力ポインタ(IQOPELB(0〜1
)は加算命令Aの格納されている面1を示しているので
、これにしたがって加算命令Aの先行演算結果が先行演
算結果バッファ32の面1に格納される。
)は加算命令Aの格納されている面1を示しているので
、これにしたがって加算命令Aの先行演算結果が先行演
算結果バッファ32の面1に格納される。
一方1次のロード命令りは、アドレス・レジスタが直前
の加算命令Aの演算結果の格納される汎用レジスタと同
一番号であるため、アドレス・コンフリクトが発生し、
コンフリクト制御回路13でこれが検出されて、これを
示す信号(ACONF)が“1″となる。アドレス・コ
ンフリクトを示す信号(ACONF)が“1″であると
、これが“1″になっている間はロード命令についての
DSQ(加算命令Dステージの完了を示す信号)が“1
″にならないため、ロード命令りのデコードは延期され
る。
の加算命令Aの演算結果の格納される汎用レジスタと同
一番号であるため、アドレス・コンフリクトが発生し、
コンフリクト制御回路13でこれが検出されて、これを
示す信号(ACONF)が“1″となる。アドレス・コ
ンフリクトを示す信号(ACONF)が“1″であると
、これが“1″になっている間はロード命令についての
DSQ(加算命令Dステージの完了を示す信号)が“1
″にならないため、ロード命令りのデコードは延期され
る。
このように、ロード命令りのアドレス・レジスタの内容
は、加算命令Aの先行演算によって得られ。
は、加算命令Aの先行演算によって得られ。
マシン・サイクル3の終り頃に先行演算バッファ32の
面1に格納されるので、この値がコンフリクト制御回路
13の制御のもとでセレクタ38あるいは39により読
み出され、信号線42あるいは43を介してアドレス加
算器5に送出されて。
面1に格納されるので、この値がコンフリクト制御回路
13の制御のもとでセレクタ38あるいは39により読
み出され、信号線42あるいは43を介してアドレス加
算器5に送出されて。
マシン・サイクル養でアドレス計算を可能にする。
これに先立って、先行演算開始@:jj(nopg)が
アドレス・コンフリク)信号(ACONF)を“0″に
するため、延期されていたロード命令のデコードか再開
され、DSQ(加算命令Dステージの完了を示す信号)
が“1”となる。
アドレス・コンフリク)信号(ACONF)を“0″に
するため、延期されていたロード命令のデコードか再開
され、DSQ(加算命令Dステージの完了を示す信号)
が“1”となる。
以上の処理により、ロード命令りのデコードはマシン・
サイクル4で完了し、結局演算ステージはマシン・サイ
クル7で完了することになる。
サイクル4で完了し、結局演算ステージはマシン・サイ
クル7で完了することになる。
これに対して、従来の方式によれば、加算命令の先行演
算は、直前の乗算命令Mの最後の演算ステージ(マシン
・サイクル5のEOP )と同時か。
算は、直前の乗算命令Mの最後の演算ステージ(マシン
・サイクル5のEOP )と同時か。
あるいはそれ以降になるため、早くてもマシン・サイク
ル5で行われることになり、したがってその先行演算結
果をロード命令りのアドレス計算で用いたとしても、ロ
ード命令りのDステージは、マシン・サイクル6となる
。つまり、本発明においては、従来方式よりもロード命
令の処理が2サイクル短縮されたことになる。これは、
加算命令Aの先行演算を、直前の命令の演算ステージ終
了を待たずに先行演算器29で早期に行うことによって
%実現できたのである。
ル5で行われることになり、したがってその先行演算結
果をロード命令りのアドレス計算で用いたとしても、ロ
ード命令りのDステージは、マシン・サイクル6となる
。つまり、本発明においては、従来方式よりもロード命
令の処理が2サイクル短縮されたことになる。これは、
加算命令Aの先行演算を、直前の命令の演算ステージ終
了を待たずに先行演算器29で早期に行うことによって
%実現できたのである。
加算命令Aの先行演算が終了すると、先行出力ポインタ
(IQOPELB(0〜1))は凸を法として1インク
リメントされる。
(IQOPELB(0〜1))は凸を法として1インク
リメントされる。
なお、レジスタ・コンフリクトは、システム制御プログ
ラムについて評価した例から、20−30%の確率で発
生する。本発明は、このようなレジスタ・コンフリクト
が発生したすべての場合に必す効果があるわけではない
が、第4図の例に示すように、乗算命令Mのような演算
器を長く占有する命令の次に加算命令Aのような簡単な
演算(1サイクル程度で完了する演算)があり、その次
の命令との間でレジスタ・コンフリクトが発生した場合
に、特に効果が期待できる。
ラムについて評価した例から、20−30%の確率で発
生する。本発明は、このようなレジスタ・コンフリクト
が発生したすべての場合に必す効果があるわけではない
が、第4図の例に示すように、乗算命令Mのような演算
器を長く占有する命令の次に加算命令Aのような簡単な
演算(1サイクル程度で完了する演算)があり、その次
の命令との間でレジスタ・コンフリクトが発生した場合
に、特に効果が期待できる。
以上説明したように、本発明によれば、バイブライン方
式を用いるコンピュータにおいて、レジスタ・コンフリ
クトが発生した場合に、より早期にレジスタ・コンフリ
クトを解消するので、コンピュータの処理速度を向上さ
せることができる。
式を用いるコンピュータにおいて、レジスタ・コンフリ
クトが発生した場合に、より早期にレジスタ・コンフリ
クトを解消するので、コンピュータの処理速度を向上さ
せることができる。
第1図は本発明の実施例を示す階層型演算処理装置のブ
ロック図、第2図および第3図は第1図における先行演
算制御装置の概略構成図、第4図は本発明の実施例を示
す命令処理のタイムチャートである。 12:先行演算に必要な命令解読情報を命令待ち行列7
から選択するセレクタ、13:コンフリクト制御U路、
25:先行演算に必要なオペランド・データをオペラン
ド・バッファから選択するセレクタ、29:先行演算器
、32:先行値算結果バッファ、50=先行演算制御装
置、38〜41=先行演算結果バックァ内のデータを後
続命令処理のために読み出すセレクタ、133 二先行
演算の開始信号(BOPE)を出力する論理積ゲート、
148=先行出カポインタ制御回路。 特許出願人 株式会社日立製作所 代理人弁理士磯村雅峻I゛ 伽← 第1図 第2図
ロック図、第2図および第3図は第1図における先行演
算制御装置の概略構成図、第4図は本発明の実施例を示
す命令処理のタイムチャートである。 12:先行演算に必要な命令解読情報を命令待ち行列7
から選択するセレクタ、13:コンフリクト制御U路、
25:先行演算に必要なオペランド・データをオペラン
ド・バッファから選択するセレクタ、29:先行演算器
、32:先行値算結果バッファ、50=先行演算制御装
置、38〜41=先行演算結果バックァ内のデータを後
続命令処理のために読み出すセレクタ、133 二先行
演算の開始信号(BOPE)を出力する論理積ゲート、
148=先行出カポインタ制御回路。 特許出願人 株式会社日立製作所 代理人弁理士磯村雅峻I゛ 伽← 第1図 第2図
Claims (6)
- (1)命令語の解読情報とオペランド・データとを ゛
演算ユニットでの演算実行開始まで格納する入力データ
・バッファを備えたパイ−プライン方式のコンピュータ
において、上記演算ユニットとは独立に演算を行う先行
演算器を有し、該演算ユニットが占有されているか否か
に関係なく、演算を実行すべき命令の解読情報とオペラ
ンド・データとが上記入力データ・バッファに格納され
ると、直ちに該入力データ・バッファからデータを読み
出し、該データを上記先行演算器に入力して演算を行い
、演算結果を上記命令以降の命令の処理に用いることを
特徴とする階層型演算方式。 - (2)前記入力データ・バッファからデータを読み出す
場合、前記演算ユニットへのデータ送出のための読み出
し回路とは別個に、前記先行演算器へのデータ送出のた
めの読み出し回路を設けて、前記演算ユニットへのデー
タ送出と前記先行演算器へのデータ送出とを、相互干渉
することなく行うことを特徴とする特許請求の範囲第1
項記載の階層型演算方式。 - (3)前記先行演算器で演算を行う場合、該演j!によ
って得られる演算結果を、前記演算ユニットでの演算実
行開始まで先行演算結果バッファに格納しておき、該先
行演算結果バッファに格納された演算結果を、専用読み
出し回路により断み出し、後続命令の処理に用いること
を特徴とする特許請求の範囲第1項又は第2項記載の階
層型演算方式。 - (4)前記先行演算器の演算結果は、特に後続命令のオ
ペランド・アドレス計算に必要な汎用レジスタの内容の
かわりに用いられることを特徴とする特許請求の範囲第
1項、第2項あるいは第3項記載の階層型演算方式。 - (5)前記先行演算器の演算結果は、特に後続命令の汎
用レジスタ・オペランドの内容のかわりに用いられるこ
とを特徴とする特許趙求σノ範囲第1よ、第2項あるい
は第3項記載の階層型演算方式。 - (6)前記先行演算器の演算は、あらかじめ定めた時間
以内に演算が終了する命令のみに限定され、該命令によ
る演算を開始したならば、該先行演算器の演算終了判定
な見ずに、上記あらかじめ定めた時間後、引き続き次の
命令を該先行演算器で演算するように制御されることを
特徴とする特許請求の範囲第1項、第2項、第3項、第
4項、あるいは第5項記載の階層型演算方式。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP56194002A JPS5896346A (ja) | 1981-12-02 | 1981-12-02 | 階層型演算方式 |
US06/446,002 US4532589A (en) | 1981-12-02 | 1982-12-01 | Digital data processor with two operation units |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP56194002A JPS5896346A (ja) | 1981-12-02 | 1981-12-02 | 階層型演算方式 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPS5896346A true JPS5896346A (ja) | 1983-06-08 |
Family
ID=16317331
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP56194002A Pending JPS5896346A (ja) | 1981-12-02 | 1981-12-02 | 階層型演算方式 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPS5896346A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS60252948A (ja) * | 1984-05-29 | 1985-12-13 | Nec Corp | 演算処理装置 |
-
1981
- 1981-12-02 JP JP56194002A patent/JPS5896346A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS60252948A (ja) * | 1984-05-29 | 1985-12-13 | Nec Corp | 演算処理装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US4187539A (en) | Pipelined data processing system with centralized microprogram control | |
JPH0545985B2 (ja) | ||
JPS6239780B2 (ja) | ||
JPH0348537B2 (ja) | ||
JPH0348536B2 (ja) | ||
US5390306A (en) | Pipeline processing system and microprocessor using the system | |
JPH0743648B2 (ja) | 情報処理装置 | |
KR100188374B1 (ko) | 연산처리장치 | |
JPH0512751B2 (ja) | ||
JPS5896346A (ja) | 階層型演算方式 | |
JPS6161416B2 (ja) | ||
JPS581246A (ja) | 命令処理順序制御方式 | |
JPS5896345A (ja) | 階層型演算方式 | |
EP0573071A2 (en) | A microprocessor | |
JP2814683B2 (ja) | 命令処理装置 | |
JPS6125166B2 (ja) | ||
JPS6259829B2 (ja) | ||
JPS6116112B2 (ja) | ||
JP2812610B2 (ja) | パイプライン制御方式 | |
JPH09223009A (ja) | データ処理装置と方法 | |
JP2573711B2 (ja) | マイクロサブルーチン制御方式 | |
JP2583614B2 (ja) | ベクトル演算装置 | |
JPS6126089B2 (ja) | ||
JPS6116111B2 (ja) | ||
JPS6346856B2 (ja) |