JP3893008B2 - ダイレクト・メモリ・アクセスおよびキャッシュ性能を改善する方法および装置 - Google Patents
ダイレクト・メモリ・アクセスおよびキャッシュ性能を改善する方法および装置 Download PDFInfo
- Publication number
- JP3893008B2 JP3893008B2 JP2000084906A JP2000084906A JP3893008B2 JP 3893008 B2 JP3893008 B2 JP 3893008B2 JP 2000084906 A JP2000084906 A JP 2000084906A JP 2000084906 A JP2000084906 A JP 2000084906A JP 3893008 B2 JP3893008 B2 JP 3893008B2
- Authority
- JP
- Japan
- Prior art keywords
- cache
- cpu
- host bridge
- pci host
- system 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.)
- Expired - Fee Related
Links
- 230000015654 memory Effects 0.000 title claims description 106
- 238000000034 method Methods 0.000 title claims description 48
- 239000000872 buffer Substances 0.000 claims description 73
- 238000012545 processing Methods 0.000 claims description 49
- 230000008569 process Effects 0.000 claims description 20
- 230000004044 response Effects 0.000 claims description 8
- 230000006870 function Effects 0.000 claims description 3
- 230000008859 change Effects 0.000 description 10
- 238000004590 computer program Methods 0.000 description 6
- 238000012546 transfer Methods 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0831—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
- G06F12/0835—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means for main memory peripheral accesses (e.g. I/O or DMA)
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1673—Details of memory controller using buffers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4027—Coupling between buses using bus bridges
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4221—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
- G06F13/4226—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus with asynchronous protocol
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0024—Peripheral component interconnect [PCI]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Bus Control (AREA)
Description
【発明の属する技術分野】
本発明は、一般にデータ処理システムに関し、特にメイン・メモリおよび1つ以上のキャッシュ・メモリからデータをプリフェッチする処理システムに関する。さらに特に、本発明は、ダイレクト・メモリ・アクセスとキャッシュ・メモリの性能を改善することに関する。
【0002】
【従来の技術】
最新のマイクロプロセッサ・システムでは、プロセッサ・サイクル・タイムは、技術が改善し続けるにつれて、減少し続けている。また、見込み実行、より深いパイプライン、さらに多くの実行エレメント等のデザイン技術は、処理システムの性能を改善し続けている。プロセッサがメモリからより速くデータと命令を要求するので、改善された性能は、システムのメモリ・インターフェースに重い負担を課す。処理システムの性能を増すために、キャッシュ・メモリ・システムがしばしば実装される。
【0003】
キャッシュ・メモリを用いる処理システムは、技術上周知である。キャッシュ・メモリは、現在のプログラムとデータを、最小の待ち時間でプロセッサ(CPU)に使用可能にすることによって、データ処理システムの速度を増す、非常に高速なメモリ・デバイスである。メモリ待ち時間を減少させるために、大きなオンチップ・キャッシュ(L1キャッシュ)が実装され、そしてそれらはより大きなオフチップ・キャッシュ(L2キャッシュ)によってしばしば増大される。キャッシュは、キャッシュ・ライン・データのための記憶領域として働く。キャッシュ・メモリは、「ライン」に典型的に分割され、各ラインは、関連する「タグ」と属性ビットを有している。キャッシュ・メモリ内のラインは、メイン・メモリからのデータのコピーを含む。例えば、キャッシュ内の「4Kページ」のデータは、メモリからの32ラインのデータ(各ライン毎に128バイトを有する)から成ると定義できる。
【0004】
キャッシュ・メモリ・システムの隠れた重要な利点は、最も頻繁にアクセスされた命令とデータを、高速のキャッシュ・メモリ内に保持することによって、全処理システムの平均メモリ・アクセス・タイムが、キャッシュのアクセス・タイムに近づくことである。キャッシュ・メモリのサイズは、メイン・メモリのサイズに対しほんのわずかな部分であるが、プログラムの「参照の局所性(locality of reference)」特性によって、メモリ要求の大部分は高速キャッシュ・メモリ内で首尾よく検出される。この特性は、メモリ参照がメモリのいくつかの局所化された領域(この例では、L1とL2)に限定されるようにしている。
【0005】
キャッシュ・メモリの基本動作は、周知である。プロセッサがメモリにアクセスする必要があると、キャッシュが調べられる。プロセッサによってアドレスされたワードがキャッシュ内に検出されるならば、そのワードは高速メモリから読み取られる。プロセッサによってアドレスされたワードがキャッシュで検出されないならば、そのワードを読み取るために、メイン・メモリがアクセスされる。アクセスされたワードを含むワードのブロックが、メイン・メモリからキャッシュ・メモリに転送される。このようにして、追加データがキャッシュに転送され(プリフェッチされ)、メモリへの将来の参照は、要求されたワードを高速キャッシュ・メモリ内に、おそらく検出するであろう。
【0006】
プリフェッチ技術は、オンチップL1キャッシュに時間的に先にメモリ・データを供給して、待ち時間を減らすために、しばしば実装される。理想的には、データと命令は、十分に先んじてプリフェッチされ、したがって、命令とデータのコピーは、プロセッサが必要とするとき、常にL1キャッシュにある。命令および/またはデータのプリフェッチは、技術上周知である。
【0007】
高いI/Oダイレクト・メモリ・アクセス(DMA)性能を要求するシステム(例えば、グラフィックス)では、I/O予定のシステム・メモリ・データの典型的管理は、次の通りである。
【0008】
1)システム・プロセッサは、システム・メモリ空間内の1組の4Kバイト(4K)・ページ・バッファに、一連のストアを行うことによって、データを作成する。これは、L1/L2キャッシュ内で、データを‘変更された’(キャッシュ内で有効であり、システム・メモリにライトバックされない)としてマークさせる。
【0009】
2)プロセッサは、I/Oデバイスに、作成されたそれら4KページへのDMA読み出しの実行を開始させる。
【0010】
3)I/Oデバイスは、システム・メモリに一連のDMA読取りを行う。
【0011】
4)I/Oデバイスに代わってDMA動作を実行するPCIホスト・ブリッジは、‘共用された’(キャシュ内で有効、システム・メモリ内で有効)状態で、データをプリフェッチおよびキャッシュする。L1/L2は、PCIホスト・ブリッジがデータを読み取るとき、各データ・キャッシュ・ラインを、‘変更された’状態から、‘共用された’状態に変更する(すなわち、L1/L2が介入し、およびデータをメモリに直接に供給し、またはデータをメモリに‘プッシュ’する。データは、メモリから読み取ることができる。)。
【0012】
5)DMAデバイスが終了すると、4Kバッファは再使用される(すなわち、ソフトウェアは、データが循環する一定組のバッファを有する)。
【0013】
DMA I/O 性能を管理するために、PCIホスト・ブリッジは、それ自身のキャッシュを含むことができる。このキャッシュは、共用状態のデータをプリフェッチ/キャッシュするために用いられる。これは、DMAデータがデータ消費者(例えば、I/Oデバイス)の近くに移動することを可能にし、DMA読取り性能を最大にする。PCIホスト・ブリッジが、システム・バス上にキャッシュ可能読取りを発行すると、キャッシュ可能読取りを実行するPCIホスト・ブリッジの故に、L1/L2を‘変更された’状態から‘共用された’状態にさせる。この状態変更アクションは、ソフトウェアがこの4Kページ・キャッシュ空間を再使用することを要求して、新しいDMAデータをストアすると、性能の不利を生ずる。というのは、L1/L2キャッシュ内の各ラインが‘共用された’状態に変更されているからである。新しいストアが生じさせるためには、L1/L2は、各ラインにシステム・バス・コマンドを実行して、ラインが‘共用された’から‘変更された’にされていることを指示しなければならない。これは、たとえ古いデータが使用されていなくても(PCIホスト・ブリッジは、そのデータが現在無効である指示を必要とする)、4Kページ内の各キャッシュ・ライン(32ラインある)に生じなければならない。新しいストアが実行できる前に、システム・バス上で実行されて、全てのそれらキャッシュ・ラインの状態を‘変更された’に変更しなければならない、追加のメモリ・コヒーレンシー・トラフィック,32システム・バス・コマンドは、プロセッサ性能をかなり低下させることもある。
【0014】
L1/L2キャッシュが、‘変更された’状態とは逆に‘共用された’状態にあるとき、プロセッサによる4Kページへのストアは、4〜5倍長くかかることが示されてきた。これは、各キャッシュ・ラインの状態を‘変更された’に変更するために、システム・バス上に必要とされる追加のコヒーレンシー・トラフィックのためである。
【0015】
ダイレクト・メモリ・アクセス・デバイスの速度と効率を増す方法と装置を提供することが望ましい。また、L1/L2キャッシュ内のページのデータの状態を変更するために、要求されるシステム・バス・コマンドの数を減らす方法と装置を提供することが望ましい。
【0016】
【発明が解決しようとする課題】
したがって、本発明の1つの目的は、L1/L2キャッシュ内のバッファの状態を変更するために、要求されるシステム・バス・コマンドの数を減らす方法と装置を提供することである。
【0017】
本発明の他の目的は、ダイレクト・メモリ・アクセス・デバイスの速度と効率を増大させる方法と装置を提供することである。
【0018】
本発明のさらに他の目的は、キャッシュが、1つのバス動作でメモり・バッファをクリアすることを可能にする方法と装置を提供することである。
【0019】
【課題を解決するための手段】
前述の目的は、次に述べられるように達成される。特別の‘I/O’ページは、大きなサイズ(例えば、4Kバイト)を有するが、区別できるキャッシュ・ライン特性を有するように定義される。DMA読取りに対して、I/Oページ内の第1のキャッシュ・ラインは、PCIホスト・ブリッジによって、キャッシュ可能読取りとしてアクセスでき、および全ての他のラインは、キャッシュ不可アクセス(キャッシュ目的でないDMA読取り)である。DMA書込みに対しては、PCIホスト・ブリッジは、全てのキャッシュ・ラインをキャッシュ可能としてアクセスする。PCIホスト・ブリッジは、データのためのI/Oページ・サイズのキャッシュ・スヌープ細分性(granularity)を管理する。このことは、ホスト・ブリッジがI/Oページ内のキャッシュ・ライン上でストア(無効にする)・タイプ・システム・バス動作を検出するならば、そのページ内のキャッシュされたデータは、無効にされる(L1/L2キャッシュは、このページ内の全てのキャッシュ・ラインをキャッシュ可能として、扱い続ける)ことを意味している。第1のラインをキャッシュ可能と定義することによって、PCIホスト・ブリッジ内のデータのページ全体を無効にするために、ただ1つのキャッシュ・ラインは、L1/L2キャッシュによってシステム・バス上で無効にされる必要がある。I/Oページ内の他のキャッシュ・ラインへの全てのストアは、システム・バス動作なしでL1/L2キャッシュ内で直接行うことができる。というのは、これらのキャッシュ・ラインがL1/L2キャッシュ内で‘変更された’状態にされているからである。
【0020】
本発明の上述したおよび他の目的、特徴、利点は、以下の説明で明らかになるであろう。
【0021】
【発明の実施の形態】
次に図に関して、特に図1に関して、本発明の実施の形態によるマルチプロセッサ・データ処理システムが表されている。データ処理システム100は、マルチプロセッサ(SMP)・システム102(1つだけ示されている)であり、これは、好ましくは、IBM社から入手できるプロセッサのPowerPC(登録商標)ファミリーの1つから成る。ただ1つのプロセッサが、典型的な実施の形態で表されているが、当業者は、追加のプロセッサが、本発明によるマルチプロセッサ・データ処理システムで利用できることを理解するであろう。
【0022】
プロセッサ102は、レベル1(L1)キャッシュ104を含む。データ・アクセス待ち時間を最小にするために、レベル2(L2)キャッシュ106のような、キャッシュ・メモリの1つ以上の追加レベルを、データ処理システム100内に実装できる。下位のキャッシュ・レベル、L2は、データをL1キャッシュに送るために使用され、一般に漸次的により大きな記憶容量であるがより長い待ち時間を有する。例えば、L1キャッシュ104は、32KBの記憶容量と、約1〜2プロセッサ・サイクルのアクセス待ち時間を有することができる。L2キャッシュ106は、512KBの記憶容量であるが、5プロセッサ・サイクルのアクセス待ち時間を有することができる。L2キャッシュ106は、プロセッサ102と、非常に大きな記憶容量を有するが50プロセッサ・サイクルより長いアクセス待ち時間を有することができるシステム・メモリ110との間の中間記憶として働く。
【0023】
キャッシュ階層内のレベルの数と、データ処理システム100で用いられるキャッシュ階層構成との両方は、変更しうる。L2キャッシュ106は、CPU102とシステム・メモリ110との間に接続された(システム・バス112を介して)専用キャッシュである。当業者は、示されたレベルと構成のさまざまな変更を実施できることが分かるであろう。
【0024】
L2キャッシュ106は、システム・バス112を介してシステム・メモリ110に接続されている。また、システム・バス112には、メモリ・コントローラ114とPCIホスト・ブリッジ108が接続されている。メモリ・コントローラ114は、システム・メモリ110へのアクセスを調整する。ソフトウェアは、DMAメモリ124(例えば、DMAメモリ124は、システム・メモリ110空間内の1組の4Kページ・バッファとすることができる)によって利用されるバッファ領域を、システム・メモリ110内に編成できる。PCIホスト・ブリッジ108は、システム・バス112をPCIバス116に接続する。このPCIバスは、ディスプレイ(図示せず)への接続を与えるグラフィックス・アダプタのようなI/Oデバイス、すなわちI/Oデバイス118,120に接続を与える。このように、システム・バス112,PCIホスト・ブリッジ108,PCIバス116は、付加デバイスを結合する相互接続部を形成し、その代替実施は技術上周知である。
【0025】
入出力(I/O)サブシステムは、PCIホスト・ブリッジ(PCIHB)108と共に、各I/Oデバイス118,120が付加される、PCI(Peripheral Component Interconnect)バスのような、I/Oバス116から一般に構成される。I/Oバス116は、1つ以上のI/OデバイスをPCIHB108を介してシステム・バス112へ接続するのに用いられ、I/Oデバイス118,120にコマンドとデータを、PCIHB108を介してシステム・メモリ110へ/から転送させる。
【0026】
プロセッサ102が、I/Oデバイス118,120にアクセスしたいとき、PCIHB108は、システム・バス112からI/Oバス116へプロセッサ・コマンドを渡すことができる。さらに、PCIHB108は、また、I/Oデバイス118,120によって開始されるI/Oバス116からシステム・メモリ110へダイレクト・メモリ・アクセス(DMA)を渡すことができる。DMAアクセスのために、PCIHB108は、DMA性能を改善するために、データをプリフェッチおよびキャシュできる。PCIHB108は、システム・メモリ110にアクセスし、L1/L2キャッシュ104,106および自身のキャッシュ109にわたってコヒーレンシーを管理するために、システム・バス・コマンドを発行する際に、システム・バス112上でプロセッサ102と非常によく似た働きをする。
【0027】
I/Oマスタ・デバイスは、PCIHB108を介してシステム・メモリ110からいくつかの他の位置に(およびいくつかの他の位置からシステム・メモリ110に)データを転送するI/Oバス116上でDMAを開始することができるデバイスである。このブロック図では、I/Oデバイス120は、システム・メモリ110へおよびからデータを転送できるI/Oマスタ・デバイスを示す。これらのタイプの転送は、プロセッサ102による介入なしに、行うことができる。
【0028】
I/Oデバイス118,120は、マウスまたはトラックボールのようなグラフィカル・ポインティング・デバイス,ディスプレイ,プリンタ(これらの全ては、標準的なアダプタを介してPCIバス116にインターフェースできる)を含む、標準的な周辺装置を備えることができる。不揮発性メモリ122は、ハード・ディスク・ドライブを備えることができ、オペレーティング・システムとシステム100の動作を制御する他のソフトウェアとをストアし、それらはパワーオンされているシステム100に応じて揮発性システム・メモリ110にロードされる。当業者は、データ処理システム100が、シリアルおよびパラレル・ポート、ネットワークまたは付加デバイスへの接続、等のような、図1に示されない多くの追加コンポーネントを含むことができることが分かるであろう。そのような変更と変形は、本発明の趣旨と範囲内にある。
【0029】
DMAバッファ124内では、例えば、各128バイトのデータの32ラインから成る4Kページ・バッファ130,132に、データをストアできる。L1/L2キャッシュ102と104が、プロセッサ102からL1/L2キャッシュ内で共用状態のラインへのストアを実行できる前に、分離システム・バス動作が、各キャッシュのコピーを無効にすることを他のキャッシュに知らせるために要求される。これが各キャッシュ・ラインに対して行われるので、プロセッサは、1つのページ・バッファをクリアして、新しいデータのための空間をあけるための繰り返しバス動作の数の故にスローダウンされる。本発明は、バッファが32個のバス動作の代わりに1個のバス動作でクリアできるように、4Kページ・バッファ(I/O)をセットアップする。
【0030】
典型的な4Kページ・バッファは、バッファ130と132によって表される。4K I/O ページ・バッファは、本発明から、バッファ134と136によって表される。バッファ内のデータのラインは、バッファ内のブロックによって表され、ブロック内のクロスハッチは、共用状態を表す。バッファ130では、DMAアクセスが完了した後、全てのキャッシュ・ラインは共用され、バッファがクリアできる前に、各キャッシュ・ライン(32ライン)のための個々のシステム・バス動作を必要とする。バッファ132キャッシュ・ラインは、データをバッファ132に書き込み可能なように変更されて示されている。DMAアクセスが本発明によって要求されるように完了した後に、I/Oバッファ134の第1のキャッシュ・ラインは、共用状態にあり、残りのラインは変更状態にある。I/Oバッファ136内の全てのキャッシュ・ラインは、変更された状態にある。バッファ130のコヒーレンシー状態をバッファ132のコヒーレンシー状態に変換するのと対照的に、バッファ134のコヒーレンシー状態をバッファ136のコヒーレンシー状態への変換は、データをI/Oバッファ134にストア可能とするために、I/Oバッファ134内の第1のラインにのみが変更されることを要求する。比較すると、I/Oページ・バッファを変更させること(1ラインを変更状態にさせるのみ)は、典型的バッファ(32ラインを変更状態に変更することを必要とする)をクリアするよりも少ない時間で済むであろう。
【0031】
図2を参照すると、本発明の好適な実施の形態に従って、特別のDMA I/O ページを利用する方法のハイレベル・フローチャートが示されている。処理はステップ202で始まり、このステップは、ソフトウェア・アプリケーションが、後で読み取るべきPCI I/O デバイスのためのデータを作成するために、現在使用していない4K I/O ページを獲得することを示している。処理は次にステップ204に進み、このステップは、ソフトウェア・アプリケーションが4K I/O ページへの一連のストア(ここでは、ストアの少なくとも1つは、4K I/O ページ内の第1のキャッシュ・ラインに対するものである)を達成することを示している。処理はステップ206に続き、このステップは、ソフトウェア・アプリケーションがDMAデバイスに、PCIホスト・ブリッジを介して4K I/O ページのDMA読取り(ここでは、読取りの少なくとも1つは、4K I/O ページ内の第1のキャッシュ・ラインに対するものである)の実行を開始させることを示している。処理は次にステップ208に進み、このステップは、ソフトウェア・アプリケーションが送るべきデータをさらに有するか否かの判別を示している。データを有しないならば、処理は完了する。送るべきデータがさらにあるならば、処理はステップ202に戻り、このステップで、ソフトウェア・アプリケーションが、使用していない4K I/O ページ・バッファを獲得する。
【0032】
次に図3を参照すると、本発明の実施の形態に従って、特別のDMA I/O ページを再利用する方法のハイレベル・フローチャートが示されている。処理はステップ222で始まり、このステップは、I/OデバイスがI/Oページ・バッファからのDMA読取りを完了しているか否かの判別を示す。完了していなければ、処理はステップ222に戻り、ステップを繰り返す。I/OデバイスがI/Oページ・バッファからのDMA読取りを完了していれば、処理はステップ224に進み、このステップは、ソフトウェアがI/Oページ・バッファを「ソフトウェア・アプリケーションによる再使用の準備完了」としてマークすることを示している。そして処理はステップ222に戻り、I/OデバイスがI/Oページ・バッファへのDMA読取りを終了しているか否か判別する。
【0033】
図4を参照すると、本発明の実施の形態に従って、プロセッサ・ストアを実行するL1/L2コヒーレンシー処理のためのハイレベル・フローチャートが示されている。処理はステップ300で始まり、このステップは、手順の開始を示している。次に、処理はステップ302に進み、このステップは、プロセッサがストア動作を実行しようとしているか否かの判別を示している。ストア動作を実行しようとしていなければ、処理はステップ302に戻り、ステップを繰り返す。プロセッサがストア動作を実行しようとしているならば、処理はステップ304に進み、このステップは、ストアを完了させる前に、L1/L2キャッシュがL1/L2キャッシュの状態をチェックすることを示している。次に、処理はステップ306に進み、このステップは、L1/L2キャッシュ・ラインの状態が‘無効’か否かの判別を示している。キャッシュが‘無効’ならば、処理はステップ308に進み、このステップは、システム・バス上に‘変更目的の読取り’動作を実行して、キャッシュ・ラインとラインのコピーを読取り、‘変更された’状態にするために発行された命令を示している。そして処理はステップ318に進み、このステップは、プロセッサのストア命令がL1/L2キャッシュに実行されることを示す。
【0034】
ステップ306に戻り、L1/L2キャッシュ・ラインの状態が‘無効’でないならば、処理はステップ310に進み、このステップは、L1/L2キャッシュ・ラインの状態が‘共用された’か否かの判別を示している。キャッシュ・ラインが‘共用された’ならば、処理はステップ312に進み、このステップは、ラインの所有権を得て、そのラインを‘変更された’状態に変更するために、‘データ請求’動作がシステム・バス上で実行されることを示している。次に、処理はステップ318に進み、このステップでプロセッサのストア機能がL1/L2キャッシュに実行される。L1/L2キャッシュ・ラインの状態が‘共用されていない’ならば、処理はステップ314に進み、このステップは、L1/L2キャッシュ・ラインの状態が‘変更された’か否かの判別を示している。キャッシュ・ラインが変更されていなければ、処理はステップ316に進み、このステップは、3つのL1/L2キャッシュ・ライン状態のみであるとみなされるので、エラー・メッセージを示している。
【0035】
ステップ314に戻り、L1/L2キャッシュ・ラインの状態が‘変更された’ならば、処理はステップ318に進み、このステップは、プロセッサのストアがL1/L2キャッシュに実行されることを示している。次に、処理はステップ302に進み、このステップは、プロセッサが他のストアを実行しようとしていることを示している。
【0036】
次に図5を参照すると、本発明の好適な実施の形態に従って、PCIホスト・ブリッジが、DMA要求をサービスできる、特別のDMA I/O ページを利用する方法のハイレベル・フローチャートが示されている。処理はステップ400で始まり、このステップは、I/Oページ・バッファが指定されることを示している。ステップはステップ402に進み、このステップは、I/OデバイスがDMA読取りを実行しようとしているか否かの判別を示している。実行しようとしていなければ、処理はステップ402に戻り、DMA読取りが判別されるまで繰り返す。I/OデバイスがDMA読取りを実行しようとしていれば、処理はステップ404に進み、このステップは、PCIホスト・ブリッジが、ホスト・ブリッジ・キャッシュ内のラインの状態をチェックすることを示している。次に、処理はステップ406に進み、このステップは、PCIホスト・ブリッジ・キャッシュが‘無効’状態であるか否かの判別を示している。キャッシュが‘無効’状態ならば、処理はステップ408に進み、このステップは、I/OページへのDMA読取りがI/Oページの第1のキャッシュ・ラインの読取り、または標準的なI/Oバッファ(I/Oページでない)の読取りであるか否かの判別を示している。読取りが、I/Oページの第1のキャッシュ・ライン、または標準的なI/Oバッファ内のキャッシュ・ラインの読取りであるならば、処理はステップ412に進み、このステップは、ラインの共用されたコピーを検索するために、‘読取り’システム・バス動作が実行されることを示している。L1/L2キャッシュは、ラインの状態を‘変更された’から‘共用された’に変更させられる。次に、処理はステップ418に進み、このステップは、PCIホスト・ブリッジがDMA読取りデータをI/Oデバイスに送ることを示している。
【0037】
ステップ408に戻り、読取りがI/Oページに対してであるが、ページ内の第1のキャッシュ・ラインに対してでなければ、処理はステップ410に進み、このステップは、ラインおよびL1/L2キャッシュの共用されたコピーが、キャッシュ・ラインを‘変更された’状態に保持できることを検索する‘キャッシュ目的でない読取り’システム・バス動作を示している。次に、処理はステップ418に進み、このステップは、PCIホスト・ブリッジがDMA読取りデータをI/Oデバイスに送ることを示している。
【0038】
次にステップ406に戻り、PCIホスト・ブリッジ・キャッシュが‘無効’状態でないならば、処理はステップ414に進み、このステップは、L1/L2キャッシュ・ラインが‘共用された’状態にあるか否かの判別を示している。キャッシュ・ラインが‘共用された’状態でないならば、処理はステップ416に進み、このステップは、2つのPCIホスト・ブリッジ・キャッシュ状態のみとみなされているので、エラー・メッセージを示している。ステップ414に戻り、L1/L2キャッシュ・ラインが共用された状態ならば、処理はステップ418に進み、このステップは、PCIホスト・ブリッジがDMA読取りデータをI/Oデバイスに送ることを示している。処理はステップ402に続き、このステップは、I/OデバイスがDMA読取りをI/Oページに実行しようとすることを示している。
【0039】
‘I/Oページ’のコヒーレンスを管理するために、PCIホスト・ブリッジがトリガされて、4K‘I/Oページ’が再使用できる前に、ページの第1のキャッシュ・ラインにストアすることによって、4K‘I/Oページ’を無効にする。第1のキャッシュ・ラインが、L1/L2キャッシュへのキャッシュ可能読取りとして現れるように工夫されているので、PCIホスト・ブリッジは、第1のキャッシュ・ラインをDMA読取りにおける特例とみなす。L1/L2キャッシュは、プロセッサの意図を示すシステム・バス・コヒーレンシー・アクセスを行い、第1のキャッシュ・ラインを‘共用された’から‘変更された’に変更する。PCIホスト・ブリッジは4Kページ細分性(サイズ)でスヌープする。したがって、4Kページの第1のキャッシュ・ラインに対しストアが行われると、PCIホスト・ブリッジはページ全体を無効にして、4Kページ内の各キャッシュ・ラインを無効にすることが要求される全てのシステム・バス・トラフィックを回避する。
【0040】
次に図6を参照すると、本発明の好適な実施の形態に従って、PCIホスト・ブリッジが、システム・バス・コヒーレンシーをスヌープできる、特別のDMAI/O ページを利用する方法のI/Oページ無効部分のハイレベル・フローチャートが、示されている。処理はステップ500で始まり、このステップは、無効手順を開始することを示している。処理はステップ502に進み、このステップは、L1/L2キャッシュが、PCIホスト・ブリッジによって‘共用された’とマークされた4K I/O ページをヒットするL1/L2キャッシュ・ラインの状態を変更するシステム・バス動作を実行しようとしているか否かの判別を示している。実行していなければ、処理はステップ504に進み、このステップは、PCIホスト・ブリッジによってとられるアクションがないことを示している。処理はステップ502に続き、繰り返す。ステップ502に戻り、L1/L2キャッシュが、L1/L2キャッシュ・ラインの状態を変更するシステム・バス動作を実行しようとしているならば、処理はステップ506に進み、このステップは、ページが‘共用された’とマークされているので、PCIホスト・ブリッジがPCIホスト・ブリッジ・キャッシュ内でデータの対象4Kページ(例えば、I/Oページ)を無効にすることを示している。
【0041】
キャッシュ可能と読み取られるべき4K I/O ページ内の第1のキャッシュ・ラインのみを定義することによって、4Kバッファを再使用しようとするとき、L1キャッシュは、‘変更された’状態の第1のキャッシュ・ライン以外の全てをまだ有している。DMAが実行されると、第1のラインのみが‘共用された’状態になる。ページを再使用しようとし、その結果、PCIホスト・ブリッジがそのページを無効にすべきことに気づくと、ソフトウェアはI/Oページ内の第1のキャッシュ・ラインにストアする。I/Oページの第1のキャッシュ・ラインへのDMA読取りまたはDMA書込みは、L1/L2に第1のキャッシュ・ラインを‘変更された’から‘共用された’に変更させる。
【0042】
本発明の好適な実施の形態に従って定義された、このI/Oページは、古い再使用可能な4K I/O ページにストアすることによって、新しい4Kページを作成するとき、プロセッサの性能を大きく改善する。というのは、4Kページの第1のキャッシュ・ラインへのストアは、1つのシステム・バス・トランザクションのみがL1/L2を‘共用された’状態から‘変更された’状態にすることを要求するからである。I/Oページ内の全ての他のキャッシュ・ラインは、L1/L2内で‘変更された’状態のままであり、したがって、それらのキャッシュ・ラインへのプロセッサ・ストアは、システム・バス・コヒーレンシー・トラフィックを要求しないL1/L2キャッシュに直接行うことができる。
【0043】
本発明は、メモリ・ページが異なる手段によってアクセスされるシステムに適用できる。本発明の他の実施の形態は、PCIホスト・ブリッジにおいてトランザクション・コントロール・エントリ(TCE)テーブルを利用するシステムに与えることができる。TCEテーブルは、セット・リミット(例えば4ギガバイト(GB))を超えたシステム・メモリのアクセスに使用するために、PCIホスト・ブリッジに通常与えられる。そのようなシステムでは、TCEエントリ自身は、4K I/O ページ内の第1のキャッシュ・ラインを用いる代わりに、トリガ・メカニズムとして用いることができる。この例では、PCIホスト・ブリッジは、全ての読取りを‘キャッシュ目的でない読取り’(もはや特別に扱われない)として実行でき、およびプログラム・ロジックは、ページが再使用される毎に、DMA読取りのために使用されたTCEエントリへのストアを行うことによって、ページを無効にする(すなわち、データをフェッチするために用いられたTCEが変更されたならば、PCIホスト・ブリッジは4Kページ内でフェッチされた全てのデータを無効にする)。I/Oページの実施の形態におけるように、システム・バス・トラフィックは、かなり減少される。
【0044】
本発明を、完全に機能的なデバイスで説明したが、当業者は、本発明のメカニズムおよび/または本発明の態様が、種々の形態のコンピュータ使用可能命令媒体の形で配布可能であり、また本発明が、配布を実際に行うために用いられる特定タイプの信号担持媒体とは関係なく、同じように適用できることを、理解するであろうことに注意することは重要である。コンピュータ使用可能媒体の例は、不揮発性、ROM(read only memories)またはEEPROM(erasable electrically programmable read only memories)のようなハードコーディング・タイプ媒体,フロッピー・ディスクのような記録可能タイプ媒体,ハード・ディスク・ドライブおよびCD−ROM,デジタルおよびアナログ通信リンクのような伝送タイプの媒体を含む。
【0045】
本発明を、好適な実施の形態によって、特に示し説明してきたが、当業者によれば、形式と詳細のさまざまな変更を、本発明の趣旨と範囲から逸脱せずに実施できることが理解されるであろう。
【0046】
まとめとして、本発明の構成に関して以下の事項を開示する。
【0047】
(1)ダイレクト・メモリ・アクセスおよびキャッシュ性能を改善する方法であって、
メモリ・バッファを定義するステップを含み、前記メモリ・バッファ内の第1のキャッシュ・ラインが、キャッシュ可能として読み取られ、
前記メモリ・バッファ内の残りのキャッシュ・ラインを、変更された状態としてさらに定義するステップと、
前記キャッシュによる試みに応じて、前記第1のキャッシュ・ラインを、共用された状態から変更された状態に変更するために、前記メモリ・バッファ全体を無効にするステップとを含む方法。
【0048】
(2)PCIホスト・ブリッジをトリガして、前記メモリ・バッファを無効にするステップをさらに含む、上記(1)記載の方法。
【0049】
(3)前記メモリ・バッファの前記第1のキャッシュ・ラインにストア動作を実行するステップをさらに含む、上記(2)記載の方法。
【0050】
(4)システム・メモリ内のページ・バッファをスヌープするステップをさらに含む、上記(1)記載の方法。
【0051】
(5)前記第1のキャッシュ・ラインが前記共用された状態から前記変更された状態に変更されるならば、前記メモリ・バッファ内のデータのページ全体を無効にするステップをさらに含む、上記(4)記載の方法。
【0052】
(6)ダイレクト・メモリ・アクセスおよびキャッシュ性能を改善する装置であって、
情報をストアするキャッシュと、
キャッシュ動作を実行するコントロール・ロジックと、
メモリ・バッファを定義するハードウェアとを備え、前記メモリ・バッファ内の第1のキャッシュ・ラインが、キャッシュ可能として読み取られ、
追加のシステム・バス・コマンド無しで、前記メモリ・バッファ内の全てのキャッシュ・ラインを同時に無効にする手段を備える装置。
【0053】
(7)メモリ記憶域を予約できるロジック手段をさらに備える、上記(6)記載の装置。
【0054】
(8)前記メモリ・バッファ内の残りのキャッシュ・ラインを、変更された状態としてさらに定義する追加ロジック手段をさらに備える、上記(6)記載の装置。
【0055】
(9)PCIホスト・ブリッジをトリガして、前記メモリ・バッファを無効にするロジックをさらに備える、上記(6)記載の装置。
【0056】
(10)前記メモリ・バッファの前記第1のキャッシュ・ラインにストア動作を実行する手段をさらに備える、上記(6)記載の装置。
【0057】
(11)システム・メモリ内のページ・バッファをスヌープするスヌープ手段をさらに備える、上記(6)記載の装置。
【0058】
(12)追加のシステム・バス・コマンド無しで、前記メモリ・バッファ内の全てのキャッシュ・ラインを同時に無効にする手段が、
前記第1のキャッシュ・ラインが前記共用されたから前記変更された状態に変更されるならば、前記メモリ・バッファ内のデータのページ全体を無効にする手段をさらに有する、上記(6)記載の装置。
【0059】
(13)ダイレクト・メモリ・アクセスおよびキャッシュ性能を改善する命令を、コンピュータ読取り可能媒体内に含むコンピュータ・プログラム製品であって、
ページ・バッファを定義する前記コンピュータ読取り可能媒体内の命令を含み、前記ページ・バッファ内の第1のキャッシュ・ラインが、キャッシュ可能として読み取られ、
前記ページ・バッファ内の残りのキャッシュ・ラインを、変更された状態としてさらに定義する前記コンピュータ読取り可能媒体内の命令と、
前記キャッシュによる試みに応じて、前記第1のキャッシュ・ラインを、共用された状態から変更された状態に変更するために、前記ページ・バッファの内容を無効にする前記コンピュータ読取り可能媒体内の命令とを含むコンピュータ・プログラム製品。
【0060】
(14)PCIホスト・ブリッジをトリガして、前記ページ・バッファの内容を無効にする前記コンピュータ読取り可能媒体内の命令をさらに含む、上記(13)記載のコンピュータ・プログラム製品。
【0061】
(15)前記ページ・バッファの前記第1のキャッシュ・ラインにストア動作を実行する前記コンピュータ読取り可能媒体内の命令をさらに含む、上記(14)記載のコンピュータ・プログラム製品。
【0062】
(16)システム・メモリ内の前記ページ・バッファをスヌープする前記コンピュータ読取り可能媒体内の命令をさらに含む、上記(13)記載のコンピュータ・プログラム製品。
【0063】
(17)前記第1のキャッシュ・ラインが前記共用された状態から前記変更された状態に変更されるならば、前記ページ・バッファ内のデータのページ全体を無効にする前記コンピュータ読取り可能媒体内の命令をさらに含む、上記(16)記載のコンピュータ・プログラム製品。
【0064】
(18)ダイレクト・メモリ・アクセスおよびキャッシュ性能を改善する方法であって、
キャッシュ・メモリのためのアドレス・テーブル内に4K I/O ページのためのアドレス・エントリを定義するステップと、
前記エントリを、トリガ・メカニズムとして利用するステップと、
前記4K I/O ページに対する全ての読取りを、‘キャッシュ目的でない読取り’として実行するステップと、
ダイレクト・メモリ・アクセス(DMA)読取りを、前記エントリによって参照された位置にストアするステップと、
前記4K I/O ページ内の全てのデータを無効にするステップとを含む方法。
【0065】
(19)前記4K I/O ページが再使用されるか否かを判別するステップをさらに含む、上記(18)記載の方法。
【0066】
(20)前記エントリへの前記DMA読取りをストアするステップが、
ホスト・ブリッジをトリガして、前記4K I/O ページ内のデータ全体を無効にするステップをさらに含む、上記(18)記載の方法。
【0067】
(21)前記4Kページに新しいデータを書き込むステップをさらに含む、上記(18)記載の方法。
【図面の簡単な説明】
【図1】本発明の好適な実施の形態を実現できるデータ処理システムを示すハイレベル・ブロック図である。
【図2】本発明の実施の形態に従って、特別のDMA I/O ページを利用する方法を示すハイレベル・フローチャートである。
【図3】本発明の実施の形態に従って、特別のDMA I/O ページを再利用する方法を示すハイレベル・フローチャートである。
【図4】本発明の実施の形態に従って、プロセッサ・ストアを実行するL1/L2コヒーレンシー手順を示すフローチャートである。
【図5】特別のDMA I/O ページを利用する方法のハイレベル・フローチャートであって、本発明の実施の形態に従って、PCIホスト・ブリッジがDMA要求をサービスできることを示すフローチャートである。
【図6】特別のDMA I/O ページを利用する方法の部分のハイレベル・フローチャートであって、本発明の実施の形態に従って、PCIホスト・ブリッジがシステム・バス・コヒーレンシーをスヌープできることを示すフローチャートである。
【符号の説明】
100 データ処理システム
102 マルチプロセッサ・システム
104 レベル1(L1)キャッシュ
106 レベル2(L2)キャッシュ
108 PCIホスト・ブリッジ
109 キャッシュ
110 システム・メモリ
112 システム・バス
114 メモリ・コントローラ
116 PCIバス
118,120 I/Oデバイス
122 不揮発性メモリ
124 DMAメモリ
130,132,134,136 4Kページ・バッファ
Claims (3)
- CPU用キャッシュを有するCPUとシステムメモリとを接続するシステムバスと、ダイレクト・メモリ・アクセス(DMA)機能を備えるI/Oデバイスを接続するI/Oバスと、前記I/Oバスおよび前記システムバスに接続され、PCIホスト・ブリッジ用キャッシュを有するPCIホスト・ブリッジと、を備えるデータ処理装置におけるDMA方法であって、
前記PCIホスト・ブリッジが前記システムメモリ上のベージバッファの第1キャッシュ・ラインを、キャッシュ可能読取りコマンドにより前記PCIホスト・ブリッジ用キャッシュに読込む第1読込みステップと、
前記第1読込みステップに応答して、前記第1キャッシュ・ラインに関して前記CPUが前記CPU用キャッシュにより共用状態として取り扱うステップと、
前記PCIホスト・ブリッジが前記システムメモリ上のページバッファの残りのキャッシュ・ラインを、キャッシュ目的でない読取りコマンドにより前記PCIホスト・ブリッジ用キャッシュに読込む第2読込みステップと、
前記第2読込みステップに応答して、前記残りのキャッシュ・ラインについて前記CPUが前記CPU用キャッシュで変更状態として取り扱うステップと、
前記CPUが共用状態として管理している前記第1キャッシュ・ラインに対し、前記CPUが書込みを行う場合、前記CPUが前記システムバスを介して前記PCIホスト・ブリッジ用キャッシュでの無効化処理を行うためのシステム・バス・コマンドを出力するステップと、
前記システム・バス・コマンドを出力するステップに応答して、前記PCIホスト・ブリッジが前記第1キャッシュ・ラインを含むページバッファ全体について前記PCIホスト・ブリッジ用キャッシュの無効化処理を実行するステップと、
前記CPUが変更状態として管理している前記残りのキャッシュ・ラインに対し、前記CPUが書込を実行する場合、前記CPUが前記システムバスを介して前記無効化処理のための前記システム・バス・コマンドを発行しないように制御するステップと を含む、DMA方法。 - CPU用キャッシュを有するCPUとシステムメモリとを接続するシステムバスと、ダイレクト・メモリ・アクセス(DMA)機能を備えるI/Oデバイスを接続するI/Oバスと、前記I/Oバスおよび前記システムバスに接続され、PCIホスト・ブリッジ用キャッシュを有するPCIホスト・ブリッジと、を備えるデータ処理装置であって、
前記PCIホスト・ブリッジが前記システムメモリ上のベージバッファの第1キャッシュ・ラインを、キャッシュ可能読取りコマンドにより前記PCIホスト・ブリッジ用キャッシュに読込ませる第1読込み手段と、
前記第1読込み手段による読込みに応答して、前記第1キャッシュ・ラインに関して前記CPUが前記CPU用キャッシュにより共用状態として取り扱う手段と、
前記PCIホスト・ブリッジが前記システムメモリ上のページバッファの残りのキャッシュ・ラインを、キャッシュ目的でない読取りコマンドにより前記PCIホスト・ブリッジ用キャッシュに読込ませる第2読込み手段と、
前記第2読込み手段による読込みに応答して、前記残りのキャッシュ・ラインについて前記CPUが前記CPU用キャッシュで変更状態として取り扱う手段と、
前記CPUが共用状態として管理している前記第1キャッシュ・ラインに対し、前記CPUが書込みを行う場合、前記CPUが前記システムバスを介して前記PCIホスト・ブリッジ用キャッシュでの無効化処理を行うためのシステム・バス・コマンドを出力する手段と、
前記システム・バス・コマンドを出力する手段の出力に応答して、前記PCIホスト・ブリッジが前記第1キャッシュ・ラインを含むページバッファ全体について前記PCIホスト・ブリッジ用キャッシュの無効化処理を実行する手段と、
前記CPUが変更状態として管理している前記残りのキャッシュ・ラインに対し、前記CPUが書込を実行する場合、前記CPUが前記システムバスを介して前記無効化処理を実行させための前記システム・バス・コマンドを発行しないように制御する手段と を含む、データ処理装置。 - 請求項2に記載の機能手段を前記データ処理装置に実現する、装置実行可能なプログラムを記録した装置可読な記録媒体。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/282631 | 1999-03-31 | ||
US09/282,631 US6338119B1 (en) | 1999-03-31 | 1999-03-31 | Method and apparatus with page buffer and I/O page kill definition for improved DMA and L1/L2 cache performance |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2000305842A JP2000305842A (ja) | 2000-11-02 |
JP3893008B2 true JP3893008B2 (ja) | 2007-03-14 |
Family
ID=23082392
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000084906A Expired - Fee Related JP3893008B2 (ja) | 1999-03-31 | 2000-03-24 | ダイレクト・メモリ・アクセスおよびキャッシュ性能を改善する方法および装置 |
Country Status (6)
Country | Link |
---|---|
US (1) | US6338119B1 (ja) |
JP (1) | JP3893008B2 (ja) |
KR (1) | KR100353656B1 (ja) |
CN (1) | CN1240000C (ja) |
CA (1) | CA2298780A1 (ja) |
TW (1) | TW457433B (ja) |
Families Citing this family (47)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7257158B1 (en) | 1998-05-18 | 2007-08-14 | Kendyl A. Román | System for transmitting video images over a computer network to a remote receiver |
US8290034B2 (en) | 1998-12-21 | 2012-10-16 | Zin Stai Pte. In, Llc | Video transmission and display including bit-wise sub-sampling video compression |
US8170095B2 (en) * | 1998-12-21 | 2012-05-01 | Zin Stai Pte. In, Llc | Faster image processing |
US7233619B1 (en) | 1998-12-21 | 2007-06-19 | Roman Kendyl A | Variable general purpose compression for video images (ZLN) |
US20030005428A1 (en) * | 2001-05-26 | 2003-01-02 | Roman Kendyl A. | Global media exchange |
US8068544B2 (en) | 1998-12-21 | 2011-11-29 | Zin Stai Pte. In, Llc | Compression with doppler enhancement |
US8416847B2 (en) * | 1998-12-21 | 2013-04-09 | Zin Stai Pte. In, Llc | Separate plane compression using plurality of compression methods including ZLN and ZLD methods |
US7671864B2 (en) * | 2000-01-14 | 2010-03-02 | Roman Kendyl A | Faster image processing |
US7016417B1 (en) | 1998-12-23 | 2006-03-21 | Kendyl A. Roman | General purpose compression for video images (RHN) |
US8004572B2 (en) * | 1999-05-17 | 2011-08-23 | Zin Stai Pte. In, Llc | System for transmitting a video stream over a computer network to a remote receiver |
US7191462B1 (en) | 1999-11-08 | 2007-03-13 | Kendyl A. Román | System for transmitting video images over a computer network to a remote receiver |
US6574682B1 (en) * | 1999-11-23 | 2003-06-03 | Zilog, Inc. | Data flow enhancement for processor architectures with cache |
US6728835B1 (en) * | 2000-08-30 | 2004-04-27 | Unisys Corporation | Leaky cache mechanism |
US6820161B1 (en) * | 2000-09-28 | 2004-11-16 | International Business Machines Corporation | Mechanism for allowing PCI-PCI bridges to cache data without any coherency side effects |
US6470429B1 (en) * | 2000-12-29 | 2002-10-22 | Compaq Information Technologies Group, L.P. | System for identifying memory requests as noncacheable or reduce cache coherence directory lookups and bus snoops |
US6463510B1 (en) * | 2000-12-29 | 2002-10-08 | Compaq Information Technologies Group, L.P. | Apparatus for identifying memory requests originating on remote I/O devices as noncacheable |
US6684297B2 (en) * | 2001-04-11 | 2004-01-27 | Sun Microsystems, Inc. | Reverse directory for facilitating accesses involving a lower-level cache |
US6701417B2 (en) * | 2001-04-11 | 2004-03-02 | Sun Microsystems, Inc. | Method and apparatus for supporting multiple cache line invalidations per cycle |
US6973528B2 (en) * | 2002-05-22 | 2005-12-06 | International Business Machines Corporation | Data caching on bridge following disconnect |
US20050038946A1 (en) * | 2003-08-12 | 2005-02-17 | Tadpole Computer, Inc. | System and method using a high speed interface in a system having co-processors |
EP1711896B1 (en) * | 2004-02-05 | 2015-11-18 | BlackBerry Limited | Memory controller interface |
US7765534B2 (en) | 2004-04-30 | 2010-07-27 | International Business Machines Corporation | Compiler with cache utilization optimizations |
US7484016B2 (en) * | 2004-06-30 | 2009-01-27 | Intel Corporation | Apparatus and method for high performance volatile disk drive memory access using an integrated DMA engine |
TWI243999B (en) * | 2004-08-17 | 2005-11-21 | Via Tech Inc | Apparatus and related method for maintaining read caching data of south bridge with north bridge |
US20060100997A1 (en) * | 2004-10-27 | 2006-05-11 | Wall Gary C | Data caching |
US20060179174A1 (en) * | 2005-02-02 | 2006-08-10 | Bockhaus John W | Method and system for preventing cache lines from being flushed until data stored therein is used |
US20060179173A1 (en) * | 2005-02-02 | 2006-08-10 | Bockhaus John W | Method and system for cache utilization by prefetching for multiple DMA reads |
US7330940B2 (en) * | 2005-02-02 | 2008-02-12 | Hewlett-Packard Development Company, L.P. | Method and system for cache utilization by limiting prefetch requests |
US7328310B2 (en) * | 2005-02-02 | 2008-02-05 | Hewlett-Packard Development Company, L.P. | Method and system for cache utilization by limiting number of pending cache line requests |
US20060184735A1 (en) * | 2005-02-15 | 2006-08-17 | Maxwell Technologies, Inc. | Methodology for effectively utilizing processor cache in an electronic system |
EP1860568A1 (en) * | 2005-03-14 | 2007-11-28 | Matsushita Electric Industrial Co., Ltd. | Bus controller |
US7533198B2 (en) * | 2005-10-07 | 2009-05-12 | International Business Machines Corporation | Memory controller and method for handling DMA operations during a page copy |
US7734842B2 (en) * | 2006-03-28 | 2010-06-08 | International Business Machines Corporation | Computer-implemented method, apparatus, and computer program product for managing DMA write page faults using a pool of substitute pages |
JP4785637B2 (ja) * | 2006-06-16 | 2011-10-05 | キヤノン株式会社 | データ転送装置及びその制御方法 |
US20090119460A1 (en) * | 2007-11-07 | 2009-05-07 | Infineon Technologies Ag | Storing Portions of a Data Transfer Descriptor in Cached and Uncached Address Space |
CN101600029B (zh) * | 2008-06-06 | 2013-05-08 | 博通集成电路(上海)有限公司 | 背景噪声降低系统及方法 |
US8806140B1 (en) * | 2009-12-16 | 2014-08-12 | Applied Micro Circuits Corporation | Dynamic memory module switching with read prefetch caching |
US20130262780A1 (en) * | 2012-03-30 | 2013-10-03 | Srilatha Manne | Apparatus and Method for Fast Cache Shutdown |
GB2529425A (en) * | 2014-08-19 | 2016-02-24 | Ibm | Data processing apparatus and method |
CN106484334A (zh) * | 2016-10-20 | 2017-03-08 | 郑州云海信息技术有限公司 | 一种释放预读资源的方法及装置 |
CN108628766B (zh) * | 2017-03-23 | 2024-01-23 | 三星电子株式会社 | 非易失存储器、计算系统、及读取方法 |
KR101951309B1 (ko) * | 2017-04-19 | 2019-04-29 | 서울시립대학교 산학협력단 | 데이터 처리 장치 및 데이터 처리 방법 |
US10599568B2 (en) * | 2018-04-09 | 2020-03-24 | Intel Corporation | Management of coherent links and multi-level memory |
CN111049566B (zh) * | 2019-11-20 | 2022-03-08 | 中国航空工业集团公司西安航空计算技术研究所 | 信息传递方法和机载lrm模块 |
CN114157621A (zh) * | 2020-09-07 | 2022-03-08 | 华为技术有限公司 | 一种发送清除报文的方法及装置 |
US20240053891A1 (en) * | 2022-08-12 | 2024-02-15 | Advanced Micro Devices, Inc. | Chipset Attached Random Access Memory |
CN117971728A (zh) * | 2024-03-29 | 2024-05-03 | 北京象帝先计算技术有限公司 | 缓存器及缓存控制方法、集成电路系统、电子组件及设备 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4885680A (en) * | 1986-07-25 | 1989-12-05 | International Business Machines Corporation | Method and apparatus for efficiently handling temporarily cacheable data |
JPH0612363A (ja) * | 1992-06-26 | 1994-01-21 | Toshiba Corp | メモリ制御装置およびマルチプロセッサシステム |
US5613153A (en) * | 1994-10-03 | 1997-03-18 | International Business Machines Corporation | Coherency and synchronization mechanisms for I/O channel controllers in a data processing system |
JP2852232B2 (ja) * | 1996-04-24 | 1999-01-27 | 新潟日本電気株式会社 | コンピュータ |
US5884100A (en) * | 1996-06-06 | 1999-03-16 | Sun Microsystems, Inc. | Low-latency, high-throughput, integrated cache coherent I/O system for a single-chip processor |
US5953538A (en) * | 1996-11-12 | 1999-09-14 | Digital Equipment Corporation | Method and apparatus providing DMA transfers between devices coupled to different host bus bridges |
US6128711A (en) * | 1996-11-12 | 2000-10-03 | Compaq Computer Corporation | Performance optimization and system bus duty cycle reduction by I/O bridge partial cache line writes |
EP0887738B1 (en) * | 1997-06-27 | 2008-08-13 | Bull S.A. | Interface bridge between a system bus and local buses with translation of local addresses for system space access programmable by address space |
JPH11272555A (ja) * | 1998-03-20 | 1999-10-08 | Fujitsu Ltd | キャッシュメモリ制御システム |
US6003106A (en) * | 1998-05-27 | 1999-12-14 | International Business Machines Corporation | DMA cache control logic |
-
1999
- 1999-03-31 US US09/282,631 patent/US6338119B1/en not_active Expired - Lifetime
-
2000
- 2000-02-16 CA CA002298780A patent/CA2298780A1/en not_active Abandoned
- 2000-02-29 TW TW089103444A patent/TW457433B/zh not_active IP Right Cessation
- 2000-03-08 KR KR1020000011581A patent/KR100353656B1/ko not_active IP Right Cessation
- 2000-03-23 CN CNB001043838A patent/CN1240000C/zh not_active Expired - Fee Related
- 2000-03-24 JP JP2000084906A patent/JP3893008B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
TW457433B (en) | 2001-10-01 |
CN1240000C (zh) | 2006-02-01 |
CN1268695A (zh) | 2000-10-04 |
KR100353656B1 (ko) | 2002-09-19 |
KR20010006757A (ko) | 2001-01-26 |
CA2298780A1 (en) | 2000-09-30 |
US6338119B1 (en) | 2002-01-08 |
JP2000305842A (ja) | 2000-11-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3893008B2 (ja) | ダイレクト・メモリ・アクセスおよびキャッシュ性能を改善する方法および装置 | |
US5557769A (en) | Mechanism and protocol for maintaining cache coherency within an integrated processor | |
TW508575B (en) | CLFLUSH micro-architectural implementation method and system | |
US6021468A (en) | Cache coherency protocol with efficient write-through aliasing | |
US5802559A (en) | Mechanism for writing back selected doublewords of cached dirty data in an integrated processor | |
JP4226057B2 (ja) | 包含キャッシュにおける望ましくない置換動作を低減するための先行犠牲選択のための方法及び装置 | |
JP3989457B2 (ja) | 局所的なキャッシュ・ブロック・フラッシュ命令 | |
JP2000250813A (ja) | I/oキャッシュ・メモリにおけるデータ管理方法 | |
US11789868B2 (en) | Hardware coherence signaling protocol | |
JPH11306081A (ja) | キャッシュフラッシュ装置 | |
US7685372B1 (en) | Transparent level 2 cache controller | |
KR100304318B1 (ko) | 프로세서버스에대한캐시조작의요구에기초해서명령을발행하는방법및장치 | |
Padwal et al. | Cache Memory Organization |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A912 | Re-examination (zenchi) completed and case transferred to appeal board |
Free format text: JAPANESE INTERMEDIATE CODE: A912 Effective date: 20041029 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20061107 |
|
RD14 | Notification of resignation of power of sub attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7434 Effective date: 20061205 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20061208 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091215 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101215 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101215 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111215 Year of fee payment: 5 |
|
LAPS | Cancellation because of no payment of annual fees |