JP4110239B2 - 増強テクスチャマップデータフェッチング回路および方法 - Google Patents
増強テクスチャマップデータフェッチング回路および方法 Download PDFInfo
- Publication number
- JP4110239B2 JP4110239B2 JP52908498A JP52908498A JP4110239B2 JP 4110239 B2 JP4110239 B2 JP 4110239B2 JP 52908498 A JP52908498 A JP 52908498A JP 52908498 A JP52908498 A JP 52908498A JP 4110239 B2 JP4110239 B2 JP 4110239B2
- Authority
- JP
- Japan
- Prior art keywords
- texture map
- address
- cache
- memory
- texture
- 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 - Lifetime
Links
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/0875—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/04—Texture mapping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/10—Geometric effects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Graphics (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Image Generation (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
本発明は、コンピュータ制御グラフィックディスプレイシステムの分野に関する。具体的には、本発明は、テクスチャマップデータ取出サブシステムにおけるデータスループットの増強のためのシステムおよび方法に関する。
発明の背景
典型的に、コンピュータ制御グラフィックディスプレイシステムは、グラフィック命令を高速で処理するための専用回路およびコード化された手順を含むグラフィックハードウェアユニット(例えば、「グラフィックカード」)に対して、データおよび制御信号を提供する。グラフィック命令は、典型的にはコンピュータメモリ内の「ディスプレイリスト」に格納される。命令は、いくつかのグラフィック要素およびグラフィックコマンドの表現を規定する。グラフィック要素は、例えば、個別の点、線、ポリゴン、充填体、BIT BLT(ビットブロックトランスファー)、テクスチャ、などである。グラフィック要素の集合は、3次元空間で表されるオブジェクトを、ディスプレイスクリーン上において2次元画像で表現するために用いられ得る。表現は、上記グラフィック要素およびグラフィック命令のラスタコード化データへの翻訳を含み、次いで、翻訳されたものは、ディスプレイスクリーン上での表示(「リフレッシュ」)のためにフレームバッファメモリ内にロードされる。
いくつかのポリゴングラフィック要素は、ポリゴン内で表示される、グラフィック画像を表すテクスチャデータの仕様を含む。テクスチャマッピングは、2次元ディスプレイスクリーン上に表示されるポリゴンの領域または表面に、表面詳細を追加する技術を称する。元のグラフィックオブジェクトは3次元であるので、テクスチャマッピングは、しばしば、要素に追加される表面詳細に対する特定の見込み属性の維持を伴う。メモリ内に格納され、典型的なテクスチャマップは、テクスチャ座標空間(u,v)に存在する点要素(「テクセル(texel)」)を含む。テクスチャ画像は、コンピュータメモリにおいて、ビットマップまたは他のラスタ型コード化フォーマットとして表される。更に、ディスプレイスクリーンは、表示座標空間(x,y)に存在する点要素(画素)を含む。
一般的に、テクスチャマッピングのプロセスは、表面詳細(例えば、画像)を格納するメモリユニットからのコード化された表面詳細点または「テクセル」へのアクセス、およびその表面詳細テクセルの、テクスチャマップされるグラフィック要素の所定の点への転送によって、発生する。テクスチャマップデータの個別のテクセルはメモリから読み出され、関連するポリゴンの位置および見込みによって、特定の形においてそのポリゴン内で適用される。したがって、(x,y)表示座標空間についての画素の色値は、テクスチャマップ値のサンプルに基づいて決定される。テクスチャマッピングのプロセスは、(u,v)テクスチャマップにおけるテクセルの色または視覚的属性を、ディスプレイスクリーンにおけるグラフィック要素の、対応する画素に対して適用することにより動作する。テクスチャマッピングの後、テクスチャ画像の型はグラフィック要素の表面上に見られ、適切な見込みがある場合、その見込みと共に見られる。
しかし、テクスチャマッピングのプロセスでは、グラフィックディスプレイシステムのメモリ容量に対する需要が大きい。なぜなら、典型的なディスプレイスクリーンアップデート周期の間に、多くのテクスチャマップがメモリからアクセスされるからである。スクリーンアップデート周期の周波数は速いので、スクリーンの個別のポリゴンは非常に速い周波数でアクセスされ、アップデートされる必要があり、それは、大きいデータスループット容量を必要とすることになる。上述のメモリ需要の観点から、高パフォーマンスグラフィックハードウェアユニットは、典型的には、テクスチャマップされたデータの高速での格納および取出のための、低アクセス時間キャッシュメモリユニットおよびキャッシュメモリコントローラユニットを含む。テクスチャキャッシュにより、テクスチャマップされたポリゴンがグラフィックユニットを介して処理される場合、そのポリゴン用のテクスチャマップがテクスチャキャッシュ内に格納されているかどうかのアドレスチェックが、グラフィックコントローラによって行われる。要求されるメモリアドレスがテクスチャキャッシュ内に存在しない場合、従来技術のシステムにおけるキャッシュコントローラユニットは停止するが、所望のテクスチャデータは外部メモリから獲得される。通常、キャッシュコントローラユニットが外部メモリに要求を出してから、その外部メモリから実際にテクスチャデータがフェッチされるまで、長い待ち時間(停止)がある。
停止している間グラフィックユニットの特定の部分は、キャッシュコントローラが、キャッシュデータの最も古い時期に用いられた(LRU)組を外部源から新たにフェッチされたデータと置き換えることを待つ。その間、グラフィックユニットの多くの部分は有益な作業を行うことを一時的に妨げられる。それは、それらの部分のデータが停止したためか(例えば、要求されたテクセルが存在しないためにテクスチャエンジンが停止したため)、またはそれらの部分からデータを受け取るユニットが使用中であり、データを受けつけないかのいずれかの理由からである。これまで以上に上昇しているグラフィックデータスループットへの強い要求(例えば、リアルタイムオーディオ/ビデオマルチメディアアプリケーション)の観点から、上述の待ち状態は、高パフォーマンスグラフィックディスプレイシステムにおける欠点である。
したがって、本発明は、コンピュータ制御グラフィックディスプレイシステムにおける、テクスチャマップデータの効率的な取出を提供するシステムおよび方法を提供する。更に、本発明は上述のようなシステムを提供し、そのシステムでは、テクスチャキャッシュミスに関連するテクスチャデータのフェッチを待つ間、テクスチャデータの有益な処理を行い得るテクスチャデータキャッシュコントローラユニットを提供する。上述に特に記載されていない、これらおよび他の利点は、以下の本発明についての考察から明らかになる
【図面の簡単な説明】
図1は、本発明による、コンピュータ制御グラフィックディスプレイシステムのブロック図である。
図2は、本発明による、コンピュータ制御グラフィックディスプレイシステムの3Dグラフィックサブユニットを示すブロック図である。
図3は、本発明による、グラフィックユニットのテクスチャマップデータアクセス(TDA)回路のブロック図である。
図4Aおよび図4Bは、本発明のテクスチャマップアドレス(TMA)FIFOメモリユニットのトップエントリに位置づけられる、テクスチャマップデータ要求ミスアドレスおよびテクスチャマップデータ要求ヒットアドレスを示す。
図5Aおよび図5Bは、図4Aおよび図4BのFIFO構成の後にテクスチャマップアドレスFIFOメモリユニットのトップエントリに位置づけられる、テクスチャマップデータ要求ヒットアドレスを示す。
図6Aは、本発明のキャッシュコントローラによって第(n+1)番目の未処理ミスアドレスが受け取られる、第1のテクスチャエンジン停止状態を示す。
図6Bは、ミスアドレスがテクスチャマップアドレスFIFOメモリユニットの最終エントリに及ぶが、キャッシュコントローラが依然データフェッチ動作を終了していないという、第2のテクスチャエンジン停止状態を示す。
図7Aは、フェッチされたテクスチャデータが、テクスチャマップアドレスFIFOメモリユニットにおける最も古いアドレスであるミスアドレス用に供給される、テクスチャマップアドレスFIFOメモリユニットのFIFO構成の図である。
図7Bは、第(n+1)番目のミスアドレスが同時にテクスチャマップアドレスFIFOメモリユニット内に入る、図7Aに示されるテクスチャマップアドレスFIFOメモリユニットのFIFO構成の図である。
図7C、図7D、図7E、および図7Fは、テクスチャマップアドレスFIFOメモリユニットの上部エントリに格納されるミスアドレス用のデータフェッチ動作の処理と同時に供給されるそれぞれ第1、第2、第3および第4のヒットアドレス用に、メモリキャッシュ内に格納されるテクスチャデータを示す。
図7Gは、図7B〜7Fにおける、ミスアドレス用のデータフェッチ動作の処理の間において、引き続き受け取られたヒットアドレスがテクスチャマップアドレスFIFOメモリユニット上部に位置づけられる状態を示す。
図8は、テクスチャデータヒットおよびミスアドレスをテクスチャマップアドレスFIFOメモリユニット上に位置づける、本発明の動作のフローチャート内におけるステップを示す。
図9は、テクスチャデータヒットおよびミスアドレスをテクスチャマップアドレスFIFOメモリユニットから除去する、本発明の動作のフローチャート内におけるステップを示す。
発明の要旨
コンピュータ制御されたグラフィックディスプレイシステム内のテクスチャマップデータ要求の処理効率を向上するための回路および方法を説明する。3Dグラフィックディスプレイサブユニットはグラフィックディスプレイシステム内に含まれ、このサブユニットはポリゴンエンジン、テクスチャマップエンジンおよび画素パイプラインを含む。テクスチャマップエンジンは、(u,v)座標空間内に格納された使用中のテクスチャマップを含むためのコンピュータ読み出し可能キャッシュメモリを備えたキャッシュコントローラを有するテクスチャマップデータアクセス(TDA)回路を含む。キャッシュコントローラは、n個のキャッシュミス動作を同時に処理するだけに制限される。ある実施形態において、nは1である。TDA回路はまた、キャッシュメモリユニット内でヒットまたはミスするテクスチャデータ要求に関連するテクスチャマップアドレスを格納するためのテクスチャマップアドレスFIFOメモリユニットも含む。キャッシュコントローラはミスをn個まで処理するので、(n+1)番目の未処理テクスチャ要求ミスに遭遇した場合に、テクスチャエンジンは停止する。従って、TMA FIFOは、任意の時間において最大n個のミスアドレスを含む。1つのミスに遭遇したがTMA FIFOが未処理ヒットアドレスを含む場合、処理効率は向上する。この時、ミスしたアドレスについてのテクスチャデータをフェッチするキャッシュコントローラで同時に、(1)以前に遭遇し、格納したヒットアドレスについて、キャッシュメモリからのデータを供給すること、および(2)新たなヒットアドレスをTMA FIFO内に受け取ることにより、テクスチャエンジンの停止を効率的に回避することを有利に行い得る。これは、テクスチャミス上のヒットアドレスを処理せずに、テクスチャエンジンを停止させる従来技術のシステムとは全く異なるものである。
具体的には、本発明の実施形態は、命令および処理データを実行するためのホストプロセッサ、ホストプロセッサに結合されたバス、グラフィックイメージを表示するためのディスプレイスクリーン、およびテクスチャマップデータを取り出すための回路を含む。回路は、グラフィック要素(graphic primitive)のテクスチャマッピング動作に使用されるテクスチャマップデータを含むためのメインメモリ(またはローカルフレームバッファ)と、メインメモリ(またはローカルフレームバッファメモリ)のテクスチャマップデータのアクセス中のサブテクスチャマップデータを含むためのテクスチャマップキャッシュメモリと、キャッシュメモリのコンテンツについて、受け取られたテクスチャマップアドレスがヒットアドレスあるいはミスアドレスのいずれなのかを判定するためのキャッシュコントローラ回路に結合されたキャッシュルックアップ回路と、複数の受け取られたテクスチャマップアドレスを格納するためのキャッシュルックアップ回路に結合されたFIFOメモリと、メインメモリ、FIFOメモリ、およびテクスチャマップキャッシュメモリに結合されたキャッシュコントローラ回路とを含み、キャッシュコントローラ回路は(1)フェッチインターバルの間に、テクスチャマップキャッシュメモリ内への格納のためにメインメモリから第1のテクスチャマップデータをフェッチし、第1のテクスチャマップデータはFIFOメモリの第1の位置に格納されたテクスチャマップミスアドレスに対応し、更にキャッシュコントローラ回路は(2)フェッチインターバル内で、テクスチャマップキャッシュメモリ内に格納された第2のテクスチャマップデータを提供し、第2のテクスチャマップデータはFIFOメモリの第2の位置に格納された第1のテクスチャマップヒットアドレスに対応し、第1のテクスチャマップヒットアドレスはテクスチャマップミスアドレスの前にFIFOメモリによって受け取られる。
本発明の実施形態は上記を含み、キャッシュコントローラはまた、フェッチインターバルの間に、テクスチャマップキャッシュメモリ内に格納された第3のテクスチャマップデータを提供し、第3のテクスチャマップデータはFIFOメモリの第3の位置に格納された第2のテクスチャマップヒットアドレスに対応し、第2のテクスチャマップヒットアドレスはテクスチャマップミスアドレスの前にFIFOメモリによって受け取られ、FIFOメモリはまたフェッチインターバルの間にテクスチャマップヒットアドレスを受け取って、格納する。
好適な実施形態の説明
本発明、つまりテクスチャデータキャッシュメモリに関連して使用される効率的なテクスチャデータ取り出し方法の以下の詳細な説明において、本発明の完全な理解を提供するために複数の特定的な詳細を説明する。しかし、本発明はこれらの特定的な詳細なしで実施し得ること、または異なるエレメントまたはプロセスを用いることによって実施し得ることが、当業者には明らかになる。他の例において、周知のプロセス、手順、構成要素、および回路は、本発明の必ずしも明瞭にする必要のない局面については、詳細には説明されていない。
表記法および用語法
以下の詳細な説明のいくつかの部分は、手順、論理ブロック、処理、およびコンピュータメモリ内のデータビット上の動作の他の記号表記に関して提示される。これらの説明および表記は、データ処理業界の当業者によって他の当業者に作業の内容を最も効果的に伝えるために使用される手段である。手順、論理ブロック、プロセス等は、本明細書中では、通常、所望の結果が得られる自己矛盾のないステップまたは命令のシーケンスと考えられる。ステップは、物理的な量の物理的な操作を要求するステップである。通常、必ずしもそうではないが、これらの物理的な操作は、コンピュータシステム内で格納、転送、結合、比較および他の操作が可能である電気信号または磁気信号の形態をとる。本明細書中において、本発明を参照して、これらの信号はビット、値、エレメント、記号、文字、語句または数等として参照される。
しかし、これら全ての語句が、物理的な操作および物理的な量を参照して解釈されるべきものであり、単に便利なラベルに過ぎず、更に当業界で通常使用される語句を鑑みて解釈されるべきものであることに留意されたい。特定的に述べない限りは以下の説明から明らかなように、本発明全体を通しての説明、つまり、「処理」、「演算」、「計算」、「判定」または「表示」等の語句を利用した説明が、コンピュータシステムまたはデータを操作し且つ変換する同様の電子演算装置の働きおよびプロセスを指す。データは、コンピュータシステムのレジスタおよびメモリ内の物理的な(電子的な)量として示され、コンピュータシステムメモリ、コンピュータシステムレジスタ、もしくは、他の情報格納装置、情報転送装置または情報表示装置内に同様に物理的な量として示された他のデータへと転換される。
コンピュータ制御されたグラフィックディスプレイシステム
図1に、本発明に従って使用されるコンピュータ制御されたグラフィックディスプレイシステム112のブロック図を示す。通常、本発明の実施形態によって使用されるホストコンピュータシステム112は、情報を通信するためのバス100と、情報および命令を処理するためのバス100と結合した1つ以上のホストプロセッサ101、ホストプロセッサ101についての情報および命令を格納するためのバス100に結合されたコンピュータ読み出し可能揮発性メモリユニット102(例えばランダムアクセスメモリユニット)と、ホストプロセッサ101についてのスタティック情報および命令を格納するためのバス100と結合したコンピュータ読み出し可能不揮発性メモリユニット103(例えば読み出し専用メモリユニット)と、情報および命令を格納するためのバス100と結合された磁気ディスクまたは光ディスクならびにディスクドライブ(例えばハードドライブまたはフロッピーディスケット)等のコンピュータ読み出し可能データ格納装置104と、コンピュータユーザに情報を表示するためのバス100に結合された表示装置105とを含む。本発明のコンピュータシステム112で利用される表示装置105は、液晶装置、陰極線管、またはユーザが認識できるグラフィックイメージおよび英数字を作成するのに適した他の表示装置であり得る。
ホストコンピュータシステム112は、データおよび制御信号をバス100を介して例えば「グラフィックカード」108等のグラフィックハードウェアユニットまたはシステムに提供する。グラフィックハードウェアシステム108はコンピュータメモリ内に格納された表示リスト内に見られる一連の表示命令を実行するための3Dグラフィックサブユニット109を含む。通常、表示リストは例えば独立した点、線、ポリゴン、フィル(fill)、BIT BLT(ビットブロック転送)、テクスチャ等の複数のグラフィック要素のレンダリングに関する命令を含む。ポリゴン表示命令の多くが、ポリゴン内に表示されるテクスチャデータを含む。テクスチャデータは、システム112のコンピュータ読み出し可能(例えば揮発性)メモリユニット、または、(u,v)座標系内に格納されたラスタ型データの形態の(例えばビットマップされた形態の)ローカルフレームバッファ110内に格納される。テクスチャデータの個々の構成要素(例えば「テクセル」)がメモリから読み出され、関連するポリゴンの配置および視点に依存する特定の様式でポリゴン内に与えられる。関連するテクスチャデータでポリゴンのレンダリングを行う処理は「テクスチャマッピング」と呼ばれる。多くのテクスチャマップがメモリからアクセスされて、表示されたフレームを構築するので、テクスチャマッピングはコンピュータシステム112のメモリ容量に対する大きな需要を必要とする。スクリーンの更新は、素早く実行される必要があるので、ポリゴンは極めて素早く更新される必要があり、更なるテクスチャマップがアクセスされ、極めて早急な様式で与えられ、それによりメモリ需要を増大する。バス100”上方のグラフィックハードウェアシステム108は、データおよび制御信号を、表示装置105上の画像(グラフィックイメージを含む)をレンダリングするために表示装置105をリフレッシュするローカルフレームバッファメモリ110に供給する。グラフィックハードウェアシステム108の構成要素(例えば3Dグラフィックサブユニット109)を以下により詳細に説明する。
図2は、テクスチャエンジン10、ポリゴンエンジン12および画素パイプライン16を含むグラフィックサブユニット109の回路の一部分を示す。テクスチャエンジン10は、バス5上の、レンダリングされる各ポリゴンに対応するポリゴンの頂点データを受け取る。ポリゴンの頂点データは、ポリゴンの各頂点についてのデータポイントを含む。トライアングルポリゴンに関して、3頂点の各々が、自身の位置座標値(x,y,z)と、自身の色値(赤、緑、青)と、自身のテクスチャマップ座標値(u,v)と、自身の視点値(w)と、もし存在するなら、ポリゴンについてのテクスチャマップデータの識別を含む他の要求された値とを含む。テクスチャエンジン10は、ポリゴンについてのテクスチャマップデータの取り出しおよびポリゴンの画素上へのテクスチャデータのテクセルのマッピングに対して管理義務がある。一旦テクスチャエンジン10がトライアングルの各頂点についてのテクスチャマップ座標(u,v)を与えられると、テクスチャキャッシュコントローラ250に進み、トライアングルへの配置のために適合するテクセルにアクセスし得る。このプロセスの間に、テクスチャエンジン10はポリゴンの表面の3次元視野を維持する。テクスチャマップデータ取り出し(TDA)回路200は、本発明に従ってテクスチャマップデータ取り出しプロセスを実行する。テクスチャエンジン10のテクスチャ取り出しシステムはさておき、複数の周知の手順および回路が、視野を維持するため、ならびに、テクスチャエンジン10内で実行されるテクスチャマッピング動作の実行のために使用され得る。テクスチャマップ画素データは、テクスチャエンジン10からバス14a上の画素パイプライン16に供給される。
図2のポリゴンエンジン12は、バス5を介してポリゴンデータを受信し、そしてポリゴン要素の位置、色、および奥行きに関して周知のポリゴンレンダリング機能を実行する。本質的には、ポリゴンエンジンは、ポリゴン頂点データに基づいて、補間を使用してポリゴン要素内の画素の画素位置および色を計算する。ポリゴンエンジン12から得られた画素情報は、バス14bを介して画素パイプラインへ転送される。画素パイプライン16は、テクスチャエンジン10からのテクスチャデータ(テクセル)とポリゴンエンジン12からの画素データとを混合し、合成ポリゴン画像を形成する。合成画像のデータ(画素)は、バス18上をラスタコード化形式で転送され、ラスタコード化フレームバッファ(グラフィックサブユニット109内に存在するが、図2に示されない)に格納され、そして最後にディスプレイスクリーン105(図1)に表示される。上記動作は、各受信されたポリゴン要素に対して個々に行われる。1つの実施例において、画素パイプライン16は、プログラム可能な画像特徴に依存して、約5クロック周期から7クロック周期の呼び出し時間を含む。
本発明のテクスチャマップデータ検索(TDA)回路200
図3は、本発明によるテクスチャマップデータアクセス(TDA)回路200の構成要素を例示する。TDA回路200は、(アドレス形態の)テクスチャマップデータ要求を処理するための効率的な機構を提供し、これによって有用なテクスチャマップデータが、フェッチ間隔中にキャッシュメモリ251からフィルタ260へ供給され得、ここで同時に、他のテクスチャデータがメインメモリ102またはローカルフレームバッファ110(図1)からフェッチされる。この動作は、フェッチ間隔中に、テクスチャエンジンが停止し、そしてフェッチが完了するまで有用なテクスチャマップデータが提供されない従来技術とは異なる。さらに、フェッチ間隔中に、後に受信されるヒットアドレスがTDA回路200によって受信され、これによってアドレスをTDA回路200に供給する回路の停止を防止する。
上述のように、テクスチャエンジン10によって受信されたポリゴンデータは、現在処理中のポリゴンによって使用されたテクスチャマップ(例えば、テクスチャマップのベースアドレス)の指示(例えば、ポインタ)を含む。TDA回路200は、バス205を介して上記参照されたテクスチャマップベースアドレスを受信するアドレス制御ユニット210を含む。テクスチャマップベースアドレス情報はまた、バス207上をアドレス生成器ユニット220へ転送される。アドレス生成器ユニット220は、アドレス制御ユニット210から始まるライン237の制御信号によって制御される。アドレス生成器ユニット220はまた、現在のポリゴン要素に対応するテクスチャ座標(u,v)を受信する。アドレス生成器ユニット220は、(u,v)テクセルアドレスおよび詳細レベル(LOD)情報をポリゴン要素の各対応画素に対して生成する。これらの新しい「受信された」テクスチャマップアドレス(「テクセルアドレス」)は、個々にユニット220からキャッシュルックアップユニット230へ転送される。
多くの異なるテクセルアドレス生成機構が、本発明内において、アドレス生成器ユニット220によって使用され得る。1つの実施態様において、アドレス生成器ユニット220は、要求されたテクセルアドレスを計算するためにu_main、v_main、du_main、du_ortho、dv_main、およびdv_orthoを入力する。この実施態様において、これらの用語は、代理人事件整理番号CRUS-096-050を用いて本発明の譲受人に譲渡された、Vaswaniらの同時係属特許出願第 、出願日 、および題名「Non-Homogenous Second Order Perspective Texture Mapping Coordinates Using Linear Interpolation」において規定される。
図3のキャッシュルックアップユニット230は、制御およびアドレスバス235を使用して、テクスチャマップキャッシュメモリ回路(「キャッシュメモリ」)251の内容を調べ、各受信されたテクスチャマップアドレスがキャッシュメモリ251に格納されたテクスチャマップデータと対応するかどうかを判断する。キャッシュメモリ251は、キャッシュコントローラ回路250内に存在し、そして1つの実施態様において所定の大きさ(例えば、1kバイト)の16ビット完全関連づけ(fully-associated)キャッシュである。1つの実施態様において、キャッシュメモリ251は、16セット(各64バイト)に分割される。受信されたテクスチャマップアドレスは、キャッシュ回路251中に格納されたテクスチャマップデータに対応する場合、それはテクスチャマップヒットアドレス(「ヒットアドレス」)である。受信されたテクスチャマップアドレスは、キャッシュ回路251中に格納されたテクスチャマップデータに対応しない場合、それはテクスチャマップミスアドレス(「ミスアドレス」)である。後者の場合において、フェッチ間隔は、キャッシュコントローラ回路250がキャッシュメモリ251に格納するためのメインメモリ102またはローカルフレームバッファ110からの要求されたテクスチャマップデータをフェッチするように要求される。1つの実施態様において、数個のスクリーンラインからなる部分(例えば、単一のセットサイズに対応する64バイト)を表す1ブロックのテクスチャデータが各フェッチ間隔においてフェッチされる。本発明の1つの実施態様において、フェッチされたテクスチャマップデータは、8×8マトリクスのテクスチャマップデータからそれぞれなる64バイトブロック中(セットに対応する)にフェッチされる。
キャッシュコントローラ250は、テクスチャデータがメインメモリ102(またはローカルフレームバッファ110)からフェッチされそしてキャッシュメモリ251内に格納されるn個の同時フェッチ動作を行う回路を含む。1つの実施態様において、n=1である。n個より多いフェッチ動作が要求される場合、n個のフェッチ動作が完了するまでさらなるフェッチ動作が遅延される。上述の実施態様において、第2のフェッチ動作が要求され、そして待機状態中のフェッチ動作がまだ完了していない場合、第2のフェッチ動作は待機状態中のフェッチ動作の完了まで遅延される。フェッチ動作の間隔は、フェッチ間隔と称される。フェッチ動作は、システム112のバス100と通信的にインターフェースされるバス202を使用して、メインメモリ102またはローカルフレームバッファ110からのバス110”からテクスチャマップデータを受信する。多くの周知の回路および技術が、テクスチャマップデータフェッチ動作を実施するために、本発明の範囲内でキャッシュコントローラ回路250によって使用され得る。
本発明の1つの実施形態において、フェッチ動作と並列に(同時に)、キャッシュコントローラ回路250およびキャッシュメモリ251が、キャッシュメモリ251内に格納され、フェッチ間隔の開始前に受信されたテクスチャマップヒットアドレスに対応するテクスチャマップデータを供給するために使用され得る。
図3の先入れ先出し(FIFO)メモリ回路240は、キャッシュルックアップユニット230からテクスチャマップアドレスを受信し、入力に結合される。FIFOメモリ240(TMA FIFOとも称される)は、ヒットまたはミスアドレスを格納するための多くのエントリ(1)−(m)を含む。FIFOメモリユニット240のボトムエントリ(物理的または論理的)にあるテクスチャマップアドレスは、テクセルがテクスチャキャッシュ251において利用できる場合に、対応するテクスチャマップデータがキャッシュメモリユニット251からフェッチされ、そしてバス253上に供給されるように処理される。キャッシュメモリユニット251は、アドレスおよび制御バス238上のFIFOメモリ240のボトムエントリによって、アドレッシングされる。ボトムエントリアドレスに対応するテクスチャマップデータがキャッシュメモリ251においてまだ利用できない場合、FIFOメモリ240は、データが利用できるまで停止される。対応するテクスチャマップデータがキャッシュメモリ251から供給される場合、ボトムエントリテクスチャマップアドレスは、FIFOメモリ240から取り除かれる。
フィルタユニット260は、キャッシュコントローラ回路250からバス253を介してテクスチャマップデータを受信し、そして線形フィルタ、双線形フィルタ、および三線形フィルタを行うことを含む多くの周知のデータフィルタ動作を行う。次に、フィルタユニット260は、ポリゴンに対するテクスチャマップデータを、外部バス273に結合されたオプションの出力FIFO270へ出力する。バス273は、バス14a(図2)へそして画素パイプライン回路16へ結合される。
本発明のTDA回路200のFIFOメモリ240の動作がここで説明される。図4Aは、FIFOメモリ240が空でそしてミスアドレスがトップエントリ(1)へプッシュされるFIFO構成を例示する。この構成上で、キャッシュコントローラ250は、ミスアドレスに対するテクスチャマップを得るためにフェッチ間隔を開始する。図4Bは、FIFOメモリ240が空でそしてヒットアドレスがトップエントリ(1)へプッシュされるFIFO構成を例示する。
図5Aは、図4AのFIFO構成を例示するが、後に受信されるヒットアドレスが、次にトップエントリ(1)上へプッシュされ、そしてミスアドレスが次にエントリ(2)へコピーされる。この構成において、エントリ(2)のミスアドレスに対するフェッチ間隔は、まだ完了しないことが理解される。図5Aは、多重の後に受信されるヒットアドレスがフェッチ間隔中にFIFOメモリ240上へプッシュされ得ることを例示する。この後に受信されるヒットアドレスは、まだキャッシュメモリユニット251によって処理されないが、FIFOメモリ240中に残る。したがって、本発明は、TDA回路200がフェッチ間隔中に新しいテクスチャマップアドレスを受信することを可能にするという利点があり、したがってフェッチ間隔中にこれらのテクスチャマップアドレスを供給する回路の停止を防止する。図5Bは、図4BのFIFO構成を例示するが、後にフェッチされるヒットアドレスが、次にトップエントリ(1)上へプッシュされ、そして第1のヒットアドレスがFIFO240の外へポップされる。
図6Aおよび図6Bは、FIFOメモリ240停止状態を起こす2つのFIFO構成を例示する。停止中に、FIFOメモリ240およびTDA回路200は、これ以上のテクスチャマップアドレスを受信しない。図6Aは、初期に受信されたミスアドレスがFIFOメモリ240のボトム近くのエントリ(m’)中にあり、多くのヒットアドレスが受信されそしてエントリ(1)から(m’−1)中に格納され、そして次に別のミスアドレス310aが受信される、FIFO停止状態を例示する。エントリ(m’)中のミスアドレスがまだ待機状態中である(例えば、まだフェッチ間隔がオープンである)。n=1である実施態様において、この状態は、キャッシュコントローラ回路250が一度に1つのフェッチ間隔だけを処理するので、FIFO停止を起こす。したがって、FIFOメモリ240は、停止し、そしてエントリ(m’)中のミスアドレスを取り除くまで、新しいテクスチャマップアドレスを受信しない。
図6Bは、待機状態のミスアドレスがFIFOメモリ240のボトムエントリ(m)に到達し、そしてFIFOメモリ240の残りであるエントリ(1)から(m−1)が、ヒットアドレスで満たされる、第2のFIFO停止構成を示す。新しいテクスチャマップアドレスが受信されないが、この構成において、エントリ(m)中のミスアドレスに対応するテクスチャマップデータは、そのフェッチ間隔がまだ完了していないので、まだ利用できない。この構成において、FIFOメモリ240は、エントリ(m)中のミスアドレスに対するテクスチャマップデータが利用できるようになるまで(この時点でこのミスアドレスは、FIFOメモリ240から取り除かれる)、停止する。
図7Aは、FIFOメモリ240の「ボトム」エントリが、実際の最後の物理的エントリ(m)または、最も古いテクスチャマップアドレスを含むエントリとして定義される論理ボトムエントリと見なし得る様子を示している。本発明の一実施形態において、FIFOメモリ240の最後の物理的エントリ(m)は、キャッシュメモリ251にアドレスして対応するテクスチャマップデータを検索するために用いられる。しかし、図7Aに示すように、論理ボトムエントリ(m’)は本発明の別の実施形態においても用いられ得る。図7Aにおいて、ミスアドレスはFIFOメモリ240内の最も古いアドレスとして位置(m’)にあり、その他の後に受け取られたヒットアドレスは、エントリ(l)〜(m’−l)に格納される。このとき、エントリ(m’)におけるミスアドレスのフェッチ期間が完了し、その対応するテクスチャデータをキャッシュメモリ251から供給させる。次にエントリ(m’)におけるミスアドレスはFIFOメモリ240から除去される。
図7B〜図7Gは、本発明のTDA回路200のテクスチャマップデータ検索における効果的な使用法を示す。この使用法において、テクスチャマップデータはフェッチ期間中においてTDA回路200からテクスチャエンジン10に供給される。図7Bは、第1のミスアドレスが待機中であり、(m’)エントリに格納されており、FIFOメモリ240のエントリ(1)から(m’−1)に数個のヒットアドレスが格納されており、その後第2のミスアドレス320aが受け取られた場合のFIFO構成を示す。この時点t=0において、図7Bに示すように第1のミスアドレスのテクスチャマップデータがキャッシュメモリ251中で利用可能になる。
図7Cは、次のクロックサイクルt=1において、第2のミスアドレスがエントリ(1)に格納され、ヒットアドレスが各々下方にシフトされてFIFOメモリ240のエントリ(2)〜(m’)を占めている状態のFIFO構成を示す。またt=1において、キャッシュコントローラ回路250は第2のミスアドレスについてメインメモリ102からテクスチャマップデータを検索するためのフェッチ期間を開始する。このフェッチ期間と同時に、キャッシュコントローラ回路250は、FIFOメモリ240のボトムエントリ(m’)(物理ボトムまたは論理ボトム)に位置するヒットアドレス(アドレス1)を用いて、キャッシュメモリ251にもアクセスする。次にキャッシュコントローラ回路250は、このヒットアドレス1に対応するテクスチャマップデータを、テクスチャフィルタ260に供給する。従って、本発明のTDA回路200は、テクスチャデータフェッチ期間中にテクスチャデータを供給することを可能にするという利点を有する。
図7Dは、次のクロックサイクルt=2において、第2のミスアドレスがエントリ(2)に格納され、以前に受け取られたヒットアドレスが各々下方にシフトされてFIFOメモリ240のエントリ(3)〜(m’)を占めている状態のFIFO構成を示す。また、新しく受け取られたヒットアドレスが、FIFOメモリ240のエントリ(1)中にシフトされる。このように、本発明は、フェッチ期間中において、FIFOメモリ240が新しいヒットアドレスを受け入れることを可能にするという利点を有する。t=2において、t=1で開始されたフェッチ期間はまだ待機中である。この待機中のフェッチ期間と同時に、キャッシュコントローラ回路250は、FIFOメモリ240のボトムエントリ(m’)(物理ボトムまたは論理ボトム)に位置するヒットアドレス(アドレス2)を用いて、キャッシュメモリ251にもアクセスする。次にキャッシュコントローラ250は、このヒットアドレス2に対応するテクスチャマップデータを、テクスチャフィルタ260に供給する。
図7Eは、クロックサイクルt=3において、第2のミスアドレスがエントリ(3)に格納され、以前に受け取られたヒットアドレスが各々下方にシフトされてFIFOメモリ240のエントリ(4)〜(m’)を占めている状態のFIFO構成を示す。t=2において受け取られたヒットアドレスはエントリ(2)中にシフトされ、新しく受け取られたヒットアドレスが、FIFOメモリ240のエントリ(1)中にシフトされる。t=3において、t=1で開始されたフェッチ期間はまだ待機中である。この待機中のフェッチ期間と同時に、キャッシュコントローラ回路250は、FIFOメモリ240のボトムエントリ(m’)(物理ボトムまたは論理ボトム)に位置するヒットアドレス(アドレス3)を用いて、キャッシュメモリ251にもアクセスする。次にキャッシュコントローラ250は、このヒットアドレス3に対応するテクスチャマップデータを、テクスチャフィルタ260に供給する。
図7Fは、クロックサイクルt=4において、第2のミスアドレスがエントリ(4)に格納され、唯一残っている以前に受け取られたヒットアドレスが下方にシフトされてFIFOメモリ240のエントリ(m’)に入れられた状態のFIFO構成を示す。t=3において受け取られたヒットアドレスはシフトされてエントリ(2)〜(3)を占めており、新しく受け取られたヒットアドレスはFIFOメモリ240のエントリ(1)中にシフトされる。t=4において、t=1で開始されたフェッチ期間はまだ待機中である。この待機中のフェッチ期間と同時に、キャッシュコントローラ回路250は、FIFOメモリ240のボトムエントリ(m’)に位置するヒットアドレス(アドレス4)を用いて、キャッシュメモリ251にもアクセスする。次にキャッシュコントローラ250は、このヒットアドレス4に対応するテクスチャマップデータを、テクスチャフィルタ260に供給する。このプロセスは、(1)待機中のミスアドレスに対して以前に受け取られたヒットアドレスが存在し、且つ(2)フェッチ期間がまだ待機中である限り、各次のクロックサイクルについて継続され得る。図7Cから図7Fを参照して、各ヒットアドレスは処理された後にFIFOメモリ240からポップされることが理解される。
図7Gは、待機中のフェッチ期間(t>4)の完了時において、ミスアドレスに対する要求されたテクスチャデータがキャッシュメモリ251に格納された状態のFIFO構成を示す。次に、キャッシュコントローラ250は、FIFOメモリ240のボトムエントリ(m’)に位置するミスアドレスを用いて、キャッシュメモリ251にアクセスする。次にキャッシュコントローラ回路250は、このミスアドレスに対応するテクスチャマップデータを、テクスチャフィルタ260に供給する。次に、エントリ(1)〜(4)中に位置するヒットアドレスは、新しいテクスチャマップアドレスがFIFOメモリ240の先頭で受け取られたとき、次の4クロックサイクルにわたって処理される。
t=1からt=4のサイクルの間、本発明のTDA回路200は、フェッチ期間の間にヒットアドレスを処理することによりテクスチャマップデータを供給するという利点を有する。またこの期間中において、新しいヒットアドレスはFIFOメモリユニット240によって受け入れられる。この環境において最高の性能利得を得るためには、FIFOメモリ240のエントリサイズは、キャッシュコントローラ250がデータフェッチを行うために必要とするクロックサイクル数におよそ等しくされるべきである。本発明の一実施形態においてこの値は20サイクルであり、例えば(m)はおよそ20エントリにされるべきである。一実施形態において、各テクスチャマップデータフェッチ期間は、テクスチャマップデータの1ブロック、例えば64バイト(16バイトが4ラインあるいは8バイトが8ラインにそれぞれ対応する)をフェッチすることを包含する。
テクスチャマッピングおよびテクスチャフィルタリング手順は、所与のアドレススペース近隣内において近く位置するテクスチャデータに対して動作することが多いため、動作においてTDA回路200は非常に効果的であることが理解される。従って、テクスチャマップアドレスミスは通常は時間的に立て続けには受け取られず、むしろヒットアドレスの間に分散(spaced out)される。この期待される動作環境において、FIFOメモリ240は2つの待機中のミスアドレスに出会うことによってしばしば停止することがなく、その結果キャッシュメモリ251の良好なデータスループットを提供する。
本発明のTDA回路200の動作
図8は、本発明のTDA回路200によって行われる、新しいテクスチャマップアドレス(ヒット/ミス)をFIFOメモリ240のエントリに入れるための処理400のステップを示す。開始時において、FIFO240が空であると仮定する。処理400は、ステップ410において開始し、アドレス発生器ユニット220において新しいテクスチャマップアドレス、例えば新しい(u、v)座標およびテクスチャマップベースアドレスが受け取られたか否かをチェックする。もしそうであれば、ステップ410においてアドレス発生器回路220は新しいテクスチャマップアドレスを計算する。ステップ420において、キャッシュルックアップ回路230は、新しいアドレスがヒットアドレスであるかミスアドレスであるかをチェックする。もしアドレスがヒットアドレスであれば、ステップ430に入ってヒットアドレスがFIFO240に押し入れられ、ステップ410に再度入る。ステップ420においてアドレスがミスアドレスであれば、ステップ440に入る。
ステップ440において、TDA回路200はこのミスアドレスをFIFO240中に押し入れる。これにより、待機中のミスアドレスについてのフェッチ期間が開始される。ステップ450において、もう一つの新しく受け取られたテクスチャマップアドレスがTMA回路200によって受け取られた際、ステップ455に入る。ステップ455において、キャッシュルックアップ回路230は、新しいアドレスがヒットアドレスであるかミスアドレスであるかをチェックする。もし新しいアドレスがヒットアドレスであれば、ステップ460においてTMA回路200は、FIFO240にすき間があるか否かをチェックする。すき間があれば、ステップ440に入って新しく受け取られたアドレスをFIFO240に入れる。ステップ460において、FIFO240にすき間がなければ、ステップ465に入ってTMA回路200は停止し、待機中のテクスチャデータフェッチ期間が完了して新しいFIFOエントリが利用可能になり得るまで待機する。
図8のステップ455において、新しく受け取られたアドレスがミスアドレスであれば、ステップ470においてTMA回路200は別のミスアドレスがTMAFIFO240において既に待機中であるか否かをチェックする。もしそうであれば、ステップ475においてTMA回路200は停止し、待機中のテクスチャデータフェッチ期間が完了して新しく受け取られたミスアドレスがキャッシュコントローラ250に供給可能になるまで待機する。ステップ475の完了時において、ステップ440に入って新しいミスアドレスをFIFO240に押し入れる。この時点においてフェッチ期間が開始されることにより、キャッシュコントローラ回路250は、メインメモリ102(あるいはローカルフレームバッファ110)にアクセスして、新しく格納された待機中のミスアドレスに対するテクスチャマップデータを検索する。ステップ470において、別のミスアドレスがFIFO240中に既に待機中でないのならば、ステップ440に入って新しいミスアドレスをFIFO240に押し入れる。この時点において、フェッチ期間が開始されることにより、キャッシュコントローラ回路250は、メインメモリ102(あるいはローカルフレームバッファ110)にアクセスして、新しく格納された待機中のミスアドレスに対するテクスチャマップデータを検索する。
図9は、本発明のTDA回路200によって行われる、テクスチャマップアドレスをFIFOメモリ240のボトムエントリから除去するための処理500のステップを示す。処理500はステップ510において開始し、TDA回路200が、FIFO240が空であるか否かをチェックする。空でなければ、ステップ520に入る。ステップ520において、本発明のTMA回路200は、FIFOの最後のエントリ(例えば論理ボトムまたは物理ボトム)に格納されたアドレスに対応するテクスチャデータがキャッシュメモリ251中に存在するか否かをチェックする。もし存在しなければ、ステップ510に入る。ステップ520において、最後のエントリに対するテクスチャデータがテクスチャキャッシュメモリ251に格納されていれば、ステップ530に入る。
ステップ530において、TMA回路200は、FIFO240から最後のFIFOエントリをポップする。ステップ540において、キャッシュコントローラ250は、最後のエントリアドレスに対応するキャッシュメモリ251からのテクスチャデータにアクセスし、このテクスチャデータをフィルタユニット260に供給する。
結論
本発明の好適な実施形態である、テクスチャデータキャッシュメモリとともに用いられる効率的なテクスチャデータ検索方法を以上に説明した。本発明を特定の実施形態について説明したが、本発明はそのような実施形態によって限定されると解釈されるべきではなく、以下の請求の範囲に従って解釈されるべきであることが理解される。
Claims (18)
- グラフィック要素のテクスチャマッピング動作に使用されるテクスチャマップデータを含むメモリユニットを有するコンピュータ制御されたグラフィック表示システムにおける、テクスチャマップデータを検索するための回路であって、
該メモリユニットの該テクスチャマップデータの最近アクセスされたテクスチャマップデータを含むキャッシュメモリと、
受け取られたテクスチャマップアドレスが、該キャッシュメモリの内容に対してヒットアドレスであるかまたはミスアドレスであるかを決定するキャッシュルックアップ回路と、
該キャッシュルックアップ回路に結合され、複数の受け取られたテクスチャマップアドレスを格納するFIFOメモリと、
該メモリユニット、該キャッシュルックアップ回路、該FIFOメモリ、および該キャッシュメモリに結合されたキャッシュコントローラ回路であって、
(1)該キャッシュルックアップ回路が第1の該テクスチャマップのミスアドレスを決定してから、該第1のテクスチャマップデータが該キャッシュメモリに格納されるまでの期間中に、該FIFOメモリの第1のロケーション内に格納されるテクスチャマップミスアドレスに対応する該第1のテクスチャマップデータを、該キャッシュメモリに格納するために該メモリユニットからフェッチし、
(2)該キャッシュルックアップ回路が該第1のテクスチャマップのミスアドレスを決定してから、該第1のテクスチャマップデータが該キャッシュメモリに格納されるまでの期間中に、該FIFOメモリの第2のロケーションに格納されるテクスチャマップヒットアドレスに対応し、該キャッシュメモリ内に格納されている第2の該テクスチャマップデータを提供する、キャッシュコントローラ回路と、
を有する回路。 - 前記FIFOメモリの前記第1のロケーションにデータが格納される時間が、前記第2のロケーションにデータが格納される時間よりも後である、請求項1に記載の回路。
- 前記キャッシュメモリが1キロバイトのサイズである、請求項1に記載の回路。
- レンダリングのためのグラフィック要素にそれぞれ対応する前記受け取られたテクスチャマップアドレスを生成するための、前記キャッシュルックアップ回路に結合したアドレス生成回路をさらに含む、請求項1に記載の回路。
- 前記FIFOメモリがまた規定の期間にテクスチャマップヒットアドレスを受け取り格納するためのものであり、前記キャッシュコントローラ回路が、前記メモリユニットから前記第1のテクスチャマップデータをフェッチし、前記キャッシュメモリに格納する、請求項1に記載の回路。
- 前記キャッシュコントローラ回路から供給されるテクスチャマップデータを処理するための、前記キャッシュコントローラ回路に結合されたテクスチャフィルタ回路をさらに含む、請求項1に記載の回路。
- 命令を実行し、データを処理するためのホストプロセッサと、該ホストプロセッサに結合されたバスと、グラフィック画像を表示するための表示スクリーンと、テクスチャマップデータを検索するための回路とを有するコンピュータ制御されたグラフィック表示システムであって、該回路が、
グラフィック要素のテクスチャマッピング動作に使用されるテクスチャマップデータを含むメモリユニットと、
該メモリユニットの該テクスチャマップデータの最近アクセスされたテクスチャマップデータを含むテクスチャマップキャッシュメモリと、
受け取られたテクスチャマップアドレスが、該キャッシュメモリの内容に対してヒットアドレスであるかまたはミスアドレスであるかを決定するキャッシュルックアップ回路と、
複数の受け取られたテクスチャマップアドレスを格納するための、該キャッシュルックアップ回路に結合されたFIFOメモリと、
該メモリユニット、該キャッシュルックアップ回路、該FIFOメモリ、および該テクスチャマップキャッシュメモリに結合されたキャッシュコントローラ回路であって、(1)該キャッシュルックアップ回路が第1の該テクスチャマップのミスアドレスを決定してから、該第1のテクスチャマップデータが該キャッシュメモリに格納されるまでの期間中に、該FIFOメモリの第1のロケーション内に格納されるテクスチャマップミスアドレスに対応する該第1のテクスチャマップデータを、該キャッシュメモリに格納するために該メモリユニットからフェッチし、(2)該キャッシュルックアップ回路が該第1のテクスチャマップのミスアドレスを決定してから、該第1のテクスチャマップデータが該キャッシュメモリに格納されるまでの期間中に、該FIFOメモリの第2のロケーションに格納されるテクスチャマップヒットアドレスに対応し、該キャッシュメモリ内に格納されている第2の該テクスチャマップデータを提供する、キャッシュコントローラ回路と、
を有するコンピュータ制御されたグラフィック表示システム。 - 前記キャッシュコントローラ回路がまた、前記期間中に、前記テクスチャマップキャッシュメモリ内に格納された第3のテクスチャマップデータを提供するためのものであり、該第3のテクスチャマップデータが、前記FIFOメモリの第3のロケーションに格納された第2のテクスチャマップヒットアドレスに対応し、該第2のテクスチャマップヒットアドレスが、該テクスチャマップミスアドレスの後に、該FIFOメモリによって受け取られる、請求項7に記載のシステム。
- グラフィック要素にそれぞれ対応する前記受け取られたテクスチャマップアドレスを生成するための、前記キャッシュルックアップ回路に結合されたアドレス生成回路をさらに有する、請求項7に記載のシステム。
- 前記FIFOメモリがまた、前記期間中にテクスチャマップヒットアドレスを受け取り格納するためのものである、請求項7に記載のシステム。
- 前記テクスチャマップキャッシュメモリが1キロバイトのサイズである、請求項7に記載のシステム。
- 前記キャッシュコントローラ回路によって供給されるテクスチャマップデータを処理するための、前記キャッシュコントローラ回路に結合されたテクスチャフィルタ回路をさらに含む、請求項7に記載のシステム。
- コンピュータ制御されたグラフィック表示システムにおける、テクスチャマップデータを検索する方法であって、
a)グラフィック要素のテクスチャマッピング動作に使用されるテクスチャマップデータをメモリユニット内に格納するステップと、
b)該メモリユニットの該テクスチャマップデータの最近アクセスされたテクスチャマップデータをキャッシュメモリ内に格納するステップと、
c)特定のテクスチャマップアドレスが、該キャッシュメモリの内容に対してヒットアドレスであるかまたはミスアドレスであるかを決定するステップと、
d)複数の受け取られたテクスチャマップアドレスをFIFOメモリ内に格納し、該テクスチャマップアドレスに関連したテクスチャデータが該キャッシュメモリから供給されると、該FIFOメモリのボトムから個々に格納されたテクスチャマップアドレスを除去するステップと、
e)(1)該キャッシュルックアップ回路が第1の該テクスチャマップのミスアドレスを決定してから、該第1のテクスチャマップデータが該キャッシュメモリに格納されるまでの期間中に、該FIFOメモリの第1のロケーション内に格納されるテクスチャマップミスアドレスに対応する該第1のテクスチャマップデータを、該キャッシュコントローラ回路を用いて該メモリユニットからフェッチして該キャッシュメモリに格納するステップと、
f)該キャッシュルックアップ回路が該第1のテクスチャマップのミスアドレスを決定してから、該第1のテクスチャマップデータが該キャッシュメモリに格納されるまでの期間中に、該テクスチャマップミスアドレスの前に該FIFOメモリによって受け取られた該FIFOメモリの第2のロケーションに格納されるテクスチャマップヒットアドレスに対応し、該キャッシュメモリ内に格納されている第2の該テクスチャマップデータを該キャッシュコントローラ回路を用いて提供するステップと、
を包含する方法。 - 前記キャッシュコントローラ回路を用いて、前記期間中に、前記キャッシュメモリ内に格納された第3のテクスチャマップデータを提供するステップであって、該第3のテクスチャマップデータが、前記FIFOメモリの第3のロケーション内に格納された第2のテクスチャマップヒットアドレスに対応し、該第2のテクスチャマップヒットアドレスが、該テクスチャマップミスアドレスの後に、該FIFOメモリによって受け取られる、ステップをさらに包含する、請求項13に記載の方法。
- 前記期間中に、前記FIFOメモリにテクスチャマップヒットアドレスを受け取り、格納するステップをさらに包含する、請求項13に記載の方法。
- テクスチャフィルタ回路を用いて前記キャッシュコントローラ回路によって供給されるテクスチャデータを処理するステップをさらに包含する、請求項13に記載の方法。
- テクスチャマップミスアドレスを前記FIFOメモリが受け取った際、他のテクスチャマップミスアドレスが該FIFOメモリ内に格納されている場合に前記ステップd)を停止するステップをさらに包含する、請求項13に記載の方法。
- テクスチャマップミスアドレスが前記FIFOメモリのボトムに到達した際、その対応するテクスチャマップデータが前記メモリユニットからまだ供給されていない場合に前記ステップd)を停止するステップをさらに包含する、請求項13に記載の方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/770,453 | 1996-12-20 | ||
US08/770,453 US5831640A (en) | 1996-12-20 | 1996-12-20 | Enhanced texture map data fetching circuit and method |
PCT/US1997/023982 WO1998028714A1 (en) | 1996-12-20 | 1997-12-19 | Enhanced texture map data fetching circuit and method |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2001507152A JP2001507152A (ja) | 2001-05-29 |
JP4110239B2 true JP4110239B2 (ja) | 2008-07-02 |
Family
ID=25088592
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP52908498A Expired - Lifetime JP4110239B2 (ja) | 1996-12-20 | 1997-12-19 | 増強テクスチャマップデータフェッチング回路および方法 |
Country Status (7)
Country | Link |
---|---|
US (1) | US5831640A (ja) |
EP (1) | EP0946929A1 (ja) |
JP (1) | JP4110239B2 (ja) |
KR (1) | KR20000062275A (ja) |
CA (1) | CA2275727A1 (ja) |
TW (1) | TW424219B (ja) |
WO (1) | WO1998028714A1 (ja) |
Families Citing this family (96)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3586991B2 (ja) * | 1996-08-30 | 2004-11-10 | ソニー株式会社 | テクスチャ・データ読出装置およびレンダリング装置 |
US6044440A (en) * | 1997-07-10 | 2000-03-28 | Intel Corporation | System and method to provide high graphics throughput by pipelining segments of a data stream through multiple caches |
US6141020A (en) * | 1997-11-12 | 2000-10-31 | S3 Incorporated | Opposing directional fill calculators in a graphics processor |
US6088701A (en) * | 1997-11-14 | 2000-07-11 | 3Dfx Interactive, Incorporated | Command data transport to a graphics processing device from a CPU performing write reordering operations |
US6130680A (en) * | 1997-12-01 | 2000-10-10 | Intel Corporation | Method and apparatus for multi-level demand caching of textures in a graphics display device |
US6259460B1 (en) * | 1998-03-26 | 2001-07-10 | Silicon Graphics, Inc. | Method for efficient handling of texture cache misses by recirculation |
US7136068B1 (en) * | 1998-04-07 | 2006-11-14 | Nvidia Corporation | Texture cache for a computer graphics accelerator |
US7038692B1 (en) * | 1998-04-07 | 2006-05-02 | Nvidia Corporation | Method and apparatus for providing a vertex cache |
US6011565A (en) * | 1998-04-09 | 2000-01-04 | S3 Incorporated | Non-stalled requesting texture cache |
US6236413B1 (en) * | 1998-08-14 | 2001-05-22 | Silicon Graphics, Inc. | Method and system for a RISC graphics pipeline optimized for high clock speeds by using recirculation |
US6201547B1 (en) * | 1998-10-05 | 2001-03-13 | Ati International Srl | Method and apparatus for sequencing texture updates in a video graphics system |
US6977649B1 (en) * | 1998-11-23 | 2005-12-20 | 3Dlabs, Inc. Ltd | 3D graphics rendering with selective read suspend |
KR100283413B1 (ko) * | 1998-12-15 | 2001-04-02 | 김영환 | 텍스처 매핑시스템 |
US6353438B1 (en) * | 1999-02-03 | 2002-03-05 | Artx | Cache organization—direct mapped cache |
US7050063B1 (en) * | 1999-02-11 | 2006-05-23 | Intel Corporation | 3-D rendering texture caching scheme |
US6919895B1 (en) * | 1999-03-22 | 2005-07-19 | Nvidia Corporation | Texture caching arrangement for a computer graphics accelerator |
US6587113B1 (en) | 1999-06-09 | 2003-07-01 | 3Dlabs Inc., Ltd. | Texture caching with change of update rules at line end |
US7061500B1 (en) | 1999-06-09 | 2006-06-13 | 3Dlabs Inc., Ltd. | Direct-mapped texture caching with concise tags |
US7050061B1 (en) | 1999-06-09 | 2006-05-23 | 3Dlabs Inc., Ltd. | Autonomous address translation in graphic subsystem |
US6744438B1 (en) * | 1999-06-09 | 2004-06-01 | 3Dlabs Inc., Ltd. | Texture caching with background preloading |
US6677952B1 (en) | 1999-06-09 | 2004-01-13 | 3Dlabs Inc., Ltd. | Texture download DMA controller synching multiple independently-running rasterizers |
US6650333B1 (en) | 1999-06-09 | 2003-11-18 | 3Dlabs Inc., Ltd. | Multi-pool texture memory management |
US6683615B1 (en) | 1999-06-09 | 2004-01-27 | 3Dlabs Inc., Ltd. | Doubly-virtualized texture memory |
US6750872B1 (en) | 1999-09-17 | 2004-06-15 | S3 Graphics, Co., Ltd. | Dynamic allocation of texture cache memory |
US6825848B1 (en) | 1999-09-17 | 2004-11-30 | S3 Graphics Co., Ltd. | Synchronized two-level graphics processing cache |
US6717577B1 (en) | 1999-10-28 | 2004-04-06 | Nintendo Co., Ltd. | Vertex cache for 3D computer graphics |
US6618048B1 (en) | 1999-10-28 | 2003-09-09 | Nintendo Co., Ltd. | 3D graphics rendering system for performing Z value clamping in near-Z range to maximize scene resolution of visually important Z components |
US6593931B1 (en) * | 1999-12-01 | 2003-07-15 | Intel Corporation | Method and apparatus for improving system memory bandwidth utilization during graphics translational lookaside buffer cache miss fetch cycles |
US6473834B1 (en) | 1999-12-22 | 2002-10-29 | Unisys | Method and apparatus for prevent stalling of cache reads during return of multiple data words |
US6415357B1 (en) | 1999-12-23 | 2002-07-02 | Unisys Corporation | Caching method and apparatus |
US6433789B1 (en) | 2000-02-18 | 2002-08-13 | Neomagic Corp. | Steaming prefetching texture cache for level of detail maps in a 3D-graphics engine |
US6891533B1 (en) * | 2000-04-11 | 2005-05-10 | Hewlett-Packard Development Company, L.P. | Compositing separately-generated three-dimensional images |
US7710425B1 (en) | 2000-06-09 | 2010-05-04 | 3Dlabs Inc. Ltd. | Graphic memory management with invisible hardware-managed page faulting |
US6707458B1 (en) | 2000-08-23 | 2004-03-16 | Nintendo Co., Ltd. | Method and apparatus for texture tiling in a graphics system |
US6811489B1 (en) | 2000-08-23 | 2004-11-02 | Nintendo Co., Ltd. | Controller interface for a graphics system |
US6700586B1 (en) | 2000-08-23 | 2004-03-02 | Nintendo Co., Ltd. | Low cost graphics with stitching processing hardware support for skeletal animation |
US7538772B1 (en) | 2000-08-23 | 2009-05-26 | Nintendo Co., Ltd. | Graphics processing system with enhanced memory controller |
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 |
US7576748B2 (en) | 2000-11-28 | 2009-08-18 | Nintendo Co. Ltd. | Graphics system with embedded frame butter having reconfigurable pixel formats |
US7196710B1 (en) | 2000-08-23 | 2007-03-27 | Nintendo Co., Ltd. | Method and apparatus for buffering graphics data in a graphics system |
US6999080B1 (en) | 2000-11-30 | 2006-02-14 | Microsoft Corporation | System, method, and computer program product for general environment mapping |
US6848025B2 (en) * | 2001-10-26 | 2005-01-25 | Elan Research, Inc. | Method and system for programmable replacement mechanism for caching devices |
US7825935B1 (en) * | 2001-11-30 | 2010-11-02 | Nvidia Corporation | System, method and computer program product for using textures as instructions for graphics processing |
US8463947B2 (en) * | 2002-08-28 | 2013-06-11 | Tellabs Operations, Inc. | Method of finding rings for optimal routing of digital information |
US6933945B2 (en) * | 2003-03-31 | 2005-08-23 | Sun Microsystems, Inc. | Design for a non-blocking cache for texture mapping |
US9081681B1 (en) | 2003-12-19 | 2015-07-14 | Nvidia Corporation | Method and system for implementing compressed normal maps |
CN1981306B (zh) * | 2004-05-03 | 2010-12-08 | 三叉微系统(远东)有限公司 | 用于渲染图形的图形管道 |
US8743142B1 (en) * | 2004-05-14 | 2014-06-03 | Nvidia Corporation | Unified data fetch graphics processing system and method |
US8736628B1 (en) | 2004-05-14 | 2014-05-27 | Nvidia Corporation | Single thread graphics processing system and method |
US20060007234A1 (en) * | 2004-05-14 | 2006-01-12 | Hutchins Edward A | Coincident graphics pixel scoreboard tracking system and method |
US8711155B2 (en) * | 2004-05-14 | 2014-04-29 | Nvidia Corporation | Early kill removal graphics processing system and method |
US8687010B1 (en) | 2004-05-14 | 2014-04-01 | Nvidia Corporation | Arbitrary size texture palettes for use in graphics systems |
US8736620B2 (en) * | 2004-05-14 | 2014-05-27 | Nvidia Corporation | Kill bit graphics processing system and method |
US8860722B2 (en) * | 2004-05-14 | 2014-10-14 | Nvidia Corporation | Early Z scoreboard tracking system and method |
US6972769B1 (en) * | 2004-09-02 | 2005-12-06 | Nvidia Corporation | Vertex texture cache returning hits out of order |
US8078656B1 (en) | 2004-11-16 | 2011-12-13 | Nvidia Corporation | Data decompression with extra precision |
US7961195B1 (en) | 2004-11-16 | 2011-06-14 | Nvidia Corporation | Two component texture map compression |
US7928988B1 (en) | 2004-11-19 | 2011-04-19 | Nvidia Corporation | Method and system for texture block swapping memory management |
US7916149B1 (en) | 2005-01-04 | 2011-03-29 | Nvidia Corporation | Block linear memory ordering of texture data |
US8766995B2 (en) * | 2006-04-26 | 2014-07-01 | Qualcomm Incorporated | Graphics system with configurable caches |
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 |
US7626588B1 (en) | 2006-06-16 | 2009-12-01 | Nvidia Corporation | Prescient cache management |
US7616209B1 (en) * | 2006-06-16 | 2009-11-10 | Nvidia Corporation | Prescient cache management |
US8766996B2 (en) * | 2006-06-21 | 2014-07-01 | Qualcomm Incorporated | Unified virtual addressed register file |
US8594441B1 (en) | 2006-09-12 | 2013-11-26 | Nvidia Corporation | Compressing image-based data using luminance |
US7928990B2 (en) * | 2006-09-27 | 2011-04-19 | Qualcomm Incorporated | Graphics processing unit with unified vertex cache and shader register file |
US8537168B1 (en) | 2006-11-02 | 2013-09-17 | Nvidia Corporation | Method and system for deferred coverage mask generation in a raster stage |
KR100882842B1 (ko) * | 2007-02-26 | 2009-02-17 | 삼성전자주식회사 | 피포를 포스트 버텍스 캐쉬처럼 사용하기 위한 기하학 처리장치와 그 방법 |
US8724895B2 (en) * | 2007-07-23 | 2014-05-13 | Nvidia Corporation | Techniques for reducing color artifacts in digital images |
US9183607B1 (en) | 2007-08-15 | 2015-11-10 | Nvidia Corporation | Scoreboard cache coherence in a graphics pipeline |
US8373718B2 (en) * | 2008-12-10 | 2013-02-12 | Nvidia Corporation | Method and system for color enhancement with color volume adjustment and variable shift along luminance axis |
US8610732B2 (en) * | 2008-12-11 | 2013-12-17 | Nvidia Corporation | System and method for video memory usage for general system application |
US8683008B1 (en) | 2011-08-04 | 2014-03-25 | Google Inc. | Management of pre-fetched mapping data incorporating user-specified locations |
US8280414B1 (en) | 2011-09-26 | 2012-10-02 | Google Inc. | Map tile data pre-fetching based on mobile device generated event analysis |
US9275374B1 (en) | 2011-11-15 | 2016-03-01 | Google Inc. | Method and apparatus for pre-fetching place page data based upon analysis of user activities |
US8711181B1 (en) | 2011-11-16 | 2014-04-29 | Google Inc. | Pre-fetching map data using variable map tile radius |
US8886715B1 (en) | 2011-11-16 | 2014-11-11 | Google Inc. | Dynamically determining a tile budget when pre-fetching data in a client device |
US9063951B1 (en) | 2011-11-16 | 2015-06-23 | Google Inc. | Pre-fetching map data based on a tile budget |
US9305107B2 (en) | 2011-12-08 | 2016-04-05 | Google Inc. | Method and apparatus for pre-fetching place page data for subsequent display on a mobile computing device |
US9197713B2 (en) | 2011-12-09 | 2015-11-24 | Google Inc. | Method and apparatus for pre-fetching remote resources for subsequent display on a mobile computing device |
US8803920B2 (en) * | 2011-12-12 | 2014-08-12 | Google Inc. | Pre-fetching map tile data along a route |
US9389088B2 (en) | 2011-12-12 | 2016-07-12 | Google Inc. | Method of pre-fetching map data for rendering and offline routing |
US9332387B2 (en) | 2012-05-02 | 2016-05-03 | Google Inc. | Prefetching and caching map data based on mobile network coverage |
US9411595B2 (en) | 2012-05-31 | 2016-08-09 | Nvidia Corporation | Multi-threaded transactional memory coherence |
KR101983833B1 (ko) | 2012-06-26 | 2019-09-04 | 삼성전자주식회사 | 공유된 캐쉬들을 제공하는 방법 및 장치 |
US8849942B1 (en) | 2012-07-31 | 2014-09-30 | Google Inc. | Application programming interface for prefetching map data |
US9824009B2 (en) | 2012-12-21 | 2017-11-21 | Nvidia Corporation | Information coherency maintenance systems and methods |
US10102142B2 (en) | 2012-12-26 | 2018-10-16 | Nvidia Corporation | Virtual address based memory reordering |
US9230305B2 (en) | 2012-12-31 | 2016-01-05 | Nvidia Corporation | Summed area computation using ripmap of partial sums |
US9569385B2 (en) | 2013-09-09 | 2017-02-14 | Nvidia Corporation | Memory transaction ordering |
KR102147356B1 (ko) | 2013-09-30 | 2020-08-24 | 삼성전자 주식회사 | 캐시 메모리 시스템 및 그 동작방법 |
EP2937789A4 (en) * | 2014-02-07 | 2016-05-25 | Entrix Co Ltd | CLOUD STREAMING SERVICE SYSTEM, METHOD FOR PROVIDING A CLOUD STREAMING SERVICE AND DEVICE THEREFOR |
US20150228106A1 (en) * | 2014-02-13 | 2015-08-13 | Vixs Systems Inc. | Low latency video texture mapping via tight integration of codec engine with 3d graphics engine |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5469535A (en) * | 1992-05-04 | 1995-11-21 | Midway Manufacturing Company | Three-dimensional, texture mapping display system |
US5606650A (en) * | 1993-04-22 | 1997-02-25 | Apple Computer, Inc. | Method and apparatus for storage and retrieval of a texture map in a graphics display system |
US5548709A (en) * | 1994-03-07 | 1996-08-20 | Silicon Graphics, Inc. | Apparatus and method for integrating texture memory and interpolation logic in a computer system |
EP0747826B1 (en) * | 1995-06-06 | 2001-09-19 | Hewlett-Packard Company, A Delaware Corporation | Cache system with simultaneous tag comparison |
-
1996
- 1996-12-20 US US08/770,453 patent/US5831640A/en not_active Expired - Lifetime
-
1997
- 1997-12-19 EP EP97953482A patent/EP0946929A1/en not_active Withdrawn
- 1997-12-19 WO PCT/US1997/023982 patent/WO1998028714A1/en not_active Application Discontinuation
- 1997-12-19 CA CA002275727A patent/CA2275727A1/en not_active Abandoned
- 1997-12-19 JP JP52908498A patent/JP4110239B2/ja not_active Expired - Lifetime
- 1997-12-19 KR KR1019997005655A patent/KR20000062275A/ko not_active Application Discontinuation
- 1997-12-20 TW TW086119434A patent/TW424219B/zh not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
TW424219B (en) | 2001-03-01 |
KR20000062275A (ko) | 2000-10-25 |
CA2275727A1 (en) | 1998-07-02 |
US5831640A (en) | 1998-11-03 |
EP0946929A1 (en) | 1999-10-06 |
JP2001507152A (ja) | 2001-05-29 |
WO1998028714A1 (en) | 1998-07-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4110239B2 (ja) | 増強テクスチャマップデータフェッチング回路および方法 | |
US6111584A (en) | Rendering system with mini-patch retrieval from local texture storage | |
US6734867B1 (en) | Cache invalidation method and apparatus for a graphics processing system | |
US5701444A (en) | Three-dimensional graphics subsystem with enhanced support for graphical user interface | |
US7589741B1 (en) | Processing high numbers of independent textures in a 3-D graphics pipeline | |
US6348919B1 (en) | Graphics system with optimized use of unified local and frame buffers | |
US6144392A (en) | Method and apparatus for formatting a texture in a frame buffer | |
JP4071196B2 (ja) | ゾーン・レンダリング用の自動メモリ管理 | |
US5727192A (en) | Serial rendering system with auto-synchronization on frame blanking | |
US20090128575A1 (en) | Systems and Methods for Managing Texture Descriptors in a Shared Texture Engine | |
JP5053857B2 (ja) | 3次元グラフィックス処理装置および方法 | |
US5936632A (en) | Method for fast downloading of textures to accelerated graphics hardware and the elimination of extra software copies of texels | |
JP4091144B2 (ja) | ディスプレイリストを生成する方法、ディスプレイリストを受け取りグラフィックスプロセッサに格納する方法、プリミティブをレンダリングする方法およびディスプレイリストを用いてプリミティブをレンダリングするシステム | |
JPH09297570A (ja) | コンピュータ制御されたグラフィックスディスプレイシステムおよび同システムにおいてディスプレイリストを作成する方法 | |
US6587113B1 (en) | Texture caching with change of update rules at line end | |
US7170512B2 (en) | Index processor | |
JPH08212382A (ja) | Z−バッファタグメモリ構成 | |
US6456291B1 (en) | Method and apparatus for multi-pass texture mapping | |
US6812928B2 (en) | Performance texture mapping by combining requests for image data | |
JPH09282470A (ja) | グラフィック処理システム | |
US6683615B1 (en) | Doubly-virtualized texture memory | |
US6778179B2 (en) | External dirty tag bits for 3D-RAM SRAM | |
US7295210B2 (en) | Bin pointer and state caching apparatus and method | |
US6784892B1 (en) | Fully associative texture cache having content addressable memory and method for use thereof | |
US7710425B1 (en) | Graphic memory management with invisible hardware-managed page faulting |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20040604 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20041216 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070612 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20070912 |
|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20070912 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20071022 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20071012 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20071119 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20071112 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20071221 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20071211 |
|
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: 20080226 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20080205 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20080313 |
|
A72 | Notification of change in name of applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A721 Effective date: 20080313 |
|
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: 20110418 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120418 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120418 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130418 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130418 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140418 Year of fee payment: 6 |
|
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 |
|
EXPY | Cancellation because of completion of term |