(57)【要約】【課題】ハードウェアが割り込み等に対応していない環境においても、優先度の高い処理が発生した時点から処理の実行開始までの時間を短縮することのできる描画制御装置を得る。【解決手段】優先度付き描画コマンド生成手段１０１は、画面上に表示される各描画処理コマンドによる複数の描画領域に対して、描画優先順位を設定する。キュー手段１０２は、優先度付き描画コマンド生成手段１０１から送られた描画処理コマンドをキューに蓄積すると共に、所定のキューイング時間中に新たな描画処理コマンドが入力された場合は、新たな描画処理コマンドの優先度に応じて、描画処理コマンドのキュー内の順序を更新する。【選択図】図１
2010182139.tif 000002
【特許請求の範囲】
【請求項１】
画面上に表示される各描画処理コマンドによる複数の描画領域に対して、描画優先順位を設定する優先度付き描画コマンド生成手段と、
優先度付き描画コマンド生成手段から送られた描画処理コマンドを蓄積すると共に、蓄積中に、新たな描画処理コマンドが入力された場合は、当該新たな描画処理コマンドの優先度に応じて、描画処理コマンドの出力順を更新するキュー手段とを備えた描画制御装置。
【請求項２】
キュー手段は、優先順位の高い描画処理コマンドの描画領域の後側に描画される描画領域がある場合、前記優先順位の高い描画処理コマンドの描画領域の後側に重なっている描画領域の描画処理コマンドの後に、前記優先順位の高い描画処理コマンドを出力することを特徴とする請求項１記載の描画制御装置。
【請求項３】
描画処理コマンド毎の処理時間の値を保持する実行時間テーブルと、
前記各描画処理コマンドに共通する最大処理時間の値を保持する最大処理時間レジスタと、
優先度付き描画コマンド生成手段が出力する描画処理コマンドに対して、前記実行時間テーブルを参照して当該描画処理コマンドの処理時間を求め、当該求めた処理時間が前記最大処理時間を超えていた場合は、前記描画処理コマンドを細分化するコマンド細分化手段とを備えたことを特徴とする請求項１または請求項２記載の描画制御装置。
【請求項４】
優先度付き描画コマンド生成手段が出力する描画処理コマンドに対して、同一アプリケーションの描画処理コマンドをグループ化し、コマンド群としてキュー手段に出力するコマンド群化手段を備えたことを特徴とする請求項１または請求項２記載の描画制御装置。
【請求項５】
描画処理コマンドまたは描画処理コマンド群毎の処理時間の値を保持する実行時間テーブルと、
各描画処理コマンドまたは描画処理コマンド群に共通する最大処理時間の値を保持する最大処理時間レジスタと、
コマンド群化手段が出力する描画処理コマンドまたは描画処理コマンド群に対して、前記実行時間テーブルを参照して当該描画処理コマンドまたは描画処理コマンド群の処理時間を求め、当該求めた処理時間が前記最大処理時間を超えていた場合は、前記描画処理コマンドまたは描画処理コマンド群を細分化するコマンド細分化手段とを備えたことを特徴とする請求項４記載の描画制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、図形や文字などを描画する描画処理において、優先度付きの描画処理や描画割り込み処理を実現する描画制御装置に関する。
【背景技術】
【０００２】
従来、図形や文字などを描画する描画処理において、優先度付きの描画処理や描画割り込み処理を実現する場合、優先度の低い処理から高い処理へ移行する場合は優先度の低い処理を実行中のハードウェアを一旦停止させて、ハードウェア内の処理情報を退避させ、優先度の高い処理を実行して終了後、優先度の低い処理の情報を復帰させ、優先度の低い処理を実行していた（例えば特許文献１、特許文献２、特許文献３参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平７−２７１３４４号公報
【特許文献２】特開平１１−１３３９４３号公報
【特許文献３】特開２００７−２４１６２９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
従来のグラフィックスを処理する装置ではハードウェアを一旦停止させ、内部の情報を一旦退避させる方式をとっている。このためグラフィックス描画用のハードウェアが割り込み処理に対応でき、ハードウェアの動作ステイト情報を退避と復帰させることが可能で描画処理の途中から描画再開ができる必要がある。しかし、現在のグラフィックス処理は３次元グラフィックスやベクタグラフィックスなどステイト状態が多く、ハードウェア内で持つステイト状態も多い。また処理パイプラインも深く、再動作可能な状態での割り込み処理の受け付けられる可能性やソフトウェアでの退避時間を考えるとこれらを実現できるハードウェアの実行環境は非常に少ない。
【０００５】
このようなハードウェア実行環境がない場合は、描画処理中には割り込みを受け付けることができず、現在動作中の処理の終了を待って次の処理を実行する必要がある。大量の３次元描画や地図描画など描画ハードウェアの占有時間が長い場合、緊急の表示を行う優先順位の高いリクエストが発生した場合に対応ができないという問題点があった。
【０００６】
この発明は上記のような課題を解決するためになされたもので、ハードウェアが割り込み等に対応していない環境においても、優先度の高い処理が発生した時点から処理の実行開始までの時間を短縮することのできる描画制御装置を得ることを目的とする。
【課題を解決するための手段】
【０００７】
この発明に係る描画制御装置は、画面上に表示される各描画処理コマンドによる複数の描画領域に対して、描画優先順位を設定する優先度付き描画コマンド生成手段と、優先度付き描画コマンド生成手段から送られた描画処理コマンドを蓄積すると共に、蓄積中に、新たな描画処理コマンドが入力された場合は、新たな描画処理コマンドの優先度に応じて、描画処理コマンドの出力順を更新するキュー手段とを備えたものである。
【発明の効果】
【０００８】
この発明の描画制御装置は、描画処理コマンドの蓄積中に新たな描画処理コマンドが入力された場合は、新たな描画処理コマンドの優先度に応じて、描画処理コマンドの出力順を更新するようにしたので、ハードウェアが割り込み等に対応していない環境においても、優先度の高い処理が発生した時点から処理の実行開始までの時間を短縮することができる。
【図面の簡単な説明】
【０００９】
【図１】この発明の実施の形態１による描画制御装置を示す構成図である。
【図２】この発明の実施の形態１による描画制御装置の描画イメージとキューの状態を示す説明図である。
【図３】この発明の実施の形態１による描画制御装置のウィンドウシステムが動作している場合の描画イメージとキューの状態を示す説明図である。
【図４】この発明の実施の形態１による描画制御装置のキューイング時間中に高優先度処理が発生した場合のキューの状態を示す説明図である。
【図５】この発明の実施の形態２による描画制御装置の構成図である。
【図６】この発明の実施の形態３による描画制御装置の構成図である。
【図７】この発明の実施の形態３による監視制御装置のコマンド群化を示す説明図である。
【図８】この発明の実施の形態３による描画制御装置の変形例を示す構成図である。
【発明を実施するための形態】
【００１０】
実施の形態１．
図１は、この発明の実施の形態１による描画制御装置を示す構成図である。
図１に示す描画制御装置は、演算部１００、システムメモリ２００、描画プロセッサ３００、描画メモリ４００を備えている。演算部１００は、オペレーティングシステム（ＯＳ）上で複数のアプリケーションプログラムや複数のタスクを実行する演算部であり、ＣＰＵやメモリといったハードウェアや各種機能に対応したソフトウェアの組合せ、あるいは専用のハードウェアから構成されており、優先度付き描画コマンド生成手段１０１とキュー手段１０２を備えている。優先度付き描画コマンド生成手段１０１は、演算部１００で発生する描画処理コマンド（描画コマンドまたは描画制御コマンド）に対して優先度を付与する手段である。キュー手段１０２は、各描画処理コマンドをキューイングするためのキュー（図示せず）を備え、優先度付き描画コマンド生成手段１０１から送られた描画処理コマンドを蓄積すると共に、蓄積中に、新たな描画処理コマンドが入力された場合は、その新たな描画処理コマンドの優先度に応じて、描画処理コマンドの出力順（キュー内の順序）を更新するよう構成されている。
【００１１】
システムメモリ２００は、演算部１００の命令コードやデータを保持するためのメモリである。描画プロセッサ３００は、直線描画や領域転送などの２次元描画処理や、３次元グラフィックス処理や、ベクタグラフィックス処理などを扱えるグラフィックスアクセラレータ、グラフィックスエンジン、ＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）などと呼ばれる描画用のプロセッサである。描画メモリ４００は、描画プロセッサ３００が描画を行う際に使用するメモリである。
【００１２】
次に、実施の形態１の描画制御装置の動作について説明する。
演算部１００では、ＯＳ上で複数のアプリケーションや複数描画システムのタスクが動作しており、それぞれのアプリケーションやタスクが描画プロセッサ３００に対して文字描画や図形描画や描画制御の描画リクエストを発行する。この描画リクエストは、描画コマンドや描画制御コマンドと対応している場合や、描画処理コマンド群として対応している場合がある。描画コマンドは、線描画、多角形描画、色変更、線幅変更などで、描画制御コマンドは画面更新やフリップ動作などである。描画処理コマンド群は、描画コマンドや描画制御コマンドを複数組み合わせられたもので、色変更＋線幅変更＋線描画＋色変更＋多角形描画＋フリップなどのコマンド群である。尚、以下、単にコマンドという場合は、これら描画コマンドや描画制御コマンド、描画処理コマンド群を指すものとする。
【００１３】
描画リクエストは、優先度付き描画コマンド生成手段１０１に入力され、描画リクエストを構成するコマンドに優先度が付与される。優先度は先に処理するものに対応するコマンドに対して優先度を高くする。優先度はアプリケーションや描画システムにおいて任意に設定することができる。
優先度が付与された描画リクエストを構成するコマンドは、優先度付き描画コマンド生成手段１０１に接続されたキュー手段１０２へ送られる。キュー手段１０２ではキュー内に溜まっているコマンドの優先度と、新たに入力されたコマンドの優先度を比較して、コマンドを適切な位置に挿入する。適切な挿入位置は入力されたコマンドの優先度よりも高い優先度を持つコマンドの後ろであり、かつ、描画コマンドであれば描画領域がキュー内に含まれるコマンドの描画領域と重なる場合は重なるコマンドの後ろであり、描画制御コマンドであれば描画制御の対象となる最後のコマンドの後ろである。
【００１４】
図２は描画イメージとキューの状態を示す説明図であり、（ａ）はウィンドウの重なりがない場合、（ｂ）はウィンドウの重なりがある場合である。
図２（ａ）のように、優先度の高いコマンド５が、挿入前キューに含まれるコマンドの描画領域と重ならない場合は、優先度よりも高い処理がないのでキューの先頭に挿入される。一方、図２（ｂ）のように、優先度の高いコマンド５がキュー内に含まれるコマンド１とコマンド２の描画領域と重なる場合はコマンド２の後ろに挿入される。これらは正しい描画イメージを維持するために正しい挿入位置に決定される。
【００１５】
キュー手段１０２は、順次コマンドを描画プロセッサ３００へ転送し、描画プロセッサ３００は入力されたコマンドを処理することで描画メモリ４００に描画を行う。これにより優先度の高い処理を事前に生成したコマンドよりも先に処理するようになり、割り込み的な処理を実現することができる。
【００１６】
本実施の形態では、描画メモリ４００に描画プロセッサ３００が描画を行っているが、システムとしては描画メモリ４００がなくシステムメモリ２００に描画を行う場合も有効な構成である。
また、演算部１００において描画領域を管理するウィンドウシステムが動作している場合には描画領域を考慮にいれた優先度付きコマンド生成を優先度付き描画コマンド生成手段１０１で行う。
図３は、この場合の描画イメージとキューの状態を示す説明図である。
図示のように、画面にウィンドウＡとウィンドウＢが設定される。ウィンドウＡへのコマンドがコマンド１，コマンド２とし、ウィンドウＢへのコマンドがコマンド３，コマンド４とし、キュー手段１０２にコマンド１から４まで順番に保持されているとする。この状況でウィンドウＡに対する優先度の高いコマンド５が発生した場合、キュー手段１０２では、ウィンドウＡへのコマンドであるコマンド２の後ろにコマンド５を挿入する。即ち、図３に示すように、ウィンドウを管理するシステムが動作している場合は、どのウィンドウに入っているかを検出するだけで、大まかな振り分けを行い、個々のコマンドの描画領域の重なり合いの検出は行わず処理を簡素化する。この際、ウィンドウ内のコマンドの描画領域の重なり合いを検出しないため、ウィンドウ内のコマンドはシーケンシャルに並べる必要があり、描画順序を保持してコマンド５はコマンド２の後に挿入されることになる。
【００１７】
また、図３に示すように描画領域を管理するウィンドウシステムが動作している場合であっても、優先度の高い処理が描画コマンドである場合はウィンドウ内において描画領域の重なりを判定して更に描画の順番を上げることができる。図３のような場合、コマンド５の描画領域はコマンド１やコマンド２と重ならないので、コマンド１の前に挿入することが可能である。また、描画制御コマンドである場合は制御の対象となるコマンドの後ろに入れることで制御処理の順番を上げることができる。
【００１８】
また、キュー手段１０２は、描画プロセッサ３００への処理を受け付けた場合はコマンドを転送していくが、キュー手段１０２では所定のキューイング時間が設定されている。このキューイング時間内はコマンドをキュー手段１０２内に保持し、描画プロセッサ３００へはコマンドを転送しない。このキューイング時間内は優先度の高いコマンドを受け付け、キュー手段１０２内に保持されているコマンド間で優先度処理が行われる。即ち、図４に示すように、コマンド１，２がキューイングされ、そのキューイング時間が経過すると、時刻Ｔ１で、コマンド１，２の処理が行われる。また、コマンド３，４のキューイング時間中に優先度の高いコマンド５が発生すると、コマンド処理はコマンド５が先頭となる（時刻Ｔ２）。このように、比較的描画時間のかかるコマンド３がキューイング時間内保持されているため、優先度の高いコマンド５をコマンド３の前に挿入することができ、優先度の高い処理の発生から実行までの時間を短くすることが可能になる。
【００１９】
以上のように、実施の形態１の描画制御装置によれば、画面上に表示される各描画処理コマンドによる複数の描画領域に対して、描画優先順位を設定する優先度付き描画コマンド生成手段と、優先度付き描画コマンド生成手段から送られた描画処理コマンドを蓄積すると共に、蓄積中に、新たな描画処理コマンドが入力された場合は、新たな描画処理コマンドの優先度に応じて、描画処理コマンドの出力順を更新するキュー手段とを備えたので、ハードウェアが割り込み等に対応していない環境においても、優先度の高い処理が発生した時点から処理の実行開始までの時間を短縮することができる。
【００２０】
また、実施の形態１の描画制御装置によれば、キュー手段は、優先順位の高い描画処理コマンドの描画領域の後側に描画される描画領域がある場合、優先順位の高い描画処理コマンドの描画領域の後側に重なっている描画領域の描画処理コマンドの後に、優先順位の高い描画処理コマンドを出力するようにしたので、描画領域が重なっている場合でも、正しい描画イメージを維持することができる。
【００２１】
実施の形態２．
図５は、この発明の実施の形態２における描画制御装置を示すものである。
実施の形態２の描画制御装置は、演算部１００ａとして、実施の形態１の優先度付き描画コマンド生成手段１０１とキュー手段１０２の構成に加えて、実行時間テーブル１０３、最大処理時間レジスタ１０４、コマンド細分化手段１０５を設けたものである。実行時間テーブル１０３は、描画処理コマンド（描画コマンドや描画制御コマンド）毎の処理時間の値を保持するテーブルである。最大処理時間レジスタ１０４は、各描画処理コマンドに共通する最大処理時間の値を保持するレジスタである。コマンド細分化手段１０５は、優先度付き描画コマンド生成手段１０１が出力する描画処理コマンドに対して、実行時間テーブル１０３を参照してその描画処理コマンドの処理時間を求め、求めた処理時間が最大処理時間レジスタ１０４の最大処理時間を超えていた場合は、その描画処理コマンドを細分化するよう構成されている。その他の構成は実施の形態１と同様であるため、対応する部分に同一符号を付してその説明を省略する。
【００２２】
次に、実施の形態２の描画制御装置の動作について説明する。
実行時間テーブル１０３には各処理コマンド（描画コマンドや描画制御コマンド）が必要とする処理時間をテーブル化して保持しており、描画処理コマンドから描画時間を読み出すことができる。描画面積や描画条件などが描画時間に関係するコマンドでは、単位あたりの描画時間が保持されており、描画面積や描画条件の係数を用いた演算により描画時間の見積もりができる。
【００２３】
優先度付き描画コマンド生成手段１０１において優先度がつけられた描画処理コマンドはコマンド細分化手段１０５に入力される。このコマンド細分化手段１０５では描画処理コマンドがどのようなコマンドで構成されているかを解析し、実行時間テーブル１０３を参照することでコマンドが必要とする処理時間を見積もる。次に、この見積もり時間が最大処理時間レジスタ１０４に保持されている最大処理時間を超えるか否かを判定し、超える場合は、コマンドの細分化を行う。例えば、画面をクリアするコマンドの場合、クリアする領域を分割することで一つのコマンドにかかる時間を最大処理時間レジスタ１０４で示される時間内に抑える。これにより優先度の高い処理が発生した場合に、処理が実行されるまでのタイムラグを、最大処理時間レジスタ１０４に保持されている時間に抑えることができる。
【００２４】
以上のように、実施の形態２の描画制御装置によれば、描画処理コマンド毎の処理時間の値を保持する実行時間テーブルと、各描画処理コマンドに共通する最大処理時間の値を保持する最大処理時間レジスタと、優先度付き描画コマンド生成手段が出力する描画処理コマンドに対して、実行時間テーブルを参照して描画処理コマンドの処理時間を求め、求めた処理時間が最大処理時間を超えていた場合は、描画処理コマンドを細分化するコマンド細分化手段とを備えたので、優先度の高い処理が発生した時点から処理の実行開始までの時間をより短縮することができる。
【００２５】
実施の形態３．
図６は、この発明の実施の形態３における描画制御装置を示すものである。
実施の形態３の描画制御装置は、演算部１００ｂとして、実施の形態１の優先度付き描画コマンド生成手段１０１とキュー手段１０２の構成に加えて、コマンド群化手段１０６を備えている。このコマンド群化手段１０６は、優先度付き描画コマンド生成手段１０１が出力する描画処理コマンドに対して、同一アプリケーションの描画処理コマンドをグループ化し、コマンド群としてキュー手段１０２に出力するよう構成されている。
【００２６】
次に、実施の形態３の描画制御装置の動作について説明する。
描画プロセッサ３００では、個々の描画処理コマンド（描画コマンドや描画制御コマンド）が送られて処理される場合よりも描画処理コマンド群としてまとめて処理するほうが高速に実行できる。しかしながら、複数のアプリケーションから発生させられた描画コマンドが、交互に並ぶ場合がある。これは、例えば、ウィンドウズ・アプリケーション（ウィンドウズは商標登録）のように、複数のウィンドウを開き、両ウィンドウ内でグラフィックスのアニメーションなどが表示されている場合に発生する。このような場合、二つのアプリケーションからアニメーションの描画コマンドが生成されキューに蓄積される。
【００２７】
このように、描画コマンドが交互に並ぶ場合は、描画プロセッサのステイトをコマンド毎に切り替える必要があるといったことから効率が悪く性能が劣化する。尚、ここでステイトとは描画属性と呼ばれるものであり、ウィンドウ位置やサイズ、描画色、線種（実線／破線）といったものを指す。一般に、このような描画属性などは複数の描画コマンドにおいて同じものを使用することが多いため、描画コマンド毎に設定せず、同じ描画属性を使用する描画コマンドの先頭で実行する。途中で異なるアプリケーションの描画コマンドが割り込むと描画属性を頻繁に変える必要が発生してしまい、性能が劣化することになる。
【００２８】
このため、同一のステイトで処理できるものをコマンド群としてまとめて処理するほうが高速に実行できる。この処理をコマンド群化手段１０６で実行する。例えば図７に示すように斜線の入ったアプリケーションＡが発生させたコマンド１，３，５とアプリケーションＢが発生させたコマンド２，４が交互に並んだ場合、コマンドが切り替わる毎にステイトを変更する必要がある。このため、コマンド群化手段１０６では、アプリケーションＡのコマンド１，３，５と、アプリケーションＢのコマンド２，４をコマンド群化する。これにより、ステイトの変更が少なくなり高速化が図れる。
【００２９】
また、上記例では実施の形態１の構成に対してコマンド群化手段１０６を設けたが、図８に示すように、実施の形態２の構成に対してコマンド群化手段１０６を設けても良い。
図８に示す描画制御装置の演算部１００ｃにおいて、実行時間テーブル１０３ａは、描画処理コマンド毎の実行時間と共に、描画処理コマンド群の実行時間を保持する。最大処理時間レジスタ１０４ａは、描画処理コマンドの最大処理時間と共に、描画処理コマンド群の最大処理時間の値を保持する。コマンド細分化手段１０５ａは、コマンド群化手段１０６の出力に対して処理を行う。即ち、コマンド細分化手段１０５ａは、コマンド群化手段１０６が出力する描画処理コマンドまたは描画処理コマンド群に対して、実行時間テーブル１０３ａを参照してその描画処理コマンドまたは描画処理コマンド群の処理時間を求め、求めた処理時間が最大処理時間レジスタ１０４ａの最大処理時間を超えていた場合は、描画処理コマンドまたは描画処理コマンド群を細分化する。
【００３０】
以上のように、実施の形態３の描画制御装置によれば、優先度付き描画コマンド生成手段が出力する描画処理コマンドに対して、同一アプリケーションの描画処理コマンドをグループ化し、コマンド群としてキュー手段に出力するコマンド群化手段を備えたので、アプリケーションやタスクが異なるために発生するステイト変更回数を減らすことができ、その結果、高速な動作を行うことができる。
【００３１】
また、実施の形態３の描画制御装置によれば、描画処理コマンドまたは描画処理コマンド群毎の処理時間の値を保持する実行時間テーブルと、各描画処理コマンドまたは描画処理コマンド群に共通する最大処理時間の値を保持する最大処理時間レジスタと、コマンド群化手段が出力する描画処理コマンドまたは描画処理コマンド群に対して、実行時間テーブルを参照して描画処理コマンドまたは描画処理コマンド群の処理時間を求め、求めた処理時間が最大処理時間を超えていた場合は、描画処理コマンドまたは描画処理コマンド群を細分化するコマンド細分化手段とを備えたので、優先度の高い処理が発生した場合に、発生から処理実行までのタイムラグを短くすることができる。
【符号の説明】
【００３２】
１００，１００ａ，１００ｂ，１００ｃ  演算部、１０１  優先度付き描画コマンド生成手段、１０２  キュー手段、１０３，１０３ａ  実行時間テーブル、１０４，１０４ａ  最大処理時間レジスタ、１０５，１０５ａ  コマンド細分化手段、１０６  コマンド群化手段、２００  システムメモリ、３００  描画プロセッサ、４００  描画メモリ。
【図１】
2010182139.tif 000003
【図２】
2010182139.tif 000004
【図３】
2010182139.tif 000005
【図４】
2010182139.tif 000006
【図５】
2010182139.tif 000007
【図６】
2010182139.tif 000008
【図７】
2010182139.tif 000009
【図８】
2010182139.tif 000010