JP4938843B2 - 構成可能なキャッシュを有するグラフィックスシステム - Google Patents

構成可能なキャッシュを有するグラフィックスシステム Download PDF

Info

Publication number
JP4938843B2
JP4938843B2 JP2009507929A JP2009507929A JP4938843B2 JP 4938843 B2 JP4938843 B2 JP 4938843B2 JP 2009507929 A JP2009507929 A JP 2009507929A JP 2009507929 A JP2009507929 A JP 2009507929A JP 4938843 B2 JP4938843 B2 JP 4938843B2
Authority
JP
Japan
Prior art keywords
cache
caches
processing unit
processing units
configurable
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
Application number
JP2009507929A
Other languages
English (en)
Other versions
JP2009535710A (ja
Inventor
ユ、チュン
ジャオ、グオファン
ドゥ、ユン
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.)
Qualcomm Inc
Original Assignee
Qualcomm 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 Qualcomm Inc filed Critical Qualcomm Inc
Publication of JP2009535710A publication Critical patent/JP2009535710A/ja
Application granted granted Critical
Publication of JP4938843B2 publication Critical patent/JP4938843B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory

Description

本発明は一般的には回路に関し、さらに具体的にはグラフィックスシステムに関する。
グラフィックスシステムは、ビデオゲーム、グラフィックス、コンピュータ援用設計(CAD)、シミュレーションおよび視覚化ツール、画像化、等のような種々の用途に対して2次元(2−D)および3次元(3−D)画像をレンダリングする(render)ために広く用いられている。3−D画像は、表面でモデル化されることができ、そして各表面は多角形(典型的には三角形)で近似できる。3−D画像を表示するために用いられる三角形の数は、表面の複雑性と画像の所望される解像度によって決まり、極めて大きく例えば何百万であることもありうる。各三角形は、3つの頂点によって画定され、各頂点は空間座標、カラー値、テクスチャ座標のような種々の属性に関連する。各属性は、4つまでの要素を有しうる。例えば、空間座標は、典型的には水平および垂直座標(xおよびy)とデプス(depth)(z)によって与えられ、カラー値は、典型的には赤、緑、青(r、g、b)によって与えられ、そしてテクスチャ座標は、典型的には水平および垂直座標(uおよびv)によって与えられる。
グラフィックスシステムにおけるグラフィックスプロセッサは、2−Dまたは3−D画像をレンダリングするための種々のグラフィックス動作を行いうる。画像は、多数の三角形で構成され、各三角形は画素(ピクセル)で構成される。グラフィックスプロセッサは、三角形内の各ピクセルの要素値を判定することによって各三角形をレンダリングする。グラフィックス動作は、ラスター化(rasterization)、ステンシルおよびデプステスト(stencil and depth tests)、テクスチャマッピング(texture mapping)、シェーデイング(shading)、等を含みうる。グラフィックスプロセッサは、ピクセルに関連した任意のデータでありうるピクセルデータについて種々のグラフィックス動作を行うので、ピクセルデータに迅速にアクセスできることが、性能に対して大きな影響を有する。
発明の概要
構成可能なキャッシュを有しかつ良好な性能を有するグラフィックスシステムがここに記載されている。グラフィックスシステムは、グラフィックスプロセッサおよびキャッシュメモリシステムを含んでいる。グラフィックスプロセッサは、グラフィックス画像をレンダリングするための種々のグラフィックス動作を行う処理ユニットを含んでいる。キャッシュメモリシステムは、完全に構成可能なキャッシュ(fully configurable caches)、部分的に構成可能なキャッシュ(partially configurable cashes)、または構成可能なキャッシュ(configurable cashes)と専用キャッシュ(dedicated caches)の組み合わせを含むことができる。キャッシュは、キャッシュを割り当てられうる処理ユニットのうちの任意の1つに割り当てられうるならば、完全に構成可能である。キャッシュは、それが処理ユニットの部分集合のうちの任意の1つに割り当てられうるならば、部分的に構成可能である。キャッシュは、それが特定の処理ユニットに割り当てられるならば、専用である。キャッシュは、処理ユニットに対するデータ(例えば、ピクセルデータおよび/または命令)を記憶する高速メモリである。
キャッシュメモリシステムは、制御ユニット、クロスバー(crossbar)、およびアービター(arbiter)をさらに含みうる。制御ユニットは、処理ユニットによるメモリ利用を判定しかつメモリ利用に基づいて処理ユニットに構成可能なキャッシュを割り当てうる。構成可能なキャッシュは、これらのキャッシュの良好な利用を達成しかつグラフィックスプロセッサ内のあらゆる位置においてメモリアクセスのボトルネック(memory access bottleneck)を回避するために割り当てられうる。クロスバーは、処理ユニットをそれらの割り当てられたキャッシュに結合する。アービターは、キャッシュとメインメモリとの間のデータ交換を容易にする。
本発明の種々の態様および実施の形態が、以下においてさらに詳細に記述される。
本発明の特徴および本質は、同様の参照符号が全体にわたり対応して識別している図面に関連してなされる下記の詳細な説明から更に明白となるであろう。
「好例の」("exemplary")という語は、本明細書では、「実施例、事例、または例示として適していること」を意味するために用いられる。「好例の」としてここに記述される実施の形態またはデザインは、必ずしも、他の実施の形態またはデザインよりも好ましいあるいは有益であると解釈されるべきものではない。
図1は、専用キャッシュを有するグラフィックスシステム100のブロック図を示している。グラフィックスシステム100は、グラフィックスプロセッサ110およびキャッシュメモリシステム130を含んでいる。グラフィックスプロセッサ110は、パイプラインで配列されかつ2−Dおよび3−D画像をレンダリングするために用いられる種々の処理ユニットを含んでいる。コマンドエンジン120aは、実行されるべきグラフィックス動作を特定する入来コマンドを受信しかつ復号する。三角形位置およびzセットアップエンジン120bは、後続のラスター化処理のための必要なパラメータを演算する。例えば、エンジン120bは、各三角形の3つのエッジのための線形方程式の係数、、デプス(depth)(z)勾配のための係数、等を演算しうる。ラスター化エンジンは120cは、各三角形またはラインをピクセルに分解し、各ピクセルに対するスクリーン座標を生成する。
ステンシルおよびデプステストエンジン120dは、イネーブルされていれば、ピクセルが表示されるべきかあるいは捨てられるべきかを判定するために、各ピクセルに対してステンシルテストを行う。ステンシルバッファ(図1には図示なし)は、レンダリングされている画像内の各ピクセル場所に対する現在のステンシル値を記憶する。エンジン120dは、各ピクセルに対する記憶されたステンシル値を基準値と比較し、その比較の結果に基づいてピクセルを保持するかあるいは捨てる。エンジン120dはまた、適用可能であれば、ピクセルが表示されるべきかあるいは捨てられるべきかを判定するために、各ピクセルに対してデプステスト(これはzテストとも呼ばれる)を行う。z-バッファ(図1には図示なし)は、レンダリングされている画像内の各ピクセル場所に対する現在のz値を記憶する。エンジン120dは、各ピクセルのz値(現在のz値)をz-バッファにおける対応したz値(記憶されたz値)と比較し、ピクセルを表示し、そして現在のz値が記憶されたz値よりも近接/接近している(closer/nearer)場合には、z-バッファと場合によりステンシルバッファとを更新し、現在のz値が記憶されたz値よりも後にある場合には、そのピクセルを捨てる。
属性セットアップエンジン120eは、ピクセル属性の後続の補間のための必要なパラメータを演算する。例えば、エンジン120eは、属性補間のための線形方程式の係数を演算しうる。ピクセル補間エンジン120fは、ピクセルのスクリーン座標に基づいてかつエンジン120eからの情報を用いて、各三角形内の各ピクセルに対する属性要素値を演算する。テクスチャマッピングエンジン120gは、イネーブルされていれば、各三角形にテクスチャを適用するためにテクスチャマッピングを行う。テクスチャ画像は、テクスチャバッファ(図1には図示なし)に記憶されうる。各三角形の3つの頂点は、テクスチャ画像における3つの(u,v)座標に関連され、そしてその三角形の各ピクセルは、テクスチャ画像における特定のテクスチャ座標に関連されうる。テクスチャリング(texturing)は、ピクセルのテクスチャ座標によって示された場所におけるテクスチャ画像のカラーで各ピクセルのカラーを修正することによって達成される。
各ピクセルは、カラー、デプス、テクスチャ等のような情報に関連づけられる。フラグメントシェーダ120hは、命令のシーケンスで構成されうるソフトウエアプログラムを各フラグメントに適用する。フラグメントシェーダ120hはまた、テクスチャマッピングエンジン120gにテクスチャ要求を送ることもできる。フラグメントエンジン120iは、アルファテスト(alpha test)、フォグ混合(fog blending)、アルファ混合(alpha blending)、論理演算(logic operation)、およびデイザリング動作(dithering operation)のような機能を各フラグメントに対して行い、そして結果をカラーバッファに与える。
図1に示されているグラフィックス動作は、技術的に公知である。グラフィックスプロセッサは、オープングラフィックスライブライリ(Open Graphics Library)(オープンGL))、ダイレクト3D(Direct 3D)等のようなソフトウエア・インタフェースを実装しうる。オープンGLは、公表されている2004年10月22日付けの"オープンGL(登録商標)グラフィックス・システム:仕様書"バージョン2.0、("The OpenGL(Registered Trademark) Graphics System: A Specification," Version 2.0, dated October 22, 2004)という名称の文書に記載されている。
一般に、グラフィックスプロセッサは、任意の組のグラフィックス動作のための任意の数の処理ユニットを含みうる。各処理ユニットは、専用ハードウエアで実装されたエンジン、プロセッサ、または両者の組み合わせでありうる。例えば、図1に示されているエンジンは専用ハードウエアで実装されうるものであり、他方、フラグメントシェーダはプログラム可能な中央処理ユニット(CPU)で実装されうる。処理ユニットは、所望の最適化に依存して種々の順序で配列されうる。例えば、節電のために、図1に示されているように、ステンシルおよびデプステストをパイプラインで早期に行い、目に見えないピクセルが早期に捨てられるようにすることが望ましいであろう。処理ユニットはまた、他の順序で配列されてもよく、例えば、ステンシルおよびデプステストエンジン120dがテクスチャマッピングエンジン120gの後に配置されてもよい。
キャッシュメモリシステム130は、グラフィックスプロセッサ110内の処理ユニット120のうちの幾つかのための専用キャッシュ150a〜150fを含んでいる。図1に示されたデザインでは、ステンシルキャッシュ150aは、レンダリングされている画像のある領域内のピクセルに対するステンシル値を記憶し、デプスキャッシュ150bは、同じまたは異なる領域内のピクセルに対するデプス値を記憶する。ステンシルおよびデプステストエンジン120dは、キャッシュ150aに記憶されたステンシル値にアクセスして、これらのステンシル値を用いてステンシルテストを行う。エンジン120dは、キャッシュ150bに記憶されたz値にもアクセスして、これらのz値を用いてデプステストを行う。テクスチャキャッシュ150cは、三角形にテクスチャをマップするためにテクスチャマッピングエンジン120gによって用いられるテクスチャマッピングテーブルを記憶する。シェーダ命令キャッシュ150dは、フラグメントシェーダ120hに対する命令を記憶し、そしてシェーダデータキャッシュ150eは、フラグメントシェーダ120hのためのデータを記憶する。カラーキャッシュ150fは、ピクセルのためのカラー(例えば、赤、緑、青)値を記憶する。
アービター160は、キャッシュ150a〜150fとメインメモリ170に結合しかつそれら間のデータ交換を容易にする。処理ユニット120がデータのために関連付けられたキャッシュにアクセスして、要求されたデータがそのキャッシュに記憶されていない場合には、キャッシュミスが宣言される。このキャッシュミスにより、必要であれば、キャッシュの現在のコンテンツがメインメモリに戻されて記憶されることになり、そしてデータの新しい領域がメインメモリ170からフェッチ(fetched)されて、キャッシュにロードされることになる。要求データがキャッシュから得られて、処理ユニットに与えられうる。アービター160は、一度に1つのキャッシュがメインメモリ170とデータを交換できるようにする。
図1におけるキャッシュメモリシステム130は、グラフィックスシステム100に対するメモリアクセス性能を向上させる。キャッシュ150は、グラフィックスプロセッサ110に近接して配置された小さな高速メモリである。高速キャッシュメモリは、処理ユニット120がより高速でデータを回収しかつ結果を記憶することができるから、処理速度を上げる。メインメモリ170は、グラフィックスプロセッサ110からさらに離れて(例えば、オフチップで)配置された大きい低速メモリである。メインメモリ170は、キャッシュ150にロードされうるデータおよび命令を記憶する。キャッシュ150は、メインメモリ170からのフェッチ(fetches)の回数を減少させ、かつ一般にグラフィックスシステム100の性能を向上させる。
図1は、専用キャッシュの使用を示す。各キャッシュ150は、特定の処理ユニット120に対するデータまたは命令を記憶する。各キャッシュ150の利用は、実行されているグラフィックスアプリケーションによって決まる。例えば、3−Dグラフィックスアプリケーションは、zパスを実行するだけでよく、デプスおよび/またはステンシルテストだけを行わせればよい。このアプリケーションに対しては、ステンシルキャッシュおよび/またはデプスキャッシュだけが利用されればよく、残りのキャッシュ150c〜150fは遊んでいてもよい。他の例としては、単純なシェーダアプリケーションは、シェーダ命令キャッシュ150dあるいはシェーダデータキャッシュ150eを利用しなくてもよく、これらのキャッシュは遊んでいてもよい。さらに他の例としては、グラフィックスアプリケーションは、テクスチャマッピングを無効にしてもよく、その場合には、テクスチャキャッシュ150cは必要とされなくてもよい。これらの例によって分かるように、専用キャッシュを使用すると、ある種のグラフィックスアプリケーションによるキャッシュの利用が低下することになりうる。専用キャッシュを使用すると、異なるグラフィックスアプリケーションに対して異なる場所でメモリアクセスボトルネックが生じることにもなりうる。このボトルネックがグラフィックスシステム100の性能を制限する。
図2は、完全に構成可能なキャッシュを有するグラフィックスシステム200の1つの実施の形態を示している。グラフィックスシステム200は、グラフィックスプロセッサ210およびキャッシュメモリシステム230を含んでいる。グラフィックスプロセッサ210は、図1においてそれぞれ処理ユニット120a〜120iに対して上述したように動作しうる処理ユニット220a〜220iを含んでいる。図2に示されているように、処理ユニットのうちの幾つかだけが、データおよび/または命令を記憶するためにキャッシュを利用しうる。特に、ステンシルおよびデプステストエンジン220dに対するステンシルおよび/またはデプス値、テクスチャマッピングエンジン220gに対するテクスチャデータ、フラグメントシェーダ220hに対する命令および/またはデータ、およびフラグメントエンジン220iに対するカラー値を記憶するためにキャッシュが用いられうる。
キャッシュメモリシステム230は、グラフィックスプロセッサ210内の処理ユニット220に対するデータおよび/または命令を記憶するために割り当てられうるN個の完全に構成可能なキャッシュ250a〜250nを含んでおり、一般に、N≧1である。それらのキャッシュは、各キャッシュが、キャッシュを割り当てられうる任意の処理ユニットに割り当てられうるという点で、完全に構成可能である。1つの実施の形態では、各キャッシュ250は、1つの処理ユニット220だけに割り当てられうるが、所定の処理ユニット220はゼロ、1、または複数のキャッシュ250を割り当てられうる。制御ユニット232は、ステンシルおよびデプスエンジン220d、テクスチャマッピングエンジン220g、フラグメントシェーダ220h、および/またはフラグメントエンジン220iに対して、これらの処理ユニットのメモリ利用に基づいて、利用可能なキャッシュ250a〜250nを割り当てる。クロスバー240は、処理ユニット220d、220g、220h、および220iをそれらの割り当てられたキャッシュ250a〜250nに結合する。クロスバー240はまた、クロススイッチまたは他の用語で呼ばれてもよい。アービター260は、キャッシュ250a〜250nをメインメモリ270に結合し、それらのキャッシュとメインメモリとの間におけるデータ交換を容易にする。アービター260はまた、セレクタ、メモリインタフェース、または他の用語で呼ばれてもよい。
一般に、キャッシュメモリシステムは、任意のサイズを有しうる任意の個数のキャッシュを含みうる。キャッシュの個数およびそれらのサイズは、メモリアクセス性能と回路面積との間の妥協に基づいて選択されうる。大きいキャッシュサイズでは、キャッシュヒットレートが高くなり、かつ要求データがそれらのキャッシュに記憶される可能性が大きくなる。しかし、大きいキャッシュサイズはまた、大きい回路面積を必要とし、それがコストを増加させることになりうる。1つの特定の実施の形態では、キャッシュメモリシステム230は、12個のキャッシュ250を含み、各キャッシュは4キロバイトである。他の実施の形態では、キャッシュメモリシステムに対して、それより少ないあるいは追加のキャッシュならびに他のキャッシュサイズが用いられうる。
図3は、図2におけるクロスバー240の1つの実施の形態のブロック図を示す。この実施の形態では、クロスバー240は、K個のインタフェースユニット310a〜310kを含んでおり、一般に、Kは任意の整数値でありうる。インタフェースユニットはまた、マスターユニットまたは他の用語で呼ばれうる。図2に示された実施の形態では、Kは6に等しく、6個のインタフェースユニットは、ステンシル、デプス、テクスチャ、シェーダ命令、シェーダデータ、およびカラーに対するものである。所定の処理ユニット220は、処理ユニットのデータ要件に依存して、1つまたは複数のインタフェースユニット310と相互に作用しうる。クロスバー240は、K個のインタフェースユニット310a〜310kに対してそれぞれK個のマルチプレクサ(Mux)340a〜340k、およびN個のキャッシュ250a〜250nに対してそれぞれN個のマルチプレクサ350a〜350nをさらに含んでいる。
各インタフェースユニット310は、各組のライン302を経由して関連付けられた処理ユニット220に結合する。各インタフェースユニット310は、状態機械320および入力/出力(I/O)ユニット330を含んでいる。各インタフェースユニット310では、I/Oユニット330が関連付けられた処理ユニット220からライン302を経由してアドレスおよび/または出力データを受信して、そのアドレス/データをN個のマルチプレクサ350a〜350nのそれぞれの1つの入力に与える。I/Oユニット330はまた、関連マルチプレクサ340から入力データまたは命令を受信して、関連付けられた処理ユニット220にライン302を経由してデータ/命令を与える。
各マルチプレクサ350は、K個の入力において、すべてのK個のI/Oユニット330a〜330kからアドレス/データを受信する。各マルチプレクサ350はまた、制御ユニット232から各自の制御Cnを受信して、その制御Cnによって決定される1つの入力からアドレス/データを関連付けられたキャッシュ250に与える。各マルチプレクサ350は、このようにして1つのインタフェースユニット310を関連付けられたキャッシュ250に結合する。
各マルチプレクサ340は、N個の入力において、すべてのN個のキャッシュ250a〜250nから入力データまたは命令を受信する。各マルチプレクサ340はまた、制御ユニット232から各自の制御Pkを受信して、その制御Pkによって決定される1つの入力からのデータ/命令を関連I/Oユニットに与える。各マルチプレクサ340は、このようにして1つのキャッシュ250を関連インタフェースユニット310に結合する。
各キャッシュ250は、関連マルチプレクサ350からアドレスを受信して、そのアドレスにおける要求データ/命令がそのキャッシュに記憶されているか否かを判定する。各キャッシュ250は、要求データ/命令がそのキャッシュに記憶されていればキャッシュヒット(例えば、論理ハイ)を示し、あるいは、要求データ/命令がそのキャッシュに記憶されていなければキャッシュミス(例えば、論理ロー)を示すヒット/ミス(h/m)のインジケーター(indicator)を与える。各キャッシュ250は、キャッシュヒットが存在すれば、要求データ/命令を与える。各キャッシュ250は、メインメモリ270からのフェッチ(fetch)を待ち、そしてキャッシュミスが存在する場合には、要求データ/命令を与える。
各インタフェースユニット310では、状態機械320が、すべてのN個のキャッシュ250a〜250nからのヒット/ミスのインジケーターと、どのキャッシュがそのインタフェースユニットに割り当てられているかを示す制御Mkを受信する。状態機械320は、割り当てられたキャッシュに対するヒット/ミスのインジケーターに基づいて、要求データ/命令が割り当てられたキャッシュのどれかに記憶されているか否かを、割り当てキャッシュに対するヒット/ミスのインジケーターに基づいて、判定する。状態機械320は、要求データ/命令が割り当てられたキャッシュのどれにも記憶されていないならば、フェッチ命令を生成する。
制御ユニット232は、状態機械320a〜320kそれぞれに対する制御M1〜MK、マルチプレクサ340a〜340kそれぞれに対する制御P1〜PK、およびマルチプレクサ350a〜350nそれぞれに対する制御C1〜CNを生成する。これらの制御は、どのキャッシュが各インタフェースユニット310に割り当てられるかを判定する。
図3は、完全に構成可能なキャッシュに対するクロスバー240の1つの実施の形態を示している。一般に、キャッシュの完全構成可能性は、十分な数の入力を有するマルチプレクサを使用し、可能なキャッシュ割り当てを評価するように状態機械を設計し、そして状態機械およびマルチプレクサに対する適切な制御を生成することによって、実現されうる。クロスバー240はまた、処理ユニットを利用可能なキャッシュにマップできる他のデザインで実装されうる。
図4は、図3におけるキャッシュ250nおよびインタフェースユニット310kに対す状態機械320の1つの実施の形態のブロック図を示している。キャッシュ250nは、キャッシュコントローラ410、タグRAM420、およびデータRAM430を含んでいる。キャッシュコントローラ410は、キャッシュ250nの各アクセスに対してアドレス照合を行い、正しいデータ/命令がアクセスされているようにする。タグRAM420は、どのデータ/命令がキャッシュに現在記憶されているかを追跡する。データRAM430は、データ/命令を記憶する。データRAM430の各ラインは、キャッシュ250nがデータまたは命令を記憶するように構成されているかどうかに応じて、1つまたは複数のピクセルあるいは1つまたは複数の命令に対するデータを記憶しうる。
キャッシュ250nは、ダイレクトマップキャッシュ構造(direct map cache structure)またはM−ウエイセットアソシエイトキャッシュ構造(M-way set associate cache structure)で実装されうる。ダイレクトマップキャッシュ構造では、次のレベルにおけるメモリ(例えば、メインメモリ270)の各ラインが、データRAM430の1つのラインだけにマップ(mapped)されうる。データRAM430の各ライン(または各キャッシュライン)は、そのキャッシュラインに記憶されているメインメモリ270の特定のラインを識別するタグRAM420におけるタグに関連される。1つの例として、メインメモリ270が256kラインを有しておりかつデータRAM430が4kラインを有しているならば、各キャッシュラインは特定の12ビットアドレスに関連され、そしてメインメモリの32ラインは各キャッシュラインにマップされる。各キャッシュラインに記憶されているメインメモリ270の特定のラインは、キャッシュラインに対する12ビットアドレスおよびメインメモリ270の32ラインのうちのどれがキャッシュラインに記憶されているかを示す5ビットタグによって識別されうる。M−ウエイセットアソシエイトキャッシュ構造では、メインメモリ270の各ラインは、データRAM430のMの可能なラインの任意の1つにマップされうる。一般に、タグ構造は、メインメモリサイズ、キャッシュサイズ、キャッシュ構造、各キャッシュラインのサイズ、および/または他のファクターで決まりうる。
タグRAM420は、データRAM430の各ラインに対するタグを記憶し、データRAM430における任意のラインが置換されると更新される。各キャッシュラインに対するタグは、そのキャッシュラインに記憶されているメインメモリのラインを示す。制御ユニット410内では、アドレス解析器(address parser)412が、処理ユニット220によるメモリアクセスのためのアドレスをマルチプレクサ350nから受信し、ターゲットタグおよびキャッシュラインアドレスを得るためにそのアドレスを解析し(parse)、そのキャッシュラインアドレスをタグRAM420に与え、そしてターゲットタグを比較ロジック414に与える。タグRAM420は、解析器412からのキャッシュラインアドレスに対する記憶タグを与える。比較ロジック414は、記憶タグをターゲットタグと比較し、それらのタグが等しいならばキャッシュヒットを示し、それらのタグが異なるならばキャッシュミスを示す。タグRAM420は、キャッシュ250nがM−ウエイセットアソシエイトキャッシュ構造を実装していれば、複数回アクセスされうる。
メモリアクセスユニット416は、キャッシュヒットが存在する場合に、データRAM430のアクセスに対処する。メモリアクセスが読み出し(read)であれば、キャッシュラインアドレスに記憶されたデータ/命令を読み取るためにアクセスされる。メモリアクセスが書き込み(write)であれば、データRAM430がキャッシュライン・アドレスに書き込まれ、そのキャッシュラインが書き込まれたことを示すようにキャッシュ「ダーテイビット」("dirty bit")が更新されて、そのラインは置換される前にメインメモリ270に書き戻されることになる。
インタフェースユニット310kに対する状態機械320は、そのインタフェースユニットに割り当てられたキャッシュに要求データ/命令が記憶されているか否かを判定する。状態機械320内では、マッパー(mapper)450が制御ユニット232から制御MKを受信し、N個のキャッシュ250a〜250nに対するN個のイネーブル信号を生成する。各イネーブル信号は、関連付けられたキャッシュ250がインタフェースユニット310kに割り当てられるならば論理ハイに設定される。N個のANDゲート452a〜452nは、N個のキャッシュ250a〜250nそれぞれからN個のイネーブル信号およびN個のヒット/ミスインジケーターを受信する。各ANDゲート452は、(1)それのイネーブル信号が、関連付けられたキャッシュ250がインタフェースユニット310kに割り当てられていないことを示す論理ローであれば論理ローを、あるいは、(2)イネーブル信号が、キャッシュがインタフェースユニット319kに割り当てられていることを示す論理ハイであれば関連付けられたキャッシュ250からのヒット/ミスインジケーターを与える。ORゲート454は、ANDゲート452a〜452nの出力を受信し、インタフェースユニット310kに対するヒットインジケーターを生成する。
キャッシュフィルユニット(cache fill unit)460は、キャッシュミスが存在する場合には、インタフェースユニット310kに割り当てられたキャッシュのうちの1つのキャッシュフィルを指示する。1つの実施の形態では、最近最も使われていない(LRU)、すなわち、最も長期間使われていない割り当てられたキャッシュがキャッシュフィルのために選択される。キャッシュフィルユニット460は、選択されたキャッシュのすべてまたは一部分をメインメモリ270からの新しいデータ/命令で満たしうる。ターゲットキャッシュラインがメインメモリ270から満たされかつ選択されたキャッシュのタグRAMがデータRAMにロードされた新しいデータ/命令を反映するために更新される間、インタフェースユニット310kは機能停止(stalled)になされうる。
完全に構成可能なキャッシュを有するグラフィックスシステムは、処理ユニットにキャッシュを割り当てることに関して最大の柔軟性を提供する。所定の処理ユニットは、処理ユニットのデータ要件に依存して、利用可能なキャッシュのうちのゼロ、1つ、複数、あるいはすべてを割り当てられうる。利用可能なキャッシュは、キャッシュの良好な利用を実現しかつ実行されているグラフィックスアプリケーションとは関係なしにグラフィックスプロセッサにおける任意の1つの場所におけるメモリアクセスボトルネックを回避する態様で処理ユニットに割り当てられうる。利用可能なキャッシュは、下記のように、処理ユニットに知的に割り当てられうる。
多くの場合において、部分的に構成可能なキャッシュで高性能が達成されうる。これらのキャッシュは、各キャッシュが処理ユニットの部分集合のうちの1つに割り当てられうる点で部分的に構成可能である。異なるグラフィックス動作に対してキャッシュを使用する利益を確認するために種々のグラフィックスアプリケーションについて研究が行われてきた。これらの研究は、多くのグラフィックスアプリケーションに対してステンシルおよびデプステストとテクスチャマッピングの性能を高めるのにキャッシュが非常に有用であり、カラーおよびシェーダに対してはある程度だけしか有益でないことを示している。
したがって、キャッシュメモリシステムは、ステンシルおよびデプステストとテクスチャマッピングに対しては利用可能キャッシュの多くを構成可能とし、カラーおよびシェーダに対してはキャッシュのうちのほんの僅かを構成可能として、デザインされうる。部分的に構成可能なキャッシュを用いることは、構成可能なキャッシュを割り当てる制御ユニットならびに処理ユニットをそれらの割り当てられたキャッシュに結合するクロスバーのデザインを単純化しうる。
図5は、構成可能なキャッシュおよび専用キャッシュを有するグラフィックスシステム500の1つの実施の形態を示している。グラフィックスシステム500は、グラフィックスプロセッサ510およびキャッシュメモリシステム530を含んでいる。グラフィックスプロセッサ510は、図1における処理ユニット120a〜120iに対して上述したように動作する処理ユニットを含んでいてもよい。具体的には、グラフィックスプロセッサ510は、ステンシルおよびデプステストエンジン、テクスチャマッピングエンジン、フラグメントシェーダ、およびキャッシュに記憶されたデータおよび/または命令を利用しうるフラグメントエンジンを含んでいてもよい。
図5に示された実施の形態では、キャッシュメモリシステム530は、R個の部分的に構成可能なキャッシュ550a〜550rおよび1つの専用キャッシュ550sを含んでおり、一般にR≧1である。表1は、キャッシュ550a〜550sのそれぞれの可能な割り当てを示しており、各"X"は有効なキャッシュ割り当てを示している。表1に示されているように、P個の部分的に構成可能なキャッシュ550a〜550pのそれぞれは、ステンシルテスト、デプステスト、またはテクスチャマッピングに対して割り当てられうる。部分的に構成可能なキャッシュ550qは、シェーダ命令、ステンシルテスト、デプステスト、またはテクスチャマッピングに対して割り当てられうる。部分的に構成可能なキャッシュ550rは、シェーダデータ、ステンシルテスト、デプステスト、またはテクスチャマッピングに対して割り当てられうる。専用キャッシュ550rは、フラグメントエンジンに対するカラー値を記憶するために用いられる。1つの実施の形態では、P=8であり、キャッシュ550qおよび550rがシェーダ命令およびデータに対しては使用されないと仮定して、10個までのキャッシュがステンシルテスト、デプステスト、および/またはテクスチャマッピングに対して割り当てられうる。キャッシュメモリシステム530に対しては、より少数のまたは追加のキャッシュが用いられてもよい。
Figure 0004938843
制御ユニット532は、処理ユニットによるメモリ利用に基づいて、構成可能なキャッシュ550a〜550rをステンシルおよびデプステストエンジン、テクスチャエンジン、および/またはフラグメントシェーダに割り当てる。クロスバー540は、処理ユニットをそれらの割り当てられたキャッシュ550a〜550rに結合する。アービター560は、キャッシュ550a〜550sをメインメモリ570に結合する。
図5はまた、クロスバー540の実施の形態も示している。この実施の形態では、クロスバー540は、ステンシルテスト、デプステスト、テクスチャマッピング、シェーダ命令、およびシェーダデータのそれぞれに対するインタフェースユニット580a〜580eを含んでいる。インタフェースユニット580aは、ステンシルおよびデプステストエンジンをキャッシュ580a〜580rのうちのステンシルテストに対して割り当てられたキャッシュに結合する。インタフェースユニット580bは、ステンシルおよびデプステストエンジンをキャッシュ580a〜580rのうちのデプステストに対して割り当てられたキャッシュに結合する。インタフェースユニット580cは、テクスチャマッピングエンジンをキャッシュ580a〜580rのうちの割り当てられたキャッシュに結合する。インタフェースユニット580dは、キャッシュ550qが割り当てられておれば、フラグメントシェーダをこのキャッシュ550qに結合する。インタフェースユニット580eは、キャッシュ550rが割り当てられておれば、フラグメントシェーダをこのキャッシュ550rに結合する。各インタフェースユニット580は、例えば図3に示されているように、状態機械およびI/Oユニットを含んでいてもよい。簡単のために、インタフェースユニットに対するマルチプレクサおよびキャッシュに対するマルチプレクサは図5には図示されていない。
図5は、構成可能なキャッシュおよび専用キャッシュを有するキャッシュメモリシステムの特定の実施の形態を示している。一般に、キャッシュメモリシステムは、任意の個数の構成可能なキャッシュおよび任意の個数の専用キャッシュを含みうる。構成可能なキャッシュは、任意の組のグラフィックス動作に対して使用され、専用キャッシュも任意の組のグラフィックス動作に対して使用されうる。構成可能なキャッシュおよび専用キャッシュの両方を使用すると、制御ユニットおよびクロスバーのデザインを簡単化できる。
図2および5に示された実施の形態では、制御ユニットは、種々の態様で構成可能なキャッシュを処理ユニットに割り当てることができる。1つの実施の形態では、制御ユニットは、先行する画像/フレームにおけるメモリ利用に基づいて、レンダリングされるべき各グラフィックス画像またはフレームに対するキャッシュを割り当てる。制御ユニットは、各処理ユニットによってなされたメモリアクセスの数、各キャッシュに対するキャッシュヒットの数、各キャッシュに対するキャッシュミスの数、等をカウントすることによって、メモリ利用を確認しうる。制御ユニットは、つぎにメモリ利用の高い処理ユニットに対してより多くのキャッシュを割り当てることができ、そしてメモリ利用の低い処理ユニットに対してはより少ないまたはゼロのキャッシュを割り当てることができる。
他の実施の形態では、制御ユニットは、グラフィックス画像/フレームのコヒレンシ(coherency)に基づいて、構成可能なキャッシュを処理ユニットに割り当てる。コヒレンシは、連続した2D/3Dフレームにおける変化の量に関連する。フレームが同様のコンテンツをレンダリングする可能性が大きい場合には、より高いコヒレンシに対してはより少ないキャッシュが割り当てられ、より低いコヒレンシに対してはより多いキャッシュが割り当てられうる。
さらに他の実施の形態では、制御ユニットは、実行されているグラフィックスアプリケーションの特徴に基づいて、構成可能なキャッシュを処理ユニットに割り当てる。例えば、グラフィックスシステムが2−Dグラフィックスアプリケーションを実行しているならば、デプステストは必要とされなくてもよく、デプステストに対してはキャッシュは割り当てられなくてもよい。対極的に、3−Dグラフィックスアプリケーションがzパスだけを用いるならば、すべての構成可能なキャッシュがデプステストに割り当てられうる。他の例としては、単純なシェーダプログラムが実行されておりかつシェーダ命令のすべてがフラグメントシェーダ内に記憶されうるならば、フラグメントシェーダにはキャッシュは割り当てられなくてもよい。
さらに他の実施の形態では、制御ユニットは、構成可能なキャッシュを動的に割り当てる。例えば、制御ユニットは、データ要求が処理ユニットに送られる場合には、処理ユニットに1つまたは複数の処理ユニットを割り当てることができる。制御ユニットは、要求の数、キャッシュのヒット/ミスの統計、および/または即時に判定されうる他の要因に基づいて、処理ユニットに割り当てられるキャッシュの数を調節しうる。1つの処理ユニットから他の処理ユニットに切り替えられたまたは再割り当てされたキャッシュに対して、フラッシュ動作および無効化動作(flush and invalidate operations)がすぐさま行われうる。
さらに他の実施の形態では、制御ユニットは、静的および動的割り当ての組み合わせを用いて、キャッシュを割り当てる。例えば、制御ユニットは、例えば、処理ユニットによるメモリ利用についての現在の統計に基づいて、フレーム、画像、またはバッチのレンダリングの開始において、所定の処理ユニットに1つまたは複数のキャッシュを再割り当てすることができる。制御ユニットは、フレーム、画像、またはバッチのレンダリング時に、この処理ユニットに対するキャッシュ割り当てを、例えば周期的に調節することができる。各レンダリング周期における新しいキャッシュ割り当ては、先行するレンダリング周期の間に得られた統計に基づいて決定されうる。
制御ユニットは、他の基準に基づいて、構成可能なキャッシュを割り当てることもできる。制御ユニットは、グラフィックスアプリケーションが最初に実行される場合に、および/または他の時点で、メモリ利用の変化が検知されると、各画像/フレーム内でキャッシュを割り当てることができる。
簡単のために、図1〜5は、キャッシュのバンクを含むキャッシュメモリシステムを示している。キャッシュはメモリの1つのブロックで実装されてもよい。キャッシュまたはキャッシュメモリシステムはまた、例えば、レベル1、レベル2、レベル3、等の複数のレベルを有する階層構造で実装されうる。低いレベル(例えば、レベル1)のキャッシュは、高いレベル(例えば、レベル2)のキャッシュより高速であるが小さくなる傾向がある。各レベルにおけるキャッシュは、キャッシュミスが生じると、次に高いレベルのキャッシュで満たされうる。レベルの数、各レベルにおけるキャッシュの数、および異なるレベルに対するキャッシュサイズは、固定であるかあるいは構成可能でありうる。例えば、レベルの数、各レベルのキャッシュの数、および/またはキャッシュサイズは、良好な性能を実現するために選択されうるものであり、かつグラフィックスアプリケーションの特徴に基づいて構成可能でありうる。
図6は、構成可能なキャッシュを有するグラフィックスシステムを動作させるためのプロセス600の1つの実施の形態を示す。グラフィックス画像をレンダリングするためにグラフィックス動作を行うように構成された複数の処理ユニットによるメモリ利用が判定される(ブロック612)。メモリ利用は、処理ユニットによってなされたメモリアクセスをモニタすることにより、実行されているグラフィックスアプリケーションの特徴を確認することにより、そして/または他の態様で判定されうる。複数のキャッシュが、メモリ利用に基づいて、複数の処理ユニットのうちの少なくとも1つの処理ユニットに割り当てられる(ブロック614)。各処理ユニットは、(1)その処理ユニットならびに他の処理ユニットによるメモリ利用および(2)その処理ユニットの割り当てのために利用可能なキャッシュに依存して、キャッシュのうちのゼロ、1つ、複数、またはすべてを割り当てられうる。メモリ利用は、例えば、処理ユニットによるデータ要求、キャッシュヒット/ミス統計、等のような種々の統計に基づいて確認されうる。キャッシュ割り当ては、メモリ利用の変化が検知された場合等に、周期的に(例えば、グラフィックス画像/フレームごとに)行われうる。キャッシュはまた、メモリ利用の検知された変化に基づいて、画像/フレームのレンダリング時に再割り当てされうる。少なくとも1つの処理ユニットのそれぞれは、その処理ユニットに割り当てられたキャッシュの各組に、各インタフェースユニットを経由して結合される(ブロック616)。
ここに記載されたグラフィックスシステムおよび構成可能なキャッシュは、ワイヤレスコミュニケーション、コンピューテイング、ネットワーキング、パーソナルエレクトロニクス、等のために使用されうる。ワイヤレスコミュニケーションに対する、構成可能なキャッシュを有するグラフィックスシステムの好例の用途について以下で説明する。
図7は、ワイヤレスコミュニケーションシステムにおけるワイヤレスデバイス700の実施の形態のブロック図を示している。ワイヤレスデバイス700は、携帯電話、端末装置、ハンドセット、パーソナルデイジタルアシスタント(PDA)、あるいは他のデバイスでありうる。ワイヤレスコミュニケーションシステムは、コード分割多重アクセス(CDMA)システム、グローバルシステムフォアモバイルコミュニケーションズ(Global System for Mobile Communications)(GSM)システム、あるいは他のシステムでありうる。
ワイヤレスデバイス700は、受信パスと送信パスを経由して双方向コミュニケーションを提供することができる。受信パスでは、ベースステーションによって送信された信号がアンテナ712によって受信され、レシーバ(RCVR)714に与えられる。レシーバ714は、受信信号を調整しかつデジタル化し、さらなる 処理のためにサンプルをデジタルセクション720に与える。送信パスでは、トランスミッタ(TMTR)716は、デジタルセクション720から送信さるべきデータを受信し、そのデータを処理しかつ調整し、アンテナを経由してベースステーションに送信される変調信号を生成する。
デジタルセクション720は、例えば、モデムプロセッサ722、ビデオプロセッサ724、アプリケーションプロセッサ726、デイスプレイプロセッサ728、コントローラ/プロセッサ730、グラフィックスプロセッサ740、および外部バスインタフェース(EBI)760のような種々の処理ユニットおよびインタフェースユニットを含んでいる。モデムプロセッサ722は、データ送信および受信のための処理(例えば、符号化、変調、復調、および復号化)を行う。ビデオプロセッサ724は、カムコーダ、ビデオプレイバック、およびビデオカンフェレンスのようなビデオアプリケーションのためのビデオコンテンツ(例えば、スチル画像、ムービングビデオ、およびムービングテキスト)に対する処理を行う。アプリケーションプロセッサ726は、マルチウエイコール(multi-way calls)、ウエブブラウジング(web-browsing)、メデイアプレイヤー(media player)、およびユーザインタフェース(user interface)のような種々のアプリケーションに対する処理を行う。デイスプレイプロセッサ728は、デイスプレイユニット780におけるビデオ、グラフィックスおよびテキストの表示を容易にするための処理を行う。コントローラ/プロセッサ730は、デジタルセクション720内の種々の処理ユニットおよびインタフェースユニットの動作を指示する。
グラフィックスプロセッサ740は、グラフィックスアプリケーションに対する処理を行い、かつ下記のように実装されうる。キャッシュメモリシステム750は、グラフィックスプロセッサ740に対するデータおよび/または命令を記憶し、かつ構成可能なキャッシュおよび場合により専用のキャッシュで実装されうる。キャッシュメモリシステム750は、グラフィックスプロセッサ740内の処理ユニットに構成可能なキャッシュを結合するクロスバーと、バス732およびEBI760を経由してメインメモリ770にキャッシュを結合するアービターをさらに含みうる。EBI760は、デジタルセクション720(例えば、キャッシュ)とメインメモリ770との間のデータの転送を容易にする。
デジタルセクション720は、1つまたは複数のデジタル信号プロセッサ(DSPs)、マイクロプロセッサ、縮小命令セットコンピュータ(RISCs)、等で実装されうる。デジタルセクション720はまた、1つまたは複数の用途特定集積回路(ASICs)または他のタイプの集積回路(ICs)上に作成されてもよい。
ここに記載されたグラフィックスシステムおよび構成可能なキャッシュは、種々のハードウエアユニットで実装されうる。例えば、グラフィックスシステムおよび構成可能なキャッシュは、ASICs、デジタル信号処理デバイス(DSPDs)、プログラマブルロジックデバイス(PLDs)、フィールドプログラマブルゲートアレイ(FPGAs)、プロセッサ、コントローラ、マイクロコントローラ、マイクロプロセッサ、および他の電子ユニットで実装されうる。
グラフィックスシステムのある部分は、ファームウエアおよび/またはソフトウエアで実装されうる。例えば、制御ユニットは、ここで説明された機能を行うファームウエアおよび/またはソフトウエアモジュール(例えば、手順、機能、等)で実装されうる。ファームウエアおよび/またはソフトウエアコードは、メモリ(例えば、図7におけるメモリ770)に記憶され、プロセッサ(例えば、プロセッサ730)によって実行されうる。メモリは、プロセッサの内部またはプロセッサの外部で実装されうる。
開示された実施の形態についての前記の記述は、当業者が本発明を実施または利用できるようにするために提示された。これらの実施の形態に対する種々の修正が当業者には容易に明らかとなるであろう、そしてここに明示された一般的原理は、本発明の精神または範囲から逸脱することなしに他の実施の形態に適用されうる。したがって、本発明は、ここに示された実施の形態に限定されるべく意図されたものではなく、ここに開示された原理および新規な特徴に整合した最も広い範囲を与えられるべきである。
専用キャッシュを有するグラフィックスシステムを示す。 完全に構成可能なキャッシュを有するグラフィックスシステムを示す。 図2のグラフィックスシッステムにおけるクロスバーを示す。 処理ユニットのためのキャッシュおよび状態機械を示す。 構成可能なキャッシュおよび専用キャッシュを有するグラフィックスシステムを示す。 構成可能なキャッシュを有するグラフィックスシステムを動作させるためのプロセスを示す。 ワイヤレスコミュニケーションシステムにおけるワイヤレスデバイスを示す。
符号の説明
100 グラフィックスシステム
110 グラフィックスプロセッサ
130 キャッシュメモリシステム
170 メインメモリ
200 グラフィックスシステム
210 グラフィックスプロセッサ
230 キャッシュメモリシステム
270 メインメモリ
320 状態機械
232 制御ユニット
240 クロスバー
500 グラフィックスシステム
510 グラフィックスプロセッサ
530 キャッシュメモリシステム
570 メインメモリ
600 プロセス
700 ワイヤレスアンテナ
712 アンテナ
714 レシーバ
716 トランスミッタ
720 デジタルセクション
770 メインメモリ
780 デイスプレイユニット

