JP2007108938A - グラフィックスシステム - Google Patents

グラフィックスシステム Download PDF

Info

Publication number
JP2007108938A
JP2007108938A JP2005297831A JP2005297831A JP2007108938A JP 2007108938 A JP2007108938 A JP 2007108938A JP 2005297831 A JP2005297831 A JP 2005297831A JP 2005297831 A JP2005297831 A JP 2005297831A JP 2007108938 A JP2007108938 A JP 2007108938A
Authority
JP
Japan
Prior art keywords
data
memory
input
register
address
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2005297831A
Other languages
English (en)
Other versions
JP4749824B2 (ja
Inventor
Hiroyasu Negishi
博康 根岸
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2005297831A priority Critical patent/JP4749824B2/ja
Publication of JP2007108938A publication Critical patent/JP2007108938A/ja
Application granted granted Critical
Publication of JP4749824B2 publication Critical patent/JP4749824B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Image Generation (AREA)
  • Image Processing (AREA)

Abstract

【課題】システム規模を大きくすることなくデータ入力や演算処理を高速化することができ、かつシェーダに容易に対応することができるグラフィックスシステムを提供する。
【解決手段】幾何学演算に必要なデータが保持されるローカルメモリFLM0〜FLM3と、FLM0〜FLM3に保持されたデータを用いて幾何学演算を実行する演算器FPU0〜FPU3とを有するSIMD型演算装置2と、データの読み出しアドレスを算出するアドレス生成器18と、入力データの型を変換する型変換器12と、FPU0〜FPU3に並列演算させる入力データ数がFLM数に満たない場合にFLMに初期値を設定する初期値レジスタ14とを備えた入力処理部3とを備える。
【選択図】図2

Description

この発明は、3次元グラフィックス処理を実行するSIMD(Single Instruction/Multiple Data)型演算装置を備えたグラフィックスシステムに関するものである。
3次元グラフィックス処理を実行する、従来のグラフィックスシステムとして、例えば特許文献1に開示される幾何学演算装置がある。この幾何学演算装置は、入力データを保持する入力メモリと、これに接続された複数の浮動小数点演算用メモリと、浮動小数点演算用メモリに接続されてSIMD型に動作する浮動小数点ユニットと、演算に必要なデータをメモリに転送する制御と演算制御を行うシーケンサと、クリッピング計算を高速化するためのクリッピング状態コード生成器と、クリップの状態を記憶するクリップコードレジスタとを備え、入力メモリから取り出した演算に必要なデータをSIMD型の演算器で並列演算することにより3次元グラフィックスの座標変換等の幾何学演算を高速に処理することができる。
特許第3203180号公報
従来では、幾何学演算に際しメモリから単純にデータを読み込む構成になっていた。このため、3次元グラフィックスの頂点に関する座標データ、法線データ、カラーデータ等について、これらが個別の領域に設定され、頂点の並び順にデータを入力する場合においても、また頂点インデックス等を介してランダムにアクセスするような場合においても、高速にデータを入力することができなかった。
また、特許文献1の装置ではデータ入力部分をソフトウェアで記述する必要があり、インデックスが格納されているメモリのアドレスを計算により求め、これに基づいてインデックス値を取り出してから次に座標、法線、カラーなどの必要なデータが格納されているメモリのアドレスをそれぞれ算出する必要があった。
メモリから取り出したデータには、Float型、符号付32ビット整数型、符号付16ビット整数型等のようにデータにバリエーションがある。これに対して、特許文献1の装置では、このようなデータのバリエーションに応じてソフトウェアにより型変換を実行する必要があった。
また、座標データではX,Y,Z,Wという4つの座標を1組とするが、場合によってはX,Y座標の値だけがメモリに格納され、Z,W座標の値はデフォルト値としてZ=0、W=1と決められていることがある。このような入力処理は複雑であり、ソフトウェアで頂点毎に実行する場合にはグラフィックスシステムの性能向上を妨げる要因になる。
この他、従来の装置では、命令メモリやローカルメモリを内部に持つため、機能を拡張する毎に回路規模が大きくなるという課題があった。
また、従来の装置は、シーケンサが一つのSIMD型演算のみにサポートされており、実行ステージが長い命令を使用した場合に計算結果待ちの時間が無駄になっていた。さらに、整数演算と4つのSIMD演算とを同時に実行できず、分岐処理等の整数演算処理とSIMDの浮動小数点演算を使用する数値演算処理とを並列処理できなかったため、これら演算処理を高速化できなかった。
特許文献1の幾何学演算装置はSIMD型の構成をとっているため、3次元グラフィックスにおける一連の処理がグラフィックスパイプラインと呼ばれる順序に従って実行されるだけであった。近年のグラフィックス処理はプログラム可能な処理に移行しており、多くは頂点単位の幾何学処理を行うジオメトリエンジンに相当する頂点シェーダとレンダリング処理の一部をプログラム可能にしたフラグメントシェーダとから構成されている。また、携帯電話等の小型な組み込み向けのグラフィックスシステムにおいてもシェーダ化が進んでいる。しかしながら、頂点シェーダとフラグメントシェーダに対応可能な2つのプロセッサを搭載にはシステム規模が大きくなり過ぎるという課題があった。
この発明は、上記のような課題を解決するためになされたもので、システム規模を大きくすることなくデータ入力や演算処理の高速化を図ることができ、かつシェーダに容易に対応することができるグラフィックスシステムを得ることを目的とする。
この発明に係るグラフィックスシステムは、幾何学演算に必要なデータが保持される複数の演算用メモリと、演算用メモリに接続され、各演算用メモリに保持されたデータを用いて幾何学演算を実行する複数の演算ユニットとを有する演算装置と、外部メモリに格納された幾何学演算に必要なデータの読み出しアドレスを算出するアドレス生成器と、算出結果のアドレスに基づき入力したデータの型を変換する型変換器と、演算装置の複数の演算ユニットに並列演算させる入力データ数が演算用メモリ数に満たない場合、自己が保持する一定値を演算用メモリに設定する補充用レジスタとを有する入力処理部を備えるものである。
この発明によれば、データの読み出し処理をソフトウェアで読み出しアドレスを計算することなく、アドレス生成器のハードウェア処理にて実行することができ、データ入力や演算処理を高速化することができるという効果がある。また、データの型変換を実行する専用のハードウェアである型変換器を設け、演算ユニットに並列演算させるデータの不足分を代替する初期値を演算用メモリに設定するので、データの型変換や不足分のデータの生成を高速に処理することができる。
実施の形態1.
図1は、この発明の実施の形態1によるグラフィックスシステムの構成を示すブロック図である。実施の形態1によるグラフィックスシステム1は、主な構成要素としてSIMD型演算装置(演算装置)2及び入力処理部3を有する。SIMD(Single Instruction/Multiple Data)型演算装置2は、特許文献1のように複数の浮動小数点演算器を含んで構成され、3次元グラフィックスの演算処理を行う。
入力処理部3は、SIMD型演算装置2と並列に動作してデータの読み出しアドレスを計算し、計算結果のアドレスに基づいてメモリから3次元グラフィックスの幾何学演算に必要なデータを入力する。ここで、入力処理部3は、入力したデータを型変換し、型変換したデータをSIMD型演算装置2内の浮動小数点演算用メモリへ並列に入力する。そして、SIMD型演算装置2を構成する浮動小数点演算用のメモリ数よりも入力データが少ない場合、初期値を選択して浮動小数点演算用メモリに入力することによりデータ数を合わせる。
図中で頂点データと表記した外部メモリ(データメモリ)4は、3次元グラフィックスの描画オブジェクトの頂点データを格納するメモリである。この頂点データには、座標データとしてX,Y,Z,W座標、カラーデータとしてR,G,B,A、テクスチャ座標としてS,T,R,Q等の4つのパラメータが使用される。なお、外部メモリ4は、例えばバス5を介して入力処理部3に接続し、データの読み出しが可能である。
図2は、図1中のSIMD型演算装置及び入力処理部の内部構成を示すブロック図である。図に示すSIMD型演算装置2は、複数の浮動小数点演算用メモリとして、例えば4並列の浮動小数点演算用のローカルメモリ(演算用メモリ)FLM0,FLM1,FLM2,FLM3を有し、その各々に浮動小数点演算器(演算ユニット)FPU0,FPU1,FPU2,FPU3が接続されており、さらに整数演算用のローカルメモリILM、これに接続された整数演算器IPU、命令メモリ9、シーケンサ10を有して構成される。
命令メモリ9には、SIMD型の浮動小数点演算器FPU0,FPU1,FPU2,FPU3と整数演算器IPUを制御するための動作命令が保持される。シーケンサ10は、命令メモリ9から読み出された命令に応じて、浮動小数点演算器FPU0,FPU1,FPU2,FPU3と整数演算器IPUによって並行してなされる、演算、ローカルメモリからのデータの読み出しや書き込み等の動作を制御する回路である。
レンダリングコントローラ6は、SIMD型演算装置2による演算結果を用いた3次元グラフィックス処理を実行する。バス7は、ローカルメモリFLM0,FLM1,FLM2,FLM3及びILMと入力処理部3とを結ぶグローバルバスである。バス8は、浮動小数点演算器FPU0,FPU1,FPU2,FPU3及び整数演算器IPUとレンダリングコントローラ6とを結ぶ出力バスである。
入力処理部3は、本発明に特有の構成要素であり、タイプレジスタ11、型変換器12、サイズレジスタ13、初期値レジスタ14、カウンタ15、ポインタレジスタ16、ストライドレジスタ17及びアドレス生成器18を含んで構成される。タイプレジスタ11では、入力処理部3が入力するデータの型(タイプ)を特定する所定の値が保持される。データ型としては、例えば整数型、浮動小数点型、固定小数点型などがある。
型変換器12は、タイプレジスタ11が保持するデータの型に関するビット値に応じて入力したデータについて整数型、浮動小数点型、固定小数点型などの型変換を行う回路である。サイズレジスタ13は、入力データのデータブロック毎の個数を保持するレジスタである。初期値レジスタ(補充用レジスタ)14は初期値を保持するレジスタである。この初期値は、入力処理部3が入力したデータのデータブロック毎の個数がSIMD型演算装置2のローカルメモリ数よりも少ない場合にその不足分を補うためにローカルメモリへ設定する所定の値である。
カウンタ15は、外部メモリ4から取得する頂点データ番号を示す値が保持され、頂点データの読み出しに伴ってその番号が増減されるカウンタである。ポインタレジスタ16は、外部メモリ4において頂点データが格納されるアドレスを保持するレジスタである。ストライドレジスタ17は、外部メモリ4における頂点データの配置された間隔を保持するレジスタである。アドレス生成器18は、ポインタレジスタ16、ストライドレジスタ17及びカウンタ15のそれぞれに設定された値から外部メモリにおける頂点データのアドレスを算出する回路である。
次に動作について説明する。
3次元グラフィックスにおける頂点データは、座標データとしてX,Y,Z,W座標、カラーデータとしてR,G,B,A、テクスチャ座標としてS,T,R,Qなど4つのパラメータが使用される。しかし、メモリ配置の効率化やメモリ転送量削減のため、4つのパラメータを使用せずX,Y,Zを指定し、Wは例えば1に固定することがある。また、使用する変数の型を浮動小数点から16ビット整数などに変更することでメモリの消費を抑えることがある。
頂点データを構成するデータとして、座標データと法線データを考える場合、頂点データは、図2中の外部メモリ4において例えば下記のように配置される。
図3及び図4は、頂点データを構成する座標データ及び法線データの外部メモリ上での配置例を示す図である。図3に示す例では、座標データと法線データを外部メモリ4の全く別の記憶領域にそれぞれ配置した場合を示している。また、図4では、座標データと法線データを同一の記憶領域に混在させた場合を示しており、例えば座標データと法線データを交互に配置している。
図3及び図4において、VPointerは記憶領域における座標データのアドレスであり、NPointerは記憶領域における法線データのアドレスである。また、VStrideは、外部メモリ4における座標データの配置された間隔を示しており、図3のように各頂点データの座標データが交互に配置されている場合であれば、座標データを構成する変数データの個数に相当する。また、図4のように頂点データの座標データと法線データが交互に配置されている場合であれば、VStrideは、法線データを挟んだ次の座標データまで間隔であり、法線データを構成する変数データの個数に相当する。
同様に、NStrideは、外部メモリ4における法線データの配置された間隔を示しており、図3のように各頂点データの法線データが交互に配置されている場合であれば、法線データを構成する変数データの個数に相当する。また、図4のように頂点データの座標データと法線データが交互に配置されている場合であれば、NStrideは、座標データを挟んだ次の法線データまで間隔であり、座標データを構成する変数データの個数に相当する。なお、座標データ及び法線データを構成する変数データは、例えば外部メモリのアドレスを構成する1アドレス単位で規定される記憶領域に配置される。
本発明は、上述のようにデータの配置やデータ型のバリエーションの組み合わせが多い中でデータ取り込み処理を高速化するものである。以下に具体例を挙げて説明する。
説明の前提として、SIMD型演算装置は、図2に示すように、4つの浮動小数点演算器FPU0,FPU1,FPU2,FPU3とこれらにそれぞれ接続するローカルメモリFLM0,FLM1,FLM2,FLM3で構成されているものとする。また、図3に示すように各頂点データの座標データのみを外部メモリ4の所定の領域に格納した場合において、指定したアドレスから頂点データが格納された順番で座標データを取り出していく動作を説明する。
先ず、外部メモリ4における座標データが格納されている領域のアドレスをポインタレジスタ16に設定し、外部メモリ4に格納された何番目の頂点データから読み出すのかを示す値をカウンタ15に設定する。例えば、ポインタレジスタ16に設定したアドレスから座標データを逐次読み出す場合であれば、カウンタ15に「0」を設定(つまり、最初の0番目の頂点データ)し、2番目の頂点データの座標データを読み出す場合は、カウンタ15に「2」を設定する。
さらに、ストライドレジスタ17には、1頂点データ分の座標データを構成する変数データの個数を設定する。例えば、1頂点データあたりX,Y,Z,Wの座標データのみが隙間なく設定されている場合、4つの変数データより「4」をVStrideとしてストライドレジスタ17に設定する。この場合、座標データは4アドレス単位毎に外部メモリの記憶領域に配置される。
アドレス生成器18では、カウンタ15に設定されたcounter値、ポインタレジスタ16に設定されたVPointer値及びストライドレジスタ17に設定されたVStride値に基づいて下記式(1)に従い、外部メモリ4から読み出すべき座標データのアドレスaddを決定する。なお、*は乗算を示す。
add=VPointer+VStride*counter (1)
このように、アドレス生成器18は、counter値とVStride値を乗算する乗算器と、この乗算結果とVPointer値を加算する加算器とから構成することができる。つまり、ポインタレジスタ16に最初に読み出すデータのアドレスを設定することにより、アドレス生成器18のハードウェア処理で次回のデータのアドレスが逐次算出される。
入力処理部3は、アドレス生成器18で算出されたアドレスにより示されるメモリから座標データをサイズレジスタ13に設定される個数分だけ読み出し、型変換器12に入力する。型変換器12では、入力データに対してタイプレジスタ11で示される型変換が行われる。例えば、タイプレジスタ11に設定された有効ビット幅となるようにビット拡張する型変換や、16ビット固定小数点から浮動小数点への変換等が実行される。型変換の方法については既存の技術を用いる。
ここで、サイズレジスタ13に設定された値が「4」であり4データを取り出す場合、型変換後のデータが、バス7を介してFLM0,FLM1,FLM2,FLM3へ各々入力される。また、サイズレジスタ13で設定されている値が4未満の場合、入力すべきデータがないFLMに対して初期値レジスタ14に設定された初期値を入力する。
FLM0〜FLM3に入力されたデータは、命令メモリ9に設定された命令で指定される演算をシーケンサ10により制御してFPU0〜FPU3が並行に処理を実行する。次の頂点データの座標データを読み出す場合、カウンタ15の設定値がインクリメントされ、アドレス生成器18において次の座標データの場所を示すアドレスが算出される。これにより、上述と同様の処理にて次の頂点データの座標データが読み出され、SIMD型演算装置2により演算処理される。この処理結果は、バス8を介してレンダリングコントローラ6に入力され、SIMD型演算装置2による3次元グラフィックスの演算結果を用いた処理が実行される。
なお、上記説明では頂点データの座標データのみを読み出す場合を例を挙げたが、座標データ以外の頂点データである、法線データ等を読み出す場合には、タイプレジスタ11、型変換器12、サイズレジスタ13、初期値レジスタ14、カウンタ15、ポインタレジスタ16、ストライドレジスタ17及びアドレス生成器18で構成される入力処理部3を、頂点データを構成するデータのバリエーション毎に複数用意する。これにより、それぞれの頂点データの読み出しに対応することができる。
例えば、図4のように頂点データの座標データと法線データが交互に配置されている場合を説明する。この場合、座標データについての入力処理部3と法線データについての入力処理部3が設けられ、これらのポインタレジスタ16には法線データが格納されているアドレスが設定され、カウンタ15には何番目の頂点データから読み出すのかを示す値が設定される。
ここで、座標データのみの場合と異なり、座標データについての入力処理部3のストライドレジスタ17には、1頂点データ分の法線データを構成する変数データの個数がVStrideとして設定される。また、法線データについての入力処理部3のストライドレジスタ17には、1頂点データ分の座標データを構成する変数データの個数がNStrideとして設定される。
これにより、各入力処理部3のアドレス生成器18は、カウンタ15に設定されたcounter値、ポインタレジスタ16の設定値及びストライドレジスタ17の設定値に基づいて上記式(1)に従い、外部メモリから読み出すべき座標データ及び法線データのアドレスaddをそれぞれ決定する。以降の処理は、座標データのみの場合と同様である。
以上のように、この実施の形態1によれば、幾何学演算に必要なデータが保持されるローカルメモリFLM0〜FLM3と、FLM0〜FLM3に保持されたデータを用いて幾何学演算を実行する演算器FPU0〜FPU3とを有するSIMD型演算装置2と、データの読み出しアドレスを算出するアドレス生成器18と、入力データの型を変換する型変換器12と、FPU0〜FPU3に並列演算させる入力データ数がFLM数に満たない場合にFLMに設定される初期値を保持する初期値レジスタ14とを備えた入力処理部3とを備えるので、3次元グラフィックスの頂点データとして座標、法線、カラー、4つのマルチテクスチャ対応のテクスチャ座標、マトリックスパレット、マトリックスウエイト、点サイズなど10種類にも及ぶデータの読み出し処理をソフトウェアで読み出しアドレスを計算することなく、アドレス生成器18のハードウェア処理により高速化することができる。
また、タイプレジスタ11の設定値に基づいて型変換を実行する専用のハードウェアである型変換器12やサイズレジスタ13の設定値に基づいて不足分データを代替する初期値をFLMに設定する専用のハードウェアである初期値レジスタ14を設けたので、データの型変換や不足分のデータの生成を高速に処理することができる。
上述の構成で、データ読み出しの終了に伴ってカウンタ15をインクリメントして次のデータの読み出し処理を実行することにより、ソフトウェアによるグラフィックス処理とデータ読み出し処理を並列して動作させることが可能になり処理を高速化できる。
実施の形態2.
上記実施の形態1では取り込みデータを順番に取り込む場合を示したが、本実施の形態2は頂点データを読み出す順番を格納したインデックスバッファを設け、インデックスバッファで示される頂点データを取り出すものである。
図5は、この発明の実施の形態2によるグラフィックスシステムの構成を示すブロック図である。図中でインデックスデータと表記したインデックスバッファ19は、頂点データの読み出し順を示すインデックスデータを格納し、バス5を介して実施の形態2による入力処理部3Aからデータ読み出しが可能である。実施の形態2による入力処理部3Aは、上記実施の形態1で示した構成に加え、インデックスポインタレジスタ20、インデックスアドレス生成器21及び切替器22,23を有する。
インデックスポインタレジスタ20は、頂点データを読み出す順番を格納したインデックスバッファの先頭アドレスを保持するレジスタである。インデックスアドレス生成器21は、インデックスポインタレジスタ20の設定値とカウンタ15のカウント値に基づいてインデックスバッファのアドレスを生成する回路である。
切替器(第1の切替器)22は、アドレス生成器18への入力としてインデックスバッファ19のインデックスデータとカウンタ15の設定値のいずれかに切り替える回路である。また、切替器(第2の切替器)23は、カウンタ15の出力先をインデックスアドレス生成器21と切替器22のいずれかに切り替える回路である。なお、図2と同一又はこれに相当する構成要素には同一符号を付し重複する説明を省略している。
上述のように、本実施の形態2では、何番目の頂点データを読み出すかを示す情報を、カウンタ15によるシーケンシャルな順番だけでなく、インデックスバッファ19を使ったランダムな指定を可能にしている。
次に動作について説明する。
先ず、インデックスバッファ19のインデックスデータをアドレス生成器18へ入力するように切替器22のセレクタを設定し、切替器23のセレクタをインデックスアドレス生成器21へ出力するように設定する。次に、インデックスバッファ19の開始アドレスをiPointerとしてインデックスポインタレジスタ20に設定し、参照開始するインデックスバッファ番号をcounter値としてカウンタ15に設定する。
インデックスアドレス生成器21は、カウンタ15の設定値であるcounterとインデックスポインタレジスタ20の値であるiPointerとの値から下記式(2)に従い、インデックスバッファ19のアドレスindex_addを計算する。
index_add=iPointer*counter ・・・(2)
インデックスアドレス生成器21が算出したアドレスindex_addに基づいて、インデックスバッファ19から読み出されたインデックス値indexは、切替器22に入力される。切替器22は、入力したインデックス値indexをアドレス生成器18へ出力する。これにより、アドレス生成器18は、下記式(3)に従って外部メモリ4における頂点データのアドレスを計算する。以降の動作は、上記実施の形態1と同様である。
add=VPointer+VStride*index ・・・(3)
以上のように、この実施の形態2によれば、入力処理部3Aが、インデックスポインタレジスタ20の設定値とカウンタ15のカウント値に基づいてインデックスバッファのアドレスを生成するインデックスアドレス生成器21、アドレス生成器18への入力としてインデックスバッファ19のインデックスデータとカウンタ15の設定値のいずれかに切り替える切替器22、及びカウンタ15の出力先をインデックスアドレス生成器21と切替器22のいずれかに切り替える切替器23を有する。
これにより、2つのメモリ(頂点データを格納する外部メモリ4、インデックスバッファ19)からのデータ読み出しをハードウェア処理にて実行させることができ、頂点データの読み出しをカウンタ15の設定値によるシーケンシャルな順番だけでなく、インデックスバッファ19を使ってランダムに指定することができる。
また、上記実施の形態1と同様に、タイプレジスタ11の設定値に基づいて型変換を実行する専用のハードウェアである型変換器12やサイズレジスタ13の設定値に基づいて不足分データを代替する初期値をFLMに設定する専用のハードウェアである初期値レジツタ14を設けたので、データの型変換や不足分のデータの生成を高速に処理することができる。
上述の構成で、データ読み出しの終了に伴ってカウンタ15をインクリメントして次のデータの読み出し処理を実行することにより、ソフトウェアによるグラフィックス処理とデータ読み出し処理を並列して動作させることが可能になり処理を高速化できる。
実施の形態3.
図6は、この発明の実施の形態3によるグラフィックスシステムの構成を示すブロック図である。外部命令メモリ24は、命令メモリ9を内部キャッシュメモリとして機能する外付けメモリである。また、外部命令メモリ24は、バス5を介して入力処理部3からデータの読み出し及び書き込みが可能である。
外部演算メモリ25は、FLM0,FLM1,FLM2,FLM3,ILMを内部キャッシュメモリとして機能する外付けメモリである。この外部演算メモリ25は、バス5を介して入力処理部3からデータの読み出し及び書き込みが可能である。なお、図2と同一又はこれに相当する構成要素には同一符号を付し重複する説明を省略している。
ここで、命令メモリ9とローカルメモリFLM0,FLM1,FLM2,FLM3,ILMで通常の演算処理において使用される記憶容量をキャッシュ容量とする。そして、外部命令メモリ24と外部演算メモリ25には、通常の演算処理に加え、付加的な処理や希な処理などにおける動作命令や処理対象データを格納する。
以上のように、この実施の形態3によれば、命令メモリ9を内部キャッシュメモリとして機能する外部命令メモリ24と、FLM0,FLM1,FLM2,FLM3,ILMを内部キャッシュメモリとして機能する外部演算メモリ25とを備えたので、通常の3次元グラフィックス処理の性能劣化は発生せず、付加的な処理や希な処理などを実行する場合に命令メモリ9の容量やローカルメモリFLM,ILMの容量を意識することなく機能を拡張することができる。
実施の形態4.
図7は、この発明の実施の形態4によるグラフィックスシステムの構成を示すブロック図である。再データ入力部(データ入力部)26は、バス8を介して浮動小数点演算器FPU0〜FPU3に接続されたレンダリングコントローラ6からの出力データをローカルメモリFLM0〜FLM3に再び入力するための回路である。この再データ入力部26により、本実施の形態4によるグラフィックスシステム1を、組み込み用の3次元グラフィックスのシェーダとして利用することが可能となる。なお、図2と同一又はこれに相当する構成要素には同一符号を付し重複する説明を省略している。
3次元グラフィックスの処理は、頂点単位に座標変換やライティング計算を行う幾何学演算処理と、塗りつぶすピクセル単位に色補間、テクスチャ付けを行うフラグメント処理に分けることができる。これらの処理は、グラフィックスライブラリ毎に決められた処理で実行されていたが、近年これらの処理をプログラム化してユーザが自由に処理を記述できる傾向にある。このプログラム可能な処理を実現する部分はシェーダと一般に呼ばれている。実際にはシェーダは、アセンブラや高級言語によって記述されたソースをコンパイルあるいはアセンブルしたコードを実行することで実現される。
本実施の形態4によるグラフィックスシステム1は、幾何学演算を行うことを目的としているため、頂点シェーダプログラムの動作命令を命令メモリ9に保持することで容易に対応可能である。上述した課題に挙げたように、携帯電話等の小型な組み込み向けの3次元グラフィックスの場合、頂点シェーダに加えてフラグメントシェーダを搭載することは回路規模的に難しい。
これに対して、本実施の形態4によるグラフィックスシステム1は、レンダリングコントローラ6から出力されるピクセル毎のデータを、再データ入力部26によりグラフィックスシステム1に再度取り込むことを可能にしたことにより、頂点シェーダとフラグメントシェーダに対応することができる。
次に動作について説明する。
図8は実施の形態4によるグラフィックスシステムの動作を示すフローチャートであり、図9は実施の形態4によるグラフィックスシステムとレンダリングコントローラの動作関係を説明するためのブロック図である。図9に示すように、本実施の形態4によるグラフィックスシステム1は、幾何学演算処理を実行する頂点シェーダとして動作する。
先ず、グラフィックスシステム1の入力処理部3は、上記実施の形態1と同様な処理により、バス5を介して外部メモリ4から頂点データを入力する(ステップST1)。この頂点データは、SIMD型演算装置2に入力され、頂点単位の座標変換やライティング演算等の幾何学処理が実行される(ステップST2)。
この後、図9に示すように、SIMD型演算装置2による頂点毎の演算結果が、バス8を介してレンダリングコントローラ6に設定される。レンダリングコントローラ6では、例えば三角形を描画する場合であれば、SIMD型演算装置2からレンダリングコントローラ6へ三角形の3頂点のデータが逐一設定され、これら3頂点で構成される三角形の内部のピクセルを生成するラスタライズ処理が実行される。
再データ入力部26は、レンダリングコントローラ6によるラスタライズ処理結果のピクセル情報である座標、カラー、テクスチャ座標等のデータを、バス7を介してグラフィックスシステム1にピクセル単位で入力する。グラフィックスシステム1のSIMD型演算装置2は、入力したラスタライズ処理結果に基づいて、上述した3頂点の三角形内を塗りつぶすピクセル単位の色補間やテクスチャ付けを行うフラグメント処理を実行する(ステップST3)。1ピクセルの処理が終了すると、その処理結果はバス8を介してレンダリングコントラーラ6に入力される。レンダリングコントラーラ6では、図9に示すように、入力した処理結果に基づいてフレームメモリへの描画処理を実行する。
次に、グラフィックスシステム1のSIMD型演算装置2は、三角形を構成する全ピクセル分を処理したか否かを判定し(ステップST4)、未処理のピクセルがあれば、ステップST3の処理に戻って再データ入力部26によりレンダリングコントローラ6から次の1ピクセルのラスタライズ処理結果を読み込みフラグメント処理を実行する。このピクセル単位のフラグメント処理結果が、バス8を介してレンダリングコントラーラ6に逐次入力され、フレームメモリへの描画処理が実行される。
一方、三角形を構成する全ピクセルの処理を完了すると、SIMD型演算装置2は、外部メモリ4における処理対象となる全ての頂点データを処理したか否かを判定し(ステップST5)、次に処理すべき頂点がある場合であれば、ステップST1の処理に戻って入力処理部3によりその頂点データを外部メモリ4から読み込んで幾何学演算処理を行う。また、処理対象の頂点がなければ処理を終了する。このような処理を繰り返すことで、頂点シェーダとフラグメントシェーダに対応することが可能になる。
以上のように、この実施の形態4によれば、レンダリングコントローラ6から出力されるピクセル毎のデータをグラフィックスシステム1に再度取り込む再データ入力部26を設けたので、レンダリングコントローラ6を別個のプロセッサで実現し、本実施の形態4によるグラフィックスシステム1との間でのデータ送受が可能となったことから、組み込み用の3次元グラフィックスのシェーダとして処理をレンダリングコントローラ6との分散して実行することができる。これにより、回路規模を大きくすることなく、本実施の形態4によるグラフィックスシステム1を、組み込み用の3次元グラフィックスのシェーダとして利用することが可能となる。
実施の形態5.
本実施の形態5は、上記実施の形態4のグラフィックスシステム1に命令メモリとシーケンサをさらに追加することで、複数のFPUを各命令メモリ及びシーケンサ毎のグループに分けて動作させるようにしたものである。
図10は、この発明の実施の形態5によるグラフィックスシステムの構成を示すブロック図である。実施の形態5のSIMD型演算装置2Aは、上記実施の形態4で示した構成に命令メモリ9aとシーケンサ10aを追加している。命令メモリ9aは、上記実施の形態1と同様に、SIMD型の浮動小数点演算器FPU0,FPU1,FPU2,FPU3と整数演算器IPUを制御するための動作命令が保持される。また、シーケンサ10aも、上記実施の形態1と同様に、命令メモリ9aから読み出された命令に応じて、浮動小数点演算器FPU0,FPU1,FPU2,FPU3と整数演算器IPUにより並行してなされる、演算、ローカルメモリからのデータの読み出しや書き込み等の動作を制御する。なお、図7と同一又はこれに相当する構成要素には同一符号を付し重複する説明を省略している。
次に動作について説明する。
命令メモリ9とシーケンサ10、命令メモリ9aとシーケンサ10aによって複数のFPUを2つの処理グループに分けて動作させる例を説明する。ここでは、幾何学処理とフラグメント処理を実行するFPUを分離させて並列して動作させる。
先ず、グラフィックスシステム1の入力処理部3は、上記実施の形態1と同様な処理により、バス5を介して外部メモリ4から頂点データを入力する。この頂点データは、SIMD型演算装置2に入力される。SIMD型演算装置2では、例えば命令メモリ9に格納された動作命令に従うシーケンサ10の制御の下で、頂点単位の座標変換やライティング演算等の幾何学処理が実行される。
この後、SIMD型演算装置2による頂点毎の演算結果が、バス8を介してレンダリングコントローラ6に設定される。レンダリングコントローラ6では、例えば三角形を描画する場合であれば、SIMD型演算装置2からレンダリングコントローラ6へ三角形の3頂点のデータが逐一設定され、これら3頂点で構成される三角形の内部のピクセルを生成するラスタライズ処理が実行される。
再データ入力部26は、レンダリングコントローラ6によるラスタライズ処理結果のピクセル情報である座標、カラー、テクスチャ座標等のデータを、バス7を介してグラフィックスシステム1にピクセル単位で入力する。グラフィックスシステム1のSIMD型演算装置2は、入力したラスタライズ処理結果に基づいて、例えば命令メモリ9a及びシーケンサ10aによりフラグメント処理を実行する。1ピクセルの処理が終了すると、その処理結果はバス8を介してレンダリングコントラーラ6に入力される。レンダリングコントラーラ6では、入力した処理結果に基づいてフレームメモリへの描画処理を実行する。
次に、グラフィックスシステム1のSIMD型演算装置2では、命令メモリ9aに格納された動作命令に従うシーケンサ10aの制御の下、三角形を構成する全ピクセル分を処理したか否かを判定し、未処理のピクセルがあれば、再データ入力部26によりレンダリングコントローラ6から次の1ピクセルのラスタライズ処理結果を読み込みフラグメント処理を実行する。このピクセル単位のフラグメント処理結果が、バス8を介してレンダリングコントラーラ6に逐次入力され、フレームメモリへの描画処理が実行される。
一方、三角形を構成する全ピクセルの処理を完了すると、SIMD型演算装置2は、命令メモリ9に格納された動作命令に従うシーケンサ10の制御の下、外部メモリ4における処理対象となる全ての頂点データを処理したか否かを判定し、次に処理すべき頂点がある場合であれば、入力処理部3によりその頂点データを外部メモリ4から読み込んで幾何学演算処理を行う。また、処理対象の頂点がなければ処理を終了する。このような処理を繰り返すことで、頂点シェーダとフラグメントシェーダに対応することが可能になる。
以上のように、この実施の形態5によれば、SIMD型演算装置2Aが、命令メモリ9,9aとシーケンサ10,10aを備え、命令メモリ9及びシーケンサ10に対して、命令メモリ9a及びシーケンサ10aとによってFPU0〜FPU3を2つの処理内容(例えば、幾何学処理とフラグメント処理)に分けて並列して動作させるので、処理の高速化を実現することができる。
この発明の実施の形態1によるグラフィックスシステムの構成を示すブロック図である。 図1中のSIMD型演算装置及び入力処理部の内部構成を示すブロック図である。 頂点データを構成する座標データ及び法線データの外部メモリ上での配置例を示す図である。 頂点データを構成する座標データ及び法線データの外部メモリ上での配置例を示す図である。 この発明の実施の形態2によるグラフィックスシステムの構成を示すブロック図である。 この発明の実施の形態3によるグラフィックスシステムの構成を示すブロック図である。 この発明の実施の形態4によるグラフィックスシステムの構成を示すブロック図である。 実施の形態4によるグラフィックスシステムの動作を示すフローチャートである。 実施の形態4によるグラフィックスシステムとレンダリングコントローラの動作関係を説明するためのブロック図である。 この発明の実施の形態5によるグラフィックスシステムの構成を示すブロック図である。
符号の説明
1 グラフィックスシステム、2 SIMD型演算装置(演算装置)、3 入力処理部、4 頂点データ(外部メモリ、データメモリ)、5,7,8 バス、6 レンダリングコントローラ、9,9a 命令メモリ、10,10a シーケンサ、11 タイプレジスタ、12 型変換器、13 サイズレジスタ、14 初期値レジスタ(補充用レジスタ)、15 カウンタ、16 ポインタレジスタ、17 ストライドレジスタ、18 アドレス生成器、19 インデックスバッファ、20 インデックスポインタレジスタ、21 インデックスアドレス生成器、22,23 切替器(第1の切替器、第2の切替器)、24 外部命令メモリ、25 外部演算メモリ、26 再データ入力部(データ入力部)。

Claims (7)

  1. 幾何学演算に必要なデータが保持される複数の演算用メモリと、前記演算用メモリに接続され、前記各演算用メモリに保持されたデータを用いて幾何学演算を実行する複数の演算ユニットとを有する演算装置と、
    データメモリに格納された前記幾何学演算に必要なデータの読み出しアドレスを算出するアドレス生成器と、算出結果のアドレスに基づいて前記データメモリから入力したデータを型変換する型変換器と、前記演算装置の複数の演算ユニットに並列演算させる入力データ数が前記演算用メモリ数に満たない場合、自己が保持する一定値を前記演算用メモリに設定する補充用レジスタとを有する入力処理部を備えたグラフィックスシステム。
  2. 入力処理部は、入力データの型を指定する情報を保持するタイプレジスタと、入力データの個数を保持するサイズレジスタと、データメモリの格納順に応じて各データに規定した通し番号が計数されるカウンタと、前記データメモリにおける前記データの先頭アドレスを保持するポインタレジスタと、前記データメモリにおけるデータ間のアドレス間隔を保持するストライドレジスタとを備え、
    型変換器は、前記タイプレジスタの内容に応じて入力データの型を変換し、
    補充用レジスタは、前記サイズレジスタの内容から入力データ数が演算用メモリ数に満たない場合に自己が保持する値を前記演算用メモリに設定し、
    アドレス生成器は、前記ポインタレジスタに保持された先頭アドレスに対し、前記カウンタと前記ストライドレジスタの値を用いて求めたアドレス間隔を加算することにより、所望のデータの読み出しアドレスを算出することを特徴とする請求項1記載のグラフィックスシステム。
  3. 通し番号をインデックスデータとしてその番号順に格納したインデックスバッファの先頭アドレスを保持するインデックスポインタレジスタと、
    カウンタと前記インデックスポインタレジスタの値を用いてインデックスアドレスを算出するインデックスアドレス生成器と、
    アドレス生成器への入力を、前記インデックスアドレスに基づいてインデックスバッファから読み出されたインデックスデータと前記カウンタの出力とのいずれか一方に切り替える第1の切替器と、
    前記アドレス生成器と前記インデックスアドレス生成器とのいずれか一方に前記カウンタからの出力先を切り替える第2の切替器とを備えたことを特徴とする請求項2記載のグラフィックスシステム。
  4. 演算装置は、演算内容を指定する動作命令を保持する命令メモリと、前記命令メモリの保持内容に応じて演算ユニットによる演算を制御するシーケンサとを備えたことを特徴とする請求項1から請求項3のうちのいずれか1項記載のグラフィックスシステム。
  5. 命令メモリをキャッシュとして動作させる外部命令メモリと、演算用メモリをキャッシュとして動作させる外部演算メモリとを備えたことを特徴とする請求項4記載のグラフィックスシステム。
  6. 命令メモリ及びシーケンサを複数組備え、前記命令メモリと前記シーケンサの組毎の制御により演算ユニットに演算処理を実行させることを特徴とする請求項4又は請求項5記載のグラフィックスシステム。
  7. 演算ユニットと接続し、その演算結果を用いてグラフィックス処理を実行するレンダリングコントローラと、
    前記レンダリングコントローラによる処理結果を前記演算装置の演算ユニットによる処理対象として入力するデータ入力部とを備えたことを特徴とする請求項1から請求項6のうちのいずれか1項記載のグラフィックスシステム。
JP2005297831A 2005-10-12 2005-10-12 グラフィックスシステム Expired - Fee Related JP4749824B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005297831A JP4749824B2 (ja) 2005-10-12 2005-10-12 グラフィックスシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005297831A JP4749824B2 (ja) 2005-10-12 2005-10-12 グラフィックスシステム

Publications (2)

Publication Number Publication Date
JP2007108938A true JP2007108938A (ja) 2007-04-26
JP4749824B2 JP4749824B2 (ja) 2011-08-17

Family

ID=38034768

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005297831A Expired - Fee Related JP4749824B2 (ja) 2005-10-12 2005-10-12 グラフィックスシステム

Country Status (1)

Country Link
JP (1) JP4749824B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010277304A (ja) * 2009-05-28 2010-12-09 Fujitsu Semiconductor Ltd 描画データ処理方法、図形描画システム、及び図形描画データ作成プログラム
CN109816761A (zh) * 2018-12-25 2019-05-28 东软集团股份有限公司 图形转换方法、装置、存储介质和电子设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001042903A1 (fr) * 1999-12-07 2001-06-14 Hitachi, Ltd. Appareil et systeme de traitement de donnees
JP2003175274A (ja) * 2003-01-08 2003-06-24 Namco Ltd ゲームシステム及び情報記憶媒体
JP2004032494A (ja) * 2002-06-27 2004-01-29 Ricoh Co Ltd 画像処理装置及び画像処理方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001042903A1 (fr) * 1999-12-07 2001-06-14 Hitachi, Ltd. Appareil et systeme de traitement de donnees
JP2004032494A (ja) * 2002-06-27 2004-01-29 Ricoh Co Ltd 画像処理装置及び画像処理方法
JP2003175274A (ja) * 2003-01-08 2003-06-24 Namco Ltd ゲームシステム及び情報記憶媒体

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010277304A (ja) * 2009-05-28 2010-12-09 Fujitsu Semiconductor Ltd 描画データ処理方法、図形描画システム、及び図形描画データ作成プログラム
CN109816761A (zh) * 2018-12-25 2019-05-28 东软集团股份有限公司 图形转换方法、装置、存储介质和电子设备
CN109816761B (zh) * 2018-12-25 2023-03-21 东软集团股份有限公司 图形转换方法、装置、存储介质和电子设备

Also Published As

Publication number Publication date
JP4749824B2 (ja) 2011-08-17

Similar Documents

Publication Publication Date Title
JP5242771B2 (ja) 混合精度命令実行を伴うプログラマブルストリーミングプロセッサ
JP4759614B2 (ja) 処理装置
US6624819B1 (en) Method and system for providing a flexible and efficient processor for use in a graphics processing system
US8644643B2 (en) Convolution filtering in a graphics processor
US20090051687A1 (en) Image processing device
US11004258B2 (en) Combined world-space pipeline shader stages
US6037947A (en) Graphics accelerator with shift count generation for handling potential fixed-point numeric overflows
CN114461543A (zh) 用于存储器分级体系的压实的方法和装置
JP6918919B2 (ja) 自動的にコンパイルされたコンピュートシェーダを用いるプリミティブカリング
JP3878307B2 (ja) プログラマブルなデータ処理装置
JP6215951B2 (ja) 中央プロセッサ、およびグラフィックプロセッサ用ハイブリッドエンジン
JP4637640B2 (ja) 図形描画装置
TW201724010A (zh) 對於具有較寬單指令多資料(simd)執行寬度之3d管線增加執行緒酬載的技術
JP4749824B2 (ja) グラフィックスシステム
JP2023525725A (ja) データ圧縮の方法及び装置
US20080122843A1 (en) Multi-thread vertex shader, graphics processing unit and flow control method
CN116257208A (zh) 用于矩阵乘法阵列上的可分离卷积过滤器操作的方法和装置
US6016149A (en) Lighting unit for a three-dimensional graphics accelerator with improved processing of multiple light sources
JPH07295787A (ja) 演算処理装置
US8427490B1 (en) Validating a graphics pipeline using pre-determined schedules
US20080055307A1 (en) Graphics rendering pipeline
Kuo et al. The design of LLVM-based shader compiler for embedded architecture
JP2009059187A (ja) マイクロプロセッサおよびデータ処理方法
JP2017123034A (ja) Cipを備える画像処理装置及び画像処理方法
JP2023532433A (ja) マルチサンプルアンチエイリアシングのためのロード命令

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20071004

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20080625

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080718

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20101213

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101221

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110218

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110510

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

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

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees