JPH0342745A - 複数キャッシュ・メモリ・アクセス方法 - Google Patents

複数キャッシュ・メモリ・アクセス方法

Info

Publication number
JPH0342745A
JPH0342745A JP2178486A JP17848690A JPH0342745A JP H0342745 A JPH0342745 A JP H0342745A JP 2178486 A JP2178486 A JP 2178486A JP 17848690 A JP17848690 A JP 17848690A JP H0342745 A JPH0342745 A JP H0342745A
Authority
JP
Japan
Prior art keywords
cache memory
data
instruction
memory
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.)
Granted
Application number
JP2178486A
Other languages
English (en)
Other versions
JP3016575B2 (ja
Inventor
Douglas B Hunt
ダグラス・ビー・ハント
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 JPH0342745A publication Critical patent/JPH0342745A/ja
Application granted granted Critical
Publication of JP3016575B2 publication Critical patent/JP3016575B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related 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
    • 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

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)
  • Advance Control (AREA)

Abstract

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

Description

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

Claims (2)

    【特許請求の範囲】
  1. (1)複数の命令を実行する計算システムにおいて、 プロセッサが第1のキャッシュ・メモリと第2のキャッ
    シュ・メモリを用いてシステム・メモリ内のデータのア
    クセスを含む複数の命令の実行を円滑化する方法であっ
    て、データ・アクセスの各々は前記システム・メモリと
    の間のデータの読み出しまたは書き込みを目的としてお
    り、前記方法は下記の(a)および(b)を設けている
    複数キャッシュ・メモリ・アクセス方法: (a)前記プロセッサにより第1の命令を実行する:前
    記第1の命令の実行は下記の(i)および(ii)のサ
    ブステップを含む: (i)前記第1の命令の実行に必要とされるデータを求
    めて前記第1のキャッシュ・メモリにアクセスする; (ii)前記第1の命令の実行に必要とされるデータが
    前記第1のキャッシュ・メモリ中にはなかったときは前
    記第1の命令の実行に必要とされるデータを求めて前記
    第2のキャッシュ・メモリにアクセスするとともに、前
    記第1の命令の実行に必要とされるデータを前記第2の
    キャッシュ・メモリから前記第1のキャッシュ・メモリ
    に書き込む: (b)前記プロセッサにより第2の命令を実行する:前
    記第2の命令の実行は下記の(i)ないし(iii)の
    サブステップを含む: (i)前記第1の命令の実行に必要とされるデータを前
    記第2のキャッシュ・メモリから前記第1のキャッシュ
    ・メモリへ書き込んでいる最中かどうかについて判定す
    る; (ii)前記サブステップ(b)(i)により、前記第
    1の命令の実行に必要とされるデータが前記第2のキャ
    ッシュ・メモリから前記第1のキャッシュ・メモリへ書
    き込まれている最中でないことが示されたときは、前記
    第2の命令の実行に必要とされるデータを求めて前記第
    1のキャッシュ・メモリへアクセスする; (iii)前記サブステップ(b)(i)により、前記
    第1の命令の実行に必要とされるデータが前記第2のキ
    ャッシュ・メモリから前記第1のキャッシュ・メモリへ
    書き込まれている最中であることが示されたときは、あ
    たかも前記第2の命令の実行に必要とされるデータが前
    記第1のキャッシュ・メモリ中にはなかったかのように
    、前記第2の命令の実行に必要とされるデータを求めて
    前記第2のキャッシュ・メモリにアクセスする。
  2. (2)複数の命令を実行する計算システムにおいて、 プロセッサが第1のキャッシュ・メモリと第2のキャッ
    シュ・メモリを用いてシステム・メモリ内のデータのア
    クセスを含む複数の命令の実行を円滑化する方法であっ
    て、データ・アクセスの各々は前記システム・メモリと
    の間のデータの読み出しまたは書き込みを目的としてお
    り、前記方法は下記の(a)および(b)を設けている
    複数キャッシュ・メモリ・アクセス方法: (a)前記プロセッサにより第1の命令を実行する:前
    記第1の命令の実行は下記の(i)および(ii)のサ
    ブステップを含む: (i)前記第1の命令の実行に必要とされるデータを求
    めて前記第1のキャッシュ・メモリにアクセスする: (ii)前記第1の命令の実行に必要とされるデータが
    前記第1のキャッシュ・メモリ中にはなかったときは、
    前記第1の命令の実行に必要とされるデータを求めて前
    記第2のキャッシュ・メモリにアクセスするとともに、
    前記第1の命令の実行に必要とされるデータを前記第2
    のキャッシュ・メモリから前記第1のキャッシュ・メモ
    リに書き込む; (b)前記プロセッサにより第2の命令を実行する:前
    記第2の命令の実行は下記の(i)および(ii)のサ
    ブステップを含む: (i)前記第2の命令の実行に必要とされるデータを求
    めて前記第1のキャッシュ・メモリをアクセスする; (ii)サブステップ(a)(ii)における前記第1
    の命令の実行に必要とされるデータの前記第2のキャッ
    シュ・メモリから前記第1のキャッシュ・メモリへの書
    き込みと同時にサブステップ(b)(i)の実行が行な
    われようとしたときには、前記第1の命令の実行に必要
    とされるデータの、前記第2のキャッシュ・メモリから
    前記第1のキャッシュ・メモリへの書き込みをアボート
    する。
