(57)【特許請求の範囲】
【請求項１】
複数のプロセッサを直列に結合し、所定のプロセッサで幾何演算処理を実行するパイプライン構造の図形処理装置において、
前記複数のプロセッサの負荷状況を判定する負荷状況判定処理手段を具備し、
前記負荷状況判定処理手段により判定される負荷状況が、高負荷時のとき、通常は幾何演算処理を行わないプロセッサが、前記所定のプロセッサで実行される幾何演算処理の一部を代替実行する
ことを特徴とする図形処理装置。
【請求項２】
前記所定のプロセッサは、
高負荷時において、通常は幾何演算処理を行わないプロセッサが前記幾何演算処理の一部を代替実行する場合、残りの幾何演算処理を実行するように制御される
ことを特徴とする請求項１記載の図形処理装置。
【請求項３】
前記複数のプロセッサの負荷状況を格納する負荷状況格納手段を具備することを特徴とする請求項１記載の図形処理装置。
【請求項４】
前記複数のプロセッサにおいて、幾何演算処理を実行するプロセッサは実際の描画処理を行うグラフィックサブプロセッサであり、通常は幾何演算処理を行わないプロセッサは、前記グラフィックサブプロセッサを制御するホストコンピュータである
ことを特徴とする請求項１から請求項３のいずれかに記載の図形処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、コンピュータグラフィックスやＣＡＤ等の図形処理に用いられ、複数のプロセッサを直列に結合したパイプライン構造の図形処理装置に関する。
【０００２】
【従来の技術】
コンピュータグラフィックスやＣＡＤ等の図形処理に用いられるコンピュータの性能は、主プロセッサやメモリ等からなるホスト側の性能と、三次元図形処理に特有の座標変換・クリッピング・光源計算等の幾何演算や、幾何演算結果により実際の描画処理を行うグラフィックスサブシステムの性能との２つの要素に左右される。
【０００３】
ここで、図４は、従来技術による三次元図形処理装置の構成を示すブロック図である。図において、１はホストコンピュータであり、ホストコンピュータ１上で実行されるアプリケーションプログラム３、グラフィックスサブシステム２を制御するデバイスドライバ４を実行する主プロセッサ８を備えている。２はグラフィックスサブシステムであり、グラフィックスサブシステム内で幾何演算処理を実行する副プロセッサ５、幾何演算処理結果に基づいて図形描画を実行する描画処理部６、描画結果が格納されるメモリであるフレームバッファ７を備えている。
【０００４】
図形描画指示は、アプリケーションプログラム３からデバイスドライバ４に対して出力される。デバイスドライバ４は、アプリケーションプログラム３からの指示に対応するグラフィックスサブシステム２への描画指示を出力する。グラフィックスサブシステム２に入力された描画指示は、副プロセッサ５で幾何演算処理され、副プロセッサ５から描画処理部６に描画指示が出力される。最後に描画処理部６で最終的な図形描画処理が実行され、結果がフレームバッファ７に書き込まれる。
【０００５】
【発明が解決しようとする課題】
上述したホストコンピュータ１およびグラフィックスサブシステム２（２要素）は、各々が技術の進歩により性能向上していくが、コンピュータ全体での性能としては、２つのうち低い性能を持つ方でシステム性能が決定されてしまい、ハードウェア資源が効率的に活かされない。近年、特に、主プロセッサ８は、短い周期で製品開発がなされ、性能向上が著しい。そのため、従来技術では、新規に性能向上した主プロセッサ８を搭載したハードウェアを用いたとしても、総合的な性能がグラフィックスサブシステム性能で制限されるという問題があった。
【０００６】
この発明は上述した事情に鑑みてなされたもので、図形処理実行時の負荷状況に応じて処理を分散することで、図形処理性能を向上させることができる図形処理装置を提供することを目的とする。
【０００７】
【課題を解決するための手段】
上述した問題点を解決するために、請求項１記載の発明では、複数のプロセッサを直列に結合し、所定のプロセッサで幾何演算処理を実行するパイプライン構造の図形処理装置において、前記複数のプロセッサの負荷状況を判定する負荷状況判定処理手段を具備し、前記負荷状況判定処理手段により判定される負荷状況が、高負荷時のとき、通常は幾何演算処理を行わないプロセッサが、前記所定のプロセッサで実行される幾何演算処理の一部を代替実行することを特徴とする。
【０００８】
また、請求項２記載の発明では、請求項１記載の図形処理装置において、前記所定のプロセッサは、高負荷時において、通常は幾何演算処理を行わないプロセッサが前記幾何演算処理の一部を代替実行する場合、残りの幾何演算処理を実行するように制御されることを特徴とする。
【０００９】
また、請求項３記載の発明では、請求項１記載の図形処理装置において、前記複数のプロセッサの負荷状況を格納する負荷状況格納手段を具備することを特徴とする。
【００１０】
また、請求項４記載の発明では、請求項１から請求項３のいずれかに記載の図形処理装置において、前記複数のプロセッサにおいて、幾何演算処理を実行するプロセッサは実際の描画処理を行うグラフィックサブプロセッサであり、通常は幾何演算処理を行わないプロセッサは、前記グラフィックサブプロセッサを制御するホストコンピュータであることを特徴とする。
【００１１】
この発明では、複数のプロセッサを直列に結合したパイプライン構造の図形処理装置における幾何演算処理のうち、負荷状況判定処理手段により判定された、幾何演算処理を実行するプロセッサの負荷に応じて、幾何演算処理の一部を負荷の軽い側のプロセッサの幾何演算処理手段で実行することで、最適な図形処理性能を実現することができることが可能となる。
【００１２】
【発明の実施の形態】
以下、図面を用いて本発明の実施の形態を説明する。
Ａ．実施形態の構成
図１は、本発明の実施形態による三次元図形処理装置の構成を示すブロック図である。なお、図４に対応する部分には同一の符号を付けて説明を省略する。図において、デバイスドライバ４は、負荷状況判定処理手段２１および幾何演算処理手段２２を備えている。負荷状況判定処理手段２１は、グラフィックスサブシステム２の負荷状況に応じて幾何演算処理をホストコンピュータ１側で分担するか否かを決定する。ドライバ内の幾何演算処理手段２２は、負荷状況判定処理手段２１によりグラフィックサブシステム２の負荷が高いと判断された場合、従来、グラフィックスサブシステム２で全て実行していた幾何演算処理のうち、分担可能な一部を実行する。
【００１３】
次に、副プロセッサ５は、幾何演算処理手段２３および幾何演算処理手段２４を備えている。幾何演算処理手段２３および幾何演算処理手段２４は、グラフィックサブシステム２の負荷が低く、当該システムで十分に全ての幾何演算処理を処理することができる場合、ホストコンピュータ１で分担可能であるか否かに拘わらず、幾何演算処理を実行する。また、グラフィックサブシステム２の負荷が高く、ホストコンピュータ１で幾何演算処理が分担可能である場合、幾何演算処理手段２３は、幾何演算処理を実行しない。これに対して、幾何演算処理手段２４は、ホストコンピュータ１で分担不可能な幾何演算処理を実行する。なお、図中の矢印は、各部間での図形描画指示の流れを示している。
【００１４】
図１において、デバイスドライバ４に入力された描画指示は、負荷状況判定処理手段２１によって、デバイスドライバ４内の幾何演算処理手段２２もしくは副プロセッサ５内の幾何演算処理手段２３に分配される。幾何演算処理手段２３が描画指示を受けた場合には、従来、副プロセッサ５で実行していたのと同じ処理が幾何演算処理手段２３および幾何演算処理手段２４で実行され、描画処理部６へ描画指示が出力される。一方、幾何演算処理手段２２が描画指示を受けた場合には、幾何演算処理の一部が幾何演算処理手段２２で処理されるとともに、幾何演算処理手段２３を経由せずに幾何演算処理手段２４に描画指示が出力され、幾何演算処理手段２４において、ホストコンピュータ１で分担不可能な幾何演算処理が実行され、その後、描画処理部６に描画指示が出力される。
【００１５】
次に、図２は、本実施形態による負荷判定処理方法を説明するための機能ブロック図である。なお、図１に対応する部分には同一の符号を付けて説明を省略する。図２において、描画指示格納領域３１は、デバイスドライバ４からの描画指示が書き込まれる領域である。描画指示格納領域３２は、描画指示格納領域３１と同様に描画指示が書き込まれる領域である。描画指示入力ＦＩＦＯバッファ３３は、描画指示格納領域３１または描画指示格納領域３２に格納された描画指示を幾何演算処理手段２３以降に供給するためのバッファである。負荷状況格納領域３４は、グラフィックスサブシステム２の負荷状況を、ホストコンピュータ１が受け取るための領域である。
【００１６】
デバイスドライバ４は、まず、描画指示格納領域３１に描画指示を書き込む。描画指示格納領域３１が一杯になると、描画指示格納領域３１から描画指示入力ＦＩＦＯバッファ３３に対して描画指示のＤＭＡ転送が開始される。描画指示入力ＦＩＦＯバッファ３３は、ＤＭＡを用いて描画指示格納領域３１に書き込まれた描画指示を読み込み、幾何演算処理手段２３以降の手段に対して出力する。描画指示入力ＦＩＦＯバッファ３３が描画指示格納領域３１から描画指示を読み込開始する時、副プロセッサ５は、描画指示をＤＭＡ転送によって入力中であることを負荷状況格納領域３４に通知する。描画指示格納領域３１からの描画指示を全て読み込んだ後、副プロセッサ５は、描画指示のＤＭＡ転送による入力が終了したということを負荷状況格納領域３４に通知する。デバイスドライバ４は、副プロセッサ５の負荷状況の判別を、負荷状況格納領域３４に書き込まれた副プロセッサ５の状況を読み取ることにより、副プロセッサ５の負荷状況を判別し、該負荷状況に応じた描画指示を描画指示格納領域３２に書き込む。
【００１７】
描画指示格納領域３２が一杯になると、デバイスドライバ４は、描画指示格納領域３１中の描画指示の副プロセッサ５への入力が終了していなければ、終了するまで待ち合わせる。その後、描画指示格納領域３２の描画指示が描画指示入力ＦＩＦＯバッファ３３に対してＤＭＡ転送される。以降は、描画指示格納領域３１と描画指示格納領域３２との役割が交代し、描画指示格納領域３２中の描画指示をＤＭＡ転送中に、デバイスドライバ４が負荷状況格納領域３４中の情報に従って、副プロセッサ５の負荷状況に応じた描画指示を描画指示格納領域３１に書き込む。
【００１８】
上述した処理において、ホストコンピュータ１においては、描画指示格納領域３１または３２には、図１に示す負荷状況判定処理手段２１によりグラフィックスサブシステム２の負荷が高いと判断された場合には、幾何演算処理手段２２による幾何演算処理後の描画指示が書き込まれ、負荷状況判定処理手段２１によりグラフィックスサブシステム２の負荷が低いと判断された場合には、未処理の描画指示が書き込まれる。そして、グラフィックサブシステム２の副プロセッサ５においては、描画指示入力ＦＩＦＯバッファ３３から描画指示を後段へ送出する際に、グラフィックスサブシステム２の負荷が高いと判断された場合には、幾何演算処理手段２３を通さずに、幾何演算処理手段２４へ供給する。
【００１９】
Ｂ．実施例の動作
次に、図３に示すフローチャートを参照して本実施例による負荷判定処理方法について詳細に説明する。デバイスドライバ４に描画指示が入力されると、まず、ステップＳ４０において、グラフィックスサブシステム２の負荷が高いか否か、すなわち現在の描画指示を副プロセッサ５が即時に実行できるか否かが判別される。そして、副プロセッサ５で即時実行可能の場合には、ステップＳ４１で、グラフィックスサブシステム２に描画指示を出力し、ステップＳ４５で、幾何演算処理手段２３で幾何演算処理を実行した後、ステップＳ４６で、幾何演算処理手段２４で幾何演算処理を実行する。
【００２０】
一方、副プロセッサ５で即時実行不可能の場合には、ステップＳ４２において、幾何演算処理手段２２で、グラフィックスサブシステム２で全て実行していた幾何演算処理のうち、分担可能な一部の幾何演算処理を実行する。次に、グラフィックスサブシステム２で描画継続要であるか否かが判別される。そして、それ以上処理を続行する必要なしと判定した場合には、アプリケーションプログラム３からの描画指示は、グラフィックスシステム２に出力されることなく、当該処理を終了する。一方、グラフィックスサブシステム２で描画継続要であると判定された場合には、ステップＳ４４において、グラフィックスサブシステム２に描画指示を出力し、ステップＳ４６で、幾何演算処理手段２４で、分配され、ホストコンピュータ１で分担不可能な部分の幾何演算処理を実行する。
【００２１】
【発明の効果】
以上説明したように、本発明によれば、複数のプロセッサを直列に結合したパイプライン構造の図形処理装置における幾何演算処理のうち、負荷状況判定処理手段により判定された、幾何演算処理を実行するプロセッサの負荷に応じて、幾何演算処理の一部を負荷の軽い側のプロセッサの幾何演算処理手段で実行するようにしたので、ホストコンピュータの性能、もしくはグラフィックスサブシステム側プロセッサの性能のいずれか一方でも向上した場合、図形処理を行うコンピュータ全体の性能を向上させることができるという利点が得られる。
【図面の簡単な説明】
【図１】本発明の実施形態による三次元図形処理装置の構成を示すブロック図である。
【図２】本実施形態による負荷判定処理方法を説明するための機能ブロック図である。
【図３】本実施形態による負荷判定処理方法を説明するためのフローチャートである。
【図４】従来技術による三次元図形処理装置の構成を示すブロック図である。
【符号の説明】
１  ホストコンピュータ（複数のプロセッサ）
２  グラフィックスサブシステム（複数のプロセッサ）
３  アプリケーションプログラム
４  デバイスドライバ
５  副プロセッサ
６  描画処理部
７  フレームバッファ
８  主プロセッサ
２１  負荷状況判定処理手段
２２  幾何演算処理手段
２３  幾何演算処理手段（第１の幾何演算処理手段）
２４  幾何演算処理手段（第２の幾何演算処理手段）
３１  描画指示格納領域（複数の記憶手段）
３２  描画指示格納領域（複数の記憶手段）
３３  描画指示入力ＦＩＦＯバッファ（供給手段）
３４  負荷状況格納領域
【図１】
0003564327.tif 000002
【図２】
0003564327.tif 000003
【図３】
0003564327.tif 000004
【図４】
0003564327.tif 000005