Claims (25)

  1. 下記を備える装置:
    グラフィックス画像をレンダリングするためのグラフィックス動作を行うように構成された複数の処理ユニット;
    前記複数の処理ユニットのうちの少なくとも1つの処理ユニットに対するデータを記憶するように構成された複数の構成可能なキャッシュ;
    前記複数の処理ユニットによるメモリ利用を確認しかつメモリ利用に基づいて前記複数のキャッシュを前記少なくとも1つの処理ユニットに割り当てるように構成された制御ユニット、なお、前記制御ユニットは、フレームのコヒレンシに基づいて、前記構成可能なキャッシュを処理ユニットに割り当て、コヒレンシは、連続した2D/3Dフレームにおける変化の量に関連し、より高いコヒレンシに対してはより少ないキャッシュが割り当てられ、より低いコヒレンシに対してはより多いキャッシュが割り当てられる;および、
    前記複数のキャッシュを前記少なくとも1つの処理ユニットに結合するように構成されたクロスバー。
  2. 前記複数のキャッシュのそれぞれが前記複数の処理ユニットのうちの任意の1つに割り当て可能である、請求項1の装置。
  3. 前記複数のキャッシュのそれぞれが前記複数の処理ユニットの各部分集合の任意の1つに割り当て可能である、請求項1の装置。
  4. 請求項1記載の装置、ここにおいて、
    前記複数のキャッシュは、1つまたは複数の処理ユニットに割り当てられる1つまたは複数の専用キャッシュおよび残りの処理ユニットに割り当て可能な少なくとも1つの構成可能なキャッシュを備える。
  5. 各構成可能なキャッシュは、前記残りの処理ユニットの各部分集合の任意の1つに割り当て可能である、請求項4の装置。
  6. 前記残りの処理ユニットは、デプステストエンジンおよびテクスチャマッピングエンジンを含む、請求項4の装置。
  7. 請求項記載の装置、ここにおいて、
    前記制御ユニットは、先行するグラフィックス画像に対するメモリ利用に基づいて、レンダリングされるべき各グラフィックス画像に対して前記複数のキャッシュを割り当てるように構成されている。
  8. 請求項記載の装置、ここにおいて、
    前記制御ユニットは、前記処理ユニットによるデータ要求、キャッシュヒット/ミス統計、またはそれらの組み合わせに基づいてメモリ利用を確認するように構成されている。
  9. 請求項記載の装置、ここにおいて、
    前記制御ユニットは、画像のレンダリング時に前記複数の処理ユニットによるメモリ利用の変化を検知しかつメモリ利用の検知された変化に基づいて前記複数のキャッシュを再割り当てするように構成されている。
  10. 更に下記を備える請求項1記載の装置:
    実行されているグラフィックスアプリケーションによるメモリ利用に基づいて前記複数のキャッシュを前記少なくとも1つの処理ユニットに割り当てるように構成された前記制御ユニット。
  11. 請求項1記載の装置、ここにおいて、
    前記クロスバーは、複数のインタフェースユニットを備え、各インタフェースユニットは、関連付けられた処理ユニットを該処理ユニットに割り当てられたキャッシュの組に結合するように構成されている。
  12. 請求項11記載の装置、ここにおいて、
    各インタフェースユニットは、前記関連付けられた処理ユニットにより要求されたデータが該処理ユニットに割り当てられた前記キャッシュの組の任意の1つに記憶されるか否かを判定するように構成された状態機械を備える。
  13. 請求項12記載の装置、ここにおいて、
    各インタフェースユニットに対する前記状態機械は、前記複数のキャッシュからのキャッシュヒット/ミスインジケーターおよび前記関連付けられた処理ユニットに割り当てられた前記キャッシュの組を示す制御を受信する。
  14. 請求項12記載の装置、ここにおいて、
    各インタフェースユニットに対する前記状態機械は、キャッシュミスが生じた場合に、前記関連付けられた処理ユニットに割り当てられた前記キャッシュの組の1つを満たすように構成されている。
  15. 前記複数のキャッシュは、キャッシュの少なくとも2つのレベルを有する階層構造に配列されている、請求項1の装置。
  16. 前記階層構造における少なくとも1つのレベルは構成可能な数のキャッシュを有する、請求項15の装置。
  17. 前記階層構造における少なくとも1つのレベルは、構成可能なキャッシュサイズを有する、請求項15の装置。
  18. 前記複数のキャッシュは、階層構造において構成可能な数のレベルに配列されている、請求項1の装置。
  19. 前記複数のキャッシュは、構成可能なキャッシュサイズを有する、請求項1の装置。
  20. 前記複数のキャッシュに結合されかつ前記複数のキャッシュとメインメモリとの間のデータ交換を容易にするように構成されたアービターをさらに含む、請求項1の装置。
  21. 前記複数の処理ユニットは、デプステストエンジンおよびテクスチャマッピングエンジンを含む、請求項1の装置。
  22. 請求項21記載の装置、ここにおいて、
    前記複数の処理ユニットは、パイプラインに配列されており、かつ前記デプステストエンジンは、前記パイプラインにおいて前記テクスチャマッピングエンジンよりも早期に配置されている。
  23. 下記を備える集積回路:
    グラフィックス画像をレンダリングするためのグラフィックス動作を行うように構成された複数の処理ユニット;
    前記複数の処理ユニットのうちの少なくとも1つの処理ユニットに対するデータを記憶するように構成された複数の構成可能なキャッシュ;
    前記複数の処理ユニットによるメモリ利用を確認しかつメモリ利用に基づいて前記複数のキャッシュを前記少なくとも1つの処理ユニットに割り当てるように構成された制御ユニット、なお、前記制御ユニットは、フレームのコヒレンシに基づいて、前記構成可能なキャッシュを処理ユニットに割り当て、コヒレンシは、連続した2D/3Dフレームにおける変化の量に関連し、より高いコヒレンシに対してはより少ないキャッシュが割り当てられ、より低いコヒレンシに対してはより多いキャッシュが割り当てられる;および、
    前記複数のキャッシュを前記少なくとも1つの処理ユニットに結合するように構成されたクロスバー。
  24. 前記複数のキャッシュのそれぞれが前記複数の処理ユニットの各部分集合の任意の1つに割り当て可能である、請求項23の集積回路。
  25. 更に下記を備える請求項23記載の集積回路:
    前記複数の処理ユニットによるメモリ利用を確認しかつメモリ利用に基づいて前記複数のキャッシュを前記少なくとも1つの処理ユニットに割り当てるように構成された前記制御ユニット。
