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

データ処理システム

Info

Publication number
JPH03191461A
JPH03191461A JP2279510A JP27951090A JPH03191461A JP H03191461 A JPH03191461 A JP H03191461A JP 2279510 A JP2279510 A JP 2279510A JP 27951090 A JP27951090 A JP 27951090A JP H03191461 A JPH03191461 A JP H03191461A
Authority
JP
Japan
Prior art keywords
instruction
instructions
register
data
execution
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2279510A
Other languages
English (en)
Other versions
JP2701179B2 (ja
Inventor
Troy N Hicks
トロイ・ニール・ヒツクス
Myhong Nguyenphu
マイホン・ジユーイアンフー
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 JPH03191461A publication Critical patent/JPH03191461A/ja
Application granted granted Critical
Publication of JP2701179B2 publication Critical patent/JP2701179B2/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, look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units
    • G06F9/3889Concurrent instruction execution, e.g. pipeline, 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, look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution

Abstract

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

Description

【発明の詳細な説明】 A、産業上の利用分野 本発明はデータ処理システムに関し、特に、単一順序の
命令を実行する複数の処理ユニットを有するデータ処理
システムに関する。
B、従来の技術 最近のフォノ・ノイマン装置では、同一メモリからの命
令とデータとのアクセスが共通の問題として生じる。最
近のデータ処理システムでは、処理ユニット内での命令
実行と比較して、メモリへのアクセスに非常に時間が掛
かる。メモリアクセスのために時間が掛かるという問題
は、キャッシュ・メモリ、すなわち、データ処理システ
ムに接続されて、頻繁に使用する情報を保持する非常に
高速のメモリを使用することにより、ある程度緩和され
る。ところが、アクセス対象の情報がキャッシュ会メモ
リで利用できない場合、主メモリにアクセスするので、
更に時間が必要となる。従来の連続送り形データ処理シ
ステムでは、複数の命令が順々に実行されるが、その実
行は準並列処理で行われる。各命令はいくつかの段階に
分けて実行され、1つの命令段階が実行されている間、
他の命令段階も並行して実行される。連続送り形処理の
結果、命令の並行実行は、命令の順序関係を維持しなが
ら、順序正しく行われる。ところが、通常は、ある命令
がメモリからデータを要求すると、データがメモリから
取り出される間に、連続送りが停止し、そのために、連
続送り処理における並行又は並列命令実行の多くの利点
が失われる。
本発明の目的は、メモリ・アクセスにより生じるこの不
具合を最小にすることにある。
この問題に対処するために、従来使用されている方法の
一つとして、未処理のロード動作の目標であるレジスタ
(すなわちメモリからデータを受は取ろうとするレジス
タ)にタグを付けるということがあった。この技術は、
出願臼が1984年S月31日である米国特許第4.l
1i30,195号からの再発行出願として1988年
12月16日に出願された同時継続中の再発行出願第0
7/285.827号に記載されている。この技術によ
ると、処理装置の各レジスタはタグ記憶機構を含んでい
る。タグ付きレジスタからのデータを必要としない命令
が実行されている時、命令実行の継続が許容される。と
ころが、タグ付きレジスタに記憶されたデータに従属す
る命令が実行される場合、タグで指定されたデータをレ
ジスタは受は取らず、命令は実行されない。
C0発明が解決しようとする課題 本発明の目的は、1つの命令の実行が第1処理装置で行
われ、同時に、その命令についてのデータが第2処理装
置で取り出されるような多重プロセッサを含むデータ処
理システムのためのタグ付は機構を提供することにある
。本発明は、メモリからのデータ・アクセスを管理しな
がら、連続する命令の順序室てた実行を許容することに
より、順次命令実行能力を与えるものである。
00課題を解決するための手段 本発明によるデータ処理システムは、第1形式の命令を
実行するための命令実行回路を含んでいる。メモリから
命令を取り出し、又、第2形式の命令に応答してメモリ
からデータを取り出すための取り出し回路が設けである
。又、命令デコーダが設けてあり、該デコーダは、取り
出された命令を復号するとともに、第1形式の命令を命
令待ち行列回路に指名し、又、第2形式の命令を取り出
し回路に指名する。命令待ち行列回路は、復号された第
1形式の命令を記憶し、これらの命令の実行に必要なデ
ータが取り出されていない時に、第1形式のこれらの命
令にタグを付ける。これらの命令についてのタグは、実
行に必要なデータが取り出された時に消去される。命令
待ち行列回路は、タグ無し命令を、実行のために命令実
行回路へ逐次与える。
実施例の多重処理システムでは、メモリが命令及びデー
タの両方を含んでいる。この実施例では、2つの処理装
置が、命令制御ユニットからの命令を実行するために設
けである。この実施例では、第1形式の命令は、浮動小
数点処理装置によってのみ実行され得る浮動小数点命令
である。第2形式の命令は、浮動小数点データを浮動小
数点処理装置レジスタに与えるためのロード命令であり
、固定小数点処理装置により実行される。固定小数点処
理装置は、浮動小数点データにアクセスするために、メ
モリへのバス上に与えられたアドレスを実際に計算する
。更に、実施例では、第1待ち行列が、レジスタ対レジ
スタ命令及びレジスタ対メモリ命令を記憶するために設
けてあり、又、メモリ対レジスタ命令を記憶する第2待
ち行列が設けである。実施例の命令復号行列は、多重命
令を並列に復号する能力を含んでいる。ロード命令はそ
の他の浮動小数点演算命令から分離して命令待ち行列(
メモリ対しジスタ待ち行列)に記憶され、又、上記その
他の浮動小数点演算命令は別の待ち行列に記憶される。
浮動小数点演算命令が、ロード命令の結果としてロード
されているデータを必要とする時、浮動小数点演算命令
に、その命令待ち行列においてタグが付けられる。命令
にタグがない場合、該命令は浮動小数点処理装置に与え
られて実行される。
本発明の上記及びその他の目的、構成、効果を次に添付
図面を参照して説明する。
E、実施例 第1図のブロック線図に示すデータ処理システムでは、
メモリ10が命令ユニット12に接続している。命令ユ
ニット12の出力には2つの命令があり、それらは、固
定小数点処理ユニット14又は浮動小数点処理ユニット
16に与えられる。
固定小数点処理ユニットは命令待ち行列27(「逐次命
令実行待ち行列」と呼ぶ)を含んでいる。
浮動小数点処理ユニット16は命令待ち行列34を含ん
でおり、該待ち行列34は、第2待ち行列30において
固定小数点処理ユニット14で実行される同期命令であ
り、又、上記第2待ち行列30は「非同期命令」と称さ
れる命令を含んでいる。
浮動小数点処理ユニット16による命令の実行は、「同
期命令」を除いて、固定小数点ユニット14による命令
実行から独立している。「同期命令」は、メモリ20か
らのデータを浮動小数点処理ユニット16レジスタに与
えるロード・データ命令を含んでいる。これらのロード
命令のためのアドレス計算は、索引付きロード命令の場
合の固定小数点計算のように固定小数点処理ユニット1
4で行われる。データの取り出しはメモリ10に対して
固定小数点処理ユニット14により開始される。
次にデータはデータ・キャッシュ18を介して浮動小数
点処理ユニット16のレジスタに与えられる。浮動小数
点処理ユニット16についてのロード・データ命令は待
ち行列34.27の両方に含まれている。ロード命令の
記憶調整はライン29により行われる。
第2図は浮動小数点処理ユニット16を示すブロック線
図である。命令は前取り出しバッファ制御部20で調べ
られて、これらの命令が有効であるかどうかが判断され
る。有効である場合、命令は浮動小数点命令待ち行列2
2に記憶される。次に、これらの命令はコード論理部2
4で制御されながら、復号装置26.28で2個づつ復
号される。復号された命令は次に命令待ち行列30.3
4に与えられ、第1の利用可能なバッファ内に置かれる
。ロード・データ命令以外の浮動小数点処理ユニット命
令は、命令待ち行列30に記憶される。この待ち行列3
0は、レジスタに対する全ての浮動小数点処理ユニット
レジスタと、メモリ動作に対するレジスタとを含んでい
る。 (データ命令をロードする)浮動小数点処理ユニ
ット16のためのメモリ対レジスタ動作は命令待ち行列
34に記憶される。待ち行列30.34のこれらの命令
は、適当な時間において実行制御ユニット32により指
名される。
作動状態では、命令待ち行列30の命令が、浮動小数点
処理ユニット・レジスタにデータが記憶されることを要
求することがある。このデータは、これらの命令が実行
のために指名できるようになる前に記憶される必要があ
る。本発明のタグ付は装置は、これらの命令を適切に管
理して、命令が指名された時に、これらの命令で要求さ
れるデータがレジスタに適切に記憶されているようにす
る。
第3図は本発明のタグ機構を示している。この発明は浮
動小数点ユニット16の回路構成により構成されている
。浮動小数点ユニット16において、復号0レジスタ2
6と復号ルジスタ28は復号された命令を記憶する。復
号処理において、比較機構40.42.44.46.4
8を使用して比較が行われ、復号処理中のいずれかの命
令が、待ち行列70.72として第3図に示すロード命
令待ち行列34に記憶されたロード命令の実行に従属す
るかどうかが判断される。両待ち行列位置70.72は
6ビツトrTJ記連子を含んでいる。
該記述子は、ロード命令によりロードされている浮動小
数点実行ユニット16におけるレジスタのアドレスであ
る。これらのレジスタ・アドレスは比較機構40,42
.44.46.48への入力であり、復号回路26.2
8において命令により特定されるレジスタと比較される
。なお、実施例では、浮動小数点命令が3個までの元レ
ジスタと、1個の宛先レジスタとを含んでいる。元レジ
スタはrAJ、rBJ、rcJと指定されている。宛先
レジスタ又は目標レジスタは、 「T」で指定されてい
る。実施例では、浮動小数点実行ユニット16が命令を
実行し、それにより、積及び和の両方(A*B+C)が
求められる。様式にしたがって、積算・加算処理の結果
が次に目標レジスタ「T」に置かれる。
肯定比較が、復号処理中の命令におけるレジスタ指示子
でいずれかのレジスタによりなされる場合、命令が命令
バッファ62に記憶された時に、適当なタグが設定され
る。タグは、タグ制御回路部68で制御されながら、2
ビツトバツフア64に記憶される。バッファ50154
.58.62は第2図に示す命令待ち行列30に対応す
る。各命令は、復号されると、第1の利用可能なバッフ
ァに記憶される(該バッファは、ロード命令については
、バッファ72で始まり、その他の全ての浮動小数点命
令については、バッファ62で始まる)。従って、全て
の非同期命令(固定小数点ユニット14の命令の実行と
は無関係に浮動小数点実行ユニット16で実行される命
令)は、最初に、バッファ50に記憶される。又、バッ
ファ50.54.58.82に記憶された命令について
も、それらの個々のタグはタグ記憶機構52.56.8
0.84にそれぞれ移送される。命令が指名されると、
該命令は実行回路部66へ送られる。タグ制御論理部6
8はメモリ・バス8からデータ準備信号を受は取るよう
に接続されている。データ準備信号を受は取ると、適当
なタグがゼロ化される。又、タグ制御論理部は、タグ位
置64の両方のタグ参ビットが0になると、バッファ位
置62の命令を指名する。この様にして本発明は命令待
ち行列の命令順序を管理して、命令実行のためのデータ
が適切に取り込まれ、実行のために命令が実際に指名さ
れる前に利用可能となるようにする。
第4図はタグ付は処理をフローチャート形態で示してい
る。ステップ100において、復号回路部に有効命令が
あるかどうかが判断される。ない場合、その様な有効命
令が存在するまで、制御動作はループ状態となる。次に
、ステップ102において、有効命令がロード待ち行列
1に存在するかどうかが判断される。有効命令がロード
待ち行列1にない場合、制御はステップ102の最初に
戻る。有効命令が待ち行列1に存在する場合、制御はス
テップ106に進んで、取り出されているオペランドが
復号中の命令にとって適切なオペランドであるかどうか
が判断される。適切であれば、制御はステップ110へ
進み、命令タグΦビット1が1に等しく設定される。適
切でない場合、制御はステップ112に進み、命令タグ
・ビット1が0に設定される。これと並行して、ステッ
プ104では、ロード待ち行列Oの命令が有効命令であ
るかどうかという判断がなされる。有効命令でない場合
、制御はステップ104の最初に戻る。
有効ロード命令が存在する場合、制御はステップ108
に進み、取り出されつつあるオペランドが復号中の命令
のためのオペランドであるかどうかが判断され、そうで
あれば、命令タグ・ビットOがステップ114において
1に設定される。そうでない場合、命令タグ・ピッ)O
がステップ116でOに設定される。
第3図から明らかなように、4つの命令バッファ501
54.58.62の内の1つに記憶された命令が、バッ
ファ72.70に記憶された2つのロード命令の結果と
して、ロードされているオペランドのロードが完了して
いるこきを要求できる。この例では、ビット記憶バッフ
ァ52又は56.60.64の両方のビットが、そのそ
れぞれの命令バッファ50又は54.58.82につい
て、1つの1を含むことになる。バッファ72のロード
動作が実行ユニット74に移動すると、バッファ70の
動作はバッファ72まで下降し、タグ・バッファ52又
は56.60.64の最も左のビットが最も右のビット
位置へ移動する。従って、両方のビット位置が1に設定
され、これは命令バッファ70.72に記憶された両方
のロード命令カデータについての未処理要求を持ってい
ることを示すものである。同様に、両方のビット位置が
Oであれば、これは、ロード中のいずれのデータにも従
属性が全くなく、命令は実行のために指名できるという
ことを意味する。
第5図は実行のためのタグの順序及び命令のホールディ
ング拳オフを説明する状態線図である。
ロート・バッファI70で実行中のロード命令に命令が
従属する時、タグは第1状態120において、工Xに設
定される。その場合、「X」は「任意」を意味する。そ
の時点で実行状態は0に設定され、これは命令を実行の
ために指名できないことを意味する。そのオペランドに
ついてのデータ準備信号が0である限り、処理はこの状
態に留まる。オペランドについて、データ準備信号が受
は取られると、処理は状態122に進む。これは、ロー
ド命令が第3図のロード命令バッファ70からロード命
令バッファ72へ移送されたことを示す。この場合も、
次のデータ準備信号が受は取られるまで、処理は状態1
22に留まり、受は取りが行われると、処理は状態12
4に進み、そこにおいて、タグが00に設定され、実行
状態が1に変化して、命令が実行のために指名されたこ
とが示される。
第6A図は命令順序を示している。通常の順序で実行さ
れる連続送り形処理システムの動作では、第1命令LD
O(レジスターOのロードを示す)が実行のために指名
される最初の命令となる。後続の全ての命令は、このレ
ジスタOロードの完了を待つことになる。次に、レジス
タ2の内容とレジスタ3の内容とを乗算することが乗算
命令により指示される。乗算命令に続いて、レジスタ1
をロードするロード命令が与えられる。最後に、加算命
令が与えられ、レジスタOの内容とレジスタ1の内容と
が加算され、その結果がレジスタ4に記憶される。
この例を説明するために、レジスタ2.3が予めロード
されているものとする。第3図において、ロード・レジ
スタO命令が復号Oレジスタ26にロードされ、乗算命
令がサイクル1(第6B図)において復号ルジスタ28
にロードされる。サイクル2では、ロード・レジスタ0
命令が未処理ロード待ち行列ルジスタ72へ移送され、
データ従属性が全くないので、乗算命令が非同期命令バ
ッファ50.54.58.62がら実行ユニット66へ
実行のために供給される。
サイクル1では、ロード・レジスタ1命令が復号0レジ
スタ26に置かれ、加算命令が復号ルジスタ28に置か
れる。サイクル1では、ロード・レジスタO命令が未処
理ロード命令待ち行列ルジスタ72に留まり、ロード・
レジスタ1命令が未処理ロード命令待ち行列0レジスタ
70に置かれる。加算命令はバッファ0レジスタ62に
置かれ、又、タグ・レジスタ64が11に設定され、こ
れは加算命令がレジスタ70172に記憶された両方の
ロード命令の実行完了に従属していることを示している
。サイクル3では、データ準備信号がデータ準備ライン
150で示すように受は取られる。これは、データが、
それを適当なレジスタで記憶するために、浮動小数点実
行ユニット16に与えられていることを示す。ロード命
令はそれらの適当な未処理ロード命令待ち行列レジスタ
70172に記憶されたままとなり、加算命令は、その
タグがタグ記憶機構60に記憶された状態でレジスタ6
2に記憶された状態に留まる。サイクル4では、ロード
・レジスタ0命令は完了しているので、レジスタ72か
ら除去され、ロード・レジスタOからのロード昏レジス
タ1により置き換えられる。加算命令がレジスタ62に
留まっている間、レジスタ64のタグは01に再設定さ
れ、これは、1つのロード命令が完了し、命令が従属す
る未処理ロードがこの時点でレジスタ72に置かれたこ
とを示している。サイクル5では、第2のデータ準備信
号がライン150で受は取られる。
サイクル6では、データの第2ピースが浮動小数点実行
ユニット16で既に受は取られているので、加算タグは
OOに設定され、加算命令が実行ユニット66に指名さ
れる。
第7A図は第6A図の命令順序に類似した第2の命令順
序を示している。但し、第7A図の命令順序は、乗算命
令ではなく、除算命令を含んでいる。除算命令の重要性
は、それにより、乗算命令よりも実行に数多くのサイク
ルを必要とするということである。第6B図において、
乗算命令は単一サイクルで完了する。第7B図に示す例
では、除算命令はその完了までに7つのサイクルが必要
である。
サイクルOにおいて、ロード及び除算命令の両者が前述
(第6A図及び第6B図)の場合と同様に、復号レジス
タ26.28に置かれる。サイクル1では、復号レジス
タ28からの除算命令が実行ユニット66に直接置かれ
る。ロード壷レジスタ0命令は、未処理ロード命令待ち
行列ルジスタ72内に置かれる。又、ロード・レジスタ
1命令は、復号Oレジスタ26に置かれ、加算命令は復
号ルジスタ28に置かれる。サイクル2において、ロー
ド・レジスタ1命令は未処理ロード命令待ち行列0レジ
スタ70に置かれ、加算命令はバッファ0レジスタ62
に置かれる。その時点において、タグ制御論理部68が
レジスタ70.72の両方のロード命令の完了にタグを
設定する。
サイクル3において、データ準備信号はライン152で
示すように受は取られる。
サイクル4において、ロード・レジスタO命令は既に完
了しており、データは適当な浮動小数点実行ユニットφ
レジスタにロードされているので、該命令は破棄される
。ロード・レジスタ1命令が次にレジスタ70からレジ
スタ72へ移される。
次に、タグ制御論理部68がタグ記憶機構64のタグを
01に再設定し、これは、単一ロード命令だけにデータ
従属性があり、ロード命令がレジスタ72に記憶される
ことを示している。サイクル5では、第2のデータ準備
信号が受は取られる。
サイクル6では、レジスタ72のロード1命令は既に完
了しており、データは浮動小数点実行ユニットに適切に
ロードされているので、該命令は破棄される。タグ制御
論理部68はタグ記憶機構64に一時的に記憶されたタ
グを00に再設定しており、これは、レジスタ58に記
憶された加算命令について、データ従属性が全くないこ
とを示している。但し、除算命令は引き続いて実行され
る。
サイクル7では除算命令の実行が以前として継続してい
るために、バッフアルジスタロ2の加算命令を実行ユニ
ット66に指名することができない。サイクル8では、
除算命令が最終的に完了するので、加算命令が指名され
、純粋に順序的な実行に比べて、全体で3サイクルが節
約される。
第8A図は第3の命令の命令順序を含んでおり、それに
よると、2つのロード命令が復号され、又、それに対し
て加算及び乗算命令が続いている。この命令順序の目的
は、データ従属性のない(完了している未処理ロードに
従属しない)命令を実行ユニットに指名できないという
ことを説明することである。第8B図において、ロード
・レジスタO命令とロード・レジスタ1命令は、それぞ
れ、復号0レジスタ26と復号ルジスタ28とに指名さ
れる。サイクル1において、ロード拳しジスタO命令は
未処理ロード命令待ち行列0レジスタ72に置かれる。
ロードφレジスタ1命令は未処理ロード命令待ち行列0
レジスタ70に置かれる。
加算及び乗算命令は復号Oレジスタ26及び復号ルジス
タ28にそれぞれ置かれる。但し、加算及び乗算命令の
両者は、レジスタ0にロードされるデータに対して従属
性がある。この例を説明するために、 (レジスタ5.
7における)これらの命令により要求されるその他のデ
ータは既に与えられているものとする。サイクル2では
、ロード・レジスタ1及びロード・レジスタO命令が、
それぞれ、レジスタ70.72に留まっており、方、乗
算命令はバッフアルレジスタ58に置かれ、加算命令は
バッファ0レジスタ62に置かれている。加算及び乗算
命令の両者が、実行の完了したレジスタ72のロード命
令に従属しているので、タグは両者とも01に設定され
る。これらのタグは対応する命令ごとにレジスタ60.
64に記憶される。サイクル3では、データ準備信号が
ライン154で受は取られる。サイクル4では、加算命
令が、−時記憶機構64のタグをOOに再設定し、又、
加算命令が実行のために、命令ユニット66に指名され
る。一方、乗算命令はバッファ0レジスタ62に移動さ
せられ、そのタグはタグ記憶機構60からタグ記憶機構
64へ移る。加算命令と同様に、乗算命令のタグもOO
に再設定されており、これはデータ従属性が全く存在し
ないことを示す。又、サイクル4では、この時点で実行
が完了しているロード0命令が破棄される。ロード・レ
ジスタ1命令は未処理ロード命令待ち行列ルジスタ72
に移される。サイクル5では、ロード・レジスタ1命令
が実行完了を待つ間に、乗算命令が実行ユニット66に
指名される。最後に、サイクル8に置いて、データ準備
信号がラインエ54で受は取られ、これはロード・レジ
スタ1命令の実行が完了したことを示している。
F0発明の効果 本発明は、1つの命令の実行が第1プロセツサで行われ
、その間に該命令のためのデータが第2プロセツサで取
り出される多重プロセッサを含むデータ処理システム用
のタグ付は機構を提供するものである。
【図面の簡単な説明】
第1図はデータ処理システムのブロック線図、第2図は
浮動小数点ユニットに配置される命令待ち行列を示すブ
ロック線図、第3図は浮動小数点ユニットの命令待ち行
列に接続される命令復号論理部を示すブロック線図、第
4図はタグ処理を示すフローチャート、第5図はタグ処
理における命令フローを示す状態説明図、第6A図は第
1順序の命令の図、第6B図は第6A図の命令順序の連
続送り実行を示すタイミング線図、第7A図は第2命令
順序を示す図、第7B図は第7A図の命令順序の連続送
り実行を説明するタイミング線図、第8A図は第3命令
順序を示す図、第8B図は第8A図の命令順序の連続送
り実行を説明するタイミング線図である。

