JPH02155037A - デジタルコンピュータに於けるパイプライン化された処理ユニットの動作方法 - Google Patents
デジタルコンピュータに於けるパイプライン化された処理ユニットの動作方法Info
- Publication number
- JPH02155037A JPH02155037A JP1188708A JP18870889A JPH02155037A JP H02155037 A JPH02155037 A JP H02155037A JP 1188708 A JP1188708 A JP 1188708A JP 18870889 A JP18870889 A JP 18870889A JP H02155037 A JPH02155037 A JP H02155037A
- Authority
- JP
- Japan
- Prior art keywords
- data
- bus
- control
- instruction
- stage
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- 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
- G06F9/3873—Variable length pipelines, e.g. elastic pipeline
-
- 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/3802—Instruction prefetching
-
- 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/3802—Instruction prefetching
- G06F9/3814—Implementation provisions of instruction buffers, e.g. prefetch buffer; banks
-
- 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/3867—Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
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)
- Pipeline Systems (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
本発明はデジタルコンピュータに関し、更に詳細にはデ
ジタルプロセッサ用パイプラインCPUに関係する。
ジタルプロセッサ用パイプラインCPUに関係する。
汎用コンピュータは一つ以上の種々の所定のインストラ
クションを特定のシーフェンスで実行することによりデ
ータを処理する。計算機械の一つとしては、ハンドベル
トコンピュータがある。この機械において、所定のイン
ストラクション(インストラクションセット)は加算、
減算、乗算及び除算の算術操作のみを含む場合がある。
クションを特定のシーフェンスで実行することによりデ
ータを処理する。計算機械の一つとしては、ハンドベル
トコンピュータがある。この機械において、所定のイン
ストラクション(インストラクションセット)は加算、
減算、乗算及び除算の算術操作のみを含む場合がある。
データ及びインストラクションの要求されるシーフェン
スは使用者毎にに入力され、算術計算の結果が得られる
。
スは使用者毎にに入力され、算術計算の結果が得られる
。
コンビコータが所望の結果を得るために実行する一連の
インストラクションのセットはプログラムと呼ばれる。
インストラクションのセットはプログラムと呼ばれる。
大きなインストラクションセットをを有する汎用装置に
おいては、プログラムは極めて大きくなる場合がある。
おいては、プログラムは極めて大きくなる場合がある。
コンピュータは使用者がインストラクションを入力する
のよりも速く、それらを処理するので、プログラムを電
子メモリー素子憶して、コンピュータが自動的にインス
トラクションを読み出して、最大速度で処理を実行する
のが好ましい。
のよりも速く、それらを処理するので、プログラムを電
子メモリー素子憶して、コンピュータが自動的にインス
トラクションを読み出して、最大速度で処理を実行する
のが好ましい。
近年の蓄積プログラムデータ処理システムはフォンノイ
マンモデルに基礎を置いている。このフォンノイマンコ
ンピュータの設計は3つのキーポイントに基礎を置いて
いる。
マンモデルに基礎を置いている。このフォンノイマンコ
ンピュータの設計は3つのキーポイントに基礎を置いて
いる。
データ及びインストラクションが単一の読み出し−書き
込みメモリー内に記憶される。
込みメモリー内に記憶される。
このメモリーの内容は、データの形態に関係なく、その
位置に関してアドレス可能である。
位置に関してアドレス可能である。
一つのインストラクションから次のインストラクション
へ(あからさまに変更されることなく)順次実行される
。
へ(あからさまに変更されることなく)順次実行される
。
フォンノイマンコンピュータの基本の回路は、大別して
二つの部分にわけることができる。即ち、メモリー及び
中央処理ユニッ) (CPU)である。
二つの部分にわけることができる。即ち、メモリー及び
中央処理ユニッ) (CPU)である。
メモリーはコンピュータシステムのためのデータ及びイ
ンストラクションを保持する。CPUはシステムの頭脳
と考えることができる。このCPUは順次記憶されたイ
ンストラクションを7エツチ及び実行する電子論理回路
を含む。
ンストラクションを保持する。CPUはシステムの頭脳
と考えることができる。このCPUは順次記憶されたイ
ンストラクションを7エツチ及び実行する電子論理回路
を含む。
多くのデジタルコンピュータ内のデータは2進値の形態
で表される。メモリー内の各位置は2進値を記憶するこ
とができる(その最大サイズはコンピュータシステムの
形態に依存する)。CPUが実行するプログラム又は順
次インストラクションのセットは、メモリーの特定の領
域内に記憶ささる。インストラクションは、メモリーの
一箇所以上を占有することができる。各インストラクシ
ョンの最初の部分はOPコードと呼ばれる。このOPコ
ードは、それがインストラクションであることをCPU
に告げる唯−無二の2進値である。
で表される。メモリー内の各位置は2進値を記憶するこ
とができる(その最大サイズはコンピュータシステムの
形態に依存する)。CPUが実行するプログラム又は順
次インストラクションのセットは、メモリーの特定の領
域内に記憶ささる。インストラクションは、メモリーの
一箇所以上を占有することができる。各インストラクシ
ョンの最初の部分はOPコードと呼ばれる。このOPコ
ードは、それがインストラクションであることをCPU
に告げる唯−無二の2進値である。
多くのインストラクションはオペランド(処理されるべ
きデータ)又はオペランド特定子を含むことのできる別
の部分を有する。オペランド特定子は、インストラクシ
ョンが要求するオペランドを見出す場所をCPUに伝え
る。これらのオペランドはメモリー内或いはCPU内部
の或る一次記憶位置内の何れかの存在することができる
。
きデータ)又はオペランド特定子を含むことのできる別
の部分を有する。オペランド特定子は、インストラクシ
ョンが要求するオペランドを見出す場所をCPUに伝え
る。これらのオペランドはメモリー内或いはCPU内部
の或る一次記憶位置内の何れかの存在することができる
。
一般に、CPUは次のオペレーションを達成してインス
トラクションを実行する。
トラクションを実行する。
1、インストラクションをメモリーからフェッチする。
2、フェッチされたインストラクションをデコードして
そのインストラクションをインタープリドする。
そのインストラクションをインタープリドする。
3、前記インストラクションによって要求されたオペラ
ンド(インストラクションが作用するデータ)をメモリ
ーからフェッチする。
ンド(インストラクションが作用するデータ)をメモリ
ーからフェッチする。
4、インストラクションによって定義されるオペレーシ
ョンを実行する。
ョンを実行する。
5、 前記オペレーションの結果を後で参照するために
メモリー内に記憶する。
メモリー内に記憶する。
CPU内の(機能ユニットと呼ばれる)ハードウェアの
異なる組はこれらのオペレーションを実行する。CPU
の機能ユニットは、種々のレジスタ(メモリー素子)及
び算術論理ユニット(ALU)を通常含む。レジスタは
一次的に結果及びインストラクションオペランド(イン
ストラクションが操作するデータ)を−次的に記憶する
。
異なる組はこれらのオペレーションを実行する。CPU
の機能ユニットは、種々のレジスタ(メモリー素子)及
び算術論理ユニット(ALU)を通常含む。レジスタは
一次的に結果及びインストラクションオペランド(イン
ストラクションが操作するデータ)を−次的に記憶する
。
ALUは複合論理を使用して人力に現れるデータを処理
する。ALUの出力は、それに与えられた制御信号に依
存して、算術オペレーション或いは論理(シフティング
又はブーリアン)オペレーションを達成することにより
人力から得られる。
する。ALUの出力は、それに与えられた制御信号に依
存して、算術オペレーション或いは論理(シフティング
又はブーリアン)オペレーションを達成することにより
人力から得られる。
CPU内の処理は、オペランドレジスタからのデータを
ALUを通して結果レジスタに伝えることにより行われ
る。データは、複雑なインストラクションに対して何度
もALUを通されることがある。
ALUを通して結果レジスタに伝えることにより行われ
る。データは、複雑なインストラクションに対して何度
もALUを通されることがある。
データは、共通バス(関連する信号を搬送する一組のワ
イヤー)を介してCPUの基本素子間で転送される。デ
ータ転送は、現在処理されているインストラクションの
形態に依存し、中央制御装置によって開始される。CP
U制御装置は一連の制御信号をCPUの種々のレジスタ
に送り、何時データを共通読み出しバス(ALUの入力
に向かう)に置くか及び共通書き込みバス(ALUから
導かれる)からデータを取り出すかを告げる。
イヤー)を介してCPUの基本素子間で転送される。デ
ータ転送は、現在処理されているインストラクションの
形態に依存し、中央制御装置によって開始される。CP
U制御装置は一連の制御信号をCPUの種々のレジスタ
に送り、何時データを共通読み出しバス(ALUの入力
に向かう)に置くか及び共通書き込みバス(ALUから
導かれる)からデータを取り出すかを告げる。
CPU制御装置は、ALUにどのオペレーションが入力
から出力へのデータに作用するかを告げる。
から出力へのデータに作用するかを告げる。
この様にして、CPUの制御装置は、メインメモリーか
らインストラクションをフェッチすることから始め、デ
ータをALU及び種々の一次記憶レジスタ間で転送し、
そして処理されたデータバックをメインメモリに書き込
む一連のデータ転送を開始するができる。
らインストラクションをフェッチすることから始め、デ
ータをALU及び種々の一次記憶レジスタ間で転送し、
そして処理されたデータバックをメインメモリに書き込
む一連のデータ転送を開始するができる。
制御装置の種々の実行形態は二つの大きなカテゴリー、
ハードワイア化及びマイクロプログラム化にある。ハー
ドワイヤ制御装置は組み合わせ論理及びいくつかのレジ
スタを使用して、一連の制御信号を生成する。これら制
御信号は、丁度フェッチされたインストラクションの形
態及び前のインストラクションの実行結果に依存する。
ハードワイア化及びマイクロプログラム化にある。ハー
ドワイヤ制御装置は組み合わせ論理及びいくつかのレジ
スタを使用して、一連の制御信号を生成する。これら制
御信号は、丁度フェッチされたインストラクションの形
態及び前のインストラクションの実行結果に依存する。
マイクロプログラム制御装置は、同じ機能を、ROM或
いはRAM制御状態マシンを使用して、前の状態及びイ
ンストラクション人力から制御信号を生成する。
いはRAM制御状態マシンを使用して、前の状態及びイ
ンストラクション人力から制御信号を生成する。
ハードワイヤ制御装置は特定のインストラクションセッ
トに対して調整され、その制御装置を実働するために使
用される論理手段は、インストラクションセットの複雑
性が増大した時により複雑になる。マイクロプログラム
化制御がより汎用的な装置であるのは、ハードウェア論
理手段を変更することなく、制御記憶の内容の変化をマ
イクロインストラクションの流れを変化するのに使用で
きる点にある。ハードウェア制御装置は高速であるので
、マイクロプログラミング制御装置はより柔軟性を与え
且つ実行を容易にする。
トに対して調整され、その制御装置を実働するために使
用される論理手段は、インストラクションセットの複雑
性が増大した時により複雑になる。マイクロプログラム
化制御がより汎用的な装置であるのは、ハードウェア論
理手段を変更することなく、制御記憶の内容の変化をマ
イクロインストラクションの流れを変化するのに使用で
きる点にある。ハードウェア制御装置は高速であるので
、マイクロプログラミング制御装置はより柔軟性を与え
且つ実行を容易にする。
マイクロプログラムされた制御装置を最も簡単に実行す
るためには、各CPUインストラクションは制御記憶内
に記憶されたマイクロフローに応答する。ここで使用さ
れている様に、マイクロフローはマイクロプログラムサ
ブルーチンと呼ばれる。マイクロインストラクションの
各ビット或いは制御信号は制御信号のレベルに対応する
。一連のこの様なマイクロインイストラクションを順番
に並べると、一連の制御信号が生成される。マイクロプ
ログラム制御装置においては、各CPUインストラクシ
ョンが少なくとも一つのマイクロ−フロー(これは、小
さな一サイクルCPUインストラクション用のただ一つ
のマイクロインストラクション長であり得る)を呼び出
して、ALUオペレーション及びCPU内部バス上のデ
ータ転送を制御する制御信号を生成する。
るためには、各CPUインストラクションは制御記憶内
に記憶されたマイクロフローに応答する。ここで使用さ
れている様に、マイクロフローはマイクロプログラムサ
ブルーチンと呼ばれる。マイクロインストラクションの
各ビット或いは制御信号は制御信号のレベルに対応する
。一連のこの様なマイクロインイストラクションを順番
に並べると、一連の制御信号が生成される。マイクロプ
ログラム制御装置においては、各CPUインストラクシ
ョンが少なくとも一つのマイクロ−フロー(これは、小
さな一サイクルCPUインストラクション用のただ一つ
のマイクロインストラクション長であり得る)を呼び出
して、ALUオペレーション及びCPU内部バス上のデ
ータ転送を制御する制御信号を生成する。
コンピュータはしばしば、CPUがサポートするインス
トラクションセットに基づいて、複合インストラクショ
ンセラ)・コンピュータ(CISC)及び減少インスト
ラクションセットコンピュータ(RISC)に分類され
る。Cl5Cは共通、して大きく変化の富んだインスト
ラクションを有する大きなインストラクションセットを
有し、RISCは典型的には単純なインストラクション
の比較的小さなセットを有する。RISCCPUは数個
の単純なインストラクションを有しているので、そ−れ
らは高速ハードウェア制御装置を使用できる。
トラクションセットに基づいて、複合インストラクショ
ンセラ)・コンピュータ(CISC)及び減少インスト
ラクションセットコンピュータ(RISC)に分類され
る。Cl5Cは共通、して大きく変化の富んだインスト
ラクションを有する大きなインストラクションセットを
有し、RISCは典型的には単純なインストラクション
の比較的小さなセットを有する。RISCCPUは数個
の単純なインストラクションを有しているので、そ−れ
らは高速ハードウェア制御装置を使用できる。
Cl5CCPUは通常、実行が容易なためマイクロイン
ストラクション化制御装置を使用する。
ストラクション化制御装置を使用する。
いくつかのCPUは複数の制御装置、ハードワイヤ及び
マイクロプログラム方式を使用してCPUの種々のサブ
セクションを制御ことかできる。
マイクロプログラム方式を使用してCPUの種々のサブ
セクションを制御ことかできる。
或るマシンオペレーションは前のマシンオペレーション
の達成に依存するので、機能ユニットはインストラクシ
ョンに順々に作用する。結果として、単純なコンピュー
タ構造において、各機能ユニットはインストラクション
実行の期間の一部の間でのみで使用される。
の達成に依存するので、機能ユニットはインストラクシ
ョンに順々に作用する。結果として、単純なコンピュー
タ構造において、各機能ユニットはインストラクション
実行の期間の一部の間でのみで使用される。
7オンノイマンマシンの反復するフェッチ及び実行形態
は、多くの方法で改良され、より高速のコンピュータが
製造されている。この様なアーキテクチャ上の改良の一
つはバイブラインとして知られている。バイブラインは
、CPU内の種々のインストラクションの実行をオーバ
ーラッピング(1列)することによってCPUの機能を
かなり増大する。
は、多くの方法で改良され、より高速のコンピュータが
製造されている。この様なアーキテクチャ上の改良の一
つはバイブラインとして知られている。バイブラインは
、CPU内の種々のインストラクションの実行をオーバ
ーラッピング(1列)することによってCPUの機能を
かなり増大する。
バイブラインアーキテクチャにおいて、異なる機能ユニ
ットは異なるインストラクションを同時に処理する。
ットは異なるインストラクションを同時に処理する。
パイプラインCPUの一例は 5udhindra N
。
。
Mishra in ”The VAX 8800 M
icroarchitecture。
icroarchitecture。
Digital Technical Journal
、 Feb、 1987. Pp。
、 Feb、 1987. Pp。
20−33゜
パイプライン処理は、多くのアイテムのアッセンブリが
同時に生じるが、常に各アイテムはアッセンブリプロセ
スの異なるステージにあるというアッセンブリラインに
似ている。パイプラインは種々のインストラクションを
オーバーラツプして実行することを可能にするが、各イ
ンストラクションの有効な実行速度(即ち、スループッ
ト)を増大する。
同時に生じるが、常に各アイテムはアッセンブリプロセ
スの異なるステージにあるというアッセンブリラインに
似ている。パイプラインは種々のインストラクションを
オーバーラツプして実行することを可能にするが、各イ
ンストラクションの有効な実行速度(即ち、スループッ
ト)を増大する。
各機能ユニットは一度に一つだけのインストラクション
を扱うことができるので、全ての機能ユニットは、それ
らが同期して処理するインストラクションを進める必要
がある。アッセンブリラインの類推とは異なるが、パイ
プラインコンピュータ内の機能ユニットは、処理するイ
ンストラクションに依存して異なる時間を必要とする場
合がある。機能ユニットの一つが長時間を要して特定の
インストラクション上の機能を達成する場合、パイプラ
イン内を流れる全ての機能ユニットが、それが終了する
まで待って、その後各インストラクションを前進させる
。これはバンプライン停止(ストール)をもたらす。パ
イプライン停止はまた、特定のインストラクションが前
のインストラクションの結果を必要とする場合にも生じ
る。この結果を必要とするインストラクションは、オペ
ランドフェッチユニットから始まり、パイプラインを通
過し且つ(停止したインストラクションが要求する)オ
ペランドを生成するために前のインストラクションを待
機するパイプラインを停止する場合がある。
を扱うことができるので、全ての機能ユニットは、それ
らが同期して処理するインストラクションを進める必要
がある。アッセンブリラインの類推とは異なるが、パイ
プラインコンピュータ内の機能ユニットは、処理するイ
ンストラクションに依存して異なる時間を必要とする場
合がある。機能ユニットの一つが長時間を要して特定の
インストラクション上の機能を達成する場合、パイプラ
イン内を流れる全ての機能ユニットが、それが終了する
まで待って、その後各インストラクションを前進させる
。これはバンプライン停止(ストール)をもたらす。パ
イプライン停止はまた、特定のインストラクションが前
のインストラクションの結果を必要とする場合にも生じ
る。この結果を必要とするインストラクションは、オペ
ランドフェッチユニットから始まり、パイプラインを通
過し且つ(停止したインストラクションが要求する)オ
ペランドを生成するために前のインストラクションを待
機するパイプラインを停止する場合がある。
停止はパイプラインにバブルを導入する。バブルは、よ
り前方のパイプラインステージからのデータの欠落のた
めに有効な仕事を達成することの出来ないパイプライン
内のステージを表す。バブルがパイプラインを通して通
過すると、このバブルは対応する機能ユニットをアイド
ル状態にする。
り前方のパイプラインステージからのデータの欠落のた
めに有効な仕事を達成することの出来ないパイプライン
内のステージを表す。バブルがパイプラインを通して通
過すると、このバブルは対応する機能ユニットをアイド
ル状態にする。
実際上、パイプラインバブルは有用な仕事を妨げる可能
性を有し、より低いスループットを結果する。この発明
はバブルを圧縮するCPUパイプライン実現を扱う。
性を有し、より低いスループットを結果する。この発明
はバブルを圧縮するCPUパイプライン実現を扱う。
公知のRISCシステムに於いて、多くのインストラク
ションは等しい時間間隔で異なるCPU機能ユニットを
使用する。RISC内のパイプラインは、上述した様に
、CPUインストラクションの実行をオーバーラツプす
ることにより達成することが出来る。他方、幾つかのC
l5Cインストラクシヨンは、他のCl5Cインストラ
クシヨンが比較的単純であり、より短い実行時間を必要
とするのにも関わらず、長い実行時間を必要とする極め
て複雑なものであることがある。種々のCl5Cインス
トラクシヨン間での機能ユニット利用に於ける不均衡は
Cl5Cパイプラインをしばしば且つ比較的長時間に渡
って停止においやることになる。このために、Cl5C
CPUインイストラクションのパイプラインはより困難
である。
ションは等しい時間間隔で異なるCPU機能ユニットを
使用する。RISC内のパイプラインは、上述した様に
、CPUインストラクションの実行をオーバーラツプす
ることにより達成することが出来る。他方、幾つかのC
l5Cインストラクシヨンは、他のCl5Cインストラ
クシヨンが比較的単純であり、より短い実行時間を必要
とするのにも関わらず、長い実行時間を必要とする極め
て複雑なものであることがある。種々のCl5Cインス
トラクシヨン間での機能ユニット利用に於ける不均衡は
Cl5Cパイプラインをしばしば且つ比較的長時間に渡
って停止においやることになる。このために、Cl5C
CPUインイストラクションのパイプラインはより困難
である。
種々のCl5Cインストラクシヨンは異なるサイズのマ
イクロフローを有することがある。各マイクロインスト
ラクションは一サイクルに種々の機能ユニットの全ての
要素に対して制御信号を与える。或るCl5Cマシンに
おいては、マイクロインストラクションが、(RISC
マシンにおいて共通になされる様に)CPUインストラ
クションの代わりにパイプライン化される。これは、各
マイクロインストラクションの実行時間が同じであるの
で、停止を減少する。マイクロインストラクションパイ
プラインにおいて、各ステージはステージの機能ユニッ
トに対応するマイクロインストラクション内の数個のビ
ットを使用する。各機能ユニットが一サイクルの間その
活動を制御するマイクロインストラクションを使用した
後、各ユニットはこのマイクロインストラクションを次
のサイクルにパイプライン内の次の機能ユニットへ転送
する。第1の機能ユニットは新たなマイクロインストラ
クションを有する。この様にして、パイブラインの基本
的な原理−一種々の機能ユニットを並列に利用するため
のオーバーラツプしたインストラクションの実行−一が
実現される。マイクロインストラクションパイプライン
であっても、バブルをさけることはできない。この発明
はいかなる種類のインストラクションバンプラインに於
けるバブル圧縮のための手段を与える。
イクロフローを有することがある。各マイクロインスト
ラクションは一サイクルに種々の機能ユニットの全ての
要素に対して制御信号を与える。或るCl5Cマシンに
おいては、マイクロインストラクションが、(RISC
マシンにおいて共通になされる様に)CPUインストラ
クションの代わりにパイプライン化される。これは、各
マイクロインストラクションの実行時間が同じであるの
で、停止を減少する。マイクロインストラクションパイ
プラインにおいて、各ステージはステージの機能ユニッ
トに対応するマイクロインストラクション内の数個のビ
ットを使用する。各機能ユニットが一サイクルの間その
活動を制御するマイクロインストラクションを使用した
後、各ユニットはこのマイクロインストラクションを次
のサイクルにパイプライン内の次の機能ユニットへ転送
する。第1の機能ユニットは新たなマイクロインストラ
クションを有する。この様にして、パイブラインの基本
的な原理−一種々の機能ユニットを並列に利用するため
のオーバーラツプしたインストラクションの実行−一が
実現される。マイクロインストラクションパイプライン
であっても、バブルをさけることはできない。この発明
はいかなる種類のインストラクションバンプラインに於
けるバブル圧縮のための手段を与える。
最もパイプライン化されたプロセッサの制御を支配する
基礎法則は、ハイプラインの全ての機能ステージが同時
にその状態を次の機能ステージに進ませる。これは、各
機能ユニットがその処理状態を次のユニットへ転送し、
新たな状態を前のユニットから受は取るために必要であ
る。従って、従前の設計においては、バブルがパイプラ
インステージに導入される場合、全ステージが同時に前
進する時に、バブルは各連続するバイブラインステージ
通して伝播する。従って、オーバーライドしたりバブル
を圧縮することは、システムのスルーブツトを最適にす
るのに好適である。
基礎法則は、ハイプラインの全ての機能ステージが同時
にその状態を次の機能ステージに進ませる。これは、各
機能ユニットがその処理状態を次のユニットへ転送し、
新たな状態を前のユニットから受は取るために必要であ
る。従って、従前の設計においては、バブルがパイプラ
インステージに導入される場合、全ステージが同時に前
進する時に、バブルは各連続するバイブラインステージ
通して伝播する。従って、オーバーライドしたりバブル
を圧縮することは、システムのスルーブツトを最適にす
るのに好適である。
本発明はデジタルコンピュータCPUのパイプラインス
テージに於ける進んだバブル圧縮を可能とする。バブル
とは、より前方のパイプラインステージからのデータの
欠損のために有用な仕事を達成することのできないパイ
プライン内のステージを表している。特定のパイプライ
ンステージが停止すると、このステージを既に通過した
CPUインストラクションは、順方向に進み続け、空ス
テージ即ちバブルを置き去りにする。これらの空きステ
ージは、停止のため、処理するための新たなインストラ
クションを有さない。
テージに於ける進んだバブル圧縮を可能とする。バブル
とは、より前方のパイプラインステージからのデータの
欠損のために有用な仕事を達成することのできないパイ
プライン内のステージを表している。特定のパイプライ
ンステージが停止すると、このステージを既に通過した
CPUインストラクションは、順方向に進み続け、空ス
テージ即ちバブルを置き去りにする。これらの空きステ
ージは、停止のため、処理するための新たなインストラ
クションを有さない。
−度バプルがハイプラインに導入されると、停止しない
と、全てのステージが同時に進行するので、バブルは伝
播される。従前の設計だと、停止が生じると、停止した
ステージの前の全てのステージが停止し、この領域にあ
るバブルがそこに留まる。本発明は、バブルが停止した
ステージの前に検出された場合、停止したステージの前
のステージが動くことを可能にすることにより、停止し
たステージの前のバブルが充填されることを可能にする
。
と、全てのステージが同時に進行するので、バブルは伝
播される。従前の設計だと、停止が生じると、停止した
ステージの前の全てのステージが停止し、この領域にあ
るバブルがそこに留まる。本発明は、バブルが停止した
ステージの前に検出された場合、停止したステージの前
のステージが動くことを可能にすることにより、停止し
たステージの前のバブルが充填されることを可能にする
。
或る実施態様において、本発明は、バブル発生後のステ
ージの一つが停止した場合、そのバブルより両方のパイ
プライン・ステージの前進を制御することにより実現さ
れている。これは、各ステージに於けるバブル及び停止
の検出、それらの相対位置の比較及び各パイプラインス
テージの条件的な前進を含む。
ージの一つが停止した場合、そのバブルより両方のパイ
プライン・ステージの前進を制御することにより実現さ
れている。これは、各ステージに於けるバブル及び停止
の検出、それらの相対位置の比較及び各パイプラインス
テージの条件的な前進を含む。
CPU
第1図を参照する。本発明の特徴を使用するCPU即ち
中央処理装置10が示されている。好ましい実施例にお
いては、CPU 10は単一の集積回路として作製され
るが、このCPUは一組の集積回路であってもよいし、
一つ以上の回路基板上に設けられた標準論理回路或いは
ゲートアレイにより実現される。本発明はいかなるパイ
プライン化CPUにおいても使用可能であるが、ここで
挙げられる例はVAXインストラクションセットを実行
し、本出願人によって以前売られたVAXコンピュータ
のアーキテクチャに適合されている。
中央処理装置10が示されている。好ましい実施例にお
いては、CPU 10は単一の集積回路として作製され
るが、このCPUは一組の集積回路であってもよいし、
一つ以上の回路基板上に設けられた標準論理回路或いは
ゲートアレイにより実現される。本発明はいかなるパイ
プライン化CPUにおいても使用可能であるが、ここで
挙げられる例はVAXインストラクションセットを実行
し、本出願人によって以前売られたVAXコンピュータ
のアーキテクチャに適合されている。
図示された実施例においては、CPUl0はシステムデ
ータバス11、例えば64ビツト双方向バス及び27ビ
ツトシステムアドレスバス12及びシステム制御バス1
3に接続されている。これらノハス11.12及び13
はシステムメモリー15に接続されてる。このメモリー
は詳細には図示されていないが通常キャッシュ及びキャ
ッシュ制御器を含む。このバスは文種々の■/○装置に
アクセスする。
ータバス11、例えば64ビツト双方向バス及び27ビ
ツトシステムアドレスバス12及びシステム制御バス1
3に接続されている。これらノハス11.12及び13
はシステムメモリー15に接続されてる。このメモリー
は詳細には図示されていないが通常キャッシュ及びキャ
ッシュ制御器を含む。このバスは文種々の■/○装置に
アクセスする。
内部構造に於いて、CPUl0は、実行のための機械レ
ベルのインストラクションをデコードする機能を有する
インストラクションユニット20(rI氷ボツクスと呼
ばれる)を有し、更にインストラクションのデータ取り
扱い部分の実行を行う実行ユニット21(rEボックス
」と呼ばれる)を有する。CPUl0はマイクロコード
化された形態を有し、ROM (或いはEPROM等)
から或る制御記憶22を採用する。この制御記憶は、例
えばIK又は2にのマイクロインストラクションを含み
、各ワードはこの本実施例においては50ビット長幅を
有する。制御記憶はマイクロシ−クエンサ23によって
アドレスされる。このシークエッサは、入力点アドレス
或いは11ビツトデイスパツチバス25によってインス
トラクションユニット20から受信されるタスク指名ア
ドレスに基づいて、制御記憶22011ビットアドレス
人力24上に一連のマイクロアドレスを発生する。制御
記憶22からの出力はマイクロインストラクションバス
26である。本発明においては、50ビツト幅である。
ベルのインストラクションをデコードする機能を有する
インストラクションユニット20(rI氷ボツクスと呼
ばれる)を有し、更にインストラクションのデータ取り
扱い部分の実行を行う実行ユニット21(rEボックス
」と呼ばれる)を有する。CPUl0はマイクロコード
化された形態を有し、ROM (或いはEPROM等)
から或る制御記憶22を採用する。この制御記憶は、例
えばIK又は2にのマイクロインストラクションを含み
、各ワードはこの本実施例においては50ビット長幅を
有する。制御記憶はマイクロシ−クエンサ23によって
アドレスされる。このシークエッサは、入力点アドレス
或いは11ビツトデイスパツチバス25によってインス
トラクションユニット20から受信されるタスク指名ア
ドレスに基づいて、制御記憶22011ビットアドレス
人力24上に一連のマイクロアドレスを発生する。制御
記憶22からの出力はマイクロインストラクションバス
26である。本発明においては、50ビツト幅である。
バス26の16ビツト幅はマイクロシークエンサ23の
入力27に戻されて接続され、或る人力口に続く或るシ
ーフェンスでマイクロインストラクションのアドレスを
与え、且つマイクロ記憶アドレッシングの制御を与える
。
入力27に戻されて接続され、或る人力口に続く或るシ
ーフェンスでマイクロインストラクションのアドレスを
与え、且つマイクロ記憶アドレッシングの制御を与える
。
マイクロインストラクション出力26の残りの34ビツ
トは、実行ユニット21及びCPUの他の部分に対する
制御人力28として使用される。
トは、実行ユニット21及びCPUの他の部分に対する
制御人力28として使用される。
CPUl0は仮想アドレッシングを使用し、メモリー管
理ユニッ)30(Mボックスとも呼ばれる)が採用され
て仮想アドレスを物理アドレスに翻訳する。このユニッ
トは又インストラクションユニット20に対するインス
トラクションフェッチを調停する。メモリー管理ユニッ
トは、他の信号と共にマイクロインストラクションバス
からの34ビツト人力28によって制御される。ユニッ
ト30は出力32を介して30ビット内部アドレスバス
31に接続され、且つメモリー管理ユニットからアドレ
スレジスタを゛読み取るために32ビツトALU A
ABus33によって実行ユニット21に接続される。
理ユニッ)30(Mボックスとも呼ばれる)が採用され
て仮想アドレスを物理アドレスに翻訳する。このユニッ
トは又インストラクションユニット20に対するインス
トラクションフェッチを調停する。メモリー管理ユニッ
トは、他の信号と共にマイクロインストラクションバス
からの34ビツト人力28によって制御される。ユニッ
ト30は出力32を介して30ビット内部アドレスバス
31に接続され、且つメモリー管理ユニットからアドレ
スレジスタを゛読み取るために32ビツトALU A
ABus33によって実行ユニット21に接続される。
メモリー管理ユニット30と実行ユニットの間の他の接
続は、32ビツトALU出力バス34及び32ビット書
き込みデータバス35を含む。これらバス33.34及
び35の部分は実行ユニット21の内部接続に関連して
説明される。ユニット30は、メモリー動作及びワード
長を決めるために、実行ユニットからライン36を介し
て制御ビットを受信する。ライン36上のこれらの制御
ビットはインストラクションユニット20内で発生し、
制御バス38の部分として実行ユニット21に結合され
る。メモリー管理ユニット30は実行ユニット21と共
にマイクロテストと定義される制御信号を発生する。
続は、32ビツトALU出力バス34及び32ビット書
き込みデータバス35を含む。これらバス33.34及
び35の部分は実行ユニット21の内部接続に関連して
説明される。ユニット30は、メモリー動作及びワード
長を決めるために、実行ユニットからライン36を介し
て制御ビットを受信する。ライン36上のこれらの制御
ビットはインストラクションユニット20内で発生し、
制御バス38の部分として実行ユニット21に結合され
る。メモリー管理ユニット30は実行ユニット21と共
にマイクロテストと定義される制御信号を発生する。
これは3ビツトバス39を介してマイクロシークエンサ
23の人力に接続される。この制御信号実行ユニット2
1又はメモリー管理ユニット30内の事象によって定義
されるマイクロインストラクション分岐に対するための
条件データである。
23の人力に接続される。この制御信号実行ユニット2
1又はメモリー管理ユニット30内の事象によって定義
されるマイクロインストラクション分岐に対するための
条件データである。
CPUl0は一次キャッシュ40(rPキャッシュ」と
も呼ばれる)を含む。これは、実施例においては、2に
バイト高速スビー)RAMであり、最も最近使用された
データ(インストラクション或いは通常のデータ)を含
む。キャッシュ40は30ピット内部アドレスバス31
及び32ビツト内部データバス41に接続される。内部
データバス41はまたメモリ管理ユニット30によって
フェッチされたインストラクションをインストラクショ
ンユニット20によって運び、又実行ユニット21間で
転送されるオペランドを運ぶ。
も呼ばれる)を含む。これは、実施例においては、2に
バイト高速スビー)RAMであり、最も最近使用された
データ(インストラクション或いは通常のデータ)を含
む。キャッシュ40は30ピット内部アドレスバス31
及び32ビツト内部データバス41に接続される。内部
データバス41はまたメモリ管理ユニット30によって
フェッチされたインストラクションをインストラクショ
ンユニット20によって運び、又実行ユニット21間で
転送されるオペランドを運ぶ。
バスインターフェースユニット42は、CPU10及び
システムバス11.12及び13間での接続を、内部命
令バス及びタロツク及び他の制御ビットに基づいて制御
或いは調停する。
システムバス11.12及び13間での接続を、内部命
令バス及びタロツク及び他の制御ビットに基づいて制御
或いは調停する。
インストラクションストリーム内に含まれる即値オペラ
ンド或いはアドレスはバス41によってインストラクシ
ョンユニット20にロードされる。
ンド或いはアドレスはバス41によってインストラクシ
ョンユニット20にロードされる。
これらのオペランド特定子は32ビツトバス43によっ
てレジスタにロードするために実行ユニット21に転送
される。
てレジスタにロードするために実行ユニット21に転送
される。
クロック発生器44は、4つの位相出力(φ1からφ4
)を生成する。これらは4つの位相P1、P2、P3及
びP4からなるマシンサイクルを形成する。−例として
は、クロック速度は25MHzテアリ、40nsのマシ
ンサイクルを形成する。
)を生成する。これらは4つの位相P1、P2、P3及
びP4からなるマシンサイクルを形成する。−例として
は、クロック速度は25MHzテアリ、40nsのマシ
ンサイクルを形成する。
実行ユニット
第2図を参照する。実行ユニット21がより詳細に示さ
れる。このユニットは32ピツ)ALU45を含む。こ
れは、AABus33から32ビツト幅の八人力及びA
BBus 46から32ビツト幅のB入力を有する。A
LU45は加算、減算、OR等のCPUのインストラク
ションセットをサポートするのに必要とされ、バス28
から現在使用されるマイクロインストラクションのフィ
ールドによって定義されるオペレーションを達成する。
れる。このユニットは32ピツ)ALU45を含む。こ
れは、AABus33から32ビツト幅の八人力及びA
BBus 46から32ビツト幅のB入力を有する。A
LU45は加算、減算、OR等のCPUのインストラク
ションセットをサポートするのに必要とされ、バス28
から現在使用されるマイクロインストラクションのフィ
ールドによって定義されるオペレーションを達成する。
ALUの出力は常に結果バス47、従って書き込みバス
35へ向かう。結果バスに対するデータの二つだけのソ
ースはALU及びバレルシフター48である。このシフ
ター48は64ビツト入力の32ビット出カシフタ−ユ
ニットであり、インストラクションセットのシフトオペ
レーションを実行する。零から32ビツト右シフト及び
零から32ビツト左シフトが、バス28を介して送られ
るマイクロインストラクション内のフィールドの制御の
下で、達成される。結果バス47上のデータはバイパス
に対するAABu s 33或いはABBus 46或
いは書き込みバス35へ、メモリー管理ユニット30へ
行<ALU出力バス34へと共にロードされる。
35へ向かう。結果バスに対するデータの二つだけのソ
ースはALU及びバレルシフター48である。このシフ
ター48は64ビツト入力の32ビット出カシフタ−ユ
ニットであり、インストラクションセットのシフトオペ
レーションを実行する。零から32ビツト右シフト及び
零から32ビツト左シフトが、バス28を介して送られ
るマイクロインストラクション内のフィールドの制御の
下で、達成される。結果バス47上のデータはバイパス
に対するAABu s 33或いはABBus 46或
いは書き込みバス35へ、メモリー管理ユニット30へ
行<ALU出力バス34へと共にロードされる。
書き込みバス35はレジスタファイル50に書き込みが
できる。このファイルは41個の32ビツトレジスタの
組であり、15個の汎用目的レジスタ、18個のm−レ
ジスタ及び8個のメモリーデータレジスタから或る。こ
れらのレジスタは、現在使用されるオペランド及びアド
レスを含む。
できる。このファイルは41個の32ビツトレジスタの
組であり、15個の汎用目的レジスタ、18個のm−レ
ジスタ及び8個のメモリーデータレジスタから或る。こ
れらのレジスタは、現在使用されるオペランド及びアド
レスを含む。
レジスタファイル間での書き込み及び読み出しは、現在
マイクロインストラクションのフィールド制御の下で行
われる。レジスタファイルの出力のみが32−ビット出
力51及び52によってABBus33或いはABBu
s46へ送られる。内部データバス41は回転子53を
介してマイクロインストラクションにより定義されたレ
ジスタファイルの或るレジスタへ書き込むことができる
。内部データバスはまたレジスタファイルをバイパスし
入力54を介してA A B u s及びABBusに
直接書き込まれる。これは、内部データバスからのデー
タがレジスタファイルに書き込まれ、且つ同じサイクル
でALU人力として使用される時に行われる。
マイクロインストラクションのフィールド制御の下で行
われる。レジスタファイルの出力のみが32−ビット出
力51及び52によってABBus33或いはABBu
s46へ送られる。内部データバス41は回転子53を
介してマイクロインストラクションにより定義されたレ
ジスタファイルの或るレジスタへ書き込むことができる
。内部データバスはまたレジスタファイルをバイパスし
入力54を介してA A B u s及びABBusに
直接書き込まれる。これは、内部データバスからのデー
タがレジスタファイルに書き込まれ、且つ同じサイクル
でALU人力として使用される時に行われる。
シフトカウントレジスタ55はシフター48に対するシ
フトカウントを与え、サイクルをカウントする様機能す
る(乗算或いは除算と有用である)。
フトカウントを与え、サイクルをカウントする様機能す
る(乗算或いは除算と有用である)。
このカウンタ55は32ビツトシフトレジスタであり、
書き込みデータバス35からロードでき、マイクロイン
ストラクション制御下でAABus或いはABBu s
ヘロードされる。
書き込みデータバス35からロードでき、マイクロイン
ストラクション制御下でAABus或いはABBu s
ヘロードされる。
内部アダーを含む32ビットプログラムカウンタ即ちP
C56はレジスタセットの部分でもある。
C56はレジスタセットの部分でもある。
PC56は実行されるインストラクションのアドレスを
含む。インストラクション(OPコード、オペランド特
定子、及び特定子拡張を含む)がインストラクションユ
ニット20内で分析される時、PC56は更新されて、
バス38上のインストラクションユニットからのデルタ
PCビットによってアドレスを追跡する。プログラムカ
ウンタ56の出力57はA A B u sへ送られ、
ここからアドレスがALU45を通過する。通常はバス
34を介してメモリー管理ユニット30へ送られる。
含む。インストラクション(OPコード、オペランド特
定子、及び特定子拡張を含む)がインストラクションユ
ニット20内で分析される時、PC56は更新されて、
バス38上のインストラクションユニットからのデルタ
PCビットによってアドレスを追跡する。プログラムカ
ウンタ56の出力57はA A B u sへ送られ、
ここからアドレスがALU45を通過する。通常はバス
34を介してメモリー管理ユニット30へ送られる。
ポピユレーションカウンタと呼ばれるカウンタ回路58
は、ABBu s 46から人力59を受信しAABu
s 33へ出力60を送り出す。この回路の機能はAB
Bu sへロードされる2進ワード内にセットされるビ
ットセットの数をカウントし、且つビットのこのカウン
トに等しい2進値を生成する。ポピユレーションカウン
タ58はセーブマスク内のビット数値(各々のセットビ
ットが退避されることを必要とするレジスタに対応する
2進ワード)をカウントするのに使用され、その2進値
が使用される場所を決め、手順CALL、 RBTtl
RN、Pu5h−R[EGISTER,又はPop−R
eg 1steに退避されるべきレジスタファイル50
又はレジスタセットからのレジスタの数を決める。
は、ABBu s 46から人力59を受信しAABu
s 33へ出力60を送り出す。この回路の機能はAB
Bu sへロードされる2進ワード内にセットされるビ
ットセットの数をカウントし、且つビットのこのカウン
トに等しい2進値を生成する。ポピユレーションカウン
タ58はセーブマスク内のビット数値(各々のセットビ
ットが退避されることを必要とするレジスタに対応する
2進ワード)をカウントするのに使用され、その2進値
が使用される場所を決め、手順CALL、 RBTtl
RN、Pu5h−R[EGISTER,又はPop−R
eg 1steに退避されるべきレジスタファイル50
又はレジスタセットからのレジスタの数を決める。
プロセッサー状態レジスタ61は又実行ユニット21の
レジスタの組内に含まれる。この状態レジスタは、キャ
リー、オーバーフロー、ゼロ及ヒ負の様なALU状態ビ
ットを、割り込み優先レベル、トレースベンディング等
の種々の他の状態ビットを含む。状態レジスタはマイク
ロインストラクション制御下でAABu s 33上で
読み出され、上書き込みバス35を介して、書き込まれ
る。
レジスタの組内に含まれる。この状態レジスタは、キャ
リー、オーバーフロー、ゼロ及ヒ負の様なALU状態ビ
ットを、割り込み優先レベル、トレースベンディング等
の種々の他の状態ビットを含む。状態レジスタはマイク
ロインストラクション制御下でAABu s 33上で
読み出され、上書き込みバス35を介して、書き込まれ
る。
定数発生器62は出力63及び64を介してAABus
又はABBu sヘローディングするための定数を発生
する。マイクロインストラクションは、バス28のフィ
ールド内に8ビツト定数(マイクロインストラクション
直定数)を含むことができる。そしてこのバイトは定数
発生器62によって、現在マイクロインストラクション
の別の2ビツトフイールドによって決められる32ビツ
トワ一ド幅の4バイト位置のいずれかの位置でABBu
sヘロードされる。また、定数発生器はライン38上の
データ長DL制御ビットの値に応答して、1.2.4又
は8の定数を発生することができる。この定数は扱われ
るオペランド内のバイトの数を表しており、出力64を
介してABBus46ヘロードされる。この定数発生器
はまた符号拡張データ用シフターと共に使用される。
又はABBu sヘローディングするための定数を発生
する。マイクロインストラクションは、バス28のフィ
ールド内に8ビツト定数(マイクロインストラクション
直定数)を含むことができる。そしてこのバイトは定数
発生器62によって、現在マイクロインストラクション
の別の2ビツトフイールドによって決められる32ビツ
トワ一ド幅の4バイト位置のいずれかの位置でABBu
sヘロードされる。また、定数発生器はライン38上の
データ長DL制御ビットの値に応答して、1.2.4又
は8の定数を発生することができる。この定数は扱われ
るオペランド内のバイトの数を表しており、出力64を
介してABBus46ヘロードされる。この定数発生器
はまた符号拡張データ用シフターと共に使用される。
回転子53は実行ユニット21及び内部データバス41
間のI10インターフェースであり、レジスタ或いは実
行ユニットのバスにロードされたデータをロングワード
の境界上に揃え、又は実行ユニット21からメモリーに
行くデータを意図されたバイト位置まで再記憶する機能
を有する。アドレスの二つの最小有効ビット及びデータ
長(バス38上のDL制御ビット)は回転子53によっ
て使用されて、これらの変換が行われる。
間のI10インターフェースであり、レジスタ或いは実
行ユニットのバスにロードされたデータをロングワード
の境界上に揃え、又は実行ユニット21からメモリーに
行くデータを意図されたバイト位置まで再記憶する機能
を有する。アドレスの二つの最小有効ビット及びデータ
長(バス38上のDL制御ビット)は回転子53によっ
て使用されて、これらの変換が行われる。
マイクロシークエンサ
第3図を参照する。マイクロシークエンサ23がより詳
細に示されている。マイクロシークエンサは、11ビツ
トアドレスを全てのマシンサイクルで制御記憶22に送
り、次のサイクルの開始の始めに、制御記憶22は50
ビツトラツチ出力をバス26に生成する。この内の16
ビツトはバス27によってアドレス及び制御のためにマ
イクロシークエンサにフィードバックされる。これら1
6ビツトは、制御情報と共に次のマイクロインストラク
ション用アドレスを含む。第4図はバス27上の16ビ
ツトデータのフォーマットを示す。
細に示されている。マイクロシークエンサは、11ビツ
トアドレスを全てのマシンサイクルで制御記憶22に送
り、次のサイクルの開始の始めに、制御記憶22は50
ビツトラツチ出力をバス26に生成する。この内の16
ビツトはバス27によってアドレス及び制御のためにマ
イクロシークエンサにフィードバックされる。これら1
6ビツトは、制御情報と共に次のマイクロインストラク
ション用アドレスを含む。第4図はバス27上の16ビ
ツトデータのフォーマットを示す。
ここでは、アドレス及び制御情報の二つの形態がジャン
プ及び分岐として示される。ジャンプは11ビツトジヤ
ンプアドレスビツト0から10゜3ピツ) m u x
制御フィールドピッ) 12−14を含む。ここで、ビ
ット15はジャンプに対しては常に「0」である(そし
て、分岐に対しては常に「1」である)。分岐フォーマ
ットは7ビツトオフセツトビツト0−6、及び4ビット
分岐条件選択子フィールドを含む。
プ及び分岐として示される。ジャンプは11ビツトジヤ
ンプアドレスビツト0から10゜3ピツ) m u x
制御フィールドピッ) 12−14を含む。ここで、ビ
ット15はジャンプに対しては常に「0」である(そし
て、分岐に対しては常に「1」である)。分岐フォーマ
ットは7ビツトオフセツトビツト0−6、及び4ビット
分岐条件選択子フィールドを含む。
mux制御フィールドは第3図のマイクロシークエンサ
20内で使用され、多数の人力から一つのマイクロアド
レス出カフ1を生成する。マルチプレクサ70への一つ
の入カフ2はバス27からのジャンプアドレスフィール
ドビット0−10であり、もちろん他の入力はインスト
ラクションユニット20からのタスク指名アドレス25
である。
20内で使用され、多数の人力から一つのマイクロアド
レス出カフ1を生成する。マルチプレクサ70への一つ
の入カフ2はバス27からのジャンプアドレスフィール
ドビット0−10であり、もちろん他の入力はインスト
ラクションユニット20からのタスク指名アドレス25
である。
出力26上のマイクロインストラクションがルーチン或
いはマイクロフローの少なくとも一方で有る場合、「デ
コーダ次」出力が発生され■ボックス20に、新たなタ
スク指名を生成させる。
いはマイクロフローの少なくとも一方で有る場合、「デ
コーダ次」出力が発生され■ボックス20に、新たなタ
スク指名を生成させる。
マルチプレクサ70への第3の入力はレジスタスタック
75からの出カフ4 (スタック読み出しバス)である
。マイクロコードスタック75は後入れ先だしスタック
であり、バス24上に現れ従ってこのスタック用の人力
書き込みバス76に現れる11ビツトアドレスの8まで
記憶する。スタックポインタ77はTO3即ちスタック
の頂部を指し示す。そして、このポインタは、PUSH
或いはPOPスタックオペレーションのために、バス2
7上の制御情報のピッ)11−15からの制御によって
増分或いは減分される。バス27は、バス78を介して
スタック制御デコーダ79に接続されている。CALL
がデコードされると、人カフ6上の11ビツトアドレス
はスタック75へPUSHされる。RETURNがデコ
ードされると、TO5がマルチプレクサ70に対する入
力として選択され、スタックがポインタ77を減分する
ことによりPOPされる。
75からの出カフ4 (スタック読み出しバス)である
。マイクロコードスタック75は後入れ先だしスタック
であり、バス24上に現れ従ってこのスタック用の人力
書き込みバス76に現れる11ビツトアドレスの8まで
記憶する。スタックポインタ77はTO3即ちスタック
の頂部を指し示す。そして、このポインタは、PUSH
或いはPOPスタックオペレーションのために、バス2
7上の制御情報のピッ)11−15からの制御によって
増分或いは減分される。バス27は、バス78を介して
スタック制御デコーダ79に接続されている。CALL
がデコードされると、人カフ6上の11ビツトアドレス
はスタック75へPUSHされる。RETURNがデコ
ードされると、TO5がマルチプレクサ70に対する入
力として選択され、スタックがポインタ77を減分する
ことによりPOPされる。
マイクロアドレスサイロ80が別の入力81をマルチプ
レクサ70に与える。このサイロは3つのレジスタを有
しており、アドレスバス24からの3つの最後に使用さ
れた11ビツトアドレスを入力82を介して記憶する。
レクサ70に与える。このサイロは3つのレジスタを有
しており、アドレスバス24からの3つの最後に使用さ
れた11ビツトアドレスを入力82を介して記憶する。
このサイロは、停止或いはトラップが信号される場合を
除いて、各マシンサイクル毎にクロックが進まされるシ
フトレジスタとして構成される。前記信号が発生される
場合は、サイロ内の前記3つのアドレスがトラップが終
了するまで退避され、その時前記最後の3つのアドレス
が回復マイクロルーチンヘジャンブすることにより使用
できる。この回復マイクロルーチンはバス78を介する
マルチプレクサに対する特定のコードによってサイロ人
力81を使用する。
除いて、各マシンサイクル毎にクロックが進まされるシ
フトレジスタとして構成される。前記信号が発生される
場合は、サイロ内の前記3つのアドレスがトラップが終
了するまで退避され、その時前記最後の3つのアドレス
が回復マイクロルーチンヘジャンブすることにより使用
できる。この回復マイクロルーチンはバス78を介する
マルチプレクサに対する特定のコードによってサイロ人
力81を使用する。
マルチプレクサ70に対する別の入力はトラップ制御ア
ドレス発生器84からの出力83である。
ドレス発生器84からの出力83である。
トラップマイクロルーチンの多数の異なる形態、従って
これらのマイクロルーチンを記憶するためのアドレスが
利用可能である。
これらのマイクロルーチンを記憶するためのアドレスが
利用可能である。
バス78上のビット15が「1」の時特定される分岐ア
ドレスは、マイクロプログラムカウンタ85内にアッセ
ンブルされた3つの部分からなっている。11ビツト分
岐アドレスのビット7−10は呼び出しマイクロインス
トラクション(即ち、カウンタ85内に現在既にあるマ
イクロインストラクション)からコピーされ、そしてビ
ット0及び4−6は、人カフ2によってマイクロインス
トラクションからコピーされる。ビット1−3は、入カ
フ2上のマイクロインストラクションの、ゲート86を
介しての論理OR及び3ビツトマイクロテストバス39
の内容である。即ち、「分岐」タイプマイクロインスト
ラクション(マイクロ分岐)はマイクロテスト制御論理
87によってマイクロインストラクションバス28上で
検出される。
ドレスは、マイクロプログラムカウンタ85内にアッセ
ンブルされた3つの部分からなっている。11ビツト分
岐アドレスのビット7−10は呼び出しマイクロインス
トラクション(即ち、カウンタ85内に現在既にあるマ
イクロインストラクション)からコピーされ、そしてビ
ット0及び4−6は、人カフ2によってマイクロインス
トラクションからコピーされる。ビット1−3は、入カ
フ2上のマイクロインストラクションの、ゲート86を
介しての論理OR及び3ビツトマイクロテストバス39
の内容である。即ち、「分岐」タイプマイクロインスト
ラクション(マイクロ分岐)はマイクロテスト制御論理
87によってマイクロインストラクションバス28上で
検出される。
マイクロ分岐インストラクション検出の際、制御論理8
7はマイクロテストバス39上に有る条件をORゲート
86へ進め、同時に、MUX制御論理88は同様にマイ
クロインストラクションバス27上のマイクロ分岐を検
出し、マイクロプログ5ムjyウンタ85に分岐行き先
アドレスを計算させる。これは、マイクロ分岐バス17
3上の条件の論理和及びマルチプレクサ7oへの人力と
して与えられるマイクロ分岐インストラクションから選
択されたビットに基づいて行われる。
7はマイクロテストバス39上に有る条件をORゲート
86へ進め、同時に、MUX制御論理88は同様にマイ
クロインストラクションバス27上のマイクロ分岐を検
出し、マイクロプログ5ムjyウンタ85に分岐行き先
アドレスを計算させる。これは、マイクロ分岐バス17
3上の条件の論理和及びマルチプレクサ7oへの人力と
して与えられるマイクロ分岐インストラクションから選
択されたビットに基づいて行われる。
第4図にはマイクロインストラクションワードのフォー
マットが同様に示されている。特に、制御記憶の出力に
於けるバス28上に現れる34ビツト部分が示されてい
る。マイクロインストラクションの4つの一般形態が使
用され、それらはBa5ic、 Con5tantSS
hift及び5pecialと呼ばれる。
マットが同様に示されている。特に、制御記憶の出力に
於けるバス28上に現れる34ビツト部分が示されてい
る。マイクロインストラクションの4つの一般形態が使
用され、それらはBa5ic、 Con5tantSS
hift及び5pecialと呼ばれる。
これら各々に対して、ビット16−33は同じであり、
実行ユニット内のAAbus33のソースを選択する6
ビツトrA」フィールド(ビット16−22)及び行き
先即ち、レジスタファイル50内の或るレジスタ様な、
書き込みバスが書き込まれる場所を選択するr W J
フィールド(ピッ)28−33)を含む。ビット27は
プロセッサ状態レジスタ61に対する条件コード制御で
ある。
実行ユニット内のAAbus33のソースを選択する6
ビツトrA」フィールド(ビット16−22)及び行き
先即ち、レジスタファイル50内の或るレジスタ様な、
書き込みバスが書き込まれる場所を選択するr W J
フィールド(ピッ)28−33)を含む。ビット27は
プロセッサ状態レジスタ61に対する条件コード制御で
ある。
種雉フィールドビット22−26がデコードされて、達
成される特定のオペレーションを決める。
成される特定のオペレーションを決める。
Ba5ic、 5hift、 5pecialのタイプ
は全て、AABus46上のデータソース即ちALUB
人力を選するrBJフィールド(ビット34−37)を
有する。5hiftタイプはシフター48内で達成され
るべきシフト機能及びシフト値(ゼロから32ビツトの
ビット数)を決めるフィールド(ピッ)38−46)を
有している。マイクロインストラクションフォーマット
のCon5tantタイプは、マイクロインストラクシ
ョン直定数オペレーション用の、AABu sへ定数発
生器62を介してロードされる定数(ピッ)34−41
)及び定数位置を決めるだめの位置フィールド(ビット
42−43)を含む。ALUによ、って達成されるべき
機能(例えば、加算、減算、Pa5s等)はビット44
−48のBa5icフオーマツト又はビット44−46
のCon5tantフオーマツトによって決められる。
は全て、AABus46上のデータソース即ちALUB
人力を選するrBJフィールド(ビット34−37)を
有する。5hiftタイプはシフター48内で達成され
るべきシフト機能及びシフト値(ゼロから32ビツトの
ビット数)を決めるフィールド(ピッ)38−46)を
有している。マイクロインストラクションフォーマット
のCon5tantタイプは、マイクロインストラクシ
ョン直定数オペレーション用の、AABu sへ定数発
生器62を介してロードされる定数(ピッ)34−41
)及び定数位置を決めるだめの位置フィールド(ビット
42−43)を含む。ALUによ、って達成されるべき
機能(例えば、加算、減算、Pa5s等)はビット44
−48のBa5icフオーマツト又はビット44−46
のCon5tantフオーマツトによって決められる。
Ba5icのビット38はデータワード長制御であ゛す
、ビット39−43はメモリー要求機能を決める。
、ビット39−43はメモリー要求機能を決める。
インストラクションユニット
第5図において、インストラクションユニット20の内
部構造が示されている。インストラクションは内部デー
タバス41からブリフェッチキュー90ヘロードされる
。このブリフェッチキューは4つの32ビツトのロング
ワード(4つの4バイトインストラクシヨン及びオペラ
ンドワード)を保持する一組の高速レジスタとして構成
されたFIFOである。インストラクションが、1或い
は2バイトのOPコードに続く可変数のすベランド及び
特定子を有する可変長であり、ワードの境界上で整列し
ない場合があるので、ブリフェッチキュー90は、直ち
にアクセスされるべき次のインストラクション又はオペ
ランドの解析及びデコードを開始するの必要とされるそ
の情報を許容するよう働く。このブリフェッチキューは
1マシンサイクル内で20ングワードまでシフトアップ
することかできる。インストラクションストリームデー
タは、キューが充填されない時は何時でもブリフェッチ
キュー90の人力に入力される。他のシステムプロセス
はデータバスを要求しない。ブリフェッチマルチプレク
サ91は4ビツトアドレス情報をブリフェッチポインタ
92から受け、出力93にブリフェッチキュー90から
6バイトを生成する。この6バイトはOPコードから始
まる次の6有効バイトを表す。このOPコードはロング
ワード境界上にないかもしれない。出力93はOPコー
ドバイト93a1特定子バイト93b及びマルチプレク
サ91によってキュー90から選択され、キューのバイ
ト位置の何れかにおいて始まる特定子拡張フィールドの
4パイ)93cを含む。これら6バイトの二つは一組み
のデコーダ或いはOPコードデコーダ94を含む一組の
PLA及び特定子デコーダ95に供給ささる。
部構造が示されている。インストラクションは内部デー
タバス41からブリフェッチキュー90ヘロードされる
。このブリフェッチキューは4つの32ビツトのロング
ワード(4つの4バイトインストラクシヨン及びオペラ
ンドワード)を保持する一組の高速レジスタとして構成
されたFIFOである。インストラクションが、1或い
は2バイトのOPコードに続く可変数のすベランド及び
特定子を有する可変長であり、ワードの境界上で整列し
ない場合があるので、ブリフェッチキュー90は、直ち
にアクセスされるべき次のインストラクション又はオペ
ランドの解析及びデコードを開始するの必要とされるそ
の情報を許容するよう働く。このブリフェッチキューは
1マシンサイクル内で20ングワードまでシフトアップ
することかできる。インストラクションストリームデー
タは、キューが充填されない時は何時でもブリフェッチ
キュー90の人力に入力される。他のシステムプロセス
はデータバスを要求しない。ブリフェッチマルチプレク
サ91は4ビツトアドレス情報をブリフェッチポインタ
92から受け、出力93にブリフェッチキュー90から
6バイトを生成する。この6バイトはOPコードから始
まる次の6有効バイトを表す。このOPコードはロング
ワード境界上にないかもしれない。出力93はOPコー
ドバイト93a1特定子バイト93b及びマルチプレク
サ91によってキュー90から選択され、キューのバイ
ト位置の何れかにおいて始まる特定子拡張フィールドの
4パイ)93cを含む。これら6バイトの二つは一組み
のデコーダ或いはOPコードデコーダ94を含む一組の
PLA及び特定子デコーダ95に供給ささる。
出力93a上のOPコードに基づいて、デコーダ94は
出力96上にアクセスタイプのデータ長制御ビットの数
種の組み(AT/DL制御と呼ばれる)を生成する。各
オペランドに対する一つの組みがこのインストラクショ
ンに使用される。マルチプレクサ97はこの出力96を
受信し、決められたようにして各オペランドに対して一
つの組みを選択する。マルチプレクサ97の出力はラッ
チ98に保持され、それから実行ユニット21へ行く制
御バス38のAT/DL部分が得られる。
出力96上にアクセスタイプのデータ長制御ビットの数
種の組み(AT/DL制御と呼ばれる)を生成する。各
オペランドに対する一つの組みがこのインストラクショ
ンに使用される。マルチプレクサ97はこの出力96を
受信し、決められたようにして各オペランドに対して一
つの組みを選択する。マルチプレクサ97の出力はラッ
チ98に保持され、それから実行ユニット21へ行く制
御バス38のAT/DL部分が得られる。
タスク指名マルチプレクサ100は、′マイクロシーク
エンサ23に送られるべきタスク指定アドレスがインス
トラクションデコーダ94からの実行タスク指定、特定
子バイトデコーダ95からの特定子、停止タスク指定の
いずれであるかを選択する。
エンサ23に送られるべきタスク指定アドレスがインス
トラクションデコーダ94からの実行タスク指定、特定
子バイトデコーダ95からの特定子、停止タスク指定の
いずれであるかを選択する。
停止タスク指名は、ブリフェッチキュー90内に実行或
いは特定子タスク指名を決めるために十分なバイトがな
い場合発生される。この停止タスク指名はタスク指名ア
ドレスをマイクロシークエンサ23に単に強制的に送っ
て、マイクロインストラクションをアドレスする。この
マイクロインストラクションは■ボックスに戻る「デコ
ーダ次」要求を発生するだけであり、従って、何も行わ
ないサイクルが導入されて、■ボックスがブリフェッチ
キューを充填することが許容される。このマルチプレク
サ100からの11ビツトアドレス出力はタスク指名ア
ドレスラッチ101にラッチされ、サイロイングのため
に利用可能となる。キュー90からの出力93c上の4
バイトまでの特定子拡張データはラッチ102に与えら
れる。このラッチから、特定子拡張データは、存在する
特定の拡張データの符号を拡張し且つ正しく評価するフ
ォーマツタ103を通過し、このデータが32ビツトバ
ス43によって実行ユニット21に接続され別のラッチ
1(14に通過される。
いは特定子タスク指名を決めるために十分なバイトがな
い場合発生される。この停止タスク指名はタスク指名ア
ドレスをマイクロシークエンサ23に単に強制的に送っ
て、マイクロインストラクションをアドレスする。この
マイクロインストラクションは■ボックスに戻る「デコ
ーダ次」要求を発生するだけであり、従って、何も行わ
ないサイクルが導入されて、■ボックスがブリフェッチ
キューを充填することが許容される。このマルチプレク
サ100からの11ビツトアドレス出力はタスク指名ア
ドレスラッチ101にラッチされ、サイロイングのため
に利用可能となる。キュー90からの出力93c上の4
バイトまでの特定子拡張データはラッチ102に与えら
れる。このラッチから、特定子拡張データは、存在する
特定の拡張データの符号を拡張し且つ正しく評価するフ
ォーマツタ103を通過し、このデータが32ビツトバ
ス43によって実行ユニット21に接続され別のラッチ
1(14に通過される。
また、■ボックスはラッチ105内にデルタPC値を生
成する。Eボックスプログラムカウンタ56が現在処理
されているOPコード及び特定子内のバイトの数に基づ
いている次のOPコード又は特定子を指定するよう、プ
ログラムカウンタ56が増分されるべき量をデルタPC
値は表す。
成する。Eボックスプログラムカウンタ56が現在処理
されているOPコード及び特定子内のバイトの数に基づ
いている次のOPコード又は特定子を指定するよう、プ
ログラムカウンタ56が増分されるべき量をデルタPC
値は表す。
ラッチ105内のデルタPC値はP L Aによって変
化され、次にラッチ106にロードされ、バス38を介
してEボックスによって使用されるために次のマシンサ
イクルにおいて利用可能となる。
化され、次にラッチ106にロードされ、バス38を介
してEボックスによって使用されるために次のマシンサ
イクルにおいて利用可能となる。
更に、■ボックスはラッチ107内の4ビツトRNフイ
ールドを生成する。ラッチ107は現レジスタ又は実行
マイクロフローに対して使用されるべきレジスタファイ
ル50内の16の汎用目的レジスタの一つを特定する。
ールドを生成する。ラッチ107は現レジスタ又は実行
マイクロフローに対して使用されるべきレジスタファイ
ル50内の16の汎用目的レジスタの一つを特定する。
このRNフィールドは、特定子のレジスタフィールドか
ら導かれる。
ら導かれる。
更に、3ビツトSNフイールドがラッチ108内で作り
出され、現特定子フローの結果を記憶するのに使用され
るべきレジスタファイル50内のメモリーデータレジス
タを特定する。ラッチ108内の値はP L A、内で
変換され、バス38を介して第3のサイクル内でEボッ
クスによる使用のために準備される。第2のサイクルで
、ラッチ109ヘロードされる。
出され、現特定子フローの結果を記憶するのに使用され
るべきレジスタファイル50内のメモリーデータレジス
タを特定する。ラッチ108内の値はP L A、内で
変換され、バス38を介して第3のサイクル内でEボッ
クスによる使用のために準備される。第2のサイクルで
、ラッチ109ヘロードされる。
メモリー管理ユニット
メモリー管理ユニット30が第6図に詳細に示される。
インストラクション又はデータの読み出し又は書き込み
の為のアドレスは32ビツト仮想アドレスバス111上
に現れる。この仮想アドレスは翻訳バッファー110内
で使用され、内部ア7 )’ L/ スバス31へ行く
バス32上に現れる物理的即ち現実のアドレスを発生す
る。仮想アドレスは実行ユニット21内のALU45の
出力に発生され、A L U出力バスによって仮想アド
レスバス110へ与えられる。仮想アドレスは、或いは
3つのレジスタから出力112を介してバス110ヘロ
ードする場合がある。この3つのレジスタとは仮想アド
レスレジスタ (VA)113、仮想アドレス−次レジ
スタ(VAP)114、及び仮想インストラクションバ
ッファーアドレス(VIBA)レジスタ115である。
の為のアドレスは32ビツト仮想アドレスバス111上
に現れる。この仮想アドレスは翻訳バッファー110内
で使用され、内部ア7 )’ L/ スバス31へ行く
バス32上に現れる物理的即ち現実のアドレスを発生す
る。仮想アドレスは実行ユニット21内のALU45の
出力に発生され、A L U出力バスによって仮想アド
レスバス110へ与えられる。仮想アドレスは、或いは
3つのレジスタから出力112を介してバス110ヘロ
ードする場合がある。この3つのレジスタとは仮想アド
レスレジスタ (VA)113、仮想アドレス−次レジ
スタ(VAP)114、及び仮想インストラクションバ
ッファーアドレス(VIBA)レジスタ115である。
この3つのレジスタ113.114及び115は、メイ
ンデータバス及び実行ユニット21のALUを使用する
ことなく、多くのアドレスが発生されることを可能とす
る。これらレジスタの各々は、マイクロインストラクシ
ョンのW及びAフィールドの制御下で、入力116を介
して書き込みバス35から書き込みでき、出力117及
びAABus33を介して読み出しできる。VAレジス
タ113は、書き込み操作のためのアドレスを与え、全
てのメモリー要求に対するバス110から仮想アドレス
をラッチする。それでもしメモリー管理例外が生じると
、マイクロインストラクションはVAレジスタ113内
の誤りアドレスを常にアクセスできる。VAPレジスタ
114が常にVAババス10をプラス4にラッチする。
ンデータバス及び実行ユニット21のALUを使用する
ことなく、多くのアドレスが発生されることを可能とす
る。これらレジスタの各々は、マイクロインストラクシ
ョンのW及びAフィールドの制御下で、入力116を介
して書き込みバス35から書き込みでき、出力117及
びAABus33を介して読み出しできる。VAレジス
タ113は、書き込み操作のためのアドレスを与え、全
てのメモリー要求に対するバス110から仮想アドレス
をラッチする。それでもしメモリー管理例外が生じると
、マイクロインストラクションはVAレジスタ113内
の誤りアドレスを常にアクセスできる。VAPレジスタ
114が常にVAババス10をプラス4にラッチする。
それで、次のシーフェンスのロングワードのアドレスを
含む。このVAPレジスタはマイクロインストラクショ
ンによって使用され、複数のロングワードをアクセスし
、また整列されないメモリーリファレンス、即ち完遂さ
れる第2のリファレンスを要求するメモリーリファレン
スの第2のロングワードをアクセスする。マイクロイン
ストラクションが、プログラムカウンタ56のフラッシ
ュ及びロードを達成するときは何時でも、VIBAレジ
スタ115はロードされる。VIBAレジスタは次にメ
モリーからインストラクションストリームデータのロン
グワードをブリフェッチするのに使用され、プリフェッ
チキュー90を満たし、全インストラクションストリー
ムロングワードの後に4だけ増分される。インクリメン
タ−はレジスタ114及び115を4だけ増分する機能
を有する。
含む。このVAPレジスタはマイクロインストラクショ
ンによって使用され、複数のロングワードをアクセスし
、また整列されないメモリーリファレンス、即ち完遂さ
れる第2のリファレンスを要求するメモリーリファレン
スの第2のロングワードをアクセスする。マイクロイン
ストラクションが、プログラムカウンタ56のフラッシ
ュ及びロードを達成するときは何時でも、VIBAレジ
スタ115はロードされる。VIBAレジスタは次にメ
モリーからインストラクションストリームデータのロン
グワードをブリフェッチするのに使用され、プリフェッ
チキュー90を満たし、全インストラクションストリー
ムロングワードの後に4だけ増分される。インクリメン
タ−はレジスタ114及び115を4だけ増分する機能
を有する。
番羽訳バッファー111は、64のロケーション(記憶
位置)を有する。各ロケーションは最新の連続する翻訳
のタグをこのタグのページテーブルエン)IJ(PTE
)と共に含む。翻訳バッファーによってバス110から
受信される各仮想アドレスのページアドレス(ピッ)9
−31)は全ての64エントリの23ビツトタグと比較
される。
位置)を有する。各ロケーションは最新の連続する翻訳
のタグをこのタグのページテーブルエン)IJ(PTE
)と共に含む。翻訳バッファーによってバス110から
受信される各仮想アドレスのページアドレス(ピッ)9
−31)は全ての64エントリの23ビツトタグと比較
される。
致する場合、一致したタグに対応するPTEはバス11
9(21ビツト)上の出力である。仮想アドレスバス1
10のより低い30ビツトがバス120上に現れる。こ
のバスからビット0−8がライン121を介して内部ア
ドレスバス32に直接前わり、ページ内のバイトアドレ
スを構成する。
9(21ビツト)上の出力である。仮想アドレスバス1
10のより低い30ビツトがバス120上に現れる。こ
のバスからビット0−8がライン121を介して内部ア
ドレスバス32に直接前わり、ページ内のバイトアドレ
スを構成する。
VAババス10からの21ビット9−29は、バス12
0を介してのマルチプレクサ122への一方の入力であ
る。翻訳バッファーからのPTEはバス119を介して
の別の人力である。それで、内部アドレスバス31ヘバ
ス32を介して加えられるアドレスのより上方の21ピ
ツ)9分は従ってVAババスら直接或いはバッファー1
11及びPTEを介して翻訳されて得られる。従って、
マイクロインストラクション制御によって、内部アドレ
スバス31に加えられるアドレスはVAババス10から
直接得られるか又は翻訳バッファー111を使用する翻
訳アドレスである。
0を介してのマルチプレクサ122への一方の入力であ
る。翻訳バッファーからのPTEはバス119を介して
の別の人力である。それで、内部アドレスバス31ヘバ
ス32を介して加えられるアドレスのより上方の21ピ
ツ)9分は従ってVAババスら直接或いはバッファー1
11及びPTEを介して翻訳されて得られる。従って、
マイクロインストラクション制御によって、内部アドレ
スバス31に加えられるアドレスはVAババス10から
直接得られるか又は翻訳バッファー111を使用する翻
訳アドレスである。
VAババス 10上のアドレスのページはバッファー1
11内の64個のタグ内に無く、翻訳アドレスが特定さ
れる場合、誤り条件:TB誤りが発生される。マイクロ
シークエンサ23は、メモリー15或いはキャッシュ内
にオペ−レーティングシステムによって維持されるテー
ブル内でページアドレスがルップアップされることを可
能にするルーチンに対する開始アドレスを生成する。も
ちろん、これは達成される多数のマイクロインストラク
ションサイクルを必要とする。
11内の64個のタグ内に無く、翻訳アドレスが特定さ
れる場合、誤り条件:TB誤りが発生される。マイクロ
シークエンサ23は、メモリー15或いはキャッシュ内
にオペ−レーティングシステムによって維持されるテー
ブル内でページアドレスがルップアップされることを可
能にするルーチンに対する開始アドレスを生成する。も
ちろん、これは達成される多数のマイクロインストラク
ションサイクルを必要とする。
主キャッシュ
第7図を参照する。主キャシュ即ちPキャッシュ40が
より詳細に示される。このキャッシュは2にバイト高速
メモIJ −130を含む。この高速メモリーは内部ア
ドレスバス31によってアドレスされ、内部データバス
41間での読み出し書き込みをを行う。このメモ!l−
130は各行に於ける4つの4倍ワードQWOSQWI
、QW2及びQW4及び4つの対応するタグTagO1
Tag1、Tag2、Tag3を有する(各4倍ワード
に対して一つのタグが対応する)64行として構成され
ている。行デコーダ132は内部アドレスバス31から
ライン133上の6つのビット3−8に基づいて64の
内の1つを選択する。
より詳細に示される。このキャッシュは2にバイト高速
メモIJ −130を含む。この高速メモリーは内部ア
ドレスバス31によってアドレスされ、内部データバス
41間での読み出し書き込みをを行う。このメモ!l−
130は各行に於ける4つの4倍ワードQWOSQWI
、QW2及びQW4及び4つの対応するタグTagO1
Tag1、Tag2、Tag3を有する(各4倍ワード
に対して一つのタグが対応する)64行として構成され
ている。行デコーダ132は内部アドレスバス31から
ライン133上の6つのビット3−8に基づいて64の
内の1つを選択する。
選択された行はデータに対する列デコーダ134及びダ
グに対する行デコーダ135にロードされる。ここで、
4の1選択はIAババス1からライン136上に二つの
ビット9−10に基づいて成される。この方法により、
一つのダグ(20ビツト)及び4倍ワード(64ピッド
或いは8バイト)はPキャッシュ内のデータ及びタグI
/○バス137及び138に於いて選択される。
グに対する行デコーダ135にロードされる。ここで、
4の1選択はIAババス1からライン136上に二つの
ビット9−10に基づいて成される。この方法により、
一つのダグ(20ビツト)及び4倍ワード(64ピッド
或いは8バイト)はPキャッシュ内のデータ及びタグI
/○バス137及び138に於いて選択される。
データバス137はセンスアンプ139によってよまれ
るか、書き込みアンプ140によって書き込まれる。別
の2の1選択はIAババス1からライン141上のビッ
ト2に基づいてなされる。その結果、選択された32ビ
ット即ち4つのバイトは、タグヒツトが有る場合、内部
バス41間でロード或いは転送が行われる。キャシュメ
モIJ −130内の選択ロケーションから読み出され
たタグは、ライン144を介する■Δババス1からの1
8ビット11−28とコンパレータ143で比較される
。全てのビットが同じで有る場合、ヒツトがライン14
5上に発せられる。このライン145から、ミス(mi
ss)論理146はPキャツシュヒツト出力をライン1
47上に生成する。
るか、書き込みアンプ140によって書き込まれる。別
の2の1選択はIAババス1からライン141上のビッ
ト2に基づいてなされる。その結果、選択された32ビ
ット即ち4つのバイトは、タグヒツトが有る場合、内部
バス41間でロード或いは転送が行われる。キャシュメ
モIJ −130内の選択ロケーションから読み出され
たタグは、ライン144を介する■Δババス1からの1
8ビット11−28とコンパレータ143で比較される
。全てのビットが同じで有る場合、ヒツトがライン14
5上に発せられる。このライン145から、ミス(mi
ss)論理146はPキャツシュヒツト出力をライン1
47上に生成する。
これは、ライン149を介しての内部アドレスバス31
のビット29が、I10リファレンスがキャッシュされ
ず、リファレンスがI10スペースに対応することを示
さない場合に行われる。書き込みアンプ150は、キャ
ッシュ130が充填される時、タグをロードするために
タグI/○バス138のために設けられている。
のビット29が、I10リファレンスがキャッシュされ
ず、リファレンスがI10スペースに対応することを示
さない場合に行われる。書き込みアンプ150は、キャ
ッシュ130が充填される時、タグをロードするために
タグI/○バス138のために設けられている。
バスインターフェース
第8図を参照する。バスインターフェースユニット42
は内部”rドレスバス31上の30ビツト物理アドレス
に基づく27ビツトシステムアドレスバス12を駆動す
る。このビット数の違いは、バス31上30ビツトアド
レスはバイトアドレスであり、バス12上の27ビツト
が4倍7−ド(8バイト)に対して整列せれており、シ
ステムバス11の4倍ワード(64ビツト)に対応させ
るためによる。この変換を許容し、且つ整列された又は
整列されていない種々のデータ長を許容するために、制
御バス13は8ビツトバイトフイールドを含む。これは
、8つの可能なバイト位置の各々に対して1ビツトを含
む。バスインターフェース内の制御器155は、メモリ
ー管理ユニット内で発生される内部4ビツトバイトマス
クに基づいてシステム制御バスに与えられる8ビツトバ
イトマスクを含んでおり、ライン156によってバスイ
ンターフェースに接続される。バスインターフェース内
の制御器155はシステム制御バスに与えられる8ビツ
トバイトマスクを発生する。この8ビツトバイトマスク
は、メモリー管理ユニット内で生成され且つライン15
6によってバスインターフェースに接続される内部4ビ
ツトバイトマスクに基づいている。メモリー管理ユニッ
トはライン36上のデータ長DL制御ビットを、バス3
8を介してrボックス20内のOFコード及びオペラン
ド特定子のデコードに使用する。もちろん、バス31上
のアドレスのより低いビット〇−2は開始バイトアドレ
スを決める。この方法において、変換が32ビット内部
データバス41及び64ビツトシステムデ一タバス間及
び30ビット内部アドレスバス及び27ビツトシステム
アドシレスバスとの間でなされる。
は内部”rドレスバス31上の30ビツト物理アドレス
に基づく27ビツトシステムアドレスバス12を駆動す
る。このビット数の違いは、バス31上30ビツトアド
レスはバイトアドレスであり、バス12上の27ビツト
が4倍7−ド(8バイト)に対して整列せれており、シ
ステムバス11の4倍ワード(64ビツト)に対応させ
るためによる。この変換を許容し、且つ整列された又は
整列されていない種々のデータ長を許容するために、制
御バス13は8ビツトバイトフイールドを含む。これは
、8つの可能なバイト位置の各々に対して1ビツトを含
む。バスインターフェース内の制御器155は、メモリ
ー管理ユニット内で発生される内部4ビツトバイトマス
クに基づいてシステム制御バスに与えられる8ビツトバ
イトマスクを含んでおり、ライン156によってバスイ
ンターフェースに接続される。バスインターフェース内
の制御器155はシステム制御バスに与えられる8ビツ
トバイトマスクを発生する。この8ビツトバイトマスク
は、メモリー管理ユニット内で生成され且つライン15
6によってバスインターフェースに接続される内部4ビ
ツトバイトマスクに基づいている。メモリー管理ユニッ
トはライン36上のデータ長DL制御ビットを、バス3
8を介してrボックス20内のOFコード及びオペラン
ド特定子のデコードに使用する。もちろん、バス31上
のアドレスのより低いビット〇−2は開始バイトアドレ
スを決める。この方法において、変換が32ビット内部
データバス41及び64ビツトシステムデ一タバス間及
び30ビット内部アドレスバス及び27ビツトシステム
アドシレスバスとの間でなされる。
システムコントロールバス13は4ビツトコマンドを含
む。このコマンドはバスインターフェースユニット42
の制御器155によって制御され又は受信される。この
バスコマンドは、いかなるオペレーションがシステムバ
ス上で起こるかをを決める。即ちメモリー15からのC
PUl0読み出しインストラクションストリーム4倍ワ
ード、CP[J10読み出し8.データストリーム4倍
ワード、メモリー10へのCPUl0書き込み等を決め
る。
む。このコマンドはバスインターフェースユニット42
の制御器155によって制御され又は受信される。この
バスコマンドは、いかなるオペレーションがシステムバ
ス上で起こるかをを決める。即ちメモリー15からのC
PUl0読み出しインストラクションストリーム4倍ワ
ード、CP[J10読み出し8.データストリーム4倍
ワード、メモリー10へのCPUl0書き込み等を決め
る。
この4ビツトコマンドは、制御バス13の別のラインで
あるアドレスストローブと共に発生される。
あるアドレスストローブと共に発生される。
このバス13はReady、Read、DMA要求、割
り込み、)(a i t、及びコプロセッサ制御も含む
。これらは、完全なシステムを実行するために必要とな
ることがある。
り込み、)(a i t、及びコプロセッサ制御も含む
。これらは、完全なシステムを実行するために必要とな
ることがある。
データ及びアドレス及びバスコマンドは、入力ラッチ1
58及びデコアル出力ラッチ159によって入出力され
る。これらラッチの各々は64ビツトデータレジスタ1
60.27ビツトアドレスレジスタ161、及びバスコ
マンドレジスタ162を含む。この様にして、入力ラッ
チ158は−サイクルでバス11から64ビット4倍ワ
ードを受信し、二つの32ビツトロングワードを二サイ
クルで内部バス41に転送する。同様にして、各出力ラ
ッチ159はニサイクルで二つの32ビツトロングワー
ドをロードできる。次に64ビット4倍ワードが一サイ
クルでシステムバス11に転送することができる。二つ
の同じ出力ラッチを有うすることの理由は、CPUがメ
モリーに書き込む速度を上昇することにある。バス11
への出力ラッチの転送は、第3のサイクルまで(バス4
1から両出力ラッチへのロードが完了した後)生じない
からである。二つの出力ラッチを有すると、第1のラッ
チがシテスムデータバス11へ転送されている間に、第
2のラッチがロードできる。
58及びデコアル出力ラッチ159によって入出力され
る。これらラッチの各々は64ビツトデータレジスタ1
60.27ビツトアドレスレジスタ161、及びバスコ
マンドレジスタ162を含む。この様にして、入力ラッ
チ158は−サイクルでバス11から64ビット4倍ワ
ードを受信し、二つの32ビツトロングワードを二サイ
クルで内部バス41に転送する。同様にして、各出力ラ
ッチ159はニサイクルで二つの32ビツトロングワー
ドをロードできる。次に64ビット4倍ワードが一サイ
クルでシステムバス11に転送することができる。二つ
の同じ出力ラッチを有うすることの理由は、CPUがメ
モリーに書き込む速度を上昇することにある。バス11
への出力ラッチの転送は、第3のサイクルまで(バス4
1から両出力ラッチへのロードが完了した後)生じない
からである。二つの出力ラッチを有すると、第1のラッ
チがシテスムデータバス11へ転送されている間に、第
2のラッチがロードできる。
メモリーリードトランザクションは、内部命令バス12
5がメモリー読み出しを指示した時にバスインターフェ
ースユニット42によって実行される。メモリ管理ユニ
ッ)30から信号され、このメモリー管理ユニットが内
部アドレスバス31上に送られる物理アドレスによって
特定されるデータを要求する時前記トランザクションが
発生する。このアドレスが一次キャッシュ40タグ記憶
内に見出される場合、キャッシュ40はデータを内部デ
ータバス41に送る。意図された受信器(Iボックス或
いはEボックス)はデータバス41からのデータをラッ
チする。タグが一次キャッシュのタグコンパレータ14
3にない場合、ライン147上にタグヒット信号は発生
せず、ライン125上の読み出しコマンド及びバス31
上の物理アドレスは出力ラッチ159にロードされる。
5がメモリー読み出しを指示した時にバスインターフェ
ースユニット42によって実行される。メモリ管理ユニ
ッ)30から信号され、このメモリー管理ユニットが内
部アドレスバス31上に送られる物理アドレスによって
特定されるデータを要求する時前記トランザクションが
発生する。このアドレスが一次キャッシュ40タグ記憶
内に見出される場合、キャッシュ40はデータを内部デ
ータバス41に送る。意図された受信器(Iボックス或
いはEボックス)はデータバス41からのデータをラッ
チする。タグが一次キャッシュのタグコンパレータ14
3にない場合、ライン147上にタグヒット信号は発生
せず、ライン125上の読み出しコマンド及びバス31
上の物理アドレスは出力ラッチ159にロードされる。
制御器115は、システムバスが次の数サイクルで利用
可能な場合はいつでも処理を開始し、この読み出し要求
をサービスする。要求データが人力ラッチ158に受信
されてラッチされるまでに、Mボックス30からの別の
コマンドはサービスされない。このユニット42は人力
ラッチからのデータをバス41上、従って、意図された
行き先、エボックス、Eボックス或いはPボックスへ送
る。
可能な場合はいつでも処理を開始し、この読み出し要求
をサービスする。要求データが人力ラッチ158に受信
されてラッチされるまでに、Mボックス30からの別の
コマンドはサービスされない。このユニット42は人力
ラッチからのデータをバス41上、従って、意図された
行き先、エボックス、Eボックス或いはPボックスへ送
る。
例えば、−次キャッシュがなくデ・−夕がメインメモリ
15からフェッチされねばならない場合は、読み出しト
ランザクションは、CPUパイプラインが停止している
間6マシンサイクルを必要とする場合がある。メモリー
書き込みシーフェンスはMボックスによって内部コマン
ドバス125上!、:発生される書き込みコマンドから
始まる。この始まりの際、Mボックスは内部バイトマス
クをライン156上に送る。キャッシュ40が「通し書
き込み」タイプであるので、全てのメモリー書き込みは
キャッシュ内で「試みられ」そしてメインメモリ内で実
行される。従って、書き込みコマンドが内部コマンドバ
ス125上にあると、Pキャッシュ40はバス31上の
アドレスをそのダク配列と比較する。リファレンスがヒ
ツトすると、IDバス41上のデータはメモリー30内
に書き込まれる。タグ比較がないと、IAババス1、I
Dバス41、内部コ”7ンドバス125及びバイトマス
ク上のデータは全てロード出力ラッチにロードされ、外
部書き込みコマンドシーフェンスがメインメモリ (及
びもし使用さるならバックアップキャッシュ)に書き込
まれるようにされる。
15からフェッチされねばならない場合は、読み出しト
ランザクションは、CPUパイプラインが停止している
間6マシンサイクルを必要とする場合がある。メモリー
書き込みシーフェンスはMボックスによって内部コマン
ドバス125上!、:発生される書き込みコマンドから
始まる。この始まりの際、Mボックスは内部バイトマス
クをライン156上に送る。キャッシュ40が「通し書
き込み」タイプであるので、全てのメモリー書き込みは
キャッシュ内で「試みられ」そしてメインメモリ内で実
行される。従って、書き込みコマンドが内部コマンドバ
ス125上にあると、Pキャッシュ40はバス31上の
アドレスをそのダク配列と比較する。リファレンスがヒ
ツトすると、IDバス41上のデータはメモリー30内
に書き込まれる。タグ比較がないと、IAババス1、I
Dバス41、内部コ”7ンドバス125及びバイトマス
ク上のデータは全てロード出力ラッチにロードされ、外
部書き込みコマンドシーフェンスがメインメモリ (及
びもし使用さるならバックアップキャッシュ)に書き込
まれるようにされる。
パイプライン
第1図及び第8図のCPUは高度にパイプラインイ化さ
れており、インストラクションの実行における事象は多
くのマシンサイクルに渡って、広がる。多くのインスト
ラクションの部分の実行はオーバーラツプ、即ち同時に
おこる。CPUは第9図に一般的に示される様に5つの
セグメントからなるパイプラインを使用している。ここ
で、インストラクション11はその実行をサイクル1間
のセグメントS1で開始し、サイクル5におけるセグメ
ントS5まで続く。インストラクションI2はサイクル
2内のセグメントS1で実行され(その時、インストラ
クション11はセグメントs2にある)、サイクル6の
セグメントS5まで続く。サイクル5以降に於いて、バ
イブラインの5つのセグメント内で並列に実行される5
つの異なるインストラクションが存在する。もちろん、
第9図は理想状態であり、全てのインストラクションが
正確に5つのセグメントで実行されると仮定されている
。そして、停止或いは例外もない。
れており、インストラクションの実行における事象は多
くのマシンサイクルに渡って、広がる。多くのインスト
ラクションの部分の実行はオーバーラツプ、即ち同時に
おこる。CPUは第9図に一般的に示される様に5つの
セグメントからなるパイプラインを使用している。ここ
で、インストラクション11はその実行をサイクル1間
のセグメントS1で開始し、サイクル5におけるセグメ
ントS5まで続く。インストラクションI2はサイクル
2内のセグメントS1で実行され(その時、インストラ
クション11はセグメントs2にある)、サイクル6の
セグメントS5まで続く。サイクル5以降に於いて、バ
イブラインの5つのセグメント内で並列に実行される5
つの異なるインストラクションが存在する。もちろん、
第9図は理想状態であり、全てのインストラクションが
正確に5つのセグメントで実行されると仮定されている
。そして、停止或いは例外もない。
この理想状態においては、平均実行速度は−マシンサイ
クル当たり一インストラクンヨンである。
クル当たり一インストラクンヨンである。
第1図から第8図のCPU内のバイブラインの5つのセ
グメントで生じる5つの事象は、最も完全に第10図に
示されている。第1に、第11図を参照すると、CP
U 10はタロツク発生器44によってクロックされ、
同じ長さの4つ位相P1、P2、P3、P4を各マシン
サイクルで与えることが分かる。これらクロック位相は
、具体的な実施例において、CPUl0を構成するため
に使用されるCMO3回路を駆動するのに使用される。
グメントで生じる5つの事象は、最も完全に第10図に
示されている。第1に、第11図を参照すると、CP
U 10はタロツク発生器44によってクロックされ、
同じ長さの4つ位相P1、P2、P3、P4を各マシン
サイクルで与えることが分かる。これらクロック位相は
、具体的な実施例において、CPUl0を構成するため
に使用されるCMO3回路を駆動するのに使用される。
第10図のセグメント1において、インストラクション
ユニット20が、位相21間でプリフェッチキ:L−9
0に存在する正しいインストラクション及びオペランド
特定子を有すると、この情報はP2及びP3の間デコー
ダ94及び95内でデコードされ、タスク指名マルチプ
レクサ100の出力がP4で利用可能であり、ラッチ1
02にタスク指定アドレスがロードされる。ラッチ10
2にP4において解析された(Parsed)特定子拡
張を有する。これは、インストラクションストリームの
データ部分である。
ユニット20が、位相21間でプリフェッチキ:L−9
0に存在する正しいインストラクション及びオペランド
特定子を有すると、この情報はP2及びP3の間デコー
ダ94及び95内でデコードされ、タスク指名マルチプ
レクサ100の出力がP4で利用可能であり、ラッチ1
02にタスク指定アドレスがロードされる。ラッチ10
2にP4において解析された(Parsed)特定子拡
張を有する。これは、インストラクションストリームの
データ部分である。
セグメント2に於いて、タスク指名アドレスはPlの間
バス上に送られ、そして制御記憶22はP2及びP3の
間アクセスされる。マイクロインストラクションはこの
セグメントのP4の聞出力26において利用可能であり
、次のサイクルのPlに於いて実行ユニットの制御要素
の第1のレベルをロードするのに準備されている。また
、このセグメント2において、特定子拡張が少しでもあ
れば、フォーマツタ103を通してラッチ102からラ
ッチ1(14へ行く再にフォーマットされる。Sn及び
Rnのようなデータが計算されラッチされる。AT/D
L情報がラッチされる。
バス上に送られ、そして制御記憶22はP2及びP3の
間アクセスされる。マイクロインストラクションはこの
セグメントのP4の聞出力26において利用可能であり
、次のサイクルのPlに於いて実行ユニットの制御要素
の第1のレベルをロードするのに準備されている。また
、このセグメント2において、特定子拡張が少しでもあ
れば、フォーマツタ103を通してラッチ102からラ
ッチ1(14へ行く再にフォーマットされる。Sn及び
Rnのようなデータが計算されラッチされる。AT/D
L情報がラッチされる。
そして、このデータ及び制御情報は、次のサイクルの始
めにバス38を介して実行ユニット21に対して利用可
能となる。
めにバス38を介して実行ユニット21に対して利用可
能となる。
C5Oセグメントと呼ばれるバイブラインのセグメント
3に於いて、実行ユニット21は、種々のレジスタ又は
バスにアクセスして、AABus33及びABBus4
6上にオペ−lノートされるべきデータを置く。これは
、34ビツトC8Oラツチ165で利用可能なバス28
を介してロードされたマイクロインストラクションのA
及びBの制御フィールドに基づいて行われる。レジスタ
ファイル50、内部データバス41、中間データバス4
3は、レジスタセットの残りと同様、このセグメント内
のAABus及びABbusにロードされるべきオペラ
ンド対する全ソースである。前記レジスタセットはプロ
グラムカウンタ56、メモリー管理ユニット30におけ
るアドレスレジスタ113.114及び115を含む。
3に於いて、実行ユニット21は、種々のレジスタ又は
バスにアクセスして、AABus33及びABBus4
6上にオペ−lノートされるべきデータを置く。これは
、34ビツトC8Oラツチ165で利用可能なバス28
を介してロードされたマイクロインストラクションのA
及びBの制御フィールドに基づいて行われる。レジスタ
ファイル50、内部データバス41、中間データバス4
3は、レジスタセットの残りと同様、このセグメント内
のAABus及びABbusにロードされるべきオペラ
ンド対する全ソースである。前記レジスタセットはプロ
グラムカウンタ56、メモリー管理ユニット30におけ
るアドレスレジスタ113.114及び115を含む。
これらの全てがこのサイクルにおけるP4での読み出し
に対して利用できる様設定されている。また、実行ユニ
ットはこのセグメントのPlの間バス38上の制御ビッ
トを受は入れる。
に対して利用できる様設定されている。また、実行ユニ
ットはこのセグメントのPlの間バス38上の制御ビッ
トを受は入れる。
C3Iセグメンと呼ばれるセグメント4において、マイ
クロインストラクションのALU機能部分によって特定
されるオペレーションは、第4図に見られる様、それが
Ba5ic或いはCon5tantタイプである場合、
A L (、J 45で達成され、マイクロインストラ
クションが5hiftである場合、マイクロインストラ
クションのシフト機能及びシフト値フィールドによって
特定されるオペレーションがシフター48内で達成され
る。制御記憶22が全サイクル中において新たなマイク
ロインストラクションを生成するので、セグメント3で
使用されたのと同じマイクロインストラクションを最後
のサイクルから記憶することが必要である。このために
、制御記憶から利用可能なマイクロインストラクション
出力28がC8Oラツチ165内でラッチされ、このラ
ッチの出力はセグメント3内で達成されるオペレーショ
ンに使用され、第3図に示されるように別の34ビツト
C3Iラツチ166内にサイクルの最後においてラッチ
される。
クロインストラクションのALU機能部分によって特定
されるオペレーションは、第4図に見られる様、それが
Ba5ic或いはCon5tantタイプである場合、
A L (、J 45で達成され、マイクロインストラ
クションが5hiftである場合、マイクロインストラ
クションのシフト機能及びシフト値フィールドによって
特定されるオペレーションがシフター48内で達成され
る。制御記憶22が全サイクル中において新たなマイク
ロインストラクションを生成するので、セグメント3で
使用されたのと同じマイクロインストラクションを最後
のサイクルから記憶することが必要である。このために
、制御記憶から利用可能なマイクロインストラクション
出力28がC8Oラツチ165内でラッチされ、このラ
ッチの出力はセグメント3内で達成されるオペレーショ
ンに使用され、第3図に示されるように別の34ビツト
C3Iラツチ166内にサイクルの最後においてラッチ
される。
従って、マイクロインストラクションはセグメント4内
における拡張ユニットに対して利用可能である。再び、
ラッチ166の出力はセグメント4の終わり (このイ
ンストラクションに対する4番目のクロックサイクル)
でセグメント5で使用するため同様のC32ラツチ16
7に記憶される。
における拡張ユニットに対して利用可能である。再び、
ラッチ166の出力はセグメント4の終わり (このイ
ンストラクションに対する4番目のクロックサイクル)
でセグメント5で使用するため同様のC32ラツチ16
7に記憶される。
メモリー配列ユニツ) (MMU)30のオペレーショ
ンは拡張ユニット21のパイプラインセグントに対して
並列的に処理される。バス28からのインストラクショ
ンは、第6図に示される異なるC3Oラツチ168内に
セグメント3でラッチされ、セグメント4内で別のC8
1ラツチ169内にラッチされる。それで、第4図にに
示されるマイクロインストラクションメモリー要求フィ
ールドが必要な時利用可能である。セグメント4のマシ
ンサイクルのP2の間、ユニット30は、バスが要求さ
れている場合、要求をバスインターフェースユニット
(BIU)42に送ル。ユニット30はC81ラツチ1
69におけるマイクロインストラクションによって決め
られるアドレスソースを、ALU出力バス34、VAレ
ジスタ113等のソースから決定する。仮想アドレスバ
ス110はP4の間利用可能な選択されたアドレスを有
し、翻訳バッファー111はタグルックアップを作る。
ンは拡張ユニット21のパイプラインセグントに対して
並列的に処理される。バス28からのインストラクショ
ンは、第6図に示される異なるC3Oラツチ168内に
セグメント3でラッチされ、セグメント4内で別のC8
1ラツチ169内にラッチされる。それで、第4図にに
示されるマイクロインストラクションメモリー要求フィ
ールドが必要な時利用可能である。セグメント4のマシ
ンサイクルのP2の間、ユニット30は、バスが要求さ
れている場合、要求をバスインターフェースユニット
(BIU)42に送ル。ユニット30はC81ラツチ1
69におけるマイクロインストラクションによって決め
られるアドレスソースを、ALU出力バス34、VAレ
ジスタ113等のソースから決定する。仮想アドレスバ
ス110はP4の間利用可能な選択されたアドレスを有
し、翻訳バッファー111はタグルックアップを作る。
セグメント4の終わりに、マイクロインストラクション
はC3Iラッチ169からマルチプレクサ171を通し
てC32ラツチ170へ故障或いは例外による遅延が導
入されない場合転送される。
はC3Iラッチ169からマルチプレクサ171を通し
てC32ラツチ170へ故障或いは例外による遅延が導
入されない場合転送される。
セグメント5において、書き込みバス35は実行ユニッ
ト21内のALU或いはシフタ48出力によって駆動さ
れ、C52ラツチ167内のマイクロインストラクショ
ンのWフィールドによって決められる行き先を書き込む
。可能性のある行き先はレジスタフィールド50内の選
択されたレジスタ又はレジスタセットの選択されたレジ
スタ、回転子53を介しての内部データバス41、バイ
パスに対するAABus或いはABBus、又はメモリ
ー管理機能ユニット内の仮想アドレスバス110を含む
。セグメント5のPIの間、メモリー管理ユニット30
内において、PTEは、翻訳バッファー111が一致を
見出した時、バス119へ読み出されバス32を介して
内部アドレスバス31上に送られる。−次キャッシュ4
0内の行デコーダがP2の間lA31から°rアドレス
受信し、P2の終了によってデータ及びタグをアクセス
する。次に、タグコンパレータ143が23におけるタ
グ比較を行う。一致する場合であり、書き込みが行われ
ている場合、データはP3の終わりに内部バス41上で
利用可能であり、それが書き込みの場合、キャッシュメ
モIJ −130に書き込まれる。タグが一致しない場
合、失敗がライン147上にP3で信号される。メモリ
ー管理ユニットにおいて、翻訳バッファー111はタグ
一致を検出しない場合、例外がセグメント5のP2によ
って決定され、物理アドレスを発生するためのページ数
をルックアップするためのルーチンが実行されるよう信
号される。
ト21内のALU或いはシフタ48出力によって駆動さ
れ、C52ラツチ167内のマイクロインストラクショ
ンのWフィールドによって決められる行き先を書き込む
。可能性のある行き先はレジスタフィールド50内の選
択されたレジスタ又はレジスタセットの選択されたレジ
スタ、回転子53を介しての内部データバス41、バイ
パスに対するAABus或いはABBus、又はメモリ
ー管理機能ユニット内の仮想アドレスバス110を含む
。セグメント5のPIの間、メモリー管理ユニット30
内において、PTEは、翻訳バッファー111が一致を
見出した時、バス119へ読み出されバス32を介して
内部アドレスバス31上に送られる。−次キャッシュ4
0内の行デコーダがP2の間lA31から°rアドレス
受信し、P2の終了によってデータ及びタグをアクセス
する。次に、タグコンパレータ143が23におけるタ
グ比較を行う。一致する場合であり、書き込みが行われ
ている場合、データはP3の終わりに内部バス41上で
利用可能であり、それが書き込みの場合、キャッシュメ
モIJ −130に書き込まれる。タグが一致しない場
合、失敗がライン147上にP3で信号される。メモリ
ー管理ユニットにおいて、翻訳バッファー111はタグ
一致を検出しない場合、例外がセグメント5のP2によ
って決定され、物理アドレスを発生するためのページ数
をルックアップするためのルーチンが実行されるよう信
号される。
バブル生成及び圧縮
上述されたCPUハイブライン内におけるバブル圧縮は
第10図のハイブラインのセグメント1及びセグメント
2で達成される。
第10図のハイブラインのセグメント1及びセグメント
2で達成される。
ブリフエツチキ5−90が空きである時は常に、セグメ
ント1は有効なタスク指名アドレスをマイクロシークエ
ンサ23に送ることが出来ない。その替わり停止タスク
指名を送る。停止タスク指名はエンド70−マイクロイ
ンストラクションを製造する制御記憶22内の特別のア
ドレスである。
ント1は有効なタスク指名アドレスをマイクロシークエ
ンサ23に送ることが出来ない。その替わり停止タスク
指名を送る。停止タスク指名はエンド70−マイクロイ
ンストラクションを製造する制御記憶22内の特別のア
ドレスである。
このエンドフローインストラクションは、第3図に示さ
れる様にデコーダ次ライン上に信号を発生することによ
り、新たなタスク指名をマイクロシークエンサ23に要
求させる。これは、セグメント1に別のサイクルを与え
て、新たなタスク指名アドレスを生成する効果を有する
。
れる様にデコーダ次ライン上に信号を発生することによ
り、新たなタスク指名をマイクロシークエンサ23に要
求させる。これは、セグメント1に別のサイクルを与え
て、新たなタスク指名アドレスを生成する効果を有する
。
セグメント1が第5図のタスク指名マルチプレクサ10
0を介して停止タスク指名を発生するときは何時でも、
ラッチ101.102.105.107及び108に送
られる解析及びデコードされたCPUインストラクショ
ン情報或いはセグメント2は有効でない。本発明による
と、これらラッチ101.102.105.107及び
108は、セグメント1がマルチプレクサ100で停止
タスク指名を発生する時は常にセットされるオーバーラ
イドフラグを有する。このオーバーライドフラグは、ラ
ッチが有用でない情報(バブル)を含み、従って何時で
も重ね書きできることを指示する。
0を介して停止タスク指名を発生するときは何時でも、
ラッチ101.102.105.107及び108に送
られる解析及びデコードされたCPUインストラクショ
ン情報或いはセグメント2は有効でない。本発明による
と、これらラッチ101.102.105.107及び
108は、セグメント1がマルチプレクサ100で停止
タスク指名を発生する時は常にセットされるオーバーラ
イドフラグを有する。このオーバーライドフラグは、ラ
ッチが有用でない情報(バブル)を含み、従って何時で
も重ね書きできることを指示する。
表1 (第12図)はバブルがどの様にして生成される
かそしてそれらバブルが、どの様にして本発明に従って
バブルを圧縮しないマイクロプログラムCP tJのパ
イプラインを介して伝播するかの例を示す。ラッチ10
1.102等のラッチに対するオーバライドフラグは存
在しないと仮定している。
かそしてそれらバブルが、どの様にして本発明に従って
バブルを圧縮しないマイクロプログラムCP tJのパ
イプラインを介して伝播するかの例を示す。ラッチ10
1.102等のラッチに対するオーバライドフラグは存
在しないと仮定している。
第3図及び表1 (第12図)を参照する。サイクル0
において、マイクロシークエンサ23はエンドフローマ
イクロインストラクションをアドレスする。これは、第
3図のマイクロシークエンサ23が、デコーダ次ライン
上に信号を発生して、■ボックスセグメント1から新た
なマイクロフロータスク指名アドレスを得るようにさせ
る。ラッチ102は現在マイクロワードBで始まるマイ
クロフローのタスク指名アドレスを含む。このサイクル
において、セグメント1は新たな行き先アドレスを発生
するための十分なデータを有さず、従って、停止タスク
指名を発生する。
において、マイクロシークエンサ23はエンドフローマ
イクロインストラクションをアドレスする。これは、第
3図のマイクロシークエンサ23が、デコーダ次ライン
上に信号を発生して、■ボックスセグメント1から新た
なマイクロフロータスク指名アドレスを得るようにさせ
る。ラッチ102は現在マイクロワードBで始まるマイ
クロフローのタスク指名アドレスを含む。このサイクル
において、セグメント1は新たな行き先アドレスを発生
するための十分なデータを有さず、従って、停止タスク
指名を発生する。
サイクル1に於いて、テコーダ次ラインでの信号発生は
、ラッチ102.105.107及び108を更新させ
、実行ユニット及びメモリー管理ユニットがパイプライ
ンに先立ってラッチ165及び168においてデータを
更新させる。
、ラッチ102.105.107及び108を更新させ
、実行ユニット及びメモリー管理ユニットがパイプライ
ンに先立ってラッチ165及び168においてデータを
更新させる。
マイクロシークエンサ23はサイクル0間でラッチ10
1に記憶されるタスク指名アドレスを使用して、マイク
ロワードBをフェッチする。セグメント1は新たなタス
ク指名アドレスをあたえることがでのないので、ラッチ
101は今停止タスク指名をホールドする。このステー
ジにおいて、ラッチ101そして実質上セグメント2は
バブルを含む。セグメント1は新たなタスク指名アドレ
スを与えるためには未だ準備がされていない。
1に記憶されるタスク指名アドレスを使用して、マイク
ロワードBをフェッチする。セグメント1は新たなタス
ク指名アドレスをあたえることがでのないので、ラッチ
101は今停止タスク指名をホールドする。このステー
ジにおいて、ラッチ101そして実質上セグメント2は
バブルを含む。セグメント1は新たなタスク指名アドレ
スを与えるためには未だ準備がされていない。
サイクル2に於いて、マイクロシークエンサ23はその
マイクロフローを続け、制御記憶22から次のマイクロ
インストラクションをフェッチする。これにより、第2
のインストラクションユニットセグメント2が停止され
る。このサイクルにおいて、セグメント1はマイクロワ
ードQで開始するマイクロフローに対する新たなタスク
指名アドレスを発生する。
マイクロフローを続け、制御記憶22から次のマイクロ
インストラクションをフェッチする。これにより、第2
のインストラクションユニットセグメント2が停止され
る。このサイクルにおいて、セグメント1はマイクロワ
ードQで開始するマイクロフローに対する新たなタスク
指名アドレスを発生する。
サイクル3において、マイクロシークエンサ23はマイ
クロフローの次のインストラクションをフェッチし、セ
グメント2の停止を続行する。
クロフローの次のインストラクションをフェッチし、セ
グメント2の停止を続行する。
セグメント1は同様に停止される。これは、セグメント
はラッチ101.102.105等に対する状態を進ま
せることが出来ないためである。セグメント1はマイク
ロワードQに対するアドレスを生成し続ける。
はラッチ101.102.105等に対する状態を進ま
せることが出来ないためである。セグメント1はマイク
ロワードQに対するアドレスを生成し続ける。
サイクル4に於いて、マイクロシークエンサ23はマイ
クロフローの終わりに到達し、新たなマイクロフロータ
スク指名アドレスを、デコード次ライン上に信号を発生
することにより、要求する。セグメント1及びセグメン
ト2は停止続ける。
クロフローの終わりに到達し、新たなマイクロフロータ
スク指名アドレスを、デコード次ライン上に信号を発生
することにより、要求する。セグメント1及びセグメン
ト2は停止続ける。
サイクル5に於いて、マイクロシークエンサ23は、ラ
ッチ102から停止タスク指名(バブル)を得る。これ
により、マイクロシークエンサ23に他のエンドフロー
インストラクションをフェッチさせ、デコーダ次ライン
上に信号を発生し続ける。ラッチ105は、セグメント
1からのマイクロワードaから始まるマイクロフローの
タスク指名アドレスをロードする。セグメント1はマイ
クロワードTで始まるマイクロフローに対する新たなタ
スク指名アドレスを発生する。
ッチ102から停止タスク指名(バブル)を得る。これ
により、マイクロシークエンサ23に他のエンドフロー
インストラクションをフェッチさせ、デコーダ次ライン
上に信号を発生し続ける。ラッチ105は、セグメント
1からのマイクロワードaから始まるマイクロフローの
タスク指名アドレスをロードする。セグメント1はマイ
クロワードTで始まるマイクロフローに対する新たなタ
スク指名アドレスを発生する。
サイクル6において、マイクロシークエンサ23はラッ
チ101からタスク指名アドレス(マイクロワードQに
対するアドレス)を得る。このラッチはセグメント1か
ら新たなタスク指名アドレス(マイクロワードTに対す
るアドレス)を得る。セグメント1はマイクロワードY
から始まるマイクロフローに対する新たなタスク指名ア
ドレスを生成する。この様にして、第1のパイプつイン
停止によって生成されるバブルがパイプラインセグメン
トを介して伝達する。
チ101からタスク指名アドレス(マイクロワードQに
対するアドレス)を得る。このラッチはセグメント1か
ら新たなタスク指名アドレス(マイクロワードTに対す
るアドレス)を得る。セグメント1はマイクロワードY
から始まるマイクロフローに対する新たなタスク指名ア
ドレスを生成する。この様にして、第1のパイプつイン
停止によって生成されるバブルがパイプラインセグメン
トを介して伝達する。
表2(第13図)は、本発明に従ってパイプライン化さ
れ、マイクロプログラミングされたCPUのデコーダ次
及びオーバーライドフラグ信号を使用してどの様にして
バブルが生成されかつ圧縮されるかを示している。
れ、マイクロプログラミングされたCPUのデコーダ次
及びオーバーライドフラグ信号を使用してどの様にして
バブルが生成されかつ圧縮されるかを示している。
サイクル0.1及び2は表1のものと本質的に同じであ
る。ラッチ102.105.107.108がサイクル
1及びサイクル2内で停止タスク指名を含む時に、オー
バーライドフラグがセットされる。これはセグメント1
を、これらラッチがバブルを含み且つ、パイプラインが
停止されるかどうかに関わらず、次のサイクルの間重ね
書きされる。
る。ラッチ102.105.107.108がサイクル
1及びサイクル2内で停止タスク指名を含む時に、オー
バーライドフラグがセットされる。これはセグメント1
を、これらラッチがバブルを含み且つ、パイプラインが
停止されるかどうかに関わらず、次のサイクルの間重ね
書きされる。
サイクル3に於いて、マイクロシークエンサ23はマイ
クロフローの次のインストラクションをフェッチし、セ
グメント2の停止を続ける。しかしながら、ラッチ10
1.102.105.107及び108内のラッチはセ
ットされたので、これらのラッチはマイクロコマンドQ
からスタートするマイクロフロー用データをセグメント
1からロードし、これらのラッチ内のバブルの重ね書き
及び圧縮を結果する。同時に、セグメント1はマイクロ
ワードTから始まるマイクロフロー用新たなタスク指名
を生成する。
クロフローの次のインストラクションをフェッチし、セ
グメント2の停止を続ける。しかしながら、ラッチ10
1.102.105.107及び108内のラッチはセ
ットされたので、これらのラッチはマイクロコマンドQ
からスタートするマイクロフロー用データをセグメント
1からロードし、これらのラッチ内のバブルの重ね書き
及び圧縮を結果する。同時に、セグメント1はマイクロ
ワードTから始まるマイクロフロー用新たなタスク指名
を生成する。
サーイクル4において、マイクロシークエンサ23はマ
イクロフローの終了に到達し、デコーダ次ライン上に信
号を発生することにより新たなマイクロフロータスク指
名アドレスを要求する。サイクル3に於けるラッチ10
2等の重ね書きのために、マイクロコマンド23は今、
バブル圧縮が行われなかった場合に結果された停止タス
ク指名の替わりに有効なタスク指名アドレスを得る。
イクロフローの終了に到達し、デコーダ次ライン上に信
号を発生することにより新たなマイクロフロータスク指
名アドレスを要求する。サイクル3に於けるラッチ10
2等の重ね書きのために、マイクロコマンド23は今、
バブル圧縮が行われなかった場合に結果された停止タス
ク指名の替わりに有効なタスク指名アドレスを得る。
サイクル5において、マイクロシークエンサ23はラッ
チ102からタスク指名アドレス(マイクロワードQ用
アドレス)を得る。このラッチは新たなタスク指名アド
レスを得、表1のサイクル6に於ける用な新たなタスク
指名アドレスを生成する。
チ102からタスク指名アドレス(マイクロワードQ用
アドレス)を得る。このラッチは新たなタスク指名アド
レスを得、表1のサイクル6に於ける用な新たなタスク
指名アドレスを生成する。
この様にして、バブル圧縮サイクル及び救助は、パイプ
ラインCPU内のより大きいインストラクションスルー
プットを達成する。
ラインCPU内のより大きいインストラクションスルー
プットを達成する。
本発明は特定の実施例を参照して記述されたが、この記
述は限定的な意味で使用されることを意味しない。開示
された実施例の種々の変形例は、本発明の別の実施例と
同様に当業者には明らかであろう。従って、特許請求の
範囲は、この様な本発明の真の精神に合致するいかなる
実施例或いは実施態様を包含するものと意図されている
。
述は限定的な意味で使用されることを意味しない。開示
された実施例の種々の変形例は、本発明の別の実施例と
同様に当業者には明らかであろう。従って、特許請求の
範囲は、この様な本発明の真の精神に合致するいかなる
実施例或いは実施態様を包含するものと意図されている
。
第1図は本発明の一実施例に従う中央処理ユニットを含
むコンピュータシステムのブロック図、第2図は第1図
のCPUの拡張ユニットのブロック図、 第3図は第1図のCPUのマイクロプロセッサのブロッ
ク図、 第4図は第3図の中央記憶内に含まれるマイクロインス
トラクションのフォーマット図、第5図は第1図のCP
Uのインストラクションユニットのブロック図、 第6図は第1図のCPUのメモリー管理ユニットの回路
図、 第7図は第1図のCPUの主キャッシュ即ちPキュッシ
ュの回路図、 第8図は第1図のCPUのバスインターフェースユニッ
トのブロック図、 第9図は連続するマシンサイクルで第1図のパイプライ
ン化されたCPUl0で発生する事象を示すタイミング
図、 第10図は第1図から第8図のCPUでのインストラク
ションの実行を詳細に示す事象と時間との関係を示す図
、 第11図は第1図のCPUに於けるクロック発生器によ
り生成される4つの位相出力クロックのタイミング図、 第12図はバブル生成及びバブル伝播の様子を説明する
ための表図、 第13図はバブル生成及びバブル圧縮の様子を説明する
だめの表図。 (方式) 平成 年 1.11.16 でで月 日 \ 九二1
むコンピュータシステムのブロック図、第2図は第1図
のCPUの拡張ユニットのブロック図、 第3図は第1図のCPUのマイクロプロセッサのブロッ
ク図、 第4図は第3図の中央記憶内に含まれるマイクロインス
トラクションのフォーマット図、第5図は第1図のCP
Uのインストラクションユニットのブロック図、 第6図は第1図のCPUのメモリー管理ユニットの回路
図、 第7図は第1図のCPUの主キャッシュ即ちPキュッシ
ュの回路図、 第8図は第1図のCPUのバスインターフェースユニッ
トのブロック図、 第9図は連続するマシンサイクルで第1図のパイプライ
ン化されたCPUl0で発生する事象を示すタイミング
図、 第10図は第1図から第8図のCPUでのインストラク
ションの実行を詳細に示す事象と時間との関係を示す図
、 第11図は第1図のCPUに於けるクロック発生器によ
り生成される4つの位相出力クロックのタイミング図、 第12図はバブル生成及びバブル伝播の様子を説明する
ための表図、 第13図はバブル生成及びバブル圧縮の様子を説明する
だめの表図。 (方式) 平成 年 1.11.16 でで月 日 \ 九二1
Claims (14)
- (1)デジタルコンピュータに於けるパイプライン化さ
れた処理ユニットを操作する方法であって、前記処理ユ
ニットがデータを処理するための少なくとも第1のパイ
プラインセグメンント及び第2のパイプラインセグメン
トを有しており、前記第2パイプラインセグメントの前
記パイプライン上流に於いて前記第1のパイプラインセ
グメントがデータを処理し、前記データの処理が、前記
第1のパイプラインセグメント内にバブルを発生する停
止条件を発生することがあり、この方法が、 a)第1のパイプラインセグメント内でバブルを検出し
、 b)その後、前記第2のパイプラインセグメント内の停
止条件を検出し、 c)前記第1のパイプラインセグメント内のバブルを重
ね書きして、前記バブルを圧縮する工程からなることを
特徴とする方法。 - (2)前記第1のパイプラインセグメントはインストラ
クションをデコードするオペレーション及び前記インス
トラクションに基づく制御データを生成するオペレーシ
ョンを達成することを特徴とする請求項1記載の方法。 - (3)前記第2のパイプラインセグメントが、前記第1
のパイプラインセグメント内でのインストラクションの
デコーディングに応答して制御ビットの組みを発生する
オペレーションを達成する請求項2記載の方法。 - (4)前記第1のセグメント中の前記バブルが或る条件
を含み、これにより前記制御データが無効になり、重ね
書きできるようになる請求項3記載の方法。 - (5)前記プロセッサーが第3のパイプラインセグメン
トを含み、このセグメントに於けるオペランドはレジス
タファイルからフェッチされ、或るオペレーションが前
記オペランド上で達成され、結果が前記レジスタファイ
ルに記憶されることを特徴とする請求項4記載の方法。 - (6)前記制御データは前記レジスタファイル内のレジ
スタの識別を含むことを特徴とする請求項5記載の方法
。 - (7)前記プロセッサは、マイクロプログラム化されて
おり、前記第2のパイプラインセグメントはマイクロイ
ンストラクション記憶から前記制御ビットの組みをフェ
ッチすることを含むことを特徴とする請求項6記載の方
法。 - (8)(a)複数の連続するオペレーティングステージ
であり、各ステージは、或るオペレーションを一組みの
データ或いは前のステージから受信された制御を達成し
、一組みのデータ或いは制御の出力を次のステージに送
るか、さもなければ停止を導入し、これによって、オペ
レーションは達成されず且つデータ或いは制御が後のス
テージに通過されず、少なくとも前記ステージの一つが
その代わりに後のステージに通過されるべきデータ或い
は制御の非操作的セットを導入するオペレーティングス
テージ、 (b)前記ステージの何れもが停止を導入しない時、前
記ステージの全てに於いて同時に前記データ又は制御の
組を前進し、前記或る与えられたステージが停止を導入
する時、前記ステージの内の或る与えられたステージよ
りも下流側のステージに於いて前記データ又は制御の組
を前進するための手段、 (c)非操作的なデータ又は制御の組を前記ステージの
少なくとも一つに重ね書きするための手段から構成され
るプロセッサ。 - (9)前記オペレーティングステージが、インストラク
ションをデコードし且つ下流側のステージで使用するた
めの制御データを生成するするための第1のステージを
含むことを特徴とする請求項8記載のプロセッサ。 - (10)前記オペレーティングステージが、前記デコー
ドされたインストラクションに応答して制御ビットの組
みを発生するための第2ステージを含むことを特徴とす
る請求項9記載のプロセッサ。 - (11)前記プロセッサーがマイクロコード化されてお
り、前記第2のステージがマイクロコード記憶から前記
制御ビットの組をフェッチすることを特徴とする請求項
10記載のプロセッサ。 - (12)前記データ又は制御の組は一時的にラッチに記
憶され、前記重ね書きのための手段は前記ラッチを重ね
書きすることを特徴とする請求項9記載のプロセッサ。 - (13)前記ステージは、レジスタファイル内のレジス
タからオペランドをフェッチするための第3のステージ
を含むことを特徴とする請求項8記載のプロセッサ。 - (14)データ及び制御の組が前記レジスタの識別を含
むことを特徴とする請求項13記載のプロセッサ。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US221988 | 1988-07-20 | ||
| US07/221,988 US5019967A (en) | 1988-07-20 | 1988-07-20 | Pipeline bubble compression in a computer system |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH02155037A true JPH02155037A (ja) | 1990-06-14 |
| JPH0774991B2 JPH0774991B2 (ja) | 1995-08-09 |
Family
ID=22830272
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP1188708A Expired - Fee Related JPH0774991B2 (ja) | 1988-07-20 | 1989-07-20 | デジタルコンピュータに於けるパイプライン化された処理ユニットの動作方法 |
Country Status (6)
| Country | Link |
|---|---|
| US (1) | US5019967A (ja) |
| EP (1) | EP0352103B1 (ja) |
| JP (1) | JPH0774991B2 (ja) |
| AT (1) | ATE128565T1 (ja) |
| CA (1) | CA1320275C (ja) |
| DE (1) | DE68924380T2 (ja) |
Families Citing this family (42)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2858140B2 (ja) * | 1988-10-19 | 1999-02-17 | アポロ・コンピューター・インコーポレーテッド | パイプラインプロセッサ装置および方法 |
| JPH0395629A (ja) * | 1989-09-08 | 1991-04-22 | Fujitsu Ltd | データ処理装置 |
| US5555384A (en) * | 1989-12-01 | 1996-09-10 | Silicon Graphics, Inc. | Rescheduling conflicting issued instructions by delaying one conflicting instruction into the same pipeline stage as a third non-conflicting instruction |
| US5280597A (en) * | 1990-03-30 | 1994-01-18 | Mitsubishi Denki Kabushiki Kaisha | Pipeline processor with self timed data transfer |
| US5430862A (en) * | 1990-06-29 | 1995-07-04 | Bull Hn Information Systems Inc. | Emulation of CISC instructions by RISC instructions using two pipelined stages for overlapped CISC decoding and RISC execution |
| CA2045705A1 (en) * | 1990-06-29 | 1991-12-30 | Richard Lee Sites | In-register data manipulation in reduced instruction set processor |
| JPH04184534A (ja) * | 1990-11-20 | 1992-07-01 | Fujitsu Ltd | プロセッサ |
| US5590294A (en) * | 1991-03-19 | 1996-12-31 | Silicon Graphics, Inc. | Method and apparatus for retarting pipeline processing |
| US5325495A (en) * | 1991-06-28 | 1994-06-28 | Digital Equipment Corporation | Reducing stall delay in pipelined computer system using queue between pipeline stages |
| US5524250A (en) * | 1991-08-23 | 1996-06-04 | Silicon Graphics, Inc. | Central processing unit for processing a plurality of threads using dedicated general purpose registers and masque register for providing access to the registers |
| US5438668A (en) * | 1992-03-31 | 1995-08-01 | Seiko Epson Corporation | System and method for extraction, alignment and decoding of CISC instructions into a nano-instruction bucket for execution by a RISC computer |
| EP0649085B1 (en) * | 1993-10-18 | 1998-03-04 | Cyrix Corporation | Microprocessor pipe control and register translation |
| US6138230A (en) * | 1993-10-18 | 2000-10-24 | Via-Cyrix, Inc. | Processor with multiple execution pipelines using pipe stage state information to control independent movement of instructions between pipe stages of an execution pipeline |
| US6073231A (en) * | 1993-10-18 | 2000-06-06 | Via-Cyrix, Inc. | Pipelined processor with microcontrol of register translation hardware |
| US5630149A (en) * | 1993-10-18 | 1997-05-13 | Cyrix Corporation | Pipelined processor with register renaming hardware to accommodate multiple size registers |
| US6128721A (en) * | 1993-11-17 | 2000-10-03 | Sun Microsystems, Inc. | Temporary pipeline register file for a superpipelined superscalar processor |
| US5864716A (en) * | 1994-01-07 | 1999-01-26 | Cirrus Logic, Inc. | Tagged data compression for parallel port interface |
| US5548733A (en) * | 1994-03-01 | 1996-08-20 | Intel Corporation | Method and apparatus for dynamically controlling the current maximum depth of a pipe lined computer bus system |
| US5784579A (en) * | 1994-03-01 | 1998-07-21 | Intel Corporation | Method and apparatus for dynamically controlling bus access from a bus agent based on bus pipeline depth |
| US5636352A (en) * | 1994-12-16 | 1997-06-03 | International Business Machines Corporation | Method and apparatus for utilizing condensed instructions |
| US5619408A (en) * | 1995-02-10 | 1997-04-08 | International Business Machines Corporation | Method and system for recoding noneffective instructions within a data processing system |
| US5748855A (en) * | 1995-10-02 | 1998-05-05 | Iinternational Business Machines Corporation | Method and system for performance monitoring of misaligned memory accesses in a processing system |
| US5949971A (en) * | 1995-10-02 | 1999-09-07 | International Business Machines Corporation | Method and system for performance monitoring through identification of frequency and length of time of execution of serialization instructions in a processing system |
| US5729726A (en) * | 1995-10-02 | 1998-03-17 | International Business Machines Corporation | Method and system for performance monitoring efficiency of branch unit operation in a processing system |
| US5797019A (en) * | 1995-10-02 | 1998-08-18 | International Business Machines Corporation | Method and system for performance monitoring time lengths of disabled interrupts in a processing system |
| US5752062A (en) * | 1995-10-02 | 1998-05-12 | International Business Machines Corporation | Method and system for performance monitoring through monitoring an order of processor events during execution in a processing system |
| US5751945A (en) * | 1995-10-02 | 1998-05-12 | International Business Machines Corporation | Method and system for performance monitoring stalls to identify pipeline bottlenecks and stalls in a processing system |
| US5691920A (en) * | 1995-10-02 | 1997-11-25 | International Business Machines Corporation | Method and system for performance monitoring of dispatch unit efficiency in a processing system |
| US5889975A (en) * | 1996-11-07 | 1999-03-30 | Intel Corporation | Method and apparatus permitting the use of a pipe stage having an unknown depth with a single microprocessor core |
| US5944841A (en) * | 1997-04-15 | 1999-08-31 | Advanced Micro Devices, Inc. | Microprocessor with built-in instruction tracing capability |
| US5933626A (en) * | 1997-06-12 | 1999-08-03 | Advanced Micro Devices, Inc. | Apparatus and method for tracing microprocessor instructions |
| US6862563B1 (en) | 1998-10-14 | 2005-03-01 | Arc International | Method and apparatus for managing the configuration and functionality of a semiconductor design |
| WO2000070483A2 (en) * | 1999-05-13 | 2000-11-23 | Arc International U.S. Holdings Inc. | Method and apparatus for processor pipeline segmentation and re-assembly |
| US6988154B2 (en) | 2000-03-10 | 2006-01-17 | Arc International | Memory interface and method of interfacing between functional entities |
| US6658557B1 (en) | 2000-05-25 | 2003-12-02 | Advanced Micro Devices, Inc. | Synthesizing the instruction stream executed by a microprocessor from its branch trace data |
| EP1205840B1 (en) * | 2000-11-08 | 2010-07-14 | Altera Corporation | Stall control in a processor with multiple pipelines |
| US7000095B2 (en) | 2002-09-06 | 2006-02-14 | Mips Technologies, Inc. | Method and apparatus for clearing hazards using jump instructions |
| US7653807B2 (en) * | 2005-09-19 | 2010-01-26 | Synopsys, Inc. | Removing a pipeline bubble by blocking clock signal to downstream stage when downstream stage contains invalid data |
| US8127113B1 (en) | 2006-12-01 | 2012-02-28 | Synopsys, Inc. | Generating hardware accelerators and processor offloads |
| JP2008198127A (ja) * | 2007-02-15 | 2008-08-28 | Toshiba Corp | プロセッサシステム |
| DE102008045767A1 (de) | 2008-09-04 | 2010-03-11 | Continental Teves Ag & Co. Ohg | Mikroprozessor mit Pipelineblasen-Erfassungseinrichtung |
| CN107038125B (zh) * | 2017-04-25 | 2020-11-24 | 上海兆芯集成电路有限公司 | 具有加速预取请求的独立流水线的处理器高速缓存 |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS61234436A (ja) * | 1985-04-10 | 1986-10-18 | Matsushita Electric Ind Co Ltd | マイクロプログラム制御装置 |
| JPS63141131A (ja) * | 1986-12-04 | 1988-06-13 | Toshiba Corp | パイプライン制御方式 |
Family Cites Families (20)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US3248707A (en) * | 1961-11-14 | 1966-04-26 | Ibm | Semi-asynchronous clock system |
| US4025771A (en) * | 1974-03-25 | 1977-05-24 | Hughes Aircraft Company | Pipe line high speed signal processor |
| US4090249A (en) * | 1976-11-26 | 1978-05-16 | International Business Machines Corporation | Apparatus for sorting records in overlap relation with record loading and extraction |
| JPS5466048A (en) * | 1977-11-07 | 1979-05-28 | Hitachi Ltd | Information processor |
| US4236206A (en) * | 1978-10-25 | 1980-11-25 | Digital Equipment Corporation | Central processor unit for executing instructions of variable length |
| JPS5621242A (en) * | 1979-07-28 | 1981-02-27 | Fujitsu Ltd | Pipeline control method for computer operation |
| US4438492A (en) * | 1980-08-01 | 1984-03-20 | Advanced Micro Devices, Inc. | Interruptable microprogram controller for microcomputer systems |
| JPS58189739A (ja) * | 1982-04-30 | 1983-11-05 | Hitachi Ltd | デ−タ処理システム |
| US4534009A (en) * | 1982-05-10 | 1985-08-06 | The United States Of America As Represented By The Secretary Of The Navy | Pipelined FFT processor |
| US4498136A (en) * | 1982-12-15 | 1985-02-05 | Ibm Corporation | Interrupt processor |
| US4594655A (en) * | 1983-03-14 | 1986-06-10 | International Business Machines Corporation | (k)-Instructions-at-a-time pipelined processor for parallel execution of inherently sequential instructions |
| JPS59231652A (ja) * | 1983-06-13 | 1984-12-26 | Hitachi Ltd | メモリアクセス・オ−バラツプ検出方式 |
| EP0150177A1 (en) * | 1983-07-11 | 1985-08-07 | Prime Computer, Inc. | Data processing system |
| US4571673A (en) * | 1983-09-29 | 1986-02-18 | Tandem Computers Incorporated | Enhanced CPU microbranching architecture |
| US4586130A (en) * | 1983-10-03 | 1986-04-29 | Digital Equipment Corporation | Central processing unit for a digital computer |
| BR8503913A (pt) * | 1984-08-18 | 1986-05-27 | Fujitsu Ltd | Sistema e processo de recuperacao de erros em um processador de dados do tipo de canalizacao tendo um dispositivo de memoria de controle e processo de recuperacao de erros em um processador de dados do tipo de canalizacao |
| US4794517A (en) * | 1985-04-15 | 1988-12-27 | International Business Machines Corporation | Three phased pipelined signal processor |
| US4701842A (en) * | 1985-10-04 | 1987-10-20 | International Business Machines Corporation | Method and apparatus for avoiding excessive delay in a pipelined processor during the execution of a microbranch instruction |
| US4709324A (en) * | 1985-11-27 | 1987-11-24 | Motorola, Inc. | Data processor control unit having an interrupt service using instruction prefetch redirection |
| US4794527A (en) * | 1986-01-29 | 1988-12-27 | Digital Equipment Corporation | Microprogrammed data processing system using latch circuits to access different control stores with the same instruction at different times |
-
1988
- 1988-07-20 US US07/221,988 patent/US5019967A/en not_active Expired - Lifetime
-
1989
- 1989-07-19 CA CA000606106A patent/CA1320275C/en not_active Expired - Fee Related
- 1989-07-20 AT AT89307344T patent/ATE128565T1/de not_active IP Right Cessation
- 1989-07-20 EP EP89307344A patent/EP0352103B1/en not_active Expired - Lifetime
- 1989-07-20 JP JP1188708A patent/JPH0774991B2/ja not_active Expired - Fee Related
- 1989-07-20 DE DE68924380T patent/DE68924380T2/de not_active Expired - Fee Related
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS61234436A (ja) * | 1985-04-10 | 1986-10-18 | Matsushita Electric Ind Co Ltd | マイクロプログラム制御装置 |
| JPS63141131A (ja) * | 1986-12-04 | 1988-06-13 | Toshiba Corp | パイプライン制御方式 |
Also Published As
| Publication number | Publication date |
|---|---|
| ATE128565T1 (de) | 1995-10-15 |
| DE68924380D1 (de) | 1995-11-02 |
| CA1320275C (en) | 1993-07-13 |
| JPH0774991B2 (ja) | 1995-08-09 |
| EP0352103B1 (en) | 1995-09-27 |
| US5019967A (en) | 1991-05-28 |
| EP0352103A3 (en) | 1992-08-12 |
| DE68924380T2 (de) | 1996-06-13 |
| EP0352103A2 (en) | 1990-01-24 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPH02155037A (ja) | デジタルコンピュータに於けるパイプライン化された処理ユニットの動作方法 | |
| US4875160A (en) | Method for implementing synchronous pipeline exception recovery | |
| US5006980A (en) | Pipelined digital CPU with deadlock resolution | |
| US5321823A (en) | Digital processor with bit mask for counting registers for fast register saves | |
| JP2701179B2 (ja) | データ処理システム | |
| CA1325285C (en) | Method and apparatus for ordering and queueing multiple memory requests | |
| US6003129A (en) | System and method for handling interrupt and exception events in an asymmetric multiprocessor architecture | |
| EP0464494B1 (en) | A high performance pipelined emulator | |
| US4415969A (en) | Macroinstruction translator unit for use in a microprocessor | |
| US4760519A (en) | Data processing apparatus and method employing collision detection and prediction | |
| US5023828A (en) | Microinstruction addressing in high-speed CPU | |
| US5717946A (en) | Data processor | |
| US5218711A (en) | Microprocessor having program counter registers for its coprocessors | |
| US5559977A (en) | Method and apparatus for executing floating point (FP) instruction pairs in a pipelined processor by stalling the following FP instructions in an execution stage | |
| JPH04260950A (ja) | キャッシュメモリ装置 | |
| JP2507638B2 (ja) | デ―タ処理装置 | |
| US6058471A (en) | Data processing system capable of executing groups of instructions in parallel | |
| US5062041A (en) | Processor/coprocessor interface apparatus including microinstruction clock synchronization | |
| JPH02173823A (ja) | データ処理装置 | |
| AU644065B2 (en) | Arithmetic unit | |
| JPH07120284B2 (ja) | データ処理装置 | |
| US5034880A (en) | Apparatus and method for executing a conditional branch instruction | |
| US5590293A (en) | Dynamic microbranching with programmable hold on condition, to programmable dynamic microbranching delay minimization | |
| US5737562A (en) | CPU pipeline having queuing stage to facilitate branch instructions | |
| JP2522048B2 (ja) | マイクロプロセッサ及びそれを使用したデ―タ処理装置 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| LAPS | Cancellation because of no payment of annual fees |