JPH05181745A - 二次レベルキャッシュ制御装置 - Google Patents
二次レベルキャッシュ制御装置Info
- Publication number
- JPH05181745A JPH05181745A JP4160031A JP16003192A JPH05181745A JP H05181745 A JPH05181745 A JP H05181745A JP 4160031 A JP4160031 A JP 4160031A JP 16003192 A JP16003192 A JP 16003192A JP H05181745 A JPH05181745 A JP H05181745A
- Authority
- JP
- Japan
- Prior art keywords
- cache
- cycle
- controller
- memory
- cpu
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0811—Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0831—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/60—Details of cache memory
- G06F2212/608—Details relating to cache mapping
- G06F2212/6082—Way prediction in set-associative cache
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)【要約】
【目的】 CPUに関する平均キャッシュメモリ待ち時
間を短縮する。 【構成】 一次レベルキャッシュを有するCPUと共に
使用し、CPUバスのその一次レベルキャッシュと主メ
モリバスとの間に位置し、キャッシュ読取り/書込みメ
モリと、メモリバス制御装置と、キャッシュ制御装置と
を具備する二次レベルキャッシュメモリシステムを開示
する。キャッシュ制御装置の好ましい実施例は、マイク
ロプロセッサシステムにおけるデータの一貫性と、CP
Uとメモリバスとの並行動作と、読取りに関して最も近
い時点で使用した方法の予測を利用する制御装置タグア
レイとデータアレイにおける並行ルックアップと、CP
U/主メモリライトスルー能力と、メモリバスサイクル
要求のパイプライン化とを維持する手段として、スヌー
ピングを実行する。
間を短縮する。 【構成】 一次レベルキャッシュを有するCPUと共に
使用し、CPUバスのその一次レベルキャッシュと主メ
モリバスとの間に位置し、キャッシュ読取り/書込みメ
モリと、メモリバス制御装置と、キャッシュ制御装置と
を具備する二次レベルキャッシュメモリシステムを開示
する。キャッシュ制御装置の好ましい実施例は、マイク
ロプロセッサシステムにおけるデータの一貫性と、CP
Uとメモリバスとの並行動作と、読取りに関して最も近
い時点で使用した方法の予測を利用する制御装置タグア
レイとデータアレイにおける並行ルックアップと、CP
U/主メモリライトスルー能力と、メモリバスサイクル
要求のパイプライン化とを維持する手段として、スヌー
ピングを実行する。
Description
【0001】
【産業上の利用分野】本発明は、一般に、マイクロプロ
セッサの分野に関し、特にコンピュータシステムにおい
て中央処理装置(CPU)のキャッシュと、主メモリと
の間のメモリ階層のレベルを表す二次レベルキャッシュ
メモリに関する。
セッサの分野に関し、特にコンピュータシステムにおい
て中央処理装置(CPU)のキャッシュと、主メモリと
の間のメモリ階層のレベルを表す二次レベルキャッシュ
メモリに関する。
【0002】
【従来の技術】歴史的に見れば、マイクロプロセッサ技
術への要求はDRAMやTLL/プログラマブルロジッ
クなどの支援技術より速い速度で増してきている。近
年、この不釣合いは一層顕著になっており、次のような
状況を生んでいる。まず第1に、マイクロプロセッサの
クロック速度は標準支援論理のクロック速度に急速に近
付き、場合によってはそれを追い抜いている。加えて、
命令ごとのクロック数は急速に減少しているので、メモ
リには非常に大きいな帯域幅という要求が課されること
になる。RISCアーキテクチャなどの新しいデザイン
では、同じ量の作業を実行するために尚一層大きなメモ
リ帯域幅が必要とされている。双対プロセッサや多重プ
ロセッサなどの装置による直接メモリアクセス(DM
A)の必要があるときには、メモリの帯域幅要求はさら
に悪化する。最後に、新しい製品が市場にでる速度は増
しており、そのため、上記の状況は全て悪化してきてい
る。
術への要求はDRAMやTLL/プログラマブルロジッ
クなどの支援技術より速い速度で増してきている。近
年、この不釣合いは一層顕著になっており、次のような
状況を生んでいる。まず第1に、マイクロプロセッサの
クロック速度は標準支援論理のクロック速度に急速に近
付き、場合によってはそれを追い抜いている。加えて、
命令ごとのクロック数は急速に減少しているので、メモ
リには非常に大きいな帯域幅という要求が課されること
になる。RISCアーキテクチャなどの新しいデザイン
では、同じ量の作業を実行するために尚一層大きなメモ
リ帯域幅が必要とされている。双対プロセッサや多重プ
ロセッサなどの装置による直接メモリアクセス(DM
A)の必要があるときには、メモリの帯域幅要求はさら
に悪化する。最後に、新しい製品が市場にでる速度は増
しており、そのため、上記の状況は全て悪化してきてい
る。
【0003】このような傾向が現れた結果、システムを
いかに設計するかということに影響を及ぼし続ける性能
上の重大な障害が2つ明らかになった。性能を制限する
1要素であるメモリの帯域幅は、既に、数多くのマイク
ロプロセッサシステムにいおてキャッシュメモリの使用
を余儀なくさせている。たとえば、Intel Cor
poration製造の80386TM世代のマイクロプ
ロセッサでは、キャッシュメモリの利用はごく一般的で
ある。また、Intelの80486TMプロセッサとi
860TM(i860XPTMともいう)プロセッサは、性
能向上のために、オンチップキャッシュを含む。将来の
世代において性能向上を支援するためには、メモリ階層
(一次キャッシュ、二次キャッシュ、DRAMアーキテ
クチャなど)の一層の変更が要求されることは明らかで
ある。(Intel、80386、80486、i86
0及びi860XPTMは全てIntel Corpor
ationの商標である。)
いかに設計するかということに影響を及ぼし続ける性能
上の重大な障害が2つ明らかになった。性能を制限する
1要素であるメモリの帯域幅は、既に、数多くのマイク
ロプロセッサシステムにいおてキャッシュメモリの使用
を余儀なくさせている。たとえば、Intel Cor
poration製造の80386TM世代のマイクロプ
ロセッサでは、キャッシュメモリの利用はごく一般的で
ある。また、Intelの80486TMプロセッサとi
860TM(i860XPTMともいう)プロセッサは、性
能向上のために、オンチップキャッシュを含む。将来の
世代において性能向上を支援するためには、メモリ階層
(一次キャッシュ、二次キャッシュ、DRAMアーキテ
クチャなど)の一層の変更が要求されることは明らかで
ある。(Intel、80386、80486、i86
0及びi860XPTMは全てIntel Corpor
ationの商標である。)
【0004】性能に対するもう1つの障害はクロック速
度と、入出力(I/O)タイミングである。マイクロプ
ロセッサのクロック速度(そして、その結果としてのI
/Oタイミング)を増加させ続けるために必要とされる
出資をシステム中のあらゆる素子について維持できない
ことが明らかになっている。そのような出資ができたと
しても、数多くいると思われる売り手と協調してゆくこ
とのスケジュールの衝突によって、そのようなアーキテ
クチャは容易に競合できないものになってしまう。周波
数スケーリングの問題をシステム素子のサブセットに隔
離するための非同期インタフェースの利用が、それらの
要因によって既に余儀なくされている。将来、所望の性
能レベルに到達するために、より一層厳密に管理される
仕様を土台として高速CPUインタフェースを設計しな
ければならなくなることは明らかである。
度と、入出力(I/O)タイミングである。マイクロプ
ロセッサのクロック速度(そして、その結果としてのI
/Oタイミング)を増加させ続けるために必要とされる
出資をシステム中のあらゆる素子について維持できない
ことが明らかになっている。そのような出資ができたと
しても、数多くいると思われる売り手と協調してゆくこ
とのスケジュールの衝突によって、そのようなアーキテ
クチャは容易に競合できないものになってしまう。周波
数スケーリングの問題をシステム素子のサブセットに隔
離するための非同期インタフェースの利用が、それらの
要因によって既に余儀なくされている。将来、所望の性
能レベルに到達するために、より一層厳密に管理される
仕様を土台として高速CPUインタフェースを設計しな
ければならなくなることは明らかである。
【0005】従来の技術の1例として、Intelの8
0385キャッシュSRAMメモリは従来の方式の典型
的なものである。まず第1に、80385に類似するS
RAMアレイと関連する主な欠点の1つは、CPUイン
タフェースとメモリインタフェースの双方で平行動作を
支援できないことである。すなわち、読取り/書込み記
憶アレイをアクセスするたびに、1つのデータのみが転
送されるにすぎない。そのため、たとえば、80486
に結合した場合、1回のキャッシュ行読取り動作は4回
の別個の転送を要求する。言いかえれば、各キャッシュ
行を得るためにはSRAMアレイを繰返しアクセスしな
ければならず、それにより、メモリインタフェースで利
用できるクロックは厳しく制限されてしまう。あるい
は、幅広のSRAMのバンクを対応する外部マルチプレ
クサと共に採用することも可能であろうが、複雑さは増
し、コスト高になることを覚悟しなければならない。
0385キャッシュSRAMメモリは従来の方式の典型
的なものである。まず第1に、80385に類似するS
RAMアレイと関連する主な欠点の1つは、CPUイン
タフェースとメモリインタフェースの双方で平行動作を
支援できないことである。すなわち、読取り/書込み記
憶アレイをアクセスするたびに、1つのデータのみが転
送されるにすぎない。そのため、たとえば、80486
に結合した場合、1回のキャッシュ行読取り動作は4回
の別個の転送を要求する。言いかえれば、各キャッシュ
行を得るためにはSRAMアレイを繰返しアクセスしな
ければならず、それにより、メモリインタフェースで利
用できるクロックは厳しく制限されてしまう。あるい
は、幅広のSRAMのバンクを対応する外部マルチプレ
クサと共に採用することも可能であろうが、複雑さは増
し、コスト高になることを覚悟しなければならない。
【0006】従来のキャッシュメモリに共通するもう1
つの欠点は、あらゆる転送を同期しなければならないこ
とである。言いかえれば、メモリバスからキャッシュに
データが到達するときに、そのデータをCPUバスに転
送できるようになる前に、マイクロプロセッサとの間に
ハンドシェークを発生させなければならないのである。
メモリバスから取入れるべき次のデータセグメントにつ
いて、このプロセスを繰返すことが必要である。尚、こ
れを言いかえれば、単に、メモリバスとCPUバスとの
間のデータの転送が同期動作を要求するということを表
している。CPUのクロック速度が増すにつれて、その
ような動作はコンピュータシステムの性能に重大な負担
を与えることになる。
つの欠点は、あらゆる転送を同期しなければならないこ
とである。言いかえれば、メモリバスからキャッシュに
データが到達するときに、そのデータをCPUバスに転
送できるようになる前に、マイクロプロセッサとの間に
ハンドシェークを発生させなければならないのである。
メモリバスから取入れるべき次のデータセグメントにつ
いて、このプロセスを繰返すことが必要である。尚、こ
れを言いかえれば、単に、メモリバスとCPUバスとの
間のデータの転送が同期動作を要求するということを表
している。CPUのクロック速度が増すにつれて、その
ような動作はコンピュータシステムの性能に重大な負担
を与えることになる。
【0007】本発明は、多重プロセッサシステムの二次
レベルキャッシュメモリシステムの中で採用される統合
形キャッシュ制御装置を開示する。この装置は、本発明
の譲受人に譲渡された名称「Integrated C
ache SRAM Data Path」の同時係属
出願に記載されているようなキャッシュメモリと、二次
レベルキャッシュ制御装置を同様に本発明の譲受人に譲
渡された名称「Second Level Memor
y Bus Controller Unit」の同時
係属出願に記載されているような広範囲にわたるメモリ
バスプロトコルに適応させるメモリバス制御装置(MB
C)、並びにIntel 80486又はi860XP
TMプロセッサと共に協動すべきものである。
レベルキャッシュメモリシステムの中で採用される統合
形キャッシュ制御装置を開示する。この装置は、本発明
の譲受人に譲渡された名称「Integrated C
ache SRAM Data Path」の同時係属
出願に記載されているようなキャッシュメモリと、二次
レベルキャッシュ制御装置を同様に本発明の譲受人に譲
渡された名称「Second Level Memor
y Bus Controller Unit」の同時
係属出願に記載されているような広範囲にわたるメモリ
バスプロトコルに適応させるメモリバス制御装置(MB
C)、並びにIntel 80486又はi860XP
TMプロセッサと共に協動すべきものである。
【0008】
【発明が解決しようとする課題】従って、本発明の1つ
の目的は、関連するCPUと協動して、コンピュータシ
ステム全体の性能を向上させる目的で前記の欠点を克服
するキャッシュ制御装置、キャッシュメモリ装置及びメ
モリバス制御装置を提供することである。本発明の別の
目的は、局所キャッシュメモリによりサービスできる全
てのCPUアクセスをサービスすることにより、CPU
と主メモリバスとの間にゲートウェイを設け、それによ
り、メモリバスのトラフィックを減らし、要求されるメ
モリバス帯域幅を縮小することである。本発明の別の目
的は、CPUバスと主メモリバスの結合を解除して、C
PUを主メモリバスを介して通常達成できるより速い速
度で効率良く動作させることである。
の目的は、関連するCPUと協動して、コンピュータシ
ステム全体の性能を向上させる目的で前記の欠点を克服
するキャッシュ制御装置、キャッシュメモリ装置及びメ
モリバス制御装置を提供することである。本発明の別の
目的は、局所キャッシュメモリによりサービスできる全
てのCPUアクセスをサービスすることにより、CPU
と主メモリバスとの間にゲートウェイを設け、それによ
り、メモリバスのトラフィックを減らし、要求されるメ
モリバス帯域幅を縮小することである。本発明の別の目
的は、CPUバスと主メモリバスの結合を解除して、C
PUを主メモリバスを介して通常達成できるより速い速
度で効率良く動作させることである。
【0009】本発明の別の目的は、タグ及び行状態の割
当てを含む主制御素子になることである。本発明の別の
目的は、CPUに対する上記の結合解除を実行しなが
ら、待ち状態なしでキャッシュメモリに対するCPUア
クセスをサーブすることである。本発明の別の目的は、
CPUバス要求を完全に処理すると共に、アクセスがメ
モリバスを要求するときにはメモリバスと協調すること
である。
当てを含む主制御素子になることである。本発明の別の
目的は、CPUに対する上記の結合解除を実行しなが
ら、待ち状態なしでキャッシュメモリに対するCPUア
クセスをサーブすることである。本発明の別の目的は、
CPUバス要求を完全に処理すると共に、アクセスがメ
モリバスを要求するときにはメモリバスと協調すること
である。
【0010】本発明の別の目的は、クリティカルタイミ
ングの衝撃を最小限に抑えるように区分された正しいデ
ータをCPUに提供するために、ヒットとミスの双方に
際してキャッシュメモリデータ経路を制御することであ
る。本発明のさらに別の目的は、CPUに関する平均キ
ャッシュメモリ待ち時間を短縮するために、最も近い時
点で使用した(MRU)経路法則の予測に基づいてキャ
ッシュメモリ経路セレクタスイッチを動的に制御するこ
とである。
ングの衝撃を最小限に抑えるように区分された正しいデ
ータをCPUに提供するために、ヒットとミスの双方に
際してキャッシュメモリデータ経路を制御することであ
る。本発明のさらに別の目的は、CPUに関する平均キ
ャッシュメモリ待ち時間を短縮するために、最も近い時
点で使用した(MRU)経路法則の予測に基づいてキャ
ッシュメモリ経路セレクタスイッチを動的に制御するこ
とである。
【0011】本発明の別の目的は、多重プロセッサシス
テムにおいてデータの一貫性を得るために、他の装置が
メモリバスを使用している間にメモリバススヌープ動作
を制御することである。これは、この明細書で説明する
ような二次レベルキャッシュの一貫性を含むと共に、内
包の原理に基づいて、CPU装置に統合されている一次
キャッシュをも含む。本発明のさらに別の目的は、広範
囲にわたるメモリバス転送プロトコル及びキャッシュ一
貫性プロトコルを支援するために、メモリバスアクセス
中にサイクルアドレスを駆動し且つサイクル状態、制御
属性及びMBCに対する応答を提供することである。
テムにおいてデータの一貫性を得るために、他の装置が
メモリバスを使用している間にメモリバススヌープ動作
を制御することである。これは、この明細書で説明する
ような二次レベルキャッシュの一貫性を含むと共に、内
包の原理に基づいて、CPU装置に統合されている一次
キャッシュをも含む。本発明のさらに別の目的は、広範
囲にわたるメモリバス転送プロトコル及びキャッシュ一
貫性プロトコルを支援するために、メモリバスアクセス
中にサイクルアドレスを駆動し且つサイクル状態、制御
属性及びMBCに対する応答を提供することである。
【0012】
【課題を解決するための手段】本発明の上記の目的及び
その他の目的に従って、一実施例において、CPUと、
CPUバスと両方向セットアソシエイティブキャッシュ
メモリと、メモリバス制御装置と、関連するメモリバス
を含めた主メモリとを具備する二次キャッシュメモリシ
ステムの制御装置を実現する集積回路を開示する。キャ
ッシュ制御装置はCPUバスインタフェースと、ラッチ
を含めたメモリバスアドレス経路と、メモリバス待ち行
列と、メモリバス制御装置インタフェースと、スヌープ
ラッチと、キャッシュディレクトリと、キャッシュメモ
リインタフェースとをさらに具備する。本発明は以下の
詳細な説明と、本発明の好ましい実施例を示す添付の図
面から理解されるであろう。尚、ここに示す実施例は単
に理解を助ける説明のために挙げられているにすぎず、
本発明をその特定の実施例に限定するものとして解釈さ
れてはならない。
その他の目的に従って、一実施例において、CPUと、
CPUバスと両方向セットアソシエイティブキャッシュ
メモリと、メモリバス制御装置と、関連するメモリバス
を含めた主メモリとを具備する二次キャッシュメモリシ
ステムの制御装置を実現する集積回路を開示する。キャ
ッシュ制御装置はCPUバスインタフェースと、ラッチ
を含めたメモリバスアドレス経路と、メモリバス待ち行
列と、メモリバス制御装置インタフェースと、スヌープ
ラッチと、キャッシュディレクトリと、キャッシュメモ
リインタフェースとをさらに具備する。本発明は以下の
詳細な説明と、本発明の好ましい実施例を示す添付の図
面から理解されるであろう。尚、ここに示す実施例は単
に理解を助ける説明のために挙げられているにすぎず、
本発明をその特定の実施例に限定するものとして解釈さ
れてはならない。
【0013】
A.はじめに 二次キャッシュシステムの制御装置を実現する集積回路
を説明する。以下の説明中、本発明の好ましい実施例を
完全に理解させるために、特定のバイト数、ビット数、
装置数などの特定の事項を数多く詳細に挙げるが、それ
らの特定の詳細な事項がなくとも本発明を実施しうるこ
とは当業者には自明であろう。また、本発明を無用にあ
いまいにするのを避けるために、周知の回路を詳細に示
さずブロック線図の形態で示した。
を説明する。以下の説明中、本発明の好ましい実施例を
完全に理解させるために、特定のバイト数、ビット数、
装置数などの特定の事項を数多く詳細に挙げるが、それ
らの特定の詳細な事項がなくとも本発明を実施しうるこ
とは当業者には自明であろう。また、本発明を無用にあ
いまいにするのを避けるために、周知の回路を詳細に示
さずブロック線図の形態で示した。
【0014】本発明を説明してゆく中で、ある特定のC
PUアーキテクチャ及び/又はIntel80486マ
イクロプロセッサ、i860XPTMマイクロプロセッサ
などの特定のマイクロプロセッサの型と関連させた本発
明によるキャッシュ制御装置の利用を頻繁に挙げる。そ
のような実現形態は、単に、本発明の一般に好ましい実
施例を反映しているにすぎない。本発明で具現化する概
念を他の型のプロセッサ及び他のアーキテクチャにも適
用できるか又は拡張して良いことを理解すべきである。
さらに、本発明を説明する中で、一般に好ましい実施例
に特有の信号名に言及する。それらの信号については、
本文の中でそれぞれ説明してある。それらの特定の信号
名を挙げることを本発明の趣旨の限定であると解釈して
はならない。
PUアーキテクチャ及び/又はIntel80486マ
イクロプロセッサ、i860XPTMマイクロプロセッサ
などの特定のマイクロプロセッサの型と関連させた本発
明によるキャッシュ制御装置の利用を頻繁に挙げる。そ
のような実現形態は、単に、本発明の一般に好ましい実
施例を反映しているにすぎない。本発明で具現化する概
念を他の型のプロセッサ及び他のアーキテクチャにも適
用できるか又は拡張して良いことを理解すべきである。
さらに、本発明を説明する中で、一般に好ましい実施例
に特有の信号名に言及する。それらの信号については、
本文の中でそれぞれ説明してある。それらの特定の信号
名を挙げることを本発明の趣旨の限定であると解釈して
はならない。
【0015】B.二次キャッシュシステムの概要 データキャッシュの使用は局所性の原理に基づいてい
る。この原理は、ある1つの項目を参照した場合、その
項目はそのすぐ後に再び参照されがちである(すなわ
ち、時間の上での局所性)ということを認めている。同
様に、ある1つの項目を参照した場合、その近傍の項目
がすぐその後に参照されがちである(すなわち、空間的
局所性)。従って、キャッシュメモリを使用する原理
は、頻繁に使用される情報に対し効率良くアクセスし、
それにより、処理速度を増すことである。
る。この原理は、ある1つの項目を参照した場合、その
項目はそのすぐ後に再び参照されがちである(すなわ
ち、時間の上での局所性)ということを認めている。同
様に、ある1つの項目を参照した場合、その近傍の項目
がすぐその後に参照されがちである(すなわち、空間的
局所性)。従って、キャッシュメモリを使用する原理
は、頻繁に使用される情報に対し効率良くアクセスし、
それにより、処理速度を増すことである。
【0016】図1は、本発明の基礎を成す二次キャッシ
ュシステムのブロック線図である。基本キャッシュシス
テムは、一般に好ましい実施例ではIntel8048
6又はi860XPTMマイクロプロセッサのいずれかで
あるCPU10と、キャッシュメモリ13とを含み、キ
ャッシュメモリ13は、キャッシュ制御装置12及びメ
モリバス制御装置(MBC)11と共に、CPUバス1
4とメモリバス15との間のゲートウェイを構成してい
る。ブロック12,13から成るキャッシュサブシステ
ムにより局所的にサービスできるCPUアクセスの全て
は、メモリバストラフィックから除去される。従って、
局所サイクル(キャッシュをヒットするが、メモリバス
サイクルを要求しないCPUサイクル)はメモリバス1
5には全く見えない。これにより、多重処理システムに
頻繁に要求されるメモリバス帯域幅の縮小が実現され
る。
ュシステムのブロック線図である。基本キャッシュシス
テムは、一般に好ましい実施例ではIntel8048
6又はi860XPTMマイクロプロセッサのいずれかで
あるCPU10と、キャッシュメモリ13とを含み、キ
ャッシュメモリ13は、キャッシュ制御装置12及びメ
モリバス制御装置(MBC)11と共に、CPUバス1
4とメモリバス15との間のゲートウェイを構成してい
る。ブロック12,13から成るキャッシュサブシステ
ムにより局所的にサービスできるCPUアクセスの全て
は、メモリバストラフィックから除去される。従って、
局所サイクル(キャッシュをヒットするが、メモリバス
サイクルを要求しないCPUサイクル)はメモリバス1
5には全く見えない。これにより、多重処理システムに
頻繁に要求されるメモリバス帯域幅の縮小が実現され
る。
【0017】以下にさらに詳細に説明するが、二次キャ
ッシュシステムの別の重要な機能はCPUバス14と、
メモリバス15との迅速な結合解除を行うことである。
図1のシステムは、非常に高い周波数(たとえば、75
0MHz)に至るまで待ち時間なしの状態でCPU10
をサービスすると同時に、低速のメモリバスサイクルを
ランさせるために必要な結合解除を実行するように最適
化されている。
ッシュシステムの別の重要な機能はCPUバス14と、
メモリバス15との迅速な結合解除を行うことである。
図1のシステムは、非常に高い周波数(たとえば、75
0MHz)に至るまで待ち時間なしの状態でCPU10
をサービスすると同時に、低速のメモリバスサイクルを
ランさせるために必要な結合解除を実行するように最適
化されている。
【0018】メモリバス15は、通常、32ビット幅、
64ビット幅又は128ビット幅のいずれかである。こ
れは、80486マイクロプロセッサの場合には32ビ
ット幅であるCPUバスに匹敵する。従って、図1の二
次キャッシュシステムはCPUバスの幅以上のメモリバ
ス幅を容易に支援する。CPUのバス幅より狭いメモリ
バス幅は外部バッファの使用により支援可能である。
64ビット幅又は128ビット幅のいずれかである。こ
れは、80486マイクロプロセッサの場合には32ビ
ット幅であるCPUバスに匹敵する。従って、図1の二
次キャッシュシステムはCPUバスの幅以上のメモリバ
ス幅を容易に支援する。CPUのバス幅より狭いメモリ
バス幅は外部バッファの使用により支援可能である。
【0019】キャッシュ制御装置12は二次キャッシュ
システムの主制御素子を構成し、タグと、信号線状態と
を含み、アクセス、ヒット又はミスに関する決定を実行
する(MESIプロトコルの変形に基づいて)。キャッ
シュ制御装置12はCPUバス要求を完全に制御し、ア
クセスがメモリバス15の制御を要求するときにはMB
C11と協調する。キャッシュ制御装置12はヒット
と、ミスの双方についてキャッシュスタティックランダ
ムアクセスメモリ(SRAM)13のデータ経路をさら
に制御して、正しいデータをCPUに提供する。これ
は、最も近い時点で使用されたもの(MRU)予測メカ
ニズム及びアクセスコンテンションに基づいて待ち状態
を動的に追加する。MRUメカニズムは時間的局所性を
利用する。詳細にいえば、ある1セットの最も近い時点
で使用されたものは再び使用される確率が最も高い。M
RUの逆をいえば、同じ理由によって、置換えるべきも
のを選択するために近い時点で最も使用されないもの
(LRU)を使用することになる。キャッシュ制御装置
12は、キャッシュミスに際して、MBC11に対しサ
イクル要求を実行すると共に、メモリバス15にアドレ
スを提供する。
システムの主制御素子を構成し、タグと、信号線状態と
を含み、アクセス、ヒット又はミスに関する決定を実行
する(MESIプロトコルの変形に基づいて)。キャッ
シュ制御装置12はCPUバス要求を完全に制御し、ア
クセスがメモリバス15の制御を要求するときにはMB
C11と協調する。キャッシュ制御装置12はヒット
と、ミスの双方についてキャッシュスタティックランダ
ムアクセスメモリ(SRAM)13のデータ経路をさら
に制御して、正しいデータをCPUに提供する。これ
は、最も近い時点で使用されたもの(MRU)予測メカ
ニズム及びアクセスコンテンションに基づいて待ち状態
を動的に追加する。MRUメカニズムは時間的局所性を
利用する。詳細にいえば、ある1セットの最も近い時点
で使用されたものは再び使用される確率が最も高い。M
RUの逆をいえば、同じ理由によって、置換えるべきも
のを選択するために近い時点で最も使用されないもの
(LRU)を使用することになる。キャッシュ制御装置
12は、キャッシュミスに際して、MBC11に対しサ
イクル要求を実行すると共に、メモリバス15にアドレ
スを提供する。
【0020】キャッシュ制御装置12は、他の装置がメ
モリバス15を利用している間にメモリバススヌープ動
作を実行することになる。スヌーピングとは、メモリバ
ス15を共用している他の装置がアクセスされたキャッ
シュ行のコピーを有するか否かを判定するためにキャッ
シュ制御装置12に共用メモリバス15を監視させる動
作である。キャッシュ制御装置12は、内包の原理に基
づいて、二次レベルキャッシュと、CPU内の一次キャ
ッシュの双方についてスヌーピングする。
モリバス15を利用している間にメモリバススヌープ動
作を実行することになる。スヌーピングとは、メモリバ
ス15を共用している他の装置がアクセスされたキャッ
シュ行のコピーを有するか否かを判定するためにキャッ
シュ制御装置12に共用メモリバス15を監視させる動
作である。キャッシュ制御装置12は、内包の原理に基
づいて、二次レベルキャッシュと、CPU内の一次キャ
ッシュの双方についてスヌーピングする。
【0021】二次キャッシュSRAM13の制御論理は
2つの重要な機能を実行する。第1の機能はSRAM1
3のマルチプレクサにバーストアドレスを供給すると共
に、バースト転送のためにバッファ機能を実行すること
である。これは低速外部チップインタフェースを排除す
るので、バースト動作の転送速度を最大限に増すために
は不可欠である。第2の機能はCPUバス14のサイク
ルを追跡し、キャッシュヒットを予想する内部動作を実
行することである。この第2の能力は、キャッシュ制御
装置12及びSRAM13のルックアップ機能を区分す
ることにより、CPU10によるSRAM13へのアク
セス時間を最短にする方法である。
2つの重要な機能を実行する。第1の機能はSRAM1
3のマルチプレクサにバーストアドレスを供給すると共
に、バースト転送のためにバッファ機能を実行すること
である。これは低速外部チップインタフェースを排除す
るので、バースト動作の転送速度を最大限に増すために
は不可欠である。第2の機能はCPUバス14のサイク
ルを追跡し、キャッシュヒットを予想する内部動作を実
行することである。この第2の能力は、キャッシュ制御
装置12及びSRAM13のルックアップ機能を区分す
ることにより、CPU10によるSRAM13へのアク
セス時間を最短にする方法である。
【0022】キャッシュSRAM13とキャッシュ制御
装置12は共にCPUバス14のサイクルに応答するの
で、キャッシュ制御装置12は、セグメント方式ではな
く、キャッシュSRAM13の対応するデータルックア
ップと並行してタグRAM31におけるタグルックアッ
プを実行し、CPU10とSRAM13の双方に最後の
瞬間でタグルックアップの結果を報知することができ
る。タグRAM31はアドレスタグ、MRUビット、キ
ャッシュ状態及び制御を記憶する全ての記憶装置と、C
PUバス14とメモリバス15双方のスヌーピングのた
めにヒット/ミスを実行する比較器とを含む。これは、
待ち状態なし動作を実現するための二次キャッシュシス
テムの最大クリティカルパスを表す。内部では、タグル
ックアップ、比較及び状態更新を実行するためにほぼ1
クロックの間隔を利用できる。キャッシュ制御装置12
とSRAM13のこの並列動作は、タグRAM31ルッ
クアップと、その後に続くSRAM13クリティカルタ
イミングパスからのデータ取出しという逐次動作を排除
する。
装置12は共にCPUバス14のサイクルに応答するの
で、キャッシュ制御装置12は、セグメント方式ではな
く、キャッシュSRAM13の対応するデータルックア
ップと並行してタグRAM31におけるタグルックアッ
プを実行し、CPU10とSRAM13の双方に最後の
瞬間でタグルックアップの結果を報知することができ
る。タグRAM31はアドレスタグ、MRUビット、キ
ャッシュ状態及び制御を記憶する全ての記憶装置と、C
PUバス14とメモリバス15双方のスヌーピングのた
めにヒット/ミスを実行する比較器とを含む。これは、
待ち状態なし動作を実現するための二次キャッシュシス
テムの最大クリティカルパスを表す。内部では、タグル
ックアップ、比較及び状態更新を実行するためにほぼ1
クロックの間隔を利用できる。キャッシュ制御装置12
とSRAM13のこの並列動作は、タグRAM31ルッ
クアップと、その後に続くSRAM13クリティカルタ
イミングパスからのデータ取出しという逐次動作を排除
する。
【0023】メモリバス制御装置(MBC)11はCP
U/キャッシュコアをメモリバス15と関連する特定の
メモリバスプロトコルに適応させる。この適応を行う中
で、MBCはキャッシュ制御装置12、行充填、フラッ
シュ、戻し書込みなどと協調する。
U/キャッシュコアをメモリバス15と関連する特定の
メモリバスプロトコルに適応させる。この適応を行う中
で、MBCはキャッシュ制御装置12、行充填、フラッ
シュ、戻し書込みなどと協調する。
【0024】キャッシュ制御装置12により制御される
外部ラッチであるバイトイネーブル(BE)ラッチ17
は、制御装置12を通過しないCPU10信号のサブセ
ットを記憶するために使用され、機能の上ではキャッシ
ュ制御装置12の一部として考えられても良いのである
が、一般に好ましい実施例に物理的に組込まれているの
ではない。
外部ラッチであるバイトイネーブル(BE)ラッチ17
は、制御装置12を通過しないCPU10信号のサブセ
ットを記憶するために使用され、機能の上ではキャッシ
ュ制御装置12の一部として考えられても良いのである
が、一般に好ましい実施例に物理的に組込まれているの
ではない。
【0025】キャッシュ制御装置12は、ラッチと、マ
ルチプレクサ(MUXともいう)と、論理と、キャッシ
ュディレクトリアレイとして動作するランダムアクセス
メモリ(RAM)とを含む単一の集積回路として実現さ
れる。これは、Intel80486やi860XPTM
をCPUとするときの二次レベルキャッシュ制御装置で
ある。これはキャッシュメモリ13の外部スタティック
RAM装置に対してキャッシュディレクトリを構成する
と共に、制御信号を供給する。キャッシュ制御装置12
とキャッシュメモリ13のチップセットは、CPUシス
テムソフトウェアに見えない統合データ・命令キャッシ
ュを構成する。キャッシュ制御装置12はタグと、行状
態とを含み、アクセスのヒット又はミスに関する決定を
実行する。
ルチプレクサ(MUXともいう)と、論理と、キャッシ
ュディレクトリアレイとして動作するランダムアクセス
メモリ(RAM)とを含む単一の集積回路として実現さ
れる。これは、Intel80486やi860XPTM
をCPUとするときの二次レベルキャッシュ制御装置で
ある。これはキャッシュメモリ13の外部スタティック
RAM装置に対してキャッシュディレクトリを構成する
と共に、制御信号を供給する。キャッシュ制御装置12
とキャッシュメモリ13のチップセットは、CPUシス
テムソフトウェアに見えない統合データ・命令キャッシ
ュを構成する。キャッシュ制御装置12はタグと、行状
態とを含み、アクセスのヒット又はミスに関する決定を
実行する。
【0026】オプションの外部トランシーバ(XCR)
ラッチ16は、キャッシュ制御装置12のアドレスデー
タ及びキャッシュSRAM13のデータをメモリバス1
5との間でインタフェースするために使用されれば良
い。
ラッチ16は、キャッシュ制御装置12のアドレスデー
タ及びキャッシュSRAM13のデータをメモリバス1
5との間でインタフェースするために使用されれば良
い。
【0027】C.内部キャッシュ制御装置アーキテクチ
ャ 図2は、二次キャッシュメモリシステムのキャッシュ制
御装置12の詳細なブロック線図である。この装置は図
1に示したあらゆる素子とインタフェースする。特定の
インタフェースはCPUバスインタフェース30、MB
Cインタフェース35、キャッシュデータインタフェー
ス37、メモリバスアドレス経路34及びスヌープイン
タフェース33である。
ャ 図2は、二次キャッシュメモリシステムのキャッシュ制
御装置12の詳細なブロック線図である。この装置は図
1に示したあらゆる素子とインタフェースする。特定の
インタフェースはCPUバスインタフェース30、MB
Cインタフェース35、キャッシュデータインタフェー
ス37、メモリバスアドレス経路34及びスヌープイン
タフェース33である。
【0028】CPUバスインタフェース30はCPUバ
ス14に入出力ピン接続している。このインタフェース
は、キャッシュSRAM13及びメモリバス15との間
にデータの流れを形成するためにCPUバス14におい
て可能な限りの最高速度を達成するように設計されてい
る。CPUバスインタフェースの信号は、30本のアド
レス信号線(CFA0〜6、SET0〜10、TAG0
〜11)と、5本のサイクル定義信号線(W/R#、D
/C#、M/IO#、CACHE#、LEN)と、2本
のページ属性信号線(PCD、PWT)と、原子アクセ
ス信号線(LOCK#)と、5本のバスサイクル制御信
号線(ADS#、BRDYC1#、BRDYC2#、B
LAST#、NA#)と、5本のキャッシュスヌープ一
貫性信号線(AHOLD、EADS#、INV、HIT
M#、BOFF#)から成る。
ス14に入出力ピン接続している。このインタフェース
は、キャッシュSRAM13及びメモリバス15との間
にデータの流れを形成するためにCPUバス14におい
て可能な限りの最高速度を達成するように設計されてい
る。CPUバスインタフェースの信号は、30本のアド
レス信号線(CFA0〜6、SET0〜10、TAG0
〜11)と、5本のサイクル定義信号線(W/R#、D
/C#、M/IO#、CACHE#、LEN)と、2本
のページ属性信号線(PCD、PWT)と、原子アクセ
ス信号線(LOCK#)と、5本のバスサイクル制御信
号線(ADS#、BRDYC1#、BRDYC2#、B
LAST#、NA#)と、5本のキャッシュスヌープ一
貫性信号線(AHOLD、EADS#、INV、HIT
M#、BOFF#)から成る。
【0029】加えて、好ましい実施例では、クロック
(CLK)、リセット(RESET)、9本の構成用ピ
ン(CFG0〜3、CPUTYP、SNPMD、FPF
LDEN#、NCPFLD#、PLOCKEN、WWO
R#、MEMLDRV)及び4本の試験用ピン(TC
K、TD0、TD1、TMC)という17本の初期設定
・実行制御ピンが設けられている。
(CLK)、リセット(RESET)、9本の構成用ピ
ン(CFG0〜3、CPUTYP、SNPMD、FPF
LDEN#、NCPFLD#、PLOCKEN、WWO
R#、MEMLDRV)及び4本の試験用ピン(TC
K、TD0、TD1、TMC)という17本の初期設定
・実行制御ピンが設けられている。
【0030】MBCインタフェース35は、メモリバス
15を制御すると共に、キャッシュ制御装置12及びキ
ャッシュSRAM13を特定のメモリバスプロトコルに
適応させるために、MBC11との間で信号を伝送し合
う。MBC11とMBCインタフェース35との間の信
号は、制御装置12によるメモリバス15サイクル要
求、又は、バーストレディ(BRDY#)、3つのアド
レス及びデータストローブ(CADS#、SNPADS
#、CDTS#)、9つのサイクル制御(CW/R#、
CD/C#、CM/IO#、MCACHE#、CPLO
CK#、KLOCK#、RDYSRC、CLEN0〜
1)、4つのメモリサイクル属性(NENE#、SML
N#、PALLOC#、CWAY)、4つのメモリバス
アドレスラッチ34イネーブル(MAOE#、MBAO
E#、MALE、MBALE)、5つのサイクル進行信
号(BGT#、KWEND#、SWEND#、CRDY
#、CNA#、MBC11関連BEラッチ17制御信号
(BLE#)、並びにキャッシュディレクトリアレイ又
はタグRAM31タグ制御(FLUSH#、SYNC
#、FSIOUT#)の各信号から成るMBC11サイ
クル進行信号を表す。
15を制御すると共に、キャッシュ制御装置12及びキ
ャッシュSRAM13を特定のメモリバスプロトコルに
適応させるために、MBC11との間で信号を伝送し合
う。MBC11とMBCインタフェース35との間の信
号は、制御装置12によるメモリバス15サイクル要
求、又は、バーストレディ(BRDY#)、3つのアド
レス及びデータストローブ(CADS#、SNPADS
#、CDTS#)、9つのサイクル制御(CW/R#、
CD/C#、CM/IO#、MCACHE#、CPLO
CK#、KLOCK#、RDYSRC、CLEN0〜
1)、4つのメモリサイクル属性(NENE#、SML
N#、PALLOC#、CWAY)、4つのメモリバス
アドレスラッチ34イネーブル(MAOE#、MBAO
E#、MALE、MBALE)、5つのサイクル進行信
号(BGT#、KWEND#、SWEND#、CRDY
#、CNA#、MBC11関連BEラッチ17制御信号
(BLE#)、並びにキャッシュディレクトリアレイ又
はタグRAM31タグ制御(FLUSH#、SYNC
#、FSIOUT#)の各信号から成るMBC11サイ
クル進行信号を表す。
【0031】キャッシュインタフェース37はキャッシ
ュSRAM13に結合して、二方向キャッシュに関して
キャッシュ入出力サイクルの制御を実現する。インタフ
ェース信号には方向制御(WAY)、2つのアレイ制御
(WRARR#、MAWEA#)及び5つのキャッシュ
SRAM13バッファ制御(MCYC、BUS#、WB
WE#、WBA、WBTYP)がある。
ュSRAM13に結合して、二方向キャッシュに関して
キャッシュ入出力サイクルの制御を実現する。インタフ
ェース信号には方向制御(WAY)、2つのアレイ制御
(WRARR#、MAWEA#)及び5つのキャッシュ
SRAM13バッファ制御(MCYC、BUS#、WB
WE#、WBA、WBTYP)がある。
【0032】メモリバスアドレス待ち行列36は、メモ
リバス15サイクルについてCPU10又はキャッシュ
制御装置12で始まった要求をスケジューリングするた
めに使用される内部待ち行列である。この待ち行列36
の重要な特徴は、次の係属中のアクティビティを処理す
る方法である。待ち行列36の最終段は、メモリバス制
御装置インタフェース35と、MBC11からメモリバ
ス制御装置インタフェース35を介して供給されるラッ
チイネーブル(MALE、MBALE)及び出力イネー
ブル(MAOE#、MBAOE#)の各信号を伴う論理
的に透過的なアドレスラッチであるメモリバスアドレス
ラッチ34とに接続している。
リバス15サイクルについてCPU10又はキャッシュ
制御装置12で始まった要求をスケジューリングするた
めに使用される内部待ち行列である。この待ち行列36
の重要な特徴は、次の係属中のアクティビティを処理す
る方法である。待ち行列36の最終段は、メモリバス制
御装置インタフェース35と、MBC11からメモリバ
ス制御装置インタフェース35を介して供給されるラッ
チイネーブル(MALE、MBALE)及び出力イネー
ブル(MAOE#、MBAOE#)の各信号を伴う論理
的に透過的なアドレスラッチであるメモリバスアドレス
ラッチ34とに接続している。
【0033】図3は、内部キャッシュ制御装置12のア
ドレスラッチ、すなわち、スヌープラッチ33及びメモ
リバスラッチ34をさらに詳細に示す。メモリバス待ち
行列36はTAG、SET及びCPU部分行(CFA
x)の各信号を供給する。制御信号MALE(キャッシ
ュ行アドレス)及びMBALE(キャッシュ部分行アド
レス)は、TAG、SET及び構成可能アドレス信号
(CFAx)のそれぞれについてラッチ21を制御す
る。ラッチ21の出力は、MAOE#(キャッシュ行ア
ドレス)及びMBAOE#(キャッシュ部分行アドレ
ス)によりそれぞれ制御される3状態出力バッファ22
及び23によってイネーブル/ディスエーブルされる。
両方向アドレス情報は、MTAG、MSET及びMCF
Axの信号線を介してメモリバス15との間で伝送され
てゆく。
ドレスラッチ、すなわち、スヌープラッチ33及びメモ
リバスラッチ34をさらに詳細に示す。メモリバス待ち
行列36はTAG、SET及びCPU部分行(CFA
x)の各信号を供給する。制御信号MALE(キャッシ
ュ行アドレス)及びMBALE(キャッシュ部分行アド
レス)は、TAG、SET及び構成可能アドレス信号
(CFAx)のそれぞれについてラッチ21を制御す
る。ラッチ21の出力は、MAOE#(キャッシュ行ア
ドレス)及びMBAOE#(キャッシュ部分行アドレ
ス)によりそれぞれ制御される3状態出力バッファ22
及び23によってイネーブル/ディスエーブルされる。
両方向アドレス情報は、MTAG、MSET及びMCF
Axの信号線を介してメモリバス15との間で伝送され
てゆく。
【0034】キャッシュ制御装置12は、要求に応じて
スヌープを実行することにより、メモリバス15を介し
てキャッシュ一貫性を処理する。スヌープ要求に応答し
てスヌープ制御装置39はタグアレイ31に対する即時
アクセスを獲得し、ルックアップを実行する。決定的期
間の中で、装置39はスヌープの結果をもってMBC1
1に再び応答する。有効タグにヒットしたか否かを指示
し、ヒットであれば、対応するデータが修正〔M〕状態
であるか否かを指示する信号が供給される。MBC11
はそれらの信号を特定のメモリバスプロトコルの要求に
応じて変換する。
スヌープを実行することにより、メモリバス15を介し
てキャッシュ一貫性を処理する。スヌープ要求に応答し
てスヌープ制御装置39はタグアレイ31に対する即時
アクセスを獲得し、ルックアップを実行する。決定的期
間の中で、装置39はスヌープの結果をもってMBC1
1に再び応答する。有効タグにヒットしたか否かを指示
し、ヒットであれば、対応するデータが修正〔M〕状態
であるか否かを指示する信号が供給される。MBC11
はそれらの信号を特定のメモリバスプロトコルの要求に
応じて変換する。
【0035】ヒットが検出されると、スヌープ制御装置
39はさらに別のアクションを実行する。CPUキャッ
シュ一貫性プロトコルは、一次キャッシュ(すなわち、
CPUキャッシュ)にある全ての行は二次キャッシュ
(すなわちキャッシュ制御装置12)にも存在していな
ければならないという包含の原理に基づいている。その
結果、二次キャッシュで1つの行が変更された場合に
は、一次キャッシュでアクションを実行しなければなら
ない。二次キャッシュのいずれかの行が無効化されたな
らば、無効化サイクルをランすることにより、一次キャ
ッシュでその行を無効化しなければならない。二次キャ
ッシュの行が修正〔M〕状態にある場合、問合わせ(二
次キャッシュを無効化する場合には、おそらく無効化を
伴うと考えられる)サイクルをランしなければならず
(CPUキャッシュがライトバックプロトコルを実現す
る場合)、メモリバス制御装置インタフェースには、ス
ヌープライトバックサイクルが要求されていることを報
知しなければならない。尚、構成によっては、キャッシ
ュ制御装置12の1つのキャッシュ行に複数のCPUキ
ャッシュ行が相当することもありうるので、キャッシュ
制御装置12は複数の無効化又は問合せサイクルをラン
する場合もある。このパラメータを行比ともいう。
39はさらに別のアクションを実行する。CPUキャッ
シュ一貫性プロトコルは、一次キャッシュ(すなわち、
CPUキャッシュ)にある全ての行は二次キャッシュ
(すなわちキャッシュ制御装置12)にも存在していな
ければならないという包含の原理に基づいている。その
結果、二次キャッシュで1つの行が変更された場合に
は、一次キャッシュでアクションを実行しなければなら
ない。二次キャッシュのいずれかの行が無効化されたな
らば、無効化サイクルをランすることにより、一次キャ
ッシュでその行を無効化しなければならない。二次キャ
ッシュの行が修正〔M〕状態にある場合、問合わせ(二
次キャッシュを無効化する場合には、おそらく無効化を
伴うと考えられる)サイクルをランしなければならず
(CPUキャッシュがライトバックプロトコルを実現す
る場合)、メモリバス制御装置インタフェースには、ス
ヌープライトバックサイクルが要求されていることを報
知しなければならない。尚、構成によっては、キャッシ
ュ制御装置12の1つのキャッシュ行に複数のCPUキ
ャッシュ行が相当することもありうるので、キャッシュ
制御装置12は複数の無効化又は問合せサイクルをラン
する場合もある。このパラメータを行比ともいう。
【0036】スヌープ制御装置39からメモリバス15
へのインタフェースはキャッシュ制御装置12の一部で
あるので、メモリバス15で許容されるあらゆる信号モ
ードを支援することが必要である。詳細にいえば、クロ
ック方式とストローブ方式のメモリバスプロトコルにつ
いてはスヌープを認識しなければならず、同期環境と非
同期環境の双方においてスヌープは作用しなければなら
ない。非同期環境を支援するために、スヌープインタフ
ェースは組込みシンクロオナイザを有する。これは、キ
ャッシュ制御装置12において、正規動作中に使用され
る唯一のシンクロナイザである。このシンクロナイザ
は、外部シンクロナイザについて要求されると思われる
余分のクロックサイクルをセーブするために含まれてい
る。
へのインタフェースはキャッシュ制御装置12の一部で
あるので、メモリバス15で許容されるあらゆる信号モ
ードを支援することが必要である。詳細にいえば、クロ
ック方式とストローブ方式のメモリバスプロトコルにつ
いてはスヌープを認識しなければならず、同期環境と非
同期環境の双方においてスヌープは作用しなければなら
ない。非同期環境を支援するために、スヌープインタフ
ェースは組込みシンクロオナイザを有する。これは、キ
ャッシュ制御装置12において、正規動作中に使用され
る唯一のシンクロナイザである。このシンクロナイザ
は、外部シンクロナイザについて要求されると思われる
余分のクロックサイクルをセーブするために含まれてい
る。
【0037】2段アドレスラッチであるスヌープラッチ
33を図4にさらに詳細に示す。スヌープラッチ33
は、メモリバス15のアドレス信号線に接続する入力非
同期ラッチ41と、このラッチ41からデータを受信
し、アドレスデータをMUX32へ供給する出力同期ラ
ッチ43とから構成される。透過的なラッチ41は通常
は開成している。メモリバス15において別のMBCス
ヌーピングによりスヌープ事象が起動されると、スヌー
プアドレスはラッチ41によってラッチされる。同期ラ
ッチ43が閉成すると、ラッチ41は再び開成する。ラ
ッチ43はスヌープ要求後に閉成し(SNPSTB#同
期)、スヌープルックアップが完了したときに開成す
る。また、ラッチ41はタグRAM31に関わる制御信
号、すなわち、スヌープヒットを無効〔I〕の状態にさ
せるスヌープ無効化(SNPINV)と;活動状態であ
るときにスヌープをイネーブルするメモリバス出力イネ
ーブル(MAOE#)と;バスマスターが直接メモリア
クセス(DMA)装置などの非キャッシングエージェン
トであることを指示するスヌープ非キャッシング装置ア
クセス(SNPNCA)の各信号を通過させる(〔E〕
状態は許容される)。
33を図4にさらに詳細に示す。スヌープラッチ33
は、メモリバス15のアドレス信号線に接続する入力非
同期ラッチ41と、このラッチ41からデータを受信
し、アドレスデータをMUX32へ供給する出力同期ラ
ッチ43とから構成される。透過的なラッチ41は通常
は開成している。メモリバス15において別のMBCス
ヌーピングによりスヌープ事象が起動されると、スヌー
プアドレスはラッチ41によってラッチされる。同期ラ
ッチ43が閉成すると、ラッチ41は再び開成する。ラ
ッチ43はスヌープ要求後に閉成し(SNPSTB#同
期)、スヌープルックアップが完了したときに開成す
る。また、ラッチ41はタグRAM31に関わる制御信
号、すなわち、スヌープヒットを無効〔I〕の状態にさ
せるスヌープ無効化(SNPINV)と;活動状態であ
るときにスヌープをイネーブルするメモリバス出力イネ
ーブル(MAOE#)と;バスマスターが直接メモリア
クセス(DMA)装置などの非キャッシングエージェン
トであることを指示するスヌープ非キャッシング装置ア
クセス(SNPNCA)の各信号を通過させる(〔E〕
状態は許容される)。
【0038】スヌープラッチ33は、スヌープを開始し
且つラッチ41及び42を制御するために、ストローブ
非同期、クロック非同期及び同期の3つの信号モードを
支援する。ストローブ非同期モードはSNPSTB#の
立下り端を使用する。クロック非同期モードは、スヌー
プ事象として、SNPCLKの立上り端における活動状
態SNPSTB#を使用する。選択したモードに基づい
て、MUX44はラッチ41を閉成し、信号をシンクロ
ナイザ45に供給する。シンクロナイザ45はその信号
をMUX42に供給する。同期モードは、スヌープ事象
として、CLKの立上り端における活動状態SNPST
B#を使用する。SNPSTB#はMUX42にも接続
して、ラッチ43の閉成を制御するための追加モード選
択を実行させると共に、スヌープサイクルを開始させ
る。尚、ラッチ41は同期スヌープモードでは開成した
ままである。モードの選択はSNPCLKで行われる。
すなわち、ハイのときはストローブ非同期、ローのとき
は同期、トグル状態のときにはクロック非同期となる。
且つラッチ41及び42を制御するために、ストローブ
非同期、クロック非同期及び同期の3つの信号モードを
支援する。ストローブ非同期モードはSNPSTB#の
立下り端を使用する。クロック非同期モードは、スヌー
プ事象として、SNPCLKの立上り端における活動状
態SNPSTB#を使用する。選択したモードに基づい
て、MUX44はラッチ41を閉成し、信号をシンクロ
ナイザ45に供給する。シンクロナイザ45はその信号
をMUX42に供給する。同期モードは、スヌープ事象
として、CLKの立上り端における活動状態SNPST
B#を使用する。SNPSTB#はMUX42にも接続
して、ラッチ43の閉成を制御するための追加モード選
択を実行させると共に、スヌープサイクルを開始させ
る。尚、ラッチ41は同期スヌープモードでは開成した
ままである。モードの選択はSNPCLKで行われる。
すなわち、ハイのときはストローブ非同期、ローのとき
は同期、トグル状態のときにはクロック非同期となる。
【0039】MUX32は、タグRAM31により使用
されるべきアドレスソース、すなわち、CPU10によ
りCPUバスインタフェース30を介して供給されるア
ドレス又はスヌープラッチ33を介して供給されるアド
レスのいずれかを選択する手段を構成している。
されるべきアドレスソース、すなわち、CPU10によ
りCPUバスインタフェース30を介して供給されるア
ドレス又はスヌープラッチ33を介して供給されるアド
レスのいずれかを選択する手段を構成している。
【0040】タグRAM31はキャッシュSRAM13
と共に二方向セットアソシエイティブキャッシュを実現
している。キャッシュメモリサイクルを開始するため
に、タグRAM31はラッチ51の12(11)ビット
セットアドレスビットを使用して、図5に示すような4
K(2K)セットの中の1つを選択する。2つのタグキ
ャッシュディレクトリ52及び53においてストローブ
された2つのタグは、比較器54及び55により、一致
を見出すためにアドレスのタグビットと同時に比較され
る。
と共に二方向セットアソシエイティブキャッシュを実現
している。キャッシュメモリサイクルを開始するため
に、タグRAM31はラッチ51の12(11)ビット
セットアドレスビットを使用して、図5に示すような4
K(2K)セットの中の1つを選択する。2つのタグキ
ャッシュディレクトリ52及び53においてストローブ
された2つのタグは、比較器54及び55により、一致
を見出すためにアドレスのタグビットと同時に比較され
る。
【0041】読取りサイクルの場合、キャッシュSRA
M13はセットビットによりアドレス指定されたセット
を同時にルックアップし、MRU59に基づくデータを
MUX63を介して供給する。比較器54及び55が一
致を検出し、それがLRU/MRUディレクトリ58が
指示した方向でない場合、そのデータを使用する。比較
器54又は55が一致を検出し、ディレクトリ58が一
致したならば、SRAM13のMUX63切換えにより
ディレクトリ58及び59を更新する。比較器54,5
5がいずれも一致を検出しない場合には、サイクルはメ
モリバス15へ移行する。
M13はセットビットによりアドレス指定されたセット
を同時にルックアップし、MRU59に基づくデータを
MUX63を介して供給する。比較器54及び55が一
致を検出し、それがLRU/MRUディレクトリ58が
指示した方向でない場合、そのデータを使用する。比較
器54又は55が一致を検出し、ディレクトリ58が一
致したならば、SRAM13のMUX63切換えにより
ディレクトリ58及び59を更新する。比較器54,5
5がいずれも一致を検出しない場合には、サイクルはメ
モリバス15へ移行する。
【0042】書込みサイクルでは、ヒット/ミスを検出
すると共に、ヒットの場合にどの方向で書込むべきかを
SRAM13に報知するために、比較器54及び55を
使用する。また、書込みヒットはディレクトリ58及び
59を一貫して更新させるが、それが同一のクロックサ
イクルで起こるとは限らない。
すると共に、ヒットの場合にどの方向で書込むべきかを
SRAM13に報知するために、比較器54及び55を
使用する。また、書込みヒットはディレクトリ58及び
59を一貫して更新させるが、それが同一のクロックサ
イクルで起こるとは限らない。
【0043】スヌープ及び置換えは、アクセスすべき方
向を識別するために、キャッシュ制御装置12からキャ
ッシュSRAM13の方向の修正類似書込みを使用す
る。SRAM13のデータに対するアクセス時間を統計
的に短縮するために、タグRAM31は、さらに、アク
セスが与えられるたびに選択すべき方向の予測選択を実
現する。この予測は最も近い時点で使用した方向(MR
U)の規則に基づいている。読取り動作では、MRU規
則は、最も近い時点で使用した方向が所要データを提供
するものと予測し、そのため、SRAM13のMUX6
3(図5)はMRUディレクトリ59のビットにより指
示されるMRU方向を選択するように設定される。予測
が正しければ、要求されたデータは即時に利用可能であ
る。予測論理56は比較器54及び55からの出力をL
RU/MRUディレクトリ58に記憶されているMRU
ビットと比較する。この予測論理56が予測は正しくな
いと判定したならば、MUX63を他方の方向へ切換え
るための予測修正信号57を与える時間をとるために、
待ち状態を導入する。その結果、ディレクトリ58及び
59でMRUビットが更新される。
向を識別するために、キャッシュ制御装置12からキャ
ッシュSRAM13の方向の修正類似書込みを使用す
る。SRAM13のデータに対するアクセス時間を統計
的に短縮するために、タグRAM31は、さらに、アク
セスが与えられるたびに選択すべき方向の予測選択を実
現する。この予測は最も近い時点で使用した方向(MR
U)の規則に基づいている。読取り動作では、MRU規
則は、最も近い時点で使用した方向が所要データを提供
するものと予測し、そのため、SRAM13のMUX6
3(図5)はMRUディレクトリ59のビットにより指
示されるMRU方向を選択するように設定される。予測
が正しければ、要求されたデータは即時に利用可能であ
る。予測論理56は比較器54及び55からの出力をL
RU/MRUディレクトリ58に記憶されているMRU
ビットと比較する。この予測論理56が予測は正しくな
いと判定したならば、MUX63を他方の方向へ切換え
るための予測修正信号57を与える時間をとるために、
待ち状態を導入する。その結果、ディレクトリ58及び
59でMRUビットが更新される。
【0044】LRUビットも、キャッシュメモリ置換え
のために、最も近い時点で使用されたデータが最も遠い
時点で使用されたデータより再び要求される確率が高い
という前提に基づいて使用される。タグRAM31は各
キャッシュエントリの4つの一貫性状態を4ビットフィ
ールドにさらに記憶している。4つの状態は、行が有効
(ヒット又はミス)であるか、他のキャッシュと共用で
あるか、所定のキャッシュについて排他的であるか、又
は主メモリの内容に対して修正されているかを定義す
る。
のために、最も近い時点で使用されたデータが最も遠い
時点で使用されたデータより再び要求される確率が高い
という前提に基づいて使用される。タグRAM31は各
キャッシュエントリの4つの一貫性状態を4ビットフィ
ールドにさらに記憶している。4つの状態は、行が有効
(ヒット又はミス)であるか、他のキャッシュと共用で
あるか、所定のキャッシュについて排他的であるか、又
は主メモリの内容に対して修正されているかを定義す
る。
【0045】D.入力ピン及び出力ピン 図6は、Intel80486プロセッサと共に使用す
るための本発明の好ましい一実施例のピンアウト構成の
底面図である。4つの面の入出力信号は、主に、左側面
及び底面に沿ったCPUバスインタフェースと、右側面
に沿ったメモリバスインタフェースと、メモリバス制御
装置インタフェースと、上面に沿った試験用ピンとして
グループ分けされる。キャッシュメモリ(C8)インタ
フェースピンは底面を共用している。図7は、信号名を
場所座標と相互参照するテーブルである。電源ピン(V
cc及びVss)は4つの面全ての中央に配分されてい
る。
るための本発明の好ましい一実施例のピンアウト構成の
底面図である。4つの面の入出力信号は、主に、左側面
及び底面に沿ったCPUバスインタフェースと、右側面
に沿ったメモリバスインタフェースと、メモリバス制御
装置インタフェースと、上面に沿った試験用ピンとして
グループ分けされる。キャッシュメモリ(C8)インタ
フェースピンは底面を共用している。図7は、信号名を
場所座標と相互参照するテーブルである。電源ピン(V
cc及びVss)は4つの面全ての中央に配分されてい
る。
【0046】D.1.CPUバスインタフェースピン システムはCPUクロック信号CLKと、RESET信
号と、行比、タグサイズ、行/セクター、バス幅及びキ
ャッチサイズを表す一連の9つの構成信号とにより初期
設定される。クロック信号CLKはキャッシュ制御装置
12の実行速度とタイミングを確定する。RESET入
力は非同期であり、制御装置12を既知の状態にさせ
る。構成信号はRESETの立下り端でサンプリングさ
れ、機能の上で他のピンと多重化される。図8は、構成
入力サンプリングに関するタイミング関係を示す。通
常、セットアップ時間は3クロックサイクルであり、そ
の後、RESET信号の立下り端に続いて1クロック未
満の保持がある。
号と、行比、タグサイズ、行/セクター、バス幅及びキ
ャッチサイズを表す一連の9つの構成信号とにより初期
設定される。クロック信号CLKはキャッシュ制御装置
12の実行速度とタイミングを確定する。RESET入
力は非同期であり、制御装置12を既知の状態にさせ
る。構成信号はRESETの立下り端でサンプリングさ
れ、機能の上で他のピンと多重化される。図8は、構成
入力サンプリングに関するタイミング関係を示す。通
常、セットアップ時間は3クロックサイクルであり、そ
の後、RESET信号の立下り端に続いて1クロック未
満の保持がある。
【0047】構成信号CFG0〜CFG3は、行比、行
/セクター及びタグ数を含むキャッシュパラメータを構
成する。キャッシュ制御装置12はそれらの信号を復号
し、関連情報を、ピンMCYC#、BUS#及びWBA
において多重化されるキャッシュメモリインタフェース
信号線LR0、LR1及びSEC2#を介してキャッシ
ュメモリ13に供給する。図9は、Intel8048
6CPUと共に使用するときに信号CFG0〜CFG3
により指定される8つの構成オプションを示す。制御さ
れる構成パラメータは行サイズ比(1;2;4又は8)
と、行/セクター(1又は2)と、タグ数(4K又は8
K)とを含む。
/セクター及びタグ数を含むキャッシュパラメータを構
成する。キャッシュ制御装置12はそれらの信号を復号
し、関連情報を、ピンMCYC#、BUS#及びWBA
において多重化されるキャッシュメモリインタフェース
信号線LR0、LR1及びSEC2#を介してキャッシ
ュメモリ13に供給する。図9は、Intel8048
6CPUと共に使用するときに信号CFG0〜CFG3
により指定される8つの構成オプションを示す。制御さ
れる構成パラメータは行サイズ比(1;2;4又は8)
と、行/セクター(1又は2)と、タグ数(4K又は8
K)とを含む。
【0048】行サイズ比はキャッシュ行サイズと、CP
Uオンチップ行サイズとの相対サイズである。キャッシ
ュ制御装置12はこの情報を使用して、CPU一次キャ
ッシュをアクセスするときに完了に至るために要求され
る逆無効化又は問合せサイクルの数を確定する。行/セ
クターはキャッシュ制御装置12により支援される1行
分又は2行のキャッシュメモリセクターを表し、各セク
ター行は単一のタグと関連し、各行は単一の状態と関連
している。タグ置換え中、セクター全体(1行又は2
行)が修正されていれば、それを主メモリにライトバッ
クする。図9は、先に論じた信号LR0、LR1及びS
EC2#の状態をさらに示している。さらに、最後の欄
に挙げてあるフラグTAG8の状態は、4Kのタグを支
援しているか又は8Kのタグを支援しているかをキャッ
シュ制御装置12に指示する。
Uオンチップ行サイズとの相対サイズである。キャッシ
ュ制御装置12はこの情報を使用して、CPU一次キャ
ッシュをアクセスするときに完了に至るために要求され
る逆無効化又は問合せサイクルの数を確定する。行/セ
クターはキャッシュ制御装置12により支援される1行
分又は2行のキャッシュメモリセクターを表し、各セク
ター行は単一のタグと関連し、各行は単一の状態と関連
している。タグ置換え中、セクター全体(1行又は2
行)が修正されていれば、それを主メモリにライトバッ
クする。図9は、先に論じた信号LR0、LR1及びS
EC2#の状態をさらに示している。さらに、最後の欄
に挙げてあるフラグTAG8の状態は、4Kのタグを支
援しているか又は8Kのタグを支援しているかをキャッ
シュ制御装置12に指示する。
【0049】残る5つの構成パラメータ信号のうち3つ
は、ピンHITM#と共用され、CPUの型(8048
6又はi860XPTM)を支持するCPUTYPと;ピ
ンSNPCLK#と共用され、スヌープモードが同期で
るか又はクロック/ストローブ非同期であるかを指示す
るSNPMDと;CPLOCK#と多重化され、804
86CPUのみと共に使用され、80486CPUPL
OCK#機能を強制することによりCPU10からの6
4ビット原子書込みを処理するPLOCKENとであ
る。RESETでPLOCKENをサンプリングしてハ
イであれば、PLOCK#機能をイネーブルし、PLO
CK#要求は制御装置12のピンCPLOCK#により
表される。ローであれば、制御装置12は80486C
PU PLOCK#要求を無視し、CPLOCK#はデ
ィスエーブルされる。
は、ピンHITM#と共用され、CPUの型(8048
6又はi860XPTM)を支持するCPUTYPと;ピ
ンSNPCLK#と共用され、スヌープモードが同期で
るか又はクロック/ストローブ非同期であるかを指示す
るSNPMDと;CPLOCK#と多重化され、804
86CPUのみと共に使用され、80486CPUPL
OCK#機能を強制することによりCPU10からの6
4ビット原子書込みを処理するPLOCKENとであ
る。RESETでPLOCKENをサンプリングしてハ
イであれば、PLOCK#機能をイネーブルし、PLO
CK#要求は制御装置12のピンCPLOCK#により
表される。ローであれば、制御装置12は80486C
PU PLOCK#要求を無視し、CPLOCK#はデ
ィスエーブルされる。
【0050】残る2つの構成信号は、ピンSYNC#と
共用され、RESETでローであれば高キャパシタンス
メモリバスドライバの選択を指示し、RESETでハイ
であれば底キャパシタンスドライバの選択を指示するM
EMLDRVと;ピンMALE#と共用され、RESE
Tでローであれば弱い書込み順序付けの選択を指示し、
RESETでハイであれば強い書込み順序付けの選択を
指示するWWOR#とである。強い書込み順序付けはキ
ャッシュ制御装置12が通知書込みの係属中(すなわ
ち、BGT#によってメモリバス15を許可されていな
い)場合に〔M〕状態になると考えられる書込みサイク
ルを完了するのを阻止する。従って、強い順序付けは、
CPU10からの書込みサイクルが同じ順序でメモリに
書込まれることを保証する。
共用され、RESETでローであれば高キャパシタンス
メモリバスドライバの選択を指示し、RESETでハイ
であれば底キャパシタンスドライバの選択を指示するM
EMLDRVと;ピンMALE#と共用され、RESE
Tでローであれば弱い書込み順序付けの選択を指示し、
RESETでハイであれば強い書込み順序付けの選択を
指示するWWOR#とである。強い書込み順序付けはキ
ャッシュ制御装置12が通知書込みの係属中(すなわ
ち、BGT#によってメモリバス15を許可されていな
い)場合に〔M〕状態になると考えられる書込みサイク
ルを完了するのを阻止する。従って、強い順序付けは、
CPU10からの書込みサイクルが同じ順序でメモリに
書込まれることを保証する。
【0051】キャッシュ制御装置12の好ましい実施例
は、先に説明した構成オプションピンに従って機能を変
化させる7本の構成可能アドレス信号線を有する。これ
らの多重機能ピンを設けた理由は、キャッシュメモリ1
3が大きく(幅広く)なればなるほど、要求されるタグ
ビットの数は少なくなるためにピンの個数を減らすこと
である。信号線の機能はCFG0〜CFG3及びCPU
TYP信号線に従って変化する。図10は、アドレス信
号線CFA0〜CFA6の機能を示すと共に、8048
6CPUを使用するときにどのCPUアドレス信号線
(A2〜A6、A28〜A31)をそれらの信号線に接
続すべきかを指示する。
は、先に説明した構成オプションピンに従って機能を変
化させる7本の構成可能アドレス信号線を有する。これ
らの多重機能ピンを設けた理由は、キャッシュメモリ1
3が大きく(幅広く)なればなるほど、要求されるタグ
ビットの数は少なくなるためにピンの個数を減らすこと
である。信号線の機能はCFG0〜CFG3及びCPU
TYP信号線に従って変化する。図10は、アドレス信
号線CFA0〜CFA6の機能を示すと共に、8048
6CPUを使用するときにどのCPUアドレス信号線
(A2〜A6、A28〜A31)をそれらの信号線に接
続すべきかを指示する。
【0052】SET0〜SET10は、キャッシュ制御
装置12のタグアレイ31と、アクセスすべきキャッシ
ュメモリセットを選択するために使用されるCPUアド
レス信号線とに直接接続するアドレスピンのセットであ
る。ところが、8Kタグモードの場合、ピンCFA6が
SET11として機能する。
装置12のタグアレイ31と、アクセスすべきキャッシ
ュメモリセットを選択するために使用されるCPUアド
レス信号線とに直接接続するアドレスピンのセットであ
る。ところが、8Kタグモードの場合、ピンCFA6が
SET11として機能する。
【0053】TAG0〜TAG11は、ヒットが起こっ
たか否かを判定するために使用される連想メモリの二方
向タグ比較器に接続する固定タグ信号線である。さら
に、未使用のCFAx信号線が選択した構成に応じてT
AGビットとして機能しても良い。最大限で15本のT
AG信号線を支援して、大半の動作モードについて全体
として4ギガバイトのアドレススペースのキャッシング
をイネーブルする。キャッシュ制御装置12は、804
86CPUのデータシートに従って、W/R#、DC#
及びMIO#の3つのバスサイクル定義ピンを支援す
る。それら3本のピンは実行すべきバスサイクルの型を
定義する。すなわち、W/R#は書込みサイクルと読取
りサイクルとを区別し、DC#はデータサイクルと制御
サイクルとを区別し、MIO#はメモリサイクルと入出
力サイクルとを区別する。i860XPTMのデータシー
トによれば、CACHE#とLENというさらに別の2
つのピンが規定されている。CACHE#はCPUの意
図をキャッシュに知らせる(80486の場合には使用
されない)。LENは、2回のデータ転送を要求するC
PUバスデータ型を識別するために使用される。804
86におけるPLOCK#信号はキャッシュ制御装置1
2と共に使用するためのこの信号として再定義される。
たか否かを判定するために使用される連想メモリの二方
向タグ比較器に接続する固定タグ信号線である。さら
に、未使用のCFAx信号線が選択した構成に応じてT
AGビットとして機能しても良い。最大限で15本のT
AG信号線を支援して、大半の動作モードについて全体
として4ギガバイトのアドレススペースのキャッシング
をイネーブルする。キャッシュ制御装置12は、804
86CPUのデータシートに従って、W/R#、DC#
及びMIO#の3つのバスサイクル定義ピンを支援す
る。それら3本のピンは実行すべきバスサイクルの型を
定義する。すなわち、W/R#は書込みサイクルと読取
りサイクルとを区別し、DC#はデータサイクルと制御
サイクルとを区別し、MIO#はメモリサイクルと入出
力サイクルとを区別する。i860XPTMのデータシー
トによれば、CACHE#とLENというさらに別の2
つのピンが規定されている。CACHE#はCPUの意
図をキャッシュに知らせる(80486の場合には使用
されない)。LENは、2回のデータ転送を要求するC
PUバスデータ型を識別するために使用される。804
86におけるPLOCK#信号はキャッシュ制御装置1
2と共に使用するためのこの信号として再定義される。
【0054】PCDとPWTは、CPU10によりペー
ジごとに起動されるページ属性ピンである。PCDは非
キャッシュ可能アドレスであり、PWTは、主メモリへ
の同一データの書込みを起こさせるようにアクセスされ
た行にライトスルー属性を付着させることをキャッシュ
制御装置12に命令する。ところが、制御装置12のキ
ャッシュ状態はPCD属性とPWT属性を変更させるこ
とがある。(たとえば、PCDが活動状態であるときに
1つのキャッシュ行をいずれかの有効(〔S〕、
〔E〕、〔M〕)状態でアクセスすると、制御装置はP
CDを無視し、その行がキャッシュされたと考える。P
WTが活動状態であるときに排他状態(〔E〕、
〔M〕)で行をアクセスすると、PWTは無視され、行
の状態は排他のままである。E.1の章を参照。)
ジごとに起動されるページ属性ピンである。PCDは非
キャッシュ可能アドレスであり、PWTは、主メモリへ
の同一データの書込みを起こさせるようにアクセスされ
た行にライトスルー属性を付着させることをキャッシュ
制御装置12に命令する。ところが、制御装置12のキ
ャッシュ状態はPCD属性とPWT属性を変更させるこ
とがある。(たとえば、PCDが活動状態であるときに
1つのキャッシュ行をいずれかの有効(〔S〕、
〔E〕、〔M〕)状態でアクセスすると、制御装置はP
CDを無視し、その行がキャッシュされたと考える。P
WTが活動状態であるときに排他状態(〔E〕、
〔M〕)で行をアクセスすると、PWTは無視され、行
の状態は排他のままである。E.1の章を参照。)
【0055】キャッシュ制御装置12は、要求されたサ
イクルのキャッシュ可能性を指示するために、CPU1
0にKEN#信号を供給する。この信号は通常は活動状
態であり、読取り専用アドレスに対する読取りヒット
と、あらゆるロックされたサイクルとにおいて非活動状
態になる。サイクルがヒットでない場合、メモリバスに
よりキャッシュ可能性を指示できるので、キャッシュ制
御装置12は、メモリバスインタフェースのキャッシュ
可能性ピンMKEN#及びメモリバス読取り専用ピンM
RO#を参照することによりキャッシュ可能性を解決す
るために、キャッシュ可能性ウィンドウ(KWEND
#)の閉鎖を待つ。
イクルのキャッシュ可能性を指示するために、CPU1
0にKEN#信号を供給する。この信号は通常は活動状
態であり、読取り専用アドレスに対する読取りヒット
と、あらゆるロックされたサイクルとにおいて非活動状
態になる。サイクルがヒットでない場合、メモリバスに
よりキャッシュ可能性を指示できるので、キャッシュ制
御装置12は、メモリバスインタフェースのキャッシュ
可能性ピンMKEN#及びメモリバス読取り専用ピンM
RO#を参照することによりキャッシュ可能性を解決す
るために、キャッシュ可能性ウィンドウ(KWEND
#)の閉鎖を待つ。
【0056】CPUバスサイクルロッキング信号LOC
K#と、2つのMBC11バスロッキング信号がある。
ALOCK#信号は、読取り−修正−書込みシーケンス
を要求するときに使用される。キャッシュ制御装置12
は、無停止メモリバスシーケンスを実行するために、こ
の要求をKLOCK#ピンを介してMBC11へ送り出
す。PLOCK#は80486CPUの64ビット書込
み要求を表すために使用される。CPLOCK#が活動
状態である現在サイクルと、次のサイクルは2つの32
ビット語(64ビット浮動小数点オペランド)の原子転
送として扱われる。最悪の場合にスヌープ待ち時間を短
縮するために、キャッシュ制御装置12は原子64ビッ
ト書込み機能性をディスエーブルしても良い。
K#と、2つのMBC11バスロッキング信号がある。
ALOCK#信号は、読取り−修正−書込みシーケンス
を要求するときに使用される。キャッシュ制御装置12
は、無停止メモリバスシーケンスを実行するために、こ
の要求をKLOCK#ピンを介してMBC11へ送り出
す。PLOCK#は80486CPUの64ビット書込
み要求を表すために使用される。CPLOCK#が活動
状態である現在サイクルと、次のサイクルは2つの32
ビット語(64ビット浮動小数点オペランド)の原子転
送として扱われる。最悪の場合にスヌープ待ち時間を短
縮するために、キャッシュ制御装置12は原子64ビッ
ト書込み機能性をディスエーブルしても良い。
【0057】CPUバスインタフェースはADS#、B
RDYC1#、BRDYC2#、BLAST#及びNA
#の5つのバスサイクル制御ピンを支援する。CPU1
0は、バスサイクルの第1のクロックで活動状態にな
り、第2のクロックで非活動状態になることによりアド
レス/状態バスにおける新たなアドレス及び状態語のア
ベイラビリティを指示するADS#アドレス状態信号を
供給する。BRDYC1#とBRDYC2#は論理的に
は同等であり、ローディング効果を減少させるため、並
びにデータピンのデータが有効であり、次のバーストの
シーケンスを開始して良いことをCPU10及びキャッ
シュSRAM13に指示するために供給する。これらの
信号は、主メモリアクセスが要求されないときにキャッ
シュ制御装置12により発生される。キャッシュ制御装
置12により供給されるBLAST#はバーストの完了
を指示し、CPU10及び制御装置12によりBRDY
と関連して、バスサイクルを完了するために使用され
る。NA#は制御装置12からの次アドレス要求信号で
あり、現在サイクルの終了に至っていない場合に制御装
置12が次のサイクル事象を受入れる準備をしているこ
とを指示することにより、パイプラインプロセスを指示
する。NA#がローであれば、次アドレスは利用可能に
なったときのCPUバス14へ送り出される。
RDYC1#、BRDYC2#、BLAST#及びNA
#の5つのバスサイクル制御ピンを支援する。CPU1
0は、バスサイクルの第1のクロックで活動状態にな
り、第2のクロックで非活動状態になることによりアド
レス/状態バスにおける新たなアドレス及び状態語のア
ベイラビリティを指示するADS#アドレス状態信号を
供給する。BRDYC1#とBRDYC2#は論理的に
は同等であり、ローディング効果を減少させるため、並
びにデータピンのデータが有効であり、次のバーストの
シーケンスを開始して良いことをCPU10及びキャッ
シュSRAM13に指示するために供給する。これらの
信号は、主メモリアクセスが要求されないときにキャッ
シュ制御装置12により発生される。キャッシュ制御装
置12により供給されるBLAST#はバーストの完了
を指示し、CPU10及び制御装置12によりBRDY
と関連して、バスサイクルを完了するために使用され
る。NA#は制御装置12からの次アドレス要求信号で
あり、現在サイクルの終了に至っていない場合に制御装
置12が次のサイクル事象を受入れる準備をしているこ
とを指示することにより、パイプラインプロセスを指示
する。NA#がローであれば、次アドレスは利用可能に
なったときのCPUバス14へ送り出される。
【0058】キャッシュ制御装置12は、CPUに対し
てスヌーピングサイクルを開始するために、HITM
#、BOFF#、INV、AHOLD及びEADS#と
いう5本のキャッシュ一貫性信号線を有する。AHOL
DはCPUにそのアドレス信号線を浮動させ、それによ
り、CPUバス14におけるスヌーピングアドレスを駆
動するためにCPUバスインタフェース30をイネーブ
ルする。EADS#は、スヌープアドレスが有効であ
り、それをストローブすべきであることを指示する。8
0486CPUの場合、スヌーピングに要求されるのは
それら2つの信号である。ところが、スヌープされたア
ドレスがCPUの内部キャッシュをヒットした場合、C
PUはそのキャッシュ行を無効化する。この事象は逆無
効化サイクルと呼ばれる。i860XPTMCPUはHI
TM#を使用して〔M〕状態行に対するヒットを指示
し、INVを使用して書込みに関する無効化を要求し、
BOFF#を使用してデッドロックを終了させる。
てスヌーピングサイクルを開始するために、HITM
#、BOFF#、INV、AHOLD及びEADS#と
いう5本のキャッシュ一貫性信号線を有する。AHOL
DはCPUにそのアドレス信号線を浮動させ、それによ
り、CPUバス14におけるスヌーピングアドレスを駆
動するためにCPUバスインタフェース30をイネーブ
ルする。EADS#は、スヌープアドレスが有効であ
り、それをストローブすべきであることを指示する。8
0486CPUの場合、スヌーピングに要求されるのは
それら2つの信号である。ところが、スヌープされたア
ドレスがCPUの内部キャッシュをヒットした場合、C
PUはそのキャッシュ行を無効化する。この事象は逆無
効化サイクルと呼ばれる。i860XPTMCPUはHI
TM#を使用して〔M〕状態行に対するヒットを指示
し、INVを使用して書込みに関する無効化を要求し、
BOFF#を使用してデッドロックを終了させる。
【0059】尚、キャッシュ制御装置12は包含の原理
に基づいてCPUキャッシュをスヌープする。i860
XPTMCPUの場合、二次レベルキャッシへのヒットは
一次キャッシュにおいて二次レベルキャッシュの〔M〕
状態行によってスヌープされ、一次キャッシュにおいて
は〔M〕状態にあると想定される。先に挙げたピンや信
号に加えて、3本の入力試験用ピンTCK、TDI及び
TMSと、1本の出力ピンTDOを使用して、IEEE
P1149.1推奨規格のサブセットに従ってキャッ
シュ制御装置チップの境界走査試験を支援する。
に基づいてCPUキャッシュをスヌープする。i860
XPTMCPUの場合、二次レベルキャッシへのヒットは
一次キャッシュにおいて二次レベルキャッシュの〔M〕
状態行によってスヌープされ、一次キャッシュにおいて
は〔M〕状態にあると想定される。先に挙げたピンや信
号に加えて、3本の入力試験用ピンTCK、TDI及び
TMSと、1本の出力ピンTDOを使用して、IEEE
P1149.1推奨規格のサブセットに従ってキャッ
シュ制御装置チップの境界走査試験を支援する。
【0060】D.2.メモリバス制御装置インタフェー
スピン MBC11は適正な量のデータ、すなわち、全C5キャ
ッシュ制御装置行又はCPU10により要求される量の
データをメモリバスを介して確実に転送してゆく。MB
C11はバーストレディ信号BRDY#をキャッシュ制
御装置12、キャッシュメモリ13及びCPU10に対
して発生する。BRDY#は、読取りに応答して有効デ
ータが存在していること又は主メモリバスが書込みに応
答してデータを受入れたことを指示する。バーストサイ
クルの第2のクロック及びその後に続くクロックでサン
プリングされるBRDY#は、バースト追跡を目的とし
て制御装置12により使用される。
スピン MBC11は適正な量のデータ、すなわち、全C5キャ
ッシュ制御装置行又はCPU10により要求される量の
データをメモリバスを介して確実に転送してゆく。MB
C11はバーストレディ信号BRDY#をキャッシュ制
御装置12、キャッシュメモリ13及びCPU10に対
して発生する。BRDY#は、読取りに応答して有効デ
ータが存在していること又は主メモリバスが書込みに応
答してデータを受入れたことを指示する。バーストサイ
クルの第2のクロック及びその後に続くクロックでサン
プリングされるBRDY#は、バースト追跡を目的とし
て制御装置12により使用される。
【0061】メモリバス制御装置インタフェース35
は、CADS#、SNPADS#及びCDTS#という
3つのアドレス/データストローブを提供する。CAD
S#(アドレスストローブ)はメモリバスサイクルが要
求されるたびに活動状態になり、先に説明したCPU
ADS#信号と全く同様である。これは、新たなサイク
ル制御情報(後述する)及び属性信号が有効であること
を指示する。SNPADS#は、修正(〔M〕状態)行
に対するスヌープヒットについてのメモリバスサイクル
要求を指示する。この別個のアドレスストローブは介入
スヌープサイクルを支援するときにMBC11の実現を
容易にするために実行される。SNPADS#を起動す
ると、MBC11は係属中の、しかし委託されてはいな
い全てのサイクルを打ち切る。サイクルが委託されてい
れば、完了までSNPADS#は遅延する(この点につ
いては後述する)。係属中のサイクルは、適切なCAD
S#信号を発行するキャッシュ制御装置12により再開
される。キャッシュデータストローブCDTS#は、読
取りサイクルについて次のクロックでCPUデータ経路
がMBC11に対して利用可能であることを指示する。
書込みサイクルの場合、これはメモリバスに対しデータ
を利用できることを指示する。この実現形態は、アドレ
スストローブ(CADS#又はSNPADS#)とデー
タストローブとを完全に独立させる。このように、キャ
ッシュ制御装置12は、アドレスが利用可能になると、
直ちに、データがレディ状態になる前に、MBC11で
新たなサイクルを自由に開始できる。
は、CADS#、SNPADS#及びCDTS#という
3つのアドレス/データストローブを提供する。CAD
S#(アドレスストローブ)はメモリバスサイクルが要
求されるたびに活動状態になり、先に説明したCPU
ADS#信号と全く同様である。これは、新たなサイク
ル制御情報(後述する)及び属性信号が有効であること
を指示する。SNPADS#は、修正(〔M〕状態)行
に対するスヌープヒットについてのメモリバスサイクル
要求を指示する。この別個のアドレスストローブは介入
スヌープサイクルを支援するときにMBC11の実現を
容易にするために実行される。SNPADS#を起動す
ると、MBC11は係属中の、しかし委託されてはいな
い全てのサイクルを打ち切る。サイクルが委託されてい
れば、完了までSNPADS#は遅延する(この点につ
いては後述する)。係属中のサイクルは、適切なCAD
S#信号を発行するキャッシュ制御装置12により再開
される。キャッシュデータストローブCDTS#は、読
取りサイクルについて次のクロックでCPUデータ経路
がMBC11に対して利用可能であることを指示する。
書込みサイクルの場合、これはメモリバスに対しデータ
を利用できることを指示する。この実現形態は、アドレ
スストローブ(CADS#又はSNPADS#)とデー
タストローブとを完全に独立させる。このように、キャ
ッシュ制御装置12は、アドレスが利用可能になると、
直ちに、データがレディ状態になる前に、MBC11で
新たなサイクルを自由に開始できる。
【0062】キャッシュ制御装置12により発生される
サイクル制御信号は9つである。キャッシュ制御装置1
2がCADS#によってメモリバスサイクルを開始する
と、要求されるサイクルの型はキャッシュ書込み/読取
り(CW/R#)、キャッシュデータ/制御(CD/C
#)及びキャッシュメモリ入出力(CM/IO#)とい
う3つのサイクル定義信号の状態により定義される。M
BC11によるこれらのピンの復号は、CPU10のW
/R#、DC#及びM/IO#信号と同様である。サイ
クルのそれ以上の仕様は信号CLEN0、CLEN1、
CPLOCK#、KLOCK#、MCACHE#及びR
DYSRCによって実行される。
サイクル制御信号は9つである。キャッシュ制御装置1
2がCADS#によってメモリバスサイクルを開始する
と、要求されるサイクルの型はキャッシュ書込み/読取
り(CW/R#)、キャッシュデータ/制御(CD/C
#)及びキャッシュメモリ入出力(CM/IO#)とい
う3つのサイクル定義信号の状態により定義される。M
BC11によるこれらのピンの復号は、CPU10のW
/R#、DC#及びM/IO#信号と同様である。サイ
クルのそれ以上の仕様は信号CLEN0、CLEN1、
CPLOCK#、KLOCK#、MCACHE#及びR
DYSRCによって実行される。
【0063】CPLOCK#は、80486CPUにつ
いて64ビット原子書込みを識別するために使用され
る。スヌープ待ち時間を短縮するために、CPLOCK
#をディスエーブルしても良い。KLOCK#は、キャ
ッシュ制御装置12がMBC11にCPU10のLOC
K#要求の結果として起こる原子読取り−修正−書込み
サイクルを実行することを要求するための信号である
いて64ビット原子書込みを識別するために使用され
る。スヌープ待ち時間を短縮するために、CPLOCK
#をディスエーブルしても良い。KLOCK#は、キャ
ッシュ制御装置12がMBC11にCPU10のLOC
K#要求の結果として起こる原子読取り−修正−書込み
サイクルを実行することを要求するための信号である
【0064】MCACHE#は、MBC11に、アクセ
スされたデータの行をキャッシュ制御装置12によりキ
ャッシュすべきであることを命令し、そこで、メモリバ
スサイクルへのバースト転送の回数を暗黙に指示する。
また、他のエージェントにメモリバス15を介してキャ
ッシュ可能性情報を提供する働きもする。MCACHE
#が活動状態である場合、MBC11はメモリバスキャ
ッシュイネーブルピンであるMKEN#を復帰させるこ
とにより行をキャッシュ可能にすることができる。RD
YSRCは、MBC11にCPU10へバーストレディ
パルス(BRDY#又はBRDYC1#/BRDYC2
#)を発生するのがMBCであるか又はキャッシュ制御
装置12であるかを指示する。バーストサイクル長さ情
報は、CPUバスインタフェースにあるCLEN0及び
CLEN1の各信号線(BOFF#及びINVとそれぞ
れ共用している)を介してMBC11に供給される。図
11は、80486CPUと共に使用するためのキャッ
シュ制御装置サイクルのMBC11による復号を示す。
メモリサイクル長さと符されている欄は、MBC11が
発生するバーストレディパルスの数を示す。(尚、記号
(X)は「関係なし」を表す。)
スされたデータの行をキャッシュ制御装置12によりキ
ャッシュすべきであることを命令し、そこで、メモリバ
スサイクルへのバースト転送の回数を暗黙に指示する。
また、他のエージェントにメモリバス15を介してキャ
ッシュ可能性情報を提供する働きもする。MCACHE
#が活動状態である場合、MBC11はメモリバスキャ
ッシュイネーブルピンであるMKEN#を復帰させるこ
とにより行をキャッシュ可能にすることができる。RD
YSRCは、MBC11にCPU10へバーストレディ
パルス(BRDY#又はBRDYC1#/BRDYC2
#)を発生するのがMBCであるか又はキャッシュ制御
装置12であるかを指示する。バーストサイクル長さ情
報は、CPUバスインタフェースにあるCLEN0及び
CLEN1の各信号線(BOFF#及びINVとそれぞ
れ共用している)を介してMBC11に供給される。図
11は、80486CPUと共に使用するためのキャッ
シュ制御装置サイクルのMBC11による復号を示す。
メモリサイクル長さと符されている欄は、MBC11が
発生するバーストレディパルスの数を示す。(尚、記号
(X)は「関係なし」を表す。)
【0065】NENE#、SMLN#、PALLC#及
びCWAYは、MBC11がバス実現を最適化するため
に使用しうる4つの汎用属性である。NENE#は「次
に近い」の意味であり、現在アドレスが主メモリの先の
アドレスと同一のDRAMページにあることを示す。こ
の情報を使用して、ページドDRAMメモリシステムの
実現を容易にすることができる。キャッシュ制御装置1
2は2KアドレスのDRAMページサイズを有する。S
MLN#、すなわち、「同一行」信号は、現在サイクル
アドレスが先のアドレスと同一のキャッシュ行にあるこ
とを示す。制御装置12はこの情報を使用して、システ
ム内の他のキャッシュに対してそのSNPSTB#信号
を選択的に起動することによりスヌープストローブをメ
モリバスへ条件付きで発生することができる。PALL
C#は、現在書込みサイクルが潜在的に割当て可能であ
ることを示すためにキャッシュ制御装置12によりMB
C11へ送信される。すなわち、この信号は書込みミ
ス、LOCK#=1、PCD=0、PWT=0の条件を
満たす。制御装置12はこの情報を使用して、希望に応
じてオーナシープサイクルについて読取りを実現するこ
とができる。キャッシュ方向信号であるCWAYは、要
求されたサイクルが使用する(又は使用すべき)方向を
MBC11に指示する。外部論理装置はこの信号を使用
して、キャッシュ制御装置タグ内容を完全に追跡するこ
とができる。
びCWAYは、MBC11がバス実現を最適化するため
に使用しうる4つの汎用属性である。NENE#は「次
に近い」の意味であり、現在アドレスが主メモリの先の
アドレスと同一のDRAMページにあることを示す。こ
の情報を使用して、ページドDRAMメモリシステムの
実現を容易にすることができる。キャッシュ制御装置1
2は2KアドレスのDRAMページサイズを有する。S
MLN#、すなわち、「同一行」信号は、現在サイクル
アドレスが先のアドレスと同一のキャッシュ行にあるこ
とを示す。制御装置12はこの情報を使用して、システ
ム内の他のキャッシュに対してそのSNPSTB#信号
を選択的に起動することによりスヌープストローブをメ
モリバスへ条件付きで発生することができる。PALL
C#は、現在書込みサイクルが潜在的に割当て可能であ
ることを示すためにキャッシュ制御装置12によりMB
C11へ送信される。すなわち、この信号は書込みミ
ス、LOCK#=1、PCD=0、PWT=0の条件を
満たす。制御装置12はこの情報を使用して、希望に応
じてオーナシープサイクルについて読取りを実現するこ
とができる。キャッシュ方向信号であるCWAYは、要
求されたサイクルが使用する(又は使用すべき)方向を
MBC11に指示する。外部論理装置はこの信号を使用
して、キャッシュ制御装置タグ内容を完全に追跡するこ
とができる。
【0066】MBC11が供給するBGT#、KWEN
D#、SWEND#、CRDY#及びCNA#は、キャ
ッシュ制御装置12によりメモリバスサイクルを追跡す
るために使用される。BGT#はスヌーピングウィンド
ウの終わりまで制御装置12へのスヌープを禁止するこ
とにより、要求サイクルが保証された転送であることを
示す。KWEND#はキャッシュ可能性ウィンドウの閉
鎖、すなわち、キャッシュ可能性指示が解決されるまで
のメモリバス15における1サイクルの開始からの時間
の量を示す。キャッシュ可能性ウィンドウの閉鎖時に、
MBC11はKWEND#信号を起動し、それにより、
制御装置12にMKEN#属性ピン及びMRO#属性ピ
ンをサンプリングさせることによって、制御装置12に
報知する。MKEN#(メモリバスキャッシュイネーブ
ル)ピンは、現在メモリバスサイクルのキャッシュ可能
性を指示する制御装置12への入力である。MRO#
(メモリバス読取り専用)ピンは、アクセスされた行
に、1次レベルキャッシュ不可能と、二次レベルキャッ
シュにおける書込み保護とを保証する読取り専用属性を
割当てるべきであることを示す。また、MRO#は各C
5タグエントリの1ビットである。SWEND#はスヌ
ープウィンドウの閉鎖を示し、キャッシュ制御装置12
にメモリ制御装置インタフェース35のMWB/WT#
ピン及びDRCTM#ピンをサンプリングさせる。メモ
リバス15は、ライトバック/ライトスルー信号である
MWB/WT#を使用して、使用すべき書込みポリシー
を制御装置12に動的に報知する。DRCTM#は、制
御装置12に〔E〕状態を飛び越し、直接に〔M〕状態
へ移行することを報知するメモリバス〔M〕状態指示信
号である。MWB/WT#及びDRCTM#は、共に、
制御装置12により、タグ状態(行充填、割当て及び
「S]状態への書込み)を更新するために使用される。
SWEND#の後MBC11はCPU10へのデータ供
給を安全に開始することができる。ところが、スヌーピ
ングをキャッシュSRAM13の行充填バッファの充填
と並行して実行できるように、サイクルのまさに最後の
瞬間に、制御装置12はスヌーピング情報を供給させ
る。キャッシュレディ信号のCRDY#は、MBC11
から制御装置12とキャッシュメモリ13の双方に向か
う入力信号であり、メモリバス15の1サイクルが完全
に終了したことを指示して、次のサイクルに対応するた
めに制御装置12とキャッシュメモリ13を解放する。
CRDY#が印加されると、キャッシュ制御装置12
は、パイプライン化を使用している場合、次のサイクル
に備えてサイクル進行信号(BGT#、KWEND#、
SWEND#)をサンプリングする。CRDY#は、ス
ヌープサイクルを含むあらゆるメモリバスサイクルにつ
いて要求される。MBC11から制御装置12への入力
であり、バス制御サイクルのパイプライン化を容易にす
るために使用されるCNA#は、外部アドレスラッチ3
4の内容が使用され終わっており、新たなアドレスをロ
ードできることを制御装置12に命令する。
D#、SWEND#、CRDY#及びCNA#は、キャ
ッシュ制御装置12によりメモリバスサイクルを追跡す
るために使用される。BGT#はスヌーピングウィンド
ウの終わりまで制御装置12へのスヌープを禁止するこ
とにより、要求サイクルが保証された転送であることを
示す。KWEND#はキャッシュ可能性ウィンドウの閉
鎖、すなわち、キャッシュ可能性指示が解決されるまで
のメモリバス15における1サイクルの開始からの時間
の量を示す。キャッシュ可能性ウィンドウの閉鎖時に、
MBC11はKWEND#信号を起動し、それにより、
制御装置12にMKEN#属性ピン及びMRO#属性ピ
ンをサンプリングさせることによって、制御装置12に
報知する。MKEN#(メモリバスキャッシュイネーブ
ル)ピンは、現在メモリバスサイクルのキャッシュ可能
性を指示する制御装置12への入力である。MRO#
(メモリバス読取り専用)ピンは、アクセスされた行
に、1次レベルキャッシュ不可能と、二次レベルキャッ
シュにおける書込み保護とを保証する読取り専用属性を
割当てるべきであることを示す。また、MRO#は各C
5タグエントリの1ビットである。SWEND#はスヌ
ープウィンドウの閉鎖を示し、キャッシュ制御装置12
にメモリ制御装置インタフェース35のMWB/WT#
ピン及びDRCTM#ピンをサンプリングさせる。メモ
リバス15は、ライトバック/ライトスルー信号である
MWB/WT#を使用して、使用すべき書込みポリシー
を制御装置12に動的に報知する。DRCTM#は、制
御装置12に〔E〕状態を飛び越し、直接に〔M〕状態
へ移行することを報知するメモリバス〔M〕状態指示信
号である。MWB/WT#及びDRCTM#は、共に、
制御装置12により、タグ状態(行充填、割当て及び
「S]状態への書込み)を更新するために使用される。
SWEND#の後MBC11はCPU10へのデータ供
給を安全に開始することができる。ところが、スヌーピ
ングをキャッシュSRAM13の行充填バッファの充填
と並行して実行できるように、サイクルのまさに最後の
瞬間に、制御装置12はスヌーピング情報を供給させ
る。キャッシュレディ信号のCRDY#は、MBC11
から制御装置12とキャッシュメモリ13の双方に向か
う入力信号であり、メモリバス15の1サイクルが完全
に終了したことを指示して、次のサイクルに対応するた
めに制御装置12とキャッシュメモリ13を解放する。
CRDY#が印加されると、キャッシュ制御装置12
は、パイプライン化を使用している場合、次のサイクル
に備えてサイクル進行信号(BGT#、KWEND#、
SWEND#)をサンプリングする。CRDY#は、ス
ヌープサイクルを含むあらゆるメモリバスサイクルにつ
いて要求される。MBC11から制御装置12への入力
であり、バス制御サイクルのパイプライン化を容易にす
るために使用されるCNA#は、外部アドレスラッチ3
4の内容が使用され終わっており、新たなアドレスをロ
ードできることを制御装置12に命令する。
【0067】図2を参照すると、キャッシュ制御装置1
2は、CPU10によるメモリバスサイクル要求、すな
わち、割当てと、制御装置12により生成されるライト
バック要求とをスケジューリングするために、内容メモ
リバス待ち行列36を有する。待ち行列36を使用する
重要な特徴は、次の係属中のアクティビティのアドレス
の使用と関連してそれが使用されていることである。制
御装置12は、MBC11により供給されるラッチイネ
ーブル信号及び出力イネーブル信号と共に、論理的に透
過的なアドレスラッチによってMBC11に待ち行列3
6の最終段を制御させる。MALE、MAOE#と、M
BALE及びMBAOEという2組の制御信号が供給さ
れる。メモリバス待ち行列36はMBC11によりCA
DS#アドレスストローブと関連して、パイプライン化
されても良い。
2は、CPU10によるメモリバスサイクル要求、すな
わち、割当てと、制御装置12により生成されるライト
バック要求とをスケジューリングするために、内容メモ
リバス待ち行列36を有する。待ち行列36を使用する
重要な特徴は、次の係属中のアクティビティのアドレス
の使用と関連してそれが使用されていることである。制
御装置12は、MBC11により供給されるラッチイネ
ーブル信号及び出力イネーブル信号と共に、論理的に透
過的なアドレスラッチによってMBC11に待ち行列3
6の最終段を制御させる。MALE、MAOE#と、M
BALE及びMBAOEという2組の制御信号が供給さ
れる。メモリバス待ち行列36はMBC11によりCA
DS#アドレスストローブと関連して、パイプライン化
されても良い。
【0068】MALEとMAOE#は、制御装置12の
行アドレスラッチ34のタイミングを制御する。MAL
E(メモリバスラッチイネーブル)の起動によってラッ
チ34は開成し、次の行アドレスをMBC11へ送り出
す。メモリバスアドレス出力イネーブルであるMAOE
#はメモリバスアドレスラッチ34の出力バッファを制
御し、活動状態であるとき、制御装置12にメモリバス
アドレスを駆動させるが、非活動状態である場合には、
高インピーダンス状態になる。MAOE#が非活動状態
であるときにのみ、スヌープサイクルは起こって良い。
行アドレスラッチ34のタイミングを制御する。MAL
E(メモリバスラッチイネーブル)の起動によってラッ
チ34は開成し、次の行アドレスをMBC11へ送り出
す。メモリバスアドレス出力イネーブルであるMAOE
#はメモリバスアドレスラッチ34の出力バッファを制
御し、活動状態であるとき、制御装置12にメモリバス
アドレスを駆動させるが、非活動状態である場合には、
高インピーダンス状態になる。MAOE#が非活動状態
であるときにのみ、スヌープサイクルは起こって良い。
【0069】MBALEとMBAOE#は、制御装置1
2の行アドレスを制御するMALE及びMAOE#と同
じように制御装置12の部分行(バースト)アドレスを
制御するラッチイネーブルと、出力イネーブルである
が、MBAOE#は、MAOE#とは異なり、スヌープ
修飾子としては機能しない。MBAOE#は、スヌープ
中、部分行アドレスを修飾する。MBAOE#が活動状
態である場合、部分行は0に設定される。MBAOE#
が非活動状態であれば、メモリバス15から部分行をサ
ンプリングする。
2の行アドレスを制御するMALE及びMAOE#と同
じように制御装置12の部分行(バースト)アドレスを
制御するラッチイネーブルと、出力イネーブルである
が、MBAOE#は、MAOE#とは異なり、スヌープ
修飾子としては機能しない。MBAOE#は、スヌープ
中、部分行アドレスを修飾する。MBAOE#が活動状
態である場合、部分行は0に設定される。MBAOE#
が非活動状態であれば、メモリバス15から部分行をサ
ンプリングする。
【0070】MSET0〜10、MTAG0〜11及び
MCFA0〜6は、キャッシュ制御装置12からメモリ
バス15に至る完全30ビットアドレス入出力インタフ
ェースを構成する。これらの信号は出力ラッチ34を通
過しなければならない。図12は、どの組の制御装置に
よりどのメモリバス線が制御されるかを定義している。
初めの欄は、図9に定義したような構成番号(1〜8)
を表わし、それに続く欄は、MAxxにより指示する制
御信号MALE及びMAOE#又はMBxxにより指示
する制御信号MBALE及びMBAOE#によってどの
アドレス信号線MCFA0〜MCFA6、MTAG
(0:10)又はMSET(1:10)が制御されるか
を示している。
MCFA0〜6は、キャッシュ制御装置12からメモリ
バス15に至る完全30ビットアドレス入出力インタフ
ェースを構成する。これらの信号は出力ラッチ34を通
過しなければならない。図12は、どの組の制御装置に
よりどのメモリバス線が制御されるかを定義している。
初めの欄は、図9に定義したような構成番号(1〜8)
を表わし、それに続く欄は、MAxxにより指示する制
御信号MALE及びMAOE#又はMBxxにより指示
する制御信号MBALE及びMBAOE#によってどの
アドレス信号線MCFA0〜MCFA6、MTAG
(0:10)又はMSET(1:10)が制御されるか
を示している。
【0071】バイトイネーブルラッチイネーブル信号の
BEL#はキャッシュ制御装置12により発生され、制
御装置12を通過しないCPU10の信号、すなわち、
BE0#〜BE3#、PWT及びPCDを捕獲するため
に使用されるクロック端トリガのMBC11BEラッチ
17のイネーブルを制御するために使用される。BE0
#〜BE3#は、読取りサイクル及び書込みサイクルの
間に、ローであるとき、活動中のCPUバスバイトを指
示するバイトイネーブル信号である。BE0#、BE1
#、BE2#及びBE3#はCPUのデータバイトD0
〜7、D8〜15、D16〜23、D24〜31にそれ
ぞれ適用される。ページライトスルー信号のPWTと、
ページキャッシュディスエーブル信号のPCDは、CP
Uのページ属性ビットの状態を表す。通常、BEラッチ
17はブロックされないCPUサイクルのADS#の1
クロック後に閉成し、新たな有効アドレスとサイクル定
義情報が、その時点で、CPU10によりCPUバス1
4のアドレス、バイトイネーブル及びサイクル定義信号
線へ送り出されていることを示す。BEラッチ17は、
ヒットサイクルの場合には、閉成し、直ちに再び開成す
るが、ミスサイクルの場合には、CNA#又はCRDY
#のいずれかによって再び開成する。
BEL#はキャッシュ制御装置12により発生され、制
御装置12を通過しないCPU10の信号、すなわち、
BE0#〜BE3#、PWT及びPCDを捕獲するため
に使用されるクロック端トリガのMBC11BEラッチ
17のイネーブルを制御するために使用される。BE0
#〜BE3#は、読取りサイクル及び書込みサイクルの
間に、ローであるとき、活動中のCPUバスバイトを指
示するバイトイネーブル信号である。BE0#、BE1
#、BE2#及びBE3#はCPUのデータバイトD0
〜7、D8〜15、D16〜23、D24〜31にそれ
ぞれ適用される。ページライトスルー信号のPWTと、
ページキャッシュディスエーブル信号のPCDは、CP
Uのページ属性ビットの状態を表す。通常、BEラッチ
17はブロックされないCPUサイクルのADS#の1
クロック後に閉成し、新たな有効アドレスとサイクル定
義情報が、その時点で、CPU10によりCPUバス1
4のアドレス、バイトイネーブル及びサイクル定義信号
線へ送り出されていることを示す。BEラッチ17は、
ヒットサイクルの場合には、閉成し、直ちに再び開成す
るが、ミスサイクルの場合には、CNA#又はCRDY
#のいずれかによって再び開成する。
【0072】FLUSH#、SYNC#及びFSIOU
T#はキャッシュ同期信号である。FLUSH#とSY
NC#はMBC11で発生する。FLUSH#は、活動
状態であるとき、制御装置12にその修正行の全てを主
メモリに完全にライトバックさせ、次に、全てのタグ記
憶場所を無効化させる。80486CPUと共に使用す
る場合、キャッシュ制御装置12は、FLUSH#がC
PUフラッシュの完了と共に又はその後に起動されるも
のと仮定し、制御装置12が逆無効化サイクルを実行す
ることを不要にする。FLUSH#の後、CPU10と
制御装置12の全てのキャッシュ行は〔I〕状態となっ
ているべきである。MBC11により供給される制御装
置12キャッシュ同期信号であるSYNC#は、全ての
修正エントリを主メモリにライトバックすることによ
り、制御装置12のタグアレイ31を主メモリと同期さ
せる。同期プロセスが完了したとき、制御装置12とC
PU10のあらゆる行は修正なしの状態にある。FLU
SH#とSYNC#の相違点は、SYNC#がタグアレ
イ31のエントリを無効化しないということである。全
ての有効エントリは保持され、全ての修正行は排他
(〔E〕状態)行になる。FLUSH#とSYNC#は
制御装置12に対しては非同期入力である。FLUSH
#シーケンスとSYNC#シーケンスの間、共に、制御
装置12はCPUインタフェース30でAHOLDを起
動して、CPU10をアドレス保持要求モードに入らせ
るが、制御装置12はデーター貫性を得るためにメモリ
バス15をスヌープし続ける。制御装置12の出力であ
るFSIOUT#は、FLUSH#、SYNC#及びR
ESETの各シーケンスの始まりと終わりを指示する。
T#はキャッシュ同期信号である。FLUSH#とSY
NC#はMBC11で発生する。FLUSH#は、活動
状態であるとき、制御装置12にその修正行の全てを主
メモリに完全にライトバックさせ、次に、全てのタグ記
憶場所を無効化させる。80486CPUと共に使用す
る場合、キャッシュ制御装置12は、FLUSH#がC
PUフラッシュの完了と共に又はその後に起動されるも
のと仮定し、制御装置12が逆無効化サイクルを実行す
ることを不要にする。FLUSH#の後、CPU10と
制御装置12の全てのキャッシュ行は〔I〕状態となっ
ているべきである。MBC11により供給される制御装
置12キャッシュ同期信号であるSYNC#は、全ての
修正エントリを主メモリにライトバックすることによ
り、制御装置12のタグアレイ31を主メモリと同期さ
せる。同期プロセスが完了したとき、制御装置12とC
PU10のあらゆる行は修正なしの状態にある。FLU
SH#とSYNC#の相違点は、SYNC#がタグアレ
イ31のエントリを無効化しないということである。全
ての有効エントリは保持され、全ての修正行は排他
(〔E〕状態)行になる。FLUSH#とSYNC#は
制御装置12に対しては非同期入力である。FLUSH
#シーケンスとSYNC#シーケンスの間、共に、制御
装置12はCPUインタフェース30でAHOLDを起
動して、CPU10をアドレス保持要求モードに入らせ
るが、制御装置12はデーター貫性を得るためにメモリ
バス15をスヌープし続ける。制御装置12の出力であ
るFSIOUT#は、FLUSH#、SYNC#及びR
ESETの各シーケンスの始まりと終わりを指示する。
【0073】D.3.メモリバスインタフェース信号 メモリバスインタフェース38は、先に論じた行制御ピ
ン及び部分行制御ピン(MALE、MAOE#、MBA
LE及びMBAOE#)に加えて、スヌープクロック、
メモリバスアドレス、スヌーピングモード選択及びメモ
リ属性定義に関するピンを含む。SNPCLKは、クロ
ックされるメモリバスと共に使用するためのスヌープク
ロック信号入力ピンである。このモードでは、制御装置
12はスヌープ関連信号がSNPCLKと同期している
ものと仮定する。
ン及び部分行制御ピン(MALE、MAOE#、MBA
LE及びMBAOE#)に加えて、スヌープクロック、
メモリバスアドレス、スヌーピングモード選択及びメモ
リ属性定義に関するピンを含む。SNPCLKは、クロ
ックされるメモリバスと共に使用するためのスヌープク
ロック信号入力ピンである。このモードでは、制御装置
12はスヌープ関連信号がSNPCLKと同期している
ものと仮定する。
【0074】MCFA0〜MCFA6、MSET0〜M
SET10及びMTAG0〜MTAG11は、CPUバ
スの対応する信号線CFA0〜CFA6、SET0〜S
ET10及びTAG0〜TAG11と同一の機能性を有
するメモリバスアドレス線であり、メモリバス15のA
2〜A31信号(64ビットバスの場合にはA3〜A3
1)に接続しているべきである。これらの信号は、バイ
トイネーブルと共に、メモリの物理領域を規定するか又
は入出力アクセスされる。これらの信号はキャッシュサ
イズ、CPUの行比及び行/セクターの数を含む制御装
置12の構成を定義するので、それらはCPUバス14
のそれぞれ対応する信号と全く同じように接続されなけ
ればならない。これらのピンは両方向性である。すなわ
ち、正規メモリバスサイクルでは、制御装置12のメモ
リバスアドレスラッチ34は、それらの信号を駆動し、
スヌーピング中には、制御装置12のスヌープラッチ3
3が信号を入力として受信する。先の章で述べた通り、
MAOE#及びMBAOE#はメモリバスアドレス行を
イネーブルするが、部分行(バースト)アドレスイネー
ブルを制御するのはMBAOE#のみである。
SET10及びMTAG0〜MTAG11は、CPUバ
スの対応する信号線CFA0〜CFA6、SET0〜S
ET10及びTAG0〜TAG11と同一の機能性を有
するメモリバスアドレス線であり、メモリバス15のA
2〜A31信号(64ビットバスの場合にはA3〜A3
1)に接続しているべきである。これらの信号は、バイ
トイネーブルと共に、メモリの物理領域を規定するか又
は入出力アクセスされる。これらの信号はキャッシュサ
イズ、CPUの行比及び行/セクターの数を含む制御装
置12の構成を定義するので、それらはCPUバス14
のそれぞれ対応する信号と全く同じように接続されなけ
ればならない。これらのピンは両方向性である。すなわ
ち、正規メモリバスサイクルでは、制御装置12のメモ
リバスアドレスラッチ34は、それらの信号を駆動し、
スヌーピング中には、制御装置12のスヌープラッチ3
3が信号を入力として受信する。先の章で述べた通り、
MAOE#及びMBAOE#はメモリバスアドレス行を
イネーブルするが、部分行(バースト)アドレスイネー
ブルを制御するのはMBAOE#のみである。
【0075】制御装置12はストローブ非同期モード、
クロック非同期モード、同期モードという3つのスヌー
ピングモードを支援し、その中の1つのモードが選択さ
れる。モードは、リセット時に、SNPCLK信号をス
トローブ非同期のときはハイ、同期のときはロー、クロ
ック非同期のときにはトグルにそれぞれ構成することに
より選択される。ストローブモードでは、制御装置12
はスヌープストローブSNPSTB#の立下り端に対し
てアドレス/属性信号をサンプリングする。クロックを
モードでは、制御装置12は、SNPSTB#をサンプ
リングして活動状態であったときに、入力スヌープクロ
ック信号SNPCLKの立上り端の間にアドレス/属性
信号をサンプリングする。同期モードにおいては、制御
装置12は、SNPSTB#をサンプリングして活動状
態であったときに、CLKのアドレス/属性信号をサン
プリングする。出力SNPCYC#は、スヌープが実際
にタグルックアップを実行しているときに、クロックの
間に起動される。
クロック非同期モード、同期モードという3つのスヌー
ピングモードを支援し、その中の1つのモードが選択さ
れる。モードは、リセット時に、SNPCLK信号をス
トローブ非同期のときはハイ、同期のときはロー、クロ
ック非同期のときにはトグルにそれぞれ構成することに
より選択される。ストローブモードでは、制御装置12
はスヌープストローブSNPSTB#の立下り端に対し
てアドレス/属性信号をサンプリングする。クロックを
モードでは、制御装置12は、SNPSTB#をサンプ
リングして活動状態であったときに、入力スヌープクロ
ック信号SNPCLKの立上り端の間にアドレス/属性
信号をサンプリングする。同期モードにおいては、制御
装置12は、SNPSTB#をサンプリングして活動状
態であったときに、CLKのアドレス/属性信号をサン
プリングする。出力SNPCYC#は、スヌープが実際
にタグルックアップを実行しているときに、クロックの
間に起動される。
【0076】先にMBC11インタフェースに関連して
説明したメモリバスアドレス出力ラッチイネーブルMA
OE#は、スヌーピング要求を可能にするためには、非
活動状態でなければならない。SNPNCA及びSNP
INVはSNPSTB#と共にサンプリングされるスヌ
ーピングサイクル属性信号である。SNPNCAは、現
在メモリバスマスターが非キャッシングアクセスを実行
しており、そのため、制御装置12は行を読取りに対し
て排他的なままに保持することを指示する。SNPIN
Vは、スヌープの完了時にスヌーピングされた行を無効
化しなければならないことを指示する。
説明したメモリバスアドレス出力ラッチイネーブルMA
OE#は、スヌーピング要求を可能にするためには、非
活動状態でなければならない。SNPNCA及びSNP
INVはSNPSTB#と共にサンプリングされるスヌ
ーピングサイクル属性信号である。SNPNCAは、現
在メモリバスマスターが非キャッシングアクセスを実行
しており、そのため、制御装置12は行を読取りに対し
て排他的なままに保持することを指示する。SNPIN
Vは、スヌープの完了時にスヌーピングされた行を無効
化しなければならないことを指示する。
【0077】スヌープ要求に対して、制御装置12はア
ドレス及びスヌープ属性信号をラッチし、キャッシュル
ックアップを実行する。スヌーピングサイクルは常にタ
グアレイ31について優先権を得ており、競合時にはC
PUを待ち状態にさせる。制御装置は、キャッシュSR
AM13中の排他行、共用行又は修正行のいずれかにヒ
ットするスヌープサイクルに際して、MTHIT#を起
動する。MHITM#は、修正行に対するヒットを指示
するために、スヌープサイクルの間に起動される。活動
状態である場合、制御装置12はメモリバス15に対す
るライトバックを自動的にスケジューリングする。制御
装置12がMHITM#を起動すると、制御装置12
は、要求側のMBC11に、修正行をメモリバスに書込
めるようにMHITM#が起動されているスヌーパにバ
スを一時的に与えなければならないことを警告する。ス
ヌープヒットが修正行に対して実行された場合又は既に
進行中であるときに逆無効化が必要とされる場合に、ス
ヌープ使用中標識のSNPBSY#を起動しても良い。
いずれの場合にも、SNPBSY#が非活動化されるま
で、制御装置12は係属中のスヌープについてルックア
ップを実行しない。SNPBSY#は、制御装置12が
別のスヌープサイクルを受信可能になったときに非活動
化される。同期モードでは、最大スヌープ速度は2クロ
ックごとに1回のスヌープという速度である。
ドレス及びスヌープ属性信号をラッチし、キャッシュル
ックアップを実行する。スヌーピングサイクルは常にタ
グアレイ31について優先権を得ており、競合時にはC
PUを待ち状態にさせる。制御装置は、キャッシュSR
AM13中の排他行、共用行又は修正行のいずれかにヒ
ットするスヌープサイクルに際して、MTHIT#を起
動する。MHITM#は、修正行に対するヒットを指示
するために、スヌープサイクルの間に起動される。活動
状態である場合、制御装置12はメモリバス15に対す
るライトバックを自動的にスケジューリングする。制御
装置12がMHITM#を起動すると、制御装置12
は、要求側のMBC11に、修正行をメモリバスに書込
めるようにMHITM#が起動されているスヌーパにバ
スを一時的に与えなければならないことを警告する。ス
ヌープヒットが修正行に対して実行された場合又は既に
進行中であるときに逆無効化が必要とされる場合に、ス
ヌープ使用中標識のSNPBSY#を起動しても良い。
いずれの場合にも、SNPBSY#が非活動化されるま
で、制御装置12は係属中のスヌープについてルックア
ップを実行しない。SNPBSY#は、制御装置12が
別のスヌープサイクルを受信可能になったときに非活動
化される。同期モードでは、最大スヌープ速度は2クロ
ックごとに1回のスヌープという速度である。
【0078】制御装置12に対する入力であるMKEN
#は、活動状態であるとき、制御装置12におけるメモ
リバスキャッシュ可能性をCPU10に指示する。非活
動状態、すなわち、キャッシュ不可能であるときには、
制御装置12は行充填又は割当てを実行しない。読取り
専用行属性のMRO#は、アドレス指定行を書込み保護
させる制御装置12への入力である。この行への書込み
は、いずれも、割当て不可能(PALLOC#は非活動
状態)な書込みミスである。読取り専用行は、MKEN
#が活動状態である場合に限ってキャッシュ可能であ
る。この属性はROM(読取り専用)デバイスの内容の
キャッシングに有用である。
#は、活動状態であるとき、制御装置12におけるメモ
リバスキャッシュ可能性をCPU10に指示する。非活
動状態、すなわち、キャッシュ不可能であるときには、
制御装置12は行充填又は割当てを実行しない。読取り
専用行属性のMRO#は、アドレス指定行を書込み保護
させる制御装置12への入力である。この行への書込み
は、いずれも、割当て不可能(PALLOC#は非活動
状態)な書込みミスである。読取り専用行は、MKEN
#が活動状態である場合に限ってキャッシュ可能であ
る。この属性はROM(読取り専用)デバイスの内容の
キャッシングに有用である。
【0079】MWB/WT#は、ライトバック属性又は
ライトスルー属性のいずれかを指示するメモリバス入力
属性であり、スヌープウィンドウの閉鎖SWEND#に
伴ってサンプリングされる。メモリバス入力属性信号の
DRCTM#は、活動状態であるとき、〔M〕状態への
直接転送を指示し、制御装置12に〔E〕状態を飛び越
させて、行を〔M〕状態に置く。この属性は汚れたデー
タへのスヌープヒットの間にオーナーシップ交換を可能
にするため及び/又は制御装置キャッシュの外部追跡を
可能にするために有用である。これは、制御装置12に
より、スヌープウィンドウの閉鎖SWEND#に伴って
サンプリングされる。
ライトスルー属性のいずれかを指示するメモリバス入力
属性であり、スヌープウィンドウの閉鎖SWEND#に
伴ってサンプリングされる。メモリバス入力属性信号の
DRCTM#は、活動状態であるとき、〔M〕状態への
直接転送を指示し、制御装置12に〔E〕状態を飛び越
させて、行を〔M〕状態に置く。この属性は汚れたデー
タへのスヌープヒットの間にオーナーシップ交換を可能
にするため及び/又は制御装置キャッシュの外部追跡を
可能にするために有用である。これは、制御装置12に
より、スヌープウィンドウの閉鎖SWEND#に伴って
サンプリングされる。
【0080】D.4.キャッシュメモリインタフェース
ピン 制御装置12は、方向制御(WAY)、アレイ制御(W
RARR#、MAWEA#)及びバッファ制御(MCY
C、BUS#、WBWE#、WBA、WBTYP)の目
的のために、9つのキャッシュメモリインタフェースピ
ンを支援する。出力信号WAYは、書込みサイクル、行
充填及びライトバックバッファのロードの間にキャッシ
ュメモリ13が使用すべき正しい方向を指示するために
使用される。MRU(最も近い時点で使用した方向の規
則)のミスが読取りヒット時に起こったときには、WA
Yを使用して、キャッシュ制御装置12及びキャッシュ
メモリ13にある、最も近い時点で使用した方向を指示
するMRUビットを更新する。出力信号WRARR#
は、CPUバス14から発してキャッシュメモリRAM
に至るキャッシュメモリ書込みを制御するために使用さ
れる。この信号は、キャッシュメモリ13に、その内部
方向マルチプレクサ(mux)をWAYが指示する方向
を選択し且つ必要に応じてキャッシュメモリMRUを更
新するように設定させる。読取りミスサイクルの場合、
MRUビットを更新する目的のためにWRARR#を起
動する。
ピン 制御装置12は、方向制御(WAY)、アレイ制御(W
RARR#、MAWEA#)及びバッファ制御(MCY
C、BUS#、WBWE#、WBA、WBTYP)の目
的のために、9つのキャッシュメモリインタフェースピ
ンを支援する。出力信号WAYは、書込みサイクル、行
充填及びライトバックバッファのロードの間にキャッシ
ュメモリ13が使用すべき正しい方向を指示するために
使用される。MRU(最も近い時点で使用した方向の規
則)のミスが読取りヒット時に起こったときには、WA
Yを使用して、キャッシュ制御装置12及びキャッシュ
メモリ13にある、最も近い時点で使用した方向を指示
するMRUビットを更新する。出力信号WRARR#
は、CPUバス14から発してキャッシュメモリRAM
に至るキャッシュメモリ書込みを制御するために使用さ
れる。この信号は、キャッシュメモリ13に、その内部
方向マルチプレクサ(mux)をWAYが指示する方向
を選択し且つ必要に応じてキャッシュメモリMRUを更
新するように設定させる。読取りミスサイクルの場合、
MRUビットを更新する目的のためにWRARR#を起
動する。
【0081】メモリバスアレイ書込みイネーブル/割当
て信号のMAWEA#は、活動状態であるとき、キャッ
シュメモリ13に、MBC11が発生するキャッシュメ
モリバスレディ信号CRDY#に続くクロックで、その
メモリバッファに記憶されている行をRAMに書込むべ
きであることを指示する。書込みサイクルの場合、活動
状態のMAWEA#は、サイクルが新たなタグの割当て
を要求していることを指示する。キャッシュ制御装置1
2により発生されるメモリバスサイクル指示信号である
MCYC#は、キャッシュメモリ13に、現在CPUサ
イクルがメモリバッファを使用することを指示する。現
在サイクルが読取りであり且つMCYC#が活動状態に
なった場合には、そのサイクルはメモリバス15の読取
りになる。現在CPUサイクルが書込みであれば、起動
されるMCYC#はメモリバス15の書込みサイクルを
指示する。CRDY#の起動前にCPU書込みサイクル
が終了した場合には、メモリバッファは一杯であるとマ
ークされ、メモリバスサイクルを終了させるCRDY#
が起動されるまで、書込みを通知する。
て信号のMAWEA#は、活動状態であるとき、キャッ
シュメモリ13に、MBC11が発生するキャッシュメ
モリバスレディ信号CRDY#に続くクロックで、その
メモリバッファに記憶されている行をRAMに書込むべ
きであることを指示する。書込みサイクルの場合、活動
状態のMAWEA#は、サイクルが新たなタグの割当て
を要求していることを指示する。キャッシュ制御装置1
2により発生されるメモリバスサイクル指示信号である
MCYC#は、キャッシュメモリ13に、現在CPUサ
イクルがメモリバッファを使用することを指示する。現
在サイクルが読取りであり且つMCYC#が活動状態に
なった場合には、そのサイクルはメモリバス15の読取
りになる。現在CPUサイクルが書込みであれば、起動
されるMCYC#はメモリバス15の書込みサイクルを
指示する。CRDY#の起動前にCPU書込みサイクル
が終了した場合には、メモリバッファは一杯であるとマ
ークされ、メモリバスサイクルを終了させるCRDY#
が起動されるまで、書込みを通知する。
【0082】制御装置12により発生されるバス/アレ
イ選択信号のBUS#は、読取り動作中のCPUバッフ
ァデータの選択を制御する。活動状態であるとき、キャ
ッシュメモリ13は、そのRAMアレイの代わりにメモ
リバス15がソースとなるように内部muxを設定す
る。ロックされた読取りサイクル(リードスルー)につ
いては、サイクルがキャッシュメモリ13の〔M〕状態
をヒットした場合、サイクルがメモリバス15を要求し
たとしてもBUS#は起動されない。その代わりに、デ
ータはアレイから供給される。
イ選択信号のBUS#は、読取り動作中のCPUバッフ
ァデータの選択を制御する。活動状態であるとき、キャ
ッシュメモリ13は、そのRAMアレイの代わりにメモ
リバス15がソースとなるように内部muxを設定す
る。ロックされた読取りサイクル(リードスルー)につ
いては、サイクルがキャッシュメモリ13の〔M〕状態
をヒットした場合、サイクルがメモリバス15を要求し
たとしてもBUS#は起動されない。その代わりに、デ
ータはアレイから供給される。
【0083】制御装置12によりWBA(ライトバック
バッファアドレス信号)と関連して発生されるライトバ
ックバッファ書込みイネーブル信号であるWBWE#
は、セクターの行ごとに1つずつある2つのキャッシュ
メモリライトバックバッファをロードするために使用さ
れる。WBAは、WBWE#が活動状態であるときにサ
ンプリングされると、ライトバックバッファにおける第
1の行を指示し、非活動状態であるときには第2の行を
指示する。ライトバックサイクル型信号のWBTYP
は、制御装置12によりWBAと関連して発生される。
ハイであるとき、この信号はスヌープライトバックサイ
クルを示し、キャッシュメモリ13の2つのスヌープバ
ッファを指示し、そうでない場合には、FLUSH#又
はSYNC#による置換え又は明示ライトバックサイク
ルを示し、キャッシュメモリ13の2つのライトバック
バッファを指示する。これはキャッシュメモリ13によ
りWBWE#又はHITM#と、ADS#を起動させる
ことによってサンプリングされる。従って、WBTYP
は、WBAと共に、スヌープバッファ又はライトバック
バッファのいずれかの第1の行又は第2の行を指定する
ために使用される。
バッファアドレス信号)と関連して発生されるライトバ
ックバッファ書込みイネーブル信号であるWBWE#
は、セクターの行ごとに1つずつある2つのキャッシュ
メモリライトバックバッファをロードするために使用さ
れる。WBAは、WBWE#が活動状態であるときにサ
ンプリングされると、ライトバックバッファにおける第
1の行を指示し、非活動状態であるときには第2の行を
指示する。ライトバックサイクル型信号のWBTYP
は、制御装置12によりWBAと関連して発生される。
ハイであるとき、この信号はスヌープライトバックサイ
クルを示し、キャッシュメモリ13の2つのスヌープバ
ッファを指示し、そうでない場合には、FLUSH#又
はSYNC#による置換え又は明示ライトバックサイク
ルを示し、キャッシュメモリ13の2つのライトバック
バッファを指示する。これはキャッシュメモリ13によ
りWBWE#又はHITM#と、ADS#を起動させる
ことによってサンプリングされる。従って、WBTYP
は、WBAと共に、スヌープバッファ又はライトバック
バッファのいずれかの第1の行又は第2の行を指定する
ために使用される。
【0084】E.キャッシュ一貫性プロトコル 多重プロセッサシステムにおいてデータの一貫性を維持
するために、キャッシュ制御装置12は、データ一貫性
を多重処理する全支援を伴う「ライトバック」キャッシ
ュを実現する。どのキャッシュ制御装置も、ある所定の
時点で、メモリ内で更新されていないデータを含んでい
るので、どのシステムバスマスターが読取るデータも正
しく且つ適時であるように保証するために、ライトバッ
クメカニズムが設けられている。多重処理システムに関
する重大な特徴は、メモリバスの利用が減少することで
ある。メモリバスは、複数のプロセッサの追加によっ
て、急速に資源障害になる。キャッシュ一貫性メカニズ
ムはメモリバス帯域幅の使用を最小限に抑える。
するために、キャッシュ制御装置12は、データ一貫性
を多重処理する全支援を伴う「ライトバック」キャッシ
ュを実現する。どのキャッシュ制御装置も、ある所定の
時点で、メモリ内で更新されていないデータを含んでい
るので、どのシステムバスマスターが読取るデータも正
しく且つ適時であるように保証するために、ライトバッ
クメカニズムが設けられている。多重処理システムに関
する重大な特徴は、メモリバスの利用が減少することで
ある。メモリバスは、複数のプロセッサの追加によっ
て、急速に資源障害になる。キャッシュ一貫性メカニズ
ムはメモリバス帯域幅の使用を最小限に抑える。
【0085】キャッシュ制御装置12は主メモリの一部
分をキャッシュ不可能でるとして規定させる。キャッシ
ュ可能領域については、選択された部分をライトスルー
位置として規定させる。このプロトコルは、キャッシュ
制御装置12において、キャッシュされる行ごとに状態
ビットを割当てることにより実現される。それらの状態
は、バスマスターとしての制御装置12により実行され
るデーテ転送アクティビティと、他のメモリバスマスタ
ーにより発生されるスヌープ要求に応答して実行される
スヌーピングアクティビティの双方によって決まる。
分をキャッシュ不可能でるとして規定させる。キャッシ
ュ可能領域については、選択された部分をライトスルー
位置として規定させる。このプロトコルは、キャッシュ
制御装置12において、キャッシュされる行ごとに状態
ビットを割当てることにより実現される。それらの状態
は、バスマスターとしての制御装置12により実行され
るデーテ転送アクティビティと、他のメモリバスマスタ
ーにより発生されるスヌープ要求に応答して実行される
スヌーピングアクティビティの双方によって決まる。
【0086】一貫性プロトコルは、キャッシュ制御装置
12に主メモリで更新されていないデータを記憶させる
一方、他の装置によるメモリアクセスはステール(st
ale)データを受信しないように保証する1組の規則
である。この一貫性は制御装置12のキャッシュエント
リ(行)ごとに特殊な一貫性状態を割当てることにより
実行される。下記の規則はメモリ読取りサイクルと、メ
モリ書込みサイクルとに適用される。入出力サイクルと
特殊サイクルは全てキャッシュをバイパスする。キャッ
シュ制御装置12の一貫性プロトコルは4つの状態を有
する。それらの状態は行が有効であるか否か(ヒット又
はミス)、その行が他のキャッシュで利用可能であるか
否か(共用又は排他)及び行が修正されているか(修正
されていたか)否かを定義する。4つの状態について以
下に説明する。
12に主メモリで更新されていないデータを記憶させる
一方、他の装置によるメモリアクセスはステール(st
ale)データを受信しないように保証する1組の規則
である。この一貫性は制御装置12のキャッシュエント
リ(行)ごとに特殊な一貫性状態を割当てることにより
実行される。下記の規則はメモリ読取りサイクルと、メ
モリ書込みサイクルとに適用される。入出力サイクルと
特殊サイクルは全てキャッシュをバイパスする。キャッ
シュ制御装置12の一貫性プロトコルは4つの状態を有
する。それらの状態は行が有効であるか否か(ヒット又
はミス)、その行が他のキャッシュで利用可能であるか
否か(共用又は排他)及び行が修正されているか(修正
されていたか)否かを定義する。4つの状態について以
下に説明する。
【0087】〔I〕−INVALID 行がキャッシュ
で利用可能でないことを指示する。この行に対する読取
りはミスになり、キャッシュ制御装置12に行充填(行
の全体を取出し、それをキャッシュSRAM13に保管
させる)を実行させる。この行への書込みはC5にメモ
リバス15に対するライトスルーサイクルを実行させ、
また、状況によっては、割当て(タグへの新たな値の割
当て)を開始させる。
で利用可能でないことを指示する。この行に対する読取
りはミスになり、キャッシュ制御装置12に行充填(行
の全体を取出し、それをキャッシュSRAM13に保管
させる)を実行させる。この行への書込みはC5にメモ
リバス15に対するライトスルーサイクルを実行させ、
また、状況によっては、割当て(タグへの新たな値の割
当て)を開始させる。
【0088】〔S〕−SHARED この状態は、この
行が他のキャッシュと潜在的に共用されていることを指
示する(2つ以上のキャッシュに同一の行が存在してい
ると考えられる)。共用されている行は、主メモリのア
クセスなしでキャッシュSRAM13から読取り可能で
ある。共用行への書込みはキャッシュを更新するが、制
御装置12にメモリバス15に対するライトスルーサイ
クルを発生することも要求する。主メモリを更新するこ
とに加えて、ライトスルーサイクルは他のキャッシュに
おけるこの行を無効化する。共用行への書込みはライト
スルーサイクルを発生させるので、システムは選択され
たアドレスを強制的に〔S〕状態とすることにより、そ
れらのアドレスに「ライトスルーポリシー」を実行する
ことができる。これは、アドレスが参照されるたびにC
PUページテーブルのPWT属性を設定するか又はMW
B/WT#ピンを起動することにより実行可能である。
行が他のキャッシュと潜在的に共用されていることを指
示する(2つ以上のキャッシュに同一の行が存在してい
ると考えられる)。共用されている行は、主メモリのア
クセスなしでキャッシュSRAM13から読取り可能で
ある。共用行への書込みはキャッシュを更新するが、制
御装置12にメモリバス15に対するライトスルーサイ
クルを発生することも要求する。主メモリを更新するこ
とに加えて、ライトスルーサイクルは他のキャッシュに
おけるこの行を無効化する。共用行への書込みはライト
スルーサイクルを発生させるので、システムは選択され
たアドレスを強制的に〔S〕状態とすることにより、そ
れらのアドレスに「ライトスルーポリシー」を実行する
ことができる。これは、アドレスが参照されるたびにC
PUページテーブルのPWT属性を設定するか又はMW
B/WT#ピンを起動することにより実行可能である。
【0089】〔E〕−EXCLUSIVE この状態
は、このキャッシュでのみ排他的に利用可能である行を
指示し、この行が修正されていない(主メモリも有効コ
ピーを有する)ことを示す。排他行への書込みはその行
を修正状態に変化させ、他のキャッシュへの報知なしに
書込みを実行できるので、メモリバスアクティビティは
生成されない。
は、このキャッシュでのみ排他的に利用可能である行を
指示し、この行が修正されていない(主メモリも有効コ
ピーを有する)ことを示す。排他行への書込みはその行
を修正状態に変化させ、他のキャッシュへの報知なしに
書込みを実行できるので、メモリバスアクティビティは
生成されない。
【0090】〔M〕−MODIFIED この状態はこ
のキャッシュでのみ排他的に利用可能である行を指示
し、修正される(主メモリのコピーはステール状態であ
る)。修正行は、メモリバスを獲得せずに、キャッシュ
で局所的に更新可能である。MESIは以上説明した4
つの状態を表すために使用される頭文字であり、便宜
上、状態遷移を説明するのに使用する。
のキャッシュでのみ排他的に利用可能である行を指示
し、修正される(主メモリのコピーはステール状態であ
る)。修正行は、メモリバスを獲得せずに、キャッシュ
で局所的に更新可能である。MESIは以上説明した4
つの状態を表すために使用される頭文字であり、便宜
上、状態遷移を説明するのに使用する。
【0091】E.1.基本状態遷移 キャッシュ行の基本状態遷移は2つの部分に分類できる
であろう。その第1の部分は、CPU/キャッシュコア
でそれ独自のアクションのために起こるMESI状態の
変化を対象とし、第2の部分は、他の外部装置のアクシ
ョンが原因となって起こるCPU/キャッシュコアのM
ESI状態遷移を表す。図13は、それらの基本遷移を
含むMESIコヒーレンシープロトコルの部分状態図で
ある。各キャッシュ行のMESI状態は、制御装置12
及びキャッシュメモリ13がCPU10により生成され
た読取り要求と書込み要求をサービスした結果として変
化する。ところが、キャッシュ行の状態(M,E又は
S)はキャッシュメモリ13をヒットする読取り動作に
より変化しないままである。
であろう。その第1の部分は、CPU/キャッシュコア
でそれ独自のアクションのために起こるMESI状態の
変化を対象とし、第2の部分は、他の外部装置のアクシ
ョンが原因となって起こるCPU/キャッシュコアのM
ESI状態遷移を表す。図13は、それらの基本遷移を
含むMESIコヒーレンシープロトコルの部分状態図で
ある。各キャッシュ行のMESI状態は、制御装置12
及びキャッシュメモリ13がCPU10により生成され
た読取り要求と書込み要求をサービスした結果として変
化する。ところが、キャッシュ行の状態(M,E又は
S)はキャッシュメモリ13をヒットする読取り動作に
より変化しないままである。
【0092】CPU10がCPUバス14に読取りサイ
クルを生成し、そのデータがキャッシュメモリ13に存
在していないときには、読取りミスが発生する。また、
一致は見出されるが、データが状態〔I〕(無効)であ
る場合にも読取りミスは起こる。そこで、制御装置12
は要求されたデータ(キャッシュ可能であると想定され
る)と、キャッシュ行を充填するために必要とされる周
囲のデータとを取出すために主メモリアクセスを生成す
る。PCD(ページキャッシングディスエーブル)ピン
は、記憶場所の仮想アドレスのページテーブルエントリ
にあるキャッシュ可能性ビットに対応するCPUのPC
D出力により駆動される制御装置12の入力である。C
PUがメモリアドレスを提示するときにPCDビットが
印加される場合、その記憶場所は制御装置12又はCP
U10のいずれにもキャッシュされない。制御装置12
はページごと、行ごとの2つの方式でキャッシュ可能性
を確定させる。ページキャッシュ可能性機能はソフトウ
ェアにより確定されるが、行ごとのキャッシュ可能性は
ハードウェアにより駆動される。MKEN#は、メモリ
バス制御装置又はメモリバスに接続する制御装置12の
入力である。非活動状態のMKEN#は制御装置12と
CPU10の双方における記憶場所のキャッシングを阻
止し、現在アドレスにのみ影響を及ぼす。それらの信号
のいずれかにより読取りミスがキャッシュ不可能である
と指示されれば、その行はキャッシュメモリ13又はC
PU10のキャッシュに記憶されず、キャッシュの状態
は全く修正されない。書込みミスの場合、それらの入力
のいずれかからのキャッシュ不可能指示は割当てなしに
書込みミスを強いる。尚、キャッシュメモリ13が既に
行の有効コピーを有しているならば、CPU10からの
PCD属性と、メモリバス15からのMKEN#属性と
を無視する。
クルを生成し、そのデータがキャッシュメモリ13に存
在していないときには、読取りミスが発生する。また、
一致は見出されるが、データが状態〔I〕(無効)であ
る場合にも読取りミスは起こる。そこで、制御装置12
は要求されたデータ(キャッシュ可能であると想定され
る)と、キャッシュ行を充填するために必要とされる周
囲のデータとを取出すために主メモリアクセスを生成す
る。PCD(ページキャッシングディスエーブル)ピン
は、記憶場所の仮想アドレスのページテーブルエントリ
にあるキャッシュ可能性ビットに対応するCPUのPC
D出力により駆動される制御装置12の入力である。C
PUがメモリアドレスを提示するときにPCDビットが
印加される場合、その記憶場所は制御装置12又はCP
U10のいずれにもキャッシュされない。制御装置12
はページごと、行ごとの2つの方式でキャッシュ可能性
を確定させる。ページキャッシュ可能性機能はソフトウ
ェアにより確定されるが、行ごとのキャッシュ可能性は
ハードウェアにより駆動される。MKEN#は、メモリ
バス制御装置又はメモリバスに接続する制御装置12の
入力である。非活動状態のMKEN#は制御装置12と
CPU10の双方における記憶場所のキャッシングを阻
止し、現在アドレスにのみ影響を及ぼす。それらの信号
のいずれかにより読取りミスがキャッシュ不可能である
と指示されれば、その行はキャッシュメモリ13又はC
PU10のキャッシュに記憶されず、キャッシュの状態
は全く修正されない。書込みミスの場合、それらの入力
のいずれかからのキャッシュ不可能指示は割当てなしに
書込みミスを強いる。尚、キャッシュメモリ13が既に
行の有効コピーを有しているならば、CPU10からの
PCD属性と、メモリバス15からのMKEN#属性と
を無視する。
【0093】DRCTM#(修正指向)ピンは、制御装
置12に排他状態〔E〕を飛び越し、行を修正状態
〔M〕に直接導入することを報知する入力である。オー
ナーシップの読取りや、キャッシュ間転送などの特殊な
キャッシュメモリ13のデータアクセスについては、主
メモリの読取り中に信号を起動することができる。書込
み中にも、キャッシュ追跡と、〔S〕状態行の〔M〕状
態行への更新を目的として、この信号を起動することが
できる。新たなデータは無効行と置換えられるか、又は
最も遠い時点で使用された(LRU)行と置換えられ
る。置換えられたLRU行が修正〔M〕状態にある場
合、それはメモリにライトバックされる。行が置換えら
れると、キャッシュ制御装置12は、さらに、一次キャ
ッシュの同じ行を無効化して、包含の原理を維持する。
無効化は一次キャッシュの複数の行を含んでいても良
く、データが修正されていれば、一次キャッシュからの
ライトバックを含むことも可能であろう。
置12に排他状態〔E〕を飛び越し、行を修正状態
〔M〕に直接導入することを報知する入力である。オー
ナーシップの読取りや、キャッシュ間転送などの特殊な
キャッシュメモリ13のデータアクセスについては、主
メモリの読取り中に信号を起動することができる。書込
み中にも、キャッシュ追跡と、〔S〕状態行の〔M〕状
態行への更新を目的として、この信号を起動することが
できる。新たなデータは無効行と置換えられるか、又は
最も遠い時点で使用された(LRU)行と置換えられ
る。置換えられたLRU行が修正〔M〕状態にある場
合、それはメモリにライトバックされる。行が置換えら
れると、キャッシュ制御装置12は、さらに、一次キャ
ッシュの同じ行を無効化して、包含の原理を維持する。
無効化は一次キャッシュの複数の行を含んでいても良
く、データが修正されていれば、一次キャッシュからの
ライトバックを含むことも可能であろう。
【0094】CPU10がCPUライトスルー要求を指
示するPWT(ページライトスルー)ピンを印加する
か、又はメモリバス15がMWB/WT#(メモリバス
ライトスルー)ピンを起動する−その場合には、新たな
行は制御装置12により共用状態〔S〕とされる−こと
がない限り、新たな行は排他状態〔E〕に入る。DRC
TM#が起動された場合には、新たな行は排他状態
〔E〕ではなく、修正状態〔M〕に入る。CPU10が
書込みサイクルを生成し、そのデータがキャッシュメモ
リ13に存在しているときには、そのデータは更新さ
れ、MESI状態変化を受けても良い。書込みヒット行
が、元来、排他状態〔E〕にある場合には、その行は、
書込み時に、修正状態〔M〕に変化する。ヒットされた
行が修正状態〔M〕にあれば、行はその状態のままであ
る。それらの場合、いずれにおいても、バスアクティビ
ティは生成されない。
示するPWT(ページライトスルー)ピンを印加する
か、又はメモリバス15がMWB/WT#(メモリバス
ライトスルー)ピンを起動する−その場合には、新たな
行は制御装置12により共用状態〔S〕とされる−こと
がない限り、新たな行は排他状態〔E〕に入る。DRC
TM#が起動された場合には、新たな行は排他状態
〔E〕ではなく、修正状態〔M〕に入る。CPU10が
書込みサイクルを生成し、そのデータがキャッシュメモ
リ13に存在しているときには、そのデータは更新さ
れ、MESI状態変化を受けても良い。書込みヒット行
が、元来、排他状態〔E〕にある場合には、その行は、
書込み時に、修正状態〔M〕に変化する。ヒットされた
行が修正状態〔M〕にあれば、行はその状態のままであ
る。それらの場合、いずれにおいても、バスアクティビ
ティは生成されない。
【0095】共用状態〔S〕にある行への書込みは、制
御装置12に主メモリへデータを書込ませると共に、キ
ャッシュメモリ13を更新させる。主メモリへの書込み
は、さらに、別のキャッシュにあるデータのコピーを全
て無効化する働きもする。キャッシュ行の状態はPWT
ピン及びMWB/WT#ピンへのアクティビティに従っ
て変化する。それらのピンのいずれもが起動されない場
合には、書込みヒット行が排他〔E〕になる。それらの
ピンのいずれかが起動されると、行がライトスルーのま
まに保たれ、従って、状態は共用〔S〕のままである。
CPU10が書込みサイクルを生成し、データがキャッ
シュメモリ13に存在していない場合には、書込みミス
が起こる。単純な書込みミスでは、キャッシュ制御装置
12はメモリへデータを送り出すことによりCPU10
を補助するが、データはキャッシュメモリ13には導入
されない。キャッシュ行には影響は及ばないので、状態
の変化は起こらない。
御装置12に主メモリへデータを書込ませると共に、キ
ャッシュメモリ13を更新させる。主メモリへの書込み
は、さらに、別のキャッシュにあるデータのコピーを全
て無効化する働きもする。キャッシュ行の状態はPWT
ピン及びMWB/WT#ピンへのアクティビティに従っ
て変化する。それらのピンのいずれもが起動されない場
合には、書込みヒット行が排他〔E〕になる。それらの
ピンのいずれかが起動されると、行がライトスルーのま
まに保たれ、従って、状態は共用〔S〕のままである。
CPU10が書込みサイクルを生成し、データがキャッ
シュメモリ13に存在していない場合には、書込みミス
が起こる。単純な書込みミスでは、キャッシュ制御装置
12はメモリへデータを送り出すことによりCPU10
を補助するが、データはキャッシュメモリ13には導入
されない。キャッシュ行には影響は及ばないので、状態
の変化は起こらない。
【0096】割当てを伴う書込みミスは書込みミスの特
殊なケースである。このミスは、CPUにより書込まれ
る記憶場所は現在はキャッシュメモリ13にはないが、
キャッシュメモリ13に導入され、更新されるときに起
こる。正規の書込みミスと同様に、制御装置12はデー
タを主メモリへ書込む際にCPU10を補助する。メモ
リにデータが書込まれた後、制御装置12は上記の読取
りミスの規則に従って同一のデータをリードバックす
る。キャッシュメモリ13はこのデータ組合わせを内部
で発生させるので、メモリバス15に対する書込み要求
は不要になる。この場合、修正状態〔M〕を強制するた
めにDRCTM#を使用しなければならない。
殊なケースである。このミスは、CPUにより書込まれ
る記憶場所は現在はキャッシュメモリ13にはないが、
キャッシュメモリ13に導入され、更新されるときに起
こる。正規の書込みミスと同様に、制御装置12はデー
タを主メモリへ書込む際にCPU10を補助する。メモ
リにデータが書込まれた後、制御装置12は上記の読取
りミスの規則に従って同一のデータをリードバックす
る。キャッシュメモリ13はこのデータ組合わせを内部
で発生させるので、メモリバス15に対する書込み要求
は不要になる。この場合、修正状態〔M〕を強制するた
めにDRCTM#を使用しなければならない。
【0097】割当てを実行する能力は次に示す条件の全
てが満たされているか否かによって決まる。その条件と
は、書込みがキャッシュ可能であること;PWTが起動
されず、ライトスルーを強制すること;書込みがLOC
Kされていないこと;書込みが(I/Oではなく)メモ
リに対してであること;及び書込みが読取り専用として
キャッシュされないことである。これらの条件はPAL
LOC#の起動によりMBC11へ報知される。
てが満たされているか否かによって決まる。その条件と
は、書込みがキャッシュ可能であること;PWTが起動
されず、ライトスルーを強制すること;書込みがLOC
Kされていないこと;書込みが(I/Oではなく)メモ
リに対してであること;及び書込みが読取り専用として
キャッシュされないことである。これらの条件はPAL
LOC#の起動によりMBC11へ報知される。
【0098】1つのコアの制御装置12及びキャッシュ
メモリ13におけるMESI状態遷移は、他のコア又は
装置により開始されるアクションにより共用メモリバス
15を介して誘起できる。以下の説明中、他の装置のア
クションに応答している制御装置12は現時点ではメモ
リバス15を所有しておらず、従って、「スレーブ」、
スヌーピングの場合には「スヌーパ」と呼ばれても良い
と想定する。現時点でバスを所有している制御装置は
「マスター」である。主メモリからメモリバス15を介
してデータをアクセスしているマスターは、アクセス中
のデータのより近い時点で更新されたバージョンを求め
てキャッシュを検査、すなわち、スヌープするために、
バスを介する全てのキャッシュ装置(スヌーパ)に対し
て要求を送信する。
メモリ13におけるMESI状態遷移は、他のコア又は
装置により開始されるアクションにより共用メモリバス
15を介して誘起できる。以下の説明中、他の装置のア
クションに応答している制御装置12は現時点ではメモ
リバス15を所有しておらず、従って、「スレーブ」、
スヌーピングの場合には「スヌーパ」と呼ばれても良い
と想定する。現時点でバスを所有している制御装置は
「マスター」である。主メモリからメモリバス15を介
してデータをアクセスしているマスターは、アクセス中
のデータのより近い時点で更新されたバージョンを求め
てキャッシュを検査、すなわち、スヌープするために、
バスを介する全てのキャッシュ装置(スヌーパ)に対し
て要求を送信する。
【0099】スヌープヒットが検出されたときには、キ
ャッシュ制御装置12はSNPINV及びSNPNCA
により指定される通りに行状態を更新しなければならな
い。さらに、制御装置12は、CPU10に含まれてい
る一次キャッシュの一貫性を包含の原理に基づいて維持
する働きをする。詳細にいえば、一次キャッシュに存在
している全ての行は二次キャッシュにもなければなら
ず、E.3.状態テーブルの章で詳細に説明するよう
に、一次キャッシュの〔E〕又は〔M〕状態の行は、二
次レベルキャッシュではいずれも〔M〕状態でなければ
ならない。スヌーパは、修正バージョンのデータを有し
ている(「修正行に対するスヌープヒット」)場合、次
に、CPU10に対して「問い合せサイクル」を生成し
て、CPU10もその行の修正コピー、すなわち、より
近い時点で修正された行を有しているか否かを問い合わ
せる。最新の行はスヌーピングエージェントである制御
装置によりメモリバス15に書込まれ、さらには、主メ
モリに書込まれるか又は要求を発しているマスターに直
接書込まれるので、マスターはその行を利用することが
できる。
ャッシュ制御装置12はSNPINV及びSNPNCA
により指定される通りに行状態を更新しなければならな
い。さらに、制御装置12は、CPU10に含まれてい
る一次キャッシュの一貫性を包含の原理に基づいて維持
する働きをする。詳細にいえば、一次キャッシュに存在
している全ての行は二次キャッシュにもなければなら
ず、E.3.状態テーブルの章で詳細に説明するよう
に、一次キャッシュの〔E〕又は〔M〕状態の行は、二
次レベルキャッシュではいずれも〔M〕状態でなければ
ならない。スヌーパは、修正バージョンのデータを有し
ている(「修正行に対するスヌープヒット」)場合、次
に、CPU10に対して「問い合せサイクル」を生成し
て、CPU10もその行の修正コピー、すなわち、より
近い時点で修正された行を有しているか否かを問い合わ
せる。最新の行はスヌーピングエージェントである制御
装置によりメモリバス15に書込まれ、さらには、主メ
モリに書込まれるか又は要求を発しているマスターに直
接書込まれるので、マスターはその行を利用することが
できる。
【0100】スヌープヒットを有するスヌーピングキャ
ッシュにおけるMESIプロトコルの状態変化は、マス
ターにより駆動されるSNPINV及びSNPNCAの
属性入力によって決まる。SNPINV入力は、スヌー
ピングする制御装置に、ヒットがあればスヌープ中の行
を無効化するように知らせる。そのスヌープを要求する
マスターはこの行のコピーを書込もうとしており、従っ
て、最新のコピーを有することになる。スヌープ要求時
にSNPINVが起動されると、スヌープヒットはいず
れも無効状態〔I〕にされ、CPUにそのキャッシュを
検査し、同様に行のコピーを無効化することを命令する
「戻し無効化」が生成される。スヌーピングしている制
御装置が修正行に対してスヌープヒットを起こし且つバ
スマスターによりSNPINVが印加されたときには、
戻し無効化と問い合せサイクルとを組合わせる。問い合
せサイクルはi860XPTMCPUの場合に限られ、8
0486はライトスルーキャッシュであり、決して修正
データを含んでいないため、制御装置12は80486
CPUに対しては「戻し無効化」を実行する。
ッシュにおけるMESIプロトコルの状態変化は、マス
ターにより駆動されるSNPINV及びSNPNCAの
属性入力によって決まる。SNPINV入力は、スヌー
ピングする制御装置に、ヒットがあればスヌープ中の行
を無効化するように知らせる。そのスヌープを要求する
マスターはこの行のコピーを書込もうとしており、従っ
て、最新のコピーを有することになる。スヌープ要求時
にSNPINVが起動されると、スヌープヒットはいず
れも無効状態〔I〕にされ、CPUにそのキャッシュを
検査し、同様に行のコピーを無効化することを命令する
「戻し無効化」が生成される。スヌーピングしている制
御装置が修正行に対してスヌープヒットを起こし且つバ
スマスターによりSNPINVが印加されたときには、
戻し無効化と問い合せサイクルとを組合わせる。問い合
せサイクルはi860XPTMCPUの場合に限られ、8
0486はライトスルーキャッシュであり、決して修正
データを含んでいないため、制御装置12は80486
CPUに対しては「戻し無効化」を実行する。
【0101】SNPNCA入力は、スヌーピングしてい
る制御装置に、要求しているマスターが非キャッシング
アクセスを実行しているか否かを知らせる。要求してい
るマスターがデータをキャッシングしていない場合、修
正〔M〕又は排他〔E〕行に対するスヌープヒットを排
他状態に置くことができる。要求側装置が行をキャッシ
ングしていないので、無効化を同報通信する必要はな
い。要求しているマスターがデータをキャッシングして
いる場合には、修正行又は排他行に対するスヌープヒッ
トを共用状態に置かなければならない。それにより、将
来に起こる書込みヒットは他のキャッシュに対し確実に
無効化を生じさせる。尚、共用行に対するスヌープヒッ
トはSNPNCAとは無関係に共用状態にとどまらなけ
ればならない。また、起動されたSNPINVは常にS
NPNCAをオーバーライドする。
る制御装置に、要求しているマスターが非キャッシング
アクセスを実行しているか否かを知らせる。要求してい
るマスターがデータをキャッシングしていない場合、修
正〔M〕又は排他〔E〕行に対するスヌープヒットを排
他状態に置くことができる。要求側装置が行をキャッシ
ングしていないので、無効化を同報通信する必要はな
い。要求しているマスターがデータをキャッシングして
いる場合には、修正行又は排他行に対するスヌープヒッ
トを共用状態に置かなければならない。それにより、将
来に起こる書込みヒットは他のキャッシュに対し確実に
無効化を生じさせる。尚、共用行に対するスヌープヒッ
トはSNPNCAとは無関係に共用状態にとどまらなけ
ればならない。また、起動されたSNPINVは常にS
NPNCAをオーバーライドする。
【0102】主メモリを二次キャッシュシステムに関し
て最新のものとするために、キャッシュ同期を実行す
る。これを実行するための制御信号はFLUSH#と、
SYNC#とを含む。制御装置12へFLUSH#ピン
を起動することにより、キャッシュフラッシュは開始さ
れる。開始後、制御装置12は全ての修正行を主メモリ
に書込み、再びCPU10に対して戻し無効化及び問い
合せサイクルを実行する。完了したときには、二次キャ
ッシュのタグRAM31の全てのエントリは無効状態に
なる。SYNC#ピンが起動されると、全ての修正行は
メモリに書込まれる。FLUSH#ピンとは異なり、S
YNC#が完了した後、キャッシュ行は有効なままであ
り、修正行は排他状態に変化する。
て最新のものとするために、キャッシュ同期を実行す
る。これを実行するための制御信号はFLUSH#と、
SYNC#とを含む。制御装置12へFLUSH#ピン
を起動することにより、キャッシュフラッシュは開始さ
れる。開始後、制御装置12は全ての修正行を主メモリ
に書込み、再びCPU10に対して戻し無効化及び問い
合せサイクルを実行する。完了したときには、二次キャ
ッシュのタグRAM31の全てのエントリは無効状態に
なる。SYNC#ピンが起動されると、全ての修正行は
メモリに書込まれる。FLUSH#ピンとは異なり、S
YNC#が完了した後、キャッシュ行は有効なままであ
り、修正行は排他状態に変化する。
【0103】E.2.追加状態遷移 以上説明した基本状態遷移に加えて、キャッシュ不可
能、読取り専用、ロック及び状態〔M〕への強制直接転
送のアクセスサイクルを含むいくつかの他の事象もME
SI状態に影響を及ぼす。制御装置12に対するMRO
#(メモリ読取り専用)入力は、メモリの記憶場所が読
取り専用であることを指示するために、メモリバスによ
り駆動される。読取りミス行充填中に印加されると、M
RO#は行をキャッシュメモリ13で共用状態〔S〕に
させると共に、キャッシュタグRAM31の読取り専用
ビットを設定する。MRO#アクセスはCPU10では
キャッシュされない。その後に続く読取り専用行に対す
る書込みヒットに際して、書込みは、読取り専用ビット
が設定されている状態で、共用状態〔S〕にとどまって
いるキャッシュメモリ13の行を更新することなく実際
にメモリにライトスルーされる。
能、読取り専用、ロック及び状態〔M〕への強制直接転
送のアクセスサイクルを含むいくつかの他の事象もME
SI状態に影響を及ぼす。制御装置12に対するMRO
#(メモリ読取り専用)入力は、メモリの記憶場所が読
取り専用であることを指示するために、メモリバスによ
り駆動される。読取りミス行充填中に印加されると、M
RO#は行をキャッシュメモリ13で共用状態〔S〕に
させると共に、キャッシュタグRAM31の読取り専用
ビットを設定する。MRO#アクセスはCPU10では
キャッシュされない。その後に続く読取り専用行に対す
る書込みヒットに際して、書込みは、読取り専用ビット
が設定されている状態で、共用状態〔S〕にとどまって
いるキャッシュメモリ13の行を更新することなく実際
にメモリにライトスルーされる。
【0104】CPU10により駆動されるLOCK#信
号は、要求されたサイクルが原子メモリアクセスに対し
て記憶場所をロックすべきであることを指示する。ロッ
クされたサイクルはプロセッサ間及びタスク間の同期の
ために使用されるので、ロックされた全てのサイクルは
メモリバス15に現れなければならない。ロックされた
書込みに際しては、制御装置12はそのアクセスをライ
トスルーサイクルとして取扱い、データをメモリバスへ
送信して、メモリを更新すると共に、他のキャッシュコ
ピーを無効化する。データがキャッシュメモリ13にも
存在している場合には、そのデータは更新されるが、そ
のM,E又はS状態は変化しないままである。ロックさ
れた読取りの場合には、制御装置12はキャッシュミス
を想定して、メモリ読取りサイクルを開始する。そのデ
ータがキャッシュメモリ13にある場合には、データの
M,E,S状態は変化しないままである。要求されたデ
ータがキャッシュメモリ13にあり且つ修正状態〔M〕
にある場合、メモリバスがデータを戻すと、制御装置1
2はキャッシュメモリ13のデータを使用し、メモリバ
スのデータを無視する。キャッシュメモリ13をミスす
るロックされた読取りサイクル及びロックされた書込み
サイクルは、キャッシュメモリ13とCPU10の双方
にキャッシュ不可能である。ロックされたサイクルの間
に行をキャッシュさせ且つ特定の行に対するスヌープを
阻止させることにより、キャッシュ行内部におけるLO
CKについての実現を向上させることは可能である。こ
の向上はアクセスをキャッシュに対する多くのセミフォ
アに制限することによって、メモリバスのトラフィック
をさらに減少させるであろう。
号は、要求されたサイクルが原子メモリアクセスに対し
て記憶場所をロックすべきであることを指示する。ロッ
クされたサイクルはプロセッサ間及びタスク間の同期の
ために使用されるので、ロックされた全てのサイクルは
メモリバス15に現れなければならない。ロックされた
書込みに際しては、制御装置12はそのアクセスをライ
トスルーサイクルとして取扱い、データをメモリバスへ
送信して、メモリを更新すると共に、他のキャッシュコ
ピーを無効化する。データがキャッシュメモリ13にも
存在している場合には、そのデータは更新されるが、そ
のM,E又はS状態は変化しないままである。ロックさ
れた読取りの場合には、制御装置12はキャッシュミス
を想定して、メモリ読取りサイクルを開始する。そのデ
ータがキャッシュメモリ13にある場合には、データの
M,E,S状態は変化しないままである。要求されたデ
ータがキャッシュメモリ13にあり且つ修正状態〔M〕
にある場合、メモリバスがデータを戻すと、制御装置1
2はキャッシュメモリ13のデータを使用し、メモリバ
スのデータを無視する。キャッシュメモリ13をミスす
るロックされた読取りサイクル及びロックされた書込み
サイクルは、キャッシュメモリ13とCPU10の双方
にキャッシュ不可能である。ロックされたサイクルの間
に行をキャッシュさせ且つ特定の行に対するスヌープを
阻止させることにより、キャッシュ行内部におけるLO
CKについての実現を向上させることは可能である。こ
の向上はアクセスをキャッシュに対する多くのセミフォ
アに制限することによって、メモリバスのトラフィック
をさらに減少させるであろう。
【0105】E.3.状態テーブル 制御装置12によりキャッシュされる行は、CPUバス
14のアクティビティ(制御装置12がメモリバスマス
ターになることを要求するときがある)の結果として、
あるいは他のシステムマスターにより生成されるメモリ
バス15のアクティビティ(スヌーピング)の結果とし
て、状態を変えることができる。状態の遷移はCPU1
0とメモリバス15とのトランザクションの型(読取
り、書込み)と、先に挙げた一連の外部入力信号及び後
述するように内部で生成される変数とにより影響を受け
る。さらに、制御装置12は一貫性プロトコルの結果と
していくつかのCPU/メモリバス信号を駆動する。C
PUバス14のアクティビティの結果として発生する内
部生成変数は次の通りである:
14のアクティビティ(制御装置12がメモリバスマス
ターになることを要求するときがある)の結果として、
あるいは他のシステムマスターにより生成されるメモリ
バス15のアクティビティ(スヌーピング)の結果とし
て、状態を変えることができる。状態の遷移はCPU1
0とメモリバス15とのトランザクションの型(読取
り、書込み)と、先に挙げた一連の外部入力信号及び後
述するように内部で生成される変数とにより影響を受け
る。さらに、制御装置12は一貫性プロトコルの結果と
していくつかのCPU/メモリバス信号を駆動する。C
PUバス14のアクティビティの結果として発生する内
部生成変数は次の通りである:
【0106】PWT(ページライトスルー、PWT入力
ピン):CPUバス15のライトスルー要求を指示す
る。80486又はi860XPTMCPUのPWT入力
ピンにより起動される。この信号は行充填に影響を与
え、活動状態である場合、行を〔S〕状態にさせる。制
御装置12はライトスルー行については書込み割当てを
実行しない。PWTが印加されると、それはMWB/W
T#ピンにおいてライトバック指示をオーバーライドす
る。PCD (ページキャッシュ可能性ディスエーブル、PC
D入力ピン):アクセスされた行がキャッシュ不可能で
あることを指示する。PCDが起動されると、それはM
KEN#の起動から発するキャッシュ可能指示をオーバ
ーライドする。i860XPTM/486(80486又
はi860XPTMCPU指示、CPUTYP入力ピン、
リセット立下がり端の間にサンプリングされる):この
信号は、現時点でキャッシュ制御装置12に接続してい
るCPUの型を指示する(一次キャッシュプロトコル及
び行サイズ)。
ピン):CPUバス15のライトスルー要求を指示す
る。80486又はi860XPTMCPUのPWT入力
ピンにより起動される。この信号は行充填に影響を与
え、活動状態である場合、行を〔S〕状態にさせる。制
御装置12はライトスルー行については書込み割当てを
実行しない。PWTが印加されると、それはMWB/W
T#ピンにおいてライトバック指示をオーバーライドす
る。PCD (ページキャッシュ可能性ディスエーブル、PC
D入力ピン):アクセスされた行がキャッシュ不可能で
あることを指示する。PCDが起動されると、それはM
KEN#の起動から発するキャッシュ可能指示をオーバ
ーライドする。i860XPTM/486(80486又
はi860XPTMCPU指示、CPUTYP入力ピン、
リセット立下がり端の間にサンプリングされる):この
信号は、現時点でキャッシュ制御装置12に接続してい
るCPUの型を指示する(一次キャッシュプロトコル及
び行サイズ)。
【0107】NWT(i860XPTMライトスルー指
示、C5のWB/WT#出力ピン):ローであるとき、
i860XPTMにアクセスされた行をSHARED状態
に保持させる。ライトバックモード(WB=1)は!N
WT表記法により指示される。それらの場合、i860
XPTMは排他状態〔E〕、〔M〕に移行できるようにな
る。明示して記述されない限り、NWTは通常は活動状
態である。KEN (CPUキャッシングイネーブル、KEN#出力
ピン):活動状態であるとき、要求された行をCPU1
0の一次キャッシュによりキャッシングできることを指
示する。明示して記述されない限り、KENは通常は活
動状態である。
示、C5のWB/WT#出力ピン):ローであるとき、
i860XPTMにアクセスされた行をSHARED状態
に保持させる。ライトバックモード(WB=1)は!N
WT表記法により指示される。それらの場合、i860
XPTMは排他状態〔E〕、〔M〕に移行できるようにな
る。明示して記述されない限り、NWTは通常は活動状
態である。KEN (CPUキャッシングイネーブル、KEN#出力
ピン):活動状態であるとき、要求された行をCPU1
0の一次キャッシュによりキャッシングできることを指
示する。明示して記述されない限り、KENは通常は活
動状態である。
【0108】メモリバス15のアクティビティは次に挙
げる内部変数に影響を及ぼす:MWT (メモリバスライトスルー指示、MWB/WT#
入力ピン):活動状態であるとき、制御装置12にアク
セスされた行を共用状態〔S〕に保持させる。ライトバ
ックモードは!MWT表記法により指示される。それら
の場合、制御装置12は排他状態〔E〕,〔M〕へ移行
することができる。DRCTM (メモリバス〔M〕指向指示、DRCTM#
入力ピン):活動状態であるとき、〔E〕状態の飛び越
しを強制し、〔M〕へ直接に移行させる。MKEN (メモリバスキャッシュ可能性イネーブル、M
KEN#入力ピン):活動状態であるとき、メモリバス
サイクルがキャッシュ可能であることを指示する。MRO (メモリバス読取り専用指示、MRO#入力ピ
ン):活動状態であるとき、行を読取り専用にさせる。MTHIT (タグヒット、MTHIT#出力ピン):ス
ヌープサイクルの間に制御装置12により起動され、現
在スヌープアドレスが制御装置12又はキャッシュ13
の有効行(〔E〕,〔S〕又は〔M〕)をヒットするこ
とを指示する。MHITM (〔M〕状態の行に対するヒット、MHIT
M#出力ピン):制御装置12のスヌープサイクルによ
り起動され、現在スヌープアドレスが制御装置12のタ
グアレイの修正行をヒットすることを指示する。SNPNCA (非キャッシング装置アクセス):活動状
態であるとき、制御装置12に、現在バスマスターが非
キャッシングアクセスを実行していることを指示する。SNPINV (無効化):活動状態であるとき、制御装
置12に、現在スヌープサイクルがアドレス指定された
キャッシュ行を無効化しなければならないことを指示す
る。
げる内部変数に影響を及ぼす:MWT (メモリバスライトスルー指示、MWB/WT#
入力ピン):活動状態であるとき、制御装置12にアク
セスされた行を共用状態〔S〕に保持させる。ライトバ
ックモードは!MWT表記法により指示される。それら
の場合、制御装置12は排他状態〔E〕,〔M〕へ移行
することができる。DRCTM (メモリバス〔M〕指向指示、DRCTM#
入力ピン):活動状態であるとき、〔E〕状態の飛び越
しを強制し、〔M〕へ直接に移行させる。MKEN (メモリバスキャッシュ可能性イネーブル、M
KEN#入力ピン):活動状態であるとき、メモリバス
サイクルがキャッシュ可能であることを指示する。MRO (メモリバス読取り専用指示、MRO#入力ピ
ン):活動状態であるとき、行を読取り専用にさせる。MTHIT (タグヒット、MTHIT#出力ピン):ス
ヌープサイクルの間に制御装置12により起動され、現
在スヌープアドレスが制御装置12又はキャッシュ13
の有効行(〔E〕,〔S〕又は〔M〕)をヒットするこ
とを指示する。MHITM (〔M〕状態の行に対するヒット、MHIT
M#出力ピン):制御装置12のスヌープサイクルによ
り起動され、現在スヌープアドレスが制御装置12のタ
グアレイの修正行をヒットすることを指示する。SNPNCA (非キャッシング装置アクセス):活動状
態であるとき、制御装置12に、現在バスマスターが非
キャッシングアクセスを実行していることを指示する。SNPINV (無効化):活動状態であるとき、制御装
置12に、現在スヌープサイクルがアドレス指定された
キャッシュ行を無効化しなければならないことを指示す
る。
【0109】その他の内部変数には次のようなものがあ
る:TRO (タグ読取り専用タグビット):このビットは、
セットされると、このタグと関連する1つ又は2つの行
が読取り専用行であることを指示する。BINV :一次キャッシュにおいて包含の原理を維持す
るためのCPU戻し無効化サイクルの実行(INVが活
動状態であるときのスヌープ又はWTキャッシュを伴う
80486CPU)。INQR :一次キャッシュにおいて包含の原理を維持す
るためのi860XPTM問い合せサイクルの実行(IN
Vが活動状態であるときに実行されても良く、同時に戻
し無効化を実行する)。WBCK (制御装置12のライトバックサイクル):こ
れは、制御装置12にキャッシュされている〔M〕状態
のデータを主メモリに戻しコピーすべき場合に生成され
るメモリバス15の書込みサイクルである。ライトバッ
クサイクルは制御装置12の1行全体に影響を与える。WTHR (C5ライトスルーサイクル):これはCPU
書込みに応答したシステム書込みサイクルである。キャ
ッシュSRAMに影響を及ぼしても良く、及ぼさなくと
も良い(更新)。ライトスルーサイクルでは、制御装置
12は、CPU10がCPUバス14に対して実行する
のと同一のアドレス信号、データ信号及び制御信号によ
ってメモリバス15を駆動する。主メモリは更新され、
他のキャッシュはそれらのコピーを無効化する。
る:TRO (タグ読取り専用タグビット):このビットは、
セットされると、このタグと関連する1つ又は2つの行
が読取り専用行であることを指示する。BINV :一次キャッシュにおいて包含の原理を維持す
るためのCPU戻し無効化サイクルの実行(INVが活
動状態であるときのスヌープ又はWTキャッシュを伴う
80486CPU)。INQR :一次キャッシュにおいて包含の原理を維持す
るためのi860XPTM問い合せサイクルの実行(IN
Vが活動状態であるときに実行されても良く、同時に戻
し無効化を実行する)。WBCK (制御装置12のライトバックサイクル):こ
れは、制御装置12にキャッシュされている〔M〕状態
のデータを主メモリに戻しコピーすべき場合に生成され
るメモリバス15の書込みサイクルである。ライトバッ
クサイクルは制御装置12の1行全体に影響を与える。WTHR (C5ライトスルーサイクル):これはCPU
書込みに応答したシステム書込みサイクルである。キャ
ッシュSRAMに影響を及ぼしても良く、及ぼさなくと
も良い(更新)。ライトスルーサイクルでは、制御装置
12は、CPU10がCPUバス14に対して実行する
のと同一のアドレス信号、データ信号及び制御信号によ
ってメモリバス15を駆動する。主メモリは更新され、
他のキャッシュはそれらのコピーを無効化する。
【0110】RTHR(制御装置12のリードスルーサ
イクル):これは、制御装置12をヒットする行に対す
るロックされた読取りを支援するための特殊なサイクル
である。制御装置12はロック同期のためにメモリバス
15のサイクルを要求し、データは、データをキャッシ
ュメモリ13から供給させる〔M〕状態を除いてメモリ
バス15から供給される。LFIL (行充填):制御装置12に、新たな行を取出
し且つそれをキャッシュメモリ13に預けるために、メ
モリバス15サイクルを生成させる。RNRM (制御装置12の読取り正規サイクル):これ
は、キャッシュ不可能アクセスに対して制御装置12に
より実行される正規読取りサイクルである。SRUP (キャッシュ13SRAM UPDATE):
新たな情報がキャッシュメモリ13に導入されるたびに
起こる。LFILサイクルで更新が示唆される。 ALLOC (制御装置12のALLOCATION):
キャッシュ可能である書込みミスサイクルで、制御装置
12に行読取りを発行させる。
イクル):これは、制御装置12をヒットする行に対す
るロックされた読取りを支援するための特殊なサイクル
である。制御装置12はロック同期のためにメモリバス
15のサイクルを要求し、データは、データをキャッシ
ュメモリ13から供給させる〔M〕状態を除いてメモリ
バス15から供給される。LFIL (行充填):制御装置12に、新たな行を取出
し且つそれをキャッシュメモリ13に預けるために、メ
モリバス15サイクルを生成させる。RNRM (制御装置12の読取り正規サイクル):これ
は、キャッシュ不可能アクセスに対して制御装置12に
より実行される正規読取りサイクルである。SRUP (キャッシュ13SRAM UPDATE):
新たな情報がキャッシュメモリ13に導入されるたびに
起こる。LFILサイクルで更新が示唆される。 ALLOC (制御装置12のALLOCATION):
キャッシュ可能である書込みミスサイクルで、制御装置
12に行読取りを発行させる。
【0111】図14から図19は、第1の欄に示す現在
状態からの状態遷移を定義し、第2の欄は既存の条件
と、その結果生じる次の状態を示し、第3の欄と第4の
欄はメモリバスのアクティビティと、CPUのアクティ
ビティ(好ましい実施例の先に定義した変数に関連し
て)をそれぞれ示している。便宜上、図14から図19
において、記号「XP」はi860XPTMCPUを表す
ために使用され、「CC」はキャッシュ制御装置12を
表すために使用されている。
状態からの状態遷移を定義し、第2の欄は既存の条件
と、その結果生じる次の状態を示し、第3の欄と第4の
欄はメモリバスのアクティビティと、CPUのアクティ
ビティ(好ましい実施例の先に定義した変数に関連し
て)をそれぞれ示している。便宜上、図14から図19
において、記号「XP」はi860XPTMCPUを表す
ために使用され、「CC」はキャッシュ制御装置12を
表すために使用されている。
【0112】F.プロトコルの基本タイミング 二次キャッシュシステムの動作は、主メモリとの間のメ
モリバス15を介するデータの流れを制御する2つの素
子であるキャッシュ制御装置12及びMBC11、並び
に他のキャッシュシステム及びバスマスターの対話によ
って大きく作用される。図20は、二次キャッシュシス
テムのさらに詳細なブロック線図であり、CPU10
と、CPUバス14と、C5制御装置12と、C8キャ
ッシュSRAM13と、オプションのメモリバストラン
シーバ(XVR)又はラッチ装置16と、MBC11
と、メモリバス15との間のアドレス及びデータの流れ
の制御についてさらに詳細に示されている。制御装置1
2はMBC11に報告することによりメモリバス15の
制御を要求する。MBC11は制御装置12に対してバ
スを順序指定し、許可する。許可後、MBC11は要求
されたサイクルを実行し、その他のキャッシュをスヌー
ピングし且つサイクルを終了させる。制御装置12は様
々に異なるスヌーピングのモードと、さまざまに異なる
メモリバス動作のモードと、様々なキャッシュ一貫性プ
ロトコルのオプションを支援する。MBC11の構成は
それらの機能のどれを使用するかを指示し、厳密にそれ
らをどのようにして使用するかを指示する。
モリバス15を介するデータの流れを制御する2つの素
子であるキャッシュ制御装置12及びMBC11、並び
に他のキャッシュシステム及びバスマスターの対話によ
って大きく作用される。図20は、二次キャッシュシス
テムのさらに詳細なブロック線図であり、CPU10
と、CPUバス14と、C5制御装置12と、C8キャ
ッシュSRAM13と、オプションのメモリバストラン
シーバ(XVR)又はラッチ装置16と、MBC11
と、メモリバス15との間のアドレス及びデータの流れ
の制御についてさらに詳細に示されている。制御装置1
2はMBC11に報告することによりメモリバス15の
制御を要求する。MBC11は制御装置12に対してバ
スを順序指定し、許可する。許可後、MBC11は要求
されたサイクルを実行し、その他のキャッシュをスヌー
ピングし且つサイクルを終了させる。制御装置12は様
々に異なるスヌーピングのモードと、さまざまに異なる
メモリバス動作のモードと、様々なキャッシュ一貫性プ
ロトコルのオプションを支援する。MBC11の構成は
それらの機能のどれを使用するかを指示し、厳密にそれ
らをどのようにして使用するかを指示する。
【0113】F.1.サイクルの属性と進行 メモリバスサイクルは、キャッシュ制御装置12がキャ
ッシュアドレスストローブCADS#を起動することに
より開始される。印加されると、この信号はキャッシュ
サイクル制御信号及び属性信号がMBC11に対して有
効であることを指示する。制御装置12はMBC11に
キャッシュデータストローブ信号CDTS#をさらに供
給する。CDTS#はCADS#を追跡し、サイクルデ
ータ段階の開始を指示する。読取りサイクルの場合、信
号は、次のCLKで始まるとき、CPUバス14は最後
のBRDY#が起動される(MBC11に対してサイク
ル長さ及びキャッシュ可能性の属性により指定され、キ
ャッシュ制御装置12によりCPUバス14を介してB
LAST#印加によって報知される)まで、MBC11
の制御の下で読取りモードに入っている。読取りサイク
ルでは、MBC11が既にCPUバス14を所有してい
る場合、CDTS#はCADS#によって起動される。
割当てサイクルの場合、MBC11はCPUバス14を
必要とせず、従って、CDTS#はCADS#と共に起
動される。書込みサイクルの場合、CDTS#はメモリ
バス15で第1のデータのピースを利用可能であること
を指示する。80486CPUの書込みサイクルにおい
ては、これはCADS#と共に印加される。ライトバッ
クサイクルでは、CDTS#は全てのデータが利用可能
であること、すなわち、ライトバックバッファ又はスヌ
ープバッファに正しいライトバックデータがロードされ
ることを指示する。
ッシュアドレスストローブCADS#を起動することに
より開始される。印加されると、この信号はキャッシュ
サイクル制御信号及び属性信号がMBC11に対して有
効であることを指示する。制御装置12はMBC11に
キャッシュデータストローブ信号CDTS#をさらに供
給する。CDTS#はCADS#を追跡し、サイクルデ
ータ段階の開始を指示する。読取りサイクルの場合、信
号は、次のCLKで始まるとき、CPUバス14は最後
のBRDY#が起動される(MBC11に対してサイク
ル長さ及びキャッシュ可能性の属性により指定され、キ
ャッシュ制御装置12によりCPUバス14を介してB
LAST#印加によって報知される)まで、MBC11
の制御の下で読取りモードに入っている。読取りサイク
ルでは、MBC11が既にCPUバス14を所有してい
る場合、CDTS#はCADS#によって起動される。
割当てサイクルの場合、MBC11はCPUバス14を
必要とせず、従って、CDTS#はCADS#と共に起
動される。書込みサイクルの場合、CDTS#はメモリ
バス15で第1のデータのピースを利用可能であること
を指示する。80486CPUの書込みサイクルにおい
ては、これはCADS#と共に印加される。ライトバッ
クサイクルでは、CDTS#は全てのデータが利用可能
であること、すなわち、ライトバックバッファ又はスヌ
ープバッファに正しいライトバックデータがロードされ
ることを指示する。
【0114】サイクル要求に対する応答として、メモリ
バス制御装置11はサイクル進行信号によって応答す
る。あらゆるサイクル進行信号は先行サイクルに関わる
CDTS#及びCRDY#の後に一度サンプリングさ
れ、次に、対応するサイクルのCRDY#が現れるまで
無視される。BGT#は、メモリバス15におけるサイ
クルの実行を完了するためのメモリバス制御装置11に
よる委託を指示する。この時点に至るまで、キャッシュ
制御装置12がサイクルを所有している。すなわち、介
在するスヌープライトバックはそれを打切り、制御装置
12は必要に応じてMBC11に対してサイクルを再発
行する働きをする。キャッシュ制御装置12が、新しい
が再発行されたのではないサイクルを発行する1つのケ
ースは次の通りである:元来のCADS#動作がライト
バックサイクルであり且つ割込みスヌープサイクルがそ
のライトバックバッファをヒットした場合、後続するC
ADS#は全く新しいサイクル(割込まれたCADS#
動作の再発行ではない)に対するものとなる。
バス制御装置11はサイクル進行信号によって応答す
る。あらゆるサイクル進行信号は先行サイクルに関わる
CDTS#及びCRDY#の後に一度サンプリングさ
れ、次に、対応するサイクルのCRDY#が現れるまで
無視される。BGT#は、メモリバス15におけるサイ
クルの実行を完了するためのメモリバス制御装置11に
よる委託を指示する。この時点に至るまで、キャッシュ
制御装置12がサイクルを所有している。すなわち、介
在するスヌープライトバックはそれを打切り、制御装置
12は必要に応じてMBC11に対してサイクルを再発
行する働きをする。キャッシュ制御装置12が、新しい
が再発行されたのではないサイクルを発行する1つのケ
ースは次の通りである:元来のCADS#動作がライト
バックサイクルであり且つ割込みスヌープサイクルがそ
のライトバックバッファをヒットした場合、後続するC
ADS#は全く新しいサイクル(割込まれたCADS#
動作の再発行ではない)に対するものとなる。
【0115】MBC11が制御装置12へBGT#信号
を送信して、メモリバス15におけるサイクルを完了す
るためのMBC11による保証を指示した後、MBC1
1はそのサイクルを所有する。制御装置12はサイクル
が終了すると想定し、何らかのタグ変化が解決されるま
でスヌープを許容しない。BGT#に続いて現れるKW
END#は、キャッシュ可能性ウィンドウが閉鎖し、制
御装置12がキャッシュ可能性と、読取り専用とをそれ
ぞれ制御装置12に指示するMKEN#、MRO#の属
性をサンプリングしなければならないことを指示する。
(それらの属性は制御装置アドレスを復号することによ
り確定できる。)それらの属性に基づいて、制御装置1
2は割当て,行充填,置換えなどを実行する。
を送信して、メモリバス15におけるサイクルを完了す
るためのMBC11による保証を指示した後、MBC1
1はそのサイクルを所有する。制御装置12はサイクル
が終了すると想定し、何らかのタグ変化が解決されるま
でスヌープを許容しない。BGT#に続いて現れるKW
END#は、キャッシュ可能性ウィンドウが閉鎖し、制
御装置12がキャッシュ可能性と、読取り専用とをそれ
ぞれ制御装置12に指示するMKEN#、MRO#の属
性をサンプリングしなければならないことを指示する。
(それらの属性は制御装置アドレスを復号することによ
り確定できる。)それらの属性に基づいて、制御装置1
2は割当て,行充填,置換えなどを実行する。
【0116】KWEND#に続いて、SWEND#が起
動される。これは、スヌープウィンドウが閉鎖したこと
を指示する。制御装置12はこの時点でMWB/WT#
及びDRCTM#の各属性をサンプリングする。それら
の属性はシステム内のその他のキャッシュをスヌーピン
グすることにより確定される。この時点で、制御装置1
2は進行中の行アクセスに関連するタグRAM31の状
態を更新する。最後に、MBC11は、バスサイクルの
終了を指示するCRDY#をキャッシュ制御装置12へ
発行する。制御装置12は、BGT#とCRDY#との
間でCNA#を起動して、現在データ段階の終結に先立
ってMBC11に新たなアドレス段階を要求させること
により、メモリバスのパイプライン化を可能にする。キ
ャッシュ制御装置12はメモリバス15において1レベ
ルの深さのアドレスパイプラインを支援する。これらの
動作を図21に象徴的に表している。
動される。これは、スヌープウィンドウが閉鎖したこと
を指示する。制御装置12はこの時点でMWB/WT#
及びDRCTM#の各属性をサンプリングする。それら
の属性はシステム内のその他のキャッシュをスヌーピン
グすることにより確定される。この時点で、制御装置1
2は進行中の行アクセスに関連するタグRAM31の状
態を更新する。最後に、MBC11は、バスサイクルの
終了を指示するCRDY#をキャッシュ制御装置12へ
発行する。制御装置12は、BGT#とCRDY#との
間でCNA#を起動して、現在データ段階の終結に先立
ってMBC11に新たなアドレス段階を要求させること
により、メモリバスのパイプライン化を可能にする。キ
ャッシュ制御装置12はメモリバス15において1レベ
ルの深さのアドレスパイプラインを支援する。これらの
動作を図21に象徴的に表している。
【0117】F.2.スヌープ動作 キャッシュ制御装置12はキャッシュの一貫性を確保す
るために、メモリバスにおいてスヌーピング動作を実行
する。スヌープ動作は開始段階と、応答段階という2つ
の段階から構成されている。開始段階の間、MBC11
は制御装置12にスヌープアドレス情報を与える。応答
段階の間には、キャッシュ制御装置12はスヌープ状態
情報を提供する。
るために、メモリバスにおいてスヌーピング動作を実行
する。スヌープ動作は開始段階と、応答段階という2つ
の段階から構成されている。開始段階の間、MBC11
は制御装置12にスヌープアドレス情報を与える。応答
段階の間には、キャッシュ制御装置12はスヌープ状態
情報を提供する。
【0118】スヌープを開始するモードは、 1.ストローブ:SNPSTB#の立下り端を使用; 2.クロック:SNPCLKによってSNPSTB#を
サンプリング; 3.同期:CLKによってSNPSTB#をサンプリン
グの3つである。これら3つのスヌーピングモードは次
のように構成される: 1.ストローブ:SNPCLK信号はハイにストラップ
されなければならない。 2.クロック:SNPCLK信号をスヌープクロック源
に接続しなければならない。 3.同期:SNPCLK信号はローにストラップされな
ければならない。
サンプリング; 3.同期:CLKによってSNPSTB#をサンプリン
グの3つである。これら3つのスヌーピングモードは次
のように構成される: 1.ストローブ:SNPCLK信号はハイにストラップ
されなければならない。 2.クロック:SNPCLK信号をスヌープクロック源
に接続しなければならない。 3.同期:SNPCLK信号はローにストラップされな
ければならない。
【0119】図22は、ストローブ方式のスヌープ開始
を示す。SNPSTB#の立下り端に伴って、メモリア
ドレスSNPNCA,SNPINV及びMBAOE#を
ラッチする。MAOE#をサンプリングして活動状態
(ロー)であれば、SNPSTB#はスヌープを発生さ
せない。スヌープ開始は制御装置12により認識され、
次のクロックで同期されて、それに続くクロックにおい
てスヌープを発生させる。図23は、クロック方式のス
ヌープ開始を示す。SNPSTB#を初めにサンプリン
グしてローであるとき、SNPCLKの立上がり端に伴
ってメモリアドレスSNPNCA,SNPINV及びM
BAOE#をラッチする。再度のスヌープの準備を整え
るためには、少なくとも1つのSNPCLKについてS
NPSTB#はハイ状態でサンプリングされなければな
らない。MAOE#をサンプリングして活動状態(ロ
ー)であれば、SNPSTB#はスヌープを発生させな
い。スヌープ開始は制御装置12により認識され、次の
クロックで同期され、それに続くクロックにおいてスヌ
ープを発生させる。
を示す。SNPSTB#の立下り端に伴って、メモリア
ドレスSNPNCA,SNPINV及びMBAOE#を
ラッチする。MAOE#をサンプリングして活動状態
(ロー)であれば、SNPSTB#はスヌープを発生さ
せない。スヌープ開始は制御装置12により認識され、
次のクロックで同期されて、それに続くクロックにおい
てスヌープを発生させる。図23は、クロック方式のス
ヌープ開始を示す。SNPSTB#を初めにサンプリン
グしてローであるとき、SNPCLKの立上がり端に伴
ってメモリアドレスSNPNCA,SNPINV及びM
BAOE#をラッチする。再度のスヌープの準備を整え
るためには、少なくとも1つのSNPCLKについてS
NPSTB#はハイ状態でサンプリングされなければな
らない。MAOE#をサンプリングして活動状態(ロ
ー)であれば、SNPSTB#はスヌープを発生させな
い。スヌープ開始は制御装置12により認識され、次の
クロックで同期され、それに続くクロックにおいてスヌ
ープを発生させる。
【0120】図24は、同期スヌープモードを示す。S
NPSTB#を初めにサンプリングしてローであると
き、CLKの立上がり端に伴ってメモリアドレスSNP
NCA,SNPINV及びMABOE#をラッチする。
再度のスヌープの準備を整えるためには、少なくとも1
つのCLKについてSNPSTB#はハイ状態でサンプ
リングされなければならない。MAOE#をサンプリン
グして活動状態(ロー)であれば、SNPSTB#はス
ヌープを発生させない。スヌープ開始はC5,キャッシ
ュ制御装置12により認識され、次のクロックでスヌー
プを発生させる。キャッシュ制御装置12によるスヌー
プ応答段階は状態指示と、スヌープ処理完了信号という
2つの段階から構成されている。応答段階は常にCPU
CLKと同期する。状態指示はMHITM#及びMTH
IT#に提示され、次のスヌープまで安定したままであ
る。これらの信号は、スヌープ動作の直前のキャッシュ
制御装置の行の状態を指示する。MBC11はキャッシ
ュ制御装置の行の初期状態と、SNPINV及びSNP
NCA入力とを知って、行の最終状態を予測することが
できる。スヌープ完了情報はSNPBSY#出力によっ
て確定される。SNPBSY#出力が非活動状態である
とき、それはキャッシュ制御装置12が次のスヌープサ
イクルを受入れできる状態にあることを指示する。
NPSTB#を初めにサンプリングしてローであると
き、CLKの立上がり端に伴ってメモリアドレスSNP
NCA,SNPINV及びMABOE#をラッチする。
再度のスヌープの準備を整えるためには、少なくとも1
つのCLKについてSNPSTB#はハイ状態でサンプ
リングされなければならない。MAOE#をサンプリン
グして活動状態(ロー)であれば、SNPSTB#はス
ヌープを発生させない。スヌープ開始はC5,キャッシ
ュ制御装置12により認識され、次のクロックでスヌー
プを発生させる。キャッシュ制御装置12によるスヌー
プ応答段階は状態指示と、スヌープ処理完了信号という
2つの段階から構成されている。応答段階は常にCPU
CLKと同期する。状態指示はMHITM#及びMTH
IT#に提示され、次のスヌープまで安定したままであ
る。これらの信号は、スヌープ動作の直前のキャッシュ
制御装置の行の状態を指示する。MBC11はキャッシ
ュ制御装置の行の初期状態と、SNPINV及びSNP
NCA入力とを知って、行の最終状態を予測することが
できる。スヌープ完了情報はSNPBSY#出力によっ
て確定される。SNPBSY#出力が非活動状態である
とき、それはキャッシュ制御装置12が次のスヌープサ
イクルを受入れできる状態にあることを指示する。
【0121】図25は、無効化を伴わないスヌープに対
するキャッシュ制御装置12の応答を示す。第1回のス
ヌープはキャッシュにはその時点で記憶されない〔I〕
状態の行に対するものである。次のスヌープは〔E〕又
は〔S〕状態の行に対するものであり、続くスヌープは
〔M〕状態の行に対するものである。図26は、無効化
を伴うスヌープに対する制御装置12を示す。SNPB
SY#信号は、修正行に対するスヌープヒットが起こっ
た(SNPBSY#は修正行がライトバックされ終わる
まで活動状態のままである)か、あるいは、戻し無効化
が必要であり、戻し無効化が進行中であるといういずれ
かの理由によって起動される。SNPBSY#の最短活
動時間はCLK周期2回である。これにより、外部論理
は非同期クロックに伴って活動状態のSNPBSY#を
捕獲し且つ保持することができる。外部論理は、まず、
制御装置12がスヌープ実行中を指示するために使用す
る活動状態のSNPCYC#を求め、次にSNPBSY
#を捕獲し且つ保持しなければならない。
するキャッシュ制御装置12の応答を示す。第1回のス
ヌープはキャッシュにはその時点で記憶されない〔I〕
状態の行に対するものである。次のスヌープは〔E〕又
は〔S〕状態の行に対するものであり、続くスヌープは
〔M〕状態の行に対するものである。図26は、無効化
を伴うスヌープに対する制御装置12を示す。SNPB
SY#信号は、修正行に対するスヌープヒットが起こっ
た(SNPBSY#は修正行がライトバックされ終わる
まで活動状態のままである)か、あるいは、戻し無効化
が必要であり、戻し無効化が進行中であるといういずれ
かの理由によって起動される。SNPBSY#の最短活
動時間はCLK周期2回である。これにより、外部論理
は非同期クロックに伴って活動状態のSNPBSY#を
捕獲し且つ保持することができる。外部論理は、まず、
制御装置12がスヌープ実行中を指示するために使用す
る活動状態のSNPCYC#を求め、次にSNPBSY
#を捕獲し且つ保持しなければならない。
【0122】キャッシュ制御装置12はMBC11にス
ヌープ動作をパイプライン化させる。また、最前のスヌ
ープが完了する前に次のスヌープアドレスを供給させ、
次のスヌープを要求させる。パイプライン化スヌープの
動作を統制する規則は次の通りである: 1.ストローブモードのスヌープの場合、MBC11は
SNPCYC#の立下がり端の後までSNPSTB#の
第2の立下がり端を発生させることができない。 2.クロックモードのスヌープの場合、MBC11はS
NPCYC#の立下がり端の後まで第2に起動されるS
NPSTB#をSNPCLKによりサンプリングさせる
ことができない。 3.同期モードのスヌープの場合、MBC11は、SN
PCYC#が活動状態になった後のCLKまでSNPS
TB#の第2の立下がり端をCLKによりサンプリング
させることができない。
ヌープ動作をパイプライン化させる。また、最前のスヌ
ープが完了する前に次のスヌープアドレスを供給させ、
次のスヌープを要求させる。パイプライン化スヌープの
動作を統制する規則は次の通りである: 1.ストローブモードのスヌープの場合、MBC11は
SNPCYC#の立下がり端の後までSNPSTB#の
第2の立下がり端を発生させることができない。 2.クロックモードのスヌープの場合、MBC11はS
NPCYC#の立下がり端の後まで第2に起動されるS
NPSTB#をSNPCLKによりサンプリングさせる
ことができない。 3.同期モードのスヌープの場合、MBC11は、SN
PCYC#が活動状態になった後のCLKまでSNPS
TB#の第2の立下がり端をCLKによりサンプリング
させることができない。
【0123】図27及び図28は、同期の場合と非同期
の場合にそれぞれ実行しうる最高速パイプライン化スヌ
ープ動作を示す。キャッシュ制御装置12は、メモリバ
スを図29に示すような4つのセクターに分割すること
により、スヌープを主メモリとの間のデータ転送と重複
させる。セクター1は先行メモリバスサイクルに続き
(すなわち、CRDY#の後)、新たなメモリバスサイ
クルが開始するまで(CADS#の前)続く。この領域
におけるスヌープは直ちにルックアップされ、直ちにサ
ービスされる。セクター2はメモリバスサイクルの開始
(CADS#)に続き、制御装置12がバスを許可され
る(BGT#)前に終了する。この領域におけるスヌー
プは直ちにルックアップされ、直ちにサービスされる。
CADS#は、必要に応じて、スヌープの完了後に打切
りサイクルに関して再発行される。
の場合にそれぞれ実行しうる最高速パイプライン化スヌ
ープ動作を示す。キャッシュ制御装置12は、メモリバ
スを図29に示すような4つのセクターに分割すること
により、スヌープを主メモリとの間のデータ転送と重複
させる。セクター1は先行メモリバスサイクルに続き
(すなわち、CRDY#の後)、新たなメモリバスサイ
クルが開始するまで(CADS#の前)続く。この領域
におけるスヌープは直ちにルックアップされ、直ちにサ
ービスされる。セクター2はメモリバスサイクルの開始
(CADS#)に続き、制御装置12がバスを許可され
る(BGT#)前に終了する。この領域におけるスヌー
プは直ちにルックアップされ、直ちにサービスされる。
CADS#は、必要に応じて、スヌープの完了後に打切
りサイクルに関して再発行される。
【0124】セクター3は制御装置12がバスを許可さ
れた後に始まり、SWEND#が完了するまで続く。こ
の領域におけるスヌープはSWEND#の後までルック
アップを阻止される。この時点でスヌープ応答が与えら
れるが、CRDY#の後までライトバックは開始されな
い。セクター4はSWEND#の後に始まり、CRDY
#の前に終了する。この領域におけるスヌープは直ちに
ルックアップされるが、CRDY#の後にサービスされ
る。このスヌープは、論理的には、CRDY#の後で起
こったかのように取扱われる。(修正データに対するス
ヌープヒットはライトアップバックをスケジューリング
し、ライトバックは現在メモリバスサイクルの終結後に
実行される。)尚、スヌープの結果(MHITM#,M
THIT#)はルックアップに伴って直ちに利用可能と
なる。
れた後に始まり、SWEND#が完了するまで続く。こ
の領域におけるスヌープはSWEND#の後までルック
アップを阻止される。この時点でスヌープ応答が与えら
れるが、CRDY#の後までライトバックは開始されな
い。セクター4はSWEND#の後に始まり、CRDY
#の前に終了する。この領域におけるスヌープは直ちに
ルックアップされるが、CRDY#の後にサービスされ
る。このスヌープは、論理的には、CRDY#の後で起
こったかのように取扱われる。(修正データに対するス
ヌープヒットはライトアップバックをスケジューリング
し、ライトバックは現在メモリバスサイクルの終結後に
実行される。)尚、スヌープの結果(MHITM#,M
THIT#)はルックアップに伴って直ちに利用可能と
なる。
【0125】キャッシュ制御装置12は、適正なセクタ
ーの中でスヌープが識別されるように保証するために、
2つのインタロックメカニズムを使用する。第1のイン
タロックは、BGT#が与えられた後、スヌープはSW
END#の後まで阻止されるということを保証する。第
2のインタロックは、スヌープが開始されたならば、ス
ヌープのサービスが終了するまでBGT#を与えること
はできないということを保証する。図30は、BGT#
が活動状態になれば、制御装置12はSWEND#の後
まで全てのスヌープを阻止することを示す。スヌープが
開始され、BGT#の起動前にSNPCYC#が発行さ
れなかった場合には、スヌープは阻止される。図31
は、BGT#の前に起こるスヌープを示す。制御装置1
2は、スヌープを許可したならば、スヌープのサービス
が終了するまでBGT#を無視しても良い。SNPCY
C#が活動状態であるとき、制御装置は常にBGT#を
無視する。スヌープの結果が修正行に対するヒット(M
HITM#は活動状態)であれば、SNPBSY#とM
HITM#の双方が活動状態のままである限り、BGT
#を無視する。この場合、SNPBSY#が非活動状態
になるまでBGT#を保持する又はSNPBSY#が非
活動状態になった後にBGT#を再び起動する働きをす
るのはMBC11である。スヌープの結果が修正行に対
するヒットではない(MHITM#は非活動状態)場合
には、制御装置12はSNPBSY#が活動状態である
ときでもBGT#を受入れることができる。これによ
り、制御装置12が戻し無効化を実行している間にMB
C11はBGT#を起動することによりメモリバスサイ
クルを進行させてゆくことができる。スヌープが遅延し
たときでも、SNPSTB#の起動に伴ってアドレスラ
ッチングは実行される。これら2つのインタロックメカ
ニズムは、重複するスヌープの予測可能処理を柔軟性を
もって保証する方法を提供する。
ーの中でスヌープが識別されるように保証するために、
2つのインタロックメカニズムを使用する。第1のイン
タロックは、BGT#が与えられた後、スヌープはSW
END#の後まで阻止されるということを保証する。第
2のインタロックは、スヌープが開始されたならば、ス
ヌープのサービスが終了するまでBGT#を与えること
はできないということを保証する。図30は、BGT#
が活動状態になれば、制御装置12はSWEND#の後
まで全てのスヌープを阻止することを示す。スヌープが
開始され、BGT#の起動前にSNPCYC#が発行さ
れなかった場合には、スヌープは阻止される。図31
は、BGT#の前に起こるスヌープを示す。制御装置1
2は、スヌープを許可したならば、スヌープのサービス
が終了するまでBGT#を無視しても良い。SNPCY
C#が活動状態であるとき、制御装置は常にBGT#を
無視する。スヌープの結果が修正行に対するヒット(M
HITM#は活動状態)であれば、SNPBSY#とM
HITM#の双方が活動状態のままである限り、BGT
#を無視する。この場合、SNPBSY#が非活動状態
になるまでBGT#を保持する又はSNPBSY#が非
活動状態になった後にBGT#を再び起動する働きをす
るのはMBC11である。スヌープの結果が修正行に対
するヒットではない(MHITM#は非活動状態)場合
には、制御装置12はSNPBSY#が活動状態である
ときでもBGT#を受入れることができる。これによ
り、制御装置12が戻し無効化を実行している間にMB
C11はBGT#を起動することによりメモリバスサイ
クルを進行させてゆくことができる。スヌープが遅延し
たときでも、SNPSTB#の起動に伴ってアドレスラ
ッチングは実行される。これら2つのインタロックメカ
ニズムは、重複するスヌープの予測可能処理を柔軟性を
もって保証する方法を提供する。
【0126】行充填/割当てと同時に起こるスヌープの
間に、データの一貫性を確保するためには、次のような
規則を守らなければならない: 1.BGT#に先立ってスヌープが起こった場合、すな
わち、BGT#の前にSNPCYC#が活動状態である
場合、行充填/割当ての中でステールデータを戻さない
のはシステムの働きである。 2.BGT#の後でスヌープが起こった場合、すなわ
ち、BGT#の後でSNPCYC#が活動状態である場
合には、C5はステールデータのキャッシングを回避す
るCPUとのインタロックを実行することによりデータ
の一貫性を確保する。
間に、データの一貫性を確保するためには、次のような
規則を守らなければならない: 1.BGT#に先立ってスヌープが起こった場合、すな
わち、BGT#の前にSNPCYC#が活動状態である
場合、行充填/割当ての中でステールデータを戻さない
のはシステムの働きである。 2.BGT#の後でスヌープが起こった場合、すなわ
ち、BGT#の後でSNPCYC#が活動状態である場
合には、C5はステールデータのキャッシングを回避す
るCPUとのインタロックを実行することによりデータ
の一貫性を確保する。
【0127】F.3.メモリバス制御装置(MBC)イ
ンタフェースの規則 図32は、メモリバスサイクルの進行をキャッシュ制御
装置12の入力信号及び出力信号に関連して示す。キャ
ッシュサイクルを開始するために、制御装置12はCA
DS#信号を発生する。キャッシュアドレスと他のサイ
クルパラメータは、そのサイクルのCNA#又はCRD
Y#の起動まで、CADS#の起動に伴って安定するよ
うに保証される。CNA#又はCRDY#が起動された
後には、これらのパラメータは定義されない。CADS
#の起動中又は起動後に、データが安定していること又
はデータ経路を利用可能であることを保証するCDTS
#信号が起動される。BGT#,KWEND#,SWE
ND#及びCRDY#はCDTS#に応答してMBC1
1により発生される。BGT#とCRDY#はあらゆる
(非スヌープ)サイクルについて要求される。行充填及
び潜在的割当てを伴う書込みサイクルに要求されるKW
END#と、メモリバススヌープの完了を指示するSW
END#は、それらをサンプリングするサイクルについ
てのみ要求される。
ンタフェースの規則 図32は、メモリバスサイクルの進行をキャッシュ制御
装置12の入力信号及び出力信号に関連して示す。キャ
ッシュサイクルを開始するために、制御装置12はCA
DS#信号を発生する。キャッシュアドレスと他のサイ
クルパラメータは、そのサイクルのCNA#又はCRD
Y#の起動まで、CADS#の起動に伴って安定するよ
うに保証される。CNA#又はCRDY#が起動された
後には、これらのパラメータは定義されない。CADS
#の起動中又は起動後に、データが安定していること又
はデータ経路を利用可能であることを保証するCDTS
#信号が起動される。BGT#,KWEND#,SWE
ND#及びCRDY#はCDTS#に応答してMBC1
1により発生される。BGT#とCRDY#はあらゆる
(非スヌープ)サイクルについて要求される。行充填及
び潜在的割当てを伴う書込みサイクルに要求されるKW
END#と、メモリバススヌープの完了を指示するSW
END#は、それらをサンプリングするサイクルについ
てのみ要求される。
【0128】一旦、ピンをサンプリングしてしまえば、
そのサイクルのCRDY#に至るまで、ピンは「ドント
ケア」である。さらに、これらの信号並びに属性MRO
#,MKEN#,MWB/WT#及びDRCTM#は、
サンプリングされているとき、セットアップ時間及び保
持時間に従うだけで良い。パイプライン化サイクルの場
合、サイクル属性(BGT#,KWEND#等)は先行
サイクルのCRDY#の後に始めてサンプリングされ
る。
そのサイクルのCRDY#に至るまで、ピンは「ドント
ケア」である。さらに、これらの信号並びに属性MRO
#,MKEN#,MWB/WT#及びDRCTM#は、
サンプリングされているとき、セットアップ時間及び保
持時間に従うだけで良い。パイプライン化サイクルの場
合、サイクル属性(BGT#,KWEND#等)は先行
サイクルのCRDY#の後に始めてサンプリングされ
る。
【0129】スヌープ−ライトバックサイクルは正規サ
イクルのサブセットである。スヌープ−ライトバックサ
イクルは修正〔M〕状態の行に対するスヌープヒットの
結果として要求される。それらは介入サイクルであり、
CADS#でなくSNPADS#を起動することにより
要求される。図33に示す通り、それらのサイクルで
は、制御装置12はCRDY#の応答のみをサンプリン
グする。介入ライトバックを実行ためにMBC11がバ
スを所有しており且つ他のエージェントはいずれもこの
サイクルをスヌープしないものと仮定する。また、スヌ
ープ−ライトバック中、制御装置12はCNA#を無視
する。
イクルのサブセットである。スヌープ−ライトバックサ
イクルは修正〔M〕状態の行に対するスヌープヒットの
結果として要求される。それらは介入サイクルであり、
CADS#でなくSNPADS#を起動することにより
要求される。図33に示す通り、それらのサイクルで
は、制御装置12はCRDY#の応答のみをサンプリン
グする。介入ライトバックを実行ためにMBC11がバ
スを所有しており且つ他のエージェントはいずれもこの
サイクルをスヌープしないものと仮定する。また、スヌ
ープ−ライトバック中、制御装置12はCNA#を無視
する。
【0130】F.4.LOCK#プロトコル LOCK#は、要求されたメモリサイクルが原子トラン
ザクションに対してメモリバスをロックすべきであるこ
とを指示するCPUバス14からの入力信号である。ロ
ックサイクルはプロセッサ間のタスク同期のために使用
され、従って、ロック要求はメモリバス15へ伝播す
る。CPU LOCK信号に応答して、キャッシュ制御
装置12はKLOCK#と呼ばれる信号を発生する。K
LOCK#は、他のサイクル属性の場合と同様に、CA
DS#の起動に伴って有効になる。
ザクションに対してメモリバスをロックすべきであるこ
とを指示するCPUバス14からの入力信号である。ロ
ックサイクルはプロセッサ間のタスク同期のために使用
され、従って、ロック要求はメモリバス15へ伝播す
る。CPU LOCK信号に応答して、キャッシュ制御
装置12はKLOCK#と呼ばれる信号を発生する。K
LOCK#は、他のサイクル属性の場合と同様に、CA
DS#の起動に伴って有効になる。
【0131】CPU10がLOCK動作を開始すると、
制御装置12は常にメモリバスサイクルを開始する。L
OCKサイクルは制御装置12とCPU10の双方に対
してキャッシュ不可能であるので、情報はキャッシュメ
モリ13を通過してCPU10に至り、MBC11によ
りBRDYが発生される。LOCKされた読取りが
〔M〕状態に対するキャッシュヒットである場合、制御
装置12は受信しているデータを無視し、キャッシュメ
モリ13からデータを供給する(MBC11により供給
されるBRDYに従って)。ロックされた書込みは他の
書込みと同じように通知される。読取りと書込みのLO
CKサイクルは、共に、キャッシュ制御装置12のタグ
状態を決して変化させない。
制御装置12は常にメモリバスサイクルを開始する。L
OCKサイクルは制御装置12とCPU10の双方に対
してキャッシュ不可能であるので、情報はキャッシュメ
モリ13を通過してCPU10に至り、MBC11によ
りBRDYが発生される。LOCKされた読取りが
〔M〕状態に対するキャッシュヒットである場合、制御
装置12は受信しているデータを無視し、キャッシュメ
モリ13からデータを供給する(MBC11により供給
されるBRDYに従って)。ロックされた書込みは他の
書込みと同じように通知される。読取りと書込みのLO
CKサイクルは、共に、キャッシュ制御装置12のタグ
状態を決して変化させない。
【0132】パイプライン化を使用すると、バスにおけ
るKLOCK#信号は1つのロック動作から次のロック
動作まで活動状態のままであることが可能である。MB
Cがロック動作とロック動作との間でバスを放棄するこ
とを望む場合、MBCは書込みと、それに続く読取りサ
イクルを検出しなければならない。メモリバスに対する
全てのCPUロックサイクルは読取りサイクルと共に始
まり、通常は書込みサイクルで終わる。LOCKされた
サイクルの間、MBC11は他のマスターがロック動作
に含まれているデータに対してそのキャッシュ制御装置
をスヌープするのを阻止しなければならない。詳細にい
えば、図34に示すように、MBC11は最初のロック
された転送のBGT#と最後のロックされた転送のSW
END#との間でSNPSTB#を阻止しなければなら
ない。キャッシュ行に対するロックの整列が十分に行わ
れない限り、全てのアドレスに対してスヌープを阻止す
べきである。1つのキャッシュ行にスヌープを束縛でき
る場合には、ロック動作中に他の行をスヌープすること
が可能である。
るKLOCK#信号は1つのロック動作から次のロック
動作まで活動状態のままであることが可能である。MB
Cがロック動作とロック動作との間でバスを放棄するこ
とを望む場合、MBCは書込みと、それに続く読取りサ
イクルを検出しなければならない。メモリバスに対する
全てのCPUロックサイクルは読取りサイクルと共に始
まり、通常は書込みサイクルで終わる。LOCKされた
サイクルの間、MBC11は他のマスターがロック動作
に含まれているデータに対してそのキャッシュ制御装置
をスヌープするのを阻止しなければならない。詳細にい
えば、図34に示すように、MBC11は最初のロック
された転送のBGT#と最後のロックされた転送のSW
END#との間でSNPSTB#を阻止しなければなら
ない。キャッシュ行に対するロックの整列が十分に行わ
れない限り、全てのアドレスに対してスヌープを阻止す
べきである。1つのキャッシュ行にスヌープを束縛でき
る場合には、ロック動作中に他の行をスヌープすること
が可能である。
【0133】F.5.PLOCK#プロトコル Intel80486の擬似ロック出力ピンPLOCK
#は、印加されるとき、現在バストランザクションが完
了に至るまでに2つ以上のバスサイクルを要求すること
を指示する。そのような動作の例としては、浮動小数点
64ビット読取り及び書込みと、128ビットキャッシ
ュ行充填がある。80486CPUはBRDY#が戻さ
れたか否かにかかわらず、トランザクションの最終バス
サイクルに関わるアドレスが駆動され終わるまで、PL
OCK#を活動状態に駆動する。キャッシュ制御装置1
2は、PLOCKEN構成入力(CPLOCK#ピンと
多重化される)を供給することにより、80486 C
PUPLOCK#プロトコルを支援する。RESETで
PLOCKENがハイであると検出されると、CPLO
CK#ピンは書込みサイクルに関する修正80486C
PU PLOCK#(LEN)出力を表す。制御装置1
2は次のようなPLOCK規則を実現する。すなわち、
読取りサイクルは決してCPLOCK#を生成しない。
RESETでPLOCKENがローであると検出されれ
ば、CPLOCK#は生成されず、PLOCK規則は実
施されない。
#は、印加されるとき、現在バストランザクションが完
了に至るまでに2つ以上のバスサイクルを要求すること
を指示する。そのような動作の例としては、浮動小数点
64ビット読取り及び書込みと、128ビットキャッシ
ュ行充填がある。80486CPUはBRDY#が戻さ
れたか否かにかかわらず、トランザクションの最終バス
サイクルに関わるアドレスが駆動され終わるまで、PL
OCK#を活動状態に駆動する。キャッシュ制御装置1
2は、PLOCKEN構成入力(CPLOCK#ピンと
多重化される)を供給することにより、80486 C
PUPLOCK#プロトコルを支援する。RESETで
PLOCKENがハイであると検出されると、CPLO
CK#ピンは書込みサイクルに関する修正80486C
PU PLOCK#(LEN)出力を表す。制御装置1
2は次のようなPLOCK規則を実現する。すなわち、
読取りサイクルは決してCPLOCK#を生成しない。
RESETでPLOCKENがローであると検出されれ
ば、CPLOCK#は生成されず、PLOCK規則は実
施されない。
【0134】図35に示す通り、MBC11はPLOC
Kされたシーケンスの最初の書込みのBGT#と、最後
の書込みのBGT#との間でスヌープを開始させてはな
らない。PLOCKされたヒットサイクルの間、バスア
クティビティがない場合には、制御装置12はPLOC
Kされた書込みサイクルの完了後までスヌープライトバ
ックを阻止する。PLOCKされた動作は、常に、同一
のキャッシュ行に対する2つの書込みサイクルから構成
される。このキャッシュ行は起こりうる4つの状態のい
ずれか1つをとることができる。以下、MESI状態に
及ぼすPLOCKされた動作の効果を説明する。
Kされたシーケンスの最初の書込みのBGT#と、最後
の書込みのBGT#との間でスヌープを開始させてはな
らない。PLOCKされたヒットサイクルの間、バスア
クティビティがない場合には、制御装置12はPLOC
Kされた書込みサイクルの完了後までスヌープライトバ
ックを阻止する。PLOCKされた動作は、常に、同一
のキャッシュ行に対する2つの書込みサイクルから構成
される。このキャッシュ行は起こりうる4つの状態のい
ずれか1つをとることができる。以下、MESI状態に
及ぼすPLOCKされた動作の効果を説明する。
【0135】〔M〕 〔M〕状態に対するPLOCKさ
れた書込みは、介入スヌープが起こることができるよう
になる前に完了する。制御装置12は、この時間中にラ
イトバックを全て遅延させることによりこれを確保する
(MTHIT#とMHITM#は遅延なく生成され
る)。また、第2の書込みを進行させることができるよ
うにAHOLDの起動を遅延させる。介入スヌープはタ
グ状態を変化させるかもしれないが、制御装置12は第
2の書込み動作が〔M〕状態に出会うように保証する。 〔E〕 最初のPLOCKされた書込みは、状態を
〔M〕状態に更新する。介入スヌープは、いずれも、上
記の〔M〕の場合と同じように処理される。 〔S〕 最初のPLOCKされた書込みは〔S〕をヒッ
トすると、ライトスルーになる。C5は更新(〔E〕へ
のタグ変化)を阻止するので、第2の書込みも〔S〕に
出会う。更新は第2の書込みの後に起こる。PALLC
#は双方の書込みについて非活動状態である。介入スヌ
ープ無効化が〔S〕を〔I〕に変化させたならば、どの
サイクルについても割当ては許容されないであろう。 〔I〕 〔I〕状態に対するPLOCKされた書込みシ
ーケンスは、共にPLOCKされる2つのメモリバス書
込みサイクルを生成する。制御装置12は第1の書込み
で割当てを阻止するが、第2の書込みでは割込みを許容
する。これにより、PLOCKされた書込みサイクルで
オーナーシップのための読取りを実現するという事態が
阻止される。制御装置12は割当てを阻止するが、PA
LLC#は第1の書込みで活動状態に駆動される。その
結果、外部追跡論理はPLOCKされた〔S〕状態及び
〔I〕状態へのアクセスを追跡することができる。
れた書込みは、介入スヌープが起こることができるよう
になる前に完了する。制御装置12は、この時間中にラ
イトバックを全て遅延させることによりこれを確保する
(MTHIT#とMHITM#は遅延なく生成され
る)。また、第2の書込みを進行させることができるよ
うにAHOLDの起動を遅延させる。介入スヌープはタ
グ状態を変化させるかもしれないが、制御装置12は第
2の書込み動作が〔M〕状態に出会うように保証する。 〔E〕 最初のPLOCKされた書込みは、状態を
〔M〕状態に更新する。介入スヌープは、いずれも、上
記の〔M〕の場合と同じように処理される。 〔S〕 最初のPLOCKされた書込みは〔S〕をヒッ
トすると、ライトスルーになる。C5は更新(〔E〕へ
のタグ変化)を阻止するので、第2の書込みも〔S〕に
出会う。更新は第2の書込みの後に起こる。PALLC
#は双方の書込みについて非活動状態である。介入スヌ
ープ無効化が〔S〕を〔I〕に変化させたならば、どの
サイクルについても割当ては許容されないであろう。 〔I〕 〔I〕状態に対するPLOCKされた書込みシ
ーケンスは、共にPLOCKされる2つのメモリバス書
込みサイクルを生成する。制御装置12は第1の書込み
で割当てを阻止するが、第2の書込みでは割込みを許容
する。これにより、PLOCKされた書込みサイクルで
オーナーシップのための読取りを実現するという事態が
阻止される。制御装置12は割当てを阻止するが、PA
LLC#は第1の書込みで活動状態に駆動される。その
結果、外部追跡論理はPLOCKされた〔S〕状態及び
〔I〕状態へのアクセスを追跡することができる。
【0136】F.6.連続サイクル 二次キャッシュ行はCPUキャッシュ行より長くなって
も良いので、現時点で充填中である行に対して読取りミ
スが起こる状況が存在する。このようなことが起これ
ば、制御装置12はそれを読取りヒットとして取扱う
が、行充填のためにCRDY#の後にデータを供給す
る。データはキャッシュSRAM13から供給される。
も良いので、現時点で充填中である行に対して読取りミ
スが起こる状況が存在する。このようなことが起これ
ば、制御装置12はそれを読取りヒットとして取扱う
が、行充填のためにCRDY#の後にデータを供給す
る。データはキャッシュSRAM13から供給される。
【0137】F.7.CPU/メモリバス同時実行 キャッシュ制御装置12はCPUバスとメモリバスとの
並行動作を可能にする。CPUバスサイクルは局所的に
制御装置12によりサービスされる(ヒット)か、又は
メモリバスサービスを要求する。CPUサイクルがメモ
リバスサービスを要求するたびに、そのサイクルはメモ
リバス15で実行されるようにスケジューリングされ、
CPUバス14のアクティビティはそのまま継続でき
る。同時実行の例としては、スヌープとCPUバス動
作、CPUバス動作及びメモリバス動作を伴う通知書込
み、長い行の充填(二次キャッシュの行がCPUの行よ
り長い場合)に引き続くCPUバス動作、そして、CP
Uバス動作及びメモリバス動作を伴う割当てと置換えが
ある。場合によっては、データの一貫性とデッドロック
の阻止が同時実行を妨げることがある。現在メモリバス
サイクルがタグの状態を変化させ、そのために、次のC
PUサイクル要求に影響を及ぼすときに、問題が起こる
と思われる。そのような場合には、データの一貫性を確
保するために、制御装置12は同時実行を禁止する。制
御装置12によるそれらの場合の処理はMBC11とは
完全に無関係である。
並行動作を可能にする。CPUバスサイクルは局所的に
制御装置12によりサービスされる(ヒット)か、又は
メモリバスサービスを要求する。CPUサイクルがメモ
リバスサービスを要求するたびに、そのサイクルはメモ
リバス15で実行されるようにスケジューリングされ、
CPUバス14のアクティビティはそのまま継続でき
る。同時実行の例としては、スヌープとCPUバス動
作、CPUバス動作及びメモリバス動作を伴う通知書込
み、長い行の充填(二次キャッシュの行がCPUの行よ
り長い場合)に引き続くCPUバス動作、そして、CP
Uバス動作及びメモリバス動作を伴う割当てと置換えが
ある。場合によっては、データの一貫性とデッドロック
の阻止が同時実行を妨げることがある。現在メモリバス
サイクルがタグの状態を変化させ、そのために、次のC
PUサイクル要求に影響を及ぼすときに、問題が起こる
と思われる。そのような場合には、データの一貫性を確
保するために、制御装置12は同時実行を禁止する。制
御装置12によるそれらの場合の処理はMBC11とは
完全に無関係である。
【0138】G.二次キャッシュ制御装置のサイクルの
タイミングの例 尚、キャッシュ制御装置12により生成され、また、制
御装置12に印加される数多くの制御信号と属性信号は
多様な二次キャッシュメモリ動作モードを処理できるこ
とに注意すべきである。図36〜図41は、その多様性
を例示するタイミング図である。図36は一連の読取り
ヒットサイクルを表し、MRUヒットサイクル(A,
B,C)と、MRUミスサイクル(D,E,F)とを示
す。第1のサイクル(クロック1からクロック2)はト
ランザクション1回(長さ=1)の読取りサイクルであ
る。制御装置12はキャッシュディレクトリ(タグRA
M)のルックアップを実行し(クロック1〜2)、MR
Uヒットによってヒットを検出する。同時に、キャッシ
ュSRAM13はアレイをアクセスし、SRAM13C
PUバッファを選択されたセットに対応する両方向の内
容でロードする。その内容方向マルチプレクサはMRU
ヒットにより指示される方向(同様に選択されたセット
に対応する)を選択する。サンプリングされてローであ
るW/R#はSRAM13の出力をCPUバス14へイ
ネーブルする。
タイミングの例 尚、キャッシュ制御装置12により生成され、また、制
御装置12に印加される数多くの制御信号と属性信号は
多様な二次キャッシュメモリ動作モードを処理できるこ
とに注意すべきである。図36〜図41は、その多様性
を例示するタイミング図である。図36は一連の読取り
ヒットサイクルを表し、MRUヒットサイクル(A,
B,C)と、MRUミスサイクル(D,E,F)とを示
す。第1のサイクル(クロック1からクロック2)はト
ランザクション1回(長さ=1)の読取りサイクルであ
る。制御装置12はキャッシュディレクトリ(タグRA
M)のルックアップを実行し(クロック1〜2)、MR
Uヒットによってヒットを検出する。同時に、キャッシ
ュSRAM13はアレイをアクセスし、SRAM13C
PUバッファを選択されたセットに対応する両方向の内
容でロードする。その内容方向マルチプレクサはMRU
ヒットにより指示される方向(同様に選択されたセット
に対応する)を選択する。サンプリングされてローであ
るW/R#はSRAM13の出力をCPUバス14へイ
ネーブルする。
【0139】制御装置12は、MRUヒットを検出する
ので、ADS#の直後にBRDY#を起動する。すなわ
ち、待ち状態ゼロのアクセスである。BLAST#信号
はクロック2の終わりまでに(BRDY#と同時に)S
RAM13により活動状態であるとサンプリングされ
て、サイクルの終わりを指示する。クロック3では、C
PU10はトランザクション2回(浮動少数点読取り)
のバースト長さを伴うADS#(サイクルB)を発行
し、クロック6〜10においては、CPU行充填(又は
コード先取り)を実行する(長さ=4)。クロック11
では、CPU10は新たなADS#を発行する(サイク
ルD)。MRUミスのために、制御装置12は正しいW
AYによってWRARR#を起動する(クロック1
2)。WRARR#をサンプリングして活動状態である
と、SRAM13はWAY信号により提示される方向情
報によってその内部MRUヒットを更新する。この情報
は、また、SRAM13により、そのCPUバッファか
ら正しい方向に対応するデータを選択するためにも使用
される。SRAM13はクロック13の終わりまでCP
Uバス14を駆動する。また、MRUミスのために待ち
状態が挿入される(クロック12)。
ので、ADS#の直後にBRDY#を起動する。すなわ
ち、待ち状態ゼロのアクセスである。BLAST#信号
はクロック2の終わりまでに(BRDY#と同時に)S
RAM13により活動状態であるとサンプリングされ
て、サイクルの終わりを指示する。クロック3では、C
PU10はトランザクション2回(浮動少数点読取り)
のバースト長さを伴うADS#(サイクルB)を発行
し、クロック6〜10においては、CPU行充填(又は
コード先取り)を実行する(長さ=4)。クロック11
では、CPU10は新たなADS#を発行する(サイク
ルD)。MRUミスのために、制御装置12は正しいW
AYによってWRARR#を起動する(クロック1
2)。WRARR#をサンプリングして活動状態である
と、SRAM13はWAY信号により提示される方向情
報によってその内部MRUヒットを更新する。この情報
は、また、SRAM13により、そのCPUバッファか
ら正しい方向に対応するデータを選択するためにも使用
される。SRAM13はクロック13の終わりまでCP
Uバス14を駆動する。また、MRUミスのために待ち
状態が挿入される(クロック12)。
【0140】クロック14〜23(サイクルE,F)に
は、MRUミスを伴うトランザクション2回と、トラン
ザクション4回の読取りヒットを示す。尚、BLE#は
あらゆるサイクルについてADS#の直後に非活動化さ
れる。全てのサイクルはヒットであるので、これは次の
クロックでは再び起動される。図37は、二次キャッシ
ュミスし、キャッシュ内の汚れていない(たとえば、ク
リーンな又は空の)行を置換えるCPUの開始読取りサ
イクルを示す。このようなサイクルでは、制御装置12
はMBC11にメモリバス15においてキャッシュ行充
填を実行するように命令する。キャッシュ行充填は主メ
モリからのキャッシュ行1行分の読取りである。次に、
その行をSRAM13に書込み、データを要求に応じて
CPU10へ転送する。主メモリから取出した行が有効
未修正状態(〔E〕又は〔S〕)にある二次キャッシュ
行と置換わると、置換えられたデータもCPUの一次レ
ベルキャッシュから取除かれるように保証して、包含特
性を維持するために、CPUバス14で戻し無効化サイ
クルを実行する。
は、MRUミスを伴うトランザクション2回と、トラン
ザクション4回の読取りヒットを示す。尚、BLE#は
あらゆるサイクルについてADS#の直後に非活動化さ
れる。全てのサイクルはヒットであるので、これは次の
クロックでは再び起動される。図37は、二次キャッシ
ュミスし、キャッシュ内の汚れていない(たとえば、ク
リーンな又は空の)行を置換えるCPUの開始読取りサ
イクルを示す。このようなサイクルでは、制御装置12
はMBC11にメモリバス15においてキャッシュ行充
填を実行するように命令する。キャッシュ行充填は主メ
モリからのキャッシュ行1行分の読取りである。次に、
その行をSRAM13に書込み、データを要求に応じて
CPU10へ転送する。主メモリから取出した行が有効
未修正状態(〔E〕又は〔S〕)にある二次キャッシュ
行と置換わると、置換えられたデータもCPUの一次レ
ベルキャッシュから取除かれるように保証して、包含特
性を維持するために、CPUバス14で戻し無効化サイ
クルを実行する。
【0141】CPUは、キャッシュタグ状態がルックア
ップされている二次キャッシュに対する読取りサイクル
を開始する。制御装置12は、サイクルがキャッシュミ
スであると確定すると、キャッシュ行充填動作をスケジ
ューリングするために、CADS#(クロック2)及び
関連するサイクル制御信号をMBC11へ発行する(た
とえば、CW/R#,CM/IO#,CD/C#,RD
YSRC,MCACHE#)。MCACHE#は活動状
態であって、読取りミスが潜在的に制御装置12により
キャッシュ可能であることを指示する。また、RDYS
RCは活動状態であって、MBC11がCPUキャッシ
ュコアにBRDY#を供給しなければならないことを指
示する。
ップされている二次キャッシュに対する読取りサイクル
を開始する。制御装置12は、サイクルがキャッシュミ
スであると確定すると、キャッシュ行充填動作をスケジ
ューリングするために、CADS#(クロック2)及び
関連するサイクル制御信号をMBC11へ発行する(た
とえば、CW/R#,CM/IO#,CD/C#,RD
YSRC,MCACHE#)。MCACHE#は活動状
態であって、読取りミスが潜在的に制御装置12により
キャッシュ可能であることを指示する。また、RDYS
RCは活動状態であって、MBC11がCPUキャッシ
ュコアにBRDY#を供給しなければならないことを指
示する。
【0142】メモリバスアドレス(MSET〔10:
0〕,MTAG〔11:0〕,MCFA〔6:0〕)は
CADS#に伴って有効であり(この例では2つのサイ
クルについてクロック2及び13),CNA#が制御装
置12により活動状態であるとしてサンプリングされた
(クロック5及び16)後まで有効なままである。必要
に応じてアドレスを保持するためにMALE及びMBA
LEを使用しても良い。MBC11はメモリバスの順序
を指定し、起動されたBGT#を戻して(クロック
3)、サイクルがメモリバスにおいて完了するように保
証されていることを指示する。制御装置12は、起動状
態のBGT#をサンプリングすると、メモリバス15に
おけるそのサイクルを終了させなければならない。この
時点に先立って、別のキャッシュからのスヌープヒット
によりサイクルを打切ることができる。CNA#は、新
たなメモリバスサイクルをスケジューリングする準備が
整っていることを指示するために、MBC11により起
動される(クロック4)。尚、CNA#起動後、サイク
ル制御信号は有効であることを保証されない。
0〕,MTAG〔11:0〕,MCFA〔6:0〕)は
CADS#に伴って有効であり(この例では2つのサイ
クルについてクロック2及び13),CNA#が制御装
置12により活動状態であるとしてサンプリングされた
(クロック5及び16)後まで有効なままである。必要
に応じてアドレスを保持するためにMALE及びMBA
LEを使用しても良い。MBC11はメモリバスの順序
を指定し、起動されたBGT#を戻して(クロック
3)、サイクルがメモリバスにおいて完了するように保
証されていることを指示する。制御装置12は、起動状
態のBGT#をサンプリングすると、メモリバス15に
おけるそのサイクルを終了させなければならない。この
時点に先立って、別のキャッシュからのスヌープヒット
によりサイクルを打切ることができる。CNA#は、新
たなメモリバスサイクルをスケジューリングする準備が
整っていることを指示するために、MBC11により起
動される(クロック4)。尚、CNA#起動後、サイク
ル制御信号は有効であることを保証されない。
【0143】MBC11は、サイクルのキャッシュ可能
性属性を確定すると、それに従ってMKEN#信号を駆
動する。また、この時点でMBC11はKWEND#信
号を駆動して、キャッシュ可能性ウィンドウの終わりを
指示する。続いて、制御装置12がMKEN#信号をサ
ンプリングする。また、この時点でMBC11はKWE
ND#信号を駆動して、キャッシュ可能性ウィンドウの
終わりを指示する。制御装置12はKWEND#の間に
MKEN#をサンプリングして(クロック5)、サイク
ルが真にキャッシュ可能であることを確定する。メモリ
バスでスヌープウィンドウが終了すると、MBC11は
SWEND#を起動する。制御装置12はSWEND#
の間にMWB/WT#及びDRCTM#をサンプリング
して(クロック7)、一貫性プロトコルに従ってキャッ
シュタグの状態を更新する。スヌープウィンドウの閉鎖
によって、さらに、MBC11は二次キャッシュメモリ
サイクルバッファに記憶されていたデータをCPU10
に供給し始めることができる。MBC11はCPU10
にBRDY#を供給する(クロック7〜10)。
性属性を確定すると、それに従ってMKEN#信号を駆
動する。また、この時点でMBC11はKWEND#信
号を駆動して、キャッシュ可能性ウィンドウの終わりを
指示する。続いて、制御装置12がMKEN#信号をサ
ンプリングする。また、この時点でMBC11はKWE
ND#信号を駆動して、キャッシュ可能性ウィンドウの
終わりを指示する。制御装置12はKWEND#の間に
MKEN#をサンプリングして(クロック5)、サイク
ルが真にキャッシュ可能であることを確定する。メモリ
バスでスヌープウィンドウが終了すると、MBC11は
SWEND#を起動する。制御装置12はSWEND#
の間にMWB/WT#及びDRCTM#をサンプリング
して(クロック7)、一貫性プロトコルに従ってキャッ
シュタグの状態を更新する。スヌープウィンドウの閉鎖
によって、さらに、MBC11は二次キャッシュメモリ
サイクルバッファに記憶されていたデータをCPU10
に供給し始めることができる。MBC11はCPU10
にBRDY#を供給する(クロック7〜10)。
【0144】制御装置12はクロック13で新たなCA
DS#を発行するが、これも二次キャッシュをミスす
る。制御装置12は起動状態のCNA#を既にサンプリ
ングしてしまっている(クロック4)ので、現在サイク
ルのCRDY#を受信するのに先立って新たなCADS
#を発行する(すなわち、このサイクルはMBC11の
内部でパイプライン化される)。尚、サイクルのサイク
ル進行信号(BGT#,CNA#,KWEND#,SW
END#)をサンプリングして起動されていれば、その
サイクルのCRDY#が現れるまで、制御装置12はそ
れらの信号を無視する。制御装置12はサイクル進行信
号をパイプライン化しない(すなわち、制御装置は現在
メモリバスサイクルのCRDY#の後でそれらの信号を
再度サンプリングしない)。第1のサイクルは、CRD
Y#がMBC11により活動状態に駆動されたとき(ク
ロック14)に終了する。キャッシュメモリ13のメモ
リサイクルバッファにあるデータがキャッシュSRAM
にロードされるのは、この時点である。
DS#を発行するが、これも二次キャッシュをミスす
る。制御装置12は起動状態のCNA#を既にサンプリ
ングしてしまっている(クロック4)ので、現在サイク
ルのCRDY#を受信するのに先立って新たなCADS
#を発行する(すなわち、このサイクルはMBC11の
内部でパイプライン化される)。尚、サイクルのサイク
ル進行信号(BGT#,CNA#,KWEND#,SW
END#)をサンプリングして起動されていれば、その
サイクルのCRDY#が現れるまで、制御装置12はそ
れらの信号を無視する。制御装置12はサイクル進行信
号をパイプライン化しない(すなわち、制御装置は現在
メモリバスサイクルのCRDY#の後でそれらの信号を
再度サンプリングしない)。第1のサイクルは、CRD
Y#がMBC11により活動状態に駆動されたとき(ク
ロック14)に終了する。キャッシュメモリ13のメモ
リサイクルバッファにあるデータがキャッシュSRAM
にロードされるのは、この時点である。
【0145】キャッシュ制御装置のメモリアドレスラッ
チ21のイネーブル信号(MALE及びMBALE)
は、アドレスラッチをフロースルーモードに置くため
に、MBC11により起動されたままであっても良い。
制御装置12が現在バスマスターである場合、MBC1
1によりメモリアドレス出力イネーブル信号(MAOE
#及びMBAOE#)を起動すべきである。データピン
を入力ピンとして使用できるようにするためには、MD
OE#は非活動状態でなければならない。アドレスがメ
モリバスへ送り出されてからしばらくして、主メモリか
らC8キャッシュSRAM13へデータが供給される。
クロックメモリバスモードの場合、MBRDY#のサン
プリングを可能にし且つ転送のためにMZBT#をラッ
チするために、MSEL#はMBC11により活動状態
に駆動される(クロック4)。MZBT#は、MSEL
#が非活動状態であるあらゆるMCLK端でサンプリン
グされる。制御装置12によりMSEL#が活動状態で
あるとサンプリングされると、先のMCLKでサンプリ
ングされたMZBT#の値を次の転送のために使用す
る。メモリバーストカウンタを増分させると共に、デー
タを二次キャッシュメモリサイクルバッファに導入する
ために、クロック4〜6においてMBRDY#はMBC
11により活動状態に駆動される。MBC11は、メモ
リバスにおける現在サイクルを終了させ且つ新たなサイ
クルに備えてメモリサイクルバッファを切換えるため
に、起動状態にMEOC#を駆動する(クロック7)。
この時点で(MEOC#が駆動されたものとしてサンプ
リングされ、MSEL#はローのままである)、新たな
転送のためにMZBT#をラッチする。
チ21のイネーブル信号(MALE及びMBALE)
は、アドレスラッチをフロースルーモードに置くため
に、MBC11により起動されたままであっても良い。
制御装置12が現在バスマスターである場合、MBC1
1によりメモリアドレス出力イネーブル信号(MAOE
#及びMBAOE#)を起動すべきである。データピン
を入力ピンとして使用できるようにするためには、MD
OE#は非活動状態でなければならない。アドレスがメ
モリバスへ送り出されてからしばらくして、主メモリか
らC8キャッシュSRAM13へデータが供給される。
クロックメモリバスモードの場合、MBRDY#のサン
プリングを可能にし且つ転送のためにMZBT#をラッ
チするために、MSEL#はMBC11により活動状態
に駆動される(クロック4)。MZBT#は、MSEL
#が非活動状態であるあらゆるMCLK端でサンプリン
グされる。制御装置12によりMSEL#が活動状態で
あるとサンプリングされると、先のMCLKでサンプリ
ングされたMZBT#の値を次の転送のために使用す
る。メモリバーストカウンタを増分させると共に、デー
タを二次キャッシュメモリサイクルバッファに導入する
ために、クロック4〜6においてMBRDY#はMBC
11により活動状態に駆動される。MBC11は、メモ
リバスにおける現在サイクルを終了させ且つ新たなサイ
クルに備えてメモリサイクルバッファを切換えるため
に、起動状態にMEOC#を駆動する(クロック7)。
この時点で(MEOC#が駆動されたものとしてサンプ
リングされ、MSEL#はローのままである)、新たな
転送のためにMZBT#をラッチする。
【0146】クロック13〜15では、二次キャッシュ
メモリサイクルバッファへデータを読出すために、MB
RDY#はMBC11により活動状態に駆動される。メ
モリバスにおける第2の読取りミスサイクルを終了させ
且つ新たなサイクルに備えてメモリサイクルバッファを
切換えるために、MBC11はMEOC#を駆動する
(クロック16)。ストローブメモリバスモードの場合
には、MISTB動作を可能にし且つ転送のためにMZ
BT#(MSEL#の立上がり端で)をラッチするため
に、MSEL#はMBC11により活動状態に駆動され
る(クロック4)。メモリバーストカウンタを増分させ
ると共に、二次キャッシュメモリサイクルバッファにデ
ータを導入するために、クロック5〜7でMISTBを
トグルする。尚、MISTBは立上がり端と立下がり端
の双方でメモリバスデータをラッチする。MBC11
は、メモリバス15における現在サイクルを終了させ且
つ新たなサイクルに備えてメモリサイクルバッファを切
換えるために、起動状態にMEOC#を駆動する(クロ
ック8)。この時点で、MEOC#の立下がり端で次の
サイクルのためにMABT#をサンプリングする。
メモリサイクルバッファへデータを読出すために、MB
RDY#はMBC11により活動状態に駆動される。メ
モリバスにおける第2の読取りミスサイクルを終了させ
且つ新たなサイクルに備えてメモリサイクルバッファを
切換えるために、MBC11はMEOC#を駆動する
(クロック16)。ストローブメモリバスモードの場合
には、MISTB動作を可能にし且つ転送のためにMZ
BT#(MSEL#の立上がり端で)をラッチするため
に、MSEL#はMBC11により活動状態に駆動され
る(クロック4)。メモリバーストカウンタを増分させ
ると共に、二次キャッシュメモリサイクルバッファにデ
ータを導入するために、クロック5〜7でMISTBを
トグルする。尚、MISTBは立上がり端と立下がり端
の双方でメモリバスデータをラッチする。MBC11
は、メモリバス15における現在サイクルを終了させ且
つ新たなサイクルに備えてメモリサイクルバッファを切
換えるために、起動状態にMEOC#を駆動する(クロ
ック8)。この時点で、MEOC#の立下がり端で次の
サイクルのためにMABT#をサンプリングする。
【0147】二次メモリサイクルバッファへデータを読
出すために、MBC11によりMISTBをトグルする
(クロック15〜17)。MBC11は、メモリバスに
おける第2の読取りミスサイクルを終了させると共に、
新たなサイクルに備えてサイクルバッファを切換えるた
めに、MEOC#を起動する(クロック18)。図38
は、二次キャッシュをミスし且つ修正行の置換えを要求
する(たとえば、タグ置換え、行/セクター=1,行比
=1)CPU読取りサイクルを示す。このようなサイク
ルでは、制御装置12はMBC11にメモリバス15に
おいてキャッシュ行充填を実行することを命令し、キャ
ッシュSRAM13には、そのライトバックバッファを
置換えられなければならない行に対応するアレイ記憶場
所の内容によって充填することを命令し、且つ一次レベ
ルキャッシュと二次レベルキャッシュの一貫性を維持す
るためにCPU10に対して戻し無効化を実行する。キ
ャッシュ行充填が完了すると、二次キャッシュは置換え
られた行の内容をSRAM13のライトバックバッファ
から主メモリへライトバックする。
出すために、MBC11によりMISTBをトグルする
(クロック15〜17)。MBC11は、メモリバスに
おける第2の読取りミスサイクルを終了させると共に、
新たなサイクルに備えてサイクルバッファを切換えるた
めに、MEOC#を起動する(クロック18)。図38
は、二次キャッシュをミスし且つ修正行の置換えを要求
する(たとえば、タグ置換え、行/セクター=1,行比
=1)CPU読取りサイクルを示す。このようなサイク
ルでは、制御装置12はMBC11にメモリバス15に
おいてキャッシュ行充填を実行することを命令し、キャ
ッシュSRAM13には、そのライトバックバッファを
置換えられなければならない行に対応するアレイ記憶場
所の内容によって充填することを命令し、且つ一次レベ
ルキャッシュと二次レベルキャッシュの一貫性を維持す
るためにCPU10に対して戻し無効化を実行する。キ
ャッシュ行充填が完了すると、二次キャッシュは置換え
られた行の内容をSRAM13のライトバックバッファ
から主メモリへライトバックする。
【0148】CPUは二次キャッシュに対して読取りサ
イクルを開始し、そこで、キャッシュタグの状態をルッ
クアップする。制御装置12は、サイクルをキャッシュ
ミスであると確定すると、キャッシュ行充填動作をスケ
ジューリングするために、MBC11へCADS#を発
行する(クロック1)と共に、関連するサイクル制御信
号(たとえば、CW/R#,CM/IO#,CD/C
#,RDYSRC,MCACHE#)を発行する。MC
ACHE#は活動状態であって、MBC11がCPU1
0にBRDY#を供給しなければならないことを指示す
る。メモリバスアドレス(MSET〔10:0〕,MT
AG〔11:0〕,MCFA〔6:0〕)はCADS#
に伴って有効であり(この例では2つのサイクルについ
てクロック1及び5),制御装置12によりCNA#が
サンプリングされて活動状態である(クロック4及び1
0)まで有効なままである。必要に応じてアドレスを保
持するために、MALEとMBALEを使用しても良
い。
イクルを開始し、そこで、キャッシュタグの状態をルッ
クアップする。制御装置12は、サイクルをキャッシュ
ミスであると確定すると、キャッシュ行充填動作をスケ
ジューリングするために、MBC11へCADS#を発
行する(クロック1)と共に、関連するサイクル制御信
号(たとえば、CW/R#,CM/IO#,CD/C
#,RDYSRC,MCACHE#)を発行する。MC
ACHE#は活動状態であって、MBC11がCPU1
0にBRDY#を供給しなければならないことを指示す
る。メモリバスアドレス(MSET〔10:0〕,MT
AG〔11:0〕,MCFA〔6:0〕)はCADS#
に伴って有効であり(この例では2つのサイクルについ
てクロック1及び5),制御装置12によりCNA#が
サンプリングされて活動状態である(クロック4及び1
0)まで有効なままである。必要に応じてアドレスを保
持するために、MALEとMBALEを使用しても良
い。
【0149】MBC11はメモリバスの順序を指定し、
起動状態のBGT#を戻して(クロック2)、サイクル
がメモリバス15において完了するように保証されてい
ることを指示する。この時点で、SRAM13のライト
バックバッファは置換えるべき行によって予備充填され
る。制御装置12は、起動されているBGT#をサンプ
リングすると、メモリバス15におけるそのサイクルを
終了させなければならない。この時点に先立って、別の
キャッシュからのスヌープヒットによりサイクルを打切
ることができる。CNA#は、新たなメモリバスサイク
ルをスケジューリングする準備が整ったことを指示する
ために、MBC11により起動される(クロック3)。
尚、CNA#の起動後、サイクル制御信号は有効である
ことを保証されない。MBC11は、サイクルのキャッ
シュ可能性属性を確定したとき、それに応じてMKEN
#信号を駆動する。この時点でKWEND#信号をも駆
動して、キャッシュ可能性ウィンドウの終わりを指示す
る。制御装置12はKWEND#の間にKWEND#
(クロック4)をサンプリングして、サイクルが真にキ
ャッシュ可能であることを判定する。
起動状態のBGT#を戻して(クロック2)、サイクル
がメモリバス15において完了するように保証されてい
ることを指示する。この時点で、SRAM13のライト
バックバッファは置換えるべき行によって予備充填され
る。制御装置12は、起動されているBGT#をサンプ
リングすると、メモリバス15におけるそのサイクルを
終了させなければならない。この時点に先立って、別の
キャッシュからのスヌープヒットによりサイクルを打切
ることができる。CNA#は、新たなメモリバスサイク
ルをスケジューリングする準備が整ったことを指示する
ために、MBC11により起動される(クロック3)。
尚、CNA#の起動後、サイクル制御信号は有効である
ことを保証されない。MBC11は、サイクルのキャッ
シュ可能性属性を確定したとき、それに応じてMKEN
#信号を駆動する。この時点でKWEND#信号をも駆
動して、キャッシュ可能性ウィンドウの終わりを指示す
る。制御装置12はKWEND#の間にKWEND#
(クロック4)をサンプリングして、サイクルが真にキ
ャッシュ可能であることを判定する。
【0150】メモリバス15においてスヌープウィンド
ウが終了したとき、MBC11はSWEND#を起動す
る(クロック6)。スヌープウィンドウの閉鎖によっ
て、MBC11はSRAM13のメモリサイクルバッフ
ァに記憶されていたデータをCPUに供給し始めること
ができる。MBC11は、読取りサイクルをサービスす
るために、BRDY#をCPU10に供給する(クロッ
ク6〜9)。尚、MSEL#の起動の直後にデータを二
次キャッシュに供給しても良く、SWEND#を待つ必
要はない。メモリバス15で制御装置12はライトバッ
ク(WB)サイクルを発行する。クロック3で活動状態
のCNA#をサンプリングすると、制御装置12はライ
トバックのCADS#(同様にCDTS#)を発行する
(クロック5)。MBC11は、起動状態であるMCA
CHE#をサンプリングすることにより、これがライト
バックサイクルであり、CPU10の開始書込みサイク
ルではないことを知る。これにより、MBC11は何回
のデータ転送が必要かを知る。
ウが終了したとき、MBC11はSWEND#を起動す
る(クロック6)。スヌープウィンドウの閉鎖によっ
て、MBC11はSRAM13のメモリサイクルバッフ
ァに記憶されていたデータをCPUに供給し始めること
ができる。MBC11は、読取りサイクルをサービスす
るために、BRDY#をCPU10に供給する(クロッ
ク6〜9)。尚、MSEL#の起動の直後にデータを二
次キャッシュに供給しても良く、SWEND#を待つ必
要はない。メモリバス15で制御装置12はライトバッ
ク(WB)サイクルを発行する。クロック3で活動状態
のCNA#をサンプリングすると、制御装置12はライ
トバックのCADS#(同様にCDTS#)を発行する
(クロック5)。MBC11は、起動状態であるMCA
CHE#をサンプリングすることにより、これがライト
バックサイクルであり、CPU10の開始書込みサイク
ルではないことを知る。これにより、MBC11は何回
のデータ転送が必要かを知る。
【0151】読取りミスサイクルのCRDY#(クロッ
ク8)の後、MBC11によりライトバックのBGT
#,CNA#及びKWEND#は起動状態であるとサン
プリングされる(クロック9)。この時点で、制御装置
12は新たな(無関係の)メモリバスサイクルに備えて
再びADS#を発行しても良い。また、キャッシュメモ
リサイクルバッファのデータをSRAMにロードする。
主メモリへライトバックすべきデータはキャッシュSR
AM13のライトバックバッファにある。ライトバック
サイクルのスヌープウィンドウはクロック11でMBC
11により閉鎖され、サイクルはクロック13で起動状
態であるとサンプリングされるCRDY#によって終了
する。アドレスラッチをフロースルーモードにするため
に、メモリアドレスラッチイネーブル(MALE及びM
BALE)はMBC11により起動されたままであって
も良い。制御装置12が現在バスマスターである場合、
MBC11によりメモリアドレス出力イネーブル信号
(MAOE#及びMBAOE#)を起動すべきである。
ク8)の後、MBC11によりライトバックのBGT
#,CNA#及びKWEND#は起動状態であるとサン
プリングされる(クロック9)。この時点で、制御装置
12は新たな(無関係の)メモリバスサイクルに備えて
再びADS#を発行しても良い。また、キャッシュメモ
リサイクルバッファのデータをSRAMにロードする。
主メモリへライトバックすべきデータはキャッシュSR
AM13のライトバックバッファにある。ライトバック
サイクルのスヌープウィンドウはクロック11でMBC
11により閉鎖され、サイクルはクロック13で起動状
態であるとサンプリングされるCRDY#によって終了
する。アドレスラッチをフロースルーモードにするため
に、メモリアドレスラッチイネーブル(MALE及びM
BALE)はMBC11により起動されたままであって
も良い。制御装置12が現在バスマスターである場合、
MBC11によりメモリアドレス出力イネーブル信号
(MAOE#及びMBAOE#)を起動すべきである。
【0152】アドレスがメモリバス15へ送り出されて
からしばらくして、主メモリからキャッシュSRAM1
3へデータを供給する。クロックメモリバスモードの場
合、MBRDY#のサンプリングを可能にし且つ転送の
ためにMZBT#をラッチするために、MBC11によ
りMSEL#を活動状態に駆動する(クロック3)。M
ZBT#は、MSEL#が非活動状態である全てのMC
LK端でサンプリングされる。制御装置12によりMS
EL#をサンプリングして活動状態であると、先のMC
LKでサンプリングしたMZBT#の値を次の転送時に
使用する。クロック3〜5では、メモリバーストカウン
タを増分させると共に、データを二次キャッシュメモリ
サイクルバッファに導入するために、MBC11により
MBRDY#を活動状態に駆動する。MBC11は、メ
モリバス15における現在サイクルを終了させ且つ新た
なサイクルに備えてメモリサイクルバッファを切換える
ために、MEOC#を起動状態に駆動する(クロック
6)。この時点で(MEOC#をサンプリングして起動
状態であるとき)、次の転送に備えてMZBT#をラッ
チする。
からしばらくして、主メモリからキャッシュSRAM1
3へデータを供給する。クロックメモリバスモードの場
合、MBRDY#のサンプリングを可能にし且つ転送の
ためにMZBT#をラッチするために、MBC11によ
りMSEL#を活動状態に駆動する(クロック3)。M
ZBT#は、MSEL#が非活動状態である全てのMC
LK端でサンプリングされる。制御装置12によりMS
EL#をサンプリングして活動状態であると、先のMC
LKでサンプリングしたMZBT#の値を次の転送時に
使用する。クロック3〜5では、メモリバーストカウン
タを増分させると共に、データを二次キャッシュメモリ
サイクルバッファに導入するために、MBC11により
MBRDY#を活動状態に駆動する。MBC11は、メ
モリバス15における現在サイクルを終了させ且つ新た
なサイクルに備えてメモリサイクルバッファを切換える
ために、MEOC#を起動状態に駆動する(クロック
6)。この時点で(MEOC#をサンプリングして起動
状態であるとき)、次の転送に備えてMZBT#をラッ
チする。
【0153】MBC11は、メモリデータ出力を駆動す
るために、メモリデータ出力イネーブル信号(MDOE
#,クロック8)を起動する。クロック10〜12で
は、キャッシュSRAM13のメモリサイクルバッファ
からメモリバスへデータを書込むために、MBC11に
よりMBRDY#を活動状態に駆動する。MBC11
は、メモリバスにおけるライトバックサイクルを終了さ
せ且つ新たなサイクルに備えてメモリサイクルバッファ
を切換えるために、MEOC#を起動する(クロック1
3)。
るために、メモリデータ出力イネーブル信号(MDOE
#,クロック8)を起動する。クロック10〜12で
は、キャッシュSRAM13のメモリサイクルバッファ
からメモリバスへデータを書込むために、MBC11に
よりMBRDY#を活動状態に駆動する。MBC11
は、メモリバスにおけるライトバックサイクルを終了さ
せ且つ新たなサイクルに備えてメモリサイクルバッファ
を切換えるために、MEOC#を起動する(クロック1
3)。
【0154】ストローブメモリバスモードの場合、MI
STB動作を可能にすると共に、転送に備えてMZBT
#(MSEL#の立下がり端で)をラッチするために、
MBC11はMSEL#を活動状態に駆動する(クロッ
ク4)。クロック5〜7では、メモリバーストカウンタ
を増分させ且つSRAM13のキャッシュメモリサイク
ルバッファにデータを導入するために、MISTBをト
グルする。尚、MISTBは立上がり端と立下がり端の
双方でメモリバスデータをラッチする。MBC11は、
メモリバス15における現在サイクルを終了させ且つ新
たなサイクルに備えてメモリサイクルバッファを切換え
るために、MEOC#を起動状態に駆動する(クロック
8)。この時点で、MEOC#の立下がり端で次のサイ
クルのためのMZBT#をラッチする。
STB動作を可能にすると共に、転送に備えてMZBT
#(MSEL#の立下がり端で)をラッチするために、
MBC11はMSEL#を活動状態に駆動する(クロッ
ク4)。クロック5〜7では、メモリバーストカウンタ
を増分させ且つSRAM13のキャッシュメモリサイク
ルバッファにデータを導入するために、MISTBをト
グルする。尚、MISTBは立上がり端と立下がり端の
双方でメモリバスデータをラッチする。MBC11は、
メモリバス15における現在サイクルを終了させ且つ新
たなサイクルに備えてメモリサイクルバッファを切換え
るために、MEOC#を起動状態に駆動する(クロック
8)。この時点で、MEOC#の立下がり端で次のサイ
クルのためのMZBT#をラッチする。
【0155】メモリデータ出力を駆動するために、MB
C11はMDOE#を起動する(クロック9)。SRA
M13のメモリサイクルバッファからメモリバスへデー
タを書込むために、MBC11によりMOSTBをトグ
ルする(クロック10〜12)。MBC11は、メモリ
バス15におけるライトバックサイクルを終了させると
共に、新たなサイクルに備えてメモリサイクルバッファ
を切換えるために、MEOC#を起動する(クロック1
3)。図39は、〔E〕又は〔M〕状態にあるとマーク
されている制御装置12のエントリをヒットするCPU
メモリ書込みサイクルのシーケンスを示す。そのような
サイクルは、制御装置12により、メモリバス15のア
クティビティなしでキャッシュSRAM13アレイへの
直接書込みを経てサービスされる。
C11はMDOE#を起動する(クロック9)。SRA
M13のメモリサイクルバッファからメモリバスへデー
タを書込むために、MBC11によりMOSTBをトグ
ルする(クロック10〜12)。MBC11は、メモリ
バス15におけるライトバックサイクルを終了させると
共に、新たなサイクルに備えてメモリサイクルバッファ
を切換えるために、MEOC#を起動する(クロック1
3)。図39は、〔E〕又は〔M〕状態にあるとマーク
されている制御装置12のエントリをヒットするCPU
メモリ書込みサイクルのシーケンスを示す。そのような
サイクルは、制御装置12により、メモリバス15のア
クティビティなしでキャッシュSRAM13アレイへの
直接書込みを経てサービスされる。
【0156】クロック1で、最初のCPU書込みサイク
ル(A)が始まる。制御装置12はキャッシュディレク
トリ(タグRAM)をルックアップし、クロック2にお
いて〔E〕又は〔M〕状態に対するヒットを検出する。
クロック2では、ARRAY書込み準備のためにWRA
RR#を起動し、WAYは書込むべき方向を指示する。
制御装置12はクロック2でBRDY#を起動する(待
ち状態0)。クロック2ではBLAST#も活動状態で
あるので、SRAM13はクロック3の前半でアレイへ
の書込みサイクルを実行する。サイクルB及びCはPL
OCKされる。それらのサイクルの間、制御装置12は
第2のPLOCKされたADS#(C)がAHOLDの
起動の前に確実に実行されることを保証する。すなわ
ち、第2のADS#がCPU10により発行されるま
で、AHOLDの起動は遅延する。
ル(A)が始まる。制御装置12はキャッシュディレク
トリ(タグRAM)をルックアップし、クロック2にお
いて〔E〕又は〔M〕状態に対するヒットを検出する。
クロック2では、ARRAY書込み準備のためにWRA
RR#を起動し、WAYは書込むべき方向を指示する。
制御装置12はクロック2でBRDY#を起動する(待
ち状態0)。クロック2ではBLAST#も活動状態で
あるので、SRAM13はクロック3の前半でアレイへ
の書込みサイクルを実行する。サイクルB及びCはPL
OCKされる。それらのサイクルの間、制御装置12は
第2のPLOCKされたADS#(C)がAHOLDの
起動の前に確実に実行されることを保証する。すなわ
ち、第2のADS#がCPU10により発行されるま
で、AHOLDの起動は遅延する。
【0157】図40は、二次キャッシュをミスし、割当
てサイクルを伴う主メモリへの書込みに従うCPU10
の開始書込みサイクルを示す。割当ては、キャッシュが
行充填を伴う書込みミスサイクルに従うときに起こる。
この例は、新たな行の割当てに修正行の置換え(すなわ
ち、主メモリへのライトバック)が要求されることを想
定している。CPU10は二次キャッシュに対する書込
みサイクルを開始し、そこで、キャッシュタグの状態を
ルックアップする。制御装置12は、サイクルがキャッ
シュミスであると判定すると、書込み動作をスケジュー
リングするために、MBC11へCADS#を発行する
(クロック1)と共に、関連するサイクル制御信号(た
とえば、CW/R#,CM/IO#,CD/C#,RD
YSRC#,MCACHE#,PALLC#)を発行す
る。MCACHE#は活動状態ではない。すなわち、R
DYSRCは活動状態ではなくて、制御装置12がBR
DY#をCPU10に供給することを指示し、PALL
C#は起動されて、ライトスルーサイクルの後の潜在割
当てサイクルを指示する。
てサイクルを伴う主メモリへの書込みに従うCPU10
の開始書込みサイクルを示す。割当ては、キャッシュが
行充填を伴う書込みミスサイクルに従うときに起こる。
この例は、新たな行の割当てに修正行の置換え(すなわ
ち、主メモリへのライトバック)が要求されることを想
定している。CPU10は二次キャッシュに対する書込
みサイクルを開始し、そこで、キャッシュタグの状態を
ルックアップする。制御装置12は、サイクルがキャッ
シュミスであると判定すると、書込み動作をスケジュー
リングするために、MBC11へCADS#を発行する
(クロック1)と共に、関連するサイクル制御信号(た
とえば、CW/R#,CM/IO#,CD/C#,RD
YSRC#,MCACHE#,PALLC#)を発行す
る。MCACHE#は活動状態ではない。すなわち、R
DYSRCは活動状態ではなくて、制御装置12がBR
DY#をCPU10に供給することを指示し、PALL
C#は起動されて、ライトスルーサイクルの後の潜在割
当てサイクルを指示する。
【0158】書込みミスデータはSRAM13のメモリ
サイクルバッファで通知され、サイクルはCPU10に
対して待ち時間なしで完了する。CPU10は自在に別
の(無関係の)サイクルを発生できるが、制御装置12
が割当てを完了するのを待つ。この新たなサイクルがキ
ャッシュヒットである場合、そのサイクルは直ちに制御
装置12によりサービスされる。ところが、サイクルが
キャッシュミスであれば、そのサービスは割当てのCR
DY#まで待機する。メモリバスアドレス(MSET
〔10:0〕,MTAG〔11:0〕,MCFA〔6:
0〕)はCADS#に伴って有効であり(この例では3
つのサイクルについてクロック1,5及び10),制御
装置12によりCNA#がサンプリングされて活動状態
になった(クロック4,10及び15)後まで有効なま
まである。必要に応じてアドレスを保持するためにMA
LE及びMBALEを使用しても良い。MBC11はメ
モリバス15の順序を指定し、BGT#を起動状態で戻
して(クロック2)、ライトスルーサイクルがメモリバ
ス15において完了するように保証されていることを指
示する。制御装置12は、BGT#が起動状態であると
サンプリングすると、メモリバス15でそのサイクルを
終了させなければならない。この時点に先立って、別の
キャッシュからのスヌープヒットによりサイクルを打切
ることができる。
サイクルバッファで通知され、サイクルはCPU10に
対して待ち時間なしで完了する。CPU10は自在に別
の(無関係の)サイクルを発生できるが、制御装置12
が割当てを完了するのを待つ。この新たなサイクルがキ
ャッシュヒットである場合、そのサイクルは直ちに制御
装置12によりサービスされる。ところが、サイクルが
キャッシュミスであれば、そのサービスは割当てのCR
DY#まで待機する。メモリバスアドレス(MSET
〔10:0〕,MTAG〔11:0〕,MCFA〔6:
0〕)はCADS#に伴って有効であり(この例では3
つのサイクルについてクロック1,5及び10),制御
装置12によりCNA#がサンプリングされて活動状態
になった(クロック4,10及び15)後まで有効なま
まである。必要に応じてアドレスを保持するためにMA
LE及びMBALEを使用しても良い。MBC11はメ
モリバス15の順序を指定し、BGT#を起動状態で戻
して(クロック2)、ライトスルーサイクルがメモリバ
ス15において完了するように保証されていることを指
示する。制御装置12は、BGT#が起動状態であると
サンプリングすると、メモリバス15でそのサイクルを
終了させなければならない。この時点に先立って、別の
キャッシュからのスヌープヒットによりサイクルを打切
ることができる。
【0159】CNA#は、新たなメモリバスサイクルを
スケジューリングする準備が整ったことを指示するため
に、MBC11により起動される(クロック3)。尚、
CNA#の起動後、サイクル制御信号は有効であること
を保証されない。MBC11は、ライトスルーサイクル
のキャッシュ可能性属性を確定したとき、それに応じて
MKEN#信号を駆動する。また、この時点でKWEN
D#信号を駆動して、キャッシュ可能性ウィンドウの終
わりを指示する。キャッシュ制御装置12はKWEND
#(クロック4)の間にMKEN#をサンプリングし
て、活動状態であると、ミスした行をそのキャッシュに
おいて割当てすべきであることを指示する。
スケジューリングする準備が整ったことを指示するため
に、MBC11により起動される(クロック3)。尚、
CNA#の起動後、サイクル制御信号は有効であること
を保証されない。MBC11は、ライトスルーサイクル
のキャッシュ可能性属性を確定したとき、それに応じて
MKEN#信号を駆動する。また、この時点でKWEN
D#信号を駆動して、キャッシュ可能性ウィンドウの終
わりを指示する。キャッシュ制御装置12はKWEND
#(クロック4)の間にMKEN#をサンプリングし
て、活動状態であると、ミスした行をそのキャッシュに
おいて割当てすべきであることを指示する。
【0160】最初の利用可能時間(クロック5)で、制
御装置12は割当てサイクルを要求するためにCADS
#を起動する。この時点でサイクル制御信号は有効であ
る。すなわち、MCACHE#は活動状態であって、行
充填サイクルのキャッシュ可能性を指示し、RDYSR
Cは活動状態ではなく、MBC11がCPU10にBR
DY#を供給する必要はない(割当てサイクルについて
はBRDY#は不要である)ことを指示する。ライトス
ルーサイクルのスヌープウィンドウがメモリバス15で
終わると、MBC11はSWEND#を起動する(クロ
ック6)。スヌープウィンドウの閉鎖後、いずれかの時
点で、MBC11はCRDY#をキャッシュ制御装置1
2及びSRAM13へ戻しても良い。この例では、CR
DY#はクロック8でMBC11により発行される。ま
た、行充填を完了するために、割込みサイクルに関わる
サイクル進行信号をMBC11により発行しても良い。
御装置12は割当てサイクルを要求するためにCADS
#を起動する。この時点でサイクル制御信号は有効であ
る。すなわち、MCACHE#は活動状態であって、行
充填サイクルのキャッシュ可能性を指示し、RDYSR
Cは活動状態ではなく、MBC11がCPU10にBR
DY#を供給する必要はない(割当てサイクルについて
はBRDY#は不要である)ことを指示する。ライトス
ルーサイクルのスヌープウィンドウがメモリバス15で
終わると、MBC11はSWEND#を起動する(クロ
ック6)。スヌープウィンドウの閉鎖後、いずれかの時
点で、MBC11はCRDY#をキャッシュ制御装置1
2及びSRAM13へ戻しても良い。この例では、CR
DY#はクロック8でMBC11により発行される。ま
た、行充填を完了するために、割込みサイクルに関わる
サイクル進行信号をMBC11により発行しても良い。
【0161】再度、MBC11はメモリバス15の順序
を指定し、割当てサイクルについて起動状態でBGT#
を戻す(クロック9)。また、MBC11はこの時点で
CNA#及びKWEND#も起動する。制御装置12
は、一次レベルキャッシュと二次レベルキャッシュの一
貫性を維持するために、CPU10を戻し無効化する。
クロック10では、キャッシュ制御装置12はライトバ
ックサイクルのために(ミスは汚れた行に対するもので
あったので)CADS#を起動する。2クロック後に
(クロック12)、制御装置12によりCDTS#が起
動される。SRAM13のライトバックバッファにおい
てデータはまだ利用可能となっていないので、ライトバ
ックサイクルのCDTS#はCADS#に伴って起動さ
れない。メモリバス15で割当てサイクルのスヌープウ
ィンドウが終わると、MBC11はSWEND#を起動
する(クロック11)。
を指定し、割当てサイクルについて起動状態でBGT#
を戻す(クロック9)。また、MBC11はこの時点で
CNA#及びKWEND#も起動する。制御装置12
は、一次レベルキャッシュと二次レベルキャッシュの一
貫性を維持するために、CPU10を戻し無効化する。
クロック10では、キャッシュ制御装置12はライトバ
ックサイクルのために(ミスは汚れた行に対するもので
あったので)CADS#を起動する。2クロック後に
(クロック12)、制御装置12によりCDTS#が起
動される。SRAM13のライトバックバッファにおい
てデータはまだ利用可能となっていないので、ライトバ
ックサイクルのCDTS#はCADS#に伴って起動さ
れない。メモリバス15で割当てサイクルのスヌープウ
ィンドウが終わると、MBC11はSWEND#を起動
する(クロック11)。
【0162】この時点で、MBC11は割当てサイクル
のためにCRDY#を制御装置12及びSRAM13に
起動しても良い。CRDY#の起動によって、SRAM
13のメモリサイクルバッファに記憶されていたデータ
はキャッシュアレイにラッチされる。クロック14の
間、BGT#,CNA#及びSWEND#はライトバッ
クサイクルについて活動状態であるとサンプリングされ
る。スヌープウィンドウは2クロック遅れて(クロック
16)SWEND#に伴ってMBC11により閉鎖さ
れ、ライトバックサイクルはクロック18におけるCR
DY#の起動に伴って完了する。
のためにCRDY#を制御装置12及びSRAM13に
起動しても良い。CRDY#の起動によって、SRAM
13のメモリサイクルバッファに記憶されていたデータ
はキャッシュアレイにラッチされる。クロック14の
間、BGT#,CNA#及びSWEND#はライトバッ
クサイクルについて活動状態であるとサンプリングされ
る。スヌープウィンドウは2クロック遅れて(クロック
16)SWEND#に伴ってMBC11により閉鎖さ
れ、ライトバックサイクルはクロック18におけるCR
DY#の起動に伴って完了する。
【0163】アドレスラッチをフロースルーモードにす
るために、メモリアドレスラッチ21イネーブル(MA
LE及びMBALE)はMBC11により起動されたま
まであっても良い。制御装置12が現在バスマスターで
ある場合、MBC11によりメモリアドレス出力イネー
ブル信号(MAOE#及びMBAOE#)を起動すべき
である。クロックメモリバスモードの場合、メモリデー
タ出力を駆動するために、MBC11によりメモリデー
タ出力イネーブル(MDOE#)が起動されている。
るために、メモリアドレスラッチ21イネーブル(MA
LE及びMBALE)はMBC11により起動されたま
まであっても良い。制御装置12が現在バスマスターで
ある場合、MBC11によりメモリアドレス出力イネー
ブル信号(MAOE#及びMBAOE#)を起動すべき
である。クロックメモリバスモードの場合、メモリデー
タ出力を駆動するために、MBC11によりメモリデー
タ出力イネーブル(MDOE#)が起動されている。
【0164】転送のためにMZBT#をラッチすると共
に、メモリバスにおける現在サイクルを終了させるため
に、MEOC#がMBC11(クロック4)により起動
される(この例は転送1回の書込みミスサイクルを示し
ているので、MBRDY#は不要である)。読取りサイ
クルを強制的に正しいバーストアドレスから開始させる
ために、MZBT#はMBC11によりハイ状態に駆動
される。MBC11がMFRZ#を非活動状態に駆動す
ると、行は排他(〔E〕)状態になり、データを主メモ
リに書込むことが必要になる。割当て(行充填)サイク
ルの場合、MBRDY#のサンプリングを可能にし且つ
転送に備えてMABT#をラッチするために、MBC1
1(クロック6)はMSEL#を活動状態に駆動する。
MZBT#は、MSEL#が非活動状態である全てのM
CLK端でサンプリングされる。制御装置12によりM
SEL#がサンプリングされて活動状態であると、先の
MCLKでサンプリングしたMZBT#の値を次の転送
に際して使用する。クロック6では、データピンを割当
てサイクルに関わる入力として使用することができるよ
うに、MDOE#も非活動状態とされる。
に、メモリバスにおける現在サイクルを終了させるため
に、MEOC#がMBC11(クロック4)により起動
される(この例は転送1回の書込みミスサイクルを示し
ているので、MBRDY#は不要である)。読取りサイ
クルを強制的に正しいバーストアドレスから開始させる
ために、MZBT#はMBC11によりハイ状態に駆動
される。MBC11がMFRZ#を非活動状態に駆動す
ると、行は排他(〔E〕)状態になり、データを主メモ
リに書込むことが必要になる。割当て(行充填)サイク
ルの場合、MBRDY#のサンプリングを可能にし且つ
転送に備えてMABT#をラッチするために、MBC1
1(クロック6)はMSEL#を活動状態に駆動する。
MZBT#は、MSEL#が非活動状態である全てのM
CLK端でサンプリングされる。制御装置12によりM
SEL#がサンプリングされて活動状態であると、先の
MCLKでサンプリングしたMZBT#の値を次の転送
に際して使用する。クロック6では、データピンを割当
てサイクルに関わる入力として使用することができるよ
うに、MDOE#も非活動状態とされる。
【0165】クロック7〜9では、メモリバーストカウ
ンタを増分させ且つSRAM13のキャッシュメモリサ
イクルバッファに導入するために、MBC11によりM
SRDY#が活動状態に駆動される。MBC11は、メ
モリバス15における割当てサイクルを終了させると共
に、新たなサイクルに備えてSRAM13のメモリサイ
クルバッファを切換えるために、MEOC#を起動状態
に駆動する(クロック10)。この時点で、MZBT#
は次のデータ転送のためにサンプリングされ、ラッチさ
れる。ライトバックサイクルについてメモリデータ出力
を駆動するために、MBCによりMDOE#が起動され
る(クロック12)。MBC11はライトバックサイク
ルについて再びMBRDY#を起動して(クロック13
〜15)、メモリバーストカウンタを増分すると共に、
データをSRAM13のメモリサイクルバッファから読
取らせる。MEOC#の起動(クロック16)に伴って
ライトバックサイクルはメモリバス15で終了し、メモ
リサイクルバッファは切換わる。次の転送に関わるMZ
BT#とMFRZ#はこの時点でサンプリングされる。
サイクルは潜在的には割当て不可能であるので、MFR
Z#は活動状態でなくとも良い。
ンタを増分させ且つSRAM13のキャッシュメモリサ
イクルバッファに導入するために、MBC11によりM
SRDY#が活動状態に駆動される。MBC11は、メ
モリバス15における割当てサイクルを終了させると共
に、新たなサイクルに備えてSRAM13のメモリサイ
クルバッファを切換えるために、MEOC#を起動状態
に駆動する(クロック10)。この時点で、MZBT#
は次のデータ転送のためにサンプリングされ、ラッチさ
れる。ライトバックサイクルについてメモリデータ出力
を駆動するために、MBCによりMDOE#が起動され
る(クロック12)。MBC11はライトバックサイク
ルについて再びMBRDY#を起動して(クロック13
〜15)、メモリバーストカウンタを増分すると共に、
データをSRAM13のメモリサイクルバッファから読
取らせる。MEOC#の起動(クロック16)に伴って
ライトバックサイクルはメモリバス15で終了し、メモ
リサイクルバッファは切換わる。次の転送に関わるMZ
BT#とMFRZ#はこの時点でサンプリングされる。
サイクルは潜在的には割当て不可能であるので、MFR
Z#は活動状態でなくとも良い。
【0166】ストローブメモリバスモードの場合、書込
みミスサイクルについてメモリデータ出力を駆動するた
めに、メモリデータ出力イネーブル(MDOE#)はM
BC11により起動されている。転送に備えてMABT
#をラッチし且つメモリバス15における現在サイクル
を終了させるために、MBC11(クロック4)により
MEOC#が活動状態に駆動される(この例は転送1回
のサイクルを示しているので、MOSTBは不要であ
る)。読取りサイクルを強制的に正しいバーストアドレ
スから開始させるために、MZBT#はMBC11によ
りハイ状態に駆動される。MFRZ#はMBC11によ
り非活動状態とされて、行を排他(〔E〕)状態にさせ
る。
みミスサイクルについてメモリデータ出力を駆動するた
めに、メモリデータ出力イネーブル(MDOE#)はM
BC11により起動されている。転送に備えてMABT
#をラッチし且つメモリバス15における現在サイクル
を終了させるために、MBC11(クロック4)により
MEOC#が活動状態に駆動される(この例は転送1回
のサイクルを示しているので、MOSTBは不要であ
る)。読取りサイクルを強制的に正しいバーストアドレ
スから開始させるために、MZBT#はMBC11によ
りハイ状態に駆動される。MFRZ#はMBC11によ
り非活動状態とされて、行を排他(〔E〕)状態にさせ
る。
【0167】割当て(行充填)サイクルの場合、MIS
TB動作を可能にし且つ転送に備えてMZBT#をラッ
チするために、MSEL#はMBC11により活動状態
に駆動される。クロック8〜10では、メモリバースト
カウンタを増分させると共に、データをSRAM13の
キャッシュメモリサイクルバッファに導入するために、
MISTBをトグルする。MISTBは立上がり端と立
下がり端の双方でメモリバスのデータをラッチする。ク
ロック6ではMDOE#も非活動状態とされて、データ
ピンを割当てサイクルに関わる入力として使用できるよ
うにする。MBC11は、メモリバス15における割当
てサイクルを終了させ且つ新たなサイクルに備えてメモ
リサイクルバッファを切換えるために、MEOC#を起
動状態に駆動する(クロック11)。この時点で、ME
OC#の立下がり端において次のサイクルのMABT#
がラッチされる。
TB動作を可能にし且つ転送に備えてMZBT#をラッ
チするために、MSEL#はMBC11により活動状態
に駆動される。クロック8〜10では、メモリバースト
カウンタを増分させると共に、データをSRAM13の
キャッシュメモリサイクルバッファに導入するために、
MISTBをトグルする。MISTBは立上がり端と立
下がり端の双方でメモリバスのデータをラッチする。ク
ロック6ではMDOE#も非活動状態とされて、データ
ピンを割当てサイクルに関わる入力として使用できるよ
うにする。MBC11は、メモリバス15における割当
てサイクルを終了させ且つ新たなサイクルに備えてメモ
リサイクルバッファを切換えるために、MEOC#を起
動状態に駆動する(クロック11)。この時点で、ME
OC#の立下がり端において次のサイクルのMABT#
がラッチされる。
【0168】MDOE#は、ライトバックサイクルにつ
いてメモリデータ出力を駆動するために、MBC11に
より起動される(クロック14)。MBC11は、メモ
リバーストカウンタを増分し且つSRAM13のメモリ
サイクルバッファからデータを読取らせるために、ライ
トバックサイクルについてMOSTBをトグルする(ク
ロック15〜17)。ライトバックサイクルはMEOC
#の起動(クロック18)に伴ってメモリバス15で終
了し、メモリサイクルバッファは切換わる。この時点
で、次の転送のためのMZBT#とMFRZ#をサンプ
リングする。サイクルは潜在的には割当て可能ではない
ので、MFRZ#は活動状態でなくとも良い。
いてメモリデータ出力を駆動するために、MBC11に
より起動される(クロック14)。MBC11は、メモ
リバーストカウンタを増分し且つSRAM13のメモリ
サイクルバッファからデータを読取らせるために、ライ
トバックサイクルについてMOSTBをトグルする(ク
ロック15〜17)。ライトバックサイクルはMEOC
#の起動(クロック18)に伴ってメモリバス15で終
了し、メモリサイクルバッファは切換わる。この時点
で、次の転送のためのMZBT#とMFRZ#をサンプ
リングする。サイクルは潜在的には割当て可能ではない
ので、MFRZ#は活動状態でなくとも良い。
【0169】図41は、CPU10開始読取りミスサイ
クルと同時に起こる汚れた行のシーケンスに対するスヌ
ープヒットを示す。この例は、同期スヌーピングモード
を想定している(すなわち、スヌープの要求は制御装置
12のCLKでサンプリングされるMBC11からのS
NPSTB#を経て実行される)。クロック1で、MB
C11は、制御装置12に対するスヌーピングの要求を
指示するSNPSTB#を起動する。スヌープ要求を認
識するために、制御装置12はMAOE#(非活動状態
でなければならない)をサンプリングする。これは、S
NPSTB#の起動中、スヌープアドレス(MSET
〔0:10〕,MTAG〔0:11〕,MCFA〔0:
6〕),SNPINV,MBAOE#及びSNPNCA
と共に制御装置12のCLKのときにラッチされる。ス
ヌープ動作はキャッシュタグ状態アービタにおいて最高
の優先順位を有するので、タグルックアップはSNPS
TB#がサンプリングされて活動状態であった直後に実
行される。制御装置12は、スヌープルックアップが進
行中であることを指示するSNPCYC#を発行する
(クロック2)。ルックアップの結果は、SNPCYC
#の後の次のクロックでMTHIT#及びMHITM#
を経てメモリバスへ送り出される。スヌープは修正行を
ヒットするので、双方の信号が起動される(クロック
3)。制御装置12がCPU10の戻し無効化のために
使用中であるか、SRAM13のスヌープバッファが一
杯であるか又はライトバックが続くべきであることを指
示するために、SNPBSY#も発行される。制御装置
12は、SNPBSY#が非活動状態であるときにのみ
スヌープを受け入れる。
クルと同時に起こる汚れた行のシーケンスに対するスヌ
ープヒットを示す。この例は、同期スヌーピングモード
を想定している(すなわち、スヌープの要求は制御装置
12のCLKでサンプリングされるMBC11からのS
NPSTB#を経て実行される)。クロック1で、MB
C11は、制御装置12に対するスヌーピングの要求を
指示するSNPSTB#を起動する。スヌープ要求を認
識するために、制御装置12はMAOE#(非活動状態
でなければならない)をサンプリングする。これは、S
NPSTB#の起動中、スヌープアドレス(MSET
〔0:10〕,MTAG〔0:11〕,MCFA〔0:
6〕),SNPINV,MBAOE#及びSNPNCA
と共に制御装置12のCLKのときにラッチされる。ス
ヌープ動作はキャッシュタグ状態アービタにおいて最高
の優先順位を有するので、タグルックアップはSNPS
TB#がサンプリングされて活動状態であった直後に実
行される。制御装置12は、スヌープルックアップが進
行中であることを指示するSNPCYC#を発行する
(クロック2)。ルックアップの結果は、SNPCYC
#の後の次のクロックでMTHIT#及びMHITM#
を経てメモリバスへ送り出される。スヌープは修正行を
ヒットするので、双方の信号が起動される(クロック
3)。制御装置12がCPU10の戻し無効化のために
使用中であるか、SRAM13のスヌープバッファが一
杯であるか又はライトバックが続くべきであることを指
示するために、SNPBSY#も発行される。制御装置
12は、SNPBSY#が非活動状態であるときにのみ
スヌープを受け入れる。
【0170】スヌープ要求によって起こるメモリバス1
5のアクティビティと同時に、CPU10は読取りミス
サイクルを開始する。制御装置12はクロック3でメモ
リバス要求(CADS#0,CDTS#)と、サイクル
制御信号とをMBC11へ発行する。MBC11は、こ
の読取りミスサイクルをサービスする前に、メモリバス
15において係属中のスヌープサイクルが完了するのを
待たなければならない。メモリバスアドレス(MSET
〔10:0〕,MTAG〔11:0〕,MCFA〔6:
0〕)は、スヌープライトバックサイクルのCRDY#
が制御装置12によりサンプリングされて活動状態であ
った後にMAOE#が活動状態になり、CADS#が再
発行される(クロック13)まで有効ではない。クロッ
ク4では、制御装置12はSNPADS#と、サイクル
制御信号とをMBC11へ発行して、二次キャッシュか
らの修正行のフラッシュへの要求を指示する。SNPA
DS#の起動はMBC11に係属中の読取りミスサイク
ルを打切らせる。BT#はMBC11によって起動され
ていないので、ライトバックの完了後に打切られたサイ
クルを再発行するのは制御装置12である。
5のアクティビティと同時に、CPU10は読取りミス
サイクルを開始する。制御装置12はクロック3でメモ
リバス要求(CADS#0,CDTS#)と、サイクル
制御信号とをMBC11へ発行する。MBC11は、こ
の読取りミスサイクルをサービスする前に、メモリバス
15において係属中のスヌープサイクルが完了するのを
待たなければならない。メモリバスアドレス(MSET
〔10:0〕,MTAG〔11:0〕,MCFA〔6:
0〕)は、スヌープライトバックサイクルのCRDY#
が制御装置12によりサンプリングされて活動状態であ
った後にMAOE#が活動状態になり、CADS#が再
発行される(クロック13)まで有効ではない。クロッ
ク4では、制御装置12はSNPADS#と、サイクル
制御信号とをMBC11へ発行して、二次キャッシュか
らの修正行のフラッシュへの要求を指示する。SNPA
DS#の起動はMBC11に係属中の読取りミスサイク
ルを打切らせる。BT#はMBC11によって起動され
ていないので、ライトバックの完了後に打切られたサイ
クルを再発行するのは制御装置12である。
【0171】データはSRAM13のスヌープバッファ
にロードされる。SNPINVはSNPSTB#の起動
中に制御装置12により起動状態であるとサンプリング
されていたので(クロック1)、CPU10の一次レベ
ルキャッシュを戻し無効化した。制御装置12は、スヌ
ープバッファにおいてデータを利用できることをMBC
11に指示するCDTS#を起動する(クロック8)。
MBC11は、メモリバス15におけるライトバックサ
イクルを完了すると、二次キャッシュ制御装置12及び
SRAM13に対してCRDY#を起動する。この時点
で、制御装置12はSNPBSY#を非活動状態にし
(クロック13)、CADS#とCDTS#を起動する
ことにより打切られた読取りミスサイクルを発行する
(クロック13)。
にロードされる。SNPINVはSNPSTB#の起動
中に制御装置12により起動状態であるとサンプリング
されていたので(クロック1)、CPU10の一次レベ
ルキャッシュを戻し無効化した。制御装置12は、スヌ
ープバッファにおいてデータを利用できることをMBC
11に指示するCDTS#を起動する(クロック8)。
MBC11は、メモリバス15におけるライトバックサ
イクルを完了すると、二次キャッシュ制御装置12及び
SRAM13に対してCRDY#を起動する。この時点
で、制御装置12はSNPBSY#を非活動状態にし
(クロック13)、CADS#とCDTS#を起動する
ことにより打切られた読取りミスサイクルを発行する
(クロック13)。
【0172】クロックメモリバスモードでは、メモリデ
ータピンを入力として使用できるようにするために、メ
モリデータ出力イネーブル(MDOE#)MBC11に
より起動されない。MBRDY#のサンプリングを可能
にし且つ読取りミス転送に備えてMZBT#をラッチす
るために、MSEL#はMBC11により活動状態に駆
動される。MZBT#は、MSEL#が非活動状態であ
る全てのMCLK立上がり端でサンプリングされる。制
御装置12によりMSEL#がサンプリングされて活動
状態であると、先のMCLKでサンプリングしたMZB
T#の値を次の転送のために使用する。修正行に対する
スヌープヒット(ライトバックサイクルを要求する)の
ために読取りミスサイクルは打切られているので、ME
OC#は与えられない。MSEL#はMBC11により
非活動状態にされ(クロック6)、スヌープライトバッ
クサイクルについてMZBT#のラッチングを可能にし
且つそのサイクルについてMBRDY#のサンプリング
を可能にするために、再び起動される(クロック8)。
また、この時点でMFRZ#がサンプリングされる。メ
モリデータ出力を駆動するために、メモリデータ出力イ
ネーブル(MDOE#)信号はMBC11により活動状
態に駆動される(クロック7)。
ータピンを入力として使用できるようにするために、メ
モリデータ出力イネーブル(MDOE#)MBC11に
より起動されない。MBRDY#のサンプリングを可能
にし且つ読取りミス転送に備えてMZBT#をラッチす
るために、MSEL#はMBC11により活動状態に駆
動される。MZBT#は、MSEL#が非活動状態であ
る全てのMCLK立上がり端でサンプリングされる。制
御装置12によりMSEL#がサンプリングされて活動
状態であると、先のMCLKでサンプリングしたMZB
T#の値を次の転送のために使用する。修正行に対する
スヌープヒット(ライトバックサイクルを要求する)の
ために読取りミスサイクルは打切られているので、ME
OC#は与えられない。MSEL#はMBC11により
非活動状態にされ(クロック6)、スヌープライトバッ
クサイクルについてMZBT#のラッチングを可能にし
且つそのサイクルについてMBRDY#のサンプリング
を可能にするために、再び起動される(クロック8)。
また、この時点でMFRZ#がサンプリングされる。メ
モリデータ出力を駆動するために、メモリデータ出力イ
ネーブル(MDOE#)信号はMBC11により活動状
態に駆動される(クロック7)。
【0173】クロック10〜12では、メモリバースト
カウンタを増分させると共に、データを二次キャッシュ
スヌープバッファから書込むために、MBC11により
MBRDY#を活動状態に駆動する。MBC11は、メ
モリバスにおけるライトバックサイクルを終了させ且つ
新たなサイクルに備えてメモリサイクルバッファを切換
えるために、MEOC#を起動状態に駆動する(クロッ
ク13)。この時点で、次のデータ転送に備えて、MZ
BT#とMFRZ#をサンプリングし且つラッチする。
メモリデータピンを再発行読取りサイクルに関する入力
として使用できるようにするために、MDOE#はMB
C11により非活動状態とされる(クロック14)。ス
トローブメモリバスモードの場合、メモリデータピンを
読取りミスサイクルに関する入力として使用できるよう
にするために、メモリデータ出力イネーブル(MDOE
#)はMBC11によって起動されてはいない。
カウンタを増分させると共に、データを二次キャッシュ
スヌープバッファから書込むために、MBC11により
MBRDY#を活動状態に駆動する。MBC11は、メ
モリバスにおけるライトバックサイクルを終了させ且つ
新たなサイクルに備えてメモリサイクルバッファを切換
えるために、MEOC#を起動状態に駆動する(クロッ
ク13)。この時点で、次のデータ転送に備えて、MZ
BT#とMFRZ#をサンプリングし且つラッチする。
メモリデータピンを再発行読取りサイクルに関する入力
として使用できるようにするために、MDOE#はMB
C11により非活動状態とされる(クロック14)。ス
トローブメモリバスモードの場合、メモリデータピンを
読取りミスサイクルに関する入力として使用できるよう
にするために、メモリデータ出力イネーブル(MDOE
#)はMBC11によって起動されてはいない。
【0174】MISTBのサンプリングを可能にし且つ
読取りミス転送に備えて(MSEL#の立下がり端で)
MZBT#をラッチするために、MBC11によりMS
EL#が起動される(クロック4)。修正行に対するス
ヌープヒット(ライトバックサイクルを要求する)のた
めに読取りミスサイクルは打切られているので、MOE
C#は与えられない。MSEL#はMBC11により非
活動状態とされ(クロック5)、スヌープライトバック
サイクルについてMZBT#のラッチングを可能にし且
つそのサイクルについてMOSTBのサンプリングを可
能にするために再び起動される(クロック6)。
読取りミス転送に備えて(MSEL#の立下がり端で)
MZBT#をラッチするために、MBC11によりMS
EL#が起動される(クロック4)。修正行に対するス
ヌープヒット(ライトバックサイクルを要求する)のた
めに読取りミスサイクルは打切られているので、MOE
C#は与えられない。MSEL#はMBC11により非
活動状態とされ(クロック5)、スヌープライトバック
サイクルについてMZBT#のラッチングを可能にし且
つそのサイクルについてMOSTBのサンプリングを可
能にするために再び起動される(クロック6)。
【0175】クロック11〜13では、メモリバースト
カウンタを増分させると共に、データを二次キャッシュ
メモリサイクルバッファから読取るために、MOSTB
をトグルする。MOSTBは立上がり端と立下がり端の
双方でメモリバスのデータをラッチする。MBC11
は、メモリバスにおけるスヌープライトバックサイクル
を終了させ且つ新たなサイクルに備えてメモリサイクル
バッファ切換えるために、MEOC#を起動状態に駆動
する(クロック14)。この時点で、MEOC#の立下
がり端において次のサイクルのためのMZBT#とMF
RZ#をラッチする。メモリデータピンを再発行読取り
ミスサイクルに関する入力として使用できるようにする
ために、MDOE#はMBC11により非活動状態とさ
れる(クロック14)。
カウンタを増分させると共に、データを二次キャッシュ
メモリサイクルバッファから読取るために、MOSTB
をトグルする。MOSTBは立上がり端と立下がり端の
双方でメモリバスのデータをラッチする。MBC11
は、メモリバスにおけるスヌープライトバックサイクル
を終了させ且つ新たなサイクルに備えてメモリサイクル
バッファ切換えるために、MEOC#を起動状態に駆動
する(クロック14)。この時点で、MEOC#の立下
がり端において次のサイクルのためのMZBT#とMF
RZ#をラッチする。メモリデータピンを再発行読取り
ミスサイクルに関する入力として使用できるようにする
ために、MDOE#はMBC11により非活動状態とさ
れる(クロック14)。
【図1】本発明の一般に好ましい実施例の基本キャッシ
ュサブシステムを示すブロック線図。
ュサブシステムを示すブロック線図。
【図2】統合形キャッシュ制御装置の機能ブロック線
図。
図。
【図3】メモリバスアドレスラッチに関する詳細を含む
内部アドレスラッチのブロック線図。
内部アドレスラッチのブロック線図。
【図4】スヌープラッチの詳細なブロック線図。
【図5】二方向セットアソシェイティブキャッシュ制御
装置の詳細なアーキテクチャを示す図。
装置の詳細なアーキテクチャを示す図。
【図6】キャッシュ制御装置のピン配列を示す図。
【図7】キャッシュ制御装置のピンをその物理的場所と
相互参照する図。
相互参照する図。
【図8】構成入力サンプリングのタイミング関係を示す
図。
図。
【図9】Intel80486CPUと共に使用するの
に利用できる構成オプションを示す図。
に利用できる構成オプションを示す図。
【図10】CPUバスインタフェースピンの機能を定義
する図。
する図。
【図11】キャッシュ制御装置サイクルのメモリバス制
御装置(MBC)復号を定義する図。
御装置(MBC)復号を定義する図。
【図12】どのメモリバスアドレス線がどのキャッシュ
制御装置制御信号のセットにより制御されるかを定義す
る図。
制御装置制御信号のセットにより制御されるかを定義す
る図。
【図13】MESIコヒーレンシープロトコルの部分状
態図。
態図。
【図14】マスターキャッシュ制御装置の読取りサイク
ル状態テーブルを示す図。
ル状態テーブルを示す図。
【図15】マスターキャッシュ制御装置の書込みサイク
ル状態テーブルを示す図。
ル状態テーブルを示す図。
【図16】スヌーピング(無効化要求を伴わない)キャ
ッシュ制御装置状態テーブルを示す図。
ッシュ制御装置状態テーブルを示す図。
【図17】スヌーピング(無効化要求を伴なう)キャッ
シュ制御装置状態テーブルを示す図。
シュ制御装置状態テーブルを示す図。
【図18】SYNCサイクル状態テーブルを示す図。
【図19】FLUSHサイクル状態テーブルを示す図。
【図20】制御、アドレス及びデータ流れを追加したさ
らに詳細な二次キャッシュシステムのブロック線図。
らに詳細な二次キャッシュシステムのブロック線図。
【図21】サイクル属性と進行信号との関係を示す図。
【図22】スヌープ開始のためのストローブ方法を示す
図。
図。
【図23】スヌープ開始のためのクロック方法を示す
図。
図。
【図24】同期スヌープモードを示す図。
【図25】無効化を伴わないスヌープのタイミングを示
す図。
す図。
【図26】無効化を伴なうスヌープのタイミングを示す
図。
図。
【図27】最高速同期スヌーピングモードのタイミング
を示す図。
を示す図。
【図28】最高速非同期スヌーピングモードのタイミン
グを示す図。
グを示す図。
【図29】スヌープをデータ転送と重複させるために使
用されるタイミングセクターを示す図。
用されるタイミングセクターを示す図。
【図30】信号BGT#によるスヌープのブロッキング
を示す図。
を示す図。
【図31】BGT#が認識される前に起こるスヌープを
示す図。
示す図。
【図32】キャッシュ制御装置の入出力信号によってメ
モリバスサイクルの進行を示す図。
モリバスサイクルの進行を示す図。
【図33】スヌープサイクルに関するメモリバスサイク
ルの進行を示す図。
ルの進行を示す図。
【図34】LOCKサイクルの間のスヌーピングを伴う
メモリバスサイクルの進行を示す図。
メモリバスサイクルの進行を示す図。
【図35】PLOCKサイクルの間のスヌープのタイミ
ングを示す図。
ングを示す図。
【図36】二次キャッシュ読取りヒットに関するタイミ
ング波形を示す図。
ング波形を示す図。
【図37】修正〔M〕行の置換えを伴うキャッシュ可能
読取りミスに関するタイミング波形を示す図。
読取りミスに関するタイミング波形を示す図。
【図38】修正〔M〕行の置換えを伴うキャッシュ可能
読取りミスに関するタイミング波形を示す図。
読取りミスに関するタイミング波形を示す図。
【図39】排他〔E〕又は修正〔M〕行に対する書込み
ヒットに関するタイミング波形を示す図。
ヒットに関するタイミング波形を示す図。
【図40】修正〔M〕行に対する割当てを伴う書込みミ
スに関するタイミング波形を示す図。
スに関するタイミング波形を示す図。
【図41】修正〔M〕行に対するスヌープヒットに関す
るタイミング波形を示す図。
るタイミング波形を示す図。
10 CPU 11 メモリバス制御装置(MBC) 12 キャッシュ制御装置 13 キャッシュメモリ(SRAM) 14 CPUバス 15 メモリバス 16 外部トランシーバラッチ 30 CPUバスインタフェース 31 タグRAM 32 マルチプレクサ 33 スヌープインタフェース 34 メモリバスアドレスラッチ 35 MBCインタフェース 36 メモリバスアドレス待ち行列 37 キャッシュインタフェース 38 スヌープラッチ 39 スヌープ制御装置
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ロバート・エル・ファレル アメリカ合衆国 97229 オレゴン州・ポ ートランド・ノースウエスト 186ティエ イチ アヴェニュ・4655 (72)発明者 アダルベルト・ゴルバート イスラエル国 34862 ハイファ・ハッツ ォレレット ダカー・6/2 (72)発明者 イツィク・シラス イスラエル国 34733 ハイファ・ハプラ ヒム・1/45
Claims (1)
- 【請求項1】 一次レベルキャッシュメモリシステムを
有する中央処理装置(CPU)の入出力バスと主メモリ
バスとの間に接続する二次レベルキャッシュメモリシス
テムにおいて、 a)キャッシュ制御装置及び主メモリバスに結合し、デ
ータを記憶すると共に、CPUバスと主メモリバスとの
間にデータ経路を形成するキャッシュ読取り/書込みメ
モリ手段と; b)主メモリバス及びキャッシュ制御装置に結合し、主
メモリバスを制御し且つ順序指定するメモリバス制御装
置手段と; c)CPUバス、主メモリバス、前記キャッシュ読取り
/書込みメモリ手段及び前記メモリバス制御装置手段に
結合し、前記メモリバス制御装置手段及び前記キャッシ
ュ読取り/書込みメモリ手段を制御することにより、C
PUバス又は主メモリバスからの二次キャッシュアクセ
ス要求を実行するキャッシュ制御装置手段とを具備する
システム。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US71050791A | 1991-06-04 | 1991-06-04 | |
| US710507 | 1991-06-04 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH05181745A true JPH05181745A (ja) | 1993-07-23 |
Family
ID=24854329
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP4160031A Pending JPH05181745A (ja) | 1991-06-04 | 1992-05-28 | 二次レベルキャッシュ制御装置 |
Country Status (6)
| Country | Link |
|---|---|
| US (1) | US5355467A (ja) |
| JP (1) | JPH05181745A (ja) |
| DE (1) | DE4218003C2 (ja) |
| FR (1) | FR2677472B1 (ja) |
| GB (1) | GB2256512B (ja) |
| HK (1) | HK153995A (ja) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2015106312A (ja) * | 2013-11-29 | 2015-06-08 | 富士通株式会社 | 並列計算機システム、並列計算機システムの制御方法、情報処理装置、演算処理装置および通信制御装置 |
| JP2021506033A (ja) * | 2017-12-12 | 2021-02-18 | アドバンスト・マイクロ・ディバイシズ・インコーポレイテッドAdvanced Micro Devices Incorporated | キャッシュ制御を考慮したメモリコントローラ |
Families Citing this family (141)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP3259969B2 (ja) * | 1991-07-09 | 2002-02-25 | 株式会社東芝 | キャッシュメモリ制御装置 |
| DE69219433T2 (de) * | 1991-11-04 | 1997-12-11 | Sun Microsystems Inc | Virtueller Durchschreibcachespeicher Synonym-Adressierung und Cache-Ungültigkeitserklärungen |
| US5813030A (en) * | 1991-12-31 | 1998-09-22 | Compaq Computer Corp. | Cache memory system with simultaneous access of cache and main memories |
| JPH05210640A (ja) * | 1992-01-31 | 1993-08-20 | Hitachi Ltd | マルチプロセッサシステム |
| US5555382A (en) * | 1992-04-24 | 1996-09-10 | Digital Equipment Corporation | Intelligent snoopy bus arbiter |
| EP0600626A1 (en) * | 1992-11-13 | 1994-06-08 | Cyrix Corporation | Coherency for write-back cache in a system designed for write-through cache |
| JP2541771B2 (ja) * | 1993-01-29 | 1996-10-09 | インターナショナル・ビジネス・マシーンズ・コーポレイション | 原子的メモリ参照方法及びシステム |
| US5581727A (en) * | 1993-03-22 | 1996-12-03 | Compaq Computer Corporation | Hierarchical cache system flushing scheme based on monitoring and decoding processor bus cycles for flush/clear sequence control |
| US5664153A (en) * | 1993-04-21 | 1997-09-02 | Intel Corporation | Page open/close scheme based on high order address bit and likelihood of page access |
| JP3027843B2 (ja) * | 1993-04-23 | 2000-04-04 | 株式会社日立製作所 | バススヌ−プ方法 |
| US6311286B1 (en) * | 1993-04-30 | 2001-10-30 | Nec Corporation | Symmetric multiprocessing system with unified environment and distributed system functions |
| US5572700A (en) * | 1993-04-30 | 1996-11-05 | Intel Corporation | Cache access controller and method for permitting caching of information in selected cache lines |
| TW234174B (en) * | 1993-05-14 | 1994-11-11 | Ibm | System and method for maintaining memory coherency |
| US5526512A (en) * | 1993-09-20 | 1996-06-11 | International Business Machines Corporation | Dynamic management of snoop granularity for a coherent asynchronous DMA cache |
| US5671372A (en) * | 1993-09-30 | 1997-09-23 | International Business Machines Corporation | Data processing system with microprocessor/cache chip set directly coupled to memory bus of narrower data width |
| TW228580B (en) * | 1993-10-01 | 1994-08-21 | Ibm | Information processing system and method of operation |
| US5522057A (en) * | 1993-10-25 | 1996-05-28 | Intel Corporation | Hybrid write back/write through cache having a streamlined four state cache coherency protocol for uniprocessor computer systems |
| US5802574A (en) * | 1993-12-28 | 1998-09-01 | Intel Corporation | Method and apparatus for quickly modifying cache state |
| US5671391A (en) * | 1994-01-10 | 1997-09-23 | Ncr Corporation | Coherent copyback protocol for multi-level cache memory systems |
| KR970010368B1 (ko) * | 1994-01-18 | 1997-06-25 | 삼성전자 주식회사 | 캐시라인 리프레이스장치 및 방법 |
| TW243509B (en) * | 1994-01-31 | 1995-03-21 | Ibm | Data processor with memory cache and method of operation |
| US6049851A (en) * | 1994-02-14 | 2000-04-11 | Hewlett-Packard Company | Method and apparatus for checking cache coherency in a computer architecture |
| US5526510A (en) * | 1994-02-28 | 1996-06-11 | Intel Corporation | Method and apparatus for implementing a single clock cycle line replacement in a data cache unit |
| US5717894A (en) * | 1994-03-07 | 1998-02-10 | Dell Usa, L.P. | Method and apparatus for reducing write cycle wait states in a non-zero wait state cache system |
| KR960009659B1 (ko) * | 1994-04-11 | 1996-07-23 | 김광호 | 멀티프로세서 시스템의 스누프회로 |
| US5826052A (en) * | 1994-04-29 | 1998-10-20 | Advanced Micro Devices, Inc. | Method and apparatus for concurrent access to multiple physical caches |
| US5905997A (en) * | 1994-04-29 | 1999-05-18 | Amd Inc. | Set-associative cache memory utilizing a single bank of physical memory |
| US5539895A (en) * | 1994-05-12 | 1996-07-23 | International Business Machines Corporation | Hierarchical computer cache system |
| EP0683457A1 (en) * | 1994-05-20 | 1995-11-22 | Advanced Micro Devices, Inc. | A computer system including a snoop control circuit |
| US5557769A (en) * | 1994-06-17 | 1996-09-17 | Advanced Micro Devices | Mechanism and protocol for maintaining cache coherency within an integrated processor |
| US5692152A (en) * | 1994-06-29 | 1997-11-25 | Exponential Technology, Inc. | Master-slave cache system with de-coupled data and tag pipelines and loop-back |
| US5548742A (en) * | 1994-08-11 | 1996-08-20 | Intel Corporation | Method and apparatus for combining a direct-mapped cache and a multiple-way cache in a 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 |
| US5835948A (en) * | 1994-10-14 | 1998-11-10 | Compaq Computer Corporation | Single bank, multiple way cache memory |
| US5900014A (en) * | 1994-12-08 | 1999-05-04 | Ast Research, Inc. | External means of overriding and controlling cacheability attribute of selected CPU accesses to monitor instruction and data streams |
| US5630094A (en) * | 1995-01-20 | 1997-05-13 | Intel Corporation | Integrated bus bridge and memory controller that enables data streaming to a shared memory of a computer system using snoop ahead transactions |
| US6047357A (en) * | 1995-01-27 | 2000-04-04 | Digital Equipment Corporation | High speed method for maintaining cache coherency in a multi-level, set associative cache hierarchy |
| US5687350A (en) * | 1995-02-10 | 1997-11-11 | International Business Machines Corporation | Protocol and system for performing line-fill address during copy-back operation |
| AU693334B2 (en) * | 1995-03-17 | 1998-06-25 | Intel Corporation | Multi-processing cache coherency protocol on a local bus |
| US5704058A (en) * | 1995-04-21 | 1997-12-30 | Derrick; John E. | Cache bus snoop protocol for optimized multiprocessor computer system |
| US5901295A (en) * | 1995-04-28 | 1999-05-04 | Apple Computer, Inc. | Address and data bus arbiter for pipelined transactions on a split bus |
| US6256710B1 (en) | 1995-04-28 | 2001-07-03 | Apple Computer, Inc. | Cache management during cache inhibited transactions for increasing cache efficiency |
| US5708783A (en) * | 1995-04-28 | 1998-01-13 | Apple Computer, Inc. | Data bus arbiter for pipelined transactions on a split bus |
| US5815676A (en) * | 1995-04-28 | 1998-09-29 | Apple Computer, Inc. | Address bus arbiter for pipelined transactions on a split bus |
| US5812815A (en) * | 1995-04-28 | 1998-09-22 | Apple Computer, Inc. | Address tenure control for cache management wherein bus master addresses are internally latched in a cache controller |
| DE69629331T2 (de) * | 1995-06-02 | 2004-02-12 | Sun Microsystems, Inc., Mountain View | System und Verfahren zur Bereitstellung einer flexiblen Speicherhierarchie |
| US5652859A (en) * | 1995-08-17 | 1997-07-29 | Institute For The Development Of Emerging Architectures, L.L.C. | Method and apparatus for handling snoops in multiprocessor caches having internal buffer queues |
| US5802560A (en) * | 1995-08-30 | 1998-09-01 | Ramton International Corporation | Multibus cached memory system |
| US5778438A (en) * | 1995-12-06 | 1998-07-07 | Intel Corporation | Method and apparatus for maintaining cache coherency in a computer system with a highly pipelined bus and multiple conflicting snoop requests |
| US5778431A (en) * | 1995-12-19 | 1998-07-07 | Advanced Micro Devices, Inc. | System and apparatus for partially flushing cache memory |
| US5875462A (en) * | 1995-12-28 | 1999-02-23 | Unisys Corporation | Multi-processor data processing system with multiple second level caches mapable to all of addressable memory |
| DE69705072T2 (de) * | 1996-01-25 | 2002-03-21 | Unisys Corp., Blue Bell | Verfahren zur ausführung von lese- und schreibbefehlen in einem mehrstufigen verteilten datenverarbeitungssystem |
| US5765190A (en) * | 1996-04-12 | 1998-06-09 | Motorola Inc. | Cache memory in a data processing system |
| US5920891A (en) * | 1996-05-20 | 1999-07-06 | Advanced Micro Devices, Inc. | Architecture and method for controlling a cache memory |
| US5815675A (en) * | 1996-06-13 | 1998-09-29 | Vlsi Technology, Inc. | Method and apparatus for direct access to main memory by an I/O bus |
| US5875469A (en) * | 1996-08-26 | 1999-02-23 | International Business Machines Corporation | Apparatus and method of snooping processors and look-aside caches |
| JP3068469B2 (ja) * | 1996-08-28 | 2000-07-24 | 新潟日本電気株式会社 | 2次レベルキャッシュメモリシステム |
| US5963978A (en) * | 1996-10-07 | 1999-10-05 | International Business Machines Corporation | High level (L2) cache and method for efficiently updating directory entries utilizing an n-position priority queue and priority indicators |
| US5860100A (en) * | 1996-10-07 | 1999-01-12 | International Business Machines Corporation | Pipelined flushing of a high level cache and invalidation of lower level caches |
| US5946710A (en) * | 1996-11-14 | 1999-08-31 | Unisys Corporation | Selectable two-way, four-way double cache interleave scheme |
| US5894575A (en) * | 1996-11-25 | 1999-04-13 | International Business Machines Corporation | Method and system for initial state determination for instruction trace reconstruction |
| US6052762A (en) * | 1996-12-02 | 2000-04-18 | International Business Machines Corp. | Method and apparatus for reducing system snoop latency |
| US5809528A (en) * | 1996-12-24 | 1998-09-15 | International Business Machines Corporation | Method and circuit for a least recently used replacement mechanism and invalidated address handling in a fully associative many-way cache memory |
| US5960455A (en) * | 1996-12-30 | 1999-09-28 | Unisys Corporation | Scalable cross bar type storage controller |
| US5875201A (en) * | 1996-12-30 | 1999-02-23 | Unisys Corporation | Second level cache having instruction cache parity error control |
| US6122711A (en) | 1997-01-07 | 2000-09-19 | Unisys Corporation | Method of and apparatus for store-in second level cache flush |
| US5860093A (en) * | 1997-01-21 | 1999-01-12 | Unisys Corporation | Reduced instruction processor/storage controller interface |
| US5937172A (en) * | 1997-04-14 | 1999-08-10 | International Business Machines Corporation | Apparatus and method of layering cache and architectural specific functions to permit generic interface definition |
| US6061762A (en) * | 1997-04-14 | 2000-05-09 | International Business Machines Corporation | Apparatus and method for separately layering cache and architectural specific functions in different operational controllers |
| US6032226A (en) * | 1997-04-14 | 2000-02-29 | International Business Machines Corporation | Method and apparatus for layering cache and architectural specific functions to expedite multiple design |
| US6061755A (en) * | 1997-04-14 | 2000-05-09 | International Business Machines Corporation | Method of layering cache and architectural specific functions to promote operation symmetry |
| US5960457A (en) * | 1997-05-01 | 1999-09-28 | Advanced Micro Devices, Inc. | Cache coherency test system and methodology for testing cache operation in the presence of an external snoop |
| US5923898A (en) * | 1997-05-14 | 1999-07-13 | International Business Machines Corporation | System for executing I/O request when an I/O request queue entry matches a snoop table entry or executing snoop when not matched |
| US5991847A (en) * | 1997-06-06 | 1999-11-23 | Acceleration Software International Corporation | Data pattern caching for speeding up write operations |
| US6065101A (en) | 1997-06-12 | 2000-05-16 | International Business Machines Corporation | Pipelined snooping of multiple L1 cache lines |
| US5940877A (en) * | 1997-06-12 | 1999-08-17 | International Business Machines Corporation | Cache address generation with and without carry-in |
| US5996048A (en) * | 1997-06-20 | 1999-11-30 | Sun Microsystems, Inc. | Inclusion vector architecture for a level two cache |
| US5991855A (en) * | 1997-07-02 | 1999-11-23 | Micron Electronics, Inc. | Low latency memory read with concurrent pipe lined snoops |
| US6138209A (en) * | 1997-09-05 | 2000-10-24 | International Business Machines Corporation | Data processing system and multi-way set associative cache utilizing class predict data structure and method thereof |
| US6081876A (en) * | 1997-09-22 | 2000-06-27 | Hewlett-Packard Company | Memory error containment in network cache environment via restricted access |
| US6212602B1 (en) * | 1997-12-17 | 2001-04-03 | Sun Microsystems, Inc. | Cache tag caching |
| US6175930B1 (en) * | 1998-02-17 | 2001-01-16 | International Business Machines Corporation | Demand based sync bus operation |
| US6202129B1 (en) * | 1998-03-31 | 2001-03-13 | Intel Corporation | Shared cache structure for temporal and non-temporal information using indicative bits |
| US6643745B1 (en) * | 1998-03-31 | 2003-11-04 | Intel Corporation | Method and apparatus for prefetching data into cache |
| US6865642B2 (en) * | 1998-06-24 | 2005-03-08 | International Business Machines Corporation | Method and apparatus for disk caching for an intermediary controller |
| US6385703B1 (en) * | 1998-12-03 | 2002-05-07 | Intel Corporation | Speculative request pointer advance for fast back-to-back reads |
| KR20000046877A (ko) * | 1998-12-31 | 2000-07-25 | 구자홍 | 냉장실 과냉/약냉 보상회로 |
| TW418360B (en) * | 1999-03-02 | 2001-01-11 | Via Tech Inc | Memory access controller |
| 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 |
| US6745298B2 (en) * | 1999-06-16 | 2004-06-01 | Intel Corporation | Internal processor buffering for implicit writebacks |
| US6708294B1 (en) * | 1999-09-08 | 2004-03-16 | Fujitsu Limited | Cache memory apparatus and computer readable recording medium on which a program for controlling a cache memory is recorded |
| US6327645B1 (en) | 1999-11-08 | 2001-12-04 | Silicon Integrated Systems Corp. | Cache memory system with memory request address queue, cache write address queue, and cache read address queue |
| US6513091B1 (en) | 1999-11-12 | 2003-01-28 | International Business Machines Corporation | Data routing using status-response signals |
| US6557069B1 (en) | 1999-11-12 | 2003-04-29 | International Business Machines Corporation | Processor-memory bus architecture for supporting multiple processors |
| US6526469B1 (en) | 1999-11-12 | 2003-02-25 | International Business Machines Corporation | Bus architecture employing varying width uni-directional command bus |
| US6643752B1 (en) * | 1999-12-09 | 2003-11-04 | Rambus Inc. | Transceiver with latency alignment circuitry |
| JP4253097B2 (ja) * | 1999-12-28 | 2009-04-08 | 東芝マイクロエレクトロニクス株式会社 | 半導体記憶装置及びそのデータ読み出し方法 |
| US7404032B2 (en) | 2000-01-05 | 2008-07-22 | Rambus Inc. | Configurable width buffered module having switch elements |
| US7266634B2 (en) * | 2000-01-05 | 2007-09-04 | Rambus Inc. | Configurable width buffered module having flyby elements |
| US7356639B2 (en) | 2000-01-05 | 2008-04-08 | Rambus Inc. | Configurable width buffered module having a bypass circuit |
| US7363422B2 (en) * | 2000-01-05 | 2008-04-22 | Rambus Inc. | Configurable width buffered module |
| US7017002B2 (en) | 2000-01-05 | 2006-03-21 | Rambus, Inc. | System featuring a master device, a buffer device and a plurality of integrated circuit memory devices |
| US6502161B1 (en) * | 2000-01-05 | 2002-12-31 | Rambus Inc. | Memory system including a point-to-point linked memory subsystem |
| US6496917B1 (en) * | 2000-02-07 | 2002-12-17 | Sun Microsystems, Inc. | Method to reduce memory latencies by performing two levels of speculation |
| US6389517B1 (en) * | 2000-02-25 | 2002-05-14 | Sun Microsystems, Inc. | Maintaining snoop traffic throughput in presence of an atomic operation a first port for a first queue tracks cache requests and a second port for a second queue snoops that have yet to be filtered |
| US6928520B2 (en) * | 2000-04-30 | 2005-08-09 | Hewlett-Packard Development Company, L.P. | Memory controller that provides memory line caching and memory transaction coherency by using at least one memory controller agent |
| US6763433B1 (en) | 2000-10-26 | 2004-07-13 | International Business Machines Corporation | High performance cache intervention mechanism for symmetric multiprocessor systems |
| US6704843B1 (en) | 2000-10-26 | 2004-03-09 | International Business Machines Corporation | Enhanced multiprocessor response bus protocol enabling intra-cache line reference exchange |
| US6721856B1 (en) * | 2000-10-26 | 2004-04-13 | International Business Machines Corporation | Enhanced cache management mechanism via an intelligent system bus monitor |
| US6601144B1 (en) | 2000-10-26 | 2003-07-29 | International Business Machines Corporation | Dynamic cache management in a symmetric multiprocessor system via snoop operation sequence analysis |
| US6631450B1 (en) * | 2000-10-26 | 2003-10-07 | International Business Machines Corporation | Symmetric multiprocessor address bus protocol with intra-cache line access information |
| US6629210B1 (en) | 2000-10-26 | 2003-09-30 | International Business Machines Corporation | Intelligent cache management mechanism via processor access sequence analysis |
| US6640289B2 (en) * | 2000-11-15 | 2003-10-28 | Unisys Corporation | Software controlled cache line ownership affinity enhancements in a multiprocessor environment |
| US6546468B2 (en) | 2000-12-27 | 2003-04-08 | International Business Machines Corporation | Multiprocessor system snoop scheduling mechanism for limited bandwidth snoopers performing directory update |
| US6601145B2 (en) * | 2000-12-27 | 2003-07-29 | International Business Machines Corporation | Multiprocessor system snoop scheduling mechanism for limited bandwidth snoopers that uses dynamic hardware/software controls |
| US6647466B2 (en) * | 2001-01-25 | 2003-11-11 | Hewlett-Packard Development Company, L.P. | Method and apparatus for adaptively bypassing one or more levels of a cache hierarchy |
| US6546470B1 (en) | 2001-03-12 | 2003-04-08 | International Business Machines Corporation | Multiprocessor system snoop scheduling mechanism for limited bandwidth snoopers with banked directory implementation |
| US6546469B2 (en) * | 2001-03-12 | 2003-04-08 | International Business Machines Corporation | Multiprocessor system snoop scheduling mechanism for limited bandwidth snoopers |
| EP1304620A1 (en) * | 2001-10-17 | 2003-04-23 | Texas Instruments Incorporated | Cache with selective write allocation |
| US7617329B2 (en) * | 2002-12-30 | 2009-11-10 | Intel Corporation | Programmable protocol to support coherent and non-coherent transactions in a multinode system |
| US6976132B2 (en) * | 2003-03-28 | 2005-12-13 | International Business Machines Corporation | Reducing latency of a snoop tenure |
| US7240165B2 (en) * | 2004-01-15 | 2007-07-03 | Hewlett-Packard Development Company, L.P. | System and method for providing parallel data requests |
| US7962696B2 (en) * | 2004-01-15 | 2011-06-14 | Hewlett-Packard Development Company, L.P. | System and method for updating owner predictors |
| US7562271B2 (en) | 2005-09-26 | 2009-07-14 | Rambus Inc. | Memory system topologies including a buffer device and an integrated circuit memory device |
| US11328764B2 (en) | 2005-09-26 | 2022-05-10 | Rambus Inc. | Memory system topologies including a memory die stack |
| US7464225B2 (en) | 2005-09-26 | 2008-12-09 | Rambus Inc. | Memory module including a plurality of integrated circuit memory devices and a plurality of buffer devices in a matrix topology |
| US7406571B2 (en) * | 2006-02-09 | 2008-07-29 | International Business Machines Corporation | Memory system and method for controlling the same, and method for maintaining data coherency |
| JP4576453B2 (ja) * | 2006-02-24 | 2010-11-10 | 富士通株式会社 | キャッシュ制御回路、情報処理装置および切り離し方法 |
| US8949545B2 (en) * | 2008-12-04 | 2015-02-03 | Freescale Semiconductor, Inc. | Memory interface device and methods thereof |
| US20100162126A1 (en) * | 2008-12-23 | 2010-06-24 | Palm, Inc. | Predictive cache techniques |
| US20110231781A1 (en) * | 2010-03-19 | 2011-09-22 | International Business Machines Corporation | System and method for virtual object sharing and management in virtual worlds |
| US8458405B2 (en) * | 2010-06-23 | 2013-06-04 | International Business Machines Corporation | Cache bank modeling with variable access and busy times |
| US9075720B2 (en) | 2010-10-04 | 2015-07-07 | International Business Machines Corporation | Locking a cache line for write operations on a bus |
| US9244841B2 (en) * | 2012-12-31 | 2016-01-26 | Advanced Micro Devices, Inc. | Merging eviction and fill buffers for cache line transactions |
| US9436600B2 (en) * | 2013-06-11 | 2016-09-06 | Svic No. 28 New Technology Business Investment L.L.P. | Non-volatile memory storage for multi-channel memory system |
| US10176096B2 (en) | 2016-02-22 | 2019-01-08 | Qualcomm Incorporated | Providing scalable dynamic random access memory (DRAM) cache management using DRAM cache indicator caches |
| CN113515471B (zh) * | 2016-06-14 | 2024-06-18 | 伊姆西Ip控股有限责任公司 | 用于管理存储系统的方法和装置 |
| US10795818B1 (en) * | 2018-09-12 | 2020-10-06 | Apple Inc. | Method and apparatus for ensuring real-time snoop latency |
| US10949346B2 (en) | 2018-11-08 | 2021-03-16 | International Business Machines Corporation | Data flush of a persistent memory cache or buffer |
| US10909035B2 (en) | 2019-04-03 | 2021-02-02 | Apple Inc. | Processing memory accesses while supporting a zero size cache in a cache hierarchy |
| US11023375B1 (en) | 2020-02-21 | 2021-06-01 | SiFive, Inc. | Data cache with hybrid writeback and writethrough |
Family Cites Families (15)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| FR2472232B1 (fr) * | 1979-12-14 | 1988-04-22 | Honeywell Inf Systems | Dispositif et procede d'effacement d'antememoire |
| US4467414A (en) * | 1980-08-22 | 1984-08-21 | Nippon Electric Co., Ltd. | Cashe memory arrangement comprising a cashe buffer in combination with a pair of cache memories |
| US4481573A (en) * | 1980-11-17 | 1984-11-06 | Hitachi, Ltd. | Shared virtual address translation unit for a multiprocessor system |
| US4445174A (en) * | 1981-03-31 | 1984-04-24 | International Business Machines Corporation | Multiprocessing system including a shared cache |
| US4442487A (en) * | 1981-12-31 | 1984-04-10 | International Business Machines Corporation | Three level memory hierarchy using write and share flags |
| US4755930A (en) * | 1985-06-27 | 1988-07-05 | Encore Computer Corporation | Hierarchical cache memory system and method |
| US4797814A (en) * | 1986-05-01 | 1989-01-10 | International Business Machines Corporation | Variable address mode cache |
| FR2609195A1 (fr) * | 1986-12-31 | 1988-07-01 | Thomson Csf | Procede de gestion d'antememoires associees a des processeurs dans une architecture multiprocesseur a bus unique et systeme de traitement de donnees fonctionnant suivant ce procede |
| US4802085A (en) * | 1987-01-22 | 1989-01-31 | National Semiconductor Corporation | Apparatus and method for detecting and handling memory-mapped I/O by a pipelined microprocessor |
| JPH0290259A (ja) * | 1988-09-27 | 1990-03-29 | Hitachi Ltd | マルチプロセッサシステム |
| US5214767A (en) * | 1989-02-07 | 1993-05-25 | Compaq Computer Corp. | Full address and odd boundary direct memory access controller which determines address size by counting the input address bytes |
| JPH02253356A (ja) * | 1989-03-28 | 1990-10-12 | Toshiba Corp | 階層キャッシュメモリ装置とその制御方式 |
| AU626117B2 (en) * | 1989-08-31 | 1992-07-23 | Sun Microsystems, Inc. | Computer system architecture for improved floating point performance |
| US5136700A (en) * | 1989-12-22 | 1992-08-04 | Digital Equipment Corporation | Apparatus and method for reducing interference in two-level cache memories |
| CA2043493C (en) * | 1990-10-05 | 1997-04-01 | Ricky C. Hetherington | Hierarchical integrated circuit cache memory |
-
1992
- 1992-04-13 GB GB9208138A patent/GB2256512B/en not_active Expired - Fee Related
- 1992-05-28 JP JP4160031A patent/JPH05181745A/ja active Pending
- 1992-06-01 DE DE4218003A patent/DE4218003C2/de not_active Expired - Fee Related
- 1992-06-02 FR FR9206641A patent/FR2677472B1/fr not_active Expired - Fee Related
-
1994
- 1994-03-08 US US08/208,090 patent/US5355467A/en not_active Expired - Lifetime
-
1995
- 1995-09-28 HK HK153995A patent/HK153995A/xx not_active IP Right Cessation
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2015106312A (ja) * | 2013-11-29 | 2015-06-08 | 富士通株式会社 | 並列計算機システム、並列計算機システムの制御方法、情報処理装置、演算処理装置および通信制御装置 |
| JP2021506033A (ja) * | 2017-12-12 | 2021-02-18 | アドバンスト・マイクロ・ディバイシズ・インコーポレイテッドAdvanced Micro Devices Incorporated | キャッシュ制御を考慮したメモリコントローラ |
Also Published As
| Publication number | Publication date |
|---|---|
| GB2256512A (en) | 1992-12-09 |
| FR2677472A1 (fr) | 1992-12-11 |
| DE4218003C2 (de) | 1997-08-21 |
| GB9208138D0 (en) | 1992-05-27 |
| GB2256512B (en) | 1995-03-15 |
| FR2677472B1 (fr) | 1997-04-18 |
| HK153995A (en) | 1995-10-06 |
| DE4218003A1 (de) | 1992-12-10 |
| US5355467A (en) | 1994-10-11 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5355467A (en) | Second level cache controller unit and system | |
| US12235767B2 (en) | Memory interface having multiple snoop processors | |
| EP3534269B1 (en) | Memory interface | |
| US5715428A (en) | Apparatus for maintaining multilevel cache hierarchy coherency in a multiprocessor computer system | |
| US5692152A (en) | Master-slave cache system with de-coupled data and tag pipelines and loop-back | |
| US11914514B2 (en) | Data coherency manager with mapping between physical and virtual address spaces | |
| US6292705B1 (en) | Method and apparatus for address transfers, system serialization, and centralized cache and transaction control, in a symetric multiprocessor system | |
| US5627992A (en) | Organization of an integrated cache unit for flexible usage in supporting microprocessor operations | |
| US5353415A (en) | Method and apparatus for concurrency of bus operations | |
| US5325503A (en) | Cache memory system which snoops an operation to a first location in a cache line and does not snoop further operations to locations in the same line | |
| EP2430551B1 (en) | Cache coherent support for flash in a memory hierarchy | |
| US5561779A (en) | Processor board having a second level writeback cache system and a third level writethrough cache system which stores exclusive state information for use in a multiprocessor computer system | |
| JP2717752B2 (ja) | プロセッサ | |
| US12271314B2 (en) | Cache size change | |
| US5797026A (en) | Method and apparatus for self-snooping a bus during a boundary transaction | |
| US6374332B1 (en) | Cache control system for performing multiple outstanding ownership requests | |
| ZA200205198B (en) | A cache line flush instruction and method, apparatus, and system for implementing the same. | |
| US5822756A (en) | Microprocessor cache memory way prediction based on the way of a previous memory read | |
| US5829027A (en) | Removable processor board having first, second and third level cache system for use in a multiprocessor computer system | |
| EP0681241A1 (en) | Processor board having a second level writeback cache system and a third level writethrough cache system which stores exclusive state information for use in a multiprocessor computer system | |
| US5699550A (en) | Computer system cache performance on write allocation cycles by immediately setting the modified bit true | |
| US5835948A (en) | Single bank, multiple way cache memory | |
| US20080059713A1 (en) | Cache eviction | |
| US5781925A (en) | Method of preventing cache corruption during microprocessor pipelined burst operations | |
| US7035981B1 (en) | Asynchronous input/output cache having reduced latency |