JP2009507929A 2006-04-26 2007-04-24 構成可能なキャッシュを有するグラフィックスシステム Expired - Fee Related JP4938843B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/412,678 US8766995B2 (en) 2006-04-26 2006-04-26 Graphics system with configurable caches
US11/412,678 2006-04-26
PCT/US2007/067325 WO2007127745A1 (en) 2006-04-26 2007-04-24 Graphics system with configurable caches

Publications (2)

Publication Number Publication Date
JP2009535710A JP2009535710A (ja) 2009-10-01
JP4938843B2 true JP4938843B2 (ja) 2012-05-23

Family

ID=38457539

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009507929A Expired - Fee Related JP4938843B2 (ja) 2006-04-26 2007-04-24 構成可能なキャッシュを有するグラフィックスシステム

Country Status (9)

Country Link
US (1) US8766995B2 (ja)
EP (1) EP2011079B1 (ja)
JP (1) JP4938843B2 (ja)
KR (1) KR101018999B1 (ja)
CN (1) CN101427282B (ja)
BR (1) BRPI0712834A2 (ja)
CA (1) CA2649567C (ja)
RU (1) RU2412469C2 (ja)
WO (1) WO2007127745A1 (ja)

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070268289A1 (en) * 2006-05-16 2007-11-22 Chun Yu Graphics system with dynamic reposition of depth engine
US8884972B2 (en) 2006-05-25 2014-11-11 Qualcomm Incorporated Graphics processor with arithmetic and elementary function units
US8869147B2 (en) 2006-05-31 2014-10-21 Qualcomm Incorporated Multi-threaded processor with deferred thread output control
US8644643B2 (en) * 2006-06-14 2014-02-04 Qualcomm Incorporated Convolution filtering in a graphics processor
US8766996B2 (en) 2006-06-21 2014-07-01 Qualcomm Incorporated Unified virtual addressed register file
KR20080014402A (ko) * 2006-08-11 2008-02-14 삼성전자주식회사 컴퓨터 그래픽스 데이터 처리방법과 데이터 처리장치
JP2008090673A (ja) * 2006-10-03 2008-04-17 Mitsubishi Electric Corp キャッシュメモリ制御装置
US20080133836A1 (en) * 2006-11-30 2008-06-05 Magid Robert M Apparatus, system, and method for a defined multilevel cache
JP4748609B2 (ja) * 2008-06-06 2011-08-17 株式会社アクセル 画像処理システム
US8688911B1 (en) * 2008-11-25 2014-04-01 Marvell Israel (M.I.S.L) Ltd. Transparent processing core and L2 cache connection
US9142057B2 (en) * 2009-09-03 2015-09-22 Advanced Micro Devices, Inc. Processing unit with a plurality of shader engines
US8766988B2 (en) * 2009-10-09 2014-07-01 Nvidia Corporation Providing pipeline state through constant buffers
EP2513860B1 (en) * 2009-12-16 2018-08-01 Intel Corporation A graphics pipeline scheduling architecture utilizing performance counters
US9058675B2 (en) * 2010-05-29 2015-06-16 Intel Corporation Non-volatile storage for graphics hardware
CN102455885A (zh) * 2010-10-19 2012-05-16 李笑非 有外部存取单元的网络显卡
CN103380417B (zh) * 2011-02-18 2016-08-17 英特尔公司(特拉华州公司) 用于从存储器请求所存储的数据的方法及系统
US9734548B2 (en) * 2012-10-26 2017-08-15 Nvidia Corporation Caching of adaptively sized cache tiles in a unified L2 cache with surface compression
US10186070B2 (en) 2012-11-02 2019-01-22 Imagination Technologies Limited On demand geometry and acceleration structure creation
CN103810742B (zh) * 2012-11-05 2018-09-14 正谓有限公司 图像渲染方法和系统
US8736629B1 (en) * 2012-11-21 2014-05-27 Ncomputing Inc. System and method for an efficient display data transfer algorithm over network
CN103247068B (zh) * 2013-04-03 2016-03-30 上海晨思电子科技有限公司 一种渲染方法和装置
KR102079657B1 (ko) * 2013-05-23 2020-02-20 에스케이플래닛 주식회사 캐시 데이터와 현재 데이터의 실시간 처리 현황 및 처리 순위를 보여주기 위한 장치 및 방법
US9507961B2 (en) * 2013-07-01 2016-11-29 Qualcomm Incorporated System and method for providing secure access control to a graphics processing unit
US9224187B2 (en) * 2013-09-27 2015-12-29 Apple Inc. Wavefront order to scan order synchronization
KR102147356B1 (ko) 2013-09-30 2020-08-24 삼성전자 주식회사 캐시 메모리 시스템 및 그 동작방법
KR102101834B1 (ko) 2013-10-08 2020-04-17 삼성전자 주식회사 영상 처리 장치 및 방법
RU2604985C2 (ru) * 2014-11-11 2016-12-20 Федеральное государственное бюджетное образовательное учреждение высшего образования "Воронежский государственный технический университет" (ФГБОУ ВО "ВГТУ", ВГТУ) Способ организации вычислений на графических процессорах для моделирования помехоустойчивости низкоплотностных кодеков
KR102258100B1 (ko) * 2014-11-18 2021-05-28 삼성전자주식회사 텍스쳐 처리 방법 및 장치
US10558460B2 (en) 2016-12-14 2020-02-11 Qualcomm Incorporated General purpose register allocation in streaming processor
US10726519B2 (en) * 2017-09-25 2020-07-28 Arm Limited Cache arrangement for graphics processing systems
US11205243B2 (en) 2020-01-14 2021-12-21 Arm Limited Data processing systems
US11625332B2 (en) 2020-01-14 2023-04-11 Arm Limited Cache miss handling for read operations in data processing systems
US11789867B2 (en) 2020-01-14 2023-10-17 Arm Limited Cache arrangement for data processing systems
US20230206559A1 (en) * 2021-12-27 2023-06-29 Advanced Micro Devices, Inc. Graphics discard engine

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5794016A (en) * 1995-12-11 1998-08-11 Dynamic Pictures, Inc. Parallel-processor graphics architecture
US20030167379A1 (en) * 2002-03-01 2003-09-04 Soltis Donald Charles Apparatus and methods for interfacing with cache memory
JP2006099422A (ja) * 2004-09-29 2006-04-13 Konica Minolta Medical & Graphic Inc 画像処理装置、およびプログラム

Family Cites Families (128)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR1425811A (fr) * 1964-03-02 1966-01-24 Olivetti & Co Spa Méthode et dispositif pour exécuter des opérations arithmétiques dans une calculatrice électronique
US4079452A (en) * 1976-06-15 1978-03-14 Bunker Ramo Corporation Programmable controller with modular firmware for communication control
NL7807314A (nl) * 1978-07-06 1980-01-08 Philips Nv Inrichting voor het vergroten van de lengte van een logisch computeradres.
US7006881B1 (en) * 1991-12-23 2006-02-28 Steven Hoffberg Media recording device with remote graphic user interface
US6850252B1 (en) * 1999-10-05 2005-02-01 Steven M. Hoffberg Intelligent electronic appliance system and method
US5903454A (en) * 1991-12-23 1999-05-11 Hoffberg; Linda Irene Human-factored interface corporating adaptive pattern recognition based controller apparatus
EP0627682B1 (en) * 1993-06-04 1999-05-26 Sun Microsystems, Inc. Floating-point processor for a high performance three dimensional graphics accelerator
JPH0784851A (ja) 1993-09-13 1995-03-31 Toshiba Corp 共有データ管理方法
JP3579461B2 (ja) * 1993-10-15 2004-10-20 株式会社ルネサステクノロジ データ処理システム及びデータ処理装置
US5509129A (en) * 1993-11-30 1996-04-16 Guttag; Karl M. Long instruction word controlling plural independent processor operations
GB2285524B (en) 1994-01-11 1998-02-04 Advanced Risc Mach Ltd Data memory and processor bus
EP0676691A3 (en) 1994-04-06 1996-12-11 Hewlett Packard Co Device for saving and restoring registers in a digital computer.
US6279099B1 (en) * 1994-04-29 2001-08-21 Sun Microsystems, Inc. Central processing unit with integrated graphics functions
US5694143A (en) 1994-06-02 1997-12-02 Accelerix Limited Single chip frame buffer and graphics accelerator
US5598546A (en) * 1994-08-31 1997-01-28 Exponential Technology, Inc. Dual-architecture super-scalar pipeline
US5777629A (en) * 1995-03-24 1998-07-07 3Dlabs Inc. Ltd. Graphics subsystem with smart direct-memory-access operation
US5798770A (en) 1995-03-24 1998-08-25 3Dlabs Inc. Ltd. Graphics rendering system with reconfigurable pipeline sequence
US5872729A (en) 1995-11-27 1999-02-16 Sun Microsystems, Inc. Accumulation buffer method and apparatus for graphical image processing
US5793385A (en) * 1996-06-12 1998-08-11 Chips And Technologies, Inc. Address translator for a shared memory computing system
WO1998006091A1 (fr) * 1996-08-02 1998-02-12 Matsushita Electric Industrial Co., Ltd. Codec vocal, support sur lequel est enregistre un programme codec vocal, et appareil mobile de telecommunications
US5949920A (en) * 1996-08-13 1999-09-07 Hewlett-Packard Co. Reconfigurable convolver circuit
JP2970553B2 (ja) * 1996-08-30 1999-11-02 日本電気株式会社 マルチスレッド実行方法
TW360823B (en) * 1996-09-30 1999-06-11 Hitachi Ltd Data processor and graphic processor
US6614847B1 (en) * 1996-10-25 2003-09-02 Texas Instruments Incorporated Content-based video compression
US5870579A (en) * 1996-11-18 1999-02-09 Advanced Micro Devices, Inc. Reorder buffer including a circuit for selecting a designated mask corresponding to an instruction that results in an exception
US5913925A (en) * 1996-12-16 1999-06-22 International Business Machines Corporation Method and system for constructing a program including out-of-order threads and processor and method for executing threads out-of-order
US5831640A (en) * 1996-12-20 1998-11-03 Cirrus Logic, Inc. Enhanced texture map data fetching circuit and method
US5991865A (en) * 1996-12-31 1999-11-23 Compaq Computer Corporation MPEG motion compensation using operand routing and performing add and divide in a single instruction
US6697063B1 (en) * 1997-01-03 2004-02-24 Nvidia U.S. Investment Company Rendering pipeline
US6549209B1 (en) * 1997-05-22 2003-04-15 Kabushiki Kaisha Sega Enterprises Image processing device and image processing method
US5958041A (en) * 1997-06-26 1999-09-28 Sun Microsystems, Inc. Latency prediction in a pipelined microarchitecture
US6195734B1 (en) * 1997-07-02 2001-02-27 Micron Technology, Inc. System for implementing a graphic address remapping table as a virtual register file in system memory
EP0917056B1 (en) 1997-11-04 2008-01-09 Compaq Computer Corporation A multi-processor computer system and a method of operating thereof
US6654428B1 (en) * 1998-01-13 2003-11-25 Massachusetts Institute Of Technology Systems and methods for wireless communications
US6092175A (en) * 1998-04-02 2000-07-18 University Of Washington Shared register storage mechanisms for multithreaded computer systems with out-of-order execution
US6188411B1 (en) * 1998-07-02 2001-02-13 Neomagic Corp. Closed-loop reading of index registers using wide read and narrow write for multi-threaded system
US7068272B1 (en) * 2000-05-31 2006-06-27 Nvidia Corporation System, method and article of manufacture for Z-value and stencil culling prior to rendering in a computer graphics processing pipeline
JP3869947B2 (ja) * 1998-08-04 2007-01-17 株式会社日立製作所 並列処理プロセッサ、および、並列処理方法
JP3279260B2 (ja) 1998-08-07 2002-04-30 日本電気株式会社 3次元グラフィックス描画装置
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
US6693719B1 (en) * 1998-09-16 2004-02-17 Texas Instruments Incorporated Path to trapezoid decomposition of polygons for printing files in a page description language
US6163839A (en) * 1998-09-30 2000-12-19 Intel Corporation Non-stalling circular counterflow pipeline processor with reorder buffer
GB2343601B (en) 1998-11-06 2002-11-27 Videologic Ltd Shading and texturing 3-dimensional computer generated images
US7088865B2 (en) 1998-11-20 2006-08-08 Nikon Corporation Image processing apparatus having image selection function, and recording medium having image selection function program
US6219769B1 (en) * 1998-12-09 2001-04-17 Advanced Micro Devices, Inc. Method and system for origin-sensitive memory control and access in data processing systems
US7904187B2 (en) * 1999-02-01 2011-03-08 Hoffberg Steven M Internet appliance system and method
US6480941B1 (en) 1999-02-23 2002-11-12 International Business Machines Corporation Secure partitioning of shared memory based multiprocessor system
CA2368136A1 (en) * 1999-03-18 2000-09-21 British Broadcasting Corporation Watermarking
US6493741B1 (en) 1999-10-01 2002-12-10 Compaq Information Technologies Group, L.P. Method and apparatus to quiesce a portion of a simultaneous multithreaded central processing unit
US6964009B2 (en) * 1999-10-21 2005-11-08 Automated Media Processing Solutions, Inc. Automated media delivery system
US6792575B1 (en) * 1999-10-21 2004-09-14 Equilibrium Technologies Automated processing and delivery of media to web servers
US6577762B1 (en) * 1999-10-26 2003-06-10 Xerox Corporation Background surface thresholding
US6574725B1 (en) * 1999-11-01 2003-06-03 Advanced Micro Devices, Inc. Method and mechanism for speculatively executing threads of instructions
US6417851B1 (en) * 1999-12-06 2002-07-09 Nvidia Corporation Method and apparatus for lighting module in a graphics processor
JP3485052B2 (ja) * 1999-12-16 2004-01-13 日本電気株式会社 参照画像作成方法、パターン検査装置及び参照画像作成プログラムを記録した記録媒体
US6516443B1 (en) * 2000-02-08 2003-02-04 Cirrus Logic, Incorporated Error detection convolution code and post processor for correcting dominant error events of a trellis sequence detector in a sampled amplitude read channel for disk storage systems
JP2001222712A (ja) 2000-02-08 2001-08-17 Sega Corp 画像処理装置、畳み込み積分回路及びその方法
US6807620B1 (en) * 2000-02-11 2004-10-19 Sony Computer Entertainment Inc. Game system with graphics processor
JP2001236221A (ja) 2000-02-21 2001-08-31 Keisuke Shindo マルチスレッドを利用するパイプライン並列プロセッサ
US6738510B2 (en) 2000-02-22 2004-05-18 Olympus Optical Co., Ltd. Image processing apparatus
US6940545B1 (en) * 2000-02-28 2005-09-06 Eastman Kodak Company Face detecting camera and method
US6988008B2 (en) 2000-03-10 2006-01-17 Adept Technology, Inc. Smart camera
US6891533B1 (en) 2000-04-11 2005-05-10 Hewlett-Packard Development Company, L.P. Compositing separately-generated three-dimensional images
US6952440B1 (en) * 2000-04-18 2005-10-04 Sirf Technology, Inc. Signal detector employing a Doppler phase correction system
WO2002015000A2 (en) 2000-08-16 2002-02-21 Sun Microsystems, Inc. General purpose processor with graphics/media support
US6636214B1 (en) 2000-08-23 2003-10-21 Nintendo Co., Ltd. Method and apparatus for dynamically reconfiguring the order of hidden surface processing based on rendering mode
US7034828B1 (en) 2000-08-23 2006-04-25 Nintendo Co., Ltd. Recirculating shade tree blender for a graphics system
JP3580789B2 (ja) 2000-10-10 2004-10-27 株式会社ソニー・コンピュータエンタテインメント データ通信システム及び方法、コンピュータプログラム、記録媒体
GB2369016B (en) * 2000-11-09 2004-06-09 Sony Uk Ltd Receiver
US6907520B2 (en) * 2001-01-11 2005-06-14 Sun Microsystems, Inc. Threshold-based load address prediction and new thread identification in a multithreaded microprocessor
US6950927B1 (en) * 2001-04-13 2005-09-27 The United States Of America As Represented By The Secretary Of The Navy System and method for instruction-level parallelism in a programmable multiple network processor environment
US6515443B2 (en) 2001-05-21 2003-02-04 Agere Systems Inc. Programmable pulse width modulated waveform generator for a spindle motor controller
US20040172631A1 (en) * 2001-06-20 2004-09-02 Howard James E Concurrent-multitasking processor
US6744433B1 (en) * 2001-08-31 2004-06-01 Nvidia Corporation System and method for using and collecting information from a plurality of depth layers
US8342935B1 (en) 2001-09-28 2013-01-01 Bally Gaming, Inc. Integrated display and input system
US6999076B2 (en) * 2001-10-29 2006-02-14 Ati Technologies, Inc. System, method, and apparatus for early culling
US6871264B2 (en) * 2002-03-06 2005-03-22 Hewlett-Packard Development Company, L.P. System and method for dynamic processor core and cache partitioning on large-scale multithreaded, multiprocessor integrated circuits
KR100959470B1 (ko) * 2002-03-22 2010-05-25 마이클 에프. 디어링 확장가능한 고성능 3d 그래픽
US6825843B2 (en) * 2002-07-18 2004-11-30 Nvidia Corporation Method and apparatus for loop and branch instructions in a programmable graphics pipeline
US6931489B2 (en) * 2002-08-12 2005-08-16 Hewlett-Packard Development Company, L.P. Apparatus and methods for sharing cache among processors
US7633506B1 (en) 2002-11-27 2009-12-15 Ati Technologies Ulc Parallel pipeline graphics system
US7268785B1 (en) * 2002-12-19 2007-09-11 Nvidia Corporation System and method for interfacing graphics program modules
US7268779B2 (en) 2002-12-24 2007-09-11 Intel Corporation Z-buffering techniques for graphics rendering
KR100510131B1 (ko) * 2003-01-29 2005-08-26 삼성전자주식회사 픽셀 캐쉬 및 이를 이용한 3차원 그래픽 가속 장치 및 방법
US7146486B1 (en) 2003-01-29 2006-12-05 S3 Graphics Co., Ltd. SIMD processor with scalar arithmetic logic units
US7145565B2 (en) * 2003-02-27 2006-12-05 Nvidia Corporation Depth bounds testing
US7612803B2 (en) 2003-06-10 2009-11-03 Zoran Corporation Digital camera with reduced image buffer memory and minimal processing for recycling through a service center
US7372484B2 (en) * 2003-06-26 2008-05-13 Micron Technology, Inc. Method and apparatus for reducing effects of dark current and defective pixels in an imaging device
US7088371B2 (en) * 2003-06-27 2006-08-08 Intel Corporation Memory command handler for use in an image signal processor having a data driven architecture
US7015913B1 (en) * 2003-06-27 2006-03-21 Nvidia Corporation Method and apparatus for multithreaded processing of data in a programmable graphics processor
US7239322B2 (en) * 2003-09-29 2007-07-03 Ati Technologies Inc Multi-thread graphic processing system
US7702817B2 (en) * 2003-10-28 2010-04-20 Microsoft Corporation Wireless network access technologies for retrieving a virtual resource via a plurality of wireless network interfaces
GB2409061B (en) * 2003-12-09 2006-09-13 Advanced Risc Mach Ltd Table lookup operation within a data processing system
US7015914B1 (en) * 2003-12-10 2006-03-21 Nvidia Corporation Multiple data buffers for processing graphics data
US7027062B2 (en) * 2004-02-27 2006-04-11 Nvidia Corporation Register based queuing for texture requests
US20050195198A1 (en) * 2004-03-03 2005-09-08 Anderson Michael H. Graphics pipeline and method having early depth detection
US7030878B2 (en) * 2004-03-19 2006-04-18 Via Technologies, Inc. Method and apparatus for generating a shadow effect using shadow volumes
US7196708B2 (en) * 2004-03-31 2007-03-27 Sony Corporation Parallel vector processing
US7873776B2 (en) * 2004-06-30 2011-01-18 Oracle America, Inc. Multiple-core processor with support for multiple virtual processors
US7330988B2 (en) * 2004-06-30 2008-02-12 Sun Microsystems, Inc. Method and apparatus for power throttling in a multi-thread processor
US7339592B2 (en) * 2004-07-13 2008-03-04 Nvidia Corporation Simulating multiported memories using lower port count memories
US7355603B2 (en) * 2004-08-04 2008-04-08 Nvidia Corporation Filtering unit for floating-point texture data
US7538765B2 (en) * 2004-08-10 2009-05-26 Ati International Srl Method and apparatus for generating hierarchical depth culling characteristics
US6972769B1 (en) 2004-09-02 2005-12-06 Nvidia Corporation Vertex texture cache returning hits out of order
US7388588B2 (en) * 2004-09-09 2008-06-17 International Business Machines Corporation Programmable graphics processing engine
US7576737B2 (en) 2004-09-24 2009-08-18 Konica Minolta Medical & Graphic, Inc. Image processing device and program
US7684079B2 (en) * 2004-12-02 2010-03-23 Canon Kabushiki Kaisha Image forming apparatus and its control method
US20060136919A1 (en) * 2004-12-17 2006-06-22 Sun Microsystems, Inc. System and method for controlling thread suspension in a multithreaded processor
US7358502B1 (en) 2005-05-06 2008-04-15 David Appleby Devices, systems, and methods for imaging
US20070030280A1 (en) * 2005-08-08 2007-02-08 Via Technologies, Inc. Global spreader and method for a parallel graphics processor
US7557832B2 (en) 2005-08-12 2009-07-07 Volker Lindenstruth Method and apparatus for electronically stabilizing digital images
US7508396B2 (en) * 2005-09-28 2009-03-24 Silicon Integrated Systems Corp. Register-collecting mechanism, method for performing the same and pixel processing system employing the same
US7447873B1 (en) 2005-11-29 2008-11-04 Nvidia Corporation Multithreaded SIMD parallel processor with loading of groups of threads
JP4920966B2 (ja) 2005-12-21 2012-04-18 キヤノン株式会社 画像形成装置
CN101359284B (zh) * 2006-02-06 2011-05-11 威盛电子股份有限公司 处理数个不同数据格式的乘法累加单元及其方法
US8860721B2 (en) * 2006-03-28 2014-10-14 Ati Technologies Ulc Method and apparatus for processing pixel depth information
US8933933B2 (en) 2006-05-08 2015-01-13 Nvidia Corporation Optimizing a graphics rendering pipeline using early Z-mode
US20070268289A1 (en) 2006-05-16 2007-11-22 Chun Yu Graphics system with dynamic reposition of depth engine
US8884972B2 (en) 2006-05-25 2014-11-11 Qualcomm Incorporated Graphics processor with arithmetic and elementary function units
US8869147B2 (en) 2006-05-31 2014-10-21 Qualcomm Incorporated Multi-threaded processor with deferred thread output control
US8644643B2 (en) 2006-06-14 2014-02-04 Qualcomm Incorporated Convolution filtering in a graphics processor
US8766996B2 (en) 2006-06-21 2014-07-01 Qualcomm Incorporated Unified virtual addressed register file
JP4675854B2 (ja) * 2006-07-25 2011-04-27 株式会社東芝 パターン評価方法と評価装置及びパターン評価プログラム
US8345053B2 (en) * 2006-09-21 2013-01-01 Qualcomm Incorporated Graphics processors with parallel scheduling and execution of threads
JP2008219523A (ja) * 2007-03-05 2008-09-18 Canon Inc 撮像装置及びその制御方法
US7683962B2 (en) * 2007-03-09 2010-03-23 Eastman Kodak Company Camera using multiple lenses and image sensors in a rangefinder configuration to provide a range map
WO2009079094A1 (en) 2007-12-14 2009-06-25 Lsi Corporation Systems and methods for fly-height control using servo address mark data
US8014099B2 (en) * 2007-12-14 2011-09-06 Lsi Corporation Systems and methods for using an on-the-fly CBD estimate to adjust fly-height

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5794016A (en) * 1995-12-11 1998-08-11 Dynamic Pictures, Inc. Parallel-processor graphics architecture
US20030167379A1 (en) * 2002-03-01 2003-09-04 Soltis Donald Charles Apparatus and methods for interfacing with cache memory
JP2006099422A (ja) * 2004-09-29 2006-04-13 Konica Minolta Medical & Graphic Inc 画像処理装置、およびプログラム

