(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-11-21
(45)【発行日】2022-11-30
(54)【発明の名称】車両用装置、車両用装置の制御方法
(51)【国際特許分類】
G09G 5/00 20060101AFI20221122BHJP
G09G 5/36 20060101ALI20221122BHJP
B60K 35/00 20060101ALI20221122BHJP
B60R 16/02 20060101ALI20221122BHJP
【FI】
G09G5/00 555P
G09G5/36 530C
G09G5/00 555S
G09G5/36 510A
B60K35/00 A
B60K35/00 Z
B60R16/02 640K
(21)【出願番号】P 2019077778
(22)【出願日】2019-04-16
【審査請求日】2021-03-03
(73)【特許権者】
【識別番号】000004260
【氏名又は名称】株式会社デンソー
(74)【代理人】
【識別番号】110000567
【氏名又は名称】弁理士法人サトー
(72)【発明者】
【氏名】谷端 伸彦
【審査官】橋本 直明
(56)【参考文献】
【文献】特開平07-244572(JP,A)
【文献】国際公開第2017/033289(WO,A1)
【文献】特開2014-021833(JP,A)
【文献】特開2008-289030(JP,A)
【文献】特開2015-041199(JP,A)
【文献】特開2008-015638(JP,A)
【文献】特開2009-179240(JP,A)
【文献】特開2017-068312(JP,A)
【文献】特開2000-056992(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G09G 5/00
G09G 5/36
B60K 35/00
B60R 16/02
(57)【特許請求の範囲】
【請求項1】
複数のアプリケーションプログラム(21)から描画が行われる車両用装置(1)であって、
複数の前記アプリケーションプログラムからの描画依頼に基づいて、表示器(2、3、4)にコンテンツとして表示される画像データであるサーフェスを、メモリ上に確保され
るデータの格納領域のうち複数の前記アプリケーションプログラムに個別に割り当てられている
格納領域である物理面に描画するグラフィック処理ユニット(13)と、
前記グラフィック処理ユニットに対する描画依頼が入力される通常キュー(13a)と、
前記通常キューよりも優先的に処理する描画依頼が入力される優先キュー(13b)と、を備え、
前記グラフィック処理ユニットは、前記優先キューに入力された描画依頼を優先しつつ、前記通常キューに入力された描画依頼をラウンドロビン形式で処理する車両用装置。
【請求項2】
複数の前記アプリケーションプログラムのうち少なくとも1つは、周期的な更新が必要とされる画像(M1~M8)の描画依頼を、前記優先キューに入力する請求項1記載の車両用装置。
【請求項3】
複数の前記アプリケーションプログラムのうち少なくとも1つは、警告表示用の画像(M3)の描画依頼を、前記優先キューに入力する請求項1または2記載の車両用装置。
【請求項4】
複数の前記アプリケーションプログラムのうち少なくとも1つは、描画を依頼する画像のうち優先的に処理すべき優先部位(M1a、M2a、M3、M8)を特定し、前記優先部位に対する描画依頼を前記優先キューに入力する一方、前記優先部位以外に対する描画依頼を前記通常キューに入力する請求項1から3のいずれか一項記載の車両用装置。
【請求項5】
複数の前記アプリケーションプログラムのうち少なくとも1つは、フルグラフィック表示が可能なメータディスプレイに表示する画像の描画依頼を入力するものであり、前記優先部位として、メータの針に対応する部位(M1a、M2a)、および、メータの警告灯に対応する部位(M3)の描画依頼のうち少なくとも一方を、前記優先キューに入力する請求項4記載の車両用装置。
【請求項6】
複数の前記アプリケーションプログラムのうち少なくとも1つは、フルグラフィック表示が可能なメータディスプレイに表示する画像の描画依頼を入力するものであり、前回描画した前記優先部位を消去するための描画依頼を、前記優先キューに入力する請求項4または5記載の車両用装置。
【請求項7】
複数の前記アプリケーションプログラムに優先順位を付け、相対的に優先順位が高い前記アプリケーションプログラムからの描画依頼を前記優先キューに入力し、相対的に優先順位が低い前記アプリケーションプログラムからの描画依頼を前記通常キューに入力する
請求項1から6のいずれか一項記載の車両用装置。
【請求項8】
車両用装置は、複数のオペレーティングシステム(20)が実装されており、
複数の前記オペレーティングシステムに優先順位を付け、相対的に優先順位が高い前記オペレーティングシステムからの描画依頼を前記優先キューに入力し、相対的に優先順位が低い前記オペレーティングシステムからの描画依頼を前記通常キューに入力する請求項1から7のいずれか一項記載の車両用装置。
【請求項9】
車両用装置は、複数のCPUモジュール(16)を備えており、
複数の前記CPUモジュールに優先順位を付け、相対的に優先順位が高い前記CPUモジュールからの描画依頼を前記優先キューに入力し、相対的に優先順位が低い前記CPUモジュールからの描画依頼を前記通常キューに入力する請求項1から8のいずれか一項記載の車両用装置。
【請求項10】
車両用装置は、複数の表示器(2、3、4)に画面を出力するものであり、
複数の前記表示器に優先順位を付け、相対的に優先順位が高い前記表示器に対応する描画依頼を前記優先キューに入力し、相対的に優先順位が低い前記表示器に対応する描画依頼を前記通常キューに入力する請求項1から9のいずれか一項記載の車両用装置。
【請求項11】
複数のアプリケーションプログラム(21)から描画が行われる車両用装置(1)の制御方法であって、
複数の前記アプリケーションプログラムからの描画依頼に基づいて、表示器(2、3、4)にコンテンツとして表示される画像データであるサーフェスを、メモリ上に確保され
るデータの格納領域のうち複数の前記アプリケーションプログラムに個別に割り当てられている
格納領域である物理面に描画する際、通常キュー(13a)に入力された描画依頼と前記通常キューよりも優先的に処理される優先キュー(13b)に入力された描画依頼とを、前記優先キューに入力された描画依頼を優先しつつ、前記通常キューに入力された描画依頼をラウンドロビン形式で処理する車両用装置の制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、車両用装置、車両用装置の制御方法に関する。
【背景技術】
【0002】
車両用装置では、速度計などをフルグラフィック表示が可能なメータディスプレイが採用されることがある。そして、例えば特許文献1では、メータディスプレイに表示される画像を短い更新周期が必要となる部位とその他の部位とに分け、更新周期が短い部位をCPUにて処理させることにより、画像を更新する際の負荷を低減することが提案されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
ところで、近年では、1つの表示器に異なるコンテンツを表示したり、複数の表示器を1つの車両用装置で制御したりすることがある。つまり、車両用装置では、複数のアプリケーションプログラムから描画が行われることがある。この場合、複数のアプリでCPUやグラフィック処理ユニットのリソースを共有することになるものの、速度の表示や警告の表示などは、即応性が必要とされることから、いわゆるマルチメディア系の描画よりも優先して処理つまり描画する必要がある。
【0005】
しかしながら、速度や警告の描画を全てにおいて優先してしまうと、他のアプリケーションプログラムへのGPUのリソースが不足してしまい、結果として、マルチメディア系のアプリケーションプログラムによる描画、例えばナビゲーション画面の表示やホーム画面の表示などに不具合が生じるおそれがある。
【0006】
本発明の目的は、即応性が必要とされる描画を優先的に処理することができるとともに、他の描画へのグラフィック処理ユニットのリソースが不足するおそれを低減することができる車両用装置、車両用装置の制御方法を提供することにある。
【課題を解決するための手段】
【0007】
上記目的を達成するために、本発明では、車両用装置(1)は、複数のアプリケーションプログラム(21)から描画が行われるものであって、複数のアプリケーションプログラムからの描画依頼に基づいて描画を行うグラフィック処理ユニット(13)と、グラフィック処理ユニットに対する描画依頼が入力される通常キュー(13a)と、通常キューよりも優先的に処理する描画依頼が入力される優先キュー(13b)と、を備え、グラフィック処理ユニットは、優先キューに入力された描画依頼を優先しつつ、通常キューに入力された描画依頼をラウンドロビン形式で処理する。
【0008】
このように、グラフィック処理ユニットに通常キューと優先キューとを設け、グラフィック処理ユニットに対してプリエンプションを行うことにより、CPU側の負荷が増加することを抑制できる。これにより、CPU側であるアプリケーションプログラムの処理を優先した結果、他のアプリケーションプログラムの実行が妨げられるような状況を回避することができる。
【0009】
そして、グラフィック処理ユニットは、優先キューに入力された描画依頼を優先するため、優先して処理すべき描画については迅速に処理することができる。また、通常キューに入力された描画依頼については、ラウンドロビン形式で処理されることから、リソースを均等且つ適切に分配することができる。
【0010】
したがって、複数のアプリケーションプログラムから描画が行われる場合であっても、即応性が必要とされる描画を優先的に処理することができるとともに、他の描画へのグラフィック処理ユニットのリソースが不足するおそれを低減することができる。そして、1つの表示器あるいは各表示器において、滑らかな表示を実現することができる。
【図面の簡単な説明】
【0011】
【
図1】第1実施形態におけるコックピットシステムの構成例を示す図
【
図4】メータディスプレイの表示態様の一例を示す図
【
図5】センターディスプレイの表示態様の一例を示す図
【
図6】ヘッドアップディスプレイの表示態様の一例を示す図
【
図7】各アプリに割り当てられている物理面の一例を示す図
【
図12】第2実施形態による、GPUへのプリエンプション時の課題を示す図
【
図14】GPUへのプリエンプションの態様を示す図
【
図17】第3実施形態によるアプリ別の優先順位の一例を示す図
【
図19】CPUモジュール別、および、コア別の優先順位の一例を示す図
【発明を実施するための形態】
【0012】
以下、複数の実施形態について図面を参照しながら説明する。なお、各実施形態において実質的に共通する部位には同一の符号を付して説明する。
【0013】
(第1実施形態)
以下、第1実施形態について説明する。
図1に示すように、車両用装置1は、例えば、メータディスプレイ2、センターディスプレイ3およびヘッドアップディスプレイ4の3つの表示器を備えるコックピットシステム5を構成している。
【0014】
メータディスプレイ2は、例えば液晶ディスプレイや有機ELディスプレイで構成されており、ダッシュボードの運転者の正面付近に設けられるものを想定している。センターディスプレイ3は、例えば液晶ディスプレイや有機ELディスプレイで構成され、センターコンソール付近に設けられるものを想定している。このメータディスプレイは、後述するように、いわゆるフルグラフィック表示で速度や警告などを表示可能な構成となっている。
【0015】
ヘッドアップディスプレイ4は、例えば液晶ディスプレイや有機ELディスプレイあるいはフロントウィンドに画像を投影する投影器で構成されており、ダッシュボード上の運転者の正面付近に設けられるものを想定している。ただし、表示器の数や配置あるいは構成は一例であり、これらに限定されない。
【0016】
なお、
図1では車両用装置1が複数の表示器に接続されている例を示しているが、本実施形態の車両用装置1は、後述するように複数のアプリケーションプログラム(以下、アプリ)から描画が行われる際の課題を解決するものである。そのため、車両用装置1に接続される表示器は1つ以上であればよい。
【0017】
この車両用装置1は、車両に設けられている幾つかの電子制御装置6(以下、ECU6)と通信可能に接続されている。なお、車両用装置1もECU6の1つとして考えることはできるものの、理解し易くするために、本明細書では車両用装置1とECU6とを分けている。
【0018】
車両用装置1は、
図2に示すように、CPU10、バスマスタ11、メインメモリ12、グラフィック処理ユニット13(以下、GPU13)、画像処理ユニット14(以下、IPU14)、通信部15などを備えている。
【0019】
GPU13は、アプリから指示されたサーフェスを実際に描画する機能部である。つまり、アプリからGPU13に対して後述する描画依頼が入力され、その描画依頼に基づいて、GPU13が実際のサーフェスを描画する。ここで、サーフェスとは、平易に言えば、ある瞬間に表示されているコンテンツ画像の元となる画像データである。また、GPU13には、後述する
図9に示すように、描画依頼を入力する通常キュー13aと、優先的に処理すべき描画依頼が入力される優先キュー13bとが設けられている。
【0020】
IPU14は、フレームバッファを読み出して表示器に例えば映像信号として出力する機能部である。つまり、IPU14によりフレームバッファ上に描画されたコンテンツを表示器に転送することにより、表示器にコンテンツが表示される。なお、IPU14は、必ずしもコンテンツを映像信号の形式で出力する必要はなく、データ形式で出力して表示器側でコンテンツに再生する構成とすることもできる。
【0021】
CPU10は、複数のコア10aを備えている。なお、ここでは、一例としてコア10aの数は8個としている。これら8個のコア10aは、4個ずつにとりまとめられ、2つのCPUモジュール16AとCPUモジュール16Bに割り振られている。つまり、車両用装置1内には、機能的に独立して動作可能な複数のCPUモジュール16が設けられている。
【0022】
また、CPUモジュール16Aは相対的にリアルタイム性が要求されるアプリケーション群22Aに割り当てられ、CPUモジュール16Bは相対的にリアルタイム性が要求されないアプリケーション群22Bに割り当てられている。以下、CPUモジュール16に共通する説明をする際にはAまたはBを付さず、単にCPUモジュール16と称する。
【0023】
各CPUモジュール16およびGPU13にはそれぞれ専用のキャッシュメモリ17が設けられている。以下、CPUモジュール16Aに設けられているものを便宜的にキャッシュ17Aと称し、CPUモジュール16Bに設けられているものを便宜的にキャッシュ17Bと称し、GPU13に設けられているものを便宜的にキャッシュ17Gと称する。そして、各キャッシュメモリ17は、バス11aおよびバスマスタ11を介してメインメモリ12とIPU14に接続されており、相互にデータの送受信が可能に構成されている。
【0024】
通信部15は、他のECU6との間の通信を行う。この通信部15は、例えばController Area Networkインターフェースで構成されている。なお、ECU6の種類によっては、例えばWifiのような無線通信方式、あるいは、USBのような有線通信方式を採用することもできる。
【0025】
車両用装置1は、
図3に示すように、CPU10上でオペレーティングシステム20(以下、OS20)が実行され、そのOS20上で複数のアプリ21が実行されている。OS20上で実行されるアプリ21としては、メータアプリ21a、ナビアプリ21b、安全アプリ21c、映像アプリ21d、HUDアプリ21eなどが設けられている。なお、HUDは、Head Up Displayの略である。また、各アプリ21は一例であり、OS20上で実行されるアプリ21はこれらに限定されない。
【0026】
メータアプリ21aは、車両の速度や回転数あるいは警告などをユーザに報知するものであるとともに、主にメータディスプレイ2に表示されるサーフェスを描画する。例えば、メータアプリ21aは、
図4に通常表示モードとして示すユーザインターフェース23のように、メータとしての速度計M1や回転数計M2、あるいは、テルテールとも称される警告灯M3などのコンテンツを表示するためのサーフェスを描画する。
【0027】
なお、上記したように、実際に描画を担当するのはGPU13であり、メータアプリ21aなどは、GPU13に対して描画依頼を出力するものである。ただし、説明の簡略化のため、ここではメータアプリ21aが描画するといった表現をしている。これは、他のアプリ21についても同様である。
【0028】
この、速度計M1は、車両の速度の変化を示すために周期的且つリアルタイムで表示を更新する必要がある針画像M1aと、針画像M1aに比べると表示の変化が少ないと想定される目盛り画像M1bとで構成されている。同様に、回転数計M2も、回転数の変化を示すために周期的且つリアルタイムで表示を更新する必要がある針画像M2aと、針画像M2aに比べると表示の変化が少ないと想定される目盛り画像M1bとで構成されている。また、メータディスプレイ2の場合、針画像M1aや目盛り画像M1bなどとは異なるレイヤーに、背景画像MBが描画されている。なお、これらの画像は一例である。
【0029】
ただし、メータアプリ21aが描画するサーフェスは、センターディスプレイ3やヘッドアップディスプレイ4にも表示可能である。また、メータアプリ21aによって描画されるサーフェスは、例示した他のアプリ21によって描画されるサーフェスよりも、相対的にリアルタイム性が要求されるものとなっている。
【0030】
ナビアプリ21bは、ナビゲーション機能を実現するものであるとともに、主にセンターディスプレイ3に表示されるサーフェスを描画する。例えば、ナビアプリ21bは、
図5に示すように、地図や車両の現在位置などを含むナビゲーション画面M4などのコンテンツを表示するためのサーフェスを描画する。ただし、ナビアプリ21bが描画したサーフェスは、例えば
図4にナビ表示モードとして示すようにメータディスプレイ2に表示することもできるし、ヘッドアップディスプレイ4にも表示することもできる。
【0031】
安全アプリ21cは、メニューの表示や運転支援用の各種の機能を実現するものであるとともに、主にセンターディスプレイ3に表示されるサーフェスを描画する。例えば、安全アプリ21cは、
図5に示すように、対象となる機能やコンテンツを選択するために複数のアイコンを配置したホーム画面M5などのコンテンツを表示するためのサーフェスを描画する。ただし、安全アプリ21cが描画したサーフェスは、例えば
図4にメニュー表示モードとして示すようにメータディスプレイ2に表示することもできるし、ヘッドアップディスプレイ4にも表示することもできる。
【0032】
HUDアプリ21eは、例えば速度や今後の進路などをユーザに報知するものであるとともに、主にヘッドアップディスプレイ4に表示されるサーフェスを描画する。例えば、HUDアプリ21eは、
図6に示すように、現在の速度情報M6や時刻情報M7あるいは曲がり角までの距離や曲がる方向などを示す進路情報M8を表示するためのサーフェスを描画する。ただし、HUDアプリ21eが描画したサーフェスは、メータディスプレイ2やセンターディスプレイ3にも表示可能である。
【0033】
これらの各アプリ21には、
図7に示すように、サーフェスを描画するための物理面30が個別に割り当てられている。つまり、各アプリ21は、コンテンツの保持単位であるサーフェスを自身に割り当てられている物理面30に描画する描画部として機能する。また、各アプリ21は、コンテンツの保持単位であるサーフェスを自身に割り当てられている物理面30に取り込んで同期させる同期部に相当する。
【0034】
これらの物理面30は、キャッシュメモリ17やメインメモリ12上に、必要となるサーフェスを描画つまりは配置できる大きさで確保されている。なお、物理面30の大きさは必ずしも表示器の画素数と一致させる必要はない。これは、物理面30に描画されたサーフェスのうち必要なサーフェスが選択されて表示器に表示されるためである。
【0035】
本実施形態では、メータアプリ21aには物理面30Aが割り当てられており、ナビアプリ21bには物理面30Bが割り当てられており、安全アプリ21cには物理面30Cが割り当てられており、映像アプリ21dには物理面30Dが割り当てられており、HUDアプリ21eには物理面30Eが割り当てられている。そして、各物理面30には、各アプリ21によって1つ以上のサーフェスが描画される。
【0036】
例えば、物理面30Aには、メータアプリ21aによってサーフェスSA1~SA3が描画される。同様に、物理面30Bには、ナビアプリ21bによってサーフェスSB1が描画される。物理面30Cには、安全アプリ21cによってサーフェスSC1、SC2が描画される。なお、
図7では、説明の簡略化のために、安全アプリ21cによって描画される複数のサーフェスをまとめてサーフェスSC1としている。物理面30Dには、映像アプリ21dによってサーフェスSD1が描画される。物理面30Eには、HUDアプリ21eによってサーフェスSE1~SE3が描画される。なお、これらのサーフェスは一例である。
【0037】
また、各表示器に表示されるコンテンツは、少なくとも1つがアニメーション動作するものとなっている。ここで、アニメーション動作とは、コンテンツを示す画像の位置や大きさが徐々に変化したり、画像が回転したり、スワイプ操作にともなってユーザインターフェース23が全体的に移動したり、画像が徐々にフェードインあるいはフェードアウトしたり、画像の色が変化したりするような表示態様である。
【0038】
例えば、
図4に示したように、速度計M1や回転数計M2あるいは地図やメニューなどは、表示モードや表示先の表示器によってその大きさや位置が変化するコンテンツである。ただし、アニメーション動作はこれらに限定されず、ある時点から連続的あるは断続的に表示態様が変化するものであればアニメーション動作に含まれる。
【0039】
次に、上記した構成の作用について説明する。
上記した速度計M1や回転数計M2あるいは警告灯M3は、車両を利用する際に必須なものであるとともに、その表示に即応性が要求されるものである。例えば、速度計M1や回転数計M2は、例えば1秒間に60回と言った周期的な表示の更新が必要であるとともに、車速の変化等に応じてリアルタイムな更新が必要になる画像である。これは、1/60秒以内に表示が更新されなければ、針画像M1aが固着して見えたり、滑らかに表示されなかったりするおそれがあるためである。
【0040】
また、警告灯M3は、例えばシートベルトが装着されていない状態や、ドアが閉まっていない状態を知らせるものであるため、それらが検知された場合には速やかに表示が更新される必要がある。つまり、警告灯M3は、車両の走行に必要とされるものであり、例えばナビゲーション画面M4のようないわゆるマルチメディア系の描画よりも優先して処理つまり描画する必要がある。なお、個々で示すものは一例であり、周期的な更新やリアルタイム性などの即応性が必要とされる描画はこれらに限定されない。
【0041】
その一方で、車両用装置1は、例えばメータディスプレイ2のような1つの表示器に異なるコンテンツを表示したり、本実施形態では複数の表示器を制御したりしている。つまり、車両用装置1は、異なるアプリ21によって描画されたコンテンツを表示可能な構成となっている。そして、車両用装置1では、複数のアプリ21がCPU10やGPU13のリソースを共有しているとともに、複数のCPUモジュールがGPU13のリソースを共有している。
【0042】
そのため、GPU13において例えばメータアプリ21aからの描画依頼を優先的に処理すると、他のアプリ21がGPU13を利用したいと思ってもリソースが不足して描画依頼を行えなくなるおそれがある。そして、速度計M1や警告灯M3などの表示と更新がスムーズに行われたとしても、ナビゲーション画面M4の表示や更新がスムーズに行われなければ、ユーザからみれば滑らかな表示が行われていないことになる。
【0043】
すなわち、複数のアプリ21から描画が行われる車両用装置1の場合には、例えばメータアプリ21aからの描画依頼を優先するといった単純な構成では、他のアプリ21で不具合が生じるおそれがある。
【0044】
そこで、本実施形態では、以下のようにして、複数のアプリ21による描画が行われる場合において、即応性が必要とされる描画を優先的に処理することができるとともに、他の描画へのGPU13のリソースが不足するおそれを低減している。なお、以下の処理は各アプリ21やGPU13で行われる処理であるが、説明の簡略化のため、ここでは車両用装置1を主体として説明する。
【0045】
車両用装置1は、描画を依頼する際、
図8に示す処理を実行し、ステップS1において描画準備を行う。この描画準備は、平易に言えば、サーフェスを描画するための大きさや色などを用意する工程である。続いて、車両用装置1は、ステップS2において、優先すべき描画であるか否かを判定する。
【0046】
例えば、車両用装置1は、メータアプリ21aからの描画であれば、優先すべき描画であると判定する。なお、メータアプリ21aが自身で優先度を判定する構成とすることもできる。この場合、車両用装置1は、ステップS2においてYESとなるため、描画依頼を優先キュー13bに対して出力する。つまり、優先すべき描画依頼は、優先キュー13bに入力される。
【0047】
このとき、GPU13には、
図9に示すように、通常キュー13aと優先キュー13bとが設けられている。つまり、車両用装置1では、GPU13に対してプリエンプションを行う構成としている。これにより、CPU10側の負荷が増加することが抑制され、例えばあるアプリ21の処理を優先した結果、他のアプリ21の実行が妨げられるような状況を回避することができる。
【0048】
そして、GPU13は、
図9にReqAとして示すように、優先キュー13bに入力された描画依頼を優先的に処理する。つまり、この場合であれば、メータアプリ21aから依頼されたサーフェスの描画を優先して行う。これにより、優先すべき描画依頼は、迅速に処理されてサーフェスが描画されることになる。
【0049】
一方、車両用装置1は、例えばReqBとして示すナビアプリ21bからのナビゲーション画面M4の描画依頼や、ReqCとして示す安全アプリ21cからのホーム画面M5の描画であれば、相対的に優先度が低いことから、優先すべき描画ではないと判定する。なお、ナビアプリ21bや安全アプリ21cが自身で優先度を判定する構成とすることもできる。この場合、車両用装置1は、ステップS2においてNOとなるため、描画依頼を通常キュー13aに対して出力する。つまり、相対的に優先度の低い描画依頼は、通常キュー13aに入力される。
【0050】
そして、GPU13は、
図9に示すように、優先キュー13bに入力された描画依頼を優先的に処理したのち、通常キュー13aに描画依頼があれば、その描画依頼をラウンドロビン形式で処理する。つまり、GPU13は、通常キュー13aに入力された描画依頼に対して、時系列でリソースを割り振りつつ順次処理を行っていく。これにより、通常キュー13aに入力された描画依頼は、均等にリソースが割り振られてサーフェスが描画されることになる。
【0051】
このように、車両用装置1は、1つのアプリ21を優先する場合に他のアプリ21に与える影響を考慮して、GPU13に対して通常キュー13aと優先キュー13bとを設ける構成、換言すると、GPU13に対してプリエンプションを行う構成とすることにより、複数のアプリ21から描画が行われる際の描画依頼を処理している。
【0052】
以上説明した実施形態によれば、次のような効果を得ることができる。
車両用装置1は、複数のアプリ21から描画が行われるものであって、複数のアプリ21からの描画依頼に基づいて描画を行うGPU13と、GPU13に対する描画依頼が入力される通常キュー13aと、通常キュー13aよりも優先的に処理する描画依頼が入力される優先キュー13bと、を備え、GPU13は、優先キュー13bに入力された描画依頼を優先しつつ、通常キュー13aに入力された描画依頼をラウンドロビン形式で処理する。
【0053】
つまり、通常キュー13aおよび優先キュー13bには、複数のアプリ21からの描画依頼、複数のOS20からの描画依頼、複数のCPUモジュール16からの描画依頼、複数のCPU10からの描画依頼、複数のコア10aからの描画依頼、および複数の表示器に対応した描画依頼のうち、少なくとも1つが入力される。
【0054】
このように、GPU13に対して通常キュー13aと優先キュー13bとを設けてプリエンプションを行う構成としたことにより、複数のアプリ21から描画が行われる際、1つのアプリ21を優先した結果、他のアプリ21の実行に対するCPU10のリソースが足らなくなることを防止できる。
【0055】
そして、GPU13は、優先キュー13bに入力された描画依頼を優先するため、優先して処理すべき描画については迅速に処理することができる。また、通常キュー13aに入力された描画依頼については、ラウンドロビン形式で処理されることから、リソースを均等且つ適切に分配することができる。
【0056】
したがって、複数のアプリケーションプログラムから描画が行われる場合であっても、即応性が必要とされる描画を優先的に処理することができるとともに、他の描画へのGPU13のリソースが不足するおそれを低減することができる。その結果、1つの表示器あるいは各表示器において、滑らかな表示を実現することができる。
【0057】
また、複数のアプリ21から描画が行われる車両用装置1において、複数のアプリ21からの描画依頼に基づいて描画を行う際、通常キュー13aに入力された描画依頼と通常キュー13aよりも優先的に処理される優先キュー13bに入力された描画依頼とを、優先キュー13bに入力された描画依頼を優先しつつ、通常キュー13aに入力された描画依頼をラウンドロビン形式で処理する制御方法によっても、同様に、即応性が必要とされる描画を優先的に処理することができるようになるとともに、他の描画へのGPU13のリソースが不足するおそれを低減することができる。
【0058】
また、車両用装置1の場合、複数のアプリ21のうち少なくとも1つは、周期的な更新が必要とされる画像の描画依頼を、優先キュー13bに入力する。これにより、例えばメータアプリ21aからの速度計M1や回転数計M2などの描画依頼を優先的に処理することができ、スムーズな表示を行うことができる。
【0059】
また、車両用装置1の場合、複数のアプリ21のうち少なくとも1つは、警告表示用の画像の描画依頼を、優先キュー13bに入力する。これにより、例えばメータアプリ21aからの警告灯M3などなどの描画依頼を優先的に処理することができ、即応性の高い表示を行うことができる。
【0060】
また、車両用装置1の場合、複数のアプリ21に優先順位を付け、相対的に優先順位が高いメータアプリ21aなどからの描画依頼を優先キュー13bに入力し、相対的に優先順位が低い例えばナビアプリ21bなどからの描画依頼を通常キュー13aに入力する。これにより、優先度の高い描画依頼と相対的に優先度が低い描画依頼とを簡潔に管理することができる。
【0061】
さて、ここまでは車両用装置1に1つのOS20が実装されている構成例を示して説明したが、車両用装置1は、異なる構成とすることもできる。例えば、車両用装置1は、
図10に示すように、CPU10上でハイパーバイザ40が実行され、そのハイパーバイザ40上で複数、例えば2つのOS20AおよびOS20Bが実行される。
【0062】
このとき、OS20AはCPUモジュール16Aに割り当てられており、OS20BはCPUモジュール16Bに割り当てられている。本実施形態では、OS20Aは相対的にリアルタイム性が高い処理を担当し、OS20Bは相対的にリアルタイム性が低い処理を担当するものを想定している。
【0063】
例えば、OS20Aでは、リアルタイム性が要求される、例えばメータアプリ21aが実行され、OS20Bでは、リアルタイム性がOS20Aほど要求されないナビアプリ21bや安全アプリ21c、映像アプリ21dやHUDアプリ21eなどが実行される。なお、OS20の種類や数あるいはアプリ21ケーションの配置は一例であり、これらに限定されない。
【0064】
このような構成であっても、複数のアプリ21による描画が行われる際、即応性が必要とされる描画を優先的に処理することができるとともに、他の描画へのリソースが不足するおそれを低減することができる。この場合、ハイパーバイザ40は、OS20Aの機能として実行される構成とすることもできる。すなわち、CPU10上でOS20Aを実行し、そのOS20の機能としてハイパーバイザ40を動作させ、そのハイパーバイザ40上でOS20Bを実行する構成とすることもできる。
【0065】
あるいは、車両用装置1は、
図11に示すように、複数のCPU10を備え、各CPU10上でそれぞれOS20AおよびOS20Bが実行される構成とすることもできる。この場合も同様に、CPU10Aでは、リアルタイム性が要求される例えばメータアプリ21aを実行し、CPU10Bでは、リアルタイム性がCPU10A側ほど要求されないナビアプリ21bや安全アプリ21c、映像アプリ21dやHUDアプリ21eなどを実行することができる。なお、CPU10の数あるいはアプリ21ケーションの配置は一例であり、これらに限定されない。
【0066】
このような構成であっても、複数のアプリ21による描画が行われる際、即応性が必要とされる描画を優先的に処理することができるとともに、他の描画へのリソースが不足するおそれを低減することができる。
【0067】
本実施形態では、周期的な更新が必要な画像として、主としてメータの針画像M1aやM2aあるいは警告灯M3を例にして説明したが、ナビゲーション画面M4、ホーム画面M5、速度情報M6、時刻情報M7あるいは進路情報M8なども、周期的な更新が必要な画像に含まれる。
【0068】
(第2実施形態)
次に、第2実施形態について説明する。第2実施形態では、GPU13に対してプリエンプションを行う際に生じる更なる課題とその解決手法について説明する。なお、説明の簡略化のために、車両用装置1やOS20あるいはアプリ21には共通する符号を付して説明する。また、車両用装置1の構成は第1実施形態と共通するため、
図2、
図3、
図10あるいは
図11等も参照しながら説明する。また、描画依頼処理の流れについては、概ね第1実施形態と共通するため、
図8も参照しながら説明する。
【0069】
まず、GPU13に対してプリエンプションを行う際に生じる更なる課題について説明する。前述のように、GPU13に対して通常キュー13aと優先キュー13bとを設けてプリエンプションを可能とすることにより、複数のアプリ21から描画が行われる際の描画依頼について、即応性が必要とされる描画を優先的に処理することができるようになるとともに、他の描画へのGPU13のリソースが不足するおそれを低減することができる。
【0070】
ここで、例えばメータディスプレイ2への表示について検討してみる。メータディスプレイ2は、フルグラフィック表示可能なものであるため、画面全体を更新するのに要する期間が長くなりがちである。これは、メータディスプレイ2の高精細化や大型化が進むにつれて顕著になると考えられる。
【0071】
具体的には、
図12に比較例として示すように、優先キュー13bにメータアプリ21aからの描画依頼が入力され、ほぼ同時期にナビアプリ21bからの描画依頼と安全アプリ21cからの描画依頼とが通常キュー13aに入力されたとする。この場合、GPU13は、優先キュー13bに入力された描画依頼をまず処理し、その後、通常キュー13aに入力された描画依頼をラウンドロビン形式で処理する。
【0072】
しかし、メータアプリ21aからは、上記したように例えば1/60秒といった周期で描画依頼が優先キュー13bに入力されることになる。そのため、メータアプリ21aからの描画要求をGPU13が処理し、続いてナビアプリ21bからの描画依頼を処理したときに、再びメータアプリ21aからの描画要求が優先キュー13bに入力されるといった状況が発生し得る。
【0073】
その場合、GPU13は、優先キュー13bに入力された描画依頼を優先して処理するため、安全アプリ21cからの描画依頼が言わば後回しにされることになる。このとき、GPU13がメータアプリ21aからの描画依頼を処理している最中に安全アプリ21cから新たな描画依頼が出力されても、安全アプリ21cからの前回の描画依頼が通常キュー13aに残っている。
【0074】
そのため、
図12に「×」の記号で示すように、新たな描画依頼は、通常キュー13aに入力されることなく保留される。そして、GPU13は、メータアプリ21aからの描画要求を処理した後、通常キュー13aに入力されている安全アプリ21cからの描画依頼を処理する。
【0075】
このように、1つの車両用装置1において複数のアプリ21から描画を行う場合や、1つの車両用装置1で複数の表示器を制御する場合には、GPU13へのプリエンプションを行ったとしても、通常キュー13aに入力された描画依頼を処理しきれなくなるおそれがある。
【0076】
そこで、本実施形態では、以下のようにして、各アプリ21からの描画要求を処理できるようにしている。車両用装置1は、
図13に示す優先部位を特定する処理を実行する。なお、この処理はアプリ21側で行われるが、説明の簡略化のため、ここでは車両用装置1を主体としている。続いて、車両用装置1は、ステップS2において、その描画が優先部位に対するものであるか否かを判定する。
【0077】
ここで、優先部位とは、更新される画面全体のうち、優先して更新する部位である。この優先部位は、例えば、画面を構成するパーツ単位の部位や、前回描画された画面との差分が生じる部位つまりは前回とは異なる描画が必要な部位が該当する。
【0078】
例えば、メータアプリ21aの場合であれば、速度計M1の針画像M1aを優先部位とし、目盛り画像M1bは優先部位にしないといったことができる。同様に、回転数計M2の針画像M2aを優先部位とし、目盛り画像M2bは優先部位にしないといったことができる。また、警告灯M3であれば、全てを優先部位とすることができる。
【0079】
針画像M1aや目盛り画像M1bは、速度計M1を表示する際のパーツとして考えることができる部位である。そして、
図15に示すように、針画像M1aは、更新される前と後とでその位置などが変化すると考えられる一方、目盛り画像M1bは、更新される前と後とで実質的には変化しないと考えられる。なお、これは、本実施形態での例であり、針画像M1aが目盛り画像M1bに重なる表示態様の場合には、目盛り画像M1bも更新前後で変化することがある。
【0080】
この点、
図4に示した通常表示モードを参照すると、更新前後で変化すると考えられる速度計M1の針画像M1a、回転数計M2の針画像M2a、および警告灯M3は、画面全体からみればごく一部であることが分かる。そのため、優先部位を更新するために要する期間は、画面全体を更新するために要する期間に比べて大幅に短縮可能であると期待できる。
【0081】
そのため、車両用装置1は、フルグラフィック表示が可能なメータディスプレイ2に表示する画像の描画依頼を入力するものであり、優先部位として、メータの針画像M1a、針画像M2a、および、警告灯M3の描画依頼のうち少なくとも一方、本実施形態では双方を、優先キュー13bに入力する。
【0082】
より具体的には、車両用装置1は、
図13に示す処理において、準備した画像が優先部位である場合には、優先部位に対する描画依頼であると判定する。この場合、車両用装置1は、ステップS12がYESとなることから、その描画依頼を優先キュー13bに出力する。一方、車両用装置1は、優先部位に対する描画依頼ではないと判定した場合には、ステップS12がNOとなることから、その描画依頼を通常キュー13aに出力する。
【0083】
このように、車両用装置1は、1つのアプリ21から描画が行われる画面全体のうち、優先的に描画すべき優先部位を特定し、第1実施形態でReqAとして説明した画面全体の描画依頼を、
図14にReqA1として示す優先部位に対する描画依頼と、ReqA2として示すその他の部位に対する描画依頼とに分ける。なお、
図14では便宜的に「針」と示しているが、優先部位に対する描画依頼には警告灯M3の描画要求も含まれている。
【0084】
そして、車両用装置1は、優先部位に対する描画依頼を優先キュー13bに出力し、その他の部位に対する描画依頼を通常キュー13aに出力する。また、車両用装置1は、優先部位に対する描画依頼を優先キュー13bに出力し、その他の部位に対する描画依頼を通常キュー13aに出力する処理を含む制御方法を採用している。
【0085】
これにより、GPU13は、優先キュー13bに入力された描画要求に対する描画、つまりは、優先すべき描画を画面全体を更新する場合に比べて短期間で行うことができる。そして、優先すべき描画を短期間で行うことができることから、通常キュー13aに入力された描画要求をラウンドロビン形式で処理する際の余裕を確保でき、上記した
図12で説明した通常キュー13aに入力された描画要求を処理しきれなくなるおそれを低減することができる。
【0086】
以上説明した実施形態によれば、次のような効果を得ることができる。
まず、車両用装置1は、GPU13に対してプリエンプションを行っていることから、上記した第1実施形態と同様に、複数のアプリ21から描画が行われる際の描画依頼について、即応性が必要とされる描画を優先的に処理することができるようになるとともに、他の描画へのGPU13のリソースが不足するおそれを低減することができる。これは、本実施形態による制御方法によっても同様である。
【0087】
そして、車両用装置1では、複数のアプリ21のうち少なくとも1つは、描画を依頼する画像のうち優先的に処理すべき優先部位を特定し、優先部位に対する描画依頼を優先キュー13bに入力する一方、優先部位以外に対する描画依頼を通常キュー13aに入力する。
【0088】
これにより、優先すべき描画を短期間で行うことができるとともに、通常キュー13aに入力された描画要求をラウンドロビン形式で処理する際の余裕を確保でき、通常キュー13aに入力された描画要求を処理しきれなくなるおそれを低減することができる。すなわち、1つのアプリ21を優先する場合に他のアプリ21に与える影響を考慮して、優先度が高い描画と相対的に優先度が低い描画とを処理することができる。
【0089】
また、車両用装置1では、複数のアプリ21のうち少なくとも1つは、フルグラフィック表示が可能なメータディスプレイ2に表示する画像の描画依頼を入力するものであり、優先部位として、メータの針画像M1aおよび針画像M2aに対応する部位の描画依頼を優先キュー13bに入力する。また、車両用装置1では、複数のアプリ21のうち少なくとも1つは、警告表示用の画像つまりは警告灯M3の描画依頼を、優先キュー13bに入力する。これらにより、定期的な更新や即応性が必要とされる針画像M1aや針画像M2aおよび警告灯M3を、適切に表示つまりは更新することができる。
【0090】
ところで、優先部位を特定することにより、優先部位の更新を適切に行うことができるものの、懸念される点もある。例えば、速度計M1の針画像M1aの描画要求を優先キュー13bに入力し、それ以外の部位の描画を通常キュー13aに入力した場合であれば、タイミングによっては、
図16に比較例として示すように、更新後の画面に、更新前の位置で針画像M1aが残像のように表示されてしまう可能性がある。これは、更新後の針画像M1aが優先して描画され、それ以外の画像の更新が後に来るためである。
【0091】
そのため、車両用装置1は、複数のアプリ21のうち少なくとも1つがフルグラフィック表示が可能なメータディスプレイ2に表示する画像の描画依頼を入力するものである場合、前回描画した優先部位を消去するための描画依頼を、優先キュー13bに入力する構成とすることができる。このような構成とすれば、
図16に実施例として示すように、更新前の位置の針画像M1aは、破線にて模式的に示すように消去され、残像のように表示されてしまうおそれを防止することができる。
【0092】
このとき、前回描画した優先部位は、上記したように画面のごく一部であり、消去するために他のアプリ21へのリソースが不足する懸念は低いと考えられる。また、前回描画した優先部位は、既に描画されているものであり、再度の準備が必要ないため、CPU10の負荷が不要に増加することも抑制される。なお、描画依頼のあった画像を配置する部位の現状を一時的に記憶しておき、次に描画依頼があった際に、記憶した部位を描画することにより、前回描画した領域を消去する構成とすることもできる。
【0093】
本実施形態では、優先部位として、主に針画像M1a、針画像M2aおよび警告灯M3を例にして説明したが、例えば進路情報M8は走行中に参照される情報であり、車両の移動に応じて随時更新する必要があるとともにリアルタイム性も要求されると考えられる。そのため、HUDアプリ21eは、進路情報M8を優先部位として描画要求を優先キュー13bに出力し、その他の部位については通常キュー13aに出力することなどができる。これは、他のアプリ21についても同様である。
【0094】
(第3実施形態)
次に、第3実施形態について説明する。第3実施形態では、通常キュー13aと優先キュー13bとに入力する描画要求の他の例について説明する。なお、車両用装置1の構成は第1実施形態や第2実施形態と共通する。
【0095】
例えば、車両用装置1は、
図17にアプリ別として示すように、複数のアプリ21に例えば数値が低いほど優先度が高くなる態様で優先順位を付け、相対的に優先順位が高い例えばメータアプリ21aなどからの描画依頼を優先キュー13bに入力し、相対的に優先順位が低い例えばナビアプリ21bなどからの描画依頼を通常キュー13aに入力する構成とすることができる。
【0096】
このようにアプリ21別に優先度を管理する構成によっても、優先度の高い描画依頼と相対的に優先度が低い描画依頼とを簡潔に管理することができる。勿論、複数のアプリ21から描画が行われる際の描画依頼について、即応性が必要とされる描画を優先的に処理することができるようになるとともに、他の描画へのGPU13のリソースが不足するおそれを低減することができるなど、第1実施形態と同様の効果を得ることができる。
【0097】
また、車両用装置1は、上記した
図10や
図11のように複数のOS20が実装されている場合、
図18にOS別として示すように、複数のOS20に優先順位を付け、相対的に優先順位が高いOS20からの描画依頼を優先キュー13bに入力し、相対的に優先順位が低いOS20からの描画依頼を通常キュー13aに入力する構成とすることができる。
【0098】
このようにOS20別に優先度を管理する構成によっても、優先度の高い描画依頼と相対的に優先度が低い描画依頼とを簡潔に管理することができる。勿論、複数のアプリ21から描画が行われる際の描画依頼について、即応性が必要とされる描画を優先的に処理することができるようになるとともに、他の描画へのGPU13のリソースが不足するおそれを低減することができるなど、第1実施形態と同様の効果を得ることができる。
【0099】
また、車両用装置1は、上記した
図2や
図10あるいは
図11のように複数のCPUモジュール16を備えている場合、
図19にモジュール別として示すように、複数のCPUモジュール16に優先順位を付け、相対的に優先順位が高いCPUモジュール16からの描画依頼を優先キュー13bに入力し、相対的に優先順位が低いCPUモジュール16からの描画依頼を通常キュー13aに入力する構成とすることができる。
【0100】
このようにCPUモジュール16別に優先度を管理する構成によっても、優先度の高い描画依頼と相対的に優先度が低い描画依頼とを簡潔に管理することができる。勿論、複数のアプリ21から描画が行われる際の描画依頼について、即応性が必要とされる描画を優先的に処理することができるようになるとともに、他の描画へのGPU13のリソースが不足するおそれを低減することができるなど、第1実施形態と同様の効果を得ることができる。
【0101】
また、車両用装置1は、上記した
図2や
図10あるいは
図11のように複数のコア10aを備えている場合、
図19にコア別として示すように、複数のコア10aに優先順位を付け、相対的に優先順位が高いコア10aからの描画依頼を優先キュー13bに入力し、相対的に優先順位が低いコア10aからの描画依頼を通常キュー13aに入力する構成とすることができる。また、車両用装置1は、上記した
図11のように複数のCPU10を備えている場合には、
図19にCPU別として示すように、複数のCPU10に優先順位を付ける構成とすることもできる。
【0102】
このようなコア10a別またはCPU10別に優先度を管理する構成によっても、優先度の高い描画依頼と相対的に優先度が低い描画依頼とを簡潔に管理することができる。勿論、複数のアプリ21から描画が行われる際の描画依頼について、即応性が必要とされる描画を優先的に処理することができるようになるとともに、他の描画へのGPU13のリソースが不足するおそれを低減することができるなど、第1実施形態と同様の効果を得ることができる。
【0103】
また、車両用装置1は、上記した
図1、
図2、
図10あるいは
図11のように複数の表示器に接続される場合、
図20に表示器別として示すように、複数の表示器に優先順位を付け、相対的に優先順位が高い表示器に対する描画依頼を優先キュー13bに入力し、相対的に優先順位が低い表示器に対する描画依頼を通常キュー13aに入力する構成とすることができる。
【0104】
このような表示器別に優先度を管理する構成によっても、優先度の高い描画依頼と相対的に優先度が低い描画依頼とを簡潔に管理することができる。勿論、複数のアプリ21から描画が行われる際の描画依頼について、即応性が必要とされる描画を優先的に処理することができるようになるとともに、他の描画へのGPU13のリソースが不足するおそれを低減することができるなど、第1実施形態と同様の効果を得ることができる。
【0105】
本開示は、実施例に準拠して記述されたが、本開示は当該実施例や構造に限定されるものではないと理解される。本開示は、様々な変形例や均等範囲内の変形をも包含する。加えて、様々な組み合わせや形態、さらには、それらに一要素のみ、それ以上、あるいはそれ以下、を含む他の組み合わせや形態をも、本開示の範疇や思想範囲に含まれるものである。
【0106】
本開示に記載の制御部及びその手法は、コンピュータプログラムにより具体化された一つ乃至は複数の機能を実行するようにプログラムされたプロセッサ及びメモリを構成することによって提供された専用コンピュータにより、実現されてもよい。あるいは、本開示に記載の制御部及びその手法は、一つ以上の専用ハードウェア論理回路によってプロセッサを構成することによって提供された専用コンピュータにより、実現されてもよい。もしくは、本開示に記載の制御部及びその手法は、一つ乃至は複数の機能を実行するようにプログラムされたプロセッサ及びメモリと一つ以上のハードウェア論理回路によって構成されたプロセッサとの組み合わせにより構成された一つ以上の専用コンピュータにより、実現されてもよい。また、コンピュータプログラムは、コンピュータにより実行されるインストラクションとして、コンピュータ読み取り可能な非遷移有形記録媒体に記憶されていてもよい。
【符号の説明】
【0107】
図面中、1は車両用装置、2はメータディスプレイ(表示器)、3はセンターディスプレイ(表示器)、4はヘッドアップディスプレイ(表示器)、13はGPU(グラフィック処理ユニット)、16A、16BはCPUモジュール、20A、20Bはオペレーティングシステム、21はアプリ(アプリケーションプログラム)、21aはメータアプリ(アプリケーションプログラム)、21bはナビアプリ(アプリケーションプログラム)、21cは安全アプリ(アプリケーションプログラム)、21dは映像アプリ(アプリケーションプログラム)、21eはHUDアプリ(アプリケーションプログラム)、M1~M8は画像、M1aは針画像(優先部位)、M2aは針画像(優先部位)、M3は警告灯(優先部位)、M8は走行情報(優先部位)を示す。