JP2178486A 1989-07-05 1990-07-05 複数キャッシュ・メモリ・アクセス方法 Expired - Fee Related JP3016575B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US376,265 1989-07-05
US07/376,265 US5155832A (en) 1989-07-05 1989-07-05 Method to increase performance in a multi-level cache system by the use of forced cache misses

Publications (2)

Publication Number Publication Date
JPH0342745A true JPH0342745A (ja) 1991-02-22
JP3016575B2 JP3016575B2 (ja) 2000-03-06

Family

ID=23484313

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2178486A Expired - Fee Related JP3016575B2 (ja) 1989-07-05 1990-07-05 複数キャッシュ・メモリ・アクセス方法

Country Status (5)

Country Link
US (1) US5155832A (ja)
EP (1) EP0407052B1 (ja)
JP (1) JP3016575B2 (ja)
KR (1) KR100204741B1 (ja)
DE (1) DE69025658T2 (ja)

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5261066A (en) * 1990-03-27 1993-11-09 Digital Equipment Corporation Data processing system and method with small fully-associative cache and prefetch buffers
US6101576A (en) * 1992-07-31 2000-08-08 Fujitsu Limited Method for saving generated character image in a cache system including a backup cache
JP3409866B2 (ja) * 1992-09-18 2003-05-26 株式会社日立製作所 並列計算機
US5509135A (en) * 1992-09-25 1996-04-16 Digital Equipment Corporation Multi-index multi-way set-associative cache
JP2768889B2 (ja) * 1993-06-07 1998-06-25 株式会社東芝 論理シミュレーション装置
JPH0784881A (ja) * 1993-09-13 1995-03-31 Mitsubishi Electric Corp キャッシュメモリ
US5809525A (en) * 1993-09-17 1998-09-15 International Business Machines Corporation Multi-level computer cache system providing plural cache controllers associated with memory address ranges and having cache directories
KR970010368B1 (ko) * 1994-01-18 1997-06-25 삼성전자 주식회사 캐시라인 리프레이스장치 및 방법
US5826052A (en) * 1994-04-29 1998-10-20 Advanced Micro Devices, Inc. Method and apparatus for concurrent access to multiple physical caches
US5539895A (en) * 1994-05-12 1996-07-23 International Business Machines Corporation Hierarchical computer cache system
US5553264A (en) * 1994-06-24 1996-09-03 Digital Equipment Corporation Method and apparatus for efficient cache refilling by the use of forced cache misses
US5537575A (en) * 1994-06-30 1996-07-16 Foley; Denis System for handling cache memory victim data which transfers data from cache to the interface while CPU performs a cache lookup using cache status information
DE19526960A1 (de) * 1994-09-27 1996-03-28 Hewlett Packard Co Eine Übersetzungs-Querzuordnungs-Puffer-Organisation mit variabler Seitengrößenabbildung und Opfer-Cache-Speicherung
US5584013A (en) * 1994-12-09 1996-12-10 International Business Machines Corporation Hierarchical cache arrangement wherein the replacement of an LRU entry in a second level cache is prevented when the cache entry is the only inclusive entry in the first level cache
US5721864A (en) * 1995-09-18 1998-02-24 International Business Machines Corporation Prefetching instructions between caches
US5860150A (en) * 1995-10-06 1999-01-12 International Business Machines Corporation Instruction pre-fetching of a cache line within a processor
US5794243A (en) * 1995-12-11 1998-08-11 International Business Machines Corporation Method and apparatus for executing a binary search in a data cache
US5740391A (en) * 1996-03-01 1998-04-14 Hewlett-Packard Co. Preventing premature early exception signaling with special instruction encoding
US5813033A (en) * 1996-03-08 1998-09-22 Advanced Micro Devices, Inc. Superscalar microprocessor including a cache configured to detect dependencies between accesses to the cache and another cache
US5765194A (en) * 1996-05-01 1998-06-09 Hewlett-Packard Company Timing consistent dynamic compare with force miss circuit
US5761490A (en) * 1996-05-28 1998-06-02 Hewlett-Packard Company Changing the meaning of a pre-decode bit in a cache memory depending on branch prediction mode
US5781923A (en) * 1996-05-28 1998-07-14 Hewlett-Packard Company Adding a field to the cache tag in a computer system to indicate byte ordering
US5875469A (en) * 1996-08-26 1999-02-23 International Business Machines Corporation Apparatus and method of snooping processors and look-aside caches
US6122711A (en) * 1997-01-07 2000-09-19 Unisys Corporation Method of and apparatus for store-in second level cache flush
US5895495A (en) * 1997-03-13 1999-04-20 International Business Machines Corporation Demand-based larx-reserve protocol for SMP system buses
US5909697A (en) * 1997-09-30 1999-06-01 Sun Microsystems, Inc. Reducing cache misses by snarfing writebacks in non-inclusive memory systems
US6073212A (en) * 1997-09-30 2000-06-06 Sun Microsystems, Inc. Reducing bandwidth and areas needed for non-inclusive memory hierarchy by using dual tags
US6253291B1 (en) 1998-02-13 2001-06-26 Sun Microsystems, Inc. Method and apparatus for relaxing the FIFO ordering constraint for memory accesses in a multi-processor asynchronous cache system
US6336168B1 (en) * 1999-02-26 2002-01-01 International Business Machines Corporation System and method for merging multiple outstanding load miss instructions
US6341331B1 (en) * 1999-10-01 2002-01-22 International Business Machines Corporation Method and system for managing a raid storage system with cache
TW490637B (en) * 2001-01-16 2002-06-11 Ind Tech Res Inst Memory emulator for simulating memory components of different interface specification and not restrained to memory space
US6996812B2 (en) * 2001-06-18 2006-02-07 International Business Machines Corporation Software implementation of synchronous memory barriers
CN104657145B (zh) * 2015-03-09 2017-12-15 上海兆芯集成电路有限公司 用于微处理器的重发停靠的系统和方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3938097A (en) * 1974-04-01 1976-02-10 Xerox Corporation Memory and buffer arrangement for digital computers
US4268907A (en) * 1979-01-22 1981-05-19 Honeywell Information Systems Inc. Cache unit bypass apparatus
JPS57105879A (en) * 1980-12-23 1982-07-01 Hitachi Ltd Control system for storage device
US4667288A (en) * 1983-06-30 1987-05-19 Honeywell Information Systems Inc. Enable/disable control checking apparatus
US4774654A (en) * 1984-12-24 1988-09-27 International Business Machines Corporation Apparatus and method for prefetching subblocks from a low speed memory to a high speed memory of a memory hierarchy depending upon state of replacing bit in the low speed memory
US4755930A (en) * 1985-06-27 1988-07-05 Encore Computer Corporation Hierarchical cache memory system and method
US4713755A (en) * 1985-06-28 1987-12-15 Hewlett-Packard Company Cache memory consistency control with explicit software instructions
US4794521A (en) * 1985-07-22 1988-12-27 Alliant Computer Systems Corporation Digital computer with cache capable of concurrently handling multiple accesses from parallel processors
US4833599A (en) * 1987-04-20 1989-05-23 Multiflow Computer, Inc. Hierarchical priority branch handling for parallel execution in a parallel processor
US5023776A (en) * 1988-02-22 1991-06-11 International Business Machines Corp. Store queue for a tightly coupled multiple processor configuration with two-level cache buffer storage

Also Published As

Publication number Publication date
DE69025658T2 (de) 1996-07-18
US5155832A (en) 1992-10-13
JP3016575B2 (ja) 2000-03-06
KR100204741B1 (ko) 1999-06-15
KR910003496A (ko) 1991-02-27
EP0407052A3 (en) 1992-02-12
EP0407052A2 (en) 1991-01-09
EP0407052B1 (en) 1996-03-06
DE69025658D1 (de) 1996-04-11

Similar Documents

Publication Publication Date Title
JPH0342745A (ja) 複数キャッシュ・メモリ・アクセス方法
JP3587591B2 (ja) キャッシュ・ミスを制御する方法およびその計算機システム
JP3285644B2 (ja) キャッシュメモリを有するデータプロセッサ
US5699551A (en) Software invalidation in a multiple level, multiple cache system
US5202972A (en) Store buffer apparatus in a multiprocessor system
EP1008053B1 (en) Controlling memory access ordering in a multi-processing system
US4851991A (en) Central processor unit for digital data processing system including write buffer management mechanism
US5940858A (en) Cache circuit with programmable sizing and method of operation
JPH0321934B2 (ja)
EP0303648B1 (en) Central processor unit for digital data processing system including cache management mechanism
JPH02190930A (ja) ソフトウエア命令実行装置
JPS58212694A (ja) メモリシステム
US5155828A (en) Computing system with a cache memory and an additional look-aside cache memory
US5091845A (en) System for controlling the storage of information in a cache memory
US5119484A (en) Selections between alternate control word and current instruction generated control word for alu in respond to alu output and current instruction
JP2575598B2 (ja) マルチプロセッサ・コンピュータ・システムのシステム・メモリの並行性を増大する方法およびシステム
US5946718A (en) Shadow translation look-aside buffer and method of operation
US5226170A (en) Interface between processor and special instruction processor in digital data processing system
US6434665B1 (en) Cache memory store buffer
US7310712B1 (en) Virtual copy system and method
JP3971807B2 (ja) キャッシュ記憶装置および方法
US6401173B1 (en) Method and apparatus for optimizing bcache tag performance by inferring bcache tag state from internal processor state
US7234027B2 (en) Instructions for test & set with selectively enabled cache invalidate
EP0375892B1 (en) Data processing system
US5276892A (en) Destination control logic for arithmetic and logic unit for digital data processor

Legal Events

Date Code Title Description
R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees