JP5842833B2 - 情報処理装置、プログラム - Google Patents

情報処理装置、プログラム Download PDF

Info

Publication number
JP5842833B2
JP5842833B2 JP2013006414A JP2013006414A JP5842833B2 JP 5842833 B2 JP5842833 B2 JP 5842833B2 JP 2013006414 A JP2013006414 A JP 2013006414A JP 2013006414 A JP2013006414 A JP 2013006414A JP 5842833 B2 JP5842833 B2 JP 5842833B2
Authority
JP
Japan
Prior art keywords
data
application
address
memory
area
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
JP2013006414A
Other languages
English (en)
Other versions
JP2014137734A (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.)
Toyota Motor Corp
Original Assignee
Toyota Motor 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 Toyota Motor Corp filed Critical Toyota Motor Corp
Priority to JP2013006414A priority Critical patent/JP5842833B2/ja
Publication of JP2014137734A publication Critical patent/JP2014137734A/ja
Application granted granted Critical
Publication of JP5842833B2 publication Critical patent/JP5842833B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Storage Device Security (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Description

本発明は、メモリ保護装置を備えた情報処理装置に関する。
異なるプログラムが1つのマイコンに搭載された場合、各プログラムが同じメモリを共有する場合がある。各プログラムが他のプログラムが記憶されているメモリの領域にアクセスすることを防止するため、メモリ保護装置が設けられることがある。メモリ保護装置には、各プログラムがアクセス可能なアドレス範囲が登録されており、CPUがアクセスするアドレスはメモリ保護装置により検査され、各プログラムが別のプログラムの領域の命令を読み出したりデータを書き込むことを防止している。
図1は、メモリ保護装置を模式的に説明する図の一例である。メモリの各領域にプログラムAの命令、データ、プログラムBの命令、データが格納されている。CPUがプログラムAを実行する際、メモリ保護装置にはプログラムAのデータ領域と命令領域へのアクセスだけを許可する保護情報が設定されている。したがって、プログラムAがプログラムBの命令やデータを破壊したり読み出すことを防止できる。
このようなメモリ保護装置において、プログラムAがプログラムB領域へのアクセスを許容する技術が考えられている(例えば、特許文献1参照。)。特許文献1には、十分にデバッグされたプログラムの命令フェッチアクセスにおいて命令メモリ空間の保護を選択的に無効化するデータ処理装置が開示されている。特許文献1は、保護を無効化することで保護情報の書き換えに要する処理量を削減することを図っている。
しかしながら、特許文献1のようにアクセスを許可してしまうだけでは、別のプログラムの命令やデータを読み出す可能性があることを否定できない。また、書き込み命令であれば、命令やデータを破壊するおそれさえある。このため、メモリ保護装置は有効な状態を維持することが好ましい。
特開2009-140256号公報
ところで、メモリ保護装置は、許可されていない領域へのアクセスを検出した場合、一般保護例外を発生させ、CPUはこの後、例外処理を実行するためアクセス違反を生じさせた命令は破棄されてしまう。つまり、メモリ保護装置により意図しないデータや命令の破壊は避けられるが、アクセス違反したプログラムの実行も制限されるという問題がある。したがって、メモリ保護装置は有効なまま、アクセス違反を生じさせてもプログラムの実行は許容する技術があればプログラムの実行の柔軟性が向上すると考えられる。
本発明は、上記課題に鑑み、アクセス違反が生じてもプログラムの実行を継続可能な情報処理装置を提供することを目的とする。
本発明は、メモリに記憶された複数のアプリのそれぞれを繰り返し実行するCPUと、各アプリ毎にメモリへのアクセスを許可又は禁止するかの許否情報がアドレスに対応づけて登録されているメモリアクセス監視手段と、を有する情報処理装置であって、アプリを実行するCPUによる禁止されたメモリアクセスを前記メモリアクセス監視手段が検出した場合、CPUがメモリアクセスしたアドレスに記憶されたデータを、前記アドレスと対応づけてメモリから退避領域に退避するデータ退避手段と、前記アドレスへのメモリアクセスが許可されるように前記許否情報を変更する許否情報変更手段と、禁止されたメモリアクセスを行ったアプリを実行するCPUが前記アドレスにメモリアクセスした後、メモリアクセスした前記アドレスのデータを前記アドレスに対応づけてメモリからバックアップ領域にバックアップするバックアップ手段と、を有し、前記バックアップ手段は、CPUが禁止されたメモリアクセスを行ったアプリを次に実行する前に、前記バックアップ領域のデータを、前記バックアップ領域のデータに対応づけられているアドレスに復帰する、ことを特徴とする。
アクセス違反が生じてもプログラムの実行を継続可能な情報処理装置を提供することができる。
メモリ保護装置を模式的に説明する図の一例である。 本実施例のマイコンの概略的な動作を説明する図の一例である。 マイコンの概略構成図の一例である。 保護情報を模式的に説明する図の一例である。 マイコンが実行するプログラムを時系列に示す図の一例である。 OSの機能ブロック図の一例である。 退避処理を模式的に説明する図の一例である。 バックアップ処理を模式的に説明する図の一例である。 データ復帰処理を模式的に説明する図の一例である。 データの退避・バックアップ・復帰の一連の処理の手順を示すフローチャート図の一例である。 データ復帰処理の動作を模式的に示す図の一例である(実施例2)。 データの退避・バックアップ・復帰の一連の処理の手順を示すフローチャート図の一例である(実施例2)。
以下、本発明を実施するための形態について図面を参照しながら説明する。しかしながら、本発明の技術的範囲が、本実施の形態に限定されるものではない。
図2は、本実施例のマイコンの概略的な動作を説明する図の一例である。図2(a)に示すように、マイコンはアプリケーションA,B、C(以下、単にアプリという)をABCの順に実行することを繰り返している。図2(a)のI〜IIIは、図2(b)〜(d)の処理I〜IIIに対応している。
I.退避処理
(i)CPUがアプリAを実行中に、データ領域へのアクセス違反(書き込み)が発生した。CPUは割り込みによりメモリアクセス違反を検出し、例えばISR(Interrupt Service Routine:割り込みサービスルーチン)を実行する。
(ii)ISRはCPUがアクセス違反を生じたアドレスをレジスタ(プログラムカウンタ)などから読み出し、アドレスに記憶されているデータを退避用データ領域24に退避する。また、アプリAのアプリB領域へのアクセスが許可される。
(iii)退避するとISRからアプリAに処理が戻り、CPUはアクセス違反(書き込み)が発生した命令から実行を再開する。図の例では、アプリAはアプリB領域にデータを書き込む。したがって、アクセス違反が生じてもアプリAが処理を継続できる。
II.バックアップ処理
(i)アプリAの実行が完了すると、OS(Operating System)の処理に移り、OSはアプリB領域のデータをデータバックアップ領域23にバックアップする。
(ii)また、OSは退避用データ領域24に退避したアプリBのデータをアプリB領域に復帰する(書き戻す)。これで、アプリBはアプリAがアクセス違反を生じさせても影響を受けることなく実行される。
III.復帰処理
(i) 次の周期でCPUがアプリAを実行する前に、OSの処理に移る。OSはアプリB領域に記憶されているデータを退避用データ領域24に退避する。
(ii)OSはアプリAのためにバックアップしたデータバックアップ領域23のデータをアプリB領域に復帰する(書き戻す)。これにより、アプリB領域にアプリAのデータが記憶された状態になり、アプリAがこのデータを利用することが可能になる。
このように、本実施例のマイコンは、メモリ保護装置によりアクセス違反が発生しても、他のプログラムの実行に与える影響を抑制しながら、アクセス違反を発生させたプログラムの処理を継続することができる。
〔構成例〕
図3(a)は、マイコンの概略構成図の一例を示す。マイコン100はシステムバスB1に接続された、CPU11、RAM12、ROM13、INTC14、WDT15、及び、DMAC16を有している。この他、マイコン100はタイマ、UARTなどの各種のI/O、電源回路、他のマイコンと通信するためのCAN(Controller Area Network)コントローラなどの通信装置など、マイコンに一般的な構成を有している。
マイコン100は、ECU(Electronic Control Unit:電子制御装置)に搭載されることが想定されているがその用途は車両に限定されない。車載されるECUには、その主要な機能により、エンジンECU、ブレーキECU、ハイブリッドECU、パワーマネージメントECU、ボディECU、ナビゲーションECU(AV・情報処理ECU)、ゲートウェイECU等の種類がある。本実施例のマイコン100はECUの機能の違いに影響されず搭載されることが可能である。また、複数の機能が1つに統合されたECUにマイコン100を搭載してもよい。また、1つのECUが複数のマイコンを搭載していてもよい。
CPU11は、ROM13に記憶されたプログラムを実行することでマイコン全体を制御する。RAM12にはプログラムやデータが展開され、RAM12はCPU11がアクセスする作業メモリになる。また、ROM13にはプログラムの他、プラットホームが記憶されている。プラットホームは、例えばOSやデバイスドライバなどである。OSとしては、OSEK(Open system together with interfaces for automotive electronics)、AUTOSAR(AUTomotive Open System Architecture) OSなどのリアルタイムOSがあるが、これらに限定されるものではない。
INTC14は割込みマスク・マスクの解除などの設定が可能なレジスタと割込み要求が設定されるレジスタなどを有し、レジスタを監視して、周辺機器からの割り込み要求を割込みの優先順位に基づき調停してCPU11に通知する。これによりCPU11は、例えばISRを実行して、割込みした周辺機器に応じて定められている処理を行う。本実施例では例外発生も割り込みの一態様として説明する。
WDT15は、動作クロックをカウントして計測した時間が予め定められたリセット時間に達すると(オーバーフローすると)、異常を検出する回路である。WDT15がオーバーフローすると、例えばマイコン100がリセットされるなどのフェールセーフが行われる。DMAC16は、RAM12と周辺回路の間やRAM12内で、CPU11を介することなくデータを転送する。
図3(b)はCPU11とメモリ200を模式的に説明する図の一例である。組み込み系のソフトウェアでは、一般に開発者などはプログラムを開発する際に、OS、アプリをどのアドレスに割り当てるかを設計している。マイコン100が起動するとブートローダがROMからロードモジュールを読み出して予め定められたRAMのアドレスに記憶する。図はアドレス空間全体を示しているので、RAMの他、ROM、I/O空間も含まれている。このアドレス空間をメモリ200と称することにする。システム領域にはOSなどのプラットホームが配置され、アプリA〜C領域にはアプリA〜Cの命令とデータが記憶される。
CPU11はPC(プログラムカウンタ)21とメモリ保護装置22を有している。PC21はCPU11が命令フェッチでアクセスするアドレスが格納されている。メモリ保護装置22には保護情報31が設定されており、アプリAからシステム領域・アプリB領域・アプリC領域にアクセスすることが原則的に禁止されている。アプリB,Cについても同様である。
マイコン100が実行するアプリは様々であり、どのようなアプリが1つのマイコン100で実行されるかはECUや車種によって異なるし、車両の開発世代と共に変化しうる。一例としては、例えば、パーキング制御、接近警報制御、照合アプリ、エンジンやモータ(原動力)の起動制御、ゲートウェイ制御などがある。パーキング制御はパーキング切替機構のアンロック状態とロック状態を切り替えるアプリである。接近警報制御はモータ走行時などに車の発進から約25〔km/h〕に至るまでの速度域において、自動で警報音を出力するアプリである。照合アプリは電子キーのIDを照合して一致した場合にドアのアンロックや原動力の始動を許可するアプリである。起動制御は所定の手順でリレーをONするなどして電源状態を管理したり原動力を起動させるアプリである。ゲートウェイ制御は異なるネットワーク間でパケットの転送を行うアプリである。
〔保護情報〕
図4は保護情報31を模式的に説明する図の一例である。保護情報31は、いくつかの領域毎にアクセス権が設定できるようになっている。図では5つの領域があるが、それぞれシステム領域、未使用領域、アプリA領域、アプリB領域、アプリC領域、に対応している。領域毎に、「先頭アドレス」、「サイズ」、モード毎の「命令フェッチ」、「データリード」、「データライト」の各項目を有する。なお、メモリ保護装置22にこのようなラベルが付与されているわけではなく、メモリ保護装置22のレジスタにこれらの値を設定できるようになっている。
「領域番号」は、アドレス空間をいくつかの領域に区分した場合に領域を識別するための識別情報である。メモリ保護装置22(保護情報31)では、アプリが割り当てられる領域に対し、OS等が予め指示されているパラメータに従ってアクセスの許否を設定する。また、この設定はマイコンの起動中に変更可能である。
「先頭アドレス」は領域が始まるアドレスを示し、「サイズ」は領域の容量を示す。「命令フェッチ」はその領域からの命令フェッチが許可されているか否かを示し、「データリード」はその領域からのデータの読み出しが許可されているか否かを示し、「データライト」はその領域へのデータの書き込みが許可されているか否かを示す。「モード」の特権モードとユーザモードはCPU11の動作モードであり、特権モードは、CPU11がシステムを実行する動作モードであり、ユーザモードは、アプリケーションを実行する動作モードである。一般に、OSのシステム領域にアクセスできるのはOSだけである。
図4(a)はアプリAの実行時を想定したものである。例えば、領域1はシステム領域なので、領域1は特権モードでのみ命令フェッチ、リード及びライトが許可されている。CPU11がアプリAを実行する場合、OSは領域3のユーザモードの命令フェッチ、データリード及びデータライトを許可し、領域4、5のユーザモードの命令フェッチ及びデータライトを禁止する。これにより、アプリAがアプリB領域、C領域から命令フェッチしたり、アプリB領域、C領域にデータライトすることを禁止できる。
本実施例では、メモリ保護装置22が、アプリAが領域4(領域5でもよい)にデータライトすることを検出し、OSが例外処理でデータライトするアドレスのデータを退避し、後にOSがメモリに復帰させる。このため、少なくともデータライトが禁止される。データリードについては、アプリAが、データが復帰された領域4からデータを読み取る必要があるので、禁止しなくてよい。しかし、実施例2にて説明するように、禁止しておいて、例外処理の中でOSが読み取るための処理を行ってもよい。命令フェッチについてはアプリAがアプリBの命令をフェッチすることは禁止すべきなので、許可されない。
同様に、アプリBが実行される場合は図4(b)のようになり、アプリCが実行される場合は図4(c)のようになる。なお、図4(a)(b)では領域1,2は省略した。
また、設定は一例であり、アプリ毎に設定を変えてもよい。例えば、ASIL(機能安全の指標であり高い安全対策が施されたアプリが高い値を有する)が低いものが実行される際は、データリードを含む全てのアクセスを禁止する。また、車両メーカ以外の第三者が開発したアプリについてはデータリードを含む全てのアクセスを禁止する。こうすることで信頼性に応じてメモリ保護することが可能になる。
〔データの退避・バックアップ・復帰〕
図5はマイコン100が実行するプログラムを時系列に示す図の一例である。マイコン100はタイマなどの割り込みを利用して定期的にアプリA,B,Cを連続に実行し、次回のタイマ割込みでアプリA,B,Cを連続に実行することを繰り返している。アプリCの実行が完了してからアプリAの実行が開始されるまでの間はアイドル時間(CPU11が何も命令を実行しないか、NOP(No Opearation)という処理を伴わない命令を実行している)である。
OS25は、例えば設定されているスケジュールに従ってアプリA〜Cを順番に実行する。または、周期的にタイマが割り込むとアプリA〜Cが実行待ちになり、優先度(アプリA>B>C)に応じてアプリA〜Cをリソースに割り当てるなどして順番に実行してもよい。このように、OSは現在実行中のアプリや次に実行するアプリをスケジュールやアドレスで管理している。
図5(a)はメモリへのアクセス違反がない場合に実行されるアプリの動作順を示す。アプリがメモリにアクセス違反しなければ、OSに制御が移ることがあっても本実施形態の処理は行われない。
アプリがメモリにアクセス違反した場合、アプリA〜Cの実行中にCPU11がデータの退避・バックアップ・復帰を行うプログラムを実行する。このプログラムは本実施例ではOSに含まれるとして説明する。図5(b)はアプリAの実行中にメモリへのアクセス違反が発生した場合に実行されるプログラムを示す。図の黒い部分が、CPUがOSを実行する時間帯である。アプリB,アプリCでメモリへのアクセス違反が発生すればアプリB,アプリCの実行中にOSが実行される。また、アプリA〜Cのいずれでメモリへのアクセス違反が生じるかに関係なく、アプリA〜Cの切り替え時にOSが実行される。
図6は、OSの機能ブロック図の一例を示す。OS25は、保護情報変更部32、データ退避部33、データバックアップ部34、データ復帰部35、判断部36及びISR37を有している。上記のように、これらはOS25の機能である必要はなく、マイコン100が有していればよい。保護情報変更部32は、CPU11がシステム、及び、アプリA〜Cを実行する毎に図4にて説明した保護情報31を変更する。また、アクセス違反が生じた場合、例外的に、禁止されている領域へのデータの書き込みを許可するよう保護情報31を変更する。
ISR37はメモリ保護装置22がアクセス違反を検出した場合にCPU11が実行するプログラムである。ISR37はPC21を含むCPU11のレジスタなどをスタックに保存しておく。なお、通常処理と例外処理で別のレジスタが用意されているCPU11ではこのような保存は不要になる。
データ退避部33はアプリA領域、アプリB領域、アプリC領域、のいずれかからデータを読み出して退避用データ領域24に退避する。データのアドレスはPC21に記憶されているか又はISR37が退避している。退避用データ領域24にはこのアドレスに対応づけてデータが記憶される。また、アドレスとデータの組ごとにフラグFが登録される。フラグFは退避用データ領域24にデータが退避されている場合にONとなり、復帰されるとOFFになる。なお、退避用データ領域24はRAMに確保されている領域でありアプリA〜Cから離れているためアクセス違反のおそれがない。
データバックアップ部34は、アプリA領域、アプリB領域、アプリC領域、のいずれかからデータを読み出し、データバックアップ領域23にバックアップする。データバックアップ領域23はアプリ毎に設けられている。例えば、アプリAがアプリB領域に書き込んだデータを、アプリAのデータバックアップ領域23にバックアップする。また、データバックアップ部34は、データがバックアップされたアプリが実行される前にバックアップしたデータを対応づけられているアドレスに復帰する。
データ復帰部35は退避用データ領域24のデータを、データに対応づけられているメモリのアドレスに復帰する。
判断部36は、退避用データ領域とデータバックアップ領域のフラグFを参照して、データのバックアップ及び復帰が必要か否かを判断して、データバックアップ部34,データ復帰部35に通知する。
〔処理例〕
図7〜9はデータの退避・バックアップ・復帰の一連の処理を模式的に説明する図の一例である。
I.退避処理(図7)
(i)CPU11がアプリAを実行中に、アプリBのデータ領域へ書き込みし、メモリ保護装置22が例外を発生させる。CPU11は割り込みによりISR37を実行する。
(ii)データ退避部33はCPU11がアクセス違反を生じたアドレスをPC21から読み出し、該アドレスのデータをメモリ200から読み出す。そして、アドレスとデータを対応づけて退避用データ領域24に退避する。フラグFはONになる。
また、保護情報変更部32は、アプリAがアプリB領域にデータを書き込めるように保護情報31を変更する。すなわち、領域4のデータライトを許可する。
(iii) データを退避するとOS25からアプリAに処理が戻り、CPU11はアプリAのアクセス違反(書き込み)が発生した命令から実行を再開する。図の例では、アプリAはアプリBのデータ領域にデータを書き込む。したがって、アクセス違反が生じてもアプリAが処理を継続できる。
また、アプリAがアクセス違反した場合に、直接、退避用のメモリにデータを書き込む技術も検討されるが、この場合、アプリAの書き込み先のアドレス(PC21に記憶されている)を変更しなければならない。しかし、一般のマイコン100では、PC21の値を任意に変えることは容易でない。また、退避用のメモリに書き込んだ後は、アプリAがデータリードする毎に退避したデータが書き込まれたアドレスと一致するか否かを判定する必要があり、オーバーヘッドが大きくなる。
II.バックアップ処理(図8)
(i)アプリAの実行が完了すると、アプリAは例えばシステムコールなどの手法でOS25を呼び出す。これにより、判断部36がデータのバックアップが必要か否かを判断する。退避用データ領域24のフラグFがONであることは、アプリの領域を超えてデータが書き込まれたことを意味するので、判断部36はフラグFを参照して、バックアップが必要か否かを判断する。バックアップが必要な場合、データバックアップ部34は退避用データ領域24のアドレスを読み出し、該アドレスのデータをメモリから読み出して、アドレスに対応づけてアプリAのデータバックアップ領域23にバックアップする。退避用データ領域24に複数のデータがある場合は、対応するアドレスの全てのデータをバックアップする。
データバックアップ領域23はRAMに確保されている領域でありアプリA〜Cから離れているためアクセス違反のおそれがない。なお、データバックアップ領域23と退避用データ領域24を連続した領域に設けてもよい。
(ii) 次に、データ復帰部35は、退避用データ領域24に退避したアプリBのデータを、対応づけられているアドレスに(アプリB領域)に復帰する。また、データ復帰部35はフラグFをOFFに設定する。このように、アプリAがアプリB領域にデータを書き込んでも、アプリBはアプリB領域のデータを使用できる。
保護情報変更部32は、変更した保護情報31を元に戻す。すなわち、領域4のデータライトを禁止する。なお、保護情報変更部32は、アプリBの実行用に保護情報31を変更する。すなわち、領域3の命令フェッチ、データライトを禁止し、領域4の命令フェッチ、データライトを許可する(データリードは許可のまま)。
III.データ復帰処理(図9)
(i) 次の周期でCPU11がアプリAを実行する場合、判断部36はアプリAのデータバックアップ領域23のフラグを参照して、過去の周期でバックアップしたデータの復帰が必要か否(フラグFがONか否か)を判断する。復帰が必要な場合、データ退避部33はデータバックアップ領域23に登録されたメモリのアドレスからデータを読み出し、退避用データ領域24に退避する。また、フラグFをONに設定する。
(ii) データバックアップ部34はデータバックアップ領域23のデータを、データに対応づけられているメモリのアドレスに記憶する。保護情報31は、アプリAの実行用になるのでアプリAが領域4のデータリードすることは許可される。よって、アプリAは自身が書き込んだデータを読み出すことができる。
なお、図5(b)によれば、アプリBの後、アプリCが実行されるが、アプリBでアクセス違反が生じなければ、退避用データ領域24のフラグFはOFFなので退避用データ領域24からメモリ200へのデータの復帰は行われない。また、データバックアップ領域23のフラグFは、アプリAのフラグがONでもアプリC(次に実行される)のフラグFはONでないので、データバックアップ領域23からメモリ200へのデータの復帰は行われない。
〔動作手順〕
図10(a)(b)は上記の手順を説明するフローチャート図の一例である。図10(a)は書き込みによる例外の発生時に実行され、図10(b)は、例えば処理がアプリからOS25に切り替わる毎に実行される。
図10(a)に示すように、書き込み命令の実行による例外が発生すると(S10)、ISR37は例外が発生したアドレスのデータを退避用データ領域24に退避する(S20)。
次に、保護情報変更部32が実行中のアプリがデータライトできるように保護情報31を変更する(S30)。この後、処理はアプリに戻り、アプリは例外が発生したアドレスにデータを書き込む。
図10(b)では、OS25はまずアプリを切り替える処理を行うか否かを判定する(S110)。アプリを切り替えるタイミングでない場合、処理は終了する。
アプリを切り替えるタイミングの場合(S110のYes)、まず、判断部36は退避用データ領域24にデータが退避されているか否かを判定する(S120)。
データが退避されている場合(S120のYes)、データバックアップ部34は退避用データ領域24のアドレスが指示するデータをデータバックアップ領域23にバックアップする(S130)。
次に、データ復帰部35は退避用データ領域24のデータを、データに対応づけられているアドレスに復帰する(S140)。
この場合、直前のアプリが例外を発生させたため保護情報31が変更されているので、保護情報変更部32は保護情報31のデータライトを禁止する(S150)。この後、処理はS160に移行する。
ステップS120で、データが退避されていない場合(S120のNo)、判断部36はデータバックアップ領域23にこれから実行するアプリのデータがバックアップされているか否かを判定する(S160)。
データがバックアップされている場合(S160のYes)、データ退避部33はデータに対応づけられているアドレスのデータを退避用データ領域24に退避する(S170)。
そして、データバックアップ部34はデータバックアップ領域23のデータを、データに対応づけられているアドレスに復帰する(S180)。
以上説明したように、本実施例のマイコン100は、メモリ保護装置22によりデータライトのアクセス違反を検出しても、アクセス違反を発生させたプログラムの処理を継続することができる。
実施例1では、保護情報31によりデータリードが許可されていたが、本実施例ではデータリードが禁止されている場合のマイコン100について説明する。
図11は、アプリAが領域4(アプリB領域)をデータリードすることも禁止されている場合の「IIIデータ復帰処理」の動作を模式的に示す図の一例である。「I.退避処理」「II.バックアップ処理」は実施例1と同様でよい。
(i) CPU11がアプリAを実行中に、アプリBのデータ領域から読み出し命令を実行し、メモリ保護装置22が例外を発生させる。CPU11は割り込みによりISR37を実行する。
(ii) 判断部36は、CPU11がアクセス違反を生じたアドレスをPC21から読み出し、データバックアップ領域23に該アドレスのデータがバックアップされているか否かを判断する。バックアップされていない場合は、ISR37がアプリの実行を停止するなどの処理を行う。
バックアップされている場合は、アプリAが実行を継続可能なので、データ退避部33はデータバックアップ領域23に登録されたアドレスのメモリ200からデータを読み出し、退避用データ領域24に退避する。また、フラグFをONに設定する。
(iii) データバックアップ部34はデータバックアップ領域23のデータを、データに対応づけられているメモリのアドレスに復帰する。また、保護情報変更部32は、アプリAがアプリB領域にアクセスできるように、保護情報31を書き換える。具体的には領域4のデータリードを許可する。このように、メモリ保護装置がアクセス違反を検出することで、アプリAが読み出すデータがメモリ200に復帰するので、OS25は、アプリAがバックアップされたデータへアクセスしたか否かを監視する必要がない。
本実施例のように例外処理の中で退避と復帰を行えば、アプリが切り替わる毎に、データバック領域からメモリにデータの復帰が必要か否を判断する必要がない。また、判断した際に復帰が必要でも(次に実行するアプリのフラグFがONでも)、データリードされなければ復帰しなくてよいので、処理負荷を低減できる。
図12(a)〜(c)は上記の手順を説明するフローチャート図の一例である。図12(a)は図10(a)と同様であり、図12(b)の同じ番号のステップは図10(b)のステップと同じである。図12(c)は、読み出し命令による例外が発生した場合に実行される。
図12(c)に示すように、読み出し命令の実行による例外が発生すると(S11)、判断部36はデータバックアップ領域23に現在、実行しているアプリのデータがバックアップされているか否かを判定する(S160)。また、この判定で、CPU11がアクセス違反を生じたアドレスのデータが、データバックアップ領域23にバックアップされているか否かを判断する。
データがバックアップされている場合(S160のYes)、データ退避部33はデータに対応づけられているアドレスのデータを退避用データ領域24に退避する(S170)。
そして、データバックアップ部34はデータバックアップ領域23のデータを、データに対応づけられているアドレスに復帰する(S180)。
次に、保護情報変更部32が実行中のアプリがデータリードできるように保護情報31を変更する(S190)。この後、処理はアプリに戻り、アプリが、例外が発生したアドレスからデータを読み出す。
本実施例のマイコン100は、各アプリのデータリードが禁止されている場合も、実施例1と同様に、データの退避・バックアップ・復帰を行うことが可能になる。
11 CPU
12 RAM
22 メモリ保護装置
23 データバックアップ領域
24 退避用データ領域
25 OS
100 マイコン
200 メモリ

Claims (7)

  1. メモリに記憶された複数のアプリのそれぞれを繰り返し実行するCPUと、
    メモリへのアクセスを許可又は禁止するかを規定する許否情報が、各アプリのデータが記憶されているアドレスに対応づけて登録されているメモリアクセス監視手段と、を有する情報処理装置であって、
    アプリを実行するCPUによる禁止されたメモリアクセスを前記メモリアクセス監視手段が検出した場合、CPUがメモリアクセスしたアドレスに記憶されたデータを、前記アドレスと対応づけてメモリから退避領域に退避するデータ退避手段と、
    前記アドレスへのメモリアクセスが許可されるように前記許否情報を変更する許否情報変更手段と、
    禁止されたメモリアクセスを行ったアプリを実行するCPUが前記アドレスにメモリアクセスした後、メモリアクセスした前記アドレスのデータを前記アドレスに対応づけてメモリからバックアップ領域にバックアップするバックアップ手段と、を有し、
    前記バックアップ手段は、CPUが禁止されたメモリアクセスを行ったアプリを次に実行する前に、前記バックアップ領域のデータを、前記バックアップ領域のデータに対応づけられているアドレスに復帰する、ことを特徴とする情報処理装置。
  2. CPUが実行するアプリを切り替える毎に、前記退避領域にデータが退避されているか否かが判断され、
    データが退避されている場合、前記バックアップ手段は、CPUが禁止されたメモリアクセスを行った前記アドレスのデータをメモリから前記バックアップ領域にバックアップし、
    前記アドレスに対応づけて前記退避領域に退避されているデータを、メモリの前記アドレスに復帰するデータ復帰手段を有する、
    ことを特徴とする請求項1記載の情報処理装置。
  3. 前記バックアップ領域はアプリ毎に設けられており、
    CPUが実行するアプリを切り替える毎に、次に実行するアプリを過去にCPUが実行した際にデータが前記バックアップ領域にバックアップされたか否かが判断され、
    データがバックアップされている場合、前記データ退避手段が、前記バックアップ領域に登録されている前記アドレスのデータをメモリから前記退避領域に退避した後、
    前記バックアップ手段は、次に実行するアプリの前記バックアップ領域にバックアップされているデータを、前記バックアップ領域のデータに対応づけられているアドレスに復帰する、
    ことを特徴とする請求項1又は2記載の情報処理装置。
  4. 前記バックアップ領域はアプリ毎に設けられており、
    前記メモリアクセス監視手段が、アプリを実行するCPUによる禁止されたメモリアクセスを検出した場合、禁止されたメモリアクセスを行った時にCPUが実行していたアプリのデータが前記バックアップ領域にバックアップされているか否かが判断され、
    データがバックアップされている場合、前記データ退避手段が、前記バックアップ領域に登録されている前記アドレスのデータをメモリから前記退避領域に退避した後、
    前記バックアップ手段は、現在、実行されているアプリの前記バックアップ領域にバックアップされているデータを、前記バックアップ領域のデータに対応づけられているアドレスに復帰し、
    前記許否情報変更手段は、前記アドレスへのメモリアクセスが許可されるように前記許否情報を変更する、
    ことを特徴とする請求項1又は2記載の情報処理装置。
  5. アプリによる前記メモリアクセスは、メモリへのデータライトである、
    ことを特徴とする請求項1〜3いずれか1項記載の情報処理装置。
  6. メモリに記憶された複数のアプリのそれぞれを繰り返し実行するCPUと、
    メモリへのアクセスを許可又は禁止するかを規定する許否情報が、各アプリのデータが記憶されているアドレスに対応づけて登録されているメモリアクセス監視手段と、を有する車両の電子制御装置であって、
    アプリを実行するCPUによる禁止されたメモリアクセスを前記メモリアクセス監視手段が検出した場合、CPUがメモリアクセスしたアドレスに記憶されたデータを、前記アドレスと対応づけてメモリから退避領域に退避するデータ退避手段と、
    前記アドレスへのメモリアクセスが許可されるように前記許否情報を変更する許否情報変更手段と、
    禁止されたメモリアクセスを行ったアプリを実行するCPUが前記アドレスにメモリアクセスした後、メモリアクセスした前記アドレスのデータを前記アドレスに対応づけてメモリからバックアップ領域にバックアップするバックアップ手段と、を有し、
    前記バックアップ手段は、CPUが禁止されたメモリアクセスを行ったアプリを次に実行する前に、前記バックアップ領域のデータを、前記バックアップ領域のデータに対応づけられているアドレスに復帰する、ことを特徴とする電子制御装置。
  7. メモリに記憶された複数のアプリのそれぞれを繰り返し実行するCPUと、
    メモリへのアクセスを許可又は禁止するかを規定する許否情報が、各アプリのデータが記憶されているアドレスに対応づけて登録されているメモリアクセス監視手段と、を有する情報処理装置に、
    アプリを実行するCPUによる禁止されたメモリアクセスを前記メモリアクセス監視手段が検出した場合、CPUがメモリアクセスしたアドレスに記憶されたデータを、前記アドレスと対応づけてメモリから退避領域に退避するデータ退避ステップと、
    前記アドレスへのメモリアクセスが許可されるように前記許否情報を変更する許否情報変更ステップと、
    禁止されたメモリアクセスを行ったアプリを実行するCPUが前記アドレスにメモリアクセスした後、メモリアクセスした前記アドレスのデータを前記アドレスに対応づけてメモリからバックアップ領域にバックアップするバックアップステップと、
    CPUが禁止されたメモリアクセスを行ったアプリを次に実行する前に、前記バックアップ領域のデータを、前記バックアップ領域のデータに対応づけられているアドレスに復帰するステップと、
    を実行させるプログラム。
JP2013006414A 2013-01-17 2013-01-17 情報処理装置、プログラム Active JP5842833B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013006414A JP5842833B2 (ja) 2013-01-17 2013-01-17 情報処理装置、プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013006414A JP5842833B2 (ja) 2013-01-17 2013-01-17 情報処理装置、プログラム

Publications (2)

Publication Number Publication Date
JP2014137734A JP2014137734A (ja) 2014-07-28
JP5842833B2 true JP5842833B2 (ja) 2016-01-13

Family

ID=51415188

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013006414A Active JP5842833B2 (ja) 2013-01-17 2013-01-17 情報処理装置、プログラム

Country Status (1)

Country Link
JP (1) JP5842833B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2544996B (en) * 2015-12-02 2017-12-06 Advanced Risc Mach Ltd An apparatus and method for managing bounded pointers
JP6589767B2 (ja) 2016-07-27 2019-10-16 株式会社デンソー 電子制御装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4522548B2 (ja) * 2000-03-10 2010-08-11 富士通フロンテック株式会社 アクセス監視装置及びアクセス監視方法
JP2005165900A (ja) * 2003-12-05 2005-06-23 Hitachi Ltd 情報漏洩防止装置
JP2008242592A (ja) * 2007-03-26 2008-10-09 Nec Corp メモリ監視回路、情報処理装置、及びメモリ監視方法
JP4939387B2 (ja) * 2007-12-06 2012-05-23 ルネサスエレクトロニクス株式会社 データ処理装置及びアドレス空間保護方法

Also Published As

Publication number Publication date
JP2014137734A (ja) 2014-07-28

Similar Documents

Publication Publication Date Title
JP5044387B2 (ja) 情報処理装置及びそのスタックポインタ更新方法
JP5244981B2 (ja) マイクロコンピュータ及びその動作方法
US7523229B2 (en) Memory protection during direct memory access
CN114556348A (zh) 用于运行计算装置的方法和设备
CN112818327A (zh) 基于TrustZone的用户级代码和数据安全可信保护方法及装置
WO2022001514A1 (zh) 内核和任务隔离的方法和装置
JP2009251967A (ja) マルチコアシステム
EP2996043B1 (en) Debugging in a data processing apparatus
JP2013161299A (ja) 情報処理装置、インタフェースアクセス方法
WO2015045507A1 (ja) 車両用制御装置
JP5842833B2 (ja) 情報処理装置、プログラム
JP5716824B2 (ja) マルチコアプロセッサシステム
US20220300612A1 (en) Security processing device
CN105474174B (zh) 控制时间密集的指令
JP2019049928A (ja) 電子制御装置及び電子制御装置の制御方法
JP5699896B2 (ja) 情報処理装置、異常判定方法
JP2014074995A (ja) 情報処理装置
US20200250301A1 (en) Method and semiconductor circuit for protecting an operating system of a security system of a vehicle
CN109947673B (zh) 一种内存保护方法、保护装置及单片机
JP6349444B2 (ja) 車両用制御装置
EP3617927B1 (en) Control unit and method for operating a control unit
JP5920509B2 (ja) コントローラの制御プログラム、およびコントローラの制御方法
WO2023119652A1 (ja) 電子制御装置、及びアクセス制御方法
JP6589767B2 (ja) 電子制御装置
WO2023238555A1 (ja) 車載装置、情報処理方法および情報処理プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150204

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20151008

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: 20151020

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20151102

R151 Written notification of patent or utility model registration

Ref document number: 5842833

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151