JP5842833B2 - 情報処理装置、プログラム - Google Patents
情報処理装置、プログラム Download PDFInfo
- 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
Links
Images
Landscapes
- Storage Device Security (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Description
(i)CPUがアプリAを実行中に、データ領域へのアクセス違反(書き込み)が発生した。CPUは割り込みによりメモリアクセス違反を検出し、例えばISR(Interrupt Service Routine:割り込みサービスルーチン)を実行する。
(ii)ISRはCPUがアクセス違反を生じたアドレスをレジスタ(プログラムカウンタ)などから読み出し、アドレスに記憶されているデータを退避用データ領域24に退避する。また、アプリAのアプリB領域へのアクセスが許可される。
(iii)退避するとISRからアプリAに処理が戻り、CPUはアクセス違反(書き込み)が発生した命令から実行を再開する。図の例では、アプリAはアプリB領域にデータを書き込む。したがって、アクセス違反が生じてもアプリAが処理を継続できる。
(i)アプリAの実行が完了すると、OS(Operating System)の処理に移り、OSはアプリB領域のデータをデータバックアップ領域23にバックアップする。
(ii)また、OSは退避用データ領域24に退避したアプリBのデータをアプリB領域に復帰する(書き戻す)。これで、アプリBはアプリAがアクセス違反を生じさせても影響を受けることなく実行される。
(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)コントローラなどの通信装置など、マイコンに一般的な構成を有している。
図4は保護情報31を模式的に説明する図の一例である。保護情報31は、いくつかの領域毎にアクセス権が設定できるようになっている。図では5つの領域があるが、それぞれシステム領域、未使用領域、アプリA領域、アプリB領域、アプリC領域、に対応している。領域毎に、「先頭アドレス」、「サイズ」、モード毎の「命令フェッチ」、「データリード」、「データライト」の各項目を有する。なお、メモリ保護装置22にこのようなラベルが付与されているわけではなく、メモリ保護装置22のレジスタにこれらの値を設定できるようになっている。
「先頭アドレス」は領域が始まるアドレスを示し、「サイズ」は領域の容量を示す。「命令フェッチ」はその領域からの命令フェッチが許可されているか否かを示し、「データリード」はその領域からのデータの読み出しが許可されているか否かを示し、「データライト」はその領域へのデータの書き込みが許可されているか否かを示す。「モード」の特権モードとユーザモードはCPU11の動作モードであり、特権モードは、CPU11がシステムを実行する動作モードであり、ユーザモードは、アプリケーションを実行する動作モードである。一般に、OSのシステム領域にアクセスできるのはOSだけである。
図5はマイコン100が実行するプログラムを時系列に示す図の一例である。マイコン100はタイマなどの割り込みを利用して定期的にアプリA,B,Cを連続に実行し、次回のタイマ割込みでアプリA,B,Cを連続に実行することを繰り返している。アプリCの実行が完了してからアプリAの実行が開始されるまでの間はアイドル時間(CPU11が何も命令を実行しないか、NOP(No Opearation)という処理を伴わない命令を実行している)である。
図7〜9はデータの退避・バックアップ・復帰の一連の処理を模式的に説明する図の一例である。
I.退避処理(図7)
(i)CPU11がアプリAを実行中に、アプリBのデータ領域へ書き込みし、メモリ保護装置22が例外を発生させる。CPU11は割り込みによりISR37を実行する。
(ii)データ退避部33はCPU11がアクセス違反を生じたアドレスをPC21から読み出し、該アドレスのデータをメモリ200から読み出す。そして、アドレスとデータを対応づけて退避用データ領域24に退避する。フラグFはONになる。
(iii) データを退避するとOS25からアプリAに処理が戻り、CPU11はアプリAのアクセス違反(書き込み)が発生した命令から実行を再開する。図の例では、アプリAはアプリBのデータ領域にデータを書き込む。したがって、アクセス違反が生じてもアプリAが処理を継続できる。
(i)アプリAの実行が完了すると、アプリAは例えばシステムコールなどの手法でOS25を呼び出す。これにより、判断部36がデータのバックアップが必要か否かを判断する。退避用データ領域24のフラグFがONであることは、アプリの領域を超えてデータが書き込まれたことを意味するので、判断部36はフラグFを参照して、バックアップが必要か否かを判断する。バックアップが必要な場合、データバックアップ部34は退避用データ領域24のアドレスを読み出し、該アドレスのデータをメモリから読み出して、アドレスに対応づけてアプリAのデータバックアップ領域23にバックアップする。退避用データ領域24に複数のデータがある場合は、対応するアドレスの全てのデータをバックアップする。
(ii) 次に、データ復帰部35は、退避用データ領域24に退避したアプリBのデータを、対応づけられているアドレスに(アプリB領域)に復帰する。また、データ復帰部35はフラグFをOFFに設定する。このように、アプリAがアプリB領域にデータを書き込んでも、アプリBはアプリB領域のデータを使用できる。
(i) 次の周期でCPU11がアプリAを実行する場合、判断部36はアプリAのデータバックアップ領域23のフラグを参照して、過去の周期でバックアップしたデータの復帰が必要か否(フラグFがONか否か)を判断する。復帰が必要な場合、データ退避部33はデータバックアップ領域23に登録されたメモリのアドレスからデータを読み出し、退避用データ領域24に退避する。また、フラグFをONに設定する。
(ii) データバックアップ部34はデータバックアップ領域23のデータを、データに対応づけられているメモリのアドレスに記憶する。保護情報31は、アプリAの実行用になるのでアプリAが領域4のデータリードすることは許可される。よって、アプリAは自身が書き込んだデータを読み出すことができる。
図10(a)(b)は上記の手順を説明するフローチャート図の一例である。図10(a)は書き込みによる例外の発生時に実行され、図10(b)は、例えば処理がアプリからOS25に切り替わる毎に実行される。
(i) CPU11がアプリAを実行中に、アプリBのデータ領域から読み出し命令を実行し、メモリ保護装置22が例外を発生させる。CPU11は割り込みによりISR37を実行する。
(ii) 判断部36は、CPU11がアクセス違反を生じたアドレスをPC21から読み出し、データバックアップ領域23に該アドレスのデータがバックアップされているか否かを判断する。バックアップされていない場合は、ISR37がアプリの実行を停止するなどの処理を行う。
(iii) データバックアップ部34はデータバックアップ領域23のデータを、データに対応づけられているメモリのアドレスに復帰する。また、保護情報変更部32は、アプリAがアプリB領域にアクセスできるように、保護情報31を書き換える。具体的には領域4のデータリードを許可する。このように、メモリ保護装置がアクセス違反を検出することで、アプリAが読み出すデータがメモリ200に復帰するので、OS25は、アプリAがバックアップされたデータへアクセスしたか否かを監視する必要がない。
12 RAM
22 メモリ保護装置
23 データバックアップ領域
24 退避用データ領域
25 OS
100 マイコン
200 メモリ
Claims (7)
- メモリに記憶された複数のアプリのそれぞれを繰り返し実行するCPUと、
メモリへのアクセスを許可又は禁止するかを規定する許否情報が、各アプリのデータが記憶されているアドレスに対応づけて登録されているメモリアクセス監視手段と、を有する情報処理装置であって、
アプリを実行するCPUによる禁止されたメモリアクセスを前記メモリアクセス監視手段が検出した場合、CPUがメモリアクセスしたアドレスに記憶されたデータを、前記アドレスと対応づけてメモリから退避領域に退避するデータ退避手段と、
前記アドレスへのメモリアクセスが許可されるように前記許否情報を変更する許否情報変更手段と、
禁止されたメモリアクセスを行ったアプリを実行するCPUが前記アドレスにメモリアクセスした後、メモリアクセスした前記アドレスのデータを前記アドレスに対応づけてメモリからバックアップ領域にバックアップするバックアップ手段と、を有し、
前記バックアップ手段は、CPUが禁止されたメモリアクセスを行ったアプリを次に実行する前に、前記バックアップ領域のデータを、前記バックアップ領域のデータに対応づけられているアドレスに復帰する、ことを特徴とする情報処理装置。 - CPUが実行するアプリを切り替える毎に、前記退避領域にデータが退避されているか否かが判断され、
データが退避されている場合、前記バックアップ手段は、CPUが禁止されたメモリアクセスを行った前記アドレスのデータをメモリから前記バックアップ領域にバックアップし、
前記アドレスに対応づけて前記退避領域に退避されているデータを、メモリの前記アドレスに復帰するデータ復帰手段を有する、
ことを特徴とする請求項1記載の情報処理装置。 - 前記バックアップ領域はアプリ毎に設けられており、
CPUが実行するアプリを切り替える毎に、次に実行するアプリを過去にCPUが実行した際にデータが前記バックアップ領域にバックアップされたか否かが判断され、
データがバックアップされている場合、前記データ退避手段が、前記バックアップ領域に登録されている前記アドレスのデータをメモリから前記退避領域に退避した後、
前記バックアップ手段は、次に実行するアプリの前記バックアップ領域にバックアップされているデータを、前記バックアップ領域のデータに対応づけられているアドレスに復帰する、
ことを特徴とする請求項1又は2記載の情報処理装置。 - 前記バックアップ領域はアプリ毎に設けられており、
前記メモリアクセス監視手段が、アプリを実行するCPUによる禁止されたメモリアクセスを検出した場合、禁止されたメモリアクセスを行った時にCPUが実行していたアプリのデータが前記バックアップ領域にバックアップされているか否かが判断され、
データがバックアップされている場合、前記データ退避手段が、前記バックアップ領域に登録されている前記アドレスのデータをメモリから前記退避領域に退避した後、
前記バックアップ手段は、現在、実行されているアプリの前記バックアップ領域にバックアップされているデータを、前記バックアップ領域のデータに対応づけられているアドレスに復帰し、
前記許否情報変更手段は、前記アドレスへのメモリアクセスが許可されるように前記許否情報を変更する、
ことを特徴とする請求項1又は2記載の情報処理装置。 - アプリによる前記メモリアクセスは、メモリへのデータライトである、
ことを特徴とする請求項1〜3いずれか1項記載の情報処理装置。 - メモリに記憶された複数のアプリのそれぞれを繰り返し実行するCPUと、
メモリへのアクセスを許可又は禁止するかを規定する許否情報が、各アプリのデータが記憶されているアドレスに対応づけて登録されているメモリアクセス監視手段と、を有する車両の電子制御装置であって、
アプリを実行するCPUによる禁止されたメモリアクセスを前記メモリアクセス監視手段が検出した場合、CPUがメモリアクセスしたアドレスに記憶されたデータを、前記アドレスと対応づけてメモリから退避領域に退避するデータ退避手段と、
前記アドレスへのメモリアクセスが許可されるように前記許否情報を変更する許否情報変更手段と、
禁止されたメモリアクセスを行ったアプリを実行するCPUが前記アドレスにメモリアクセスした後、メモリアクセスした前記アドレスのデータを前記アドレスに対応づけてメモリからバックアップ領域にバックアップするバックアップ手段と、を有し、
前記バックアップ手段は、CPUが禁止されたメモリアクセスを行ったアプリを次に実行する前に、前記バックアップ領域のデータを、前記バックアップ領域のデータに対応づけられているアドレスに復帰する、ことを特徴とする電子制御装置。 - メモリに記憶された複数のアプリのそれぞれを繰り返し実行するCPUと、
メモリへのアクセスを許可又は禁止するかを規定する許否情報が、各アプリのデータが記憶されているアドレスに対応づけて登録されているメモリアクセス監視手段と、を有する情報処理装置に、
アプリを実行するCPUによる禁止されたメモリアクセスを前記メモリアクセス監視手段が検出した場合、CPUがメモリアクセスしたアドレスに記憶されたデータを、前記アドレスと対応づけてメモリから退避領域に退避するデータ退避ステップと、
前記アドレスへのメモリアクセスが許可されるように前記許否情報を変更する許否情報変更ステップと、
禁止されたメモリアクセスを行ったアプリを実行するCPUが前記アドレスにメモリアクセスした後、メモリアクセスした前記アドレスのデータを前記アドレスに対応づけてメモリからバックアップ領域にバックアップするバックアップステップと、
CPUが禁止されたメモリアクセスを行ったアプリを次に実行する前に、前記バックアップ領域のデータを、前記バックアップ領域のデータに対応づけられているアドレスに復帰するステップと、
を実行させるプログラム。
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)
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)
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 | ルネサスエレクトロニクス株式会社 | データ処理装置及びアドレス空間保護方法 |
-
2013
- 2013-01-17 JP JP2013006414A patent/JP5842833B2/ja active Active
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) | 車両用制御装置 | |
JP5533789B2 (ja) | 車載電子制御装置 | |
JP5842833B2 (ja) | 情報処理装置、プログラム | |
JP5716824B2 (ja) | マルチコアプロセッサシステム | |
JP2019049928A (ja) | 電子制御装置及び電子制御装置の制御方法 | |
JP5699896B2 (ja) | 情報処理装置、異常判定方法 | |
KR20160045699A (ko) | 시간 집약적 명령의 처리 | |
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) | コントローラの制御プログラム、およびコントローラの制御方法 | |
US12050691B2 (en) | Security processing device | |
WO2023119652A1 (ja) | 電子制御装置、及びアクセス制御方法 | |
JP6589767B2 (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 |