JP6776292B2 - 情報処理装置、情報処理方法、およびプログラム - Google Patents

情報処理装置、情報処理方法、およびプログラム Download PDF

Info

Publication number
JP6776292B2
JP6776292B2 JP2018052628A JP2018052628A JP6776292B2 JP 6776292 B2 JP6776292 B2 JP 6776292B2 JP 2018052628 A JP2018052628 A JP 2018052628A JP 2018052628 A JP2018052628 A JP 2018052628A JP 6776292 B2 JP6776292 B2 JP 6776292B2
Authority
JP
Japan
Prior art keywords
unit
area
cache
data
secure
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2018052628A
Other languages
English (en)
Other versions
JP2019164647A (ja
Inventor
竜太 奈良
竜太 奈良
川端 健
健 川端
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP2018052628A priority Critical patent/JP6776292B2/ja
Priority to US16/117,321 priority patent/US10872174B2/en
Publication of JP2019164647A publication Critical patent/JP2019164647A/ja
Application granted granted Critical
Publication of JP6776292B2 publication Critical patent/JP6776292B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/74Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information operating in dual or compartmented mode, i.e. at least one secure mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0877Cache access modes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • G06F12/0895Caches characterised by their organisation or structure of parts of caches, e.g. directory or tag array
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/603Details of cache memory of operating mode, e.g. cache mode or local memory mode

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Storage Device Security (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

本発明の実施形態は、情報処理装置、情報処理方法、およびプログラムに関する。
従来より、情報処理装置の仮想化技術が知られている。仮想化技術を用いることにより単一の情報処理装置で複数のオペレーティングシステム(OS)を並行して実行させることができる。また、仮想化技術を用いてOSを切替える技術が開示されている。例えば、セキュアモードで動作するOSとノンセキュアモードで動作するOSとを切替えて処理を行う技術が知られている。この技術では、セキュアモードの処理が終了したときに、セキュアモードからノンセキュアモードへモードを切替え、ノンセキュアモードの処理を実行している。
ここで、リアルタイム性を追求するために、ノンセキュアモードとセキュアモードを随時切替えて処理を継続する必要が生じる場合がある。しかし、従来では、一方のモードの処理が終了するまで待機した後に、他方のモードへの切替えが行われており、リアルタイム性が低下する場合があった。
特開2016−45596号公報
本発明が解決しようとする課題は、リアルタイム性の低下を抑制することができる、情報処理装置、情報処理方法、およびプログラムを提供することである。
実施の形態の情報処理装置は、セキュアモードとノンセキュアモードとを切替えて動作する情報処理装置である。情報処理装置は、切替部を備える。切替部は、セキュアモードで動作しているときに、セキュアモードからノンセキュアモードへモードを切替える。
情報処理装置のハードウェア構成図。 情報処理装置の機能構成の概要図。 情報処理装置の機能構成の図。 対応表の模式図。 キャッシュメモリと物理メモリの模式図。 メモリアクセス制御表の模式図。 キャッシュメモリと物理メモリの模式図。 キャッシュメモリと物理メモリの模式図。 キャッシュメモリと物理メモリの模式図。 キャッシュメモリと物理メモリの模式図。 情報処理の手順のフローチャート。 効果の説明図。 効果の説明図。 効果の説明図。 情報処理装置の模式図。 情報処理装置の機能構成の図。 キャッシュメモリと物理メモリの模式図。 キャッシュメモリと物理メモリの模式図。 情報処理の手順のフローチャート。 情報処理装置の模式図。 情報処理装置の機能構成の図。 キャッシュメモリと物理メモリの模式図。 キャッシュメモリと物理メモリの模式図。 情報処理の手順のフローチャート。 情報処理装置の模式図。 情報処理装置の機能構成の図。 キャッシュメモリと物理メモリの模式図。 キャッシュメモリと物理メモリの模式図。 情報処理の手順のフローチャート。 情報処理装置の模式図。 情報処理システムの模式図。
以下、図面を参照しながら、情報処理装置、情報処理方法、およびプログラムの一の実施形態を説明する。
(第1の実施の形態)
図1は、本実施の形態に係る情報処理装置10のハードウェア構成例を示す図である。情報処理装置10は、プロセッサ12と、物理メモリ14と、タイマ16と、を備える。プロセッサ12、物理メモリ14、およびタイマ16は、バス20を介して接続されている。
プロセッサ12は、コンピュータシステムを集積回路として組み込んだものであり、コンピュータシステム上で動作するプログラム(ソフトウェア)に従って、様々な制御を実行する。プロセッサ12は、例えば、CPU(Central Processing Unit)やマイクロプロセッサである。プロセッサ12は、キャッシュメモリ18を含む。
物理メモリ14は、各種データを記憶する。物理メモリ14は、例えば、DRAM(Dynamic Random Access Memory)、SRAM(Static Randam Access Memory)、MRAM(Magnetoresistive Randam Access Memory)などである。タイマ16は、時間カウントを行う機器である。
図2は、本実施の形態の情報処理装置10の機能構成の概要を示す図である。情報処理装置10は、セキュアOS(Operating System)部22と、ノンセキュアOS部24と、モニタ部26と、ハードウェア部28と、を備える。
ハードウェア部28は、情報処理装置10におけるハードウェアに関する部分であり、プロセッサ12および物理メモリ14などを含む。
本実施の形態では、プロセッサ12は、複数のOSを実行する機能を有する。本実施の形態では、プロセッサ12は、セキュアモードとノンセキュアモードと称される二つのモードで、プログラムを分離して実行可能である。すなわち、プロセッサ12は、セキュアモードとノンセキュアモードとで、それぞれ別々のOSやアプリケーションを動作させることが可能である。すなわち、本実施の形態の情報処理装置10は、セキュアモードとノンセキュアモードとを切替えて動作する。
セキュアモードは、脆弱性混入リスクを最小化したOSやアプリケーションを動作させるモードである。以下、セキュアモードSと称して説明する。ノンセキュアモードNSは、セキュアモードSに比べて高機能で利用しやすい一方、コード規模が大きく脆弱性が生じやすいOSやアプリケーションを、動作させるモードである。以下、ノンセキュアモードNSと称して説明する。
本実施の形態の情報処理装置10は、セキュアモードSで動作するOSとして、セキュアOS部22を備える。セキュアOS部22は、プロセッサ12がセキュアOSを実行することにより機能する。
また、情報処理装置10は、ノンセキュアモードNSで動作するOSとして、ノンセキュアOS部24を備える。ノンセキュアOS部24は、プロセッサ12がノンセキュアOSを実行することにより機能する。
モニタ部26は、プロセッサ12がモニタプログラムを実行することにより機能する。モニタ部26は、セキュアモードSまたはノンセキュアモードNSへモードを切替える。具体的には、モニタ部26は、セキュアOS部22またはノンセキュアOS部24へ仮想マシンを提供し、セキュアOS部22またはノンセキュアOS部24を仮想マシン上で動作させる。すなわち、モニタ部26は、セキュアOS部22およびノンセキュアOS部24の何れか一方が有効となるように切替えて機能させる。モニタ部26は、セキュアOS部22またはノンセキュアOS部24からの呼出や、ハードウェア部28等からの割込みにより、モードの切替えを実行する。
なお、本実施の形態では、ノンセキュアOS部24は、リアルタイムOSとして機能する。このため、本実施の形態の情報処理装置10では、セキュアOS部22による処理中に、セキュアモードSからノンセキュアモードNSへモードが切替わる(詳細後述)。
図3は、情報処理装置10の機能構成の一例を示す図である。
ハードウェア部28は、タイマ16と、キャッシュメモリ18と、物理メモリ14と、キャッシュ制御部28Aと、メモリアクセス制御部28Bと、を備える。
キャッシュメモリ18には、共有キャッシュ領域18Aが予め設けられている。共有キャッシュ領域18Aは、セキュアOS部22とノンセキュアOS部24とが共有して利用する領域である。物理メモリ14には、共有物理領域14Aが予め設けられている。共有物理領域14Aは、セキュアOS部22とノンセキュアOS部24とが共有して利用する領域である。
本実施の形態では、ハードウェア部28は、ライトバックキャッシュ方式を採用している。ライトバックキャッシュ方式とは、書込指示されたデータを、キャッシュメモリ18だけに書込む方式である。ライトバックキャッシュ方式は、ライトバックと称される場合もある。キャッシュメモリ18から物理メモリ14への書込み(データ移動)は、所定条件を満たしたタイミングで行われる。
このため、ハードウェア部28は、物理メモリ14への書込指示を受付けた場合、キャッシュメモリ18へデータを書込み、所定条件を満たした場合に、キャッシュメモリ18から物理メモリ14へデータを移動させる。所定条件は、例えば、所定時間毎や、処理の空き時間が発生した場合、キャッシュアクセス後一定時間経過した場合、キャッシュメモリ18から物理メモリ14へのデータ移動指示を受付けた場合、などである。本実施の形態では、所定条件は、所定時間毎である場合を、一例として説明する。
なお、情報処理装置10は、キャッシュメモリ18のアドレス(以下、キャッシュアドレスと称する)と、物理メモリ14とのアドレス(以下、物理アドレスと称する)と、を予め対応付けた対応表を保持している。
図4は、対応表32の一例を示す模式図である。対応表32は、物理メモリ14の物理アドレスと、キャッシュメモリ18のキャッシュアドレスと、の対応関係を示す情報である。ライトバックキャッシュ時には、キャッシュメモリ18における各キャッシュアドレスによって示される領域に格納されているデータは、それぞれ、物理メモリ14における、対応表32に示される対応する物理アドレスによって示される領域の各々に、書込まれる。なお、物理メモリ14の物理アドレスとキャッシュメモリ18のキャッシュアドレスの対応関係は、1対1の関係でもよいし、多対1の関係でもよい。
ここで、対応表32には、物理メモリ14の共有物理領域14Aを示す物理アドレスに対応付けて、キャッシュメモリ18における共有物理領域14Aが予め対応付けられている。このため、図5に示すように、キャッシュメモリ18の共有キャッシュ領域18A内のデータは、物理メモリ14の共有物理領域14Aに書込まれることとなる。
図3に戻り説明を続ける。キャッシュ制御部28Aは、キャッシュメモリ18へのアクセスを制御する。メモリアクセス制御部28Bは、物理メモリ14へのアクセス(書込および読取)を制御する。メモリアクセス制御部28Bは、メモリアクセス制御表30を管理しており、メモリアクセス制御表30に基づいて、物理メモリ14へのアクセスを制御する。
図6は、メモリアクセス制御表30のデータ構成の一例を示す模式図である。
メモリアクセス制御表30は、物理アドレスと、データサイズと、状態情報と、を対応づけたテーブルである。なお、メモリアクセス制御表30のデータ形式は、テーブルに限定されない。例えば、メモリアクセス制御表30は、データベースであってもよい。
物理アドレスは、上述したように、物理メモリ14内におけるアドレスを示す。データサイズは、物理メモリ14内における、対応する物理アドレスを開始位置として格納されたデータのサイズを示す。
状態情報は、対応する物理アドレスに、対応するデータサイズで格納されたデータに対する、アクセス可否の状態を示す情報である。本実施の形態では、状態情報は、ロック状態またはロック解除状態を示す。
ロック状態は、ノンセキュアOS部24から書込指示されたデータの書込みを不可とし、ノンセキュアOS部24からの読取を可能とする状態である。言い換えると、ロック状態は、ノンセキュアOS部24から書込指示されたデータの、書込みを不可とすることを示す。ここで、上述したように、本実施の形態では、ハードウェア部28は、ライトバックキャッシュ方式を採用している。このため、本実施の形態では、ロック状態は、ノンセキュアOS部24によってキャッシュメモリ18に書込まれたデータの、キャッシュメモリ18から物理メモリ14への書込みを不可とすることを示す。
なお、ロック状態であっても、ノンセキュアOS部24やセキュアOS部22からの読取は可能である。また、ロック状態であっても、セキュアOS部22による書込は可能である。すなわち、ロック状態であっても、セキュアOS部22から書込指示されたデータについては、ロック状態の物理アドレスによって示される領域に書込可能である。
ロック解除状態は、セキュアOS部22およびノンセキュアOS部24からの書込および読取を可能とする状態である。言い換えると、ロック解除状態は、セキュアOS部22およびノンセキュアOS部24の各々から書込指示されたデータの、書込および読取を可能とする状態を示す。すなわち、ロック解除状態は、ノンセキュアOS部24から書込指示されたデータの、物理メモリ14への書込制限が解除された状態を示す。
このため、ノンセキュアOS部24から書込指示されたデータは、物理メモリ14における、状態情報“ロック状態”に対応する物理アドレスの領域への書込みが制限される。一方、セキュアOS部22から書込指示されたデータは、状態情報に拘らず、物理メモリ14の全ての物理アドレスに対して、読取および書込が可能である。
なお、メモリアクセス制御表30は、モニタ部26やセキュアOS部22によって更新される。
次に、ノンセキュアOS部24について説明する。ノンセキュアOS部24は、ノンセキュアモードNSで動作するOSである。本実施の形態では、ノンセキュアOS部24は、処理内容と処理対象データを、キャッシュメモリ18を介してセキュアOS部22へ渡し、セキュアOS部22へ処理を依頼する。処理内容は、ノンセキュアOS部24がセキュアOS部22へ依頼する処理の内容である。処理対象データは、ノンセキュアOS部24がセキュアOS部22へ処理を依頼する対象のデータである。
ノンセキュアOS部24は、書込先設定部24Aと、第1書込部24Bと、モニタ呼出部24Cと、を備える。すなわち、書込先設定部24A、第1書込部24B、およびモニタ呼出部24Cは、ノンセキュアモードNSで動作する。
書込先設定部24Aは、処理内容と処理対象データを書込む、物理メモリ14の物理アドレスとデータサイズを設定する。書込先設定部24Aは、対応表32(図4参照)における、共有物理領域14Aの物理アドレス(例えば、物理アドレス99Xとする)を、セキュアOS部22と共有しておくことで、処理内容と処理対象データを書込む物理アドレスを設定する。また、書込先設定部24Aは、処理内容と処理対象データを合計したサイズを、データサイズとして設定する。なお、処理内容は、処理対象データを読み出すために必要な処理対象データの先頭物理アドレスやサイズを含んでもよい。また、処理内容を区別するための番号を含んでもよい。
第1書込部24Bは、キャッシュメモリ18にデータを書込む。詳細には、第1書込部24Bは、キャッシュメモリ18の共有キャッシュ領域18Aに、処理対象データを書込む。本実施の形態では、第1書込部24Bは、処理内容と処理対象データを、共有キャッシュ領域18Aに書込む。
詳細には、第1書込部24Bは、処理対象データの物理メモリ14への書込指示と書込データを、キャッシュ制御部28Aへ通知する。具体的には、第1書込部24Bは、書込先設定部24Aで設定された物理アドレス99Xと、書込データのデータサイズと、書込データと、をキャッシュ制御部28Aへ通知する。書込データは、処理対象データと、該処理対象データに対する処理内容と、を含む。
すると、キャッシュ制御部28Aは、対応表32(図4参照)における、第1書込部24Bから受付けた書込指示に含まれる物理アドレス99Xに対応する、キャッシュアドレスを特定する。すなわち、キャッシュ制御部28Aは、共有キャッシュ領域18Aのキャッシュアドレスを特定する。そして、キャッシュ制御部28Aは、該書込データと属性を、共有キャッシュ領域18A内における、特定したキャッシュアドレスによって示される領域に書込データのサイズ分だけ書込む。
属性とは、ノンセキュアOS部24から書込指示されたデータであるか、セキュアOS部22から書込指示されたデータであるか、を示す。例えば、属性は、“NS”または“S”を示す。属性“NS”は、ノンセキュアOS部24から書込指示されたデータであることを示す。属性“S”は、セキュアOS部22から書込指示されたデータであることを示す。
図7は、第1書込部24Bから受付けた書込データ40を書込んだときの、キャッシュメモリ18と物理メモリ14の状態の一例を示す模式図である。図7に示すように、キャッシュメモリ18の共有キャッシュ領域18Aには、第1書込部24Bから受付けた書込データ40が書込まれた状態となる。
書込データ40は、上述したように、処理対象データ40Aと、処理内容40Eと、を含む。また、書込データ40には属性が付与される。なお、処理対象データ40Aと処理内容40Eは、ノンセキュアOS部24の第1書込部24Bが書込指示したデータである。このため、書込データ40に付与された属性は、“NS”を示す。また、書込データ40の書込先を示すキャッシュアドレスは、物理メモリ14の共有物理領域14Aにおける、処理対象データ40Aを書込む、開始物理アドレス99Xに対応している。このとき、物理メモリ14には、書込データ40は記憶されていない状態である。
図3に戻り説明を続ける。モニタ呼出部24Cは、ノンセキュアモードNSからセキュアモードSへモードを切替える第1切替指示をモニタ部26へ通知する。モニタ呼出部24Cは、第1書込部24Bによってキャッシュメモリ18へ書込データ40が書込まれたときに、ノンセキュアモードNSからセキュアモードSへの第1切替指示を、モニタ部26へ通知する。
次に、モニタ部26について説明する。モニタ部26は、切替指示ハンドラ部26Xと、切替部26Aと、タイマハンドラ部26Bと、第2書込部26Cと、ロック対象領域取得部26Dと、設定部26Eと、を備える。
切替指示ハンドラ部26Xは、切替指示を受付けたときに、ノンセキュアモードNSからセキュアモードSへ、または、セキュアモードSからノンセキュアモードNSへ、モードの切替えを行うため、切替部26Aに切替命令を送る。切替指示は、セキュアモニタコール(SMC)と称される場合がある。切替指示ハンドラ部26Xは、読出部22B、モニタ呼出部24Cまたは設定部26Eから、切替指示を受付ける。なお、本実施の形態では、切替指示ハンドラ部26Xは、セキュアOS部22による処理中や、ノンセキュアOS部24による処理中に、切替指示を受付ける場合がある(詳細後述)。
切替指示ハンドラ部26Xは、ノンセキュアモードNSからセキュアモードSへ切替える第1切替指示を受付けたときに、切替部26AにノンセキュアモードNSからセキュアモードSへモードを切替える第1切替命令を送る。第1切替指示は、切替指示の一例である。第1切替命令は、切替命令の一例である。切替命令は、切替指示ハンドラ部26Xから切替部26Aへ出力される命令であり、ノンセキュアモードNSからセキュアモードSへ、または、セキュアモードSからノンセキュアモードNSへの切替えを行うための命令である。
また、切替指示ハンドラ部26Xは、セキュアモードSからノンセキュアモードNSへ切替える第2切替指示を受付けたときに、切替部26Aに、セキュアモードSからノンセキュアモードNSへモードを切替える第2切替命令を送る。第2切替指示は、切替指示の一例である。第2切替命令は、切替命令の一例である。
切替部26Aは、ノンセキュアモードNSからセキュアモードSへモードを切替える第1切替命令を受け付けたときに、ノンセキュアモードNSからセキュアモードSへ、モードを切替える。また、切替部26Aは、セキュアモードSからノンセキュアモードNSへ切替える第2切替命令を受付けたときに、セキュアモードSからノンセキュアモードNSへ、モードを切替える。
ここで、上述したように、切替指示ハンドラ部26Xは、セキュアOS部22による処理中や、ノンセキュアOS部24による処理中に、切替指示を受付ける場合がある。このため、切替部26Aは、情報処理装置10がセキュアモードSで動作しているときに、セキュアモードSからノンセキュアモードNSへモードを切替える場合がある。
モニタ部26における、タイマハンドラ部26B、第2書込部26C、ロック対象領域取得部26D、および設定部26Eについては、説明を後述する。
次に、セキュアOS部22について説明する。セキュアOS部22は、セキュアモードSで動作するOSである。本実施の形態では、セキュアOS部22は、ノンセキュアOS部24からキャッシュメモリ18を介して、ノンセキュアOS部24がキャッシュメモリ18に書込んだ処理対象データ40Aに対する処理内容40Eを受付ける。そして、セキュアOS部22は、ノンセキュアOS部24がキャッシュメモリ18に書込んだ処理対象データ40Aを、受付けた処理内容40Eに従って処理し、処理結果を、キャッシュメモリ18を介してノンセキュアOS部24へ通知する。なお、セキュアOS部22は、処理結果をノンセキュアOS部24へ通知する形態に限定されない。
セキュアOS部22は、読出先取得部22Aと、読出部22Bと、処理部22Cと、を備える。すなわち、読出先取得部22A、読出部22B、および処理部22Cは、セキュアモードSで動作する。
読出先取得部22Aは、切替部26AによってノンセキュアモードNSからセキュアモードSへ切替えられたときに、書込データ40(処理内容40Eと処理対象データ40A)の読出先を取得する。書込データ40の読出先とは、書込データ40を読出す時のアドレスを示す情報である。本実施の形態では、読出先取得部22Aは、ノンセキュアOS部24と共有しておいた共有物理領域14Aの物理アドレス99Xを、書込データ40の読出先として取得する。
読出部22Bは、キャッシュメモリ18における、書込データ40を読出す。詳細には、読出部22Bは、第1書込部24Bによってキャッシュメモリ18の共有キャッシュ領域18Aに書込まれた処理対象データ40Aを読出す。
詳細には、読出部22Bは、読出先取得部22Aで取得した物理アドレス99Xによって示される書込データ40の読出指示を、キャッシュ制御部28Aへ通知する。
すると、キャッシュ制御部28Aは、対応表32(図4参照)における、読出部22Bから受付けた読出指示に含まれる物理アドレス99Xに対応するキャッシュアドレスを特定する。そして、キャッシュ制御部28Aは、キャッシュメモリ18における、特定したキャッシュアドレスに記憶されている書込データ40のうち処理内容40Eを、読出部22Bへ出力する。
読出部22Bは、キャッシュメモリ18から読出した書込データ40に含まれる処理対象データ40Aについて、書込データ40に含まれる処理内容40Eによって示される処理を実行するように、処理部22Cへ通知する。
処理部22Cは、読出部22Bから受付けた処理内容40Eに従って、処理対象データ40Aを読出し、処理する。読出部22Bは、処理部22Cによって処理された処理済データを、処理結果として、キャッシュ制御部28Aを介してキャッシュメモリ18へ書込む。
図8は、処理部22Cによる処理が終了したときの、キャッシュメモリ18と物理メモリ14の状態の一例を示す模式図である。図8に示すように、キャッシュメモリ18の共有キャッシュ領域18Aには、第1書込部24Bから受付けた書込データ40が書込まれている。そして、キャッシュメモリ18の共有キャッシュ領域18A以外の領域に、処理結果42が書込まれた状態となる。なお、処理結果42は、共有キャッシュ領域18Aに書込まれていてもよい。
処理結果42は、例えば、処理済データ42Aと、完了フラグ42Xと、を含み、キャッシュ制御部28Aによって属性が付与される。処理済データ42Aは、処理対象データ40Aを処理内容40Eに従って処理した後のデータである。また、処理済データ42AはセキュアOS部22の読出部22Bによって書込まれたデータであるため、属性は、“S”を示す。完了フラグ42Xは、処理が完了したか否かを示す。
読出部22Bは、処理結果42をキャッシュメモリ18へ書込む形態に限定されない。読出部22Bは、処理内容40Eに応じて、情報処理装置10に設けられた他の機能部へ処理結果42を通知してもよい。
図3に戻り説明を続ける。次に、モニタ部26における、タイマハンドラ部26B、第2書込部26C、ロック対象領域取得部26D、および設定部26Eについて説明する。
タイマハンドラ部26Bは、タイマ16から割込み信号を受付ける。本実施の形態では、タイマ16は、所定時間ごとに、割込み信号をタイマハンドラ部26Bへ通知する。本実施の形態では、この割込み信号の通知を、ライトバックキャッシュ方式におけるキャッシュメモリ18から物理メモリ14へのデータ移動(書込み)を行う所定条件の一つとして用いる。なお、タイマハンドラ部26Bは、キャッシュアクセス後一定時間経過した場合に、ライトバックキャッシュ方式におけるキャッシュメモリ18から物理メモリ14へのデータ移動(書込み)を行ってもよい。
タイマハンドラ部26Bは、割込み信号を受付けると、割込み発生を示す信号を第2書込部26Cへ出力する。
第2書込部26Cは、キャッシュメモリ18に格納されているキャッシュデータの内、処理対象データ40Aの少なくとも一部を、物理メモリ14へ書込む。キャッシュデータとは、キャッシュメモリ18に格納されているデータであり、上記属性以外のデータを示す。
例えば、第2書込部26Cは、キャッシュメモリ18における、処理内容40Eおよび処理対象データ40A(すなわち書込データ40)を、物理メモリ14へ書込む。詳細には、第2書込部26Cは、キャッシュメモリ18に格納されている全てのキャッシュデータにおける、処理内容40Eと処理対象データ40Aを、物理メモリ14へ書込む。
本実施の形態では、第2書込部26Cは、キャッシュメモリ18内の全てのキャッシュデータを、物理メモリ14へ書込む形態を説明する。詳細には、第2書込部26Cは、キャッシュ制御部28Aおよびメモリアクセス制御部28Bを介して、キャッシュメモリ18内の全てのキャッシュデータを、物理メモリ14へ書込む。第2書込部26Cによるキャッシュメモリ18から物理メモリ14への書込みは、キャッシュメモリ18内のデータを物理メモリ14へ“移動”することを意味する。
ここで、上述したように、キャッシュメモリ18における各キャッシュアドレスによって示される領域に格納されているデータは、それぞれ、物理メモリ14における、対応表32(図4参照)に示される対応する物理アドレスによって示される領域の各々に書込まれる。このため、キャッシュメモリ18の共有キャッシュ領域18A内のキャッシュデータは、物理メモリ14の共有物理領域14Aへ書込まれる。
なお、キャッシュメモリ18から物理メモリ14への書込みは、キャッシュメモリ18に対してアクセスがなされてから一定時間経過した後に、キャッシュ制御部28Aが自動的に行ってもよい。
図9は、第2書込部26Cによる書込が終了したときの、キャッシュメモリ18と物理メモリ14の状態の一例を示す模式図である。第2書込部26Cによる書込によって、キャッシュメモリ18内の全てのキャッシュデータが、物理メモリ14内の対応する物理アドレスによって示される領域に書込まれる。なお、上述したように、本実施の形態におけるキャッシュデータには、上述した属性は含まれない。このため、第2書込部26Cによる書込によって、キャッシュメモリ18内の、書込データ40(処理内容40E、処理対象データ40A)および処理結果42(処理済データ42A、完了フラグ42X)が、物理メモリ14内の対応する物理アドレスによって示される領域に書込まれる。
このため、キャッシュメモリ18内の共有キャッシュ領域18Aに書込まれていた書込データ40は、物理メモリ14の共有物理領域14Aへ書込まれ、キャッシュメモリ18の共有キャッシュ領域18A以外の領域に書込まれていた処理結果42は、物理メモリ14の共有物理領域14A以外の領域に書込まれる。また、キャッシュメモリ18内における他のキャッシュデータも、物理メモリ14における対応する物理アドレスによって示される領域に書込まれる。
図3に戻り説明を続ける。ロック対象領域取得部26Dは、物理メモリ14の共有物理領域14Aを、ロック対象領域として取得する。ロック対象領域取得部26Dは、対応表32(図4参照)における、共有物理領域14Aを示す物理アドレスを読取ることで、ロック対象領域を取得する。そして、例えば、ロック対象領域取得部26Dは、共有物理領域14A全体を、ロック対象領域として取得する。
なお、ロック対象領域取得部26Dは、物理メモリ14における少なくとも一部の領域を、ロック対象領域として取得すればよい。例えば、ロック対象領域取得部26Dは、物理メモリ14における、共有キャッシュ領域18Aに対応する共有物理領域14Aの内、少なくとも第2書込部26Cによって書込まれた領域を、ロック対象領域として取得すればよい。本実施の形態では、ロック対象領域取得部26Dが、物理メモリ14における、共有キャッシュ領域18Aに対応する共有物理領域14Aを、ロック対象領域として取得する場合を、一例として説明する。
設定部26Eは、情報処理装置10のモードがセキュアモードSであるときであって、且つ、該セキュアモードSからノンセキュアモードNSへモードを切替える前に、物理メモリ14における少なくとも一部の領域を、ロック状態に設定する。
本実施の形態では、設定部26Eは、セキュアモードSからノンセキュアモードNSへモードを切替える前に、物理メモリ14における、共有キャッシュ領域18Aに対応する共有物理領域14Aの内、少なくとも第2書込部26Cによって書込まれた領域を、ロック状態に設定する。本実施の形態では、設定部26Eは、ロック対象領域取得部26Dで取得したロック対象領域としての共有物理領域14Aを、ロック状態に設定する。
例えば、設定部26Eは、共有物理領域14Aをロック状態へすることを示すロック指示をメモリアクセス制御部28Bへ通知する。メモリアクセス制御部28Bは、メモリアクセス制御表30における、ロック指示に含まれる共有物理領域14Aを示す物理アドレスに対応する状態情報を“ロック状態”に更新する。この処理により、セキュアモードSからノンセキュアモードNSへモードを切替える前に、共有物理領域14Aの全体がロック状態に設定される。以下、ロック状態Lと称して説明する場合がある。
図10は、設定部26Eによってロック状態が設定されたときの、キャッシュメモリ18と物理メモリ14の状態の一例を示す模式図である。図10に示すように、設定部26Eの処理によって、共有物理領域14Aがロック状態Lに設定される。このため、物理メモリ14における共有物理領域14Aは、ノンセキュアOS部24によって書込指示された属性“NS”のデータの、キャッシュメモリ18から物理メモリ14への書込み不可能な状態となる。言い換えると、ロック状態Lに設定された共有物理領域14Aは、ノンセキュアOS部24による書込や書換えの制限された状態となる。
すなわち、本実施の形態では、第2書込部26Cが、キャッシュメモリ18内の全てのキャッシュデータを物理メモリ14へ書込んだ後に、設定部26Eが、物理メモリ14における、処理対象データ40Aを含む共有物理領域14A内の全領域をロック状態Lに設定する。
このため、第2書込部26Cは、設定部26Eによって共有物理領域14Aがロック状態Lに設定される前に、キャッシュメモリ18に格納されているキャッシュデータの内、処理対象データ40Aの少なくとも一部を、物理メモリ14の共有物理領域14Aへ書込む。そして、共有物理領域14Aに処理対象データ40Aの少なくとも一部が書込まれた後に、設定部26Eによって、物理メモリ14における該書込まれた領域が、ロック状態Lに設定される。また、これらの処理は、セキュアモードSからノンセキュアモードNSへモードが切替えられる前に実行される。
共有物理領域14Aをロック状態Lへ設定すると、設定部26Eは、セキュアモードSからノンセキュアモードNSへ切替える第2切替指示を、切替指示ハンドラ部26Xへ通知する。このため、切替指示ハンドラ部26Xは、第2切替命令を、切替部26Aへ通知する。第2切替命令を受付けると、切替部26Aは、セキュアモードSからノンセキュアモードNSへ、モードを切替える。このため、ノンセキュアOS部24が有効となり、ノンセキュアOS部24は、処理結果42や書込データ40を読取り可能な状態となる。しかし、ノンセキュアOS部24による、共有物理領域14Aへのデータの書込みや書換えは制限される。
ここで、上述したように、タイマハンドラ部26Bがタイマ16から割込み信号を受付けると、第2書込部26Cが、キャッシュメモリ18に格納されている処理対象データ40Aの少なくとも一部を物理メモリ14へ書込み、設定部26Eが、少なくとも物理メモリ14における第2書込部26Cによって書込まれた領域をロック状態Lに設定する。このため、第2書込部26Cは、設定部26Eによって物理メモリ14がロック状態Lに設定される前に、キャッシュメモリ18から物理メモリ14へデータを書込む。そして、物理メモリ14における上記領域がロック状態Lに設定されると、設定部26Eが、第2切替指示を切替指示ハンドラ部26Xへ通知し、切替指示ハンドラ部26Xが、第2切替命令を切替部26Aへ通知する。すると、切替部26Aは、セキュアモードSからノンセキュアモードNSへモードを切替える。
このため、本実施の形態の情報処理装置10では、タイマ16による割込み信号の受付タイミングが、セキュアOS部22によるキャッシュメモリ18内の処理対象データ40Aの処理中の場合であっても、切替部26Aは、セキュアモードSからノンセキュアモードNSへモードを切替えることができる。言い換えると、切替部26Aは、情報処理装置10がセキュアモードSで動作中であっても、セキュアモードSからノンセキュアモードNSへモードを切替えることができる。
次に、本実施の形態の情報処理装置10で実行する情報処理の手順を説明する。図11は、本実施の形態の情報処理装置10が実行する、情報処理の手順の一例を示す、フローチャートである。
まず、ノンセキュアOS部24の書込先設定部24Aが、物理メモリ14の物理アドレス99Xとデータサイズを設定する(ステップS100)。次に、第1書込部24Bが、書込データ40(処理内容40Eと処理対象データ40A)を、共有キャッシュ領域18Aに書込む(ステップS102)。
ステップS102では、第1書込部24Bは、ステップS100で設定された物理アドレス99Xと、データサイズと、を含む書込指示と、処理対象データ40Aおよび処理内容40Eを含む書込データ40と、の各々を、キャッシュ制御部28Aへ通知する。キャッシュ制御部28Aは、キャッシュメモリ18における、受付けた書込指示に含まれる物理アドレス99Xに対応するキャッシュアドレスによって示される領域に、書込指示に含まれるデータサイズ分だけ、書込データ40を書き込む。このとき、キャッシュ制御部28Aは、書込データ40に“NS”を示す属性を付与する。ステップS102の処理によって、キャッシュメモリ18の共有キャッシュ領域18Aには、書込データ40が書込まれた状態となる(図7参照)。
次に、切替部26Aが、ノンセキュアモードNSからセキュアモードSへモードを切替える(ステップS104)。ステップS102の処理が終了すると、モニタ呼出部24Cが、第1切替指示を切替指示ハンドラ部26Xへ通知する。切替指示ハンドラ部26Xは、切替部26Aに第1切替命令を送る。第1切替命令を受付けることで、切替部26Aは、ノンセキュアモードNSからセキュアモードSへモードを切替える。
次に、セキュアOS部22の読出先取得部22Aが、共有物理領域14Aの物理アドレス99Xとキャッシュメモリ18の共有キャッシュ領域18Aに書込まれた書込データ40に含まれる、処理内容40Eを取得する(ステップS106)。
次に、読出部22Bが、処理内容40Eに基づき、キャッシュメモリ18における、処理対象データ40Aを読出す(ステップS108)。ステップS108では、読出部22Bが、処理内容によって示される処理対象データ40Aの読出指示を、キャッシュ制御部28Aへ通知する。キャッシュ制御部28Aは、キャッシュメモリ18における、該処理内容40Eが持つ処理対象データ40Aの先頭物理アドレスに対応するキャッシュアドレスに記憶されている処理対象データ40Aを、読出部22Bへ出力する。この処理により、読出部22Bは、書込データ40に含まれる処理対象データ40Aを読出す。
処理部22Cは、ステップS108で読出した処理対象データ40Aに対して、書込データ40に含まれる処理内容40Eによって示される処理を実行する(ステップS110)(図8参照)。
次に、タイマ16が、割込みを発生したか否かを判定する(ステップS112)。タイマ16は、時間カウントが一定のカウント数に達していれば、割込みを発生させる。ステップS112では、タイマ16が、一定の時間カウント数に達したことによる割込み信号を発生させたか否かを判別することで、ステップS112の判断を行う。
ステップS112で否定判断すると(ステップS112:No)、上記ステップS108へ戻る。ステップS112で肯定判断すると(ステップS112:Yes)、ステップS114へ進む。
ステップS114では、割込みが発生したことでタイマハンドラ部26Bが呼び出される。タイマハンドラ部26Bは、第2書込部26Cを実行する。第2書込部26Cが、キャッシュ制御部28Aに指示し、キャッシュメモリ18内の全てのキャッシュデータを、物理メモリ14へ書込ませる(ステップS114)。このため、物理メモリ14には、キャッシュメモリ18内の全てのキャッシュデータが書込まれると共に、キャッシュメモリ18の共有キャッシュ領域18A内の全てのキャッシュデータが、物理メモリ14の共有物理領域14Aに書込まれた状態となる(図9参照)。
次に、ロック対象領域取得部26Dが、物理メモリ14の共有物理領域14Aを、ロック対象領域として取得する(ステップS116)。そして、設定部26Eは、ステップS116でロック対象領域として取得された、物理メモリ14の共有物理領域14Aを、ロック状態Lに設定する(ステップS118)。
ステップS118の処理によって、物理メモリ14における、共有物理領域14Aがロック状態Lとなる(図10参照)。なお、共有物理領域14Aには、処理対象データ40Aが書込まれているため、共有物理領域14Aに含まれる処理対象データ40Aもまた、ロック状態Lとなる。
次に、切替部26Aが、セキュアモードSからノンセキュアモードNSへモードを切替える(ステップS120)。ステップS120の処理によって、ノンセキュアOS部24が有効となる。
次に、モニタ呼出部24Cが、処理結果42に含まれる完了フラグ42Xを参照し、セキュアOS部22によるステップS110の処理内容40Eによる処理対象データ40Aの処理が終了しているか否かを判断する(ステップS122)。ステップS122で否定判断すると(ステップS122:No)、上記ステップS104へ戻る。一方、ステップS122で肯定判断すると(ステップS122:Yes)、本ルーチンを終了する。
以上説明したように、本実施の形態の情報処理装置10は、セキュアモードSとノンセキュアモードNSとを切替えて動作する。情報処理装置10の切替部26Aは、セキュアモードSで動作しているときに、セキュアモードSからノンセキュアモードNSへモードを切替える。
このように、本実施の形態の情報処理装置10では、セキュアモードSの処理が終了するまで待つことなく、セキュアモードSで動作中に、切替部26Aが、セキュアモードSからノンセキュアモードNSへモードを切替える。
従って、本実施の形態の情報処理装置10では、リアルタイム性の向上を図ることができる。
また、本実施の形態の情報処理装置10は、設定部26Eを備える。設定部26Eは、セキュアモードSからノンセキュアモードNSへ切替える前に、セキュアモードSとノンセキュアモードNSで共有する物理メモリ14における少なくとも一部の領域を、ロック状態Lに設定する。
このため、本実施の形態の情報処理装置10では、上記効果に加えて、更に、脆弱性混入リスクの低減を図ることができる。
また、本実施の形態の情報処理装置10では、セキュアモードSで動作する読出部22Bが、第1書込部24Bによってキャッシュメモリ18の共有キャッシュ領域18Aに書込まれた処理対象データを読出す。そして、第2書込部26Cが、設定部26Eによってロック状態Lに設定される前に、キャッシュメモリ18に格納されているキャッシュデータの内、処理対象データの少なくとも一部を、物理メモリ14へ書込む。
また、本実施の形態の情報処理装置10では、設定部26Eは、物理メモリ14における、共有キャッシュ領域18Aに対応する共有物理領域14Aの内、少なくとも第2書込部26Cによって書込まれた領域を、ロック状態Lに設定する。
このため、本実施の形態の情報処理装置10では、上記効果に加えて、更に、脆弱性混入リスクの低減とメモリアクセス時に発生するエラーの抑制を図ることができる。
リアルタイム性の向上と、脆弱性混入リスクの低減とメモリアクセス時に発生するエラーの抑制と、を図ることができる理由を説明する。図12〜図14は、これらの効果の説明図である。
図12に示すように、ノンセキュアOS部24からセキュアOS部22へ、キャッシュメモリ18を介して書込データ40を渡し、書込データ40に含まれる処理対象データ40Aの処理をセキュアOS部22へ依頼すると仮定する。
そして、セキュアOS部22が処理対象データ40Aの処理を実行中に、モニタ部26が、セキュアモードSからノンセキュアモードNSへモードを切替える。そして、設定部26Eが、物理メモリ14をロック状態Lに設定したと仮定する(図13参照)。すると、属性“NS”の処理対象データ40Aを、物理メモリ14へ書出すことが制限される。このため、キャッシュ制御部28Aが自動的にキャッシュメモリ18内のキャッシュデータを物理メモリ14へ書出すと、物理メモリ14へのアクセスエラーが発生する場合がある(図13中、エラーE参照)。
一方、このようなアクセスエラーを抑制するために、物理メモリ14をロック状態Lとせずに、キャッシュメモリ18内のキャッシュデータを物理メモリ14へ書出した場合(図14、書出しW参照)、ノンセキュアOS部24による書込が制限されず、脆弱性混入のリスクが発生する場合がある。
そこで、第2書込部26Cが、キャッシュメモリ18に格納されているキャッシュデータの内、処理対象データ40Aの少なくとも一部を、物理メモリ14へ書込む。そして、設定部26Eが、物理メモリ14における、共有キャッシュ領域18Aに対応する共有物理領域14Aの内、少なくとも第2書込部26Cによって書込まれた領域を、ロック状態Lに設定する(図9、図10参照)。
すると、処理対象データ40Aを含む共有物理領域14Aにおける、少なくとも第2書込部26Cによって書込まれた領域について、ノンセキュアOS部24による改竄を抑制することができ、脆弱性混入リスクの低減を図ることができる。また、共有物理領域14Aにおける、少なくとも第2書込部26Cによって書込まれた領域をロック状態Lに設定する前に、キャッシュメモリ18内のキャッシュデータを物理メモリ14へ書込むため、属性“NS”の処理対象データ40Aを物理メモリ14へ書出すときのアクセスエラー発生を防ぐことができる。
従って、本実施の形態の情報処理装置10では、リアルタイム性の向上、といった効果に加えて、更に、脆弱性混入リスクの低減とメモリアクセス時に発生するエラーの抑制を図ることができる。
また、本実施の形態の情報処理装置10は、上記構成によりメモリアクセス時に発生するエラーを抑制することができる。このため、情報処理装置10では、ノンセキュアモードNSからセキュアモードSへモードを切替えてロック状態Lを解除した後に、再度、セキュアモードSからノンセキュアモードNSへ切替えることでアクセスエラーを解除する、といったアクセスエラーの解除処理を行う必要がない。このため、ノンセキュアOS部24によるキャッシュメモリ18を介した物理メモリ14への書込み時に、ノンセキュアOS部24の処理が停止することを抑制することができる。よって、本実施の形態の情報処理装置10は、上記効果に加えて、ノンセキュアOS部24による処理の低下を抑制することができる。
<変形例1>
なお、第1の実施の形態では、モニタ部26が、切替部26Aと、タイマハンドラ部26Bと、第2書込部26Cと、ロック対象領域取得部26Dと、設定部26Eと、を備えた構成である場合を説明した(図3参照)。しかし、タイマハンドラ部26B、第2書込部26C、ロック対象領域取得部26D、および設定部26Eの少なくとも1つは、セキュアOS部22に設けた構成であってもよい。
図15は、本変形例の情報処理装置10’の一例を示す模式図である。なお、ハードウェア構成および機能構成の概要は、第1の実施の形態の情報処理装置10と同様である(図2、図3参照)。
情報処理装置10’は、セキュアOS部22’と、ノンセキュアOS部24と、モニタ部26’と、ハードウェア部28と、を備える。ノンセキュアOS部24、およびハードウェア部28は、情報処理装置10と同様である。セキュアOS部22’およびモニタ部26’は、タイマハンドラ部26B、第2書込部26C、ロック対象領域取得部26D、および設定部26EがセキュアOS部22’に設けられている点以外は、第1の実施の形態の情報処理装置10と同様である。なお、タイマハンドラ部26B、第2書込部26C、ロック対象領域取得部26D、および設定部26Eは、第1の実施の形態と同様である。
このように、タイマハンドラ部26B、第2書込部26C、ロック対象領域取得部26D、および設定部26Eの少なくとも1つは、セキュアOS部22に設けた構成であってもよい。なお、第2書込部26Cは、ノンセキュアOS部24に設けられていてもよい。
(第2の実施の形態)
上記第1の実施の形態では、第2書込部26Cが、キャッシュメモリ18内の全てのキャッシュデータを物理メモリ14へ書込み、設定部26Eが、物理メモリ14の共有物理領域14Aをロック状態Lに設定する形態を説明した。
本実施の形態では、キャッシュメモリ18における共有キャッシュ領域18Aのキャッシュデータを物理メモリ14へ書込み、物理メモリ14の共有物理領域14Aをロック状態Lに設定する形態を説明する。
図16は、情報処理装置10Bの機能構成の一例を示す図である。
情報処理装置10Bは、セキュアOS部22と、ノンセキュアOS部24と、モニタ部50と、ハードウェア部28と、を備える。情報処理装置10Bは、モニタ部26に代えてモニタ部50を備えた点以外は、第1の実施の形態の情報処理装置10と同様である。
モニタ部50は、切替部26Aと、タイマハンドラ部26Bと、ロック対象領域取得部26Dと、設定部26Eと、第2書込部50Cと、共有キャッシュ領域取得部50Fと、を備える。切替部26A、タイマハンドラ部26B、ロック対象領域取得部26D、および設定部26Eは、第1の実施の形態と同様である。
共有キャッシュ領域取得部50Fは、キャッシュメモリ18における、共有キャッシュ領域18Aのキャッシュアドレスを取得する。共有キャッシュ領域取得部50Fは、対応表32(図4参照)における、共有キャッシュ領域18Aのキャッシュアドレスを読取ることで、共有キャッシュ領域18Aのキャッシュアドレスを取得する。
第2書込部50Cは、キャッシュメモリ18における、共有キャッシュ領域18A内のキャッシュデータを、物理メモリ14の共有物理領域14Aへ書込む。
詳細には、第2書込部50Cは、共有キャッシュ領域取得部50Fから共有キャッシュ領域18Aのキャッシュアドレスを受付ける。そして、第2書込部50Cは、キャッシュ制御部28Aおよびメモリアクセス制御部28Bを介して、共有キャッシュ領域18A内の全てのキャッシュデータを、物理メモリ14へ書込む。このため、共有キャッシュ領域18A内の全てのキャッシュデータが、物理メモリ14の共有物理領域14Aへ移動される。
図17は、第2書込部50Cによる書込が終了したときの、キャッシュメモリ18と物理メモリ14の状態の一例を示す模式図である。第2書込部50Cによる書込によって、キャッシュメモリ18における共有キャッシュ領域18A内の全てのキャッシュデータが、物理メモリ14の共有物理領域14Aに書込まれる。
このため、本実施の形態では、キャッシュメモリ18の共有キャッシュ領域18A以外の領域に書込まれていたキャッシュデータ(例えば、処理結果42)は、キャッシュメモリ18に残り、物理メモリ14に書込まれない。
図16に戻り説明を続ける。第1の実施の形態と同様に、ロック対象領域取得部26Dは、物理メモリ14の共有物理領域14Aを、ロック対象領域として取得する。また、第1の実施の形態と同様に、設定部26Eは、物理メモリ14における、共有キャッシュ領域18Aに対応する共有物理領域14Aを、ロック状態に設定する。
図18は、設定部26Eによってロック状態が設定されたときの、キャッシュメモリ18と物理メモリ14の状態の一例を示す模式図である。図18に示すように、設定部26Eの処理によって、共有物理領域14Aがロック状態Lに設定される。
このように、本実施の形態では、第2書込部50Cが、キャッシュメモリ18における共有キャッシュ領域18Aのキャッシュデータを、物理メモリ14へ書込む。そして、設定部26Eが、共有物理領域14A内の全領域をロック状態Lに設定する。このため、共有キャッシュ領域18Aに格納されていた処理対象データ40Aは、物理メモリ14の共有物理領域14Aへ書込まれ、該処理対象データ40Aを含む共有物理領域14Aがロック状態Lに設定される。
次に、本実施の形態の情報処理装置10Bで実行する情報処理の手順を説明する。図19は、本実施の形態の情報処理装置10Bが実行する、情報処理の手順の一例を示す、フローチャートである。
情報処理装置10Bは、情報処理装置10の手順(ステップS100〜ステップS112、図11参照)と同様にして、ステップS200〜ステップS212の処理を実行する。
詳細には、情報処理装置10Bは、ノンセキュアOS部24の書込先設定部24Aが、物理メモリ14の物理アドレスとデータサイズを設定する(ステップS200)。次に、第1書込部24Bが、処理対象データ40Aを、共有キャッシュ領域18Aに書込む(ステップS202)。次に、切替部26Aが、ノンセキュアモードNSからセキュアモードSへモードを切替える(ステップS204)。
次に、セキュアOS部22の読出先取得部22Aが、共有物理領域14Aの物理アドレス99Xとキャッシュメモリ18の共有キャッシュ領域18Aに書込まれた書込データ40に含まれる、処理内容40Eを取得する(ステップS206)。次に、読出部22Bが、処理内容40Eに基づき、キャッシュメモリ18における、処理対象データ40Aを読出す(ステップS208)。処理部22Cは、ステップS208で読出した処理対象データ40Aに対して、書込データ40に含まれる処理内容40Eによって示される処理を実行する(ステップS210)。
次に、タイマ16が、割込みを発生したか否かを判定する(ステップS212)。ステップS212で否定判断すると(ステップS212:No)、上記ステップS208へ戻る。ステップS212で肯定判断すると(ステップS212:Yes)、ステップS214へ進む。
次に、共有キャッシュ領域取得部50Fが、キャッシュメモリ18における、共有キャッシュ領域18Aのキャッシュアドレスを取得する(ステップS214)。次に、第2書込部50Cが、キャッシュ制御部28Aに指示し、キャッシュメモリ18における、共有キャッシュ領域18A内のキャッシュデータを、物理メモリ14の共有物理領域14Aへ書込ませる(ステップS216、図17参照)。
次に、ロック対象領域取得部26Dが、物理メモリ14の共有物理領域14Aを、ロック対象領域として取得する(ステップS218)。そして、設定部26Eは、ステップS218でロック対象領域として取得された、物理メモリ14の共有物理領域14Aを、ロック状態Lに設定する(ステップS220)(図18参照)。
次に、切替部26Aが、セキュアモードSからノンセキュアモードNSへモードを切替える(ステップS222)。次に、モニタ呼出部24Cが、処理結果42に含まれる完了フラグ42Xを参照して、セキュアOS部22によるステップS210の処理対象データ40Aの処理が終了しているか否かを判断する(ステップS224)。ステップS224で否定判断すると(ステップS224:No)、上記ステップS204へ戻る。一方、ステップS224で肯定判断すると(ステップS224:Yes)、本ルーチンを終了する。
以上説明したように、本実施の形態の情報処理装置10Bは、第2書込部50Cが、共有キャッシュ領域18Aのキャッシュデータを、物理メモリ14へ書込む。そして、設定部26Eが、共有物理領域14A内の全領域をロック状態Lに設定する。このため、共有キャッシュ領域18Aに格納されていた処理対象データ40Aは、物理メモリ14の共有物理領域14Aへ書込まれ、該処理対象データ40Aを含む共有物理領域14Aがロック状態Lに設定される。
このため、本実施の形態の情報処理装置10Bは、処理対象データ40Aを含む共有物理領域14Aの、ノンセキュアOS部24による改竄を抑制することができ、脆弱性混入リスクの低減を図ることができる。また、共有物理領域14Aをロック状態Lに設定する前に、共有キャッシュ領域18A内のキャッシュデータを物理メモリ14へ書込むため、属性“NS”の処理対象データ40Aを物理メモリ14へ書出すときのアクセスエラー発生を防ぐことができる。
従って、本実施の形態の情報処理装置10Bは、リアルタイム性の向上を図ることができると共に、脆弱性混入リスクの低減とメモリアクセス時に発生するエラーの抑制を図ることができる。
また、本実施の形態の情報処理装置10Bは、第2書込部50Cが、共有キャッシュ領域18A内のキャッシュデータを、物理メモリ14へ書込む。ここで、キャッシュメモリ18における共有キャッシュ領域18Aは、予め設定された固定領域である。このため、本実施の形態の情報処理装置10Bは、第1の実施の形態の効果に加えて、容易に、キャッシュメモリ18から物理メモリ14へのキャッシュデータの書出しを行うことができる。
<変形例2>
なお、第2の実施の形態では、モニタ部50が、切替部26Aと、タイマハンドラ部26Bと、共有キャッシュ領域取得部50Fと、第2書込部50Cと、ロック対象領域取得部26Dと、設定部26Eと、を備えた構成である場合を説明した(図16参照)。しかし、タイマハンドラ部26B、共有キャッシュ領域取得部50F、第2書込部50C、ロック対象領域取得部26D、および設定部26Eの少なくとも1つは、セキュアOS部22に設けた構成であってもよい。
図20は、本変形例の情報処理装置10B’の一例を示す模式図である。情報処理装置10B’は、セキュアOS部52と、ノンセキュアOS部24と、モニタ部50’と、ハードウェア部28と、を備える。ノンセキュアOS部24、およびハードウェア部28は、情報処理装置10と同様である。セキュアOS部52およびモニタ部50’は、タイマハンドラ部26B、共有キャッシュ領域取得部50F、第2書込部50C、ロック対象領域取得部26D、および設定部26EがセキュアOS部52に設けられている点以外は、第2の実施の形態の情報処理装置10Bと同様である。なお、タイマハンドラ部26B、共有キャッシュ領域取得部50F、第2書込部50C、ロック対象領域取得部26D、および設定部26Eは、第2の実施の形態と同様である。
このように、タイマハンドラ部26B、共有キャッシュ領域取得部50F、第2書込部50C、ロック対象領域取得部26D、および設定部26Eの少なくとも1つは、セキュアOS部52に設けた構成であってもよい。なお、共有キャッシュ領域取得部50Fおよび第2書込部50Cの少なくとも一方は、ノンセキュアOS部24に設けられていてもよい。
(第3の実施の形態)
上記第2の実施の形態では、共有キャッシュ領域18A内の処理対象データ40Aを物理メモリ14へ書込み、物理メモリ14の共有物理領域14Aをロック状態Lに設定する形態を説明した。
本実施の形態では、共有キャッシュ領域18A内の処理対象データ40Aを物理メモリ14へ書込み、共有物理領域14Aにおける処理対象データ40Aの書込まれた領域を、ロック状態Lに設定する形態を説明する。
図21は、情報処理装置10Cの機能構成の一例を示す図である。
情報処理装置10Cは、セキュアOS部22と、ノンセキュアOS部24と、モニタ部54と、ハードウェア部28と、を備える。情報処理装置10Cは、モニタ部26に代えてモニタ部54を備えた点以外は、第1の実施の形態の情報処理装置10と同様である。
モニタ部54は、切替部26Aと、タイマハンドラ部26Bと、処理対象データ領域取得部54Fと、第2書込部54Cと、ロック対象領域取得部54Dと、設定部54Eと、を備える。切替部26A、およびタイマハンドラ部26Bは、第1の実施の形態と同様である。
処理対象データ領域取得部54Fは、物理メモリ14の物理アドレス99Xから、キャッシュメモリ18における、処理対象データ40Aの格納された領域のキャッシュアドレスを取得する。例えば、処理対象データ領域取得部54Fは、キャッシュメモリ18に格納されている書込データ40に含まれる処理内容40Eを読取る。そして、処理対象データ領域取得部54Fは、読取った処理内容40Eから処理対象データのサイズを取得し、物理メモリ14の物理アドレス99Xと合わせて対応するキャッシュアドレスを対応表32(図4参照)から読取ることで、処理対象データ40Aの格納された領域のキャッシュアドレスを取得する。
第2書込部54Cは、キャッシュ制御部28Aに指示し、キャッシュメモリ18における処理対象データ40Aを、物理メモリ14の共有物理領域14A内に書込む。
詳細には、第2書込部54Cは、処理対象データ領域取得部54Fから、キャッシュメモリ18における書込データ40の格納された領域のキャッシュアドレスを受付ける。そして、第2書込部54Cは、キャッシュ制御部28Aおよびメモリアクセス制御部28Bを介して、共有キャッシュ領域18A内における処理対象データ40Aを、物理メモリ14の共有物理領域14Aへ書込む。このため、共有キャッシュ領域18Aに格納されていた処理対象データ40Aが、物理メモリ14の共有物理領域14Aへ移動される。
なお、第2書込部54Cは、共有キャッシュ領域18Aにおける、処理対象データ40Aを含む書込データ40を、物理メモリ14の共有物理領域14Aへ書込んでもよい。すなわち、第2書込部54Cは、共有キャッシュ領域18Aに格納されている処理対象データ40Aと、属性と、処理内容40Eと、を共有物理領域14Aへ書込んでもよい。
図22は、第2書込部54Cによる書込が終了したときの、キャッシュメモリ18と物理メモリ14の状態の一例を示す模式図である。第2書込部54Cによる書込によって、キャッシュメモリ18における共有キャッシュ領域18Aに格納されていた処理対象データ40Aが、物理メモリ14の共有物理領域14Aに書込まれる。なお、上述したように、第2書込部54Cは、処理対象データ40Aを含む書込データ40を、共有物理領域14Aへ書込んでもよい。
図21に戻り説明を続ける。ロック対象領域取得部54Dは、共有物理領域14A内における、処理対象データ40Aの書込まれた領域を、ロック対象領域として取得する。
設定部54Eは、物理メモリ14における、処理対象データ40Aの書込まれた領域を、ロック状態Lに設定する。設定部54Eは、ロック対象領域取得部54Dの取得したロック対象領域をロック状態Lに設定することで、物理メモリ14における処理対象データ40Aの書込まれた領域を、ロック状態Lに設定する。なお、設定部54Eは、共有物理領域14Aにおける、処理対象データ40Aを含む書込データ40の書込まれた領域を、ロック状態Lに設定してもよい。
図23は、設定部54Eによってロック状態が設定されたときの、キャッシュメモリ18と物理メモリ14の状態の一例を示す模式図である。図23に示すように、設定部54Eの処理によって、共有物理領域14Aにおける、処理対象データ40Aの格納された領域がロック状態Lに設定される。
このように、本実施の形態では、共有キャッシュ領域18Aの処理対象データ40Aを物理メモリ14へ書込み、共有物理領域14Aにおける処理対象データ40Aの書込まれた領域を、ロック状態Lに設定する。このため、共有キャッシュ領域18Aに格納されていた処理対象データ40Aは、物理メモリ14の共有物理領域14Aへ書込まれ、該処理対象データ40Aの書込まれた領域がロック状態Lに設定される。
次に、本実施の形態の情報処理装置10Cで実行する情報処理の手順を説明する。図24は、本実施の形態の情報処理装置10Cが実行する、情報処理の手順の一例を示す、フローチャートである。
情報処理装置10Cは、情報処理装置10の手順(ステップS100〜ステップS112、図11参照)と同様にして、ステップS300〜ステップS312の処理を実行する。
詳細には、情報処理装置10Cは、ノンセキュアOS部24の書込先設定部24Aが、物理メモリ14の物理アドレスとデータサイズを設定する(ステップS300)。次に、第1書込部24Bが、処理対象データ40Aを、共有キャッシュ領域18Aに書込む(ステップS302)。次に、切替部26Aが、ノンセキュアモードNSからセキュアモードSへモードを切替える(ステップS304)。
次に、セキュアOS部22の読出先取得部22Aが、キャッシュメモリ18の共有キャッシュ領域18Aに書込まれた書込データ40に含まれる、処理内容40Eを取得する(ステップS306)。次に、読出部22Bが、処理内容40Eに基づき、キャッシュメモリ18における、処理対象データ40Aを読出す(ステップS308)。処理部22Cは、ステップS308で読出した処理対象データ40Aに対して、書込データ40に含まれる処理内容40Eによって示される処理を実行する(ステップS310)。
次に、タイマ16が、割込みを発生したか否かを判定する(ステップS312)。ステップS312で否定判断すると(ステップS312:No)、上記ステップS308へ戻る。ステップS312で肯定判断すると(ステップS312:Yes)、ステップS314へ進む。
次に、処理対象データ領域取得部54Fが、キャッシュメモリ18における、処理対象データ40Aの格納された領域のキャッシュアドレスを取得する(ステップS314)。
次に、第2書込部54Cが、キャッシュ制御部28Aに指示し、キャッシュメモリ18における処理対象データ40Aを、物理メモリ14の共有物理領域14A内に書込む(ステップS316)。
次に、ロック対象領域取得部54Dが、共有物理領域14A内における、処理対象データ40Aの書込まれた領域を、ロック対象領域として取得する(ステップS318)。
次に、設定部54Eが、物理メモリ14における、処理対象データ40Aの書込まれた領域を、ロック状態Lに設定する(ステップS320)。
次に、切替部26Aが、セキュアモードSからノンセキュアモードNSへモードを切替える(ステップS322)。次に、モニタ呼出部24Cが、処理結果42に含まれる完了フラグ42Xを参照して、セキュアOS部22によるステップS310の処理対象データ40Aの処理が終了しているか否かを判断する(ステップS324)。ステップS324で否定判断すると(ステップS324:No)、上記ステップS304へ戻る。一方、ステップS324で肯定判断すると(ステップS324:Yes)、本ルーチンを終了する。
以上説明したように、本実施の形態の情報処理装置10Cでは、第2書込部54Cが、キャッシュメモリ18における処理対象データ40Aを、物理メモリ14の共有物理領域14Aに書込む。そして、設定部54Eは、物理メモリ14における、処理対象データ40Aの書込まれた領域を、ロック状態Lに設定する。
このため、本実施の形態の情報処理装置10Cは、処理対象データ40Aの、ノンセキュアOS部24による改竄を抑制することができ、脆弱性混入リスクの低減を図ることができる。また、物理メモリ14における処理対象データ40Aの書込まれた領域をロック状態Lに設定する前に、共有キャッシュ領域18A内の処理対象データ40Aを物理メモリ14へ書込むため、属性“NS”の処理対象データ40Aを物理メモリ14へ書出すときのアクセスエラー発生を防ぐことができる。
従って、本実施の形態の情報処理装置10Cは、リアルタイム性の向上を図ることができると共に、脆弱性混入リスクの低減とメモリアクセス時に発生するエラーの抑制を図ることができる。
また、本実施の形態の情報処理装置10Cは、物理メモリ14への書出し量の削減を図ることができる。
<変形例3>
なお、第3の実施の形態では、モニタ部54が、切替部26Aと、タイマハンドラ部26Bと、処理対象データ領域取得部54Fと、第2書込部54Cと、ロック対象領域取得部54Dと、設定部54Eと、を備えた構成である場合を説明した(図21参照)。しかし、タイマハンドラ部26B、処理対象データ領域取得部54F、第2書込部54C、ロック対象領域取得部54D、および設定部54Eの少なくとも1つは、セキュアOS部22に設けた構成であってもよい。
図25は、本変形例の情報処理装置10C’の一例を示す模式図である。情報処理装置10C’は、セキュアOS部56と、ノンセキュアOS部24と、モニタ部54’と、ハードウェア部28と、を備える。ノンセキュアOS部24、およびハードウェア部28は、情報処理装置10と同様である。セキュアOS部56およびモニタ部54’は、タイマハンドラ部26B、処理対象データ領域取得部54F、第2書込部54C、ロック対象領域取得部54D、および設定部54EがセキュアOS部56に設けられている点以外は、第3の実施の形態の情報処理装置10Cと同様である。なお、タイマハンドラ部26B、処理対象データ領域取得部54F、第2書込部54C、ロック対象領域取得部54D、および設定部54Eは、第3の実施の形態と同様である。
このように、タイマハンドラ部26B、処理対象データ領域取得部54F、第2書込部54C、ロック対象領域取得部54D、および設定部54Eの少なくとも1つは、セキュアOS部56に設けた構成であってもよい。なお、処理対象データ領域取得部54Fおよび第2書込部54Cの少なくとも一方は、ノンセキュアOS部24に設けられていてもよい。
(第4の実施の形態)
上記第3の実施の形態では、共有キャッシュ領域18A内の処理対象データ40Aを物理メモリ14へ書込み、共有物理領域14Aにおける処理対象データ40Aの書込まれた領域を、ロック状態Lに設定する形態を説明した。
本実施の形態では、共有キャッシュ領域18A内の処理対象データ40Aの内、セキュアOS部22の読出部22Bによって未読出の未読出データを物理メモリ14へ書込み、物理メモリ14における該未読出データの書込まれた領域を、ロック状態Lに設定する形態を説明する。
図26は、情報処理装置10Dの機能構成の一例を示す図である。
情報処理装置10Dは、セキュアOS部57と、ノンセキュアOS部24と、モニタ部58と、ハードウェア部28と、を備える。ノンセキュアOS部24およびハードウェア部28は、第1の実施の形態と同様である。
セキュアOS部57は、読出先取得部22Aと、読出部22Bと、処理部22Cと、読出領域記憶部57Dと、を備える。セキュアOS部57は、読出領域記憶部57Dを更に備えた点以外は、第1の実施の形態のセキュアOS部22と同様である。
読出領域記憶部57Dは、キャッシュメモリ18に格納されている処理対象データ40Aの内、読出部22Bによって読出済の領域を示す情報を、プロセッサ12の汎用レジスタに記憶する。なお、読出領域記憶部57Dは、処理対象データ40Aの内、読出部22Bによって読み出され、且つ、処理部22Cによる処理済の領域を示す情報を、汎用レジスタに記憶してもよい。
例えば、読出領域記憶部57Dは、キャッシュメモリ18に格納されている書込データ40に含まれる物理アドレス40Cを開始位置として用い、該開始位置から、読出部22Bによって読み出され、且つ、処理部22Cによって処理済の範囲を、汎用レジスタに記憶する。このため、汎用レジスタには、物理アドレスによって示される範囲が、読出部22Bによって読出済の領域を示す情報として、順次記憶される。
次に、モニタ部58について説明する。モニタ部58は、切替部26Aと、タイマハンドラ部26Bと、未読出領域計算部58Fと、未読出領域取得部58Gと、第2書込部58Cと、ロック対象領域取得部58Dと、設定部58Eと、を備える。切替部26A、およびタイマハンドラ部26Bは、第1の実施の形態と同様である。
未読出領域計算部58Fは、処理対象データ40Aにおける、物理アドレスによって表される、読出部22Bによる未読出領域を計算する。詳細には、未読出領域計算部58Fは、汎用レジスタに記憶されている、読出部22Bによって読出済の領域を示す、物理アドレスおよび範囲を読取る。そして、未読出領域計算部58Fは、共有キャッシュ領域18Aに格納されている書込データ40に含まれる物理アドレス40Cおよびデータサイズ40Dと、読取った読出済の領域と、を用いて、未読出領域を計算する。具体的には、未読出領域計算部58Fは、書込データ40に含まれる物理アドレス40Cおよびデータサイズ40Dによって示される処理対象データ40Aの物理領域から、読出済の領域を除いた物理領域を示す、物理アドレスおよびデータサイズを、未読出領域として計算する。
未読出領域取得部58Gは、未読出領域を示す情報を取得する。詳細には、未読出領域取得部58Gは、未読出領域計算部58Fによって計算された、未読出領域を示す物理アドレスおよびデータサイズに対応する、キャッシュアドレスおよびデータサイズを取得する。未読出領域取得部58Gは、未読出領域計算部58Fによって計算された、未読出領域を示す物理アドレスに対応するキャッシュアドレスを、対応表32(図4参照)から読取る。そして、未読出領域取得部58Gは、該キャッシュアドレスと、未読出領域計算部58Fによって計算されたデータサイズを、未読出領域を示す情報として取得する。
第2書込部58Cは、キャッシュメモリ18の処理対象データ40Aにおける、読出部22Bによる未読出の未読出データを、物理メモリ14の共有物理領域14A内に書込む。
詳細には、第2書込部58Cは、未読出領域取得部58Gから、キャッシュメモリ18に格納されている処理対象データ40Aにおける、読出部22Bによる未読出領域を示す情報を受付ける。そして、第2書込部58Cは、キャッシュ制御部28Aおよびメモリアクセス制御部28Bを介して、共有キャッシュ領域18Aに格納されている処理対象データ40Aにおける、読出部22Bによる未読出の未読出データを、物理メモリ14の共有物理領域14Aへ書込む。このため、共有キャッシュ領域18Aに格納されていた処理対象データ40Aの内、未読出データが、物理メモリ14の共有物理領域14Aへ移動される。
図27は、第2書込部58Cによる書込が終了したときの、キャッシュメモリ18と物理メモリ14の状態の一例を示す模式図である。第2書込部58Cによる書込によって、キャッシュメモリ18における共有キャッシュ領域18Aに格納されていた処理対象データ40Aの内、未読出データ40A2が、物理メモリ14の共有物理領域14Aに書込まれる。一方、処理対象データ40Aにおける、読出部22Bによる読出済の読出済データ40A1については、共有キャッシュ領域18Aに残される。
図26に戻り説明を続ける。ロック対象領域取得部58Dは、共有物理領域14A内における、未読出データ40A2の書込まれた領域を、ロック対象領域として取得する。
設定部58Eは、物理メモリ14における、未読出データ40A2の書込まれた領域を、ロック状態Lに設定する。設定部58Eは、ロック対象領域取得部58Dの取得したロック対象領域をロック状態Lに設定することで、物理メモリ14の共有物理領域14Aにおける、未読出データ40A2の書込まれた領域を、ロック状態Lに設定する。
図28は、設定部58Eによってロック状態が設定されたときの、キャッシュメモリ18と物理メモリ14の状態の一例を示す模式図である。図28に示すように、設定部58Eの処理によって、共有物理領域14Aにおける、未読出データ40A2の格納された領域がロック状態Lに設定される。
このように、本実施の形態では、共有キャッシュ領域18A内の処理対象データ40Aの内、セキュアOS部57の読出部22Bによって未読出の未読出データ40A2を物理メモリ14へ書込み、物理メモリ14における該未読出データ40A2の書込まれた領域を、ロック状態Lに設定する。
次に、本実施の形態の情報処理装置10Dで実行する情報処理の手順を説明する。図29は、本実施の形態の情報処理装置10Dが実行する、情報処理の手順の一例を示す、フローチャートである。
情報処理装置10Dは、情報処理装置10の手順(ステップS100〜ステップS112、図11参照)と同様にして、ステップS400〜ステップS412の処理を実行する。
詳細には、情報処理装置10Dは、ノンセキュアOS部24の書込先設定部24Aが、物理メモリ14の物理アドレスとデータサイズを設定する(ステップS400)。次に、第1書込部24Bが、処理対象データ40Aを、共有キャッシュ領域18Aに書込む(ステップS402)。次に、切替部26Aが、ノンセキュアモードNSからセキュアモードSへモードを切替える(ステップS404)。
次に、セキュアOS部57の読出先取得部22Aが、キャッシュメモリ18の共有キャッシュ領域18Aに書込まれた書込データ40に含まれる、処理内容40Eを取得する(ステップS406)。次に、読出部22Bが、処理内容40Eに基づき、キャッシュメモリ18における、処理対象データ40Aを読出す(ステップS408)。処理部22Cは、ステップS408で読出した処理対象データ40Aに対して、書込データ40に含まれる処理内容40Eによって示される処理を実行する(ステップS410)。
次に、タイマ16が、割込みを発生したか否かを判定する(ステップS412)。ステップS412で否定判断すると(ステップS422:No)、上記ステップS408へ戻る。ステップS412で肯定判断すると(ステップS412:Yes)、ステップS414へ進む。
次に、未読出領域計算部58Fが、処理対象データ40Aにおける、物理アドレスによって表される、読出部22Bによる未読出領域を計算する(ステップS414)。次に、未読出領域取得部58Gが、キャッシュアドレスによって表される、未読出領域を示す情報を取得する(ステップS416)。
次に、第2書込部58Cが、キャッシュ制御部28Aに指示し、共有キャッシュ領域18A内の処理対象データ40Aにおける、読出部22Bによる未読出の未読出データを、物理メモリ14の共有物理領域14A内に書込ませる(ステップS418)(図27参照)。
次に、設定部58Eが、物理メモリ14における、未読出データ40A2の書込まれた領域を、ロック状態Lに設定する(ステップS420)(図28参照)。
次に、切替部26Aが、セキュアモードSからノンセキュアモードNSへモードを切替える(ステップS422)。次に、モニタ呼出部24Cが、セキュアOS部57によるステップS410の処理対象データ40Aの処理が終了しているか否かを判断する(ステップS424)。ステップS424で否定判断すると(ステップS424:No)、上記ステップS404へ戻る。一方、ステップS424で肯定判断すると(ステップS424:Yes)、本ルーチンを終了する。
以上説明したように、本実施の形態の情報処理装置10Dでは、第2書込部58Cが、共有キャッシュ領域18A内の処理対象データ40Aの内、読出部22Bによって未読出の未読出データ40A2を、物理メモリ14の共有物理領域14Aへ書込む。設定部58Eは、物理メモリ14の共有物理領域14A内における、該未読出データ40A2の書込まれた領域を、ロック状態Lに設定する。
このため、本実施の形態の情報処理装置10Dは、処理対象データ40Aの内、読出部22Bによって未読出の未読出データ40A2について、ノンセキュアOS部24による改竄を抑制することができ、脆弱性混入リスクの低減を図ることができる。また、物理メモリ14における未読出データ40A2の書込まれた領域をロック状態Lに設定する前に、共有キャッシュ領域18A内の未読出データ40A2を物理メモリ14へ書込むため、属性“NS”の処理対象データ40Aを物理メモリ14へ書出すときのアクセスエラー発生を防ぐことができる。
従って、本実施の形態の情報処理装置10Dは、リアルタイム性の向上を図ることができると共に、脆弱性混入リスクの低減とメモリアクセス時に発生するエラーの抑制を図ることができる。
また、本実施の形態の情報処理装置10Dは、物理メモリ14への書出し量の削減を図ることができる。
<変形例4>
なお、第4の実施の形態では、モニタ部58が、タイマハンドラ部26Bと、未読出領域計算部58Fと、未読出領域取得部58Gと、第2書込部58Cと、ロック対象領域取得部58Dと、設定部58Eと、切替部26Aと、を備えた構成である場合を説明した(図21参照)。しかし、タイマハンドラ部26B、未読出領域計算部58F、未読出領域取得部58G、第2書込部58C、ロック対象領域取得部58D、および設定部58Eの少なくとも1つは、セキュアOS部57に設けた構成であってもよい。
図30は、本変形例の情報処理装置10D’の一例を示す模式図である。情報処理装置10D’は、セキュアOS部59と、ノンセキュアOS部24と、モニタ部58’と、ハードウェア部28と、を備える。ノンセキュアOS部24、およびハードウェア部28は、情報処理装置10と同様である。セキュアOS部59およびモニタ部58’は、タイマハンドラ部26B、未読出領域計算部58F、未読出領域取得部58G、第2書込部58C、ロック対象領域取得部58D、および設定部58EがセキュアOS部59に設けられている点以外は、第4の実施の形態の情報処理装置10Dと同様である。なお、タイマハンドラ部26B、未読出領域計算部58F、未読出領域取得部58G、第2書込部58C、ロック対象領域取得部58D、および設定部58Eは、第4の実施の形態と同様である。
このように、タイマハンドラ部26B、未読出領域計算部58F、未読出領域取得部58G、第2書込部58C、ロック対象領域取得部58D、および設定部58Eの少なくとも1つは、セキュアOS部59に設けた構成であってもよい。
<変形例5>
なお、上記実施の形態および上記変形例の情報処理装置10、10’、10B、10B’、10C、10C’、10D、10D’は、様々なシステムに適用可能である。例えば、上記実施の形態および変形例の情報処理装置10、10’、10B、10B’、10C、10C’、10D、10D’は、移動体の一例である自動車に搭載される車載ネットワークシステムに適用できる。
例えば、上記実施の形態および上記変形例の情報処理装置10、10’、10B、10B’、10C、10C’、10D、10D’は、車載ネットワークシステムに含まれる車載ゲートウェイ装置(以下、「GW」と略称する)に適用可能である。
図31は、情報処理システム1の概要を示す模式図である。情報処理システム1は、例えば、車両2に搭載されている。
情報処理システム1は、情報処理装置10と、複数のノード60と、を備える。なお、情報処理システム1は、情報処理装置10に代えて、情報処理装置10’、情報処理装置10B、情報処理装置10B’、情報処理装置10C、情報処理装置10C’、情報処理装置10D、および情報処理装置10D’の何れかを備えた構成であってもよい。
情報処理装置10と複数のノード60とは、ネットワークNWを介して接続されている。図31に示す例では、情報処理システム1は、ネットワークNWとして、複数のサブネットワーク(サブネットワークNW1、サブネットワークNW2)を含む。これらの複数のサブネットワークの各々には、ノード60が接続されている。また、これらの複数のサブネットワークは、情報処理装置10に接続されている。
また、情報処理装置10には、V2X通信モジュール64および通信モジュール66が接続されている。通信モジュール66は、外部ネットワーク68を介して外部装置と通信するためのモジュールである。V2X通信モジュール64は、通信インフラを介さずに、他の車両2との間で直接無線通信を行うためのモジュールである。直接無線通信には、例えば、車車間・路車間通信(V2X:Vehicle−to−Everything)を用いる。なお、V2X通信は、C2X(Car−to−X)通信と称される場合もある。
図31には、情報処理装置10を、GWとして構成した場合を、一例として示した。本実施の形態では、情報処理装置10は、本来のゲートウェイとしての機能に加えて、後述する各処理を実行する。本来のゲートウェイとしての機能は、例えば、情報処理システム1内のサブネットワーク(例えば、サブネットワークNW1、サブネットワークNW2)間の通信の中継およびフィルタリングや、情報処理システム1と車外の外部ネットワーク68との間の通信の中継およびフィルタリングや、他の車両2との直接の通信の中継およびフィルタリングなどである。
ノード60は、情報処理装置10を介して他のノード60との間で、データを通信する電子機器である。ノード60は、例えば、ECU(電子制御装置:Electronic Control Unit)や、各種センサや、アクチュエータなどである。ECUは、車両2における各種制御を行う電子機器である。
情報処理システム1の通信規格は限定されない。情報処理システム1の通信規格は、例えば、CAN(Controller Area Network)やFlexRay(登録商標)などである。
このように、上記実施の形態および上記変形例の情報処理装置10、10’、10B、10B’、10C、10C’、10D、10D’を、車両2等の移動体に搭載された情報処理システム1に適用してもよい。
<補足説明>
なお、上記実施の形態および上記変形例の情報処理装置10、10’、10B、10B’、10C、10C’、10D、10D’で実行される上記各処理を実行するためのプログラムは、HDD(ハードディスクドライブ)に記憶されていてもよい。また、上記実施の形態の、情報処理装置10、情報処理装置10Bで実行される上記各処理を実行するためのプログラムは、ROMに予め組み込まれて提供されていてもよい。
また、上記実施の形態および上記変形例の情報処理装置10、10’、10B、10B’、10C、10C’、10D、10D’で実行される上記処理を実行するためのプログラムは、インストール可能な形式または実行可能な形式のファイルでCD−ROM(Compact Disc Read only memory)、CD−R(Compact Disc−Recordable)、メモリカード、DVD(Digital Versatile Disk)、フレキシブルディスク(FD)等のコンピュータで読み取り可能な記憶媒体に記憶されてコンピュータプログラムプロダクトとして提供されるようにしてもよい。また、上記実施の形態および上記変形例の情報処理装置10、10’、10B、10B’、10C、10C’、10D、10D’で実行される上記処理を実行するためのプログラムを、インターネットなどのネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するようにしてもよい。また、上記実施の形態および上記変形例の情報処理装置10、10’、10B、10B’、10C、10C’、10D、10D’で実行される上記処理を実行するためのプログラムを、インターネットなどのネットワーク経由で提供または配布するようにしてもよい。
以上、本発明の実施の形態および変形例を説明したが、これらの実施の形態および変形例は例として提示したものであり、発明の範囲を限定することは意図していない。これらの新規な実施の形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これらの実施の形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
10、10’、10B、10B’、10C、10C’、10D、10D’ 情報処理装置
24B 第1書込部
22B 読出部
26A 切替部
26C、50C、54C、58C 第2書込部
26E、54E、58E 設定部

Claims (9)

  1. セキュアモードとノンセキュアモードとを切替えて動作する情報処理装置であって、
    前記セキュアモードで動作しているときに、前記セキュアモードから前記ノンセキュアモードへモードを切替える切替部と、
    前記セキュアモードから前記ノンセキュアモードへ切替える前に、前記セキュアモードと前記ノンセキュアモードで共有する物理メモリにおける少なくとも一部の領域を、前記ノンセキュアモードで動作する第1書込部によってキャッシュメモリに書込まれたデータの前記物理メモリへの書込みを不可とし読取を可能とするロック状態に設定する設定部と、
    を備える情報処理装置。
  2. 前記セキュアモードで動作し、前記第1書込部によって前記キャッシュメモリの共有キャッシュ領域に書込まれた処理対象データを読出す読出部と、
    前記設定部によって前記領域が前記ロック状態に設定される前に、前記キャッシュメモリに格納されているキャッシュデータの内、前記処理対象データの少なくとも一部を、前記物理メモリへ書込む第2書込部と、
    を備える、請求項1に記載の情報処理装置。
  3. 前記設定部は、
    前記物理メモリにおける、前記共有キャッシュ領域に対応する共有物理領域の内、少なくとも前記第2書込部によって書込まれた前記領域を、前記ロック状態に設定する、
    請求項2に記載の情報処理装置。
  4. 前記第2書込部は、
    前記キャッシュメモリの前記処理対象データにおける、前記読出部による未読出の未読出データを、前記物理メモリの前記共有物理領域に書込み、
    前記設定部は、
    前記物理メモリの前記共有物理領域における、前記未読出データの書込まれた前記領域を、前記ロック状態に設定する、
    請求項3に記載の情報処理装置。
  5. 前記第2書込部は、
    前記キャッシュメモリにおける前記処理対象データを、前記物理メモリの前記共有物理領域に書込み、
    前記設定部は、
    前記物理メモリの前記共有物理領域における前記処理対象データの書込まれた前記領域を、前記ロック状態に設定する、
    請求項3に記載の情報処理装置。
  6. 前記第2書込部は、
    前記キャッシュメモリにおける、前記共有キャッシュ領域の前記キャッシュデータを、前記物理メモリの前記共有物理領域へ書込む、
    請求項3に記載の情報処理装置。
  7. 前記第2書込部は、
    前記キャッシュメモリの全ての前記キャッシュデータを、前記物理メモリへ書込む、
    請求項2または請求項3に記載の情報処理装置。
  8. セキュアモードとノンセキュアモードとを切替えて動作する情報処理装置で実行する情報処理方法であって、
    前記セキュアモードで動作しているときに、前記セキュアモードから前記ノンセキュアモードへモードを切替える切替ステップと、
    前記セキュアモードから前記ノンセキュアモードへ切替える前に、前記セキュアモードと前記ノンセキュアモードで共有する物理メモリにおける少なくとも一部の領域を、前記ノンセキュアモードで動作する第1書込部によってキャッシュメモリに書込まれたデータの前記物理メモリへの書込みを不可とし読取を可能とするロック状態に設定する設定ステップと、
    含む、情報処理方法。
  9. セキュアモードとノンセキュアモードとを切替えて動作する情報処理装置で実行するコンピュータに実行させるためのプログラムであって、
    前記セキュアモードで動作しているときに、前記セキュアモードから前記ノンセキュアモードへモードを切替える切替ステップと、
    前記セキュアモードから前記ノンセキュアモードへ切替える前に、前記セキュアモードと前記ノンセキュアモードで共有する物理メモリにおける少なくとも一部の領域を、前記ノンセキュアモードで動作する第1書込部によってキャッシュメモリに書込まれたデータの前記物理メモリへの書込みを不可とし読取を可能とするロック状態に設定する設定ステップと、を、
    記コンピュータに実行させるためのプログラム。
JP2018052628A 2018-03-20 2018-03-20 情報処理装置、情報処理方法、およびプログラム Active JP6776292B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2018052628A JP6776292B2 (ja) 2018-03-20 2018-03-20 情報処理装置、情報処理方法、およびプログラム
US16/117,321 US10872174B2 (en) 2018-03-20 2018-08-30 Information processing device, information processing method, and computer program product

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018052628A JP6776292B2 (ja) 2018-03-20 2018-03-20 情報処理装置、情報処理方法、およびプログラム

Publications (2)

Publication Number Publication Date
JP2019164647A JP2019164647A (ja) 2019-09-26
JP6776292B2 true JP6776292B2 (ja) 2020-10-28

Family

ID=67984219

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018052628A Active JP6776292B2 (ja) 2018-03-20 2018-03-20 情報処理装置、情報処理方法、およびプログラム

Country Status (2)

Country Link
US (1) US10872174B2 (ja)
JP (1) JP6776292B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022048019A (ja) * 2020-09-14 2022-03-25 パナソニックIpマネジメント株式会社 情報処理装置、情報処理方法、および、プログラム

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01314337A (ja) 1988-06-15 1989-12-19 Fuji Electric Co Ltd 電子計算機装置
AU2003278350A1 (en) * 2002-11-18 2004-06-15 Arm Limited Secure memory for protecting against malicious programs
JP3984206B2 (ja) * 2003-09-02 2007-10-03 株式会社東芝 マイクロプロセッサー及び映像音声システム
CN101006433B (zh) * 2004-08-25 2012-01-11 日本电气株式会社 信息通信装置和程序执行环境控制方法
US7861095B2 (en) * 2005-02-15 2010-12-28 Arm Limited Data processing apparatus security
JP4556144B2 (ja) * 2005-06-17 2010-10-06 日本電気株式会社 情報処理装置、復旧装置、プログラム及び復旧方法
WO2007004219A2 (en) * 2005-07-04 2007-01-11 Discretix Technologies Ltd. System, device and method of verifying that a code is executed by a processor
JPWO2012102002A1 (ja) * 2011-01-24 2014-06-30 パナソニック株式会社 仮想計算機システム、仮想計算機制御方法、仮想計算機制御プログラム、記録媒体、及び集積回路
WO2012160760A1 (ja) * 2011-05-25 2012-11-29 パナソニック株式会社 情報処理装置および情報処理方法
TW201403375A (zh) * 2012-04-20 2014-01-16 歐樂岡科技公司 用於安全購買之安全區
JP2014089644A (ja) * 2012-10-31 2014-05-15 Toshiba Corp プロセッサ、プロセッサ制御方法及び情報処理装置
JP6067449B2 (ja) * 2013-03-26 2017-01-25 株式会社東芝 情報処理装置、情報処理プログラム
US10049048B1 (en) * 2013-10-01 2018-08-14 Facebook, Inc. Method and system for using processor enclaves and cache partitioning to assist a software cryptoprocessor
JP2015170887A (ja) 2014-03-05 2015-09-28 富士通株式会社 パケット処理方法及びシステム
JP2016012801A (ja) 2014-06-27 2016-01-21 富士通株式会社 通信装置、通信システム及び通信装置制御方法
JP6189267B2 (ja) 2014-08-20 2017-08-30 株式会社東芝 情報処理装置、方法およびプログラム
JP6464777B2 (ja) 2015-01-30 2019-02-06 富士通株式会社 情報処理装置及びプログラム
US9864687B2 (en) * 2015-07-01 2018-01-09 Samsung Electronics Co., Ltd. Cache coherent system including master-side filter and data processing system including same
JP6130612B1 (ja) * 2015-08-25 2017-05-17 株式会社Seltech ハイパーバイザーを有するシステム
JP6615726B2 (ja) 2016-09-16 2019-12-04 株式会社東芝 情報処理装置、情報処理方法及びプログラム
US10783240B2 (en) * 2017-09-29 2020-09-22 Stmicroelectronics, Inc. Secure environment in a non-secure microcontroller

Also Published As

Publication number Publication date
US20190294827A1 (en) 2019-09-26
JP2019164647A (ja) 2019-09-26
US10872174B2 (en) 2020-12-22

Similar Documents

Publication Publication Date Title
JP5068108B2 (ja) メモリ・アドレスの変換およびピン止めのための方法およびシステム
EP3028162B1 (en) Direct access to persistent memory of shared storage
JP4872001B2 (ja) メモリ・アクセス安全性管理
US7363389B2 (en) Apparatus and method for enhanced channel adapter performance through implementation of a completion queue engine and address translation engine
KR101177971B1 (ko) 보호 영역 경계들에서의 오브젝트 호출 방법, 시스템 및 장치
KR101922533B1 (ko) 가상 머신 시스템들
JP2010015560A (ja) システム・オン・チップ内でデータ要求を経路指定する方法、装置及びコンピュータ・プログラム
US10452561B2 (en) Central processing unit architecture and methods for high availability systems
JP2007287103A (ja) マイクロコンピュータ及びメモリアクセスの制御方法
WO2012077169A1 (ja) 情報処理システムおよび情報送信方法
JP6776292B2 (ja) 情報処理装置、情報処理方法、およびプログラム
JP2007513433A (ja) ドライバにトランスペアレントな割り込み通知メッセージ
US10909270B2 (en) Information processing device, mobile object, information processing method, and computer program product
US10545885B2 (en) Information processing device, information processing method, and computer program product
JP7056870B2 (ja) 情報処理装置、情報処理方法及びプログラム
US8392621B2 (en) Managing dataflow in a temporary memory
JP2012203698A (ja) 情報処理装置およびマルチコアシステム
CN101127011B (zh) 信息处理板、信息处理系统及其更新标记的方法
US7089387B2 (en) Methods and apparatus for maintaining coherency in a multi-processor system
JP5906881B2 (ja) 情報処理装置及び情報処理装置の制御方法
JP5617761B2 (ja) 計算機システム、計算機、及び計算機システムの割込み処理方法
US10762011B2 (en) Reflective memory bridge for external computing nodes
US10515027B2 (en) Storage device sharing through queue transfer
JP2005301714A (ja) マルチcpuシステム、そのデータ転送方法、及びそのプログラム
JP6438381B2 (ja) 電子制御装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190814

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200625

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200721

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200825

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20200908

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20201007

R151 Written notification of patent or utility model registration

Ref document number: 6776292

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151