JPH06508457A - 非同期データ経路及び同期データ経路を伴なうマイクロプロセッサ利用コンピュータのキャッシュサブシステム - Google Patents

非同期データ経路及び同期データ経路を伴なうマイクロプロセッサ利用コンピュータのキャッシュサブシステム

Info

Publication number
JPH06508457A
JPH06508457A JP5500668A JP50066893A JPH06508457A JP H06508457 A JPH06508457 A JP H06508457A JP 5500668 A JP5500668 A JP 5500668A JP 50066893 A JP50066893 A JP 50066893A JP H06508457 A JPH06508457 A JP H06508457A
Authority
JP
Japan
Prior art keywords
memory
cpu
bus
cache
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP5500668A
Other languages
English (en)
Inventor
マクウィリアムズ,ピーター・ディ
ウェブ,クレア・シイ
ファーレル,ロバート・エル
Original Assignee
インテル・コーポレーション
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by インテル・コーポレーション filed Critical インテル・コーポレーション
Publication of JPH06508457A publication Critical patent/JPH06508457A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0864Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using pseudo-associative means, e.g. set-associative or hashing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
    • G06F12/0835Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means for main memory peripheral accesses (e.g. I/O or DMA)
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • G06F12/0897Caches characterised by their organisation or structure with two or more cache hierarchy levels
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/608Details relating to cache mapping
    • G06F2212/6082Way prediction in set-associative cache

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるため要約のデータは記録されません。

Description

