JPH0157817B2 - - Google Patents

Info

Publication number
JPH0157817B2
JPH0157817B2 JP57112111A JP11211182A JPH0157817B2 JP H0157817 B2 JPH0157817 B2 JP H0157817B2 JP 57112111 A JP57112111 A JP 57112111A JP 11211182 A JP11211182 A JP 11211182A JP H0157817 B2 JPH0157817 B2 JP H0157817B2
Authority
JP
Japan
Prior art keywords
instruction
unit
cycle
execution
arithmetic
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
Application number
JP57112111A
Other languages
English (en)
Other versions
JPS592143A (ja
Inventor
Masahiro Hashimoto
Takeshi Watanabe
Kenichi Wada
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP57112111A priority Critical patent/JPS592143A/ja
Priority to EP83106287A priority patent/EP0097956B1/en
Priority to DE8383106287T priority patent/DE3378932D1/de
Priority to US06/509,047 priority patent/US4639886A/en
Publication of JPS592143A publication Critical patent/JPS592143A/ja
Publication of JPH0157817B2 publication Critical patent/JPH0157817B2/ja
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/483Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/3001Arithmetic instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
    • G06F9/3873Variable length pipelines, e.g. elastic pipeline
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/3804Details
    • G06F2207/386Special constructional features
    • G06F2207/3884Pipelining

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Nonlinear Science (AREA)
  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)

Description

【発明の詳細な説明】 発明の対象 本発明は情報処理装置に係り、特に演算ユニツ
トのパイプライン制御を可能とする情報処理装置
に関する。
従来技術 情報処理装置の高速化を実施する手段として、
情報処理装置内で行なうオペレーシヨンに最適な
演算器を複数設置する方式がある。第1図はその
一例を示したもので、1は命令を解読する命令ユ
ニツト(Iユニツト)、2は命令およびデータを
貯蔵する記憶ユニツト、3は命令で指定された演
算を実行する演算ユニツトである。こゝで、Eユ
ニツト3は更に2つの部分より構成される。すな
わち、浮動小数点命令を高速実行すべく最適化し
た浮動小数点ユニツト(Fユニツト)4と、浮動
小数点命令以外の演算命令(固定小数点命令、1
0進命令など)を実行する一般の演算ユニツト
(Gユニツト)5より成る。実際上、Gユニツト
5でも浮動小数点命令を実行することは可能であ
るが、高速処理は不可能であるため、該浮動小数
点命令を高速に実行すべく、専用のFユニツト4
をGユニツト5とは別に設置するのである。な
お、処理装置の高速性より経済性を重視する装置
では、Fユニツト4は設置しない。
上記Fユニツトの設置により浮動小数点命令が
最適化される模様を、浮動小数点加減算命令を例
にとつて第2図、第3図により説明する。
第2図はGユニツトのデータ構成図である。同
図に於いて、6,7,8,9はGユニツトのワー
クレジスタであり、演算途中のデータが保持され
る。11はバイト加算器であり、1バイト巾の加
減算を行なう。12は並列加算器であり、演算器
のデータ幅分(例えば、8バイト)の加減算を一
度に行なう。13はシフタである。10は入力デ
ータ選択回路であつて、ワークレジスタ上のデー
タを各演算器に導く。14は出力データ選択回路
であつて、各演算器の演算結果を選択して、ワー
クレジスタ6,7,8,9に戻す。この演算器で
ワークレジスタの内容を演算し、演算結果をワー
クレジスタに戻すのに1サイクルを要するとす
る。
さて、浮動小数点加減算命令を考える。浮動小
数点加減算命令の実行は、次の4つのオペレーシ
ヨンよりなる。
(i) 2つのオペランドの指数部の比較を行なう。
(ii) 指数部の比較により小さいオペランドを大き
いオペランドに桁合わせすべく、仮数部を右に
ずらす(これを、プリシフトと呼ぶ)。
(iii) 桁合わせした仮数部の加減算を行なう。
(iv) 仮数部の結果の先頭0の数を調べ、仮数部の
先頭に無効な0がこないよう仮数部を左に桁移
動し、桁移動した分だけ結果の指数部を補正す
る(これを、ポスト・ノーマライズと呼ぶ)。
第2図の構成にて上記動作を行なうには、演算
器を4回使用する必要がある。すなわち、オペラ
ンドデータがワークレジスタ6または7に用意さ
れると、第1のサイクルにてバイト加算器11を
用いて指数部を比較する。第2サイクルでは、指
数部の比較結果により、小さいオペランドの仮数
部のシフト(プリシフト)をシフタ13を用いて
行なう。第3サイクルでは、並列加算器12によ
り仮数部の加減算を行なう。第4サイクルはポス
ト・ノーマライズのためのサイクルであり、指数
部の補正がバイト加算器11で、仮数部の桁移動
がシフタ13にて行なわれる。
次に、浮動小数点加減算命令をFユニツト内の
最適化された演算器で実行する場合を考える。第
3図は最適化された浮動小数点加減算器である。
第3図において、2つの浮動小数点データオペラ
ンドが、ワークレジスタ15,16に設定され
る。第1のサイクルにて、比較器17によりオペ
ランドの大小が比較され、この比較結果により、
小さい方のオペランドの仮数部をプリシフタ18
または19で移動して桁合わせする。第2のサイ
クルにて、桁合わせした仮数部を並列加算器20
で加減算する。第3のサイクルでポスト・ノーマ
ライズを行なう。すなわち、指数部の補正をバイ
ト加算器22で、仮数部の桁移動をシフト21で
行なう。
以上のように、浮動小数点加減算命令の実行
は、第2図の汎用演算器では4サイクルかかるの
に対し、第3図の浮動小数点加減算器では3サイ
クルですむことになる。
従来技術の問題点 以上述べてきた様に、処理装置内のオペレーシ
ヨンに最適な演算器を設置することにより、装置
の処理性能を向上させることができる。なお、第
1図のFユニツト4内には、第3図の浮動小数点
加減算器の他に、高速乗除算器等を含む。
いま、Fユニツトの動作を第3図の浮動小数点
加減算器を例にとつて考えるに、該浮動小数点加
減算器は、浮動小数点加減算命令を3マシンサイ
クルで実行するものであつた。この3マシンサイ
クルをFEA,FEB,FEcと区別する。すなわち、 FEAは浮動小数点加減算命令の桁合わせサイク
ルであつて、バイト加算器17とプリシフタ
18,19を使用する。
FEBは仮数部の加減算サイクルであつて、並列
加算器20を使用する。
FECはポスト・ノーマライズサイクルであつ
て、バイト加算器22とシフタ21を使用す
る。
したがつて、浮動小数点加減算命令実行時、第
3図内の各演算回路は3マシンサイクルの内1回
しか使用されない。
このことに着目して、浮動小数点加減算命令が
連続して発生した場合、Fユニツト内で周知のパ
イプライン処理を行ない、各演算回路を並行して
同時に動作させることにより、命令の処理性能を
上げることができる。これを第4図および第5図
により説明する。
第4図は、連続する浮動小数点加減算器命令
が、Fユニツトで演算パイプラインなしに実行さ
れる様子を示したものである。この場合、Fユニ
ツトでは第1の命令が完全に終了するのをまつ
て、第2の命令が実行されるので、連続する2つ
の浮動小数点命令の処理が終了するのに6マシン
サイクルを必要とする。
第5図は演算パイプラインを行なつた場合の様
子を示す。この場合、第1の命令が開始され、1
マシンサイクル後に第2の命令が起動される。更
に、それから1マシンサイクル経過すると、第3
の命令が起動される。かくて、5マシンサイクル
の間に3つの浮動小数点加減算命令を実行するこ
とができる。
以上述べた様に、情報処理装置内で行なうオペ
レーシヨンに最適な演算ユニツトを設置すると、
オペレーシヨンの実行サイクルの短縮という面の
他に、同一演算ユニツトでのパイプライン処理と
いうことを実施することにより、性能向上をはか
れる可能性がある。
ところで、従来の情報処理装置では、最適な演
算ユニツトを設置してオペレーシヨンの実行サイ
クルを短縮することは良く行なわれているが、同
一演算ユニツト内のパイプライン処理は実施され
ていない。これは、情報処理装置内に用意される
命令の処理上の規約が、パイプライン処理を実施
した場合守りきれなくなるからである。命令の処
理上の規約とは、具体的にいうと、ストレツジ上
に貯蔵されている命令は、貯蔵されている順番に
取り出し、その順番に実行されなければならない
ということである。ストレツジ上の命令の順番
は、ストレツジアドレスを以つて管理される。通
常の命令を読み出すと、次の命令はその直後から
書き込まれている。命令の順番をプログラムが変
えたいときは、命令配列の中に分岐命令を用意
し、分岐命令のオペランドとして次の命令を指し
示すことができる。
演算ユニツト内で、パイプライン処理を行なつ
た場合、命令処理上の規約、すなわち命令の逐次
処理が守りきれないというのは、処理装置上で用
意された命令の実行サイクルが異なるということ
に起因する。すなわち第5図に示したように、浮
動小数点加減算命令が連続したとき演算パイプラ
インができれば、処理性能の向上することが明ら
かであるが、Fユニツト内で処理する命令が常に
3マシンサイクルで終了するとは限らない。Fユ
ニツト内の浮動小数点レジスタにストレツジ上の
データを格納するロード命令の実行は1サイクル
で終了する。また、浮動小数点乗除算命令は加減
算命令より多くの実行サイクルを必要とする。
Fユニツト内で実行するサイクル数が、命令に
よつて異なるということは、演算パイプラインを
実施した場合、命令の逐次処理の原則との矛盾を
発生させる。
第6図は演算パイプラインを実施した場合に生
じる命令の逐次制御違反を説明する図である。第
6図に於て、第1の命令として浮動小数点加減算
命令の実行の次に、第2命令として浮動小数点レ
ジスタへのロード命令を行なう場合を考える。演
算パイプラインにより、第1の命令のFEBサイク
ル実行時、浮動小数点レジスタ・ロード命令の実
行サイクルが行なわれるが、これは1サイクルで
終了してしまう。今、浮動小数点加減算命令で、
その演算の実行結果としてオーバーフロー例外割
り込みが発生したとすると、次の浮動小数点レジ
スタ・ロード命令の実行前に割り込まなければな
らない。これが命令の逐次制御の原則である。と
ころが第6図の場合、第1の命令である浮動小数
点加減算命令はFECサイクルでオーバーフロー例
外を検出するが、この時点では、次の第2の命令
である浮動小数点ロード命令が終了しており、こ
の結果、逐次制御の原則が崩れてしまう。なお、
第6図に於いて、第2の命令がGユニツトで行な
う1サイクルの命令であつても事情は同じであ
る。
発明の目的 本発明の目的は、命令の逐次制御の原則を崩す
ことなく、演算ユニツト内のパイプライン制御を
可能とし、以つて処理性能を向上せしめることに
ある。
発明の総括的説明 本発明の場合、演算パイプラインを行なう演算
ユニツトでは、あらかじめ演算パイプラインを行
なう実行サイクル数を定める。このパイプライン
実行サイクル数より多くの実行サイクル数を必要
とする命令は、実行サイクルの残りサイクル数が
パイプライン実行サイクル数に達した時点で後続
命令の実行開始を許可する。パイプライン実行サ
イクル数より短かい命令は、オペランド更新サイ
クルをパイプライン実行サイクル数と同等になる
まで遅延させる。これにより先行命令で割り込み
が生じたとき、後続命令によりオペランドが更新
されるのを防ぐ。また、オペランド書き込みまで
のサイクル数を遅延させた命令に対し、その結果
を使用する命令がオペランドに演算結果が書き込
まれるのを待たずして、処理を開始できる様なデ
ータ迂回手段を設ける。
さらに、演算パイプラインを実施した演算ユニ
ツトと実施しない演算ユニツトの命令実行があい
前後した場合、命令の逐次制御の原則を崩さない
ように、2つの演算ユニツトの実行がオーバーラ
ツプしない様処置する。この制御のため、演算パ
イプライン可能演算ユニツトのパイプラインサイ
クル数がNサイクルのとき、N種の命令終了宣言
信号が用意される。演算パイプライン可能演算ユ
ニツトは命令に応じてN種の命令終了宣言を発行
できる。N種の命令終了宣言は次の意味を持つ。
すなわち、演算パイプライン可能演算ユニツト処
理命令は、どの命令終了宣言があつても次サイク
ルから実行開始可能である。また、N種の命令
は、命令終了宣言の何サイクル後から演算パイプ
ライン不能ユニツトの開始が可能であるかを指示
する。演算不能ユニツトの命令終了宣言には唯一
種が割り当てられ、それは全ての命令が次サイク
ルから命令可能とする命令終了宣言が割り当てら
れる。演算パイプライン可能ユニツトでは、命令
終了宣言からJサイクル後にその命令実行による
割り込みを全て検出できる場合、N種の内、J+
1サイクル後に演算パイプライン演算ユニツトの
実行開始を可能にできる終了宣言を命令に応じて
割り当てる。
発明の実施例 第7図は本発明の一実施例で、Fユニツトに演
算パイプラインを実施した場合の構成例を示す。
第7図に於いて、24は浮動小数点レジスタ(以
下FPRと記す)、25は浮動小数点加減算器、2
6は浮動小数点乗除算器である。27は浮動小数
点レジスタ24の内容をストレツジに貯蔵する場
合のストアデータレジスタであるとともに、マシ
ンチエツクリトライにそなえ、更新されるFPR
24の実行前のデータがセツトされるレジスタで
ある。ストアデータレジスタ27の内容は、スト
ア命令時にストレツジに送付される。29は退避
レジスタであり、演算命令のとき、ストアデータ
レジスタ27を介して、命令実行前のFPR24
の内容が退避される。信号線100はストレツジ
からのオペランドデータを送付するインタフエー
スであり、FPR24へストレツジ上のデータを
ロードする命令、または、ストレツジ上のデータ
とFPR24との演算を行なう命令実行直前に、
ストレツジオペランドをストレツジより送付する
ものである。信号線100のデータはマルチプレ
クサ31を介して浮動小数点加減算器25、また
は浮動小数点乗除算器26に供給される。FPR
24の出力もまた、マルチプレクサ30,31を
経由して命令開始時に2つの演算器25,26に
送られる。浮動小数点加減算器25の演算結果は
信号線102に、浮動小数点乗除算器26の演算
結果は信号線101に、それぞれ送出される。信
号線101と信号線102上の演算結果はFPR
24に送りこまれ、格納される。このFPR24
への格納は、実行サイクル終了後の次のサイクル
で行なう。
第5図から明らかであるように、浮動小数点加
減算器25はFEA,FEB,FECの3サイクルの後、
信号線102に演算結果をのせるが、FPR24
への書き込みは、その後の1サイクル、すなわ
ち、第4図で言えば2番目の命令のFEAサイクル
とオーバーラツプすることになる。
今、Fユニツトで2つの浮動小数点命令を連続
して実行する場合を考える。この場合、第1の浮
動小数点命令の演算結果を格納したFPR24が
第2の命令の入力オペランドとすると、第1の命
令の演算結果をFPR24に書き込んだのち、こ
こから第2の命令のためにデータを読み出すと、
第2の命令の実行は第4図の状態より1サイクル
遅れることとなる。このため、第1の命令の演算
結果をFPR24を経由することなく演算器25,
26に戻し、第1の命令のFECサイクル実行後、
直ちに第2の命令が開始できる様に、第7図にお
いては、信号線101,102の演算結果を直接
マルチプレクサ30,31に入力するパスが設け
られている。これはオペランド・ラツプ・アラウ
ンド・パスと呼ばれ、すでに周知である。すなわ
ち、本発明は第5図のように、Fユニツト内で演
算パイプラインを実行できるようにするものであ
るが、このように、直前の命令の演算結果が次命
令の入力オペランドとして使用される場合は、第
4図のように、従来通り動作させる。
さて、本発明は演算パイプラインを実施するに
当り、パイプラインの実行サイクルの長さを定め
る。第7図の実施例では、浮動小数点加減算器2
5が実行するに必要とする長さを実行サイクル数
とする。つまり、Fユニツト内で必要とする実行
サイクル数が3サイクル以下の命令は、1サイク
ルピツチで実行を開始し、3サイクル後に1サイ
クルピツチで終了して行く。Fユニツト内で実行
サイクル数が3サイクル以上かかる命令を処理す
る場合は、最後の2サイクルの間、演算パイプラ
インを実行できる。
第8図はFユニツト内のパイプラインサイクル
長より長い実行サイクル数を要する命令に対する
本発明のパイプライン制御を説明する図である。
第8図において、第1の命令は6実行サイクル要
したとすると、最初の3サイクルに対しては、演
算パイプライン処理は全く許されず、4サイクル
目がFEAサイクルに対応する。このFEAサイクル
は、次サイクルに、次の命令の実行を開始して良
いという宣言を行なうサイクルである。Fユニツ
ト内で実行中の命令がFEAサイクルに達すると、
次サイクルで次命令をFユニツトが実行可能であ
るという信号を発生する。これを以後EOFA
(End of Funit class A)信号と呼ぶ。EOFA信
号がでたとき、Fユニツトは次命令の実行を行な
うに必要なデータ、制御信号をIユニツト(第1
図の1)から受け取る。EOFA信号は、またIユ
ニツトに送付される。IユニツトはEOFA信号を
受けとると、Fユニツトが次命令の実行に必要な
情報を受け取つたことを知るから、更に後続の命
令を演算ユニツトに供給すべく動作を進める。
Fユニツト内で実行する命令は命令ごとに実行
サイクルが異なるが、ある命令に着目すると、F
ユニツト内の実行サイクル数を一定とすることが
できる。それゆえ、実行サイクルが4サイクル以
上かかる命令では、後ろから3サイクル目にFEA
サイクルが、つまりEOFA信号が発生する様組み
込んでおけばよい。
なお、第8図に於いて、第1命令のFEAサイク
ルを更に、前に持つて行くことは好ましくない。
もし、そうすると、第1命令の演算実行の終了サ
イクルと、それ以降の命令の演算実行の終了サイ
クルとが、命令の指定順序の通りとならず、逐次
制御の原則を崩してしまうからである。
次に、Fユニツトのパイプラインの長さを3サ
イクルとすると、1サイクルで終了してしまう様
な命令には特殊な対策を要す。具対的には、スト
レツジ上のデータをFPR24に格納する命令が
これにあたる。この種類の命令に対し、実行サイ
クルを1サイクルしか割り当てないと、先行命令
で割り込みが発生したとき、後続命令の演算結果
のオペランドが書きかわつてしまうという現象を
発生し、情報制御の原則を崩すことになる。
本発明の実施例では、逐次制御の原則を守るた
め、Fユニツトの実行サイクルは、全て3サイク
ル必要となる様に構成する。Fユニツトが2サイ
クル以下で処理を完了してしまうものには、スト
レツジ上のデータをFPRに格納したり、または、
あるFPRの内容を別のFPRに移すロード系の命
令と、FPRの内容をストレツジに書き込むスト
ア命令が対象となる。ロード系の命令には、入力
オペランドデータの補数をとつて格納するもの、
正数として、乃至は負数として格納する命令を含
む。これらロード系の命令は、実行サイクルが3
サイクルとなるように、浮動小数点加減算ユニツ
トにて実行する。ストア命令に対する逐次制御の
保証は後述する。
以下では、まず第9図と第10図により、ロー
ド系命令を3サイクルに遅延させる実施例を示
す。ついで第11図により、4サイクル以上の実
行サイクルを必要とする命令におけるFEAサイク
ルの、つまりEOFA信号の発生の具体例を示す。
第9図は改良された浮動小数点加算器の構成
例、つまり第7図の25の部分の詳細図である。
第9図において、18,19は桁合わせのための
シフタ、20は仮数部の加減算のための並列加算
器、21はポスト・ノーマライズ用シフタであ
る。浮動小数点加減算を実施するには、指数部の
演算を行なうための第3図に於けるバイト加算器
17及び22が必要であるが、第9図では省略し
てある。データレジスタ15には第7図のマルチ
プレクサ30の出力がデータレジスタ16には、
第7図のマルチプレクサ31の出力が接続され
る。
ロード系の命令実行時、FPRに格納されるべ
きデータはレジスタ16に現われる。又、ロード
系命令の実行時、FEAサイクルにて符号変換回路
32を介してデータレジスタ33にデータをセツ
トする。符号変換回路32は、命令の種類に応じ
て符号を変換する機能をもつものである。FEB
イクルにて変換後のデータがデータレジスタ34
に移される。FECサイクルにてデータレジスタ3
4のデータをマルチプレクサ35を介して信号線
102にのせる。
従来、ロード系命令は符号変換回路の出力を直
ちにマルチプレクサ35にのせ、1サイクルで実
行していたが、本発明ではレジスタ33,34を
追加することにより、演算結果の送出を2サイク
ル遅らせるのである。これは逐次制御の原則を守
つて演算パイプラインを容易ならしめるためであ
る。
上記の処置により、逐次制御の原則を守つて演
算パイプラインを行なうことが可能になつたが、
ロード系命令の演算結果を、次の命令で入力デー
タオペランドとして使用するとき、性能低下をひ
きおこす危険性がある。これは、信号線102上
に演算結果がのるのが従来より2サイクル遅延す
るため、第7図で説明した信号線102からマル
チプレクサ30,31に直結させたオペランド・
ラツプ・アラウンド・パスを使つていては、1サ
イクル後に次命令を開始できなくなるからであ
る。このため、新たなラツプ・アラウンド・パス
103と104が用意される。
第9図に示すごとく、103は符号変換回路3
2及びデータレジスタ33の出力がマルチプレク
サ36を介して接続され、この出力は第7図に示
すごとくマルチプレクサ30に結ばれる。同様
に、レジスタ33と34の出力は、マルチプレク
サ37を介して信号線104に出力され、信号線
104は第7図のマルチプレクサ31に接続され
る。ロード系命令の直後に、その実行結果を必要
とする命令が現われたとき、マルチプレクサ36
もしくは37は符号変換回路32のデータを出力
する。ロード系命令の2サイクル後に実行を開始
する命令が、演算結果を必要とする場合は、デー
タレジスタ33が信号線103または104にの
る。すなわち、マルチプレクサ36,37及び信
号線103,104の設置により、ロード系命令
の実行サイクルの遅延による性能劣化の問題は解
決する。
第10図は演算パイプラインを実施した場合の
データのオペランド・ラツプ・アラウンド制御を
説明するための論理構成図である。第10図で
は、ロード系命令のために新設された第9図の信
号線103,104の制御と、浮動小数点加減算
命令乃至は乗除算命令の直後、もしくはその後の
2サイクルの間に、その演算結果を使用する命令
が出現した場合、現在の命令の実行結果が求まる
まで、演算結果使用命令の実行を遅らせる制御部
分を含んでいる。
第10図において、信号線105は、第1図の
Iユニツト1から命令開始直前サイクルに、これ
から実行する命令の演算結果を格納するFPRの
アドレスが送られてくるインタフエース線であ
る。前記アドレスは、これから実行しようとする
命令の実行開始1サイクル前にレジスタ38にセ
ツトされ、この出力はFPR24(第7図)に送
られ、指定されたFPRの内容をマルチプレクサ
30に送出するのに用いられる。
一方、レジスタ39,40はFユニツトで実行
中のロード系命令の演算結果格納FPRアドレス
を記憶する。ロード系命令のFEAサイクル開始
時、39内にレジスタ38の内容が保持される。
同時に、Vビツトを“1”とするように、信号線
106にロード系命令直前にパルスがのる。レジ
スタ39のVビツトはFEAサイクルの間“1”と
なる。ロード系命令のFEBサイクルが開始される
と、レジスタ39のVビツトとレジスタアドレス
は、それぞれレジスタ40に移される。信号線1
06は、ロード系命令以外では、FEAサイクルの
開始直前にパルスがのらない。したがつて、レジ
スタ39のVビツトが“1”なら、レジスタ39
のレジスタアドレスに対応するロード系命令が
FEAサイクルにあることを意味する。レジスタ4
0も同様にロード系命令がFEBサイクルにあると
き、Vビツトが“1”であるとともに演算結果格
納FPRアドレスを保持する。
レジスタ41,42,43はそれぞれFEA
FEB,FECサイクルに対応する。現在、Fユニツ
トで実行中の命令がFPRに演算結果を格納する
命令であるとき、その格納FPRアドレスを保持
する。
信号線107は、次にFEAサイクルに入る命令
がFPRを更新する命令であるときパルスをのせ、
FEAサイクル開始時、レジスタ41のVビツトを
“1”にする。信号線108は、浮動小数点乗除
算器(第7図の26)を使用する命令であるとき
“1”となり、FEAサイクルを開始するとき、レ
ジスタ41のMビツトが“1”になる。かくて、
レジスタ41は、Vビツトが“1”のとき、FEA
サイクルで現在実行中の命令が、演算結果を
FPRに格納する命令であることを示し、その格
納FPRを保持するとともに、Mビツトが“0”
のとき浮動小数点加減算器(第7図の25)が動
作中、Mビツトが“1”のとき浮動小数点乗除算
器(第7図の26)が動作中であることを示す。
レジスタ41の内容は、FEBサイクルが開始する
とレジスタ42に移される。レジスタ42の内容
は、FECサイクルが開始するとレジスタ43に移
される。
レジスタ39の内容は比較器44に、レジスタ
40の内容は比較器45に入力される。比較器4
4,45には、もう一方の比較入力として、レジ
スタ38の内容が入力される。比較器44は、現
在FEAサイクルで実行中のロード系命令と次に命
令を開始しようとしている命令の演算結果FPR
アドレスを比較する。該比較器44は、レジスタ
39内のFPRアドレスとレジスタ38内のFPR
アドレスが一致し、かつ、レジスタ39のVビツ
トが“1”のとき、出力信号線110を“1”と
する。信号線110は、マルチプレクサ36(第
9図)とマルチプレクサ30(第7図)に接続さ
れ、マルチプレクサ36をして符号変換回路32
を出力し、マルチプレクサ30をして信号線10
3を出力することを指示する。
比較器45はレジスタ40とレジスタ38の内
容を比べ、ロード系命令開始後2サイクル目でロ
ード結果を必要とする命令がきたときのラツプ・
アラウンド・パスを制御するものである。すなわ
ち、比較器45で一致がとれ、このとき比較器4
4で一致がとれていないときは、信号線109を
“1”とする。信号線109は信号線110と同
様に、マルチプレクサ36(第9図)とマルチプ
レクサ30(第7図)に接続され、ここでレジス
タ33と信号線103を出力するように働く。な
お、比較器44で一致がとれたとき、信号線10
9は“1”とならない。これは、ロード系命令が
2つ連続した場合の命令の処理順番を保証するた
めである。
上記比較器44と比較器45はマルチプレクサ
36とマルチプレクサ30を制御するものである
が、命令によつては、FPRから2つのデータ入
力を必要とするものがあり、したがつて、マルチ
プレクサ37(第9図)とマルチプレクサ31
(第7図)を制御する論理回路が必要となる。こ
のためには、もう一方のFPRを読み出すための
アドレスが命令開始直前に1ユニツトから送付さ
れることを利用して、このアドレスとレジスタ3
9、レジスタ40の内容とを比較する回路を比較
器44,45と同様に設置すればよい。
次に比較器46,47,48の動作を説明す
る。比較器46,47は、レジスタ41とレジス
タ42と、レジスタ38の結果を比較する。比較
器46は、レジスタ41内のFPRアドレスとレ
ジスタ38の内容が一致し、かつレジスタ39の
Vビツトが“0”でレジスタ41のVビツトが
“1”のとき、出力を“1”とし、信号線113
を“1”とする。比較器46の動作は、現在FEA
サイクルで実行中の命令がロード系命令以外の演
算結果をFPRに格納する命令であり、その結果
を次に開始しようとしている命令が入力として必
要としていることを検出していることとなる。比
較器47も、46と同様、FEBサイクルで実行中
のロード系命令以外の演算結果を次サイクルで実
行を開始しようとしている命令が必要としている
ことを検出し、信号線113を“1”にする。信
号線113が“1”となると、次命令の実行開始
を1サイクル遅らせる様に働く。比較器48は
FECサイクルを管理し、レジスタ43とレジスタ
38の内容を比べる。該比較器48は、レジスタ
43のアドレス部とレジスタ38が一致し、か
つ、レジスタ43のVビツトが“1”のとき、出
力を“1”とする。比較器48で一致がとれる
と、レジスタ43のMビツトが“1”なら信号線
111に、Mビツトが“0”なら信号線112を
“1”とする。信号線111と112はマルチプ
レクサ30(第7図)に接続され、信号線111
はマルチプレクサ30をして浮動小数点乗除算器
(第7図の26)の出力結果101を出力する様
作用する。信号線112は浮動小数点加減算器
(第7図の25)の出力結果102を出力する様
作用する。
以上まとめると、レジスタ41,42及び比較
器46,47は、後続命令が現在実行中の演算結
果を後続命令が必要としている場合、演算結果が
得られるまで、後続命令の実行開始を遅らせるた
めの検出に用いられる。レジスタ43と比較器4
8は、演算実行最終サイクルにてその結果を後続
命令が必要としていることを検出し、マルチプレ
クサ30をしてラツプ・アラウンド動作をおこな
わせるためのものである。
レジスタ39と40で考慮した様に、FPRか
ら2つの入力データ入力を必要とするものがある
ゆえ、第1のFPRアドレスと比較されるべき比
較器を比較器46,47,48と同様に用意する
必要がある。この場合、比較器の入力は46,4
7,48に応じてレジスタ41とレジスタ39の
Vビツト、レジスタ42とレジスタ40のVビツ
ト及び、レジスタ43とを一方の入力とし、他方
を第2のFPRアドレスとすればよい。比較器4
6,47に対応する比較器は、第10図の信号線
113と論理和がとられ、後続命令の実行開始を
遅らせる様に働らき、また比較器48に対応する
比較器は、マルチプレクサ31をして、信号線1
01,102を直接出力すべき制御信号を発生せ
しめる様に動作する。
次に、Fユニツト内で4サイクル以上かゝる命
令に対して、実行終了の3サイクル前にFEAサイ
クル、したがつて、EOFA信号を発行する論理に
ついて説明する。第11図及び第12図はその構
成例である。
第11図はIユニツト内に設置されるFユニツ
トの実行サイクル指定論理機構である。第11図
において、レジスタ53には命令コードがセツト
される。論理回路54はレジスタ53の出力を入
力として、これをデコードし、出力レジスタ55
にセツトする。論理回路54は、レジスタ53の
内容、即ち命令コードによつてアドレスされるメ
モリー素子であつても良い。命令解読ユニツトに
て、Fユニツトで実行すべき命令を解読した場
合、命令コードをレジスタ53にセツトし、論理
回路54の動作結果をレジスタ55に出力する。
論理回路54の内容は、Fユニツトで実行される
命令の実行サイクル数を命令対応に出力するとい
うものである。具体的には、Fユニツトの動作が
FEA,FEB,FECの3サイクルで終了してしまう
ものは“0”を、4サイクルで終了するものは
“1”を、という具合に「Fユニツト実行数―3
サイクル」の値を2進コードで出力する。
レジスタ55の出力はインタフエース線127
を介して、第12図のレジスタ56に接続され
る。ここで、第12図はFユニツトのFEAサイク
ル検出論理機構であり、レジスタ56は、実行中
の命令が後、何サイクルでFEAサイクルになるか
を示す実行サイクル保持ラツチ、57は1サイク
ルに“1”ずつ減算するデイクリメンタ、58は
“0”検出回路である。インタフエース線128
は後述する様に、予想実行サイクルより早く(ま
たは遅く)実行を終了してしまう場合に、Fユニ
ツトの演算器より強制的に実行サイクル数を修正
すべく、レジスタ56内の値を変更するに使用す
る信号線である。
Iユニツトが命令を解続し、Fユニツトを起動
した場合、その起動時にインタフエース線127
を介してレジスタ56にFユニツト実行サイクル
数をセツトする。レジスタ56の内容は“0”検
出回路58に入力され、レジスタ56の内容が
“0”、すわち、これから実行する演算サイクルが
FEAサイクルであるとき、“0”検出回路58は
信号線129を“1”にしてFEAサイクルである
ことを装置内の各部に通知する。信号線127
は、FEAサイクルすなわち信号線129が“1”
でかつIユニツトがFユニツトに対し演算実行の
開始を指示できる場合、レジスタ56にはインタ
フエース線127の値をセツトする。FEAサイク
ルでないか、あるいはFEAサイクルであつても、
IユニツトがFユニツトに起動をかけられない場
合は、通常、デイクリメンタ57の出力をレジス
タ56にセツトする。デイクリメンタ57は、レ
ジスタ56の内容が“0”でない場合は“1”を
減じた値を出力する。レジスタ56が“0”の場
合は“0”を出力する。レジスタ56は、毎演算
サイクルごとにデイクリメンタ57の出力をセツ
トする。かくて、Fユニツトで命令を開始した
後、毎実行サイクルごとにレジスタ56の値は
“1”づつ減少し、“0”になつたとき信号線12
9が“1”となり、FEAサイクルを知ることがで
きる。
インタフエース線128は、Iユニツトからイ
ンタフエース線127を介して送付された命令の
実行中に、実行サイクル数を変更すべき要因を検
出したとき、修正値を送付するインタフエース線
である。これは、例えば浮動小数点乗算で、片方
のオペランドが全て“0”の場合等に発生する。
浮動小数点乗算では、入力データの正規化、出
力データの正規化及び数回の乗算ループを必要と
し、浮動小数点加減算より多くの実行サイクルを
必要とする。このとき、もし入力データのどちら
かが“0”であるなら、演算結果は“0”である
から、乗算ループを行なうことなく演算結果を知
り得る。つまり、Iユニツトがインタフエース線
127を介して送つてきた実行サイクル数を用い
る以前に実行を終了してしまうことができる。こ
の様なとき、信号線128からレジスタ56に
“0”をセツトすれば、直ちに信号線129より
FEAサイクルを指示できることとなる。
以上により、Fユニツト内部で演算パイプライ
ンを行なつたとき、オペランドの書き込みは命令
の順となる。よつてFユニツト内で実行中の命令
で割り込みが発生したとき、Fユニツト内の後続
命令の実行を停止することにより、命令の逐次制
御の原則をFユニツト内で容易に守ることができ
る。
実施例の発展的説明 ところで、第1図のGユニツト5は浮動小数点
命令以外の全ての命令を処理するが、その内部構
成は第2図の様に1サイクルで基本演算を終了し
てしまうものである。このGユニツト内で処理す
る命令は1〜2実行サイクルで終了するものが多
い。このときFユニツトが演算パイプライン可能
ということから、Gユニツトに対し、Fユニツト
のFEAサイクル直後にGユニツト実行命令開始を
許可すると、先行するFユニツト命令終了時に、
後続のGユニツト命令の処理が既に終了してお
り、このため逐次制御の原則に反するケースが発
生してしまう。
Fユニツト内では、これに対処するため、実行
サイクルを最低3サイクル必要になる様にしたの
であつた。
FユニツトとGユニツト間での命令処理で逐次
制御の原則を守るため、Gユニツト内の実行サイ
クルが全て3サイクル以上とする方式も考えられ
るが、Gユニツトの実行結果として更新されるオ
ペランドが、処理装置内の制御レジスタ、プログ
ラム状態語、汎用レジスタ、ストレツジ等多種に
及んでいること、さらに汎用レジスタなどは、単
にオペランドとして使用するのみではなく、オペ
ランドアドレス計算用のベースレジスタ、インデ
ツクスレジスタとして使用される。したがつて、
オペランドの更新サイクルを遅延させ、かつ命令
の処理性能をそこなわない様にすると、データの
バイパス手段等の構成が非常に複雑となつてしま
い、現実的ではない。
このため、EOFA信号がでたとき、次の命令が
Fユニツトで実行する命令なら次サイクルで直ち
に実行を開始させ、次の命令がGユニツト命令な
らFユニツト命令の終了を待つて、すなわちFEC
サイクルの次にGユニツト命令の実行を開始でき
る様にする。
また、周知の様にGユニツトは命令実行の最終
サイクルで、次のサイクルで次命令の実行が可能
であるという信号を発行する。これをEOP(End
of Operation)信号と呼ぶ。GユニツトがEOP
信号を発行すると、次サイクルから全ての命令が
実行可能となる。
ところで、Fユニツトに於いて演算パイプライ
ンのために本来1サイクルで実行可能であつた命
令は、その実行サイクルを3サイクルとしたが、
この命令の後にG2ニツト命令がくると、FEA
イクルで発行するEOFA信号によりGユニツトの
命令開始は2サイクル待たされることとなつてし
まう。これは、演算パイプラインをFユニツトに
適用したため、性能を劣化させることに他ならな
い。さて、この様な命令は、本来1サイクルで実
行可能なものを3サイクルかかる様にしたのがか
ら、この命令で発生する割り込みはFEAサイク
ル、すなわち実行の第1サイクルで検出可能であ
る。よつてFEAサイクルの直後にGユニツトの次
命令を実行させても、割り込み検出後、次サイク
ルのGユニツトの実行を停止させれば、命令の逐
次制御の原則を崩さずに、FEAサイクルの次にG
ユニツト命令の開始を可能とするとができる。こ
のためFユニツト内で1サイクルで命令を終了す
るのだが、演算パイプラインを実施するため3サ
イクル化した命令は、FEAサイクルでEOFA信号
のかわりにEOP信号を発行するようにすればよ
い。
Fユニツト内で実行する命令で2サイクルで終
るのだが、演算パイプライン化のため1サイクル
実行をのばし、3サイクルとする命令も一般には
存在する可能性がある。このような場合は、FEC
サイクルと同時にGユニツト命令が開始できる様
な信号を用意し、該命令のFEAサイクルで発行さ
せる。れをEOFB(End of Funit class B)信号
と呼ぶ。
以上まとめると、命令の終了宣言は次の3種類
になる。なお、一般には演算パイプラインをNマ
シンサイクルとすると、命令終了宣言はN種とな
る。
EOP…Gユニツト命令の最終サイクル、及び
Fユニツト命令の内、本来1サイクルで終
了する命令のFEAサイクルで発行。
EOFB…Fユニツト命令の内、本来2サイクル
で終了する命令のFEAサイクルで発行。
EOFA…Fユニツト命令の内、本来3サイクル
以上が必要な命令のFEAサイクルで発行。
第13図は第12図のFEA検出論理機構を改良
して、Fユニツトで上記3種の命令終了宣言を発
行できる様にしたものである。第13図に於い
て、実行サイクル保持ラツチ56、デイクリメン
タ57、“0”検出回路58及びIユニツトから
送付される実行サイクル数インタフエース線12
7、Fユニツト内部からくる実行サイクル修正イ
ンタフエース線128の動作は第12図と同じで
ある。第13図中、3つのラツチ60,61,6
2があらたに追加されている。ラツチ60,6
1,62は、実行中の命令がそれぞれ命令終了宣
言としてEOFA,EOFB,EOPのうちどれを行な
うべきかを記憶する。これらのラツチは、Iユニ
ツトからの実行サイクル数インタフエース線12
7と同様に、命令をIユニツトが解読したとき、
命令コードに対応してどれか1つが“1”となる
様、Iユニツトが出力する。その論理構成は第1
1図と同様である。その出力はインタフエース線
131,132,133を介して、Iユニツトが
Fユニツトを起動したとき送付され、ラツチ6
0,61,62に保持される。実行中の命令が
FEAサイクルに達したとき、“0”検出回路58
は、FEAサイクル指示線129を“1”とする
が、この信号は60,61,62の出力と論理積
がとられ、FEAサイクルにて信号線114,11
5,116の1つを“1”にする。かくて、FEA
サイクルに達したとき、EOFA指示なら信号線1
14に、EOFB指示なら信号線115に、EOP指
示なら信号線116にパルスを送出する。信号線
130は、Fユニツトで実行中の命令が終了宣言
を変更すべき要因を検出したとき、ラツチ60,
61,62の内容を修正することを指示するもの
であつて、信号線128が実行サイクル保持ラツ
チ56の内容を修正すべくセツトし直すと、同じ
タイミングで更新する。信号線130は2ビツト
あり、EOP,EOFA,EOFBのいずれかを指示す
る様に定義付けされる。この2ビツトは、デコー
ダ59により、出力の内1本のみが“1”、残り
が“0”となるようデコードされる。例えば浮動
小数点乗算にて、どちらかの入力データの“0”
を検出した場合、それ以後でオーバーフロー,ア
ンダーフロー等の割り込みを検出することはない
から、ラツチ60,61,62をしてその内容を
“0”,“0”,“1”すなわち、EOP宣言を行なう
様に修正する。
さて、Fユニツトで実行する命令は、全て3種
の終了宣言サイクルの次サイクルから開始するこ
とができる。Gユニツト命令は、EOPサイクル
なら次サイクル、EOFB信号なら1サイクル後、
EOFA信号なら2サイクル後から実行を開始する
ことができる。
以上を制御するための実施例を第14図に示
す。図に於いて、信号線114はFユニツトの
FEAサイクルで発行するEOFA信号が、115は
EOFB信号が、116はEOP信号が、117はG
ユニツトの実行終了サイクルで発行するEOP信
号がのる。また信号線119は、Iユニツトが次
の命令を実行開始するため必要とするデータ、制
御信号をGユニツト、Fユニツトへ送付可能であ
ることを示すデイレー信号がのる。信号線11
9,120の内容は、いずれもIユニツトから送
付されるもので、それぞれ次サイクルにてGユニ
ツトが動作する命令であることと、Fユニツトが
動作することを指示する命令である。Fユニツト
とGユニツトいずれかで動作すべきかは命令によ
り定まるから、Iユニツトは命令コードを解読
し、その結果を送出する。
第14図は以上の信号を受けて、次の命令を開
始するためのデータの受け取りと、Gユニツト及
びFユニツトの実行開始を指示すべく動作し、信
号線123,124,125に信号を出力する。
信号線123はGユニツトで実行する命令の動作
許可、すなわち、Iユニツトからのデータの受け
とりとGユニツトの命令実行開始を指示する。信
号線124はFユニツトで実行する命令の動作許
可、すなわち、Iユニツトからのデータの受けと
りFユニツトの命令実行開始を指示する。信号線
125は信号線123及び124のいずれかが
“1”となつたとき“1”となる信号であつて、
Iユニツトに送られ、送付中の次命令実行データ
をFユニツトもしくはGユニツトが受けとつたこ
とを知らせる。FユニツトでEOP,EOFB,
EOFAが指示され、そして、GユニツトでEOP
信号が発行されると、信号線122が“1”とな
る。このとき、もし次命令がFユニツトで実行す
る命令であると、レデイー信号線118とFユニ
ツト動作指令信号線120が“1”であるから、
信号線124が“1”となり、次サイクルからた
だちに次命令が開始される。
EOFAが指定されたとき、次の2サイクル間は
Gユニツト命令を開始させてはならないEOFBが
指定された場合も、次サイクルにGユニツトで処
理する命令を開始させることはできない。この要
因は信号線126に現われる。信号線126は、
EOFA,EOFB及びEOFAの1サイクルデイレー
であるラツチ50のいずれかが“1”のとき
“1”となる。ラツチ50は、現在Fユニツトの
FEBサイクルで実行中の命令がEOFA信号発行の
ものであることを意味している。レデイー信号線
118が“1”で、Gユニツト起動線119が
“1”のとき、信号線126はGユニツト実行命
令開始指示を信号線123が送出しないように働
く。信号線123は、122が“1”でかつ12
6が“0”のときのみ“1”を送出する。信号線
122は、信号線114〜117の他にラツチ5
2が“1”のときも“1”となることを示してい
る。
EOFA,EOFB,EOP信号は命令実行サイクル
中に1回発行されるが、ラツチ51は、その時点
で次サイクルの命令開始が指定されないとき、次
サイクルがGユニツト、Fユニツトの命令実行開
始可能状態であることを保持するラツチである。
すなわち、信号線122が“1”、つまりGユニ
ツト、Fユニツト共、命令受け付けが可能な状態
だが、信号線125が“0”、すなわち、次サイ
クルの命令実行開始ができない場合、ラツチ51
がセツトされ、適当なタイミングの制御の下に、
この内容がラツチ52に送られ、その次のサイク
ルで信号線122を“1”にするように働く。ラ
ツチ51が“1”となるのは次の場合である。I
ユニツトがレデイー信号を送つてこないとき、す
なわち信号線118が“0”のとき、及びEOFA
発行後2サイクルまたはEOFBサイクルで次命令
にGユニツト命令が指定されたときである。これ
により、GユニツトとFユニツト間での命令の逐
次制御の原則を崩すことなく、Fユニツトの演算
パイプラインを可能とできる。
ここで、再び第7図に戻つてレジスタ27に着
目する。レジスタ27はFPR24の内容をスト
レツジオペランドに格納するとき、該当FPRの
内容をストレツジに送るためのデータレジスタで
ある。ストア命令は、通常、その実行サイクルは
1サイクルで行なわれる。この1サイクルの間
に、Fユニツト及びGユニツトは記憶ユニツト
(第1図の2)に対してストアリクエストを発行
し、データと他の制御情報を送付する。記憶装置
内の書込みが、命令開始から2サイクルまたは3
サイクル目、即ち、FEB,FECサイクルに対応す
る時間で行なわれるとすると、取り扱かいに注意
を要する。これは、今まで説明してきた命令の逐
次制御の原則との矛盾点を考慮する必要があるか
らである。もし記憶装置の書き込みが実行開始2
サイクルもしくは3サイクル目で行なうなら、
FPRをストレツジに書き込むストア命令は、デ
ータはFユニツトから発行するがGユニツトで処
理できる命令として取り扱う。即ち、先行するF
ユニツトの命令の割り込み条件がない時点でスト
ア命令を発行しないと、記憶装置上のオペランド
が逐次制御の原則を崩すからである。この様な場
合、Iユニツトが該当命令をデコードしたとき、
第14図の信号線120すなわちFユニツト起動
線のかわりにGユニツト起動線119を“1”と
して実行開始を要求させる。こうするこことによ
り、信号線126の働きにより、先行命令の割り
込み検出が完了した時点で、Gユニツト起動線1
23を介して命令の実行開始が指示される。Gユ
ニツト起動線123は、該命令実行開始時、Gユ
ニツトではなくFユニツトを起動する様に、第1
1図の後段で制御することにより、FPRに対す
るストア命令をGユニツト命令と同様に扱える。
発明の効果 本発明により、情報処理装置内で、特定のオペ
レーシヨンを行なう命令を扱う演算ユニツトとそ
れ以外の全ての命令を処理する演算ユニツトを備
えさせ、特定のオペレーシヨンを行なう演算ユニ
ツトの演算パイプラインを可能とし、以つて処理
性能を向上させることができる。
特に、本発明においては、演算パイプラインを
実行する演算ユニツトの段数以上の実行サイクル
数を必要とする命令が与えられた場合も、何らパ
イプライン制御の利点を損うことなく、即ち、何
らの支障もなく演算パイプライン動作を続行する
ことができる。
【図面の簡単な説明】
第1図は情報処理装置の全体構成図、第2図は
第1図の一般演算ユニツトの構成図、第3図は従
来の浮動小数点加減算器の構成図、第4図は演算
パイプラインを実施しない場合の浮動小数点演算
ユニツト(Fユニツト)のタイミング図、第5図
は演算パイプラインを実施した場合のFユニツト
のタイミング図、第6図は演算パイプラインを実
施するときに生じる命令の逐次制御違反の説明
図、第7図は本発明の一実施例で、演算パイプラ
インを実施したFユニツトの構成図、第8図は第
7図の動作を説明するためのタイミング図、第9
図は本発明の演算パイプラインを実施した浮動小
数点加減算器の構成例を示す図、第10図は本発
明の演算パイプラインを実施した場合の後続命令
開始制御とラツプアラウンド制御論理の一実施例
を示す図、第11図はIユニツトに於けるFユニ
ツトの実行サイクル指定論理機構の一実施例を示
す図、第12図はFユニツトに於けるFEA検出論
理機構の一実施例を示す図、第13図はFユニツ
トに於ける命令終了宣言発行論理機構の一実施例
を示す図、第14図はFユニツト、Gユニツト間
の命令開始制御論理機構の一実施例を示す図であ
る。 1……命令解読ユニツト、2……記憶ユニツ
ト、4……浮動小数点演算ユニツト、5……一般
演算ユニツト、24……浮動小数点レジスタ、2
5……浮動小数点加減算器、26……浮動小数点
乗除算器、27……ストアテータレジスタ、29
……退避レジスタ。

