JPH0567971B2 - - Google Patents

Info

Publication number
JPH0567971B2
JPH0567971B2 JP2099455A JP9945590A JPH0567971B2 JP H0567971 B2 JPH0567971 B2 JP H0567971B2 JP 2099455 A JP2099455 A JP 2099455A JP 9945590 A JP9945590 A JP 9945590A JP H0567971 B2 JPH0567971 B2 JP H0567971B2
Authority
JP
Japan
Prior art keywords
instruction
instructions
coprocessor
main processor
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.)
Expired - Lifetime
Application number
JP2099455A
Other languages
English (en)
Other versions
JPH02294830A (ja
Inventor
Josefu Biikomu Toomasu
Dagurasu Buraun Jefurii
Robaato Fuanku Maaku
Aren Hirukaa Sukotsuto
Gai Yangu Danieru
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH02294830A publication Critical patent/JPH02294830A/ja
Publication of JPH0567971B2 publication Critical patent/JPH0567971B2/ja
Granted legal-status Critical Current

Links

Classifications

    • 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/3877Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)
  • Hardware Redundancy (AREA)

Description

【発明の詳細な説明】 A 産業上の利用分野 本発明は電子データ処理、更に詳細に説明すれ
ば、単一のストリーム中の異なるタイプの命令を
並行的に実行する密結合されたメイン・プロセツ
サ及びコプロセツサを有するデータ処理システム
に関する。
B 従来の技術 一定のレパートリの命令を有するシステムを提
供したり、第2の命令のセツトで要求される動作
を実行するコプロセツサを提供して当該レパート
リを広げたりすることは時には便利である。この
最も一般的な例は浮動小数点演算を実行するため
のマイクロプロセツサ及びコプロセツサの組合せ
である。他の例は図形動作及びテキスト動作を実
行するコプロセツサを含む。
通常は、コプロセツサはメイン・プロセツサに
“密結合”される。メイン・プロセツサは実際に
メイン・プロセツサ及びコプロセツサの双方の全
ての命令及びオペランドを取出す。コプロセツサ
は拡張命令で要求される動作、例えばメイン・プ
ロセツサによつて取出された浮動小数点オペラン
ドの加算、減算、乗算又は除算を実行するだけで
ある。コプロセツサが“保留”信号をメイン・プ
ロセツサに返送すると、メイン・プロセツサは後
続命令をどちらのタイプであつても取出さない―
又は少なくとも実行を開始しない。そして、コプ
ロセツサは、現在の命令の実行を完全に終了する
と、保留を解除し、該ストリームからの次の命令
を開始するようにメイン・プロセツサに合図す
る。
C 発明が解決しようとする課題 前記密結合されたプロセツサ/コプロセツサ対
は外部からは拡張命令セツトを実行するシング
ル・プロセツサのように見えるが、この組合せか
らは性能の向上は得られない。通常、コプロセツ
サによつて実行される命令は長く且つ複雑になる
傾向があるので、実際には不利になる。又、コプ
ロセツサがその動作の1つを実行している間のメ
イン・プロセツサの遊休状態にある動作機構から
は何の利点も得られない。
D 課題を解決するための手段 本発明は密結合されたプロセツサの対に関係
し、場合によつては、コプロセツサが先行命令の
実行を完了する前に、共有のストリーム中の別の
命令を実行するためにメイン・プロセツサの動作
機構を利用できるようにする。即ち、2つの命令
が時間的に並行する。換言すれば、同時に実行す
ることができ、従つて、命令ストリームの実行に
必要な見かけの時間を全体として減少させる。
複数の命令を異なるプロセツサで並行して実行
させるだけなら難しくないが、その上に、ストリ
ーム中の命令が厳格に順次に実行されているよう
に見せることが重要である。即ち、複数のプロセ
ツサの存在は透明でなければならない。これはも
し下記の2つの基準が満たされれば達成される。
(1) 順次動作:後続する命令が先行する命令の結
果を、この結果が使用可能になる前に用いては
ならない。
(2) 正確な例外割込み:どの命令によつて生成さ
れる例外又は誤りも、これらの条件によつて生
成された割込みを処理するハンドラ・ルーチン
によつて当該命令に帰属可能でなければならな
い。
第1の基準はそれを処理する従来の方法があ
り、本発明はそれが満たされることを保証する。
従つて、本発明の主な目標は第2の基準である。
さて、命令が終了する前に、その実行が明白に
例外を生成することを知ることができないことが
よくある。しかしながら、しばしば、たぶん例外
が生じるかも知れない条件があり、これらの条件
は時には該命令の実行の終了前に知ることができ
る。更に、多くの場合、これらの条件は人が考え
るほど多くはないことが判明している。即ち、例
外がとても生じることのない実際の命令実行の数
は、しばしば、1又は2以上の例外が生じること
がある命令実行の数よりずつと多い。更に、例外
が生じる可能性がない非常に多くのケースは命令
実行の終了前に余裕を持つて決定することができ
るので、前記条件のどちらにも違反する恐れなし
にかなりの並行処理を行うことができる。
よつて、本発明はメイン・プロセツサ及び密結
合されたコプロセツサが命令ストリームの順次動
作及び正確な例外割込みを維持しながら異なる命
令を並行して実行することを可能にする。
概括的に言えば、本発明は命令の異なるメイ
ン・プロセツサ及びコプロセツサを有する。コプ
ロセツサのロジツクは、それが現に実行中の命令
を終了する前に、たぶん前記基準の1つに違反す
ることがある一定の条件が存在するかも知れない
ことを検出する。これらの基準の存在は、現在の
命令が該基準に違反する点を通過するまで、通常
は命令の実行の終了まで、メイン・プロセツサが
共有のストリームからの別のの命令を実行するこ
とを禁止する。(換言すれば、コプロセツサの状
態が現在の命令をそれ以上実行しても基準に違反
しないようになるまで禁止又は保留信号が活動状
態に維持される。) E 実施例 第1図は異なるタイプの命令を実行する異なる
プロセツサを有するデータ処理システム100を
示す。メイン・プロセツサ110は、‘通常の’
(即ち、非浮動小数点の)命令を実行するのに対
し、コプロセツサ120は命令コードが浮動小数
点命令として指定する特別なタイプの命令だけを
実行する。下記の通常の命令及び特別の命令の両
者の幾つかの代表的な命令のリストは各々のタイ
プの特色を示す。
通常のタイプの命令OPコード 動 作 MVC 文字移動 BC 条件付き分岐 ADD 固定小数点オペランド加算 浮動小数点タイプの命令OPコード 動 作 ALF 長精度FPオペランドの加算 SSF 短精度FPオペランドの減算 MLF 長精度FPオペランドの乗算 浮動小数点演算及びオペランド数形式は米国規
格“2進浮動小数点数演算のIEEE規格”、
ANSI/IEEE規格754−1985の仕様に従う。
制御記憶130は水平マイクロコード
(HMC)制御ワードを保持する。これらの制御
ワードは、プロセツサのデータ経路及び動作に影
響を及ぼし、且つ実行すべき次の制御ワードのア
ドレスを指定するビツト・フイールドを有する。
クロツク131はライン132の信号により従来
の方法で制御記憶を順序づける。制御記憶(CS)
バス133は現在の制御ワードの適当なビツト・
フイールドを両プロセツサに供給し、次のアドレ
ス選択のため制御記憶に条件を戻す。あるフイー
ルドはプロセツサの一方に対してだけ意味を持
ち、あるフイールドは両方のプロセツサに使用さ
れ、あるフイールドは該ワード内の特定のビツト
の状態に応答してプロセツサ毎に異なる意味を有
する。
通常のプロセツサ・バス111は2つのプロセ
ツサの間でデータを転送する。保留ライン112
は本発明の並行プロセスで用いられ、メイン・プ
ロセツサ110での制御ワード実行を禁止する。
主記憶装置140は命令及びデータの両方を保持
する通常の読取/書込メモリである。主記憶
(MS)バス141アドレス、データ及び制御ラ
インを有し、命令及びデータをプロセツサ110
及び120に(から)転送する。チヤンネル・ロ
ジツク150は、バス141を介して、プロセツ
サ及び記憶装置を任意の既知の方法で入出力装置
(図示せず)とインタフエースさせる。
プロセツサ110及び120は、“密結合”さ
れている。即ち、それらはシステム100の残り
の部分に関する限りシングル・プロセツサのよう
に作働する。それらは、該システムの残りの部分
と共用されない、111のような内部データ経路
を有する。それらは同じマイクロコード制御装置
130の―物理的にはは、その一部又は全てがプ
ロセツサの1つ、通常はメイン・プロセツサの一
部を構成することがある―によつて制御される。
プロセツサ120はシステム内で単独で用いられ
ることはない。それは命令、又はオペランドさえ
も外部のソースから取出す機能を備えていない。
それはメイン・プロセツサ110の寄生的存在で
あり、追加又は特殊な動作を実行することによ
り、その命令セツトの拡張オプシヨンをメイン・
プロセツサに提供するだけである。
第2図は、本発明の理解に役立つ、代表的なメ
イン・プロセツサ110の部分の概略図を示す。
これは、例えば、市販のIBM AS/400データ処
理システムのメイン・プロセツサでもよい。この
ようなプロセツサは、他の装置を種々の構成で相
互接続する通常の内部データ経路200、演算/
論理機構(ALU)210、レジスタ220、及
び主記憶装置140へのアクセスを制御する装置
230を含む。この装置はバス141を介して主
記憶装置に送られるアドレスを保持するための主
記憶アドレス・レジスタ(MSAR)231及び
主記憶装置へ(から)のデータを保持するための
主記憶データ・レジスタ(MSDR)232を有
する。
命令アドレス(IA)レジスタ240は現在実
行中の命令の主記憶アドレスを、当該命令がメイ
ン・プロセツサ110又はコプロセツサ120の
どちらで実行中であつても保持する。命令レジス
タ250は実行すべき実際の命令ワードを保持し
ている。IBレジスタ251は後続の命令を待合
せさせるためのバツフア・レジスタである。ISレ
ジスタ252は現に実行中の命令を保持する。レ
ジスタ252にある命令の命令コード(OPコー
ド)は、プロセツサ間バス111を介してコプロ
セツサ120に直に使用可能にすることができ
る。このバスはレジスタ220の内容がコプロセ
ツサへ(から)転送されることを可能にする。
記憶装置13からバス133を経由する制御ワ
ードはこれらの装置の間のデータの流れのシーケ
ンス及び種々の機能素子における動作のタイプを
確立する。制御ライン201はこれらの装置自身
にあるゲート及びロジツク(図示せず)に作用す
る。これらの装置は次にどの制御ワードが取出さ
れるかを左右する条件信号をライン202に生成
することができる。
従来の標準的な方法のように、マイクロコード
制御ワードは主記憶装置からの命令ワード及び必
要なオペランドの取出しを開始する。現在の命令
の命令コードは、当該特定の命令の解釈又は実行
を開始する制御ワードのアドレスを選択するよう
に、特定の1組のライン202を介して制御記憶
130にゲートされる。(用語“解釈”及び“実
行”はこの領域では技術的にいくらか異なる意味
を有する。しかしながら、本発明の目的に関して
は、それら互換的に用いることができる。) もし命令が通常のタイプであるならば、当該最
初の制御ワードはメイン・プロセツサでその機能
を実行し、次いで制御ワードのシーケンスでもう
1つのワードを呼出し該命令を完了させる。該命
令の終りに、IAレジスタ240は次の命令の主
記憶アドレスを、又はもし誤りないしは割込みが
生じているならば、当該特定の状況を処理する命
令のアドレスを保持する。
もし命令がFPタイプであるならば、バス13
3を経由する最初の制御ワードのビツトはメイ
ン・プロセツサ110に該命令を復号させる。後
続の制御ワードは通常の命令の場合と同じように
オペランドの取出しを開始するであろう。しか
し、該命令によつて実行される動作を指定する制
御ワードの部分即ちフイールドはコプロセツサ1
20にこのコプロセツサ内の当該特定の機能:浮
動小数点加算、減算、乗算、除算等を実行させ
る。このワードはメイン・プロセツサ110にも
届くが、浮動小数点演算に関連したビツト・パタ
ーンはそこでで実行される動作は指定しない。プ
ロセツサ110に関する限り、それは“ノー・オ
ペレーシヨン”(NO−OP)である。FP演算は通
常の命令と同じように制御ワードのシーケンスを
必要とすることがあるけれども、第3図に示すコ
プロセツサは、制御装置130からのシングル制
御ワード内の複数のサイクルを実行するシーケン
サ301を含む。本実施例では、これらのサイク
ルの各々はクロツク131が1制御ワードに割当
てる時間と同じ時間を必要とする。保留ロジツク
302は保留信号303を制御記憶に送り、次の
制御ワードを禁止する。これは従来のどの方法に
よつても―例えば、クロツク信号132が制御記
憶アドレスを次の制御ワードに進むことを禁止す
ることによつて―実行することができる。
従来の技術では、このタイプの信号はシーケン
サ301がFP演算の実行を完全に終了するまで
メイン・プロセツサを保留するために用いられ
る。そして該FP命令の解釈を、例えば、その結
果を記憶することによつて完了するために1又は
それ以上の後続の制御ワードが用いられるかも知
れない。
しかしながら、メイン・プロセツサが現在の命
令に関連した何らかの他の動作(例えば割込み又
は例外)をすることを必要とする例外を検出せず
に現在の命令が終了すると判定しうる時はいつで
もロジツク302はコプロセツサの実行の終了前
に保留を解除することができる。保留信号の除去
は制御記憶130が次の制御ワードをアクセスし
実行することを可能にし、このワードは命令スト
リーム中のもう1つの命令の解釈を開始すること
ができる。同様に、命令ストリーム全体は、たと
え内部的には幾つかの命令が互いに同時に実行さ
れていても、外部の観察者には、厳格なシーケン
スで実行されているように見える。これらの2つ
の要求は‘正確な例外割込み’及び‘順次動作’
と呼ばれる。
ロジツク302の入力はコプロセツサ120の
他の素子から得られる。コプロセツサ120の構
造及び動作は米国特許出願第339261号(1989年4
月17日出願)、同第339268号(1989年4月17日出
願)、同第339279号(1989年4月17日出願)、同第
339347号(1989年4月17日出願)、同第339348号
(1989年4月17日出願)に更に詳細に記述されて
いる。本明細書では、その機能部分は大幅に簡略
化されている。
MSバス141のデータ・ライン及び内部バス
304と通信する1組のレジスタ310はFP命
令の幾つかの可能なオペランドを保持する。プロ
セツサ間バス111を経由するメイン・プロセツ
サからのアドレスによつて特定のレジスタが選択
される。
作業用レジスタ320はバス304からデータ
を受取るとともに、現在のオペランド及び結果を
保持する。レジスタ321及び322からの指数
部分EA及びEBは、浮動小数点演算で要求された
ように指数を処理する演算装置330に結合され
る。装置330の出力はレジスタ321に戻され
る。小数演算装置340は小数、即ちレジスタ3
21,322及び323に記憶された数の小数部
を受取る。この装置の出力は、レジスタ320又
は310に記憶するため、又はバス141を介し
て転送するため、バス304に戻される。通常の
条件コード(CC)レジスタ350は種々の条件、
例えばオーバフロー、正規化されない結果等の検
出器を含む。その出力はメイン・プロセツサへの
プロセツサ間バス111によつて後続の命令の動
作に影響を及ぼすことができる。起こりうる一定
の誤り又は例外はプログラム制御の下に命令スト
リーム中の命令によつてマスクすることができ
る。
例外マスク・レジスタ360は例外のタイプ毎
に当該例外が許可されるかマスクされるかを示す
ビツトを含む。このレジスタはCSバス133及
びプロセツサ間バス11の両方から入力を受取
る。このレジスタにより、プログラマは一定の種
類の誤りが該プログラマにとつて重要ではなく、
且つそれらの発生は無視きると指定することがで
きる。例えば、前述の浮動小数点規格は正確な表
示のために演算結果が追加ビツトを必要とすると
き、“不正確結果”例外のセツテイングを指定す
る。これは通常はアプリケーシヨン・プログラム
にとつては重要ではなく、大抵の場合、この例外
はマスクされる。
保留ロジツク302はシーケンサ301、バ
ス・ライン304及び例外マスク・レジスタ36
0からの入力を受取る。ロジツク302は複数の
条件の論理ORを形成する通常の形式のロジツク
―コプロセツサ120で現に実行中の命令に関連
して起こりうる例外の存在を知らせる―を用いる
ことができる。
保留信号を解除する実際の条件を下記に示す。
全てのこれらの条件の存在は並行動作を可能にす
る。“Op1exp”及び“Op2exp”はレジスタ32
0に記憶されたオペランドの指数であり、
“Op2exp”は除算の場合の除数である。
“Resexp”は装置330からの結果の指数であ
る。斜線で分割された数はそれぞれ単精度命令及
び倍精度命令の値を表わす。それらの値は前述の
IEEE規格で指定されている。それらの算術演算
の計算それ自身とは無関係であり、システムによ
つて異なつていてもよい。これらの条件は正確例
外な割込みを保証する。
[Add(加算)OR Subtract(減算)]AND
[Op1exp<=251/2043 AND Op2exp<=251/
2043 AND(Op1exp=>32/64 OR Op2exp=>
32/64)]AND[InexactException(不正確例外)
=Masked(マスクされる)] [Multiply(乗算)]AND[Resexp>=252/
2044 AND Resexp=>2 AND Op1Exp<>
255/2047 AND Op2Exp<>255/2047]AND
[InexactException=Masked] [Duvide(除算)]AND[Resexp<=250/
2042 AND Resexp=>3 AND Op2exp<>
0 Op1Exp<>255/2047 AND Op2Exp<>
255/2047]AND[InexactException=Masked] [SquareRoot(平方根)]AND[Op1sign=
Positive(正)AND Op1Exp<>255/2047]
AND[InexactException=Masked] これらの条件は順次動作を保証する。
[命令OPコード制御ワードは条件コード・レ
ジスタ設定を指定する]AND[浮動小数点シーケ
ンサは終了していない] [命令OPコード制御ワードは主記憶装置への
結果の記憶を指定する]AND[浮動小数点シーケ
ンサは終了していない] [命令OPコードは現在の命令の結果の宛先で
あるFPレジスタのロード/記憶を指定する] [命令OPコードはFP算術演算を指定する]
AND[浮動小数点シーケンサは終了していない]
(即ち、現在のFP命令はまだ実行を終了していな
い) これらの条件の全てが満足される場合以外は、
コプロセツサ120で現に実行中の命令が例外を
生成するかも知れないこと、又は現在の命令から
はまだ使用可能ではない何らかの資源(例えば結
果)を後続の命令が必要とすることを、それらの
条件のどれかが示すので、保留信号303を生成
する。しかし、1つの条件が満たされなくも例外
が発生したり順次動作が乱されるとは限らない。
これらの条件は並行動作の許容性の範囲を決める
ものであるが、この範囲は厳密に必要とする範囲
よりもやや大きい。
保留信号を解除する条件及び厳密に並行動作に
必要な条件の間の相違は2つの原因から生じる。
第一の理由はロジツク302が簡略化されている
ことである。例えば、数以外のオペランドが算術
演算を試みられると例外が生じる。前述のIEEE
規格では、(単精度/倍精度の)255/2047の指数
及び全0の小数値を有するオペランドは、“非数”
(NaN)である。しかし、小数値の検査は52入力
のANDゲートの追加を必要とするので、ロジツ
ク302は指数(Op1exp及びOp2expは251/
2043よりも小さいか又はそれに等しい)の存在だ
けを検査する。
検査条件及び実際の条件が異なる第二の理由
は、検査条件は実際の条件の評価を必要とする時
以前に例外の可能性を予測させることがあること
である。例えば、僅かの例外を除いて、結果それ
自身が完全に生成される以前に不正確な結果の存
在を知ることはできない。不正確結果例外は大抵
はマスクされるから、この例外がマスクされない
ときは必ず並行動作を禁止するようにしてもパフ
オーマンスの損失は殆どない。もう1つの例とし
て、除算におけるOp2exp<2は、除数が0に等
しいか、又は商に桁あふれが生じることを必ずし
も意味せず、除数中の0の指数でさえも単に正規
化されない数を表わし、真の0ではないことがあ
る。しかし、この条件からの桁あふれ後は機会ま
では知られないであろう。よつて、一定の最小指
数値の場合にだけ並行動作させることは、より早
い時点での並行動作の開始を可能にする。
従つて、例外の多くは検査条件で確実に生じる
訳ではなく、事実、多くの場合、それらは生起し
ない。しかし、それらの存在が不可能なことは、
コプロセツサ120での現在の命令の実行でかな
り初期に判定されるので、保留信号はメイン・プ
ロセツサ110がそのストリーム中の次の命令を
確実に実行し得るできるだけ早い時期にオフにす
る、即ち解除する必要がある。これは、メイン・
プロセツサ110が後続の命令を実行する間に、
浮動小数点コプロセツサ120が命令の実行を続
行することを可能にし、しかも正確な例外割込み
を保証する。
本実施例では、保留信号は通常は、シーケンサ
301がそのサイクルを実行している間は、該シ
ーケンサからの信号305によりオン(即ち、活
動状態、並行動作を禁止する)にラツチされる
が、前記条件の存在により最初のサイクルの終り
でオフにすることができる。即ち、必要な条件の
存在は最初のサイクルの終りまでに知る必要があ
る。前記条件のうちには、現在の動作の結果の指
数についての知識を必要とするものがある。前記
米国特許出願第339279号に記述されているような
指数演算装置330はこの結果の指数を単一のシ
ーケンサ・サイクルで生成することができる。し
かしながら、シーケンサ301の動作中の異なる
時点で又はいつかの時点でも一定の条件の存在又
は不在を検査することも可能である。従つて、保
留信号303は一定の並行動作阻止条件が明確に
除外されることがわかれば必ず解除される(又は
決して活動状態にされない)。例えば、もし装置
330が指数の結果を生成するために2つのシー
ケンサ・サイクルを必要としたならば、どちらか
のオペランドの指数が最大結果値の半分を越えた
場合には、保留信号は乗算命令の最初のサイクル
の終りに活動状態でああることがあり、続いて、
もし実際に結果の指数(即ち、オペランド指数の
合計)が最大値を越えなかつたならば、保留信号
は二番目のサイクルの終りに降ろされるであろ
う。乗算は17のシーケンサ・サイクルまで必要と
することがあるから、これはなお後続の命令とか
なりの並行を可能にするであろう。
第4図の流れ図400は本発明に使用されるメ
イン・プロセツサ110及びコプロセツサ120
におけるHMCマイクロコードの流れを示す。第
4図では、メイン・プロセツサの事象は左側に、
コプロセツサの事象は右側に配置されている。こ
れらの2つのシーケンスの事象は、明示されてい
るものを除き、相互に非同期である。
マイクロコード・ループ410はメイン・プロ
セツサ110に送られた命令ストリーム中の1つ
の命令を解釈する。あらゆる命令の最初のマイク
ロコード・ワードは命令のOPコードを復号する
ブロツク411で解釈される制御ワードであり、
それは命令全体を実行する制御ワードのシーケン
スを選択する。ブロツク413は、ブロツク41
1で実行されたワード中のアドレスから、このシ
ーケンスの最初の制御ワード(CW)のアドレス
を決定する。ブロツク412はこの制御ワードを
読取る。前述のように、このワードはメイン・プ
ロセツサ110の素子及びコプロセツサの素子に
よりバス133(第1図)を介して同時に読取ら
れる。もしライン112の保留信号が活動状態で
あるならば、該保留が解除されるまで、ブロツク
416はメイン・プロセツサでのそれ以上の解釈
を阻止する。
もしこのワードがメイン・プロセツサ(MPU)
内の活動を指定しなければ、ブロツク417から
ブロツク415に移る。しかし、もしメイン・プ
ロセツサがこの制御ワードのフイールドのどれか
に応答すれば、ブロツク414は要求された活動
を実行又は解釈する。コプロセツサ120もこの
制御ワードを“調べる”が、シーケンサ301は
それをノー・オペレーシヨンとして復号する。従
つて、このワードに応答してメイン・プロセツサ
110だけが機能のどれかを実行する。ブロツク
414はクロツク信号が生じるまで続行する。そ
して、もし現在の制御ワードが該シーケンス中の
最後のものではないならば、ブロツク415は制
御をブロツク413に戻す。そして、ブロツク4
13は、該シーケンスで、前のワードによる指定
に従つて次の制御ワードのアドレスを取得する。
現在の制御ワードがそのシーケンス中の最後の
制御ワードであることを、ブロツク415が該ワ
ード内のビツトによつて検出するまで、このルー
プ410はブロツク411〜417を続行する。
この場合、ブロツク415は制御をブロツク41
1に戻し、それによつて制御記憶130は主記憶
装置140からのストリーム中の次の命令解釈を
開始する制御ワードを取得する。これは、従来の
ように、当該命令のOPコードの制御ワード・シ
ーケンス即ちマイクロルーチンの最初の制御ワー
ドを捕捉することによつて行われる。
前述のように、メイン・プロセツサ110は
FPタイプの命令並びに‘通常’のタイプの命令
のオペランド取出し及び結果の記憶を実行する。
よつて、FP命令の制御ワードのなかには実際の
ループ410で実行されるものがある。コプロセ
ツサはFPタイプ命令の算術演算を指定する制御
ワードを実行する。ブロツク412がこのような
制御ワードを読取ると、コプロセツサはループ4
20を実行することによつて応答する。即ち、シ
ーケンサ301によりコプロセツサ120は該ワ
ードに応答するが、該ワードはメイン・プロセツ
サ110内のどの動作も指定しない。ブロツク4
31はこの活動を表わす。もし制御ワードがコプ
ロセツサ内の活動を指定すれば、ブロツク421
が実行され、さもなければ、手順420はブロツ
ク432で終了する。
この時点で、コプロセツサは前の命令をなお実
行中である、即ちFPレジスタ310(第3図)
が使用中であることがありうる。この条件はコプ
ロセツサ資源についての現在のゲートを指定する
シーケンサ301内の一定のビツトの状態によつ
て指定される。もしそうなら、ブロツク421か
らブロツク422に進み、保留信号303が活動
状態にされる。シーケンサ301が保留を解除す
るまで、ブロツク421自身はループし続ける。
解除されると、コプロセツサは該FP動作の実行
に移ることができる。(この保留条件の下ではプ
ロセツサはどちらも進行するのを阻止される。) ブロツク421がコプロセツサは使用可能であ
ることを示すと、ブロツク423は、コプロセツ
サのシーケンサ301を、その最初のサイクルに
リセツトし当該サイクルの信号305をコプロセ
ツサ120の素子の全てに送信することによつて
始動させる。このシーケンサ・サイクル中に、ブ
ロツク425は保留信号を活動状態にラツチすす
る。該サイクルの終りで、ロジツク302がこの
動作中に例外の可能性はないと判定するかも知れ
ない。もしそうなら、ブロツク426は保留を解
除する。どちらの場合にも、ブロツク427はシ
ーケンサを次のサイクルに増分しそれを実行す
る。該サイクルが終了すると、クロツク周期の終
りで、最後のシーケンサ・サイクルが終了するま
でブロツク428を経由してループする。当該時
点で、ブロツク429は保留を解除し該制御ワー
ドの処理を終了する。
保留信号は、もしそれが活動状態であるなら
ば、常に最後のシーケンサ・サイクルの終りで解
除される。従つて、メイン・プロセツサは、もし
それがブロツク416で待機しているならば、ル
ープ410の実行を継続することができる。(さ
もなければ、それは、当然、ルーチン420と並
行して実行し続ける。) 前述のように、本実施例は1つの制御ワードだ
けを用いてFPタイプの命令の全算術演算を実行
する。代りに、複数の制御ワードを有するシーケ
ンスがコプロセツサ120でFP演算を実行する
ように手順400を変更することができる。最初
のシーケンサ・サイクルの終り以外の時点で、た
ぶん1つのシーケンスのサイクル中に2回以の時
点で、保留信号を活動化したり解除したりするこ
ともできる。
下記の表はコプロセツサ120で浮動小数点乗
算命令を実行する簡略化された一連のシーケン
サ・サイクルを示す。第1のセクシヨンの動作は
最初のサイクル、サイクル1の間にだけ実行され
る。第2のセクシヨンに示す動作はあらゆるサイ
クル、サイクル1〜サイクルNの間に生じる。第
3のセクシヨンの動作は最後のサイクル、サイク
ルNの間にだけ起きる。最初に、レジスタ323
は乗数の小数部FCを保持し、レジスタ322は
乗数の小数部FB及び指数FBを保持し、且つレジ
スタ321は被乗数の小数部FA及び指数EAを保
持する。動作中、レジスタ321は結果の指数を
保持し、レジスタ322は部分積の小数部を保持
する。乗算の終りで、それらは完全な積を保持す
る。コプロセツサ120はシーケンサ・サイクル
毎に乗数の4ビツトを廃棄する反復再符号化アル
ゴリズムを用いる。結果の事後正規化及び丸めは
サイクルNの間に実行される。
サイクル1 EA−−>指数演算装置 EB−−>指数演算装置 指数演算装置−−>EA 例外マスク・レジスタ−−>保留ロジツク 保留ロジツクを活動化する サイクル1〜N FA−−>小数演算装置 FB−−>小数演算装置 FC−−>小数演算装置 小数演算装置−−<FA FC右4ビツト−−>FC サイクルN EA−−>指数演算装置 小数演算装置−−>指数演算装置 指数演算装置−−>EA 保留信号を解除する 前記米国特許出願第339279号はこのシーケンス
の更に詳細な説明を含む。
F 発明の効果 本発明によれば、メイン・プロセツサ及びコプ
ロセツサは命令ストリームの順次動作及び正確な
例外割込みを維持しながら異なる命令の実行を並
行させることができる。
【図面の簡単な説明】
第1図は本発明によるデータ処理システムのブ
ロツク図である。第2図は第1図のシステムのメ
イン・プロセツサの一部分のブロツク図である。
第3図は第1図のシステムのコプロセツサの一部
分のブロツク図である。第4図は第2図及び第3
図のプロセツサの間で命令実行を並行するための
マイクロコードの流れ図である。 100…データ処理システム、110…メイ
ン・プロセツサ、120…コプロセツサ、130
…制御記憶/マイクロコード制御装置、131…
クロツク、140…主記憶装置、150…チヤネ
ル・ロジツク、210…演算論理機構、220…
レジスタ、230…主記憶制御機構、231…主
記憶アドレス・レジスタ、232…主記憶デー
タ・レジスタ、240…命令アドレス・レジス
タ、250…命令レジスタ、251…IBレジス
タ、252…ISレジスタ、301…シーケンサ、
302…保留ロジツク、310…レジスタ、32
0…作業用レジスタ、330…演算装置、340
…小数演算装置、350…条件コード・レジス
タ、360…例外マスク・レジスタ。

Claims (1)

  1. 【特許請求の範囲】 1 一つの順次命令ストリームにある命令をメイ
    ン・プロセツサ及びコプロセツサで実行する方法
    であつて、前記命令は2つの異なるタイプがあ
    り、少なくとも第1のタイプの命令の一部は前記
    コプロセツサで実行され第2のタイプの命令は前
    記メイン・プロセツサで実行され、前記命令は少
    なくとも1つのオペランドおよび命令コードを有
    し、前記方法が 前記命令ストリームから第1の命令を取得する
    ステツプ、 前記第1の命令が前記第1のタイプであること
    を決定するステツプ、 前記コプロセツサで前記第1の命令の実行を開
    始するステツプ、 前記第1の命令の実行中に、可能性のある例外
    条件の存在を前記コプロセツサ内で検査するステ
    ツプ、 前記第1の命令の実行中に、前記命令ストリー
    ムから前記第2の命令を取得するステツプ、 前記第1の命令の実行中に、前記第2の命令が
    前記第2のタイプであることを決定するステツ
    プ、 もし前記コプロセツサに前記例外条件が存在し
    なければ、前記コプロセツサでの前記第1の命令
    の実行の完了前に前記メイン・プロセツサで前記
    第2の命令の実行を開始するステツプ、及び もし前記コプロセツサに前記例外条件が存在す
    れば、前記メイン・プロセツサでの前記第2の命
    令の実行を保留するステツプ を含む命令実行方法。 2 第1のセツトの命令を実行するメイン・プロ
    セツサ、 前記第1のセツトの命令と異なる第2のセツト
    の命令の少なくとも一部分を実行するコプロセツ
    サ、 前記メイン・プロセツサで1つのシーケンスに
    混合された前記2つのセツトの命令を取得するた
    めの取出し手段、 前記取出し手段に結合され、前記第1のセツト
    の命令を前記メイン・プロセツサで及び前記第2
    のセツトの命令を前記コプロセツサでそれぞれ開
    始し、前記第2のセツトの後続命令を前記命令ス
    トリームの前記第1のセツトの先行命令の終了前
    に開始させる開始手段、 前記メイン・プロセツサで前記開始手段に応答
    して前記第1のセツトの命令を実行する第1の実
    行手段、 前記コプロセツサで前記開始手段に応答して前
    記第2のセツトの命令を実行する第2の実行手
    段、及び 前記取出し手段に結合され、前記第2の実行手
    段で実行中の命令で複数の条件を感知し且つ前記
    第2の実行手段が該命令の実行を完了する前に前
    記条件の論理関数として保留信号を生成し、前記
    開始手段に結合されて前記命令ストリームで前記
    後続命令の前記メイン・プロセツサでの実行を遅
    らせる検出手段 を含むデータ処理システム。
JP2099455A 1989-04-17 1990-04-17 命令実行方法及びそのシステム Granted JPH02294830A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/339,285 US5093908A (en) 1989-04-17 1989-04-17 Method and apparatus for executing instructions in a single sequential instruction stream in a main processor and a coprocessor
US339285 1989-04-17

Publications (2)

Publication Number Publication Date
JPH02294830A JPH02294830A (ja) 1990-12-05
JPH0567971B2 true JPH0567971B2 (ja) 1993-09-28

Family

ID=23328306

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2099455A Granted JPH02294830A (ja) 1989-04-17 1990-04-17 命令実行方法及びそのシステム

Country Status (3)

Country Link
US (1) US5093908A (ja)
EP (1) EP0394165A3 (ja)
JP (1) JPH02294830A (ja)

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5218711A (en) * 1989-05-15 1993-06-08 Mitsubishi Denki Kabushiki Kaisha Microprocessor having program counter registers for its coprocessors
US5210870A (en) * 1990-03-27 1993-05-11 International Business Machines Database sort and merge apparatus with multiple memory arrays having alternating access
US5519873A (en) * 1990-08-31 1996-05-21 International Business Machines Corporation Apparatus for switching digital command execution between a general purpose microprocessor and dedicted execution logic
US5761479A (en) * 1991-04-22 1998-06-02 Acer Incorporated Upgradeable/downgradeable central processing unit chip computer systems
US5551012A (en) * 1991-04-22 1996-08-27 Acer Incorporated Single socket upgradeable computer motherboard with automatic detection and socket reconfiguration for inserted CPU chip
US5363495A (en) * 1991-08-26 1994-11-08 International Business Machines Corporation Data processing system with multiple execution units capable of executing instructions out of sequence
US5325490A (en) * 1991-12-18 1994-06-28 Intel Corporation Method and apparatus for replacement of an original microprocessor with a replacement microprocessor in a computer system having a numeric processor extension
US5559977A (en) * 1992-08-04 1996-09-24 Intel Corporation Method and apparatus for executing floating point (FP) instruction pairs in a pipelined processor by stalling the following FP instructions in an execution stage
CA2123442A1 (en) * 1993-09-20 1995-03-21 David S. Ray Multiple execution unit dispatch with instruction dependency
US5495588A (en) * 1993-11-18 1996-02-27 Allen-Bradley Company, Inc. Programmable controller having joined relay language processor and general purpose processor
JPH07219774A (ja) * 1994-02-07 1995-08-18 Fujitsu Ltd データ処理装置および例外処理方法
US5659722A (en) * 1994-04-28 1997-08-19 International Business Machines Corporation Multiple condition code branching system in a multi-processor environment
FR2719926B1 (fr) * 1994-05-10 1996-06-07 Sgs Thomson Microelectronics Circuit électronique et procédé d'utilisation d'un coprocesseur.
KR0180578B1 (ko) * 1994-06-07 1999-05-15 모리시다 요이치 데이터처리장치
US5673408A (en) * 1995-02-14 1997-09-30 Hal Computer Systems, Inc. Processor structure and method for renamable trap-stack
US6209083B1 (en) * 1996-02-28 2001-03-27 Via-Cyrix, Inc. Processor having selectable exception handling modes
JP3510729B2 (ja) * 1996-02-29 2004-03-29 三洋電機株式会社 命令実行方法および命令実行装置
US5715439A (en) * 1996-12-09 1998-02-03 Allen-Bradley Company, Inc. Bi-directional co-processor interface
US5923893A (en) * 1997-09-05 1999-07-13 Motorola, Inc. Method and apparatus for interfacing a processor to a coprocessor
US6505290B1 (en) * 1997-09-05 2003-01-07 Motorola, Inc. Method and apparatus for interfacing a processor to a coprocessor
US6247113B1 (en) * 1998-05-27 2001-06-12 Arm Limited Coprocessor opcode division by data type
US6732203B2 (en) * 2000-01-31 2004-05-04 Intel Corporation Selectively multiplexing memory coupling global bus data bits to narrower functional unit coupling local bus
US20020010848A1 (en) * 2000-05-29 2002-01-24 Shoichi Kamano Data processing system
JP4913955B2 (ja) * 2000-05-29 2012-04-11 株式会社ガイア・システム・ソリューション データ処理装置
JP4651790B2 (ja) * 2000-08-29 2011-03-16 株式会社ガイア・システム・ソリューション データ処理装置
JP2002149402A (ja) * 2000-11-14 2002-05-24 Pacific Design Kk データ処理装置およびその制御方法
US20040078608A1 (en) * 2001-04-02 2004-04-22 Ruban Kanapathippillai Method and apparatus for power reduction in a digital signal processor integrated circuit
US6950929B2 (en) * 2001-05-24 2005-09-27 Samsung Electronics Co., Ltd. Loop instruction processing using loop buffer in a data processing device having a coprocessor
US7200742B2 (en) 2005-02-10 2007-04-03 International Business Machines Corporation System and method for creating precise exceptions
DE102017116304B4 (de) * 2017-07-19 2024-05-02 Infineon Technologies Ag Steuerungssystem und verfahren zum durchführen einer operation

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4180704A (en) * 1978-06-28 1979-12-25 International Business Machines Corporation Detection circuit for a bi-directional, self-imaging grating detector
US4755966A (en) * 1985-06-28 1988-07-05 Hewlett-Packard Company Bidirectional branch prediction and optimization
US4777613A (en) * 1986-04-01 1988-10-11 Motorola Inc. Floating point numeric data processor
US4811208A (en) * 1986-05-16 1989-03-07 Intel Corporation Stack frame cache on a microprocessor chip
US4845659A (en) * 1986-08-15 1989-07-04 International Business Machines Corporation Accelerated validity response permitting early issue of instructions dependent upon outcome of floating point operations
US4967351A (en) * 1986-10-17 1990-10-30 Amdahl Corporation Central processor architecture implementing deterministic early condition code analysis using digit based, subterm computation and selective subterm combination
US4891753A (en) * 1986-11-26 1990-01-02 Intel Corporation Register scorboarding on a microprocessor chip
US4991078A (en) * 1987-09-29 1991-02-05 Digital Equipment Corporation Apparatus and method for a pipelined central processing unit in a data processing system
US4943915A (en) * 1987-09-29 1990-07-24 Digital Equipment Corporation Apparatus and method for synchronization of a coprocessor unit in a pipelined central processing unit
US4823260A (en) * 1987-11-12 1989-04-18 Intel Corporation Mixed-precision floating point operations from a single instruction opcode
US4879676A (en) * 1988-02-29 1989-11-07 Mips Computer Systems, Inc. Method and apparatus for precise floating point exceptions
US4974155A (en) * 1988-08-15 1990-11-27 Evans & Sutherland Computer Corp. Variable delay branch system
US4975868A (en) * 1989-04-17 1990-12-04 International Business Machines Corporation Floating-point processor having pre-adjusted exponent bias for multiplication and division
US5001662A (en) * 1989-04-28 1991-03-19 Apple Computer, Inc. Method and apparatus for multi-gauge computation

Also Published As

Publication number Publication date
US5093908A (en) 1992-03-03
EP0394165A3 (en) 1992-09-30
EP0394165A2 (en) 1990-10-24
JPH02294830A (ja) 1990-12-05

Similar Documents

Publication Publication Date Title
JPH0567971B2 (ja)
US4879676A (en) Method and apparatus for precise floating point exceptions
US4760519A (en) Data processing apparatus and method employing collision detection and prediction
EP0423906B1 (en) Method of and apparatus for nullifying an instruction
JP3851707B2 (ja) スーパースカラープロセッサの中央処理ユニット
JPS592143A (ja) 情報処理装置
US5398321A (en) Microcode generation for a scalable compound instruction set machine
KR960001274B1 (ko) 트랩 및 스톨 제어기능을 갖는 병렬처리형 프로세서 시스템
JPH04275628A (ja) 演算処理装置
JPH06242948A (ja) パイプライン処理計算機
JPS59114641A (ja) 割込処理装置
JPH07248897A (ja) コンピュータ・システムにおける例外からの回復方法、及びそのための装置
JP2581236B2 (ja) データ処理装置
US6216222B1 (en) Handling exceptions in a pipelined data processing apparatus
KR0133237B1 (ko) 다중 실행장치 처리시스템 상태의 선택적 저장방법 및 시스템
US6021488A (en) Data processing system having an apparatus for tracking a status of an out-of-order operation and method thereof
RU2282235C2 (ru) Блокирование исходных регистров в устройстве обработки данных
US7010676B2 (en) Last iteration loop branch prediction upon counter threshold and resolution upon counter one
CN112182999B (zh) 一种基于mips32指令系统的三级流水线cpu设计方法
US6990569B2 (en) Handling problematic events in a data processing apparatus
JP2710994B2 (ja) データ処理装置
US5446909A (en) Binary multiplication implemented by existing hardware with minor modifications to sequentially designate bits of the operand
JP3089427B2 (ja) データ処理装置
JPH06202868A (ja) マルチスカラー・プロセッサ・システムにおける高速浮動小数点例外起動式操作の方法およびシステム
KR102379886B1 (ko) 벡터 명령 처리