JP4497445B2 - 単一のプロセッサを使用してのオーバーラップするグラフィックス・データの収集および伝送のための方法、システムおよびコンピュータ・プログラム製品 - Google Patents

単一のプロセッサを使用してのオーバーラップするグラフィックス・データの収集および伝送のための方法、システムおよびコンピュータ・プログラム製品 Download PDF

Info

Publication number
JP4497445B2
JP4497445B2 JP2001520354A JP2001520354A JP4497445B2 JP 4497445 B2 JP4497445 B2 JP 4497445B2 JP 2001520354 A JP2001520354 A JP 2001520354A JP 2001520354 A JP2001520354 A JP 2001520354A JP 4497445 B2 JP4497445 B2 JP 4497445B2
Authority
JP
Japan
Prior art keywords
scene data
processor
geometry engine
intermediate buffer
block
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
Application number
JP2001520354A
Other languages
English (en)
Other versions
JP2003536124A5 (ja
JP2003536124A (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.)
Microsoft Corp
Original Assignee
Microsoft Corp
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 Microsoft Corp filed Critical Microsoft Corp
Publication of JP2003536124A publication Critical patent/JP2003536124A/ja
Publication of JP2003536124A5 publication Critical patent/JP2003536124A5/ja
Application granted granted Critical
Publication of JP4497445B2 publication Critical patent/JP4497445B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Graphics (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Image Generation (AREA)
  • Image Processing (AREA)
  • Processing Or Creating Images (AREA)
  • Computer And Data Communications (AREA)

Description

【0001】
【発明の背景】
(発明の分野)
本発明は、一般的にはコンピュータ・グラフィックスに関するものである。詳細には、本発明は、グラフィックス・データの収集並びにこのデータをグラフィックス・ハードウェアへ送出することに関するものである。
【0002】
(関係する技術)
コンピュータ・グラフィックス・イメージの制作は、2つの基本的なステージから成っている。その第1のステージは、1つのフレームまたはシーンを指定するデータの生成であり、これは、以下ではシーン・データとして識別する。第2のステージは、グラフィックス・ハードウェアによって、このシーン・データに基づき、表示のためにイメージをレンダリングすることである。ある種の現行のコンピュータ・グラフィックス・システムは、1つのプロセッサを利用することによって、シーン・データの生成を扱い、そしてもう1つのプロセッサを利用してこのシーン・データをグラフィックス・ハードウェアへ送出するようにしている。これら2つのステージは、代表的には、交互にしかも直列的に生じる。シーン・データは、その第1のプロセッサが生成する。第2プロセッサは、次にそのシーン・データを、ジオメトリ・エンジン(geometry engine)、すなわちグラフィックス・ハードウェア・スーツ(graphics hardware suite)内の第1のモジュールに送出する。次に、第1プロセッサは、次のシーンのためのデータを生成し、そしてこのデータを第2プロセッサがジオメトリ・エンジンに対し送出する。このプロセスは、直列形式で続くことになる。
【0003】
このアーキテクチャには、多くの欠点がある。第1に、上記2つのプロセッサの直列動作において本来的な非効率さがあることである。各プロセッサは、他方のプロセッサが活動するときにアイドル時間に遭遇する。このようなアイドル時間の間においては、利用可能な処理パワーは、使用されない。さらにまた、スループットが制限されることになる。1つのフレームは、シーン・データ生成ステージとデータ送出ステージの両方が順番に完了した後においてしか、ジオメトリ・エンジンは受けることができない。さらにまた、2つのプロセッサが必要となる。このことは、グラフィックス・システムの費用および複雑さの一因となる。
【0004】
したがって、シーン・データの生成および伝送の集合的なプロセスを効率およびスループットの点から改善したグラフィックス・システム・アーキテクチャに対するニーズがある。加えて、このようなアーキテクチャは、計算パワーの必要量を最小限にするものとすべきである。
【0005】
【発明の摘要】
本文に記述する本発明は、シーン・データをジオメトリ・エンジンに送出するための方法、システムおよびコンピュータ製品を構成する。プロセッサは、アプリケーション・プログラムにしたがって1つのフレームのためのシーン・データを生成し、そしてこのシーン・データを、以下において中間バッファとして識別する第1のメモリ・ロケーションに書き込む。その次のフレームのためのシーン・データを次に生成し、そして第2の中間バッファに書き込み、そしてこの間において、ジオメトリ・エンジンは、それと同時に、第1の中間バッファ内のシーン・データを読み出してレンダリングを行う。次に、後続のフレームのためのシーン・データを生成して第1中間バッファに書き込む一方で、ジオメトリ・エンジンは第2中間バッファ内のシーン・データを読み出してレンダリングを行う。このプロセスは、アプリケーション・プログラムが実行を終了するまで、上記のようにして継続する。
【0006】
本発明は、シーン・データを読み取りそしてレンダリングする一方で、それと同時に追加のシーン・データを生成するという特徴を有している。
本発明は、シーン・データをパイプライン・アーキテクチャで生成しレンダリングするという追加の特徴を有している。
【0007】
このパイプライン・アーキテクチャのため、本発明は、シーン・データの処理においてスループットが比較的高いという利点がある。
本発明は、さらに、シーン・データを生成することおよびこのシーン・データをジオメトリ・エンジンに対し利用可能とすることの双方を行うために1つのプロセッサしか必要としないという利点がある。
【0008】
本発明のさらに別の特徴および利点、並びに本発明の種々の実施形態の動作については、添付の図面を参照して以下に詳細に説明する。
本発明の特徴および利点は、図面を参照しての以下に記載の詳細な説明からより明かとなる。尚、図面においては、同じあるいは機能的に類似の要素には同じ参照番号を使用する。さらに、参照番号の左端の数字は、この参照番号が最初に現れる図を示している。
【0009】
【好ましい実施形態の詳細な説明】
I.概観
上述したように、現行のコンピュータ・グラフィックス・システムは、1つのプロセッサを使用することにより、このプロセッサ上でランしているアプリケーション・プログラムにしたがってシーン・データを生成している。第2のプロセッサは、この生成されたシーン・データをその第1プロセッサからジオメトリ・エンジンへ中継するという目的のために一般に割り当てられており、そしてこのジオメトリ・エンジンでは、そのシーン・データを表示イメージへ変換するプロセスが開始される。図1には、このようなアーキテクチャを示している。第1プロセッサ105は、アプリケーション110を実行することにより、プロセッサ105は、1つのフレームのためのシーン・データを生成する。このようにすることにおいて、プロセッサ105は、必要に応じてメモリ・ユニット115と相互作用する。プロセッサ105が生成するこのシーン・データは、次に、第2プロセッサ118によってジオメトリ・エンジン125へ転送する。プロセッサ105からジオメトリ・エンジン125へシーン・データ120を転送するのは、プロセッサ118の担当である。
【0010】
図2には、このようなアーキテクチャから生ずるイベントのシーケンスを示している。これらイベントは、時間205の関数として示している。イベント210においては、第1プロセッサは、フレームframenに対応するシーン・データを生成する。イベント215においては、第2プロセッサは、framenのシーン・データをジオメトリ・エンジンに送出する。イベント220においては、第1プロセッサは、その次のフレームframen+1のためのシーン・データを生成する。イベント225においては、第2プロセッサは、framen+1に属するシーン・データをジオメトリ・エンジンに送出する。以上のプロセスは、直列形式で続行する。各シーン・データ生成イベントには、第2プロセッサがそのシーン・データをジオメトリ・エンジンに送出するイベントが直列で後続する。このプロセスは、各々の連続したフレームに対し繰り返される。
【0011】
本発明においては、第2プロセッサは不要となる。単一のプロセッサによって、シーン・データを生成し、そしてこのシーン・データをメモリ内の中間バッファに転送する。次に、このプロセッサは、ジオメトリ・エンジンに対し命令を発してそのシーン・データを検索する。こうすることにおいては、そのプロセッサは、ジオメトリ・エンジンに対し中間バッファのメモリ内におけるアドレスを送る。ジオメトリ・エンジンは次に、その指示したアドレスからシーン・データを検索する。
【0012】
ジオメトリ・エンジンがシーン・データを検索しそしてそのシーン・データについての必要なレンダリングを実行している間、プロセッサは、次のフレームのためのシーン・データを生成していることになる。これが完了すると、その次フレームのためのシーン・データは、プロセッサが第2の中間バッファに対し送出する。一旦メモリへのこの転送が完了し、グラフィックス・ハードウェアが第1中間バッファからのシーン・データのレンダリングを終了すると、プロセッサは、別の読み取り命令をジオメトリ・エンジンに対し発する。ジオメトリ・エンジンは、第2中間バッファ・ロケーションからシーン・データの次のセグメントを読み取ることに進む。
【0013】
ジオメトリ・エンジンがこれを行う間、プロセッサは、第3のフレームのためのシーン・データを生成し、このシーン・データを第1メモリ・ロケーション内に置く。このプロセスは続行し、シーン・データ生成が、シーン・データの読み取りおよびレンダリング動作と並行してかつ同時に進行する。したがって、グラフィックス・ハードウェアが1フレームのシーン・データを読み取りそしてレンダリングする間においては、プロセッサは、それに続くフレームのためのシーン・データを生成している。その結果、シーン・データの生成およびこのシーン・データのグラフィックス・ハードウェアへの転送という集合的なプロセスは、より効率的となる。これら集合的プロセスは、パイプライン化され、そしてスループットが上昇する。さらにまた、1つのプロセッサしか使用しない。
II.用語
以下のセクションでは、本願を通して頻繁に現れるいくつかの用語を定義する。
【0014】
アプリケーションとは、ここでは、プロセッサが実行する一連の命令を記述するために広義に使用する。コンピュータ・グラフィックスのコンテキストにおいては、この用語は、一連の命令であって、実行されたときに、1つのイメージ、1つのイメージの一部、または一連のイメージを形成するようにレンダリングすることができるデータを発生するようなそのような一連の命令を指す。
【0015】
フレームとは、1つのセグメントのデータであって、レンダリング・プロセスに入力したときに、1つのイメージまたは1つのイメージの一部を発生するようなそのような1つのセグメントのデータを指す。
【0016】
ジオメトリ・エンジンとは、レンダリング・プロセスにおいて最初のステップを実行するハードウェア・コンポーネントを指す。これらステップは、ジオメトリ計算、ライティング計算、遠近法計算、ピクセルのカラー処理を含むことができる。ジオメトリ・エンジンの出力は、ラスタ化できるデータから成る。
【0017】
中間バッファとは、メモリ媒体内の1つのロケーションであって、本発明の1実施形態にしたがいシーン・データをその生成の直後に格納することができるそのような1つのロケーションを指す。中間バッファは、シーン・データ格納のため、およびジオメトリ・エンジンによるそのデータの係属中の後続のアクセスのための一時的ロケーションとして作用する。
【0018】
シーン・データとは、プロセッサによるアプリケーションの実行により生成されるデータを指す。シーン・データは、レンダリング・プロセスを開始するためにジオメトリ・エンジンに入力され、そして実際にイメージへとレンダリングされる。
III.システム
A.全体
図3には、本発明の1実施形態を示している。プロセッサ305は、アプリケーション110をロードしているとして示している。アプリケーション110は、グラフィックス・ハードウェアをプログラミングするのに適当ないくつかの言語のうちの任意のもので書くことができる。1つのそのような言語は、OpenGL(登録商標)である。アプリケーション110を実行する際、プロセッサ305は、シーン・データ120を生成する。本発明の1実施形態では、これは、一回に1つのシーンまたはフレームずつ行う。シーン・データ120は、表示されるフレームを最終的に構成することになるオブジェクトおよびフィーチャの記述を含む。もしOpenGL(登録商標)を使用する場合、シーン・データ120は、表示リストから構成される。所与のフレームに関連するシーン・データ120は、一旦生成されると、メモリ・モジュール115へ転送する。特に、そのフレームに対するシーン・データ120は、メモリ115内の中間バッファとして識別する複数の特定のロケーションのうちの1つに書き込む。
【0019】
プロセッサ305は、命令315をジオメトリ・エンジン310に発する。ジオメトリ・エンジン310は、レンダリング・プロセスを開始させることを担当し、そして1つのシーンを最終的に形成することになるジオメトリ上のエンティティの初期操作としてそのようなタスクを実行する。命令315は、ジオメトリ・エンジン310に対し、シーン・データ120をメモリ115から読み取るように知らせる。さらにまた、命令315は、シーン・データ120を見い出すことができる中間バッファのアドレスを、ジオメトリ・エンジン310に知らせる。このとき、ジオメトリ・エンジン310は、シーン・データ120をメモリ115内のその指定された中間バッファから検索する。
【0020】
B.メモリ
図4には、本発明の1実施形態によるメモリ115の構造を詳細に示している。メモリ115は、2つの中間バッファ405A,405Bから構成されている。プロセッサ305は、フレーム毎にシーン・データを生成するが、このプロセッサは、最初に、フレーム415に関連するシーン・データを生成する。プロセッサ305は、フレーム415に関連したシーン・データを中間バッファ405Aに送出する。ジオメトリ・エンジン310は、次に、フレーム415に関連したこのシーン・データに対し中間バッファ405Aからのアクセスを、プロセッサ305によってそうするように言われたときに行うことができる。中間バッファ405Aがアクセスされそしてそのシーン・データがレンダリングされている間においては、プロセッサ305は、次のフレーム420に関連するシーン・データを生成する。プロセッサ305は、フレーム420に関連するそのシーン・データを中間バッファ405Bに書き込むことになる。
【0021】
次のステップ(不図示)では、ジオメトリ・エンジン310は、フレーム420に関連したシーン・データを中間バッファ405Bから読み取る。これを行っている間においては、プロセッサ305は、その次のフレームに対するシーン・データを生成し、そしてそのシーン・データを中間バッファ405Aに書き込む。以上のプロセスは、この形式で続くことになる。したがって、プロセッサ305は、中間バッファ405Aと中間バッファ405Bとに対し交互に書込を行う。ジオメトリ・エンジン310は、プロセッサ305が現在アドレス指定していないどちらかの中間バッファからシーン・データを読み出す。これは、以下で詳述するパイプライン化したデータ・フローをもたらす。
【0022】
ここで、本発明の代替の実施形態では、2つより多い中間バッファを使用することもできる。例えば、ジオメトリ・エンジンが第2の中間バッファからの読み取りを終了する前にプロセッサが第1の中間バッファへの書込を終了する場合、このときには、プロセッサは、次のフレームに対するシーン・データを書き込む場所がないことになる。このような状態を取り扱うため、3つ以上の中間バッファを使用することによって、本発明のパイプライン・プロセスをサポートするようにすることができる。
【0023】
C. シーン・データ構造
図5Aおよび図5Bには、本発明の1実施形態によるシーン・データのための可能なフォーマットを記載している。図5Aにおいて、1つのフレームに対するシーン・データを示している。このシーン・データは、複数のオブジェクト記述から構成されている。第1の記述は、オブジェクト505を定めている。同様に、第2および第3のオブジェクト記述は、それぞれ、オブジェクト510,515を定めている。各オブジェクト記述内のデータは、ジオメトリ・エンジンを含むこのグラフィックス・システムが、そのオブジェクトに対応するフレームの部分のレンダリングを開始するのに十分な情報を含んでいる。一連の明示的なオブジェクト記述から成るシーン・データは、フラット構造をもつと言える。
【0024】
対照的に、図5Bは、例示の階層的構造を示している。ここで、シーン・データ550は、オブジェクト555のようなオブジェクトの記述を含んでいる。しかし、階層的構造においては、シーン・データはまた、ポインタ560,570,575のようなポインタも含み、これは、メモリ内のどこか他の所のオブジェクト記述を参照する。図示した例では、ポインタ560は、メモリ内のどこか他の所に記述されたオブジェクト、すなわちオブジェクト565に対する参照として作用する。同様に、ポインタ570も、オブジェクト565を参照する。ポインタ575は、別のオブジェクト580を参照する。オブジェクト565とオブジェクト580の記述は、プロセッサが中間バッファに書き込むシーン・データ内に明示的には含まれていない。したがって、中間バッファに書き込まれたシーン・データ550は、オブジェクト555,ポインタ560,570,575を含む。シーン・データ550は、オブジェクト555,565,565(再度),580の明示的記述から成るシーン・データと等価である。ポインタは明示的オブジェクト記述よりも少ないメモリ空間しか必要としないため、階層的構造のシーン・データは、1つのシーンのよりコンパクトな表現となる。
【0025】
D.多数のプロセッサおよびシーン生成
本発明の代替の実施形態においては、複数のプロセッサが、各々のそれら自身のアプリケーションを実行する。このような実施形態では、プロセッサは全て、それら自身のシーン・データを単一の中間バッファへ書き込む。その結果生じる複数のシーン・データ・ブロックは、集合的に、単一のフレームとして解釈される。図6には、例示の実施形態を示している。ここで、複数のプロセッサ、すなわちプロセッサ605A,605B,605Cを示している。各プロセッサは、それ自身のシーン・データを中間バッファ601Bに書き込む。シーン・データ610Aはプロセッサ605Aが提供し、シーン・データ610Bはプロセッサ605Bが提供し、シーン・データ610Cはプロセッサ605Cが提供する。これらシーン・データのブロックは、図5Aおよび図5Bに示したようにフラットまたは階層的のいずれかとすることができる。
【0026】
図6の実施形態においては、図4に示したシーケンスと同様に、パイプライン化した動作シーケンスが生じる。プロセッサ605A〜605Cがシーン・データを生成しそしてこれを中間バッファ601Bに書き込んでいる間、ジオメトリ・エンジン125は、中間バッファ601Aの内容を読み取っており、この中間バッファは、プロセッサ605A〜605Cが前のステップにおいて書き込んだシーン・データを含んだものである。中間バッファ601A内のこのシーン・データがレンダリングされ、そしてプロセッサ605A〜605Cがそれらのシーン・データの中間バッファ601Bへの書込を完了した後、ジオメトリ・エンジン125は、中間バッファ601B内のこのシーン・データを読み取ることになる。一方では、プロセッサ605A〜605Cは、次のフレームのためのシーン・データを生成することになる。このシーン・データは、中間バッファ601Aに書き込まれる。動作は、全てのシーン・データが生成され処理されるまでこのようにして続く。
【0027】
尚、図6の各プロセッサは、それ自身の個々のアプリケーション・プログラムを実行しているため、中間バッファ601Bにおいて記述されたフレームにおいて表されるいくつかの異なったコンテキストがあることになる。中間バッファ601B内のデータが読み取られそしてグラフィックス・ハードウェアによってレンダリングされるとき、多数のコンテキストを扱わなければならない。その結果、ジオメトリ・エンジン125は、1つのブロックのシーン・データのレンダリングを完了しそして別のものを開始するとき、必要なコンテキスト・スイッチングを実行する能力を有していなければならない。
IV.方法
A.全体
本発明の方法は、2組のプロセスの並列実行を提供する。グラフィックス・ハードウェアは、所与のフレームに対しプロセッサが生成したシーン・データを読み取りレンダリングする間、このプロセッサは、次フレームのためのシーン・データを生成しそしてこれをメモリに書き込む。このようにして、シーン・データの生成は、前に生成したシーン・データの読み取りおよびレンダリングの間において実行される。このパイプライン・アプローチは、グラフィックス・システムにおけるより大きなスループットを可能にし、そしてリソースの効率的な使用を提供する。
【0028】
図7には、これらイベントのタイムラインを示している。イベント710においては、プロセッサは、フレームframenに関連したシーン・データを生成し、そしてこれをメモリ内の中間バッファに書き込む。イベント715においては、プロセッサは、フレームframen+1に関連したシーン・データを生成し書込を行う。イベント720では、プロセッサは、フレームframen+2に関連したシーン・データを生成し書込を行う。シーン・データ生成イベント710〜720と並行して、シーン・データをグラフィックス・ハードウェアがメモリから読み取りそしてレンダリングする。イベント710においてプロセッサがフレームframenに関連したシーン・データを生成し書き込んでいる間、ジオメトリ・エンジンも活動している。この時点で、イベント725において、ジオメトリ・エンジンは、メモリ内の中間バッファからフレームframen-1に関連したシーン・データを読み取っている最中である。同様に、プロセッサがフレームframen+1に関連したシーン・データを生成し書き込んでいる間、グラフィックス・ハードウェアは、イベント730において、フレームframenに対して先に生成されたシーン・データを読み取りそしてレンダリングをしている最中となる。同様に、イベント715において生成したシーン・データを、イベント735においてグラフィックス・ハードウェアが読み取りレンダリングする。この後者のイベントは、プロセッサがイベント720において次フレームframen+2に関連したシーン・データを生成している間に生じる。
【0029】
図8には、本発明の1実施形態によるこのプロセスの各ステップをより詳細に示している。このプロセスは、ステップ805で始まる。ステップ810においては、本プロセスで使用するどのフラグまたはインデックスも適当な初期値にセットする。以下で述べるように、このようなフラグは、種々のタスクの完了を知らせるために使用することができる。ステップ815においては、第1のフレームすなわちframe0に対するシーン・データを、図8においてバッファAとして示した第1の中間バッファにおいて利用可能となるようにする。このステップでは、プロセッサは、シーン・データを生成しそしてこのシーン・データをメモリ内のバッファAに書き込む。
【0030】
ステップ815の後、2つのイベントが、ほぼ同時期に生起する。ステップ820では、バッファAに丁度書き込んだシーン・データを、ジオメトリ・エンジンがその中間バッファから読み取り、そしてグラフィックス・ハードウェアがレンダリングする。その間、ステップ825において、プロセッサは、次のフレームすなわちframe1に関連したシーン・データを生成し、そしてこれを第2の中間バッファ(図8ではバッファBとして示す)に書き込む。
【0031】
一旦ステップ825が完了し、またグラフィックス・ハードウェアがバッファAからのシーン・データのレンダリングを終了すると、ステップ830が生じる。このステップでは、frame1に関連したシーン・データは、ジオメトリ・エンジンがバッファBから読み取り、そしてグラフィックス・ハードウェアがレンダリングする。これは、ステップ825において利用可能とされたシーン・データである。一方、ステップ835において、プロセッサは、次にフレームframe2に関連したシーン・データを生成する。ステップ835では、プロセッサはまた、このシーン・データを中間バッファAに書き込む。
【0032】
ステップ840では、frame2に関連したシーン・データは、ジオメトリ・エンジンがバッファAから読み取り、そしてグラフィックス・ハードウェアがレンダリングする。この間、ステップ845においては、プロセッサが、次のフレームframe3に関連したシーン・データを生成する。プロセッサは、このシーン・データをバッファBにおいて利用可能とする。
【0033】
ステップ850においては、フレームframe3に関連したシーン・データは、ジオメトリ・エンジンがバッファBから読み取り、そしてグラフィックス・ハードウェアがレンダリングする。このプロセスは、本アプリケーションがプロセッサにおける実行を完了するまで、並列のパイプライン形式で続行する。
【0034】
B.シーン・データの生成およびメモリへの書込
図9には、プロセッサがシーン・データをメモリにおいて利用可能とするステップ(ステップ815,825,835,845)をより詳細に示している。このプロセスは、ステップ900で開始する。ステップ905において、プロセッサは、フレームframenに対するシーン・データを生成する。ステップ910において、framenシーン・データを書き込むべき中間バッファからジオメトリ・エンジンが読み取りを終了したかどうか、判定を行う。本発明の1実施形態では、この判定は、フラグのシステムを使用することによって行うことができ、そしてそれらフラグは、ジオメトリ・エンジンの読み取り動作の状態に依存してセットしたりリセットしたりする。ジオメトリ・エンジンがそのバッファからの読み取りを終了していない場合、ステップ915において、本プロセスは、ジオメトリ・エンジンがそのように行うのを完了するまで待機する。ジオメトリ・エンジンがそのバッファからの読み取りを終了したときに、ステップ920において、本プロセスは、フレームframenに関連したシーン・データをそのバッファに書き込むことに進む。このプロセスは、ステップ925で終了する。
【0035】
C.シーン・データの読み取りおよびレンダリング
図10には、ジオメトリ・エンジンがシーン・データを読み取りそしてレンダリングする図8のステップ(ステップ820,830,840,850)をより詳細に示している。このプロセスは、ステップ1000で開始する。ステップ1005において、ジオメトリ・エンジンがシーン・データを中間バッファから読み取る準備ができているかどうか、判定を行う。ジオメトリ・エンジンは、例えば、別のメモリ・ロケーションからの読み取りを依然として行っている最中であることがある。この場合、ジオメトリ・エンジンは、この現在のバッファからの読み取りの準備がまだできていないことになる。したがって、ステップ1010において、本プロセスは、ジオメトリ・エンジンがそのバッファからの読み取りの準備ができるまで待機しなければならない。ジオメトリ・エンジンの準備ができたとき、ステップ1015において、プロセッサは、ジオメトリ・エンジンに対し、フレームframenに関連するシーン・データ読み取りを行いそしてそのレンダリングを開始するよう知らせる。こうする際、プロセッサは、そのメモリ・アドレス、すなわちジオメトリ・エンジンがシーン・データを読み取るべきバッファ・ロケーションを指定する。本発明の1実施形態においては、ジオメトリ・エンジンがシーン・データの読み取りの準備ができているかどうかの判定は、フラグのシステムを使用して行うことができ、そしてそれらフラグは、ジオメトリ・エンジンの読み取りに対する準備の状態に依存してセットしたりリセットしたりする。ステップ1020では、ジオメトリ・エンジンは、バッファからフレームframenに関連するシーン・データの読み取り、そしてそのレンダリングを開始する。本プロセスは、ステップ1025で終了する。
【0036】
D.マルチ・スレッドおよびコンテキスト・スイッチング
OpenGL(登録商標)のような状態ベースのアプリケーション言語が使用されている場合、シーン・データのレンダリングにおける任意の所与の時点において、ある特定のコンテキストが有効となる。シーン・データのこのコンテキストは、現行のカラーあるいは現行のポリゴンの描画モードのような状態変数の現行の値を指し、そしてこれは、アプリケーションにより定義される。
【0037】
上述のように、本発明のある種の実施形態は、複数のプロセッサを備え、その各々は、それ自身のそれぞれのアプリケーションを実行する。ある所与のプロセッサは、このプロセッサがマルチタスキング能力をもつ場合には、多数のアプリケーションを実行することもできる。各アプリケーションは、それ自身のシーケンスの命令を有しているため、各アプリケーションは、それ自身のスレッドを有すると言える。このような実施形態では、複数のブロックのシーン・データを、1つの中間バッファに書き込む。このシーン・データの各ブロックは、互いに集合的に1つのフレームのためのシーン・データを表す。各アプリケーションまたはスレッドは、それ自身のコンテキストを定めるため、グラフィックス・ハードウェアは、それら複数のシーン・データ・ブロックにおいて表される複数のコンテキストを認識していなければならない。さらにまた、グラフィックス・ハードウェアは、1つのアプリケーションからの1つのシーン・データ・ブロックをレンダリングするときに、必要なコンテキスト・スイッチングを扱い、そして次に別のブロックに移ることができなければならない。
【0038】
図11には、本発明の1実施形態によるコンテキスト・スイッチングのプロセスを示している。図示した例示のシナリオでは、シーン・データのブロックblockiが終了し、そしてブロックblockjが開始する。ブロックblockiとblockjは、別々のアプリケーションを実行している別々のプロセッサが発生したものである。その結果、ブロックblockiとblockjは、異なったコンテキストを有している可能性があり、したがってジオメトリ・エンジンは、コンテキストをスイッチングできなければならない。このプロセスは、ステップ1105で開始する。ステップ1110では、ブロックblockiのレンダリングを中止させる。ステップ1115では、ブロックblockiのコンテキストをセーブする。ステップ1120では、ブロックblockjのコンテキストをロードする。ステップ1125では、ブロックblockjのレンダリングを開始させる。このプロセスは、ステップ1130で終了する。
【0039】
V.環境
上述のように、本発明は、コンピュータ・グラフィックス・システムの上記セッティングで動作し、そしてこれは、ハードウェア、ファームウェア若しくはソフトウェアまたはこれらの組み合わせによって実現することができる。図12には、そのようなシステムのより完全な例を示している。この説明を読めば、本発明を、他のコンピュータ・システムおよび/またはコンピュータ・アーキテクチャを使用して実現する方法が当業者には明かとなる。
【0040】
コンピュータ・システム1200は、プロセッサ305のような1つまたはそれより多いプロセッサを備えている。プロセッサ305は、バスまたはネットワークのような通信インフラストラクチャ1206に接続している。また、コンピュータ・システム1200は、メモリ115も備え、これは好ましくはランダム・アクセス・メモリ(RAM)である。プロセッサ305は、通信インフラストラクチャ1206を使用することによって、メモリ115と通信する。コンピュータ・システム1200はまた、二次メモリ1210を備えることもできる。二次メモリ1210は、例えば、ハードディスク・ドライブ1212と、フロッピ・ディスク・ドライブ、磁気テープ・ドライブ、光ディスク・ドライブ等を表すリムーバブル・ストレージ・ドライブ1214との一方または双方を備えることもできる。リムーバブル・ストレージ・ドライブ1214は、リムーバブル・ストレージ・ユニット1218に対する読み出しおよび書き込みの一方または双方を周知の方法で行う。リムーバブル・ストレージ・ユニット1218は、フロッピ・ディスク、磁気テープ、光ディスクまたはその他のストレージ媒体を表しており、これらは、リムーバブル・ストレージ・ドライブ1214によって読み出しおよび書き込みを行う。理解されるように、リムーバブル・ストレージ・ユニット1218は、コンピュータが使用可能なストレージ媒体であってこの中にコンピュータ・ソフトウェアおよびデータの一方または双方を格納したものを含む。
【0041】
代替の実現例においては、二次メモリ1210は、コンピュータ・プログラムまたは他の命令をコンピュータ・システム1200にロードできるようにするための他の手段を備えることもできる。このような手段は、例えば、リムーバブル・ストレージ・ユニット1222およびインターフェース1220を備えることもできる。このような手段の例には、プログラム・カートリッジおよびカートリッジ・インターフェース(例えば、ビデオゲーム・デバイスにおいて見られるもの)、リムーバブル・メモリ・チップ(例えばEPROMまたはPROM)および関連するソケット、並びに他のリムーバブル・ストレージ・ユニット1222およびインターフェース1220を備えることもでき、そしてこれらは、ソフトウェアおよびデータをリムーバブル・ストレージ・ユニット1222からコンピュータ・システム1200へ転送することができるようにする。
【0042】
上述の本発明の実施形態は、メモリ115中に実現した中間バッファを特徴に有しているが、中間バッファは代替的には、二次メモリ1210において実現することもできる。
【0043】
また、コンピュータ・システム1200は、通信インターフェース1224を備えることもできる。通信インターフェース1224は、ソフトウェアおよびデータをコンピュータ・システム1200および外部デバイスに転送することができるようにする。通信インターフェース1224の例には、モデム、ネットワーク・インターフェース(例えばイーサーネット・カード)、通信ポート、PCMCIAスロットおよびカード等が含まれ得る。通信インターフェース1224を介して転送するソフトウェアおよびデータは、信号1228の形態であり、そしてその信号は、通信インターフェース1224により受け取られ得る電子信号、電磁的信号、光信号その他の信号とすることができる。これら信号1228は、通信インターフェース1224に対し通信経路(すなわちチャンネル)1226を介して送る。このチャンネル1226は、信号1228を運び、そしてこれは、ワイヤまたはケーブル、光ファイバ、電話回線、セルラ電話回線、RFリンクおよび他の通信チャンネルを使用して実現することもできる。本発明の1実施形態では、ジオメトリ・エンジン310は、プロセッサ305から通信インターフェース1224および通信経路1226を介して命令を受け取る。本発明の1実施形態では、ジオメトリ・エンジン310はまた、シーン・データ120をメモリ115から通信インターフェース1224および通信経路1226を介して受け取る。
【0044】
本明細書においては、用語“コンピュータ・プログラム媒体”および“コンピュータ使用可能媒体”は、リムーバブル・ストレージ・ユニット1218,1222、ハードディスク・ドライブ1212にインストールするハードディスクのような媒体および信号1228を一般に指すよう使用している。これらコンピュータ・プログラム製品は、ソフトウェアをコンピュータ・システム1200に提供するための手段である。
【0045】
コンピュータ・プログラム(コンピュータ制御ロジックとも呼ぶ)は、メモリ115および二次メモリ1210の一方または双方に格納する。コンピュータ・プログラムはまた、通信インターフェース1224を介して受け取ることもできる。このようなコンピュータ・プログラムは、実行されたときには、コンピュータ・システム1200が上述の本発明を実施できるようにする。特に、コンピュータ・プログラムは、実行されたときには、プロセッサ305が、本発明を実施することができるようにする。したがって、このようなコンピュータ・プログラムは、コンピュータ・システム1200のコントローラを表している。本発明がソフトウェアを使用して実現される場合、このソフトウェアは、コンピュータ・プログラム製品に格納し、そしてリムーバブル・ストレージ・ドライブ1214、ハード・ドライブ1212または通信インターフェース1224を介してコンピュータ・システム1200へロードするようにすることもできる。本発明の1実施形態では、アプリケーション・プログラム110は、ソフトウェアで実現し、そしてこのためそれら手段の任意のものを介してプロセッサ305にとって利用可能なものとすることができる。
【0046】
VI.結び
以上、本発明の種々の実施形態について説明したが、理解されるべきように、それらは例示のために提示したものであって限定するためのものではない。当業者には明らかなように、本発明の要旨および範囲から逸脱せずに細部において種々の変更を行うことができる。したがって、本発明は、上述の例示の実施形態によって限定されるべきものではなく、添付の特許請求の範囲によってまたその均等物によって定められるべきものである。
【図面の簡単な説明】
【図1】 図1は、現行技術によるコンピュータ・グラフィックス・システムのアーキテクチャを示すブロック図。
【図2】 図2は、図1に示したタイプのコンピュータ・グラフィックス・システムから生ずるイベントのシーケンスを示すタイミング図。
【図3】 図3は、本発明に1実施形態による、コンピュータ・グラフィックス・システムのアーキテクチャを示すブロック図。
【図4】 図4は、本発明の1実施形態による、プロセッサとジオメトリ・エンジンと中間バッファとの間の相互作用を示すブロック図。
【図5】 図5Aは、本発明の1実施形態による、中間バッファ内に含まれたシーン・データのフラット編成を示すブロック図。
図5Bは、本発明の1実施形態による、中間バッファ内および他のメモリ・ロケーション内に含まれたシーン・データの階層的編成を示すブロック図。
【図6】 図6は、本発明の1実施形態による、多数のプロセッサとジオメトリ・エンジンと中間バッファとの間の相互作用を示すブロック図。
【図7】 図7は、本発明の1実施形態による、プロセッサによるシーン・データ生成と、グラフィックス・ハードウェアによるシーン・データの読み取りおよびレンダリングとの間の関係を示すタイミング図。
【図8】 図8は、本発明の1実施形態の全体の動作を示すフローチャート。
【図9】 図9は、本発明の1実施形態による、シーン・データをジオメトリ・エンジンに利用可能とするプロセスを示すフローチャート。
【図10】 図10は、本発明の1実施形態による、シーン・データの読み取りおよびレンダリングのプロセスを示すフローチャート。
【図11】 図11は、本発明の1実施形態による、コンテキスト・スイッチングのプロセスを示すフローチャート。
【図12】 図12は、本発明の計算環境を示すブロック図。

Claims (11)

  1. コンピュータシステム内のプロセッサによってコンピュータ・グラフィックス・シーン・データをジオメトリ・エンジンに送出する方法であって、
    プロセッサが第1のシーン・データを生成するステップであって、前記第1のシーン・データは、関連するアプリケーション・コンテキストを各々が含む複数のブロックを含む、ステップと、
    プロセッサが、前記第1シーン・データをシステム・メモリ内の第1の中間バッファに書き込むステップと、
    記ジオメトリ・エンジン、前記第1シーン・データを前記第1中間バッファから読み出ステップと、
    前記ジオメトリ・エンジンが前記第1のシーン・データをレンダリングし、同時に前記プロセッサが第2のシーン・データを生成するステップと、
    前記プロセッサが、前記第2のシーン・データを前記システム・メモリ内の第2の中間バッファに書き込むステップと、
    前記ジオメトリ・エンジンが、前記第2のシーン・データを前記第2の中間バッファから読み出すステップと、
    前記ジオメトリ・エンジンが前記第2のシーン・データをレンダリングするステップと
    から成る送出方法。
  2. 請求項1記載の方法において、前記第1のシーン・データは、自身のそれぞれのアプリケーションを実行する複数のプロセッサから生成される複数のブロックを含み、前記複数のブロックは集合的に単一のフレームとして解釈されることを特徴とする送出方法。
  3. 請求項1記載の方法であって、前記第1のシーン・データは複数のアプリケーション・コンテキストを含み、各アプリケーション・コンテキストは複数のアプリケーションを参照し、前記複数のブロックは集合的に単一のフレームとして解釈されることを特徴とする送出方法。
  4. 請求項記載の方法において、前記第1のシーン・データのレンダリングは、
    前記ジオメトリ・エンジンが、前記第1のシーン・データの第1のブロックの前記アプリケーション・コンテキストに従って前記第1のシーン・データの前記第1のブロックをレンダリングするステップと、
    前記ジオメトリ・エンジンが前記第1のシーン・データの前記第1のブロックのレンダリングを中止するステップと、
    前記ジオメトリ・エンジンが前記第1のシーン・データの前記第1のブロックの前記アプリケーション・コンテキストをセーブするステップと、
    前記ジオメトリ・エンジンが前記第1のシーン・データの第2のブロックの前記アプリケーション・コンテキストをロードするステップと、
    前記ジオメトリ・エンジンが、前記第1のシーン・データの前記第2のブロックの前記アプリケーション・コンテキストに従って、前記第1のシーン・データの前記第2のブロックをレンダリングするステップと
    からなること、を特徴とする送出方法。
  5. 請求項記載の方法において、前記ジオメトリ・エンジンが前記第2のシーン・データを読み出す準備ができていることを前記プロセッサに示すために、前記ジオメトリ・エンジンがフラグを設定するステップをさらに含むこと、を特徴とする送出方法。
  6. プロセッサによってコンピュータ・グラフィックス・シーン・データをジオメトリ・エンジンへ送出するシステムであって、
    第1の中間バッファ及び第2の中間バッファを含むシステム・メモリと、
    前記システム・メモリと通信するプロセッサであって、第1のシーン・データを生成し前記第1のシーン・データを前記第1の中間バッファに送信するように構成され、前記第1のシーン・データは、関連するアプリケーション・コンテキストを各々が含む複数のブロックを含む、プロセッサと、
    1組のグラフィックス・ハードウェア内の第1のモジュールを含み、前記プロセッサ及び前記システム・メモリと通信するジオメトリ・エンジンであって、前記プロセッサによる第2のシーン・データの生成とは独立して且つ同時に、前記第1の中間バッファから前記第1のシーン・データを読み出してレンダリングするように構成された、ジオメトリ・エンジンと、
    を備えること、
    を特徴とする送出システム。
  7. 請求項6記載のシステムにおいて、前記プロセッサは、前記第2のシーン・データを生成して前記第2のシーン・データを前記第2の中間バッファへ送信するようにさらに構成され、前記ジオメトリ・エンジンは、前記第2の中間バッファから前記第2のシーン・データを読み出してレンダリングするようにさらに構成されることを特徴とする送出システム。
  8. 請求項7記載のシステムにおいて、前記第1のシーン・データは、自身のそれぞれのアプリケーションを実行する複数のプロセッサから生成された複数のブロックを含み、前記複数のブロックは集合的に単一のフレームとして解釈されることを特徴とする送出システム。
  9. 請求項8記載のシステムにおいて、前記ジオメトリ・エンジンは、前記第1のシーン・データの第1のブロックの前記アプリケーション・コンテキストに従って前記第1のシーン・データの前記第1のブロックをレンダリングし、前記第1のシーン・データの前記第1のブロックのレンダリングを中止し、前記第1のシーン・データの前記第1のブロックの前記アプリケーション・コンテキストをセーブし、前記第1のシーン・データの第2のブロックの前記アプリケーション・コンテキストをロードし、前記第1のシーン・データの前記第2のブロックの前記アプリケーション・コンテキストに従って前記第1のシーン・データの前記第2のブロックをレンダリングするようにさらに構成されることを特徴とする送出システム。
  10. 請求項7記載のシステムにおいて、前記第1のシーン・データは複数のアプリケーション・コンテキストを含み、各アプリケーション・コンテキストは複数のアプリケーションを参照し、前記複数のブロックは集合的に単一のフレームとして解釈されることを特徴とする送出システム。
  11. コンピュータ上で実行されると請求項1乃至5のいずれかに記載の方法のすべてのステップを実行するコンピュータ実行可能命令を有するコンピュータ読取り可能な媒体。
JP2001520354A 1999-08-31 2000-08-31 単一のプロセッサを使用してのオーバーラップするグラフィックス・データの収集および伝送のための方法、システムおよびコンピュータ・プログラム製品 Expired - Lifetime JP4497445B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/386,378 US6636224B1 (en) 1999-08-31 1999-08-31 Method, system, and computer program product for overlapping graphics data collection and transmission using a single processor
US09/386,378 1999-08-31
PCT/US2000/040786 WO2001016883A2 (en) 1999-08-31 2000-08-31 Method, system, and computer program product for overlapping graphics data collection and transmission using a single processor

Publications (3)

Publication Number Publication Date
JP2003536124A JP2003536124A (ja) 2003-12-02
JP2003536124A5 JP2003536124A5 (ja) 2007-10-18
JP4497445B2 true JP4497445B2 (ja) 2010-07-07

Family

ID=23525345

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001520354A Expired - Lifetime JP4497445B2 (ja) 1999-08-31 2000-08-31 単一のプロセッサを使用してのオーバーラップするグラフィックス・データの収集および伝送のための方法、システムおよびコンピュータ・プログラム製品

Country Status (6)

Country Link
US (1) US6636224B1 (ja)
EP (1) EP1210691B1 (ja)
JP (1) JP4497445B2 (ja)
AT (1) ATE242900T1 (ja)
DE (1) DE60003320T2 (ja)
WO (1) WO2001016883A2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4190476B2 (ja) 2004-09-22 2008-12-03 株式会社ソニー・コンピュータエンタテインメント グラフィックプロセッサ、制御用プロセッサおよび情報処理装置
US7522167B1 (en) * 2004-12-16 2009-04-21 Nvidia Corporation Coherence of displayed images for split-frame rendering in multi-processor graphics system
US10210650B1 (en) * 2017-11-30 2019-02-19 Advanced Micro Devices, Inc. Primitive level preemption using discrete non-real-time and real time pipelines

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4855937A (en) 1984-08-08 1989-08-08 General Electric Company Data block processing for fast image generation
CA2038412C (en) * 1990-04-26 2001-10-16 Glenn M. Courtright Polygon sort engine
JPH04289980A (ja) * 1991-03-18 1992-10-14 Daikin Ind Ltd メモリ装置
JP2780575B2 (ja) * 1992-07-27 1998-07-30 松下電器産業株式会社 並列画像生成装置
EP0582875B1 (en) 1992-07-27 2001-10-31 Matsushita Electric Industrial Co., Ltd. Apparatus for parallel image generation
US5430841A (en) * 1992-10-29 1995-07-04 International Business Machines Corporation Context management in a graphics system
US5719598A (en) * 1993-08-23 1998-02-17 Loral Aerospace Corporation Graphics processor for parallel processing a plurality of fields of view for multiple video displays
JPH08115312A (ja) * 1994-10-14 1996-05-07 Fuji Xerox Co Ltd マルチメディア文書再生装置、マルチメディア文書編集装置およびマルチメディア文書編集再生装置
AU4471496A (en) * 1994-12-22 1996-07-10 Apple Computer, Inc. Three-dimensional graphics rendering system
US5777621A (en) 1994-12-22 1998-07-07 Apple Computer, Inc. Quality control mechanism for three-dimensional graphics rendering
US5646640A (en) * 1995-01-31 1997-07-08 Texas Instruments Incorporated Method for simulating views of a scene using expanded pixel data to reduce the amount of pixel data recalculations
US5727192A (en) 1995-03-24 1998-03-10 3Dlabs Inc. Ltd. Serial rendering system with auto-synchronization on frame blanking
US5886701A (en) 1995-08-04 1999-03-23 Microsoft Corporation Graphics rendering device and method for operating same
WO1997006512A2 (en) * 1995-08-04 1997-02-20 Microsoft Corporation Method and system for rendering graphical objects to image chunks and combining image layers into a display image
JPH0981769A (ja) * 1995-09-14 1997-03-28 Hitachi Ltd アニメーション作成システム

Also Published As

Publication number Publication date
US6636224B1 (en) 2003-10-21
EP1210691B1 (en) 2003-06-11
DE60003320T2 (de) 2004-05-13
WO2001016883A2 (en) 2001-03-08
ATE242900T1 (de) 2003-06-15
WO2001016883A3 (en) 2001-06-21
DE60003320D1 (de) 2003-07-17
JP2003536124A (ja) 2003-12-02
EP1210691A2 (en) 2002-06-05

Similar Documents

Publication Publication Date Title
US8194086B2 (en) Memory system and method for improved utilization of read and write bandwidth of a graphics processing system
US6380942B1 (en) Packetized command interface to a graphics processor
JPH04219859A (ja) 並列プロセッサに直列命令ストリームデータを分散するハードウェアディストリビュータ
WO2007140428A2 (en) Multi-threaded processor with deferred thread output control
JP4497445B2 (ja) 単一のプロセッサを使用してのオーバーラップするグラフィックス・データの収集および伝送のための方法、システムおよびコンピュータ・プログラム製品
CN110445874B (zh) 一种会话处理方法、装置、设备和存储介质
US8321869B1 (en) Synchronization using agent-based semaphores
US6771271B2 (en) Apparatus and method of processing image data
US7577762B1 (en) Cooperative scheduling for multiple consumers
CN114036085A (zh) 基于ddr4的多任务读写调度方法、计算机设备及存储介质
US6995770B2 (en) Command list controller for controlling hardware based on an instruction received from a central processing unit
US20240289911A1 (en) Tile-based machine learning graphics processing
JP3357243B2 (ja) 画像処理装置における設定データ変更装置
US12056787B2 (en) Inline suspension of an accelerated processing unit
JP2000293151A (ja) グラフィックス表示装置及びディスプレイリストによるグラフィックス表示方法
JPS6343784B2 (ja)
JPH03246654A (ja) データ転送制御方法
JP2001350714A (ja) データ処理装置
JP2000305751A (ja) 並列ソート装置及び該装置のプログラムを記録した記録媒体
JP2001111912A (ja) 割り込み処理方法及びプロセッサ装置
JP2003195847A (ja) グラフィック処理装置
JP2000298641A (ja) 情報処理装置およびそのデータ転送方法ならびにデータ転送制御プログラムを格納した記憶媒体
JPH07262132A (ja) 受信バッファ及びこれを用いた処理装置
JPH02197961A (ja) 情報処理装置
JPS63231669A (ja) デ−タの伝送方式

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070823

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070823

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20091125

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091208

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100308

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

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

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

Free format text: PAYMENT UNTIL: 20130423

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4497445

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20130423

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20140423

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term