JP2503164B2 - デ―タ処理システム - Google Patents

デ―タ処理システム

Info

Publication number
JP2503164B2
JP2503164B2 JP4182510A JP18251092A JP2503164B2 JP 2503164 B2 JP2503164 B2 JP 2503164B2 JP 4182510 A JP4182510 A JP 4182510A JP 18251092 A JP18251092 A JP 18251092A JP 2503164 B2 JP2503164 B2 JP 2503164B2
Authority
JP
Japan
Prior art keywords
instruction
instructions
execution
data processing
processing system
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
JP4182510A
Other languages
English (en)
Other versions
JPH05233286A (ja
Inventor
リチャード、エドマンド、フライ
トロイ、ニール、ヒックス
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 JPH05233286A publication Critical patent/JPH05233286A/ja
Application granted granted Critical
Publication of JP2503164B2 publication Critical patent/JP2503164B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime 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/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • G06F9/3889Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute
    • 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/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units

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)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、データ処理システム、
より詳細には、複数の実行ユニットを持つデータ処理シ
ステム内においてインストラクションをシーケンスの順
番を越えて並列に実行するデータ処理システム及びデー
タ処理方法に関する。
【0002】
【従来の技術】データ処理システムは、歴史的に、イン
ストラクションが順番に実行されることを要求してき
た。データ処理システム内において、インストラクショ
ンをできる限り迅速に実行することは、勿論、有益なこ
とである。インストラクションの実行を速くするための
先行技術による一つの方法は、一つの実行ユニットを使
用し、スループットを上げる方法である。第二の方法
は、複数の実行ユニットを使用し、インストラクション
をできるだけ多く並列に実行する方法である。複数の実
行ユニット内でインストラクションを並列に実行する場
合、インストラクション間のデータの依存性を処理する
ための方法を提供することが必要である。
【0003】非並列データ処理システム内において、デ
ータの依存性を扱うための一つの方法が『メインメモリ
への或はこれからのデータ伝送と重複するCPUレジス
タからレジスタへのデータ伝送を持つデータ処理システ
ム(Data Processing Systemwith CPU Register to Reg
ister Data Transfers Overlapped with Data Transfer
to and from Main Storage)』と言う名称の合衆国特
許第4,630,195号において開示されている。こ
の方法は、あるインストラクションによって使用される
べきレジスタが保留状態のI/Oインストラクションの
対象であるか否かを決定するためにレジスタ上のタグを
使用する。そのレジスタが空いているときは、このイン
ストラクションはこのI/Oインストラクションが完結
することを待つことなく実行できる。但し、この方法
は、並列処理スキームを伴うことはない。
【0004】並列データ処理システム内においてデータ
依存性を扱うための一つの方法はプログラムをデータフ
ローに従って表現する方法である。この方法の一例が、
IEEEトランザクション・オン・コンピュータ(IEEE
Transactions on Computers)、Vol.C−26、N
o.2、1977年2月号、ページ138−146に掲
載の論文『データフロー多重プロセッサ(A Data Flow
Multiprocessor)』において開示されている。この方法
においては、インストラクションは個々が要求するオペ
ランドに従ってモジュールに分離される。あるインスト
ラクションが第二のインストラクションに依存する場合
は、これは第二のインストラクションと同一モジュール
内におかれる。個々のモジュールは自己完結型であり、
全てのデータ依存性が含まれているために副作用を生じ
ることはない。従って、複数のプロセッサが自由に複数
のモジュールを同時に実行することができる。この方法
の短所は、これが従来のシステムと全く異なるユニーク
なデータフロー言語を要求することである。
【0005】並列データ処理システム内のインストラク
ションを扱うための第二の方法は、プロセッサを同期さ
せる方法である。IBM技術小冊子(IBM Technical Di
sclosure Bulletin )、Vol.32、No.7、19
89年12月号、ページ109−113に掲載の論文
『複数のプロセッサを同期するためのデバイス(Device
for Synchronizing Multiple Processors)』は複数の
プロセッサを同期するためのデバイスを開示する。この
デバイスはバリア(barrier )同期能力、及び複数のプ
ロセスからの複数の要求を直列化する能力を持つ。バリ
ア同期は、シーケンスのインストラクション内の任意の
プロセスがこのバリアをパスする前に全てのプロセスが
到達しなければならないポイントである。直列化動作
は、複数の同時的な要求の個々に優先順位を示すために
固有の整数を割り当て、また個々のプロセスにシステム
資源の固有のセットを割り当てる動作である。この方法
は、あまりにも厳格すぎ、インストラクションがそれら
のもとの順番を越えて実行されることを許さないという
問題を持つ。
【0006】『浮動小数点動作のための方法及び装置
(Method and Apparatus for Floating Point Operatio
n )』という名称の合衆国特許第4,763,294号
は、インストラクションのタイプに応じて固定小数点プ
ロセッサと浮動小数点プロセッサを同期するための装置
を開示する。浮動小数点インストラクションはインター
ロックを要求する第一のグループのメンバーか或はイン
ターロックを要求しない第二のグループのメンバーかの
いずれかである。いずれの場合も、固定小数点ユニット
は浮動小数点インストラクションのディスパッチを制御
し、浮動小数点プロセッサがアイドル状態になるのを待
たなければならない。こうして、固定小数点プロセッサ
は、常に、それらインストラクションをそれらの元のシ
ーケンス順で見ている。
【0007】『先行インストラクションと後続インスト
ラクションの間でオペランドデータを直接に伝送するた
めのパイプライン連結された並列データ処理装置(Pipe
lined Parallel Data Processing Apparatus for Direc
tly Transferring Operand Data between Preceding an
d Succeeding Instructions )』という名称の合衆国特
許第4,916,606号はあるインストラクションが
前のインストラクションの結果を使用する場合を検出
し、データを直接に後続インストラクションに供給する
装置を開示する。これはデータ検索ステップを不要に
し、実行の速度を向上させるが、但し、並列処理インス
トラクションをシーケンスを越えて実行することは許さ
ない。
【0008】『並列処理タイプの演算動作処理装置及び
この装置内で使用されるコンパイラ(Arithmetic Opera
tion Processing Apparatus of the Parallel Processi
ng Type and Compiler which is Used in this Appara
tus )』という名称の合衆国特許第4,956,800
号は実行シーケンス及び入/出力シーケンスを並列にて
実行することを可能にすることにより高速にて演算動作
プロセスを遂行するための装置を開示する。これは、実
行速度を向上させるが、これらインストラクションはこ
の場合もシーケンス順にて実行される。
【0009】
【発明が解決しようとする課題】上に詳細に説明された
参照文献のいずれも一つの実行ユニットがその実行ユニ
ット内のインストラクションの正しい実行が第二の実行
ユニット内のインストラクションの実行の完了に依存す
る場合にのみ遅延されるような独立した複数の実行ユニ
ット内のインストラクションをシーケンス順を越えて並
列実行するメカニズムについては開示しない。
【課題を解決するための手段】上記課題を達成するため
本発明のデータ処理システムは、第1及び第2の実行ユ
ニットと、上記実行ユニットに接続されて、インストラ
クション実行のために上記実行ユニットにインストラク
ションのシーケンスからインストラクションを供給する
手段と、上記実行ユニットに接続されて、上記第1の実
行ユニット内の第1のインストラクションに、上記シー
ケンスにおいて上記第1のインストラクションに先行す
る上記第2の実行ユニット内のインストラクションのカ
ウントを関連付ける手段と、上記関連付ける手段に接続
されて、上記第1のインストラクションに関連するカウ
ントがゼロでなく、かつ、正しい結果を得るために上記
第2のインストラクションが上記第1のインストラクシ
ョンに優先して実行されなければならないとき、前記第
2の実行ユニット内の第2のインストラクションの実行
が完了するまで上記第1のインストラクションの実行を
遅延させる手段と、上記関連付ける手段に接続されて、
上記第1のインストラクションに関連するカウントが上
記第2のインストラクションに先行する上記第2の実行
ユニット内のインストラクションの数よりも少ないか又
は等しく、かつ、正しい結果を得るために上記第1のイ
ンストラクションが上記第2のインストラクションに優
先して実行されなければならないとき、上記第1のイン
ストラクションの実行が完了するまで上記第2のインス
トラクションの実行を遅延させる手段と、を備えること
を特徴とする。
【0010】
【作用】本発明によると、各々がインストラクションを
格納及び実行するための独立した回路を含む複数の実行
ユニットを持つデータ処理システムが提供される。ま
た、シーケンスの複数のインストラクションからこれら
実行ユニットにインストラクションを供給するための回
路が提供されるが、ここでは、個々のインストラクショ
ンはこれら複数の実行ユニットの一つのみに提供され
る。このシステムは第一の実行ユニット内のインストラ
クションが正しい結果を得るために第二の実行ユニット
内のインストラクションの実行の前に実行を完了しなけ
ればならない場合を検出するための回路を含む。さら
に、この検出回路に応答して、第二の実行ユニット内の
インストラクションの実行を第一の実行ユニット内のイ
ンストラクションが実行を完了するまで遅延するための
回路が提供される。
【0011】一つの好ましい実施例においては、これら
インストラクションがインストラクションの複数のクラ
スの一つに属し、個々の実行ユニットが一つのクラスの
インストラクションを実行するために専用化されるデー
タ処理システムが提供される。このシステムはさらに個
々のインストラクションのクラスを決定するための回路
及びあるクラスに属するインストラクションをそのクラ
スのインストラクションを実行するために専用化された
実行ユニットに提供するための回路を含む。さらに、第
一の実行ユニット内の個々のインストラクションと第二
の実行ユニット内の元のシーケンスにおいてこれに先行
するインストラクションの数とを関連付けるための回路
が提供される。最後に、(1)第一の実行ユニット内の
インストラクションの実行をそのインストラクションと
関連するカウントがゼロでなく、また正しい結果を得る
ために第二の実行ユニット内のそのインストラクション
に先行するインストラクションがそのインストラクショ
ンの前に実行されなければならないときにのみ遅延し、
(2)第二の実行ユニット内のインストラクションの実
行を第一の実行ユニット内のインストラクションと関連
するカウントが第二の実行ユニット内のこのインストラ
クションに先行する第二の実行ユニット内のインストラ
クションの数以下或はこれに等しく、また第一の実行ユ
ニット内のインストラクションが正しい結果を得るため
に第二の実行ユニット内のインストラクションの前に実
行されなければならないときにのみ遅延するための回路
が含まれる。
【0012】
【実施例】本発明の特質であると信じられる新規の特徴
は特許請求の範囲に示される通りである。但し、本発明
自体、及び本発明のその他の特徴及び長所は、好ましい
実施例の以下の説明を図面を参照にしながら読むことで
一層理解できるものである。
【0013】本発明においては、浮動小数点ユニット
(floating point unit )内の別個の実行ユニット(ex
ecution unit)内でインストラクションを独立して実行
できる能力を持つデータ処理システムが提供される。結
果として、インストラクションをシーケンスに従わずに
実行することができる。これら複数の別個の実行ユニッ
トは、互いに、異なる実行ユニット内の二つのインスト
ラクションが片方のインストラクションの正しい結果が
他方のインストラクションの実行の完了に依存するため
にシーケンスに従って実行されなければならないような
ケースにおいてのみ待つ。
【0014】図1は好ましい実施例によるデータ処理シ
ステムのブロック図である。このシステムは、メインメ
モリ(10)、インストラクションユニット(12)、
固定小数点ユニット(14)、浮動小数点ユニット(1
6)、及びデータキャッシュ(18)を含む。メインメ
モリはインストラクションユニットにメモリバス(2
0)によって接続される。インストラクションユニット
は固定小数点ユニット及び浮動小数点ユニットにインス
トラクションバス(22)によって接続される。浮動小
数点ユニットと固定小数点ユニットはデータバス(2
4)によって相互接続され、またデータキャッシュにデ
ータバス(24)によって接続される。固定小数点ユニ
ットは、メインメモリ及びデータキャッシュにデータア
ドレスバス(26)によって接続される。データキャッ
シュはバス(28)によってメインメモリに接続され
る。
【0015】この好ましい実施例においては、インスト
ラクションユニットは、インストラクションのためのロ
ーカル高速メモリとして機能する。これは、メインメモ
リからインストラクションを取り、これらを固定小数点
ユニット及び浮動小数点ユニットにディスパッチする。
固定小数点ユニット及び浮動小数点ユニットはそれらの
夫々のインストラクションを同期的に実行する。浮動小
数点ユニット内には、先取りバッファ(30)、演算イ
ンストラクション実行ユニット(54)、及び格納イン
ストラクション実行ユニット(56)が存在する。これ
ら要素の個々の機能については図2との関連で説明され
る。データを格納したい場合、或はメモリからロードし
たい場合、固定小数点ユニットはアドレスバス(26)
上にアドレスを置く。データはデータバス(24)上を
転送される。データキャッシュはデータに対するローカ
ル高速メモリとして機能し、バス(28)上のメインメ
モリとインターフェースする。
【0016】図2は図1の浮動小数点ユニット(16)
のブロック図である。インストラクション先取りバッフ
ァ(30)はインストラクションユニット(図1の1
2)によって送られたインストラクションバス(22)
からのインストラクションを逐次的に格納する。インス
トラクション先取りバッファ(Instruction Prefetch B
uffer 、IPB)はインストラクションを一度に4つ格
納するが、シーケンスの第一のインストラクションはI
PB1内に格納され、最後のインストラクションはIP
B4内に格納される。演算インストラクション待ち行列
コントロール(36)及び格納インストラクション待ち
行列コントロール(38)は複数のIPBからインスト
ラクションを選択し、これらを、それぞれ、バス(5
0)及び(52)上の演算インストラクション実行ユニ
ット(54)及び格納インストラクション実行ユニット
(56)に与える。
【0017】演算インストラクションが演算インストラ
クション実行ユニット内に入れられると、格納インスト
ラクションカウントコントロール(40)は格納インス
トラクション実行ユニット内のこれに先行する格納イン
ストラクションの数をカウントする。格納インストラク
ションカウントコントロールは、次に、関連する格納イ
ンストラクションカウントフィールド(24)をセット
する。格納インストラクションカウントコントロールに
よって数えられたカウントは“格納インストラクション
カウント(store count)”と呼ばれる。格
納インストラクションカウントフィールドは演算インス
トラクション実行ユニット内の個々の演算インストラク
ションと関連する格納インストラクションカウントを保
持するための一つの要素を持つ。一つの格納インストラ
クションが実行されると、格納インストラクションカウ
ントコントロールは格納インストラクションカウントフ
ィールド内の格納インストラクションカウントを1だけ
減分する。
【0018】演算インストラクション実行ユニット(Ar
ithmetic Execution Unit 、ArEU)は、演算インス
トラクション待ち行列(32)、演算インストラクショ
ン実行論理(46)、及び演算インストラクション実行
決定コントロール(42)を含む。同様に、格納インス
トラクション実行ユニット(Store Execution Unit、S
tEU)は、格納インストラクション待ち行列(3
4)、格納インストラクション実行論理(48)、及び
格納インストラクション実行決定コントロール(44)
を含む。演算インストラクション待ち行列(Arithmetic
Instruction Queue、AQ)及び格納インストラクショ
ン待ち行列(Store Instruction Queue 、SQ)は、そ
れぞれ、ArEU54及びStEU56に供給されたイ
ンストラクションを格納する。演算インストラクション
実行論理(Arithmetic Execute Logic、ArEL)46
及び格納インストラクション実行論理(Store Execute
Logic、StEL)48はこれらインストラクションを
実行する。演算インストラクション実行決定コントロー
ル(Arithmetic Execute Decision Control 、ArED
C)42及び格納インストラクション実行決定コントロ
ール(Store Execute Decision Control、StEDC)
44は、AQ32及びSQ34内のインストラクション
がいつ実行できるかを制御する機能を持つ。ArEDC
42はライン(54)上に実行信号を供給し、StED
C44はライン(55)上に実行信号を供給する。イン
ストラクションは、ArEL46及びStEL48に、
それぞれ、バス(53)及び(56)を通じて送られ
る。
【0019】ArEDC42及びStEDC44は、各
々、格納インストラクションカウントフィールド及びラ
イン(57)及びライン(58)によって示される2つ
のインストラクション待ち行列内のインストラクション
を参照して夫々の実行ユニット内のインストラクション
の実行を制御する。待ち行列の最も下の位置内のインス
トラクションから開始し、個々の決定コントロールは、
待ち行列の最も下の二つの位置内のインストラクション
の一つが実行できるか否かをチェックする。決定コント
ロールは、インストラクションの実行を、これが、この
インストラクションと他の実行ユニットの待ち行列内の
インストラクションの一つとの間に依存性が発見された
時にのみ遅延させなければならない
【0020】これら二つの決定コントロールはどのイン
ストラクションが依存する可能性を持つかを判定するた
めにAQ内の個々のインストラクションと関連する格納
インストラクションカウントを使用する。例えば、Ar
EDC42は、インストラクションの格納インストラク
ションカウントがゼロの場合、このインストラクション
の前に格納インストラクションは存在せず、これが実行
できることを知る。但し、インストラクションの格納イ
ンストラクションカウントがゼロより大きな場合は、A
rEDC42はそのインストラクションがそれに先行す
いずれかの格納インストラクションのターゲットの上
に書き込むか否かをチェックしなければならない。St
EDC44は演算インストラクションの格納インストラ
クションカウントがゼロでないときは、そのインストラ
クションの前に格納インストラクションが存在し、一つ
の格納インストラクションが実行できることを知る。他
方、演算インストラクションの格納インストラクション
カウントがゼロのときは、StEDC44はその演算イ
ンストラクションがそれが実行を望む格納インストラク
ションのターゲットに書き込もうとしているか否かをチ
ェックしなければならない。そうでない場合は、この格
納インストラクションは実行できる。但し、その格納イ
ンストラクションが演算インストラクションのターゲッ
に格納しようとしているときは、この格納インストラ
クションは演算インストラクションが実行されるのを待
たなければならない。
【0021】図3は格納インストラクション実行決定コ
ントロール44がいかにして格納インストラクション待
ち行列内のインストラクションをチェックするかのフロ
ーチャートである。この図面はSQ0内の格納インスト
ラクションのチェックの最初の数ステップを示す。最初
に、ステップ(100)において、StEDC44はA
Q0内の演算インストラクションの格納インストラクシ
ョンカウントをチェックする。格納インストラクション
カウントがゼロでないときは、この格納インストラクシ
ョンがシーケンス内の最初となり、StEDC44はス
テップ(102)に進み、この格納インストラクション
を実行する。格納インストラクションカウントがゼロの
ときは、演算インストラクションが最初となり、StE
DC44はステップ(104)に進み、AQ0演算イン
ストラクションのターゲットレジスタとSQ0格納イン
ストラクションのターゲットレジスタを比較する。ター
ゲットが一致するときは、この格納インストラクション
はステップ(106)において遅延される(図中に“保
持(Hold)”として示されている)。ターゲットが
一致しないときは、StEDC44はステップ(10
8)に進み、AQ1内のインストラクションの格納イン
ストラクションカウントをチェックする。上と同様に、
格納インストラクションカウントがゼロでないときは、
この格納インストラクションが最初となり、StEDC
44はステップ(110)においてこの格納インストラ
クションを実行することができる。AQ1内のインスト
ラクションの格納インストラクションカウントがゼロの
ときは、格納インストラクション決定コントロールは、
AQ1内の演算インストラクションのターゲットレジス
タがSQ0内の格納インストラクションのターゲットレ
ジスタと同一であるか否かチェックしなければならな
い。これらが同一であるときは、StEDC44はステ
ップ(114)に進み、実行を遅延しなければならな
い。同一でないときは、StEDC44はAQ2内の演
算インストラクションを実行する。このプロセスが演算
インストラクション待ち行列内の全てのインストラクシ
ョンがチェックされるまで継続される。格納インストラ
クションのターゲットレジスタがいずれのAQターゲッ
トレジスタとも一致しないときは、格納インストラクシ
ョンは、元のシーケンス内でそれが演算インストラクシ
ョンに続く場合でも、実行することができる。
【0022】図4は格納インストラクション待ち行列内
の全てのインストラクションをチェックするための図3
の圧縮されたバージョンを示すフローチャートである。
図4において、変数“x”は演算インストラクション待
ち行列内の位置を表わし、0から7までの値を持つ。変
数“n”は格納インストラクション待ち行列内の位置を
表わし、これも、0から7までの値を持つ。ステップ
(120)の最初の反復において、SQ0に対する
“n”はゼロであり、AQ0に対する“x”はゼロであ
る。ステップ(120)において、StEDC44はA
Qx内の演算インストラクションの格納インストラクシ
ョンカウントをそれが実行のためにチェックしている格
納インストラクションの位置に1を加えた数と比較す
る。例えば、StEDC44がSQ1内の格納インスト
ラクションをチェックしている場合は、これはAQ内の
インストラクションの格納インストラクションカウント
を数“2”と比較する。格納インストラクションカウン
トがこれに等しいかこれ以上であるときは、この格納イ
ンストラクションは演算インストラクションの前に来
て、この格納インストラクションはステップ(122)
において実行することができる。格納インストラクショ
ンカウントがこれより小であるときは、演算インストラ
クションが最初に来て、StEDC44はステップ(1
24)に進む。ステップ(124)において、StED
C44はこれら二つのインストラクションのターゲット
レジスタを比較する。これら二つのインストラクション
が同一のターゲットレジスタを持つときは、StEDC
44はステップ(126)に進み、格納インストラクシ
ョンを遅延する。これらターゲットレジスタが等しくな
いときは、StDECはステップ(128)に進み、
“x”を増分する。StEDC44は、次にステップ
(120)へと進み、演算インストラクション待ち行列
内の次のインストラクションの処理を行なう。StED
C44はSQ内の最初の二つの格納インストラクション
に対してこのプロセスを遂行し、実行可能である最初の
格納インストラクションを実行する。
【0023】図5は演算インストラクション実行決定コ
ントロールが演算インストラクション待ち行列内のイン
ストラクションをいかにチェックするかについてのフロ
ーチャートである。この図面は、AQ0内の演算インス
トラクションのチェックの最初の数ステップを示す。ス
テップ(200)において、ArEDC42はAQ0内
のインストラクションの格納インストラクションカウン
トがゼロであるか否かチェックする。格納インストラク
ションカウントがゼロのときは、ArEDC42はステ
ップ(202)に進み、この演算インストラクションが
これに先行する格納インストラクションを持たないた
め、AQ0内の演算インストラクションを実行する。格
納インストラクションカウントがゼロに等しくないとき
は、ArEDC42はステップ(204)に進む。この
演算インストラクションの前に格納インストラクション
先行するために、ArEDC42はAQ0内の演算イ
ンストラクションのターゲットとSQ0内の格納インス
トラクションのターゲットを比較する。これにターゲッ
トが一致する場合は、ステップ(206)において、演
算インストラクションが遅延される。これらターゲット
が一致しないときは、ArEDC42はステップ(20
8)に進み、AQ0内のインストラクションの格納イン
ストラクションカウントが1に等しいか否かチェックす
る。1に等しいときは、ArEDC42は、この決定コ
ントロールがSQ0内の一つの先行する格納インストラ
クションを既にチェック済であるために、ステップ(2
10)においてこの演算インストラクションを実行する
ことができる。格納インストラクションカウントが1に
等しくないときは、ArEDC42はステップ(21
2)へと進む。ステップ(212)において、ArED
C42はAQ0内の演算インストラクションのターゲッ
トをSQ1内の格納インストラクションのターゲットと
比較する。これらターゲットが等しい場合は、ArED
C42は、ステップ(214)に進み、演算インストラ
クションを遅延する。これらターゲットが一致しないと
きは、ArEDC42はプロセスを継続する。演算イン
ストラクションのターゲットレジスタがSQターゲット
レジスタのいずれとも一致しないときは、この演算イン
ストラクションは、これが元のシーケンス内において格
納インストラクションに続く場合でも実行することがで
きる。
【0024】図6は演算インストラクション待ち行列内
の全てのインストラクションをチェックするための図5
の圧縮バージョンのフローチャートを示す。図4に示さ
れるように、変数“x”は演算インストラクション待ち
行列内の位置を表わし、0から7の値を取る。変数
“n”は格納インストラクション待ち行列内の位置を表
わし、これも、0から7の値を取る。ステップ(22
0)の最初の反復において、SQ0に対する“n”はゼ
ロであり、AQ0に対する“x”はゼロである。ステッ
プ(220)において、ArEDC42は、AQx内の
演算インストラクションと関連する格納インストラクシ
ョンカウントを“n+1”と比較する。格納インストラ
クションカウントが“n+1”以上でないときは、この
格納インストラクションは演算インストラクションに続
き、この演算インストラクションはステップ(222)
において実行することができる。格納インストラクショ
ンカウントが“n+1”に等しいかこれ以上のときは、
ArEDC42は、この格納インストラクションが演算
インストラクションの前に来るためにステップ(24
4)に進む。ステップ(224)において、ArEDC
42は演算インストラクションと格納インストラクショ
ンのターゲットレジスタを比較する。これら二つのター
ゲットが同一であるときは、ArEDC42はステップ
(226)に進み、演算インストラクションを格納イン
ストラクションが実行されるまで遅延する。これらター
ゲットが一致しないときは、ArEDC42はステップ
(228)に進み、“n”を増分する。ArEDC42
はステップ(220)に戻り、次の格納インストラクシ
ョンに対してこれら全てのステップを再度実行する。A
rEDC42はAQ内の最初の二つの演算インストラク
ションに対してこのプロセスを遂行し、実行可能な最初
の演算インストラクションを実行する。
【0025】図7は格納インストラクション実行ユニッ
ト内の格納インストラクションを遅延する一例としての
ブロック図を示す。インストラクションの流れは二つの
加算インストラクション及びこれに続く一つの格納イン
ストラクションである。第一の加算インストラクション
そのターゲットとしてレジスタ2を持ち、第二の加算
インストラクションはそのターゲットとしてレジスタ4
を持ち、格納インストラクションはそのターゲット(或
はソース)としてレジスタ2を持つ。図7に示されるよ
うに、第一及び第二の加算インストラクションは演算イ
ンストラクション待ち行列内の二つの位置、つまり、位
置(60)及び(62)を占拠する。格納インストラク
ションは格納インストラクション待ち行列(70)内の
最も下の位置を占拠する。演算インストラクションと関
連する格納インストラクションカウントはゼロであり、
格納インストラクションカウントフィールド内の位置
(80)及び(82)内に示される。加算インストラク
ションのゼロの格納インストラクションカウントはこれ
らの前に格納インストラクションが先行しないことを意
味する。インストラクションが逐次的に実行されること
を期待されるときは、両方の加算インストラクションが
格納インストラクションの前に実行される。加算インス
トラクションの前に格納インストラクションが実行され
るためには、これは、これら二つの加算インストラクシ
ョンのいずれかのターゲットと同一のターゲットレジス
タを持ってはならない。AQの最も下の加算インストラ
クションのターゲットはレジスタ2であり、格納インス
トラクションのターゲットはレジスタ2であるため、こ
の格納インストラクションは最も下の加算インストラク
ションが実行されるまで待たなければならない。
【0026】図8は格納インストラクション実行ユニッ
ト内の格納インストラクションが演算インストラクショ
ン実行ユニット内のもともとこの前に来るインストラク
ションの前に実行される一例を示す。示されるインスト
ラクションの流れは二つの加算インストラクションに続
く一つの格納インストラクションである。第一の加算イ
ンストラクションはそのターゲットとしてレジスタ2を
持ち、第二の加算インストラクションはそのターゲット
としてレジスタ4を持ち、格納インストラクションはそ
のターゲットとしてレジスタ3を持つ。これら二つの加
算インストラクションは演算インストラクション待ち行
列内の最も下の二つの位置を占拠し、格納インストラク
ションは格納インストラクション待ち行列内の最も下の
位置を占拠する。これは、格納インストラクションが二
つの加算インストラクションの一つ或は両方の前に実行
されるためには、これは、この二つの加算インストラク
ションの一つのターゲットと同一のターゲットレジスタ
を持ってはならないことを意味する。格納インストラク
ションとこの二つの加算インストラクションは同一のタ
ーゲットレジスタを持たないため、格納インストラクシ
ョンは二つの加算インストラクションの前に実行するこ
とができ、これは、元のシーケンスと異なる順番であ
る。
【0027】図9は演算インストラクション実行ユニッ
ト内で加算インストラクションが先行する格納インスト
ラクションのために遅延される例を示す図である。これ
はまた一つの加算インストラクションが演算インストラ
クション実行ユニット内のもう一つの加算インストラク
ションと順番を変えて実行されるところを示す。図9の
インストラクションのシーケンスは一つの格納インスト
ラクションに続く二つの加算インストラクションであ
る。格納インストラクションはそのターゲットとしてレ
ジスタ2を持ち、第一の加算インストラクションはその
ターゲットとしてレジスタ2を持ち、第二の加算インス
トラクションはそのターゲットとしてレジスタ4を持
つ。これら二つの加算インストラクションは演算インス
トラクション待ち行列内の最も下の位置を占拠し、格納
インストラクションは格納インストラクション待ち行列
内の最も下の地位を占拠する。個々の演算インストラク
ションと関連する格納インストラクションカウントはこ
れらに先行する一つの格納インストラクションが存在す
るために1である。これら加算インストラクションのい
ずれかが実行されるためには、このターゲットを格納イ
ンストラクションのターゲットと比較しなければならな
い。ターゲットレジスタ2への加算インストラクション
は格納インストラクションと同一ターゲットを持つため
に、これは、遅延され、格納インストラクションが実行
されるのを待たなければならない。但し、第二の加算イ
ンストラクションと格納インストラクションとの間には
データの依存関係は存在せず、従って、第二の加算イン
ストラクションは実行することができる。従って、一つ
の加算インストラクションがもう一つの加算インストラ
クションとの順番を越えて実行でき、同様にこれに先行
する格納インストラクションとの順番を越えて実行でき
る。
【0028】図10は演算インストラクション実行ユニ
ット内の演算インストラクションがその前に来る格納イ
ンストラクション実行ユニット内の格納インストラクシ
ョンの前に実行される例を示す図である。このインスト
ラクションの流れは一つの格納インストラクションに続
く二つの加算インストラクションである。ターゲットレ
ジスタは、それぞれ、レジスタ2、レジスタ3、及びレ
ジスタ4である。個々の演算インストラクションに対す
る格納インストラクションカウントは、個々がそれに先
行する一つの格納インストラクションを持つために1で
ある。演算インストラクション待ち行列の最も下の加算
インストラクションは、このターゲットレジスタが3で
あり、格納インストラクション待ち行列内の格納インス
トラクションのターゲットレジスタが2であるために、
実行することができる。
【0029】図11は一つの格納インストラクションが
それに先行されるもう一つの格納インストラクションの
前に順番を越えて実行される一例のブロック図である。
このインストラクションの流れは、レジスタ2への加算
インストラクション、レジスタ4への加算インストラク
ション、レジスタ2の格納インストラクション、及びレ
ジスタ3の格納インストラクションである。これら二つ
の格納インストラクションは格納インストラクション待
ち行列内の最も下の位置を占拠し、これら二つの加算イ
ンストラクションは演算インストラクション待ち行列内
の最も下の位置を占拠する。元のインストラクションの
流れの中にこの演算インストラクションに先行する格納
インストラクションは存在しないので、個々の演算イン
ストラクションと関連する格納インストラクションカウ
ントはゼロである。格納インストラクション待ち行列の
最も下の所の格納インストラクションは、演算インスト
ラクション待ち行列の最も下の所の演算インストラクシ
ョンもターゲットレジスタ2を持つために実行すること
ができない。従って、格納インストラクションは加算イ
ンストラクションが実行されるまで遅延される。但し、
格納インストラクション待ち行列内の第二の位置の格納
インストラクションはターゲットが一致しないために実
行することができる。レジスタ3の格納インストラクシ
ョンは、レジスタ2への格納インストラクションの前に
実行することができる。こうして、一つの格納インスト
ラクションがもう一つの格納インストラクションの順番
を越えて実行でき、同様にそれに先行する演算インスト
ラクションの順番を越えて実行できる。
【0030】当業者においては、この装置は、実行ユニ
ットがその待ち行列内のインストラクションを任意の順
番で実行でき、またもう一つの実行ユニット内のインス
トラクションの順番を越えてこれらを実行できるように
拡張可能なことが理解できるものである。遅延は、一つ
のユニット内で実行されるべきインストラクションがも
う一つのユニット内のインストラクションの実行を待た
なければならないときにのみ起こる。
【0031】本発明が一例としての実施例との関連で説
明されたが、この説明は限定を意図するものではない。
一例として示される実施例の様々な修正、並びに本発明
の他の実施例が当業者においてはこの説明を見ると明ら
かとなるものである。従って、特許請求項は、これら修
正及びその他の実施例も本発明の真の範囲内に入るもの
としてカバーするものと見なされるべきである。
【0032】
【発明の効果】以上説明したように本発明のデータ処理
システム及びデータ処理方法によれば、複数の実行ユニ
ット内でインストラクションを独立して実行できる能力
を持つデータ処理システムが提供される。また、インス
トラクションをシーケンスに従わずに実行することが可
能となる。
【図面の簡単な説明】
【図1】データ処理システムの一例としての要素を示す
ブロック図である。
【図2】一例としての浮動小数点ユニット及びその分離
した演算インストラクション及び格納インストラクショ
ン実行ユニットを示すブロック図である。
【図3】格納インストラクション実行ユニット内の待ち
行列の最も下の位置内のインストラクションの制御を示
すフローチャートである。
【図4】格納インストラクション実行ユニット内の待ち
行列内の全てのインストラクションの制御を示すフロー
チャートである。
【図5】演算インストラクション実行ユニット内の待ち
行列の最も下の位置内のインストラクションの制御を示
すフローチャートである。
【図6】演算インストラクション実行ユニット内の待ち
行列内の全てのインストラクションの制御を示すフロー
チャートである。
【図7】格納インストラクション実行ユニット内の待ち
行列の最も下の位置内の一つのインストラクションの遅
延例を示すブロック図である。
【図8】格納インストラクション実行ユニット内の待ち
行列の最も下の位置内の一つのインストラクションをシ
ーケンスを越えて実行する例を示すブロック図である。
【図9】演算インストラクション実行ユニット内の待ち
行列の最も下の位置内のインストラクションを遅延し、
演算インストラクション実行ユニット内の待ち行列の第
二の位置内のインストラクションをシーケンスを越えて
実行する例を示すブロック図である。
【図10】演算インストラクション実行ユニット内の待
ち行列の最も下の位置内の一つのインストラクションを
シーケンスを越えて実行する例を示すブロック図であ
る。
【図11】格納インストラクション実行ユニット内の待
ち行列の最も下の位置内のインストラクションを遅延
し、格納インストラクション実行ユニット内の待ち行列
の第二の位置内のインストラクションをシーケンスを越
えて実行する例を示すブロック図である。
【符号の説明】
12 インストラクションユニット 14 固定小数点ユニット 16 浮動小数点ユニット 30 インストラクション先取バッファ 32 演算インストラクション待ち行列 34 格納インストラクション待ち行列 42 演算インストラクション実行決定制御 44 格納インストラクション実行決定制御 46 演算インストラクション実行論理 48 格納インストラクション実行論理

