(57)【要約】【課題】メモリサイズの削減を図る。【解決手段】情報処理装置１０のモニタ部２７は、ノンセキュアモードＮとセキュアモードＳとを切替える。ノンセキュア処理部２５は、ノンセキュアモードＮで動作し、通信データを共有メモリ２３Ａに読み書きする。セキュア処理部２６は、セキュアモードＳで動作し、通信データを共有メモリ２３Ａから読み出してストレージ２８に書き込む。メモリアクセス制御部２２は、メモリアクセス制御表に基づいて、ノンセキュア処理部２５およびセキュア処理部２６からのアクセスを管理する。メモリアクセス制御表は、共有メモリ２３Ａ内の物理アドレスと、状態情報と、を対応づけたものである。状態情報は、ノンセキュア処理部２５による書込を不可とし読取を可能とするロック状態、または、ロック状態の解除されたロック解除状態、を示す。【選択図】図３
2019101750.tif 000002
【特許請求の範囲】
【請求項１】
ノンセキュアモードとセキュアモードとを切替えるモニタ部と、
前記ノンセキュアモードで動作し、通信データを共有メモリに読み書きするノンセキュア処理部と、
前記セキュアモードで動作し、前記通信データを前記共有メモリから読み出してストレージに書き込むセキュア処理部と、
前記共有メモリ内の物理アドレスと、前記ノンセキュア処理部による書込を不可とし読取を可能とするロック状態または前記ロック状態の解除されたロック解除状態を示す状態情報と、を対応付けたメモリアクセス制御表に基づいて、前記ノンセキュア処理部および前記セキュア処理部からのアクセスを管理するメモリアクセス制御部と、
を備える情報処理装置。
【請求項２】
前記ノンセキュア処理部は、
前記通信データを前記共有メモリに書込んだときに、前記ノンセキュアモードから前記セキュアモードへ切替える第１切替指示を前記モニタ部へ通知し、
前記モニタ部は、
前記第１切替指示を受付けたときに、前記ノンセキュアモードから前記セキュアモードへ切替え、前記メモリアクセス制御表における前記通信データの書込まれた物理アドレスに対応する前記状態情報を前記ロック状態に更新する、
請求項１に記載の情報処理装置。
【請求項３】
前記ノンセキュア処理部は、
前記共有メモリに規定数の前記通信データが書込まれた場合に、前記第１切替指示を前記モニタ部へ通知する、
請求項２に記載の情報処理装置。
【請求項４】
前記モニタ部は、
前記ノンセキュアモードから前記セキュアモードへ切替える第１切替指示を、タイマ部から受付けたときに、前記ノンセキュアモードから前記セキュアモードへ切替え、前記メモリアクセス制御表における、前記通信データの書込まれた物理アドレスに対応する前記状態情報を前記ロック状態に更新し、
前記タイマ部は、前回の前記第１切替指示の送信から所定時間が経過した後に前記第１切替指示を前記モニタ部に送信する、
請求項１に記載の情報処理装置。
【請求項５】
前記セキュア処理部は、
前記共有メモリに書込まれた前記通信データを前記ストレージへ記憶したときに、前記メモリアクセス制御表における、前記ストレージへ記憶した該通信データの物理アドレスに対応する前記状態情報を前記ロック解除状態に更新した後に、前記セキュアモードから前記ノンセキュアモードへ切替える第２切替指示を前記モニタ部へ通知し、
前記モニタ部は、
前記第２切替指示を受付けたときに、前記セキュアモードから前記ノンセキュアモードへ切替える、
請求項１〜請求項４の何れか１項に記載の情報処理装置。
【請求項６】
前記セキュア処理部は、
前記共有メモリに規定数の前記通信データが書込まれた場合に、前記共有メモリに書き込まれた該通信データを前記ストレージへ記憶する、
請求項５に記載の情報処理装置。
【請求項７】
前記メモリアクセス制御部は、
前記ノンセキュア処理部からの書込違反を判定した場合、書込違反と判定した物理アドレスおよび書込対象の前記通信データを含む違反情報を、前記セキュア処理部へ通知し、
前記セキュア処理部は、
前記違反情報に応じて、該違反情報に含まれる該物理アドレスに書込済の前記通信データを前記ノンセキュア処理部から読取不可とし、該違反情報に含まれる前記通信データを前記共有メモリに書込み且つ該通信データを前記ノンセキュア処理部から読取可能とする、違反時処理を実行する違反命令実行部を有する、
請求項１〜請求項６の何れか１項に記載の情報処理装置。
【請求項８】
前記セキュアモードと前記ノンセキュアモードとに選択的に切替えられ、各々のモードでデータ処理を行うプロセッサ部を備え、
前記プロセッサ部は、
前記ノンセキュア処理部からの書込違反を判定した場合、書込違反と判定した物理アドレスに書込済の前記通信データを前記ノンセキュア処理部から読取不可とし、該書込違反と判定した書込対象の前記通信データを前記共有メモリに書込み且つ該通信データを前記ノンセキュア処理部から読取可能とする、違反時処理を実行するメモリ管理部を有する、
請求項１〜請求項６の何れか１項に記載の情報処理装置。
【請求項９】
前記違反時処理は、
書込対象の物理アドレスに書込済の前記通信データを、該物理アドレスとは異なる新たな物理アドレスに移動し、書込対象の前記通信データを書込対象の物理アドレスに書込み、書込んだ該物理アドレスに応じて、前記メモリアクセス制御表と、前記セキュア処理部の用いる仮想アドレスと物理アドレスとの対応を示すセキュアページテーブルと、を更新する処理である、
請求項７または請求項８に記載の情報処理装置。
【請求項１０】
前記違反時処理は、
書込対象の物理アドレスとは異なる新たな物理アドレスに、書込対象の前記通信データを書込み、書込んだ該物理アドレスに応じて、前記セキュア処理部の用いる仮想アドレスと物理アドレスとの対応を示すセキュアページテーブルと、前記ノンセキュア処理部の用いる仮想アドレスと物理アドレスとの対応を示すノンセキュアページテーブルと、を更新する処理である、
請求項７または請求項８に記載の情報処理装置。
【請求項１１】
前記セキュア処理部または前記モニタ部は、起動時に、前記メモリアクセス制御表の前記状態情報を全て前記ロック解除状態に更新する、
請求項１〜請求項１０の何れか１項に記載の情報処理装置。
【請求項１２】
前記ノンセキュア処理部および前記セキュア処理部は、起動時に、メモリ部における前記共有メモリのアドレスをロードする、
請求項１〜請求項１０の何れか１項に記載の情報処理装置。
【請求項１３】
前記セキュア処理部は、終了時に、前記共有メモリに格納されている前記通信データをストレージに書込む、
請求項１〜請求項１２の何れか１項に記載の情報処理装置。
【請求項１４】
ノンセキュアモードとセキュアモードとを切替えるステップと、
前記ノンセキュアモードで動作し、通信データを共有メモリに読み書きするステップと、
前記セキュアモードで動作し、前記通信データを前記共有メモリから読み出してストレージに書き込むステップと、
前記共有メモリ内の物理アドレスと、ノンセキュア処理部による書込を不可とし読取を可能とするロック状態または前記ロック状態の解除されたロック解除状態を示す状態情報と、を対応付けたメモリアクセス制御表に基づいて、ノンセキュア処理部およびセキュア処理部からのアクセスを管理するステップと、
を含む情報処理方法。
【請求項１５】
ノンセキュアモードとセキュアモードとを切替えるステップと、
前記ノンセキュアモードで動作し、通信データを共有メモリに読み書きするステップと、
前記セキュアモードで動作し、前記通信データを前記共有メモリから読み出してストレージに書き込むステップと、
前記共有メモリ内の物理アドレスと、ノンセキュア処理部による書込を不可とし読取を可能とするロック状態または前記ロック状態の解除されたロック解除状態を示す状態情報と、を対応付けたメモリアクセス制御表に基づいて、ノンセキュア処理部およびセキュア処理部からのアクセスを管理するステップと、
をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、情報処理装置、情報処理方法、およびプログラムに関する。
【背景技術】
【０００２】
複数のＯＳ（オペレーティング・システム）間や複数の仮想マシン間で、通信データの転送やロギングなどの処理を行うシステムが知られている。
【０００３】
例えば、アプリケーションが用いるメモリに格納したデータを、一方のＯＳまたは仮想マシン用のメモリやアプリケーションが用いるメモリに格納した後に、共有メモリ、および他方のＯＳまたは他方の仮想マシン用のメモリを介して、ストレージなどに複製することが行われている。しかし、従来では、通信データのロギングやルーティング時に、複数のメモリに同じ通信データを複製する必要があり、必要なメモリサイズが増大していた。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１６−１４３１２０号公報
【特許文献２】特開２０１５−１７０８８７号公報
【特許文献３】特許第６１１７０６８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明が解決しようとする課題は、メモリサイズの削減を図ることの可能な、情報処理装置、情報処理方法、およびプログラムを提供することである。
【課題を解決するための手段】
【０００６】
実施の形態の情報処理装置は、モニタ部と、ノンセキュア処理部と、セキュア処理部と、メモリアクセス制御部と、を備える。モニタ部は、ノンセキュアモードとセキュアモードとを切替える。ノンセキュア処理部は、前記ノンセキュアモードで動作し、通信データを共有メモリに読み書きする。セキュア処理部は、前記セキュアモードで動作し、前記通信データを前記共有メモリから読み出してストレージに書き込む。メモリアクセス制御部は、前記共有メモリ内の物理アドレスと、前記ノンセキュア処理部による書込を不可とし読取を可能とするロック状態または前記ロック状態の解除されたロック解除状態を示す状態情報と、を対応付けたメモリアクセス制御表に基づいて、前記ノンセキュア処理部および前記セキュア処理部からのアクセスを管理する。
【図面の簡単な説明】
【０００７】
【図１】情報処理システムの概要を示す模式図。
【図２】ハードウェア構成例を示すブロック図。
【図３】ハードウェアとソフトウェア構成を示す模式図。
【図４】ノンセキュアページテーブル、セキュアページテーブル、およびメモリアクセス制御表のデータ構成を示す模式図。
【図５】通信処理を示すシーケンス図。
【図６】従来構成におけるデータの流れを示す模式図。
【図７】データの流れを示す模式図。
【図８】通信処理の流れのシーケンス図。
【図９】通信処理の流れのシーケンス図。
【図１０】ハードウェアとソフトウェア構成を示す模式図。
【図１１】メモリ部を示す模式図。
【図１２】違反時処理の説明図。
【図１３】違反時処理の説明図。
【図１４】違反時処理の説明図。
【図１５】通信処理の流れのシーケンス図。
【図１６】通信処理の流れのシーケンス図。
【発明を実施するための形態】
【０００８】
以下、図面を参照しながら、情報処理装置、情報処理方法、およびプログラムの一の実施形態を説明する。
【０００９】
実施の形態の情報処理システムは、例えば、移動体の一例である自動車に搭載される車載ネットワークシステム（通信システム）に適用できる。以下では、車載ネットワークシステムに含まれる車載ゲートウェイ装置（以下、「ＧＷ」と略称する）を、実施の形態の情報処理装置として構成した例を説明する。
【００１０】
なお、実施形態の情報処理システムを適用可能な装置やシステムは以下の例に限られない。実施の形態の情報処理システムは、通信データを通信する、様々なシステムに広く適用可能である。
【００１１】
（第１の実施の形態）
図１は、情報処理システム１の概要を示す模式図である。情報処理システム１は、例えば、車両２に搭載されている。
【００１２】
情報処理システム１は、情報処理装置１０と、複数のノード１２と、を備える。
【００１３】
情報処理装置１０と複数のノード１２とは、ネットワークＮＷを介して接続されている。図１に示す例では、情報処理システム１は、ネットワークＮＷとして、複数のサブネットワーク（サブネットワークＮＷ１、サブネットワークＮＷ２）を含む。これらの複数のサブネットワークの各々には、ノード１２が接続されている。また、これらの複数のサブネットワークは、情報処理装置１０に接続されている。
【００１４】
また、情報処理装置１０には、Ｖ２Ｘ通信モジュール１４および通信モジュール１６が接続されている。通信モジュール１６は、外部ネットワーク１８を介して外部装置と通信するためのモジュールである。Ｖ２Ｘ通信モジュール１４は、通信インフラを介さずに、他の車両２との間で直接無線通信を行うためのモジュールである。直接無線通信には、例えば、車車間・路車間通信（Ｖ２Ｘ：Ｖｅｈｉｃｌｅ−ｔｏ−Ｅｖｅｒｙｔｈｉｎｇ）を用いる。なお、Ｖ２Ｘ通信は、Ｃ２Ｘ（Ｃａｒ−ｔｏ−Ｘ）通信と称される場合もある。
【００１５】
図１には、情報処理装置１０を、ＧＷとして構成した場合を、一例として示した。本実施の形態では、情報処理装置１０は、本来のゲートウェイとしての機能に加えて、後述する各処理を実行する。本来のゲートウェイとしての機能は、例えば、情報処理システム１内のサブネットワーク（例えば、サブネットワークＮＷ１、サブネットワークＮＷ２）間の通信の中継およびフィルタリングや、情報処理システム１と車外の外部ネットワーク１８との間の通信の中継およびフィルタリングや、他の車両２との直接の通信の中継およびフィルタリングなどである。
【００１６】
ノード１２は、情報処理装置１０を介して他のノード１２との間で、通信データを通信する電子機器である。ノード１２は、例えば、ＥＣＵ（電子制御装置：Ｅｌｅｃｔｒｏｎｉｃ  Ｃｏｎｔｒｏｌ  Ｕｎｉｔ）や、各種センサや、アクチュエータなどである。ＥＣＵは、車両２における各種制御を行う電子機器である。
【００１７】
情報処理システム１の通信規格は限定されない。情報処理システム１の通信規格は、例えば、ＣＡＮ（Ｃｏｎｔｒｏｌｌｅｒ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）やＦｌｅｘＲａｙ（登録商標）などである。
【００１８】
図２は、情報処理装置１０のハードウェア構成例を示すブロック図である。情報処理装置１０は、プロセッサ部２０と、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）６２と、ＭＰＵ（Ｍｅｍｏｒｙ  Ｐｒｏｔｅｃｔｉｏｎ  Ｕｎｉｔ）６３と、ＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）６４と、ネットワークＩ／Ｆ６５と、通信Ｉ／Ｆ６６と、通信Ｉ／Ｆ６９と、ストレージ２８と、タイマ部２４と、がバスＢを介して接続された構成である。
【００１９】
プロセッサ部２０は、コンピュータシステムを集積回路として組み込んだものであり、コンピュータシステム上で動作するプログラム（ソフトウェア）に従って、様々な制御を実行する。プロセッサ部２０は、例えば、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）やマイクロプロセッサである。
【００２０】
プロセッサ部２０は、ＭＭＵ（Ｍｅｍｏｒｙ  Ｍａｎａｇｅｍｅｎｔ  Ｕｎｉｔ）６１を含む。ＭＭＵ６１は、ＣＰＵの要求するメモリアクセスを処理する。ＲＯＭ６２は、各種データを記憶する。ＲＯＭ６２は、情報処理装置１０で実行される処理を実現するための各種プログラムを記憶する。ＭＰＵ６３は、プロセッサ部２０の状態に応じて、ＤＲＡＭ６４へのアクセス制御を行う。
【００２１】
ネットワークＩ/Ｆ６５は、サブネットワークを介してノード１２と通信するための通信インターフェースである。通信Ｉ/Ｆ６６は、直接無線通信を行う通信インターフェースである。通信Ｉ/Ｆ６９は、外部ネットワーク１８を介して外部装置と通信する通信インターフェースである。なお、ネットワークＩ／Ｆ６５、通信Ｉ／Ｆ６６、および通信Ｉ／Ｆ６９を総称して説明する場合には、通信部１１と称して説明する場合がある。ストレージ２８は、各種情報を記憶するメモリである。タイマ部２４は、時間カウントを行う機器である。
【００２２】
情報処理装置１０では、プロセッサ部２０が、ＲＯＭ６２からプログラムを読み出して実行することにより、後述する各種の機能が実現される。
【００２３】
図３は、本実施の形態の情報処理装置１０のハードウェアとソフトウェア構成の一例を示す模式図である。
【００２４】
情報処理装置１０は、ハードウェア部３０と、モニタ部２７と、ノンセキュア処理部２５と、セキュア処理部２６と、ノンセキュアアプリケーション３２と、セキュアアプリケーション３３と、を備える。
【００２５】
ハードウェア部３０は、プロセッサ部２０と、メモリ部２３と、メモリアクセス制御部２２と、ストレージ２８と、タイマ部２４と、を備える。
【００２６】
本実施の形態では、プロセッサ部２０は、複数のオペレーティングシステム（ＯＳ）を実行する機能を有する。ＯＳは、各種デバイスの管理などを行い、アプリケーションプログラム（以下の説明では、単に「アプリ」または「アプリケーション」と称する場合がある）から各種デバイスを利用できるようにするためのプログラムである。
【００２７】
本実施の形態では、プロセッサ部２０は、セキュアモードＳとノンセキュアモードＮと称される二つのモードで、プログラムを分離して実行可能である。すなわち、プロセッサ部２０は、セキュアモードＳとノンセキュアモードＮとで、それぞれ別々のＯＳやアプリケーションを動作させることが可能である。
【００２８】
セキュアモードＳは、脆弱性混入リスクを最小化したＯＳやアプリケーションを動作させるモードである。ノンセキュアモードＮは、セキュアモードＳに比べてセキュリティ性の低いＯＳやアプリケーションを動作させるモードである。
【００２９】
プロセッサ部２０は、メモリ管理部２９を含む。メモリ管理部２９は、上記ＭＭＵ６１で実現する。
【００３０】
メモリ部２３は、各種データを記憶する。メモリ部２３は、例えば、ＤＲＡＭ６４である（図２参照）。メモリ部２３には、複数の記憶領域が設けられている。具体的には、メモリ部２３は、共有メモリ２３Ａと、ＮＳＯＳ（ノンセキュアＯＳ）メモリ２３Ｂと、ＮＳＡＰ（ノンセキュアアプリケーション）メモリ２３Ｃと、ＳＯＳ（セキュアＯＳ）メモリ２３Ｄと、ＳＡＰ（セキュアアプリケーション）メモリ２３Ｅと、を備える。
【００３１】
共有メモリ２３Ａは、セキュアモードＳとノンセキュアモードＮとの双方で共有して用いるメモリ領域である。具体的には、共有メモリ２３Ａは、セキュアモードＳで動作するＯＳおよびアプリケーションと、ノンセキュアモードＮで動作するＯＳおよびアプリケーションと、の双方が共有して用いるメモリ領域である。
【００３２】
ＮＳＯＳメモリ２３Ｂは、ノンセキュア処理部２５が処理時に用いるメモリ領域である。ＮＳＡＰメモリ２３Ｃは、ノンセキュアアプリケーション３２が処理時に用いるメモリ領域である。ＳＯＳメモリ２３Ｄは、セキュア処理部２６が処理時に用いるメモリ領域である。ＳＡＰメモリ２３Ｅは、セキュアアプリケーション３３が処理時に用いるメモリ領域である。
【００３３】
メモリアクセス制御部２２は、メモリ部２３へのアクセスを制御する。メモリアクセス制御部２２は、ＭＰＵ６３で実現する（図２参照）。メモリアクセス制御部２２の詳細は、後述する。
【００３４】
モニタ部２７は、ノンセキュアモードＮとセキュアモードＳとを切替える。
【００３５】
モニタ部２７は、切替部２７Ａを含む。切替部２７Ａは、切替指示を受付けたときに、ノンセキュアモードＮからセキュアモードＳへ、または、セキュアモードＳからノンセキュアモードＮへ、モードの切替えを行う。切替指示は、セキュアモニタコール（ＳＭＣ）と称される場合がある。
【００３６】
例えば、切替部２７Ａは、ノンセキュアモードＮからセキュアモードＳへ切替える第１切替指示を受付けたときに、ノンセキュアモードＮからセキュアモードＳへ、モードを切替える。第１切替指示は、切替指示の一例である。また、切替部２７Ａは、セキュアモードＳからノンセキュアモードＮへ切替える第２切替指示を受付けたときに、セキュアモードＳからノンセキュアモードＮへ、モードを切替える。第２切替指示は、切替指示の一例である。
【００３７】
ノンセキュアアプリケーション３２は、ノンセキュアモードＮで動作するアプリケーションである。すなわち、ノンセキュアアプリケーション３２は、セキュアモードＳで動作するアプリケーションに比べて、セキュリティの低いアプリケーションである。ノンセキュアアプリケーション３２は、例えば、通信データのルーティングを行う。本実施の形態では、ルーティングとは、受信した通信データに対して、通信元や通信先などに応じた各種処理を施し、通信先を決定する処理である。
【００３８】
ノンセキュア処理部２５は、ノンセキュアモードＮで動作するＯＳである。
【００３９】
本実施の形態では、ノンセキュア処理部２５は、ノンセキュアモードＮで動作し、通信データを共有メモリ２３Ａに対して読み書きする。メモリアクセス部２５Ａは、メモリアクセス制御部２２を介して、共有メモリ２３Ａに対して読み書きを行う。
【００４０】
このとき、ノンセキュア処理部２５は、ノンセキュアページテーブルを用いて、共有メモリ２３Ａに対して読み書きを行う。
【００４１】
図４は、ノンセキュアページテーブル３４、セキュアページテーブル３５、およびメモリアクセス制御表３６のデータ構成の一例を示す模式図である。セキュアページテーブル３５およびメモリアクセス制御表３６については後述する。
【００４２】
ノンセキュアページテーブル３４は、ノンセキュア処理部２５が用いるページテーブルである。ノンセキュアページテーブル３４は、仮想アドレスと物理アドレスのマッピングを格納したテーブルである。ノンセキュアページテーブル３４における仮想アドレスは、ノンセキュア処理部２５で用いる仮想アドレス空間におけるアドレスである。物理アドレスは、共有メモリ２３Ａ内におけるアドレスを示す。
【００４３】
例えば、メモリアクセス部２５Ａは、ノンセキュアページテーブル３４における、読取り対象の仮想アドレスに対応する物理アドレスに格納されている通信データを、共有メモリ２３Ａから読取る。
【００４４】
図３に戻り説明を続ける。ノンセキュア処理部２５は、モニタ部２７に対して第１切替指示を通知する。例えば、ノンセキュア処理部２５は、通信データを共有メモリ２３Ａに書込んだときに、ノンセキュアモードＮからセキュアモードＳへ切替える第１切替指示をモニタ部２７へ通知する。
【００４５】
セキュアアプリケーション３３は、セキュアモードＳで動作するアプリケーションである。すなわち、セキュアアプリケーション３３は、ノンセキュアモードＮで動作するアプリケーションに比べて、セキュリティの高いアプリケーションである。セキュアアプリケーション３３は、ロギングを行う。本実施の形態では、ロギングとは、通信データをストレージ２８へ書込む処理である。
【００４６】
セキュア処理部２６は、セキュアモードＳで動作するＯＳである。
【００４７】
セキュア処理部２６は、通信データを共有メモリ２３Ａから読み出してストレージ２８へ書込む。セキュア処理部２６は、セキュアページテーブル３５を用いて、共有メモリ２３Ａに対して読み書きを行う（図４参照）。
【００４８】
図４に示すように、セキュアページテーブル３５は、セキュア処理部２６が用いるページテーブルである。セキュアページテーブル３５は、仮想アドレスと物理アドレスのマッピングを格納したテーブルである。セキュアページテーブル３５における仮想アドレスは、セキュア処理部２６で用いる仮想アドレス空間におけるアドレスである。物理アドレスは、共有メモリ２３Ａにおけるアドレスを示す。
【００４９】
図３に戻り説明を続ける。例えば、セキュア処理部２６は、共有メモリ２３Ａに格納されている通信データを、ストレージ２８へ記憶する。詳細には、セキュア処理部２６は、共有メモリ２３Ａに規定数の通信データが書込まれた場合に、共有メモリ２３Ａに書き込まれた通信データの記憶指示を、セキュアアプリケーション３３へ通知する。記憶指示を受付けたセキュアアプリケーション３３は、共有メモリ２３Ａに格納されている通信データをストレージ２８へ書込む、ロギングを実行する。
【００５０】
また、セキュア処理部２６は、モニタ部２７に対して第２切替指示を通知する。例えば、セキュア処理部２６は、共有メモリ２３Ａに書込まれた通信データをストレージ２８へ記憶したときに、メモリアクセス制御表３６における、ストレージ２８へ記憶した該通信データの物理アドレスに対応する状態情報をロック解除状態に更新する。その後に、セキュア処理部２６は、セキュアモードＳからノンセキュアモードＮへ切替える第２切替指示をモニタ部２７へ通知する。
【００５１】
次に、メモリアクセス制御部２２について説明する。メモリアクセス制御部２２は、メモリアクセス制御表３６に基づいて、ノンセキュア処理部２５およびセキュア処理部２６からのアクセスを管理する。
【００５２】
本実施の形態では、メモリアクセス制御部２２は、ノンセキュアモードＮで動作するノンセキュアアプリケーション３２およびノンセキュア処理部２５や、セキュアモードＳで動作するセキュアアプリケーション３３およびセキュア処理部２６からの、共有メモリ２３Ａへのアクセスを管理する。
【００５３】
図４に示すように、メモリアクセス制御表３６は、物理アドレスと、状態情報と、を対応づけたテーブルである。なお、メモリアクセス制御表３６のデータ形式は、テーブルに限定されない。本実施の形態では、メモリアクセス制御表３６は、物理アドレスと、サイズと、状態情報と、を対応づけたテーブルである場合を説明する。
【００５４】
物理アドレスは、上述したように、共有メモリ２３Ａ内におけるアドレスを示す。サイズは、共有メモリ２３Ａにおける、対応する物理アドレスを開始位置として格納された、通信データのサイズを示す。
【００５５】
状態情報は、対応する物理アドレスに、対応するサイズで格納された通信データに対する、アクセス可否の状態を示す情報である。本実施の形態では、状態情報は、ロック状態またはロック解除状態を示す。ロック状態は、ノンセキュア処理部２５による書込を不可とし、読取を可能とする状態である。ロック解除状態は、ノンセキュア処理部２５による書込・読取を可能とする状態を示す。
【００５６】
このため、共有メモリ２３Ａにおける、状態情報“ロック状態”に対応する物理アドレスの領域に対して、ノンセキュア処理部２５は、通信データの読取りを行う事は可能であるが、通信データの書込みを行うことは出来ない。一方、共有メモリ２３Ａにおける、状態情報“ロック解除状態”に対応する物理アドレスの領域に対しては、ノンセキュア処理部２５は、通信データの読取および書込が可能である。
【００５７】
なお、セキュア処理部２６は、状態情報に拘らず、共有メモリ２３Ａの全ての物理アドレスに対して読取および書込が可能である。
【００５８】
例えば、メモリアクセス制御部２２は、ノンセキュアモードＮで動作するノンセキュアアプリケーション３２やノンセキュア処理部２５から、共有メモリ２３Ａへの書込要求を受付ける。すると、メモリアクセス制御部２２は、メモリアクセス制御表３６を参照し、書込要求に含まれる物理アドレスとサイズによって示される領域に対応する、状態情報を特定する。
【００５９】
メモリアクセス制御部２２は、特定した状態情報が“ロック状態”である場合には、書込エラーを示すエラー情報を、該書込要求の送信元のノンセキュアアプリケーション３２またはノンセキュア処理部２５へ通知する。一方、メモリアクセス制御部２２は、特定した状態情報が“ロック解除状態”の場合には、書込を許可する。このため、ノンセキュアアプリケーション３２またはノンセキュア処理部２５は、書込対象の通信データを、共有メモリ２３Ａへ書込む。
【００６０】
一方、メモリアクセス制御部２２は、ノンセキュアモードＮで動作するノンセキュアアプリケーション３２やノンセキュア処理部２５から読取要求を受付けた場合には、特定した状態情報が“ロック状態”であっても、読取を許可する。また、メモリアクセス制御部２２は、セキュアモードＳで動作するセキュアアプリケーション３３やセキュア処理部２６から読取要求または書込要求を受付けた場合、特定した状態情報の種類に拘らず、読取を許可または書込を許可する。
【００６１】
なお、メモリアクセス制御表３６は、モニタ部２７や、セキュア処理部２６によって更新される。
【００６２】
例えば、モニタ部２７は、セキュアモードＳへ切替える第１切替指示を受付けたときに、ノンセキュアモードＮからセキュアモードＳへモードを切替える。そして、モニタ部２７は、メモリアクセス制御表３６における、通信データの書込まれた共有メモリ２３Ａの物理アドレスに対応する状態情報を、“ロック状態”に更新する。例えば、モニタ部２７は、第１切替指示に含まれる情報を読取ることで、直前の処理によって通信データの書込まれた共有メモリ２３Ａの物理アドレスを特定し、状態情報を更新すればよい。また、ノンセキュア処理部２５が、直前に書込んだ通信データの物理アドレスを特定可能な情報を、共有メモリ２３Ａに書込んでもよい。この場合、モニタ部２７は、該情報を共有メモリ２３Ａから読取ることで、直前の処理によって通信データの書込まれた共有メモリ２３Ａの物理アドレスを特定し、状態情報を更新すればよい。
【００６３】
また、例えば、セキュア処理部２６は、共有メモリ２３Ａに書込まれた通信データをストレージ２８へ記憶したときに、メモリアクセス制御表３６における、該通信データの物理アドレスに対応する状態情報を、“ロック解除状態”に更新する。そして、“ロック解除状態”に更新した後に、セキュア処理部２６は、モニタ部２７へ、セキュアモードＳからノンセキュアモードＮへ切替える第２切替指示を通知する。
【００６４】
次に、本実施の形態の情報処理装置１０が実行する通信処理の流れの一例を説明する。図５は、本実施の形態の情報処理装置１０が実行する通信処理の流れの一例を示す、シーケンス図である。
【００６５】
なお、初期状態では、メモリアクセス制御表３６における状態情報は、全て“ロック解除状態”であるものとする。
【００６６】
例えば、情報処理装置１０の起動時に、セキュア処理部２６またはモニタ部２７は、メモリアクセス制御表３６における状態情報を、全て、“ロック解除状態”に更新する。なお、起動時とは、情報処理装置１０の装置各部に電力の供給が開始された時である。例えば、起動時は、車両２のアクセサリー電源がオン状態とされた時や、車両２のイグニッション電源がオン状態とされた時などである。
【００６７】
そして、通信部１１が、通信データを含むフレームを受信したと仮定する（ＳＥＱ２００）。上述したように、通信部１１は、ネットワークＩ／Ｆ６５、通信Ｉ／Ｆ６６、および通信Ｉ／Ｆ６９の少なくとも１つを示す（図２参照）。通信部１１は、受信したフレームを、通信部１１で用いる通信メモリに格納する。通信部１１は、フレームを受信すると、受信を示す処理要求（ＩＲＱ：Ｉｎｔｅｒｒｕｐｔ  ＲｅＱｕｅｓｔ）を、ノンセキュア処理部２５へ通知する（ＳＥＱ２０１）。
【００６８】
ノンセキュア処理部２５は、通信メモリに格納されたフレームのアドレスとサイズを読出し（ＳＥＱ２０２）、通信メモリから共有メモリ２３Ａへ、フレームを移動する（ＳＥＱ２０４）。
【００６９】
すなわち、ノンセキュア処理部２５は、通信メモリに格納されたフレームを、ノンセキュア処理部２５のＮＳＯＳメモリ２３Ｂへコピーすることなく、直接、共有メモリ２３Ａへ移動する。
【００７０】
なお、ノンセキュア処理部２５は、フレームに含まれる通信データのみを、共有メモリ２３Ａへ移動してもよい。
【００７１】
なお、ＳＥＱ２０４の処理時に、メモリアクセス部２５Ａは、ノンセキュア処理部２５から受付けた通信フレームを書込む対象の物理アドレスを、ノンセキュアページテーブル３４から特定する。ここで、上述したように、初期状態では、メモリアクセス制御表３６の状態情報は、全て“ロック解除状態”を示す。このため、メモリアクセス制御部２２は、メモリアクセス制御表３６における、特定した物理アドレスに対応する状態情報が“ロック解除状態”であることから、書込を許可する。このため、ノンセキュア処理部２５は、通信メモリから共有メモリ２３Ａへ、フレームを移動する。
【００７２】
次に、ノンセキュア処理部２５は、セキュアモードＳへ切替える第１切替指示（ＳＭＣ：セキュアモニタコール）を、モニタ部２７へ通知する（ＳＥＱ２０６）。第１切替指示を受付けたモニタ部２７は、ノンセキュアモードＮからセキュアモードＳへモードを切替える。
【００７３】
そして、モニタ部２７は、メモリアクセス制御表３６における、ＳＥＱ２０４によってフレーム（通信データを含む）の書込まれた共有メモリ２３Ａの物理アドレスに対応する状態情報を、“ロック状態”に更新する（ＳＥＱ２０８）。この処理によって、共有メモリ２３Ａにおける、該物理アドレスに対応する領域は、ロック状態となり、ノンセキュアモードＮで動作するノンセキュアアプリケーション３２やノンセキュア処理部２５からの書込が制限された状態となる。
【００７４】
次に、モニタ部２７は、セキュアモードＳへ切替えたことを示すメッセージ（例えば、ＳＭＣ）を、セキュア処理部２６へ通知する（ＳＥＱ２１０）。
【００７５】
セキュア処理部２６は、共有メモリ２３Ａに規定数の通信データが書込まれたと判定したときに、共有メモリ２３Ａに格納されている通信データの記憶指示を、セキュアアプリケーション３３へ通知する（ＳＥＱ２１２）。
【００７６】
すると、セキュアアプリケーション３３およびセキュア処理部２６が、共有メモリ２３Ａに格納されている通信データをストレージ２８へ書込む、ロギングを実行する（ＳＥＱ２１４）。本実施の形態では、セキュアアプリケーション３３およびセキュア処理部２６は、セキュアライトプロテクション機能を利用した書込を行う。なお、セキュアライトプロテクション機能は、ｅＭＭＣ  Ｖｅｒｓｉｏｎ  ５．１およびＵＦＳ（Ｕｎｉｖｅｒｓａｌ  Ｆｌａｓｈ  Ｓｔｒａｇｅ）  Ｖｅｒｓｉｏｎ  ２．１のオプション機能として規定されている。
【００７７】
詳細には、セキュアアプリケーション３３は、ストレージ２８における、通信データの書込みと、書込む通信データのサイズと、を示すＳＶＣ（ＳＶＣ：スーパーバイザコール）を、セキュア処理部２６へ通知する（ＳＥＱ２１６）。セキュア処理部２６は、ストレージ鍵を用いて、ストレージ２８における、受付けたサイズの通信データを書込む物理アドレスと、データサイズと、によって示される領域に対する、書込制限を解除する（ＳＥＱ２１８）。この処理によって、ストレージ２８における、該領域への書込みが可能な状態となる。
【００７８】
そして、セキュア処理部２６は、ストレージ２８における、ＳＥＱ２１８の処理によって書込制限を解除された領域に、直前の処理（ＳＥＱ２０４の処理）によって共有メモリ２３Ａに格納された通信データを、書込む（ＳＥＱ２２０、ＳＥＱ２２２）。
【００７９】
すると、セキュア処理部２６は、ストレージ２８における、通信データの書込まれた領域に対して、ストレージ鍵を用いて、書込制限を設定する（ＳＥＱ２２４）。そして、セキュア処理部２６は、書込完了をセキュアアプリケーション３３へ通知する（ＳＥＱ２２６）。
【００８０】
ロギングが終了すると、セキュア処理部２６は、メモリアクセス制御表３６における、直前のロギング（ＳＥＱ２１４の処理）によって共有メモリ２３Ａからストレージ２８に書込まれた通信データの、物理アドレスに対応する状態情報を、“ロック解除状態”に更新する（ＳＥＱ２２８）。
【００８１】
そして、セキュア処理部２６は、モニタ部２７へ、ノンセキュアモードＮへ切替える第２切替指示を通知する（ＳＥＱ２３０）。
【００８２】
第２切替指示を受付けると、モニタ部２７は、セキュアモードＳからノンセキュアモードＮへモードを切替える。そして、モニタ部２７は、ノンセキュアモードＮへ切替えたことを示すメッセージ（例えば、ＳＭＣ）を、ノンセキュア処理部２５へ通知する（ＳＥＱ２３２）。
【００８３】
ノンセキュア処理部２５は、通信メモリから共有メモリ２３Ａへフレームを移動すると、通信フレームを受信したと判定し（ＳＷ割込）（ＳＥＱ２３４）、ＳＥＱ２０４で受信したフレームのヘッダを解析する（ＳＥＱ２３６）。なお、ＳＥＱ２３４の処理は、ロギング（ＳＥＱ２１４）より前のタイミングで実行してもよい。
【００８４】
そして、ノンセキュア処理部２５は、共有メモリ２３Ａにおける、ＳＥＱ２０４で共有メモリ２３Ａへ移動したフレームを、該共有メモリ２３Ａから読出し、ノンセキュアアプリケーション３２のＮＳＡＰメモリ２３Ｃへ移動する（ＳＥＱ２３８）。
【００８５】
すなわち、ノンセキュア処理部２５は、ノンセキュア処理部２５のＮＳＯＳメモリ２３Ｂからではなく、共有メモリ２３ＡからＮＳＡＰメモリ２３Ｃへ、直接、フレームを移動する。
【００８６】
次に、ノンセキュアアプリケーション３２は、ＳＥＱ２３８の処理によってＮＳＡＰメモリ２３Ｃへ移動したフレームについて、ルーティングを実行する（ＳＥＱ２４０）。例えば、ノンセキュアアプリケーション３２は、ルーティングにより、フレームに含まれる通信データを変更する。なお、ノンセキュアアプリケーション３２は、通信データの変更を行わなくてもよい。
【００８７】
そして、ノンセキュアアプリケーション３２は、変更後の通信データを含むフレームを、ＮＳＡＰメモリ２３Ｃから共有メモリ２３Ａへ移動する（ＳＥＱ２４２）。このとき、ノンセキュアアプリケーション３２は、共有メモリ２３Ａにおける新たな物理アドレスに、変更後の通信データを含むフレームを書込む。
【００８８】
そして、ノンセキュアアプリケーション３２は、ノンセキュア処理部２５へ、フレームの送信を依頼する（例えば、ＳＶＣを送信）（ＳＥＱ２４４）。
【００８９】
すなわち、変更後の通信データを含むフレームは、ＮＳＡＰメモリ２３ＣからＮＳＯＳメモリ２３Ｂへ移動されるのではなく、ＮＳＡＰメモリ２３Ｃから共有メモリ２３Ａへ、直接移動される。
【００９０】
ノンセキュア処理部２５は、通信フレームのヘッダを作成する（ＳＥＱ２４６）。そして、ノンセキュア処理部２５は、セキュアモードＳへ切替える第１切替指示（ＳＭＣ：セキュアモニタコール）を、モニタ部２７へ通知する（ＳＥＱ２４８）。第１切替指示を受付けたモニタ部２７は、ノンセキュアモードＮからセキュアモードＳへモードを切替える。
【００９１】
そして、モニタ部２７は、メモリアクセス制御表３６における、直前の処理（ＳＥＱ２４２）によって、新たな通信データを含むフレームの書込まれた、共有メモリ２３Ａの物理アドレスに対応する状態情報を、“ロック状態”に更新する（ＳＥＱ２５０）。この処理によって、共有メモリ２３Ａにおける、該物理アドレスに対応する領域は、“ロック状態”となり、ノンセキュアモードＮで動作するノンセキュアアプリケーション３２やノンセキュア処理部２５からの書込が制限された状態となる。
【００９２】
次に、モニタ部２７は、セキュアモードＳへ切替えたことを示すメッセージ（例えば、ＳＭＣ）を、セキュア処理部２６へ通知する（ＳＥＱ２５２）。
【００９３】
セキュア処理部２６は、共有メモリ２３Ａに規定数の通信データが書き込まれたと判定したときに、共有メモリ２３Ａに格納されている通信データの記憶指示を、セキュアアプリケーション３３へ通知する（ＳＥＱ２５４）。
【００９４】
記憶指示を受付けたセキュアアプリケーション３３は、共有メモリ２３Ａに格納されている通信データをストレージ２８へ書込む、ロギングを実行する（ＳＥＱ２５６）。セキュアアプリケーション３３は、上記ＳＥＱＳ２１４と同様にして、ロギング（ＳＥＱ２５６（ＳＥＱ２５８〜ＳＥＱ２６８））を実行する。
【００９５】
ロギングが終了すると、セキュア処理部２６は、メモリアクセス制御表３６における、ＳＥＱ２５６のロギングによって共有メモリ２３Ａからストレージ２８に書込まれた通信データの物理アドレスに対応する状態情報を、“ロック解除状態”に更新する（ＳＥＱ２７０）。
【００９６】
そして、セキュア処理部２６は、モニタ部２７へ、ノンセキュアモードＮへ切替える第２切替指示を通知する（ＳＥＱ２７２）。
【００９７】
第２切替指示を受付けると、モニタ部２７は、セキュアモードＳからノンセキュアモードＮへモードを切替える。そして、モニタ部２７は、ノンセキュアモードＮへ切替えたことを示すメッセージ（例えば、ＳＭＣ）を、ノンセキュア処理部２５へ通知する（ＳＥＱ２７４）。
【００９８】
フレームの送信を依頼すると、ノンセキュア処理部２５は、共有メモリ２３Ａに格納されているフレームを読み出し（ＳＥＱ２７６）、通信部１１の通信メモリにコピーする（ＳＥＱ２７８）。そして、ノンセキュア処理部２５は、フレームの送信を通信部１１へ依頼する（ＳＥＱ２８０）。なお、ロギング（ＳＥＱ２５６）より前に、フレームの送信を依頼してもよい。
【００９９】
通信部１１は、通信フレームを送信し（ＳＥＱ２８２）、送信が完了すると、送信完了を示す割込要求信号（ＩＲＱ）をノンセキュア処理部２５へ通知する（ＳＥＱ２８４）。
【０１００】
すると、ノンセキュア処理部２５は、送信完了と判定し（ＳＷ割込）（ＳＥＱ２８６）、共有メモリ２３Ａを解放する（ＳＥＱ２８８）。そして、本シーケンスを終了する。
【０１０１】
なお、ノンセキュア処理部２５およびセキュア処理部２６は、情報処理装置１０の起動時に、メモリ部２３における共有メモリ２３Ａのアドレスをロードし、上記処理を実行すれはよい。
【０１０２】
また、情報処理装置１０の終了時には、セキュア処理部２６は、共有メモリ２３Ａに格納されている通信データをストレージ２８へ書込むことが好ましい。なお、終了時とは、情報処理装置１０の装置各部への電力供給のオフが指示された時である。例えば、終了時は、車両２のイグニッションスイッチのユーザによる操作などにより、イグニッション電源のオフが指示された時や、アクセサリー電源のオフが指示された時である。そして、共有メモリ２３Ａの通信データがストレージ２８へ書込まれた後に、情報処理装置１０は、処理を終了すればよい。
【０１０３】
情報処理装置１０が、上記通信処理を実行することで、メモリサイズの削減を図ることができる。
【０１０４】
図６および図７は、メモリサイズの削減の説明図である。
【０１０５】
図６は、比較例における情報処理装置（以降、比較情報処理装置１０００と称する）における、メモリ部２３に記憶されるデータの流れの一例を示す模式図である。
【０１０６】
例えば、サブネットワークＮＷを介してノード１２などから、通信データとしてデータ１を受信したと仮定する。すると、比較情報処理装置１０００は、データ１を、ＮＳＯＳメモリ２３Ｂに格納する（ＳＥＱ１０００）。次に、比較情報処理装置１０００は、ＮＳＯＳメモリ２３Ｂから共有メモリ２３Ａへ、データ１をコピーする（ＳＥＱ１００２）。比較情報処理装置１０００は、共有メモリ２３Ａにおけるデータ１の格納された領域を、ノンセキュアモードＮ側からの書込および読取の双方についてロックした状態とする。そして、該データ１を、共有メモリ２３ＡからＳＯＳメモリ２３ＤおよびＳＡＰメモリ２３Ｅへ移動させる（ＳＥＱ１００４）。
【０１０７】
また、比較情報処理装置１０００は、ＮＳＯＳメモリ２３Ｂに格納したデータ１を、ＮＳＡＰメモリ２３Ｃへ移動する（ＳＥＱ１００６）。そして、比較情報処理装置１０００は、ルーティングによりデータ１を変更してデータ２とした後に、該データ２を、ＮＳＯＳメモリ２３Ｂへ移動する（ＳＥＱ１００８）。
【０１０８】
更に、比較情報処理装置１０００は、ＮＳＯＳメモリ２３Ｂから共有メモリ２３Ａへ、データ２をコピーする（ＳＥＱ１０１０）。比較情報処理装置１０００は、共有メモリ２３Ａにおける、データ２の格納された領域を、ノンセキュアモードＮ側からの書込および読取の双方についてロックした状態とする。そして、該データ２を、共有メモリ２３ＡからＳＯＳメモリ２３ＤおよびＳＡＰメモリ２３Ｅへ移動させる（ＳＥＱ１０１４）。そして、これらのデータ１およびデータ２を、ストレージ２８へ記憶する（ＳＥＱ１０１６）。
【０１０９】
また、比較情報処理装置１０００は、ＮＳＯＳメモリ２３Ｂに格納したデータ２を、サブネットワークＮＷを介してノード１２へ送信する（ＳＥＱ１０１２）。
【０１１０】
図６に示すように、従来では、ルーティングおよびロギングを行う場合、ＮＳＡＰメモリ２３Ｃ、ＮＳＯＳメモリ２３Ｂ、共有メモリ２３Ａ、ＳＯＳメモリ２３Ｄ、ＳＡＰメモリ２３Ｅの各々に、同じ通信データを重複して格納する必要があった。具体的には、規定時間内に処理する通信データの数をｍ（ｍは１以上の整数）とすると、比較情報処理装置１０００では、フレームサイズの「２ｍ＋３」倍のメモリサイズが必要であった。
【０１１１】
詳細には、図６に示すように、ＮＳＡＰメモリ２３Ｃにおける、通信データの送受信のためのメモリ領域のサイズは、フレームサイズの１倍である。また、ＮＳＯＳメモリ２３Ｂにおける、ルーティングのためのメモリ領域のサイズは、フレームサイズの１倍である。共有メモリ２３Ａは、フレームサイズの１倍である。ＳＯＳメモリ２３Ｄにおける、ストレージ２８への書込みのためのメモリ領域は、フレームサイズのｍ倍である。また、ＳＡＰメモリ２３Ｅにおける、ストレージ２８への書込みのためのメモリ領域は、フレームサイズのｍ倍である。このため、比較情報処理装置１０００では、合計、フレームサイズの「２ｍ＋３」倍のメモリサイズが必要であった。
【０１１２】
また、通信データの受信、ルーティング、ストレージ２８への書込み（ロギング）、通信データの送信、の一連の処理における、通信データの受信回数、送信回数、およびルーティング回数をｎ回（ｎは１以上の整数）と仮定する。すると、比較情報処理装置１０００では、ネットワーク送受信、ルーティング、ロギングについて、メモリ部２３内におけるコピー回数は、各々、２ｎ、６ｎ、２ｎとなる。また、比較情報処理装置１０００では、セキュアモードＳとノンセキュアモードＮとの切替が、４ｎ回必要であった。
【０１１３】
図７は、本実施の形態の情報処理装置１０における、メモリ部２３に記憶されるデータの流れの一例を示す模式図である。
【０１１４】
例えば、サブネットワークＮＷを介してノード１２などから、通信データとしてデータ１を受信したと仮定する。すると、本実施の形態の情報処理装置１０では、データ１を、共有メモリ２３Ａへ格納する（ＳＥＱ１００）。すると、モニタ部２７が、メモリアクセス制御表３６における、共有メモリ２３Ａのデータ１の書込まれた物理アドレスに対応する状態情報を、“ロック状態”に更新する。この処理によって、共有メモリ２３Ａにおける、データ１の格納された領域は、“ロック状態”となり、ノンセキュアモードＮで動作するノンセキュアアプリケーション３２やノンセキュア処理部２５からの書込が制限された状態となる。なお、上述したように、本実施の形態の情報処理装置１０では、“ロック状態”であっても、ノンセキュアアプリケーション３２やノンセキュア処理部２５からの読取は制限されない。
【０１１５】
そして、ノンセキュア処理部２５は、共有メモリ２３Ａに格納されたデータ１を、該共有メモリ２３Ａから読出し、ノンセキュアアプリケーション３２のＮＳＡＰメモリ２３Ｃへ移動する（ＳＥＱ１０２）。そして、ノンセキュアアプリケーション３２は、ルーティングによりデータ１を変更してデータ２とした後に、該データ２を、共有メモリ２３Ａへ移動する（ＳＥＱ１０４）。
【０１１６】
すると、モニタ部２７が、メモリアクセス制御表３６における、共有メモリ２３Ａのデータ２の書込まれた物理アドレスに対応する状態情報を、“ロック状態”に更新する。この処理によって、共有メモリ２３Ａにおける、データ２の格納された領域は、“ロック状態”となる。
【０１１７】
そして、セキュア処理部２６は、ロギングによって、共有メモリ２３Ａに格納されたデータ１およびデータ２を、ストレージ２８へ書込む（ＳＥＱ１０６）。そして、セキュア処理部２６は、メモリアクセス制御表３６における、共有メモリ２３Ａのデータ１およびデータ２の物理アドレスに対応する状態情報を、“ロック解除状態”に更新する。そして、データ２が、共有メモリ２３Ａから読み出され、サブネットワークＮＷを介してノード１２へ送信される（ＳＥＱ１０７）。
【０１１８】
図７に示すように、本実施の形態では、従来技術ではＮＳＯＳメモリ２３Ｂ、共有メモリ２３Ａ、およびＳＯＳメモリ２３Ｄに格納していた通信データを、全て共有メモリ２３Ａに格納する。このため、本実施の形態の情報処理装置１０は、メモリサイズの削減を図ることができる。
【０１１９】
具体的には、規定時間内に処理する通信データの数をｍ（ｍは１以上の整数）とすると、本実施の形態の情報処理装置１０では、メモリサイズを、フレームサイズの「ｍ＋１」倍とすることができる。このため、比較情報処理装置１０００に比べて、本実施の形態の情報処理装置１０は、メモリサイズを１／２以下とすることができる。
【０１２０】
また、通信データの受信、ルーティング、ストレージ２８への書込み（ロギング）、通信データの送信、の一連の処理における、通信データの受信回数、送信回数、およびルーティング回数をｎ回（ｎは１以上の整数）と仮定する。すると、本実施の形態の情報処理装置では、ネットワーク送受信、ルーティング、ロギングについて、メモリ部２３内におけるコピー回数は、各々、２ｎ、０、０となる。このため、本実施の形態の情報処理装置１０は、メモリ部２３内におけるコピー回数の削減も図ることができる。
【０１２１】
以上説明したように、本実施の形態の情報処理装置１０は、モニタ部２７と、ノンセキュア処理部２５と、セキュア処理部２６と、メモリアクセス制御部２２と、を備える。モニタ部２７は、ノンセキュアモードＮとセキュアモードＳとを切替える。ノンセキュア処理部２５は、ノンセキュアモードＮで動作し、通信データを共有メモリ２３Ａに読み書きする。セキュア処理部２６は、セキュアモードＳで動作し、通信データを共有メモリ２３Ａから読み出してストレージ２８に書き込む。メモリアクセス制御部２２は、メモリアクセス制御表３６に基づいて、ノンセキュア処理部２５およびセキュア処理部２６からのアクセスを管理する。メモリアクセス制御表３６は、共有メモリ２３Ａ内の物理アドレスと、状態情報と、を対応づけたものである。状態情報は、ノンセキュア処理部２５による書込を不可とし読取を可能とするロック状態、または、ロック状態の解除されたロック解除状態を示す。
【０１２２】
このように、本実施の形態の情報処理装置１０は、ノンセキュアモードＮで動作するノンセキュア処理部２５と、セキュアモードＳで動作するセキュア処理部２６と、の双方が、メモリアクセス制御表３６に基づいて、通信データを共有メモリ２３Ａに対して読み書きする。
【０１２３】
すなわち、本実施の形態の情報処理装置１０は、ノンセキュア処理部２５およびセキュア処理部２６が、各々の管理するメモリ（ＮＳＯＳメモリ２３Ｂ、ＳＯＳメモリ２３Ｄ）を用いずに、共有メモリ２３Ａを用いて通信データの読み書きを行う。
【０１２４】
従って、本実施の形態の情報処理装置１０は、メモリサイズの削減を図ることができる。
【０１２５】
また、本実施の形態の情報処理装置１０は、メモリアクセス制御表３６に基づいて共有メモリ２３Ａへのアクセスを管理する。また、本実施の形態の情報処理装置１０は、モニタ部２７が、ノンセキュアモードＮとセキュアモードＳとの切替えを行う。このため、本実施の形態の情報処理装置１０は、上記効果に加えて、セキュリティ向上を図ることができる。
【０１２６】
（変形例１）
上記実施の形態では、ノンセキュア処理部２５は、受信した通信データを共有メモリ２３Ａに書込んだときに、第１切替指示をモニタ部２７へ通知する形態を説明した。
【０１２７】
しかし、ノンセキュア処理部２５は、共有メモリ２３Ａに規定数の通信データが書込まれた場合に、第１切替指示をモニタ部２７へ通知してもよい。規定数は、予め定めればよい。
【０１２８】
図８は、本変形例の情報処理装置１０が実行する通信処理の流れの一例を示す、シーケンス図である。
【０１２９】
まず、本変形例の情報処理装置１０は、通信データの受信処理を実行する（ＳＥＱ３００）。ＳＥＱ３００の処理は、ＳＥＱ３０１〜ＳＥＱ３０６の処理を含む。ＳＥＱ３００の処理（ＳＥＱ３０１〜ＳＥＱ３０６）は、上記実施の形態の情報処理装置１０が実行するＳＥＱ２００〜ＳＥＱ２０４と同様である（図５参照）。
【０１３０】
そして、ノンセキュア処理部２５は、共有メモリ２３Ａに規定数の通信データが書き込まれたと判定した場合に、セキュアモードＳへ切替える第１切替指示（ＳＭＣ）を、モニタ部２７へ通知する（ＳＥＱ３０８）。第１切替指示を受付けたモニタ部２７は、ノンセキュアモードＮからセキュアモードＳへモードを切替える。
【０１３１】
そして、本変形例の情報処理装置１０は、上記実施の形態のＳＥＱ２０８〜ＳＥＱ２３２と同様にして（図５参照）、ＳＥＱ３１０〜ＳＥＱ３３４の処理を実行する。
【０１３２】
次に、ノンセキュア処理部２５は、ＳＥＱ３３４によってＳＭＣを受信すると、ルーティングに関する処理を実行する（ＳＥＱ３３６）。ＳＥＱ３３６の処理は、ＳＥＱ３３８〜ＳＥＱ３５０の処理を含む。ＳＥＱ３３６の処理（ＳＥＱ３３８〜ＳＥＱ３５０）は、上記実施の形態の情報処理装置１０が実行するＳＥＱ２３４〜ＳＥＱ２４６と同様である（図５参照）。
【０１３３】
そして、ノンセキュア処理部２５は、ＳＥＱ３３６の処理によって、共有メモリ２３Ａに規定数の通信データが書き込まれたと判定した場合に、セキュアモードＳへ切替える第１切替指示（ＳＭＣ）を、モニタ部２７へ通知する（ＳＥＱ３５２）。第１切替指示を受付けたモニタ部２７は、ノンセキュアモードＮからセキュアモードＳへモードを切替える。
【０１３４】
そして、本変形例の情報処理装置１０は、上記実施の形態のＳＥＱ２５０〜ＳＥＱ２７４と同様にして（図５参照）、ＳＥＱ３５４〜ＳＥＱ３７８の処理を実行する。
【０１３５】
次に、本変形例の情報処理装置１０は、通信データの送信に関する処理を実行する（ＳＥＱ３８０）。本変形例では、情報処理装置１０は、共有メモリ２３Ａに格納されている通信データの各々について、図５に示すＳＥＱ２７６〜ＳＥＱ２８８と同様にして、ＳＥＱ３８２〜ＳＥＱ３９４の処理を実行する。
【０１３６】
以上説明したように、本変形例では、ノンセキュア処理部２５は、共有メモリ２３Ａに規定数の通信データが書込まれた場合に、第１切替指示をモニタ部２７へ通知する。このため、本変形例の情報処理装置１０は、上記実施の形態の情報処理装置１０に比べて、セキュアモードＳとノンセキュアモードＮとのモードの切替回数の削減を図ることができる。
【０１３７】
すなわち、本変形例の情報処理装置１０は、上記実施の形態の情報処理装置１０の効果に加えて、セキュアモードＳとノンセキュアモードＮとのモードの切替回数の削減を図ることができる。
【０１３８】
（変形例２）
上記実施の形態では、モニタ部２７は、セキュアモードＳへ切替える第１切替指示を受付けたときに、ノンセキュアモードＮからセキュアモードＳへのモードの切替えを行う場合を説明した。
【０１３９】
しかし、モニタ部２７は、タイマ部２４から、セキュアモードＳへ切替える第１切替指示を受付けたときに、ノンセキュアモードＮからセキュアモードＳへモードを切替えてもよい。この場合、タイマ部２４は、前回の第１切替指示の送信から所定時間が経過した後に、第１切替指示をモニタ部２７に送信する。そして、モニタ部２７は、タイマ部２４から第１切替指示を受付けたときに、ノンセキュアモードＮからセキュアモードＳへモードを切替える。そして、モニタ部２７は、メモリアクセス制御表３６における、直前の処理によって通信データの書込まれた共有メモリ２３Ａの物理アドレスに対応する状態情報を、“ロック状態”に更新すればよい。
【０１４０】
図９は、本変形例の情報処理装置１０が実行する通信処理の流れの一例を示す、シーケンス図である。
【０１４１】
まず、本変形例の情報処理装置１０は、通信データの受信処理を実行する（ＳＥＱ４００）。ＳＥＱ４００の処理は、ＳＥＱ４０１〜ＳＥＱ４０６の処理を含む。ＳＥＱ４００の処理（ＳＥＱ４０１〜ＳＥＱ４０６）は、上記実施の形態の情報処理装置１０が実行するＳＥＱ２００〜ＳＥＱ２０４と同様である（図５参照）。
【０１４２】
そして、タイマ部２４は、前回の第１切替指示の送信から所定時間が経過したと判定したときに、セキュアモードＳへ切替える第１切替指示（ＳＭＣ）を、モニタ部２７へ通知する（ＳＥＱ４０８）。なお、この所定時間には、例えば、共有メモリ２３Ａに規定数の通信データが書き込まれるために要する時間などを、予め設定すればよい。第１切替指示を受付けたモニタ部２７は、ノンセキュアモードＮからセキュアモードＳへモードを切替える。
【０１４３】
そして、本変形例の情報処理装置１０は、上記実施の形態のＳＥＱ２０８〜ＳＥＱ２３２と同様にして（図５参照）、ＳＥＱ４１０〜ＳＥＱ４３４の処理を実行する。
【０１４４】
次に、ノンセキュア処理部２５は、ＳＥＱ４３４によってＳＭＣを受信すると、ルーティングおよび送信に関する処理を実行する（ＳＥＱ４３６）。ＳＥＱ４３６の処理は、ＳＥＱ４３８〜ＳＥＱ４６４の処理を含む。
【０１４５】
まず、ノンセキュア処理部２５は、上記実施の形態の情報処理装置１０で実行したＳＥＱ２３４〜ＳＥＱ２４６と同様にして（図５参照）、ＳＥＱ４３８〜ＳＥＱ４５０の処理を実行する。
【０１４６】
そして、本変形例の情報処理装置１０は、共有メモリ２３Ａに格納されている通信データの各々について、図５に示すＳＥＱ２７６〜ＳＥＱ２８８と同様にして、ＳＥＱ４５２〜ＳＥＱ４６４の処理を実行する。
【０１４７】
以上説明したように、本変形例では、モニタ部２７は、タイマ部２４から、ノンセキュアモードＮからセキュアモードＳへ切替える第１切替指示を受付けたときに、ノンセキュアモードＮからセキュアモードＳへのモードの切替えを行う。そして、モニタ部２７は、メモリアクセス制御表３６における、通信データの書込まれた共有メモリ２３Ａの物理アドレスに対応する状態情報を、“ロック状態”に更新する。
【０１４８】
例えば、モニタ部２７は、第１切替指示に含まれる情報を読取ることで、直前の処理によって通信データの書込まれた共有メモリ２３Ａの物理アドレスを特定し、状態情報を更新すればよい。また、ノンセキュア処理部２５が、直前に書込んだ通信データの物理アドレスを特定可能な情報を、共有メモリ２３Ａに書込んでもよい。この場合、モニタ部２７は、タイマ部２４から第１切替指示を受付けたときに、該情報を共有メモリ２３Ａから読取ることで、直前の処理によって通信データの書込まれた共有メモリ２３Ａの物理アドレスを特定し、状態情報を更新すればよい。
【０１４９】
このため、本変形例の情報処理装置１０は、上記実施の形態の情報処理装置１０に比べて、セキュアモードＳとノンセキュアモードＮとのモードの切替回数の削減を図ることができる。
【０１５０】
（第２の実施の形態）
本実施の形態では、違反時処理を更に実行する場合を説明する。
【０１５１】
図１は、情報処理システム１Ａの概要を示す模式図である。情報処理システム１Ａは、情報処理装置１０に代えて情報処理装置１０Ｂを備える点以外は、情報処理システム１と同様である。図２は、情報処理装置１０Ｂのハードウェア構成例を示すブロック図である。情報処理装置１０Ｂのハードウェア構成は、情報処理装置１０と同様である。
【０１５２】
図１０は、本実施の形態の情報処理装置１０Ｂのハードウェアとソフトウェア構成の一例を示す模式図である。
【０１５３】
情報処理装置１０Ｂは、ハードウェア部３１と、モニタ部４１と、ノンセキュア処理部２５と、セキュア処理部４０と、ノンセキュアアプリケーション３２と、セキュアアプリケーション３３と、を備える。ノンセキュア処理部２５、ノンセキュアアプリケーション３２、およびセキュアアプリケーション３３は、第１の実施の形態と同様である。
【０１５４】
ハードウェア部３１は、プロセッサ部２０と、メモリ部２３と、メモリアクセス制御部４２と、ストレージ２８と、タイマ部２４と、を備える。ハードウェア部３１は、メモリアクセス制御部２２に代えてメモリアクセス制御部４２を備える点以外は、第１の実施の形態と同様である。
【０１５５】
メモリアクセス制御部４２は、第１の実施の形態のメモリアクセス制御部２２と同様に、メモリ部２３へのアクセスを制御する。メモリアクセス制御部４２は、ＭＰＵ６３で実現する（図２参照）。
【０１５６】
メモリアクセス制御部４２は、第１の実施の形態のメモリアクセス制御部２２と同様に、メモリアクセス制御表３６に基づいて、ノンセキュアモードＮで動作するノンセキュアアプリケーション３２およびノンセキュア処理部２５や、セキュアモードＳで動作するセキュアアプリケーション３３およびセキュア処理部４０からの、共有メモリ２３Ａのアクセスを管理する。
【０１５７】
例えば、メモリアクセス制御部４２は、ノンセキュアモードＮで動作するノンセキュアアプリケーション３２やノンセキュア処理部２５から、共有メモリ２３Ａへの書込要求を受付ける。すると、メモリアクセス制御部４２は、メモリアクセス制御表３６を参照し、書込要求に含まれる物理アドレスとサイズによって示される領域に対応する状態情報を特定する。
【０１５８】
ここで、本実施の形態では、メモリアクセス制御部４２は、特定した状態情報が“ロック状態”である場合には、ノンセキュア処理部２５からの書込違反と判定する。そして、メモリアクセス制御部４２は、書込違反を判定した場合、書込違反と判定したアドレスおよび書込対象の通信データを含む違反情報を、セキュア処理部４０へ通知する。詳細には、メモリアクセス制御部４２は、モニタ部４１を介してセキュア処理部４０へ、違反情報を通知する。モニタ部４１は、メモリアクセス制御部４２から受付けた違反情報に含まれるアドレスを物理アドレスに変換した後に、セキュア処理部４０へ通知する。
【０１５９】
なお、メモリアクセス制御部４２は、ノンセキュアモードＮで動作するノンセキュアアプリケーション３２やノンセキュア処理部２５から読取要求を受付けた場合には、特定した状態情報が“ロック状態”であっても、読取を許可する。また、メモリアクセス制御部４２は、セキュアモードＳで動作するセキュアアプリケーション３３やセキュア処理部４０から読取要求または書込要求を受付けた場合、特定した状態情報の種類に拘らず、読取を許可または書込を許可する。
【０１６０】
モニタ部４１は、モニタ部２７と同様に、ノンセキュアモードＮとセキュアモードＳとを切替える。
【０１６１】
モニタ部４１は、切替部２７Ａと、違反検知部４１Ｂと、を含む。切替部２７Ａは、第１の実施の形態と同様である。違反検知部４１Ｂは、メモリアクセス制御部４２から違反情報を受付けると、違反が発生したことを検知し、該違反情報をセキュア処理部４０へ通知する。すなわち、違反検知部４１Ｂは、メモリアクセス制御部４２から受付けた違反情報に含まれるアドレスを物理アドレスに変換した後に、セキュア処理部４０へ通知する。
【０１６２】
セキュア処理部４０は、セキュアモードＳで動作するＯＳである。本実施の形態では、セキュア処理部４０は、違反命令実行部４０Ｂを含む。セキュア処理部４０は、第１の実施の形態と同様の機能に加えて、違反命令実行部４０Ｂの機能を有する。
【０１６３】
違反命令実行部４０Ｂは、違反情報を受付けた場合、違反時処理を実行する。
【０１６４】
違反時処理は、違反情報に応じて、該違反情報に含まれる書込対象の物理アドレスに書込済の通信データを、ノンセキュア処理部２５から読取不可とし、該違反情報に含まれる書込対象の通信データを共有メモリ２３Ａに書込み且つ該通信データをノンセキュア処理部２５から読取可能とする、処理である。
【０１６５】
すなわち、違反時処理は、新たな通信データ（以下、新通信データと称する場合がある）を書込もうとした“ロック状態”の物理アドレスに、既に書込まれている通信データ（以下、旧通信データと称する場合がある）を、ノンセキュア処理部２５から読取不可とする処理である。また、違反時処理は、新通信データを共有メモリ２３Ａに書込み、且つ、該新通信データを、ノンセキュア処理部２５から読取可能とする処理である。
【０１６６】
言い換えると、違反時処理は、旧通信データを退避してノンセキュア処理部２５から読取不可能な状態とし、新通信データはノンセキュア処理部２５から読取可能に共有メモリ２３Ａへ書込む処理である。
【０１６７】
図１１は、本実施の形態の違反時処理が実行されたときの、メモリ部２３の一例を示す模式図である。
【０１６８】
例えば、サブネットワークＮＷを介してノード１２などから、通信データとしてデータ１を受信したと仮定する。すると、本実施の形態の情報処理装置１０Ｂでは、通信データとしての“データ１”を、共有メモリ２３Ａへ格納する（ＳＥＱ５００）。この状態では、ノンセキュアモードＮ側から見た共有メモリ２３Ａ（以下、共有メモリ２３Ａ１と称する場合がある）、および、セキュアモードＳ側から見た共有メモリ２３Ａ（以下、共有メモリ２３Ａ２と称する場合がある）共に、“データ１”を読取り可能である。
【０１６９】
そして、モニタ部４１が、メモリアクセス制御表３６における、共有メモリ２３Ａのデータ１の書込まれた物理アドレスに対応する状態情報を、“ロック状態”に更新する。
【０１７０】
そして、ノンセキュア処理部２５は、共有メモリ２３Ａに格納されたデータ１を、該共有メモリ２３Ａから読出し、ノンセキュアアプリケーション３２のＮＳＡＰメモリ２３Ｃへ移動する（ＳＥＱ５０２）。そして、ノンセキュアアプリケーション３２は、ルーティングによりデータ１を変更してデータ２とした後に、該データ２を、共有メモリ２３Ａへ移動する（ＳＥＱ５０４）。
【０１７１】
ここで、共有メモリ２３Ａにおける、データ２を書込む対象の物理領域が、既に“データ１”の書込まれた物理領域であり、メモリアクセス制御表３６によって“ロック状態”となっていたと仮定する。
【０１７２】
この場合、メモリアクセス制御部４２は、書込違反を判定し、書込違反と判定した物理アドレス（“データ１”の書込まれている物理アドレス）および書込対象の通信データである“データ２”を含む違反情報を、モニタ部４１の違反検知部４１Ｂを介して、セキュア処理部４０の違反命令実行部４０Ｂへ通知する。
【０１７３】
すると、違反命令実行部４０Ｂは、違反時処理を実行し、違反情報に含まれる物理アドレスに書込済の“データ１”を、ノンセキュア処理部２５から読取不可とする。また、違反命令実行部４０Ｂは該違反情報に含まれる書込対象の通信データである“データ２”を、共有メモリ２３Ａに書込み且つ該“データ２”をノンセキュア処理部２５から読取可能とする。
【０１７４】
このため、図１１の符号７１内に示すように、セキュアモードＳ側から見た場合、共有メモリ２３Ａ内に、“データ１”および“データ２”を確認することができる。しかし、ノンセキュアモードＮ側から見た場合、共有メモリ２３Ａには、“データ２”のみが確認でき、“データ１”は確認出来ない状態となる。
【０１７５】
そして、セキュア処理部４０は、ロギングによって、共有メモリ２３Ａに格納されたデータ１およびデータ２を、ストレージ２８へ書込む（ＳＥＱ５０６）。そして、データ２が、共有メモリ２３Ａから読み出され、サブネットワークＮＷを介してノード１２へ送信される（ＳＥＱ５０８）。
【０１７６】
詳細には、違反時処理は、以下の処理である。
【０１７７】
例えば、違反時処理は、書込対象の物理アドレスに書込済の通信データを、該物理アドレスとは異なる新たな物理アドレスに移動し、書込対象の通信データを書込対象の物理アドレスに書込み、書込んだ該物理アドレスに応じて、メモリアクセス制御表３６とセキュアページテーブル３５とを更新する処理である。
【０１７８】
図１２および図１３は、違反時処理の説明図である。図１２は、通信データである“データ１”が共有メモリ２３Ａに書込まれたときの、ノンセキュアページテーブル３４、セキュアページテーブル３５、およびメモリアクセス制御表３６の一例を示す模式図である。
【０１７９】
例えば、共有メモリ２３Ａの物理アドレス“０１”に“データ１”が書込まれたと仮定する。そして、ノンセキュアページテーブル３４およびセキュアページテーブル３５には、該物理アドレス“０１”に対応する仮想アドレス（例えば、“０１”）が対応付けられていると仮定する。また、メモリアクセス制御表３６には、該“データ１”の物理アドレス“０１”および状態情報“ロック状態”が登録されている。
【０１８０】
このときに、ノンセキュア処理部２５のメモリアクセス部２５Ａが、旧通信データ“データ１”の格納されている物理アドレス“０１”に対する、新通信データ“データ２”の書込要求を通知したと仮定する。
【０１８１】
すると、メモリアクセス制御部４２は、書込違反を判定する。そして、メモリアクセス制御部４２は、書込違反と判定した物理アドレス（“データ１”の書込まれている物理アドレス“０１”）および書込対象の新通信データ“データ２”を含む違反情報を、モニタ部４１の違反検知部４１Ｂを介して、セキュア処理部４０の違反命令実行部４０Ｂへ通知する。
【０１８２】
すると、違反命令実行部４０Ｂは、図１３に示すように、違反情報に含まれる物理アドレス“０１”に書込済の旧通信データ“データ１”を、新たな物理アドレス“０２”に移動する。また、違反命令実行部４０Ｂは、違反情報に含まれる新通信データ“データ２”を、旧通信データ“データ１”の書込まれていた物理アドレス“０１”に書込む。
【０１８３】
そして、違反命令実行部４０Ｂは、書込んだ物理アドレスに応じて、セキュアページテーブル３５およびメモリアクセス制御表３６を更新する。
【０１８４】
このため、図１３に示すように、旧通信データ“データ１”は、物理アドレス“０１”から“０２”に移動される。そして、セキュアページテーブル３５には、該“データ１”の物理アドレス“０２”に対応する仮想アドレス“０２”が登録された状態となる。一方、新通信データ“データ２”は、物理アドレス“０１”に書込まれ、セキュアページテーブル３５およびノンセキュアページテーブル３４には、該“データ２”の物理アドレス“０１”に対応する仮想アドレス“０１”が登録された状態となる。
【０１８５】
このように、ノンセキュアページテーブル３４には、旧通信データ“データ１”の物理アドレス“０２”が登録されていないため、ノンセキュア処理部２５は、旧通信データ“データ１”を読取ることは出来ない状態となる。
【０１８６】
なお、違反時処理は、書込対象の物理アドレスとは異なる新たな物理アドレスに、書込対象の通信データを書込み、書込んだ該物理アドレスに応じて、セキュアページテーブル３５とノンセキュアページテーブル３４と、を更新する処理であってもよい。
【０１８７】
図１２および図１４は、違反時処理の説明図である。図１２は、通信データである“データ１”が共有メモリ２３Ａに書込まれたときの、ノンセキュアページテーブル３４、セキュアページテーブル３５、およびメモリアクセス制御表３６の一例を示す模式図である。
【０１８８】
例えば、共有メモリ２３Ａの物理アドレス“０１”に“データ１”が書込まれたと仮定する。そして、ノンセキュアページテーブル３４およびセキュアページテーブル３５には、該物理アドレス“０１”に対応する仮想アドレス“０１”が対応付けられていると仮定する。また、メモリアクセス制御表３６には、該“データ１”の物理アドレス“０１”および状態情報“ロック状態”が登録されている。
【０１８９】
このときに、ノンセキュア処理部２５のメモリアクセス部２５Ａが、旧通信データ“データ１”の格納されている物理アドレス“０１”に対する、新通信データ“データ２”の書込要求を通知したと仮定する。
【０１９０】
すると、メモリアクセス制御部４２は、書込違反を判定し、書込違反と判定した物理アドレス（“データ１”の書込まれている物理アドレス“０１”）および書込対象の通信データ“データ２”を含む違反情報を、モニタ部４１の違反検知部４１Ｂを介して、セキュア処理部４０の違反命令実行部４０Ｂへ通知する。
【０１９１】
すると、違反命令実行部４０Ｂは、図１４に示すように、違反情報に含まれる物理アドレス“０１”とは異なる物理アドレス“０２”に、新通信データ“データ２”を書込む。
【０１９２】
そして、違反命令実行部４０Ｂは、ノンセキュアページテーブル３４およびセキュアページテーブル３５を更新する。
【０１９３】
詳細には、違反命令実行部４０Ｂは、セキュアページテーブル３５における、旧通信データ“データ１”の物理アドレス“０１”に対応する仮想アドレスを、他のアドレス（例えば、仮想アドレス“０２”）に変更する。そして、違反命令実行部４０Ｂは、新通信データ“データ２”の物理アドレス“０２”に対応する仮想アドレスとして、旧通信データ“データ１”に割当てていた仮想アドレス“０１”を割当てる。
【０１９４】
また、違反命令実行部４０Ｂは、ノンセキュアページテーブル３４における、旧通信データ“データ１”の物理アドレスに対応付けていた仮想アドレス“０１”を、新通信データ“データ２”の物理アドレスに対応付ける。
【０１９５】
このため、ノンセキュアページテーブル３４には、旧通信データである“データ１”の物理アドレス“０１”に対応する仮想アドレスが対応づけられていない状態となる。このため、ノンセキュア処理部２５は、旧通信データ“データ１”を読取ることは出来ない状態となる。
【０１９６】
このようにして、違反命令実行部４０Ｂは、違反時処理を実行する。
【０１９７】
図１５は、本実施の形態の情報処理装置１０Ｂが実行する通信処理の流れの一例を示す、シーケンス図である。
【０１９８】
本実施の形態の情報処理装置１０Ｂは、第１の実施の形態の情報処理装置１０のＳＥＱ２００〜ＳＥＱ２４０と同様にして、ＳＥＱ６０１〜ＳＥＱ６４４の処理を実行する。
【０１９９】
次に、ノンセキュアアプリケーション３２は、ルーティングによる変更後の通信データを含むフレームの書込要求を、メモリアクセス制御部４２へ通知する（ＳＥＱ６４６）。
【０２００】
メモリアクセス制御部４２は、ＳＥＱ６４６で受付けた書込要求が、書込違反であるか否かを判定する（ＳＥＱ６４８）。そして、書込違反と判定した場合、メモリアクセス制御部４２は、書込違反と判定した論理アドレスおよび該変更後の通信データを含む違反情報を、モニタ部４１の違反検知部４１Ｂへ通知する（ＳＥＱ６５０）。
【０２０１】
違反検知部４１Ｂは、違反情報に示される論理アドレスを物理アドレスに変換し、切替部２７Ａは、ノンセキュアモードＮからセキュアモードＳへモードを切替える。そして、モニタ部４１は、セキュアモードＳへ切替えたことを示すメッセージ（例えば、ＳＭＣ）を、セキュア処理部４０へ通知する（ＳＥＱ６５２）。また、違反検知部４１Ｂは、違反情報を、セキュア処理部４０へ通知する（ＳＥＱ６５４）。
【０２０２】
すると、セキュア処理部４０の違反命令実行部４０Ｂが、違反時処理を実行する（ＳＥＱ６５６）。
【０２０３】
違反時処理を実行すると、セキュア処理部４０のセキュア処理部２６が、モニタ部４１へ、ノンセキュアモードＮへ切替える第２切替指示を通知する（ＳＥＱ６５８）。
【０２０４】
すると、モニタ部４１の切替部２７Ａは、セキュアモードＳからノンセキュアモードＮへモードを切替え、ノンセキュアモードＮへ切替えたことを示すメッセージ（ＳＭＣ）を、ノンセキュアアプリケーション３２へ通知する（ＳＥＱ６６０）。
【０２０５】
そして、情報処理装置１０Ｂは、第１の実施の形態のＳＥＱ２４４〜ＳＥＱ２８８と同様にして、ＳＥＱ６６６〜ＳＥＱ７１４の処理を実行する。
【０２０６】
以上説明したように、本実施の形態の情報処理装置１０Ｂでは、メモリアクセス制御部４２が、ノンセキュア処理部２５からの書込違反を判定した場合、書込違反と判定した物理アドレスおよび書込対象の通信データを含む違反情報を、セキュア処理部４０へ通知する。セキュア処理部４０は、違反命令実行部４０Ｂを備える。違反命令実行部４０Ｂは、違反情報に応じて、違反時処理を実行する。違反時処理は、違反情報に含まれる物理アドレスに書込済の通信データをノンセキュア処理部２５から読取不可とし、該違反情報に含まれる通信データを共有メモリ２３Ａに書込み且つ該通信データをノンセキュア処理部２５から読取可能とする処理である。
【０２０７】
このため、本実施の形態の情報処理装置１０Ｂでは、上記実施の形態の効果に加えて、更に、メモリサイズの削減を図ることができる。
【０２０８】
（変形例３）
上記実施の形態では、セキュア処理部４０の違反命令実行部４０Ｂが、違反時処理を実行する形態を説明した。しかし、プロセッサ部２０のメモリ管理部が、違反時処理を実行してもよい。
【０２０９】
この場合、セキュア処理部４０およびモニタ部４１は、それぞれ、違反命令実行部４０Ｂおよび違反検知部４１Ｂを備えない構成とすればよい。
【０２１０】
プロセッサ部２０は、セキュアモードＳとノンセキュアモードＮとに選択的に切替えられ、各々のモードでデータ処理を行う。本変形例では、プロセッサ部２０は、メモリ管理部７０を備える。メモリ管理部７０は、違反時処理を実行する。
【０２１１】
メモリ管理部７０は、共有メモリ２３Ａに対するメモリアクセス制御機能を有する。詳細には、本実施の形態では、メモリ管理部７０は、ノンセキュア処理部２５からの書込違反を判定した場合、違反時処理を実行する。違反時処理は、上記第２の実施の形態と同様である。
【０２１２】
図１６は、本変形例の情報処理装置１０Ｂが実行する通信処理の流れの一例を示す、シーケンス図である。
【０２１３】
本変形例の情報処理装置１０Ｂは、第１の実施の形態の情報処理装置１０のＳＥＱ２００〜ＳＥＱ２４０と同様にして、ＳＥＱ８０１〜ＳＥＱ８４１の処理を実行する。
【０２１４】
次に、ノンセキュアアプリケーション３２は、ルーティングによる変更後の通信データを含むフレームの書込要求を、メモリ管理部７０へ通知する（ＳＥＱ８４２）。
【０２１５】
メモリ管理部７０は、ＳＥＱ８４２で受付けた書込要求が、書込違反であるか否かを判定する（ＳＥＱ８４４）。書込違反ではないと判定した場合、後述するＳＥＱ８５４へ進む。一方、書込違反と判定した場合、メモリ管理部７０は、書込違反と判定した論理アドレスを物理アドレスに変換し、違反時処理を実行する（ＳＥＱ８４６）。
【０２１６】
違反時処理を実行すると、メモリ管理部７０は、ノンセキュア処理部２５へ、処理終了を示す信号を通知する（ＳＥＱ８４８）。
【０２１７】
そして、情報処理装置１０Ｂは、第１の実施の形態のＳＥＱ２４４〜ＳＥＱ２８８と同様にして、ＳＥＱ８５４〜ＳＥＱ８９８の処理を実行する。
【０２１８】
以上説明したように、本変形例の情報処理装置１０Ｂでは、プロセッサ部２０のメモリ管理部７０が、違反時処理を実行する。
【０２１９】
このため、本変形例の情報処理装置１０Ｂでは、上記実施の形態の効果に加えて、更に、メモリサイズの削減を図ることができる。
【０２２０】
＜補足説明＞
なお、情報処理装置１０、情報処理装置１０Ｂで実行される上記各処理を実行するためのプログラムは、ＨＤＤ（ハードディスクドライブ）に記憶されていてもよい。また、上記実施の形態の、情報処理装置１０、情報処理装置１０Ｂで実行される上記各処理を実行するためのプログラムは、ＲＯＭ６２に予め組み込まれて提供されていてもよい。
【０２２１】
また、上記実施の形態の、情報処理装置１０、情報処理装置１０Ｂで実行される上記処理を実行するためのプログラムは、インストール可能な形式または実行可能な形式のファイルでＣＤ−ＲＯＭ、ＣＤ−Ｒ、メモリカード、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）、フレキシブルディスク（ＦＤ）等のコンピュータで読み取り可能な記憶媒体に記憶されてコンピュータプログラムプロダクトとして提供されるようにしてもよい。また、上記実施の形態の、情報処理装置１０、情報処理装置１０Ｂで実行される上記処理を実行するためのプログラムを、インターネットなどのネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するようにしてもよい。また、上記実施の形態の、情報処理装置１０、情報処理装置１０Ｂで実行される上記処理を実行するためのプログラムを、インターネットなどのネットワーク経由で提供または配布するようにしてもよい。
【０２２２】
以上、本発明の実施の形態を説明したが、これらの実施の形態は例として提示したものであり、発明の範囲を限定することは意図していない。これらの新規な実施の形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これらの実施の形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０２２３】
１、１Ａ  情報処理システム
１０、１０Ｂ  情報処理装置
２０  プロセッサ部
２２、４２  メモリアクセス制御部
２３Ａ  共有メモリ
２４  タイマ部
２５  ノンセキュア処理部
２６、４０  セキュア処理部
２７、４１  モニタ部
２７Ａ  切替部
２８  ストレージ
２９、７０  メモリ管理部
４０Ｂ  違反命令実行部
４１Ｂ  違反検知部
【図１】
2019101750.tif 000003
【図２】
2019101750.tif 000004
【図３】
2019101750.tif 000005
【図４】
2019101750.tif 000006
【図５】
2019101750.tif 000007
【図６】
2019101750.tif 000008
【図７】
2019101750.tif 000009
【図８】
2019101750.tif 000010
【図９】
2019101750.tif 000011
【図１０】
2019101750.tif 000012
【図１１】
2019101750.tif 000013
【図１２】
2019101750.tif 000014
【図１３】
2019101750.tif 000015
【図１４】
2019101750.tif 000016
【図１５】
2019101750.tif 000017
【図１６】
2019101750.tif 000018