JP2005346215A - 情報処理装置および情報処理方法 - Google Patents

情報処理装置および情報処理方法 Download PDF

Info

Publication number
JP2005346215A
JP2005346215A JP2004162636A JP2004162636A JP2005346215A JP 2005346215 A JP2005346215 A JP 2005346215A JP 2004162636 A JP2004162636 A JP 2004162636A JP 2004162636 A JP2004162636 A JP 2004162636A JP 2005346215 A JP2005346215 A JP 2005346215A
Authority
JP
Japan
Prior art keywords
cache
refill
texture
memory
information processing
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
JP2004162636A
Other languages
English (en)
Other versions
JP4451717B2 (ja
Inventor
Nobuo Sasaki
伸夫 佐々木
Takeshi Yamazaki
剛 山崎
Atsushi Kunimatsu
敦 国松
Hideki Yasukawa
英樹 安川
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.)
Toshiba Corp
Sony Interactive Entertainment Inc
Original Assignee
Toshiba Corp
Sony Computer Entertainment Inc
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 Toshiba Corp, Sony Computer Entertainment Inc filed Critical Toshiba Corp
Priority to JP2004162636A priority Critical patent/JP4451717B2/ja
Priority to CN2005800176741A priority patent/CN1985243B/zh
Priority to EP05745825.9A priority patent/EP1769364B1/en
Priority to PCT/JP2005/010283 priority patent/WO2005116840A2/en
Priority to TW094117865A priority patent/TWI332149B/zh
Priority to US11/141,700 priority patent/US7644234B2/en
Publication of JP2005346215A publication Critical patent/JP2005346215A/ja
Application granted granted Critical
Publication of JP4451717B2 publication Critical patent/JP4451717B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

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/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • 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
    • 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/0864Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using pseudo-associative means, e.g. set-associative or hashing
    • 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/6024History based prefetching

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)
  • Image Generation (AREA)

Abstract

【課題】キャッシュミスを減少させて、データ読み出しを高速化するための技術を提供する。
【解決手段】2次テクスチャキャッシュ400は、複数のテクスチャユニット620〜6n0から共通して利用され、メインメモリ10のテクスチャデータの一部を記憶する。キャッシュ制御用CPU200は、複数のテクスチャユニット620〜6n0のキャッシュミスに応じて、メインメモリ10から2次テクスチャキャッシュ400へのリフィル動作を、2次テクスチャキャッシュ400にスラッシングの発生を抑制するよう制御する。キャッシュ制御用CPU200は、複数のテクスチャユニット620〜6n0が同一のメモリアドレスを所定の時間差でアクセスするとき、リフィル動作の発生を抑制する。
【選択図】図1

Description

本発明はメインメモリからのデータの読み出しを高速化するための技術、特に、キャッシュメモリを利用して高速化するための技術に関する。
近年、プロセッサの動作周波数が飛躍的に向上している。これに対し、メインメモリに一般的に使用されるDRAM(Dynamic Random Access Memory)の動作速度は、プロセッサ程に向上していないため、プロセッサの性能を活かすには工夫を要する。メインメモリへのアクセス時間を短縮するために、メインメモリとプロセッサとの間にキャッシュメモリを搭載する手法が利用されている。
しかしながら、プロセッサがアドレスを指定してキャッシュにアクセスしても、キャッシュ内に所望のデータが存在しない場合、キャッシュミスとなりメインメモリからリフィルしなければならない。このようなキャッシュミスが頻繁に発生すると、高速化に資しないばかりではなく、逆にオーバーヘッドになることもある。
本発明は、上記課題に鑑みてなされたものであり、その目的は、キャッシュミスを減少させて、データ読み出しを高速化する情報処理装置および情報処理方法を提供することにある。
本発明のある態様は情報処理装置である。この装置は、複数の演算部から共通して利用され、メインメモリのデータの一部を記憶するキャッシュメモリと、複数の演算部のキャッシュミスに応じて、メインメモリからキャッシュメモリへのリフィル動作を、キャッシュメモリにスラッシングの発生を抑制するよう制御する制御部と、を備える。なお、「データ」にはテクスチャデータが含まれる。「演算部」にはテクスチャユニットが含まれる。「スラッシング」とは、メインメモリとキャッシュメモリとの間で、同じデータのスワップイン/スワップアウトが断続的に発生する状態をいう。
本発明の別の態様も情報処理装置である。この装置は、複数の演算部から共通して利用され、メインメモリのデータの一部を複数のウエイで記憶するキャッシュメモリと、ウエイごとに、キャッシュタグおよびエントリの状態を管理するキャッシュ管理部と、複数の演算部のキャッシュミスにより発生する前記キャッシュ管理部からのリフィルリクエストに応じて、メインメモリからキャッシュメモリへのリフィル動作、およびエントリの状態を制御する制御部と、を備える。
制御部は、複数の演算部が同一のメモリアドレスを所定の時間差でアクセスするとき、リフィル動作の発生を抑制してもよいし、同一のメモリアドレスへのリフィルリクエストを複数受けると、2番目以降のリフィルリクエストに対応するリフィル動作を停止してもよい。また、同一のメモリアドレスへのリフィルリクエストを複数受けると、2番目以降のリフィルリクエストに対応するエントリロックを停止してもよい。さらに、キャッシュミスにより発生するリフィルリクエストが所定数累積してから、リフィル動作を行ってもよい。
本発明の別の態様も情報処理装置である。この装置は、複数の演算部から共通して利用され、メインメモリのデータの一部を記憶するキャッシュメモリと、複数の演算部のキャッシュミスによる複数のリフィルリクエストに応じて、メインメモリからキャッシュメモリへのリフィル動作を制御する制御部と、を備え、制御部は、リフィル動作の開始後、所定の時間が経過した後、リフィルリクエストに対応するエントリロックをキャッシュメモリに施す。
本発明のさらに別の態様も情報処理装置である。この装置は、複数の演算部から共通して利用され、メインメモリのデータの一部を記憶するキャッシュメモリと、メインメモリとキャッシュメモリとの間に設けられる中間バッファと、複数の演算部のキャッシュミスによる複数のリフィルリクエストに応じて、メインメモリから中間バッファを経由してキャッシュメモリへのリフィル動作を制御する制御部と、を備え、制御部は、リフィル動作によりキャッシュメモリに渡すデータが中間バッファに記憶されると、リフィルリクエストに対応するエントリロックをキャッシュメモリに施す。
本発明のさらに別の態様も情報処理装置である。この装置は、複数の演算部から共通して利用され、メインメモリのデータの一部を記憶するキャッシュメモリと、複数の演算部のキャッシュミスによるリフィルリクエストに応じて、メインメモリからキャッシュメモリへのリフィル動作を制御し、複数の演算部の用いるテクスチャデータを予測して、メインメモリからキャッシュメモリへのプリフェッチ動作を制御する制御部と、を備え、キャッシュメモリは、キャッシュミスによりリフィルする領域と、エントリロックしてプリフェッチする領域を含む。制御部は、両領域を所定の条件で切り替えてもよい。
本発明のさらに別の態様も情報処理装置である。この装置は、演算部から共通して利用され、メインメモリに記憶されたテクスチャデータの一部を記憶するキャッシュメモリと、演算部の用いるテクスチャデータを予測し、そのテクスチャデータを含むラインをメインメモリからキャッシュメモリへプリフェッチする制御部と、を備える。制御部は、所定のプログラムの実行により、前記演算部が用いるスタートシーンに必要なテクスチャデータをプリフェッチしてもよい。
本発明のさらに別の態様は情報処理方法である。この方法は、キャッシュメモリにアクセスした複数の演算部のキャッシュミスによる複数のリフィルリクエストを、キャッシュメモリにスラッシングの発生を抑制するよう調停する調停ステップと、調停されたリフィルリクエストに応じて、メインメモリからキャッシュメモリへのリフィルを実行するリフィルステップと、を有する。調停ステップは、複数の演算部が同一のメモリアドレスを所定の時間差でアクセスするとき、リフィルの発生を抑制してもよいし、リフィルリクエストが所定数累積するまで、リフィルの発生を抑制してもよい。
本発明のさらに別の態様は情報処理方法である。この方法は、キャッシュメモリにアクセスした複数の演算部のキャッシュミスによる複数のリフィルリクエストを調停する調停ステップと、調停されたリフィルリクエストに応じて、メインメモリからキャッシュメモリへのリフィルを実行するリフィルステップと、リフィルの開始後、所定の時間が経過した後、リフィルリクエストに対応するエントリロックをキャッシュメモリに施すエントリロックステップと、を有する。
本発明のさらに別の態様は情報処理方法である。この方法は、演算部の用いるテクスチャデータを予測する予測ステップと、予測したテクスチャデータを含むラインを、メインメモリからキャッシュメモリへプリフェッチするプリフェッチステップと、を有する。予測ステップは、所定のプログラムの実行により、前記演算部が用いるスタートシーンに必要なテクスチャデータをプリフェッチ用のデータとしてもよい。
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、記録媒体、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。
本発明によれば、メモリからのデータ読み出しを高速化することができる。
図1は、第1実施形態におけるメインメモリ10とGPU(Graphics Processing Unit)100の構成を示すブロック図である。メインメモリ10は、システムのメインメモリでありDRAM等が用いられる。本実施形態では主にテクスチャデータを記憶している。GPU100は、3次元グラフィック表示に必要な計算やレンダリングを行なう半導体チップである。GPU100には、図示しない複数のシェーダユニットに対応した複数のテクスチャユニット620〜6n0が搭載されている。複数搭載させることにより、レンダリングの速度を向上させシーンの切り替わり等を滑らかにしている。
各テクスチャユニット620〜6n0は、1次テクスチャキャッシュ622〜6n2を備える。テクスチャユニット620は、図示しないシェーダユニットからテクスチャデータを指定するパラメータの入力を受け取り、1次テクスチャキャッシュ622に対してメインメモリ空間のアドレスを指定して、テクスチャを構成するテクセルデータを要求する。1次テクスチャキャッシュ622は、当該要求に対して、ヒットした場合はそのテクセルデータをテクスチャユニット620に渡す。ミスした場合は2次テクスチャキャッシュコントローラ500に、2次テクスチャキャッシュ400から当該データを読み出すよう要求する。その後、2次テクスチャキャッシュ400から該当するアドレスのテクセルデータが読み出されるまで、そのテクスチャユニット620はストールする。他のテクスチャユニットも同様に動作する。
2次テクスチャキャッシュコントローラ500は、2次テクスチャキャッシュ400に蓄積されているメインメモリ10上のテクスチャデータの管理を行う。2次テクスチャキャッシュコントローラ500は、テクスチャユニット620〜6n0からのリード要求に対して、メインメモリ10上のテクスチャデータが2次テクスチャキャッシュ400に蓄積されているか否かを判定するためのキャッシュタグを持つ。キャッシュタグは、メインメモリ10上のアドレスの一部である。リード要求されるアドレスの一部とキャッシュタグとが一致すればキャッシュヒットとなり、一致しなければキャッシュミスとなる。
2次テクスチャキャッシュコントローラ500は、テクスチャユニット620〜6n0からリード要求されたテクスチャデータが2次テクスチャキャッシュ400上に存在しない場合、即ちキャッシュミスの場合、キャッシュ制御用CPU200にリフィル要求を出す。リフィル要求は、所望のテクスチャデータをメインメモリ10から2次テクスチャキャッシュ400に転送するよう要求するものである。テクスチャユニット620〜6n0からリード要求されたテクスチャデータが2次テクスチャキャッシュ400上に存在した場合、即ちキャッシュヒットの場合、そのテクスチャデータをテクスチャユニット620〜6n0に転送する。
2次テクスチャキャッシュコントローラ500は、少なくとも2つ以上のウエイを持つ。これにより、後述するプリフェッチするウエイとリフィルするウエイを両方設けることができる。キャッシュの方式は、ダイレクトマッピング、Nウェイセットアソシアティブ、フルアソシアティブ等を用いることができる。Nウェイセットアソシアティブを採る場合、CAM(Content Addressable Memory)を使用して、一致比較を並列に行ってもよい。2次テクスチャキャッシュコントローラ500は、キャッシュ制御用CPU200から停止要求があった場合、要求があったウエイの動作を停止する。この状態で、キャッシュ制御用CPU200からそのウエイのキャッシュタグを書き換えることが可能になる。全てのテクスチャユニット620〜6n0からの要求がキャッシュミスになった場合も停止状態に移行する。
キャッシュ制御用CPU200から動作再開要求があった場合、要求があったウエイの動作を再開する。停止中にメインメモリ10から2次テクスチャキャッシュ400へのテクスチャデータの転送が終了した場合、該当するテクスチャユニットからのリード要求を再実行し、キャッシュヒット動作で当該テクスチャユニットにテクスチャデータを転送する。
2次テクスチャキャッシュ400は、メインメモリ10上のテクスチャデータを一時的に記憶しておくための領域である。2次テクスチャキャッシュ400は、EDRAM(Embedded Dynamic Random Access Memory)上の一部の領域に構築してもよい。メインメモリ10上のテクスチャデータは、キャッシュ制御用CPU200からのDMA(Direct Memory Access)コントローラ300への命令により2次テクスチャキャッシュ400にDMA転送される。テクスチャデータの転送は、ラインと呼ばれる16バイト、32バイト等の単位で行われる。この転送が終了すると、キャッシュ制御用CPU200が2次テクスチャキャッシュコントローラ500内のキャッシュタグを書き換える。2次テクスチャキャッシュ400上のテクスチャデータに対して、テクスチャユニット620〜6n0がリード要求を出すと、2次テクスチャキャッシュコントローラ500が自動的に該当する2次テクスチャキャッシュ400上のテクスチャデータを1次テクスチャキャッシュ622〜6n2に転送する。
DMAコントローラ300は、キャッシュ制御用CPU200の命令により、アドレス信号を発生させ、メインメモリ10から2次テクスチャキャッシュ400にCPUを介さずにテクスチャデータを転送する。
メインメモリ10と2次テクスチャキャッシュ400との間は、チップ間の転送に限らず、ネットワークを介した転送も含まれる。例えば、メインメモリ10がインターネット上のサーバに存在し、2次テクスチャキャッシュ400がクライアントに存在するような構成でもよい。
キャッシュ制御用CPU200は、2次テクスチャキャッシュコントローラ500を介しての複数のリフィル要求を調停して、DMAコントローラ300に命令を出す。図示しないRAMを使用して、キャッシュ制御用プログラムを実行することにより、キャッシュ制御を行う。
図2は、第1実施形態におけるシステムの第1動作例を示すフローチャートである。まず前提として、以下の説明において2次テクスチャキャッシュ400は原則的に4ウエイ構成とする。1次テクスチャキャッシュ622をミスしたテスクチャデータのリード要求が、テクスチャユニット620から2次テクスチャキャッシュコントローラ500に到達する。2次テクスチャキャッシュコントローラ500は、そのテクスチャデータが2次テクスチャキャッシュ400上に存在した場合、そのデータを1次テクスチャキャッシュ622に転送する。存在しない場合、キャッシュ制御用CPU200にリフィル要求を送信する。このとき、リード要求を出したテクスチャユニット620へのデータ転送動作を停止する。また、キャッシュ制御用CPU200にはリード要求を出したテクスチャユニット620のID番号を送付する。
図2において、キャッシュ制御用CPU200は、2次テクスチャキャッシュコントローラ500からのテクスチャデータのリフィル要求を受け付ける(S10)。このリフィル要求先のアドレスが、既に受け付けられたリフィル要求のアドレスと一致しているか否かを判定する(S12)。具体的には、両アドレスを照合すればよい。この判定処理は、既に受け付けられたリフィル要求のアドレスが登録されている場合に行う処理であり、登録されていない場合、即ち初期状態の場合にはスキップされ、ステップS14に遷移する。
一般的に、同じアドレスへのリフィル要求が複数発生することは少ないが、本実施形態においては、それが複数発生しやすい環境にある。テクスチャユニット620〜6n0は、処理の高速化のために、並列にテクスチャマッピングを実行する。複数のテクスチャユニット620〜6n0はそれぞれ1次テクスチャキャッシュ622〜6n2を備えているが、テクスチャユニット620〜6n0からの要求は、バイリニア、トリリニア等のフィルタリング処理のため、隣接したテクセルの要求を多く含む。そのため、異なるテクスチャユニット620〜6n0の1次テクスチャキャッシュ622〜6n24上に、お互いの隣接テクセルブロックの情報を重複して持たなければならいないことが多い。
図3は、複数のテクスチャユニット620〜6n0によって、テクスチャマッピングしている様子を示す。複数のテクスチャユニット620〜6n0は、4×4ピクセル等で入れ子状に分割されたフレームバッファの各領域A〜Hにテクスチャをマッピングする。例えば、あるテクスチャユニット620がフレームバッファのA領域722にマッピングし、他のテクスチャユニット640がフレームバッファのB領域724にマッピングするといったように、並列に処理を行う。点線で示した部分は、複数のテクスチャa〜lにより生成されたオブジェクトを示す。
フレームバッファのA領域722にマッピングするテクスチャユニット620は、4つのテクスチャデータb702、d704、e706、h708を自ユニット内の1次テクスチャキャッシュ622から読み出して、マッピングする必要がある。フレームバッファのB領域724にマッピングするテクスチャユニット640は、3つのテクスチャデータe706、c710、i712を自ユニット内の1次テクスチャキャッシュ642から読み出して、マッピングする必要がある。ここで、テクスチャデータe706は、テクスチャユニット620および他のテクスチャユニット640の両方に用いられる。したがって、複数のテクスチャユニット620から2次テクスチャキャッシュコントローラ500に同じアドレスのテクスチャデータのリード要求が時間をずらして到着する可能性がある。しかも、2次テクスチャキャッシュ400をEDRAM上に構築した場合、2次テクスチャキャッシュ400とメインメモリ10との間のDMA転送に、大きなレイテンシーが発生する。よって、あるアドレスのテクスチャデータのリフィルが完了する前に、同じアドレスへのリフィル要求がキャッシュ制御用CPU200に到着する可能性が大きくなる。テクスチャユニット620の数を増やす程、リフィル要求が重複する可能性が高くなり、3つ以上のリフィル要求が重複する場合も発生し得る。
図2に戻り、ステップS12において、登録されているアドレスと一致しない場合(S12のN)、当該リフィル要求の対象アドレスをキャッシュ制御用CPU200内の図示しないレジスタ等に登録する(S14)。次に、キャッシュ制御用CPU200は、DMA転送によって置き換えられるターゲットアドレス、即ち置き換えられるウエイを決定する(S16)。この決定には、様々なアルゴリズムの適用が考えられる。殆どのテクスチャデータが2次テクスチャキャッシュ400の1つのウエイに載ってしまう場合であれば、1つのウエイをリフィル専用に使用してもよい。また、単にFIFO(First-In First-Out)やLRU(Least Recently Used)を用いてもよい。
次に、キャッシュ制御用CPU200は、決定したウエイのエントリをロックする(S18)。以下、ウエイのエントリをロックする手法について説明する。図4は、2次テクスチャキャッシュ400および2次テクスチャキャッシュコントローラ500の詳細を示す。2次テクスチャキャッシュ400は、ウエイごとにライン単位でテクスチャデータをキャッシュしている。2次テクスチャキャッシュコントローラ500は、2次テクスチャキャッシュ400をウエイごとに管理している。各ウエイごとにバリットフラグを備え、各ウエイのバリット/インバリットを管理する。例えば、1ビットのフラグレジスタで構成する場合、1でバリット、0でインバリットといった設定が可能である。バリット状態においては、テクスチャユニット620〜6n0から2次テクスチャキャッシュ400内の対応するウエイへのアクセスが可能であるが、インバリット状態においては、そのアクセスがロックされる。このバリットフラグは、キャッシュ制御用CPU200により書き換え制御される。
また、2次テクスチャキャッシュコントローラ500は、2次テクスチャキャッシュ400にキャッシュされているテクスチャデータのメインメモリ10空間上のアドレスの一部を、キャッシュタグとしてウエイごとに管理する。そして、リード要求に係るアドレスとキャッシュタグに係るアドレスとを比較して、キャッシュヒットかミスかを判定する。
図2に戻り、キャッシュ制御用CPU200は、リフィルするウエイをロックしたら、メインメモリ10から2次テクスチャキャッシュ400の当該ウエイに、上記登録したアドレスのテクスチャデータをDMA転送するようDMAコントローラ300に命令する(S20)。DMA転送が完了したら、2次テクスチャキャッシュコントローラ500の対応するキャッシュタグを書き換える(S22)。そして、そのウエイのロックを解除する。2次テクスチャキャッシュコントローラ500は、そのウエイを再起動し、上記DMA転送に対応したテクスチャユニット620〜6n0のリード要求を再実行する。
ステップS12において、登録されているアドレスと一致する場合(S12のY)、リフィル用のウエイを確保するためのエントリロックを行わずに、2次テクスチャキャッシュ400の現在のエントリ状態を維持する(S24)。キャッシュ制御用CPU200は、アドレスが一致した既発のDMA転送命令に対して、リード要求を出したテクスチャユニット620〜6n0のID番号をリンクする(S26)。このリード要求に対応するDMA転送命令は発行しない。2次テクスチャキャッシュコントローラ500は、リフィルされたウエイを再起動する際、リンクされたID番号のテクスチャユニット620〜6n0のリード要求も再実行する。以下、レンダリング処理が終了するまで(S28のY)、上記処理を繰り返す。
このように第1動作例によれば、同じアドレスのテクスチャデータを重複してリフィルして、必要以上にウエイがロックされることを防止することができる。したがって、テクスチャユニット620〜6n0の2次テクスチャキャッシュ400からのデータ読み出しを阻害することがない。また、無駄なリフィルを防止するため、2次テクスチャキャッシュ400におけるスラッシングの発生を抑制することができる。
図5は、第1実施形態におけるシステムの第2動作例を示すフローチャートである。まず、キャッシュ制御用CPU200は、2次テクスチャキャッシュコントローラ500からリフィル要求を受け付ける(S30)。リフィル要求の発生プロセスは、第1動作例と同様である。次に、キャッシュ制御用CPU200は、リフィル要求の累積カウント値を保持するパラメータREQをインクリメントする(S32)。同時に、当該リフィル要求に係るアドレスを図示しないレジスタ等に登録する(S34)。
次に、パラメータREQに保持される値が所定の閾値を超えたか否かを判定する(S36)。この所定の閾値は、テクスチャユニット620〜6n0の数や、シーンの切り替わり方、等により最適値が異なる。つまり、複数のテクスチャユニット620〜6n0によりあるシーンやあるオブジェクトをテクスチャマッピングする場合、一部のテクスチャユニット620〜6n0は、そのシーンやオブジェクトの処理を終了し、次のシーンやオブジェクトの処理を開始しようとして、2次テクスチャキャッシュ400にリード要求を出し始める。この時点において、残りのテクスチャユニット620〜6n0は、まだ現在のシーンやオブジェクトの処理を継続している。
この状態において、キャッシュ制御用CPU200が、上記リード要求に対応するリフィル要求に対してDMAコントローラ300にDMA転送命令を発行してしまうと、上記残りのテクスチャユニット620〜6n0が処理中の2次テクスチャキャッシュ400上のテクスチャデータが追い出されてしまう。処理中のテクスチャデータが追い出されてしまうと、再度リフィル要求がキャッシュ制御用CPU200に出さなければならず、2次テクスチャキャッシュ400がスラッシング状態となる。上記所定の閾値は、いくつのリフィル要求が累積したら次のシーンやオブジェクト用のテクスチャデータをリフィルしてよいかを、テストやシミュレーションにより求めて、設定するとよい。
ステップS36において、パラメータREQに保持される値が所定の閾値以下の場合(S36のN)、DMA転送命令を発行せずにリフィル要求の受付を継続する(S30)。なお、所定の閾値を超えたとき(S36のY)、キャッシュ制御用CPU200は、DMA転送によって置き換えられるターゲットアドレス、即ち置き換えられるウエイを決定する(S38)。そして、決定したウエイのエントリをロックする(S40)。リフィルするウエイをロックしたら、メインメモリ10から2次テクスチャキャッシュ400の当該ウエイに、上記登録したアドレスのテクスチャデータをDMA転送するようDMAコントローラ300に命令する(S42)。DMA転送が完了したら、2次テクスチャキャッシュコントローラ500の対応するキャッシュタグを書き換える(S44)。そして、そのウエイのロックを解除する。2次テクスチャキャッシュコントローラ500は、そのウエイを再起動し、上記DMA転送に対応したテクスチャユニット620〜6n0のリード要求を再実行する。
次に、キャッシュ制御用CPU200は、パラメータREQを初期化する(S46)。以下、レンダリング処理が終了するまで(S48のY)、上記処理を繰り返す。上記処理において、リフィル用のウエイ数を超える数のリフィル要求が同一ライン上に集中した場合には、後から到着したリフィル要求は、保留して、リフィル処理を次回に延ばす。この場合、保留されたリフィル要求に対応したテクスチャユニットに関しては、再開の時にも停止状態としておく。
このように第2動作例によれば、現在のシーンやオブジェクトのテクスチャマッピングを終了し、次のシーンやオブジェクトを処理すべきテクスチャユニット620〜6n0と、現在のシーンやオブジェクトを処理中のテクスチャユニット620〜6n0とが併存する状態において、キャッシュ制御用CPU200によりリフィルのスケジューリングを行うことにより、2次テクスチャキャッシュ400におけるスラッシングの発生を抑制することができる。また、次のシーンやオブジェクトを処理すべき複数のテクスチャユニット620〜6n0は、それを処理するためのテクスチャデータがリフィルされたと同時に、一斉にテクスチャマッピングを開始することができる。即ち、テクスチャマッピング開始のバラツキを抑えることができる。
また、本実施形態は、ゲームプログラムのグラフィック処理に適用可能である。例えば、ゲームプログラムのグラフィック処理として、メインメモリ上にテクスチャデータ全体を置き、EDRAM上のテクスチャデータとして利用する領域にゲームプログラムが予めテクスチャデータを転送しておき、その後投入した描画コマンドがEDRAMからテクスチャデータを読み出すことでテクスチャマッピングを実現する手法もある。この手法は、限られたEDRAMを有効に利用することができる。
ただ、この手法は、描画コマンドがメインメモリ上のどの部分のテクスチャデータを読み出すかをゲームプログラムが予め認識していることが前提となる。また、EDRAMのテクスチャデータ格納領域上に入りきらないような大きなテクスチャデータを用いる場合、ゲームプログラムの開発時点でテクスチャデータを分割し、EDRAM上に乗り切るサイズに編集しておくことも前提となる。
この点、本実施形態のキャッシュ制御によれば、フォントデータのようにゲームプログラムの実行後、読み出すテクスチャデータの部分が決まる場合にも、効率を落とさずにレンダリングすることができる。また、ゲームプログラムの開発時点でEDRAMのサイズに合わせて、テクスチャデータを変換する必要もない。
また、キャッシュをハードウエアでなくソフトウエアで制御することにより、グラフィックチップの外部にあるメインメモリにアクセスする場合の大きなレイテンシーに対しても、スラッシングを最小限に抑えた制御が可能となる。
図6は、第2実施形態におけるメインメモリ10とGPU100の構成を示すブロック図である。図6は、図1の構成のDMAコントローラ300と2次テクスチャキャッシュ400との間に中間バッファ350が付加された構成であり、中間バッファ350以外の説明は、図1の説明と同様のため省略する。中間バッファ350は、DMAコントローラ300によりメインメモリ10から2次テクスチャキャッシュ400にリフィルされるテクスチャデータを一時保存するための記憶領域である。中間バッファ350は、当該テクスチャデータを記憶すると、キャッシュ制御用CPU200にその旨を伝達する制御信号を出す。そして、その制御信号を出すと同時または所定の遅延を与えた後、記憶しているテクスチャデータを2次テクスチャキャッシュ400に出力する。
図7は、第2実施形態におけるシステムの動作例を示すフローチャートである。図7のフローチャートは、図2のフローチャートと基本部分が同一のため相違点を説明する。まず、ステップS16までの処理は、図2の説明と同様である。図7において、キャッシュ制御用CPU200は、リフィルするウエイを決定した後、そのウエイのエントリをロックせずに、メインメモリ10から2次テクスチャキャッシュ400の当該ウエイに、上記登録したアドレスのテクスチャデータをDMA転送するようDMAコントローラ300に命令する(S17)。
DMAコントローラ300は、この命令に従い、2次テクスチャキャッシュ400に向けて当該テクスチャデータを送出すると、その経路の間に位置する中間バッファ350に、当該テクスチャデータが記憶される。中間バッファ350は、当該テクスチャデータを記憶すると、キャッシュ制御用CPU200にその旨を伝達する制御信号を出す。キャッシュ制御用CPU200は、この制御信号を受けると(S19のY)、上記リフィルするウエイのエントリをロックする(S21)。換言すると、この制御信号を受ける前までは、当該ウエイのエントリをロックしない。その他の処理は、図2の説明と同様である。
このように第2実施形態によれば、中間バッファ350にテクスチャデータが記憶されるまでリフィル対象となるウエイのエントリをロックしないことにより、そのテクスチャデータを要求していない他のテクスチャユニットのエントリ時間を、第1実施形態より長くすることができる。したがって、キャッシュヒット率を向上させることができ、2次テクスチャキャッシュ400におけるスラッシングの発生を抑制することができる。本実施形態は、メインメモリ10と2次テクスチャキャッシュ400との系が長く、その系に大きなレイテンシーが発生する場合に特に有効である。
図8は、第3実施形態におけるメインメモリ10、メインCPU20、およびGPU100の構成を示すブロック図である。図8は、図1の構成にメインCPU20が付加された構成であり、メインCPU20以外の説明は、図1の説明と同様のため省略する。メインCPU20は、ゲームプログラム等のプログラムを実行し、そのプログラムのテクスチャマッピングを実行するテクスチャユニット620〜6n0が次に必要なテクスチャデータを予測する。このテクスチャデータをメインメモリ10から2次テクスチャキャッシュ400にプリフェッチするためのDMA転送命令を生成して、キャッシュ制御用CPU200に出力する。キャッシュ制御用CPU200は、このDMA転送命令をDMAコントローラ300に発行する。
図9は、第3実施形態におけるシステムの第1動作例を示すフローチャートである。まず、キャッシュ制御用CPU200は、2次テクスチャキャッシュ400の複数のウエイを、プリフェッチ用のウエイとリフィル用のウエイとに分ける(S50)。図10は、当該動作例における2次テクスチャキャッシュ400および2次テクスチャキャッシュコントローラ500の詳細を示す。図10は、4つのウエイのうち、1ウエイおよび2ウエイをリフィル用ウエイに設定し、3ウエイおよび4ウエイをプリフェッチ用ウエイに設定している。
リフィル用ウエイは、上述したようにテクスチャユニット620〜6n0からのリード要求に対して、キャッシュミスした場合にリフィル要求を出すウエイである。当該ウエイは、リフィル処理中にエントリロックされる。これに対して、プリフェチ用ウエイは、メインCPU20の予測に基づき、予めテクスチャユニット620〜6n0が必要となるテクスチャデータを2次テクスチャキャッシュ400に読み出しておくウエイである。キャッシュミスに関係なく、キャッシュ制御用CPU200の制御によりエントリ期間とエントリロック期間が設定される。
図9に戻り、メインCPU20またはキャッシュ制御用CPU200は、必要となるテクスチャデータの予測処理を行う(S52)。この予測処理の詳細は後述する。この予測処理によって決定したテクスチャデータのメインメモリ10上のアドレスを含むDMA転送命令をDMAコントローラ300に発行する(S54)。このDMA転送命令によるプリフェッチは、2次テクスチャキャッシュ400のプリフェッチ用ウエイに対して行われる。このとき、プリフェッチ用ウエイのバリッドフラグは0であり、エントリロックされている。
この処理と同時に、リフィル用ウエイ、キャッシュ制御用CPU200およびDMAコントローラ300では、リフィル処理が行われている(S56)。このリフィル処理の詳細は、第1実施形態で詳述した。なお、図8に第2実施形態において説明した中間バッファ350を、DMAコントローラ300と2次テクスチャキャッシュ400との間に設けてもよい。これにより、エントリ期間を長くすることができる。
次に、キャッシュ制御用CPU200は、プリフェッチが完了したか否かを判定する(S58)。プリフェッチが完了したら(S58のY)、キャッシュタグの書き換えとバリッドフラグの書き換えを行う。バリッドフラグが1に書き換えられると、そのウエイへのエントリが可能となる。
メインCPU20またはキャッシュ制御用CPU200は、プリフェッチ用ウエイとリフィル用ウエイの切替条件が成就したか否かを判定する(S60)。この切替条件は、例えば、プリフェッチが完了した後に所定の期間が経過したとき等を条件とすることができる。また、メインCPU20がシーンやオブジェクトの切り替わり等を把握または予測して、必要以上にウエイのエントリをロックしないように、上記切り替わり時刻にDMA転送時間を減算したタイミングで切り替てもよい。上記切り替わりに対して両ウエイの切替が早すぎると、プリフェッチしたテクスチャデータが追い出されてしまう場合もあり、このようなスラッシングを起こさないようテストやシミュレーションにより最適条件を求めてもよい。
切替条件が成就すると(S60のY)、キャッシュ制御用CPU200は、プリフェッチ用ウエイとリフィル用ウエイとを切り替える(S62)。具体的には、現在のリフィル用ウエイのバリッドフラグを0にしてエントリをロックする。以下、レンダリング処理が終了するまで(S64のY)、上記処理を繰り返す。なお、本動作例は、プリフェッチ用ウエイとリフィル用ウエイとを切り替える動作を説明したが、それぞれを専用に用いてもよい。
次に、ステップS52において説明したプリフェッチ用のテクスチャデータを予測する処理について説明する。図11は、テクスチャデータの予測処理の第1例を示すフローチャートである。まず、キャッシュ制御用CPU200は、シーンの切り替わりになると(S70のY)、その際にプリフェッチしたテクスチャデータを入れ替え履歴として、図示しないRAM等に記録する(S72)。
キャッシュ制御用CPU200は、シーンの切り替わり予定時刻が近づくと(S74のY)、上記入れ替え履歴を参照してプリフェッチするテクスチャデータを特定する(S76)。例えば、シーンの切り替わりの際に常に使用されるテクスチャデータが検出できたような場合、そのテクスチャデータをプリフェッチ用のデータと特定する。この処理は、プリフェッチ用のテクスチャデータを学習的に特定する手法である。なお、オブジェクトの切り替わり等も同様に学習させてもよい。
また、キャッシュ制御用CPU200は、プリフェッチとともに、リフィルの入れ替え履歴も記録してもよい。リフィルの入れ替えを学習することにより、第1実施形態の第2動作例において説明したリフィルのタイミングを決定する閾値を、適応的に変更することもできる。例えば、同じアドレスのリフィルを短期間に繰り返す、即ちスラッシング状態が発生した場合、当該閾値を上げて、リフィルのタイミングを遅らせる等の制御を行うことができる。
このように予測処理の第1例によれば、学習的制御によりプリフェッチするテクスチャデータを決定することができ、ユーザ入力によりレンダリングするオブジェクトが異なる等、プログラムの解読により必要なテクスチャデータを特定することが難しいような場合でも、精度よく予測することができる。
図12は、テクスチャデータの予測処理の第2例を示すフローチャートである。第2例は、地面等のテクスチャデータを予想する場合に適用することができる。まず、メインCPU20は、実行中のプログラムから現フレーム内において設定されている視点からの視線方向、即ち角度と、その視点が移動する速度を取得する(S80)。それを基に、次フレーム内における視点からの視線方向を予測する(S82)。この予測した視線方向にあるオブジェクトを特定する(S84)。このオブジェクトと視点との距離を特定する(S86)。距離を特定すると、オブジェクトをレンダリングするために必要なテクスチャデータのLOD(Level of Detail)も特定することができる。このようにして、プリフェッチ用のテクスチャデータを特定する(S88)。
このように予測処理の第2例によれば、プログラムの次に実行されるコマンドを解読しなくても、現在の状況を示すパラメータにより計算して、次に必要なテクスチャデータを予測することができる。
したがって第3実施形態によれば、2次テクスチャキャッシュ400をプリフェッチ用のウエイとリフィル用のウエイとに分けて、ダブルバッファ的に使用することにより、リフィル時間を短縮することができる。
次に、第4実施形態について説明する。第4の実施形態のシステム構成は、図8に示した構成を適用することができる。また、テクスチャユニット620が1つの場合にも適用可能である。
図13は、第4実施形態におけるシステムの動作例を示すフローチャートである。まず、メインCPU20は、プログラムの実行を開始する前にスタートシーンをレンダリングするためのテクスチャデータを特定する(S90)。これは、レンダリングを開始する前にどのオブジェクトがレンダリングされるかは解っていて、そのオブジェクト用のテクスチャデータとして何が必要なのかは解っている場合が多いことに基づく。
キャッシュ制御用CPU200は、メインCPU20により特定されたテクスチャデータのメインメモリ10上のアドレスを含むDMA転送命令をDMAコントローラ300に発行する(S92)。それと同時にプリフェッチしたウエイのキャッシュタグを書き換える(S94)。なお、本実施形態はリセット後の動作にも適用することができる。
このように第4実施形態によれば、レンダリング開始時のキャッシュミスを最低限に抑えることができ、2次テクスチャキャッシュ400を効率的に使用することができる。
以上、実施形態をもとに本発明を説明した。なお本発明はこれらの実施形態に限定されることなく、そのさまざまな変形例もまた、本発明の態様として有効である。例えば、2次テクスチャキャッシュ400に4つのウエイを設ける例を説明した。この点、4つに限ることなく任意に設定可能である。また、プリフェッチ用のウエイ数、リフィル用のウエイ数も任意に設定可能である。プリフェッチまたはリフィル専用のウエイを設けてもよい。
また、本発明のキャッシュ制御は、GPUに搭載される複数のテクスチャユニットによるテクスチャデータの読み出し処理への適用に限ることなく、複数のプロセッサにより共通のキャッシュメモリを利用する構成であれば、適用可能である。特にメインメモリとのキャッシュメモリとの系が長く、その系により大きなレイテンシーが発生する構成に有効である。例えば、インターネット上のサーバのメインメモリにアクセスして、クライアントのキャッシュメモリにデータを読み出す構成等に有効である。
第1実施形態におけるメインメモリとGPUの構成を示すブロック図である。 第1実施形態におけるシステムの第1動作例を示すフローチャートである。 複数のテクスチャユニットによって、テクスチャマッピングしている様子を示す図である。 2次テクスチャキャッシュおよび2次テクスチャキャッシュコントローラの詳細を示す図である。 第1実施形態におけるシステムの第2動作例を示すフローチャートである。 第2実施形態におけるメインメモリとGPUの構成を示すブロック図である。 第2実施形態におけるシステムの動作例を示すフローチャートである。 第3実施形態におけるメインメモリ、メインCPU、およびGPUの構成を示すブロック図である。 第3実施形態におけるシステムの第1動作例を示すフローチャートである。 図9の動作例における2次テクスチャキャッシュおよび2次テクスチャキャッシュコントローラの詳細を示す図である。 テクスチャデータの予測処理の第1例を示すフローチャートである。 テクスチャデータの予測処理の第2例を示すフローチャートである。 第4実施形態におけるシステムの動作例を示すフローチャートである。
符号の説明
10 メインメモリ、 20 メインCPU、 100 GPU、 200 キャッシュ制御用CPU、 300 DMAコントローラ、 350 中間バッファ、 400 2次テクスチャキャッシュ、 500 2次テクスチャキャッシュコントローラ、 620〜6n0 テクスチャユニット、 622〜6n2 1次テクスチャキャッシュ。

Claims (25)

  1. 複数の演算部から共通して利用され、メインメモリのデータの一部を記憶するキャッシュメモリと、
    前記複数の演算部のキャッシュミスに応じて、前記メインメモリから前記キャッシュメモリへのリフィル動作を、前記キャッシュメモリにスラッシングの発生を抑制するよう制御する制御部と、
    を備えることを特徴とする情報処理装置。
  2. 複数の演算部から共通して利用され、メインメモリのデータの一部を複数のウエイで記憶するキャッシュメモリと、
    前記ウエイごとに、キャッシュタグおよびエントリの状態を管理するキャッシュ管理部と、
    前記複数の演算部のキャッシュミスにより発生する前記キャッシュ管理部からのリフィルリクエストに応じて、前記メインメモリから前記キャッシュメモリへのリフィル動作、および前記エントリの状態を制御する制御部と、
    を備えることを特徴とする情報処理装置。
  3. 前記制御部は、前記複数の演算部が同一のメモリアドレスを所定の時間差でアクセスするとき、前記リフィル動作の発生を抑制することを特徴とする請求項1または2に記載の情報処理装置。
  4. 前記制御部は、同一のメモリアドレスへのリフィルリクエストを複数受けると、2番目以降のリフィルリクエストに対応するリフィル動作を停止することを特徴とする請求項1または2に記載の情報処理装置。
  5. 前記制御部は、同一のメモリアドレスへのリフィルリクエストを複数受けると、2番目以降のリフィルリクエストに対応するエントリロックを停止することを特徴とする請求項1または2に記載の情報処理装置。
  6. 前記制御部は、前記キャッシュミスにより発生するリフィルリクエストが所定数累積してから、前記リフィル動作を行うことを特徴とする請求項1または2に記載の情報処理装置。
  7. 複数の演算部から共通して利用され、メインメモリのデータの一部を記憶するキャッシュメモリと、
    前記複数の演算部のキャッシュミスによる複数のリフィルリクエストに応じて、前記メインメモリから前記キャッシュメモリへのリフィル動作を制御する制御部と、を備え、
    前記制御部は、前記リフィル動作の開始後、所定の時間が経過した後、前記リフィルリクエストに対応するエントリロックを前記キャッシュメモリに施すことを特徴とする情報処理装置。
  8. 複数の演算部から共通して利用され、メインメモリのデータの一部を記憶するキャッシュメモリと、
    前記メインメモリと前記キャッシュメモリとの間に設けられる中間バッファと、
    前記複数の演算部のキャッシュミスによる複数のリフィルリクエストに応じて、前記メインメモリから前記中間バッファを経由して前記キャッシュメモリへのリフィル動作を制御する制御部と、を備え、
    前記制御部は、前記リフィル動作により前記キャッシュメモリに渡すデータが前記中間バッファに記憶されると、前記リフィルリクエストに対応するエントリロックを前記キャッシュメモリに施すことを特徴とする情報処理装置。
  9. 複数の演算部から共通して利用され、メインメモリのデータの一部を記憶するキャッシュメモリと、
    前記複数の演算部のキャッシュミスによるリフィルリクエストに応じて、前記メインメモリから前記キャッシュメモリへのリフィル動作を制御し、前記複数の演算部の用いるテクスチャデータを予測して、前記メインメモリから前記キャッシュメモリへのプリフェッチ動作を制御する制御部と、を備え、
    前記キャッシュメモリは、前記キャッシュミスによりリフィルする領域と、エントリロックしてプリフェッチする領域を含むことを特徴とする情報処理装置。
  10. 前記制御部は、前記両領域を所定の条件で切り替えることを特徴とする請求項9に記載の情報処理装置。
  11. 演算部から共通して利用され、メインメモリに記憶されたテクスチャデータの一部を記憶するキャッシュメモリと、
    前記演算部の用いるテクスチャデータを予測し、そのテクスチャデータを含むラインを前記メインメモリから前記キャッシュメモリへプリフェッチする制御部と、
    を備えることを特徴とする情報処理装置。
  12. 前記制御部は、所定のプログラムの実行により、前記演算部が用いるスタートシーンに必要なテクスチャデータをプリフェッチすることを特徴とする請求項11に記載の情報処理装置。
  13. 前記キャッシュメモリは、キャッシュミスによりリフィルする領域と、エントリロックしてプリフェッチする領域を含むことを特徴とする請求項11に記載の情報処理装置。
  14. 前記制御部は、前記両領域を所定の条件で切り替えることを特徴とする請求項13に記載の情報処理装置。
  15. キャッシュメモリにアクセスした複数の演算部のキャッシュミスによる複数のリフィルリクエストを、前記キャッシュメモリにスラッシングの発生を抑制するよう調停する調停ステップと、
    調停されたリフィルリクエストに応じて、メインメモリから前記キャッシュメモリへのリフィルを実行するリフィルステップと、
    を有することを特徴とする情報処理方法。
  16. 前記調停ステップは、前記複数の演算部が同一のメモリアドレスを所定の時間差でアクセスするとき、前記リフィルの発生を抑制することを特徴とする請求項15に記載の情報処理方法。
  17. 前記調停ステップは、前記リフィルリクエストが所定数累積するまで、前記リフィルの発生を抑制することを特徴とする請求項15に記載の情報処理方法。
  18. 前記キャッシュメモリに割り当てられた、キャッシュミスにより前記リフィルする領域と、エントリロックしてプリフェッチする領域とを所定の条件で切り替える切替ステップ、をさらに有することを徳用とする請求項15に記載の情報処理方法。
  19. キャッシュメモリにアクセスした複数の演算部のキャッシュミスによる複数のリフィルリクエストを調停する調停ステップと、
    調停されたリフィルリクエストに応じて、メインメモリから前記キャッシュメモリへのリフィルを実行するリフィルステップと、
    前記リフィルの開始後、所定の時間が経過した後、前記リフィルリクエストに対応するエントリロックを前記キャッシュメモリに施すエントリロックステップと、
    を有することを特徴とする情報処理方法。
  20. 演算部の用いるテクスチャデータを予測する予測ステップと、
    予測したテクスチャデータを含むラインを、メインメモリからキャッシュメモリへプリフェッチするプリフェッチステップと、
    を有することを特徴とする情報処理方法。
  21. 前記予測ステップは、所定のプログラムの実行により、前記演算部が用いるスタートシーンに必要なテクスチャデータをプリフェッチ用のデータとすることを特徴とする請求項20に記載の情報処理方法。
  22. 前記キャッシュメモリに割り当てられた、キャッシュミスによりリフィルする領域と、エントリロックして前記プリフェッチする領域とを所定の条件で切り替える切替ステップ、をさらに有することを徳用とする請求項20に記載の情報処理方法。
  23. キャッシュメモリにアクセスした複数の演算部のキャッシュミスによる複数のリフィルリクエストを、前記キャッシュメモリにスラッシングの発生を抑制するよう調停する調停機能と、
    調停されたリフィルリクエストに応じて、メインメモリから前記キャッシュメモリへリフィルするよう命令する機能と、
    をコンピュータに発揮させることを特徴とするプログラム。
  24. 演算部の用いるテクスチャデータを予測する機能と、
    予測したテクスチャデータを含むラインを、メインメモリからキャッシュメモリへプリフェッチするよう命令する機能と、
    をコンピュータに発揮させることを特徴とするプログラム。
  25. 前記予測機能は、所定のプログラムの実行により、前記演算部が用いるスタートシーンに必要なテクスチャデータをプリフェッチ用のデータとすることを特徴とする請求項24に記載のプログラム。
