JP2000227878A - 非同期i/oキャッシュメモリ内のデ―タ管理方法 - Google Patents

非同期i/oキャッシュメモリ内のデ―タ管理方法

Info

Publication number
JP2000227878A
JP2000227878A JP2000003341A JP2000003341A JP2000227878A JP 2000227878 A JP2000227878 A JP 2000227878A JP 2000003341 A JP2000003341 A JP 2000003341A JP 2000003341 A JP2000003341 A JP 2000003341A JP 2000227878 A JP2000227878 A JP 2000227878A
Authority
JP
Japan
Prior art keywords
data
cache
memory
cache memory
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
JP2000003341A
Other languages
English (en)
Other versions
JP2000227878A5 (ja
Inventor
V Spencer Thomas
トーマス・ヴイ・スペンサー
J Honing Robert
ロバート・ジェイ・ホーニング
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 JP2000227878A publication Critical patent/JP2000227878A/ja
Publication of JP2000227878A5 publication Critical patent/JP2000227878A5/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/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/30Providing cache or TLB in specific location of a processing system
    • G06F2212/303In peripheral interface, e.g. I/O adapter or channel

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)【要約】 【課題】一般に、非同期I/Oキャッシュメモリのデー
タを管理するシステムにおいて、新たなデータのために
使用可能な追加のスペースが無い場合、既存のデータを
破棄して、その新たなデータのために場所を空けなけれ
ばならない。また、それによってディレクトリ/インデ
クスを更新しなければならない。キャッシュメモリ管理
のために更なる改良が望まれている。 【解決手段】本方法では、要求側装置へデータを通信
した直後に、キャッシュ・ラインの最後のデータ・バ
イトが要求側装置に送信された後で、正確なサイズま
たは終了バイトが既知である場合、キャッシュ・ライン
の最後のバイトを要求側装置へ送信した後で、及びそ
の他のタイミングで、キャッシュメモリからデータを破
棄することにより、必要な空キャッシュメモリーを確保
する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は概して、メモリ管理
システムに関し、特に、非同期I/Oキャッシュメモリ
のデータを管理するシステムに関する。
【0002】
【従来の技術】コンピュータシステム設計において、第
1の目的は常に、より高速かつより効率のよいコンピュ
ータシステムを設計するということである。このため、
最も一般的な高性能のコンピュータシステムには、キャ
ッシュメモリが設けられている。周知のように、キャッ
シュメモリは、システム性能を向上させるためにコンピ
ュータシステムにおいてマイクロプロセッサと主メモリ
との間に配置された高速メモリである。一般に、キャッ
シュメモリまたはキャッシュは、プログラムの実行中に
中央処理装置(CPU)によってアクティブに使用され
ている主メモリ・データの一部のコピーを記憶する。キ
ャッシュのアクセスタイムは主メモリのアクセスタイム
より高速とすることができるため、アクセスタイム全体
を短縮することができる。
【0003】データ記憶システムにおいてキャッシュメ
モリを使用することにより、通常の状態で、比較的大容
量で低速な主メモリを比較的高速でアクセスすることが
できる。このキャッシュメモリは、比較的小さい高速メ
モリであって、主メモリに記憶されたデータの一部をい
つでも記憶することができる。また、キャッシュメモリ
は、記憶しているデータ要素のキャッシュ・ディレクト
リまたはインデクスを有する。このキャッシュ・ディレ
クトリを参照することにより、ある所定時刻に各データ
要素がキャッシュメモリ内にあるか否か、および、ある
場合は、キャッシュメモリにおけるそのデータ要素の現
ロケーションを示す内容が得られる。
【0004】一般に、データ記憶システムは、ホストコ
ンピュータからのデータ・アクセス要求に応答する。こ
のデータ・アクセス要求には、例えば、読出し要求およ
び書込み要求がある。キャッシュメモリを有するデータ
記憶システムがデータへのアクセス要求を受信すると、
キャッシュ・ディレクトリを調べてアクセスすべきデー
タ要素がキャッシュメモリ内にあるか否かを判断する。
キャッシュメモリ内にある場合、データ記憶システム
は、キャッシュメモリ内のデータにアクセスする。キャ
ッシュメモリ内に無い場合、データ記憶システムは、主
メモリ内のデータにアクセスし、そのアクセスしたデー
タが近い将来に再びアクセスされる可能性がある場合
は、そのアクセスしたデータをキャッシュメモリ内にコ
ピーする。
【0005】データ記憶システムによっては、アクセス
すべきデータ要素がキャッシュメモリ内に無い場合、常
に、そのデータ要素をキャッシュメモリにコピーする。
また、データ記憶システムによっては、ホストコンピュ
ータからの明示的な「先取り」コマンドに応答して、指
定されたデータが即時にホストコンピュータにアクセス
されない場合であっても、その指定されたデータをキャ
ッシュにコピーする。
【0006】キャッシュメモリの容量は通常、主メモリ
の容量よりかなり小さいため、キャッシュメモリにコピ
ーすべき新たに受信するデータ要素のためのスペースを
キャッシュメモリ内に確保するために、しばしばキャッ
シュメモリ内のデータ要素を置換または削除する必要が
ある。概して、キャッシュメモリを有用なものとするた
めに、そのキャッシュメモリから置換または削除された
データ要素は、キャッシュメモリ内にステージされてい
るデータ要素よりも、近い将来にアクセスされる可能性
の低いものでなければならない。このプロセスは、キャ
ッシュ管理として従来から知られている。
【0007】最適なシステム性能を得るためにキャッシ
ュメモリ内のデータを管理する方法および方式として、
多くのものが知られている。これらの方法は、しばし
ば、システム毎に、およびアプリケーション毎に異な
る。また、キャッシュメモリがディスクドライブ(主メ
モリ)上のデータをキャッシングする電子(例えば集積
回路)メモリであるか、または、キャッシュメモリがよ
り低速の電子メモリ(主メモリ)のデータをキャッシン
グする高速な電子メモリであるかにより、管理方法は異
なる可能性がある。更に、キャッシュメモリのサイズに
よっても管理方法は異なる場合がある。
【0008】
【発明が解決しようとする課題】多くのキャッシュメモ
リ管理方法があるが、一般に、新たなデータのためにキ
ャッシュメモリ内に使用可能なスペースがある場合、そ
の新たなデータは単純にその使用可能なスペースにコピ
ーされ、キャッシュのディレクトリ/インデクスにログ
記録される。しかしながら、新たなデータのために使用
可能な追加のスペースが無い場合、既存のデータを破棄
して、その新たなデータのために場所を空けなければな
らない。また、それによってディレクトリ/インデクス
を更新しなければならない。上述したように、キャッシ
ュ内のいずれのデータを破棄すべきかを判断するための
多くの方法が知られ、実施されており、それらの方法は
各々、少なくとも近いうちに、再び使用される可能性の
低いデータを破棄しようとする。
【0009】キャッシュメモリ管理のために多くの方法
が知られているが、更なる改良が望まれている。
【0010】
【課題を解決するための手段】本発明のいくつかの目
的、利点および新規の特徴について、一部は以下の説明
で述べるが、一部は以下の内容を吟味することで当業者
には明らかとなるか、あるいは、本発明を実行すること
により知ることができるであろう。本発明の目的および
利点は、添付の特許請求の範囲で特に指摘する手段およ
び組合わせによって理解かつ取得することができる。
【0011】本発明は、その利点および新規の特徴を得
るために概して、非同期I/Oキャッシュメモリにおけ
るメモリ管理を改良したシステムおよび方法に関してい
る。本発明の1つの態様によれば、方法が提供され、そ
の方法は、要求側装置によるシステムメモリからのデー
タに対する要求を識別するステップを含む。なお、上記
要求側装置は、I/Oバスを介してシステムメモリと通
信する装置である。そして、本方法では、システムメモ
リからキャッシュメモリへのデータの送信を制御する。
更に、本方法は、キャッシュメモリから要求側装置へデ
ータを送信するステップを含み、本方法では、要求側装
置へデータを通信した直後、キャッシュメモリからデー
タを破棄する。
【0012】好ましい実施の形態によれば、本方法は、
I/Oキャッシュから一度に1ラインのデータをフラッ
シュする。1つの実現方法では、キャッシュ・ラインの
最後のデータ・バイトが要求側装置に送信された後、デ
ータの所定のキャッシュ・ラインがキャッシュからフラ
ッシュされる。しかしながら、より複雑な実現方法を採
用することも可能であることが認められよう。例えば、
キャッシュメモリ・コントローラが、要求側装置が1ブ
ロックの連続したデータを要求したと判断するようにし
てもよい。この場合、ブロックは、キャッシュ・ライン
内のある中間位置で終了する。しかしながら、本発明の
概念に従って、ブロックからの最後のデータ・バイトが
送信されたと判断すると、本発明では、その最後のデー
タ・バイトを含むキャッシュ・ラインを即時にフラッシ
ュすることができる。データ・ブロックが複数のキャッ
シュ・ラインに亙っていた場合、各ラインから要求側装
置に最後のデータ・バイトが送信されると、それより前
のキャッシュ・ラインはフラッシュされる。
【0013】特定の例として、本発明の1つの実施の形
態では、ATMカードから発信されたデータ要求を識別
することができる。そして、本発明の実施の形態では、
単純なATM通信が正確な48バイトのペイロードにお
いて発生するということを認識し、正確に48の連続し
たバイトが要求側装置に送信されるとみなすことができ
る。従って、本発明のこの実施の形態では、48データ
・バイトの最後のバイトを送信すると、48データ・バ
イトの最後のバイトを含むキャッシュ・データのライン
をフラッシュすることができる。48データ・バイトの
最初のバイトが異なるキャッシュ・ラインに配置されて
いた場合、上述したように、キャッシュ・ラインから最
後のデータ・バイトを送信すると、その異なるキャッシ
ュ・ラインをフラッシュすることができる。
【0014】本発明は、I/Oトラフィックが通常短い
時間内で頻発するものではない(CPU命令およびある
他の種類のデータと異なり)ということを認識すること
によって、重要な性能強化を実現することができる、と
いうことが認められよう。特に、本発明により、比較的
大きく、連続したデータ・ブロックに対し、または小さ
いデータ・ブロックに対しても、正確なサイズ、または
終了バイトが既知である場合、重要な性能利得が得られ
る。多数のキャッシュ・ラインを使用する可能性のある
大きいデータ・ブロックについて、キャッシュ・ライン
の最後のバイトを要求側装置へ送信すると、各キャッシ
ュ・ラインがフラッシュされる。同様に、要求されたデ
ータの最後のバイトが既知である場合、そのバイトを送
信すると、その最後のバイトを含むキャッシュ・ライン
をフラッシュすることができる。これにより、別の状況
ではキャッシュ内のスペースのクリアに関連した待ち時
間を発生させることなく、受信する新たなデータに対し
これらのキャッシュ・ラインを即時に使用可能とするこ
とができる。
【0015】本発明の他の態様によれば、キャッシュメ
モリ内のデータを管理するシステムが提供される。本シ
ステムは、キャッシュメモリ内の複数のデータ・ライン
を構成するメモリ・スペースを備えている。更に、本シ
ステムは、メモリ・スペース内のデータを管理するよう
構成されたメモリ・マネージャを備えている。ここで、
メモリ・マネージャは、いくつかの機能ユニットから構
成されている。1つの機能ユニットは、I/Oバスを介
して通信する要求側装置からのメモリ読出しを識別する
よう構成することができる。別の機能ユニットは、シス
テムメモリからキャッシュ内のメモリ・スペースの少な
くとも1ラインへのデータの送信を制御するよう構成さ
れている。更に別の機能ユニットは、キャッシュメモリ
のキャッシュメモリ・スペースからのデータの送信を制
御するよう構成されている。最後に、また別の機能ユニ
ットは、キャッシュ・データの各ラインを、そのライン
からの最後のデータ・バイトが要求側装置に送信される
と破棄するよう構成されている。
【0016】本明細書に組込まれその一部を形成する添
付図面は、本発明のいくつかの態様を示し、その説明と
共に、本発明の原理を説明する役割を果たしている。
【0017】
【発明の実施の形態】本発明のいくつかの態様について
要約したが、ここでより詳細に、図面に示されているよ
うな本発明の説明に言及する。本発明をこれらの図面と
関連して説明するが、ここで開示する実施の形態に本発
明を限定する意図はない。反対に、添付した特許請求の
範囲で定義されているような本発明の精神および範囲内
に含まれる代替物、変更態様および同等物をすべて包含
することを意図している。
【0018】ここで、図1について説明する。図1は、
本発明の概念および教示内容に従って構成されたシステ
ム50の最上位の概要を示すブロック図である。更に詳
細には、本発明は、特にシステムバス58とI/Oバス
60との間に介挿されるように構成された装置52を備
えている。当業者には認められるように、システムバス
58は、導線をグループ化したものであり、コンピュー
ティングシステム内のメモリ54およびCPU56等の
多数の装置間で相互通信するための手段である。同様
に、I/Oバス60も導線をグループ化したものであ
り、システムバス58上の装置54、56が他の遠隔装
置と相互通信するための手段である。
【0019】図2に関連して更に後述するように、パー
ソナルコンピュータ等のコンピューティング環境では、
しばしばマザーボードを有するシステムが用いられ、こ
のマザーボード上には、メモリおよびCPU等のいくつ
かのシステム構成要素が設けられている。同様に、あら
ゆる異なる「拡張」カードに適応するために、複数の拡
張スロットがマザーボード上に設けられている。このよ
うな拡張カードには、ディスク・ドライブ・コントロー
ラ、モデムおよび他の通信カード等がある。これらのよ
うなカードまたは装置は、システムバス58を介してC
PUおよびメモリと相互通信することができるが、しば
しばPCIバス等のI/Oバスを介して通信するカード
または装置もある。
【0020】周知のように、システムバス58を介して
相互通信する装置は一般に、共通のシステムクロックに
よって動作する限り同期して相互通信する。本発明で
は、システムバスとI/Oバスとの間に介挿された装置
52を提供する。最も広い意味で、本発明は、キャッシ
ュデータ記憶領域70と共にアドレス(またはタグ)記
憶領域72およびコントローラ76を有する装置として
見ることができる。以下の説明から認められるように、
本発明では、キャッシュメモリ内の使用可能なスペース
の量を最大にすることにより、その利点を得ることがで
きる。この目的を達成するために、近い将来使用される
可能性が低いと考えられるデータをキャッシュから即時
にフラッシュする。ここで、本発明の好ましい実施の形
態では、I/Oデータが繰返し使用される可能性が低い
ことを想定している。従って、データは、キャッシュメ
モリから要求側装置に送信されると、そのキャッシュメ
モリからフラッシュされる。
【0021】ここで、図2を参照する。図2は、本発明
の好ましい実施の形態による環境の典型例である環境を
定義するコンピュータシステム100を示す。ここで、
コンピュータシステム100は、コンピュータ102お
よびモニタ104を有するハイエンド・ディスクトップ
・コンピューティング・システム等、あらゆる種類の高
性能コンピューティング・システムのうちの任意のもの
とすることができる。また、コンピュータ102はあら
ゆる形態をとることができるが、一般的なコンピュータ
102は、マザーボード110を有している。周知のよ
うに、一般にマザーボード110は、あらゆるオンボー
ド集積回路構成要素120を有している。これらオンボ
ード集積回路構成要素120には、CPU122(例え
ばマイクロプロセッサ)、システムメモリ124および
コンピュータ・アーキテクチャにおいて周知でありその
コンピュータ・アーキテクチャに含まれる様々な他の集
積回路装置のような装置が含まれる。
【0022】他の集積回路装置として、マザーボード上
に配置されているかまたはプラグイン・カード上に配置
されているかに関わらず、キャッシュメモリ126があ
る。このキャッシュメモリ126は、I/O回路128
を介してPCIバス130と通信するよう配置されてい
る。また、本発明の概念および教示内容に従って、コン
ピュータシステム100内には様々な他の回路構成要素
を設けることができる。実際に、大抵の高性能コンピュ
ーティング・システムには一般に、様々な他の支持回路
および追加機能回路が設けられている。このような他の
回路構成要素の追加および実装は、当業者には容易に理
解されるものであり、ここでは説明する必要がない。代
りに、本発明の概念および教示内容をよりよく説明する
ために、図2のコンピューティングシステム100は、
選択した数個の構成要素のみを有するものとして示して
いる。
【0023】更に周知のように、あらゆるオンボード回
路構成要素に加えて、通常コンピューティング・システ
ムは拡張機能を有している。この点で、大抵のコンピュ
ーティングシステム100には、複数の拡張スロット1
42、144、146が設けられており、それらによっ
て集積回路カードをコンピューティングシステム100
のマザーボード110内にプラグ接続することができ
る。更に詳細には、一般に、拡張カード140は、コン
ピューティング・システムの使用すべてには必要ではな
いがあるユーザ・グループの限定された使用に必要であ
る専用の機能を提供する。例えば、モデムカード(図示
せず)により、コンピューティングシステム100は、
音声およびデータ等の情報を通信リンクを介して遠隔コ
ンピューティング・システムまたはユーザに送信するこ
とができる。なお、CPU122、システムメモリ12
4およびキャッシュメモリ126のような要素は、マザ
ーボード110上に配置されているように図示されてい
るが、代りに拡張カードに設けることも可能であるとい
うことが認められよう。図2に示す特定の実施の形態
は、説明の目的のみのために提示されており、本発明の
範囲を限定していると考えるべきではない。
【0024】コンピューティングシステム100に関連
して様々な拡張カードを使用することができるが、本発
明の目的のために、拡張カードを1つだけ図示してい
る。特に、ここで図示している拡張カード140は、A
TMカード(以下、ATMカード140とする)であ
る。モデムと同様、このATMカード140により、コ
ンピュータシステム100は、通信リンクを介して遠隔
システムと通信することができる。周知のように、通信
業界では広範囲の様々な規格およびプロトコルが使用さ
れている。後に更に説明するATMは、通信規格の単な
る一例である。従って、コンピューティングシステム1
00は、ATMカード140によりATM規格に従って
遠隔システムと通信することができる。
【0025】また、図2には、システムバス150およ
びPCIバス130の両方を示す。一般に、システムバ
ス150は、システムメモリ124、CPU122、キ
ャッシュ・メモリ126、およびコンピュータシステム
100内に設けることができる他の装置(図示せず)を
相互接続する高速バスである。コンピューティングシス
テム100の残りの部分とATMカード140との間の
通信は、PCIバス130を介して行うことができる。
更に後述するように、本発明は、ATMカード140を
介する通信に対し、システムメモリ124からPCIバ
ス130にデータをフェッチする時に、コンピューティ
ングシステム100の性能、動作および効率全体を強化
するシステムおよび方法に関している。
【0026】しかしながら、本発明の特性について説明
する前に、まず、キャッシュメモリ装置についてある基
本的な情報を提供する。この情報は、本発明の教示内容
に従って構成されたシステムを完全に説明するという目
的のためだけに与えられる。しかしながら、当業者は、
以下に示すキャッシュメモリ装置の概念および動作を理
解し認めるであろう。
【0027】キャッシュの基本 上述したように、キャッシュメモリは、システム性能を
向上させるためにコンピュータシステム内でマイクロプ
ロセッサと主メモリとの間に配置された高速メモリであ
る。キャッシュメモリ(またはキャッシュ)は、プログ
ラムの実行中に中央処理装置(CPU)によってアクテ
ィブに使用されている主メモリ・データの一部のコピー
を記憶する。キャッシュのアクセスタイムは主メモリの
アクセスタイムより高速とすることができるため、アク
セスタイム全体を短縮することができる。
【0028】マイクロプロセッサ・ベースのシステムの
多くは、「直接マップ」キャッシュメモリを実装してい
る。一般に、直接マップ・キャッシュメモリは、高速デ
ータ・ランダム・アクセス・メモリ(RAM)と並列高
速タグRAMとから構成されている。データ・キャッシ
ュ内の各ラインのRAMアドレスは、エントリが対応す
る主メモリのラインのアドレスの下位部分と同じであ
り、主メモリのアドレスの上位部分は、タグRAMに格
納される。従って、主メモリを、1以上のバイト各々の
n「ライン」の2mブロックとして考える場合、キャッ
シュのデータRAM内のi番目のラインは、主メモリの
mブロックのうちの1つのi番目のラインのコピーと
なる。そのラインが来た主メモリのブロックの識別情報
は、タグRAMのi番目のロケーションに記憶される。
【0029】CPUがメモリにデータを要求すると、ラ
イン・アドレスの下位部分が、キャッシュのデータRA
MとキャッシュのタグRAMとの両方に対するアドレス
として与えられる。選択されたキャッシュのエントリに
対するタグは、CPUのアドレスの上位部分と比較さ
れ、それが一致している場合、「キャッシュ・ヒット」
であると指摘され、キャッシュのデータRAMからのデ
ータをシステムのデータ・バスに乗せることができる。
一方、タグがCPUのアドレスの上位部分と一致しない
か、またはタグ・データが無効である場合、「キャッシ
ュ・ミス」が指摘され、データが主メモリからフェッチ
される。それはまた、前のエントリに上書きして、可能
性のある将来の使用のためにキャッシュ内に配置され
る。一般に、キャッシュ・ミスの場合、1バイトのみが
要求された場合であっても、ライン全体が主メモリから
読出されてキャッシュ内に配置される。CPUからのデ
ータ書込みにおいて、キャッシュRAMまたは主メモリ
または両方を更新することができ、そのためには、一方
に対し、他方において書込みが発生したことを示すため
にフラグが必要であることが分かっている。
【0030】従って、直接マップ・キャッシュにおい
て、補助メモリの各「ライン」を、キャッシュ内の1つ
のラインのみにマッピングすることができる。「完全連
想記憶方式(fully assocative)」キャッシュにおいて
は、補助メモリの特定のラインを、キャッシュ内のいず
れのラインにもマップすることができる。この場合、キ
ャッシング可能なアクセスにおいて、キャッシュ・ヒッ
トまたはキャッシュ・ミスが発生したか否かを判断する
ために、すべてのタグをアドレスと比較しなければなら
ない。また、直接マップ・キャッシュとフルアソシアテ
ィブ・キャッシュとの妥協を表す「k−ウェイセット連
想記憶方式(k-way set associative)」キャッシュ・ア
ーキテクチャもある。kウェイ・セット連想記憶方式キ
ャッシュ・アーキテクチャでは、補助メモリの各ライン
をキャッシュ内のk個のラインのいずれにもマップする
ことができる。この場合、キャッシュ・ヒットまたはキ
ャッシュ・ミスが発生したか否かを判断するために、キ
ャッシング可能な補助メモリのアクセス中にk個のタグ
をアドレスと比較しなければならない。また、キャッシ
ュは、「セクタ・バッファ」または「サブブロック」タ
イプのキャッシュとすることも可能である。この場合、
いくつかのキャッシュ・データ・ライン(各々が自身の
有効ビットを有する)が、1つのキャッシュ・タグRA
Mエントリに対応する。
【0031】CPUがキャッシュの内容を修正する命令
を実行する時、これらの修正は、主メモリ内でも行わな
ければならず、そうしなければ、主メモリ内のデータが
「古い」ものとなる。主メモリの内容をキャッシュの内
容と一致するよう維持する従来からの技術として、
(1)ライトスルー方法および(2)ライトバックまた
はコピーバック方法の2つの技術がある。ライトスルー
方法では、キャッシュの書込みがヒットすると、データ
が、キャッシュに書込まれた直後または書込まれている
間に、主メモリにも書込まれる。これによって、主メモ
リの内容が常に、有効かつキャッシュの内容と一致した
ものとなる。ライトバック方法では、キャッシュの書込
みがヒットすると、システムはキャッシュにデータを書
込み、データワードがキャッシュには書込まれたが主メ
モリには書込まれていないことを示す「ダーティビッ
ト」をセットする。そして、キャッシュ・コントローラ
は、キャッシュにデータのラインを上書きする前にダー
ティビットを検査し、ダーティビットがセットされてい
る場合は、キャッシュに新たなデータをロードする前に
そのデータのラインを主メモリに書込む。
【0032】コンピュータシステムは、所定のアドレス
空間に対し複数レベルのキャッシュメモリを有すること
ができる。例えば、2レベルのキャッシュシステムで
は、第1のレベルである「レベル1」(L1)のキャッ
シュは、論理的にホストプロセッサに隣接している。第
2のレベル(L2)のキャッシュは、論理的に第1のレ
ベルのキャッシュの後ろにあり、DRAMメモリ(この
場合、第3のメモリと言うことができる)は、論理的に
第2のレベルのキャッシュの後ろに配置されている。ホ
ストプロセッサがメモリアドレス空間におけるアドレス
へのアクセスを実行する場合、可能であれば第1のレベ
ルのキャッシュが応答する。第1のレベルのキャッシュ
が応答できない(例えば、L1キャッシュのミスによ
る)場合、可能であれば第2のレベルのキャッシュが応
答する。第2のレベルのキャッシュもまた応答できない
場合、DRAM自体にアクセスがなされる。ホストプロ
セッサは、システム内にキャッシングのレベルがいくつ
存在するかについて、または実際にキャッシングが存在
していることについて全く知る必要がない。同様に、第
1のレベルのキャッシュは、DRAMの前に第2のレベ
ルのキャッシングが存在するか否かを知る必要がない。
このように、ホスト処理装置にとって、キャッシュとD
ARMとの組合せは、単に1つの主メモリ構造としかみ
なされない。同様に、L1キャッシュにとって、L2キ
ャッシュとDRAMとの組合せは、単に1つの主メモリ
構造としかみなされない。実際に、第3のレベルのキャ
ッシングは、L2キャッシュと実際のDRAMとの間に
含めることができ、L2キャッシュは、同様にL3およ
びDRAMの組合せを1つの主メモリ構造としてみな
す。
【0033】コンピュータシステムにおけるキャッシュ
メモリは一般に、CPUに対し主メモリ・データをキャ
ッシングする。キャッシュがライトバック・プロトコル
を使用する場合、しばしばキャッシュメモリは、主メモ
リの対応するラインより最近のデータを保持することと
なる。これは、他のバスマスタ(およびマルチプロセッ
サシステム内の他のCPU)が主メモリのラインへのア
クセスを要求する場合に問題となる。主メモリのバージ
ョンがデータの最新バージョンであるか否かが分からな
いためである。従って、ライトバック・キャッシュ・コ
ントローラは、一般に問合せサイクル(スヌープサイク
ルとしても知られている)をサポートしている。この場
合、バスマスタがキャッシュメモリに対し、更に最近の
データのコピーを有しているかを示すよう問い合わせ
る。
【0034】図3は、キャッシュメモリ126のいくつ
かの基本的な構成要素を示すブロック図である。これら
基本的な構成要素には、複数のタグ302、対応する複
数のデータ・ライン304およびディレクトリ/インデ
クス306(以下、ディレクトリ306とする)があ
る。周知のように、キャッシュのタグ302は一般に、
目標データのメモリ・ロケーションのブロック(ライ
ン)を定義するアドレス・ビットの部分(最上位ビッ
ト)を含んでいる。最下位ビット(don't care値とし
て表される)は、対応するデータ・ライン304におけ
る目標データ値の(ブロック内の)特定の位置を識別す
る。本発明の好ましい実施の形態によれば、キャッシュ
メモリ126は、64バイトのデータ・ライン304を
使用する。従って、アドレス・ビットの6つの最下位ビ
ットは、所定のデータ・ライン304内の目標データ値
の特定のロケーションを指定する。
【0035】また、図3には、ディレクトリ306が示
されている。周知のように、ディレクトリ306は、個
々のタグ302のログまたはデータベースを保持する。
スタートアップまたは初期化時には、キャッシュメモリ
126内にはデータが格納されていないため、ディレク
トリ306にはタグが格納されていない。従って、ある
装置がシステムメモリ124からのデータを読出すよう
要求した時、システムメモリ124からキャッシュメモ
リ126のデータ・ライン304にデータ・ライン全体
が読込まれる。アドレス・ビットの最上位ビットは、対
応するタグ302に書込まれ、ディレクトリ306に格
納される。指定したメモリ・ロケーションからのデータ
要求が次に発せられた時、キャッシュメモリ126は、
ディレクトリ306を調べて、そのデータ値が現在キャ
ッシュ内にあるか否かを判断する。実際にデータ値がキ
ャッシュメモリ126内にある場合、それを高速でアク
セスして読出すことができる。しかしながら、そのデー
タ値が現在キャッシュメモリ126内に無い場合、シス
テムメモリを検索し、キャッシュメモリ126の使用可
能なデータ・ライン304に書込む。上記と同様、アド
レス・ビットの最上位ビットは、対応するタグに書込ま
れ、ディレクトリ306にログが記録される。
【0036】その後、システムメモリ124からのデー
タ要求に対し、上述したプロセスが繰返される。しかし
ながら、ある時点で、キャッシュメモリ126のすべて
のデータ・ライン304が一杯になる。この時点で、キ
ャッシュメモリ126は、キャッシュメモリ126内に
読込まれる新たなデータのために使用可能なスペースを
確保するため、少なくとも1ラインのデータ・ライン3
04を破棄しなければならない。上述したように、いず
れのデータ・ライン304をキャッシュメモリ126か
ら破棄すべきかを決定する広範囲の様々なアルゴリズム
および方法が知られている。好ましくは、近い将来に再
び使用される可能性が最も低いデータ・ライン304を
破棄するアルゴリズムが選択される。データがキャッシ
ュメモリ126から破棄されると、それに従ってディレ
クトリ306が更新され、ディレクトリ・スペースから
対応するタグ302が削除される。
【0037】本発明の作用 キャッシュメモリ装置のいくつかの基本的な面について
説明したが、ここでは、本発明の好ましい実施の形態に
ついて説明する。この点で、本発明は、キャッシュメモ
リ126内のデータを管理するシステムおよび方法に関
し、このシステムおよび方法によって、近い将来再び使
用されることがないと予想されるデータをキャッシュメ
モリ126から破棄する。より詳細には、本発明は、キ
ャッシュメモリ126を通して読出されるデータを破棄
するメモリ管理システムに関し、本発明によるシステム
は、I/Oバスを介してキャッシュメモリ126と通信
する装置と通信する。これにより、使用可能なスペース
が無い場合のキャッシュメモリ・スペースを解放する処
理に関連する待ち時間を発生させることなく、新たなま
たは追加のデータを受信するためにいつでも使用可能な
キャッシュメモリ・スペースの量を最大化することがで
きる。
【0038】ここで、図4を参照する。図4は、本発明
に従って構成された、キャッシュメモリ126のいくつ
かの基本的な構成要素を示すブロック図である。基本的
に、キャッシュメモリ126は、メモリ・マネージャ4
02、メモリ・スペース404およびディレクトリ/イ
ンデクス306を有している。メモリ・スペース404
は、図3に関連して説明したデータ・ライン304に対
応している。メモリ・マネージャ402は、好ましく
は、ハードウェアで実現され、あらゆる機能を実行する
よう特別に構成された集積回路410から構成される。
例えば、これらの機能には、転送(またはフェッチ)の
識別412、スペースを使用可能にするためのキャッシ
ュ・データの破棄414、キャッシュへのデータの読込
み416、I/Oバス(例えばPCIバス)へのデータ
の書出し418およびキャッシュからのデータの破棄4
20を含めることができる。
【0039】好ましい実施の形態によれば、本発明は、
I/Oキャッシュから一度に1ラインのデータをフラッ
シュする。1つの実現方法では、キャッシュ・ラインの
最後のデータ・バイトが要求側装置に送信された後、デ
ータの所定のキャッシュ・ラインをフラッシュする。し
かしながら、より複雑な実現方法を採用することも可能
であるということが認められよう。例えば、キャッシュ
メモリ・コントローラが、要求側装置が1ブロックの連
続したデータを要求したと判断するようにしてもよい。
このブロックは、キャッシュ・ライン内のある中間位置
で終了する。しかしながら、本発明の概念に従って、そ
のブロックからの最後のデータ・バイトが送信されたと
判断すると、本発明では、その最後のデータ・バイトを
含むキャッシュ・ラインを即時にフラッシュすることが
できる。データ・ブロックが複数のキャッシュ・ライン
に亙っていた場合、最後のデータ・バイトが各ラインか
ら要求側装置に送信されると、それより前のキャッシュ
・ラインがフラッシュされる。
【0040】本発明では、I/Oトラフィックは(CP
U命令および他のいくつかの種類のデータと異なり)通
常短い時間内に頻発しないということを認識することに
より、重要な性能強化を実現する、ということが認めら
れる。より詳細には、本発明により、比較的大きく、連
続したデータ・ブロックに対し、または小さいデータ・
ブロックに対してさえも、正確なサイズ(または終了バ
イト)が既知である場合、重要な性能利得が得られる。
多数のキャッシュ・ラインを使用する可能性のある大き
いデータ・ブロックに対し、キャッシュ・ラインの最後
のバイトを要求側装置に送信すると、各キャッシュ・ラ
インがフラッシュされる。同様に、要求されたデータの
最後のバイトが既知である場合、その最後のバイトを送
信すると、そのバイトを含むキャッシュ・ラインをフラ
ッシュすることができる。これにより、別の状況ではキ
ャッシュ内のスペースをクリアすることに関連する待ち
時間が発生することなく、これらのキャッシュ・ライン
を、受信する新たなデータに対して即時に使用可能とす
ることができる。
【0041】本発明による高効率なメモリ管理装置およ
び方法により、比較的小さいI/Oキャッシュを実現す
ることができる。また、これは、比較的低コストで実現
することができる。好ましい実施の形態のI/Oキャッ
シュは、比較的小さい16ラインのキャッシュであり、
各ラインは64バイトのデータを有している。
【0042】本発明の概念および教示内容は概して、I
/Oバスを介しI/Oキャッシュを通してシステムバス
により通信する広範囲の装置に対して適用可能である、
ということが認められよう。1つの例として、本発明の
概念は、PCIバスによるATM通信に適用することが
できる。周知のように、ATM通信は一般に、48バイ
トのペイロードという特徴を有している。従って、本発
明に従って構成されたシステムは、ATMカードに対す
るデータ転送を識別した場合、48バイトの連続したブ
ロックが送信されると想定する。例えば、最初のバイト
がキャッシュ・ラインの50番目のバイトに配置されて
いる場合、最初の64バイトのキャッシュ・ラインの最
後は、最初の15データ・バイト分のみに対応するデー
タ・スペースを有することとなるため、48バイトのペ
イロードには2つのキャッシュ・ラインが必要となる。
動作中、15番目のデータ・バイト(最初のキャッシュ
・ラインの64番目のバイト)が読出されると、最初の
キャッシュ・ラインをフラッシュすなわち破棄すること
ができ、即時にそれを新たなデータに使用可能とするこ
とができる。そして、残りの33のデータ・バイトは、
要求側のATMカードに読出すことができる。
【0043】1つの実施の形態によれば、第2のキャッ
シュ・ラインの最後のデータ・バイトがキャッシュから
読出されないため、第2のキャッシュ・ライン内のデー
タは即時には破棄されない。しかしながら、所定時間
後、および他のキャッシュ・ラインが一杯になりメモリ
・マネージャ402がスペースを必要とする時、このキ
ャッシュ・ラインは読出される可能性が低いとみなすこ
とができ、その時に破棄することができる。他の実施の
形態では、本発明を実現するシステムは、ATMペイロ
ードの最後のバイトがキャッシュから読出されたことを
認識し、その時にそのラインの残りのデータ値がいずれ
も必要とされないということを適切に想定し、第2のキ
ャッシュ・ラインを破棄することができる。
【0044】本システムは、本発明の概念および教示内
容に従って、多数の方法でATMカードによってデータ
要求がなされたことを判断することができる。例えば、
本システムは、所定のカード・アドレス等の識別子がP
CIバスを通過した、すなわち所定のカードがATMカ
ードであるということをシステム構成から知ることがで
きる。あるいは、システムが、単純に、所定のカードに
対するデータ転送の特性をある時間監視することによ
り、例えば、データ転送が常に48バイト・ブロックで
発生することを識別することにより、この判断を行うよ
うにしてもよい。更に、本発明は、米国特許第5,74
5,488号の教示内容を用いることができる。なお、
この特許を参照により援用し、本明細書の一部として取
込む。この特許は、通信ネットワークにおけるパケット
の種類を検出する方法を教示していると主張する。特
に、この特許は、パケット/セルのヘッダ情報を評価す
ることによりATMセルを検出するシステムおよび方法
を開示していると主張する。従って、この種のシステム
および方法を使用して、本発明に関連するATM転送を
識別することができる。また、同様に、他の方法も使用
することができる。
【0045】本発明の1つの態様によれば、図5に示す
ように、キャッシュのメモリ・マネージャ402の性能
を向上させる方法が提供される。ここで図5のフローチ
ャートに沿って説明する。 ステップ504:メモリ・マネージャ402、受信する
フェッチ要求を識別してデータの要求を識別する。 ステップ506:要求が検出されると、メモリ・マネー
ジャ402は、ディレクトリ306を調べて、メモリ・
スペース404がデータを受信するために使用可能であ
るか否かを判断する。 ステップ508:必要であれば、メモリ・マネージャ4
02は、少なくとも1ラインのデータを破棄する。 ステップ510:メモリ・マネージャ402は、システ
ムメモリ124からキャッシュメモリ126にデータを
読込まむ。 ステップ512:メモリ・マネージャ402は、キャッ
シュメモリ126からIPCIバス130にデータを書
出す。 ステップ514:メモリ・マネージャ402は、データ
を破棄し、さらにディレクトリ306のタグを更新す
る。 ここで、図5のフローチャートについてさらに詳細な説
明を行う。本発明の1つの実施の形態によれば、メモリ
・マネージャ402またはその一部は、受信するフェッ
チ要求を識別してデータの要求を識別することができる
(ステップ504)。要求が検出されると、メモリ・マ
ネージャ402は、ディレクトリ306を調べて、メモ
リ・スペース404がデータを受信するために使用可能
であるかを判断することができる(ステップ506)。
そして、必要であれば、メモリ・マネージャ402は、
少なくとも1ラインのデータを、使用可能なスペースが
無いとみなして破棄する(ステップ508)。
【0046】その後、メモリ・マネージャ402は、シ
ステムメモリ124からキャッシュメモリ126のメモ
リ・スペース404に読込まれるデータの配置を制御す
る(ステップ510)。このステップには、キャッシュ
メモリ126内に読込まれるデータ・ラインについてデ
ィレクトリ306のタグを更新するステップが含まれ
る。そして、メモリ・マネージャ402は、キャッシュ
メモリ126からI/Oバッファ128を介しPCIバ
ス130に向かう通信およびデータを制御する。最後
に、メモリ・マネージャ402は、例えば、ディレクト
リ306からタグを破棄することによってデータを破棄
する。
【0047】本発明の1つの実施の形態により、メモリ
・マネージャ402は、データ・ライン304の最後の
バイトをPCIバス130に出力すると、データを破棄
する。I/Oデータは通常シーケンシャルであるため、
メモリ・マネージャ402は、最後のラインのバイトを
出力すると、そのデータ・ライン304のデータは二度
と必要とされないとみなすことができる。当然、ライン
が部分的に通信されることにより、そのラインの最後の
バイトがI/Oデータとして使用されていない場合、他
の機構を設けてそれらのラインを破棄することも可能で
ある。あるいは、それらのラインをキャッシュメモリ1
26内に残し、最後に、通常の(例えば、最低使用頻
度)破棄アルゴリズムによって破棄することも可能であ
る。
【0048】本発明の好ましい実施の形態について説明
したが、当業者には、本発明の広い概念が他のシステム
に対して同様に適用可能であるということが認められよ
う。この点で、本発明の広い目的は、近い将来再び読出
しまたは使用される可能性が非常に低いデータをキャッ
シュメモリから即時に破棄することにより、システム性
能を強化することである。好ましい実施の形態の1つの
適用例において、本発明では、ATMデータを識別し、
このデータが近いうちに再使用される可能性が低いもの
と認識することにより、キャッシュメモリからこのデー
タを即時に破棄する。同様にして、再使用の可能性が低
いものと容易に識別可能な他の種類のデータを、同様に
キャッシュメモリ126から破棄することができる。こ
れにより、キャッシュメモリ内に保持されている他のデ
ータを最初に破棄する必要なく、キャッシュ内の一定量
のスペースを、受信する新たなデータに対して直ぐに使
用可能な状態にする。
【0049】従って、本発明は、システムメモリとその
システムメモリからのデータを要求する装置との間に介
挿されたキャッシュメモリを有し、そのデータがキャッ
シュメモリ126を通してフェッチされるシステムとし
て、適切に見ることができる。キャッシュのメモリ・マ
ネージャ402は、「一度だけの」データを識別するよ
う動作可能である。この「一度だけの」データは、近い
うちに再使用される可能性が低いデータである。従っ
て、本発明によれば、キャッシュのメモリ・マネージャ
402は、このデータを即時に破棄する。
【0050】本発明の他の態様によれば、キャッシュメ
モリ126を、ATMデータ(またはより広く「一度だ
けの」データ)を一時的に保持するために使用されるデ
ータ・ラインのタグを、キャッシュのディレクトリ30
6にまったくログ記録しないように構成することも可能
である。このように、それらのタグがディレクトリ30
6にログ記録されないため、その後のシステムメモリ1
24からのデータ要求は、自動的にキャッシュメモリ1
26内のスペースを使用可能とする。
【0051】本発明に従って、更に最適化することがで
きる。例えば、ATMデータ転送のコンテキストにおい
て、正確に48バイトのデータがシステムメモリ124
からキャッシュメモリ126に読込まれるということが
わかっている。そのデータが、キャッシュメモリ126
から即時に破棄されることとなるため、本システムは、
キャッシュメモリ内のキャッシュ・ライン全体に読込む
必要はない。説明のために、ATMデータに対する要求
を考える。この場合、データの先頭アドレスがキャッシ
ュメモリ126内のデータ・ライン304の最初のバイ
トと一致するものとする。上述したように、そのデータ
・ラインの最初の48バイトは使用されるが、そのデー
タ・ラインの最後の16バイトは使用されない。従来の
キャッシュメモリでは、データのライン全部がキャッシ
ュ内に読込まれる。これは、データのそのラインタグに
対応するメモリ・ロケーションに対する後続する読出し
が、キャッシュメモリ126から直接行われるためであ
る。従って、従来はキャッシュ・ラインの終端のデータ
がシステムメモリと整合性を維持することが重要であっ
た。しかしながら、本発明によれば、そのATMデータ
を含むデータ・ラインがキャッシュメモリ126から即
時に破棄されることとなるため、この状態は起こらな
い。従って、システムメモリ124からキャッシュメモ
リ126に、64バイトではなく48バイトのみを転送
することにより、システムバス150の帯域幅を低減す
ることができる。
【0052】以上、本発明の実施例について詳述した
が、以下、本発明の各実施態様の例を示す。
【0053】(実施態様1)非同期I/Oキャッシュメ
モリ(126)を有し、該キャッシュメモリ(126)
が、システムメモリ(124)と、I/Oバス(13
0)を介して該キャッシュメモリ(126)と通信する
よう配置された要求側装置との間に介挿されたコンピュ
ーティング・システム(100)において、該キャッシ
ュメモリ(126)内のデータを管理する方法であっ
て、(a)前記要求側装置による前記システムメモリ
(124)からのデータに対する要求を、近い将来再び
要求される可能性が低いデータに対する要求であるとし
て識別するステップ(504)と、(c)前記データを
前記システムメモリ(124)から前記キャッシュメモ
リ(126)内に読込むステップ(510)と、(d)
前記キャッシュメモリ(126)から前記要求側装置に
前記データを送信するステップ(512)と、(e)前
記キャッシュメモリ(126)から前記データを即時に
破棄するステップ(514)と、を含むことを特徴とす
る方法。
【0054】(実施態様2)前記装置は、ATMカード
(140)であることを特徴とする実施態様1記載の方
法。
【0055】(実施態様3)前記データを読込むステッ
プ(510)では、前記システムメモリ(124)から
前記キャッシュメモリ(126)に少なくとも48バイ
トのデータを読込むことを特徴とする実施態様1記載の
方法。
【0056】(実施態様4)システムメモリ(124)
とI/Oバス(130)との間に介挿されたキャッシュ
メモリ(126)を有するコンピューティング・システ
ム(100)であり、前記システムメモリ(124)か
ら前記I/Oバス(130)に読出されるデータが、前
記キャッシュメモリ(126)を通して読出されるコン
ピューティング・システム(100)において、該キャ
ッシュメモリ(126)内のデータを管理する方法であ
って、(a)I/Oバス上の装置による前記システムメ
モリ(124)からのデータに対する要求を識別するス
テップ(504)と、(b)前記データを前記システム
メモリ(124)から前記キャッシュメモリ(126)
内に読込むステップ(510)と、(c)要求側装置と
通信するために、前記キャッシュメモリ(126)から
前記I/Oバス(130)に前記データを送信するステ
ップ(512)と、(d)前記キャッシュメモリ(12
6)から前記データを即時に破棄するステップ(51
4)と、を含むことを特徴とする方法。
【0057】(実施態様5)前記要求側装置は、ATM
カード(140)であることを特徴とする実施態様4記
載の方法。
【0058】(実施態様6)前記システムメモリ(12
4)から前記キャッシュメモリ(126)にデータを読
込む前記ステップ(510)では、該キャッシュメモリ
(126)に少なくとも48バイトのデータを自動的に
読込むことを特徴とする実施態様5記載の方法。
【0059】(実施態様7)前記システムメモリ(12
4)から前記キャッシュメモリ(126)にデータを読
込む前記ステップ(510)では、該キャッシュメモリ
(126)に適切な数のキャッシュ・データ・ラインを
自動的に読込むことを特徴とする実施態様6記載の方
法。
【0060】(実施態様8)前記システムメモリ(12
4)から前記キャッシュメモリ(126)にデータを読
込む前記ステップ(510)では、該キャッシュメモリ
(126)に正確に48バイトのデータを自動的に読込
むことを特徴とする実施態様5記載の方法。
【0061】(実施態様9) (a)前記データを受信するために前記キャッシュメモ
リ内に使用可能なスペースがあるか否かを判断するステ
ップ(506)と、(b)十分なスペースが得られない
場合に、前記データ用にスペースを確保するため既存の
キャッシュ・データを破棄するステップ(508)とを
更に含むことを特徴とする実施態様4記載の方法。
【0062】上述した説明は、本発明をすべて網羅する
ことを意図するものではなく、あるいは、開示した正確
な形態に本発明を限定することを意図するものでもな
い。上記教示内容に照らして、明らかな変更態様または
変形態様が可能である。この点で、説明した実施の形態
は、考えられる特定の使用に適するように、当業者があ
らゆる実施の形態においておよびあらゆる変更態様で本
発明を使用することができるように、本発明の原理およ
びその実際的な適用を最もよく説明するために選択され
述べられている。そのような変更態様および変形態様す
べてが、それらが公正かつ合法に権利が与えられる広さ
に従って解釈される時、添付した特許請求の範囲によっ
て判断される本発明の範囲内にある。
【図面の簡単な説明】
【図1】 システムバスとI/Oバスとの間にI/Oキ
ャッシュを配置した状態を示すブロック図である。
【図2】 PCI(I/O)バスを介してキャッシュメ
モリと通信する拡張カードを有する高性能コンピュータ
システムのブロック図である。
【図3】 キャッシュメモリ装置の基本的な構成要素を
示すブロック図である。
【図4】 本発明に従って構成されたキャッシュメモリ
およびメモリ・マネージャを示すブロック図である。
【図5】 本発明に従って構成されたシステムの最上位
の機能的動作を示すフローチャートである。
【符号の説明】
100:コンピューティング・システム 124:システムメモリ 126:非同期I/Oキャッシュメモリ 130:PCIバス 140:要求側装置(ATMカード)

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】非同期I/Oキャッシュメモリを有し、該
    キャッシュメモリが、システムメモリと、I/Oバスを
    介して該キャッシュメモリと通信するよう配置された要
    求側装置との間に介挿されたコンピューティング・シス
    テムにおいて、該キャッシュメモリ内のデータを管理す
    る方法であって、(a)前記要求側装置による前記シス
    テムメモリからのデータに対する要求を、近い将来再び
    要求される可能性が低いデータに対する要求であるとし
    て識別するステップと、(c)前記データを前記システ
    ムメモリから前記キャッシュメモリ内に読込むステップ
    と、(d)前記キャッシュメモリから前記要求側装置に
    前記データを送信するステップと、(e)前記キャッシ
    ュメモリから前記データを即時に破棄するステップとを
    含むことを特徴とする方法。
