JPH04218836A - リソース・スコアボーダおよびデータ処理方法 - Google Patents

リソース・スコアボーダおよびデータ処理方法

Info

Publication number
JPH04218836A
JPH04218836A JP3053202A JP5320291A JPH04218836A JP H04218836 A JPH04218836 A JP H04218836A JP 3053202 A JP3053202 A JP 3053202A JP 5320291 A JP5320291 A JP 5320291A JP H04218836 A JPH04218836 A JP H04218836A
Authority
JP
Japan
Prior art keywords
instruction
register
bus
microinstruction
bit
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.)
Pending
Application number
JP3053202A
Other languages
English (en)
Inventor
M Arnold James
ジェームズ・エム・アーノルド
J Hinton Glen
グレン・ジェイ・ヒントン
S Smith Frank
フランク・エス・スミス
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.)
Intel Corp
Original Assignee
Intel 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 Intel Corp filed Critical Intel Corp
Publication of JPH04218836A publication Critical patent/JPH04218836A/ja
Pending 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/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/322Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
    • G06F9/325Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address for loops, e.g. loop detection or loop counter
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3838Dependency mechanisms, e.g. register scoreboarding

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)
  • Advance Control (AREA)

Abstract

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

Description

【発明の詳細な説明】
【0001】
【発明の利用分野】本発明は、データ処理装置に関し、
さらに詳しくは、パイプラインド・マイクロプロセッサ
においてインストラクション・ストリームを実行する際
、レジスタ・ファイルにおけるスコアボード・ビットの
能力を、全複数サイクルの演算にまで拡張する装置に関
する。
【0002】
【発明の背景】インテル・コーポレーションに譲渡され
、1990年1月2日に交付された発明者デビッド・ブ
ッデ他による米国特許第4,891,753号、発明の
名称「マイクロプロセッサ・チップにおけるレジスタ・
スコアボーディング」には、スコアボーディング技術を
用いることによってパイプラインド・マイクロプロセッ
サにおいてインストラクション・ストリームを実行する
際、アイドル時間を最小にする装置が示されている。 マイクロインストラクションは、マイクロインストラク
ション・バスに配置され、マイクロインストラクション
・バリド・ラインがアサートされる。ロード・マイクロ
インストラクションがデコードされる時読出しオペレー
ションがバス制御論理装置に送られ、デスティネーショ
ン・レジスタはビジーとしてマークされ、実行は次のカ
レント・マイクロインストラクションに進行する。マー
キングは、前のインストラクションの完了を妨害するこ
となくカレント・インストラクションを実行することが
できるかどうかに関する表示を行う。レジスタのマーキ
ングから、「スコアボーディング」という言葉が生じる
。カレント・マイクロインストラクションの実行は、そ
のソースとデスティネーション・レジスタが“ビジー”
としてマークされないならば進行する。しかし、そうで
ないならば、マイクロインストラクション・バリド・ラ
インは、カレント・マイクロインストラクションがマイ
クロインストラクション・バスに現れた直後、非アサー
トされる。それにより、カレント・マイクロインストラ
クションはキャンセルされ、その後再発行されなければ
ならない。読出し演算の結果としてデータがリターンさ
れる場合、デスティネーション・レジスタは“ビジーで
ない”とマークされる。
【0003】本発明の目的は、ロード・インストラクシ
ョンの他、全ての複数サイクルの演算を包含するよう従
来のスコアボーディング技術を拡張することである。
【0004】
【発明の概要】上記目的は、マイクロインストラクショ
ン・バスのカレント・マイクロインストラクションがバ
リド(有効)であることを知らせるよう Scbok 
 ラインをドライブする方法と装置を提供することによ
り達成することができる。その後、情報は、クロック・
サイクルの第1フェーズにおいてマシン・バスに駆動さ
れる。インストラクションにより必要とされるソース・
オペランドは、上記クロック・サイクルの第2フェーズ
において読出される。インストラクションを実行するた
め上記オペランドにより必要とされているリソースは、
それらが全て使用可能であるかどうかを調べるためチェ
ックされる。Scbok 信号は、インストラクション
により必要とされるいずれか1つのリソースがビジーで
あるならばアサートされる。全てのリソースに、上記イ
ンストラクションの実行に関して行われるどんな仕事も
キャンセルさせる装置が提供されており、それによって
、インストラクションを決して発行しない装置が休止し
ているかのように見える。その後、インストラクション
は、次のクロック・サイクルにおいて再発行される。以
下、添付の図面に基づいて、本発明の実施例に関し説明
する。
【実施例】
【0005】図1において、マイクロプロセッサは、5
つの主な装置、すなわち乗算/除算装置2と、実行装置
4と、レジスタ・ファイル6と、インストラクション・
デコーダ8とメモリ・インタフェイス装置9とに分割さ
れている。以下に、各装置について簡単に説明する。
【0006】インストラクション・デコーダ8インスト
ラクション・デコーダ8は、インストラクション・キャ
ッシュと、インストラクション・シーケンサ(IS)と
、ROM(I−キャッシュ)を含んでいる。 I−キャッシュは、サイクルごとにインストラクション
・シーケンサにインストラクションを供給する。それは
、両方向セット−連想インストラクション・キャッシュ
とマイクロコードROMを含んでいる。I−キャッシュ
とROMは、基本的には1つの構造である。ROMは、
キャッシュのオールウェイズ−ヒット部分である。 これにより、アレイのコラム・ラインであっても、それ
は、インストラクション・キャッシュと同じ論理装置を
共有することができる。I−キャッシュは、4ワードの
幅で、インストラクション・シーケンサ(IS)にクロ
ック当たり4ワードを供給することができる。それは、
インストラクション・アドレスのアライメントに関係な
く、クロック当たり3または4ワードを一貫して供給す
る。I−キャッシュも、インストラクション・フェッチ
がI−キャッシュを見落とした場合に使用される外部フ
ェッチ操作論理装置を含んでいる。
【0007】インストラクション・シーケンサ(IS)
は、I−キャッシュからの4つの入インストラクション
・ワードをデコードする。それは、クロック当たり最高
3つのインストラクションをデコードしかつ発行するこ
とができるが、それは2つのクロックにおいて5個以上
のインストラクションを発行することはできない。IS
は、インストラクション間の依存性を検出し、クロック
当たり可能な限り多数のインストラクションを発行する
。ISは、直接的に分岐を実行する。それは、マイクロ
コードを必要としている少数のインストラクションに関
するマイクロコードにベクトルし、かつ割込みおよび障
害を処理する。
【0008】レジスタ・ファイル(6)レジスタ・ファ
イル(RF)は、16個のローカル・レジスタと16個
のグローバル・レジスタを有している。それは、マイク
ロコードによってのみ使用される少数のスクラッチ・レ
ジスタを有する。それは、アーキテクチャにより指定さ
れる32個のリテラル(0−31定数)を作る。RFは
、マシンの並行性をサポートするため4つの独立読出し
部分と2つの独立書込み部分を有している。また、それ
は、レジスタ・スコアボーディング論理装置をチェック
しかつ保持する。
【0009】実行装置(EU−12)EUは、本発明が
実行されているマイクロプロセッサの単純な整数および
順序数の演算の全てを実行する。全演算は、単一サイク
ルを採用している。それは、32−ビットのキャリ・ル
ック・アヘッド・アダーと、ブール論理装置と、32−
ビットのバレル・シフタと、比較器と、コンディション
・コード論理装置を有する。
【0010】乗算−除算装置(MDU−10)MDUは
、整数/順序数の乗算、除算、剰余、およびモジュロ演
算を行う。それは、8−ビット/クロック乗算および1
−ビット/クロック除算を行う。乗算は、4クロックの
スループットと5クロックの待ち時間を有し、除算は、
37クロックのスループットと38クロックの待ち時間
を有している。
【0011】メモリ・インタフェイス装置(9)メモリ
・インタフェイス装置9は、アドレス発生装置(AGU
)とローカル・レジスタ・キャッシュ(LRC)を含ん
でいる。AGUは、整数実行装置と並列に有効アドレス
の計算を行う。それは、ロード−有効−アドレス・イン
ストラクション(LDA)を行い、またロードおよびス
トアのアドレス計算も行う。それは、スケールド・イン
デックス・アドレス・モードに関するプリスケーリング
を行うため、32−ビットのキャリ・ルック・アヘッド
・アダーとそのアダーの前のシフタを有する。
【0012】ローカル・レジスタ・キャッシュ(LRC
)は、複数の16−ワード・ローカル・レジスタ・セッ
トを多量保持している。各呼出しにおいて、16ローカ
ル・レジスタは、レジスタ・ファイル(RF)からLR
Cに転送される。これは、呼び出された手続きに関して
RFにおける16ローカル・レジスタを割り当てる。 リターンの際、16ワードは、呼出し手続きに関してR
Fに戻される。LRCは、6ポートRFセルよりはるか
に小さい単一ポートRAMセルを用いている。これはR
Fを小さくかつ速く保持しているので、それは、8+セ
ットのローカル・レジスタをオンチップにキャッシュし
ながら高周波で動作することができる。
【0013】インストラクション・セットマイクロプロ
セッサのインストラクション・セットは、RISC(減
少インストラクション・セット・コンピュータ)マシン
の設計と同様である。全インストラクションは32−ビ
ットの長さで、ワード・バウンダリ、およびオンリ・ロ
ード、ストア、および分岐インストラクション基準メモ
リ(チップに配置された他の全ての基準レジスタ)と整
合されなければならない。最も一般に使用されるインス
トラクションは、1つのサイクルで実行されるので、イ
ンストラクション・デコーディングも1つのサイクルで
行われ、パイプライニングにより、プロセッサを、サイ
クル当たりのインストラクション処理速度を維持するこ
とができる。
【0014】大抵のインストラクションは、REGフォ
ーマットを有し、それは1つのopコードと3つのレジ
スタ/リテラル(すなわち、32個のレジスタの1つ、
またはレンジ0〜31における一定値)を指定する。C
OBRフォーマットは、1組の比較および分岐(インス
トラクションに関する。CTRLフォーマットは、分岐
および呼出しインストラクションに関する。MEMフォ
ーマットは、ロードおよびストア・インストラクション
に関する。フォーマットは、以下に示す通りである。
【0015】         REGフォーマット ┌───┬────┬───┬─┬─┬─┬───┬─
─┬────┐        │opコート゛│sr
c/dst │ソース2  │m3│m2│m1│op
コート゛│ xxx│  ソース1  │      
  └───┴────┴───┴─┴─┴─┴───
┴──┴────┘            8   
     5        5     1    
1  1    4        2      5
【0016】       COBRフォーマット ┌───┬──┬──┬─┬────────────
──────┐        │opコート゛│ソー
ス1│ソース2│m1│          置き換え
                  │      
  └───┴──┴──┴─┴──────────
────────┘            8   
   5      5    1         
       13
【0017】         CTRLフォーマット┌───┬──
────────────────────────┐
        │opコート゛│         
         置き換え            
              │        └─
──┴──────────────────────
────┘            8       
                  24
【0018】       MEMフォーマット ┌───┬────┬────┬─┬─┬──────
──────┐        │opコート゛│sr
c/dst │ abase  │md│0 │   
    オフセット            │   
     └───┴────┴────┴─┴─┴─
───────────┘             
8        5        5      
1   1          12
【0019】インストラクション・セットは、加算、乗
算、けた上げ、分岐のような通常のインストラクション
を含んでいる。
【0020】レジスタ・モデル どの時点においても、32個の32−ビット・レジスタ
と4つの80−ビット浮動小数点レジスタはアドレス可
能である(32個のレジスタも、浮動小数点値を保持す
るのに使用することができる)。32個のレジスタは、
16個のグローバル・レジスタ21と、16個のローカ
ル・レジスタから成る。16個のグローバル・レジスタ
は、手続き境界を横切る時には影響されないが(すなわ
ち、それらは、他のアーキテクチャにおいては“ノーマ
ル”レジスタのように動作する)が、ローカル・レジス
タは呼出しおよびリターン・インストラクションにより
影響されるという相違点がある。
【0021】呼出しインストラクションが実行される時
、プロセッサは、呼び出された手続きに、レジスタ・セ
ットのオン・チップ・プールからの新しいセットの16
個のローカル・レジスタを割り当てる。プロセッサの4
−セット・プールが空になると、プロセッサは、初期の
手続きに関連した1つのレジスタ・セットを取り出しか
つそのレジスタ・セットの内容をメモリに格納すること
により、自動的にレジスタ・セットを再割り当てする。 初期の手続きのレジスタ・セットの内容は、メモリにお
けるその手続きのスタック・フレームの最初の16ワー
ドに格納される。リターン・インストラクションは、カ
レント・ローカル・レジスタ・セットを(その後の呼出
しによって使用するため)自由にしている。この機構は
、スタック・フレーム・キャッシュ23に呼び出される
。この機構については、本発明の出願人であるインテル
・コーポレーションに譲渡された、発明者メイヤ他によ
る米国特許第4,811,208号、発明の名称「マイ
クロプロセッサ・チップにおけるスタック・フレーム・
キャッシュ」において述べられている。
【0022】レジスタ・スコアボーディング図1の回路
は、米国特許第4,816,700号に述べられている
クロックのような2つの非オーバラッピング・クロック
位相設計を有するクロックにより駆動される。4つのク
ロック、PH1,PH1I,PH2,PH2Iが、チッ
プに配分されている。PH1およびPH2は、等しいデ
ューティ・サイクルを有する従来のNMOS非オーバラ
ッピング・クロックである。PH1IおよびPH2Iは
、PH1およびPH2に関するPMOSアナログで、そ
れぞれPH1およびPH2の正反対である。連続するP
H1およびPH2アサーションは、マイクロサイクルを
形成している。
【0023】レジスタ・ファイルの概要レジスタ・ファ
イル(RF)は、マイクロプロセッサにおける全データ
・オペランドの焦点である。マイクロプロセッサは、ロ
ード/ストア・アーキテクチャを有し、プログラムに関
連した全データ・オペランド(特殊関数レジスタ・オペ
ランドを含んでいる)は、同時にまたは別の時にRFに
存在していなければならない。RFは、マクロコードお
よびマイクロコード・ビジブルRAMレジスタを含んで
いる。RFは、マルチポート・アクセス構造によりこれ
らレジスタに高性能なインタフェイスを与えるので、4
つの読出しと2つの書込みを、異なるレジスタにおいて
同じマシン・サイクルにおいて生じることができる。レ
ジスタ・アクセスを行うという義務とともに、RFは、
次の機能に関して応答可能である。
【0024】(1)  プログラマ/マイクロプログラ
マを使用するため32個のリテラルを発生する。 (2)  ロードおよびストアの部分的アライメントを
行う。バイトおよび短いワードのロードの零およびサイ
ン拡張を行う。 (3)  バイトおよび短いワード整数ストアにおける
整数オーバフロー(IOV)の障害をチェックしかつ伝
達する。 (4)  各レジスタに所属するスコアボード・ビット
を使用している間レジスタのインテグリティを保持する
。 (5)  最も新しいデータが使用されることを保証す
るため、直前の書込み結果から正しいソース・データを
ドライブするバイパス構造を組み込む。
【0025】図2に示すように、レジスタ・ファイルは
、6つの主な論理装置、すなわちロード/ストア整合装
置10,12、ベースMUX14、ロード・バイパス1
6、RAMアレイ18、デスティネーション・バイパス
24および Srcl/Src2  MUX26から成
る。
【0026】以下に示す表は、RFによりサポートされ
るレジスタ・セットとそれらのアドレスを示している。
【0027】 レジスタ・セット                 
                  レジスタ・アド
レス16フレーム・レジスタ     R0−R15 
              000xxxx16グロ
ーバル・レジスタ   G0−G15        
       001xxxx32リテラル     
          0・・32          
       01xxxxx32特殊機能     
          SF0−SF31       
    10xxxxx32スクラッチ・レジスタ  
 S0−S31               11x
xxxx
【0028】 特殊機能レジスタ(SFR)は、レジス
タ・ファイルの中にはないが、外部論理装置に供給され
ている。リテラルは、RF中のレジスタには実際にはな
いが、リテラル値のレジスタ・アドレスを使用して発生
される。リテラル発生論理装置は、RAMアレイ論理ブ
ロックの記載においてさらに詳しく説明する。
【0029】最高32個のスクラッチ・レジスタがRF
において物理的に作られる。スクラッチ・レジスタは、
唯一、マイクロコードによって調べることができ、マク
ロ・レベルのプログラマによっては直接的には調べられ
ない。本実施例において、32個の可能レジスタのうち
4つが供給され、全レジスタの数は36個(16個のグ
ローバル+16個のフレーム+4個のスクラッチ)にな
る。
【0030】4つの可能な読出し、すなわちストア、ベ
ース、Src1 および Src2  がある。同様に
2つの可能な書込み、すなわちロードとデスティネーシ
ョンがある。
【0031】実RAMアレイ18を含んでいる全データ
路は、組み合わされたワード・ビット(ワード3ビット
31、ワード2ビット31、ワード1ビット31他)で
配列された4ワード×32ビット/ワード128−ビッ
ト幅の通路に構成されている。この配列は、RAMセル
の幅の寸法とロード/ストア・データのアライメントの
容易性とに関して有利である。
【0032】インストラクションのレジスタおよびメモ
リの両方の形式は、同じサイクルで実行することができ
るので、6つの可能レジスタの要求を実行する可能性が
ある。このように、6−ポート・レジスタ・ファイルの
設計は、これら並列機能を正確に行うのに必要である。 無論、複数のソースから同じレジスタに書き込むことは
望ましくない結果になる恐れがあるので、データの衝突
を妨げる何らかの機構がなければならない。この問題に
対して保護するため、およびデータが適切に書き込まれ
る前にそれが読出されてしまうのを妨げるため、RFは
レジスタ・スコアボーディングを使用する。次の列につ
いて考察する。
【0033】LD(G0),G1;これは、ベース・ア
ドレスとしてG0を使用して1ワードをG1にロードす
る。ADD  G1,G2,G3;これは、G1および
G2を加え、その結果をG3に配置する。
【0034】この列においてロードは、デスティネーシ
ョンとしてG1を使用し、次のサイクルで、ADDは、
Src1  としてG1を使用する。レジスタ・スコア
ボーディングなしで、ロードは実行し、G0からメモリ
・インタフェイス9にアドレスを送る。ADDは、盲目
的に Src1 としてG1を使用し、誤っているのに
もかかわらず、その結果をG3に配置する。誤った結果
を避けるため、ADDは、データをメモリ・インタフェ
イスからリターンすることができるまでホールド・アッ
プされる。 RFが用いている方法は、インストラクションごとの最
初にチェックされるアレイ19に、各レジスタに関連し
たスコアボード・ビット21を含むことにより、常にバ
リド・データを使用することを保証している。そのオペ
ランドとデスティネーションが使用されていないので、
RFは、デスティネーション・レジスタに関連したスコ
アボード(Scb)・ビットを設定し、かつインストラ
クションを完了することができる。上記例において、ロ
ードは、ID8内のインストラクション・シーケンサ(
IS)により発行され、RFはG0およびG1のScb
ビットをチェックし、信号 MemScbok 200
はアサートされ続け、かつベース50は、メモリ・イン
タフェイス9に送られる。ADDも、ISにより発行さ
れる。RFはG1,G2,G3をチェックし、G1はビ
ジーであることがわかる。その後、RFは、Scbok
102を低にアサートし、必要なリソースが使用可能で
はなくかつそれがADDを再発行すべきことをISに示
す。ISはADDを再発行し続け、RFは、ロードが完
了しかつG1に関連したスコアボード・ビットがクリヤ
されるまで Scbok 102 を低にアサートし、
ADDを完了することができる。図3は、RAMアレイ
の読出しと書込み、およびスコアボード・ビットのチェ
ックと設定の基本的タイミングを示している。
【0035】上記例において、ロード・データは、任意
数のサイクルの後、リターンされる。なお、信号 Ld
Valid 104 はアサートされ、バリド・データ
が LdData バス106にあることを示す。RA
Mアレイにおけるレジスタは、Ph2において読出され
、Ph1において書込まれる。ロード・データが、レジ
スタ・ファイルに書き込まれる時、次のことが生じる。 q02(パイプ・ステージ0、フェーズ2)において、
データのゼロはRAMに書込まれ、1は、すぐ後のq1
1において書込まれる。0はこのインプレメンテーショ
ンでは1に重ね書きすることはできないので、書き込ま
れるべきレジスタは、データを実際に書込むほんの少し
前にクリヤされなければならない。このことは、RFに
供給されたRAMセルの構造によっている。
【0036】加算インストラクションのデスティネーシ
ョン・レジスタは、スコアボードされない。EU形式の
どのインストラクションもレジスタ・ファイルによって
スコアボードされない。デスティネーションをRFにリ
ターンしないある形式のEUインストラクション、すな
わち比較インストラクションがあって、スコアボーディ
ング・クリヤリング機構の問題を発生する。レジスタ・
ファイルは、全形式の比較インストラクションをデコー
ドするプロセスを終え・インストラクション・フィール
ドに指定されたデスティネーション・レジスタをスコア
ボーディングしない特殊な場合にすることができる。し
かし、全EUインストラクションは、常に1サイクルで
実行するので、これらインストラクションのデスティネ
ーション・レジスタをスコアボードする必要がない。デ
ータは、そのソースに関して特定のレジスタを必要とす
る次のインストラクションの用意ができるようにする。 EUインストラクションを決定するのに必要なデコーデ
ィングは最少で、opコード・フィールドの3ビットだ
けである。
【0037】前述した例では、ロード・データは、q0
2においてリターンされるが、実際にはq11において
RAMアレイに書き込まれる。RAMに書き込まれ、そ
の後再び読出されるべきデータを待機する1サイクル、
Addインストラクションが遅延されるのを妨げるため
、RFは、q02において Src1 バスに、リター
ンするロード・データをバイパスする。EUにおいて加
算が行われるので、ロード・データは、通常通りq11
において書き込まれる。
【0038】RF論理ブロックの説明 RF6は、図2に関して説明されているように6つの主
な論理ブロックに分割されている。ロード/ストア・ア
ライメントロード/ストア・アライメント論理ブロック
10,12は、(ロードの場合)メモリ・インタフェイ
スに予定されたデータを配列し、(ストアの場合)メモ
リ・インタフェイスから来たデータをRAMアレイに入
るように準備する。手続きは、単に方向が逆であること
以外はどちらの場合もほとんど同じなので、ロード・ア
ライメント・プロセスについてのみ説明する。
【0039】メモリ・インタフェイスからリターンする
ロード・データは、それを、ワード0である最下位ワー
ド(LSW)にワード整列するように配列される。たと
えば、4ワード・メモリ・ブロックの Word2  
からリターンしたワードは、それがLdData バス
に配置される前に Word0 にシフトされる。なお
、RFデータ路は、一緒になったワード・ビット(全ビ
ット・ゼロ、全ビット1、など)で4ワード×32ビッ
ト/ワード路として構成されているので、LdData
  および Stdata バスも、このように構成さ
れている。したがって、Word0 へのワード・シフ
トは、単なる各ビット・セルにおける多重化プロセスで
ある。部分ワード・アライメントだけがメモリ・インタ
フェイスにより行われるので、サブワード(バイトおよ
び短いワード)の場合は、メモリ・インタフェイスの観
点からワード・アクセスに等しい。たとえば、16(0
〜15)バイト・メモリ・ブロックのバイト13からリ
ターンするバイトは、Word3  のビット8〜15
にリターンする。その後、メモリ・インタフェイスは、
バイトがまだビット8〜15にあったとしても、これを
LSW、または Word 0 に整列させる。
【0040】RFロード・アライメント論理ブロックが
行う第1段階は、最下位バイト(LSB)に入データを
正しくバイト整列させることである。これは、リターン
するデータがサブ・ワード数である場合にのみ行われな
ければならない。RFは、データよりも初期のフェーズ
でリターンされる TypeIn フィールドからこれ
を決定する。次の表は、ビット・フォーマットと Ty
peIn フィールドに関するその意味を示している。
【0041】
【0042】入データを整列させるバイトは、最も下の
バイトにデータを物理的に移動する、すなわちRFのデ
ータ路に直角にデータを実際に “ 操作(ステアリン
グ)”しなければならない。ロード/ストア・アライメ
ントは、データ路においてデータを移動するのに2つの
3状態8ビット“バイト・バス” を使用している。一
方は、バイトの場合で、もう一方は、ショート・ワード
の場合である。なお、ワード・アライメントは、メモリ
・インタフェイスにより既に行われているので、この分
散バスのドライブは、 Word0  によって行われ
るだけである。 Word0の各バイトは、個々の制御
を行うドライバを有しているので、1つのバイトしか1
度にバスをドライブできない。この機構に関する制御は
、TypeIn  フィールドから、および新しいフィ
ールド、  MemAdrIn (0:1) から引き
出される。メモリ・インタフェイスによりドライブされ
るこのフィールドは、現在 Word0 にある外部メ
モリの最初のワードに、バイト・ロケーションを伝達す
る。この時、レジスタ・ファイルに割り当てられた全デ
ータは、完全にLSBに整列されている。
【0043】ゼロ拡張または符号拡張は、ロードの場合
に行われる。これは、ロード・アライメント・ブロック
に関して独特のもので、ストアは、これら演算を行う必
要はない。メモリからリターンするデータがバイトまた
はショート・ワードで、TypeIn  フィールドの
ビット3がゼロの場合、ゼロ拡張は、レジスタに書き込
まれるべき32ビット・ワードの残りをパッドするため
に行われなければならない。同様に、データがバイトま
たはショート・ワードで、TypeIn  フィールド
のビット3が1の場合、符号拡張が行われる。これは、
単に上位ビット(バイトに関してビット8〜31、ショ
ート・ワードに関してビット16〜31)を符号ビット
(バイトに関してビット7、ショート・ワードに関して
ビット15)の値に押し込むことである。
【0044】最終過程は、後にRAMアレイに書き込ま
れるワードをそれらの予定ワード・ロケーションに正し
く配置するレジスタ・アライメントである。データ形式
がバイトまたはショート・ワードであるならば、符号拡
張もこの過程において行われる。符号拡張は、ビット7
(またはショート・ワードに関してビット15)〜ビッ
ト31の値の拡張を含み、これは整数ワードに関して正
しい符号を維持する。RFデータ路アレンジメントのビ
ット・グルービングはデータ路の移動を必要としないた
め、符号拡張とワード・アライメントのタスクは、4つ
のマルチプレクサ(各ワードにつき1つ)により行われ
る。これらマルチプレクサの制御は、データの長さおよ
びサブワードの場合に関する拡張の種類(符号またはゼ
ロ)を表している TypeIn フィールドから、お
よびレジスタ・アドレスの下位2ビットから引き出され
る。
【0045】ストア・アライメント・ブロックは、バイ
トおよびショート・ワード整数ストアに関する整数オー
バフロー(IOV)障害をチェックしかつ知らせるとい
う別の役割がある。オーバフローは、データの長さ(バ
イト:ビット8〜31、ショート:ビット16〜31)
以上、上位ビットをチェックし、ビットが符号ビット(
バイトに関しビット7、ショート・ワードに関しビット
15)に全て等しいことを確かめることにより、検出さ
れる。上位ビットが等しくない場合には、IOVFit
  信号をアサートすることによりIOV障害が知らさ
れ、コア・インタフェイスに送られる。外部のコア・イ
ンタフェイスと障害コントローラは、その後、障害を処
理する。
【0046】ベースMUX ベースMUX14は、RAMアレイからの64ビット・
フィールドをメモリ・インタフェイスに適した32ビッ
ト・ベースに減少する2−1マルチプレクサを含んでい
る。ベースMUXは、RAMアレイの64ビット・ベー
ス・バス50を処理しなければならない。これは、64
ビット値を32ビット・ベースにさらにマルチプレック
スしなければならなくなるRAMアレイの領域を節約す
る。マルチプレクサは、BasAdr バスのビット0
により制御され、それはどのワードをベースに供給する
かを指定する。
【0047】ロード・バイパス ロード・バイパス論理ブロック16は、メモリ・インタ
フェイス9から様々な出ポート、StData58,ベ
ース50、Src1 54、Src256にリターンす
る106をバイパスする論理装置を含んでいる。
【0048】ロード・バイパス機能を実行するのに使用
される基本的機構は、次のように動作する。データがリ
ターンしている全レジスタのレジスタ・アドレスは、要
求されたソース・レジスタのアドレスに比較される。整
合した場合、バイパス論理装置は、ロード・アライメン
ト論理ブロックから来るデータを直接的にソースのRA
Mコラム・ラインに配置する。 Src  バスから見
れば、データは実際のRAMアレイから読み出されてお
り、差は認められない。
【0049】コラム・ラインをドライブするこの方法は
、コラム・ラインがドライブされる直前に、バイパスさ
れているレジスタがクリヤされているので可能である。 もしこの事実がない場合には、デコーダを送るようRA
Mセルをエネーブルし続けるので、レジスタの古くなっ
た内容は、コラム・ラインに送られることになる。 コラム・ラインは、負のネガティブ・トゥルーにプリチ
ャージされる。これは、セルのゼロがラインの状態に影
響を与えないことを意味している。
【0050】RAMアレイ RAMアレイ論理ブロック18は、リテラル発生装置1
9と、デコーダをアドレスするレジスタRAMアレイと
、レジスタ・スコアボード・ビット21を含んでいる。
【0051】レジスタ・ファイルは、プログラマ/マイ
クロプログラマを使用するため32個のリテラル、値0
〜31を供給する。これら値を生じるリテラル論理装置
は、セクションを進行するRAMのコラム・ラインとと
もにRAMアレイのすぐ上にあり、ロード・バイパス論
理ブロック16に続いている。リテラルが Src1 
または Src2 オペランドとして要求される(リテ
ラルがベースおよびストア使用のソースとして認められ
ない)時、その対応する“レジスタ・アドレス”は、S
1Adr または S2Adrバスに配置される。表1
において、リテラルのアドレスは、0100000−0
111111で、これは0〜31を表している。リテラ
ルは、レジスタ・アドレスの下位の5ビットを単にマル
チプレックスすることにより、各ソース・RAMのコラ
ム・ラインに発生され、適当に論理装置に送られ、 S
rc1 および Src2 バスを生じる。コラム・ラ
インはプリチャージされかつネガティブ・トゥルーであ
るので、ワードの上位の27ビット非ドライブのまま残
される。これは、上位ビットに必要とされるゼロを発生
し、32ビット値を形成する。
【0052】RAMアレイは、プロセッサにより使用さ
れる36個のレジスタを有する9列×4個の32ビット
ワード・レジスタ・RAMを伴っている。これら36レ
ジスタは、16個のグローバル・レジスタと、16個の
フレーム(ローカル)レジスタと、4マイクロコードの
スクラッチ・レジスタを含んでいる。前述したように、
4つのレジスタ/列は、一群になった同様のワード・ビ
ットを有して配列されている。たとえば、左から右にR
AMアレイからのビットは、ワード3−ビット31、ワ
ード1−ビット31、ワード0−ビット31、ワード3
−ビット31、および次のビットのワード3−ビット3
0などとなる。これは、他の上部の全4つのレジスタの
スタックされたものとして同じ端部のLSBとともに見
えるようにすることができる。
【0053】ワード(3−1−0−2)のこのオーダリ
ングは、RAMセルの寸法を最小にする。ロング・ワー
ド(64ビット)はレジスタ対0および1または対2お
よび3からしか来ないので、Dstバス110、Src
1 バスおよび Src2  バスは、ワード3および
1またはワード0および2から同時にデータをドライブ
したりまたはワード0および2から同時にデータをドラ
イブしたりまたは受信したりしない。したがって、これ
らポートのコラム・ラインを相互に共用でき、RAMセ
ルのピッチ寸法を節約することができる。
【0054】RAMアレイは、各レジスタに関連したス
コアボード・ビットをストアする。ビット・セルは、1
つの例外を除いてはレギュラRAMセルとほとんど等し
い。デスティネーションの更新を適当な順序で確実に行
うため、(デスティネーション)レジスタのスコアボー
ド・ビットをソース・レジスタのスコアボード・ビット
と同時に読出さなければならないので、これらビットに
は別の読出しポートが必要である。CLEAR ライン
の別の機能は、レジスタが最後に書き込まれる時、スコ
アボード・ビットをクリヤすることである。
【0055】デスティネーション・バイパスデスティネ
ーション・バイパス論理ブロック26は、EUまたはR
EGコプロセッサから戻るDstバス110を様々な出
ポート: StData58、ベース50、Src15
4、Src256にバイパスする回路を含んでいる。デ
スティネーション・バイパスは、いくつかのわずかな相
違はあるものの実質的にはロード・バイパス機構に等し
い。 Dstバスの幅はたった64ビットなので、2つしかレ
ジスタをバイパスすることができないため、デスティネ
ーション・バイパスにおける論理装置は、実際には更に
簡単になる。ロード・バイパスにおいて、レジスタ・ア
ドレス比較論理装置は、 LdData バスの幅が1
28ビットなので、4つのレジスタをバイパスする能力
を処理しなければならない。これら相違以外は、論理装
置はロード・バイパス回路とほとんど等しい。
【0056】Src1 および Src2 MUXSr
c1 および Src2 MUX26は、Src1 お
よびSrc2 バスの32ビット・オペランドをドライ
ブするため、2ワード32ビット・ソースRAMデータ
の1つ、または SFRInBus のいずれかを選択
するのに必要なマルチプレクサを含んでいる。論理ブロ
ックは、 Src1Hi バスをドライブするバッファ
を含み、必要な場合全64ビット・ソースを供給する。 3つの可能なソースを単一ワードの Src オペラン
ドにマルチプレックスするのに必要な制御は、SFRI
nBus  をエネーブルする場合、論理装置を知らせ
る LdStIn フィールドとともに S1Adr(
または S2Adr)のLSBである。Src1Hi 
バスおよび Src2Hiバスは、データがEUまたは
REGコプロセッサにより必要とされているかどうかに
関係なくドライブされる。
【0057】外部インタフェイス 以下の説明は、図1に示すようにRFを他の論理ブロッ
クを接続している主なバスと信号につての概要を述べて
いる。メモリ・インタフェイス・バス以下のバスは、R
FからおよびRFに実際のデータを伝達する。
【0058】LdData(0:127)  これは、
メモリ・インタフェイス(外部メモリ、データ・キャッ
シュ他)から情報をリターンする128ビット・ロード
・データ・バスである。
【0059】StData(0:127)  これは、
メモリ・インタフェイスに情報を送る128ビットスト
ア・データ・バスである。ベース(0:31)ベース・
バスは、ロードまたはストアのメモリ・アドレスを指定
するメモリ・インタフェイスに送られる32ビット・ベ
ース・アドレス・バスである。
【0060】LdaBus(0:31)  これは、レ
ジスタに記憶されるようインストラクション・シーケン
サ(IS)により送られた32ビット・ロード有効アド
レス・バスである。
【0061】以下のバスは、制御およびレジスタ・アド
レス情報を伝達し、上記データ・バスに関する種類およ
びロケーション情報を指定する。全レジスタ・アドレス
は7ビットである。BasAdr  これは、ベース・
バスをドライブするのに使用されるべきレジスタのアド
レスである。
【0062】LdAdrOut    ロード・アドレ
ス・アウト・バスは、いくつかの場合に使用される。そ
れは、ロード・インストラクションにスコアボードされ
るべき開始レジスタ(たとえばクォード・ワード・アク
セスにおいてG0)を指定するISにより、opコード
とともにRFに送られる。それは、またストア・インス
トラクションに関して StData バスに送られる
べき開始レジスタを指定するのに使用される。最後に、
それは、LDA(ロード有効アドレス)インストラクシ
ョンに関しスコアボードされるべきレジスタのアドレス
を含んでいる。
【0063】LdAdIn    これは、メモリ・イ
ンタフェイスまたはISからリターンするロードまたは
LDAデータのレジスタ・アドレスである。それは、デ
ータがいつでもコアにリターンできる場合にドライブさ
れる。
【0064】TypeOut (0:3)  この4ビ
ット・フィールドは、サブワード・アクセスに使用され
る拡張の長さおよび種類を指定する。それは、opコー
ドおよび  LdAdrOut バストともにISによ
りドライブされる。 それは、ロードに関しどのレジス
タがスコアボード(およびチェック)するか、およびス
トアに関しどのレジスタが StData バスをドラ
イブするかを決定するのに使用される。
【0065】TypeIn (0:3)  これは、デ
ータ・キャッシュまたは外部メモリからデータが復帰す
るのを待機している、メモリ・インタフェイスによりト
ラップされた TypeOut  フィールドである。 それは、LdAdrIn  バスとともにリターンされ
る。
【0066】LdStOut (0:3)  これは、
メモリ演算のどの特色、すなわちロード、LDA、スト
アまたはインストラクション・フェッチが要求されてい
るかを決定する。それは、TypeIn および Ld
AdrIn フィールドとともに送られる。
【0067】LdStIn (0:3)  これは、メ
モリ・インタフェイス(ロードに関し)またはIS(L
DAに関し)により送り返された LdStOut フ
ィールドである。 それは、TypeIn および  LdAdrIn フ
ィールドとともにリターンされる。
【0068】LdValid   メモリ・インタフェ
イスによりドライブされるこの信号は、バリド・データ
が LdData バスに配置される場合アサートされ
る。
【0069】MemScbok    RFによりドラ
イブされるこの信号は、カレント・メモリ形式インスト
ラクションにより使用されるレジスタがフリーでないこ
と、およびレジスタが使用中でない場合インストラクシ
ョンを再発行しなければならないことを論理ブロックの
残りに示す。 それは、以下に示されている Scbok  信号に類
似している。
【0070】レジスタ実行バス 以下のバスは、RFにおよびRFからデータを伝達する
。Src1Hi,Src1   これら2つの32ビッ
ト・バスは、EUおよびコプロセッサに送られる64ビ
ット・ソース・オペランド#1を形成している。
【0071】Src2Hi,Src2   これら2つ
の32ビット・バスは、EUおよびコプロセッサに送ら
れる64ビット・ソース・オペランド#2を形成してい
【0072】DstHi#,DstLo#    こ
れは、EUおよびコプロセッサが、実行される演算の結
果をリターンするのに使用する64ビット・デスティネ
ーション・バスを構成している。これらバスは、ネガテ
ィブ・トゥルーである。
【0073】SFRInBus (0:31)   こ
れは、それらがレジスタであるかのように、外部コア論
理機能を読出すことができる32ビット特殊機能レジス
タ・バスである。レジスタ・アドレス・フィールドがS
FRレジスタ・アドレスに整合している場合、SFRI
nBus  は、RFによりSrc1 または Src
2 バスをドライブすることができる。
【0074】以下のバスは、RFにおよびRFからレジ
スタ・アドレス情報を伝達する。SIAdr   これ
は、Src1  バスをドライブするのに使用されるレ
ジスタのアドレスである。S2Adr   これは、S
rc2  バスをドライブするのに使用されるレジスタ
のアドレスを指定する。DstAdrOut   これ
は、実行されるべき演算のデスティネーションを記憶す
るのに使用されるレジスタのアドレスである。DstA
drIn    これは、DstHi および Dst
Lo  バスにリターンするデータに関するレジスタ・
アドレスである。Scbok   この信号は、リソー
スがレジスタ実行演算に使用できないとアサートされた
時を示す。リソースは、他の演算により使用されている
レジスタまたはビジーである全装置(EU、DSPコプ
ロセッサなど)であってもよい。
【0075】スコアボーディング演算の説明図5は、ス
コアボーディング演算の流れ図である。各インストラク
ションは、実行するのにあるリソースを使用する必要が
ある。リソースは、レジスタ、特定の機能装置またはバ
スであってもよい。発生されているいずれかのインスト
ラクションが、必要とされているリソースのどれかを欠
いていても、それは停止されなければならない。図3に
示されている第2パイプ・ステージにおいて、リソース
は、インストラクションの発生および開始と同時にチェ
ックされるので、これは演算速度を低下することはない
。各インストラクションは、インストラクションがRE
Gコプロセッサ(リソース)を含んでいるレジスタ形の
インストラクションの場合 Scbokライン102を
、またはインストラクションがMEMコプロセッサ(リ
ソース)を含んでいるメモリ形のインストラクションの
場合MemScbok ライン100をアサートするこ
とにより、条件付きでキャンセルされる。インストラク
ションは、そのインストラクションに関するリソース・
チェックにしたがって再発生される。インストラクショ
ン・セットが単純で規則的なので、このチェックは非常
に簡単である。一旦それが上述したリソース・チェック
をパスすれば、レジスタ・スコアボーディングは、デス
ティネーション・レジスタはビジーであると設定する。 1つまたは多くのサイクル遅れても、結果が戻った場合
、合成レジスタはクリヤされ、ビジーでなく、自由に使
用できるとマークされる。各マルチサイクル機能装置は
、このビジー装置を使用するのに必要な新しいインスト
ラクションを遅延するのに使用されるビジー信号を保持
している。
【0076】インストラクションが発生される場合、い
くつかの事が生じる。Scbok  信号がアサートさ
れる。 情報は、q11においてマシン・バスでドライブされる
。その後、q12において、ソース・オペランドは読出
され、インストラクションを実行するのに必要とされる
リソースは、それらが全て使用可能であるかどうかを調
べるためチェックされる。それらが全て使用可能である
場合、その後、 Scbok信号はアサートされたまま
で、かつインストラクションが公式に発生される。イン
ストラクションにより必要とされるいずれかのリソース
がビジー(それが処理できるほど多くを既に動作してい
るので、前の不完全なインストラクションまたはフルに
より予約された)の場合、Scbok 信号はそれを低
くすることによりデアサートされる。これは、どの装置
も、行われるどんな作用もキャンセルするそのインスト
ラクションを考察し、したがってインストラクションを
決して発生しなかったシステムの休止であるかのように
見えるようにしていることを知らせている。その後、I
Sは、次のクロックにおいてインストラクションを再発
行するよう試み、かつ事象の同じシーケンスが繰り返さ
れる。
【0077】インストラクション・アドレスが、q02
においてチェックされる場合、それがインストラクショ
ン・キャッシュにない場合、すなわちキャッシュ・ミス
がある場合には、フェッチ論理装置は、q11において
マシンのMEM側にフェッチを発生する。このフェッチ
は、フェッチのデスティネーションがレジスタ・ファイ
ルではなくインストラクション・シーケンサであること
を除けば、実にノーマル・クォード・ワード・ロードみ
たいに見える。パイプ2−計算ステージおよびリターン
・ステージ  このステージにおいて、計算が開始され
る(かつそれが単純なALU演算の場合には1つのフェ
ーズで完了する)。演算が長期(1クロック以上かかる
)の場合、結果またはデスティネーション・レジスタは
、ビジーとしてマークされるので、その後の演算は、長
期の演算が完了するまでレジスタ・リソースを遅延する
必要がある。これが、いわゆるレジスタのスコアボーデ
ィングという。ロング・インストラクションの場合それ
をビジーとマークするのに使用されるスコアボード・ビ
ットと呼ばれている32ビット・レジスタ当たりの1ビ
ットがある。このスコアボード・ビットは、q12にお
いてチェックされるものである(レジスタの残りを読出
す場合33番目のビットを読出す)。
【0078】演算が単純なALU形演算の場合、結果は
q21において計算され、q22においてレジスタ・フ
ァイルに復帰される。データがデスティネーション・レ
ジスタに書き込まれる場合、スコアボード・ビットはク
リヤされ、レジスタを他のインストラクションにより使
用できるとマークする。
【0079】コプロセッサは、情報の付加および同時可
能プロセッサである。これらは、インストラクション・
ストリームからインストラクションを、かつレジスタ・
ファイルからオペランドを受信し、これらは、いくつか
の結果を計算しまたはいくつかの機能を行い、しかもこ
れらは通常ある結果をリターンする。
【0080】この機能を更に詳しく説明するため、例と
して、MDUまたは乗算/除算装置を使用している。そ
れは、(加算または減算のような)RECフォーマット
のインストラクションを受け取る。それは、その演算を
完了するのに複数のサイクルを要する。また、それはパ
イプライン・ステージ0および1において加算に等しく
見える。実際、ISおよびRFには、差が認められない
。そのopコードは、それがそれをつかみかつそれに影
響を与え始めるようMDUが推定する範囲に整合する。 q21の最初において、デスティネーション・レジスタ
は、そのスコアボード・ビットを1に設定することによ
り、ビジーであるとマークされる。MDUのパイプ・ス
テージ2、パイプ2は、その計算ステージである。 それは、複数クロック持続する。それがこの結果を計算
している時、この結果を使用するのに必要でない他の演
算を発生することができる。これにより、長い演算の一
部または全てが、他の計算により隠されることがよくあ
る。MDUがその仕事を完了すると、それは、パイプ3
において結果をレジスタ・ファイルに復帰する。MDU
は、結果をレジスタ・ファイルに復帰するデスティネー
ション・バスを使用するのをアービトレートしなければ
ならない。それがアービトレーションを得る場合、それ
は、データを NEXT デスティネーション・バス・
サイクルの後に書き込むことができる。それが計算を完
了した時にそれが結果をリターンすることができるよう
にするため、それがその演算を完了する前に、このアー
ビトレーションを1クロック行ってみなければならない
。それは、結果をどこに配置するかをRFに知らせるよ
うデスティネーション・レジスタ・スペシファイヤ・リ
ターンしなければならない。コプロセッサだけが結果の
行き先を見逃さない。
【0081】このように、代表的なコプロセッサは、演
算の3つのフェーズを有している。すなわち、1)発生
またはエミッティング・フェーズ−リソースがチェック
されかつソースがドライブされる。2)計算フェーズ、
3)復帰フェーズである。(インストラクションを“受
け取る”ISにもパイプ0ステージがあるが、コプロセ
ッサは、これを見ることはない。)
【0082】単一対複数サイクル・コプロセッサコプロ
セッサには2つの異なった種類がある。一方は、実行装
置のような単一サイクルのコプロセッサである。 これは、パイプ・ステージ2において結果を計算しかつ
リターンする。他方は、乗算/除算装置のような複数サ
イクルのコプロセッサである。単一サイクルのコプロセ
ッサをできるだけ簡単に保つのを助けるため、それらは
、実際には決してレジスタ・ファイルへのリターン通路
に関しアービトレートしない。それらは、それらのリソ
ースのどれもスコアボードされないかぎり盲目的にそれ
を得る。たった1つの演算しか、マシン・バスの各部分
において同時にエミットできないので、単一サイクルの
コプロセッサ間での衝突はない。結果をリターンしたい
複数サイクルのコプロセッサは、単一サイクルのインス
トラクションがリターン通路を使用するかどうかを調べ
るよう最初にチェックしなければならない。もし、そう
であるならば、複数サイクルのコプロセッサは待機しな
ければならない。もし、そうでないならば、複数サイク
ルのコプロセッサは、どれが結果をリターンしはじめる
かを調べるため他の複数サイクルのコプロセッサととも
にアービトレートしなければならない。このアービトレ
ーションは、データが実際にRFにリターンされる前に
1つのフル・クロック行われる。この機構において、他
の単一サイクルのコプロセッサは、P10コアに加えら
れ、EUと同様に簡単に働きかつ単一クロックを得るこ
とができる。また、必要な数の複数サイクルのコプロセ
ッサを加えることができ、変化するにはアービトレーシ
ョン論理装置しか必要でない。どれでもほかのものが処
理される。
【0083】前述したコプロセッサは、全てREGフォ
ーマット・コプロセッサで、それらはマシン・バスのR
EG部分で実行する。また、マシン・バスのMEM部分
をワーク・オフするMEMフォーマット・コプロセッサ
もある。したがって、Scbok ライン102は、R
EGコプロセッサに接続しかつこれを制御し、また M
em Scbok ライン100は、MEMコプロセッ
サに接続しかつこれを制御する。これら両タイプのコプ
ロセッサは、単一または複数サイクルであり得る。RA
Mは、いわば単一サイクル・コプロセッサで、バス・コ
ントローラは複数サイクルのコプロセッサである。DM
AまたはMMUはMEMコプロセッサの他の例である。
【0084】これらコプロセッサは全て同じ法則にした
がっている。それらがISから受け取ったインストラク
ションは、q11において発生され、リソースはチェッ
クされ、かつソース・オペランドは、q12においてド
ライブされ、使用されるリソースはq21においてビジ
ーであるとマークされる。その後、これらは、計算する
か、または要求されたアクセスを完了するかのいずれか
を行う。これが完了した時、これらは、レジスタ・ファ
イルに結果をリターンするため(それらの結果を盲目的
にリターンしはじめる単一サイクルのコプロセッサを除
いて)、それらの間でアービトレートしなければならな
い・結果をリターンすることは、デスティネーション・
レジスタ・アドレスのリターンも含んでいるので、RF
は結果をどこに配置すれば良いのか知っている。
【0085】信号の説明 データ・バス マイクロプロセッサのコプロセッサ側には3つのバス、
すなわちソース1バス(Src1H/Src1−64ビ
ット)、ソース2バス(Src2H/Src2 −64
ビット)、およびデスティネーション・バス(Dsth
i/Dstlo −64ビット) がある。全コプロセ
ッサは、レジスタ・ファイル(RF)またはSFRだけ
からオペランドを受け取り、レジスタ・ファイル(RF
)またはSFRだけに結果をリターンする。ソース1/
ソース2は、RFから全コプロセッサにデータをドライ
ブする入力バスである。デスティネーションは、結果を
RFにリターンするためコプロセッサにより使用される
プリチャージド・バスである。全コプロセッサは、これ
らバスをフックするが、大抵の場合、EUはこれら3つ
のバスの下位32ビットを使うだけである。“mov1
”インストラクションにおいてのみ、EUは入力として
ソース1の高32ビットを使用する。また、“mov1
”および“mov−add−64”インストラクション
においてのみ、それはデスティネーション・バスの高3
2ビットをドライブする。
【0086】アドレス・バス 全コプロセッサは、2つのアドレス・バスすなわち D
stadrout (7ビット)および Dstadr
in (7ビット)をフックする。一般的な方策は、イ
ンストラクション・シーケンサ(IS)が、opコード
とデスティネーション・オペランド・アドレスを全コプ
ロセッサに同時にブロードキャストすることである。デ
スティネーション・オペランド・アドレスは、 Dst
adrout  バスにブロードキャストされる。コプ
ロセッサは、このアドレスをラッチしインストラクショ
ンを実行し、結果をデスティネーション・バスにリター
ンする前に、この同じアドレスで Dstadrin 
バスをドライブする。 Dstadrin バスは、R
Fがデスティネーション・オペランドのアドレスに関し
ラッチしかつデコードするプリチャージ・バスである。
【0087】Dstadrin バスとともに、単一ラ
イン、Wr64ビットがある。この信号は(32ビット
値ではなく)64ビット値をリターンする時、コプロセ
ッサによりRFにドライブされる。EUは、“mov1
”または“mov−add−64”インストラクション
のいずれかを実行する時、このラインだけをドライブす
る。この信号も、プリチャージド信号である。
【0088】Wr64ビットは、Dstadrout 
とともにブロードキャストされない。それは、唯一、o
pコードに基づいて決定される。したがって、適当なス
コアボード・ビットが設定されるように、レジスタ・フ
ァイルは、64ビット値をリターンする全インストラク
ションを検出することができなければならない。
【0089】opコード(およびopコードL)インス
トラクションのopコードは、最高12ビットの長さで
ある。これらの8ビットは、4インストラクション・フ
ォーマット:REG、MEM、COBR、CTRLの1
つにおけるopコードを表している。コプロセッサは、
opコード・スペースの1/4を表しているREGフォ
ーマット・インストラクションを実行するだけである。 したがって、これら8ビットに関し、インストラクショ
ン・シーケンサは、“opコード”バスで6ビットだけ
をコプロセッサにブロードキャストする。このバスにお
いてはREGフォーマット・インストラクション形式を
意味している。4つの他のビットは、REGフォーマッ
ト・スペースにおけるインストラクションをデコードす
る。これらは、“opコード”ラインでブロードキャス
トされる。“opコード”バスおよび“opコード1”
バスは、両方ともプリチャージド・バスである。
【0090】Scbok この信号は、EU4への入力および出力信号の両方であ
る。パイプ・ステージ1のフェーズ2において、 Sc
bok  ライン102は、EUに関する限り入力であ
る。この時それが低にされるならば、それは、EUが必
要としているリソースがフリーではない(すなわち、レ
ジスタがデスティネーションとして使用される)か、ま
たは他の単一サイクル・コプロセッサがフォルトしたか
または援助を必要としているかのいずれかを示している
。いずれの場合にも、EUはそのインストラクションを
実行しない。
【0091】パイプ・ステージ2、フェーズ2において
、 Scbok102は、EUに関する限り出力である
。 Scbok  は、EU障害または事象の場合、E
Uにより低くされるが、EUが行っている現在の演算は
続行する。このステージにおける Scbok  の引
き下げは、そのパイプにおける次のインストラクション
の実行を停止し、インストラクション・シーケンサは障
害または事象ハンドラの実行を開始することができる。
【0092】Cceuidq12 および Cceui
dq22これは、パイプ1、フェーズ2において、IS
がコンディション・コード(CCC)をEUに送る3ビ
ット・バスである。EUはCCCを修正できる唯一の装
置である。それは、(必要であるならば)パイプ2、フ
ェーズ1においてそのように行い、かつ次のフェーズ2
〜パイプ2、フェーズ2において修正されたCCCをI
Sにリターンする。 Cceuidq22  は、CC
Cがリターンされる3ビット・バスである。
【0093】Euwrite この信号は、コプロセッサのアービトレーション論理装
置の一部である。全コプロセッサは、デスティネーショ
ン・バスを介してレジスタ・ファイルに結果をリターン
しなければならないので、コプロセッサは、このバスに
関してアービトレートしなければならない。EU装置は
、最も高い優先順位のコプロセッサであると考えられる
。EUは、それ自体では、待機しないで必要とされてい
る場合デスティネーション・バスを使用する。 Euw
rite  信号は、コプロセッサ・アービトレーショ
ン機構の基本部分である。それは、それがデスティネー
ション・バスを必要とした場合、EUにより発生され、
かつそれらが同時にバスを使用することがないように他
の全コプロセッサにブロードキャストされる。一般に、
結果をリターンすることを望んでいる他の全コプロセッ
サは、EUがバスを使用していないスロットを待たなけ
ればならない。
【0094】図4は、EUのタイミングを示している。 全コプロセッサ・インストラクションは、パイプライン
されている。opコード112は、パイプ1,フェーズ
1において、デスティネーション・オペランドのアドレ
ス120とともに、ID8のISにより全コプロセッサ
にブロードキャストされる。(opコード/opコード
1および Dstadrout  バスは、両方ともフ
ェーズ2ごとにプリチャージされ、フェーズ1において
ドライブされる。)この情報は、全コプロセッサ(2,
4など)によりラッチされる。インストラクションはデ
コードされ、ソース・オペランドは、パイプ1,フェー
ズ2において Src1/Src2 バスにドライブさ
れかつ保持される。このパイプ・ステージにおいて、 
Scbok 102も、インストラクションを実行すべ
きコプロセッサによりチェックされる。それが低い場合
、それは次の場合を示している。(1)まだ実行されて
いる他のインストラクションがそのリソースを使用して
いるので、インストラクションを完了するのに必要とさ
れる1つ以上のリソース(すなわち、Src1, Sr
c2, Dst レジスタ)が使用可能でない。この場
合、Scbok はRFにより低くされる。(2)他の
単一サイクル・コプロセッサ(コプロセッサ“B”)は
呼称したか、または援助を要求し、Scbok を低く
する。この場合、“B”は、正しくはないが次のインス
トラクションにより必要とされるその結果データを他の
プロセッサが使用するのを妨げるよう Scbokを低
くする。
【0095】上記の場合のいずれかが起きても、コプロ
セッサは現インストラクションの実行を継続するのを阻
止される。それは、変わらない全ての状態情報を残しか
つアドレスまたはデータ・バスのどれもドライブしない
。1の場合が起きた時、インストラクションはISによ
りスケジュールされ、次のフェーズ1においてリブロー
ドキャストされる。2の場合が起きた時、ISは障害/
アシスト・ルーチンに飛び越す。
【0096】総称コプロセッサがそのインストラクショ
ンを実行するため無限サイクルを要する場合にも、いず
れの場合においてもEUは、インストラクションを実行
するのにわずか1フェーズ、すなわちパイプ2のフェー
ズ1しか必要でない。図3のタイミング図は、パイプ1
のフェーズ2においてセット・アップするデータ路制御
ラインを示している。それらは、次のインストラクショ
ン実行・フェーズ1においてスタティックである。演算
の結果は、インストラクション実行フェーズにおいてラ
ッチされ、かつ結果がDstバスにドライブされる場合
、次のフェーズ2を通して保持される。
【0097】一般に、コプロセッサは、結果を保持する
ことができる一方、それらは結果をリターンするため、
 Dstadrin とDstバスに関しそれら自身の
