JPH02208729A - マイクロコード式実行装置での並列動作による複数機能装置の制御 - Google Patents
マイクロコード式実行装置での並列動作による複数機能装置の制御Info
- Publication number
- JPH02208729A JPH02208729A JP1239810A JP23981089A JPH02208729A JP H02208729 A JPH02208729 A JP H02208729A JP 1239810 A JP1239810 A JP 1239810A JP 23981089 A JP23981089 A JP 23981089A JP H02208729 A JPH02208729 A JP H02208729A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- unit
- instructions
- queue
- functional
- 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
Links
Classifications
-
- 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/30145—Instruction analysis, e.g. decoding, instruction word fields
- G06F9/3016—Decoding the operand specifier, e.g. specifier format
- G06F9/30167—Decoding the operand specifier, e.g. specifier format of immediate specifier, e.g. constants
-
- 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/30098—Register arrangements
- G06F9/30101—Special purpose registers
-
- 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/3854—Instruction completion, e.g. retiring, committing or graduating
-
- 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
- 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/3861—Recovery, e.g. branch miss-prediction, exception handling
- G06F9/3863—Recovery, e.g. branch miss-prediction, exception handling using multiple copies of the architectural state, e.g. shadow registers
-
- 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/3867—Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
-
- 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/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
本出願は、本出願と同時に出願された下記の米国特許出
願に詳しく記載されている計算システムの幾つかの特徴
を開示する: Evans等、デジタルコンピュータの
システム制御装置とサービス処理走置換のインタフェー
ス; Arriold等、マルチプロセッサシステム用
のシステム制御装置を中央処理装置とインタフェースす
る方法及び装置;Gagllardo等、マルチプロセ
ッサシステム用のシステム制御装置をシステム主メモリ
とインタフェースする方法及び手段HD、Fite等、
パイプライン式コンピュータシステムにおける可変数の
潜在的なメモリアクセス衝突を解消する方法及び装置;
D、Fite等、可変長さの命令アーキテクチャにおけ
る複数指定子のデコーディング; D、Fite等、仮
想命令キャッシュリフィルアルゴリズム; Murra
y等・レジスタのパイプライン処理及び同一命令内にお
けるレジスタ変更指定子; Murray等、デジタル
コンピュータ用のデータ依存性の解消による複数命令処
理システム;D、Fite等、パイプライン式プロセッ
サにおける事前処理暗示指定子HD、Ftte等、分岐
予測、Fossu鶴等、デジタルコンビエータ用パイプ
ライン式浮動小数点加算器; Grundmann等、
自己タイミング式レジスタファイル; Beaven等
、パイプライン式コンピュータシステム内のエラーを検
出及び補正する方法及び装置; Flynn等、マルチ
プロセッサシステムでシステム制御装置を用いて交信要
求を仲裁する方法及び手段HD、Fite等、ソースリ
スト、プリンタキュー及び宛先キエー;Webb 、
Jr、等、仮想メモリシステムに基づいたデジタルコン
ピュータの命令パイプライン内でのプリフェッチ命令に
よるメモリアクセス実行の処理;11ethering
ton等、デジダルコンピュータシステム内で仮想から
物理メモリアドレスへの変換を制御する方法及び装置;
Hetherington等、エラー補正能力による
バッファへの書き戻し; Plynn等、マルチプロセ
ッサシステムでシステム制御装置を用いて交信要求を仲
裁する方法及び手段;Chinnaswa+my等、マ
ルチプロセッサシステムにおけるシステム装置間でのデ
ータトランザクション用モジュラ−クロスバ−相互接続
ネットワーク;Po1zin等、マルチプロセッサシス
テム用のシステム制御装置を入/出力装置とインタフェ
ースする方法及び装置: Gagliardo等、マル
チプロセッサシステム用のシステム制御装置をシステム
主メモリとインタフェースする手段で用いるためのメモ
リ構成;及びGagliardo等、システムモジュー
ル間でのDRAM*J御信号をエラーチエツクする方法
及び手段。
願に詳しく記載されている計算システムの幾つかの特徴
を開示する: Evans等、デジタルコンピュータの
システム制御装置とサービス処理走置換のインタフェー
ス; Arriold等、マルチプロセッサシステム用
のシステム制御装置を中央処理装置とインタフェースす
る方法及び装置;Gagllardo等、マルチプロセ
ッサシステム用のシステム制御装置をシステム主メモリ
とインタフェースする方法及び手段HD、Fite等、
パイプライン式コンピュータシステムにおける可変数の
潜在的なメモリアクセス衝突を解消する方法及び装置;
D、Fite等、可変長さの命令アーキテクチャにおけ
る複数指定子のデコーディング; D、Fite等、仮
想命令キャッシュリフィルアルゴリズム; Murra
y等・レジスタのパイプライン処理及び同一命令内にお
けるレジスタ変更指定子; Murray等、デジタル
コンピュータ用のデータ依存性の解消による複数命令処
理システム;D、Fite等、パイプライン式プロセッ
サにおける事前処理暗示指定子HD、Ftte等、分岐
予測、Fossu鶴等、デジタルコンビエータ用パイプ
ライン式浮動小数点加算器; Grundmann等、
自己タイミング式レジスタファイル; Beaven等
、パイプライン式コンピュータシステム内のエラーを検
出及び補正する方法及び装置; Flynn等、マルチ
プロセッサシステムでシステム制御装置を用いて交信要
求を仲裁する方法及び手段HD、Fite等、ソースリ
スト、プリンタキュー及び宛先キエー;Webb 、
Jr、等、仮想メモリシステムに基づいたデジタルコン
ピュータの命令パイプライン内でのプリフェッチ命令に
よるメモリアクセス実行の処理;11ethering
ton等、デジダルコンピュータシステム内で仮想から
物理メモリアドレスへの変換を制御する方法及び装置;
Hetherington等、エラー補正能力による
バッファへの書き戻し; Plynn等、マルチプロセ
ッサシステムでシステム制御装置を用いて交信要求を仲
裁する方法及び手段;Chinnaswa+my等、マ
ルチプロセッサシステムにおけるシステム装置間でのデ
ータトランザクション用モジュラ−クロスバ−相互接続
ネットワーク;Po1zin等、マルチプロセッサシス
テム用のシステム制御装置を入/出力装置とインタフェ
ースする方法及び装置: Gagliardo等、マル
チプロセッサシステム用のシステム制御装置をシステム
主メモリとインタフェースする手段で用いるためのメモ
リ構成;及びGagliardo等、システムモジュー
ル間でのDRAM*J御信号をエラーチエツクする方法
及び手段。
(産業上の利用分野)
本発明は一般にデジタルコンピュータに関し、より詳し
くは複数命令の処理時、デジタルコンピュータにおける
それら命令の実行前にデータ依存性を解消するシステム
に関する。この発明は特に、可変長の複合命令セット(
CIS)アーキテクチャを用いたパイプライン式デジタ
ルコンピュータシステムにおける複数命令の事前処理に
適用可能である。
くは複数命令の処理時、デジタルコンピュータにおける
それら命令の実行前にデータ依存性を解消するシステム
に関する。この発明は特に、可変長の複合命令セット(
CIS)アーキテクチャを用いたパイプライン式デジタ
ルコンピュータシステムにおける複数命令の事前処理に
適用可能である。
(従来の技術)
命令の事前処理は、多数の命令の実行をスピードアップ
するために、デジタルコンピュータで使われている普通
の手段である。事前処理の動作は一般に、命令を記憶す
るメモリと命令を実行する実行装置との間に介在された
命令装置によって行われる。事前処理動作には例えば、
それぞれの命令が実行装置内ヘロードされるとき、オペ
ランドが容易に利用可能となるように、連続する命令内
のオペランド指定子によって識別されたオペランドをブ
リフェッチすることが含まれる。現命令が実行装置で実
行されている間に、命令装置が後続命令のための事前処
理動作を行うことによって、任意のあるシーケンスの命
令に必要な処理時間全体を減少している。
するために、デジタルコンピュータで使われている普通
の手段である。事前処理の動作は一般に、命令を記憶す
るメモリと命令を実行する実行装置との間に介在された
命令装置によって行われる。事前処理動作には例えば、
それぞれの命令が実行装置内ヘロードされるとき、オペ
ランドが容易に利用可能となるように、連続する命令内
のオペランド指定子によって識別されたオペランドをブ
リフェッチすることが含まれる。現命令が実行装置で実
行されている間に、命令装置が後続命令のための事前処
理動作を行うことによって、任意のあるシーケンスの命
令に必要な処理時間全体を減少している。
(発明が解決しようとする課題)
設計者はしばしば命令を種類別に分け、各種類毎に最適
な専用のハードウェアを設計することがある。この専用
ハードウェアは、はとんど変えられないようにマイクロ
コード化されている。その理由は、複雑な命令に必要な
込み入った動作を行うのに繰り返し使用可能な、規則的
で、しかもフレキシブルなデータバスを複雑な命令は必
要とするからである。正確な動作はデータに依存し、マ
イクロコードの解釈を必要とすることが多い。普通のマ
イクロコードの実行では、命令を発生し、ソースオペラ
ンドをフェッチし、実行してその結果を記憶する。実行
は単一の連鎖マイクロコードによって行われ、各機能装
置はかかるマイクロコードでシリアルに制御されていた
。
な専用のハードウェアを設計することがある。この専用
ハードウェアは、はとんど変えられないようにマイクロ
コード化されている。その理由は、複雑な命令に必要な
込み入った動作を行うのに繰り返し使用可能な、規則的
で、しかもフレキシブルなデータバスを複雑な命令は必
要とするからである。正確な動作はデータに依存し、マ
イクロコードの解釈を必要とすることが多い。普通のマ
イクロコードの実行では、命令を発生し、ソースオペラ
ンドをフェッチし、実行してその結果を記憶する。実行
は単一の連鎖マイクロコードによって行われ、各機能装
置はかかるマイクロコードでシリアルに制御されていた
。
(課題を解決するための手段)
各種種類の命令を実行するパイプライン式プロセッサの
性能を高めるため、各種類の命令はパラレルに動作され
るそれぞれの機能装置によって実行される。別々の機能
装置をそれぞれ有する命令の種類には、整数命令、浮動
小数点命令、乗算命令、及び除算命令が含まれる。
性能を高めるため、各種類の命令はパラレルに動作され
るそれぞれの機能装置によって実行される。別々の機能
装置をそれぞれ有する命令の種類には、整数命令、浮動
小数点命令、乗算命令、及び除算命令が含まれる。
本発明の別の特徴によれば、各種機能装置のサイクル毎
の動作が独立に制御される。整数装置だけが、命令実行
装置内のマイクロコード実行装置によってマイクロ制御
されるサイクル毎の動作を有する。つまり、シフト演算
も行う整数装置はマイクロコード実行装置によって制御
され、複合可変長の命令セットに含まれる広範囲の整数
及びシフト演算を処理する。他の機能装置もマイクロコ
ードを受は入れるが、それらのサイクル毎の動作はマイ
クロコード制御されない。その代わり他の機能装置は、
命令オペレーションコードをエンコードしたもので、特
定の動作を実行する機能装置を指定する制御コマンドを
受は入れるだけでよい。
の動作が独立に制御される。整数装置だけが、命令実行
装置内のマイクロコード実行装置によってマイクロ制御
されるサイクル毎の動作を有する。つまり、シフト演算
も行う整数装置はマイクロコード実行装置によって制御
され、複合可変長の命令セットに含まれる広範囲の整数
及びシフト演算を処理する。他の機能装置もマイクロコ
ードを受は入れるが、それらのサイクル毎の動作はマイ
クロコード制御されない。その代わり他の機能装置は、
命令オペレーションコードをエンコードしたもので、特
定の動作を実行する機能装置を指定する制御コマンドを
受は入れるだけでよい。
浮動小数点装置などのパイプライン式機能装置では、制
御コマンドがデータと共にパイプライン送りされ、パイ
プライン式動作がデータの依存性を反映するときわずか
に変更可能である。
御コマンドがデータと共にパイプライン送りされ、パイ
プライン式動作がデータの依存性を反映するときわずか
に変更可能である。
本発明のさらに別の特徴によれば、命令結果の退去(リ
タイア)がマイクロコード実行装置によって制御される
代わりに、結果キューを処理するつ別の退去装置に任さ
れる。新たな動作が必要であることをマイクロコード実
行装置が判定し、それぞれの機能装置が占有されていず
、ソースオペランドが利用可能で、しかも宛先が既知で
あれば、エントリは結果キューに挿入される。エントリ
は、結果がそれぞれの機能装置から得られるようになっ
たところで、結果を退去させるために退去装置によって
必要な全ての情報を含む。退去装置は、キューの先頭に
あるエントリ内のタグを読み取り、結果を与えるべき機
能装置を判定することによって結果キューを処理する。
タイア)がマイクロコード実行装置によって制御される
代わりに、結果キューを処理するつ別の退去装置に任さ
れる。新たな動作が必要であることをマイクロコード実
行装置が判定し、それぞれの機能装置が占有されていず
、ソースオペランドが利用可能で、しかも宛先が既知で
あれば、エントリは結果キューに挿入される。エントリ
は、結果がそれぞれの機能装置から得られるようになっ
たところで、結果を退去させるために退去装置によって
必要な全ての情報を含む。退去装置は、キューの先頭に
あるエントリ内のタグを読み取り、結果を与えるべき機
能装置を判定することによって結果キューを処理する。
結果が得られ、エントリによって指定された宛先も得ら
れると、結果はエントリに従って退去され、エントリは
キューから取り除かれる。
れると、結果はエントリに従って退去され、エントリは
キューから取り除かれる。
好ましくは、命令の流れ中に対応する命令が現れた順序
で、動作は結果キュー内にキュー入れされ、また結果は
退去される。これは、ソース指定子をデコードし、ソー
スオペランドをフェッチし、マイクロコードからの結果
を記憶するタスクを軽減するのを助ける。命令の発生と
退去は、マイクロコードによって制御しなくてよ(、単
に“許可2または“不許可”されるだけである。つまり
、割込処理のような、他の装置での実行を除外する処理
をマイクロコードが行っていなければ、他の装置は各自
での実行が許容される。
で、動作は結果キュー内にキュー入れされ、また結果は
退去される。これは、ソース指定子をデコードし、ソー
スオペランドをフェッチし、マイクロコードからの結果
を記憶するタスクを軽減するのを助ける。命令の発生と
退去は、マイクロコードによって制御しなくてよ(、単
に“許可2または“不許可”されるだけである。つまり
、割込処理のような、他の装置での実行を除外する処理
をマイクロコードが行っていなければ、他の装置は各自
での実行が許容される。
発明のその他の目的及び利点は、添付の図面を参照しな
がら、以下の詳細な説明を読み進むことによって明かと
なろう。
がら、以下の詳細な説明を読み進むことによって明かと
なろう。
(実施例)
本発明はさまざまな変更及び代替の態様を取り得るが、
その特定実施例を図面に例示として示し、以下詳しく説
明する。但し、本発明はここに開示される特定の態様に
制限されるものでなく、逆に特許請求の範囲に限定され
た発明の精神及び範囲内にはいる全ての変更、等価及び
代替物を包含するものであることが理解されるべきであ
る。
その特定実施例を図面に例示として示し、以下詳しく説
明する。但し、本発明はここに開示される特定の態様に
制限されるものでなく、逆に特許請求の範囲に限定され
た発明の精神及び範囲内にはいる全ての変更、等価及び
代替物を包含するものであることが理解されるべきであ
る。
次に図面に目を転じ、まず第1図を参照すれば、主メモ
リ10、メモリー〇PUインタフェース装置11、及び
命令装置12と実行袋W13を備えた少なくとも1つの
CPUを含むデジタルコンピュータシステムの一部が示
しである。もちろん、かかるシステムでは、主メモリ1
0を共有することによって追加のCPUを使用できる。
リ10、メモリー〇PUインタフェース装置11、及び
命令装置12と実行袋W13を備えた少なくとも1つの
CPUを含むデジタルコンピュータシステムの一部が示
しである。もちろん、かかるシステムでは、主メモリ1
0を共有することによって追加のCPUを使用できる。
例えば、4つまでのCPUを同時に作動し、共有の主メ
モリ10を介して効率的に交信するのが実用的である。
モリ10を介して効率的に交信するのが実用的である。
データと該データを処理する命令は共に、主メモリ10
内のアドレス可能な記憶ロケーションに記憶されている
。命令は、CPUによって実行すべき動作をコード化さ
れた形で指定するオペレーシッンコード(OPコード)
と、オペランドを突き止める情報を与えるオペランド指
定子とを含む。個々の命令の実行は、複数のもっと小さ
いタスクに分けられる。これらのタスクが、それぞれ目
的に最適な専用で、別々の、独立した機能装置によって
行われる。
内のアドレス可能な記憶ロケーションに記憶されている
。命令は、CPUによって実行すべき動作をコード化さ
れた形で指定するオペレーシッンコード(OPコード)
と、オペランドを突き止める情報を与えるオペランド指
定子とを含む。個々の命令の実行は、複数のもっと小さ
いタスクに分けられる。これらのタスクが、それぞれ目
的に最適な専用で、別々の、独立した機能装置によって
行われる。
各命令は最終的に異なる動作を行うが、各命令が分けら
れたより小さいタスクの多くは全ての命令によって共通
である。一般に、次のステップが命令の実行中に行われ
る:命令フェッチ、命令デコード、オペランドフェッチ
、実行、及び結果の記憶。つまり、専用のパートウェア
段を用いることによって、各ステップがパイプライン動
作で重複可能となり、命令の総スループットを高められ
る。
れたより小さいタスクの多くは全ての命令によって共通
である。一般に、次のステップが命令の実行中に行われ
る:命令フェッチ、命令デコード、オペランドフェッチ
、実行、及び結果の記憶。つまり、専用のパートウェア
段を用いることによって、各ステップがパイプライン動
作で重複可能となり、命令の総スループットを高められ
る。
パイプラインを通じたデータバスは、各パイプライン段
の結果を次のパイプライン段へ転送するための各−組の
レジスタを含む。これらの転送レジスタは、共通のシス
テムクロックに応じてクロック動作される。例えば、第
1のクロックサイクル中には、第1の命令が命令フェッ
チ専用のハードウェアによってフェッチされる。第2の
クロックサイクル中には、フェッチされた命令が転送さ
れ、命令デコードハードウェアによってデコードされる
が、これと同時に次の命令が命令フェッチハードウェア
によってフェッチされる。第3のクロックサイクル中に
は、各命令がパイプラインの次の段へそれぞれシフトさ
れ、新たな命令がフェッチされる。こうして、パイプラ
インが満たされた後、各クロックサイクルの終わりで命
令が完全に実行される。
の結果を次のパイプライン段へ転送するための各−組の
レジスタを含む。これらの転送レジスタは、共通のシス
テムクロックに応じてクロック動作される。例えば、第
1のクロックサイクル中には、第1の命令が命令フェッ
チ専用のハードウェアによってフェッチされる。第2の
クロックサイクル中には、フェッチされた命令が転送さ
れ、命令デコードハードウェアによってデコードされる
が、これと同時に次の命令が命令フェッチハードウェア
によってフェッチされる。第3のクロックサイクル中に
は、各命令がパイプラインの次の段へそれぞれシフトさ
れ、新たな命令がフェッチされる。こうして、パイプラ
インが満たされた後、各クロックサイクルの終わりで命
令が完全に実行される。
このプロセスは、製造環境での組立ラインと似ている。
つまり各作業員が、自分の作業段を通過する各製品に対
して1つの仕事を行うように専用化されている。各仕事
が行われるにつれ、製品は完成に近づく。最終段では、
作業員が割り当てられた仕事を行う度に、完成した製品
が組立ラインから繰り出される。
して1つの仕事を行うように専用化されている。各仕事
が行われるにつれ、製品は完成に近づく。最終段では、
作業員が割り当てられた仕事を行う度に、完成した製品
が組立ラインから繰り出される。
第1図に示した特定システムにおいて、インタフェース
装置11は、平均として命令及び実行量装置12.13
が主メモリ10のアクセス時間よりも速い速度でデータ
を処理するのを可能とする主キャッシュ14を含む。こ
の主キャッシュ14は、データ要素のうち選択された所
定ブロックを記憶する手段、命令装置12から変換バッ
ファ15を介して指定データ要素にアクセスする要求を
受は取る手段、データ要素が主キャッシュに記憶されて
いるブロック内にあるかどうかをチエツクする手段、及
び指定データ要素を含むブロックが主キャシュに記憶さ
れていないとき、指定ブロックのデータを主メモリ10
から読み出し、そのデータブロックを主キャッシュ14
に記憶する手段を含む。言い換えれば、主キャッシュは
主メモリ内に“窓”を設け、命令及び実行装置で必要と
思われるデータを収容している。
装置11は、平均として命令及び実行量装置12.13
が主メモリ10のアクセス時間よりも速い速度でデータ
を処理するのを可能とする主キャッシュ14を含む。こ
の主キャッシュ14は、データ要素のうち選択された所
定ブロックを記憶する手段、命令装置12から変換バッ
ファ15を介して指定データ要素にアクセスする要求を
受は取る手段、データ要素が主キャッシュに記憶されて
いるブロック内にあるかどうかをチエツクする手段、及
び指定データ要素を含むブロックが主キャシュに記憶さ
れていないとき、指定ブロックのデータを主メモリ10
から読み出し、そのデータブロックを主キャッシュ14
に記憶する手段を含む。言い換えれば、主キャッシュは
主メモリ内に“窓”を設け、命令及び実行装置で必要と
思われるデータを収容している。
命令及び実行量装置12.13で必要なデータ要素が主
キャッシュ14内で見つからないと、そのデータ要素は
主メモリ10から得られるが、この処理では、追加のデ
ータを含むブロック全体が主メモリ10から得られ、主
キャッシュ14に書き込まれる。時間とメモリスペース
における局所性の原理によると、命令及び実行量装置が
次のデータ要素を所望する場合、そのデータ要素は前に
アドレスされたデータ要素を含むブロック内で見つかる
確立が高い、従って、命令及び実行量装置12.13に
よって必要なデータ要素を主キャッシュ14がすでに含
んでいる確立が高(なる。−般に、主キャッシュ14は
主メモリ10よりはるかに高い速度でアクセスされるの
で、データ処理システムの平均的性能を実質上低下させ
ることなく、主メモリのアクセス時間はキャッシュより
もその分遅くすることができる。このため、主メモリ1
0はより遅く、より安価なメモリ要素で構成可能である
。
キャッシュ14内で見つからないと、そのデータ要素は
主メモリ10から得られるが、この処理では、追加のデ
ータを含むブロック全体が主メモリ10から得られ、主
キャッシュ14に書き込まれる。時間とメモリスペース
における局所性の原理によると、命令及び実行量装置が
次のデータ要素を所望する場合、そのデータ要素は前に
アドレスされたデータ要素を含むブロック内で見つかる
確立が高い、従って、命令及び実行量装置12.13に
よって必要なデータ要素を主キャッシュ14がすでに含
んでいる確立が高(なる。−般に、主キャッシュ14は
主メモリ10よりはるかに高い速度でアクセスされるの
で、データ処理システムの平均的性能を実質上低下させ
ることなく、主メモリのアクセス時間はキャッシュより
もその分遅くすることができる。このため、主メモリ1
0はより遅く、より安価なメモリ要素で構成可能である
。
変換バッファ15は高速の連想メモリで、最も最近使わ
れる仮想−物理アドレス変換を記憶する。
れる仮想−物理アドレス変換を記憶する。
仮想のメモリシステムでは、1つの仮想アドレスへの参
照によって、所望の情報が得られる前に幾つかのメモリ
参照を行うことができる。しかし、変換バッファ15を
用いる場合、変換は変換バッファ15内で“ヒツトを単
に見いだすことに帰省する。
照によって、所望の情報が得られる前に幾つかのメモリ
参照を行うことができる。しかし、変換バッファ15を
用いる場合、変換は変換バッファ15内で“ヒツトを単
に見いだすことに帰省する。
I10バス16が主メモリ10と主キャッシュ14に接
続され、コマンドと入力データをシステムに伝送し、ま
た出力データをシステムから受は取る。
続され、コマンドと入力データをシステムに伝送し、ま
た出力データをシステムから受は取る。
命令装置12は、主キャッシュ14から命令をフェッチ
するためのプログラムカウンタ17と命令キャッシュ1
8を含む。プログラムカウンタ17は、主メモリ10と
主キャッシュ14の物理メモリロケーションでなく仮想
メモリロケーションにアドレスするのが好ましい。つま
り、プログラムカウンタ17の仮想アドレスは命令が検
索可能となる前に、主メモリ10の物理アドレスに変換
されねばならない、従って、プログラムカウンタ17の
内容はインタフェース装置11に転送され、そこで変換
バッファ15がアドレス変換を行う。命令は変換された
アドレスを用いて、主キャッシュ14内の物理メモリロ
ケーションから検索される。
するためのプログラムカウンタ17と命令キャッシュ1
8を含む。プログラムカウンタ17は、主メモリ10と
主キャッシュ14の物理メモリロケーションでなく仮想
メモリロケーションにアドレスするのが好ましい。つま
り、プログラムカウンタ17の仮想アドレスは命令が検
索可能となる前に、主メモリ10の物理アドレスに変換
されねばならない、従って、プログラムカウンタ17の
内容はインタフェース装置11に転送され、そこで変換
バッファ15がアドレス変換を行う。命令は変換された
アドレスを用いて、主キャッシュ14内の物理メモリロ
ケーションから検索される。
主キャッシュ14は検索された命令を、データリターン
ラインを介して命令キャッシュ18に送る。
ラインを介して命令キャッシュ18に送る。
主メモリ14と変換バッファ15の編成と動作は、Le
vy及びEckhouse 、 Jr、著・コンピュー
タプログラミングとアーキテクチャ、VAX−11、デ
ジタル・イクイップメント社、352−366頁(19
80)、の第11章に詳しく記載されている。
vy及びEckhouse 、 Jr、著・コンピュー
タプログラミングとアーキテクチャ、VAX−11、デ
ジタル・イクイップメント社、352−366頁(19
80)、の第11章に詳しく記載されている。
はとんどの場合、命令キャッシュ18はプログラムカウ
ンタ17によって指定されたアドレスに予め記憶された
命令を有しており、アドレスされた命令は命令バッファ
19へと直ちに転送可能である。アドレスされた命令は
命令バッファ19から命令デコーダ20に送られ、これ
がoPコードと指定子両方をデコードする。オペランド
処理袋W (OPU)21は指定されたオペランドをフ
ェッチし、それらを実行装置13に供給する。
ンタ17によって指定されたアドレスに予め記憶された
命令を有しており、アドレスされた命令は命令バッファ
19へと直ちに転送可能である。アドレスされた命令は
命令バッファ19から命令デコーダ20に送られ、これ
がoPコードと指定子両方をデコードする。オペランド
処理袋W (OPU)21は指定されたオペランドをフ
ェッチし、それらを実行装置13に供給する。
0PU21は仮想アドレスも生じる。すなわち、0PU
21はメモリソース(読取)及び宛先(書込)オペラン
ド用の仮想アドレスを生じる。少なくともメモリ読取オ
ペランドの場合、0PU21がそれらの仮想アドレスを
インタフェース装置11に送り、そこで物理アドレスへ
変換されるようにしなけれればならない。次いで、主キ
ャッシュ14の物理メモリロケーションがアクセスされ
、メモリソースオペランド用のオペランドをフェッチす
る。
21はメモリソース(読取)及び宛先(書込)オペラン
ド用の仮想アドレスを生じる。少なくともメモリ読取オ
ペランドの場合、0PU21がそれらの仮想アドレスを
インタフェース装置11に送り、そこで物理アドレスへ
変換されるようにしなけれればならない。次いで、主キ
ャッシュ14の物理メモリロケーションがアクセスされ
、メモリソースオペランド用のオペランドをフェッチす
る。
各命令では、第1バイトがOPコードを含み、続くバイ
トがデコードされるべきオペランド指定子である。各指
定子の第1バイトは、その指定子についてのアドレシン
グモードを指示する。このバイトは通常半分に分割され
、一方の半分がアドレシングモードを指定し、他方の半
分がアドレシングに使われるレジスタを指定する。19
80年12月23日に発行された5trecker等の
米国特許第4.241.397号に開示されているよう
に、命令は可変長を有するのが好ましい。各種種類の指
定子が同じOPコードで使用可能である。
トがデコードされるべきオペランド指定子である。各指
定子の第1バイトは、その指定子についてのアドレシン
グモードを指示する。このバイトは通常半分に分割され
、一方の半分がアドレシングモードを指定し、他方の半
分がアドレシングに使われるレジスタを指定する。19
80年12月23日に発行された5trecker等の
米国特許第4.241.397号に開示されているよう
に、命令は可変長を有するのが好ましい。各種種類の指
定子が同じOPコードで使用可能である。
命令を処理する第1のステップでは、命令の“OPコー
ド”部分をデコードする。各命令の第1部分は、命令に
よって実施されるべき動作を指定するOPコードからな
る。デコードは、命令デコーダ20でテーブル探索方式
を用いてなされる。
ド”部分をデコードする。各命令の第1部分は、命令に
よって実施されるべき動作を指定するOPコードからな
る。デコードは、命令デコーダ20でテーブル探索方式
を用いてなされる。
命令デコーダ20は、命令を実行するためのマイクロコ
ードのスタートアドレスを探索テーブル内で捜し、その
スタートアドレスを実行装置13に送る。その後実行装
置13が、指示されたスタートアドレスから始まる予め
記憶されたマイクロコードを実行することによって、指
定された動作を行う、また命令デコーダは、ソースオペ
ランド及び宛先オペランド両指定子が命令内のどこで生
じているかを求め、これらの指定子を0PU21へ送る
ことによって、命令の実行前の事前処理も行う。
ードのスタートアドレスを探索テーブル内で捜し、その
スタートアドレスを実行装置13に送る。その後実行装
置13が、指示されたスタートアドレスから始まる予め
記憶されたマイクロコードを実行することによって、指
定された動作を行う、また命令デコーダは、ソースオペ
ランド及び宛先オペランド両指定子が命令内のどこで生
じているかを求め、これらの指定子を0PU21へ送る
ことによって、命令の実行前の事前処理も行う。
探索テーブルは、各々が複数のエントリを有する複数ブ
ロックの配列として編成されている。各エントリは、そ
のブロック及びエントリ指標によってアドレスできる。
ロックの配列として編成されている。各エントリは、そ
のブロック及びエントリ指標によってアドレスできる。
OPコードバイトがブロックにアドレスし、実行点カウ
ンタからのポインタ(命令内の現指定子の位置を示す)
がブロック内の特定エントリを選択する。探索テーブル
の出力は、各指定子毎にデータの文脈(バイト、ワード
など)、データの種類(アドレス、整数など)及びアク
セスモード(読取、書込、訂正など)を指定すると共に
、マイクロコードディスパッチアドレスを実行装置に与
える。
ンタからのポインタ(命令内の現指定子の位置を示す)
がブロック内の特定エントリを選択する。探索テーブル
の出力は、各指定子毎にデータの文脈(バイト、ワード
など)、データの種類(アドレス、整数など)及びアク
セスモード(読取、書込、訂正など)を指定すると共に
、マイクロコードディスパッチアドレスを実行装置に与
える。
命令のデコード後、0PU21はオペランド指定子を解
析し、それらの実行アドレスを計算する;このプロセス
には、GPR(汎用目的レジスタ)を読み取り、場合に
よっては自動インクレメントまたは自動デクレメントに
よってGPHの内容を変更することが含まれる。次いで
、オペランドが実行アドレスからフェッチされて実行装
置13に送られ、その後実行装置が命令を実行し、その
命令用の宛先ポインタによって指示された宛先に結果を
書き込む。
析し、それらの実行アドレスを計算する;このプロセス
には、GPR(汎用目的レジスタ)を読み取り、場合に
よっては自動インクレメントまたは自動デクレメントに
よってGPHの内容を変更することが含まれる。次いで
、オペランドが実行アドレスからフェッチされて実行装
置13に送られ、その後実行装置が命令を実行し、その
命令用の宛先ポインタによって指示された宛先に結果を
書き込む。
命令が実行装置に送られる度に、命令装置はマイクロコ
ードディスパッチアドレスと、(1)ソースオペランド
を見つけられる実行装置レジスタファイル内のロケーシ
ョン、及び(2)結果が記憶されるべきロケーションに
関する一組のポインタを送出する。実行装置内では、−
組のキュー23がマイクロコードディスパッチアドレス
を記憶するフォークキュー、ソースオペランドのロケー
ションを記憶するソースポインタキュー、及び宛先ロケ
ーションを記憶する宛先ポインタキューを含む、これら
の各キューは、複数の命令用データを保持可能なFIF
Oバッファである。
ードディスパッチアドレスと、(1)ソースオペランド
を見つけられる実行装置レジスタファイル内のロケーシ
ョン、及び(2)結果が記憶されるべきロケーションに
関する一組のポインタを送出する。実行装置内では、−
組のキュー23がマイクロコードディスパッチアドレス
を記憶するフォークキュー、ソースオペランドのロケー
ションを記憶するソースポインタキュー、及び宛先ロケ
ーションを記憶する宛先ポインタキューを含む、これら
の各キューは、複数の命令用データを保持可能なFIF
Oバッファである。
また実行装置13は、GPRのコピーとソースオペラン
ドのリストを含むマルチボート式レジスタファイルであ
るソースリスト24も含んでいる。
ドのリストを含むマルチボート式レジスタファイルであ
るソースリスト24も含んでいる。
つまり、ソースポインタキュー内のエントリは、レジス
タオペランド用のGPRロケーションを指し示すか、あ
るいはメモリ及びリテラルオペランド用のソースリスト
を指し示す。インタフェース装置11と命令装置12は
共にソースリスト24内にエントリを書き込み、実行装
置13が命令を実行するのに必要なオペランドをソース
リストから読み出す。命令の実行のため、実行装置13
は命令発生装置25、マイクロコード実行装置26、算
術及び論理演算装置(ALU)22、及び退去装置27
を含む。
タオペランド用のGPRロケーションを指し示すか、あ
るいはメモリ及びリテラルオペランド用のソースリスト
を指し示す。インタフェース装置11と命令装置12は
共にソースリスト24内にエントリを書き込み、実行装
置13が命令を実行するのに必要なオペランドをソース
リストから読み出す。命令の実行のため、実行装置13
は命令発生装置25、マイクロコード実行装置26、算
術及び論理演算装置(ALU)22、及び退去装置27
を含む。
本発明は特に、パイプライン式プロセッサにおいて有用
である。前述したように、パイプライン式プロセッサは
、プロセッサの命令フェッチハードウェアが1つの命令
をフェッチしている間に、他方のハードウェアが第2の
命令のオペレーションコードをデコードし、第3の命令
のオペランドをフェッチし、第4の命令を実行し、第5
の命令の処理後のデータを記憶する。第2図は、次のよ
うな一般的な命令用のパイプラインを示している:AD
DL3 RO,B△12 (R1) 、 R2゜これ
は、変位アドレシングモードを用いた倍長加算である。
である。前述したように、パイプライン式プロセッサは
、プロセッサの命令フェッチハードウェアが1つの命令
をフェッチしている間に、他方のハードウェアが第2の
命令のオペレーションコードをデコードし、第3の命令
のオペランドをフェッチし、第4の命令を実行し、第5
の命令の処理後のデータを記憶する。第2図は、次のよ
うな一般的な命令用のパイプラインを示している:AD
DL3 RO,B△12 (R1) 、 R2゜これ
は、変位アドレシングモードを用いた倍長加算である。
この命令のパイプライン式実行の第1段階では、命令の
プログラムカウンタ(P C’)が生成される;これは
通常、プログラムカウンタを前の命令からインクレメン
トするか、あるいは分岐命令の目標アドレスを用いるこ
とによって行われる。PCはその後、パイプラインの第
1段階で命令キャッシュ18へアクセスするのに使われ
る。
プログラムカウンタ(P C’)が生成される;これは
通常、プログラムカウンタを前の命令からインクレメン
トするか、あるいは分岐命令の目標アドレスを用いるこ
とによって行われる。PCはその後、パイプラインの第
1段階で命令キャッシュ18へアクセスするのに使われ
る。
パイプラインの第3段階では、命令データが命令キャッ
シュ18から得られ、命令デコーダ20によって使われ
るか、あるいは命令バッファ19にロードされる。後で
詳しく述べるように、命令デコーダ20はOPコードと
3つの指定子を1サイクル内でデコードする。デコード
サイクルの終わりに、R1番号がバイト変位と共に0P
U21に送られる。
シュ18から得られ、命令デコーダ20によって使われ
るか、あるいは命令バッファ19にロードされる。後で
詳しく述べるように、命令デコーダ20はOPコードと
3つの指定子を1サイクル内でデコードする。デコード
サイクルの終わりに、R1番号がバイト変位と共に0P
U21に送られる。
段階4では、ROと82両ポインタがキュー装置23に
導かれる。また、0PU21がロケーションR1におけ
るGPRレジスタファイルの内容を読み取り、その値を
指定の変位(12)に加算し、アドレス発生段階の終わ
りに、得られたアドレスをOP READ要求と共にイ
ンタフェース装置ll内の変換バッファ15に送る。同
時に、第2のオベランドを受は取るソースリスト内の予
約ロケーシランに対するポインタが、キュー装置23に
導かれる。OP READ要求が作用しているときに、
メモリから読み出された第2°のオペランドをソースリ
スト内の予約ロケーションに転送される。
導かれる。また、0PU21がロケーションR1におけ
るGPRレジスタファイルの内容を読み取り、その値を
指定の変位(12)に加算し、アドレス発生段階の終わ
りに、得られたアドレスをOP READ要求と共にイ
ンタフェース装置ll内の変換バッファ15に送る。同
時に、第2のオベランドを受は取るソースリスト内の予
約ロケーシランに対するポインタが、キュー装置23に
導かれる。OP READ要求が作用しているときに、
メモリから読み出された第2°のオペランドをソースリ
スト内の予約ロケーションに転送される。
段階5では、インタフェース装置11が変換バッファ1
5を用い、段階4で発生されれ仮想アドレスを物理アド
レスに変換する。次いで、この物理アドレスが主キャッ
シュ14ヘアドレスするのに使われ、主キャッシュ14
がパイプラインの段階6で読み取られる。
5を用い、段階4で発生されれ仮想アドレスを物理アド
レスに変換する。次いで、この物理アドレスが主キャッ
シュ14ヘアドレスするのに使われ、主キャッシュ14
がパイプラインの段階6で読み取られる。
パイプラインの段階7では、メモリがALU22で発せ
られ、ALU22が2つのオペランドを加算して、その
結果を退去装置27に送る。段階40間に、ROとR2
用のレジスタ番号及びメモリデータ用のソースリストロ
ケーションに対するポインタは実行装置に送られ、ポイ
ンタキエー内に記憶されている0次いで、キャッシュ読
取の段階中に、実行装置はソースリスト内の2つのソー
スオペランドを捜し始めている。この特定例では、実行
装置がROのレジスタデータだけを捜し出し、この段階
の終わりには、メモリデータに到達して、レジスタファ
イルの無効続出と置換されている。
られ、ALU22が2つのオペランドを加算して、その
結果を退去装置27に送る。段階40間に、ROとR2
用のレジスタ番号及びメモリデータ用のソースリストロ
ケーションに対するポインタは実行装置に送られ、ポイ
ンタキエー内に記憶されている0次いで、キャッシュ読
取の段階中に、実行装置はソースリスト内の2つのソー
スオペランドを捜し始めている。この特定例では、実行
装置がROのレジスタデータだけを捜し出し、この段階
の終わりには、メモリデータに到達して、レジスタファ
イルの無効続出と置換されている。
つまり、両方のオペランドが命令の実行段階で得られて
いる。
いる。
パイプラインの退去段階8では、結果データが結果キュ
ー内で次のエントリと対にされる。またこの時点で、分
岐判断の依拠する条件コードが利用可能となる。幾つか
の機能実行装置が同時に占有状態となることがあるが、
1つの命令だけが1サイクルで退去可能である。
ー内で次のエントリと対にされる。またこの時点で、分
岐判断の依拠する条件コードが利用可能となる。幾つか
の機能実行装置が同時に占有状態となることがあるが、
1つの命令だけが1サイクルで退去可能である。
例示したパイプラインの最終の段階9では、データが実
行装置13と命令装置12両方におけるレジスタファイ
ルのGPR部分内に書き込まれる。
行装置13と命令装置12両方におけるレジスタファイ
ルのGPR部分内に書き込まれる。
パイプライン式プロセッサにおいては、パイプライン中
でのストールつまり“ギャップ”の影響を最小限とする
ため、条件付分岐判断の結果を予測する機能を備えるこ
とが望ましい。この点は特に、キュー23が多数の命令
の中間結果を記憶するので、第1図のパイプライン式プ
ロセッサにとって重要である。ストールつまりギャップ
が生じると、キューはプロセッサのスルーブツトを高め
る・上での有効性を失う、しかし、パイプラインの深さ
のため、予測が正しくない場合における命令シーケンス
の“巻戻し”は、ハードウェアまたは実行時間の点でよ
りコスト高となる。つまり巻戻しは、誤って予測された
分岐に続(間違った経路の情報のパイプラインから命令
をフラッシュし、正しい経路に沿った実行をやり直す必
要を生じる。
でのストールつまり“ギャップ”の影響を最小限とする
ため、条件付分岐判断の結果を予測する機能を備えるこ
とが望ましい。この点は特に、キュー23が多数の命令
の中間結果を記憶するので、第1図のパイプライン式プ
ロセッサにとって重要である。ストールつまりギャップ
が生じると、キューはプロセッサのスルーブツトを高め
る・上での有効性を失う、しかし、パイプラインの深さ
のため、予測が正しくない場合における命令シーケンス
の“巻戻し”は、ハードウェアまたは実行時間の点でよ
りコスト高となる。つまり巻戻しは、誤って予測された
分岐に続(間違った経路の情報のパイプラインから命令
をフラッシュし、正しい経路に沿った実行をやり直す必
要を生じる。
第1図に示したように、パイプラインプロセッサの命令
装置12は分岐予測装置28を備えている。分岐予測装
置28の特定機能は、分岐命令にアドレスした後プログ
ラムカウンタ17が取る値(PREDICTION P
C)を求めるかまたは選択することにある。この値また
は選択はバス29を介して、分岐予測装置28からプロ
グラムカウンタ17に伝送される。
装置12は分岐予測装置28を備えている。分岐予測装
置28の特定機能は、分岐命令にアドレスした後プログ
ラムカウンタ17が取る値(PREDICTION P
C)を求めるかまたは選択することにある。この値また
は選択はバス29を介して、分岐予測装置28からプロ
グラムカウンタ17に伝送される。
分岐予測装置28は、4つの主な入力信号に応答する。
命令デコーダ20が命令バッファ19から分岐oPコー
ドを受は取ると、分岐OPコードと分岐opコードスト
ローブ信号(BSHOP)が、入力バス30を介して分
岐予測装置に伝送される。これと同時に、分岐命令のア
ドレス(DECODEPC)が、プログラムカウンタ1
7から入力バス31上に受は取られる。また、分岐命令
の目標アドレス(TABGET PC)と目標アドレス
ストローブ信号(TASIGBT VALII) )が
、オペランド処理装置!21から入力バス32上に受は
取られる。オペランド処理装置21は例えば、分岐命令
における変位指定子の値を分岐命令に続く命令のアドレ
スに加えて、目標アドレスを計算する0条件付分岐の場
合には、分岐判断がなされ、実行装置13からのバス3
3上のデータ信号(BRANC)l DECISION
”)で有効性信号(BRANCHVALID ”)が
受は取られることによって、予測が有効となる。
ドを受は取ると、分岐OPコードと分岐opコードスト
ローブ信号(BSHOP)が、入力バス30を介して分
岐予測装置に伝送される。これと同時に、分岐命令のア
ドレス(DECODEPC)が、プログラムカウンタ1
7から入力バス31上に受は取られる。また、分岐命令
の目標アドレス(TABGET PC)と目標アドレス
ストローブ信号(TASIGBT VALII) )が
、オペランド処理装置!21から入力バス32上に受は
取られる。オペランド処理装置21は例えば、分岐命令
における変位指定子の値を分岐命令に続く命令のアドレ
スに加えて、目標アドレスを計算する0条件付分岐の場
合には、分岐判断がなされ、実行装置13からのバス3
3上のデータ信号(BRANC)l DECISION
”)で有効性信号(BRANCHVALID ”)が
受は取られることによって、予測が有効となる。
はとんどの命令シーケンスの実行中、分岐予測装置28
はまず分岐OPコードとその対応アドレスを受は取り、
次に対応した目標アドレスを受は取り、最後に有効性信
号を受は取る。分岐予測装置28はこの一般的なシーケ
ンスに対し、分岐OPコードとその対応アドレスが受は
取られるや否や、分岐予測を行うことによって応答する
。
はまず分岐OPコードとその対応アドレスを受は取り、
次に対応した目標アドレスを受は取り、最後に有効性信
号を受は取る。分岐予測装置28はこの一般的なシーケ
ンスに対し、分岐OPコードとその対応アドレスが受は
取られるや否や、分岐予測を行うことによって応答する
。
条件付分岐命令が有効であれば、実行は通常通り継続す
る。有効でない場合、分岐判断が予測と一敗しないと、
“巻戻し”動作が行われる。この動作には、分岐履歴キ
ャッシュへの判断の記録した後、命令の流れ方向を向は
直すことが含まれる。
る。有効でない場合、分岐判断が予測と一敗しないと、
“巻戻し”動作が行われる。この動作には、分岐履歴キ
ャッシュへの判断の記録した後、命令の流れ方向を向は
直すことが含まれる。
命令の流れは、中央処理装置の状態を予測がなされた時
点に存在した状態に復元した後、分岐命令に続く別の実
行経路の開始時点から実行をスタートし直すことによっ
て再方向付けされる。実行は例えば、前にセーブされた
“巻戻し”アドレス(UNWIND PC’)から再ス
タートされる。好ましい分岐予測装置の構造及び動作は
、前出の1989年2月3日に出願されたり、Fite
等の米国特許出願通し隘306,760 、名称「分岐
予測」に詳しく記載されており、同出願は参照によって
ここに含まれるものとする。
点に存在した状態に復元した後、分岐命令に続く別の実
行経路の開始時点から実行をスタートし直すことによっ
て再方向付けされる。実行は例えば、前にセーブされた
“巻戻し”アドレス(UNWIND PC’)から再ス
タートされる。好ましい分岐予測装置の構造及び動作は
、前出の1989年2月3日に出願されたり、Fite
等の米国特許出願通し隘306,760 、名称「分岐
予測」に詳しく記載されており、同出願は参照によって
ここに含まれるものとする。
命令装置12内の命令デコーダ20と実行装置13内の
キュー23が、第3図に詳しく示しである。命令デコー
ダ20は後で詳述するように、プログラムカウンタ用の
デコーダ20a1フオークテーブル用RAM20b、2
つのソースオペランド指定子デコーダ20cと20d1
宛先オペランド指定子デコーダ20e、及びレジスタ動
作デコーダ20fを含むことが分かる。好ましい実施例
において、デコーダ20cm2Ofは前出の1989年
2月3日に出願されたり、Pite等の米国特許出願通
しNa307.347 、名称「可変長命令アーキテク
チャにおける複数指定子のデコード」に詳しく記載され
ているように、密接に相互リンクされ、大型の複合デコ
ード装置内に統合される。尚、同出願は参照によってこ
こに含まれるものとする。デコーダ20bは命令装置内
でなく、フォークキュー23bに隣合わせて実行装置内
に配置されるのが好ましい。フォークアドレスはOPコ
ードよりも多いビットを含むため、このケースでは命令
装置と実行装置の間でより短いデータラインが必要とさ
れるからである。
キュー23が、第3図に詳しく示しである。命令デコー
ダ20は後で詳述するように、プログラムカウンタ用の
デコーダ20a1フオークテーブル用RAM20b、2
つのソースオペランド指定子デコーダ20cと20d1
宛先オペランド指定子デコーダ20e、及びレジスタ動
作デコーダ20fを含むことが分かる。好ましい実施例
において、デコーダ20cm2Ofは前出の1989年
2月3日に出願されたり、Pite等の米国特許出願通
しNa307.347 、名称「可変長命令アーキテク
チャにおける複数指定子のデコード」に詳しく記載され
ているように、密接に相互リンクされ、大型の複合デコ
ード装置内に統合される。尚、同出願は参照によってこ
こに含まれるものとする。デコーダ20bは命令装置内
でなく、フォークキュー23bに隣合わせて実行装置内
に配置されるのが好ましい。フォークアドレスはOPコ
ードよりも多いビットを含むため、このケースでは命令
装置と実行装置の間でより短いデータラインが必要とさ
れるからである。
プログラムカウンタ用デコーダ20aの出力は、実行装
置13内のプログラムカウンタキュー23aに記憶され
る。RAM20bは各命令のOPコードバイトだけを受
は取り、そのデータを用いてテーブルから1フオーク”
(マイクロコード)ディスバッチアドレスを選び出す
。このディスパッチアドレスが命令の実行に適したマイ
クロコードのスタートを識別し、実行装置13内のフォ
ークキュー23bに記憶される。
置13内のプログラムカウンタキュー23aに記憶され
る。RAM20bは各命令のOPコードバイトだけを受
は取り、そのデータを用いてテーブルから1フオーク”
(マイクロコード)ディスバッチアドレスを選び出す
。このディスパッチアドレスが命令の実行に適したマイ
クロコードのスタートを識別し、実行装置13内のフォ
ークキュー23bに記憶される。
4つのデコーダ20cm2Ofは各々、実行バッファ1
9からOPコードバイトとオペランド指定子データの両
方を受は取る。デコーダ20cと20dは2つのソース
オペランド指定子をデコードし、2つのソースオペラン
ドを突き止めるのに実行装置によって使用可能なソース
オペランドポインタを発生する。これら2つのポインタ
は、実行装置内のソースポインタキュー23cに記憶さ
れる。宛先オペランド指定子はデコーダ20eによって
デコードされ、実行装置内の宛先ポインタキュー23e
に記憶される。
9からOPコードバイトとオペランド指定子データの両
方を受は取る。デコーダ20cと20dは2つのソース
オペランド指定子をデコードし、2つのソースオペラン
ドを突き止めるのに実行装置によって使用可能なソース
オペランドポインタを発生する。これら2つのポインタ
は、実行装置内のソースポインタキュー23cに記憶さ
れる。宛先オペランド指定子はデコーダ20eによって
デコードされ、実行装置内の宛先ポインタキュー23e
に記憶される。
前述したレジスタ間衝突をチエツクするため、新たな命
令がデコードされる度に一対のマスクが発生され、その
命令の実行中に命令装置が読み取りまたは書込を行って
いる全てのGPRを識別する。これらのマスクはレジス
タ動作デコーダ20f(第4図に関連して後述する)で
発生され、命令装置内のマスクキュー23fに記憶され
る。各マスクは、GPRの数に等しい多数のビット位置
からなる。読取マスクでは、新たな命令の実行中に読み
取られるべき各GPR毎に1ビツトでセットされ、書込
マスクでは、その命令の実行中に書き込まれるべき各G
PR毎に1ビツトがセットされる。
令がデコードされる度に一対のマスクが発生され、その
命令の実行中に命令装置が読み取りまたは書込を行って
いる全てのGPRを識別する。これらのマスクはレジス
タ動作デコーダ20f(第4図に関連して後述する)で
発生され、命令装置内のマスクキュー23fに記憶され
る。各マスクは、GPRの数に等しい多数のビット位置
からなる。読取マスクでは、新たな命令の実行中に読み
取られるべき各GPR毎に1ビツトでセットされ、書込
マスクでは、その命令の実行中に書き込まれるべき各G
PR毎に1ビツトがセットされる。
ある命令に関する読取及び書込マスクは共に、1つのエ
ントリとしてマスクキュー23fに記憶される。15の
CI’Rが存在するとき、マスクキュー内の各エントリ
は30ビツトからなる(各読取マスク内の15ビツトが
読み取られるべきGPRを識別し、各書込マスク内の1
5ビツトが書き込まれるべき各GPRを識別する)、マ
スクキュー23f内の全有効マスクの複合体が、命令装
置12における命令の事前処理中メモリアドレスを生じ
るのに使われる各レジスタをチエツクするのに使われ、
その命令の事前処理がストールされるかどうかを判定す
る。マスクギュ−23fの好ましい構造及び動作は、前
出の1989年2月3日に出願されたMurray等の
米国特許出願通し!1h306.773、名称「デジタ
ルコンピュータ用のデータ依存性の解消による複数命令
処理システム」に詳しく記載されており、同出願は参照
によってここに含まれるものとする。
ントリとしてマスクキュー23fに記憶される。15の
CI’Rが存在するとき、マスクキュー内の各エントリ
は30ビツトからなる(各読取マスク内の15ビツトが
読み取られるべきGPRを識別し、各書込マスク内の1
5ビツトが書き込まれるべき各GPRを識別する)、マ
スクキュー23f内の全有効マスクの複合体が、命令装
置12における命令の事前処理中メモリアドレスを生じ
るのに使われる各レジスタをチエツクするのに使われ、
その命令の事前処理がストールされるかどうかを判定す
る。マスクギュ−23fの好ましい構造及び動作は、前
出の1989年2月3日に出願されたMurray等の
米国特許出願通し!1h306.773、名称「デジタ
ルコンピュータ用のデータ依存性の解消による複数命令
処理システム」に詳しく記載されており、同出願は参照
によってここに含まれるものとする。
この参考文献は、挿入ポインタ、その除去ポインタ、キ
ューの満杯時を検出するロジック、及びキューをフラッ
シュするロジックを含むキューの基本構造を詳しく示し
ている。
ューの満杯時を検出するロジック、及びキューをフラッ
シュするロジックを含むキューの基本構造を詳しく示し
ている。
次に第4図を参照すると、ソースリスト24とまとめて
40で示した関連のレジスタファイルの詳しいブロック
図が示してあり、これらは一対の自己タイミング式レジ
スタファイル集積回路内に一体的に統合されている。こ
の自己タイミング式レジスタファイル40が、メモリア
クセス装置11、命令装置12及び実行装置13間での
データインタフェースを与える。
40で示した関連のレジスタファイルの詳しいブロック
図が示してあり、これらは一対の自己タイミング式レジ
スタファイル集積回路内に一体的に統合されている。こ
の自己タイミング式レジスタファイル40が、メモリア
クセス装置11、命令装置12及び実行装置13間での
データインタフェースを与える。
レジスタファイル40は4組16個のレジスタを含み、
各レジスタは36ビツトの長さであるのが好ましい。こ
こでは、4組16個の36ビツトレジスタを与えるのに
、同一種類の2つの集積回路が組み合わせて使われる。
各レジスタは36ビツトの長さであるのが好ましい。こ
こでは、4組16個の36ビツトレジスタを与えるのに
、同一種類の2つの集積回路が組み合わせて使われる。
各レジスタは、4バイトと各バイト毎のパリティビット
とを含むように構成されている。上記4組はそれぞれG
PR41、ソースリスト24、メモリー時レジスタ42
及び実行−時レジスタ43に対応する。これらのレジス
タは二重ボート出力を有し、4組のレジスタの各々内の
16レジスタのそれぞれに接続された入力を有する一対
のマルチプレクサ(MUX)45.46を含む。36ビ
ツトのマルチプレクサ出力は、実行装置13に直接接続
されている。実行装置13とマルチプレクサ45.46
の選択入力との間に、選択ラインが接続されている。こ
れらの選択ラインは、64個のレジスタの各々のアドレ
シングを可能とする6ビツト信号を与える。レジスタ4
1.24.42.43の各々への入力も二重ボート形式
で、A及び8両データ入力を受は入れる。しかし、4組
のレジスタは各々二重ボート形式であるが、レジスタフ
ァイル40は3つの異なるソースから入力を受は取り、
2つ以上の入力が4組のレジスタのいずれか1つへ送ら
れるように、それらの入力を伝送する。
とを含むように構成されている。上記4組はそれぞれG
PR41、ソースリスト24、メモリー時レジスタ42
及び実行−時レジスタ43に対応する。これらのレジス
タは二重ボート出力を有し、4組のレジスタの各々内の
16レジスタのそれぞれに接続された入力を有する一対
のマルチプレクサ(MUX)45.46を含む。36ビ
ツトのマルチプレクサ出力は、実行装置13に直接接続
されている。実行装置13とマルチプレクサ45.46
の選択入力との間に、選択ラインが接続されている。こ
れらの選択ラインは、64個のレジスタの各々のアドレ
シングを可能とする6ビツト信号を与える。レジスタ4
1.24.42.43の各々への入力も二重ボート形式
で、A及び8両データ入力を受は入れる。しかし、4組
のレジスタは各々二重ボート形式であるが、レジスタフ
ァイル40は3つの異なるソースから入力を受は取り、
2つ以上の入力が4組のレジスタのいずれか1つへ送ら
れるように、それらの入力を伝送する。
前述したごと(、ソースリスト24はソースオペランド
を含むレジスタファイルである。従って、実行装置13
のソースポインタキュー内のエントリは、メモリ用のソ
ースリストと即値つまりリテラルのオペランドを指し示
す。メモリアクセス装置11と命令袋$12の両方がソ
ースリスト24にエントリを書き込み、実行装置13が
命令を実行するのに必要なオペランドをソースリストか
ら読み取る。
を含むレジスタファイルである。従って、実行装置13
のソースポインタキュー内のエントリは、メモリ用のソ
ースリストと即値つまりリテラルのオペランドを指し示
す。メモリアクセス装置11と命令袋$12の両方がソ
ースリスト24にエントリを書き込み、実行装置13が
命令を実行するのに必要なオペランドをソースリストか
ら読み取る。
GPR41は、VAXアーキテクチャによって定義され
た16個の汎用目的レジスタを含む、これらのレジスタ
は、ソースオペランドと実行された命令の結実用のスト
レージを与える。また、実行袋y113がGPR41に
結果を書き込む一方、命令装置12が自動インクレメン
ト及び自動デクレメントの命令でGPR41を更新する
。
た16個の汎用目的レジスタを含む、これらのレジスタ
は、ソースオペランドと実行された命令の結実用のスト
レージを与える。また、実行袋y113がGPR41に
結果を書き込む一方、命令装置12が自動インクレメン
ト及び自動デクレメントの命令でGPR41を更新する
。
メモリー時レジスタ42は、実行装置13によって読取
可能な16個のレジスタを含む。メモリアクセス装置1
1が、実行装置13によって必要なデータをメモリー時
レジスタ24に書き込む。
可能な16個のレジスタを含む。メモリアクセス装置1
1が、実行装置13によって必要なデータをメモリー時
レジスタ24に書き込む。
またマイクロコード実行装置26も、マイクロコードの
実行中の必要に応じて、メモリー時レジスタ42に書込
を行える。
実行中の必要に応じて、メモリー時レジスタ42に書込
を行える。
実行−時レジスタ43は、実行装置13によってのみア
クセス可能な16個のレジスタを含む。
クセス可能な16個のレジスタを含む。
すなわち、マイクロコード実行装置13が中間記憶のた
めに実行−時レジスタ43を用いる。
めに実行−時レジスタ43を用いる。
実行装置13は36ビツトのデータバスを介して、GP
R41、メモリー時レジスタ42及び実行−時レジスタ
43に接続されている。伝送ゲート47.48及び49
が、実行装置のデータバスからGPR41メモリ一時レ
ジスタ42及び実行−時レジスタ43に送られるデータ
を、伝送ゲ−ト47.48及び49の選択入力に接続さ
れた6ビツトの選択バスを介してそれぞれ制御する。
R41、メモリー時レジスタ42及び実行−時レジスタ
43に接続されている。伝送ゲート47.48及び49
が、実行装置のデータバスからGPR41メモリ一時レ
ジスタ42及び実行−時レジスタ43に送られるデータ
を、伝送ゲ−ト47.48及び49の選択入力に接続さ
れた6ビツトの選択バスを介してそれぞれ制御する。
同様に、命令装置12は伝送ゲート50.51を介して
、GPR41とソースリスト24のB入力に接続されて
いる。但しここでの場合、伝送ゲート50.51の選択
ラインは相互に別々で、独立制御される。
、GPR41とソースリスト24のB入力に接続されて
いる。但しここでの場合、伝送ゲート50.51の選択
ラインは相互に別々で、独立制御される。
メモリアクセス装置11は72ビツトのデータバスを有
し、従って一対の36ビツトレジスタへ書き込むのに好
ましい。このため、バスは低位の36ビツト部分と高位
の36ビツト部分に分割され、連続したレジスタアドレ
スにデータを記憶可能としている。低位の36ビツトは
伝送ゲート52を介してソースリスト24に送られるか
、あるいは伝送ゲート53を介してメモリー時レジスタ
42に送られる。物理的に見ると、同一種類の2つの集
積回路を用いた前述の好ましい実施例では、各36ビツ
ト部分のうち高位18ビツトが集積回路の一方に記憶さ
れ、対応する36ビツト部分のうち低位18ビツトが集
積回路の他方に記憶される。
し、従って一対の36ビツトレジスタへ書き込むのに好
ましい。このため、バスは低位の36ビツト部分と高位
の36ビツト部分に分割され、連続したレジスタアドレ
スにデータを記憶可能としている。低位の36ビツトは
伝送ゲート52を介してソースリスト24に送られるか
、あるいは伝送ゲート53を介してメモリー時レジスタ
42に送られる。物理的に見ると、同一種類の2つの集
積回路を用いた前述の好ましい実施例では、各36ビツ
ト部分のうち高位18ビツトが集積回路の一方に記憶さ
れ、対応する36ビツト部分のうち低位18ビツトが集
積回路の他方に記憶される。
メモリアクセス装置11も、6ビツトの選択バスを伝送
ゲート52.53に導いている。メモリアクセス装置1
1が伝送ゲート52を介してソースリスト24か、ある
いは伝送ゲート53を介してメモリー時レジスタ42い
ずれかの次のレジスタに送出される高位36ビツトを書
き込むのを可能とするように、追加のビットが使われる
。つまり、高位36ビツトは、同じレジスタに記憶され
た低位36ビツトより1大きいロケーションで、ソース
リスト24かメモリー時レジスタ42のどちらかに記憶
される。このため、実行装置13力?ソースリストとメ
モリー時レジスタ24.42に記憶されたデータを検索
する場合、実行装置はまず低位36ビツトに記憶された
データを検索し、それから内部ポインタをインクレメン
トして、高位36ビツトを検索する。
ゲート52.53に導いている。メモリアクセス装置1
1が伝送ゲート52を介してソースリスト24か、ある
いは伝送ゲート53を介してメモリー時レジスタ42い
ずれかの次のレジスタに送出される高位36ビツトを書
き込むのを可能とするように、追加のビットが使われる
。つまり、高位36ビツトは、同じレジスタに記憶され
た低位36ビツトより1大きいロケーションで、ソース
リスト24かメモリー時レジスタ42のどちらかに記憶
される。このため、実行装置13力?ソースリストとメ
モリー時レジスタ24.42に記憶されたデータを検索
する場合、実行装置はまず低位36ビツトに記憶された
データを検索し、それから内部ポインタをインクレメン
トして、高位36ビツトを検索する。
次に第5図を参照すると、命令装置を通じたデータバス
が詳しく示しである。命令デコーダ20は、2つのソー
ス指定子と1つの宛先指定子を同時にデコードする能力
を有する。クロックサイクル中、ソース指定子の一方は
短リテラル指定子とし得る。この場合、デコードされた
短リテラル指定子はEXバスを介して拡張(EXP)装
置61に伝送され、拡張装置がその短リテラル指定子を
拡張し、現在デコードされている命令に関する指定子に
ついて指定された種類のデコーダへと短リテラル指定子
を表示し直すつまり変換するのに充分な1つ以上の32
ビツトの長語とする。
が詳しく示しである。命令デコーダ20は、2つのソー
ス指定子と1つの宛先指定子を同時にデコードする能力
を有する。クロックサイクル中、ソース指定子の一方は
短リテラル指定子とし得る。この場合、デコードされた
短リテラル指定子はEXバスを介して拡張(EXP)装
置61に伝送され、拡張装置がその短リテラル指定子を
拡張し、現在デコードされている命令に関する指定子に
ついて指定された種類のデコーダへと短リテラル指定子
を表示し直すつまり変換するのに充分な1つ以上の32
ビツトの長語とする。
また命令デコーダ20は、各クロックサイクル中、1つ
の“複合”ソースまたは宛先指定子をデコードする能力
を有する。ここで複合という用語は、指定子がレジスタ
指定子でも短リテラル指定子でもないことを意味する。
の“複合”ソースまたは宛先指定子をデコードする能力
を有する。ここで複合という用語は、指定子がレジスタ
指定子でも短リテラル指定子でもないことを意味する。
複合指定子は例えば、ペースレジスタ番号、指標レジス
タ番号及び変位を含むことができ、即値、絶対、据置、
自動インクレメント及び自動デクレメントモードなど各
種のモードを取り得る。これらのあるモードに関する複
合指定子の評価は、アドレス計算とメモリ読取動作を必
要とし、かかる動作はCPつまりアドレス計算装置62
によって行われる。
タ番号及び変位を含むことができ、即値、絶対、据置、
自動インクレメント及び自動デクレメントモードなど各
種のモードを取り得る。これらのあるモードに関する複
合指定子の評価は、アドレス計算とメモリ読取動作を必
要とし、かかる動作はCPつまりアドレス計算装置62
によって行われる。
分岐変位または即値データ(すなわち命令の流れ内で見
いだされた長いリテラル指定子)の評価では、CP装置
がメモリ読取動作を開始する必要がない。分岐変位の場
合、CP装置は変位を分岐予測装置(第1図の28)に
直接伝送する。即値データの場合、CP装置はデータを
ソースリスト24に伝送する。ソースリストはオペラン
ド処理装置(OPU)21によって利用可能な単一ポー
トを有しているので、マルチプレクサ6oがオペランド
処理装置に含められ、GP装置62またはEXP装置6
1からの32ビツトワードのデータを選択する。優先順
位は、短リテラル指定子の有効拡張に与えられている。
いだされた長いリテラル指定子)の評価では、CP装置
がメモリ読取動作を開始する必要がない。分岐変位の場
合、CP装置は変位を分岐予測装置(第1図の28)に
直接伝送する。即値データの場合、CP装置はデータを
ソースリスト24に伝送する。ソースリストはオペラン
ド処理装置(OPU)21によって利用可能な単一ポー
トを有しているので、マルチプレクサ6oがオペランド
処理装置に含められ、GP装置62またはEXP装置6
1からの32ビツトワードのデータを選択する。優先順
位は、短リテラル指定子の有効拡張に与えられている。
通例、レジスタ指定子は命令装置によって評価されず、
その代わりにレジスタポインタ(すなわちGPR番号)
が実行装置に導かれる。これによって、前にデコードさ
れたがまだ実行されていない命令がレジスタの値を変更
する場合のストールが避けられる。しかし、“命令間で
のレジスタ読取衝突”という異常時には、GP装置がレ
ジスタオペランドによって指定されたレジスタの内容を
得て、その内容をソースリスト内に入れる。これは、命
令デコーダ20が衝突を検出し、GP装置の通常動作に
優先して衝突を処理するように事前プログラミングされ
たマイクロシーケンサ63に信号を送ったときに発生す
る。またマイクロシーケンサ63は、汎用目的レジスタ
内の命令装置のコピーを、実行装置内の汎用目的レジス
タと一致状態に保つようにもプログラムされている。オ
ペランド処理装置のこうした特徴は、前出のり、Fit
e等の米国特許出願、名称「可変長命令アーキテクチャ
における複数指定子のデコード」に記載されている。
その代わりにレジスタポインタ(すなわちGPR番号)
が実行装置に導かれる。これによって、前にデコードさ
れたがまだ実行されていない命令がレジスタの値を変更
する場合のストールが避けられる。しかし、“命令間で
のレジスタ読取衝突”という異常時には、GP装置がレ
ジスタオペランドによって指定されたレジスタの内容を
得て、その内容をソースリスト内に入れる。これは、命
令デコーダ20が衝突を検出し、GP装置の通常動作に
優先して衝突を処理するように事前プログラミングされ
たマイクロシーケンサ63に信号を送ったときに発生す
る。またマイクロシーケンサ63は、汎用目的レジスタ
内の命令装置のコピーを、実行装置内の汎用目的レジス
タと一致状態に保つようにもプログラムされている。オ
ペランド処理装置のこうした特徴は、前出のり、Fit
e等の米国特許出願、名称「可変長命令アーキテクチャ
における複数指定子のデコード」に記載されている。
レジスタ指定子がデコードされるときレジスタポインタ
を実行装置へと導くため、命令デコーダはオペランド処
理装置内の転送(TR)装置64へと延びたTRバスを
有する。′rR装置64は実質的に1ストールバツフア
”を構成する一対のランチで、キュー23が満杯なるな
どストール状態の発生時に、3つまでのレジスタポイン
タを保持する。“ストールバッファ”の特定回路は、前
出のMurray等の米国特許出願、名称「デジタルコ
ンピュータ用のデータ依存性の解消による複数命令処理
システム」に示されている。
を実行装置へと導くため、命令デコーダはオペランド処
理装置内の転送(TR)装置64へと延びたTRバスを
有する。′rR装置64は実質的に1ストールバツフア
”を構成する一対のランチで、キュー23が満杯なるな
どストール状態の発生時に、3つまでのレジスタポイン
タを保持する。“ストールバッファ”の特定回路は、前
出のMurray等の米国特許出願、名称「デジタルコ
ンピュータ用のデータ依存性の解消による複数命令処理
システム」に示されている。
次に第6図を参照すると、GPババスのフォーマットが
詳しく示しである。CPババス信号ビット“有効データ
フラグ(V D F)を伝送し、システムクロックの前
のサイクル中に複合指定子がデコードされたかどうかを
汎用目的装置62に指示する。単一ビットの“指標レジ
スタフラグ(IRF)も伝送され、複合指定子が指標レ
ジスタを参照するかどうかを指示する。参照される指標
レジスタは、CPババス介して伝送される4ビツトの指
標レジスタ番号によって指定される。またCPババス、
複合指定子の指定子モードを指示する4ビツト、ペース
レジスタ番号を指示する4ピント、及び複合指定子によ
って指定された変位を含む32ビツトも転送する。
詳しく示しである。CPババス信号ビット“有効データ
フラグ(V D F)を伝送し、システムクロックの前
のサイクル中に複合指定子がデコードされたかどうかを
汎用目的装置62に指示する。単一ビットの“指標レジ
スタフラグ(IRF)も伝送され、複合指定子が指標レ
ジスタを参照するかどうかを指示する。参照される指標
レジスタは、CPババス介して伝送される4ビツトの指
標レジスタ番号によって指定される。またCPババス、
複合指定子の指定子モードを指示する4ビツト、ペース
レジスタ番号を指示する4ピント、及び複合指定子によ
って指定された変位を含む32ビツトも転送する。
CPババス、現命令に関する指定子のシーケンス内での
複合指定子の位置を指示する3ピントの指定子番号も伝
送する。指定子番号は、汎用目的装置62がOPコード
バイトのデコードに基づき、指定されたオペランドにつ
いてのアクセス及びデータの種類を選ぶのを可能にする
。従って、汎用目的装置62は第5図の拡張装置61及
び転送装置64から幾分独立に動作可能である。特に汎
用目的装置62は、オペランドを判定するのに汎用目的
装置62が1より多いサイクルを必要とするかどうかを
指示する独立のストール信号(0PU−STALL )
を与える。
複合指定子の位置を指示する3ピントの指定子番号も伝
送する。指定子番号は、汎用目的装置62がOPコード
バイトのデコードに基づき、指定されたオペランドにつ
いてのアクセス及びデータの種類を選ぶのを可能にする
。従って、汎用目的装置62は第5図の拡張装置61及
び転送装置64から幾分独立に動作可能である。特に汎
用目的装置62は、オペランドを判定するのに汎用目的
装置62が1より多いサイクルを必要とするかどうかを
指示する独立のストール信号(0PU−STALL )
を与える。
次に第7図を参照すると、拡張バス(E X)用のフォ
ーマットが示しである。拡張バスは、1ビツトの有効デ
ータフラグ(VDF) 、6ビツトの類リテラルデータ
、及び3ビツトの指定子番号を転送する。指定子番号は
、現命令に続(指定子のシーケンス内における短リテラ
ル指定子の位置を指示し、OPコードバイトのデコード
に基づき関連のデータ種類を選ぶのに拡張装置61によ
って使われる。従って、拡張装置g1も幾分独立に動作
可能で、短リテラル指定子を処理するのに拡張装置が1
より多いサイクルを必要とするかどうかを指示する各ス
トール信号(5L−STALL > を与える。
ーマットが示しである。拡張バスは、1ビツトの有効デ
ータフラグ(VDF) 、6ビツトの類リテラルデータ
、及び3ビツトの指定子番号を転送する。指定子番号は
、現命令に続(指定子のシーケンス内における短リテラ
ル指定子の位置を指示し、OPコードバイトのデコード
に基づき関連のデータ種類を選ぶのに拡張装置61によ
って使われる。従って、拡張装置g1も幾分独立に動作
可能で、短リテラル指定子を処理するのに拡張装置が1
より多いサイクルを必要とするかどうかを指示する各ス
トール信号(5L−STALL > を与える。
次に第8図を参照すると、転送バス(TR)用のフォー
マントが示しである。TRバスは第1のソースバス65
、第2のソースバス66及び宛先バス67を含み、これ
らの各バスはそれぞれの有効データフラグ(VDF)、
レジスタフラグ(RCF)及びレジスタ番号を転送する
。レジスタフラグは、対応するレジスタ指定子がデコー
ドされたときセットされる。また、複合あるいは短リテ
ラル指定子がデコードされる度に、第1ソース、第2ソ
ースまたは宛先バス内の有効データフラグの各1つがセ
ットされると共に、関連のレジスタフラグがクリアされ
、ソースポインタキューまたは宛先キューに至るデータ
路内にソースまたは宛先オペランド用のスペースを予約
する。
マントが示しである。TRバスは第1のソースバス65
、第2のソースバス66及び宛先バス67を含み、これ
らの各バスはそれぞれの有効データフラグ(VDF)、
レジスタフラグ(RCF)及びレジスタ番号を転送する
。レジスタフラグは、対応するレジスタ指定子がデコー
ドされたときセットされる。また、複合あるいは短リテ
ラル指定子がデコードされる度に、第1ソース、第2ソ
ースまたは宛先バス内の有効データフラグの各1つがセ
ットされると共に、関連のレジスタフラグがクリアされ
、ソースポインタキューまたは宛先キューに至るデータ
路内にソースまたは宛先オペランド用のスペースを予約
する。
ソースポインタキュー内のエントリは、(第2ソースバ
ス66と同じである)第1ソースバス65と同じフォー
マットを有する。有効な第1ソース指定子はレジスタで
なければ、メモリソースである。有効な第1ソースポイ
ンタがメモリソースであるとき、次のフリーなソースリ
スドロケージジンポインタがレジスタ番号に取って替わ
る。同じ(、有効な第2ソース指定子はレジスタでなけ
れば、メモリソースである。有効な第2ソースポインタ
がメモリソースであるとき、次のフリーなソースリスト
ロケーションボイろりがレジスタ番号に取った替わる。
ス66と同じである)第1ソースバス65と同じフォー
マットを有する。有効な第1ソース指定子はレジスタで
なければ、メモリソースである。有効な第1ソースポイ
ンタがメモリソースであるとき、次のフリーなソースリ
スドロケージジンポインタがレジスタ番号に取って替わ
る。同じ(、有効な第2ソース指定子はレジスタでなけ
れば、メモリソースである。有効な第2ソースポインタ
がメモリソースであるとき、次のフリーなソースリスト
ロケーションボイろりがレジスタ番号に取った替わる。
各有効なポインタはソースポインタキューにロードされ
、その中の1エントリを占める。2までのポインタが同
時にロード可能である。1つのポインタがロードされる
べきとき、それは第1ソースポインタでなければならな
い。
、その中の1エントリを占める。2までのポインタが同
時にロード可能である。1つのポインタがロードされる
べきとき、それは第1ソースポインタでなければならな
い。
2つのソースポインタが同時にロードされるとき、第1
ソースポインタはキュー内で第2ソースポインタ用のロ
ケーションより前のロケーションを占める。これによっ
て、実行装置が命令内に現れたソース指定子と同じ順序
でソースポインタを使用することが保証される。ソース
リスト内にデータに使える充分なフリースペースが存在
しないと、ソースポインタはロードされない。また、ソ
ースポインタキュー23cがオーバフローするときも、
ソースポインタはロードされない。以上の考慮に基づい
て次のフリーなソースリストポインタを発生するため、
−組のマルチプレクサ69と共にフリーポインタロジッ
ク68がオペランド処理装置21 (第5図参照)内に
設けられ、マルチプレクサ69が有効な非レジスタ指定
子の存在及びオーバフロー条件の不在によって必要とな
るフリーなポインタをそれぞれの無効レジスタ番号に挿
入する。
ソースポインタはキュー内で第2ソースポインタ用のロ
ケーションより前のロケーションを占める。これによっ
て、実行装置が命令内に現れたソース指定子と同じ順序
でソースポインタを使用することが保証される。ソース
リスト内にデータに使える充分なフリースペースが存在
しないと、ソースポインタはロードされない。また、ソ
ースポインタキュー23cがオーバフローするときも、
ソースポインタはロードされない。以上の考慮に基づい
て次のフリーなソースリストポインタを発生するため、
−組のマルチプレクサ69と共にフリーポインタロジッ
ク68がオペランド処理装置21 (第5図参照)内に
設けられ、マルチプレクサ69が有効な非レジスタ指定
子の存在及びオーバフロー条件の不在によって必要とな
るフリーなポインタをそれぞれの無効レジスタ番号に挿
入する。
非レジスタ宛先指定子(すなわち複合指定子、リテラル
指定子は有効宛先としてデコードされないため)用に使
われる宛先ポインタの一部だけが、有効データフラグで
あるのが好ましい。言い換えれば、メモリ書込指定子の
宛先アドレスを指し示すのに、他のメカニズムも使える
。好ましいメカニズムは、メモリ書込指定子の物理アド
レスをキュー入れするメモリアクセス装置内の“書込キ
二一”70(第1図参照)である、従って、GP装置が
宛先ロケーションのアドレスを計算するとき、対応した
結果が実行装置13の退去装置27によってメモリに退
去されるまで、CP装置はそのアドレスをそれを識別す
るコードと共に、書込キューに記憶されるべき宛先アド
レスとしてメモリアクセス装置に伝送している。退去装
置はデコードされたときと同じシーケンスで結果を退去
させるので、結果がメモリアクセス装置に退去されると
き、各結果に関するそれぞれのアドレスも書込キューの
先頭から取り除かれる。書込キュー70のさらに詳しい
特徴は、前出の1989年2月3日に出願されたり、F
ite等の米国特許出願通しl1h306.767、名
称「パイプライン式コンピュータシステムにおける可変
数の潜在的なメモリアクセス衝突を解消する方法及び装
置」に開示されており、同出願は参照によってここに含
まれるものとする。
指定子は有効宛先としてデコードされないため)用に使
われる宛先ポインタの一部だけが、有効データフラグで
あるのが好ましい。言い換えれば、メモリ書込指定子の
宛先アドレスを指し示すのに、他のメカニズムも使える
。好ましいメカニズムは、メモリ書込指定子の物理アド
レスをキュー入れするメモリアクセス装置内の“書込キ
二一”70(第1図参照)である、従って、GP装置が
宛先ロケーションのアドレスを計算するとき、対応した
結果が実行装置13の退去装置27によってメモリに退
去されるまで、CP装置はそのアドレスをそれを識別す
るコードと共に、書込キューに記憶されるべき宛先アド
レスとしてメモリアクセス装置に伝送している。退去装
置はデコードされたときと同じシーケンスで結果を退去
させるので、結果がメモリアクセス装置に退去されると
き、各結果に関するそれぞれのアドレスも書込キューの
先頭から取り除かれる。書込キュー70のさらに詳しい
特徴は、前出の1989年2月3日に出願されたり、F
ite等の米国特許出願通しl1h306.767、名
称「パイプライン式コンピュータシステムにおける可変
数の潜在的なメモリアクセス衝突を解消する方法及び装
置」に開示されており、同出願は参照によってここに含
まれるものとする。
次に第9図を参照すると、ソースポインタ23cの概略
図が示しである。ソースポインタキューは一組15個の
5ビツトレジスタ400を含み、各レジスタは4ビツト
のポインタと、該ポインタが汎用目的レジスタあるいは
ソースリスト(第1図の24)内のエントリどちらを指
しているかを指示するフラグとを保持し得る。比較とし
て、プログラムカウンタキュー23aとフォークキュー
23bは各々、8つのレジスタを有する。
図が示しである。ソースポインタキューは一組15個の
5ビツトレジスタ400を含み、各レジスタは4ビツト
のポインタと、該ポインタが汎用目的レジスタあるいは
ソースリスト(第1図の24)内のエントリどちらを指
しているかを指示するフラグとを保持し得る。比較とし
て、プログラムカウンタキュー23aとフォークキュー
23bは各々、8つのレジスタを有する。
2つのソースポインタを同時に挿入するため、各レジス
タ400は2つのデマルチプレクサ402.403の出
力を組み合わせるそれぞれのORゲート401に接続さ
れたデータ及びクロックエネーブル入力を有し、デマル
チプレクサ402.403がSl?CI−PTRと5R
C2−PTI?及び関連した5RCI−VALIDと5
RC2−VALIDの各信号を、挿入ポインタレジスタ
404からの挿入ポインタによって選ばれた次の2つの
フリーレジスタに差し向ける。挿入ポインタは、加算器
405による計算で、0.1または2いずれ17) 5
RCI−VALIDとSI?C2−VAL rD倍信号
確認されたかに応じてOllまたは2だけインクレメン
トされる。
タ400は2つのデマルチプレクサ402.403の出
力を組み合わせるそれぞれのORゲート401に接続さ
れたデータ及びクロックエネーブル入力を有し、デマル
チプレクサ402.403がSl?CI−PTRと5R
C2−PTI?及び関連した5RCI−VALIDと5
RC2−VALIDの各信号を、挿入ポインタレジスタ
404からの挿入ポインタによって選ばれた次の2つの
フリーレジスタに差し向ける。挿入ポインタは、加算器
405による計算で、0.1または2いずれ17) 5
RCI−VALIDとSI?C2−VAL rD倍信号
確認されたかに応じてOllまたは2だけインクレメン
トされる。
また2つまでのポインタを同時に取り除くため、ソース
ポインタキュー23cは第1及び第2のマルチプレクサ
406.407を含み、これらのマルチプレクサは、R
EMOVEJとREMOVE−2信号によって要求され
たそれぞれのポインタに応じ、加算器409で0.1ま
たは2だけインクレメントされる除去ポインタレジスタ
408によって制御される。
ポインタキュー23cは第1及び第2のマルチプレクサ
406.407を含み、これらのマルチプレクサは、R
EMOVEJとREMOVE−2信号によって要求され
たそれぞれのポインタに応じ、加算器409で0.1ま
たは2だけインクレメントされる除去ポインタレジスタ
408によって制御される。
ソースポインタキュー23cに現在入っているエントリ
数を求めるため、挿入ポインタレジスタ404と除去ポ
インタレジスタ408をリセットすることによってソー
スポインタキュー23cがフラッシュされるとき、レジ
スタ420がゼロにリセットされる。減算器及び加算器
回路421.422が、キュー23cに対して挿入また
は除去される正味のポインタ数に応じて、レジスタ42
0をインクレメントまたはデクレメントする。実質上、
キュー内のエントリ数は挿入ポインタと除去ポインタと
の差であるが、レジスタ420はキュー内に現在あるポ
インタの数について、キューが完全に空かまたは完全に
満杯かの指示も与える。
数を求めるため、挿入ポインタレジスタ404と除去ポ
インタレジスタ408をリセットすることによってソー
スポインタキュー23cがフラッシュされるとき、レジ
スタ420がゼロにリセットされる。減算器及び加算器
回路421.422が、キュー23cに対して挿入また
は除去される正味のポインタ数に応じて、レジスタ42
0をインクレメントまたはデクレメントする。実質上、
キュー内のエントリ数は挿入ポインタと除去ポインタと
の差であるが、レジスタ420はキュー内に現在あるポ
インタの数について、キューが完全に空かまたは完全に
満杯かの指示も与える。
ソースポインタキューからの命令装置へPOINTII
!R−QUEUEJULL(を号を伝送する際の遅れの
ため、このようなPOINTER−QUEUEJULL
信号は、最大数の16でなく、デコーダ回路423によ
って決まる14にキュー内のエントリ数が達したとき発
生されるのが好ましい、同様に、デコーダ424と42
5は、第1及び第2ソースポインタがキューから得られ
るかどうかの指示を与える。
!R−QUEUEJULL(を号を伝送する際の遅れの
ため、このようなPOINTER−QUEUEJULL
信号は、最大数の16でなく、デコーダ回路423によ
って決まる14にキュー内のエントリ数が達したとき発
生されるのが好ましい、同様に、デコーダ424と42
5は、第1及び第2ソースポインタがキューから得られ
るかどうかの指示を与える。
次に第1O図を参照すると、64で全体を示した転送装
置、68で全体を示したフリーポインタロジック、及び
69で全体を示した一組のマルチプレクサの概略図が示
しである。転送装置64は、パリティエラーを命令デコ
ーダ(第5図の20)に戻すためのパリティチエッカ8
1と、転送パスレジスタの番号及びフラグをそれぞれバ
ッファするためのストールバッファ82.83を含ム。
置、68で全体を示したフリーポインタロジック、及び
69で全体を示した一組のマルチプレクサの概略図が示
しである。転送装置64は、パリティエラーを命令デコ
ーダ(第5図の20)に戻すためのパリティチエッカ8
1と、転送パスレジスタの番号及びフラグをそれぞれバ
ッファするためのストールバッファ82.83を含ム。
フリーポインタロジック68も、第1及び第2の有効な
非レジスタ指定子の場合、複合指定子の前に短しテラル
指定子がくるかどうかを示す信号5L−FIRST ヲ
同様にバッファするためのストールバッファ84を含む
。この信号は、複合指定子の指定子番号と短しテラル指
定子の指定子番号を比較する比較器85によって与えら
れる。バッファド信号5LJIRSTは、複合及び短し
テラル指定子のサイズから第1及び第2指定子のサイズ
を求めるために、第1マルチプレクサ86への、及びA
NDゲート88でバッファド5L−VALID信号によ
って修飾された後第2マルチプレクサ87への選択信号
として使われる。複合及び短しテラル指定子のサイズは
、OPコードと複合及び短しテラル指定子の各指定子番
号に応じてデコーダ(図示せず)から得られる。加算器
89が、複合ソースオペランドと拡張された短しテラル
オペランドの両方を記憶するソースリスト内のエントリ
の総サイズつまり合計数を計算する。
非レジスタ指定子の場合、複合指定子の前に短しテラル
指定子がくるかどうかを示す信号5L−FIRST ヲ
同様にバッファするためのストールバッファ84を含む
。この信号は、複合指定子の指定子番号と短しテラル指
定子の指定子番号を比較する比較器85によって与えら
れる。バッファド信号5LJIRSTは、複合及び短し
テラル指定子のサイズから第1及び第2指定子のサイズ
を求めるために、第1マルチプレクサ86への、及びA
NDゲート88でバッファド5L−VALID信号によ
って修飾された後第2マルチプレクサ87への選択信号
として使われる。複合及び短しテラル指定子のサイズは
、OPコードと複合及び短しテラル指定子の各指定子番
号に応じてデコーダ(図示せず)から得られる。加算器
89が、複合ソースオペランドと拡張された短しテラル
オペランドの両方を記憶するソースリスト内のエントリ
の総サイズつまり合計数を計算する。
有効な非複合指定子をソースリスト内に記憶するのに必
要なエントリの数が、マルチプレクサ90によって選ば
れる。マルチプレクサ90の選択ラインが、第2ソース
及び第1ソース用の有効データフラグとレジスタフラグ
に基づいてANDゲート91.92での検出に応じ、第
2及び第1指定子がそれぞれ有効な非レジスタ指定子で
あるかどうかを指示する。
要なエントリの数が、マルチプレクサ90によって選ば
れる。マルチプレクサ90の選択ラインが、第2ソース
及び第1ソース用の有効データフラグとレジスタフラグ
に基づいてANDゲート91.92での検出に応じ、第
2及び第1指定子がそれぞれ有効な非レジスタ指定子で
あるかどうかを指示する。
有効な非レジスタ指定子がソースリストに記憶される場
合、オーバフローの条件が生じるかどうかを求めルタめ
、減算器93が、値EBOX−LAST−POINTH
Rによって指示されたキューの先頭位置と次のフリーポ
インタ(FRII!E POINTER)の値とを比較
する。割当サイズが利用可能なスロットの数を越えたと
き、比較器94が潜在的なオーバフロー条件を検出する
。比較器94からの信号がORゲート95でキュー満杯
(QUEtlE FULL )信号と組み合わされ、ソ
ースリストが満杯かまたはソースポインタキューが満杯
かを示す信号を得る。
合、オーバフローの条件が生じるかどうかを求めルタめ
、減算器93が、値EBOX−LAST−POINTH
Rによって指示されたキューの先頭位置と次のフリーポ
インタ(FRII!E POINTER)の値とを比較
する。割当サイズが利用可能なスロットの数を越えたと
き、比較器94が潜在的なオーバフロー条件を検出する
。比較器94からの信号がORゲート95でキュー満杯
(QUEtlE FULL )信号と組み合わされ、ソ
ースリストが満杯かまたはソースポインタキューが満杯
かを示す信号を得る。
フリーポインタは、重複しないA及びBクロックによっ
てそれぞれ作動される一対のラッチ96.97と、加算
器98とを含むアキュミュレータで現在状態に保たれる
。但し、ソースリストが満杯になったときあるいは初期
設定のサイクル中、フリーポインタは5IZE−TOJ
LLOCATEニよッテインクレメントされない。OR
ゲート97とマルチブレクサ98が、上記の条件下でフ
リーポインタがその値を変化させないことを保証する。
てそれぞれ作動される一対のラッチ96.97と、加算
器98とを含むアキュミュレータで現在状態に保たれる
。但し、ソースリストが満杯になったときあるいは初期
設定のサイクル中、フリーポインタは5IZE−TOJ
LLOCATEニよッテインクレメントされない。OR
ゲート97とマルチブレクサ98が、上記の条件下でフ
リーポインタがその値を変化させないことを保証する。
例えばフラッシュ時には、INITJPL信号が確認さ
れ、EBOXJAST−POINTER信号がFREE
−POINTER信号の値に等しくセットされる。 E
BOX−LAST−POINTER信号は、実行装置内
のカウンタ(図示せず)によって与えられる。
れ、EBOXJAST−POINTER信号がFREE
−POINTER信号の値に等しくセットされる。 E
BOX−LAST−POINTER信号は、実行装置内
のカウンタ(図示せず)によって与えられる。
キューが満杯で、現在の有効な非レジスタ指定子に充分
なサイズをソースリスト内に割り当てられない場合、転
送装置はストールしなければならない。この場合、有効
フラグはゲート99によって確認されない値に設定され
る。またゲート99は、INITJPL信号が確認され
たときも、初期設定サイクル中にフラグをそれらの非確
認状態に設定する。有効フラグは、出力ラッチ100を
介してソースポインタキューに伝送される。同様に、−
組のマルチプレクサ69からの2つのソースポインタと
宛先ポインタも出力ラッチ101を介して伝送される。
なサイズをソースリスト内に割り当てられない場合、転
送装置はストールしなければならない。この場合、有効
フラグはゲート99によって確認されない値に設定され
る。またゲート99は、INITJPL信号が確認され
たときも、初期設定サイクル中にフラグをそれらの非確
認状態に設定する。有効フラグは、出力ラッチ100を
介してソースポインタキューに伝送される。同様に、−
組のマルチプレクサ69からの2つのソースポインタと
宛先ポインタも出力ラッチ101を介して伝送される。
次に第11図を参照すると、全体を61で示した拡張装
置の概略図が示しである。拡張装置はデコードされた短
リテラルデータを命令デコーダから受は取り、ソースリ
ストの36ビツトエントリへの挿入のためにそれらを拡
張する0行われる実際の拡張は、指定子のデータの種類
に依存する。
置の概略図が示しである。拡張装置はデコードされた短
リテラルデータを命令デコーダから受は取り、ソースリ
ストの36ビツトエントリへの挿入のためにそれらを拡
張する0行われる実際の拡張は、指定子のデータの種類
に依存する。
すなわち、マルチプレクサ120が指定子のデータの種
類に応じて、整数、F及びD浮動小数点、C浮動小数点
、またはH浮動小数点のいずれかのフォーマットを選ぶ
。少なくとも第1のデータワードでは、短リテラルフォ
ーマツタとして知られる組合せロジック121によって
フォーマットが与えられる。追加の32ビツトのデータ
ワードを必要とするデータの種類では、追加のワードが
ゼロで満たされる。
類に応じて、整数、F及びD浮動小数点、C浮動小数点
、またはH浮動小数点のいずれかのフォーマットを選ぶ
。少なくとも第1のデータワードでは、短リテラルフォ
ーマツタとして知られる組合せロジック121によって
フォーマットが与えられる。追加の32ビツトのデータ
ワードを必要とするデータの種類では、追加のワードが
ゼロで満たされる。
ストール中、マルチプレクサ120は前の拡張も選択し
てその状態を保持する。マルチプレクサ120の選択ラ
インは、短リテラルデータの種類に応じて拡張選択デコ
ーダ122によって与えられ、その種類はストール中ス
トールバッファ123内に保持されている。拡張選択デ
コーダは、拡張用の第1またはその他の長ワードが現在
発生されているかどうかにも応答する。この条件は、未
決の長ワードの数がゼロと異なるかどう・かを検出する
ゲート124によって与えられる。拡張に必要な長ワー
ドの数は、短リテラルデータの種類に応答するデコーダ
125によって与えられる。長ワードの必要数は、一対
のラッチ126.127とデクレメントロジック128
を含むアキュムレータによってカウントダウンされる。
てその状態を保持する。マルチプレクサ120の選択ラ
インは、短リテラルデータの種類に応じて拡張選択デコ
ーダ122によって与えられ、その種類はストール中ス
トールバッファ123内に保持されている。拡張選択デ
コーダは、拡張用の第1またはその他の長ワードが現在
発生されているかどうかにも応答する。この条件は、未
決の長ワードの数がゼロと異なるかどう・かを検出する
ゲート124によって与えられる。拡張に必要な長ワー
ドの数は、短リテラルデータの種類に応答するデコーダ
125によって与えられる。長ワードの必要数は、一対
のラッチ126.127とデクレメントロジック128
を含むアキュムレータによってカウントダウンされる。
アキュムレータは、アキュムレータを初期設定するか、
アキュムレータをクリアするか、あるいはストール時に
その値を保持するマルチプレクサ129も含む。
アキュムレータをクリアするか、あるいはストール時に
その値を保持するマルチプレクサ129も含む。
アキュムレータの次状態は、組合せロジック130によ
って選択される。アキュムレータの次状態の指示で、次
のサイクルでも拡張がm続しなければならないときは、
ゲート131が短リテラルストール信号を発生する。す
なわち、長ワードの未決数がゼロでないと、ストール信
号が確認される。
って選択される。アキュムレータの次状態の指示で、次
のサイクルでも拡張がm続しなければならないときは、
ゲート131が短リテラルストール信号を発生する。す
なわち、長ワードの未決数がゼロでないと、ストール信
号が確認される。
次に第12図を参照すると、汎用目的(CP)装置の概
略図が示しである。汎用目的装置は、指標(X)、ベー
ス(Y)及び変位(D)指定子によって指定されたメモ
リアドレスの計算に2サイクルを必要とする。第1のサ
イクルでは、ペースレジスタの内容が変位に加算される
。第2のサイクルでは、指標付は動作がバイト、ワード
、長ワードあるいは4倍長ワードいずれの文脈用である
のかに応じて、指標レジスタの内容がOll、2または
3ビット位置だけそれぞれシフトされ、前の結果に加算
される。このシフトは、・シフトマルチプレクサ(MU
X)141によって行われる。
略図が示しである。汎用目的装置は、指標(X)、ベー
ス(Y)及び変位(D)指定子によって指定されたメモ
リアドレスの計算に2サイクルを必要とする。第1のサ
イクルでは、ペースレジスタの内容が変位に加算される
。第2のサイクルでは、指標付は動作がバイト、ワード
、長ワードあるいは4倍長ワードいずれの文脈用である
のかに応じて、指標レジスタの内容がOll、2または
3ビット位置だけそれぞれシフトされ、前の結果に加算
される。このシフトは、・シフトマルチプレクサ(MU
X)141によって行われる。
ペースレジスタの値はマルチプレクサ142によって選
択され、指標レジスタの値はマルチプレクサ143によ
って選択される。第1のサイクルでは、選択されたペー
スレジスタの内容が別のマルチプレクサ144を介して
中間パイプラインつまりストールレジスタ145に送ら
れ、同じ(変位がさらに別のマルチプレクサ146によ
って選択され、0位置のシフト後で且つシフトマルチプ
レクサ141を通じて転送さイた後、第2の中間パイプ
ラインつまりストールレジスタ147で受け取られる。
択され、指標レジスタの値はマルチプレクサ143によ
って選択される。第1のサイクルでは、選択されたペー
スレジスタの内容が別のマルチプレクサ144を介して
中間パイプラインつまりストールレジスタ145に送ら
れ、同じ(変位がさらに別のマルチプレクサ146によ
って選択され、0位置のシフト後で且つシフトマルチプ
レクサ141を通じて転送さイた後、第2の中間パイプ
ラインつまりストールレジスタ147で受け取られる。
次いで、ベースと変位が加算器148で加算され、その
和がマルチプレクサ144を介してパイプラインレジス
タ145にフィードバックされる。このとき、マルチプ
レクサ146は変位の代わりに指標レジスタの値を選択
し、シフトマルチプレクサ141が指標付は動作の文脈
に従って指標レジスタの値をシフトし、シフトされた値
が第2の中間パイプラインレジスタ147に記憶される
。この計算サイクル中、加算器148が2つのパイプラ
インレジスタ145と147の内容を加算する。
和がマルチプレクサ144を介してパイプラインレジス
タ145にフィードバックされる。このとき、マルチプ
レクサ146は変位の代わりに指標レジスタの値を選択
し、シフトマルチプレクサ141が指標付は動作の文脈
に従って指標レジスタの値をシフトし、シフトされた値
が第2の中間パイプラインレジスタ147に記憶される
。この計算サイクル中、加算器148が2つのパイプラ
インレジスタ145と147の内容を加算する。
CP装置は、組合せロジック150と4つの異なる状態
を定義する2ビツトの状態レジスタ151とを含む逐次
状態マシンによって制御される。GP装置は命令のオペ
ランド処理完了後、状態ゼロにサイクルバックする。命
令デコーダからの許可信号が存在し、且つストール条件
が存在しない限り、GP装置は命令のオペランド処理完
了まで、メモリアクセス要求を発生し、その各状態を循
環可能である。状態レジスタ151のカウント及びGP
装置によるデコーダの要求または伝送を禁止するものと
考えられる許可及びストール信号を除き、組合せロジッ
ク150は、指定子モードの組合せを定義する4ビツト
、指定子のアクセスの種類を指定する3ビツト、及び状
態レジスタ151がらの2ビツトからなる9個の入力ビ
ットを有する状態テーブルによって定義可能である。指
定子モードの組合せを定義する4ビツト(D4 、D3
、o、、DI)は、下記に従って指定子モードを定義
する5つのビット(PCSM4、Ml、M!、MI)か
ら得られる: Da =PC,Ds −NOT (M4
)、Dz −(M4 AND M3 ) ORMz
、及びり。
を定義する2ビツトの状態レジスタ151とを含む逐次
状態マシンによって制御される。GP装置は命令のオペ
ランド処理完了後、状態ゼロにサイクルバックする。命
令デコーダからの許可信号が存在し、且つストール条件
が存在しない限り、GP装置は命令のオペランド処理完
了まで、メモリアクセス要求を発生し、その各状態を循
環可能である。状態レジスタ151のカウント及びGP
装置によるデコーダの要求または伝送を禁止するものと
考えられる許可及びストール信号を除き、組合せロジッ
ク150は、指定子モードの組合せを定義する4ビツト
、指定子のアクセスの種類を指定する3ビツト、及び状
態レジスタ151がらの2ビツトからなる9個の入力ビ
ットを有する状態テーブルによって定義可能である。指
定子モードの組合せを定義する4ビツト(D4 、D3
、o、、DI)は、下記に従って指定子モードを定義
する5つのビット(PCSM4、Ml、M!、MI)か
ら得られる: Da =PC,Ds −NOT (M4
)、Dz −(M4 AND M3 ) ORMz
、及びり。
−M、。このため、4ビン) (D4 、D3 、Dz
、DI)は次の第1表に示すように指定子モードと関連
付けられる: 上記の実施により、好ましい組合せロジック150は次
の第■表の状態シーケンスによって定義される。
、DI)は次の第1表に示すように指定子モードと関連
付けられる: 上記の実施により、好ましい組合せロジック150は次
の第■表の状態シーケンスによって定義される。
向上記の第■表から、組合せロジック150によって選
択される動作のシーケンスは、指定子のモードと指定子
のアクセスの種類に依存することに留意すべきである。
択される動作のシーケンスは、指定子のモードと指定子
のアクセスの種類に依存することに留意すべきである。
表中における指定子のモードと指定子のアクセスの種類
との交差から、2までの保証ストールサイクルも存在す
るが、3以下までの動作のシーケンスが存在することが
分かる。
との交差から、2までの保証ストールサイクルも存在す
るが、3以下までの動作のシーケンスが存在することが
分かる。
このため、状態レジスタ151の状態ゼロでマシンのア
イドル状態を定義し、状態1.2及び3で実際にマシン
が動作を実施する3状態のシーケンスを定義することが
できる。
イドル状態を定義し、状態1.2及び3で実際にマシン
が動作を実施する3状態のシーケンスを定義することが
できる。
次に第13図を参照すると、実行装置内の各構成要素間
における制御信号の流れを示す実行装置のブロック図が
示しである。例えば、アイドル状態となるように、実行
装置が初期設定されているものとする。このアイドル状
態中でも、実行装置は、ソースポインタキューの先頭の
有効データフラグによって指示されている有効なソース
オペランドを探索する。マイクロコードがソースポイン
タ除去ロジック161をエネーブルして、キュー先頭の
ソースポインタをソース有効性ロジック163に通す。
における制御信号の流れを示す実行装置のブロック図が
示しである。例えば、アイドル状態となるように、実行
装置が初期設定されているものとする。このアイドル状
態中でも、実行装置は、ソースポインタキューの先頭の
有効データフラグによって指示されている有効なソース
オペランドを探索する。マイクロコードがソースポイン
タ除去ロジック161をエネーブルして、キュー先頭の
ソースポインタをソース有効性ロジック163に通す。
ソースポインタが有効な非レジスタソース指定子の存在
を指示している場合、ソース有効性ロジック163は、
そのソースポインタによって指し示されているソースリ
スト内のエントリと関連した各有効ビットの状態をチエ
ツクする。有効ビットが確認されたら、ソース有効性ロ
ジック163はSR(、OK信号を、マイクロコード実
行ソース26の制御下にある命令発生装置25にILL
!出力する。
を指示している場合、ソース有効性ロジック163は、
そのソースポインタによって指し示されているソースリ
スト内のエントリと関連した各有効ビットの状態をチエ
ツクする。有効ビットが確認されたら、ソース有効性ロ
ジック163はSR(、OK信号を、マイクロコード実
行ソース26の制御下にある命令発生装置25にILL
!出力する。
命令発生装置25と、フォークキュー23bの先頭に次
のフォークが存在することを判定すると、新たなフォー
ク信号をマイクロコード実行装置26に発生する。マイ
クロコード実行装置は、そのフォークアドレスにマイク
ロコードワードを返送することによってそれに応答する
。例えば、第1ワードは命令発生装置に対して、有効非
レジスタ指定子の場合にはソースリストから、あるいは
1つ以上の指定された汎用目的レジスタから確認検査さ
れたソースデータを伝送することを命令する。
のフォークが存在することを判定すると、新たなフォー
ク信号をマイクロコード実行装置26に発生する。マイ
クロコード実行装置は、そのフォークアドレスにマイク
ロコードワードを返送することによってそれに応答する
。例えば、第1ワードは命令発生装置に対して、有効非
レジスタ指定子の場合にはソースリストから、あるいは
1つ以上の指定された汎用目的レジスタから確認検査さ
れたソースデータを伝送することを命令する。
マイクロコードワードは例えば、複数の機能装置のうち
ソースデータを受は取る特定の1つを指定する。複数の
機能装置の中には、例えば整数装置164、浮動小数点
装置165、乗算装置166、及び除算装置167が含
まれる。整数装置は例えば、32ビツトの算術論理演算
装置(ALU)、64ビツトのバレルシフタ、及びサイ
クル毎にメモリアドレスを生じるアドレス発生装置を有
しており、それによって倍長移動や倍長加算など簡単な
命令を、サイクル毎に1の速度で、わずかなマイクロコ
ード制御によって実行する。CALLS及びMOVCな
どの複合命令は、整数装置のデータ路を反復通過するこ
とでなされる。このような命令の場合、マイクロコード
は、実行装置内のデータ路リソニスへのアクセスを制御
する。複数の機能装置を用いているため、整数命令のピ
ークフローラ賄うのに、1つの整数装置で充分である。
ソースデータを受は取る特定の1つを指定する。複数の
機能装置の中には、例えば整数装置164、浮動小数点
装置165、乗算装置166、及び除算装置167が含
まれる。整数装置は例えば、32ビツトの算術論理演算
装置(ALU)、64ビツトのバレルシフタ、及びサイ
クル毎にメモリアドレスを生じるアドレス発生装置を有
しており、それによって倍長移動や倍長加算など簡単な
命令を、サイクル毎に1の速度で、わずかなマイクロコ
ード制御によって実行する。CALLS及びMOVCな
どの複合命令は、整数装置のデータ路を反復通過するこ
とでなされる。このような命令の場合、マイクロコード
は、実行装置内のデータ路リソニスへのアクセスを制御
する。複数の機能装置を用いているため、整数命令のピ
ークフローラ賄うのに、1つの整数装置で充分である。
例えば複合命令は、メモリ間の相互対話がストリング操
作とスタックフレームに固有であるため、同時に発生さ
れない。マイクロコードがこれらの命令を実行する間、
他の機能装置はアイドル状態にある。
作とスタックフレームに固有であるため、同時に発生さ
れない。マイクロコードがこれらの命令を実行する間、
他の機能装置はアイドル状態にある。
浮動小数点装置165は、F、G及びDの浮動小数点フ
ォーマットで、ADD、SUB、CMP。
ォーマットで、ADD、SUB、CMP。
CVT及びMOVなどの浮動小数点演算を実行する。命
令発生装置が命令を発生し退去させるのと同じ程度に速
く命令を受は入れられるように、これはパイプライン化
されている。また浮動小数点装置165は32ビツトで
ソースオペランドを受は取るが、内部には64ビツトの
データ路を有する。かかる浮動小数点装置は、前出のF
ossum等の米国特許出願、名称「デジタルコンピュ
ータ用パイプライン式浮動小数点加算器」に詳しく記載
されている。
令発生装置が命令を発生し退去させるのと同じ程度に速
く命令を受は入れられるように、これはパイプライン化
されている。また浮動小数点装置165は32ビツトで
ソースオペランドを受は取るが、内部には64ビツトの
データ路を有する。かかる浮動小数点装置は、前出のF
ossum等の米国特許出願、名称「デジタルコンピュ
ータ用パイプライン式浮動小数点加算器」に詳しく記載
されている。
乗算装置166は、整数と浮動小数点両方の乗算を行う
パイプライン式乗算器であるのが好ましい。
パイプライン式乗算器であるのが好ましい。
除算装置167は整数と浮動小数点両方の除算を行い、
充分に速いためパイプライン式でなく、ロジックをセー
ブする。除算装置は例えば、D及びGの浮動小数点フォ
ーマットでも、12サイクルで除算を行う。
充分に速いためパイプライン式でなく、ロジックをセー
ブする。除算装置は例えば、D及びGの浮動小数点フォ
ーマットでも、12サイクルで除算を行う。
命令が発生された場合、この動作は結果を退去させる宛
先を必要とすることが仮定されている。
先を必要とすることが仮定されている。
また、結実用の宛先ポインタは、ソース指定子が有効に
なった後しばらくして、宛先ポインタキュー23eに挿
入することも可能である。宛先が予測されるとき、マイ
クロコードは宛先ポインタ除去ロジック171をエネー
ブルして、宛先ポインタキューの先頭から宛先ポインタ
を取り除くと共に、その宛先ポインタを、複数の機能装
置22のうち結果を与えるべき特定の1つを識別する情
報と一緒に結果キエー172へ挿入可能とする。また、
命令装置は、命令中に指定された明示の宛先を持たない
命令を発生することもできる。命令は例えば、実行−時
レジスタ(第4図の43)の使用を必要とすることもあ
る。この場合、一部またはときには全ての命令の宛先が
、マイクロコード実行装置26に分かり得る。従ってこ
の場合、命令発生装置25は命令の実行のごく初めに結
果キューにロード可能となる。
なった後しばらくして、宛先ポインタキュー23eに挿
入することも可能である。宛先が予測されるとき、マイ
クロコードは宛先ポインタ除去ロジック171をエネー
ブルして、宛先ポインタキューの先頭から宛先ポインタ
を取り除くと共に、その宛先ポインタを、複数の機能装
置22のうち結果を与えるべき特定の1つを識別する情
報と一緒に結果キエー172へ挿入可能とする。また、
命令装置は、命令中に指定された明示の宛先を持たない
命令を発生することもできる。命令は例えば、実行−時
レジスタ(第4図の43)の使用を必要とすることもあ
る。この場合、一部またはときには全ての命令の宛先が
、マイクロコード実行装置26に分かり得る。従ってこ
の場合、命令発生装置25は命令の実行のごく初めに結
果キューにロード可能となる。
前述したように、実行装置は、命令の流れ中に命令が現
れたのと同じシーケンスで命令の結果を退去させるよう
に設計されている。同じことが、命令の流れ内でマクロ
命令を構成しているマイクロコードによる即座動作にも
当てはまる。このため、メモリへの書込結果を書込キュ
ーに指定されたメモリアドレスへ退去可能であるという
利点に加え、複数の機能装置が実際にそれぞれの処理を
完成させるとき、それを追跡し続ける命令発生装置の負
担を軽減するのに、結果キュー172を用いることも可
能である。代わりに、結果を退去させるタスクを別の退
去装置173に任せることもできる。
れたのと同じシーケンスで命令の結果を退去させるよう
に設計されている。同じことが、命令の流れ内でマクロ
命令を構成しているマイクロコードによる即座動作にも
当てはまる。このため、メモリへの書込結果を書込キュ
ーに指定されたメモリアドレスへ退去可能であるという
利点に加え、複数の機能装置が実際にそれぞれの処理を
完成させるとき、それを追跡し続ける命令発生装置の負
担を軽減するのに、結果キュー172を用いることも可
能である。代わりに、結果を退去させるタスクを別の退
去装置173に任せることもできる。
退去装置173は、結果キューの先頭の宛先情報をモニ
ターし、特に結果キューの先頭エントリ内の機能装置指
定によって指示されている特定の機能装置から選択され
た結果レディ信号をモニターする。結果レディ信号を受
は取ると、退去装置は結果キューの先頭エントリ内の情
報によって指示された方法で、結果を退去させることが
できる。
ターし、特に結果キューの先頭エントリ内の機能装置指
定によって指示されている特定の機能装置から選択され
た結果レディ信号をモニターする。結果レディ信号を受
は取ると、退去装置は結果キューの先頭エントリ内の情
報によって指示された方法で、結果を退去させることが
できる。
結果について通常意図されている実際のロケーションの
他、退去装置はアンダフローやオーバフローなど、結果
に伴う条件コードをチエツクし、その条件コードに応じ
トラップエネーブルフラグをエネーブルして、マイクロ
コード実行装置によってトラップを処理させることもで
きる。メモリの宛先の場合、退去装置は結果がメモリ装
置に送られることを保証する。例えば、複数の32ビツ
トの長ワードを含む結果の場合、退去装置はレジスタ1
74内にカウントを維持し、結果キューの先頭の次の結
果を退去しようとする前に、結果全体が退去されること
を保証する。また、退去装置が結果を退去させる際何ら
かの困難に遭遇した場合、退去装置は例えば、命令装置
に付属のストールロジック175をエネーブルし、問題
を正すためにストール、トラップまたは例外を実施可能
である。
他、退去装置はアンダフローやオーバフローなど、結果
に伴う条件コードをチエツクし、その条件コードに応じ
トラップエネーブルフラグをエネーブルして、マイクロ
コード実行装置によってトラップを処理させることもで
きる。メモリの宛先の場合、退去装置は結果がメモリ装
置に送られることを保証する。例えば、複数の32ビツ
トの長ワードを含む結果の場合、退去装置はレジスタ1
74内にカウントを維持し、結果キューの先頭の次の結
果を退去しようとする前に、結果全体が退去されること
を保証する。また、退去装置が結果を退去させる際何ら
かの困難に遭遇した場合、退去装置は例えば、命令装置
に付属のストールロジック175をエネーブルし、問題
を正すためにストール、トラップまたは例外を実施可能
である。
次に第14図を参照すると、実行装置13内における好
ましいデータ路のブロック図が示しである。各機能装置
は、結果を退去させるための、退去装置に終端するデー
タ路を有する。キュー先頭の結果キューエントリによっ
て指示された機能装置からの結果は“RIETIRB−
RE!5ULT”と呼ばれ、退去マルチプレクサ185
によって選択される。
ましいデータ路のブロック図が示しである。各機能装置
は、結果を退去させるための、退去装置に終端するデー
タ路を有する。キュー先頭の結果キューエントリによっ
て指示された機能装置からの結果は“RIETIRB−
RE!5ULT”と呼ばれ、退去マルチプレクサ185
によって選択される。
RIITIREJI!5ULTは、180で概略的に示
した中央データ配分ネットワークに送られる。また退去
装置27は、フラッシュのため命令装置12内のプログ
ラムカウンタ(第1図の17)と命令装置12内のレジ
スタファイルのコピーに結果を送る一対のデータ路を有
する。退去装置は、メモリアクセス装置!11へ直接型
るデータ路も有する。但し、実行装置がメモリアクセス
装置11からデータを受は取るとき、データは必ずメモ
リアクセス装置からレジスタファイル40内の16個の
メモリー時ロケーションの1つあるいは16個のソース
リストロケーションの1つに転送される。この点は、メ
モリアクセス装置11と実行装置13間のバス182か
ら得られるや否や直ちにデータが実行装置によって使わ
れる場合にも当てはまる。言い換えれば、バス182か
らデータを得るバイパスゲートがエネーブルされている
場合でも、データはレジスタファイル40に書き込まれ
る。実行装置はメモリを読み取るとき、まず“有効デー
タビット”をクリアすることによってレジスタファイル
40内の指定されたメモリー時ロケーションを無効にし
、次いでメモリアクセス装置に指定のアドレスからデー
タをフェッチし、それを指定のメモリー時ロケーション
へ伝送することを要求した後、各有効データビットが設
定されるのを待つ。メモリアクセス装置は、フェッチさ
れたデータを指定のメモリー時ロケーシッンに伝送した
とき、各1有効データビツト”に書き込んでそれを設定
する。1システムリセツト”は、メモリー時レジスタ内
の全ての“有効データビット”をクリアつまり無効にす
る。
した中央データ配分ネットワークに送られる。また退去
装置27は、フラッシュのため命令装置12内のプログ
ラムカウンタ(第1図の17)と命令装置12内のレジ
スタファイルのコピーに結果を送る一対のデータ路を有
する。退去装置は、メモリアクセス装置!11へ直接型
るデータ路も有する。但し、実行装置がメモリアクセス
装置11からデータを受は取るとき、データは必ずメモ
リアクセス装置からレジスタファイル40内の16個の
メモリー時ロケーションの1つあるいは16個のソース
リストロケーションの1つに転送される。この点は、メ
モリアクセス装置11と実行装置13間のバス182か
ら得られるや否や直ちにデータが実行装置によって使わ
れる場合にも当てはまる。言い換えれば、バス182か
らデータを得るバイパスゲートがエネーブルされている
場合でも、データはレジスタファイル40に書き込まれ
る。実行装置はメモリを読み取るとき、まず“有効デー
タビット”をクリアすることによってレジスタファイル
40内の指定されたメモリー時ロケーションを無効にし
、次いでメモリアクセス装置に指定のアドレスからデー
タをフェッチし、それを指定のメモリー時ロケーション
へ伝送することを要求した後、各有効データビットが設
定されるのを待つ。メモリアクセス装置は、フェッチさ
れたデータを指定のメモリー時ロケーシッンに伝送した
とき、各1有効データビツト”に書き込んでそれを設定
する。1システムリセツト”は、メモリー時レジスタ内
の全ての“有効データビット”をクリアつまり無効にす
る。
次に第15図を参照すると、幾つか共通の命令を実行す
るための各機能装置の状態のタイミング図が示しである
。これらの命令が完了するのにさまざまな数のサイクル
を必要とする事実、及びそれらは異なる数の退去サイク
ルを必要とするという事実は全て、結果キューと退去装
置の使用により、結果が退去するのを待ち、それに応じ
て結果を退去させるという大きな負担からマイクロコー
ド及び発生ロジックを解放することを意味している。メ
モリ装置へのアクセスの競合のため、機能装置による通
常の処理が中断されることを考えれば、その利点はいっ
そう顕著となる。また第15図は、各機能装置の動作速
度がそれぞれの動作の発生の頻度とかなりよ(一致して
いることも示している。これは、重要な設計上の因子で
ある。なぜなら1つの装置が退去しないと、他の装置が
ストールし、他の装置の結果がそれらの出カバソファで
待ち状態となり、パイプライン式機能装置の場合には、
中間結果が中間のパイプラインレジスタで待ち状態とな
る。どんな1つの機能装置も他の1つより別の機能装置
をストールさせ易くないならば、このようなシステムは
かなりよく最適化される。次に第16図を参照すると、
実行装置がソースオペランドと要求を機能装置へ発生す
るときに辿られる制御手順を要約したフローチャートが
示しである。ステップ201では、新たな動作が必要か
どうかを、マイクロコード実行装置が検出する。新たな
動作が必要なければ、現サイクルで機能装置または結果
キューを用いる必要がない。
るための各機能装置の状態のタイミング図が示しである
。これらの命令が完了するのにさまざまな数のサイクル
を必要とする事実、及びそれらは異なる数の退去サイク
ルを必要とするという事実は全て、結果キューと退去装
置の使用により、結果が退去するのを待ち、それに応じ
て結果を退去させるという大きな負担からマイクロコー
ド及び発生ロジックを解放することを意味している。メ
モリ装置へのアクセスの競合のため、機能装置による通
常の処理が中断されることを考えれば、その利点はいっ
そう顕著となる。また第15図は、各機能装置の動作速
度がそれぞれの動作の発生の頻度とかなりよ(一致して
いることも示している。これは、重要な設計上の因子で
ある。なぜなら1つの装置が退去しないと、他の装置が
ストールし、他の装置の結果がそれらの出カバソファで
待ち状態となり、パイプライン式機能装置の場合には、
中間結果が中間のパイプラインレジスタで待ち状態とな
る。どんな1つの機能装置も他の1つより別の機能装置
をストールさせ易くないならば、このようなシステムは
かなりよく最適化される。次に第16図を参照すると、
実行装置がソースオペランドと要求を機能装置へ発生す
るときに辿られる制御手順を要約したフローチャートが
示しである。ステップ201では、新たな動作が必要か
どうかを、マイクロコード実行装置が検出する。新たな
動作が必要なければ、現サイクルで機能装置または結果
キューを用いる必要がない。
新たな動作が必要なら、マイクロコード実行装置がステ
ップ202で、新たな動作を実施する機能装置が占有さ
れており、そのため新たなソースオペランドを受は入れ
られないかどうかをチエツクする。
ップ202で、新たな動作を実施する機能装置が占有さ
れており、そのため新たなソースオペランドを受は入れ
られないかどうかをチエツクする。
機能装置が占有されていると、要求の処理はそのサイク
ルで終了する。占有されてなければ、マイクロコード実
行装置はステップ203で、ソースオペランドが必要な
機能装置に転送可能かどうかをテストする。可能でなけ
れば、要求の処理はそのサイクルで終了する。可能なら
、実行装置がステップ204で、宛先が既知かどうかを
判定する。既知でなければ、処理はそのサイクルで終了
する。既知なら、マイクロコード実行装置がステップ2
05で、必要な機能装置を識別し且つその機能装置から
の結果を退去させるのに必要な全ての情報を含む新たな
エントリを結果キューに挿入する。ステップ205が完
了すると、マイクロコード実行装置は要求動作の処理ま
たは結果の退去と関連なくなる。但しこれらは全て退去
装置によってモニター可能で、マイクロコード実行装置
の助けを必要とする問題を退去装置が検出すると、問題
の制御をマイクロコード実行装置に渡すため、退去装置
は適切なス、トール、トラップまたは例外を開始可能で
ある。
ルで終了する。占有されてなければ、マイクロコード実
行装置はステップ203で、ソースオペランドが必要な
機能装置に転送可能かどうかをテストする。可能でなけ
れば、要求の処理はそのサイクルで終了する。可能なら
、実行装置がステップ204で、宛先が既知かどうかを
判定する。既知でなければ、処理はそのサイクルで終了
する。既知なら、マイクロコード実行装置がステップ2
05で、必要な機能装置を識別し且つその機能装置から
の結果を退去させるのに必要な全ての情報を含む新たな
エントリを結果キューに挿入する。ステップ205が完
了すると、マイクロコード実行装置は要求動作の処理ま
たは結果の退去と関連なくなる。但しこれらは全て退去
装置によってモニター可能で、マイクロコード実行装置
の助けを必要とする問題を退去装置が検出すると、問題
の制御をマイクロコード実行装置に渡すため、退去装置
は適切なス、トール、トラップまたは例外を開始可能で
ある。
次に第17図を参照すると、退去装置が結果を退去させ
、結果キューを処理する際に辿られる制御手順のフロー
チャートが示しである。第1ステツプ211では、結果
キューが空かどうかを退去装置がチエツクする。空なら
、結果キューの処理はそのサイクルで完了する。空でな
いと、退去装置はステップ212で、要求の結果が結果
キューの先頭で得られるかどうかをテストする。すなわ
ち、退去装置は要求に割り当てられた機能装置を識別す
るエントリ内の情報を得て、その機能装置からの結果レ
ディ信号をテストする。結果レディ信号がWi認されな
いと、退去装置による結果キュ−の処理はそのサイクル
で終了する。結果レディ信号が確認されると、退去装置
はステップ213で、結果キューの先頭にあるエントリ
内の宛先情報を捜し、指示された宛先が得られるかどう
かをチヱ7りする。得られなければ、退去装置による結
果キューの処理はそのサイクルで終了する。得られれば
、退去装置がステップ214で、結果キューの先頭にあ
るエントリ内の情報に基づいて、結果の退去を開始可能
となる。結果が退去されると、退去装置はステップ21
5で、結果キューの先頭にあるエントリを取り除くこと
によって、実行装置の状態を変更可能となる。エントリ
が結果キューの先頭から取り除かれたところで、その結
果の退去が完了する。
、結果キューを処理する際に辿られる制御手順のフロー
チャートが示しである。第1ステツプ211では、結果
キューが空かどうかを退去装置がチエツクする。空なら
、結果キューの処理はそのサイクルで完了する。空でな
いと、退去装置はステップ212で、要求の結果が結果
キューの先頭で得られるかどうかをテストする。すなわ
ち、退去装置は要求に割り当てられた機能装置を識別す
るエントリ内の情報を得て、その機能装置からの結果レ
ディ信号をテストする。結果レディ信号がWi認されな
いと、退去装置による結果キュ−の処理はそのサイクル
で終了する。結果レディ信号が確認されると、退去装置
はステップ213で、結果キューの先頭にあるエントリ
内の宛先情報を捜し、指示された宛先が得られるかどう
かをチヱ7りする。得られなければ、退去装置による結
果キューの処理はそのサイクルで終了する。得られれば
、退去装置がステップ214で、結果キューの先頭にあ
るエントリ内の情報に基づいて、結果の退去を開始可能
となる。結果が退去されると、退去装置はステップ21
5で、結果キューの先頭にあるエントリを取り除くこと
によって、実行装置の状態を変更可能となる。エントリ
が結果キューの先頭から取り除かれたところで、その結
果の退去が完了する。
次に第18図を参照すると、退去キューにおけるエント
リ用の好ましいフォーマットの図が示しである。エント
リは例えば、27ビツトの情報を含む。最初の3ビン)
<26:24>は、機能装置のうち退去すべき次の結果
をそこから受は取る特定の1つを選ぶRETIRE−T
AG (退去タグ)を指定する。
リ用の好ましいフォーマットの図が示しである。エント
リは例えば、27ビツトの情報を含む。最初の3ビン)
<26:24>は、機能装置のうち退去すべき次の結果
をそこから受は取る特定の1つを選ぶRETIRE−T
AG (退去タグ)を指定する。
ビット23には、例えば、選択された条件コードを設定
して、使用結果信号(第13図参照)によって肯定応答
される代わりに、機能装置が新たな一組のオペランドか
ら自由に結果を生成できるように、結果がどこかに書き
込まれるかどうかを指示するフラグが存在する。
して、使用結果信号(第13図参照)によって肯定応答
される代わりに、機能装置が新たな一組のオペランドか
ら自由に結果を生成できるように、結果がどこかに書き
込まれるかどうかを指示するフラグが存在する。
ビット22は、結果がメモリに書き込まれるかどうかを
示すメモリ宛先フラグである。結果キュー内のエントリ
が、メモリアドレスを指示する必要はない。通常の状況
下では、メモリアドレスがすでに物理メモリアドレスに
変換されており、結果を待っているからである。
示すメモリ宛先フラグである。結果キュー内のエントリ
が、メモリアドレスを指示する必要はない。通常の状況
下では、メモリアドレスがすでに物理メモリアドレスに
変換されており、結果を待っているからである。
ビット<21:20>は、結果の文脈がバイト、ワード
、長ワードまたは4倍長ワードのいずれであるかを示す
文脈フィールドCTXを示す。例えば4倍長ワードの場
合には、32ビツトのデータラインを介して4倍長ワー
ドを退去させるのに2サイクルが必要なので、退去のた
めには2サイクルが必要となる。バイト及びワード文脈
は、32ビツトのレジスタまたはメモリロケーションへ
のバイトまたはワードの書込を行うのに使える。
、長ワードまたは4倍長ワードのいずれであるかを示す
文脈フィールドCTXを示す。例えば4倍長ワードの場
合には、32ビツトのデータラインを介して4倍長ワー
ドを退去させるのに2サイクルが必要なので、退去のた
めには2サイクルが必要となる。バイト及びワード文脈
は、32ビツトのレジスタまたはメモリロケーションへ
のバイトまたはワードの書込を行うのに使える。
4ビツトフイールドUCCK<19:16>は、実行装
置の条件コードビットがどのような更新されるべきかを
示す一組のフラグである。これらのフラグは例えば、プ
ロセッサ状態ワードの負ビット、ゼロビット、オーバフ
ロービット、及びキャリ (拾上げ)ピントをエネーブ
ルまたはディセーブルする。
置の条件コードビットがどのような更新されるべきかを
示す一組のフラグである。これらのフラグは例えば、プ
ロセッサ状態ワードの負ビット、ゼロビット、オーバフ
ロービット、及びキャリ (拾上げ)ピントをエネーブ
ルまたはディセーブルする。
次の4ビットフィールドUTRAPJN < 15 :
12 >は、それぞれのトラップ条件をエネーブルま
たはディセーブルする一組の4トラツプエネーブルビツ
トである。
12 >は、それぞれのトラップ条件をエネーブルま
たはディセーブルする一組の4トラツプエネーブルビツ
トである。
ビット11は、マクロ命令の終わりをマーク表示するフ
ラグULASTである。
ラグULASTである。
ビット10は、マクロ分岐の終わりをマーク表示するフ
ラグUMACROBである。
ラグUMACROBである。
ビット9は、エネーブルされると、それ以後の退去動作
を完了する前に、成功したメモリ書込の肯定応答を退去
装置が待つことを要求するフラグU?IEM−WAIT
である。
を完了する前に、成功したメモリ書込の肯定応答を退去
装置が待つことを要求するフラグU?IEM−WAIT
である。
最後にビット<9 : Q>には、実行装置内で結果を
受は取る選択されたロケーションDEST−3ELを指
示する9ピントが存在する。これらのロケーションは例
えば、結果を受は取ることができる実行装置内の汎用目
的レジスタまたはその他任意のレジスタである。
受は取る選択されたロケーションDEST−3ELを指
示する9ピントが存在する。これらのロケーションは例
えば、結果を受は取ることができる実行装置内の汎用目
的レジスタまたはその他任意のレジスタである。
第1図は本発明を用いたパイプライン式中央処理装置を
有するデジタルコンピュータシステムのブロック図;第
2図は命令を処理するために実行され、第1図に基づく
パイプライン式命令プロセッサによって異なる命令に対
しパラレルに実行し得る各種ステップを示す図;第3図
は第1図の命令のブロック図で、命令装置と実行装置の
間に挿入されるキューをさらに詳細に示す;第4図は第
1図の命令デコーダのブロック図で、命令装置、メモリ
アクセス装置及び実行装置間でデータを交換するのに使
われるソースリストに関連したデータバス及びその他の
レジスタをさらに詳細に示す;第5図は命令装置からキ
ューまでのデータバスを示すブロック図;第6図は命令
装置内のオペランド処理装置において命令デコーダから
汎用目的(GP)装置へCPババス経て転送されるオペ
ランド指定子データのフォーマットを示す図;第7図は
オペランド処理装置において命令デコーダから拡張装置
へSLババス経て転送されるオペランド指定子データの
フォーマットを示す図;第8図はオペランド処理装置に
おいて命令デコーダから転送装置へTRバスを経て送ら
れるソース及び宛先指定子データのフォーマットを示す
図;第9図はソースポインタキューの概略図:第10図
は転送装置の概略図;第11図は拡張装置の概略図;第
12図はオペランド処理装置内の汎用目的装置の概略図
;第13図は実行装置のブロック図で、実行命令及び退
去結果の制御フローを示す;第14図は実行装置のブロ
ック図で、命令の実行及び結果の退去時に使われるデー
タバスを示す;第15図は各種種類のデータのソースオ
ペランドについてそれぞれの算術または論理演算を行う
際の、各機能装置の状態を示すタイミング図;第16図
は実行装置内の命令発生装置がソースオペランドを指定
の機能装置に発生し、その発生と各結果の宛先を実行装
置内の結果キューへ記録する際に辿る制御手順のフロー
チャート;第17図は退去装置が退去キューの先頭エン
トリによって指定された機能装置の結果を得、それらの
結果を同エントリによって指定された宛先に退去させ、
同エントリを結果キューの先頭から取り除く際に辿られ
る制御手順のフローチャート;及び第18図は結果キュ
ーのエントリに記憶されるのが好ましい情報を示す図で
ある。 10・・・主メモリ、 11−・・メモリインタフェース(アクセス)装置、1
2・−・命令装置、 13・・−・実行装置、 17.18−フェッチ手段(プログラムカウンタ、命令
キャッシュ)、 20・−命令デコーダ、 22(164,165,166,167)・・・機能袋
W(整数、浮動小数点、乗算、除算装置)、 25−・発生装置、 27−退去装置、 172−結果キュー 1ζ E×ババ スRノ勺ス FIG、6
有するデジタルコンピュータシステムのブロック図;第
2図は命令を処理するために実行され、第1図に基づく
パイプライン式命令プロセッサによって異なる命令に対
しパラレルに実行し得る各種ステップを示す図;第3図
は第1図の命令のブロック図で、命令装置と実行装置の
間に挿入されるキューをさらに詳細に示す;第4図は第
1図の命令デコーダのブロック図で、命令装置、メモリ
アクセス装置及び実行装置間でデータを交換するのに使
われるソースリストに関連したデータバス及びその他の
レジスタをさらに詳細に示す;第5図は命令装置からキ
ューまでのデータバスを示すブロック図;第6図は命令
装置内のオペランド処理装置において命令デコーダから
汎用目的(GP)装置へCPババス経て転送されるオペ
ランド指定子データのフォーマットを示す図;第7図は
オペランド処理装置において命令デコーダから拡張装置
へSLババス経て転送されるオペランド指定子データの
フォーマットを示す図;第8図はオペランド処理装置に
おいて命令デコーダから転送装置へTRバスを経て送ら
れるソース及び宛先指定子データのフォーマットを示す
図;第9図はソースポインタキューの概略図:第10図
は転送装置の概略図;第11図は拡張装置の概略図;第
12図はオペランド処理装置内の汎用目的装置の概略図
;第13図は実行装置のブロック図で、実行命令及び退
去結果の制御フローを示す;第14図は実行装置のブロ
ック図で、命令の実行及び結果の退去時に使われるデー
タバスを示す;第15図は各種種類のデータのソースオ
ペランドについてそれぞれの算術または論理演算を行う
際の、各機能装置の状態を示すタイミング図;第16図
は実行装置内の命令発生装置がソースオペランドを指定
の機能装置に発生し、その発生と各結果の宛先を実行装
置内の結果キューへ記録する際に辿る制御手順のフロー
チャート;第17図は退去装置が退去キューの先頭エン
トリによって指定された機能装置の結果を得、それらの
結果を同エントリによって指定された宛先に退去させ、
同エントリを結果キューの先頭から取り除く際に辿られ
る制御手順のフローチャート;及び第18図は結果キュ
ーのエントリに記憶されるのが好ましい情報を示す図で
ある。 10・・・主メモリ、 11−・・メモリインタフェース(アクセス)装置、1
2・−・命令装置、 13・・−・実行装置、 17.18−フェッチ手段(プログラムカウンタ、命令
キャッシュ)、 20・−命令デコーダ、 22(164,165,166,167)・・・機能袋
W(整数、浮動小数点、乗算、除算装置)、 25−・発生装置、 27−退去装置、 172−結果キュー 1ζ E×ババ スRノ勺ス FIG、6
Claims (1)
- 【特許請求の範囲】 1、パイプライン式プロセッサで複数の命令を事前処理
し実行する方法で、前記命令がオペレーションコードと
オペランド指定子を含み、前記パイプライン式プロセッ
サが各種種類の前記命令を実行する複数の別個な機能装
置を含むものにおいて; 前記命令をデコードして、前記オペレーションコードと
オペランド指定子を得るステップ;前記オペランド指定
子によって指定されたソースオペランドをフェッチする
ステップ; デコードされたオペレーションコードによって指示され
た各機能装置にソースオペランドを発生し、機能装置を
パラレルに動作して、各種種類の前記命令を実行するス
テップ;及び 各機能装置からの結果を退去させるステップ;を含む方
法。 2、前記各機能装置によってパラレルに実行される各種
種類の命令が整数命令、浮動小数点命令、乗算命令、及
び除算命令を含む請求項1記載の方法。 3、前記ソースオペランドが、マイクロコード制御式の
命令発生装置によって各機能装置に発生される請求項1
記載の方法。 4、命令が機能装置に発生されたときエントリを結果キ
ュー内に挿入するステップをさらに含み、該エントリが
特定の機能装置と機能装置の結果の宛先とを指示する請
求項1記載の方法。 5、新たな動作が必要なことをマイクロコード実行装置
が判定し、各機能装置が占有されていず、ソースオペラ
ンドが利用可能で、さらに結果の宛先が既知であるとき
、エントリがマイクロコード実行装置によって結果キュ
ー内に挿入される請求項4記載の方法。 6、結果がメモリ内に書き込まれるべきかどうかを示す
フラグを前記エントリが含む請求項4記載の方法。 7、結果の文脈を示す文脈フィールドを前記エントリが
含む請求項4記載の方法。 1 条件コードをエネーブルするフラグを前記エントリ
が含む請求項4記載の方法。 9、マイクロ命令の終わりをマーク表示するフラグを前
記エントリが含む請求項4記載の方法。 10、結果が利用可能であり、且つエントリによって指
示された宛先が利用可能であるとき、前記結果キューの
先頭にあるエントリによって指示された機能装置からの
結果を退去させるステップをさらに含む請求項4記載の
方法。 11、結果が退去されたとき、前記結果キューの先頭か
らエントリを取り除くステップをさらに含む請求項10
記載の方法。 12、命令の流れ中に命令が現れたのと同じシーケンス
で、命令の結果が退去される請求項1記載の方法。 13、複数の命令を事前処理し実行するパイプライン式
プロセッサで、前記命令がオペレーションコードとオペ
ランド指定子を含むものにおいて、前記命令をデコード
して前記オペレーションコードとオペランド指定子を得
る手段、前記オペランド指定子によって指定されたソー
スオペランドをフェッチする手段、各種種類の前記命令
を実行する複数の別個な機能装置、デコードされたオペ
レーションコードに応じてコマンドとソースオペランド
を各機能装置に発生し、各種種類の命令のパラレルな実
行を開始する手段、及び各機能装置からの結果を退去さ
せる手段を含むパイプライン式プロセッサ。 14、コマンドとソースオペランドを発生する前記手段
が、マイクロコード制御式の発生装置を含む請求項13
記載のパイプライン式プロセッサ。 15、前記機能装置が前記マイクロコードによって制御
される整数装置を含み、その他の機能装置が前記マイク
ロコードと独立に制御される請求項14記載のパイプラ
イン式プロセッサ。 16、前記機能装置が整数及びシフタ装置、浮動小数点
装置、乗算装置、及び除算装置を含む請求項13記載の
パイプライン式プロセッサ。 17、各機能装置からの結果を退去させる前記手段が結
果キュー、各機能装置とそれぞれの結果の各宛先を識別
するエントリを前記結果キューにロードする手段、及び
各機能装置からの結果を、前記結果キュー内のエントリ
によって指示された各宛先に退去させる手段を含む請求
項13記載のパイプライン式プロセッサ。 18、複数の命令を事前処理し実行するパイプライン式
プロセッサで、前記命令がオペレーションコードとオペ
ランド指定子を含むものにおいて、前記命令をデコード
して前記オペレーションコードとオペランド指定子を得
る手段、前記オペランド指定子によって指定されたソー
スオペランドをフェッチする手段、各種種類の前記命令
を実行する複数の別個な機能装置、機能装置の各々とそ
れぞれの結果の各宛先を識別するエントリをキュー入れ
する結果キュー、デコードされたオペレーションコード
に応じてコマンドとソースオペランドを各機能装置に発
生し、各宛先が既知のときに対応したエントリを前記結
果キューに挿入するマイクロコード制御式の発生装置、
及び各機能装置からのそれぞれの結果を結果キューに挿
入されたエントリによって指示された宛先に退去させる
、前記発生装置と別個の退去装置を含むパイプライン式
プロセッサ。 19、前記複数の機能装置が前記マイクロコードによっ
て制御される整数及びシフタ装置、浮動小数点装置、乗
算装置、及び除算装置を含む請求項18記載のパイプラ
イン式プロセッサ。 20、前記浮動小数点装置、乗算装置及び除算装置が前
記マイクロコードによって制御されない請求項19記載
のパイプライン式プロセッサ。
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US07/306,832 US5067069A (en) | 1989-02-03 | 1989-02-03 | Control of multiple functional units with parallel operation in a microcoded execution unit |
| US306832 | 1989-02-03 | ||
| AU53951/90A AU632559B2 (en) | 1989-02-03 | 1990-04-27 | Control of multiple function units with parallel operation in a microcoded execution unit |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH02208729A true JPH02208729A (ja) | 1990-08-20 |
Family
ID=25630277
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP1239810A Pending JPH02208729A (ja) | 1989-02-03 | 1989-09-14 | マイクロコード式実行装置での並列動作による複数機能装置の制御 |
Country Status (5)
| Country | Link |
|---|---|
| US (1) | US5067069A (ja) |
| EP (1) | EP0381471B1 (ja) |
| JP (1) | JPH02208729A (ja) |
| AU (1) | AU632559B2 (ja) |
| CA (1) | CA1323938C (ja) |
Families Citing this family (218)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5768575A (en) * | 1989-02-24 | 1998-06-16 | Advanced Micro Devices, Inc. | Semi-Autonomous RISC pipelines for overlapped execution of RISC-like instructions within the multiple superscalar execution units of a processor having distributed pipeline control for sepculative and out-of-order execution of complex instructions |
| US5781753A (en) * | 1989-02-24 | 1998-07-14 | Advanced Micro Devices, Inc. | Semi-autonomous RISC pipelines for overlapped execution of RISC-like instructions within the multiple superscalar execution units of a processor having distributed pipeline control for speculative and out-of-order execution of complex instructions |
| 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 |
| JP2710994B2 (ja) * | 1989-08-29 | 1998-02-10 | 三菱電機株式会社 | データ処理装置 |
| US5471593A (en) * | 1989-12-11 | 1995-11-28 | Branigin; Michael H. | Computer processor with an efficient means of executing many instructions simultaneously |
| US5241636A (en) * | 1990-02-14 | 1993-08-31 | Intel Corporation | Method for parallel instruction execution in a computer |
| JPH04219859A (ja) * | 1990-03-12 | 1992-08-10 | Hewlett Packard Co <Hp> | 並列プロセッサに直列命令ストリームデータを分散するハードウェアディストリビュータ |
| US5471591A (en) * | 1990-06-29 | 1995-11-28 | Digital Equipment Corporation | Combined write-operand queue and read-after-write dependency scoreboard |
| EP0468831B1 (en) * | 1990-06-29 | 1997-10-15 | Digital Equipment Corporation | Bus protocol for write-back cache processor |
| US5251310A (en) * | 1990-06-29 | 1993-10-05 | Digital Equipment Corporation | Method and apparatus for exchanging blocks of information between a cache memory and a main memory |
| US5432918A (en) * | 1990-06-29 | 1995-07-11 | Digital Equipment Corporation | Method and apparatus for ordering read and write operations using conflict bits in a write queue |
| GB9027853D0 (en) * | 1990-12-21 | 1991-02-13 | Inmos Ltd | Multiple instruction issue |
| JP2693651B2 (ja) * | 1991-04-30 | 1997-12-24 | 株式会社東芝 | 並列プロセッサー |
| EP0518420A3 (en) * | 1991-06-13 | 1994-08-10 | Ibm | Computer system for concurrent processing of multiple out-of-order instructions |
| US5630157A (en) * | 1991-06-13 | 1997-05-13 | International Business Machines Corporation | Computer organization for multiple and out-of-order execution of condition code testing and setting instructions |
| US5493687A (en) | 1991-07-08 | 1996-02-20 | Seiko Epson Corporation | RISC microprocessor architecture implementing multiple typed register sets |
| US5826055A (en) * | 1991-07-08 | 1998-10-20 | Seiko Epson Corporation | System and method for retiring instructions in a superscalar microprocessor |
| US5539911A (en) | 1991-07-08 | 1996-07-23 | Seiko Epson Corporation | High-performance, superscalar-based computer system with out-of-order instruction execution |
| GB2263565B (en) * | 1992-01-23 | 1995-08-30 | Intel Corp | Microprocessor with apparatus for parallel execution of instructions |
| DE69311330T2 (de) * | 1992-03-31 | 1997-09-25 | Seiko Epson Corp., Tokio/Tokyo | Befehlsablauffolgeplanung von einem risc-superskalarprozessor |
| EP0638183B1 (en) * | 1992-05-01 | 1997-03-05 | Seiko Epson Corporation | A system and method for retiring instructions in a superscalar microprocessor |
| JP3372970B2 (ja) * | 1992-09-02 | 2003-02-04 | シャープ株式会社 | 自己同期型転送制御回路 |
| JP3338488B2 (ja) * | 1992-11-18 | 2002-10-28 | 富士通株式会社 | データ処理装置の検証方法及び装置 |
| US5604912A (en) * | 1992-12-31 | 1997-02-18 | Seiko Epson Corporation | System and method for assigning tags to instructions to control instruction execution |
| 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 |
| WO1994016384A1 (en) * | 1992-12-31 | 1994-07-21 | Seiko Epson Corporation | System and method for register renaming |
| JPH06236274A (ja) * | 1993-01-08 | 1994-08-23 | Internatl Business Mach Corp <Ibm> | スーパースカラ・プロセッサ・システム内でスカラ命令を追跡する方法およびシステム |
| US5898882A (en) * | 1993-01-08 | 1999-04-27 | International Business Machines Corporation | Method and system for enhanced instruction dispatch in a superscalar processor system utilizing independently accessed intermediate storage |
| CA2107305A1 (en) | 1993-01-08 | 1994-07-09 | James Allen Kahle | Method and system for nonsequential instruction dispatch and execution in a superscalar processor system |
| 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 | 윌리엄 티.엘리스 | 슈퍼스칼라 프로세서 시스템에서 중간 기억 버퍼의 할당을 인덱스하기 위한 방법 및 시스템 |
| US5740393A (en) * | 1993-10-15 | 1998-04-14 | Intel Corporation | Instruction pointer limits in processor that performs speculative out-of-order instruction execution |
| US5630082A (en) * | 1993-10-29 | 1997-05-13 | Advanced Micro Devices, Inc. | Apparatus and method for instruction queue scanning |
| DE69429061T2 (de) * | 1993-10-29 | 2002-07-18 | Advanced Micro Devices, Inc. | Superskalarmikroprozessoren |
| US5574928A (en) * | 1993-10-29 | 1996-11-12 | Advanced Micro Devices, Inc. | Mixed integer/floating point processor core for a superscalar microprocessor with a plurality of operand buses for transferring operand segments |
| EP0651320B1 (en) | 1993-10-29 | 2001-05-23 | Advanced Micro Devices, Inc. | Superscalar instruction decoder |
| US6079014A (en) * | 1993-12-02 | 2000-06-20 | Intel Corporation | Processor that redirects an instruction fetch pipeline immediately upon detection of a mispredicted branch while committing prior instructions to an architectural state |
| US5884057A (en) * | 1994-01-11 | 1999-03-16 | Exponential Technology, Inc. | Temporal re-alignment of a floating point pipeline to an integer pipeline for emulation of a load-operate architecture on a load/store processor |
| US5542059A (en) * | 1994-01-11 | 1996-07-30 | Exponential Technology, Inc. | Dual instruction set processor having a pipeline with a pipestage functional unit that is relocatable in time and sequence order |
| US5590351A (en) * | 1994-01-21 | 1996-12-31 | Advanced Micro Devices, Inc. | Superscalar execution unit for sequential instruction pointer updates and segment limit checks |
| SG75756A1 (en) * | 1994-02-28 | 2000-10-24 | Intel Corp | Method and apparatus for avoiding writeback conflicts between execution units sharing a common writeback path |
| US5590352A (en) * | 1994-04-26 | 1996-12-31 | Advanced Micro Devices, Inc. | Dependency checking and forwarding of variable width operands |
| 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 |
| US5649225A (en) * | 1994-06-01 | 1997-07-15 | Advanced Micro Devices, Inc. | Resynchronization of a superscalar processor |
| US5559975A (en) | 1994-06-01 | 1996-09-24 | Advanced Micro Devices, Inc. | Program counter update mechanism |
| 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 |
| 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 |
| US6006324A (en) | 1995-01-25 | 1999-12-21 | Advanced Micro Devices, Inc. | High performance superscalar alignment unit |
| US5819057A (en) * | 1995-01-25 | 1998-10-06 | Advanced Micro Devices, Inc. | Superscalar microprocessor including an instruction alignment unit with limited dispatch to decode units |
| US5832249A (en) * | 1995-01-25 | 1998-11-03 | Advanced Micro Devices, Inc. | High performance superscalar alignment unit |
| 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 |
| US5819059A (en) * | 1995-04-12 | 1998-10-06 | Advanced Micro Devices, Inc. | Predecode unit adapted for variable byte-length instruction set processors and method of operating the same |
| US5991869A (en) * | 1995-04-12 | 1999-11-23 | Advanced Micro Devices, Inc. | Superscalar microprocessor including a high speed instruction alignment unit |
| US5822574A (en) * | 1995-04-12 | 1998-10-13 | Advanced Micro Devices, Inc. | Functional unit with a pointer for mispredicted resolution, and a superscalar microprocessor employing the same |
| US5758114A (en) * | 1995-04-12 | 1998-05-26 | Advanced Micro Devices, Inc. | High speed instruction alignment unit for aligning variable byte-length instructions according to predecode information in a superscalar microprocessor |
| US5887152A (en) * | 1995-04-12 | 1999-03-23 | Advanced Micro Devices, Inc. | Load/store unit with multiple oldest outstanding instruction pointers for completing store and load/store miss instructions |
| 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 |
| US5802588A (en) * | 1995-04-12 | 1998-09-01 | Advanced Micro Devices, Inc. | Load/store unit implementing non-blocking loads for a superscalar microprocessor and method of selecting loads in a non-blocking fashion from a load/store buffer |
| US5822558A (en) * | 1995-04-12 | 1998-10-13 | Advanced Micro Devices, Inc. | Method and apparatus for predecoding variable byte-length instructions within a superscalar microprocessor |
| US5835753A (en) * | 1995-04-12 | 1998-11-10 | Advanced Micro Devices, Inc. | Microprocessor with dynamically extendable pipeline stages and a classifying circuit |
| US5832297A (en) * | 1995-04-12 | 1998-11-03 | Advanced Micro Devices, Inc. | Superscalar microprocessor load/store unit employing a unified buffer and separate pointers for load and store operations |
| US5900012A (en) * | 1995-05-10 | 1999-05-04 | Advanced Micro Devices, Inc. | Storage device having varying access times and a superscalar microprocessor employing the same |
| US6604190B1 (en) | 1995-06-07 | 2003-08-05 | Advanced Micro Devices, Inc. | Data address prediction structure and a method for operating the same |
| US5875315A (en) * | 1995-06-07 | 1999-02-23 | Advanced Micro Devices, Inc. | Parallel and scalable instruction scanning unit |
| US5822778A (en) * | 1995-06-07 | 1998-10-13 | Advanced Micro Devices, Inc. | Microprocessor and method of using a segment override prefix instruction field to expand the register file |
| US5875324A (en) * | 1995-06-07 | 1999-02-23 | Advanced Micro Devices, Inc. | Superscalar microprocessor which delays update of branch prediction information in response to branch misprediction until a subsequent idle clock |
| US5768574A (en) * | 1995-06-07 | 1998-06-16 | Advanced Micro Devices, Inc. | Microprocessor using an instruction field to expand the condition flags and a computer system employing the microprocessor |
| US5878255A (en) * | 1995-06-07 | 1999-03-02 | Advanced Micro Devices, Inc. | Update unit for providing a delayed update to a branch prediction array |
| US5680578A (en) * | 1995-06-07 | 1997-10-21 | Advanced Micro Devices, Inc. | Microprocessor using an instruction field to specify expanded functionality and a computer system employing same |
| US5859991A (en) * | 1995-06-07 | 1999-01-12 | Advanced Micro Devices, Inc. | Parallel and scalable method for identifying valid instructions and a superscalar microprocessor including an instruction scanning unit employing the method |
| US5761712A (en) * | 1995-06-07 | 1998-06-02 | Advanced Micro Devices | Data memory unit and method for storing data into a lockable cache in one clock cycle by previewing the tag array |
| US5768610A (en) * | 1995-06-07 | 1998-06-16 | Advanced Micro Devices, Inc. | Lookahead register value generator and a superscalar microprocessor employing same |
| US5987561A (en) | 1995-08-31 | 1999-11-16 | Advanced Micro Devices, Inc. | Superscalar microprocessor employing a data cache capable of performing store accesses in a single clock cycle |
| US5893146A (en) * | 1995-08-31 | 1999-04-06 | Advanced Micro Design, Inc. | Cache structure having a reduced tag comparison to enable data transfer from said cache |
| US5752069A (en) * | 1995-08-31 | 1998-05-12 | Advanced Micro Devices, Inc. | Superscalar microprocessor employing away prediction structure |
| US5860104A (en) * | 1995-08-31 | 1999-01-12 | Advanced Micro Devices, Inc. | Data cache which speculatively updates a predicted data cache storage location with store data and subsequently corrects mispredicted updates |
| US5826071A (en) * | 1995-08-31 | 1998-10-20 | Advanced Micro Devices, Inc. | Parallel mask decoder and method for generating said mask |
| US5781789A (en) * | 1995-08-31 | 1998-07-14 | Advanced Micro Devices, Inc. | Superscaler microprocessor employing a parallel mask decoder |
| US5854921A (en) * | 1995-08-31 | 1998-12-29 | Advanced Micro Devices, Inc. | Stride-based data address prediction structure |
| US5845323A (en) * | 1995-08-31 | 1998-12-01 | Advanced Micro Devices, Inc. | Way prediction structure for predicting the way of a cache in which an access hits, thereby speeding cache access time |
| US5872947A (en) * | 1995-10-24 | 1999-02-16 | Advanced Micro Devices, Inc. | Instruction classification circuit configured to classify instructions into a plurality of instruction types prior to decoding said instructions |
| US5881278A (en) * | 1995-10-30 | 1999-03-09 | Advanced Micro Devices, Inc. | Return address prediction system which adjusts the contents of return stack storage to enable continued prediction after a mispredicted branch |
| US5892936A (en) * | 1995-10-30 | 1999-04-06 | Advanced Micro Devices, Inc. | Speculative register file for storing speculative register states and removing dependencies between instructions utilizing the register |
| 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 |
| US5796974A (en) * | 1995-11-07 | 1998-08-18 | Advanced Micro Devices, Inc. | Microcode patching apparatus and method |
| 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 |
| US5787474A (en) * | 1995-11-20 | 1998-07-28 | Advanced Micro Devices, Inc. | Dependency checking structure for a pair of caches which are accessed from different pipeline stages of an instruction processing pipeline |
| US5903910A (en) * | 1995-11-20 | 1999-05-11 | Advanced Micro Devices, Inc. | Method for transferring data between a pair of caches configured to be accessed from different stages of an instruction processing pipeline |
| US5835744A (en) * | 1995-11-20 | 1998-11-10 | Advanced Micro Devices, Inc. | Microprocessor configured to swap operands in order to minimize dependency checking logic |
| US5864707A (en) * | 1995-12-11 | 1999-01-26 | Advanced Micro Devices, Inc. | Superscalar microprocessor configured to predict return addresses from a return stack storage |
| US5930490A (en) * | 1996-01-02 | 1999-07-27 | Advanced Micro Devices, Inc. | Microprocessor configured to switch instruction sets upon detection of a plurality of consecutive instructions |
| US5819080A (en) * | 1996-01-02 | 1998-10-06 | Advanced Micro Devices, Inc. | Microprocessor using an instruction field to specify condition flags for use with branch instructions and a computer system employing the microprocessor |
| US5822559A (en) * | 1996-01-02 | 1998-10-13 | Advanced Micro Devices, Inc. | Apparatus and method for aligning variable byte-length instructions to a plurality of issue positions |
| US5742791A (en) * | 1996-02-14 | 1998-04-21 | Advanced Micro Devices, Inc. | Apparatus for detecting updates to instructions which are within an instruction processing pipeline of a microprocessor |
| US5687110A (en) * | 1996-02-20 | 1997-11-11 | Advanced Micro Devices, Inc. | Array having an update circuit for updating a storage location with a value stored in another storage location |
| US5848287A (en) | 1996-02-20 | 1998-12-08 | Advanced Micro Devices, Inc. | Superscalar microprocessor including a reorder buffer which detects dependencies between accesses to a pair of caches |
| US5787266A (en) * | 1996-02-20 | 1998-07-28 | Advanced Micro Devices, Inc. | Apparatus and method for accessing special registers without serialization |
| US5813033A (en) * | 1996-03-08 | 1998-09-22 | Advanced Micro Devices, Inc. | Superscalar microprocessor including a cache configured to detect dependencies between accesses to the cache and another cache |
| US5790821A (en) | 1996-03-08 | 1998-08-04 | Advanced Micro Devices, Inc. | Control bit vector storage for storing control vectors corresponding to instruction operations in a microprocessor |
| US5838943A (en) * | 1996-03-26 | 1998-11-17 | Advanced Micro Devices, Inc. | Apparatus for speculatively storing and restoring data to a cache memory |
| US5752259A (en) * | 1996-03-26 | 1998-05-12 | Advanced Micro Devices, Inc. | Instruction cache configured to provide instructions to a microprocessor having a clock cycle time less than a cache access time of said instruction cache |
| 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 |
| US5918056A (en) * | 1996-05-17 | 1999-06-29 | Advanced Micro Devices, Inc. | Segmentation suspend mode for real-time interrupt support |
| US5748978A (en) * | 1996-05-17 | 1998-05-05 | Advanced Micro Devices, Inc. | Byte queue divided into multiple subqueues for optimizing instruction selection logic |
| US6108769A (en) | 1996-05-17 | 2000-08-22 | Advanced Micro Devices, Inc. | Dependency table for reducing dependency checking hardware |
| US5835511A (en) * | 1996-05-17 | 1998-11-10 | Advanced Micro Devices, Inc. | Method and mechanism for checking integrity of byte enable signals |
| US5822560A (en) * | 1996-05-23 | 1998-10-13 | Advanced Micro Devices, Inc. | Apparatus for efficient instruction execution via variable issue and variable control vectors per issue |
| US5867680A (en) * | 1996-07-24 | 1999-02-02 | Advanced Micro Devices, Inc. | Microprocessor configured to simultaneously dispatch microcode and directly-decoded instructions |
| US5903740A (en) | 1996-07-24 | 1999-05-11 | Advanced Micro Devices, Inc. | Apparatus and method for retiring instructions in excess of the number of accessible write ports |
| US5813045A (en) * | 1996-07-24 | 1998-09-22 | Advanced Micro Devices, Inc. | Conditional early data address generation mechanism for a microprocessor |
| US6049863A (en) * | 1996-07-24 | 2000-04-11 | Advanced Micro Devices, Inc. | Predecoding technique for indicating locations of opcode bytes in variable byte-length instructions within a superscalar microprocessor |
| 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 |
| US5900013A (en) * | 1996-07-26 | 1999-05-04 | Advanced Micro Devices, Inc. | Dual comparator scheme for detecting a wrap-around condition and generating a cancel signal for removing wrap-around buffer entries |
| US5872943A (en) * | 1996-07-26 | 1999-02-16 | Advanced Micro Devices, Inc. | Apparatus for aligning instructions using predecoded shift amounts |
| US5872951A (en) * | 1996-07-26 | 1999-02-16 | Advanced Micro Design, Inc. | Reorder buffer having a future file for storing speculative instruction execution results |
| US5915110A (en) * | 1996-07-26 | 1999-06-22 | Advanced Micro Devices, Inc. | Branch misprediction recovery in a reorder buffer having a future file |
| US5822575A (en) * | 1996-09-12 | 1998-10-13 | Advanced Micro Devices, Inc. | Branch prediction storage for storing branch prediction information such that a corresponding tag may be routed with the branch instruction |
| US5765016A (en) * | 1996-09-12 | 1998-06-09 | Advanced Micro Devices, Inc. | Reorder buffer configured to store both speculative and committed register states |
| US6343309B1 (en) | 1996-09-30 | 2002-01-29 | International Business Machines Corporaton | Method and apparatus for parallelizing a graphics pipeline |
| US5794028A (en) * | 1996-10-17 | 1998-08-11 | Advanced Micro Devices, Inc. | Shared branch prediction structure |
| US5920710A (en) * | 1996-11-18 | 1999-07-06 | Advanced Micro Devices, Inc. | Apparatus and method for modifying status bits in a reorder buffer with a large speculative state |
| US5870579A (en) * | 1996-11-18 | 1999-02-09 | Advanced Micro Devices, Inc. | Reorder buffer including a circuit for selecting a designated mask corresponding to an instruction that results in an exception |
| US5978906A (en) * | 1996-11-19 | 1999-11-02 | Advanced Micro Devices, Inc. | Branch selectors associated with byte ranges within an instruction cache for rapidly identifying branch predictions |
| US5954816A (en) * | 1996-11-19 | 1999-09-21 | Advanced Micro Devices, Inc. | Branch selector prediction |
| US5995749A (en) * | 1996-11-19 | 1999-11-30 | Advanced Micro Devices, Inc. | Branch prediction mechanism employing branch selectors to select a branch prediction |
| US6175906B1 (en) | 1996-12-06 | 2001-01-16 | Advanced Micro Devices, Inc. | Mechanism for fast revalidation of virtual tags |
| US5870580A (en) * | 1996-12-13 | 1999-02-09 | Advanced Micro Devices, Inc. | Decoupled forwarding reorder buffer configured to allocate storage in chunks for instructions having unresolved dependencies |
| US5881305A (en) * | 1996-12-13 | 1999-03-09 | Advanced Micro Devices, Inc. | Register rename stack for a microprocessor |
| US5983321A (en) * | 1997-03-12 | 1999-11-09 | Advanced Micro Devices, Inc. | Cache holding register for receiving instruction packets and for providing the instruction packets to a predecode unit and instruction cache |
| US5862065A (en) * | 1997-02-13 | 1999-01-19 | Advanced Micro Devices, Inc. | Method and circuit for fast generation of zero flag condition code in a microprocessor-based computer |
| US5768555A (en) * | 1997-02-20 | 1998-06-16 | Advanced Micro Devices, Inc. | Reorder buffer employing last in buffer and last in line bits |
| US6141740A (en) * | 1997-03-03 | 2000-10-31 | Advanced Micro Devices, Inc. | Apparatus and method for microcode patching for generating a next address |
| US6233672B1 (en) | 1997-03-06 | 2001-05-15 | Advanced Micro Devices, Inc. | Piping rounding mode bits with floating point instructions to eliminate serialization |
| US5852727A (en) * | 1997-03-10 | 1998-12-22 | Advanced Micro Devices, Inc. | Instruction scanning unit for locating instructions via parallel scanning of start and end byte information |
| US5850532A (en) * | 1997-03-10 | 1998-12-15 | Advanced Micro Devices, Inc. | Invalid instruction scan unit for detecting invalid predecode data corresponding to instructions being fetched |
| US6112317A (en) * | 1997-03-10 | 2000-08-29 | Digital Equipment Corporation | Processor performance counter for sampling the execution frequency of individual instructions |
| US5968163A (en) | 1997-03-10 | 1999-10-19 | Advanced Micro Devices, Inc. | Microcode scan unit for scanning microcode instructions using predecode data |
| US5859992A (en) * | 1997-03-12 | 1999-01-12 | Advanced Micro Devices, Inc. | Instruction alignment using a dispatch list and a latch list |
| US5859998A (en) * | 1997-03-19 | 1999-01-12 | Advanced Micro Devices, Inc. | Hierarchical microcode implementation of floating point instructions for a microprocessor |
| US5930492A (en) * | 1997-03-19 | 1999-07-27 | Advanced Micro Devices, Inc. | Rapid pipeline control using a control word and a steering word |
| US5828873A (en) * | 1997-03-19 | 1998-10-27 | Advanced Micro Devices, Inc. | Assembly queue for a floating point unit |
| US5887185A (en) * | 1997-03-19 | 1999-03-23 | Advanced Micro Devices, Inc. | Interface for coupling a floating point unit to a reorder buffer |
| US5987235A (en) * | 1997-04-04 | 1999-11-16 | Advanced Micro Devices, Inc. | Method and apparatus for predecoding variable byte length instructions for fast scanning of instructions |
| US5901076A (en) * | 1997-04-16 | 1999-05-04 | Advanced Micro Designs, Inc. | Ripple carry shifter in a floating point arithmetic unit of a microprocessor |
| US5878242A (en) * | 1997-04-21 | 1999-03-02 | International Business Machines Corporation | Method and system for forwarding instructions in a processor with increased forwarding probability |
| US6003128A (en) * | 1997-05-01 | 1999-12-14 | Advanced Micro Devices, Inc. | Number of pipeline stages and loop length related counter differential based end-loop prediction |
| US5845101A (en) * | 1997-05-13 | 1998-12-01 | Advanced Micro Devices, Inc. | Prefetch buffer for storing instructions prior to placing the instructions in an instruction cache |
| US6122729A (en) * | 1997-05-13 | 2000-09-19 | Advanced Micro Devices, Inc. | Prefetch buffer which stores a pointer indicating an initial predecode position |
| US5872946A (en) * | 1997-06-11 | 1999-02-16 | Advanced Micro Devices, Inc. | Instruction alignment unit employing dual instruction queues for high frequency instruction dispatch |
| US5940602A (en) * | 1997-06-11 | 1999-08-17 | Advanced Micro Devices, Inc. | Method and apparatus for predecoding variable byte length instructions for scanning of a number of RISC operations |
| US6009511A (en) * | 1997-06-11 | 1999-12-28 | Advanced Micro Devices, Inc. | Apparatus and method for tagging floating point operands and results for rapid detection of special floating point numbers |
| 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 |
| US5933626A (en) * | 1997-06-12 | 1999-08-03 | Advanced Micro Devices, Inc. | Apparatus and method for tracing microprocessor instructions |
| US5983337A (en) * | 1997-06-12 | 1999-11-09 | Advanced Micro Devices, Inc. | Apparatus and method for patching an instruction by providing a substitute instruction or instructions from an external memory responsive to detecting an opcode of the instruction |
| US5898865A (en) * | 1997-06-12 | 1999-04-27 | Advanced Micro Devices, Inc. | Apparatus and method for predicting an end of loop for string instructions |
| US5933629A (en) * | 1997-06-12 | 1999-08-03 | Advanced Micro Devices, Inc. | Apparatus and method for detecting microbranches early |
| US6012125A (en) * | 1997-06-20 | 2000-01-04 | Advanced Micro Devices, Inc. | Superscalar microprocessor including a decoded instruction cache configured to receive partially decoded instructions |
| US5978901A (en) * | 1997-08-21 | 1999-11-02 | Advanced Micro Devices, Inc. | Floating point and multimedia unit with data type reclassification capability |
| US6101577A (en) * | 1997-09-15 | 2000-08-08 | Advanced Micro Devices, Inc. | Pipelined instruction cache and branch prediction mechanism therefor |
| US5931943A (en) * | 1997-10-21 | 1999-08-03 | Advanced Micro Devices, Inc. | Floating point NaN comparison |
| US6032252A (en) * | 1997-10-28 | 2000-02-29 | Advanced Micro Devices, Inc. | Apparatus and method for efficient loop control in a superscalar microprocessor |
| US5974542A (en) * | 1997-10-30 | 1999-10-26 | Advanced Micro Devices, Inc. | Branch prediction unit which approximates a larger number of branch predictions using a smaller number of branch predictions and an alternate target indication |
| US6145038A (en) * | 1997-10-31 | 2000-11-07 | International Business Machines Corporation | Method and system for early slave forwarding of strictly ordered bus operations |
| US6112270A (en) * | 1997-10-31 | 2000-08-29 | International Business Machines Corporation | Method and system for high speed transferring of strictly ordered bus operations by reissuing bus operations in a multiprocessor system |
| US6230259B1 (en) | 1997-10-31 | 2001-05-08 | Advanced Micro Devices, Inc. | Transparent extended state save |
| US6157996A (en) * | 1997-11-13 | 2000-12-05 | Advanced Micro Devices, Inc. | Processor programably configurable to execute enhanced variable byte length instructions including predicated execution, three operand addressing, and increased register space |
| US6199154B1 (en) | 1997-11-17 | 2001-03-06 | Advanced Micro Devices, Inc. | Selecting cache to fetch in multi-level cache system based on fetch address source and pre-fetching additional data to the cache for future access |
| US6154818A (en) * | 1997-11-20 | 2000-11-28 | Advanced Micro Devices, Inc. | System and method of controlling access to privilege partitioned address space for a model specific register file |
| US6079003A (en) | 1997-11-20 | 2000-06-20 | Advanced Micro Devices, Inc. | Reverse TLB for providing branch target address in a microprocessor having a physically-tagged cache |
| US6516395B1 (en) | 1997-11-20 | 2003-02-04 | Advanced Micro Devices, Inc. | System and method for controlling access to a privilege-partitioned address space with a fixed set of attributes |
| US6079005A (en) * | 1997-11-20 | 2000-06-20 | Advanced Micro Devices, Inc. | Microprocessor including virtual address branch prediction and current page register to provide page portion of virtual and physical fetch address |
| US5974432A (en) * | 1997-12-05 | 1999-10-26 | Advanced Micro Devices, Inc. | On-the-fly one-hot encoding of leading zero count |
| US5870578A (en) * | 1997-12-09 | 1999-02-09 | Advanced Micro Devices, Inc. | Workload balancing in a microprocessor for reduced instruction dispatch stalling |
| US6157986A (en) * | 1997-12-16 | 2000-12-05 | Advanced Micro Devices, Inc. | Fast linear tag validation unit for use in microprocessor |
| US6016545A (en) * | 1997-12-16 | 2000-01-18 | Advanced Micro Devices, Inc. | Reduced size storage apparatus for storing cache-line-related data in a high frequency microprocessor |
| US6016533A (en) * | 1997-12-16 | 2000-01-18 | Advanced Micro Devices, Inc. | Way prediction logic for cache array |
| US6112296A (en) * | 1997-12-18 | 2000-08-29 | Advanced Micro Devices, Inc. | Floating point stack manipulation using a register map and speculative top of stack values |
| US6018798A (en) * | 1997-12-18 | 2000-01-25 | Advanced Micro Devices, Inc. | Floating point unit using a central window for storing instructions capable of executing multiple instructions in a single clock cycle |
| US6112018A (en) * | 1997-12-18 | 2000-08-29 | Advanced Micro Devices, Inc. | Apparatus for exchanging two stack registers |
| US6175908B1 (en) | 1998-04-30 | 2001-01-16 | Advanced Micro Devices, Inc. | Variable byte-length instructions using state of function bit of second byte of plurality of instructions bytes as indicative of whether first byte is a prefix byte |
| US6141745A (en) * | 1998-04-30 | 2000-10-31 | Advanced Micro Devices, Inc. | Functional bit identifying a prefix byte via a particular state regardless of type of instruction |
| US6230262B1 (en) | 1998-07-31 | 2001-05-08 | Advanced Micro Devices, Inc. | Processor configured to selectively free physical registers upon retirement of instructions |
| US6122656A (en) * | 1998-07-31 | 2000-09-19 | Advanced Micro Devices, Inc. | Processor configured to map logical register numbers to physical register numbers using virtual register numbers |
| US6119223A (en) * | 1998-07-31 | 2000-09-12 | Advanced Micro Devices, Inc. | Map unit having rapid misprediction recovery |
| US6438664B1 (en) | 1999-10-27 | 2002-08-20 | Advanced Micro Devices, Inc. | Microcode patch device and method for patching microcode using match registers and patch routines |
| US6442707B1 (en) | 1999-10-29 | 2002-08-27 | Advanced Micro Devices, Inc. | Alternate fault handler |
| US6848024B1 (en) | 2000-08-07 | 2005-01-25 | Broadcom Corporation | Programmably disabling one or more cache entries |
| US6748492B1 (en) | 2000-08-07 | 2004-06-08 | Broadcom Corporation | Deterministic setting of replacement policy in a cache through way selection |
| US6732234B1 (en) | 2000-08-07 | 2004-05-04 | Broadcom Corporation | Direct access mode for a cache |
| US6877084B1 (en) | 2000-08-09 | 2005-04-05 | Advanced Micro Devices, Inc. | Central processing unit (CPU) accessing an extended register set in an extended register mode |
| US6981132B2 (en) | 2000-08-09 | 2005-12-27 | Advanced Micro Devices, Inc. | Uniform register addressing using prefix byte |
| US6738792B1 (en) | 2001-03-09 | 2004-05-18 | Advanced Micro Devices, Inc. | Parallel mask generator |
| US6748495B2 (en) | 2001-05-15 | 2004-06-08 | Broadcom Corporation | Random generator |
| US6885375B2 (en) | 2002-03-11 | 2005-04-26 | Sun Microsystems, Inc. | Stalling pipelines in large designs |
| US7266587B2 (en) | 2002-05-15 | 2007-09-04 | Broadcom Corporation | System having interfaces, switch, and memory bridge for CC-NUMA operation |
| US7509644B2 (en) * | 2003-03-04 | 2009-03-24 | Secure 64 Software Corp. | Operating system capable of supporting a customized execution environment |
| US7117290B2 (en) | 2003-09-03 | 2006-10-03 | Advanced Micro Devices, Inc. | MicroTLB and micro tag for reducing power in a processor |
| US7613950B2 (en) * | 2004-02-27 | 2009-11-03 | Hewlett-Packard Development Company, L.P. | Detecting floating point hardware failures |
| US7853777B2 (en) * | 2005-02-04 | 2010-12-14 | Mips Technologies, Inc. | Instruction/skid buffers in a multithreading microprocessor that store dispatched instructions to avoid re-fetching flushed instructions |
| US7657891B2 (en) * | 2005-02-04 | 2010-02-02 | Mips Technologies, Inc. | Multithreading microprocessor with optimized thread scheduler for increasing pipeline utilization efficiency |
| US7752627B2 (en) * | 2005-02-04 | 2010-07-06 | Mips Technologies, Inc. | Leaky-bucket thread scheduler in a multithreading microprocessor |
| US7490230B2 (en) | 2005-02-04 | 2009-02-10 | Mips Technologies, Inc. | Fetch director employing barrel-incrementer-based round-robin apparatus for use in multithreading microprocessor |
| US7631130B2 (en) * | 2005-02-04 | 2009-12-08 | Mips Technologies, Inc | Barrel-incrementer-based round-robin apparatus and instruction dispatch scheduler employing same for use in multithreading microprocessor |
| US20060224864A1 (en) * | 2005-03-31 | 2006-10-05 | Dement Jonathan J | System and method for handling multi-cycle non-pipelined instruction sequencing |
| US20080133690A1 (en) * | 2006-10-05 | 2008-06-05 | Holt John M | Contention detection and resolution |
| WO2008040076A1 (en) * | 2006-10-05 | 2008-04-10 | Waratek Pty Limited | Contention resolution with echo cancellation |
| JP5318768B2 (ja) * | 2006-10-05 | 2013-10-16 | ワラテック プロプライエタリー リミテッド | 高度な競合検出 |
| US7962697B2 (en) | 2006-10-05 | 2011-06-14 | Waratek Pty Limited | Contention detection |
| US20080127214A1 (en) * | 2006-10-05 | 2008-05-29 | Holt John M | Contention detection with counter rollover |
| US20080250221A1 (en) * | 2006-10-09 | 2008-10-09 | Holt John M | Contention detection with data consolidation |
| US20100250965A1 (en) * | 2009-03-31 | 2010-09-30 | Olson Christopher H | Apparatus and method for implementing instruction support for the advanced encryption standard (aes) algorithm |
| US8832464B2 (en) * | 2009-03-31 | 2014-09-09 | Oracle America, Inc. | Processor and method for implementing instruction support for hash algorithms |
| US9317286B2 (en) * | 2009-03-31 | 2016-04-19 | Oracle America, Inc. | Apparatus and method for implementing instruction support for the camellia cipher algorithm |
| US20100246815A1 (en) * | 2009-03-31 | 2010-09-30 | Olson Christopher H | Apparatus and method for implementing instruction support for the kasumi cipher algorithm |
| US10496409B2 (en) | 2016-11-22 | 2019-12-03 | The Arizona Board Of Regents | Method and system for managing control of instruction and process execution in a programmable computing system |
| US10311191B2 (en) | 2017-01-26 | 2019-06-04 | Advanced Micro Devices, Inc. | Memory including side-car arrays with irregular sized entries |
Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS6353571A (ja) * | 1986-08-25 | 1988-03-07 | Mita Ind Co Ltd | 複写装置 |
Family Cites Families (13)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| GB1443777A (en) * | 1973-07-19 | 1976-07-28 | Int Computers Ltd | Data processing apparatus |
| US4395758A (en) * | 1979-12-10 | 1983-07-26 | Digital Equipment Corporation | Accelerator processor for a data processing system |
| US4392200A (en) * | 1980-01-28 | 1983-07-05 | Digital Equipment Corporation | Cached multiprocessor system with pipeline timing |
| CA1174370A (en) * | 1980-05-19 | 1984-09-11 | Hidekazu Matsumoto | Data processing unit with pipelined operands |
| US4467409A (en) * | 1980-08-05 | 1984-08-21 | Burroughs Corporation | Flexible computer architecture using arrays of standardized microprocessors customized for pipeline and parallel operations |
| US4509116A (en) * | 1982-04-21 | 1985-04-02 | Digital Equipment Corporation | Special instruction processing unit for data processing system |
| US4521851A (en) * | 1982-10-13 | 1985-06-04 | Honeywell Information Systems Inc. | Central processor |
| US4594660A (en) * | 1982-10-13 | 1986-06-10 | Honeywell Information Systems Inc. | Collector |
| US4594659A (en) * | 1982-10-13 | 1986-06-10 | Honeywell Information Systems Inc. | Method and apparatus for prefetching instructions for a central execution pipeline unit |
| US4543626A (en) * | 1982-12-06 | 1985-09-24 | Digital Equipment Corporation | Apparatus and method for controlling digital data processing system employing multiple processors |
| US4783738A (en) * | 1986-03-13 | 1988-11-08 | International Business Machines Corporation | Adaptive instruction processing by array processor having processor identification and data dependent status registers in each processing element |
| US4916652A (en) * | 1987-09-30 | 1990-04-10 | International Business Machines Corporation | Dynamic multiple instruction stream multiple data multiple pipeline apparatus for floating-point single instruction stream single data architectures |
| US4943912A (en) * | 1987-10-13 | 1990-07-24 | Hitachi, Ltd. | Parallel processor system having control processor and array control apparatus for selectively activating different processors |
-
1989
- 1989-02-03 US US07/306,832 patent/US5067069A/en not_active Expired - Lifetime
- 1989-07-18 CA CA000605958A patent/CA1323938C/en not_active Expired - Fee Related
- 1989-09-14 JP JP1239810A patent/JPH02208729A/ja active Pending
-
1990
- 1990-01-31 EP EP90301003A patent/EP0381471B1/en not_active Expired - Lifetime
- 1990-04-27 AU AU53951/90A patent/AU632559B2/en not_active Ceased
Patent Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS6353571A (ja) * | 1986-08-25 | 1988-03-07 | Mita Ind Co Ltd | 複写装置 |
Also Published As
| Publication number | Publication date |
|---|---|
| EP0381471A2 (en) | 1990-08-08 |
| AU5395190A (en) | 1991-12-19 |
| AU632559B2 (en) | 1993-01-07 |
| US5067069A (en) | 1991-11-19 |
| CA1323938C (en) | 1993-11-02 |
| EP0381471A3 (en) | 1991-11-21 |
| EP0381471B1 (en) | 1997-08-13 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPH02208729A (ja) | マイクロコード式実行装置での並列動作による複数機能装置の制御 | |
| US5109495A (en) | Method and apparatus using a source operand list and a source operand pointer queue between the execution unit and the instruction decoding and operand processing units of a pipelined data processor | |
| US5142631A (en) | System for queuing individual read or write mask and generating respective composite mask for controlling access to general purpose register | |
| JP3055980B2 (ja) | マルチプロセッサ又はパイプラインプロセッサシステムにおいてデータの完全性を確保する方法 | |
| JP3096451B2 (ja) | データを転送する方法およびプロセッサ | |
| US5471591A (en) | Combined write-operand queue and read-after-write dependency scoreboard | |
| JP3187090B2 (ja) | 高性能プロセッサのためのバイト比較操作方法 | |
| US6772327B2 (en) | Floating point unit pipeline synchronized with processor pipeline | |
| US5442757A (en) | Computer processor with distributed pipeline control that allows functional units to complete operations out of order while maintaining precise interrupts | |
| JP3105960B2 (ja) | 簡略命令セットプロセッサでレジスタ内データ操作を行なう方法 | |
| EP0381469A2 (en) | Method and data processing unit for pipeline processing of register and register modifying specifiers within the same instruction | |
| JPH07182167A (ja) | マイクロプロセッサのロード/ストア機能ユニットおよび情報処理用装置 | |
| EP0405495B1 (en) | Instruction unit logic management apparatus included in a pipelined processing unit and method therefor | |
| JPH02234248A (ja) | 仮想メモリシステムをベースとするデジタルコンピュータの命令パイプライン内の予めフェッチした命令でメモリアクセス例外を処理する方法 | |
| EP0380847A2 (en) | Decoding multiple specifiers in a variable length instruction architecture | |
| JPH0659887A (ja) | 高性能プロセッサ用の分岐予測 | |
| JP3678443B2 (ja) | スーパーパイプライン式スーパースカラーマイクロプロセッサ用の書き込みバッファ | |
| JPH06103167A (ja) | 多重プロセッサ・システムにおけるインヴァリデート及び戻りデータのための組合せキュー | |
| WO1995016954A1 (en) | Apparatus for processing instruction in computer system | |
| JPH07325716A (ja) | パイプラインプロセッサおよびその動作方法 | |
| JPH0675747A (ja) | 浮動小数点装置を有する高性能多重プロセッサ | |
| JPH03116235A (ja) | 分岐処理方法及び分岐処理装置 | |
| JPH10228376A (ja) | 複数レジスタ命令を処理する方法及びプロセッサ | |
| KR100322149B1 (ko) | 고성능 추론적 스트링/다중 연산 방법 | |
| JP3866920B2 (ja) | 命令のリタイアメント時に物理レジスタを選択的に自由にするよう構成されたプロセッサ |