JP2002091826A - 情報処理装置 - Google Patents

情報処理装置

Info

Publication number
JP2002091826A
JP2002091826A JP2000277942A JP2000277942A JP2002091826A JP 2002091826 A JP2002091826 A JP 2002091826A JP 2000277942 A JP2000277942 A JP 2000277942A JP 2000277942 A JP2000277942 A JP 2000277942A JP 2002091826 A JP2002091826 A JP 2002091826A
Authority
JP
Japan
Prior art keywords
access control
access
memory
information processing
processing apparatus
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.)
Pending
Application number
JP2000277942A
Other languages
English (en)
Inventor
Naoyuki Iwabuchi
直行 岩渕
Masahiko Harada
政彦 原田
Koichi Sato
浩一 佐藤
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.)
Fujifilm Business Innovation Corp
Original Assignee
Fuji Xerox Co Ltd
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 Fuji Xerox Co Ltd filed Critical Fuji Xerox Co Ltd
Priority to JP2000277942A priority Critical patent/JP2002091826A/ja
Publication of JP2002091826A publication Critical patent/JP2002091826A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Storage Device Security (AREA)
  • Debugging And Monitoring (AREA)

Abstract

(57)【要約】 【課題】 不正なメモリアクセスを防止し、不正アクセ
スがあった場合に容易に検証できるようにすること。 【解決手段】 所定のプログラムを実行するCPU10
101と、CPU10101で実行するプログラムおよ
びそのプログラムで使用するデータを格納するメモリ1
0103と、CPU10101で実行するプログラムが
メモリ10103に対して不正アクセスしたか否かを判
断するメモリ保護制御装置10102とを備えている。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、プログラムのメモ
リに対する不正アクセスを検出する情報処理装置に関す
る。
【0002】
【従来の技術】近年、プリンタやデジタル複合機などが
高機能化し、それにつれてユーザが機能をカスタマイズ
したり、後から追加オプションを増設することが行われ
ている。この場合、カスタマイズやオプション追加に伴
って新しいソフトウェアをインストールし、動作させる
必要が生じる。このため、カスタマイズできる範囲やオ
プションの数が増えるに従い、同時に動作するソフトウ
ェアの組み合わせは爆発的に増加していく。
【0003】これに伴い、何らかのソフトウェアの問題
がユーザ側で見つかるようになる確率も増加している。
特に、不正なメモリ領域へのアクセスによるバグが原因
で発生する問題は、必ずしもテストで全てを発見するこ
とが難しく、再現性のない場合が多いことから、ユーザ
側で問題が見つかった場合にその対策が非常に困難であ
る。
【0004】不正なメモリ領域へのアクセスによるバグ
を発見することや修正を行うことが難しい理由の一つと
して、不正なメモリ領域へのアクセスが生じた時点と、
それによるシステムの異常動作が観察される時点とに時
間的空間的隔たりが存在することがあげられる。つま
り、バグが内在するソフトウェアが一体どれであるのか
を特定しにくいことになる。
【0005】特に、複数人が開発に関わる大規模ソフト
ウェアなどでは、バグの原因の特定が複数人に及ぶた
め、どのアプリケーションやモジュールが不正アクセス
をしたのかを特定するのがより困難となる。
【0006】また、問題が発生した場合、ユーザ側の操
作ログが残っていたり、問題が発生した状況を残しても
らえる場合は稀である。このため、問題の特定はさらに
難しくなる。
【0007】ところで、ワークステーションなどの汎用
計算機上のOS(オペレーティングシステム)では、仮
想記憶という仕組みを使うことで、各アプリケーション
毎に資源を論理的に分割することが通常行われている。
このアプリケーション毎に資源を論理的に分けた単位は
プロセスと呼ばれる。プロセスはお互いに独立で干渉を
しないためアプリケーションが他のアプリケーションの
影響を受けないようになり、上記問題の一部解消を図っ
ている。
【0008】
【発明が解決しようとする課題】しかし、組み込みソフ
トウェア上のOSではWSのような資源管理は原則とし
て行われない。これは組み込みソフトウェアではリアル
タイム性を保証しなければならないことや、資源を管理
するために余分な資源が必要になることなどによる。た
だしCPU資源だけはタスクという形で別管理されてい
る。
【0009】また、本来プロセスで保護されているWS
でも近年マルチCPU対応などの理由からWS上のOS
も、よりタスクに近いスレッドと呼ばれる処理単位が実
装されだした。これらのタスクやスレッドでは基本的に
相互のメモリ保護は行われていない。
【0010】このため複数のタスクがバグのために本来
アクセスしないはずのメモリ空間をアクセスする場合も
あり得る。もしこれが不正なデータの書き込みならば、
これにより書き換えられたデータを利用するモジュール
の動作は明らかに保証されない。
【0011】また、不正なデータの読み込みならば、読
み込みを行ったモジュールの動作は保証されない。ま
た、FIFOなどのようにハードウェア資源の一部には
読み込む動作を行うだけで値などの状態が変わってしま
うものも存在するため、読み込まれたデータを利用する
モジュールの動作も保証されない場合がある。
【0012】本発明の目的は上記の課題を解決し、不正
なメモリアクセスを防止し、ユーザに便宜をはかること
を目的とする。
【0013】
【課題を解決するための手段】本発明は、このような目
的を達成するために成されたものである。すなわち、本
発明の情報処理装置は、所定のプログラムを実行するC
PUと、CPUで実行するプログラムおよびそのプログ
ラムで使用するデータを格納するメモリと、CPUで実
行するプログラムがメモリに対して不正アクセスしたか
否かを判断するメモリ保護制御手段とを備えている。
【0014】このような本発明では、あるプログラムが
実行され、そのプログラムによってメモリ内の特定の領
域のデータをアクセスする際、そのアクセスが不正なも
のである場合にはメモリ保護制御手段が検知して、割り
込みなどで知らせることができるようになる。
【0015】
【発明の実施の形態】以下、本発明の実施の形態を図に
基づいて説明する。なお、以下の説明で、「タスク」と
表記している部分は、そのままUNIX(登録商標)上
などの「スレッド」にも当てはまるものである。図1
は、本実施形態に係る情報処理装置を説明するシステム
構成図である。すなわち、この情報処理装置は、バス1
0104に接続されたCPU10101、メモリ101
03およびメモリ保護制御装置10102から構成され
る。
【0016】CPU10101は、プログラムをメモリ
10103から読み取り、実行する。メモリ10103
は、CPU10101で実行するプログラムやそのプロ
グラムで使用するデータなどを格納する。メモリ保護制
御装置10102は、CPU10101からメモリ10
102ヘのアクセスを監視し、不正なアクセスがあった
場合にCPU10101に割り込みをかける。
【0017】CPU10101とメモリ保護制御装置1
0103とは制御線10105によって接続され、メモ
リ保護制御装置10103がCPU10101のメモリ
10102への不正アクセスを検知した場合にCPU1
0101へ割り込みをかけたり、プログラムのFetc
hサイクルを認識するために利用される。
【0018】次に、本実施形態の情報処理装置における
動作の説明を行う。ここで、本実施形態ではメモリ10
103の内容は図2のような設定になっているものとす
る。つまり、アドレス0x1000〜0x10FFをデ
ータ領域10201、0x1100〜0x11FFを読
み込みのみ可能なモジュールR10202、0x120
0〜0x12FFを書き込みのみ可能なモジュールW1
0207、0x1300〜0x13FFを読み書き可能
なモジュールRW10203の領域としている。
【0019】他の領域から0x100〜0x10FFへ
のアクセスは不正である。以下同様に(0x0からのア
ドレスも含めて)0x100単位で領域が切り替わる。
ただし0x10000以降はどの領域へのアクセスも許
されていない。
【0020】また、プログラムはプログラムA1020
4、プログラムB10205、プログラムC10206
の3つがメモリに格納され、それぞれ並列に動作する。
それぞれのプログラムは図3のフローチャートで示され
た動作を行うものとする。
【0021】プログラムAでは、データ領域10201
のデータに1を加算するため、データ領域10201に
読み込みおよび書き込み動作を行う必要がある。ところ
がプログラムAが格納されている領域は0x10000
以降にあるのでデータ領域10201を含めてどの領域
に対してもアクセスを行うことが出来ない。そのためデ
ータ領域10201に読み書きを行うことが出来るモジ
ュールRW10203を呼び出すことで目的の動作を達
成する。
【0022】同様にプログラムBは、モジュールR10
202を利用してデータの読み込みを行う。プログラム
Cについても同様で、どの領域に対してもアクセスは行
えないが、データ領域10201に対してアクセスは行
わないので問題はない。
【0023】ここでプログラムCにバグがあり、データ
領域10201に不正なアクセスが行われたとする。プ
ログラムCの格納されている領域10206はデータ領
域10201へのアクセスが許されていない領域である
のでデータ領域10206にアクセスするのは不正アク
セスである。そのため不正アクセスが行われた瞬間、図
1に示すメモリ保護制御装置10102から不正アクセ
スの検知がCPU10101に知らされる。
【0024】CPU10101は不正アクセスが知らさ
れるとエラーメッセージをコンソールに出力する。そし
て、エラーが出たプログラムCの動作を停止し復帰動作
を行うなど適切な行動を起こす。
【0025】図4は、メモリ保護制御装置の具体例を説
明する図である。ここでは、先に説明したように、0x
0000から0xFFFFまでの任意のアドレスに対し
て、0x0000への読み込みは0x0100、書き込
みは0x0200、読み書きは0x0300、0x04
00への読み込みは0x0500、書き込みは0x06
00、読み書きは0x0700…ように設定されている
ものとする。また0x10000以上のアドレスに格納
されているプログラムからはデータのアクセスは一切行
えないように設定されている。
【0026】また、入力としてPC(プログラムカウン
タ)10401およびアクセスしている領域を示すアク
セスアドレス10402、アクセスしている領域が書き
込みアクセスであることを示すWrite信号線104
03、アクセスしている領域が読み込みアクセスである
ことを示すRead信号線10404がある。
【0027】PC10401は実行中のプログラムまた
はモジュールの命令が格納されているアドレスを指し示
す。以降説明の便宜のため*は任意の一桁の16進数で
あるとし、具体的なアドレスを例にとって説明を行う。
【0028】先ず、図2に示すプログラムC10206
からデータ領域10201をアクセスすることを考え
る。この場合、図4に示すPC10401の値は0x3
*****、アクセスアドレス10402の値は0x1
0**となる。
【0029】さらに、PC10401およびアクセスア
ドレス10402のbit16から31までが定数0で
あるか否かが調べられる。これは0x10000以上の
アドレスを検知するための回路である。この場合、比較
回路10405の結果は0となる。
【0030】そのため、この結果を入力する2つのAN
D回路10409および10410の結果も0となる。
AND回路10409、AND回路10410はそれぞ
れ該当する領域に書き込み許可および読み込み許可が存
在するかを判定するものである。つまり、この場合では
AND回路10409およびAND回路10410の両
方とも出力は0であるため、読み込みも書き込みも不許
可であることが判る。
【0031】この結果、書き込み要求を知らせるWri
te信号線10403か読み込み要求を知らせるRea
d信号線10404のどちらが1となると、対応した不
正書き込み検知信号線10413もしくは不正読み込み
検知信号線10414が1となり、外部に不正なアクセ
スが起こったことを知らせる。通常、この2つの信号線
はCPUの割り込み信号線へと結びつけられる。
【0032】一方、データ領域10201への書き込み
および読み込みが可能なモジュールRW10203から
データ領域10201をアクセスする場合ではPC10
401の値は0x13**、アクセスアドレス1040
2の値は0x10**となる。
【0033】この場合、PC10401のbit16か
ら31は0となり、比較器10405および比較器10
406の出力は両方とも1となる。
【0034】また、PC10401のbit15から1
0までと、アクセスアドレス10402のbit15か
ら10までは共に同じ値なので比較器10408の結果
も1となる。
【0035】アクセスアドレス10402のbit9お
よび8は定数0となるので比較器10407の結果も1
となる。またPC10401のbit9は1なので、書
き込み許可を判定するAND回路10409への入力は
すべて1となるためその出力は1となり、書き込みが許
可されていることがわかる。
【0036】同様にPC10401のbit8が1なの
でAND回路10410の出力も1となり、読み込みも
許可されていることがわかる。したがって、不正書き込
み検知信号線10413および不正読み込み検知信号線
10414ともに1となることはなく、モジュールRW
10203からの読み込み要求も書き込み要求も正当な
ものとして処理が行われる。
【0037】次に、第2実施形態の説明を行う。第2実
施形態では、第1実施形態の入力のうちPC10401
を直接入力とせず、図5に示す装置を図8に示すように
接続することでPC10401の変換を行う点に特徴が
ある。
【0038】例えば、図6に示すようなアクセス制御を
実現したいとする。この場合では変換表20102の設
定は図7に示すようなものとなる。以下、変換表201
02を図7のように設定した場合の動作をより詳しく説
明する。
【0039】例えば、データ領域20201をアクセス
するのがモジュールRW20205である場合、変換前
PC20101が0x100**となっている。このと
き変換表20102の参照される位置はインデックス0
x100の部分である。
【0040】インデックス0x100に格納されている
値は0x13なので、変換後PC20103は0x13
**となり、これを第1実施形態の装置に入力すればデ
ータ領域20201に読み書きが可能になる。
【0041】同様に、モジュールRW20206がデー
タ領域20201をアクセスする場合は、変換前PC2
0101は0x200**という値であり、変換後PC
20103は0x13**に変換される。このためモジ
ュールRW20206もデータ領域20201に読み書
きが可能となる。
【0042】一方、第1実施形態で読み込みアクセス可
能だった0x11**、書き込みアクセス可能だった0
x12**、読み書きアクセス可能だった0x13**
となるアドレスは、いずれも変換表20102で変換前
PC20101が0x100**に変更されることによ
り、データ領域(20201)へのアクセスが不正とな
る。
【0043】このようなアドレス変換を用いることで、
第1実施形態の情報処理装置で用いるメモリマップ以外
であっても第1実施形態と同じ構成から成るメモリ保護
装置を適用することができ、幅広いメモリマップへ対応
することが可能となる。
【0044】次に、第3実施形態の説明を行う。図9に
示すように、30101はメモリ保護管理テーブルであ
り、並列実行単位であるタスク毎に1つずつ存在し、初
期状態では読み込みも書き込みも不許可状態に設定され
ている。
【0045】本実施形態でのメモリ保護管理テーブル3
0101の構成の一例は図10に示すようなものとな
る。このメモリ保護管理テーブル30101は、読み込
みアクセス許可ビット30202および書き込みアクセ
ス許可ビット30203を持ち、256Byteごとの
空間のアクセス許可状態を示す。この2つのビットはア
クセスアドレスの上位24bitをインデックスとして
参照される。
【0046】図9に示す30102はテーブル選択ポイ
ンタであり、タスク毎にどのメモリ保護管理テーブル3
0101を利用するかを指し示している。テーブル選択
ポインタ30102はタスクが切り替わる毎にタスク毎
に割り当てられたメモリ保護管理テーブル30101を
参照するように設定される。これによりタスク毎にメモ
リ保護の設定が切り替わる。
【0047】30103は管理テーブル変更手段であ
り、モジュールが保護されているメモリに付してアクセ
スを行う前に、通常保護されてアクセスが不許可状態に
なっているメモリ保護管理テーブル30101の設定を
適切に設定し直すことにより、該当アドレスにアクセス
を行えるようにする。
【0048】30104は時間管理手段であり、タイマ
ー割り込みによりタスク毎に管理テーブル変更手段30
103がメモリ保護管理テーブル30101を設定して
からの時間を管理している。このタイマーは管理テーブ
ル変更手段30103により動作開始、動作停止、リセ
ットなど適切に制御される。ただし、動作中にタスク毎
に積算された時間がある一定時間を超えると、管理テー
ブル変更手段30103に通知を行い、アクセス可能に
した領域のアクセスを元の状態に戻す。
【0049】30105は不正アクセス検知手段でメモ
リ保護管理テーブルの状態から不正アクセスの検知を行
う。
【0050】30106は条件復帰通知手段であり一時
間管理手段30104により管理テーブル変更手段30
103が動作した場合にCPUなどの外部にそれを知ら
せるものである。
【0051】次に本実施形態の動作を図11に基づき説
明する。なお、ここではA,Bという2つのタスクが動
作している状態を想定していて他のタスクは存在しない
かまたは他のタスクの影響は考えないとする。また2つ
のタスクは領域Xを共有するものとする。
【0052】初期状態ではタスクAおよびタスクB共に
共有領域X30302,30304にはアクセスできな
い。ここでタスクAが共有領域X30302をアクセス
する必要が生じたとする。そのためタスクAは管理テー
ブル変更手段30103にアクセス許可を申請する。
【0053】管理テーブル変更手段30103はテーブ
ル選択ポインタ30102が選択しているメモリ保護管
理テーブル30101を変更し、タスクAが共有領域3
0302にアクセスが出来るようにする。
【0054】同時に時間管理手段30104は管理テー
ブル変更手段30103によりタスクAのメモリ保護管
理テーブル30101が変更されたことを知ることで時
間の積算をはじめる。このときタスクがタスクBに切り
替わったとする。
【0055】この場合はタスク切り換えと同時にテーブ
ル選択ポインタ30102が、タスクBが利用している
メモリ保護管理テーブル30101を指し示すことにな
る。共有領域X30305へのアクセス許可を受けたの
はタスクAなので、たとえ物理的にも論理的にも同一で
あってもタスクBの共有領域X30306に関するアク
セスは不許可のままに保たれる。従ってタスクBが誤っ
て共有領域X30306をアクセスしても不正アクセス
として検知が行われる。
【0056】一方、タスクAは共有領域X30305で
のアクセスが終了したあと、もう一度管理テーブル変更
手段30103を介してアクセスを不可能にする。これ
により以後タスクAで誤って共有領域X30307への
アクセスが行われても不正アクセスとして検知が行われ
る。
【0057】また、このときタスクAが共有領域X30
305のアクセス状態を変更し忘れた場合一時間管理手
段30104のタスクAの積算時間が、設定された一定
値を超えることになる。その場合一時間管理手段301
04は管理テーブル変更手段30104を利用してタス
クAのメモリ保護管理テーブル30103を書き換え、
共有領域X30305へのアクセスを不許可状態にす
る。同時に条件復帰通知手段30106により条件復帰
が行われたことがCPUなどに知らされる。
【0058】このような第3実施形態により、複数のタ
スク毎にメモリ保護管理テーブルを設定して個別のメモ
リアクセス制御を行うことができるとともに、共有領域
へのアクセスの許可、不許可状態を変更して緻密なアク
セス制御を行うことが可能となる。また、アクセスの許
可、不許可状態を変更した場合でも、時間管理手段30
104によって一定時間経過した後は必ず元のアクセス
許可、不許可状態に戻るため、不正なアクセス許可状態
を的確に回避できるようになる。
【0059】次に、第4実施形態について説明する。図
12は、第4実施形態を説明する図である。40101
はメモリ保護管理テーブルであり、並列実行単位である
タスク毎に1つずつ存在する。
【0060】本実施形態でのメモリ保護管理テーブル4
0101の構成の一例は図13に示すようなものとな
る。メモリ保護管理テーブル40101はアクセスアド
レスの上位24bitをインデックスとしてアクセスす
ることができる4bitのアクセス許可ビットからな
る。
【0061】4bitのアクセス許可ビットはタスク毎
に固定される半固定アクセス読み込み許可ビット402
04、タスク毎に固定される半固定アクセス書き込み許
可ビット40205、管理テーブル一時変更手役401
03で変更される一時アクセス読み込み許可ビット40
207および管理テーブル一時変更手段40103で変
更される一時アクセス書き込み許可ビット40208で
ある。
【0062】40102はテーブル選択ポインタであ
り、タスク毎にどのメモリ保護管理テーブル40101
を利用するかを指し示している。テーブル選択ポインタ
はタスクが切り替わる毎にタスク毎に割り当てられたメ
モリ保護管理テーブル40101を参照するように設定
される。
【0063】40103は管理テーブル一時変更手段で
あり、メモリ保護管理テーブル40101の一時アクセ
ス読み出し許可40207および書き込み許可4020
8を適切に設定することによりタスクが該当領域へのア
クセスを行えるようにする。これはモジュールが保護さ
れているメモリに対してアクセスを行うために必要とな
る。
【0064】40104は時間管理手段であり、タイマ
ー割り込みによりタスク毎に管理テーブル一時変更手段
40103がメモリ保護管理テーブル40101を設定
してからの時間を管理している。領域をアクセスしてい
るモジュールが領域のアクセスを終えたあと保護状態を
元に戻し忘れた場合など、タスク毎に積算された時間が
ある一定時間を超えると、管理テーブル一時変更手段4
0103に通知を行い、アクセス許可状態にした領域の
アクセスをもとの状態に戻す。
【0065】40105は不正アクセス検知手段でメモ
リ保護管理テーブル40101の状態から不正アクセス
の検知を行う。
【0066】40106は条件変更通知手段であり時間
管理手段40104により管理テーブル一時変更手段4
0103の動作が行われた場合にそのことを外部に知ら
せる。
【0067】次に、本実施形態がどのような動作を行う
かを図14、図15に基づき説明する。本実施形態では
A,Bという2つのタスクが動作している状態を想定し
ている。なお、タスクAおよびB以外のタスクは存在し
ないか、他のタスクの影響は考えないとする。また2つ
のタスクは領域Xを共有するものとする。
【0068】初期状態ではタスクAは領域X40302
に読み込みの権利だけがあり、タスクBは領域X403
04にはアクセスできない状態であるとする。この状態
では共有領域の半固定アクセス保護状態は図15に示す
40401,40402のようになる。
【0069】また、一時アクセス保護状態は読み出し側
40403、書き込み側40404とも0である。ここ
でタスクAが共有領域X40302に書き込みを行う必
要が生じたとする。このままの保護状態では共有領域X
40302に書き込みを行うと不正アクセスとなるた
め、タスクAは管理テーブル一時変更手段40103に
共有領域X40302の読み書き許可を得ようとする。
【0070】管理テーブル一時変更手段40103は、
メモリ保護管理テーブル40101を変更し、読み書き
可能状態にする。実際には、管理テーブル一時変更手段
40103は、テーブル選択ポインタ40102で示さ
れているメモリ保護管理テーブル40101の一時アク
セス保護状態の読み込みビット40403および書き込
み側ビット40404を1にセットする。
【0071】そのため、書き込み許可を示すOR回路の
出力40406は1となり、書き込みが許可される。同
時に時間管理手段40104は管理テーブル一時変更手
段40103によりタスクAのメモリ保護管理テーブル
40101が変更されたことを知ることでタスクAが利
用している時間の積算をはじめる。
【0072】以上によりタスクAは共有領域X4030
2への読み書き込み許可を得る。このときタスクがタス
クBに切り替わってもテーブル選択ポインタがタスクB
用のメモリ保護管理テーブル40101を指すため、タ
スクBが以前に共有領域X40306への読み書き許可
を得ていない限りタスクBの領域X40306に関する
アクセスは不許可のままである。このためタスクBが誤
って領域X40306をアクセスしても不正アクセスと
して検知が行われる。
【0073】一方、タスクAで領域X40305でのア
クセスが終了したあと、もう一度管理テーブル変更手段
40103を利用して書き込みを不許可にする。管理テ
ーブル一時変更手段40103は、実際にはメモリ保護
管理テーブル40101の一時アクセス保護状態の読み
込み側40403および書き込み側40404を0にセ
ットする。これにより以後タスクAで誤って領域X40
307への書き込みが行われても不正アクセスとして検
知が行われる。ただし、半固定アクセスの読み込み許可
ビット40401は1のままなので読み込みは許可され
ている。
【0074】もしタスクAが領域X40305のアクセ
ス状態を変更し忘れた場合、一時間管理手段40104
のタスクAの積算時間がある一定値を超えると時間管理
手段40104は管理テーブル一時変更手段40104
を利用してタスクAの共有領域X40305へのアクセ
スを不許可にすると共に、条件変更通知手段40106
により外部に条件が成立してアクセス状態が変更された
ことを通知する。
【0075】このような第4実施形態により、複数のタ
スク毎にメモリ保護管理テーブルを設定して個別のメモ
リアクセス制御を行うことができるとともに、共有領域
へのアクセスの許可、不許可状態を変更して緻密なアク
セス制御を行うことが可能となる。また、アクセスの許
可、不許可状態を変更した場合でも、時間管理手段40
104によって一定時間経過した後は必ず元のアクセス
許可、不許可状態に戻るため、不正なアクセス許可状態
を的確に回避できるようになる。
【0076】
【発明の効果】以上説明したように、本発明によれば次
のような効果がある。すなわち、不正メモリアクセスに
対するバグの発見が容易になり、製品でのエラーの特定
を正確にすることが可能となる。これにより、ユーザヘ
のエラー表示が正確となり、ユーザが機能を拡張したと
きの問題が起こりにくくなる。また、エラーの修正を早
期に行うことが可能となる。さらに、エラーを起こした
モジュールを特定できるため、そのモジュールの機能だ
けを停止または削除することで製品全体が停止すること
を防止できる。特に、新しい機能の導入もしくはソフト
ウェアのバージョンアップ時にダイアグ動作として検証
することで稼動時のシステムの異常を防ぐことが可能と
なる。
【図面の簡単な説明】
【図1】 本実施形態に係る情報処理装置を説明するシ
ステム構成図である。
【図2】 メモリマップの例を示す模式図である。
【図3】 各プログラムの動作フローチャートである。
【図4】 メモリ保護制御装置の具体例を説明する図で
ある。
【図5】 プログラムカウンタを説明する概略図であ
る。
【図6】 変換後のメモリマップの例を説明する模式図
である。
【図7】 変換表の例を説明する模式図である。
【図8】 第2実施形態の実現例を説明する模式図であ
る。
【図9】 第3実施形態を説明する模式図である。
【図10】 メモリ保護管理テーブルの構成例を説明す
る模式図である。
【図11】 第3実施形態の動作を説明する模式図であ
る。
【図12】 第4実施形態を説明する模式図である。
【図13】 メモリ保護管理テーブルの構成例を説明す
る模式図である。
【図14】 第4実施形態の動作を説明する模式図(そ
の1)である。
【図15】 第4実施形態の動作を説明する模式図(そ
の2)である。
【符号の説明】
10101…CPU、10102…メモリ保護制御装
置、10103…メモリ、10104…バス、1010
5…制御線
───────────────────────────────────────────────────── フロントページの続き (72)発明者 佐藤 浩一 神奈川県海老名市本郷2274番地 富士ゼロ ックス株式会社海老名事業所内 Fターム(参考) 5B017 AA07 BB00 CA01 CA15 5B042 GA23 GA33 GB05 JJ15 JJ47 JJ49 KK01 KK13 LA20 MB05 MC17 NN01 5B098 AA03 GA02 GA04 GD21 JJ01 JJ08

Claims (16)

    【特許請求の範囲】
  1. 【請求項1】 所定のプログラムを実行するCPUと、 前記CPUで実行するプログラムおよびそのプログラム
    で使用するデータを格納するメモリと、 前記CPUで実行するプログラムが前記メモリに対して
    不正アクセスしたか否かを判断するメモリ保護制御手段
    とを備えることを特徴とする情報処理装置。
  2. 【請求項2】 前記メモリ保護制御手段は、 前記メモリのアドレス空間に対してアクセス制御を行う
    アクセス制御手段と、 前記アクセス制御手段によるアクセス制御に反して前記
    プログラムが行う前記メモリへの不正アクセスを検知す
    る不正アクセス検知手段と、 前記不正アクセスを行ったプログラムを特定するモジュ
    ール特定手段とを備えることを特徴とする請求項1記載
    の情報処理装置。
  3. 【請求項3】 前記アクセス制御手段は、前記メモリの
    アドレス空間とそこにアクセスするための特別なアドレ
    ス空間とを固定的にもつことを特徴とする請求項2記載
    の情報処理装置。
  4. 【請求項4】 前記モジュール特定手段は、プログラム
    の実行中の命令におけるアドレスを利用して不正アクセ
    スを行ったプログラムを特定することを特徴とする請求
    項2記載の情報処理装置。
  5. 【請求項5】 前記アクセス制御手段は、アドレス変換
    機能を備えていることを特徴とする請求項2記載の情報
    処理装置。
  6. 【請求項6】 前記アドレス変換機能は、MMU(Memo
    ry Management Unit)を用いることを特徴とする請求項
    5記載の情報処理装置。
  7. 【請求項7】 前記メモリ保護制御手段は、 並列実行単位毎にアクセス制御を行うアクセス制御手段
    と、 前記アクセス制御手段による並列実行単位毎のアクセス
    制御を任意の時点で一時的に設定変更する設定変更手段
    と、 前記アクセス制御手段によるアクセス制御に反して前記
    プログラムが行う前記メモリへの不正アクセスを検知す
    る不正アクセス検知手段と、 所定の条件を満たした場合に前記設定変更手段によるア
    クセス制御の設定変更を一時的に元に戻す条件復帰手段
    とを備えることを特徴とする請求項1記載の情報処理装
    置。
  8. 【請求項8】 前記条件復帰手段によりアクセス制御の
    設定変更が一時的に元に戻った際にその旨を通知する条
    件復帰通知手段を備えることを特徴とする請求項7記載
    の情報処理装置。
  9. 【請求項9】 前記条件復帰手段は、前記CPUの利用
    時間が一定時間に達した場合に前記アクセス制御の設定
    変更を一時的に元に戻すことを特徴とする請求項7記載
    の情報処理装置。
  10. 【請求項10】 前記条件復帰手段は、前記並列実行単
    位毎のCPU利用時間が一定時間に達した場合に前記ア
    クセス制御の設定変更を一時的に元に戻すことを特徴と
    する請求項7記載の情報処理装置。
  11. 【請求項11】 前記条件復帰手段は、前記メモリに対
    する一定回数のアクセスが行われた場合に前記アクセス
    制御の設定変更を一時的に元に戻すことを特徴とする請
    求項7記載の情報処理装置。
  12. 【請求項12】 前記メモリ保護制御手段は、 並列実行単位毎にアクセス制御を行うアクセス制御手段
    と、 前記アクセス制御手段による並列実行単位毎のアクセス
    制御を任意の時点で一時的に設定変更する設定変更手段
    と、 前記アクセス制御手段によるアクセス制御に反して前記
    プログラムが行う前記メモリへの不正アクセスを検知す
    る不正アクセス検知手段と、 所定の条件を満たした場合に前記設定変更手段によるア
    クセス制御状態を変更する条件付変更手段とを備えるこ
    とを特徴とする請求項1記載の情報処理装置。
  13. 【請求項13】 前記条件付変更手段によりアクセス制
    御状態の変更が行われた旨を通知する条件復帰通知手段
    を備えることを特徴とする請求項12記載の情報処理装
    置。
  14. 【請求項14】 前記条件付変更手段は、前記CPUの
    利用時間が一定時間に達した場合に前記アクセス制御状
    態を変更することを特徴とする請求項12記載の情報処
    理装置。
  15. 【請求項15】 前記条件付変更手段は、前記並列実行
    単位毎のCPU利用時間が一定時間に達した場合に前記
    アクセス制御状態を変更することを特徴とする請求項1
    2記載の情報処理装置。
  16. 【請求項16】 前記条件付変更手段は、前記メモリに
    対する一定回数のアクセスが行われた場合に前記アクセ
    ス制御状態を変更することを特徴とする請求項12記載
    の情報処理装置。
JP2000277942A 2000-09-13 2000-09-13 情報処理装置 Pending JP2002091826A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2000277942A JP2002091826A (ja) 2000-09-13 2000-09-13 情報処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000277942A JP2002091826A (ja) 2000-09-13 2000-09-13 情報処理装置

Publications (1)

Publication Number Publication Date
JP2002091826A true JP2002091826A (ja) 2002-03-29

Family

ID=18763182

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000277942A Pending JP2002091826A (ja) 2000-09-13 2000-09-13 情報処理装置

Country Status (1)

Country Link
JP (1) JP2002091826A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009042971A (ja) * 2007-08-08 2009-02-26 Panasonic Corp リアルタイムウォッチ装置及びその方法
US9108823B2 (en) 2010-03-12 2015-08-18 Mitsubishi Electric Corporation Elevator safety control device

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009042971A (ja) * 2007-08-08 2009-02-26 Panasonic Corp リアルタイムウォッチ装置及びその方法
US9108823B2 (en) 2010-03-12 2015-08-18 Mitsubishi Electric Corporation Elevator safety control device

Similar Documents

Publication Publication Date Title
JP4519738B2 (ja) メモリアクセス制御装置
JP6481900B2 (ja) ハードウェア構成レポーティング用の装置、ハードウェア構成アービトレーションの方法、プログラム、機械可読記録媒体、及び、ハードウェア構成アービトレーション用の装置
US6012154A (en) Method and apparatus for detecting and recovering from computer system malfunction
JP4249779B2 (ja) デバイス制御装置
EP3070604B1 (en) Method and apparatus for accessing physical resources
EP3770765B1 (en) Error recovery method and apparatus
US8516298B2 (en) Data protection method for damaged memory cells
JP2018523201A (ja) ファームウェア関連イベント通知
CN105938460B (zh) 存储器管理
US7523229B2 (en) Memory protection during direct memory access
US10229077B2 (en) Method for data transfer between real-time tasks using a DMA memory controller
US9652348B2 (en) Debugging in a data processing apparatus
US9753870B2 (en) Hardware monitor with context switching and selection based on a data memory access and for raising an interrupt when a memory access address is outside of an address range of the selected context
JP2021507361A (ja) 間接アクセスメモリコントローラ用のメモリ保護装置
US7107398B2 (en) Changing a mode of a storage subsystem in a system
CN117234729B (zh) 动态内存保护方法、装置、计算机设备及存储介质
US7536694B2 (en) Exception handling in a multiprocessor system
JP5716824B2 (ja) マルチコアプロセッサシステム
JP2018067047A (ja) 制御装置
CA2551045C (en) Input-output control apparatus, input-output control method, process control apparatus and process control method
CN115576734A (zh) 一种多核异构日志存储方法和系统
JP2002091826A (ja) 情報処理装置
US5652837A (en) Mechanism for screening commands issued over a communications bus for selective execution by a processor
US20010049794A1 (en) Write protection software for programmable chip
JP5920509B2 (ja) コントローラの制御プログラム、およびコントローラの制御方法