【発明の詳細な説明】 非同期データ経路及び同期データ経路を伴なうマイクロプロセッサ利用コンピュ ータのキャッシュサブンステム本発明は一般に、マイクロプロセッサの分野に関 し、特に、コンピュータシステムにおいて中央処理装置!!f(CPU)と主メ モリとの間のメモリ階層のレベルを表わすキャッシュメモリに関する。
2、背景知識 歴史的にいえば、マイクロプロセッサ技術への要求はDRAM及びTTL/プロ グラム可能論理などの支援技術より速い速度で増加している。最近では、以下に 説明するように、このずれは一層悪化する傾向にある。第1に、マイクロプロセ ッサのクロック速度は規格の支援論理のクロック速度に急速に近づきつつあり、 場合によっては、支援論理のクロック速度を越えている。加えて、命令ごとのク ロック速度は急速に低減しているので、メモリには非常に大きな帯域幅が要求さ れることになる。RISCアーキテクチャなどのより新しいデザインは同じ量の 作業を実行するのに絶えずメモリ帯域幅を要求している。双対プロセッサや多重 プロセッサなどの装置は直接メモリアクセス(DMA)を必要とするため、メモ リ帯域幅への要求はさらに厳しくなる。41mに、新しい装置が市場に導入され る速度は増しており一以上述べた点は全て悪化することになる。
このような傾向があるために、システムを設計する上で影響を及ぼし続ける性能 上の2つの重大な障害がある。性能を制限するものとしてのメモリ帯域giよ既 に数多くのマイクロプロセノサンステムにおけるキャッシュメモリの使用を強制 していた。例を挙げると、キャツンユメモリの使用はIntel Corpor ation 製造の80386−M 世代のマイクロプロセッサではありふれた ことである。また、Intel の80486TV マイクロプロセッサ、i8 60TMマイクロプロセヴサ及びi 860XP−1マイクロプロセツサは、性 能を向上させるため(こ、オンチノブキャッノユを含む。将来の世代における性 能の向上を支えるためζこ、メモリ階層(−次キャブ/ユ、二次キャツノユ、D RAMアーキテクチャなど)のそれ以上の変更が必要であることは明らかである 。(尚、rlnteN、r80386」、r80486J、ri860J及びr i860XPJは全てIntelCorporation の商標である。)性 能上のもう1つの障害はクロック速度と入出力(Ilo)タイミングである。マ イクロプロセッサのクロック速度(及びその結果としての入出力タイミング)を 増加させ続けるために要求される投資をシステムの全ての構成要素にわたって支 えきれないことは明らかになっている。出資する余裕があったとしても、単純き わまりない作業、調整及びマルチペンダの可能性がもつスケジュール上の影響に よって、そのようなアーキテクチャはたやすく競合に耐えないものとなってしま うであろう。これらの要因によって、システム構成要素のサブセットに対する周 波数スケーリングの問題を隔離するために、既に非同期インタフェースの使用が 強制されて〜)た。将来は、所望のレベルの性能に到達するために、より一層厳 密に管理された仕様を中心として高速CPUインタフェースを設計することが必 要になるであろう。
従来の方式の欠点となっている特徴のうち典型的なものは、cpuインタフェー スとメモリインタフェースの双方で並行動作を支援するのが不可能であるという こ七である。すなわち、読取り/書き込み記憶装置アレイをアクセスするたびに 、データの一部分のみが転送されるのである。これは各キャッシュ行を獲得する ためには、他方のインタフェースからのアクセスをブロックしつつ、キャッシュ SRAMアレイを繰り返しアクセスしなければならないということを意味してい る。あるいは、SRAMの輻広いバンクをそれに対応する外部マルチプレクサと 共に採用することも可能であろうが、それは、複雑さとコストが付加されるとい う相当の犠牲があって始めてできることである。
従来のキャッシュメモリに共通するもう1つの欠点は、どの転送も同期させる必 要があることである。言いかえれば、メモリバスから到着したデータをCPUバ スへ転送できるようになる前に、マイクロプロセッサクロックと同期してハンド シェークを起こさなければならない。このプロセスは、メモリバスからのデータ 転送ごとに繰り返されなければならない。尚、これはメモリバスと、CPUバス との間のデータの転送が同期動作を要求することを別の言いかたで表わしている にすぎない。そのような動作は、特にCPUクロック速度が増したときに、コン ピュータシステムの性能に重大な負担を負わせるのである。
以下かられかるように、本発明は、CPU/キャッシュコアアーキテクチャの中 で採用され、先に説明した性能上の障害を克服しようとする集積キャッシュメモ リを開示する。8048Bのようなマイクロプロセッサと関連して利用した場合 、本発明のキャッシュによる解決方式の数多くの特徴は、それらのCPUの性能 を以前は実現されなかった速度(たとえば、>50MHz)に線形スケーリング することができることである。
発明の概要及び目的 従って、本発明の1つの目的は、従来の技術の特性を示す欠点を克服し且つコン ピュータシステムの総性能を向上させるキャッシュメモリを提供することである 。
本発明の別の目的は、直接メモリアクセス(DMA)及び多重プロセッサ構成に 関してシステム性能を向上させるためにCPU動作と、メモリバス動作との間に できる限り多くの同時性を保つキャッシュを提供することである。
本発明の別の目的は、DMA装置及び/又は複数のプロセッサに一二次キャッシ ュを有していても、いなくても−共通のメモリを共用させるキャッシュメモリ一 貫性メカニズムを提供することである。
本発明のさらに別の目的は、CPUバスからメモリバスへSRAMアレイを妨害 せずに透明性をもってデータを転送させるキャッシュメモリを提供することであ る。
本発明の別の目的は、SRAMアレイの中へ又はSRAMアレイから1つのCP Uクロック周期の中で情報を転送することができるキャッシュメモリを提供する ことである。
本発明のさらに別の目的は、メモリバスとCPUバスとの間でデータを非同期的 に転送するキャッシュメモリを提供することである。
本発明のさらに別の目的は、メモリバスバッファ機能及びCPUバスバブフ1機 能を単一の集積回路においてSRAMアレイと組合わせるキャッシュメモリ回路 を提供することである。
本発明の別の目的は、内部SRAMアレイに対する、キャッシュ行1行分の幅を もつインタフェースを有するキャッシュメモリを提供することである。
本発明のさらに別の目的は、メモリバス制御装置に対するインタフェースがCP U待ち時間を最小にするような効率の良いキャッシュメモリを提供することであ る。
本発明のさらに別の目的は、CPUクロック速度のスケーリングを容易にするた めに80486などのマイクロプロセッサにおける性能の線形スケーリングを可 能にする、CPU/キャッシュコアアーキテクチャと共に使用するためのキャフ /ユメモリを可能にすることである。
本発明のこれらの目的及びその他の目的に従って、キャッシュSRAM記憶素r を実現する集積回路を開示する。キャッシュメモリ回路は、多数の変形を伴なう MES+プロトコルと、データ併合を伴なう書込み割当てと、効率良い2方向動 作のためのMRtJPIと、内包を使用する2レベルキヤツンユ一貫性(M状態 −次キャッ/ユ行のライトバックのためのデータ併合を含む)とを含むキャッシ ュサブシステムの一部である。
一実施例では、中央処理装置(CPU)を打するマイクロプロセッサ利用コンピ ュータンステムはCPUバスに結合している。CPUバスはCPUクロック信号 に対して同期的に動作する。コンピュータシステムは、主メモリに結合するメモ リバスをさらに含む。本発明による集積キャッシュメモリ回路はスタティックラ フダムアクセスメモリ(SRAM)アレイによって主メモリの一部を一時的に保 持する。
CPUバスを介するバースト読取り動作及びバースト書込み動作を最適化するた めのCPUmux/バッファ手段を具備するCPUバスインタフェースが含まれ ている。CPU■UX/バッファ手段によって、SRAMアレイの1回のアクセ スでキャlツユ行1行分を読取る/書込むことができる。CPUバスインタフェ ースの巾では、CPUにより規定される順序でCPUバーストを制御する制御論 理下段を利用する。部分行書込みと割当てを支援するために、CPtJバッファ にはa効ビブトが取り入れられている。
大きなキヤ・171行もメモリ側で支援される。現時点での実施例では、キセノ /ニー貫性プロトコルはメモリバスキャッシュ行がCPUキャッシュ行のサイズ より大きいか又はそれと等しいことを要求する。従って、本発明は1xs 2x s4 x s 8 x又はそれより大きい行比を支援することができる。より大 きなキャッシュ行を支援するために、あるいは、メモリバスの相対的に遅い速度 を考慮に入れるために、より広いメモリバス輻も容易になっている。現在、支援 されるのはlX% 2XN 4Xの幅比である。
集積キャブンユメモリ回路はメモリバスインタフェース − メモリバス読取り 、ライトスルー、ライトバック及びスヌーズを実行するときに使用される複数の 内部バッファを含む−をさらに具備する。メモリバスインタフェースは、特定の メモリバスサイクルの間に利用すべき適切な内部バッファを確定する追跡論理1 段をさらに具備する。
本発明の重要な特徴は、メモリバスからCPUバスへ透過性をもってデータを渡 すか、又はCPUバスから前記メモリバスへデータを渡すかのいずれかのために 、CPUバスインタフェースとメモリバスインタフェースとの間にデータ経路を 組込んだことである。それらの転送は、それぞれSRAMアレイを妨害せずに実 (テできるという會味で見えている。すなわち、上記のデータ経路は、SRAM アレイをCPUバスインタフェース又はメモリバスインタフェースに結合する経 路とは分離している。言いかえれば、本発明は、キャッシュとは関係していない サイクルについて、バイパス経路によってキャッシュデータ記憶装置アレイに対 し二咀ボートアクセスを実行する。この機能は並行する動作を支援すると共に、 メモリバスとCPUバスの転送プロトコルを分離するように設計されている。
さらに、メモリバスインタフェースとキャッシュメモリのその他の素子との間の アクティビティはCPUクロック信号に対して同期して起こるが、メモリバスイ アタフエースとメモリバスとの間のアクティビティはCPUクロック信号に対し て非同期に起こる。CPUの側とメモリの側での独立した非同期データ転送制御 は相対的に高速のCPUバスを低速のメモリバスから分離する。これにより、メ モリバスインタフェースとCPUバスインタフェースの双方の独立しくすなわち 、各々のデータ転送をCPUに同期させる必要がない)且つ並行する動作が可能 になるので、キヤッンユサブンステムの性能は相当に向上する。
複数のキャッシュ行幅バッファは双方のボートの並行動作を支援する。これらの バッファは単一のCPUバッファと、4つのメモリインタフェースバッフハすな わち、CPLIからメモリへの転送のための2つ、置き換えライトバックのため の1つ及びスヌーブライトバックのための1つのバッファとを含むのが好ましい 。同時性が与えられるのは、これらのバッファがアレイに対してキャッシュ行1 行分の幅をもつインタフェースを有しているために、1回のクロックアクセスで ビンにおける多重クロックバーストを満たすことができるからである。
本発明は、MRU予測を使用することにより、最小限のペナルティをもって多方 向キヤツシユをも支援する。データ経路はcPUバス動作について複数の方向を アクセスすることによりMRU予測を支援する。MRUをアクセスするため(及 び新たなMRUを提供するため)に利用できる時間を最大にするように、適正な 方向に関わる多重化は最終レベルで実行される。MRUビットは、セットごとの 最高使用開度の方向を指示するためにアレイに記憶される。キャッシュ制御装置 は、予測が正確であるが否かを判定するために、MRU (@き換えのために使 用されるLRUの逆)のコピーを有する。好ましい実施例においては、本発明は 2方向動作を実現する;しかしながら、プロトコルを3方向以上に拡張すること は可能である。
図面の簡単な説明 以下の詳細な説明及び本発明の好ましい実施例の添付の図面から本発明をさらに 1−分に理解されるであろうが、それらを特定の実施例に本発明を限定するもの としてみなすべきではなく、それらは説明及び理解のみを目的としている。
図1は、本発明の現時屯で好ましい実施例の基本キャッシュサプシステムのブロ ック線図を示す。
図2は、本発明による集積SRAMキャッキヤツシユ点で好ましい実施例の回路 ブロック線図である。
図3は、本発明の現時点で好ましい実施例に従ったメモリデータ経路の詳細を示 す。
図4は、本発明の現時点で好ましい実施例に関わるcPUデータ経路の詳細を示 す。
図5は、本発明の現時点で好ましい実施例に従った非パイプライン化cPU読取 りヒツトサイクルのタイミング波形を示す。
図6は、本発明に従った3つの非パイプライン化書込みヒツトサイクルを示す図 7は、読取りがキャッシング可能ミスであるような本発明によるメモリ読取リサ イクルを示す。
図8は、メモリ読取りに続いて、次のサイクルが先の読取りと同一の行であり且 つメモリ読取りがSRAMアレイに対してまだ完了していないような状態で本発 明に従って続いてゆく読取りミスを示す。
図9は、キャッシュ制御装置がスヌープヒットを受信したならば、キャッシュ制 mi?yは本発明に変更後のデータをメモリバスへ導入することを命令するよう な本発明に従ったスヌーブ動作に関わるライトバックを示す。
図10は、変更データを有するキャッシュ記憶場所に新たな行が導入されるよう な本発明に従ったメモリ読取りに関わるタイミング波形を示す。その結果、置き 換えが実行される。
図11は、メモリバスライトスルーサイクルのタイミング波形を示す。
図12は、書込みミスに続いてキャッシュの新たな行が割当てられるような本発 明に従った割当てを伴なうライトスルーのタイミング波形を示す。
図13は、メモリインタフェースにおける刻時モードのバースト読取りサイクル を示す。
図14は、メモリインタフェースにおける本発明に従った刻時モードの折り返し メモリ読取りサイクルを示す。
図15は、メモリインタフェースにおける待ち状態を伴なうメモリ読取りサイク ルを示す。
図16は、メモリインタフェースにおける刻時モードのメモリ読取りサイクルの 再始動を示す。
図17は、好ましい実施例についてメモリインタフェースにおける刻時モードの 1回転送メモリ読取りサイクルを示す。
図18は、メモリインタフェースにおける刻時モードのメモリバスからのバース )TI込みサイクルを示す。
図19は、メモリインタフェースにおいて刻時モードの折り返しバースト書込み サイクルを示すタイミング波形である。
図20は、待ち状態を伴なうメモリインタフェースにおける書込みサイクルを示 すタイミング波形である。
図21は、メモリインタフェースにおける刻時モードのメモリ書込みサイクルの 再始動を示す。
図22は、メモリインタフェースにおける刻時モードの1回転送書込みサイクル を示す。
図23は、本発明の現時点で好ましい実施例に従ったメモリインタフェースにお ける刻時モードの読取り一書込み一読取りターンアラウンドのタイミング波形で ある。
図24は、好ましい実施例についてメモリインタフェースにおける刻時モードの 書込み一割当てノーケンスを示す。
図25は、メモリインタフェースにおけるMOCLK信号と出力データとの関係 を示すタイミング図である。
図26は、メモリイノタフエースにおける刻時モードのCRDY#とMEOC# との関係を示すタイミング図である。
図27は、メモリインタフェースにおけるストローブモードのバースト読取り赫 イクルを示す。
図28は、本発明に従ってメモリインタフェースにおいてストローブモードの折 り返しバースト読取りを示す。
図29は、メモリイノタフエースにおけるストローブモードのメモリ読取りサイ クルの再始動を示す。
図30は、好ましい実施例に従ったメモリインタフェースにおけるストローブモ ードの1回転送読取りサイクルを示す。
図31は、メモリインタフェースにおけるストローブモードのメモリバスがらの バースト書込みサイクルを示す。
[2I32は、メモリインタフェースにおいてストローブモードの折り返しパー スHt込みサイクルを示すタイミング波形である。
図33は、メモリインタフェースにおけるストローブモードのメモリ書込みサイ クルの再始動を示す。
図34は、メモリインタフェースにおけるストローブモードの1回転送書込みサ イクルを示す。
図35は、本発明の現時点で好ましい実施例に従ったメモリインタフェースにお けるストローブモードの読取り一書込み一読取りターンアラウンドのタイミング 波形である。
図36は、好ましい実施例についてメモリインタフェースにおけるストローブモ ードの書込み一割当てノーケンスを示す。
図37は、メモリインタフェースにおけるストローブモードのCRDY#信号と MEOC#信号との関係を示すタイミング図である。
図38は、好ましい実施例に従ってバーストマルチプレクサセレクト信号がどの ようにして発生されるかを示す回路概略図である。
好ましい実施例の詳細な説明 マイクロブロセッサンステムに対してキヤツシユメモリを実現する集積回路を説 明する。以下の説明中、本発明の好ましい実施例を完全に理解させるために、特 定のバイト数、特定のビット数、特定のデバイス数などの特定の詳細な事項を数 多(挙げる。しかしながら、それらの特定の詳細な事項がなくとも本発明を実施 しうろことは当業者には自明であろう。別の場合には、本発明を無用にわかりに <クシないために、周知の回路を詳細には示さなかったーすなわち、単にブロッ クl1mの形で示した。
本発明を説明してゆく中で、いくつかの特定のcPUアーキテクチャ及び/又は  Intel 8048B 及びi 860XPマイクロプロセツサなどの型の マイクロプロセッサと関連して本発明によるキヤツシユメモリの使用を何度も参 照する。それらの実現形態は本発明の現時点で好ましい実施例を反映しているに すぎず、それらを本発明の範囲を限定するものとしてみなすべきではない。本発 明において具現化されるlI![念は他の型のプロセッサ、他のアーキテクチャ 等にも適用可能である、あるいは拡張して良いということを理解すべきである。
加えて、本発明を説明に際して、本発明の現時点で好ましい実施例に独特のもの である信号及びビンの名前を参照する。それらの信号については、添付の付録の 中でそれぞれ説明しである。好ましい実施例に関連してそれらの信号名、又はそ の特定の機能を参照するとき、それを本発明の趣旨又は範囲に対する限定として みなすべきではない。
CPU/キャッシュメモリンステムの*要データキャッノユメモリの使用は局所 性の原理に基づいている。この原理は、1つの項目を参照する場合、その項目は その後間もなく再び参照される傾向にあること(すなわち、時間の局所性)を認 識する。同様に、1つの項目を参照する場合、その付近の項目はその後間もなく 参照される傾向にある(すなわち、空間の局所性)。従って、キヤツシユメモリ を使用することの原理は頻繁に使用される情報に対して効率良くアクセスを実行 し、それにより、処理速度を加速することである。
図1は、本発明の基礎となっているキャッシュサブシステムのブロック線図であ る。このキャッシュサブシステムは、現時点で好ましい実施例においてはInt el 80486マイクロプロセツサから構成されているCPU10.キャッシ ュデータスライス+3.キヤツンユ制御装@12及びバイトイネーブルラッチ1 日という4つの基本区分を有する。キャッシュデータスライス13は、キャッノ ユ制muw112及びメモリバス制御装[111と関連して、CPUバス14と メモリバスI5との間のゲートウェイを形成する。
CPUの型、キヤツシユの大きさ、そして、メモリバスインタフェースの選択に よって、それら4つの基本区分素子の特定の実現形態を多様なアプリケージぎン に適合させることができる。キャッシュサブシステムにより局所的にサービスで きる全てのCPUアクセスは、メモリバスのトラフィックから除外される。従っ て、局所サイクル(キャッシュをヒツトし且つメモリバスサイクルを要求しない CPUサイクル)はMBCIIとメモリバス15には全く見えない。これにより 、長嘆処理システムでは要求されることの多いメモリバス帯域幅の縮小が可能に なる。
キャッシュサブシステムの重要な機能の1つは、CPUバス14とメモリバス1 5との間で速度の分離を実行することである。図1のサブシステムは非常に高い 周波数(たとえば、>50MHz) に至るまで待ち状態を零にしてCPUl0 をサービスすると同時に、それより遅いメモリバスサイクルをランするために必 要な分離を実行するように最適化されている。通常、メモリバス15は32ビツ ト幅、64ビツト幅又は128ビツト幅のいずれかである。これは、80486 マイクロプロセツサの場合には32ビツト幅であるCPUバスの幅に匹敵する。
従って、図1のキャッシュサブシステムはCPUバス幅以上のメモリ幅を容易に 支援する。これをCPUバスより狭いメモリバス輻を支援するようにも適合させ ることができるであろう。
キヤツシユ制御装置1112はキャッシュサブシステムの主制御素子を構成して おり、タグと、行状態とを含む。この装置はあらゆるCPUバスサイクルを追跡 し、どのサイクルがCPUバスで完了できるか及びどのサイクルをメモリバスに 渡さなければならないかを判定する。また、(MES+プロトコルの変形に基づ いて)アクセス、ヒツト又はミスについて決定を実行する。制御装置12はCP Uバス要求を完全に処理し、アクセスがメモリバス15の制御を必要とするとき にはMBCIIと協調する。CPUに正しいデータを与えるために、制御装w1 2はヒ−/ トとミスの双方についてキャッシュデータ経路をさらに制御する。
最高使用MIX(MRU)予測メカニズム及びアクセスフンテンシ1ンに基づい て、動的に持ち状態を追加する。
MRUメカニズムは時間的局所性を利用する。特定すれば、1つのセットの最高 使用頻度の経路は再び使用される確率が最も高い。MRUは、IIIき換えるべ き経路を選択するための別の予測方法であるLRU (すなわち、最低使用頻度 )の逆である。キャッシュ制御装!112はMBCIIに対してサイクル要求を さらに実行すると共に、キヤツシユミスに際してはメモリバス15にアドレスを 提供する。
キヤツシユ制御装置は、他の装置がメモリバス15を利用している間にメモリバ ススヌープ動作を実行することになる。スヌービングとは、メモリバス15を共 用している他の装置がアクセスされたキャッシュ行のコピーを有しているか否か を判定するために、キャッシュ制御装r11+2が共用メモリバス15を監視す るする動作のことである。キヤツシユ制御装置は、内包の原理に基づいて、第2 レベルキヤツンユと、CPUl0の一部キャッシュの双方についてスヌーピング する。
メモリバス制御装置1 (MBC)I IはCPU/キャッノユコアをメモリバ ス15と関連する特定のメモリバスプロトコルに適応させる。そのようにしなが ら、MBCは制御装+1!12、行充填、フラッノユ、ライトバックなどと協調 する。
メモリバス制御装置は、広範囲にわたるアプリケーンeンを支援するために、広 い範囲のメモリバスプロトコルに対してcpu、キャッシュ制御装置及びキャッ シュデータスライスの単一の実現形態に適応するように定義されている。クロッ キング又はストロービングされるメモリバスに対して同期インタフェース又は非 同期インタフェースを支援することができる。場合によっては、メモリバス制御 装置をDRAMインタフェースに直接に接続しても良い。それらの異なるプロト コルは32ビツト、64ビツト及び128ビツトのメモリバス輻で支援される。
MBCは、メモリバスプロトコルを実現しなければならない論理を含む。この論 理はメモリバスの順序指定、データ転送及びキャッシュ−質性といった機能を実 行すると共に、キヤツシユ制御装置及びキャッシュデータスライスにあるトラノ ンーバを制御する。尚、任意にキヤツシユ13及びキヤツシユ制御装置!+2は トランンーバ/う1チを介してメモリバス15に結合される。
キャッシュデータスライス13は、図1のCPU/キャッシュコアサブシステム 中のキヤツシユデータ記憶素子を実現する。キャッシュ13は、マイクロプロセ ッサシステムの特定のメモリ必要条件に対応するために、並列に結合された複数 の個別のSRAMRAM集積回路上7実現されている。
δ々のSRAM集積回路17はラッチと、マルチプレクサ(MUXともいう)と 、ヒツトしたアクセスとミスのアクセスの双方を効率良くサービスするために回 路をキヤツシユ制御装置1F+2とロックステップで動作させる論理及び記憶装 置とを含む。尚、キヤツシユ13の内部の論理機能は従来はそれまでのデザイン のキヤノンユ制m装置に配置されていたことに任徹する。しかしながら、本発明 においては、クロック速度が増すにつれてクリティカルタイミングバスを最小に するために、この論理はキヤツシユメモリに特定して区分されている。
キャッシュデータスライス13は零待ち状態ヒツトアクセスを支援し、先に自律 経路予測に関して述べたMRUビットの複製を含む。メモリバスサイクルの間、 キャッシュ13はCPUl0とメモリバス15との間のデータゲートウェイとし て動作する。従って、キャッシュ13は、データを記憶するのに加えて、cPU バスI4とメモリバス15との間に効率の良い、高性能のデータ経路を形成しな ければならない。本発明のこの面については間もなくさらに詳細に説明する。
キャッシュコア13はCPUバスインタフェース及びメモリバスインタフェース では非同期に動作できるが、この装置の内部には同期装置がないことに注意する のは重要である。データ転送のための同期装置はメモリバス制御装置11の区画 にある。
バイトイネーブルラッチ18は図1のキャッシュ制御装置の区画と適正に関連し ている。バイトイネーブルラッチは、メモリバス制御装置に至る分離されたCP Uバス信号のインタフェースを形成する。それらの信号はバイトイネーブルと、 他のCPUサイクル状態信号(長さ、キャッシュ、属性など)とを含む。すなわ ち、ラッチはそれらのクリティカルCPUバス信号に対する負荷(経路指定中の 装置の数)を最小限に抑えるために使用される。メモリバス制御装置11の複雑 さを最小にするために、ラッチはキャッシュ制御装ff112により直接に制御 される。尚、ビン数が制約とならない場合、実施例によってはラッチ18を制御 装r!112の中に組込めることに注意する。
キヤツシユメモリアーキテクチャ 次に図2を参照すると、本発明の集積キャッシュメモリ回路17のブロック線図 が示されている。キヤツシユメモリ17はCPUバスセクシ1ン、メモリバスサ クルジン及びSRAMアレイという3つの基本セクンeンを有する。それらのブ ロックについては以下にさらに詳細にそれぞれ説明する。
CPUバスインタフェース CPUバスインタフェースはブロック20に組込まれたMUX/バッファ機能を 含み、付加的な制御論理はブロック21に入っている。CPU MUX/パブフ ァ20はCPU読取り及びCPU書込みに関わるデータを記憶するために使用さ れる。その機能はCPUバスを経る読取りと書込みの動作を最適化する。読取り 動作の場合、この機能によってキャッシュの1行分を1回のアレイアクセスでM UX/バッファ20にロードすることができる。次に、バースト転送のタイミン グをCPUバスインタフェースでのみ確定するのであるが、それにより、高いデ ータ転送速度に対してタイミングを著しく最適化できる。
同様に、バースト書込み動作の場合には、1回のアレイ書込みについて全てのデ ータが収集されるまで、バッファは(MUX/バッフy20のタイミング必要条 件のみに基づいて)データを高い転送速度で収集させる。バーストに際してAC タイミングを分離することに加えて、この方式はSRAMアレイ22の使用を最 小限に抑え、それにより、メモリバスとの同時性を向上させる。メモリバスバー ストをCPUバスバーストから分離する効果によって、メモリバス動作について も類似の利点が実現される。MUX/バッファ20は、SRAMアレイ22の経 路ごとに1つずつ、2つの32ビツト幅セクシ1ンを有する。先の述べた通り、 SRAMアレイ22はMRU予測を伴なう両方向セットアソシェイティブ構成を 利用する。
セフトアソシエイティプキャフンユは、キャッシュメモリが複数の方向に分割さ れている記憶製画アレイである。1つのセットは、各々がメモリの同一の部分を 保持できるInのセクタ(各方向から1つずつ)から構成されている。1つのセ ットはCPUアドレスの下位部分を使用してアドレス指定(すなわち、索引付け )される。同じセットの中の全てのセクタはCPtJアドレスの同一の下位部分 を使用して索引付けされる。ブロック20の中の32ビツトの幅は8個のCPU 入出力ビンをもって4回の転送を支援する。クリティカルタイミングバスに影響 を与えずに最高使用頻度(MRU)選択を支援するためには、2つのセクション が必要である。
MRU情報に基づいて、ブロック23の中の方向マルチプレクサはアクセス中に 使用すべき正しい方向を選択する。方向情報はCPU制御ブロック21から線路 24に沿ってブロック23に供給される。方向情報はアレイ22との間でも線路 27に沿って両方向に渡される。たとえば、読取りサイクルの間には、初期出力 は最高使用頻度の方向から得られる。制御装置が最高使用頻度の方向は正しい方 向でないと判定したならば、方向マルチプレクサ33を変更し且つ新たなMRU を線路27を介して(たとえば、次のアクセスに備えて)アレイ22に書込むた めに、制御装置は59の信号を使用してキャッシュメモリ17を強制的に他方の 方向に変更させる。尚、MRU予測プロトコルを適正に機能させるためには、キ ャッシュメモリ17のMRUはキャッシュ制御装y112の予測メカニズムとロ ックステップ関係になければならないということに注意する。
MRUビットである読取りは待ち状態なしで実行される。MRUミスの場合、読 取りがパイプライン化されていなければ、方向を変更するための待ち状態が1つ ある。パイプライン化読取りでは、キャッシュ制御装置におけるMRUルックア ップのために使用される時間を隠し且つMRUミスに関わる待ち状Oを回避する ことが可能である。従って、CPtJ読取りに課しては、SRAMアレイ22か ら32ビツト×2を読取り、ブロック20及び23の2方向セクンWンのいずれ かに記憶することになる。
CPUインタフェースセクンロンは8つの入出力ドライバをさらに含む。言うま でもなく、より大きなサイズのキャッシュを支援するために、それより少ない数 の入出力ドライバを使用しても良い。2XCPυ入出力構成を使用する場合、2 つの入力ビン、たとえば、CDATA (0: I)を起動し、その他の入出力 ビンの出力端子を浮動させる。4XCPU入出力構成を選択した場合には、ビン CDATA (0: 3)のみを起動し、その他の4つの人出力ビンは浮動状態 のままである。進行中のサイクルが書込みであるか、又は進行中のサイクルがな い場合には、cpu入出力ドライバは3状態となる。読取りの終了時に、ランさ せるべきバイブラインが読取られていなければ、出力は3状態になる。そうでな ければ、リセットが活動しているとき、出力は3状態になる。
CPUバス制御ブロック21は基本的にはキャッシュメモリに関わるCPUバス のバスプロトコルを複1ml、たちのである。現時点で好ましい実施例では、プ ロIり21はIntel 80486又はi 860XPのバスプロトコルを複 製している。これらの信号はCPU実行開始サイクルと、−次キャッシュへのラ イトパックの場合のキャッシュー貫性開始サイクルとを制御するために使用され る。
同時に、制御セクタぎン2■は、線路59に沿ってキャッシュ制御装置から受信 されて0る信号を監視する。
ブロック21の中に常駐している制御論理は通常の組合わせ論理及び状態機械論 理から成り、2つの重大な機能を実行するように設計されている。第1に、CP tJバスからのバースト転送のために、MtJX/バッファブロック20(及び 関連するCPU MUX33及び37)もバーストアドレスを供給する。これに より、低速の外部チップインタフェースが除外されるので、バースト動作に際し て転送速度を最大にするためにはこれは不可欠である。第2の機能はキャッシュ メモリにCPtJパスサイクルに追跡させ且つキャツシュヒツトを予期するため に内部動作を実行することである。次に、キャッシュmm装置はタグルックアッ プを並行して実行し、その結果をCPUとキャッシュメモリの双方に同時に報知 する。これにより、最も重要なタイミングバスの中でキャッシュ制御装置i12 とキャッシュメモリ+3との間に余分の回路インタフェースを設ける必要はなく なる。
これで読取りヒツトサイクルの速度が改善されることは当業者には理解されるで あろう。
制御ブロック21の中に常駐している論理機能は、さらに、CPUバスの定義に 非常に緊密に結合しようとする。例を挙げると、現時点で好ましい実施例によれ ば、最大限の転送速度を保証するためにブロック21の論理機能は80486マ イクロプロセツサ及びi 860XPマイクロプロセツサに基づいている。これ は信号特性が同一であること、バースト順序が予測可能であること及びスケーリ ングを可能にするためにACタイミングが十分に整合していることを要求する。
図2に示す実現形態の場合、CPUバスインタフェースはキャッシュ装置I!+ 7ごとに2ビツト、4ビツト又は8ビツトのデータ経路を支援する。(電気的負 荷の関係上)装置は16個が限度であると仮定すれば、これにより、(たとえば 、80486の場合)32ビブトCPUバスで128にバイト、256にバイト 又は512にバイトのキャッシュを支援できる。
MRU予測を使用することにより、本発明は最小限のペナルティをもって多方向 キャッシュを実現できることを理解すべきである。MRUをアクセスし且つ新た なMRUを提供するために利用できる時間を最大にするために、適正な方向をめ るための多重化は最終レベルで実行される。さらに、CPUバスとメモリバスと の間のデータ経路(データ経路の詳細については後述する)は、CPtJバス尚 、本発明は2方向動作を実現するが、プロトコルは3方向以上に拡張可能である ことに性徴する。
読み取り時のCPUデータ経路 キャッシュSRAM17は、読取りヒツトを予期して、CPUバス14の読取リ サイクルごとにアレイルックアップを実行する(M、E又はS状態)。キャッノ ユ制御装ril+2はCPUバス14と、専用制御信号とを使用して、読取りヒ ツトの場合はアレイ22からの転送を制御し、また、読取りミス又はキャッシュ をバイパスする読取りサイクル(たとえば、入出力)の場合にはメモリインタフ ェースからの転送を制御する。読取り時のCPUデータ経路はアレイバス25を 介して全64ビツトをアクセスする。アレイバス25はアレイマルチプレクサ2 8に結合しており、アレイマルチプレクサ28は128ビツトバス30を介して アレイ22に結合している。アレイマルチプレクサ28はCPU制御ブロック2 Iにより線#I431を介して制御される。各々のアレイアクセスは128ビツ ト、すなわち、各方向から64ビツトである。アクセスはメモリ側からであり、 選択された方向から全64ビツトを選択することになる。しかしながら、アクセ スがCPLI側である場合には、両方向のアドレス指定された32ビツトを使用 する。
前述のように、読取り時のCPUデータ経路は全64ビツトをアクセスする。
アクセスがアレイに対してである場合、それらの64ビツトはアドレス指定され たキ知ツンユ行の両方向(それぞれ32ビツト)である。アクセスがメモリバス に対してである場合には、64ビツトはメモリバッファ(バッファ40又はバブ 7f41のいずれか)からのものである。この後者の場合、方向機能はメモリバ ッファの正しい半分を選択するためにアドレスに基づいている。メモリバスキャ ーノノユ行のサイズはCPUバス幅より大きくても良<、cpuは正しい部分を アクセスする必要があることは先に述べた通りである。
図4を型開すると、CPUデータ読取りの例をさらに挙げながらCPUデータ経 路の詳細が示されている。アレイ22からアクセスされた64ビツトはCPtJ バッファ20を通過してバーストマルチプレクサ33に至る。バーストマルチプ レクサ33は、64ビツトを16ビツト(8ビツト×2方向)に多重化する4: 1マルチプレクサである。バーストマルチプレクサ33は、当初、要求アドレス 1マルチプレクサである。バーストマルチプレクサ33は、当初、要求アドレス に設定される。現時点で好ましい実施例においてバーストMUX33を実際に制 御する方法を図38に示す。図38は、2ビツト開始アドレスと排他的論理和演 算されるカウンタ34を示す。排他的論理和演算の出力はバーストMUXアドレ スを生成する。その後、バーストMUXアドレスはデコーダ35により復号され て、パース)MUX選択信号を発生する。本発明の現時点で好ましい実施例によ れば、80486マイクロプロセツサの動作と一致する所定の順序でバーストデ ータを転送する。
続くバーストマルチプレクサ33は構成マルチプレクサ37である。現時点で好 ましい実施例では、構成マルチプレクサ37はCPUバスインタフェースにおけ る異なる複数のピンオブシ式ン(たとえば、2 x s 4 x又は8x)に対 応するために採用されている。すなわち、MUX37をI:l、2:1又は4: 1マルチプレクサとして構成することができる。実際には、全てのバーストがM UX33により実行されるように、構成マルチプレクサ37を静的構成すること も可能である。たとえば、2ビツトの場合、16ビツトを2つの出力ビンに現れ る4ビツトに多重化しなければならない。
現時点で好ましい実施例では、MUX33とMUX37は次のように動作する。
8 x ノ4 合には、MUX37はl:lマルチプレクサとして、すなわち、 直接接続として構成される。この状況においては、全てのバーストはMUX33 で実行される。4xの場合には、MUX37は2:lマルチプレクサとして構成 され1バーストは交互にMUX37と、MUX33とで実行される。2xの場合 には、MUX37は4:lマルチプレクサであり、適正なバースト順序付けのた めにバーストMUX33は2度切り換えられる。
MUX37及び33は現時点で好ましい実現形態では分散していることが認めら れる。要約すれば、CPU MUXは8xCPUバス装置に対しては32から8 を選択する装置として機能し、4xCPUバス装置に対しては32から4を選択 し、2xCPUバス装置に対しては32から2を選択する装置として機能する0 バーストアドレスは、80488マイクロプロセツサのバースト順序付けに従っ てCPUにより与えられる初期アドレスから始まる。
キャッシュメモリ17の各々におけるCPU行は、構成に応じて、8ビツト、1 6ビツト又は32ビツトであれば良い。全てのアプリケ−シーンは複数のキャッ シュメモリ集積回路を利用することがわかる。32ビツト未満を要求する構成に ついては、いくつかのアドレスを使用してバッファの一部のみをアクセスしても 良い。尚、マルチプレクサ33及び37の分散形構成はセレクト線38及び39 を介してCPU制御ブロック21により制御されることに注意する。
図4に示す最終MUX段、すなわち、マルチプレクサ43は、当初はアレイ22 に記憶されているMRUに基づいて正しい方向を選択するために使用される。
MRU予測が正しくないならば、線路59の方向信号に基づいて方向マルチプレ クサを切り換える。方向情報は、新たなMRU方向を線路27を介してアレイ2 2に書込むためにも使用される。メモリバス動作の場合、方向マルチプレクサの 選択はメモリバッファの正しい部分を選択するために1つのアドレスビットに基 づいている。
最後に、出力ドライバ及びラッチはビンタイミングの必要条件に適合するように 規定されている。
書込み時のCPUデータ経路 キャッシュSRAM+7はCPUバス書込みサイクルごとにデータをラッチする 。キャッシュ制御装置12はCPUバス14と、線路59に沿った専用制御信号 とを利用して、書込みヒツト(M、E又はS状態)に対してはアレイ22への転 送を制御し及び/又はS状態書込み、書込みミス又はキャッシュをバイパスする 書込みサイクル(たとえば、入出力)に対してはメモリインタフェースへの転送 を制御する。CPU書込みに際しては、MUX/バッファ20を使用して、デー タをSRAMアレイ22に書込む前にデータを記憶する。実際にデータがアレイ に書込まれる前に、CPUサイクルは全て完了する。尚、MUX/バッフ120 とアレイ22との間のデータ転送は64ビツト幅のアレイバス25を介して起こ ることに注意する。アレイ書込みの前に、4回までの転送のデータをMUX/バ ッファ20に書込むことができる。
データはXPUバッファ20の両方向にラッチされる。データは、キャッシュ制 御装置により指定される方向にアレイ22に書込まれる。現在行がキャッシング 可能であるか否かにかかわらず、cpuデータはMUX/バッファ20にラッチ される。行がキャッシング可能であれば、cpuサイクルが完了した後にその行 をクロック周期の二重の−の間にアレイ22に書込む。本発明の方式では、CP UN込みの幅は!ビット、2ビツト、4ビツト、8ビツト、16ビツト又は32 ビツトであれば良い。MUX/バッファブロック20の中には、それぞれ個々の ビットの書込みを可能にするビットイネーブルラッチがある。従って、アレイ2 2への書込み中、ビット書込みイネーブルされたビットのみを実際に書込むこと になる。書込み割当てに際してデータ併合動作を支援するためにビットイネーブ ルがメモリインタフェースへ渡されることを理解すべきである。この状況で、メ モリから1行分のキャッシュ行を読取り、SRAMアレイ22に導入する前にメ モソバ1フア40(又は41)で有効書込みデータと併合する。
先に述べた通り、書込みサイクルはCPtJ入カドシカドライバし、外部タイミ ング必要条件に適合するようにラッチされる。異なるデータピン構成(すなわち 、2x% 4X又は8x)を支援するために、書込みデータは、特定の構成に基 づいてビットを駆動するマルチプレクサ47を通過する。たとえば、キャッシュ 17に導入されるデータ行が2つのみである場合には、マルチプレクサ47は2 つの行をCPUバッファ20に対する8行に拡張するであろう。
次に、8ビツトはCPUバッファ20の全てのスライスへ送り出される。CPU 制御セクンロン21は、正しいビットを書込むために、書込みイネーブルをCP Uバーノファ20(及びアレイ22)へ選択的に送り込む。データモードでキヤ 、/ユ17を使用するたびに、書込みの細分性は2ビツトである。ただし、キヤ 、ツユ17はパリティ動作モードをも支援する。これは、個々のパリティビット とビットイネーブルがデータピンに接続される全く異なるモードである。データ 経路は、とノドレベルで書込み制御のために必要とされる細分性がより微細であ ることを除いて、同じように動作する。キャッシュ17をパリティ装置として使 用するときには、細分性は1ビツトである。
CPUf’l込み経路はキャッシュ−品性サイクルに対しても使用される。CP Uから一部キャッノユに変更データをライトバックするために利用されるCPU ノくスサイクルは、キャッシュ17のこの部分で他のどの書込みサイクルとも同 様に扱われる。すなわち、それらはライトバックバッフ146又はスヌーズバッ ファ45でSRAM22からのデータと最終的には併合されるのである。これら のバッファの目的については、間もなくさらに詳細に論じる。
複数の幅オブシ1ンを伴なうスライス形データ経路を設けることにより、本発明 は全ての構成についてデータ行の単一ロードをもってより大きなキャッシュサイ ズを支援できることがわかる。この状況では、各々のキャッシュ装置でデータ経 路機能性は同一である。その機能性をN回複製すると、より大きなキャッシュサ イズを支援するために全キャッシュコア13を構成するように複数の装@17が 採用される(図1参照)。
SRAMアレイ 引続き図2を参照すると、SRAMアレイ22は、2つの方向−それぞれ128 にとット −に分割される256にメモリビットを含む。アレイ22は4にのM RUビットと、関連するアレイアドレスラッチ49とをさらに含む。アドレスビ ット49は全てのアレイアクセスアドレスに対して使用される。図2には、CU Pインタフェースと、メモリインタフェースと、アレイ22とを結合するアレイ バス25の64ビツト経路も示されている。このバスはキャッシュ行幅の単一ク ロックアクセスを支援する。接続バス26はCPUバスとメモリバスとの間の転 送を支援する。このバスはキャッシュ解決の同時性を増すために特に含まれてい る。詳細にいえば、接続バス26は、アレイアクセスが起こっているのと同時に 、CPUバス14とメモリバス15との間に接続を成立させるのである。この特 徴が採用されている例としては、行充填又は行割当ての間のライトバックバッフ ァの充填、又はCPUバスが読取りを完了している間のスヌーズのサービスがあ る。
SRAMアレイ22自体は、金属酌化膜半導体(MOS)技術又は相補形金属酸 化膜半導体(CMO5)技術を採用して製造された通常のSRAMセルから構成 されている。しかしながら、キャッシュ制御装置の動作を追跡するためのMRU ビットを取り入れることと共に、SRAMアレイ22を内部データ経路に接続す る方式は新規である。図2は、キャッシュデータ記憶装置アレイ22に対して二 重ボートアクセスを実行するように構成されているアレイバス25を示す。すな わち、メモリバス又はCUPバスのいずれかの側からアレイ22に対するアクセ スを実行できるのである。さらに、キャッシュに関連しないサイクルについては 、CPUバスとメモリバスとの直接接続のためのバイパス経路が含まれていない 。これは並行動作を支援すると共に、メモリバス転送プロトコルとCPUバス転 送プロトコルを分離するように定義されている。
アレイとデータ経路は同じ集積回路の中に製造されているので、接続の幅は従来 のデザインにおいて通常見られたようなビン又は出カバソファによる制約を受け ない。そのため、SRAMアレイをさらに効率良く使用するように、入出力ビン におけるデータ経路よりはるかに広い幅でインタフェースを形成することができ る。これにより、1回のアレイアクセスで外部バスの多数の転送をサービスでき るのである。この方式の重大な利点は、(SRAMアレイ22がどの外部バスサ イクルについてもその一部に対してのみ使用されるために)同時性のレベルがよ り高くなることと、(アレイが初期アクセスのクリティカルバスでのみアクセス するために)最大クロック速度がより速くなることである。
先に論じた通り、SRAMアレイ22は、データを記憶するのに加えて、キャッ シュ制御装置により使用されるMRUビットのコピーを保持するという責務も負 っている。これらのビットはキャッシュメモリ13により、キャッシュをヒツト するかもしれない読取りサイクルでキャッシュメモリがどの方向でアクセスされ るかを予測するために使用される。この予測方法は、重要なりリティカルタイミ ングパスを簡略化する一方で、多方向キャッシュ実現形態にはるかに速いクロッ ク速度で待ち状態なしに応答させる。たとえば、読取りサイクルの間、MRU出 力は最高使用頻度の方向を指示し、この方向はCPUバスに当初導入されるデー タを提供する。キャッシュ制御装置がこの方向への読取りヒツトを検出すると、 データは待ち状態なしにCPUに供給される。キャッシュ制御装置が他方の方向 への読取りヒツトを検出した場合には、キャッシュ制御装置はキャッシュ17に 他方の方向への切賛えを命令する。キャッシュ制御装置の人力は線路59に沿っ てCPU制御ブロック2!に結合する。
どの方向も64ピツ)X2にの行であるとみなすことができる。各方向に出入り する2つの経路−CPUアクセスのための1つの経路と、メモリアクセスのだめ の1つの経路−がある。CPUクロックごとに使用できるのは経路の一方のみで ある。メモリアクセスは方向O又は方向lから64ビツトを選択する。経路25 に沿ったCPUアクセスは方向Oからの64ビツトのうち32ビツトと、方向I からの64ビツトのうち32ビツトとを選択する。1回のクロック周期の中では 、CPU経路又はメモリ経路のいずれかを介して1回のアクセスしか起こりえな い。
メモリサイクルバッファからのデータをSRAMアレイ22に書込んでいるとき 、書込まれるビットの数は構成によって16ビツト、32ビツト又は64ビツト のいずれかである。CPU MUX/バッファ20からのデータをアレイに書込 むときには、現時点で好ましい実施例においては、使用する人出力ビンの数と、 転送の回転とに応じて、1ビツト、2ビツト、4ビツト、8ビツト、16ビツト 又は32ビツトを書込むことができる。
CPU側及びメモリ側における独立した非同期データ転送制御は、より低速のメ モリバスから高速CPUバスを分離する。CPU側は、80486バスに関して 定義されているのが好ましいBRDY#信号及びBLAST#信号により制御さ れる。このインタフェースはCPU CLK信号に対して同期している。メモリ インタフェースは、CLKに対して非同期である1組の信号により制御される。
キャッシュ17の内部の接続はキャッシュ行1行分の幅であるので、データ転送 事象の相互間に同期必要条件は存在しない(詳細については、付録のビンの説明 の中のタイミング図を参照)。
SRAM22の内部編成は特定の実現形態に応じて変えても良いことを理解すべ きである。たとえば、キャッシュデータスライス幅、アレイサイズ、方向の数な どの考慮事項は、別の実施例に対しては、異なるアレイ構成を指定しても良い。
基本動作及び外部で指定される性能目標を支援することの他は、SRAMアレイ 22の実際の編成は一般に制約されていない。
メモリバスインタフェース キャッシュ17のメモリバスインタフェース部分は、先に論じたCPUバスセク ションと関連するのと同様のMUX/バッファ構成と制御論理機能を含む。しか しながら、メモリバス必要条件は、一般に、cpuバス必要条件とは同じでない 。特定すれば、メモリバスインタフェースは複数の内部バッファをアクセスしな ければならないのであり、単一のバスプロトコルに合わせてこれを最適化するの は不可能である。
メモリバスインタフェースは2つの基本信号群から構成されている。第1の信号 群は、プロセッサクロックに対して同期的関係をもってメモリバス制御装置にイ ンタフェースする信号から構成されている。第2の信号群は、データ経路制御信 号と共にメモリバスに至るデータ経路から構成されている。尚、プロセッサクロ ックをその他のシステム構成要素から分離するのを補助するために、これらの信 号はプロセッサクロックに対して同期的関係をもたないことに注意する。
メモリバス上クシ1ン(バッファ40.41,45.46と、それらに関連する MUXと、ドライバブロック44とから構成される)と、キャツンエメモリ17 のその他の部分との間のアクティビティはCPUシステムクロツタ(たとえば、 CLK)に対して同期していることに注意することは重要である。メモリI(ス セクンピンと、メモリバスデータビンとの間のアクティビティはCLKに対して 非同期である。
刻時メモリバスを使用する場合、メモリバスアクティビティは別個のクロック( すなわち、MCLK)に対して同期する。刻時メモリバスを採用しない場合(こ は、メモリバスアクティビティは通常はストローブ信号(たとえば、MEOC# )に対して同期する。ストローブ動作モードは、信号端を使用する。従って、メ モリバスインタフェースには、広範囲にわたる一連のメモリノくスプロトコルを 支援するために、2つの動作モードがある。
また、メモリバスセフシロンからCPUバッファ20に至る64ビツト幅の経路 26が存在することを認識すべきである。これは、アレイ22を妨害するのを回 避するキャッシュを通るデータ経路を形成するという点で、きわめて有益な特徴 である。これを実行する中で、本発明は各々のデータ転送を同期させる必要をな くす。メモリバスセクンタンをCPUノくスセクンピンに接続するため:こ、メ モ1MIX/バッファ23は図2に示すようにノくラフ140.41.45及び 46と関連して動作する。
CPUバスインタフェースと、メモリlくスインタフエースの双方で並(テ動作 を支援するために、複数のキャッシュ行幅のバッファを使用する。現在の実現形 態におけるバッフ1は単一のCPUバッファ20と、4つのメモリインタフェー スバッファ40.41,45及び46とを含む。メモリとCPUとの間の転送と 、メモリとSRAMアレイ22との間の転送の双方のために、バッファ40及び 41を採用する。バッファ45はスヌーブライトバックのために使用され、一方 、バッファ46は置き換えライトバックのために利用される。尚、これらのバッ ファの各々がアレイに対して行1行分の幅のインタフェースを有しており、その ため、1回のクロックアクセスでビンにおける多重クロックバーストを満たすこ とができるので、同時性が与えられることに注意する。
単にCPUバッファ又はメモリバッファの数を増加させるだけで、より大きな同 時性を追加できるであろう。そのような状況に対して、データ経路の概念は同一 であろう。例を挙げると、スヌーズ動作を可能にするために追加のスヌープバ1 ファを使用することが可能であろうし、その場合、スヌーズバツフ1の中の1つ に変更したデータを導入することになる。その後、他の変更データを捕獲しつつ 他のスヌーズを実行でき、その間に第1のスヌーブバブファはCPUl0の一部 キャフンユからCPUバス14を介して変更データを捕獲している。
従って、同時性の基本的な面はバッファ自体がキャツンユ行I行分の幅であると いうところにある。これは、1回の実行うロックサイクルの中で、キャッシュか らのキャッシュ行1行分の幅のデータ情報を1つのバッファに導入でき、次に、 より遅い速度でそのバッファから外へ転送できることを意味している。その間、 メモリ側又はCPU側からの他のバッファを他のデータ転送を目的として使用す ることが可能であろう。
メモリバスでより大きなキャツノユ行を支援することもできる。従来の並列キャ ッシュ実現形態では、キャッシュ行は必然的にコンピュータシステム全体にわた って同一のサイズとなる。ところが、本発明はC,PUババスッファとメモリノ くスバ1ファとを分離するので、メモリバスはCPUバスより大きな行サイズを 有することができる。事実、構成に応じて、1x12xs 4x又は8xの行比 を(輻オプションと、行ごとの4x8回の転送とに基づいて)支援することが可 能である。より幅の広いバスの使用又は行ごとのより多くの回数の転送の使用な どのわずかな変形を伴えば、他の比も可能であることは自明である。
メモリ側では、より広いバス幅も支援される、すなわち、メモリバスはCPUバ スより広くても良いのである。(実際には、メモリバスがCPUバスより狭くな ることもありうるであろう。唯一の制約は、メモリバスが−広くても、あるいは 狭くても−CPUバスの2の累乗でなければならないということである。
)より大きなキャッシュ行に対応するため、又はメモリバスがより低速であるこ とを考慮するために、より広い幅が必要になる場合が多I11ことがわかる。同 様に、構成に応じて、1xs2x又は4xの幅比を支援することが可能である。
また、より多くの外部ビンを追加し且つ多重化機能をわずかに変更することによ り、より大きな比を支援することも可能である。尚、キャッシュ13の適切な出 力線を一緒にメモリバス15に接続することにより、メモリバス輻をより狭くす ること、すなわち、cpuバス幅より狭くすることができる点に注意する。
キャッシュメモリ17のメモリパスインタフェース上クシ1ンは装置ごとに4ビ ツト又は8ビツトのデータ経路を支援するのが好ましい。好ましい実施例によれ ば、メモリバス輻はCPUバス幅以上であることが要求される。この制約と、装 置が16であるという制限とによって、80486マイクロプロセツサの場合、 128にバイト又は256にバイトのキャッシュで32ビツトメモリバス、25 6にバイト又は512にバイトのキャッシュで64ビツトメモリバス、あるいは 512にバイトのキャッシュで128ビツトメモリバスを直接に支援できる。
CPUバスの制限は受けるが、その他のメモリバスサイズとキャッシュサイズの 組合わせも可能であることは自明である。たとえば、別の実施例においては、装 置ごとのデータ経路幅の選択に応じて、同一の構成でより大きなキャッシュメモ リを実現するか又はより少ない数の装置で同じサイズのキャッシュを実現するか 、あるいは、その双方を実現することを選択しても良い。
メモリバス制御装置インタフェース メモリバス制御装置インタフェースは、プロセッサクロックに対して同期する信 号から構成されている。それらを以下の表1に挙げる。
表1 クロック CLK サイクル完了 CRDY# 転送完了 BRDY# リセット RESET パリティ構成 (RARE) CLKビンはプロセッサクロックをキャッシュ17に人力するために使用される 。キャッシュ17は、以下の表2に挙げるメモリデータ経路信号を例外として、 このクロックを内部論理及び外部インタフェースに対する基本タイミング基準と して使用する。
CRDY#信号はメモリバス制御装置によりサイクルの完了を指示するために使 用される(1サイクルは1回又は2回以上のデータ転送から構成されるものと思 われる)。BRDY#信号はメモリバス制御装置により1回のデータ転送の完了 をキャッシュデータ経路17を介してCPUに報知するために使用される。
リセットビンはキャッシュ17を強制的に既知の状態にさせ且つキャッシュが構 成に関わる指定のビンをサンプリングしなければならないときにそれをキャラツ ユに報知するために使用される。(PARE)ビンは正規の動作又はパリティモ ード動作に際してキャッシュを構成するために使用される。このビンは構成に関 してのみ使用されることから、括弧を使用しており、正規の動作中にはこのビン は無視される。(PARE)に加えて、以下に説明する通り、構成情報はキャッ シュ制御装置及びメモリバスデータ経路制御信号からキャッシュに渡される。
メモリバスデータ経路インタフェース データ経路を広範囲のメモリバス環境に効率良くインタフェースするために、メ モリデータ経路は8ビツトデータ経路と、1組の制御信号とから構成されている 。特定していえば、プロセッサクロックに対して同期動作又は非同期動作する刻 時プロトコル又はストローブプロトコルを支援するのである。尚、場合によって は、様々な動作モードを支援するために共通する1組のビンで複数の信号を0喧 化することに注意する。1つのビンが複数の信号を支援する場合、小括弧の中に 示されている名前はストローブモードについて使用され、一方、基本名はクロッ クモードについて使用される。先に定義した通り、括弧内に見えている信号名は リセット構成について使用される。
サイクル制?IA MSEL#(MTR4/MTR8#)、MEOC#転送制御 ! MBRDY# (MISTB)、MOCLK (MO8TB)サイクルm性  MZBT# (MX4/MX8#)、MFRZ# (MEMLDRV) メモリデータバス MDATAO−MDATA7データ出カイネー出歩イネーブ ル# MCLK信号は、キヤノンユメモリデータバスの動作のための時間基準を設定す る。刻時動作モードでは、この信号は(MDOE#ビンを除く)他の全てのビ/ がqちl二がり端を参叩する状態でメモリクロツタに接続するのが好まし〜1゜ ストローブ動作モードにおいては、このビンはストローブモード構成を成立させ るために高電圧に結合するのが好ましい。
MSEL#信号とMEOC#信号はサイクル制御のために使用される。これらの 信号は刻時モード又はストローブモードの動作で間−の機能を実行するが、す/ ブリフグ規則はわずかに異なる。MSEL#ピンはバス化構成でキャッシュ17 が選択されたときを指示すると共に、一部完了したサイクルを再開するために使 用される。MEOC#ビンは、プロセッサクロックに対する同期を必要とせずに 1サイクルのIIrを報知して、キやツンユデータ経路に非常に急速な折り返し サイクルをランさせるために使用される。
転送制御信号はデータのm−の一部分をキャッシュ17と交換するときにそれに 影響を及ぼすために使用される(1サイクルは1回又は2回以上の転送から構成 されると思われる)。これらの信号線では、動作モードに応じて、複数の異なる 信号が多喧化される。刻時モードでは、転送制御ビンをMBRDY#及びMOC LKとして定義している。MBRDY#信号はデータ転送の完了(読取りに関わ るデータのサンプリング、潜込みに関わる次のデータの送り出し)を指示する。
MOCLKピンは出力データに対するタイミング信号として使用される。MCL Kの遅延パーシーンをこのビンに接続することにより、最小データ出力遅延を増 加させて、システムにおける信号スキューを補正するためにメモリデータバスに 追加保持時間を与えることが可能である。MOCLKビンを高電位に結合すると 、現時点で好ましい実施例では出力データはMCLKを参照する(入力データと 制御信号は常にMCLKを参照している)。
ストローブモードにおいては、転送制御ビンをMI STB及びMO8TBとし て定義している。読取りサイクル時には、これらの信号はメモリバスから来るデ ータをサンプリングするために使用され、書込みサイクル中には、キャッシュ1 7からデータを受け入れ終わったことを報知し、それにより、次のデータを送り 出させるために使用される。尚、読取りサイクルと書込みサイクルに対して異な るタイミングを支援するために2つが与えられていることに注意する。論理上は 、上記の機能のために必要とされる信号は1つだけである。現時点で好ましい実 施例では、これらの信号は完全に対称である。
MZBT#ピンとMFRZ#ビンは、サイクル属性を指示するために使用される 。MZBT#ビンは、キャッシュ行の最下位アドレスから順次始まるバースト転 送を実行することをキャッシュ17に指示するために使用される。この信号は、 80486バースト順序ではデータを供給しないバスを動的に支援するために採 用される。VFRZ#ピンは、書込みサイクルで、より効率良く書込み割当てを 実現するために内部で書込みデータを保持することをキャッシュ17に報知する ために使用される。従って、割当てに際して、データの併合はオプシWンとして 支援される。
割当てサイクルは、CPUからの書込みに応答して1つのキャッシュ行を読取る ことから成る。これはメモリで最初の書込みを実行することにより処理され、そ の後に割当てが続く。本発明により処理できるもう1つの方法は、割当てを実行 し、潜込みデータを併合し、その結果を変更状態でキャッシュに導入することに よるものである。(CPUバッファから渡される有効ビットに基づいて)書込み データをメモリバッファにフリーズするMFRZ#信号を使用して、双方のケー スはデータ経路とバッファにより支援される。
MDATAO−MDATA7の信号はギヤ1ンユ装置との間でデータを転送する ために使用される。これらのビンは刻時動作モードとストローブ動作モードの双 方で同一の機能を実行する。構成によっては、これらのビンのうちのサブセット のみを使用しても良い。MDOE#ピンは書込み動作中にMl)ATAビンで出 力バッフ1をイネーブルするために利用される。この信号はプロセッサクロック その他のメモリデータ経路制御信号、又は選択した動作モードとは無関係である 最後に、次に挙げる信号のうちいくつかは構成についてリセット中に使用される 。先に説明した通り、MCLK (MSTBM)は刻時動作モード又はストロー ブ動作モードを選択するために使用され、また、MOCLKはクロックモードで は出力データのタイミング基準として使用されても良い。加えて、MSEL#  (MTR4/MTR8#)は4回又は8回の転送でメモリバスキャッシュ行を構 成するために使用され、MZBT# (MX4/MX8#)はメモリデータイン タフェースの暢を4ビツト又は8ビツトに選択するために採用される。MFRZ # (MEMLDRV)信号は、MDATAO−MDATA7出力バッファの強 さを構成するために使用される。尚、現時点で好ましい実施例で使用する信号と ビンの表示に関わる付加的な情報と説明は添付の付録に示されている。
メモリインタフェースバッファ メモリインタフェースバッファ40.41.45及び46が実行する特定の機能 は、メモリバス読取り(たとえば、行充填)と、ライトスルーと、ライトバック と、スヌーズとを含む。採用するバッフ1の数が様々な代替実施例の間で異なる こともあるのは当業者には明白であろう。しかしながら、キャッシュ制御装置の 所定の実現形態に対して、利用するバッフ1の数に制限があることに注意すべき である。この制御は、並行動作(たとえば、メモリバス読取りを実行するのと同 時にライトバックバッファをロードすること)と、キャッシュ13とキャッシュ 制mHr!112との間で使用するプロトコルとについてなされる仮定に基づい ている。
キャッノユ制御装置から先に線間59と、CPU制御ブロック21と、線路58 とを介して受信した情報に基づいて、現在メモリバスサイクルについて適切なメ モリインタフェースバッファ記憶場所を確定するために、バッファ40,41. 45及び46と、それらに関連するMUXとに関して通常の追跡論理が含まれて いる。制御ブロック48は、メモリバッファ選択信号及びメモリマルチプレクサ 選択信号を各々の線路52及び53に沿ってメモリインタフェースバッファに供 給する。この内部追跡論理は、CPUクロックに対して非同期であるメモリバス で高速の折り返し動作を支援することができる。
先にCPtJパスインタフェースについて説明したように、1つのサイクルの中 でデータ転送を最適化するためにバーストカウンタも含まれている。尚、メモリ バスにおけるバーストに対して、本発明の現時点で好ましい実施例では順序はI ntel 8048Bの定義の論理的拡張であると仮定される。メモリバスの全 てのバーストサイクルを零ベースにさせるためのモードも利用可能である。これ により、拡張80486バースト順序を支援しないバスを支援できる。
メモリバッファ4o及び41は行充填、割当て及びメモリ書込みのために採用さ れる。それらのバッファは、1回のメモリサイクルの間に8回までの転送を8つ のメモリバスデータ入出力ビンにわたって支援するために、それぞれ64ビット 幅である。キャッシュメモ1月は正規の動作中はこれらのバッファを交互に使用 する。たとえば、メモリ読取りのために一方のバッファを利用しているとき、他 方のバッファは次のサイクルのために利用可能である。これにより、折り返しメ モリバスサイクルが可能である。別の例を挙げると、1つのサイクルの間に一方 のメモリ読取りに関わるデータをSRAMアレイ22に書込んでいるときに、他 方のメモリバッファを使用して別のメモリ読取りサイクルを開始することができ る。
信号MCYC#は、現在CPUサイクルがメモリバッファの一方4o又は4!を 使用することを指示するために使用される。現在サイクルが読取りである場合こ れはメモリ読取りである。CRDY#がメモリ読取りを終了する前にMAWEA #を受信しないならば、キャッシュ行はキャッンング不可能であり、CRDY# でバッフ1を利用可能である。MAWEA#を受信すると、それはキャッシング 可能充填であり、行をSRAMアレイに書込むまでバッファは利用不可能である 。実際の書込みはCRDY#の後のクロックで起こる。データは接続バス26を 介してCPUバスへ転送される。
cpuv込み中にMCYC#を受信すると、これはライトスルー又は通知書込み になる(タイミ/グ図を参照)。メモリバス書込みサイクルの開始時にメモリバ スを利用可能である場合、書込まれる初期記憶場所はCPUバス14から接続バ ス26を介してメモリバス15へ指示される。いずれにしても、CPUがキャッ シュ17ヘデータをバーストするにつれて、このデータを利用可能なメモリイン タフェースバッファの記憶場所(たとえば、パ1ファ40又は41)へ転送すれ ば良い。この転送はCPUクロック速度で起こる。メモリバスが転送を完了する 間に、バッファから出力したデータは次の記憶場所へと変化する。これは、CP tJ側とは轢関係にメモリバスクロック速度(すなわち、MCLK)で起こる。
(尚、メモリバスへの書込みは1から4の長さであれば良いことに注意する。) メモリバス書込みの終了前にMAWEA#を受信したならば、同一のメモリサイ クルバッファとアドレスを使用して割込みを実行する。
書込みが新たな行のI+1当てを発生する場合、書込みに使用したメモリバッフ 1(たとえば、40又は41)を割当てにも使用する。例を挙げると、信号MF RZ#(付録を参照)が活動状態であれば、割当てへの書込みからのデータの併 合が実行される。そこで、CPU書込みによって書込まれていた記憶場所に向か う割当てからのデータは(CPUバフファ20から転送される有効ビットに基づ いて)糠視される。行を完成するその他の記憶場所に係わるデータは、ちょうど 他の何らかのvj当て又はメモリ読取りであるかのようにバッフ1にロードされ る。
行が完成したとき、その行はアレイ22に書込まれる。これにより、メモリへの 杏込みを所イfW1に関して読取りに切替えることができる。
すなわち、CPUバスインタフェースとメモリバスインタフェースは共に独立し て動作するので、一方の側がそれ独自の最適な速度でデータを収集している間に 、他方の側はそのデータを独自の最適な速度で多重化しているということが可能 であろう言うまでもなく、この動作について重要であるのは、CPUパスとメモ °Jバスを接続する透過データ経路を介してデータを渡す能力である。読取りの 場合、これはメモリバスから来る第1のデータが直ちにCPUビンに渡されるこ とを書味している。そこで、メモリバスインタフェースは、メモリバッフ140 及び41の使用によって、CPUの動作とは能関係にバースト動作を完了するこ とができるのである。
CPUバス転送は(データが利用可能でなければならないという自明の制約以外 は)メモリバス転送とは無関係に起こることができる。メモリバス制御装置l1 1は、正しい動作を確保するために、双方のインタフェースを協調させることに なる。しかしながら、転送ごとに同期させる必要はない。すなわち、cPU又は 外部メモリのいずれかとハンドシェークする必要はないのである。この転送の分 離によって、第1のデータに対してできる限り急速なアクセスが可能になると共 に、できる限り効率の良いバーストが可能になる。
従って、CPU側とメモリ側での独立した非同期データ転送制御は高速のCPU バスを相対的に低速のメモリバスから分離する。CPU側はCLKに同期し、8 0486バスについて定義されているのが好ましいBRDY#信号及びBLAS T#信号により制御される。メモリインタフェースは、CLKに対して非同期で ある1組の信号により制御される。
置き換えライトバックは、新たな行が充填されているときに変更された行をキャ ッノユから除外するために使用される。ライトバックバッフ146はこれらの動 作を支援するために設けられているのである。変更データは、変位タグを占める メモリ読出しの間、ライトバックバッフ1に記憶される。メモリ読出しがキャノ 7ング不可能である(たとえば、MAWEA#がない)とわかれば、ライトバッ クを取り消す。
ライトバックバッファ46はSRAMアレイ22からメモリバスへの置き換えラ イトバック、フラッノユ及び同期動作のために採用される。ライトバックバッフ ァ46は、セクタごとに1つの行を有するどのような構成に対してもキャッシュ 制御装置II行分を保持するのに十分な大きさである64ビット幅である。セク タごとに2つの行がある構成では、バッフ146が双方の行を取り込むのに十分 な大きさとなるように、各キャッシュメモリに入る行の部分は32ビツト以下で ある。通常、メモリインタフェースバッフ1と関連するマルチプレクサ論理はバ ッファ46から正しい数のビットを取り出す必要がある。セクタごとに2つの行 がある場合、双方の行を獲得するには2回の読取りを要する。
1行分のデータがライトパックバッファ46にロードされている間に、フラグ読 取り時及び書込み時のメモリデータ経路は、バッファ選択信号及びマルチプレク サ選択信号を発生するメモリ制御論理にモードサイクルであったならば、残りの 転送は先と同様に続いてIi)たであろう。
ャ1ツユ制御装置は、図7に示すようにメモリ読取りを開始するために、キャッ シュ17へBUS#信号とMCYC#信号を発生する。クロック2では、MCY C#信号はローへ遷移する。次に、クロック3の初めで、キャッシュはこの遷移 を検出し、アドレス及びWAYをメモリサイクルアドレスラッチにラッチする。
クロック3では、ローのBUS#信号はデータソースをアレNイ22がらメモリ サイフルバ1フアの一方40または41へ切賛える。メモリバスが利用可能であ るとき、メモリバスからCPUバスへ適切なメモリインタフェースバッフ1(す なわち、バッファ40又は41)を介して直接接続が成立している。
データは、CPUが要求する初期記憶場所から始めて、バースト順序で取り出さ れる。戻される第1のデータはメモリインタフェースバッフ1の一方に入り、次 にCPUパフフ120に至り、最後にCPUバスに達する。データのスライスは メモリインタフェースバッファに戻され、そのバーストカウンタは増分し、メモ リデータの次に部分は次の記憶場所に入る。クロック5では、第1のデータはC PUバスで有効であり、BRDY#が発行される。これで、cpuバーストMU X33は次に記憶場所に増分する。CPUバスで次にデータフィールドが有効で あるとき、別のBRDY#が発行され、BRDY#及びBLAST#が発行され る最後のデータフィールドまで、これが続く。
メモリサイクルバーストカウンタと、cPUバーストカウンタとは独立して増分 されるので、メモリバスにおけるデータ転送速度と、CPUバスにおけるデータ 連送速度とは無関係である。CPUがデータを受信できるより速くメモリバスが データを取り出せる場合、CPUが先の記憶場所からまだデータを受信している 間に、メモリサイクルバーストは別の記憶場所へ移行する。これに対し、メモリ バスがデータを取り出すより速<cpuがデータを受信できる場合には、cPU は川に新たなデータが到着するのを待つだけである。
キャッシュ制御装置が行はキャッンング可能であると知ると、直ちに、キャッノ ユがCRDY#信号を受信するときにこの行をSRAM22に書込むべきである ことを指示するために、キャッシュ制御装置はMAWEA#信号をキャッシュメ モリ17へ発行する。CRDYttは図7のクロックlOで発行される。その後 、次のサイクルで行を書込むのである。書込みは次のサイクル(すなわち、クロ ック11)の段階2 (PH2)で始まり、続くサイクル(すなわち、クロック 12)の段階+ (PH1)を経て続く。次のクロックでCPUがADS#を発 行すると、これに対する応答は1クロツク分遅延し、その間、アレイ書込みを実 行しつつアレイは占有される。行がキャッシング不可能であったならば、MAW EA#が発行されないという点を除いて、サイクルは同じになるであろう。メモ リ読取りの終了時にCRDY#信号は依然として発行されるが、アレイ書込みは 実行されない。
キャッシュ制御装置の行サイズと、cpuの行サイズとの比は1,2又は4であ れば良い。メモリ読取りを開始させた読取りは、わずかIの長さである。これは 、多数のサイクルに対して、サイクルはメモリバスで完了する前にCPUバスで 終了することを意味している。たとえば、クロック9では、キャッシュ17はC PUサイクルの終了を検出する。CPUバッファは切賛わってアレイに戻り、こ の時点でメモクセクシ1ンから遮断される。その後に続いて、(再度の読取りミ スの場合を除いて)他の何らかのCPU読取りサイクル又はCPU書込みサイク ルを実行できる。
図8は、読取りミス連続を示す。正規のメモリ読取りサイクルにおいては、CP Uが要求するデータをまず戻す。このデータをCPUへ送信した後、CPUは他 のサイクルをランさせることができる。読取りミス連続とは、次のサイクルが先 の読取りと同じ行に対してのものであり且つメモリ読取りはSRAMアレイに対 して完了していない状況を指す。この状況では、この読取りに関わる第1のBR DYttは、メモリバス読取りデータをSRAMアレイに書込み終わるまで遅延 される。
当初、読取りミス波形は先と同様に進む(図8を参照)。ところが、クロック6 では、別のADS#が発行され、キャッシュ制御装置はこれが取り出し中の行に 対してであることを検出する。CRDY#に続くクロックでは、メモリバス読取 りに関わるデータをSRAMアレイに書込む。この事象に続くクロックにおいて は、データをCPUバッファに読込む。次に、サイクルは読取りヒツトの場合と 全く同様に進む。
先に論じた通り、ライトバックはキャッシュから外部メモリに戻るデータの転送 である。本発明はWBTYP=l及びWBTYP=Oという2N類のライトバッ クを実行する。WBTYP=1はスヌーズヒットの場合に使用され、ライトバッ クを最高の優先順位をもつメモリバスサイクルにする。WBTYP=Oは、1つ の行が置き換え中であるとき又はキャッノユがフラッシュされている場合に使用 される。キャッシュ制御装置は、スヌーズヒットを受信すると、変更データをス ヌーズバッファ45を介してメモリバスに導入することをキャッシュメモリに命 令する。得られる事象のシーケンスを図9のタイミング図に示す。
クロック1の間、cpu読取りサイクルはランしており、キャッシュ制御装置は WBWE#及びWBTYP=Iを発行する。WBA=1であれば、これはSRA Mアレイに対するスヌーズヒットを指示し、データはスヌーズバッファ45にロ ードされる。(WBA=Oはライトバックバッファへのヒツトを指示する。)ク ロ、り3の半ばで、キャッノユは入力ピンと、WAY入力端子とのアドレスを利 用して、アレイからスヌーズバッファへデータを読込む。SRAMアレイに対す るスヌーズアクセスは、WBWE#が活動状態になるのに続き、クロックの半ば で始まる。これは次のクロックの半ばで終了する。アドレスとWAY入力は、こ の動作が完了するまで有効なままでなければならない。その結果、構成とは関係 なく、64ビツトがスヌーズバッフ1に導入される。クロック3の終了時に、こ の行に関わるバッファは一杯とマークされ、最高の優先順位をもつメモリバスサ イクルになる。CPUl0の一部キャッシュへのライトバックの場合、変更デー タをスヌーブバブファ45で併合する必要があるかもしれない。図示する通り、 これはクロック5.6.7及び8で起こっている。信号HI TM#はCPUバ スサイクルをライトバックとして識別するために使用される。
尚、WBWE#が活動状態であるとサンプリングされたとき、WBTYPはハイ であって、これがスヌーズであることを指示する。メモリバスサイクルが始まる と、ライトバックはそこで最高の優先順をもつサイクルになる。ライトバックは 、通知書込み又はメモリ読取りの前に起こる。クロックlで、WBAがローであ れば、これはライトバックバッフTに対するスヌーズヒットを指示する。このよ うな状況の下では、A4アドレスを使用して、ライトバッファヒツトを確定する 。そこで、このパンファはメモリバスへ転送されるべき次のデータとしてマーク される。
メモリ読取りに関わる新たな行が変更データを有しているキャッシュ記憶場所へ 導かれたときには、図10に示すように置き換えを実行しなければならない。
旧データをライトバックバッファへ、新データをSRAMアレイに導入すること になる。新たなデータをできる限り迅速にCPUへ送信するために、メモリ読取 りはライトバックの前に実行される。キャッノユのフラッシュを実行したならば ライトバックバッフ1も採用される(再び、WBTYP=0)。
図10を参照すると、クロック周期lの間にメモリ読取りはランしている。新た なデータがメモリサイクルバッファの一方にロードされ、CPUバスへ送信され ている間に、旧データはライドパ1クバツフア46に導入される。セクタごとに 2本の行を使用しており、それらが共に変更されている場合、双方がライトバッ クバッファに導入される。これには、図示するように、クロック周期1及び2の 間にWBWE#が活動状態である状態で2クロツクが必要である。2つのクロッ クは連続していな(とも良い。A5を除いて、ライトバックのアドレスソースは 置き換え周期を発生させた充填に対してメモリサイクルアドレスラッチである。
クロック1の間、WBAはローであって、読取りのためにA5=0を使用すべき であることを指示している。クロック2では、WBAはハイであって、A5=1 を使用すべきであることを指示している。ロードが完了するたびに、行ごとのラ イドパ1クバ1)Tは一杯とマークされる。メモリ読取りが始まったとき、使用 するWAYはラッチされる。メモリ読取りに際してMAWEA#が発行されなけ れば、ライトバックは取り消され、ライトバックバッファは空とマークされる。
同様に、CPUl0の一部キャフノユへのライトバックでは、クロック7〜lO で起こるものと図示されているように、変更データをライトバックバッフ146 で併合する必要があるかもしれない。
次に図11を参照すると、メモリバス書込みに関わるタイミング図が示されてい る。メモリに対する書込みをメモリサイクルバッファで通知するが、又は通知せ ずにランすることが可能である。CRDYttを受信する前にCPU書込みサイ クルを終了させながらBLAST#及びBRDY#を受信した場合には、メモリ バッファは閉じ、書込みは通知される。BLAST#及びBRDY#の前に、又 はそれらと同時にCRDY#が入力した場合、書込みは通知されなかった。
書込みが始まったときにメモリバスが利用可能である場合、キャッシュはトラン シーバとして動作する。すなわち、アレイに対して起こりうる書込みに備えてC PUバスからのデータはメモリバッファ(すなわち、バッフy40及び41)を 介してメモリバスに直接に入ると共に、CPUバッファにも入る。クロック周期 2の間、キャフンユ制御装置はMcYc#サイクルを発行して、これがメモリバ スに関連するサイクルであることを指示する。このデータがアレイにも書込まれ ると仮定されれば、WRARR#も発行される。クロック周期6でCRDY#信 号を受信した場合、これはBLAST#より前であるので、この書込みは通知さ れなかったことになる。クロックloまでCRDY#が入力しなければ、クロッ ク7の終了時にBLAST#及びBRDY#が活動状態であったときに書込みは 通知されていたのである。
図12は、割当てを伴なうライトスルーに関わるタイミング図を示す。書込みミ スがあるたびに、キャッシュ制御装置はこの記憶場所に関してキャッシュの新た な行を割当てることができる。これを実行するために、キャブシェ制御装置は現 在書込みを終7L、メモリ読取りを開始する。MCYC#が発行された後しばら くして、しかも、CRDY#の前に又はそれと一致して行を割当てるべきである 場合には、MAWEA#を発行する。これで、書込みに使用されたメモリバッフ Tは割当てに採用すべきであるとマークされる。その後、割当ては図7に関連し て論じたメモリ読取りと同様に進行する。
図13は、刻時メモリバースト読取りサイクルを示す。刻時メモリバスを使用ス ルトキ、MBRDY#、MSLE#、MZBT#、MEOC#、MFRZ#及び MDATAO7は全てMCLKの立ち上がり端で峠ンプリングされる。MDOE #はクロックに対し非同期的である。クロック周期藍では、MDOE#はハイで あり、それにより、出力を3状態に保持する。クロック2の終わりで、MsEL #はローと検出される。これは、メモリインタフェースバッファが第1のデータ を受け入れ可能になる時点である。MBRDYttがMCLKによりローとサン プリングされるたびに、ラッチの1スライスは閉じ、バーストカウンタは増分す る。通常、読取りはCPUが要求するバースト記憶場所で始まる。MS E L #が非活動状態であった(ハイとサンプリングされた)最後のMCLKで、MZ BT#が活動状態であれば(ローとサンプリングされれば)、CPUが要求する 記憶場所とは関係なく、サイクルはバースト記憶場所0で始まる。
キャッシュメモリがMEOC#を受信するまで、サイクルは継続する。この信号 は現在メモリバスサイクルを非同期的に終了させ、キャッシュは次のメモリバス サイクルに切り替わる。実行するのを待っている別のメモリバス読取りがあれば 、メモリバス読取りはMEOC#の後の次のクロックで開始する。
図14〜図37は、メモリバスにおける刻時条件とストローブ条件の双方に関わ る付加的なタイミング関係を示す。図示する様々なサイクルに関わる本発明の動 作は、以下の説明及び付録に示されている信号の解説と関連して考察したとき、 当業者により理解されるであろう。
付 録 この付録は本発明の現時点で好ましい実施例に従って各々のピンの特定の機能を 定義している。
CLK この信号はキャフノユメモリの基本タイミングを与える。その周波数は メモリ17の内部動作周波数である。この信号はCPUクロックに接続する。
RESET RESETビンはキャッシュの内部状態をリセットするために使用 される。RESETは内部メモリバス追跡論理及び入出力構成をリセットする。
WAY WAYビンは正規の動作中に使用すべき正しいWAYを指示するために 使用される。CPU書込みサイクル、行充填及びライトバックバッファロードの 間には、WAYはアクセスすべき方向を指示するために使用される。CPU読取 り中にWRARR#が活動状態であるとき、MRUビットはWAYビンの値に書 込まれる。
WRARR#、MCYC#又はWBWE#が活動状態であるときWAYはサンプ リングされる。
WRARR# このピンはCPUバスセクシeンからのアレイへの書込みを制御 するために使用される。CPU読取りサイクルにおいて活動状態(LOW)であ るとき、MRUビットをWAYビンにより指示される値に書込むべきであること を指示する。CPU書込みサイクルで活動状態であるときには、CPUバッフ1 をBLAST#。
BRDYx#に続くクロックにおいて指示されるWAYに書込むべきであること を指示する。
MAWEA# メモリ読取り中に活動状態(LOW)であるとき、キャッシュは メモリバッファ(たとえば、バッフy30又は31)に含まれている行を活動状 態のCRDY#に続くクロックにおいてSRAMアレイに書込むべきであること を指示する。ライトスルー中に活動状態であるときには、キャッシュが書込みと 同じアドレスで割当てを開始すべきであることを指示する。MAWEA#はAD S#からCRDY#ヘサンプリングされる。
BUS# このビンは読取り動作中のCPU MUX/バッファデータの選択を 制御する。このピンがLOWとサンプリングされたとき、キャッシュはcpua 取りデータがアレイではなく、メモリバスから来るように内部MUXを設定する 。この内部MUXは、BRDY#までこの状態にとどまる。
MCYC# このビンは、現在cPUサイクルがメモリバッファ4o及び41を 使用することをキャッシュに通知するために使用される。現在サイクルが読取り であり且つMCYC#が活動状態(LOW)になった場合、サイクルはメモリバ ス読取りになる。現在cPUサイクルが書込みであれば、活動状態のMCYC# はこれがメモリ書込みサイクルであることを指示する。CRDYが受信される前 にCPU書込みサイクルが終了した場合、メモリバッファは一杯であるとマーク され、CRDY#がメモリバスサイクルを終了させるまで書込みを通知する。W AYをサンプリングし、MCYC#が活動状態であるクロックでラッチする。
WBWE# ライトバックバッファ28及びスヌープバッファ29をロードする ために、ライトバック書込みイネーブルピンは、WBAピン及びWBTYPピン と共に使用される。このビンが活動状態(LOW)であるとサンプリングされた とき、キャブンユ13は適正なライトバックバッファ又はスヌープパッフ1にア ドレス指定されり行ヲロートする。WBWE#が活動状態になった後のクロック でWAYをサンプリングする。RESET中には、このピンはキャッシュ制御装 置行と020行との比を指示するために使用される。
WBA ライトバックアドレスビンは、どの行をライトバックバッファ46に書 込むべきかを指示するために使用される。このビンはWBWE#が活動状態であ るときに限ってサンプリングされる。HrOHであるとき、WBAはA5=1に よりアドレス指定される行がロードされることを意味する。LOWであるときに は、WBAはA5:0によってアドレス指定される行がロードされることを意味 する。RESET中に5EC2#ビンがLOWであれば、これはセクタごとに2 つの行があることを指示する。
CRDY# 活動状態(LOW)であるとき、このビンはメモリバスサイクルの 終了を指示する。
WBTYP HIGHであるとき、ライトバックタイプビンは、ライトバックが スヌーズであることを指示する。LOWであるとき、これはライトバックが置き 換え又は明示(フラッシュ又は同期)ライトバックであることを指示する。この ビンは、WBWE#が活動状態であるときにサンプリングされる。RESET中 、このビンはキャッシュ制御装置行とCPU行との比を指示するために使用され る。
AO−Al1 これらのビンはアドレス情報をキャッシュ17に提供するために 使用される。これらの信号はCPUアドレスに接続する。
CDATAO〜CDATA7 それらのビンは8つのCPUデータビンである。
2xCPUバス慣成の場合、ビンCDATAO及びCDATAIのみを使用する 。4xCPUバス構成の場合には、5CDATAO〜CDATA3を使用する。
パリティ構成では、CDATA4〜CDATA7をビットイネーブル(それぞれ 、BTEO#〜BTE3#)として使用する。ビットイネーブルは、装置全体で はなり、単一のビットを制御するという点を除いて、以下のBE#と同様に動作 する。
BE# バイトイネーブル入力は、キャッシュがCPUデータバスのどのバイト に接続しているかに従ってキャッシュがCPUで書込みサイクルに関与すべきか 否かを判定するために使用される。
W/B# 書込み/読取りビンは、CPUバスで書込みサイクルが実行されて℃ )るか又は読取りサイクルが実行されているかを指示する。HIGHであるとき は書込みサイクルを指示し、LOWであるときには読取りサイクルを指示する。
ADStt このビンはCPUバスサイクルの開始を指示する。この信号はCP Uアドレスストローブに接続する。
BRDY#、BRDYC# これらのビンは、1つのCPUバスサイクルの1つ の転送部分の完了を指示するために使用される。いずれかのビンが活動状態(L OW)であれば、そのビンは転送の完了を指示する。BRDY#はメモリバス制 御装@11により駆動される。BRDYC2tはキャッシュ制御装置112によ り駆動される。
BLAST# このビンはBRDY#ビン及びBRDYC#ビン及びBRDYC #ビンに関わる修飾子である。活動状態(LOW)であるとき、このビンはBR DYxttがCPUバスサイクルの最終転送であることを指示する。
MCLK 刻時メモリバスモードでは、このビンはメモリバスクロックを発生す る。刻時モードにおいては、MCLKの立ち上がり端でその他のメモリバス信号 と、メモリバスデータとをサンプリングする。刻時メモリバス書込みでは、デー タはMCLK (又は構成によってはMOCLK)から駆動される。ストローブ メモリバスそ一ドにおいては、このビンは人力データストローブであり、トグル ごとにデータがラッチされることになる。
MOCLK RESETが不作動状態になった後にこのクロックビンで立ち上が り端が検出された場合、このクロックビンの立ち上がり端でデータが出力される 。MOCLKはMCLKの遅延パーラミンである。データ書込みのみがMCLK により実行される。MOCLKに対してMDATAの最小出力時間を増加させる ためにこれを使用しても良い。このビンは、メモリクロックスキューによって発 生する入力保持時間の問題を克服するために必要であろう。ストローブバスモー ドでは、このビンはデータ出力ストローブである。このビンのトグルごとに新た なデータが出力される。
MZBT# 活動状fi (HI GH)であるとき、このビンはCPUが要求 した第1の記憶場所とは無関係にバースト記憶場所Oをもってメモリバスサイク ルを開始すべきであることを指示する。このビンは、メモリバスについて使用さ れる入出力ビンの数を確定するために使用される。HIGHであるとき、4つの 入出力ビンを使用することを指示する。LOWであるときには、8つの入出力ビ ンを使用することを指示する。この入力とバス比情報はCPUバスに関わる人出 力ピンを確定するために使用される。
MBRDY# このピノは刻時バスモードにおいて転送の終了を指示するために 使用される。活動状態(LOW)であるとき、キャッシュ13がバーストカウン タを増分し、次のデータを出力すべきであるか又は次のデータを受け入れできる 状態に入るべきかのいずれかであることを指示する。LOWであれば、メモリバ スはストローブ動作になる。HIGHであれば、メモリバスは刻時される。
MEOC# このビンはメモリバスサイクルの終了を指示するために使用される 。活動状fi(LOW)であるとき、キャッシュは現在メモリバスサイクルを終 了させ、次のサイクルを開始させる。MEOC#はCLKに対して非同期である 。
MDATAO−MDATA7 これらのビンは8つのメモリデータビンである。
4xメモリバス構成では、MDATAO−MDATA3を使用する。刻時メモリ バスモードにおいては、MBRDY#が活動状態であることを伴なってMCLK の立ち上がり端でこれらのビンはサンプリングされる。MRBDY#が活動状態 であることを伴ってMCLK又はMOCLKの立ち上がり端でこれらのビンで新 たなデータは取り出される。
〜?SEL# このビンは装置選択信号として使用される。このビンが非活動状 !IJ (HI GH)であるとき、メモリバスサイクルに関わるバースト制御 は初期設定される。このビンが活動状態であるとき、バースト制御はMCLK又 はMOCLKをもって進む。刻時メモリバスモードでは、このビンはMCLKの 立ち上がり端と共にサンプリングされる。このビンはCLKに対して非同期であ る。RESETが活動状態であるとき、このビンはメモリバスにおける8回又は 4回の転送に合わせてキャッシュを構成するために使用される。リセット中にこ のビンがHIGHであるとき、それはCACHE行ごとにメモリバスで4回の転 送があることを意味している0 リセット中にこのビンがLOWであるとき、そ れはCACHE行ごとにメモリバスで8回の転送があることを意味している。
MDOE# メモリバス出力イネーブルは、メモリバスへのデータの送り出しを 制御するために使用される。このピノが非活動状態(HI GH)であるとき、 MDATA (0: 7)ビンは3状態となっている。このビンが活動状態(L OW)であるとき、MDATA (0ニア〕ビンは、活動的にデータを送り出し ている。このビンの機能はストローブメモリバス動作、又は刻時メモリバス動作 の場合と同じである。このビンはCLK及びMCLKに対して非同期である。
MFRZtt このビンが活動状Q(HIGH)であるとき、割当てのためのデ ータはその割当てを生じさせた書込みからのデータと併合される。CPU書込み と同一の記憶場所に向かう充填からのビットは蛾視される。MFRZは書込みの MEOC#の間にサンプリングされる。
HI TM# このビンはCPUバスインタフェースにおけるキャッノユー貫性 サイクルを識別するために使用される。HITM#が活動状態のときにADS# が印加されると、キャッシュデータスライスはメモリバスデ−タに応答するのに 先立って、CPUバスデータをスヌーブパッファ、又はライトバックバッファの データと併合する。
BUFF# このビンはスヌーズ動作中のデッドロックの場合に、CPUバスサ イクルを打ち切るために使用される。特定すれば、メモリバスを待機してCPU バスがブロックされ、且つ変更データが−次キャッシュに存在しているスヌーズ をサービスすることを待機してメモリバスがブロックされた場合、BOFF#は スヌーズをサービスできるようにCPUバスサイクルを打ち切るために使用され る。
一\r−−−−−−−−−−−−−−−−−−−1フロントページの続き (72)発明者 ファーレル、ロバート・エルアメリカ合衆国 97229 オ レゴン州・ポートランド・ノースウェスト 186テイエイチ アヴエニュ・4 655

Claims (17)

    【特許請求の範囲】
  1. 1.中央処置装置(CPU)と、CPUバス及びメモリバスを構成するキャッシ ュサブシステムとを含み、前記CPUバスはCPUクロックに対して同期して動 作し、前記サブシステムはキャッシュメモリと、前記サブシステムを前記メモリ バスのプロトコルに適応させるメモリバス制御装置手段と、前記CPUから前記 キャッシュメモリヘのデータアクセスを制御すると共に、前記メモリバスヘのア クセスを、前記バス制御装置手段と協調するキャッシュ制御手段とを具備するマ イクロプロセッサ利用コンピュータシステムにおいて、前記キャッシュメモリは 、 読取り/書込み記憶装置アレイと、 前記CPUバスと前記キャッシュメモリとの間のデータ転送を制御し、また、前 記アレイの1回のアクセスの間に、キャッシュ行1行分のデータが読取られる/ 書込まれるようにデータ転送速度を最適化するCPUバスインタフェース手段と ; メモリバス読取り、ライトスルー、ライトバック及びスヌーブを支援する複数の ラッチを有するメモリバスインタフェース手段と;前記CPUバスインタフェー ス手段を前記メモリバスインタフェース手段に結合して、前記メモリバスから前 記CPUバスヘのデータの転送を前記読取り/書込み記憶装置アレイに対して見 えるようにするデータ経路手段とを具備する集積回路であるコンピュータシステ ム。
  2. 2.前記CPUバスインタフェース手段と前記キャッシュメモリは前記CPUク ロックと同期して動作し、一方、前記メモリバスインタフェース手段と前記メモ リバスとの間のアクティビティは前記CPUクロックに対して非同期に動作する 請求項1記載のコンピュータシステム。
  3. 3.前記データ経路手段を介する前記メモリバスから前記CPUバスヘのデータ の転送は前記CPUクロックに対して非同期に起こる請求項1記載のコンピュー タシステム。
  4. 4.前記複数のラッチは、メモリ読取り/書込み中にデータを記憶する少なくと も1つのメモリサイクルバッファを含む請求項1記載のコンピュータシステム。
  5. 5.前記複数のラッチは、メモリ読取り/書込み中にデータを記憶する1対のメ モリバッファを含み、メモリ読取り動作のために一方のメモリバッファが使用さ れているときに、他方のメモリバッファは次のメモリサイクルのために利用可能 であり、それにより折り返しメモリバスサイクルを許可するように、前記キャッ シュメモリは前記対を交互に使用する請求項1記載のコンピュータシステム。
  6. 6.前記複数のラッチは、置き換え及びフラッシュサイクルのために前記読取り /書込み記憶装置アレイから前記メモリバスへ転送されるデータを記憶するライ トバックバッファをさらに具備する請求項5記載のコンピュータシステム。
  7. 7.前記複数のラッチは、前記記憶装置アレイの変更した行に対するスヌーブヒ ットがあるたびに前記メモリバスから読取られる1行分のデータを記憶するスヌ ーブバッファを含む請求項6記載のコンピュータシステム。
  8. 8.前記読取り/書込み記憶装置アレイは多方向セットアソシエイティブキャッ シュとして編成されている請求項5記載のコンピュータシステム。
  9. 9.前記読取り/書込み記憶装置アレイは、読取りサイクルヒット時にどの方向 をアクセスするかを予測するための最高使用頻度(MRU)ビットを含む請求項 8記載のコンピュータシステム。
  10. 10.前記メモリバッファはそれぞれキャッシュ行1行分の幅である請求項5記 載のコンピュータシステム。
  11. 11.前記CPUバスインクフェース手段はCPU読取り及びCPU書込みに際 してデータを記憶するために利用されるキャッシュ行1行分の幅のCPUバッフ ァと、CPU読取り動作中の正しい方向を選択する方向マルチプレクサとを具備 する請求項8記載のコンピュータシステム。
  12. 12.前記CPUバスインタフェース手段は、CPUバスサイクルを追跡し且つ キャッシュヒットを予想してアレイアクセスを実行する制御論理をさらに具備し 、前記制御論理は、また、バースト転送中に前記CPUバッファ及び前記方向マ ルチプレクサにバーストアドレスを供給する請求項11記載のコンピュータシス テム。
  13. 13.前記メモリバスインタフェース手段は、メモリバス読取りの間に利用すべ き前記対のメモリバッファのうちの適切な一方を確定する論理手段を具備する請 求項12記載のコンピュータシステム。
  14. 14.データは前記読取り/書込み記憶装置アレイから1つのCPUクロック周 期の中でアクセスされる請求項1記載のシステム。
  15. 15.キャッシュヒットの場合、前記制御装置は、データが前記CPUに戻され ているのと同時にヒット/ミス情報を前記読取り/書込み記憶装置アレイに通信 する請求項12記載のコンピュータシステム。
  16. 16.前記読取り/書込み記憶装置アレイの前記MRUビットは、方向予測が正 しく実行されるかを判定する前記制御装置手段の中のMRU情報とロックステッ ブ間係で機能する請求項9記載のコンピュータシステム。
  17. 17.前記制御論理はCPU定義バースト順序又は零ベースバースト順序を動的 に支援する請求項12記載のコンピュータシステム。
JP5500668A 1991-06-04 1992-06-04 非同期データ経路及び同期データ経路を伴なうマイクロプロセッサ利用コンピュータのキャッシュサブシステム Pending JPH06508457A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US710,079 1991-06-04
US07/710,079 US5293603A (en) 1991-06-04 1991-06-04 Cache subsystem for microprocessor based computer system with synchronous and asynchronous data path
PCT/US1992/004744 WO1992022035A1 (en) 1991-06-04 1992-06-04 Cache subsystem for microprocessor based computer with asynchronous and synchronous data path

Publications (1)

Publication Number Publication Date
JPH06508457A true JPH06508457A (ja) 1994-09-22

Family

ID=24852543

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5500668A Pending JPH06508457A (ja) 1991-06-04 1992-06-04 非同期データ経路及び同期データ経路を伴なうマイクロプロセッサ利用コンピュータのキャッシュサブシステム

Country Status (6)

Country Link
US (1) US5293603A (ja)
JP (1) JPH06508457A (ja)
DE (2) DE4291778B4 (ja)
GB (1) GB2272313B (ja)
HK (1) HK66095A (ja)
WO (1) WO1992022035A1 (ja)

Families Citing this family (63)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6446164B1 (en) * 1991-06-27 2002-09-03 Integrated Device Technology, Inc. Test mode accessing of an internal cache memory
US5414827A (en) * 1991-12-19 1995-05-09 Opti, Inc. Automatic cache flush
JP3517417B2 (ja) * 1992-01-28 2004-04-12 株式会社日立製作所 データ転送装置
JP3920931B2 (ja) * 1992-04-17 2007-05-30 サン・マイクロシステムズ・インコーポレイテッド キャッシュされたデータを読出しおよび書込む方法ならびにデータをキャッシングする装置
US5463753A (en) * 1992-10-02 1995-10-31 Compaq Computer Corp. Method and apparatus for reducing non-snoop window of a cache controller by delaying host bus grant signal to the cache controller
US5668971A (en) * 1992-12-01 1997-09-16 Compaq Computer Corporation Posted disk read operations performed by signalling a disk read complete to the system prior to completion of data transfer
US5590307A (en) * 1993-01-05 1996-12-31 Sgs-Thomson Microelectronics, Inc. Dual-port data cache memory
US6311286B1 (en) * 1993-04-30 2001-10-30 Nec Corporation Symmetric multiprocessing system with unified environment and distributed system functions
US5526512A (en) * 1993-09-20 1996-06-11 International Business Machines Corporation Dynamic management of snoop granularity for a coherent asynchronous DMA cache
US6276844B1 (en) * 1993-12-06 2001-08-21 International Business Machines Corporation Clustered, buffered simms and assemblies thereof
US5761476A (en) * 1993-12-30 1998-06-02 Intel Corporation Non-clocked early read for back-to-back scheduling of instructions
JP3490131B2 (ja) * 1994-01-21 2004-01-26 株式会社ルネサステクノロジ データ転送制御方法、データプロセッサ及びデータ処理システム
US5577200A (en) * 1994-02-28 1996-11-19 Intel Corporation Method and apparatus for loading and storing misaligned data on an out-of-order execution computer system
US5603007A (en) * 1994-03-14 1997-02-11 Apple Computer, Inc. Methods and apparatus for controlling back-to-back burst reads in a cache system
US5826052A (en) * 1994-04-29 1998-10-20 Advanced Micro Devices, Inc. Method and apparatus for concurrent access to multiple physical caches
US5905997A (en) * 1994-04-29 1999-05-18 Amd Inc. Set-associative cache memory utilizing a single bank of physical memory
US5692152A (en) * 1994-06-29 1997-11-25 Exponential Technology, Inc. Master-slave cache system with de-coupled data and tag pipelines and loop-back
JPH0830546A (ja) * 1994-07-20 1996-02-02 Nec Niigata Ltd バス制御装置
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
US5835948A (en) * 1994-10-14 1998-11-10 Compaq Computer Corporation Single bank, multiple way cache memory
US5640532A (en) * 1994-10-14 1997-06-17 Compaq Computer Corporation Microprocessor cache memory way prediction based on the way of previous memory read
US5553265A (en) * 1994-10-21 1996-09-03 International Business Machines Corporation Methods and system for merging data during cache checking and write-back cycles for memory reads and writes
TW358907B (en) * 1994-11-22 1999-05-21 Monolithic System Tech Inc A computer system and a method of using a DRAM array as a next level cache memory
JP3576561B2 (ja) * 1994-11-22 2004-10-13 モノリシック・システム・テクノロジー・インコーポレイテッド 第2レベルのキャシュメモリとしてdramアレイを用いる方法及び構成
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
CN1077700C (zh) * 1995-02-17 2002-01-09 曼特亚克公司 可编程调控交插存取存储器管理系统
US5802586A (en) * 1995-02-27 1998-09-01 Motorola, Inc. Cache memory having a read-modify-write operation and simultaneous burst read and write operations and a method therefor
JPH08314794A (ja) * 1995-02-28 1996-11-29 Matsushita Electric Ind Co Ltd 安定記憶装置へのアクセス待ち時間を短縮するための方法およびシステム
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
EP0815513B1 (en) * 1995-03-17 2006-08-16 Intel Corporation Multi-processing cache coherency protocol on a local bus
US5737550A (en) * 1995-03-28 1998-04-07 Advanced Micro Devices, Inc. Cache memory to processor bus interface and method thereof
US5704058A (en) * 1995-04-21 1997-12-30 Derrick; John E. Cache bus snoop protocol for optimized multiprocessor computer system
US6128700A (en) 1995-05-17 2000-10-03 Monolithic System Technology, Inc. System utilizing a DRAM array as a next level cache memory and method for operating same
US5983025A (en) * 1995-06-07 1999-11-09 International Business Machines Corporation Computer system buffers for providing concurrency and avoid deadlock conditions between CPU accesses, local bus accesses, and memory accesses
US5652859A (en) * 1995-08-17 1997-07-29 Institute For The Development Of Emerging Architectures, L.L.C. Method and apparatus for handling snoops in multiprocessor caches having internal buffer queues
US5802560A (en) * 1995-08-30 1998-09-01 Ramton International Corporation Multibus cached memory system
US5692165A (en) * 1995-09-12 1997-11-25 Micron Electronics Inc. Memory controller with low skew control signal
US5758188A (en) * 1995-11-21 1998-05-26 Quantum Corporation Synchronous DMA burst transfer protocol having the peripheral device toggle the strobe signal such that data is latched using both edges of the strobe signal
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
JPH09231130A (ja) * 1996-02-26 1997-09-05 Mitsubishi Electric Corp マイクロコンピュータ
US5765196A (en) * 1996-02-27 1998-06-09 Sun Microsystems, Inc. System and method for servicing copyback requests in a multiprocessor system with a shared memory
US5916311A (en) * 1996-03-27 1999-06-29 Matsushita Electric Industrial Co., Ltd. Bus controller and information processing device providing reduced idle cycle time during synchronization
US5960453A (en) 1996-06-13 1999-09-28 Micron Technology, Inc. Word selection logic to implement an 80 or 96-bit cache SRAM
US5897656A (en) * 1996-09-16 1999-04-27 Corollary, Inc. System and method for maintaining memory coherency in a computer system having multiple system buses
US6049847A (en) * 1996-09-16 2000-04-11 Corollary, Inc. System and method for maintaining memory coherency in a computer system having multiple system buses
US5898895A (en) * 1996-10-10 1999-04-27 Unisys Corporation System and method for controlling data transmission rates between circuits in different clock domains via selectable acknowledge signal timing
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
US5872913A (en) * 1997-03-07 1999-02-16 International Business Machines Corporation System and method for low overhead, high precision performance measurements using state transistions
US5909694A (en) * 1997-06-12 1999-06-01 International Business Machines Corporation Multiway associative external microprocessor cache
US6073190A (en) 1997-07-18 2000-06-06 Micron Electronics, Inc. System for dynamic buffer allocation comprising control logic for controlling a first address buffer and a first data buffer as a matched pair
US6243769B1 (en) 1997-07-18 2001-06-05 Micron Technology, Inc. Dynamic buffer allocation for a computer system
US6081876A (en) * 1997-09-22 2000-06-27 Hewlett-Packard Company Memory error containment in network cache environment via restricted access
US6289419B1 (en) * 1998-03-06 2001-09-11 Sharp Kabushiki Kaisha Consistency control device merging updated memory blocks
KR100285956B1 (ko) 1998-06-30 2001-04-16 윤종용 고속직렬버스에연결된동기식및비동기식장치의제어시스템과제어방법
US6198666B1 (en) 2000-02-29 2001-03-06 International Business Machines Corporation Control input timing-independent dynamic multiplexer circuit
US6477622B1 (en) * 2000-09-26 2002-11-05 Sun Microsystems, Inc. Simplified writeback handling
US9710384B2 (en) * 2008-01-04 2017-07-18 Micron Technology, Inc. Microprocessor architecture having alternative memory access paths
CN101290564B (zh) * 2008-05-26 2010-07-28 华为技术有限公司 数据传输方法、系统及cpu接口控制器
CN101340595B (zh) * 2008-07-21 2011-09-21 华为技术有限公司 一种图像数据回读的方法和装置
US8782348B2 (en) * 2008-09-09 2014-07-15 Via Technologies, Inc. Microprocessor cache line evict array
US10521118B2 (en) * 2016-07-13 2019-12-31 Sandisk Technologies Llc Methods, systems, and computer readable media for write classification and aggregation using host memory buffer (HMB)

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3972023A (en) * 1974-12-30 1976-07-27 International Business Machines Corporation I/O data transfer control system
US4075686A (en) * 1976-12-30 1978-02-21 Honeywell Information Systems Inc. Input/output cache system including bypass capability
US4342084A (en) * 1980-08-11 1982-07-27 International Business Machines Corporation Main storage validation means
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
US4575792A (en) * 1982-03-31 1986-03-11 Honeywell Information Systems Inc. Shared interface apparatus for testing the memory sections of a cache unit
US4564899A (en) * 1982-09-28 1986-01-14 Elxsi I/O Channel bus
US4724518A (en) * 1983-07-29 1988-02-09 Hewlett-Packard Company Odd/even storage in cache memory
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
US5157776A (en) * 1987-12-30 1992-10-20 Zenith Data Systems Corporation High speed memory for microcomputer systems
US4888679A (en) * 1988-01-11 1989-12-19 Digital Equipment Corporation Method and apparatus using a cache and main memory for both vector processing and scalar processing by prefetching cache blocks including vector data elements
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
US5058006A (en) * 1988-06-27 1991-10-15 Digital Equipment Corporation Method and apparatus for filtering invalidate requests
US5097409A (en) * 1988-06-30 1992-03-17 Wang Laboratories, Inc. Multi-processor system with cache memories
EP0375864A3 (en) * 1988-12-29 1991-03-20 International Business Machines Corporation Cache bypass
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
EP0398523A3 (en) * 1989-05-19 1991-08-21 Hitachi, Ltd. A device for data i/o and execution support in digital processors
US5155843A (en) * 1990-06-29 1992-10-13 Digital Equipment Corporation Error transition mode for multi-processor system

Also Published As

Publication number Publication date
GB9321174D0 (en) 1994-03-16
HK66095A (en) 1995-05-12
WO1992022035A1 (en) 1992-12-10
DE4291778T1 (de) 1995-07-20
GB2272313A (en) 1994-05-11
GB2272313B (en) 1994-11-30
US5293603A (en) 1994-03-08
DE4291778B4 (de) 2005-02-10

Similar Documents

Publication Publication Date Title
JPH06508457A (ja) 非同期データ経路及び同期データ経路を伴なうマイクロプロセッサ利用コンピュータのキャッシュサブシステム
JP2686849B2 (ja) 集積回路キャッシュメモリ
KR100349787B1 (ko) 싱글칩마이크로컴퓨터
KR100227278B1 (ko) 캐쉬 제어 유닛
US6047348A (en) System and method for supporting a multiple width memory subsystem
US6973543B1 (en) Partial directory cache for reducing probe traffic in multiprocessor systems
US7398361B2 (en) Combined buffer for snoop, store merging, load miss, and writeback operations
JP3765586B2 (ja) 多重プロセッサコンピューターシステムのアーキテクチャ
US7526626B2 (en) Memory controller configurable to allow bandwidth/latency tradeoff
US5561780A (en) Method and apparatus for combining uncacheable write data into cache-line-sized write buffers
US7120755B2 (en) Transfer of cache lines on-chip between processing cores in a multi-core system
US6836829B2 (en) Peripheral device interface chip cache and data synchronization method
US5793693A (en) Cache memory using unique burst counter circuitry and asynchronous interleaved RAM banks for zero wait state operation
JPH04230551A (ja) 階層集積回路キャッシュメモリ
JPH06318177A (ja) キャッシュ・ミス・ペナルティを減少させる方法、装置及びコンピュータ・システム
TW200417913A (en) Microprocessor including cache memory supporting multiple accesses per cycle
EP1668513B1 (en) Cache bank interface unit
US5649232A (en) Structure and method for multiple-level read buffer supporting optimal throttled read operations by regulating transfer rate
US6836823B2 (en) Bandwidth enhancement for uncached devices
US5895490A (en) Computer system cache performance on write allocation cycles by immediately setting the modified bit true
US6757793B1 (en) Reducing probe traffic in multiprocessor systems using a victim record table
EP0987625A2 (en) Microprocessor with a plurality of functional units and cache levels
Enright et al. POWER4 System Architecture in conjunction with POWER4 Circuit and Physical Design of the POWER4 Microprocessor