Claims (8)

    【特許請求の範囲】
  1. (1)第1命令を実行するための命令実行手段とメモリ
    から命令を取り出すとともに、第2命令に応答してメモ
    リからデータを取り出す取り出し手段と; 取り出された命令を復号するための命令復号手段とを設
    け、それにより、上記第1命令を命令待ち行列手段に指
    名するとともに、上記第2命令を上記取り出し手段に指
    名するようにし; 上記命令待ち行列手段が、復号された第1命令を記憶す
    るとともに、実行に必要なデータが取り出されていない
    時に、記憶済みの第1命令にタグを付け、実行に必要な
    データが取り出された時に上記第1命令のタグを消去し
    、タグ無し第1命令を命令実行手段に順々に与えるよう
    になっていることを特徴とするデータ処理システム。
  2. (2)上記命令待ち行列手段が、レジスタ対レジスタ命
    令及びレジスタ対メモリ命令を記憶するための第1待ち
    行列手段と、メモリ対レジスタ命令を記憶するための第
    2待ち行列手段とを含んでいる請求項1記載のデータ処
    理システム。
  3. (3)上記命令復号手段が、2つの命令を同時に復号す
    るための第1及び第2の命令復号回路手段を含んでいる
    請求項2記載のデータ処理システム。
  4. (4)上記取り出し手段が、第2命令に応答してメモリ
    からデータが取り出される間に、上記第2命令を記憶す
    るための第2命令待ち行列を含み、上記命令待ち行列手
    段が第1命令の記憶とは別に上記第2命令待ち行列に記
    憶された第2命令を記憶する手段を含んでいる請求項3
    記載のデータ処理システム。
  5. (5)上記取り出し手段が、命令実行手段へ、第2命令
    に応答して取り出されたデータを与える手段を含んでい
    る請求項4記載のデータ処理システム。
  6. (6)上記命令待ち行列手段が、第1命令に必要なデー
    タが取り出し手段により命令実行手段に記憶されている
    時に、記憶された第1命令のタグを消去する請求項5記
    載のデータ処理システム。
  7. (7)上記命令復号手段が、命令待ち行列手段に記憶さ
    れた第2命令から実行のためにデータが必要であるかど
    うかを各復号済み第1命令について判断するための比較
    手段を含んでいる請求項6記載のデータ処理システム。
  8. (8)上記命令待ち行列手段が複数の順序付けた第1命
    令記憶ラッチを含み、該ラッチが、第1命令をそれらの
    それぞれのタグで順序付けた順序で記憶する第1命令タ
    グ・ラッチを含み、更に、上記命令待ち行列手段が、第
    2命令の実行に応答して、上記記憶済み第1命令とそれ
    に対応するタグとの順序を変更する手段を含んでいる請
    求項7記載のデータ処理システム。
