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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/74—Selecting 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F5/00—Methods or arrangements for data conversion without changing the order or content of the data handled
- G06F5/06—Methods 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/10—Methods 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/12—Means for monitoring the fill level; Means for resolving contention, i.e. conflicts between simultaneous enqueue and dequeue operations
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3838—Dependency mechanisms, e.g. register scoreboarding
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3854—Instruction completion, e.g. retiring, committing or graduating
- G06F9/3856—Reordering of instructions, e.g. using queues or age tags
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3854—Instruction completion, e.g. retiring, committing or graduating
- G06F9/3858—Result writeback, i.e. updating the architectural state or memory
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2205/00—Indexing scheme relating to group G06F5/00; Methods or arrangements for data conversion without changing the order or content of the data handled
- G06F2205/12—Indexing scheme relating to groups G06F5/12 - G06F5/14
- G06F2205/123—Contention 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
命令間のデータ依存を解決する。 【構成】比較回路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
使用するスーパースカラコンピューティング装置におい
て、リオーダバッファは一般に適当な順序で送込まれた
命令および回収された命令の進路を追うために使用され
る。このようなリオーダバッファの1つの主機能は、送
込まれた読出オペランドとリオーダバッファ内の前の命
令の宛先オペランドとの起こり得る一致についてデコー
ドする間に命令オペランドを検査することである。もし
このような一致が検出されれば、一致された宛先オペラ
ンドを識別するタグが送込まれた命令の読出オペランド
とともに予約ステーションに送られるであろう。このよ
うなタグによって、予約ステーションはリオーダバッフ
ァへ戻るデータのための機能ユニットから結果バスを検
査し、適当なタグが検出されると迅速な処理のために結
果を直接受けることができる。
ファ内のパイプライン中の第1の命令を識別する書込ポ
インタと、パイプライン中の最後の命令の後のエントリ
を指す読出ポインタとを有する。リオーダバッファは一
般にループ先入先出方式(FIFO)レジスタであり、
もし一杯か、または空であれば、結果的に読出および書
込ポインタが同じエントリを指す。このようなデータ処
理条件がパイプライン処理された命令処理技術を使用す
るスーパースカラコンピューティング装置に必要であ
る。このようなコンピューティング装置では典型的に、
複数の命令の取出バッチが各サイクル間に処理される。
このような装置の設計目標はサイクルごとに多数の命令
を送込み、かつ実行することであるが、設計目標に到達
するまでに、命令または分岐命令間のデータ依存事象に
おいて障害に遭遇する。
に依存する命令は、その要求されるオペランドが使用可
能になるまでその演算を始めることができない。もしオ
ペランドが前の命令によって計算されれば、第2の命令
は前の命令が実行を完了するまで待機しなければならな
い。したがって、命令間のデータ依存は命令の実行を遅
らせ、コンピューティング装置の動作効率を低下させ得
る。分岐命令もまた、このような命令は実行前に状態が
知られることをしばしば待たねばならないので、コンピ
ューティング装置の動作効率を低下させるであろう。こ
れらの問題(データ依存および分岐命令)のいずれも結
果的にパイプライン命令処理技術を使用するスーパース
カラシステム内の命令の流れを停止させる。命令の流れ
は「割込」および「トラップ」によっても中断されるで
あろう。割込およびトラップは命令のストリームの正常
な実行を停止する異常な原因のために確保されるワード
である。割込およびトラップは、ユーザアサートされた
外部ピン、違法命令、プリセットされたトレース、停止
点、メモリエラーまたは他の原因によって生じ得る。プ
ロセッサは現在の条件、プロセッサの状態、および現在
の命令のアドレスを記憶して、トラップまたは割込をサ
ービスしなければならない(別の命令のシーケンス)。
トラップ/割込ルーチンの完了後、プロセッサは命令の
ストリームの正常な実行に戻らねばならない。割込およ
びトラップはそれらの発生において不正確であり得、リ
オーダバッファは正常な命令の実行を適切に停止し、か
つ再開するために命令のストリームの進路を追わねばな
らない。
装置内の複数の命令間のこのようなデータ依存および他
の割込を解決するための装置および方法を提供する。こ
の発明はパイプライン命令処理を使用するスーパースカ
ラコンピューティング装置において特に有用である。
するスーパースカラコンピューティング装置内のリオー
ダバッファのような記憶装置内の複数の命令間のデータ
依存を解決するための装置および方法である。この装置
は複数のメモリ、またはレジスタ、セルを有する記憶装
置とともに使用可能であり、ループ先入先出方式(FI
FO)モードで作動する記憶装置内で特に使用可能であ
る。記憶装置は、記憶装置内の次の空のメモリセルを示
す読出ポインタを有し、かつ記憶装置内の複数の命令の
パイプ中の第1の命令を示す書込ポインタを有する。複
数の命令の各々は複数のオペランドの作動的組合せを行
ない、結果を決定する。複数のオペランドの各々はソー
スインジケータによって識別され、その結果は宛先イン
ジケータによって識別される。この装置は、次に送込ま
れるべき命令のそれぞれのソースインジケータと一致す
る宛先インジケータを有する記憶装置内の複数の命令の
最も新しく記憶された命令を識別する出力信号を発生す
る。
ダから機能ユニットおよびリオーダバッファへ送られる
ということを意味する。命令が送込まれると、ロケーシ
ョンがリオーダバッファに割当てられる。書込ポインタ
はリオーダバッファ内の第1の割当てられた命令を指
し、読出ポインタは次に送込まれるべき命令のためにリ
オーダバッファ内の次に空のロケーションを指す。リオ
ーダバッファ内の割当てられたエントリは、割当てられ
たエントリに関連する命令が機能ユニット内にあること
を示し、これらの命令は実行されているか、または予約
ステーション内で実行されることを待っているかのいず
れかである。命令はデコーダから「順序正しく」送込ま
れ、命令のストリームを確立せねばならない。命令のス
トリームが進むのを妨げる(したがって性能を低下させ
る)ことがないようにするために、リオーダバッファは
命令間の依存を検査して、できるだけ早くデコーダに命
令を送込ませねばならないということが重要である。命
令が機能ユニットによってその実行を完了すると、この
ような実行の結果はリオーダバッファに送り返され、割
当てられたエントリが有効なものとして表示される。リ
オーダバッファの主な機能は、有効に割当てられたエン
トリで「順序正しく」(先入先出方式)書込ポインタか
ら正確にその結果を更新することである。リオーダバッ
ファはまた、リオーダバッファ内のロケーションの割当
てを外し、書込ポインタをふやす。この発明のプロセッ
サにおいて、命令はリオーダバッファによって許容され
るようにデコーダによって「順序正しく」送込まれる。
機能ユニットにおいて、命令は「狂った順で」実行さ
れ、かつリオーダバッファに戻される。リオーダバッフ
ァは「順序正しく」その結果(レジスタファイルおよび
プロセッサ状態)を更新する。リオーダバッファは命令
が送込まれる得る前にすべての依存を調和させる。
それぞれのソースインジケータが記憶装置内の先に記憶
された命令の宛先インジケータと符合するごとに比較ヒ
ット信号を発生するための比較ヒット回路と、複数の命
令の第1のパケットの命令のために第1のイネーブル信
号を発生するための第1のイネーブル回路とを含み、そ
の第1のパケットの命令は読出ポインタおよび書込ポイ
ンタによって規定され、この装置はさらに比較ヒット信
号と第1のイネーブル信号とが符合するごとにヒットイ
ネーブル信号を発生するための第1の比較回路と、第2
のパケットの命令のために第2のイネーブル信号を発生
するための第2のイネーブル回路とを含み、この第2の
パケットの命令は読出ポインタおよびヒットイネーブル
信号によって規定され、この回路はさらに第2のイネー
ブル信号とヒットイネーブル信号とが符合するごとに出
力信号を発生するための第2の比較回路を含む。
ーブル回路および第2のイネーブル回路は実質的に同じ
構成のものであり、第1の比較回路および第2の比較回
路は実質的に同じ構成のものである。
術を使用するスーパースカラコンピューティング装置内
のリオーダバッファのような記憶装置内の複数の命令間
のデータ依存を解決するための方法を含む。この方法
は、(1)次に送込まれるべき命令中のそれぞれのソー
スインジケータの各々を記憶装置内の先に記憶された命
令の宛先インジケータと比較するステップと、(2)次
に送込まれるべき命令中のそれぞれのソースインジケー
タが先に記憶された命令の宛先インジケータと符合する
ごとに比較ヒット信号を発生するステップと、(3)第
1のパケットの命令のために第1のイネーブル信号を発
生するステップとを含み、第1のパケットの命令は読出
ポインタおよび書込ポインタによって規定され、(4)
比較ヒット信号を第1のイネーブル信号と比較するステ
ップと、(5)比較ヒット信号と第1のイネーブル信号
とが一致するごとにヒットイネーブル信号を発生するス
テップと、(6)第2のパケットの命令のために第2の
イネーブル信号を発生するステップとをさらに含み、第
2のパケットの命令は読出ポインタおよびヒットイネー
ブル信号によって規定され、(7)第2のイネーブル信
号をヒットイネーブル信号と比較するステップと、
(8)第2のイネーブル信号とヒットイネーブル信号が
符合するごとに出力信号を発生するステップとをさらに
含む。出力信号は次に送込まれるべき命令のそれぞれの
ソースインジケータと一致する宛先インジケータを有す
る記憶装置内の複数の命令の最も新しく記憶された命令
を識別する。
読出オペランドと記憶装置内の前の命令の宛先オペラン
ドとの間の一致を効率的に識別する記憶装置内の複数の
命令間のデータ依存を解決するための装置および方法を
提供することである。
令によって使用されるための一致した宛先オペランドを
識別するタグを与え、そのタグは送込まれた命令を伴
う、記憶装置内の複数の命令間のデータ依存を解決する
ための装置および方法を提供することである。
ついて類似の回路を使用することによってその動作に信
頼性および持続性を与え、かつ構成が簡単な、記憶装置
内の複数の命令間のデータ依存を解決するための装置を
提供することである。
の発明の好ましい実施例を表わす添付の図面に関連して
検討されると、以下の明細書および特許請求の範囲から
明らかであろう。
および方法とともに使用するために意図される型のリオ
ーダバッファを使用するコンピューティング装置の概略
図である。好ましくは図1に示される装置はデータ依存
を処理するために待合せ技術を使用し、かつパイプライ
ン命令処理技術を使用するスーパースカラコンピューテ
ィング装置である。
適当な処理ユニット12によって処理するための命令の
取出バッチ(好ましくは4つの命令のバッチ)を発行す
る。それぞれの命令によって実行されるべき演算の型に
よって、命令は演算論理ユニット(ALU)14、シフ
タ16、または機能ユニット(FU)18、20に送ら
れてもよい。与えられた取出バッチ中の各命令は同時に
リオーダバッファ22にも入れられる。リオーダバッフ
ァ22は、命令間のデータ依存、すなわち分岐命令また
は他の原因、によって生じるかも知れない命令処理にお
ける割込を証明するためにパイプライン命令処理を使用
するこのようなスーパースカラコンピューティング装置
に必要である。すなわち、与えられた命令の結果が次の
命令のためのオペランドとして要求されるか、または分
岐命令がレジスタファイルを更新する分岐の条件の解明
を待つ必要があってもよい。むろん、分岐命令はちょう
ど他のいかなる命令においても起こり得るようなデータ
依存を有する読出オペランドを含んでもよい。たとえば
条件付き分岐命令は別の命令のストリームへジャンプす
るか、現在の命令のストリームを継続することができ
る。条件付き分岐命令の結果は機能ユニットによってそ
れが実行されるまで知られず、その実行結果はリオーダ
バッファに戻される。この発明の好ましい実施例におい
て、プロセッサは分岐命令の結果に関してインテリジェ
ント推量を行ない、命令のストリームから命令を取出し
てデコーダへ入れることを継続する。もし分岐結果の推
量が正しくなければ、リオーダバッファは分岐命令の後
に記憶された誤った命令を除去し、新しい命令のストリ
ームが取り出されるであろう。分岐命令はリオーダバッ
ファ内の有効に割当てられたエントリを使用して実行さ
れる。
タによって実行されるプログラムが準備されるとき、プ
ログラム中の各命令はレジスタファイル24のどのアド
レスがそれぞれの命令によって行なわれる演算結果を受
けるであろうかに関する情報を含む。各命令について、
特定の命令の実行のために要求されるオペランドがどの
レジスタアドレスから受けられるであろうかに関する情
報も含まれる。
ル24へソースオペランドを送って、データが線31を
介して機能ユニット12へ送られることを要求する。も
しソースオペランドとリオーダバッファ22内の前に記
憶された宛先オペランドとの間に一致が生じ、そのデー
タが有効であれば、リオーダバッファ22は、データが
レジスタファイル24から供給される代わりに、線30
を介して適当な機能ユニット12へデータを供給するで
あろう。もしソースオペランドとリオーダバッファ22
内の前に記憶された宛先オペランドとの間に一致が生
じ、データが有効でなければ、機能ユニット12へデー
タは送られないであろう。代わりに、タグが適当な機能
ユニット12の予約ステーション(図示せず)に送られ
るであろう。予約ステーションは、予約ステーションの
タグと一致するタグを有するデータについて機能ユニッ
ト12から結果バス34を監視するであろう。一致タグ
に関するデータはバス34からバス32を介してバス3
0へ送られるであろう。デコーダ10によって線26を
介して機能ユニット12へ送られる情報は命令の型に関
するものである。命令は依存度検査のためにリオーダバ
ッファ22の補助を得てデコーダ10によって送込まれ
る(または発行される)。
装置において、それぞれの処理ユニット12の各々は一
般に予約ステーションなどのある種の待合せ装置を有す
る。したがって、必要とされる結果を識別するための識
別子を運ぶ線26上のデコーダ10からそれぞれの処理
ユニット12へ発行する命令は、リオーダバッファ22
または出力線34から線30、32を介して必要な命令
が保持される適当な予約ステーションまたは他の待合せ
装置への識別情報によってそれぞれの必要な情報をその
要求される結果と一致させることができる。
れ、リオーダバッファ22へ「狂った順で」戻される。
リオーダバッファ22は線35を介して「順序正しく」
レジスタファイル24を更新する。
な図面において同一のエレメントが同一の参照数字によ
って識別されるであろう。
である。図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内の書込ポインタのロ
ケーションに関する情報をデコードされる。
された読出ポインタ情報(信号「A」)を受け、かつ入
力70でデコードされた書込ポインタ情報(信号
「B」)を受ける。イネーブル回路66は読出ポインタ
および書込ポインタ間のリオーダバッファ22内のすべ
てのエントリについてイネーブル信号「C」(好ましく
は「1」)を発生する。イネーブル信号「C」は出力7
2で与えられる。
路66からのイネーブル信号「C」を受ける。AND回
路50は出力74で出力信号「E」を発生し、この信号
「E」はリオーダバッファ22内の読出ポインタおよび
書込ポインタ間のソースアドレスおよび宛先アドレスの
あらゆる符合、すなわち一致、を識別する。
6で与えられる。イネーブル回路80は入力78でデコ
ードされた読出ポインタ情報(信号「A」)を受ける。
好ましくはイネーブル回路80はイネーブル回路66と
同じ構成のものである。イネーブル回路80は出力端子
82で出力信号「F」を発生する。信号「F」は読出ポ
インタからイネーブル信号「C」および比較ヒット信号
「D」の第1の符合へイネーブル信号(好ましくは
「1」)を確立する。
受け、かつ入力85で信号「F」を受ける。好ましくは
AND回路86はAND回路50と同じ構成のものであ
る。AND回路86は出力端子88で出力信号「G」を
発生する。信号「G」はリオーダバッファ22内の読出
ポインタおよび書込ポインタの中間のそれぞれの命令に
よって要求される結果の最も新しく記憶された発生を識
別する。出力信号「G」はエンコーダ90によってエン
コードされ、出力端子92で出力タグとして装置40か
ら送込まれる。
有効なエントリを指せば、リオーダバッファ22は(デ
ータがレジスタファイル24から送られている代わり
に)線30を介して機能ユニット12へデータを送るで
あろう。リオーダバッファ22内の有効なエントリは、
命令が機能ユニット12によって実行を完了し、リオー
ダバッファ22内に戻ったことを意味する。命令の結果
がレジスタファイル24、またはプロセッサの状態を
「順序正しく」更新せねばならないので、有効なエント
リ命令はその復帰を待たねばならない。もし出力タグが
リオーダバッファ22内の有効でないエントリを指せ
ば、図1に関連して説明されるように、出力タグは次に
送込まれるべき命令に適切に付加され、実行のための命
令によって要求される情報のロケーションに関する命令
についての識別情報を与え、かつ出力線34から待合せ
装置およびそれぞれの処理ユニット12への線32を介
する直接命令への情報の起こり得る一致を補助する。
用されるイネーブル回路66、80の電気的概略図であ
る。図3において、第1の入力バス94および第2の入
力バス96の各々は10ビット(ビット0−9)信号を
イネーブル装置100へ送る。したがって、イネーブル
装置100は10個のセル0−9を含む。各セルは入力
バス94および入力バス96の双方のそれぞれのビット
に各セルについて入力IN0 −IN9 が存在するように
関連される。出力バス98は関連された出力OUT0 −
OUT9 を有する。
ル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からの信号によってゲートされる。
り、復帰共通線141はセル0からループしてセル9に
戻る。
1ビットと入力バス96の1ビットだけがいかなる与え
られた時間にも「1」値を有するであろうようにフォー
マット化された入力バス94、96によって与えられる
アドレスに応答するように構成される。したがって図示
によって、入力バス94がビット6で「1」値を有し、
かつ入力バス96がビット2で「1」値を有する場合の
イネーブル装置100の動作が説明されるであろう。
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」値を有するであろう。
ッチングトランジスタ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
を絶縁するであろう。
セル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」値)を課す。
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を接地から絶縁する。
に課された「1」値が出力OUT2−OUT5 へ伝搬さ
れる。セル2において共通線140に課された「0」値
も出力OUT0 −OUT1 、および出力OUT6 −OU
T9 へ伝搬される。
回路100の方法および動作の概略的図表である。図4
においてリオーダバッファ22内の選択された値が示さ
れる。リオーダバッファ22は好ましくは、読出ポイン
タおよび書込ポインタを増加することによってリオーダ
バッファ22内のデータのシフト方向が達成される、ル
ープ先入先出方式(FIFO)レジスタとして構成され
る。読出ポインタ(RP)および書込ポインタ(WP)
はリオーダバッファ22内の4つの命令の取出バッチを
示す特定のロケーションで図4に示される。さらに図4
において、文字指定「A」−「G」が図2の説明に関連
して使用される信号指定へキーボードから入力される。
ジスタファイル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」値で識別
する。
の発明の好ましい実施例を説明するが、これらは説明の
目的のみのためであり、この発明の装置は開示される精
密な詳細および条件に限定されることなく、かつ前述の
請求項によって規定されるこの発明の精神から逸脱する
ことなしに様々な変更がその中で行なわれてもよいこと
が理解されるべきである。
とが意図される型のリオーダバッファを使用するコンピ
ューティング装置の概略図である。
ブル回路の電気的概略図である。
作を表わす概略図表の図である。
Claims (13)
- 【請求項1】 記憶装置内の複数の命令間の依存を解決
するための装置であって、前記記憶装置は複数のメモリ
セルを有し、前記複数のメモリセルの選択されたメモリ
セル内に前記複数の命令を順次記憶し、前記記憶装置は
前記複数のメモリセルの次に空のメモリセルを示す読出
ポインタと、前記複数の命令の最初に記憶された命令を
示す書込ポインタとを有し、前記複数の命令の各々は結
果を決定するために複数のオペランドの作動的組合せを
行ない、前記複数のオペランドの各々はソースインジケ
ータによって識別され、前記結果は宛先インジケータに
よって識別され、この装置は出力信号を発生し、前記出
力信号は次に送込まれるべき命令の前記ソースインジケ
ータのそれぞれと一致する前記宛先インジケータを有す
る前記複数の命令の最も新しく記憶された命令を識別す
る装置であって、この装置は、 前記複数の命令の最初に記憶された命令の前記宛先イン
ジケータと前記次に送込まれるべき命令中の前記それぞ
れのソースインジケータが符合する毎に比較ヒット信号
を発生するための比較ヒット手段と、 前記複数の命令の第1のパケットの命令について第1の
イネーブル信号を発生するための第1のイネーブル手段
とを含み、前記第1のパケットの命令は前記読出ポイン
タおよび前記書込ポインタによって規定され、 前記比較ヒット信号と前記第1のイネーブル信号が符合
するごとにヒットイネーブル信号を発生するための第1
の比較手段と、 前記複数の命令の第2のパケットの命令について第2の
イネーブル信号を発生するための第2のイネーブル手段
とをさらに含み、前記第2のパケットの命令は前記読出
ポインタおよび前記ヒットイネーブル信号によって規定
され、 前記第2のイネーブル信号と前記ヒットイネーブル信号
とが符合するごとに、前記出力信号を発生するための第
2の比較手段とをさらに含む、装置。 - 【請求項2】 前記順次記憶は先入先出方式記憶として
行なわれる、請求項1に記載の複数の命令間の依存を解
決するための装置。 - 【請求項3】 前記複数のオペランドは2つのオペラン
ドである、請求項1に記載の複数の命令間の依存を解決
するための装置。 - 【請求項4】 前記第1のイネーブル手段および前記第
2のイネーブル手段は実質的に同じ構成のものである、
請求項1に記載の複数の命令間の依存を解決するための
装置。 - 【請求項5】 前記第1の比較手段および前記第2の比
較手段は実質的に同じ構成のものである、請求項1に記
載の複数の命令間の依存を解決するための装置。 - 【請求項6】 前記第1比較手段および前記第2の比較
手段は実質的に同じ構成のものである、請求項4に記載
の複数の命令間の依存を解決するための装置。 - 【請求項7】 前記第1のイネーブル手段および前記第
2のイネーブル手段は実質的に同じ構成のものである、
請求項2に記載の複数の命令間の依存を解決するための
装置。 - 【請求項8】 前記第1の比較手段および前記第2の比
較手段は実質的に同じ構成のものである、請求項7に記
載の複数の命令間の依存を解決するための装置。 - 【請求項9】 記憶装置内の複数の命令間の依存を解決
するための方法であって、前記記憶装置は複数のメモリ
セルを有し、かつ前記複数のメモリセルの選択されたメ
モリセル内に前記複数の命令を順次記憶し、前記記憶装
置は前記複数のメモリセルの次に空のメモリセルを示す
読出ポインタと、前記複数の命令の最初に記憶された命
令を示す書込ポインタとを有し、前記複数の命令の各々
は結果を決定するために複数のオペランドの作動的組合
せを行ない、前記複数のオペランドの各々はソースイン
ジケータによって識別され、前記結果は宛先インジケー
タによって識別され、この方法は次に送込まれるべき命
令の前記ソースインジケータのそれぞれと一致する前記
宛先インジケータを有する前記複数の命令の最も新しく
記憶された命令を識別する方法であって、 (1) 前記次に送込まれるべき命令中の前記それぞれ
のソースインジケータの各々を前記複数の命令の先に記
憶された命令の各々の前記宛先インジケータと比較する
ステップと、 (2) 前記次に送込まれるべき命令中の前記それぞれ
のソースインジケータが前記複数の命令の先に記憶され
た命令の前記宛先インジケータと符合するごとに比較ヒ
ット信号を発生するステップと、 (3) 前記複数の命令の第1のパケットの命令につい
て第1のイネーブル信号を発生するステップとを含み、
前記第1のパケットの命令は前記読出ポインタおよび前
記書込ポインタによって規定され、 (4) 前記第1のイネーブル信号と前記比較ヒット信
号を比較するステップと、 (5) 前記比較ヒット信号と前記第1のイネーブル信
号とが符合するごとにヒットイネーブル信号を発生する
ステップと、 (6) 前記複数の命令の第2のパケットの命令につい
て第2のイネーブル信号を発生するステップとをさらに
含み、前記第2のパケットの命令は前記読出ポインタお
よび前記ヒットイネーブル信号によって規定され、 (7) 前記ヒットイネーブル信号と前記第2のイネー
ブル信号を比較するステップと、 (8) 前記第2のイネーブル信号と前記ヒットイネー
ブル信号とが符合するごとに出力信号を発生するステッ
プとをさらに含み、前記出力信号は前記次に送込まれる
べき命令の前記ソースインジケータのそれぞれと一致す
る前記宛先インジケータを有する前記複数の命令の最も
新しく記憶された命令を識別する、方法。 - 【請求項10】 前記順次記憶は先入先出方式記憶とし
て行なわれる、請求項9に記載の複数の命令間の依存を
解決するための方法。 - 【請求項11】 前記複数のオペランドは2つのオペラ
ンドである、請求項9に記載の複数の命令間の依存を解
決するための方法。 - 【請求項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】 第1の多ビット入力信号および第2の
多ビット入力信号に応答して複数の出力ビットを発生す
るための装置であって、 複数のセルを含み、前記複数のセルは階層位に従ってア
レイに配列され、前記複数のセルの各特定のセルは前記
第1の多ビット入力信号の特定の第1のビットを受ける
ための第1の入力手段を有し、かつ前記第2の多ビット
入力信号の特定の第2のビットを受けるための第2の入
力手段を有し、 共通導体をさらに含み、前記共通導体は前記複数のセル
の各々と作動的に接続され、 前記特定のセルの各々は前記共通導体と基準パラメータ
ソースとの間に第1のスイッチング可能な作動的接続を
含み、かつ前記共通導体と電気的接地との間の第2のス
イッチング可能な作動的接続を含み、かつ前記共通線の
電気的割込を選択的に行なうための第3のスイッチング
可能な作動的接続を含み、前記複数のスイッチング可能
な作動的接続は前記特定のセルによって受けられる前記
特定の第1のビットおよび前記特定の第2のビットに応
答して前記特定のセルの各々によってスイッチングさ
れ、 前記複数のセルは前記第1の多ビット入力信号および前
記第2の多ビット入力信号に応答して共働し、第1のレ
ベルで前記複数の出力ビットの選択された出力ビットを
確立し、前記選択された出力ビットは第1の予め定めら
れた状態を有する特定の第1のビットを受ける第1の前
記特定のセルと第2の予め定められた状態を有する特定
の第2のビットを受ける前記特定のセルの第2のものと
の中間の前記特定のセルによって制御される前記複数の
出力ビットのそれらの出力ビットであり、前記複数の出
力ビットの前記残りの出力ビットは前記アレイの他の場
所では第2の状態である、装置。
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)
| 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)
| 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)
| 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 |
-
1991
- 1991-09-20 US US07/764,155 patent/US5345569A/en not_active Expired - Lifetime
-
1992
- 1992-08-06 AT AT92307185T patent/ATE172802T1/de not_active IP Right Cessation
- 1992-08-06 EP EP92307185A patent/EP0533337B1/en not_active Expired - Lifetime
- 1992-08-06 DE DE69227429T patent/DE69227429T2/de not_active Expired - Lifetime
- 1992-09-18 JP JP25014592A patent/JP3342894B2/ja not_active Expired - Lifetime
Cited By (1)
| 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 |