JPH02294830A - 命令実行方法及びそのシステム - Google Patents

命令実行方法及びそのシステム

Info

Publication number
JPH02294830A
JPH02294830A JP2099455A JP9945590A JPH02294830A JP H02294830 A JPH02294830 A JP H02294830A JP 2099455 A JP2099455 A JP 2099455A JP 9945590 A JP9945590 A JP 9945590A JP H02294830 A JPH02294830 A JP H02294830A
Authority
JP
Japan
Prior art keywords
instruction
instructions
coprocessor
execution
main processor
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
JP2099455A
Other languages
English (en)
Other versions
JPH0567971B2 (ja
Inventor
Thomas J Beacom
トーマス・ジヨセフ・ビーコム
Jeffrey D Brown
ジエフリイ・ダグラス・ブラウン
Mark R Funk
マーク・ロバート・フアンク
Scott A Hilker
スコツト・アレン・ヒルカー
Daniel G Young
ダニエル・ガイ・ヤング
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)

Abstract

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

Description

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

Claims (2)

    【特許請求の範囲】
  1. (1)1つの順次命令ストリームにある命令をメイン・
    プロセッサ及びコプロセッサで実行する方法であって、
    前記命令は2つの異なるタイプがあり、少なくとも第1
    のタイプの命令の一部は前記コプロセッサで実行され第
    2のタイプの命令は前記メイン・プロセッサで実行され
    、前記命令は少なくとも1つのオペランドおよび命令コ
    ードを有し、前記方法が 前記命令ストリームから第1の命令を取得するステップ
    、 前記第1の命令が前記第1のタイプであることを決定す
    るステップ、 前記コプロセッサで前記第1の命令の実行を開始するス
    テップ、 前記第1の命令の実行中に、可能性のある例外条件の存
    在を前記コプロセッサ内で検査するステップ、 前記第1の命令の実行中に、前記命令ストリームから前
    記第2の命令を取得するステップ、前記第1の命令の実
    行中に、前記第2の命令が前記第2のタイプであること
    を決定するステップ、もし前記コプロセッサに前記例外
    条件が存在しなければ、前記コプロセッサでの前記第1
    の命令の実行の完了前に前記メイン・プロセッサで前記
    第2の命令の実行を開始するステップ、及びもし前記コ
    プロセッサに前記例外条件が存在すれば、前記メイン・
    プロセッサでの前記第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
US339285 1989-04-17
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

Publications (2)

Publication Number Publication Date
JPH02294830A true JPH02294830A (ja) 1990-12-05
JPH0567971B2 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)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002055813A (ja) * 2000-05-29 2002-02-20 Pacific Design Kk データ処理装置
JP2002149402A (ja) * 2000-11-14 2002-05-24 Pacific Design Kk データ処理装置およびその制御方法

Families Citing this family (28)

* 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 모리시다 요이치 데이터처리장치
US5673426A (en) * 1995-02-14 1997-09-30 Hal Computer Systems, Inc. Processor structure and method for tracking floating-point exceptions
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
US6505290B1 (en) * 1997-09-05 2003-01-07 Motorola, Inc. Method and apparatus for interfacing a processor to a coprocessor
US5923893A (en) * 1997-09-05 1999-07-13 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
JP4651790B2 (ja) * 2000-08-29 2011-03-16 株式会社ガイア・システム・ソリューション データ処理装置
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

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002055813A (ja) * 2000-05-29 2002-02-20 Pacific Design Kk データ処理装置
JP2002149402A (ja) * 2000-11-14 2002-05-24 Pacific Design Kk データ処理装置およびその制御方法

Also Published As

Publication number Publication date
JPH0567971B2 (ja) 1993-09-28
EP0394165A3 (en) 1992-09-30
US5093908A (en) 1992-03-03
EP0394165A2 (en) 1990-10-24

Similar Documents

Publication Publication Date Title
JPH02294830A (ja) 命令実行方法及びそのシステム
US4879676A (en) Method and apparatus for precise floating point exceptions
US6418528B1 (en) Floating point unit pipeline synchronized with processor pipeline
JP2645669B2 (ja) データ処理システム
JP2846406B2 (ja) 分岐処理方法及び分岐処理装置
JP2846407B2 (ja) 例外処理方法及び例外処理装置
EP0328721A2 (en) Dynamic multiple instruction stream multiple data multiple pipeline floatingpoint unit
JP3851707B2 (ja) スーパースカラープロセッサの中央処理ユニット
KR960001274B1 (ko) 트랩 및 스톨 제어기능을 갖는 병렬처리형 프로세서 시스템
US5128888A (en) Arithmetic unit having multiple accumulators
JPS592143A (ja) 情報処理装置
JPH06242948A (ja) パイプライン処理計算機
JPH04275628A (ja) 演算処理装置
JPH07248897A (ja) コンピュータ・システムにおける例外からの回復方法、及びそのための装置
EP0899654A2 (en) A data processing system and method
US6216222B1 (en) Handling exceptions in a pipelined data processing apparatus
US6021488A (en) Data processing system having an apparatus for tracking a status of an out-of-order operation and method thereof
KR0133237B1 (ko) 다중 실행장치 처리시스템 상태의 선택적 저장방법 및 시스템
JPH09152973A (ja) カウント/リンク・レジスタ変更命令の投機実行をサポートする方法及び装置
CN112182999B (zh) 一种基于mips32指令系统的三级流水线cpu设计方法
JPH0743648B2 (ja) 情報処理装置
US6012139A (en) Microprocessor including floating point unit with 16-bit fixed length instruction set
JP2710994B2 (ja) データ処理装置
JP3089427B2 (ja) データ処理装置
JPH10124312A (ja) 中央処理装置