JP4088297B2 - プロセッサ - Google Patents

プロセッサ Download PDF

Info

Publication number
JP4088297B2
JP4088297B2 JP2005091502A JP2005091502A JP4088297B2 JP 4088297 B2 JP4088297 B2 JP 4088297B2 JP 2005091502 A JP2005091502 A JP 2005091502A JP 2005091502 A JP2005091502 A JP 2005091502A JP 4088297 B2 JP4088297 B2 JP 4088297B2
Authority
JP
Japan
Prior art keywords
processor
sub
data
main
memory
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 - Fee Related
Application number
JP2005091502A
Other languages
English (en)
Other versions
JP2005202983A (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.)
Sony Interactive Entertainment Inc
Original Assignee
Sony Computer Entertainment Inc
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 Sony Computer Entertainment Inc filed Critical Sony Computer Entertainment Inc
Priority to JP2005091502A priority Critical patent/JP4088297B2/ja
Publication of JP2005202983A publication Critical patent/JP2005202983A/ja
Application granted granted Critical
Publication of JP4088297B2 publication Critical patent/JP4088297B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Image Generation (AREA)

Description

本発明は、情報処理装置および方法に関し、例えば、複数のCPUがそれぞれ並列に描画命令を生成し、生成された描画命令をCPUの優先順位に従って描画装置に転送することにより、効率的に描画処理を行うようにした情報処理装置および方法に関する。
近年のLSIの集積度の向上により、1つのLSIに同一の回路を複数個並列に並べて、処理速度を向上させることができるようなった。また、近年のビデオゲームシステムは、中央処理装置と描画装置から構成され、CPUはコントローラからの入力データに基づいて、表示すべき所定のポリゴンを表すデータに対して2次元や3次元の座標変換処理を行い、そのポリゴンを2次元のフレームバッファに描画するための描画命令列(ディスプレイリスト)を作成する。そして、描画装置は、受け取った描画命令列に従って、フレームバッファへのポリゴンの描画を行う。
しかしながら、並列化による処理能力の向上という効果は、単純操作の繰り返しが多い描画装置により多く働く。そのため、近年では、描画装置による処理に比べて、CPUによる処理の方が相対的に遅くなってきている。さらに、3次元モデルデータの容量を削減するためには、少ない頂点データ(コントロールポイント)から、曲面などの複雑な図形をその都度生成する必要があるが、その処理はCPU側の負荷となる。そのため、描画処理を効率的に行わせることができない課題があった。
本発明はこのような状況に鑑みてなされたものであり、複数のCPUに優先順位を設定し、それらを並列に動作させ、優先順位の高いCPUが生成した描画命令列を優先的に処理することにより、効率的に処理を行うことができるようにするものである。
請求項1に記載の情報処理装置は、第1の命令を生成する処理を行う第1の生成手段と、第2の命令を生成する処理を行う第2の生成手段と、第1の命令、および第2の命令を所定のタイミングで切り替えて実行する実行手段と、第1の命令を実行手段に転送する第1の転送手段と、第2の命令を実行手段に転送する第2の転送手段とを備え、第2の転送手段は、第1の生成手段が処理中であり、かつ実行手段が待機中であるとき、第2の命令を実行手段に供給し、実行手段は、第2の命令の供給を受けたとき、第2の命令を実行することを特徴とする。
請求項5に記載の情報処理方法は、第2の転送手段は、第1の生成手段が処理中であり、かつ実行手段が待機中であるとき、第2の命令を実行手段に供給し、実行手段は、第2の命令の供給を受けたとき、第2の命令を実行することを特徴とする。
請求項1に記載の情報処理装置においては、第1の生成手段が、第1の命令を生成する処理を行い、第2の生成手段が、第2の命令を生成する処理を行い、実行手段が、第1の命令、および第2の命令を所定のタイミングで切り替えて実行し、第1の転送手段が、第1の命令を実行手段に転送し、第2の転送手段が、第2の命令を実行手段に転送するとき、第2の転送手段は、第1の生成手段が処理中であり、かつ実行手段が待機中であるとき、第2の命令を実行手段に供給し、実行手段は、第2の命令の供給を受けたとき、第2の命令を実行する。
請求項5に記載の情報処理装置においては、第2の転送手段は、第1の生成手段が処理中であり、かつ実行手段が待機中であるとき、第2の命令を実行手段に供給し、実行手段は、第2の命令の供給を受けたとき、第2の命令を実行する。
請求項1に記載の情報処理装置、および請求項5に記載の情報処理方法によれば、第2の転送手段は、第1の生成手段が処理中であり、かつ実行手段が待機中であるとき、第2の命令を実行手段に供給し、実行手段は、第2の命令の供給を受けたとき、第2の命令を実行するようにしたので、複数のプロセッサが効率的に実行手段を制御することができる。
図1乃至図3は、本発明の情報処理装置を応用した家庭用TVゲーム機の一例を示している。この家庭用TVゲーム機は、ゲーム機本体2と、このゲーム機本体2に接続可能な操作装置17および記録装置38で構成されている。
ゲーム機本体2は、図1乃至図3に示すように、略四角形状に形成され、その中央の位置に、図4に示すような光ディスクの一種であるCD−ROM(compact disc-read only memory)40(ゲーム用媒体に相当するディスク)を装着するディスク装着部3と、ゲーム機本体の適宜位置にゲームを任意にリセットするリセットスイッチ4と、電源のオン/オフをする電源スイッチ5と、ディスクの装着を操作するディスク操作スイッチ6と、所謂ゲームにおける操作を行う操作装置17および所謂ゲームの設定などを記録しておく記録装置38を接続する接続部7A,7Bを有している。
接続部7A,7Bは、図2および図3に示すように、2段に形成されている。接続部7A,7Bの上段部には、記録装置38を接続する記録挿入部8が設けられ、下段部には、操作装置17を接続する接続端子挿入部12が設けられている。
記録挿入部8は、横方向に長い長方形状の挿入孔と、その内部に記録装置38が挿入されるメモリ用接続端子部(図示せず)を有している。また、図2に示すように、記録挿入部8には、記録装置38が接続されていないときに、メモリ用接続端子部を埃などから保護するシャッタ9が設けられている。なお、記録装置38は、電気的に書換え可能なROMを有しており、所謂ゲームに関連するデータを記録するようになされている。
記録装置38を装着する場合、ユーザは、記録装置38の先端でシャッタ9を内側方向に押し、さらに、記録装置38を挿入孔に押し込み、メモリ用接続端子部に接続させる。
接続端子挿入部12は、図2に示すように、横方向に長い長方形形状の挿入孔と、操作装置17の接続端子部26を接続する接続端子12Aを有している。
操作装置17は、図1に示すように、両手の掌で挟持して5本の指が自由自在に動いて操作できる構造をしており、左右対称に配置された操作部18,19と、操作部18,19の中間部に設けたセレクトスイッチ22およびスタートスイッチ23と、操作部18,19の前面側に配置された操作部24,25と、ゲーム機本体2に接続するための接続端子部26およびケーブル27を有している。
図5は、上述のゲーム機本体2の内部の電気的構成の一例を示している。
ゲーム機本体2は、メインバス41とサブバス42の2本のバスを有している。これらのバスは、サブバスインタフェース(SBUSIF)43を介して接続されている。
メインバス41には、マイクロプロセッサや第1ベクトル処理装置(VPE(vector processing engine)0)などで構成されるメインCPU(central processing unit)44(第2の生成手段)と、RAM(random access memory)で構成されるメインメモリ45(記憶手段)、メインダイレクトメモリアクセスコントローラ(メインDMAC(direct memory access controller))46(第1の転送手段、第2の転送手段)、MPEG(Moving Picture Experts Group)デコーダ(MDEC)47、第2ベクトル処理装置(VPE1)48(第1の生成手段)、およびGPUIF(graphical processing unit interface)72を介して画像処理装置(GPU)49(実行手段)が接続されている。GPU49には、CRTC(CRT controller)84が設けられている。
一方、サブバス42には、マイクロプロセッサなどで構成されるサブCPU50、RAMで構成されるサブメモリ51、サブDMAC52、オペレーティングシステムなどのプログラムが記憶されているROM53、音声処理装置(SPU(sound processing unit))54、通信制御部(ATM)55、ディスク装着部3を兼ねるCD−ROMドライブ56、入力部57が接続されている。そして、入力部57の接続端子12Aには、操作装置17が接続される。
SBUSIF43は、メインバス41とサブバス42を接続し、メインバス41からのデータをサブバス42に出力するとともに、サブバス42からのデータをメインバス41に出力するようになされている。
メインCPU44は、ゲーム機本体2の起動時に、サブバス42に接続されているROM53から、SBUSIF43を介して起動プログラムを読み込み、その起動プログラムを実行し、オペレーティングシステムを動作させるようになされている。
また、メインCPU44は、CD−ROMドライブ56を制御し、CD−ROMドライブ56にセットされたCD−ROM40からアプリケーションプログラムやデータを読み出し、メインメモリ45に記憶させるようになされている。
また、メインCPU44は、CD−ROM40から読み出した、複数の基本図形(ポリゴン)で構成された3次元オブジェクトのデータ(ポリゴンの頂点(代表点)の座標値など)に対して、第1ベクトル処理装置(VPE0)71(第2の生成手段)と共同して、非定型処理用のデータ(ポリゴン定義情報)を生成するようになされている。第1ベクトル処理装置(VPE0)71は、浮動小数点の実数を演算する複数の演算素子を有し、並列に浮動小数点演算を行うようになされている。
即ち、メインCPU44と、第1ベクトル処理装置71は、ジオメトリ処理のうちのポリゴン単位での細かな操作を必要とする処理、例えば、木の葉が風で揺れる様子や、自動車のフロントウィンドウの雨の滴等を表すポリゴンのデータを生成するような処理を行うようになされている。そして、演算された頂点情報やシェーディングモード情報等のポリゴン定義情報をパケットとして、メインバス41を介してメインメモリ45に供給するようになされている。
ポリゴン定義情報は、描画領域設定情報とポリゴン情報とからなる。そして、描画領域設定情報は、描画領域のフレームバッファアドレスにおけるオフセット座標と、描画領域の外部にポリゴンの座標があった場合に、描画をキャンセルするための描画クリッピング領域の座標からなる。また、ポリゴン情報は、ポリゴン属性情報と頂点情報とからなり、ポリゴン属性情報は、シェーディングモード、αブレンディングモード、およびテクスチャマッピングモード等を指定する情報であり、頂点情報は、頂点描画領域内座標、頂点テクスチャ領域内座標、および頂点色等の情報である。
一方、第2ベクトル処理装置(VPE1)48は、第1ベクトル処理装置71の場合と同様に、浮動小数点の実数を演算する複数の演算素子を有し、並列に浮動小数点演算を行うようになされている。そして、操作装置17の操作とマトリクスの操作で画像を生成できるもの、即ち、VPE1においてプログラムが可能な程度の比較的簡単な処理(定型処理)用のデータ(ポリゴン定義情報)を生成するようになされている。例えば、ビルや車等の簡単な形状の物体に対する透視変換、平行光源計算、2次元曲面生成等の処理を行うようになされている。そして、生成したポリゴン定義情報をGPUIF72に供給するようになされている。
GPUIF72は、メインメモリ45よりメインバス41を介して供給されるメインCPU44からのポリゴン定義情報と、第2ベクトル処理装置48より供給されるポリゴン定義情報とを、衝突しないように調停しながら、GPU49に供給するようになされている。
GPU49は、GPUIF72を介して供給されたポリゴン定義情報に基づいて、フレームメモリ58にポリゴンを描画するようになされている。GPU49は、フレームメモリ58をテクスチャメモリとしても使用できるため、フレームメモリ上のピクセルイメージをテクスチャとして、描画するポリゴンに貼り付けることができる。
メインDMAC46は、メインバス41に接続されている各回路を対象として、DMA転送などの制御を行うようになされている。また、メインDMAC46は、SBUSIF43の状態に応じて、サブバス42に接続されている各回路を対象としてDMA転送などの制御を行うこともできる。また、MDEC47は、メインCPU44と並列に動作し、MPEG(Moving Picture Experts Group)方式あるいはJPEG(Joint Photographic Experts Group)方式等で圧縮されたデータを伸張するようになされている。
サブCPU50は、ROM53に記憶されているプログラムに従って各種動作を行うようになされている。サブDMAC52は、SBUSIF43がメインバス41とサブバス42を切り離している状態においてのみ、サブバス42に接続されている各回路を対象としてDMA転送などの制御を行うようになされている。
SPU54は、サブCPU50やサブDMAC52から供給されるサウンドコマンドに対応して、サウンドメモリ59から音声データを読み出してオーディオ出力として出力するようになされている。
通信制御部(ATM)55は、公衆回線等に接続され、その回線を介してデータの送受信を行うようになされている。
入力部57は、操作装置17を接続する接続端子部12A、他の装置(図示せず)からの画像データを受け取るビデオ入力回路82、および他の装置からの音声データを受け取るオーディオ入力回路83を有している。
図6は、図5に示したメインCPU44、メインメモリ45、第2ベクトル処理装置(VPE1)48、およびGPU49の詳細な構成を示すブロック図である。
メインCPU44を構成するCPUコア(CORE)94は、所定の命令を実行するようになされている。命令(Instruction)キャッシュ(I$)は、CPUコア94に供給する命令を一時的に保持するようになされている。高速なメモリであるSPR(スクラッチメモリ(scratch pad ram))96は、CPUコア94による処理結果を記憶するようになされている。データキャッシュ(D$)は、CPUコア94が処理を実行するために用いるデータを一時的に記憶するようになされている。
第1ベクトル処理装置(VPE0)71を構成する浮動小数点ベクトルプロセッサユニットおよび内蔵メモリ(VU−MEM)101は、64ビット長のマイクロプログラムで動作する浮動小数点ベクトルプロセッサユニット(VU)および内蔵メモリ(MEM)より構成され、後述するマイクロメモリ(microMEM)98に記憶されているプログラムに従って、内部レジスタと内蔵メモリに記憶されたデータを高速演算するようになされている。
PKE102は、後述するメインDMAC46の制御により、転送されてくるVUのマイクロコードをマイクロメモリ98に展開したり、パックされたデータのパケットをVU−MEM101の内蔵メモリ(MEM)に展開するようになされている。FMAC(Floating Maltiple Adder Calculation Unit)99は、浮動小数点演算を実行するようになされている。DIV(わり算器(Divider))100は、わり算を実行するようになされている。そして、上述したように、メインCPU44には、第1ベクトル処理装置(VPE0)が内蔵されており、共同して非定型処理を行うようになされている。
第2ベクトル処理装置48を構成する浮動小数点ベクトルプロセッサユニットおよび内蔵メモリ(VU−MEM)107は、64ビット長のマイクロプログラムで動作する浮動小数点ベクトルプロセッサユニット(VU)および内蔵メモリ(MEM)より構成され、後述するマイクロメモリ(microMEM)103に記憶されているプログラムに従って、内部レジスタと内蔵メモリに記憶されたデータを高速演算するようになされている。
PKE108は、メインDMAC46の制御により、転送されてくるVUのマイクロコードをマイクロメモリ103に展開したり、パックされたデータのパケットをVU−MEM107の内蔵メモリに展開するようになされている。FMAC(Floating Maltiple Adder Calculation Unit)104は、浮動小数点演算を実行するようになされている。DIV(わり算器(Divider))106は、わり算を実行するようになされている。そして、メインメモリ45より供給されたデータに対して、定型処理を施し、処理結果をGPUIF72を介してGPU49に供給するようになされている。
メインメモリ45は、3次元オブジェクトのデータを記憶し、必要に応じて、第1ベクトル処理装置71,第2ベクトル処理装置48にそれぞれ供給するようになされている。また、メインCPU44と第1ベクトル処理装置(VPE0)71とが共同して作成したディスプレイリストを、メインメモリ45が内蔵するMFIFO(MemoryFIFO)に一旦、記憶させ、メインバス41を介してGPUIF72に供給するようになされている。これは、メインCPU44および第1ベクトル処理装置71の方が、第2ベクトル処理装置48より優先順位が低いため、第2ベクトル処理装置48がアイドル状態になるまでディスプレイリストを保持しておく必要があるからである。
また、CPU44および第1ベクトル処理装置71は、共同して第2ベクトル処理装置48が処理するためのマトリクスを作成し、メインメモリ45に記憶させるようになされている。そして、第2ベクトル処理装置48は、このマトリクスを用いて、ディスプレイリストを作成するようになされている。
GPU49は、第1ベクトル処理装置71よりGPUIF72を介して供給されれる非定型処理用のディスプレイリストと、第2ベクトル処理装置48より供給される定型処理用のディスプレイリストを処理するために、それぞれに対応する描画時のクリップ範囲や描画オフセット等のコンテクスト(描画設定条件)を保持するようになされている。CG0は非定型処理用のグラフィックコンテクストであり、CG1は、定型処理用のグラフィックコンテクストである。
例えば、DMAC109の制御により、メインメモリ45からメインバス41を介して第1ベクトル処理装置71に供給されたマイクロコードやパックされたデータ(3次元オブジェクトのデータなど)のパケットは、PKE102により、マイクロメモリ98や内蔵メモリに展開される。そして、FMAC99およびDIV100により、3次元オブジェクトのデータに対して、マトリクス演算、座標変換、透視変換等の演算が施される。また、このとき、CPUコア94と共に、より複雑な処理が施される。例えば、木の葉が風に揺れる様子や、自動車のフロントウィンドウを雨の滴が垂れる様子を描画するためのディスプレイリストが作成される。
このようにして作成された2次元のオブジェクトを画面に描画するためのディスプレイリスト(Complex Stream)は、メインバス41を介して一旦メインメモリ45のMFIFOに記憶され、GPUIF72に供給される。
一方、メインDMAC46の制御により、メインメモリ45からメインバス41を介して第2ベクトル処理装置48に供給されたマイクロコードやパックされたデータ(3次元オブジェクトのデータなど)のパケットは、PKE108により、マイクロメモリ103や内蔵メモリに展開される。そして、FMAC104およびDIV106により、メインメモリ45よりメインバス41を介して供給される、メインCPU44および第1ベクトル処理装置71が作成したマトリクスやコンテクストに基づいて、3次元オブジェクトのデータに対して、マトリクス演算、座標変換、透視変換等の演算が施される。ここでは、比較的簡単な定型処理が施される。
そして、このようにして作成された2次元のオブジェクトを画面に描画するためのディスプレイリスト(Simple Stream)は、メインバス41を介してGPUIF72に供給される。GPUIF72は、これら2つのストリームを調停し、それらを時分割でGPU49に転送する。
そして、GPU49により、GPUIF72より供給されたディスプレイリストに基づいて、描画処理が実行され、フレームメモリ58にポリゴンが描画される。ここで、ディスプレイリストがメインCPU44および第1ベクトル処理装置71によってメインメモリ45上に作成され、メインバス41を介して供給されたものである場合、GPU49においては、グラフィックコンテクスト(GC)0を用いて描画処理が行われ、ディスプレイリストが第2ベクトル処理装置48によって作成されたものである場合、グラフィックコンテクスト(GC)1を用いて描画処理が行われる。
フレームメモリ58に描画されたポリゴンは、CRTC84の制御により、対応するビデオ信号に変換された後、出力される。
図7は、2つのディスプレイリストが処理されるタイミングを示す図である。図7におけるGeometry Subsystem0は、図6のブロック図においては第2ベクトル処理装置48に対応し、Geometry Subsystem1はメインCPU44および第1ベクトル処理装置71に対応している。そして、Rendering SubsystemはGPU49に対応している。
図7(A)は、プロセッサが1つの場合の処理手順を示している。即ち、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から供給されるまでの間、アイドル状態となる。
図7(B)は、プロセッサが2つの場合の処理手順を示している。即ち、Geometry Subsystem0がディスプレイリスト(List#0-1)を作成する間、Rendering Subsystemはアイドル状態であるので、Geometry Subsystem1が既に作成し、メインメモリ45に記憶させておいたディスプレイリスト(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に効率的に処理させることが可能となる。
例えば、座標変換処理を補強するために、CPUとは別のサブプロセッサや座標変換装置を設けて、複数の処理装置が共同して1つの描画装置(GPU49)にディスプレイリストを送出するようにした場合、描画装置に送出するディスプレイリストの容量は膨大なため、短い時間間隔で、描画装置を使用するCPUを切り替えるようにしないと、各CPUのローカルメモリがオーバフローする。そのため、図7(B)に示したように、各CPUに予め優先順位を設定し、高い優先順位のCPU(マスタCPU)(図6においては、第2ベクトル処理装置48)が描画装置へ送出するリストがなくなったら、直ちにアクセス権を次のCPU(スレーブCPU)(図6においては、メインCPU44と第1ベクトル処理装置71)へ譲るようにする。
スレーブCPUは、マスタCPUがディスプレイリストを作成して、それを描画装置に転送する準備ができた時点で、まだ、送出すべきディスプレイリストが残っていても、すぐに処理を中断し、描画装置へのアクセス権をマスタCPUに返す。
マスタCPUには、高速に処理を実行するがローカルメモリの容量が比較的小さいものが割り当てられ、スレーブCPUにはローカルメモリの容量は比較的大きいが、処理速度が比較的遅いものが割り当てられる。
図8に示すように、スレーブCPUのさらにスレーブとなるCPUが接続される場合もある。このような場合、特に低次のスレーブCPUは、大きなディスプレイリストを記憶するためのさらに大きな容量のローカルメモリを必要とする。このため、低次のスレーブCPUは、通常、メインメモリを抱えるメインCPUが受け持つようにしている。
描画装置が描画を行うためには、ディスプレイリストに記述された頂点情報と同時に、上述したように、描画時のクリップ範囲や描画オフセット等のコンテクストと呼ばれる環境パラメータ(描画設定条件)が必要である。Rendering Subsystemは、各Geometry Subsystemより供給されたディスプレイリストに基づいた描画処理を、そのディスプレイリストを供給したGeometry Subsystemに対応するコンテクストに従って行う。しかしながら、ディスプレイリストを供給するGeometry Subsystemが切り替わる度に、コンテクストを再設定することは非常に面倒である。そこで、Rendering Subsystem側が、Geometry Subsystemの個数分のコンテクストを保持するようにしている。
図7に示したように、コンテクストは、ディスプレイリストに付加され、例えば、描画するオブジェクト毎にGPU49に供給される。従って、GPU49は、オブジェクト毎に、そのオブジェクトに対応するコンテクストに基づいて、描画処理を行うことができる。
Geometry SubsystemとRendering Subsystemは、メインバス41を構成するデータバスとアドレスバスを共有し、アドレスバスを介して現在アクセスしているGeometry SubsystemのIDを、またデータバスを介して現在アクセスしているGeometry Subsystemが作成したディスプレイリストをそれぞれRendering Subsystemに供給する。Rendering Subsystemは、供給されたIDに対応するコンテクストを選択し、このコンテクストに基づいてディスプレイリストを解釈し、フレームバッファへの描画を行う。
以上のように、複数のプロセッサがその優先順位に従って描画装置を制御するようにすることにより、ディスプレイリストを保持するローカルメモリの容量を、プロセッサ毎に最小限にすることができる。これにより、ローカルメモリにコストをかけることなく、ディスプレイリストの作成処理を並列化することができる。また、コンテクストを各描画処理装置に保持させることにより、コンテクストの切り替え時におけるオーバヘッドを減少させることができる。
次に、複数のプロセッサがデータバスとメインメモリを時分割で共有し、データの転送を行う場合において、データの制御を、転送するデータ自身に埋め込まれたメタ命令に従って行う方法について説明する。
図9は、メタ命令のフォーマット例を示している。メタ命令は128ビットで構成され、そのうちの64ビットのみが有効とされる。最初の16ビットには、転送すべきデータのサイズがセットされる。24ビット目乃至31ビット目には、メタ命令のIDがセットされる。そして、32ビット目乃至63ビット目には、転送すべきデータが記憶されているアドレス、または、次に読み出すべきメタ命令が記憶されているアドレスがセットされる。
データの転送は、データに埋め込まれたメタ命令のIDに応じて、以下のように制御される。
IDが「cnt」である場合、メタ命令の次のQWCワードを転送した後、パケットの次の番地のメタ命令を実行する。IDが「cnts」である場合、メタ命令の次のQWCワードをストール制御をしながら転送した後、パケットの次の番地のメタ命令を実行する。IDが「next」の場合、メタ命令に続くQWCワードを転送した後、アドレスで示される番地に記憶されているメタ命令が実行される。
また、IDが「ref」の場合、アドレスで表される番地からQWCワードを転送した後、メタ命令の次の番地のメタ命令を実行する。IDが「refs」の場合、ADDR番地からQWCワードをストール制御を行いながら転送した後、メタ命令の次の番地のメタ命令を実行する。
IDが「call」の場合、メタ命令に続くQWCワードを転送した後、パケットの次の番地をレジスタにプッシュして、アドレスで示される番地に記憶されているメタ命令を実行する。IDが「ret」の場合、メタ命令に続くQWCワードを転送した後、レジスタからポップした番地に記憶されているメタ命令を実行する。IDが「end」の場合、メタ命令に続くQWCワードを転送した後、処理を終了する。
図10は、メタ命令のIDが「next」の場合の動作を示している。最初に、メインDMAC46は、レジスタDn_TADR(Tag Address)によって指定されたアドレスから、1ワードをメタ命令ワードとして読み出す。この例の場合、そのメタ命令は「NEXT ADDR=ADDR2,LEN=8」であるので、続く8qword(quadlet word)(1qword=128ビット)のデータが転送された後、アドレスADDR2に記憶されているメタ命令「NEXT ADDR=ADDR1,LEN=2」が実行される。
これにより、続く2qwordのデータがDMACの制御により転送された後、アドレスADDR1に記憶されているメタ命令「END ADDR=−,LEN=8」が実行される。即ち、続く8qwordのデータが転送された後、処理を終了する。
図11は、メタ命令のIDが「REF」の場合の動作を示している。最初に、メインDMAC46は、レジスタDn_TADRによって指定されたアドレスから、1ワードをメタ命令ワードとして読み出す。この例の場合、「REF ADDR=ADDR2,LEN=2」であるので、アドレス2より以降に記憶されている2qwordのデータが転送され、次のメタ命令が実行される。
即ち、メタ命令「REF ADDR=ADDR1,LEN=8」が実行され、ADDR1より以降に記憶されている8qwordのデータが転送され、次のメタ命令が実行される。即ち、メタ命令「END ADDR=−,LEN=8」が実行され、続く8qwordのデータが転送される。
図12は、メタ命令のIDが「CALL」の場合の動作を示している。最初に、メインDMAC46は、レジスタDn_TADRによって指定されたアドレスから、1ワードをメタ命令ワードとして読み出す。この例の場合、「CALL ADDR=ADDR1,LEN=0」であるので、アドレス1に記憶されているメタ命令が実行される。即ち、メタ命令「CALL ADDR=ADDR2,LEN=8」が実行され、続く8qwordのデータが転送された後、ADDR2に記憶されているメタ命令が実行される。
即ち、メタ命令「RET ADDR=−,LEN=8」が実行され、続く8qwordのデータが転送された後、リターンし、メタ命令「RET ADDR=−,LEN=0」が実行される。これにより、次のメタ命令「CALL ADDR=ADDR2,LEN=8」が実行され、続く8qwordのデータが転送された後、ADDR2に記憶されているメタ命令が再度実行される。
即ち、「RET ADDR=−,LEN=8」が実行され、続く8qwordのデータが転送された後、リターンし、次にメタ命令「END ADDR=−,LEN=0」が実行され、処理を終了する。
このように、データに埋め込まれたメタ命令に従って、データ転送が制御される。
図13は、上述したメタ命令によって、データの転送が制御される様子を示す図である。CPU44がディスプレイリスト(DisplayList0)を作成している間に、1フレーム前に作成されたディスプレイリスト(DisplayList1)が第2ベクトル処理装置(VPE1)48に転送される。
まず、メインCPU44および第1ベクトル処理装置71が、図13に示すように、IDが「NEXT」のメタ命令、コンテクスト、IDが「REF」のメタ命令、IDが「REF」のメタ命令、マトリクス、IDが「REF」のメタ命令、マトリクス、IDが「REF」のメタ命令、マトリクス、IDが「REF」のメタ命令、IDが「REF」のメタ命令、IDが「REF」のメタ命令、マトリクス、IDが「RET」のマトリクスからなるディスプレイリストを作成する。
その間、1フレーム前に作成されたディスプレイリスト(DisplayList1)が第2ベクトル処理装置48に転送される。即ち、IDが「NEXT」のメタ命令が実行され、続くコンテクストが第2ベクトル処理装置48に転送される。次に、IDが「REF」のメタ命令が実行され、メインメモリ45内のオブジェクトデータベースの中のProgram0が参照される。このように、フレーム間で内容が変わらないデータは、ディスプレイリストからメタ命令を使用して参照され、ディスプレイリスト間で共有される。このため、ディスプレイリストの作成においては、フレーム毎に変化する位置データ(マトリクス)の更新だけとなる。
なお、オブジェクトデータベースには、3次元物体を記述するための3次元データ(Vertex of Object)、オブジェクトデータを解釈するためのプログラム、およびオブジェクトの装飾にテクスチャマッピングを行う場合に、テクスチャとなる画像データ(Texture Image)が格納されている。
次に、IDが「REF」の次のメタ命令が実行され、3次元座標データ(オブジェクトの頂点座標データ)(Vertex of Object0)が参照される。次に、マトリクスが第2ベクトル処理装置48に転送され、IDが「REF」の次のメタ命令が実行され、3次元座標データ(Vertex of Object1)が参照される。次に、マトリクスが第2ベクトル処理装置48に転送される。
そして、IDが「REF」の次のメタ命令が実行され、再び3次元座標データ(Vertex of Object1)が参照され、マトリクスが第2ベクトル処理装置48に転送される。そして、IDが「REF」の次のメタ命令が実行され、プログラム(Program3)が参照される。次に、IDが「REF」の次のメタ命令が実行され、テクスチャとなる画像データが転送される。
テクスチャとなる画像データがフレームメモリ58に記憶されていない場合、オブジェクトデータ(Vertex of Object4)の転送に先立って、テクスチャとなる画像データがフレームメモリ58に転送される。テクスチャとなる画像データがMDEC47からの解凍データやサブバス42からの転送データであり、フレーム毎に変化するものである場合、後述するように、ストール機能が用いられ、データ転送の同期が取られる。
画像データが転送される間、第2ベクトル処理装置48の処理が一旦停止するので、この期間を最小にするために、画像データの転送期間は、他のDMAチャンネルを停止する。この指定もメタ命令の所定の制御ビットにより行うことができる。例えば、図9に示したメタ命令の24ビット目および25ビット目にこの制御ビットをセットすることができる。
次に、IDが「REF」の次のメタ命令が実行され、3次元座標データ(Vertex of Object4)が参照される。次に、マトリクスが第2ベクトル処理装置48に転送され、IDが「RET」のメタ命令が実行され、処理を終了する。
図14は、ストール機能を説明するための図である。デバイス0(DEV0)からメインメモリにデータの転送が行われ、メインメモリからデバイス1(DEV1)にデータの転送が行われる場合、メインメモリからデバイス1にデータが転送されるときのメインメモリ上での転送アドレスが、デバイス0からメインメモリにデータが転送されるときのメインメモリ上での転送アドレスを越える間、メインメモリからデバイス1へのデータの転送をストールする。
図13に示した例の場合、メインメモリ45から第2ベクトル処理装置48にテクスチャとなる画像データを転送するときのメインメモリ45上での転送アドレスが、MDEC47からメインメモリ45にテクスチャとなる画像データの転送が行われるときのメインメモリ45上での転送アドレスを越える間、メインメモリ45から第2ベクトル処理装置48へのテクスチャとなる画像データの転送をストールする。このようにして、データの同期が取られる。
以上のように、メインDMAC46が、リストを構成するメタ命令を読み出し、それに従って、データを各プロセッサに分配する。従って、データを生成する時点で、転送の順序や形態、あるいは転送の優先順位を予めデータの中にプログラムすることにより、データの性質に依存して、最適な転送を行うことができる。また、データの転送順序をリスト形式で予め記述しておくことにより、メモリ内に無駄な作業用のコピーデータを持つ必要がなく、無駄なメモリアクセスを軽減するとともに、ディスプレイリストのサイズを削減することができる。
また、ディスプレイリストのうち、フレーム毎に変更する部分だけを2重化して個別に記憶し、その他の部分は共通のメモリ領域に記憶させるようにすることにより、ディスプレイリストを記憶するためのメモリ容量を削減することができる。従って、少ないメモリ容量で多くのディスプレイリストを記憶することができる。
さらに、データに埋め込まれたメタ命令に従ってデータの転送が行われるため、複数のプロセッサ間でのデータの読み出しおよび書き込みの同期を取ることを容易にすることができ、メモリ内にダブルバッファを構成することなく、複数のプロセッサがメモリを共有するようにすることができる。
なお、上記実施の形態においては、CD−ROMにデータを記憶させるようにしたが、他の記録媒体を用いるようにすることも可能である。
本発明の情報処理装置を応用した家庭用ゲーム機の一例を示す平面図である。 図1の家庭用ゲーム機1の正面図である。 図1の家庭用ゲーム機1の側面図である。 図1の家庭用ゲーム機1で再生されるCD−ROMの一例を示す平面図である。 図1の家庭用ゲーム機1の内部の電気的構成例を示すブロック図である。 図5のメインDMAC46、メインCPU44、第2ベクトル処理装置48、メインメモリ45、GPU49の詳細な構成例を示すブロック図である。 複数のプロセッサが生成するディスプレイリストの処理手順を示す図である。 3つのプロセッサがGPU49を制御するようにした場合の家庭用ゲーム機1の他の構成例を示すブロック図である。 メタ命令のフォーマット例を示す図である。 メタ命令に従って、データ転送が行われる手順を説明する図である。 メタ命令に従って、データ転送が行われる手順を説明する図である。 メタ命令に従って、データ転送が行われる手順を説明する図である。 ディスプレイリストに従って、データ転送が行われる手順を説明する図である。 ストール制御を説明する図である。
符号の説明
1 家庭用ゲーム機, 2 ゲーム機本体, 3 ディスク装着部, 17 操作装置, 40 CD−ROM, 41 メインバス, 42 サブバス, 43 SBUSIF, 44 メインCPU, 45 メインメモリ, 46 メインDMAC, 47 MPEGデコーダ, 48 第2ベクトル処理装置, 49 画像処理装置(GPU), 50 サブCPU, 51 サブメモリ, 52 サブDMAC, 53 ROM, 56 CD−ROMドライブ, 58 フレームメモリ, 94 CPUコア, 98,103 マイクロメモリ, 99,104 FMAC, 100,106 DIV, 101,107 VU−MEM, 102,108 PKE

Claims (11)

  1. メインプロセッサエレメントと、それぞれがローカルメモリを有し、独立したプロセッサとして動作する複数のサブプロセッサエレメントと、前記ローカルメモリとメインメモリの間のDMA転送を制御するDMA制御部とを含み、
    前記メインプロセッサエレメントと前記複数のサブプロセッサエレメントは、メインバスで結合されており、
    前記メインプロセッサエレメントは、CPUコアと、前記CPUコアに供給する命令を一時的に保持する命令キャッシュと、前記CPUコアが処理を実行するために用いるデータを一時的に記憶するデータキャッシュとを含み、
    前記複数のサブプロセッサエレメントのそれぞれに内蔵された前記ローカルメモリは、CPUの命令を介さずに、前記DMA制御部によってDMA転送されるプログラムおよびデータが展開されるメモリであり、
    前記DMA制御部は、前記サブプロセッサエレメントが実行すべきプログラムと当該プログラムで使用されるデータをあらかじめ前記ローカルメモリにDMA転送し、
    前記サブプロセッサエレメントは、前記ローカルメモリにDMA転送されたプログラムにしたがって、前記ローカルメモリにあらかじめDMA転送されたデータを演算することを特徴とするプロセッサ。
  2. 前記サブプロセッサエレメントは、前記ローカルメモリに記憶されたデータを並列演算するベクトルプロセッサユニットを含むことを特徴とする請求項に記載のプロセッサ。
  3. 前記ベクトルプロセッサユニットは、実数の積和演算をする複数の積和演算素子を有し、前記複数の積和演算素子により、前記ローカルメモリに記憶された実数データが並列に積和演算されることを特徴とする請求項に記載のプロセッサ。
  4. 記メインバスに接続された外部インタフェースを介して画像処理ユニットと結合可能に構成されたことを特徴とする請求項1からのいずれかに記載のプロセッサ。
  5. 記メインバスに接続されたサブバスインタフェースを介してサブバスに接続された各ユニットと結合可能に構成されたことを特徴とする請求項1からのいずれかに記載のプロセッサ。
  6. メインプロセッサエレメントと、それぞれがローカルメモリを有し、独立したプロセッサとして動作する複数のサブプロセッサエレメントと、前記ローカルメモリとメインメモリの間のDMA転送を制御するDMA制御部とを含み、
    前記メインプロセッサエレメントと前記複数のサブプロセッサエレメントは、メインバスで結合されており、
    前記メインプロセッサエレメントは、CPUコアと、前記CPUコアに供給する命令を一時的に保持する命令キャッシュと、前記CPUコアが処理を実行するために用いるデータを一時的に記憶するデータキャッシュとを含み、
    前記複数のサブプロセッサエレメントのそれぞれに内蔵された前記ローカルメモリは、CPUの命令を介さずに、前記DMA制御部によってDMA転送されるプログラムおよびデータが展開されるメモリであり、
    前記DMA制御部は、前記サブプロセッサエレメントが実行すべきプログラムをあらかじめ前記ローカルメモリにDMA転送し、
    一のサブプロセッサエレメントによる演算結果が他のサブプロセッサエレメントに受け渡され、前記他のサブプロセッサエレメントが前記演算結果を利用して演算処理を行うことを特徴とするプロセッサ。
  7. 記一のサブプロセッサエレメントによる演算結果は、前記DMA制御部により、前記メインメモリにDMA転送され、前記メインメモリから前記他のサブプロセッサエレメントの前記ローカルメモリにDMA転送されて利用されることを特徴とする請求項に記載のプロセッサ。
  8. 記メインバスに接続された外部インタフェースを介して画像処理ユニットと結合可能に構成されており、
    前記一のサブプロセッサエレメントによる前記演算結果を利用して前記他のサブプロセッサエレメントが行った演算処理の結果は、前記外部インタフェースを介して前記画像処理ユニットに供給されることを特徴とする請求項6または7に記載のプロセッサ。
  9. 前記サブプロセッサエレメントは、前記ローカルメモリに記憶されたデータを並列演算するベクトルプロセッサユニットを含み、
    前記一のサブプロセッサエレメントの前記ベクトルプロセッサユニットによる並列演算結果が前記他のサブプロセッサエレメントに受け渡され、前記他のサブプロセッサエレメントの前記ベクトルプロセッサユニットが前記並列演算結果を利用して並列演算処理を行うことを特徴とする請求項6から8のいずれかに記載のプロセッサ。
  10. 前記ベクトルプロセッサユニットは、実数の積和演算をする複数の積和演算素子を有し、前記複数の積和演算素子により、前記ローカルメモリに記憶された実数データが並列に積和演算され、
    前記一のサブプロセッサエレメントの前記ベクトルプロセッサユニットによる積和演算結果が前記他のサブプロセッサエレメントに受け渡され、前記他のサブプロセッサエレメントが前記積和演算結果を利用して画像処理ユニットに供給すべき描画命令列を生成することを特徴とする請求項に記載のプロセッサ。
  11. 前記DMA制御部は、前記描画命令列に埋め込まれたメタ命令にしたがってデータ転送を制御することを特徴とする請求項10に記載のプロセッサ。
JP2005091502A 2005-03-28 2005-03-28 プロセッサ Expired - Fee Related JP4088297B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005091502A JP4088297B2 (ja) 2005-03-28 2005-03-28 プロセッサ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005091502A JP4088297B2 (ja) 2005-03-28 2005-03-28 プロセッサ

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP07493197A Division JP3681026B2 (ja) 1997-03-27 1997-03-27 情報処理装置および方法

Publications (2)

Publication Number Publication Date
JP2005202983A JP2005202983A (ja) 2005-07-28
JP4088297B2 true JP4088297B2 (ja) 2008-05-21

Family

ID=34824906

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005091502A Expired - Fee Related JP4088297B2 (ja) 2005-03-28 2005-03-28 プロセッサ

Country Status (1)

Country Link
JP (1) JP4088297B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8149242B2 (en) 2006-11-10 2012-04-03 Sony Computer Entertainment Inc. Graphics processing apparatus, graphics library module and graphics processing method

Also Published As

Publication number Publication date
JP2005202983A (ja) 2005-07-28

Similar Documents

Publication Publication Date Title
JP3681026B2 (ja) 情報処理装置および方法
JP3739888B2 (ja) 情報処理装置および方法
US6647486B2 (en) Information processing apparatus for entertainment system utilizing DMA-controlled high-speed transfer and processing of routine data
JP4757406B2 (ja) グラフィクスシステム
JP4925385B2 (ja) 機能拡張型メモリコントローラを備えるグラフィックス処理システム
US6559854B2 (en) Image creation device
WO1997032248A1 (fr) Processeur d'images et procede de traitement d'images
JP2001243481A (ja) 画像生成装置
JP2006318176A (ja) コマンド実行制御装置、コマンド実行指示装置およびコマンド実行制御方法
JP4836491B2 (ja) 情報処理装置、システム、方法およびプロセッサ
JP4088297B2 (ja) プロセッサ
US20020052955A1 (en) Data processing system and method, computer program, and recording medium
JP4318664B2 (ja) 情報処理装置およびタスク実行方法
JP3468985B2 (ja) グラフィック描画装置、グラフィック描画方法
AU5012001A (en) Information processing apparatus and information processing method
MXPA98006707A (en) Information processing device and entertainment system

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050420

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050420

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20050420

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20050511

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20071121

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20071127

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080122

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080222

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

Free format text: PAYMENT UNTIL: 20110228

Year of fee payment: 3

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

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20120229

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20130228

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20140228

Year of fee payment: 6

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees