JPH03172947A - マイクロコンピュータ・システム - Google Patents

マイクロコンピュータ・システム

Info

Publication number
JPH03172947A
JPH03172947A JP2306957A JP30695790A JPH03172947A JP H03172947 A JPH03172947 A JP H03172947A JP 2306957 A JP2306957 A JP 2306957A JP 30695790 A JP30695790 A JP 30695790A JP H03172947 A JPH03172947 A JP H03172947A
Authority
JP
Japan
Prior art keywords
cache
bus
memory
data
cache memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2306957A
Other languages
English (en)
Inventor
Arthur Kahlich
アーサー・カーリック
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.)
MATRA DESIGN SEMICONDUCTOR Inc
Original Assignee
MATRA DESIGN SEMICONDUCTOR 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 MATRA DESIGN SEMICONDUCTOR Inc filed Critical MATRA DESIGN SEMICONDUCTOR Inc
Publication of JPH03172947A publication Critical patent/JPH03172947A/ja
Pending 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
    • G06F12/0835Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means for main memory peripheral accesses (e.g. I/O or DMA)
    • 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure

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

【発明の詳細な説明】 [発明の目的] 〈産業上の利用分野〉 本発明は、キャッシュメモリに関し、より詳細に言えば
、コピーバックφモードで動作するキャッシュメモリを
制御してマイクロコンピュータ・システムに於けるキャ
ッシュメモリ俸コントローラに関する。
〈従来の技術〉 キャッシュメモリは、コンピュータシステムに使用され
る小容量、高速の補助メモリである。周知のアルゴリズ
ムを用いて、コンピュータシステムの主メモリ内の選択
された記憶場所の内容が周期的に前記キャッシュメモリ
内にコピーされる。
中央処理装置が、可能であればキャッシュメモリから読
み取りかつ書き込む。キャッシュメモリは主メモリより
高速のメモリであるので、これによってサイクル時間が
減少する。更に、直接メモリアクセス(DMA)デバイ
スのようなリモート俸バスマスタ・デバイスが主メモリ
をアクセスする際に、プロセッサは、前記リモート・バ
スマスタ・デバイスによる主メモリへのアクセスが行わ
れている間、キャッシュメモリを用いてラン(run)
即ち動作し続けることができる。これによって、更にス
ループットが容易になり、かつコンピュータシステムの
性能を強化することができる。
最近まで、キャッシュメモリは一般にメインフレーム・
コンピュータ及びミニコンピユータでのみ使用されてい
た。パーソナルコンピュータまたはマイクロコンピュー
タに使用されるマイクロプロセッサは、遅すぎてキャッ
シュメモリの利益が得られなかった。インテル(Int
el)80386のような32ビツトのマイクロプロセ
ッサの出現によって、マイクロプロセッサのクロック速
度が十分に増大し、それによって今ではキャッシュメモ
リによってマイクロコンピュータ・システムに於けるス
ループットの大幅な向上が可能になっている。この結果
、キャッシュメモリは、前記インテル80386のよう
な高速マイクロプロセッサを有するマイクロコンピュー
タ・システムに於て使用されている。更に、最近25メ
ガヘルツのクロックを有するインテル80286コンパ
チブルチツプが開発された。このマイクロプロセッサは
、同様にキャッシュメモリを使用することが有利である
ような十分に早いクロック速度を有する。
キャッシュメモリは、一般に高速度のランダムアクセス
メモリ(RAM)からなる。これは、キャッシュメモリ
に書き込みまたはそれがら読み取るものを決定するキャ
ッシュメモリ・コントローラによって制御される。先に
説明したように、キャッシュメモリは、可能であるなら
ば全メモリアクセス時間を減少させかっそれによってス
ループットを増大させるために、主メモリの代わりにア
クセスされる。
プロセッサが主メモリに書き込もうとする場合、キャッ
シュコントローラが、主メモリの記憶場所のアドレスを
そのタグメモリに記憶されているメモリアドレスと比較
して、この主メモリの記憶場所の内容がキャッシュメモ
リに記憶されているがどうかを決定する。(「タグメモ
リ」は、キャッシュメモリに最新に記憶された主メモリ
の記憶場所のアドレスをキャッシュコントローラが記憶
しておくRAMメモリである。)その内容が記憶されて
いる場合には、「書込みヒツトJが起っている。記憶さ
れていなかった場合には、「書込みミス」が起っている
前記プロセッサが周知の「ライトスルー」モードで動作
している場合には、キャッシュメモリには書込みヒツト
のみが書き込まれるのに対して、主メモリには全てのプ
ロセッサ書込み要求が書き込まれる。対照的に、キャッ
シュコントローラが周知の「コピーパック」モードで動
作している場合には、前記プロセッサは成る環境下にあ
る場合を除いて、書込みヒツトの場合にキャッシュメモ
リのみに書き込み、かつ書込みミスの場合に主メモリに
書き込む。書込みヒツトに対する主メモリのアップデー
ティング即ち更新は、新しいキャッシュデータのための
場所を作るために古いデータを主メモリに「コピーパッ
ク」させる読取りミスが起こるまで、遅らされる。キャ
ッシュメモリは、使用されているキャッシュメモリの更
新計画または方法に従って書込みミスに対して更新され
たりされなかったりする。
より遅いライトスルー・モードへの逆戻りを行わなけれ
ばならない場合が2つある。その第1の場合は、後述す
るパススヌープ・ヒツトがある場合に機能抑止できない
主メモリが拡張バスに存在する場合である。第2の場合
は、書き込まれる記憶場所がビデオ・デイスプレィ用R
AMのようなメモリのマツブトI10記憶場所である場
合である。
前記プロセッサによる主メモリへの書込みは、「後書込
み」によって行われる場合が多い。以下に詳述するよう
に、ここで言う後書込みは、アドレス指定された主メモ
リの記憶場所の番地を前記キャッシュコントローラ内に
固定すること、及び前記データをバッフアートバス・ト
ランシーバ内に固定することが必要である。ここで、前
記プロセッサは次のバス動作を実行することができ、か
つキャッシュコントローラが残りの書込み動作を取り扱
う。
前記プロセッサが主メモリの記憶場所から読み取ろうと
する場合には、前記キャッシュコントローラが主メモリ
の記憶場所の番地をその[タグメモリJと比較して、ア
ドレス指定されたメモリの記憶場所の内容がキャッシュ
メモリに書き込まれているかどうかを判断する。書き込
まれている場合には、これが「読取りヒツト」と呼ばれ
る。読取りヒツト時には、前記キャッシュローラが主メ
モリの機能を抑止し、かつキャッシュメモリに主メモリ
であるかのように応答させる。このようにして、前記プ
ロセッサはキャッシュメモリを読み取る。前記プロセッ
サが読み取ろうとする記憶場所がキャッシュメモリに書
き込まれていない場合には、「読取りミス」が生じる。
この場合、前記プロセッサが前記主メモリの記憶場所を
読み取り、かつ成る共通の方法で、この主メモリの記憶
場所の内容が同様にキャッシュメモリに書き込まれる。
次に、前記キャッシュコントローラはそのタグメモリを
更新して、この主メモリの記憶場所が現在キャッシュメ
モリ内に記憶されていることを表示する。
今まで、コピーパック・モードで動作するキャッシュメ
モリは、メインフレーム・コンピュータ及びミニコンピ
ユータのようなより大型のコンピュータシステムでのみ
使用されていた。マイクロプロセッサに使用されるキャ
ッシュメモリは、ライトスルー・モードに於てのみ動作
させることができた。
このようなインテル80386チツプまたはその同等品
に基づくマイクロコンピュータ・システムのキャッシュ
メモリ・コントローラの1つがインテル82385キヤ
ツシユコントローラである。
このようなキャッシュメモリ・コントローラの別の例と
して、オースペック(Auspek)38152がある
これら2個のキャッシュコントローラには、キャッシュ
メモリを用いることによって得ることができるスルーブ
ツトの向上を制限するような限界がある。(スループッ
トの向上とは、メモリのアクセスに必要な時間の短縮に
よるマイクロコンピュータΦシステムがプログラムを実
行するために必要な時間の短縮を言う。プログラムを実
行する際に行われるメモリのアクセスが多くなるほど、
メモリのアクセスに必要な時間を減少させることよって
より大幅にスループットが改善される。)これらの限界
には、コピーパック令モードに於て、かつ最大32キロ
バイトのキャッシュサイズに於て動作させることができ
ないことが含まれる。
最も重要な限界はコピーパック令モードで動作できない
ことであると考えられる。ライトスルー技術によってリ
アルタイム・コヒーレンス、即ちキャッシュメモリがそ
の対応する主メモリの記憶場所と一致することが保証さ
れるのに対して、システムの帯域幅という形でペナルテ
ィが課される。
ライトスルー・モードに於ける読取りヒツトの間、前記
キャッシュメモリがCPUに対して高速のアクセスを提
供するが、更にDMAコントローラ(最近のPCシステ
ム、特により高性能なPCシステムに於ける非常に一般
的な機能及び非常にありふれたバスマスタ)のような別
のバスマスタが使用するための「自由」サイクルがシス
テムバスに与えられ、システムバスの帯域幅及びシステ
ムのスルーブツトが増大することになる。しかしながら
、ライトスルー・モードに於ける書込みヒツトの間、キ
ャッシュへの全書込みが同時に(「後」書込みについて
は略同時に)前記主メモリに書き込まれるので、対称的
な利益を得ることができない。これは、前記キャッシュ
メモリ内で更新されているが主メモリ内にコピーバック
されていない主メモリの記憶場所をリモートマスクが読
み取ることを防止するためである。
コピーパック令モードではキャッシュメモリへのプロセ
ッサの書込みが、読取りミス時にのみ前記主メモリにコ
ピーされる。読取りミス時には、前記キャッシュコント
ローラが、先ずアドレス指定された主メモリの記憶場所
からのデータが「ダーティ」であるかどうかを確かめる
ために書込まれるべきキャッシュメモリの記憶場所を点
検する。
前記キャッシュメモリの記憶場所は、更新されているが
その対応する主メモリの記憶場所が更新されていない場
合に、ダーティである。選択されたキャッシュメモリの
記憶場所がダーティである場合には、キャッシュローラ
が選択された前記キャッシュメモリの記憶場所の内容を
前記対応する主メモリの記憶場所に書き込む。次に、前
記キャッシュコントローラがアドレス指定された主メモ
リの記憶場所の内容を選択された前記キャッシュメモリ
の記憶場所に書き込ませ、かつ前記プロセッサに供給さ
せる。
また、前記キャッシュコントローラはそのタグRAMを
更新して、前記選択キャッシュメモリ記憶場所に対応す
ることになった新しい主メモリの記憶場所を指示する。
前記コピーバック・モードは重要なバス帯域幅を他の動
作のために開放するので、特にディスクアクセスのよう
なシステムバスに於けるDMAの動作にとって有用であ
る。しかしながら、インテル82385及びオースペッ
クΦコンパチブルチップは、コピーバック・モードで動
作できないだけでなく、インテルのデータシートには、
コピーバック・モードが80386マイクロプロセツサ
についても使用できないことが示されている。
インテルは、一般にインテル486として知られる最新
のマイクロプロセッサに於て、キャッシュコントローラ
がコピーバック会モードで動作し得る386及び286
マイクロプロセツサには存在しない成る設計上の特徴を
提供した。特に、この486は、所コη「バックオフJ
  (BOFF)入力を有する。DMA動作の際に前記
BOFF入力が真であるとされると、前記486は現在
行っている動作を投げ出して、前記バスをDMA動作に
提供する。前記DMA動作が完了した後、前記486は
、前記DMA動作の開始時に行っていた前記バス動作を
再び実行する。これによって、BOFF入力を持たない
デバイスでは解決不可能であると考えられていたデッド
ロックをコピーバック・モードで解決することが可能に
なる。
DMAが行われている場合のようにリモートバスマスタ
が主メモリを読み取ろうとする場合に、コピーバック・
モードが有するライトスルー・モードには存在しない問
題が生じる。この問題とは、コピーバックが用いられる
場合に、ライトスルーが用いられる場合よりも主メモリ
がキャッシュメモリと非常にコヒーレント性即ち一致性
を持ち難いことである。この結果、DMAが起こると、
アドレス指定された主メモリの記憶場所の内容が誤りと
なり、即ちデータがアドレス指定された前記主メモリの
記憶場所に対応するキャッシュメモリの記憶場所に書き
込まれているが、前記主メモリの記憶場所には書き込ま
れていないことになる。
〈発明が解決しようとする課題〉 本発明は、「ロック命令シーケンス」を実行することが
できるマイクロプロセッサからなるマイクロプロセッサ
・システムに於けるキャッシュコントローラの使用に関
する。ロック命令シーケンスとは、実行の途中で中断で
きない命令のシーケンスである。マイクロプロセッサが
第1データバスに接続され、かつそれが次にキャッシュ
メモリに接続される。また、前記システムは、主メモリ
に接続された第2データバスに接続された周辺デバイス
を有する。また、前記システムは、前記第2データバス
からのデータで第1データバスを駆動し、かつ前記第1
データバスからのデータで前記第2テータバスを駆動す
るためのトランシーバ手段を備える。即ち、前記トラン
シーバ手段によって前記周辺デバイスは前記キャッシュ
メモリにアクセスすることができ、かつ前記マイクロプ
ロセッサが前記主メモリにアクセスすることができる。
このようなシステムでは、前記周辺デバイスが前記第2
バス、トランシーバ手段及び第1バスを介して前記キャ
ッシュメモリをアクセスしようとする場合に、前記マイ
クロプロセッサが前記第1バス、トランシーバ手段及び
第2データバスを介して主メモリにアクセスされるロッ
ク書込み命令を実行するのに対して、前記プロセッサが
バックオフ・ピンを持たない場合に前記マイクロプロセ
ッサシステムがロックアツプする可能性がある。
本発明は、この問題を解決しようとするものである。
[発明の構成] 〈課題を解決するための手段及び作用〉本発明の1実施
例によれば、全てのマイクロプロセッサ・ロック命令シ
ーケンスがロック読取り命令で開始される。前記周辺デ
バイスがその時点で第2データバスを制御しているかど
うかを決定するために制御手段が設けられる。前記周辺
デバイスが前記第2データバスを制御し、かつ前記マイ
クロプロセッサが(常にロック読取り命令で開始する)
ロック命令シーケンスを開始している場合には、前記周
辺デバイスが前記第2データバスの制御を放棄するまで
、前記制御手段は前記マイクロプロセッサの準備完了入
力ラインを偽とする。
前記準備完了入力ラインを偽とする間、前記マイクロプ
ロセッサは前記第1データバスを有効データを含む入力
バスとして取扱うので、前記第1データバスをデータで
駆動しようとすることはない。
これによって、前記周辺デバイスは、前記トランシーバ
手段及びS1データバスを介して前記キャッシュメモリ
にアクセスすることができる。
前記周辺デバイスが前記第2データバスの制御を要求し
ている時にロック命令シーケンスが実行されている場合
には、前記制御手段が前記ロックシーケンスの間は前記
周辺デバイスによる前記第2データバス制御を否定する
ことになる。
このプロトコルに従うことによって、ロックアツプが発
生することはない。
〈実施例〉 キャッシュメモリは、そのセットアソシアティビティに
従って構成される。セットアソシアティビティによって
、主メモリのどの記憶場所がキャッシュメモリのどの記
憶場所に書き込み得るかが決定される。これは、直接マ
ツピングからフルセットアソシアティビティまでの範囲
に及ぶ。直接マツピングでは、所定の主メモリ記憶場所
が1つのキャッシュメモリ記憶場所にのみ書き込むこと
ができるのに対して、フルセットアソシアティビティで
は、全ての主メモリ記憶場所をあらゆるキャッシュメモ
リ記憶場所に書き込むことができる。
そのセットアソシアティビティに従って、キャッシュメ
モリは1つまたは2つ以上のバンクに分割される。直接
マツブトキャッシュは1つのバンクのみを有する。2ウ
ェイΦセットアソシアティビティを有するキャッシュは
、2つのバンクを有し、4ウエイ・セットアソシアティ
ビティを有するキャッシュは4つのバンクを有する。
主メモリはキャッシュバンクと同サイズのページと称さ
れる区分に分割される。例えば、第1図に示されるよう
に、キャッシュメモリのサイズが32にである場合には
、各ページが直接マツブトコンフィグレーションに於て
32にとなる。2ウエイリセツトアソシアテイビテイを
有するキャッシュメモリでは、第2図に示されるように
、各ページがキャッシュメモリのサイズの2分の1、即
ち32にのキャッシュメモリに対して16にとなり、か
つ4ウエイ・セットアソシアティビティを有するキャッ
シュメモリでは、第3図に示されるように、各ページが
キャッシュメモリのサイズの4分の1、即ち32にキャ
ッシュメモリに対して8にとなる。
主メモリに於ける各ページまたは前記キャッシュに於け
る各バンクは数個のブロックからなる。
各ブロックは、自己のタグをキャッシュディレクトリと
も称されるキャッシュコントローラのタグRAM内に有
する。従って、前記キャッシュの物理的空間に於ける連
続ブロックは、論理的には非連続になり得る。第1図乃
至第3図に示されるように、各タグに関するデータ横進
が、前記ブロック内の各サブブロックについてタグフィ
ールド、「ダーティ」ブロックビット及び「有効」ビッ
トを有する。前記タグフィールドは、主メモリ内の関連
するブロックアドレスを識別する。前記ダーティブロッ
クビットは、サブブロックのいずれかが更新されており
、かつ主メモリ内の対応する記憶場所とコヒーレント性
を有しないことを示すようにセットされまたはクリアさ
れる。前記有効ビットは、関連するサブブロックが使用
されているかまたは使用可能であるかどうかを示すよう
にセットされまたはクリアされる。
同様に第1図乃至第3図に示されるように、各ブロック
は、前記キャッシュディレクトリ内の単一のタグの下で
一体的にグループ化される固定数のサブブロックからな
る。サブブロックは、主メモリからキャッシュメモリに
データを転換する際またはキャッシュメモリから主メモ
リへの更新のために、主メモリとキャッシュメモリとの
間で交換される最小の情報量である。各サブブロックの
サイズはキャッシュメモリのサイズに比例して変化する
。成るブロックの全サブブロックは、該ブロックのタグ
が該ブロックのベースアドレスを含んでいるので、シー
ケンシャルな記憶場所に基づく。
サブブロックと語との相違に注意することが重要である
。上述したようにサブブロックは、キャッシュメモリと
主メモリとの間に於ける情報交換の最小単位である。語
は、中央処理装置(CPU)とキャッシュメモリまたは
主メモリのいずれかとの間に於ける情報交換の最大単位
を定義する。サブブロックのサイズは、前記キャッシュ
メモリ内の全ブロック数及びブロック毎のサブブロック
数が、使用可能な一定数のタグ及び有効ビットによって
一定のままであるので、キャッシュメモリのサイズに直
接比例して変化する。
直接マツピングは最も簡単な種類のセットアソシアティ
ビティである。第1図に示されるように、前記主メモリ
は前記キャッシュメモリバンクと等しいサイズのページ
に論理的に分割される。キャッシュメモリの各記憶場所
は、タグ及びオフセットによって指標される。前記タグ
がブロックを識別し、かつ前記オフセットが前記ブロッ
ク内のサブブロックの記憶場所を識別する。実際に、前
記タグはその内容が主メモリ内の前記ページを指標する
アドレスポインタであり、それに基いて前記キャッシュ
メモリのその記憶場所に格納されるブロックがコピーさ
れている。
各ブロックの前記タグがあらゆるページのアドレスを含
むことができるので、前記キャッシュの連続ブロックは
あらゆるページからランダムに選択することができる。
しかしながら、直接マツブト・コンフィグレーションで
は、前記キャッシュメモリの各ブロックの記憶場所がそ
の主メモリ内のページに於けるその記憶場所に直接にマ
ツピングされ即ち対応していなければならない。更に、
ブロック内のサブブロックの位置がそのオフセットによ
って決定されるので、前記キャッシュメモリにコピーさ
れるブロック内のサブブロックは同様に主メモリとキャ
ッシュメモリとの間で対応していなければならない。
動作時には、前記CPUが、読出しサイクルまたは書込
みサイクルに於てアクセスされるべき前記主メモリ記憶
場所の完全なアドレスを供給する。
ヒツトを決定するために、前記キャッシュコントローラ
内のタグコンパレータが前記タグの内容を主メモリ内の
ページを決定する高次のアドレスビットと比較する。ヒ
ツトがある場合には、前記キャッシュメモリが適当なコ
ンパレータの出力によって動作可能になり、かつ残りの
アドレスビットが前記キャッシュメモリのアドレスライ
ンを駆動して選択された記憶場所にアクセスする。
nウェイ・セット連想機構が、2ウエイ・セットアソシ
アティビティに関する第2図及び4ウエイ争セツトアソ
シアテイビテイに関する第3図に示されるように、前記
キャッシュメモリをn個のバンクに分割する。この場合
に同じオフセット記憶場所が、これらの記憶場所のそれ
ぞれが異なるキャッシュバンクに属するので、主メモリ
のn個のページについて使用可能である。直接マツピン
グは本質的に1ウエイ・セットアソシアテイビティであ
る。
第4図は、インテル80386マイクロプロセツサに基
づき、かつ従来のインテル82385キヤツシユコント
ローラによって制御されるキャッシュメモリを有するマ
イクロコンピュータ・システムのブロック図である。マ
イクロコンピュータ・システム10は、例えばインテル
80386マイクロプロセツサである中央処理装置(C
PU)12を有する。また、マイクロコンピュータ・シ
ステム10は「ローカル」バス34と「システム」′バ
ス32とを有する。良く理解されているように、マイク
ロコンピュータ・システムは内部の即ちローカルバスと
外部の即ちシステムバスとを有する。
前記ローカルバスは、前記マイクロプロセッサのピンの
位置に於てアドレス信号、データ信号、ステータス信号
及び制御信号からなる。前記システムバスは、前記ロー
カルバスの緩衝部分であり、ステータス及び制御ライン
並びにタイミングを取扱う方法に於て前記ローカルバス
と幾分具なる場合がある。
マイクロプロセッサ12は、ローカルバス34を介して
キャッシュメモリ14及び32ビツト・トランシーバ1
8のプロセッサ側入力に接続されたデータポートD31
−0を有する。「ポート」の語は、選択的に入力及び出
力の双方として機能し得るものを表すために使用される
。チップセット20は、32ビツト働トランシーバ18
のチップセット側データポートD31−0に接続された
トランシーバ側データボー1− D 31−0を有する
パーソナルコンピュータ及びワークステーションの設計
に詳しい者であれば容易に理解されるように、「チップ
セット」は、インタラブド(割込み)処理、タイマ/カ
ウンタ/クロック、バスタイミング、バスマネージメン
ト(バス管理)、メモリマネージメント(メモリ管理)
及び場合によって外部デバイスとのインターフェイス等
の様々な周辺システム機能を実行するために必要な素子
を、少数の部品(約6個またはそれ以下)に集積する1
組の大型集積化(LSI)部品を意味する。このような
チップセットはセット物としてまたは個々の素子として
購入することができる。本発明に於て使用可能なチップ
セットの1例として、テキサス働インストラメンツ(T
exas  Instruments)社が製造してい
るTACT  83000がある。
また、マイクロプロセッサ12は、ローカルバス34を
介して16ビツトのバッファ22の入力、32ビツトの
バッファ24の入力、及びキャッシュコントローラ30
のアドレスポートA31−2に接続されたアドレス出力
A31−2を有する。
16ビツトのバッファ22の出力は、キャッシュRAM
14のアドレス入力CA13−0に接続されている。例
示すれば、キャッシュコントローラ30はインテル82
385キヤツシユコントローラである。32ビツトのバ
ッファ24の出力は、チップセット20のアドレス入力
A31−2に接続されている。マイクロプロセッサ12
は、更にローカルバス34を介して8ビツトφラツチ2
8の入力に接続されたバスコントロール出力26を有す
る。8ビツト・ラッチ28の出力はチップセット20の
バスコントロール入力に接続されている。
チップセット20は、システムバス32のシステムアド
レスライン5A31−0に接続されたシステムアドレス
出力5A31−0を有する。システムアドレスライン5
A31−0は、キャッシュコントローラ30のスヌープ
・アドレス入力5A31−〇にも接続されている。また
、チップセット20はシステムバス32のデータライン
5D31−〇に接続されたシステムデータポート5D3
1−〇を有する。DMAデバイス36のようなリモート
令バスマスクデバイス及び主メモリ38がシステムバス
32に接続されている。キャッシュコントローラ30は
更に、キャッシュメモリ14のコントロール入力OE/
WE/C8に接続されたキャッシュメモリコントロール
出力OE/WE/C3を有する。(キャッシュコントロ
ーラ30の入力及び出力の表現は、インテル82385
キヤツシユコントローラに関するデータシートに見つけ
ることができる。) 動作時には、キャッシュコントローラ30が3つの種類
のメモリアクセス、即ちプロセッサ読取り、プロセッサ
書込み及びリモート・バスマスク書込みに対して適当に
応答しなければならない。
主メモリにアクセスするリモート・ノ(スマスタデバイ
スはディスクコントローラのようなりMAデバイスであ
る場合が多く、そのようなアクセスはDMA読取り及び
書込みの形で表すことができる。
プロセッサ書込み時には、データは常に、インテル82
385であるキャッシュコントローラ30がライトスル
ー・モードに於てのみ動作する際に、主メモリ38に書
込まれる。プロセッサ書込みが起こると、キャッシュコ
ントローラ30が、プロセッサ12によってローカルバ
ス34のアドレスラインA31−2に出た主メモリアド
レスを、そのタグRAM内に記憶された主メモリ記憶場
所と比較して、書込みヒツトが起っているかどうかを決
定する。その場合には、前記データが同様にキャッシュ
メモリ14内の適当な記憶場所に書き込まれる。
プロセッサ読取り時には、前記キャッシュコントローラ
が同様にデータを読み取るべき主メモリ記憶場所のアド
レスをそのタグRAMと比較して、読取りヒツトが生じ
ているかどうかを決定する。
そうである場合には、キャッシュコントローラ30が主
メモリ38からではなくキャッシュメモリ14から読取
りを行わせる。読取りミスの際には、前記読取りが主メ
モリ38から行われ、かつアドレス指定された主メモリ
記憶場所の内容が同様にキャッシュメモリ14内の適当
な記憶場所にコピーされる。
キャッシュコントローラ30がライトスルー・モードに
於てのみ動作するので、キャッシュメモリ14は常に主
メモリ38とコヒーレント性を有する。その結果、読取
りミスの際には、アドレス指定された前記主メモリ記憶
場所の前記内容が、キャッシュメモリ14の適当な記憶
場所に、このキャッシュメモリ14の記憶場所が対応す
る主メモリ記憶場所に記憶されているデータより最新の
データを有すること、即ち対応する前記主メモリとコヒ
ーレント性を有しないことを心配することなく、書込む
ことができる。
ライトスルーΦモードに於ては、DMA読取り及び書込
みが主メモリからまたは主メモリに対して直接に行われ
る。DMA読取り時には、アドレス指定された前記主メ
モリ記憶場所の内容が読み取られる。キャッシュメモリ
14は影響されない状態のままであり、かつプロセッサ
12は読取りミスまたは2つのプロセッサ書込みが生じ
るまで、キャッシュメモリ14を用いて動作し続けるこ
とができる。
DMA書込み時には、同様に書込みが主メモリに対して
直接に行われる。データはキャッシュメモリに書き込ま
れない。この結果、コントローラ30は、アドレス指定
された前記主メモリ記憶場所が同様にキャッシュRAM
16に記憶されているかどうかを決定するために、DM
A書込みを監視しなければならない。これが所謂[スヌ
ーピングJ  (sn□oping)である〇アドレス
指定された前記主メモリ記憶場所が同様にキャッシュメ
モリ14に記憶されていた場合には、このキャッシュメ
モリ14の記憶場所はもはや対応する主メモリ記憶場所
とコヒーレント性を持たないことになる。コントローラ
30がこれを判断し、かつこのキャッシュメモリ14の
記憶場所に関連するそのタグRAMの「有効」ビットを
クリアする。これはこのキャッシュメモリの記憶場所の
内容がもはや読取りのために使用できず、かつこのキャ
ッシュメモリ14の記憶場所に対応する主メモリの記憶
場所を読み取ろうとすれば読取りミスになるように書き
込むことが可能であることを示している。上述した「ス
ヌービング」方法はインテル82385によって使用さ
れる。別の実施例では、前記プロセッサを全DMAサイ
クルについて保持することができ、かつDAM書込みを
同様に書込みヒツト時にキャッシュメモリに書き込むこ
とができる。しかしながら、この方法では、キャッシュ
メモリを用いることによつて達成可能なスループットの
改善が更に低下する。
第5図には、本発明により構成されるキャッシュコント
ローラ44によって制御されるキャッシュメモリまたは
キャッシュRAM42を有するマイクロコンピュータ・
システム40が、簡略化されたブロック図で示されてい
る。また、マイクロコンピュータ・システム40は、例
えばインテル80386マイクロプロセツサであるCP
U48と、チップセット50と、32ビツト・トランシ
ーバ52とを有する。CPU48の1例としてインテル
80386を挙げたことが、本発明をインテル8038
6のような特定のマイクロプロセッサに限定するもので
ないことが明らかである。マイクロコンピュータ・シス
テム40は、プロセッサまたはローカルバス62とシス
テムバス56とを有する。ローカルバス62は、キャッ
シュコントローラ44及び32ビツトΦトランシーバ5
2が途中に設けられ、かつ拡張ローカルバス58として
チップセット50に駆動される。即ち、キャッシュコン
トローラ44はCPU48とシステムバス56との間に
介設されている。キャッシュコントローラ44がCPU
48及びシステムバス56からのコントロールライン及
びアドレスラインを中断しており、かつそれらを適当に
伝播している。データはキャッシュコントローラ44の
外側を32ビツトトランシーバ52の中を通過し、適当
にキャッシュRAM42の中へまたはそれから駆動され
る。
CPU48は、ローカルバス62を介してそれぞれキャ
ッシュコントローラ44のCPU側アドレス入力A31
−2及びコントロール/ステータス入力C/Sに接続さ
れたアドレス出力A31−2及びコントロール/ステー
タス出力C/Sを有する。マイクロプロセッサ48は、
更にローカルバス62を介してキャッシュメモリ42の
データポートD31−0及び32ビツト・トランシーバ
52のCPU側データボートD31−0に接続されたデ
ータポートD31−0を有する。チップセット50が、
キャッシュコントローラ44のチップセット側アドレス
ポートA31−0に接続されたアドレスポートA31−
0と、32ビツト拳トランシーバ52のチップセット側
データポートに接続されたデータポートD31−0とを
有する。
また、チップセット50は、システムバス56に接続さ
れたデータポート5D31−0とアドレスポート5A3
1−0とを有する。主メモリ60が、DMAデバイス4
6と同様にシステムバス56に接続されている。
キャッシュコントローラ44は、キャッシュメモリ42
のキャッシュメモリφアドレス入力CA13−0に接続
されたキャッシュメモリ・アドレス出力CA13−0を
有する。また、キャッシュコントローラ44は、キャッ
シュメモリ42のコントロール入力OE/WE/C5に
それぞれ接続されたキャッシュメモリ・コントロール出
力OE/WE/C8を有する。更に、キャッシュコント
ローラ44は、チップセット50のコントロールポート
81に接続されたコントロールポート80と、32ビツ
ト舎トランシーバ52のコントロール入力83に接続さ
れたコントロール出力82とを有する。前記チップセッ
トは、前記システムバスに接続されたコントロール出力
を有する。
第6図は、成る設計のためのキャッシュコントローラ4
4のCPU48、チップセット50及び32ビツトトラ
ンシーバ52に対する様々なコントロール入出力に関す
るハードウェア・インタフェースを詳細に示すブロック
図である。第6図の素子の各入出力を識別するために使
用されるネモニックコードが添付した表Aに記載されて
いる。
第6′図に記載されない表Aのネモニックコードは、他
の型式のCPUについて使用する場合及び他のコンフィ
グレーションで使用する場合に、キャッシュコントロー
ラ44のピンについて使用可能である。ここに於いて、
ネモニックコードの後の「#」は、入力、出力または信
号が低論理レベルで真であることを表している。
キャッシュコントローラ44は直接マツピング、2ウエ
イ・セットアソシアティビティ及び4ウエイ・セットア
ソシアテイビティを支援する。表Aに記載されるように
、キャッシュコントローラ44は4WAY入力と2W/
D#入力とを有する。
4WAY入力が高い場合には、4ウエイ・セットアソシ
アティビティが選択される。4WAY入力が低い場合に
は、前記2W/D#入力がセットアソシアティビティを
制御し、かつ高い場合には2ウエイ・セットアソシアテ
ィビティを選択し、かつ低い場合には直接マツピングを
選択する。
また、キャッシュコントローラ44が32に164に、
128K及び256にのサイズのキャッシュメモリを支
援する。キャッシュコントローラ44は、表Aに示され
るようにキャッシュコントローラ44が制御するキャッ
シュメモリ42のサイズを選択する入力MO−1を有す
る。
キャッシュコントローラ44は、主メモリ60とキャッ
シュメモリ42との間に於けるコヒーレント性を確保し
なければならない。表Aに記載されるようにそのWTM
 (ライトスルー・モード)及びWTO(ライトスルー
・オンリ)の状態によって応じてライトスルー・モード
またはコピーパック舎モードのいずれかによってそのよ
うに行われる。ライトスルーオンリーモードでは、キャ
ッシュコントローラ44が従来のインテル82385キ
ヤツシユコントローラと同様に動作するので、ライトス
ルーオンリ・モードについては詳細な説明を省略する。
コピーパック舎モードでは、CPU48からのデータが
プロセッサの書込みミス時に主メモリ60にのみ書き込
まれ、かつプロセッサの書込みヒツト時にキャッシュメ
モリ42にのみ書き込まれる。キャッシュコントローラ
44は、読取りミス時及び選択したキャッシュメモリ4
2の記憶場所がその時点に於ける対応する主メモリの記
憶場所とコヒーレント性を持たない場合にのみ、キャッ
シュメモリ42のCPU48更新を主メモリ60に書き
込ませる。この結果、キャッシュコントローラ44は、
取り換られるべきキャッシュメモリ記憶場所の内容が、
これらのキャッシュメモリ記憶場所が新しいデータでオ
ーバライドされる前に主メモリ60内の対応する記憶場
所に確実に更新されていなければならない。これを実行
するために、各ブロックに関する前記タグの「ダーティ
jビットが、CPU48によって更新されているが主メ
モリ60にはコピーされてないような記憶場所を前記ブ
ロックが有するかどうかを表示する。
CPU48によって行われるキャッシュメモリ42の記
憶場所への書込みは、同時に対応する主メモリ記憶場所
を更新しない。その代わりに、このバイトを有する前記
ブロックについて適当な「ダーティ」ビットが設定され
る。
書込みミスがCPU48の書込み時に生じる場合には、
キャッシュコントローラ44がキャッシュRAM42へ
の書込み許可信号WEを不可にし、かつCPU48から
のデータ及びアドレスをそれぞれ32ビツトトランシー
バ52及びその内部アドレスラッチに後書込みとして固
定する。これによってローカルバス62が自由になり、
それによってCPU48は前記書込みの完了を待つこと
なく次のサイクルを実行することができる。また、ロー
カルバス62は、後述するようにリモート・バスマスク
デバイスからのスヌープヒットに役立つことができるよ
うに、キャッシュコントローラ44に対して使用可能で
ある。第2の連続書込みミスの後、CPU48は、前記
ラッチが1つの後書込みのみを維持できるだけであるの
で、主メモリ60への先の書込みが完了するまでPRE
ADY#が偽であるとして待たせなければならない。
CPU48の読取り時に読取りミスが生じた場合には、
キャッシュコントローラ44は先ずプロセッサREAD
Y#信号を偽とする。直接マツピングが使用されていな
い場合には、前記キャッシュコントローラが2つ(2ウ
エイ・セットアソシアティビティの場合)または4つ(
4ウエイ・セットアソシアティビティの場合)の使用可
能なブロックについて、そのLRUビット(第7図)を
検査し、主メモリ60から更新されるべきブロックを選
択する。選択された前記ブロックに関するタグRAM記
憶場所のダーティビットが設定された場合には、キャッ
シュコントローラ44が、いずれのサブブロックを主メ
モリ60にコピーしなければならないかを決定するため
に、前記選択ブロックのサブブロックについて前記タグ
RAM記憶場所の有効ビットを点検する。キャッシュコ
ントローラ44は、有効と表示された即ちその有効ビッ
トが設定されているサブブロックを主メモリ60にコピ
ーし、かつ次に前記選択ブロック内のサブブロックにつ
いて全ての有効ビットをクリアすると共に、前記選択ブ
ロックについてダーティビットをクリアする。
この段階に於て、キャッシュコントローラ44は32ビ
ツトトランシーバ52を制御して、有効と表示された前
記サブブロックからのデータを拡張ローカルバス58に
駆動する。また、キャッシュコントローラ44は、チッ
プセット50からのEREADY#信号を監視し、かつ
前記ダーティブロックの全有効サブブロックが主メモリ
60に書き込まれるまで連続サブブロック会コピーパッ
ク・サイクルを開始する。
次に、キャッシュコントローラ44は、読取りサイクル
令アドレス及びコントロール信号が拡張ローカルバス5
8にあるとすることによって、CPU48からの読取り
要求を主メモリ60に送り、かつキャッシュメモリ42
の前記選択ブロックの適当なサブブロックに書き込まれ
るべき主メモリ60内の記憶場所([置換えサブブロッ
ク」と称される)から内容を読み取る。CPU48が前
記置換えサブブロック即ちアドレス指定された前記主メ
モリ60の記憶場所内の適当な語を読み取ることができ
るように、キャッシュコントローラ44は適当なバスサ
イクルのために前記EREADY■#信号を拡張ローカ
ルバス58からローカルバス2に送る。
また、キャッシュコントローラ44は、その適当なタグ
RAM記憶場所のキャッシュメモリ42内で更新された
ばかりの前記サブブロックについて有効ビットをセット
する。また、キャッシュコントローラ44は、リモート
番バスマスクデバイスによるメモリのアクセスについて
コヒーレント性が確実に維持されるようにしなければな
らない。
例えば、リモート番バスマスクデバイスは、キャッシュ
メモリ42に於て更新されているが主メモリ60に対し
て転送されていない主メモリ記憶場所を読み取ろうとす
ることができる。また、コヒーレント性がないことは、
キャッシュコントローラ44がバスマスタでないのに、
リモート・バスマスクデバイスが主メモリ60に書き込
むような結果になる。この場合に、書き込まれるアドレ
ス指定された主メモリ記憶場所がその時点でキャッシュ
メモリ42内に複写されている場合には、アドレス指定
された前記主メモリ記憶場所に対応するキャッシュメモ
リ42内のデータが古いものになる。
コヒーレント性を維持するために、キャッシュコントロ
ーラ44は、リモート・バスマスタからのEHOLD信
号または要求についてチップセット50を介してシステ
ムバス56を監視することによって、リモート中バスマ
スクデバイスによる読取り及び書込みから生じる読取り
ヒツト及び書込みヒツトをスヌーブする。キャッシュコ
ントローラ44が後述するロック信号をCPU48から
受け取っていない場合には、EHLDA確認信号を前記
リモート・バスマスタに向けて発生し、かつ後述するよ
うにスヌープを開始する。
読み取るヒツトをスヌープ即ち監視する際に、キャッシ
ュコントローラ44は主メモリ読取りサイクルアドレス
を点検して、その対応する「ダーティ」ビットの組を有
するブロック内のキャッシュメモリ40内に記憶されて
いる主メモリ記憶場所からのデータをリモート畢バスマ
スクデバイスが読み取ろうとしているかどうかを確かめ
る。書込みヒツトについてスヌープする場合には、キャ
ッシュコントローラ44が、リモート・バスマスクデバ
イスによって書き込まれるべきアドレス指舊゛基れた主
メモリ記憶場所のアドレスを点検して、アドレス指定さ
れた前記主メモリ記憶場所のコピーがキャッシュメモリ
42に記憶されているかどうかを決定する。そうである
場合には、スヌープ書込みヒツトが起こる。
スヌーブ読取りヒツトの場合には、キャッシュコントロ
ーラ44がキャッシュメモリ42から適当なデータを駆
動し、メモリ不可(MEMD I S)信号が真である
としてシステムバス56への主メモリの出力を不可にし
、かつ32ビツトトランシーバ52を介してキャッシュ
メモリ42の出力を駆動する。このデータは、拡張ロー
カルバス58に於けるEREADYI #を真としてそ
の時点に於ける読取りサイクルの終了が示されるまで、
チップセット50に於てイネーブル(enable)状
態に保持される。即ち、DMAデバイス46のようなあ
らゆるリモート畢バスマスクデバイスが、データが主メ
モリ60にあるかのように正しいデータを受け取ること
になる。
キャッシュコントローラ44がコピーバック・モードで
ある時にスヌープ書込みヒツトが生じた場合には、その
影響を受けたサブブロックがCPU48によって更新さ
れているが対応する主メモリ60の記憶場所にコピーバ
ックされていないデータを含む。これは、影響を受けた
前記サブブロックが属するブロックの「ダーティ」ビッ
トが設定されている場合に検出される。次に、キャッシ
ュコントローラ44は、書込みが主メモリ60に於て実
行されると同時にキャッシュメモリ42への書込みが実
行されることによって、影響を受けた前記サブブロック
を更新させる。
前記CPU48がシステムバス56に接続されたリモー
ト・バスマスクデバイスと非同期的に動作するので、前
記プロセッサがキャッシュメモリ42の外のローカルバ
ス62で読取り/書込み動作を行っている間にスヌープ
ヒットが生じる可能性がある。CPU48が読取りを行
っている間にスヌープヒットが生じた場合には、キャッ
シュコントローラ44がCPU48へのREADY#入
力に接続されたローカルバス62上のREADYO#ラ
インが偽であるとして、キャッシュメモリ42へのリモ
ート−バスマスクデバイスのアクセスが完了するまで、
追加のサイクルについて前記CPUの読取りを停止させ
る。スヌープ読取りヒツトでは、キャッシュメモリ44
からのデータが読み取られかつ32ビツト・トランシー
バ52を介して送られるのに対して、スヌープ書込みヒ
ツトでは、前記リモートデータが1サイクルでキャッシ
ュメモリ42内に書き込まれる。これによってCPU4
8に対する時間のペナルティが最小になる。
CPU48の書込み動作またはアイドル時にスヌープヒ
ットが生じた場合には、キャッシュコントローラ44が
ローカルバス62上のHOLDラインを真として、CP
U48のHOLD入力を真と主張する。CPU48は、
キャッシュメモリ42に書き込むことによって、または
キャッシュコントローラ44の内部アドレスラッチ(第
7図)にアドレスを固定しかつ後で実行されるべき後書
込みのためにデータを32ビツトトランシーバ52に固
定することによって書込みが完了するまで、動作を続け
る。CPU48は書込み動作を完了した後、真とされる
そのHOLD入力によって維持され、かつキャッシュコ
ントローラ44に対してホールド確認信号HLDAを真
であるとする。
次に、前記リモート・バスマスタが即座にキャッシュメ
モリ42にアクセスし、かつそれに対する読取りまたは
書込みを進行する。この時、CPU48からのデータが
32ビツトトランシーバ52内に固定され、かつキャッ
シュコントローラ44がキャッシュメモリ42とチップ
セット50との間に於けるデータの伝送を指示して、3
2ビツトトランシーバ52の1部分と理解されるバイパ
スの中を通過させる。この場合、キャラシュスヌープ読
取りヒツトからのデータは、後から開始される後書込み
について前記ラッチには既にデータが入っているので、
固定することができない。この場合の前記プロセッサは
、DMA動作の終了まで維持されなければならない。D
MAデバイスからのEHOLDが偽になった後、EHL
DAが偽になり、前記プロセッサのHOLDが開放され
、かつ後書込みが必要であれば開始される。
インテル80386のようなマイクロプロセッサは、キ
ャッシュメモリを有するシステムに於けるデッドロック
に結びつき得る所謂バス動作の「ロックシーケンス」を
有する。バス動作のロックシーケンスを実行する場合、
前記マイクロプロセッサは、バス動作のロックシーケン
スを完了するまでローカルバスの制御を放棄することを
拒否する。前記デッドロックは、バス動作のロックシー
ケンスの一部としてCPU48が書込みを行っている間
にスヌープヒットが生じた時に起こる。
CPU48は、バス動作のロックシーケンスを実行して
いるので、そのHOLD入力がキャッシュコントローラ
44によって真であるとされていることに気付かず、そ
の結果、書込みを完了するまで維持しない。従って、キ
ャッシュコントローラ44はコントローラバス62を制
御することができず、従ってスヌープヒットの役に立た
ない。
キャッシュコントローラ44は、バス動作のロックシー
ケンスが必ず読取りで開始されるので、キャッシュコン
トローラ44がシステムバス56のマスクでない時に読
取り動作についてCPU48を監視することによって、
このデッドロックを解決する。キャッシュコントローラ
44は、システムバス56がマスクでない場合に、その
EHLDA出力を真にしてEHOLD要求に応答して、
システムバス56のリモート番バスマスクデバイスへの
制御を放棄していることを示す。スヌーブヒットは、キ
ャッシュコントローラ44がEHLDA確認を与えてシ
ステムバス56の制御を放棄した場合にのみ生じる。こ
の結果、キャッシュコントローラ44がEHLDAを真
としかっCPU48によるロック読取り動作を検出した
場合には、キャッシュコントローラ44はCPU48へ
のREADY#入力を、DMAデバイス46がEHOL
D信号を偽とすることによってシステムバス56の制御
を放棄するまで偽とする。
CPU48は、そのREADY#入力が読取り動作の完
了前にもはや偽とされなくなるまで待つので、これによ
ってローカルバス62はスヌープヒットを貢献するよう
にキャッシュコントローラ44によって使用されるよう
に解放され゛る。別の実施例では、キャッシュコントロ
ーラ44がEHLDAを与えずかつCPU48がそのL
OCK#出力を真としていることが検出された場合には
、キャッシュコントローラ44は、CPU48のLOC
K#出力が偽になるまでEHLDAを与えることを拒否
することによって、自分自身を事実上不可または機能抑
止状態にする。キャッシュコントローラ44がシステム
バス56のマスクになるので、リモート番バスマスクデ
バイスによるメモリのアクセスは全く起こらない。
直接マツピング・モードの場合、キャッシュコントロー
ラ44がCPU48による主メモリへのアクセスに対し
て次のように応答する。キャッシュコントローラ44の
前記タグRAMは、キャッシュメモリ42内の各ブロッ
クについてタグを有する。前記タグは、上述したように
、主メモリ内の関連するブロックのアドレスを識別する
タグフィールドと、前記ブロック内のサブブロックのい
ずれかが更新されており、かつその対応する主メモリの
記憶場所とコヒーレント性を持たないかどうかを示すよ
うにセットされまたはクリアされるダーティ・ブロック
ビットと、前記関連サブブロツクが使用されているかま
たは使用することができることを示すようにセットされ
またはクリアされる前記ブロック内の各サブブロックに
関する有効ビットとを有するように構成される。(表B
は、キャッシュコントローラ44によって支援される様
々なキャッシュのサイズ及び選択されるマツピングにつ
いてサブブロック、ブロック、バンク及びページのサイ
ズ及び/またはカウントをまとめたものである。) キャッシュコントローラ44は、ローカルバス62から
のA31−2アドレスラインを3つのフィールドに解読
する。即ち、(i)217(128K)ページのいずれ
がアクセスされていたかを決定する17ビツトのタグフ
ィールド、(it)キャッシュメモリ42の104個の
ブロックの中から1つのブロックを選択するための10
ビツトのブロックアドレス、及び(i i i)選択さ
れた前記ブロックに於ける8個のサブブロックのいずれ
かを選択するための3つの追加ビットである。次に、キ
ャッシュコントローラ44は、17ビツトの前記タグフ
ィールドをそのタグRAMに記憶されている前記タグの
17ビツトのタグフィールドと比較して、キャツシュヒ
ツト即ち読取りまたは書込みヒツトが生じているかどう
かを決定する。
キャツシュヒツトの場合には、キャッシュコントローラ
44がキャッシュメモリ42を残りの13個のアドレス
ラインで駆動して、場合に応じてデータをキャッシュメ
モリ42に書き込みまたはキャッシュメモリ42からデ
ータを読み取る。
2ウエイ・セットアソシアティビティ争モードの場合に
は、キャッシュメモリ42が2つの同じサイズのバング
に分割される。主メモリに於ける各ページは、キャッシ
ュメモリ42の前記バンクと同じサイズである。前記タ
グRAMに於けるタグは、各キャッシュバンクに於ける
各ブロックと関連する。例示すれば、各タグフィールド
は218(256K)ページを識別する18ビツトの幅
を有する。タグRAMに記憶される前記タグの構造はそ
れに応じて変化する。ページの数は、ページ/バンクの
サイズが半分に縮小するので、直接マツピングと比較し
て2倍になる。各ブロックについての単一のダーティビ
ット及び8個のサブブロックについての8個の有効ビッ
トは、変更な(元のままである。
CPU48がメモリをアドレスしかつキャッシュコント
ローラ44が2ウエイ・セットアソシアティビティ・モ
ードにある場合、キャッシュコントローラ44はローカ
ルバス62からのA31−2アドレスラインを3つのフ
ィールドに解読する。
即ち、(i)218ページのいずれがアクセスされてい
たかを決定する18ビツトのタグフィールド、(i i
)前記キャッシュバンク内の512個のブロックの中の
いずれかを選択する9ビツトのブロックアドレス、及び
(i i i)選択された前記ブロック内の8個のサブ
ブロック内のいずれかを選択する3つの追加ビットであ
る。この場合に、キャッシュコントローラ44は、18
ビツトの前記タグフィールドをタグRAMに記憶されて
いる前記タグの18ビツトのタグフィールドと比較して
、キャツシュヒツトが生じたかどうかを決定する。
キャツシュヒツトの場合には、キャッシュコントローラ
44が、キャッシュメモリ42を残りの12個のアドレ
スラインで駆動して、場合に応じてキャッシュメモリ4
2にデータを書き込みまたはキャッシュメモリ42から
データを読み取る。
4ウエイ・セットアソシアティビティΦモードの場合に
は、キャッシュメモリ42が4つの等しいサイズのバン
クに分割される。主メモリの各ページは、キャッシュメ
モリ42の前記各バンクと同じサイズを有する。タグR
AM内のタグは各キャッシュバンクの各ブロックと関連
する。例示すれば、各タグは、214(512K)ペー
ジを識別する19ビツトの幅を有する。同様に、タグR
AMに記憶されているタグの構造はそれに従って変化し
なければならない。ページの数は、ページ/バンクのサ
イズが4分の1に縮小するので、直接マツピングと比較
して4倍である。各ブロックについての1個のダーティ
ビット及び8個のサブブロックについての有効ビットは
、変化なく元のままである。
CPU48がメモリをアドレスし、かつキャッシュコン
トローラ44が4ウエイ・セットアソシアティビティ・
モードにある場合、キャッシュコントローラ44はロー
カルバス62からのA31−2アドレスラインを3つの
フィールドに解読する。即ち、(i)219ページのい
ずれがアクセスされていたかを判断する19ビツトのタ
グフィールド、(ii)キュッシュバンク内の256個
のブロックの中のいずれかを選択する8ビツトのブロッ
クアドレス、及び(i i i)選択された前記ブロッ
ク内の8個のサブブロックのいずれかを選択する3つの
追加ビットである。この場合に、キャッシュコントロー
ラ44は、19ビツトの前記タグフィールドをタグRA
M内に記憶されている前記タグの19ビツトのタグフィ
ールドと比較して、キャツシュヒツトが生じたかどうか
を判断する。キャツシュヒツトの場合には、キャッシュ
コントローラ44がキャッシュメモリ42を残りの11
個のアドレス線で駆動して、場合に応じてデータをキャ
ッシュメモリ42に書き込みまたはデータをキャッシュ
メモリ42から読み取る。
第7図は、第5図のマイクロコンピュータ・システム4
0のキャッシュコントローラ44のブロック図である。
キャッシュコントローラ44は、ローカルバス62のア
ドレスラインA31−A2に接続された入力を有するア
ドレス多重論理100と、拡張ローカルバス58のアド
レスライン5A31−8A2に接続された入力/出力と
、キャッシュメモリ42のアドレス入力CA15−CA
Oに接続されたキャッシュメモリ・アドレス出力CAI
 5−CAOと、拡張ローカルバス58のアドレスライ
ン5AI−8AOに接続された入力とを有する。キャッ
シュメモリ44が256Kまでのサイズのキャッシュメ
モリを支援するために16個のキャッシュメモリ令アド
レスライン(CA15−CAO)を有することに注意す
べきである。
アドレス多重論理100は、タグRAM102.104
.106.108(タグRAM0−3)の入力と、タグ
コンパレータ110.112.114.116(タグC
OMPO−3)の入力と、有効ビットデコーダ118の
入力と、バイト選択論理120の入力と、LRU−RA
M124の入力に接続された出力とを有する。タグRA
M102.104.106.108は、それぞれタグコ
ンパレータ110.112.114.116の入力に接
続された出力を有する。タグコンパレータ110.11
2.114.116は、有効ビット・デコーダ118の
出力に接続された入力と、出力コントロール論理122
の入力に接続された出力と、タグデータ・ジェネレータ
130の入力に接続された出力とを有する。タグデータ
・ジェネレータ130は、タグRAM102.104.
106.108の入力とアドレス多重論理の入力とに接
続された出力を有する。LRU−RAMI24は、LR
U@RAM124の入力と出力コントロール論理122
の入力とに接続された出力を有するLRU論理128の
入力に接続された出力を有する。
また、LRU論理128は、出力コントロール論理12
2のヒツトステータス出力に接続された入力を有する。
また、出力コントロール論理122のヒツトステータス
出力は、コントロール論理状態マシン132の入力とタ
グ読取り/書込みコントロール134の入力とに接続さ
れている。タグ読取り/書込みコントロール134は、
タグRAM102.104.106.108の入力に接
続された出力を有する。出力コントロール論理122は
、更にキャッシュメモリ42の対応する入力に接続され
たキャッシュメモリ出力許可出力C0ED−A#と、キ
ャッシュメモリ42の対応する入力に接続されたキャッ
シュメモリ書込み許可出力CWED−A#とを有する。
バイト選択論理120は、ローカルバス62のバイト許
可ラインBE3−0#に接続された入力と、拡張ローカ
ルバス58のバスサイズラインMC816#、MC33
2#に接続された入力とを有する。また、バイト選択論
理120は、キャッシュメモリ42の対応する入力に接
続されたキャッシュメモリ選択出力CC53−0#と、
拡張ローカルバス58のバイト許可ラインEBE3−0
#に接続された拡張ローカルバス・バイト許可出力EB
E3−0#とを有する。
コントロール論理132は、ローカルバス62のCPU
  Bus−Op (ADS#、W/R#、D/C#、
及びM/IO#) 、LOCK#、HLDASMEMR
#、及びMEMW#の各ラインに接続された入力と、拡
張ローカルバス58のEHOLDライン及びEREAD
YI #ラインに接続された入力とを有する。コントロ
ール論理132は、ローカルバス62のPH0LD、R
EADYO#、及びWBSの各ラインに接続された出力
と、拡張ローカルバスのE−Bus  Op (EAD
S#、EW/R#、E D/C#、及びWM/IO#)
、EHLDA及びERDYEN#の各ラインに接続され
た出力とを有する。また、コントロール論理132はア
ドレス多重論理100と、タグRAM102.104.
106.108と、タグコンパレータ110.112.
114.116と、有効ビット・デコーダ118と、バ
イト選択論理120と、出力コントロール論理122と
、LRU・RAMI24と、LRU論理128と、タグ
データ・ジェネレータ130と、タグ読取り/書込みコ
ントローラ134とに適当に接続されている。
(以下余白) 通常のCPU48による読取り及び書込みの際に、アド
レス多重論理100がアドレスA31−A15を取って
、それを適当にキャッシュメモリ・アドレス出力CA1
5−CAOと、タグRAN102.104.106.1
08(タグRAM0−3)と、タグコンパレータ110
.112.114.116と、有効ビット・デコーダ1
18と、バイト選択論理120と、及びLRU  RA
MI24とに分散する。有効ビット・デコーダ118は
、次に入力としてタグコンパレータ110.112.1
14.116に供給されるアドレス多重論理100から
の前記アドレスを解読する。タグコンパレータ110.
112.114.116は、アドレス多重論理100か
らのアドレスラインA31−A13、タグRAM102
.104.106.108の出力、及び有効ビット・、
デコーダ118の出力を取って、キャツシュヒツトまた
はキャッシュミスが生じているかどうかを決定する。
このヒツトまたはミスの決定が、次に出力コントロール
論理122へと送られる。次に、出力コントロール論理
122が、適当なキャッシュメモリ出力許可C0ED−
A#またはキャッシュメモリ書込み許可CWED−A#
を放出し、かつ更にコントロール論理132及びタグ読
取り/書込みコントローラ134にヒツトステータス出
力を出力する。
タグデータ・ジェネレータ130は、タグRAM102
.104.106.108のいずれかに書き込まれるべ
きデータを該タグRAMが更新されるべき時に決定する
。タグコンパレータ110.112.114.116は
、コントロール論理132の制御下で、アドレス多重論
理100からのアドレスをタグデータージェネレータ1
30に送る。このアドレスデータをタグデータ番ジェネ
レータ130が用いて、更新されるタグRAMIO2,
104,106,108に書き込まれるべきデータを決
定する。別言すれば、コントロール論理132によって
選択されるタグコンパレータ110.112.114.
116のいずれかを介して供給されるアドレス多重論理
100からのアドレスが、更新さレルタグRAM102
.104.1406.108に送られかつ書き込まれて
、適当なタグフィールドを更新する。
LRU−RAM124は、256X6ビツトRAMであ
り、CPU48によって使用される最後のバンクのトラ
ックを対応する各キャッシュ記憶場所についてキャッシ
ュメモリ42内に維持するために使用される。LRU−
RAMI24は、3つの独特な2ビツトバンクIDの固
定シーケンスに対してフラッシュ(1’1ush )シ
ーケンスの際に初期化される。4ウエイ・セット連想キ
ャッシュに関する直送式LRU方法に於ては、4つの独
特な2ビツトバンクIDが記憶される。4番目のバンク
IDは常に他の3つのバンクIDから得られるので、3
個のバンクIDのみが記憶される。
LRU論理128が、2ビツトの幅及び3バンクIDの
深さを有するスタックの上部に最新に使用されたバンク
iDを配置する機能を実行する。
最新に使用された前記IDより」二にあった他の全バン
クIDが前記スタックに於て押し下げられる。
前記スタックの深さが唯3つであり、かつバンクが4個
であるので、最も古くに使用されたバンクのバンクID
が、キャッシュコントローラ44が4ウエイ・セット連
想モードにある場合に、前記スタ・ンク上にある他の3
個のバンクIDから論理的に導き出される。2ウエイ晦
セツト連想モードでは、最も古くに使用されたバンク対
が、最新に使用されたバンクIDの逆最上位ビットによ
って表示される。直接マツピング・モードでは、LRU
出力が無視される。
通常の動作時には、バイト選択論理120が適当なキャ
ッシュメモリチップ選択出力(C83−0#)または適
当な拡張ローカルバス・バイト許可出力(EBE3−0
#)を決定して、ローカルバス62のバイト許可ライン
(BH3−0#)に基づいて仮定する。スヌープ動作に
於ては、これが、スヌープヒットの場合に、更新される
べきキャッシュメモリ42内の適当なバイトを決定しな
ければならないという点で変化する。これは、アドレス
多重論理100を介してバイト選択論理120に供給さ
れる拡張ローカルバス58のアドレスライン5AI−8
AOによって決定される。次に、バイト選択論理120
が、キャッシュメモリ42内のいずれのバイトを更新す
るべきかを決定する。拡張ローカルバス58からのMC
816#及びMC832#入力が、8ビツト、16ビツ
トまたは32ビット動作のいずれが行われているかを決
定する。
コピーパックを実行しなければならない場合には、タグ
読取り/書込みコントローラが、コピーパックしなけれ
ばならないキャッシュメモリ42の記憶場所及び書き込
まれるべきタグRAMIO2,104,106,108
を決定する。例えば、コピーパック・モー′ドに於ける
書込みヒツトの場合には、前記ヒツトを受け取ったタグ
RAMIO2,104,106,108が決定され、か
つそのダーティビット・セットが必要になる。
第8図乃至第10図は、プロセッサ状態マシン、キャッ
シュ動作状態マシン、及び拡張ローカルバス状態マシン
の状態図である。集合的に、これらは第7図のコントロ
ール論理132によって実行される制御機能を表してい
る。
第8図乃至第10図の状態図に於ては、遷移方程式の結
果が高論理レベルである場合に成る状態から別の状態へ
の遷移が生じる。例えば、第8図に関して、PiとPa
との間に於ける遷移は、篩oop信号にλ丁「yl−信
号を加えた結果が高論理レベルである場合に発生する。
ここで、信号の上のバー表示(−)は、該信号が偽であ
るというこてはなく、該信号の「否」を表す。上記実施
例に於て、PiからPaへの遷移は、s noopが偽
(即ち、5noopが高であるように低であること)で
あり、かつADS#が真(即ち、ADS#が高であるよ
うに低であること)である場合に発生する。
第8図のプロセッサバス状態マシンは、プロセッサバス
62の動作に追従して、該動作と拡張ローカルバス58
からのスヌーブ動作との間のインタロックを制御するキ
ャッシュコントローラ44のコントロール論理の部分に
関する状態図を表している。前記プロセッサバス状態マ
シンはRESET状態からPi(アイドル)状態に入り
、がっADS#が真(ADS#が高)と主張されるまで
前記Pi状態に留まる。同時に5noopが真(即ち、
スヌープ動作が進行中)であるならば、前記プロセッサ
バス状態マシンはPr状態に遷移する。Pr状態では、
プロセッサバス62の要求は、未定状態であるが、スヌ
ープ動作が進行中であることによって満足されてはいな
い。ADS#が真(λDS#が高)になる時に5noo
pが偽(snoopが高)であった場合には、前記バス
状態マシンがPa(プロセッサ・バスアクティブ)状態
に遷移する。
前記プロセッサバス状態マシンがPr状態にあるならば
、5noopが偽(snoopが高)になってスヌープ
動作が完了したことを示すまで、その状態のままである
。そして、Pa状態に遷移する。
Pa状態の場合に、pready#が真(V下eady
#が高)になると、前記プロセッサバス状態マシンがP
i状態に遷移する。pready#が次のクロックサイ
クルに於て真にならない(即ち、pready#が高の
ままである)場合には、前記プロセッサバス状態マシン
は、pready#が真(pready#が高)になる
までP2状態に遷移しかつその状態を維持するが、その
時点に於て前記プロセッサバス状態マシンは前記Pi状
態に再び遷移する。前記P2状態は、プロセッサバス6
2の動作の第2の終了状態、即ち第1のクロックサイク
ルの終了と第2のクロックサイクルの時に生じる状態遷
移との間の状態である。(プロセッサバス62の動作に
は、通常2つのクロックサイクルが必要である。) 前記プロセッサバス状態マシンがPa状態にある場合に
は、スヌープ動作が開始されない。逆に、スヌープ動作
が行われている場合には、Pa状態に入らない。pre
ady#信号は、プロセッサバス状態マシンがPa状態
またはP2状態のいずれかでなければ、真(即ち、pr
eady#が高であるように低)になることができない
第9図のキャッシュ動作状態マシンは、キャッシュRA
M42に空が無いかまたは空が有る間の状態を示してい
る。前記キャッシュ動作状態マシンは前記RESET状
態かまたは0Pf(フラッシュ)状態に入り、かつ1n
it  done信号が真になるまでその状態である。
In1t  d。
ne倍信号、キャッシュコントローラ44内の全ての前
記キャッシュタグを順番に配列するために使用されるキ
ャッシュコントローラ44の8ビツト・アドレスカウン
タのキャリー出力から到来する。前記キャッシュ動作状
態マシンが前記OPf状態に入ると、クリヤされる各タ
グ内の全てのブロック有効ビット及びダーティビットに
よって書込み動作が強制される。これによって、キャッ
シュコントローラ44が空キャッシュ状態に初期化され
る。前記OPf状態にある間、全プロセッサバス62の
要求は、キャッシュ俸フィル(cachef’1ll)
 b<全く実行されない場合を除いて、ミスとして取り
扱われる。
キャッシュ動作状態マシンが0Pi(アイドル)状態に
ある場合には、タグ中ルックアップがプロセッサバス6
2の要求またはスヌープ要求ニより実行される。前記キ
ャッシュ動作状態マシンへの入力であるrdmiss信
号、dirty信号及びblock  hit信号が、
第8図の前記プロセッサバス状態マシンのPa状態の間
のみ固定される。キャッシュ読取りミスを生じさせるキ
ャッシュ可能なCPU48メモリ読取り動作が生じるま
で、前記キャッシュ動作状態マシンは前記OPi状態の
ままである。キャッシュ読取りミスが生じると、キャッ
シュ動作状態マシンは、要求された主メモリ記憶場所を
キャッシュメモリ42内に書き込む前に要求された前記
主メモリ記憶場所が書き込まれるべきであるキヤ―ソシ
ュメモリ42のセグメントを主メモリ60に「コピーパ
ック」する必要があるかどうかに従って、前記OPr状
態またはOPw状態のいずれかに遷移する。
要求された前記主メモリ記憶場所を含む前記ブロックが
キャッシュメモリ42内にある場合には、前記キャッジ
i動作状態マシンは前記OPr状態に遷移する。この時
に、要求された前記主メモリ60の記憶場所を含むサブ
ブロック以外のこのブロック内のサブブロックがキャッ
シュメモリ42内に記憶される。また、前記キャッシュ
動作状態マシンは、選択された主メモリ60の記憶場所
が書き込まれるべきブロックが「ダーティ」でないとい
う条件で前記選択主メモリ60を含む前記ブロックが記
憶場所キャッシュメモリ42内に無い場合には、OPr
状態に遷移する。
要求された前記主メモリ記憶場所を含む前記ブロックが
キャッシュメモリ42内に無い場合には、前記LRU−
RAMが使用されて、前記記憶場所について使用可能な
タグが最も古くに使用されたものであるかどうかを決定
する。次に、そのタグに関するダーティビットが点検さ
れる。該ダーティビットが偽(dirtyが高)である
場合は、前記キャッシュ動作状態マシンが前記OPr状
態に遷移する。逆に、ダーティビットが真(高)の場合
には、前記キャッシュ動作状態マシンが「コピーバック
」が生じるOPw状態に遷移する。
前記OPr状態では、要求された前記主メモリ60記憶
場所を含む新しいサブブロックが、最後の語の読込みが
CPU48の読込み要求を満足させるような順序で主メ
モリ60からキャッシュメモリ42内に読み込まれる。
E  reqが真とされ、かつ十分な拡張ローカルバス
58の読込みが行われてキャッシュコントローラ44内
にサブブロックカウンタが満足されるまで、真を維持す
る。
その時点に於て、sb  1astが真(高)にセット
されて、前記キャッシュ動作状態マシンを前記OPi状
態に遷移させる。
前記OPw状態の場合には、キャッシュコントローラ4
4が、LRUタグのブロック内の全有効サブブロックの
主メモリ60へのメモリ書込みを実行する。各サブブロ
ックの有効ビットは、各サブブロックの最後の語が書き
込まれる時にクリヤされる。前記LRUブロックの全有
効ビットがクリヤされている場合に、blk  val
idが偽(低)にセットされる。前記サブブロックが書
き込まれている場合には、sb  1astが真(高)
になる。この時点に於て、前記キャッシュ動作状態マシ
ンが前記OPr状態に遷移する。この遷移の間、sb 
 1astが偽(低)にリセットされる。
第10図の拡張ローカルバス状態マシンは、拡張ローカ
ルバス58の動作とCPU48との間に於けるインタロ
ックを制御するキャッシュコントローラ44のコントロ
ール論理の部分に関する状態図である。RESET状態
の際に、前記拡張ローカルバス状態マシンはEi(アイ
ドル)状態にされる。前記状態マシンは、E  req
信号が真(高)であるとされるかまたはEHOLDが真
(高)であるとされ、かつキャッシュコントローラ44
が拡張ローカルバス48を解放し得る他の条件が存在す
るまで、E2状態に留まる。EHOLDがEi状態また
はE2状態のいずれかに於て真(高)である場合には、
CPU48のLOCK#が偽(fiが高)であり、WB
Sが偽(WBSが高)であって後書込みバッファが空で
あることを示し、かつ第9図の前記キャッシュ動作状態
マシンが前記OPr状態にない(即ち、新たなサブブロ
ックがその時点に於て主メモリ60からキャッシュメモ
リ42内にフェッチされていない)場合にのみ、Eh(
ホールド)状態に遷移される。これらの全条件が適合し
ない場合には、それらが適合しかつ拡張ローカルバス状
態マシンがEi状態またはE2状態のいずれかになるま
で、EHOLDは無視される。
前記EHOLD条件がEi状態に於て真でない場合には
、前記拡張ローカルバス状態マシンは、それらが真であ
るかまたはE  reqが真(高)であるまで、前記E
i状態に留まる。E  reqが真でありかつ前記EH
OLD条件がそうでない場合には、前記拡張ローカルバ
ス状態マシンが前記E1状態に遷移する。前記EHOL
D条件がEreqに優先する点に注意する。
E1状態である場合、拡張ローカルバス状態マシンは、
常に次のサイクルによってE2状態に遷移する。E2状
態である場合、前記拡張ローカルバス状態マシンは、E
READYI #が真(EREADYI #が高)であ
るまでE2状態に留まる。
前記E2状態の時にEREADYI#が真(E、REA
DYI #が高)である場合、拡張ローカルバス状態マ
シンは次のEi、El、またはEhのいずれかの状態に
遷移する。前記EHOLD条件が真である場合には、前
記拡張ローカルバス状態マシンは他の入力に拘らず前記
Eh状態に遷移する。
前記EHOLD条件が真でない場合には、前記拡張ロー
カルバス状態マシンは、前記E  reqが真(高)で
ある場合に前記E1状態へ、またはEreqが真でない
(E  reqが高)である場合には前記Ei状態へ遷
移する。
前記拡張ローカルバス状態マシンが前記Eh状態にある
場合には、他の条件に拘らずEHOLDが真(高)であ
る限りそのまま維持される。EHOLDが偽に(EHO
LDが高に)なり、かつEreqが偽(E  reqが
高)である場合、前記拡張ローカルバス状態マシンは前
記Ei状態に遷移する。EHOLDが偽(EHOLDが
高)になりかつE  reqが真(高)であるならば、
前記拡張ローカルバス状態マシンは前記E1状態に遷移
する。
前記拡張ローカルバス状態マシンは、拡張ローカルバス
58の出力であるEHLDA信号を直接制御して、前記
バスを制御していることをリモート・バスマスクデバイ
スに示す。前記Eh状態が、キャッシュコントローラ4
4によって駆動されるEHLDA以外の全拡張ローカル
バス制御信号を無効にしく非駆動状態にし)、かつ前記
EHLDA信号を真(高)とする。E1状態によって、
EADS#出力が前記状態の持続時間の間真(低)であ
るとされ、拡張ローカルバス58上のデバイスに対して
拡張ローカルバス58の動作開始を表示する。前記E2
状態によって、EREADY1#信号を用いてCPU4
8の出力となるべき前記pready#信号を形成でき
るが、これは、外部バス56の動作からのデータがCP
U48に送られなければならない場合、または外部バス
56の動作が完了するまでCPU48を進行させてはな
らないような外部即ちシステムバス56の動作で終了す
る特定の動作の間だけである。
jsnoopJ信号、rpready#J信号、信号、
rblock  hitJ信号、「E  req」信号
及び[sb 1astJ信号は、全てキャッシュコント
ローラ44の内部生成信号である。
以上、本発明について特定の実施例を参照しつつ詳細に
説明したが、本発明はその技術的範囲内に於て上述した
実施例に様々な変形・変更を加えて実施することができ
る。
(以下余白) 表^説明
【図面の簡単な説明】
第1図は、直接マツピングされた32KBキヤツシユメ
モリに関するキャッシュ構造を示すブロック図である。 第2図は、2ウエイ拳セツトアソシアテイビテイを有す
る32KBキヤツシユメモリに関するキャッシュ構造を
示すブロック図である。 第3図は、4ウエイ・セットアソシアティビティを有す
る32KBキヤツシユメモリに関するキャッシュ構造を
示すブロック図である。 第4図は、従来技術のインテル82385キヤツシユコ
ントローラを使用するキャッシュメモリを有する従来の
マイクロコンピュータ・システムを示すブロック図であ
る。 第5図は、本発明のキャッシュコントローラを使用する
キャッシュメモリを有するマイクロコンピュータ・シス
テムのブロック図である。 第6図は、第5図のキャッシュコントローラへの様々な
制御入力及び出力に関するハードウェアインタフェース
を示すブロック図である。 第7図は、第7a図と第7b図とからなり、本発明によ
り構成されるキャッシュコントローラを詳細に示すブロ
ック図である。 第8図乃至第10図は、それぞれ第7図のキャッシュコ
ントローラの動作を示す状態図である。 10・・・マイクロコンピュータ・システム、12・・
・マイクロプロセッサ、14・・・キャッシュメモリ、
18・・・32ビツト・トランシーバ、20・・・チッ
プセット、22・・・16ビツト・バッファ、24・・
・32ビツト・バッファ、26・・・バスコントロール
出力、28・・・8ビツトeラツチ、30・・・キャッ
シュコントローラ、32・・・システムバス、34・・
・ローカルバス、36・・・DMAデバイス、38・・
・主メモリ、40・・・マイクロコンピュータΦシステ
ム、42・・・キャッシュRAM、44・・・キャッシ
ュコントローラ、46・・・DMAデバイス、48・・
・CPU。

Claims (3)

    【特許請求の範囲】
  1. (1)プロセッサ・アドレスバスとプロセッサ・データ
    バスとを有し、ロック書込み命令シーケンスを実行し得
    るプロセッサと、 データを記憶するための複数の場所と、前記プロセッサ
    ・データバスに接続されたキャッシュ・データバスとを
    有するキャッシュメモリと、システム・アドレスライン
    とシステム・データラインとを有するシステムバスと、 データを記憶するための複数の場所を有し、かつ前記シ
    ステム・アドレスライン及び前記システム・データライ
    ンに接続された主メモリと、前記システム・アドレスラ
    イン及び前記システム・データラインに接続された周辺
    デバイスと、前記周辺デバイスが前記システムバスを制
    御できるようにするために前記プロセッサ・アドレスバ
    ス、プロセッサ・データバス、キャッシュメモリ、シス
    テム・アドレスライン及びシステム・データラインに接
    続され、かつ前記周辺デバイスが前記システムバスを制
    御している場合に、ロック書込み命令の開始前に前記プ
    ロセッサの動作を停止させる制御手段とを備え、 前記プロセッサがロック命令シーケンスを開始すると、
    前記制御手段が前記周辺デバイスを前記システムバスを
    制御できなくすることを特徴とするマイクロコンピュー
    タ・システム。
  2. (2)前記マイクロプロセッサが、ロック読取り命令で
    全ロック命令シーケンスを開始し、かつロック命令を実
    行する際に前記制御手段にロック命令信号を通信し、前
    記プロセッサが前記プロセッサ・データバスに於ける有
    効データの存在を示す準備完了信号を受信するための準
    備完了入力ラインを有し、前記周辺デバイスが前記シス
    テムバスを制御している際に前記プロセッサがロック読
    取り命令を開始した時に、前記周辺デバイスが前記シス
    テムバスの制御を止めるまで前記制御手段が前記準備完
    了入力ラインを偽であるとして前記プロセッサを停止さ
    せることを特徴とする請求項1に記載のマイクロコンピ
    ュータ・システム。
  3. (3)前記周辺デバイスが、前記制御手段に要求信号を
    通信するために前記制御手段に接続されたEHOLD信
    号線を有し、前記制御手段が、前記プロセッサがロック
    命令を実行していない時に前記制御手段が前記周辺デバ
    イスにEHLDA信号を通信できるようにするために、
    前記周辺デバイスに接続されたEHLDA信号線を有し
    、前記周辺デバイスが、前記EHLDA信号を受け取る
    ことによって前記周辺デバイスが前記システムバスを制
    御することが可能になり、前記プロセッサがロック命令
    を実行する時には前記制御手段が前記EHLDA信号を
    真にさせないようになっていることを特徴とする請求項
    2に記載のマイクロコンピュータ・システム。
JP2306957A 1989-11-13 1990-11-13 マイクロコンピュータ・システム Pending JPH03172947A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US43493189A 1989-11-13 1989-11-13
US434,931 1989-11-13

Publications (1)

Publication Number Publication Date
JPH03172947A true JPH03172947A (ja) 1991-07-26

Family

ID=23726294

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2306957A Pending JPH03172947A (ja) 1989-11-13 1990-11-13 マイクロコンピュータ・システム

Country Status (2)

Country Link
EP (1) EP0428149A3 (ja)
JP (1) JPH03172947A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8366295B2 (en) 2005-12-16 2013-02-05 Nichia Corporation Light emitting device

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0463967A3 (en) * 1990-06-29 1993-02-24 Digital Equipment Corporation Cache set selection for high-performance processor
IT1241318B (it) * 1990-11-19 1994-01-10 Olivetti & Co Spa Dispositivo di indirizzamento di memoria
US5485594A (en) * 1992-07-17 1996-01-16 International Business Machines Corporation Apparatus and method using an atomic fetch and add for establishing temporary ownership of a common system resource in a multiprocessor data processing system
EP0597729A1 (en) * 1992-11-13 1994-05-18 Cyrix Corporation Method of allowing write-back caching in a write-through environment
US5544342A (en) * 1993-06-30 1996-08-06 International Business Machines Corporation System and method for prefetching information in a processing system
US5557769A (en) * 1994-06-17 1996-09-17 Advanced Micro Devices Mechanism and protocol for maintaining cache coherency within an integrated processor
US5778431A (en) * 1995-12-19 1998-07-07 Advanced Micro Devices, Inc. System and apparatus for partially flushing cache memory
US6289420B1 (en) 1999-05-06 2001-09-11 Sun Microsystems, Inc. System and method for increasing the snoop bandwidth to cache tags in a multiport cache memory subsystem
GB2516092A (en) * 2013-07-11 2015-01-14 Ibm Method and system for implementing a bit array in a cache line
CN109101439B (zh) * 2017-06-21 2024-01-09 深圳市中兴微电子技术有限公司 一种报文处理的方法及装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0288649B1 (en) * 1987-04-22 1992-10-21 International Business Machines Corporation Memory control subsystem

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8366295B2 (en) 2005-12-16 2013-02-05 Nichia Corporation Light emitting device

Also Published As

Publication number Publication date
EP0428149A3 (en) 1992-07-08
EP0428149A2 (en) 1991-05-22

Similar Documents

Publication Publication Date Title
JP3067112B2 (ja) 遅延プッシュをコピー・バック・データ・キャッシュに再ロードする方法
US5157774A (en) System for fast selection of non-cacheable address ranges using programmed array logic
US6366984B1 (en) Write combining buffer that supports snoop request
US5715428A (en) Apparatus for maintaining multilevel cache hierarchy coherency in a multiprocessor computer system
US5091850A (en) System for fast selection of non-cacheable address ranges using programmed array logic
US4959777A (en) Write-shared cache circuit for multiprocessor system
US5557769A (en) Mechanism and protocol for maintaining cache coherency within an integrated processor
US5903911A (en) Cache-based computer system employing memory control circuit and method for write allocation and data prefetch
US5623633A (en) Cache-based computer system employing a snoop control circuit with write-back suppression
US5426765A (en) Multiprocessor cache abitration
US5802559A (en) Mechanism for writing back selected doublewords of cached dirty data in an integrated processor
US6049847A (en) System and method for maintaining memory coherency in a computer system having multiple system buses
JP2554449B2 (ja) キャッシュ・メモリを有するデータ処理システム
US6202125B1 (en) Processor-cache protocol using simple commands to implement a range of cache configurations
US6321296B1 (en) SDRAM L3 cache using speculative loads with command aborts to lower latency
US5778431A (en) System and apparatus for partially flushing cache memory
US20020144064A1 (en) Controlling cache memory in external chipset using processor
US6219745B1 (en) System and method for entering a stream read buffer mode to store non-cacheable or block data
JP2000305842A (ja) ダイレクト・メモリ・アクセスおよびキャッシュ性能を改善する方法および装置
JPH09259036A (ja) ライトバックキャッシュおよびライトバックキャッシュ内で整合性を維持する方法
JPH0997214A (ja) 補助プロセッサのためのアドレス変換を含む情報処理システム
US5829027A (en) Removable processor board having first, second and third level cache system for use in a multiprocessor computer system
JPH03172947A (ja) マイクロコンピュータ・システム
US5717894A (en) Method and apparatus for reducing write cycle wait states in a non-zero wait state cache system
JP2000501539A (ja) アドレス競合検出を持つ多重ポート・キャッシュメモリ