間でアービトレートする。これは、EUのトゥルーでは
ない。EUは1つ以上のサイクルに関する結果を保持す
るハードウェアを含んでいない。したがって、それは、
パイプ2のフェーズ1において結果をリターンしなけれ
ばならない。それが Dstadrin アドレス・バ
スおよびDstバスへのアクセスを有していることを保
証するため、EUは、EUが結果をレジスタにリターン
することを必要としているどの演算に関しても Euw
rite ラインをアサートする。 Scbok とと
もに Euwrite  は、それらがパイプ2のフェ
ーズ1において Dstadrin アドレス・バスを
、およびパイプ2のフェーズ2においてDstバスを使
用することができるかどうかを他のプロセッサに示す。 特に、他のコプロセッサは、 Euwrite と S
cbok が両方とも高くないならば、 Dstadr
in およびDstバスをドライブすることができる。  Euwrite 低/Scbok 高は、EU がバ
スを必要としていないことを示している。これは、バス
を使用する他のコプロセッサに関しては“前進”である
。 Euwrite 高/Scbok低は、EUがバス
を使用する予定であっても、リソースが無いため、また
は他の単一サイクルのコプロセッサの障害のため、それ
は妨げられることを示している。いずれの場合にも、E
Uは次のサイクルにおいて Dstadrin バスも
Dstバスも使用しない。したがって、それは他のコプ
ロセッサにより自由に使用される。本発明について実施
例に基づいて説明してきたが、本発明は、本発明の思想
から離れることなく様々に改変し得ることは当業者には
明白であろう。
【図面の簡単な説明】
【図1】本発明を実施したマイクロプロセッサの主要な
構成要素の各機能ブロック図である。
【図2】図1のレジスタ・ファイル6の更に詳しいブロ
ック図である。
【図3】レジスタ・ファイルに関するスコアボーディン
グ演算のタイミング図である。
【図4】実行装置に関するスコアボーディング演算のタ
イミング図である。
【図5】スコアボーディング演算を実行する図2のレジ
スタ・ファイルにおける論理の流れ図である。
【符号の説明】
2  乗算/除算装置 4  実行装置 6  レジスタ・ファイル 8  インストラクション・デコーダ 9  メモリ・インタフェイス装置 10  ロード・アライメント・ブロック12  スト
ア・アライメント・ブロック14  ベースMUX 16  ロード・バイパス 18  RAMアレイ

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】  opコード・フィールドを含んでいる
    カレント・マイクロインストラクションを伝達するマイ
    クロインストラクション・バスと主メモリとに接続し得
    るデータ・プロセッサにおいて使用されるリソース・ス
    コアボーダであって、複数のレジスタから成り、かつ、
    各レジスタに関連したスコアボード・ビットを含んでい
    るレジスタ・アレイと、第1状態にドライブされた場合
    、上記マイクロインストラクション・バスにおけるカレ
    ント・レジスタ形式のマイクロインストラクションによ
    り使用されるリソースがレジスタ実行演算に関して使用
    可能であることを示し、かつ第2状態にドライブされた
    場合、上記マイクロインストラクション・バスにおける
    カレント・レジスタ形式のマイクロインストラクション
    により使用されるリソースがレジスタ実行演算に関して
    使用不能であることを示し、かつ最初は上記第1状態に
    ドライブされている Scbok  ラインと、それら
    が全て使用可能であるかどうかを調べるためインストラ
    クションを実行するのに必要とされるリソースをチェッ
    クする装置と、上記インストラクションが単一サイクル
    のインストラクションかどうかを決定するため上記イン
    ストラクションの上記opコード・フィールドをチェッ
    クする装置と、上記インストラクションが単一サイクル
    のインストラクションで、かつインストラクションによ
    り必要とされるリソースがビジーであるならば、上記 
    Scbok 信号を上記第2状態にドライブする装置と
    、から成ることを特徴とするリソース・スコアボーダ。
  2. 【請求項2】  カレント・マイクロインストラクショ
    ンを伝達するマイクロインストラクション・バスと主メ
    モリとに接続し得るデータ・プロセッサにおいて、A.
    上記マイクロインストラクション・バスのカレント・マ
    イクロインストラクションがバリドであることを知らせ
    るよう、Scbok ラインを第1状態にドライブする
    過程と、 B.クロック・サイクルの第1フェーズにおいて、マシ
    ン・バスに情報をドライブする過程と、C.上記クロッ
    ク・サイクルの第2フェーズにおいて、上記マイクロイ
    ンストラクションのソース・オペランドを読み出す過程
    と、 D.それらが全て使用可能かどうか調べるため、インス
    トラクションを実行するのに上記オペランドにより必要
    とされるリソースをチェックする過程と、E.上記イン
    ストラクションにより必要とされるいずれか1つのリソ
    ースがビジーであるならば、上記 Scbok信号を上
    記第2状態にドライブする過程と、F.インストラクシ
    ョンを決して発行することがないシステムの休止のよう
    に見せるため、上記インストラクションを実行すること
    に関して行われるどんな仕事も、全てのリソースにキャ
    ンセルさせる過程と、G.次のクロック・サイクルにお
    いて上記インストラクションを再発行する過程と、から
    成ることを特徴とするデータ処理方法。
  3. 【請求項3】  opコード・フィールドを含んでいる
    カレント・マイクロインストラクションを伝達するマイ
    クロインストラクション・バスと主メモリとに接続でき
    、かつリソース・スコアボーダと、複数のレジスタから
    なると共に各レジスタに関連したスコアボード・ビット
    を含んでいるレジスタ・アレイとを有するデータ・プロ
    セッサにおいて、 A.上記マイクロインストラクション・バスにおけるカ
    レント・レジスタ形式のマイクロインストラクションに
    より使用されるリソースが、レジスタ実行オペレーショ
    ンに関して使用可能であることを示すため、Scbok
     ラインを第1状態にドライブする過程と、 B.それらが全て使用可能かどうか調べるようインスト
    ラクションを実行するのに必要とされるリソースをチェ
    ックする過程と、 C.上記インストラクションが単一サイクルのインスト
    ラクションかどうかを決定するため、上記インストラク
    ションの上記opコード・フィールドをチェックする過
    程と、 D.上記インストラクションが単一サイクルのインスト
    ラクションで、インストラクションにより必要とされる
    リソースがビジーであるならば、リソースがビジーであ
    ると示すよう、上記 Scbok  信号を第2状態に
    ドライブする過程と、から成ることを特徴とするデータ
    処理方法。
