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

データ処理システム

Info

Publication number
JP2701179B2
JP2701179B2 JP2279510A JP27951090A JP2701179B2 JP 2701179 B2 JP2701179 B2 JP 2701179B2 JP 2279510 A JP2279510 A JP 2279510A JP 27951090 A JP27951090 A JP 27951090A JP 2701179 B2 JP2701179 B2 JP 2701179B2
Authority
JP
Japan
Prior art keywords
instruction
load
execution
register
data
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
JP2279510A
Other languages
English (en)
Other versions
JPH03191461A (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 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

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)
  • Multi Processors (AREA)
  • Computer And Data Communications (AREA)

Description

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

Claims (2)

    (57)【特許請求の範囲】
  1. 【請求項1】メモリからデータを取り出すロード命令の
    後ろに、前記データに対して演算を行う演算命令が続く
    命令順序を処理するデータ処理システムであって、 前記ロード命令及び前記演算命令を含む複数の命令並び
    にデータを記憶するメモリと、 前記演算命令を実行する第1の実行手段と、 前記メモリから取り出された命令を復号し、復号した命
    令が前記演算命令であれば該演算命令を第1の待ち行列
    手段に入れ、復号した命令が前記ロード命令であれば該
    ロード命令を第2の待ち行列手段に入れる命令復号手段
    と、 前記第2の待ち行列手段に入れられたロード命令の実行
    が完了するまで、前記第1の待ち行列手段中の関連する
    演算命令にタグを付け、前記ロード命令の実行が完了す
    ると前記関連する演算命令のタグをはずすタグ制御手段
    と、 前記タグ制御手段によってタグをはずされた演算命令を
    前記第1の待ち行列手段から前記第1の実行手段にディ
    スパッチするディスパッチ手段と、 前記第1の実行手段から独立して前記ロード命令を実行
    する第2の実行手段と、 を具備するデータ処理システム。
  2. 【請求項2】メモリからデータを取り出すロード命令の
    後ろに、前記データに対して演算を行う演算命令が続く
    命令順序を処理するために、前記ロード命令及び前記演
    算命令を含む複数の命令並びにデータを記憶するメモリ
    と、前記演算命令を実行する第1の実行手段と、前記第
    1の実行手段から独立して前記ロード命令を実行する第
    2の実行手段とを有するデータ処理システムにおいて、 前記メモリから取り出された命令を復号し、復号した命
    令が前記演算命令であれば該演算命令を第1の待ち行列
    手段に入れ、復号した命令が前記ロード命令であれば該
    ロード命令を第2の待ち行列手段に入れるステップと、 前記ロード命令を前記第2の待ち行列手段から前記第2
    の実行手段へディスパッチするステップと、 前記ロード命令の実行が完了するまで、前記第1の待ち
    行列手段中の関連する演算命令にタグを付け、前記ロー
    ド命令の実行が完了すると前記関連する演算命令のタグ
    をはずすステップと、 前記タグ制御手段によってタグをはずされた演算命令を
    前記第1の待ち行列手段から前記第1の実行手段にディ
    スパッチするステップと、 を含む命令実行制御方法。
JP2279510A 1989-12-20 1990-10-19 データ処理システム Expired - Lifetime JP2701179B2 (ja)

Applications Claiming Priority (2)

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

Publications (2)

Publication Number Publication Date
JPH03191461A JPH03191461A (ja) 1991-08-21
JP2701179B2 true 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
US7134116B1 (en) 2001-04-30 2006-11-07 Mips Technologies, Inc. External trace synchronization via periodic sampling
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
US7178133B1 (en) 2001-04-30 2007-02-13 Mips Technologies, Inc. Trace control based on a characteristic of a processor's operating state
US7124072B1 (en) 2001-04-30 2006-10-17 Mips Technologies, Inc. Program counter and data tracing from a multi-issue processor
US7069544B1 (en) * 2001-04-30 2006-06-27 Mips Technologies, Inc. Dynamic selection of a compression algorithm for trace data
US7185234B1 (en) * 2001-04-30 2007-02-27 Mips Technologies, Inc. Trace control from hardware and software
US7065675B1 (en) 2001-05-08 2006-06-20 Mips Technologies, Inc. System and method for speeding up EJTAG block data transfers
US7231551B1 (en) 2001-06-29 2007-06-12 Mips Technologies, Inc. Distributed tap controller
US7043668B1 (en) 2001-06-29 2006-05-09 Mips Technologies, Inc. Optimized external trace formats
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
EP0437044A2 (en) 1991-07-17
EP0437044A3 (en) 1992-11-04
HK90795A (en) 1995-06-16
AU639953B2 (en) 1993-08-12
DE69017178T2 (de) 1995-08-10
CN1021144C (zh) 1993-06-09
JPH03191461A (ja) 1991-08-21
KR930008035B1 (en) 1993-08-25
AU6675390A (en) 1991-06-27
KR910012913A (ko) 1991-08-08
MY104531A (en) 1994-04-30
DE69017178D1 (de) 1995-03-30
US5150470A (en) 1992-09-22
CN1052740A (zh) 1991-07-03
NZ236142A (en) 1992-12-23
EP0437044B1 (en) 1995-02-22

Similar Documents

Publication Publication Date Title
JP2701179B2 (ja) データ処理システム
US4875160A (en) Method for implementing synchronous pipeline exception recovery
KR101148495B1 (ko) 파이프라인 프로세서에서 조건 명령 실행을 촉진시키기 위해 로컬 조건 코드 레지스터를 이용하기 위한 방법 및 장치
US5872985A (en) Switching multi-context processor and method overcoming pipeline vacancies
US5019967A (en) Pipeline bubble compression in a computer system
JP2503164B2 (ja) デ―タ処理システム
CA1325285C (en) Method and apparatus for ordering and queueing multiple memory requests
KR930004214B1 (ko) 데이타 처리 시스템
US5006980A (en) Pipelined digital CPU with deadlock resolution
US5142631A (en) System for queuing individual read or write mask and generating respective composite mask for controlling access to general purpose register
JP2597811B2 (ja) データ処理システム
US6233670B1 (en) Superscalar processor with direct result bypass between execution units having comparators in execution units for comparing operand and result addresses and activating result bypassing
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
US5867684A (en) Method and processor that permit concurrent execution of a store multiple instruction and a dependent instruction
JPS63131230A (ja) 情報処理装置
WO1998013759A1 (fr) Machine de traitement de donnees et systeme de traitement de donnees
JPH09258980A (ja) 並列マルチタスキングの方法及びシステム
JPH087678B2 (ja) 異なるアーキテクチヤのインストラクシヨンを処理するコンピユータ及びその結果の通信方法
JPH08505725A (ja) 命令実行を制御するため命令にタグを割り当てるシステム及び方法
US6338134B1 (en) Method and system in a superscalar data processing system for the efficient processing of an instruction by moving only pointers to data
US6003126A (en) Special instruction register including allocation field utilized for temporary designation of physical registers as general registers
CN110659115A (zh) 具有硬件辅助任务调度的多线程处理器核
US6192461B1 (en) Method and apparatus for facilitating multiple storage instruction completions in a superscalar processor during a single clock cycle
US5479622A (en) Single cycle dispatch delay in a multiple instruction dispatch mechanism of a data processing system
JPH096611A (ja) データ処理システムにおけるデータをバッファリングする方法およびシステム