JPH0628256A - データ処理システム - Google Patents

データ処理システム

Info

Publication number
JPH0628256A
JPH0628256A JP3337929A JP33792991A JPH0628256A JP H0628256 A JPH0628256 A JP H0628256A JP 3337929 A JP3337929 A JP 3337929A JP 33792991 A JP33792991 A JP 33792991A JP H0628256 A JPH0628256 A JP H0628256A
Authority
JP
Japan
Prior art keywords
cache
address
module
row
data
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
JP3337929A
Other languages
English (en)
Inventor
John H Crawford
ジョン・ハワード・クローフォード
Sundaravarathan R Iyengar
サンダラヴァラザン・ラジャゴパラン・イーエンガー
James Nadir
ジェイムズ・ネイデア
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of JPH0628256A publication Critical patent/JPH0628256A/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/0864Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using pseudo-associative means, e.g. set-associative or hashing
    • 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/0877Cache access modes
    • G06F12/0884Parallel mode, e.g. in parallel with main memory or CPU

Abstract

(57)【要約】 【目的】 既存のマイクロプロセッサにエンドユーザー
が追加することができるキャッシュコントローラを提供
する。 【構成】 キャッシュミスの場合にシステムの応答を妨
害しないようにマイクロプロセッサバス(14,15,
29)と並列に位置するキャッシュコントローラ(1
0)。キャッシュコントローラのタグラム(24)は2
経路構成をとり、それぞれの経路はキャッシュデータア
レイのアドレスを求めてディレクトリを連想探索するた
めのタグビット・有効ビット記憶部分を含む。外部キャ
ッシュメモリ(8)は、システムの複数の利用可能なメ
モリモジュールに対して双方の経路を同時に利用するこ
とができ、それにより、経路アクセス時間をタグルック
アップと並行して起こさせるように編成されている。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はデータ処理システムに関
し、特に、頻繁にアクセスされる記憶場所に対して局所
記憶装置を構成するコントローラ及びデータキャッシュ
に関する。
【0002】
【従来の技術】キャッシュは、大型で相対的に低速であ
る主メモリの頻繁にアクセスされる記憶場所に対して局
所記憶装置を構成するために使用される相対的に高速の
小型局所メモリである。情報又はその情報のコピーを記
憶することにより、キャッシュはメモリ参照を盗聴し、
要求をシステムバスを介して主メモリへ転送することな
くそれらのメモリ参照を直接に処理することができる。
その結果、メモリバスの交通は少なくなり、要求側プロ
セッサに対するCPUバスの待ち時間は短縮される。
【0003】IBMコンパチブルパーソナルコンピュー
タにおいて現在使用されている最も強力なマイクロプロ
セッサは、より大容量のメモリと、より高速の動作を求
めるアプリケーションプログラムの増々大きくなる要求
を満たすためにキャッシングを使用するIntel80
486である。Intel80486は主プロセッサ
と、数理プロセッサと、8KバイトのRAMデータキャ
ッシュを伴うキャッシュコントローラとを有し、それら
は全て単一のチップに集積されている。内部キャッシュ
は、CPUがその命令やデータを求めて外部メモリサブ
システムとインタフェースしなければならない回数を減
らすことを目的としている。これは次のようにして実現
される。CPUがデータを要求すると、内部8KRAM
キャッシュにそのデータが存在するか否かを知るため
に、キャッシュはデータのアドレスを検査する。データ
/命令が内部キャッシュにあれば、CPUの要求を約1
5ns以内に満たすことができるが、データ/命令が内
部キャッシュに存在していない場合には70〜100n
sを要する。
【0004】データ/命令が内部キャッシュにないとき
のアクセス時間をさらに短縮するために、2次レベルキ
ャッシュを使用する場合が多い。2次レベルキャッシュ
は80486CPUの外部にあるが、主メモリよりはる
かに速いアクセス時間を支援する。
【0005】要求が大きくなるにつれて、さらに多くの
メモリを追加することが望まれるようになるので、シス
テムにおけるメモリモジュールの構成に応じて、非常に
広いアドレススペースにマッピングできると共に、狭い
アドレススペースにも選択的にマッピングできる単一の
2次レベルキャッシュコントローラを設けると有利であ
る。
【0006】
【発明が解決しようとする課題】従って、本発明の目的
は、既存のマイクロプロセッサにエンドユーザー設置可
能モジュールとして追加することができるキャッシュコ
ントローラを提供することである。また、システム内の
メモリモジュールの配置に応じて、非常に広いアドレス
スペースにマッピングできると共に、狭いアドレススペ
ースにも選択的にマッピングできるキャッシュコントロ
ーラを提供することも本発明の目的である。
【0007】
【課題を解決するための手段】簡単にいうと、本発明に
従えば、上記の目的は、キャッシュミスの場合にシステ
ムの応答を妨害しないようにマイクロプロセッサのバス
と並列に位置するキャッシュコントローラを提供するこ
とにより達成される。キャッシュコントローラは複数の
経路をもつように構成され、各経路はキャッシュデータ
アレイのアドレスを求めてディレクトリを連想探索する
ためのタグ及び有効ビット記憶部分を含んでいる。
【0008】本発明は、2次レベルキャッシュと主メモ
リの双方がアクセスアドレスのルックアップを同時に開
始できるという利点を有する。キャッシュヒットの場
合、キャッシュはデータ/命令を全く待ち時間なく供給
する。キャッシュミスの場合の並行ルックアップ方式は
その上に不利を招くことはない。
【0009】本発明は、キャッシュモジュールがあるた
めに、キャッシュモジュールの設置後のシステムの再構
成が容易であるという利点を有する。さらに、本発明
は、待ち状態なしアクセス、ワンクロックバースティン
グ、2経路セット連想、B10S ROMキャッシング
に伴ってすぐれた性能を示し且つ25/33MHz で動作
するという利点を有する。
【0010】本発明は1つのソケットで0,64K,1
28Kのキャッシュを構成し、複数のソケットを使用し
てカスケード可能であるという利点を有する。また、本
発明は、使用しやすく、ソフトウェアが平明であり、エ
ンドユーザーの側で設置でき且つCPUと同一のタイミ
ングを使用して通し書込みメモリ更新を行えるという利
点を有する。
【0011】本発明は、キャッシュ設置後に5〜30%
の性能アップを得るためにジャンパ,コンフィギュレー
ションソフトウェア,B10S/アプリケーション/オ
ペレーティングシステム支援をいずれも要求しないとい
う利点を有する。本発明は、添付の図面に示す本発明の
好ましい実施例の以下のさらに詳細な説明から明白にな
るであろう。
【0012】
【実施例】そこで、図1を参照する。図1は、本発明を
具現化したデータ処理システムのブロック線図である。
本発明のキャッシュモジュール10は、Intel80
486などの2次レベル,単一ポート,任意アドオンマ
イクロプロセッサ12用キャッシュコントローラであ
る。このモジュールは、いつ内部TAG RAM24を
探索することを必要とするかを確定するために、CPU
アドレスバス14のアクティビティを監視する。キャッ
シュモジュールは、キャッシュミスの場合にシステムの
応答を妨害しないように、マイクロプロセッサの信号バ
ス29、アドレスバス14及びデータバス15と並列に
位置している。
【0013】キャッシュは両方向セット連想として編成
される。コントローラはタグごとに2つの行を支援する
(セクター方式)か、又はタグごとに1つの行を支援す
る(非セクター方式)かのいずれかである。1つのキャ
ッシュモジュールで非セクター方式64Kデータキャッ
シュ又はセクター方式128Kデータキャッシュを直接
支援する。データキャッシュ8はキャッシュコントロー
ラの外部にある。キャッシュコントローラはデータキャ
ッシュのアドレスをスヌープレジスタ16及びアドレス
レジスタ18に緩衝すると共に、他の全てのデータキャ
ッシュ制御信号を供給して、キャッシュヒットがあった
ときには、待ち状態なしにプロセッサの動作を支援す
る。キャッシュモジュールはスヌープサイクル,バック
オフ及び早期BLAST終止を支援するための手段を具
備している。内部では、キャッシュコントローラは各デ
ータキャッシュ信号線のTAGアドレス及び状態を維持
する。セクター方式のキャッシュ動作を選択すべき場合
は、プロセッサアドレスバス14のA4をキャッシュモ
ジュールのLS(行選択)ピンに接続する。非セクター
方式のキャッシュ動作はLSをローにストラッピングす
ることにより選択される。
【0014】外部キャッシュモジュール単独キャッシン
WPSTRPストラッピング・オプションにより、キャ
ッシュモジュールは、データをマイクロプロセッサ12
の内部キャッシュではなく、キャッシュモジュールにキ
ャッシュすることが望まれるような状況を支援すること
ができる。そのような状況は、プロセッサのコードの一
部がROMに入っているときに起こる。ROMのデータ
をマイクロプロセッサ内部のオンチップキャッシュに内
部キャッシングして良い場合には、実際にROMの記憶
場所への書込みがシステムにより禁止されたときに、マ
イクロプロセッサはその内部キャッシュのROM記憶場
所に書き込むことが可能であろう。WPSTRPオプシ
ョンがローに拘束されると、キャッシュモジュールは、
プロセッサに対する行充填を有効にするために使用され
る第2のCKEN#パルスを抑制する。
【0015】64K非セクター方式キャッシュと128
セクター方式キャッシュ キャッシュモジュールは両方向セット連想である。信号
線選択(LS)入力ピンは、両方向TAG RAM24
がセクター方式であるか又は非セクター方式であるかを
確定する。LSをローにストラッピングすると、内部T
AG RAMは64K非セクター方式キャッシュを支援
する構成となる。LSをプロセッサのアドレスバスのA
4に接続すると、内部TAG RAM24は128Kセ
クター方式キャッシュを支援する構成となる。非セクタ
ー方式キャッシュとして構成された場合、行ごとの1つ
のTAGアドレス(1行は16バイトから成る)と、1
つの有効ビット(V)と、1つの書込み保護ビット(W
P)とがある。セクター方式の編成では、2行ごとに1
つのTAGアドレスと、1つのWPビットがある。この
場合でも、各行が独自のVビットを有しているのに変わ
りはない。セクター方式キャッシュを構成する理由はオ
ンチップTAG/STATUS RAM24を著しく拡
大せずに大型のデータキャッシュを支援できるためであ
る。
【0016】キャッシュモジュールはシステムメモリ9
の4ギガバイトのマイクロプロセッサ物理アドレススペ
ースを十分に複合しうる数のTAGアドレスビットを有
する。従って、単一のキャッシュモジュールにより制御
される64K(非セクター方式)又は128K(セクタ
ー方式)データキャッシュで4ギガバイトまでカバーす
ることが可能である。2つのキャッシュモジュールコン
トローラを使用すると、128K(非セクター方式)又
は256K(セクター方式)データキャッシュで4ギガ
バイトまでカバーすることになる。
【0017】マイクロプロセッサインタフェース キャッシュモジュールはプロセッサインタフェース28
を介してマイクロプロセッサと直接インタフェースす
る。i486マイクロプロセッサのタイミングは全て支
援される。システムリセットによって、キャッシュモジ
ュールはその内部TAG RAM24の全てのTAG記
述項を無効にする。リセットはi486マイクロプロセ
ッサと同一のタイミングを有する。FLUSH#も全て
のTAGを無効にするが、キャッシュモジュールを強制
的にアイドル状態にすることはない。キャッシュモジュ
ールのFLUSH#入力タイミングはi486マイクロ
プロセッサのFLUSH#入力タイミング要件と同一で
ある。
【0018】次に図2に関して説明する。ディレクトリ
の機能は、キャッシュメモリに記憶されているデータに
対応するアドレスを記憶することである。ディレクトリ
は2方向(WAY0,WAY1)をもつ構成である。1
行はキャッシュと主メモリとの間で転送されるデータの
基本単位である。1行は16バイトのデータから構成さ
れる。この1つの行は転送ブロックとしても知られてい
る。ある特定のアドレスに対応するデータがキャッシュ
に記憶されている場合、キャッシュがそのデータを供給
できるので、主メモリをアクセスする必要はない。これ
を「キャッシュヒット」という。ヒットであるか、ミス
であるかの決定は行ごとに行われる。アドレスブロック
はキャッシュアドレッシングの基本単位である。各アド
レスブロックは、2つの連続するデータの行のうち一方
の物理アドレスを記述する。
【0019】アドレスブロックの中には各行と関連する
1つの有効ビットがある。キャッシュにその行が存在し
ていれば、有効ビットはオンされる。キャッシュディレ
クトリに保持されているアドレス情報をタグという。1
つのアドレスブロックには多数のアドレスがマッピング
されるため、タグ情報を使用して、アドレスブロックと
現在関連している正確な記憶場所を識別するのである。
ヒットは、アドレスブロックのタグがバスアドレスと整
合し且つ所望の行の有効ビットがオンであるときに起こ
る。
【0020】それぞれの経路でタグビット及び有効ビッ
トの記憶を行う。データがキャッシュデータアレイにあ
るか否かを判定するために、比較回路ではバスアドレス
と経路のタグフィールドとの比較が同時にいくつも実行
される。セットは、各経路から取った1つずつのアドレ
スブロックから構成されるアドレスブロックのグループ
である。CPUバスアドレスの一部がデコーダによりセ
ットアドレスに復号されるとき、1つのセットに含まれ
る全てのアドレスブロックは同時に選択される。図2に
示すディレクトリは64のセットを形成している。
【0021】新たなデータのブロックをキャッシュに導
入しなければならないときには、新たなデータに備えて
余地を形成するために、既にキャッシュに入っている旧
データブロックを取り除くことが必要である。アドレス
ブロックにおいて新たなアドレスが必要とされるとき、
どちらの経路が置き換えられたかを判定するシーケンス
がある。
【0022】CPUバスにおける書込みトランザクショ
ンがキャッシュにないアドレスを含む(キャッシュミ
ス)場合、キャッシュに対応するデータを記憶しようと
する試みはなされない。これに対し、CPUバスにおけ
る書込みトランザクションがキャッシュに入っているア
ドレスを含む(キャッシュヒット)場合には、ディレク
トリは通し書込み方式を使用する。すなわち、CPUバ
スはキャッシュヒットで得た結果を、キャッシュ並びに
主メモリに書き込むのである。これにより、主メモリは
常に全てのデータ記憶場所の有効コピーを保持している
ことになる。
【0023】ピンの概要説明 以下に、ピン信号をピンの名前,入力(I),出力
(O)又は入出力(I/O),アクティブハイ又はロー
の状態といった信号の種類、そして短い解説の順で説明
する。
【0024】制御信号 CLKI − CLOCKは、モジュールが事象を監視
し、生成するときのタイミング基準である。CLKはC
PUのCLKピンに接続しなければならない。
【0025】RESET I ハイ − RESET
CACHEはモジュールに強制的に既知の状態での実行
を開始させるもので、CPUのRESETピンに接続し
なければならない。さらに、キャッシュの全ての行を無
効にさせる。どの特定のクロックにおいてもセットアッ
プ時点t23と保持時点t24は認識のために合ってい
なければならない。
【0026】ADS# I ロー ADDRESS S
TROBEはマイクロプロセッサにより発生され、新た
なサイクルが始まったことを確定するために使用され
る。適正な動作のために、セットアップ時点t7は合っ
ていなければならない。
【0027】M/IO# I − MEMORY/IO
はメモリアクセス(M/IO#がハイのとき)又はI/
Oアクセス(M/IO#がローのとき)を指示するCP
U発生サイクル規定信号である。適正な動作のために、
セットアップ時点t7は合っていなければならない。
【0028】W/R# I − WRITE/READ
は書込みアクセス(W/R#がハイのとき)又は読取り
アクセス(W/R#がローのとき)を指示するために使
用されるCPU発生サイクル規定信号である。適正な動
作のために、セットアップ時点t7は合っていなければ
ならない。
【0029】START# O ロー MEMORY
STARTは、キャッシュ読取りミス又は書込みが起こ
ったこと及び現在のアクセスをメモリシステムによりサ
ービスしなければならないことを指示する。START
#はI/Oサイクルについては活動状態とならず、CS
#が非活動状態である場合には印加されない。
【0030】BRDYO# O ロー BURST R
EADY OUTは、モジュールによりCPUへ送り出
されるバーストレディ信号である。この信号はモジュー
ルへの読取りヒットが起こったときに活動状態となり、
CPUに対するBRDY#入力の1つの項であるべきで
ある。
【0031】CBRDY# I ロー CACHE B
URST READY INは、メモリシステムからの
バーストレディ入力である。この信号はモジュールとC
PUのBRDY#ピンの双方に並列に印加される。T1
及びアイドルサイクルの間にはCBRDY#は無視され
る。BLAST#は転送の長さを確定する。全てのキャ
ッシュ可能読取りサイクルは4d語転送である。適正な
動作のために、セットアップ時点t9と保持時点t10
は合っていなければならない。
【0032】CRDY# I ロー CACHE RE
ADY INはシステムからの非バーストレディ入力で
ある。CBRDY#と同様に、キャッシュとCPUのR
DY#ピンの双方に並列に印加される。T1及びサイク
ルの間にはCRDY#に無視される。適正な動作のため
に、セットアップ時点t9と保持時点t10は合ってい
なければならない。
【0033】BLAST# I ロー BURST L
ASTはCPUにより出力され、サイクルの終わりがい
つ起こるかを確定するためにモジュールによりサンプリ
ングされる。適正な動作のために、セットアップ時点t
8と保持時点t8aは合っていなければならない。
【0034】BOFF# I ロー BACKOFF
は、サイクルを直ちに終止させるべきであることを指示
するためにモジュールによりサンプリングされるCPU
入力である。BOFF#をサンプリングして活動状態で
あれば、モジュールはそのデータバスをフロートさせ
る。BOFF#が非活動状態となるまで、モジュールは
無効化サイクルを除く全てのサイクルを無視する。適正
な動作のために、セットアップ時点t17と保持時点t
18は合っていなければならない。
【0035】PRSN# O ロー PRESENCE
は常にモジュールにより印加されるアクティブロー出力
である。これは10Kのプルアップ抵抗器を介して接続
し、モジュール存在標識として使用されても良い。
【0036】アドレス信号 A2〜A31 I − PROCESSOR ADDR
ESS LINE A2〜A31はモジュールにより使
用されるCPUアドレス線である。アドレス線A2及び
A3はバーストアドレスビットとして使用される。64
Kモジュールの場合、A4〜A14はモジュールに対す
るセットアドレス入力を構成し、A15〜A31はタグ
アドレスとして使用される。128Kモジュールでは、
A4は行選択入力となり、A5〜A15はセットアドレ
ス入力であり、A16〜A31はタグアドレスとして使
用される。適正な動作のために、セットアップ時点t6
は合っていなければならない。
【0037】BE0#〜BE3# I ロー BYTE
ENABLE入力はCPUのバイトイネーブル出力端
子に接続する。これらはヒットサイクルの間に部分書込
みを実行するために使用される。読取りサイクルのとき
には、これらは無視される。適正な動作のために、セッ
トアップ時点t6は合っていなければならない。CS#
I ロー CHIP SELECTはキャッシュモジュ
ールをカスケードするために使用される。複数の装置を
カスケードするためにアドレスビットを復号しても良
く、あるいは、メモリの一部を選択的にキャッシュする
ためにアドレスビットを復号しても良い。適正な動作の
ために、セットアップ時点t30と保持時点t31は合
っていなければならない。
【0038】データ信号 D0〜D31 I/O − PROCESSOR DA
TA LINE D0〜D31はCPUのデータバスに
接続する。D0〜D7は最下位バイトを規定し、D24
〜D31は最上位バイトを規定する。適正な動作のため
に、セットアップ時点t13と保持時点t17は合って
いなければならない。
【0039】DP0〜DP3 I/O − DATA
PARITYは、データバスのデータと関連するパリテ
ィビットである。これらは同じ名前をもつCPUのピン
に接続する。パリティはモジュールにより記憶すべき追
加データビットとして扱われる。適正な動作のために、
セットアップ時点t13と保持時点t14は合っていな
ければならない。
【0040】キャッシュ可能性信号 CKEN# O ロー CACHE ENABLE T
0 CPUは、モジュールによりCPUへ発生されるK
EN#項である。CKEN#は2度活動状態となる。す
なわち、まず、T1の間にキャッシュの行充填をイネー
ブルするために活動状態となり、二度目は最終のBRD
Y#又はRDY#の前のクロックで行充填を有効にする
ために活動状態となる。CKEN#はT1で常に活動状
態であるが、行充填が書込み保護行であり且つWPST
RP#がローである場合又はサイクルが読取りミスであ
る場合には、行充填を有効にしない。
【0041】SKEN# I ロー SYSTEM C
ACHE ENABLEは、モジュールにおいて現在行
充填がキャッシュ可能であるか否かを指示するための主
メモリシステムからの入力である。これは、KEN#が
マイクロプロセッサによりサンプリングされるのと全く
同じように、モジュールによりサンプリングされる。適
正な動作のために、セットアップ時点t11と保持時点
t12は合っていなければならない。
【0042】FLUSH# I ロー FLUSH C
ACHEは、CS#とは無関係に、モジュールにそのキ
ャッシュ内容全体を無効にさせる。進行中の行充填は継
続するが、直ちに無効にされる。CPUフラッシュ命令
はモジュールに影響を及ぼさない。どの特定のクロック
でも認識のためにセットアップ時点t23と保持時点t
24は合っていなければならない。
【0043】WP I ハイ WRITE PROTE
CTは1つの行を書込み保護されているとして規定す
る。WPは行充填の3度目の転送の間にサンプリングさ
れ、内部で状態ビットとして維持される。書込み保護さ
れた行に後に書込みを実行しても、効果はない。適正な
動作のために、セットアップ時点t15と保持時点t1
6は合っていなければならない。
【0044】WPSTRP# I ロー WRITE
PROTECT STRAPPINGOPT10NはC
KEN#の行動を変化させる。キャッシュ可能な行の転
送を指示するためにCKEN#はT1で常に印加される
が、次のクロックでは印加されなくなる。読取りヒット
サイクルの間に、キャッシュ可能な行の充填を指示する
ために、CKEN#は転送の持続中に再び印加される。
WPSTRP#がローにストラッピングされ且つ書込み
保護された行が転送中である場合、CKEN#は転送中
に再び活動状態にはならない。これは、CPUが読取り
ヒットサイクルの間に書込み保護された行をキャッシュ
するのを阻止する。
【0045】無効化信号 EADS# I ロー VALID EXTERNAL
ADDRESS STROBEは、CPUアドレスバ
スに無効化アドレスが存在していることを指示する。存
在していれば、モジュールはこのアドレスを無効にする
が、CS#が活動状態である場合にのみそれを実行す
る。モジュールは1つおきのクロックに合わせてEAD
S#を受け入れることができる。モジュールのEADS
#はCPUのEADS#ピンに接続すべきである。適正
な動作のために、セットアップ時点t19と保持時点t
20は合っていなければならない。
【0046】機能の説明 キャッシュモジュールは、113ピンモジュールに収納
された完全2経路セット連想64K又は128Kキャッ
シュである。モジュールは4つ又は8つの化す多無デー
タSRAMとキャッシュコントローラとを含む。さらに
多くのモジュールを追加することにより、キャッシュモ
ジュールを追加することにより、キャッシュモジュール
を最大限512Kまでカスケードすることができる。本
発明によるモジュールは、システムがキャッシュの有無
を容易に検出し、それ自体を相応して再構成できるよう
なものである。
【0047】キャッシュモジュールはマイクロプロセッ
サと直接にインタフェースし、25MHz と33MHz のシ
ステムのタイミングを直接に支援する。モジュールは待
ち状態が全くなくデータを読取り/書込みすると共に、
1クロックバースティングを実行することができる。モ
ジュールはCPU無効化,BOFF#の使用及び早期終
止サイクルを認識する。キャッシュモジュールは通し書
込み方式であるので、同一のCPU一致メカニズムを支
援し、データパリティを記憶し、CPUが不可能である
モードでB10Sをキャッシュすることができ、ソフト
ウェアが平明であり且つエンドユーザー設置可能アップ
グレイドであっても良い。
【0048】図1に示すモジュールはキャッシュコント
ローラル10と、64Kキャッシュ又は128Kキャッ
シュを欠けるところなく構成するための4つのInte
l82485MA SRAM又は8つのIntel82
485MB SRAM8とを含む。いずれの構成におい
ても、モジュールは1行が16バイトから成る2経路セ
ット連想モジュールである。
【0049】各経路はタグごとに17ビットを有する合
わせて2Kのタグを含むので、全体としては4Gの実ア
ドレススペースを記憶できる。タグは2つの有効ビット
(v)と、書込み保護ビット(wp)をも参照する。6
4Kキャッシュとして構成した場合、各タグは1つの1
6バイト行を参照するが、128Kキャッシュとして構
成した場合には、各タグは2つの連続する16バイト行
を参照することになる。これをセクター方式という。1
28Kモジュールはタグごとに2つのセクターを含む。
LD入力(アドレスビットA4)は各タグのどちらのセ
クターを選択しているかを確定する。
【0050】制御装置は、データSRAMを制御する、
タグラム構造を制御する及びCPUにインタフェースす
るという3つの主要機能を司るこれらは互いに独立した
装置であるので、キャッシュコントローラはデータがS
RAMにバーストされている間にそのタグラムを更新す
ること、又は別のアドレスへの行充填の間に無効にする
事ができる。モジュールにある特殊なアドレスレジスタ
によって、マイクロプロセッサは最初のT2で(AHO
LDに応答して)そのアドレスをドロップし、システム
はCPU保持時間に伴ってアドレス無効化を発行するこ
とができる。
【0051】キャッシュコントローラは、キャッシュミ
スに際してどのタグを無効化すべきかを確定するため
に、LRUアルゴリズムを使用する。置き換えが要求さ
れた場合に置き換えられるタグを指示するために、タグ
ごとに1つのLRUビットを使用する。
【0052】モジュールのデータメモリ部分8は、33
MHz の高速で動作する1組のカスタムSRAMから構成
されている。これらは待ち状態なしの読取り及び書込み
と、1クロックバースティングを実行することができ、
CPUクロック及びデータ行に対する容量負荷を最小限
に抑えている。
【0053】キャッシュ動作 高速で動作するために、モジュールはそのタグのルック
アップを開始して、できる限り早くキャッシュヒット
か、キャッシュミスかを判定しなければならない。通常
動作中、これはCPUがアドレスを発生すると直ちに行
われる。ヒット又はミスが確定されるまで、SRAM読
取り、SRAM書込み及びシステム信号の発生は不可能
である。読取りミス,読取りヒット,書込み,無効化及
びBOFF#サイクルについて以下の章で説明する。
【0054】読取りミス 図3は、通常読取りミスサイクルの間のモジュールのア
クティビティを示すタイミング図である。T1で、読取
りサイクルがヒットであるか否かを知るためにモジュー
ルはそのタグのルックアップを開始する。キャッシュに
アドレスが存在していないこと(ミス)が確定される
と、メモリシステムが現在サイクルをサービスしなけれ
ばならないことをメモリシステムに指示するために、S
TART#を発生する。そこで、キャッシュは、キャッ
シュのKEN#入力であるSKEN#が活動状態である
とわかるまでアイドル状態である。SKEN#が非活動
状態であり且つメモリからのバースト行転送が始まった
ならば、行はキャッシュ不可能であり、無視される。
【0055】SKEN#が印加されると、モジュールは
バーストされて来るデータに備えてキャッシュの1つの
行を無効にする(又は空いている行を選択する)。デー
タはキャッシュと、マイクロプロセッサとに同時にバー
ストされる。SKEN#が最前にバーストされた項目よ
り先行していれば、行はキャッシュ可能であり、モジュ
ールはそのことを指示するために有効ビットを更新す
る。行が無効であるか又は何らかの理由(BLAST
#,BOFF#,RESET,RESET EADS
#)により放棄されている場合には、行は無効のまま放
置される。
【0056】読取りサイクルの間、モジュールはメモリ
から待ち状態なしでデータを受け入れることができな
い。最も早く戻しうるデータは、START#をサンプ
リングして活動状態であるとわかった後のクロックであ
る。START#は、メモリシステムが現在サイクルを
完了しなければならないことを指示する信号である。モ
ジュールはバーストを伴わない行充填や、バースト中断
行充填を処理することもできる。
【0057】読取りヒット 読取りヒットサイクルの間、モジュールは1つのデータ
行によって5クロックのうちにマイクロプロセッサに直
接応答する。モジュールは、これをキャッシュ可能転送
として指示するために、T1と3度目のT2の双方でC
KEN#(CPUへのKEN#出力)を印加する。バー
ストされる行が書込み保護行であり且つWPSTRP#
がローにストラッピングされていれば、3度目のT2の
間、CKEN#はハイであり、CPUは行をキャッシュ
しない。
【0058】書込みサイクル モジュールは通し書込みキャッシュであるので、CPU
は全ての書込みサイクルを主メモリに書き込む。図4
は、T1におけるタグルックアップがヒットであるとわ
かったために、T2でキャッシュによりデータを更新す
る書込みヒットを示す。書込みミスはキャッシュ内容に
影響を及ぼさず、書込み保護行への書込みも実行されな
い。書込みヒットはLRUビットを行が属している経路
を指示するように変更する。
【0059】無効化サイクル モジュールはAHOLD及びEADS#を印加すること
によりいつでも無効化サイクルを開始できる。AHOL
Dが印加されないときの自己無効化は、1回の行充填の
最終転送のクロック端を除けば、いつでも許される。E
ADS#を印加したときには、CPUキャッシュとモジ
ュールの双方が同時に無効になる。モジュールが何を実
行しているかにかかわらず、EADS#はモジュールの
アドレス入力端子に現れているアドレスを無効にする。
これには読取りヒット、読取りミス、書込み及びBOF
F#サイクルが含まれる。
【0060】図5は、1回の行充填の3度目の転送で無
効化が起こっている読取りミスサイクルを示すタイミン
グ図である。通常の条件の下では、モジュールは次のク
ロックで現在充填中の行を有効化すると考えられる。こ
こではEADS#が発生しているので、無効化がヒット
であるか否かを知るためにタグラムは次のクロックでタ
グルックアップにより占有され、現在行はまだ有効化さ
れていない。無効化がヒットであれば、次のサイクルは
実際の無効化を実行するために使用される。続くクロッ
クは現在行の充填を有効化するために費やされる。マイ
クロプロセッサが直ちにサイクルを開始した場合、クロ
ックサイクル後にタグメモリが空き状態となるまで、モ
ジュールはタグルックアップを実行することができな
い。これによりSTART#は遅延し、最終的にはメモ
リ読取りサイクルが遅延する。
【0061】最高の性能を得るために、キャッシュの行
充填の2度目、3度目又は4度目の転送のときにEAD
S#を発生すべきではない。T1で自己無効化が起こる
と、ADS#とEADS#は同時にサンプリングされ、
モジュールは行を無効化し、通常の読取りミスサイクル
の場合と同様にSTART#をアサートする。読取りヒ
ット中の他のいずれかの時点でEADS#がアサートさ
れた場合には、START#はアサートされない。
【0062】BOFF#サイクル BOFF#がアサートされると、モジュールはマイクロ
プロセッサと同じように次のクロックサイクルでバスを
放棄する。BOFF#がアサートされている間、他のど
のような時点とも同じように、モジュールは無効化サイ
クルを全て実行するためにEADS#を監視する。キャ
ッシュ読取りヒット(データがキャッシュからCPUへ
転送されている)の間にBOFF#がアサートされた場
合、モジュールは転送中の行を無効にする。BOFF#
が解放されて、サイクルが再開したならば、モジュール
はこの事態をキャッシュミスと受け取るので、メモリシ
ステムは残るデータを供給しなければならない。キャッ
シュ読取りミス(メモリがデータをキャッシュとCPU
へ転送している)の間にBOFF#がアサートされる
と、モジュールは行充填を放棄充填として扱い、その行
は無効のままである。BOFF#が解放されて、サイク
ルが再開したならば、行充填のまだ終了していない部分
は別の充填として扱われ、再開したサイクルは部分充填
しか実行しないと考えられるため、無効のままである。
【0063】図6は、行充填放棄の1例を示すタイミン
グ図である。行の転送はその転送が完了する前に中断さ
れるので、行は無効のままである。転送が再開したなら
ば、モジュールはADS#と共に新たなサイクルが始ま
ったとみなすが、このサイクルは3回の転送の後にBL
AST#と共に完了する。モジュールはこれを早期終了
行充填サイクルとして扱い、サイクルは決して有効には
ならない。
【0064】マイクロプロセッサ及びメモリサブシステ
ムへのモジュールの典型的な接続を図7に示す。CPU
が発生する全ての信号はモジュールを「フィード−アラ
ウンド(feed−around)」、すなわち、信号
はモジュールとメモリコントローラの双方に到達する。
メモリで発生した信号の多くはモジュールをフィード−
アラウンドしてCPUに戻る。これにより、モジュール
はオプションのキャッシュとなるのである。モジュール
に至る信号の全てを以下に説明する。
【0065】マイクロプロセッサの信号 下記のモジュール信号は対応するCPU信号に直接に接
続する。これらのピンはIntel i486マイクロ
プロセッサのピンと同じ名前をもち、同じ機能性を示
す。
【0066】アドレス線A2〜A31 A2〜A31はCPUにより発生されるアドレス線であ
り、キャッシュによりセットアドレス及びタグアドレス
として使用される。64KモジュールキャッシュはA4
〜A14をセットアドレス入力として使用し、残るアド
レスビットをタグアドレスとして使用する。128Kモ
ジュールはA5〜A15をセットアドレス入力として使
用し、A4をセクター方式における行選択ビットとして
使用し、残るビットをタグアドレスとして使用する。ア
ドレス線A2及びA3はバーストアドレス入力として使
用される。
【0067】アドレス線は無効化入力としても使用され
る。いずれかの時点でEADS#が印加されると、アド
レス入力端子に現れているアドレスに対応するタグの内
容は無効化される。CS#をサンプリングして、活動状
態とわからない限り、モジュールは無効化しない。尚、
T1におけるAHOLDのアサートが許されるように、
アドレスは内部でラッチされる。
【0068】データ線D0〜D31及びパリティDP0
〜DP3 これはCPU、モジュール及びメモリバスに共通するプ
ロセッサデータバスである。モジュールは読取りヒット
に際してCPUへ情報を転送し、読取りミスのときには
メモリから得たデータを記憶する。4つのパリティビッ
トDP0〜DP3はちょうど余分のデータビットのよう
に扱われる。
【0069】ADS#,W/R#、M/IO# プロセッサ制御信号ADS#、W/R#及びM/IO#
は、モジュールにより、新たなサイクルの開始を指示す
ると共に、そのサイクルの型を識別するために使用され
る。ADS#の印加はT1サイクルを指示し、モジュー
ルにおけるタグルックアッププロセスを開始させる。I
/Oサイクルは無視される。これらはバースト中断転送
の間にも各転送の開始をマークするために使用される。
【0070】バイトイネーブルBE0#〜BE3# バイトイネーブル入力は、キャッシュ書込みヒットサイ
クルにおいてモジュールに対する部分バイト書込み又は
部分語書込みを完了するために使用される。読取りサイ
クルの間の部分転送はモジュールによる全体転送と同じ
ように扱われる。
【0071】BLAST# BLAST#はモジュールにより1つのサイクルの終わ
りを指示するために使用される。読取りミスからキャッ
シュ行充填中の早期にBLAST#が印加された場合、
その転送はモジュールにより無効のまま放置される。B
LAST#はRDY#,BRDY#又はBRDYO#を
伴うときにのみ意味をもつ。
【0072】BOFF# モジュールは、BOFF#をサンプリングすると、次の
クロックまで、データバスの制御を放棄する。読取りヒ
ットの行転送が進行中である場合、対応する行は無効に
される。BOFF#により読取りミスの転送が中断され
たならば、モジュールはその行を無効化されたままにす
るであろう。モジュールはBOFF#の間にEADS#
を認識するが、それはCS#が活動状態である場合に限
る。
【0073】FLUSH# モジュールのFLUSH#入力はマイクロプロセッサ入
力と全く同じように行動する。FLUSH#は、アサー
トされると、CS#の状態とは無関係にキャッシュメモ
リの内容全体を無効にする。FLUSH#がアサートさ
れている間、モジュールはCPUバスサイクルを追跡し
続け、全てのアクセスをキャッシュミスとして扱うこと
により、START#を適切に活動させる。FLUSH
#はCPU及びモジュールの双方に対し非同期的に使用
されても良い。適正なパルス幅が与えられていれば、F
LUSH#は認識されるであろうが、装置ごとにFLU
SH#が異なるクロック端で認識されるということは起
こりうる。これは、FLUSH#のアサート又は消滅が
そのセットアップ時点及び保持時点に近い場合に、一方
の装置はそれを認識しうるが、他方は認識しえないよう
なときに起こると思われる。
【0074】EADS#,AHOLD EADS#のアサートは、モジュールに、CS#が活動
状態とわかっている場合はアドレスバスに現れているア
ドレスを無効化させる。AHOLDはアサートされる必
要はなく、モジュールへの入力としてさえ使用されな
い。EADS#は、多くとも、モジュールの最も速い無
効化速度である2クロックにつき1回の割合で印加され
れば良い。「無効化サイクル」の章で、最大限の性能を
得るためにEADS#をどこで印加すれば良いかを説明
する。
【0075】RESET RESETは、モジュールにその内部機械を既知の状態
にリセットさせる非同期入力である。すなわち、そのキ
ャッシュの内容全体が無効化されるのである。モジュー
ルが内部でリセットできるように、RESETの立ち下
がり端の後、少なくとも4クロックにわたりバスのアク
ティビティがあってはならない。パワーアップ時、RE
SETはクロックを自らリセットさせるために少なくと
も100クロックにわたり活動状態でなければならな
い。他のあらゆる時点については、1クロック分のRE
SETで十分である。
【0076】CPUバスインタフェース信号 モジュールにより発生されるか又はCPUから復号さ
れ、CPUバスに対応する信号である。
【0077】チップ選択CS# チップ選択は、複数のモジュールを使用する場合に適正
なキャッシュモジュールを選択するために使用される。
そうではなく、モジュールが1つであるときには、CS
#を接地すれば良い。CS#はモジュールに入力した最
下位のタグアドレスを復号することにより発生される。
たとえば、128Kキャッシュモジュールを2つ使用す
るときには、そのチップ選択のためにA16を復号する
ことになる。A16がハイであればモジュール1が選択
され、A16がローであればモジュール2が選択される
であろう。下記の表は復号に使用するアドレスをまとめ
て示したものである。
【0078】
【0079】互換性を得るため、64Kモジュールにつ
いてA16とA17を復号しても良い。しかしながら、
A15とA16を使用すると細分性が増すため、性能は
向上するであろう。CS#が非活動状態であるとき、無
効化サイクルは無視され、START#は非活動状態で
あり且つCKEN#も非活動状態である。ところが、T
1より以前にはモジュールがCS#を認識することはあ
りえないので、T1ではCKEN#は常に活動してい
る。必要に応じて、LOCK#信号をCS#発生の1つ
の項として使用しても良い。ロックされたサイクルがC
S#を発生しない場合、メモリがサイクルを処理できる
ように外部でSTART#を発生させなければならな
い。
【0080】CPUキャッシュイネーブルCKEN# CKEN#は、読取りヒットサイクルの間の現在転送が
キャッシュ可能であることを指示するためにモジュール
により発生される。この信号は常に駆動されており(オ
ープン−コレクタ出力ではない)、マイクロプロセッサ
へKEN#を発生する項の1つとして使用されなければ
ならない。CKEN#はT1では常に活動状態である
が、その後は非活動状態となり、サイクルが読取りヒッ
トサイクルでない限り、非活動状態のままである。読取
りミスサイクル及び書込みサイクルの場合、CKEN#
はT2で非活動状態となり、次のT1まで非活動状態の
ままである。そのような場合に、KEN#信号を発生す
るのはシステムである。読取りヒットサイクルでは、C
KEN#は2度目のT2で再び活動状態となり、サイク
ルを通して活動状態を保つ。これにより外部KEN#論
理はKEN#を発生させて、サイクルをCPUに対して
キャッシュ可能にする。ところが、転送中の行が書込み
保護行であり且つWPSTRP#ピンがローにストラッ
ピングされているならば、CKEN#はT2でも非活動
状態であり、サイクルを通して非活動状態のままであ
る。これにより、モジュールの書込み保護をモジュール
に対してのみキャッシュ可能とすることができる。
【0081】バーストレディアウトBRDYO# モジュールは、読取りヒットサイクルの間にデータをC
PUにバーストして戻しているときにBRDYO#を発
生する。BRDYO#は常に駆動されており(オープン
コレクタ出力ではない)、外部論理によりCPUに対す
るBRDY#入力信号を発生させるために使用されるべ
きである。モジュールは待ち状態なしの1クロックバー
ストキャッシュであるので、サイクルが中断されるか又
はチップ選択ではない限り、BRDYO#は最初のT2
から4度目のT2まで活動している。
【0082】メモリインタフェース信号 メモリインタフェース信号は、主メモリサブシステムと
の間を往来する信号である。モジュールがメモリシステ
ムへ発生する唯一の信号はSTART#である。
【0083】PRSN# この信号はモジュール内ではローにされる。システムが
10Kプルアップ抵抗器によってこの信号をハイにする
と、その行がローとなることによりキャッシュの存在が
指示されるのである。PRSN#信号は、外部論理がメ
モリサイクルをADS#の活動に基づくのではなく、S
TART#が活動状態になったときににみ開始させるべ
きであることを指示するために使用される。
【0084】START# START#は、メモリサブシステムが現在サイクルを
処理しなければならないことを指示するためにモジュー
ルによりアサートされる信号である。START#は常
に駆動されており且つ有効であり、全ての読取りミスサ
イクルとメモリ書込みサイクルに際してアサートされ
る。I/Oサイクルのとき又はCS#をサンプリングし
て、非活動状態であった場合には、START#は活動
しない。通常、START#は最初のT2で活動状態に
なっているが、無効化サイクルが先行サイクルの拡張を
強制した場合には遅延するであろう(「無効化サイク
ル」の章を参照)。
【0085】書込み保護WP 書込み保護入力は、現在行転送が書込み保護されている
ことをモジュールに指示するアクティブハイ入力であ
る。この信号は、1回の行転送の3度目のBRDY#の
クロック端でサンプリングされる。タグRAMを更新す
るために、SKEN#も同時に有効でなければならな
い。モジュールはこの情報を1つのビットとして各タグ
記憶場所にセーブする。1つのタグで2つの連続する行
を表わす128K構成の場合、書込み保護ビットは双方
の行について有効である。ある記憶場所が書込み保護さ
れている場合、その場所への書込みは無視される。WP
は同期入力であり、それがサンプリングされているか、
されていないかにかかわらず、モジュールのセットアッ
プ時点及び保持時点と合っていなければならない。
【0086】書込み保護ストラッピングオプションWP
STRP# WPSTRP#は、RESET中にサンプリングされる
ストラッピングオプションであり、モジュールの書き込
み保護された項目をCPUキャッシュにおいてキャッシ
ュ可能とすべきであるか否かを指示する。WPSTRP
#がハイであれば、CKEN#はあらゆる読取りヒット
サイクルの間に活動状態になり、それらのサイクルがキ
ャッシュ可能であることを指示する。WPSTRP#が
ローである場合には、書込み保護されている記憶場所へ
の読取りヒットサイクルについて、CKEN#はT2で
非活動状態になる。これにより、モジュールは書込み保
護された項目をキャッシュできるが、CPUはキャッシ
ュできなくなる。
【0087】システムキャッシュイネーブルSKEN# 図7に示すモジュール10へのSKEN#入力は、マイ
クロプロセッサCPU12へのKEN#入力と同様であ
る。SKEN#はKEN#と全く同じように行充填の最
初と最後の転送の前のクロックでサンプリングされて、
その行がキャッシュ可能であるか否かを指示する。SK
EN#とKEN#には1つの相違点がある。すなわち、
START#が活動状態になった後、最初の転送の前の
クロックまでのいずれかの時点でSKEN#が活動状態
であることがわかった場合、モジュールは行充填を開始
する。CPUに対するKEN#入力がモジュールのSK
EN#入力端子に接続されると、CPUの内部キャッシ
ュとモジュールは同一の項目をキャッシュする。モジュ
ールとCPUがメモリの異なる領域をキャッシュするよ
うに、KEN#とSKEN#を別個に制御することが可
能である。SKEN#は同期入力であり、それがサンプ
リングされているか、いないかにかかわらずモジュール
のセットアップ時点及び保持時点と合っていなければな
らない。
【0088】キャッシュレディ及びバーストレディCR
DY#,CBRDY# CRDY#とCBRDY#はモジュールに対するレディ
入力とバーストレディ入力である。これらの入力はCP
UのRDY#入力及びBRDY#入力と全く同じように
動作すべきである。CBRDY#はCPUのBRDY#
入力を発生するためにBRDYO#と関連して使用され
るべきである。同様に、CRDY#はCPUのRDY#
入力を形成するために使用されるべきである。モジュー
ルは読取りヒットの間にはCBRDY#入力又はCRD
Y#入力をサンプリングしないので、モジュールのバー
スト転送に待ち状態を人為的に追加することは不可能で
ある。しかしながら、CBRDY#入力及びCRDY#
入力はサンプリングウィンドウの外であってもモジュー
ルのセットアップ時点及びホールド時点に従っていなけ
ればならない。
【0089】システムの構成 キャッシュモジュールはシステムの内外で任意に構成で
き、また、カスケードも可能である。
【0090】単一キャッシュ 単一キャッシュ構成では、モジュールを1つ追加すると
きに余分の論理が必要となることは全くないか、又はほ
とんどない。信号の多くはCPUと、メモリバスコント
ローラと、モジュールとに共通している。KEN#,S
KEN#及びSTART#などのその他の信号について
は個別に説明する。
【0091】マイクロプロセッサバスインタフェース 図7からわかるように、CPUに関連する信号はモジュ
ールと、メモリコントローラの双方に接続する。これら
はアドレスバス,データ及びパリティバス,ADS#,
W/R#,M/IO#,BE0#〜BE3#,BLAS
T#,RESET及びCLKである。単一のモジュール
はアドレスバスにあるので、その部分が常にチップ選択
されるようにCS#をローに拘束しても良い。
【0092】メモリバスインタフェース メモリバス側では、BOFF#,FLUSH#及びEA
DS#がCPUとモジュールに並列に接続する。メモリ
レディ信号CRDY#及びCBRDY#はモジュールに
直接に接続するが、他のシステムレディ信号と組み合わ
されて、CPUのRDY#及びBRDY#を形成する。
システムレディ信号の1つはモジュールのBRDYO#
であり、この信号はCBRDY#及び他のバーストレデ
ィ信号とANDされて、CPUへのBRDY#を形成し
なければならない。メモリシステムはさらにWP入力を
発生しなければならない。書込み保護が不要である場
合、WPをVssに拘束しても良い。システムがモジュ
ールの書き込み保護行のi486によるキャッシングを
阻止したいならば、WPSTRP#をVssに拘束すべ
きである。
【0093】KEN#及びSKEN#の発生 マイクロプロセッサに対するKEN#入力はシステムに
おける全てのキャッシュイネーブル信号の結果である。
モジュールは読取りヒットサイクルの間に限ってCKE
N#を活動状態とするので、CKEN#出力をシステム
のキャッシュイネーブル信号とANDして、CPUへの
KEN#を形成しても良い。モジュールとCPUの内部
キャッシュがメモリの同一の領域をキャッシュする場
合、モジュールとCPUのKEN#入力の双方について
1つのSKEN#を使用しても良い。そうでなければ、
メモリシステムは2つのキャッシュイネーブル信号を発
生することができ、その一方はCKEN#とANDされ
てKEN#を発生し、他方の信号はSKEN#として使
用される。
【0094】START#の発生 メモリシステムが現在サイクルを完了しなければならな
いことを指示するために、START#はローになる。
これは全てのメモリ書き込みと読取りミスに当てはま
る。I/Oサイクルを認識し、START#を待たずに
I/Oアクセスを開始するのはメモリサブシステムであ
る。START#はT2で印加されるが、先行サイクル
で無効化があった場合には遅延しても良い(「無効化サ
イクル」の章を参照)。START#の印加は多少なり
とも予測不可能であると思われるので、START#は
DRAM RASサイクルを開始するか、又はDRAM
出力バッファをイネーブルするか、いずれかの目的で使
用される。図8は、サイクルを開始するためのDRAM
制御部への標識としてSTART#を使用する場合を示
す。START#をサンプリングして、活動状態であっ
たならば、RAS及びCASサイクルは始まる。1つの
メモリサイクルが始まるのは早くても最初のT2である
ので、これによりキャッシュ読取りミスに余分の待ち状
態を招くことになる。図9は、START#がDRAM
データバッファをイネーブルする場合を示す。実際のD
RAMサイクルは、ADS#及びM/IO#をサンプリ
ングして、それらがローであったときに始まるのである
が、バッファがゲーティングされて、データをCPUデ
ータバスに書込めるようになるまでは完了しない。サイ
クルがモジュール読取りヒットであれば、バッファは決
してイネーブルされない。モジュールはバースト転送を
完了するのに5回のクロックサイクルを要するので、R
ASのプリチャージ時間を容易に吸収してしまうことが
できる。
【0095】多重キャッシュ 多重キャッシュ方式は、マイクロプロセッサバスインタ
フェース信号の接続が全て同じままであるために、単一
キャッシュ方式と同様である。単一キャッシュの例と同
じように、特殊な処理を必要とするのはKEN#,SK
EN#及びSTART#と、新たに加わったCS#だけ
である。図10は、512K多重キャッシュ構成の1例
を示す。
【0096】メモリバスインタフェース マイクロプロセッサバスインタフェース信号と同様に、
BOFF#,FLUSH#及びEADS#はCPUと、
メモリシステムと、全てのキャッシュとに並列に接続す
る。メモリシステムからのレディ出力とバーストレディ
出力は、全てのモジュールのCRDY#入力端子とCB
RDY#入力端子に接続する。そこで、CBRDY#出
力は全てのモジュールからのBRDYO#とANDされ
て、CPUへのBRDY#を形成する。
【0097】START# CS#は一度に1つのモジュールについて活動している
ので、START#は一度に1つのモジュールにより活
動状態とされる。従って、START#を他の全てのS
TART#信号とANDして、システム始動標識を形成
しても良い。START#をどのように使用できるかと
いうことの詳細については、「単一キャッシュ」の章を
参照。
【0098】KEN# START#と同様に、CKEN#はチップ選択された
モジュールについてのみ活動状態となるので、全てのC
KEN#出力を互いにANDして、CPUのKEN#信
号を形成しても良い。読取りミスサイクルの間にKEN
#を発生するのはシステムの責務であるため、システム
キャッシュイネーブル信号もAND項に含めなければな
らない。
【0099】SKEN# SKEN#は読取りみっさいくるの間に使用され、その
他の場合には無視されるので、システムキャッシュイネ
ーブル信号を全モジュールのSKEN#入力端子に接続
できる。複数の発生源がCPUに対してKEN#信号を
発生しうる場合、KEN#を全てのモジュールに送り出
しても良い。CPUキャッシュが二次レベルキャッシュ
とは異なる記憶場所をキャッシュする場合には、SKE
N#を別個に発生させて、全モジュールの入力端子に接
続しなければならない。
【0100】CS# チップ選択は、どのモジュールがアドレッシングされて
いるかを識別するために使用される。それは最下位のタ
グアドレスビットを復号した結果である。図10は、P
LDが4つのモジュールキャッシュの中の1つをどのよ
うにして選択するかを示す。無効化サイクルを含めて、
アドレスバスにアドレスが現れているときは、いつで
も、モジュールキャッシュの1つが選択される。
【0101】オプションのキャッシュ キャッシュモジュールはオプションのキャッシュとして
システムにはまり込むのであるが、その最も強力な特徴
は、キャッシュモジュールを一旦設置してしまえば、シ
ステムの再構成を容易に実行できることである。これを
達成するために、モジュールが存在するか否かにかかわ
らず信号がその機能を適正に実行するように、モジュー
ルは全ての信号をメモリサブシステムへ送り出してゆく
通し書込みキャッシュである。モジュールを完全にオプ
ションにするために考察しなければならない点はごくわ
ずかである。
【0102】信号の考察:START#,CKEN#,
BRDYO# PRSN#存在ピンは、START#を受け入れるメモ
リコントローラに接続する。PRSN#がハイであれ
ば、モジュールは存在しておらず、全てのメモリサイク
ルはADS#の印加と共に始まる。この場合、STAR
T#は、モジュールが存在していないときにそれが浮動
したまま放置されないように保証するために、プルアッ
プ抵抗器を具備しているべきである。システムからモジ
ュールが取り除かれると、外部論理と組み合わされてK
EN#及びBRDY#を形成するCKEN#,BRDY
O#のかく信号は浮動したままとなる。従って、CKE
N#ピン,BRDYO#ピン,START#ピン及びP
RSN#ピンの全てにプルアップ抵抗器を結合させるべ
きである。これにより、モジュールが存在していないと
きの非活動状態が確実に得られる。
【0103】多重キャッシュに関わる考察 START#信号、CKEN#信号,BRDYO#信号
及びPRSN#信号の全てにプルアップ抵抗器を結合さ
せている限り、空のキャッシュソケットは全て非活動キ
ャッシュと同様に応答する。ところが、CS#の復号は
存在しているキャッシュの数に伴って変化するので、チ
ップ選択の問題が生じる。図11に示す通り、チップ選
択復号論理は全てのPRSN#ピンを入力としているた
め、この情報から正しいチップ選択復号を発生すること
ができる。図11の論理は、1つのキャッシュが検出さ
れた場合はCS1を印加されたままに保ち、2つのキャ
ッシュが検出された場合はA16を復号し、4つのキャ
ッシュ全てが存在している場合にはA16とA17を復
号することができる。
【0104】セクター方式キャッシュ対非セクター方式
キャッシュ 64Kモジュールは64K非セクター方式キャッシュで
ある。すなわち、キャッシュのそれぞれのタグはキャッ
シュメモリの1つのデータ行を指示する。128Kキャ
ッシュを非セクター方式にするためには、2倍の数のタ
グが必要である。これによりタグのサイズは大きくな
り、複雑さが増す一方、タグルックアップ速度は低下す
る。このため、128Kモジュールはセクター方式キャ
ッシュである。128Kモジュールの各タグはキャッシ
ュの2つの連続する行を指示する。行選択ビットである
アドレスビットA4は、どちらの行を参照しているかを
確定する。図12は、セクター方式キャッシュにおける
1つのタグを示す。このタグがアドレス2500hを指
示するならば、アドレス2510hとして隣接する行を
予約する(A4はハイ)。たとえば、アドレス2510
を最初に書込んだ場合、タグは依然として25を含むと
考えられ、第1の行にアドレス2510を無効にせずに
導入できるのはアドレス2500のみであろう。行選択
ビットはセクター方式のアーキテクチャに使用されるの
で、全てのセットアドレスビットとタグアドレスビット
はアドレススペースにおいてより上位へシフトされる。
128Kモジュールは、64Kモジュールとのピン互換
性を維持するように、内部でこのシフトを補償する。こ
れにより、64Kモジュール,128Kモジュールのい
ずれのキャッシュ構成もハードウェアに関して不明の部
分はなくなる。セクター方式キャッシュは2つの連続す
る行を参照するので、双方の行を充填する見込みは少な
く、従って、キャッシュのヒット率は低下する。セクタ
ー方式キャッシュのヒット率は非セクター方式と比べて
若干低いが、性能を低下させる要素はごく少ない(1〜
2パーセント)。二経路セット連想セクター方式128
Kキャッシュは直接マッピング方式の128K非セクタ
ー方式キャッシュよりすぐれた性能を示す。
【0105】性能の考察 SKEN#アサーション SKEN#は読取りミスサイクルの間の行のキャッシュ
可能性を指示するためのモジュールへの入力である。こ
の信号は、CPUにおけるKEN#と同様に、1回の行
充填の最初のd語転送の前の1クロックと、最後のd語
の前の1クロックでサンプリングされる。行充填中、モ
ジュールは行のd語をキャッシュメモリの適切なスポッ
トに直接ロードする。すなわち、モジュールがSKEN
#をサンプリングして、活動状態であるとわかったなら
ば、モジュールは行を任命し、入力して来る行に備えて
記憶場所を無効化しなければならない。適切なSKEN
#によって行充填が完了すると、その行を有効にするこ
とができる。キャッシュ不可能サイクルの間、SKEN
#が活動状態のまま保たれており、そのために、最初の
転送に先立ってクロックを無効化させるようになってい
ると、性能を損失するおそれがある(図13を参照)。
T1でモジュールがSKEN#はローであるとわかる
と、モジュールは、SKEN#が先に消滅するにも関わ
らず、1つの記述項を無効化することによりキャッシュ
の1つの行を任命する。キャッシュ可能性が確定される
までSKEN#を非活動状態に保持することにより、性
能低下は回避される。
【0106】無効化ウィンドウ EADS#がアサートされることによって無効化が要求
されると、モジュールはアドレスバスに現れているアド
レスを直ちに無効化しなければならない。モジュールの
タグ部分が使用中である場合、無効化が優先し、他方の
アクションを延期させる。これにより性能は低下しかね
ない。これを回避するために、キャッシュ読取りミスサ
イクルの2度目,3度目又は4度目の転送でEADS#
を発生すべきではない。「無効化サイクル」の章でこの
ことを詳細に説明している。
【0107】BOFF#の印加 BOFF#が印加され且つモジュールがキャッシュ可能
読取りミスサイクルの途中にある場合、モジュールは現
在行充填をキャッシュ不可能として扱う。BOFF#が
解放されて、サイクルが継続してゆくと、モジュールは
サイクルの残る部分をキャッシュ不可能サイクルとして
扱う。多くのシステムでは、BOFF#は稀にしか起こ
らないので、性能の損失は無視できる程度である。とこ
ろが、BOFF#が規則的で、予測可能である場合に
は、1回の行充填の4回のd語転送が決して中断される
ことのないようにBOFF#のタイミングを規定するこ
とにより、システムの性能を向上させることができる。
機能説明の中の「BOFF#サイクル」の章で、放棄サ
イクルをさらに詳細に説明している。
【0108】START#の予測性 先行サイクルが拡張されていない限り、読取りミスサイ
クルの最初のT2でSTART#が印加される。「無効
化サイクル」の章で、START#を遅延させて良い理
由を説明している。START#がシステムに対する予
測可能な信号でなければならず且つ無効化サイクルを読
取りミスサイクルの2度目の転送の前に起こるようにタ
イミング規定できない場合には、START#の予測性
を確保する方法はない。EADS#が読取りミスサイク
ルの終わりに向かって印加されるときには、次のサイク
ルのT1に先立って、無効化ルックアップ、実際の無効
化(ヒットである場合)及び現在行充填の有効化(キャ
ッシュ可能な場合)の3回のタグアクセスを実行しなけ
ればならない。無効化要求のヒット/ミスの可能性を予
測する方法はないので、それをサービスするために2回
のタグアドレスが要求されるものと想定される。これを
実行するために、AHOLDを検出した場合に、モジュ
ールへのSKEN#を消滅させても良い。最後のCBR
DY#の前にSKEN#が消滅したならば、行はキャッ
シュ不可能である。図14は、バーストサイクルの3度
目の転送の間のEADS#のアサートがどのようにして
START#に1クロックの遅延を招くかを示す。図1
5は、4度目のクロックにおけるEADS#の印加を示
すが、AHOLDはCPUにADS#を少なくとも余分
の1クロックだけ遅延させるので、START#も1ク
ロックしか遅延しない。1回のバーストの2度目の転送
でEADS#が印加されると、SKEN#を消滅せずに
START#は1クロック遅延する(図16を参照)の
で、後のEADS#の印加のためにSKEN#をドロッ
プさせることに利点はない。要するに、1回の行充填の
3度目又は4度目の転送の間にAHOLDに応答してS
KEN#が消滅する場合には、START#は多くとも
1クロックしか遅延しない。これにより、START#
は予測可能となる。すなわち、START#は読取りミ
スサイクルの2度目のT2では常に有効である。尚、S
TART#が遅延しなければ、その値はT2で保持され
る。本発明をその好ましい実施例に関して詳細に図示し
且つ説明したが、本発明の範囲から逸脱せずに形態及び
詳細について上記の変更及びその他の変更を実施し得る
ことは当業者には理解されるであろう。
【図面の簡単な説明】
【図1】本発明を具現化したデータ処理システムのブロ
ック線図。
【図2】図1に示すキャッシュコントローラのブロック
線図。
【図3】通常の読取りミスサイクルの間のモジュールの
アクティビティを示すタイミング図。
【図4】T1におけるタグルックアップがヒットである
とわかったため、T2でデータがキャッシュにより更新
される書込みヒットを示す図。
【図5】行充填の3度目の転送において起こる無効化を
伴う読取りミスサイクルを示すタイミング図。
【図6】放棄された行充填の1例を示すタイミング図。
【図7】マイクロプロセッサ及びメモリサブシステムへ
の典型的なモジュール接続を示す図。
【図8】START#がデータ/命令を供給するための
DRAM制御部への指示であることを示す図。
【図9】DRAMデータバッファをイネーブルするため
にSTART#をいかに使用しうるかを示す図。
【図10】多重キャッシュ構成の1例を示す図。
【図11】チップ選択復号論理を示す図。
【図12】セクター方式キャッシュにおける1つのタグ
を示す図。
【図13】図7に示す論理に関わるタイミング図。
【図14】バーストサイクルの3度目の転送の間のEA
DS#の印加がSTART#に1クロック分の遅延をど
のように引き起こすかを示す図。
【図15】第4のクロックにおけるEADS#の印加
と、その結果生じるSTART#の2クロック分の遅延
とを示す図。
【図16】第2のクロックにおけるEADS#の印加を
示す図。
【符号の説明】
8 SRAM 9 システムメモリ 10 キャッシュコントローラ 12 マイクロプロセッサ 14 アドレスバス 15 データバス 24 タグRAM 28 プロセッサインタフェース 29 信号バス 30,32 比較器 36 SRAM制御/タイミング
───────────────────────────────────────────────────── フロントページの続き (72)発明者 サンダラヴァラザン・ラジャゴパラン・イ ーエンガー アメリカ合衆国 95124 カリフォルニア 州・サン ホゼ・チェルシー ドライブ・ 15123 (72)発明者 ジェイムズ・ネイデア アメリカ合衆国 95118 カリフォルニア 州・サン ホゼ・ホールクレスト ドライ ブ・1548

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】 プロセッサ(12)がCPUバス(1
    4,15,29)を介して主メモリ(9)と通信するデ
    ータ処理システムにおいて、 前記CPUバスに対するアクセスを制御するCPUバス
    制御論理(28)を含むキャッシュコントローラ(1
    0)と;前記キャッシュコントローラ(10)及び前記
    CPUバスに接続するキャッシュデータアレイ(8)と
    を具備し、 前記CPUバスはタグ部分と、セット部分と、行部分と
    から構成されるバスアドレスを搬送し、1つの行は複数
    のデータバイトから構成されており、前記行は前記キャ
    ッシュ(8)と前記メモリ(8,9)との間で転送され
    るデータの基本単位であり;前記キャッシュコントロー
    ラの制御論理は前記キャッシュデータアレイ(8)への
    参照を制御し;前記制御論理はキャッシュディレクトリ
    (24)を含み、前記キャッシュディレクトリはタグフ
    ィールドを記憶するアドレス記憶部分を含み、各タグフ
    ィールドは、前記メモリ(8,9)の1つにある、前記
    キャッシュデータアレイ(8)に記憶されているアドレ
    スブロックと関連するメモリ記憶場所を識別し;前記キ
    ャッシュディレクトリは、前記バスアドレスの前記セッ
    ト部分と同一のセット部分と、前記バスアドレスの前記
    行部分と同一の行部分と、経路部分とから構成されるキ
    ャッシュデータアレイアドレスを発生する手段(36)
    を含み;前記キャッシュディレクトリ(24)の前記ア
    ドレス記憶部分には複数のアドレスブロックが記憶され
    ており、各アドレスブロックは前記キャッシュデータア
    レイ(8)に記憶されている多数の連続するデータの行
    の物理アドレスを記述しており;前記アドレス記憶部分
    (24)には複数の有効ビットが記憶されており、各有
    効ビットは前記アドレス記憶部分にある前記アドレスブ
    ロックの中の前記データの行のそれぞれ1つと関連し、
    前記キャッシュ(8)にある特定のデータの行が存在し
    ている場合は、その行に関する有効ビットはオンであ
    り、前記キャッシュにある特定のデータの行が存在して
    いない場合には、その行に関する有効ビットはオフであ
    るようになっており;前記キャッシュディレクトリは少
    なくとも2つの経路(WAY0,WAY1)をもつ構成
    をとることができ、各経路は、特定のタグフィールドを
    求めて前記キャッシュディレクトリを連想探索するのを
    容易にするために、前記タグフィールド及び前記有効フ
    ィールドを記憶させており;前記キャッシュディレクト
    リは、前記アドレスバス及び前記アドレス記憶部分に接
    続するデコーダを含み;前記アドレス記憶部分は複数の
    セット(SET0〜SET63)に分割されており、各
    セットは各経路から取った1つずつのアドレスブロック
    から構成される前記アドレスブロックのグループであ
    り、1つのセットに属する全てのアドレスブロックは、
    前記バスアドレスの前記セット部分の復号に応答して、
    前記デコーダにより同時に選択されることから成るデー
    タ処理システム。
JP3337929A 1990-11-28 1991-11-28 データ処理システム Pending JPH0628256A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/618,708 US5210845A (en) 1990-11-28 1990-11-28 Controller for two-way set associative cache
US618,708 1990-11-28

Publications (1)

Publication Number Publication Date
JPH0628256A true JPH0628256A (ja) 1994-02-04

Family

ID=24478817

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3337929A Pending JPH0628256A (ja) 1990-11-28 1991-11-28 データ処理システム

Country Status (2)

Country Link
US (1) US5210845A (ja)
JP (1) JPH0628256A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1996041378A1 (en) * 1995-06-07 1996-12-19 The Panda Project Semiconductor die carrier having double-sided die attach plate

Families Citing this family (62)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03216744A (ja) * 1990-01-22 1991-09-24 Fujitsu Ltd 内蔵キャッシュ・メモリ制御方式
JPH04233642A (ja) * 1990-07-27 1992-08-21 Dell Usa Corp キャッシュアクセスと並列的にメモリアクセスを行なうプロセッサ及びそれに用いられる方法
IT1241318B (it) * 1990-11-19 1994-01-10 Olivetti & Co Spa Dispositivo di indirizzamento di memoria
GB2255211B (en) * 1991-04-25 1995-05-17 Intel Corp LRU pointer updating in a controller for two-way set associative cache
US5392417A (en) * 1991-06-05 1995-02-21 Intel Corporation Processor cycle tracking in a controller for two-way set associative cache
US5408636A (en) * 1991-06-24 1995-04-18 Compaq Computer Corp. System for flushing first and second caches upon detection of a write operation to write protected areas
US5386526A (en) * 1991-10-18 1995-01-31 Sun Microsystems, Inc. Cache memory controller and method for reducing CPU idle time by fetching data during a cache fill
US5345582A (en) * 1991-12-20 1994-09-06 Unisys Corporation Failure detection for instruction processor associative cache memories
US5813030A (en) * 1991-12-31 1998-09-22 Compaq Computer Corp. Cache memory system with simultaneous access of cache and main memories
US5724549A (en) * 1992-04-06 1998-03-03 Cyrix Corporation Cache coherency without bus master arbitration signals
EP0568231B1 (en) * 1992-04-29 1999-03-10 Sun Microsystems, Inc. Methods and apparatus for providing multiple outstanding operations in a cache consistent multiple processor computer system
JPH06318174A (ja) * 1992-04-29 1994-11-15 Sun Microsyst Inc キャッシュ・メモリ・システム及び主メモリに記憶されているデータのサブセットをキャッシュする方法
US5682515A (en) * 1993-01-25 1997-10-28 Benchmarq Microelectronics, Inc. Low power set associative cache memory with status inhibit of cache data output
US5913223A (en) * 1993-01-25 1999-06-15 Sheppard; Douglas Parks Low power set associative cache memory
US5604884A (en) * 1993-03-22 1997-02-18 Compaq Computer Corporation Burst SRAMS for use with a high speed clock
US5450565A (en) * 1993-03-23 1995-09-12 Intel Corporation Circuit and method for selecting a set in a set associative cache
US5479641A (en) * 1993-03-24 1995-12-26 Intel Corporation Method and apparatus for overlapped timing of cache operations including reading and writing with parity checking
US5553270A (en) * 1993-09-01 1996-09-03 Digital Equipment Corporation Apparatus for providing improved memory access in page mode access systems with pipelined cache access and main memory address replay
US5611072A (en) * 1993-10-12 1997-03-11 Texas Instruments Incorporated Cache with an extended single cycle read/write system and method
US5813028A (en) * 1993-10-12 1998-09-22 Texas Instruments Incorporated Cache read miss request invalidation prevention method
JP3169155B2 (ja) * 1993-12-22 2001-05-21 インターナショナル・ビジネス・マシーンズ・コーポレ−ション 情報をキャッシュするための回路
JPH07271672A (ja) * 1994-03-30 1995-10-20 Toshiba Corp マルチウェイセットアソシアティブキャッシュシステム
US6226722B1 (en) * 1994-05-19 2001-05-01 International Business Machines Corporation Integrated level two cache and controller with multiple ports, L1 bypass and concurrent accessing
US5781925A (en) * 1994-10-14 1998-07-14 Compaq Computer Corporation Method of preventing cache corruption during microprocessor pipelined burst operations
US5835948A (en) * 1994-10-14 1998-11-10 Compaq Computer Corporation Single bank, multiple way cache memory
US5640532A (en) * 1994-10-14 1997-06-17 Compaq Computer Corporation Microprocessor cache memory way prediction based on the way of previous memory read
US5617557A (en) * 1994-11-14 1997-04-01 Compaq Computer Corporation Using an address pin as a snoop invalidate signal during snoop cycles
US5778436A (en) * 1995-03-06 1998-07-07 Duke University Predictive caching system and method based on memory access which previously followed a cache miss
US5617347A (en) * 1995-03-17 1997-04-01 Fujitsu Limited Cache memory system and method thereof for storing a staged memory item and a cache tag within a single cache array structure
US5890216A (en) * 1995-04-21 1999-03-30 International Business Machines Corporation Apparatus and method for decreasing the access time to non-cacheable address space in a computer system
US5893146A (en) * 1995-08-31 1999-04-06 Advanced Micro Design, Inc. Cache structure having a reduced tag comparison to enable data transfer from said cache
US5987561A (en) 1995-08-31 1999-11-16 Advanced Micro Devices, Inc. Superscalar microprocessor employing a data cache capable of performing store accesses in a single clock cycle
US5752069A (en) * 1995-08-31 1998-05-12 Advanced Micro Devices, Inc. Superscalar microprocessor employing away prediction structure
US5860104A (en) * 1995-08-31 1999-01-12 Advanced Micro Devices, Inc. Data cache which speculatively updates a predicted data cache storage location with store data and subsequently corrects mispredicted updates
US6006310A (en) * 1995-09-20 1999-12-21 Micron Electronics, Inc. Single memory device that functions as a multi-way set associative cache memory
US5838943A (en) * 1996-03-26 1998-11-17 Advanced Micro Devices, Inc. Apparatus for speculatively storing and restoring data to a cache memory
US5761708A (en) * 1996-05-31 1998-06-02 Sun Microsystems, Inc. Apparatus and method to speculatively initiate primary memory accesses
US5752261A (en) * 1996-11-07 1998-05-12 Ncr Corporation Method and apparatus for detecting thrashing in a cache memory
US6587877B1 (en) * 1997-03-25 2003-07-01 Lucent Technologies Inc. Management of time and expense when communicating between a host and a communication network
US5946709A (en) * 1997-04-14 1999-08-31 International Business Machines Corporation Shared intervention protocol for SMP bus using caches, snooping, tags and prioritizing
US5963974A (en) * 1997-04-14 1999-10-05 International Business Machines Corporation Cache intervention from a cache line exclusively holding an unmodified value
US5943685A (en) * 1997-04-14 1999-08-24 International Business Machines Corporation Method of shared intervention via a single data provider among shared caches for SMP bus
US5940856A (en) * 1997-04-14 1999-08-17 International Business Machines Corporation Cache intervention from only one of many cache lines sharing an unmodified value
US5940864A (en) * 1997-04-14 1999-08-17 International Business Machines Corporation Shared memory-access priorization method for multiprocessors using caches and snoop responses
US5909694A (en) * 1997-06-12 1999-06-01 International Business Machines Corporation Multiway associative external microprocessor cache
US6185661B1 (en) * 1998-01-02 2001-02-06 Emc Corporation Worm magnetic storage device
US6209069B1 (en) 1998-05-11 2001-03-27 Intel Corporation Method and apparatus using volatile lock architecture for individual block locking on flash memory
US6026016A (en) * 1998-05-11 2000-02-15 Intel Corporation Methods and apparatus for hardware block locking in a nonvolatile memory
US6397297B1 (en) * 1999-12-30 2002-05-28 Intel Corp. Dual cache with multiple interconnection operation modes
JP2001209579A (ja) * 2000-01-28 2001-08-03 Fujitsu Ltd キャッシュメモリ装置
JP2001236715A (ja) * 2000-02-23 2001-08-31 Pioneer Electronic Corp ディスク再生装置
US6408364B1 (en) * 2000-03-17 2002-06-18 Advanced Micro Devices, Inc. Apparatus and method for implementing a least recently used cache replacement algorithm
US6823427B1 (en) * 2001-05-16 2004-11-23 Advanced Micro Devices, Inc. Sectored least-recently-used cache replacement
US6772307B1 (en) 2001-06-11 2004-08-03 Intel Corporation Firmware memory having multiple protected blocks
US6640296B2 (en) * 2002-03-07 2003-10-28 Nokia Corporation Data processing method and device for parallel stride access
US20050050278A1 (en) * 2003-09-03 2005-03-03 Advanced Micro Devices, Inc. Low power way-predicted cache
US7117290B2 (en) * 2003-09-03 2006-10-03 Advanced Micro Devices, Inc. MicroTLB and micro tag for reducing power in a processor
US7240277B2 (en) * 2003-09-26 2007-07-03 Texas Instruments Incorporated Memory error detection reporting
US20080183972A1 (en) * 2007-01-26 2008-07-31 James Norris Dieffenderfer Snoop Filtering Using a Snoop Request Cache
US8589627B2 (en) * 2010-08-27 2013-11-19 Advanced Micro Devices, Inc. Partially sectored cache
US9135182B2 (en) * 2012-06-01 2015-09-15 Semiconductor Energy Laboratory Co., Ltd. Central processing unit and driving method thereof
US9658787B2 (en) 2014-02-26 2017-05-23 Macronix International Co., Ltd. Nonvolatile memory data protection using nonvolatile protection codes and volatile mask codes

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS58102381A (ja) * 1981-12-15 1983-06-17 Nec Corp バツフアメモリ
US4758982A (en) * 1986-01-08 1988-07-19 Advanced Micro Devices, Inc. Quasi content addressable memory
JPH0673114B2 (ja) * 1987-03-31 1994-09-14 日本電気株式会社 キヤツシユ制御装置
US4945512A (en) * 1988-09-07 1990-07-31 Unisys Corporation High-speed partitioned set associative cache memory

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1996041378A1 (en) * 1995-06-07 1996-12-19 The Panda Project Semiconductor die carrier having double-sided die attach plate

Also Published As

Publication number Publication date
US5210845A (en) 1993-05-11

Similar Documents

Publication Publication Date Title
JPH0628256A (ja) データ処理システム
JP3352598B2 (ja) マイクロプロセッサ
KR100262906B1 (ko) 데이터 선인출 방법 및 시스템
US4853846A (en) Bus expander with logic for virtualizing single cache control into dual channels with separate directories and prefetch for different processors
US6338119B1 (en) Method and apparatus with page buffer and I/O page kill definition for improved DMA and L1/L2 cache performance
US8725987B2 (en) Cache memory system including selectively accessible pre-fetch memory for pre-fetch of variable size data
US6321296B1 (en) SDRAM L3 cache using speculative loads with command aborts to lower latency
US5875451A (en) Computer hybrid memory including DRAM and EDRAM memory components, with secondary cache in EDRAM for DRAM
US5644788A (en) Burst transfers using an ascending or descending only burst ordering
US5752272A (en) Memory access control device with prefetch and read out block length control functions
JP3577331B2 (ja) キャッシュメモリシステムおよびマイクロプロセッサ内の命令を操作するための方法
JP2509766B2 (ja) キャッシュメモリ交換プロトコル
US6157980A (en) Cache directory addressing scheme for variable cache sizes
JP2000250813A (ja) I/oキャッシュ・メモリにおけるデータ管理方法
JPH1055306A (ja) メモリコントローラ
US20040163080A1 (en) Multiple patches to on-chip ROM in a processor with a multilevel memory system without affecting performance
US5479636A (en) Concurrent cache line replacement method and apparatus in microprocessor system with write-back cache memory
JP2001147854A (ja) 処理システム、書き込みバッファユニット内の格納の最適化方法、並びに、データの格納及び分配方法
US5247642A (en) Apparatus for determining cacheability of a memory address to provide zero wait state operation in a computer system
US5724550A (en) Using an address pin as a snoop invalidate signal during snoop cycles
US5717894A (en) Method and apparatus for reducing write cycle wait states in a non-zero wait state cache system
EP0470739B1 (en) Method for managing a cache memory system
US5835934A (en) Method and apparatus of low power cache operation with a tag hit enablement
US20040148471A1 (en) Multiprocessing computer system employing capacity prefetching
US5367659A (en) Tag initialization in a controller for two-way set associative cache