JP3053202A 1990-02-28 1991-02-26 リソース・スコアボーダおよびデータ処理方法 Pending JPH04218836A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/486,407 US5185872A (en) 1990-02-28 1990-02-28 System for executing different cycle instructions by selectively bypassing scoreboard register and canceling the execution of conditionally issued instruction if needed resources are busy
US486,407 1990-02-28

Publications (1)

Publication Number Publication Date
JPH04218836A true JPH04218836A (ja) 1992-08-10

Family

ID=23931764

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3053202A Pending JPH04218836A (ja) 1990-02-28 1991-02-26 リソース・スコアボーダおよびデータ処理方法

Country Status (4)

Country Link
US (1) US5185872A (ja)
JP (1) JPH04218836A (ja)
GB (1) GB2241802B (ja)
HK (1) HK56195A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018165913A (ja) * 2017-03-28 2018-10-25 富士通株式会社 演算処理装置、情報処理装置、及び演算処理装置の制御方法

Families Citing this family (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5499348A (en) * 1990-02-27 1996-03-12 Matsushita Electric Industrial Co., Ltd. Digital processor capable of concurrently executing external memory access and internal instructions
JP2622008B2 (ja) * 1990-03-08 1997-06-18 甲府日本電気株式会社 情報処理装置
US5428811A (en) * 1990-12-20 1995-06-27 Intel Corporation Interface between a register file which arbitrates between a number of single cycle and multiple cycle functional units
US5313605A (en) * 1990-12-20 1994-05-17 Intel Corporation High bandwith output hierarchical memory store including a cache, fetch buffer and ROM
JPH04367963A (ja) * 1991-06-15 1992-12-21 Hitachi Ltd 共有記憶通信方法
US5539911A (en) * 1991-07-08 1996-07-23 Seiko Epson Corporation High-performance, superscalar-based computer system with out-of-order instruction execution
ATE291755T1 (de) * 1991-07-08 2005-04-15 Seiko Epson Corp Risc-prozessor mit erweiterbarer architektur
US5493687A (en) 1991-07-08 1996-02-20 Seiko Epson Corporation RISC microprocessor architecture implementing multiple typed register sets
DE69311330T2 (de) * 1992-03-31 1997-09-25 Seiko Epson Corp., Tokio/Tokyo Befehlsablauffolgeplanung von einem risc-superskalarprozessor
WO1993022722A1 (en) * 1992-05-01 1993-11-11 Seiko Epson Corporation A system and method for retiring instructions in a superscalar microprocessor
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
JP3531166B2 (ja) * 1992-12-31 2004-05-24 セイコーエプソン株式会社 レジスタ・リネーミングのシステム及び方法
US5388245A (en) * 1993-06-01 1995-02-07 Intel Corporation Memory arbitration method and apparatus for multiple-cycle memory coprocessors employing a data cache unit and stack RAM
US6154828A (en) * 1993-06-03 2000-11-28 Compaq Computer Corporation Method and apparatus for employing a cycle bit parallel executing instructions
US5826069A (en) * 1993-09-27 1998-10-20 Intel Corporation Having write merge and data override capability for a superscalar processing device
US5420991A (en) * 1994-01-04 1995-05-30 Intel Corporation Apparatus and method for maintaining processing consistency in a computer system having multiple processors
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
US5559976A (en) * 1994-03-31 1996-09-24 International Business Machines Corporation System for instruction completion independent of result write-back responsive to both exception free completion of execution and completion of all logically prior instructions
EP0815507B1 (en) * 1995-02-14 2013-06-12 Fujitsu Limited Structure and method for high-performance speculative execution processor providing special features
EP0747923A1 (en) 1995-06-09 1996-12-11 VIDEOCOLOR S.p.A. Deflection yoke locking arrangement
US6560695B1 (en) * 1995-11-16 2003-05-06 International Business Machines Corporation Dynamic pipe staging adder
US5983340A (en) * 1995-12-07 1999-11-09 Conexant Systems, Inc. Microprocessor system with flexible instruction controlled by prior instruction
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
US6070235A (en) * 1997-07-14 2000-05-30 International Business Machines Corporation Data processing system and method for capturing history buffer data
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
US6434689B2 (en) * 1998-11-09 2002-08-13 Infineon Technologies North America Corp. Data processing unit with interface for sharing registers by a processor and a coprocessor
US7117342B2 (en) * 1998-12-03 2006-10-03 Sun Microsystems, Inc. Implicitly derived register specifiers in a processor
US7114056B2 (en) * 1998-12-03 2006-09-26 Sun Microsystems, Inc. Local and global register partitioning in a VLIW processor
US6192466B1 (en) * 1999-01-21 2001-02-20 International Business Machines Corporation Pipeline control for high-frequency pipelined designs
US20080008393A1 (en) * 1999-04-09 2008-01-10 Dave Stuttard Parallel data processing apparatus
US20070242074A1 (en) * 1999-04-09 2007-10-18 Dave Stuttard Parallel data processing apparatus
US8762691B2 (en) 1999-04-09 2014-06-24 Rambus Inc. Memory access consolidation for SIMD processing elements using transaction identifiers
US20080162874A1 (en) * 1999-04-09 2008-07-03 Dave Stuttard Parallel data processing apparatus
US7526630B2 (en) * 1999-04-09 2009-04-28 Clearspeed Technology, Plc Parallel data processing apparatus
US7966475B2 (en) 1999-04-09 2011-06-21 Rambus Inc. Parallel data processing apparatus
US20080162875A1 (en) * 1999-04-09 2008-07-03 Dave Stuttard Parallel Data Processing Apparatus
US7802079B2 (en) * 1999-04-09 2010-09-21 Clearspeed Technology Limited Parallel data processing apparatus
US8174530B2 (en) * 1999-04-09 2012-05-08 Rambus Inc. Parallel date processing apparatus
US8169440B2 (en) 1999-04-09 2012-05-01 Rambus Inc. Parallel data processing apparatus
US8171263B2 (en) * 1999-04-09 2012-05-01 Rambus Inc. Data processing apparatus comprising an array controller for separating an instruction stream processing instructions and data transfer instructions
AU3829500A (en) 1999-04-09 2000-11-14 Clearspeed Technology Limited Parallel data processing apparatus
US6671219B1 (en) * 1999-05-28 2003-12-30 Hitachi, Ltd. Storage, storage method, and data processing system
WO2002042897A2 (en) * 2000-11-27 2002-05-30 Koninklijke Philips Electronics N.V. Data processing apparatus
US7185338B2 (en) * 2002-10-15 2007-02-27 Sun Microsystems, Inc. Processor with speculative multithreading and hardware to support multithreading software
US7526638B1 (en) * 2008-03-16 2009-04-28 International Business Machines Corporation Hardware alteration of instructions in a microcode routine
GB2499277B (en) * 2012-08-30 2014-04-02 Imagination Tech Ltd Global register protection in a multi-threaded processor

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4493020A (en) * 1980-05-06 1985-01-08 Burroughs Corporation Microprogrammed digital data processor employing microinstruction tasking and dynamic register allocation
US4472787A (en) * 1981-08-12 1984-09-18 Rockwell International Corporation System for transferring words on a bus with capability to intermix first attempts and retrys
US4903196A (en) * 1986-05-02 1990-02-20 International Business Machines Corporation Method and apparatus for guaranteeing the logical integrity of data in the general purpose registers of a complex multi-execution unit uniprocessor
US4891753A (en) * 1986-11-26 1990-01-02 Intel Corporation Register scorboarding on a microprocessor chip
US5099421A (en) * 1988-12-30 1992-03-24 International Business Machine Corporation Variable length pipe operations sequencing
US5073855A (en) * 1989-06-30 1991-12-17 Bull Hn Information Systems Inc. Resource conflict detection method and apparatus included in a pipelined processing unit

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018165913A (ja) * 2017-03-28 2018-10-25 富士通株式会社 演算処理装置、情報処理装置、及び演算処理装置の制御方法

Also Published As

Publication number Publication date
GB2241802A (en) 1991-09-11
GB9101091D0 (en) 1991-02-27
GB2241802B (en) 1994-12-07
US5185872A (en) 1993-02-09
HK56195A (en) 1995-04-21

Similar Documents

Publication Publication Date Title
JPH04218836A (ja) リソース・スコアボーダおよびデータ処理方法
US8959315B2 (en) Multithreaded processor with multiple concurrent pipelines per thread
EP0996057B1 (en) Data processor with an instruction unit having a cache and a ROM
JP3618821B2 (ja) 複数の型のオペレーションを同時並列で実行するためのプロセッサコア、およびオペレーションに用いられるオペランドデータを処理し通信する方法
EP1385085B1 (en) High performance risc microprocessor architecture
JP2864421B2 (ja) 命令の多機能ユニットへの同時ディスパッチのための方法及び装置
USH1291H (en) Microprocessor in which multiple instructions are executed in one clock cycle by providing separate machine bus access to a register file for different types of instructions
US7937559B1 (en) System and method for generating a configurable processor supporting a user-defined plurality of instruction sizes
US5838984A (en) Single-instruction-multiple-data processing using multiple banks of vector registers
US6058465A (en) Single-instruction-multiple-data processing in a multimedia signal processor
JP3333196B2 (ja) トラップ処理方法
US5764938A (en) Resynchronization of a superscalar processor
US5961629A (en) High performance, superscalar-based computer system with out-of-order instruction execution
US6839831B2 (en) Data processing apparatus with register file bypass
EP0437044A2 (en) Data processing system with instruction tag apparatus
JP2003114798A (ja) スーパースカラープロセッシングシステムのデータ処理方法
JPS63148331A (ja) リソース・スコアボーダ
US7406587B1 (en) Method and system for renaming registers in a microprocessor
US5428811A (en) Interface between a register file which arbitrates between a number of single cycle and multiple cycle functional units
US6378061B1 (en) Apparatus for issuing instructions and reissuing a previous instructions by recirculating using the delay circuit
JPH09237184A (ja) 命令実行方法および命令実行装置
US6092184A (en) Parallel processing of pipelined instructions having register dependencies
JPH06266556A (ja) データ処理装置
GB2269924A (en) Register scoreboarding in a pipelined microprocessor
WO1995016955A1 (en) Load latency of zero for floating point load instructions using a load data queue