JPH04322343A - メモリアクセスのトレ−ス方式 - Google Patents

メモリアクセスのトレ−ス方式

Info

Publication number
JPH04322343A
JPH04322343A JP3092129A JP9212991A JPH04322343A JP H04322343 A JPH04322343 A JP H04322343A JP 3092129 A JP3092129 A JP 3092129A JP 9212991 A JP9212991 A JP 9212991A JP H04322343 A JPH04322343 A JP H04322343A
Authority
JP
Japan
Prior art keywords
access
trace
memory
instruction
tracing
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
JP3092129A
Other languages
English (en)
Inventor
Kenji Ogawa
賢治 小川
Satoshi Nakada
聡 中田
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP3092129A priority Critical patent/JPH04322343A/ja
Publication of JPH04322343A publication Critical patent/JPH04322343A/ja
Pending legal-status Critical Current

Links

Landscapes

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

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、メモリ保護機構を有す
る計算機システムにおけるメモリアクセストレース方式
に関するものである。
【0002】
【従来の技術】図5はMaurice  J.Bach
著のUNIXカーネルの設計に示された従来のメモリ管
理機構の一例を示すシステムブロック図である。図5に
おいて、1は命令を実行する命令処理部、2は命令がメ
モリアクセスを行う時、後記のメモリ管理ユニットでこ
のアクセスが不正即ち保護例外と判定された場合に命令
処理部1を制御する処理制御部、4は命令処理部1がア
クセスする仮想アドレスを受けてこのアクセスの可否を
判断し、可なら同仮想アドレスを実アドレスに変換し、
否なら処理制御部2に制御を渡すメモリ管理ユニット、
5は実メモリを装備しているメモリユニットである。次
に図6を説明する。図6は図5のシステムブロック図中
のメモリ管理ユニット4が取り扱う3つ組のレジスタよ
りなるデータ表とページ表を示し、これらによってプロ
グラムの実行単位であるプロセスがアクセスする仮想ア
ドレスとメモリユニット5上の実メモリアドレスとの対
応付けがなされる。11はレジスタにより構成されるデ
ータ表である。同データ表において、カーネル用及びユ
ーザ用の各レジスタ3つ組を構成する1番目のレジスタ
はページ表を格納する実メモリ上のアドレスを示し、2
番目のレジスタは、レジスタ3つ組の各セットが指定す
る領域の開始仮想アドレスを示し、3番目のレジスタは
ページ表内のページ数と保護即ちアクセス許可の種別(
読み込み専用、読み書き用)を示す。この例では、デー
タ表11内は、カーネル用レジスタ3つ組1、カーネル
用レジスタ3つ組2、カーネル用レジスタ3つ組3の3
セットのカーネル用3つ組レジスタと、ユーザ用レジス
タ3つ組1、ユーザ用レジスタ3つ組2、ユーザ用レジ
スタ3つ組3の3セットのユーザ用3つ組レジスタによ
り構成される。また12はデータ表11と対応するユー
ザプロセス(計算機のプログラム実行単位を以下プロセ
スと呼ぶ。)領域ページ表、13は同様にカーネル領域
ページ表で双方共メモリユニット5上にある。
【0003】次に動作について説明する。従来のシステ
ムではシステムの中枢に位置しシステム全体を管理する
カーネル領域とユーザプログラムが動作する領域または
それ以上に階層化してユーザプログラムの不正なコード
等によってカーネル領域が破壊されないように保護機構
を実現している。この従来例ではシステムは現在実行さ
れようとしているプロセスのプログラムコードがカーネ
ルモード(特権モード)かあるいはユーザモードかによ
ってメモリ管理ユニット4にある3つ組レジスタや、こ
れらに対応するユーザプロセス領域/カーネル領域ペー
ジ表12、13などを使用してアクセスを許可するかど
うかを制御する保護機構を実現している。例えば、現在
実行されようとしているプロセスのプログラムコードが
、ユーザモードなら、システムは、対応するユーザ用レ
ジスタ3つ組とユーザプロセス領域ページ表12とをメ
モリ管理ユニット4にロードし、同時にカーネル用レジ
スタ3つ組の保護をアクセス禁止とすることで保護機構
を実現しカーネル領域のアクセスを禁止する。ユーザプ
ロセスの実行が開始され、メモリ管理ユニット4に対し
、ユーザプロセスがアクセスする仮想アドレスが送信さ
れると、メモリ管理ユニット4は3セットのユーザ用レ
ジスタ3つ組の中から、該仮想アドレスと各3つ組を構
成する2番目のレジスタが保持するプロセスの開始仮想
アドレスと3番目のレジスタが保持するユーザプロセス
領域内のページ数によって該仮想アドレスに対応するユ
ーザレジスタ3つ組の1セットを選択する。もし、該仮
想アドレスに対応するユーザレジスタ3つ組がない場合
は保護例外を発生させて処理制御部2に制御を渡す。 選択されたユーザ用レジスタ3つ組の3番目のレジスタ
が保持する保護の情報によりメモリ管理ユニット4は該
仮想アドレスのアクセス権の有無を検出する。送られた
仮想アドレスを含むユーザプロセス領域に対するアクセ
ス権があれば、メモリ管理ユニット4はメモリユニット
5よりロードした該当のユーザプロセス領域ページ表1
2によって該ページ表内の当該プロセス開始実アドレス
、当該仮想アドレスと当該プロセスの開始仮想アドレス
との変位、ページ数をもとに実アドレスを計算しメモリ
ユニット5にアクセスする。また、送られた仮想アドレ
スに対するアクセス権がない時は、メモリ管理ユニット
4は保護例外を処理制御部2に伝え、実行中のプロセス
に対し、例えば強制終了などを行う。また、現在実行さ
れようとしているプロセスのプログラムコードが、カー
ネルモードなら、システムは、既に述べた様なカーネル
用レジスタ3つ組への操作によりカーネル領域のアクセ
スを許可するようメモリ管理ユニット4に伝える。カー
ネルモードの実行コードがアクセスする仮想アドレスを
メモリ管理ユニット4に伝える。前記ユーザモードでの
仮想アドレスへのアクセスの場合と同様の要領でメモリ
管理ユニット4は、カーネル領域ページ表13とデータ
表11を基に、実アドレスを計算し、メモリユニット5
へアクセスする。
【0004】
【発明が解決しようとする課題】従来の技術では、実行
モードの異なるメモリ保護違反を検出することおよび、
異なるモード間のアクセスを管理することは可能である
。しかし、例えば開発中のプログラムコードが、同一実
行モード内の領域に不正なアクセスを行うような場合、
この種のバグの発見は極めて困難であるという問題点が
あった。
【0005】本発明は、上記のような問題点を解消する
ためになされたもので、同一の実行モード内でのメモリ
アクセストレース機構を実現することを目的としている
【0006】
【課題を解決するための手段】本発明に係るメモリアク
セスのトレース方式はメモリ保護領域の設定/解除をす
る手段とトレース種別(参照のみ、書き込みのみ、参照
書き込み双方のトレースなど)を指定する手段とその指
定に基いてトレースを行う手段により、同一実行モード
内でのメモリ保護領域アクセスのトレースを行う。
【0007】トレースはメモリ領域に対する保護の種別
を設定/解除する手段により当該メモリ保護領域へのア
クセスを禁止し、同領域内のアドレスのアクセス時にア
クセスの保護例外を発生させそのトレースを行った(第
一段階)後、同メモリ保護領域のアクセス禁止を解除し
て実際に当該実行モードのアクセス権をチェック後メモ
リアクセス(第2段階)を行う。
【0008】
【作用】本発明におけるメモリアクセスのトレース方式
はメモリ保護領域の設定/解除をする手段とトレース種
別を指定する手段とトレースを行う手段により、同一実
行モードでのメモリ保護領域アクセスに対し、所望のト
レースを行う。
【0009】
【実施例】
実施例1.以下、この発明の一実施例を図を参照して説
明する。図1は本発明の一実施例を示すシステムブロッ
ク図である。図1において、1は命令処理部、2は処理
制御部、3はトレース指示テーブルで命令処理部1と処
理制御部2とで共通に扱う仮想アドレスアクセスのトレ
ース指示情報を保持し、その構成は図2により後述する
。5はメモリユニットである。トレース指示テーブル3
以外は図5に同一符号を付した従来のそれらと同一或い
は相当部分であるため説明は省略する。
【0010】メモリ管理ユニット4は実行モードに基づ
いたアクセス権に関する情報を前記のデータ表11に保
持しており命令処理部1から仮想アドレスを受信し、既
に述べた要領でデータ表11により同仮想アドレスのア
クセス権の有無を判定し、有の仮想アドレスならデータ
表11、ユーザプロセス/カーネル領域ページ表12、
13により実アドレスへの変換を行い、実アドレスをメ
モリユニット5に送信しアクセスを行う。前記データ表
11及びユーザプロセス/カーネル領域ページ表12、
13などの変換テーブル内にあり、アクセス権のない仮
想アドレスならメモリ管理ユニット4は処理制御部2へ
割込み信号を出力し、仮想アドレスとそれに対応する実
アドレスを送出する。ユーザプロセス/カーネル領域ペ
ージ表12、13内にない仮想アドレスなら同様に仮想
アドレスのみ送出する。これらの動作はトレース指示テ
ーブル3を用いて命令処理部1と処理制御部2間での情
報交換により行う。トレース指示テーブル3をシステム
に1つ用意するがその構成は図2に示す通りである。以
下図2を使ってトレースを説明する。図2は図1のトレ
ース指示テーブル3の構成を示す。図2のトレース指示
テーブル構成6において、60はビット0でシステムの
トレース機能の有効ビットを示しトレース有効が1、無
効が0としこのビットにより本トレース機能全体のマス
ク即ちトレース機能の着脱を行うことができる。61の
ビット1はトレース指示ビットで例えばプログラム中で
オンオフすることによってプログラムの部分的なトレー
スが可能であり、1がトレース有効で、0がトレース無
効である。62はビット2でトレース中ビットであり処
理制御部2が、トレース中による故意のメモリ保護エラ
ーか、実際の当該実行モードでのメモリ保護エラーかど
うかを判別するためのビットである。63のビット3と
ビット4はトレース種別を示し0で書き込みと参照をト
レースし、1で参照のみ、2で書き込みのみのトレース
を行う。65のビット5は、命令種別ビットで、0で参
照、1で書き込みを示す。66のビット6からビットk
は、命令実行時のプログラムカウンタで長さは、計算機
に依存する。67のビットk+1からビットnは、命令
実行時のシステムで定義されたプロセス番号で長さはシ
ステムに依存する。
【0011】次に、トレース動作を、図1、図2及び図
3、図4のフローチャートを用いて説明する。図3はト
レース処理における命令処理部1のフローチャート、図
4は処理制御部2のフローチャートである。まず図3に
おいて、図1の命令処理部1で発生した命令が、メモリ
アクセス命令かどうかを判別し、(ステップ100。 尚、図上ではステップをSと表示。以下同様)メモリア
クセス命令以外はトレース処理を行わない(ステップ1
14)。ステップ101で、図2のトレース指示テーブ
ル6のトレース機能有効ビット60によりシステムがト
レースを有効としているかをチェックする。もし無効な
ら通常のメモリアクセス命令を行う(ステップ112)
。また、ステップ102では、現在行われているコード
がトレース対象中かどうかを示すトレース指示ビット6
1をチェックし、トレース対象ではない場合は、通常の
メモリアクセスを行う(ステップ112)。
【0012】次に、トレース指示テーブル構成6のトレ
ース種別63を取得し(ステップ103)、行おうとし
ている命令とトレース種別が合致せずトレースの必要が
ない場合は、通常のメモリアクセスを行う(ステップ1
12)。ステップ105では図1の処理制御部2にトレ
ース用の保護例外を伝えるためにトレース指示テーブル
構成6内のトレース中ビット62をオンにする。次にス
テップ106で命令の種別(メモリ書き込みなら1、メ
モリ参照なら0)、実行時のプログラムカウンタ、実行
プロセスの番号を命令種別ビット65、プログラムカウ
ンタ66、プロセス番号67にそれぞれ格納する。次に
図1のメモリ管理ユニット4のデータ表11へ、同一実
行モード内のアクセスを禁止するよう伝え(ステップ1
07)、仮想アドレスを送信する(ステップ108)。 メモリ管理ユニット4では、送られた仮想アドレスがア
クセス可能かどうかを前記図6の従来技術と同様の要領
でデータ表11によりチェックしアクセス可能ならカー
ネル/ユーザプロセス領域ページ表12、13により実
アドレスに変換して図1のメモリユニット5へ送信する
。もしアクセス不可能なら処理制御部2へエラーを伝え
る。
【0013】ステップ109は処理制御部2の処理であ
り図4を用いて説明する。図4のステップ120はメモ
リ管理ユニット4が実行した結果即ち例えば命令処理部
1からの仮想アドレスに対するアクセスが許可されてい
るか否かを図6のデータ表11により判定した結果に基
づく分岐処理である。例えば現在実行している実行モー
ドより低いレベルの実行モードへのメモリアクセスが許
可されているシステムでは保護例外は発生しない。アク
セスが許可されていないエラーであればステップ121
に進み、エラーでなければS109の処理を終了する。 ステップ121は、トレース指示テーブル構成6内のト
レース中ビット62をチェックし、このビットがオンな
らトレースのために故意に保護例外をおこしていること
を示し,命令種別ビット65と命令実行時のプログラム
カウンタ66、命令実行時のプロセス番号67及びメモ
リ管理ユニット4より送られた仮想アドレス、実アドレ
スとからトレースデータを作成する(ステップ122か
ら123)。そして、トレース中ビット62をオフにし
てトレースの終了を命令処理部1に伝える(ステップ1
24)。
【0014】再び図3の命令処理部1の処理に戻る。ス
テップ110では、トレース指示テーブル構成6の中の
トレース中ビット62をチェックし、トレースが終わっ
たかどうかを判断する。もし、オンならエラーではなか
ったこと、即ちスッテップ120で説明したように現在
の実行モードより低いレベルの実行モードへのアクセス
が許可されたことを意味し、この場合は、トレース中ビ
ット62をオフにして終了する。もし、トレース中ビッ
ト62がオフなら、メモリ管理ユニット4のデータ表1
1へ同一実行モード内のアクセス許可の送信を行い(ス
テップ111)、仮想アドレスをメモリ管理ユニット4
に再出力する(ステップ112)。メモリ管理ユニット
4では、送られた仮想アドレスがアクセス可能かどうか
を図6の従来技術のデータ表11と同様の要領で、チェ
ックしアクセス可能なら実アドレスに変換して図1のメ
モリユニット5へ送信する。もしアクセス不可能なら処
理制御部2へ当該実行モードでの保護例外の発生を伝え
る。
【0015】そして、再びステップ113より処理制御
部2へ入り、図4のステップ120でエラーの判定を行
う。ここで、エラーでなければ終了する。もしここでエ
ラーなら前記のS107、S108で故意に発生させた
保護例外ではなく、当該実行モードでのメモリ保護例外
であるのでステップ121へ進み、ここではトレース中
ビット62は、オフなのでメモリ保護例外処理、例えば
プロセスの強制終了等の処理を行う(ステップ125)
【0016】図2のトレース指示テーブル構成6のトレ
ース機能有効60により本トレース機能の着脱を行うこ
とは前記した通りである。これにより例えば不正アクセ
スのないことを確認后はトレース機能を無効とすること
ができ、システムの実運用に際しては本トレース機能を
無効にしトレースによるオーバヘッドの問題を解消する
ことができる。
【0017】尚、上記実施例ではトレース対象を、当該
プログラムの実行モード内のメモリアクセス領域とし、
当該実行モードでのアクセスの可否を図6におけるデー
タ表11のレジスタ3つ組の保持する保護機能を設定/
解除することによりトレース情報を得る例を示したが、
当該プログラムの実行モードにてアクセス可能な、より
広範な領域、例えば低位レベルの実行モードのメモリア
クセス領域に対するアクセスもトレース対象として、本
発明を実施してもよく、低位レベルのアクセス領域の保
護を図6におけるデータ表11内のレジスタ3つ組の保
持する保護機能を設定/解除することにより、上記実施
例と同様の効果を奏する。
【0018】
【発明の効果】以上説明したように本発明に係わるメモ
リアクセスのトレース方式は、ある実行モードで動作す
るプログラムコードが、同一実行モードにあるメモリア
クセスする様子をトレースでき、またプログラムコード
でトレースの範囲を指定できるため、例えばデバッグ過
程にあるプログラムコードの不具合によって起こる不正
な書き込み等を早期に発見できる効果がある。
【図面の簡単な説明】
【図1】本発明の1実施例を示すシステムブロック図

