図面 (/)

技術 グラフィックスシステム

出願人 三菱電機株式会社
発明者 根岸博康
出願日 2005年10月12日 (15年8ヶ月経過) 出願番号 2005-297831
公開日 2007年4月26日 (14年1ヶ月経過) 公開番号 2007-108938
状態 特許登録済
技術分野 画像処理 イメージ生成
主要キーワード 読み込みフラグ 外部演算 整数演算処理 Y座標 クリッピング状態 固定小数点型 初期値レジスタ データ取り込み処理
関連する未来課題
重要な関連分野

この項目の情報は公開日時点(2007年4月26日)のものです。
また、この項目は機械的に抽出しているため、正しく解析できていない場合があります

図面 (11)

課題

システム規模を大きくすることなくデータ入力演算処理高速化することができ、かつシェーダに容易に対応することができるグラフィックスシステムを提供する。

解決手段

幾何演算に必要なデータが保持されるローカルメモリFLM0〜FLM3と、FLM0〜FLM3に保持されたデータを用いて幾何学演算を実行する演算器FPU0〜FPU3とを有するSIMD型演算装置2と、データの読み出しアドレスを算出するアドレス生成器18と、入力データの型を変換する型変換器12と、FPU0〜FPU3に並列演算させる入力データ数がFLM数に満たない場合にFLMに初期値を設定する初期値レジスタ14とを備えた入力処理部3とを備える。

概要

背景

3次元グラフィックス処理を実行する、従来のグラフィックスシステムとして、例えば特許文献1に開示される幾何学演算装置がある。この幾何学演算装置は、入力データを保持する入力メモリと、これに接続された複数の浮動小数点演算用メモリと、浮動小数点演算用メモリに接続されてSIMD型に動作する浮動小数点ユニットと、演算に必要なデータをメモリ転送する制御と演算制御を行うシーケンサと、クリッピング計算を高速化するためのクリッピング状態コード生成器と、クリップの状態を記憶するクリップコードレジスタとを備え、入力メモリから取り出した演算に必要なデータをSIMD型の演算器並列演算することにより3次元グラフィックスの座標変換等の幾何学演算を高速に処理することができる。

特許第3203180号公報

概要

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

目的

この発明は、上記のような課題を解決するためになされたもので、システム規模を大きくすることなくデータ入力や演算処理の高速化を図ることができ、かつシェーダに容易に対応することができるグラフィックスシステムを得ることを目的とする。

効果

実績

技術文献被引用数
0件
牽制数
1件

この技術が所属する分野

ライセンス契約や譲渡などの可能性がある特許掲載中! 開放特許随時追加・更新中 詳しくはこちら

請求項1

幾何演算に必要なデータが保持される複数の演算用メモリと、前記演算用メモリに接続され、前記各演算用メモリに保持されたデータを用いて幾何学演算を実行する複数の演算ユニットとを有する演算装置と、データメモリに格納された前記幾何学演算に必要なデータの読み出しアドレスを算出するアドレス生成器と、算出結果のアドレスに基づいて前記データメモリから入力したデータを型変換する型変換器と、前記演算装置の複数の演算ユニットに並列演算させる入力データ数が前記演算用メモリ数に満たない場合、自己が保持する一定値を前記演算用メモリに設定する補充用レジスタとを有する入力処理部を備えたグラフィックスシステム

請求項2

入力処理部は、入力データの型を指定する情報を保持するタイプレスタと、入力データの個数を保持するサイズレジスタと、データメモリの格納順に応じて各データに規定した通し番号が計数されるカウンタと、前記データメモリにおける前記データの先頭アドレスを保持するポインタレジスタと、前記データメモリにおけるデータ間のアドレス間隔を保持するストライドレジスタとを備え、型変換器は、前記タイプレジスタの内容に応じて入力データの型を変換し、補充用レジスタは、前記サイズレジスタの内容から入力データ数が演算用メモリ数に満たない場合に自己が保持する値を前記演算用メモリに設定し、アドレス生成器は、前記ポインタレジスタに保持された先頭アドレスに対し、前記カウンタと前記ストライドレジスタの値を用いて求めたアドレス間隔を加算することにより、所望のデータの読み出しアドレスを算出することを特徴とする請求項1記載のグラフィックスシステム。

請求項3

通し番号をインデックスデータとしてその番号順に格納したインデックスバッファの先頭アドレスを保持するインデックスポインタレジスタと、カウンタと前記インデックスポインタレジスタの値を用いてインデックスアドレスを算出するインデックスアドレス生成器と、アドレス生成器への入力を、前記インデックスアドレスに基づいてインデックスバッファから読み出されたインデックスデータと前記カウンタの出力とのいずれか一方に切り替える第1の切替器と、前記アドレス生成器と前記インデックスアドレス生成器とのいずれか一方に前記カウンタからの出力先を切り替える第2の切替器とを備えたことを特徴とする請求項2記載のグラフィックスシステム。

請求項4

演算装置は、演算内容を指定する動作命令を保持する命令メモリと、前記命令メモリの保持内容に応じて演算ユニットによる演算を制御するシーケンサとを備えたことを特徴とする請求項1から請求項3のうちのいずれか1項記載のグラフィックスシステム。

請求項5

命令メモリをキャッシュとして動作させる外部命令メモリと、演算用メモリをキャッシュとして動作させる外部演算メモリとを備えたことを特徴とする請求項4記載のグラフィックスシステム。

請求項6

命令メモリ及びシーケンサを複数組備え、前記命令メモリと前記シーケンサの組毎の制御により演算ユニットに演算処理を実行させることを特徴とする請求項4又は請求項5記載のグラフィックスシステム。

請求項7

演算ユニットと接続し、その演算結果を用いてグラフィックス処理を実行するレンダリングコントローラと、前記レンダリングコントローラによる処理結果を前記演算装置の演算ユニットによる処理対象として入力するデータ入力部とを備えたことを特徴とする請求項1から請求項6のうちのいずれか1項記載のグラフィックスシステム。

技術分野

0001

この発明は、3次元グラフィックス処理を実行するSIMD(Single Instruction/Multiple Data)型演算装置を備えたグラフィックスシステムに関するものである。

背景技術

0002

3次元グラフィックス処理を実行する、従来のグラフィックスシステムとして、例えば特許文献1に開示される幾何学演算装置がある。この幾何学演算装置は、入力データを保持する入力メモリと、これに接続された複数の浮動小数点演算用メモリと、浮動小数点演算用メモリに接続されてSIMD型に動作する浮動小数点ユニットと、演算に必要なデータをメモリ転送する制御と演算制御を行うシーケンサと、クリッピング計算を高速化するためのクリッピング状態コード生成器と、クリップの状態を記憶するクリップコードレジスタとを備え、入力メモリから取り出した演算に必要なデータをSIMD型の演算器並列演算することにより3次元グラフィックスの座標変換等の幾何学演算を高速に処理することができる。

0003

特許第3203180号公報

発明が解決しようとする課題

0004

従来では、幾何学演算に際しメモリから単純にデータを読み込む構成になっていた。このため、3次元グラフィックスの頂点に関する座標データ、法線データカラーデータ等について、これらが個別の領域に設定され、頂点の並び順にデータを入力する場合においても、また頂点インデックス等を介してランダムアクセスするような場合においても、高速にデータを入力することができなかった。

0005

また、特許文献1の装置ではデータ入力部分をソフトウェア記述する必要があり、インデックスが格納されているメモリのアドレスを計算により求め、これに基づいてインデックス値を取り出してから次に座標、法線カラーなどの必要なデータが格納されているメモリのアドレスをそれぞれ算出する必要があった。

0006

メモリから取り出したデータには、Float型、符号付32ビット整数型、符号付16ビット整数型等のようにデータにバリエーションがある。これに対して、特許文献1の装置では、このようなデータのバリエーションに応じてソフトウェアにより型変換を実行する必要があった。

0007

また、座標データではX,Y,Z,Wという4つの座標を1組とするが、場合によってはX,Y座標の値だけがメモリに格納され、Z,W座標の値はデフォルト値としてZ=0、W=1と決められていることがある。このような入力処理は複雑であり、ソフトウェアで頂点毎に実行する場合にはグラフィックスシステムの性能向上を妨げる要因になる。

0008

この他、従来の装置では、命令メモリローカルメモリを内部に持つため、機能を拡張する毎に回路規模が大きくなるという課題があった。

0009

また、従来の装置は、シーケンサが一つのSIMD型演算のみにサポートされており、実行ステージが長い命令を使用した場合に計算結果待ちの時間が無駄になっていた。さらに、整数演算と4つのSIMD演算とを同時に実行できず、分岐処理等の整数演算処理とSIMDの浮動小数点演算を使用する数値演算処理とを並列処理できなかったため、これら演算処理を高速化できなかった。

0010

特許文献1の幾何学演算装置はSIMD型の構成をとっているため、3次元グラフィックスにおける一連の処理がグラフィックスパイプラインと呼ばれる順序に従って実行されるだけであった。近年のグラフィックス処理プログラム可能な処理に移行しており、多くは頂点単位幾何学処理を行うジオメトリエンジンに相当する頂点シェーダレンダリング処理の一部をプログラム可能にしたフラグメントシェーダとから構成されている。また、携帯電話等の小型な組み込み向けのグラフィックスシステムにおいてもシェーダ化が進んでいる。しかしながら、頂点シェーダとフラグメントシェーダに対応可能な2つのプロセッサを搭載にはシステム規模が大きくなり過ぎるという課題があった。

0011

この発明は、上記のような課題を解決するためになされたもので、システム規模を大きくすることなくデータ入力や演算処理の高速化を図ることができ、かつシェーダに容易に対応することができるグラフィックスシステムを得ることを目的とする。

課題を解決するための手段

0012

この発明に係るグラフィックスシステムは、幾何学演算に必要なデータが保持される複数の演算用メモリと、演算用メモリに接続され、各演算用メモリに保持されたデータを用いて幾何学演算を実行する複数の演算ユニットとを有する演算装置と、外部メモリに格納された幾何学演算に必要なデータの読み出しアドレスを算出するアドレス生成器と、算出結果のアドレスに基づき入力したデータの型を変換する型変換器と、演算装置の複数の演算ユニットに並列演算させる入力データ数が演算用メモリ数に満たない場合、自己が保持する一定値を演算用メモリに設定する補充用レジスタとを有する入力処理部を備えるものである。

発明の効果

0013

この発明によれば、データの読み出し処理をソフトウェアで読み出しアドレスを計算することなく、アドレス生成器のハードウェア処理にて実行することができ、データ入力や演算処理を高速化することができるという効果がある。また、データの型変換を実行する専用のハードウェアである型変換器を設け、演算ユニットに並列演算させるデータの不足分を代替する初期値を演算用メモリに設定するので、データの型変換や不足分のデータの生成を高速に処理することができる。

発明を実施するための最良の形態

0014

実施の形態1.
図1は、この発明の実施の形態1によるグラフィックスシステムの構成を示すブロック図である。実施の形態1によるグラフィックスシステム1は、主な構成要素としてSIMD型演算装置(演算装置)2及び入力処理部3を有する。SIMD(Single Instruction/Multiple Data)型演算装置2は、特許文献1のように複数の浮動小数点演算器を含んで構成され、3次元グラフィックスの演算処理を行う。

0015

入力処理部3は、SIMD型演算装置2と並列に動作してデータの読み出しアドレスを計算し、計算結果のアドレスに基づいてメモリから3次元グラフィックスの幾何学演算に必要なデータを入力する。ここで、入力処理部3は、入力したデータを型変換し、型変換したデータをSIMD型演算装置2内の浮動小数点演算用メモリへ並列に入力する。そして、SIMD型演算装置2を構成する浮動小数点演算用のメモリ数よりも入力データが少ない場合、初期値を選択して浮動小数点演算用メモリに入力することによりデータ数を合わせる。

0016

図中で頂点データ表記した外部メモリ(データメモリ)4は、3次元グラフィックスの描画オブジェクトの頂点データを格納するメモリである。この頂点データには、座標データとしてX,Y,Z,W座標、カラーデータとしてR,G,B,A、テクスチャ座標としてS,T,R,Q等の4つのパラメータが使用される。なお、外部メモリ4は、例えばバス5を介して入力処理部3に接続し、データの読み出しが可能である。

0017

図2は、図1中のSIMD型演算装置及び入力処理部の内部構成を示すブロック図である。図に示すSIMD型演算装置2は、複数の浮動小数点演算用メモリとして、例えば4並列の浮動小数点演算用のローカルメモリ(演算用メモリ)FLM0,FLM1,FLM2,FLM3を有し、その各々に浮動小数点演算器(演算ユニット)FPU0,FPU1,FPU2,FPU3が接続されており、さらに整数演算用のローカルメモリILM、これに接続された整数演算器IPU、命令メモリ9、シーケンサ10を有して構成される。

0018

命令メモリ9には、SIMD型の浮動小数点演算器FPU0,FPU1,FPU2,FPU3と整数演算器IPUを制御するための動作命令が保持される。シーケンサ10は、命令メモリ9から読み出された命令に応じて、浮動小数点演算器FPU0,FPU1,FPU2,FPU3と整数演算器IPUによって並行してなされる、演算、ローカルメモリからのデータの読み出しや書き込み等の動作を制御する回路である。

0019

レンダリングコントローラ6は、SIMD型演算装置2による演算結果を用いた3次元グラフィックス処理を実行する。バス7は、ローカルメモリFLM0,FLM1,FLM2,FLM3及びILMと入力処理部3とを結ぶグローバルバスである。バス8は、浮動小数点演算器FPU0,FPU1,FPU2,FPU3及び整数演算器IPUとレンダリングコントローラ6とを結ぶ出力バスである。

0020

入力処理部3は、本発明に特有の構成要素であり、タイプレスタ11、型変換器12、サイズレジスタ13、初期値レジスタ14、カウンタ15、ポインタレジスタ16、ストライドレジスタ17及びアドレス生成器18を含んで構成される。タイプレジスタ11では、入力処理部3が入力するデータの型(タイプ)を特定する所定の値が保持される。データ型としては、例えば整数型浮動小数点型固定小数点型などがある。

0021

型変換器12は、タイプレジスタ11が保持するデータの型に関するビット値に応じて入力したデータについて整数型、浮動小数点型、固定小数点型などの型変換を行う回路である。サイズレジスタ13は、入力データのデータブロック毎個数を保持するレジスタである。初期値レジスタ(補充用レジスタ)14は初期値を保持するレジスタである。この初期値は、入力処理部3が入力したデータのデータブロック毎の個数がSIMD型演算装置2のローカルメモリ数よりも少ない場合にその不足分を補うためにローカルメモリへ設定する所定の値である。

0022

カウンタ15は、外部メモリ4から取得する頂点データ番号を示す値が保持され、頂点データの読み出しに伴ってその番号が増減されるカウンタである。ポインタレジスタ16は、外部メモリ4において頂点データが格納されるアドレスを保持するレジスタである。ストライドレジスタ17は、外部メモリ4における頂点データの配置された間隔を保持するレジスタである。アドレス生成器18は、ポインタレジスタ16、ストライドレジスタ17及びカウンタ15のそれぞれに設定された値から外部メモリにおける頂点データのアドレスを算出する回路である。

0023

次に動作について説明する。
3次元グラフィックスにおける頂点データは、座標データとしてX,Y,Z,W座標、カラーデータとしてR,G,B,A、テクスチャ座標としてS,T,R,Qなど4つのパラメータが使用される。しかし、メモリ配置の効率化やメモリ転送量削減のため、4つのパラメータを使用せずX,Y,Zを指定し、Wは例えば1に固定することがある。また、使用する変数の型を浮動小数点から16ビット整数などに変更することでメモリの消費を抑えることがある。

0024

頂点データを構成するデータとして、座標データと法線データを考える場合、頂点データは、図2中の外部メモリ4において例えば下記のように配置される。
図3及び図4は、頂点データを構成する座標データ及び法線データの外部メモリ上での配置例を示す図である。図3に示す例では、座標データと法線データを外部メモリ4の全く別の記憶領域にそれぞれ配置した場合を示している。また、図4では、座標データと法線データを同一の記憶領域に混在させた場合を示しており、例えば座標データと法線データを交互に配置している。

0025

図3及び図4において、VPointerは記憶領域における座標データのアドレスであり、NPointerは記憶領域における法線データのアドレスである。また、VStrideは、外部メモリ4における座標データの配置された間隔を示しており、図3のように各頂点データの座標データが交互に配置されている場合であれば、座標データを構成する変数データの個数に相当する。また、図4のように頂点データの座標データと法線データが交互に配置されている場合であれば、VStrideは、法線データを挟んだ次の座標データまで間隔であり、法線データを構成する変数データの個数に相当する。

0026

同様に、NStrideは、外部メモリ4における法線データの配置された間隔を示しており、図3のように各頂点データの法線データが交互に配置されている場合であれば、法線データを構成する変数データの個数に相当する。また、図4のように頂点データの座標データと法線データが交互に配置されている場合であれば、NStrideは、座標データを挟んだ次の法線データまで間隔であり、座標データを構成する変数データの個数に相当する。なお、座標データ及び法線データを構成する変数データは、例えば外部メモリのアドレスを構成する1アドレス単位で規定される記憶領域に配置される。

0027

本発明は、上述のようにデータの配置やデータ型のバリエーションの組み合わせが多い中でデータ取り込み処理を高速化するものである。以下に具体例を挙げて説明する。
説明の前提として、SIMD型演算装置は、図2に示すように、4つの浮動小数点演算器FPU0,FPU1,FPU2,FPU3とこれらにそれぞれ接続するローカルメモリFLM0,FLM1,FLM2,FLM3で構成されているものとする。また、図3に示すように各頂点データの座標データのみを外部メモリ4の所定の領域に格納した場合において、指定したアドレスから頂点データが格納された順番で座標データを取り出していく動作を説明する。

0028

先ず、外部メモリ4における座標データが格納されている領域のアドレスをポインタレジスタ16に設定し、外部メモリ4に格納された何番目の頂点データから読み出すのかを示す値をカウンタ15に設定する。例えば、ポインタレジスタ16に設定したアドレスから座標データを逐次読み出す場合であれば、カウンタ15に「0」を設定(つまり、最初の0番目の頂点データ)し、2番目の頂点データの座標データを読み出す場合は、カウンタ15に「2」を設定する。

0029

さらに、ストライドレジスタ17には、1頂点データ分の座標データを構成する変数データの個数を設定する。例えば、1頂点データあたりX,Y,Z,Wの座標データのみが隙間なく設定されている場合、4つの変数データより「4」をVStrideとしてストライドレジスタ17に設定する。この場合、座標データは4アドレス単位毎に外部メモリの記憶領域に配置される。

0030

アドレス生成器18では、カウンタ15に設定されたcounter値、ポインタレジスタ16に設定されたVPointer値及びストライドレジスタ17に設定されたVStride値に基づいて下記式(1)に従い、外部メモリ4から読み出すべき座標データのアドレスaddを決定する。なお、*は乗算を示す。
add=VPointer+VStride*counter (1)

0031

このように、アドレス生成器18は、counter値とVStride値を乗算する乗算器と、この乗算結果とVPointer値を加算する加算器とから構成することができる。つまり、ポインタレジスタ16に最初に読み出すデータのアドレスを設定することにより、アドレス生成器18のハードウェア処理で次回のデータのアドレスが逐次算出される。

0032

入力処理部3は、アドレス生成器18で算出されたアドレスにより示されるメモリから座標データをサイズレジスタ13に設定される個数分だけ読み出し、型変換器12に入力する。型変換器12では、入力データに対してタイプレジスタ11で示される型変換が行われる。例えば、タイプレジスタ11に設定された有効ビット幅となるようにビット拡張する型変換や、16ビット固定小数点から浮動小数点への変換等が実行される。型変換の方法については既存の技術を用いる。

0033

ここで、サイズレジスタ13に設定された値が「4」であり4データを取り出す場合、型変換後のデータが、バス7を介してFLM0,FLM1,FLM2,FLM3へ各々入力される。また、サイズレジスタ13で設定されている値が4未満の場合、入力すべきデータがないFLMに対して初期値レジスタ14に設定された初期値を入力する。

0034

FLM0〜FLM3に入力されたデータは、命令メモリ9に設定された命令で指定される演算をシーケンサ10により制御してFPU0〜FPU3が並行に処理を実行する。次の頂点データの座標データを読み出す場合、カウンタ15の設定値インクリメントされ、アドレス生成器18において次の座標データの場所を示すアドレスが算出される。これにより、上述と同様の処理にて次の頂点データの座標データが読み出され、SIMD型演算装置2により演算処理される。この処理結果は、バス8を介してレンダリングコントローラ6に入力され、SIMD型演算装置2による3次元グラフィックスの演算結果を用いた処理が実行される。

0035

なお、上記説明では頂点データの座標データのみを読み出す場合を例を挙げたが、座標データ以外の頂点データである、法線データ等を読み出す場合には、タイプレジスタ11、型変換器12、サイズレジスタ13、初期値レジスタ14、カウンタ15、ポインタレジスタ16、ストライドレジスタ17及びアドレス生成器18で構成される入力処理部3を、頂点データを構成するデータのバリエーション毎に複数用意する。これにより、それぞれの頂点データの読み出しに対応することができる。

0036

例えば、図4のように頂点データの座標データと法線データが交互に配置されている場合を説明する。この場合、座標データについての入力処理部3と法線データについての入力処理部3が設けられ、これらのポインタレジスタ16には法線データが格納されているアドレスが設定され、カウンタ15には何番目の頂点データから読み出すのかを示す値が設定される。

0037

ここで、座標データのみの場合と異なり、座標データについての入力処理部3のストライドレジスタ17には、1頂点データ分の法線データを構成する変数データの個数がVStrideとして設定される。また、法線データについての入力処理部3のストライドレジスタ17には、1頂点データ分の座標データを構成する変数データの個数がNStrideとして設定される。

0038

これにより、各入力処理部3のアドレス生成器18は、カウンタ15に設定されたcounter値、ポインタレジスタ16の設定値及びストライドレジスタ17の設定値に基づいて上記式(1)に従い、外部メモリから読み出すべき座標データ及び法線データのアドレスaddをそれぞれ決定する。以降の処理は、座標データのみの場合と同様である。

0039

以上のように、この実施の形態1によれば、幾何学演算に必要なデータが保持されるローカルメモリFLM0〜FLM3と、FLM0〜FLM3に保持されたデータを用いて幾何学演算を実行する演算器FPU0〜FPU3とを有するSIMD型演算装置2と、データの読み出しアドレスを算出するアドレス生成器18と、入力データの型を変換する型変換器12と、FPU0〜FPU3に並列演算させる入力データ数がFLM数に満たない場合にFLMに設定される初期値を保持する初期値レジスタ14とを備えた入力処理部3とを備えるので、3次元グラフィックスの頂点データとして座標、法線、カラー、4つのマルチテクスチャ対応のテクスチャ座標、マトリックスパレット、マトリックスウエイト、点サイズなど10種類にも及ぶデータの読み出し処理をソフトウェアで読み出しアドレスを計算することなく、アドレス生成器18のハードウェア処理により高速化することができる。

0040

また、タイプレジスタ11の設定値に基づいて型変換を実行する専用のハードウェアである型変換器12やサイズレジスタ13の設定値に基づいて不足分データを代替する初期値をFLMに設定する専用のハードウェアである初期値レジスタ14を設けたので、データの型変換や不足分のデータの生成を高速に処理することができる。

0041

上述の構成で、データ読み出しの終了に伴ってカウンタ15をインクリメントして次のデータの読み出し処理を実行することにより、ソフトウェアによるグラフィックス処理とデータ読み出し処理を並列して動作させることが可能になり処理を高速化できる。

0042

実施の形態2.
上記実施の形態1では取り込みデータを順番に取り込む場合を示したが、本実施の形態2は頂点データを読み出す順番を格納したインデックスバッファを設け、インデックスバッファで示される頂点データを取り出すものである。

0043

図5は、この発明の実施の形態2によるグラフィックスシステムの構成を示すブロック図である。図中でインデックスデータと表記したインデックスバッファ19は、頂点データの読み出し順を示すインデックスデータを格納し、バス5を介して実施の形態2による入力処理部3Aからデータ読み出しが可能である。実施の形態2による入力処理部3Aは、上記実施の形態1で示した構成に加え、インデックスポインタレジスタ20、インデックスアドレス生成器21及び切替器22,23を有する。

0044

インデックスポインタレジスタ20は、頂点データを読み出す順番を格納したインデックスバッファの先頭アドレスを保持するレジスタである。インデックスアドレス生成器21は、インデックスポインタレジスタ20の設定値とカウンタ15のカウント値に基づいてインデックスバッファのアドレスを生成する回路である。

0045

切替器(第1の切替器)22は、アドレス生成器18への入力としてインデックスバッファ19のインデックスデータとカウンタ15の設定値のいずれかに切り替える回路である。また、切替器(第2の切替器)23は、カウンタ15の出力先をインデックスアドレス生成器21と切替器22のいずれかに切り替える回路である。なお、図2と同一又はこれに相当する構成要素には同一符号を付し重複する説明を省略している。

0046

上述のように、本実施の形態2では、何番目の頂点データを読み出すかを示す情報を、カウンタ15によるシーケンシャルな順番だけでなく、インデックスバッファ19を使ったランダムな指定を可能にしている。

0047

次に動作について説明する。
先ず、インデックスバッファ19のインデックスデータをアドレス生成器18へ入力するように切替器22のセレクタを設定し、切替器23のセレクタをインデックスアドレス生成器21へ出力するように設定する。次に、インデックスバッファ19の開始アドレスをiPointerとしてインデックスポインタレジスタ20に設定し、参照開始するインデックスバッファ番号をcounter値としてカウンタ15に設定する。

0048

インデックスアドレス生成器21は、カウンタ15の設定値であるcounterとインデックスポインタレジスタ20の値であるiPointerとの値から下記式(2)に従い、インデックスバッファ19のアドレスindex_addを計算する。
index_add=iPointer*counter ・・・(2)

0049

インデックスアドレス生成器21が算出したアドレスindex_addに基づいて、インデックスバッファ19から読み出されたインデックス値indexは、切替器22に入力される。切替器22は、入力したインデックス値indexをアドレス生成器18へ出力する。これにより、アドレス生成器18は、下記式(3)に従って外部メモリ4における頂点データのアドレスを計算する。以降の動作は、上記実施の形態1と同様である。
add=VPointer+VStride*index ・・・(3)

0050

以上のように、この実施の形態2によれば、入力処理部3Aが、インデックスポインタレジスタ20の設定値とカウンタ15のカウント値に基づいてインデックスバッファのアドレスを生成するインデックスアドレス生成器21、アドレス生成器18への入力としてインデックスバッファ19のインデックスデータとカウンタ15の設定値のいずれかに切り替える切替器22、及びカウンタ15の出力先をインデックスアドレス生成器21と切替器22のいずれかに切り替える切替器23を有する。

0051

これにより、2つのメモリ(頂点データを格納する外部メモリ4、インデックスバッファ19)からのデータ読み出しをハードウェア処理にて実行させることができ、頂点データの読み出しをカウンタ15の設定値によるシーケンシャルな順番だけでなく、インデックスバッファ19を使ってランダムに指定することができる。

0052

また、上記実施の形態1と同様に、タイプレジスタ11の設定値に基づいて型変換を実行する専用のハードウェアである型変換器12やサイズレジスタ13の設定値に基づいて不足分データを代替する初期値をFLMに設定する専用のハードウェアである初期値レジツタ14を設けたので、データの型変換や不足分のデータの生成を高速に処理することができる。

0053

上述の構成で、データ読み出しの終了に伴ってカウンタ15をインクリメントして次のデータの読み出し処理を実行することにより、ソフトウェアによるグラフィックス処理とデータ読み出し処理を並列して動作させることが可能になり処理を高速化できる。

0054

実施の形態3.
図6は、この発明の実施の形態3によるグラフィックスシステムの構成を示すブロック図である。外部命令メモリ24は、命令メモリ9を内部キャッシュメモリとして機能する外付けメモリである。また、外部命令メモリ24は、バス5を介して入力処理部3からデータの読み出し及び書き込みが可能である。

0055

外部演算メモリ25は、FLM0,FLM1,FLM2,FLM3,ILMを内部キャッシュメモリとして機能する外付けメモリである。この外部演算メモリ25は、バス5を介して入力処理部3からデータの読み出し及び書き込みが可能である。なお、図2と同一又はこれに相当する構成要素には同一符号を付し重複する説明を省略している。

0056

ここで、命令メモリ9とローカルメモリFLM0,FLM1,FLM2,FLM3,ILMで通常の演算処理において使用される記憶容量をキャッシュ容量とする。そして、外部命令メモリ24と外部演算メモリ25には、通常の演算処理に加え、付加的な処理や希な処理などにおける動作命令や処理対象データを格納する。

0057

以上のように、この実施の形態3によれば、命令メモリ9を内部キャッシュメモリとして機能する外部命令メモリ24と、FLM0,FLM1,FLM2,FLM3,ILMを内部キャッシュメモリとして機能する外部演算メモリ25とを備えたので、通常の3次元グラフィックス処理の性能劣化は発生せず、付加的な処理や希な処理などを実行する場合に命令メモリ9の容量やローカルメモリFLM,ILMの容量を意識することなく機能を拡張することができる。

0058

実施の形態4.
図7は、この発明の実施の形態4によるグラフィックスシステムの構成を示すブロック図である。再データ入力部(データ入力部)26は、バス8を介して浮動小数点演算器FPU0〜FPU3に接続されたレンダリングコントローラ6からの出力データをローカルメモリFLM0〜FLM3に再び入力するための回路である。この再データ入力部26により、本実施の形態4によるグラフィックスシステム1を、組み込み用の3次元グラフィックスのシェーダとして利用することが可能となる。なお、図2と同一又はこれに相当する構成要素には同一符号を付し重複する説明を省略している。

0059

3次元グラフィックスの処理は、頂点単位に座標変換やライティング計算を行う幾何学演算処理と、塗りつぶすピクセル単位色補間テクスチャ付けを行うフラグメント処理に分けることができる。これらの処理は、グラフィックスライブラリ毎に決められた処理で実行されていたが、近年これらの処理をプログラム化してユーザが自由に処理を記述できる傾向にある。このプログラム可能な処理を実現する部分はシェーダと一般に呼ばれている。実際にはシェーダは、アセンブラ高級言語によって記述されたソースコンパイルあるいはアセンブルしたコードを実行することで実現される。

0060

本実施の形態4によるグラフィックスシステム1は、幾何学演算を行うことを目的としているため、頂点シェーダプログラムの動作命令を命令メモリ9に保持することで容易に対応可能である。上述した課題に挙げたように、携帯電話等の小型な組み込み向けの3次元グラフィックスの場合、頂点シェーダに加えてフラグメントシェーダを搭載することは回路規模的に難しい。

0061

これに対して、本実施の形態4によるグラフィックスシステム1は、レンダリングコントローラ6から出力されるピクセル毎のデータを、再データ入力部26によりグラフィックスシステム1に再度取り込むことを可能にしたことにより、頂点シェーダとフラグメントシェーダに対応することができる。

0062

次に動作について説明する。
図8は実施の形態4によるグラフィックスシステムの動作を示すフローチャートであり、図9は実施の形態4によるグラフィックスシステムとレンダリングコントローラの動作関係を説明するためのブロック図である。図9に示すように、本実施の形態4によるグラフィックスシステム1は、幾何学演算処理を実行する頂点シェーダとして動作する。

0063

先ず、グラフィックスシステム1の入力処理部3は、上記実施の形態1と同様な処理により、バス5を介して外部メモリ4から頂点データを入力する(ステップST1)。この頂点データは、SIMD型演算装置2に入力され、頂点単位の座標変換やライティング演算等の幾何学処理が実行される(ステップST2)。

0064

この後、図9に示すように、SIMD型演算装置2による頂点毎の演算結果が、バス8を介してレンダリングコントローラ6に設定される。レンダリングコントローラ6では、例えば三角形を描画する場合であれば、SIMD型演算装置2からレンダリングコントローラ6へ三角形の3頂点のデータが逐一設定され、これら3頂点で構成される三角形の内部のピクセルを生成するラスタライズ処理が実行される。

0065

再データ入力部26は、レンダリングコントローラ6によるラスタライズ処理結果のピクセル情報である座標、カラー、テクスチャ座標等のデータを、バス7を介してグラフィックスシステム1にピクセル単位で入力する。グラフィックスシステム1のSIMD型演算装置2は、入力したラスタライズ処理結果に基づいて、上述した3頂点の三角形内を塗りつぶすピクセル単位の色補間やテクスチャ付けを行うフラグメント処理を実行する(ステップST3)。1ピクセルの処理が終了すると、その処理結果はバス8を介してレンダリングコントラーラ6に入力される。レンダリングコントラーラ6では、図9に示すように、入力した処理結果に基づいてフレームメモリへの描画処理を実行する。

0066

次に、グラフィックスシステム1のSIMD型演算装置2は、三角形を構成する全ピクセル分を処理したか否かを判定し(ステップST4)、未処理のピクセルがあれば、ステップST3の処理に戻って再データ入力部26によりレンダリングコントローラ6から次の1ピクセルのラスタライズ処理結果を読み込みフラグメント処理を実行する。このピクセル単位のフラグメント処理結果が、バス8を介してレンダリングコントラーラ6に逐次入力され、フレームメモリへの描画処理が実行される。

0067

一方、三角形を構成する全ピクセルの処理を完了すると、SIMD型演算装置2は、外部メモリ4における処理対象となる全ての頂点データを処理したか否かを判定し(ステップST5)、次に処理すべき頂点がある場合であれば、ステップST1の処理に戻って入力処理部3によりその頂点データを外部メモリ4から読み込んで幾何学演算処理を行う。また、処理対象の頂点がなければ処理を終了する。このような処理を繰り返すことで、頂点シェーダとフラグメントシェーダに対応することが可能になる。

0068

以上のように、この実施の形態4によれば、レンダリングコントローラ6から出力されるピクセル毎のデータをグラフィックスシステム1に再度取り込む再データ入力部26を設けたので、レンダリングコントローラ6を別個のプロセッサで実現し、本実施の形態4によるグラフィックスシステム1との間でのデータ送受が可能となったことから、組み込み用の3次元グラフィックスのシェーダとして処理をレンダリングコントローラ6との分散して実行することができる。これにより、回路規模を大きくすることなく、本実施の形態4によるグラフィックスシステム1を、組み込み用の3次元グラフィックスのシェーダとして利用することが可能となる。

0069

実施の形態5.
本実施の形態5は、上記実施の形態4のグラフィックスシステム1に命令メモリとシーケンサをさらに追加することで、複数のFPUを各命令メモリ及びシーケンサ毎のグループに分けて動作させるようにしたものである。

0070

図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と同一又はこれに相当する構成要素には同一符号を付し重複する説明を省略している。

0071

次に動作について説明する。
命令メモリ9とシーケンサ10、命令メモリ9aとシーケンサ10aによって複数のFPUを2つの処理グループに分けて動作させる例を説明する。ここでは、幾何学処理とフラグメント処理を実行するFPUを分離させて並列して動作させる。

0072

