JPH01108651A - コンピュータ装置およびコンピュータ装置においてキャッシュデータアレイ内のデータの不一致を検出して修正する方法 - Google Patents

コンピュータ装置およびコンピュータ装置においてキャッシュデータアレイ内のデータの不一致を検出して修正する方法

Info

Publication number
JPH01108651A
JPH01108651A JP63247551A JP24755188A JPH01108651A JP H01108651 A JPH01108651 A JP H01108651A JP 63247551 A JP63247551 A JP 63247551A JP 24755188 A JP24755188 A JP 24755188A JP H01108651 A JPH01108651 A JP H01108651A
Authority
JP
Japan
Prior art keywords
cache
address
data
alias
write
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
Application number
JP63247551A
Other languages
English (en)
Other versions
JPH071489B2 (ja
Inventor
Loo William Van
ウイリアム・ヴアン・ルー
John Watkins
ジヨン・ワトキンス
Joseph Moran
ジヨセフ・モラン
William Shannon
ウイリアム・シヤノン
Ray Cheng
レイ・チエン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sun Microsystems Inc filed Critical Sun Microsystems Inc
Publication of JPH01108651A publication Critical patent/JPH01108651A/ja
Publication of JPH071489B2 publication Critical patent/JPH071489B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1045Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
    • G06F12/1063Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache the data cache being concurrently virtually addressed
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/653Page colouring

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

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、各ユーザーがマルチ稼動プロセスを持つとと
ができるようにするオペレーティングシステムを含む、
書戻しキャッシュを有するマルチユーザーオペレーティ
ングシステムにおいて仮想アドレッシングを用いるワー
クステーションにおけるハードウェアおよびソフトウェ
アのある改良に関するものである。これに関連して、説
明の便宜上、特定のマルチユーザー、マルチ稼動プロセ
スオペレーティングシステム、すなわチ、Unix(商
標)(ユニックス)オペレーティングシステムに関連し
て本発明を説明することにする。しかシ、本発明ユニッ
クスオペレーティングシステムに関連して使用すること
に限定されるものではなく、特許請求の範囲を、ユニッ
クスオペレーティングシステムのみに使用できる本発明
をカバーするものと解すべきでは、ない。
〔従来の技術〕
ユニックスヲヘーストスるワークステーションにおいて
は、システム素子の1つとして仮想アドレス書戻しキャ
ッシュを含むことによシシステムの性能を大幅に向上で
きる。しかし、そのようなシステムにおいて起る1つの
問題は、エイリアスアドレス、すなわち、実メモリ中の
同じ物理アドレスビット中する2つまたはそれ以上の仮
のサポートにおいてである。
1つのエイリアスアドレスを介して行われる書戻しキャ
ッシュへのどのようなデータ更新も、2つのエイリアス
アドレスが一致しないから、エイリアスアドレスへのキ
ャッシュアクセスを介さないことが見られない。
更に詳しくいえば、仮想アドレッシングによシエイリア
シング、すなわち、多重仮想アドレスを同シ物理アドレ
スへマツピンクする可能性を達成できる。ページマツピ
ングの限定なしに直接マツプされる仮想アドレス書戻し
キャッシュがシステムにおいて用いられるとすると、ど
のような2つの任意仮想アドレスも任意の2つの任意キ
ャッシュ場所を占めることができ、同じ物理アドレスへ
依然としてマツプする。キャッシュブロックが修正され
ると、一般に1データの一貫性を保つために任意のキャ
ッシュ場所の間でチエツクすることが可能である。1つ
のキャッシュ場所における変化が別のキャッシュ場所に
おいて見えない時にデータの一貫性が失われることにな
る。最終的には、主メモリ内の共通の物理アドレスにお
けるデータは、CPUまたはI10装置によシ行われて
いくつかのキャッシュ場所に入れられた修正の部分だけ
を含む。
〔発明の概要〕
本発明においては、上記問題は、エイリアスを取扱うた
めに2種類の戦略を組合わせることによシ解決される。
第1の戦略は、エイリアスアドレスの下位アトレスピッ
トが同一であって、キャッシュの寸法を(最小として)
モジュロするようにエイリアスアドレスを作成すること
である。この戦略は、核によシ、または全面的に核内で
発生されたエイリアスアドレスを用りる全でのユーザー
プログラムに適用できる。この戦略に対するそれらのエ
イリアスアドレスは、核に対する修正によ〕発生され、
ユーザープログラムには見ることができない。そのよう
にして発生されたエイリアスアドレスは、直接マツプさ
れた(一方向にセットされた関連)キャッシュ内、また
は多方向にセットされた関連キャッシュ内の同じキャッ
シュセット内、の同じキャッシュブロックヘマツプする
。そうすると、とのキャツクユブロック(マたはキャッ
シュセット)内でのデータの一貫性を保証するために、
エイリアスハードウェア検出ロジックが用いられる。
第2の戦略は、下位のアドレスビット中で一致させるこ
とができない、ユーザープログラムではなく、オペレー
ティングシステム内のそれらのエイリアスアドレスをカ
バーする。それらは、仮想アドレッシングを用いるワー
クステーションによシ採用されるメモリ管理ユニット(
MMU )内の「キャッシュしない」ページとしてそれ
のページを割当てることにより取扱われる。
〔実施例〕
以下、図面を参照して本発明の詳細な説明する。
第1図は、本発明が実現される仮想アドレスを用いる典
型的なワークステーションの機能的なブロック図である
とくに、そのワークステーションはマイクロプロセッサ
すなわち中央処理装置(CPU)11と、キャッシュデ
ータアレイ19と、キャッシュタグアレイ23と、キャ
ツシュヒツト比較器25と、メモリ管理ユニット(MM
U)27と、主メモリ31と、書戻Lバッファ39と、
ワークステーション制御ロジック40とを含む。そのワ
ークステーションは、希望によって社、コンテキストI
Dレジスタ32と、キャッシュフラッシュロジック33
と、直接仮想メモリアクセス(DVMA )ロジック3
5と、タルチプレクサ3Tとを含むこともできる。
上記の素子に加えて、本発明を実現するために、マルチ
プレクサ45と、エイリアス検出ロジック4Tと、エイ
リアス検出制御ロジック49と、実アドレスレジスタ5
1とを更に必要とする。上記素子は、仮想アドレス書戻
しキャッシュを利用する従来の技術に固有の諸問題なし
にエイリアスアドレスをサポートする。
各前記素子について、オペレーティングシステムの核に
ついて行わなければならない変更を含めて、かつ、本発
明に独特の部品にとくに重点をおいて、説明することに
する。
ワークステーションの必要な素子についての説!− CPU11は、メモリおよびおそらくは他の装置内の命
令とデータを(アドレスの翻訳に続いて)アドレスする
ためにバスサイクルを生ずる。CPUアドレス自体は、
仮想コンテキスト内の命令またはデータのバイトを独特
に識別する、寸法が(4)ビットの仮想アドレスである
。バスサイクルは、バスサイクルを独特に識別する1つ
または複数の制御フィールドによシ特徴づけることがで
きる。とくに、1タイプ」フィールドはもちろん、読出
し/書込み指示子が求められる。そのフィールドは、バ
スサイクルのためのアクセス優先権(すなわち、「スー
パーバイザ」または「ユーザー」のアクセス優先権)は
もちろん、メモリの命令とデータのアドレス空間を識別
する。仮想アドレッシングを有シ、マルチユーザーオペ
レーティングシステムをサポートできるワークステーシ
ョンにおいて利用できるCPU1i:MC68020で
ある。
書戻しキャッシュを有する第1図に示す仮想アドレスワ
ークステーションにおける別の必要な素子ハ、仮想アド
レスキャッシュデータアレイ19である。これは28個
のデータブロックのプレイとして構成される。各データ
ブロックは2′″個のバイトを含む。各ブロック内の2
″1バイトは下位のM個のアドレスビットによシ独特に
識別される。
2H個の各ブロックは、次の下位のN個のアドレスビッ
トによシアレイ素子として独特にアドレスされる。仮想
アドレスキャッシュとして、キャッシュ内の(N+M)
ビットのアドレッシングバイトは(A+C)ビットの仮
想アドレス空間からのものである。(下記のように、(
C)ビットは選択によシ用いられるコンテキストIDレ
ジスタ32からのコンテキストビットである。)(N+
M)ビットは、翻訳されないψ)個のページビットに、
仮想ページアドレスを定める(A+C−P)ビットから
の付加された仮想ビットである。
ここで説明する仮想アドレスキャッシュデータアレイ1
9は「直接マツプされる」キャッシュ、まタハ「一方向
セット連想」キャッシュである。
このキャッシュ構成を本発明の説明のために用いるが、
それは発明の範囲を限定することを意味するものではか
く、多方向セット連想キャッシュに関連して使用するこ
ともできる。
第1図に示されている別の要求される素子は、キャッシ
ュデータアレイ19内の各データブロックごとに1つの
タグアレイ素子を有する仮想アドレスキャッシュタグア
レイ23である。したがって、タグアレイは2′個の素
子を含む。第3図に示すように、各素子は有効ビット(
ロ)と、修正されるビット(財)と、2つの保護ビット
(ト)と、仮想アドレスフィールド(VA、希望によ、
9cx)とを有する。保護ビットψ)はスーパーバイザ
保護ビット(Supvsr Prot)と書込み許可ビ
ットで構成される。
仮想アドレスフィールドの内容は、キャッシュタグとデ
ータアレイをアドレスするために用いられる下位アドレ
スビットとともに、(A十〇)ピントの全仮想アドレス
空間を独特に識別する。すなわち、タグ仮想アドレスフ
ィールドは(A+C)−(M十N))個の仮想アドレス
ビットを含まなければならない。
キャッシュ「ヒツト」ロジック25は、仮想アクセスア
ドレスを仮想アドレスキャッシュタグアドレスフィール
ドの内容と比較する。アクセスア    ・ドレス内で
は、下位のMビットがブロック内のバイトをアドレスし
、次の下位のNビットがキャッシュ内のブロックをアド
レスし、残シの((A+C)−(M+N))ビットが、
キャッシュ「ヒツト」サイクルの一部として、タグ仮想
アドレスフイールドと比較する。
キャッシュ「ヒツト」ロジックは、オペレーティングシ
ステムを共用するシステムに対して、ユーザー命令とデ
ータおよびスーパーバイザ命令とデータに対するアクセ
スを識別せねばならない。
それらの要求を満す「ヒツト」の定義が第2a図に示さ
れている。その図には比較器20と、アンドゲート22
と、オアゲート24と、アンドゲート26とが示されて
いる。
仮想空間内のアドレスを物理アドレスへ翻訳するMMO
27は別の要求される素子である。MMU27は寸法が
(2勺バイトのページを基にして構成される。それらの
ページは寸法df(2’)バイトのセグメントとしてま
とめられる。ページ内でのアドレッシングにはψ)ビッ
トを必要とする。それらのψ)ビットは翻訳を要しない
物理アドレスビットである。MMU 27の役割は仮想
ページアドレスピッ)((A+C−P)または(A−P
))を(MM)ビットの物理ページアドレスへ翻訳する
ことである。そうすると、複合物理アドレスは(MM)
ページアドレスビットでおる。この場合、ページ当)の
ビット数はψ)ビットである。
MMU27は保護チエツクのため、すなわち、アクセス
パスサイクルの優先権をページに割当てられた保護と比
較するための場所である。この点を示すために、ページ
へ割当てることができる2種類の保護、すなわち、スー
パーバイザ/ユーザーアクセス識別子と書込み保護/書
込み許可識別子がある。本発明はそのような種類の保護
に限定されるものではないが、このページ保護が与えら
れると、「ユーザー」優先権パスサイクルが「スーツく
−バイザ」保護を有するページをアクセスするか、「書
込み」パスサイクルが「書込み保護」指示を有するペー
ジをアクセスするならば、「保護の侵害」が行われる結
果となることがある。
MMUを介するMMU保護チエツクの適用が第2C図に
示されている。この図にはインバータ28と、アンドゲ
ート30m、30bと、オアゲート34と、アンドゲー
ト36とが示されている。また、仮想アドレス書戻しキ
ャッシュで保護チエツクの概念を、MMUをアクセスし
ないキャッシュのみCPUサイクルまで拡張できる。そ
のようなキャッシュのみ保護ロジックが第2b図に示さ
れている。
この図にはインバータ42と、アンドゲート44&。
44bと、オアゲート46と、アンドゲート48とが示
されている。
また、第1図には、物理アドレス空間内でアドレスでき
る主メモリ31も示されている。主メモリアクセスの制
御はワークステーション制御ロジック40を介して行わ
れる。
書戻シバッファ39は、キャッシュデータアレイ19か
らロードされたキャッシュデータの1ブロツクを含むレ
ジスタである。既存のキャッシュブロックを移動させる
時には書込みバッファ39へ常にロードされる。これは
キャッシュブロックを新しい内容で更新する必要で行わ
せることができ、またはブロックをフラッシュしなけれ
ばならないために行うことができる。いずれの場合にも
、書戻しキャッシュにおいては、既存の中ヤッシュブロ
ックに対するキャッシュタグの状態は、とのブロックを
メモリへ書戻すべきかどうかを決定する。下記のように
、ブロックが有効で、修正されたことをタグが示したと
すると、キャッシュブロックが移動させられる時に、ブ
ロック内容をメモリ31へ書戻さなければならない。そ
のデータがメモリへ書込まれる前に書戻しバッファ39
がそのデータを一時的に保持する。
ワークステーション制御ロジック40は、第1図に示さ
れているワークステーション素子の全体の動作を制御す
る。好適々実施例においては、制御ロジック40はいく
つかの状態マシンとして構成される。それらの状態マシ
ンは第4図および第6〜8図に示されている。それらの
状態マシンについては、エイリアス検出制御ロジック4
9の説明とともに以下に詳しく説明することにする。そ
のエイリアス検出制御ロジック49も、好適な実施例に
おいては、ワークステーション制御ロジックに統合でき
る。
キス)−またけ仮想プロセスを識別する別の仮想アドレ
スビットを含む選択的な外部アドレスレジスタである。
Cビットを含むそのレジスタは全部で(2〆X−C)ア
クティブユーザープロセスを識別する。全部の仮想アド
レス空間の寸法は2xx (A+C)である。
2HH(A十〇)のこの仮想アドレス空間における重要
な部品は、オペレーティングシステムによシ占められる
仮想アドレススペースでるる。オペレーティングシステ
ムは全てのユーザープロセスに共通であるから、アクテ
ィブな全てのユーザープロセスにわたって共通のアドレ
ス空間に割当てられる。すなわち、(C)コンテキスト
ビットは、オペレーティングシステム内のページのアド
レスを修飾するのに何の意味も持たない。それよシも、
アクティブな各コンテキストに対して、オペレーティン
グシステムは、仮想アドレス空間の(2X−KA)バイ
トのトップにおける共通の排他的領域内にあると仮定さ
れる。ユーザーページはこの領域内に含まれないことが
ある。したがって、2種類のユーザープロセスに対する
オペレーティングシステムページアドレスは同一でめ夛
、2つのプロセスに対するプロセスは異なる。オペレー
ティングシステム内の全てのページは「スーパーバイザ
」保護を有するものとしてマークされる。
本発明を利用できる種類のワークステーションは、仮想
アドレスを再び割当てる時に、選択されたブロックを仮
想キャッシュから除去する丸めにキャッシュフラッシュ
ロジック33を含むとともできる。
この明細書においては、キャッシュフラッシュロジック
33は、仮想アドレス、書戻しキャッシュシステムにお
ける部品としての役割を示すことだけを説明する。ある
範囲のアドレス(たとえば、仮想ページアドレス)を再
び割当てるものとすると、その範囲内からのアドレスの
全ての例を、新しいアドレス割当てを行うことができる
よう釦なる前に、キャッシュから除去、または「フラッ
シュ」せねばならない。キャッシュブロックのタグ内の
有効ビットを無効にし、ブロックが修正されたとすれば
、そのブロックをメモリへ書RfことKよシキャッシュ
ブロックが「フラッシュされる」。
バスサイクルのソースとしてのCPU11に加えて、ワ
ークステーションは、DVMAロジック35のような、
1つまたは複数の外部人力/出力(Ilo)装置を含む
ことができる。それらの外部I10装置はバスサイクル
を生ずる仁とができる。それらのバスサイクルは、仮想
アドレス空間の1つまたは複数の「種類」をアクセスす
るのにCPUと並列に行う。CPU11またはDVMA
ロジック35からの仮想アドレスは、コンテキストID
レジスタ32内のアドレスとともに、アクセスアドレス
と呼ばれる。
別の選択的な素子はデータバスバッファ3Tである。好
適力実施例においては、そのデータバスバッファは、3
2ビツトバスと64ビツトバスの間のデータの流れを制
御するために2つのバッファとして実現される。それら
のバッファは、CPUデータバスが32ビツトで、キャ
ッシュデータアレイデータバスが64ビツトの時に必要
とされる。
本発明のワークステーションに独特の素子についての説
明 上記のように、本発明においては、エイリアスアドレス
から生ずるデータ一貫性の問題を解決するために、2種
類の戦略が利用される。両方の戦略は、データの一貫性
を確保するために、オペレーティングシステムと特殊な
キャツシュノ・−ドウエアと相互作用することを必要と
する。
第1の戦略は、同じデータへマップする全てのエイリア
スアドレスの下位アドレスビットを一致させて、データ
をキャッシュするものとすると、それらのアドレスが同
じキャッシュ場所を用いるようにしなければならないこ
とを要する。本発明は、キャッシュを「ミスする」メモ
リアクセスにおけるエイリアスアドレスを検出し、全て
のエイリアスアドレスが同じキャッシュ場所内の一貫す
るデータを指すようにキャッシュデータ更新を制御する
ために、実アドレス比較器であるエイリアス検出ロジッ
ク4Tを利用する。
この第1の戦略を実現する核アドレスオペレージョンモ
ジュールは、エイリアスアドレスの下位アドレスビット
を一致させるから、同じキャッシュ場所を使用すること
をエイリアスアドレスは保証される。キャッシュの寸法
が2°のデータブロックであるとすると(各データブロ
ックは2″バイト)、エイリアスアドレスの少くとも下
位(N十M)ピントを一致させねばならない。これは同
じプロセス内のエイリアスアドレスと、プロセス間のエ
イリアスアドレスにも適用される。この要求を満すIl
lは、直接マツプされるキャッシュにおいては、エイリ
アスアドレスは同じキャッシュブロックヘマツプし、多
方向セット連想キャッシュにおいてはエイリアスアドレ
スは同じキャツシュセットヘマツプする。第2の戦略は
、MMU27中の各ページについて定められる「キャッ
シュしない」ビットを使用することによシ、データがキ
ャッシュされることを阻止する。いいかえると、MMU
27中の各ページ記述子は「キャッシュしない」ビット
を有する。そのビットは、そのページからの命令とデー
タをキャッシュに書込むことができるかどうかを制御す
る。この制御ビットがあるページについてセットされる
ものきすると、このページに対する全てのデータアクセ
スがメモリに対して、またはメモリから、直接に行われ
、キャッシュをバイパスする。キャッシュのバイパスに
おいては、仮想キャッシュデータの一貫性の問題が避け
られる。
エイリアスアドレッシングが可能であるから、1つのM
MUページェントリイにおいであるページが「キャッシ
ュしない」とマークされるものとすると、全てのエイリ
アスページェントリイにおいて「キャッシュしないJと
マークせねばならない。
さもないとデータの一貫性は保証されない。
ユーザープロセスのためのエイリアスアドレス発生は核
を介して制御されるから、エイリアスアドレスの間でデ
ータの一貫性を確保するために、全てのユーザープロセ
スは第1の戦略を利用する。しかし、オペレーティング
システムに対するあるアドレスは、第1の戦略のアドレ
ッシング要求を滴す丸めに変更することはでき表い。そ
の代夛に、それらのシステムエイリアスアドレスは、第
2の戦略、すなわち、「キャッシュしない」ページへの
割当てによ)取扱われる。
以下に、2つの戦略の組合わせを用いて、直接マツプさ
れる仮想アドレス書戻しキャッシュにおけるデータの一
貫性を生ずるために必要とされるものについて機能的に
説明する。
CPU11またはDVMA35のメモリアクセスサイク
ルがキャッシュを「ミスした」とすると、アクセス仮想
アドレスがMMUによシ翻訳される。
MMUの翻訳は、アクセスされるページが「キャッシュ
しない」ページかどうか、アクセスが保護の侵害を有す
るかどうかを決定する。アクセスが有効で、キャッシュ
できるページに対するものであルトスると、アクセスア
ドレスに対応するキャッシュブロックでキャッシュが更
新される。
アクセスアドレスに対応する場所におけるキャッシュの
現在の内容を調べて可能なエイリアスアドレスを検出す
る。現在のキャッシュブロックが有効で、修正されたと
すると、キャッシュブロックの翻訳されるアドレスを翻
訳されるアクセスアドレスと比較して有効なデータのソ
ースを判定してキャッシュを更新する。
エイリアス検出ロジック4Tによシ行われる実アドレス
比較は、翻訳されたバスサイクルアクセスを実アドレス
レジスタ51から、および翻訳されるキャッシュアドレ
スをMMU27から、入力としてとる。
現在のキャッシュブロックが有効であシ、翻訳されたア
ドレスが比較されるとすると、アクセスアドレスとキャ
ッシュブロックアドレスはエイリアスである。キャッシ
ュブロックが修正されたとすると、現在のキャッシュデ
ータは最も現在のデータでアシ、このアドレスにおける
主メモリデータは古い。
翻訳されたアドレスは比較するが、キャッシュブロック
が修正されないとすると、古いキャッシュデータとメモ
リデータは同一でアシ、いずれもキャッシュ更新のため
のソースとして使用できる。
有効なブロックデータのソースがひとたび決定されると
、アクセスサイクルを終らせることができる。読出しサ
イクルにおいては、キャッシュ更新に続いて、バスサイ
クルはデータを、実現に応じてソースまたはキャッシュ
から直接戻す。書込みサイクルにおいては、アクセスデ
ータをキャッシュへ書込むことができる。キャッシュ寸
法の更新とキャッシュデータの整列は実現に依存する。
データの一貫性を保証するために1ページへのどのよう
な書込みも、そのページへの全ての関係(読出しまたは
書込み)はこの制約を固守する。
エイリアス検出ロジック47を含むアドレス路の好適な
実施例を第3図に示す。第3図に示すように、アドレス
路は、仮想アドレス書戻しキャッシュにおけるアドレス
制御をサポートする基本素子を含む。エイリアスアドレ
スサポートのために1仮想アドレス(CXおよびvA)
とキャッシュブロック有効ビット(ロ)のための仮想ア
ドレスレジスタ52 (VAR)と、仮想アドレスと仮
想アドレスレジスタを多重化するマルチプレクサ45と
、実アドレスレジスタ51と、エイリアス検出ロジック
47と、アンドゲート53 (VARからの有効ビット
とエイリアス検出ロジック出力を入力として有する)と
、実アドレス一致が検出された時にセットされるアドレ
ス一致クリップフロップ55も必要とされる。
キャッシュ19から主メモリ31へのデータ路は2つの
64ビットバス56.58を介する。CPUデータ路6
0は32ビツトであって、D (31:O)として示さ
れる。読出しバスサイクルでは、2つの32ビツトバツ
フア37のうちいずれが64ビツトキヤツシユデータバ
ス56からのデータを32ピツ)’CPUデータバス6
0へ置くことを可能にするかをキャッシュアドレスビッ
トA(2)が選択する。
エイリアス検出ロジック49は読出しサイクル中ヤツシ
ュミス(キャッシュまたはメモリ)におけるデータのソ
ースを制御し、書込みサイクルキャッシュミスでキャッ
シュがメモリデータで更新されるかどうかを制御する(
第6図、第7図のデータ状態マシン)。
第3図と第5図においては、図の不必要な混乱を避ける
ために、全ての制御線を示しているわけではない。しか
し、本発明を適切に動作させるために必要な制御線は、
第4図および第6図乃至第8図に示す状態マシンの流れ
図から確かめることができる。
流れ図においては下記の省略を用いている。
MUX−マルチプレクサ45 8ej−選択 VA  −仮想アドレス RA  −実アドレス OE −出力イネイブル Ack −確認応答 CaCh@H1t ?−キャッシュ「ヒツト」ロジック
25がキャツシュヒツトを検出したか(第2a図) Cache Protect Viotation7−
 制御ロジック40がキャッシュ保護侵害を検出したが
(第2b図) M@mory Bugy ’/−メモリビジーがアサー
トされたか MMU Protect Viot?−制御ロジック4
oがMMU保護侵害を検出するか(第2c図)RAR−
実アドレスレジスタ51 CLK−クロック Adr  −アドレス M@n Adr 5trobe−メモリ31アトvxス
)−ロープ VAR−仮想アドレスレジスタ M@m Adr Ack 7−メモリアドレス確認応答
がメモリ31によシアサートされたが 廁mData 5trobe O?−メモリデータスト
ローブOがアサートされたか M@!2+ Date Ack O?−メモリデータ確
昭応答0がアサートされたか MemData  5trobe l 7−メモリデー
lストローブ1がアサートされたか M@n Data Aek 1 ? −fi モリデー
/確認応答1がアサートされたか C1k Write Back Buffer−クロッ
ク書戻しバッファ39 26一 R@1tAdr Match ?−実アドVX一致が検
出されたか(フリップ70ツブ55) Don’t Cateh Page ?−制制御クシツ
ク40MMU27からキャッシュしないページを検出し
たか CPU R・畠d CyeL・?  −CPUjl が
読出しサイクルにおるか (jk Date Reg−クロックデータレジスタ6
1valld and Modified Write
 Back Data ’/−制御制御フシツク40効
ビット(ロ)と修正されたピント(ロ)を検出したか %Vrite to Don’t CaChs Pag
e−制御ロジック40がキャッシュしないページへのC
PU書込みを検出したか 5tart No Caehe Write ? −制
御ロジック40がキャッシュ書込み無しスタートをアサ
ートしたか 5tart Write 13ack Cycte 7
−制御ロジック40が書戻しサイクルスタートをアサー
トしたか !9図乃至gli図に示すタイミング図にお込ても類似
の省略が用いられる。
第4a図と第4b図に示すアドレス状態マシンは、キャ
ッシュのアドレス取扱い部に関連する制御のめるものを
定める。実アドレス一致フリップフロップ55のクロッ
キングによシ本発明は統合される(状態(Q))。状]
!I (、)中に1メモリ31からの全てのブロックデ
ータの成功した転送に続いて、状Il!(、)の間にキ
ャッシュタグ23が有効なものとして書込まれる。
第6a図と第6b図および第7a図乃至第7d図に示す
データ状態マシンは、キャッシュのデータ転送部分に関
連するある制御を定める。図示のように、状態([r)
の後で、キャッシュしないページへの書込みについての
テストが行われる。メモリへのこの書込みの取扱いが、
データ状態マシンにおける次の状態(t、dw)の経路
に示されている。
状態(、)に続いて、キャッシュし々いページアクセス
(この時には読出しデータに対して)Kついてテストが
行われる。キャッシュしない読出しの制御は、状態(q
、nr)および(u、nr)tで、非実アドレス一致路
をとる。ここで、キャッシュしないページについてのテ
ストが状態(、、、r)と(W、l1F)におけるキャ
ッシュ更新を禁示する。
第8図に示す書戻し状態マシンはメモリへの書戻しサイ
クルの制御を定める。書戻し制御とデータ路はキャッシ
ュアクセス制御およびデータ路とは独立しているから、
そのサイクルはCPUキャッシュアクセスと並列に実行
できる。下記のように、「MsmorF BusyJ信
号は、前の書戻しサイクルが終るまでアドレスおよびデ
ータ状態マシンを待機させる。
第9&図に示す書込みキャッシュミスタイミング図は、
キャッシュをミスするメモリ内のキャッシュできるペー
ジへのCPU書込みバスサイクルの全体のタイミングを
定める。キャツシュヒツトと保護チエツクがこの図のサ
イクル(C)で起る。
ミス取扱いシーケンスの部分が、サイクル(りと(ハ)
における、書戻しバッファ39へ置きかえられる現在の
キャッシュブロックのローディングを含む。現在のキャ
ッシュブロックのための翻訳されたアドレスもサイクル
(0)において実アドレスレジスタ51ヘロードされる
。サイクル(0)においては実アドレス一致ラッチ(フ
リップフロップ55)もクロックされる。現在のキャッ
シュブロックが有効で、前のCPU(またはDVMA 
)書込みサイクルから修正されたとすると、第11b図
のメモリデータバスタイミング図と第8図の書戻し状態
マシンに示されているように1そのキャッシュブロック
は書戻しバスサイクルにおいてメモリ31へ書込まれる
アクティブ実アドレス一致ラッチ(フリップ70ツブ5
5)はエイリアスアドレス一致を意味する。エイリアス
一致がなければ、CPU書込みデータが、ブロック読出
しメモリパスサイクルの第1のデータ転送においてメモ
リから戻されたブロックデータと一緒にされる。サイク
ル(q)〜(u)の間tc  CPU書込み出力イネイ
ブル制御バッファ37は、CPUによシ書込むべきバイ
トのみに対してアクティブでアシ、データレジスタ出力
イネイブル制御データレジスタ61は他の全てのパイH
C対してアクティブである。第2のデータ転送中、サイ
クル←)は全てのバイトに対するデータレジスタ出力イ
ネイブルがアクティブである。
エイリアス一致が存在するものとすると、CPUデータ
は状態(−)においてデータキャッシュへ書込まれ、メ
モリ31からのデータは無視される。
第9b図に示されているキャッシュしないページへの書
込みは、キャッシュしないページへのアクセスに対する
メモリへのCPU書込みバスサイクルの全体のタイミン
グを定める。サイクル(、)で起るキャツシュヒツトは
ミス(ヒツトなし)を常に指示する。
キャッシュしないページへの書込みのケースは、キャッ
シュがCPUまたはメモリデータによ)更新されない点
が、キャッシュできるページについてのキャッシュミス
のケースとは異なる。メモリを直接更新するために、実
現は特殊なメモリバスサイクルを用いる。そのメモリバ
スサイクルはキャッシュしないページへの書込みサイク
ル(第11c図)と呼ばれる。この場合には実アドレス
一致ランチは意味を持たないことに注目され念い。
第10a図に示されている読出しキャッシュミスタイミ
ング図は、キャッシュをミスするメモリ内のキャッシュ
可能なページへのCPU読出しバスサイクルの全体のタ
イミングを定める。キャツシュヒツトおよび保護チエツ
クは、この図ではサイクル(C)で起る。
ミス取扱いシーケンスの一部が、サイクル(りと←)に
おいて、書戻しバッファ39へ置きがえられる現在のキ
ャッシュブロックのローディングを含む。現在のキャッ
シュブロックに対する翻訳されたアドレスも実アドレス
レジスフ51ヘロードされる(サイクル(0))。サイ
クル(、)においては実アドレス一致ラッチ(フリップ
フロップ55)もクロックされる。現在のキャッシュブ
ロックが有効で、前のCPU (またはDVMA)書込
みサイクルから修正されたとすると、第11b図のメモ
リデータバスタイミングと第8図の書戻し状態マシンニ
示されているように、そのキャッシュブロックは書戻し
サイクルでメモリ31へ書戻される。
アクティブ実アドレス一致ラッチ(フリップフロップ5
5)はエイリアスアドレス一致を意味する。エイリアス
アドレス一致がないとすると、状態(q)〜(u)にお
いてアクティブである制御信号「CPU読出し出力イネ
イブル」によシイネイプルされるバッファ37を介して
データをCPUヘバイパスすることと、状態(−)にお
いてキャッシュを更新することを同時に行うことによシ
、データはCPUへ読込まれる。メモリは、ブロック読
出しメモリバスサイクルの初めの64ビツト転送と、次
の64ビツト転送において「ミスしたデータ」を常に戻
すように構成される。CPU読出しバスサイクルデータ
が戻された後で、メモリからの第2のデータ転送でキャ
ッシュが更新されている間にCPUは内部サイクルを実
行できる。
エイリアスアドレス一致が存在したとすると、データは
キャッシュ19からCPU11へ直接読出され、メモリ
31からのデータは無視される。
第10b図に示すキャッシュしないページタイミングか
らの読出しけ、キャッシュしないページへのアクセスの
ためのメモリ忙対するCPU読出しバスサイクルの全体
のタイミングを定める。状態(、)で起るキャツシュヒ
ツトはミス(ヒツトなし)を常に指示する。
キャッシュしないページからの読出しのケースは、キャ
ッシュがメモリデータで更新されない点が、キャッシュ
できるページからの読出しに対するキャッシュミスのケ
ースとは異なる。実現は、キャッシュミスのケースと同
じブロック読出しメモリバスサイクルを用いる(下のメ
モリデータバスタイミング参照)。実アドレス一致ラッ
チ(フリップフロップ55)はこのケースに対しては何
の意味も持たない。
第111図乃至第11c図に示すメモリデータバスタイ
ミングはブロック読出しサイクルと、書戻しサイクルと
、キャッシュしないページへの書込みパスサイクルとの
各タイミングをそれぞれ示すものである。キャッシュブ
ロックの寸法ハエ28ビツトであるから、各キャッシュ
ブロック更新ハ2回のデータ転送を要する。前記のよう
に、CP[Jllによりアドレスされるデータを含む6
4ビツトは、ブロック読出しパスサイクルの初めの転送
で常に戻される。[Memory Bu*yJ制御信号
は、前の書Mt、サイクルを終ることができるまで次の
キャッシュミスサイクルのスタートを禁止するために用
いられて埴る関アクティブである。
キャッシュしないページパスサイクルへの?込みにおい
ては、サイクルのアドレス転送段階中に送られた8ビツ
トバイトマークフイールドが、データの8バイトのうち
、データ段階中に、どれがメモリ31・において更新さ
れるかを定める。
以上説明したハードウェアに加えて、エイリアスアドレ
ッシングをサポートするために、下記の2つの基本的な
やシ方でオペレーティングシステムの核を修正せねばな
らない。
1)ユーザーエイリアスアドレスを発生するオペレーテ
ィングシステムユーティリティは、エイリアスアドレス
の下位(N十M)アドレスビットが、最少限、一致せね
ばならないことを求める規則に合致することを保護する
ために修正せねばならない。
2)下位(N十M)ビットの一致を求める規則に合致さ
せることができないオペレーティングシステム内のエイ
リアスアドレスの例を、「キャッシュしない」ページへ
割当てねばならない。
【図面の簡単な説明】
第1図は書戻しキャッシュを有する仮想アドレスを利用
するワークステーションの主な部品を示すブロック図、
第2a図はキャッシュ「ヒツト」ロジックの略図、第2
b図はキャッシュ保護の侵害を検出する回路の概略ブロ
ック図、第2c図はMMU保護の侵害を検出する回路の
概略ブロック図、第3図は本発明のエイリアス検出ロジ
ックにょシ利用されるアドレス路を示す詳細なブロック
図、第4a図および4b図は仮想アドレス書戻しキャッ
シュのアドレッシングに関連するある制御の状態マシン
実現の流れ図、第5図は本発明のエイリアス検出ロジッ
クによ)利用されるデータ路を示す詳細なブロック図、
第61図と6b図は仮想アドレス書戻しキャッシュとの
間のデータ転送に関連するある制御の状態マシン実現の
流れ図(状態偵)〜(o))、第7&図は実アドレス一
致が存在する時のデータ路を実現するための状態マシン
の流れ図(状態(q)〜(u) ) 、第7b図はCP
U書込みバスサイクル中に実アドレス一致が存在しない
時のデータ路を実現するための状態マシンの流れ図(状
態(q)〜Q))、第7C図はCPO読出しパスサイク
ル中に実アドレス一致が存在し力い時のデータ路を実現
するための状態マシンの流れ図(状態(q)〜(y))
、374図はMMUがキャッシュページをしない時にC
PU書込みバスサイクル中のデータ路を実現するための
状態マシンの流れ図、第8図はメモリへの書戻しバスサ
イクルを制御する状態マシン実現の流れ図、第91図は
MMUがキャッシュできるページを示す時にCPU書込
みバスサイクルのための最良のケースに対するタイミン
グ図、第9b図はMMUがキャッシュしないページを示
す時にCPU書込みバスサイクルの最良のケースに対す
るタイミング図、第10&図はMMUがキャッシュでき
るペー ジを示f時にC’PU書込みバスサイクルのた
めの最良のケースに対するタイミング図、第10b図は
MMUがキャッシュしないページを示す時にCPU書込
みバスサイクルの最良のケース釦対するタイミング図、
第11a図はブロック読出しサイクルを実現するメモリ
バスサイクルのタイミング図、第11b図は書戻しサイ
クルを実現するメモリパスサイクルのタイミング図、第
1ie図はキャッシュしないページへの書込みを実行す
るメモリバスサイクルのタイミング図である。 11・・・・中央処理装置、19・・・・キャンシュデ
ータアレイ、23−−・・キャッシュタグアレイ、25
・・1・キャッシュヒット比較器、27・−・・メモリ
管理ユニット(MMU)、31+1−・・主メモリ、3
2・・−・コンテキスト識別レジスタ、33・拳−・キ
ャッシュフラッシュロジック、35@−・・直接仮想メ
モリアクセス(DVMA)0シツク、37.45  m
mmo−qルチプレクサ、39−−−−書戻t、バッフ
ァ、4o・・・拳ワークステーションfIIIJIil
lロジック、47゜49・・・・エイリアス検出制御ロ
ジック、51・・・・実アドレスレジスタ、52,54
・・・・仮Mアドレスレジスタ、60・・・・比較器、
61・拳Φ・クロックデータレジスタ。 特許出願人 サン・マイクロシステムズ・インコーホレ
ーテッド 代理人山 川 政 樹(#1か2名)

Claims (1)

  1. 【特許請求の範囲】 キャッシュタグアレイへ結合される中央処理装置と、キ
    ャッシュデータアレイと、書戻しバッファと、メモリ管
    理ユニットと、実アドレスレジスタと、物理アドレスを
    有する主メモリと、キャッシュヒット検出器と、ワーク
    ステーション制御ロジックとを含み、仮想アドレス書戻
    しキャッシュを利用するオペレーティングシステムを有
    するワークステーションにおいて、 a)オペレーティングシステムのみによつて用いられる
    物理アドレスへマップする所定のエイリアスアドレスの
    セット以外の、前記主メモリ内の同じ物理アドレスへマ
    ップする全てのエイリアスアドレスの下位ビットを一致
    させることにより前記キャッシュデータアレイ中の同じ
    場所を用いる第1の手段と、 b)オペレーティングシステムのみによって用いられる
    物理アドレスへマップする前記所定のエイリアスアドレ
    スのセットのページがページをキャッシュするな、とマ
    ークされるようにする第2の手段と、 を備えることを特徴とするワークステーション。
JP63247551A 1987-10-02 1988-10-03 コンピュータ装置およびコンピュータ装置においてキャッシュデータアレイ内のデータの不一致を検出して修正する方法 Expired - Fee Related JPH071489B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10463587A 1987-10-02 1987-10-02
US104.635 1987-10-02

Publications (2)

Publication Number Publication Date
JPH01108651A true JPH01108651A (ja) 1989-04-25
JPH071489B2 JPH071489B2 (ja) 1995-01-11

Family

ID=22301527

Family Applications (1)

Application Number Title Priority Date Filing Date
JP63247551A Expired - Fee Related JPH071489B2 (ja) 1987-10-02 1988-10-03 コンピュータ装置およびコンピュータ装置においてキャッシュデータアレイ内のデータの不一致を検出して修正する方法

Country Status (7)

Country Link
JP (1) JPH071489B2 (ja)
AU (1) AU609519B2 (ja)
CA (1) CA1301354C (ja)
DE (1) DE3832758C2 (ja)
FR (1) FR2621408A1 (ja)
GB (1) GB2210479B (ja)
HK (1) HK95493A (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5276798A (en) * 1990-09-14 1994-01-04 Hughes Aircraft Company Multifunction high performance graphics rendering processor
US5813046A (en) * 1993-11-09 1998-09-22 GMD--Forschungszentrum Informationstechnik GmbH Virtually indexable cache memory supporting synonyms
GB2293670A (en) * 1994-08-31 1996-04-03 Hewlett Packard Co Instruction cache
US6189074B1 (en) 1997-03-19 2001-02-13 Advanced Micro Devices, Inc. Mechanism for storing system level attributes in a translation lookaside buffer
US6446189B1 (en) 1999-06-01 2002-09-03 Advanced Micro Devices, Inc. Computer system including a novel address translation mechanism
US6510508B1 (en) 2000-06-15 2003-01-21 Advanced Micro Devices, Inc. Translation lookaside buffer flush filter
US6665788B1 (en) 2001-07-13 2003-12-16 Advanced Micro Devices, Inc. Reducing latency for a relocation cache lookup and address mapping in a distributed memory system
US10846235B2 (en) 2018-04-28 2020-11-24 International Business Machines Corporation Integrated circuit and data processing system supporting attachment of a real address-agnostic accelerator
US11853231B2 (en) 2021-06-24 2023-12-26 Ati Technologies Ulc Transmission of address translation type packets

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS54148329A (en) * 1978-05-15 1979-11-20 Toshiba Corp Buffer memory control system and information processor containing buffer memory
JPS595482A (ja) * 1982-06-30 1984-01-12 Fujitsu Ltd キヤツシユバツフア装置管理方式
JPS62145341A (ja) * 1985-12-20 1987-06-29 Fujitsu Ltd キヤツシユメモリシステム
JPS63240653A (ja) * 1987-03-09 1988-10-06 アメリカン テレフォン アンド テレグラフ カムパニー 記憶装置管理ユニットと仮想一実アドレス間の翻訳方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS54148329A (en) * 1978-05-15 1979-11-20 Toshiba Corp Buffer memory control system and information processor containing buffer memory
JPS595482A (ja) * 1982-06-30 1984-01-12 Fujitsu Ltd キヤツシユバツフア装置管理方式
JPS62145341A (ja) * 1985-12-20 1987-06-29 Fujitsu Ltd キヤツシユメモリシステム
JPS63240653A (ja) * 1987-03-09 1988-10-06 アメリカン テレフォン アンド テレグラフ カムパニー 記憶装置管理ユニットと仮想一実アドレス間の翻訳方法

Also Published As

Publication number Publication date
CA1301354C (en) 1992-05-19
GB2210479A (en) 1989-06-07
GB2210479B (en) 1992-06-17
DE3832758C2 (de) 1996-05-30
GB8819017D0 (en) 1988-09-14
AU609519B2 (en) 1991-05-02
FR2621408B1 (ja) 1994-04-22
HK95493A (en) 1993-09-24
JPH071489B2 (ja) 1995-01-11
AU2242288A (en) 1989-04-06
FR2621408A1 (fr) 1989-04-07
DE3832758A1 (de) 1989-04-13

Similar Documents

Publication Publication Date Title
US5119290A (en) Alias address support
JP2684196B2 (ja) ワークステーシヨン
EP0253824B1 (en) Paged memory management unit capable of selectively supporting multiple address spaces
EP3238074B1 (en) Cache accessed using virtual addresses
US5123094A (en) Interprocessor communications includes second CPU designating memory locations assigned to first CPU and writing their addresses into registers
JP2833062B2 (ja) キャッシュメモリ制御方法とこのキャッシュメモリ制御方法を用いたプロセッサおよび情報処理装置
US6920521B2 (en) Method and system of managing virtualized physical memory in a data processing system
US6907494B2 (en) Method and system of managing virtualized physical memory in a memory controller and processor system
US5802574A (en) Method and apparatus for quickly modifying cache state
US6446034B1 (en) Processor emulation virtual memory address translation
US5555395A (en) System for memory table cache reloads in a reduced number of cycles using a memory controller to set status bits in the main memory table
JPH03220644A (ja) コンピユータ装置
US6711653B1 (en) Flexible mechanism for enforcing coherency among caching structures
US6904490B2 (en) Method and system of managing virtualized physical memory in a multi-processor system
US20040117588A1 (en) Access request for a data processing system having no system memory
JP2000231549A (ja) マイクロプロセッサ
US7822924B2 (en) Processing of self-modifying code in multi-address-space and multi-processor systems
JPH0526217B2 (ja)
US6901540B1 (en) TLB parity error recovery
US6766434B2 (en) Method for sharing a translation lookaside buffer between CPUs
US5339397A (en) Hardware primary directory lock
US7017024B2 (en) Data processing system having no system memory
US20050027960A1 (en) Translation look-aside buffer sharing among logical partitions
JPH01108651A (ja) コンピュータ装置およびコンピュータ装置においてキャッシュデータアレイ内のデータの不一致を検出して修正する方法
US20050091459A1 (en) Flexible mechanism for enforcing coherency among caching structures

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees