(57)【要約】【課題】アクセス違反を検出するために、非実装領域の開始アドレス及び終了アドレスを設定しなければならないという問題点があった。【解決手段】ＣＰＵと、命令充填部と、アクセス違反検出部とを具備するマイクロコンピュータによって解決できる。ＣＰＵは、命令を実行する。命令充填部は、ＣＰＵによって、アクセス違反領域のアドレスが指定されると、所定のアクセス違反検出用命令を送出する。アクセス違反検出部は、ＣＰＵが実行する命令を監視する。アクセス違反検出部は、所定の判断基準に従って、ＣＰＵが実行する命令が、所定のアクセス違反検出用命令であるか否かを確認する。アクセス違反検出部は、所定のアクセス違反検出用命令であることを確認すると、ＣＰＵに対して、アクセス違反割り込みを要求する。【選択図】図３
2011150453.tif 000002
【特許請求の範囲】
【請求項１】
命令を実行するＣＰＵと、
前記ＣＰＵによって、アクセス違反領域のアドレスが指定されると、所定のアクセス違反検出用命令を送出する命令充填部と、
前記ＣＰＵが実行する命令を監視し、所定の判断基準に従って、前記ＣＰＵが実行する命令が、前記所定のアクセス違反検出用命令であるか否かを確認すると共に、前記所定のアクセス違反検出用命令であることを確認すると、前記ＣＰＵに対して、アクセス違反割り込みを要求するアクセス違反検出部とを具備する
マイクロコンピュータ。
【請求項２】
前記命令充填部は、
前記ＣＰＵが、前記アクセス違反領域のアドレスをインクリメントしながらアドレスの指定を行うと、前記所定のアクセス違反検出用命令の命令列を送出し、
前記命令列は、繰り返し現れ、一以上の命令でなる部分命令列を含み、
前記アクセス違反検出部は、
前記部分命令列が繰り返し現れる回数を計数するカウンタと、
前記ＣＰＵが実行する命令を参照し、前記部分命令列と同じ部分命令列が実行されるたびに、前記カウンタをカウントアップする実行命令比較回路とを備える
請求項１記載のマイクロコンピュータ。
【請求項３】
前記アクセス違反検出部は、
前記所定の判断基準として、前記カウンタのカウント値が、所定の閾値を超えたか否かの判断基準を用い、
前記カウント値が、前記所定の閾値を超えたときに、前記ＣＰＵに対して、前記アクセス違反割り込みを要求する
請求項２記載のマイクロコンピュータ。
【請求項４】
前記カウンタは、
前記部分命令列が繰り返し連続して現れる回数を計数し、
前記実行命令比較回路は、
前記ＣＰＵが実行する命令を参照し、前記部分命令列と異なる部分命令列が実行されるたびに、前記カウンタをクリアする
請求項３記載のマイクロコンピュータ。
【請求項５】
前記命令充填部は、
前記ＣＰＵが、非実装領域のアドレスを指定すると、前記ＣＰＵへ命令を伝達するデータバスの電圧レベルを固定することによって、前記所定のアクセス違反検出用命令を送出する
請求項４記載のマイクロコンピュータ。
【請求項６】
前記命令充填部は、
前記非実装領域の全てに命令を充填し、前記ＣＰＵが、非実装領域のいずれのアドレスを指定しても、前記所定のアクセス違反検出用命令を送出する
請求項５記載のマイクロコンピュータ。
【請求項７】
前記命令充填部は、
単一種類のアクセス違反検出用命令でなる命令列を送出し、
前記部分命令列は、一つの命令で成る
請求項６記載のマイクロコンピュータ。
【請求項８】
前記命令充填部は、
前記単一種類のアクセス違反検出用命令として、ＮＯＰ（Ｎｏ  ＯＰｅｒａｔｉｏｎ）命令を送出する
請求項７記載のマイクロコンピュータ。
【請求項９】
ユーザー・プログラムを格納するＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）と、
前記命令充填部とは別の命令充填部とを更に具備し、
前記別の命令充填部は、
前記ＲＯＭ内部において、前記ユーザー・プログラムによって使用されていないユーザー未使用領域を備え、
前記ユーザー未使用領域に、前記所定のアクセス違反検出用命令を有する
請求項５〜８のいずれか１項に記載のマイクロコンピュータ。
【請求項１０】
ＣＰＵが、アクセス違反領域のアドレスを指定することと、
前記アクセス違反領域に命令を充填する命令充填部が、所定のアクセス違反検出用命令を送出することと、
前記ＣＰＵが、前記所定のアクセス違反検出用命令をフェッチすることと、
アクセス違反検出部が、前記ＣＰＵを監視することと、
前記アクセス違反検出部が、所定の判断基準に従って、前記ＣＰＵが実行する命令が、前記所定のアクセス違反検出用命令であるか否かを確認することと、
前記アクセス違反検出部が、前記所定のアクセス違反検出用命令であることを確認すると、前記ＣＰＵに対して、アクセス違反割り込みを要求することとを具備する
アクセス違反検出方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マイクロコンピュータ及びアクセス違反検出方法に関する。
【背景技術】
【０００２】
近年、マイクロコンピュータが、家電製品やＯＡ機器、自動車の車内システムや製造工場の制御装置など、さまざまな分野で応用されるようになった。マイクロコンピュータは、アドレスを指定して、命令をフェッチし、実行することによって、さまざまな機能を実現している。図１は、マイクロコンピュータの概要説明図である。図示するように、マイクロコンピュータ４０は、命令を実行するＣＰＵ４１を搭載している。ＣＰＵ４１は、ＲＯＭ４３やＲＡＭ４４、周辺Ｉ／Ｏ４５などと接続されていて、データバス４２を介して、命令をフェッチし、実行する。ＣＰＵ４１は、プログラムカウンタ４６や命令レジスタ４７、デコーダ４８などを備えている。プログラムカウンタ４６は、ＣＰＵ４１がフェッチすべき次の命令のアドレスを指し示している。命令レジスタ４７は、データバス４２を介してフェッチしてきた命令を保持する。デコーダ４８は、フェッチしてきた命令を解読する。
【０００３】
図２Ａは、ＣＰＵのアドレス空間の説明図である。ＣＰＵ４１は、不図示のアドレスバスのバス幅を用いて指定可能な大きさのアドレス空間を有し、例えば、３２ビットのバス幅で４ギガのアドレス空間となる。このようなアドレス空間に、各種Ｉ／Ｏ４３〜４５が割り当てられる。図２Ａにおいて、アドレス空間におけるアドレス＃０〜＃Ａの領域は、ＲＯＭ４３に割り当てられている。アドレス＃Ｂ〜＃Ｃの領域は、ＲＡＭ４４に割り当てられている。アドレス＃Ｄ以降の領域は、周辺Ｉ／Ｏ４５に割り当てられている。ＣＰＵ４１が、各種Ｉ／Ｏ４３〜４５に割り当てられた領域のアドレスを指定すると、そのアドレスにある命令が、各種Ｉ／Ｏ４３〜４５からデータバス４２へ送出される。ＣＰＵ４１は、データバス４２に現れる命令をフェッチし、実行する。
【０００４】
図２Ａにおいて、アドレス＃Ａ〜＃Ｂの領域、及び、アドレス＃Ｃ〜＃Ｄの領域は、非実装領域と呼ばれる。非実装領域は、どのＩ／Ｏに対しても割り当てられていないので、非実装領域のアドレスを指定しても、命令を返すＩ／Ｏは存在しない。何らかの意図しない原因によって、ＣＰＵ４１が、この非実装領域のアドレスを指定して命令をフェッチすると、暴走を起こす危険性がある。非実装領域へのアクセスは、ＣＰＵ４１のアクセス違反の一つとして知られる。
【０００５】
非実装領域へのアクセスを検出して、暴走を止める技術として、特開２００６−０７９２３０号公報（特許文献１参照）に記載された「半導体回路装置及び暴走検出方法」の発明が知られる。この発明では、非実装領域の開始アドレスと、終了アドレスとをレジスタに設定する。設定後、ＣＰＵがフェッチしようとした命令のアドレスを監視し、このアドレスが、非実装領域のアドレスか否かを調べる。非実装領域のアドレスであった場合には、ＣＰＵに復帰プログラムを実行させる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００６−０７９２３０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
近年開発されているマイクロコンピュータは、搭載する機能などに依存して、製品ごとに異なったＩ／Ｏを搭載するなどしている。そのため、製品が異なると、アドレス空間の割り当ても異なってくる。図２Ｂは、別のアドレス空間の説明図である。図２Ａのアドレス空間と、図２Ｂのアドレス空間とを比較すると、アドレス＃Ａ〜＃Ｂの非実装領域は共通であるが、図２Ａのアドレス空間におけるアドレス＃Ｃ〜＃Ｄの非実装領域は、図２Ｂのものと異なっている。そのため、上記文献記載の技術では、アドレス空間が異なる製品ごとに、非実装領域の開始アドレス及び終了アドレスを変更しつつ、レジスタへの設定を行わなければならないという問題点がある。
【課題を解決するための手段】
【０００８】
以下に、［発明を実施するための形態］で使用される番号・符号を用いて、［課題を解決するための手段］を説明する。これらの番号・符号は、［特許請求の範囲］の記載と［発明を実施するための形態］との対応関係を明らかにするために括弧付きで付加されたものである。ただし、それらの番号・符号を、［特許請求の範囲］に記載されている発明の技術的範囲の解釈に用いてはならない。
【０００９】
本発明の一つ目のアスペクトによるマイクロコンピュータ（１０）は、ＣＰＵ（４１）と、命令充填部（２０）と、アクセス違反検出部（３０）とを具備する。ＣＰＵ（４１）は、命令を実行する。命令充填部（２０）は、ＣＰＵ（４１）によって、アクセス違反領域のアドレスが指定されると、所定のアクセス違反検出用命令を送出する。アクセス違反検出部（３０）は、ＣＰＵ（４１）が実行する命令を監視する。アクセス違反検出部（３０）は、所定の判断基準に従って、ＣＰＵ（４１）が実行する命令が、所定のアクセス違反検出用命令であるか否かを確認する。アクセス違反検出部（３０）は、所定のアクセス違反検出用命令であることを確認すると、ＣＰＵ（４１）に対して、アクセス違反割り込みを要求する。
【００１０】
アクセス違反検出部（３０）には、所定のアクセス違反検出用命令が繰り返し実行される回数を計数するカウンタ（３２ａ）を設けても良い。アクセス違反検出部（３０）は、このカウンタ（３２ａ）のカウント値に基づいて、ＣＰＵ（４１）が実行する命令が、所定のアクセス違反検出用命令であるか否かを確認できる。例えば、所定のアクセス違反検出用命令をＮＯＰ（Ｎｏ  ＯＰｅｒａｔｉｏｎ）命令とすれば、アクセス違反検出部（３０）は、ＣＰＵ（４１）によってＮＯＰ命令が繰り返し実行される回数が、一定の閾値を超えたことを確認して、ＣＰＵ（４１）に対し、アクセス違反割り込みを要求する。
【００１１】
本発明の二つ目のアスペクトによるアクセス違反検出方法は、指定すること（Ｓ１１）と、送出すること（Ｓ１２）と、フェッチすること（Ｓ１３）と、監視すること（Ｓ１４）と、確認すること（Ｓ１５）と、要求すること（Ｓ１６）とを具備する。指定すること（Ｓ１１）においては、ＣＰＵが、アクセス違反領域のアドレスを指定する。送出すること（Ｓ１２）においては、アクセス違反領域に命令を充填する命令充填部が、所定のアクセス違反検出用命令を送出する。フェッチすること（Ｓ１３）においては、ＣＰＵが、所定のアクセス違反検出用命令をフェッチする。監視すること（Ｓ１４）においては、アクセス違反検出部が、ＣＰＵを監視する。確認すること（Ｓ１５）においては、アクセス違反検出部が、所定の判断基準に従って、ＣＰＵが実行する命令が、所定のアクセス違反検出用命令であるか否かを確認する。要求すること（Ｓ１６）においては、アクセス違反検出部が、所定のアクセス違反検出用命令であることを確認すると、ＣＰＵに対して、アクセス違反割り込みを要求する。
【発明の効果】
【００１２】
本発明によれば、製品ごとに異なる非実装領域の開始アドレス及び終了アドレスを設定しなくとも、アクセス違反を検出することが可能になる。
【図面の簡単な説明】
【００１３】
【図１】マイクロコンピュータの概要説明図
【図２Ａ】アドレス空間の説明図
【図２Ｂ】アドレス空間の説明図
【図３】本実施の形態におけるマイクロコンピュータの構成説明図
【図４】本実施の形態におけるマイクロコンピュータの動作を説明するフローチャート
【図５】実施例１における命令充填部の説明図
【図６】実施例１におけるアクセス違反検出部の構成説明図
【図７】実施例２における命令充填部の説明図
【図８】アクセス違反領域の説明図
【図９】実施例３におけるマイクロコンピュータの構成説明図
【図１０】実施例３における２つの命令充填部の構成説明図
【発明を実施するための形態】
【００１４】
本発明を実施するための形態について、図面を参照して詳細に説明する。図３は、本実施の形態におけるマイクロコンピュータの構成説明図である。図３において、マイクロコンピュータ１０は、命令充填部２０と、アクセス違反検出部３０とを備えている。命令充填部２０は、ＣＰＵ４１によって、非実装領域のアドレスが指定されたときに、所定のアクセス違反検出用命令をデータバス４２に送出する。アクセス違反検出部３０は、ＣＰＵ４１が実行する命令を監視し、命令充填部２０から送出されたアクセス違反検出用命令が実行されることを確認すると、ＣＰＵ４１に対して、アクセス違反割り込みを要求する。図３に示すマイクロコンピュータ１０は、その他、命令を実行するＣＰＵ４１や命令を伝達するデータバス４２、ＲＯＭ４３やＲＡＭ４４、周辺Ｉ／Ｏ４５なども備えている。これらは、図１に示したものと同様の機能を有するものである。
【００１５】
図４は、図３に示したマイクロコンピュータの動作を説明するフローチャートである。図４において、まず、マイクロコンピュータ１０に搭載されたＣＰＵ４１が、アクセス違反領域のアドレスを指定する（ステップＳ１１）。このアドレス指定により、命令充填部２０が、アクセス違反検出用命令をデータバス４２に送出する（ステップＳ１２）。ＣＰＵ４１は、データバス４２からアクセス違反検出用命令をフェッチする（ステップＳ１３）。ＣＰＵ４１は、フェッチしたアクセス違反検出用命令を実行することになる。一方、アクセス違反検出部３０は、ＣＰＵ４１が実行する命令を監視している（ステップＳ１４）。アクセス違反検出部３０は、ＣＰＵ４１が実行する命令を監視することによって、アクセス違反があったか否かを判断している（ステップＳ１５）。アクセス違反があったと判断された場合、アクセス違反検出部３０は、ＣＰＵ４１へアクセス違反割り込み信号を送出する（ステップＳ１６）。この割り込み信号を受けて、ＣＰＵ４１は割り込み処理を実行することになる。このような流れで、ＣＰＵ４１の暴走は回避される。
【実施例１】
【００１６】
以下、具体的な実施例を挙げて、本実施の形態について更に詳述する。図５は、実施例１における命令充填部の説明図である。図５において、命令充填部２０ａは、ＣＰＵ４１によって、非実装領域のアドレスが指定されると、データバス４２の電圧レベルを予め定められたレベルに固定する機能を有している。図５の例では、非実装領域に属するどのアドレスが指定されても、“１０１０・・・００”のアクセス違反検出用命令がデータバス４２に送出される。図中、“１０１０・・・００”のビット列は、“１”レベルの信号線２１ａと、“０”レベルの信号線２２ａとを、図示する如く組み合わせることによって生成している。“１”レベルの信号線２１ａと、“０”レベルの信号線２２ａとの組み合わせを変更すれば、任意のビット列から成るアクセス違反検出用命令を生成することが可能である。
【００１７】
ＣＰＵ４１が、“１０１０・・・００”のアクセス違反検出用命令をフェッチし、実行すると、ＣＰＵ４１は、プログラムカウンタ４６をインクリメントする。一般に、インクリメントされたプログラムカウンタ４６は、再び、非実装領域に属するアドレスを指し示すことになる。ＣＰＵ４１が、次の命令をフェッチしようとして、インクリメントされたアドレスを指定すると、再び、命令充填部２０ａから、“１０１０・・・００”のアクセス違反検出用命令がデータバス４２に送出される。このように、ＣＰＵ４１が一旦非実装領域のアドレスを指定すると、以降、ＣＰＵ４１がフェッチしてくる後続の命令は、命令充填部２０ａから送出されるアクセス違反検出用命令になる。これらのアクセス違反検出用命令は、全て“１０１０・・・００”であるから、ＣＰＵ４１が実行する命令が、同一の命令に固定される。
【００１８】
図６は、実施例１におけるアクセス違反検出部の構成説明図である。図６において、アクセス違反検出部３０ａは、実行命令比較回路３１ａと、実行命令カウンタ３２ａとを備えている。実行命令比較回路３１ａは、ＣＰＵ４１が実行する命令について、前回と今回とで同じか否かを比較する。実行命令比較回路３１ａは、ＣＰＵ４１が前回と同じ命令を実行する場合には、実行命令カウンタ３２ａをカウントアップする。一方、ＣＰＵ４１が前回と異なる命令を実行する場合には、実行命令カウンタ３２ａをクリアする。
【００１９】
図６において、実行命令カウンタ３２ａは、実行命令比較回路３１ａから送出される信号に従って、カウント値をカウントアップし、又は、カウント値をクリアしてゼロに初期化する。また、カウント値が予め定められた閾値を超えると、オーバーフローし、ＣＰＵ４１に対して、アクセス違反割り込み信号を送出する。ＣＰＵ４１は、アクセス違反割り込み信号を受信すると、アクセス違反に対する割り込み処理を実行する。
【００２０】
マイクロコンピュータのユーザは、実行命令カウンタ３２ａがオーバーフローするときの閾値を設定することが可能である。この閾値は、アクセス違反検出用命令がユーザープログラムに連続して現れることが無い値とすることができる。ユーザは、ユーザープログラムを調べるだけで閾値の設定が可能であり、未実装領域のアドレスを調べる必要はない。なお、閾値は、ユーザが任意の値を設定するのではなく、マイクロコンピュータの設計者が、固定値を設定するようにしても良い。この場合、固定値は、ユーザープログラムにおいて同一の命令が繰り返されることが無いような大きな値にすれば良い。
【００２１】
命令充填部２０ａは、不図示のアドレスバスに接続し、非実装領域の全部又は一部に実装してしまうことが可能である。その他、ＣＰＵ４１からアドレス指定があったにもかかわらず、いずれのＩ／Ｏ４３〜４５もデータバス４２に命令を送出しなかった場合に、命令充填部２０ａが、バスの電圧レベルを固定するようにすることも可能である。
【実施例２】
【００２２】
図７は、実施例２における命令充填部の説明図である。図７において、命令充填部２０ｂは、ＣＰＵ４１によって、非実装領域のアドレスが指定されると、データバス４２の電圧レベルを固定する機能を有している。図７では、非実装領域に属するアドレスが指定されると、“１０１０・・・００”のアクセス違反検出用命令、又は、“１０１０・・・０１”のアクセス違反検出用命令のいずれかがデータバス４２に送出される。“１０１０・・・０ｘ”のビット列は、“１”レベルの信号線２１ｂと、“０”レベルの信号線２２ｂとを、図示する如く組み合わせることによって生成している。
【００２３】
反転ビット保持部２３ｂは、ある規則に従ってビット値を反転させるもので、アクセス違反検出用命令における一つのビット値を決定する。当例では、反転させるビットを、命令の最下位ビットとしている。例えば、反転ビット保持部２３ｂは、ＣＰＵ４１が指定したアドレスの最下位ビットを保持するものとすることができる。この場合、ＣＰＵ４１は、プログラムカウンタ４６をインクリメントしながらアドレスを指定するので、反転ビット保持部２３ｂの値は、ＣＰＵ４１がアドレスを指定するごとに反転する。反転ビット保持部２３ｂを設けたことによって、命令充填部２０ｂからデータバス４２へ、２種類のアクセス違反検出用命令を交互に送出することが可能になる。すなわち、２種類のアクセス違反検出用命令を命令Ｐ及び命令Ｑとすれば、ＣＰＵ４１が実行する命令は、命令Ｐ−＞命令Ｑ−＞命令Ｐ−＞命令Ｑ−＞命令Ｐ−＞・・・−＞命令Ｑ−＞命令Ｐ−＞命令Ｑ−＞命令Ｐ−＞命令Ｑのように変化する。このとき、アクセス違反検出部は、ＣＰＵ４１によって、２種類のアクセス違反検出用命令が交互に実行される回数をカウントすることによって、アクセス違反を検出することが可能である。
【００２４】
また、反転ビット保持部２３ｂは、一定の時間間隔で、規則的に反転するものとすることができる。時間間隔は、例えば、ＣＰＵ４１が命令を２つ実行するサイクル時間とすることができる。この場合、反転ビット保持部２３ｂは、命令充填部２０ｂが、データバス４２に対して、２つのアクセス違反検出用命令を送出するごとに反転する。反転ビット保持部２３ｂを設けたことによって、命令充填部２０ｂからデータバス４２へ、第１種類のアクセス違反検出用命令２つと、第２種類のアクセス違反検出用命令２つとを、交互に送出することが可能になる。すなわち、２種類のアクセス違反検出用命令を命令Ｐ及び命令Ｑとすれば、ＣＰＵ４１が実行する命令は、命令Ｐ−＞命令Ｐ−＞命令Ｑ−＞命令Ｑ−＞命令Ｐ−＞・・・−＞命令Ｑ−＞命令Ｐ−＞命令Ｐ−＞命令Ｑ−＞命令Ｑのように変化する。このとき、アクセス違反検出部は、ＣＰＵ４１によって、２種類のアクセス違反検出用命令が、２つずつ連続して交互に実行される回数をカウントすることによって、アクセス違反を検出することが可能である。
【００２５】
ユーザープログラムに、同一の命令が相当な回数連続して現れる可能性がある場合には、実施例２のように、複数種類のアクセス違反検出用命令を用いて、アクセス違反を検出することも可能である。
【実施例３】
【００２６】
アクセス違反領域は、非実装領域には限られない。図８は、非実装領域とは異なるアクセス違反領域の説明図である。図示するように、ＲＯＭの内部には、一般に、ユーザー・プログラム使用領域のほか、ユーザー・プログラム使用領域以外の領域であるユーザー未使用領域が存在する。ユーザー未使用領域も、アクセス違反領域の一つとして知られる。何らかの意図しない原因によって、ＣＰＵ４１が、ユーザー未使用領域のアドレスを指定し、命令をフェッチし、実行すると、暴走を起こす危険性がある。
【００２７】
図９は、実施例３におけるマイクロコンピュータの構成説明図である。図示するように、実施例３では、非実装領域に命令を充填する第１の命令充填部２０ｃと、ＲＯＭ内部のユーザー未使用領域に命令を充填する第２の命令充填部２０−２ｃとを設けている。ＣＰＵ４１によって、非実装領域のアドレスが指定されると、命令充填部２０ｃが、データバス４２にアクセス違反検出用命令を送出する。また、ＣＰＵ４１によって、ユーザー未使用領域のアドレスが指定されると、命令充填部２０−２ｃが、データバス４２にアクセス違反検出用命令を送出する。アクセス違反検出部３０ｃは、ＣＰＵ４１が実行する命令を監視し、命令充填部２０ｃ又は命令充填部２０−２ｃから送出されたアクセス違反検出用命令が実行されることを確認すると、ＣＰＵ４１へアクセス違反割り込みを要求する。
【００２８】
図１０は、実施例３における２つの命令充填部の構成説明図である。図１０において、命令充填部２０ｃは、非実装領域に、ＮＯＰ命令を充填している。すなわち、ＣＰＵ４１によって、非実装領域のアドレスが指定されると、命令充填部２０ｃは、アクセス違反検出用命令であるＮＯＰ命令をデータバス４２に送出する。一方、命令充填部２０−２ｃは、ユーザー未使用領域に、ＮＯＰ命令を充填している。すなわち、ＣＰＵ４１によって、ユーザー未使用領域のアドレスが指定されると、命令充填部２０−２ｃは、アクセス違反検出用命令であるＮＯＰ命令をデータバス４２に送出する。図示するように、命令充填部２０−２ｃは、ＲＯＭ４３ｃの一部であり、ＮＯＰ命令で充填されたユーザー未使用領域でなる。
【００２９】
ＮＯＰ命令は、“００００・・・００”のように、全てのビットが“０”になる命令とすることができる。この場合、アクセス違反検出用命令は、グランドＧＮＤに接続される“０”レベルの信号線のみで生成することが可能である。“０”レベルの信号線のみで生成できるアクセス違反検出用命令を用いれば、命令充填部２０ｃの構成を極めて簡素にすることができる。
【００３０】
以上、具体的な実施例について説明した。なお、図６において、アクセス違反検出部３０ａにおける実行命令比較回路３１ａは、比較結果が不一致になるたびに実行命令カウンタ３２ａをクリアするようにした。その他、実行命令比較回路３１ａの変形例として、ＣＰＵ４１が実行した命令数が一定数を超えてもアクセス違反割り込みが無かったときに、実行命令カウンタ３２ａをクリアするような例も考えられる。この場合には、命令充填部２０は、連続するアドレスにアクセス違反検出用命令を充填し尽くす必要が無いので、アドレス間隔を空けて、アクセス違反検出用命令を充填できる。
【００３１】
以上説明したように、本実施の形態においては、アクセス違反検出用命令を送出する命令充填部と、アクセス違反検出用命令の実行を確認するアクセス違反検出部とを設けてアクセス違反を検出しているので、ユーザがアクセス違反領域のアドレスを調べ、設定するような困難を解消できる。しかも、命令充填部は、極めて簡素な構成にて実現可能である。
【符号の説明】
【００３２】
１０，４０  マイクロコンピュータ
２０，２０ａ，２０ｂ，２０ｃ，２０−２ｃ  命令充填部
２１ａ，２１ｂ，２２ａ，２２ｂ  信号線
２３ｂ  反転ビット保持部
３０，３０ａ，３０ｃ  アクセス違反検出部
３１ａ  実行命令比較回路
３２ａ  実行命令カウンタ
４１  ＣＰＵ
４２  データバス
４３，４３ｃ  ＲＯＭ
４４  ＲＡＭ
４５  周辺Ｉ／Ｏ
４６  プログラムカウンタ
４７  命令レジスタ
４８  デコーダ
【図１】
2011150453.tif 000003
【図２Ａ】
2011150453.tif 000004
【図２Ｂ】
2011150453.tif 000005
【図３】
2011150453.tif 000006
【図４】
2011150453.tif 000007
【図５】
2011150453.tif 000008
【図６】
2011150453.tif 000009
【図７】
2011150453.tif 000010
【図８】
2011150453.tif 000011
【図９】
2011150453.tif 000012
【図１０】
2011150453.tif 000013