JPH05250159A - 記憶装置内の複数の命令間の依存を解決するための装置および方法 - Google Patents

記憶装置内の複数の命令間の依存を解決するための装置および方法

Info

Publication number
JPH05250159A
JPH05250159A JP4250145A JP25014592A JPH05250159A JP H05250159 A JPH05250159 A JP H05250159A JP 4250145 A JP4250145 A JP 4250145A JP 25014592 A JP25014592 A JP 25014592A JP H05250159 A JPH05250159 A JP H05250159A
Authority
JP
Japan
Prior art keywords
instructions
instruction
signal
hit
enable
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
JP4250145A
Other languages
English (en)
Other versions
JP3342894B2 (ja
Inventor
Thang M Tran
タン・ミン・トラン
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.)
Advanced Micro Devices Inc
Original Assignee
Advanced Micro Devices Inc
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 Advanced Micro Devices Inc filed Critical Advanced Micro Devices Inc
Publication of JPH05250159A publication Critical patent/JPH05250159A/ja
Application granted granted Critical
Publication of JP3342894B2 publication Critical patent/JP3342894B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/74Selecting or encoding within a word the position of one or more bits having a specified value, e.g. most or least significant one or zero detection, priority encoders
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
    • G06F5/10Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor having a sequence of storage locations each being individually accessible for both enqueue and dequeue operations, e.g. using random access memory
    • G06F5/12Means for monitoring the fill level; Means for resolving contention, i.e. conflicts between simultaneous enqueue and dequeue operations
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; 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
    • G06F9/3838Dependency mechanisms, e.g. register scoreboarding
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/3854Instruction completion, e.g. retiring, committing or graduating
    • G06F9/3856Reordering of instructions, e.g. using queues or age tags
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/3854Instruction completion, e.g. retiring, committing or graduating
    • G06F9/3858Result writeback, i.e. updating the architectural state or memory
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2205/00Indexing scheme relating to group G06F5/00; Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F2205/12Indexing scheme relating to groups G06F5/12 - G06F5/14
    • G06F2205/123Contention resolution, i.e. resolving conflicts between simultaneous read and write operations

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)
  • Executing Machine-Instructions (AREA)
  • Debugging And Monitoring (AREA)

Abstract

(57)【要約】 (修正有) 【目的】リオーダバッファのような記憶装置内の複数の
命令間のデータ依存を解決する。 【構成】比較回路42は記憶装置内の先に記憶された命
令の宛先インジケータと次に送込まれるべき命令中のソ
ースインジケータが符合するごとに比較ヒット信号Dを
発生する。第1のイネーブル回路66は読出ポインタお
よび書込ポインタで規定される第1のパケットの命令の
ために第1のイネーブル信号Cを発生する。第1のAN
D回路50は比較ヒット信号Dおよび第1のイネーブル
信号Cの各符合についてヒットイネーブル信号Eを発生
する。第2のイネーブル回路80は読出ポインタおよび
ヒットイネーブル信号Eによって規定される第2のパケ
ットの命令について第2のイネーブル信号Fを発生す
る。第2のAND回路86は第2のイネーブル信号Fお
よびヒットイネーブル信号Eの各符合について出力信号
Gを発生する。

Description

