JPH0612323A - キャッシュメモリシステム - Google Patents

キャッシュメモリシステム

Info

Publication number
JPH0612323A
JPH0612323A JP5063469A JP6346993A JPH0612323A JP H0612323 A JPH0612323 A JP H0612323A JP 5063469 A JP5063469 A JP 5063469A JP 6346993 A JP6346993 A JP 6346993A JP H0612323 A JPH0612323 A JP H0612323A
Authority
JP
Japan
Prior art keywords
cache
primary
miss
data
line
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
JP5063469A
Other languages
English (en)
Inventor
Kumar Rajendra
ラジェンドラ・クマー
Paul G Emerson
ポール・ジー・エマーソン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
HP Inc
Original Assignee
Hewlett Packard Co
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 Hewlett Packard Co filed Critical Hewlett Packard Co
Publication of JPH0612323A publication Critical patent/JPH0612323A/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/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
    • 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

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)【要約】 【目的】直接マッピング型1次キャッシュと共に集積さ
れた2次キャッシュを伴うキャッシュメモリシステムを
提供することで、直接マッピング型キャッシュ本来の長
所を生かしながら、スラッシングを回避し、キャッシュ
ヒット率を改善する。 【構成】直接マッピング型1次キャッシュ100 に好まし
くは完全連想型2次キャッシュ110 を近接して設ける。
この構成によると両キャッシュのバスインターフェース
ロジック150 が共通となるため、1次キャッシュがミス
で2次キャッシュがヒットのときもデータを1次キャッ
シュに送らずにマイクロプロセッサに送ることができス
ループットの改善ができる。スラッシングも回避でき、
従来セット連想型キャッシュを使っていた際の欠点も防
ぐことができる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、広義には電子キャッシ
ュメモリ回路のアーキテクチャ及びその記憶内容の処理
方法に関するものである。より詳しくは、本発明は、1
次キャッシュ(primary cache)に近接させて2次キャッシ
ュ(secondary cache)を設け、1次キャッシュからの読出
しミスが起こると同時にこの2次キャッシュにアクセス
するようにした超大規模集積(VLSI)回路用のキャッシュ
メモリアーキテクチャ及び命令キャッシュアーキテクチ
ャに関する。
【0002】
【従来の技術】一般に、ランダムアクセスメモリ(RAM)
集積回路(IC)は、高度なマイクロプロセッサより動作速
度がはるかに遅い。マイクロプロセッサの設計者等は、
RAMのアクセスタイムが遅いと、プロセッサのスループ
ット及びプログラムの実行速度の増大に対して大きな障
害になるという認識を持つに至った。例えば、最新の縮
小命令セットコンピュータ(RISC)型マイクロプロセッサ
では、理論上1秒間に200万命令を実行するよう20MHz以
上のクロック速度が使用されることがある。しかしなが
ら、典型的なRAMのサイクルタイム(応答時間)は150ナ
ノ秒である。従って、マイクロプロセッサがRAMから新
しいデータ値または命令を取り出すことが必要な場合、
マイクロプロセッサがRAMの応答を待つ間に多くのマイ
クロプロセッササイクルが浪費されることが起こり得
る。
【0003】この問題を解決するため、マイクロコンピ
ュータやマイクロプロセッサでは、キャッシュメモリを
用いてメモリアクセスタイムを改善することが行われ
る。キャッシュメモリは、高速なキャッシュメモリが低
速なRAMのアクティブ部分のコピーをそっくり記憶する
という点において仮想メモリに類似している。通常、キ
ャッシュメモリは、アクセスタイムが主メモリより4〜2
0倍速くなるようマイクロプロセッサチップ上に配置さ
れる。
【0004】
【発明が解決しようとする課題およびそのための手段】
キャッシュメモリの動作は次のようになっている。マイ
クロプロセッサによってメモリ要求が出されると、その
要求はキャッシュメモリに提示され、キャッシュが応答
することができないと、その要求は主メモリに提示され
る。マイクロプロセッサが、キャッシュ中になく、主メ
モリ中にある項目にアクセスしようとすると、「キャッ
シュミス」が起こる。キャッシュミスに応答して主メモ
リからキャッシュに必要なデータをロードすることによ
って、キャッシュは更新される。次に、それらのデータ
はキャッシュからマイクロプロセッサへ供給される。所
望のデータあるいはデータが入っていないキャッシュ中
のラインは「犠牲」ラインと呼ばれる。
【0005】キャッシュミス時にキャッシュの状態を更
新するために用いることのできる時間は非常に短い。そ
のため、キャッシュは、所要時間内にキャッシュミスを
自動的に処理することができるハードウェアによって制
御される。不都合なことに、従来技術の回路において
は、キャッシュミスは、全て主メモリにアクセスするこ
とによってキャッシュを更新することが必要であり、そ
のためにマイクロプロセッサのスループットが著しく低
くなっていた。従って、本発明の1つの目的は、キャッ
シュミス後に行われる主メモリアクセス数を少くするこ
とによってスループットを改善することにある。
【0006】従来、キャッシュは、大別して直接マッピ
ング型、セット連想型及び完全連想型の3種類の構造の
ものがある。これらの3種類のキャッシュの詳細は、次
の従来技術に関する参考文献に記載されている:De Bla
si著"Computer Architecture",ISBN 0-201-41603-4(Add
ison-Wesley、1990年), 273〜291ページ;Stone著"High
Performance Computer Architecture", ISBN 0-201-51
377-3(Addison-Wesley,第2版, 1990年), 29〜39ペー
ジ;Tabak著"Advanced Microprocessors), ISBN 0-07-0
62807-6(McGraw-Hill, 1991年), 244〜248ページ。これ
らの文献は当業者には周知である。
【0007】これらの3種類のどのキャッシュにおいて
も、入力アドレスは比較ロジックに供給される。通常
は、タグビットと呼ばれるアドレスの部分集合が入力ア
ドレスから抽出され、各キャッシュエントリのタグビッ
トと比較される。これらのタグビットが一致(マッチ)
すれば、対応するデータがキャッシュから抽出される。
直接マッピング型キャッシュの全体的構成及び処理の仕
組を図1に示す。この直接マッピング型キャッシュはキ
ャッシュメモリ10を含み、キャッシュメモリ10は複数の
タグ12及びデータ要素14を有するテーブルとして実現す
ることができる。これらのタグ及びデータはペアとして
アクセスされる。入力アドレス20は、マイクロプロセッ
サからアドレスデコード回路30へ供給され、ここで入力
アドレス20よりタグビットを分離する。タグビットは、
第1の入力42として比較器40に供給される。また、比較
器40は、入力アドレスの下位ビットにより指示されるキ
ャッシュメモリ10の記憶場所からのタグビットを有する
第2の入力44も受け取る。このように、下位の入力アド
レスビットは、キャッシュメモリ中のタグを一つだけ指
示する。比較器40においてこれらのタグビットが互いに
一致すると、比較器は、そのヒット出力60を活性化、つ
まりアサート(assert)し、データ選択回路70にキャッシ
ュメモリからデータ要素14を読み出させる。タグとデー
タ要素はペアで配置されているから、データ選択回路は
一致したタグに対応するデータ要素を受け取る。このよ
うに選択されたデータは、キャッシュメモリからマイク
ロプロセッサへ出力80として供給され、さらに処理され
る。
【0008】第1の入力42と入力アドレスの下位ビット
によって指示されたキャッシュメモリ中の記憶場所のタ
グビットが一致しなかった場合は、比較器40はそのミス
出力50をアサートする。すると、ミス処理(ブロック55
によって表される)がトリガされるが、このミス処理
は、大方の従来技術のデバイスの場合、主メモリへのア
クセスを必要とする。
【0009】一般に、直接マッピング型キャッシュは、
アクセスは最も速いが、所要時間のほとんどをタグビッ
トの比較に費やす。完全連想型キャッシュは、タグビッ
トの比較は速いが、電力消費が大きく、かつより複雑な
回路を必要とする。
【0010】従来技術においては、キャッシュは「スラ
ッシング」を起こし易かった。スラッシングは、マイク
ロプロセッサが所望のデータ項目を探索して、それを見
付けることができず、キャッシュをそのデータ項目によ
って更新し、後でその更新したラインを異なる項目に置
換するという動作を繰り返す場合に起こる。これによ
り、同じデータ項目に関してキャッシュミスを繰り返す
サイクル動作が引き起こされる。
【0011】スラッシングを回避するには、通常大きな
セット連想型キャッシュが用いられる。しかしながら、
この種のキャッシュにはいくつか欠点がある。まず、キ
ャッシュに対する読出しと書込みが、キャッシュタグの
比較が皆終わった後に実行される別のマシンサイクルで
行われ、キャッシュアクセスタイムが大きくなる。ま
た、これによってマシンサイクルタイムが長くなるか、
または遅延サイクルが必要となることにより、マイクロ
プロセッサ性能も低下する。第2には、例えばn-ウェイ
のセット連想型キャッシュの場合、n倍多くのワードを
読み出した後で、タグ比較に基づき所与のワードの選択
を行わなければならないため、キャッシュ中の電力消費
が著しく大きくなる。第3に、キャッシュの動作は、複
数のセンスアンプが同時にトリガされる際に発生する回
路のスイッチングノイズの影響を非常に受け易い。この
傾向は、ワードサイズが32ビット以上の機械、及び複数
のキャッシュポートを介して複数のワードを同時に読み
出すことができるマルチポートキャッシュを有する機械
において特に顕著である。
【0012】従って、本発明の1つの目的は、セット連
想型の構成を用いることなくスラッシングを回避するこ
とのできるキャッシュを提供することにある。
【0013】かつてある研究者によって、直接マッピン
グ型の1次キャッシュのバックアップとして犠牲キャッ
シュまたはミスキャッシュを使用するという考えが提案
された。スラッシングを回避し、ヒット率を改善するた
めの2次キャッシュ(「犠牲/ミスキャッシュ」と呼ば
れる)のアーキテクチャ上の定義は、コンピュータアー
キテクチャに関する第17回年次国際シンポジウムの会報
所載のN.Jouppi著"Improving Direct-Mapped Cache Per
formance by the Addition of a Small Fully-Associat
ive Cache and Prefetch Buffers"(IEEE Computer Soci
ety Press, 1990年5月)の364〜373ページに記載されて
いる。しかしながら、Jouppiは、VLSIにおける2次キャ
ッシュの具体的使用については何ら教示しておらず、ま
たビット線、センスアンプ及びバスインタフェース・ロ
ジックを共用する形での1次キャッシュと2次キャッシュ
の一体化についても何ら教示していない。
【0014】従来、キャッシュメモリは、データ用だけ
ではなく命令キャッシュとしても用いられて来た。従来
技術においては、命令キャッシュ、命令バッファ及びブ
ランチターゲットバッファは、互いに別個のチップに作
り込まれるか、または1つのチップ上の別個のモジュー
ルとして実装されて来た。不都合なことに、これらの従
来技術のやり方では、チップやモジュール同士を相互接
続するのに多数のバス回路が必要である。そのために、
より大きい面積(回路基板スペースまたはシリコンチッ
プの面積)が必要であり、システムコストが増大する。
さらに、より多くのゲートやバッファを通って信号を伝
播させる必要があるため、キャッシュアクセスタイムが
著しく増大する。
【0015】本発明によれば、直接マッピング型1次キ
ャッシュに2次キャッシュを統合して作り込んだ効率的
なキャッシュメモリシステムが得られる。2次キャッシ
ュを用いると、直接マッピング型キャッシュ本来の効率
を保ちつつスラッシングを防止すると共に、ヒット率を
改善することができる。本発明によれば、2次キャッシ
ュは好ましくはVLSIチップ上に作られる単一の構造中に
直接マッピング型キャッシュと共に集積される。2次キ
ャッシュは、直接マッピング型キャッシュ中に埋込ま
れ、直接マッピング型キャッシュと同じビット線、セン
スアンプ及びバスドライバを使用する。また、入力アド
レスタグは、1次キャッシュ及び2次キャッシュ中のタグ
ビットと同時に比較される。比較結果が1次キャッシュ
ではミス、2次キャッシュではヒットになると、次のマ
シンサイクルにおいて2次キャッシュのデータがマイク
ロプロセッサに供給されるので、主メモリアクセスの必
要がない。このように、本発明は、まずデータを直接マ
ッピング型キャッシュへロードするための余分のマシン
サイクルを使用することなしに、2次キャッシュからデ
ータを直接読み出すことが可能である。好ましくは、本
発明は単一のVLSIチップの形で実施される。一実施例に
おいては、2次キャッシュは、1次キャッシュに対する照
会において見つからなかったデータが主メモリからロー
ドされるミスキャッシュを有する。
【0016】他の実施例においては、2次キャッシュは1
次キャッシュの犠牲ラインがロードされる犠牲キャッシ
ュを有する。1次キャッシュの犠牲ラインは、キャッシ
ュミスのデータが主メモリから1次キャッシュにロード
されたときに置き換えられるラインである。
【0017】本発明の他の実施例においては、ブランチ
先の命令をロードするのに主メモリにアクセスする必要
がなく、分岐命令の効率的な処理が可能な2レベル先取
り機構を用いた命令キャッシュが得られる。
【0018】
【実施例】以下の実施例の詳細な説明においては、説明
を明確にするため特定の用語を使用する。しかしなが
ら、本発明は、それらの選択された特定の用語に限定さ
れるものではなく、実質的に同様に作用して実質的に同
様の結果を達成する全ての技術的均等物を包含するもの
である。
【0019】データキャッシュとして構成した本発明の
一実施例のブロック図を図2に示す。この図は、シリコ
ンウェーハまたは半導体チップ上における本発明の構成
要素配置について可能な「平面図」の一例を示す。1次
キャッシュデータメモリ(1次データキャッシュ、1次キ
ャッシュ)100はシステムの中心部をなしている。好ま
しくは、1次データキャッシュ100は、2次元に配列され
た通常のスタティックRAM(SRAM)セルを有する。配列の
一方の軸方向には、各々バスインタフェースロジック15
0に結合された複数のデータビット線112を有し、これら
のデータビット線はマイクロプロセッサのデータバス16
0に結合されている。当技術分野においては周知のよう
に、インタフェースロジック150は、1次キャッシュ100
の内容を検出するためのセンスアンプ、1次キャッシュ1
00のセルに書込み信号を送るための書込みロジック、及
びメモリからデータバス160へ供給される出力データを
緩衝記憶(バッファー)すると共に増幅するバスドライ
バ及びデータバッファを有する。これらのインタフェー
スロジック150の構成要素は当技術分野においては周知
である。
【0020】この1次キャッシュは、直接マッピング型
キャッシュとして形成されており、アドレス116をアド
レスデコードロジック140に供給することによりアクセ
スされる。前に図1を参照して説明したように、アドレ
スデコードロジックは、1次キャッシュ100に下位アドレ
スビットを供給し、かつインタフェースロジック150の
比較器にタグアドレスビット(タグビット)を供給す
る。さらに、図2の実施例においては、1次キャッシュ10
0の上またはこれに近接して作り込まれた2次キャッシュ
110が設けられている。2次キャッシュは、記憶ライン数
が約4〜8ラインの小さな完全連想型バッファとして構成
することが望ましい。もちろん、2次キャッシュ中のラ
イン数は用途に応じて変えることができる。また、2次
キャッシュのメモリセルは、1次キャッシュのセルと同
じ構造にすることが好ましい。2次キャッシュのメモリ
セルには、矢印122により表される複数のマッチ線によ
って完全連想型比較器120、すなわち比較ロジックが接
続されている。比較ロジックは、最初の処理サイクルに
おいて、通常の連想メモリ(CAM)セルを用いて入力仮想
アドレスまたは物理アドレス124を各CAMセルに記憶され
たアドレスと比較する。両者が一致すれば、対応するエ
ントリのマッチ線がアサートされる。次に、直接マッピ
ング型の1次キャッシュ100からキャッシュミスが報告さ
れると、システムは、次のマシンサイクルにおいて2次
キャッシュに結合されたミス入力118をアサートする。
すると、2次キャッシュのマッチ線が2次キャッシュのワ
ード線(図示省略)をドライブする結果、2次キャッシ
ュからデータが出力される。2次キャッシュからの出力
データはビット線112上に出されることによって、直接
マッピング型キャッシュでヒットした場合に使用される
のと同じバスインタフェースロジック150を用いてデー
タバス160へ転送される。
【0021】図3は、図2の回路の構成要素間の論理的接
続関係を示す。図3において、2次キャッシュ110及び1次
キャッシュすなわち直接マッピング型キャッシュ100は1
つのアドレス入力124に結合されている。アドレスデコ
ーダ(図示省略)によってデコードされた後のアドレス
は、3つの論理要素、すなわちタグビット302、ライン番
号304及び変位値306を有する。直接マッピング型キャッ
シュ100にはタグリスト330及び複数のデータライン332
が設けられている。アドレス入力のタグビットは線302A
を介して比較器336へ供給される。ライン番号は線304A
を介してタグリストに結合される。当技術分野において
は周知のように、この構造の直接マッピング型キャッシ
ュでは、ライン番号を与えてタグリストの中から分離し
たタグ(分離タグ)334を選択できる。この分離タグは
比較器に供給され、分離タグとタグビットが一致する
と、比較器はセレクタ338をトリガーして、データライ
ン332の中の1つからデータ項目340を取り出す。データ
項目は、変位値306を選択されたラインの始めからのオ
フセットとして用いることにより選択することができ
る。次に、データ項目は、データ出力線342を介してマ
イクロプロセッサの算術論理演算装置(ALU)またはマイ
クロプロセッサの他の部分に転送される。
【0022】比較によって一致が得られないと、比較器
は線345上にミス信号を発生させる。この信号は、イン
バータ344に入力して、ハイのミス信号線346をドライブ
することができる。また、このミス信号はミスイネーブ
ル回路356をドライブして、マイクロプロセッサに2次キ
ャッシュからデータを読出させる。ミスイネーブル回路
は通常の手段によって2次キャッシュに結合されてい
る。
【0023】2次キャッシュ110へのアクセスは、タグビ
ットを小さなラインの集合の全てのタグと同時に比較す
るために完全連想型論理を使用する。図3の実施例にお
いては、n組のタグ(タグ1,タグ2、...、タグn)及びライ
ン(ライン1、ライン2、...、ラインn)が示されている
が、これらのタグとラインの組数は任意である。このよ
うに、2次キャッシュ110は、直接マッピング型キャッシ
ュ100で用いられている2次元配列ではなく、複数のタ
グ、ライン及び相互接続回路として形成されている。当
技術分野においては周知のように、タグとラインの組数
を増やすと、処理時間が短くなると共に電力消費が増大
する。また、参照番号は、1つのタグ308と1本のライン3
10にしか示されていないが、他の組についてもこれらと
同じ部品が各々タグ及びラインを形成している。
【0024】2次キャッシュをアドレス指定するため
に、タグビットは線302Bを介して比較器316へ結合さ
れ、同様に他の全てのタグとラインの組に対応する各比
較器にも結合されている。当技術分野においては周知の
ように、完全連想型システムでは、全ての比較器がタグ
ビットを各々の比較器に対応するタグと同時に比較す
る。すなわち、比較器316は、他の比較器が比較を行な
うのと同時に、タグ308をタグビットと比較する。ヒッ
トが起こると(かつミスイネーブル回路356が直接マッ
ピング型キャッシュによるミス後に2次キャッシュをイ
ネーブルしていれば)、比較器はライン310からデータ
要素314を抽出するセレクタ318をトリガーする。この場
合、いくつかの比較器が同時に比較を実行しているか
ら、図3のいずれかの比較器がヒットを報告し、出力デ
ータ要素を供給することができる。データ要素は、変位
値をラインの始めからのオフセット312として用いるこ
とにより選択することができる。データ要素は、セレク
タによりデータ出力線320へ供給され、マイクロプロセ
ッサによって利用される。
【0025】ミスが発生すると、比較器は、他のミス線
と共に3入力NORゲート322に結合されたミス線348をアサ
ートする。全てのミス線がアサートされると、NORゲー
ト322はミス出力線324をアサートし、マイクロプロセッ
サに2次キャッシュでタグの一致がなかったということ
を知らせる。
【0026】直接マッピング型キャッシュからのミス信
号及び2次キャッシュからのミス信号は1次ミス出力線35
4及び2次ミス出力線350を介してANDゲート352に結合さ
れる。このように、両方のミス出力線350、354が共にア
サートされると、ANDゲートは、大域ミス出力をアサー
トして、直接マッピング型キャッシュ及び2次キャッシ
ュの両方でミスが発生したので、主メモリにアクセスす
ることが必要であるということをCPUに指示する。
【0027】動作について説明すれば、このアーキテク
チャによれば、以下のステップによってデータまたは命
令を最大2マシンサイクルで直接マッピング型キャッシ
ュまたは2次キャッシュのどちらかから取り出すことが
可能である。所与のタグ記憶場所を照会するには、最初
のマシンサイクルにおいて直接マッピング型キャッシュ
のタグリスト330がアクセスされて、直接マッピング型
キャッシュにヒットがあるかどうかが確認される。物理
タグを有するキャッシュの場合は、タグラインバッファ
もこのステップでアクセスされる。ヒットが起こると、
データは、上記と同じ最初のマシンサイクルにおいて直
接マッピング型キャッシュメモリから読み出される。
【0028】ミスが発生した場合は、2次キャッシュで
ヒットしていれば次のマシンサイクルにおいて2次キャ
ッシュが読取られる。本発明によれば、2次キャッシュ
のキャッシュタグを比較するための連想比較動作が、最
初のマシンサイクルにおいて直接マッピング型キャッシ
ュにアクセスするために用いられる直接マッピング型比
較と同時に行われる。比較器316は比較器336と同時にア
クティブ状態を取る。このように、直接マッピング型キ
ャッシュと2次キャッシュが最初のマシンサイクルで同
時にチェックされ、直接マッピング型キャッシュでヒッ
トが起こると、その同じ最初のマシンサイクルでデータ
が読み出される。最初のマシンサイクル中に直接マッピ
ング型キャッシュでミスが起こり、2次キャッシュでヒ
ットが起こると、次のサイクルにおいて2次キャッシュ
からデータが読み出される。2次キャッシュの読出し動
作は、直接マッピング型キャッシュと同じビット線、セ
ンスアンプ及びデータバスを使用する。
【0029】2次キャッシュは犠牲キャッシュまたはミ
スキャッシュを有することができる。犠牲キャッシュと
ミスキャッシュの違いは、キャッシュの更新の仕方にあ
る。
【0030】犠牲キャッシュを用いる場合は、直接マッ
ピング型キャッシュのミスによって置換されるべき直接
マッピング型キャッシュ中の犠牲ラインが犠牲キャッシ
ュにコピーされ、このラインは直接マッピング型キャッ
シュ中では主メモリからの新しいラインにより置換され
る。
【0031】ミスキャッシュにおいては、あるミスに対
して主メモリから取り出されたラインがミスキャッシュ
と直接マッピング型キャッシュに同時に記憶される。
【0032】2次キャッシュで所与のラインがヒットす
ると、そのラインは2次キャッシュから直接読み出す
か、または直接マッピング型キャッシュにロードした後
読み出すことができる。最初の場合は、2次キャッシュ
中でヒットした各キャッシュアクセスについてデータを
読み出すのに2マシンサイクルが必要である。しかしな
がら、従来技術のシステムと異り、2次キャッシュから
直接マッピング型キャッシュへキャッシュラインを転送
するための余分のマシンサイクルを必要とすることはな
い。
【0033】後の場合においては、例えばカウンタのよ
うな寿命追跡または使用追跡機構を用いて2次キャッシ
ュ中のあるラインのアクセス数を監視することができ
る。そして、この数があるプリセット値を超えたなら
ば、そのラインを将来の直接マッピング型キャッシュの
アクセスに備えて、直接マッピング型キャッシュにロー
ドすればよい。この場合、直接マッピング型キャッシュ
へ転送されたラインは1サイクルだけでアクセスされる
が、このラインを転送するのに2サイクルのオーバーヘ
ッドが必要である。そのうちの1サイクルは2次キャッシ
ュからこのラインを読み出すためのサイクルであり、も
う1サイクルは逆にそのラインを直接マッピング型キャ
ッシュ書込むためのサイクルである。しかしながら、こ
のラインが2次キャッシュから読み出されたならば、ラ
インが使用可能になると同時にCPUへ送ることができ
る。
【0034】本発明は、命令キャッシュにもデータキャ
ッシュもに使用可能であり、また命令及びデータを共に
保持する統合型キャッシュにも使用することができる。
また、本発明はミスキャッシュとしても犠牲キャッシュ
としても用いることができる。これらのキャッシュの唯
一の相違点はキャッシュ中でラインを置換する仕方にあ
る。さらに、本発明はマルチポートキャッシュにも使用
することができる。
【0035】図4及び5には命令キャッシュ(「I-キャッ
シュ」)の実施例が示されている。この実施例は、1つ
のVLSI集積回路チップ上に命令バッファ(IB)、ブランチ
ターゲットバッファ(BTB)及び犠牲キャッシュ(VC)を一
体に作り込んだ効率的なI-キャッシュである。このハー
ドウェアは、命令がIBまたはBTBからマイクロプロセッ
サへ出されている間にIBまたはBTBにI-キャッシュから
命令を書込むことができる先取り処理が可能である。
【0036】もう一つの熟慮された実施例においては、
図4及び5のI-キャッシュは、第2レベルのキャッシュを
有するシステムにおいて第1レベルのキャッシュとして
使用することができる。このような実施例においては、
図示ハードウェアは、命令がIBまたはBTBから出され続
けている間にレベル2からレベル1への先取りが可能であ
る。BTBを使用すると、分岐命令の処理時の遅延を回避
することができる。これらを同じI-キャッシュ構造に一
体に作り込むと、IB/BTB分離構造の場合と比べて必要表
面積が少なくて済み、サイクルタイムが速くなる。この
構造は、埋込み型2次キャッシュとして実現することに
より、面積の増加を最小限に抑えることができる。
【0037】図4は、本発明のI-キャッシュとしての実
施例の全体的アーキテクチャを示す。この実施例には、
別個の2つの命令バス、すなわち読出し命令バス294及び
書込み命令バス210(各々「読出しI-バス」及び「書込
みI-バス」とも呼ばれる)が設けられている。読出し機
能と書込み機能を分離すると、I-キャッシュがレベル2
のキャッシュまたは主メモリから書込みI-バスへ命令を
先取りするのと同時に、IBまたはBTBから読出しI-バス
へ命令を出すことが可能になる。
【0038】書込みI-バスと読出しI-バスとの間に配置
された回路は、図2及び3のデータキャッシュの実施例と
構造的にほぼ同じである。入力アドレス224は、第1のア
ドレスデコーダ240を介して1次命令キャッシュ(1次I-
キャッシュ)200に結合され、この1次命令キャッシュは
タグラインとデータラインのペアからなる2次元配列と
して構成することができる。2次I-キャッシュ230は、1
次I-キャッシュと結合されると共に、書込みI-バスを介
して比較ロジック220と結合されている。比較ロジック
は複数のマッチ線225によって2次I-キャッシュ中の記憶
セルと接続されている。1次I-キャッシュと2次I-キャッ
シュは、同じセンスアンプ250、ドライバ290及び分散マ
ルチプレクサ(MUX)292を共用することが望ましい。この
ように、前述のデータキャッシュ処理と同様にして、こ
れらの構成要素を共用すると、1次I-キャッシュと2次I-
キャッシュの間のキャッシュ比較及び命令転送を1マシ
ンサイクルで行うことが可能である。
【0039】センスアンプ250とバスドライバ290の間に
は2つの命令バッファ270及び280が構成されている。ブ
ランチターゲットバッファ(BTB)270は、以下に詳細に説
明するように、分岐後のターゲット命令のための記憶空
間を与える。従って、BTBは、分岐命令が実行された時
直ちに将来の命令を実行する準備ができているように、
マイクロプロセッサが現命令より論理的に先にある命令
を記憶できるようにする。命令バッファ(I-バッファま
たはIB)280は、他の将来の命令のためのメモ帳的な空
間として用いられる。これらのIB及びBTBは、いずれも
第2のアドレスデコーダ260を介してアドレス224に結合
される。これらの各構成要素内部構造は当技術分野にお
いては周知である。
【0040】本発明のもう一つの実施例においては、比
較ロジック及び2次I-キャッシュを使用しない。そのよ
うな実施例の動作では、IBが、一杯に書込まれるまでI-
キャッシュから間断なく命令を先取りする。これによっ
て、IB中の命令は、マイクロプロセッサが次の命令を要
求した時直ちに命令読出しバスへ転送する準備ができ
る。好ましくは、IB自体は少なくとも2つの命令を記憶
し、また先入れ先出し(FIFO)待ち行列として形成され
る。IBは、待ち行列の先頭から命令を読出しバスへ命令
を出す。
【0041】IBはまだマイクロプロセッサに出されてい
ない将来の命令をチェックする。そして、IBがまだこれ
から実行しなければならない分岐命令を見つけると、外
部のキャッシュコントローラ(図示省略)が命令の先取
りを、その分岐に従った命令にアクセスするように切り
替える。その後、これらの命令はBTBにロードされる。
【0042】BTBもFIFO待ち行列の形で実現され、分岐
後にターゲット命令を記憶する。分岐命令が実行され、
実際に分岐が行われると、その後の命令はBTBから命令
読出しバスへ出される。BTBが命令を出している間、BTB
が分岐命令を見つけたならば、IBが命令を先取りするこ
とができる。このように、IBとBTBは各分岐毎に互いに
役割を切り換えることができる。
【0043】好ましくは、I-キャッシュからIB及びBTB
へフェッチされるワードのサイズは、1命令長より長く
する。これによって、いくつかの命令をI-キャッシュか
らIBまたはBTBへ同時に先取りすることができる。
【0044】他の実施例においては、外部のキャッシュ
コントローラに、第2レベルの外部I-キャッシュから1次
I-キャッシュへ命令を先取りさせるための手段が設けら
れる。この第2レベルの外部I-キャッシュは、以下に述
べる2次I-キャッシュとは異なる。好ましくは、第2レベ
ルの外部I-キャッシュは、1次I-キャッシュと同じ構造
で、適切なカスケードロジックを用いて1次I-キャッシ
ュに結合する。また、好ましくは、1次I-キャッシュか
らIBまたはBTBへの先取りの間に1次I-キャッシュミスが
発生した場合、キャッシュコントローラが第2レベルのI
-キャッシュから1次キャッシュへ命令を先取りすること
ができるようにする。このように、図4の実施例は、第2
レベルのI-キャッシュから第1レベルのキャッシュへ先
取りを行わせることができる2レベルI-キャッシュ構造
になっている。この構造は、ミスを起こした命令が実際
に待ち行列の先頭に来るまでIBまたはBTBが命令を出す
ことができるから、第2レベルのI-キャッシュアクセス
中に生じる遅延を隠すのを助ける。
【0045】キャッシュの下部に図示されている分散マ
ルチプレクサは、複数命令幅IBまたはBTBから一度に1つ
ずつ命令を出す。その結果、キャッシュシステムから出
される命令は必ずマイクロプロセッサの命令長と一致す
る。
【0046】本発明の一実施例においては、2次キャッ
シュはI-キャッシュ構造中に埋込まれた犠牲キャッシュ
またはミスキャッシュを有する。好ましくは、2次キャ
ッシュは前に図2及び3により説明したように小さな完全
連想型バッファを有する。2次キャッシュの比較ロジッ
ク220は、2次キャッシュメモリアレイの上に配置するこ
とができる。比較ロジックからのマッチ線225は、2次キ
ャッシュメモリアレイのワード線をドライブするよう接
続されている。2次キャッシュメモリアレイセル(図示
省略)はI-キャッシュセルと同じであることが望まし
い。I-キャッシュセルは、好ましくは4トランジスタま
たは6トランジスタSRAMセルとする。
【0047】I-キャッシュの詳細を図5に示す。当業者
にとっては明らかなように、図5は、完全なI-キャッシ
ュシステムの並列な全く同じ構造に構成された複数のス
ライスの中の1枚を示したものである。例えば、図5に
は、上から下まで、各タイプのデバイスが1つずつしか
例示されていない。しかしながら、シリコンチップに実
装される完全なI-キャッシュは、図5に例示するスライ
スと同じスライスを複数並列に有している。
【0048】I-キャッシュスライスの左半部には、書込
み命令バス、書込みドライバ、プリチャージロジック、
連想比較ロジック、犠牲キャッシュセル、I-キャッシュ
セル、及びセンスアンプが形成されている。また、右半
部には、命令バッファセル、ブランチターゲットバッフ
ァセル、読出しドライバ、分散マルチプレクサ、及び読
出し命令バスが形成されている。
【0049】書込みI-バス210、図5には矢印として示さ
れており、この図に示すスライスから隣の同じスライス
へ延びている。書込みI-バス210は、複数の書込みドラ
イバ213を有する書込みドライバ部212に接続されてい
る。書込みドライバ213の出力は、2本の並列ビット線、
すなわちビット線214及び否定ビット線216よりなる。当
業者であれば、ビット線214と否定ビット線216が互いに
反対の論理レベルで動作するということは容易に理解で
きよう。これらのビット線は、プリチャージロジック部
218を介して1次/2次キャッシュアレイに結合される。
当技術分野においては周知のように、これらの部分は、
書込みI-バス上の命令を1次I-キャッシュ及び/または2
次I-キャッシュに記憶させる。
【0050】比較ロジック220には、2次キャッシュ230
の典型的な2次キャッシュ記憶セル232が直接結合されて
いる。この記憶セルは、2次キャッシュワード線234上に
データ出力を送り出す。図示のように、ワード線234
は、バスと同様に、どの記憶セルからでも命令ワードを
転送することができるよう、隣の記憶セルに接続されて
いる。
【0051】上記と同じビット線及び否定ビット線に
は、複数の1次I-キャッシュセル206、208も接続されて
いる。これらのI-キャッシュセル206、208はワード線20
2、204に各々出力を供給する。図5のI‐キャッシュの
左半部の最下部において、ビット線214、216は、書込み
データ線252に出力データを供給するセンスアンプ(SA)2
50と結合されている。これらの構成要素の内部構造は当
技術分野においては周知である。
【0052】書込みデータ線252は、図5のI-キャッシュ
構造の右半部の最上部にある命令バッファ280と結合さ
れている。図には、各々当技術分野において周知の方法
によりFIFO待ち行列の1つの素子として作り込まれた2つ
の典型的な命令バッファセル280A、280Bが示されてい
る。セル280Aは、読出しワード線(読出しアドレス線)
282及び書込みワード線(書込みアドレス線)284を介し
てアドレス指定され、セル280Bは読出しワード線286及
び書込みワード線288を介してアドレス指定される。垂
直方向に走る書込みデータ線272及び読出しデータ線274
は、セル280A、280Bを相互に接続すると共に、ブランチ
ターゲットバッファ270へ接続する。
【0053】図5には、2つの典型的なブランチターゲッ
トセル270A、270Bが示されている。これらの各セル270
A、270Bは、当技術分野において周知の方法によりFIFO
待ち行列の1つの素子として作り込まれる。セル270A
は、読出しワード線276及び書込みワード線278を介して
アドレス指定される。セル270Bは、読出しワード線275
及び書込みワード線279を介してアドレス指定される。
また、これらのセル270A、270Bは、データ線またはビッ
ト線272、274によって互いに結合されている。ビット線
274の最上端は、当技術分野において周知の方法によりN
MOSトランジスタ296を介してプリチャージクロック298
に結合されている。この構造によれば、セルの読取りま
たは書込みを行う前にビット線をプリチャージすること
が可能である。
【0054】セル270A、270B、280A、280Bから読出され
た出力データは、読出し出力線291を介して読出しドラ
イバ部290に供給される。これらの出力信号は読出しド
ライバ部で増幅された後、必ず命令が一度に1つずつ読
出し命令バス294に供給されるようにする分散マルチプ
レクサ(MUX)292へ供給される。
【0055】本発明は、本願中に具体的に記載した以外
の多くの態様で実施することが可能である。従って、本
発明の範囲は特許請求の範囲の記載によってのみ決定さ
れるものである。
【0056】
【発明の効果】本発明によれば、直接マッピング型1次
キャッシュに2次キャッシュを統合して作り込んだ効率
的なキャッシュメモリシステムが得られ、直接マッピン
グ型キャッシュ本来の効率を保ちつつスラッシングを防
止すると共に、ヒット率を改善することができる。
【0057】また、本発明は、キャッシュミス時にも、
まずデータを直接マッピング型1次キャッシュへロード
するための余分のマシンサイクルを使用することなし
に、2次キャッシュからデータを直接読み出すことが可
能であるので、スループットを改善することができる。
【0058】加えて、本発明をデータキャッシュとして
使用した場合には、直接マッピング型キャッシュを埋込
み式の犠牲/ミスキャッシュと共に用いることによりス
ラッシングが防止されること、サイクルタイムが改善さ
れること、電力消費が小さいこと、面積効率がよいこ
と、及びセンスアンプのスイッチングノイズに対する感
度が低くなることなどの長所がある。更に、本発明を命
令キャッシュとして使用した場合には、上記全ての長所
に加えて、2レベルI-キャッシュ先取り機構が得られる
こと、及びI-キャッシュを命令バッファとブランチター
ゲットバッファに結合するための先取り機構が得られる
ことなどの長所がある。これらの長所によって、キャッ
シュアクセスのサイクルタイムが短縮され、ヒット率が
より高くなり、またシリコンチップの面積を最小限にす
ることが可能となる。
【図面の簡単な説明】
【図1】従来技術として知られている直接マッピング型
キャッシュメモリのブロック図。
【図2】本発明の直接マッピング型1次キャッシュと完
全連想型2次キャッシュメモリシステムのブロック図。
【図3】図2の1次及び2次キャッシュについてのより詳
細な構造図。
【図4】本発明のもう一つの実施例である命令キャッシ
ュメモりシステムのブロック図。
【図5】図4の命令キャッシュにおける複数のスライス
の一つについてのより詳細な構造図。
【符号の説明】
100:直接マッピング型1次キャッシュ 110:2次キャッシュ 116:アドレス 118:ミス入力 120:完全連想型比較器(比較ロジック) 122:マッチ線 124:アドレス入力 140:アドレスデコードロジック 150:バスインターフェースロジック 160:データバス

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】以下の(a)及び(b)を有するキャッシュメモ
    リシステム: (a)1次キャッシュのヒット/ミスの比較手段と前記比較
    結果を出力する手段を有する直接マッピング型1次キャ
    ッシュ。 (b)前記1次キャッシュと共通の出力データビット線を有
    する2次キャッシュ。
  2. 【請求項2】請求項1記載のキャッシュメモリシステム
    の2次キャッシュにおいて、前記1次キャッシュのヒット
    /ミスの比較と同時に前記2次キャッシュのヒットの比
    較をする手段、前記2次キャッシュの比較結果を出力す
    る手段および読み出しにおいて前記1次キャッシュと同
    時に読み出す手段を有することを特徴とするキャッシュ
    メモリシステム。
  3. 【請求項3】以下の(a)及び(b)を設けたキャッシュメモ
    リシステム: (a)1次キャッシュは1次記憶と、アドレス入力と前記1次
    記憶を比較する手段を有する直接マッピング型1次キャ
    ッシュ:前記比較手段の結果が一致であれば1次キャッ
    シュヒット信号を発生し:また、前記比較手段の結果が
    不一致であれば1次キャッシュミス信号を発生する。 (b)前記1次キャッシュに接続され、読み出しにおいて前
    記1次キャッシュと同時に読めるように構成された完全
    連想型2次キャッシュ:前記2次キャッシュは2次記憶
    と、アドレス入力と前記2次記憶を前記1次比較手段と同
    時に比較する:前記比較手段の結果が一致であれば2次
    キャッシュヒット信号を発生する。
JP5063469A 1992-02-27 1993-02-26 キャッシュメモリシステム Pending JPH0612323A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US84290792A 1992-02-27 1992-02-27
US842,907 1992-02-27

Publications (1)

Publication Number Publication Date
JPH0612323A true JPH0612323A (ja) 1994-01-21

Family

ID=25288537

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5063469A Pending JPH0612323A (ja) 1992-02-27 1993-02-26 キャッシュメモリシステム

Country Status (3)

Country Link
JP (1) JPH0612323A (ja)
DE (1) DE4306077A1 (ja)
GB (1) GB2264577B (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11102435A (ja) * 1997-06-05 1999-04-13 Digital Equip Corp <Dec> ノンブロッキング・パイプライン・キャッシュ
US6138208A (en) * 1998-04-13 2000-10-24 International Business Machines Corporation Multiple level cache memory with overlapped L1 and L2 memory access
US6256708B1 (en) 1996-08-28 2001-07-03 Nec Corporation Auxiliary buffer for direct map cache
US6385697B1 (en) 1998-12-15 2002-05-07 Nec Corporation System and method for cache process

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5603004A (en) * 1994-02-14 1997-02-11 Hewlett-Packard Company Method for decreasing time penalty resulting from a cache miss in a multi-level cache system
KR0146059B1 (ko) * 1995-04-11 1998-09-15 문정환 미참조 선인출 캐쉬를 이용한 명령어 선인출 방법 및 그 회로
GB2465773A (en) 2008-11-27 2010-06-02 Symbian Software Ltd Data Storage and Access
WO2013148872A1 (en) * 2012-03-28 2013-10-03 Huawei Technologies Co., Ltd. Concurrently accessed set associative overflow cache

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2235554B (en) * 1989-08-31 1993-11-17 Sun Microsystems Inc Computer system architecture for improved floating point performance
JP2938511B2 (ja) * 1990-03-30 1999-08-23 三菱電機株式会社 半導体記憶装置
EP0457403B1 (en) * 1990-05-18 1998-01-21 Koninklijke Philips Electronics N.V. Multilevel instruction cache and method for using said cache
CA2043493C (en) * 1990-10-05 1997-04-01 Ricky C. Hetherington Hierarchical integrated circuit cache memory

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6256708B1 (en) 1996-08-28 2001-07-03 Nec Corporation Auxiliary buffer for direct map cache
JPH11102435A (ja) * 1997-06-05 1999-04-13 Digital Equip Corp <Dec> ノンブロッキング・パイプライン・キャッシュ
JP4545242B2 (ja) * 1997-06-05 2010-09-15 ヒューレット・パッカード・カンパニー ノンブロッキング・パイプライン・キャッシュ
US6138208A (en) * 1998-04-13 2000-10-24 International Business Machines Corporation Multiple level cache memory with overlapped L1 and L2 memory access
KR100316505B1 (ko) * 1998-04-13 2001-12-12 포만 제프리 엘 프로세서에 데이타를 제공하기 위한 캐시 및 캐시로부터 프로세서에 데이타를 제공하기 위한 방법
US6385697B1 (en) 1998-12-15 2002-05-07 Nec Corporation System and method for cache process

Also Published As

Publication number Publication date
GB2264577B (en) 1995-06-14
DE4306077A1 (ja) 1993-09-02
GB9303999D0 (en) 1993-04-14
GB2264577A (en) 1993-09-01

Similar Documents

Publication Publication Date Title
US5649154A (en) Cache memory system having secondary cache integrated with primary cache for use with VLSI circuits
US6226722B1 (en) Integrated level two cache and controller with multiple ports, L1 bypass and concurrent accessing
EP0734553B1 (en) Split level cache
US6260114B1 (en) Computer cache memory windowing
US6317810B1 (en) Microprocessor having a prefetch cache
US6895482B1 (en) Reordering and flushing commands in a computer memory subsystem
US6801997B2 (en) Multiple-thread processor with single-thread interface shared among threads
JP3352598B2 (ja) マイクロプロセッサ
US5996061A (en) Method for invalidating data identified by software compiler
US6138212A (en) Apparatus and method for generating a stride used to derive a prefetch address
US20120151232A1 (en) CPU in Memory Cache Architecture
JP2000003308A (ja) オ―バラップしたl1およびl2メモリ・アクセス方法および装置
JPH06318177A (ja) キャッシュ・ミス・ペナルティを減少させる方法、装置及びコンピュータ・システム
US6012134A (en) High-performance processor with streaming buffer that facilitates prefetching of instructions
CN1333906A (zh) 双端口管道两级高速缓冲存储器系统
JPH0756815A (ja) キャッシュ動作方法及びキャッシュ
JP2004062280A (ja) 半導体集積回路
JP3669555B2 (ja) 可変キャッシュ・サイズのための改良されたキャッシュ・ディレクトリ・アドレシング方法及び装置
US6237064B1 (en) Cache memory with reduced latency
US6446181B1 (en) System having a configurable cache/SRAM memory
JP2001195303A (ja) 機能が並列に分散された変換索引バッファ
US6098154A (en) Apparatus and method for generating a stride used to derive a prefetch address
US6606684B1 (en) Multi-tiered memory bank having different data buffer sizes with a programmable bank select
US6094711A (en) Apparatus and method for reducing data bus pin count of an interface while substantially maintaining performance
US6421758B1 (en) Method and system for super-fast updating and reading of content addressable memory with a bypass circuit