図2】本発明の1実施例で用いた図1のトレース指示テ
ーブル構成図
【図3】図1の命令処理部における処理のフローチャー
ト図
【図4】図1の処理制御部における処理のフローチャー
ト図
【図5】従来のメモリ管理機構を示すシステムブロック
【図6】従来のメモリ管理機構を示すデータ図
【符号の説明】
1  命令処理部 2  処理制御部 3  トレース指示テーブル 4  メモリ管理ユニット 5  メモリユニット 6  トレース指示テーブル構成 60  トレース機能有効ビット 61  トレース指示ビット 62  トレース中ビット 63  トレース種別 65  命令種別ビット 66  命令実行時のプログラムカウンタ67  命令
を実行のプロセス番号 11  データ表 12  ユーザプロセス領域ページ表 13  カーネル領域ページ表

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】  カーネルモードとユーザモード或いは
    これら以外のモードを含めた計算機実行モードの任意の
    1つのモードにおけるメモリ領域保護において、メモリ
    保護領域に対する保護の種別を設定/解除する手段と、
    前記メモリ保護領域へのアクセス情報を取得するトレー
    スの種別を指定する手段と、その指定に基づいてトレー
    スをする手段とから構成され、前記メモリ保護領域への
    アクセスのトレースに当たり、先ず第一段階で前記保護
    の種別を設定/解除する手段により当該メモリ保護領域
    へのアクセスを禁止して前記トレース種別を指定する手
    段並びにその指定に基づいてトレースをする手段により
    所望のアクセストレースを行い、第二段階では同様の手
    段により同メモリ保護領域へのアクセス禁止を解除して
    実際の当該実行モードのアクセス権をチェックしてメモ
    リアクセスを行うことを特徴とするメモリアクセスのト
    レース方式。
JP3092129A 1991-04-23 1991-04-23 メモリアクセスのトレ−ス方式 Pending JPH04322343A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP3092129A JPH04322343A (ja) 1991-04-23 1991-04-23 メモリアクセスのトレ−ス方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP3092129A JPH04322343A (ja) 1991-04-23 1991-04-23 メモリアクセスのトレ−ス方式

Publications (1)

Publication Number Publication Date
JPH04322343A true JPH04322343A (ja) 1992-11-12

Family

ID=14045829

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3092129A Pending JPH04322343A (ja) 1991-04-23 1991-04-23 メモリアクセスのトレ−ス方式

Country Status (1)

Country Link
JP (1) JPH04322343A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08166895A (ja) * 1994-12-12 1996-06-25 Nec Corp メモリ管理方法及び装置
JP2007140837A (ja) * 2005-11-17 2007-06-07 Toshiba Corp アドレストレース採取装置、方法、及びプログラム
GB2471482A (en) * 2009-06-30 2011-01-05 Nokia Corp Secure method of tracing software
JP2013109393A (ja) * 2011-11-17 2013-06-06 Toyota Motor Corp 情報処理装置およびメモリ保護装置の動作確認方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08166895A (ja) * 1994-12-12 1996-06-25 Nec Corp メモリ管理方法及び装置
JP2007140837A (ja) * 2005-11-17 2007-06-07 Toshiba Corp アドレストレース採取装置、方法、及びプログラム
GB2471482A (en) * 2009-06-30 2011-01-05 Nokia Corp Secure method of tracing software
JP2013109393A (ja) * 2011-11-17 2013-06-06 Toyota Motor Corp 情報処理装置およびメモリ保護装置の動作確認方法

Similar Documents

Publication Publication Date Title
EP0760975B1 (en) Guarded memory system and method
US7043616B1 (en) Method of controlling access to model specific registers of a microprocessor
US7130977B1 (en) Controlling access to a control register of a microprocessor
JPS6022377B2 (ja) アドレス制御方式
WO2003042839A2 (en) Memory management system and method providing linear address based memory access security
JPH08272625A (ja) マルチプログラム実行制御装置及び方法
JPS6134178B2 (ja)
JP2005512228A (ja) 強化されたメモリアクセスセキュリティを提供する、メモリに対するデバイスのアクセスを制御するシステムおよび方法
US4093987A (en) Hardware control storage area protection method and means
CA2551045C (en) Input-output control apparatus, input-output control method, process control apparatus and process control method
KR100791815B1 (ko) 컴퓨터 시스템 및 컴퓨터 시스템에서 인스트럭션을 실행하는 방법
JPH04322343A (ja) メモリアクセスのトレ−ス方式
JPS599937B2 (ja) 情報処理装置
JPS6074059A (ja) 記憶装置アクセス制御方式
JPH05173886A (ja) 書込み装置
JP3404354B2 (ja) インサーキットエミュレータ及び不正アクセス検出方法
JPH05289944A (ja) メモリ空間不正書き込みのデバッグ方式
JPS607819B2 (ja) 情報処理装置
JPH0546485A (ja) 記憶制御装置
JPS6074060A (ja) 記憶保護装置
JP2001142781A (ja) アドレス変換装置及びアドレス変換方法
JPS6095658A (ja) 仮想記憶制御方法
JPH042974B2 (ja)
JPH0384645A (ja) メモリ保護方式
JPS6138508B2 (ja)