JP3404354B2 - インサーキットエミュレータ及び不正アクセス検出方法 - Google Patents

インサーキットエミュレータ及び不正アクセス検出方法

Info

Publication number
JP3404354B2
JP3404354B2 JP2000101489A JP2000101489A JP3404354B2 JP 3404354 B2 JP3404354 B2 JP 3404354B2 JP 2000101489 A JP2000101489 A JP 2000101489A JP 2000101489 A JP2000101489 A JP 2000101489A JP 3404354 B2 JP3404354 B2 JP 3404354B2
Authority
JP
Japan
Prior art keywords
area
instruction
address
memory area
detecting
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.)
Expired - Fee Related
Application number
JP2000101489A
Other languages
English (en)
Other versions
JP2001282568A (ja
Inventor
美紀 森
Original Assignee
エヌイーシーマイクロシステム株式会社
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 エヌイーシーマイクロシステム株式会社 filed Critical エヌイーシーマイクロシステム株式会社
Priority to JP2000101489A priority Critical patent/JP3404354B2/ja
Publication of JP2001282568A publication Critical patent/JP2001282568A/ja
Application granted granted Critical
Publication of JP3404354B2 publication Critical patent/JP3404354B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Microcomputers (AREA)
  • Storage Device Security (AREA)
  • Debugging And Monitoring (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明はマイクロコンピュー
タを組込んだシステムのハードウエア、ソフトウエアの
デバッグに使用するインサーキットエミュレータに関
し、特に領域のアクセスシーケンスにより、アクセスを
許すか禁止するかを制御する機能に関する。
【0002】
【従来の技術】図10を参照すると、従来のインサーキ
ットエミュレータ1009はアクセス禁止領域の設定を
するマッピングメモリ1001を持っており、ノンマッ
ピングエリア指定すると、製品版のマイクロコンピュー
タと等価な動作をし、製品版のマイクロコンピュータを
組み込んだシステムのデバッグ、評価のために使用する
マイクロコンピュータであるエバリュエーションチップ
(以下、「エバチップ」という。)103がノンマッピ
ングエリアにリード/ライトしたとき又はノンマッピン
グエリアの命令を実行したときに、インサーキットエミ
ュレータ1009はマッピングメモリ1001の情報を
基に、エバチップ103に対しプログラム実行の停止を
する。
【0003】この従来技術では、以下の(1)〜(5)
に示すようなメモリのアクセス制限がある場合、不正な
アクセスの検出に不都合が生じる(図7参照)。 (1)IRAM(Internal RAM;内蔵RAM)からRO
Mへは、分岐命令や割込み、CALL命令で飛び込めな
い。 (2)IRAMからROMのリードはできない(IRA
M空間にある命令によりROM空間にあるデータをリー
ドできない)。 (3)ROMからIRAMへは分岐命令や割り込み、C
ALL命令で飛び込める。 (4)ROMからIRAMのリード/ライトはできる
(ROM空間にある命令によりIRAM空間にあるデー
タのリード/ライトができる)。 (5)ROMからROMのリードはできる(ROM空間
にある命令によりROM空間にあるデータのリードがで
きる)。
【0004】つまり特定領域ROMのデータの機密性が
問われるようなシステムの場合、特定領域ROMのデー
タを扱う者以外の者である第三者による書き替え可能な
特定領域IRAMから特定領域ROMへのアクセスを禁
止できるように、特定領域IRAM(領域A)から特定
領域ROM(領域B)へのアクセスを禁止する機能が必
要となる。
【0005】従来例では、フェッチ/リード/ライトの
アクセス方法を区別することが出来ないので、ある特定
領域に対しマッピングメモリ1001を使用したノンマ
ップメモリエリアの指定で、一律にアクセス禁止の設定
をすることになる。
【0006】また、不正アクセス検出にシーケンシャル
イベントを使用して検出してきた。従来のシーケンシャ
ルイベント検出の考え方を図8に示す従来のシーケンシ
ャルイベント検出概念図を参照し説明する。
【0007】マイクロプロセッサがA番地を実行した後
にB番地をアクセス(実行、リード又はライト)した場
合にインサーキットエミュレータはマイクロプロセッサ
に対しブレークをかけるものとする。つまり、マイクロ
プロセッサがA番地にある命令の実行によりB番地をリ
ード又はライトした場合、又は、マイクロプロセッサが
A番地にある命令を実行したタイミングの次の命令実行
タイミングでマイクロプロセッサがB番地にある命令の
実行をした場合にインサーキットエミュレータはマイク
ロプロセッサに対しブレークをかけるものとする。この
場合、1つの2段シーケンスを検出することが必要とな
る。また、A番地は、ある番地範囲にある複数の番地で
あり、A番地のための最小アドレスと最大アドレスによ
り定義される。B番地についても同様である。従って、
1段のイベントを生成するためには最小アドレスの為の
イベントレジスタと最大アドレスの為のイベントレジス
タが必要であり、ブレークをかけるための2段の場合は
4つのイベントレジスタが必要となる。
【0008】このための構成が図9に示したものであ
る。領域A実行アドレス検出回路201は領域Aにある
命令の実行を検出する。この検出結果は、領域B実行ア
ドレス検出回路921の論理積ゲート919、領域Bリ
ード/ライトアドレス検出回路922の論理積ゲート9
20に供給される。従って、領域B実行アドレス検出回
路921は、領域Aにある命令の実行が行われた命令実
行タイミングの次の命令実行タイミングで領域Bにある
命令の実行が行われたことをレジスタ227から出力す
る。また、領域Bリード/ライトアドレス検出回路92
2は、領域Aにある命令が実行される際に、領域Bのデ
ータのリード又はライトがあったことを示すための信号
をレジスタ228から出力するとともに、領域Aにある
命令が実行される際に、領域Bのデータのリード又はラ
イトがあったことを示す信号をレジスタ230から出力
する。論理和ゲート273は、領域Aにある命令の実行
が行われたタイミングの次の命令実行タイミングで領域
Bにある命令の実行が行われたとき、又は、領域Aにあ
る命令が実行される際に領域Bのデータのリード又はラ
イトがあったときに、ブレーク要求信号BRREQ11
3を出力する。
【0009】
【発明が解決しようとする課題】前記アクセス禁止機能
は、マッピングメモリを使った一律のアクセス禁止機能
の場合には次の問題がある。IRAM領域のプログラム
中にある命令のうち、ROM領域への分岐や、ROM領
域へのデータのリード/ライトのような、特定領域から
特定領域への特定アクセスの禁止が出来ない。
【0010】また、シーケンシャルイベントを使った場
合には次の問題がある。マイクロプロセッサがA番地に
ある命令を実行したタイミングの次の命令実行タイミン
グでB番地にある命令を実行したらマイクロプロセッサ
をブレークさせるが、A番地を実行した後にC番地にジ
ャンプした場合、ブレーク生成を最初からやりなおさな
ければならないことがある。この為、シーケンシャルイ
ベントによりブレークをかける方法においては、必ずキ
ャンセルイベントが必要となる。キャンセルイベント
は、C番地を実行したことを検出することにより生成す
る。キャンセルイベントを検出する為には、C番地領域
の最小アドレス及び最大アドレスを設定するので、2つ
のイベントレジスタが必要である。トータルで考える
と、A領域実行とB領域実行の為の上記の4つのイベン
トレジスタとこの2つのイベントレジスタを合わせた合
計6つのイベントレジスタが必要となる。
【0011】なお、B番地の実行とB番地のリード/ラ
イトアクセスを異なった系列で検出するとなると、B番
地へのリード/ライトアクセスを検出するためには、B
番地実行を検出するための2つのイベントレジスタとは
別に2つのイベントレジスタが必要である。
【0012】不正アクセス検出回路108を上記のシー
ケンシャルイベントの考え方で実現した場合の例を図9
のシーケンシャルイベントによる不正アクセス検出回路
に示す。領域A実行アドレス検出回路201の出力信号
を保持しておく領域A実行アドレス範囲結果保持レジス
タ229(後述)がリセット付きの領域A実行アドレス
範囲結果保持レジスタ917に替わり、領域A実行アド
レス範囲結果保持レジスタ917のリセット信号生成の
ため、命令実行用のキャンセル回路901とリード/ラ
イト用のキャンセル回路902が追加されている。レジ
スタ917の出力は、領域Aの命令が実行されたときか
らリセット信号916が入力されるまでハイとなる。キ
ャンセル回路901は、B番地以外の番地にある命令が
実行されたときにレジスタ913からハイレベルのパル
スを出力し、キャンセル回路902は、B番地以外の番
地にあるデータがアクセスされたときにレジスタ914
からハイレベルのパルスを出力する。2つのキャンセル
回路901、902のどちらか一方でイベント(実行イ
ベント又はリード/ライトイベント)を検出すると領域
Aの実行アドレスの範囲結果を保持するレジスタ917
をリセットすることになり、イベント検出を最初からや
り直さなければならないことになる。
【0013】本発明は、インサーキットエミュレータの
不正アクセス検出回路において、ある特定メモリ領域か
ら他の特定メモリ領域への特定のアクセス遷移を検出で
きると共に、セルフリセット機能を有した不正アクセス
検出方法を提供し、それを実現する不正アクセス検出回
路及びそれを備えるインサーキットエミュレータを小さ
い回路規模で提供することを目的とする。
【0014】
【課題を解決するための手段】本発明による不正アクセ
ス検出回路は、マイクロプロセッサが第1のメモリ領域
にある命令を実行したか否かを命令実行ごとに検出する
第1の検出手段と、前記マイクロプロセッサが第2のメ
モリ領域にある命令を実行したか否かをクロックごとに
検出する第2の検出手段と、前記マイクロプロセッサが
前記第2のメモリ領域のデータの書き込み又は読み出し
をしたか否かをリード/ライトアクセスごとに検出する
第3の検出手段と、前記マイクロプロセッサが前記第1
のメモリ領域にある命令を実行した命令実行タイミング
の次の命令実行タイミングで前記第2のメモリ領域にあ
る命令を実行したことを検出する第4の検出手段と、前
記マイクロプロセッサが前記第1のメモリ領域にある命
令を実行することに因り前記第2のメモリ領域のデータ
の書き込み又は読み出しをおこなったことを検出する第
5の検出手段と、前記第4の検出手段が真の信号を出力
したとき又は前記第5の検出手段が真の信号を出力した
ときに前記マイクロコンピュータを停止させるためのブ
レーク信号を生成する生成手段と、を備えることを特徴
とする。
【0015】また、本発明による不正アクセス検出回路
は、上記の不正アクセス検出回路において、前記第1の
検出手段は、命令実行アドレスが前記第1のメモリ領域
の最小アドレス以上であるか否かを検出する第1の比較
器と、前記命令実行アドレスが前記第1のメモリ領域の
最大アドレス以下であるか否かを検出する第2の比較器
と、前記第1の比較器の検出結果と前記第2の比較器の
検出結果の論理積をとる第1の論理積ゲートを備え、前
記第2の検出手段は、命令実行アドレスが前記第2のメ
モリ領域の最小アドレス以上であるか否かを検出する第
3の比較器と、前記命令実行アドレスが前記第2のメモ
リ領域の最大アドレス以下であるか否かを検出する第4
の比較器と、前記第3の比較器の検出結果と前記第4の
比較器の検出結果の論理積をとる第2の論理積ゲートを
備え、前記第3の検出手段は、データアクセスアドレス
が前記第2のメモリ領域の最小アドレス以上であるか否
かを検出する第5の比較器と、前記データアクセスアド
レスが前記第2のメモリ領域の最大アドレス以下である
か否かを検出する第6の比較器と、前記第5の比較器の
検出結果と前記第6の比較器の検出結果の論理積をとる
第3の論理積ゲートを備えることを特徴とする。
【0016】更に、本発明による不正アクセス検出回路
は、上記の不正アクセス検出回路において、前記第1の
検出手段、前記第2の検出手段及び前記第3の検出手段
のいずれも、ビット毎の判定手段と、全ビットの判定手
段による検出結果の論理積をとる論理積回路を備え、各
ビットの判定手段は、ビット一致検出回路及び前記ビッ
ト一致検出回路の出力が真であるとき又はマスクデータ
の対応ビットが真であるときにのみ出力を真とする論理
和回路を備えることを特徴とする。
【0017】更に、本発明による不正アクセス検出回路
は、上記の不正アクセス検出回路において、前記第4の
検出手段は、前記第1の検出手段による検出結果を次の
命令実行まで保持する手段を備え、前記第5の検出手段
は、前記第1の検出手段による検出結果を次の命令実行
まで保持する手段を備えることを特徴とする。
【0018】本発明によるインサーキットエミュレータ
は、上記の不正アクセス検出回路を備えることを特徴と
する。
【0019】本発明による不正アクセス検出方法は、マ
イクロプロセッサが第1のメモリ領域にある命令を実行
したか否かを命令実行ごとに検出する第1の検出ステッ
プと、前記マイクロプロセッサが第2のメモリ領域にあ
る命令を実行したか否かをクロックごとに検出する第2
の検出ステップと、前記マイクロプロセッサが前記第2
のメモリ領域のデータの書き込み又は読み出しをしたか
否かをリード/ライトアクセスごとに検出する第3の検
出ステップと、前記マイクロプロセッサが前記第1のメ
モリ領域にある命令を実行した命令実行タイミングの次
の命令実行タイミングで前記第2のメモリ領域にある命
令を実行したことを検出する第4の検出ステップと、前
記マイクロプロセッサが前記第1のメモリ領域にある命
令を実行することに因り前記第2のメモリ領域のデータ
の書き込み又は読み出しをおこなったことを検出する第
5の検出ステップと、前記第4の検出手段が真の信号を
出力したとき又は前記第5の検出手段が真の信号を出力
したときに前記マイクロコンピュータを停止させるため
のブレーク信号を生成する生成ステップと、を有するこ
とを特徴とする。
【0020】
【発明の実施の形態】[実施形態1]図1と図2を参照
して実施形態1の特徴を説明する。
【0021】本発明は、エバチップ103の外部に、ど
この領域からどこの領域にどのようなアクセスをしたか
を判断しアクセス禁止領域へのアクセスの判定をする不
正アクセス検出回路108を有しており、不正アクセス
検出回路108は、命令実行をする度、あるいはリード
/ライトをする度に、プログラムの実行履歴であるトレ
ース情報TRDAT112から不正アクセスの検出を行
い、プログラム実行をブレークさせる為の不正アクセス
検出信号をブレーク要求BRREQ113としてユーザ
システムのデバッグに使うエバチップ103の外部ロジ
ック入力端子に供給する構成になっている。
【0022】図2を参照すると、不正アクセス検出回路
108は、大きく分けて三つの比較ブロックにより構成
されている。三つのブロックとは、領域A実行アドレス
検出回路201、領域B実行アドレス検出回路202、
領域Bリード/ライトアドレス検出回路203である。
また、領域A実行アドレス検出回路201の出力と領域
B実行アドレス検出回路202の出力の論理積ゲート2
35による論理積、領域A実行アドレス検出回路201
の出力と領域Bリード/ライトアドレス検出回路203
の出力の論理積ゲート236による論理積に依って、そ
れぞれ領域Aにある命令の実行から不正アクセス領域
(領域B)にある命令の実行への遷移、領域Aにある命
令の実行からその命令の実行による不正アクセス領域
(領域B)へのリード/ライトへの遷移を検出する。
【0023】前述の通り不正アクセス検出は、エバチッ
プ103の外部回路である不正アクセス検出回路108
で対応する構成であり、かつ不正アクセス検出回路10
8の検出領域指定がプログラマブルである。この為、R
OMブロックアドレスが変更された時やROMブロック
が増えた時にもエバチップ103を作り直さずに、不正
アクセス検出回路108をゲートアレイやFPGAで作
り直したり、周辺チップ106やデバイスの品種情報フ
ァイルを取りかえるだけでインサーキットエミュレータ
の開発が可能である。ゆえに、インサーキットエミュレ
ータの開発期間が短縮され、開発コストの削減ができ
る。また、不正アクセス検出回路108は命令が実行さ
れる度にあるいはリード/ライトが起きる度にキャンセ
ルイベントを検出するので、条件が成立したイベントを
リセットするキャンセルイベント検出回路が必要で無く
不正アクセス検出回路108が簡単な回路になってい
る。
【0024】本発明は、どこの領域からどこの領域にど
のようなアクセスをしたのかを判断しアクセス禁止領域
の判定をする不正アクセス検出回路108、マイクロコ
ンピュータと等価な動作をするエバチップ103、エバ
チップ103が実行した命令実行アドレスやリード/ラ
イトアドレス等のトレース情報を記憶するトレースメモ
リ107、エバチップ103の初期化等を行なうホスト
コンピュータ105、ホストコンピュータ105とエバ
チップ103のインターフェースを行なうI/F部10
4、タイマやシリアル等のI/Oを有している周辺チッ
プ106、ユーザがデバッグするプログラムを置いてお
くプログラムメモリ102から構成される。
【0025】インサーキットエミュレータでは一般にユ
ーザが実際にシステムに組み込むマイクロコンピュータ
(以下「実チップ」という。)を周辺チップ106とし
て使用し、エバチップ103と周辺チップ106の2つ
のチップで実チップをエミュレーションする手法が用い
られる。本発明のインサーキットエミュレータも前記の
一般的な構成と同じ構成を取っている:図2を参照する
と、不正アクセス検出回路108は、以下の構成要素よ
りなる: a.領域Aにある命令を実行したか否かを判定する回路
である領域A実行アドレス検出回路201(第1の検出
手段)、 a−1. 領域Aにある命令を実行したことを命令実行
ごとに保持しておくフリップフロップ(以下、「フリッ
プフロップ」のことを「FF」という。)からなる領域
A実行アドレス範囲結果保持レジスタ229、 a−2. 命令が実行されたことを示す信号である命令
実行フラグ207をアドレス検出タイミングに合わせる
為の領域A命令実行フラグタイミング調整FF231、
232、 b.領域Bにある命令を実行したか否かを判定する回路
である領域B実行アドレス検出回路202(第2の検出
手段)、 c.領域Bのデータをリード/ライトしたか否かを判定
する回路である領域Bリード/ライトアドレス検出回路
203(第3の検出手段)、 c−1.領域Bのデータをリード/ライトしたか否かの
判定結果をリード/ライトアクセスごとに保持する領域
Bリード/ライトアドレス範囲結果アクセス判定レジス
タ230、 c−2. リード/ライトが行われたことを示す信号で
あるアクセスフラグ209をアドレス検出タイミングに
合わせる為の領域Bアクセスフラグタイミング調整FF
233、234、 d.領域Aにある命令を実行したタイミングの次の命令
実行タイミングで領域Bにある命令をジャンプなどによ
り実行したことを検出するANDゲート235(第4の
検出手段)、 e.領域Aにある命令を実行するのに際し、領域Bのデ
ータをリード/ライトしたことを検出するANDゲート
236(第5の検出手段)、 f.エバチップ103へのブレーク要求生成用ORゲー
ト237(生成手段)。
【0026】領域A実行アドレス検出回路201と領域
B実行アドレス検出回路202と領域Bリード/ライト
アドレス検出回路203の、アドレス保持及びアドレス
比較回路は全て同じであり、以下の構成要素よりなる:
各領域の最小アドレスを保持するためのレジスタ21
1、213、215、各領域の最大アドレスを保持する
ためのレジスタ212、214、216、エバチップ1
03が出力するトレース情報TRDAT112の内の実
行アドレス206が接続されたFF217、218、エ
バチップ103が出力するトレース情報TRDAT11
2の内のリード/ライトアドレス208が接続されたF
F219、アドレス比較回路220、221、222、
223、224、225、前記アドレス比較回路の比較
結果から指定アドレス範囲であることを判定する為のA
ND238、239、240、AND238、239、
240出力を保持しておくレジスタ226、227、2
28。
【0027】また、最小アドレス用のレジスタ211、
213、215と最大アドレス用のレジスタ212、2
14、216へアドレスを設定する為、ホストコンピュ
ータ105のアドレスデータバスであるPCAD111
が接続されている。
【0028】本実施形態の動作を図1に示すエバチップ
周辺ブロック図を参照し説明する。
【0029】先ず、ホストコンピュータ105から不正
アクセス検出回路108のレジスタへのアドレス書込み
について説明する。ホストコンピュータ105は周辺チ
ップ106が持っている領域Aや領域Bのアドレスに関
するデータをエバチップ103とアドレスデータバス1
10とI/F部104とPCAD111を介して読み出
し、不正アクセス検出回路108の領域A実行アドレス
検出回路201のレジスタ211、212に領域Aの最
小アドレスと最大アドレスを、領域B実行アドレス検出
回路202のレジスタ213、214と領域Bリード/
ライト検出回路203のレジスタ215、216に領域
Bの最小アドレスと最大アドレスを設定する。これは実
チップが不正アクセス検出する回路を既に有しており、
エバチップ103を介して読み出せることを利用してい
る。また、別の方法としてインサーキットエミュレータ
の制御ソフトが使用するデバイスの品種情報ファイルの
領域Aや領域Bのアドレスに関するデータを元に、ホス
トコンピュータ105が不正アクセス検出回路108の
前記各レジスタに不正アクセスの最小アドレスと最大ア
ドレスを設定しても良い。前述のデバイス品種情報ファ
イルは、ROM、RAMの最小アドレスや大きさ、内部
I/Oのアドレス、名称、初期値、リード/ライト可能
かどうか等、実チップ固有の情報ファイルである。
【0030】次にエバチップ103から出力されるトレ
ース情報TRDAT112のイメージを示す図3、トレ
ース情報イメージ図と不正アクセス検出タイミング例を
示す図4を参照し、不正アクセス検出タイミングについ
て説明する。トレース情報とは、エバチップ103が実
行した命令実行アドレスやリード/ライトアドレス等の
実行履歴の情報である。実行履歴情報は実行履歴を残す
メモリであるところのトレースメモリ107に書き込ま
れる。このトレース情報の例としては、図2の不正アク
セス検出回路実施形態における、命令実行アドレストレ
ース情報206、命令実行フラグトレース情報207、
アクセスアドレストレース情報208、アクセスフラグ
トレース情報209等が挙げられる。
【0031】不正アクセスが検出されるパターンは、
(1)領域Aにある命令を実行してから不正アクセス領
域Bの命令を実行しようとした場合、(2)領域Aにあ
る命令を実行する際に不正アクセス領域Bのリード/ラ
イトをしてしまった場合の二通りがある。
【0032】最初に(1)領域Aにある命令を実行して
から不正アクセス領域Bの命令を実行しようとした場合
の一例を説明する。
【0033】エバチップ103はジャンプ命令であると
ころの領域Aにある命令1をタイミング1(図4)でプ
ログラムフェッチする。
【0034】エバチップ103はタイミング9(図4)
で命令1のトレース情報を出力する。
【0035】図2の領域A実行アドレス検出回路201
のレジスタ217は、図4のタイミング9で出力された
トレース情報の中の、命令1の実行アドレス206をタ
イミング10(図4)で保持する。更に、タイミング1
0で、領域A実行アドレス検出回路201のコンパレー
タ220、221が命令1の実行アドレス範囲を比較
し、AND238が指定アドレス範囲内であるかを判断
する。
【0036】この時領域B実行アドレス検出回路202
は、プログラム実行アドレスが領域Aである為、領域B
実行アドレス検出信号Area−B_exe204(図
2)にインアクティブを出力する。そして次の命令2の
実行アドレスをレジスタ218に保持する。
【0037】レジスタ226がタイミング11(図4)
でアクティブなアドレス領域A実行アドレス検出信号A
rea−A_exe210(図2)を出力する。タイミ
ング11では、更に、領域B実行アドレス検出回路20
2のコンパレータ222、223が命令2の実行アドレ
ス範囲をAND239で検出する。
【0038】タイミング12(図4)で、次の命令が実
行されるまで領域A実行アドレス検出回路201の出力
を保持する命令実行フラグ207の制御によって、レジ
スタ229は領域A実行アドレス検出信号Area−A
_exe210を保持し、Hold_Area−A_e
xe210Bを出力し、レジスタ227は領域B実行ア
ドレス検出信号Area−B_exe204を出力す
る。また、AND235がHold_Area−A_e
xe210BとArea−B_exe204の論理積を
取り、OR237を通り、ブレーク要求であるBRRE
Q113をエバチップ103の外部ロジック入力端子に
入力する。
【0039】タイミング14で、エバチップ103はブ
レークする。
【0040】次に(2)領域Aから不正アクセス領域B
にリード/ライトをしてしまった場合について説明す
る。
【0041】エバチップ103はメモリをリードする命
令であるところの領域Aにある命令1をタイミング1
(図4)でプログラムフェッチする。
【0042】領域A実行アドレス検出回路201がHo
ld_Area−A_exe210Bを出力するまでの
挙動は(1)の場合と同様なので省略する。
【0043】図2の領域Bリード/ライトアドレス検出
回路203のレジスタ219は、図4のタイミング9で
出力されたトレース情報TRDATの中の、命令1のア
クセスアドレス208をタイミング10で保持する。領
域Bリード/ライトアドレス検出回路203のコンパレ
ータ224、225は、命令1により起こされたリード
アクセスのアドレスが、指定されたアクセスアドレスで
あるかを比較し、AND240でアクセスアドレスが範
囲内であるか検出する。
【0044】タイミング11でレジスタ228は領域B
リード/ライトアドレス検出信号Area−B_acs
205を出力する。
【0045】タイミング12で、領域Bリード/ライト
アドレス検出回路203の出力がリード/ライトである
ことを判定するアクセスフラグ209のタイミング調整
されたレジスタ230は領域Bリード/ライトアドレス
検出信号Area−B_acs205を保持し、Hol
d_Area−B_acs205Bを出力する。更に、
Hold_Area−A_exe210BとHold_
Area−B_acs205Bの論理積を取り、ブレー
ク要求BRREQ113をエバチップ103の外部ロジ
ック入力端子に入力する。
【0046】タイミング14で、エバチップはブレーク
する。
【0047】次に、領域A、領域B、領域Cの三つの領
域を設け、領域Aから領域Bをアクセスする不正アクセ
スの場合(領域Aにある命令を実行したタイミングの次
の命令実行タイミングで領域Bにある命令を実行する場
合及び領域Aにある命令を実行する際に領域Bのデータ
をライト又はリードする場合)と領域Aから領域Cに飛
び、次に、不正アクセス領域Bをアクセスする場合につ
いて説明する。まず、図6の「不正アクセスの場合」に
示す領域Aから領域Bへの直接のアクセスの場合は、前
述の説明の通り不正アクセスになる。次に不正アクセス
ではない場合について説明する。
【0048】ここでは既に、レジスタ229は領域A実
行アドレス検出信号Area−A_exeを保持し、H
old_Area−A_exe210Bを出力している
ものとする。この際、命令が実行されたことを示す命令
実行フラグ207をレジスタ229の直前のセレクタの
選択信号にすることによって、次の実行命令が来るまで
の間レジスタ229はHold_Area−A_exe
210Bをアクティブに保持する。
【0049】図6の「不正アクセスでない場合」のよう
に領域Aにある命令を実行したタイミングの次の命令実
行タイミングで領域Cにある命令を実行すると、領域A
実行アドレス検出回路201は領域Aでないと判定しA
rea−A_exe210をインアクティブにする。こ
の時命令実行フラグ207はアクティブなので、レジス
タ229の値が更新されHold_Area−A_ex
e210BはArea−A_exe210を受けてイン
アクティブとなる。つまり命令実行フラグ207によっ
て値の更新を制御することで、自動的に領域A実行アド
レスを検出したことをキャンセルしているのである。
【0050】この後に、領域Bにある命令を実行した
り、領域Bのデータをリード又はライトしても、Hol
d_Area−A_exe210Bがインアクティブと
なっている為、正常なアクセスと判断される。
【0051】ここでは、領域A、領域Bの二領域を例に
説明したが、領域が増えても領域の検出回路を増やすだ
けで対応可能である。
【0052】本実施形態では、領域Aにある命令の実行
と領域Bにある命令の実行と領域Bのデータのライト又
はリードをそれぞれ別の回路で検出する為、特定領域か
ら特定領域の、特定のアクセスの禁止が可能となってい
る。また命令実行フラグ207やアクセスフラグ209
により検出結果の保持をコントロールしている為、命令
実行をするたび、あるいはアクセスが起きるたびにイベ
ント検出するので、キャンセル回路が不要となり、この
場合では検出回路ブロックを3つ用意するだけでよい。
【0053】[実施形態2]アドレス検出回路に下位ビ
ットをマスクした比較器を持った例を図5の不正アクセ
ス検出回路に示し説明をする。尚、図5の不正アクセス
検出回路において、領域A実行アドレス検出回路501
のみについて最上位ビット、最上位ビットの1ビット下
のビットからビット0まで現すよう細かく記述し、領域
B実行アドレス検出回路502、領域Bリード/ライト
アドレス検出回路503についてはバスでまとめて記述
しているが、領域B実行アドレス検出回路502、領域
Bリード/ライトアドレス検出回路503の構成は領域
A実行アドレス検出回路501の構成と同様である。
【0054】領域A実行アドレス検出回路501の最上
位ビットのブロックは、レジスタ507、508、50
9、反転出力排他的論理和ゲート510、論理和ゲート
511より構成される。
【0055】レジスタ507はマスクデータの最上位ビ
ット(ビット15)を入力し、保持する。レジスタ50
8は領域A空間の最上位ビットを入力し、保持する。レ
ジスタ509はトレース情報のうちの命令アドレスの最
上位ビットを入力する。レジスタ508の出力論理レベ
ルとレジスタ509の出力論理レベルが一致したときに
ゲート510の出力論理値はハイとなる。レジスタ50
8の出力論理レベルとレジスタ509の出力論理レベル
が一致したとき又はマスクデータの最上位ビットの論理
レベルがハイであるときにゲート511の出力論理値は
ハイとなる。最上位ビット−1〜ビット0のブロックに
ついても同様である。
【0056】エバチップ103からのトレース情報であ
るTRDAT112は領域A実行アドレス検出回路50
1、領域B実行アドレス検出回路502、領域Bリード
/ライト検出回路503に接続される。
【0057】例として、ここでは領域AをA000〜A
FFF、領域BをB000〜B0FFとする。この場
合、領域A実行アドレス検出回路501のマスクレジス
タ507には0FFFというマスクデータを設定し、領
域B実行アドレス検出回路502のマスクレジスタ51
2と領域Bリード/ライトアドレス検出回路503のマ
スクレジスタ517には00FFというマスクデータを
設定する。領域A実行アドレス検出回路501の領域A
空間指定レジスタ508にはA000〜AFFFのうち
の何れかを設定し、領域B実行アドレス検出回路502
の領域B空間指定レジスタ513と領域Bリード/ライ
トアドレス検出回路503の領域B空間指定レジスタ5
18にはB000〜B0FFのうちの何れかを設定す
る。
【0058】トレース情報TRDAT112から実行ア
ドレス206を領域A実行アドレス検出回路501の各
ビットについての領域A実行アドレス読み込みレジスタ
509に読み込み、各ビットについて領域A空間指定レ
ジスタ508と排他的論理和510を取り、各ビットに
ついてその出力と領域Aマスクレジスタ507の論理和
511をとることによって、マスクがハイとなっていな
い上位ビットが一致しているかを検出する。同様にして
領域Bの検出を行う。このようにして実行/アクセスア
ドレス領域は、マスクを使った回路でも検出可能であ
る。
【0059】
【発明の効果】不正アクセス検出回路108の検出領域
指定がプログラマブルであり、不正アクセス検出にプロ
グラムの実行履歴であるトレース情報TRDAT112
を使い、エバチップ103の外部回路でどこの領域から
どこの領域にどういうアクセスをしたかを判断し、かつ
ユーザが使用する外部ロジック入力端子を一本使わせて
もらうだけでブレーク機能が実現出来るので、ROMブ
ロックアドレスが変更された時やROMブロックが増え
た時にもエバチップ103を作り直さずに、不正アクセ
ス検出回路108をゲートアレイやFPGAで作り直し
たり、周辺チップ106やデバイスの品種情報ファイル
を取りかえるだけでインサーキットエミュレータ開発が
可能である。ゆえに、インサーキットエミュレータの開
発期間の短縮や開発コストの削減ができる。また、今ま
で検出に使用していたシーケンシャルイベント検出の為
の回路201、903、904を使わずに、常に現在の
プログラム実行領域を検出する為、従来のシーケンシャ
ルイベント検出の為の回路201、903、904で付
加的に必要とされるキャンセル機能の為の回路901、
902が不要となり簡単な回路で不正アクセス検出が可
能となる。
【図面の簡単な説明】
【図1】本発明の実施形態によるインサーキットエミュ
レータの構成を示すブロック図である。
【図2】本発明の実施形態1による図1に示す不正アク
セス検出回路108の構成を示す回路図である。
【図3】不正アクセスを説明するための図である。
【図4】本発明の実施形態によるインサーキットエミュ
レータの動作を説明するためのタイミング図である。
【図5】本発明の実施形態2による図1に示す不正アク
セス検出回路108の構成を示す回路図である。
【図6】不正アクセスの場合のアドレス遷移と不正アク
セスでない場合のアドレス遷移を説明するための図であ
る。
【図7】不正アクセスの例を説明するための図である。
【図8】シーケンシャルイベントを説明するための状態
遷移図である。
【図9】従来例による不正アクセス検出回路の構成を示
す回路図である。
【図10】従来例(特開平07−341520号(特許
第2962209号))によるエバチップ周辺ブロック
図である。
【符号の説明】
101 インサーキットエミュレータ 102 プログラムメモリ 103 エバチップ 104 インサーキットエミュレータのI/F部 105 ホストコンピュータ 106 周辺チップ 107 トレースメモリ 108 不正アクセス検出回路 109 AD エバチップとプログラムメモリを繋ぐア
ドレス/データバス 110 エバチップとインサーキットエミュレータI/
F部を繋ぐアドレス/データバス 111 PCAD ホストコンピュータとインサーキッ
トエミュレータI/F部を繋ぐアドレス/データバス 112 TRDAT エバチップが出力する実行履歴で
あるトレースデータ 113 BRREQ 不正アクセス検出回路から外部ロ
ジック入力端子へ出力するブレーク要求信号 201 領域A実行アドレス検出回路 202 領域B実行アドレス検出回路 203 領域Bリード/ライトアドレス検出回路 204 Area−B_exe 領域B実行アドレス検
出信号 205 Area−B_acs 領域Bリード/ライト
アドレス検出信号 206 命令実行アドレストレース情報 207 命令実行フラグトレース情報 208 アクセスアドレストレース情報 209 アクセスフラグトレース情報 210 Area−A_exe 領域A実行アドレス検
出信号 211 領域A最小アドレス記憶レジスタ 212 領域A最大アドレス記憶レジスタ 213 領域B最小アドレス記憶レジスタ 214 領域B最大アドレス記憶レジスタ 215 領域B最小アドレス記憶レジスタ 216 領域B最大アドレス記憶レジスタ 217 領域A実行アドレス読み込みレジスタ 218 領域B実行アドレス読み込みレジスタ 219 領域Bリード/ライトアドレス読み込みレジス
タ 220 領域A実行最小アドレスコンパレータ 221 領域A実行最大アドレスコンパレータ 222 領域B実行最小アドレスコンパレータ 223 領域B実行最大アドレスコンパレータ 224 領域Bリード/ライト最小アドレスコンパレー
タ 225 領域Bリード/ライト最大アドレスコンパレー
タ 226 領域A実行アドレス範囲結果レジスタ 227 領域B実行アドレス範囲結果レジスタ 228 領域Bリード/ライトアドレス範囲結果レジス
タ 229 領域A実行アドレス範囲結果保持レジスタ 230 領域Bリード/ライトアドレス範囲結果アクセ
ス判定レジスタ 231 領域A命令実行フラグタイミング調整FF 232 領域A命令実行フラグタイミング調整FF 233 領域Bアクセスフラグタイミング調整FF 234 領域Bアクセスフラグタイミング調整FF 235 領域Aから領域Bへの命令実行検出用AND 236 領域Aから領域Bへのリード/ライト検出用A
ND 237 ブレーク要求生成用OR 238 領域Aアドレス検出用AND 239 領域Bアドレス検出用AND 240 領域Bアドレス検出用AND 501 領域A実行アドレス検出回路 502 領域B実行アドレス検出回路 503 領域Bリード/ライトアドレス検出回路 504 領域Aアドレス判定用AND 505 領域Bアドレス判定用AND 506 領域Bアドレス判定用AND 507 領域Aマスクレジスタ 508 領域A空間指定レジスタ 509 領域A実行アドレス読み込みレジスタ 510 領域A実行アドレス一致検出用XNOR 511 領域A実行アドレスマスク用OR 512 領域Bマスクレジスタ 513 領域B空間指定レジスタ 514 領域B実行アドレス読み込みレジスタ 515 領域B実行アドレス一致検出用XNOR 516 領域B実行アドレスマスク用OR 517 領域Bマスクレジスタ 518 領域B空間指定レジスタ 519 領域B実行アドレス読み込みレジスタ 520 領域B実行アドレス一致検出用XNOR 521 領域B実行アドレスマスク用OR 901 命令実行用キャンセル回路 902 リード/ライト用キャンセル回路 903 領域B最小アドレス記憶レジスタ 904 領域B最大アドレス記憶レジスタ 905 領域B最小アドレス記憶レジスタ 906 領域B最大アドレス記憶レジスタ 907 領域B実行アドレス読み込みレジスタ 908 領域Bリード/ライトアドレス読み込みレジス
タ 909 領域B実行最小アドレスコンパレータ 910 領域B実行最大アドレスコンパレータ 911 領域Bリード/ライト最小アドレスコンパレー
タ 912 領域Bリード/ライト最大アドレスコンパレー
タ 913 領域B実行アドレス範囲結果レジスタ 914 領域Bリード/ライトアドレス範囲結果レジス
タ 915 領域Aキャンセル信号生成用OR 916 領域Aキャンセル信号 917 領域A実行アドレス範囲結果保持レジスタ 918 領域A実行アドレス範囲検出信号 921 領域B実行アドレス検出回路 922 領域Bリード/ライトアドレス検出回路 1001 マッピングメモリ 1002 アドレスバス 1003 ノンマップブレーク要求信号 1004 制御信号 1005/1006/1007 制御信号 1008 疑似プリフェッチバッファ 1009 インサーキットエミュレータ
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 平5−265864(JP,A) 特開 平8−272625(JP,A) 特開 平5−289944(JP,A) 特開 平4−15837(JP,A) 特開 昭62−20583(JP,A) (58)調査した分野(Int.Cl.7,DB名) G06F 11/22 - 11/34 G06F 12/14

Claims (5)

    (57)【特許請求の範囲】
  1. 【請求項1】 評価に用いるマイクロプロセッサが第1
    のメモリ領域にある命令を実行したか否かを命令実行ご
    とにトレース情報を基に検出する第1の検出手段と、 前記マイクロプロセッサが第2のメモリ領域にある命令
    を実行したか否かをクロックごとにトレース情報を基に
    検出する第2の検出手段と、 前記マイクロプロセッサが前記第2のメモリ領域のデー
    タの書き込み又は読み出しをしたか否かをリード/ライ
    トアクセスごとにトレース情報を基に検出する第3の検
    出手段と、トレース情報を基に、 前記マイクロプロセッサが前記第
    1のメモリ領域にある命令を実行した命令実行タイミン
    グの直後の命令実行タイミングで前記第2のメモリ領域
    にある命令を実行した場合には真の信号を出力するが、
    前記マイクロプロセッサが前記第1のメモリ領域にある
    命令を実行した命令実行タイミングの後ではあるが直後
    でない命令実行タイミングで前記第2のメモリ領域にあ
    る命令を実行した場合には偽の信号を出力する第4の検
    出手段と、 前記マイクロプロセッサが前記第1のメモリ領域にある
    命令を実行することに因り前記第2のメモリ領域のデー
    タの書き込み又は読み出しをおこなったことをトレース
    情報を基に検出する第5の検出手段と、 前記第4の検出手段が真の信号を出力したとき又は前記
    第5の検出手段が真の信号を出力したときに前記マイク
    プロセッサを停止させるためのブレーク信号を生成す
    る生成手段と、 を備える不正アクセス検出回路を備えることを特徴とす
    るインサーキットエミュレータ
  2. 【請求項2】 請求項1に記載のインサーキットエミュ
    レータにおいて、 前記第1の検出手段は、命令実行アドレスが前記第1の
    メモリ領域の最小アドレス以上であるか否かを検出する
    第1の比較器と、前記命令実行アドレスが前記第1のメ
    モリ領域の最大アドレス以下であるか否かを検出する第
    2の比較器と、前記第1の比較器の検出結果と前記第2
    の比較器の検出結果の論理積をとる第1の論理積ゲート
    を備え、 前記第2の検出手段は、命令実行アドレスが前記第2の
    メモリ領域の最小アドレス以上であるか否かを検出する
    第3の比較器と、前記命令実行アドレスが前記第2のメ
    モリ領域の最大アドレス以下であるか否かを検出する第
    4の比較器と、前記第3の比較器の検出結果と前記第4
    の比較器の検出結果の論理積をとる第2の論理積ゲート
    を備え、 前記第3の検出手段は、データアクセスアドレスが前記
    第2のメモリ領域の最小アドレス以上であるか否かを検
    出する第5の比較器と、前記データアクセスアドレスが
    前記第2のメモリ領域の最大アドレス以下であるか否か
    を検出する第6の比較器と、前記第5の比較器の検出結
    果と前記第6の比較器の検出結果の論理積をとる第3の
    論理積ゲートを備えることを特徴とするインサーキット
    エミュレータ
  3. 【請求項3】 請求項1に記載のインサーキットエミュ
    レータにおいて、 前記第1の検出手段、前記第2の検出手段及び前記第3
    の検出手段のいずれも、ビット毎の判定手段と、全ビッ
    トの判定手段による検出結果の論理積をとる論理積回路
    を備え、各ビットの判定手段は、ビット一致検出回路及
    び前記ビット一致検出回路の出力が真であるとき又は
    要に応じたビットの判定手段の出力を強制的に真とする
    ことにより前記第1のメモリ領域又は前記第2メモリ領
    域のアドレス範囲に幅を持たせるためのマスクデータの
    対応ビットが真であるときにのみ出力を真とする論理和
    回路を備えることを特徴とするインサーキットエミュレ
    ータ
  4. 【請求項4】 請求項1乃至3のいずれか1項に記載の
    インサーキットエミュレータにおいて、 前記第4の検出手段は、前記第1の検出手段による検出
    結果を次の命令実行まで保持する手段を備え、 前記第5の検出手段は、前記第1の検出手段による検出
    結果を次の命令実行まで保持する手段を備えることを特
    徴とするインサーキットエミュレータ
  5. 【請求項5】 評価に用いるマイクロプロセッサが第1
    のメモリ領域にある命令を実行したか否かを命令実行ご
    とにトレース情報を基に検出する第1の検出ステップ
    と、 前記マイクロプロセッサが第2のメモリ領域にある命令
    を実行したか否かをクロックごとにトレース情報を基に
    検出する第2の検出ステップと、 前記マイクロプロセッサが前記第2のメモリ領域のデー
    タの書き込み又は読み出しをしたか否かをリード/ライ
    トアクセスごとにトレース情報を基に検出する第3の検
    出ステップと、トレース情報を基に、 前記マイクロプロセッサが前記第
    1のメモリ領域にある命令を実行した命令実行タイミン
    グの直後の命令実行タイミングで前記第2のメモリ領域
    にある命令を実行した場合には真の信号を出力するが、
    前記マイクロプロセッサが前記第1のメモリ領域にある
    命令を実行した命令実行タイミングの後ではあるが直後
    でない命令実行タイミングで前記第2のメモリ領域にあ
    る命令を実行した場合には偽の信号を出力する第4の検
    出ステップと、 前記マイクロプロセッサが前記第1のメモリ領域にある
    命令を実行することに因り前記第2のメモリ領域のデー
    タの書き込み又は読み出しをおこなったことをトレース
    情報を基に検出する第5の検出ステップと、 前記第4の検出手段が真の信号を出力したとき又は前記
    第5の検出手段が真の信号を出力したときに前記マイク
    プロセッサを停止させるためのブレーク信号を生成す
    る生成ステップと、 を有することを特徴とする不正アクセス検出方法。
JP2000101489A 2000-04-03 2000-04-03 インサーキットエミュレータ及び不正アクセス検出方法 Expired - Fee Related JP3404354B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2000101489A JP3404354B2 (ja) 2000-04-03 2000-04-03 インサーキットエミュレータ及び不正アクセス検出方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000101489A JP3404354B2 (ja) 2000-04-03 2000-04-03 インサーキットエミュレータ及び不正アクセス検出方法

Publications (2)

Publication Number Publication Date
JP2001282568A JP2001282568A (ja) 2001-10-12
JP3404354B2 true JP3404354B2 (ja) 2003-05-06

Family

ID=18615530

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000101489A Expired - Fee Related JP3404354B2 (ja) 2000-04-03 2000-04-03 インサーキットエミュレータ及び不正アクセス検出方法

Country Status (1)

Country Link
JP (1) JP3404354B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5716051B2 (ja) * 2013-04-15 2015-05-13 株式会社メガチップス 半導体記憶装置

Also Published As

Publication number Publication date
JP2001282568A (ja) 2001-10-12

Similar Documents

Publication Publication Date Title
US6915416B2 (en) Apparatus and method for microcontroller debugging
US5901225A (en) System and method for performing software patches in embedded systems
JP3277900B2 (ja) プログラム検査方法、プログラム検査装置及び、検査プログラムを記憶したコンピュータ読み取り可能な記憶媒体
US7454169B2 (en) Method and apparatus for use in securing an electronic device such as a cell phone
US6968420B1 (en) Use of EEPROM for storage of security objects in secure systems
US5704039A (en) Mask programmable security system for a data processor and method therefor
JP5349498B2 (ja) ハードウェアリセット保護のための方法および装置
US20080016415A1 (en) Evaluation system and method
JPH10228421A (ja) メモリアクセス制御回路
US5813043A (en) Method and system including memory patching utilizing a transmission control signal and circuit
US7010672B2 (en) Digital processor with programmable breakpoint/watchpoint trigger generation circuit
JP4319712B2 (ja) 集積回路においてアクセス保護を備える方法および装置
JP3343998B2 (ja) 制御装置
US7228440B1 (en) Scan and boundary scan disable mechanism on secure device
JP4182740B2 (ja) マイクロコンピュータ
JP3404354B2 (ja) インサーキットエミュレータ及び不正アクセス検出方法
JP3501131B2 (ja) 制御装置
JPS6074059A (ja) 記憶装置アクセス制御方式
JPH1011315A (ja) インサーキットエミュレータ装置およびインサーキットエミュレーション方法
JP3501129B2 (ja) 制御装置
JP3323341B2 (ja) エミュレーション用プロセッサおよびそれを搭載したエミュレータ
JP2903601B2 (ja) Rom内蔵マイクロコンピュータ
JP3166667B2 (ja) エミュレーション用マイクロコンピュータ
JPH06222917A (ja) 電子装置
JP3501130B2 (ja) 制御装置

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees