(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023084879
(43)【公開日】2023-06-20
(54)【発明の名称】半導体装置及びハードウェア仮想化方法
(51)【国際特許分類】
G06F 12/14 20060101AFI20230613BHJP
G06F 12/00 20060101ALI20230613BHJP
G06F 9/455 20180101ALI20230613BHJP
【FI】
G06F12/14 510D
G06F12/00 570A
G06F9/455 150
【審査請求】未請求
【請求項の数】8
【出願形態】OL
(21)【出願番号】P 2021199247
(22)【出願日】2021-12-08
(71)【出願人】
【識別番号】302062931
【氏名又は名称】ルネサスエレクトロニクス株式会社
(74)【代理人】
【識別番号】100103894
【弁理士】
【氏名又は名称】家入 健
(72)【発明者】
【氏名】五十嵐 隆一
(72)【発明者】
【氏名】武田 憲一
(72)【発明者】
【氏名】松原 勝重
(72)【発明者】
【氏名】柴山 哲也
【テーマコード(参考)】
5B017
5B160
【Fターム(参考)】
5B017AA02
5B017BA06
5B017BB06
5B017CA03
5B160CA02
(57)【要約】 (修正有)
【課題】OSによる半導体装置の利用範囲を切り替える際の遅延を減らす半導体装置及び半導体装置のハードウェア仮想化方法を提供する。
【解決手段】半導体装置100は、アクセス可能なOSが制限される属性レジスタR3に書き込んだOS識別子により機能ブロックを利用可能なOSを制限し、第1の入力部15、第2の入力部16及び画面合成部17の動作設定値をOS毎に作成して共有メモリ20に格納される設定値リストに記載し、第1の入力部15、第2の入力部16及び画面合成部17が、属性レジスタR3のOS識別子を参照して、自ブロックに対する利用権限を有するOS以外が作成した設定値リストに記載された動作設定値が自ブロックの設定レジスタ群R4~R6に書き込まれることを阻止するマスク回路C1~C3をそれぞれ有する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
動作設定値が格納される設定レジスタ群を含み、前記動作設定値に従って、複数のOSにより共有される共有メモリから画面データを読み出す第1の入力部及び第2の入力部と、
前記動作設定値が格納される設定レジスタ群を含み、前記第1の入力部と前記第2の入力部とが読み込んだ前記画面データに対して、前記動作設定値に従って合成処理を行い、出力画面データを生成する画面合成部と、
前記第1の入力部、前記第2の入力部及び前記画面合成部の利用権限を有するOSの種別を示すOS識別子を機能ブロック毎に格納する属性レジスタと、を有し、
前記第1の入力部、前記第2の入力部及び前記画面合成部の前記動作設定値は、前記OS毎に作成され、前記共有メモリに格納される設定値リストに記載され、
前記第1の入力部、前記第2の入力部及び前記画面合成部は、前記属性レジスタの前記OS識別子を参照して、自ブロックに対する利用権限を有するOS以外が作成した前記設定値リストに記載された前記動作設定値が自ブロックの前記設定レジスタ群に書き込まれることを阻止するマスク回路をそれぞれ有する半導体装置。
【請求項2】
前記複数のOSのうち機能安全画面の生成を担うメインOS以外のOSからのアクセスが制限され、前記設定値リストのうち前記メインOSが作成した第1の設定値リストのアドレスに関する第1のアドレス情報を格納する第1の画面更新レジスタと、
前記複数のOSのうち非機能安全画面の生成を担うサブOS用以外のOSからのアクセスが制限され、前記設定値リストのうち前記サブOSが作成した第2の設定値リストのアドレスに関する第2のアドレス情報を格納する第2の画面更新レジスタと、を有し、
前記第1の入力部、前記第2の入力部及び前記画面合成部の前記動作設定値は、前記第1のアドレス情報と第2のアドレス情報との少なくとも一方が書き換えられたことに応じて書き換えられる請求項1に記載の半導体装置。
【請求項3】
前記第1の設定値リストと及び前記第2の設定値リストは、それぞれ自リストのサイズに関する情報を有する請求項2に記載の半導体装置。
【請求項4】
前記第1の画面更新レジスタの値、前記第2の画面更新レジスタの値、及び前記属性レジスタの値のいずれか1つが更新されたことに応じて、前記第1の画面更新レジスタ及び前記第2の画面更新レジスタに格納されたアドレス情報に基づき前記設定値リストへのアクセス要求を発する起動制御回路と、
前記アクセス要求に応じて読み出した前記動作設定値を、前記アクセス要求に含まれる前記アドレス情報が格納された画面更新レジスタに対応したOSを示す読み出しOS識別子と関連付けて、前記第1の入力部、前記第2の入力部及び前記画面合成部に送信するメモリアクセス部と、を有し、
前記マスク回路は、前記読み出しOS識別子と、前記属性レジスタに格納されたOS識別子のうち自ブロックに対応した前記OS識別子と、が一致したか否かを照合する照合部を有し、前記照合部により、前記読み出しOS識別子と前記OS識別子とが一致したと判断された場合に、自ブロックの前記設定レジスタ群への前記動作設定値の書き換えを許可する請求項2に記載の半導体装置。
【請求項5】
前記照合部に与える前記OS識別子として前記属性レジスタに格納された値を用いるのか、予め設定された固定値を用いるのか、を示す占有フラグ値を前記機能ブロック毎に格納する占有設定レジスタと、
前記占有フラグ値に応じて、前記照合部に与える前記OS識別子を、前記属性レジスタに格納された値と前記固定値との間で切り替えるセレクタと、
をさらに有する請求項4に記載の半導体装置。
【請求項6】
前記占有設定レジスタに格納された前記占有フラグ値をモニタして保持するステータスレジスタと、
前記占有フラグ値と、前記照合部に入力された前記読み出しOS識別子と、前記設定レジスタ群に含まれるレジスタを指定するレジスタアドレスと、をモニタした値を保持するエラーレジスタと、
をさらに有する請求項5に記載の半導体装置。
【請求項7】
動作設定値が格納される設定レジスタ群を含み、前記動作設定値に従って動作する複数の機能ブロックと、
前記複数の機能ブロックの利用権限を有するOSの種別を示すOS識別子を前記機能ブロック毎に格納する属性レジスタと、を有し、
前記動作設定値は、前記OS毎に作成され、複数の前記OSにより共有される共有メモリに格納される設定値リストに記載され、
前記複数の機能ブロックは、前記属性レジスタの前記OS識別子を参照して、自ブロックに対する利用権限を有するOS以外が作成した前記設定値リストに記載された前記動作設定値が自ブロックの前記設定レジスタ群に書き込まれることを阻止するマスク回路をそれぞれ有する半導体装置。
【請求項8】
動作設定値が格納される設定レジスタ群を含み、前記動作設定値に従って動作し、複数のOSにより共有される複数の機能ブロックと、複数のレジスタと、を含み、複数のOS毎にアクセス範囲が制限される複数の制限領域を含む共有メモリにアクセスする半導体装置のハードウェア仮想化方法であって、
前記複数の機能ブロックの利用権限を有するOSの種別を示すOS識別子を前記機能ブロック毎に格納する属性レジスタを設定し、
前記動作設定値を、前記OS毎に作成して、前記共有メモリに格納される設定値リストに記載し、
前記属性レジスタの前記OS識別子を参照して、前記機能ブロックに対する利用権限を有するOS以外が作成した前記設定値リストに記載された前記動作設定値が前記機能ブロックの前記複数の機能ブロックに書き込まれることを阻止する半導体装置のハードウェア仮想化方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は半導体装置及びハードウェア仮想化方法に関し、例えば、演算部を複数のOSで共用する半導体装置及びハードウェア仮想化方法に関する。
【背景技術】
【0002】
プログラムに基づき各種処理を行う半導体装置では、複数のOS(Operating System)で利用するハードウェアの範囲を切替えながら処理を行うハードウェア仮想化技術がある。このような半導体装置では、複数のプログラム間で利用するメモリ空間が干渉することを防ぐメモリ保護機構が求められる。そこで、メモリ保護機構の一例が特許文献1に開示されている。
【0003】
特許文献1に記載の半導体装置は、主演算部で実行されるプログラムの一部の処理を実行する副演算部と、主演算部と副演算部とにより共用される共用メモリを有する。そして、副演算部が、主演算部から与えられるアクセス許可範囲アドレス値に基づき、副演算部で実行される処理に起因して発生する共用メモリに対するアクセスを、許可又は不許可とするメモリ保護部を有する。
【0004】
また、特許文献1に記載の半導体装置では、主演算部では、プログラムとして高い信頼性の信頼済みプログラムと信頼済みプログラムよりも信頼性が低い信頼済みでないプログラムとが実行され、副演算部のレジスタに対するアクセス許可範囲アドレス値の格納処理は、信頼済みプログラムにより行われる。
【先行技術文献】
【特許文献】
【0005】
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、特許文献1に記載の半導体装置では、メモリの保護範囲を切り替える際に切り替え処理を信頼済みプログラムにより実行しなければならず、切り替え処理に遅延が生じる問題がある。
【0007】
その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【0008】
一実施の形態によれば、半導体装置及びハードウェア仮想化方法は、アクセス可能なOSが制限される属性レジスタに書き込んだOS識別子により機能ブロックを利用可能なOSを制限し、第1の入力部、第2の入力部及び画面合成部の動作設定値をOS毎に作成して共有メモリに格納される設定値リストに記載し、第1の入力部、第2の入力部及び画面合成部が、属性レジスタのOS識別子を参照して、自ブロックに対する利用権限を有するOS以外が作成した設定値リストに記載された動作設定値が自ブロックの設定レジスタ群に書き込まれることを阻止するマスク回路をそれぞれ有する。
【発明の効果】
【0009】
前記一実施の形態によれば、半導体装置及びハードウェア仮想化方法は、ハードウェアの利用範囲の切り替え処理に要する時間を短縮することができる。
【図面の簡単な説明】
【0010】
【
図1】実施の形態1にかかる半導体装置のブロック図である。
【
図2】実施の形態1にかかる半導体装置のマスク回路とレジスタの関係を説明するブロック図である。
【
図3】実施の形態1にかかる半導体装置における画面切り替えの第1の例を説明する図である。
【
図4】実施の形態1にかかる半導体装置における画面切り替えの第2の例を説明する図である。
【
図5】実施の形態2にかかる半導体装置のブロック図である。
【
図6】実施の形態2にかかる半導体装置のマスク回路とレジスタの関係を説明するブロック図である。
【発明を実施するための形態】
【0011】
説明の明確化のため、以下の記載及び図面は、適宜、省略、及び簡略化がなされている。また、各図面において、同一の要素には同一の符号が付されており、必要に応じて重複説明は省略されている。
【0012】
以下の実施の形態で説明する半導体装置は、複数のOS(Operating System)により共用されるハードウェアであって、各OSに割り当てられるハードウェアリソースの切り替えが行われるハードウェア仮想化技術が適用される。具体的には、半導体装置は、動作設定値が格納される設定レジスタ群を含み、動作設定値に従って動作する複数の機能ブロックと、複数の機能ブロックの利用権限を有するOSの種別を示すOS識別子を機能ブロック毎に格納する属性レジスタと、を有する。そして、半導体装置で用いられる動作設定値は、OS毎に作成され、複数のOSにより共有される共有メモリに格納される設定値リストに記載される。また、複数の機能ブロックは、属性レジスタのOS識別子を参照して、自ブロックに対する利用権限を有するOS以外が作成した設定値リストに記載された動作設定値が自ブロックの設定レジスタ群に書き込まれることを阻止するマスク回路をそれぞれ有する。
【0013】
以下の説明では、半導体装置の一例として、複数のOSにより生成される画面データを合成し、当該合成処理により合成する画面データを状況に応じて変更する表示装置について説明する。なお、表示装置は、プログラムを実行する演算部の一部として組み込まれる表示IP(Intellectual Property)として実装されていても良い。また、表示装置は、複数のOSによって共有される共有メモリを利用するが、表示装置と共有メモリとを含むシステムを表示システムと称する。
【0014】
実施の形態1
まず、
図1に実施の形態1にかかる半導体装置のブロック図を示す。
図1では、表示システム100の一部に、半導体装置である表示装置10を含む。また、表示システム100では、表示装置10とは独立した半導体装置として共有メモリ20を示した。表示装置10と共有メモリ20は、1つのパッケージに収められていても良く、1つの半導体チップ上に形成されたものであっても良い。
【0015】
また、
図1に示す表示システム100では、表示装置10を共有するオペレーティングシステム(以下、OSと称す)としてメインOS(例えば、RTOS(Real Time OS))とサブOS(例えば、OpenOS1、OpenOS2)とを示した。RTOSは、例えば、高レベルの動作検証により高レベルの安全性が保障されたOSであり、表示システム100の利用者に安全機能を提供する機能安全画面を生成する。一方、OpenOS1及びOpenOS2は、例えば、オープンソースで作られたOS、或いは、商用ライセンスが一般に開放されたOS等が該当する。また、OpenOS1、OpenOS2は、OS間の処理を調停するハイパーバイザを介して表示装置10にアクセスするように構成される。なお、表示装置10に適用されるOSの数は2に限られず、少なくとも1つあればよい。
【0016】
表示装置10は、RTOS、OpenOS1及びOpenOS2が生成する画像を合成して図示しないディスプレイに表示する。このとき、表示システム100では、複数のOSが表示装置10内のレジスタに画像合成に関する動作設定値を設定することが必要になる。また、複数のOSが生成した画像を1つの表示装置10がリードするために仮想化技術が必要となる。なお、表示システム100では、バックカメラや警告メッセージなどの機能安全に関わる重要度の高い画面の生成及び画像をどのように合成するかの表示制御をRTOSが担い、ナビ画面やエンタメ画面などの安全性に関連しない画面はOpenOS1及びOpenOS2が生成する。この表示装置10の詳細については後述する。
【0017】
共有メモリ20は、RTOS、OpenOS1及びOpenOS2により共有されるメモリである。そして、共有メモリ20は、アクセスが許可されるOSが制限される複数の専用領域を有する。
図1に示す例では、共有メモリ20に設定される専用領域として、ROTS専用領域とOpenOS1専用領域とを示した。なお、共有メモリ20には、OpenOS2専用領域も設定されるが、図示を省略した。ROTS専用領域は、アクセス可能なOSがRTOSに制限されるメモリ領域である。OpenOS1専用領域は、アクセス可能なOSがOpenOS1に制限されるメモリ領域である。この専用領域の設定は、表示装置10の起動時に図示しないセキュアプロセッサにより設定される。つまり、RTOS専用領域のデータとOpenOS1専用領域のデータは、互いにデータを生成したOS以外の他のOSからの干渉が防止される。
【0018】
また、RTOS専用領域には、第1の動作設定値リスト(例えば、第1のディスプレイリスト)と第1の画面データ(例えば、第1のディスプレイデータ)がRTOSによって格納される。OpenOS1専用領域には、第2の動作設定値リスト(例えば、第2のディスプレイリスト)と第2の画面データ(例えば、第2のディスプレイデータ)がOpenOS1によって格納される。
【0019】
ディスプレイリストは、表示装置10内のレジスタアドレスADDとそのアドレスにより指定されるレジスタに格納する動作設定値SETを一要素とし、複数の要素がリスト化されたものである。表示装置10は、マスターとなって共有メモリ20からディスプレイリストを読み込み、要素毎にアドレスフィールドが指し示すレジスタアドレスADDを持つレジスタに対して、データフィールドに格納された動作設定値SETを書き込む。
【0020】
ディスプレイデータは、RTOS及びOpenOS1が生成した画像、或いは、動画のデータである。このディスプレイデータとしては、バックカメラの動画等が含まれていても良い。
【0021】
ここで、表示装置10について詳細に説明する。
図1に示すように、表示装置10は、アクセスプロテクション部11、起動制御部12、メモリアクセス部13、DL入力部14、第1の入力部15、第2の入力部16、画面合成部17、表示制御部18を有する。表示装置10では、第1の入力部15、第2の入力部16、画面合成部17、表示制御部18が具体的な処理を行う機能ブロックであり、その他の処理ブロックは、機能ブロックの動作を制御する制御ブロックと位置づけることもできる。
【0022】
アクセスプロテクション部11は、表示システム100の起動時にセキュアプロセッサにより設定される保護範囲設定値に基づき表示装置10内のレジスタにOS毎の許可権限を設定し、各OSが許可権限のあるレジスタ以外のレジスタにアクセスすることを防止する。
【0023】
起動制御部12は、第1の画面更新レジスタ(例えば、画面更新レジスタR1)、第2の画面更新レジスタ(例えば、画面更新レジスタR2)、及び、属性レジスタ(例えば、OS属性レジスタR3)を有する。
図1に示す例では、アクセスプロテクション部11により、画面更新レジスタR1及びOS属性レジスタR3にはRTOSのみがアクセス可能であり、画面更新レジスタR2にはOpenOS1及びOpenOS2のみがアクセス可能に構成される。画面更新レジスタR1には、RTOSにより、第1のディスプレイリストの格納位置を示すアドレスが格納される。画面更新レジスタR2には、OpenOS1により、第2のディスプレイリストの格納位置を示すアドレスが格納される。また、画面更新レジスタR1には、第1のディスプレイリストの大きさを示すサイズ値が格納され、画面更新レジスタR2には、第2のディスプレイリストの大きさを示すサイズ値が格納されることがある。このディスプレイリストの大きさを示すサイズ値は、ディスプレイリストのヘッダー部に含めることもでき、ディスプレイリストのヘッダー部にサイズ値が記載されている場合には、画面更新レジスタR1、R2にサイズ値は格納されない。OS属性レジスタR3には、RTOSにより、第1の入力部15、第2の入力部16、画面合成部17の利用権限を有するOSの種別を示すOS識別子を機能ブロック毎に格納される。このOS識別子は、例えば、RTOSであればID1、OpenOS1で有ればID2、OpenOS2であればID3とされるものである。
【0024】
そして、起動制御部12は、画面更新レジスタR1、画面更新レジスタR2、OS属性レジスタR3の少なくとも1つが更新されたことに応じて、画面更新レジスタR1及び画面更新レジスタR2に格納されたアドレス及びサイズ値を用いてメモリアクセス部13が共有メモリ20からディスプレイリストを読み出す読みだしリクエストを発する。
【0025】
メモリアクセス部13は、起動制御部12から受信したアクセス要求に応じて読み出したディスプレイリストに含まれる動作設定値を、アクセス要求に含まれるアドレス情報が格納された画面更新レジスタに対応したOSを示す読み出しOS識別子(例えば、読み出しID)と関連付けて、第1の入力部15、第2の入力部16及び画面合成部17に送信する。なお、メモリアクセス部13は、動作設定値に関連付けられた設定レジスタのアドレス値を有する設定レジスタに動作設定値を転送する。なお、メモリアクセス部13は、アクセス要求を発出元になった画面更新レジスタがいずれかのレジスタであったかに基づき読み出しIDを自動で生成するものとする
【0026】
また、メモリアクセス部13は、第1の入力部15及び第2の入力部16からのアクセス要求に従って共有メモリ20から画面データを読み込む。そして、メモリアクセス部13は、読み込んだ画面データをアクセス要求の発信元の機能ブロックに転送する。
【0027】
DL入力部14は、メモリアクセス部13が共有メモリ20から読み出した情報のうちディスプレイリストに関する情報と、読み出した情報に関連付けられた読み出しIDと、をメモリアクセス部13から受け取って、第1の入力部15、第2の入力部16、画面合成部17に送信する。
【0028】
第1の入力部15は、マスク回路C1と設定レジスタ群R4を有する。設定レジスタ群R4には、DL入力部14から転送された動作設定値が格納される。また、マスク回路C1は、OS属性レジスタR3のOS識別子を参照して、自ブロックに対する利用権限を有するOS以外が作成したディスプレイリストに記載された動作設定値が自ブロックの設定レジスタ群R4に書き込まれることを阻止する。
【0029】
そして、第1の入力部15は、設定レジスタ群R4に格納された動作設定値に基づき共有メモリ20に対して画面データをリクエストし、当該リクエストに対応して読み出した画面データを画面合成部17に転送する。ここで、設定レジスタ群R4に格納される動作設定値には、例えば、画面データの保存先アドレス、画面データのフォーマット、解像度、画面サイズ等の画面データに関連する情報が複数含まれる。
【0030】
第2の入力部16は、マスク回路C2と設定レジスタ群R5を有する。設定レジスタ群R5には、DL入力部14から転送された動作設定値が格納される。また、マスク回路C2は、OS属性レジスタR3のOS識別子を参照して、自ブロックに対する利用権限を有するOS以外が作成したディスプレイリストに記載された動作設定値が自ブロックの設定レジスタ群R5に書き込まれることを阻止する。
【0031】
そして、第2の入力部16は、設定レジスタ群R5に格納された動作設定値に基づき共有メモリ20に対して画面データをリクエストし、当該リクエストに対応して読み出した画面データを画面合成部17に転送する。ここで、設定レジスタ群R5に格納される動作設定値には、例えば、画面データの保存先アドレス、画面データのフォーマット、解像度、画面サイズ等の画面データに関連する情報が複数含まれる。
【0032】
画面合成部17は、マスク回路C3と設定レジスタ群R6を有する。設定レジスタ群R6には、DL入力部14から転送された動作設定値が格納される。また、マスク回路C3は、OS属性レジスタR3のOS識別子を参照して、自ブロックに対する利用権限を有するOS以外が作成したディスプレイリストに記載された動作設定値が自ブロックの設定レジスタ群R6に書き込まれることを阻止する。
【0033】
そして、画面合成部17は、設定レジスタ群R6に格納された動作設定値に基づき第1の入力部15と第2の入力部16とが読み込んだ画面データに対して、動作設定値に従って合成処理を行い、出力画面データを生成する。ここで、設定レジスタ群R6に格納される動作設定値には、例えば、生成する出力画面データ内でいずれの画像をどのように配置するのかの画面構成情報、画面データのフォーマット、解像度、画面サイズ等の出力画面データに関連する情報が複数含まれる。
【0034】
表示制御部18は、図示しないディスプレイに画面合成部17が生成した出力画面データに基づき画面を表示する。
【0035】
実施の形態1にかかる表示装置10では、マスク回路と画面更新レジスタR1、R2及びOS属性レジスタR3の構成に特徴の1つを有する。そこで、
図2に実施の形態1にかかる半導体装置のマスク回路とレジスタの関係を説明するブロック図を示す。
【0036】
図2に示すように、共有メモリ20のディスプレイリストには、エントリ毎に設定レジスタアドレスADD及び動作設定値SETが記述される。
図2に示す例では、RTOSが生成した第1のディスプレイリストは、アドレスA1に保存され、n個のエントリENT11~ENT1nにより構成される。また、OpenOS1が生成した第2のディスプレイリストは、アドレスA2に保存され、m個のエントリENT21~ENT2mにより構成される。
【0037】
また、
図2に示すように、第1の入力部15のマスク回路C1は、ID照合部31、アドレスデコーダ32を有する。また、第2の入力部16のマスク回路C2は、ID照合部33、アドレスデコーダ34を有する。画面合成部17のマスク回路C3は、アドレスデコーダ36、アドレスデコーダ36を有する。ここで、ID照合部31、33、35は、いずれも機能的には同じものである。また、アドレスデコーダ32、34、36は、いずれも機能的には同じものである。
【0038】
照合部(例えば、ID照合部)は、読み出しIDと、OS属性レジスタR3に格納されたOS識別子(例えば、ID1、ID2)のうち自ブロックに対応したOS識別子と、が一致したか否かを照合する。アドレスデコーダは、DL入力部14から送信される設定レジスタのアドレスADDをデコードして、ディスプレイリストにおいて指定された設定レジスタを書き込み許可状態にする。ここで、アドレスデコーダは、対応するID照合部において、DL入力部14から送信される読み出しIDと、自ブロックに関してOS属性レジスタR3に保存されたOS識別子とが一致したと判断された場合にのみデコード処理を実行する。つまり、マスク回路は、照合部により、読み出しIDとOS属性レジスタR3に保存された自ブロックに対応するOS識別子とが一致したと判断された場合に、自ブロックの設定レジスタ群への動作設定値の書き換えを許可する。
【0039】
図2に示す例では、第1の入力部15及び画面合成部17の利用権限はRTOSに設定される。これにより、第1の入力部15の設定レジスタ群R4及び画面合成部17の設定レジスタ群R6には、第1のディスプレイリストに記述された動作設定値SET以外は書き込みが阻害される。また、第2の入力部16の利用権限はOpenOS1に設定され、第2の入力部16の設定レジスタ群R5には、第2のディスプレイリストに記述された動作設定値SET以外は書き込みが阻害される。
【0040】
また、画面更新レジスタR1、画面更新レジスタR2、OS属性レジスタR3のいずれかが書き換えられた際には、起動制御部12は、設定レジスタ群R4~設定レジスタ群R5の書き換えを行う。このとき、起動制御部12では、画面更新レジスタR1、画面更新レジスタR2、OS属性レジスタR3へのアクセス権を変更する事はない。
【0041】
そこで、OpenOS1が行う画面更新処理の一例を以下で説明する。OpenOS1が画面更新を行う場合、以下の4つのステップを経て行われる。(ステップS1)OpenOS1は画面更新後に適用する動作設定値をハイパーバイザを介して第2のディスプレイリストに書き込む。(ステップS2)OpenOS1は、書き換えた第2のディスプレイリストを読み込むために、画面更新レジスタR2のアドレス及びサイズ値を書き換える。このとき、画面更新レジスタR2へのアクセス権限は、OpenOS1に与えられているため、OpenOS1はRTOSの処理を介在させることなく画面更新レジスタR2にアクセスする。(ステップS3)画面更新レジスタR2が書き換えられたことに応じて、起動制御部12、メモリアクセス部13、DL入力部14が動作して、OS属性がOpenOS1に設定されている第2の入力部16の設定レジスタ群R5に画面更新後の動作設定値に書き換えられる。(ステップS4)起動制御部12がOpenOS1に割り込み通知により現在のステータスを通知する。
【0042】
また、表示装置10では、ハードウェア仮想化によるOSへのハードウェア割り当てを変更する。このような利用リソース範囲の変更を行う際にも表示装置10では、OS間の通信を削減することができる。そこで、
図3に実施の形態1にかかる半導体装置における画面切り替えの第1の例を説明する図を示す。
【0043】
図3に示す例は、OpenOS1及びOpenOS2によりナビゲーション画面を表示している状態で、車両のバックギアのオン・オフが切り替えられた状態を示すものである。また、
図3に示す例では、入力部として第1の入力部から第5の入力部の5つの入力部を有するものとした。
【0044】
バックギアがオフの場合、表示システム100は、第1の入力部及び第2の入力部の利用権限をOpenOS1に与え、第3の入力部から第5の入力部の利用権限をOpenOS2に与え、画面合成部の利用権限をRTOSに与える。これは、起動制御部12のOS属性レジスタR3にこのような利用権限となるようなOS識別子をRTOSが与えることとで実現される。そして、OpenOS1により左半分画面の画面データを生成し、OpenOS2により右半分画面の画面データを生成する。
【0045】
図3に示す例では、OpenOS1が背景画像とルート画像をそれぞれ生成し、第1の入力部と第2の入力部を介して画面合成部に与える。また、OpenOS2は、背景画像、方向指示画像及び情報画像を生成し、これらを第3の入力部、第4の入力部及び第5の入力部を介して画面合成部に与える。
【0046】
そして、バックギアがオン状態に切り替えられると、表示システム100では、RTOSがOS属性レジスタR3を書き換えて、第1の入力部、第2の入力部、第3の入力部及び画面合成部の利用権限をRTOSに切り替える。また、第4の入力部及び第5の入力部に関しては利用権限を設定しないことで、停止状態とする。
【0047】
バックギアがオン状態のときは、RTOSが、第1の入力部への入力としてバックカメラ画像を与えるとともに、車両の進行予定経路を示すガイドラインと、ドライバーに警告を与えるメッセージ画像と、を生成する。そして、ガイドラインは、第2の入力部に与えられ、メッセージ画像は、第3の入力部に与えられる。
【0048】
また、
図4に実施の形態1にかかる半導体装置における画面切り替えの第2の例を説明する図を示す。
図4に示す例は、OpenOS1及びOpenOS2によりナビゲーション画面を表示している状態で、そのナビゲーション画面に機能安全に関わる警告表示をオーバーレイ表示する例である。
【0049】
図4の警告表示を行わない状態は、
図3のバックギアがオフの場合と同じである。そして、RTOSにおいて警告表示が必要と判断される状況が発生した場合、表示システム100では、RTOSがOS属性レジスタR3を書き換えて、第4の入力部及び5の入力部の利用権限をOpenOS2からRTOSに切り替える。起動制御部12は、OS属性レジスタR3が書き換えられたことに応じて、OpenOS2に機能ブロックの利用権限が変更されたことを割り込み通知する。これにより、OpenOS2は、第3の入力部に与える画面データとして、背景画像、方向指示画像、及び、情報画面を1つのナビ合成画像として生成するように処理を切りかえる。また、
図4に示す例では、RTOSは、第1警告画像を生成して第4の入力部に与え、第2警告画像を生成して第5の入力部に与える。
【0050】
上記説明より、実施の形態1にかかる表示装置10は、アクセスプロテクション部11により、複数のOSに利用される場合であっても、OS毎に表示装置10内のレジスタへのアクセス権限を制限することで、OS間の動作の干渉を防止する。また、表示システム100では、機能ブロックの動作設定値をOS毎に専用に設けられた領域にディスプレイリストとして格納し、表示装置10内でアクセス権限が制限された画面更新レジスタR1、R2に格納されたアドレスによって表示装置10内に読み込む。これにより、表示システム100では、OS間の処理の干渉を防止する。つまり、表示装置10は、複数のOSが混在する環境において、OS間で互いの動作への干渉をハードウェア的に防ぎながら、柔軟なハードウェアリソースの割り当て切り替えを行う事ができる。
【0051】
RTOSは、非常に高いレベルの動作検証により安全性が確保される信頼済みのプログラムである。一方、OpenOSは、RTOSに比べると検証レベルが低く、信頼済みでないプログラムとして捉えることができる。そのため、OpenOSのバージョン変更があることが多い。このようなRTOSとOpenOSとを混在させる環境において、RTOSとOpenOSとの間の通信が発生すると、OpenOSのバージョン変更に伴いRTOSについての動作も再検証する必要がある。このとき、RTOSに対する再検証においては再検証とはいえ高レベルな検証が求められ、時間的、コスト的な負担が増大する。しかしながら、表示装置10を用いた表示システム100では、OS間の通信が発生しないため、OpenOSに変更が生じてもRTOSの再検証が必要なく、再検証にかかる時間的、コスト的な負担を大幅に軽減することができる。
【0052】
また、実施の形態1にかかる表示装置10では、OS動作設定値を変更する際に、OS間の通信、及び、各OSがアクセスするレジスタの変更する必要がないため、動作設定値の変更に要する処理を高速化することができる。
【0053】
また、実施の形態1にかかる表示装置10を用いることで、RTOSよりも低いレベルの検証しかなされていないOpenOSが妨害することなく、高レベル検証を経たRTOSによる機能安全に関連する表示を行うことができる。
【0054】
実施の形態2
実施の形態2では、実施の形態1にかかる表示装置10の別の形態となる表示装置10aを含む表示システム200について説明する。なお、実施の形態2の説明において、実施の形態1と同じ構成要素については実施の形態1と同じ符号を付して説明を省略する。
【0055】
図5に実施の形態2にかかる表示装置10aを含む表示システム200のブロック図を示す。
図5に示すように、表示装置10aは、表示装置10の起動制御部12、第1の入力部15、第2の入力部16、画面合成部17に代えて、起動制御部12a、第1の入力部15a、第2の入力部16a、画面合成部17aを有する。
【0056】
起動制御部12aは、起動制御部12に占有設定レジスタR11、エラーレジスタR12、R13、ステータスレジスタR14を追加したものである。占有設定レジスタR11、エラーレジスタR12は、RTOSのみにアクセス権限が与えられるレジスタである。エラーレジスタR13、ステータスレジスタR14は、OpenOS(例えば、OpenOS1)のみにアクセス権が与えられるレジスタである。
【0057】
第1の入力部15aは、第1の入力部15のマスク回路C1をマスク回路C11に置き換えたものである。第2の入力部16aは、第2の入力部16のマスク回路C2をマスク回路C12に置き換えたものである。画面合成部17aは、画面合成部17のマスク回路C3をマスク回路C13に置き換えたものである。
【0058】
実施の形態2にかかる表示装置10aでは、起動制御部12a、第1の入力部15a、第2の入力部16a、画面合成部17aを有することで、各OS上で動作するアプリケーションのデバッグ性を高めることができる。そこで、起動制御部12a、第1の入力部15a、第2の入力部16a、画面合成部17aの各機能ブロックについて詳細に説明する。
【0059】
そこで、
図6に実施の形態2にかかる半導体装置のマスク回路とレジスタの関係を説明するブロック図を示す。マスク回路C11~C13は、同じ構成であるため、
図6に示す例では、第1の入力部15a、第2の入力部16a、画面合成部17aのうち第1の入力部15aについてのみマスク回路を示した。また、
図6では、第1の入力部15aに対応するOS属性レジスタR3の符号をR3a、占有設定レジスタR11の符号をR11aとした。第2の入力部16aに対応するOS属性レジスタR3の符号をR3b、占有設定レジスタR11の符号をR11bとした。画面合成部17aに対応するOS属性レジスタR3の符号をR3c、占有設定レジスタR11の符号をR11cとした。
【0060】
図6に示すように、マスク回路C11は、マスク回路C1にセレクタ41を追加したものである。また、占有設定レジスタR11に格納される値は、セレクタ41の選択信号となる占有フラグ値である。この占有フラグ値は、照合部(例えば、ID照合部31)に与えるOS識別子としてOS属性レジスタR3aに格納された値を用いるのか、予め設定された固定値(例えば、RTOSを示すID1)を用いるのか、を示すものである。占有設定レジスタR11において占有フラグ値は、機能ブロック毎に格納される。そして、セレクタ41は、占有フラグ値に応じて、ID照合部31に与えるOS識別子を、OS属性レジスタR3aに格納された値と固定値(例えば、RTOSを示すID1)との間で切り替える。
図6に示す例では、占有フラグ値が0であれば固定値がID照合部31に与えられ、占有フラグ値が1であればOS属性レジスタR3aの値がID照合部31に与えられる。なお、占有フラグ値は、RTOSの指示により機能ブロック毎に切り替えられるものとする。
【0061】
ステータスレジスタR14は、占有設定レジスタ占有設定レジスタR11に格納された占有フラグ値をモニタして保持する。エラーレジスタR12、R13は、占有フラグ値と、マスク回路内のID照合部31に入力された読み出しIDと、設定レジスタ群に含まれるレジスタを指定するレジスタアドレス(例えばアドレスデコーダの出力値)と、をモニタした値を保持する。
【0062】
実施の形態2にかかる表示システム200では、エラーレジスタR12、R13及びステータスレジスタR14によりマスク回路の入出力をモニタすることで、ソフトウェアのデバッグ性を高めることができる。また、占有設定レジスタR11に占有フラグ値を格納することで、RTOSから機能ブロックの利用権限の一時的な変更を行うことがかのうだるためさらにデバック性を高めることができる。
【0063】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は既に述べた実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において種々の変更が可能であることはいうまでもない。
【符号の説明】
【0064】
10、10a 表示装置
11 アクセスプロテクション部
12、12a 起動制御部
13 メモリアクセス部
14 DL入力部
15、15a 第1の入力部
16、16a 第2の入力部
17、17a 画面合成部
18 表示制御部
20 共有メモリ
31、33、35 ID照合部
32、34、36 アドレスデコーダ
41 セレクタ
100、200 表示システム
C1~C3、C11~C13 マスク回路
R1、R2 画面更新レジスタ
R3 OS属性レジスタ
R4~R6 設定レジスタ群
R11 占有設定レジスタ
R12、R13 エラーレジスタ
R13 エラーレジスタ
R14 ステータスレジスタ