先ず、グラフィックスシステム1の入力処理部3は、上記実施の形態1と同様な処理により、バス5を介して外部メモリ4から頂点データを入力する。この頂点データは、SIMD型演算装置2に入力される。SIMD型演算装置2では、例えば命令メモリ9に格納された動作命令に従うシーケンサ10の制御の下で、頂点単位の座標変換やライティング演算等の幾何学処理が実行される。

0073

この後、SIMD型演算装置2による頂点毎の演算結果が、バス8を介してレンダリングコントローラ6に設定される。レンダリングコントローラ6では、例えば三角形を描画する場合であれば、SIMD型演算装置2からレンダリングコントローラ6へ三角形の3頂点のデータが逐一設定され、これら3頂点で構成される三角形の内部のピクセルを生成するラスタライズ処理が実行される。

0074

再データ入力部26は、レンダリングコントローラ6によるラスタライズ処理結果のピクセル情報である座標、カラー、テクスチャ座標等のデータを、バス7を介してグラフィックスシステム1にピクセル単位で入力する。グラフィックスシステム1のSIMD型演算装置2は、入力したラスタライズ処理結果に基づいて、例えば命令メモリ9a及びシーケンサ10aによりフラグメント処理を実行する。1ピクセルの処理が終了すると、その処理結果はバス8を介してレンダリングコントラーラ6に入力される。レンダリングコントラーラ6では、入力した処理結果に基づいてフレームメモリへの描画処理を実行する。

0075

次に、グラフィックスシステム1のSIMD型演算装置2では、命令メモリ9aに格納された動作命令に従うシーケンサ10aの制御の下、三角形を構成する全ピクセル分を処理したか否かを判定し、未処理のピクセルがあれば、再データ入力部26によりレンダリングコントローラ6から次の1ピクセルのラスタライズ処理結果を読み込みフラグメント処理を実行する。このピクセル単位のフラグメント処理結果が、バス8を介してレンダリングコントラーラ6に逐次入力され、フレームメモリへの描画処理が実行される。

0076

一方、三角形を構成する全ピクセルの処理を完了すると、SIMD型演算装置2は、命令メモリ9に格納された動作命令に従うシーケンサ10の制御の下、外部メモリ4における処理対象となる全ての頂点データを処理したか否かを判定し、次に処理すべき頂点がある場合であれば、入力処理部3によりその頂点データを外部メモリ4から読み込んで幾何学演算処理を行う。また、処理対象の頂点がなければ処理を終了する。このような処理を繰り返すことで、頂点シェーダとフラグメントシェーダに対応することが可能になる。

0077

以上のように、この実施の形態5によれば、SIMD型演算装置2Aが、命令メモリ9,9aとシーケンサ10,10aを備え、命令メモリ9及びシーケンサ10に対して、命令メモリ9a及びシーケンサ10aとによってFPU0〜FPU3を2つの処理内容(例えば、幾何学処理とフラグメント処理)に分けて並列して動作させるので、処理の高速化を実現することができる。

図面の簡単な説明

0078

この発明の実施の形態1によるグラフィックスシステムの構成を示すブロック図である。
図1中のSIMD型演算装置及び入力処理部の内部構成を示すブロック図である。
頂点データを構成する座標データ及び法線データの外部メモリ上での配置例を示す図である。
頂点データを構成する座標データ及び法線データの外部メモリ上での配置例を示す図である。
この発明の実施の形態2によるグラフィックスシステムの構成を示すブロック図である。
この発明の実施の形態3によるグラフィックスシステムの構成を示すブロック図である。
この発明の実施の形態4によるグラフィックスシステムの構成を示すブロック図である。
実施の形態4によるグラフィックスシステムの動作を示すフローチャートである。
実施の形態4によるグラフィックスシステムとレンダリングコントローラの動作関係を説明するためのブロック図である。
この発明の実施の形態5によるグラフィックスシステムの構成を示すブロック図である。

符号の説明

0079

1グラフィックスシステム、2SIMD型演算装置(演算装置)、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 再データ入力部(データ入力部)。

ページトップへ

この技術を出願した法人

この技術を発明した人物

ページトップへ

関連する挑戦したい社会課題

関連する公募課題

ページトップへ

技術視点だけで見ていませんか?

この技術の活用可能性がある分野

分野別動向を把握したい方- 事業化視点で見る -

ページトップへ

おススメ サービス

おススメ astavisionコンテンツ

新着 最近 公開された関連が強い技術

この 技術と関連性が強い技術

関連性が強い 技術一覧

この 技術と関連性が強い人物

関連性が強い人物一覧

この 技術と関連する社会課題

関連する挑戦したい社会課題一覧

この 技術と関連する公募課題

関連する公募課題一覧

astavision 新着記事

サイト情報について

本サービスは、国が公開している情報(公開特許公報、特許整理標準化データ等)を元に構成されています。出典元のデータには一部間違いやノイズがあり、情報の正確さについては保証致しかねます。また一時的に、各データの収録範囲や更新周期によって、一部の情報が正しく表示されないことがございます。当サイトの情報を元にした諸問題、不利益等について当方は何ら責任を負いかねることを予めご承知おきのほど宜しくお願い申し上げます。

主たる情報の出典

特許情報…特許整理標準化データ(XML編)、公開特許公報、特許公報、審決公報、Patent Map Guidance System データ