説明

描画制御装置

【課題】ハードウェアが割り込み等に対応していない環境においても、優先度の高い処理が発生した時点から処理の実行開始までの時間を短縮することのできる描画制御装置を得る。
【解決手段】優先度付き描画コマンド生成手段101は、画面上に表示される各描画処理コマンドによる複数の描画領域に対して、描画優先順位を設定する。キュー手段102は、優先度付き描画コマンド生成手段101から送られた描画処理コマンドをキューに蓄積すると共に、所定のキューイング時間中に新たな描画処理コマンドが入力された場合は、新たな描画処理コマンドの優先度に応じて、描画処理コマンドのキュー内の順序を更新する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、図形や文字などを描画する描画処理において、優先度付きの描画処理や描画割り込み処理を実現する描画制御装置に関する。
【背景技術】
【0002】
従来、図形や文字などを描画する描画処理において、優先度付きの描画処理や描画割り込み処理を実現する場合、優先度の低い処理から高い処理へ移行する場合は優先度の低い処理を実行中のハードウェアを一旦停止させて、ハードウェア内の処理情報を退避させ、優先度の高い処理を実行して終了後、優先度の低い処理の情報を復帰させ、優先度の低い処理を実行していた(例えば特許文献1、特許文献2、特許文献3参照)。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開平7−271344号公報
【特許文献2】特開平11−133943号公報
【特許文献3】特開2007−241629号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
従来のグラフィックスを処理する装置ではハードウェアを一旦停止させ、内部の情報を一旦退避させる方式をとっている。このためグラフィックス描画用のハードウェアが割り込み処理に対応でき、ハードウェアの動作ステイト情報を退避と復帰させることが可能で描画処理の途中から描画再開ができる必要がある。しかし、現在のグラフィックス処理は3次元グラフィックスやベクタグラフィックスなどステイト状態が多く、ハードウェア内で持つステイト状態も多い。また処理パイプラインも深く、再動作可能な状態での割り込み処理の受け付けられる可能性やソフトウェアでの退避時間を考えるとこれらを実現できるハードウェアの実行環境は非常に少ない。
【0005】
このようなハードウェア実行環境がない場合は、描画処理中には割り込みを受け付けることができず、現在動作中の処理の終了を待って次の処理を実行する必要がある。大量の3次元描画や地図描画など描画ハードウェアの占有時間が長い場合、緊急の表示を行う優先順位の高いリクエストが発生した場合に対応ができないという問題点があった。
【0006】
この発明は上記のような課題を解決するためになされたもので、ハードウェアが割り込み等に対応していない環境においても、優先度の高い処理が発生した時点から処理の実行開始までの時間を短縮することのできる描画制御装置を得ることを目的とする。
【課題を解決するための手段】
【0007】
この発明に係る描画制御装置は、画面上に表示される各描画処理コマンドによる複数の描画領域に対して、描画優先順位を設定する優先度付き描画コマンド生成手段と、優先度付き描画コマンド生成手段から送られた描画処理コマンドを蓄積すると共に、蓄積中に、新たな描画処理コマンドが入力された場合は、新たな描画処理コマンドの優先度に応じて、描画処理コマンドの出力順を更新するキュー手段とを備えたものである。
【発明の効果】
【0008】
この発明の描画制御装置は、描画処理コマンドの蓄積中に新たな描画処理コマンドが入力された場合は、新たな描画処理コマンドの優先度に応じて、描画処理コマンドの出力順を更新するようにしたので、ハードウェアが割り込み等に対応していない環境においても、優先度の高い処理が発生した時点から処理の実行開始までの時間を短縮することができる。
【図面の簡単な説明】
【0009】
【図1】この発明の実施の形態1による描画制御装置を示す構成図である。
【図2】この発明の実施の形態1による描画制御装置の描画イメージとキューの状態を示す説明図である。
【図3】この発明の実施の形態1による描画制御装置のウィンドウシステムが動作している場合の描画イメージとキューの状態を示す説明図である。
【図4】この発明の実施の形態1による描画制御装置のキューイング時間中に高優先度処理が発生した場合のキューの状態を示す説明図である。
【図5】この発明の実施の形態2による描画制御装置の構成図である。
【図6】この発明の実施の形態3による描画制御装置の構成図である。
【図7】この発明の実施の形態3による監視制御装置のコマンド群化を示す説明図である。
【図8】この発明の実施の形態3による描画制御装置の変形例を示す構成図である。
【発明を実施するための形態】
【0010】
実施の形態1.
図1は、この発明の実施の形態1による描画制御装置を示す構成図である。
図1に示す描画制御装置は、演算部100、システムメモリ200、描画プロセッサ300、描画メモリ400を備えている。演算部100は、オペレーティングシステム(OS)上で複数のアプリケーションプログラムや複数のタスクを実行する演算部であり、CPUやメモリといったハードウェアや各種機能に対応したソフトウェアの組合せ、あるいは専用のハードウェアから構成されており、優先度付き描画コマンド生成手段101とキュー手段102を備えている。優先度付き描画コマンド生成手段101は、演算部100で発生する描画処理コマンド(描画コマンドまたは描画制御コマンド)に対して優先度を付与する手段である。キュー手段102は、各描画処理コマンドをキューイングするためのキュー(図示せず)を備え、優先度付き描画コマンド生成手段101から送られた描画処理コマンドを蓄積すると共に、蓄積中に、新たな描画処理コマンドが入力された場合は、その新たな描画処理コマンドの優先度に応じて、描画処理コマンドの出力順(キュー内の順序)を更新するよう構成されている。
【0011】
システムメモリ200は、演算部100の命令コードやデータを保持するためのメモリである。描画プロセッサ300は、直線描画や領域転送などの2次元描画処理や、3次元グラフィックス処理や、ベクタグラフィックス処理などを扱えるグラフィックスアクセラレータ、グラフィックスエンジン、GPU(Graphics Processing Unit)などと呼ばれる描画用のプロセッサである。描画メモリ400は、描画プロセッサ300が描画を行う際に使用するメモリである。
【0012】
次に、実施の形態1の描画制御装置の動作について説明する。
演算部100では、OS上で複数のアプリケーションや複数描画システムのタスクが動作しており、それぞれのアプリケーションやタスクが描画プロセッサ300に対して文字描画や図形描画や描画制御の描画リクエストを発行する。この描画リクエストは、描画コマンドや描画制御コマンドと対応している場合や、描画処理コマンド群として対応している場合がある。描画コマンドは、線描画、多角形描画、色変更、線幅変更などで、描画制御コマンドは画面更新やフリップ動作などである。描画処理コマンド群は、描画コマンドや描画制御コマンドを複数組み合わせられたもので、色変更+線幅変更+線描画+色変更+多角形描画+フリップなどのコマンド群である。尚、以下、単にコマンドという場合は、これら描画コマンドや描画制御コマンド、描画処理コマンド群を指すものとする。
【0013】
描画リクエストは、優先度付き描画コマンド生成手段101に入力され、描画リクエストを構成するコマンドに優先度が付与される。優先度は先に処理するものに対応するコマンドに対して優先度を高くする。優先度はアプリケーションや描画システムにおいて任意に設定することができる。
優先度が付与された描画リクエストを構成するコマンドは、優先度付き描画コマンド生成手段101に接続されたキュー手段102へ送られる。キュー手段102ではキュー内に溜まっているコマンドの優先度と、新たに入力されたコマンドの優先度を比較して、コマンドを適切な位置に挿入する。適切な挿入位置は入力されたコマンドの優先度よりも高い優先度を持つコマンドの後ろであり、かつ、描画コマンドであれば描画領域がキュー内に含まれるコマンドの描画領域と重なる場合は重なるコマンドの後ろであり、描画制御コマンドであれば描画制御の対象となる最後のコマンドの後ろである。
【0014】
図2は描画イメージとキューの状態を示す説明図であり、(a)はウィンドウの重なりがない場合、(b)はウィンドウの重なりがある場合である。
図2(a)のように、優先度の高いコマンド5が、挿入前キューに含まれるコマンドの描画領域と重ならない場合は、優先度よりも高い処理がないのでキューの先頭に挿入される。一方、図2(b)のように、優先度の高いコマンド5がキュー内に含まれるコマンド1とコマンド2の描画領域と重なる場合はコマンド2の後ろに挿入される。これらは正しい描画イメージを維持するために正しい挿入位置に決定される。
【0015】
キュー手段102は、順次コマンドを描画プロセッサ300へ転送し、描画プロセッサ300は入力されたコマンドを処理することで描画メモリ400に描画を行う。これにより優先度の高い処理を事前に生成したコマンドよりも先に処理するようになり、割り込み的な処理を実現することができる。
【0016】
本実施の形態では、描画メモリ400に描画プロセッサ300が描画を行っているが、システムとしては描画メモリ400がなくシステムメモリ200に描画を行う場合も有効な構成である。
また、演算部100において描画領域を管理するウィンドウシステムが動作している場合には描画領域を考慮にいれた優先度付きコマンド生成を優先度付き描画コマンド生成手段101で行う。
図3は、この場合の描画イメージとキューの状態を示す説明図である。
図示のように、画面にウィンドウAとウィンドウBが設定される。ウィンドウAへのコマンドがコマンド1,コマンド2とし、ウィンドウBへのコマンドがコマンド3,コマンド4とし、キュー手段102にコマンド1から4まで順番に保持されているとする。この状況でウィンドウAに対する優先度の高いコマンド5が発生した場合、キュー手段102では、ウィンドウAへのコマンドであるコマンド2の後ろにコマンド5を挿入する。即ち、図3に示すように、ウィンドウを管理するシステムが動作している場合は、どのウィンドウに入っているかを検出するだけで、大まかな振り分けを行い、個々のコマンドの描画領域の重なり合いの検出は行わず処理を簡素化する。この際、ウィンドウ内のコマンドの描画領域の重なり合いを検出しないため、ウィンドウ内のコマンドはシーケンシャルに並べる必要があり、描画順序を保持してコマンド5はコマンド2の後に挿入されることになる。
【0017】
また、図3に示すように描画領域を管理するウィンドウシステムが動作している場合であっても、優先度の高い処理が描画コマンドである場合はウィンドウ内において描画領域の重なりを判定して更に描画の順番を上げることができる。図3のような場合、コマンド5の描画領域はコマンド1やコマンド2と重ならないので、コマンド1の前に挿入することが可能である。また、描画制御コマンドである場合は制御の対象となるコマンドの後ろに入れることで制御処理の順番を上げることができる。
【0018】
また、キュー手段102は、描画プロセッサ300への処理を受け付けた場合はコマンドを転送していくが、キュー手段102では所定のキューイング時間が設定されている。このキューイング時間内はコマンドをキュー手段102内に保持し、描画プロセッサ300へはコマンドを転送しない。このキューイング時間内は優先度の高いコマンドを受け付け、キュー手段102内に保持されているコマンド間で優先度処理が行われる。即ち、図4に示すように、コマンド1,2がキューイングされ、そのキューイング時間が経過すると、時刻T1で、コマンド1,2の処理が行われる。また、コマンド3,4のキューイング時間中に優先度の高いコマンド5が発生すると、コマンド処理はコマンド5が先頭となる(時刻T2)。このように、比較的描画時間のかかるコマンド3がキューイング時間内保持されているため、優先度の高いコマンド5をコマンド3の前に挿入することができ、優先度の高い処理の発生から実行までの時間を短くすることが可能になる。
【0019】
以上のように、実施の形態1の描画制御装置によれば、画面上に表示される各描画処理コマンドによる複数の描画領域に対して、描画優先順位を設定する優先度付き描画コマンド生成手段と、優先度付き描画コマンド生成手段から送られた描画処理コマンドを蓄積すると共に、蓄積中に、新たな描画処理コマンドが入力された場合は、新たな描画処理コマンドの優先度に応じて、描画処理コマンドの出力順を更新するキュー手段とを備えたので、ハードウェアが割り込み等に対応していない環境においても、優先度の高い処理が発生した時点から処理の実行開始までの時間を短縮することができる。
【0020】
また、実施の形態1の描画制御装置によれば、キュー手段は、優先順位の高い描画処理コマンドの描画領域の後側に描画される描画領域がある場合、優先順位の高い描画処理コマンドの描画領域の後側に重なっている描画領域の描画処理コマンドの後に、優先順位の高い描画処理コマンドを出力するようにしたので、描画領域が重なっている場合でも、正しい描画イメージを維持することができる。
【0021】
実施の形態2.
図5は、この発明の実施の形態2における描画制御装置を示すものである。
実施の形態2の描画制御装置は、演算部100aとして、実施の形態1の優先度付き描画コマンド生成手段101とキュー手段102の構成に加えて、実行時間テーブル103、最大処理時間レジスタ104、コマンド細分化手段105を設けたものである。実行時間テーブル103は、描画処理コマンド(描画コマンドや描画制御コマンド)毎の処理時間の値を保持するテーブルである。最大処理時間レジスタ104は、各描画処理コマンドに共通する最大処理時間の値を保持するレジスタである。コマンド細分化手段105は、優先度付き描画コマンド生成手段101が出力する描画処理コマンドに対して、実行時間テーブル103を参照してその描画処理コマンドの処理時間を求め、求めた処理時間が最大処理時間レジスタ104の最大処理時間を超えていた場合は、その描画処理コマンドを細分化するよう構成されている。その他の構成は実施の形態1と同様であるため、対応する部分に同一符号を付してその説明を省略する。
【0022】
次に、実施の形態2の描画制御装置の動作について説明する。
実行時間テーブル103には各処理コマンド(描画コマンドや描画制御コマンド)が必要とする処理時間をテーブル化して保持しており、描画処理コマンドから描画時間を読み出すことができる。描画面積や描画条件などが描画時間に関係するコマンドでは、単位あたりの描画時間が保持されており、描画面積や描画条件の係数を用いた演算により描画時間の見積もりができる。
【0023】
優先度付き描画コマンド生成手段101において優先度がつけられた描画処理コマンドはコマンド細分化手段105に入力される。このコマンド細分化手段105では描画処理コマンドがどのようなコマンドで構成されているかを解析し、実行時間テーブル103を参照することでコマンドが必要とする処理時間を見積もる。次に、この見積もり時間が最大処理時間レジスタ104に保持されている最大処理時間を超えるか否かを判定し、超える場合は、コマンドの細分化を行う。例えば、画面をクリアするコマンドの場合、クリアする領域を分割することで一つのコマンドにかかる時間を最大処理時間レジスタ104で示される時間内に抑える。これにより優先度の高い処理が発生した場合に、処理が実行されるまでのタイムラグを、最大処理時間レジスタ104に保持されている時間に抑えることができる。
【0024】
以上のように、実施の形態2の描画制御装置によれば、描画処理コマンド毎の処理時間の値を保持する実行時間テーブルと、各描画処理コマンドに共通する最大処理時間の値を保持する最大処理時間レジスタと、優先度付き描画コマンド生成手段が出力する描画処理コマンドに対して、実行時間テーブルを参照して描画処理コマンドの処理時間を求め、求めた処理時間が最大処理時間を超えていた場合は、描画処理コマンドを細分化するコマンド細分化手段とを備えたので、優先度の高い処理が発生した時点から処理の実行開始までの時間をより短縮することができる。
【0025】
実施の形態3.
図6は、この発明の実施の形態3における描画制御装置を示すものである。
実施の形態3の描画制御装置は、演算部100bとして、実施の形態1の優先度付き描画コマンド生成手段101とキュー手段102の構成に加えて、コマンド群化手段106を備えている。このコマンド群化手段106は、優先度付き描画コマンド生成手段101が出力する描画処理コマンドに対して、同一アプリケーションの描画処理コマンドをグループ化し、コマンド群としてキュー手段102に出力するよう構成されている。
【0026】
次に、実施の形態3の描画制御装置の動作について説明する。
描画プロセッサ300では、個々の描画処理コマンド(描画コマンドや描画制御コマンド)が送られて処理される場合よりも描画処理コマンド群としてまとめて処理するほうが高速に実行できる。しかしながら、複数のアプリケーションから発生させられた描画コマンドが、交互に並ぶ場合がある。これは、例えば、ウィンドウズ・アプリケーション(ウィンドウズは商標登録)のように、複数のウィンドウを開き、両ウィンドウ内でグラフィックスのアニメーションなどが表示されている場合に発生する。このような場合、二つのアプリケーションからアニメーションの描画コマンドが生成されキューに蓄積される。
【0027】
このように、描画コマンドが交互に並ぶ場合は、描画プロセッサのステイトをコマンド毎に切り替える必要があるといったことから効率が悪く性能が劣化する。尚、ここでステイトとは描画属性と呼ばれるものであり、ウィンドウ位置やサイズ、描画色、線種(実線/破線)といったものを指す。一般に、このような描画属性などは複数の描画コマンドにおいて同じものを使用することが多いため、描画コマンド毎に設定せず、同じ描画属性を使用する描画コマンドの先頭で実行する。途中で異なるアプリケーションの描画コマンドが割り込むと描画属性を頻繁に変える必要が発生してしまい、性能が劣化することになる。
【0028】
このため、同一のステイトで処理できるものをコマンド群としてまとめて処理するほうが高速に実行できる。この処理をコマンド群化手段106で実行する。例えば図7に示すように斜線の入ったアプリケーションAが発生させたコマンド1,3,5とアプリケーションBが発生させたコマンド2,4が交互に並んだ場合、コマンドが切り替わる毎にステイトを変更する必要がある。このため、コマンド群化手段106では、アプリケーションAのコマンド1,3,5と、アプリケーションBのコマンド2,4をコマンド群化する。これにより、ステイトの変更が少なくなり高速化が図れる。
【0029】
また、上記例では実施の形態1の構成に対してコマンド群化手段106を設けたが、図8に示すように、実施の形態2の構成に対してコマンド群化手段106を設けても良い。
図8に示す描画制御装置の演算部100cにおいて、実行時間テーブル103aは、描画処理コマンド毎の実行時間と共に、描画処理コマンド群の実行時間を保持する。最大処理時間レジスタ104aは、描画処理コマンドの最大処理時間と共に、描画処理コマンド群の最大処理時間の値を保持する。コマンド細分化手段105aは、コマンド群化手段106の出力に対して処理を行う。即ち、コマンド細分化手段105aは、コマンド群化手段106が出力する描画処理コマンドまたは描画処理コマンド群に対して、実行時間テーブル103aを参照してその描画処理コマンドまたは描画処理コマンド群の処理時間を求め、求めた処理時間が最大処理時間レジスタ104aの最大処理時間を超えていた場合は、描画処理コマンドまたは描画処理コマンド群を細分化する。
【0030】
以上のように、実施の形態3の描画制御装置によれば、優先度付き描画コマンド生成手段が出力する描画処理コマンドに対して、同一アプリケーションの描画処理コマンドをグループ化し、コマンド群としてキュー手段に出力するコマンド群化手段を備えたので、アプリケーションやタスクが異なるために発生するステイト変更回数を減らすことができ、その結果、高速な動作を行うことができる。
【0031】
また、実施の形態3の描画制御装置によれば、描画処理コマンドまたは描画処理コマンド群毎の処理時間の値を保持する実行時間テーブルと、各描画処理コマンドまたは描画処理コマンド群に共通する最大処理時間の値を保持する最大処理時間レジスタと、コマンド群化手段が出力する描画処理コマンドまたは描画処理コマンド群に対して、実行時間テーブルを参照して描画処理コマンドまたは描画処理コマンド群の処理時間を求め、求めた処理時間が最大処理時間を超えていた場合は、描画処理コマンドまたは描画処理コマンド群を細分化するコマンド細分化手段とを備えたので、優先度の高い処理が発生した場合に、発生から処理実行までのタイムラグを短くすることができる。
【符号の説明】
【0032】
100,100a,100b,100c 演算部、101 優先度付き描画コマンド生成手段、102 キュー手段、103,103a 実行時間テーブル、104,104a 最大処理時間レジスタ、105,105a コマンド細分化手段、106 コマンド群化手段、200 システムメモリ、300 描画プロセッサ、400 描画メモリ。

【特許請求の範囲】
【請求項1】
画面上に表示される各描画処理コマンドによる複数の描画領域に対して、描画優先順位を設定する優先度付き描画コマンド生成手段と、
優先度付き描画コマンド生成手段から送られた描画処理コマンドを蓄積すると共に、蓄積中に、新たな描画処理コマンドが入力された場合は、当該新たな描画処理コマンドの優先度に応じて、描画処理コマンドの出力順を更新するキュー手段とを備えた描画制御装置。
【請求項2】
キュー手段は、優先順位の高い描画処理コマンドの描画領域の後側に描画される描画領域がある場合、前記優先順位の高い描画処理コマンドの描画領域の後側に重なっている描画領域の描画処理コマンドの後に、前記優先順位の高い描画処理コマンドを出力することを特徴とする請求項1記載の描画制御装置。
【請求項3】
描画処理コマンド毎の処理時間の値を保持する実行時間テーブルと、
前記各描画処理コマンドに共通する最大処理時間の値を保持する最大処理時間レジスタと、
優先度付き描画コマンド生成手段が出力する描画処理コマンドに対して、前記実行時間テーブルを参照して当該描画処理コマンドの処理時間を求め、当該求めた処理時間が前記最大処理時間を超えていた場合は、前記描画処理コマンドを細分化するコマンド細分化手段とを備えたことを特徴とする請求項1または請求項2記載の描画制御装置。
【請求項4】
優先度付き描画コマンド生成手段が出力する描画処理コマンドに対して、同一アプリケーションの描画処理コマンドをグループ化し、コマンド群としてキュー手段に出力するコマンド群化手段を備えたことを特徴とする請求項1または請求項2記載の描画制御装置。
【請求項5】
描画処理コマンドまたは描画処理コマンド群毎の処理時間の値を保持する実行時間テーブルと、
各描画処理コマンドまたは描画処理コマンド群に共通する最大処理時間の値を保持する最大処理時間レジスタと、
コマンド群化手段が出力する描画処理コマンドまたは描画処理コマンド群に対して、前記実行時間テーブルを参照して当該描画処理コマンドまたは描画処理コマンド群の処理時間を求め、当該求めた処理時間が前記最大処理時間を超えていた場合は、前記描画処理コマンドまたは描画処理コマンド群を細分化するコマンド細分化手段とを備えたことを特徴とする請求項4記載の描画制御装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate