(57)【要約】  図形表示処理装置は、第１描画命令及び第２描画命令に基づくＧＰＵ命令を実行するグラフィックプロセッサ、第１描画命令及び第２描画命令を取得する取得部（１６０）、ＧＰＵ命令の実行に要するＧＰＵ予測処理時間を算出する予測部（１６４）、ＧＰＵ予測処理時間を用いて、第１描画命令及び第２描画命令のいずれを先に実行させるかを判断する判断部（１６３）、第１描画命令を先に実行させると判断する場合に、第１描画命令を発行させ、第２描画命令の発行を待機させるよう制御する発行制御部（１６６）、発行制御部（１６６）の制御により各描画命令を発行する命令発行部（１６５）及び発行された各描画命令を実行してＧＰＵ命令を生成するグラフィックスドライバ（１５３）を備える。
2014196140.tif 000002
【特許請求の範囲】
【請求項１】
即時表示を必要とする第１図形及び即時表示を必要としない第２図形を一のフレームに表示する図形表示処理装置であって、
前記第１図形の描画を指示する第１描画命令及び前記第２図形の描画を指示する第２描画命令を記憶しているプログラム記憶手段と、
各描画命令に基づいて生成されるＧＰＵ命令を実行することより、描画処理を行うグラフィックプロセッサと、
前記プログラム記憶手段から前記第１描画命令及び前記第２描画命令を取得する取得手段と、
取得された前記第１描画命令又は前記第２描画命令に基づいて生成されるＧＰＵ命令の実行により、前記グラフィックプロセッサにおける描画処理に要すると予測されるＧＰＵ予測処理時間を算出する予測手段と、
算出された前記ＧＰＵ予測処理時間を用いて、前記第１描画命令及び前記第２描画命令のいずれを先に実行させるかを判断する判断手段と、
前記第１描画命令を先に実行させると判断する場合に、前記第１描画命令を発行させ、前記第２描画命令の発行を待機させるよう制御する発行制御手段と、
前記発行制御手段による制御に従って、各描画命令を発行する命令発行手段と、
発行された各描画命令を実行することにより、ＧＰＵ命令を生成する命令実行手段と
を備えることを特徴とする図形表示処理装置。
【請求項２】
前記第２描画命令に基づく前記ＧＰＵ命令の実行前に、当該ＧＰＵ命令が実行されるべき一のフレーム表示単位時間内に、即時表示を必要としない第３図形の描画を指示する第３描画命令に基づいて生成されるＧＰＵ命令の実行が終了し、
前記予測手段は、前記第２描画命令に基づく前記ＧＰＵ命令の実行により予測される前記ＧＰＵ予測処理時間を算出し、
前記判断手段は、
前記グラフィックプロセッサにおける前記第３描画命令に基づく前記ＧＰＵ命令の実行に要したＧＰＵ累計処理時間を保持し、
前記ＧＰＵ累計処理時間と、算出された前記ＧＰＵ予測処理時間とを加算して、ＧＰＵ合計処理時間を算出し、
算出された前記ＧＰＵ合計処理時間と、前記フレーム表示単位時間内において、即時表示を必要としない図形のＧＰＵ命令による描画処理に許容される処理時間の制限値とを比較し、前記ＧＰＵ合計処理時間が前記制限値を超える場合に、前記第１描画命令を先に実行させると決定する
ことを特徴とする請求項１に記載の図形表示処理装置。
【請求項３】
前記予測手段は、前記第１描画命令に基づく前記ＧＰＵ命令の実行により予測される前記ＧＰＵ予測処理時間を算出し、
前記判断手段は、
前記第１描画命令に基づいて生成されたＧＰＵ命令の開始時刻を保持しており、
前記開始時刻から現在時刻までの経過時間を算出し、
前記ＧＰＵ予測処理時間から、算出された前記経過時間を差し引いて、ＧＰＵ残り処理時間を算出し、
算出された前記ＧＰＵ残り処理時間と、前記第１描画命令に割り当てられた優先閾値とを比較し、前記ＧＰＵ残り処理時間が前記優先閾値より小さい場合に、前記第１描画命令を先に実行させると決定する
ことを特徴とする請求項１に記載の図形表示処理装置。
【請求項４】
前記第１描画命令に基づく前記ＧＰＵ命令の実行前に、当該ＧＰＵ命令が実行されるべき一のフレーム表示単位時間内に、即時表示を必要とする第３図形の描画を指示する第３描画命令に基づいて生成されるＧＰＵ命令の実行が終了し、
前記予測手段は、前記第１描画命令に基づく前記ＧＰＵ命令の実行により予測される前記ＧＰＵ予測処理時間を算出し、
前記判断手段は、
前記グラフィックプロセッサにおける前記第３描画命令に基づく前記ＧＰＵ命令の実行に要したＧＰＵ累計処理時間を保持し、
前記ＧＰＵ累計処理時間と、算出された前記ＧＰＵ予測処理時間とを加算して、ＧＰＵ合計処理時間を算出し、
算出された前記ＧＰＵ合計処理時間と、前記第１描画命令に割り当てられた優先閾値とを比較し、前記ＧＰＵ予測処理時間が前記優先閾値より小さい場合に、前記第１描画命令を先に実行させると決定する
ことを特徴とする請求項１に記載の図形表示処理装置。
【請求項５】
前記予測手段は、さらに、取得された前記第１描画命令又は前記第２描画命令の実行により、前記命令実行手段における処理に要すると予測されるＣＰＵ予測処理時間を算出し、
前記判断手段は、前記判断において、算出された前記ＣＰＵ予測処理時間及び算出された前記ＧＰＵ予測処理時間を用いる
ことを特徴とする請求項１に記載の図形表示処理装置。
【請求項６】
前記第２描画命令の実行及び前記第２描画命令に基づく前記ＧＰＵ命令の実行前に、当該第２描画命令及び当該ＧＰＵ命令が実行されるべき一のフレーム表示単位時間内に、即時表示を必要としない第３図形の描画を指示する第３描画命令の実行及び当該第３描画命令に基づいて生成されるＧＰＵ命令の実行が終了し、
前記予測手段は、前記第２描画命令に基づく前記ＧＰＵ命令の実行により予測される前記ＧＰＵ予測処理時間を算出し、さらに、前記第２描画命令の実行により、前記命令実行手段における処理に要すると予測されるＣＰＵ予測処理時間を算出し、
前記判断手段は、
前記命令実行手段における前記第３描画命令の実行及び前記グラフィックプロセッサにおける前記第３描画命令に基づく前記ＧＰＵ命令の実行に要したＣＰＵＧＰＵ累計処理時間を保持し、
前記ＣＰＵＧＰＵ累計処理時間と、算出された前記ＣＰＵ予測処理時間と、算出された前記ＧＰＵ予測処理時間とを加算して、ＣＰＵＧＰＵ合計処理時間を算出し、
算出された前記ＣＰＵＧＰＵ合計処理時間と、前記フレーム表示単位時間内において、即時表示を必要としない図形の描画命令による処理及び前記描画命令に基づくＧＰＵ命令による描画処理に許容される処理時間の制限値とを比較し、前記ＣＰＵＧＰＵ合計処理時間が前記制限値を超える場合に、前記第１描画命令を先に実行させると決定する
ことを特徴とする請求項５に記載の図形表示処理装置。
【請求項７】
前記予測手段は、前記第１描画命令に基づく前記ＧＰＵ命令の実行により予測される前記ＧＰＵ予測処理時間を算出し、さらに、前記第１描画命令の実行により、前記命令実行手段における処理に要すると予測される前記ＣＰＵ予測処理時間を算出し、
前記判断手段は、
前記第１描画命令の開始時刻を保持しており、
前記開始時刻から現在時刻までの経過時間を算出し、
前記ＧＰＵ予測処理時間と前記ＣＰＵ予測処理時間とを加算して、加算値を算出し、
前記加算値から、算出された前記経過時間を差し引いて、ＣＰＵＧＰＵ残り処理時間を算出し、
算出された前記ＣＰＵＧＰＵ残り処理時間と、前記第１描画命令及び当該第１描画命令に基づくＧＰＵ命令に割り当てられた優先閾値とを比較し、前記ＣＰＵＧＰＵ残り処理時間が前記優先閾値より小さい場合に、前記第１描画命令を先に実行させると決定する
ことを特徴とする請求項５に記載の図形表示処理装置。
【請求項８】
前記第１描画命令の実行及び前記第１描画命令に基づく前記ＧＰＵ命令の実行前に、当該第１描画命令及び当該ＧＰＵ命令が実行されるべき一のフレーム表示単位時間内に、即時表示を必要とする第３図形の描画を指示する第３描画命令の実行及び当該第３描画命令に基づいて生成されるＧＰＵ命令の実行が終了し、
前記予測手段は、前記第１描画命令に基づく前記ＧＰＵ命令の実行により予測される前記ＧＰＵ予測処理時間を算出し、さらに、前記第１描画命令の実行により、前記命令実行手段における処理に要すると予測されるＣＰＵ予測処理時間を算出し、
前記判断手段は、
前記命令実行手段における前記第３描画命令の実行及び前記グラフィックプロセッサにおける前記第３描画命令に基づく前記ＧＰＵ命令の実行に要したＣＰＵＧＰＵ累計処理時間を保持し、
前記ＣＰＵＧＰＵ累計処理時間と、算出された前記ＣＰＵ予測処理時間と、算出された前記ＧＰＵ予測処理時間とを加算して、ＣＰＵＧＰＵ合計処理時間を算出し、
算出された前記ＣＰＵＧＰＵ合計処理時間と、前記第１描画命令及び当該第１描画命令に基づくＧＰＵ命令に割り当てられた優先閾値とを比較し、前記ＣＰＵＧＰＵ合計処理時間が前記優先閾値より小さい場合に、前記第１描画命令を先に実行させると決定する
ことを特徴とする請求項５に記載の図形表示処理装置。
【請求項９】
前記図形表示処理装置は、さらに、
前記判断手段により、前記第１描画命令を先に実行させると判断する場合に、前記第２描画命令の優先度より高くなるように、前記第１描画命令の優先度を設定する優先度設定手段と、
前記優先度設定手段により設定された優先度に従って、前記取得手段による取得を制御するタスクスケジューラ手段と
を備えることを特徴とする請求項１に記載の図形表示処理装置。
【請求項１０】
前記図形表示処理装置は、車両に設置され、
前記第１図形は、前記車両が走行する速度を表す図形、前記車両が備えるエンジン又はモータの回転数を表す図形、前記車両が備える機構、装置又は機械に係る警報を表す図形、又は、走行中の前記車両の周辺の交通状況に係る警報を表す図形であり、前記第２図形は、前記車両の運転者向けの案内用の地図図形である
ことを特徴とする請求項１に記載の図形表示処理装置。
【請求項１１】
即時表示を必要とする第１図形及び即時表示を必要としない第２図形を一のフレームに表示する図形表示処理装置において用いられる図形表示処理方法であって、
前記図形表示処理装置は、前記第１図形の描画を指示する第１描画命令及び前記第２図形の描画を指示する第２描画命令を記憶しているプログラム記憶手段と、各描画命令に基づいて生成されるＧＰＵ命令を実行することより、描画処理を行うグラフィックプロセッサとを備え、
前記図形表示処理方法は、
前記プログラム記憶手段から前記第１描画命令及び前記第２描画命令を取得し、
取得された前記第１描画命令又は前記第２描画命令に基づいて生成されるＧＰＵ命令の実行により、前記グラフィックプロセッサにおける描画処理に要すると予測されるＧＰＵ予測処理時間を算出し、
算出された前記ＧＰＵ予測処理時間を用いて、前記第１描画命令及び前記第２描画命令のいずれを先に実行させるかを判断し、
前記第１描画命令を先に実行させると判断する場合に、前記第１描画命令を発行させ、前記第２描画命令の発行を待機させるよう制御し、
前記制御に従って、各描画命令を発行し、
発行された各描画命令を実行することにより、ＧＰＵ命令を生成する
ことを特徴とする図形表示処理方法。
【請求項１２】
即時表示を必要とする第１図形及び即時表示を必要としない第２図形を一のフレームに表示する図形表示処理装置を構成する集積回路であって、
前記第１図形の描画を指示する第１描画命令及び前記第２図形の描画を指示する第２描画命令を記憶しているプログラム記憶手段と、
各描画命令に基づいて生成されるＧＰＵ命令を実行することより、描画処理を行うグラフィックプロセッサと、
前記プログラム記憶手段から前記第１描画命令及び前記第２描画命令を取得する取得手段と、
取得された前記第１描画命令又は前記第２描画命令に基づいて生成されるＧＰＵ命令の実行により、前記グラフィックプロセッサにおける描画処理に要すると予測されるＧＰＵ予測処理時間を算出する予測手段と、
算出された前記ＧＰＵ予測処理時間を用いて、前記第１描画命令及び前記第２描画命令のいずれを先に実行させるかを判断する判断手段と、
前記第１描画命令を先に実行させると判断する場合に、前記第１描画命令を発行させ、前記第２描画命令の発行を待機させるよう制御する発行制御手段と、
前記発行制御手段による制御に従って、各描画命令を発行する命令発行手段と、
発行された各描画命令を実行することにより、ＧＰＵ命令を生成する命令実行手段と
を備えることを特徴とする集積回路。
【請求項１３】
即時表示を必要とする第１図形及び即時表示を必要としない第２図形を一のフレームに表示する図形表示処理装置を備える車両であって、
前記図形表示処理装置は、
前記第１図形の描画を指示する第１描画命令及び前記第２図形の描画を指示する第２描画命令を記憶しているプログラム記憶手段と、
各描画命令に基づいて生成されるＧＰＵ命令を実行することより、描画処理を行うグラフィックプロセッサと、
前記プログラム記憶手段から前記第１描画命令及び前記第２描画命令を取得する取得手段と、
取得された前記第１描画命令又は前記第２描画命令に基づいて生成されるＧＰＵ命令の実行により、前記グラフィックプロセッサにおける描画処理に要すると予測されるＧＰＵ予測処理時間を算出する予測手段と、
算出された前記ＧＰＵ予測処理時間を用いて、前記第１描画命令及び前記第２描画命令のいずれを先に実行させるかを判断する判断手段と、
前記第１描画命令を先に実行させると判断する場合に、前記第１描画命令を発行させ、前記第２描画命令の発行を待機させるよう制御する発行制御手段と、
前記発行制御手段による制御に従って、各描画命令を発行する命令発行手段と、
発行された各描画命令を実行することにより、ＧＰＵ命令を生成する命令実行手段と
を備えることを特徴とする車両。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、即時表示を必要とする図形及び即時表示を必要としない図形を一のフレームに表示する技術に関する。
【背景技術】
【０００２】
図形を表示する多くのコンピュータシステムは、マイクロプロセッサなどの中央処理ユニット（ＣＰＵ）とともに、グラフィック処理ユニット（ＧＰＵ）を備えている。ＧＰＵは、多大な演算能力を必要とするグラフィックス演算を実行する（特許文献１〜４）。ＧＰＵに対してグラフィックス演算を分担させ、ＣＰＵに対してその他の計算を分担させることにより、コンピュータシステム全体としてのスループットを向上させている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】日本国特開２００６−１９０２８１号公報
【特許文献２】日本国特開２０１０−２８７２５４号公報
【特許文献３】日本国特開２０１２−６４２０６号公報
【特許文献４】日本国特開２０１３−２５８２３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
１個のＣＰＵと１個のＧＰＵを備えるコンピュータシステムにおいて、図形の表示処理をさせるため、２個のアプリケーションプログラムを動作させることがある。第１のアプリケーションプログラムは、例えば、自動車の速度計を、図形により表示するためのコンピュータプログラムである。このような図形は、即時表示を必要とする図形である。このような図形の表示に対して、即時性や緊急性が要求される。表示の遅延は、許されない。他方、第２のアプリケーションプログラムは、例えば、自動車の運転者に対して行き先の案内用の地図を、図形により表示するためのコンピュータプログラムである。このような図形は、即時表示を必要としない図形である。このような図形の表示に対して、即時性や緊急性は要求されない。【０００５】
各アプリケーションプログラムからＧＰＵに要求した描画命令は、ＧＰＵにおいて、要求された順番に処理される。このため、第２のアプリケーションプログラムの第２の描画命令のＧＰＵによる実行において、多大な時間を要した場合、第２の描画命令の実行の終了まで、第１のアプリケーションプログラムの第１の描画命令の実行が待たされる。このため、第２の描画命令の実行が終了した後、第１の描画命令の実行により表示された図形は、最新の状態を正しく表していないこととなるという問題がある。【０００６】
本開示の一態様は、即時表示を必要とする図形及び即時表示を必要としない図形を一のフレームに表示する場合に、即時表示を必要とする図形の表示性能を良好に保つことができる図形表示処理装置、図形表示処理方法及び図形表示処理装置を備える車両を提供する。
【課題を解決するための手段】
【０００７】
本開示の一態様に係る図形表示処理装置は、即時表示を必要とする第１図形及び即時表示を必要としない第２図形を一のフレームに表示する図形表示処理装置であって、第１図形の描画を指示する第１描画命令及び第２図形の描画を指示する第２描画命令を記憶しているプログラム記憶手段と、各描画命令に基づいて生成されるＧＰＵ命令を実行することより、描画処理を行うグラフィックプロセッサと、プログラム記憶手段から第１描画命令及び第２描画命令を取得する取得手段と、取得された第１描画命令又は第２描画命令に基づいて生成されるＧＰＵ命令の実行により、グラフィックプロセッサにおける描画処理に要すると予測されるＧＰＵ予測処理時間を算出する予測手段と、算出されたＧＰＵ予測処理時間を用いて、第１描画命令及び第２描画命令のいずれを先に実行させるかを判断する判断手段と、第１描画命令を先に実行させると判断する場合に、第１描画命令を発行させ、第２描画命令の発行を待機させるよう制御する発行制御手段と、発行制御手段による制御に従って、各描画命令を発行する命令発行手段と、発行された各描画命令を実行することにより、ＧＰＵ命令を生成する命令実行手段とを備えることを特徴とする。【０００８】
なお、これらの包括的または具体的な態様は、システム、方法、集積回路、コンピュータプログラム、または、記録媒体で実現されてもよく、システム、装置、方法、集積回路、コンピュータプログラムおよび記録媒体の任意な組み合わせで実現されてもよい。
【発明の効果】
【０００９】
本開示の一態様に係る図形表示処理装置は、即時表示を必要とする図形及び即時表示を必要としない図形を一のフレームに表示する場合に、即時表示を必要とする図形の表示性能を良好に保つことができる。
【図面の簡単な説明】
【００１０】
【図１】本実施の形態の図形表示処理装置１００を備える車両１０の一例を示す図である。
【図２】車両１０の運転席から見た表示部１１２の一例を示す図である。
【図３】図形表示処理装置１００の構成の一例を示すブロック図である。
【図４】図形表示処理装置１００の機能構成の一例を示すブロック図である。
【図５】帯域制御部１５２の機能構成の一例を示すブロック図である。
【図６】第１プログラム１１の内容の一例を示す図である。
【図７】ＧＰＵプログラムの内容の一例を示す図である。
【図８】コマンド待ち行列バッファ１５の一例を示す図である。
【図９】処理パラメタテーブル２００のデータ構造の一例を示す図である。
【図１０】処理判定テーブル３００のデータ構造の一例を示す図である。
【図１１】予測処理時間テーブル４００のデータ構造の一例を示す図である。
【図１２】タイミングパラメタテーブル５００のデータ構造の一例を示す図である。
【図１３】命令受信部１６１から描画命令を受け取った場合における、判断部１６３の動作の一例を示すフローチャート図である。
【図１４】命令監視部１６２から描画命令を受け取った場合における、判断部１６３の動作の一例を示すフローチャート図である。
【図１５】タイマ１５６から通知を受け取った場合における、判断部１６３の動作の一例を示すフローチャート図である。
【図１６】判断部１６３から通知を受け取った場合における、発行制御部１６６の動作の一例を示すフローチャート図である。
【図１７】命令発行部１６５から描画命令の発行の待ち合わせについて問い合わせを受けた場合における、発行制御部１６６の動作の一例を示すフローチャート図である。
【図１８】本実施の形態に記載した技術を適用しない場合の各描画命令におけるＣＰＵ描画処理及びＧＰＵ描画処理の一例を示すタイミングチャート図である。
【図１９】本実施の形態に記載した技術を適用した場合の各描画命令におけるＣＰＵ描画処理及びＧＰＵ描画処理の一例を示すタイミングチャート図である。
【図２０】本実施の形態に記載した技術を適用しない場合の各描画命令におけるＣＰＵ描画処理及びＧＰＵ描画処理の一例を示す別のタイミングチャート図である。
【図２１】本実施の形態に記載した技術を適用した場合の各描画命令におけるＣＰＵ描画処理及びＧＰＵ描画処理の一例を示す別のタイミングチャート図である。
【図２２】一つの変形例としての図形表示処理装置７０１の機能構成の一例を示すブロック図である。
【図２３】別の変形例としての図形表示処理装置７２１の機能構成の一例を示すブロック図である。
【発明を実施するための形態】
【００１１】
１．実施の形態
本開示の一実施の形態としての車両１０について説明する。
【００１２】
１．１  車両１０
図１は、本実施の形態の図形表示処理装置１００を備える車両１０の一例を示す図である。
【００１３】
車両１０は、図１に示すように、図形表示処理装置１００、温度センサ２０、回転数センサ３０、速度センサ４０及び燃料センサ５０を含んで構成されている。
【００１４】
図形表示処理装置１００については、後述する。温度センサ２０、回転数センサ３０、速度センサ４０及び燃料センサ５０は、それぞれ、エンジンの放熱用のラジエータにおいて用いられる冷却水の温度、車両１０のエンジン又はモータの回転数、車両１０が走行する速度及び車両１０の燃料の残量を計測するためのセンサである。
【００１５】
車両１０は、ガソリン車であるが、例えば、ハイブリッド車、電気自動車等であるとしてもよい。また、車両１０は、乗用車であるが、貨物自動車、ダンプカー等であるとしてもよいし、消防車や救急車などの特殊自動車等であるとしてもよい。また、車両１０は、電気機関車、ディーゼル機関車、電車、リニアモータカー等であるとしてもよい。また、車両ではなく、航空機や船舶等において、各種のセンサ及び図形表示処理装置１００を備えている、としてもよい。
【００１６】
図形表示処理装置１００は、即時表示を必要とする第１図形及び即時表示を必要としない第２図形を一のフレームに表示する。
【００１７】
図２は、車両１０の運転席から、ハンドル６０越しに見た図形表示処理装置１００の表示部１１２の一例を示す図である。この図に示すように、表示部１１２には、一のフレームにおいて、図形の描画により、回転数計１８１、速度計１８２、温度計１８３、燃料計１８４及び地図１８５が表示されている。
【００１８】
速度計１８２は、速度センサ４０から取得した車両１０の速度を、目盛りと針を用いて、アナログの計器のように、表示する図形である。同様に、回転数計１８１、温度計１８３及び燃料計１８４も、それぞれ、回転数センサ３０、温度センサ２０及び燃料センサ５０から取得した回転数、温度及び燃料の残量を表示する図形である。地図１８５は、車両１０の運転者を案内するために表示される地図図形である。
【００１９】
回転数計１８１及び速度計１８２は、即時表示を必要とする第１図形である。このような図形の表示に対して、即時性や緊急性が要求され、表示の遅延は、許されない。なお、即時表示を必要とする第１図形は、回転数計１８１及び速度計１８２には限定されない。第１図形は、例えば、自動車や列車が備える機構、装置、機械等に関する異常、車両１０の周辺の交通状況に関する異常などを警告又は警報として表示する図形であるとしてもよい。
【００２０】
他方、温度計１８３、燃料計１８４及び地図１８５は、即時表示を必要としない第２図形である。このような図形の表示に対して、即時性や緊急性は要求されない。なお、即時表示を必要としない第２図形は、温度計１８３、燃料計１８４及び地図１８５には限定されない。第２図形は、例えば、音楽再生装置を操作するための操作画面を表示する図形であるとしてもよい。音楽再生装置は、車両１０に備えられている。
【００２１】
１．２  図形表示処理装置１００の概要
ここでは、図形表示処理装置１００の概要について説明する。
【００２２】
図形表示処理装置１００は、後述する帯域制御部１５２を備える。帯域制御部１５２は、後述する第１プログラム１１及び第２プログラム１２にそれぞれ含まれる描画命令を後述するグラフィックスドライバ１５３に対して出力する。このとき、帯域制御部１５２は、即時表示の必要なプログラムからの描画命令を優先してグラフィックスドライバ１５３に対して出力する。即時表示の必要がないプログラムからの描画命令については、帯域制御部１５２は、即時表示の必要なプログラムの表示性能を保った上で、余った帯域で描画できるようにする。言い換えると、帯域制御部１５２は、即時表示の必要がない描画命令を待機させ、又は、描画命令の優先順位を調整して、グラフィックスドライバ１５３に対して描画命令を発行する。
【００２３】
グラフィックスドライバ１５３は、描画命令を解釈しＣＰＵ１２０で実行すべき処理を行う。次に、グラフィックスドライバ１５３は、解釈結果に従って、ＧＰＵ１２２で行うべき描画処理に対応するＧＰＵ命令（描画処理命令又は描画処理コマンドともいう）を生成する。この際、グラフィックスドライバ１５３は、データを加工処理し、生成した加工処理データをＧＰＵ命令と関連付ける。次に、グラフィックスドライバ１５３は、生成したＧＰＵ命令をコマンド待ち行列バッファ１５に格納する。
【００２４】
ＧＰＵ１２２は、コマンド待ち行列バッファ１５から受け取ったＧＰＵ命令に従って、描画処理を行い、描画結果としての描画イメージデータをフレームバッファ１５５に対して格納する。このとき、ＧＰＵ命令と関連付けられた加工処理データがあれば、ＧＰＵ１２２は、加工処理データを用いて、ＧＰＵ命令に従って、描画処理を行う。
【００２５】
表示部１２７は、フレームバッファ１５５に格納された描画イメージデータをフレームレートに従うタイミングで取り出し、表示する。
【００２６】
フレームバッファ１５５の内容は、例えば、１秒当たり、６０回程度（フレームレート）で更新される。しかし、ＣＰＵの処理負荷やＧＰＵの処理負荷が高い場合においては、更新速度が低下する。このため、利用者が、表示部１２７に表示された画像から、最新の情報を読み取ることができないという事態も発生する。
【００２７】
１．３  図形表示処理装置１００のハードウェア構成
図形表示処理装置１００は、図３に示すように、集積回路１１０、入力部１１１、表示部１１２、クロックジェネレータ１１３及びナビゲーション部１１４から構成されている。集積回路１１０は、この図に示すように、ＣＰＵ１２０、メモリ１２１、ＧＰＵ１２２、バス１２３、第１ＩＦ１２４、第２ＩＦ１２５、第３ＩＦ１２６及び第４ＩＦ１２７から構成されている。
【００２８】
バス１２３は、ＣＰＵ１２０、メモリ１２１、ＧＰＵ１２２、第１ＩＦ１２４、第２ＩＦ１２５、第３ＩＦ１２６及び第４ＩＦ１２７を相互に接続する。バス１２３は、ＣＰＵ１２０、メモリ１２１、ＧＰＵ１２２、第１ＩＦ１２４、第２ＩＦ１２５、第３ＩＦ１２６及び第４ＩＦ１２７の間において、信号の伝達を中継する。
【００２９】
メモリ１２１は、半導体メモリから構成され、メモリ１２１の一部は、フラッシュメモリから構成されている。また、メモリ１２１は、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）及びＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）を有する。メモリ１２１には、プログラム記憶部１５１、データ記憶部１５４及びフレームバッファ１５５が構成されている。
【００３０】
プログラム記憶部１５１には、ＣＰＵ１２０の動作を規定する第１プログラム１１、第２プログラム１２及びその他のプログラム、ＣＰＵ１２０の動作を規定する各プログラムが利用するデータ、ＧＰＵ１２２の動作を規定するプログラム及びＧＰＵ１２２の動作を規定するプログラムが利用するデータを記憶している。
【００３１】
データ記憶部１５４には、コマンド待ち行列バッファ１５及びその他のデータが保持される。
【００３２】
フレームバッファ１５５は、１つのフレームバッファメモリから構成されている。フレームバッファ１５５には、第１プログラム１１及び第２プログラム１２による１フレーム分の描画イメージデータが格納される。１フレーム分の描画イメージデータは、表示部１２７により表示される。
【００３３】
なお、フレームバッファ１５５は、第１フレームバッファメモリ及び第２フレームバッファメモリから構成されている、としてもよい。第１フレームバッファメモリには、第１プログラム１１による１フレーム分の描画イメージデータが格納される。第２フレームバッファメモリには、第２プログラム１２による１フレーム分の描画イメージデータが格納される。第１フレームバッファメモリに格納された描画イメージデータと、第２フレームバッファメモリに格納された描画イメージデータとは、フレームレートに従うタイミングで合成される。この結果、１フレーム分の描画イメージデータが生成される。表示部１１２は、合成により生成された１フレーム分の描画イメージデータを読み出して表示する、としてもよい。
【００３４】
第１ＩＦ１２４は、入力部１１１に接続され、入力部１１１との間で、信号の入出力を中継する。第２ＩＦ１２５は、表示部１１２に接続され、表示部１１２との間で、信号の入出力を中継する。第３ＩＦ１２６は、温度センサ２０、回転数センサ３０、速度センサ４０及び燃料センサ５０に接続され、温度センサ２０、回転数センサ３０、速度センサ４０及び燃料センサ５０との間で、信号の入出力を中継する。第４ＩＦ１２７は、ナビゲーション部１１４に接続され、ナビゲーション部１１４との間で、信号の入出力を中継する。
【００３５】
入力部１１１は、一例として、ハンドル６０の正面に設けられた複数のボタン等から構成されている。車両１０の運転者が各ボタンを操作すると、入力部１１１は、操作されたボタンに対応する操作信号を、第１ＩＦ１２４を介して、ＣＰＵ１２０に対して出力する。
【００３６】
表示部１１２は、一例として、液晶ディスプレイ等から構成されている。表示部１１２は、ＣＰＵ１２０により実行されるプログラムによる制御により、ＣＰＵ１２０から送られる信号に基づいて文字列、画像等を表示する。また、表示部１１２は、フレームバッファ１５５に格納されている１フレーム分の描画イメージデータを表示する。
【００３７】
ＣＰＵ１２０は、メモリ１２１に記憶されているプログラムを実行することにより、ＧＰＵ１２２、入力部１１１、表示部１１２及びクロックジェネレータ１１３を制御する。こうして、ＣＰＵ１２０は、図形表示処理装置１００を機能させる。特に、ＣＰＵ１２０は、メモリ１２１に記憶されるプログラムを実行することにより、ＧＰＵ１２２に対して、メモリ１２１に記憶されたプログラム及びデータを指定する。次に、ＣＰＵ１２０は、指定されたプログラム及びデータにより、ＧＰＵ１２２における実行を制御する。
【００３８】
ＧＰＵ１２２は、描画処理を行う。具体的には、各描画命令に基づいて生成されるＧＰＵ命令を実行し、メモリ１２１に格納されているデータを操作する。この結果、ＧＰＵ１２２は、文字列、画像等を表す描画イメージデータを生成する。生成した描画イメージデータデータをフレームバッファ１５５に書き込む。
【００３９】
ナビゲーション部１１４は、地図データを保持している。ナビゲーション部１１４は、車両１０の進行に合わせて、車両１０が存在する位置の近辺の地図データ及びその他の地図データを出力する。
【００４０】
１．４  図形表示処理装置１００の機能構成
ここでは、図形表示処理装置１００の機能面から見た構成について、図面を参照しながら説明する。
【００４１】
図形表示処理装置１００は、図４に示すように、プログラム記憶部１５１、帯域制御部１５２、グラフィックスドライバ１５３、データ記憶部１５４、ＧＰＵ１２２、フレームバッファ１５５、表示部１２７、タイマ１５６及びタスクスケジューラ１５７から構成されている。
【００４２】
（１）プログラム記憶部１５１
プログラム記憶部１５１は、第１プログラム１１、第２プログラム１２及びその他のコンピュータプログラムを記憶している。
【００４３】
第１プログラム１１は、即時表示を必要とする第１図形の描画を指示する第１描画命令を含むコンピュータプログラムである。言い換えると、第１プログラム１１は、例えば、表示が遅延しないようにする必要のあるプログラムである。表示が遅延しないとは、フレーム表示単位時間内に、フレームバッファ１５５において、１フレーム分の描画イメージデータを完成させる必要がある、ということである。動画において、単位時間あたり、複数のフレームが表示される。フレーム表示単位時間は、この単位時間である。第１プログラム１１は、ＣＰＵ１２０上で動作する。なお、第１プログラム１１に含まれる第１描画命令を、単に、描画命令又はＣＰＵ命令と呼ぶことがある。
【００４４】
一方、第２プログラム１２は、即時表示を必要としない第２図形の描画を指示する第２描画命令を含むコンピュータプログラムである。第２プログラム１２は、例えば、表示の遅延が許容されるプログラムである。表示の遅延が許容されるとは、例えば、フレーム表示単位時間内に、フレームバッファ１５５において、１フレーム分の描画イメージデータを完成させる必要がない、ということである。第２プログラム１２は、ＣＰＵ１２０上で動作する。なお、第２プログラム１２に含まれる第２描画命令を、単に、描画命令又はＣＰＵ命令と呼ぶことがある。
【００４５】
第１プログラム１１及び第２プログラム１２に含まれる描画命令は、描画命令読出部により、読み出される。描画命令読出部は、メモリ１２１に記憶されているコンピュータプログラムである。ＣＰＵ１２０がこのコンピュータプログラムを実行することにより、つまり、描画命令読出部により、第１プログラム１１及び第２プログラム１２から各描画命令が読み出される。次に、描画命令読出部により、読出された各描画命令は、帯域制御部１５２へ送られる。
【００４６】
（第１プログラム８００）
図６は、第１プログラム１１の内容の一例を示す図である。
【００４７】
第１プログラム１１の内容の一例である第１プログラム８００は、図６に一例として示すように、第１描画命令として、ＣＰＵ命令８０１、８０２、８０３、・・・、８０７を含んでいる。各ＣＰＵ命令は、ＣＰＵ１２０において実行される。
【００４８】
一例として、ＣＰＵ命令８０１は、表示シェーダプログラムの切り替えを指示する命令である。ＣＰＵ命令８０２は、表示シェーダプログラムに渡す定数値を設定する命令である。ＣＰＵ命令８０３は、パラメタデータバッファの切り替えを指示する命令である。ＣＰＵ命令８０４は、データを指定する命令である。ＣＰＵ命令８０５は、ＧＰＵ１２２に対して処理を指示する命令である。ＣＰＵ命令８０６は、ＧＰＵ１２２に実行要求した命令のすべての処理完了をＣＰＵ１２０が待ち合わせるための命令である。ＣＰＵ命令８０７は、フレームバッファの表示及び描画面を切り替える命令である。
【００４９】
ＣＰＵ命令８０４及び８０５は、オブジェクトの頂点に対応する数だけ繰り返される。
【００５０】
ＣＰＵ命令８０１からＣＰＵ命令８０６までは、描画するオブジェクトの数だけ繰り返される。例えば、速度計の目盛り、速度計の針及び速度計の針による影を表すオブジェクトを描画する場合、最初に、背景のオブジェクトを描画する。次に、速度計の針のオブジェクト（ここでは、描画しない）を生成する。次に、速度計の針による影のオブジェクトを生成して、生成した影のオブジェクトを描画する。最後に、生成した速度計の針のオブジェクトを描画する。速度計の針などのオブジェクトは、例えば、ＣＰＵ命令８０４及び８０５の繰り返しにより、複数の三角形を組み合わせた曲面を作成して描画される。
【００５１】
第１プログラム８００は、即時表示を必要とする第１図形であるオブジェクトの生成及び描画のためのコンピュータプログラムである。一方、即時表示を必要としない第２図形であるオブジェクトを生成及び描画するための第２プログラム１２においては、第１プログラム８００とは、描画対象となるオブジェクトが異なるだけである。例えば、第２プログラム１２により、即時表示を必要としない第２図形である地図を描画する場合、背景のオブジェクト、道路のオブジェクト、信号機のオブジェクトなどを生成し、描画する。第２プログラム１２においても、第１プログラム１１と同様の処理が行われる。
【００５２】
（ＧＰＵプログラム８５０）
次に、第１プログラム８００を実行することにより、生成されるＧＰＵプログラムの説明をする。図７は、生成されるＧＰＵプログラムの内容の一例を示す図である。
【００５３】
生成されるＧＰＵプログラムの内容の一例に対応するＧＰＵプログラム８５０は、図７に一例として示すように、ＧＰＵ命令８５１、８５２、８５３、・・・、８６０を含んでいる。各ＧＰＵ命令は、ＧＰＵ１２２において実行される。
【００５４】
ＧＰＵ命令８５１、８５３、８５５、８５６、８５８、８５９及び８６０は、ＧＰＵプログラムの実行を指示する命令である。ＧＰＵ命令８５２、８５４、８５７は、メモリの内容をコピーするための命令である。
【００５５】
特に、ＧＰＵ命令８５９は、ＣＰＵ１２０からＧＰＵ１２２への処理依頼キューが空になり、かつ処理が終わって、ＧＰＵ１２２が処理待ち状態になるのを待つための命令である。また、ＧＰＵ命令８６０は、ＧＰＵ１２２が次に描画の対象とするフレームバッファを指定する命令である。
【００５６】
ＧＰＵ命令８５４及び８５５のペアは、オブジェクトの頂点に対応する数だけ存在する。また、ＧＰＵ命令８５１から８５９までは、描画するオブジェクトの数だけ存在する。
【００５７】
なお、ＧＰＵプログラムに含まれる各ＧＰＵ命令は、グラフィックスドライバ１５３により生成される。グラフィックスドライバ１５３は、各ＧＰＵ命令を生成する都度、生成したＧＰＵ命令をデータ記憶部１５４のコマンド待ち行列バッファ１５に書き込む。
【００５８】
（２）帯域制御部１５２
帯域制御部１５２は、メモリ１２１に記憶されているコンピュータプログラムにより構成されている。ＣＰＵ１２０により、当該コンピュータプログラムがメモリ１２１から読み出され、当該コンピュータプログラムがＣＰＵ１２０により実行される。これにより、帯域制御部１５２は、機能する。
【００５９】
帯域制御部１５２は、例えば、第１プログラム１１に含まれる第１描画命令及び第２プログラム１２に含まれる第２描画命令を受け取る。帯域制御部１５２は、受け取った第１描画命令及び第２描画命令のいずれを優先してグラフィックスドライバ１５３に対して発行するかについての判断を行う。第２描画命令について、グラフィックスドライバ１５３に対して発行することを遅延、又はその第２描画命令の処理の優先順位を下げて実行させる。帯域制御部１５２の詳細については、後述する。
【００６０】
（３）グラフィックスドライバ１５３
グラフィックスドライバ１５３は、以下に示すようにして、発行された各描画命令を実行することにより、ＧＰＵ命令を生成する。
【００６１】
グラフィックスドライバ１５３は、メモリ１２１に記憶されているコンピュータプログラムにより構成されている。ＣＰＵ１２０により、当該コンピュータプログラムがメモリ１２１から読み出され、当該コンピュータプログラムがＣＰＵ１２０により実行される。これにより、グラフィックスドライバ１５３は、機能する。
【００６２】
グラフィックスドライバ１５３は、帯域制御部１５２から受け取った第１プログラム１１に含まれる第１描画命令及び第２プログラム１２に含まれる第２描画命令を解釈する。次に、グラフィックスドライバ１５３は、ＣＰＵ１２０で実行すべき処理を行った上で、解釈された結果に従ってＧＰＵ１２２で行うべき描画処理に対応するＧＰＵ命令を生成する。ＧＰＵ命令は、描画処理命令又は描画処理コマンドとも呼ばれる。次に、グラフィックスドライバ１５３は、生成したＧＰＵ命令を、生成した順序に従って、コマンド待ち行列バッファ１５に書き込む。
【００６３】
このとき、ＣＰＵ１２０で実行すべき処理とは、例えば、データをＧＰＵ１２２で処理できるように加工処理することである。データは、例えば、メモリ１２１に記憶されている。
【００６４】
以後、グラフィックスドライバ１５３が描画命令を解釈し、ＣＰＵ１２０で実行すべき処理を行うことを、描画命令をＣＰＵ１２０で実行すると称する。
【００６５】
ここで、グラフィックスドライバ１５３がＣＰＵ命令からＧＰＵ命令を生成する手順の一例について、図６に示す第１プログラム８００に含まれるＣＰＵ命令を用いて説明する。
【００６６】
（ａ）ＣＰＵ命令８０１に対する処理
ＣＰＵ命令８０１「glUseProgram()」には、ＧＰＵ１２２で実行できるプログラムのうち、どのプログラムを用いるのかに関する情報が含まれている。
【００６７】
グラフィックスドライバ１５３がＣＰＵ命令８０１を実行する。これにより、グラフィックスドライバ１５３は、ＣＰＵ命令８０１を、ＧＰＵ１２２で呼び出すＧＰＵ命令８５１（GpuFuncCall）に変換する。ＧＰＵ命令８５１を図７に示す。このとき、引数として、呼び出すべきプログラムを指定する。図７のＧＰＵ命令８５１においては、ＧＰＵ１２２上で呼び出すべきプログラムの一例を "swichProgram"としている。
【００６８】
（ｂ）ＣＰＵ命令８０２に対する処理
グラフィックスドライバ１５３は、ＣＰＵ命令８０２を実行する。これにより、グラフィックスドライバ１５３は、ＣＰＵ命令８０２を、ＧＰＵ命令８５２（Gpumemcpy）に変換する。ＧＰＵ命令８５２（Gpumemcpy）は、表示シェーダプログラムに渡す定数値設定に関する情報を、ＧＰＵ１２２で利用するメモリに転送する命令である。表示シェーダプログラムは、ＣＰＵ１２０により利用するメモリに格納され、ＧＰＵ１２２上で動作する。ＧＰＵ命令８５２において指定される引数は、ＣＰＵ命令８０２（glUniform()）のプログラムに含まれている。
【００６９】
ＧＰＵ命令８５２における引数の意味は、以下の通りである。
【００７０】
GPUMemoryAddress：転送先のGPUMemoryのアドレス
CPUMemoryAddress：転送元のCPUMemoryのアドレス
Size：転送するデータのサイズ
CPUtoGPU：CPUからGPUへの転送であること
（ｃ）ＣＰＵ命令８０３に対する処理
グラフィックスドライバ１５３は、ＣＰＵ命令８０３を実行する。これにより、グラフィックスドライバ１５３は、ＣＰＵ命令８０３を、ＧＰＵ命令８５３（GpuFuncCall(bufferareaswitch)）に変換する。ＧＰＵ命令８５３（GpuFuncCall(bufferareaswitch)）は、ＧＰＵ１２２で利用するメモリの中のいずれかエリアのメモリへ切り換える処理を行う。
【００７１】
図７に示すように、ＧＰＵ命令８５３の引数として、エリアを切り換える命令(bufferareaswitch）が指定される。
【００７２】
（ｄ）ＣＰＵ命令８０４に対する処理
グラフィックスドライバ１５３は、ＣＰＵ命令８０４を実行する。これにより、グラフィックスドライバ１５３は、ＧＰＵ１２２上で利用できるデータエリアの中のどのデータを使うかを算出し、その結果をＣＰＵ１２０で利用するメモリに格納する。次に、グラフィックスドライバ１５３は、ＣＰＵ命令８０４を、格納したデータをＧＰＵ１２２で利用するメモリに転送するＧＰＵ命令８５４（Gpumemcpy）に変換する。
【００７３】
ＧＰＵ命令８５４の引数の意味は、以下の通りである。
【００７４】
GPUMemoryAddress：転送先のGPUMemoryのアドレス
CPUMemoryAddress：転送元のCPUMemoryのアドレス
Size：転送するデータのサイズ
CPUtoGPU：CPUからGPUへの転送であること
なお、グラフィックスドライバ１５３は、次の命令で使用する頂点座標データそのものをＣＰＵ１２０で計算し、その結果をＣＰＵ１２０で利用するメモリに格納する。グラフィックスドライバ１５３は、格納したデータをＧＰＵ１２２で利用するメモリに転送するGPU命令（Gpumemcpy）に変換する場合もある。
【００７５】
（ｅ）ＣＰＵ命令８０５に対する処理
グラフィックスドライバ１５３は、ＣＰＵ命令８０５を実行する。これにより、グラフィックスドライバ１５３は、ＣＰＵ命令８０５をＧＰＵ命令８５５（GpuFuncCall(StartShader、多重実行)）に変換する。ＧＰＵ命令８５５は、１行上のＣＰＵ命令８０４（glVertexAttribPointer()）の実行により、ＧＰＵ１２２が利用するメモリに転送された頂点座標データを用いて、ＧＰＵ１２２上で処理すべきプログラムを呼び出して実行する命令である。
【００７６】
ＧＰＵ命令８５５の引数は以下の通りである。
【００７７】
StartShader：glUseProgram ()の引数で指定したＧＰＵ１２２のプログラム(Shaderプログラム)の開始を指示する。
【００７８】
多重実行：Shaderプログラムは、主として行列演算を行う。ＧＰＵ１２２内には、行列演算を並列処理できる複数のプロセッサがある。ここでは、並列処理に用いるプロセッサの数を指定する
（ｆ）ＣＰＵ命令８０６に対する処理
グラフィックスドライバ１５３は、ＣＰＵ命令８０６を実行する。これにより、ＣＰＵ１２０からＧＰＵ１２２へのＧＰＵ命令の待ち行列バッファが空になり、かつ、ＧＰＵ命令の処理が完了するのをＣＰＵ１２０が待つ。処理プログラムを切り替えるために、この待ち合わせが行われる。
【００７９】
グラフィックスドライバ１５３は、ＧＰＵ命令の処理の完了を待つため、ＧＰＵ１２２の処理がIdleになることを待つＧＰＵ命令８５９（GpuFuncCall(WaitGPUIdle)）を発行し、ＣＰＵ１２０は、ＧＰＵ命令の処理が完了するのを待つ。
【００８０】
（ｇ）ＣＰＵ命令８０７に対する処理
グラフィックスドライバ１５３は、ＣＰＵ命令８０７を実行する。これにより、グラフィックスドライバ１５３は、ＣＰＵ命令８０７を、フレームバッファを切り換えるためのプログラムを呼び出すＧＰＵ命令８６０（GpuFuncCall(AttachFrameBuffer)）に変換する。ここで、AttachFrameBufferには、次に描画に使用するフレームバッファのメモリアドレスなどを引数として指定する。また、その後、ＣＰＵ１２０は、画面を表示するための第２ＩＦ１２５（例えば、DVIやHDMI（登録商標）など）に対して、表示するためのフレームバッファのアドレスを指定する処理を行う。
【００８１】
（４）コマンド待ち行列バッファ１５
コマンド待ち行列バッファ１５は、ＧＰＵ命令及び加工処理データを関連付けて保持及び管理するメモリである。コマンド待ち行列バッファ１５は、グラフィックスドライバ１５３からＧＰＵ命令が出力された時間的な順序どおりに、ＧＰＵ１２２が描画処理コマンドを読み取り、実行できるようにする。
【００８２】
図８は、コマンド待ち行列バッファ１５に記憶されているＧＰＵ命令の一例を示す図である。
【００８３】
この図に示すように、コマンド待ち行列バッファ１５には、ＧＰＵ命令５０１「１Ａ」、ＧＰＵ命令５０２「２Ａ」、ＧＰＵ命令５０３「１Ｂ」、ＧＰＵ命令５０４「２Ｂ」、ＧＰＵ命令５０５「１Ｃ」及びＧＰＵ命令５０６「２Ｃ」がこの順序で格納されている。
【００８４】
第１プログラム１１及び第２プログラム１２が並列して処理された場合、例えば、この図に示すように、第１プログラム１１及び第２プログラム１２を起源として、それぞれ、ＣＰＵ命令に対応するＧＰＵ命令が交互にグラフィックスドライバ１５３を通してコマンド待ち行列バッファ１５に格納される。ＧＰＵ１２２は、コマンド待ち行列バッファ１５に入れられた時間的な順番でＧＰＵ命令の実行を行う。
【００８５】
コマンド待ち行列バッファ１５は、グラフィックスドライバ１５３から、第１プログラム１１及び第２プログラム１２を起源とするＧＰＵ命令を受け取る。第１プログラム１１を起源とするＧＰＵ命令は、ＧＰＵ命令５０１「１Ａ」、ＧＰＵ命令５０３「１Ｂ」及びＧＰＵ命令５０５「１Ｃ」である。第２プログラム１２を起源とするＧＰＵ命令は、ＧＰＵ命令５０２「２Ａ」、ＧＰＵ命令５０４「２Ｂ」及びＧＰＵ命令５０６「２Ｃ」である。
【００８６】
ＧＰＵ１２２により、ＧＰＵ命令５０１「１Ａ」、ＧＰＵ命令５０３「１Ｂ」及びＧＰＵ命令５０５「１Ｃ」の３つのＧＰＵ命令が完了すると、第１プログラム１１について、１フレーム分の描画イメージデータの描画が完成する。
【００８７】
ＧＰＵ１２２により、ＧＰＵ命令５０２「２Ａ」、ＧＰＵ命令５０４「２Ｂ」及びＧＰＵ命令５０６「２Ｃ」の３つのＧＰＵ命令が完了すると、第２プログラム１２について、１フレーム分の描画イメージデータの描画が完成する。
【００８８】
（５）ＧＰＵ１２２
ＧＰＵ１２２は、コマンド待ち行列バッファ１５からＧＰＵ命令を受け取る。ＧＰＵ１２２は、ＧＰＵ命令に関連する加工処理データを用いてＧＰＵ命令に対応する描画処理を行う。その結果、ＧＰＵ１２２は、描画イメージデータを生成する。次に、ＧＰＵ１２２は、描画処理の結果である描画イメージデータをフレームバッファ１５５へ出力する。
【００８９】
例えば、ＧＰＵ命令に関連する描画処理に対応するコンピュータプログラムがメモリ１２１に記憶されている。ＧＰＵ１２２がＧＰＵ命令を受け取ると、関連する描画処理に対応する当該コンピュータプログラムがＧＰＵ１２２により実行される。
【００９０】
（６）フレームバッファ１５５
フレームバッファ１５５は、描画処理の結果である１フレーム分の描画イメージデータを保持するメモリである。
【００９１】
（７）表示部１１２
表示部１１２は、フレームバッファ１５５に保持された１フレーム分の描画イメージデータをフレームレートに基づくタイミングで読み取り、読み取った１フレーム分の描画イメージデータを表示する。
【００９２】
（８）タイマ１５６
タイマ１５６は、時間を管理し、現在の時刻を返す機能と、指定された時間の間、待機し、時間経過後に信号を返す機能とを持つ。
【００９３】
タイマ１５６は、判断部１６３から監視周期時間を受け取り、内部に監視周期時間をセットする。監視周期時間は、フレーム表示単位時間に等しい。この時点から、タイマ１５６は、単位時刻ごとに、内部にセットした監視周期時間から単位時間を差し引くことにより、監視周期時間の経過を監視する。ここで、単位時間は、例えば、０．０１ミリ秒である。なお、単位時間は、上記のフレーム表示単位時間とは異なるものである。監視周期時間が「０」になると、監視周期期間の終了とみなして、監視周期期間の終了を判断部１６３に通知する。監視周期時間が終了すると、タイマ１５６は、判断部１６３から監視周期時間を受け取り、内部にセットする。こうして、タイマ１５６は、周期監視時間の経過の監視を繰り返す。
【００９４】
（９）タスクスケジューラ１５７
タスクスケジューラ１５７は、優先度設定部１６７により設定された優先度に基づき、複数のプログラムからの描画命令の実行の順序を決定し、決定した順序に従って、描画命令を実行させる。
【００９５】
１．５  帯域制御部１５２
帯域制御部１５２は、図５に示すように、取得部１６０、判断部１６３、予測部１６４、命令発行部１６５、発行制御部１６６、優先度設定部１６７から構成されている。取得部１６０は、命令受信部１６１及び命令監視部１６２を含む。
【００９６】
帯域制御部１５２は、即時表示を必要とする第１プログラム１１の描画命令による図形の表示性能を良好に保つことができるように、第１プログラム１１の描画命令による描画処理の状況を監視しながら、第２プログラム１２の描画命令について、ＣＰＵ処理の優先度を変更し、又は、描画命令の発行自体を遅延又は待機させる。描画処理の状況の監視は、例えば、フレームバッファ１５５の描画を更新するフレーム表示時間単位（フレームレートに対応する時間単位）で行う。
【００９７】
帯域制御部１５２は、第１プログラム１１が１フレーム分の描画処理を一定のフレーム表示単位時間（通常、フレームレートの逆数＝１／６０秒を用いる）内で完了できるように、フレーム表示単位時間内における利用可能な総処理時間から、第１プログラムの描画命令に基づいてフレームバッファ１５５内に１フレーム分の描画イメージデータを完成するために必要なＣＰＵ処理時間及びＧＰＵ処理時間を差し引いた残りの処理時間内で、第２プログラム１２が描画処理を行うように、フレーム表示単位時間の周期で監視を行う。
【００９８】
（１）命令監視部１６２
命令監視部１６２は、第１プログラム１１から第１描画命令を受け取る。次に、命令監視部１６２は、判断部１６３に対して受け取った第１描画命令を出力し、第２プログラム１２の第２描画命令との処理順序の調整を依頼する。次に、命令監視部１６２は、受け取った第１描画命令を、グラフィックスドライバ１５３に出力する。
【００９９】
（２）命令受信部１６１
命令受信部１６１は、第２プログラム１２から第２描画命令を受け取る。次に、命令受信部１６１は、判断部１６３に対して受け取った第２描画命令を出力し、第１プログラム１１の第１描画命令との処理順序の調整を依頼する。次に、命令受信部１６１は、受け取った第２描画命令を、命令発行部１６５に出力する。
【０１００】
（３）判断部１６３
判断部１６３は、以下に示すようにして、算出されたＣＰＵ又はＧＰＵ予測処理時間を用いて、第１描画命令及び第２描画命令のいずれを先に実行させるかを判断する。
【０１０１】
判断部１６３は、図９に示す処理パラメタテーブル２００及び図１０に示す処理判定テーブル３００を有する。
【０１０２】
（処理パラメタテーブル２００）
図９は、処理パラメタテーブル２００のデータ構造の一例を示す図である。
【０１０３】
処理パラメタテーブル２００は、図９に示すように、一例として、ＣＰＵＧＰＵ累計処理時間２１０、ＧＰＵ累計処理時間２１１、第１プログラムＣＰＵ予測処理時間２１２、第１プログラムＧＰＵ予測処理時間２１３、第１プログラム処理開始時刻２１４、第２プログラムＣＰＵ予測処理時間２１５、第２プログラムＧＰＵ予測処理時間２１６、第２プログラム処理開始時刻２１７、・・・、ＣＰＵ予測残り処理時間２１８、ＧＰＵ予測残り処理時間２１９及び現在時刻２２０を含む。
【０１０４】
なお、図形表示処理装置１００において動作する図形を表示するプログラムが増えた場合には、増えたプログラムについて、処理パラメタテーブル２００は、プログラムＣＰＵ予測処理時間、プログラムＧＰＵ予測処理時間及びプログラム処理開始時刻を含むとしてもよい。
【０１０５】
ＣＰＵＧＰＵ累計処理時間２１０は、監視の対象となるフレーム表示単位時間内において、監視開始以降、第２プログラム１２による描画処理に使用したＣＰＵ処理時間及びＧＰＵ処理時間の合計値を格納する。
【０１０６】
ＧＰＵ累計処理時間２１１は、監視の対象となるフレーム表示単位時間内において、監視開始以降、第２プログラムによる描画処理に使用したＧＰＵ処理時間の合計値を格納する。
【０１０７】
第１プログラムＣＰＵ予測処理時間２１２は、第１プログラム１１から出力された第１描画命令をＣＰＵ１２０において処理するために必要と予測される時間を格納する。
【０１０８】
第１プログラムＧＰＵ予測処理時間２１３は、第１プログラム１１から出力された第１描画命令に基づくＧＰＵ命令をＧＰＵ１２２において処理するために必要と予測される時間を格納する。
【０１０９】
第１プログラム処理開始時刻２１４は、第１プログラム１１から出力された第１描画命令に基づく実行を開始した時刻を格納する。
【０１１０】
第２プログラムＣＰＵ予測処理時間２１５は、第２プログラム１２から出力された第２描画命令をＣＰＵ１２０において処理するために必要と予測される時間を格納する。
【０１１１】
第２プログラムＧＰＵ予測処理時間２１６は、第２プログラム１２から出力された第２描画命令に基づくＧＰＵ命令をＧＰＵ１２２において処理するために必要と予測される時間を格納する。
【０１１２】
第２プログラム処理開始時刻２１７は、第２プログラム１２から出力された第２描画命令に基づく実行を開始した時刻を格納する。なお、第２プログラム１２の第２描画命令を遅延させるときには、第２プログラム処理開始時刻２１７は、処理を再開するまで「０」を格納する。
【０１１３】
ＣＰＵ予測残り処理時間２１８は、実行中の第１プログラム１１の第１描画命令について、現在時刻から、第１描画命令の実行をＣＰＵ１２０が完了するまでに必要と予測される時間を格納する。
【０１１４】
ＧＰＵ予測残り処理時間２１９は、実行中の第１プログラム１１の第１描画命令に基づくＧＰＵ命令について、現在時刻からＧＰＵ命令に対応するＧＰＵ描画処理をＧＰＵ１２２が完了するまでに必要と予測される時間を格納する。
【０１１５】
現在時刻２２０は、タイマ１５６より取得した現在時刻を一時的に格納する。
【０１１６】
（処理判定テーブル３００）
図１０は、処理判定テーブル３００のデータ構造の一例を示す図である。
【０１１７】
処理判定テーブル３００は、図１０に示すように、一例として、監視周期時間３１０、ＣＰＵＧＰＵ処理時間制限値３１１、ＧＰＵ処理時間制限値３１２、ＣＰＵＧＰＵ処理優先時間３１３及びＧＰＵ処理優先時間３１４を含んでいる。
【０１１８】
監視周期時間３１０には、帯域制御部１５２が監視する周期、言い換えると、フレーム表示単位時間が設定されている。例えば、監視周期時間３１０には、１／６０秒などが設定される。１／６０秒は、表示デバイスの描画周期に相当する。
【０１１９】
ＣＰＵＧＰＵ処理時間制限値３１１には、監視周期時間３１０において、第２プログラム１２が描画処理に使用可能なＣＰＵ処理時間及びＧＰＵ処理時間の合計値が設定されている。例えば、ＣＰＵＧＰＵ処理時間制限値３１１には、監視周期時間３１０に図形表示処理装置１００に固有の一定割合をかけた値から、第１プログラム１１が１フレームの描画処理に必要なＣＰＵ処理時間と、ＧＰＵ処理時間と、若干の余裕時間とを差し引いた値が設定されている。
【０１２０】
（ＣＰＵＧＰＵ処理時間制限値３１１）＝（監視周期時間３１０×固有の一定割合）−（ＣＰＵ処理時間）−（ＧＰＵ処理時間）−（若干の余裕時間）
ＧＰＵ処理時間制限値３１２には、監視周期時間３１０において、第２プログラム１２による描画処理に使用可能なＧＰＵ処理時間の合計値が設定される。例えば、ＧＰＵ処理時間制限値３１２には、監視周期時間３１０に図形表示処理装置１００に固有の一定割合をかけた値から、第１プログラム１１が１画面の描画処理に必要なＧＰＵ処理時間と、若干の余裕時間とを差し引いた値を設定する。
【０１２１】
（ＧＰＵ処理時間制限値３１２）＝（監視周期時間３１０×固有の一定割合）−（ＧＰＵ処理時間）−（若干の余裕時間）
なお、処理時間制限値を、制限値と呼ぶこともある。
【０１２２】
ＣＰＵＧＰＵ処理優先時間３１３には、第１の閾値が設定されている。第１プログラム１１から出力される１個の第１描画命令の実行に要するＣＰＵ処理時間とＧＰＵ処理時間の合計値と第１の閾値とが比較される。合計値がこの第１の閾値より小さい場合には、第２プログラム１２の第２描画命令が実行待ちであったとしても、描画命令間の依存関係による第１プログラム１１の描画処理の遅延を防ぐために、第２プログラム１２の第２描画命令よりも、第１プログラム１１の第１描画命令を先に実行させる。
【０１２３】
ＧＰＵ処理優先時間３１４には、第２の閾値が設定されている。第１プログラム１１から出力される１個の第１描画命令の実行に要するＧＰＵ処理時間と第２の閾値とが比較される。ＧＰＵ処理時間がこの第２の閾値より小さい場合には、第２プログラム１２の第２描画命令が実行待ちであったとしても、描画命令間の依存関係による第１プログラム１１の第１描画処理の遅延を防ぐために、第２プログラム１２の第２描画命令よりも、第１プログラム１１の第１描画命令を先に実行させる。
【０１２４】
なお、各処理優先時間を、優先閾値と呼ぶこともある。
【０１２５】
（判断部１６３の機能）
判断部１６３は、命令監視部１６２及び命令受信部１６１からそれぞれ描画命令を受け取る。描画命令を受け取ると、判断部１６３は、それぞれの描画命令を予測部１６４に出力する。次に、判断部１６３は、それぞれ描画命令のＣＰＵ１２０の処理に要する予測処理時間及びＧＰＵ１２２の処理に要する予測処理時間を予測部１６４に問い合わせる。
【０１２６】
次に、判断部１６３は、予測部１６４から、それぞれの描画命令のＣＰＵ１２０の処理に要する予測処理時間及びＧＰＵ１２２の処理に要する予測処理時間を受け取る。判断部１６３は、命令監視部１６２からの描画命令のＣＰＵ１２０の処理に要する予測処理時間を第１プログラムＣＰＵ予測処理時間２１２として処理パラメタテーブル２００に書き込む。また、判断部１６３は、命令監視部１６２からの描画命令のＧＰＵ１２２の処理に要する予測処理時間を第１プログラムＧＰＵ予測処理時間２１３として処理パラメタテーブル２００に書き込む。また、判断部１６３は、命令受信部１６１からの描画命令のＣＰＵ１２０の処理に要する予測処理時間を第２プログラムＣＰＵ予測処理時間２１５として処理パラメタテーブル２００に書き込む。また、判断部１６３は、命令受信部１６１からの描画命令のＧＰＵ１２２の処理に要する予測処理時間を第２プログラムＧＰＵ予測処理時間２１６として処理パラメタテーブル２００に書き込む。
【０１２７】
判断部１６３は、命令監視部１６２から描画命令を受け取った場合には、タイマ１５６に対して現在時刻を問い合わせる。次に、判断部１６３は、タイマ１５６から現在時刻を受け取る。次に、判断部１６３は、受け取った現在時刻を、現在時刻２２０として、処理パラメタテーブル２００に書き込む。
【０１２８】
判断部１６３は、それぞれの描画命令のそれぞれの予測処理時間により、処理判定テーブル３００を用いて、第２プログラム１２からの描画命令を実行すべきか、待たせるべきかを判断する。次に、判断部１６３は、判断結果を発行制御部１６６に通知する。
【０１２９】
判断部１６３は、命令監視部１６２から第１プログラム１１の第１描画命令を受け取った場合、受け取った第１描画命令のＣＰＵ１２０における描画処理が、第２プログラム１２の第２描画命令のＣＰＵ１２０における描画処理より先に、処理されるように、優先度設定部１６７に指示する。
【０１３０】
（４）予測部１６４
予測部１６４は、以下に示すようにして、第１描画命令又は第２描画命令の実行により、ＣＰＵ１２０における処理に要すると予測されるＣＰＵ予測処理時間を算出する。また、予測部１６４は、第１描画命令又は第２描画命令に基づいて生成されるＧＰＵ命令の実行により、ＧＰＵ１２２における描画処理に要すると予測されるＧＰＵ予測処理時間を算出する。
【０１３１】
図１１は、予測処理時間テーブル４００のデータ構造の一例を示す図である。
【０１３２】
予測部１６４は、一例として、図１１に示す予測処理時間テーブル４００を保持している。この図に示すように、予測処理時間テーブル４００は、複数の予測処理時間情報を記録するための領域を備えている。各予測処理時間情報は、命令種別、ＣＰＵ予測処理時間及びＧＰＵ予測処理時間を対応付けて含む。
【０１３３】
命令種別は、第１プログラム１１又は第２プログラムからの描画命令の種別を示す。予測部１６４は、判断部１６３から受け取った描画命令がどの命令種別と一致するかを判断する。
【０１３４】
ＣＰＵ予測処理時間は、対応する命令種別により示される描画命令がＣＰＵ１２０において実行された場合に、この描画命令の処理のために要すると予測される予測処理時間である。ＣＰＵ予測処理時間の単位は、一例として、ミリ秒である。
【０１３５】
ＧＰＵ予測処理時間は、対応する命令種別により示される描画命令に対応するＧＰＵ命令がＧＰＵ１２２において実行された場合に、このＧＰＵ命令の処理のために要すると予測される予測処理時間である。ＧＰＵ予測処理時間の単位は、一例として、ミリ秒である。
【０１３６】
予測処理時間テーブル４００は、図１１に示すように、一例として、予測処理時間情報４１３を含む。予測処理時間情報４１３は、命令種別４１０「１Ａ」、ＣＰＵ予測処理時間４１１「１」及びＧＰＵ予測処理時間４１２「１」を含む。予測処理時間情報４１３は、「１Ａ」により示される描画命令をＣＰＵ１２０上で実行したときに、「１ミリ秒」を要すると予測されることを示す。また、予測処理時間情報４１３は、「１Ａ」により示される描画命令に基づくＧＰＵ命令をＧＰＵ１２２上で実行したときに、「１ミリ秒」を要すると予測されることを示す。
【０１３７】
なお、描画命令のパラメタにより、処理時間の変動が大きい場合には、予測処理時間テーブル４００の各予測処理時間情報は、ＣＰＵ予測処理時間及びＧＰＵ予測処理時間に代えて、命令種別に対応して、ＣＰＵ予測処理時間を算出する関数及びＧＰＵ予測処理時間を算出する関数を含むとしてもよい。各関数は、描画命令のパラメタを用いて、予測処理時間を算出するための関数である。
【０１３８】
予測部１６４は、判断部１６３から描画命令を受け取る。描画命令を受け取ると、予測部１６４は、受け取った描画命令に一致する命令種別を予測処理時間テーブル４００から検索する。次に、一致した命令種別に対応するＣＰＵ予測処理時間及びＧＰＵ予測処理時間を予測処理時間テーブル４００から読み出す。このようにして、予測部１６４は、予測処理時間テーブル４００を用いて、受け取った描画命令をＣＰＵ１２０において処理するために要すると予測されるＣＰＵ予測処理時間を算出する。また、予測部１６４は、予測処理時間テーブル４００を用いて、受け取った描画命令をＧＰＵ１２２において処理するために要すると予測されるＧＰＵ予測処理時間を算出する。
【０１３９】
次に、予測部１６４は、読み出したＣＰＵ予測処理時間及びＧＰＵ予測処理時間を判断部１６３に対して出力する。
【０１４０】
（５）命令発行部１６５
命令発行部１６５は、以下に示すようにして、発行制御部１６６による制御に従って、描画命令を発行する。
【０１４１】
命令発行部１６５は、命令受信部１６１より描画命令を受け取る。次に、命令発行部１６５は、受け取った描画命令を発行制御部１６６に対して出力し、発行制御部１６６に当該描画命令を発行すべきか待機すべきかを問い合わせる。
【０１４２】
命令発行部１６５は、発行制御部１６６から描画命令を継続して発行することを示す継続指示を受け取る。継続指示を受け取ると、命令発行部１６５は、グラフィックスドライバ１５３に対して、当該描画命令を発行する。
【０１４３】
（６）発行制御部１６６
発行制御部１６６は、以下に示すようにして、第１描画命令を先に実行させると判断する場合に、第１描画命令を発行させ、第２描画命令の発行を待機させるよう制御する。
【０１４４】
図１２は、タイミングパラメタテーブル５００のデータ構造の一例を示す図である。
【０１４５】
発行制御部１６６は、一例として、図１２に示すタイミングパラメタテーブル５００を保持している。
【０１４６】
タイミングパラメタテーブル５００は、この図に示すように、発行待ち要求フラグ５１０及び発行待ち命令存在フラグ５１１を含む。
【０１４７】
発行待ち要求フラグ５１０は、セット状態とリセット状態の２つの値のいずれか一方を持つ。セット状態は、次に発行される描画命令を待機させることを示す。リセット状態は、次に発行される描画命令をすぐに発行させることを示す。
【０１４８】
発行待ち要求フラグ５１０は、次に発行される描画命令を待機させるかすぐに発行させるかを判断するために用いられる。
【０１４９】
発行待ち命令存在フラグ５１１は、セット状態とリセット状態の２つの値のいずれか一方を持つ。セット状態は、命令発行部１６５に、待機中の発行待ち命令が存在することを示す。リセット状態は、命令発行部１６５に、待機中の発行待ち命令が存在しないことを示す。
【０１５０】
発行待ち命令存在フラグ５１１は、命令発行部１６５に、待機中の発行待ち命令が存在するかどうかを判断するために用いられる。
【０１５１】
発行制御部１６６は、命令発行部１６５から、描画命令を発行すべきか、待機すべきかの問い合わせを受け取る。
【０１５２】
発行制御部１６６は、命令発行部１６５からの問い合わせに対して、発行待ち要求フラグ５１０の値に基づき、描画命令を待機するか、又は、描画命令を継続して発行するかを通知する。なお、発行制御部１６６の動作の詳細については、後述する。
【０１５３】
（７）優先度設定部１６７
優先度設定部１６７は、タスクスケジューラ１５７に対して、第１プログラム１１からの第１描画命令の処理優先順位が第２プログラム１２からの第２描画命令の処理優先順位より高くなるように、優先度を設定する。
【０１５４】
１．６  図形表示処理装置１００の動作
ここでは、図形表示処理装置１００の動作について説明する。
【０１５５】
（１）第２プログラム１２の第２描画命令を受け取った場合の判断部１６３の動作
図１３は、命令受信部１６１から描画命令を受け取った場合における、判断部１６３の動作の一例を示すフローチャート図である。
【０１５６】
第２プログラム１２の第２描画命令を命令受信部１６１から受け取った場合の判断部１６３の動作について、図１３に示すフローチャート図を用いて説明する。
【０１５７】
第２プログラム１２の第２描画命令を受け取ると、判断部１６３は、予測部１６４に、受け取った第２描画命令を実行する際に、ＣＰＵ１２０における処理に要すると予測される予測処理時間、及び、ＧＰＵ１２２における処理に要すると予測される予測処理時間を計算させる。判断部１６３は、予測部１６４からそれぞれの予測処理時間を受け取る。次に、判断部１６３は、それぞれの予測処理時間を、第２プログラムＣＰＵ予測処理時間２１５及び第２プログラムＧＰＵ予測処理時間２１６として、処理パラメタテーブル２００に書き込む（ステップＳ１０１）。
【０１５８】
次に、判断部１６３は、現在時刻をタイマ１５６に問い合わせ、現在時刻を現在時刻２２０として、処理パラメタテーブル２００に書き込む（ステップＳ１０２）。
【０１５９】
判断部１６３は、ＣＰＵＧＰＵ累計処理時間２１０と第２プログラムＣＰＵ予測処理時間２１５と第２プログラムＧＰＵ予測処理時間２１６とを加算した値が、ＣＰＵＧＰＵ処理時間制限値３１１より大であるかどうかを判断する（ステップＳ１０３）。判断の結果、加算した値が、ＣＰＵＧＰＵ処理時間制限値３１１より大きい場合には（ステップＳ１０３で「Ｙｅｓ」）、判断部１６３は、ステップＳ１１０へ制御を移す。
【０１６０】
加算した値が、ＣＰＵＧＰＵ処理時間制限値３１１と等しい又はＣＰＵＧＰＵ処理時間制限値３１１より小さい場合には（ステップＳ１０３で「Ｎｏ」）、判断部１６３は、ＧＰＵ累計処理時間２１１と第２プログラムＧＰＵ予測処理時間２１６とを加算した値が、ＧＰＵ処理時間制限値３１２より大であるかどうかを判断する（ステップＳ１０４）。判断の結果、加算した値が、ＧＰＵ処理時間制限値３１２より大きい場合には（ステップＳ１０４で「Ｙｅｓ」）、判断部１６３は、ステップＳ１１０に制御を移す。
【０１６１】
加算した値が、ＧＰＵ処理時間制限値３１２と等しい又はＧＰＵ処理時間制限値３１２より小さい場合には（ステップＳ１０４で「Ｎｏ」）、判断部１６３は、次に示すようにして、現在時刻２２０と、第１プログラム処理開始時刻２１４、第１プログラムＣＰＵ予測処理時間２１２、第１プログラムＧＰＵ予測処理時間２１３を用いて、ＣＰＵ予測残り処理時間２１８及びＧＰＵ予測残り処理時間２１９を計算する。
【０１６２】
判断部１６３は、第１プログラムＣＰＵ予測処理時間２１２―（現在時刻２２０―第１プログラム処理開始時刻２１４）により、ＣＰＵ予測残り処理時間２１８を算出する。算出された値が０以下であれば、ＣＰＵ予測残り処理時間２１８を、０とする。
【０１６３】
ＣＰＵ予測残り処理時間２１８＝第１プログラムＣＰＵ予測処理時間２１２―（現在時刻２２０―第１プログラム処理開始時刻２１４）
ただし、ＣＰＵ予測残り処理時間２１８＝０（算出されたＣＰＵ予測残り処理時間２１８が０以下の場合）
算出されたＣＰＵ予測残り処理時間２１８が０より大の場合、判断部１６３は、第１プログラムＧＰＵ予測処理時間２１３をＧＰＵ予測残り処理時間２１９とする。
【０１６４】
ＧＰＵ予測残り処理時間２１９＝第１プログラムＧＰＵ予測処理時間２１３（ＣＰＵ予測残り処理時間２１８が０より大の場合）
算出されたＣＰＵ予測残り処理時間２１８が０の場合には、判断部１６３は、第１プログラムＧＰＵ予測処理時間２１３＋第１プログラムＣＰＵ予測処理時間２１２―（現在時刻２２０―第１プログラム処理開始時刻２１４）の計算結果をＧＰＵ予測残り処理時間２１９に設定する。算出されたＧＰＵ予測残り処理時間２１９が０以下であれば、ＧＰＵ予測残り処理時間２１９に０を設定する
ＧＰＵ予測残り処理時間２１９＝第１プログラムＧＰＵ予測処理時間２１３＋第１プログラムＣＰＵ予測処理時間２１２―（現在時刻２２０―第１プログラム処理開始時刻２１４）  （算出されたＣＰＵ予測残り処理時間２１８が０の場合）
ＧＰＵ予測残り処理時間２１９＝０（算出されたＧＰＵ予測残り処理時間２１９が０以下の場合）
次に、判断部１６３は、ＣＰＵ予測残り処理時間２１８及びＧＰＵ予測残り処理時間２１９を処理パラメタテーブル２００に書き込む（ステップＳ１０５）。
【０１６５】
次に、判断部１６３は、ＣＰＵ予測残り処理時間２１８とＧＰＵ予測残り処理時間２１９の合計値が、ＣＰＵＧＰＵ処理優先時間３１３より小であるかを判断する（ステップＳ１０６）。合計値が、ＣＰＵＧＰＵ処理優先時間３１３より小であれば（ステップＳ１０６で「Ｙｅｓ」）、判断部１６３は、制御をステップＳ１１０へ移す。
【０１６６】
合計値がＣＰＵＧＰＵ処理優先時間３１３より大であるか、又は合計値がＣＰＵＧＰＵ処理優先時間３１３と等しければ（ステップＳ１０６で「Ｎｏ」）、判断部１６３は、ＧＰＵ予測残り処理時間２１９が、ＧＰＵ処理優先時間３１４より小であるかを判断する（ステップＳ１０７）。ＧＰＵ予測残り処理時間２１９がＧＰＵ処理優先時間３１４より小であれば（ステップＳ１０７で「Ｙｅｓ」）、判断部１６３は、ステップＳ１１０へ制御を移す。ＧＰＵ予測残り処理時間２１９がＧＰＵ処理優先時間３１４より大であれば、又は、ＧＰＵ予測残り処理時間２１９がＧＰＵ処理優先時間３１４に等しければ（ステップＳ１０７で「Ｎｏ」）、判断部１６３は、発行制御部１６６に対し、第２プログラムの第２描画命令の発行を通知し、現在時刻２２０の値を第２プログラム処理開始時刻２１７に設定する（ステップＳ１０８）。
【０１６７】
次に、判断部１６３は、ＣＰＵＧＰＵ累計処理時間２１０に、第２プログラムＣＰＵ予測処理時間２１５と第２プログラムＧＰＵ予測処理時間２１６とを加算する。また、判断部１６３は、ＧＰＵ累計処理時間２１１に、第２プログラムＧＰＵ予測処理時間２１６を加算する（ステップＳ１０９）。
【０１６８】
これで、第２プログラム１２の第２描画命令を受け取った場合の判断部１６３の処理を終了する。
【０１６９】
ＣＰＵＧＰＵ累計処理時間２１０と第２プログラムＣＰＵ予測処理時間２１５と第２プログラムＧＰＵ予測処理時間２１６とを加算した値が、ＣＰＵＧＰＵ処理時間制限値３１１より大である場合（ステップＳ１０３で「Ｙｅｓ」）、ＧＰＵ累計処理時間２１１と第２プログラムＧＰＵ予測処理時間２１６とを加算した値が、ＧＰＵ処理時間制限値３１２より大である場合（ステップＳ１０４で「Ｙｅｓ」）、ＣＰＵ予測残り処理時間２１８とＧＰＵ予測残り処理時間２１９の合計値が、ＣＰＵＧＰＵ処理優先時間３１３より小である場合（ステップＳ１０６で「Ｙｅｓ」）、又は、ＧＰＵ予測残り処理時間２１９が、ＧＰＵ処理優先時間３１４より小である場合（ステップＳ１０７で「Ｙｅｓ」）、判断部１６３は、発行制御部１６６に対し、第２プログラムの描画処理の待ちを通知し、第２プログラム処理開始時刻２１７に０を設定する（ステップＳ１１０）。
【０１７０】
これで、第２プログラム１２の第２描画命令を受け取った場合の判断部１６３の処理を終了する。
【０１７１】
なお、ステップＳ１０９において、ＣＰＵＧＰＵ累計処理時間２１０及びＧＰＵ累計処理時間２１１に加算する値は、予測値を用いずに、実際に処理にかかった時間を計測し、計測して得られた時間を用いてもよい。
【０１７２】
（２）第１プログラム１１の第１描画命令を受け取った場合の判断部１６３の動作
図１４は、命令監視部１６２から描画命令を受け取った場合における、判断部１６３の動作の一例を示すフローチャート図である。
【０１７３】
第１プログラム１１の第１描画命令を命令監視部１６２から受け取った場合の判断部１６３の動作について、図１４に示すフローチャート図を用いて説明する。
【０１７４】
第１プログラム１１の第１描画命令を受け取ると、判断部１６３は、予測部１６４に、受け取った第１描画命令を実行する際に、ＣＰＵ１２０における処理に要すると予測される予測処理時間、及び、ＧＰＵ１２２における処理に要すると予測される予測処理時間を計算させる。判断部１６３は、予測部１６４からそれぞれの予測処理時間を受け取る。次に、判断部１６３は、それぞれの予測処理時間を、第１プログラムＣＰＵ予測処理時間２１２及び第１プログラムＧＰＵ予測処理時間２１３として、処理パラメタテーブル２００に書き込む（ステップＳ２０１）。
【０１７５】
判断部１６３は、現在時刻をタイマ１５６に問い合わせ、現在時刻を現在時刻２２０として格納する（ステップＳ２０２）。
【０１７６】
次に、判断部１６３は、第１プログラムＣＰＵ予測処理時間２１２と第１プログラムＧＰＵ予測処理時間２１３との合計値が、ＣＰＵＧＰＵ処理優先時間３１３より小であるかを判断する（ステップＳ２０３）。合計値が、ＣＰＵＧＰＵ処理優先時間３１３より小であれば（ステップＳ２０３で「Ｙｅｓ」）、判断部１６３は、ステップＳ２０７に制御を移す。
【０１７７】
合計値がＣＰＵＧＰＵ処理優先時間３１３より大であるか、又は、ＣＰＵＧＰＵ処理優先時間３１３に等しければ（ステップＳ２０３で「Ｎｏ」）、判断部１６３は、第１プログラムＧＰＵ予測処理時間２１３が、ＧＰＵ処理優先時間３１４より小であるかを判断する（ステップＳ２０４）。第１プログラムＧＰＵ予測処理時間２１３がＧＰＵ処理優先時間３１４より小であれば（ステップＳ２０４で「Ｙｅｓ」）、判断部１６３は、ステップＳ２０７へ制御を移す。
【０１７８】
第１プログラムＧＰＵ予測処理時間２１３がＧＰＵ処理優先時間３１４より大であるか、又は、ＧＰＵ処理優先時間３１４に等しければ（ステップＳ２０４で「Ｎｏ」）、判断部１６３は、発行制御部１６６に対し、第２プログラムの第２描画命令の発行を通知し、現在時刻２２０の値を第２プログラム処理開始時刻２１７に設定する（ステップＳ２０５）。これにより、第２プログラムの第２描画命令が命令発行部１６５からグラフィックスドライバ１５３に発行される。
【０１７９】
次に、判断部１６３は、ＣＰＵＧＰＵ累計処理時間２１０に、第２プログラムＣＰＵ予測処理時間２１５と第２プログラムＧＰＵ予測処理時間２１６を加算する。判断部１６３は、ＧＰＵ累計処理時間２１１に、第２プログラムＧＰＵ予測処理時間２１６を加算する（ステップＳ２０６）。
【０１８０】
次に、判断部１６３は、第１プログラムの第１描画命令のＣＰＵ優先度が、第２プログラムの第２描画命令のＣＰＵ優先度より高くなるように、優先度設定部１６７に優先度を調整指示する（ステップＳ２０７）。
【０１８１】
なお、ステップＳ２０７に示す手順は、第１プログラム１１及び第２プログラム１２のＣＰＵ処理優先度が変更されることが発生しなければ、毎回実行される必要はない。
【０１８２】
（３）監視周期の終了の通知を受け取った場合の判断部１６３の動作
図１５は、タイマ１５６から通知を受け取った場合における、判断部１６３の動作の一例を示すフローチャート図である。
【０１８３】
タイマ１５６から監視周期の終了の通知を受け取った場合の判断部１６３の動作について、図１５に示すフローチャート図を用いて説明する。
【０１８４】
タイマ１５６から監視周期の終了の通知を受け取ると、判断部１６３はＣＰＵＧＰＵ累計処理時間２１０及びＧＰＵ累計処理時間２１１に「０」を設定する（ステップＳ３０１）。
【０１８５】
次に、判断部１６３は、第２プログラム処理開始時刻２１７が「０」か否かを判断することにより、第２プログラムからの第２描画命令が待っている状態か否かを判断する（ステップＳ３０２）。「０」以外の場合（ステップＳ３０２で「０以外の場合」）、判断部１６３は、待ち状態の第２描画命令が存在しないと判断し、ステップＳ３０５へ制御を移す。
【０１８６】
「０」の場合（ステップＳ３０２で「０の場合」）、判断部１６３は、待ち状態の第２描画命令が存在すると判断し、判断部１６３は、発行制御部１６６に対し、第２プログラム１２の第２描画命令の発行を通知し、現在時刻２２０の値を第２プログラム処理開始時刻２１７に設定する（ステップＳ３０３）。
【０１８７】
次に、判断部１６３は、ＣＰＵＧＰＵ累計処理時間２１０に、第２プログラムＣＰＵ予測処理時間２１５と第２プログラムＧＰＵ予測処理時間２１６とを加算する。また、判断部１６３は、ＧＰＵ累計処理時間２１１に、第２プログラムＧＰＵ予測処理時間２１６を加算する（ステップＳ３０４）。
【０１８８】
次に、判断部１６３は、次の監視周期の終了時に終了の通知を受け取れるようにするため、監視周期時間３１０をタイマ１５６にセットする（ステップＳ３０５）。
【０１８９】
（４）発行制御部１６６の動作
図１６は、判断部１６３から通知を受け取った場合における、発行制御部１６６の動作の一例を示すフローチャート図である。
【０１９０】
判断部１６３から、描画命令の待機又は描画命令の発行の続行の通知を受け取った場合の発行制御部１６６の動作について、図１６に示すフローチャート図を用いて説明する。
【０１９１】
判断部１６３から通知を受け取ると、発行制御部１６６は、通知の種類を判断する（ステップＳ４０１）。通知は、描画命令の待機及び描画命令の発行の続行のいずれかである。通知が描画命令の待機の場合（ステップＳ４０１で「描画命令の待機」）、発行制御部１６６は、ステップＳ４０５へ制御を移す。
【０１９２】
通知が描画命令の発行の続行の場合（ステップＳ４０１で「描画命令の発行の続行」）、発行制御部１６６は、発行待ち命令存在フラグ５１１の値を確認して、命令発行部１６５に発行待ちの描画命令があるか否かを判断する（ステップＳ４０２）。
【０１９３】
発行待ち命令存在フラグ５１１の値がリセット状態の場合（ステップＳ４０２で「リセット状態」）、待機している命令はないと判断し、発行制御部１６６は、発行待ち要求フラグ５１０をリセットし、第２プログラム１２が次の描画命令の発行を直ちに行えるようにする（ステップＳ４０３）。これにより、処理を終了する。
【０１９４】
発行待ち命令存在フラグ５１１の値がセット状態の場合（ステップＳ４０２で「セット状態」）には、待機している命令があるため、発行制御部１６６は、命令発行部１６５へ待機している描画命令を発行するように通知し、発行待ち命令存在フラグ５１１をリセットする（ステップＳ４０４）。これにより、命令発行部１６５は、待機している描画命令を発行する。次に、発行制御部１６６は、次に発行される描画命令を待機させるため、発行待ち要求フラグ５１０をセットする（ステップＳ４０５）。これにより、処理を終了する。
【０１９５】
（５）発行制御部１６６の動作
図１７は、命令発行部１６５から描画命令の発行の待ち合わせについて問い合わせを受けた場合における、発行制御部１６６の動作の一例を示すフローチャート図である。
【０１９６】
命令発行部１６５から描画命令の発行の待ち合わせについて問い合わせを受けた場合の発行制御部１６６の動作について、図１７に示すフローチャート図を用いて説明する。
【０１９７】
命令発行部１６５から描画命令の発行の待ち合わせについて問い合わせを受け取ると、発行制御部１６６は、発行待ち要求フラグ５１０を確認する（ステップＳ５０１）。
【０１９８】
発行待ち要求フラグ５１０がセット状態の場合（ステップＳ５０１で「セット状態」）、発行制御部１６６は、命令発行部１６５に対して、描画命令の発行を待機するように通知し、発行待ち命令存在フラグ５１１をセット状態にする（ステップＳ５０２）。これにより、処理を終了する。
【０１９９】
発行待ち要求フラグ５１０がリセット状態の場合（ステップＳ５０１で「リセット状態」）、発行制御部１６６は、命令発行部１６５に対して、描画命令を発行するように通知し、発行待ち命令存在フラグ５１１をリセット状態にする（ステップＳ５０３）。これにより、処理を終了する。
【０２００】
１．７  効果の説明
本実施の形態における描画処理の即時性についての効果を、本実施の形態を適用しない場合と、実施の形態の適用した場合とを比較して説明する。
【０２０１】
ここで、第１プログラム１１は、上述したように、表示の即時性が要求されるプログラムである。言い換えると、第１プログラム１１は、フレーム表示単位時間Ｔ０以内に、１フレーム分の表示を完了する必要があるプログラムである。フレーム表示単位時間Ｔ０は、フレームレートに応じて定まる。フレーム表示単位時間Ｔ０以内に表示を完了することにより、利用者は、最新の状態を正しく表す適切な情報を入手することができる。
【０２０２】
また、第２プログラム１２は、即時性が要求されないプログラムである。
【０２０３】
第１プログラム１１は、第１描画命令「１Ａ」、「１Ｂ」及び「１Ｃ」を含んでいるとする。第１プログラム１１から、第１描画命令「１Ａ」、「１Ｂ」及び「１Ｃ」がこの順序で出力される。第１描画命令「１Ａ」、「１Ｂ」及び「１Ｃ」は、ＣＰＵ１２０により、言い換えると、グラフィックスドライバ１５３により、この順序で実行される。グラフィックスドライバ１５３は、この順序で、各描画命令に対応するＧＰＵ命令と加工処理データとを関連付けてコマンド待ち行列バッファ１５に格納する。
【０２０４】
ＧＰＵ１２２は、各加工処理データを用いて、各ＧＰＵ命令に対応する描画処理を実行することにより、描画処理の結果である描画イメージデータをフレームバッファ１５５に出力する（又は、フレームバッファ１５５に描画するともいう）。
【０２０５】
ＧＰＵ１２２が第１描画命令「１Ａ」、「１Ｂ」及び「１Ｃ」に対応するＧＰＵ命令を実行し、描画処理が完了すると、フレームバッファ１５５において、第１プログラム１１による１フレーム分の描画イメージデータが完成する。
【０２０６】
第２プログラム１２は、第２描画命令「２Ａ」、「２Ｂ」及び「２Ｃ」を含んでいるとする。第２プログラム１２から、第２描画命令「２Ａ」、「２Ｂ」及び「２Ｃ」がこの順序で出力される。第２描画命令「２Ａ」、「２Ｂ」及び「２Ｃ」は、ＣＰＵ１２０により、言い換えると、グラフィックスドライバ１５３により、この順序で実行される。グラフィックスドライバ１５３は、この順序で、各描画命令に対応するＧＰＵ命令と加工処理データとを関連付けてコマンド待ち行列バッファ１５に格納する。
【０２０７】
ＧＰＵ１２２は、各加工処理データを用いて、各ＧＰＵ命令に対応する描画処理を実行することにより、描画処理の結果である描画イメージデータをフレームバッファ１５５に出力する。
【０２０８】
ＧＰＵ１２２が第２描画命令「２Ａ」、「２Ｂ」及び「２Ｃ」に対応するＧＰＵ命令を実行し、描画処理が完了すると、フレームバッファ１５５において、第２プログラム１２による１フレーム分の描画イメージデータが完成する。
【０２０９】
表示部１１２は、フレームバッファ１５５に格納された１フレーム分の描画イメージデータをフレームレートに従うタイミングで読み出して表示する。
【０２１０】
（１）ここでは、描画命令「１Ａ」、「１Ｂ」、「１Ｃ」、「２Ａ」、「２Ｂ」、「２Ｃ」において、それぞれの描画命令が、その描画命令より以前に処理したＧＰＵ命令の結果に依存しない場合を想定する。
【０２１１】
図１８は、本実施の形態に記載した技術を適用しない場合の各描画命令におけるＣＰＵ描画処理及びＧＰＵ描画処理の一例を示すタイミングチャート図である。
【０２１２】
図１９は、本実施の形態に記載した技術を適用した場合の各描画命令におけるＣＰＵ描画処理及びＧＰＵ描画処理の一例を示すタイミングチャート図である。
【０２１３】
なお、図１８に示す第１描画命令「１Ａ」、「１Ｂ」及び「１Ｃ」は、それぞれ、図１９に示す第１描画命令「１Ａ」、「１Ｂ」及び「１Ｃ」と同じ命令である。また、図１８に示す第２描画命令「２Ａ」、「２Ｂ」及び「２Ｃ」は、それぞれ、図１９に示す第２描画命令「２Ａ」、「２Ｂ」及び「２Ｃ」と同じ命令である。
【０２１４】
命令監視部１６２は、第１描画命令「１Ａ」、「１Ｂ」及び「１Ｃ」を受信する。また、命令受信部１６１は、第２描画命令「２Ａ」、「２Ｂ」及び「２Ｃ」を受信する。
【０２１５】
描画命令「１Ａ」、「２Ａ」、「１Ｂ」、「２Ｂ」、「１Ｃ」及び「２Ｃ」は、時間的に、この順序で受信するものとする。
【０２１６】
また、以下の条件（ｉ）及び条件（ii）のいずれかの関係を満足するものであるとする。
【０２１７】
（ｉ）第２描画命令「２Ａ」についてのＣＰＵ処理時間及びＧＰＵ処理時間、並びに、第２描画命令「２Ｂ」についてのＣＰＵ予測処理時間及びＧＰＵ予測処理時間の和は、ＣＰＵＧＰＵ処理時間制限値３１１よりも大きい。ここで、第２描画命令「２Ａ」についてのＣＰＵ処理時間及びＧＰＵ処理時間は、それぞれ、第２描画命令「２Ａ」及び第２描画命令「２Ａ」に基づくＧＰＵ命令の実行が終了した後に計測された実測値である。
【０２１８】
（ii）第２描画命令「２Ａ」についてのＧＰＵ処理時間と、第２描画命令「２Ｂ」についてのＧＰＵ予測処理時間との和は、ＧＰＵ処理時間制限値３１２よりも大きい。ここで、第２描画命令「２Ａ」についてのＧＰＵ処理時間は、第２描画命令「２Ａ」に基づくＧＰＵ命令の実行が終了した後に計測された実測値である。
【０２１９】
条件（ｉ）又は（ii）は、第２描画命令「２Ｂ」を受信したとき、図１３に示すＳ１０３及びＳ１０４のいずれかにおいて、Ｙｅｓと判断されることを示す。これらの場合において、図１３に示すステップＳ１１０の実行がなされる。
【０２２０】
（ａ）本実施の形態を適用しない場合
本実施の形態を適用しない場合の各描画命令におけるＣＰＵ描画処理及びＧＰＵ描画処理の一例を、図１８に示すタイミングチャート図を用いて説明する。この図においては、横軸に時間の経過を示す。この図の一段目には、ＣＰＵにおいて、実行される各描画命令の時間的経過を示す。また、二段目には、ＧＰＵにおいて、実行される各ＧＰＵ命令の時間的経過を示す。
【０２２１】
第１プログラム１１からの第１描画命令６０１「１Ａ」に従って、時刻Ｔ１１〜時刻Ｔ１２まで、ＣＰＵ１２０が描画命令に対応するデータ加工処理などを実行（以後、描画命令に対応するデータ加工処理などを実行することを「描画命令を実行する」と称する。）する。第１描画命令６０１「１Ａ」の実行において、対応するＧＰＵ命令「１Ａ」がコマンド待ち行列バッファ１５に格納される。その後、ＧＰＵ１２２に処理が依頼される。時刻Ｔ１２〜時刻Ｔ１４まで、ＧＰＵ１２２が第１描画命令６０１「１Ａ」に対応するＧＰＵ命令６１１「１Ａ」に基づいて描画処理（以後、ＧＰＵ命令に基づく描画処理を「ＧＰＵ描画処理」と称する。）を行う。その後、ＧＰＵ命令６１１「１Ａ」によるＧＰＵ描画処理が完了する。
【０２２２】
第２プログラム１２からの第２描画命令６０２「２Ａ」に従って、時刻Ｔ１２〜時刻Ｔ１３まで、ＣＰＵ１２０が描画処理を実行する。その結果、第２描画命令６０２「２Ａ」に対応するＧＰＵ命令「２Ａ」がコマンド待ち行列バッファ１５に格納される。その後、ＧＰＵ１２２に処理が依頼される。しかしながら、時刻Ｔ１３においては、ＧＰＵ１２２は、ＧＰＵ命令６１１「１Ａ」によるＧＰＵ描画処理を実行しているため、ＧＰＵ命令「２Ａ」によるＧＰＵ描画処理の実行を待機する。時刻Ｔ１４になると、ＧＰＵ１２２は、ＧＰＵ命令６１１「１Ａ」を完了するので、ＧＰＵ命令６１２「２Ａ」によるＧＰＵ描画処理の実行を開始する。ＧＰＵ１２２は、ＧＰＵ命令６１２「２Ａ」に従って、ＧＰＵ描画処理を時刻Ｔ１４〜時刻Ｔ１６の間、実行する。その後、ＧＰＵ命令６１２「２Ａ」によるＧＰＵ描画処理が完了する。
【０２２３】
第１プログラム１１からの第１描画命令６０３「１Ｂ」に従って、時刻Ｔ１３〜時刻Ｔ１５まで、ＣＰＵ１２０が描画処理を実行する。その結果、第１描画命令６０３「１Ｂ」に対応するＧＰＵ命令「１Ｂ」がコマンド待ち行列バッファ１５に格納される。その後、ＧＰＵ１２２に処理が依頼される。しかしながら、時刻Ｔ１５においては、ＧＰＵ１２２は、ＧＰＵ命令６１２「２Ａ」に従って、ＧＰＵ描画処理を実行しているため、ＧＰＵ命令「１Ｂ」によるＧＰＵ描画処理の実行を待機する。時刻Ｔ１６になると、ＧＰＵ１２２は、ＧＰＵ命令６１２「２Ａ」によるＧＰＵ描画処理を完了するので、次のＧＰＵ命令６１３「１Ｂ」によるＧＰＵ描画処理の実行を開始する。ＧＰＵ１２２は、ＧＰＵ命令６１３「１Ｂ」によるＧＰＵ描画処理を、時刻Ｔ１６〜時刻Ｔ１８の間、実行する。その後、ＧＰＵ命令６１３「１Ｂ」によるＧＰＵ描画処理が完了する。
【０２２４】
第２プログラム１２からの第２描画命令６０４「２Ｂ」に従って、時刻Ｔ１５から時刻Ｔ１７まで、ＣＰＵ１２０が描画処理を実行する。その結果、第２描画命令６０４「２Ｂ」に対応するＧＰＵ命令「２Ｂ」がコマンド待ち行列バッファ１５に格納される。その後、ＧＰＵ１２２に処理が依頼される。しかしながら、時刻Ｔ１７においては、ＧＰＵ１２２は、ＧＰＵ命令６１３「１Ｂ」によるＧＰＵ描画処理を実行しているので、ＧＰＵ命令「２Ｂ」によるＧＰＵ描画処理の実行を待機する。時刻Ｔ１８になると、ＧＰＵ１２２は、ＧＰＵ命令６１３「１Ｂ」によるＧＰＵ描画処理を完了するので、次のＧＰＵ命令６１４「２Ｂ」によるＧＰＵ描画処理の実行を開始する。ＧＰＵ１２２は、ＧＰＵ命令６１４「２Ｂ」によるＧＰＵ描画処理を時刻Ｔ１８〜時刻Ｔ２１の間、実行する。その後、ＧＰＵ命令６１４「２Ｂ」によるＧＰＵ描画処理が完了する。
【０２２５】
第１プログラム１１からの第１描画命令６０５「１Ｃ」に従って、時刻Ｔ１７〜時刻Ｔ１９まで、ＣＰＵ１２０が描画処理を実行する。その結果、第１描画命令６０５「１Ｃ」に対応するＧＰＵ命令「１Ｃ」がコマンド待ち行列バッファ１５に格納される。その後、ＧＰＵ１２２に処理が依頼される。しかしながら、時刻Ｔ１９において、ＧＰＵ１２２は、ＧＰＵ命令６１４「２Ｂ」によるＧＰＵ描画処理を実行しているので、ＧＰＵ命令「１Ｃ」によるＧＰＵ描画処理の実行を待機する。時刻Ｔ２１になると、ＧＰＵ１２２は、ＧＰＵ命令６１４「２Ｂ」によるＧＰＵ描画処理を完了するので、次のＧＰＵ命令「１Ｃ」によるＧＰＵ描画処理の実行を開始する。ＧＰＵ１２２は、ＧＰＵ命令６１５「１Ｃ」によるＧＰＵ描画処理を時刻Ｔ２１〜時刻Ｔ２２の間、実行する。その後、ＧＰＵ命令６１５「１Ｃ」によるＧＰＵ描画処理が完了する。
【０２２６】
以上説明したように、第１プログラム１１の第１描画命令「１Ａ」、「１Ｂ」及び「１Ｃ」に対応するＧＰＵ描画処理が完了したので、１フレーム分の描画イメージデータがフレームバッファ１５５に出力されたこととなる。しかしながら、当該描画イメージデータの出力の完了時点は、時刻Ｔ２２であり、時刻Ｔ２２は、フレーム表示単位時間Ｔ０（６０７）を超過している。このため、表示部１１２が、Ｔ１１からフレーム表示単位時間Ｔ０だけ経過した時点において、フレームバッファ１５５から描画イメージデータを取り出したとしても、これは、完成前の描画イメージデータとなる。このように、表示の即時性に問題が発生している。
【０２２７】
（ｂ）本実施の形態を適用する場合
本実施の形態を適用する場合の各描画命令におけるＣＰＵ描画処理及びＧＰＵ描画処理の一例を、図１９に示すタイミングチャート図を用いて説明する。この図においては、横軸に時間の経過を示す。この図の一段目には、ＣＰＵ１２０において、実行される各描画命令の時間的経過を示す。また、二段目には、ＧＰＵ１２２において、実行される各ＧＰＵ命令の時間的経過を示す。
【０２２８】
第１プログラム１１からの第１描画命令６２１「１Ａ」に従って、時刻Ｔ３１〜時刻Ｔ３２まで、ＣＰＵ１２０が描画処理を実行する。その結果、第１描画命令６２１「１Ａ」に対応するＧＰＵ命令「１Ａ」がコマンド待ち行列バッファ１５に格納される。その後、ＧＰＵ１２２に処理が依頼される。時刻Ｔ３２〜時刻Ｔ３４まで、ＧＰＵ１２２が第１描画命令６２１「１Ａ」に対応するＧＰＵ命令６３１「１Ａ」によるＧＰＵ描画処理を行う。その後、ＧＰＵ命令６３１「１Ａ」によるＧＰＵ描画処理が完了する。
【０２２９】
第２プログラム１２からの第２描画命令６２２「２Ａ」に従って、時刻Ｔ３２〜時刻Ｔ３３まで、ＣＰＵ１２０が描画処理を実行する。その結果、第２描画命令６２２「２Ａ」に対応するＧＰＵ命令「２Ａ」がコマンド待ち行列バッファ１５に格納される。その後、ＧＰＵ１２２に処理が依頼される。しかしながら、時刻Ｔ３３においては、ＧＰＵ１２２は、ＧＰＵ命令６３１「１Ａ」によるＧＰＵ描画処理を実行しているので、ＧＰＵ命令「２Ａ」によるＧＰＵ描画処理の実行を待機する。時刻Ｔ３４になると、ＧＰＵ１２２は、ＧＰＵ命令６３１「１Ａ」によるＧＰＵ描画処理を完了するので、次のＧＰＵ命令６３２「２Ａ」によるＧＰＵ描画処理の実行を開始する。ＧＰＵ１２２は、ＧＰＵ命令６３２「２Ａ」によるＧＰＵ描画処理を、時刻Ｔ３４〜時刻Ｔ３６の間、実行する。その後、ＧＰＵ命令６３２「２Ａ」によるＧＰＵ描画処理が完了する。
【０２３０】
第１プログラム１１からの第１描画命令６２３「１Ｂ」に従って、時刻Ｔ３３〜時刻Ｔ３５まで、ＣＰＵ１２０が描画処理を実行する。その結果、第１描画命令６２３「１Ｂ」に対応するＧＰＵ命令「１Ｂ」がコマンド待ち行列バッファ１５に格納される。その後、ＧＰＵ１２２に処理が依頼される。しかしながら、時刻Ｔ３５においては、ＧＰＵ１２２は、ＧＰＵ命令６３２「２Ａ」によるＧＰＵ描画処理を実行しているので、ＧＰＵ命令「１Ｂ」によるＧＰＵ描画処理の実行を待機する。時刻Ｔ３６になると、ＧＰＵ１２２は、ＧＰＵ命令６３２「２Ａ」によるＧＰＵ描画処理を完了するので、次のＧＰＵ命令「１Ｂ」によるＧＰＵ描画処理の実行を開始する。ＧＰＵ１２２は、ＧＰＵ命令６３３「１Ｂ」によるＧＰＵ描画処理を、時刻Ｔ３６〜時刻Ｔ３８の間、実行する。その後、ＧＰＵ命令６３３「１Ｂ」によるＧＰＵ描画処理が完了する。
【０２３１】
帯域制御部１５２の予測部１６４により算出された予測処理時間を用いると、第２プログラム１２からの第２描画命令「２Ｂ」に対応するＧＰＵ命令「２Ｂ」によりＧＰＵ描画処理を行うと、第１プログラム１１による描画処理がフレーム表示単位時間Ｔ０（６２７）以内に完了しないことが予想される。このため、図１３のステップＳ１０４の判断に従って、ＣＰＵ１２０による第２描画命令「２Ｂ」の実行を待機させる。
【０２３２】
第１プログラムからの第１描画命令６２４「１Ｃ」に従って、時刻Ｔ３５〜時刻Ｔ３７まで、ＣＰＵ１２０が描画処理を実行する。その結果、第１描画命令６２４「１Ｃ」に対応するＧＰＵ命令「１Ｃ」がコマンド待ち行列バッファ１５に格納される。その後、ＧＰＵ１２２に処理が依頼される。しかしながら、時刻Ｔ３７においては、ＧＰＵ１２２は、ＧＰＵ命令６３３「１Ｂ」によるＧＰＵ描画処理を実行しているので、ＧＰＵ命令「１Ｃ」によるＧＰＵ描画処理の実行を待機する。時刻Ｔ３８になると、ＧＰＵ１２２は、ＧＰＵ命令６３３「１Ｂ」によるＧＰＵ描画処理を完了するので、次のＧＰＵ命令６３４「１Ｃ」によるＧＰＵ描画処理の実行を開始する。ＧＰＵ１２２は、ＧＰＵ命令６３４「１Ｃ」によるＧＰＵ描画処理を、時刻Ｔ３８〜時刻Ｔ３９の間、実行する。その後、ＧＰＵ命令６３４「１Ｃ」によるＧＰＵ描画処理が完了する。
【０２３３】
時刻Ｔ３９において、第１プログラム１１からの第１描画命令「１Ａ」、「１Ｂ」及び「１Ｃ」に対応する描画処理が完了する。このため、第１プログラム１１による１フレーム分の描画イメージデータがフレームバッファ１５５にフレーム表示単位時間Ｔ０（６２７）以内に出力されたことになる。
【０２３４】
なお、実行が待機となった第２プログラム１２からの第２描画命令「２Ｂ」及び「２Ｃ」については、次のフレーム表示単位時間が開始する時刻Ｔ４０より後に実行される。
【０２３５】
また、以上説明したように、複数の描画命令において、それぞれの描画命令が、その描画命令より以前に処理したＧＰＵ命令の結果に依存しない場合、又は、その描画命令のＧＰＵ命令の結果に対する依存関係が少ないことが予測される場合においては、命令監視部１６２にかかる処理を省略することも可能である。
【０２３６】
また、コマンド待ち行列バッファ１５内において、待ち状態のＧＰＵ命令が少ない場合においては、ＣＰＵ時間とＧＰＵ時間を分けないで処理を簡略化することも可能である。
【０２３７】
（２）ここでは、一つの描画命令（依存描画命令と呼ぶ）が、依存描画命令の前に発行された描画命令（被依存描画命令と呼ぶ）に基づくＧＰＵ命令によるＧＰＵ描画処理の結果に依存する場合を想定する。この場合、被依存描画命令に基づくＧＰＵ命令によるＧＰＵ描画処理が完了しなければ、依存描画命令の実行を開始できないことになる。
【０２３８】
例えば、第１プログラム１１からの第１描画命令「１Ｂ」は、第１プログラム１１からの第１描画命令「１Ａ」に基づくＧＰＵ命令によるＧＰＵ描画処理の終了を待たなければ開始できないものとする。第１描画命令「１Ｂ」は、依存描画命令であり、第１描画命令「１Ａ」は、被依存描画命令である。
【０２３９】
また、第１プログラム１１からの第１描画命令「１Ｃ」は、第１描画命令「１Ｂ」に基づくＧＰＵ命令によるＧＰＵ描画処理の終了を待たなければ開始できないものとする。第１描画命令「１Ｃ」は、依存描画命令であり、第１描画命令「１Ｂ」は、被依存描画命令である。
【０２４０】
また、第２プログラム１２からの第２描画命令「２Ｂ」は、第２プログラム１２からの第２描画命令「２Ａ」に基づくＧＰＵ命令によるＧＰＵ描画処理の終了を待たなければ開始できないものとする。第２描画命令「２Ｂ」は、依存描画命令であり、第２描画命令「２Ａ」は、被依存描画命令である。
【０２４１】
図２０は、本実施の形態に記載した技術を適用しない場合の各描画命令におけるＣＰＵ描画処理及びＧＰＵ描画処理の一例を示す別のタイミングチャート図である。
【０２４２】
図２１は、本実施の形態に記載した技術を適用した場合の各描画命令におけるＣＰＵ描画処理及びＧＰＵ描画処理の一例を示す別のタイミングチャート図である。
【０２４３】
図２０に示す第１描画命令「１Ａ」、「１Ｂ」及び「１Ｃ」は、それぞれ、図２１に示す第１描画命令「１Ａ」、「１Ｂ」及び「１Ｃ」と同じ命令である。また、図２０に示す第２描画命令「２Ａ」、「２Ｂ」及び「２Ｃ」は、それぞれ、図２１に示す第２描画命令「２Ａ」、「２Ｂ」及び「２Ｃ」と同じ命令である。
【０２４４】
命令監視部１６２は、第１描画命令「１Ａ」、「１Ｂ」及び「１Ｃ」を受信する。また、命令受信部１６１は、第２描画命令「２Ａ」、「２Ｂ」及び「２Ｃ」を受信する。
【０２４５】
描画命令「１Ａ」、「２Ａ」、「１Ｂ」、「２Ｂ」、「１Ｃ」及び「２Ｃ」は、時間的に、この順序で受信するものとする。
【０２４６】
（ａ）本実施の形態を適用しない場合
本実施の形態を適用しない場合の各描画命令におけるＣＰＵ描画処理及びＧＰＵ描画処理の一例を、図２０に示すタイミングチャート図を用いて説明する。この図においては、横軸に時間の経過を示す。この図の一段目には、ＣＰＵにおいて、実行される各描画命令の時間的経過を示す。また、二段目には、ＧＰＵにおいて、実行される各ＧＰＵ命令の時間的経過を示す。
【０２４７】
第１プログラム１１からの第１描画命令６４１「１Ａ」に従って、時刻Ｔ５１〜時刻Ｔ５２まで、ＣＰＵ１２０が描画処理を実行する。その結果、第１描画命令６４１「１Ａ」に対応するＧＰＵ命令「１Ａ」がコマンド待ち行列バッファ１５に格納される。その後、ＧＰＵ１２２に処理が依頼される。時刻Ｔ５２〜時刻Ｔ５４まで、ＧＰＵ１２２は、ＧＰＵ命令６５１「１Ａ」によるＧＰＵ描画処理を行う。その後、ＧＰＵ命令６５１「１Ａ」によるＧＰＵ描画処理が完了する。
【０２４８】
第２プログラム１２からの第２描画命令６４２「２Ａ」に従って、時刻Ｔ５２〜時刻Ｔ５３まで、ＣＰＵ１２０が描画処理を実行する。その結果、第２描画命令６４２「２Ａ」に対応するＧＰＵ命令「２Ａ」がコマンド待ち行列バッファ１５に格納される。その後、ＧＰＵ１２２に処理が依頼される。しかしながら、時刻Ｔ５３においては、ＧＰＵ１２２は、ＧＰＵ命令６５１「１Ａ」によるＧＰＵ描画処理を実行しているので、ＧＰＵ命令「２Ａ」によるＧＰＵ描画処理の実行を待機する。時刻Ｔ５４になると、ＧＰＵ１２２は、ＧＰＵ命令６５１「１Ａ」によるＧＰＵ描画処理を完了するので、次のＧＰＵ命令６５２「２Ａ」によるＧＰＵ描画処理の実行を開始する。ＧＰＵ１２２は、ＧＰＵ命令６５２「２Ａ」によるＧＰＵ描画処理を、時刻Ｔ５４〜時刻Ｔ５７の間、実行する。その後、ＧＰＵ命令６５２「２Ａ」によるＧＰＵ描画処理が完了する。
【０２４９】
第１プログラム１１からの第１描画命令「１Ｂ」は、時刻Ｔ５３に処理を開始しようとするが、時刻Ｔ５３において、第１描画命令６４１「１Ａ」に対応するＧＰＵ命令６５１「１Ａ」によるＧＰＵ描画処理が完了していない。従って、第１描画命令「１Ｂ」は、待機する。その結果、後続する第２描画命令「２Ｂ」が、第１描画命令「１Ｂ」より先に、ＣＰＵ１２０により実行される。
【０２５０】
ＧＰＵ命令６５１「１Ａ」によるＧＰＵ描画処理が時刻Ｔ５４で完了し、第２描画命令６４３「２Ｂ」によるＣＰＵ処理が時刻Ｔ５５で完了した後に、第１描画命令６４４「１Ｂ」によるＣＰＵ描画処理が実行を開始する。時刻Ｔ５５〜時刻Ｔ５６まで、第１描画命令６４４「１Ｂ」に従って、ＣＰＵ１２０がＣＰＵ描画処理を実行する。その結果、第１描画命令６４４「１Ｂ」に対応するＧＰＵ命令「１Ｂ」がコマンド待ち行列バッファ１５に格納される。その後、ＧＰＵ１２２に処理が依頼される。時刻Ｔ５６においては、ＧＰＵ１２２は、ＧＰＵ命令６５２「２Ａ」によるＧＰＵ描画処理を実行中であり、また、コマンド待ち行列バッファ１５には第２描画命令「２Ｂ」に対応するＧＰＵ命令「２Ｂ」がすでに格納されているため、ＧＰＵ命令６５３「２Ｂ」によるＧＰＵ描画処理の完了する時刻Ｔ５８になってから、第１描画命令６４４「１Ｂ」に対応するＧＰＵ命令６５４「１Ｂ」を開始できる。ＧＰＵ１２２は、ＧＰＵ命令６５４「１Ｂ」に従って、時刻Ｔ５８〜時刻Ｔ５９の間、ＧＰＵ描画処理を実行する。その後、ＧＰＵ命令６５４「１Ｂ」によるＧＰＵ描画処理が完了する。
【０２５１】
第２プログラム１２からの第２描画命令６４３「２Ｂ」により、時刻Ｔ５３〜時刻Ｔ５５まで、ＣＰＵ１２０が描画処理を行う。その後、ＧＰＵ１２２に処理を依頼する。しかしながら時刻Ｔ５５においては、ＧＰＵ１２２は、第２描画命令６４２「２Ａ」に対応するＧＰＵ命令６５２「２Ａ」によるＧＰＵ描画処理を実行しているので、第２描画命令「２Ｂ」に対応するＧＰＵ命令「２Ｂ」は待機する。時刻Ｔ５７になると、ＧＰＵ１２２は、ＧＰＵ命令６５２「２Ａ」によるＧＰＵ描画処理を完了するので、次のＧＰＵ命令６５３「２Ｂ」によるＧＰＵ描画処理の実行を開始する。ＧＰＵ１２２は、ＧＰＵ命令６５３「２Ｂ」によるＧＰＵ描画処理を、時刻Ｔ５７〜時刻Ｔ５８の間、実行する。その後、ＧＰＵ命令６５３「２Ｂ」によるＧＰＵ描画処理が完了する。
【０２５２】
第２プログラム１２からの第２描画命令「２Ｃ」は、ＧＰＵ命令６５３「２Ｂ」の処理結果に依存する。このため、第２描画命令「２Ｃ」は、ＧＰＵ命令６５３「２Ｂ」によるＧＰＵ描画処理が完了する時刻Ｔ５８まで待機する。その後、第２描画命令６４５「２Ｃ」に従って、時刻Ｔ５８〜時刻Ｔ６０まで、ＣＰＵ１２０がＣＰＵ描画処理を実行する。その結果、第２描画命令６４５「２Ｃ」に対応するＧＰＵ命令「２Ｃ」がコマンド待ち行列バッファ１５に格納される。その後、ＧＰＵ１２２に処理が依頼される。時刻Ｔ６０〜時刻Ｔ６１まで、ＧＰＵ命令６５５「２Ｃ」に従って、ＧＰＵ１２２がＧＰＵ描画処理を行う。その後、ＧＰＵ命令６５５「２Ｃ」によるＧＰＵ描画処理が完了する。
【０２５３】
第１プログラム１１からの第１描画命令「１Ｃ」は、ＧＰＵ命令６５４「１Ｂ」の処理結果に依存する。このため、第１プログラム１１からの第１描画命令「１Ｃ」は、ＧＰＵ命令６５４「１Ｂ」によるＧＰＵ描画処理が完了する時刻Ｔ５９まで待機する。時刻Ｔ５９の後、第２プログラム１２からの第２描画命令６４５「２Ｃ」によるＣＰＵ描画処理が完了する時刻Ｔ６０に、第１描画命令６４６「１Ｃ」は、処理を開始する。時刻Ｔ６０〜時刻Ｔ６２まで、第１描画命令６４６「１Ｃ」に従って、ＣＰＵ１２０がＣＰＵ描画処理を行う。その後、ＧＰＵ１２２に処理が依頼される。時刻Ｔ６２〜時刻Ｔ６３まで、第１描画命令６４６「１Ｃ」に対応するＧＰＵ命令６５６「１Ｃ」に従って、ＧＰＵ１２２がＧＰＵ描画処理を行う。その後、ＧＰＵ命令６５６「１Ｃ」によるＧＰＵ描画処理が完了する。
【０２５４】
以上説明したように、第１プログラム１１の第１描画命令「１Ａ」、「１Ｂ」及び「１Ｃ」に対応するＧＰＵ描画処理が完了したので、１フレーム分の描画イメージデータがフレームバッファ１５５に出力される。１フレーム分の描画イメージデータがフレームバッファ１５５に出力されるのは、時刻Ｔ６３においてであり、時刻Ｔ６３は、フレーム表示単位時間Ｔ０（６４７）を超過している。
【０２５５】
時刻Ｔ５１からフレーム表示単位時間Ｔ０（６４７）が経過した時点において、表示部１１２により、フレームバッファ１５５から取り出される第１プログラム１１による描画イメージデータは、完成前のものである。このように、表示の即時性に問題が発生している。
【０２５６】
（ｂ）本実施の形態を適用する場合
本実施の形態を適用する場合の各描画命令におけるＣＰＵ描画処理及びＧＰＵ描画処理の一例を、図２１に示すタイミングチャート図を用いて説明する。この図においては、横軸に時間の経過を示す。この図の一段目には、ＣＰＵ１２０において、実行される各描画命令の時間的経過を示す。また、二段目には、ＧＰＵ１２２において、実行される各ＧＰＵ命令の時間的経過を示す。
【０２５７】
第１プログラム１１からの第１描画命令６６１「１Ａ」に従って、時刻Ｔ７１〜時刻Ｔ７２まで、ＣＰＵ１２０がＣＰＵ描画処理を実行する。その結果、第１描画命令６６１「１Ａ」に対応するＧＰＵ命令「１Ａ」がコマンド待ち行列バッファ１５に格納される。その後、ＧＰＵ１２２に処理が依頼される。時刻Ｔ７２〜時刻Ｔ７４まで、第１描画命令６６１「１Ａ」に対応するＧＰＵ命令６７１「１Ａ」に従って、ＧＰＵ１２２がＧＰＵ描画処理を行う。その後、ＧＰＵ命令６７１「１Ａ」によるＧＰＵ描画処理が完了する。
【０２５８】
第２プログラム１２からの第２描画命令６６２「２Ａ」に従って、時刻Ｔ７２〜時刻Ｔ７３まで、ＣＰＵ１２０がＣＰＵ描画処理を実行する。その結果、第２描画命令６６２「２Ａ」に対応するＧＰＵ命令「２Ａ」がコマンド待ち行列バッファ１５に格納される。その後、ＧＰＵ１２２に処理が依頼される。しかしながら、時刻Ｔ７３においては、ＧＰＵ１２２は、ＧＰＵ命令６７１「１Ａ」によるＧＰＵ描画処理を実行しているので、第２描画命令６６２「２Ａ」に対応するＧＰＵ命令「２Ａ」は、待機する。時刻Ｔ７４になると、ＧＰＵ１２２は、ＧＰＵ命令６７１「１Ａ」による描画処理を完了するので、次の第２描画命令６６２「２Ａ」に対応するＧＰＵ命令「２Ａ」によるＧＰＵ描画処理の実行を開始する。ＧＰＵ１２２は、第２描画命令６６２「２Ａ」に対応するＧＰＵ命令６７２「２Ａ」によるＧＰＵ描画処理を、時刻Ｔ７４〜時刻Ｔ７６の間、実行する。その後、ＧＰＵ命令６７２「２Ａ」によるＧＰＵ描画処理が完了する。
【０２５９】
第１プログラム１１からの第１描画命令「１Ｂ」は、時刻Ｔ７３に処理を開始しようとする。しかし、時刻Ｔ７３において、第１描画命令６６１「１Ａ」に対応するＧＰＵ命令６７１「１Ａ」によるＧＰＵ描画処理が完了していない。このため、第１描画命令「１Ｂ」は、待機する。ＧＰＵ命令６７１「１Ａ」によるＧＰＵ描画処理が時刻Ｔ７４で完了した後に、第１描画命令６６３「１Ｂ」によりＣＰＵ描画処理の実行が開始される。時刻Ｔ７４〜時刻Ｔ７５まで、ＣＰＵ１２０が第１描画命令６６３「１Ｂ」を実行する。その結果、第１描画命令６６３「１Ｂ」に対応するＧＰＵ命令「１Ｂ」がコマンド待ち行列バッファ１５に格納される。その後、ＧＰＵ１２２に処理が依頼される。時刻Ｔ７５においては、ＧＰＵ１２２は、第２描画命令６６２「２Ａ」に対応するＧＰＵ命令６７２「２Ａ」によるＧＰＵ描画処理を実行中である。このため、時刻Ｔ７６にＧＰＵ命令６７２「２Ａ」によるＧＰＵ描画処理が完了した後、ＧＰＵ１２２は、ＧＰＵ命令「１Ｂ」によるＧＰＵ描画処理を開始する。ＧＰＵ１２２は、ＧＰＵ命令６７３「１Ｂ」によるＧＰＵ描画処理を、時刻Ｔ７６〜時刻Ｔ７８の間、実行する。その後、ＧＰＵ命令６７３「１Ｂ」によるＧＰＵ描画処理が完了する。
【０２６０】
時刻Ｔ７３において、第１描画命令「１Ｂ」のＣＰＵ１２０による実行が、ＧＰＵ命令「１Ａ」によるＧＰＵ描画処理の完了待ちになった時に、帯域制御部１５２の判断部１６３は、第２プログラム１２からの第２描画命令６６４「２Ｂ」の処理を継続するか待機するかを判断する。
【０２６１】
図１３におけるステップＳ１０６及びステップＳ１０７において、第１描画命令「１Ａ」のＣＰＵ予測残り処理時間及びＧＰＵ予測残り処理時間により、第２描画命令「２Ｂ」より第１描画命令「１Ｂ」を優先すると判断し、第２描画命令「２Ｂ」の実行を待機させる。
【０２６２】
さらに、第１描画命令「１Ｂ」を開始しようとするときに、判断部１６３は、第１描画命令「１Ｂ」の予測処理時間を用いて、図１４のステップＳ２０３及びステップＳ２０４で処理を再開するかどうかを判断する。この結果、第２描画命令「２Ｂ」は、引き続き、待機となる。時刻Ｔ７５に第１描画命令「１Ｂ」のＣＰＵ描画処理が終了すると、判断部１６３により、第２描画命令「２Ｂ」の予測処理時間を用いて、図１４のステップＳ２０３及びステップＳ２０４で処理を再開するかどうかを判断する。その結果、第２描画命令「２Ｂ」の処理を再開する。時刻Ｔ７５〜時刻Ｔ７７まで、ＣＰＵ１２０が第２描画命令「２Ｂ」を実行する。その結果、第２描画命令「２Ｂ」に対応するＧＰＵ命令「２Ｂ」がコマンド待ち行列バッファ１５に格納される。その後、ＧＰＵ１２２に処理が依頼される。しかしながら、時刻Ｔ７７においては、ＧＰＵ１２２は、ＧＰＵ命令６７３「１Ｂ」によるＧＰＵ描画処理を実行している。このため、ＧＰＵ命令「２Ｂ」は、実行を待機する。時刻Ｔ７８になると、ＧＰＵ１２２は、ＧＰＵ命令６７３「１Ｂ」によるＧＰＵ描画処理を完了する。この結果、次のＧＰＵ命令６７４「２Ｂ」によるＧＰＵ描画処理の実行を開始する。ＧＰＵ１２２は、ＧＰＵ命令６７４「２Ｂ」によるＧＰＵ描画処理を、時刻Ｔ７８〜時刻Ｔ８０の間、実行する。その後、ＧＰＵ命令６７４「２Ｂ」によるＧＰＵ描画処理が完了する。
【０２６３】
第１プログラム１１からの第１描画命令「１Ｃ」は、時刻Ｔ７５に処理を開始しようとする。しかし、第１描画命令６６３「１Ｂ」に対応するＧＰＵ命令「１Ｂ」によるＧＰＵ描画処理が完了していない。このため、ＣＰＵ１２０による第１描画命令「１Ｃ」の実行を待機する。この結果、第２描画命令「２Ｂ」が第１描画命令「１Ｃ」より先に実行される。ＧＰＵ命令６７３「１Ｂ」によるＧＰＵ描画処理が時刻Ｔ７８で完了した後に、ＣＰＵ１２０は、第１描画命令「１Ｃ」の実行を開始する。時刻Ｔ７８〜時刻Ｔ７９まで、ＣＰＵ１２０が第１描画命令６６５「１Ｃ」を実行する。その結果、第１描画命令６６５「１Ｃ」に対応するＧＰＵ命令「１Ｃ」がコマンド待ち行列バッファ１５に格納される。その後、ＧＰＵ１２２に処理が依頼される。時刻Ｔ７９においては、ＧＰＵ１２２は、ＧＰＵ命令６７４「２Ｂ」によるＧＰＵ描画処理を実行中である。このため、時刻Ｔ８０にＧＰＵ命令６７４「２Ｂ」によるＧＰＵ描画処理が完了した後、第１描画命令６６５「１Ｃ」に対応するＧＰＵ命令「１Ｃ」によるＧＰＵ描画処理の実行を開始する。ＧＰＵ１２２は、ＧＰＵ命令６７５「１Ｃ」によるＧＰＵ描画処理を、時刻Ｔ８０〜時刻Ｔ８１の間、実行する。その後、ＧＰＵ命令「１Ｃ」によるＧＰＵ描画処理が完了する。
【０２６４】
以上説明したように、時刻Ｔ８１において、第１プログラム１１による第１描画命令「１Ａ」、「１Ｂ」及び「１Ｃ」に対応する描画処理が完了する。こうして、第１プログラム１１による１フレーム分の描画イメージデータがフレームバッファ１５５にフレーム表示単位時間Ｔ０（６６７）以内に出力される。
【０２６５】
なお、図２１に例示するタイミングチャート図においては、第２プログラム１２の第２描画命令「２Ｃ」についても、時刻Ｔ８３で完了する。このように、第２プログラム１２による描画処理も、フレーム表示単位時間Ｔ０（６６７）内で完了する。
【０２６６】
１．８  まとめ
以上説明したように、本実施の形態によると、即時表示を必要とする図形及び即時表示を必要としない図形を一のフレームに表示する場合に、即時表示を必要とする図形の表示性能を良好に保つことができるという優れた効果を奏する。
【０２６７】
２．その他の変形例
本開示について、上記の実施の形態及び各変形例に基づいて説明しているが、上記の実施の形態及び各変形例には、限定されない。以下に示すようにしてもよい。
【０２６８】
（１）図形表示処理装置のプログラム構成は、図２２に示すようにしてもよい。
【０２６９】
ＯＳ（オペレーティングシステム）７０６の管理下において、第１プログラム７０２、第２プログラム７０３、帯域制御部７０４及びデバイスドライバ７０５が動作する。
【０２７０】
第１プログラム７０２、第２プログラム７０３、帯域制御部７０４及びデバイスドライバ７０５は、それぞれ、上記の実施の形態の第１プログラム１１、第２プログラム１２、帯域制御部１５２及びグラフィックスドライバ１５３と同様の構成を有している。
【０２７１】
第１プログラム７０２、第２プログラム７０３、帯域制御部７０４及びデバイスドライバ７０５は、ＯＳ７０６の制御の基に、ＧＰＵ７０７及びＣＰＵ７０８にアクセスする。
【０２７２】
また、第１プログラム７０２及び第２プログラム７０３は、それぞれ、帯域制御部７０４、デバイスドライバ７０５及びＯＳ７０６を介して、ＧＰＵ７０７にＧＰＵ命令を出力する。
【０２７３】
（２）図形表示処理装置のプログラム構成は、図２２に示すようにしてもよい。
【０２７４】
ＶＭＭ（仮想マシンモニタ）７３０の管理下において、第１ＯＳ７２６及び第２ＯＳ７２９が動作する。ＶＭＭ７３０は、コンピュータを仮想化し、複数の異なるＯＳを並列に実行できるようにするソフトウェアである。
【０２７５】
第１ＯＳ７２６の管理下において、第１プログラム７２２、ＧｒａｐｈｉｃｓＢＥ（バックエンド）７２３、帯域制御部７２４及びデバイスドライバ７２５が動作する。
【０２７６】
第２ＯＳ７２９の管理下において、第２プログラム７２７及びＧｒａｐｈｉｃｓＦＥ（フロントエンド）７２８が動作する。
【０２７７】
第１プログラム７２２、第２プログラム７２７、帯域制御部７２４及びデバイスドライバ７２５は、それぞれ、上記の実施の形態の第１プログラム１１、第２プログラム１２、帯域制御部１５２及びグラフィックスドライバ１５３と同様の構成を有している。
【０２７８】
第１プログラム７２２は、帯域制御部７２４、デバイスドライバ７２５、第１ＯＳ７２６及びＶＭＭ７３０を介して、ＧＰＵ７０７にＧＰＵ命令を出力する。
【０２７９】
第２プログラム７２２は、ＧｒａｐｈｉｃｓＦＥ７２８、第２ＯＳ７２９、ＶＭＭ７３０、第１ＯＳ７２６、ＧｒａｐｈｉｃｓＢＥ７２３、帯域制御部７２４、デバイスドライバ７２５、第１ＯＳ７２６及びＶＭＭ７３０を介して、ＧＰＵ７０７にＧＰＵ命令を出力する。
【０２８０】
（３）本開示の一態様は、即時表示を必要とする第１図形及び即時表示を必要としない第２図形を一のフレームに表示する図形表示処理装置であって、第１図形の描画を指示する第１描画命令及び第２図形の描画を指示する第２描画命令を記憶しているプログラム記憶手段と、各描画命令に基づいて生成されるＧＰＵ命令を実行することより、描画処理を行うグラフィックプロセッサと、プログラム記憶手段から第１描画命令及び第２描画命令を取得する取得手段と、取得された第１描画命令又は第２描画命令に基づいて生成されるＧＰＵ命令の実行により、グラフィックプロセッサにおける描画処理に要すると予測されるＧＰＵ予測処理時間を算出する予測手段と、算出されたＧＰＵ予測処理時間を用いて、第１描画命令及び第２描画命令のいずれを先に実行させるかを判断する判断手段と、第１描画命令を先に実行させると判断する場合に、第１描画命令を発行させ、第２描画命令の発行を待機させるよう制御する発行制御手段と、発行制御手段による制御に従って、各描画命令を発行する命令発行手段と、発行された各描画命令を実行することにより、ＧＰＵ命令を生成する命令実行手段とを備えることを特徴とする。
【０２８１】
ここで、第２描画命令に基づくＧＰＵ命令の実行前に、ＧＰＵ命令が実行されるべき一のフレーム表示単位時間内に、即時表示を必要としない第３図形の描画を指示する第３描画命令に基づいて生成されるＧＰＵ命令の実行が終了し、予測手段は、第２描画命令に基づくＧＰＵ命令の実行により予測されるＧＰＵ予測処理時間を算出し、判断手段は、グラフィックプロセッサにおける第３描画命令に基づくＧＰＵ命令の実行に要したＧＰＵ累計処理時間を保持し、ＧＰＵ累計処理時間と、算出されたＧＰＵ予測処理時間とを加算して、ＧＰＵ合計処理時間を算出し、算出されたＧＰＵ合計処理時間と、フレーム表示単位時間内において、即時表示を必要としない図形のＧＰＵ命令による描画処理に許容される処理時間の制限値とを比較し、ＧＰＵ合計処理時間が制限値を超える場合に、第１描画命令を先に実行させると決定してもよい。
【０２８２】
ここで、予測手段は、第１描画命令に基づくＧＰＵ命令の実行により予測されるＧＰＵ予測処理時間を算出し、判断手段は、第１描画命令に基づいて生成されたＧＰＵ命令の開始時刻を保持しており、開始時刻から現在時刻までの経過時間を算出し、ＧＰＵ予測処理時間から、算出された経過時間を差し引いて、ＧＰＵ残り処理時間を算出し、算出されたＧＰＵ残り処理時間と、第１描画命令に割り当てられた優先閾値とを比較し、ＧＰＵ残り処理時間が優先閾値より小さい場合に、第１描画命令を先に実行させると決定してもよい。
【０２８３】
ここで、第１描画命令に基づくＧＰＵ命令の実行前に、ＧＰＵ命令が実行されるべき一のフレーム表示単位時間内に、即時表示を必要とする第３図形の描画を指示する第３描画命令に基づいて生成されるＧＰＵ命令の実行が終了し、予測手段は、第１描画命令に基づくＧＰＵ命令の実行により予測されるＧＰＵ予測処理時間を算出し、判断手段は、グラフィックプロセッサにおける第３描画命令に基づくＧＰＵ命令の実行に要したＧＰＵ累計処理時間を保持し、ＧＰＵ累計処理時間と、算出されたＧＰＵ予測処理時間とを加算して、ＧＰＵ合計処理時間を算出し、算出されたＧＰＵ合計処理時間と、第１描画命令に割り当てられた優先閾値とを比較し、ＧＰＵ予測処理時間が優先閾値より小さい場合に、第１描画命令を先に実行させると決定してもよい。
【０２８４】
ここで、予測手段は、さらに、取得された第１描画命令又は第２描画命令の実行により、命令実行手段における処理に要すると予測されるＣＰＵ予測処理時間を算出し、判断手段は、判断において、算出されたＣＰＵ予測処理時間及び算出されたＧＰＵ予測処理時間を用いるとしてもよい。
【０２８５】
ここで、第２描画命令の実行及び第２描画命令に基づくＧＰＵ命令の実行前に、第２描画命令及びＧＰＵ命令が実行されるべき一のフレーム表示単位時間内に、即時表示を必要としない第３図形の描画を指示する第３描画命令の実行及び第３描画命令に基づいて生成されるＧＰＵ命令の実行が終了し、予測手段は、第２描画命令に基づくＧＰＵ命令の実行により予測されるＧＰＵ予測処理時間を算出し、さらに、第２描画命令の実行により、命令実行手段における処理に要すると予測されるＣＰＵ予測処理時間を算出し、判断手段は、命令実行手段における第３描画命令の実行及びグラフィックプロセッサにおける第３描画命令に基づくＧＰＵ命令の実行に要したＣＰＵＧＰＵ累計処理時間を保持し、ＣＰＵＧＰＵ累計処理時間と、算出されたＣＰＵ予測処理時間と、算出されたＧＰＵ予測処理時間とを加算して、ＣＰＵＧＰＵ合計処理時間を算出し、算出されたＣＰＵＧＰＵ合計処理時間と、フレーム表示単位時間内において、即時表示を必要としない図形の描画命令による処理及び描画命令に基づくＧＰＵ命令による描画処理に許容される処理時間の制限値とを比較し、ＣＰＵＧＰＵ合計処理時間が制限値を超える場合に、第１描画命令を先に実行させると決定してもよい。
【０２８６】
ここで、予測手段は、第１描画命令に基づくＧＰＵ命令の実行により予測されるＧＰＵ予測処理時間を算出し、さらに、第１描画命令の実行により、命令実行手段における処理に要すると予測されるＣＰＵ予測処理時間を算出し、判断手段は、第１描画命令の開始時刻を保持しており、開始時刻から現在時刻までの経過時間を算出し、ＧＰＵ予測処理時間とＣＰＵ予測処理時間とを加算して、加算値を算出し、加算値から、算出された経過時間を差し引いて、ＣＰＵＧＰＵ残り処理時間を算出し、算出されたＣＰＵＧＰＵ残り処理時間と、第１描画命令及び第１描画命令に基づくＧＰＵ命令に割り当てられた優先閾値とを比較し、ＣＰＵＧＰＵ残り処理時間が優先閾値より小さい場合に、第１描画命令を先に実行させると決定してもよい。
【０２８７】
ここで、第１描画命令の実行及び第１描画命令に基づくＧＰＵ命令の実行前に、第１描画命令及びＧＰＵ命令が実行されるべき一のフレーム表示単位時間内に、即時表示を必要とする第３図形の描画を指示する第３描画命令の実行及び第３描画命令に基づいて生成されるＧＰＵ命令の実行が終了し、予測手段は、第１描画命令に基づくＧＰＵ命令の実行により予測されるＧＰＵ予測処理時間を算出し、さらに、第１描画命令の実行により、命令実行手段における処理に要すると予測されるＣＰＵ予測処理時間を算出し、判断手段は、命令実行手段における第３描画命令の実行及びグラフィックプロセッサにおける第３描画命令に基づくＧＰＵ命令の実行に要したＣＰＵＧＰＵ累計処理時間を保持し、ＣＰＵＧＰＵ累計処理時間と、算出されたＣＰＵ予測処理時間と、算出されたＧＰＵ予測処理時間とを加算して、ＣＰＵＧＰＵ合計処理時間を算出し、算出されたＣＰＵＧＰＵ合計処理時間と、第１描画命令及び第１描画命令に基づくＧＰＵ命令に割り当てられた優先閾値とを比較し、ＣＰＵＧＰＵ合計処理時間が優先閾値より小さい場合に、第１描画命令を先に実行させると決定してもよい。
【０２８８】
ここで、図形表示処理装置は、さらに、判断手段により、第１描画命令を先に実行させると判断する場合に、第２描画命令の優先度より高くなるように、第１描画命令の優先度を設定する優先度設定手段と、優先度設定手段により設定された優先度に従って、取得手段による取得を制御するタスクスケジューラ手段とを備えるとしてもよい。
【０２８９】
ここで、図形表示処理装置は、車両に設置され、第１図形は、車両が走行する速度を表す図形、車両が備えるエンジン又はモータの回転数を表す図形、車両が備える機構、装置又は機械に係る警報を表す図形、又は、走行中の車両の周辺の交通状況に係る警報を表す図形であり、第２図形は、車両の運転者向けの案内用の地図図形であるとしてもよい。
【０２９０】
また、本開示の別の一態様は、即時表示を必要とする第１図形及び即時表示を必要としない第２図形を一のフレームに表示する図形表示処理装置において用いられる図形表示処理方法であって、図形表示処理装置は、第１図形の描画を指示する第１描画命令及び第２図形の描画を指示する第２描画命令を記憶しているプログラム記憶手段と、各描画命令に基づいて生成されるＧＰＵ命令を実行することより、描画処理を行うグラフィックプロセッサとを備え、図形表示処理方法は、プログラム記憶手段から第１描画命令及び第２描画命令を取得し、取得された第１描画命令又は第２描画命令に基づいて生成されるＧＰＵ命令の実行により、グラフィックプロセッサにおける描画処理に要すると予測されるＧＰＵ予測処理時間を算出し、算出されたＧＰＵ予測処理時間を用いて、第１描画命令及び第２描画命令のいずれを先に実行させるかを判断し、第１描画命令を先に実行させると判断する場合に、第１描画命令を発行させ、第２描画命令の発行を待機させるよう制御し、制御に従って、各描画命令を発行し、発行された各描画命令を実行することにより、ＧＰＵ命令を生成することを特徴とする。
【０２９１】
また、本開示の別の一態様は、即時表示を必要とする第１図形及び即時表示を必要としない第２図形を一のフレームに表示する図形表示処理装置を構成する集積回路であって、第１図形の描画を指示する第１描画命令及び第２図形の描画を指示する第２描画命令を記憶しているプログラム記憶手段と、各描画命令に基づいて生成されるＧＰＵ命令を実行することより、描画処理を行うグラフィックプロセッサと、プログラム記憶手段から第１描画命令及び第２描画命令を取得する取得手段と、取得された第１描画命令又は第２描画命令に基づいて生成されるＧＰＵ命令の実行により、グラフィックプロセッサにおける描画処理に要すると予測されるＧＰＵ予測処理時間を算出する予測手段と、算出されたＧＰＵ予測処理時間を用いて、第１描画命令及び第２描画命令のいずれを先に実行させるかを判断する判断手段と、第１描画命令を先に実行させると判断する場合に、第１描画命令を発行させ、第２描画命令の発行を待機させるよう制御する発行制御手段と、発行制御手段による制御に従って、各描画命令を発行する命令発行手段と、発行された各描画命令を実行することにより、ＧＰＵ命令を生成する命令実行手段とを備えることを特徴とする。
【０２９２】
また、本開示の別の一態様は、即時表示を必要とする第１図形及び即時表示を必要としない第２図形を一のフレームに表示する図形表示処理装置を備える車両であって、図形表示処理装置は、第１図形の描画を指示する第１描画命令及び第２図形の描画を指示する第２描画命令を記憶しているプログラム記憶手段と、各描画命令に基づいて生成されるＧＰＵ命令を実行することより、描画処理を行うグラフィックプロセッサと、プログラム記憶手段から第１描画命令及び第２描画命令を取得する取得手段と、取得された第１描画命令又は第２描画命令に基づいて生成されるＧＰＵ命令の実行により、グラフィックプロセッサにおける描画処理に要すると予測されるＧＰＵ予測処理時間を算出する予測手段と、算出されたＧＰＵ予測処理時間を用いて、第１描画命令及び第２描画命令のいずれを先に実行させるかを判断する判断手段と、第１描画命令を先に実行させると判断する場合に、第１描画命令を発行させ、第２描画命令の発行を待機させるよう制御する発行制御手段と、発行制御手段による制御に従って、各描画命令を発行する命令発行手段と、発行された各描画命令を実行することにより、ＧＰＵ命令を生成する命令実行手段とを備えることを特徴とする。
【０２９３】
（４）本開示の一態様は、グラフィックス表示処理装置であって、プロセッサと、グラフィックス処理プロセッサと、特定のプログラムよりも優先度の低いプログラムに含まれる描画命令を受け取る命令受信部と、受け取った優先度の低いプログラムに含まれる描画命令に基づく描画処理をグラフィックス処理プロセッサに実行させるのに必要な時間を予測する処理時間予測ステップと、予測した時間に基づき、優先度の低いプログラムに含まれる描画命令をプロセッサへ発行するか、発行を待機するかどうかを判断する処理判断部と、処理判断部による判断に基づいて、優先度の低いプログラムに含まれる描画命令をプロセッサへ発行するタイミングの調整を行なう処理タイミング調整部とを備える。
【０２９４】
この態様によると、表示に即時性が要求される特定のプログラムからの表示処理については即時性を保証しながら、同時に特定のプログラムよりも優先度の低いプログラム（又は、表示に即時性が要求されないプログラム）の表示を両立して行うことが可能になる。
【０２９５】
ここで、グラフィックス表示処理装置は、さらに、特定のプログラムに含まれる描画命令を受け取ったかどうかを監視する命令監視部と、命令監視部により受信した特定のプログラムに含まれる描画命令を優先度の低いプログラムに含まれる描画命令優先してプロセッサへ発行する処理優先順位調整部とを備えるとしてもよい。
【０２９６】
ここで、処理判断部は、特定のプログラムに関連するグラフィックス処理プロセッサを用いた描画処理を所定の時間間隔で完了できるように所定の時間間隔において、グラフィックス処理プロセッサを用いて優先度の低いプログラムに関連する描画処理を行える制限時間を保持し、制限時間と予測した時間に基づき、優先度の低いプログラムに含まれる描画命令をプロセッサへ発行するか、発行を待機するかどうかを判断してもよい。
【０２９７】
本開示の別の一態様は、プロセッサとグラフィックス処理プロセッサとを有する計算機に用いるグラフィックス表示処理方法であって、特定のプログラムよりも優先度の低いプログラムに含まれる描画命令を受け取る命令受信ステップと、受け取った優先度の低いプログラムに含まれる描画命令に基づく描画処理をグラフィックス処理プロセッサに実行させるのに必要な時間を予測する処理時間予測ステップと、予測した時間に基づき、優先度の低いプログラムに含まれる描画命令をプロセッサへ発行するのを待機させるかどうかを判定する判定部と、待機させた第２プログラムに含まれる描画命令をプロセッサへ発行するタイミングを調整するタイミング調整ステップとを含むことを特徴とする。
【０２９８】
また、本開示の一態様は、集積回路であって、プロセッサと、グラフィックス処理プロセッサと、特定のプログラムよりも優先度の低いプログラムに含まれる描画命令を受け取る命令受信部と、受け取った優先度の低いプログラムに含まれる描画命令に基づく描画処理をグラフィックス処理プロセッサに実行させるのに必要な時間を予測する処理時間予測ステップと、予測した時間に基づき、優先度の低いプログラムに含まれる描画命令をプロセッサへ発行するか、発行を待機するかどうかを判断する処理判断部と、処理判断部による判断に基づいて、優先度の低いプログラムに含まれる描画命令をプロセッサへ発行するタイミングの調整を行なう処理タイミング調整部とを備えることを特徴とする。
【０２９９】
（５）図４及び図５に示す図形表示処理装置１００の各機能ブロックは、典型的にはプロセッサと外部メモリとの協同で処理されるプログラムとして実現される。しかし、各機能ブロックは、集積回路であるＬＳＩで実現してもよい。各機能ブロックは、個別に１チップ化されてもよいし、一部又は全てを含むように１チップ化されてもよい。ここでは、各機能ブロックは、ＬＳＩとしているが、各機能ブロックは、ＬＳＩとは、集積度の異なるＩＣ、システムＬＳＩ、スーパーＬＳＩ又はウルトラＬＳＩであるとしてもよい。
【０３００】
また、集積回路化の手法はＬＳＩに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。ＬＳＩ製造後に、プログラムすることが可能なＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）や、ＬＳＩ内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用してもよい。
【０３０１】
さらには、半導体技術の進歩又は派生する別技術によりＬＳＩに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。
【０３０２】
また、上記の実施の形態及び各変形例において説明した図形表示処理装置は、ＣＰＵ、ＧＰＵ及びタイマを備えた計算処理装置であれば、あらゆる計算機、電子機器、情報機器、ＡＶ機器、通信機器及び家電機器にも適用可能である。これは、例えば、ＰＣ（パーソナルコンピュータ）、携帯情報端末（携帯電話、スマートフォン及びＰＤＡなど）、テレビジョン、ハーディスクレコーダ、ＤＶＤ及びブルーレィディスクなどを用いた各種ディスクレコーダ、ＤＶＤ及びブルーレィディスクなどを用いた各種ディスクプレイヤ、及びカーナビゲーション装置などにも応用できる。
【０３０３】
これらの装置は、表示装置を備え、又は、表示装置とともに、自動車、電気機関車、ディーゼル機関車、電車、リニアモータカー、航空機、船舶等に搭載される。
【０３０４】
（６）上述したように、各装置は、ＣＰＵとＧＰＵとメモリとを備えたコンピュータシステムである。メモリは、コンピュータプログラムを記憶しており、ＣＰＵ及びＧＰＵは、コンピュータプログラムに従って動作する。
【０３０５】
ここで、コンピュータプログラムは、所定の機能を達成するために、コンピュータに対する指令を示す命令コードが複数個組み合わされて構成されたものである。
【０３０６】
また、コンピュータプログラムは、コンピュータ読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、ＣＤ―ＲＯＭ、ＭＯ、ＤＶＤ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ブルーレィディスク、半導体メモリなどに記録されているとしてもよい。
【０３０７】
また、コンピュータプログラムを、電気通信回線、無線又は有線通信回線、インターネットを代表とするネットワーク、データ放送等を経由して伝送するとしてもよい。
【０３０８】
また、コンピュータプログラムを記録媒体に記録して移送することにより、又はコンピュータプログラムをネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実行するとしてもよい。
【０３０９】
（７）前述の説明は、あらゆる点において本開示の例示に過ぎず、その範囲を限定しようとするものではない。本開示の範囲を逸脱することなく、種々の改良や変形を行うことができることは言うまでもない。
【０３１０】
（８）上記実施の形態及び上記変形例をそれぞれ組み合わせるとしてもよい。
【産業上の利用可能性】
【０３１１】
本開示にかかる図形表示処理装置は、即時表示を必要とする図形及び即時表示を必要としない図形を一のフレームに表示する場合に、即時表示を必要とする図形の表示性能を良好に保つことができるという優れた効果を奏する。このため、即時表示を必要とする図形及び即時表示を必要としない図形を一のフレームに表示する技術として有用である。
【符号の説明】
【０３１２】
１０    車両
１５    コマンド待ち行列バッファ
２０    温度センサ
３０    回転数センサ
４０    速度センサ
５０    燃料センサ
６０    ハンドル
１００    図形表示処理装置
１１０    集積回路
１１１    入力部
１１２    表示部
１１３    クロックジェネレータ
１１４    ナビゲーション部
１２０    ＣＰＵ
１２１    メモリ
１２２    ＧＰＵ
１２３    バス
１２４    第１ＩＦ
１２５    第２ＩＦ
１２６    第３ＩＦ
１２７    第４ＩＦ
１２７    表示部
１５１    プログラム記憶部
１５２    帯域制御部
１５３    グラフィックスドライバ
１５４    データ記憶部
１５５    フレームバッファ
１５６    タイマ
１５７    タスクスケジューラ
１６０    取得部
１６１    命令受信部
１６２    命令監視部
１６３    判断部
１６４    予測部
１６５    命令発行部
１６６    発行制御部
１６７    優先度設定部
【図１】
2014196140.tif 000003
【図２】
2014196140.tif 000004
【図３】
2014196140.tif 000005
【図４】
2014196140.tif 000006
【図５】
2014196140.tif 000007
【図６】
2014196140.tif 000008
【図７】
2014196140.tif 000009
【図８】
2014196140.tif 000010
【図９】
2014196140.tif 000011
【図１０】
2014196140.tif 000012
【図１１】
2014196140.tif 000013
【図１２】
2014196140.tif 000014
【図１３】
2014196140.tif 000015
【図１４】
2014196140.tif 000016
【図１５】
2014196140.tif 000017
【図１６】
2014196140.tif 000018
【図１７】
2014196140.tif 000019
【図１８】
2014196140.tif 000020
【図１９】
2014196140.tif 000021
【図２０】
2014196140.tif 000022
【図２１】
2014196140.tif 000023
【図２２】
2014196140.tif 000024
【図２３】
2014196140.tif 000025
【国際調査報告】
2014196140.tif 000026
2014196140.tif 000027
2014196140.tif 000028
2014196140.tif 000029