JP2000003341A 1999-01-15 2000-01-12 非同期i/oキャッシュメモリ内のデ―タ管理方法 Pending JP2000227878A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US232505 1999-01-15
US09/232,505 US6457105B1 (en) 1999-01-15 1999-01-15 System and method for managing data in an asynchronous I/O cache memory

Publications (2)

Publication Number Publication Date
JP2000227878A true JP2000227878A (ja) 2000-08-15
JP2000227878A5 JP2000227878A5 (ja) 2004-08-12

Family

ID=22873390

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000003341A Pending JP2000227878A (ja) 1999-01-15 2000-01-12 非同期i/oキャッシュメモリ内のデ―タ管理方法

Country Status (2)

Country Link
US (1) US6457105B1 (ja)
JP (1) JP2000227878A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006501568A (ja) * 2002-09-30 2006-01-12 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド キャッシュを備えたデータ処理システムのオーバーヘッドを小さくするための方法及び装置

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6622168B1 (en) * 2000-04-10 2003-09-16 Chutney Technologies, Inc. Dynamic page generation acceleration using component-level caching
US6978349B1 (en) 2003-01-09 2005-12-20 Hewlett-Packard Development Company, L.P. Adaptive cache memory management
US7039785B2 (en) 2004-02-24 2006-05-02 Hitachi, Ltd. Method and apparatus for increasing an amount of memory on demand when monitoring remote mirroring performance
US10430338B2 (en) 2008-09-19 2019-10-01 Oracle International Corporation Selectively reading data from cache and primary storage based on whether cache is overloaded
US8868831B2 (en) 2009-09-14 2014-10-21 Oracle International Corporation Caching data between a database server and a storage system
US8645660B2 (en) 2009-12-10 2014-02-04 Microsoft Corporation Automatic allocation of data replicas
US10592416B2 (en) * 2011-09-30 2020-03-17 Oracle International Corporation Write-back storage cache based on fast persistent memory
US9063908B2 (en) 2012-05-31 2015-06-23 Oracle International Corporation Rapid recovery from loss of storage device cache
US10380021B2 (en) 2013-03-13 2019-08-13 Oracle International Corporation Rapid recovery from downtime of mirrored storage device
US10642837B2 (en) 2013-03-15 2020-05-05 Oracle International Corporation Relocating derived cache during data rebalance to maintain application performance
US9772793B2 (en) 2013-09-20 2017-09-26 Oracle International Corporation Data block movement offload to storage systems
US9430383B2 (en) 2013-09-20 2016-08-30 Oracle International Corporation Fast data initialization
US10229161B2 (en) 2013-09-20 2019-03-12 Oracle International Corporation Automatic caching of scan and random access data in computing systems
US9798655B2 (en) 2013-09-20 2017-10-24 Oracle International Corporation Managing a cache on storage devices supporting compression
US10133667B2 (en) 2016-09-06 2018-11-20 Orcle International Corporation Efficient data storage and retrieval using a heterogeneous main memory
US10331573B2 (en) 2016-11-04 2019-06-25 Oracle International Corporation Detection of avoidable cache thrashing for OLTP and DW workloads
US10803039B2 (en) 2017-05-26 2020-10-13 Oracle International Corporation Method for efficient primary key based queries using atomic RDMA reads on cache friendly in-memory hash index
US10719446B2 (en) 2017-08-31 2020-07-21 Oracle International Corporation Directly mapped buffer cache on non-volatile memory
US10956335B2 (en) 2017-09-29 2021-03-23 Oracle International Corporation Non-volatile cache access using RDMA
US11086876B2 (en) 2017-09-29 2021-08-10 Oracle International Corporation Storing derived summaries on persistent memory of a storage device
US10802766B2 (en) 2017-09-29 2020-10-13 Oracle International Corporation Database with NVDIMM as persistent storage
US10732836B2 (en) 2017-09-29 2020-08-04 Oracle International Corporation Remote one-sided persistent writes

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US4949251A (en) * 1988-07-18 1990-08-14 Digital Equipment Corporation Exactly-once semantics in a TP queuing system
JPH0727494B2 (ja) 1992-01-02 1995-03-29 インターナショナル・ビジネス・マシーンズ・コーポレイション キャッシュ・スヌープ/データ無効化機能を有するコンピュータ・システム
US5325503A (en) 1992-02-21 1994-06-28 Compaq Computer Corporation Cache memory system which snoops an operation to a first location in a cache line and does not snoop further operations to locations in the same line
US5724549A (en) 1992-04-06 1998-03-03 Cyrix Corporation Cache coherency without bus master arbitration signals
JP3490742B2 (ja) 1993-09-08 2004-01-26 松下電器産業株式会社 メモリ管理装置
US5608878A (en) 1994-10-03 1997-03-04 International Business Machines Corporation Dual latency status and coherency reporting for a multiprocessing system
US5592432A (en) 1995-09-05 1997-01-07 Emc Corp Cache management system using time stamping for replacement queue
US5751993A (en) 1995-09-05 1998-05-12 Emc Corporation Cache management system
US5717884A (en) 1996-02-02 1998-02-10 Storage Technology Corporation Method and apparatus for cache management
US5809022A (en) 1996-03-19 1998-09-15 Lucent Technologies Inc. Method and apparatus for converting synchronous narrowband signals into broadband asynchronous transfer mode signals
US6065006A (en) * 1998-02-05 2000-05-16 Oak Technology, Inc. DVD system for seamless transfer between titles on a DVD disc which minimizes memory consumption

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006501568A (ja) * 2002-09-30 2006-01-12 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド キャッシュを備えたデータ処理システムのオーバーヘッドを小さくするための方法及び装置

Also Published As

Publication number Publication date
US6457105B1 (en) 2002-09-24

Similar Documents

Publication Publication Date Title
US6457105B1 (en) System and method for managing data in an asynchronous I/O cache memory
JP3888508B2 (ja) キャッシュ・データ管理方法
US6295582B1 (en) System and method for managing data in an asynchronous I/O cache memory to maintain a predetermined amount of storage space that is readily available
KR100268204B1 (ko) 메모리제어기및데이타처리시스템
KR100970229B1 (ko) 원격 캐시 존재 정보를 저장하는 프로세서 캐시를 구비한 컴퓨터 시스템
JP4822598B2 (ja) キャッシュメモリ装置およびそれを含むデータ処理装置
JP4447580B2 (ja) 分散共有メモリマルチプロセッサシステムのための分割疎ディレクトリ
US8176255B2 (en) Allocating space in dedicated cache ways
US7281092B2 (en) System and method of managing cache hierarchies with adaptive mechanisms
US6023747A (en) Method and system for handling conflicts between cache operation requests in a data processing system
US6078992A (en) Dirty line cache
US6973543B1 (en) Partial directory cache for reducing probe traffic in multiprocessor systems
US6766424B1 (en) Computer architecture with dynamic sub-page placement
JP2000250812A (ja) メモリ・キャッシュ・システムおよびその管理方法
JPH11506852A (ja) 多数のバスマスタと共用レベル2キャッシュとを備える多レベルキャッシュシステムでのキャッシュスヌーピングオーバーヘッドの低減
JPH09259036A (ja) ライトバックキャッシュおよびライトバックキャッシュ内で整合性を維持する方法
US20090106496A1 (en) Updating cache bits using hint transaction signals
US20110167223A1 (en) Buffer memory device, memory system, and data reading method
US6279081B1 (en) System and method for performing memory fetches for an ATM card
US7328310B2 (en) Method and system for cache utilization by limiting number of pending cache line requests
US20080104333A1 (en) Tracking of higher-level cache contents in a lower-level cache
US20020002659A1 (en) System and method for improving directory lookup speed
JP2976867B2 (ja) 入出力バッファ装置及びその管理方法
US6757793B1 (en) Reducing probe traffic in multiprocessor systems using a victim record table
JP2000267935A (ja) キヤッシュメモリ装置

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20060213

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060216

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20060705