【発明の詳細な説明】
【0001】
【発明の背景】データ依存を処理するための予約技術を
使用するスーパースカラコンピューティング装置におい
て、リオーダバッファは一般に適当な順序で送込まれた
命令および回収された命令の進路を追うために使用され
る。このようなリオーダバッファの1つの主機能は、送
込まれた読出オペランドとリオーダバッファ内の前の命
令の宛先オペランドとの起こり得る一致についてデコー
ドする間に命令オペランドを検査することである。もし
このような一致が検出されれば、一致された宛先オペラ
ンドを識別するタグが送込まれた命令の読出オペランド
とともに予約ステーションに送られるであろう。このよ
うなタグによって、予約ステーションはリオーダバッフ
ァへ戻るデータのための機能ユニットから結果バスを検
査し、適当なタグが検出されると迅速な処理のために結
果を直接受けることができる。
【0002】リオーダバッファは一般に、リオーダバッ
ファ内のパイプライン中の第1の命令を識別する書込ポ
インタと、パイプライン中の最後の命令の後のエントリ
を指す読出ポインタとを有する。リオーダバッファは一
般にループ先入先出方式(FIFO)レジスタであり、
もし一杯か、または空であれば、結果的に読出および書
込ポインタが同じエントリを指す。このようなデータ処
理条件がパイプライン処理された命令処理技術を使用す
るスーパースカラコンピューティング装置に必要であ
る。このようなコンピューティング装置では典型的に、
複数の命令の取出バッチが各サイクル間に処理される。
このような装置の設計目標はサイクルごとに多数の命令
を送込み、かつ実行することであるが、設計目標に到達
するまでに、命令または分岐命令間のデータ依存事象に
おいて障害に遭遇する。
【0003】異なる命令によって計算されるべきデータ
に依存する命令は、その要求されるオペランドが使用可
能になるまでその演算を始めることができない。もしオ
ペランドが前の命令によって計算されれば、第2の命令
は前の命令が実行を完了するまで待機しなければならな
い。したがって、命令間のデータ依存は命令の実行を遅
らせ、コンピューティング装置の動作効率を低下させ得
る。分岐命令もまた、このような命令は実行前に状態が
知られることをしばしば待たねばならないので、コンピ
ューティング装置の動作効率を低下させるであろう。こ
れらの問題(データ依存および分岐命令)のいずれも結
果的にパイプライン命令処理技術を使用するスーパース
カラシステム内の命令の流れを停止させる。命令の流れ
は「割込」および「トラップ」によっても中断されるで
あろう。割込およびトラップは命令のストリームの正常
な実行を停止する異常な原因のために確保されるワード
である。割込およびトラップは、ユーザアサートされた
外部ピン、違法命令、プリセットされたトレース、停止
点、メモリエラーまたは他の原因によって生じ得る。プ
ロセッサは現在の条件、プロセッサの状態、および現在
の命令のアドレスを記憶して、トラップまたは割込をサ
ービスしなければならない(別の命令のシーケンス)。
トラップ/割込ルーチンの完了後、プロセッサは命令の
ストリームの正常な実行に戻らねばならない。割込およ
びトラップはそれらの発生において不正確であり得、リ
オーダバッファは正常な命令の実行を適切に停止し、か
つ再開するために命令のストリームの進路を追わねばな
らない。
【0004】この発明はリオーダバッファのような記憶
装置内の複数の命令間のこのようなデータ依存および他
の割込を解決するための装置および方法を提供する。こ
の発明はパイプライン命令処理を使用するスーパースカ
ラコンピューティング装置において特に有用である。
【0005】
【発明の概要】この発明はパイプライン命令処理を使用
するスーパースカラコンピューティング装置内のリオー
ダバッファのような記憶装置内の複数の命令間のデータ
依存を解決するための装置および方法である。この装置
は複数のメモリ、またはレジスタ、セルを有する記憶装
置とともに使用可能であり、ループ先入先出方式(FI
FO)モードで作動する記憶装置内で特に使用可能であ
る。記憶装置は、記憶装置内の次の空のメモリセルを示
す読出ポインタを有し、かつ記憶装置内の複数の命令の
パイプ中の第1の命令を示す書込ポインタを有する。複
数の命令の各々は複数のオペランドの作動的組合せを行
ない、結果を決定する。複数のオペランドの各々はソー
スインジケータによって識別され、その結果は宛先イン
ジケータによって識別される。この装置は、次に送込ま
れるべき命令のそれぞれのソースインジケータと一致す
る宛先インジケータを有する記憶装置内の複数の命令の
最も新しく記憶された命令を識別する出力信号を発生す
る。
【0006】命令を送込むということは、命令がデコー
ダから機能ユニットおよびリオーダバッファへ送られる
ということを意味する。命令が送込まれると、ロケーシ
ョンがリオーダバッファに割当てられる。書込ポインタ
はリオーダバッファ内の第1の割当てられた命令を指
し、読出ポインタは次に送込まれるべき命令のためにリ
オーダバッファ内の次に空のロケーションを指す。リオ
ーダバッファ内の割当てられたエントリは、割当てられ
たエントリに関連する命令が機能ユニット内にあること
を示し、これらの命令は実行されているか、または予約
ステーション内で実行されることを待っているかのいず
れかである。命令はデコーダから「順序正しく」送込ま
れ、命令のストリームを確立せねばならない。命令のス
トリームが進むのを妨げる(したがって性能を低下させ
る)ことがないようにするために、リオーダバッファは
命令間の依存を検査して、できるだけ早くデコーダに命
令を送込ませねばならないということが重要である。命
令が機能ユニットによってその実行を完了すると、この
ような実行の結果はリオーダバッファに送り返され、割
当てられたエントリが有効なものとして表示される。リ
オーダバッファの主な機能は、有効に割当てられたエン
トリで「順序正しく」(先入先出方式)書込ポインタか
ら正確にその結果を更新することである。リオーダバッ
ファはまた、リオーダバッファ内のロケーションの割当
てを外し、書込ポインタをふやす。この発明のプロセッ
サにおいて、命令はリオーダバッファによって許容され
るようにデコーダによって「順序正しく」送込まれる。
機能ユニットにおいて、命令は「狂った順で」実行さ
れ、かつリオーダバッファに戻される。リオーダバッフ
ァは「順序正しく」その結果(レジスタファイルおよび
プロセッサ状態)を更新する。リオーダバッファは命令
が送込まれる得る前にすべての依存を調和させる。
【0007】この装置は、次に送込まれるべき命令中の
それぞれのソースインジケータが記憶装置内の先に記憶
された命令の宛先インジケータと符合するごとに比較ヒ
ット信号を発生するための比較ヒット回路と、複数の命
令の第1のパケットの命令のために第1のイネーブル信
号を発生するための第1のイネーブル回路とを含み、そ
の第1のパケットの命令は読出ポインタおよび書込ポイ
ンタによって規定され、この装置はさらに比較ヒット信
号と第1のイネーブル信号とが符合するごとにヒットイ
ネーブル信号を発生するための第1の比較回路と、第2
のパケットの命令のために第2のイネーブル信号を発生
するための第2のイネーブル回路とを含み、この第2の
パケットの命令は読出ポインタおよびヒットイネーブル
信号によって規定され、この回路はさらに第2のイネー
ブル信号とヒットイネーブル信号とが符合するごとに出
力信号を発生するための第2の比較回路を含む。
【0008】その好ましい実施例において、第1のイネ
ーブル回路および第2のイネーブル回路は実質的に同じ
構成のものであり、第1の比較回路および第2の比較回
路は実質的に同じ構成のものである。
【0009】この発明はまた、パイプライン命令処理技
術を使用するスーパースカラコンピューティング装置内
のリオーダバッファのような記憶装置内の複数の命令間
のデータ依存を解決するための方法を含む。この方法
は、(1)次に送込まれるべき命令中のそれぞれのソー
スインジケータの各々を記憶装置内の先に記憶された命
令の宛先インジケータと比較するステップと、(2)次
に送込まれるべき命令中のそれぞれのソースインジケー
タが先に記憶された命令の宛先インジケータと符合する
ごとに比較ヒット信号を発生するステップと、(3)第
1のパケットの命令のために第1のイネーブル信号を発
生するステップとを含み、第1のパケットの命令は読出
ポインタおよび書込ポインタによって規定され、(4)
比較ヒット信号を第1のイネーブル信号と比較するステ
ップと、(5)比較ヒット信号と第1のイネーブル信号
とが一致するごとにヒットイネーブル信号を発生するス
テップと、(6)第2のパケットの命令のために第2の
イネーブル信号を発生するステップとをさらに含み、第
2のパケットの命令は読出ポインタおよびヒットイネー
ブル信号によって規定され、(7)第2のイネーブル信
号をヒットイネーブル信号と比較するステップと、
(8)第2のイネーブル信号とヒットイネーブル信号が
符合するごとに出力信号を発生するステップとをさらに
含む。出力信号は次に送込まれるべき命令のそれぞれの
ソースインジケータと一致する宛先インジケータを有す
る記憶装置内の複数の命令の最も新しく記憶された命令
を識別する。
【0010】したがってこの発明の目的は、送込まれた
読出オペランドと記憶装置内の前の命令の宛先オペラン
ドとの間の一致を効率的に識別する記憶装置内の複数の
命令間のデータ依存を解決するための装置および方法を
提供することである。
【0011】この発明のさらなる目的は、送込まれた命
令によって使用されるための一致した宛先オペランドを
識別するタグを与え、そのタグは送込まれた命令を伴
う、記憶装置内の複数の命令間のデータ依存を解決する
ための装置および方法を提供することである。
【0012】この発明のさらなる目的は、別個の機能に
ついて類似の回路を使用することによってその動作に信
頼性および持続性を与え、かつ構成が簡単な、記憶装置
内の複数の命令間のデータ依存を解決するための装置を
提供することである。
【0013】この発明のさらなる目的および特徴は、こ
の発明の好ましい実施例を表わす添付の図面に関連して
検討されると、以下の明細書および特許請求の範囲から
明らかであろう。
【0014】
【好ましい実施例の詳細な説明】図1はこの発明の装置
および方法とともに使用するために意図される型のリオ
ーダバッファを使用するコンピューティング装置の概略
図である。好ましくは図1に示される装置はデータ依存
を処理するために待合せ技術を使用し、かつパイプライ
ン命令処理技術を使用するスーパースカラコンピューテ
ィング装置である。
【0015】したがって、図1においてデコーダ10は
適当な処理ユニット12によって処理するための命令の
取出バッチ(好ましくは4つの命令のバッチ)を発行す
る。それぞれの命令によって実行されるべき演算の型に
よって、命令は演算論理ユニット(ALU)14、シフ
タ16、または機能ユニット(FU)18、20に送ら
れてもよい。与えられた取出バッチ中の各命令は同時に
リオーダバッファ22にも入れられる。リオーダバッフ
ァ22は、命令間のデータ依存、すなわち分岐命令また
は他の原因、によって生じるかも知れない命令処理にお
ける割込を証明するためにパイプライン命令処理を使用
するこのようなスーパースカラコンピューティング装置
に必要である。すなわち、与えられた命令の結果が次の
命令のためのオペランドとして要求されるか、または分
岐命令がレジスタファイルを更新する分岐の条件の解明
を待つ必要があってもよい。むろん、分岐命令はちょう
ど他のいかなる命令においても起こり得るようなデータ
依存を有する読出オペランドを含んでもよい。たとえば
条件付き分岐命令は別の命令のストリームへジャンプす
るか、現在の命令のストリームを継続することができ
る。条件付き分岐命令の結果は機能ユニットによってそ
れが実行されるまで知られず、その実行結果はリオーダ
バッファに戻される。この発明の好ましい実施例におい
て、プロセッサは分岐命令の結果に関してインテリジェ
ント推量を行ない、命令のストリームから命令を取出し
てデコーダへ入れることを継続する。もし分岐結果の推
量が正しくなければ、リオーダバッファは分岐命令の後
に記憶された誤った命令を除去し、新しい命令のストリ
ームが取り出されるであろう。分岐命令はリオーダバッ
ファ内の有効に割当てられたエントリを使用して実行さ
れる。
【0016】図1に示されるスーパースカラコンピュー
タによって実行されるプログラムが準備されるとき、プ
ログラム中の各命令はレジスタファイル24のどのアド
レスがそれぞれの命令によって行なわれる演算結果を受
けるであろうかに関する情報を含む。各命令について、
特定の命令の実行のために要求されるオペランドがどの
レジスタアドレスから受けられるであろうかに関する情
報も含まれる。
【0017】すなわち、デコーダ10はレジスタファイ
ル24へソースオペランドを送って、データが線31を
介して機能ユニット12へ送られることを要求する。も
しソースオペランドとリオーダバッファ22内の前に記
憶された宛先オペランドとの間に一致が生じ、そのデー
タが有効であれば、リオーダバッファ22は、データが
レジスタファイル24から供給される代わりに、線30
を介して適当な機能ユニット12へデータを供給するで
あろう。もしソースオペランドとリオーダバッファ22
内の前に記憶された宛先オペランドとの間に一致が生
じ、データが有効でなければ、機能ユニット12へデー
タは送られないであろう。代わりに、タグが適当な機能
ユニット12の予約ステーション(図示せず)に送られ
るであろう。予約ステーションは、予約ステーションの
タグと一致するタグを有するデータについて機能ユニッ
ト12から結果バス34を監視するであろう。一致タグ
に関するデータはバス34からバス32を介してバス3
0へ送られるであろう。デコーダ10によって線26を
介して機能ユニット12へ送られる情報は命令の型に関
するものである。命令は依存度検査のためにリオーダバ
ッファ22の補助を得てデコーダ10によって送込まれ
る(または発行される)。
【0018】図1に示されるようなコンピューティング
装置において、それぞれの処理ユニット12の各々は一
般に予約ステーションなどのある種の待合せ装置を有す
る。したがって、必要とされる結果を識別するための識
別子を運ぶ線26上のデコーダ10からそれぞれの処理
ユニット12へ発行する命令は、リオーダバッファ22
または出力線34から線30、32を介して必要な命令
が保持される適当な予約ステーションまたは他の待合せ
装置への識別情報によってそれぞれの必要な情報をその
要求される結果と一致させることができる。
【0019】命令は機能ユニット12によって実行さ
れ、リオーダバッファ22へ「狂った順で」戻される。
リオーダバッファ22は線35を介して「順序正しく」
レジスタファイル24を更新する。
【0020】この発明の理解を容易にするために、様々
な図面において同一のエレメントが同一の参照数字によ
って識別されるであろう。
【0021】図2はこの発明の装置の概略的ブロック図
である。図2において、装置40は比較回路42、デコ
ーダ54、58、AND回路50、86、イネーブル回
路66、80、およびエンコーダ回路90を含む。比較
回路42は入力44でソースアドレス情報を受け、この
ソースアドレス情報はレジスタ24(図1を参照)内の
アドレスを識別し、そこに(オペランドのような)命令
の実行のために要求される情報が記憶される。比較回路
42は入力46で宛先情報も受け、その宛先情報はレジ
スタファイル24内のアドレスを識別し、そこに命令の
実行からの結果がそれぞれの命令の実行後に記憶され
る。比較ヒット信号「D」は比較回路42から出力48
で発生され、AND回路50への入力52として受けら
れ、それによっていかなる命令からの結果についての宛
先アドレスも与えられた命令のオペランドについてのソ
ースアドレスとそれについて一致するリオーダバッファ
22内の各命令を識別する情報をAND回路50に与え
る。デコーダ54は入力56でリオーダバッファ22
(図1を参照)内の読出ポインタのロケーションを識別
する情報を受ける。読出ポインタはリオーダバッファ2
2内の取出バッチの次に送込まれるべき命令を識別す
る。書込ポインタはリオーダバッファ22内の最初に記
憶された命令を識別する。書込ポインタは入力60でデ
コーダ58によって受けられる。デコーダ54は出力6
2で信号「A」を発生し、これはリオーダバッファ22
内の読出ポインタのロケーションに関する情報をデコー
ドされる。デコーダ58は出力64で信号「B」を発生
し、これはリオーダバッファ22内の書込ポインタのロ
ケーションに関する情報をデコードされる。
【0022】イネーブル回路66は入力68でデコード
された読出ポインタ情報(信号「A」)を受け、かつ入
力70でデコードされた書込ポインタ情報(信号
「B」)を受ける。イネーブル回路66は読出ポインタ
および書込ポインタ間のリオーダバッファ22内のすべ
てのエントリについてイネーブル信号「C」(好ましく
は「1」)を発生する。イネーブル信号「C」は出力7
2で与えられる。
【0023】AND回路50は入力53でイネーブル回
路66からのイネーブル信号「C」を受ける。AND回
路50は出力74で出力信号「E」を発生し、この信号
「E」はリオーダバッファ22内の読出ポインタおよび
書込ポインタ間のソースアドレスおよび宛先アドレスの
あらゆる符合、すなわち一致、を識別する。
【0024】信号「E」はイネーブル回路80の入力7
6で与えられる。イネーブル回路80は入力78でデコ
ードされた読出ポインタ情報(信号「A」)を受ける。
好ましくはイネーブル回路80はイネーブル回路66と
同じ構成のものである。イネーブル回路80は出力端子
82で出力信号「F」を発生する。信号「F」は読出ポ
インタからイネーブル信号「C」および比較ヒット信号
「D」の第1の符合へイネーブル信号(好ましくは
「1」)を確立する。
【0025】AND回路86は入力84で信号「E」を
受け、かつ入力85で信号「F」を受ける。好ましくは
AND回路86はAND回路50と同じ構成のものであ
る。AND回路86は出力端子88で出力信号「G」を
発生する。信号「G」はリオーダバッファ22内の読出
ポインタおよび書込ポインタの中間のそれぞれの命令に
よって要求される結果の最も新しく記憶された発生を識
別する。出力信号「G」はエンコーダ90によってエン
コードされ、出力端子92で出力タグとして装置40か
ら送込まれる。
【0026】もし出力タグがリオーダバッファ22内の
有効なエントリを指せば、リオーダバッファ22は(デ
ータがレジスタファイル24から送られている代わり
に)線30を介して機能ユニット12へデータを送るで
あろう。リオーダバッファ22内の有効なエントリは、
命令が機能ユニット12によって実行を完了し、リオー
ダバッファ22内に戻ったことを意味する。命令の結果
がレジスタファイル24、またはプロセッサの状態を
「順序正しく」更新せねばならないので、有効なエント
リ命令はその復帰を待たねばならない。もし出力タグが
リオーダバッファ22内の有効でないエントリを指せ
ば、図1に関連して説明されるように、出力タグは次に
送込まれるべき命令に適切に付加され、実行のための命
令によって要求される情報のロケーションに関する命令
についての識別情報を与え、かつ出力線34から待合せ
装置およびそれぞれの処理ユニット12への線32を介
する直接命令への情報の起こり得る一致を補助する。
【0027】図3は図2に示される装置40によって使
用されるイネーブル回路66、80の電気的概略図であ
る。図3において、第1の入力バス94および第2の入
力バス96の各々は10ビット(ビット0−9)信号を
イネーブル装置100へ送る。したがって、イネーブル
装置100は10個のセル0−9を含む。各セルは入力
バス94および入力バス96の双方のそれぞれのビット
に各セルについて入力IN0 −IN9 が存在するように
関連される。出力バス98は関連された出力OUT0
OUT9 を有する。
【0028】説明を明瞭にするために、代表的セル、セ
ル0の構造が詳細に説明されるであろう。セル0は入力
バス96からの入力112と入力バス94からの入力1
14を有するNORゲート110を含む。PチャネルC
MOSスイッチングトランジスタ116はゲート118
で入力バス96からの信号によってゲートされる。Pチ
ャネルスイッチングトランジスタ116は基準電圧VC
CをNチャネルCMOSスイッチングトランジスタ12
0へゲートする。Nチャネルスイッチングトランジスタ
120は入力バス94からの信号によってそのゲート1
22でゲートされる。NORゲート110の出力124
はそのゲート128でNチャネルCMOSスイッチング
トランジスタ126をゲートする。NチャネルCMOS
スイッチングトランジスタ130はそのゲート132で
入力バス96からの信号によってゲートされる。
【0029】共通線140はすべてのセル0−9を横切
り、復帰共通線141はセル0からループしてセル9に
戻る。
【0030】イネーブル装置100は、入力バス94の
1ビットと入力バス96の1ビットだけがいかなる与え
られた時間にも「1」値を有するであろうようにフォー
マット化された入力バス94、96によって与えられる
アドレスに応答するように構成される。したがって図示
によって、入力バス94がビット6で「1」値を有し、
かつ入力バス96がビット2で「1」値を有する場合の
イネーブル装置100の動作が説明されるであろう。
【0031】このような模範的状況において、入力バス
94上のビット0−5および7−9の「0」値は結果的
にセル0−5および7−9の各々において入力114で
[0」値になるであろう。セル0−1およびセル3−9
における入力バス96の「0」値は結果的に各セル0−
1、3−9について入力112で「0」値になるであろ
う。したがってNORゲート110からの出力124は
セル0−1、3−5、および7−9で「1」値を有する
であろう。言い換えれば、セル2および6はNORゲー
ト110の出力124で「0」値を有するであろう。
【0032】このような構成によって、Nチャネルスイ
ッチングトランジスタ128はセル2および6において
ゲートオフされ、イネーブル装置100内の他のすべて
のセルにおいてゲートオンされるであろう。入力114
でその「1」値を有するセル6は、セル6のNチャネル
スイッチングトランジスタ20をゲートオンするであろ
う。同様に、セル6内の入力112における「0」値は
セル6内のPチャネルスイッチングトランジスタ116
のゲート118に課され、それによってPチャネルスイ
ッチングトランジスタ116をゲートオンし、その結果
基準電圧VCCは共通線140に与えられるであろう。
セル6内のNチャネルスイッチングトランジスタ132
はゲートオフされ、それによって接地から共通線140
を絶縁するであろう。
【0033】共通線140上の信号の流れはセル9から
セル0への指向性があり、復帰共通線141上の信号の
流れはセル0からセル9への指向性がある。セル3−5
の入力114の「0」値はそれらのセル3−5のそれぞ
れのNチャネルスイッチングトランジスタをゲートオフ
し、それによってセル3−5において基準電圧VCCか
ら共通線140を絶縁する。同様に、セル3−5内の入
力バス96から受けられた「0」入力はセル3−5のそ
れぞれのNチャネルトランジスタ130をゲートオフ
し、それによってセル3−5において接地から共通線1
40を絶縁するであろう。したがって、「1」値が出力
OUT2 へOUT5 を介して与えられ、これはセル6に
おいてVCCの接続によって共通線140へ課される。
「0」値は出力OUT0 −OUT1 およびOUT6 −O
UT9 に与えられる。このような態様において、イネー
ブル回路100は入力バス94および96のそれぞれで
存在する2つの「1」値の中間にイネーブル信号
(「1」値)を課す。
【0034】セル2において、入力114の「0」値は
Nチャネルスイッチングトランジスタ120をゲートオ
フし、それによって基準電圧VCCから共通線140を
絶縁し、類似の結果がセル0−1およびセル7−9にお
いて生じる。さらに、セル2の入力112の「1」値は
Pチャネルスイッチングトランジスタ116をゲートオ
フし、かつNチャネルスイッチングトランジスタ130
をゲートオンし、それによって共通線140を接地に接
続し、出力OUT1 で「0」値を課す。出力OUT1
よびOUT2 はセル2においてNチャネルスイッチング
トランジスタ126の「オフ」状態によって互いに絶縁
される。セル0−1およびセル6−9の入力112の
「0」値はそれらのセルにおいてNチャネルスイッチン
グトランジスタ126をゲートオフし、それらのセルに
おいて共通線140を接地から絶縁する。
【0035】したがって、セル6において共通線140
に課された「1」値が出力OUT2−OUT5 へ伝搬さ
れる。セル2において共通線140に課された「0」値
も出力OUT0 −OUT1 、および出力OUT6 −OU
9 へ伝搬される。
【0036】図4は、図3に示されるようなイネーブル
回路100の方法および動作の概略的図表である。図4
においてリオーダバッファ22内の選択された値が示さ
れる。リオーダバッファ22は好ましくは、読出ポイン
タおよび書込ポインタを増加することによってリオーダ
バッファ22内のデータのシフト方向が達成される、ル
ープ先入先出方式(FIFO)レジスタとして構成され
る。読出ポインタ(RP)および書込ポインタ(WP)
はリオーダバッファ22内の4つの命令の取出バッチを
示す特定のロケーションで図4に示される。さらに図4
において、文字指定「A」−「G」が図2の説明に関連
して使用される信号指定へキーボードから入力される。
【0037】図2および図4をともに再度参照して、レ
ジスタファイル24(図1を参照)内のレジスタR1
位置決めされることが知られている、命令のためのオペ
ランドのような情報が要求されると、図示する目的で仮
定する。読出ポインタRPは図4の読出ポインタRPの
位置に隣接する「1」値として信号「A」を確立する。
同様に、書込ポインタWPは図4の書込ポインタWPの
位置に隣接する「1」値として信号「B」を確立する。
信号「C」、すなわち読出ポインタRPおよび書込ポイ
ンタWPの中間のすべてのエントリについてのイネーブ
ル信号は、読出ポインタRPおよび書込ポインタWPの
中間のすべてのエントリについてリオーダバッファ22
内に「1」を割当てる。信号「D」はリオーダバッファ
22内の前に発生された結果を含む宛先アドレスおよび
命令によって要求される情報についてのソースインジケ
ータの符合を表わす。したがって、図4の宛先ポインタ
列内のレジスタR1 の各符合は図4の列「D」内の
「1」値を確立する。イネーブル信号「C」および比較
ヒット信号「D」の符合を表わす信号「E」は信号
「D」および「C」の各符合について「1」値を確立す
る。信号「F」は信号「E」についての「1」値の第1
の発生と読出ポインタRPの中間のすべてのエントリに
ついて「1」値を割当てるイネーブル信号である。信号
「G」は図2のAND回路86によって確立されるよう
に、信号「E」および「F」の符合を表わす。したがっ
て、信号「G」は読出ポインタRPおよび書込ポインタ
WPの中間のリオーダバッファ22内における宛先レジ
スタR1 の最も新しく記憶された発生を「1」値で識別
する。
【0038】与えられた詳細な図面および特定の例はこ
の発明の好ましい実施例を説明するが、これらは説明の
目的のみのためであり、この発明の装置は開示される精
密な詳細および条件に限定されることなく、かつ前述の
請求項によって規定されるこの発明の精神から逸脱する
ことなしに様々な変更がその中で行なわれてもよいこと
が理解されるべきである。
【図面の簡単な説明】
【図1】この発明の装置および方法とともに使用するこ
とが意図される型のリオーダバッファを使用するコンピ
ューティング装置の概略図である。
【図2】この発明の装置の概略ブロック図である。
【図3】図2に示される装置によって使用されるイネー
ブル回路の電気的概略図である。
【図4】図3に示されるイネーブル回路の方法および動
作を表わす概略図表の図である。
【符号の説明】
42:比較回路 54 58:デコーダ 50 86:AND回路 66 80:イネーブル回路 90:エンコーダ回路

Claims (13)

    【特許請求の範囲】
  1. 【請求項1】 記憶装置内の複数の命令間の依存を解決
    するための装置であって、前記記憶装置は複数のメモリ
    セルを有し、前記複数のメモリセルの選択されたメモリ
    セル内に前記複数の命令を順次記憶し、前記記憶装置は
    前記複数のメモリセルの次に空のメモリセルを示す読出
    ポインタと、前記複数の命令の最初に記憶された命令を
    示す書込ポインタとを有し、前記複数の命令の各々は結
    果を決定するために複数のオペランドの作動的組合せを
    行ない、前記複数のオペランドの各々はソースインジケ
    ータによって識別され、前記結果は宛先インジケータに
    よって識別され、この装置は出力信号を発生し、前記出
    力信号は次に送込まれるべき命令の前記ソースインジケ
    ータのそれぞれと一致する前記宛先インジケータを有す
    る前記複数の命令の最も新しく記憶された命令を識別す
    る装置であって、この装置は、 前記複数の命令の最初に記憶された命令の前記宛先イン
    ジケータと前記次に送込まれるべき命令中の前記それぞ
    れのソースインジケータが符合する毎に比較ヒット信号
    を発生するための比較ヒット手段と、 前記複数の命令の第1のパケットの命令について第1の
    イネーブル信号を発生するための第1のイネーブル手段
    とを含み、前記第1のパケットの命令は前記読出ポイン
    タおよび前記書込ポインタによって規定され、 前記比較ヒット信号と前記第1のイネーブル信号が符合
    するごとにヒットイネーブル信号を発生するための第1
    の比較手段と、 前記複数の命令の第2のパケットの命令について第2の
    イネーブル信号を発生するための第2のイネーブル手段
    とをさらに含み、前記第2のパケットの命令は前記読出
    ポインタおよび前記ヒットイネーブル信号によって規定
    され、 前記第2のイネーブル信号と前記ヒットイネーブル信号
    とが符合するごとに、前記出力信号を発生するための第
    2の比較手段とをさらに含む、装置。
  2. 【請求項2】 前記順次記憶は先入先出方式記憶として
    行なわれる、請求項1に記載の複数の命令間の依存を解
    決するための装置。
  3. 【請求項3】 前記複数のオペランドは2つのオペラン
    ドである、請求項1に記載の複数の命令間の依存を解決
    するための装置。
  4. 【請求項4】 前記第1のイネーブル手段および前記第
    2のイネーブル手段は実質的に同じ構成のものである、
    請求項1に記載の複数の命令間の依存を解決するための
    装置。
  5. 【請求項5】 前記第1の比較手段および前記第2の比
    較手段は実質的に同じ構成のものである、請求項1に記
    載の複数の命令間の依存を解決するための装置。
  6. 【請求項6】 前記第1比較手段および前記第2の比較
    手段は実質的に同じ構成のものである、請求項4に記載
    の複数の命令間の依存を解決するための装置。
  7. 【請求項7】 前記第1のイネーブル手段および前記第
    2のイネーブル手段は実質的に同じ構成のものである、
    請求項2に記載の複数の命令間の依存を解決するための
    装置。
  8. 【請求項8】 前記第1の比較手段および前記第2の比
    較手段は実質的に同じ構成のものである、請求項7に記
    載の複数の命令間の依存を解決するための装置。
  9. 【請求項9】 記憶装置内の複数の命令間の依存を解決
    するための方法であって、前記記憶装置は複数のメモリ
    セルを有し、かつ前記複数のメモリセルの選択されたメ
    モリセル内に前記複数の命令を順次記憶し、前記記憶装
    置は前記複数のメモリセルの次に空のメモリセルを示す
    読出ポインタと、前記複数の命令の最初に記憶された命
    令を示す書込ポインタとを有し、前記複数の命令の各々
    は結果を決定するために複数のオペランドの作動的組合
    せを行ない、前記複数のオペランドの各々はソースイン
    ジケータによって識別され、前記結果は宛先インジケー
    タによって識別され、この方法は次に送込まれるべき命
    令の前記ソースインジケータのそれぞれと一致する前記
    宛先インジケータを有する前記複数の命令の最も新しく
    記憶された命令を識別する方法であって、 (1) 前記次に送込まれるべき命令中の前記それぞれ
    のソースインジケータの各々を前記複数の命令の先に記
    憶された命令の各々の前記宛先インジケータと比較する
    ステップと、 (2) 前記次に送込まれるべき命令中の前記それぞれ
    のソースインジケータが前記複数の命令の先に記憶され
    た命令の前記宛先インジケータと符合するごとに比較ヒ
    ット信号を発生するステップと、 (3) 前記複数の命令の第1のパケットの命令につい
    て第1のイネーブル信号を発生するステップとを含み、
    前記第1のパケットの命令は前記読出ポインタおよび前
    記書込ポインタによって規定され、 (4) 前記第1のイネーブル信号と前記比較ヒット信
    号を比較するステップと、 (5) 前記比較ヒット信号と前記第1のイネーブル信
    号とが符合するごとにヒットイネーブル信号を発生する
    ステップと、 (6) 前記複数の命令の第2のパケットの命令につい
    て第2のイネーブル信号を発生するステップとをさらに
    含み、前記第2のパケットの命令は前記読出ポインタお
    よび前記ヒットイネーブル信号によって規定され、 (7) 前記ヒットイネーブル信号と前記第2のイネー
    ブル信号を比較するステップと、 (8) 前記第2のイネーブル信号と前記ヒットイネー
    ブル信号とが符合するごとに出力信号を発生するステッ
    プとをさらに含み、前記出力信号は前記次に送込まれる
    べき命令の前記ソースインジケータのそれぞれと一致す
    る前記宛先インジケータを有する前記複数の命令の最も
    新しく記憶された命令を識別する、方法。
  10. 【請求項10】 前記順次記憶は先入先出方式記憶とし
    て行なわれる、請求項9に記載の複数の命令間の依存を
    解決するための方法。
  11. 【請求項11】 前記複数のオペランドは2つのオペラ
    ンドである、請求項9に記載の複数の命令間の依存を解
    決するための方法。
  12. 【請求項12】 記憶装置内の複数の命令間の依存を解
    決するための装置であって、前記記憶装置は複数のメモ
    リセルを有し、かつ前記複数のメモリセルの選択された
    メモリセル内に前記複数の命令を順次記憶し、前記複数
    のメモリセルの各々は複数のタグを含み、前記複数のタ
    グの各々はイネーブルメントを示す第1の値と、非イネ
    ーブルメントを示す第2の値とを有し、前記記憶装置は
    前記複数のメモリセルの次に空のメモリセルを示す読出
    ポインタと、前記複数の命令の最初に記憶された命令を
    示す書込ポインタとを有し、前記複数の命令の各々は結
    果を決定するために複数のオペランドの作動的組合せを
    行ない、前記複数のオペランドの各々はソースインジケ
    ータによって識別され、前記結果は宛先インジケータに
    よって識別され、この装置は識別タグを設定し、前記識
    別タグは次に送込まれるべき命令の前記ソースインジケ
    ータのそれぞれと一致する前記宛先インジケータを有す
    る前記複数の命令の最も新しく記憶された命令を識別す
    る装置であって、 前記複数の命令のそれぞれの先に記憶された命令につい
    て、前記次に送込まれるべき命令中の前記それぞれのソ
    ースインジケータが前記それぞれの先に記憶された命令
    の前記宛先インジケータ符合するとき、前記第1の値で
    比較ヒットタグを設定するための比較ヒット手段と、 前記複数の命令の第1のパケットの命令中の各命令につ
    いて前記第1の値で第1のイネーブルタグを設定するた
    めの第1のイネーブル手段とを含み、前記第1のパケッ
    トの命令は前記読出ポインタおよび前記書込ポインタの
    中間に記憶される前記複数の命令のすべての命令を含
    み、 前記比較ヒットタグおよび前記第1のイネーブルタグが
    前記第1の値でそのために設定される前記第1のパケッ
    トの命令の前記命令の各々について前記第1の値でヒッ
    トイネーブルタグを設定するための第1の比較手段と、 前記複数の命令の第2のパケットの命令中の各命令につ
    いて前記第1の値で第2のイネーブルタグを設定するた
    めの第2のイネーブル手段とをさらに含み、前記第2の
    パケットの命令は前記第1の値で設定された前記ヒット
    イネーブルタグを有する前記第1のパケットの命令の最
    初に記憶された命令と前記読出ポインタとの中間に記憶
    される前記第1のパケットの命令のすべての命令を含
    み、 前記第2のイネーブルタグおよび前記ヒットイネーブル
    タグが前記第1の値でそのために設定される各命令につ
    いて前記識別タグを設定するための第2の比較手段とを
    含む、装置。
  13. 【請求項13】 第1の多ビット入力信号および第2の
    多ビット入力信号に応答して複数の出力ビットを発生す
    るための装置であって、 複数のセルを含み、前記複数のセルは階層位に従ってア
    レイに配列され、前記複数のセルの各特定のセルは前記
    第1の多ビット入力信号の特定の第1のビットを受ける
    ための第1の入力手段を有し、かつ前記第2の多ビット
    入力信号の特定の第2のビットを受けるための第2の入
    力手段を有し、 共通導体をさらに含み、前記共通導体は前記複数のセル
    の各々と作動的に接続され、 前記特定のセルの各々は前記共通導体と基準パラメータ
    ソースとの間に第1のスイッチング可能な作動的接続を
    含み、かつ前記共通導体と電気的接地との間の第2のス
    イッチング可能な作動的接続を含み、かつ前記共通線の
    電気的割込を選択的に行なうための第3のスイッチング
    可能な作動的接続を含み、前記複数のスイッチング可能
    な作動的接続は前記特定のセルによって受けられる前記
    特定の第1のビットおよび前記特定の第2のビットに応
    答して前記特定のセルの各々によってスイッチングさ
    れ、 前記複数のセルは前記第1の多ビット入力信号および前
    記第2の多ビット入力信号に応答して共働し、第1のレ
    ベルで前記複数の出力ビットの選択された出力ビットを
    確立し、前記選択された出力ビットは第1の予め定めら
    れた状態を有する特定の第1のビットを受ける第1の前
    記特定のセルと第2の予め定められた状態を有する特定
    の第2のビットを受ける前記特定のセルの第2のものと
    の中間の前記特定のセルによって制御される前記複数の
    出力ビットのそれらの出力ビットであり、前記複数の出
    力ビットの前記残りの出力ビットは前記アレイの他の場
    所では第2の状態である、装置。
JP25014592A 1991-09-20 1992-09-18 記憶装置内の複数の命令間の依存を解決するための装置および方法 Expired - Lifetime JP3342894B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US764155 1991-09-20
US07/764,155 US5345569A (en) 1991-09-20 1991-09-20 Apparatus and method for resolving dependencies among a plurality of instructions within a storage device

Publications (2)

Publication Number Publication Date
JPH05250159A true JPH05250159A (ja) 1993-09-28
JP3342894B2 JP3342894B2 (ja) 2002-11-11

Family

ID=25069840

Family Applications (1)

Application Number Title Priority Date Filing Date
JP25014592A Expired - Lifetime JP3342894B2 (ja) 1991-09-20 1992-09-18 記憶装置内の複数の命令間の依存を解決するための装置および方法

Country Status (5)

Country Link
US (1) US5345569A (ja)
EP (1) EP0533337B1 (ja)
JP (1) JP3342894B2 (ja)
AT (1) ATE172802T1 (ja)
DE (1) DE69227429T2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR970705066A (ko) * 1995-05-26 1997-09-06 존 엠, 클락3세 비산술 원형 버퍼 셀 이용도 스테이터스 인디케이터 회로(Non-Arithmetical Circular Buffer Cell Availability Status Indicator Circuit)

Families Citing this family (82)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5826055A (en) * 1991-07-08 1998-10-20 Seiko Epson Corporation System and method for retiring instructions in a superscalar microprocessor
US5493687A (en) 1991-07-08 1996-02-20 Seiko Epson Corporation RISC microprocessor architecture implementing multiple typed register sets
US5539911A (en) * 1991-07-08 1996-07-23 Seiko Epson Corporation High-performance, superscalar-based computer system with out-of-order instruction execution
WO1993020505A2 (en) * 1992-03-31 1993-10-14 Seiko Epson Corporation Superscalar risc instruction scheduling
DE69308548T2 (de) * 1992-05-01 1997-06-12 Seiko Epson Corp Vorrichtung und verfahren zum befehlsabschluss in einem superskalaren prozessor.
DE69329778T2 (de) * 1992-09-29 2001-04-26 Seiko Epson Corp., Tokio/Tokyo System und verfahren zur handhabung von laden und/oder speichern in einem superskalar mikroprozessor
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
US5604912A (en) * 1992-12-31 1997-02-18 Seiko Epson Corporation System and method for assigning tags to instructions to control instruction execution
EP0849665B1 (en) * 1992-12-31 2001-10-04 Seiko Epson Corporation System and method for register renaming
US5628021A (en) * 1992-12-31 1997-05-06 Seiko Epson Corporation System and method for assigning tags to control instruction processing in a superscalar processor
US5465373A (en) * 1993-01-08 1995-11-07 International Business Machines Corporation Method and system for single cycle dispatch of multiple instructions in a superscalar processor system
KR0122528B1 (ko) * 1993-01-08 1997-11-20 윌리엄 티.엘리스 슈퍼스칼라 프로세서 시스템에서 중간 기억 버퍼의 할당을 인덱스하기 위한 방법 및 시스템
US5493669A (en) * 1993-03-03 1996-02-20 Motorola, Inc. Data processor for simultaneously searching two fields of the rename buffer having first and second most recently allogated bits
US5627984A (en) * 1993-03-31 1997-05-06 Intel Corporation Apparatus and method for entry allocation for a buffer resource utilizing an internal two cycle pipeline
JPH06337843A (ja) * 1993-05-28 1994-12-06 Fujitsu Ltd データ転送制御方法
TW242673B (ja) * 1993-08-18 1995-03-11 Ibm
US5826094A (en) * 1993-09-30 1998-10-20 Intel Corporation Register alias table update to indicate architecturally visible state
US5740393A (en) * 1993-10-15 1998-04-14 Intel Corporation Instruction pointer limits in processor that performs speculative out-of-order instruction execution
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
US5630082A (en) * 1993-10-29 1997-05-13 Advanced Micro Devices, Inc. Apparatus and method for instruction queue scanning
EP0651321B1 (en) * 1993-10-29 2001-11-14 Advanced Micro Devices, Inc. Superscalar microprocessors
EP0651320B1 (en) * 1993-10-29 2001-05-23 Advanced Micro Devices, Inc. Superscalar instruction decoder
US5878245A (en) * 1993-10-29 1999-03-02 Advanced Micro Devices, Inc. High performance load/store functional unit and data cache
US6128721A (en) * 1993-11-17 2000-10-03 Sun Microsystems, Inc. Temporary pipeline register file for a superpipelined superscalar processor
US6393550B1 (en) * 1993-12-30 2002-05-21 Intel Corporation Method and apparatus for pipeline streamlining where resources are immediate or certainly retired
US6101597A (en) * 1993-12-30 2000-08-08 Intel Corporation Method and apparatus for maximum throughput scheduling of dependent operations in a pipelined processor
US5564028A (en) * 1994-01-11 1996-10-08 Texas Instruments Incorporated Pipelined data processing including instruction trace
US5553256A (en) * 1994-02-28 1996-09-03 Intel Corporation Apparatus for pipeline streamlining where resources are immediate or certainly retired
JP3660679B2 (ja) * 1994-03-01 2005-06-15 インテル・コーポレーション 高度パイプライン式バス・アーキテクチャ
US5564056A (en) * 1994-03-01 1996-10-08 Intel Corporation Method and apparatus for zero extension and bit shifting to preserve register parameters in a microprocessor utilizing register renaming
US5490280A (en) * 1994-03-31 1996-02-06 Intel Corporation Apparatus and method for entry allocation for a resource buffer
US5689693A (en) * 1994-04-26 1997-11-18 Advanced Micro Devices, Inc. Range finding circuit for selecting a consecutive sequence of reorder buffer entries using circular carry lookahead
US5535345A (en) * 1994-05-12 1996-07-09 Intel Corporation Method and apparatus for sequencing misaligned external bus transactions in which the order of completion of corresponding split transaction requests is guaranteed
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
US5878244A (en) * 1995-01-25 1999-03-02 Advanced Micro Devices, Inc. Reorder buffer configured to allocate storage capable of storing results corresponding to a maximum number of concurrently receivable instructions regardless of a number of instructions received
US6237082B1 (en) 1995-01-25 2001-05-22 Advanced Micro Devices, Inc. Reorder buffer configured to allocate storage for instruction results corresponding to predefined maximum number of concurrently receivable instructions independent of a number of instructions received
US5901302A (en) * 1995-01-25 1999-05-04 Advanced Micro Devices, Inc. Superscalar microprocessor having symmetrical, fixed issue positions each configured to execute a particular subset of instructions
US5903741A (en) * 1995-01-25 1999-05-11 Advanced Micro Devices, Inc. Method of allocating a fixed reorder buffer storage line for execution results regardless of a number of concurrently dispatched instructions
EP0724215A1 (en) * 1995-01-26 1996-07-31 Sun Microsystems, Inc. Method and apparatus for recovering from mispredicted branches in a pipelined processor
US5764946A (en) * 1995-04-12 1998-06-09 Advanced Micro Devices Superscalar microprocessor employing a way prediction unit to predict the way of an instruction fetch address and to concurrently provide a branch prediction address corresponding to the fetch address
US5848433A (en) * 1995-04-12 1998-12-08 Advanced Micro Devices Way prediction unit and a method for operating the same
US5634026A (en) * 1995-05-12 1997-05-27 International Business Machines Corporation Source identifier for result forwarding
US6112019A (en) * 1995-06-12 2000-08-29 Georgia Tech Research Corp. Distributed instruction queue
US5754812A (en) * 1995-10-06 1998-05-19 Advanced Micro Devices, Inc. Out-of-order load/store execution control
US6038657A (en) * 1995-10-06 2000-03-14 Advanced Micro Devices, Inc. Scan chains for out-of-order load/store execution control
US5933618A (en) * 1995-10-30 1999-08-03 Advanced Micro Devices, Inc. Speculative register storage for storing speculative results corresponding to register updated by a plurality of concurrently recorded instruction
US5765035A (en) * 1995-11-20 1998-06-09 Advanced Micro Devices, Inc. Recorder buffer capable of detecting dependencies between accesses to a pair of caches
US5961580A (en) * 1996-02-20 1999-10-05 Advanced Micro Devices, Inc. Apparatus and method for efficiently calculating a linear address in a microprocessor
US5809275A (en) * 1996-03-01 1998-09-15 Hewlett-Packard Company Store-to-load hazard resolution system and method for a processor that executes instructions out of order
US5838942A (en) * 1996-03-01 1998-11-17 Hewlett-Packard Company Panic trap system and method
US6085302A (en) * 1996-04-17 2000-07-04 Advanced Micro Devices, Inc. Microprocessor having address generation units for efficient generation of memory operation addresses
US5835968A (en) * 1996-04-17 1998-11-10 Advanced Micro Devices, Inc. Apparatus for providing memory and register operands concurrently to functional units
US5761474A (en) * 1996-05-24 1998-06-02 Hewlett-Packard Co. Operand dependency tracking system and method for a processor that executes instructions out of order
US5805851A (en) * 1996-06-13 1998-09-08 Hewlett-Packard Co. System for determining data dependencies among intra-bundle instructions queued and prior instructions in the queue
US5915110A (en) * 1996-07-26 1999-06-22 Advanced Micro Devices, Inc. Branch misprediction recovery in a reorder buffer having a future file
US5946468A (en) * 1996-07-26 1999-08-31 Advanced Micro Devices, Inc. Reorder buffer having an improved future file for storing speculative instruction execution results
US5872951A (en) * 1996-07-26 1999-02-16 Advanced Micro Design, Inc. Reorder buffer having a future file for storing speculative instruction execution results
US5838944A (en) * 1996-07-31 1998-11-17 Hewlett-Packard Company System for storing processor register data after a mispredicted branch
US5983342A (en) * 1996-09-12 1999-11-09 Advanced Micro Devices, Inc. Superscalar microprocessor employing a future file for storing results into multiportion registers
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
US5870616A (en) * 1996-10-04 1999-02-09 International Business Machines Corporation System and method for reducing power consumption in an electronic circuit
US5805907A (en) * 1996-10-04 1998-09-08 International Business Machines Corporation System and method for reducing power consumption in an electronic circuit
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
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
US6016540A (en) * 1997-01-08 2000-01-18 Intel Corporation Method and apparatus for scheduling instructions in waves
US5923900A (en) * 1997-03-10 1999-07-13 International Business Machines Corporation Circular buffer with n sequential real and virtual entry positions for selectively inhibiting n adjacent entry positions including the virtual entry positions
US6148393A (en) * 1997-03-10 2000-11-14 Advanced Micro Devices, Inc. Apparatus for generating a valid mask
US5930521A (en) * 1997-04-15 1999-07-27 Industrial Technology Research Institute Reorder buffer architecture for accessing partial word operands
US6073230A (en) * 1997-06-11 2000-06-06 Advanced Micro Devices, Inc. Instruction fetch unit configured to provide sequential way prediction for sequential instruction fetches
US6070235A (en) * 1997-07-14 2000-05-30 International Business Machines Corporation Data processing system and method for capturing history buffer data
US6016533A (en) * 1997-12-16 2000-01-18 Advanced Micro Devices, Inc. Way prediction logic for cache array
US6094716A (en) 1998-07-14 2000-07-25 Advanced Micro Devices, Inc. Register renaming in which moves are accomplished by swapping rename tags
US6240503B1 (en) 1998-11-12 2001-05-29 Advanced Micro Devices, Inc. Cumulative lookahead to eliminate chained dependencies
JP3851228B2 (ja) * 2002-06-14 2006-11-29 松下電器産業株式会社 プロセッサ、プログラム変換装置及びプログラム変換方法、並びにコンピュータプログラム
US20040168045A1 (en) * 2003-02-21 2004-08-26 Dale Morris Out-of-order processor executing speculative-load instructions
US7117290B2 (en) * 2003-09-03 2006-10-03 Advanced Micro Devices, Inc. MicroTLB and micro tag for reducing power in a processor
US20050050278A1 (en) * 2003-09-03 2005-03-03 Advanced Micro Devices, Inc. Low power way-predicted cache
US7043626B1 (en) 2003-10-01 2006-05-09 Advanced Micro Devices, Inc. Retaining flag value associated with dead result data in freed rename physical register with an indicator to select set-aside register instead for renaming
US20060149931A1 (en) * 2004-12-28 2006-07-06 Akkary Haitham Runahead execution in a central processing unit
CN118068681B (zh) * 2024-04-24 2024-06-21 广东智品科技有限公司 一种智能提升窗权限管理方法
CN120972745B (zh) * 2025-10-20 2026-01-06 杭州融泰物联网发展有限公司 一种数字家庭ai中控系统

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4714994A (en) * 1985-04-30 1987-12-22 International Business Machines Corp. Instruction prefetch buffer control
JPH0731615B2 (ja) * 1986-04-18 1995-04-10 日本電気株式会社 情報処理装置
US5125083A (en) * 1989-02-03 1992-06-23 Digital Equipment Corporation Method and apparatus for resolving a variable number of potential memory access conflicts in a pipelined computer system
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

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR970705066A (ko) * 1995-05-26 1997-09-06 존 엠, 클락3세 비산술 원형 버퍼 셀 이용도 스테이터스 인디케이터 회로(Non-Arithmetical Circular Buffer Cell Availability Status Indicator Circuit)

Also Published As

Publication number Publication date
EP0533337A1 (en) 1993-03-24
JP3342894B2 (ja) 2002-11-11
ATE172802T1 (de) 1998-11-15
EP0533337B1 (en) 1998-10-28
US5345569A (en) 1994-09-06
DE69227429T2 (de) 1999-06-10
DE69227429D1 (de) 1998-12-03

Similar Documents

Publication Publication Date Title
JPH05250159A (ja) 記憶装置内の複数の命令間の依存を解決するための装置および方法
EP1099157B1 (en) Processor configured to map logical register numbers to physical register numbers using virtual register numbers
JP2846406B2 (ja) 分岐処理方法及び分岐処理装置
US7299343B2 (en) System and method for cooperative execution of multiple branching instructions in a processor
JP2846407B2 (ja) 例外処理方法及び例外処理装置
US5584037A (en) Entry allocation in a circular buffer
KR100225244B1 (ko) 프로세서내에서 자원 할당을 추적하는 방법 및 장치,수퍼스칼라프로세서및데이타프로세싱시스템
US6119223A (en) Map unit having rapid misprediction recovery
EP0399762B1 (en) Multiple instruction issue computer architecture
US5611063A (en) Method for executing speculative load instructions in high-performance processors
US6279105B1 (en) Pipelined two-cycle branch target address cache
KR100404257B1 (ko) 파이프라인 프로세서 아키텍처, 모든 인라인 및 분기인스트럭션을 정확한 구조적인 시퀀스로 프로세서파이프라인에 제공하는 시스템, 및 분기 처리 유닛
JPH09185506A (ja) プロセッサ内で命令を実行する方法およびシステム
US6823446B1 (en) Apparatus and method for performing branch predictions using dual branch history tables and for updating such branch history tables
US6971000B1 (en) Use of software hint for branch prediction in the absence of hint bit in the branch instruction
US5740393A (en) Instruction pointer limits in processor that performs speculative out-of-order instruction execution
US20040064684A1 (en) System and method for selectively updating pointers used in conditionally executed load/store with update instructions
EP1099158B1 (en) Processor configured to selectively free physical registers upon retirement of instructions
US6345356B1 (en) Method and apparatus for software-based dispatch stall mechanism for scoreboarded IOPs
US6742110B2 (en) Preventing the execution of a set of instructions in parallel based on an indication that the instructions were erroneously pre-coded for parallel execution
US5778247A (en) Multi-pipeline microprocessor with data precision mode indicator
JP3182741B2 (ja) 分散命令完了方法及びプロセッサ
US5809324A (en) Multiple instruction dispatch system for pipelined microprocessor without branch breaks
JP3122420B2 (ja) プロセッサおよび条件コード・ビット計算方法
US6401108B1 (en) Floating point compare apparatus and methods therefor

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20020730

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20070823

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080823

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080823

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090823

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090823

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100823

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110823

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110823

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120823

Year of fee payment: 10

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130823

Year of fee payment: 11

EXPY Cancellation because of completion of term
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130823

Year of fee payment: 11