JP2000235520A - キャッシュ・データ管理方法 - Google Patents

キャッシュ・データ管理方法

Info

Publication number
JP2000235520A
JP2000235520A JP2000003572A JP2000003572A JP2000235520A JP 2000235520 A JP2000235520 A JP 2000235520A JP 2000003572 A JP2000003572 A JP 2000003572A JP 2000003572 A JP2000003572 A JP 2000003572A JP 2000235520 A JP2000235520 A JP 2000235520A
Authority
JP
Japan
Prior art keywords
data
cache
memory
hint
bus
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
JP2000003572A
Other languages
English (en)
Other versions
JP3888508B2 (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 JP2000235520A publication Critical patent/JP2000235520A/ja
Application granted granted Critical
Publication of JP3888508B2 publication Critical patent/JP3888508B2/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
    • 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/0875Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/6028Prefetching based on hints or prefetch instructions

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)【要約】 【課題】キャッシュ・メモリへのデータの事前取り出し
の最適化を図る。 【解決手段】PCIバスに沿って配置される装置へシス
テム・メモリからデータを読み取る時、PCIバスとキ
ャッシュ・メモリの間のバス・トラフィックを監視し
て、当該装置の特性を判断し、それに応じてキャッシュ
・メモリの範囲内でデータを管理する方法を変更する。
例えば、該装置が、ATM装置であれば、1データ・バ
イト読み取り要求に対して、当該行に加えて1または2
キャッシュ行を追加してキャッシュに読み込む。これに
よって、後続のデータ要求に対してキャッシュ・メモリ
から迅速にデータを読み取ることができる。このよう
に、装置またはトランザクションの特性に応じて、必要
な量のデータ・キャッシュ行だけがシステム・メモリか
らキャッシュ・メモリへ事前取り出しされる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、一般的に、PCI
バス(すなわち周辺コンポーネント接続バス)を経由し
て、システム・メモリから装置へデータを取り出すシス
テムおよび方法に関するもので、特に、PCIバス・ト
ランザクションから観察されるヒントに基づいてシステ
ム・メモリからPCIバス上で通信している装置へデー
タを効率的に取り出すシステムおよび方法に関するもの
である。
【0002】
【従来の技術】コンピュータ・システム設計において、
主要な目標は、一層迅速で一層効率的なコンピュータ・
システムを継続的に設計することである。このような観
点から、従来技術の高性能コンピュータ・システムの大
部分はキャッシュ・メモリを含む。周知のように、キャ
ッシュ・メモリは、システム性能を改善するためコンピ
ュータ・システムにおいてマイクロプロセッサとメイン
・メモリの間に配置されている高速のメモリである。典
型的に、キャッシュ・メモリ(またはキャッシュ)は、プ
ログラムが実行している間、中央処理装置(CPU)によ
って活発に使用されているメイン・メモリ・データ部分
のコピーを記憶する。キャッシュのアクセス・タイムが
メイン・メモリのそれより速いので、全般的アクセス・
タイムを減少させることができる。
【0003】たとえキャッシュ・メモリが典型的にはシ
ステム性能を向上させるとしても、更なる改良が望まれ
ている。例えば、(マイクロプロセッサのような)中央処
理装置のメモリと(ISAバスやPCIバスのような)I
/Oバスを相互接続するシステム・バスのような独立し
たバスを持つコンピュータ・システムを考察してみる
と、過去においてパソコンの性能を制限したボトルネッ
クのうちの1つは、ISAバスの最大指定速度であっ
た。IBM社によって製作されたIBM PC ATコン
ピュータにおいては、I/Oバスは、8MHzというデー
タ・レート(すなわちBCLK=8 MHz)で動作した。このデー
タ・レートは、その時代のCPUがホスト・バス上で動
作できる最高データ・レートにほぼ等しかったので、当
時は適切なデータ・レートであった。しかしながら、今
日のCPUデータ・レートは数倍も速くなっているの
で、I/Oバスの遅い速度は今日ではシステムのスルー
プットを厳しく制限する。この問題の1つの解決策はロ
ーカル・バス規格の開発であった。この規格によって、
I/Oバス上に伝統的に配置されていた特定の装置が、
今や、VESAVL−バス・ローカル・バス規格のよう
なホスト・バス配置されることができるようになった。
【0004】別の1つ解決策は、PCI規格と呼ばれる
別の規格の開発であった。周知のように、PCIは、Pe
ripheral Component Interconnect(周辺コンポーネント
相互接続)の頭文字である。PCI規格は、外部装置を
コンピュータに接続する方式を定義するガイドライン・
セットであり、1990年代の初めに開発されていた互
換性のないバス・アーキテクチャの急速な増加を防止す
るローカル・バス規格を提供するため本来は開発され
た。このような点から、PCIバスは、コンピュータ・
システムにおける好ましい主要ローカル・バスとして、
ISA(EISA)、VL−ローカル・バス、マイクロチ
ャネル、NUBusなどのローカル・バス・アーキテク
チャを置き換えるものである。
【0005】PCIバスは、その基礎的なデータ転送モ
ードがバーストであるので、非常に高い性能を達成す
る。すなわち、アドレス空間における既知のシーケンス
のデータ単位アドレスによって定義される既知のシーケ
ンスのデータ単位でPCI装置の間でデータが転送され
る。"線形の"バースト・モードにおいては、始動元また
は宛先のいずれかがトランザクションを終了させるま
で、(1を含める)任意の数の転送が線形に連続したアド
レスの間で行われる。両者が、後に続くアドレスのシー
ケンスを知っているので、始動元は開始アドレスを指定
するだけでよい。PCIバスの実施形態は当業界におい
て周知であり、その仕様は公に入手可能である。
【0006】
【発明が解決しようとする課題】高速の業界標準共通バ
スの間で転送する際、バスがバンド幅全体を維持すこと
を可能にするためにはデータに関する中間的ローカル・
キャッシュ・バッファを備えることが望ましいことがし
ばしばある。すなわち、システム・バスに負荷をかける
ことなく、PCIバスをキャッシュに結びつけるI/O
バスの最大限の利用を維持することが望ましい。例え
ば、データがメモリからキャッシュへ取り出される時、
一度に1つのキャッシュ行が取り出される。データがP
CIバス上の装置によって最初に要求される時、データ
の最初のキャッシュ行がメモリからキャッシュへ取り出
される間初期的待ち時間(アイドルI/Oクロック・サ
イクル)が存在する。PCI転送が1つ以上のキャッシ
ュ行データを要求すれば、次のキャッシュ行データがシ
ステム・メモリからキャッシュへ取り出される間更に1
つの待ち時間が発生する。データの新しい行がメモリか
らキャッシュへ読み取られるたびに断続的な待ち時間が
発生する。従って、このような待ち時間を除去または減
少することが望ましい。この目標を達成する1つの方法
はデータの追加キャッシュ行を常に事前取り出しするこ
とである。例えば、初めからデータの2つのキャッシュ
行がメモリからキャッシュへ取り出されることができる
ようにする。データの最初の行がキャッシュからPCI
バスへ転送された後第2の行がPCIバスへ転送され。
従って、データの追加キャッシュ行がメモリからキャッ
シュへ取り出される。
【0007】この手法は、I/Oバス上で経験されるア
イドル・サイクルを減少させるが、システム資源の非効
率な利用を伴う。この手法にかかわ問題は、(1つのキ
ャッシュ行によって)メモリからキャッシュへのデータ
取り出しが過多になる点である。従って、この手法はシ
ステム・バスのバンド幅を不必要に消費するとともに、
キャッシュ・メモリ部分を浪費する。キャッシュ・メモ
リ空間の貧弱な利用は全般的システム効率を悪化させ
る。従って、上記のように認識されたものを含む欠点を
克服するような、キャッシュとPCIバスをインタフェ
ースさせる方法を提供することが求められている。
【0008】
【課題を解決するための手段】発明の課題を解決するた
め、本発明は、システム・メモリと要求元装置の間に配
置されるキャッシュ・メモリを有するコンピュータ・シ
ステムにおいて該キャッシュ・メモリの内部のデータを
管理する方法を提供する。該方法は、システム・メモリ
からデータを取り出す要求を受け取るステップ、上記要
求に関連する事前取り出しヒント・セットを評価するス
テップ、および、上記事前取り出しヒントに基づいて上
記キャッシュ・メモリ内部におけるデータの取り出しお
よび管理を制御するステップを含む。
【0009】本発明は、PCIバスを経由してシステム
と通信する装置へI/Oキャッシュを介してシステム・
メモリからデータを取り出すシステムおよび方法を提供
する。本発明は、広範囲には、一定の取り出しヒントを
伝える新機軸の方法とみなすことができる。すなわち、
ヒントは、システム・メモリから取り出されるべきデー
タに関する一定の品質を指定する。動作においては、I
/Oキャッシュは、そこを通過するデータを効率的に管
理するためそのようなヒントを使用することができる。
1つの単純な例をあげれば、ヒントに基づいて、I/O
キャッシュに関するコントローラが、取り出されつつあ
るデータがATMデータであるということをヒントに基
づいて認識(または仮定)するとすれば、コントローラ
は、(ATMデータの性質に基づいて)、正確に48バイ
トのデータ・ペイロードが要求元装置へ送信されるべき
ものであり、I/Oキャッシュは、また、正確にその量
(典型的には1または2キャッシュ行)を事前取り出しす
ることができることを認識することができる。
【0010】本発明の1つの側面に従えば、そのような
システムは、システム・メモリとPCIバスの間に配置
される入出力キャッシュ・メモリを含み、キャッシュ・
メモリは、その内部に複数のデータ行の形態の内部メモ
リ空間を持つ。該システムは、取り出し基準を定義する
ように構成される各PCIマスタに関する複数のレジス
タを含む。更に、該システムは、上記複数レジスタの中
の活動的レジスタを選択するように構成されるレジスタ
・セレクタを含む。装置に関する取り出し基準は活動的
レジスタによって指定される。
【0011】具体的には、本発明の好ましい実施形態に
従って構築されるシステムにおいて、レジスタは、デー
タ取り出しに関する特定のヒントを指定する内容を含
む。例えば、そのようなヒントの1つは、事前取り出し
の深さであり、この場合、レジスタが事前取り出し深さ
の種種の異なる値を含む。例えば、第1のレジスタが2
キャッシュ行という事前取り出し深さを指定し、第2の
レジスタが3キャッシュ行という事前取り出し深さを指
定する。しかしながら、理解されるべき点であるが、こ
れらレジスタの内容は異なるソースによって動的に変え
られることが可能である。例えば、システム・ファーム
ウェアがレジスタの内容をセットすることが可能であ
る。代替的には、レジスタ内容は要求元装置上のドライ
バの制御の下で設定または変更される。次に、レジスタ
・セレクタが、活動的レジスタとしてどのレジスタを選
択すべきかを決定する。活動的レジスタは、当該キャッ
シュのデータを制御するためにI/Oキャッシュに関す
るコントローラによって使用されるレジスタである。こ
のセレクタは、データに対する要求を識別するためPC
Iバスを監視するように構成され、要求の形態、要求元
装置の識別情報またはその他の因子に基づいて、セレク
タが活動的レジスタを選択する。
【0012】
【発明の実施の形態】本発明は、添付図面を参照して以
下に記述されるが、記述される実施形態に本発明を制約
する意図はなく、むしろ、本発明の理念に含まれる代替
的形態および修正をすべて包含するように意図されてい
る。
【0013】図1は、本発明の環境の1例である環境を
定義するコンピュータ・システム100を示す。コンピ
ュータ・システム100は、コンピュータ102および
モニタ104を持つハイエンド・デスクトップ・コンピ
ュータ・システムのような、高性能コンピュータ・シス
テムのいかなるタイプのものでもよい。コンピュータ1
02の形態には種種のものがあるが、典型的なコンピュ
ータ102はマザーボード110を含む。周知のよう
に、マザーボード110は典型的には種々のオンボード
ICコンポーネント120を含む。これらオンボードI
Cコンポーネント120には、CPU122(例えばマ
イクロプロセッサ)、メモリ128、および、コンピュ
ータ・アーキテクチャに含まれるその他周知のIC装置
が含まれる。
【0014】マザーボード上またはプラグイン・カード
上に配置される別のIC装置はキャッシュ・メモリ12
6である。キャッシュ・メモリ126は、PCIバス1
30と通信するように配置される。本発明の概念および
教示と整合する形態で、その他のICコンポーネントを
コンピュータ・システム100の範囲内に含めることが
できる。実際、その他種々のサポート回路および付加的
機能回路が大部分の高性能コンピュータ・システムに典
型的に含まれる。そのようなその他の回路コンポーネン
トの付加および実施形態は当業者に十分理解されるもの
であるので、本明細書において説明を行う必要はない。
図1のコンピュータ・システム10は、本発明の概念お
よび教示を例示するため選択されたいくつかのコンポー
ネントだけを示している。
【0015】更に、周知のように、種々のオンボード回
路コンポーネントに加えて、コンピュータ・システム
は、通常、拡張機能を含む。このため、大部分のコンピ
ュータ・システム100は、ICカードをコンピュータ
・システム100のマザーボード110にプラグインす
ることを可能にする複数の拡張スロット142、14
4、146を含む。拡張カード140は、典型的には、
コンピュータ・システムのすべての用途にとって必要と
されるというわけではなく、むしろ特定のユーザ・グル
ープの特定用途に求められる専用の機能性を提供する。
例えば、モデム・カード(図示されていない)は、コンピ
ュータ・システム100が音声、データおよびその他の
情報を通信リンクを経由して遠隔のコンピュータ・シス
テムまたはユーザと通信することを可能にする。CPU
122、メモリ128およびとキャッシュ126のよう
な品目は、図ではマザーボード110上に配置されるよ
うに示されているが、拡張カード上に配置することもで
きる点は理解されることであろう。また、図1に示され
ている特定の実施形態は、例示の目的のためにのみ示さ
れていて、本発明をそれに制約するものとみなされるべ
きでない点も理解されることであろう。
【0016】種々の拡張カードが本発明の目的のためコ
ンピュータ・システム100と関連して利用される可能
性はあるが、それらは単なる例示に過ぎない。更に、図
1には、システム・バス150およびPCIバス130
が示されている。一般的に言えば、システム・バス15
0は、高速のバスであり、コンピュータ・システム10
0の範囲内に含まれるメモリ128、CPU122、キ
ャッシュ126およびその他の装置(図示されていない)
を相互接続する。拡張カード140はPCIバス130
を経由してコンピュータ・システム100の他の部分と
通信する。詳細は後述されるが、本発明は、拡張カード
140を介する通信のためシステム・メモリ128から
PCIバス130へデータを取り出す場合のコンピュー
タ・システム100の全般的性能、動作および効率を強
化するシステムおよび方法を対象とする。
【0017】しかしながら、本発明の詳細を記述する前
に、キャッシュ・メモリ装置に関するいくつかの基本的
な情報をまず記述する。この情報は、本発明の教示に従
って構築されるシステムを完全に記述することを目的と
して提示されるに過ぎないが、以下に記述されるキャッ
シュ・メモリ装置の概念および動作は当業者によって理
解されることであろう。
【0018】キャッシュの基本 前述のように、キャッシュ・メモリは、システム効率を
改善するためコンピュータ・システムにおいてマイクロ
プロセッサとメイン・メモリの間に配置される高速のメ
モリである。キャッシュ・メモリ(またはキャッシュ)
は、プログラムが実行している間中央処理装置(CPU)
によって活発に使用されるメイン・メモリ・データの一
部分のコピーを記憶する。キャッシュのアクセス・タイ
ムがメイン・メモリのそれより速いので、全般的アクセ
ス・タイムを減少することができる。
【0019】多くのマイクロプロセッサに基づくシステ
ム実施形態は、"直接マップ型"キャッシュ・メモリを実
施する。一般に、"直接マップ型"キャッシュ・メモリ
は、高速のデータRAMおよび並列高速タグRAMを含
む。データ・キャッシュにおける各行のRAMアドレス
は、各行のエントリに対応するメイン・メモリ行アドレ
スの下位部分と同じものであり、メイン・メモリ・アド
レスの高位部分はタグRAMに記憶される。このよう
に、メイン・メモリが各々1または複数バイトの2 n"
行"の2mブロックであるとみなされるとすれば、キャッ
シュ・データRAMの中のi番目の行は、メイン・メモ
リの2mブロックのうちの1つのi番目の行のコピーで
ある。その行が対応するメイン・メモリ・ブロックの識
別情報はタグRAMのi番目の位置に記憶されている。
【0020】CPUがメモリからデータを要求する時、
行アドレスの下位部分はキャッシュ・データおよびキャ
ッシュ・タグRAM両方に対するアドレスとして供給さ
れる。選択されたキャッシュ・エントリに関するタグ
は、CPUのアドレスの上位部分と比較され、一致すれ
ば、"キャッシュ・ヒット"が標示され、キャッシュ・デ
ータRAMからのデータがシステムのデータ・バス上に
送られることができる状態となる。タグがCPUのアド
レスの上位部分と一致しない場合、またはデータが無効
であるとすれば、"キャッシュ・ミス"が標示され、デー
タはメイン・メモリから取り出される。メイン・メモリ
から取り出されたデータは潜在的な将来の使用のためキ
ャッシュに置かれ、前のエントリを上書きする。典型的
には、キャッシュ・ミスの場合、たとえ1バイトだけが
要求されたとしても、1行全体がメイン・メモリから読
み取られ、キャッシュに記憶される。CPUからのデー
タ書込みの際、キャッシュRAMおよびメイン・メモリ
のいずれかまたは両方が更新されるが、その場合、他方
に書込みが発生したことを一方に通知するためフラグが
必要である点は理解されることであろう。
【0021】従って、直接マップ型キャッシュでは、2
次メモリの各"行"は、キャッシュの1つの行にだけマッ
プされる。"完全連想"キャッシュにおいては、2次メモ
リの特定の1行は、キャッシュの行のいずれにでもマッ
プされる。この場合、キャッシュ可能なアクセスにおい
て、キャッシュ・ヒットまたはキャッシュ・ミスが起き
たか否かを判断するためすべてのタグが比較されなけれ
ばならない。また、直接マップ型キャッシュと完全連想
キャッシュの間の妥協を表す"マップ先k行連想"キャッ
シュ・アーキテクチャが存在する。マップ先k行連想キ
ャッシュ・アーキテクチャにおいては、2次メモリの各
行はキャッシュのk行のいずれかにマップされる。この
場合、キャッシュ・ヒットまたはキャッシュ・ミスが起
きたか否かを判断するため、キャッシュ可能2次メモリ
・アクセスの間k個のタグがアドレスと比較される。キ
ャッシュは、また、"セクター・バッファ""か"サブ・ブ
ロック"タイプである。この場合、各々それ自体の有効
ビットを持ついくつかのキャッシュ・データ行が単一キ
ャッシュ・タグRAMに対応する。
【0022】CPUがキャッシュの内容を修正する命令
を実行する時、メイン・メモリにおいてもその修正が行
われなければならず、さもなければメイン・メモリのデ
ータは"陳腐化"する。メイン・メモリとキャッシュの内
容の整合性を保つ2つの従来技術の手法がある。すなわ
ち、(1)書き込み続行(write-through)方法、および、
(2)書き戻し(write-back)またはコピー戻し(copy-back)
方法である。書き込み続行方法においては、キャッシュ
書込みヒットがあれば、データのキャッシュへの書き込
みの直後またはその間データがメイン・メモリに書き込
まれる。これは、メイン・メモリの内容が常に有効でキ
ャッシュの内容と一致していることを可能にする。書き
戻し方法においては、キャッシュ書込みヒットがあれ
ば、システムはキャッシュにデータを書き込み、データ
・ワードがキャッシュに書き込まれたがメイン・メモリ
には書き込まれていないことを標示する"ダーティ・ビ
ット(dirty bit)をセットする。キャッシュ・コントロ
ーラは、キャッシュにデータのいかなる行を上書きする
前にダーティ・ビットを検査して、セットされていれ
ば、新しいデータをそのキャッシュ行に記憶する前にそ
のデータ行をメイン・メモリへ書き出す。
【0023】コンピュータ・システムは、所与のアドレ
ス空間に関して1レベル以上のキャッシュ・メモリを持
つことができる。例えば、2レベル・キャッシュ・シス
テムにおいては、"レベル1"(L1)キャッシュは、ホス
ト・プロセッサに論理的に隣接している。"レベル2"
(L2)キャッシュは、論理的にレベル1の後にあり、
(3次メモリと呼ぶことができる)DRAMメモリが論理
的にL2キャッシュの背後に位置する。ホスト・プロセ
ッサがメモリ・アドレス空間におけるアドレスへのアク
セスを実行する時、可能であればL1キャッシュが応答
する。L1キャッシュが(例えばL1キャッシュ・ミス
のため)応答することができないとすれば、可能であれ
ばL2キャッシュが応答する。L2キャッシュが応答す
ることができないとすれば、DRAM自体に対してアク
セスが行われる。ホスト・プロセッサは、システムにど
れだけのキャッシュ・レベルが存在するか、あるいはキ
ャッシュ機能が存在することさえ知っている必要はな
い。同じように、L1キャッシュは、DRAMに先行し
てL2キャッッシュが存在するかどうかについて知って
いる必要はない。このように、ホスト処理装置にとっ
て、2つのキャッシュとDRAMの組み合せは単一メイ
ン・メモリ構造としてみなされる。同じように、L1キ
ャッシュにとって、L2キャッシュとDRAMの組み合
せは単一メイン・メモリ構造としてみなされる。実際、
レベル3キャッシュ機能をL2キャッシュとDRAMの
間に含むことができ、L2キャッシュはL3キャッシュ
とDRAMの組み合せを単一メイン・メモリ構造とみな
すであろう。
【0024】キャッシュ行が状態Eにあれば(Eは"excl
usive"の頭文字で、排他的の意味を表す)、その行は"修
正"されない(すなわちメモリ・サブシステムのそれ以降
のレベルと同じデータを含む)。共有キャッシュ・シス
テムにおいては、状態Eは、そのキャッシュ行がキャッ
シュのうちのただ1つだけにおいて使用可能であること
を標示する。ホスト・プロセッサ装置は、メモリ・サブ
システムのより高いレベルに、バス・サイクルを生成す
ることなく、E状態の行にアクセス(読み取りまたは書
き込み)することができるが、ホスト・プロセッサがE
状態行に書込みアクセスをする時、その行は"修正され
た"状態(状態M)となる(Mは"modified"の頭文字で、"
修正された"を意味する)。
【0025】状態Sの行が(Sは"shared"の頭文字で"共
有されている"ことを表す)、1つ以上のキャッシュに存
在することができる。ホスト・プロセッサによるS状態
行への読み取りアクセスはバス活動を引き起こさない
が、S状態行への書き込みアクセスは、共有キャッシュ
がそれ自身の対応する行を潜在的に無効にすることを可
能にするため、メモリ・サブシステムのそれより高いレ
ベルへの"書き込み続行"サイクルを引き起こす。書き込
みは、また、データ・キャッシュ行の中のデータを更新
する。
【0026】状態Iの行は無効である(Iは"invalid"の
頭文字で無効を意味する)。状態Iの行はキャッシュに
は存在しない。ホスト・プロセッサ装置によるI状態行
への読み取りアクセスは"キャッシュ・ミス"を生成し、
その結果キャッシュは行充当を実行する(メモリ・サブ
システムのより高いレベルから行全体を取り出す)。ホ
スト・プロセッサ装置によるI状態行への書き込みアク
セスによって、キャッシュは、メモリ・サブシステムの
より高いレベルへの書き込み続行サイクルを実行する。
【0027】コンピュータ・システム・キャッシュ・メ
モリは、典型的には、CPUに関するメイン・メモリ・
データをキャッシュ記憶する。キャッシュが書き戻しプ
ロトコルを使用するとすれば、キャッシュ・メモリがメ
イン・メモリの中の対応する行よりも一層多くの現在時
データを含む場合が多い。これは、メイン・メモリ・バ
ージョンがデータの最新のバージョンであるか否かはわ
からないので、メイン・メモリの行へのアクセスを望ん
でいる他のバス・マスター(およびマルチプロセッサ・
システムにおける他のCPU)にとって問題を起こす。
従って、書き戻しキャッシュ・コントローラが、典型的
には、(詮索サイクルとしても知られている)問合せサイ
クルをサポートする。問い合わせサイクルにおいて、バ
ス・マスターは、キャッシュ・メモリがデータの一層最
新のコピーを持っているか否かキャッシュ・メモリに問
い合わせする。
【0028】図2は、キャッシュ・メモリ126の特定
の基本コンポーネントを示すブロック図である。この基
本コンポーネントには、複数のタグ232、対応する複
数のデータ行234およびディレクトリ/インデックス
236が含まれる。周知の通り、キャッシュ・タグ23
2は、典型的には、目標データのメモリ位置のブロック
(複数行)を定義するアドレス・ビットの一部(最上位ビ
ット)を含む。最下位ビットは、対応するデータ行23
4における目標データ値に対する(ブロックの範囲内の)
特定の位置を識別する。従来技術の好ましい実施形態に
従えば、キャッシュ・メモリ126は64バイトのデー
タ行234を利用する。従って、アドレス・ビットの最
下位6ビットが、所与のデータ行234の範囲内におけ
る目標データ値の特定の位置を指定する。
【0029】図2には、また、ディレクトリ/インデッ
クス236が示されている。周知の通り、ディレクトリ
236は種々のタグ232のログまたはデータベースを
維持する。開始または初期化の時点では、キャッシュ・
メモリ126の範囲内にデータはなく、従って、タグは
ディレクトリ236に記憶されていない。従って、装置
がデータをシステム・メモリ128から読み取ることを
要求すると、システム・メモリ128からキャッシュ・
メモリ126のデータ行234へ行全体が読み込まれ
る。アドレス・バスの最上位ビットが対応するタグ23
2に含められ、このタグがディレクトリ236に保存さ
れる。指定されたメモリ位置からの次のデータ要求があ
ると、キャッシュ・メモリ126は、ディレクトリ23
6を調べて、そのデータ値がキャッシュの範囲内に現在
あるか否か判断する。そのデータ値がキャッシュ・メモ
リ126の範囲内にあれば、それがアクセスされ、高速
で読み出される。一方、そのデータ値がキャッシュ・メ
モリ126の範囲内になければ、データ値はシステム・
メモリから取り出され、キャッシュ・メモリ126の利
用可能データ行234に読み込まれる。前述と同様に、
アドレス・バスの最上位ビットが対応するタグに含めら
れ、ディレクトリ236に記録される。
【0030】上記プロセスは、システム・メモリ128
からの後続のデータ要求に関して繰り返される。しかし
ながら、どこかの時点で、キャッシュ・メモリ126の
すべてのデータ行234が占有される。この時点で、新
しいデータをキャッシュ126に読み込むことができる
空間を準備するため、キャッシュ・メモリ126は、少
なくとも1つのデータ行234を破棄しなければならな
い。前述のように、キャッシュ126のどのデータ行2
34を破棄すべきかを決定する多種多様なアルゴリズム
および方法が存在する。好ましくは、近い将来再度使用
される可能性が最も少ないデータ行234を破棄するア
ルゴリズムが選択される。データがキャッシュ126か
ら破棄されると、それに応じて対応するタグ232をデ
ィレクトリ空間から削除するようにディレクトリ236
が修正される。
【0031】本発明の動作 キャッシュ・メモリ装置に関する特定の基本的事項と共
に、本発明のシステムの環境を以上記述したが、以下、
本発明の特徴に焦点をあてて記述を進める。前述した
が、本発明は、拡張カード140を介する通信のためシ
ステム・メモリ128からPCIバス130へデータを
取り出す場合のコンピュータ・システム100の全般的
性能、動作および効率を強化するシステムおよび方法を
対象とする。広義には、本発明は、特定のヒントを伝え
る新機軸の方法とみなすことができる。ヒントは、シス
テム・メモリから取り出されるべきデータに関する特定
の品質を指定する。動作の観点から、I/Oキャッシュ
はそれを通過するデータを一層効果的に管理するためそ
のようなヒントを使用する。1つの単純な例をあげれ
ば、I/Oキャッシュに関するコントローラが、取り出
されつつあるデータがATMデータであるということを
ヒントに基づいて認識(または仮定)するとすれば、コン
トローラは、(ATMデータの性質に基づいて)、正確に
48バイトのデータ・ペイロードが要求元装置へ送信さ
れるべきものであり、I/Oキャッシュは、また、正確
にその量(典型的には1または2キャッシュ行)を事前取
り出しすることができることを認識する。
【0032】本発明の1つの側面に従えば、そのような
システムは、システム・メモリとPCIバスの間に配置
される入出力キャッシュ・メモリを含み、キャッシュ・
メモリは、その内部に複数のデータ行の形態の内部メモ
リ空間を持つ。該システムは、取り出し基準を定義する
ように構成される各PCIマスタに関する複数のレジス
タを含む。更に、該システムは、上記複数レジスタの中
の活動的レジスタを選択するように構成されるレジスタ
・セレクタを含む。装置に関する取り出し基準は活動的
レジスタによって指定される。
【0033】更に具体的に述べれば、本発明の好ましい
実施形態に従って構築されるシステムにおいて、レジス
タは、データ取り出しに関する特定のヒントを指定する
内容を含む。例えば、そのようなヒントの1つは、事前
取り出しの深さであり、この場合、レジスタが事前取り
出し深さの種種の異なる値を含む。例えば、第1のレジ
スタが2キャッシュ行という事前取り出し深さを指定
し、第2のレジスタが3キャッシュ行という事前取り出
し深さを指定する。しかしながら、理解されるべきこと
ではあるが、これらレジスタの内容は異なるソースによ
って動的に変えられることが可能である。例えば、シス
テム・ファームウェアがレジスタの内容をセットするか
もしれない。代替的には、レジスタ内容は要求元装置上
のドライバの制御の下で設定または変更される。次に、
レジスタ・セレクタが、活動的レジスタとしてどのレジ
スタを選択すべきかを決定する。活動的レジスタは、当
該キャッシュのデータを制御するためにI/Oキャッシ
ュに関するコントローラによって使用されるレジスタで
ある。このセレクタは、データに対する要求を識別する
ためPCIバスを監視するように構成され、要求の形
態、要求元装置の識別情報またはその他の因子に基づい
て、セレクタが活動的レジスタを選択する。
【0034】更に具体的な例として、PCIバス・マス
ターの各々ごとに専用の2つのレジスタを持つシステム
を考察する。レジスタの各々は、要求されるデータ転送
のタイプに基づいて、すなわち、データ要求がMRコマ
ンド、MRLコマンドまたはMRMコマンドあるか否か
に基づいて、異なる事前取り出し深さを指定するように
構成される。例えば、(各レジスタ・セットにおける)第
1のレジスタは、MRコマンドに対して1キャッシュ行
だけの事前取り出し深さを指定し、MRLコマンドに対
して2キャッシュ行の事前取り出し深さを指定し、MR
Mコマンドに対して3キャッシュ行の事前取り出し深さ
を指定するように構成される。(各レジスタ・セットに
おける)第2のレジスタは、MRコマンドに対して2キ
ャッシュ行だけの事前取り出し深さを指定し、MRLコ
マンドに対して3キャッシュ行の事前取り出し深さを指
定し、MRMコマンドに対して4キャッシュ行の事前取
り出し深さを指定するように構成される。
【0035】上記の仮定を継続すれば、レジスタ・セレ
クタは、例えば取り出されるデータが制御型データであ
ると見なされるならば各レジスタ・セットの第1のレジ
スタを選択し、例えば取り出されるデータがペイロード
・データであると見なされるならば各レジスタ・セット
の第2のレジスタを選択するように構成される。1つの
実施形態に従えば、要求側装置は、アドレス・ビットの
使用を通してレジスタ・セレクタの動作を制御すること
ができる。具体的には、さもなければ特定のデータを識
別する際に使用されることのないアドレス・ビットを使
用して、所与のレジスタ・セットの活動的レジスタが指
定される。
【0036】しかしながら、理解されるべき点である
が、本発明の概念は、広義であり、本明細書の特定の使
用または実施形態に限定されるものではない。このよう
な意味から、本発明は、取り出しヒントをPCIバスを
経由して要求元装置から伝える方法として広義に特徴づ
けることができる。
【0037】本発明の1つの応用に従えば、I/Oキャ
ッシュ・メモリの範囲内でデータを管理する方法が提供
される。より具体的に述べれば、システム・メモリとI
/Oバスの間に配置されるキャッシュ・メモリを持つシ
ステムにおいてキャッシュメモリの範囲内でデータを管
理する方法が提供される。該方法は、システム・メモリ
からのデータ要求を受け取り、その要求に関連する事前
取り出しヒント・セットを評価する。所与の取り出しに
関連する事前取り出しヒントに基づいて、該方法は、キ
ャッシュ・メモリの範囲内のデータの取り出しおよび管
理を制御する。
【0038】そのような実施形態に従えば、該方法はI
/Oバス上のトランザクションを監視するように動作す
る。監視されたトランザクションに基づいて、該方法
は、バス110と通信している所与の装置に関する特定
の側面を決定する。決定された装置の側面に基づいて、
該方法は、全般的システム効率を最適化するためキャッ
シュ・メモリによって使用される特定のヒントを生成す
る。好ましくは、これらのヒントはレジスタ・セットに
記憶され、取り出し要求に応じてキャッシュ・メモリが
このレジスタにアクセスする。これらヒントに基づい
て、キャッシュ・メモリは、一定量のデータの事前取り
出し、データの事前取り出しブロック・サイズの制限、
データの積極的消去、または、キャッシュ・メモリの範
囲内におけるデータの一層効率的管理を可能にするその
他のタスクを実行する。
【0039】本発明の1つの側面に従えば、事前取り出
しヒントは、キャッシュ・メモリに事前取り出しすべき
キャッシュ行数の識別情報を含む。例えば、要求元装置
がATM装置であることを事前取り出しヒントが明らか
にするとすれば、該方法は48バイトのデータを事前取
り出しするように動作する。これは、第1のキャッシュ
行の範囲内の最初のデータ・バイトの配列に従って、1
または2データ行の事前取り出しを伴う。本発明の別の
1つの側面に従えば、事前取り出しヒントは、システム
・メモリ境界限界の識別情報を含む。この限界を超えた
データはキャッシュ・メモリへ事前取り出しされない。
本発明の更に別の1つの側面に従えば、キャッシュ・メ
モリから取り出されたデータを消去するための条件の識
別を含む。
【0040】本発明の好ましい実施形態に従えば、M
R、MRLおよびMRMコマンドを含む種々のPCIコ
マンドの監視に基づいて、事前取り出しヒントが生成さ
れる(MRはMemory Readの略称でメモリ読み取りを意味
し、MRLはMemory Read Lineの略称でメモリ行読み取
りを意味し、MRMはMemory Read Multipleの略称でメ
モリ複数行読み取りを意味する)。
【0041】本発明の更に別の1つの実施形態に従え
ば、本発明は、I/Oキャッシュ・メモリの範囲内でデ
ータを管理するシステムと見なすことができる。キャッ
シュは複数のデータ行を含むメモリ空間を含む。該シス
テムは、キャッシュ・メモリとI/Oバス(好ましくは
PCIバス)の間での通信を評価し、評価された通信に
基づいて少なくとも1つの事前取り出しヒント・セット
を生成するように構成される装置を含む。最後に、該シ
ステムは、メモリ空間におけるデータを管理するように
構成されるメモリ管理機構を含む。メモリ管理機構は、
更に、事前取り出しヒントを評価してメモリ空間におけ
るデータの管理を制御するように構成される論理機構を
含む。
【0042】好ましくは、メモリ管理機構は、更に、取
り出し要求を評価する第1の手段、取り出し要求に基づ
いて事前取り出しヒントを評価する第2の手段、およ
び、事前取り出しヒントの値に基づいてあらかじめ定め
られたデータ・キャッシュ行数の事前取り出しを制御す
る第3の手段を含む。当業者に理解されることであろう
が、上記第1、第2および第3の手段は、それぞれの手
段の上記機能を実行するように構成される回路、また
は、回路とマイクロコードの組み合わせで形成される。
該システムは、更に、事前取り出しヒントを記憶する照
合テーブルを含む。
【0043】図3は、本発明に従って構築されるシステ
ムの特定のコンポーネントを示している。前述の通り、
本現在のシステムは、広義には、1つの装置からホスト
・システムへPCIバス130経由で"ヒント"の通信を
実施するシステムを対象とする。"ヒント"は、種々の事
柄であり、多くの目的のために使用されることができ
る。本発明の1つの実施形態に従えば、ヒントは、要求
装置に関する特定の情報やそのような装置が使用するデ
ータに関する特性を指定する。これらのヒントは、例え
ばI/Oキャッシュの範囲内のデータの管理に役立てる
ためシステムによって使用される(例えばヒントは事前
取り出し深さを定義する)。
【0044】本発明の好ましい実施形態に従えば、該シ
ステムは、"ヒント"を定義する情報を記憶する複数のレ
ジスタ324を使用する。特に、好ましい実施形態はレ
ジスタのグループ化を利用する。図3に示されているよ
うに、本発明の1つの実施形態は、(PCIバスを駆動
する装置である)PCIマスタの各々ごとに複数のレジ
スタを使用する。この実施形態において、各PCIマス
タ装置に対して2つのレジスタが専用に配置される。し
かしながら、本発明の概念と教示と整合性を保ちなが
ら、各PCIマスタに関連するレジスタを必要に応じて
追加することは可能である。
【0045】本発明に従えば、各レジスタは1つのヒン
トまたはヒント・セットを記憶することができる。本発
明の好ましい実施形態に従って、詳細は後述されるが、
各レジスタはヒント・セットを記憶する。従って、この
場合、2つのヒント・セットが各PCIマスタ装置に関
連して記憶される。例えば、第1のPCIマスタに関連
して2つのレジスタ325および326が例示されてい
る。PCIバス130を経由するデータ転送に関して一
層広く一般化するため、データを制御データまたはペイ
ロード・データとして一般的に分類することができる。
制御データは典型的には比較的短いデータ・ブロックを
含むが、一方、ペイロード・データは一般に一層大きい
データ・ブロックを含む。従って、第1のレジスタ32
5は制御型データの通信に関するヒントを記憶するため
使用され、第2のレジスタ326はペイロード型データ
の通信に関するヒントを記憶するため使用される。動作
の間、該システムは、(所与のPCIマスタに関する転
送のため)"活動的"レジスタとしてこれらのレジスタの
うちの1つを選択する。
【0046】ヒント生成回路322は、種々のレジスタ
324に記憶される値を生成するため何らかのメカニズ
ムが提供される概念を表現している。これらの値は実際
に多数の異なる方法で導出されることができる。最適の
場合として、所与の回路カード/PCIマスタはこれら
の値を具体的に生成する。当然のことながら、この手法
は、回路カードが本発明のシステムのため特に設計され
ているか、あるいはそのようなシステムのためのソフト
ウェア・ドライバを備えていると仮定される。しかしな
がら、そのような回路カードが多くの異なるシステムに
関して動作するように一般的に設計されていると認識し
て、該システムは、これらのレジスタ値を特に生成する
ための回路またはその他のメカニズムを含むことができ
る。この場合、システムは初期化の際デフォルト値を記
憶することができる。しかし、ヒント生成回路322
は、個々のPCIマスタの間のPCIバス・トランザク
ションを監視するように構成されることもできる。所与
の装置に対するバス・トラフィックの性質を時間の経過
とともに観察することによって、ヒント生成回路322
は種々のレジスタ325の範囲に記憶される値を更新す
るように構成される。このようにして、一般的なPCI
カードでさえその性能は、本発明に従って構築されるシ
ステムによって大幅に改善される。
【0047】加えて、所与のレジスタ・セットのうち
の"活動的"レジスタを選択するためレジスタ・セレクタ
回路328が提供される。本発明の好ましい実施形態に
従えば、さもなければ使用されないアドレス・ビットを
使用することによって活動的レジスタが指定される。図
3は、更に、PCIバス上のトランザクションを監視す
るように構成されるPCIインタフェース329を示し
ている。集合的にPCIインタフェース329およびレ
ジスタ・セレクタ328は、所与のレジスタ・セットか
ら活動的レジスタを指定する。前述の通り、活動的レジ
スタは、(PCIマスタが本発明のシステムに関する特
定の知識を持つ特別のカードであるとすれば)、PCI
マスタによって指定されることができるし、あるいは、
本発明のシステムによって指定されることもできる。
【0048】本発明の概念の例示に役立つように、以下
の記述は、I/Oキャッシュにおけるデータ管理を実施
するための本発明の使用を説明する。この環境において
は、システム・メモリ128に対して読み書きされるべ
きデータはキャッシュ・メモリ装置126によって読み
取られる。このように、PCIバス130に沿って配置
される装置へシステム・メモリ128からデータを読み
取る時、データは、先ず、システム・メモリ128から
キャッシュ・メモリ装置126のメモリ空間304に読
み込まれなければならない(図4参照)。この実施形態の
キャッシュ・メモリ装置126が、キャッシュ・メモリ
管理においてよく知られている多くのデータ管理方法ま
たは技法を利用することができるが、いくつかの新しい
機能も同様に利用される。本発明の実施形態の1つの側
面に従えば、該システムは、PCIバス130とキャッ
シュ・メモリ126の間のバス・トラフィックを監視し
て、PCIバス130に沿って配置される装置に対する
特定の洞察を取得する。具体的に述べれば、該システム
は、PCIバス130と通信中のユニークな装置を指定
する特定の装置位置との間のバス・トラフィックを監視
して追跡する。例えば、(図1の)拡張カード140は、
特別なアドレス110またはアドレス範囲を持つように
定義されることができる。このI/Oアドレスまたはア
ドレス範囲との間のいかなる読み取りまたは書き取りも
システムによって監視されることができる。このカード
との間のデータ・トランザクションの特徴に基づいて、
システムは、カードの性質に関する特定の決定を行い、
それに応じてキャッシュ・メモリの範囲内でデータを管
理する方法を変更する。好ましくは、データは全般的シ
ステム効率を最適化するように管理される。第1および
第2という2つの拡張カードがある場合、システム・メ
モリ128から第1の拡張カードへのデータ取り出し要
求は、2つのそれぞれのカードに関して本発明によって
収集される情報に基づいて、メモリから第2の拡張カー
ドへのデータ取り出し要求に関するものとは異なる形態
で取り扱われる点は理解されることであろう。
【0049】例として、拡張カードの1つが非同期転送
モード(すなわちATM)通信装置であると仮定する。そ
のカードとの間のデータ・トランザクションを監視する
ことによってカードが実際にATMカードであるとシス
テムが判断すれば、本発明はそのカードとの間のデータ
・トラフィックに関して特定の仮定を行うことができ
る。具体的に述べれば、周知の通り、単純なATM装置
においては、ATMデータは、5つのオクテット・ヘッ
ダ部分と48バイトのデータ・ペイロードからなるパケ
ットで伝送される。従って、ATM装置がシステム・メ
モリ128からのデータを要求する時、システムは、最
終的には装置によってメモリから連続する48バイトが
要求されると仮定することができる。従って、システム
は、(データの最初のバイトに対する要求を受け取り次
第)直ちにシステム・メモリ128からキャッシュ・メ
モリ126のメモリ空間304に48バイトのデータを
取り出すように動作する。次に、このデータは、PCI
バス130の装置がメモリ128からデータを要求する
時典型的に派生する待ち時間(すなわち数サイクルの遅
延)を発生させることなく、(PCIバス130からの要
求があり次第)直ちにキャッシュ・メモリ126からP
CIバス130へ書き込まれる。本実施形態に従って、
キャッシュ・メモリ126は、データ・バイトではなく
むしろキャッシュ行グループの形態でシステム・メモリ
128からデータを取り出す。従って、システムは、デ
ータ要求を受け取り次第直ちにキャッシュ・データ行全
体を取り出す。キャッシュ行の範囲内のデータの最初の
バイトの位置およびキャッシュ・メモリ126のキャッ
シュ行のサイズに基づいて、48バイト・データを完全
に事前取り出しするため、システムの装置は、少なくと
も1データ・キャッシュ行を事前に取り出し、更に必要
に応じて潜在的に2または3データ・キャッシュ行を事
前に取り出す。
【0050】しかしながら、本発明の概念と整合性を保
ちながら、上述のATMに関連する場合と同様の方法で
異なるタイプの拡張カードに関する種々の特徴を収集お
よび使用して、キャッシュ・メモリ126の動作の効率
を最適化または少なくとも改善することができる点は理
解されることであろう。
【0051】図4に示されているように、キャッシュ・
メモリ装置126は、メモリ空間304、メモリ管理機
構302およびディレクトリ/インデックス236を内
包する。メモリ空間304は複数のキャッシュ行に区分
される。1つの実施形態に従えば、メモリ空間304
は、各行が64バイト・データを含む16キャッシュ行
を含む。しかしながら、本発明の概念と整合性を保ちな
がら、異なる行サイズを利用することができる。メモリ
管理記憶は、メモリ空間304の範囲内のデータ管理と
共にキャッシュ・メモリ126の動作の制御を行う種々
の機能を実行する回路から構成される。そのようなタス
クは当業者には周知のもので、従って、ここで記述する
必要はない。
【0052】実際にここで記述が必要とされるものは、
本発明を活用するシステムによってなされる特定の基本
的進歩を例示する部分だけである。このような観点か
ら、メモリ管理機構302の回路は、離散的ハードウェ
アまたはハードウェア/マイクロコード部分310から
成る多数の機能ユニットを含む。1つ機能ユニットは、
取り出し命令314を評価するように構成される。PC
Iバス130に沿って配置される装置から受け取られる
命令がメモリ管理機構302によって評価され、具体的
にどのようなアクションが要求されているか決定され
る。
【0053】別の機能ユニットは、ブロック314によ
って評価された取り出し命令に関連する事前取り出しヒ
ントのセット316を評価するように構成される。この
機能は更に詳細に後述される。本発明に従って構築され
るシステムによって提供される更に別の機能は、ブロッ
ク314によって識別される取り出しコマンドに部分的
に基づき、また、ブロック316によって識別される事
前取り出しヒントに部分的に基づいて、データ・キャッ
シュ行318の特定数"X"の事前取り出しを実行するこ
とを要求する機能である。前述のように、取り出し要求
が単に1バイト・データに関する要求であっても事前取
り出しヒントが要求元装置をATMカードであると識別
すれば、キャッシュ行の範囲内のデータの最初のバイト
の位置およびキャッシュ・メモリ126のキャッシュ行
のサイズに基づいて、ブロック318は、少なくとも1
データ・キャッシュ行を事前に取り出し、更に必要に応
じて潜在的に2または3データ・キャッシュ行を事前に
取り出すように動作するように構成される。(64バイ
トのキャッシュ行を持つ)好ましい実施形態のキャッシ
ュ・メモリ装置126においては、ATMカードからの
データ取り出し要求は、1または2キャッシュ行の事前
取り出しを派生する。一層具体的に述べれば、要求され
るデータの最初のバイトのアドレスがキャッシュ行の最
後の47バイト以内にあれば、2キャッシュ行全体がメ
モリ空間304に事前取り出しされる。
【0054】本発明に従って構築されるシステムの別の
1つの機能ユニットは、あらかじめ定められた数"X"の
データ・キャッシュ行320を消去するように構成され
る機能ユニットである。前述の例を継続すれば、典型的
には、ATM装置(またはそのような入出力装置のいず
れでも)が、システム・メモリ128からデータを取り
出す時、近い将来において再度同じデータ要求をおこな
わないであろう。従って、データがメモリ空間304か
らPCIバス130へ書きかまれると、メモリ管理機構
302は、そのデータが近い将来再びアクセスされない
と仮定して、メモリ空間304からそれを消去すること
ができる。ATMからのデータ要求に応答して、本発明
が2データ・キャッシュ行を事前取り出しすべきであっ
たとすれば、48バイト・データの最後のバイトがメモ
リ空間304からPCIバス130へ書き込まれると、
本発明は、直ちにメモリ空間304からそれら2データ
行を消去する。キャッシュ126の比較的小さいメモリ
空間304を効率的に管理することによって、全般的シ
ステム性能および効率が改善される。
【0055】本発明に従って、PCIバス130とキャ
ッシュ・メモリ126の間のバス・トラフィックおよび
データ・トランザクションが、PCIバス130上の装
置の性質を識別および判断するため監視される。この情
報は、PCIバス130上の所与の装置と関連するヒン
ト・セットを生成するように構成されるヒント生成回路
322によって利用される。これらのヒントは、上述の
ような種々の機能ブロック310によって利用される種
々の事前取り出しヒントを保存する照合テーブル324
に保存される。好ましい実施形態に従えば、ヒント生成
回路322は、メモリ読み取りのようなバス・トランザ
クションを監視する。
【0056】周知の通り、システム・メモリ128から
PCIバス130上の装置へデータを読み取るために使
用される命令は一般的に3つある。それらは、Memory R
eadの略称でメモリ読み取りを意味するMRコマンド、M
emory Read Lineの略称でメモリ行読み取りを意味する
MRLコマンド、およびMemory Read Multipleの略称で
メモリ複数行読み取りを意味するMRMコマンドであ
る。これらのコマンドは、標準PCIバスによって定義
されているが、実施の度合いは厳密ではない。MRコマ
ンドは、典型的には、メモリからデータの単一ワードを
取り出す時に典型的に使用される。MRLコマンドは、
メモリからデータの数ワードを取り出す時通典型的に使
用されるが、通常キャッシュ行境界を越えた取り出しは
行われない。MRMは、バイトまたはデータ・ブロック
の比較的大きい数をメモリから取り出す時使用され、キ
ャッシュ行境界を越えた取り出しが行われる。これらコ
マンドだけに基づいて、メモリ管理機構302は、MR
LまたはMRMコマンドを受け取る時にのみデータを事
前取り出しするように構成される。すなわち、メモリ管
理機構302は、MRLコマンドに応答して1データ・
キャッシュ行を必ず事前取り出しを行い、MRMコマン
ドに応答して2または3データ・キャッシュ行を必ず事
前取り出しを行うように構成される。
【0057】しかしながら、周知の通り、標準PCIは
これらコマンドをゆるく定義しているに過ぎず、これら
を厳密に守る強制力はない。従って、別々の拡張カード
の別々の製造業者が、異なる方法でそれぞれのカードに
対するデバイス・ドライバをプログラムする可能性があ
る。例えば、ATM装置の例を更に続ければ、ATMカ
ードに関するデバイス・ドライバは、MRコマンドだけ
を活用するプログラマによって開発されるかもしれな
い。従って、従来技術のシステムは、(たとえ48バイ
トが連続的に取り出されなければならないとしても)シ
ステム・メモリ128からデータを事前に取り出さない
であろう。すなわち、(本発明の利点を持たない場合)メ
モリ管理機構302は、MRコマンドを受け取ると、シ
ステム・メモリ128から単に1バイト・データだけを
取り出すべきものであり、追加の事前取り出しを実行す
る必要はないと仮定する。
【0058】しかしながら、本発明の利点を適用すれ
ば、特定の拡張カードが例えば常に48連続MRコマン
ドを実行して連続的な48データ・バイトを取り出すこ
とをヒント生成回路322が決定することができる。こ
の情報から、ヒント生成回路322は、PCIバス13
0に沿った所与のアドレスにおける装置または拡張カー
ドがATMカードであると仮定することができる。ヒン
ト生成回路322は、このカードに関連する事前取り出
しに関する特定のヒントを照合テーブル324に記憶す
る。従って、MR要求がその装置から受け取られると、
本発明のメモリ管理機構302は、直ちに48データ・
バイト(1または2キャッシュ行のいずれ)を事前取り出
しするように動作する。従って、PCIバス130に沿
ったATM装置から実行される後続のメモリ読み込みは
キャッシュ・メモリ126のメモリ空間304から直ち
に取り出されることができるので、システム・メモリ1
28から取り出す場合の待ち時間遅延に苦しむことがな
い。
【0059】当然のことではあるが、この仮定が間違っ
ているとしても、メモリ128からメモリ空間へ事前取
り出しされたデータが単にPCIバス130から要求さ
れないだけであるので、特に大きな損失はなく、当然の
成り行きとしてメモリ管理機構304によってメモリ空
間304からそのデータが消去される。更に、理解され
ることであろうが、ヒント生成回路322は、多種多様
な拡張カードに関して同様なヒントを生成するように構
成することができる。すなわち、本発明は、ATMタイ
プの拡張カードに関連するヒントの生成のみに限定され
ているのではなく、本発明の広範囲な側面を例示するた
めにATMカードを取り上げたに過ぎない。
【0060】本発明の実施形態を更に具体的に説明する
ため、図5を参照する。図5において、ヒント生成回路
322は、キャッシュ・メモリ126とPCIバス13
0の間に配置されるインタフェース402において実施
されている。拡張カード406および408(その他は
図示されていない)がPCIバス130と通信するよう
に配置されている。キャッシュ・メモリ装置126は、
事前取り出しヒントを評価し、キャッシュ・メモリ管理
を制御する回路410を含む。この回路410は、図3
に図示されているメモリ管理機構302に部分的に対応
する。同じように、インタフェース402は、図3と関
連して記述されたヒント生成機能論理を提供するよう集
合的に構成される種々の回路コンポーネントを含む。例
えば、回路または論理は、事前取り出しヒント412を
生成するように提供される。独立した回路が、特定の事
前取り出しヒント414を定義するレジスタ・セットを
含む。好ましい実施形態のシステムに従って、インタフ
ェース402は、特定の事前取り出しヒントを定義する
レジスタ・セットを含む。所与の取り出し要求に応答し
て、これらのレジスタ値414は、キャッシュ・メモリ
126の範囲内の回路によって解釈され、キャッシュ・
メモリ126の範囲内におけるデータの管理に使用され
る。
【0061】図6の流れ図は、本現在の1つの実施形態
に従って構築される方法の概略の機能的動作を示す。該
方法は、PCIバス(特にPCIバスとシステム・メモ
リ128の間のトランザクション)を監視し(ステップ5
02)、ステップ502において監視されるバス・トラ
ンザクションに基づいて事前取り出しヒントを生成する
(ステップ504)。種々の事前取り出しヒントが装置レ
ジスタ・セットに保存される(ステップ506)。これら
3つのステップ502、504および506は連続的に
実行され、PCIバス130と通信する拡張スロットま
たは装置における種々のカードに対して事前取り出しヒ
ントが連続的に更新される。動作において、取り出し要
求を受け取ると(ステップ508)、該方法は、取り出し
要求に基づいて、好ましくはアドレス・ビットを使用し
て、活動的レジスタを選択する(ステップ510)。レジ
スタから取り出した事前取り出しヒントまたは情報に基
づいて、種々の後続ステップがとられる。
【0062】例えば、レジスタからの情報を使用して、
事前取り出しブロック・サイズまたはブロック境界を制
御する(ステップ512)。すなわち、この情報を使用し
て、システム・メモリ128からキャッシュ・メモリ3
04へ(特定の境界によって制限されるが)どれだけのデ
ータを事前に取り出すか決定される。本発明の別の側面
に従えば、レジスタに含まれる情報を使用して、キャッ
シュ消去条件が制御される(ステップ514)。前述のよ
うに、(ATMデータのような)多くのタイプのデータ
が、メモリ空間304からPCIバス130へ読み取ら
れると、データが近い将来再び使用される可能性がない
という仮定に基づいて、キャッシュ・メモリ空間304
から直ちに消去される。同じように、レジスタから取り
出したデータすなわち事前取り出しヒントを利用して、
事前取り出しの深さが制御される(ステップ516)。こ
のステップはステップ512に似ているが、事前取り出
しの深さは、キャッシュ・メモリ126のメモリ空間3
04へ事前取り出しすべきデータの量を指定する。そこ
を越えてデータを事前取り出ししないアドレス境界を指
定するためステップ512のブロック・サイズは使用さ
れる。
【0063】メモリ管理機構302の動作に影響を及ぼ
す種々の異なる機能が使用されることができる点は理解
されることであろう。しかしながら、本発明の好ましい
実施形態に従って、特定の事前取り出しヒントが上記定
義されているので、それらに関して以下に更に説明す
る。本発明の好ましい実施形態に従って、複数の"ヒン
ト"レジスタが提供される。それらの各々は次の表1の
通りである。
【0064】
【表1】
【0065】具体的に述べれば、このレジスタは、32
ビット・レジスタで、書き込みヒントを指定する3ビッ
ト・フィールド(ビット27−29)、読み取りヒントを
指定する9ビット・フィールド(ビット18−26)、行
読み取りヒントを指定する9ビット・フィールド(ビッ
ト9−17)、および、複数行読み取りヒントを指定す
る9ビット・フィールド(ビット0−8)を含む。この形
式のレジスタは、図3のブロック324または図4のブ
ロック414の一部を形成する。
【0066】実際、本発明の好ましい実施形態に従っ
て、各々が表1の形式をした複数の"ヒント"レジスタが
提供される。所与のトランザクションに関して複数のヒ
ント・レジスタのうちのどれを使用すべきかあるいはど
れにアクセスすべきかを指定するためPCIアドレス・
ビットが使用される。例えば、4つのヒント・レジスタ
・セットがあると仮定すれば、所与のレジスタを指定す
るため未使用の2PCIアドレス・ビットを使用するこ
とが可能である。4つのレジスタはゼロ、1、2および
3という番号がつけられているとすれば、00、01、10、
11というアドレス・ビット値を使用して、それぞれのヒ
ント・レジスタを指定することができる。次に、指定さ
れたヒント・レジスタはメモリ管理機構302内部の回
路によって解釈される。
【0067】本発明の好ましい実施形態に従えば、メモ
リ書込み(Memory Write)コマンドまたはメモリ書き込み
無効(Memory Write Invalidate)コマンドがPCIに対
して使用される時、書き込みヒントが選択される。PC
Iメモリ読み取り(Memory Read)コマンドの場合読み取
りヒントが選択される。PCIメモリ行読み取り(Memor
y Read Line)コマンドの場合、行読み取りヒントが選択
される。PCIメモリ複数行読み取り(Memory Read Mul
tiple)コマンドの場合、複数行読み取りヒントが選択さ
れる。メモリ管理機構302によって解釈される読み取
りコマンドの各々に関するアクションは次の表2の通り
である。
【0068】
【表2】ビット ヒント名 ヒント記述 0 積極的消去 積極的消去を可能にする。転送後直ちに キャッシュ行を消去する。 1 PIOR/DMAR DMA読取の順序づけ実施を可能にする。 順序付け 2 現在値読取 現在値読取トランザクションとして キャッシュ行が取り出しされる。 5:3 ブロック 読取のブロック・サイズを指定する。 サイズ 7:6 事前取出 事前取り出しの深さを指定する。 深さ 8 事前取出 読取バースト続行中に事前取り出しヒントが ロック 調整されないように指定する。
【0069】具体的には、読み取りヒント、読み取り行
ヒントおよび読み取り複数行ヒントの各々に関する9ビ
ッ・フィールドは同じヒント記述を持つように定義され
ている。当然のことながら、本発明の概念と整合性を保
ちながら、これらのフィールドを異なる機能または記述
を持つように構成することは可能である。同様に多様な
機能または記述を書き込みヒント・フィールドに用いる
ことも可能である。しかしながら、本発明の好ましい実
施形態に従えば、オプションはほとんど用意されていな
いので、書き込みヒント・フィールドは2、3ビットで
定義される。具体的には、本実施形態では、ビット0だ
けが利用され、このビットの状態は、積極的消去が実行
されるべきか否かを指定する。積極的な消去において
は、メモリ管理機構は、書き込み更新が完了すると直ち
にキャッシュ行を消去する。
【0070】DMA読み取りに関する合理的なスループ
ットを達成するため、事前取り出しが望ましい。事前取
り出しのレベルは、インタフェース402によって供給
される事前取り出しおよびブロック・サイズ・ヒント
(表3参照)によって制御される。事前取り出しヒント
は、当該バースト動作に関して事前取り出しすべきキャ
ッシュ行数を指定する2ビット値である。本発明の好ま
しい実施形態は、0、1、2および3キャッシュ行とい
う事前取り出し深さをサポートする。値ゼロは、事前取
り出しを全く行わない、すなわち要求された行だけを取
り出すことことを意味する。1、2および3という値
は、要求された行に加えて、それぞれ、1、2または3
の追加の連続行を取り出すことを意味する。DAMAバ
ースト動作がキャッシュ行を消費するにつれて、追加の
キャッシュ行が事前取り出しされる。
【0071】ブロック・サイズ・ヒントは3ビット・フ
ィールドである。ブロック・サイズは、読み取りバース
トの長さに関するヒントとして使用される。次の表3
は、ヒントの各値に関する意味を説明している。値0−
3はキャッシュ行の数に基づく限度を指定する。残りの
値はアドレスに基づく限度を指定する。DMAシーケン
サおよびキャッシュは、ヒント値に従って、キャッシュ
行カウントの使用とアドレス・ロールオーバー・テスト
(address rollover tests)の間を切り替える。
【0072】
【表3】ヒント値 記述 0 ATMモード(アドレスに基づき、バスト・サイズを48バイトと 仮定して、1または2キャッシュ行を取得する) 1 2キャッシュ行(128B)を取得する 2 3キャッシュ行(192B)を取得する 3 4キャッシュ行(256B)を取得する 4 512Bを越えて事前取り出ししない 5 1KBを越えて事前取り出ししない 6 2KBを越えて事前取り出ししない 7 4KBを越えて事前取り出ししない
【0073】好ましくは、ブロック・サイズ・ヒントは
事前取り出しヒントに優先する。DMAシーケンサは、
ブロック・サイズによってセットされた制約に従うため
キャッシュ・コントローラに対する実際の事前取り出し
信号を増減する。更に、DMAシーケンサは、読み取り
バーストがPCIバスに転送中のキャッシュ行を(事前
取り出しヒント+1)行に維持し続けるので、事前取り
出しヒントを調節する。これは、0または1という事前
取り出しヒントを使用する遅いカードに関して実行さ
れ、それ以外の場合には、DMAシーケンサは、単に読
み取りFIFOをいっぱいに維持しようとする。この結
果、カード切断の時事前取り出しが無駄となり、プロセ
ッサ・バス・バンド幅が不必要に浪費される。
【0074】上述されたような方法で事前取り出しヒン
トを調節することは、非常に速いカードの場合性能へ悪
影響を及ぼすことがある。そのようなケースでは、事前
取り出しロック・ヒントをセットして、読み取りFIF
Oをいっぱいに維持しようとするDMAシーケンサの行
動形態を変えることができる。事前取り出しロック・ヒ
ントは、その目的がPCIバス130のパイプラインを
可能な限りいっぱいにすることを試みるものであるの
で、3という事前取り出し深さを使用することが好まし
い。
【0075】以下は、事前取り出しヒントに関する若干
のガイドラインである。
【0076】*MRコマンドの場合、ヒントはほとんど
常にゼロに設定される。他の値を使用する典型的な理由
は、そうしなければならない時にMRLまたはMRMの
使用に失敗するカードの性能を最適化することである。
【0077】*MRLコマンドの場合、0および1とい
うヒントが有意である(2または3という値は、MRM
を使用すべき時にMRLを使用したカードに対して使用
されることができる)。MRL使用の理由は次の2つの
理由のうちの1つである。(1)カードが、例えば32ま
たは64バイトのようななんらかの制御情報を取り出
し、次のアドレスにおいてキャッシュ行から追加データ
を取り出す意図を持たない。(2)カードが、データの大
きいブロックのデータを取り出すが、インタフェースに
おいて1データ・キャッシュ行を収納できるだけのバッ
ファしか持っていないので、個々の読み取りごとに1キ
ャッシュ行だけを取得するだけである。最初のケースで
はヒントはゼロでなければならない。後者の場合、装置
が次の読み取りを試みる時次のキャッシュ行がすでにキ
ャッシュにあるようにするため、ヒントは1でなければ
ならない。しかしながら、このヒントはキャッシュにお
ける追加の行を使用する点に注意する必要がある。従っ
て、装置が多くのストリームを同時に活動的にさせよう
とすれば、たとえ大きいブロックが読まれようとヒント
をゼロにセットすることはより良い考えである。
【0078】*MRMコマンドの場合、2または3とい
う値が意味を持つ。正確な選択は、PCIに関するメモ
リ・システムの待ち時間および動作の頻度に依存する。
事前取り出しロック・ヒントがこの場合もセットされる
必要があるかもしれない。
【0079】以上の記述は、本発明を記述した厳密な形
態に制限するように意図されたものではない。上記の教
示に照らして種々の修正またはバリエーションが可能で
ある。そのような観点から、本発明の原理およびその実
際的応用を最もよく例示し、それによって当業者がその
特定用途に適するような修正を加えた種々の実施形態に
おいて本発明を活用することができるように、上記実施
形態は選択されている。
【0080】本発明には、例として次のような実施様態
が含まれる。 (1)システム・メモリと要求元装置の間に配置されるキ
ャッシュ・メモリを有するコンピュータ・システムにお
いて、該キャッシュ・メモリの内部のデータを管理する
方法であって、システム・メモリからデータを取り出す
要求を受け取るステップと、上記要求に関連する事前取
り出しヒント・セットを評価するステップと、上記事前
取り出しヒントに基づいて上記キャッシュ・メモリ内部
におけるデータの取り出しおよび管理を制御するステッ
プと、を含むキャッシュ・データ管理方法。 (2)上記事前取り出しヒントがキャッシュ・メモリに事
前に取り出すべきキャッシュ行数の識別情報を含む、上
記(1)に記載の方法。 (3)上記事前取り出しヒントが、そこを越えてデータが
キャッシュ・メモリに事前取り出しされることのないシ
ステム・メモリ境界限界の識別情報を含む、上記(1)に
記載の方法。 (4)上記事前取り出しヒントが、取り出されたデータを
キャッシュ・メモリから消去する条件の識別情報を含
む、上記(1)に記載の方法。 (5)上記条件が、取り出されたキャッシュ行が要求元装
置へ書き出され次第消去されるべきことを指定する、上
記(4)に記載の方法。
【0081】(6)要求元装置とキャッシュ・メモリがP
CIバスを介して相互通信する、上記(1)に記載の方
法。 (7)Memory Readの略称でメモリ読み取りを意味するMR
コマンド、Memory ReadLineの略称でメモリ行読み取り
を意味するMRLコマンド、およびMemory ReadMultipl
eの略称でメモリ複数行読み取りを意味するMRMコマ
ンから事前取り出しヒントを導出するステップを更に含
む、上記(6)に記載の方法。 (8)MR取り出しコマンドが、追加事前取り出しを行わ
ないようにキャッシュ・メモリに関するメモリ・コント
ローラに指示する事前取り出しヒントを生成する、上記
(7)に記載の方法。 (9)MRLコマンドが、2未満の追加データ・キャッシ
ュ行を事前取り出しするようにキャッシュ・メモリに関
するメモリ・コントローラに指示する事前取り出しヒン
トを生成する、上記(7)に記載の方法。
【0082】(10)PCIバスを経由して通信している装
置へシステム・メモリからデータを取り出すシステムで
あって、システム・メモリとPCIバスの間に配置さ
れ、複数のデータ行の形態でその内部にメモリ空間を有
する入出力キャッシュ・メモリと、取り出し基準を定義
するように構成される複数のレジスタと、上記複数レジ
スタの中から活動的レジスタを選択するように構成され
るレジスタ・セレクタと、を備え、上記装置に関する取
り出し基準が上記活動的レジスタによって指定される、
システム。
【0083】
【発明の効果】本発明によると、PCIバスに接続する
装置とシステム・メモリの間に位置するキャッシュ・メ
モリへのシステム・メモリからのデータの事前取り出し
量が装置やトランザクションなどの特性に基づいて決定
されるので、キャッシュ・メモリの性能および効率が向
上する。
【図面の簡単な説明】
【図1】PCIバスを経由してキャッシュ・メモリと通
信する高性能なコンピュータ・システムのブロック図で
ある。
【図2】キャッシュ・メモリの内部の基本的コンポーネ
ントを示すブロック図である。
【図3】本発明に従って構築されるシステムの特定のコ
ンポーネントを示すブロック図である。
【図4】本発明に従って構築されるシステムの特定のコ
ンポーネントを示すブロック図である。
【図5】本発明に従って構築されるシステムのその他の
コンポーネントを示すブロック図である。
【図6】本発明に従って構築されるシステムの機能的動
作の概要を示す流れ図である。
【符号の説明】
100 コンピュータ・システム 126 キャッシュ・メモリ 128 システム・メモリ 130 PCIバス 322 ヒント生成回路 324 事前取り出しヒント・レジスタ
フロントページの続き (72)発明者 ロバート・ジェイ・ホーニング アメリカ合衆国80525コロラド州フォー ト・コリンズ、ケープ・コッド・サークル 4242

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】システム・メモリと要求元装置の間に配置
    されるキャッシュ・メモリを有するコンピュータ・シス
    テムにおいて該キャッシュ・メモリの内部のデータを管
    理する方法であって、 システム・メモリからデータを取り出す要求を受け取る
    ステップと、 上記要求に関連する事前取り出しヒント・セットを評価
    するステップと、 上記事前取り出しヒントに基づいて上記キャッシュ・メ
    モリ内部におけるデータの取り出しおよび管理を制御す
    るステップと、 を含むキャッシュ・データ管理方法。
JP2000003572A 1999-01-15 2000-01-12 キャッシュ・データ管理方法 Expired - Fee Related JP3888508B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/232293 1999-01-15
US09/232,293 US6542968B1 (en) 1999-01-15 1999-01-15 System and method for managing data in an I/O cache

Publications (2)

Publication Number Publication Date
JP2000235520A true JP2000235520A (ja) 2000-08-29
JP3888508B2 JP3888508B2 (ja) 2007-03-07

Family

ID=22872569

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000003572A Expired - Fee Related JP3888508B2 (ja) 1999-01-15 2000-01-12 キャッシュ・データ管理方法

Country Status (2)

Country Link
US (2) US6542968B1 (ja)
JP (1) JP3888508B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005524171A (ja) * 2002-05-01 2005-08-11 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ メモリ領域ベースのプリフェッチング
JP2007500402A (ja) * 2003-05-07 2007-01-11 フリースケール セミコンダクター インコーポレイテッド 周辺装置アクセス保護付きデータ処理システム

Families Citing this family (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6981101B1 (en) * 2000-07-20 2005-12-27 Silicon Graphics, Inc. Method and system for maintaining data at input/output (I/O) interfaces for a multiprocessor system
US7069306B1 (en) 2000-07-20 2006-06-27 Silicon Graphics, Inc. Providing shared and non-shared access to memory in a system with plural processor coherence domains
US7032035B2 (en) * 2000-12-08 2006-04-18 Intel Corporation Method and apparatus for improving transmission performance by caching frequently-used packet headers
US7117316B2 (en) 2002-08-05 2006-10-03 Micron Technology, Inc. Memory hub and access method having internal row caching
US6820181B2 (en) 2002-08-29 2004-11-16 Micron Technology, Inc. Method and system for controlling memory accesses to memory modules having a memory hub architecture
WO2004031943A1 (ja) * 2002-09-30 2004-04-15 Renesas Technology Corp. データプロセッサ
US7124262B2 (en) * 2002-11-20 2006-10-17 Intel Corporation Selectivity pipelining and prefetching memory data
US7237068B2 (en) * 2003-01-28 2007-06-26 Sun Microsystems, Inc. Computer system employing bundled prefetching and null-data packet transmission
US7146467B2 (en) * 2003-04-14 2006-12-05 Hewlett-Packard Development Company, L.P. Method of adaptive read cache pre-fetching to increase host read throughput
US7310707B2 (en) 2003-05-15 2007-12-18 Seagate Technology Llc Adaptive resource controlled write-back aging for a data storage device
US7120727B2 (en) 2003-06-19 2006-10-10 Micron Technology, Inc. Reconfigurable memory module and method
US7260685B2 (en) 2003-06-20 2007-08-21 Micron Technology, Inc. Memory hub and access method having internal prefetch buffers
US7120743B2 (en) 2003-10-20 2006-10-10 Micron Technology, Inc. Arbitration system and method for memory responses in a hub-based memory system
US7330992B2 (en) 2003-12-29 2008-02-12 Micron Technology, Inc. System and method for read synchronization of memory modules
US7188219B2 (en) 2004-01-30 2007-03-06 Micron Technology, Inc. Buffer control system and method for a memory system having outstanding read and write request buffers
GB0402739D0 (en) * 2004-02-09 2004-03-10 Saviso Group Ltd Methods and apparatus for routing in a network
US7213082B2 (en) * 2004-03-29 2007-05-01 Micron Technology, Inc. Memory hub and method for providing memory sequencing hints
US20050216716A1 (en) * 2004-03-29 2005-09-29 Hoffman Philip M System and method for licensing and distribution of I/O in partitioned computer systems
US7238218B2 (en) * 2004-04-06 2007-07-03 International Business Machines Corporation Memory prefetch method and system
US7519788B2 (en) 2004-06-04 2009-04-14 Micron Technology, Inc. System and method for an asynchronous data buffer having buffer write and read pointers
US20060031639A1 (en) * 2004-08-06 2006-02-09 International Business Machines Corporation Write unmodified data to controller read cache
US20060069818A1 (en) * 2004-09-27 2006-03-30 Cliff Mather Synchronizing direct memory access and evacuation operations in a computer system
US7383391B2 (en) * 2005-05-18 2008-06-03 International Business Machines Corporation Prefetch mechanism based on page table attributes
US7949794B2 (en) 2006-11-02 2011-05-24 Intel Corporation PCI express enhancements and extensions
US7624235B2 (en) * 2006-11-30 2009-11-24 Apple Inc. Cache used both as cache and staging buffer
JP2008262390A (ja) * 2007-04-12 2008-10-30 Toshiba Corp プログラム
US8161243B1 (en) * 2007-09-28 2012-04-17 Intel Corporation Address translation caching and I/O cache performance improvement in virtualized environments
US8250307B2 (en) * 2008-02-01 2012-08-21 International Business Machines Corporation Sourcing differing amounts of prefetch data in response to data prefetch requests
US8266381B2 (en) * 2008-02-01 2012-09-11 International Business Machines Corporation Varying an amount of data retrieved from memory based upon an instruction hint
US20090271578A1 (en) * 2008-04-23 2009-10-29 Barrett Wayne M Reducing Memory Fetch Latency Using Next Fetch Hint
US8176254B2 (en) * 2009-04-16 2012-05-08 International Business Machines Corporation Specifying an access hint for prefetching limited use data in a cache hierarchy
JP2011182314A (ja) * 2010-03-03 2011-09-15 Oki Semiconductor Co Ltd データ中継装置及び方法
CN103827776B (zh) 2011-09-30 2017-11-07 英特尔公司 通过pci高速组件减少功耗的活动状态功率管理(aspm)
US10015111B2 (en) * 2013-03-15 2018-07-03 Huawei Technologies Co., Ltd. System and method for steering packet streams
US9367467B2 (en) * 2014-08-22 2016-06-14 Nvidia Corporation System and method for managing cache replacements
US11500779B1 (en) 2019-07-19 2022-11-15 Marvell Asia Pte, Ltd. Vector prefetching for computing systems
US11379379B1 (en) * 2019-12-05 2022-07-05 Marvell Asia Pte, Ltd. Differential cache block sizing for computing systems

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US5652858A (en) * 1994-06-06 1997-07-29 Hitachi, Ltd. Method for prefetching pointer-type data structure and information processing apparatus therefor
US5608878A (en) 1994-10-03 1997-03-04 International Business Machines Corporation Dual latency status and coherency reporting for a multiprocessing system
US5732243A (en) * 1994-10-18 1998-03-24 Cyrix Corporation Branch processing unit with target cache using low/high banking to support split prefetching
US5778436A (en) * 1995-03-06 1998-07-07 Duke University Predictive caching system and method based on memory access which previously followed a cache miss
US5732242A (en) * 1995-03-24 1998-03-24 Silicon Graphics, Inc. Consistently specifying way destinations through prefetching hints
US5664147A (en) * 1995-08-24 1997-09-02 International Business Machines Corp. System and method that progressively prefetches additional lines to a distributed stream buffer as the sequentiality of the memory accessing is demonstrated
US5860105A (en) * 1995-11-13 1999-01-12 National Semiconductor Corporation NDIRTY cache line lookahead
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
US6003106A (en) * 1998-05-27 1999-12-14 International Business Machines Corporation DMA cache control logic

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005524171A (ja) * 2002-05-01 2005-08-11 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ メモリ領域ベースのプリフェッチング
JP2007500402A (ja) * 2003-05-07 2007-01-11 フリースケール セミコンダクター インコーポレイテッド 周辺装置アクセス保護付きデータ処理システム

Also Published As

Publication number Publication date
US6542968B1 (en) 2003-04-01
US20030115422A1 (en) 2003-06-19
JP3888508B2 (ja) 2007-03-07
US6772295B2 (en) 2004-08-03

Similar Documents

Publication Publication Date Title
JP3888508B2 (ja) キャッシュ・データ管理方法
US5958040A (en) Adaptive stream buffers
KR100240911B1 (ko) 데이터 프리페치 방법, 캐시 라인 프리페치 방법 및 시스템(progressive data cache)
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
US6782454B1 (en) System and method for pre-fetching for pointer linked data structures
US5778422A (en) Data processing system memory controller that selectively caches data associated with write requests
US8443152B2 (en) Cache memory capable of adjusting burst length of write-back data in write-back operation
EP0568231A1 (en) Methods and apparatus for providing multiple outstanding operations in a cache consistent multiple processor computer system
US6453388B1 (en) Computer system having a bus interface unit for prefetching data from system memory
JP3264319B2 (ja) バスブリッジ
US6353875B1 (en) Upgrading of snooper cache state mechanism for system bus with read/castout (RCO) address transactions
US6343344B1 (en) System bus directory snooping mechanism for read/castout (RCO) address transaction
US6578111B1 (en) Cache memory system and method for managing streaming-data
EP0803817A1 (en) A computer system having cache prefetching capability based on CPU request types
US6457105B1 (en) System and method for managing data in an asynchronous I/O cache memory
JP2000090009A (ja) キャッシュメモリにおいてキャッシュラインを置き換えるための方法および装置
US6901500B1 (en) Method and apparatus for prefetching information and storing the information in a stream buffer
US8621152B1 (en) Transparent level 2 cache that uses independent tag and valid random access memory arrays for cache access
US7330940B2 (en) Method and system for cache utilization by limiting prefetch requests
JP2008502069A (ja) メモリ・キャッシュ制御装置及びそのためのコヒーレンシ動作を実行する方法
US5551000A (en) I/O cache with dual tag arrays
US5809526A (en) Data processing system and method for selective invalidation of outdated lines in a second level memory in response to a memory request initiated by a store operation
JP2004199677A (ja) キャッシュを動作させるためのシステム及び方法
US20060179173A1 (en) Method and system for cache utilization by prefetching for multiple DMA reads
JPH06318174A (ja) キャッシュ・メモリ・システム及び主メモリに記憶されているデータのサブセットをキャッシュする方法

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20060308

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060418

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20060713

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20060719

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20061011

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20061024

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20061122

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees