JP2686849B2 - 集積回路キャッシュメモリ - Google Patents
集積回路キャッシュメモリInfo
- Publication number
- JP2686849B2 JP2686849B2 JP5500670A JP50067092A JP2686849B2 JP 2686849 B2 JP2686849 B2 JP 2686849B2 JP 5500670 A JP5500670 A JP 5500670A JP 50067092 A JP50067092 A JP 50067092A JP 2686849 B2 JP2686849 B2 JP 2686849B2
- Authority
- JP
- Japan
- Prior art keywords
- memory
- cpu
- cache
- bus
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0877—Cache access modes
- G06F12/0879—Burst mode
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)
Description
【発明の詳細な説明】 本出願は、本出願の出願に係る「マイクロプロセッサ
利用コンピュータのキャッシュサブシステム」米国特許
出願第07/710079号(1991年6月4日出願)及び「二次
レベルキャッシュ制御器」米国特許出願第07/710507号
(1991年6月4日出願)に関連する。
利用コンピュータのキャッシュサブシステム」米国特許
出願第07/710079号(1991年6月4日出願)及び「二次
レベルキャッシュ制御器」米国特許出願第07/710507号
(1991年6月4日出願)に関連する。
発明の背景 1.発明の分野 本発明は一般に、マイクロプロセッサの分野に関し、
特に、コンピュータシステムにおいて中央処理装置(CP
U)と主メモリとの間のメモリ階層のレベルを表わすキ
ャッシュメモリに関する。
特に、コンピュータシステムにおいて中央処理装置(CP
U)と主メモリとの間のメモリ階層のレベルを表わすキ
ャッシュメモリに関する。
2.背景知識 歴史的にいえば、マイクロプロセッサ技術への要求は
DRAM及びTTL/プログラム可能論理などの支援技術より速
い速度で増加している。最近では、以下に説明するよう
に、このずれは一層悪化する傾向にある。第1に、マイ
クロプロセッサのクロック速度は規格の支援論理のクロ
ック速度に急速に近づきつつあり、場合によっては、支
援論理のクロック速度を越えている。加えて、命令ごと
のクロック数は急速に低減しているので、メモリには非
常に大きな帯域幅が要求されることになる。RISCアーキ
テクチャなどのより新しいデザインは同じ量の作業を実
行するのに絶えずメモリ帯域幅を要求している。双対プ
ロセッサや多重プロセッサなどの装置は直接メモリアク
セス(DMA)を必要とするため、メモリ帯域幅への要求
はさらに厳しくなる。最後に、新しい装置が市場に導入
される速度は増しており−以上述べた点は全て悪化する
ことになる。
DRAM及びTTL/プログラム可能論理などの支援技術より速
い速度で増加している。最近では、以下に説明するよう
に、このずれは一層悪化する傾向にある。第1に、マイ
クロプロセッサのクロック速度は規格の支援論理のクロ
ック速度に急速に近づきつつあり、場合によっては、支
援論理のクロック速度を越えている。加えて、命令ごと
のクロック数は急速に低減しているので、メモリには非
常に大きな帯域幅が要求されることになる。RISCアーキ
テクチャなどのより新しいデザインは同じ量の作業を実
行するのに絶えずメモリ帯域幅を要求している。双対プ
ロセッサや多重プロセッサなどの装置は直接メモリアク
セス(DMA)を必要とするため、メモリ帯域幅への要求
はさらに厳しくなる。最後に、新しい装置が市場に導入
される速度は増しており−以上述べた点は全て悪化する
ことになる。
このような傾向があるために、システムを設計する上
で影響を及ぼし続ける性能上の2つの重大な障害があ
る。性能を制限するものとしてのメモリ帯域幅は既に数
多くのマイクロプロセッサシステムにおけるキャッシュ
メモリの使用を強制していた。例を挙げると、キャッシ
ュメモリの使用はIntel Corporation製造の80386TM世代
のマイクロプロセッサはありふれたことである。また、
Intelの80486TMマイクロプロセッサ、i860TMマイクロプ
ロセッサ及びi860XPTMマイクロプロセッサは、性能を向
上させるために、オンチップキャッシュを含む。将来の
世代における性能の向上を支えるために、メモリ階層
(一次キャッシュ、二次キャッシュ、DRAMアーキテクチ
ャなど)のそれ以上の変更が必要であることは明らかで
ある。(尚、「Intel」、「80386」、「80486」、「i86
0」及び「i860XP」は全てIntel Corporationの商標であ
る。) 性能上のもう1つの障害はクロック速度と入出力(I/
O)タイミングである。マイクロプロセッサのクロック
速度(及びその結果としての入出力タイミング)を増加
させ続けるために要求される投資をシステムの全ての構
成要素にわたって支えきれないことは明らかになってい
る。出資する余裕があったとしても、単純きわまりない
作業、調整及びマルチベンダの可能性がもつスケジュー
ル上の影響によって、そのようなアーキテクチャはたや
すく競合に耐えないものとなってしまうであろう。これ
らの要因によって、システム構成要素のサブセットに対
する周波数スケーリングの問題を隔離するために、既に
非同期インタフェースの使用が強制されていた。将来
は、所望のレベルの性能に到達するために、より一層厳
密に管理された仕様を中心として高速CPUインタフェー
スを設計することが必要になるであろう。
で影響を及ぼし続ける性能上の2つの重大な障害があ
る。性能を制限するものとしてのメモリ帯域幅は既に数
多くのマイクロプロセッサシステムにおけるキャッシュ
メモリの使用を強制していた。例を挙げると、キャッシ
ュメモリの使用はIntel Corporation製造の80386TM世代
のマイクロプロセッサはありふれたことである。また、
Intelの80486TMマイクロプロセッサ、i860TMマイクロプ
ロセッサ及びi860XPTMマイクロプロセッサは、性能を向
上させるために、オンチップキャッシュを含む。将来の
世代における性能の向上を支えるために、メモリ階層
(一次キャッシュ、二次キャッシュ、DRAMアーキテクチ
ャなど)のそれ以上の変更が必要であることは明らかで
ある。(尚、「Intel」、「80386」、「80486」、「i86
0」及び「i860XP」は全てIntel Corporationの商標であ
る。) 性能上のもう1つの障害はクロック速度と入出力(I/
O)タイミングである。マイクロプロセッサのクロック
速度(及びその結果としての入出力タイミング)を増加
させ続けるために要求される投資をシステムの全ての構
成要素にわたって支えきれないことは明らかになってい
る。出資する余裕があったとしても、単純きわまりない
作業、調整及びマルチベンダの可能性がもつスケジュー
ル上の影響によって、そのようなアーキテクチャはたや
すく競合に耐えないものとなってしまうであろう。これ
らの要因によって、システム構成要素のサブセットに対
する周波数スケーリングの問題を隔離するために、既に
非同期インタフェースの使用が強制されていた。将来
は、所望のレベルの性能に到達するために、より一層厳
密に管理された仕様を中心として高速CPUインタフェー
スを設計することが必要になるであろう。
従来の方式の欠点となっている特徴のうち典型的なも
のは、CPUインタフェースとメモリインタフェースの双
方での並行動作を支援するのが不可能であるということ
である。すなわち、読取り/書き込み記憶装置アレイを
アクセスするたびに、データの一部分のみが転送される
のである。これは各キャッシュ行を獲得するためには、
他方のインタフェースからのアクセスをブロックしつ
つ、キャッシュSRAMアレイを繰り返しアクセスしなけれ
ばならないということを意味している。あるいは、SRAM
の幅広いバンクをそれに対応する外部マルチプレクサと
共に採用することも可能であろうが、それは、複雑さと
コストが付加されるという相当の犠牲があって始めてで
きることである。
のは、CPUインタフェースとメモリインタフェースの双
方での並行動作を支援するのが不可能であるということ
である。すなわち、読取り/書き込み記憶装置アレイを
アクセスするたびに、データの一部分のみが転送される
のである。これは各キャッシュ行を獲得するためには、
他方のインタフェースからのアクセスをブロックしつ
つ、キャッシュSRAMアレイを繰り返しアクセスしなけれ
ばならないということを意味している。あるいは、SRAM
の幅広いバンクをそれに対応する外部マルチプレクサと
共に採用することも可能であろうが、それは、複雑さと
コストが付加されるという相当の犠牲があって始めてで
きることである。
従来のキャッシュメモリに共通するもう1つの欠点
は、どの転送も同期させる必要があることである。言い
かえれば、メモリバスから到着したデータをCPUバスへ
転送できるようになる前に、マイクロプロセッサクロッ
クと同期してハンドシェークを起こさなければならな
い。このプロセスは、メモリバスからのデータ転送ごと
に繰り返さなければならない。尚、これはメモリバス
と、CPUバスとの間のデータの転送が同期動作を要求す
ることを別の言いかたで表わしているにすぎない。その
ような動作は、特にCPUクロック速度が増したときに、
コンピュータシステムの性能に重大な負担を負わせるの
である。
は、どの転送も同期させる必要があることである。言い
かえれば、メモリバスから到着したデータをCPUバスへ
転送できるようになる前に、マイクロプロセッサクロッ
クと同期してハンドシェークを起こさなければならな
い。このプロセスは、メモリバスからのデータ転送ごと
に繰り返さなければならない。尚、これはメモリバス
と、CPUバスとの間のデータの転送が同期動作を要求す
ることを別の言いかたで表わしているにすぎない。その
ような動作は、特にCPUクロック速度が増したときに、
コンピュータシステムの性能に重大な負担を負わせるの
である。
以下からわかるように、本発明は、CPU/キャッシュコ
アアーキテクチャの中で採用され、先に説明した性能上
の障害を克服しようとする集積キャッシュメモリを開示
する。80486のようなマイクロプロセッサと関連して利
用した場合、本発明のキャッシュによる解決方式の数多
くの特徴は、それらのCPUの性能を以前は実現されなか
った速度(たとえば、>50MHz)に線形スケーリングす
ることができることである。
アアーキテクチャの中で採用され、先に説明した性能上
の障害を克服しようとする集積キャッシュメモリを開示
する。80486のようなマイクロプロセッサと関連して利
用した場合、本発明のキャッシュによる解決方式の数多
くの特徴は、それらのCPUの性能を以前は実現されなか
った速度(たとえば、>50MHz)に線形スケーリングす
ることができることである。
発明の概要及び目的 従って、本発明の1つの目的は、従来の技術の特性を
示す欠点を克服し且つコンピュータシステムの総性能を
向上させるキャッシュメモリを提供することである。
示す欠点を克服し且つコンピュータシステムの総性能を
向上させるキャッシュメモリを提供することである。
本発明の別の目的は、直接メモリアクセス(DMA)及
び多重プロセッサ構成に関してシステム性能を向上させ
るためにCPU動作と、メモリバス動作との間にできる限
り多くの同時性を保つキャッシュを提供することであ
る。
び多重プロセッサ構成に関してシステム性能を向上させ
るためにCPU動作と、メモリバス動作との間にできる限
り多くの同時性を保つキャッシュを提供することであ
る。
本発明の別の目的は、DMA装置及び/又は複数のプロ
セッサに−二次キャッシュを有していても、いなくても
−共通のメモリを共用させるキャッシュメモリ一貫性メ
カニズムを提供することである。
セッサに−二次キャッシュを有していても、いなくても
−共通のメモリを共用させるキャッシュメモリ一貫性メ
カニズムを提供することである。
本発明のさらに別の目的は、CPUバスからメモリバス
へSRAMアレイを妨害せずに透明性をもってデータを転送
させるキャッシュメモリを提供することである。
へSRAMアレイを妨害せずに透明性をもってデータを転送
させるキャッシュメモリを提供することである。
本発明の別の目的は、SRAMアレイの中へ又はSRAMアレ
イから1つのCPUクロック周期の中で情報を転送するこ
とができるキャッシュメモリを提供することである。
イから1つのCPUクロック周期の中で情報を転送するこ
とができるキャッシュメモリを提供することである。
本発明のさらに別の目的は、メモリバスとCPUバスと
の間でデータを非同期的に転送するキャッシュメモリを
提供することである。
の間でデータを非同期的に転送するキャッシュメモリを
提供することである。
本発明のさらに別の目的は、メモリバスバッファ機能
及びCPUバスバッファ機能を単一の集積回路においてSRA
Mアレイと組合わせるキャッシュメモリ回路を提供する
ことである。
及びCPUバスバッファ機能を単一の集積回路においてSRA
Mアレイと組合わせるキャッシュメモリ回路を提供する
ことである。
本発明の別の目的は、内部SRAMアレイに対する、キャ
ッシュ行1行分の幅をもつインタフェースを有するキャ
ッシュメモリを提供することである。
ッシュ行1行分の幅をもつインタフェースを有するキャ
ッシュメモリを提供することである。
本発明のさらに別の目的は、メモリバス制御装置に対
するインタフェースがCPU待ち時間を最小にするような
効率の良いキャッシュメモリを提供することである。
するインタフェースがCPU待ち時間を最小にするような
効率の良いキャッシュメモリを提供することである。
本発明のさらに別の目的は、CPUクロック速度のスケ
ーリングを容易にするために80486などのマイクロプロ
セッサにおける性能の線形スケーリングを可能にする、
CPU/キャッシュコアアーキテクチャと共に使用するため
のキャッシュメモリを可能にすることである。
ーリングを容易にするために80486などのマイクロプロ
セッサにおける性能の線形スケーリングを可能にする、
CPU/キャッシュコアアーキテクチャと共に使用するため
のキャッシュメモリを可能にすることである。
本発明のこれらの目的及びその他の目的に従って、キ
ャッシュSRAM記憶素子を実現する集積回路を開示する。
キャッシュメモリ回路は、多数の変形を伴なうMESIプロ
トコルと、データ併合を伴なう書込み割当てと、効率良
い2ウエイ動作のためのMRU予測と、内包を使用する2
レベルキャッシュ一貫性(M状態一次キャッシュ行のラ
イトバックのためのデータ併合を含む)とを含むキャッ
シュサブシステムの一部である。
ャッシュSRAM記憶素子を実現する集積回路を開示する。
キャッシュメモリ回路は、多数の変形を伴なうMESIプロ
トコルと、データ併合を伴なう書込み割当てと、効率良
い2ウエイ動作のためのMRU予測と、内包を使用する2
レベルキャッシュ一貫性(M状態一次キャッシュ行のラ
イトバックのためのデータ併合を含む)とを含むキャッ
シュサブシステムの一部である。
一実施例では、中央処理装置(CPU)を有するマイク
ロプロセッサ利用コンピュータシステムはCPUバスに結
合している。CPUバスはCPUクロック信号に対して同期的
に動作する。コンピュータシステムは、主メモリに結合
するメモリバスをさらに含む。本発明による集積キャッ
シュメモリ回路はスタティックランダムアクセスメモリ
(SRAM)アレイによって主メモリの一部を一時的に保持
する。
ロプロセッサ利用コンピュータシステムはCPUバスに結
合している。CPUバスはCPUクロック信号に対して同期的
に動作する。コンピュータシステムは、主メモリに結合
するメモリバスをさらに含む。本発明による集積キャッ
シュメモリ回路はスタティックランダムアクセスメモリ
(SRAM)アレイによって主メモリの一部を一時的に保持
する。
CPUバスを介するバースト読取り動作及びバースト書
込み動作を最適化するためのCPUmux/バッファ手段を具
備するCPUバスインタフェースが含まれている。CPUmux/
バッファ手段によって、SRAMアレイの1回のアクセスで
キャッシュ行1行分を読取る/書込むことができる。CP
Uバスインタフェースの中では、CPUにより規定される順
序でCPUバーストを制御できる制御論理手段を利用す
る。部分行書込みと割当てを支援するために、CPUバッ
ファには有効ビットが取り入れられている。
込み動作を最適化するためのCPUmux/バッファ手段を具
備するCPUバスインタフェースが含まれている。CPUmux/
バッファ手段によって、SRAMアレイの1回のアクセスで
キャッシュ行1行分を読取る/書込むことができる。CP
Uバスインタフェースの中では、CPUにより規定される順
序でCPUバーストを制御できる制御論理手段を利用す
る。部分行書込みと割当てを支援するために、CPUバッ
ファには有効ビットが取り入れられている。
大きなキャッシュ行もメモリ側で支援される。現時点
での実施例では、キャッシュ一貫性プロトコルはメモリ
バスキャッシュ行がCPUキャッシュ行のサイズより大き
いか又はそれと等しいことを要求する。従って、本発明
は1x、2x、4x、8x又はそれより大きい行比を支援するこ
とができる。より大きなキャッシュ行を支援するため
に、あるいは、メモリバスの相対的に遅い速度を考慮に
入れるために、より広いメモリバス幅も容易になってい
る。現在、支援されるのは1x、2x、4xの幅比である。
での実施例では、キャッシュ一貫性プロトコルはメモリ
バスキャッシュ行がCPUキャッシュ行のサイズより大き
いか又はそれと等しいことを要求する。従って、本発明
は1x、2x、4x、8x又はそれより大きい行比を支援するこ
とができる。より大きなキャッシュ行を支援するため
に、あるいは、メモリバスの相対的に遅い速度を考慮に
入れるために、より広いメモリバス幅も容易になってい
る。現在、支援されるのは1x、2x、4xの幅比である。
集積キャッシュメモリ回路はメモリバスインタフェー
ス−メモリバス読取り、ライトスルー、ライトバック及
びスヌープを実行するときに使用される複数の内部バッ
ファを含む−をさらに具備する。メモリバスインタフェ
ースは、特定のメモリバスサイクルの間に利用すべき適
切な内部バッファを確定する追跡論理手段をさらに具備
する。
ス−メモリバス読取り、ライトスルー、ライトバック及
びスヌープを実行するときに使用される複数の内部バッ
ファを含む−をさらに具備する。メモリバスインタフェ
ースは、特定のメモリバスサイクルの間に利用すべき適
切な内部バッファを確定する追跡論理手段をさらに具備
する。
本発明の重要な特徴は、メモリバスからCPUバスへ透
過性をもってデータを送り、CPUバスからメモリバスへ
透過性をもってデータを送るため、CPUバスインタフェ
ースとメモリバスインタフェースとの相互間に、データ
経路を組込んだことである。それらの転送は、SRAMアレ
イを妨害することなしに実行できるという点で透過性な
いし透明である。すなわち、上記のデータ経路は、SRAM
アレイをCPUバスインタフェース又はメモリバスインタ
フェースに結合する経路とは分離している。言いかえれ
ば、本発明は、キャッシュとは関係しないサイクル中、
バイパス経路によってキャッシュ記憶装置アレイに対し
二重ポートアクセスを実行する。この機能は、並行動作
を支援すると共に、メモリバスとCPUバスの転送プロト
コルを分離するように設計されている。
過性をもってデータを送り、CPUバスからメモリバスへ
透過性をもってデータを送るため、CPUバスインタフェ
ースとメモリバスインタフェースとの相互間に、データ
経路を組込んだことである。それらの転送は、SRAMアレ
イを妨害することなしに実行できるという点で透過性な
いし透明である。すなわち、上記のデータ経路は、SRAM
アレイをCPUバスインタフェース又はメモリバスインタ
フェースに結合する経路とは分離している。言いかえれ
ば、本発明は、キャッシュとは関係しないサイクル中、
バイパス経路によってキャッシュ記憶装置アレイに対し
二重ポートアクセスを実行する。この機能は、並行動作
を支援すると共に、メモリバスとCPUバスの転送プロト
コルを分離するように設計されている。
さらに、メモリバスインタフェースと、キャッシュメ
モリのそれ以外の要素との間のアクティビティは、CPU
クロック信号に対して同期して生じる。しかし、メモリ
バスインタフェースと、メモリバスとの間のアクティビ
ティは、CPUクロック信号に対して非同期に生じる。CPU
の側とメモリの側とが独立している非同期のデータ転送
制御、相対的に高速のCPUバスを、低速のメモリバスか
ら分離する。これにより、メモリバスインタフェースと
CPUバスインタフェースの双方それぞれにおける、独立
し(すなわち、各々のデータ転送をCPUに同期させる必
要がない)且つ並行する動作が可能になるので、キャッ
シュサブシステムの性能は相当に向上する。
モリのそれ以外の要素との間のアクティビティは、CPU
クロック信号に対して同期して生じる。しかし、メモリ
バスインタフェースと、メモリバスとの間のアクティビ
ティは、CPUクロック信号に対して非同期に生じる。CPU
の側とメモリの側とが独立している非同期のデータ転送
制御、相対的に高速のCPUバスを、低速のメモリバスか
ら分離する。これにより、メモリバスインタフェースと
CPUバスインタフェースの双方それぞれにおける、独立
し(すなわち、各々のデータ転送をCPUに同期させる必
要がない)且つ並行する動作が可能になるので、キャッ
シュサブシステムの性能は相当に向上する。
複数のキャッシュ行幅バッファは双方のポートの並行
動作を支援する。これらのバッファは、単一のCPUバッ
ファと、4つのメモリインタフェースバッファ(すなわ
ち、CPUからメモリへの転送のための2つ、置き換えラ
イトバックのための1つ及びスヌープライトバックのた
めの1つのバッファ)とを含むのが好ましい。同時性が
与えられるのは、これらのバッファがアレイに対してキ
ャッシュ行1行分の幅をもつインタフェースを有してい
るために、1回のクロックアクセスでピンにおける多重
クロックバーストを満たすことができるからである。
動作を支援する。これらのバッファは、単一のCPUバッ
ファと、4つのメモリインタフェースバッファ(すなわ
ち、CPUからメモリへの転送のための2つ、置き換えラ
イトバックのための1つ及びスヌープライトバックのた
めの1つのバッファ)とを含むのが好ましい。同時性が
与えられるのは、これらのバッファがアレイに対してキ
ャッシュ行1行分の幅をもつインタフェースを有してい
るために、1回のクロックアクセスでピンにおける多重
クロックバーストを満たすことができるからである。
本発明の実施例では、MRU予測を使用することによ
り、最小限のペナルティをもってマルチウエイキャッシ
ュをも支援する。データ経路は、CPUバス動作について
複数のウエイをアクセスすることにより、MRU予測を支
援する。MRUをアクセスするため(及び新たなMRUを提供
するため)に利用できる時間を最大にするよう、適正な
ウエイに関する多重化は最終レベルで実行される。MRU
ビットは、セットごとの最高使用頻度の(最も最近に使
用された)ウエイを指示するためにアレイに記憶され
る。キャッシュ制御装置は、予測が正確であるか否かを
判定するために、MRU(置き換えのために使用されるLRU
の逆)のコピーを有する。好ましい実施例においては、
2ウエイ動作が実現される。もっとも、プロトコルを3
ウエイ以上に拡張することは可能である。
り、最小限のペナルティをもってマルチウエイキャッシ
ュをも支援する。データ経路は、CPUバス動作について
複数のウエイをアクセスすることにより、MRU予測を支
援する。MRUをアクセスするため(及び新たなMRUを提供
するため)に利用できる時間を最大にするよう、適正な
ウエイに関する多重化は最終レベルで実行される。MRU
ビットは、セットごとの最高使用頻度の(最も最近に使
用された)ウエイを指示するためにアレイに記憶され
る。キャッシュ制御装置は、予測が正確であるか否かを
判定するために、MRU(置き換えのために使用されるLRU
の逆)のコピーを有する。好ましい実施例においては、
2ウエイ動作が実現される。もっとも、プロトコルを3
ウエイ以上に拡張することは可能である。
図面の簡単な説明 以下の詳細な説明及び本発明の好ましい実施例の添付
の図面から本発明をさらに十分に理解されるであろう
が、それらを特定の実施例に本発明を限定するものとし
てみなすべきではなく、それらは説明及び理解のみを目
的としている。
の図面から本発明をさらに十分に理解されるであろう
が、それらを特定の実施例に本発明を限定するものとし
てみなすべきではなく、それらは説明及び理解のみを目
的としている。
図1は、本発明の現時点で好ましい実施例の基本キャ
ッシュサブシステムのブロック線図を示す。
ッシュサブシステムのブロック線図を示す。
図2は、本発明による集積SRAMキャッシュの現時点で
好ましい実施例の回路ブロック線図である。
好ましい実施例の回路ブロック線図である。
図3は、本発明の現時点で好ましい実施例に従ったメ
モリデータ経路の詳細を示す。
モリデータ経路の詳細を示す。
図4は、本発明の現時点で好ましい実施例に関わるCP
Uデータ経路の詳細を示す。
Uデータ経路の詳細を示す。
図5は、本発明の現時点で好ましい実施例に従った非
パイプライン化CPU読取りヒットサイクルのタイミング
波形を示す。
パイプライン化CPU読取りヒットサイクルのタイミング
波形を示す。
図6は、本発明に従った3つの非パイプライン化書込
みヒットサイクルを示す。
みヒットサイクルを示す。
図7は、読取りがキャッシング可能ミスであるような
本発明によるメモリ読取りサイクルを示す。
本発明によるメモリ読取りサイクルを示す。
図8は、メモリ読取りに続いて、次のサイクルが先の
読取りと同一の行であり且つメモリ読取りがSRAMアレイ
に対してまだ完了していないような状態で本発明に従っ
て続いてゆく読取りミスを示す。
読取りと同一の行であり且つメモリ読取りがSRAMアレイ
に対してまだ完了していないような状態で本発明に従っ
て続いてゆく読取りミスを示す。
図9は、キャッシュ制御装置がスヌープヒットを受信
したならば、キャッシュ制御装置は本発明に変更後のデ
ータをメモリバスへ導入することを命令するような本発
明に従ったスヌープ動作に関わるライトバックを示す。
したならば、キャッシュ制御装置は本発明に変更後のデ
ータをメモリバスへ導入することを命令するような本発
明に従ったスヌープ動作に関わるライトバックを示す。
図10は、変更データを有するキャッシュ記憶場所に新
たな行が導入されるような本発明に従ったメモリ読取り
に関わるタイミング波形を示す。その結果、置き換えが
実行される。
たな行が導入されるような本発明に従ったメモリ読取り
に関わるタイミング波形を示す。その結果、置き換えが
実行される。
図11は、メモリバスライトスルーサイクルのタイミン
グ波形を示す。
グ波形を示す。
図12は、書込みミスに続いてキャッシュの新たな行が
割当てられるような本発明に従った割当てを伴なうライ
トスルーのタイミング波形を示す。
割当てられるような本発明に従った割当てを伴なうライ
トスルーのタイミング波形を示す。
図13は、メモリインタフェースにおける刻時モードの
バースト読取りサイクルを示す。
バースト読取りサイクルを示す。
図14は、メモリインタフェースにおける本発明に従っ
た刻時モードの折り返しメモリ読取りサイクルを示す。
た刻時モードの折り返しメモリ読取りサイクルを示す。
図15は、メモリインタフェースにおける待ち状態を伴
なうメモリ読取りサイクルを示す。
なうメモリ読取りサイクルを示す。
図16は、メモリインタフェースにおける刻時モードの
メモリ読取りサイクルの再始動を示す。
メモリ読取りサイクルの再始動を示す。
図17は、好ましい実施例についてメモリインタフェー
スにおける刻時モードの1回転送メモリ読取りサイクル
を示す。
スにおける刻時モードの1回転送メモリ読取りサイクル
を示す。
図18は、メモリインタフェースにおける刻時モードの
メモリバスからのバースト書込みサイクルを示す。
メモリバスからのバースト書込みサイクルを示す。
図19は、メモリインタフェースにおいて刻時モードの
折り返しバースト書込みサイクルを示すタイミング波形
である。
折り返しバースト書込みサイクルを示すタイミング波形
である。
図20は、待ち状態を伴なうメモリインタフェースにお
ける書込みサイクルを示すタイミング波形である。
ける書込みサイクルを示すタイミング波形である。
図21は、メモリインタフェースにおける刻時モードの
メモリ書込みサイクルの再始動を示す。
メモリ書込みサイクルの再始動を示す。
図22は、メモリインタフェースにおける刻時モードの
1回転送書込みサイクルを示す。
1回転送書込みサイクルを示す。
図23は、本発明の現時点で好ましい実施例に従ったメ
モリインタフェースにおける刻時モードの読取り−書込
み−読取りターンアラウンドのタイミング波形である。
モリインタフェースにおける刻時モードの読取り−書込
み−読取りターンアラウンドのタイミング波形である。
図24は、好ましい実施例についてメモリインタフェー
スにおける刻時モードの書込み−割当てシーケンスを示
す。
スにおける刻時モードの書込み−割当てシーケンスを示
す。
図25は、メモリインタフェースにおけるMOCLK信号と
出力データとの関係を示すタイミング図である。
出力データとの関係を示すタイミング図である。
図26は、メモリインタフェースにおける刻時モードの
CRDY#とMEOC#との関係を示すタイミング図である。
CRDY#とMEOC#との関係を示すタイミング図である。
図27は、メモリインタフェースにおけるストローブモ
ードのバースト読取りサイクルを示す。
ードのバースト読取りサイクルを示す。
図28は、本発明に従ってメモリインタフェースにおい
てストローブモードの折り返しバースト読取りを示す。
てストローブモードの折り返しバースト読取りを示す。
図29は、メモリインタフェースにおけるストローブモ
ードのメモリ読取りサイクルの再始動を示す。
ードのメモリ読取りサイクルの再始動を示す。
図30は、好ましい実施例に従ったメモリインタフェー
スにおけるストローブモードの1回転送読取りサイクル
を示す。
スにおけるストローブモードの1回転送読取りサイクル
を示す。
図31は、メモリインタフェースにおけるストローブモ
ードのメモリバスからのバースト書込みサイクルを示
す。
ードのメモリバスからのバースト書込みサイクルを示
す。
図32は、メモリインタフェースにおいてストローブモ
ードの折り返しバースト書込みサイクルを示すタイミン
グ波形である。
ードの折り返しバースト書込みサイクルを示すタイミン
グ波形である。
図33は、メモリインタフェースにおけるストローブモ
ードのメモリ書込みサイクルの再始動を示す。
ードのメモリ書込みサイクルの再始動を示す。
図34は、メモリインタフェースにおけるストローブモ
ードの1回転送書込みサイクルを示す。
ードの1回転送書込みサイクルを示す。
図35は、本発明の現時点で好ましい実施例に従ったメ
モリインタフェースにおけるストローブモードの読取り
−書込み−読取りターンアラウンドのタイミング波形で
ある。
モリインタフェースにおけるストローブモードの読取り
−書込み−読取りターンアラウンドのタイミング波形で
ある。
図36は、好ましい実施例についてメモリインタフェー
スにおけるストローブモードの書込み−割当てシーケン
スを示す。
スにおけるストローブモードの書込み−割当てシーケン
スを示す。
図37は、メモリインタフェースにおけるストローブモ
ードのCRDY#信号とMEOC#信号との関係を示すタイミン
グ図である。
ードのCRDY#信号とMEOC#信号との関係を示すタイミン
グ図である。
図38は、好ましい実施例に従ってバーストマルチプレ
クサセレクト信号がどのようにして発生されるかを示す
回路概略図である。
クサセレクト信号がどのようにして発生されるかを示す
回路概略図である。
好ましい実施例の詳細な説明 マイクロプロセッサシステムに対してキャッシュメモ
リを実現する集積回路を説明する。以下の説明中、本発
明の好ましい実施例を完全に理解させるために、特定の
バイト数、特定のビット数、特定のデバイス数などの特
定の詳細な事項を数多く挙げる。しかしながら、それら
の特定の詳細な事項がなくとも本発明を実施しうること
は当業者には自明であろう。別の場合には、本発明を無
用にわかりにくくしないために、周知の回路を詳細には
示さなかった−すなわち、単にブロック線図の形で示し
た。
リを実現する集積回路を説明する。以下の説明中、本発
明の好ましい実施例を完全に理解させるために、特定の
バイト数、特定のビット数、特定のデバイス数などの特
定の詳細な事項を数多く挙げる。しかしながら、それら
の特定の詳細な事項がなくとも本発明を実施しうること
は当業者には自明であろう。別の場合には、本発明を無
用にわかりにくくしないために、周知の回路を詳細には
示さなかった−すなわち、単にブロック線図の形で示し
た。
本発明を説明してゆく中で、いくつかの特定のCPUア
ーキテクチャ及び/又はIntel 80486及びi860XPマイク
ロプロセッサなどの型のマイクロプロセッサと関連して
本発明によるキャッシュメモリの使用を何度も参照す
る。それらの実現形態は本発明の現時点で好ましい実施
例を反映しているにすぎず、それらを本発明の範囲を限
定するものとしてみなすべきではない。本発明において
具現化される概念は他の型のプロセッサ、他のアーキテ
クチャ等にも適用可能である、あるいは拡張して良いと
いうことを理解すべきである。
ーキテクチャ及び/又はIntel 80486及びi860XPマイク
ロプロセッサなどの型のマイクロプロセッサと関連して
本発明によるキャッシュメモリの使用を何度も参照す
る。それらの実現形態は本発明の現時点で好ましい実施
例を反映しているにすぎず、それらを本発明の範囲を限
定するものとしてみなすべきではない。本発明において
具現化される概念は他の型のプロセッサ、他のアーキテ
クチャ等にも適用可能である、あるいは拡張して良いと
いうことを理解すべきである。
加えて、本発明を説明に際して、本発明の現時点で好
ましい実施例に独特のものである信号及びピンの名前を
参照する。それらの信号については、添付の付録の中で
それぞれ説明してある。好ましい実施例に関連してそれ
らの信号名、又はその特定の機能を参照するとき、それ
を本発明の趣旨又は範囲に対する限定としてみなすべき
ではない。
ましい実施例に独特のものである信号及びピンの名前を
参照する。それらの信号については、添付の付録の中で
それぞれ説明してある。好ましい実施例に関連してそれ
らの信号名、又はその特定の機能を参照するとき、それ
を本発明の趣旨又は範囲に対する限定としてみなすべき
ではない。
CPU/キャッシュメモリシステムの概要 データキャッシュメモリの使用は局所性の原理に基づ
いている。この原理は、1つの項目を参照する場合、そ
の項目はその後間もなく再び参照される傾向にあること
(すなわち、時間の局所性)を認識する。同様に、1つ
の項目を参照する場合、その付近の項目はその後間もな
く参照される傾向にある(すなわち、空間の局所性)。
従って、キャッシュメモリを使用することの原理は頻繁
に使用される情報に対して効率良くアクセスを実行し、
それにより、処理速度を加速することである。
いている。この原理は、1つの項目を参照する場合、そ
の項目はその後間もなく再び参照される傾向にあること
(すなわち、時間の局所性)を認識する。同様に、1つ
の項目を参照する場合、その付近の項目はその後間もな
く参照される傾向にある(すなわち、空間の局所性)。
従って、キャッシュメモリを使用することの原理は頻繁
に使用される情報に対して効率良くアクセスを実行し、
それにより、処理速度を加速することである。
図1は、本発明の基礎となっているキャッシュサブシ
ステムのブロック線図である。このキャッシュサブシス
テムは、現時点で好ましい実施例においてはIntel 804
86マイクロプロセッサから構成されているCPU10、キャ
ッシュデータスライス13、キャッシュ制御装置12及びバ
イトイネーブルラッチ18という4つの基本区分を有す
る。キャッシュデータスライス13は、キャッシュ制御装
置12及びメモリバス制御装置11と関連して、CPUバス14
とメモリバス15との間のゲートウェイを形成する。
ステムのブロック線図である。このキャッシュサブシス
テムは、現時点で好ましい実施例においてはIntel 804
86マイクロプロセッサから構成されているCPU10、キャ
ッシュデータスライス13、キャッシュ制御装置12及びバ
イトイネーブルラッチ18という4つの基本区分を有す
る。キャッシュデータスライス13は、キャッシュ制御装
置12及びメモリバス制御装置11と関連して、CPUバス14
とメモリバス15との間のゲートウェイを形成する。
CPUの型、キャッシュの大きさ、そして、メモリバス
インタフェースの選択によって、それら4つの基本区分
素子の特定の実現形態を多様なアプリケーションに適合
させることができる。キャッシュサブシステムにより局
所的にサービスできる全てのCPUアクセスは、メモリバ
スのトラフィックから除外される。従って、局所サイク
ル(キャッシュをヒットし且つメモリバスサイクルを要
求しないCPUサイクル)はMBC11とメモリバス15には全く
見えない。これにより、多重処理システムでは要求され
ることの多いメモリバス帯域幅の縮小が可能になる。
インタフェースの選択によって、それら4つの基本区分
素子の特定の実現形態を多様なアプリケーションに適合
させることができる。キャッシュサブシステムにより局
所的にサービスできる全てのCPUアクセスは、メモリバ
スのトラフィックから除外される。従って、局所サイク
ル(キャッシュをヒットし且つメモリバスサイクルを要
求しないCPUサイクル)はMBC11とメモリバス15には全く
見えない。これにより、多重処理システムでは要求され
ることの多いメモリバス帯域幅の縮小が可能になる。
キャッシュサブシステムの重要な機能の1つは、CPU
バス14とメモリバス15との間で速度の分離を実行するこ
とである。図1のサブシステムは非常に高い周波数(た
とえば、>50MHz)に至るまで待ち状態を零にしてCPU10
をサービスすると同時に、それより遅いメモリバスサイ
クルをランするために必要な分離を実行するように最適
化されている。通常、メモリバス15は32ビット幅、64ビ
ット幅又は128ビット幅のいずれかである。これは、804
86マイクロプロセッサの場合には32ビット幅であるCPU
バスの幅に匹敵する。従って、図1のキャッシュサブシ
ステムはCPUバス幅以上のメモリ幅を容易に支援する。
これをCPUバスより狭いメモリバス幅を支援するように
も適合させることができるであろう。
バス14とメモリバス15との間で速度の分離を実行するこ
とである。図1のサブシステムは非常に高い周波数(た
とえば、>50MHz)に至るまで待ち状態を零にしてCPU10
をサービスすると同時に、それより遅いメモリバスサイ
クルをランするために必要な分離を実行するように最適
化されている。通常、メモリバス15は32ビット幅、64ビ
ット幅又は128ビット幅のいずれかである。これは、804
86マイクロプロセッサの場合には32ビット幅であるCPU
バスの幅に匹敵する。従って、図1のキャッシュサブシ
ステムはCPUバス幅以上のメモリ幅を容易に支援する。
これをCPUバスより狭いメモリバス幅を支援するように
も適合させることができるであろう。
キャッシュ制御装置12はキャッシュサブシステムの主
制御素子を構成しており、タグと、行状態とを含む。こ
の装置はあらゆるCPUバスサイクルを追跡し、どのサイ
クルがCPUバスで完了できるか及びどのサイクルをメモ
リバスに渡さなければならないかを判定する。また、
(MESIブロトコルの変形に基づいて)アクセス、ヒット
又はミスについて決定を実行する。制御装置12はCPUバ
ス要求を完全に処理し、アクセスがメモリバス15の制御
を必要とするときにはMBC11と協調する。CPUに正しいデ
ータを与えるために、制御装置12はヒットとミスの双方
についてキャッシュデータ経路をさらに制御する。MRU
予測メカニズム及びアクセスコンテンションに基づい
て、動的に待ち状態を追加する。
制御素子を構成しており、タグと、行状態とを含む。こ
の装置はあらゆるCPUバスサイクルを追跡し、どのサイ
クルがCPUバスで完了できるか及びどのサイクルをメモ
リバスに渡さなければならないかを判定する。また、
(MESIブロトコルの変形に基づいて)アクセス、ヒット
又はミスについて決定を実行する。制御装置12はCPUバ
ス要求を完全に処理し、アクセスがメモリバス15の制御
を必要とするときにはMBC11と協調する。CPUに正しいデ
ータを与えるために、制御装置12はヒットとミスの双方
についてキャッシュデータ経路をさらに制御する。MRU
予測メカニズム及びアクセスコンテンションに基づい
て、動的に待ち状態を追加する。
MRUメカニズムは時間的局所性を利用する。1つのセ
ットの最も最近に使用されたウエイは再び使用される確
率が最も高いことを利用する。MRUは、置き換えるべき
ウエイを選択するための別の予測方法であるLRU(すな
わち、最も古く使用された)の逆である。キャッシュ制
御装置12はMBC11に対してサイクル要求をさらに実行す
ると共に、キャッシュミスに際してはメモリバス15にア
ドレスを提供する。
ットの最も最近に使用されたウエイは再び使用される確
率が最も高いことを利用する。MRUは、置き換えるべき
ウエイを選択するための別の予測方法であるLRU(すな
わち、最も古く使用された)の逆である。キャッシュ制
御装置12はMBC11に対してサイクル要求をさらに実行す
ると共に、キャッシュミスに際してはメモリバス15にア
ドレスを提供する。
キャッシュ制御装置は、他の装置がメモリバス15を利
用している間にメモリバススヌープ動作を実行すること
になる。スヌーピングとは、メモリバス15を共用してい
る他の装置がアクセスされたキャッシュ行のコピーを有
しているか否かを判定するために、キャッシュ制御装置
12が共用メモリバス15を監視する動作のことである。キ
ャッシュ制御装置は、内包の原理に基づいて、第2レベ
ルキャッシュと、CPU10の一次キャッシュの双方につい
てスヌーピングする。
用している間にメモリバススヌープ動作を実行すること
になる。スヌーピングとは、メモリバス15を共用してい
る他の装置がアクセスされたキャッシュ行のコピーを有
しているか否かを判定するために、キャッシュ制御装置
12が共用メモリバス15を監視する動作のことである。キ
ャッシュ制御装置は、内包の原理に基づいて、第2レベ
ルキャッシュと、CPU10の一次キャッシュの双方につい
てスヌーピングする。
メモリバス制御装置(MBC)11はCPU/キャッシュコア
をメモリバス15と関連するメモリバスプロトコルに適応
させる。そのようにしながら、MBCは制御装置12、行充
填、フラッシュ、ライトバックなどと協調する。
をメモリバス15と関連するメモリバスプロトコルに適応
させる。そのようにしながら、MBCは制御装置12、行充
填、フラッシュ、ライトバックなどと協調する。
メモリバス制御装置は、広範囲にわたるアプリケーシ
ョンを支援するために、広い範囲のメモリバスプロトコ
ルに対してCPU、キャッシュ制御装置及びキャッシュデ
ータスライスの単一の実現形態に適応するように定義さ
れている。クロッキング又はストロービングされるメモ
リバスに対して同期インタフェース又は非同期インタフ
ェースを支援することができる。場合によっては、メモ
リバス制御装置をDRAMインタフェースに直接に接続して
も良い。それらの異なるプロトコルは32ビット、64ビッ
ト及び128ビットのメモリバス幅で支援される。MBCは、
メモリバスプロトコルを実現しなければならない論理を
含む。この論理はメモリバスの順序指定、データ転送及
びキャッシュ一貫性といった機能を実行すると共に、キ
ャッシュ制御装置及びキャッシュデータスライスにある
トランシーバを制御する。尚、任意にキャッシュ13及び
キャッシュ制御装置12はトランシーバ/ラッチを介して
メモリバス15に結合される。
ョンを支援するために、広い範囲のメモリバスプロトコ
ルに対してCPU、キャッシュ制御装置及びキャッシュデ
ータスライスの単一の実現形態に適応するように定義さ
れている。クロッキング又はストロービングされるメモ
リバスに対して同期インタフェース又は非同期インタフ
ェースを支援することができる。場合によっては、メモ
リバス制御装置をDRAMインタフェースに直接に接続して
も良い。それらの異なるプロトコルは32ビット、64ビッ
ト及び128ビットのメモリバス幅で支援される。MBCは、
メモリバスプロトコルを実現しなければならない論理を
含む。この論理はメモリバスの順序指定、データ転送及
びキャッシュ一貫性といった機能を実行すると共に、キ
ャッシュ制御装置及びキャッシュデータスライスにある
トランシーバを制御する。尚、任意にキャッシュ13及び
キャッシュ制御装置12はトランシーバ/ラッチを介して
メモリバス15に結合される。
キャッシュデータスライス13は、図1のCPU/キャッシ
ュコアサブシステム中のキャッシュデータ記憶素子を実
現する。キャッシュ13は、マイクロプロセッサシステム
の特定のメモリ必要条件に対応するために、並列に結合
された複数の個別のSRAM集積回路17として実現されてい
る。
ュコアサブシステム中のキャッシュデータ記憶素子を実
現する。キャッシュ13は、マイクロプロセッサシステム
の特定のメモリ必要条件に対応するために、並列に結合
された複数の個別のSRAM集積回路17として実現されてい
る。
各々のSRAM集積回路17はラッチと、マルチプレクサ
(MUXともいう)と、ヒットしたアクセスとミスのアク
セスの双方を効率良くサービスするために回路をキャッ
シュ制御装置12とロックステップで動作させる論理及び
記憶装置とを含む。尚、キャッシュ13の内部の論理機能
は、従来例では、キャッシュ制御装置に配置されてい
た。これに対して、本発明においては、クロック速度の
増大に伴ってクリティカルタイミングを最小化するため
に、当該論理機能は、キャッシュメモリに特定して区分
して配置されている。
(MUXともいう)と、ヒットしたアクセスとミスのアク
セスの双方を効率良くサービスするために回路をキャッ
シュ制御装置12とロックステップで動作させる論理及び
記憶装置とを含む。尚、キャッシュ13の内部の論理機能
は、従来例では、キャッシュ制御装置に配置されてい
た。これに対して、本発明においては、クロック速度の
増大に伴ってクリティカルタイミングを最小化するため
に、当該論理機能は、キャッシュメモリに特定して区分
して配置されている。
キャッシュデータスライス13は零待ち状態ヒットアク
セスを支援し、先に自律経路予測に関して述べたMRUビ
ットの複製を含む。メモリバスサイクルの間、キャッシ
ュ13はCPU10とメモリバス15との間のデータゲートウェ
イとして動作する。従って、キャッシュ13は、データを
記憶するのに加えて、CPUバス14とメモリバス15との間
に効率の良い、高性能のデータ経路を形成しなければな
らない。本発明のこの面については間もなくさらに詳細
に説明する。
セスを支援し、先に自律経路予測に関して述べたMRUビ
ットの複製を含む。メモリバスサイクルの間、キャッシ
ュ13はCPU10とメモリバス15との間のデータゲートウェ
イとして動作する。従って、キャッシュ13は、データを
記憶するのに加えて、CPUバス14とメモリバス15との間
に効率の良い、高性能のデータ経路を形成しなければな
らない。本発明のこの面については間もなくさらに詳細
に説明する。
キャッシュコア13はCPUバスインタフェース及びメモ
リバスインタフェースでは非同期に動作できるが、この
装置の内部には同期装置がないことに注意するのは重要
である。データ転送のための同期装置はメモリバス制御
装置11の区画にある。
リバスインタフェースでは非同期に動作できるが、この
装置の内部には同期装置がないことに注意するのは重要
である。データ転送のための同期装置はメモリバス制御
装置11の区画にある。
バイトイネーブルラッチ18は図1のキャッシュ制御装
置の区画と適正に関連している。バイトイネーブルラッ
チは、メモリバス制御装置に至る分離されたCPUバス信
号のインタフェースを形成する。それらの信号はバイト
イネーブルと、他のCPUサイクル状態信号(長さ、キャ
ッシュ、属性など)とを含む。すなわち、ラッチはそれ
らのクリティカルCPUバス信号に対する負荷(経路指定
中の装置の数)を最小限に抑えるために使用される。メ
モリバス制御装置11の複雑さを最小にするために、ラッ
チはキャッシュ制御装置12により直接に制御される。
尚、ピン数が制約とならない場合、実施例によってはラ
ッチ18を制御装置12の中に組込めることに注意する。
置の区画と適正に関連している。バイトイネーブルラッ
チは、メモリバス制御装置に至る分離されたCPUバス信
号のインタフェースを形成する。それらの信号はバイト
イネーブルと、他のCPUサイクル状態信号(長さ、キャ
ッシュ、属性など)とを含む。すなわち、ラッチはそれ
らのクリティカルCPUバス信号に対する負荷(経路指定
中の装置の数)を最小限に抑えるために使用される。メ
モリバス制御装置11の複雑さを最小にするために、ラッ
チはキャッシュ制御装置12により直接に制御される。
尚、ピン数が制約とならない場合、実施例によってはラ
ッチ18を制御装置12の中に組込めることに注意する。
キャッシュメモリアーキテクチャ 次に図2を参照すると、本発明の集積キャッシュメモ
リ回路17のブロック線図が示されている。キャッシュメ
モリ17はCPUバスセクション、メモリバスセクション及
ひSRAMアレイという3つの基本セクションを有する。そ
れらのブロックについては以下にそれぞれの詳細を説明
する。
リ回路17のブロック線図が示されている。キャッシュメ
モリ17はCPUバスセクション、メモリバスセクション及
ひSRAMアレイという3つの基本セクションを有する。そ
れらのブロックについては以下にそれぞれの詳細を説明
する。
CPUバスインタフェース CPUバスインタフェースは、ブロック20に組込まれたM
UX/バッファ機能を含み、その付加的な制御論理はブロ
ック21に入っている。CPU MUX/バッファ20はCPU読取り
及びCPU書込みに関わるデータを記憶するために使用さ
れる。その機能はCPUバスを経る読取りと書込みの動作
を最適化する。読取り動作の場合、この機能によってキ
ャッシュの1行分を1回のアレイアクセスでMUX/バッフ
ァ20にロードすることができる。次に、バースト転送の
タイミングをCPUバスインタフェースでのみ確定するの
で、高いデータ転送速度に対してタイミングを著しく最
適化できる。
UX/バッファ機能を含み、その付加的な制御論理はブロ
ック21に入っている。CPU MUX/バッファ20はCPU読取り
及びCPU書込みに関わるデータを記憶するために使用さ
れる。その機能はCPUバスを経る読取りと書込みの動作
を最適化する。読取り動作の場合、この機能によってキ
ャッシュの1行分を1回のアレイアクセスでMUX/バッフ
ァ20にロードすることができる。次に、バースト転送の
タイミングをCPUバスインタフェースでのみ確定するの
で、高いデータ転送速度に対してタイミングを著しく最
適化できる。
同様に、バースト書込み動作の場合には、1回のアレ
イ書込みについて全てのデータが収集されるまで、バッ
ファは(MUX/バッファ20のタイミング必要条件のみに基
づいて)データを高い転送速度で収集させる。バースト
に際してACタイミングを分離することに加えて、この方
式はSRAMアレイ22の使用を最小限に抑え、それにより、
メモリバスとの同時性を向上させる。メモリバスバース
トをCPUバスバーストから分離する効果によって、メモ
リバス動作についても類似の利点が実現される。MUX/バ
ッファ20は、SRAMアレイ22の経路ごとに1つずつ、2つ
の32ビット幅セクションを有する。先の述べた通り、SR
AMアレイ22はMRU予測を伴なう2ウエイ・セットアソシ
エイティブ構成を利用する。
イ書込みについて全てのデータが収集されるまで、バッ
ファは(MUX/バッファ20のタイミング必要条件のみに基
づいて)データを高い転送速度で収集させる。バースト
に際してACタイミングを分離することに加えて、この方
式はSRAMアレイ22の使用を最小限に抑え、それにより、
メモリバスとの同時性を向上させる。メモリバスバース
トをCPUバスバーストから分離する効果によって、メモ
リバス動作についても類似の利点が実現される。MUX/バ
ッファ20は、SRAMアレイ22の経路ごとに1つずつ、2つ
の32ビット幅セクションを有する。先の述べた通り、SR
AMアレイ22はMRU予測を伴なう2ウエイ・セットアソシ
エイティブ構成を利用する。
セットアソシエイティブキャッシュは、キャッシュメ
モリが複数のウエイに分割されている記憶装置アレイで
ある。1つのセットは、メモリの同一の部分をそれぞれ
保持できる1群のセクタ(各ウエイから1つずつ)から
構成されている。1つのセットはCPUアドレスの下位部
分を使用してアドレス指定(すなわち、索引付け)され
る。同じセットの中の全てのセクタはCPUアドレスの同
一の下位部分を使用して索引付けされる。ブロック20の
32ビット幅は、8個のCPU入出力ピンでの4回の転送を
支援する。クオリティカルタイミングパスに影響を与え
ずに最高使用頻度(MRU)選択を支援するためには、2
つのセクションが必要である。
モリが複数のウエイに分割されている記憶装置アレイで
ある。1つのセットは、メモリの同一の部分をそれぞれ
保持できる1群のセクタ(各ウエイから1つずつ)から
構成されている。1つのセットはCPUアドレスの下位部
分を使用してアドレス指定(すなわち、索引付け)され
る。同じセットの中の全てのセクタはCPUアドレスの同
一の下位部分を使用して索引付けされる。ブロック20の
32ビット幅は、8個のCPU入出力ピンでの4回の転送を
支援する。クオリティカルタイミングパスに影響を与え
ずに最高使用頻度(MRU)選択を支援するためには、2
つのセクションが必要である。
MRU情報に基づいて、ブロック23の中のウエイマルチ
プレクサはアクセス中に使用すべき正しいウエイを選択
する。ウエイ情報はCPU制御ブロック21から線路24に沿
ってブロック23に供給される。ウエイ情報はアレイ22と
の間でも線路27に沿ってやりとりされる。たとえば、読
取りサイクルの間には、初期出力は最高使用頻度のウエ
イから得られる。制御装置により最高使用頻度のウエイ
は正しいウエイではないと判定されたならば、ウエイマ
ルチプレクサ33を変更し且つ新たなMRUを線路27を介し
て(たとえば、次のアクセスに備えて)アレイ22に書込
むために、制御装置59の信号を使用してキャッシュメモ
リ17を強制的に他方のウエイに変更させる。尚、MRU予
測プロトコルを適正に機能させるためには、キャッシュ
メモリ17のMRUは、キャッシュ制御装置12の予測メカニ
ズムとロックステップ関係になければならない。
プレクサはアクセス中に使用すべき正しいウエイを選択
する。ウエイ情報はCPU制御ブロック21から線路24に沿
ってブロック23に供給される。ウエイ情報はアレイ22と
の間でも線路27に沿ってやりとりされる。たとえば、読
取りサイクルの間には、初期出力は最高使用頻度のウエ
イから得られる。制御装置により最高使用頻度のウエイ
は正しいウエイではないと判定されたならば、ウエイマ
ルチプレクサ33を変更し且つ新たなMRUを線路27を介し
て(たとえば、次のアクセスに備えて)アレイ22に書込
むために、制御装置59の信号を使用してキャッシュメモ
リ17を強制的に他方のウエイに変更させる。尚、MRU予
測プロトコルを適正に機能させるためには、キャッシュ
メモリ17のMRUは、キャッシュ制御装置12の予測メカニ
ズムとロックステップ関係になければならない。
MRUヒットである読取りは、待ち状態なしで実行され
る。MRUミスの場合読取りがパイプライン化されていな
ければ、ウエイを変更するための待ち状態が1つある。
パイプライン化読取りでは、キャッシュ制御装置におけ
るMRUルックアップのために使用される時間を隠し且つM
RUミスに関わる待ち状態を回避することが可能である。
従って、CPU読取りに際しては、SRAMアレイ22から32ビ
ット×2を読取り、ブロック20及び23の2ウエイセクシ
ョンのいずれかに記憶することになる。
る。MRUミスの場合読取りがパイプライン化されていな
ければ、ウエイを変更するための待ち状態が1つある。
パイプライン化読取りでは、キャッシュ制御装置におけ
るMRUルックアップのために使用される時間を隠し且つM
RUミスに関わる待ち状態を回避することが可能である。
従って、CPU読取りに際しては、SRAMアレイ22から32ビ
ット×2を読取り、ブロック20及び23の2ウエイセクシ
ョンのいずれかに記憶することになる。
CPUインタフェースセクションは、8つの入出力ドラ
イバをさらに含む。言うまでもなく、より大きさサイズ
のキャッシュを支援するために、それより少ない数の入
出力ドライバを使用しても良い。2×CPU入出力構成を
使用する場合、2つの入力ピン、たとえば、CDATA〔0:
1〕を起動し、その他の入出力ピンの出力端子を浮動さ
せる。4×CPU入出力構成を選択した場合には、ピンCDA
TA〔0:3〕のみを起動し、その他の4つの入出力ピンは
浮動状態のままである。進行中のサイクルが書込みであ
るか、又は信号中のサイクルがない場合には、CPU入出
力ドライバは3状態となる。読取りの終了時に、ランさ
せるべきパイプラインが読取られていなければ、出力は
3状態になる。そうでなければ、リセットがアクティブ
であるとき、出力は3状態になる。
イバをさらに含む。言うまでもなく、より大きさサイズ
のキャッシュを支援するために、それより少ない数の入
出力ドライバを使用しても良い。2×CPU入出力構成を
使用する場合、2つの入力ピン、たとえば、CDATA〔0:
1〕を起動し、その他の入出力ピンの出力端子を浮動さ
せる。4×CPU入出力構成を選択した場合には、ピンCDA
TA〔0:3〕のみを起動し、その他の4つの入出力ピンは
浮動状態のままである。進行中のサイクルが書込みであ
るか、又は信号中のサイクルがない場合には、CPU入出
力ドライバは3状態となる。読取りの終了時に、ランさ
せるべきパイプラインが読取られていなければ、出力は
3状態になる。そうでなければ、リセットがアクティブ
であるとき、出力は3状態になる。
CPUバス制御ブロック21は、基本的にはキャッシュメ
モリに関わるCPUバスのバスプロトコルを複製したもの
である。現時点で好ましい実施例では、ブロック21はIn
tel 80486又はi860XPのバスプロトコルを複製してい
る。これらの信号はCPU実行開始サイクルと、一次キャ
ッシュへのライトバックの場合のキャッシュ一貫性開始
サイクルとを制御するために使用される。同時に、制御
セクション21は、線路59に沿ってキャッシュ制御装置か
ら受信されている信号を監視する。
モリに関わるCPUバスのバスプロトコルを複製したもの
である。現時点で好ましい実施例では、ブロック21はIn
tel 80486又はi860XPのバスプロトコルを複製してい
る。これらの信号はCPU実行開始サイクルと、一次キャ
ッシュへのライトバックの場合のキャッシュ一貫性開始
サイクルとを制御するために使用される。同時に、制御
セクション21は、線路59に沿ってキャッシュ制御装置か
ら受信されている信号を監視する。
ブロック21の中に常駐している制御論理は通常の組合
わせ論理及び状態機械論理から成り、2つの重大な機能
を実行するように設計されている。第1に、CPUバスか
らのバースト転送のために、MUX/バッファブロック20
(及び関連するCPU MUX33及び37)へバーストアドレス
を供給する。これにより、低速の外部チップインタフェ
ースが無視されるので、バースト動作に際して転送速度
を最大にするためには不可欠である。第2の機能は、キ
ャッシュメモリにCPUバスサイクルに追跡させ且つキャ
ッシュヒットを予期するために内部動作を実行すること
である。次に、キャッシュ制御装置は、タグルックアッ
プを並行して実行し、その結果をCPUとキャッシュメモ
リの双方に同時に報知する。これにより、最も重要なタ
イミングパス中の、キャッシュ制御装置12とキャッシュ
メモリ13との間に、余分の回路インタフェースを設ける
必要はなくなる。これで読取りヒットサイクルの速度が
改善されることは当業者には理解されるであろう。
わせ論理及び状態機械論理から成り、2つの重大な機能
を実行するように設計されている。第1に、CPUバスか
らのバースト転送のために、MUX/バッファブロック20
(及び関連するCPU MUX33及び37)へバーストアドレス
を供給する。これにより、低速の外部チップインタフェ
ースが無視されるので、バースト動作に際して転送速度
を最大にするためには不可欠である。第2の機能は、キ
ャッシュメモリにCPUバスサイクルに追跡させ且つキャ
ッシュヒットを予期するために内部動作を実行すること
である。次に、キャッシュ制御装置は、タグルックアッ
プを並行して実行し、その結果をCPUとキャッシュメモ
リの双方に同時に報知する。これにより、最も重要なタ
イミングパス中の、キャッシュ制御装置12とキャッシュ
メモリ13との間に、余分の回路インタフェースを設ける
必要はなくなる。これで読取りヒットサイクルの速度が
改善されることは当業者には理解されるであろう。
制御ブロック21の中に常駐している論理機能は、さら
に、CPUバスの定義に非常に緊密に適合しようとする。
例を挙げると、現時点で好ましい実施例によれば、最大
限の転送速度を保証するためにブロック21の論理機能は
80486マイクロプロセッサ及びi860XPマイクロプロセッ
サに基づいている。これは信号特性が同一であること、
バースト順序が予測可能であること及びスケーリングを
可能にするためにACタイミングが十分に整合しているこ
とを要求する。
に、CPUバスの定義に非常に緊密に適合しようとする。
例を挙げると、現時点で好ましい実施例によれば、最大
限の転送速度を保証するためにブロック21の論理機能は
80486マイクロプロセッサ及びi860XPマイクロプロセッ
サに基づいている。これは信号特性が同一であること、
バースト順序が予測可能であること及びスケーリングを
可能にするためにACタイミングが十分に整合しているこ
とを要求する。
図1に示す実現形態の場合、CPUバスインタフェース
は、キャッシュ装置17ごとに2ビット、4ビット又は8
ビットのデータ経路を支援する。(電気的負荷の関係
上)装置は16個が限度であると仮定すれば、これによ
り、(たとえば、80486の場合)32ビットCPUバスで128K
バイト、256Kバイト又は512Kバイトのキャッシュを支援
できる。
は、キャッシュ装置17ごとに2ビット、4ビット又は8
ビットのデータ経路を支援する。(電気的負荷の関係
上)装置は16個が限度であると仮定すれば、これによ
り、(たとえば、80486の場合)32ビットCPUバスで128K
バイト、256Kバイト又は512Kバイトのキャッシュを支援
できる。
MRU予測を使用することにより、本発明は最小限のペ
ナルティをもって多ウエイキャッシュを実現できること
を理解すべきである。MRUをアクセスし且つ新たなMRUを
提供するために利用できる時間を最大にするために、適
正なウエイを求めるための多重化は最終レベルで実行さ
れる。さらに、CPUバスとメモリバスとの間のデータ経
路(データ経路の詳細については後述する)は、CPUバ
ス動作に関わる複数のウエイをアクセスすることによ
り、MRU予測をも支援する。尚、本発明は2ウエイ動作
を実現するが、プロトコルは3ウエイ以上に拡張可能で
あることに注意する。
ナルティをもって多ウエイキャッシュを実現できること
を理解すべきである。MRUをアクセスし且つ新たなMRUを
提供するために利用できる時間を最大にするために、適
正なウエイを求めるための多重化は最終レベルで実行さ
れる。さらに、CPUバスとメモリバスとの間のデータ経
路(データ経路の詳細については後述する)は、CPUバ
ス動作に関わる複数のウエイをアクセスすることによ
り、MRU予測をも支援する。尚、本発明は2ウエイ動作
を実現するが、プロトコルは3ウエイ以上に拡張可能で
あることに注意する。
読み取り時のCPUデータ経路 キャッシュSRAM17は、読取りヒットを予期して、CPU
バス14の読取りサイクルごとにアレイルックアップを実
行する(M,E又はS状態)。キャッシュ制御装置12はCPU
バス14と、専用制御信号とを使用して、読取りヒットの
場合はアレイ22からの転送を制御し、また、読取りミス
又はキャッシュをバイパスする読取りサイクル(たとえ
ば、入出力)の場合にはメモリインタフェースからの転
送を制御する。読取り時のCPUデータ経路はアレイバス2
5を介して全64ビットをアクセスする。アレイバス25は
アレイマルチプレクサ28に結合しており、アレイマルチ
プレクサ28は128ビットバス30を介してアレイ22を結合
している。アレイマルチプレクサ28はCPU制御ブロック2
1により線路31を介して制御される。各アレイアクセス
は128ビット、すなわち、各ウエイから64ビットであ
る。アクセスはメモリ側からであり、選択されたウエイ
から全64ビットを選択することになる。しかしながら、
アクセスがCPU側である場合には、2ウエイのアドレス
指定された32ビットを使用する。
バス14の読取りサイクルごとにアレイルックアップを実
行する(M,E又はS状態)。キャッシュ制御装置12はCPU
バス14と、専用制御信号とを使用して、読取りヒットの
場合はアレイ22からの転送を制御し、また、読取りミス
又はキャッシュをバイパスする読取りサイクル(たとえ
ば、入出力)の場合にはメモリインタフェースからの転
送を制御する。読取り時のCPUデータ経路はアレイバス2
5を介して全64ビットをアクセスする。アレイバス25は
アレイマルチプレクサ28に結合しており、アレイマルチ
プレクサ28は128ビットバス30を介してアレイ22を結合
している。アレイマルチプレクサ28はCPU制御ブロック2
1により線路31を介して制御される。各アレイアクセス
は128ビット、すなわち、各ウエイから64ビットであ
る。アクセスはメモリ側からであり、選択されたウエイ
から全64ビットを選択することになる。しかしながら、
アクセスがCPU側である場合には、2ウエイのアドレス
指定された32ビットを使用する。
前述のように、読取り時のCPUデータ経路は全64ビッ
トをアクセスする。アクセスがアレイに対してである場
合、それらの64ビットはアドレス指定されたキャッシュ
行の2ウエイ(それぞれ32ビット)である。アクセスが
メモリバスに対してである場合には、64ビットはメモリ
バッファ(バッファ40又はバッファ41のいずれか)から
のものである。この後者の場合、ウエイ機能はメモリバ
ッファの正しい半分を選択するためにアドレスに基づい
ている。メモリバスキャッシュ行のサイズはCPUバス幅
より大きくても良く、CPUは正しい部分をアクセスする
必要があることは先に述べた通りである。
トをアクセスする。アクセスがアレイに対してである場
合、それらの64ビットはアドレス指定されたキャッシュ
行の2ウエイ(それぞれ32ビット)である。アクセスが
メモリバスに対してである場合には、64ビットはメモリ
バッファ(バッファ40又はバッファ41のいずれか)から
のものである。この後者の場合、ウエイ機能はメモリバ
ッファの正しい半分を選択するためにアドレスに基づい
ている。メモリバスキャッシュ行のサイズはCPUバス幅
より大きくても良く、CPUは正しい部分をアクセスする
必要があることは先に述べた通りである。
図4を参照すると、CPUデータ読取りの例をさらに挙
げながらCPUデータ経路の詳細が示されている。アレイ2
2からアクセスされた64ビットはCPUバッファ20を通過し
てバーストマルチプレクサ33に至る。バーストマルチプ
レクサ33は、64ビットを16ビット(8ビット×2ウエ
イ)に多重化する4:1マルチプレクサである。バースト
マルチプレクサ33は、当初、要求アドレスに設定され
る。現時点で好ましい実施例においてバーストMUX33を
実際に制御する方法を図38に示す。図38は、2ビット開
始アドレスと排他的論理和演算されるカウンタ34を示
す。排他的論理和演算の出力はバーストMUXアドレスを
生成する。その後、バーストMUXアドレスはデコーダ35
により復号されて、バーストMUX選択信号を発生する。
本発明の現時点での好ましい実施例によれば、80486マ
イクロプロセッサの動作と一致する所定の順序でバース
トデータを転送する。
げながらCPUデータ経路の詳細が示されている。アレイ2
2からアクセスされた64ビットはCPUバッファ20を通過し
てバーストマルチプレクサ33に至る。バーストマルチプ
レクサ33は、64ビットを16ビット(8ビット×2ウエ
イ)に多重化する4:1マルチプレクサである。バースト
マルチプレクサ33は、当初、要求アドレスに設定され
る。現時点で好ましい実施例においてバーストMUX33を
実際に制御する方法を図38に示す。図38は、2ビット開
始アドレスと排他的論理和演算されるカウンタ34を示
す。排他的論理和演算の出力はバーストMUXアドレスを
生成する。その後、バーストMUXアドレスはデコーダ35
により復号されて、バーストMUX選択信号を発生する。
本発明の現時点での好ましい実施例によれば、80486マ
イクロプロセッサの動作と一致する所定の順序でバース
トデータを転送する。
バーストマルチプレクサ33の次は、構成(コンフィギ
ュレーション)マルチプレクサ37である。現時点で好ま
しい実施例では、構成マルチプレクサ37は、CPUバスイ
ンタフェースにおける異なるピンオプション(たとえ
ば、2x、4x又は8x)に対応するために採用されている。
構成マルチプレクサ37は、MUX37を1:1、2:1又は4:1マル
チプレクサとして構成することができる。実際には、全
てのバーストがMUX33により実行されるように、構成マ
ルチプレクサ37を静的構成することも可能である。たと
えば、2ビットの場合、16ビットを2つの出力ピンに現
れる4ビットに多重化しなければならない。
ュレーション)マルチプレクサ37である。現時点で好ま
しい実施例では、構成マルチプレクサ37は、CPUバスイ
ンタフェースにおける異なるピンオプション(たとえ
ば、2x、4x又は8x)に対応するために採用されている。
構成マルチプレクサ37は、MUX37を1:1、2:1又は4:1マル
チプレクサとして構成することができる。実際には、全
てのバーストがMUX33により実行されるように、構成マ
ルチプレクサ37を静的構成することも可能である。たと
えば、2ビットの場合、16ビットを2つの出力ピンに現
れる4ビットに多重化しなければならない。
現時点で好まいい実施例では、MUX33とMUX37は次のよ
うに動作する。8xの場合には、MUX37は1:1マルチプレク
サとして、すなわち、直接接続として構成される。この
状況においては、全てのバーストはMUX33で実行され
る。4xの場合には、MUX37は2:1マルチプレクサとして構
成され、バーストは交互にMUX37と、MUX33とで実行され
る。2xの場合には、MUX37は4:1マルチプレクサであり、
適正なバースト順序付けのためにバーストMUX33は2度
切り換えられる。
うに動作する。8xの場合には、MUX37は1:1マルチプレク
サとして、すなわち、直接接続として構成される。この
状況においては、全てのバーストはMUX33で実行され
る。4xの場合には、MUX37は2:1マルチプレクサとして構
成され、バーストは交互にMUX37と、MUX33とで実行され
る。2xの場合には、MUX37は4:1マルチプレクサであり、
適正なバースト順序付けのためにバーストMUX33は2度
切り換えられる。
MUX37及び33は現時点で好ましい実現形態では分散し
ていることが認められる。要約すれば、CPU MUXは8xCP
Uバス装置に対しては32から8を選択する装置として機
能し、4xCPUバス装置に対しては32から4を選択し、2xC
PUバス装置に対しては32から2を選択する装置として機
能する。バーストアドレスは、80486マイクロプロセッ
サのバースト順序付けに従ってCPUにより与えられる初
期アドレスから始まる。
ていることが認められる。要約すれば、CPU MUXは8xCP
Uバス装置に対しては32から8を選択する装置として機
能し、4xCPUバス装置に対しては32から4を選択し、2xC
PUバス装置に対しては32から2を選択する装置として機
能する。バーストアドレスは、80486マイクロプロセッ
サのバースト順序付けに従ってCPUにより与えられる初
期アドレスから始まる。
キャッシュメモリ17の各々におけるCPU行は、構成に
応じて、8ビット、16ビット又は32ビットであれば良
い。全てのアプリケーションは複数のキャシュメモリ集
積回路を利用することがわかる。32ビット未満を要求す
る構成については、いくつかのアドレスを使用してバッ
ファの一部のみをアクセスしても良い。尚、マルチプレ
クサ33及び37の分散形構成はセレクト線38及び39を介し
てCPU制御ブロック21により制御されることに注意す
る。
応じて、8ビット、16ビット又は32ビットであれば良
い。全てのアプリケーションは複数のキャシュメモリ集
積回路を利用することがわかる。32ビット未満を要求す
る構成については、いくつかのアドレスを使用してバッ
ファの一部のみをアクセスしても良い。尚、マルチプレ
クサ33及び37の分散形構成はセレクト線38及び39を介し
てCPU制御ブロック21により制御されることに注意す
る。
図4に示す最終MUX段、すなわち、ウエイマルチプレ
クサ43は、当初はアレイ22に記憶されているMUXに基づ
いて正しいウエイを選択するために使用される。MUX予
測が正しくないならば、線路59のウエイ信号に基づいて
ウエイマルチプレクサを切り換える。ウエイ情報は、新
たなMRUウエイを線路27を介してアレイ22に書込むため
にも使用される。メモリバス動作の場合、ウエイマルチ
プレクサの選択はメモリバッファの正しい部分を選択す
るために1つのアドレスビットに基づいている。
クサ43は、当初はアレイ22に記憶されているMUXに基づ
いて正しいウエイを選択するために使用される。MUX予
測が正しくないならば、線路59のウエイ信号に基づいて
ウエイマルチプレクサを切り換える。ウエイ情報は、新
たなMRUウエイを線路27を介してアレイ22に書込むため
にも使用される。メモリバス動作の場合、ウエイマルチ
プレクサの選択はメモリバッファの正しい部分を選択す
るために1つのアドレスビットに基づいている。
最後に、出力ドライバ及びラッチはピンタイミングの
必要条件に適合するように規制されている。
必要条件に適合するように規制されている。
書込み時のCPUデータ経路 キャッシュSRAM17はCPUバス書込みサイクルごとにデ
ータをラッチする。キャッシュ制御装置12はCPUバス14
と、線路59に沿った専用制御信号とを利用して、書込み
ヒット(M,E又はS状態)に対してのアレイ22への転送
の制御を、及び/又は、S状態書込み、書込みミス又は
キャッシュをバイパスする書込みサイクル(たとえば、
入出力)に対しての、メモリインタフェースへの転送の
制御を行う。CPU書込みに際しては、MUX/バッファ20を
使用して、データをSRAMアレイ22に書込む前にデータを
記憶する。実際にデータがアレイに書込まれる前に、CP
Uサイクルは全て完了する。尚、MUX/バッファ20とアレ
イ22との間のデータ転送は64ビット幅のアレイバス25を
介して起こる。アレイ書込みの前に、4回までの転送の
データをMUX/バッファ20に書込むことができる。
ータをラッチする。キャッシュ制御装置12はCPUバス14
と、線路59に沿った専用制御信号とを利用して、書込み
ヒット(M,E又はS状態)に対してのアレイ22への転送
の制御を、及び/又は、S状態書込み、書込みミス又は
キャッシュをバイパスする書込みサイクル(たとえば、
入出力)に対しての、メモリインタフェースへの転送の
制御を行う。CPU書込みに際しては、MUX/バッファ20を
使用して、データをSRAMアレイ22に書込む前にデータを
記憶する。実際にデータがアレイに書込まれる前に、CP
Uサイクルは全て完了する。尚、MUX/バッファ20とアレ
イ22との間のデータ転送は64ビット幅のアレイバス25を
介して起こる。アレイ書込みの前に、4回までの転送の
データをMUX/バッファ20に書込むことができる。
データはCPUバッファ20の双方のウエイにラッチされ
る。データは、キャッシュ制御装置により指定されるウ
エイ(アレイ22)に書込まれる。現在行がキャッシュ可
能であるか否かにかかわらず、CPUデータは、MUX/バッ
ファ20にラッチされる。行がキャッシュ可能であれば、
CPUサイクルが完了した後にその行をクロック周期の二
分の一の間にアレイ22に書込む。本発明の方式では、CP
U書込みの幅は1ビット、2ビット、4ビット、8ビッ
ト、16ビット又は32ビットであれば良い。MUX/バッファ
ブロック20の中には、それぞれ個々のビットの書込みを
可能にするビットイネーブルラッチがある。従って、ア
レイ22への書込み中、ビット書込みイネーブルされたビ
ットのみを実際に書込むことになる。書込み割当てに際
してデータ併合動作を支援するためにビットイネーブル
がメモリインタフェースへ渡されることを理解すべきで
ある。この状況で、メモリから1行分のキャッシュ行を
読取り、SRAMアレイ22に導入する前にメモリバッファ40
(又は41)で有効書込みデータと併合する。
る。データは、キャッシュ制御装置により指定されるウ
エイ(アレイ22)に書込まれる。現在行がキャッシュ可
能であるか否かにかかわらず、CPUデータは、MUX/バッ
ファ20にラッチされる。行がキャッシュ可能であれば、
CPUサイクルが完了した後にその行をクロック周期の二
分の一の間にアレイ22に書込む。本発明の方式では、CP
U書込みの幅は1ビット、2ビット、4ビット、8ビッ
ト、16ビット又は32ビットであれば良い。MUX/バッファ
ブロック20の中には、それぞれ個々のビットの書込みを
可能にするビットイネーブルラッチがある。従って、ア
レイ22への書込み中、ビット書込みイネーブルされたビ
ットのみを実際に書込むことになる。書込み割当てに際
してデータ併合動作を支援するためにビットイネーブル
がメモリインタフェースへ渡されることを理解すべきで
ある。この状況で、メモリから1行分のキャッシュ行を
読取り、SRAMアレイ22に導入する前にメモリバッファ40
(又は41)で有効書込みデータと併合する。
先に述べた通り、書込みサイクルはCPU入力ドライバ
を通過し、外部タイミング必要条件に適合するようにラ
ッチされる。異なるデータピン構成(すなわち、2x、4x
又は8x)を支援するために、書込みデータは、特定の構
成に基づいてビットを駆動するマルチプレクサ47を通過
する。たとえば、キャッシュ17に導入されるデータ行が
2つのみである場合には、マルチプレクサ47は2つの行
をCPUバッファ20に対する8行に拡張するであろう。
を通過し、外部タイミング必要条件に適合するようにラ
ッチされる。異なるデータピン構成(すなわち、2x、4x
又は8x)を支援するために、書込みデータは、特定の構
成に基づいてビットを駆動するマルチプレクサ47を通過
する。たとえば、キャッシュ17に導入されるデータ行が
2つのみである場合には、マルチプレクサ47は2つの行
をCPUバッファ20に対する8行に拡張するであろう。
次に、8ビットはCPUバッファ20の全てのスライスへ
送り出される。CPU制御セクション21は、正しいビット
を書込むために、書込みイネーブルをCPUバッファ20
(及びアレイ22)へ選択的に送り込む。データモードで
キャッシュ17を使用するときは、書込みの細分性は2ビ
ットである。ただし、キャッシュ17はパリティ動作モー
ドをも支援する。これは、個々のパリティビットとビッ
トイネーブルがデータピンに接続される全く異なるモー
ドである。データ経路は、ビットレベルで書込み制御の
ために必要とされる細分性がより微細であることを除い
て、同じように動作する。キャッシュ17をパリティ装置
として使用するときには、細分性は1ビットである。
送り出される。CPU制御セクション21は、正しいビット
を書込むために、書込みイネーブルをCPUバッファ20
(及びアレイ22)へ選択的に送り込む。データモードで
キャッシュ17を使用するときは、書込みの細分性は2ビ
ットである。ただし、キャッシュ17はパリティ動作モー
ドをも支援する。これは、個々のパリティビットとビッ
トイネーブルがデータピンに接続される全く異なるモー
ドである。データ経路は、ビットレベルで書込み制御の
ために必要とされる細分性がより微細であることを除い
て、同じように動作する。キャッシュ17をパリティ装置
として使用するときには、細分性は1ビットである。
CPU書込み経路はキャッシュ一貫性サイクルに対して
も使用される。CPUから一次キャッシュに変更データを
ライトバックするために利用されるCPUバスサイクル
は、キャッシュ17のこの部分で他のどの書込みサイクル
とも同様に扱われる。すなわち、それらはライトバック
バッファ46又はスヌープバッファ45でSRAM22からのデー
タと最終的には併合されるのである。これらのバッファ
の目的については、間もなく詳述する。
も使用される。CPUから一次キャッシュに変更データを
ライトバックするために利用されるCPUバスサイクル
は、キャッシュ17のこの部分で他のどの書込みサイクル
とも同様に扱われる。すなわち、それらはライトバック
バッファ46又はスヌープバッファ45でSRAM22からのデー
タと最終的には併合されるのである。これらのバッファ
の目的については、間もなく詳述する。
複数の幅オプションを伴なスライス形データ経路を設
けることにより、本発明は全ての構成についてデータ行
の単一のロードをもってより大きなキャッシュサイズを
支援できることがわかる。この状況では、各々のキャッ
シュ装置でデータ経路機能性は同一である。その機能性
をN回複製すると、より大きなキャッシュサイズを支援
するために全キャッシュコア13を構成するように複数の
装置17が採用される(図1参照)。
けることにより、本発明は全ての構成についてデータ行
の単一のロードをもってより大きなキャッシュサイズを
支援できることがわかる。この状況では、各々のキャッ
シュ装置でデータ経路機能性は同一である。その機能性
をN回複製すると、より大きなキャッシュサイズを支援
するために全キャッシュコア13を構成するように複数の
装置17が採用される(図1参照)。
SRAMアレイ 引続き図2を参照すると、SRAMアレイ22は、2つの
(それそれ128Kビットの)ウエイに分割された256Kメモ
リビットを含む。アレイ22は、4KをMRUビットと、関連
するアレイアドレスラッチ49とをさらに含む。アドレス
ラッチ49は全てのアレイアクセスアドレスに対して使用
される。図2には、CPUインタフェースと、メモリイン
タフェースと、アレイ22とを結合するアレイバス25の64
ビット経路も示されている。このバス25はキャッシュ行
幅を単一クロックでアクセスすることを支援する。接続
バス26は、CPUバスとメモリバスとの間の転送を支援す
る。この接続バス26は、キャッシュ解決の同時性を増す
ために特に含められている。詳細にいえば、接続バス26
は、アレイアクセスが起こっているのと同時に、CPUバ
ス14とメモリバス15との間に接続を成立させ得るのであ
る。この特徴が採用されている例としては、行充填又は
行割当ての間のライトバックバッファの充填、又はCPU
バスが読取りを完了している間のスヌープのサービスが
ある。
(それそれ128Kビットの)ウエイに分割された256Kメモ
リビットを含む。アレイ22は、4KをMRUビットと、関連
するアレイアドレスラッチ49とをさらに含む。アドレス
ラッチ49は全てのアレイアクセスアドレスに対して使用
される。図2には、CPUインタフェースと、メモリイン
タフェースと、アレイ22とを結合するアレイバス25の64
ビット経路も示されている。このバス25はキャッシュ行
幅を単一クロックでアクセスすることを支援する。接続
バス26は、CPUバスとメモリバスとの間の転送を支援す
る。この接続バス26は、キャッシュ解決の同時性を増す
ために特に含められている。詳細にいえば、接続バス26
は、アレイアクセスが起こっているのと同時に、CPUバ
ス14とメモリバス15との間に接続を成立させ得るのであ
る。この特徴が採用されている例としては、行充填又は
行割当ての間のライトバックバッファの充填、又はCPU
バスが読取りを完了している間のスヌープのサービスが
ある。
SRAMアレイ22自体は、金属酸化膜半導体(MOS)技術
又は相補形金属酸化膜半導体(CMOS)技術を採用して製
造された通常のSRAMセルから構成されている。しかしな
がら、キャッシュ制御装置の動作を追跡するためのMRU
ビットを取り入れ、SRAMアレイ22を内部データ経路に接
続することは、新規である。図2は、キャッシュ記憶装
置アレイ22に対して二重ポートアクセスを実行するよう
に構成されているアレイバス25を示す。すなわち、メモ
リバス又はCPUバスのいずれかの側から、アレイ22に対
するアクセスを実行できるのである。さらに、キャッシ
ュに関連しないサイクル用に、CPUバスとメモリバスと
の直接接続のためのバイパス経路が含まれている。これ
は並行動作を支援すると共に、メモリバス転送プロトコ
ルとCPUバス転送プロトコルを分離するように設定され
ている。
又は相補形金属酸化膜半導体(CMOS)技術を採用して製
造された通常のSRAMセルから構成されている。しかしな
がら、キャッシュ制御装置の動作を追跡するためのMRU
ビットを取り入れ、SRAMアレイ22を内部データ経路に接
続することは、新規である。図2は、キャッシュ記憶装
置アレイ22に対して二重ポートアクセスを実行するよう
に構成されているアレイバス25を示す。すなわち、メモ
リバス又はCPUバスのいずれかの側から、アレイ22に対
するアクセスを実行できるのである。さらに、キャッシ
ュに関連しないサイクル用に、CPUバスとメモリバスと
の直接接続のためのバイパス経路が含まれている。これ
は並行動作を支援すると共に、メモリバス転送プロトコ
ルとCPUバス転送プロトコルを分離するように設定され
ている。
アレイとデータ経路とは同じ集積回路の中に製造され
ているので、接続の幅は従来のデザインにおいて通常見
られたようなピン又は出力バッファによる制約を受けな
い。そのため、SRAMアレイをさらに効率良く使用できる
ように、入出力ピンにおけるデータ経路よりはるかに広
い幅でインタフェースを形成することができる。これに
より、1回のアレイアクセスで外部バスの多数の転送を
サービスできるのである。この方式の重大の利点は、
(SRAMアレイ22がどの外部バスサイクルについてもその
一部に対してのみ使用されるために)同時性のレベルが
より高くなることと、(アレイが初期アクセスのクリテ
ィカルパスでのみアクセスするために)最大クロック速
度がより速くなることである。
ているので、接続の幅は従来のデザインにおいて通常見
られたようなピン又は出力バッファによる制約を受けな
い。そのため、SRAMアレイをさらに効率良く使用できる
ように、入出力ピンにおけるデータ経路よりはるかに広
い幅でインタフェースを形成することができる。これに
より、1回のアレイアクセスで外部バスの多数の転送を
サービスできるのである。この方式の重大の利点は、
(SRAMアレイ22がどの外部バスサイクルについてもその
一部に対してのみ使用されるために)同時性のレベルが
より高くなることと、(アレイが初期アクセスのクリテ
ィカルパスでのみアクセスするために)最大クロック速
度がより速くなることである。
先に論じた通り、SRAMアレイ22は、データを記憶する
のに加えて、キャッシュ制御装置により使用されるMRU
ビットのコピーを保持するという責務も負っている。こ
れらのビットはキャッシュメモリ13により、キャッシュ
をヒットするかもしれない読取りサイクルでキャッシュ
メモリがどのウエイでアクセスされるかを予測するため
に使用される。この予測方法は、重要なクリティカルタ
イミングパスを簡略化する一方で、多ウエイキャッシュ
実現形態にはるかに速いクロック速度で待ち状態なしに
応答させる。たとえば、読取りサイクルの間、MRU出力
は最高使用頻度のウエイを指示し、このウエイはCPUバ
スに当初導入されるデータを提供する。キャッシュ制御
装置がこのウエイへの読取りヒットを検出すると、デー
タは待ち状態なしにCPUに供給される。キャッシュ制御
装置が他方のウエイへの読取りヒットを検出した場合に
は、キャッシュ制御装置はキャッシュ17に他方のウエイ
への切替えを命令する。キャッシュ制御装置の入力は線
路59に沿ってCPU制御ブロック21に結合する。
のに加えて、キャッシュ制御装置により使用されるMRU
ビットのコピーを保持するという責務も負っている。こ
れらのビットはキャッシュメモリ13により、キャッシュ
をヒットするかもしれない読取りサイクルでキャッシュ
メモリがどのウエイでアクセスされるかを予測するため
に使用される。この予測方法は、重要なクリティカルタ
イミングパスを簡略化する一方で、多ウエイキャッシュ
実現形態にはるかに速いクロック速度で待ち状態なしに
応答させる。たとえば、読取りサイクルの間、MRU出力
は最高使用頻度のウエイを指示し、このウエイはCPUバ
スに当初導入されるデータを提供する。キャッシュ制御
装置がこのウエイへの読取りヒットを検出すると、デー
タは待ち状態なしにCPUに供給される。キャッシュ制御
装置が他方のウエイへの読取りヒットを検出した場合に
は、キャッシュ制御装置はキャッシュ17に他方のウエイ
への切替えを命令する。キャッシュ制御装置の入力は線
路59に沿ってCPU制御ブロック21に結合する。
どのウエイも、64ビット×2Kの行であると考えること
ができる。各ウエイには、出入りする2つの経路(CPU
アクセスのための1つの経路と、メモリアクセスのため
の1つの経路)がある。CPUクロックごとに使用できる
のは経路の一方のみである。メモリアクセスでは、ウエ
イ0又はウエイ1から64ビットが選択される。経路25に
沿ったCPUアクセスでは、ウエイ0から64ビットのうち3
2ビットと、ウエイ1からの64ビットのうち32ビットと
が選択される。1回のクロック周期の中では、CPU経路
又はメモリ経路のいずれかを介して1回のアクセスしか
起こり得ない。
ができる。各ウエイには、出入りする2つの経路(CPU
アクセスのための1つの経路と、メモリアクセスのため
の1つの経路)がある。CPUクロックごとに使用できる
のは経路の一方のみである。メモリアクセスでは、ウエ
イ0又はウエイ1から64ビットが選択される。経路25に
沿ったCPUアクセスでは、ウエイ0から64ビットのうち3
2ビットと、ウエイ1からの64ビットのうち32ビットと
が選択される。1回のクロック周期の中では、CPU経路
又はメモリ経路のいずれかを介して1回のアクセスしか
起こり得ない。
メモリサイクルバッファからのデータをSRAMアレイ22
に書込んでいるとき、書込まれるビットの数は構成に依
存して16ビット、32ビット又は64ビットのいずれかであ
る。CPU MUX/バッファ20からのデータをアレイに書込
むときには、現時点で好ましい実施例においては、使用
する入出力ピンの数と、転送の回数とに応じて、1ビッ
ト、2ビット、4ビット、8ビット、16ビット又は32ビ
ットを書込むことができる。
に書込んでいるとき、書込まれるビットの数は構成に依
存して16ビット、32ビット又は64ビットのいずれかであ
る。CPU MUX/バッファ20からのデータをアレイに書込
むときには、現時点で好ましい実施例においては、使用
する入出力ピンの数と、転送の回数とに応じて、1ビッ
ト、2ビット、4ビット、8ビット、16ビット又は32ビ
ットを書込むことができる。
CPU側及びメモリ側における独立した非同期データ転
送制御は、より低速のメモリバスから高速CPUバスを分
離する。CPU側は、80486バスに関して定義されているの
が好ましいBRDY#信号及びBLAST#信号により制御され
る。このインタフェースはCPU CLK信号に対して同期し
ている。メモリインタフェースは、CLKに対して非同期
である1組の信号により制御される。キャッシュ17の内
部の接続はキャッシュ行1行分の幅であるので、データ
転送事象の相互間に同期必要条件は存在しない(詳細に
ついては、付録のピンの説明の中のタイミング図を参
照)。
送制御は、より低速のメモリバスから高速CPUバスを分
離する。CPU側は、80486バスに関して定義されているの
が好ましいBRDY#信号及びBLAST#信号により制御され
る。このインタフェースはCPU CLK信号に対して同期し
ている。メモリインタフェースは、CLKに対して非同期
である1組の信号により制御される。キャッシュ17の内
部の接続はキャッシュ行1行分の幅であるので、データ
転送事象の相互間に同期必要条件は存在しない(詳細に
ついては、付録のピンの説明の中のタイミング図を参
照)。
SRAM22の内部編成は特定の実現形態に応じて変えても
良いことを理解すべきである。たとえば、キャッシュデ
ータスライス幅、アレイサイズ、ウエイの数などの考慮
事項は、別の実施例に対しては、異なるアレイ構成を指
定しても良い。基本動作及び外部で指定される性能目標
を支援することの他は、SRAMアレイ22の実際の編成は一
般に制約されていない。
良いことを理解すべきである。たとえば、キャッシュデ
ータスライス幅、アレイサイズ、ウエイの数などの考慮
事項は、別の実施例に対しては、異なるアレイ構成を指
定しても良い。基本動作及び外部で指定される性能目標
を支援することの他は、SRAMアレイ22の実際の編成は一
般に制約されていない。
メモリバスインタフェース キャッシュ17のメモリバスインタフェース部分は、先
に論じたCPUバスセクションと関連するのと同様のMUX/
バッファ構成と制御論理機能を含む。しかしながら、メ
モリバス必要条件は、一般に、CPUバス必要条件とは同
じでない。特定すれば、メモリバスインタフェースは複
数の内部バッファをアクセスしなければならないのであ
り、単一のバスプロトコルに合わせてこれを最適化する
のは不可能である。
に論じたCPUバスセクションと関連するのと同様のMUX/
バッファ構成と制御論理機能を含む。しかしながら、メ
モリバス必要条件は、一般に、CPUバス必要条件とは同
じでない。特定すれば、メモリバスインタフェースは複
数の内部バッファをアクセスしなければならないのであ
り、単一のバスプロトコルに合わせてこれを最適化する
のは不可能である。
メモリバスインタフェースは2つの基本信号群から構
成されている。第1の信号群は、プロセッサクロックに
対して同期的関係をもってメモリバス制御装置にインタ
フェースする信号から構成されている。第2の信号群
は、データ経路制御信号と共にメモリバスに至るデータ
経路から構成されている。尚、プロセッサクロックをそ
の他のシステム構成要素から分離するのを補助するため
に、これらの信号はプロセッサクロックに対して同期的
関係をもたないことに注意する。
成されている。第1の信号群は、プロセッサクロックに
対して同期的関係をもってメモリバス制御装置にインタ
フェースする信号から構成されている。第2の信号群
は、データ経路制御信号と共にメモリバスに至るデータ
経路から構成されている。尚、プロセッサクロックをそ
の他のシステム構成要素から分離するのを補助するため
に、これらの信号はプロセッサクロックに対して同期的
関係をもたないことに注意する。
メモリバスセクション(バッファ40、41、45、46と、
それらに関連するMUXと、ドライバクロック44とから構
成される)と、キャッシュメモリ17のその他の部分との
間のアクティビティはCPUシステムクロック(たとえ
ば、CLK)に対して同期していることに注意することは
重要である。メモリバスセクションと、メモリバスデー
タピンとの間のアクティビティはCLKに対して非同期で
ある。
それらに関連するMUXと、ドライバクロック44とから構
成される)と、キャッシュメモリ17のその他の部分との
間のアクティビティはCPUシステムクロック(たとえ
ば、CLK)に対して同期していることに注意することは
重要である。メモリバスセクションと、メモリバスデー
タピンとの間のアクティビティはCLKに対して非同期で
ある。
刻時メモリバスを使用する場合、メモリバスアクティ
ビティは別個のクロック(すなわち、MCLK)に対して同
期する。刻時メモリバスを採用しない場合には、メモリ
バスアクティビティは通常はストローブ信号(たとえ
ば、MEOC#)に対して同期する。ストローブ動作モード
は、信号端を使用する。従って、メモリバスインタフェ
ースには、広範囲にわたる一連のメモリバスプロトコル
を支援するために、2つの動作モードがある。
ビティは別個のクロック(すなわち、MCLK)に対して同
期する。刻時メモリバスを採用しない場合には、メモリ
バスアクティビティは通常はストローブ信号(たとえ
ば、MEOC#)に対して同期する。ストローブ動作モード
は、信号端を使用する。従って、メモリバスインタフェ
ースには、広範囲にわたる一連のメモリバスプロトコル
を支援するために、2つの動作モードがある。
また、メモリバスセクションからCPUバッファ20まで
の間には、64ビット幅のデータ経路(接続バス26)が存
在することに留意すべきである。このデータ経路は、SR
AMアレイ22を妨害することなしにキャッシュを通る経路
であると言う点できわめて有益な特徴である。このよう
にすることにより、本発明によれば、各々におけるデー
タ転送を同期させる必要を回避することができる。メモ
リバスセクションをCPUバスセクションに接続するため
に、メモリMUX/バッファ23は図2に示すようにバッファ
40、41、45及び46と関連して動作する。
の間には、64ビット幅のデータ経路(接続バス26)が存
在することに留意すべきである。このデータ経路は、SR
AMアレイ22を妨害することなしにキャッシュを通る経路
であると言う点できわめて有益な特徴である。このよう
にすることにより、本発明によれば、各々におけるデー
タ転送を同期させる必要を回避することができる。メモ
リバスセクションをCPUバスセクションに接続するため
に、メモリMUX/バッファ23は図2に示すようにバッファ
40、41、45及び46と関連して動作する。
CPUバスインタフェースと、メモリバスインタフェー
スの双方で並行動作を支援するために、複数のキャッシ
ュ行幅のバッファを使用する。現在の実現形態における
バッファは単一のCPUバッファ20と、4つのメモリイン
タフェースバッファ40、41、45及び46とを含む。メモリ
とCPUとの間の転送と、メモリとSRAMアレイ22との間の
転送の双方のために、バッファ40及び41を採用する。バ
ッファ45はスヌープライトバックのために使用され、一
方、バッファ46は置き換えライトバックのために利用さ
れる。尚、これらのバッファの各々がアレイに対して行
1行分の幅のインタフェースを有しており、そのため、
1回のクロックアクセスでピンにおける多重クロックバ
ーストを満たすことができるので、同時性が与えられる
ことに注意する。
スの双方で並行動作を支援するために、複数のキャッシ
ュ行幅のバッファを使用する。現在の実現形態における
バッファは単一のCPUバッファ20と、4つのメモリイン
タフェースバッファ40、41、45及び46とを含む。メモリ
とCPUとの間の転送と、メモリとSRAMアレイ22との間の
転送の双方のために、バッファ40及び41を採用する。バ
ッファ45はスヌープライトバックのために使用され、一
方、バッファ46は置き換えライトバックのために利用さ
れる。尚、これらのバッファの各々がアレイに対して行
1行分の幅のインタフェースを有しており、そのため、
1回のクロックアクセスでピンにおける多重クロックバ
ーストを満たすことができるので、同時性が与えられる
ことに注意する。
単にCPUバッファ又はメモリバッファの数を増加させ
るだけで、より大きな同時性を追加できるであろう。そ
のような状況に対して、データ経路の概念は同一であろ
う。例を挙げると、スヌープ動作を可能にするために追
加のスヌープバッファを使用することが可能であろう
し、その場合、スヌープバッファの中の1つに変更した
データを導入することになる。その後、他の変更データ
を捕獲しつつ他のスヌープを実行でき、その間に第1の
スヌープバッファはCPU10の一次キャッシュからCPUバス
14を介して変更データを捕獲している。
るだけで、より大きな同時性を追加できるであろう。そ
のような状況に対して、データ経路の概念は同一であろ
う。例を挙げると、スヌープ動作を可能にするために追
加のスヌープバッファを使用することが可能であろう
し、その場合、スヌープバッファの中の1つに変更した
データを導入することになる。その後、他の変更データ
を捕獲しつつ他のスヌープを実行でき、その間に第1の
スヌープバッファはCPU10の一次キャッシュからCPUバス
14を介して変更データを捕獲している。
従って、同時性の基本的な面はバッファ自体がキャッ
シュ行1行分の幅であるというところにある。これは、
1回の実行クロックサイクルの中で、キャッシュからの
キャッシュ行1行分の幅のデータ情報を1つのバッファ
に導入でき、次に、より遅い速度でそのバッファから外
へ転送できることを意味している。その間、メモリ側又
はCPU側からの他のバッファを他のデータ転送を目的と
して使用することが可能であろう。
シュ行1行分の幅であるというところにある。これは、
1回の実行クロックサイクルの中で、キャッシュからの
キャッシュ行1行分の幅のデータ情報を1つのバッファ
に導入でき、次に、より遅い速度でそのバッファから外
へ転送できることを意味している。その間、メモリ側又
はCPU側からの他のバッファを他のデータ転送を目的と
して使用することが可能であろう。
メモリバスでより大きなキャッシュ行を支援すること
もできる。従来の並列キャッシュ実現形態では、キャッ
シュ行は必然的にコンピュータシステム全体にわたって
同一のサイズとなる。ところが、本発明はCPUバスバッ
ファとメモリバッファとを分離するので、メモリバスは
CPUバスより大きな行サイズを有することができる。事
実、構成に応じて、1x、2x、4x又は8xの行比を(幅オプ
ションと、行ごとの4/8回の転送とに基づいて)支援す
ることが可能である。より幅の広いバスの使用又は行ご
とのより多くの回数の転送の使用などのわずかな変形を
伴えば、他の比も可能であることは自明である。
もできる。従来の並列キャッシュ実現形態では、キャッ
シュ行は必然的にコンピュータシステム全体にわたって
同一のサイズとなる。ところが、本発明はCPUバスバッ
ファとメモリバッファとを分離するので、メモリバスは
CPUバスより大きな行サイズを有することができる。事
実、構成に応じて、1x、2x、4x又は8xの行比を(幅オプ
ションと、行ごとの4/8回の転送とに基づいて)支援す
ることが可能である。より幅の広いバスの使用又は行ご
とのより多くの回数の転送の使用などのわずかな変形を
伴えば、他の比も可能であることは自明である。
メモリ側では、より広いバス側も支援される、すなわ
ち、メモリバスはCPUバスより広くても良いのである。
(実際には、メモリバスがCPUバスより狭くなることも
ありうるであろう。唯一の制約は、メモリバスが−広く
ても、あるいは狭くても−CPUバスの2の累乗でなけれ
ばならないということである。)より大きなキャッシュ
行に対応するため、又はメモリバスがより低速であるこ
とを考慮するために、より広い幅が必要になる場合が多
いことがわかる。同様に、構成に応じて、1x、2x又は4x
の幅比を支援することが可能である。また、より多くの
外部ピンを追加し且つ多重化機能をわずかに変更するこ
とにより、より大きな比を支援することも可能である。
尚、キャッシュ13の適切な出力線を一緒にメモリバス15
に接続することにより、メモリバス幅をより狭くするこ
と、すなわち、CPUバス幅より狭くすることができる点
に注意する。
ち、メモリバスはCPUバスより広くても良いのである。
(実際には、メモリバスがCPUバスより狭くなることも
ありうるであろう。唯一の制約は、メモリバスが−広く
ても、あるいは狭くても−CPUバスの2の累乗でなけれ
ばならないということである。)より大きなキャッシュ
行に対応するため、又はメモリバスがより低速であるこ
とを考慮するために、より広い幅が必要になる場合が多
いことがわかる。同様に、構成に応じて、1x、2x又は4x
の幅比を支援することが可能である。また、より多くの
外部ピンを追加し且つ多重化機能をわずかに変更するこ
とにより、より大きな比を支援することも可能である。
尚、キャッシュ13の適切な出力線を一緒にメモリバス15
に接続することにより、メモリバス幅をより狭くするこ
と、すなわち、CPUバス幅より狭くすることができる点
に注意する。
キャッシュメモリ17のメモリバスインタフェースセク
ションは装置ごとに4ビット又は8ビットのデータ経路
を支援するのが好ましい。好ましい実施例によれば、メ
モリバス幅はCPUバス幅以上であることが要求される。
この制約と、装置が16であるという制限とによって、80
486マイクロプロセッサの場合、128Kバイト又は256Kバ
イトのキャッシュで32ビットメモリバス、256Kバイト又
は512Kバイトのキャッシュで64ビットメモリバス、ある
いは512Kバイトのキャッシュで128ビットメモリバスを
直接に支援できる。CPUバスの制限は受けるが、その他
のメモリバスサイズとキャッシュサイズの組合わせも可
能であることは自明である。たとえば、別の実施例にお
いては、装置ごとのデータ経路幅の選択に応じて、同一
の構成でより大きなキャッシュメモリを実現するか又は
より少ない数の装置で同じサイズのキャッシュを実現す
るか、あるいは、その双方を実現することを選択しても
良い。
ションは装置ごとに4ビット又は8ビットのデータ経路
を支援するのが好ましい。好ましい実施例によれば、メ
モリバス幅はCPUバス幅以上であることが要求される。
この制約と、装置が16であるという制限とによって、80
486マイクロプロセッサの場合、128Kバイト又は256Kバ
イトのキャッシュで32ビットメモリバス、256Kバイト又
は512Kバイトのキャッシュで64ビットメモリバス、ある
いは512Kバイトのキャッシュで128ビットメモリバスを
直接に支援できる。CPUバスの制限は受けるが、その他
のメモリバスサイズとキャッシュサイズの組合わせも可
能であることは自明である。たとえば、別の実施例にお
いては、装置ごとのデータ経路幅の選択に応じて、同一
の構成でより大きなキャッシュメモリを実現するか又は
より少ない数の装置で同じサイズのキャッシュを実現す
るか、あるいは、その双方を実現することを選択しても
良い。
メモリバス制御装置インタフェース メモリバス制御装置インタフェースは、プロセッサク
ロックに対して同期する信号から構成されている。それ
らを以下の表1に挙げる。 表 1 機能 信号名 クロック CLK サイクル完了 CRDY# 転送完了 BRDY# リセット RESET パリティ構成 〔RAR#〕 CLKピンはプロセッサクロックをキャッシュ17に入力
するために使用される。キャッシュ17は、以下の表2に
挙げるメモリデータ経路信号を例外として、このクロッ
クを内部論理及び外部インタフェースに対する基本タイ
ミング基準として使用する。
ロックに対して同期する信号から構成されている。それ
らを以下の表1に挙げる。 表 1 機能 信号名 クロック CLK サイクル完了 CRDY# 転送完了 BRDY# リセット RESET パリティ構成 〔RAR#〕 CLKピンはプロセッサクロックをキャッシュ17に入力
するために使用される。キャッシュ17は、以下の表2に
挙げるメモリデータ経路信号を例外として、このクロッ
クを内部論理及び外部インタフェースに対する基本タイ
ミング基準として使用する。
CRDY#信号はメモリバス制御装置によりサイクルの完
了を指示するために使用される(1サイクルは1回又は
2回以上のデータ転送から構成されるものと思われ
る)。BRDY#信号はメモリバス制御装置により1回のデ
ータ転送の完了をキャッシュデータ経路17を介してCPU
に報知するために使用される。
了を指示するために使用される(1サイクルは1回又は
2回以上のデータ転送から構成されるものと思われ
る)。BRDY#信号はメモリバス制御装置により1回のデ
ータ転送の完了をキャッシュデータ経路17を介してCPU
に報知するために使用される。
リセットピンはキャッシュ17を強制的に既知の状態に
させ且つキャッシュが構成に関わる指定のピンをサンプ
リングしなければならないときにそれをキャッシュに報
知するために使用される。〔PAR#〕ピンは正規の動作
又はパリティモード動作に際してキャッシュを構成する
ために使用される。このピンは構成に関してのみ使用さ
れることから、括弧を使用しており、正規の動作中には
このピンは無視される。〔PAR#〕に加えて、以下に説
明する通り、構成情報はキャッシュ制御装置及びメモリ
バスデータ経路制御信号からキャッシュに渡される。
させ且つキャッシュが構成に関わる指定のピンをサンプ
リングしなければならないときにそれをキャッシュに報
知するために使用される。〔PAR#〕ピンは正規の動作
又はパリティモード動作に際してキャッシュを構成する
ために使用される。このピンは構成に関してのみ使用さ
れることから、括弧を使用しており、正規の動作中には
このピンは無視される。〔PAR#〕に加えて、以下に説
明する通り、構成情報はキャッシュ制御装置及びメモリ
バスデータ経路制御信号からキャッシュに渡される。
メモリバスデータ経路インタフェース データ経路を広範囲のメモリバス環境に効率良くイン
タフェースするために、メモリデータ経路は8ビットデ
ータ経路と、1組の制御信号とから構成されている。特
定していえば、プロセッサクロックに対して同期動作又
は非同期動作する刻時プロトコル又はストローブプロト
コルを支援するのである。尚、場合によっては、様々な
動作モードを支援するために共通する1組のピンで複数
の信号を多重化することに注意する。1つのピンが複数
の信号を支援する場合、小括弧の中に示されている名前
はストローブモードについて使用され、一方、基本名は
クロックモードについて使用される。先に定義した通
り、括弧内に見えている信号名はリセット構成について
使用される。 表 2 機能 信号名 サイクル制御 MSEL#〔MTR4/MTR8#〕,MEOC# 転送制御 MBRDY#(MISTB), MOCLK(MOSTB) サイクル属性 MZBT#〔MX4/MX8#〕, MFRZ#〔MEMLDRV〕 メモリデータバス MDATA0〜MDATA7 データ出力イネーブル MDOE# MCLK信号は、キャッシュメモリデータバスの動作のた
めの時間基準を設定する。刻時動作モードでは、この信
号は(MDOE#ピンを除く)他の全てのピンが立ち上がり
端を参照する状態でメモリクロックに接続するのが好ま
しい。ストローブ動作モードにおいては、このピンはス
トローブモード構成を成立させるために高電圧に結合す
るのが好ましい。
タフェースするために、メモリデータ経路は8ビットデ
ータ経路と、1組の制御信号とから構成されている。特
定していえば、プロセッサクロックに対して同期動作又
は非同期動作する刻時プロトコル又はストローブプロト
コルを支援するのである。尚、場合によっては、様々な
動作モードを支援するために共通する1組のピンで複数
の信号を多重化することに注意する。1つのピンが複数
の信号を支援する場合、小括弧の中に示されている名前
はストローブモードについて使用され、一方、基本名は
クロックモードについて使用される。先に定義した通
り、括弧内に見えている信号名はリセット構成について
使用される。 表 2 機能 信号名 サイクル制御 MSEL#〔MTR4/MTR8#〕,MEOC# 転送制御 MBRDY#(MISTB), MOCLK(MOSTB) サイクル属性 MZBT#〔MX4/MX8#〕, MFRZ#〔MEMLDRV〕 メモリデータバス MDATA0〜MDATA7 データ出力イネーブル MDOE# MCLK信号は、キャッシュメモリデータバスの動作のた
めの時間基準を設定する。刻時動作モードでは、この信
号は(MDOE#ピンを除く)他の全てのピンが立ち上がり
端を参照する状態でメモリクロックに接続するのが好ま
しい。ストローブ動作モードにおいては、このピンはス
トローブモード構成を成立させるために高電圧に結合す
るのが好ましい。
MSEL#信号とMEOC#信号はサイクル制御のために使用
される。これらの信号は刻時モード又はストローブモー
ドの動作で同一の機能を実行するが、サンプリング規則
はわずかに異なる。MSEL#ピンはバス化構成でキャッシ
ュ17が選択されたときを指示すると共に、一部完了した
サイクルを再開するために使用される。MEOC#ピンは、
プロセッサクロックに対する同期を必要とせずに1サイ
クルの終了を報知して、キャッシュデータ経路に非常に
急速な折り返しサイクルをランさせるために使用され
る。
される。これらの信号は刻時モード又はストローブモー
ドの動作で同一の機能を実行するが、サンプリング規則
はわずかに異なる。MSEL#ピンはバス化構成でキャッシ
ュ17が選択されたときを指示すると共に、一部完了した
サイクルを再開するために使用される。MEOC#ピンは、
プロセッサクロックに対する同期を必要とせずに1サイ
クルの終了を報知して、キャッシュデータ経路に非常に
急速な折り返しサイクルをランさせるために使用され
る。
転送制御信号はデータの単一の一部分をキャッシュ17
と交換するときにそれに影響を及ぼすために使用される
(1サイクルは1回又は2回以上の転送から構成される
ろ思われる)。これらの信号線では、動作モードに応じ
て、複数の異なる信号が多重化される。刻時モードで
は、転送制御ピンをMBRDY#及びMOCLKとして定義してい
る。MBRDY#信号はデータ転送の完了(読取りに関わる
データのサンプリング、書込みに関わる次のデータの送
り出し)を指示する。MOCLKピンは出力データに対する
タイミング信号として使用される。MCLKの遅延バージョ
ンをこのピンに接続することにより、最小データ出力遅
延を増加させて、システムにおける信号スキューを補正
するためにメモリデータバスに追加保持時間を与えるこ
とが可能である。MOCLKピンを高電位に結合すると、現
時点で好ましい実施例では出力データはMCLKを参照する
(入力データと制御信号は常にMCLKを参照している)。
と交換するときにそれに影響を及ぼすために使用される
(1サイクルは1回又は2回以上の転送から構成される
ろ思われる)。これらの信号線では、動作モードに応じ
て、複数の異なる信号が多重化される。刻時モードで
は、転送制御ピンをMBRDY#及びMOCLKとして定義してい
る。MBRDY#信号はデータ転送の完了(読取りに関わる
データのサンプリング、書込みに関わる次のデータの送
り出し)を指示する。MOCLKピンは出力データに対する
タイミング信号として使用される。MCLKの遅延バージョ
ンをこのピンに接続することにより、最小データ出力遅
延を増加させて、システムにおける信号スキューを補正
するためにメモリデータバスに追加保持時間を与えるこ
とが可能である。MOCLKピンを高電位に結合すると、現
時点で好ましい実施例では出力データはMCLKを参照する
(入力データと制御信号は常にMCLKを参照している)。
ストローブモードにおいては、転送制御ピンをMISTB
及びMOSTBとして定義している。読取りサイクル時に
は、これらの信号はメモリバスから来るデータをサンプ
リングするために使用され、書込みサイクル中には、キ
ャッシュ17からデータを受け入れ終わったことを報知
し、それにより、次のデータを送り出させるために使用
される。尚、読取りサイクルと書込みサイクルに対して
異なるタイミングを支援するために2つが与えられてい
ることに注意する。論理上は、上記の機能のために必要
とされる信号は1つだけである。現時点で好ましい実施
例では、これらの信号は完全に対称である。
及びMOSTBとして定義している。読取りサイクル時に
は、これらの信号はメモリバスから来るデータをサンプ
リングするために使用され、書込みサイクル中には、キ
ャッシュ17からデータを受け入れ終わったことを報知
し、それにより、次のデータを送り出させるために使用
される。尚、読取りサイクルと書込みサイクルに対して
異なるタイミングを支援するために2つが与えられてい
ることに注意する。論理上は、上記の機能のために必要
とされる信号は1つだけである。現時点で好ましい実施
例では、これらの信号は完全に対称である。
MZBT#ピンとMFRZ#ピンは、サイクル属性を指示する
ために使用される。MZBT#ピンは、キャッシュ行の最下
位アドレスから順次始まるバースト転送を実行すること
をキャッシュ17に指示するために使用される。この信号
は、80486バースト順序ではデータを供給しないバスを
動的に支援するために採用される。MFRZ#ピンは、書込
みサイクルで、より効率良く書込み割当てを実現するた
めに内部で書込みデータを保持することをキャッシュ17
に報知するために使用される。従って、割当てに際し
て、データの併合はオプションとして支援される。
ために使用される。MZBT#ピンは、キャッシュ行の最下
位アドレスから順次始まるバースト転送を実行すること
をキャッシュ17に指示するために使用される。この信号
は、80486バースト順序ではデータを供給しないバスを
動的に支援するために採用される。MFRZ#ピンは、書込
みサイクルで、より効率良く書込み割当てを実現するた
めに内部で書込みデータを保持することをキャッシュ17
に報知するために使用される。従って、割当てに際し
て、データの併合はオプションとして支援される。
割当てサイクルは、CPUからの書込みに応答して1つ
のキャッシュ行を読取ることから成る。これはメモリで
最初の書込みを実行することにより処理され、その後に
割当てが続く。本発明により処理できるもう1つの方法
は、割当てを実行し、書込みデータを併合し、その結果
を変更状態でキャッシュに導入することによるものであ
る。(CPUバッファから渡される有効ビットに基づい
て)書込みデータをメモリバッファにフリーズするMFRZ
#信号を使用して、双方のケースはデータ経路とバッフ
ァにより支援される。
のキャッシュ行を読取ることから成る。これはメモリで
最初の書込みを実行することにより処理され、その後に
割当てが続く。本発明により処理できるもう1つの方法
は、割当てを実行し、書込みデータを併合し、その結果
を変更状態でキャッシュに導入することによるものであ
る。(CPUバッファから渡される有効ビットに基づい
て)書込みデータをメモリバッファにフリーズするMFRZ
#信号を使用して、双方のケースはデータ経路とバッフ
ァにより支援される。
MDATA0〜MDATA7の信号はキャッシュ装置との間でデー
タを転送するために使用される。これらのピンは刻時動
作モードとストローブ動作モードの双方で同一の機能を
実行する。構成によっては、これらのピンのうちのサブ
セットのみを使用しても良い。MDOE#ピンは書込み動作
中にMDATAピンで出力バッファをイネーブルするために
利用される。この信号はプロセッサクロックその他のメ
モリデータ経路制御信号、又は選択した動作モードとは
無関係である。
タを転送するために使用される。これらのピンは刻時動
作モードとストローブ動作モードの双方で同一の機能を
実行する。構成によっては、これらのピンのうちのサブ
セットのみを使用しても良い。MDOE#ピンは書込み動作
中にMDATAピンで出力バッファをイネーブルするために
利用される。この信号はプロセッサクロックその他のメ
モリデータ経路制御信号、又は選択した動作モードとは
無関係である。
最後に、次に挙げる信号のうちいくつかは構成につい
てリセット中に使用される。先に説明した通り、MCLK
〔MSTBM〕は刻時動作モード又はストローブ動作モード
を選択するための使用され、また、MOCLKはクロックモ
ードでは出力データのタイミング基準として使用されて
も良い。加えて、MSEL#〔MTR4/MTR8#〕は4回又は8
回の転送でメモリバスキャッシュ行を構成するために使
用され、MZBT#〔MX4/MX8#〕はメモリデータインタフ
ェースの幅を4ビット又は8ビットに選択するために採
用される。MFRZ#〔MEMLDRV〕信号は、MDATA0〜MDATA7
出力バッファの強さを構成するために使用される。尚、
現時点で好ましい実施例で使用する信号とピンの表示に
関わる付加的な情報と説明は添付の付録に示されてい
る。
てリセット中に使用される。先に説明した通り、MCLK
〔MSTBM〕は刻時動作モード又はストローブ動作モード
を選択するための使用され、また、MOCLKはクロックモ
ードでは出力データのタイミング基準として使用されて
も良い。加えて、MSEL#〔MTR4/MTR8#〕は4回又は8
回の転送でメモリバスキャッシュ行を構成するために使
用され、MZBT#〔MX4/MX8#〕はメモリデータインタフ
ェースの幅を4ビット又は8ビットに選択するために採
用される。MFRZ#〔MEMLDRV〕信号は、MDATA0〜MDATA7
出力バッファの強さを構成するために使用される。尚、
現時点で好ましい実施例で使用する信号とピンの表示に
関わる付加的な情報と説明は添付の付録に示されてい
る。
メモリインタフェースバッファ メモリインタフェースバッファ40、41、45及び46が実
行する特定の機能は、メモリバス読取り(たとえば、行
充填)と、ライトスルーと、ライトバックと、スヌープ
とを含む。採用するバッファの数が様々な代替実施例の
間で異なることもあるのは当業者には明白であろう。し
かしながら、キャッシュ制御装置の所定の実現形態に対
して、利用するバッファの数に制限があることに注意す
べきである。この制御は、並行動作(たとえば、メモリ
バス読取りを実行するのと同時にライトバッファをロー
ドすること)と、キャッシュ13とキャッシュ制御装置12
との間で使用するプロトコルとについてなされる仮定に
基づいている。
行する特定の機能は、メモリバス読取り(たとえば、行
充填)と、ライトスルーと、ライトバックと、スヌープ
とを含む。採用するバッファの数が様々な代替実施例の
間で異なることもあるのは当業者には明白であろう。し
かしながら、キャッシュ制御装置の所定の実現形態に対
して、利用するバッファの数に制限があることに注意す
べきである。この制御は、並行動作(たとえば、メモリ
バス読取りを実行するのと同時にライトバッファをロー
ドすること)と、キャッシュ13とキャッシュ制御装置12
との間で使用するプロトコルとについてなされる仮定に
基づいている。
キャッシュ制御装置から先に線路59と、CPU制御ブロ
ック21と、線路58を介して受信した情報に基づいて、現
在メモリバスサイクルについて適切なメモリインタフェ
ースバッファ記憶場所を確定するために、バッファ40、
41、45及び46と、それらに関連するMUXとに関して通常
の追跡論理が含まれている。制御ブロック48は、メモリ
バッファ選択信号及びメモリマルチプレクサ選択信号を
各々の線路52及び53に沿ってメモリインタフェースバッ
ファに供給する。この内部追跡論理は、CPUクロックに
対して非同期であるメモリバスで高速の折り返し動作を
支援することができる。
ック21と、線路58を介して受信した情報に基づいて、現
在メモリバスサイクルについて適切なメモリインタフェ
ースバッファ記憶場所を確定するために、バッファ40、
41、45及び46と、それらに関連するMUXとに関して通常
の追跡論理が含まれている。制御ブロック48は、メモリ
バッファ選択信号及びメモリマルチプレクサ選択信号を
各々の線路52及び53に沿ってメモリインタフェースバッ
ファに供給する。この内部追跡論理は、CPUクロックに
対して非同期であるメモリバスで高速の折り返し動作を
支援することができる。
先にCPUバスインタフェースについて説明したよう
に、1つのサイクルの中でデータ転送を最適化するため
にバーストカウンタも含まれている。尚、メモリバスに
おけるバーストに対して、本発明の現時点で好ましい実
施例では順序はIntel 80486の定義の論理的拡張である
と仮定される。メモリバスの全てのバーストサイクルを
零ベースにさせるためのモードも利用可能である。これ
により、拡張80486バースト順序を支援しないバスを支
援できる。
に、1つのサイクルの中でデータ転送を最適化するため
にバーストカウンタも含まれている。尚、メモリバスに
おけるバーストに対して、本発明の現時点で好ましい実
施例では順序はIntel 80486の定義の論理的拡張である
と仮定される。メモリバスの全てのバーストサイクルを
零ベースにさせるためのモードも利用可能である。これ
により、拡張80486バースト順序を支援しないバスを支
援できる。
メモリバッファ40及び41は行充填、割当て及びメモリ
書込みのために採用される。それらのバッファは、1回
のメモリサイクルの間に8回までの転送を8つのメモリ
バスデータ入出力ピンにわたって支援するために、それ
ぞれ64ビット幅である。キャッシュメモリ17は正規の動
作中はこれらのバッファを交互に使用する。たとえば、
メモリ読取りのために一方のバッファを利用していると
き、他方のバッファは次のサイクルのために利用可能で
ある。これにより、折り返しメモリバスサイクルが可能
である。別の例を挙げると、1つのサイクルの間に一方
のメモリ読取りに関わるデータをSRAMアレイ22に書込ん
でいるときに、他方のメモリバッファを使用して別のメ
モリ読取りサイクルを開始することができる。
書込みのために採用される。それらのバッファは、1回
のメモリサイクルの間に8回までの転送を8つのメモリ
バスデータ入出力ピンにわたって支援するために、それ
ぞれ64ビット幅である。キャッシュメモリ17は正規の動
作中はこれらのバッファを交互に使用する。たとえば、
メモリ読取りのために一方のバッファを利用していると
き、他方のバッファは次のサイクルのために利用可能で
ある。これにより、折り返しメモリバスサイクルが可能
である。別の例を挙げると、1つのサイクルの間に一方
のメモリ読取りに関わるデータをSRAMアレイ22に書込ん
でいるときに、他方のメモリバッファを使用して別のメ
モリ読取りサイクルを開始することができる。
信号MCYC#は、現在CPUサイクルがメモリバッファの
一方40又は41を使用することを指示するために使用され
る。現在サイクルが読取りである場合これはメモリ読取
りである。CRDY#がメモリ読取りを終了する前にMAWEA
#を受信しないならば、キャッシュ行はキャッシング不
可能であり、CRDY#でバッファを利用可能である。MAWE
A#を受信すると、それはキャッシング可能充填であ
り、行をSRAMアレイに書込むまでバッファは利用不可能
である。実際の書込みはCRDY#の後のクロックで起こ
る。データは接続バス26を介してCPUバスへ転送され
る。
一方40又は41を使用することを指示するために使用され
る。現在サイクルが読取りである場合これはメモリ読取
りである。CRDY#がメモリ読取りを終了する前にMAWEA
#を受信しないならば、キャッシュ行はキャッシング不
可能であり、CRDY#でバッファを利用可能である。MAWE
A#を受信すると、それはキャッシング可能充填であ
り、行をSRAMアレイに書込むまでバッファは利用不可能
である。実際の書込みはCRDY#の後のクロックで起こ
る。データは接続バス26を介してCPUバスへ転送され
る。
CPU書込み中にMCYC#を受信すると、これはライトス
ルー又は通知書込みになる(タイミング図を参照)。メ
モリバス書込みサイクルの開始時にメモリバスを利用可
能である場合、書込まれる初期記憶場所はCPUバス14か
ら接続バス26を介してメモリバス15へ指示される。いず
れにしても、CPUがキャッシュ17へデータをバーストす
るにつれて、このデータを利用可能なメモリインタフェ
ースバッファの記憶場所(たとえば、バッファ40又は4
1)へ転送すれば良い。この転送はCPUクロック速度で起
こる。メモリバスが転送を完了する間に、バッファから
出力したデータは次の記憶場所へと変化する。これは、
CPU側とは無関係にメモリバスクロック速度(すなわ
ち、MCLK)で起こる。(尚、メモリバスへの書込みは1
から4の長さであれば良いことに注意する。)メリバス
書込みの終了前にMAWEA#を受信したならば、同一のメ
モリサイクルバッファとアドレスを使用して割込みを実
行する。
ルー又は通知書込みになる(タイミング図を参照)。メ
モリバス書込みサイクルの開始時にメモリバスを利用可
能である場合、書込まれる初期記憶場所はCPUバス14か
ら接続バス26を介してメモリバス15へ指示される。いず
れにしても、CPUがキャッシュ17へデータをバーストす
るにつれて、このデータを利用可能なメモリインタフェ
ースバッファの記憶場所(たとえば、バッファ40又は4
1)へ転送すれば良い。この転送はCPUクロック速度で起
こる。メモリバスが転送を完了する間に、バッファから
出力したデータは次の記憶場所へと変化する。これは、
CPU側とは無関係にメモリバスクロック速度(すなわ
ち、MCLK)で起こる。(尚、メモリバスへの書込みは1
から4の長さであれば良いことに注意する。)メリバス
書込みの終了前にMAWEA#を受信したならば、同一のメ
モリサイクルバッファとアドレスを使用して割込みを実
行する。
書込みが新たな行の割当てを発生する場合、書込みに
使用したメモリバッファ(たとえば、40又は41)を割当
てにも使用する。例を挙げると、信号MFRZ#(付録を参
照)が活動状態であれば、割当てへの書込みからのデー
タの併合が実行される。そこで、CPU書込みによって書
込まれていた記憶場所に向かう割当てからのデータは
(CPUバッファ20から転送される有効ビットに基づい
て)無視される。行を完成するその他の記憶場所に係わ
るデータは、ちょうど他の何らかの割当て又はメモリ読
取りであるかのようにバッファにロードされる。行が完
成したとき、その行はアレイ22に書込まれる。これによ
り、メモリへの書込みを所有権に関して読取りに切替え
ることができる。
使用したメモリバッファ(たとえば、40又は41)を割当
てにも使用する。例を挙げると、信号MFRZ#(付録を参
照)が活動状態であれば、割当てへの書込みからのデー
タの併合が実行される。そこで、CPU書込みによって書
込まれていた記憶場所に向かう割当てからのデータは
(CPUバッファ20から転送される有効ビットに基づい
て)無視される。行を完成するその他の記憶場所に係わ
るデータは、ちょうど他の何らかの割当て又はメモリ読
取りであるかのようにバッファにロードされる。行が完
成したとき、その行はアレイ22に書込まれる。これによ
り、メモリへの書込みを所有権に関して読取りに切替え
ることができる。
すなわち、CPUバスインタフェースとメモリバスイン
タフェースは共に独立して動作するので、一方の側がそ
れ独自の最適な速度でデータを収集している間に、他方
の側はそのデータを独自の最適な速度で多重化している
ということが可能である。言うまでもなく、この動作に
ついて重要であるのは、CPUバスとメモリバスを接続す
る透過データ経路を介してデータを渡す能力である。読
取りの場合、これはメモリバスから来る第1のデータが
直ちにCPUピンに渡されることを意味している。そこ
で、メモリバスインタフェースは、メモリバッファ40及
び41の使用によって、CPUの動作とは無関係にバースト
動作を完了することができるのである。
タフェースは共に独立して動作するので、一方の側がそ
れ独自の最適な速度でデータを収集している間に、他方
の側はそのデータを独自の最適な速度で多重化している
ということが可能である。言うまでもなく、この動作に
ついて重要であるのは、CPUバスとメモリバスを接続す
る透過データ経路を介してデータを渡す能力である。読
取りの場合、これはメモリバスから来る第1のデータが
直ちにCPUピンに渡されることを意味している。そこ
で、メモリバスインタフェースは、メモリバッファ40及
び41の使用によって、CPUの動作とは無関係にバースト
動作を完了することができるのである。
CPUバス転送は(データは利用可能でなければならな
いという自明の制約以外は)メモリバス転送とは無関係
に起こることができる。メモリバス制御装置11は、正し
い動作を確保するために、双方のインタフェースを協調
させることになる。しかしながら、転送ごとに同期させ
る必要はない。すなわち、CPU又は外部メモリのいずれ
かとハンドシェークする必要はないのである。この転送
の分離によって、第1のデータに対してできる限り急速
なアクセスが可能になると共に、できる限り効率の良い
バーストが可能になる。
いという自明の制約以外は)メモリバス転送とは無関係
に起こることができる。メモリバス制御装置11は、正し
い動作を確保するために、双方のインタフェースを協調
させることになる。しかしながら、転送ごとに同期させ
る必要はない。すなわち、CPU又は外部メモリのいずれ
かとハンドシェークする必要はないのである。この転送
の分離によって、第1のデータに対してできる限り急速
なアクセスが可能になると共に、できる限り効率の良い
バーストが可能になる。
従って、CPU側とメモリ側での独立した非同期データ
転送制御は高速のCPUバスを相対的に低速のメモリバス
から分離する。CPU側はCLKに同期し、80486バスについ
て定義されているのが好ましいBRDY#信号及びBLAST#
信号により制御される。メモリインタフェースは、CLK
に対して非同期である1組の信号により制御される。
転送制御は高速のCPUバスを相対的に低速のメモリバス
から分離する。CPU側はCLKに同期し、80486バスについ
て定義されているのが好ましいBRDY#信号及びBLAST#
信号により制御される。メモリインタフェースは、CLK
に対して非同期である1組の信号により制御される。
置き換えライトバックは、新たな行が充填されている
ときに変更された行をキャッシュから除外するために使
用される。ライトバックバッファ46はこれらの動作を支
援するために設けられているのである。変更データは、
変位タグを占めるメモリ読出しの間、ライトバックバッ
ファに記憶される。メモリ読出しがキャッシング不可能
である(たとえば、MAWEA#がない)とわかれば、ライ
トバックを取り消す。
ときに変更された行をキャッシュから除外するために使
用される。ライトバックバッファ46はこれらの動作を支
援するために設けられているのである。変更データは、
変位タグを占めるメモリ読出しの間、ライトバックバッ
ファに記憶される。メモリ読出しがキャッシング不可能
である(たとえば、MAWEA#がない)とわかれば、ライ
トバックを取り消す。
ライトバックバッファ46はSRAMアレイ22からメモリバ
スへの置き換えライトバック、フラッシュ及び同期動作
のために採用される。ライトバックバッファ46は、セク
タごとに1つの行を有するどのような構成に対してもキ
ャッシュ制御装置1行分を保持するのに十分な大きさで
ある64ビット幅である。セクタごとに2つの行がある構
成では、バッファ46が双方の行を取り込むのに十分な大
きさとなるように、各キャッシュメモリに入る行の部分
は32ビット以下である。通常、メモリインタフェースバ
ッファと関連するマルチプレクサ論理はバッファ46から
正しい数のビットを取り出す必要がある。セクタごとに
2つの行がある場合、双方の行を獲得するには2回の読
取りを要する。
スへの置き換えライトバック、フラッシュ及び同期動作
のために採用される。ライトバックバッファ46は、セク
タごとに1つの行を有するどのような構成に対してもキ
ャッシュ制御装置1行分を保持するのに十分な大きさで
ある64ビット幅である。セクタごとに2つの行がある構
成では、バッファ46が双方の行を取り込むのに十分な大
きさとなるように、各キャッシュメモリに入る行の部分
は32ビット以下である。通常、メモリインタフェースバ
ッファと関連するマルチプレクサ論理はバッファ46から
正しい数のビットを取り出す必要がある。セクタごとに
2つの行がある場合、双方の行を獲得するには2回の読
取りを要する。
1行分のデータがライトバックバッファ46にロードさ
れている間に、フラグは行0又は行1のいずれかがロー
ド済であることを指示するためにセットされる。セクタ
ごとに2つの行がある場合、1つのアレイで双方の行を
ロードできるではあろうが、2つのWBWE#が必要であ
る。第2のWBWE#は、双方の行をメモリバスに書込まな
ければならないことをキャッシュに報知するために必要
である。行有効フラグは、この行についてライトバック
を完了するCRDY#によりクリアされる。これらのライバ
ックタイミングの詳細については、後にタイミング図の
中で示す。
れている間に、フラグは行0又は行1のいずれかがロー
ド済であることを指示するためにセットされる。セクタ
ごとに2つの行がある場合、1つのアレイで双方の行を
ロードできるではあろうが、2つのWBWE#が必要であ
る。第2のWBWE#は、双方の行をメモリバスに書込まな
ければならないことをキャッシュに報知するために必要
である。行有効フラグは、この行についてライトバック
を完了するCRDY#によりクリアされる。これらのライバ
ックタイミングの詳細については、後にタイミング図の
中で示す。
キャッシュの変更行に対するスヌープヒットがある場
合、この行をSRAMアレイ22から読取って、スヌープバッ
ファ45に記憶する。データをスヌープバッファ45に導入
したならば、これは最高の優先順位をもつメモリバスサ
イクルになる。ライトバックバッファ46はスヌープが起
こったときに変更行を保持しうるので、スヌープはアレ
イ中の記憶場所ではなく、ライトバックバッファ46をヒ
ットする可能性があると考えられる。この場合、キャッ
シュ制御装置はライトバックバッファ46を最高の優先順
位をもつメモリバスサイクルとして扱うことをSRAM17に
報知する。スヌープバッファ指令及びライトバックバッ
ファ指令の報知は、信号WBWE#、WBTYP#及びWBA(付録
を参照)を使用して、線路59を介して実行される。
合、この行をSRAMアレイ22から読取って、スヌープバッ
ファ45に記憶する。データをスヌープバッファ45に導入
したならば、これは最高の優先順位をもつメモリバスサ
イクルになる。ライトバックバッファ46はスヌープが起
こったときに変更行を保持しうるので、スヌープはアレ
イ中の記憶場所ではなく、ライトバックバッファ46をヒ
ットする可能性があると考えられる。この場合、キャッ
シュ制御装置はライトバックバッファ46を最高の優先順
位をもつメモリバスサイクルとして扱うことをSRAM17に
報知する。スヌープバッファ指令及びライトバックバッ
ファ指令の報知は、信号WBWE#、WBTYP#及びWBA(付録
を参照)を使用して、線路59を介して実行される。
スヌープヒット以外のメモリサイクルに関しては、メ
モリバスサイクルはバッファ40及び41が利用される順序
で起こる。例を挙げると、メモリ読取りが始まったとき
にライトバックバッファ46にデータがある場合、ライト
バックサイクルはメモリ読取りサイクルに先立って実行
される。書込みに際してメモリバッファがデータを得る
前に、メモリ読取りが他方のメモリバッファを使用して
始まったときには、書込みがまず実行される。メモリ読
取りが一方のメモリバッファを使用して進行中であり且
つ他方のバッファを使用して書込みが始まった場合、メ
モリ読取りと、それに関連するどのライトバックも書込
みに先立って終了する。(尚、MEOC#がローであると
き、メモリバスでサイクルが終了することに注意する。
このサイクルの終了が検出されると、キャッシュ17はそ
の待ち行列の中の次のメモリバスサイクルに切換わる。
モリバスサイクルはバッファ40及び41が利用される順序
で起こる。例を挙げると、メモリ読取りが始まったとき
にライトバックバッファ46にデータがある場合、ライト
バックサイクルはメモリ読取りサイクルに先立って実行
される。書込みに際してメモリバッファがデータを得る
前に、メモリ読取りが他方のメモリバッファを使用して
始まったときには、書込みがまず実行される。メモリ読
取りが一方のメモリバッファを使用して進行中であり且
つ他方のバッファを使用して書込みが始まった場合、メ
モリ読取りと、それに関連するどのライトバックも書込
みに先立って終了する。(尚、MEOC#がローであると
き、メモリバスでサイクルが終了することに注意する。
このサイクルの終了が検出されると、キャッシュ17はそ
の待ち行列の中の次のメモリバスサイクルに切換わる。
読取り時及び書込み時のメモリデータ経路 図3は、図4に詳細に示すCPUデータ経路に類似して
動作するメモリデータ経路の詳細を示す。メモリインタ
フェースバッファ40、41、45及び46は8:1バーストマル
チプレクサ67と、構成マルチプレクサ68と、通常の出力
ドライバとを介してデータを出力し、メモリデータバス
にラッチする。メモリバスからメモリインタフェースバ
ッファに至るデータ転送は、メモリインタフェースバッ
ファにより受信される前に、一連の入力ドライバと、ラ
ッチと、マルチプレクサとを通過する。いずれの方向へ
のデータの流れも、メモリ制御装置48により発生される
メモリ制御装置48により発生されるメモリバッファ選択
信号及びメモリマルチプレクサ選択信号によって制御さ
れる。
動作するメモリデータ経路の詳細を示す。メモリインタ
フェースバッファ40、41、45及び46は8:1バーストマル
チプレクサ67と、構成マルチプレクサ68と、通常の出力
ドライバとを介してデータを出力し、メモリデータバス
にラッチする。メモリバスからメモリインタフェースバ
ッファに至るデータ転送は、メモリインタフェースバッ
ファにより受信される前に、一連の入力ドライバと、ラ
ッチと、マルチプレクサとを通過する。いずれの方向へ
のデータの流れも、メモリ制御装置48により発生される
メモリ制御装置48により発生されるメモリバッファ選択
信号及びメモリマルチプレクサ選択信号によって制御さ
れる。
メモリバス読取りサイクルはキャッシュメモリインタ
フェースバッファの一方に書込む。この場合、データは
メモリバスインタフェースピンから入力し、キャッシュ
17にラッチされる。データがラッチする時点で、データ
はCPUデータ経路に関連して説明したのと同様に全8ビ
ットデータ経路に多重化される。その後、8ビット分の
データは適切なバッファへ送り出される。ブロック65の
中には、データを可能な全てのメモリバッファに広げて
ゆく数レベルのドライバがある。次に、メモリ制御ブロ
ック48はどのバッファに書込む必要があるかを選択す
る。尚、この決定はどのバッファが選択されているか、
現在アドレス及び構成に基づくことに注意する。
フェースバッファの一方に書込む。この場合、データは
メモリバスインタフェースピンから入力し、キャッシュ
17にラッチされる。データがラッチする時点で、データ
はCPUデータ経路に関連して説明したのと同様に全8ビ
ットデータ経路に多重化される。その後、8ビット分の
データは適切なバッファへ送り出される。ブロック65の
中には、データを可能な全てのメモリバッファに広げて
ゆく数レベルのドライバがある。次に、メモリ制御ブロ
ック48はどのバッファに書込む必要があるかを選択す
る。尚、この決定はどのバッファが選択されているか、
現在アドレス及び構成に基づくことに注意する。
メモリバス書込みサイクルはメモリインタフェースバ
ッファの一方からデータを読取る。この状況に対して、
データは64ビット幅であるバッファの一方で始まる。バ
ーストマルチプレクサ67と構成マルチプレクサ68(現時
点で好ましい実施例ではバッファに分散している)は8
ビットの中の1つを選択するように機能するので、その
結果、合わせて8ビットがメモリバスに結合する出力ド
ライバへ送り出される。CPU側の場合と同様に、構成MUX
68は、所定の構成において使用されているメモリデータ
ピンの数を支援するために、データを正しく位置決めす
る。実際、現在の実現形態では、この機能をバーストマ
ルチプレクサと組合わせて、メモリインタフェースバッ
ファ全体に分散させている。この構成は、バッファ選択
信号及びマルチプレクサ選択信号を発生するメモリ制御
論理により理解される。
ッファの一方からデータを読取る。この状況に対して、
データは64ビット幅であるバッファの一方で始まる。バ
ーストマルチプレクサ67と構成マルチプレクサ68(現時
点で好ましい実施例ではバッファに分散している)は8
ビットの中の1つを選択するように機能するので、その
結果、合わせて8ビットがメモリバスに結合する出力ド
ライバへ送り出される。CPU側の場合と同様に、構成MUX
68は、所定の構成において使用されているメモリデータ
ピンの数を支援するために、データを正しく位置決めす
る。実際、現在の実現形態では、この機能をバーストマ
ルチプレクサと組合わせて、メモリインタフェースバッ
ファ全体に分散させている。この構成は、バッファ選択
信号及びマルチプレクサ選択信号を発生するメモリ制御
論理により理解される。
タイミング図 本発明の動作をさらに良く理解するために、図5〜図
37のタイミング図を提示してある。これらの波形は本発
明の現時点で好ましい実施例の動作を例示している。
37のタイミング図を提示してある。これらの波形は本発
明の現時点で好ましい実施例の動作を例示している。
図5は、MUXビットを伴なう長さ4と、MUXビットを伴
なう長さ1と、MUXミスを伴なう長さ1とをもつ非パイ
プライン化CPU読取りヒットサイクルを示す。サイクル
の開始時には他のサイクルは活動していないので、CPU
アドレスラッチ49と、CPU MUX/バッファ20とは開いて
おり、データ出力は3状態になっている。クロック周期
1では、ADS#をサンプリングすると活動状態であり、W
/R#をサンプリングするとローである。BE#は、常に、
ADS#が活動状態であるクロック端でラッチされる。
なう長さ1と、MUXミスを伴なう長さ1とをもつ非パイ
プライン化CPU読取りヒットサイクルを示す。サイクル
の開始時には他のサイクルは活動していないので、CPU
アドレスラッチ49と、CPU MUX/バッファ20とは開いて
おり、データ出力は3状態になっている。クロック周期
1では、ADS#をサンプリングすると活動状態であり、W
/R#をサンプリングするとローである。BE#は、常に、
ADS#が活動状態であるクロック端でラッチされる。
クロック1の終了時に、アドレスはCPUアドレスラッ
チ49にラッチされ、CPUバッファはクロック2のなかば
で閉じる。この後、キャッシュ17は、CPUバスを介して
読取りが起こるのと並行して、SRAMアレイを使用する他
の何らかのサイクルを実行できる。クロック2でBRDY#
が発行されて、データは有効であることを指示すると共
に、キャッシュバーストマルチプレクサに次のデータへ
移行することを通知する。BLAST#とBRDY#が共にサイ
クルの終了を指示するローであるとサンプリングされる
まで、バーストは継続する。係属中のパイプライン化サ
イクルが存在しなければ、この時点で出力は3状態にな
る。尚、BLAST#はBRDY#が同時に起動される場合に限
って意味をもつことに注意する。
チ49にラッチされ、CPUバッファはクロック2のなかば
で閉じる。この後、キャッシュ17は、CPUバスを介して
読取りが起こるのと並行して、SRAMアレイを使用する他
の何らかのサイクルを実行できる。クロック2でBRDY#
が発行されて、データは有効であることを指示すると共
に、キャッシュバーストマルチプレクサに次のデータへ
移行することを通知する。BLAST#とBRDY#が共にサイ
クルの終了を指示するローであるとサンプリングされる
まで、バーストは継続する。係属中のパイプライン化サ
イクルが存在しなければ、この時点で出力は3状態にな
る。尚、BLAST#はBRDY#が同時に起動される場合に限
って意味をもつことに注意する。
WAYヒットがMRUでない場合、キャッシュ制御装置はT2
で(クロック9に示すように)WRARR#を発行し、ま
た、第1のBRDY#は次のクロックまで遅延される。CPU
読取り中にWRARR#がローとサンプリングされると、WAY
mux43はWAY入力により指示されるWAYを指示するように
変更される。これで、データは他方のWAYに切替わりク
ロック10に示すように新たなデータが出力される。次
に、BRDY#が発行される。これがバーストモードサイク
ルであったならば、残りの転送は先と同様に続いていた
であろう。WRARR#がローとサンプリングされてから二
分の一クロック周期の後、MRUビット(アレイ22の中)
も新たな値に書込まれる。MRUビットが書込まれたなら
ば、その時点でMRUビットは正しいWAYを指示するので、
WAYmuxはMRUビットにより制御される状態に戻る。尚、
バスに乗せられるバイトイネーブルデータの状態とは無
関係に、BE#はどのCPU読取りサイクルにも影響を及ぼ
さない。
で(クロック9に示すように)WRARR#を発行し、ま
た、第1のBRDY#は次のクロックまで遅延される。CPU
読取り中にWRARR#がローとサンプリングされると、WAY
mux43はWAY入力により指示されるWAYを指示するように
変更される。これで、データは他方のWAYに切替わりク
ロック10に示すように新たなデータが出力される。次
に、BRDY#が発行される。これがバーストモードサイク
ルであったならば、残りの転送は先と同様に続いていた
であろう。WRARR#がローとサンプリングされてから二
分の一クロック周期の後、MRUビット(アレイ22の中)
も新たな値に書込まれる。MRUビットが書込まれたなら
ば、その時点でMRUビットは正しいWAYを指示するので、
WAYmuxはMRUビットにより制御される状態に戻る。尚、
バスに乗せられるバイトイネーブルデータの状態とは無
関係に、BE#はどのCPU読取りサイクルにも影響を及ぼ
さない。
非パイプライン化書込みサイクルを図6に示す。サイ
クルは、CPUアドレスラッチと、CPUバッファとが出力を
3状態として開いている状態で、読取りの場合と同じよ
うに始まる。クロック1の初めで、ADS#が活動状態で
あるとサンプリングされたとき、アドレスはCPUアドレ
スラッチ49にラッチされる。この事象と同時に、出力が
3状態のままであるようにW/R#はハイであり且つCPUバ
ッファ20は入出力ピンからデータを受け入れるために切
替えられる。BRDY#ごとに、データはバーストアドレス
が増分される双方のウエイについてCPUバッファに導入
される。WRARR#はクロック3の初めでは活動状態であ
る。これは、キャッシュ制御装置がこれはキャッシュ書
込みヒットであると確定したことと、サイクルの終了時
にデータをSRAMアレイ22に書込むべきであることを指示
している。書込むべきWAYは、常に、WRARR#が活動状態
であるクロックCLKでラッチされる。
クルは、CPUアドレスラッチと、CPUバッファとが出力を
3状態として開いている状態で、読取りの場合と同じよ
うに始まる。クロック1の初めで、ADS#が活動状態で
あるとサンプリングされたとき、アドレスはCPUアドレ
スラッチ49にラッチされる。この事象と同時に、出力が
3状態のままであるようにW/R#はハイであり且つCPUバ
ッファ20は入出力ピンからデータを受け入れるために切
替えられる。BRDY#ごとに、データはバーストアドレス
が増分される双方のウエイについてCPUバッファに導入
される。WRARR#はクロック3の初めでは活動状態であ
る。これは、キャッシュ制御装置がこれはキャッシュ書
込みヒットであると確定したことと、サイクルの終了時
にデータをSRAMアレイ22に書込むべきであることを指示
している。書込むべきWAYは、常に、WRARR#が活動状態
であるクロックCLKでラッチされる。
図6に示すアレイ22への書込みは、BLAST#及びBRDY
#が活動状態であるとサンプリングされるクロック6の
初めで起こる。データは、先にラッチされていたWAYが
指示するWAYに書込まれる。アレイへの書込みはクロッ
ク6の最初の半分で起こる。同時にMRUが書込まれる。
ラン中のサイクルに関わるBE#が非活動状態である場
合、キャッシュがWRARR#を見たとき、データは全く書
込まれない(ただし、MRUは依然として書込まれる)。
#が活動状態であるとサンプリングされるクロック6の
初めで起こる。データは、先にラッチされていたWAYが
指示するWAYに書込まれる。アレイへの書込みはクロッ
ク6の最初の半分で起こる。同時にMRUが書込まれる。
ラン中のサイクルに関わるBE#が非活動状態である場
合、キャッシュがWRARR#を見たとき、データは全く書
込まれない(ただし、MRUは依然として書込まれる)。
キャッシュメモリ17は、データがSRAMアレイ22の中に
常駐しているものと仮定して、全ての読取りを開始す
る。読取りがミスであれば、読取りは読取りヒットと同
様に始まり、そのとき、データはアレイからCPUバッフ
ァ20へと読取られる。キャッシュ制御装置が読取りはミ
スであることを検出すると、キャッシュ制御装置は、図
7に示すようにメモリ読取りを開始するために、キャッ
シュ17へBUS#信号とMCYC#信号を発生する。クロック
2では、MCYC#信号はローへ遷移する。次に、クロック
3の始めで、キャッシュはこの遷移を検出し、アドレス
及びWAYをメモリサイクルアドレスラッチにラッチす
る。クロック3では、ローのBUS#信号はデータソース
をアレNイ22からメモリサイクルバッファの一方40また
は41へ切替える。メモリバスが利用可能であるとき、メ
モリバスからCPUバスへ適切なメモリインタフェースバ
ッファ(すなわち、バッファ40又は41)を介して直接接
続が成立している。
常駐しているものと仮定して、全ての読取りを開始す
る。読取りがミスであれば、読取りは読取りヒットと同
様に始まり、そのとき、データはアレイからCPUバッフ
ァ20へと読取られる。キャッシュ制御装置が読取りはミ
スであることを検出すると、キャッシュ制御装置は、図
7に示すようにメモリ読取りを開始するために、キャッ
シュ17へBUS#信号とMCYC#信号を発生する。クロック
2では、MCYC#信号はローへ遷移する。次に、クロック
3の始めで、キャッシュはこの遷移を検出し、アドレス
及びWAYをメモリサイクルアドレスラッチにラッチす
る。クロック3では、ローのBUS#信号はデータソース
をアレNイ22からメモリサイクルバッファの一方40また
は41へ切替える。メモリバスが利用可能であるとき、メ
モリバスからCPUバスへ適切なメモリインタフェースバ
ッファ(すなわち、バッファ40又は41)を介して直接接
続が成立している。
データは、CPUが要求する初期記憶場所から始めて、
バースト順序で取り出される。戻される第1のデータは
メモリインタフェースバッファの一方に入り、次にCPU
バッファ20に至り、最後にCPUバスに達する。データの
スライスはメモリインタフェースバッファに戻され、そ
のバーストカウンタは増分し、メモリデータの次に部分
は次の記憶場所に入る。クロック5では、第1のデータ
はCPUバスで有効であり、BRDY#が発行される。これ
で、CPUバーストMUX33は次に記憶場所に増分する。CPU
バスで次にデータフィールドが有効であるとき、別のBR
DY#が発行され、BRDY#及びBLAST#が発行される最後
のデータフィールドまで、これが続く。
バースト順序で取り出される。戻される第1のデータは
メモリインタフェースバッファの一方に入り、次にCPU
バッファ20に至り、最後にCPUバスに達する。データの
スライスはメモリインタフェースバッファに戻され、そ
のバーストカウンタは増分し、メモリデータの次に部分
は次の記憶場所に入る。クロック5では、第1のデータ
はCPUバスで有効であり、BRDY#が発行される。これ
で、CPUバーストMUX33は次に記憶場所に増分する。CPU
バスで次にデータフィールドが有効であるとき、別のBR
DY#が発行され、BRDY#及びBLAST#が発行される最後
のデータフィールドまで、これが続く。
メモリサイクルバーストカウンタと、CPUバーストカ
ウンタとは独立して増分されるので、メモリバスにおけ
るデータ転送速度と、CPUバスにおけるデータ連送速度
とは無関係である。CPUがデータを受信できるより速く
メモリバスがデータを取り出せる場合、CPUが先の記憶
場所からまだデータを受信している間に、メモリサイク
ルバーストは別の記憶場所へ移行する。これに対し、メ
モリバスがデータを取り出すより速くCPUがデータを受
信できる場合には、CPUは単に新たなデータが到着する
のを待つだけである。
ウンタとは独立して増分されるので、メモリバスにおけ
るデータ転送速度と、CPUバスにおけるデータ連送速度
とは無関係である。CPUがデータを受信できるより速く
メモリバスがデータを取り出せる場合、CPUが先の記憶
場所からまだデータを受信している間に、メモリサイク
ルバーストは別の記憶場所へ移行する。これに対し、メ
モリバスがデータを取り出すより速くCPUがデータを受
信できる場合には、CPUは単に新たなデータが到着する
のを待つだけである。
キャッシュ制御装置が行はキャッシング可能であると
知ると、直ちに、キャッシュがCRDY#信号を受信すると
きにこの行をSRAM22に書込むべきであることを指示する
ために、キャッシュ制御装置はMAWEA#信号をキャッシ
ュメモリ17へ発行する。CRDY#は図7のクロック10で発
行される。その後、次のサイクルで行を書込むのであ
る。書込みは次のサイクル(すなわち、クロック11)の
段階2(PH2)で始まり、続くサイクル(すなわち、ク
ロック12)の段階1(PH1)を経て続く。次のクロック
でCPUがADS#を発行すると、これに対する応答は1クロ
ック分遅延し、その間、アレイ書込みを実行しつつアレ
イは占有される。行がキャッシング不可能であったなら
ば、MAWEA#が発行されないという点を除いて、サイク
ルは同じになるであろう。メモリ読取りの終了時にCRDY
#信号は依然として発行されるが、アレイ書込みは実行
されない。
知ると、直ちに、キャッシュがCRDY#信号を受信すると
きにこの行をSRAM22に書込むべきであることを指示する
ために、キャッシュ制御装置はMAWEA#信号をキャッシ
ュメモリ17へ発行する。CRDY#は図7のクロック10で発
行される。その後、次のサイクルで行を書込むのであ
る。書込みは次のサイクル(すなわち、クロック11)の
段階2(PH2)で始まり、続くサイクル(すなわち、ク
ロック12)の段階1(PH1)を経て続く。次のクロック
でCPUがADS#を発行すると、これに対する応答は1クロ
ック分遅延し、その間、アレイ書込みを実行しつつアレ
イは占有される。行がキャッシング不可能であったなら
ば、MAWEA#が発行されないという点を除いて、サイク
ルは同じになるであろう。メモリ読取りの終了時にCRDY
#信号は依然として発行されるが、アレイ書込みは実行
されない。
キャッシュ制御装置の行サイズと、CPUの行サイズと
の比は1、2又は4であれば良い。メモリ読取りを開始
させた読取りは、わずか1の長さである。これは、多数
のサイクルに対して、サイクルはメモリバスで完了する
前にCPUバスで終了することを意味している。たとえ
ば、クロック9では、キャッシュ17はCPUサイクルの終
了を検出する。CPUバッファは切替わってアレイに戻
り、この時点でメモリセクションから遮断される。その
後に続いて、(再度の読取りミスの場合を除いて)他の
何らかのCPU読取りサイクル又はCPU書込みサイクルを実
行できる。
の比は1、2又は4であれば良い。メモリ読取りを開始
させた読取りは、わずか1の長さである。これは、多数
のサイクルに対して、サイクルはメモリバスで完了する
前にCPUバスで終了することを意味している。たとえ
ば、クロック9では、キャッシュ17はCPUサイクルの終
了を検出する。CPUバッファは切替わってアレイに戻
り、この時点でメモリセクションから遮断される。その
後に続いて、(再度の読取りミスの場合を除いて)他の
何らかのCPU読取りサイクル又はCPU書込みサイクルを実
行できる。
図8は、読取りミス連続を示す。正規のメモリ読取り
サイクルにおいては、CPUが要求するデータをまず戻
す。このデータをCPUへ送信した後、CPUは他のサイクル
をランさせることができる。読取りミス連続とは、次の
サイクルが先の読取りと同じ行に対してのものであり且
つメモリ読取りはSRAMアレイに対して完了していない状
況を指す。この状況では、この読取りに関わる第1のBR
DY#は、メモリバス読取りデータをSRAMアレイに書込み
終わるまで遅延される。
サイクルにおいては、CPUが要求するデータをまず戻
す。このデータをCPUへ送信した後、CPUは他のサイクル
をランさせることができる。読取りミス連続とは、次の
サイクルが先の読取りと同じ行に対してのものであり且
つメモリ読取りはSRAMアレイに対して完了していない状
況を指す。この状況では、この読取りに関わる第1のBR
DY#は、メモリバス読取りデータをSRAMアレイに書込み
終わるまで遅延される。
当初、読取りミス波形は先と同様に進む(図8を参
照)。ところが、クロック6では、別のADS#が発行さ
れ、キャッシュ制御装置はこれが取り出し中の行に対し
てであることを検出する。CRDY#に続くクロックでは、
メモリバス読取りに関わるデータをSRAMアレイに書込
む。この事象に続くクロックにおいては、データをCPU
バッファに読込む。次に、サイクルは読取りヒットの場
合と全く同様に進む。
照)。ところが、クロック6では、別のADS#が発行さ
れ、キャッシュ制御装置はこれが取り出し中の行に対し
てであることを検出する。CRDY#に続くクロックでは、
メモリバス読取りに関わるデータをSRAMアレイに書込
む。この事象に続くクロックにおいては、データをCPU
バッファに読込む。次に、サイクルは読取りヒットの場
合と全く同様に進む。
先に論じた通り、ライトバックはキャッシュから外部
メモリに戻るデータの転送である。本発明はWBTYP=1
及びWBTYP=0という2種類のライトバックを実行す
る。WBTYP=1はスヌープヒットの場合に使用され、ラ
イトバックを最高の優先順位をもつメモリバスサイクル
にする。WBTYP=0は、1つの行が置き換え中であると
き又はキャッシュがフラッシュされている場合に使用さ
れる。キャッシュ制御装置は、スヌープヒットを受信す
ると、変更データをスヌープバッファ45を介してメモリ
バスに導入することをキャッシュメモリに命令する。得
られる事象のシーケンスを図9のタイミング図に示す。
メモリに戻るデータの転送である。本発明はWBTYP=1
及びWBTYP=0という2種類のライトバックを実行す
る。WBTYP=1はスヌープヒットの場合に使用され、ラ
イトバックを最高の優先順位をもつメモリバスサイクル
にする。WBTYP=0は、1つの行が置き換え中であると
き又はキャッシュがフラッシュされている場合に使用さ
れる。キャッシュ制御装置は、スヌープヒットを受信す
ると、変更データをスヌープバッファ45を介してメモリ
バスに導入することをキャッシュメモリに命令する。得
られる事象のシーケンスを図9のタイミング図に示す。
クロック1の間、CPU読取りサイクルはランしてお
り、キャッシュ制御装置はWBWE#及びWBTYP=1を発行
する。WBA=1であれば、これはSRAMアレイに対するス
ヌープヒットを指示し、データはスヌープバッファ45に
ロードされる。(WBA=0はライトバックバッファへの
ヒットを指示する。)クロック3の半ばで、キャッシュ
は入力ピンと、WAY入力端子とのアドレスを利用して、
アレイからスヌープバッファへデータを読込む。SRAMア
レイに対するスヌープアクセスは、WBWE#が活動状態に
なるのに続き、クロックの半ばで始まる。これは次のク
ロックの半ばで終了する。アドレスとWAY入力は、この
動作が完了するまで有効なままでなければならない。そ
の結果、構成とは関係なく、64ビットがスヌープバッフ
ァに導入される。クロック3の終了時に、この行に関わ
るバッファは一杯とマークされ、最高の優先順位をもつ
メモリバスサイクルになる。CPU10の一次キャッシュへ
のライトバックの場合、変更データをスヌープバッファ
45で併合する必要があるかもしれない。図示する通り、
これはクロック5、6、7及び8で起こっている。信号
HITM#はCPUバスサイクルをライトバックとして識別す
るために使用される。
り、キャッシュ制御装置はWBWE#及びWBTYP=1を発行
する。WBA=1であれば、これはSRAMアレイに対するス
ヌープヒットを指示し、データはスヌープバッファ45に
ロードされる。(WBA=0はライトバックバッファへの
ヒットを指示する。)クロック3の半ばで、キャッシュ
は入力ピンと、WAY入力端子とのアドレスを利用して、
アレイからスヌープバッファへデータを読込む。SRAMア
レイに対するスヌープアクセスは、WBWE#が活動状態に
なるのに続き、クロックの半ばで始まる。これは次のク
ロックの半ばで終了する。アドレスとWAY入力は、この
動作が完了するまで有効なままでなければならない。そ
の結果、構成とは関係なく、64ビットがスヌープバッフ
ァに導入される。クロック3の終了時に、この行に関わ
るバッファは一杯とマークされ、最高の優先順位をもつ
メモリバスサイクルになる。CPU10の一次キャッシュへ
のライトバックの場合、変更データをスヌープバッファ
45で併合する必要があるかもしれない。図示する通り、
これはクロック5、6、7及び8で起こっている。信号
HITM#はCPUバスサイクルをライトバックとして識別す
るために使用される。
尚、WBWE#が活動状態であるとサンプリングされたと
き、WBTYPはハイであって、これがスヌープであること
を指示する。メモリバスサイクルが始まると、ライトバ
ックはそこで最高の優先順をもつサイクルになる。ライ
トバックは、通知書込み又はメモリ読取りの前に起こ
る。クロック1で、WBAがローであれば、これはライト
バックバッファに対するスヌープヒットを指示する。こ
のような状況の下では、A4アドレスを使用して、ライト
バッファヒットを確定する。そこで、このバッファはメ
モリバスへ転送されるべき次のデータとしてマークされ
る。
き、WBTYPはハイであって、これがスヌープであること
を指示する。メモリバスサイクルが始まると、ライトバ
ックはそこで最高の優先順をもつサイクルになる。ライ
トバックは、通知書込み又はメモリ読取りの前に起こ
る。クロック1で、WBAがローであれば、これはライト
バックバッファに対するスヌープヒットを指示する。こ
のような状況の下では、A4アドレスを使用して、ライト
バッファヒットを確定する。そこで、このバッファはメ
モリバスへ転送されるべき次のデータとしてマークされ
る。
メモリ読取りに関わる新たな行が変更データを有して
いるキャッシュ記憶場所へ導かれたときには、図10に示
すように置き換えを実行しなければならない。旧データ
をライトバックバッファへ、新データをSRAMアレイに導
入することになる。新たなデータをできる限り迅速にCP
Uへ送信するために、メモリ読取りはライトバックの前
に実行される。キャッシュのフラッシュを実行したなら
ばライトバックバッファも採用される(再び、WBTYP=
0)。
いるキャッシュ記憶場所へ導かれたときには、図10に示
すように置き換えを実行しなければならない。旧データ
をライトバックバッファへ、新データをSRAMアレイに導
入することになる。新たなデータをできる限り迅速にCP
Uへ送信するために、メモリ読取りはライトバックの前
に実行される。キャッシュのフラッシュを実行したなら
ばライトバックバッファも採用される(再び、WBTYP=
0)。
図10を参照すると、クロック周期1の間にメモリ読取
りはランしている。新たなデータがメモリサイクルバッ
ファの一方にロードされ、CPUバスへ送信されている間
に、旧データはライトバックバッファ46に導入される。
セクタごとに2本の行を使用しており、それらが共に変
更されている場合、双方がライトバックバッファに導入
される。これには、図示するように、クロック周期1及
び2の間にWBWE#が活動状態である状態で2クロックが
必要である。2つのクロックは連続していなくとも良
い。A5を除いて、ライトバックのアドレスソースは置き
換え周期を発生させた充填に対してメモリサイクルアド
レスラッチである。クロック1の間、WBAはローであっ
て、読取りのためにA5=0を使用すべきであることを指
示している。クロック2では、WBAはハイであって、A5
=1を使用すべきであることを示している。ロードが完
了するたびに、行ごとのライトバッファは一杯とマーク
される。メモリ読取りが始まったとき、使用するWAYは
ラッチされる。メモリ読取りに際してMAWEA#が発行さ
れなければ、ライトバックは取り消され、ライトバック
バッファは空とマークされる。同様に、CPU10の一次キ
ャッシュへのライトバックでは、クロック7〜10で起こ
るものと図示されているように、変更データをライトバ
ックバッファ46で併合する必要があるかもしれない。
りはランしている。新たなデータがメモリサイクルバッ
ファの一方にロードされ、CPUバスへ送信されている間
に、旧データはライトバックバッファ46に導入される。
セクタごとに2本の行を使用しており、それらが共に変
更されている場合、双方がライトバックバッファに導入
される。これには、図示するように、クロック周期1及
び2の間にWBWE#が活動状態である状態で2クロックが
必要である。2つのクロックは連続していなくとも良
い。A5を除いて、ライトバックのアドレスソースは置き
換え周期を発生させた充填に対してメモリサイクルアド
レスラッチである。クロック1の間、WBAはローであっ
て、読取りのためにA5=0を使用すべきであることを指
示している。クロック2では、WBAはハイであって、A5
=1を使用すべきであることを示している。ロードが完
了するたびに、行ごとのライトバッファは一杯とマーク
される。メモリ読取りが始まったとき、使用するWAYは
ラッチされる。メモリ読取りに際してMAWEA#が発行さ
れなければ、ライトバックは取り消され、ライトバック
バッファは空とマークされる。同様に、CPU10の一次キ
ャッシュへのライトバックでは、クロック7〜10で起こ
るものと図示されているように、変更データをライトバ
ックバッファ46で併合する必要があるかもしれない。
次に図11を参照すると、メモリバス書込みに関わるタ
イミング図が示されている。メモリに対する書込みをメ
モリサイクルバッファで通知するか、又は通知せずにラ
ンすることが可能である。CRDY#を受信する前にCPU書
込みサイクルを終了させながらBLAST#及びBRDY#を受
信した場合には、メモリバッファは閉じ、書込みは通知
される。BLAST#及びBRDY#の前に、又はそれらと同時
にCRDY#が入力した場合、書込みは通知されなかった。
イミング図が示されている。メモリに対する書込みをメ
モリサイクルバッファで通知するか、又は通知せずにラ
ンすることが可能である。CRDY#を受信する前にCPU書
込みサイクルを終了させながらBLAST#及びBRDY#を受
信した場合には、メモリバッファは閉じ、書込みは通知
される。BLAST#及びBRDY#の前に、又はそれらと同時
にCRDY#が入力した場合、書込みは通知されなかった。
書込みが始まったときにメモリバスが利用可能である
場合、キャッシュはトランシーバとして動作する。すな
わち、アレイに対して起こりうる書込みに備えてCPUバ
スからのデータはメモリバッファ(すなわち、バッファ
40及び41)を介してメモリバスに直接に入ると共に、CP
Uバッファにも入る。クロック周期2の間、キャッシュ
制御装置はMCYC#サイクルを発行して、これがメモリバ
スに関連するサイクルであることを指示する。このデー
タがアレイにも書込まれると仮定されれば、WRARR#も
発行される。クロック周期6でCRDY#信号を受信した場
合、これはBLAST#より前であるので、この書込みは通
知されなかったことになる。クロック10までCRDY#が入
力しなければ、クロック7の終了時にBLAST#及びBRDY
#が活動状態であったときに書込みは通知されていたの
である。
場合、キャッシュはトランシーバとして動作する。すな
わち、アレイに対して起こりうる書込みに備えてCPUバ
スからのデータはメモリバッファ(すなわち、バッファ
40及び41)を介してメモリバスに直接に入ると共に、CP
Uバッファにも入る。クロック周期2の間、キャッシュ
制御装置はMCYC#サイクルを発行して、これがメモリバ
スに関連するサイクルであることを指示する。このデー
タがアレイにも書込まれると仮定されれば、WRARR#も
発行される。クロック周期6でCRDY#信号を受信した場
合、これはBLAST#より前であるので、この書込みは通
知されなかったことになる。クロック10までCRDY#が入
力しなければ、クロック7の終了時にBLAST#及びBRDY
#が活動状態であったときに書込みは通知されていたの
である。
図12は、割当てを伴なうライトスルーに関わるタイミ
ング図を示す。書込みミスがあるたびに、キャッシュ制
御装置はこの記憶場所に関してキャッシュの新たな行を
割当てることができる。これを実行するために、キャッ
シュ制御装置は現在書込みを終了し、メモリ読取りを開
始する。MCYC#が発行された後しばらくして、しかも、
CRDY#の前に又はそれと一致して行を割当てるべきであ
る場合に、MAWEA#を発行する。これで、書込みに使用
されたメモリバッファは割当てに採用すべきであるとマ
ークされる。その後、割当ては図7に関連して論じたメ
モリ読取りと同様に進行する。
ング図を示す。書込みミスがあるたびに、キャッシュ制
御装置はこの記憶場所に関してキャッシュの新たな行を
割当てることができる。これを実行するために、キャッ
シュ制御装置は現在書込みを終了し、メモリ読取りを開
始する。MCYC#が発行された後しばらくして、しかも、
CRDY#の前に又はそれと一致して行を割当てるべきであ
る場合に、MAWEA#を発行する。これで、書込みに使用
されたメモリバッファは割当てに採用すべきであるとマ
ークされる。その後、割当ては図7に関連して論じたメ
モリ読取りと同様に進行する。
図13は、刻時メモリバースト読取りサイクルを示す。
刻時メモリバスを使用するとき、MBRDY#、MSLE#、MZB
T#、MEOC#、MFRZ#及びMDATA07は全てMCLKの立ち上が
り端でサンプリングされる。MDOE#はクロックに対し非
同期的である。クロック周期1では、MDOE#はハイであ
り、それにより、出力を3状態に保持する。クロック2
の終わりで、MSEL#はローと検出される。これは、メモ
リインタフェースバッファが第1のデータを受け入れ可
能になる時点である。MBRDY#がMCLKによりローとサン
プリングされるたびに、ラッチの1スライスは閉じ、バ
ーストカウンタは増分する。通常、読取りはCPUが要求
するバースト記憶場所で始まる。MSEL#が非活動状態で
あった(ハイとサンプリングされた)最後のMCLKで、MZ
BT#が活動状態であれば(ローとサンプリングされれ
ば)、CPUは要求する記憶場所とは関係なく、サイクル
はバースト記憶場所0で始まる。
刻時メモリバスを使用するとき、MBRDY#、MSLE#、MZB
T#、MEOC#、MFRZ#及びMDATA07は全てMCLKの立ち上が
り端でサンプリングされる。MDOE#はクロックに対し非
同期的である。クロック周期1では、MDOE#はハイであ
り、それにより、出力を3状態に保持する。クロック2
の終わりで、MSEL#はローと検出される。これは、メモ
リインタフェースバッファが第1のデータを受け入れ可
能になる時点である。MBRDY#がMCLKによりローとサン
プリングされるたびに、ラッチの1スライスは閉じ、バ
ーストカウンタは増分する。通常、読取りはCPUが要求
するバースト記憶場所で始まる。MSEL#が非活動状態で
あった(ハイとサンプリングされた)最後のMCLKで、MZ
BT#が活動状態であれば(ローとサンプリングされれ
ば)、CPUは要求する記憶場所とは関係なく、サイクル
はバースト記憶場所0で始まる。
キャッシュメモリがMEOC#を受信するまで、サイクル
は継続する。この信号は現在メモリバスサイクルを非同
期的に終了させ、キャッシュは次のメモリバスサイクル
に切り替わる。実行するのを待っている別のメモリバス
読取りがあれば、メモリバス読取りはMEOC#の後の次の
クロックで開始する。
は継続する。この信号は現在メモリバスサイクルを非同
期的に終了させ、キャッシュは次のメモリバスサイクル
に切り替わる。実行するのを待っている別のメモリバス
読取りがあれば、メモリバス読取りはMEOC#の後の次の
クロックで開始する。
図14〜図37は、メモリバスにおける刻時条件とストロ
ーブ条件の双方に関わる付加的なタイミング関係を示
す。図示する様々なサイクルに関わる本発明の動作は、
以下の説明及び付録に示されている信号の解説と関連し
て考察したとき、当業者により理解されるであろう。
ーブ条件の双方に関わる付加的なタイミング関係を示
す。図示する様々なサイクルに関わる本発明の動作は、
以下の説明及び付録に示されている信号の解説と関連し
て考察したとき、当業者により理解されるであろう。
付録 この付録は本発明の現時点で好ましい実施例に従って
各々のピンの特定の機能を定義している。
各々のピンの特定の機能を定義している。
CLK この信号はキャッシュメモリの基本タイミングを
与える。その周波数はメモリ17の内部動作周波数であ
る。この信号はCPUクロックに接続する。
与える。その周波数はメモリ17の内部動作周波数であ
る。この信号はCPUクロックに接続する。
RESET RESETピンはキャッシュの内部状態をリセットす
るために使用される。RESETは内部メモリバス追跡論理
及び入出力構成をリセットする。
るために使用される。RESETは内部メモリバス追跡論理
及び入出力構成をリセットする。
WAY WAYピンは正規の動作中に使用すべき正しいWAYを
指示するために使用される。CPU書込みサイクル、行充
填及びライトバックバッファロードの間には、WAYはア
クセスすべきウエイを指示するために使用される。CPU
読取り中にWRFRR#が活動状態であるとき、MRUビットは
WAYピンの値に書込まれる。WRARR#、MCYC#又はWBWE#
が活動状態であるときWAYはサンプリングされる。
指示するために使用される。CPU書込みサイクル、行充
填及びライトバックバッファロードの間には、WAYはア
クセスすべきウエイを指示するために使用される。CPU
読取り中にWRFRR#が活動状態であるとき、MRUビットは
WAYピンの値に書込まれる。WRARR#、MCYC#又はWBWE#
が活動状態であるときWAYはサンプリングされる。
WRARR# このピンはCPUバスセクションからのアレイへ
の書込みを制御するために使用される。CPU読取りサイ
クルにおいて活動状態(LOW)であるとき、MRUビットを
WAYピンにより指示される値に書込むべきであることを
指示する。CPU書込みサイクルで活動状態であるときに
は、CPUバッファをBLAST#.BRDYx#に続くクロックにお
いて指示されるWAYに書込むべきであることを指示す
る。
の書込みを制御するために使用される。CPU読取りサイ
クルにおいて活動状態(LOW)であるとき、MRUビットを
WAYピンにより指示される値に書込むべきであることを
指示する。CPU書込みサイクルで活動状態であるときに
は、CPUバッファをBLAST#.BRDYx#に続くクロックにお
いて指示されるWAYに書込むべきであることを指示す
る。
MAWEA# メモリ読取り中に活動状態(LOW)であると
き、キャッシュはメモリバッファ(たとえば、バッファ
30又は31)に含まれている行を活動状態のCRDY#に続く
クロックにおいてSRAMアレイに書込むべきであることを
指示する。ライトスルー中に活動状態であるときには、
キャッシュが書込みと同じアドレスで割当てを開始すべ
きであることを指示する。MAWEA#はADS#からCRDY#へ
サンプリングされる。
き、キャッシュはメモリバッファ(たとえば、バッファ
30又は31)に含まれている行を活動状態のCRDY#に続く
クロックにおいてSRAMアレイに書込むべきであることを
指示する。ライトスルー中に活動状態であるときには、
キャッシュが書込みと同じアドレスで割当てを開始すべ
きであることを指示する。MAWEA#はADS#からCRDY#へ
サンプリングされる。
BUS# このピンは読取り動作中のCPU MUX/バッファデ
ータの選択を制御する。このピンがLOWとサンプリング
されたとき、キャッシュはCPU読取りデータがアレイで
はなく、メモリバスから来るように内部MUXを設定す
る。この内部MUXは、BRDY#までこの状態にとどまる。
ータの選択を制御する。このピンがLOWとサンプリング
されたとき、キャッシュはCPU読取りデータがアレイで
はなく、メモリバスから来るように内部MUXを設定す
る。この内部MUXは、BRDY#までこの状態にとどまる。
MCYC# このピンは、現在CPUサイクルがメモリバッフ
ァ40及び41を使用することをキャッシュに通知するため
に使用される。現在サイクルが読取りであり且つMCYC#
が活動状態(LOW)になった場合、サイクルはメモリバ
ス読取りになる。現在CPUサイクルが書込みであれば、
活動状態のMCYC#はこれがメモリ書込みサイクルである
ことを指示する。CRDYが受信される前にCPU書込みサイ
クルを終了した場合、メモリバッファは一杯であるとマ
ークされ、CRDY#がメモリバスサイクルを終了させるま
で書込みを通知する。WAYをサンプリングし、MCYC#が
活動状態であるクロックでラッチする。
ァ40及び41を使用することをキャッシュに通知するため
に使用される。現在サイクルが読取りであり且つMCYC#
が活動状態(LOW)になった場合、サイクルはメモリバ
ス読取りになる。現在CPUサイクルが書込みであれば、
活動状態のMCYC#はこれがメモリ書込みサイクルである
ことを指示する。CRDYが受信される前にCPU書込みサイ
クルを終了した場合、メモリバッファは一杯であるとマ
ークされ、CRDY#がメモリバスサイクルを終了させるま
で書込みを通知する。WAYをサンプリングし、MCYC#が
活動状態であるクロックでラッチする。
WBWE# ライトバックバッファ28及びスヌープバッファ
29をロードするために、ライトバック書込みイネーブル
ピンは、WBAピン及びWBTYPピンと共に使用される。この
ピンが活動状態(LOW)であるとサンプリングされたと
き、キャッシュ13は適正なライトバックバッファ又はス
ヌープバッファにアドレス指定された行をロードする。
WBWE#が活動状態になった後のクロックでWAYをサンプ
リングする。RESET中には、このピンはキャッシュ制御
装置行とCPU行との比を指示するために使用される。
29をロードするために、ライトバック書込みイネーブル
ピンは、WBAピン及びWBTYPピンと共に使用される。この
ピンが活動状態(LOW)であるとサンプリングされたと
き、キャッシュ13は適正なライトバックバッファ又はス
ヌープバッファにアドレス指定された行をロードする。
WBWE#が活動状態になった後のクロックでWAYをサンプ
リングする。RESET中には、このピンはキャッシュ制御
装置行とCPU行との比を指示するために使用される。
WBA ライトバックアドレスピンは、どの行をライトバ
ックバッファ46に書込むべきかを指示するために使用さ
れる。このピンはWBWE#が活動状態であるときに限って
サンプリングされる。HIGHであるとき、WBAはA5=1に
よりアドレス指定される行がロードされることを意味す
る。LOWであるときには、WBAはA5=0によってアドレス
指定される行がロードされることを意味する。RESET中
にSEC2#ピンがLOWであれば、これはセクタごとに2つ
の行があることを指示する。
ックバッファ46に書込むべきかを指示するために使用さ
れる。このピンはWBWE#が活動状態であるときに限って
サンプリングされる。HIGHであるとき、WBAはA5=1に
よりアドレス指定される行がロードされることを意味す
る。LOWであるときには、WBAはA5=0によってアドレス
指定される行がロードされることを意味する。RESET中
にSEC2#ピンがLOWであれば、これはセクタごとに2つ
の行があることを指示する。
CRDY# 活動状態(LOW)であるとき、このピンはメモ
リバスサイクルの終了を指示する。
リバスサイクルの終了を指示する。
WBTYP HIGHであるとき、ライトバックタイプピンは、
ライトバックがスヌープであることを指示する。LOWで
あるとき、これはライトバックが置き換え又は明示(フ
ラッシュ又は同期)ライトバックであることを指示す
る。このピンは、WBWE#が活動状態であるときにサンプ
リングされる。RESET中、このピンはキャッシュ制御装
置行とCPU行との比を指示するために使用される。
ライトバックがスヌープであることを指示する。LOWで
あるとき、これはライトバックが置き換え又は明示(フ
ラッシュ又は同期)ライトバックであることを指示す
る。このピンは、WBWE#が活動状態であるときにサンプ
リングされる。RESET中、このピンはキャッシュ制御装
置行とCPU行との比を指示するために使用される。
A0〜A15 これらのピンはアドレス情報をキャッシュ17
に提供するために使用される。これらの信号はCPUアド
レスに接続する。
に提供するために使用される。これらの信号はCPUアド
レスに接続する。
CDATA0〜CDATA7 それらのピンは8つのCPUデータピン
である。2xCPUバス構成の場合、ピンCDATA0及びCDATA1
のみを使用する。4xCPUバス構成の場合には、SCDATA0〜
CDATA3を使用する。パリティ構成では、CDATA4〜CDATA7
をビットイネーブル(それぞれ、BTE0#〜BTE3#)とし
て使用する。ビットイネーブルは、装置全体ではなく、
単一のビットを制御するという点を除いて、以下のBE#
と同様に動作する。
である。2xCPUバス構成の場合、ピンCDATA0及びCDATA1
のみを使用する。4xCPUバス構成の場合には、SCDATA0〜
CDATA3を使用する。パリティ構成では、CDATA4〜CDATA7
をビットイネーブル(それぞれ、BTE0#〜BTE3#)とし
て使用する。ビットイネーブルは、装置全体ではなく、
単一のビットを制御するという点を除いて、以下のBE#
と同様に動作する。
BE# バイトイネーブル入力は、キャッシュがCPUデー
タバスのどのバイトに接続しているかに従ってキャッシ
ュがCPUで書込みサイクルに関与すべきか否かを判定す
るために使用される。
タバスのどのバイトに接続しているかに従ってキャッシ
ュがCPUで書込みサイクルに関与すべきか否かを判定す
るために使用される。
W/B# 書込み/読取りピンは、CPUバスで書込みサイク
ルが実行されているか又は読取りサイクルが実行されて
いるかを指示する。HIGHであるときは書込みサイクルを
指示し、LOWであるときには読取りサイクルを指示す
る。
ルが実行されているか又は読取りサイクルが実行されて
いるかを指示する。HIGHであるときは書込みサイクルを
指示し、LOWであるときには読取りサイクルを指示す
る。
ADS# このピンはCPUバスサイクルの開始を指示する。
この信号はCPUアドレスストローブに接続する。
この信号はCPUアドレスストローブに接続する。
BRDY#,BRDYC# これらのピンは、1つのCPUバスサイ
クルの1つの転送部分の完了を指示するために使用され
る。いずれかのピンが活動状態(LOW)であれば、その
ピンは転送の完了を指示する。BRDY#はメモリバス制御
装置11により駆動される。BRDYC#はキャッシュ制御装
置12により駆動される。
クルの1つの転送部分の完了を指示するために使用され
る。いずれかのピンが活動状態(LOW)であれば、その
ピンは転送の完了を指示する。BRDY#はメモリバス制御
装置11により駆動される。BRDYC#はキャッシュ制御装
置12により駆動される。
BLAST# このピンはBRDY#ピン及びBRDYC#ピン及びBR
DYC#ピンに関わる修飾子である。活動状態(LOW)であ
るとき、このピンはBRDYx#がCPUバスサイクルの最終転
送であることを指示する。
DYC#ピンに関わる修飾子である。活動状態(LOW)であ
るとき、このピンはBRDYx#がCPUバスサイクルの最終転
送であることを指示する。
MCLK 刻時メモリバスモードでは、このピンはメモリバ
スクロックを発生する。刻時モードにおいては、MCLKの
立ち上がり端でその他のメモリバス信号と、メモリバス
データとをサンプリングする。刻時メモリバス書込みで
は、データはMCLK(又は構成によってはMOCLK)から駆
動される。ストローブメモリバスモードにおいては、こ
のピンは入力データストローブであり、トグルごとにデ
ータがラッチされることになる。
スクロックを発生する。刻時モードにおいては、MCLKの
立ち上がり端でその他のメモリバス信号と、メモリバス
データとをサンプリングする。刻時メモリバス書込みで
は、データはMCLK(又は構成によってはMOCLK)から駆
動される。ストローブメモリバスモードにおいては、こ
のピンは入力データストローブであり、トグルごとにデ
ータがラッチされることになる。
MOCLK RESETが不作動状態になった後にこのクロックピ
ンで立ち上がり端が検出された場合、このクロックピン
の立ち上がり端でデータが出力される。MOCLKはMCLKの
遅延バージョンである。データ書込みのみがMCLKにより
実行される。MOCLKに対してMDATAの最小出力時間を増加
させるためにこれ使用しても良い。このピンは、メモリ
クロックスキューによって発生する入力保持時間の問題
を克服するために必要であろう。ストローブバスモード
では、このピンはデータ出力ストローブである。このピ
ンのトグルごとに新たなデータが出力される。
ンで立ち上がり端が検出された場合、このクロックピン
の立ち上がり端でデータが出力される。MOCLKはMCLKの
遅延バージョンである。データ書込みのみがMCLKにより
実行される。MOCLKに対してMDATAの最小出力時間を増加
させるためにこれ使用しても良い。このピンは、メモリ
クロックスキューによって発生する入力保持時間の問題
を克服するために必要であろう。ストローブバスモード
では、このピンはデータ出力ストローブである。このピ
ンのトグルごとに新たなデータが出力される。
MZBT# 活動状態(HIGH)であるとき、このピンはCPU
が要求した第1の記憶場所とは無関係にバースト記憶場
所0をもってメモリバスサイクルを開始すべきであるこ
とを指示する。このピンは、メモリバスについて使用さ
れる入出力ピンの数を確定するために使用される。HIGH
であるとき、4つの入出力ピンを使用することを指示す
る。LOWであるときには、8つの入出力ピンを使用する
ことを指示する。この入力とバス比情報はCPUバスに関
わる入出力ピンを確定するために使用される。
が要求した第1の記憶場所とは無関係にバースト記憶場
所0をもってメモリバスサイクルを開始すべきであるこ
とを指示する。このピンは、メモリバスについて使用さ
れる入出力ピンの数を確定するために使用される。HIGH
であるとき、4つの入出力ピンを使用することを指示す
る。LOWであるときには、8つの入出力ピンを使用する
ことを指示する。この入力とバス比情報はCPUバスに関
わる入出力ピンを確定するために使用される。
MBRDY# このピンは刻時バスモードにおいて転送の終
了を指示するために使用される。活動状態(LOW)であ
るとき、キャッシュ13がバーストカウンタを増分し、次
のデータを出力すべきであるか又は次のデータを受け入
れできる状態に入るべきかのいずれかであることを指示
する。LOWであれば、メモリバスはストローブ動作にな
る。HIGHであれば、メモリバスは刻時される。
了を指示するために使用される。活動状態(LOW)であ
るとき、キャッシュ13がバーストカウンタを増分し、次
のデータを出力すべきであるか又は次のデータを受け入
れできる状態に入るべきかのいずれかであることを指示
する。LOWであれば、メモリバスはストローブ動作にな
る。HIGHであれば、メモリバスは刻時される。
MEOC# このピンはメモリバスサイクルの終了を指示す
るために使用される。活動状態(LOW)であるとき、キ
ャッシュは現在メモリバスサイクルを終了させ、次のサ
イクルを開始させる。MEOC#はCLKに対して非同期であ
る。
るために使用される。活動状態(LOW)であるとき、キ
ャッシュは現在メモリバスサイクルを終了させ、次のサ
イクルを開始させる。MEOC#はCLKに対して非同期であ
る。
MDATA0〜MDATA7 これらのピンは8つのメモリデータピ
ンである。4xメモリバス構成では、MDATA0〜MDATA3を使
用する。刻時メモリバスモードにおいては、MBRDY#が
活動状態であることを伴なってMCLKの立ち上がり端でこ
れらのピンはサンプリングされる。MRBDY#が活動状態
であることを伴ってMCLK又はMOCLKの立ち上がり端でこ
れらのピンで新たなデータは取り出される。
ンである。4xメモリバス構成では、MDATA0〜MDATA3を使
用する。刻時メモリバスモードにおいては、MBRDY#が
活動状態であることを伴なってMCLKの立ち上がり端でこ
れらのピンはサンプリングされる。MRBDY#が活動状態
であることを伴ってMCLK又はMOCLKの立ち上がり端でこ
れらのピンで新たなデータは取り出される。
MSEL# このピンは装置選択信号として使用される。こ
のピンが非活動状態(HIGH)であるとき、メモリバスサ
イクルに関わるバースト制御は初期設定される。このピ
ンが活動状態であるとき、バースト制御はMCLK又はMOCL
Kをもって進む。刻時メモリバスモードでは、このピン
はMCLKの立ち上がり端と共にサンプリングされる。この
ピンはCLKに対して非同期である。RESETが活動状態であ
るとき、このピンはメモリバスにおける8回又は4回の
転送に合わせてキャッシュを構成するために使用され
る。リセット中にこのピンがHIGHであるとき、それはCA
CHE行ごとにメモリバスで4回の転送があることを意味
している。リセット中にこのピンがLOWであるとき、そ
れはCACHE行ごとにメモリバスで8回の転送があること
を意味している。
のピンが非活動状態(HIGH)であるとき、メモリバスサ
イクルに関わるバースト制御は初期設定される。このピ
ンが活動状態であるとき、バースト制御はMCLK又はMOCL
Kをもって進む。刻時メモリバスモードでは、このピン
はMCLKの立ち上がり端と共にサンプリングされる。この
ピンはCLKに対して非同期である。RESETが活動状態であ
るとき、このピンはメモリバスにおける8回又は4回の
転送に合わせてキャッシュを構成するために使用され
る。リセット中にこのピンがHIGHであるとき、それはCA
CHE行ごとにメモリバスで4回の転送があることを意味
している。リセット中にこのピンがLOWであるとき、そ
れはCACHE行ごとにメモリバスで8回の転送があること
を意味している。
MDOE# メモリバス出力イネーブル、はメモリバスへの
データの送り出しを制御するために使用される。このピ
ンが非活動状態(HIGH)であるとき、MDATA〔0:7〕ピン
は3状態となっている。このピンが活動状態(LOW)で
あるとき、MDATA〔0:7〕ピンは、活動的にデータを送り
出している。このピンの機能はストローブメモリバス動
作、又は刻時メモリバス動作の場合と同じである、この
ピンはCLK及びMCLKに対して非同期である。
データの送り出しを制御するために使用される。このピ
ンが非活動状態(HIGH)であるとき、MDATA〔0:7〕ピン
は3状態となっている。このピンが活動状態(LOW)で
あるとき、MDATA〔0:7〕ピンは、活動的にデータを送り
出している。このピンの機能はストローブメモリバス動
作、又は刻時メモリバス動作の場合と同じである、この
ピンはCLK及びMCLKに対して非同期である。
MFRZ# このピンが活動状態(HIGH)であるとき、割当
てのためのデータはその割当てを生じさせた書込みから
のデータと併合される。CPU書込みと同一の記憶場所に
向かう充填からのビットは無視される。MFRZは書込みの
MEOC#の間にサンプリングされる。
てのためのデータはその割当てを生じさせた書込みから
のデータと併合される。CPU書込みと同一の記憶場所に
向かう充填からのビットは無視される。MFRZは書込みの
MEOC#の間にサンプリングされる。
HITM# このピンはCPUバスインタフェースにおけるキ
ャッシュ一貫性サイクルを識別するために使用される。
HITM#が活動状態のときにADS#が印加されると、キャ
ッシュデータスライスはメモリバススヌープに応答する
のに先立って、CPUバスデータをスヌープバッファ、又
はライトバックバッファのデータと併合する。
ャッシュ一貫性サイクルを識別するために使用される。
HITM#が活動状態のときにADS#が印加されると、キャ
ッシュデータスライスはメモリバススヌープに応答する
のに先立って、CPUバスデータをスヌープバッファ、又
はライトバックバッファのデータと併合する。
BUFF# このピンはスヌープ動作中のデッドロックの場
合に、CPUバスサイクルを打ち切るために使用される。
特定すれば、メモリバスを待機してCPUバスがブロック
され、且つ変更データが一次キャッシュに存在している
スヌープをサービスすることを待機してメモリバスがブ
ロックされた場合、BOFF#はスヌープをサービスできる
ようにCPUバスサイクルを打ち切るために使用される。
合に、CPUバスサイクルを打ち切るために使用される。
特定すれば、メモリバスを待機してCPUバスがブロック
され、且つ変更データが一次キャッシュに存在している
スヌープをサービスすることを待機してメモリバスがブ
ロックされた場合、BOFF#はスヌープをサービスできる
ようにCPUバスサイクルを打ち切るために使用される。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ファーレル,ロバート・エル アメリカ合衆国 97229 オレゴン州・ ポートランド・ノースウエスト 186テ ィエイチ アヴェニュ・4655 (56)参考文献 特開 平2−103649(JP,A) 特開 昭59−100964(JP,A) 特開 平2−28739(JP,A) 特開 平2−187881(JP,A) 富田▲真▼治他著 「コンピュータア ーキテクチャシリーズ並列処理マシン」 (1989−5−25),オーム社 PP. 166−172 高橋義造編 「MARUZEN Ad vanced Technology 〈電子・情報・通信編〉並列処理機構」 (平元−8−25) 丸善 PP.181 −199
Claims (3)
- 【請求項1】CPUクロック信号および所定のバースト順
序を有する中央処理装置(CPU)と、このCPUに結合され
ていて前記CPUクロック信号に同期して動作する付随のC
PUバスと、付随のメモリバスが結合されている主メモリ
とを備えたコンピュータシステムにおいて、データを一
時的に保持する集積回路キャッシュメモリであって; (a) 所定のキャッシュ行幅を有するキャッシュ記憶
装置アレイと; (b) 前記CPUバスおよび前記キャッシュ記憶装置ア
レイに結合されていて、前記CPUクロック信号に対して
同期して動作するCPUバスインターフェイスであって、 (i)前記CPUバスおよび前記キャッシュ記憶装置アレ
イに結合されていて、前記CPUバス上での読取り/書込
みバースト動作を最適化し、1回のアクセスで前記キャ
ッシュ記憶装置アレイの1行分をアクセスするためのCP
Uバッファ手段と、 (ii)前記CPUバスとの間での転送の制御と、前記キャ
ッシュ記憶装置アレイとの間での転送の制御とを、CPU
による所定のバースト順序でのバースト転送の制御も含
めて行うCPUバスインターフェイス制御装置と を有している、CPUバスインターフェイスと; (c) 前記メモリバスおよび前記キャッシュ記憶装置
アレイに結合されていて、前記CPUクロック信号に対し
て非同期で動作するメモリバスインターフェイスであっ
て、 (i)前記メモリバスととの間でのデータと、前記キャ
ッシュ記憶装置アレイとの間でのデータについてのバッ
ファを、メモリバス読取り,ライトスルー,ライトバッ
ク,および,スヌープも含めて行う、キャッシュ行幅の
複数のメモリバス・バッファと、 (ii)前記複数のメモリバス・バッファの1つを、特定
のメモリバス・サイクル中に使用するために選択する、
メモリバスインターフェイス制御装置と を有している、メモリバスインターフェイスと; (d) 前記CPUバスインターフェイスと、前記メモリ
バスインターフェイスとに結合されていて、前記CPUバ
スインターフェイスと前記メモリバスインターフェイス
との間で、データを直接に転送するデータ経路と を備えている、集積回路キャッシュメモリ。 - 【請求項2】メモリバスとCPUバスとに結合された集積
回路キャッシュメモリであって、 (a) キャッシュ記憶装置アレイと; (b) 前記メモリバスに結合されていて外部のCPUク
ロック信号に対して非同期で動作するメモリポートと; (c) 前記CPUバスに結合されていて外部のCPUクロッ
ク信号に対して同期して動作するCPUポートと; (d) 前記キャッシュ記憶装置アレイに結合されてい
て、スヌープデータバッファおよびライトバックデータ
バッファも含めて行う、複数のキャッシュ行幅バッファ
と; (e) 前記メモリポートから前記キャッシュ記憶装置
アレイをアクセスする内部バス手段にして、 前記CPUバスと前記メモリバスとの間の転送を、前記キ
ャッシュ記憶装置アレイを関わらせることなく前記キャ
ッシュ記憶装置アレイがアクセスされていても、サポー
トする接続バスと、 前記キャッシュ記憶装置アレイに結合されたアレイマル
チプレクサと、 前記キャッシュ行幅バッファに結合されていて、前記ア
レイマルチプレクサにウエイ選択制御信号を与えるアレ
イバスと を有している、内部バス手段と; (f) 前記複数のキャッシュ行幅バッファの1つを、
特定のバスアクセスでの使用のために選択するメモリポ
ート制御手段と; (g) 前記キャッシュ記憶装置アレイへのアクセスを
行い、このアクセス中に書込みをされるべき、前記複数
のキャッシュ行幅バッファの1つを選択するCPUポート
制御手段と を備えた、集積回路キャッシュメモリ。 - 【請求項3】マイクロプロセッサ・コンピュータ・シス
テムにおける、CPUバスおよびメモリバス間に結合され
た集積回路キャッシュメモリであって、 (a) ランダムアクセスで2ウエイ・セットアソシエ
イティブ構成のキャッシュ記憶装置アレイを備え; (b) キャッシュ行幅のCPUインターフェイスバッフ
ァを含んでいて、前記CPUバスから前記キャッシュ記憶
装置アレイへのアクセスを行うCPUバスインターフェイ
スを備え; (c) 複数のメモリバスバッファを含むメモリバスイ
ンターフェイスを備え; (d) 前記CPUバスインターフェイスおよび前記メモ
リバスインターフェイス相互間のバイパス経路にして、
前記キャッシュ記憶装置アレイが関わるアクセスとは独
立しているバイパス経路を与えるバスを備え、前記複数
のメモリバスバッファおよび前記CPUインターフェイス
バッファのそれぞれには、前記キャッシュ記憶装置アレ
イに対してのキャッシュ行幅のインターフェイスが設け
られていて、前記CPUバスインターフェイスおよび前記
メモリバスインターフェイスでの同時動作がサポートさ
れ; (e) 前記CPUバスインターフェイスおよび前記メモ
リバスインターフェイスそれぞれでのデータ転送を制御
するデータ転送制御手段を備えた 集積回路キャッシュメモリ。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US710,075 | 1991-06-04 | ||
US07/710,075 US5228134A (en) | 1991-06-04 | 1991-06-04 | Cache memory integrated circuit for use with a synchronous central processor bus and an asynchronous memory bus |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH06511330A JPH06511330A (ja) | 1994-12-15 |
JP2686849B2 true JP2686849B2 (ja) | 1997-12-08 |
Family
ID=24852524
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP5500670A Expired - Lifetime JP2686849B2 (ja) | 1991-06-04 | 1992-06-04 | 集積回路キャッシュメモリ |
Country Status (5)
Country | Link |
---|---|
US (1) | US5228134A (ja) |
JP (1) | JP2686849B2 (ja) |
GB (1) | GB2271450B (ja) |
HK (1) | HK112695A (ja) |
WO (1) | WO1992022031A1 (ja) |
Families Citing this family (60)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5537640A (en) * | 1988-12-30 | 1996-07-16 | Intel Corporation | Asynchronous modular bus architecture with cache consistency |
GB9019023D0 (en) * | 1990-08-31 | 1990-10-17 | Ncr Co | Work station having multiplexing and burst mode capabilities |
GB9018992D0 (en) * | 1990-08-31 | 1990-10-17 | Ncr Co | Internal bus for work station interfacing means |
JP2646854B2 (ja) * | 1990-12-18 | 1997-08-27 | 三菱電機株式会社 | マイクロプロセッサ |
JP3180362B2 (ja) * | 1991-04-04 | 2001-06-25 | 日本電気株式会社 | 情報処理装置 |
DE69323790T2 (de) * | 1992-04-29 | 1999-10-07 | Sun Microsystems, Inc. | Verfahren und Vorrichtung für mehreren ausstehende Operationen in einem cachespeicherkohärenten Multiprozessorsystem |
KR100294105B1 (ko) * | 1992-04-29 | 2001-09-17 | 썬 마이크로시스템즈, 인코포레이티드 | 멀티 프로세서 컴퓨터 시스템의 일관성 카피-백 버퍼용 방법 및 장치 |
KR100267110B1 (ko) * | 1992-05-28 | 2000-11-01 | 리패치 | 마이크로프로세서에 상주하는 캐시 램을 테스트하는 방법 및 장치 |
JPH0797352B2 (ja) * | 1992-07-02 | 1995-10-18 | インターナショナル・ビジネス・マシーンズ・コーポレイション | コンピュータ・システム及び入出力コントローラ |
US5471605A (en) * | 1992-08-27 | 1995-11-28 | Intel Corporation | Apparatus for updating a multi-way set associative cache memory status array |
US5479636A (en) * | 1992-11-16 | 1995-12-26 | Intel Corporation | Concurrent cache line replacement method and apparatus in microprocessor system with write-back cache memory |
US5848283A (en) * | 1993-01-29 | 1998-12-08 | International Business Machines Corporation | Method and system for efficient maintenance of data coherency in a multiprocessor system utilizing cache synchronization |
US6311286B1 (en) * | 1993-04-30 | 2001-10-30 | Nec Corporation | Symmetric multiprocessing system with unified environment and distributed system functions |
US5872945A (en) * | 1993-07-26 | 1999-02-16 | Intel Corporation | MX bus translation to new system bus protocol |
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 |
US5771397A (en) * | 1993-12-09 | 1998-06-23 | Quantum Corporation | SCSI disk drive disconnection/reconnection timing method for reducing bus utilization |
US5680572A (en) * | 1994-02-28 | 1997-10-21 | Intel Corporation | Cache memory system having data and tag arrays and multi-purpose buffer assembly with multiple line buffers |
US5524208A (en) * | 1994-06-09 | 1996-06-04 | Dell Usa, L.P. | Method and apparatus for performing cache snoop testing using DMA cycles in a computer system |
EP0690382B1 (en) * | 1994-07-01 | 2003-01-02 | Sun Microsystems, Inc. | Computer system with a multiplexed address bus and pipelined write operations |
US5627994A (en) * | 1994-07-29 | 1997-05-06 | International Business Machines Corporation | Method for the assignment of request streams to cache memories |
US5721882A (en) * | 1994-08-05 | 1998-02-24 | Intel Corporation | Method and apparatus for interfacing memory devices operating at different speeds to a computer system bus |
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 |
US5659709A (en) * | 1994-10-03 | 1997-08-19 | Ast Research, Inc. | Write-back and snoop write-back buffer to prevent deadlock and to enhance performance in an in-order protocol multiprocessing bus |
US5634073A (en) * | 1994-10-14 | 1997-05-27 | Compaq Computer Corporation | System having a plurality of posting queues associated with different types of write operations for selectively checking one queue based upon type of read operation |
US5761722A (en) * | 1995-01-30 | 1998-06-02 | Sun Microsystems, Inc. | Method and apparatus for solving the stale data problem occurring in data access performed with data caches |
US5893921A (en) * | 1995-02-10 | 1999-04-13 | International Business Machines Corporation | Method for maintaining memory coherency in a computer system having a cache utilizing snoop address injection during a read transaction by a dual memory bus controller |
US5617347A (en) * | 1995-03-17 | 1997-04-01 | Fujitsu Limited | Cache memory system and method thereof for storing a staged memory item and a cache tag within a single cache array structure |
US5737550A (en) * | 1995-03-28 | 1998-04-07 | Advanced Micro Devices, Inc. | Cache memory to processor bus interface and method thereof |
US5564027A (en) * | 1995-04-20 | 1996-10-08 | International Business Machines Corporation | Low latency cadence selectable interface for data transfers between busses of differing frequencies |
US5664230A (en) * | 1995-05-26 | 1997-09-02 | Texas Instruments Incorporated | Data processing with adaptable external burst memory access |
US5860104A (en) * | 1995-08-31 | 1999-01-12 | Advanced Micro Devices, Inc. | Data cache which speculatively updates a predicted data cache storage location with store data and subsequently corrects mispredicted updates |
US5987561A (en) | 1995-08-31 | 1999-11-16 | Advanced Micro Devices, Inc. | Superscalar microprocessor employing a data cache capable of performing store accesses in a single clock cycle |
US5768550A (en) * | 1995-11-21 | 1998-06-16 | International Business Machines Corporation | Bus interface logic system |
US5963721A (en) * | 1995-12-29 | 1999-10-05 | Texas Instruments Incorporated | Microprocessor system with capability for asynchronous bus transactions |
US5838943A (en) * | 1996-03-26 | 1998-11-17 | Advanced Micro Devices, Inc. | Apparatus for speculatively storing and restoring data to a cache memory |
US5960453A (en) | 1996-06-13 | 1999-09-28 | Micron Technology, Inc. | Word selection logic to implement an 80 or 96-bit cache SRAM |
US5802323A (en) * | 1996-06-14 | 1998-09-01 | Advanced Micro Devices, Inc. | Transparent burst access to data having a portion residing in cache and a portion residing in memory |
US5924121A (en) * | 1996-12-23 | 1999-07-13 | International Business Machines Corporation | Adaptive writeback of cache line data in a computer operated with burst mode transfer cycles |
US5862154A (en) * | 1997-01-03 | 1999-01-19 | Micron Technology, Inc. | Variable bit width cache memory architecture |
US6138206A (en) * | 1997-06-12 | 2000-10-24 | International Business Machines Corporation | Data register for multicycle data cache read |
US6115795A (en) | 1997-08-06 | 2000-09-05 | International Business Machines Corporation | Method and apparatus for configurable multiple level cache with coherency in a multiprocessor system |
US6526469B1 (en) | 1999-11-12 | 2003-02-25 | International Business Machines Corporation | Bus architecture employing varying width uni-directional command bus |
US6557069B1 (en) | 1999-11-12 | 2003-04-29 | International Business Machines Corporation | Processor-memory bus architecture for supporting multiple processors |
US6513091B1 (en) | 1999-11-12 | 2003-01-28 | International Business Machines Corporation | Data routing using status-response signals |
US6643752B1 (en) * | 1999-12-09 | 2003-11-04 | Rambus Inc. | Transceiver with latency alignment circuitry |
US6467031B1 (en) * | 1999-12-10 | 2002-10-15 | Intel Corporation | Method and apparatus for reducing processor bus loading |
US7010642B2 (en) * | 2000-01-05 | 2006-03-07 | Rambus Inc. | System featuring a controller device and a memory module that includes an integrated circuit 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 |
US7363422B2 (en) * | 2000-01-05 | 2008-04-22 | Rambus Inc. | Configurable width buffered module |
US7356639B2 (en) | 2000-01-05 | 2008-04-08 | Rambus Inc. | Configurable width buffered module having a bypass circuit |
US7266634B2 (en) * | 2000-01-05 | 2007-09-04 | Rambus Inc. | Configurable width buffered module having flyby elements |
US7404032B2 (en) * | 2000-01-05 | 2008-07-22 | Rambus Inc. | Configurable width buffered module having switch elements |
US6198666B1 (en) | 2000-02-29 | 2001-03-06 | International Business Machines Corporation | Control input timing-independent dynamic multiplexer circuit |
US20020087828A1 (en) * | 2000-12-28 | 2002-07-04 | International Business Machines Corporation | Symmetric multiprocessing (SMP) system with fully-interconnected heterogenous microprocessors |
US20030131201A1 (en) * | 2000-12-29 | 2003-07-10 | Manoj Khare | Mechanism for efficiently supporting the full MESI (modified, exclusive, shared, invalid) protocol in a cache coherent multi-node shared memory system |
US6950892B2 (en) * | 2003-04-10 | 2005-09-27 | International Business Machines Corporation | Method and system for managing distributed arbitration for multicycle data transfer requests |
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 |
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 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4467411A (en) * | 1981-03-06 | 1984-08-21 | International Business Machines Corporation | Scheduling device operations in a buffered peripheral subsystem |
US4442487A (en) * | 1981-12-31 | 1984-04-10 | International Business Machines Corporation | Three level memory hierarchy using write and share flags |
US5091846A (en) * | 1986-10-03 | 1992-02-25 | Intergraph Corporation | Cache providing caching/non-caching write-through and copyback modes for virtual addresses and including bus snooping to maintain coherency |
US5025366A (en) * | 1988-01-20 | 1991-06-18 | Advanced Micro Devices, Inc. | Organization of an integrated cache unit for flexible usage in cache system design |
US4905188A (en) * | 1988-02-22 | 1990-02-27 | International Business Machines Corporation | Functional cache memory chip architecture for improved cache access |
US5125084A (en) * | 1988-05-26 | 1992-06-23 | Ibm Corporation | Control of pipelined operation in a microcomputer system employing dynamic bus sizing with 80386 processor and 82385 cache controller |
US5003465A (en) * | 1988-06-27 | 1991-03-26 | International Business Machines Corp. | Method and apparatus for increasing system throughput via an input/output bus and enhancing address capability of a computer system during DMA read/write operations between a common memory and an input/output device |
US5119485A (en) * | 1989-05-15 | 1992-06-02 | Motorola, Inc. | Method for data bus snooping in a data processing system by selective concurrent read and invalidate cache operation |
-
1991
- 1991-06-04 US US07/710,075 patent/US5228134A/en not_active Expired - Lifetime
-
1992
- 1992-06-04 JP JP5500670A patent/JP2686849B2/ja not_active Expired - Lifetime
- 1992-06-04 WO PCT/US1992/004747 patent/WO1992022031A1/en active Application Filing
-
1993
- 1993-10-13 GB GB9321173A patent/GB2271450B/en not_active Expired - Fee Related
-
1995
- 1995-07-13 HK HK112695A patent/HK112695A/xx not_active IP Right Cessation
Non-Patent Citations (2)
Title |
---|
富田▲真▼治他著 「コンピュータアーキテクチャシリーズ並列処理マシン」 (1989−5−25),オーム社 PP.166−172 |
高橋義造編 「MARUZEN Advanced Technology〈電子・情報・通信編〉並列処理機構」 (平元−8−25) 丸善 PP.181−199 |
Also Published As
Publication number | Publication date |
---|---|
GB2271450B (en) | 1994-11-16 |
HK112695A (en) | 1995-07-21 |
US5228134A (en) | 1993-07-13 |
JPH06511330A (ja) | 1994-12-15 |
WO1992022031A1 (en) | 1992-12-10 |
GB9321173D0 (en) | 1994-02-09 |
GB2271450A (en) | 1994-04-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2686849B2 (ja) | 集積回路キャッシュメモリ | |
US5293603A (en) | Cache subsystem for microprocessor based computer system with synchronous and asynchronous data path | |
US5692152A (en) | Master-slave cache system with de-coupled data and tag pipelines and loop-back | |
US5355467A (en) | Second level cache controller unit and system | |
US5895487A (en) | Integrated processing and L2 DRAM cache | |
US6640288B2 (en) | Read exclusive for fast, simple invalidate | |
US7047374B2 (en) | Memory read/write reordering | |
US5353415A (en) | Method and apparatus for concurrency of bus operations | |
US6182168B1 (en) | Programmable sideband port for generating sideband signal | |
US6223258B1 (en) | Method and apparatus for implementing non-temporal loads | |
US11157411B2 (en) | Information handling system with immediate scheduling of load operations | |
US20020053004A1 (en) | Asynchronous cache coherence architecture in a shared memory multiprocessor with point-to-point links | |
JP3629519B2 (ja) | プログラマブルsram及びdramキャッシュ・インタフェース | |
US5822756A (en) | Microprocessor cache memory way prediction based on the way of a previous memory read | |
US8195880B2 (en) | Information handling system with immediate scheduling of load operations in a dual-bank cache with dual dispatch into write/read data flow | |
JP2005339348A (ja) | 半導体装置 | |
US6094711A (en) | Apparatus and method for reducing data bus pin count of an interface while substantially maintaining performance | |
US6240487B1 (en) | Integrated cache buffers | |
EP1668513B1 (en) | Cache bank interface unit | |
JP2005536798A (ja) | メモリバスのプロトコル特性に適合するプロセッサのプリフェッチ | |
US8140765B2 (en) | Information handling system with immediate scheduling of load operations in a dual-bank cache with single dispatch into write/read data flow | |
US8140756B2 (en) | Information handling system with immediate scheduling of load operations and fine-grained access to cache memory | |
US5895490A (en) | Computer system cache performance on write allocation cycles by immediately setting the modified bit true | |
US5835948A (en) | Single bank, multiple way cache memory | |
JP2005508549A (ja) | アンキャッシュ素子のための帯域幅の向上 |