Claims (1)

  1. 【特許請求の範囲】 1 命令を解読する命令ユニツトと、命令で指定
    された演算を実行する演算ユニツトとを具備する
    情報処理装置において、 前記命令ユニツトは、命令の前記演算ユニツト
    での演算に要する実行サイクル数を判別する手段
    を有し、 前記演算ユニツトは、複数の最大N個の命令の
    ためのN個の演算をパイプラインで同時に実行す
    るN段構成の演算手段と、前記命令ユニツトから
    前記命令の演算実行サイクル数を示す情報を入力
    して、サイクル毎に該情報を減算し、前の命令の
    演算終了のNサイクル前であることを検出したら
    次命令の演算開始を前記演算手段に指示する手段
    を有する、 ことを特徴とする情報処理装置。 2 前記演算ユニツトは、前記N段の演算手段の
    一つあるいはそれ以上の段に対して迂廻手段を有
    し、命令実行中にその演算結果を演算のために必
    要とする後続命令が指定された場合、該後続命令
    が必要とする演算結果を前記迂廻手段から選択す
    ることを特徴とする特許請求の範囲第1項記載の
    情報処理装置。 3 処理すべき命令の内、第1の複数の命令群を
    実行する第1の演算ユニツトと、該第1の演算ユ
    ニツトで処理する以外の命令を処理するが、同時
    には1命令の実行のみを行う第2の演算ユニツト
    と、命令を解読し、前記2つの演算ユニツトに必
    要なデータとして制御情報を送出する命令ユニツ
    トとを具備してなる情報処理装置において、 前記第1の演算ユニツトは、1サイクルで動作
    可能な演算回路をN段接続し、該N段の演算回路
    を1回ずつ動作してNサイクルで実行終了する命
    令にあつては、その実行の第1サイクルで次命令
    の演算開始を可能状態とし、演算実行サイクルが
    N+1サイクル以上かかる命令では、演算終了の
    Nサイクル前で次命令の演算開始を可能状態する
    構成とすると共に、 現在実行中の命令より後の命令が該第1の演算
    ユニツトで実行する命令なら次サイクルから命令
    開始可能であり、後の命令が第2の演算ユニツト
    で実行する命令ならJサイクル後(1JN)
    で実行開始可能であることを識別できるN種の命
    令終了宣言手段と、 前記第1の演算ユニツトで実行する各命令の実
    行中、前記N種の命令終了宣言手段の1つを選択
    して各命令中の実行サイクルの終了のNサイクル
    前に発行する手段と、 前記第2の演算ユニツトで処理する命令にあつ
    ては、命令実行の最終サイクルで、次サイクルか
    ら全ての後続命令が開始可能であるただ1種の命
    令終了宣言手段と、 を備え、命令ユニツトが指定する命令実行演算
    ユニツトの識別信号と前記N種の命令終了宣言と
    により、次命令の実行開始サイクルを可変とする
    ことを特徴とする情報処理装置。