JP2004162636A 2004-05-31 2004-05-31 情報処理装置および情報処理方法 Expired - Lifetime JP4451717B2 (ja)

Priority Applications (6)

Application Number Priority Date Filing Date Title
JP2004162636A JP4451717B2 (ja) 2004-05-31 2004-05-31 情報処理装置および情報処理方法
CN2005800176741A CN1985243B (zh) 2004-05-31 2005-05-30 信息处理装置和信息处理方法
EP05745825.9A EP1769364B1 (en) 2004-05-31 2005-05-30 Information processing apparatus and information processing method
PCT/JP2005/010283 WO2005116840A2 (en) 2004-05-31 2005-05-30 Information processing apparatus and information processing method
TW094117865A TWI332149B (en) 2004-05-31 2005-05-31 Information processing apparatus and information processing method
US11/141,700 US7644234B2 (en) 2004-05-31 2005-05-31 Information processing apparatus with a cache memory and information processing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004162636A JP4451717B2 (ja) 2004-05-31 2004-05-31 情報処理装置および情報処理方法

Publications (2)

Publication Number Publication Date
JP2005346215A true JP2005346215A (ja) 2005-12-15
JP4451717B2 JP4451717B2 (ja) 2010-04-14

Family

ID=34968840

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004162636A Expired - Lifetime JP4451717B2 (ja) 2004-05-31 2004-05-31 情報処理装置および情報処理方法

Country Status (6)

Country Link
US (1) US7644234B2 (ja)
EP (1) EP1769364B1 (ja)
JP (1) JP4451717B2 (ja)
CN (1) CN1985243B (ja)
TW (1) TWI332149B (ja)
WO (1) WO2005116840A2 (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008228969A (ja) * 2007-03-20 2008-10-02 Seiko Epson Corp 画像表示装置及び遊技機
JP2011028610A (ja) * 2009-07-28 2011-02-10 Fujitsu Ltd プロセッサ及び演算処理方法
WO2011078014A1 (ja) * 2009-12-21 2011-06-30 ソニー株式会社 キャッシュメモリおよびキャッシュメモリ制御装置
JP2011141657A (ja) * 2010-01-06 2011-07-21 Yokogawa Electric Corp データ処理装置
JP2011523745A (ja) * 2008-05-30 2011-08-18 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド 分散型レベル1キャッシュシステム及び集中型レベル2キャッシュを有するシェーダ複合体
JP2014517395A (ja) * 2011-09-29 2014-07-17 テンセント テクノロジー (シェンツェン) カンパニー リミテッド 画像閲覧方法、システム及びコンピュータ記憶媒体

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7631145B1 (en) * 2005-06-23 2009-12-08 Nvidia Corporation Inter-frame texel cache
US7616210B2 (en) * 2005-08-23 2009-11-10 Canon Kabushiki Kaisha Memory apparatus and memory control method
US20120182832A1 (en) * 2006-09-29 2012-07-19 INOVA, Ltd. Seismic data acquisition systems and method utilizing a wireline repeater unit
US7986324B2 (en) * 2007-01-12 2011-07-26 Fujitsu Limited Display device, display program storage medium and display method
JP5145890B2 (ja) * 2007-11-19 2013-02-20 ソニー株式会社 情報処理装置、及び、情報処理装置の制御方法
US7934059B2 (en) * 2008-01-29 2011-04-26 International Business Machines Corporation Method, system and computer program product for preventing lockout and stalling conditions in a multi-node system with speculative memory fetching
US8001332B2 (en) * 2008-04-30 2011-08-16 Siemens Aktiengesellschaft Adaptive caching for high volume extract transform load process
US7855967B1 (en) * 2008-09-26 2010-12-21 Tellabs San Jose, Inc. Method and apparatus for providing line rate netflow statistics gathering
WO2012176109A1 (en) * 2011-06-22 2012-12-27 Koninklijke Philips Electronics N.V. Method and apparatus for generating a signal for a display
US8830249B2 (en) * 2011-09-12 2014-09-09 Sony Computer Entertainment Inc. Accelerated texture lookups using texture coordinate derivatives
TWI459201B (zh) * 2012-04-27 2014-11-01 Toshiba Kk Information processing device
US9165396B2 (en) * 2013-02-26 2015-10-20 Nvidia Corporation Graphics processing unit with a texture return buffer and a texture queue
US9171525B2 (en) * 2013-02-26 2015-10-27 Nvidia Corporation Graphics processing unit with a texture return buffer and a texture queue
KR102366808B1 (ko) * 2014-10-22 2022-02-23 삼성전자주식회사 캐시 메모리 시스템 및 그 동작방법
US10042773B2 (en) * 2015-07-28 2018-08-07 Futurewei Technologies, Inc. Advance cache allocator
CN108733582B (zh) * 2017-04-18 2021-10-29 腾讯科技(深圳)有限公司 一种数据处理方法及装置
US10939038B2 (en) * 2017-04-24 2021-03-02 Intel Corporation Object pre-encoding for 360-degree view for optimal quality and latency
US10810784B1 (en) * 2019-07-22 2020-10-20 Nvidia Corporation Techniques for preloading textures in rendering graphics

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6046450B2 (ja) 1981-01-19 1985-10-16 日本電気株式会社 高速バツフアメモリ制御方式
JPS5897185A (ja) 1981-12-03 1983-06-09 Nec Corp メモリアクセス方式
JPS62224846A (ja) 1986-03-26 1987-10-02 Nec Corp メモリ制御装置
JPH0789341B2 (ja) 1988-03-10 1995-09-27 松下電器産業株式会社 データ処理装置
JP2822588B2 (ja) 1990-04-30 1998-11-11 日本電気株式会社 キャッシュメモリ装置
CA2043493C (en) * 1990-10-05 1997-04-01 Ricky C. Hetherington Hierarchical integrated circuit cache memory
JPH05143451A (ja) 1991-11-20 1993-06-11 Kisaburo Nakazawa データ処理装置
US5875464A (en) * 1991-12-10 1999-02-23 International Business Machines Corporation Computer system with private and shared partitions in cache
US6216200B1 (en) * 1994-10-14 2001-04-10 Mips Technologies, Inc. Address queue
JPH08123727A (ja) 1994-10-28 1996-05-17 Matsushita Electric Ind Co Ltd 記憶装置
US5732242A (en) * 1995-03-24 1998-03-24 Silicon Graphics, Inc. Consistently specifying way destinations through prefetching hints
JP3519199B2 (ja) 1996-02-06 2004-04-12 株式会社ソニー・コンピュータエンタテインメント 画像生成装置
JP3289661B2 (ja) 1997-11-07 2002-06-10 日本電気株式会社 キャッシュメモリシステム
US6771264B1 (en) 1998-08-20 2004-08-03 Apple Computer, Inc. Method and apparatus for performing tangent space lighting and bump mapping in a deferred shading graphics processor
US6608625B1 (en) * 1998-10-14 2003-08-19 Hitachi, Ltd. Three dimensional graphic processor
US6523092B1 (en) * 2000-09-29 2003-02-18 Intel Corporation Cache line replacement policy enhancement to avoid memory page thrashing
US6629188B1 (en) * 2000-11-13 2003-09-30 Nvidia Corporation Circuit and method for prefetching data for a texture cache
JP4341186B2 (ja) * 2001-01-22 2009-10-07 株式会社日立製作所 メモリシステム

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008228969A (ja) * 2007-03-20 2008-10-02 Seiko Epson Corp 画像表示装置及び遊技機
JP2011523745A (ja) * 2008-05-30 2011-08-18 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド 分散型レベル1キャッシュシステム及び集中型レベル2キャッシュを有するシェーダ複合体
JP2011028610A (ja) * 2009-07-28 2011-02-10 Fujitsu Ltd プロセッサ及び演算処理方法
WO2011078014A1 (ja) * 2009-12-21 2011-06-30 ソニー株式会社 キャッシュメモリおよびキャッシュメモリ制御装置
US9535841B2 (en) 2009-12-21 2017-01-03 Sony Corporation Cache memory and cache memory control unit
US10102132B2 (en) 2009-12-21 2018-10-16 Sony Corporation Data transfer in a multiprocessor using a shared cache memory
JP2011141657A (ja) * 2010-01-06 2011-07-21 Yokogawa Electric Corp データ処理装置
JP2014517395A (ja) * 2011-09-29 2014-07-17 テンセント テクノロジー (シェンツェン) カンパニー リミテッド 画像閲覧方法、システム及びコンピュータ記憶媒体

Also Published As

Publication number Publication date
EP1769364A2 (en) 2007-04-04
WO2005116840A3 (en) 2006-05-04
JP4451717B2 (ja) 2010-04-14
US7644234B2 (en) 2010-01-05
EP1769364B1 (en) 2015-08-12
WO2005116840A2 (en) 2005-12-08
TWI332149B (en) 2010-10-21
US20050275658A1 (en) 2005-12-15
CN1985243B (zh) 2011-07-06
TW200609730A (en) 2006-03-16
CN1985243A (zh) 2007-06-20

Similar Documents

Publication Publication Date Title
JP4451717B2 (ja) 情報処理装置および情報処理方法
JP6267314B2 (ja) キャッシュメモリの利用トレンドに基づく複数セットグループ内のウェイごとの動的パワー供給
JP5536658B2 (ja) バッファメモリ装置、メモリシステム及びデータ転送方法
US11194617B2 (en) Merging data for write allocate
JP7340326B2 (ja) メンテナンス動作の実行
CN112416437B (zh) 信息处理方法、信息处理装置和电子设备
US11392498B2 (en) Aliased mode for cache controller
US20090182949A1 (en) Cache eviction
CN101853218B (zh) 用于磁盘阵列的读取方法和***
EP1535163A1 (en) Processor prefetch to match memory bus protocol characteristics
JP5527477B2 (ja) 演算処理装置、情報処理装置および演算処理装置の制御方法
JP2001249846A (ja) キャッシュメモリ装置及びデータ処理システム
US11321241B2 (en) Techniques to improve translation lookaside buffer reach by leveraging idle resources
KR100859395B1 (ko) 정보 처리 장치 및 정보 처리 방법
JP7311959B2 (ja) 複数のデータ・タイプのためのデータ・ストレージ
US20120151150A1 (en) Cache Line Fetching and Fetch Ahead Control Using Post Modification Information
CN114281715A (zh) 缓存合成预取方法、装置、处理器以及电子设备
JPH05127990A (ja) キヤツシユデータ転送方式

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090310

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090511

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091110

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100104

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: 20100119

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100128

R150 Certificate of patent or registration of utility model

Ref document number: 4451717

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130205

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140205

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313115

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250