(57)【要約】【課題】  複数の処理装置に優先順位を設定し、優先順位に応じて優先的に描画命令を描画装置に転送する。【解決手段】  マスタＣＰＵ（Geometry SubSystem0）がディスプレイリストList#0-1を作成中であり、描画装置（Rendering System）がアイドル状態のとき、スレーブＣＰＵ（Geometry SubSystem1）はList#1-1を描画装置に供給する。描画装置は、List#1-1に従って描画処理を開始する。マスタＣＰＵによるList#0-1の作成が終了すると、スレーブＣＰＵは、描画装置へのアクセス権をマスタＣＰＵに返し、描画装置にList#0-1が供給され、List#0-1に従って描画処理が開始される。以下同様にして、マスタＣＰＵが処理中でありかつ描画装置が待機中である間だけ、スレーブＣＰＵがディスプレイリストを描画装置に供給し、実行させる。【選択図】図７
2005202983.tif 000002
【特許請求の範囲】
【請求項１】
第１の命令を生成する処理を行う第１の生成手段と、
第２の命令を生成する処理を行う第２の生成手段と、
前記第１の命令、および前記第２の命令を所定のタイミングで切り替えて実行する実行手段と、
前記第１の命令を前記実行手段に転送する第１の転送手段と、
前記第２の命令を前記実行手段に転送する第２の転送手段と
を備え、
前記第２の転送手段は、前記第１の生成手段が処理中であり、かつ前記実行手段が待機中であるとき、前記第２の命令を前記実行手段に供給し、前記実行手段は、前記第２の命令の供給を受けたとき、前記第２の命令を実行する
ことを特徴とする情報処理装置。
【請求項２】
前記実行手段は、前記第１の命令および前記第２の命令を実行するためのパラメータを、前記第１の生成手段および前記第２の生成手段の個数分だけ保持し、
前記第１の生成手段から前記第１の命令が転送されてきたとき、前記第１の命令に対応するパラメータを用いて前記第１の命令を実行し、前記第２の生成手段から前記第２の命令が転送されてきたとき、前記第２の命令に対応するパラメータを用いて前記第２の命令を実行する
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記第２の生成手段より供給された前記第２の命令を記憶する記憶手段
をさらに備え、
前記第２の転送手段は、前記記憶手段に記憶された前記第２の命令を前記実行手段に転送する
ことを特徴とする請求項１に記載の情報処理装置。
【請求項４】
前記第１の命令は定型処理に対応し、前記第２の命令は非定型処理に対応する
ことを特徴とする請求項１に記載の情報処理装置。
【請求項５】
第１の命令を生成する処理を行う第１の生成手段と、
第２の命令を生成する処理を行う第２の生成手段と、
前記第１の命令、および前記第２の命令を所定のタイミングで切り替えて実行する実行手段と、
前記第１の命令を前記実行手段に転送する第１の転送手段と、
前記第２の命令を前記実行手段に転送する第２の転送手段と
を備える情報処理装置における情報処理方法であって、
前記第２の転送手段は、前記第１の生成手段が処理中であり、かつ前記実行手段が待機中であるとき、前記第２の命令を前記実行手段に供給し、
前記実行手段は、前記第２の命令の供給を受けたとき、前記第２の命令を実行する
ことを特徴とする情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置および方法に関し、例えば、複数のＣＰＵがそれぞれ並列に描画命令を生成し、生成された描画命令をＣＰＵの優先順位に従って描画装置に転送することにより、効率的に描画処理を行うようにした情報処理装置および方法に関する。
【背景技術】
【０００２】
近年のＬＳＩの集積度の向上により、１つのＬＳＩに同一の回路を複数個並列に並べて、処理速度を向上させることができるようなった。また、近年のビデオゲームシステムは、中央処理装置と描画装置から構成され、ＣＰＵはコントローラからの入力データに基づいて、表示すべき所定のポリゴンを表すデータに対して２次元や３次元の座標変換処理を行い、そのポリゴンを２次元のフレームバッファに描画するための描画命令列（ディスプレイリスト）を作成する。そして、描画装置は、受け取った描画命令列に従って、フレームバッファへのポリゴンの描画を行う。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、並列化による処理能力の向上という効果は、単純操作の繰り返しが多い描画装置により多く働く。そのため、近年では、描画装置による処理に比べて、ＣＰＵによる処理の方が相対的に遅くなってきている。さらに、３次元モデルデータの容量を削減するためには、少ない頂点データ（コントロールポイント）から、曲面などの複雑な図形をその都度生成する必要があるが、その処理はＣＰＵ側の負荷となる。そのため、描画処理を効率的に行わせることができない課題があった。
【０００４】
本発明はこのような状況に鑑みてなされたものであり、複数のＣＰＵに優先順位を設定し、それらを並列に動作させ、優先順位の高いＣＰＵが生成した描画命令列を優先的に処理することにより、効率的に処理を行うことができるようにするものである。
【課題を解決するための手段】
【０００５】
請求項１に記載の情報処理装置は、第１の命令を生成する処理を行う第１の生成手段と、第２の命令を生成する処理を行う第２の生成手段と、第１の命令、および第２の命令を所定のタイミングで切り替えて実行する実行手段と、第１の命令を実行手段に転送する第１の転送手段と、第２の命令を実行手段に転送する第２の転送手段とを備え、第２の転送手段は、第１の生成手段が処理中であり、かつ実行手段が待機中であるとき、第２の命令を実行手段に供給し、実行手段は、第２の命令の供給を受けたとき、第２の命令を実行することを特徴とする。
【０００６】
請求項５に記載の情報処理方法は、第２の転送手段は、第１の生成手段が処理中であり、かつ実行手段が待機中であるとき、第２の命令を実行手段に供給し、実行手段は、第２の命令の供給を受けたとき、第２の命令を実行することを特徴とする。
【０００７】
請求項１に記載の情報処理装置においては、第１の生成手段が、第１の命令を生成する処理を行い、第２の生成手段が、第２の命令を生成する処理を行い、実行手段が、第１の命令、および第２の命令を所定のタイミングで切り替えて実行し、第１の転送手段が、第１の命令を実行手段に転送し、第２の転送手段が、第２の命令を実行手段に転送するとき、第２の転送手段は、第１の生成手段が処理中であり、かつ実行手段が待機中であるとき、第２の命令を実行手段に供給し、実行手段は、第２の命令の供給を受けたとき、第２の命令を実行する。
【０００８】
請求項５に記載の情報処理装置においては、第２の転送手段は、第１の生成手段が処理中であり、かつ実行手段が待機中であるとき、第２の命令を実行手段に供給し、実行手段は、第２の命令の供給を受けたとき、第２の命令を実行する。
【発明の効果】
【０００９】
請求項１に記載の情報処理装置、および請求項５に記載の情報処理方法によれば、第２の転送手段は、第１の生成手段が処理中であり、かつ実行手段が待機中であるとき、第２の命令を実行手段に供給し、実行手段は、第２の命令の供給を受けたとき、第２の命令を実行するようにしたので、複数のプロセッサが効率的に実行手段を制御することができる。
【発明を実施するための最良の形態】
【００１０】
図１乃至図３は、本発明の情報処理装置を応用した家庭用ＴＶゲーム機の一例を示している。この家庭用ＴＶゲーム機は、ゲーム機本体２と、このゲーム機本体２に接続可能な操作装置１７および記録装置３８で構成されている。
【００１１】
ゲーム機本体２は、図１乃至図３に示すように、略四角形状に形成され、その中央の位置に、図４に示すような光ディスクの一種であるＣＤ−ＲＯＭ（compact disc-read only memory）４０（ゲーム用媒体に相当するディスク）を装着するディスク装着部３と、ゲーム機本体の適宜位置にゲームを任意にリセットするリセットスイッチ４と、電源のオン／オフをする電源スイッチ５と、ディスクの装着を操作するディスク操作スイッチ６と、所謂ゲームにおける操作を行う操作装置１７および所謂ゲームの設定などを記録しておく記録装置３８を接続する接続部７Ａ，７Ｂを有している。
【００１２】
接続部７Ａ，７Ｂは、図２および図３に示すように、２段に形成されている。接続部７Ａ，７Ｂの上段部には、記録装置３８を接続する記録挿入部８が設けられ、下段部には、操作装置１７を接続する接続端子挿入部１２が設けられている。
【００１３】
記録挿入部８は、横方向に長い長方形状の挿入孔と、その内部に記録装置３８が挿入されるメモリ用接続端子部（図示せず）を有している。また、図２に示すように、記録挿入部８には、記録装置３８が接続されていないときに、メモリ用接続端子部を埃などから保護するシャッタ９が設けられている。なお、記録装置３８は、電気的に書換え可能なＲＯＭを有しており、所謂ゲームに関連するデータを記録するようになされている。
【００１４】
記録装置３８を装着する場合、ユーザは、記録装置３８の先端でシャッタ９を内側方向に押し、さらに、記録装置３８を挿入孔に押し込み、メモリ用接続端子部に接続させる。
【００１５】
接続端子挿入部１２は、図２に示すように、横方向に長い長方形形状の挿入孔と、操作装置１７の接続端子部２６を接続する接続端子１２Ａを有している。
【００１６】
操作装置１７は、図１に示すように、両手の掌で挟持して５本の指が自由自在に動いて操作できる構造をしており、左右対称に配置された操作部１８，１９と、操作部１８，１９の中間部に設けたセレクトスイッチ２２およびスタートスイッチ２３と、操作部１８，１９の前面側に配置された操作部２４，２５と、ゲーム機本体２に接続するための接続端子部２６およびケーブル２７を有している。
【００１７】
図５は、上述のゲーム機本体２の内部の電気的構成の一例を示している。
【００１８】
ゲーム機本体２は、メインバス４１とサブバス４２の２本のバスを有している。これらのバスは、サブバスインタフェース（ＳＢＵＳＩＦ）４３を介して接続されている。
【００１９】
メインバス４１には、マイクロプロセッサや第１ベクトル処理装置（ＶＰＥ（vector processing engine）０）などで構成されるメインＣＰＵ（central processing unit）４４（第２の生成手段）と、ＲＡＭ（random access memory）で構成されるメインメモリ４５（記憶手段）、メインダイレクトメモリアクセスコントローラ（メインＤＭＡＣ（direct memory access controller））４６（第１の転送手段、第２の転送手段）、ＭＰＥＧ（Moving Picture Experts Group）デコーダ（ＭＤＥＣ）４７、第２ベクトル処理装置（ＶＰＥ１）４８（第１の生成手段）、およびＧＰＵＩＦ（graphical processing unit interface）７２を介して画像処理装置（ＧＰＵ）４９（実行手段）が接続されている。ＧＰＵ４９には、ＣＲＴＣ（CRT controller）８４が設けられている。
【００２０】
一方、サブバス４２には、マイクロプロセッサなどで構成されるサブＣＰＵ５０、ＲＡＭで構成されるサブメモリ５１、サブＤＭＡＣ５２、オペレーティングシステムなどのプログラムが記憶されているＲＯＭ５３、音声処理装置（ＳＰＵ（sound processing unit））５４、通信制御部（ＡＴＭ）５５、ディスク装着部３を兼ねるＣＤ−ＲＯＭドライブ５６、入力部５７が接続されている。そして、入力部５７の接続端子１２Ａには、操作装置１７が接続される。
【００２１】
ＳＢＵＳＩＦ４３は、メインバス４１とサブバス４２を接続し、メインバス４１からのデータをサブバス４２に出力するとともに、サブバス４２からのデータをメインバス４１に出力するようになされている。
【００２２】
メインＣＰＵ４４は、ゲーム機本体２の起動時に、サブバス４２に接続されているＲＯＭ５３から、ＳＢＵＳＩＦ４３を介して起動プログラムを読み込み、その起動プログラムを実行し、オペレーティングシステムを動作させるようになされている。
【００２３】
また、メインＣＰＵ４４は、ＣＤ−ＲＯＭドライブ５６を制御し、ＣＤ−ＲＯＭドライブ５６にセットされたＣＤ−ＲＯＭ４０からアプリケーションプログラムやデータを読み出し、メインメモリ４５に記憶させるようになされている。
【００２４】
また、メインＣＰＵ４４は、ＣＤ−ＲＯＭ４０から読み出した、複数の基本図形（ポリゴン）で構成された３次元オブジェクトのデータ（ポリゴンの頂点（代表点）の座標値など）に対して、第１ベクトル処理装置（ＶＰＥ０）７１（第２の生成手段）と共同して、非定型処理用のデータ（ポリゴン定義情報）を生成するようになされている。第１ベクトル処理装置（ＶＰＥ０）７１は、浮動小数点の実数を演算する複数の演算素子を有し、並列に浮動小数点演算を行うようになされている。
【００２５】
即ち、メインＣＰＵ４４と、第１ベクトル処理装置７１は、ジオメトリ処理のうちのポリゴン単位での細かな操作を必要とする処理、例えば、木の葉が風で揺れる様子や、自動車のフロントウィンドウの雨の滴等を表すポリゴンのデータを生成するような処理を行うようになされている。そして、演算された頂点情報やシェーディングモード情報等のポリゴン定義情報をパケットとして、メインバス４１を介してメインメモリ４５に供給するようになされている。
【００２６】
ポリゴン定義情報は、描画領域設定情報とポリゴン情報とからなる。そして、描画領域設定情報は、描画領域のフレームバッファアドレスにおけるオフセット座標と、描画領域の外部にポリゴンの座標があった場合に、描画をキャンセルするための描画クリッピング領域の座標からなる。また、ポリゴン情報は、ポリゴン属性情報と頂点情報とからなり、ポリゴン属性情報は、シェーディングモード、αブレンディングモード、およびテクスチャマッピングモード等を指定する情報であり、頂点情報は、頂点描画領域内座標、頂点テクスチャ領域内座標、および頂点色等の情報である。
【００２７】
一方、第２ベクトル処理装置（ＶＰＥ１）４８は、第１ベクトル処理装置７１の場合と同様に、浮動小数点の実数を演算する複数の演算素子を有し、並列に浮動小数点演算を行うようになされている。そして、操作装置１７の操作とマトリクスの操作で画像を生成できるもの、即ち、ＶＰＥ１においてプログラムが可能な程度の比較的簡単な処理（定型処理）用のデータ（ポリゴン定義情報）を生成するようになされている。例えば、ビルや車等の簡単な形状の物体に対する透視変換、平行光源計算、２次元曲面生成等の処理を行うようになされている。そして、生成したポリゴン定義情報をＧＰＵＩＦ７２に供給するようになされている。
【００２８】
ＧＰＵＩＦ７２は、メインメモリ４５よりメインバス４１を介して供給されるメインＣＰＵ４４からのポリゴン定義情報と、第２ベクトル処理装置４８より供給されるポリゴン定義情報とを、衝突しないように調停しながら、ＧＰＵ４９に供給するようになされている。
【００２９】
ＧＰＵ４９は、ＧＰＵＩＦ７２を介して供給されたポリゴン定義情報に基づいて、フレームメモリ５８にポリゴンを描画するようになされている。ＧＰＵ４９は、フレームメモリ５８をテクスチャメモリとしても使用できるため、フレームメモリ上のピクセルイメージをテクスチャとして、描画するポリゴンに貼り付けることができる。
【００３０】
メインＤＭＡＣ４６は、メインバス４１に接続されている各回路を対象として、ＤＭＡ転送などの制御を行うようになされている。また、メインＤＭＡＣ４６は、ＳＢＵＳＩＦ４３の状態に応じて、サブバス４２に接続されている各回路を対象としてＤＭＡ転送などの制御を行うこともできる。また、ＭＤＥＣ４７は、メインＣＰＵ４４と並列に動作し、ＭＰＥＧ（Moving Picture Experts Group）方式あるいはＪＰＥＧ（Joint Photographic Experts Group）方式等で圧縮されたデータを伸張するようになされている。
【００３１】
サブＣＰＵ５０は、ＲＯＭ５３に記憶されているプログラムに従って各種動作を行うようになされている。サブＤＭＡＣ５２は、ＳＢＵＳＩＦ４３がメインバス４１とサブバス４２を切り離している状態においてのみ、サブバス４２に接続されている各回路を対象としてＤＭＡ転送などの制御を行うようになされている。
【００３２】
ＳＰＵ５４は、サブＣＰＵ５０やサブＤＭＡＣ５２から供給されるサウンドコマンドに対応して、サウンドメモリ５９から音声データを読み出してオーディオ出力として出力するようになされている。
【００３３】
通信制御部（ＡＴＭ）５５は、公衆回線等に接続され、その回線を介してデータの送受信を行うようになされている。
【００３４】
入力部５７は、操作装置１７を接続する接続端子部１２Ａ、他の装置（図示せず）からの画像データを受け取るビデオ入力回路８２、および他の装置からの音声データを受け取るオーディオ入力回路８３を有している。
【００３５】
図６は、図５に示したメインＣＰＵ４４、メインメモリ４５、第２ベクトル処理装置（ＶＰＥ１）４８、およびＧＰＵ４９の詳細な構成を示すブロック図である。
【００３６】
メインＣＰＵ４４を構成するＣＰＵコア（ＣＯＲＥ）９４は、所定の命令を実行するようになされている。命令（Instruction）キャッシュ（Ｉ＄）は、ＣＰＵコア９４に供給する命令を一時的に保持するようになされている。高速なメモリであるＳＰＲ（スクラッチメモリ（scratch pad ram））９６は、ＣＰＵコア９４による処理結果を記憶するようになされている。データキャッシュ（Ｄ＄）は、ＣＰＵコア９４が処理を実行するために用いるデータを一時的に記憶するようになされている。
【００３７】
第１ベクトル処理装置（ＶＰＥ０）７１を構成する浮動小数点ベクトルプロセッサユニットおよび内蔵メモリ（ＶＵ−ＭＥＭ）１０１は、６４ビット長のマイクロプログラムで動作する浮動小数点ベクトルプロセッサユニット（ＶＵ）および内蔵メモリ（ＭＥＭ）より構成され、後述するマイクロメモリ（microMEM）９８に記憶されているプログラムに従って、内部レジスタと内蔵メモリに記憶されたデータを高速演算するようになされている。
【００３８】
ＰＫＥ１０２は、後述するメインＤＭＡＣ４６の制御により、転送されてくるＶＵのマイクロコードをマイクロメモリ９８に展開したり、パックされたデータのパケットをＶＵ−ＭＥＭ１０１の内蔵メモリ（ＭＥＭ）に展開するようになされている。ＦＭＡＣ（Floating Maltiple Adder Calculation Unit）９９は、浮動小数点演算を実行するようになされている。ＤＩＶ（わり算器（Divider））１００は、わり算を実行するようになされている。そして、上述したように、メインＣＰＵ４４には、第１ベクトル処理装置（ＶＰＥ０）が内蔵されており、共同して非定型処理を行うようになされている。
【００３９】
第２ベクトル処理装置４８を構成する浮動小数点ベクトルプロセッサユニットおよび内蔵メモリ（ＶＵ−ＭＥＭ）１０７は、６４ビット長のマイクロプログラムで動作する浮動小数点ベクトルプロセッサユニット（ＶＵ）および内蔵メモリ（ＭＥＭ）より構成され、後述するマイクロメモリ（microMEM）１０３に記憶されているプログラムに従って、内部レジスタと内蔵メモリに記憶されたデータを高速演算するようになされている。
【００４０】
ＰＫＥ１０８は、メインＤＭＡＣ４６の制御により、転送されてくるＶＵのマイクロコードをマイクロメモリ１０３に展開したり、パックされたデータのパケットをＶＵ−ＭＥＭ１０７の内蔵メモリに展開するようになされている。ＦＭＡＣ（Floating Maltiple Adder Calculation Unit）１０４は、浮動小数点演算を実行するようになされている。ＤＩＶ（わり算器（Divider））１０６は、わり算を実行するようになされている。そして、メインメモリ４５より供給されたデータに対して、定型処理を施し、処理結果をＧＰＵＩＦ７２を介してＧＰＵ４９に供給するようになされている。
【００４１】
メインメモリ４５は、３次元オブジェクトのデータを記憶し、必要に応じて、第１ベクトル処理装置７１，第２ベクトル処理装置４８にそれぞれ供給するようになされている。また、メインＣＰＵ４４と第１ベクトル処理装置（ＶＰＥ０）７１とが共同して作成したディスプレイリストを、メインメモリ４５が内蔵するＭＦＩＦＯ（MemoryFIFO）に一旦、記憶させ、メインバス４１を介してＧＰＵＩＦ７２に供給するようになされている。これは、メインＣＰＵ４４および第１ベクトル処理装置７１の方が、第２ベクトル処理装置４８より優先順位が低いため、第２ベクトル処理装置４８がアイドル状態になるまでディスプレイリストを保持しておく必要があるからである。
【００４２】
また、ＣＰＵ４４および第１ベクトル処理装置７１は、共同して第２ベクトル処理装置４８が処理するためのマトリクスを作成し、メインメモリ４５に記憶させるようになされている。そして、第２ベクトル処理装置４８は、このマトリクスを用いて、ディスプレイリストを作成するようになされている。
【００４３】
ＧＰＵ４９は、第１ベクトル処理装置７１よりＧＰＵＩＦ７２を介して供給されれる非定型処理用のディスプレイリストと、第２ベクトル処理装置４８より供給される定型処理用のディスプレイリストを処理するために、それぞれに対応する描画時のクリップ範囲や描画オフセット等のコンテクスト（描画設定条件）を保持するようになされている。ＣＧ０は非定型処理用のグラフィックコンテクストであり、ＣＧ１は、定型処理用のグラフィックコンテクストである。
【００４４】
例えば、ＤＭＡＣ１０９の制御により、メインメモリ４５からメインバス４１を介して第１ベクトル処理装置７１に供給されたマイクロコードやパックされたデータ（３次元オブジェクトのデータなど）のパケットは、ＰＫＥ１０２により、マイクロメモリ９８や内蔵メモリに展開される。そして、ＦＭＡＣ９９およびＤＩＶ１００により、３次元オブジェクトのデータに対して、マトリクス演算、座標変換、透視変換等の演算が施される。また、このとき、ＣＰＵコア９４と共に、より複雑な処理が施される。例えば、木の葉が風に揺れる様子や、自動車のフロントウィンドウを雨の滴が垂れる様子を描画するためのディスプレイリストが作成される。
【００４５】
このようにして作成された２次元のオブジェクトを画面に描画するためのディスプレイリスト（Complex Stream）は、メインバス４１を介して一旦メインメモリ４５のＭＦＩＦＯに記憶され、ＧＰＵＩＦ７２に供給される。
【００４６】
一方、メインＤＭＡＣ４６の制御により、メインメモリ４５からメインバス４１を介して第２ベクトル処理装置４８に供給されたマイクロコードやパックされたデータ（３次元オブジェクトのデータなど）のパケットは、ＰＫＥ１０８により、マイクロメモリ１０３や内蔵メモリに展開される。そして、ＦＭＡＣ１０４およびＤＩＶ１０６により、メインメモリ４５よりメインバス４１を介して供給される、メインＣＰＵ４４および第１ベクトル処理装置７１が作成したマトリクスやコンテクストに基づいて、３次元オブジェクトのデータに対して、マトリクス演算、座標変換、透視変換等の演算が施される。ここでは、比較的簡単な定型処理が施される。
【００４７】
そして、このようにして作成された２次元のオブジェクトを画面に描画するためのディスプレイリスト（Simple Stream）は、メインバス４１を介してＧＰＵＩＦ７２に供給される。ＧＰＵＩＦ７２は、これら２つのストリームを調停し、それらを時分割でＧＰＵ４９に転送する。
【００４８】
そして、ＧＰＵ４９により、ＧＰＵＩＦ７２より供給されたディスプレイリストに基づいて、描画処理が実行され、フレームメモリ５８にポリゴンが描画される。ここで、ディスプレイリストがメインＣＰＵ４４および第１ベクトル処理装置７１によってメインメモリ４５上に作成され、メインバス４１を介して供給されたものである場合、ＧＰＵ４９においては、グラフィックコンテクスト（ＧＣ）０を用いて描画処理が行われ、ディスプレイリストが第２ベクトル処理装置４８によって作成されたものである場合、グラフィックコンテクスト（ＧＣ）１を用いて描画処理が行われる。
【００４９】
フレームメモリ５８に描画されたポリゴンは、ＣＲＴＣ８４の制御により、対応するビデオ信号に変換された後、出力される。
【００５０】
図７は、２つのディスプレイリストが処理されるタイミングを示す図である。図７におけるGeometry Subsystem0は、図６のブロック図においては第２ベクトル処理装置４８に対応し、Geometry Subsystem1はメインＣＰＵ４４および第１ベクトル処理装置７１に対応している。そして、Rendering SubsystemはＧＰＵ４９に対応している。
【００５１】
図７（Ａ）は、プロセッサが１つの場合の処理手順を示している。即ち、Geometry Subsystem0がディスプレイリスト（List#0-1）を作成すると、それをRendering Subsystemに供給し、次のディスプレイリスト（List#0-2以降のディスプレイリスト）の作成を続ける。Rendering Subsystemは、供給されたディスプレイリスト（List#0-1）に従って、描画処理を実行する。描画処理が終了した時点で、Geometry Subsystem0が次のディスプレイリスト（List#0-2）の作成をまだ行っている場合、Rendering SubsystemはGeometry Subsystem0がディスプレイリスト（List#0-2）の作成を終了し、その供給を受けるまでの間、アイドル状態となる。
【００５２】
以下同様にして、Rendering Subsystemによる描画処理が終了しても、Geometry Subsystem0による次のディスプレイリストの作成が終了していない場合、Rendering Subsystemは、次のディスプレイリストがGeometry Subsystem0から供給されるまでの間、アイドル状態となる。
【００５３】
図７（Ｂ）は、プロセッサが２つの場合の処理手順を示している。即ち、Geometry Subsystem0がディスプレイリスト（List#0-1）を作成する間、Rendering Subsystemはアイドル状態であるので、Geometry Subsystem1が既に作成し、メインメモリ４５に記憶させておいたディスプレイリスト（List#1-1）をRendering Subsystemに供給する。Geometry Subsystem1からのディスプレイリスト（List#1-1）の供給を受けたRendering Subsystemは、ディスプレイリストに付加されて供給されたGeometry Subsystem1に対応するコンテクストに基づいて、描画処理を実行する。
【００５４】
Geometry Subsystem0によるディスプレイリスト（List#0-1）の作成が終了すると、Geometry Subsystem1は、次のディスプレイリスト（List#1-2）のRendering Subsystemへの供給を中止する。これにより、Geometry Subsystem0は、作成したディスプレイリスト（List#0-1）をRendering Subsystemに供給するとともに、次のディスプレイリスト（List#0-2）の作成を開始する。そして、Rendering Subsystemは、供給されたディスプレイリスト（List#0-1）に従って、描画処理を実行する。
【００５５】
Rendering Subsystemによるディスプレイリスト（List#0-1）の描画処理が終了したとき、Geometry Subsystem0は、まだ、次のディスプレイリスト（List#0-2）を作成中であり、Rendering Subsystemはアイドル状態であるので、Geometry Subsystem1は、次のディスプレイリスト（List#1-2）をRendering Subsystemに供給する。Geometry Subsystem1からのディスプレイリスト（List#1-2）の供給を受けたRendering Subsystemは、そのディスプレイリスト（List#1-2）に従って、描画処理を開始する。
【００５６】
以下同様にして、Geometry Subsystem1は、Geometry Subsystem0が処理中であり、Rendering Subsystemがアイドル中のときだけ、作成したディスプレイリストをRendering Subsystemに供給する。これにより、複数のプロセッサが作成したディスプレイリストを、Rendering Subsystemに効率的に処理させることが可能となる。
【００５７】
例えば、座標変換処理を補強するために、ＣＰＵとは別のサブプロセッサや座標変換装置を設けて、複数の処理装置が共同して１つの描画装置（ＧＰＵ４９）にディスプレイリストを送出するようにした場合、描画装置に送出するディスプレイリストの容量は膨大なため、短い時間間隔で、描画装置を使用するＣＰＵを切り替えるようにしないと、各ＣＰＵのローカルメモリがオーバフローする。そのため、図７（Ｂ）に示したように、各ＣＰＵに予め優先順位を設定し、高い優先順位のＣＰＵ（マスタＣＰＵ）（図６においては、第２ベクトル処理装置４８）が描画装置へ送出するリストがなくなったら、直ちにアクセス権を次のＣＰＵ（スレーブＣＰＵ）（図６においては、メインＣＰＵ４４と第１ベクトル処理装置７１）へ譲るようにする。
【００５８】
スレーブＣＰＵは、マスタＣＰＵがディスプレイリストを作成して、それを描画装置に転送する準備ができた時点で、まだ、送出すべきディスプレイリストが残っていても、すぐに処理を中断し、描画装置へのアクセス権をマスタＣＰＵに返す。
【００５９】
マスタＣＰＵには、高速に処理を実行するがローカルメモリの容量が比較的小さいものが割り当てられ、スレーブＣＰＵにはローカルメモリの容量は比較的大きいが、処理速度が比較的遅いものが割り当てられる。
【００６０】
図８に示すように、スレーブＣＰＵのさらにスレーブとなるＣＰＵが接続される場合もある。このような場合、特に低次のスレーブＣＰＵは、大きなディスプレイリストを記憶するためのさらに大きな容量のローカルメモリを必要とする。このため、低次のスレーブＣＰＵは、通常、メインメモリを抱えるメインＣＰＵが受け持つようにしている。
【００６１】
描画装置が描画を行うためには、ディスプレイリストに記述された頂点情報と同時に、上述したように、描画時のクリップ範囲や描画オフセット等のコンテクストと呼ばれる環境パラメータ(描画設定条件）が必要である。Rendering Subsystemは、各Geometry Subsystemより供給されたディスプレイリストに基づいた描画処理を、そのディスプレイリストを供給したGeometry Subsystemに対応するコンテクストに従って行う。しかしながら、ディスプレイリストを供給するGeometry Subsystemが切り替わる度に、コンテクストを再設定することは非常に面倒である。そこで、Rendering Subsystem側が、Geometry Subsystemの個数分のコンテクストを保持するようにしている。
【００６２】
図７に示したように、コンテクストは、ディスプレイリストに付加され、例えば、描画するオブジェクト毎にＧＰＵ４９に供給される。従って、ＧＰＵ４９は、オブジェクト毎に、そのオブジェクトに対応するコンテクストに基づいて、描画処理を行うことができる。
【００６３】
Geometry SubsystemとRendering Subsystemは、メインバス４１を構成するデータバスとアドレスバスを共有し、アドレスバスを介して現在アクセスしているGeometry SubsystemのＩＤを、またデータバスを介して現在アクセスしているGeometry Subsystemが作成したディスプレイリストをそれぞれRendering Subsystemに供給する。Rendering Subsystemは、供給されたＩＤに対応するコンテクストを選択し、このコンテクストに基づいてディスプレイリストを解釈し、フレームバッファへの描画を行う。
【００６４】
以上のように、複数のプロセッサがその優先順位に従って描画装置を制御するようにすることにより、ディスプレイリストを保持するローカルメモリの容量を、プロセッサ毎に最小限にすることができる。これにより、ローカルメモリにコストをかけることなく、ディスプレイリストの作成処理を並列化することができる。また、コンテクストを各描画処理装置に保持させることにより、コンテクストの切り替え時におけるオーバヘッドを減少させることができる。
【００６５】
次に、複数のプロセッサがデータバスとメインメモリを時分割で共有し、データの転送を行う場合において、データの制御を、転送するデータ自身に埋め込まれたメタ命令に従って行う方法について説明する。
【００６６】
図９は、メタ命令のフォーマット例を示している。メタ命令は１２８ビットで構成され、そのうちの６４ビットのみが有効とされる。最初の１６ビットには、転送すべきデータのサイズがセットされる。２４ビット目乃至３１ビット目には、メタ命令のＩＤがセットされる。そして、３２ビット目乃至６３ビット目には、転送すべきデータが記憶されているアドレス、または、次に読み出すべきメタ命令が記憶されているアドレスがセットされる。
【００６７】
データの転送は、データに埋め込まれたメタ命令のＩＤに応じて、以下のように制御される。
【００６８】
ＩＤが「ｃｎｔ」である場合、メタ命令の次のＱＷＣワードを転送した後、パケットの次の番地のメタ命令を実行する。ＩＤが「ｃｎｔｓ」である場合、メタ命令の次のＱＷＣワードをストール制御をしながら転送した後、パケットの次の番地のメタ命令を実行する。ＩＤが「ｎｅｘｔ」の場合、メタ命令に続くＱＷＣワードを転送した後、アドレスで示される番地に記憶されているメタ命令が実行される。
【００６９】
また、ＩＤが「ｒｅｆ」の場合、アドレスで表される番地からＱＷＣワードを転送した後、メタ命令の次の番地のメタ命令を実行する。ＩＤが「ｒｅｆｓ」の場合、ＡＤＤＲ番地からＱＷＣワードをストール制御を行いながら転送した後、メタ命令の次の番地のメタ命令を実行する。
【００７０】
ＩＤが「ｃａｌｌ」の場合、メタ命令に続くＱＷＣワードを転送した後、パケットの次の番地をレジスタにプッシュして、アドレスで示される番地に記憶されているメタ命令を実行する。ＩＤが「ｒｅｔ」の場合、メタ命令に続くＱＷＣワードを転送した後、レジスタからポップした番地に記憶されているメタ命令を実行する。ＩＤが「ｅｎｄ」の場合、メタ命令に続くＱＷＣワードを転送した後、処理を終了する。
【００７１】
図１０は、メタ命令のＩＤが「ｎｅｘｔ」の場合の動作を示している。最初に、メインＤＭＡＣ４６は、レジスタＤｎ＿ＴＡＤＲ（Tag Address）によって指定されたアドレスから、１ワードをメタ命令ワードとして読み出す。この例の場合、そのメタ命令は「ＮＥＸＴ  ＡＤＤＲ＝ＡＤＤＲ２，ＬＥＮ＝８」であるので、続く８ｑｗｏｒｄ（quadlet word）（１ｑｗｏｒｄ＝１２８ビット）のデータが転送された後、アドレスＡＤＤＲ２に記憶されているメタ命令「ＮＥＸＴ  ＡＤＤＲ＝ＡＤＤＲ１，ＬＥＮ＝２」が実行される。
【００７２】
これにより、続く２ｑｗｏｒｄのデータがＤＭＡＣの制御により転送された後、アドレスＡＤＤＲ１に記憶されているメタ命令「ＥＮＤ  ＡＤＤＲ＝−，ＬＥＮ＝８」が実行される。即ち、続く８ｑｗｏｒｄのデータが転送された後、処理を終了する。
【００７３】
図１１は、メタ命令のＩＤが「ＲＥＦ」の場合の動作を示している。最初に、メインＤＭＡＣ４６は、レジスタＤｎ＿ＴＡＤＲによって指定されたアドレスから、１ワードをメタ命令ワードとして読み出す。この例の場合、「ＲＥＦ  ＡＤＤＲ＝ＡＤＤＲ２，ＬＥＮ＝２」であるので、アドレス２より以降に記憶されている２ｑｗｏｒｄのデータが転送され、次のメタ命令が実行される。
【００７４】
即ち、メタ命令「ＲＥＦ  ＡＤＤＲ＝ＡＤＤＲ１，ＬＥＮ＝８」が実行され、ＡＤＤＲ１より以降に記憶されている８ｑｗｏｒｄのデータが転送され、次のメタ命令が実行される。即ち、メタ命令「ＥＮＤ  ＡＤＤＲ＝−，ＬＥＮ＝８」が実行され、続く８ｑｗｏｒｄのデータが転送される。
【００７５】
図１２は、メタ命令のＩＤが「ＣＡＬＬ」の場合の動作を示している。最初に、メインＤＭＡＣ４６は、レジスタＤｎ＿ＴＡＤＲによって指定されたアドレスから、１ワードをメタ命令ワードとして読み出す。この例の場合、「ＣＡＬＬ  ＡＤＤＲ＝ＡＤＤＲ１，ＬＥＮ＝０」であるので、アドレス１に記憶されているメタ命令が実行される。即ち、メタ命令「ＣＡＬＬ  ＡＤＤＲ＝ＡＤＤＲ２，ＬＥＮ＝８」が実行され、続く８ｑｗｏｒｄのデータが転送された後、ＡＤＤＲ２に記憶されているメタ命令が実行される。
【００７６】
即ち、メタ命令「ＲＥＴ  ＡＤＤＲ＝−，ＬＥＮ＝８」が実行され、続く８ｑｗｏｒｄのデータが転送された後、リターンし、メタ命令「ＲＥＴ  ＡＤＤＲ＝−，ＬＥＮ＝０」が実行される。これにより、次のメタ命令「ＣＡＬＬ  ＡＤＤＲ＝ＡＤＤＲ２，ＬＥＮ＝８」が実行され、続く８ｑｗｏｒｄのデータが転送された後、ＡＤＤＲ２に記憶されているメタ命令が再度実行される。
【００７７】
即ち、「ＲＥＴ  ＡＤＤＲ＝−，ＬＥＮ＝８」が実行され、続く８ｑｗｏｒｄのデータが転送された後、リターンし、次にメタ命令「ＥＮＤ  ＡＤＤＲ＝−，ＬＥＮ＝０」が実行され、処理を終了する。
【００７８】
このように、データに埋め込まれたメタ命令に従って、データ転送が制御される。
【００７９】
図１３は、上述したメタ命令によって、データの転送が制御される様子を示す図である。ＣＰＵ４４がディスプレイリスト（DisplayList0）を作成している間に、１フレーム前に作成されたディスプレイリスト（DisplayList1）が第２ベクトル処理装置（ＶＰＥ１）４８に転送される。
【００８０】
まず、メインＣＰＵ４４および第１ベクトル処理装置７１が、図１３に示すように、ＩＤが「ＮＥＸＴ」のメタ命令、コンテクスト、ＩＤが「ＲＥＦ」のメタ命令、ＩＤが「ＲＥＦ」のメタ命令、マトリクス、ＩＤが「ＲＥＦ」のメタ命令、マトリクス、ＩＤが「ＲＥＦ」のメタ命令、マトリクス、ＩＤが「ＲＥＦ」のメタ命令、ＩＤが「ＲＥＦ」のメタ命令、ＩＤが「ＲＥＦ」のメタ命令、マトリクス、ＩＤが「ＲＥＴ」のマトリクスからなるディスプレイリストを作成する。
【００８１】
その間、１フレーム前に作成されたディスプレイリスト（DisplayList1）が第２ベクトル処理装置４８に転送される。即ち、ＩＤが「ＮＥＸＴ」のメタ命令が実行され、続くコンテクストが第２ベクトル処理装置４８に転送される。次に、ＩＤが「ＲＥＦ」のメタ命令が実行され、メインメモリ４５内のオブジェクトデータベースの中のProgram0が参照される。このように、フレーム間で内容が変わらないデータは、ディスプレイリストからメタ命令を使用して参照され、ディスプレイリスト間で共有される。このため、ディスプレイリストの作成においては、フレーム毎に変化する位置データ（マトリクス）の更新だけとなる。
【００８２】
なお、オブジェクトデータベースには、３次元物体を記述するための３次元データ（Vertex of Object）、オブジェクトデータを解釈するためのプログラム、およびオブジェクトの装飾にテクスチャマッピングを行う場合に、テクスチャとなる画像データ（Texture Image）が格納されている。
【００８３】
次に、ＩＤが「ＲＥＦ」の次のメタ命令が実行され、３次元座標データ（オブジェクトの頂点座標データ）（Vertex of Object0）が参照される。次に、マトリクスが第２ベクトル処理装置４８に転送され、ＩＤが「ＲＥＦ」の次のメタ命令が実行され、３次元座標データ（Vertex of Object1）が参照される。次に、マトリクスが第２ベクトル処理装置４８に転送される。
【００８４】
そして、ＩＤが「ＲＥＦ」の次のメタ命令が実行され、再び３次元座標データ（Vertex of Object1）が参照され、マトリクスが第２ベクトル処理装置４８に転送される。そして、ＩＤが「ＲＥＦ」の次のメタ命令が実行され、プログラム（Program3）が参照される。次に、ＩＤが「ＲＥＦ」の次のメタ命令が実行され、テクスチャとなる画像データが転送される。
【００８５】
テクスチャとなる画像データがフレームメモリ５８に記憶されていない場合、オブジェクトデータ（Vertex of Object4）の転送に先立って、テクスチャとなる画像データがフレームメモリ５８に転送される。テクスチャとなる画像データがＭＤＥＣ４７からの解凍データやサブバス４２からの転送データであり、フレーム毎に変化するものである場合、後述するように、ストール機能が用いられ、データ転送の同期が取られる。
【００８６】
画像データが転送される間、第２ベクトル処理装置４８の処理が一旦停止するので、この期間を最小にするために、画像データの転送期間は、他のＤＭＡチャンネルを停止する。この指定もメタ命令の所定の制御ビットにより行うことができる。例えば、図９に示したメタ命令の２４ビット目および２５ビット目にこの制御ビットをセットすることができる。
【００８７】
次に、ＩＤが「ＲＥＦ」の次のメタ命令が実行され、３次元座標データ（Vertex of Object4）が参照される。次に、マトリクスが第２ベクトル処理装置４８に転送され、ＩＤが「ＲＥＴ」のメタ命令が実行され、処理を終了する。
【００８８】
図１４は、ストール機能を説明するための図である。デバイス０（DEV0）からメインメモリにデータの転送が行われ、メインメモリからデバイス１（DEV1）にデータの転送が行われる場合、メインメモリからデバイス１にデータが転送されるときのメインメモリ上での転送アドレスが、デバイス０からメインメモリにデータが転送されるときのメインメモリ上での転送アドレスを越える間、メインメモリからデバイス１へのデータの転送をストールする。
【００８９】
図１３に示した例の場合、メインメモリ４５から第２ベクトル処理装置４８にテクスチャとなる画像データを転送するときのメインメモリ４５上での転送アドレスが、ＭＤＥＣ４７からメインメモリ４５にテクスチャとなる画像データの転送が行われるときのメインメモリ４５上での転送アドレスを越える間、メインメモリ４５から第２ベクトル処理装置４８へのテクスチャとなる画像データの転送をストールする。このようにして、データの同期が取られる。
【００９０】
以上のように、メインＤＭＡＣ４６が、リストを構成するメタ命令を読み出し、それに従って、データを各プロセッサに分配する。従って、データを生成する時点で、転送の順序や形態、あるいは転送の優先順位を予めデータの中にプログラムすることにより、データの性質に依存して、最適な転送を行うことができる。また、データの転送順序をリスト形式で予め記述しておくことにより、メモリ内に無駄な作業用のコピーデータを持つ必要がなく、無駄なメモリアクセスを軽減するとともに、ディスプレイリストのサイズを削減することができる。
【００９１】
また、ディスプレイリストのうち、フレーム毎に変更する部分だけを２重化して個別に記憶し、その他の部分は共通のメモリ領域に記憶させるようにすることにより、ディスプレイリストを記憶するためのメモリ容量を削減することができる。従って、少ないメモリ容量で多くのディスプレイリストを記憶することができる。
【００９２】
さらに、データに埋め込まれたメタ命令に従ってデータの転送が行われるため、複数のプロセッサ間でのデータの読み出しおよび書き込みの同期を取ることを容易にすることができ、メモリ内にダブルバッファを構成することなく、複数のプロセッサがメモリを共有するようにすることができる。
【００９３】
なお、上記実施の形態においては、ＣＤ−ＲＯＭにデータを記憶させるようにしたが、他の記録媒体を用いるようにすることも可能である。
【図面の簡単な説明】
【００９４】
【図１】本発明の情報処理装置を応用した家庭用ゲーム機の一例を示す平面図である。
【図２】図１の家庭用ゲーム機１の正面図である。
【図３】図１の家庭用ゲーム機１の側面図である。
【図４】図１の家庭用ゲーム機１で再生されるＣＤ−ＲＯＭの一例を示す平面図である。
【図５】図１の家庭用ゲーム機１の内部の電気的構成例を示すブロック図である。
【図６】図５のメインＤＭＡＣ４６、メインＣＰＵ４４、第２ベクトル処理装置４８、メインメモリ４５、ＧＰＵ４９の詳細な構成例を示すブロック図である。
【図７】複数のプロセッサが生成するディスプレイリストの処理手順を示す図である。
【図８】３つのプロセッサがＧＰＵ４９を制御するようにした場合の家庭用ゲーム機１の他の構成例を示すブロック図である。
【図９】メタ命令のフォーマット例を示す図である。
【図１０】メタ命令に従って、データ転送が行われる手順を説明する図である。
【図１１】メタ命令に従って、データ転送が行われる手順を説明する図である。
【図１２】メタ命令に従って、データ転送が行われる手順を説明する図である。
【図１３】ディスプレイリストに従って、データ転送が行われる手順を説明する図である。
【図１４】ストール制御を説明する図である。
【符号の説明】
【００９５】
１  家庭用ゲーム機，  ２  ゲーム機本体，  ３  ディスク装着部，  １７  操作装置，  ４０  ＣＤ−ＲＯＭ，  ４１  メインバス，  ４２  サブバス，  ４３  ＳＢＵＳＩＦ，  ４４  メインＣＰＵ，  ４５  メインメモリ，  ４６  メインＤＭＡＣ，  ４７  ＭＰＥＧデコーダ，  ４８  第２ベクトル処理装置，  ４９  画像処理装置（ＧＰＵ），  ５０  サブＣＰＵ，  ５１  サブメモリ，  ５２  サブＤＭＡＣ，  ５３  ＲＯＭ，  ５６  ＣＤ−ＲＯＭドライブ，  ５８  フレームメモリ，  ９４  ＣＰＵコア，  ９８，１０３  マイクロメモリ，  ９９，１０４  ＦＭＡＣ，  １００，１０６  ＤＩＶ，  １０１，１０７  ＶＵ−ＭＥＭ，  １０２，１０８  ＰＫＥ
【図１】
2005202983.tif 000003
【図２】
2005202983.tif 000004
【図３】
2005202983.tif 000005
【図４】
2005202983.tif 000006
【図５】
2005202983.tif 000007
【図６】
2005202983.tif 000008
【図７】
2005202983.tif 000009
【図８】
2005202983.tif 000010
【図９】
2005202983.tif 000011
【図１０】
2005202983.tif 000012
【図１１】
2005202983.tif 000013
【図１２】
2005202983.tif 000014
【図１３】
2005202983.tif 000015
【図１４】
2005202983.tif 000016
【手続補正書】
【提出日】平成17年4月20日(2005.4.20)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
メインプロセッサエレメントと、それぞれがローカルメモリを有し、独立したプロセッサとして動作する複数のサブプロセッサエレメントとを含み、
前記メインプロセッサエレメントと前記複数のサブプロセッサエレメントが１つのＬＳＩとして集積化されてなることを特徴とするプロセッサ。
【請求項２】
前記メインプロセッサエレメントは、ＣＰＵコアと、前記ＣＰＵコアに供給する命令を一時的に保持する命令キャッシュと、前記ＣＰＵコアが処理を実行するために用いるデータを一時的に記憶するデータキャッシュとを含むことを特徴とする請求項１に記載のプロセッサ。
【請求項３】
前記サブプロセッサエレメントは、当該サブプロセッサエレメント内に設けられたメモリに記憶されているプログラムにしたがって、前記ローカルメモリに記憶されたデータを演算することを特徴とする請求項１または２に記載のプロセッサ。
【請求項４】
前記サブプロセッサエレメントは、前記ローカルメモリに記憶されたデータを並列演算するベクトルプロセッサユニットを含むことを特徴とする請求項１から３のいずれかに記載のプロセッサ。
【請求項５】
前記ベクトルプロセッサユニットは、実数の積和演算をする複数の積和演算素子を有し、前記複数の積和演算素子により、前記ローカルメモリに記憶された実数データが並列に積和演算されることを特徴とする請求項４に記載のプロセッサ。
【請求項６】
前記メインプロセッサエレメントと前記複数のサブプロセッサエレメントは、メインバスで結合されており、前記メインバスに接続された外部インタフェースを介して画像処理ユニットと結合可能に構成されたことを特徴とする請求項１から５のいずれかに記載のプロセッサ。
【請求項７】
前記メインプロセッサエレメントと前記複数のサブプロセッサエレメントは、メインバスで結合されており、前記メインバスに接続されたサブバスインタフェースを介してサブバスに接続された各ユニットと結合可能に構成されたことを特徴とする請求項１から６のいずれかに記載のプロセッサ。
【請求項８】
メインプロセッサエレメントと、それぞれがローカルメモリを有し、独立したプロセッサとして動作する複数のサブプロセッサエレメントとを含み、
一のサブプロセッサエレメントによる演算結果が他のサブプロセッサエレメントに受け渡され、前記他のサブプロセッサエレメントが前記演算結果を利用して演算処理を行うことを特徴とするプロセッサ。
【請求項９】
主記憶との間でＤＭＡ転送を行うＤＭＡ制御部をさらに含み、
前記一のサブプロセッサエレメントによる演算結果は、前記ＤＭＡ制御部により、前記他のサブプロセッサエレメントの前記ローカルメモリにＤＭＡ転送されて利用されることを特徴とする請求項８に記載のプロセッサ。
【請求項１０】
前記メインプロセッサエレメントと前記複数のサブプロセッサエレメントは、メインバスで結合され、前記メインバスに接続された外部インタフェースを介して画像処理ユニットと結合可能に構成されており、
前記一のサブプロセッサエレメントによる前記演算結果を利用して前記他のサブプロセッサエレメントが行った演算処理の結果は、前記外部インタフェースを介して前記画像処理ユニットに供給されることを特徴とする請求項８または９に記載のプロセッサ。
【請求項１１】
前記サブプロセッサエレメントは、前記ローカルメモリに記憶されたデータを並列演算するベクトルプロセッサユニットを含み、
前記一のサブプロセッサエレメントの前記ベクトルプロセッサユニットによる並列演算結果が前記他のサブプロセッサエレメントに受け渡され、前記他のサブプロセッサエレメントの前記ベクトルプロセッサユニットが前記並列演算結果を利用して並列演算処理を行うことを特徴とする請求項８から１０のいずれかに記載のプロセッサ。
【請求項１２】
前記ベクトルプロセッサユニットは、実数の積和演算をする複数の積和演算素子を有し、前記複数の積和演算素子により、前記ローカルメモリに記憶された実数データが並列に積和演算され、
前記一のサブプロセッサエレメントの前記ベクトルプロセッサユニットによる積和演算結果が前記他のサブプロセッサエレメントに受け渡され、前記他のサブプロセッサエレメントが前記積和演算結果を利用して画像処理ユニットに供給すべき描画命令列を生成することを特徴とする請求項１１に記載のプロセッサ。