JPS592143A - 情報処理装置 - Google Patents

情報処理装置

Info

Publication number
JPS592143A
JPS592143A JP57112111A JP11211182A JPS592143A JP S592143 A JPS592143 A JP S592143A JP 57112111 A JP57112111 A JP 57112111A JP 11211182 A JP11211182 A JP 11211182A JP S592143 A JPS592143 A JP S592143A
Authority
JP
Japan
Prior art keywords
instruction
unit
cycle
arithmetic
execution
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.)
Granted
Application number
JP57112111A
Other languages
English (en)
Other versions
JPH0157817B2 (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 DE8383106287T priority patent/DE3378932D1/de
Priority to EP83106287A priority patent/EP0097956B1/en
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)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Nonlinear Science (AREA)
  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 本発明は、情報処理装置における処理の高速化を可能に
する演算制御方式に関するものである。
従来技術 情報処理装置の高速化を実施する手段として、情報処理
装置内で行なうオペレーションにt適な演算器を複数設
置する方式がある。第1図はその一例を示したもので、
■は命令を解読する命令ユ= ツl− ( Iユニット
)、2は命令およびデータを貯蔵する記憶ユニット、8
は命令で指定された演算を実行する演算ユニットである
。こXで、ICユニット8は更に2つの部分より構成さ
れる。すなわち、浮動小数点命令を高速実行すべく最適
化した浮動小数点ユニット(Fユニット)4と、浮動小
数点命令以外の演算命令(固定小数点命令、1(]進命
令など)を実行する一般の演算ユニット(Gユニット)
5より成る。実際上、Gユニット5でも浮動小数点命令
を実行することは可能であるが、高速処理は不可能であ
るだめ、該浮動小数点命令を高速に実イ1ずべく、専用
のFユニット4をGユニソト5とは別に設置するのであ
る。なお、処理装置の高速性より経済性を重視する装置
では、■パユニット手は設置しない。
上記Fユニットの設置により浮動小数点命令が最適化さ
れる模様を、浮動小数点加減算命令を例にとって第2図
、第8図により説明する。
第2図はGユニットのデータ構成図である。同図に於い
て、6,7,8.9  はGユニットのワークレジスタ
であり、演算途中のデータが保持される。
1lはバイト加算器であり、1バイト巾の加減算を行な
う。12は並列加算器であり、演算器のデータ幅分(例
えば、8バイト)の加減算を一度に行なう。18はシッ
クである。10は入力データ選択回路であって、ワーク
レジスタ上のデータを各演算器に導く。■4は出力デー
タ選択回路であって、各演算器の演算結果を選択して、
ワークレジスタ6, 7, 8. 9に戻す。この演算
器でワークレジスタの内容を演算し、演算結果をワーク
レジスタに戻すのに1サイクルを要するとする。
さて、浮動小数点加減算命令を考える。浮動小数点加減
算命令の実行は、次の4つのオペレーションよりなる。
(:) 2つのオペランドの指数部の比較を行なう。
(11)指数部の比較により小さいオペランドを大きい
オペランドに桁合わせすべく、仮数部を右にずらす(こ
れを、プリシフトと呼ぶ)。
011)桁合わせした仮数部の加減算を行なう。
aV+  仮数部の結果の先頭0の数を調べ、仮数部の
先頭に無効な0がこないよう仮数部を左に桁移動し、桁
移動した分だけ結果の指数部を補旧する(これを、ポス
ト・ノーマライズと呼ぶ)。
第2図の構成にて上記動作を行なうには、演算器を4回
使用する必要がある。すなわち、オペランドデータがワ
ークレジスタ6まだは7に用意されると、第1のサイク
ルにてバイト加算器l1を用いて指数部を比較する。第
2サイクルでは、指数部の比較結果により、小さいオペ
ランドの仮数部のシフト(プリシフト)をシフタl8を
用いて行なう。第3サイクルでは、並列加算器12によ
り仮数部の加減算を行なう。第4サイクルはポスト・ノ
ーマライズのためのサイクルであり、指数部の補正がバ
イト加算器11で、仮数部の桁移動がシフタ13にて行
なわれる。
次に、浮動小数点加減算命令をFユニット内の最適化さ
れた演算器で実行する場合を考える。第3図は最適化さ
れた浮動小数点加減算器である。
第3図において、2つの浮動小数点データオペランドが
、ワークレジスタ15.16に設定される。
第1のサイクルにて、比較器17によりオペランドの大
小が比較され、この比較結果により、小さい方のオペラ
ンドの仮数部をプリシフタ18’jたば19で移動して
桁合わせする。第2のサイクルにて、桁合わせした仮数
部を並列加算器20で加減算する。第8のサイクルでポ
ス]・・ノーマライズを行なう。すなわち、指数部の補
正をバイト加算器22で、仮数部の桁移動をシフタ21
で行なう。
以上のように、浮動小数点加減算命令の実行は、第2図
の汎用演算器では4サイクルかかるのに対し、第8図の
浮動小数点加減算器では3サイクルですむことになる。
従来技術の問題点 以上述べてきた様に、処理装置内のオペレーションに最
適な演算器を設置することにより、装置の処理性能を向
上させることができる。なお、第1図のFユニット手内
には、第3図の浮動小数点加減算器の他に、高速乗除算
器等を含む。
いま、Fユニットの動作を第3図の浮動小数点加減算器
を例にとって考えるに、該浮動小数点加減算器は、浮動
小数点加減算命令を3マシンサイクルで実行するもので
あった。この377ンザイクルをFEA、 FEB、 
FEc  と区別する。すなわち、FEAは浮動小数点
加減算命令の桁合わせサイクルであって、バイト加算器
17とプリシフタ18.19を使用する。
FE Bは仮数部の加減算サイクルであって、並列加算
器20を使用する。
Fl!: cはポスト・ノーマライズサイクルであって
、バイト加算器22とシフタ21−を使用する。
したがって、浮動小数点加減算命令実行時、第8図内の
各演算回路は3マシンサイクルの内1回しか使用されな
い。
このことに着目して、浮動小数点加減算命令が連続して
発生した場合、Fユニット内で周知のパイプライン処理
を行ない、各演算回路を並行して同時に動作させること
により、命令の処理性能を上げることができる。これを
第4図および第5図により説明する。
第4図は、連続する浮動小数点加減算命令が、Fユニッ
トで演算パイプラインなしに実行される様子を示したも
のである。この場合、Fユニットでは第1の命令が完全
に終了するのをまって、第2の命令が実行されるので、
連続する2つの浮動小数点命令の処理が終了するのに6
マシンサイクルを必要とする。
第5図は演算パイプラインを行なった場合の様子を示す
。この場合、第1の命令が開始され、■マシンサイクル
後に第2の命令が起動される。更に、それから1マシン
サイクル経過すると、第3の命令が起動される。かくて
、5マシンサイクルの間に3つの浮動小数点加減算命令
を実行することができる。
以上述べた様に、情報処理装置内で行なうオペレーショ
ンに最適な演算ユニットを設置すると、オペレーション
の実行サイクルの短縮という面の他に、同一演算ユニッ
トでのパイプライン処理ということを実施することによ
り、性能向上をはかれる可能性がある。
ところで、従来の情報処理装置では、最適な演算ユニッ
トヲ設置してオペレーションの実行サイクルを短縮する
ことは良く行なわれているが、同一演算ユニット内のパ
イプライン処理は実施されていない。これは、情報処理
装置内に用意される命令の処理上の規約が、パイプライ
ン処理を実施した場合守りきれなくなるからである。命
令の処理上の規約とは、具体的にいうと、ストレッジ上
に貯蔵されている命令は、貯蔵されている順番に取り出
し、その順番に実行されなければならないということで
ある。ストレッジ上の命令の順番は、ストレッジアドレ
スを以って管理される。通常の命令を読み出すと、次の
命令はその直後から書き込まれている。命令の順番をプ
ログラムが変えたいときは、命令配列の中に分岐命令を
用意し、分岐命令のオペランドとして次の命令を指し示
すことができる。
演算ユニット内で、パイプライン処理を行なった場合、
命令処理上の規約、すなわち命令の逐次処理が守りきれ
ないというのは、処理装置上で用意された命令の実行サ
イクルが異なるということに起因する。すなわち第5図
に示したように、浮動小数点加減算命令が連続したとき
演算パイプラインができれば、処理性能の向上すること
が明らかであるが、Fユニット内で処理する8令が常に
3マシンサイクルで終了するとは限らない。Fユニット
内の浮動小数点レジスタにストレッジ−4二のデータを
格納するロード命令の実行は1サイクルで終了する。ま
た、浮動小数点乗除算命令は加減算命令より多くの実行
サイクルを必要とする。
Fユニット内で実行するサイクル数が、命令によって異
なるということは、演算パイプラインを実施した場合、
命令の逐次処理の原則との矛盾を発生させる。
第6図は演算パイプラインを実施した場合に生じる命令
の逐次制御違反を説明する図である。第6図に於て、第
1の命令として浮動小数点加減算命令の実行の次に、第
2の命令として浮動小数点レジスタへのロード命令を行
なう場合を考える。
演算パイプラインにより、第1の命令のF E oサイ
クル実行時、浮動小数点レジスタ・ロード命令の実行サ
イ、クルが行なわれるが、これは1ザイクルで終了して
しまう。今、浮動小数点加減算命令で、その演算の実行
結果としてオーバーフロー例外割り込みが発生したとす
ると、次の浮動小数点レジスタ・ロード命令の実行前に
割り込まなければならない。これが命令の逐次制御の原
則である。ところが第6図の場合、第1の命令である浮
動小数点加減算命令はFEcザイクルでオーバーフロー
例外を検出するが、この時点では、次の第2の・命令で
ある浮動小数点ロード命令が終了しており、この結果、
逐次制御の原則が崩れてしまpoなお、第6図に於いて
、第2の命令がG゛ユニツト行なう1ザイクルの命令で
あっても事情は同じである。
発明の目的 本発明の目的は、命令の逐次制御の原則を崩すことなく
、演算ユニット内のパイプライン制御部を可能とし、以
って処理性能を向上せしめることにある。
本発明の場合、演算ノ、クイプラインを行なう演算ユニ
ットでは、あらかじめ演算パイプラインを行なう実行サ
イクル数を定める。このパイプライン実行サイクル数よ
り多くの実行サイクル数を必要とする命令は、実行サイ
クルの残りサイクル数がパイプライン実行サイクル数に
達した時点で後続命令の実行開始を許可する。パイプラ
イン実行サイクル数より短かい命令は、オペランド更新
サイクルをパイプライン実行サイクル数と同等になる壕
で遅延させる。これにより先行命令で割り込みが生じた
とき、後続命令によりオペランドが更新されるのを防ぐ
。また、オペランド書き込みまでのサイクル数を遅延さ
せた命令に対し、その結果を使用する命令がオペランド
に演算結果が書き込まれるのを待たずして、処理を開始
できる様なデータ迂回手段を設ける。
さらに、演算パイプラインを実施しだ演算ユニットと実
施しない演算ユニットの命令実行があい前後した場合、
命令の逐次制御の原則を崩さないように、2つの演算ユ
ニットの実行がオーバーラツプしない様装置する。この
制御のため、演算パイプライン可能演算ユニットのパイ
プラインサイクル数がNライン・ルのとき、N種の命令
終了α言信号が用意される。演算パイプライン可能/j
fXユニットは命令に応じてN種の命令終了宣言を発行
できる。N種の命令終了α言は次の意味を持つ。
すなわち、演算パイプライン可能演算ユニット処理命令
は、どの命令終了α言があっても次サイクルから実行開
始可能である。また、N種の命令は、命令終了は言の・
同サイクル後から演算パイプライン不能ユニットの開始
が可能であるかを指示する。
演算不能ユニットの命令終了宣言には唯一種が割り当て
られ、それは全ての命令が次サイクルから命令可能とす
る命令終了α蕗が割り当てられる。
演算パイプライン可能ユニットでは、命令終了宣言から
Jサイクル後にその命令実行による割り込みを全て検出
できる場合、N種の内、J+1サイクル後に演算パイプ
ライン演算ユニットの実行開始を可能にできる終了宣言
を命令に応じて割り当てる。
発明の実施例 第7図は本発明の一実施例で、Fユニットに演算パイプ
ラインを実施した場合の構成例を示す。
第7図に於いて、24は浮動小数点レジスタ(以下FP
Rと記す)、25は浮動小数点加減算器、26は浮動小
数点乗除算器である。27は浮動小数点レジスタ24の
内容をストレッジに貯蔵する場合のストアデータレジス
タであるとともに、マシンチェックリトライにそなえ、
更新されるFP几24の実行前のデータがセットされる
レジスタである。ストアデータレジスタ27の内容は、
ストア命令時にストレッジに送付される。29は退避レ
ジスタであり、演算命令のとき、ストアデータレジスタ
27を介して、命令実行前のFPR。
24の内容が退避される。信号線100はストレッジか
らのオペランドデータを送付するインタフェースであり
、FPR24ヘストレツジ上のデータをロードする命令
、または、ストレッジ上のデータとFPR24との演算
を行なう命令実行直前に、ストレッジオペランドをスト
レッジより送付するものである。信号線100のデータ
はマルチプレクサ31を介して浮動小数点加減算器25
、まだは\ 浮動小数点乗除算器z6に供給される。FF’■24の
出力もまた、マルチプレクサ80.31を経由して命令
開始時に2つの演算器25.26に送られる。浮動小数
点加減算器25の演算結果は信号線102に、浮動小数
点乗除算器26の演算結果は信号線101に、それぞれ
送出される。信号線1.01と信号線102上の演算結
果はFPR24に送りこまれ、格納される。このFPR
24,への格納は、実行サイクル終了後の次のサイクル
で行なう。
第5図から明らかであるように、浮動小数点加減算器2
5はFEA、 FEB、 F’ECの3サイクルの後、
信号m102に演算結果をのせるが、Ii”PR,24
への書き込みは、その後の1サイクル、すなわち、第4
図で言えば2番目の命令のFBAサイクルとオーバーラ
ツプすることになる。
今、Fユニットで2つの浮動小数点命令を連続して実行
する場合を考える。この場合、第1の浮動小数点命令の
演算結果を格絡したFPR24が第2の命令の入力オペ
ランドとすると、第1の命令の演算結果をFP几z4に
書き込んだのち、ここから第2の命令のためにデータを
読み出すと、第2の命令の実行は第4図の状態より1サ
イクル遅れることとなる。このため、第1の命令の演算
結果をFP几24を経由することなく演算器25゜26
に戻し、第1の命令のFEcサイクル実行後、直ちに第
2の命令が開始できる様に、第7図においては、信号線
101,102の演算結果を直接マルチプレクサ80.
81に入力するパスが設けられている。これはオペラン
ド・ラップ・アラウンド・パスと呼ばれ、すでに周知で
ある。すなわち、本発明は第5図のように、Fユニット
内で演算パイプラインを実行できるようにするものであ
るが、このように、直前の命令の演算結果が次命令の入
力オペランドとして使用される場合は、第4図のように
、従来通り動作させる。
さて、本発明は演算パイプラインを実施するに当り、パ
イプラインの実行サイクルの長さを定める。第7図の実
施例では、浮動小数点加減算器25が実行するに必要と
する長さを実行サイクル数とする。つまり、Fユニット
内で必要とする実行サイクル数が3サイクル以下の命令
は、■サイクルピッチで実行を開始し、8サイクル後に
1サイクルピツチで終了して行く。Fユニット内で実行
サイクル数が3サイクル以上かかる命令を処理する場合
は、最後の2サイクルの間、演算パイプラインを実行で
きる。
第8図はFユニット内のパイプラインサイクル長より長
い実行サイクル数を要する命令に対する本発明のパイプ
ライン制御を説明する図である。
第8図において、第1の命令は6実行サイクル要したと
すると、最初の8サイクルに対しては、演算パイプライ
ン処理は全く許されず、4サイクル目がFEAサイクル
に対応する。とのFEhサイクルは、次サイクルに、次
の命令の実行を開始して良いという宣言を行なうサイク
ルである。Fユニット内で・実行中の命令がFEAEC
サイクルすると、次サイクルで次命令をFユニットが実
行可能であるという信号を発生する。これを以後EOF
A(End of Fu、nit class A )
  信号と呼ぶ。E OFA倍信号でたとき、Fユニッ
トは次命令の実行を行なうに必要なデータ、制御信号を
Iユニット(第1図の1)から受は取る。EOFA信号
は、また■ユニットに送付される。■ユニットはEOF
A信号を受けとると、Fユニットが次命令の実行に必要
な情報を受は取ったことを知るから、更に後続の命令を
演算ユニットに供給すべく動作を進める。
Fユニット内で実行する命令は命令ごとに実行サイクル
が異なるが、ある命令に着目すると、■パユニット内の
実行サイクル数を一定とするととができる。それゆえ、
実行サイクルが小サイクル以上かかる命令では、後ろか
ら3サイクル目にFEAECサイクルっまりEOFA信
号が発生する様組み込んでおけばよい。
なお、第8図に於いて、第1命令のFEAECサイクル
に、前に持って行くことは好ましくない。
もし、そうすると、第1命令の演算実行の終了サイクル
と、それ以降の命令の演算実行の終了サイクルとが、命
令の指定順序の通りとならず、逐次制御の原則を崩して
しまうからである。
次に、Fユニットのパイプラインの長さを3サイクルと
すると、■サイクルで終了してしまう様な命令には特殊
な対策を要す。具体的には、ストレンジ上のデータをF
P凡24に格納する命令がこれにあたる。この種類の命
令に対し、実行サイクルを1サイクルしか割り当てない
と、先行命令で割り込みが発生したとき、後続命令の演
算結果のオペランドが書きかわってし捷うという現象を
発生し、逐次制御の原則を崩すことになる。
本発明の実施例では、逐次制御の原則を守るため、Fユ
ニットの実行サイクルは、全て3サイクル必要となる様
に構成する。Fユニットが2サイクル以下で処理を完了
してしまうものには、ストレッジ上のデータをFPRに
格納したり、または、あるFPR,の内容を別のFPR
に移すロード系の命令と、FPR,の内容をストレッジ
に書き込むストア命令が対象となる。ロード系の命令に
は、入力オペランドデータの補数をとって格納するもの
、正数として、乃至は負数として格納する命令を含む。
これらロード系の命令は、実行サイクルが3サイクルと
なるように、浮動小数点加減算ユニットにて実行する。
ストア命令に対する逐次制御の保証は後述する。
以下では、まず第9図と第10図により、ロード系命令
を8サイクルに遅延させる実施例を示す。
ついで第11図により、4サイクル以上の実行サイクル
を必要とする命令におけるFEAECサイクルつまIJ
EOFA信号の発生の具体例を示す。
第9図は改良された浮動小数点加算器の構成例、つまり
第7図の25の部分の詳細図である。第9図において、
18.19は桁合わせのためのシフタ、20は仮数部の
加減算のだめの並列加算器、21はポスト・ノーマライ
ズ用7フタである。浮動小数点加減算を実施するには、
指数部の演算を行なうだめの第3図に於けるバイト加算
器17及び22が必要であるが、第9図では省略しであ
る。
データレジスタ15には第7図のマルチプレクサ80の
出力が、データレジスタ16には、第7図のマルチプレ
クサ81の出力が接続される。
ロード系の命令実行時、FPRに格納されるべきデータ
はレジスタ16に現われる。又、ロード系命令の実行時
、FEAECサイクル符号変換回路32を介してデータ
レジスタ8Bにデータをセットする。符号変換回路82
は、命令の種類に応じて符号を変換する機能をもつもの
である。FEBザイクルにて変換後のデータがデータレ
ジスタ34に移される。FECサイクルにてデータレジ
スタ84のデータをマルチプレクサ85を介して信号線
102にのせる。
従来、ロード系命令は符号変換回路の出力を直ちにマル
チプレクサ35にのせ、■サイクルで実行していたが、
本発明ではレジスタ33.34を追加することにより、
演算結果の送出を2サイクル遅らせるのである。これは
逐次制御の原則を守つて演算パイプラインを容易ならし
めるためである。
上記の処置により、逐次制御の原則を守って演算パイプ
ラインを行なうことが可能になったが、ロード系命令の
演算結果を、次の命令で入力データオペランドとして使
用するとき、性能低下をひきおこす危険性がある。これ
は、信号線102上に演算結果がのるのが従来より2ザ
イクル遅延するだめ、第7図で説明した信号線102か
らマルチプレクサ80.81に直結させたオペランド・
ラップ・アラウンド・パスを使っていては、■サイクル
後に次命令を開始できなくなるからである。このため、
新たなラップ・アラウンド・パス1−03と104が用
意される。
第9図に示すごとく、lO8は符号変換回路82及びデ
ータレジスタ8Bの出力がマルチプレクサ36を介して
接続され、この出力は第7図に示すごとくマルチプレク
サ30に結ばれる。同様に、レジスタ33と34の出力
は、マルチプレクサ87を介して信号線104に出力さ
れ、信号線104−ド系命令の直後に、その実行結果を
必要とする命令が現われたとき、マルチプレクサ36も
しくは37は符号変換回路32のデータを出力する。
ロード系命令の2サイクル後に実行を開始する命令が、
演算結果を必要とする場合は、データレジスタ88が信
号線103または104にのる。すなわち、マルチプレ
クサ86.87及び信号線103゜104の設置により
、ロード系命令の実行サイクルの遅延による性能劣化の
問題は解決する。
第10図は演算パイプラインを実施した場合のデータの
オペランド・ラップ・アラウンド制御を説明するだめの
論理構成図である。第10図では、ロード系命令のため
に新設された第9図の信号線103 、 104!の開
山1と、浮動小数点加減算命令乃至は乗除算命令の直後
、もしくはその後の2サイクルの間に、その演算結果を
使用する命令が出現した場合、現在の命令の実行結果が
求まるまで、演算結果使用命令の実行を遅らせる制御部
分を含んでいる。
第10図において、信号線105は、第1図の1ユニツ
ト1から命令開始直前サイクルに、これから実行する命
令の演算結果を格納するFPR,のアドレスが送られて
くるインタフェース線である。
AiJ記アドアドレスこれから実行しようとする命令の
実行開始lサイクル前にレジスタ88にセットされ、そ
の出力は、FP几24(第7図)に送られ、指定された
FPRの内容をマルチプレクサ30に送出するのに用い
られる。
一方、レジスタ89.40はFユニットで実行中のロー
ド系命令の演算結果格納FPRアドレスを記憶する。ロ
ード系命令のFEAサイクル開始時、39内にレジスタ
88の内容が保持される。同時に、■ビットを”■”と
するように、信号線106にロード系命令直前にパルス
がのる。レジスタ39のVビットはFEAサイクルの間
”1′となる。ロード系命令のFEBサイクルが開始さ
れると、レジスタB9のvビットとレジスタアドレスは
、それぞれレジスタ40に移される。信号線106は、
ロード系命令以外では、FEAサイクルの開始直前にパ
ルスがのらない。したがって、レジスタ39のVビット
が”1″なら、レジスタ89のレジスタアドレスに対応
するロード系命令がFEAサイクルにあることを意味す
る。レジスタ40も同様にロート系命令がFEBザイク
ル□にあるとき、Vビットが”1″であるとともに演算
結果格納FP)(、アドレスを保持する。
レジスタ41.42.43はそれぞれpJ、FEB。
FEcサイクルに対応する。現在、Fユニットで実行中
の命令がFPR,に演算結果を格納する命令であるとき
、その格納FP几アドレスを保持する。
信号線107は、次にFEAサイクルに入る命令がFP
Rを更新する命令であるときパルスをのせ、p EAサ
イクル開始時、レジスタ41のVビットを”1“にする
。信号線108は、浮動小数点乗除算器(第7図の26
)を使用する命令であるとき”1″となり、FEAサイ
クルを開始するとき、レジスタ41のMビットが”1″
になる。かくて、レジスタ41は、Vビットが”1”の
とき、FEAサイクルで現在実行中の命令が、演算結果
をFPf(に格納する命令であることを示し、その格納
F P f(、を保持するとともに、Mビットが”0”
のとき浮動小数点加減算器(第7図の25)が動作中、
Mピットが”■”のとき浮動小数点乗除算器(第7図の
Z′6)が動作中であることを示す。レジスタ41の内
容は、FEBサイクルが開始するとレジスタ42に移さ
れる。レジスタ42の内容は FECサイクルが開始す
るとレジスタ43に移される。
レジスタ89の内容は比較器44に、レジスタ40の内
容は比較器45に入力される。比較器44.45には、
もう一方の比較入力として、レジスタ38の内容が入力
される。比較器44は、現在FE Aサイクルで実行中
のロード系命令と次に命令を開始しようとしている命令
の演算結果FP1(、アドレスを比較する。該比較器4
4は、レジスタ89内のFPRPドレスとレジスタ88
内のFPl(アドレスが一致し、かつ、レジスタ39の
Vビットが”1”のとき、出力信号線110を”1″と
する。信号線110は、マルチプレクサ36(第9図)
とマルチプレクサ30(第7図)に接続され、マルチプ
レクサ36をして符号変換回路82を出力し、マルチプ
レクサ30をして信号線108を出力することを指示す
る。
比較器45はレジスタ40とレジスタ88の内容を比べ
、ロード系命令開始後2サイクル目でロード結果を必要
とする命令がきたときのラップ・アラウンド・パスを制
御するものである。すなわち、比較器45で一致がとれ
、このとき比較器44で一致がとれていないときは、信
号線109を”■”とする。信号線109は信号線11
0と同様に、マルチプレクサ36(第9図)とマルチプ
レクサ30(第7図)に接続され、ここでレジスタ38
と信号線103を出力するように働く。なお、比較器4
4で一致がとれたとき、信号線109は”1′°となら
ない。これは、ロード系命令が2つ連続した場合の命令
の処理順番を保証するためである。
上記比較器44と比較器45はマルチプレクサ36とマ
ルチプレクサ80を制御するものであるが、命令によっ
ては、FPRから2つのデータ入力を必要とするものが
あり、したがって、マルチプレクサ37(第9図)とマ
ルチプレクサ81(第7図)を制御する論理回路が必要
となる。このだめには、もう一方のFPR,を読み出す
だめのアドレスが命令開始直前に1ユニツトから送付さ
れることを利用して、このアドレスとレジスタ39、レ
ジスタ40の内容とを比較する回路を比較器44.45
と同様に設置すればよい。
次に比較器46.47.48の動作を説明する。比較器
46.47は、レジスタ41とレジスタ42と、レジス
タ88の結果を比較する。比較器46は、レジスタ41
内のFP几子アドレスレジスタ38の内容が一致し、か
つレジスタ89のVビットが0″でレジスタ41の′■
ビットが1”のとき、) 出力を”1″とし、信号線118を“1nとする。比較
器46の動作は、現在FEAサイクルで実行中の命令が
ロード系命令以外の演算結果をFPRに格納する命令で
あり、その結果を次に開始しようとしている命令が入力
として必要としていることを検出していることとなる。
比較器47も、46と同様、FEBサイクルで実行中の
ロード系命令以外の演算結果を次サイクルで実行を開始
しようとしている命令が必要としていることを検出し、
信号線113を”■”にする。信号線118が°“1”
となると、次命令の実行開始を1サイクル遅らせる様に
働く。
比較器48はFEcサイクルを管理し、レジスタ43と
レジスタ88の内容を比べる。該比較器48は、レジス
タ48のアドレス部とレジスタ38が一致し、かつ、レ
ジスタ48のVビットが”■”のとき、出力を“1”と
する。比較器48で一致がとれると、レジスタ43のM
ビットが1°°なら信号線111に、Mピットが“0″
なら信号線112を”1″とする。信号線111と11
2はマルチプレクサ30(第7図)に接続され、信号線
111はマルチプレクサ30をして浮動小数点乗除算器
(第7図の26)の出力結果101を出力する機作用す
る。
信号線11.2は浮動小数点加減算器(第7図の25)
の出力結果102を出力する機作用する。
以上まとめると、レジスタ41.42及び比較器46,
4?は、後続命令が現在実行中の演算結果を後続命令が
必要としている場合、演算結果が得られるまで、後続命
令の実行開始を遅らせるための検出に用いられる。レジ
スタ48と比較器48は、演算実行最終サイクルにてそ
の結果を後続命令が必要としていることを検出し、マル
チプレクサ80をしてラップ・アラウンド動作をおこな
わせるだめのものである。
レジスタ89と40で考慮した様に、FPRがら2つの
入力データ入力を必要とするものがあるゆえ、第2のF
P几子アドレス比較されるべき比較器を比較器46.4
7.48と同様に用意する必要がある。この場合、比較
器の入力は46.Φ7.48に応じてレジスタ41とレ
ジスタ89のVピット、レジスタ42とレジスタ40の
Vビット及び、レジスタ48とを一方の入力とし、他方
を第2のFPR,アドレスとすればよい。比較器46.
47に対応する比較器は、第10図の信号線113と論
理和かとられ、後続命令の実行開始を遅らせる様に働ら
き、また比較器48に対応する比較器は、マルチプレク
サ81をして、信号線101,102を直接出力すべき
制御信号を発生せしめる様に動作す次に、Fユニット内
で4サイクル以北が5る命令に対して、実行終了の8サ
イクル前にFEAザイクル、したがって、EOFA信号
を発行する論理について説明する。第11図及び第12
図はその構成例である。
第11図は■ユニット内に設置されるFユニッされる。
論理回路54はレジスタ53の出力を入力として、これ
をデコードし、出力レジスタ55にセットする。論理回
路54は、レジスタ5Bの内容、即ち命令コードによっ
てアドレスされるメモリー素子であっても良い。命令解
読ユニットにて、Fユニットで実行すべき命令を解読し
た場合、命令コードをレジスタ5Bにセットし、論理回
路54の動作結果をレジスタ55に出゛力する。論理回
路54の内容は、Fユニットで実行される命令の実行サ
イクル数を命令対応に出力するというものである。具体
的には、Fユニットの動作がFbA +FEB、FEc
の3サイクルで終了してしまうものは0”を、4ザイク
ルで終了するものは1″を、という具合に[Fユニット
実行数−8サイクル」の値を2進コードで出力する。
レジスタ55の出力はインタフェース線127 ヲ介し
て、第12図のレジスタ56に接続される。
ここで、第12図はFユニットのFEAサイクル検出論
理機構であり、レジスタ56は、実行中の命令が後、何
サイクルでFEAザイクルになるかを示す実行サイクル
保持ラッチ、57はlサイクルに”1″ずつ減算するデ
ィクリメンタ、58は”0”検出回路である。インタフ
ェース線128は後述する様に、予想実行サイクルより
早く(または遅く)実行を終了してしまう場合に、Fユ
ニットの演算器より強制的に実行サイクル数を修正すべ
く、レジスタ56内の値を変更するに使用する信号線で
ある。
■ユニットが命令を解読し、Fユニットを起動した場合
、その起動時にインタフェース線127を介してレジス
タ56にFユニット実行サイクル数をセットする。レジ
スタ56の内容は”0”検出回路58に入力され、レジ
スタ56の内容が”0″、すなわち、これから実行する
演算サイクルがFEAサイクルであるとき、”0′検出
回路58は信号線129を”1″にしてli” E A
サイクルである“ことを装置内の各部に通知する。信号
線127は、FEAサイクルずなわち信号線129が1
1”でかつ1ユニツトがFユニットに対し演算実行の開
始を指示できる場合、レジスタ56にはインタフェース
線127の値をセットする。FE^サイクルでないか、
あるいは1、mEAサイクルであっても、■ユニットが
Fユニットに起動をかけられない場合は、通常、ディク
リメンタ57の出力をレジスタ56にセットする。
ディクリメンタ57は、レジスタ56の内容がO゛でな
い場合はl++を減じた値を出力する。レジスタ56が
”0゛の嚇合は″0パを出力する。レジスタ56は、毎
演痒サイクルごとにディクリメンタ57の出力をセット
する。かくて、Fユニットで命令を開始した後、毎実行
サイクルごとにレジスタ56の値は1”づつ減少し、0
”になったとき信号線129がnl”となり、FEAサ
イクルを知ることができる。
インタフェース線128は、■ユニットカラインタフェ
ース線127を介して送付された命令の実□行中に、実
行サイクル数を変更すべき要因を検出したとき、修正値
を送付するインタフェース線である。これは、例えば浮
動小数点乗算で、片方のオペランドが全て”0″の場合
等に発生する。
浮動小数点乗算では、入力データの正規化、出′カデー
タの正規化及び数回の乗算ループを必要とし、浮動小数
点加減算より多くの実行サイクルを必要とする。このと
き、もし入力データのどちらかが”0”であるなら、演
算結果は”0”であるから、乗算ループを行なうことな
く演算結果を知り得る。
つまり、■ユニットがインタフェースM127ヲ介して
送ってきた実行サイクル数を用いる以前に実行を終了し
てしまうことができる。この様なとき、信号線128か
らレジスタ56に”0”をセットすれば、直ちに信号線
129よりFEAサイクルを指示できることとなる。
以上により、)゛ユニット内部で演算パイプラインを行
なったとき、オペランドの、書き込みは命令の順となる
。よってFユニット内で実行中の命令で割り込みが発生
したとき、Fユニット内の後続命令の実行を停止するこ
とにより、命令の逐次制御の原則をII′ユニット内で
容易に守ることができる。
実施例の発展的説明 ところで、第1図のGユニット5は浮動小数点命令以外
の全ての命令を処理するが、その内部構成は第2図の様
に1サイクルで基本演算を終了してしまうものである。
このGユニット内で処理する命令は1〜2実行サイクル
で終了するものが多い。このときFユごットが演算パイ
プライン可能ということから、Gユニットに対し、Fユ
ニットのFEAザイクル直後にGユニット実行命令開始
を許可すると、先行するFユニット命令終了時に、後続
のGユニット命令の処理が既に終了しており、このため
逐次制御の原則に反するケースが発生し。
てしまう。
Fユニット内では、これに対処するため、実行サイクル
を最低8サイクル必要になる様にしたのであった。
ドユニットとGユニット間での命令処理で逐次制御の原
則を守るため、Gユニット内の実行サイクルが全て8サ
イクル以上とする方式も考えられるが、Gユニットの実
行結果として更新されるオペランドが、処理装置内の制
御卸レジスタ、プログラム状態語、汎用レジスタ、スト
レッジ等多種に及んでいること、さらに汎用レジスタな
どは、単にオペランドとして使用するのみではなく、オ
ペランドアドレス計算用のペースレジスタ、インデック
スレジスタとして使用される。しだがって、オペランド
の更新サイクルを遅延させ、かつ命令の処理性能をそこ
なわない様にすると、データのバイパス手段等の構成が
非常に複雑となってしまい、現実的ではない。
このだめ、EOFA信号がでたとき、次の命令が1)s
ユニットで実行する命令なら次サイクルで直ちに実行を
開始させ、次の命令がGユニット命令ならFユニット命
令の終了を待って、すなわちFEcサイクルの次にGユ
ニット命令の実行を開始できる様にする。
寸だ、周知の様にGユニットは命令実行の最終サイクル
で、次のサイクルで次命令の実行が可能であるという信
号を発行する。これをE Ol)(Erbd of Q
peration )信号と呼ぶ。GユニットがEOP
信号を発行すると、次サイクルから全ての命令が実行可
能となる。
ところで、Fユニットに於いて演算パイプラインのため
に、本来1サイクルで実行可能であった命令は、その実
行サイクルを3サイクルとしたが、この命令の後にqユ
ニット命令がくると J、11.:Aサイクルで発行す
るIB OI:” A信号によりGユニットの命令開始
は2ザイクル待たされることとなってしまう。これは、
演算パイプラインを1・゛ユニットに適用したため、性
能を劣化させることに他ならない。さて、この様な命令
は、本来1ザイクルで実行可能なものを3サイクルかか
る様にしたのだから、この命令で発生する割り込みはF
(y、サイクル、すなわち実行の第1サイクルで検出可
能である。よってFEAサイクルの直後にGユニットの
次命令を実行させても、割り込み検出後、次サイクルの
Gユニットの実行を停止させれば、命令の逐次制御の原
則を崩さずに、FEAサイクルの次にGユニット命令の
開始を可能とすることができる。
このためFユニット内で1サイクルで命令を終了するの
だが、演算パイプラインを実施するだめ8サイクル化し
た命令は、FEAサイクルでEOFA信号のかわりにE
OP信号を発行するようにすればよい。
Fユニット内で実行する命令で2サイクルで終るのだが
、演算パイプライン化のだめ1サイクル実行をのばし、
3ザイクルとする命令も一般には存在する可能性がある
。このような場合は、FEcサイクルと同時にGユニッ
ト命令が開始できる様な信号を用意し、該命令のFEA
サイクルで発行させる。これをE OF B (End
、 of Funii class B)信号と呼ぶ。
以上まとめると、命令の終了宣言は次の8種類になる。
なお、一般には演算パイプラインをNマシンサイクルと
すると、命令終了宣言はN種となる。
1’−OP −Gユニット命令の最終サイクル、及びF
ユニット命令の内、本来lサイクル で終了する命令のFEAザイクルで発行。
gOFB・・・Fユニット命令の内、本来2サイクルで
終了する命令のFEAサイクルで発行。
EOFA・・・Fユニット命令の内、本来8ザイクル以
上が必要な命令のFEAサイクルで発行。
第13図は第12図のFEA検出論理機構を改良1〜で
、Fユニットで上記3種の命令終了宣言を発行できる様
にしたものである。第13図に於いて、実行サイクル保
持ラッチ56、ディクリメンタ57、”O”検出回路5
8及び■ユニットから送付される実行ザイクル数インタ
フェース線127、I=”ユニット内部からくる実行サ
イクル修正インタフェース線128の動作は第12図と
同じである。第13図中、8つのラッチ60,61.6
2があらたに追加されている。ラッチ60,61.62
は、実行中の命令がそれぞれ命令終了宣言としてEOF
A。
I′20FB、EOPのうちどれを行なうべきかを記憶
する。これらのラッチは、■ユニットからの実行サイク
ル数インタフェース線127と同様に、命令を■ユニッ
トが解読したとき、命令コードに対応してどれか1つが
”ドとなる様、■ユニットが出力する。その論理構成は
第11図と同様である。
その出力はインタフェース線181.182.183を
介して、■ユ、ニットがFユニットを起動したとき送付
され、う・ノチ60,61.62に保持される。実行中
の命令がF’EAサイクルに達したとき、”0”検出回
路58は I;’EAサイクル指示線129を”1”と
するが、この信号は60,61.62の出力と論理、頃
がとられ、FEAサイクルにて信号線114.115.
116の1つを”1”にする。かくて、FEAサイクル
に達しタトキ、HOF A指示ナラ信号m 114 K
、EOF’B指示なら信号線115に、EOP指示なら
信号線116にパルスを送出する。信号線130は、I
I′ユニットで実行中の命令が終了宣言を変更すべき要
因を検出したとき、ラッチ60,61.62の内容を修
正することを指示するものであって、信号線128が実
行サイクル保持ラッチ56の内容を修正すべくセットし
直すと、同じタイミングで更新する。
信号線130は2ビツトあり、EOP、EO,FA。
g OF Bのいずれかを指示する様に定義付けされる
。この2ビツトは、デコーダ59により、出力の内1本
のみが”1”、残りが”0″となるようデコードされる
。例えば浮動小数点乗算にて、どちらかの入力データの
”0”を検出した場合、それ以後でオーバーフロー、ア
ンダーフロー等の割り込みを検出することはないから、
ラッチ60.6]、、 62をしてその内容を”0”、
“0”、”I I+すなわち、1’、OPα言を行なう
様に修正する。
さて、Fユニットで実行する命令は、全て8種の終了−
α言すイクルの次サイクルから開始することができる。
Gユニット命令は、E′OPサイクルなら次サイクル、
EOF13信号なら1サイクル後、E OF A信号な
ら2ザイクル後から実行を開始することができる。
以上を制御するだめの実施例を第14図に示す。
図に於いて、信号線114はFユニットのFEAザイク
ルで発行するEOFA信号が、IL5はEOFB信号が
、116はEOP信号が、117はGユニットの実行終
了サイクルで発行するEOP信号がのる。
また信号線119は、■ユニットが次の命令を実行開始
するだめ必要とするデータ、制御信号をGユニット、F
ユニットへ送付可能であることを示すディレー信号がの
る。信号線119,120の内容は、いずれも■ユニッ
トから送付されるもので、それぞれ次サイクルにてGユ
ニットが動作する命令であることと、Fユニットが動作
することを指示する命令である。FユニットとGユニッ
トいずれかで動作すべきかは命令により定まるから、■
ユニットは命令コードを解読し、その結果を送出する。
第14図は以上の信号を受けて、次の命令を開始するだ
めのデータの受は取りと、Gユニット及びFユニットの
実行開始を指示すべく動作し、信号線123.124.
125  に信号を出力する。信号線123はGユニッ
トで実行する命令の動作許可、すなわち、■ユニットか
らのデータの受けとりとGユニットの命令実行開始を指
示する。信号線124はFユニットで実行する命令の動
作許可、すなわち、■ユニットからのデータの受けとり
とFユニットの命令実行開始を指示する。信号線125
は信号線12B及び124のいずれかが”1”となった
とき”1”となる信号であって、■ユニットに送られ、
送付中の次命令実行データをFユニットもしくはGユニ
ットが受けとったことを知らせる。FユニットでEOP
、EOFB、EOFAが指示され、そして、Gユニット
でBOP信号が発行されると、信号線122が”1nと
なる。このとき、もし次命令がFユニットで実行する命
令であると、レディー信号線118とFユニット動作指
令信号線120が■”であるから、信号線124が”■
”となり、次サイクルからただちに次命令が開始される
EOFAが指定されたとき、次の2サイクル間はGユニ
ット命令を開始させてはならないEOFBが指定された
場合も、次サイクルにqユニットで処理する命令を開始
させることはできない。この襖因は信号線126に現わ
れる。信号線126は、EOFA、EOFB及びEoF
Aの1サイクルデイレーであるラッチ50のいずれかが
”■”のとき”■”となる。ラッチ50は、現在Fユニ
ットのFEBサイクルで実行中の命令がEOili”A
信号発行のものであることを意味している。レディー信
号線118が1”で、Gユニット起動線119が”1”
のとき、信号線126はGユニット実行命令開始指示を
信号線123が送出しないように働く。信号線128は
、122カ″1″テかッ126 カ”0”のときのみ”
■”を送出する。信号線122は、信号線114〜11
7(D他にラッチ52が′1″のときも1”となること
を示している。
EOFA、 EOFB、EOP信号は命令実行サイクル
中に1回発行されるが、ラッチ51は、その時点で次サ
イクルの命令開始が指定されないとき、次サイクルがG
ユニット、Fユニットの命令実行開始可能状態であるこ
とを保持するラッチである。すなわち、信号線122が
”1”、っまりqユニット、Fユニット共、命令受は付
けが可能な状態だが、信号線125が”0”、すなわち
、次サイクルの命令実行開始ができない場合、ラッチ5
1がセットされ、適当なタイミングの制御の下に、この
内容がラッチ52に送られ、その次のサイクルで信号線
122を”ドにするように働く。ラッチ5■が1″とな
るのは次の場合である。■ユニットがレディー信号を送
ってとないとき、すなわち信号線118が”0”のとき
、及びE OI” A発行後2サイクルまたはEOFB
ザイクルで次命令にGユニット命令が指定されたときで
ある。これにより、GユニットとFユニット間での・命
令の逐次制御の原則を崩すことなく、Fユニットの演算
パイプラインを可能とできる。
ここで、再び第7図に戻ってレジスタ27に着目する。
レジスタ27はF’PR24の内容をストレッジオペラ
ンドに格納するとき、該当F P I(の内容をストレ
ッジに送るだめのデータレジスタである。ストア命令は
、通常、その実行サイクルはlサイクルで行なわれる。
このlサイクルの間に、Fユニット及びGユニットは記
憶ユニット(第1図の2)に対してストアリクエストを
発行し、データと他の制御情報を送付する。記憶装置内
の書込みが、命令開始から2サイクルまたは3サイクル
目、即ち、FEB、FEcサイクルに対応する時間で行
なわれるとすると、取り扱かいに注意を要する。これは
、今まで説明してきた命令の逐次制御の原則との矛盾点
を考慮する必要があるからである。もし記憶装置の書き
込みが実行開始2サイクルもしくは3サイクル目で行な
うなら、FPRをストレッジに書き込むストア命令は、
データはFユニットから発行するがGユニットで処理で
きる命令として取り扱う。即ち、先行するFユニットの
命令の割り込み条件がない時点でストア命令を発行しな
いと、記憶装置上のオペランドが逐次制御の原則を崩す
からである。この様な場合、■ユニットが該当命令をデ
コードしたとき、第14図の信号線120すなわちFユ
ニット、起動線のかわりにGユニット起動線119を”
ドとして実行開始を要求させる。こうすることにより、
信号線126の働きにより、先行命令の割り込み検出が
完了した時点で、Gユニット起動線123を介して命令
の実行開始が指示される。Gユニット起動線123は、
該命令実行開始時、GユニットではなくFユニットを起
動する様に、第11図の後段で制御することにより、’
FPRK対するストア命令をGユニット命令と同様に扱
える。
発明の効果 本発明により、情報処理装置内で、特定のオペレーショ
ンを行なう命令を扱う演算ユニットとそれ以外の全ての
命令を処理する演算ユニットを備えさせ、特定のオペレ
ーションを行なう演算ユニットの演算パイプラインを可
能とし、以って処理性能を向上させることができる。
【図面の簡単な説明】
第1図は情報処理装置の全体構成図、第2図は第1図の
一般演算ユニットの構成図、第3図は従来の浮動小数点
加減算器の構成図、第4図は演算パイプラインを実施し
ない場合の浮動小数点演算ユニツ)(Fユニット)のタ
イミング図、第5図は演jJ ハイプラインを実施した
場合のFユニットのタイミング図、第6図は演算ハイプ
ラインを実施するときに生じる命令の逐次制御違反の説
明図、第7図は本発明の一実施例で、演算パイプライン
を実施したFユニットの構成図、第8図は第7図の動作
を説明するためのタイミング図、第9図は本発明の演、
算パイプラインを実施した浮動小数点加減算器の構成例
を示す図、第10図は本発明の演算パイプラインを実施
した場合の後続命令開始制御とラップアラウンド制御論
理の一実施例を示す図、第11図は■ユニットに於ける
Fユニットの実行サイクル指定論理機構の一実施例を示
す図、第12図はFユニットに於けるFEA検出論理機
構の一実施例を示す図、第18図はFユニットに於ける
命令終了宣言発行論理機構の一実施例を示す図、第14
図はFユニット、Gユニット間の命令開始制御論理機構
の一実施例を示す図である。 ■・・・命令解読ユニット、z・・・記憶ユニット、4
・・・浮動小数点演算ユニット、5・・・一般演算ユニ
ット、24・・・浮動小数点レジスタ、25・・・浮動
小数点加減算器、26・・・浮動小数点乗除算器、27
・・・ストアデータレジスタ、29・・・退避レジスタ
。 代理人 弁理士  鈴  木     誠第1図 第2図 第3図 第5図 マシン°す゛イタ1レト□」−−1−び3−一、□”−
4”悸−−。−’4−オ第6図 冶鉾匡[口 第7図 第8図

Claims (1)

  1. 【特許請求の範囲】 (111サイクルで動作可能な演算回路をN段接続し、
    該N段の演算回路を1回ずつ動作してNサイクルで実行
    終了する命令にあっては、その実行の第1サイクルで次
    命令の演算開始を可能状態とし、演算実行サイクルがN
    −1−1サイクル以上か\る命令では、演算終了のNサ
    イクル前で次命令の演算開始を可能状態として、最大N
    個の演算を同時に実行せしめることを特徴とする演算制
    御方式。 (2、特許請求の範囲第1項記載の演算制御方式におい
    て、演算結果がN段の演算回路の途中の段で判明する命
    令に対し、演算結果が確定する演算回路の段とそれ以後
    N段目に至る各段の演算回路から第1段の演算回路の入
    力部に至る複数の迂廻手段を各段ごとに設け、命令実行
    中にその演算結果を演算のために必要とする後続命令が
    指定された場合、該後続命令が必要とする演算結果の第
    1段目の演算回路への転送路を、前記複数の迂廻手段の
    中から実行状態に応じて選択することを特徴とする演算
    制御方式。 (3)処理すべき命令の内、第1の複数の命令群を実行
    する第1の演算ユニットと、該第1の演算ユニットで処
    理する以外の命令を処理するが、同時にはl命令の実行
    のみを行なう第2の演算ユニットと、命令を解読し、前
    記2つの演算ユニットに必要なデータと制御情報を送出
    する命令解読ユニットとを具備してなる情報処理装置に
    おいて、前記第1の演算ユニットは、■サイクルで動作
    可能な演算回路をN段接続し、該N段の演算回路を1回
    ずつ動作してNサイクルで実行終了する命令にあっては
    、その実行の第1サイクルで次命令の演算開始を可能状
    態とし、演算実行サイクルがN+1サイクル以上か\る
    命令では、演算終了のNサイクル前で次命令の演算開始
    を可能状態とする構成とし、しかも、現在実行中の命令
    より後の命令が該第1の演算ユニットで実行する命令な
    ら次サイクルから命令開始可能であり、後の命令が第2
    の演算ユニットで実行する命令ならJサイクル後(1<
    J <N )で実行開始可能であることを識別できる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 情報処理装置
DE8383106287T DE3378932D1 (en) 1982-06-29 1983-06-28 Arithmetic system having pipeline structure arithmetic means
EP83106287A EP0097956B1 (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 true JPS592143A (ja) 1984-01-07
JPH0157817B2 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)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63273134A (ja) * 1987-04-10 1988-11-10 タンデム コンピューターズ インコーポレーテッド マクロ命令パイプラインを用いてマイクロ命令を変更する方法及び装置
US5548736A (en) * 1991-03-14 1996-08-20 Fujitsu Limited Method and apparatus overcoming delay introduced by instruction interlocking in pipelined instruction execution

Families Citing this family (37)

* 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
WO1988006308A1 (en) * 1987-02-10 1988-08-25 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
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
AU1933788A (en) * 1987-08-20 1989-03-09 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
EP0365322A3 (en) * 1988-10-19 1991-11-27 Hewlett-Packard Company Method and apparatus for exception handling in pipeline processors having mismatched instruction pipeline depths
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
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
US6988154B2 (en) 2000-03-10 2006-01-17 Arc International 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
JPS5710872A (en) * 1980-06-25 1982-01-20 Fujitsu Ltd Instruction control device
JPS5710875A (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
JPS5710872A (en) * 1980-06-25 1982-01-20 Fujitsu Ltd Instruction control device
JPS5710875A (en) * 1980-06-25 1982-01-20 Fujitsu Ltd Instruction control device

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63273134A (ja) * 1987-04-10 1988-11-10 タンデム コンピューターズ インコーポレーテッド マクロ命令パイプラインを用いてマイクロ命令を変更する方法及び装置
US5548736A (en) * 1991-03-14 1996-08-20 Fujitsu Limited Method and apparatus overcoming delay introduced by instruction interlocking in pipelined instruction execution

Also Published As

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

Similar Documents

Publication Publication Date Title
JPS592143A (ja) 情報処理装置
US4740893A (en) Method for reducing the time for switching between programs
EP0381471B1 (en) Method and apparatus for preprocessing multiple instructions in a pipeline processor
US5860000A (en) Floating point unit pipeline synchronized with processor pipeline
US4745547A (en) Vector processing
US5596733A (en) System for exception recovery using a conditional substitution instruction which inserts a replacement result in the destination of the excepting instruction
EP0213842A2 (en) Mechanism for performing data references to storage in parallel with instruction execution on a reduced instruction-set processor
JPS59114641A (ja) 割込処理装置
EP0394165A2 (en) Overlapped execution of sequential instructions from a common stream in multiple processors
JPH07281896A (ja) 情報処理装置
JPH04275628A (ja) 演算処理装置
JPH03116235A (ja) 分岐処理方法及び分岐処理装置
JP2834292B2 (ja) データ・プロセッサ
US6131158A (en) Data processing system capable of executing groups of instructions, including at least one arithmetic instruction, in parallel
JPS6015746A (ja) デ−タ処理装置
US4562538A (en) Microprocessor having decision pointer to process restore position
US5097407A (en) Artificial intelligence processor
JPS6351287B2 (ja)
KR0133237B1 (ko) 다중 실행장치 처리시스템 상태의 선택적 저장방법 및 시스템
US4385365A (en) Data shunting and recovering device
US4773035A (en) Pipelined data processing system utilizing ideal floating point execution condition detection
EP0094535A2 (en) Pipe-line data processing system
US5903479A (en) Method and system for executing denormalized numbers
JP3336987B2 (ja) パイプライン化浮動小数点ストア
US7237096B1 (en) Storing results of producer instructions to facilitate consumer instruction dependency tracking