Also Published As

Publication number Publication date
EP2011079A1 (en) 2009-01-07
EP2011079B1 (en) 2019-02-13
US20070252843A1 (en) 2007-11-01
KR101018999B1 (ko) 2011-03-04
KR20090026124A (ko) 2009-03-11
CN101427282A (zh) 2009-05-06
RU2008146519A (ru) 2010-06-10
US8766995B2 (en) 2014-07-01
WO2007127745A1 (en) 2007-11-08
CA2649567C (en) 2012-01-17
CA2649567A1 (en) 2007-11-08
JP2009535710A (ja) 2009-10-01
CN101427282B (zh) 2013-02-13
RU2412469C2 (ru) 2011-02-20
BRPI0712834A2 (pt) 2012-07-24

Similar Documents

Publication Publication Date Title
JP4938843B2 (ja) 構成可能なキャッシュを有するグラフィックスシステム
US9214007B2 (en) Graphics processor having unified cache system
US11107176B2 (en) Scheduling cache traffic in a tile-based architecture
JP5296169B2 (ja) タイル化されたプリフェッチ及びキャッシングされたデプスバッファ
McCormack et al. Neon: a single-chip 3d workstation graphics accelerator
CN105556487B (zh) 对页驻留的条件性页错误控制
US8692829B2 (en) Calculation of plane equations after determination of Z-buffer visibility
US20070139421A1 (en) Methods and systems for performance monitoring in a graphics processing unit
US20050219253A1 (en) Render-cache controller for multithreading, multi-core graphics processor
US10055883B2 (en) Frustum tests for sub-pixel shadows
US6795078B2 (en) Parallel read with source-clear operation
US11593265B2 (en) Cache arrangement for graphics processing systems
US6741256B2 (en) Predictive optimizer for DRAM memory
US7027064B2 (en) Active block write-back from SRAM cache to DRAM
US20020171655A1 (en) Dirty tag bits for 3D-RAM SRAM
KR20060116916A (ko) 텍스쳐 캐쉬 및 이를 구비한 3차원 그래픽 시스템, 그리고그것의 제어 방법
US6778179B2 (en) External dirty tag bits for 3D-RAM SRAM
CN112734897A (zh) 一种图元光栅化触发的图形处理器深度数据预取方法
US11321241B2 (en) Techniques to improve translation lookaside buffer reach by leveraging idle resources
US7996622B1 (en) Detecting unused cache lines
WO2023094829A1 (en) Cache arrangements in data processing systems
GB2598226A (en) Cache arrangement for graphics processing system
Park et al. A pixel pipeline architecture with selective z-test scheme for 3D graphics processors

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110222

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110520

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110527

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110613

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110726

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20111024

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20111031

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20111128

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20111205

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111226

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

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

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

Free format text: PAYMENT UNTIL: 20150302

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4938843

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

LAPS Cancellation because of no payment of annual fees