(57)【要約】【課題】  高精細な画像処理が可能な情報処理装置を安価に実現できる技術を提供する。【解決手段】情報処理装置１００において、メインプロセッサ４０内に設けられた複数の制御演算ユニット４２を相互に接続するデータバス３０の一端をグラフィックプロセッサ１０に接続し、他端をメインメモリ８０に接続する。グラフィックプロセッサ１０において生成された画像フレームデータを逐次データバス３０を通じて転送し、メインメモリ８０に格納する。メインプロセッサ４０からグラフィックプロセッサ１０へのデータ伝送レートをＲ１、グラフィックプロセッサ１０からメインプロセッサ４０へのデータ伝送レートをＲ２、メインプロセッサ４０とメインメモリ８０相互のデータ伝送レートをＲ３、垂直帰線期間以内に１画像フレームのデータを伝送するレートをＲ４としたとき、Ｒ１≧Ｒ２≧Ｒ４かつＲ１≧Ｒ３≧Ｒ４とする。【選択図】  図２
2006107160.tif 000002
【特許請求の範囲】
【請求項１】
複数の演算ユニットを備え装置全体を統括的に制御するメインプロセッサと、画像処理演算を行うグラフィックプロセッサと、画像フレームデータを含むデータを格納するメインメモリとを備え、
前記メインプロセッサ内部で前記複数の演算ユニットにより共有されるデータバスの一端が前記グラフィックプロセッサに接続され、他端が前記メインメモリに接続されることを特徴とする情報処理装置。
【請求項２】
前記グラフィックプロセッサは生成した画像フレームデータを前記メインメモリへ転送するDMA（Direct Memory Access）コントローラを備えることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記メインプロセッサから前記グラフィックプロセッサへのデータ伝送レートＲ１、前記グラフィックプロセッサから前記メインプロセッサへのデータ伝送レートＲ２、および前記メインメモリと前記メインプロセッサ間のデータ伝送レートＲ３について、
Ｒ１≧Ｒ２  かつ  Ｒ１≧Ｒ３
となるよう前記データバスを構成したことを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
前記メインプロセッサから前記グラフィックプロセッサへのデータ伝送レートＲ１、前記グラフィックプロセッサから前記メインプロセッサへのデータ伝送レートＲ２、前記メインメモリと前記メインプロセッサ間のデータ伝送レートＲ３、および前記情報処理装置から前記情報処理装置に接続された画像表示装置へ画像フレームデータを伝送し、その画像表示装置にてリアルタイム表示をするために必要なデータ伝送レートＲ４について、
Ｒ１≧Ｒ４  かつ  Ｒ２≧Ｒ４  かつ  Ｒ３≧Ｒ４
となるよう前記データバスを構成したことを特徴とする請求項１から３のいずれかに記載の情報処理装置。
【請求項５】
前記グラフィックプロセッサは画像フレームデータを格納するグラフィックメモリを備え、前記グラフィックメモリの容量を２画像フレームのデータサイズ以下としたことを特徴とする請求項１から４のいずれかに記載の情報処理装置。
【請求項６】
複数の演算ユニットを備え装置全体を統括的に制御するメインプロセッサと、画像処理演算を行うグラフィックプロセッサと、画像フレームデータを含むデータを格納するメインメモリとを備える情報処理装置におけるデータ伝送方法であって、
前記グラフィックプロセッサと前記メインメモリ間のデータ伝送を、前記メインプロセッサ内部で前記複数の演算ユニットにより共有されるデータバスを介して実行することを特徴とするデータ伝送方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は情報処理技術に関し、特に画像処理演算を行うグラフィックプロセッサを備える情報処理装置と、その装置におけるデータ伝送方法に関する。
【背景技術】
【０００２】
近年のコンピュータゲームやディジタル放送などの分野に利用されるコンピュータグラフィックス技術や画像処理技術の著しい進歩に伴い、コンピュータ、ゲーム機器、テレビなどの情報処理装置はより高精細の画像データをより高速に処理する能力を求められている。そこで、このような情報処理装置は、通常の演算処理を行うメインプロセッサとは別に、画像処理専用のグラフィックプロセッサを搭載し、メインプロセッサを画像処理から解放して、システムのオーバーヘッドの解消を図っている。
【０００３】
これらの情報処理装置において高性能な演算処理を実現するためには、メインプロセッサをマルチプロセッサで構成することが有効である。マルチプロセッサは複数のタスクを複数のプロセッサに割り当て、並列処理を行う。一方、グラフィックプロセッサはメインプロセッサが処理する複数のタスクに対応した画像処理を、メインプロセッサの高速演算に対応させて行う。その結果生成された画像フレームなどのデータは、一般的にはメモリに一時格納され、順次ディスプレイなどへ表示される。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
コンピュータやテレビなどの画像が精細化し、画像データのサイズが増加するのに伴い、グラフィックプロセッサが生成した画像データを格納するために、大きな容量のメモリが必要となってきた。さらに、画像処理を高速に行い、高いフレームレートでディスプレイへ表示するためには、高速演算処理が可能なメインプロセッサや、グラフィックプロセッサなどによる高速アクセスが可能なメモリが必要となる。そのような要請を受け、装置全体のコストは増加の一途をたどり、当該装置やそれを応用した技術の普及に対して大きな障壁となっている。
【０００５】
本発明はこのような課題に鑑みてなされたものであり、その目的は高精細な画像の処理を低コストで実現する技術の提供にある。
【課題を解決するための手段】
【０００６】
本発明のある態様は情報処理装置に関する。この情報処理装置は、複数の演算ユニットを備え装置全体を統括的に制御するメインプロセッサと、画像処理演算を行うグラフィックプロセッサと、画像フレームデータを含むデータを格納するメインメモリとを備え、メインプロセッサ内部で複数の演算ユニットにより共有されるデータバスの一端がグラフィックプロセッサに接続され、他端がメインメモリに接続されることを特徴とする。
【０００７】
グラフィックプロセッサは生成した画像フレームデータを、前記データバスを通じてメインプロセッサを経由してメインメモリへ転送してもよい。このときグラフィックプロセッサは生成した画像フレームを一時格納するグラフィックメモリを備えてもよい。
【０００８】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【０００９】
本発明によれば、画像の精細化に対応した情報処理装置の製造を低コストで実現できる。
【発明を実施するための最良の形態】
【００１０】
初めに、本実施の形態の特徴を明らかにするために、画像処理機能を有する情報処理装置の一般的な構成について図１を参照しながら説明する。図１は一般的なパーソナルコンピュータ２００の構成例を示す図である。画像処理を効率よく行うために、パーソナルコンピュータ２００には一般的に、装置全体の制御やそれに関する演算を行うメインプロセッサ４０とは別に、画像処理演算を専門に行うグラフィックプロセッサ１０および、プログラムやプログラムの実行に必要なデータなどを格納するメインメモリ８０が設けられる。メインプロセッサ４０、グラフィックプロセッサ１０およびメインメモリ８０はそれぞれノースブリッジ２０８とよばれる、複数バス間のトランシーバ機能やアービトレーション機能を備えたバス制御用の回路に接続される。ノースブリッジ２０８内部では、メインプロセッサ４０、グラフィックプロセッサ１０およびメインメモリ８０などの素子間で所望のデータを伝送できるように、それぞれの素子に接続されているバスの制御が行われる。さらにノースブリッジ２０８はバスによりサウスブリッジ２１０とよばれる入出力制御などを行う回路に接続され、サウスブリッジにはハードディスク２１２やＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）２１４などの入出力装置が接続される。
【００１１】
一般的なパーソナルコンピュータ２００にはさらに、グラフィックプロセッサ１０における画像処理によって生成された画像フレームやフィールド（以下、それらを総称して「画像フレーム」とよぶ）のデータや、画像処理に必要なデータを格納する図示しないグラフィックメモリが、グラフィックプロセッサ１０の管理下に設けられる。グラフィックメモリは、グラフィックプロセッサ１０に混載される場合や、メインメモリ８０内に専用領域を設けている場合などがある。グラフィックメモリがグラフィックプロセッサ１０に混載される場合は、グラフィックプロセッサ１０内部の機能ブロックとの間で高速なデータ伝送が可能であるが、装置の製造コストが増加する。メインメモリ８０の一部をグラフィックメモリとして利用する場合は、高フレームレートで画像フレームデータを表示装置へ送出するために、メインメモリ８０とグラフィックプロセッサ１０との間に広帯域のデータバスを確保する必要があり、設計上の困難が生じる。この問題は、画像フレームのデータサイズが増大するほど顕在化する。
【００１２】
メインプロセッサ４０をマルチプロセッサ構成として高速化しても、上記のような問題によって、コストの増大を抑制しつつ精細な画像を高フレームレートで表示することが困難となる。本発明者は以上のように、プロセッサとメモリ相互のデータ伝送の効率化の重要性を認識し、本実施の形態に示すような構成に想到した。
【００１３】
図２は、本発明の実施の形態に係る情報処理装置１００の構成を示すブロック図である。情報処理装置１００は、グラフィックプロセッサ１０、メインプロセッサ４０およびメインメモリ８０を含む。また、グラフィックプロセッサ１０とメインメモリ８０は、メインプロセッサ４０の内部において複数の制御演算ユニット４２により共有されるデータバス３０によって相互に接続されている。これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。
【００１４】
この情報処理装置１００では、情報処理装置１００を効率よく使用するための機能、環境を提供し、装置全体を統括的に制御するオペレーティングシステムが実行される。そのオペレーティングシステム上で複数のアプリケーションソフトウェア（以下、単にアプリケーションという）が実行される。
【００１５】
メインプロセッサ４０は、アプリケーションに対応するタスクを並列に処理する複数の制御演算ユニット４２を含む。制御演算ユニット４２はそれぞれが内部にＤＭＡコントローラ１６を有する。制御演算ユニット４２は内部のＤＭＡコントローラ１６を起動することによって、データバス３０を通じて相互間のデータ転送が可能であるとともに、グラフィックプロセッサ１０またはメインメモリ８０との間のデータ伝送も可能である。制御演算ユニット４２のうちひとつを管理プロセッサとして位置づけ、複数のアプリケーションに対応するタスクを時分割し、タイムスライスごとに各アプリケーションに対応するタスクを、他の制御演算ユニット４２に割り当てて実行させるなどしてもよい。上記管理プロセッサとして位置づけられた制御演算ユニット４２が、内部のＤＭＡコントローラ１６を起動させることにより、他の制御演算ユニット４２のデータ伝送を制御してもよい。
【００１６】
図１の一般的なパーソナルコンピュータの構成と同様に、メインプロセッサ４０をさらにサウスブリッジに接続し、ハードディスクやＤＶＤなどへの入出力を行えるようにしてもよい（不図示）。
【００１７】
グラフィックプロセッサ１０は、画像に関する処理を専用に実行するブロックであり、レンダリング処理などを行うユニットである。グラフィックプロセッサ１０は、制御ブロック１２、画像演算ユニット１４、ＤＭＡコントローラ１６、グラフィックメモリ１８、ディスプレイコントローラ２０を含む。これらのブロック同士は、図示しない内部バスで接続されており、各ブロック間でデータ信号の送受が行われる。
【００１８】
制御ブロック１２は、このグラフィックプロセッサ１０全体を制御するブロックであり、画像演算ユニット１４、グラフィックプロセッサ１０内部のＤＭＡコントローラ１６、グラフィックメモリ１８、ディスプレイコントローラ２０を統括的に制御し、各ブロック間のデータ伝送の同期管理、割り込み処理、タイマー管理等を行う。
【００１９】
画像演算ユニット１４は、制御ブロック１２の制御によって、画像に関する様々な演算処理を行う。その処理の一例としては、３次元モデリングデータをもとに座標変換、陰面消去、シェーディングを行って画像フレームデータを作成し、グラフィックメモリ１８に書込む一連のレンダリング処理などが挙げられる。画像演算ユニット１４は、特に３次元グラフィックススに関する処理を高速に行うために、図示しないラスタライザ、シェーダユニット、テクスチャユニットなどの機能ブロックを含んでもよい。
【００２０】
グラフィックプロセッサ１０におけるＤＭＡコントローラ１６は、メインプロセッサ４０内の制御演算ユニット４２やメインメモリ８０とグラフィックプロセッサ１０との間のデータ伝送を制御ブロック１２からの命令によって制御する。本実施の形態ではグラフィックプロセッサ１０において生成した画像フレームデータは、グラフィックプロセッサ１０内のＤＭＡコントローラ１６を起動することによってデータバス３０を通じてメインメモリ８０へ逐次転送される。
【００２１】
グラフィックメモリ１８は、グラフィックプロセッサ１０により使用、管理されるグラフィックスに関するデータ専用のメモリ領域であって、画像フレームデータを一時格納するフレームバッファやＺバッファなどに加えて、画像フレームデータを描画する際に参照される基本データである頂点データ、テクスチャデータ、カラールックアップテーブルなどを格納する領域を含んでよい。
【００２２】
例えばフレームバッファには、画像演算ユニット１４においてラスター処理、シェーディング処理などを行った結果得られた画像フレームデータが一旦書き込まれる。またフレームバッファに書き込まれた画像フレームデータに対して、画像演算ユニット１４がフォギング、アルファブレンディング等の処理を行い最終的な描画色を決定してデータの更新を行ってもよい。
【００２３】
ディスプレイコントローラ２０は、水平および垂直同期信号を生成し、表示装置２２の表示タイミングに従って、メインメモリ８０に格納される画像フレームデータのピクセルデータをライン状に順次読み込んでいく。さらにディスプレイコントローラ２０は、ライン状に読み込まれたピクセルデータを、ＲＧＢのカラー値からなるデジタルデータから表示装置２２に対応したフォーマットに変換して出力する。
【００２４】
つぎに、図２に示す構成によって画像処理が行われる過程について説明する。
【００２５】
まずメインプロセッサ４０の各制御演算ユニット４２は、処理中のアプリケーションに対応するタスクの処理を並列で行っている。ここで例えば他の制御演算ユニット４２を制御する管理プロセッサとして位置づけられた制御演算ユニット４２から、制御に伴うデータを他の制御演算ユニット４２へ転送する場合など、各制御演算ユニット４２相互でデータ伝送の必要が発生した場合、制御演算ユニット４２は、内部のＤＭＡコントローラ１６を起動し、データバス３０を利用してデータ伝送を行う。
【００２６】
また本実施の形態では、各制御演算ユニット４２が共有するデータバス３０がメインメモリ８０にも接続されている。これにより、各制御演算ユニット４２において行われた演算の結果得られたデータなどは、各制御演算ユニット４２内部のＤＭＡコントローラ１６を起動することによって直接、メインメモリ８０へ転送することができる。
【００２７】
メインプロセッサ４０は、各制御演算ユニット４２におけるタスクの処理中に画像処理の必要性が発生した場合、グラフィックプロセッサ１０へ当該画像処理の依頼を行う。グラフィックプロセッサ１０では、制御ブロック１２がメインプロセッサ４０からの画像処理依頼を受付け、画像演算ユニット１４において当該処理が行われるように制御する。本実施の形態では、メインプロセッサ４０内の各制御演算ユニット４２が共有するデータバス３０がグラフィックプロセッサ１０にも接続されているため、画像演算ユニット１４が当該画像処理を行うのに必要なテクスチャデータや描画プリミティブデータは、各制御演算ユニット４２からデータバス３０を伝送してグラフィックメモリ１８に格納される。このとき、グラフィックプロセッサ１０が内部の処理状況に応じてグラフィックプロセッサ１０内部のＤＭＡコントローラ１６を起動させ、データの転送指令を出してもよいし、画像処理依頼の際に制御演算ユニット４２内部のＤＭＡコントローラが起動することによって、制御演算ユニット４２側が転送指令をだしてもよい。また、制御演算ユニット４２からメインメモリ８０へ、データバス３０を通じてデータを一旦転送しておき、グラフィックプロセッサ１０が内部の処理状況に応じてグラフィックプロセッサ１０内部のＤＭＡコントローラ１６を起動させることにより、当該データをメインメモリ８０からグラフィックメモリ１８へ転送するようにしてもよい。この場合、制御演算ユニット４２は、グラフィックプロセッサ１０へ画像処理依頼を行う際、処理に必要なデータのメインメモリ８０における格納場所のアドレスなどをグラフィックプロセッサ１０へ送信しておく。
【００２８】
画像演算ユニット１４により生成された画像フレームデータは、グラフィックプロセッサ１０内部のＤＭＡコントローラ１６を起動させることによって、データバス３０を通じて順次メインメモリ８０へ転送される。このときグラフィックメモリ１８を、転送前の一時記憶領域として利用してもよい。
【００２９】
メインメモリ８０に逐次格納された画像フレームデータは、ディスプレイコントローラ２０が表示装置２２の表示タイミングに従って読み出しおよび送出を行うことにより、データバス３０、グラフィックプロセッサ１０を経由して順次表示装置２２へ転送される。
【００３０】
表示装置２２における画像フレームの描画処理は一般に、画面の左から右へ、また上から下へ、走査線が順次画像を描画していくことによって行われる。走査線は、画面の右下へ到達した後、再度左上に戻り、次の画像フレームを描画していく。走査線が画面の右下から左上へ戻る時間を垂直帰線期間とよび、約６７０μｓである。メインメモリ８０からグラフィックプロセッサ１０への１画像フレームの伝送は、この垂直帰線期間以内に行われる必要がある。例えばハイビジョン映像などで１画面の転送サイズが８ＭＢの映像を表示するためには、データバス３０には８ＭＢ／６７０μｓ≒１２ＧＢ／ｓの転送レートが必要である。
【００３１】
本実施の形態では、マルチプロセッサシステムにおいて個々の制御演算ユニット４２を接続している広帯域のデータバス３０をそのままメインメモリ８０やグラフィックプロセッサ１０へ伸張することによって、このような高速のデータ伝送を容易に実現している。ここで上述した画像表示に必要な転送レートをＳ、データバス３０のバス幅をＷ、クロック周波数をＦとしたとき、１クロックで転送が完了するとして、Ｓ≦ＷＦなる式を満たすようにバス幅Ｗの設定を行う。例えば６４ビットのバス幅を有するバスをデータバス３０に採用すれば、クロック周波数が５ＧＨｚのとき２０ＧＢ／ｓの転送レートを確保できる。このデータバス３０を用いて画像フレームデータをメインメモリ８０からグラフィックプロセッサ１０へ転送すれば、画像フレームデータ以外のデータ転送や実行レートなどのための余裕を保持しつつ、上述したハイビジョン映像のような８ＭＢクラスの高精細な画像を有する映像をコマ落ちなく表示することが十分可能である。
【００３２】
本実施の形態では、グラフィックプロセッサ１０が生成した画像フレームデータは逐次メインメモリ８０へ転送されるため、グラフィックプロセッサ１０内部のグラフィックメモリ１８は大きな容量を必要としない。例えば、１フレーム分ではバッファとしてオーバーフローの心配がないとはいえず、一方、メモリ容量が大きくなりすぎるとコストや設計面で課題が生ずるため、ここでは２フレーム同等以下の容量とする。グラフィックプロセッサ１０に搭載するグラフィックメモリ１８の役割の一端をメインメモリ８０に担わせ、グラフィックメモリ１８を必要最低限の容量とすることによって、高性能の情報処理装置を安価に製造することができ、装置の普及を促進することができる。また設計が容易となる。
【００３３】
図３は本実施の形態におけるデータバス３０の伝送レートについて説明する図である。本実施の形態の情報処理装置が高精細な画像処理を行うのに十分な効果を発揮するために、データバス３０は次に述べるバス幅とする。すなわち、生成した画像フレームデータをグラフィックプロセッサ１０からメインプロセッサ４０を経由してメインメモリ８０へ転送する場合に利用されるデータバス３０ａおよびデータバス３０ｂのバス幅をＷａおよびＷｂ、メインメモリ８０からメインプロセッサ４０を経由してグラフィックプロセッサ１０へ転送する場合に利用されるデータバス３０ｃおよびデータバス３０ｄのバス幅をＷｃおよびＷｄ、垂直帰線期間以内に１画像フレームが転送できる伝送レートをＳ、クロック周波数をＦとすると、データバス３０ａ、３０ｂ、３０ｃおよび３０ｄにおける伝送レートＷａＦ、ＷｂＦ、ＷｃＦおよびＷｄＦが、少なくともＳ≦ＷａＦ，ＷｂＦ，ＷｃＦ，ＷｄＦなる条件を満たすように各データバスを構成する。これにより、グラフィックプロセッサ１０・メインメモリ８０間のデータ伝送処理に起因した、表示装置２２への画像フレームデータの送出遅延が発生することがなくなる。
【００３４】
またメインプロセッサ４０からグラフィックプロセッサ１０へ向かうデータバス３０ｄは、メインプロセッサ４０がグラフィックプロセッサ１０へ画像処理依頼を行う際に、画像処理のためのデータとしてテクスチャデータや描画プリミティブデータなどを転送する必要があるため、さらに高い伝送レートを確保することにより、これらの画像処理に必要なデータの転送によって画像フレームデータの転送を阻害されることがなくなる。従って、Ｓ≦ＷａＦ，ＷｂＦ，ＷｃＦ≦ＷｄＦとなるように各バス幅を決定する。ここで上述の８ＭＢの画像フレームを考えると、伝送レートＷａＦ、ＷｂＦ、ＷｃＦおよびＷｄＦは１２ＧＢ／ｓ以上となるようにバス幅を決定する。
【００３５】
このような構成とすることにより、画像フレームデータがメインメモリ８０に格納され、かつグラフィックプロセッサ１０との間のデータバス３０が他のデータ伝送にも利用されるという本実施の形態の条件下においても、表示装置２２への画像の表示は滞ることなく行うことができる。そしてこのような構成は、大容量のグラフィックメモリを別に設けたり、グラフィック用のバスを特別に設けたりするのと比較して、製造コスト面、設計面において有利である。
【００３６】
本実施の形態ではメインプロセッサ４０内にもともと設けられているバスを、グラフィックプロセッサ１０およびメインメモリ８０の接続に利用している。特にマルチプロセッサ構造においては広帯域のバスが設けられるため、本実施の形態における高レートのデータ伝送が十分可能となる。この構成によって、バスをチップ内で多数引き回す必要がなくなり、実装面積面、タイミング設計面で有利となる。
【００３７】
以上、本発明を実施の形態をもとに説明した。上記実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【００３８】
本実施の形態ではグラフィックプロセッサ１０、メインプロセッサ４０およびメインメモリ８０がデータバス３０を共有したが、グラフィックプロセッサ１０を別の機能を有するプロセッサとして同様の構成とすることができる。例えば本実施の形態におけるメインプロセッサ４０の機能を有するブロックを複数設け、それらとメインメモリとをひとつのデータバスで接続してもよい。このときも、メモリをそれぞれのブロックに設けずとも大きなサイズのデータを高速で転送することが可能であり、安価で高性能な装置が実現できる。
【図面の簡単な説明】
【００３９】
【図１】一般的なパーソナルコンピュータの構成例を示す図である。
【図２】本実施の形態に係る情報処理装置の構成を示すブロック図である。
【図３】本実施の形態におけるデータバスの伝送レートについて説明する図である。
【符号の説明】
【００４０】
１０  グラフィックプロセッサ、  １２  制御ブロック、  １４  画像演算ユニット、  １６  ＤＭＡコントローラ、    １８  グラフィックメモリ、  ２０  ディスプレイコントローラ、  ２２  表示装置、    ３０  データバス、  ４０  メインプロセッサ、  ４２  制御演算ユニット、  ８０  メインメモリ、  １００  情報処理装置。
【図１】
2006107160.tif 000003
【図２】
2006107160.tif 000004
【図３】
2006107160.tif 000005