JP57112111A 1982-06-29 1982-06-29 情報処理装置 Granted JPS592143A (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP57112111A JPS592143A (ja) 1982-06-29 1982-06-29 情報処理装置
EP83106287A EP0097956B1 (en) 1982-06-29 1983-06-28 Arithmetic system having pipeline structure arithmetic means
DE8383106287T DE3378932D1 (en) 1982-06-29 1983-06-28 Arithmetic system having pipeline structure arithmetic means
US06/509,047 US4639886A (en) 1982-06-29 1983-06-29 Arithmetic system having pipeline structure arithmetic means

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP57112111A JPS592143A (ja) 1982-06-29 1982-06-29 情報処理装置

Publications (2)

Publication Number Publication Date
JPS592143A JPS592143A (ja) 1984-01-07
JPH0157817B2 true JPH0157817B2 (ja) 1989-12-07

Family

ID=14578426

Family Applications (1)

Application Number Title Priority Date Filing Date
JP57112111A Granted JPS592143A (ja) 1982-06-29 1982-06-29 情報処理装置

Country Status (4)

Country Link
US (1) US4639886A (ja)
EP (1) EP0097956B1 (ja)
JP (1) JPS592143A (ja)
DE (1) DE3378932D1 (ja)

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60120439A (ja) * 1983-12-05 1985-06-27 Nec Corp 演算処理装置
JPH063584B2 (ja) * 1983-12-19 1994-01-12 株式会社日立製作所 情報処理装置
AU553416B2 (en) * 1984-02-24 1986-07-17 Fujitsu Limited Pipeline processing
US4766564A (en) * 1984-08-13 1988-08-23 International Business Machines Corporation Dual putaway/bypass busses for multiple arithmetic units
US4707783A (en) * 1984-10-19 1987-11-17 Amdahl Corporation Ancillary execution unit for a pipelined data processing system
US5109524A (en) * 1985-07-02 1992-04-28 Vlsi Technology, Inc. Digital processor with a four part data register for storing data before and after data conversion and data calculations
US4974198A (en) * 1986-07-16 1990-11-27 Nec Corporation Vector processing system utilizing firm ware control to prevent delays during processing operations
US4987534A (en) * 1986-08-20 1991-01-22 Nec Corporation Processor having synchronized operation between a CPU and a vector processor
US5053941A (en) * 1986-08-29 1991-10-01 Sun Microsystems, Inc. Asynchronous micro-machine/interface
US4905178A (en) * 1986-09-19 1990-02-27 Performance Semiconductor Corporation Fast shifter method and structure
JPH0810430B2 (ja) * 1986-11-28 1996-01-31 株式会社日立製作所 情報処理装置
US4896133A (en) * 1987-02-10 1990-01-23 Davin Computer Corporation Parallel string processor and method for a minicomputer
US5073864A (en) * 1987-02-10 1991-12-17 Davin Computer Corporation Parallel string processor and method for a minicomputer
EP0352279A4 (en) * 1987-02-10 1991-10-30 Davin Computer Corporation Parallel string processor and method for a minicomputer
US5005118A (en) * 1987-04-10 1991-04-02 Tandem Computers Incorporated Method and apparatus for modifying micro-instructions using a macro-instruction pipeline
US4926355A (en) * 1987-07-02 1990-05-15 General Datacomm, Inc. Digital signal processor architecture with an ALU and a serial processing section operating in parallel
US4888722A (en) * 1987-07-02 1989-12-19 General Datacomm, Inc. Parallel arithmetic-logic unit for as an element of digital signal processor
EP0395636A4 (en) * 1987-08-20 1991-10-16 Davin Computer Corporation Parallel string processor and method for a minicomputer
JP2806524B2 (ja) * 1988-03-04 1998-09-30 日本電気株式会社 ベクトル演算命令発行制御方法
US5008812A (en) * 1988-03-18 1991-04-16 Digital Equipment Corporation Context switching method and apparatus for use in a vector processing system
JP2858140B2 (ja) * 1988-10-19 1999-02-17 アポロ・コンピューター・インコーポレーテッド パイプラインプロセッサ装置および方法
US5099421A (en) * 1988-12-30 1992-03-24 International Business Machine Corporation Variable length pipe operations sequencing
US5212662A (en) * 1989-01-13 1993-05-18 International Business Machines Corporation Floating point arithmetic two cycle data flow
US4999802A (en) * 1989-01-13 1991-03-12 International Business Machines Corporation Floating point arithmetic two cycle data flow
US5155820A (en) * 1989-02-21 1992-10-13 Gibson Glenn A Instruction format with designations for operand lengths of byte, half word, word, or double word encoded in address bits
AU629007B2 (en) * 1989-12-29 1992-09-24 Sun Microsystems, Inc. Apparatus for accelerating store operations in a risc computer
US5058048A (en) * 1990-04-02 1991-10-15 Advanced Micro Devices, Inc. Normalizing pipelined floating point processing unit
EP0503968B1 (en) * 1991-03-14 1999-01-07 Fujitsu Limited Pipeline operation control method and system
US5572714A (en) * 1992-10-23 1996-11-05 Matsushita Electric Industrial Co., Ltd. Integrated circuit for pipeline data processing
US5586288A (en) * 1993-09-22 1996-12-17 Hilevel Technology, Inc. Memory interface chip with rapid search capability
US5983341A (en) * 1997-04-25 1999-11-09 International Business Machines Corporation Data processing system and method for extending the time for execution of an instruction
US6862563B1 (en) 1998-10-14 2005-03-01 Arc International Method and apparatus for managing the configuration and functionality of a semiconductor design
WO2001069411A2 (en) 2000-03-10 2001-09-20 Arc International Plc Memory interface and method of interfacing between functional entities
US6922771B2 (en) * 2002-04-24 2005-07-26 Portalplayer, Inc. Vector floating point unit
US7047397B2 (en) * 2002-09-13 2006-05-16 Intel Corporation Method and apparatus to execute an instruction with a semi-fast operation in a staggered ALU
US7373369B2 (en) * 2003-06-05 2008-05-13 International Business Machines Corporation Advanced execution of extended floating-point add operations in a narrow dataflow
US8127113B1 (en) 2006-12-01 2012-02-28 Synopsys, Inc. Generating hardware accelerators and processor offloads
US9317251B2 (en) 2012-12-31 2016-04-19 Nvidia Corporation Efficient correction of normalizer shift amount errors in fused multiply add operations
US9417839B1 (en) * 2014-11-07 2016-08-16 The United States Of America As Represented By The Secretary Of The Navy Floating point multiply-add-substract implementation

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS52115640A (en) * 1976-02-06 1977-09-28 Int Computers Ltd Register for pipe line data processor system
JPS5466048A (en) * 1977-11-07 1979-05-28 Hitachi Ltd Information processor
JPS5710875A (en) * 1980-06-25 1982-01-20 Fujitsu Ltd Instruction control device
JPS5710872A (en) * 1980-06-25 1982-01-20 Fujitsu Ltd Instruction control device

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3787673A (en) * 1972-04-28 1974-01-22 Texas Instruments Inc Pipelined high speed arithmetic unit
US3840861A (en) * 1972-10-30 1974-10-08 Amdahl Corp Data processing system having an instruction pipeline for concurrently processing a plurality of instructions
US3875391A (en) * 1973-11-02 1975-04-01 Raytheon Co Pipeline signal processor
US4025771A (en) * 1974-03-25 1977-05-24 Hughes Aircraft Company Pipe line high speed signal processor
US4107773A (en) * 1974-05-13 1978-08-15 Texas Instruments Incorporated Advanced array transform processor with fixed/floating point formats
CA1059639A (en) * 1975-03-26 1979-07-31 Garvin W. Patterson Instruction look ahead having prefetch concurrency and pipe line features
JPS54107645A (en) * 1978-02-13 1979-08-23 Hitachi Ltd Information processor
JPS5621240A (en) * 1979-07-27 1981-02-27 Hitachi Ltd Information processor
US4338675A (en) * 1980-02-13 1982-07-06 Intel Corporation Numeric data processor
CA1174370A (en) * 1980-05-19 1984-09-11 Hidekazu Matsumoto Data processing unit with pipelined operands
JPS57134774A (en) * 1981-02-13 1982-08-20 Hitachi Ltd Vector operating device
US4399507A (en) * 1981-06-30 1983-08-16 Ibm Corporation Instruction address stack in the data memory of an instruction-pipelined processor

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS52115640A (en) * 1976-02-06 1977-09-28 Int Computers Ltd Register for pipe line data processor system
JPS5466048A (en) * 1977-11-07 1979-05-28 Hitachi Ltd Information processor
JPS5710875A (en) * 1980-06-25 1982-01-20 Fujitsu Ltd Instruction control device
JPS5710872A (en) * 1980-06-25 1982-01-20 Fujitsu Ltd Instruction control device

Also Published As

Publication number Publication date
DE3378932D1 (en) 1989-02-16
EP0097956B1 (en) 1989-01-11
EP0097956A3 (en) 1986-07-23
EP0097956A2 (en) 1984-01-11
JPS592143A (ja) 1984-01-07
US4639886A (en) 1987-01-27

Similar Documents

Publication Publication Date Title
JPH0157817B2 (ja)
US4740893A (en) Method for reducing the time for switching between programs
US4745547A (en) Vector processing
US3564506A (en) Instruction retry byte counter
EP0207665B1 (en) Bidirectional branch prediction and optimization
US5596733A (en) System for exception recovery using a conditional substitution instruction which inserts a replacement result in the destination of the excepting instruction
JPS6231379B2 (ja)
US6055625A (en) Pipeline computer with a scoreboard control circuit to prevent interference between registers
JPH0545985B2 (ja)
JPS6351287B2 (ja)
KR0133237B1 (ko) 다중 실행장치 처리시스템 상태의 선택적 저장방법 및 시스템
US4385365A (en) Data shunting and recovering device
EP0094535A2 (en) Pipe-line data processing system
US4773035A (en) Pipelined data processing system utilizing ideal floating point execution condition detection
JPH11353179A (ja) パイプライン制御デ―タ処理装置における例外の処理
JP2000066894A (ja) パイプライン化浮動小数点ストア
EP0010196B1 (en) Control circuit and process for digital storage devices
JP2643087B2 (ja) プログラム処理方法及びコンピュータ・システム
US7237096B1 (en) Storing results of producer instructions to facilitate consumer instruction dependency tracking
US4991130A (en) Normalization control system for floating point arithmetic operation
JP3278441B2 (ja) ベクトル処理装置
JP2824484B2 (ja) パイプライン処理計算機
EP0211487A1 (en) Conditional operations in computers
JPS6149695B2 (ja)
JPS6116111B2 (ja)