Claims (18)

    (57)【特許請求の範囲】
  1. 【請求項1】第1及び第2の実行ユニットと、 前記実行ユニットに接続されて、インストラクション実
    行のために前記実行ユニットにインストラクションのシ
    ーケンスからインストラクションを供給する手段と、 前記実行ユニットに接続されて、前記第1の実行ユニッ
    ト内の第1のインストラクションに、前記シーケンスに
    おいて前記第1のインストラクションに先行する前記第
    2の実行ユニット内のインストラクションのカウントを
    関連付ける手段と、 前記関連付ける手段に接続されて、前記第1のインスト
    ラクションに関連するカウントがゼロでなく、かつ、正
    しい結果を得るために前記第2のインストラクションが
    前記第1のインストラクションより前に実行されなけれ
    ばならないとき、前記第2の実行ユニット内の第2のイ
    ンストラクションの実行が完了するまで前記第1のイン
    ストラクションの実行を遅延させる手段と、 前記関連付ける手段に接続されて、前記第1のインスト
    ラクションに関連するカウントが前記第2のインストラ
    クションに先行する前記第2の実行ユニット内のインス
    トラクションの数に等しいかまたはこれよりも少なく
    かつ、正しい結果を得るために前記第1のインストラク
    ションが前記第2のインストラクションより前に実行さ
    れなければならないとき、前記第1のインストラクショ
    ンの実行が完了するまで前記第2のインストラクション
    の実行を遅延させる手段と、 を備えるデータ処理システム。
  2. 【請求項2】請求項1記載のデータ処理システムであっ
    て、 前記インストラクションの各々は、インストラクション
    の複数のクラスのいずれか1つに属する、 ことを特徴とするデータ処理システム。
  3. 【請求項3】請求項2記載のデータ処理システムであっ
    て、 前記実行ユニットの各々が前記インストラクションのク
    ラスの1つの実行に専用化される、 ことを特徴とするデータ処理システム。
  4. 【請求項4】請求項3記載のデータ処理システムであっ
    て、 前記インストラクションを供給する手段に接続されて、
    前記インストラクションのシーケンスにおける各インス
    トラクションのクラスを決定するための手段を、更に含
    む、 ことを特徴とするデータ処理システム。
  5. 【請求項5】請求項4記載のデータ処理システムであっ
    て、 前記インストラクションを供給する手段が、前記インス
    トラクションのあるクラスの実行に専用化される前記実
    行ユニットの1つに前記インストラクションの前記ある
    クラスに属するインストラクションを排他的に供給する
    手段を、更に含む、 ことを特徴とするデータ処理システム。
  6. 【請求項6】請求項1記載のデータ処理システムであっ
    て、 インストラクションの第1のクラスが浮動小数点演算イ
    ンストラクションであり、前記第1の演算ユニットが前
    記インストラクションの第1のクラスを実行するために
    専用化され、インストラクションの第2のクラスが浮動
    小数点格納インストラクションであり、前記第2の実行
    ユニットが前記インストラクションの第2のクラスを実
    行するために専用化される、 ことを特徴とするデータ処理システム。
  7. 【請求項7】インストラクション実行のために第1及び
    第2の実行ユニットにインストラクションのシーケンス
    からインストラクションを供給するステップと、 前記第1の実行ユニット内の第1のインストラクション
    に前記シーケンスにおいて前記第1のインストラクショ
    ンに先行する前記第2の実行ユニット内のインストラク
    ションのカウントを関連付けるステップと、 前記第1のインストラクションに関連するカウントがゼ
    ロでなく、かつ、正しい結果を得るために前記第2のイ
    ンストラクションが前記第1のインストラクションより
    前に実行されなければならないとき、前記第2の実行ユ
    ニット内の第2のインストラクションの実行が完了する
    まで前記第1のインストラクションの実行を遅延させる
    ステップと、 前記第1のインストラクションに関連するカウントが前
    記第2のインストラクションに先行する前記第2の実行
    ユニット内のインストラクションの数に等しいか又はこ
    れより少なく、かつ、正しい結果を得るために前記第1
    のインストラクションが前記第2のインストラクション
    より前に実行されなければならないとき、前記第1のイ
    ンストラクションの実行が完了するまで前記第2のイン
    ストラクションの実行を遅延させるステップと、 を備えるデータ処理システムにおける処理方法。
  8. 【請求項8】請求項7記載のデータ処理システムにおけ
    る処理方法であって、 前記インストラクションの各々は、インストラクション
    の複数のクラスのいずれか1つに属する、 ことを特徴とするデータ処理システムにおける処理方
    法。
  9. 【請求項9】請求項8記載のデータ処理システムにおけ
    る処理方法であって、 前記実行ユニットの各々が前記インストラクションのク
    ラスの1つの実行に専用化される、 ことを特徴とするデータ処理システムにおける処理方
    法。
  10. 【請求項10】請求項9記載のデータ処理システムにお
    ける処理方法であって、 前記インストラクションのシーケンスにおける各インス
    トラクションのクラスを決定するためのステップを、更
    に含む、 ことを特徴とするデータ処理システムにおける処理方
    法。
  11. 【請求項11】請求項10記載のデータ処理システムに
    おける処理方法であって、 前記インストラクションを供給するステップが、前記実
    行ユニットの1つにインストラクションのあるクラスに
    属するインストラクションを排他的に供給するステップ
    を、更に含む、 ことを特徴とするデータ処理システムにおける処理方
    法。
  12. 【請求項12】請求項7記載のデータ処理システムにお
    ける処理方法であって、 インストラクションの第1のクラスが浮動小数点演算イ
    ンストラクションであり、前記第1の演算ユニットが前
    記インストラクションの第1のクラスを実行するために
    専用化され、インストラクションの第2のクラスが浮動
    小数点格納インストラクションであり、前記第2の実行
    ユニットが前記インストラクションの第2のクラスを実
    行するために専用化される、 ことを特徴とするデータ処理システムにおける処理方
    法。
  13. 【請求項13】複数のインストラクションを格納するメ
    モリ手段と、 第1及び第2の実行ユニットと、前記実行ユニットに接
    続されて、インストラクションを実行するために前記実
    行ユニットにインストラクションのシーケンスからイン
    ストラクションを供給する手段と、を含むプロセッサ手
    段と、 前記メモリ手段からインストラクションを取出し、前記
    プロセッサ手段に送る手段と、 前記実行ユニットに接続されて、前記第1の実行ユニッ
    ト内の第1のインストラクションに、前記シーケンスに
    おいて前記第1のインストラクションに先行する前記第
    2の実行ユニット内のインストラクションのカウントを
    関連付ける手段と、 前記関連付ける手段に接続されて、前記第1のインスト
    ラクションに関連するカウントがゼロでなく、かつ、正
    しい結果を得るために前記第2のインストラクションが
    前記第1のインストラクションより前に実行されなけれ
    ばならないとき、前記第2の実行ユニット内の第2のイ
    ンストラクションの実行が完了するまで前記第1のイン
    ストラクションの実行を遅延させる手段と、 前記関連付ける手段に接続されて、前記第1のインスト
    ラクションに関連するカウントが前記第2のインストラ
    クションに先行する前記第2の実行ユニット内のインス
    トラクションの数に等しいか又はこれより少なく、か
    つ、正しい結果を得るために前記第1のインストラクシ
    ョンが前記第2のインストラクションより前に実行され
    なければならないとき、前記第1のインストラクション
    の実行が完了するまで前記第2のインストラクションの
    実行を遅延させる手段と、 を備えるデータ処理システム。
  14. 【請求項14】請求項13記載のデータ処理システムで
    あって、 前記インストラクションの各々は、インストラクション
    の複数のクラスのいずれか1つに属する、 ことを特徴とするデータ処理システム。
  15. 【請求項15】請求項14記載のデータ処理システムで
    あって、 前記実行ユニットの各々が前記インストラクションのク
    ラスの1つの実行に専用化される、 ことを特徴とするデータ処理システム。
  16. 【請求項16】請求項15記載のデータ処理システムで
    あって、 前記インストラクションを供給する手段に接続されて、
    前記インストラクションのシーケンスにおける各インス
    トラクションのクラスを決定するための手段を、更に含
    む、 ことを特徴とするデータ処理システム。
  17. 【請求項17】請求項16記載のデータ処理システムで
    あって、 前記インストラクションを供給する手段が、前記インス
    トラクションのあるクラスの実行に専用化される前記実
    行ユニットの1つに前記インストラクションの前記ある
    クラスに属するインストラクションを排他的に供給する
    手段を、更に含む、 ことを特徴とするデータ処理システム。
  18. 【請求項18】請求項13記載のデータ処理システムで
    あって、 インストラクションの第1のクラスが浮動小数点演算イ
    ンストラクションであり、前記第1の演算ユニットが前
    記インストラクションの第1のクラスを実行するために
    専用化され、インストラクションの第2のクラスが浮動
    小数点格納インストラクションであり、前記第2の実行
    ユニットが前記インストラクションの第2のクラスを実
    行するために専用化される、 ことを特徴とするデータ処理システム。
JP4182510A 1991-08-26 1992-07-09 デ―タ処理システム Expired - Lifetime JP2503164B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US750132 1991-08-26
US07/750,132 US5363495A (en) 1991-08-26 1991-08-26 Data processing system with multiple execution units capable of executing instructions out of sequence

Publications (2)

Publication Number Publication Date
JPH05233286A JPH05233286A (ja) 1993-09-10
JP2503164B2 true JP2503164B2 (ja) 1996-06-05

Family

ID=25016632

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4182510A Expired - Lifetime JP2503164B2 (ja) 1991-08-26 1992-07-09 デ―タ処理システム

Country Status (3)

Country Link
US (1) US5363495A (ja)
EP (1) EP0529913A2 (ja)
JP (1) JP2503164B2 (ja)

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69130138T2 (de) * 1990-06-29 1999-05-06 Digital Equipment Corp Sprungvorhersageeinheit für hochleistungsfähigen Prozessor
JP2925818B2 (ja) * 1991-04-05 1999-07-28 株式会社東芝 並列処理制御装置
US5630157A (en) * 1991-06-13 1997-05-13 International Business Machines Corporation Computer organization for multiple and out-of-order execution of condition code testing and setting instructions
US5522052A (en) * 1991-07-04 1996-05-28 Matsushita Electric Industrial Co. Ltd. Pipeline processor for processing instructions having a data dependence relationship
DE69408769T2 (de) * 1993-10-18 1998-07-09 Cyrix Corp Fliessbandsteuerung und Registerübersetzung in Mikroprozessor
US5630149A (en) * 1993-10-18 1997-05-13 Cyrix Corporation Pipelined processor with register renaming hardware to accommodate multiple size registers
US6138230A (en) * 1993-10-18 2000-10-24 Via-Cyrix, Inc. Processor with multiple execution pipelines using pipe stage state information to control independent movement of instructions between pipe stages of an execution pipeline
US6073231A (en) * 1993-10-18 2000-06-06 Via-Cyrix, Inc. Pipelined processor with microcontrol of register translation hardware
JP2550897B2 (ja) * 1993-11-29 1996-11-06 日本電気株式会社 マルチプロセッサシステムのバリア同期装置
US5535358A (en) * 1993-12-27 1996-07-09 Matsushita Electric Industrial Co., Ltd. Cache memory control circuit and method for controlling reading and writing requests
JP3639319B2 (ja) * 1994-01-25 2005-04-20 富士通株式会社 並列計算機システム,データ転送制御方法および送受信制御装置
US5751986A (en) * 1994-03-01 1998-05-12 Intel Corporation Computer system with self-consistent ordering mechanism
SG47981A1 (en) * 1994-03-01 1998-04-17 Intel Corp Pipeline process of instructions in a computer system
JPH07302200A (ja) * 1994-04-28 1995-11-14 Hewlett Packard Co <Hp> 順次付けロード動作および順序付け記憶動作を強制する命令を有するコンピュータのロード命令方法。
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
US5640526A (en) * 1994-12-21 1997-06-17 International Business Machines Corporation Superscaler instruction pipeline having boundary indentification logic for variable length instructions
US5835753A (en) * 1995-04-12 1998-11-10 Advanced Micro Devices, Inc. Microprocessor with dynamically extendable pipeline stages and a classifying circuit
US5850563A (en) * 1995-09-11 1998-12-15 International Business Machines Corporation Processor and method for out-of-order completion of floating-point operations during load/store multiple operations
US5751983A (en) * 1995-10-03 1998-05-12 Abramson; Jeffrey M. Out-of-order processor with a memory subsystem which handles speculatively dispatched load operations
US5848256A (en) * 1996-09-30 1998-12-08 Institute For The Development Of Emerging Architectures, L.L.C. Method and apparatus for address disambiguation using address component identifiers
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
US5870612A (en) * 1996-10-15 1999-02-09 International Business Machines Corporation Method and apparatus for condensed history buffer
US5860014A (en) * 1996-10-15 1999-01-12 International Business Machines Corporation Method and apparatus for improved recovery of processor state using history buffer
JP3905591B2 (ja) * 1997-02-04 2007-04-18 株式会社ショーワ 船舶用推進機のチルト・トリム装置及びチルト・トリム装置組立方法
US6070235A (en) * 1997-07-14 2000-05-30 International Business Machines Corporation Data processing system and method for capturing history buffer data
US6163839A (en) * 1998-09-30 2000-12-19 Intel Corporation Non-stalling circular counterflow pipeline processor with reorder buffer
DE19948099A1 (de) 1999-10-06 2001-04-19 Infineon Technologies Ag Prozessorsystem, insbesondere ein Prozessorsystem für Kommunikationseinrichtungen
DE10101949C1 (de) * 2001-01-17 2002-08-08 Infineon Technologies Ag Datenverarbeitungsverfahren
US9792252B2 (en) 2013-05-31 2017-10-17 Microsoft Technology Licensing, Llc Incorporating a spatial array into one or more programmable processor cores
US10409599B2 (en) 2015-06-26 2019-09-10 Microsoft Technology Licensing, Llc Decoding information about a group of instructions including a size of the group of instructions
US10409606B2 (en) 2015-06-26 2019-09-10 Microsoft Technology Licensing, Llc Verifying branch targets
US10175988B2 (en) 2015-06-26 2019-01-08 Microsoft Technology Licensing, Llc Explicit instruction scheduler state information for a processor
US10169044B2 (en) 2015-06-26 2019-01-01 Microsoft Technology Licensing, Llc Processing an encoding format field to interpret header information regarding a group of instructions
US9720693B2 (en) 2015-06-26 2017-08-01 Microsoft Technology Licensing, Llc Bulk allocation of instruction blocks to a processor instruction window
US9946548B2 (en) 2015-06-26 2018-04-17 Microsoft Technology Licensing, Llc Age-based management of instruction blocks in a processor instruction window
US10191747B2 (en) 2015-06-26 2019-01-29 Microsoft Technology Licensing, Llc Locking operand values for groups of instructions executed atomically
US10346168B2 (en) 2015-06-26 2019-07-09 Microsoft Technology Licensing, Llc Decoupled processor instruction window and operand buffer
US9952867B2 (en) 2015-06-26 2018-04-24 Microsoft Technology Licensing, Llc Mapping instruction blocks based on block size

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02301830A (ja) * 1989-05-17 1990-12-13 Mitsubishi Electric Corp 情報処理方式

Family Cites Families (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3447135A (en) * 1966-08-18 1969-05-27 Ibm Peripheral data exchange
US3588829A (en) * 1968-11-14 1971-06-28 Ibm Integrated memory system with block transfer to a buffer store
GB1443777A (en) * 1973-07-19 1976-07-28 Int Computers Ltd Data processing apparatus
US4153932A (en) * 1974-03-29 1979-05-08 Massachusetts Institute Of Technology Data processing apparatus for highly parallel execution of stored programs
US3962706A (en) * 1974-03-29 1976-06-08 Massachusetts Institute Of Technology Data processing apparatus for highly parallel execution of stored programs
US3997896A (en) * 1975-06-30 1976-12-14 Honeywell Information Systems, Inc. Data processing system providing split bus cycle operation
US4130885A (en) * 1976-08-19 1978-12-19 Massachusetts Institute Of Technology Packet memory system for processing many independent memory transactions concurrently
US4128882A (en) * 1976-08-19 1978-12-05 Massachusetts Institute Of Technology Packet memory system with hierarchical structure
US4181934A (en) * 1976-12-27 1980-01-01 International Business Machines Corporation Microprocessor architecture with integrated interrupts and cycle steals prioritized channel
US4232366A (en) * 1978-10-25 1980-11-04 Digital Equipment Corporation Bus for a data processing system with overlapped sequences
US4376976A (en) * 1980-07-31 1983-03-15 Sperry Corporation Overlapped macro instruction control system
US4370710A (en) * 1980-08-26 1983-01-25 Control Data Corporation Cache memory organization utilizing miss information holding registers to prevent lockup from cache misses
JPS57155666A (en) * 1981-03-20 1982-09-25 Fujitsu Ltd Instruction controlling system of vector processor
JPS58151655A (ja) * 1982-03-03 1983-09-08 Fujitsu Ltd 情報処理装置
JPS5932045A (ja) * 1982-08-16 1984-02-21 Hitachi Ltd 情報処理装置
US4594655A (en) * 1983-03-14 1986-06-10 International Business Machines Corporation (k)-Instructions-at-a-time pipelined processor for parallel execution of inherently sequential instructions
JPS6015746A (ja) * 1983-07-08 1985-01-26 Hitachi Ltd デ−タ処理装置
US4807115A (en) * 1983-10-07 1989-02-21 Cornell Research Foundation, Inc. Instruction issuing mechanism for processors with multiple functional units
JPH0658631B2 (ja) * 1983-12-19 1994-08-03 株式会社日立製作所 デ−タ処理装置
US4630195A (en) * 1984-05-31 1986-12-16 International Business Machines Corporation Data processing system with CPU register to register data transfers overlapped with data transfer to and from main storage
JPH0762823B2 (ja) * 1985-05-22 1995-07-05 株式会社日立製作所 デ−タ処理装置
US4734852A (en) * 1985-08-30 1988-03-29 Advanced Micro Devices, Inc. Mechanism for performing data references to storage in parallel with instruction execution on a reduced instruction-set processor
US4763294A (en) * 1985-12-19 1988-08-09 Wang Laboratories, Inc. Method and apparatus for floating point operations
EP0239081B1 (en) * 1986-03-26 1995-09-06 Hitachi, Ltd. Pipelined data processor capable of decoding and executing plural instructions in parallel
US4903196A (en) * 1986-05-02 1990-02-20 International Business Machines Corporation Method and apparatus for guaranteeing the logical integrity of data in the general purpose registers of a complex multi-execution unit uniprocessor
US4773041A (en) * 1986-06-02 1988-09-20 Unisys Corporation System for executing a sequence of operation codes with some codes being executed out of order in a pipeline parallel processor
JPS63131230A (ja) * 1986-11-21 1988-06-03 Hitachi Ltd 情報処理装置
JP3137117B2 (ja) * 1987-03-27 2001-02-19 将容 曽和 高速処理計算機
US4855947A (en) * 1987-05-27 1989-08-08 Amdahl Corporation Microprogrammable pipeline interlocks based on the validity of pipeline states
DE3855524T2 (de) * 1987-06-19 1997-02-06 Hitachi Ltd Arithmetik-Parallelverarbeitungseinheit und zugehöriger Kompilator
US4916652A (en) * 1987-09-30 1990-04-10 International Business Machines Corporation Dynamic multiple instruction stream multiple data multiple pipeline apparatus for floating-point single instruction stream single data architectures
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
US5150469A (en) * 1988-12-12 1992-09-22 Digital Equipment Corporation System and method for processor pipeline control by selective signal deassertion
US5075840A (en) * 1989-01-13 1991-12-24 International Business Machines Corporation Tightly coupled multiprocessor instruction synchronization
US5093908A (en) * 1989-04-17 1992-03-03 International Business Machines Corporation Method and apparatus for executing instructions in a single sequential instruction stream in a main processor and a coprocessor
US5197137A (en) * 1989-07-28 1993-03-23 International Business Machines Corporation Computer architecture for the concurrent execution of sequential programs
US5150470A (en) * 1989-12-20 1992-09-22 International Business Machines Corporation Data processing system with instruction queue having tags indicating outstanding data status
US5214763A (en) * 1990-05-10 1993-05-25 International Business Machines Corporation Digital computer system capable of processing two or more instructions in parallel and having a coche and instruction compounding mechanism

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02301830A (ja) * 1989-05-17 1990-12-13 Mitsubishi Electric Corp 情報処理方式

Also Published As

Publication number Publication date
EP0529913A3 (ja) 1994-02-09
EP0529913A2 (en) 1993-03-03
JPH05233286A (ja) 1993-09-10
US5363495A (en) 1994-11-08

Similar Documents

Publication Publication Date Title
JP2503164B2 (ja) デ―タ処理システム
JP2701179B2 (ja) データ処理システム
US5842036A (en) Circuit and method for scheduling instructions by predicting future availability of resources required for execution
JP3531166B2 (ja) レジスタ・リネーミングのシステム及び方法
US6606704B1 (en) Parallel multithreaded processor with plural microengines executing multiple threads each microengine having loadable microcode
JP2645669B2 (ja) データ処理システム
US7191321B2 (en) Microengine for parallel processor architecture
US7743235B2 (en) Processor having a dedicated hash unit integrated within
US7991983B2 (en) Register set used in multithreaded parallel processor architecture
US8316191B2 (en) Memory controllers for processor having multiple programmable units
US6772327B2 (en) Floating point unit pipeline synchronized with processor pipeline
US7895418B1 (en) Operand queue for use in a floating point unit to reduce read-after-write latency and method operation
JPH11154144A (ja) プロセッサをコプロセッサにインタフェースするための方法および装置
JPS62156735A (ja) 浮動小数点演算処理装置
RU2142157C1 (ru) Способ функционирования системы обработки
JPH0776918B2 (ja) データ処理システム及び方法
US6237066B1 (en) Supporting multiple outstanding requests to multiple targets in a pipelined memory system
US6324640B1 (en) System and method for dispatching groups of instructions using pipelined register renaming
EP0933697A2 (en) A method and system for handling multiple store instruction completions in a processing system
AU597117B2 (en) Cache storage priority
JPH0776920B2 (ja) 命令処理装置
JPH10143365A (ja) 並列処理装置及びその命令発行方式
US6311267B1 (en) Just-in-time register renaming technique
US5623685A (en) Vector register validity indication to handle out-of-order element arrival for a vector computer with variable memory latency
JP2620505B2 (ja) スーパースカラ・プロセッサ・システムの同期化効率を向上させる方法およびシステム