JPH0342744A - キャッシュ・メモリを有する計算システムおよびキャッシュ・メモリ管理方法 - Google Patents

キャッシュ・メモリを有する計算システムおよびキャッシュ・メモリ管理方法

Info

Publication number
JPH0342744A
JPH0342744A JP2178485A JP17848590A JPH0342744A JP H0342744 A JPH0342744 A JP H0342744A JP 2178485 A JP2178485 A JP 2178485A JP 17848590 A JP17848590 A JP 17848590A JP H0342744 A JPH0342744 A JP H0342744A
Authority
JP
Japan
Prior art keywords
cache memory
data
memory
processor
cache
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
JP2178485A
Other languages
English (en)
Inventor
Fetra Ross V La
ロス・ブイ・ラ・フェトラ
John F Shelton
ジョン・エフ・シェルトン
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 JPH0342744A publication Critical patent/JPH0342744A/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

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)およびメイン・メモリを含んでいる。CP
Uが命令およびオペランドを解読して実行することので
きる速度は、命令およびオペランドをメイン・メモリか
らCPUに転送することのできる速度にかかっている。
CPUが命令およびオペランドをメイン・メモリから取
り込むために要する時間を減らすために、多くのコンピ
ュータ・システムではCPUとメイン・メモリの間にキ
ャッシュ・メモリを設けている。
キャッシュ・メモリは、小形、高速のバッファ・メモリ
であり、メイン・メモリの内容のうちで遠からずCPU
により使用されるものと考えられる部分を暫定的に保持
するために使用する。キャンシュ・メモリの主な目的は
、データまたは命令を取り出すためにメモリ・アクセス
を行うときに必要な時間を短縮することである。キャッ
シュ・メモリにある情報は、メイン・メモリにある情報
よりもずっと少ない時間でアクセスすることができる。
したがって、キャッシュ・メモリ付きのキャッシュ・メ
モリは、データの1つまたは複数のワードの多くのブロ
ックから成る。各ブロックには、メイン・メモリのどの
ブロックがその複製であるかを一意に識別するアドレス
・タグが対応付けられている。プロセッサがメモリ参照
を行う毎に、要求されているデータの複製がキャッシュ
・メモリにあるかどうかを確認するためにアドレス・タ
グ比較が行われる。所望のメモリ・ブロックがキャッシ
ュ・メモリにない場合は、そのブロックがメイン・メモ
リから検索され、キャッシュ・メモリに記憶されて、プ
ロセッサに与えられる。
CPUは、メイン・メモリからデータを検索するために
キャッシュ・メモリを利用することの他に、直接メイン
・メモリに直接書き込むかわりに、キャッシュ・メモリ
にデータを書き込むこともできる。プロセッサがメモリ
にデータを書き込みたい場合には、データを書き込むデ
ータ・ブロックがキャッシュ・メモリにあるかどうかを
確かめるために、キャンシュ・メモリがアドレス・タグ
比較を行う。このデータ・ブロックがキャッシュ・メモ
リに存在する場合には、データがキャッシュ・メモリの
当該データ・ブロックに書き込まれる。
多くのシステムでは、このデータ・ブロックについての
データ“汚染ビット(dirty bit)”が次にセ
ットされる。汚染ビットは、データ・フロックのデータ
が汚染されていて(すなわち、変更されている)、従っ
てこのデータ・ブロックをキャッシュ・メモリから削除
する前に、変更されたそのデータをメイン・メモリに書
き込まなければならないことを示す。データを書き込む
データ・ブロックがキャッシュ・メモリ中に存在しない
場合は、データ・ブロックをキャッシュ・メモリに取り
出すか、そのデータを直接メイン・メモリに書き込まな
ければならない。新しいデータをキャッシュ・メモリに
置く際、重ね書きされたりキャッシュ・メモリの外ヘコ
ピーされるデータ・ブロックは、犠牲(victem)
ブロックまたは犠牲ラインと呼ばれる。
幾つかのアプリケーションでは、第1のキャッシュ・メ
モリとメイン・メモリの間にもう1つのキャッシュ・メ
モリが追加される。第1のキャッシュ・メモリには、一
般に、第2のキャッシュ・メモリのデータの部分集合が
入っている。同様に、第2キヤツシユ・メモリには一般
にメイン・メモリのデータの部分集合が入っている。ア
クセスされるデータは、まず第1のキャッシュ・メモリ
の中でサーチされる。第1のキャッシュ・メモリにデー
タがない場合には、アクセスされるデータは第2のキャ
ッシュ・メモリの中でサーチされる。
第2のキャッシュ・メモリにデータがない場合は、この
データはメイン・メモリからフェッチされる。
[発明の概要コ 本発明の実施例によれば、計算機システムが与えられる
。この計算機システムには、プロセッサ、プロセッサの
利用するデータを含むシステム・メモリ、および2つの
キャッシュ・メモリが含まれる。各キャッシュ・メモリ
は、直列に接続されるのではなく、夫々直接プロセッサ
に接続される。
第1のキャッシュ・メモリは、プロセッサおよびシステ
ム・メモリに接続される。第1のキャッシュ・メモリは
、システム・メモリのデータの部分集合を含む。第2の
キャッシュ・メモリもプロセッサに接続される。第2の
キャッシュ・メモリは、第1のキャッシュ・メモリのデ
ータの部分集合を含む。第2のキャッシュ・メモリ中の
データはシステム・メモリには全く送り込まれない。シ
ステム・メモリのデータの完全性(dadainteg
rity )は、第1キヤツシユ・メモリだけにより保
たれる。プロセッサがデータを書き込むときには、プロ
セッサは、必ず第1のキャッシュ・メモリと第2のキャ
ッシュ・メモリの両方にデノ 夕を書き込む。プロセッサがデータを読み出すときには
、必ず第2のキャッシュ・メモリからデータを読み出そ
うとする。第2のキャッシュ・メモリにデータがない場
合には、プロセッサは第1のキャッシュ・メモリからデ
ータを読み出そうと試みる。第1のキャッシュ・メモリ
にデータがない場合には、データはシステム・メモリか
ら検索され、第1のキャッシュ・メモリに置かれる。プ
ロセッサは、次に、第1のキャッシュ・メモリからデー
タを読み出す。
一般に、プロセッサが第1のキャッシュ・メモリからデ
ータを読み出すと、読み取られたデータは第2のキャッ
シュ・メモリに書き込まれる。しかし、本発明のある実
施例では、第1のキャッシュ・メモリおよび第2のキャ
ッシュ・メモリを並列にアクセスすることができる。こ
の実施例では、プロセッサがデータを要望する毎に、プ
ロセッサは第1および第2のキャッシュ・メモリの両方
を読み出そうとする。第2のキャッシュ・メモリの読み
出しが最初に完了する。データが第2/ρ のキャッシュ・メモリにある場合には、第1のキャッシ
ュ・メモリから得たデータを第2のキャッシュ・メモリ
に再び書き込む必要はない。
第1のキャッシュ・メモリにはアクセスするが、第2の
キャッシュ・メモリにはアクセスしない第2のプロセッ
サをシステムに追加することができる。第2のプロセッ
サがデータを第1のキャッシュ・メモリに書き込むと、
それにより古くなった第2のキャッシュ・メモリのデー
タは無効として区分される。これは、記憶装置中の対応
する無効ビットをセットすることにより行われる。発明
の実施例では、記憶装置は単一ビット書き込みと多重ビ
ット書き込みの両方ができる。これにより、−Uのデー
タをシステム・メモリから第1のキャッシュ・メモリに
移動させたときに、第2キヤツシユ・メモリの一組のワ
ードを単一アクセ[実施例コ 第2図は、従来波4+iにかかる多重キャッシュ・メモ
リ・システムを示す。中央処理装置(CPU)1とメイ
ン・メモリ4の間に、キャッシュ・メモリ2およびキャ
ッシュ・メモリ3が直列に接続されている。CPUIは
、メモリから読み取ったり書き込むときに、読み込み変
更の対象のデータがキャッシュ・メモリ2にあるかどう
かを確かめるためにまずキャッシュ・メモリ2を調べる
キャッシュ・メモリ2にデータがある場合には、データ
のトランザクションが行われる。キャッシュ・メモリ2
にデータがない場合はレベル1キヤツシユ・メモリ・ミ
スであり、読み込み変更の対象のデータがあるかどうか
を確認するためにキャッシュ・メモリ3が調べられる。
キャッシュ・メモリ3にデータがある場合は、そのデー
タがキャッシュ・メモリ2にロードされ、トランザクシ
ョンが行われる。キャッシュ・メモリ3にデータがない
場合はレベル2キヤツシユ・メモリ・ミスであり、メイ
ン・メモリ4からデータが/ノ 検索され、そのデータがキャッシュ・メモリ3および2
にロードされ、データ・トランザクションが行われる。
第1図は、本発明の実施例による多重キャッシュ・メモ
リ・システムを示す。中央処理装置(CPU)101は
、メモリからの読み出しを行なったとき、データのアド
レス120を、キャッシュ・メモリ102および103
に並列に送る。例えば、キャッシュ・メモリ102には
32ビツト・ワードの2に個のブロックを含み、キャッ
シュ・メモリ103には16の32ビツト・ワードの4
に個のブロックを含む。
第3図は、キャッシュ・メモリ102または103をア
クセスするときのアドレス構成例120を示す。
キャッシュ・メモリ103をアクセスするときには、ア
ドレス構成125を用いる。アドレスは、例えば、32
ビツトである。ビット0は最上位ビットであり、ビット
31は最下位ビットである。アドレス構成125では、
ビット0−13をアドレス・タグ121として用い、ビ
ット14−25をキャッシュ・メモリ・イ/J ンデクス122として用い、ピント26−29をライン
・インデクス123として用い、ビット30および31
をバイト・オフセット124として用いる。ライン・イ
ンデクス123はライン内の1つのワードを指す。
アドレス構成135は、キャッシュ・メモリ102をア
クセスするときに用いる。アドレス構成135では、ビ
ット0−18をアドレス・タグ131 として、ビット
19−29をキャッシュ・メモリ・インデクス132と
して、およびビット30および31をバイト・オフセッ
ト134として用いる。
キャッシュ・メモリ102に所望のデータがあれば、そ
のデータはCP UIOIに送られる。所望のデータが
キャッシュ・メモリ102ではなくキャッシュ・メモリ
103にある場合は、キャッシュ・メモリ103はその
データをCP UIOIに送り、またマルチプレクサ1
07を介してキャッシュ・メモリ102に送る。データ
を修正した場合でも、キャッシュ・メモリ102の犠牲
ラインに重ね書きされることがある。所望データがキャ
ッシュ・メモリ103にない場合は、メイン・メモリ1
04からデータが/ダ 取り出されてキャッシュ・メモリ103に書き込まれる
。犠牲ラインの汚染ビットがセントされていると、この
犠牲ラインがメイン・メモリ104に書き込まれる。そ
うでなければ、キャンシュ・メモリ103の犠牲ライン
に重ね書きが行なわれる。
キャッシュ・メモリ103は、次に、メイン・メモリ1
04から検索したデータをCPUl0Iに送り、マルチ
プレクサ107を介してキャッシュ・メモl7102に
送る。
メモリに書き込む際には、CP UIOIは、アドレス
120をキャッシュ・メモリ102および103に送る
。このデータは、キャッシュ・メモリ102中のアドレ
ス120により指定されるインデクスに書き込まれる。
キャッシュ・メモリ103は、変更するデータがキャッ
シュ・メモリ103に存在するかどうかを調べて確認す
る。存在するならば、そのデータは、キャッシュ・メモ
リ103中のアドレス120のインデクスにより指定さ
れるロケーショ”ンに書き込まれる。変更するデータが
キャッシュ・メモリ103にない場合は、変更するデー
タがメイ/r ン・メモリ104から取り出されて、キャッシュ・メモ
リ103に書き込まれる。犠牲ラインが汚染されていな
ければ、キャッシュ・メモリ103内の犠牲ラインに重
ね書きが行なわれる。犠牲ラインが汚染されていれば、
メイン・メモリ104からのデータがキャッシュ・メモ
リ103に書き込まれる前に、その犠牲ラインがメイン
・メモリ104に書き込まれる。
CPUl0Iは、キャッシュ・メモリ102および10
3の両方を使用するが、コプロセッサ105はキャッシ
ュ・メモリ103だけを使用する。コプロセッサ105
がデータを読み取る際にはこのデータはキャッシュ・メ
モリ103から読み出される。
キャッシュ・メモリ103にこのデータがない場合は、
メイン・メモリ104からデータがフェッチされる。新
しいデータはキャッシュ・メモリ103に置かれる。
ある機能ユニットからはキャッシュ・メモリ102を使
うが他のユニットからは使わないというような使用法に
よりキャッシュ・メモリ103の一/Z 層の高速動作が可能になる。例えば、コプロセッサ10
5は浮動小数点計算をすることができる。したがって、
整数のロードおよび格納(汎用レジスタ・ファイルとの
間)では、キャッシュ・メモリ102および103を使
用する。しかし、浮動小数点数のロードおよび格納は、
キャッシュ・メモリ 103だけを使用して行われる。
データをキャッシュ・メモリ103に置くがキャッシュ
・メモリ103には置かないとき、例えばデータ・ブロ
ックをメイン・メモリ104からキャッシュ・メモリ1
03に転送したり、コプロセッサ105からキャッシュ
・メモリ103への32ビツト・ワードの書込みを行う
場合、キャッシュ・メモリ102内の古くなったデータ
を無効にしなければならない。データ・ブロックをメイ
ン・メモリ104からキャッシュ・メモリ103に転送
する場合、キャッシュ・メモリ102内のデータの全領
域を無効にする必要がある。発明の実施例では、実際に
キャッシュ・メモリ102の中にあるデータ・ブロック
の時間のかかるチエツクを避けるために、/2 メイン・メモリ104からキャッシュ・メモリ103に
転送されるデータを含むことのできるキャッシュ・メモ
リ102内のすべてのデータ・ロケーションは無効にさ
れる。したがって、キャッシュ・メモリ102内の無効
にされる領域の大きさは、メイン・メモリ104からキ
ャッシュ・メモリ103に転送されるブロックの大きさ
と同じである。
コプロセッサ105からキャッシュ・メモリ103への
32ビツト・ワードの書き込みの場合、キャッシュ・メ
モリ102内のデータの1ワードを無効にする必要があ
る。
キャッシュ・メモリ102中で1つの32ビツト・ワー
ドまたは8つの32ビツト・ワードのブロックのどちら
でも無効化できるという多様性を与えるため、第4図に
示す特別メモリ140を使用する。
メモリ140には、キャッシュ・メモリ102の各32
ビツト・ワードのロケーション毎に1つの無効ビットを
含んでいる。キャッシュ・メモリ102のデータの個々
の32ビツト・ワードを無効にするために、−度に1ビ
ツトのデータをメモリ140に書/? き込むことができ、またキャッシュ・メモリ 102内
の1組の8つの32ビツト・ワードのブロックを無効に
するために、−度に8ビツトのデータをメモリ140に
書き込むことができる。
メモリ140には、8ビツトのデータを受は取るための
ライン147、およびメモリ140内のデータが置かれ
るライン141を含む。メモリ140内のデータは、ア
ドレス・ライン142および143を用いてアドレス指
定される。8ビツト・ハイドのデータをアドレス指定す
るときには、アドレス・ライン142だけを使用する。
データの個々のビットをアドレス指定するときには、ア
ドレス・ライン142および143を使用する。ライン
145上には、書き込みイネーブルが置かれる。ライン
146上には、1ビツトのデータと8ビツトのデータの
いずれかをメモリ140に書き込むかを示す信号が置か
れる。
すでに述べたように、CP UIOIはキャッシュ・メ
モリ102および103を同時にアクセスする。実行効
率を更に高めるために、CP UIOIは、要求ノ/ したデータがキャッシュ・メモリ102にないのでまだ
完了していないロード(Load)命令以降にある命令
を続けて実行できる。この動作は、CPU101が、こ
のロードの完了する前に、このロードの結果を要求する
命令に遭遇しない限り行うことができる。
以下の諸表により、命令を実行することのできる各種の
方法を明らかにする。下記の表1には、CPUIの動作
が示されている。この表には、CPUIが命令のパイプ
ライン実行を行うことが示しである。各命令は3段階で
実行される。第1段階はフェッチ段階である。フェッチ
段階においてはCPUIは命令をフェッチする。第2段
階はALU段階である。ALU段階では命令がデコード
され、算術計算(アドレス計算を含む)が行われる。第
3段階はメモリ段階である。メモリ段階ではデータがメ
モリに書き込まれたりメモリから読み出される。表1に
は5つの実行サイクルが示してあり、この間に1つのロ
ード命令(Load)および3つの操作命令(○p1〜
○p3)がスタート少ρ される。サイクル2では、“”joad  A“命令が
目的を達し損なった(miss) 、すなわちCPUI
がキャッシュ・メモリ2中で所望のデータを見つけられ
なかった。したがって、キャンシュ・メモリ2でキャッ
シュ・メモリ・ミス(chache memorymi
ss)が起った。サイクル3および4では、所望のデー
タがキャッシュ・メモリ3から検索され、キャッシュ・
メモリ2にロードされ、CPUIで利用することができ
る。サイクル5では通常の動作が再開される。
表  1 サイクル  フェッチ  ALU   メモリ番  号
  段  階  段 階  段 階しoad  八 Op’1 p2  p 2 p2 *** Load  A p  1 p1 pl *** *** Load  A Load  A Load  A 、>1 5    0p3    0p2  0plすでに述べ
たように、サイクル2ではキャッシュ・メモリ2でキャ
ッシュ・メモリ・ミスが起っているので、キャッシュ・
メモリ3からデータを検索するまでは、それ以上の処理
が停止される。しかし、データ“′A゛°がすぐに必要
でないならば、CPUIは、まだ完了していないロード
動作の先にある命令の実行を継続することができる。
表2には、これを説明するために、2つのキャッシュ・
メモリのアクセス段階(キャッシュ段階I、およびキャ
ッシュ段階■)が追加しである。
キャッシュ・メモリのアクセス段階は、キャッシュ・メ
モリ2でミスのあったとき、キャッシュ・メモリ3から
データを検索するために必要なサイクルを表している。
キャッシュ段階Iおよび■は疑似段階であり、キャッシ
ュ・メモリ2でごスがあった場合にそのような命令だけ
が利用する。
しかし、キャッシュ・メモリ3からフェッチさノー れるデータがすぐに必要である場合には、キャッシュ、
メモリ2で5スを起した命令の先にある命令を実行する
ことはもはやできない。例えば、表2のサイクル4では
、”Load  B″”が開始される。サイクル6では
、キャッシュ・メモリ2にデーラダ゛B′′が見つから
ない場合に、キャッシュ・メモリ・旦スが起こる。サイ
クルマおよび8では、データがキャッシュ・メモリ3か
ら得られる。しかし、”Load  B”の次に続く命
令は“UseB”である。これは命令”Load  B
”により得られたデータ“′B”を使用する命令である
したがって、命令のそれ以上の実行は、サイクルマおよ
び8の間は休止したままでなければならず、その間デー
タ“′B°“がキャッシュ・メモリ3から検索されてい
る。サイクル9では通常動作が再開(1) 特開平 42744 (8) の の 中 中 口 中 下記の表3にはCPUl0Iの動作を示す。
CPUl0Iも、命令のパイプライン実行が仮定されて
いる。各命令は3段階で実行される。第1段階はフェッ
チ段階である。フェッチ段階ではCP UIOIは命令
をフェッチする。第2段階はALU段階である。ALU
段階では、命令がデコードされ、算術計算(アドレス計
算を含む)が行われる。第3段階はメモリ段階である。
メモリ段階では、データがメモリに書き込まれたりメモ
リから読み出される。
キャッシュ・メモリ102から取り出されたデータにお
いてキャッシュ・メモリ・ミスがあったがそのデータは
すぐには必要ないときには、CPU101は、完了して
いない操作の先にある命令の実行を継続することができ
る。それを説明するために、キャッシュ・メモリ・アク
セス段階であるキャッシュ段階Iおよび■を表3に示す
。キャッシュ段階Iおよび■は、キャッシュ・メモリ 
102にデータがないときに、キャッシュ・メモリ10
3からデータを検索するために必要なサイクルを表t す、キャッシュ段階Iおよび■は疑似段階であり、キャ
ッシュ・メモリ102にデータがない場合にだけ、当該
命令が利用する。
表3には、まだ完了していないLoadの先へCP U
IOIが実行を継続する場合に何が起こるかを示しであ
る。サイクル2では、”Load  A”により、キャ
ッシュ・メモリ102におけるデータのキャッシュ・メ
モリ・旦スが起る。サイクル3では、命令“Load 
 A″°がキャッシュ・メモリ103からデータを得る
。サイクル4では、”L、oad  A”が、キャッシ
ュ・メモリ103からのデータをキャッシュ・メモリ1
02にコピーする。しかし、ロードBは、パメモリ段階
゛′にあり、キャッシュ・メモリ102からデータを読
み出そうとする。これら2つの命令はサイクル4中に同
時にキャッシュ・メモリ102にアクセスすることがで
きないので、“’Load  A’“がデータのコピー
を完了するまで、機械の通常動作は停止されユl 〕/ 特開平 3 42744 (10) ロ ロ キャッシュ・メモリ102にアクセスを試みている命令
の間で対立のあるときに起こる遅延を避けるために、C
PUl0Iは、キャッシュ・メモリ102のキャッシュ
・メモリ・ごスを強制的に起すことができる。すなわち
、実際にデータがキャッシュ・メモリ102にあっても
なくても、CPU101は、キャッシュ・メモリ103
からデータを得る。
これを下記の表4で説明する。サイクル4では、命令”
Load  A”および”Load  B”が、キャッ
シュ・メモリ102にアクセスを試みている。CPUl
0Iは、動作を停止するのではなく、キャッシュ・メモ
リ 102のキャッシュ・メモリ・ミスを強制的に起し
、サイクル5および6では、特開平3 42744 (12) 表4に示す方法は、同時にキャッシュ・メモリ102に
アクセスするようにスケジュールされた2つの命令のあ
いだの争奪によって、CPU 101 によりもたらさ
れる性能上の不利益を減らすので、他の設計に比べて改
善されている。
表4に提示されたものの代わりの解決法を下記の表5に
示す。表5のサイクル4では、2つの命令”Load 
 A”および”Load  B”がキャッシュ・メモリ
102へのアクセスを試みている。
表4に示す例のように、命令”Load  A”の方を
完了させ、命令”Load  B”の方は強制的にメモ
リ102におけるデータのミスを起こさせる代わりに、
命令”Load  B”はキャッシュ・メモリ102に
アクセスすることができ、命令”Load  A”がキ
ャッシュ・メモリ102にデーく の 特開平3 42744(14) 口 上記表5に示すように、命令“”Load  B”は、
キャッシュ・メモリ102中でデータを首尾よく見つけ
ている。しかし、所望データがキャッシュ・メモリ10
2になく、キャッシュ・メモリ103またはメイン・メ
モリ104からデータをフェッチしなければならない可
能性がある。
表5に例証される方法の1つの考えられる短所は、命令
“”L o a d  A’”がキャッシュ・メモリ1
02を更新することは許容されていないので、次に更新
されていないデータが要求されたときには、キャッシュ
・メモリ102において再びキャッシュ・案スになるこ
とである。しかし、キャッシュ・メモリ102でキャッ
シュ・くスがおこれば更に衝突を起すことがあるので、
キャッシュ・メモリ 102中において他のデータの更
新ができなくなることがある。したがって、キャッシュ
・メモリ102の頻繁なくスによって、キャッシュ・メ
モリ102におけるこのミス・レートがキャッシュ・メ
モリ102の更新を妨げるという病的状況をもたらすと
いうことが考えられる。これにより、キャラ〃 シュ・メモリ102中にはますますわずかの有用情報し
か含まれなくなり、その結果キャッシュ・メモリ102
でますます多くのキャッシュ・くスが起る可能性がある
。このような病的状況の可能性は、キャッシュ・メモリ
102にアクセスする回数およびたいていキャッシュ・
メモリ102内に置かれたデータを再使用する回数を含
む多くの要因次第である。
[発明の効果] 以上詳細に説明したように、本発明によれば従来技術に
比べて高速のメモリ・アクセスを達成できる。
【図面の簡単な説明】
第1図は本発明の実施例を示すブロック図、第2図は従
来技術を示すブロック図、 第3図は本発明の実施例で用いられるアドレス構成を示
す図、 第4図は本発明の実施例で用いられる無効ビットを保持
するメモリを示す図である。 1.101:CPU 2.3.102.1o3:キャッシュ・メモリ4.10
4:メイン・メモリ 105:コプロセッサ 107:マルチプレクサ 120ニアドレス

Claims (1)

  1. 【特許請求の範囲】 (1)下記の(a)ないし(d)を設けてなる、キャッ
    シュ・メモリを有する計算システム。 (a)第1のプロセッサ; (b)前記第1のプロセッサが使用するデータを含むシ
    ステム・メモリ; (c)前記第1のプロセッサおよび前記システム・メモ
    リに接続され、前記システム・メモリ中のデータの部分
    集合を含む第1のキャッシュ・メモリ; (d)前記第1のプロセッサに接続され、前記第1のキ
    ャッシュ・メモリ中のデータの部分集合を含む第2のキ
    ャッシュ・メモリ:前記第2のキャッシュ・メモリ中の
    データは、前記第1のプロセッサが前記第1のキャッシ
    ュ・メモリにデータを書き込んだ時、および前記第1の
    キャッシュ・メモリが前記第1のプロセッサにデータを
    与えた時更新される。(2)前記第1のキャッシュ・メ
    モリに接続された第2のプロセッサを更に設け、前記第
    2のキャッシュ・メモリ中のデータは前記第2のプロセ
    ッサが前記第1のキャッシュ・メモリにデータを書き込
    んだ時に無効化されることを特徴とする、請求項1記載
    のキャッシュ・メモリを有する計算システム。 (3)計算システムにおいて、プロセッサが第1のキャ
    ッシュ・メモリおよび第2のキャッシュ・メモリに、シ
    ステム・メモリへの書き込み/読み出しを目的とするア
    クセスを行なうことにより、前記システム・メモリ中の
    データの部分集合への高速アクセスを行なうための、下
    記(a)ないし(d)のステップを設けてなるキャッシ
    ュ・メモリ管理方法:(a)前記プロセッサによるアク
    セス毎に、前記第1のキャッシュ・メモリおよび第2の
    キャッシュ・メモリに同時にアクセスする; (b)データ・アクセスが読み出し目的でありまた読み
    出すべきデータが前記第1のキャッシュ・メモリ中に存
    在していた場合には、前記プロセッサにより前記第1の
    キャッシュ・メモリからデータを読み出す; (c)データ・アクセスが読み出し目的でありまた読み
    出すべきデータが前記第1のキャッシュ・メモリ中に存
    在していない場合には、以下の(c1)と(c2)のサ
    ブステップを行なう: (c1)前記プロセッサにより前記読み出すべきデータ
    を前記第2のキャッシュ・メモリから読み出す; (c2)前記読み出すべきデータを前記第1のキャッシ
    ュ・メモリに書き込む; (d)データ・アクセスが読み出し目的でありまた読み
    出すべきデータが前記第1のキャッシュ・メモリと第2
    のキャッシュ・メモリのいずれの中にも存在していない
    場合には、前記読み出すべきデータを前記システム・メ
    モリから前記第2のキャッシュ・メモリへ転送し、以下
    の(d1)と(d2)のサブステップを行なう: (d1)前記プロセッサにより、前記読み出すべきデー
    タを前記第2のキャッシュ・メモリから読み出す; (d2)前記読み出すべきデータを前記第1のキャッシ
    ュ・メモリへ書き込む。 (4)計算システムにおいて、第1のプロセッサおよび
    第2のプロセッサが第1のキャッシュ・メモリおよび第
    2のキャッシュ・メモリに、システム・メモリへの書き
    込み/読み出しを目的とするアクセスを行なうことによ
    り、前記システム・メモリ中のデータの部分集合への高
    速アクセスを行なうための、下記(a)および(b)の
    ステップを設けてなるキャッシュ・メモリ管理方法: (a)前記第1のプロセッサによるアクセス毎に、前記
    第1のキャッシュ・メモリおよび第2のキャッシュ・メ
    モリに同時にアクセスする; (b)前記第2のプロセッサによるアクセス毎に、第2
    のキャッシュ・メモリのみにアクセスする。
JP2178485A 1989-07-05 1990-07-05 キャッシュ・メモリを有する計算システムおよびキャッシュ・メモリ管理方法 Pending JPH0342744A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US37626489A 1989-07-05 1989-07-05
US376,264 1989-07-05

Publications (1)

Publication Number Publication Date
JPH0342744A true JPH0342744A (ja) 1991-02-22

Family

ID=23484308

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2178485A Pending JPH0342744A (ja) 1989-07-05 1990-07-05 キャッシュ・メモリを有する計算システムおよびキャッシュ・メモリ管理方法

Country Status (4)

Country Link
EP (1) EP0407053B1 (ja)
JP (1) JPH0342744A (ja)
KR (1) KR100201671B1 (ja)
DE (1) DE69028162T2 (ja)

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2609195A1 (fr) * 1986-12-31 1988-07-01 Thomson Csf Procede de gestion d'antememoires associees a des processeurs dans une architecture multiprocesseur a bus unique et systeme de traitement de donnees fonctionnant suivant ce procede

Also Published As

Publication number Publication date
EP0407053B1 (en) 1996-08-21
DE69028162T2 (de) 1996-12-19
EP0407053A3 (en) 1992-02-26
EP0407053A2 (en) 1991-01-09
DE69028162D1 (de) 1996-09-26
KR910003495A (ko) 1991-02-27
KR100201671B1 (ko) 1999-06-15

Similar Documents

Publication Publication Date Title
JP3016575B2 (ja) 複数キャッシュ・メモリ・アクセス方法
JP3587591B2 (ja) キャッシュ・ミスを制御する方法およびその計算機システム
JP3239218B2 (ja) キャッシュ管理システム
EP0674270B1 (en) Input/output address translation mechanisms
JP3285644B2 (ja) キャッシュメモリを有するデータプロセッサ
US20180011748A1 (en) Post-retire scheme for tracking tentative accesses during transactional execution
US5940858A (en) Cache circuit with programmable sizing and method of operation
US20090172243A1 (en) Providing metadata in a translation lookaside buffer (TLB)
EP1363189A2 (en) Apparatus and method for implementing a rom patch using a lockable cache
US6711653B1 (en) Flexible mechanism for enforcing coherency among caching structures
US5155828A (en) Computing system with a cache memory and an additional look-aside cache memory
JP7096840B2 (ja) 能力メタデータを管理するための装置及び方法
JPH0619786A (ja) キャッシュコヒーレンスを維持する方法及び装置
US5946718A (en) Shadow translation look-aside buffer and method of operation
US5471602A (en) System and method of scoreboarding individual cache line segments
WO2005121970A1 (en) Title: system and method for canceling write back operation during simultaneous snoop push or snoop kill operation in write back caches
US5926841A (en) Segment descriptor cache for a processor
US6256710B1 (en) Cache management during cache inhibited transactions for increasing cache efficiency
US5619673A (en) Virtual access cache protection bits handling method and apparatus
US20050091459A1 (en) Flexible mechanism for enforcing coherency among caching structures
JP3971807B2 (ja) キャッシュ記憶装置および方法
US6401173B1 (en) Method and apparatus for optimizing bcache tag performance by inferring bcache tag state from internal processor state
JPH0342744A (ja) キャッシュ・メモリを有する計算システムおよびキャッシュ・メモリ管理方法
US20030079090A1 (en) Instructions for test & set with selectively enabled cache invalidate
US6766427B1 (en) Method and apparatus for loading data from memory to a cache