JPH02227769A - データ処理システム - Google Patents

データ処理システム

Info

Publication number
JPH02227769A
JPH02227769A JP2003662A JP366290A JPH02227769A JP H02227769 A JPH02227769 A JP H02227769A JP 2003662 A JP2003662 A JP 2003662A JP 366290 A JP366290 A JP 366290A JP H02227769 A JPH02227769 A JP H02227769A
Authority
JP
Japan
Prior art keywords
instruction
processor
floating point
instructions
fixed point
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
JP2003662A
Other languages
English (en)
Other versions
JP2645669B2 (ja
Inventor
Gregory F Grohoski
グレゴリイー・フレドリツク・グロースキイ
James A Kahle
ジエームズ・アレン・カーレ
Myhong Nguyenphu
マイホング・ニイーエンフ
David S Ray
デヴイド・スコツト・レイ
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 JPH02227769A publication Critical patent/JPH02227769A/ja
Application granted granted Critical
Publication of JP2645669B2 publication Critical patent/JP2645669B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime 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
    • 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • 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/3818Decoding for concurrent execution
    • G06F9/3822Parallel decoding, e.g. parallel decode units
    • 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/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • 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/3861Recovery, e.g. branch miss-prediction, exception handling
    • 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
    • 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/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)
  • Multi Processors (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

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

Description

【発明の詳細な説明】 A、産業上の利用分野 本発明は、データ処理システムに関し、より具体的には
、複数の処理装置を含むデータ処理に関する。
B、従来の技術 従来のデータ処理システムは、一連の命令を一時に1つ
ずつ実行する。複数の処理装置を含むデータ処理システ
ムにおいては、通常それらの命令の復号は、各命令が命
令シーケンス中のその位置に応じて復号されるように、
集中化されている。
IBM テクニカル・ディスクロージャ・プルテン、V
ol、25、No、3B (1982年8月)、pp、
1637−1638所載の論文「マルチプロセッサ同期
化設計法(MultiprocessorSynchr
onization Design Method) 
Jでは、複数のプロセッサの集まりが、各プロセッサが
指示された状態にあるかどうかを同時に決定できる方法
が開示されている。プロセスの終わりには、すべてのプ
ロセッサは、相互に一致した状況になる。
IBM テクニカル・ディスクロージャ・プルテン、V
o 1.30、No、7 (1987年12月)、1)
p、98−99所載の論文「高度並列マルチプロセッサ
・システム用の同期化処理要素(Syn、chroni
zation  Processing Elemen
ts forHighly Parallel Mul
tiprocessors Systems) Jは、
同期化処理要素の使用によって、高度並列マルチプロセ
ッサ・コンピュータ・システムにおける同期化オーバー
ヘッドを最小にできるように、多重処理コンピュータ・
アーキテクチャの機能を向上させる技法を開示している
IBM テクニカル・ディスクロージャ・プルテン、V
ol、29、No、10 (1987年3月)、pp、
4658−4E387所載の論文「分散処理同期化及び
アドレス計算用の実行的アルゴリズム(Run−Tim
e Algorithm for Distribut
edProcessing 5ynchronizat
ion and  AddressCalculati
ons) Jは、分散処理アーキテクチャの各分散処理
要素に常駐するワン・タイム・アルゴリズムを開示して
いる。これらのワン・タイム・アルゴリズムは、各分散
処理要素についてのアドレス計算をネットワーク内の他
の分散処理要素と調整された形でスケジューリングする
ことを実現する。
C0発明が解決しようとする課題 本発明の目的は、個々のプロセッサによる個々の命令の
実行が実際には順序通りでなくても、見かけ上、命令全
体が順序通り実行されるように見える形で、一連の命令
を実行できる多重処理システムを提供することである。
00課題を解決するための手段 本発明によれば、2つのプロセッサの動作を必要とする
一連の命令を記憶するための命令記憶回路を含む、デー
タ処理システムが提供される。それぞれ前記命令記憶回
路からの命令を実行するための、少なくとも2つのプロ
セッサが含まれているが、少なくとも1つのプロセッサ
に各命令をタスク指名するための命令タスク指名回路が
設けられている。少なくとも1つのプロセッサは、別の
プロセッサが命令シーケンス内の先行する命令を実行す
る前に、タスク指名された命令を実行するための回路を
含む。
好ましい実施例では、一連の命令を記憶する1個の命令
バッファを含むデータ処理システムが提供される。この
シーケンス内の少なくとも1つの命令は、少なくとも2
つの独立したプロセッサの動作を必要とする。命令記憶
回路は、2つのプロセッサに接続されている。各プロセ
ッサは、命令記憶回路からの命令を実行する。また本発
明には命令タスク指名回路が含まれており、少なくとも
1つのプロセッサに各命令をタスク指名する。少なくと
も1つのプロセッサは、別のプロセッサが命令シーケン
ス内の先行する命令を実行する前に、タスク指名された
命令を実行する能力をもつ。
この好ましい実施例では、1つのプロセッサは固定小数
点数演算プロセッサである。、第2のプロセッサは浮動
小数点数演算プロセッサである。命令シーケンスは、固
定小数点プロセッサ用及び浮動小数点プロセッサ用の命
令を含んでいる。しかし、命令シーケンスはまた、浮動
小数点ロード命令及び記憶命令を含み、この好ましい実
施例では、それらの命令は固定小数点プロセッサと浮動
小数点プロセッサの両方の動作を必要とする。具体的に
は、固定小数点プロセッサは、浮動小数点命令に対する
ロード動作及び記憶動作を実行するためのアドレス計算
を実行する。
この実施例では、他のプロセッサが先行する命令を実行
する前に、タスク指名された命令を実行する能力をもつ
プロセッサはまた、その命令が他のプロセッサによっで
ある動作が実行されることを必要とするとき、順番がく
る前のその命令の実行を遅らせる能力をもつ。この例で
は、浮動小数点命令が固定小数点プロセッサの動作を必
要とするときは、浮動小数点プロセッサは浮動小数点命
令を実行しない。
またこの実施例では、他のプロセッサが先行する命令を
実行する前にタスク指名された命令を実行できるプロセ
ッサの能力には、さらに、割込み可能な命令が他の命令
の実行に対して適当な順序で実行されるまで、そのプロ
セッサに対する割込み条件を発生させることのできるタ
イプの割込み可能命令の実行を遅らせる能力が含まれる
E、実施例 本発明はマルチプロセッサの同期化の問題を対象とする
。具体的に言うと、好ましい実施例では、固定小数点プ
ロセッサと浮動小数点プロセッサとの間の同期化が必要
である。この要件は、固定小数点プロセッサが、浮動小
数点プロセッサで浮動小数点ロード動作及び記憶動作を
実行するためのアドレス計算を実行しなければならない
ことから生ずる。同期化を必要とするもう1つの態様は
、浮動小数点プロセッサが固定小数点プロセッサの前に
割込み可能命令を実行する能力をもつことから生じる。
この例では同期化により、浮動小数点プロセッサが固定
小数点プロセッサより前に割込み可能命令を実行できな
くなる。
第1図で、固定小数点プロセッサ6は、複数の制御信号
を表す制御線29を介して浮動小数点プロセッサ8に接
続されている。固定小数点プロセッサ6及び浮動小数点
プロセッサ8はさらに、共通の命令キャッシュ10及び
1個のメモリ80に接続されている。固定小数点プロセ
ッサ6は命令キャッシュ10に接続された命令事前取出
しバッファ20を含む。命令事前取出しバッファ2oは
、命令キャッシュ10から命令シーケンスを受は取る。
すなわち、命令事前取出しバッファ20からの命令は、
復号回路22で復号され、レジスタ・ファイル24及び
制御回路30に情報を供給する。
好ましい実施例では、固定小数点プロセッサ6のレジス
タ24は、32個の個別にアドレス可能なレジスタを含
む。レジスタ・ファイル24の出力は、演算論理機構2
B (ALU)に供給される。
ALU26の出力は、レジスタ・ファイル24に戻され
る。固定小数点プロセッサ6はまた、レジスタ・ファイ
ル24及び制御回路30に接続された入出力回路28を
含む。入出力回路28は外部メモリ80に接続されてい
る。固定小数点プロセッサ6の制御回路30は、固定小
数点プロセッサ8の内部動作、入出力回路28による外
部メモリ80のアクセス、及び浮動小数点プロセッサ8
との同期を制御する。
浮動小数点プロセッサ8は命令キャッシュ10に接続さ
れた命令事前取出しバッファ40を含む。
命令事前取出しバッファ40から受は取った命令を復号
するための復号回路42が設けられている。
復号回路42は、浮動小数点プロセッサ制御回路52及
びレジスタ・ファイル44に入力を供給する。レジスタ
・ファイル44は、出力を指数加算回路50及び乗算回
路48に供給する。乗算器48の出力は加算器54に供
給され、加算器54は出力を丸め回路56に供給する。
制御論理回路52はまた、指数加算器50、乗算器48
、加算器54、及び丸め回路56に制御入力を供給する
好ましい実施例では、指数加算器は、浮動小数点計算用
の指数演算を実行し、さらに乗算器48に対するシフト
制御を行なう。乗算器48はウォーレス・ツリー乗算器
で、桁上げ保管式加算器アーキテクチャを使用している
。指数加算回路50は、乗算のために指数を足したり、
引いたりする加算器回路である。この指数情報は、乗算
演算子の結果において加算のための加算オペランドを桁
合せするのに使用される。
丸め回路56は加算器54からの結果を増分し、丸めた
結果をレジスタ・ファイル44に供給する。
浮動小数点プロセッサ8はまた、外部メモリ80に接続
された入出力回路46を含む。入出力回路46はさらに
制御回路52に接続されている。固定小数点プロセッサ
6におけると同様に、制御回路52は、浮動小数点プロ
セッサ8中で実行される浮動小数点数演算の内部制御を
行なう。さらに、浮動小数点制御回路52は、固定小数
点プロセッサ6からの同期化信号を受は取るために、線
29を介して固定小数点プロセッサ制御回路50に接続
されている。
好ましい実施例では、メモリ80は、必要な場合、固定
小数点プロセッサ6と浮動小数点プロセッサ8との間の
データ通信手段として働く。また、命令キャッシュ10
は、固定小数点プロセッサ6及び浮動小数点プロセッサ
8の両方のための命令シーケンスを記憶する。この実施
例では、命令シーケンスは、固定小数点プロセッサ6の
命令事前取出しバッファ20と浮動小数点プロセッサ8
の命令事前取出しバッファ40の両方に供給される。
言い換えると、同じ命令が両方の事前取出しバッファ2
0及び40に供給される。
好ましい実施例では、固定小数点プロセッサ6は32ビ
ット幅処理装置である。浮動小数点プロセッサ8は、6
4ビット幅浮動小数点数演算装置である。
第2図は、浮動小数点プロセッサ用の制御回路52にお
ける制御の流れを示している。具体的には、この制御の
流れは、固定小数点プロセッサ6と浮動小数点プロセッ
サ8との間の同期化機能の制御を示している。最初に、
命令事前取出しバッファ40からの命令が、第2図のス
テップ100で、復号回路42にシフトされる。ステッ
プ102で、この命令が復号される。ステップ104で
、復号された命令が割込み可能な命令かどうか判定され
る。この説明では、浮動小数点プロセッサ8に対するロ
ード命令及び記憶命令だけが割込み可能である。復号さ
れた命令が割込み可能でない場合は、ステップ106で
、その命令が浮動小数点命令かどうか判定される。浮動
小数点命令でない場合は、ステップ100に戻る。これ
は、復号中の命令が実際には固定小数点数演算命令であ
る場合に起こる。ステップ106に戻って、コード化さ
れた命令が浮動小数点命令である場合、ステップ108
でその浮動小数点命令が実行される。この場合も、その
命令の実行が完了すると、ステップ100に戻る。
ステップ104に戻って、復号された命令が割込み可能
命令である場合は、ステップ110に進んで、パージ信
号及び同期化信号を監視する。パージ信号及び同期化信
号は、第1図では、固定小数点プロセッサ6の制御回路
30を浮動小数点プロセッサ8の制御回路52に接続す
る線29として示されている。ステップ112で、パー
ジ信号を受は取ったかどうか判定され、受は取った場合
は、ステップ116で、命令事前取出しバッファ40内
のすべての命令が消去され、ステップ100に戻る。ス
テップ112に戻って、パージ信号を受は取っていない
場合は、ステップ114で同期化信号が発生したかどう
か判定される。発生していない場合は、ステップ110
に戻って、この場合もこの2つの信号を監視する。同期
化信号を受は取った場合は、ステップ114からステッ
プ106に移って、実行される命令が浮動小数点命令で
あるかどうか判定する。このようにして、浮動小数点プ
ロセッサ8は、固定小数点プロセッサ6から同期化信号
を受は取る。しかし、命令が割込み可能でない場合は、
浮動小数点プロセッサ8は、固定小数点プロセッサ6か
らの同期化信号を必要としないことを理解されたい。し
たがって、浮動小数点プロセッサ8が、固定小数点プロ
セッサ6によって実行される命令から順番がくる前の命
令を実行することは、本発明によれば完全に許される。
第3図には、固定小数点プロセッサ6に対する制御の流
れが示されている。ステップ200で、命令事前取出し
バッファ20からの次の命令が復号回路22にシフトさ
れる。ステップ202で、この命令が復号される。ステ
ップ204で、命令が固定小数点ユニット命令かそれと
も浮動小数点ユニット命令かが判定される。命令が固定
小数点ユニット命令でない場合は、ステップ200に進
む。しかし、命令が固定小数点ユニット命令である場合
は、ステップ206に進む。固定小数点ロード命令及び
浮動小数点ストア命令はどちらも、固定小数点プロセッ
サ6によって固定小数点命令と見なされることを理解さ
れたい。というのは、どちらも固定小数点プロセッサ6
による固定小数点アドレスの計算を必要としないからで
ある。したがって、固定小数点プロセッサθ内で演算を
実行する必要のない浮動小数点命令では、ステップ20
0に戻る。他方、固定小数点プロセッサ6の動作を必要
とする、あるいは浮動小数点ロード命令または記憶命令
を必要とする固定小数点ユニット命令では、その命令を
実行するために、ステップ206に進むようにする。ス
テップ208で、命令の実行が完了したかどうか判定さ
れ、完了していない場合は、ステップ206で命令の実
行が続行される。命令の実行が完了すると、ステップ2
10に進んで、その命令が実際に割込み可能かどうか判
定する。その命令が割込み可能でない場合は、ステップ
200に戻る。しかし、その命令が割込み可能な場合は
、ステップ212で、命令の割込みが実際に発生したか
どうか判定される。命令の割込みが発生していない場合
は、ステップ214に進んで、同期化信号を線29(第
1図)を介して浮動小数点プロセッサ8の制御回路52
に供給する。その後、ステップ200に戻る。
命令の割込みが発生した場合は、ステップ216に進ん
で、(1)パージ信号を線29(第1図)を介して浮動
小数点プロセッサ8の制御回路52に供給し、(2)命
令事前取出しバッファ20のパージを行なう。ステップ
216が完了すると、ステップ200に戻る。
割込みによって命令事前取出しバッファ20及び40が
パージされる理由は、割込み処理ソフトウェアが実行さ
れ、したがって割込みの発生前に存在した命令事前取出
しバッファ内の残りの命令は実行されないからであるこ
とを理解されたい。
命令事前取出しバッファ20及び40をパージすること
により、命令キャッシュ10は、割込み発生後、適切な
命令を実行のため自由にロードすることができる。
第3図で留意すべきもう1つの点は、命令が割込み可能
である場合、ステップ216でパージ信号が発生され、
あるいはステップ214で同期化信号が発生されること
である。第2図を思い出すと、命令が割込み可能でない
場合、浮動小数点ユニットは、固定小数点プロセッサ6
から同期化信号を受信するのを待たない。第4図及び第
5図に、2つのプロセッサ6及び8の動作を示す。第4
図には、命令のリストを、各命令の実行に必要なサイク
ル数及びそれらの命令が割込可能かどうかということと
共に示す。第4図にリストした例では、どの命令も割込
み可能ではない。しかし、1つの命令(FXU−MUL
3)は実行するのに4サイクルを要する。FPUは浮動
小数点ユニット命令を表わす。FXUは固定小数点ユニ
ット命令を表わす。したがって、浮動小数点ユニット命
令は浮動小数点プロセッサ8で実行され、固定小数点ユ
ニット命令は固定小数点プロセッサ6で実行される。
第5図は、いくつかのサイクル(1ないし10)の間の
固定小数点ユニット・プロセッサ6 (FXU)及び浮
動小数点プロセッサ8 (FPU)のパイプライン式動
作を示すタイミング図である。パイプライン動作には、
シフト、復号、及び実行が含まれる。同期化線及びパー
ジ線は、同期化信号またはパージ信号の発生を示す。
第5図のサイクル1で、ADD1命令を、固定小数点ユ
ニット命令事前取出しバッファ20及び浮動小数点ユニ
ット命令事前取出しバッファ40が受は取る。サイクル
2で、ADDlが図のように両者によって復号される。
またサイクル2で、ADD2命令が、プロセッサ6及び
8の事前取出しバッファ20及び40にシフトされる。
サイクル3で、乗算(MUL3)命令がバッファ20及
び40にシフトされる。ADD2命令は、プロセッサ6
及び8によって復号される。しかし、ADD1命令は浮
動小数点命令なので、浮動小数点プロセッサ8によって
だけ実行される。サイクル4で、ADD4命令がシフト
され、MUL3命令が復号され、ADD2命令は固定小
数点命令なので、固定小数点プロセッサ6によって実行
される。サイクル5で、ADD5命令がバッファ20及
び40にシフトされる。ADD4命令が、プロセッサ6
及び8によって復号され、MUL3命令が固定小数点プ
ロセッサ6で実行される。サイクル6で、ADD5命令
はバッファ20内に残るが、ADD6命令は浮動小数点
プロセッサ8のバッファ40にロードされる。固定小数
点プロセッサ6内のADD5命令も、それが浮動小数点
プロセッサ8内にあるときと同様に復号される。乗算命
令(MUL3)は、引き続き固定小数点プロセッサ6内
で実行される。ADD4命令は、順番が(る前なのに、
浮動小数点プロセッサ8によって実行されることに留意
されたい。サイクル7で、MUL3命令が引き続き実行
され、ADD6命令が浮動小数点プロセッサ8で復号さ
れる。サイクル8で、MUL3命令が引き続き固定小数
点プロセッサ6で実行され、ADD6命令が浮動小数点
プロセッサ8で実行される。サイクル9で、ADD8命
令が、すでに浮動小数点プロセッサによって実行されて
いるのに、固定小数点プロセッサ6の固定小数点ユニッ
トで復号される。また、ADD5命令が固定小数点プロ
セッサ6で実行される。サイクル10では、ADD6命
令は浮動小数点命令であり、実際にはADD5命令より
前に(すなわち順番がくるより前に)実行されたので、
どちらのプロセッサも実行すべきパイプライン動作がな
い。
第6図及び第7図は、やはり固定小数点プロセッサ6及
び浮動小数点プロセッサ8の命令の流れの例を示す。た
だし、この例では、浮動小数点ロード命令(LOAD)
が実行される。第7図は第5図に類似した形でパイプラ
イン式動作の性能を示す。したがって、浮動小数点ロー
ドに必要な動作について説明する前にパイプライン動作
の性能について説明する。それらの動作は同じである。
サイクル5で、浮動小数点ロード命令が、バッファ20
及び40にロードされる。サイクル6で、この命令が復
号される。ただし、固定小数点プロセッサ6は、3サイ
クルを要する多重MUL3を実行していることに留意さ
れたい。したがって、サイクル7で、ロード命令は、浮
動小数点プロセッサ8で復号されているのに、固定小数
点プロセッサ6で実行されるのを待つ。ロード命令は、
固定小数点プロセッサ6でのアドレス計算の実行を待た
なければならないので、実行されない。しかし、ロード
命令のあとからくるADDe命令は復号される。サイク
ル8で、ロード動作が固定小数点プロセッサ6で実行さ
れた後、同期化信号(SYNC)が固定小数点プロセッ
サ6から供給される。
同期化信号が発生すると、浮動小数点プロセッサ8は、
ロード命令のための演算を実行する。最後に、ADD6
命令の実行が行なわれる。
第8図及び第9図も、命令シーケンスの別の例を示して
いる。この命令シーケンスは、第6図のそれに似ている
が、ロード命令は第6図では単に割込み可能な浮動小数
点ロード命令であったが、この場合は固定小数点ロード
命令であり、第8図で割込みを発生する。この場合も、
第8図の命令リストのタイミング図を第9図に示す。第
9図と第7図との相違はサイクル8にある。(固定小数
点ロード)命令が割込みを発生させたので、パージ信号
が固定小数点プロセッサ6から供給されることに留意さ
れたい。パージ信号を受は取ると、浮動小数点プロセッ
サ8は、命令事前取出しバッファ40の内容をパージす
る。この場合も、パージ信号が発生すると、浮動小数点
プロセッサ6も、その命令事前取出しバッファ20の内
容をパージする。
ロード命令及び記憶命令に対する割込みが起こるのは、
好ましい実施例ではページ不在(すなわち、メモリ内に
ない)が発生した場合である。言い換えれば、データ・
キャッシュが設けられており、ロードすべき命令がデー
タ・キャッシュ内またはメモリ内に含まれていない場合
は、このデータを外部メモリから取り出す動作を実行し
なければならない。外部メモリからこのデータを取り出
すには多数のサイクルを要し、この取出しを行なう命令
シーケンスは、割込みハンドラ内に含まれている。した
がって、命令キャッシュ10は、割込みが発生すると、
この取り出しを実行するための割込みハンドラ動作を含
むようになる。
【図面の簡単な説明】
第1図は、共通の命令キャッシュ及び共通のメモリに接
続された2つの処理装置を示すブロック図。 第2図は、浮動小数点プロセッサ用の 制御機能を示す流れ図。 第3図は、固定小数点プロセッサ用の 制御機能を示す流れ図。 第4図は、割込みを発生しない浮動小数点命令及び固定
小数点命令のリストを示す図である。 第5図は、第4図の命令シーケンスの実行を示すタイミ
ング図である。 第6図は、1個の割込み可能命令を含む命令シーケンス
のリストを示す図である。 第7図は、第6図の命令シーケンスの実行を示すタイミ
ング図である。 第8図は、割込みが実際には起こらない割込み可能命令
を含む命令シーケンスのリストを示す図である。 第9図は、第8図の命令シーケンスの実行を示すタイミ
ング図である。 6・・・・固定小数点プロセッサ、8・・・・浮動小数
点プロセッサ、10・・・・命令キャッシュ、20.4
0・・・・命令事前取出しバッファ、22.42・・・
・復号回路、24.44・・・・レジスタ・ファイル、
26・・・・演算論理機構(ALU) 、28.46・
・・・入出力回路、30152・・・・制御回路、48
・・・・乗算回路、50・・・・指数加算回路、54・
・・・加算回路、56・・・・丸め回路。 出願人  インターナシロナル・ビジネス・マシーンズ
拳コーポレーション 代理人  弁理士 頓 宮 孝 − 9可−一一一 ・丁−一

Claims (1)

  1. 【特許請求の範囲】 少なくとも2つのプロセッサ手段による動作を要する一
    連の命令を記憶するための命令記憶手段、前記命令記憶
    手段からの命令を実行するための複数のプロセッサ手段
    、及び 各命令を少なくとも前記プロセッサ手段の1つにタスク
    指名するための命令タスク指名手段を含み、 前記プロセッサ手段の少なくとも1つが、他のプロセッ
    サ手段が命令シーケンス中の前にある命令を実行する前
    に、タスク指名された命令を実行するための手段を含む データ処理システム。
JP2003662A 1989-01-13 1990-01-12 データ処理システム Expired - Lifetime JP2645669B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/297,783 US5075840A (en) 1989-01-13 1989-01-13 Tightly coupled multiprocessor instruction synchronization
US297783 1989-01-13

Publications (2)

Publication Number Publication Date
JPH02227769A true JPH02227769A (ja) 1990-09-10
JP2645669B2 JP2645669B2 (ja) 1997-08-25

Family

ID=23147726

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003662A Expired - Lifetime JP2645669B2 (ja) 1989-01-13 1990-01-12 データ処理システム

Country Status (13)

Country Link
US (1) US5075840A (ja)
EP (1) EP0377991B1 (ja)
JP (1) JP2645669B2 (ja)
KR (1) KR930004214B1 (ja)
CN (1) CN1013067B (ja)
AU (1) AU618142B2 (ja)
BR (1) BR9000112A (ja)
CA (1) CA1321655C (ja)
DE (1) DE68927911T2 (ja)
GB (1) GB2227108A (ja)
HK (1) HK1000050A1 (ja)
MY (1) MY105754A (ja)
PH (1) PH30201A (ja)

Families Citing this family (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5293500A (en) * 1989-02-10 1994-03-08 Mitsubishi Denki K.K. Parallel processing method and apparatus
US5768575A (en) * 1989-02-24 1998-06-16 Advanced Micro Devices, Inc. Semi-Autonomous RISC pipelines for overlapped execution of RISC-like instructions within the multiple superscalar execution units of a processor having distributed pipeline control for sepculative and out-of-order execution of complex instructions
US5226126A (en) * 1989-02-24 1993-07-06 Nexgen Microsystems Processor having plurality of functional units for orderly retiring outstanding operations based upon its associated tags
US5781753A (en) 1989-02-24 1998-07-14 Advanced Micro Devices, Inc. Semi-autonomous RISC pipelines for overlapped execution of RISC-like instructions within the multiple superscalar execution units of a processor having distributed pipeline control for speculative and out-of-order execution of complex instructions
US5185871A (en) * 1989-12-26 1993-02-09 International Business Machines Corporation Coordination of out-of-sequence fetching between multiple processors using re-execution of instructions
EP0547240B1 (en) * 1991-07-08 2000-01-12 Seiko Epson Corporation Risc microprocessor architecture implementing fast trap and exception state
EP1526446A3 (en) * 1991-07-08 2007-04-04 Seiko Epson Corporation Extensible RISC microprocessor architecture
US5539911A (en) * 1991-07-08 1996-07-23 Seiko Epson Corporation High-performance, superscalar-based computer system with out-of-order instruction execution
US5961629A (en) * 1991-07-08 1999-10-05 Seiko Epson Corporation High performance, superscalar-based computer system with out-of-order instruction execution
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
GB2263565B (en) * 1992-01-23 1995-08-30 Intel Corp Microprocessor with apparatus for parallel execution of instructions
US5438668A (en) 1992-03-31 1995-08-01 Seiko Epson Corporation System and method for extraction, alignment and decoding of CISC instructions into a nano-instruction bucket for execution by a RISC computer
US6735685B1 (en) 1992-09-29 2004-05-11 Seiko Epson Corporation System and method for handling load and/or store operations in a superscalar microprocessor
WO1994008287A1 (en) 1992-09-29 1994-04-14 Seiko Epson Corporation System and method for handling load and/or store operations in a superscalar microprocessor
US5410657A (en) * 1992-10-09 1995-04-25 International Business Machines Corporation Method and system for high speed floating point exception enabled operation in a multiscalar processor system
EP0596410B1 (en) * 1992-11-04 1999-07-28 Digital Equipment Corporation Detection of command synchronisation error
JP2549256B2 (ja) * 1992-12-01 1996-10-30 インターナショナル・ビジネス・マシーンズ・コーポレイション 浮動小数点プロセッサへデータを転送する方法及び装置
JP3182591B2 (ja) * 1993-01-20 2001-07-03 株式会社日立製作所 マイクロプロセッサ
GB9305263D0 (en) * 1993-03-15 1993-05-05 Univ Westminster Parrallel computation
JP2596712B2 (ja) * 1993-07-01 1997-04-02 インターナショナル・ビジネス・マシーンズ・コーポレイション 近接した分岐命令を含む命令の実行を管理するシステム及び方法
CA2123442A1 (en) * 1993-09-20 1995-03-21 David S. Ray Multiple execution unit dispatch with instruction dependency
US5740398A (en) * 1993-10-18 1998-04-14 Cyrix Corporation Program order sequencing of data in a microprocessor with write buffer
US5471598A (en) * 1993-10-18 1995-11-28 Cyrix Corporation Data dependency detection and handling in a microprocessor with write buffer
US5615402A (en) * 1993-10-18 1997-03-25 Cyrix Corporation Unified write buffer having information identifying whether the address belongs to a first write operand or a second write operand having an extra wide latch
US5584009A (en) * 1993-10-18 1996-12-10 Cyrix Corporation System and method of retiring store data from a write buffer
US6219773B1 (en) 1993-10-18 2001-04-17 Via-Cyrix, Inc. System and method of retiring misaligned write operands from a write buffer
TW353732B (en) * 1994-03-31 1999-03-01 Ibm Processing system and method of operation
CN1048344C (zh) * 1994-05-24 2000-01-12 禹成海 一种适度耦合多处理机系统的体系结构
US5465336A (en) * 1994-06-30 1995-11-07 International Business Machines Corporation Fetch and store buffer that enables out-of-order execution of memory instructions in a data processing system
US5666506A (en) * 1994-10-24 1997-09-09 International Business Machines Corporation Apparatus to dynamically control the out-of-order execution of load/store instructions in a processor capable of dispatchng, issuing and executing multiple instructions in a single processor cycle
US5805906A (en) * 1996-10-15 1998-09-08 International Business Machines Corporation Method and apparatus for writing information to registers in a data processing system using a number of registers for processing instructions
US5860014A (en) * 1996-10-15 1999-01-12 International Business Machines Corporation Method and apparatus for improved recovery of processor state using history buffer
US5870612A (en) * 1996-10-15 1999-02-09 International Business Machines Corporation Method and apparatus for condensed history buffer
US6070235A (en) * 1997-07-14 2000-05-30 International Business Machines Corporation Data processing system and method for capturing history buffer data
US6065086A (en) * 1998-02-17 2000-05-16 International Business Machines Corporation Demand based sync bus operation
US6564298B2 (en) 2000-12-22 2003-05-13 Intel Corporation Front end system having multiple decoding modes
US20070083192A1 (en) * 2005-10-07 2007-04-12 Eric Welch Apparatus and method for ablation of targeted tissue
TWI348652B (en) * 2005-10-17 2011-09-11 Via Tech Inc Driver assisted asynchronous command processing
US20070157030A1 (en) * 2005-12-30 2007-07-05 Feghali Wajdi K Cryptographic system component
US20070192571A1 (en) * 2006-02-14 2007-08-16 Feghali Wajdi K Programmable processing unit providing concurrent datapath operation of multiple instructions
CN102617431B (zh) * 2011-01-28 2013-09-25 天津滨海索尔特生物技术中心有限公司 用无机碱提取盐藻中的β-胡萝卜素的方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3793631A (en) * 1972-09-22 1974-02-19 Westinghouse Electric Corp Digital computer apparatus operative with jump instructions
JPS6231379A (ja) * 1985-07-31 1987-02-10 Nippon Kogaku Kk <Nikon> 超音波モータ
JPS6246341A (ja) * 1985-08-23 1987-02-28 Hitachi Ltd 付加プロセツサの入出力制御方法
EP0226226A2 (en) * 1985-12-19 1987-06-24 Wang Laboratories Inc. System for floating point operations
JPS6365528A (ja) * 1986-09-06 1988-03-24 Nec Corp コ・プロセツサ

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3229260A (en) * 1962-03-02 1966-01-11 Ibm Multiprocessing computer system
US3896418A (en) * 1971-08-31 1975-07-22 Texas Instruments Inc Synchronous multi-processor system utilizing a single external memory unit
GB1441458A (en) * 1972-06-28 1976-06-30 Texas Instruments Inc Stored programme data processing for parallel processing of programme segment
CH556576A (de) * 1973-03-28 1974-11-29 Hasler Ag Einrichtung zur synchronisierung dreier rechner.
FR2471631B1 (fr) * 1979-12-11 1986-02-21 Cii Honeywell Bull Dispositif de synchronisation et d'affectation de processus entre plusieurs processeurs dans un systeme de traitement de l'information
JPS6043535B2 (ja) * 1979-12-29 1985-09-28 富士通株式会社 情報処理装置
JPS58114274A (ja) * 1981-12-28 1983-07-07 Hitachi Ltd デ−タ処理装置
US4498136A (en) * 1982-12-15 1985-02-05 Ibm Corporation Interrupt processor
US4564901A (en) * 1983-07-21 1986-01-14 Burroughs Corporation Method of performing a sequence of related activities via multiple asynchronously intercoupled digital processors
JP2610821B2 (ja) * 1986-01-08 1997-05-14 株式会社日立製作所 マルチプロセツサシステム
JPS63282528A (ja) * 1987-02-04 1988-11-18 Sharp Corp 中央処理装置実行命令の検出方式
ATE85853T1 (de) * 1987-03-20 1993-03-15 Digital Equipment Corp Vorrichtung und verfahren zur synchronisation von arithmetischen exceptionen in parallelen pipeline-ausfuehrungseinheiten.
EP0312764A3 (en) * 1987-10-19 1991-04-10 International Business Machines Corporation A data processor having multiple execution units for processing plural classes of instructions in parallel
US4937741A (en) * 1988-04-28 1990-06-26 The Charles Stark Draper Laboratory, Inc. Synchronization of fault-tolerant parallel processing systems

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3793631A (en) * 1972-09-22 1974-02-19 Westinghouse Electric Corp Digital computer apparatus operative with jump instructions
JPS6231379A (ja) * 1985-07-31 1987-02-10 Nippon Kogaku Kk <Nikon> 超音波モータ
JPS6246341A (ja) * 1985-08-23 1987-02-28 Hitachi Ltd 付加プロセツサの入出力制御方法
EP0226226A2 (en) * 1985-12-19 1987-06-24 Wang Laboratories Inc. System for floating point operations
JPS6365528A (ja) * 1986-09-06 1988-03-24 Nec Corp コ・プロセツサ

Also Published As

Publication number Publication date
EP0377991A3 (en) 1991-07-31
JP2645669B2 (ja) 1997-08-25
EP0377991A2 (en) 1990-07-18
HK1000050A1 (en) 1997-10-24
AU618142B2 (en) 1991-12-12
MY105754A (en) 1995-01-30
KR930004214B1 (ko) 1993-05-21
EP0377991B1 (en) 1997-03-26
CN1013067B (zh) 1991-07-03
DE68927911T2 (de) 1997-09-18
AU4433789A (en) 1990-07-19
CN1044177A (zh) 1990-07-25
BR9000112A (pt) 1990-10-23
GB2227108A (en) 1990-07-18
DE68927911D1 (de) 1997-04-30
PH30201A (en) 1997-02-05
KR900012155A (ko) 1990-08-03
GB8928776D0 (en) 1990-02-28
CA1321655C (en) 1993-08-24
US5075840A (en) 1991-12-24

Similar Documents

Publication Publication Date Title
JPH02227769A (ja) データ処理システム
EP0437044B1 (en) Data processing system with instruction tag apparatus
EP0207665B1 (en) Bidirectional branch prediction and optimization
US6374347B1 (en) Register file backup queue
US4782441A (en) Vector processor capable of parallely executing instructions and reserving execution status order for restarting interrupted executions
US4594655A (en) (k)-Instructions-at-a-time pipelined processor for parallel execution of inherently sequential instructions
JP2597811B2 (ja) データ処理システム
EP0378830B1 (en) Method and apparatus for handling multiple condition codes as for a parallel pipeline computer
US5699279A (en) Optimized binary adders and comparators for inputs having different widths
EP0762270B1 (en) Microprocessor with load/store operation to/from multiple registers
US5043867A (en) Exception reporting mechanism for a vector processor
EP0682309A2 (en) Data processing system adapted for single instruction branching on multiple condition codes from plural processing elements
US5590351A (en) Superscalar execution unit for sequential instruction pointer updates and segment limit checks
US20030005261A1 (en) Method and apparatus for attaching accelerator hardware containing internal state to a processing core
JP3207124B2 (ja) カウント/リンク・レジスタ変更命令の投機実行をサポートする方法及び装置
JPH03286332A (ja) デジタルデータ処理装置
JP2620505B2 (ja) スーパースカラ・プロセッサ・システムの同期化効率を向上させる方法およびシステム
EP0762271A2 (en) Early completion of floating-point operations during load/store multiple operations
EP1050805B1 (en) Transfer of guard values in a computer system
CN112579168B (zh) 指令执行单元、处理器以及信号处理方法
EP0314342B1 (en) Parallel pipelined computer processor
JPS61136132A (ja) 情報処理装置
KR20010085353A (ko) 고속 컨텍스트 전환을 갖는 컴퓨터
JPH10283178A (ja) 命令を発行するための方法及びシステム
JPH0279122A (ja) 浮動小数点演算機構