JP2279510A 1989-12-20 1990-10-19 データ処理システム Expired - Lifetime JP2701179B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/453,529 US5150470A (en) 1989-12-20 1989-12-20 Data processing system with instruction queue having tags indicating outstanding data status
US453529 1989-12-20

Publications (2)

Publication Number Publication Date
JPH03191461A true JPH03191461A (ja) 1991-08-21
JP2701179B2 JP2701179B2 (ja) 1998-01-21

Family

ID=23800914

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2279510A Expired - Lifetime JP2701179B2 (ja) 1989-12-20 1990-10-19 データ処理システム

Country Status (10)

Country Link
US (1) US5150470A (ja)
EP (1) EP0437044B1 (ja)
JP (1) JP2701179B2 (ja)
KR (1) KR930008035B1 (ja)
CN (1) CN1021144C (ja)
AU (1) AU639953B2 (ja)
DE (1) DE69017178T2 (ja)
HK (1) HK90795A (ja)
MY (1) MY104531A (ja)
NZ (1) NZ236142A (ja)

Families Citing this family (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2507638B2 (ja) * 1989-12-01 1996-06-12 三菱電機株式会社 デ―タ処理装置
US5255371A (en) * 1990-04-02 1993-10-19 Unisys Corporation Apparatus for interfacing a real-time communication link to an asynchronous digital computer system by utilizing grouped data transfer commands
JP2834292B2 (ja) * 1990-08-15 1998-12-09 株式会社日立製作所 データ・プロセッサ
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
US5371684A (en) * 1992-03-31 1994-12-06 Seiko Epson Corporation Semiconductor floor plan for a register renaming circuit
JP2549256B2 (ja) * 1992-12-01 1996-10-30 インターナショナル・ビジネス・マシーンズ・コーポレイション 浮動小数点プロセッサへデータを転送する方法及び装置
US5761473A (en) * 1993-01-08 1998-06-02 International Business Machines Corporation Method and system for increased instruction synchronization efficiency in a superscalar processsor system utilizing partial data dependency interlocking
US5434987A (en) * 1993-09-21 1995-07-18 Intel Corporation Method and apparatus for preventing incorrect fetching of an instruction of a self-modifying code sequence with dependency on a bufered store
WO1995016955A1 (en) * 1993-12-15 1995-06-22 Silicon Graphics, Inc. Load latency of zero for floating point load instructions using a load data queue
US5734856A (en) * 1994-04-05 1998-03-31 Seiko Epson Corporation System and method for generating supplemental ready signals to eliminate wasted cycles between operations
US5758176A (en) * 1994-09-28 1998-05-26 International Business Machines Corporation Method and system for providing a single-instruction, multiple-data execution unit for performing single-instruction, multiple-data operations within a superscalar data processing system
CN1069983C (zh) * 1994-10-13 2001-08-22 联华电子股份有限公司 一种虚拟排队装置
US5745726A (en) * 1995-03-03 1998-04-28 Fujitsu, Ltd Method and apparatus for selecting the oldest queued instructions without data dependencies
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
US5799165A (en) * 1996-01-26 1998-08-25 Advanced Micro Devices, Inc. Out-of-order processing that removes an issued operation from an execution pipeline upon determining that the operation would cause a lengthy pipeline delay
US5796997A (en) * 1996-05-15 1998-08-18 Hewlett-Packard Company Fast nullify system and method for transforming a nullify function into a select function
US5920710A (en) * 1996-11-18 1999-07-06 Advanced Micro Devices, Inc. Apparatus and method for modifying status bits in a reorder buffer with a large speculative state
US5878242A (en) * 1997-04-21 1999-03-02 International Business Machines Corporation Method and system for forwarding instructions in a processor with increased forwarding probability
US5941983A (en) * 1997-06-24 1999-08-24 Hewlett-Packard Company Out-of-order execution using encoded dependencies between instructions in queues to determine stall values that control issurance of instructions from the queues
US5958047A (en) * 1997-06-25 1999-09-28 Sun Microsystems, Inc. Method for precise architectural update in an out-of-order processor
US5958041A (en) * 1997-06-26 1999-09-28 Sun Microsystems, Inc. Latency prediction in a pipelined microarchitecture
US6032249A (en) * 1998-02-02 2000-02-29 International Business Machines Corporation Method and system for executing a serializing instruction while bypassing a floating point unit pipeline
US7237090B1 (en) 2000-12-29 2007-06-26 Mips Technologies, Inc. Configurable out-of-order data transfer in a coprocessor interface
US7287147B1 (en) 2000-12-29 2007-10-23 Mips Technologies, Inc. Configurable co-processor interface
US7168066B1 (en) * 2001-04-30 2007-01-23 Mips Technologies, Inc. Tracing out-of order load data
US7181728B1 (en) 2001-04-30 2007-02-20 Mips Technologies, Inc. User controlled trace records
US7069544B1 (en) 2001-04-30 2006-06-27 Mips Technologies, Inc. Dynamic selection of a compression algorithm for trace data
US7134116B1 (en) 2001-04-30 2006-11-07 Mips Technologies, Inc. External trace synchronization via periodic sampling
US7185234B1 (en) * 2001-04-30 2007-02-27 Mips Technologies, Inc. Trace control from hardware and software
US7124072B1 (en) 2001-04-30 2006-10-17 Mips Technologies, Inc. Program counter and data tracing from a multi-issue processor
US7178133B1 (en) 2001-04-30 2007-02-13 Mips Technologies, Inc. Trace control based on a characteristic of a processor's operating state
US7065675B1 (en) 2001-05-08 2006-06-20 Mips Technologies, Inc. System and method for speeding up EJTAG block data transfers
US7043668B1 (en) 2001-06-29 2006-05-09 Mips Technologies, Inc. Optimized external trace formats
US7231551B1 (en) 2001-06-29 2007-06-12 Mips Technologies, Inc. Distributed tap controller
US7159101B1 (en) 2003-05-28 2007-01-02 Mips Technologies, Inc. System and method to trace high performance multi-issue processors
DE102004004307A1 (de) * 2004-01-28 2005-09-01 Infineon Technologies Ag Schaltungsanordnung mit Zustandskontrolleinrichtung zur Überprüfung von abgesetzten Befehlen
US20110004718A1 (en) * 2009-07-02 2011-01-06 Ross John Stenfort System, method, and computer program product for ordering a plurality of write commands associated with a storage device
US20120117335A1 (en) * 2010-11-10 2012-05-10 Advanced Micro Devices, Inc. Load ordering queue
US9519944B2 (en) * 2014-09-02 2016-12-13 Apple Inc. Pipeline dependency resolution
GB2564144B (en) * 2017-07-05 2020-01-08 Advanced Risc Mach Ltd Context data management
GB2572954B (en) * 2018-04-16 2020-12-30 Advanced Risc Mach Ltd An apparatus and method for prefetching data items
CN111290786B (zh) * 2018-12-12 2022-05-06 展讯通信(上海)有限公司 一种信息处理方法、设备及存储介质

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3718912A (en) * 1970-12-22 1973-02-27 Ibm Instruction execution unit
US4179736A (en) * 1977-11-22 1979-12-18 Honeywell Information Systems Inc. Microprogrammed computer control unit capable of efficiently executing a large repertoire of instructions for a high performance data processing unit
JPS58151655A (ja) * 1982-03-03 1983-09-08 Fujitsu Ltd 情報処理装置
JP2564805B2 (ja) * 1985-08-08 1996-12-18 日本電気株式会社 情報処理装置
US4972317A (en) * 1986-10-06 1990-11-20 International Business Machines Corp. Microprocessor implemented data processing system capable of emulating execution of special instructions not within the established microprocessor instruction set by switching access from a main store portion of a memory
US5001624A (en) * 1987-02-13 1991-03-19 Harrell Hoffman Processor controlled DMA controller for transferring instruction and data from memory to coprocessor
US5045992A (en) * 1988-10-19 1991-09-03 Hewlett-Packard Company Apparatus for executing instruction regardless of data types and thereafter selectively branching to other instruction upon determining of incompatible data type
US4999802A (en) * 1989-01-13 1991-03-12 International Business Machines Corporation Floating point arithmetic two cycle data flow

Also Published As

Publication number Publication date
EP0437044B1 (en) 1995-02-22
AU6675390A (en) 1991-06-27
EP0437044A2 (en) 1991-07-17
AU639953B2 (en) 1993-08-12
NZ236142A (en) 1992-12-23
MY104531A (en) 1994-04-30
KR930008035B1 (en) 1993-08-25
HK90795A (en) 1995-06-16
CN1021144C (zh) 1993-06-09
EP0437044A3 (en) 1992-11-04
DE69017178T2 (de) 1995-08-10
DE69017178D1 (de) 1995-03-30
JP2701179B2 (ja) 1998-01-21
US5150470A (en) 1992-09-22
CN1052740A (zh) 1991-07-03
KR910012913A (ko) 1991-08-08

Similar Documents

Publication Publication Date Title
JPH03191461A (ja) データ処理システム
CA1325285C (en) Method and apparatus for ordering and queueing multiple memory requests
US4926323A (en) Streamlined instruction processor
US5872985A (en) Switching multi-context processor and method overcoming pipeline vacancies
EP0365188B1 (en) Central processor condition code method and apparatus
EP0380850B1 (en) Method and digital computer for preproccessing multiple instructions
US5421020A (en) Counter register implementation for speculative execution of branch on count instructions
US5778210A (en) Method and apparatus for recovering the state of a speculatively scheduled operation in a processor which cannot be executed at the speculated time
JP3531167B2 (ja) 命令実行を制御するため命令にタグを割り当てるシステム及び方法
US5664137A (en) Method and apparatus for executing and dispatching store operations in a computer system
WO1998013759A1 (fr) Machine de traitement de donnees et systeme de traitement de donnees
JPH0816395A (ja) 格納要求処理方法および取出し/格納バッファ
JPH09120360A (ja) ロード命令を実行する実行ユニットを具備するデータ・プロセッサおよびその動作方法
JP2783505B2 (ja) 独立にアクセスされる中間記憶域を利用してスーパースカラ・プロセッサ・システムにおける命令ディスパッチを改善する方法およびシステム
JP2009099097A (ja) データ処理装置
US6192461B1 (en) Method and apparatus for facilitating multiple storage instruction completions in a superscalar processor during a single clock cycle
US5813045A (en) Conditional early data address generation mechanism for a microprocessor
JPH08249180A (ja) プロセッサにおけるディスパッチ待ち時間の低減方法及びシステム
US5727177A (en) Reorder buffer circuit accommodating special instructions operating on odd-width results
JPH03233630A (ja) 情報処理装置
US20100100709A1 (en) Instruction control apparatus and instruction control method
US6175909B1 (en) Forwarding instruction byte blocks to parallel scanning units using instruction cache associated table storing scan block boundary information for faster alignment
US6085302A (en) Microprocessor having address generation units for efficient generation of memory operation addresses
JP5093237B2 (ja) 命令処理装置
US7996655B2 (en) Multiport execution target delay queue FIFO array