JPS63193246A - 集積キャッシュ・メモリと外部メモリの間の一貫性を保つ方法と装置 - Google Patents
集積キャッシュ・メモリと外部メモリの間の一貫性を保つ方法と装置Info
- Publication number
- JPS63193246A JPS63193246A JP63011832A JP1183288A JPS63193246A JP S63193246 A JPS63193246 A JP S63193246A JP 63011832 A JP63011832 A JP 63011832A JP 1183288 A JP1183288 A JP 1183288A JP S63193246 A JPS63193246 A JP S63193246A
- Authority
- JP
- Japan
- Prior art keywords
- cache
- memory
- instruction
- external
- address
- 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
- 230000015654 memory Effects 0.000 title claims description 102
- 238000000034 method Methods 0.000 title claims description 25
- 238000012544 monitoring process Methods 0.000 claims description 13
- 238000012546 transfer Methods 0.000 description 23
- 238000010586 diagram Methods 0.000 description 21
- 239000000872 buffer Substances 0.000 description 17
- 238000013519 translation Methods 0.000 description 16
- 238000012545 processing Methods 0.000 description 12
- 230000000694 effects Effects 0.000 description 9
- GVBNSPFBYXGREE-UHFFFAOYSA-N Visnadine Natural products C1=CC(=O)OC2=C1C=CC1=C2C(OC(C)=O)C(OC(=O)C(C)CC)C(C)(C)O1 GVBNSPFBYXGREE-UHFFFAOYSA-N 0.000 description 8
- 230000006870 function Effects 0.000 description 8
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 230000002093 peripheral effect Effects 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 101150073133 Cpt1a gene Proteins 0.000 description 3
- 239000013256 coordination polymer Substances 0.000 description 3
- 238000006073 displacement reaction Methods 0.000 description 3
- 230000002452 interceptive effect Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000002411 adverse Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000012790 confirmation Methods 0.000 description 2
- 230000001934 delay Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 101710155073 2-amino-3,7-dideoxy-D-threo-hept-6-ulosonate synthase Proteins 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 235000009508 confectionery Nutrition 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 239000006187 pill Substances 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000012536 storage buffer Substances 0.000 description 1
- 210000004243 sweat Anatomy 0.000 description 1
- 238000013518 transcription Methods 0.000 description 1
- 230000035897 transcription Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0831—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0893—Caches characterised by their organisation or structure
- G06F12/0897—Caches characterised by their organisation or structure with two or more cache hierarchy levels
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
産業上の利用分野
この発明はデータ処理装置、特にマイクロプロセッサの
性能に悪影響を与えずに、マイクロプロセッサの集積キ
ャッシュ・メモリと外部メモリの間の一貫性を保つ方法
に関する。 従来技術及び発明の解決しようとする問題点普通のデー
タ処理装置のアーキテクチュアでは、中央処理装置が、
外部インターフェース・バスを介してメモリから検索し
た命令およびオペランドを処理する。中央処理装置は、
命令およびオペランドを外部メモリから検索し得る速度
より、ずっと甲い速度で実行することができるから、命
令およびデータを持つために中央処理装置が費やす時間
を最小限にするために、中央処理装置と外部メモリの間
に小形の高速バッファまたはキ11ツシュ・メモリを設
ける場合が多い。 使われる可能性が最も大きい情報を中央処理装置がすぐ
利用することができるように保証するため、キャッシュ
・メモリはその内容を動的に取替える。中央処理装置が
情報を必要とするとき、キtνツシュをアクセスし、所
要の情報がキャッシュ内にみつかれば、外部インターフ
1−ス・バスを介して外部メモリをアクセスする必要が
ない。 キャッシュ・メモリは高性能のマイクロプロセッサにご
く最近になって導入された特徴である。 しかし、こういうマイクロプロセッサのアーキテクチュ
アでは、t: 1pツシユは、マイクロプロセッサの計
算クラスタの中にあるが、マイクロプロセッサと同じ半
導体「マイクロチップ」上に集積されていない。キャッ
シュ・メモリを「チップ上」に集積すれば、情報を求め
て「チップ外」へ行くのに伴なう遅延時間を更に短縮す
るという利点がある。マイクロプロセッサの最高性能を
達成するためには、集積キャッシュが不可欠である。 最高の性能および正しい動作を達成するためには、キャ
ッシュ・メモリは、中央処理装置が必要とするかもしれ
ない最も最新の情報を反映しなければならない。この条
件は普通「キャッシュの一貫性を保つこと」と呼ばれる
。、1tlツシユの一貫性を保つことは、次に述べる一
連の事象によって要約することができる。最初に、キi
)ツシュが外部メモリ内の成るアドレスから情報記号の
コピーを受取る。外部メモリのそのアドレスにある情報
記号をこの後外部装置からの書込みによって修正1゛る
。その結果、キャッシュには「古くむプた」記号が存在
する。外部メモリとキャッシュの間の−L’l性を保つ
ためには、中央処理装置が対応するアドレスからの情報
を要請する前に、キャッシュの古くなった記号を更新す
るかまたは無効にしなければならない。 チップ外のキャッシュを用いる従来のマイクロプロセッ
サの設計では、キャッシュ・エントリーの無効化は、比
較のために、外部メモリの修正された位置のアドレスを
1組のキャッシュ・アドレス・タグに送る。成る場合に
は、余分の1組のキ1νツシュ・タグを使って、マイク
ロプロセッサのキャッシュ参照の妨害を避ける。この比
較と、その結果−t: pツシュを無効にするとすれば
、この無効化が、システム・インターフェース・バスを
介して行なわれる。 しかし、従来のキャッシュ・エントリー無効方式を集積
キャッシュに適用すると、多数の問題が起こる。第1に
、無効アドレスを入力するために、マイクロプロセッサ
に付加的なビンが必要になることがある。付加的なビン
を追加せず、その代りに、キャッシュ無効アドレスを入
ノjするために、マイクロプロセッサ゛の外部参照用の
ビンを使うと、インターフェース・バスのコンテンショ
ンが生じ、マイクロプロセッサの性能が低下する。第2
に、無効アドレスと比較するためにチップ上のキャッシ
ュに対するアドレス・タグの別のコピーが必要になるこ
とがある。そうでないと、1組のタグしか使わないと、
タグのコンテンションが起こり、やはり性能が悲くなる
。 問題点を解決する為の手段 従って、この発明の目的は、関連する中央処理装置の性
能に悪影響を与えずに、集積キャッシュ・メモリの一貫
性を保つ方法を提供することである。 この発明の別の目的は、チップ上のキャッシュの内容を
外部から監視する方法を提供Jることである。 この発明の別の目的は、チップ上のキャッシュ位置を選
択的に無効にすることである。 上に述べた問題に対するこの発明の解決策は、キャッシ
ュ内の無効にする位置を特定することにより、マイクロ
ブ[]セセラのインターフェース上のビンの数を制限す
ることである。即ち、主メモリのアドレスではなく、無
効にすべき
性能に悪影響を与えずに、マイクロプロセッサの集積キ
ャッシュ・メモリと外部メモリの間の一貫性を保つ方法
に関する。 従来技術及び発明の解決しようとする問題点普通のデー
タ処理装置のアーキテクチュアでは、中央処理装置が、
外部インターフェース・バスを介してメモリから検索し
た命令およびオペランドを処理する。中央処理装置は、
命令およびオペランドを外部メモリから検索し得る速度
より、ずっと甲い速度で実行することができるから、命
令およびデータを持つために中央処理装置が費やす時間
を最小限にするために、中央処理装置と外部メモリの間
に小形の高速バッファまたはキ11ツシュ・メモリを設
ける場合が多い。 使われる可能性が最も大きい情報を中央処理装置がすぐ
利用することができるように保証するため、キャッシュ
・メモリはその内容を動的に取替える。中央処理装置が
情報を必要とするとき、キtνツシュをアクセスし、所
要の情報がキャッシュ内にみつかれば、外部インターフ
1−ス・バスを介して外部メモリをアクセスする必要が
ない。 キャッシュ・メモリは高性能のマイクロプロセッサにご
く最近になって導入された特徴である。 しかし、こういうマイクロプロセッサのアーキテクチュ
アでは、t: 1pツシユは、マイクロプロセッサの計
算クラスタの中にあるが、マイクロプロセッサと同じ半
導体「マイクロチップ」上に集積されていない。キャッ
シュ・メモリを「チップ上」に集積すれば、情報を求め
て「チップ外」へ行くのに伴なう遅延時間を更に短縮す
るという利点がある。マイクロプロセッサの最高性能を
達成するためには、集積キャッシュが不可欠である。 最高の性能および正しい動作を達成するためには、キャ
ッシュ・メモリは、中央処理装置が必要とするかもしれ
ない最も最新の情報を反映しなければならない。この条
件は普通「キャッシュの一貫性を保つこと」と呼ばれる
。、1tlツシユの一貫性を保つことは、次に述べる一
連の事象によって要約することができる。最初に、キi
)ツシュが外部メモリ内の成るアドレスから情報記号の
コピーを受取る。外部メモリのそのアドレスにある情報
記号をこの後外部装置からの書込みによって修正1゛る
。その結果、キャッシュには「古くむプた」記号が存在
する。外部メモリとキャッシュの間の−L’l性を保つ
ためには、中央処理装置が対応するアドレスからの情報
を要請する前に、キャッシュの古くなった記号を更新す
るかまたは無効にしなければならない。 チップ外のキャッシュを用いる従来のマイクロプロセッ
サの設計では、キャッシュ・エントリーの無効化は、比
較のために、外部メモリの修正された位置のアドレスを
1組のキャッシュ・アドレス・タグに送る。成る場合に
は、余分の1組のキ1νツシュ・タグを使って、マイク
ロプロセッサのキャッシュ参照の妨害を避ける。この比
較と、その結果−t: pツシュを無効にするとすれば
、この無効化が、システム・インターフェース・バスを
介して行なわれる。 しかし、従来のキャッシュ・エントリー無効方式を集積
キャッシュに適用すると、多数の問題が起こる。第1に
、無効アドレスを入力するために、マイクロプロセッサ
に付加的なビンが必要になることがある。付加的なビン
を追加せず、その代りに、キャッシュ無効アドレスを入
ノjするために、マイクロプロセッサ゛の外部参照用の
ビンを使うと、インターフェース・バスのコンテンショ
ンが生じ、マイクロプロセッサの性能が低下する。第2
に、無効アドレスと比較するためにチップ上のキャッシ
ュに対するアドレス・タグの別のコピーが必要になるこ
とがある。そうでないと、1組のタグしか使わないと、
タグのコンテンションが起こり、やはり性能が悲くなる
。 問題点を解決する為の手段 従って、この発明の目的は、関連する中央処理装置の性
能に悪影響を与えずに、集積キャッシュ・メモリの一貫
性を保つ方法を提供することである。 この発明の別の目的は、チップ上のキャッシュの内容を
外部から監視する方法を提供Jることである。 この発明の別の目的は、チップ上のキャッシュ位置を選
択的に無効にすることである。 上に述べた問題に対するこの発明の解決策は、キャッシ
ュ内の無効にする位置を特定することにより、マイクロ
ブ[]セセラのインターフェース上のビンの数を制限す
ることである。即ち、主メモリのアドレスではなく、無
効にすべき
【゛17ツシjの組を特定する。別個の無効
バスを使うことにより、マイクロプロセッサの外部参照
を邪魔せずに、キャッシュの無効化を行なうことができ
る。 チップ上の主11ツシユに2重ボート形有効性ビットを
使うことにより、マイクロプロセッサのチップ上の参照
を妨げずに、無効化を行なうことができる。 タグをマイクロプロセッサにのせる代りに、キャッシュ
・タグの付加的なコピーを持つ「バス監視」回路を設け
る。これによってマイクロプロセッサノのコストを切下
げる。無効化の割合が低いとき、バス監視回路は必要で
はない。主メモリ内の位置を修正するときには、いつで
も、キt7ツシユに別のアドレスが記憶されていても、
その位置を含むキャッシュの組を無効にすることが可能
である。これによって、特別のバス監視回路のコストが
節約されるが、不必要な無効化が行なわれるため、性能
は低下する。バス監視回路を含めるかどうかに関するコ
スト/性能の兼合いは、システムの設お技術者にまかさ
れる。 ここで説明するマイクロプロセッサのチップ上キトツシ
ュは、512バイトの命令キャッシュと別個の1024
バイトのデータ・キャッシュを含む。命令キャッシュお
よびデータキャッシュは別々に何部することができる。 2つのキャッシュの内容は、随意選択により、一定のメ
[り位置に固定することができる。特定の位置をキャッ
シュに固定する選択を使うことにより、中央処J!!’
!装買は重要な命令およびデータに対するチップ上のア
クセスが非常に早くなり、これは実時間の用途では非常
に右利である。 キャッシュ無効命令を実行して、命令キャッシュおよび
/またはデータ・キャッシュを全体的に無効にするか、
または無効命令を実行して、何れか一方または両方のキ
ャッシュにある1個の16バイトのブロックだけを無効
にすることかできる。 現在のバス・サイクルのメモリ参照がキャッシュ不可能
であることを中央処理装置に知らせるキャッシュ禁止入
力信号を使うことにより、個別の位置に対してキャッシ
ュを使うことを禁止することができる。 実施例 第1図はこの発明に従って集積キャッシュ・メモリの一
貫性を保つ方法を実施するマイクロプロセッサ(CPU
)(10)の全体的なアーキテクチュアを示している。 CPU(10)が命令を取出し、データを読取り且つ書
込み、浮動小数点動作を行ない、例外の要語に応答する
ために、外部メモリおよびシステム内にあるその他の装
置と連絡するためのバス・サイクルを開始する。 CPII(10)が、20HH2t”、10HIPS
(1秒アタリ100万個の命令)まで実行し得る4段形
命令バイプライン(12)を含む。命令パイプライン(
12)と共に命令およびデータに対するバイブライン(
12)の強い需要を支援する3つの記憶バッファがチッ
プ上に集積されている。記憶バッファが512バイトの
命令キャッシュ(14)、1,024バイトのデータ・
キャッシュ(16)、および64エントリの変換バッフ
ァを含み、これが集積メモリ管理装置(880)(18
)の中に含まれている。MMO(18)の主な機能は、
メモリ参照の要請を調停し、仮想アドレスを実アドレス
にに!換することである。集積バス・インターフェース
装置(BID) (20)が外部参照のためのバス・サ
イクルを制御する。 キャッシュおよびメモリ管理1能を命令パイプライン(
12)と同じチップ上に配置することにより、あらゆる
用途に対し、メモリ・アクセス時間および帯域幅を改善
することにより、優゛れたコスト/性能が得られる。 命令キャッシュ(14)及びデータキャッシュ(16)
は、共に物理的である。このことは外部キャッシュやメ
モリとの一貫性をサポートする上で重要である。多重プ
ロセラナシステムの場合又は、全てのシステムで直接メ
モリアクセス(DMA) Aペレーションが行われる場
合、同じアドレスが内部4−ヤッシ(14,16)に存
在しながらデータが外部メモリに出き込まれ、従ってこ
のアドレスを無効としなくてはならなくなるときがある
。内部キVツシュ(14,16)が仮想である場合、外
部アドレスは実アドレスであるので、シングルキ1νツ
シュエントリを行って無効化することは、困難になる。 実キ11ツシュがシングルエントリの無効化を可能にす
る。 CPU(10) ハ、割込ミ制御装M (ICU)(2
4) (例えばN532202)のような利用し得る
周辺装置と6両立性がある。CPt1(10)に対】、
るICUインターフェースは完全に非同期であり、この
ため、ICU(24)をCPU(1G)よりも一層低い
周波数で動作させることができる。 CPU(10)がそれ自身のクロック発生器を持ってい
る。従って、タイミング制御装置を必要としない。 CPU(10)は、また外部キャッシュ・メモリ(25
)ならびに「バス監視」回路(26)の両方を支援する
、この回路は内部キャッシュの一貫性を保つのを助ける
。 第2図に示すように、cpu(io)は、バスのタイミ
ングおよび制御、キ1νツシュの制御、例外の要請およ
びその他の機能のために、114個のインターフェース
信号を持っている。F記のリストは、CPU(10)イ
ンターフェース信号の機能をまとめたものである。 入力信号 BACに バースト確認(アクティブロー、即ち、
低で作用)。バースト要請に応答して 作用する時、メモリがバースト・サイ クルを支援することを示づ。 B[Rバスの誤り(低で作用)。現在のバス・サイクル
の間、誤りが検出された ことをCPt1(10)に知らせる。 BRI バスの再試行(低で作用)。CPU(1
G)が現在のバス・サイクルをもう1回道 行しなければならないことを示す。 BWO−BWI バスの幅(2本の符号化された線)
。 これらの線が、下記の表1に示すよう に、各々のデータ転送に対するバスの 幅(8,16または32ビツト)を定める。 表 1 CI八へ−CIA6キヤツシユ無効アドレス(7木の符
号化された線)。キャッシュ無効アド レスがCIAバスに出る。表2が、CPII(10)の
各々の内部キャッシュに関連するCIA線を示す。 表 2 CIl 主1フッシュ入力禁止(アクティブハイ
、即ち、高で作用)。現在のバス・ サイクルのメモリ参照がキ17ツシユ 可能でないことをCPU(10)に知らせる。 CINV[キャッシュ無効付能。外部キャッシュ無効の
選択か或いは試験モード動作が 選択されたかを決定する入力。 01K クロック。CPU(10)に対する仝ての
タイミングを取出すのに使われる入カク 1コック。 DBG デバッグ・トラップ要語(立下りで作動
)。この信号の高から低への変化が トラップ(DBG)を生じる。 1101.0 保持要請(低で作用)。直接メモ
リ・アクセス装置(DHA)のためまたはマルヂブロU
ツ丈用にバスを解放υるよう にcpu(io)に要請する。 INT 割込み(低で作用)。マスク可能な割込
み要請。 INVsET 組無効(低で作用)。低である時、
チップ上のキjyツシュ内のある組だ けが無効にされる。高であるとき、 キャッシュ全体が無効にされる。 INVDc データ・キャッシュ無効(低で作用)
。 低である時、データ・主1フッシュ内で無効作用が行な
われる。 INVIC命令キャッシュ無効(低で作用)。低である
時、命令キ亀?ツシコ内で無効作用が行なわれる。 10DECIlo 復?3 (低1”作用)、fl装;
aが現在のバス・サイクルによってアド レスされたことをCPU(101に知らせる。 N旧 マスク出来ない割込み(立下りで作動)。こ
の信号の高から低への変化が、マスクできない割込みを
要請する。 IIDY 用意完了(i!′+iで作用)。この
信号が作動されていない間、cpu(io)は遅いメ[
りまたは周辺装置を支援するために、現在のバス・サイ
クルを延長する。 R8[リセット(低で作用)。CPII(10)を初期
設定するためのリセットの例外を発 生する。 5DONE スレーブ済み(低で作用)。スレード
ブ1.1 t=ツサが命令の実行を完了したことをCP
U(101に知らゼる。 S T R八P スレーブ・トラップ〈低で作用)
。スレーブ・ブ[1セツザが、命令を実行している間に
、トラップ状態を検出した ことをCPU(10)に知らゼる。 出力信号 八〇−A31 アドレス・バス(3状態、32木の
線)。 バス・サイクルの間、32ビツト・アドレスを転送する
。AOが最下位ビットを転送する。 ADS アドレス・ストローブ(低で作用、3状
態)。バス・サイクルが開始され、 有効アドレスがアドレス・バスにある ことを知らせる。 BEO−8[3バイト付能(低で作用、3状態、4本の
線)。表3に承りように、データ・ バスの各々のバイトの転送ができるよ うにする信号。 BHT メモリ・トランデクジョン開始(低で作
用、3状態)。現在のバス・サイク ルが有効であること、即ち、バス・サ イクルが取消されなかったことを示1゜バス・サイクル
中でC0NFにりも早く利用し1qる。 I ブレーク点(低で作用)。CPII(10)
がデバッグ状態を検出したことを知らせ る。 BItEQ バースト要請(低で作用、3状態)
。 cpu(to)がバースト・サイクルを遂行することを
要請していることを示ず。 BIISCIに バス・クロック。バスのタイミング
のための出力クロック。 CUSFCttシツシュ区間(3状態)。キ(Fツシュ
可能なデータ読取バス・サイクル に対し、チップトのデータ・キ17ツ シユ(18)のうら、データが入れられる区間を示す。 CIOキャッシュ禁止(^で作用ン。現在のバス・サイ
クルのメモリ参照がキャッ シュ可能でないというCPU(10)による表示。レベ
ル−2のページ・テーブ ル・エントリ中のCI−ビットによって制御される。 CON r バス・サイクル確認(低で作用、3
状態)。ADSで開始されたバス・サイクルが有効であ
ること、即ら、バス・サ イクルが取消されていないことを知ら せる。 DDIN データ入力方向く低で作用、3状態)
。 データ・バスにおける転送方向を示づ。 バス・サイクルの間に低である時、 CPU 10がデータを読取っていることを示す。バス
・サイクルの間高である時、CPU10がデータを書込
んでいることを示す。 +11DA 保持確認(低で作用)。1−801
D入力に応答して、cpuioによって作動され、c
pu ioがバスを解放したことを示す。 110 インターロック形バス・シイクル(低で
作用)。インターロック保護を伴う 一連のバス・サイクルが進行中である ことを示す。 101NII I10禁止(低で作用)。周辺VR
置がアドレスされた場合、現在のバス・サイ クルを無視すべきであることを示す。 ISF 内部逐次取出し。PFSと共に、実行を
開始する命令が逐次形(ISF=低)または非逐次形(
I S l−=高)であることを示PIS プロ
グラム・フロー状態(低で作用)。 この信号のパルスは、各々の命令に対 する実行の開始を示ず。 SPCスレーブ・プロセッリ制御I(低で作用)。スレ
ーブ・プロセッサのバス・ リーイクルに対するデータ・スト[1−ブ。 5TO−3T4 状態(5本の符号化された線)。バ
ス・サイクル状態コード。STOは最下位ビットである
。符号化が表4に示さ れている。 tl/S ユーザ/スーパバイザ(3状態)。 ユーザ・モード(U/S=高)またはスーパバイザ・−
[−ド(IJ/S−低)であることを示す。 両1i向信号 Do−031データ・バス(3状態、32木の線)。 バス・サイクルの間、8.16または32個のデータ・
ビットを転送する。、Doが最下位ビットを転送する。 第3図について説明すると、CPU(10)は内部では
8個の主要な傭能装置として構成されており、これらは
並列にV」作して、命令を実行するために次の動作を行
なう。予備取出し、復号、実効アドレスの計算、原始オ
ペランドの読取り、結果を読取ってレジスタに記憶、結
果をメモリに記憶。 ローダ(28)が命令の予備取出しを行ない、アドレス
装置(30)および実行装置(32)で使うためにそれ
らを復号する。ローダ(28)が命令キャッシュ(14
)からIBUSバスを介して受取った命令を8バイト命
令持ち行列に転送する。ローダ(28)は各々の1ノイ
クルで命令フィールドを取出Jことができる。「フィー
ルド」は動作コード(アドレス・モード指定子を含めて
1乃至3バイト)、変位値または即値のいずれかを意味
する。ローダ(28)が、動作コードを復号して初期マ
イクロコード・アドレスを発生し、それがLAORバス
を介して実行装置(32)に送られる。復13された一
般アドレス・モードがADHSバスを介してアドレス装
置(30)に送られる。変位値がDISPバスを介して
アドレス装置(30)に送られる。即値がGCBUSバ
スに利用できる。ローダ(28)が後で説明するブラン
チ予測門構をも含む。 アドレス装H(30)が、専用32ピツト加i3を用い
て実効アドレスを計算し、実行装置(32)に対して原
始オペランドを読取る。アドレス装置(30)が、レジ
スタ・ファイル(34)からGCBUSへのボートを制
御する。このボートを介して、基底値および指標飴をア
ドレス加算器に転送し、データ値を実(j装置(32)
に転送づ”る。オペランド参照用の実効アドレスが、仮
想アドレス・バスであるGVAバスを介してMHO(1
8)およびデータ・キt7ツシユ(16)に転送される
。 実行装置(32)がデータ通路と、命令を実行し且つ例
外を処理するためのマイクロコード形制御装置を含んで
いる。このデータ通路は32ビツト0術論理装置(AL
ll)、32ピツト・バレル・シフター、63ビット優
先順位符号器および多数のカウンタを含む。実行装置(
32)に設けられた特殊用ハードウェアが乗算を支援し
、絶対値の小さい乗数に対づ−る最適化を伴って1サイ
クル毎に1ビツトを引込める。 実行装置(32)が結果を記憶するGNNババスらレジ
スタ・ファイル(34)へのボートを制御!lIづ°る
。 GN^バスは、レジスタ・ファイル(34)に含まれて
いる構成レジスタ、及び割込み基底レジスタのような多
数の台用レジスタの値を読取るためにも、実行装置(3
2)によって使われる。2−エントリ・データ・バッフ
ァは、実行Vt1t! (32)が、1つの命令の実行
と、前の命令に対する結果をメモリに記rすることをオ
ーバラップすることができるようにJる。GV八ババス
、複雑な命令(PAえばストリング動作)に対するメモ
リ参照を実行するため並びに例外の処理のために、実行
装置(32)によって使われる。 レジスタ・ファイル(34)に含まれる構成レジスタは
、32ビツトで構成され、その内の9ビツトを用いる。 用いられるビットが、割込みのベクトル化、スレーブ命
令の実行、チップ上の命令キ1rッシュ(14)および
データ・キPツシュ(16)の制御を含めて、CPU(
10)の種々の動作モードを何面する。形式レジスタの
内容がロードされたとき、ビット4乃至7にロードされ
る値は無視する。形式レジスタの内容が記憶されるとき
、これらのビットは1である。 形式レジスタの形式が表5に示されている。次に種々の
制御ビットを説明する。 表 5 I υ書込みのベクトル化。 このビットはマスク可能な割込みが非ベクトル(VI=
O)モードまたはベクトル(VI=1)モードのど15
らかで処理されるかを制御する。 F 浮動小数点命令の組。 このビットは浮動小数点命令を実行する浮動小数点装置
が存在するかどうかを示す。 M メモリ管理命令の組。 このビットはメモリ管理命令の実行を何面する。 Cカスタム命令の組。 このビットはカスタム命令を実行するためのカスタムス
レーブ・ブロセツナが存在するかどうかを示す。 D[直接−例外付能。 このビットは、割込みおよびその他の例外に対するCP
U(10)の応答時間を改善する例外を処理するモード
である直接−例外モードを何面Jる。 DCデータ・キャッシュ付能。 このビットはデータの読取および書込みのために、デー
タ・キャッシュ(16)をアクセスすることを何面する
。 LDCデータ・キャッシュ固定。 このビットは、データ・キャッシュ(16)の内容が固
定メモリ位lに配置される (LDC=1)かまたはキVツシュからデータの読取が
抜けているときに更新されるか(trc=o)を制御す
る。 IC命令キャッシュ付能。 このビットは命令の取出しのために、命令キャッシュ(
14)のアクセスを何面する。 LIC命令キャッシュ固定。 このビットは命令キャッシュ(14)の内容が固定メモ
リ位置に配置されるか(LIC=1 )またはキャッシ
ュからの命令の取出しが抜けているとぎに更新されるか
(IIC=O)を制御する。 前に述べたように、CPU(10)が、4段のパイプラ
イン(12)で、いくつかの命令を同時に□実行するす
」作をオーバラップする。バイブライン(12)の全体
的な構成ならびに命令およびデータに対する種々のバッ
ファが第7図に示されている。実行装置(32)が1つ
の命令に対する結果を計算している間、アドレス装置(
30)が実効アドレスを計算し、続く命令に対する原始
オペランドを読取ることができ、ローダ(28)が3番
目の命令を復号し、4番目の命令を8バイト待ち行列に
予備取出しすることができる。 アドレス装置(30)および実行装置(32)は命令1
個当り2サイクルのピーク速度で命令を処理り°ること
ができる。ローダ(28)は命令1個当り1サイクルの
ピーク速度で命令を処理り゛ることができ、そのため、
典型的にはアドレス装置(30)および実行装置(32
)に対して着実に命令を供給Jることができる。ブラン
チ命令または命令キャッシュ(14)のミスにより、命
令ストリームにlj pツブが生じたときだけ、ローダ
(28)がバイブライン(12)のスルーブツトを壊す
。 第8図はアドレス装置(30)f′3よび実行装置(3
2)によってメモリからレジスタへの2つの命令を実行
する様子を示す。CPII(10)は大抵の酋通の命令
に対して【、裏、2サイクルの実行速度を保つことがで
き、典型的には次の場合にだけ遅延を持つ。 1、変換バッファのミスおよび調整されていない参照に
よる記憶遅延。 2)バイブライン(12)の段の間のリソースのコンテ
ンション。 3 ブランチ命令およびその他の非逐次形命令の取出し
。 4、位取りした指標のような複雑なアドレス・モードお
よび除算のような複雑な動作。 第9図はバイブライン(12)のタイミングに対するデ
ータ・キャッシュ(16)のミスの影テでを示す。 BIU(20)がデータを読取るバス・サイクルを完了
するまで、実行装置(32)は2サイクル′!l延する
。 cpu(io)が行なう基本バス・す“イクルは後で訂
しく説明する。 第10図はバイブライン(12)のタイミングに対する
アドレス・レジスタのインク−ロックの影ν号を示ず。 1つの命令がレジスタを修正しており、その開法の命令
がアドレス計節のためにそのレジスタを使う。実行装置
(32)がレジスタの更新を完了するまで、アドレス装
置(30)は3サイクルd延する。2番目の命令がアド
レス計算ではなく、データの値のためにレジスタを使う
場合(例えば、八〇〇〇 RO,旧)、実行装置(32
)にある側路回路を使って、バイブライン(12)のd
Y延を避ける。 萌に述べたように、ローダ(28)はブランチ命令を処
理する回路を含んでいる。 「ブランチ」命令は、現在実行中の命令のアドレスに対
し、現在実行中の命令に符号化された変位値を加葬する
ことによって計算された宛先アドレスにある命令に、制
御作用を切替える可能性のある命令である。ブランチ命
令は「無条件」また(411条件つき」になることがあ
る。(!2にの場合、CPII(10)の状態に関する
特定された条件が真であるかどうかを判定するための試
験を行なう。ブランチ命令は、それが無条件であるか、
或いは条件例きであって特定された条件が真である場合
に、「採用コされるという。 ブランチ命令が復号された時、ローダ(28)が宛先ア
ドレスを計口し、逐次形および非逐次形命令スi・リー
ムのどちらかを選択する。この選択は、ブランチ命令の
条件および方向に基づく。ブランチ命令が採用されると
ローダ(28)が予測する場合、宛先アドレスがJBI
JSを介して命令キャッシュ(141に転送される。ブ
ランチ命令が採用されると予測されてもされなくても、
n−ダ(28)は交代的な命令ストリームのアドレスを
保管する。後でブランチ命令が実行装置(32)に達し
、そこで条件を解く。 実行装置(32)は、ブランチ命令が採用されたかどう
かをCI−グ(28)に知らせる。ブランチ命令の予測
が正しくイ1い場合、バイブラインがフラッシコーし、
命令キャッシュ(14)は正しいストリームからの命令
の予備取出しを開始Jる。 第11図はブランチ命令が採用されると正しく予測した
効果を示している。ローダ(28)による命令の復号に
2サイクルのギャップが起こる。バイブラインの先頭に
あるこのギ(!ツブは、完全に復号された1つの命令が
ローダ(28)とアドレス装置(30)の間でバッフ7
作用を受けているため、ならびにバイブライン(12)
内の後の段で同時にこの他の斤延が起こりうるため、詰
っている場合が多い。 第12図はブランチ命令の解の予測が正しく %い影響
を示す。実行装E (32)に4サイクルの1′、セツ
ブが起こる。 CPII(10)が単相入力クロックC[にを受取る。 これはCPt1(40)のりj作速度の2倍の周波数を
)Jjつてイル。例えば、CPU(10)が20H1l
z テアル場合、入カフロックの周波数は40Hllz
である。CPU(10)がC[に入力を2で除して内部
クロックを求める。この内部クロックは、重ならない2
相PIII 1およびPill 2 r構成される。C
PU(10) カBUSCLK出力信号のPill4を
駆動する。 第13図はCLK入力信号と8 +1 S CLに出力
信号の間の関係を示す。 第14図に示寸ように、BIISCLに出力のことごと
くの立上りが、cpu(io)のタイミング状態(IT
状態」)の変化を定める。バス・サイクルは、関連する
時間線図で11. I2;I3よσr2Bと記した一連
の王状態の間に行なわれる。バス・サイクルの間にアイ
ドルT状態(Ti)があることがある。C1,に入力に
対するBUSCLK出力の位相関係はリセットの時に設
定することができる。 主メしりおよび周辺装置の読取および書込みのために、
CPU(10)が行なう基本バス・サイクルは、I1お
よびI2と呼ぶバス・クロックの2サイクルの間に行な
われる。2つの理由で、基本バス・サイクルは2クロツ
ク・サイクルを超えて延長することができる。第1に、
近いメモリおよび周辺装置を待つために、付加的なI2
サイクルを追加することができる。第2に、外部メモリ
から読取る時、バースト・サイクル(FT2B Jと呼
ぶ)を使って、相次ぐ位置からの多数の2重ワードを転
送することができる。 持ち状態のない基本読取および書込みバス・曇ナイクル
のタイミングが、夫々第14図および第15図に示され
ている。読取および書込みのどちらのバス・サイクルで
も、I1の前半の間、バス・サイクルの開始を示すアド
レス・ストローブADSをCPu(10)が出す。I1
の開始からバス・サイクルの完了マチ、CPU(10)
が、状態(STO−3T4) 、ハイド付能(B[0−
BF2)、データ入力方向(DDIN) 、キャッシュ
禁止(CIOI 、I10禁止(IOINll )およ
びバス・サイクルWf H(C0NF ) (fi 号
に対し、アドレス・バスおよび制御信号を駆動する。 バス・サイクルが取消されない場合(即ち、I2が次の
クロックで続く場合) 、CPU(10)が11の間、
メモリ・トランザクション開始BHTを出し、I1の中
央から、バス・サイクルが完了するまで、バス・サイク
ル確認C0NFを出し、完了した時、C0NFを否定す
る。 I2(1)終りに、CPU(10) ハ、RDYが作動
状態ニアって、バス・サイクルが完了したことを示して
いるかどうかを標本化する。即ち、追加の12状態を追
加すべきではない。I2の後、次のバス・サイクルに対
するI1か、またはCPU(10)が遂行すべきバス・
サイクルを持たない場合は、Tiが続く。 第16図に示すように、全説明した基本読取および書込
みバス・リーイクルが、一層良いアクセス時間を支援す
るように延長することができる。前に)小べたように、
CPII(10)が各々のI2状態の終りにRDYを標
本化する。ItllYが不作動であれば、I2をもう1
つのクロックだけ繰返すことにより、バス・サイクルを
延長する。最初より後の追加の12状態は、「持ち」状
態とpf′ばれる。第16図は2つの待ち状態を追加し
て、読取バス・サイクルを延長することを示す。 第17図に示すように、相次ぐメモリ位置から4つまで
の2重ワードのバースト転送を支援するために、J、4
本読取サイクルを延長することもできる。 バースト読取サイクルの間、最初の2重ワードが、基本
読取サイクルと同じく、I1およびI2状態の順序の間
に転送される。後続の2重ワードは、“[2B′ と叶
ばれる状態の間に転送される。バースト・サイクルは、
32ビット幅のメモリから読取る為にだけ使われる。 バースト読取サイクルにおける転送の数が、I2または
72B状態の間の出力信号BR[Qおよび入力信号■n
の間のハンドシェイクによって制御され、現在の転送に
続いてもう1回の転送を要語していることを示す。メモ
リは、もう1回の転送を支援ツることができることを示
すために、BACにを出す。第17図は3つの転送のバ
ースト読取サイクルを示しており、CPU(10)は、
2番目の転送の後、■nを、否定にすることにより、こ
の順序を終了する。第18図は2つの転送のバースト・
サイクルを示しており、これは2番目の転送の間、BA
Cにが不作動である時に、システムによって終了させら
れる。 バースト順序中の1番目よりの後の各々の転送に対し、
CPU(10)がアドレス・ビット2および3をインク
レメントし、次の2小ワードを選択する。 第18図に2番目の転送について示づように、CPU(
10)が各々の状態T2Bの終りにRDYを標本化し、
1?DYが不作動であれば、バースト転送に対するアク
セス時間を延長する。 64ページに対するアドレス・マツピングを保持する前
に述べた変換バッファにより、チップ上で高速アドレス
変換が行なわれる。ページの規模は4にバイトである。 変換バッファが、最近に使われたメLす・ページに対し
、仮想アドレスから実アドレスへの直接的なマツピング
を11なう。変換バッフ?にあるエントリーがHHU(
1g)によって割当てられ、自動的に取替えられる。仮
想アドレスを実アドレスに変換するのに必要な情報が、
変換バッファで脱落していれば、CPU(10)が外部
メモリにある2つのレベルのページ・テーブルエントリ
ーから情報を自動的に突止め、変換バッファを更新する
。880(18)が、命令を実行するために必要となる
参照のためのアドレスを変換している間に、保a!違反
またはページの不在を検出すると、アボート・トラップ
が起こり、実行中の命令は中断する。 変換バッファにある64個のエントリーの各々が、仮想
および物理ページ・フレーム番号、即もアドレスのうち
の最上位の20ビツトを、仮想ページに対するアドレス
空間、ページに対する保護レベル、およびレベル−2ペ
ージ・テーブルエントリーからの修iTE a3よびキ
ャッシュ禁止ビットと共に記憶する。 保護レベル・フィールドが、成るページまたは1群のペ
ージに対して割当てられる保護レベルを設定する。表6
は保護レベル・フィールドの符号を示す。 前に述べたように、キャッシュ禁止ビットCIが第2レ
ベルのページ・テーブルエントリーに現われる。キャッ
シュ禁止ビットが1であれば、ページ上の位置に対する
命令取出しおよびデータ読取の参照は、チップ上のキャ
ッシュを側路する。 外部メモリに対する参照の間、キIIツシュ楚止ビット
がシステム・インターフェースに表示される。 修正ビットも第2レベル・ページ・テーブルエントリー
に現われる。HHU(18)が、ページに対する書込み
を行ない、ページ・テーブルエントリーの修正ビットが
Oであるとぎには、いつでもページ・テーブルエントリ
ーの修正ビットを1にセットする。 仮想アドレスを対応する実アドレスに変換するため、仮
想ページ・フレーム番号およびアドレス空間を変換バッ
ファにあるエントリーと比較する。 符合するページ・フレーム番号およびアドレス空間を持
つ有効な空間がすでに変換バッファに存在していれば、
実アドレスは即座に利用しうる。そうでなければ、変換
バッファにある有効なエントリーが、符合するページ・
フレーム番号およびアドレス空間を持っていなければ、
MHO(18)が仮想アドレスを変換し、脱落している
情報を変換バッファに入れる。HHU(18)は、それ
までに修正されていないページに対する書込みのときも
、変換を行なう。 メモリ参照に対する変換が何面されたとき、8M11(
18)が32ビツートの仮想アドレスを32ビツトの゛
実アドレスに変換し、各々の参照にお【ノる保護違反を
検査し、前に述べたように、参照のためにチップ上のキ
ャッシュを使うことを禁止することがありうる。参照に
対する変換が不作動にされたとき、実アドレスは仮想ア
ドレスと同じであり、保護検査は行なわれず、参照に対
してチップ上のキ1νツシュは禁止しない。 前に述べたように、8811(18)が、4にBのペー
ジおよび変換テーブルの2レベルを用いて、アドレスを
変換する。仮想アドレスは3つの構成部分INDEX
1 、INDEX 2 オヨヒ0FrSFTニ分ケラレ
テイる。 INDEX 1及ヒINDrX 2 ハ共ニ10ビット
のフィールドで、夫々第ルベルおよび第2レベルのべ一
、ジのテーブルを指すために使われる。0FFSETは
、仮想アドレスのそれより低い12ビットである。これ
は選ばれたページ内のバイトを指す。 アドレス変換の間にページ・テーブルのエントリーを読
取るとき、880(18)はデータ・キャッシュ(16
)を側路し、常に外部メモリを参照する。 データ・キャッシュ(16)にあるページ・テーブルの
エントリーを更新するとき、MMO(18)が、データ
・キャッシュ(16)および外部メモリの両方にあるペ
ージ・テーブルのエントリーの内容を更新する。 CPU(10)のシステム・インターフェースは、第1
図に示づように、外部キャッシュ・メモリ(25)を使
うことができるようにする。レベル−2ページ・テーブ
ルのエントリーからのCIビットが、バス・サイクルの
問、アドレスと共にCIO出力信号に出され、個々のペ
ージを選択的にキt!ツシュすることができるようにす
る。CPU(10)は、バス・すイクルの間、BRT入
力信号を出すことにより、バス・サイクルの再試行をす
ることかぐきるようになっている。バス・サイクルを再
び試行する前に、cpu(io)がバスを解放し、こう
して外部キャッシュ(25)が、外部主メモリに対する
アクセスを行なうことによって、ミスを処理することが
できるようにする。 この発明では、CPU(10)はチップ上のキャッシュ
と外部メモリの間で一貫性を保つようにする。 この目的のためにcpu(io)が利用Jる方式が表7
に示されている。 前に述べたように、レベル−2ページ・テーブルのエン
トリーにあるCIビットを使って、個々のページに対し
てキャッシュを使うことを禁止することができる。 命令キャッシュ(14)およびデータ・キャッシュ(1
6)にあるエントリーは、ヤヤツンユ無効C[NV命令
を使って無効にすることができる。CINV命令を実(
1する間、CPU(10)が、命令の最初の3バイトお
よび原始オペランドを表承するために、システム・イン
ターフェースに2つのスレーブ・パスリーイクルを発生
する。これによって外部回路は、チップ上のキャッシュ
の内容を監視するのに使うため、CINV命令の実行を
検出することができる。 CINV命令を使って、いずれか一方または両方の内部
キャッシュの内容全体、または選ばれたキXlツシュに
ある16バイトのブロックだけを無効にすることにでき
る。俊者の場合、原始オペランドの最上位の28ビツト
が、調整された16バイト・ブロックの実アドレスを特
定する。原始オペランドの最下位の4ビツトは無視する
。特定されたブロックがチップ上のキャッジ1内にない
場合、命令は何の影響もない。CINν命令が、Iオプ
ションに従って命令キャッシュ(14)を参照し、Dオ
−プションに従ってデータ・キャッシュ(1G)を参照
する。 CINV命令の形式が表8に示されている。 表 8 オプションが文字A(全部を無効にする)、I〈命令キ
ャッシュ)およびD(データ・キャッシュ)を列記する
ことによって特定される。IオプションもDオプション
も特定されていなければ、何も無効にしない。 機械命令では、オプションは次のように△、IJ3よび
Dフィールドに符号化される。 A: 0=16バイト・ブロックだけを無効にする。 1−キャッシュ仝体を無効にする。 1: 〇−命令キャッシュに影響しない。 1・−命令キャッシュを無効にする。 D二 〇−データ・キャッシュに影響しない。 1−データ・キャッシュを無効にする。 CPU(10)は、第1図に示す外部[バス監視」回路
(26)をも支援する。バス監視回路(26)の主な作
用は、メモリ共有マルチブロヒッザ・システムで5、ま
たLL高帯域幅直接メモリアクセスDMA装置を持つ単
一プロセッサ・システムの何れにおいても、一方は命令
・キャッシュ(14)およびデータ・キャッシュ(16
)、そして使方は外部メモリの間の一貫性を保つことで
ある。バス監視回路(26)は、CP 11 (10)
のバス・サイクルを観測して、命令キャッシュ(14)
およびデータ・主1フッシュ(16)に対するキャッシ
ュ・アドレス・タグのコピーを保持するとともに、外部
メモリ、例えばシステム内のDMA制御装置およびその
他のマイクロプロセッサに対する古込みを監視する。バ
ス監視回路(26)が、キャッシュ・アドレス・タグと
書込み参照アドレスとの比較によって、外部メモリでチ
ップ上のキャッシュ内のある位置が修正されたことを検
出すると、CPU(10)に対してキャッシュ無効要請
を出す。 第19図に示すように、バス監視回路(26)は下記の
バスとインターフェース接続される。 1 内部キャッシュのエントリー(タグ)を変更するた
めの情報をつるため、ならびにCPU (10)の内部
キャッシュ・タグの更新されたコピーを保つために、C
PU(10)のアドレス・バスJ5よびCAS[C出力
。 2)どの外部メモリのアドレスが変更されるかを検出す
るため、システム・バス。 3.1NVSET 、 INVDc 、 INVIC’
13よヒCIAO−CIA6人力信号で構成されるCP
II(10)のキ↑・ツシュ無効バス。 第19図について説明すると、前に説明したように、バ
ス監視回路(26)がCPII(10)の2つの内部キ
ャッシュ、即ら、命令キャッシュ(14)およびデータ
・キャッシュ(18)のタグ・コピーを管理り−る。 システム・バスのメモリ訳述みサイクルのアドレスがバ
ス監視回路(26)内にある1つのタグと符合すると、
バス監視回路(26)からcpu(io)に対しキャッ
シュ無効バスを介して指令が出され、内部キャッシュの
対応するエントリーを無効にする。 無効信号が別個のキャッシュ無効バスを介して供給され
るから、cpu(io)による内部キャッシュのエント
リーの無効化は1クロツク・サイクルしかかからず、C
PU(10)の進行中の外部バス・サイクルに干渉しな
い。命令キャッシュ(14)およびデータ・キャッシュ
(16)は1度に1組づつ無効にされる。即ち、命令キ
ャッシュ(14)の16バイト、およびデータ・キャッ
シュ(16)の32バイトである。 入力信号INVSETは、無効化が1つの組(低)に適
用されるか或いはキIIツシュ全体(高)に適用される
かを示す。 無効要請が、CPU(10)が無効化の影響を受ける位
置に対する読取サイクル中の■2またはT2B状態を完
了するまり前またはそれと同時に発生した場合、バスに
読取られたデータはキせツシュ内で有効である。無効要
請が読取サイクル中の丁2またはT2Bv、fllの後
に発生すれば、キャッシュ内でデータは無効である。 命令キャッシュ無効INVAC入力が低であれば、無効
化は命令キャッシュ(14)内で行なわれる。 データ・キャッシュ無効INVDC入力が低であれば、
無効化はデータ・キャッシュ(16)で行なわれる。 キャッシュ無効アドレスCIAO−CIA6が、CIA
バスを介してCPU(10)に送られる。これらのビッ
トは、データ・キャッシュ(16)および命令キャッシ
ュ(14)内で無効にすべき組のアドレスを定める。 バス監視回路は主に、キャッシュ・アドレス・タグのコ
ピーを記憶する3つのIIAHアレーで構成される。第
19図に示すように、RAMビットは2重ボートになっ
ている。1つのボートは、CPU(10)によるバス読
取サイクルの間にタグを書込むために使われる。2番目
のボートは、システム・バスからの無効要請の間、タグ
を読取るために使われる。2重ボート形メモリ・セルを
使うことにより、システム・バスの無効要請をCPU(
10)のバス・tナイクルと同期させることに伴なう問
題が簡単になる。 CPIJ(10)の外部参照との干渉をさけるほかに、
バス監視回路(26)を使うと、CPU(10)の内部
活動の干渉も避けられる。これは、第4図および第5図
について述べたように、命令キャッシュ(14)おにび
データ・キャッシュ(16)の両方に2重ボート形有効
性ビットを使うことによって達成される。 バス監視回路(26)を利用するためのシステムの条件
は、共有メモリの変更が原因の、考えられるキャッシュ
の無効化の割合に依存する。CPU(10)のキャッシ
ュ無効メカニズム、即ち、前に述べたCINV命令は、
CPU(10)によるメモリ・アクセスの割合よりも、
可能性がある無効の割合がずっと低ければ、バス監視回
路(26)無しに使うことができる。例えば、書写し方
式を実施するシステムは、可能性のある無効化の割合が
高く、バス監視回路(26)を必要とする。磨戻し方式
を使うシステムは、バス監視回路(26)が不要になる
くらいに、可能性がある無効化の割合が低いことがある
。 考えられる内部キャッシュの無効の3つのシナリオが第
20図乃至第22図に例小されている。 第20図は、無効化の割合が低く、従ってバス監視回路
(26)を利用しないシステムに対するキャッシュの一
貫性を保つ解決策を示す。DHAIIJtll器または
システム内の別のCPuが、システム・バスを介して主
メモリにある位置Aの内容を書込むとき、位2Aのアド
レスの下位の7ビツトが、CIAバスを介して03口(
10)に供給されて、INVICおよびINVDCの両
入力が低に駆動され、チップ上の位置Aを含む組が無効
にされる。即ち、バス監視回路(26)によるスクリー
ニングを使わずに、システム・バスの任意の店込みが、
命令キャッシュ(14)およびデータ・キャッシュ(1
6)内の成る組を無効にする。この設計は、申−プロセ
ッサ・システムまたは成る形式のマルチプロセッサ機構
、例えばメモリのオーナ制御を使う機構に用いることが
できる。 第21図は、キャッシュを無効にする高い割合を支援し
なければならず、そのためにバス監視回路(26)を使
うだ番ノの理由が゛あるようなシステムに対するキャッ
シュの一貫性を保つ解決策を小り。+Wjに説明したよ
うに、バス監視回路(26)がチップ上のキャッシュの
タグのコピーを管理している。このため、バス監視回路
のタグと符合プるような、システム・バスLの任意のN
込みが、C1^、 INVDC。 INVICおよびINVSET入力に基づいて、対応(
る内部キャッシュで無効化を行なう。 3番目のキャッシュの一貫性を保つ解決策が第22図に
示されている。このシステムは無効化の1111合が^
いが、大形の外部キャッシュ(25)を取入れている。 この場合、外部キャッシュ(25)が、それぞ゛れのバ
ス監視回路を使うことにより、主メモリとの一関性ζ保
つ。従って、内部キャッシュは、外部キャッシュ(25
)との−l′It’lを保ちさえ1ればよい。外部キャ
ッシュ(25)を無効にすることがあれば、それによっ
て内部キャッシュの成る組が無効になる。外部キャッシ
ュ(25)を更新すれば、それによって内部キャッシュ
内の成る組が無効になる。 CPU(10)の動作に関するこの他の情報は、この出
願と同日に出願された係属中の米国特許出願通し番号第
006,016号に記載されており、必要があればそれ
を1≧照されたい。 この発明を実施する時、図面に示した実施例に種々の変
更を加えることができることはいうまでもない。特許請
求の範囲は、この発明を限定するものであり、特許請求
の範囲に該当する構造および方法ならびにその均等物は
この発明に属する。
バスを使うことにより、マイクロプロセッサの外部参照
を邪魔せずに、キャッシュの無効化を行なうことができ
る。 チップ上の主11ツシユに2重ボート形有効性ビットを
使うことにより、マイクロプロセッサのチップ上の参照
を妨げずに、無効化を行なうことができる。 タグをマイクロプロセッサにのせる代りに、キャッシュ
・タグの付加的なコピーを持つ「バス監視」回路を設け
る。これによってマイクロプロセッサノのコストを切下
げる。無効化の割合が低いとき、バス監視回路は必要で
はない。主メモリ内の位置を修正するときには、いつで
も、キt7ツシユに別のアドレスが記憶されていても、
その位置を含むキャッシュの組を無効にすることが可能
である。これによって、特別のバス監視回路のコストが
節約されるが、不必要な無効化が行なわれるため、性能
は低下する。バス監視回路を含めるかどうかに関するコ
スト/性能の兼合いは、システムの設お技術者にまかさ
れる。 ここで説明するマイクロプロセッサのチップ上キトツシ
ュは、512バイトの命令キャッシュと別個の1024
バイトのデータ・キャッシュを含む。命令キャッシュお
よびデータキャッシュは別々に何部することができる。 2つのキャッシュの内容は、随意選択により、一定のメ
[り位置に固定することができる。特定の位置をキャッ
シュに固定する選択を使うことにより、中央処J!!’
!装買は重要な命令およびデータに対するチップ上のア
クセスが非常に早くなり、これは実時間の用途では非常
に右利である。 キャッシュ無効命令を実行して、命令キャッシュおよび
/またはデータ・キャッシュを全体的に無効にするか、
または無効命令を実行して、何れか一方または両方のキ
ャッシュにある1個の16バイトのブロックだけを無効
にすることかできる。 現在のバス・サイクルのメモリ参照がキャッシュ不可能
であることを中央処理装置に知らせるキャッシュ禁止入
力信号を使うことにより、個別の位置に対してキャッシ
ュを使うことを禁止することができる。 実施例 第1図はこの発明に従って集積キャッシュ・メモリの一
貫性を保つ方法を実施するマイクロプロセッサ(CPU
)(10)の全体的なアーキテクチュアを示している。 CPU(10)が命令を取出し、データを読取り且つ書
込み、浮動小数点動作を行ない、例外の要語に応答する
ために、外部メモリおよびシステム内にあるその他の装
置と連絡するためのバス・サイクルを開始する。 CPII(10)が、20HH2t”、10HIPS
(1秒アタリ100万個の命令)まで実行し得る4段形
命令バイプライン(12)を含む。命令パイプライン(
12)と共に命令およびデータに対するバイブライン(
12)の強い需要を支援する3つの記憶バッファがチッ
プ上に集積されている。記憶バッファが512バイトの
命令キャッシュ(14)、1,024バイトのデータ・
キャッシュ(16)、および64エントリの変換バッフ
ァを含み、これが集積メモリ管理装置(880)(18
)の中に含まれている。MMO(18)の主な機能は、
メモリ参照の要請を調停し、仮想アドレスを実アドレス
にに!換することである。集積バス・インターフェース
装置(BID) (20)が外部参照のためのバス・サ
イクルを制御する。 キャッシュおよびメモリ管理1能を命令パイプライン(
12)と同じチップ上に配置することにより、あらゆる
用途に対し、メモリ・アクセス時間および帯域幅を改善
することにより、優゛れたコスト/性能が得られる。 命令キャッシュ(14)及びデータキャッシュ(16)
は、共に物理的である。このことは外部キャッシュやメ
モリとの一貫性をサポートする上で重要である。多重プ
ロセラナシステムの場合又は、全てのシステムで直接メ
モリアクセス(DMA) Aペレーションが行われる場
合、同じアドレスが内部4−ヤッシ(14,16)に存
在しながらデータが外部メモリに出き込まれ、従ってこ
のアドレスを無効としなくてはならなくなるときがある
。内部キVツシュ(14,16)が仮想である場合、外
部アドレスは実アドレスであるので、シングルキ1νツ
シュエントリを行って無効化することは、困難になる。 実キ11ツシュがシングルエントリの無効化を可能にす
る。 CPU(10) ハ、割込ミ制御装M (ICU)(2
4) (例えばN532202)のような利用し得る
周辺装置と6両立性がある。CPt1(10)に対】、
るICUインターフェースは完全に非同期であり、この
ため、ICU(24)をCPU(1G)よりも一層低い
周波数で動作させることができる。 CPU(10)がそれ自身のクロック発生器を持ってい
る。従って、タイミング制御装置を必要としない。 CPU(10)は、また外部キャッシュ・メモリ(25
)ならびに「バス監視」回路(26)の両方を支援する
、この回路は内部キャッシュの一貫性を保つのを助ける
。 第2図に示すように、cpu(io)は、バスのタイミ
ングおよび制御、キ1νツシュの制御、例外の要請およ
びその他の機能のために、114個のインターフェース
信号を持っている。F記のリストは、CPU(10)イ
ンターフェース信号の機能をまとめたものである。 入力信号 BACに バースト確認(アクティブロー、即ち、
低で作用)。バースト要請に応答して 作用する時、メモリがバースト・サイ クルを支援することを示づ。 B[Rバスの誤り(低で作用)。現在のバス・サイクル
の間、誤りが検出された ことをCPt1(10)に知らせる。 BRI バスの再試行(低で作用)。CPU(1
G)が現在のバス・サイクルをもう1回道 行しなければならないことを示す。 BWO−BWI バスの幅(2本の符号化された線)
。 これらの線が、下記の表1に示すよう に、各々のデータ転送に対するバスの 幅(8,16または32ビツト)を定める。 表 1 CI八へ−CIA6キヤツシユ無効アドレス(7木の符
号化された線)。キャッシュ無効アド レスがCIAバスに出る。表2が、CPII(10)の
各々の内部キャッシュに関連するCIA線を示す。 表 2 CIl 主1フッシュ入力禁止(アクティブハイ
、即ち、高で作用)。現在のバス・ サイクルのメモリ参照がキ17ツシユ 可能でないことをCPU(10)に知らせる。 CINV[キャッシュ無効付能。外部キャッシュ無効の
選択か或いは試験モード動作が 選択されたかを決定する入力。 01K クロック。CPU(10)に対する仝ての
タイミングを取出すのに使われる入カク 1コック。 DBG デバッグ・トラップ要語(立下りで作動
)。この信号の高から低への変化が トラップ(DBG)を生じる。 1101.0 保持要請(低で作用)。直接メモ
リ・アクセス装置(DHA)のためまたはマルヂブロU
ツ丈用にバスを解放υるよう にcpu(io)に要請する。 INT 割込み(低で作用)。マスク可能な割込
み要請。 INVsET 組無効(低で作用)。低である時、
チップ上のキjyツシュ内のある組だ けが無効にされる。高であるとき、 キャッシュ全体が無効にされる。 INVDc データ・キャッシュ無効(低で作用)
。 低である時、データ・主1フッシュ内で無効作用が行な
われる。 INVIC命令キャッシュ無効(低で作用)。低である
時、命令キ亀?ツシコ内で無効作用が行なわれる。 10DECIlo 復?3 (低1”作用)、fl装;
aが現在のバス・サイクルによってアド レスされたことをCPU(101に知らせる。 N旧 マスク出来ない割込み(立下りで作動)。こ
の信号の高から低への変化が、マスクできない割込みを
要請する。 IIDY 用意完了(i!′+iで作用)。この
信号が作動されていない間、cpu(io)は遅いメ[
りまたは周辺装置を支援するために、現在のバス・サイ
クルを延長する。 R8[リセット(低で作用)。CPII(10)を初期
設定するためのリセットの例外を発 生する。 5DONE スレーブ済み(低で作用)。スレード
ブ1.1 t=ツサが命令の実行を完了したことをCP
U(101に知らゼる。 S T R八P スレーブ・トラップ〈低で作用)
。スレーブ・ブ[1セツザが、命令を実行している間に
、トラップ状態を検出した ことをCPU(10)に知らゼる。 出力信号 八〇−A31 アドレス・バス(3状態、32木の
線)。 バス・サイクルの間、32ビツト・アドレスを転送する
。AOが最下位ビットを転送する。 ADS アドレス・ストローブ(低で作用、3状
態)。バス・サイクルが開始され、 有効アドレスがアドレス・バスにある ことを知らせる。 BEO−8[3バイト付能(低で作用、3状態、4本の
線)。表3に承りように、データ・ バスの各々のバイトの転送ができるよ うにする信号。 BHT メモリ・トランデクジョン開始(低で作
用、3状態)。現在のバス・サイク ルが有効であること、即ち、バス・サ イクルが取消されなかったことを示1゜バス・サイクル
中でC0NFにりも早く利用し1qる。 I ブレーク点(低で作用)。CPII(10)
がデバッグ状態を検出したことを知らせ る。 BItEQ バースト要請(低で作用、3状態)
。 cpu(to)がバースト・サイクルを遂行することを
要請していることを示ず。 BIISCIに バス・クロック。バスのタイミング
のための出力クロック。 CUSFCttシツシュ区間(3状態)。キ(Fツシュ
可能なデータ読取バス・サイクル に対し、チップトのデータ・キ17ツ シユ(18)のうら、データが入れられる区間を示す。 CIOキャッシュ禁止(^で作用ン。現在のバス・サイ
クルのメモリ参照がキャッ シュ可能でないというCPU(10)による表示。レベ
ル−2のページ・テーブ ル・エントリ中のCI−ビットによって制御される。 CON r バス・サイクル確認(低で作用、3
状態)。ADSで開始されたバス・サイクルが有効であ
ること、即ら、バス・サ イクルが取消されていないことを知ら せる。 DDIN データ入力方向く低で作用、3状態)
。 データ・バスにおける転送方向を示づ。 バス・サイクルの間に低である時、 CPU 10がデータを読取っていることを示す。バス
・サイクルの間高である時、CPU10がデータを書込
んでいることを示す。 +11DA 保持確認(低で作用)。1−801
D入力に応答して、cpuioによって作動され、c
pu ioがバスを解放したことを示す。 110 インターロック形バス・シイクル(低で
作用)。インターロック保護を伴う 一連のバス・サイクルが進行中である ことを示す。 101NII I10禁止(低で作用)。周辺VR
置がアドレスされた場合、現在のバス・サイ クルを無視すべきであることを示す。 ISF 内部逐次取出し。PFSと共に、実行を
開始する命令が逐次形(ISF=低)または非逐次形(
I S l−=高)であることを示PIS プロ
グラム・フロー状態(低で作用)。 この信号のパルスは、各々の命令に対 する実行の開始を示ず。 SPCスレーブ・プロセッリ制御I(低で作用)。スレ
ーブ・プロセッサのバス・ リーイクルに対するデータ・スト[1−ブ。 5TO−3T4 状態(5本の符号化された線)。バ
ス・サイクル状態コード。STOは最下位ビットである
。符号化が表4に示さ れている。 tl/S ユーザ/スーパバイザ(3状態)。 ユーザ・モード(U/S=高)またはスーパバイザ・−
[−ド(IJ/S−低)であることを示す。 両1i向信号 Do−031データ・バス(3状態、32木の線)。 バス・サイクルの間、8.16または32個のデータ・
ビットを転送する。、Doが最下位ビットを転送する。 第3図について説明すると、CPU(10)は内部では
8個の主要な傭能装置として構成されており、これらは
並列にV」作して、命令を実行するために次の動作を行
なう。予備取出し、復号、実効アドレスの計算、原始オ
ペランドの読取り、結果を読取ってレジスタに記憶、結
果をメモリに記憶。 ローダ(28)が命令の予備取出しを行ない、アドレス
装置(30)および実行装置(32)で使うためにそれ
らを復号する。ローダ(28)が命令キャッシュ(14
)からIBUSバスを介して受取った命令を8バイト命
令持ち行列に転送する。ローダ(28)は各々の1ノイ
クルで命令フィールドを取出Jことができる。「フィー
ルド」は動作コード(アドレス・モード指定子を含めて
1乃至3バイト)、変位値または即値のいずれかを意味
する。ローダ(28)が、動作コードを復号して初期マ
イクロコード・アドレスを発生し、それがLAORバス
を介して実行装置(32)に送られる。復13された一
般アドレス・モードがADHSバスを介してアドレス装
置(30)に送られる。変位値がDISPバスを介して
アドレス装置(30)に送られる。即値がGCBUSバ
スに利用できる。ローダ(28)が後で説明するブラン
チ予測門構をも含む。 アドレス装H(30)が、専用32ピツト加i3を用い
て実効アドレスを計算し、実行装置(32)に対して原
始オペランドを読取る。アドレス装置(30)が、レジ
スタ・ファイル(34)からGCBUSへのボートを制
御する。このボートを介して、基底値および指標飴をア
ドレス加算器に転送し、データ値を実(j装置(32)
に転送づ”る。オペランド参照用の実効アドレスが、仮
想アドレス・バスであるGVAバスを介してMHO(1
8)およびデータ・キt7ツシユ(16)に転送される
。 実行装置(32)がデータ通路と、命令を実行し且つ例
外を処理するためのマイクロコード形制御装置を含んで
いる。このデータ通路は32ビツト0術論理装置(AL
ll)、32ピツト・バレル・シフター、63ビット優
先順位符号器および多数のカウンタを含む。実行装置(
32)に設けられた特殊用ハードウェアが乗算を支援し
、絶対値の小さい乗数に対づ−る最適化を伴って1サイ
クル毎に1ビツトを引込める。 実行装置(32)が結果を記憶するGNNババスらレジ
スタ・ファイル(34)へのボートを制御!lIづ°る
。 GN^バスは、レジスタ・ファイル(34)に含まれて
いる構成レジスタ、及び割込み基底レジスタのような多
数の台用レジスタの値を読取るためにも、実行装置(3
2)によって使われる。2−エントリ・データ・バッフ
ァは、実行Vt1t! (32)が、1つの命令の実行
と、前の命令に対する結果をメモリに記rすることをオ
ーバラップすることができるようにJる。GV八ババス
、複雑な命令(PAえばストリング動作)に対するメモ
リ参照を実行するため並びに例外の処理のために、実行
装置(32)によって使われる。 レジスタ・ファイル(34)に含まれる構成レジスタは
、32ビツトで構成され、その内の9ビツトを用いる。 用いられるビットが、割込みのベクトル化、スレーブ命
令の実行、チップ上の命令キ1rッシュ(14)および
データ・キPツシュ(16)の制御を含めて、CPU(
10)の種々の動作モードを何面する。形式レジスタの
内容がロードされたとき、ビット4乃至7にロードされ
る値は無視する。形式レジスタの内容が記憶されるとき
、これらのビットは1である。 形式レジスタの形式が表5に示されている。次に種々の
制御ビットを説明する。 表 5 I υ書込みのベクトル化。 このビットはマスク可能な割込みが非ベクトル(VI=
O)モードまたはベクトル(VI=1)モードのど15
らかで処理されるかを制御する。 F 浮動小数点命令の組。 このビットは浮動小数点命令を実行する浮動小数点装置
が存在するかどうかを示す。 M メモリ管理命令の組。 このビットはメモリ管理命令の実行を何面する。 Cカスタム命令の組。 このビットはカスタム命令を実行するためのカスタムス
レーブ・ブロセツナが存在するかどうかを示す。 D[直接−例外付能。 このビットは、割込みおよびその他の例外に対するCP
U(10)の応答時間を改善する例外を処理するモード
である直接−例外モードを何面Jる。 DCデータ・キャッシュ付能。 このビットはデータの読取および書込みのために、デー
タ・キャッシュ(16)をアクセスすることを何面する
。 LDCデータ・キャッシュ固定。 このビットは、データ・キャッシュ(16)の内容が固
定メモリ位lに配置される (LDC=1)かまたはキVツシュからデータの読取が
抜けているときに更新されるか(trc=o)を制御す
る。 IC命令キャッシュ付能。 このビットは命令の取出しのために、命令キャッシュ(
14)のアクセスを何面する。 LIC命令キャッシュ固定。 このビットは命令キャッシュ(14)の内容が固定メモ
リ位置に配置されるか(LIC=1 )またはキャッシ
ュからの命令の取出しが抜けているとぎに更新されるか
(IIC=O)を制御する。 前に述べたように、CPU(10)が、4段のパイプラ
イン(12)で、いくつかの命令を同時に□実行するす
」作をオーバラップする。バイブライン(12)の全体
的な構成ならびに命令およびデータに対する種々のバッ
ファが第7図に示されている。実行装置(32)が1つ
の命令に対する結果を計算している間、アドレス装置(
30)が実効アドレスを計算し、続く命令に対する原始
オペランドを読取ることができ、ローダ(28)が3番
目の命令を復号し、4番目の命令を8バイト待ち行列に
予備取出しすることができる。 アドレス装置(30)および実行装置(32)は命令1
個当り2サイクルのピーク速度で命令を処理り°ること
ができる。ローダ(28)は命令1個当り1サイクルの
ピーク速度で命令を処理り゛ることができ、そのため、
典型的にはアドレス装置(30)および実行装置(32
)に対して着実に命令を供給Jることができる。ブラン
チ命令または命令キャッシュ(14)のミスにより、命
令ストリームにlj pツブが生じたときだけ、ローダ
(28)がバイブライン(12)のスルーブツトを壊す
。 第8図はアドレス装置(30)f′3よび実行装置(3
2)によってメモリからレジスタへの2つの命令を実行
する様子を示す。CPII(10)は大抵の酋通の命令
に対して【、裏、2サイクルの実行速度を保つことがで
き、典型的には次の場合にだけ遅延を持つ。 1、変換バッファのミスおよび調整されていない参照に
よる記憶遅延。 2)バイブライン(12)の段の間のリソースのコンテ
ンション。 3 ブランチ命令およびその他の非逐次形命令の取出し
。 4、位取りした指標のような複雑なアドレス・モードお
よび除算のような複雑な動作。 第9図はバイブライン(12)のタイミングに対するデ
ータ・キャッシュ(16)のミスの影テでを示す。 BIU(20)がデータを読取るバス・サイクルを完了
するまで、実行装置(32)は2サイクル′!l延する
。 cpu(io)が行なう基本バス・す“イクルは後で訂
しく説明する。 第10図はバイブライン(12)のタイミングに対する
アドレス・レジスタのインク−ロックの影ν号を示ず。 1つの命令がレジスタを修正しており、その開法の命令
がアドレス計節のためにそのレジスタを使う。実行装置
(32)がレジスタの更新を完了するまで、アドレス装
置(30)は3サイクルd延する。2番目の命令がアド
レス計算ではなく、データの値のためにレジスタを使う
場合(例えば、八〇〇〇 RO,旧)、実行装置(32
)にある側路回路を使って、バイブライン(12)のd
Y延を避ける。 萌に述べたように、ローダ(28)はブランチ命令を処
理する回路を含んでいる。 「ブランチ」命令は、現在実行中の命令のアドレスに対
し、現在実行中の命令に符号化された変位値を加葬する
ことによって計算された宛先アドレスにある命令に、制
御作用を切替える可能性のある命令である。ブランチ命
令は「無条件」また(411条件つき」になることがあ
る。(!2にの場合、CPII(10)の状態に関する
特定された条件が真であるかどうかを判定するための試
験を行なう。ブランチ命令は、それが無条件であるか、
或いは条件例きであって特定された条件が真である場合
に、「採用コされるという。 ブランチ命令が復号された時、ローダ(28)が宛先ア
ドレスを計口し、逐次形および非逐次形命令スi・リー
ムのどちらかを選択する。この選択は、ブランチ命令の
条件および方向に基づく。ブランチ命令が採用されると
ローダ(28)が予測する場合、宛先アドレスがJBI
JSを介して命令キャッシュ(141に転送される。ブ
ランチ命令が採用されると予測されてもされなくても、
n−ダ(28)は交代的な命令ストリームのアドレスを
保管する。後でブランチ命令が実行装置(32)に達し
、そこで条件を解く。 実行装置(32)は、ブランチ命令が採用されたかどう
かをCI−グ(28)に知らせる。ブランチ命令の予測
が正しくイ1い場合、バイブラインがフラッシコーし、
命令キャッシュ(14)は正しいストリームからの命令
の予備取出しを開始Jる。 第11図はブランチ命令が採用されると正しく予測した
効果を示している。ローダ(28)による命令の復号に
2サイクルのギャップが起こる。バイブラインの先頭に
あるこのギ(!ツブは、完全に復号された1つの命令が
ローダ(28)とアドレス装置(30)の間でバッフ7
作用を受けているため、ならびにバイブライン(12)
内の後の段で同時にこの他の斤延が起こりうるため、詰
っている場合が多い。 第12図はブランチ命令の解の予測が正しく %い影響
を示す。実行装E (32)に4サイクルの1′、セツ
ブが起こる。 CPII(10)が単相入力クロックC[にを受取る。 これはCPt1(40)のりj作速度の2倍の周波数を
)Jjつてイル。例えば、CPU(10)が20H1l
z テアル場合、入カフロックの周波数は40Hllz
である。CPU(10)がC[に入力を2で除して内部
クロックを求める。この内部クロックは、重ならない2
相PIII 1およびPill 2 r構成される。C
PU(10) カBUSCLK出力信号のPill4を
駆動する。 第13図はCLK入力信号と8 +1 S CLに出力
信号の間の関係を示す。 第14図に示寸ように、BIISCLに出力のことごと
くの立上りが、cpu(io)のタイミング状態(IT
状態」)の変化を定める。バス・サイクルは、関連する
時間線図で11. I2;I3よσr2Bと記した一連
の王状態の間に行なわれる。バス・サイクルの間にアイ
ドルT状態(Ti)があることがある。C1,に入力に
対するBUSCLK出力の位相関係はリセットの時に設
定することができる。 主メしりおよび周辺装置の読取および書込みのために、
CPU(10)が行なう基本バス・サイクルは、I1お
よびI2と呼ぶバス・クロックの2サイクルの間に行な
われる。2つの理由で、基本バス・サイクルは2クロツ
ク・サイクルを超えて延長することができる。第1に、
近いメモリおよび周辺装置を待つために、付加的なI2
サイクルを追加することができる。第2に、外部メモリ
から読取る時、バースト・サイクル(FT2B Jと呼
ぶ)を使って、相次ぐ位置からの多数の2重ワードを転
送することができる。 持ち状態のない基本読取および書込みバス・曇ナイクル
のタイミングが、夫々第14図および第15図に示され
ている。読取および書込みのどちらのバス・サイクルで
も、I1の前半の間、バス・サイクルの開始を示すアド
レス・ストローブADSをCPu(10)が出す。I1
の開始からバス・サイクルの完了マチ、CPU(10)
が、状態(STO−3T4) 、ハイド付能(B[0−
BF2)、データ入力方向(DDIN) 、キャッシュ
禁止(CIOI 、I10禁止(IOINll )およ
びバス・サイクルWf H(C0NF ) (fi 号
に対し、アドレス・バスおよび制御信号を駆動する。 バス・サイクルが取消されない場合(即ち、I2が次の
クロックで続く場合) 、CPU(10)が11の間、
メモリ・トランザクション開始BHTを出し、I1の中
央から、バス・サイクルが完了するまで、バス・サイク
ル確認C0NFを出し、完了した時、C0NFを否定す
る。 I2(1)終りに、CPU(10) ハ、RDYが作動
状態ニアって、バス・サイクルが完了したことを示して
いるかどうかを標本化する。即ち、追加の12状態を追
加すべきではない。I2の後、次のバス・サイクルに対
するI1か、またはCPU(10)が遂行すべきバス・
サイクルを持たない場合は、Tiが続く。 第16図に示すように、全説明した基本読取および書込
みバス・リーイクルが、一層良いアクセス時間を支援す
るように延長することができる。前に)小べたように、
CPII(10)が各々のI2状態の終りにRDYを標
本化する。ItllYが不作動であれば、I2をもう1
つのクロックだけ繰返すことにより、バス・サイクルを
延長する。最初より後の追加の12状態は、「持ち」状
態とpf′ばれる。第16図は2つの待ち状態を追加し
て、読取バス・サイクルを延長することを示す。 第17図に示すように、相次ぐメモリ位置から4つまで
の2重ワードのバースト転送を支援するために、J、4
本読取サイクルを延長することもできる。 バースト読取サイクルの間、最初の2重ワードが、基本
読取サイクルと同じく、I1およびI2状態の順序の間
に転送される。後続の2重ワードは、“[2B′ と叶
ばれる状態の間に転送される。バースト・サイクルは、
32ビット幅のメモリから読取る為にだけ使われる。 バースト読取サイクルにおける転送の数が、I2または
72B状態の間の出力信号BR[Qおよび入力信号■n
の間のハンドシェイクによって制御され、現在の転送に
続いてもう1回の転送を要語していることを示す。メモ
リは、もう1回の転送を支援ツることができることを示
すために、BACにを出す。第17図は3つの転送のバ
ースト読取サイクルを示しており、CPU(10)は、
2番目の転送の後、■nを、否定にすることにより、こ
の順序を終了する。第18図は2つの転送のバースト・
サイクルを示しており、これは2番目の転送の間、BA
Cにが不作動である時に、システムによって終了させら
れる。 バースト順序中の1番目よりの後の各々の転送に対し、
CPU(10)がアドレス・ビット2および3をインク
レメントし、次の2小ワードを選択する。 第18図に2番目の転送について示づように、CPU(
10)が各々の状態T2Bの終りにRDYを標本化し、
1?DYが不作動であれば、バースト転送に対するアク
セス時間を延長する。 64ページに対するアドレス・マツピングを保持する前
に述べた変換バッファにより、チップ上で高速アドレス
変換が行なわれる。ページの規模は4にバイトである。 変換バッファが、最近に使われたメLす・ページに対し
、仮想アドレスから実アドレスへの直接的なマツピング
を11なう。変換バッフ?にあるエントリーがHHU(
1g)によって割当てられ、自動的に取替えられる。仮
想アドレスを実アドレスに変換するのに必要な情報が、
変換バッファで脱落していれば、CPU(10)が外部
メモリにある2つのレベルのページ・テーブルエントリ
ーから情報を自動的に突止め、変換バッファを更新する
。880(18)が、命令を実行するために必要となる
参照のためのアドレスを変換している間に、保a!違反
またはページの不在を検出すると、アボート・トラップ
が起こり、実行中の命令は中断する。 変換バッファにある64個のエントリーの各々が、仮想
および物理ページ・フレーム番号、即もアドレスのうち
の最上位の20ビツトを、仮想ページに対するアドレス
空間、ページに対する保護レベル、およびレベル−2ペ
ージ・テーブルエントリーからの修iTE a3よびキ
ャッシュ禁止ビットと共に記憶する。 保護レベル・フィールドが、成るページまたは1群のペ
ージに対して割当てられる保護レベルを設定する。表6
は保護レベル・フィールドの符号を示す。 前に述べたように、キャッシュ禁止ビットCIが第2レ
ベルのページ・テーブルエントリーに現われる。キャッ
シュ禁止ビットが1であれば、ページ上の位置に対する
命令取出しおよびデータ読取の参照は、チップ上のキャ
ッシュを側路する。 外部メモリに対する参照の間、キIIツシュ楚止ビット
がシステム・インターフェースに表示される。 修正ビットも第2レベル・ページ・テーブルエントリー
に現われる。HHU(18)が、ページに対する書込み
を行ない、ページ・テーブルエントリーの修正ビットが
Oであるとぎには、いつでもページ・テーブルエントリ
ーの修正ビットを1にセットする。 仮想アドレスを対応する実アドレスに変換するため、仮
想ページ・フレーム番号およびアドレス空間を変換バッ
ファにあるエントリーと比較する。 符合するページ・フレーム番号およびアドレス空間を持
つ有効な空間がすでに変換バッファに存在していれば、
実アドレスは即座に利用しうる。そうでなければ、変換
バッファにある有効なエントリーが、符合するページ・
フレーム番号およびアドレス空間を持っていなければ、
MHO(18)が仮想アドレスを変換し、脱落している
情報を変換バッファに入れる。HHU(18)は、それ
までに修正されていないページに対する書込みのときも
、変換を行なう。 メモリ参照に対する変換が何面されたとき、8M11(
18)が32ビツートの仮想アドレスを32ビツトの゛
実アドレスに変換し、各々の参照にお【ノる保護違反を
検査し、前に述べたように、参照のためにチップ上のキ
ャッシュを使うことを禁止することがありうる。参照に
対する変換が不作動にされたとき、実アドレスは仮想ア
ドレスと同じであり、保護検査は行なわれず、参照に対
してチップ上のキ1νツシュは禁止しない。 前に述べたように、8811(18)が、4にBのペー
ジおよび変換テーブルの2レベルを用いて、アドレスを
変換する。仮想アドレスは3つの構成部分INDEX
1 、INDEX 2 オヨヒ0FrSFTニ分ケラレ
テイる。 INDEX 1及ヒINDrX 2 ハ共ニ10ビット
のフィールドで、夫々第ルベルおよび第2レベルのべ一
、ジのテーブルを指すために使われる。0FFSETは
、仮想アドレスのそれより低い12ビットである。これ
は選ばれたページ内のバイトを指す。 アドレス変換の間にページ・テーブルのエントリーを読
取るとき、880(18)はデータ・キャッシュ(16
)を側路し、常に外部メモリを参照する。 データ・キャッシュ(16)にあるページ・テーブルの
エントリーを更新するとき、MMO(18)が、データ
・キャッシュ(16)および外部メモリの両方にあるペ
ージ・テーブルのエントリーの内容を更新する。 CPU(10)のシステム・インターフェースは、第1
図に示づように、外部キャッシュ・メモリ(25)を使
うことができるようにする。レベル−2ページ・テーブ
ルのエントリーからのCIビットが、バス・サイクルの
問、アドレスと共にCIO出力信号に出され、個々のペ
ージを選択的にキt!ツシュすることができるようにす
る。CPU(10)は、バス・すイクルの間、BRT入
力信号を出すことにより、バス・サイクルの再試行をす
ることかぐきるようになっている。バス・サイクルを再
び試行する前に、cpu(io)がバスを解放し、こう
して外部キャッシュ(25)が、外部主メモリに対する
アクセスを行なうことによって、ミスを処理することが
できるようにする。 この発明では、CPU(10)はチップ上のキャッシュ
と外部メモリの間で一貫性を保つようにする。 この目的のためにcpu(io)が利用Jる方式が表7
に示されている。 前に述べたように、レベル−2ページ・テーブルのエン
トリーにあるCIビットを使って、個々のページに対し
てキャッシュを使うことを禁止することができる。 命令キャッシュ(14)およびデータ・キャッシュ(1
6)にあるエントリーは、ヤヤツンユ無効C[NV命令
を使って無効にすることができる。CINV命令を実(
1する間、CPU(10)が、命令の最初の3バイトお
よび原始オペランドを表承するために、システム・イン
ターフェースに2つのスレーブ・パスリーイクルを発生
する。これによって外部回路は、チップ上のキャッシュ
の内容を監視するのに使うため、CINV命令の実行を
検出することができる。 CINV命令を使って、いずれか一方または両方の内部
キャッシュの内容全体、または選ばれたキXlツシュに
ある16バイトのブロックだけを無効にすることにでき
る。俊者の場合、原始オペランドの最上位の28ビツト
が、調整された16バイト・ブロックの実アドレスを特
定する。原始オペランドの最下位の4ビツトは無視する
。特定されたブロックがチップ上のキャッジ1内にない
場合、命令は何の影響もない。CINν命令が、Iオプ
ションに従って命令キャッシュ(14)を参照し、Dオ
−プションに従ってデータ・キャッシュ(1G)を参照
する。 CINV命令の形式が表8に示されている。 表 8 オプションが文字A(全部を無効にする)、I〈命令キ
ャッシュ)およびD(データ・キャッシュ)を列記する
ことによって特定される。IオプションもDオプション
も特定されていなければ、何も無効にしない。 機械命令では、オプションは次のように△、IJ3よび
Dフィールドに符号化される。 A: 0=16バイト・ブロックだけを無効にする。 1−キャッシュ仝体を無効にする。 1: 〇−命令キャッシュに影響しない。 1・−命令キャッシュを無効にする。 D二 〇−データ・キャッシュに影響しない。 1−データ・キャッシュを無効にする。 CPU(10)は、第1図に示す外部[バス監視」回路
(26)をも支援する。バス監視回路(26)の主な作
用は、メモリ共有マルチブロヒッザ・システムで5、ま
たLL高帯域幅直接メモリアクセスDMA装置を持つ単
一プロセッサ・システムの何れにおいても、一方は命令
・キャッシュ(14)およびデータ・キャッシュ(16
)、そして使方は外部メモリの間の一貫性を保つことで
ある。バス監視回路(26)は、CP 11 (10)
のバス・サイクルを観測して、命令キャッシュ(14)
およびデータ・主1フッシュ(16)に対するキャッシ
ュ・アドレス・タグのコピーを保持するとともに、外部
メモリ、例えばシステム内のDMA制御装置およびその
他のマイクロプロセッサに対する古込みを監視する。バ
ス監視回路(26)が、キャッシュ・アドレス・タグと
書込み参照アドレスとの比較によって、外部メモリでチ
ップ上のキャッシュ内のある位置が修正されたことを検
出すると、CPU(10)に対してキャッシュ無効要請
を出す。 第19図に示すように、バス監視回路(26)は下記の
バスとインターフェース接続される。 1 内部キャッシュのエントリー(タグ)を変更するた
めの情報をつるため、ならびにCPU (10)の内部
キャッシュ・タグの更新されたコピーを保つために、C
PU(10)のアドレス・バスJ5よびCAS[C出力
。 2)どの外部メモリのアドレスが変更されるかを検出す
るため、システム・バス。 3.1NVSET 、 INVDc 、 INVIC’
13よヒCIAO−CIA6人力信号で構成されるCP
II(10)のキ↑・ツシュ無効バス。 第19図について説明すると、前に説明したように、バ
ス監視回路(26)がCPII(10)の2つの内部キ
ャッシュ、即ら、命令キャッシュ(14)およびデータ
・キャッシュ(18)のタグ・コピーを管理り−る。 システム・バスのメモリ訳述みサイクルのアドレスがバ
ス監視回路(26)内にある1つのタグと符合すると、
バス監視回路(26)からcpu(io)に対しキャッ
シュ無効バスを介して指令が出され、内部キャッシュの
対応するエントリーを無効にする。 無効信号が別個のキャッシュ無効バスを介して供給され
るから、cpu(io)による内部キャッシュのエント
リーの無効化は1クロツク・サイクルしかかからず、C
PU(10)の進行中の外部バス・サイクルに干渉しな
い。命令キャッシュ(14)およびデータ・キャッシュ
(16)は1度に1組づつ無効にされる。即ち、命令キ
ャッシュ(14)の16バイト、およびデータ・キャッ
シュ(16)の32バイトである。 入力信号INVSETは、無効化が1つの組(低)に適
用されるか或いはキIIツシュ全体(高)に適用される
かを示す。 無効要請が、CPU(10)が無効化の影響を受ける位
置に対する読取サイクル中の■2またはT2B状態を完
了するまり前またはそれと同時に発生した場合、バスに
読取られたデータはキせツシュ内で有効である。無効要
請が読取サイクル中の丁2またはT2Bv、fllの後
に発生すれば、キャッシュ内でデータは無効である。 命令キャッシュ無効INVAC入力が低であれば、無効
化は命令キャッシュ(14)内で行なわれる。 データ・キャッシュ無効INVDC入力が低であれば、
無効化はデータ・キャッシュ(16)で行なわれる。 キャッシュ無効アドレスCIAO−CIA6が、CIA
バスを介してCPU(10)に送られる。これらのビッ
トは、データ・キャッシュ(16)および命令キャッシ
ュ(14)内で無効にすべき組のアドレスを定める。 バス監視回路は主に、キャッシュ・アドレス・タグのコ
ピーを記憶する3つのIIAHアレーで構成される。第
19図に示すように、RAMビットは2重ボートになっ
ている。1つのボートは、CPU(10)によるバス読
取サイクルの間にタグを書込むために使われる。2番目
のボートは、システム・バスからの無効要請の間、タグ
を読取るために使われる。2重ボート形メモリ・セルを
使うことにより、システム・バスの無効要請をCPU(
10)のバス・tナイクルと同期させることに伴なう問
題が簡単になる。 CPIJ(10)の外部参照との干渉をさけるほかに、
バス監視回路(26)を使うと、CPU(10)の内部
活動の干渉も避けられる。これは、第4図および第5図
について述べたように、命令キャッシュ(14)おにび
データ・キャッシュ(16)の両方に2重ボート形有効
性ビットを使うことによって達成される。 バス監視回路(26)を利用するためのシステムの条件
は、共有メモリの変更が原因の、考えられるキャッシュ
の無効化の割合に依存する。CPU(10)のキャッシ
ュ無効メカニズム、即ち、前に述べたCINV命令は、
CPU(10)によるメモリ・アクセスの割合よりも、
可能性がある無効の割合がずっと低ければ、バス監視回
路(26)無しに使うことができる。例えば、書写し方
式を実施するシステムは、可能性のある無効化の割合が
高く、バス監視回路(26)を必要とする。磨戻し方式
を使うシステムは、バス監視回路(26)が不要になる
くらいに、可能性がある無効化の割合が低いことがある
。 考えられる内部キャッシュの無効の3つのシナリオが第
20図乃至第22図に例小されている。 第20図は、無効化の割合が低く、従ってバス監視回路
(26)を利用しないシステムに対するキャッシュの一
貫性を保つ解決策を示す。DHAIIJtll器または
システム内の別のCPuが、システム・バスを介して主
メモリにある位置Aの内容を書込むとき、位2Aのアド
レスの下位の7ビツトが、CIAバスを介して03口(
10)に供給されて、INVICおよびINVDCの両
入力が低に駆動され、チップ上の位置Aを含む組が無効
にされる。即ち、バス監視回路(26)によるスクリー
ニングを使わずに、システム・バスの任意の店込みが、
命令キャッシュ(14)およびデータ・キャッシュ(1
6)内の成る組を無効にする。この設計は、申−プロセ
ッサ・システムまたは成る形式のマルチプロセッサ機構
、例えばメモリのオーナ制御を使う機構に用いることが
できる。 第21図は、キャッシュを無効にする高い割合を支援し
なければならず、そのためにバス監視回路(26)を使
うだ番ノの理由が゛あるようなシステムに対するキャッ
シュの一貫性を保つ解決策を小り。+Wjに説明したよ
うに、バス監視回路(26)がチップ上のキャッシュの
タグのコピーを管理している。このため、バス監視回路
のタグと符合プるような、システム・バスLの任意のN
込みが、C1^、 INVDC。 INVICおよびINVSET入力に基づいて、対応(
る内部キャッシュで無効化を行なう。 3番目のキャッシュの一貫性を保つ解決策が第22図に
示されている。このシステムは無効化の1111合が^
いが、大形の外部キャッシュ(25)を取入れている。 この場合、外部キャッシュ(25)が、それぞ゛れのバ
ス監視回路を使うことにより、主メモリとの一関性ζ保
つ。従って、内部キャッシュは、外部キャッシュ(25
)との−l′It’lを保ちさえ1ればよい。外部キャ
ッシュ(25)を無効にすることがあれば、それによっ
て内部キャッシュの成る組が無効になる。外部キャッシ
ュ(25)を更新すれば、それによって内部キャッシュ
内の成る組が無効になる。 CPU(10)の動作に関するこの他の情報は、この出
願と同日に出願された係属中の米国特許出願通し番号第
006,016号に記載されており、必要があればそれ
を1≧照されたい。 この発明を実施する時、図面に示した実施例に種々の変
更を加えることができることはいうまでもない。特許請
求の範囲は、この発明を限定するものであり、特許請求
の範囲に該当する構造および方法ならびにその均等物は
この発明に属する。
第1図はこの発明に従ってキャッシュの一貫性を保つ方
法を利用づ゛る一般的なマイクロプロセッサ・アーキテ
クチュアの簡略ブロック図、第2図はマイクロプロセッ
サのインターフェース信号を示す図、第3図はマイクロ
プロセッサの主要な機能的な装置および相互接続バスを
示す簡略ブロック図、第4図はマイクロプロセラ今の集
v4命令キャッシュの構成を示す簡略ブロック図、第5
図はマイクロプロセッサの集積データ・キャッシュの構
成を示す簡略ブロック図、第6図はデータ・4;ヤッシ
ュをアクセスするためのタイミング順序を示す時間線図
、第7図はマイクロプロセッサの4段形バイブラインの
全体的な構成を示す図、第8図は内部データ・キャッシ
ュのヒツトに対するパイプラインのタイミングを示す時
間線図、第9図は内部のデータ・キャッシュのミスに対
するパイプラインのタイミングを示す時間線図、第10
図はパイプラインのタイミングに対するアドレス・レジ
スタのインターロックの影響を′示す時間線図、第11
図はマイクロプロセッサの動作で採用されるブランチ命
令を正しく予測した効果を示す時間線図、第12図はマ
イクロプロセッサの動作でブランチ命令の解の予測が不
正確であった影響を示す時間線図、第13図はマイクロ
プロセッサのC[に入力およびeusctに出力信号の
間の関係を示す時間線図、第14図はマイクロプロセッ
サの基本読取サイクルを示す時間線図、第15図はマイ
クロプロセッサの基本1g込みサイクルを示す時間線図
、第16図は2つの持もサイクルだけ延長した、マイク
ロブロセッ1すの読取ナイクルを示す時間線図、第11
図は3回の転送を持ち、マイクロプロセッサで終了させ
られるバースト読取1ノイクルを示1時間線図、第18
図は、2回の転送を持ち、2番目の転送が1つの持ち状
態だけ延長されていて、マイクロプロセッサによって終
了させられるバースト読取サイクルを示す時間線図、第
19図はこの発明に従ってキャッシュの一貫性を保つた
めに使われるバス監視回路の簡略10ツク図、第20図
は無効化の割合が低いシステムに対するキャッシュの一
貫性を保つ解決策を示tff!I略ブロック図、第21
図は無効化の割合がnいシステムに対するキャッシュの
一貫性を保つ解決策を示す簡略ブロック図、第22図は
人形の外部キャッシュ・メモリを持つ無効化の割合が高
いシステムに対するキャッシュの一貫性を保つ解決策を
示を簡略ブロック図である。 峠 e+ 忙 N為2&N◆コN◆1 +2/ :E’工[:r−7MMn24FP
)、RO ADDD 4(FPl、RO +L、”7”; ADDD 4(FP)、 ROeo
nd kand La&al −〇に!: 人DDD4(汗)、ROr工ロ?−]1
2 王F工G−−IB (tlJ?:Q 丁1 n
TlX1$TI王コエロシー14゜ イtト丁41 丁1 丁2
Tlz+tT1r工〔i−工S 1F工[:r−16 王=工Cr−1−7+ 4tl#ITルにTh 丁1
n tze 4%)
*t、m1Fエロト−18
法を利用づ゛る一般的なマイクロプロセッサ・アーキテ
クチュアの簡略ブロック図、第2図はマイクロプロセッ
サのインターフェース信号を示す図、第3図はマイクロ
プロセッサの主要な機能的な装置および相互接続バスを
示す簡略ブロック図、第4図はマイクロプロセラ今の集
v4命令キャッシュの構成を示す簡略ブロック図、第5
図はマイクロプロセッサの集積データ・キャッシュの構
成を示す簡略ブロック図、第6図はデータ・4;ヤッシ
ュをアクセスするためのタイミング順序を示す時間線図
、第7図はマイクロプロセッサの4段形バイブラインの
全体的な構成を示す図、第8図は内部データ・キャッシ
ュのヒツトに対するパイプラインのタイミングを示す時
間線図、第9図は内部のデータ・キャッシュのミスに対
するパイプラインのタイミングを示す時間線図、第10
図はパイプラインのタイミングに対するアドレス・レジ
スタのインターロックの影響を′示す時間線図、第11
図はマイクロプロセッサの動作で採用されるブランチ命
令を正しく予測した効果を示す時間線図、第12図はマ
イクロプロセッサの動作でブランチ命令の解の予測が不
正確であった影響を示す時間線図、第13図はマイクロ
プロセッサのC[に入力およびeusctに出力信号の
間の関係を示す時間線図、第14図はマイクロプロセッ
サの基本読取サイクルを示す時間線図、第15図はマイ
クロプロセッサの基本1g込みサイクルを示す時間線図
、第16図は2つの持もサイクルだけ延長した、マイク
ロブロセッ1すの読取ナイクルを示す時間線図、第11
図は3回の転送を持ち、マイクロプロセッサで終了させ
られるバースト読取1ノイクルを示1時間線図、第18
図は、2回の転送を持ち、2番目の転送が1つの持ち状
態だけ延長されていて、マイクロプロセッサによって終
了させられるバースト読取サイクルを示す時間線図、第
19図はこの発明に従ってキャッシュの一貫性を保つた
めに使われるバス監視回路の簡略10ツク図、第20図
は無効化の割合が低いシステムに対するキャッシュの一
貫性を保つ解決策を示tff!I略ブロック図、第21
図は無効化の割合がnいシステムに対するキャッシュの
一貫性を保つ解決策を示す簡略ブロック図、第22図は
人形の外部キャッシュ・メモリを持つ無効化の割合が高
いシステムに対するキャッシュの一貫性を保つ解決策を
示を簡略ブロック図である。 峠 e+ 忙 N為2&N◆コN◆1 +2/ :E’工[:r−7MMn24FP
)、RO ADDD 4(FPl、RO +L、”7”; ADDD 4(FP)、 ROeo
nd kand La&al −〇に!: 人DDD4(汗)、ROr工ロ?−]1
2 王F工G−−IB (tlJ?:Q 丁1 n
TlX1$TI王コエロシー14゜ イtト丁41 丁1 丁2
Tlz+tT1r工〔i−工S 1F工[:r−16 王=工Cr−1−7+ 4tl#ITルにTh 丁1
n tze 4%)
*t、m1Fエロト−18
Claims (24)
- (1)マイクロプロセッサの集積キャッシュ・メモリと
マイクロプロセッサに付設する外部メモリの間の一貫性
を保つ方法において、マイクロプロセッサが外部データ
・バスを介して外部メモリと連絡し、集積キャッシュ・
メモリに記憶されている情報を無効にするキャッシュ無
効命令を実行する工程を含む方法。 - (2)特許請求の範囲第1項に記載した方法において、
集積キャッシュ・メモリが命令キャッシュおよび別個の
データ・キャッシュを含む方法。 - (3)特許請求の範囲第2項に記載した方法において、
キャッシュ無効命令が、命令キャッシュおよびデータ・
キャッシュの両方の内容全体を無効にする方法。 - (4)特許請求の範囲第2項に記載した方法において、
キャッシュ無効命令が命令キャッシュの内容全体を無効
にする方法。 - (5)特許請求の範囲第2項に記載した方法において、
キャッシュ無効命令が命令キャッシュの特定された内容
を無効にする方法。 - (6)特許請求の範囲第2項に記載した方法において、
キャッシュ無効命令がデータ・キャッシュの内容全体を
無効にする方法。 - (7)特許請求の範囲第2項に記載した方法において、
キャッシュ無効命令がデータ・キャッシュの特定された
内容を無効にする方法。 - (8)特許請求の範囲第2項に記載した方法において、
キャッシュ無効命令が、命令キャッシュおよびデータキ
ャッシュの両方の特定された内容を同時に無効にする方
法。 - (9)マイクロプロセッサが外部データ・バスを介して
外部メモリと連絡し、外部メモリに記憶されている情報
を修正するために、マイクロプロセッサの外部の装置が
外部データ・バスを使うようになっていて、マイクロプ
ロセッサの集積キャッシュ・メモリとマイクロプロセッ
サに付設された外部メモリの間の一貫性を保つ装置にお
いて、前記集積キャッシュ・メモリに記憶されている情
報のアドレスに対応するアドレス・タグを保持する記憶
手段と、外部装置による外部メモリへの書込みのアドレ
スを同定するために、前記外部データ・バスを監視する
手段と、書込みアドレスと集積キャッシュ・メモリに記
憶されている情報のアドレスの間の符合を検出するため
に、書込みアドレスを記憶されているアドレス・タグと
比較する手段と、前記書込みアドレスと前記集積キャッ
シュ・メモリに記憶されている情報のアドレスの間の符
合に応答して、前記集積キャッシュ・メモリに記憶され
ている情報を無効にするために、マイクロプロセッサに
対する要請を発生する手段とを有する装置。 - (10)特許請求の範囲第9項に記載した装置において
、前記外部データ・バスとは別個に、マイクロプロセッ
サに対してキャッシュ無効要請を転送するキャッシュ無
効バスを有する装置。 - (11)特許請求の範囲第10項に記載した装置におい
て、キャッシュ無効要請が、前記集積キャッシュ・メモ
リ内の無効にすべき位置のアドレスを特定する装置。 - (12)特許請求の範囲第10項に記載した装置におい
て、キャッシュ無効要請が、前記集積キャッシュ・メモ
リに記憶されている全てを無効にすべきことを特定する
装置。 - (13)特許請求の範囲第10項に記載した装置におい
て、前記集積キャッシュ・メモリが命令キャッシュおよ
び別個のデータ・キャッシュを含む装置。 - (14)特許請求の範囲第13項に記載した装置におい
て、前記キャッシュ無効要請が、前記命令キャッシュお
よび前記データ・キャッシュの両方に記憶されている全
ての情報を無効にすべきことを特定する装置。 - (15)特許請求の範囲第13項に記載した装置におい
て、前記キャッシュ無効要請が、前記命令キャッシュに
記憶されている全ての情報を無効にすべきことを特定す
る装置。 - (16)特許請求の範囲第13項に記載した装置におい
て、前記キャッシュ無効要請が、前記命令キャッシュ内
の無効にすべき位置のアドレスを特定する装置。 - (17)特許請求の範囲第13項に記載した装置におい
て、前記キャッシュ無効要請が、前記データ・キャッシ
ュに記憶されている全ての情報を無効にすべきことを特
定する装置。 - (18)特許請求の範囲第13項に記載した装置におい
て、前記キャッシュ無効要請が、前記データ・キャッシ
ュ内の無効にすベき位置のアドレスを特定する装置。 - (19)特許請求の範囲第13項に記載した装置におい
て、前記キャッシュ無効要請が、前記命令キャッシュお
よび前記データ・キャッシュの両方の中で同時に無効に
すべき位置のアドレスを特定する装置。 - (20)特許請求の範囲第13項に記載した装置におい
て、前記データ・キャッシュが複数個の組を持ち、キャ
ッシュ無効要請が無効にすべき組を特定する装置。 - (21)マイクロプロセッサが外部データ・バスを介し
て外部メモリと連絡し、外部メモリに記憶されている情
報を修正するために、マイクロプロセッサの外部にある
装置が前記外部データ・バスを使うようになつていると
き、マイクロプロセッサの集積キャッシュ・メモリとマ
イクロプロセッサの外部メモリの間の一貫性を保つ方法
において、前記集積キャッシュ・メモリに記憶されてい
る情報のアドレスに対応するアドレス・タグを保持し、
外部装置による外部メモリへの書込みのアドレスを同定
するために外部データ・バスを監視し、記憶されている
アドレス・タグと書込みアドレスを比較して、該書込み
アドレスと前記集積キャッシュ・メモリに記憶されてい
る情報のアドレスの符合を検出し、前記書込みアドレス
と前記集積キャッシュ・メモリに記憶されている情報の
アドレスの間の符合に応答して、前記集積キャッシュ・
メモリに記憶されている情報を無効にする要請をマイク
ロプロセッサに対して発生する工程を含む方法。 - (22)特許請求の範囲第21項に記載した方法におい
て、前記外部データ・バスとは別個のキャッシュ無効バ
スによって、前記キャッシュ無効要請がマイクロプロセ
ッサに送られる方法。 - (23)特許請求の範囲第22項に記載した方法におい
て、前記キャッシュ無効要請が前記集積キャッシュ・メ
モリ内の無効にすべき位置を特定する方法。 - (24)特許請求の範囲第23項に記載した方法におい
て、前記集積キャッシュ・メモリ内の無効にされる位置
を外部から監視する工程を含む方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US601587A | 1987-01-22 | 1987-01-22 | |
US006,015 | 1987-01-22 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPS63193246A true JPS63193246A (ja) | 1988-08-10 |
Family
ID=21718866
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP63011832A Pending JPS63193246A (ja) | 1987-01-22 | 1988-01-21 | 集積キャッシュ・メモリと外部メモリの間の一貫性を保つ方法と装置 |
Country Status (3)
Country | Link |
---|---|
JP (1) | JPS63193246A (ja) |
DE (1) | DE3740834A1 (ja) |
GB (1) | GB2200481B (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH02141845A (ja) * | 1988-09-16 | 1990-05-31 | Digital Equip Corp <Dec> | マルチプロセッサシステムにおいて中央処理ユニットにより主メモリからデータブロックを読み取る方法 |
JPH03216745A (ja) * | 1990-01-22 | 1991-09-24 | Toshiba Corp | キャッシュメモリ内蔵マイクロプロセッサ |
JPH03241426A (ja) * | 1990-02-20 | 1991-10-28 | Hitachi Ltd | キャッシュメモリシステム |
US5379402A (en) * | 1989-07-18 | 1995-01-03 | Fujitsu Limited | Data processing device for preventing inconsistency of data stored in main memory and cache memory |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2216308A (en) * | 1988-03-01 | 1989-10-04 | Ardent Computer Corp | Maintaining cache consistency |
KR910001548A (ko) * | 1989-06-21 | 1991-01-31 | 미다 가쓰시게 | 계층 캐쉬를 무효화화는 멀티 프로세서 시스템 |
JPH0711793B2 (ja) * | 1989-07-13 | 1995-02-08 | 株式会社東芝 | マイクロプロセッサ |
US5513335A (en) * | 1992-11-02 | 1996-04-30 | Sgs-Thomson Microelectronics, Inc. | Cache tag memory having first and second single-port arrays and a dual-port array |
DE69628079T2 (de) * | 1995-03-31 | 2004-02-26 | Sun Microsystems, Inc., Santa Clara | Mechanismus auf Systemebene zum Entwerten von Daten, die im externen Cache eines Prozessors in einem Computersystem gespeichert sind |
US6115795A (en) | 1997-08-06 | 2000-09-05 | International Business Machines Corporation | Method and apparatus for configurable multiple level cache with coherency in a multiprocessor system |
US6546462B1 (en) * | 1999-12-30 | 2003-04-08 | Intel Corporation | CLFLUSH micro-architectural implementation method and system |
GB2401227B (en) * | 1999-12-30 | 2005-03-16 | Intel Corp | Cache line flush micro-architectural implementation method and system |
EP1160662A1 (en) * | 2000-03-10 | 2001-12-05 | Texas Instruments France | Processor with pointer tracking to eliminate redundant memory fetches |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4481573A (en) * | 1980-11-17 | 1984-11-06 | Hitachi, Ltd. | Shared virtual address translation unit for a multiprocessor system |
EP0227319A3 (en) * | 1985-12-26 | 1989-11-02 | Analog Devices, Inc. | Instruction cache memory |
-
1987
- 1987-12-02 DE DE19873740834 patent/DE3740834A1/de not_active Ceased
- 1987-12-16 GB GB8729324A patent/GB2200481B/en not_active Expired - Fee Related
-
1988
- 1988-01-21 JP JP63011832A patent/JPS63193246A/ja active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH02141845A (ja) * | 1988-09-16 | 1990-05-31 | Digital Equip Corp <Dec> | マルチプロセッサシステムにおいて中央処理ユニットにより主メモリからデータブロックを読み取る方法 |
US5379402A (en) * | 1989-07-18 | 1995-01-03 | Fujitsu Limited | Data processing device for preventing inconsistency of data stored in main memory and cache memory |
JPH03216745A (ja) * | 1990-01-22 | 1991-09-24 | Toshiba Corp | キャッシュメモリ内蔵マイクロプロセッサ |
JPH03241426A (ja) * | 1990-02-20 | 1991-10-28 | Hitachi Ltd | キャッシュメモリシステム |
Also Published As
Publication number | Publication date |
---|---|
GB2200481B (en) | 1991-05-29 |
GB2200481A (en) | 1988-08-03 |
GB8729324D0 (en) | 1988-01-27 |
DE3740834A1 (de) | 1988-08-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0838762B1 (en) | A data processor having a cache memory | |
US4831520A (en) | Bus interface circuit for digital data processor | |
KR100403405B1 (ko) | 분산형버스액세스및제어조정에따라다수개의내부신호버스를공유하는다수개의회로기능요소를갖는집적회로 | |
US5249286A (en) | Selectively locking memory locations within a microprocessor's on-chip cache | |
JP3431626B2 (ja) | データ処理装置 | |
US4851991A (en) | Central processor unit for digital data processing system including write buffer management mechanism | |
US6219720B1 (en) | Core logic unit with internal register for peripheral status | |
US4831581A (en) | Central processor unit for digital data processing system including cache management mechanism | |
GB2200484A (en) | Detecting and handling memory-mapped i/o by a pipelined computer | |
US5263153A (en) | Monitoring control flow in a microprocessor | |
JPH0345407B2 (ja) | ||
JPS63193230A (ja) | 高性能マイクロプロセッサ集積回路とメモリ参照を行なう方法 | |
EP0726523A2 (en) | Method for maintaining memory coherency in a computer system having a cache | |
KR20030010727A (ko) | 변환 색인 버퍼 플러시 필터 | |
US5091845A (en) | System for controlling the storage of information in a cache memory | |
US5119484A (en) | Selections between alternate control word and current instruction generated control word for alu in respond to alu output and current instruction | |
JPS63193246A (ja) | 集積キャッシュ・メモリと外部メモリの間の一貫性を保つ方法と装置 | |
US5226170A (en) | Interface between processor and special instruction processor in digital data processing system | |
KR100322223B1 (ko) | 대기행렬및스누프테이블을갖는메모리제어기 | |
JPS63193239A (ja) | 命令順序監視装置と方法 | |
JP4490585B2 (ja) | 周辺ステータスについての内部レジスタを有するプロセッサまたはコア論理演算装置 | |
EP0726524A2 (en) | Protocol and system for performing line-fill addressing during copy-back operation | |
US5276892A (en) | Destination control logic for arithmetic and logic unit for digital data processor | |
JPH08249175A (ja) | スーパースカラ・プロセッサ装置内の非アーキテクト命令を選択的にサポートする方法及び装置 | |
EP0418220B1 (en) | Destination control logic for arithmetic and logic unit for digital data processor |