(57)【要約】【課題】あるプログラムを割り込み禁止状態で実行することを、ＣＰＵの処理負荷及びプログラム容量を増大させることなく実現する。【解決手段】車載電子制御装置（ＥＣＵ）１に搭載されるマイコン３では、割り込みマスク判定部１７が、ＣＰＵ５が実行するプログラムのアドレスを監視して、そのアドレス値が、アドレス範囲レジスタ１７ａ内の情報が示す特定のアドレス範囲内であるか否かを判定し、そのアドレス範囲内であると判定している場合に、割り込みコントローラ１１へ割り込みマスク信号を出力する。すると、割り込みコントローラ１１内の論理積回路１１ｃにより、ＣＰＵ５へ割り込み要求信号が出力されるのが禁止される。このマイコン３によれば、割り込み禁止状態で実行したいプログラムを、メモリ７，９における上記特定のアドレス範囲内に格納しておくだけで、そのプログラムを割り込み禁止状態で実行できる。【選択図】図１
2009093344.tif 000002
【特許請求の範囲】
【請求項１】
ＣＰＵと、該ＣＰＵによって実行されるプログラムが格納されるメモリと、を備えたマイクロコンピュータにおいて、
前記ＣＰＵが実行するプログラムのアドレス（以下、実行アドレスという）が、前記メモリ上の特定アドレス範囲内であるか否かを判定すると共に、前記実行アドレスが前記特定アドレス範囲内であると判定している場合には、前記ＣＰＵが割り込みを受け付けないようにする割り込み制限手段を備えていること、
を特徴とするマイクロコンピュータ。
【請求項２】
請求項１に記載のマイクロコンピュータにおいて、
前記割り込み制限手段は、前記ＣＰＵが命令フェッチ時に該ＣＰＵと前記メモリとの間のアドレスバスへ出力するアドレス値を監視し、そのアドレスバス上のアドレス値が前記特定アドレス範囲内であるか否かを判定することより、前記実行アドレスが前記特定アドレス範囲内であるか否かを判定するように構成されていること、
を特徴とするマイクロコンピュータ。
【請求項３】
請求項１又は請求項２に記載のマイクロコンピュータにおいて、
前記割り込み制限手段は、前記ＣＰＵの外部に設けられた割り込みコントローラが前記ＣＰＵに対して割り込み要求信号を出力するのを阻止することにより、前記ＣＰＵが割り込みを受け付けないようにすること、
を特徴とするマイクロコンピュータ。
【請求項４】
請求項１ないし請求項３の何れか１項に記載のマイクロコンピュータにおいて、
前記メモリ上のアドレス範囲を示す情報が前記ＣＰＵによって書き込まれるアドレス範囲設定用レジスタを備え、
前記割り込み制限手段は、前記アドレス範囲設定用レジスタ内の情報が示すアドレス範囲を、前記特定アドレス範囲として扱うこと、
を特徴とするマイクロコンピュータ。
【請求項５】
請求項１ないし請求項４の何れか１項に記載のマイクロコンピュータにおいて、
前記ＣＰＵが前記割り込み制限手段の動作状態を保持するための状態保持用命令を実行すると、その状態保持用命令による動作状態の保持を解除するための解除用命令を前記ＣＰＵが実行するまでの間、前記割り込み制限手段は、前記ＣＰＵが割り込みを受け付けないようにする動作状態と、前記ＣＰＵが割り込みを受け付けることができるようにする動作状態とのうち、前記状態保持用命令が実行された時になっている動作状態を保持するようになっていること、
を特徴とするマイクロコンピュータ。
【請求項６】
請求項１ないし請求項５の何れか１項に記載のマイクロコンピュータの使用方法であって、
前記ＣＰＵに実行させるプログラムのうち、割り込み禁止状態で実行したいプログラムを、前記メモリの前記特定アドレス範囲内に格納すること、
を特徴とするマイクロコンピュータの使用方法。
【請求項７】
請求項１ないし請求項５の何れか１項に記載のマイクロコンピュータを備え、そのマイクロコンピュータによって制御対象を制御するための処理を行う電子制御装置であって、
前記制御対象を制御するために前記ＣＰＵが実行するプログラムのうち、割り込み禁止状態で実行されるプログラムが、前記メモリの前記特定アドレス範囲内に格納されていること、
を特徴とする電子制御装置。
【請求項８】
ＣＰＵと、
該ＣＰＵによって実行されるプログラムが格納されるメモリと、
マスクされる割り込みの優先レベルの最大値である割り込みマスクレベルが記憶されるマスクレベル記憶手段と、
優先レベルが前記マスクレベル記憶手段内の割り込みマスクレベルよりも高い割り込みの要求信号が発生すると、その割り込みを前記ＣＰＵに受け付けさせ、優先レベルが前記マスクレベル記憶手段内の割り込みマスクレベル以下である割り込みの要求信号が発生しても、その割り込みを前記ＣＰＵが受け付けないようにする割り込みコントローラと、
を備えたマイクロコンピュータにおいて、
前記ＣＰＵが実行するプログラムのアドレス（以下、実行アドレスという）が、前記メモリ上の特定アドレス範囲外から特定アドレス範囲内に入ったか否かと、前記実行アドレスが、前記特定アドレス範囲内から前記特定アドレス範囲外に出たか否かとを判定する判定手段と、
前記判定手段により前記実行アドレスが前記特定アドレス範囲外から前記特定アドレス範囲内に入ったと判定されると、前記マスクレベル記憶手段内の割り込みマスクレベルを特定の記憶部に記憶した後、前記マスクレベル記憶手段内の割り込みマスクレベルを、前記特定アドレス範囲に対して定められている特定の優先レベルに変更するマスクレベル変更手段と、
前記判定手段により前記実行アドレスが前記特定アドレス範囲内から前記特定アドレス範囲外に出たと判定されると、前記マスクレベル記憶手段内の割り込みマスクレベルを、前記記憶部内の割り込みマスクレベルに戻すマスクレベル復元手段と、
を備えていることを特徴とするマイクロコンピュータ。
【請求項９】
請求項８に記載のマイクロコンピュータにおいて、
前記マスクレベル変更手段は、前記マスクレベル記憶手段内の変更前の割り込みマスクレベルが、前記特定の優先レベル以上ならば、前記マスクレベル記憶手段内の割り込みマスクレベルを変更しないようになっていること、
を特徴とするマイクロコンピュータ。
【請求項１０】
請求項８又は請求項９に記載のマイクロコンピュータにおいて、
前記ＣＰＵが割り込みを受け付けて割り込み処理を行う場合と、その割り込み処理から元の処理へ復帰する場合には、前記判定手段の作動が禁止されること、
を特徴とするマイクロコンピュータ。
【請求項１１】
請求項８に記載のマイクロコンピュータにおいて、
前記特定アドレス範囲は、複数の部分特定アドレス範囲からなると共に、その各部分特定アドレス範囲に対してそれぞれ異なる優先レベルが定められており、
更に、前記判定手段は、前記実行アドレスが前記特定アドレス範囲外から前記複数の部分特定アドレス範囲のうちの何れに入ったかを区別して判定するようになっており、
前記マスクレベル変更手段は、前記判定手段により前記実行アドレスが前記特定アドレス範囲外から前記部分特定アドレス範囲の何れかに入ったと判定されると、前記マスクレベル記憶手段内の割り込みマスクレベルを前記記憶部に記憶した後、前記マスクレベル記憶手段内の割り込みマスクレベルを、前記実行アドレスが今回入った前記部分特定アドレス範囲に対して定められている特定の優先レベルに変更すること、
を特徴とするマイクロコンピュータ。
【請求項１２】
請求項１１に記載のマイクロコンピュータにおいて、
前記マスクレベル変更手段は、前記マスクレベル記憶手段内の変更前の割り込みマスクレベルが、前記特定の優先レベル以上ならば、前記マスクレベル記憶手段内の割り込みマスクレベルを変更しないようになっていること、
を特徴とするマイクロコンピュータ。
【請求項１３】
請求項１１又は請求項１２に記載のマイクロコンピュータにおいて、
前記ＣＰＵが割り込みを受け付けて割り込み処理を行う場合と、その割り込み処理から元の処理へ復帰する場合には、前記判定手段の作動が禁止されること、
を特徴とするマイクロコンピュータ。
【請求項１４】
請求項８ないし請求項１０の何れか１項に記載のマイクロコンピュータの使用方法であって、
前記ＣＰＵに実行させるプログラムのうち、優先レベルが前記特定の優先レベル以下である割り込みを禁止した状態で実行したいプログラムを、前記メモリの前記特定アドレス範囲内に格納すること、
を特徴とするマイクロコンピュータの使用方法。
【請求項１５】
請求項８ないし請求項１０の何れか１項に記載のマイクロコンピュータを備え、そのマイクロコンピュータによって制御対象を制御するための処理を行う電子制御装置であって、
前記制御対象を制御するために前記ＣＰＵが実行するプログラムのうち、優先レベルが前記特定の優先レベル以下である割り込みを禁止した状態で実行されるプログラムが、前記メモリの前記特定アドレス範囲内に格納されていること、
を特徴とする電子制御装置。
【請求項１６】
請求項１１ないし請求項１３の何れか１項に記載のマイクロコンピュータの使用方法であって、
前記ＣＰＵに実行させるプログラムのうち、優先レベルがＮ（Ｎは優先レベルを示す数）以下である割り込みを禁止した状態で実行したいプログラムを、前記メモリにおける複数の部分特定アドレス範囲のうち、優先レベルが前記Ｎに定められている部分特定アドレス範囲内に格納すること、
を特徴とするマイクロコンピュータの使用方法。
【請求項１７】
請求項１１ないし請求項１３の何れか１項に記載のマイクロコンピュータを備え、そのマイクロコンピュータによって制御対象を制御するための処理を行う電子制御装置であって、
前記制御対象を制御するために前記ＣＰＵが実行するプログラムのうち、優先レベルがＮ（Ｎは優先レベルを示す数）以下である割り込みを禁止した状態で実行されるプログラムが、前記メモリにおける複数の部分特定アドレス範囲のうち、優先レベルが前記Ｎに定められている部分特定アドレス範囲内に格納されていること、
を特徴とする電子制御装置。
【請求項１８】
ＣＰＵと、該ＣＰＵによって実行されるプログラムが格納されるメモリと、を備えたマイクロコンピュータにおいて、
前記ＣＰＵが実行するプログラムのアドレス（以下、実行アドレスという）が、前記メモリ上の特定アドレス範囲内であるか否かを判定すると共に、前記実行アドレスが前記特定アドレス範囲内であると判定している場合には、前記ＣＰＵが特定の割り込み要因の割り込みを受け付けないようにする特定割り込み制限手段を備えていること、
を特徴とするマイクロコンピュータ。
【請求項１９】
請求項１８に記載のマイクロコンピュータにおいて、
割り込み要因を示す情報が前記ＣＰＵによって書き込まれる割り込み要因設定用レジスタを備え、
前記特定割り込み制限手段は、前記割り込み要因設定用レジスタ内の情報が示す割り込み要因を、前記特定の割り込み要因として扱うこと、
を特徴とするマイクロコンピュータ。
【請求項２０】
請求項１９に記載のマイクロコンピュータにおいて、
前記割り込み要因設定用レジスタには、複数種類の割り込み要因を示す情報を書き込むことが可能になっていること、
を特徴とするマイクロコンピュータ。
【請求項２１】
請求項１８ないし請求項２０の何れか１項に記載のマイクロコンピュータにおいて、
前記特定割り込み制限手段は、前記ＣＰＵが命令フェッチ時に該ＣＰＵと前記メモリとの間のアドレスバスへ出力するアドレス値を監視し、そのアドレスバス上のアドレス値が前記特定アドレス範囲内であるか否かを判定することより、前記実行アドレスが前記特定アドレス範囲内であるか否かを判定するように構成されていること、
を特徴とするマイクロコンピュータ。
【請求項２２】
請求項１８ないし請求項２１の何れか１項に記載のマイクロコンピュータにおいて、
前記特定割り込み制限手段は、前記ＣＰＵの外部に設けられた割り込みコントローラが前記ＣＰＵに対して前記特定の割り込み要因の割り込み要求信号を出力するのを阻止することにより、前記ＣＰＵが前記特定の割り込み要因の割り込みを受け付けないようにすること、
を特徴とするマイクロコンピュータ。
【請求項２３】
請求項１８ないし請求項２２の何れか１項に記載のマイクロコンピュータにおいて、
前記メモリ上のアドレス範囲を示す情報が前記ＣＰＵによって書き込まれるアドレス範囲設定用レジスタを備え、
前記特定割り込み制限手段は、前記アドレス範囲設定用レジスタ内の情報が示すアドレス範囲を、前記特定アドレス範囲として扱うこと、
を特徴とするマイクロコンピュータ。
【請求項２４】
請求項１８ないし請求項２３の何れか１項に記載のマイクロコンピュータの使用方法であって、
前記ＣＰＵに実行させるプログラムのうち、前記特定の割り込み要因の割り込みを禁止した状態で実行したいプログラムを、前記メモリの前記特定アドレス範囲内に格納すること、
を特徴とするマイクロコンピュータの使用方法。
【請求項２５】
請求項１８ないし請求項２３の何れか１項に記載のマイクロコンピュータを備え、そのマイクロコンピュータによって制御対象を制御するための処理を行う電子制御装置であって、
前記制御対象を制御するために前記ＣＰＵが実行するプログラムのうち、前記特定の割り込み要因の割り込みを禁止した状態で実行されるプログラムが、前記メモリの前記特定アドレス範囲内に格納されていること、
を特徴とする電子制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マイクロコンピュータ及びマイクロコンピュータを備えた電子制御装置に関するものである。
【背景技術】
【０００２】
従来より、マイクロコンピュータにおいては、あるプログラムの実行中に割り込みを禁止するための方法として、そのプログラム（即ち、割り込み禁止状態で実行したいプログラム）の先頭で、割り込みを禁止するための処理が行われるようにし、そのプログラムの最後で、割り込みの禁止を解除するための処理が行われるようにする、というプログラミング方法が用いられている。
【０００３】
また、特許文献１には、実行中のプログラムがアクセスしているアドレスと、そのプログラムについてプログラムエリア設定レジスタに設定されたアクセス許可エリアのアドレスとを比較し、アクセスしているアドレスがアクセス許可エリア外のアドレスなら、ＣＰＵに割り込みをかけて不正アクセスを知らせる、ということが記載されている。
【特許文献１】特開平８−２７２６２５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
上記従来のプログラミング方法を実施したのでは、プログラムの先頭と最後でそれぞれ割り込み禁止／禁止解除のための処理をＣＰＵが実行する必要があり、ＣＰＵの処理負荷が大きくなるという問題がある。特に、割り込み禁止状態で実行したいプログラムが頻繁に呼び出されるサブルーチンである場合、ＣＰＵの処理負荷が一層大きくなってしまう。
【０００５】
更に、上記従来のプログラミング方法では、プログラム容量（プログラムを構成するデータ量）が大きくなることから、そのプログラムを格納するメモリの容量が大きくなり、延いては、マイクロコンピュータを搭載する電子制御装置のコスト増加を招いてしまう。
【０００６】
一方、上記特許文献１に記載の技術では、こうした問題を解決することはできない。
そこで、本発明は、あるプログラムを割り込み禁止状態で実行することを、ＣＰＵの処理負荷及びプログラム容量を増大させることなく実現することを目的としている。
【課題を解決するための手段】
【０００７】
請求項１のマイクロコンピュータ（以下、マイコンともいう）では、ＣＰＵがメモリに格納されているプログラムを実行する。そして特に、割り込み制限手段が設けられており、その割り込み制限手段は、ＣＰＵが実行するプログラムのアドレス（以下、実行アドレスという）が、メモリ上の特定アドレス範囲内であるか否かを判定すると共に、実行アドレスが特定アドレス範囲内であると判定している場合には、ＣＰＵが割り込みを受け付けないようにする。
【０００８】
このマイコンによれば、請求項６に記載のように、ＣＰＵに実行させるプログラムのうち、割り込み禁止状態で実行したいプログラムを、メモリの前記特定アドレス範囲内に格納しておけば、そのプログラムを割り込み禁止状態で実行することができる。そのプログラムの実行時には、割り込み制限手段により、ＣＰＵが割り込みを受け付けない（即ち、割り込み処理を実行しない）ようになるからである。
【０００９】
よって、プログラムによる割り込み禁止及び禁止解除のための処理を省略することができ、ＣＰＵの処理負荷及びプログラム容量を低減することができる。また、このため、メモリの容量も低減することができる。
【００１０】
次に、請求項２のマイコンでは、請求項１のマイコンにおいて、割り込み制限手段は、ＣＰＵが命令フェッチ時に該ＣＰＵとメモリとの間のアドレスバスへ出力するアドレス値を監視し、そのアドレスバス上のアドレス値が前記特定アドレス範囲内であるか否かを判定することより、実行アドレスが前記特定アドレス範囲内であるか否かを判定するようになっている。
【００１１】
この構成によれば、割り込み制限手段のうち、実行アドレスが特定アドレス範囲内であるか否かを判定する部分（以下、判定機能部分という）を、ＣＰＵの外部に構成することができるため、その判定機能部分の追加や削除が容易となる。
【００１２】
次に、請求項３のマイコンでは、請求項１，２のマイコンにおいて、割り込み制限手段は、ＣＰＵの外部に設けられた割り込みコントローラがＣＰＵに対して割り込み要求信号を出力するのを阻止することにより、ＣＰＵが割り込みを受け付けないようにする。
【００１３】
この構成によれば、割り込み制限手段のうち、ＣＰＵが割り込みを受け付けないようにするための部分（以下、割り込み禁止機能部分という）を、ＣＰＵの外部に構成することができるため、その割り込み禁止機能部分の追加や削除が容易となる。
【００１４】
次に、請求項４のマイコンでは、請求項１〜３のマイコンにおいて、メモリ上のアドレス範囲を示す情報がＣＰＵによって書き込まれるアドレス範囲設定用レジスタが設けられている。そして、割り込み制限手段は、アドレス範囲設定用レジスタ内の情報が示すアドレス範囲を、前記特定アドレス範囲として扱うようになっている。つまり、割り込み制限手段は、実行アドレスが、アドレス範囲設定用レジスタ内の情報が示す特定アドレス範囲内であるか否かを判定するようになっている。
【００１５】
このため、アドレス範囲設定用レジスタに書き込む内容によって特定アドレス範囲を任意に設定することができる。よって、このマイコンによれば、割り込み禁止状態で実行したいプログラムのサイズなどに応じて、前記特定アドレス範囲を設定できるようになり、高い汎用性が得られる。
【００１６】
次に、請求項５のマイコンでは、請求項１〜４のマイコンにおいて、ＣＰＵが割り込み制限手段の動作状態を保持するための状態保持用命令を実行すると、その状態保持用命令による動作状態の保持を解除するための解除用命令をＣＰＵが実行するまでの間、割り込み制限手段は、その状態保持用命令が実行された時になっている動作状態を保持するようになっている。尚、割り込み制限手段の動作状態とは、ＣＰＵが割り込みを受け付けないようにする動作状態と、ＣＰＵが割り込みを受け付けることができるようにする動作状態との何れかである。
【００１７】
このような請求項５のマイコンによれば、特定アドレス範囲内のプログラムＰａから、特定アドレス範囲外のプログラムＰｂを呼び出して、そのプログラムＰｂを実行する際に、必要により、割り込み禁止状態が維持されるようにすることができる。
【００１８】
例えば、特定アドレス範囲外のサブルーチンプログラムＰｂを特定アドレス範囲外の他のプログラムＰｃから呼び出した場合には、割り込み禁止としないが、そのサブルーチンプログラムＰｂを特定アドレス範囲内のプログラムＰａから呼び出した場合には、割り込み禁止状態を継続したい、つまり呼び出し元の状態を引き継いで処理を行いたい、という場合がある。そして、これを実現するためには、特定アドレス範囲内のプログラムＰａから特定アドレス範囲外のサブルーチンプログラムＰｂを呼び出す際に上記状態保持用命令が実行され、呼び出したサブルーチンプログラムＰｂから戻ると上記解除用命令が実行されるように、プログラムＰａを作成すれば良い。
【００１９】
一方、請求項７の電子制御装置は、請求項６に記載の使用方法が適用された電子制御装置である。即ち、請求項７の電子制御装置は、請求項１〜５のマイコンを備え、そのマイコンによって制御対象を制御するための処理を行う電子制御装置であって、制御対象を制御するためにＣＰＵが実行するプログラムのうち、割り込み禁止状態で実行されるプログラムが、メモリの前記特定アドレス範囲内に格納されていることを特徴としている。
【００２０】
そして、この電子制御装置によれば、プログラム容量の低減により、必要なメモリ容量を抑制することができ、コスト増加を防止することができる。また、ＣＰＵの処理負荷が低減されるため、制御性能を高めることができる。
【００２１】
次に、請求項８のマイコンでは、ＣＰＵがメモリに格納されているプログラムを実行する。また、割り込みマスクレベルが記憶されるマスクレベル記憶手段と、割り込みコントローラを備えている。そして、割り込みコントローラは、優先レベルがマスクレベル記憶手段内の割り込みマスクレベルよりも高い割り込みの要求信号が発生すると、その割り込みをＣＰＵに受け付けさせる（即ち、その割り込みに該当する割り込み処理を実行させる）が、優先レベルがマスクレベル記憶手段内の割り込みマスクレベル以下である割り込みの要求信号が発生しても、その割り込みをＣＰＵが受け付けないようにする（即ち、その割り込みに該当する割り込み処理を実行しないようにする）。よって、優先レベルがマスクレベル記憶手段内の割り込みマスクレベル以下である割り込みは、起動されずにマスク（禁止）されることとなる。
【００２２】
そして特に、請求項８のマイコンには、以下の判定手段とマスクレベル変更手段とマスクレベル復元手段とが備えられている。
判定手段は、ＣＰＵが実行するプログラムのアドレスである実行アドレスが、メモリ上の特定アドレス範囲外から特定アドレス範囲内に入ったか否かと、実行アドレスが、特定アドレス範囲内から特定アドレス範囲外に出たか否かとを判定する。
【００２３】
そして、判定手段により実行アドレスが特定アドレス範囲外から特定アドレス範囲内に入ったと判定されると、マスクレベル変更手段が、マスクレベル記憶手段内の割り込みマスクレベルを特定の記憶部に記憶した後、マスクレベル記憶手段内の割り込みマスクレベルを、前記特定アドレス範囲に対して定められている特定の優先レベルに変更する。
【００２４】
また、判定手段により実行アドレスが特定アドレス範囲内から特定アドレス範囲外に出たと判定されると、マスクレベル復元手段が、マスクレベル記憶手段内の割り込みマスクレベルを、前記記憶部内の割り込みマスクレベル（即ち、実行アドレスが特定アドレス範囲外から特定アドレス範囲内になったと判定された際にマスクレベル変更手段によって記憶部内に退避された元の割り込みマスクレベル）に戻す。
【００２５】
このようなマイコンによれば、請求項１４に記載のように、ＣＰＵに実行させるプログラムのうち、優先レベルが前記特定の優先レベル以下である割り込み（以下、特定の優先レベル以下の割り込みともいう）を禁止した状態で実行したいプログラムを、メモリの前記特定アドレス範囲内に格納しておけば、そのプログラムを、特定の優先レベル以下の割り込みを禁止した状態で実行することができる。特定アドレス範囲内に格納されたプログラムの実行時には、マスクレベル変更手段により、マスクレベル記憶手段内の割り込みマスクレベルが自動的に前記特定の優先レベルに設定されるからである。
【００２６】
よって、このマイコンによれば、特定の優先レベル以下の割り込みを禁止した状態で実行したいプログラムがある場合に、そのプログラムの先頭で特定の優先レベル以下の割り込みを禁止するための処理を行い該プログラムの最後で特定の優先レベル以下の割り込みの禁止を解除するための処理を行うようにする必要がなくなる。
【００２７】
尚、特定の優先レベル以下の割り込みを禁止するための処理としては、マスクレベル記憶手段内の割り込みマスクレベルを特定の優先レベルに書き換える処理であり、特定の優先レベル以下の割り込みの禁止を解除するための処理としては、マスクレベル記憶手段内の割り込みマスクレベルを特定の優先レベルに書き換える前の元の割り込みマスクレベルに戻す処理が考えられる。そして、そのような処理をプログラム中で行う必要がなくなる。
【００２８】
このため、ＣＰＵの処理負荷及びプログラム容量を低減することができ、メモリの容量も低減することができる。
次に、請求項９のマイコンでは、請求項８のマイコンにおいて、マスクレベル変更手段は、マスクレベル記憶手段内の変更前の割り込みマスクレベルが、前記特定の優先レベル以上ならば、マスクレベル記憶手段内の割り込みマスクレベルを変更しないようになっている。
【００２９】
この構成によれば、特定アドレス範囲外のプログラムによってマスクレベル記憶手段内の割り込みマスクレベルが前記特定の優先レベル以上に設定されている状態で、特定アドレス範囲外の何れかのプログラムから特定アドレス範囲内のプログラムが呼び出された場合に、マスクレベル記憶手段内の割り込みマスクレベルが、呼び出し元のプログラムがマスクしたい割り込みの優先レベルよりも低くなってしまうこと（即ち、呼び出し元のプログラムがマスクしたい割り込みが割り込んでしまうこと）を防止することができる。つまり、呼び出し元のプログラムの実行時に設定されていた割り込みマスクレベルを保証することができる。
【００３０】
次に、請求項１０のマイコンでは、請求項８，９のマイコンにおいて、ＣＰＵが割り込みを受け付けて割り込み処理を行う場合と、その割り込み処理から元の処理へ復帰する場合には、判定手段の作動が禁止されるようになっている。
【００３１】
この構成によれば、下記の問題（１），（２）を解決でき有利である。
（１）まず、特定アドレス範囲内のプログラムの実行中に、その特定アドレス範囲に対して定められた特定の優先レベルよりも高レベルの割り込みが発生して、特定アドレス範囲外の割り込み処理のプログラムが実行された場合、その割り込み処理中の割り込みマスクレベルは、その割り込みの要因に対応したレベルに設定したい。しかし、この場合、実行アドレスが特定アドレス範囲内から特定アドレス範囲外へ移ることとなるため、そのことが判定手段によって判定されると、マスクレベル復元手段が作動して、マスクレベル記憶手段内の割り込みマスクレベルが、その時点で記憶部に記憶されている割り込みマスクレベルに設定されてしまう。
【００３２】
（２）また仮に、割り込み処理中の割り込みマスクレベルが、その割り込みの要因に対応したレベルに設定されたとしても、割り込み処理から元の処理へ戻る際には、実行アドレスが特定アドレス範囲外から特定アドレス範囲内へ移ることとなるため、そのことが判定手段によって判定されると、マスクレベル変更手段が作動して、記憶部に上記割り込みの要因に対応した割り込みマスクレベルが記憶されてしまう。すると、その後、特定アドレス範囲内のプログラムの実行が終了して特定アドレス範囲外のプログラムへ戻る場合に、マスクレベル記憶手段内の割り込みマスクレベルを、元の値に戻すことができなくなる。
【００３３】
これに対して請求項１０のマイコンによれば、ＣＰＵが割り込みを受け付けて割り込み処理を行う場合と、その割り込み処理から元の処理へ復帰する場合には、判定手段の作動が禁止されるため、マスクレベル復元手段とマスクレベル変更手段が作動せず、上記問題を解決することができるのである。
【００３４】
次に、請求項１１のマイコンでは、請求項８のマイコンにおいて、前記特定アドレス範囲は、複数の部分特定アドレス範囲からなると共に、その各部分特定アドレス範囲に対してそれぞれ異なる優先レベルが定められている。
【００３５】
更に、判定手段は、実行アドレスが特定アドレス範囲外から前記複数の部分特定アドレス範囲のうちの何れに入ったかを区別して判定するようになっている。
そして、マスクレベル変更手段は、判定手段により実行アドレスが特定アドレス範囲外から前記部分特定アドレス範囲の何れかに入ったと判定されると、マスクレベル記憶手段内の割り込みマスクレベルを前記記憶部に記憶した後、マスクレベル記憶手段内の割り込みマスクレベルを、実行アドレスが今回入った部分特定アドレス範囲に対して定められている特定の優先レベルに変更する。
【００３６】
このようなマイコンによれば、請求項１６に記載のように、ＣＰＵに実行させるプログラムのうち、優先レベルがＮ（Ｎは優先レベルを示す数）以下である割り込み（以下、優先レベルＮ以下の割り込みともいう）を禁止した状態で実行したいプログラムを、メモリにおける複数の部分特定アドレス範囲のうち、優先レベルがＮに定められている部分特定アドレス範囲内に格納しておけば、そのプログラムを、優先レベルＮ以下の割り込みを禁止した状態で実行することができる。よって、実行中に禁止したい割り込みの優先レベルが異なる複数のプログラムがあっても対応することができる。
【００３７】
次に、請求項１２のマイコンでは、請求項１１のマイコンにおいて、マスクレベル変更手段は、マスクレベル記憶手段内の変更前の割り込みマスクレベルが、前記特定の優先レベル（即ち、実行アドレスが今回入った部分特定アドレス範囲に対して定められている優先レベル）以上ならば、マスクレベル記憶手段内の割り込みマスクレベルを変更しないようになっている。そして、このマイコンによれば、請求項９のマイコンについて述べた効果が得られる。
【００３８】
次に、請求項１３のマイコンでは、請求項１１，１２のマイコンにおいて、ＣＰＵが割り込みを受け付けて割り込み処理を行う場合と、その割り込み処理から元の処理へ復帰する場合には、判定手段の作動が禁止されるようになっている。そして、このマイコンによれば、請求項１０のマイコンについて述べた効果が得られる。
【００３９】
一方、請求項１５の電子制御装置は、請求項１４に記載の使用方法が適用された電子制御装置である。即ち、請求項１５の電子制御装置は、請求項８〜請求項１０のマイコンを備え、そのマイコンによって制御対象を制御するための処理を行う電子制御装置であって、制御対象を制御するためにＣＰＵが実行するプログラムのうち、優先レベルが前記特定の優先レベル以下である割り込みを禁止した状態で実行されるプログラムが、メモリの前記特定アドレス範囲内に格納されていることを特徴としている。
【００４０】
また、請求項１７の電子制御装置は、請求項１６に記載の使用方法が適用された電子制御装置である。即ち、請求項１７の電子制御装置は、請求項１１〜１３のマイコンを備え、そのマイコンによって制御対象を制御するための処理を行う電子制御装置であって、制御対象を制御するためにＣＰＵが実行するプログラムのうち、優先レベルがＮ以下である割り込みを禁止した状態で実行されるプログラムが、メモリにおける複数の部分特定アドレス範囲のうち、優先レベルがＮに定められている部分特定アドレス範囲内に格納されていることを特徴としている。
【００４１】
そして、請求項１５，１７の電子制御装置によれば、プログラム容量の低減により、必要なメモリ容量を抑制することができ、コスト増加を防止することができる。また、ＣＰＵの処理負荷が低減されるため、制御性能を高めることができる。
【００４２】
次に、請求項１８のマイコンでは、ＣＰＵがメモリに格納されているプログラムを実行する。そして特に、特定割り込み制限手段が設けられており、その特定割り込み制限手段は、ＣＰＵが実行するプログラムのアドレスである実行アドレスが、メモリ上の特定アドレス範囲内であるか否かを判定すると共に、実行アドレスが特定アドレス範囲内であると判定している場合には、ＣＰＵが特定の割り込み要因の割り込みを受け付けないようにする。
【００４３】
このマイコンによれば、請求項２４に記載のように、ＣＰＵに実行させるプログラムのうち、前記特定の割り込み要因の割り込みを禁止した状態で実行したいプログラムを、メモリの特定アドレス範囲内に格納しておけば、そのプログラムを、特定の割り込み要因の割り込みを禁止した状態で実行することができる。そのプログラムの実行時には、特定割り込み制限手段により、ＣＰＵが特定の割り込み要因の割り込みを受け付けない（即ち、特定の割り込み要因の割り込み処理を実行しない）ようになるからである。
【００４４】
よって、このマイコンによれば、特定の割り込み要因の割り込みを禁止した状態で実行したいプログラムがある場合に、そのプログラムの先頭で特定の割り込み要因の割り込みを禁止するための処理を行い該プログラムの最後で特定の割り込み要因の割り込み禁止を解除するための処理を行うようにする必要がなくなる。このため、ＣＰＵの処理負荷及びプログラム容量を低減することができ、メモリの容量も低減することができる。
【００４５】
次に、請求項１９のマイコンでは、請求項１８のマイコンにおいて、割り込み要因を示す情報がＣＰＵによって書き込まれる割り込み要因設定用レジスタが設けられている。そして、特定割り込み制限手段は、割り込み要因設定用レジスタ内の情報が示す割り込み要因を、前記特定の割り込み要因として扱うようになっている。つまり、特定割り込み制限手段は、割り込み要因設定用レジスタ内の情報が示す割り込み要因の割り込みをＣＰＵが受け付けないようにする。
【００４６】
このため、割り込み要因設定用レジスタに書き込む内容により、禁止される割り込みの要因を任意に設定することができる。よって、このマイコンによれば、高い汎用性が得られる。
【００４７】
次に、請求項２０のマイコンでは、請求項１９のマイコンにおいて、割り込み要因設定用レジスタには、複数種類の割り込み要因を示す情報を書き込むことが可能になっている。そして、この構成によれば、特定アドレス範囲内のプログラムが実行されるときに禁止される割り込みの要因を複数指定することができるため、プログラム設計の自由度を向上させることができる。
【００４８】
次に、請求項２１のマイコンでは、請求項１８〜２０のマイコンにおいて、特定割り込み制限手段は、ＣＰＵが命令フェッチ時に該ＣＰＵとメモリとの間のアドレスバスへ出力するアドレス値を監視し、そのアドレスバス上のアドレス値が前記特定アドレス範囲内であるか否かを判定することより、実行アドレスが前記特定アドレス範囲内であるか否かを判定するようになっている。
【００４９】
この構成によれば、特定割り込み制限手段のうち、実行アドレスが特定アドレス範囲内であるか否かを判定する判定機能部分を、ＣＰＵの外部に構成することができるため、その判定機能部分の追加や削除が容易となる。
【００５０】
次に、請求項２２のマイコンでは、請求項１８〜２１のマイコンにおいて、特定割り込み制限手段は、ＣＰＵの外部に設けられた割り込みコントローラがＣＰＵに対して前記特定の割り込み要因の割り込み要求信号を出力するのを阻止することにより、ＣＰＵが前記特定の割り込み要因の割り込みを受け付けないようにする。
【００５１】
この構成によれば、特定割り込み制限手段のうち、ＣＰＵが特定の割り込み要因の割り込みを受け付けないようにするための部分を、ＣＰＵの外部に構成することができるため、その部分の追加や削除が容易となる。
【００５２】
次に、請求項２３のマイコンでは、請求項１８〜２２のマイコンにおいて、メモリ上のアドレス範囲を示す情報がＣＰＵによって書き込まれるアドレス範囲設定用レジスタが設けられている。そして、特定割り込み制限手段は、アドレス範囲設定用レジスタ内の情報が示すアドレス範囲を、前記特定アドレス範囲として扱うようになっている。つまり、特定割り込み制限手段は、実行アドレスが、アドレス範囲設定用レジスタ内の情報が示す特定アドレス範囲内であるか否かを判定するようになっている。
【００５３】
このマイコンによれば、アドレス範囲設定用レジスタに書き込む内容によって特定アドレス範囲を任意に設定することができ、高い汎用性が得られる。
一方、請求項２５の電子制御装置は、請求項２４に記載の使用方法が適用された電子制御装置である。即ち、請求項２５の電子制御装置は、請求項１８〜請求項２３のマイコンを備え、そのマイコンによって制御対象を制御するための処理を行う電子制御装置であって、制御対象を制御するためにＣＰＵが実行するプログラムのうち、前記特定の割り込み要因の割り込みを禁止した状態で実行されるプログラムが、メモリの前記特定アドレス範囲内に格納されていることを特徴としている。
【００５４】
そして、この電子制御装置によれば、プログラム容量の低減により、必要なメモリ容量を抑制することができ、コスト増加を防止することができる。また、ＣＰＵの処理負荷が低減されるため、制御性能を高めることができる。
【発明を実施するための最良の形態】
【００５５】
以下に、本発明が適用された実施形態の電子制御装置について説明する。尚、本実施形態の電子制御装置（以下、ＥＣＵという）は、例えば車両に搭載されて、その車両におけるエンジン等の制御対象を制御するものである。
［第１実施形態］
図１に示すように、第１実施形態のＥＣＵ１は、制御対象を制御するための処理を行うマイコン３を備えている。そして、マイコン３は、プログラムを実行するＣＰＵ５と、ＣＰＵ５によって実行されるプログラムが格納されるＲＯＭ７及びＲＡＭ９と、割り込みコントローラ（ＩＮＴＣ）１１と、入力ポート１３と、内部タイマ１５と、割り込みマスク判定部１７とを備えている。尚、以下では、ＲＯＭ７とＲＡＭ９を総称してメモリ７，９と言う。
【００５６】
ＣＰＵ５には、ステータスレジスタ１９が備えられており、そのステータスレジスタ１９には、割り込みマスクレベル（詳しくは、その割り込みマスクレベルを示すデジタル値であり、以下、ＩＭと記す）が書き込まれるようになっている。このＩＭは、マスクされる割り込みの優先レベルの最大値であり、そのＩＭ以下の優先レベルの割り込みはマスクされることを意味している。
【００５７】
また、割り込みコントローラ１１は、優先順位判定部１１ａと、レベル比較部１１ｂと、論理積回路１１ｃとを備えている。
そして、割り込みコントローラ１１には、入力ポート１３や内部タイマ１５などから、様々な割り込み要因の割り込み要求信号（周辺割り込み要求信号）が入力される。
【００５８】
例えば、マイコン３外部からの信号が入力される入力ポート１３の入力端子（図示省略）のうち、所定数（本実施形態では２以上）の入力端子は、外部割り込みを発生させるための割り込み入力端子となっている。そして、各割り込み入力端子への入力信号が所定の状態変化をすると、入力ポート１３から割り込みコントローラ１１へ、その割り込み入力端子への入力信号が状態変化したことを要因とする外部割り込みの割り込み要求信号が出力される。また、内部タイマ１５は、複数のタイマ機能を備えており、その各タイマ機能によって設定時間の経過が検知されると、内部タイマ１５から割り込みコントローラ１１へ、そのタイマ機能の設定時間が経過したことを要因とするタイマ割り込みの割り込み要求信号が出力される。尚、図示は省略しているが、割り込みコントローラ１１へは、例えば、マイコン３の外部又は内部に設けられた通信回路が通信データを受信したことを要因とする通信割り込みの割り込み要求信号なども入力される。
【００５９】
そして、割り込みコントローラ１１では、入力ポート１３や内部タイマ１５などからの割り込み要求信号が優先順位判定部１１ａに入力され、その優先順位判定部１１ａは、入力される割り込み要求信号のうち、優先レベルが一番高い割り込みの割り込み要求信号をレベル比較部１１ｂに出力する。尚、各割り込みの優先レベルは予め定められている。
【００６０】
レベル比較部１１ｂは、優先順位判定部１１ａから出力された割り込み要求信号に対応する割り込みの優先レベル（以下、ＩＬと記す）と、ＣＰＵ５のステータスレジスタ１９に記憶されているＩＭとを比較する。そして、レベル比較部１１ｂは、「ＩＬ＞ＩＭ」ならば（つまり、ＩＬの方がＩＭよりもレベルが高ければ）、優先順位判定部１１ａからの割り込み要求信号を論理積回路１１ｃへ出力するが、「ＩＬ≦ＩＭ」ならば（つまり、ＩＬがＩＭ以下ならば）、優先順位判定部１１ａからの割り込み要求信号を論理積回路１１ｃに出力せずにマスクする。
【００６１】
論理積回路１１ｃは、割り込みマスク判定部１７から後述する割り込みマスク信号が出力されていなければ、レベル比較部１１ｂからの割り込み要求信号をＣＰＵ５へ出力する。すると、ＣＰＵ５は、その割り込み要求信号に対応する割り込みを受け付けて、その割り込み要求信号に対応する割り込み処理を実行する。よって、割り込みマスク判定部１７から割り込みマスク信号が出力されていない場合には、ステータスレジスタ１９内のＩＭよりも優先レベルが高い割り込みの割り込み要求信号が割り込みコントローラ１１に入力されると、その中で最も優先レベルの高い割り込み要求信号が割り込みコントローラ１１からＣＰＵ５に出力されて、ＣＰＵ５が該当する割り込み処理を実行することとなる。
【００６２】
また、論理積回路１１ｃは、割り込みマスク判定部１７から割り込みマスク信号が出力されていれば、レベル比較部１１ｂからの割り込み要求信号をＣＰＵ５に出力せずにマスクする。このため、割り込みマスク判定部１７から割り込みマスク信号が出力されている場合には、割り込みコントローラ１１のレベル比較部１１ｂから割り込み要求信号が出力されたとしても、ＣＰＵ５は割り込みを受け付けないようになる。尚、本実施形態において、割り込みマスク信号は、ハイアクティブの信号である。
【００６３】
次に、割り込みマスク判定部１７は、アドレス範囲レジスタ１７ａと、アドレス比較部１７ｂとを備えている。
アドレス範囲レジスタ１７ａには、ＣＰＵ５により、メモリ７，９上の任意のアドレス範囲を示す情報が書き込まれる。そして、ＣＰＵ５は、動作開始直後に起動されるイニシャルルーチンの実行により、アドレス範囲レジスタ１７ａにアドレス範囲の情報を書き込むようになっている。また、その情報としては、例えばアドレス範囲の先頭アドレスと最終アドレスである。
【００６４】
そして、アドレス比較部１７ｂは、ＣＰＵ５が命令フェッチ時に該ＣＰＵ５とメモリ７，９との間の命令フェッチバスとしてのアドレスバス２１へ出力するアドレス値（即ち、ＣＰＵ５が実行するプログラムのアドレス）を監視して、そのアドレス値が、アドレス範囲レジスタ１７ａ内の情報が示すアドレス範囲内であるか否かを判定し、そのアドレス範囲内であると判定している場合に、割り込みコントローラ１１へ上記割り込みマスク信号を出力する。
【００６５】
このようなマイコン３では、メモリ７，９の記憶領域のうち、アドレス範囲レジスタ１７ａ内の情報が示すアドレス範囲に記憶されているプログラムをＣＰＵ３が実行している場合には、割り込みマスク判定部１７から割り込みコントローラ１１へ割り込みマスク信号が出力される。そして、割り込みマスク信号が出力されると、たとえステータスレジスタ１９内のＩＭよりも優先レベルが高い割り込みの割り込み要求信号が割り込みコントローラ１１に入力されても、その割り込み要求信号がＣＰＵ５に出力されず、ＣＰＵ５は割り込みを受け付けなくなる。つまり、割り込みが禁止される。よって、アドレス範囲レジスタ１７ａ内の情報が示すアドレス範囲は、割り込み禁止アドレス範囲（即ち、割り込みが禁止されるアドレス範囲）ということになる。
【００６６】
そこで、本実施形態のＥＣＵ１では、メモリ７，９における特定のアドレス範囲の情報がアドレス範囲レジスタ１７ａに書き込まれるようにプログラミングすると共に、ＣＰＵ５に実行させるプログラム（制御対象を制御するためのプログラム）のうち、割り込み禁止状態で実行したいプログラムを、その特定のアドレス範囲内に格納するようにしている。
【００６７】
例えば、図２に示すように、メモリ７，９におけるプログラム格納用のアドレス空間（プログラム格納領域）のうち、Ａ番地からＢ番地までのアドレス範囲には、割り込み許可状態で実行しても良い処理Ｘのプログラムが格納されている。そして、その処理Ｘのプログラムでは、最初のＳ１１０にて、割り込み許可状態で実行しても良い処理が行われ、次のＳ１２０にて、割り込み禁止状態で実行したい処理Ａのプログラムをサブルーチンコールするが、その処理Ａのプログラムは、Ｃ番地からＤ番地までのアドレス範囲に格納されている。そして更に、そのＣ番地からＤ番地までのアドレス範囲を示す情報が、アドレス範囲レジスタ１７ａに書き込まれるようにしている。
【００６８】
このため、処理Ｘのプログラムから処理Ａのプログラムが呼び出されると、その処理Ａのプログラムが実行されている間（そのプログラムへジャンプした時点から該プログラムを抜けるまでの間）は、前述した割り込みコントローラ１１内の論理積回路１１ｃと割り込みマスク判定部１７の作用により、ＣＰＵ５が割り込みを受け付けるのが阻止され、その処理Ａのプログラムは割り込み禁止状態で実行されることとなる。
【００６９】
以上のような第１実施形態のＥＣＵ１に設けられたマイコン３によれば、割り込み禁止状態で実行したいプログラムがある場合に、そのプログラムの先頭で割り込みを禁止するための処理を行い該プログラムの最後で割り込みの禁止を解除（割り込みを許可）するための処理を行う、というプログラミングをする必要がなくなる。そして、そのような処理が省略できることにより、ＣＰＵ３の処理負荷及びプログラム容量を低減することができ、更に、プログラムを記憶するためのメモリ容量も低減することができる。
【００７０】
そして、そのようなマイコン３を備えた本実施形態のＥＣＵ１によれば、メモリ容量の低減により、コスト増加を防止することができ、更に、ＣＰＵ５の処理負荷が低減されるため、制御性能を高めることができる。
【００７１】
また、本実施形態のマイコン３によれば、割り込み禁止アドレス範囲を、アドレス範囲レジスタ１７ａに書き込む内容によって任意に設定することができる。よって、そのアドレス範囲を、割り込み禁止状態で実行したいプログラムのサイズなどに応じて設定できるようになり、高い汎用性が得られる。
【００７２】
また、本実施形態のマイコン３では、ＣＰＵ５の外部に設けた割り込みマスク判定部１７が、アドレスバス２１上のアドレス値を監視することにより、ＣＰＵ５の実行アドレスがアドレス範囲レジスタ１７ａにより設定されたアドレス範囲内か否かを判定するようになっているため、その割り込みマスク判定部１７の追加や削除が容易である。更に、ＣＰＵ５の外部に設けた論理積回路１１ｃにより、割り込みコントローラ１１からＣＰＵ５に割り込み要求信号が出力されるのを阻止することで、ＣＰＵ５が割り込みを受け付けないようにしているため、その論理積回路１１ｃの追加や削除も容易である。
【００７３】
尚、マイコン３において、割り込み禁止アドレス範囲は固定であっても良い。この場合、例えば、アドレス範囲レジスタ１７ａに相当する部分に予め固定値がセットされる構成が考えられる。
【００７４】
また、論理積回路１１ｃをＣＰＵ５内に設けて、割り込みコントローラ１１からの割り込み要求信号をＣＰＵ５側でマスクするようにしても良い。
更に、割り込みマスク判定部１７もＣＰＵ５内に設けても良い。また、その場合には、例えば、ＣＰＵ５におけるプログラムカウンタの値を監視して、その値が、割り込み禁止アドレス範囲内であるか否かを判定するように構成することもできる。
【００７５】
一方、上記実施形態では、割り込みマスク判定部１７と論理積回路１１ｃが、割り込み制限手段に相当している。また、アドレス範囲レジスタ１７ａが、アドレス範囲設定用レジスタに相当している。
［第２実施形態］
第２実施形態のＥＣＵ１は、第１実施形態と比較すると、下記の点が異なっている。
【００７６】
まず、マイコン３における割り込みマスク判定部１７内に、１ビットの状態変化禁止レジスタ１７ｃが追加されている。
そして、その状態変化禁止レジスタ１７ｃには、ＣＰＵ５が所定のビットセット命令を実行すると“１”が書き込まれ、ＣＰＵ５が所定のビットクリア命令を実行すると“０”が書き込まれる。
【００７７】
更に、割り込みマスク判定部１７では、状態変化禁止レジスタ１７ｃに“１”が書き込まれると、アドレス比較部１７ｂの判定結果が保持され、その結果、アドレス比較部１７ｂから割り込みコントローラ１１への出力（即ち、割り込みマスク信号を出力する／しないの状態）が保持される。そして、状態変化禁止レジスタ１７ｃに“０”が書き込まれると、上記保持状態が解除される。
【００７８】
よって、アドレス比較部１７ｂが割り込みマスク信号を出力している場合に、状態変化禁止レジスタ１７ｃに“１”が書き込まれると、ＣＰＵ５が割り込みを受け付けない状態（割り込み禁止状態）が保持されることとなる。
【００７９】
そして、このような第２実施形態のマイコン３によれば、割り込み禁止アドレス範囲内のプログラムＰａから、割り込み禁止アドレス範囲外のプログラムＰｂを呼び出して、そのプログラムＰｂを実行する際に、必要により、割り込み禁止状態が維持されるようにすることができる。
【００８０】
具体的に説明すると、例えば、割り込み禁止アドレス範囲外のサブルーチンプログラムＰｂを割り込み禁止アドレス範囲外の他のプログラムＰｃから呼び出した場合には、割り込み禁止としないが、そのサブルーチンプログラムＰｂを割り込み禁止アドレス範囲内のプログラムＰａから呼び出した場合には、割り込み禁止状態を継続したい、という場合がある。
【００８１】
そして、その場合には、割り込み禁止アドレス範囲内のプログラムＰａから割り込み禁止アドレス範囲外のサブルーチンプログラムＰｂを呼び出す際に、状態変化禁止レジスタ１７ｃについてのビットセット命令（状態保持用命令に相当）が実行され、呼び出したサブルーチンプログラムＰｂから元のプログラムＰａに戻ると状態変化禁止レジスタ１７ｃについてのビットクリア命令（解除用命令に相当）が実行されるように、プログラムＰａを作成すれば良い。
【００８２】
尚、状態変化禁止レジスタ１７ｃに“１”が書き込まれた場合に、アドレス比較部１７ｂの判定結果ではなく、そのアドレス比較部１７ｂの出力自体がラッチされる構成でも良い。また、状態保持／保持解除のための命令としては、状態変化禁止レジスタ１７ｃについてのビットセット命令／ビットクリア命令に限らず、例えば他の専用命令でも良い。
［第３実施形態］
図４に示す第３実施形態のＥＣＵ１は、第１実施形態と比較すると、マイコン３が下記の点で異なっている。
【００８３】
まず、割り込みマスク判定部１７と、割り込みコントローラ１１内の論理積回路１１ｃが削除されている。このため、レベル比較部１１ｂからの割り込み要求信号が無条件でＣＰＵ５に出力される。
【００８４】
また、ＣＰＵ５には、割り込みの優先レベル（本実施形態では１〜ｎのｎ通りで、ｎは２以上の整数）がそれぞれ定められたアドレス範囲ＰＡ１〜ＰＡｎであって、それに定められた優先レベル以下の割り込みを禁止した状態で実行したいプログラムが格納されるアドレス範囲ＰＡ１〜ＰＡｎを設定するためのアドレス範囲レジスタＡＲ１〜ＡＲｎが設けられている。そして、アドレス範囲レジスタＡＲｍ（ｍは１〜ｎの何れか）には、それに対応する優先レベル（＝ｍ）以下の割り込みを禁止した状態で実行したいプログラムを格納するアドレス範囲ＰＡｍを示す情報が、当該ＣＰＵ５によって書き込まれるようになっている。
【００８５】
尚、ＣＰＵ５は、動作開始直後に起動されるイニシャルルーチンの実行により、アドレス範囲レジスタＡＲ１〜ＡＲｎの各々にアドレス範囲の情報を書き込むようになっている。また、その情報としては、例えばアドレス範囲の先頭アドレスと最終アドレスである。一方、前述の実施形態では図示を省略していたが、ＣＰＵ５にはプログラムカウンタ２３も備えられている。また、以下では、アドレス範囲レジスタＡＲｍに書き込まれた情報が示すアドレス範囲のことを、アドレス範囲レジスタＡＲｍによって設定されたアドレス範囲ＰＡｍという。
【００８６】
そして、図５に示すように、メモリ７，９におけるプログラム格納用のアドレス空間のうち、アドレス範囲レジスタＡＲ１〜ＡＲｎによって設定されたアドレス範囲ＰＡ１〜ＰＡｎの各々には、ＣＰＵ５に実行させるプログラム（制御対象を制御するためのプログラム）のうち、そのアドレス範囲に定められている優先レベル以下の割り込みを禁止した状態で実行したいプログラムが格納されている。
【００８７】
即ち、アドレス範囲レジスタＡＲ１によって設定されたアドレス範囲ＰＡ１（この例ではＣ番地〜Ｄ番地）には、優先レベルが１以下の割り込みを禁止した状態で実行したいプログラムが格納されており、アドレス範囲レジスタＡＲ２によって設定されたアドレス範囲ＰＡ２（この例ではＥ番地〜Ｆ番地）には、優先レベルが２以下の割り込みを禁止した状態で実行したいプログラムが格納されている。そして同様に、アドレス範囲レジスタＡＲｎによって設定されたアドレス範囲ＰＡｎ（この例ではＸ番地〜Ｙ番地）には、優先レベルがｎ以下の割り込みを禁止した状態（即ち、全ての割り込みを禁止した状態）で実行したいプログラムが格納されている。
【００８８】
また、図５に示すように、アドレス範囲レジスタＡＲ１〜ＡＲｎの何れによっても設定されていないアドレス範囲であって、アドレス範囲ＰＡ１〜ＰＡｎ以外のアドレス範囲（この例ではＡ番地〜Ｂ番地）には、全ての割り込みを許可した状態で実行しても良いプログラム（通常プログラム）が格納されている。
【００８９】
更に、図４に示すように、ＣＰＵ５には、割り込みマスクレベル制御部２５が設けられており、その割り込みマスクレベル制御部２５は、プログラムの分岐命令（ブランチ命令、ジャンプ命令、リターンサブルーチン命令など）が実行された時に図６の動作を行う。
【００９０】
そして、図６に示すように、割り込みマスクレベル制御部２５が動作すると、まず、分岐先のアドレスであるプログラムカウンタ２３の値（以下、ＰＣ値という）が、アドレス範囲レジスタＡＲ１〜ＡＲｎによって設定された何れかのアドレス範囲ＰＡ１〜ＰＡｎ内に入っているか否かと、入っているならばどのアドレス範囲に入っているかを判定し（Ｓ３１０〜Ｓ３３０）、ＰＣ値が何れかのアドレス範囲ＰＡ１〜ＰＡｎ内であれば、そのＰＣ値が入っているアドレス範囲ＰＡｍに対応する優先レベルｍを、ＩＭ候補値として記憶する（Ｓ３４０〜Ｓ３６０）。例えば、ＰＣ値がアドレス範囲ＰＡ１内であれば、１をＩＭ候補値として記憶し（Ｓ３４０）、ＰＣ値がアドレス範囲ＰＡ２内であれば、２をＩＭ候補値として記憶する（Ｓ３５０）。
【００９１】
次に、範囲内フラグがオンされているか否かを判定する（Ｓ３７０）。尚、範囲内フラグは、ＰＣ値がアドレス範囲ＰＡ１〜ＰＡｎ内の場合にオンされるフラグである。
そして、範囲内フラグがオンされていれば（Ｓ３７０：ＹＥＳ）、今回の動作時以前からＰＣ値がアドレス範囲ＰＡ１〜ＰＡｎ内であるということであるため、そのまま動作を終了する。
【００９２】
これに対し、ＰＣ値がアドレス範囲ＰＡ１〜ＰＡｎ内であるのに範囲内フラグがオンされていなければ（Ｓ３７０：ＮＯ）、今回、ＰＣ値がアドレス範囲ＰＡ１〜ＰＡｎ以外からアドレス範囲ＰＡ１〜ＰＡｎ内に入ったということであるため、範囲内フラグをオンする（Ｓ３８０）。
【００９３】
そして次に、ステータスレジスタ１９内のＩＭ（以下、ＩＭ値ともいう）を、ＣＰＵ５におけるスタック領域に格納し（Ｓ３９０）、次に、ＩＭ値と上記Ｓ３４０〜Ｓ３６０の動作で記憶したＩＭ候補値（即ち、ＰＣ値が今回入ったアドレス範囲ＰＡｍに対して定められている優先レベルｍ）とを比較して、ＩＭ値がＩＭ候補値以上であるか否かを判定する（Ｓ４００）。
【００９４】
そして、ＩＭ値がＩＭ候補値以上であれば（Ｓ４００：ＹＥＳ）、そのまま動作を終了するが、ＩＭ値がＩＭ候補値以上でなければ（Ｓ４００：ＮＯ）、ＩＭ値をＩＭ候補値に書き換え（Ｓ４１０）、その後、動作を終了する。
【００９５】
一方、上記Ｓ３１０〜Ｓ３３０の判定で、ＰＣ値がアドレス範囲ＰＡ１〜ＰＡｎ内に入っていない（つまり、アドレス範囲ＰＡ１〜ＰＡｎ以外である）と判定した場合には、範囲内フラグがオンされているか否かを判定し（Ｓ４２０）、範囲内フラグがオンされていなければ（Ｓ４２０：ＮＯ）、今回の動作時以前からＰＣ値がアドレス範囲ＰＡ１〜ＰＡｎ以外であるということであるため、そのまま動作を終了する。
【００９６】
これに対し、ＰＣ値がアドレス範囲ＰＡ１〜ＰＡｎ以外であるのに範囲内フラグがオンされていれば（Ｓ４２０：ＹＥＳ）、今回、ＰＣ値がアドレス範囲ＰＡ１〜ＰＡｎ内からアドレス範囲ＰＡ１〜ＰＡｎ以外に出たということであるため、範囲内フラグをオフする（Ｓ４３０）。そして、ＩＭ値を、上記Ｓ３９０の動作でスタック領域に格納しておいた値に戻し（Ｓ４４０）、その後、動作を終了する。
【００９７】
このような割り込みマスクレベル制御部２５を備えたマイコン３では、ＣＰＵ５の実行アドレス（ＰＣ値）がアドレス範囲ＰＡ１〜ＰＡｎ以外からアドレス範囲ＰＡ１〜ＰＡｎ内に入ると、ＩＭ値がスタック領域に退避され（Ｓ３９０）、そのＩＭ値が、実行アドレスが今回入ったアドレス範囲ＰＡｍに対して定められている優先レベルｍよりも小さければ（Ｓ４００：ＮＯ）、ＩＭ値がその優先レベルｍに変更されることとなる（Ｓ４１０）。そして、ＣＰＵ５の実行アドレスがアドレス範囲ＰＡ１〜ＰＡｎ内からアドレス範囲ＰＡ１〜ＰＡｎ以外へ出ると、ＩＭ値が、スタック領域に退避されていた元の値に戻されることとなる（Ｓ４４０）。
【００９８】
よって、アドレス範囲ＰＡ１〜ＰＡｎの各々について言えることであるが、そのアドレス範囲に格納されているプログラムの実行中は、そのアドレス範囲に対応する優先レベル以下の割り込みが禁止されることとなる。
【００９９】
以上のような第３実施形態のマイコン３によれば、ＣＰＵ５に実行させるプログラムのうち、優先レベルがｍ以下の割り込み（以下、優先レベルｍ以下の割り込みともいう）を禁止した状態で実行したいプログラムを、メモリ７，９におけるアドレス範囲ＰＡ１〜ＰＡｎのうち、優先レベルがｍに定められているアドレス範囲ＰＡｍ内に格納するだけで、そのプログラムを、優先レベルがｍ以下の割り込みを禁止した状態で実行することができる。
【０１００】
よって、ある優先レベルｍ以下の割り込みを禁止した状態で実行したいプログラムがある場合に、そのプログラムの先頭で優先レベルがｍ以下の割り込みを禁止するための処理を行い該プログラムの最後で優先レベルがｍ以下の割り込みの禁止を解除するための処理を行うようにする必要がなくなる。
【０１０１】
このため、ＣＰＵ５の処理負荷及びプログラム容量を低減することができ、更に、プログラムを記憶するためのメモリ容量も低減することができる。また、実行中に禁止したい割り込みの優先レベルが異なる複数のプログラムがあっても対応することができる。また、アドレス範囲ＰＡ１〜ＰＡｎを、アドレス範囲レジスタＡＲ１〜ＡＲｎ１７ａによって任意に設定することができるため、高い汎用性が得られる。
【０１０２】
更に、第３実施形態のマイコン３において、割り込みマスクレベル制御部２５は、実行アドレスがアドレス範囲ＰＡ１〜ＰＡｎ以外からアドレス範囲ＰＡ１〜ＰＡｎの何れかに入った際に、その時のＩＭ値と、実行アドレスが今回入ったアドレス範囲ＰＡｍに対して定められている優先レベルｍとを比較して、ＩＭ値が優先レベルｍ以上であれば（Ｓ４００：ＹＥＳ）、ＩＭ値を変更しないようになっている。
【０１０３】
このため、アドレス範囲ＰＡ１〜ＰＡｎ以外のプログラムによってＩＭ値が優先レベルｍ以上に設定されている状態で、アドレス範囲ＰＡ１〜ＰＡｎ以外のプログラムからアドレス範囲ＰＡｍ内のプログラムが呼び出された場合に、ＩＭ値が、呼び出し元のプログラムがマスクしたい割り込みの優先レベルよりも低くなってしまうこと（即ち、呼び出し元のプログラムがマスクしたい割り込みが割り込んでしまうこと）を防止することができる。
【０１０４】
ところで、もしＣＰＵ５に割り込みマスクレベル制御部２５が設けられておらず、その割り込みマスクレベル制御部２５による作用と同様の作用を得ようとするならば、ある優先レベルｍ以下の割り込みを禁止した状態で実行したいプログラムを、図７のように作成する必要がある。
【０１０５】
まず、図７（ａ）に示す処理Ａのプログラムは、優先レベルｍ以下の割り込みを禁止した状態で実行したいプログラムである。そして、そのプログラムでは、最初のＳ２１０にて、優先レベルｍ以下の割り込みを禁止するための、図７（ｂ）の割り込み禁止処理を行う。
【０１０６】
そして、図７（ｂ）に示すように、割り込み禁止処理では、まずＳ２１１にて、現在のＩＭ値をバッファに記憶し、次のＳ２１３にて、その現在のＩＭ値が、禁止したい割り込みの優先レベルｍ以上であるか否かを判定し、「ＩＭ値≧ｍ」であれば、そのまま割り込み禁止処理を終了する。また、Ｓ２１３にて、「ＩＭ値≧ｍ」ではないと判定したならば、次のＳ２１５にて、ＩＭ値を、禁止したい割り込みの優先レベルｍに書き換え、その後、割り込み禁止処理を終了する。
【０１０７】
このような割り込み禁止処理が終了すると、図７（ａ）に戻り、Ｓ２２０にて、優先レベルｍ以下の割り込みを禁止した状態で実行する必要のある処理を行う。そして、その処理が終わると、最後のＳ２３０にて、優先レベルｍ以下の割り込みの禁止を解除するための、図７（ｃ）の割り込み許可処理を行う。
【０１０８】
そして、図７（ｃ）に示すように、割り込み許可処理では、Ｓ２３１にて、ＩＭ値を、図７（ｂ）のＳ２１１でバッファに記憶しておいた値に戻し、その後、当該割り込み許可処理を終了する。これにより、図７（ａ）のプログラムが終了する。
【０１０９】
このように、割り込みマスクレベル制御部２５が無いと仮定すると、優先レベルｍ以下の割り込みを禁止した状態で実行したいプログラムの先頭（Ｓ２１０）と最後（Ｓ２３０）の各々にて、図７（ｂ），（ｃ）の各処理を行う必要が生じるが、本第３実施形態のマイコン３によれば、そのような処理を行う必要がなく、ＣＰＵ５の処理負荷及びプログラム容量を低減できるのである。
【０１１０】
そして、上記のようなマイコン３を備えた第３実施形態のＥＣＵ１によれば、メモリ容量の低減により、コスト増加を防止することができ、更に、ＣＰＵ５の処理負荷が低減されるため、制御性能を高めることができる。
【０１１１】
次に、第３実施形態のマイコン３の追加機能について説明する。
まず、図８に例示するように、図５のＡ番地〜Ｂ番地内のプログラムが実行されている時に、そのプログラムによりＩＭ値が０に設定されており、そのＡ番地〜Ｂ番地内のプログラムから図５のＣ番地〜Ｄ番地内のプログラム（アドレス範囲ＰＡ１内のプログラム ）が呼び出されたとすると、ＩＭ値は、割り込みマスクレベル制御部２５により０から１に変更されることとなる。
【０１１２】
そして、その後、Ｃ番地〜Ｄ番地内のプログラムが実行されている時に、優先レベルが１よりも高い割り込みが発生して、Ａ番地〜Ｂ番地内の割り込み処理のプログラムが起動されたとすると、その割り込み処理の実行期間においては、ＩＭ値を、ＯＳ等の機能により、その割り込みの要因に対応した優先レベル（この例では１１）に設定する必要がある。
【０１１３】
また、その後、割り込み処理が終了して、ＯＳ等の機能によりＩＭ値が１１から１に戻され、更にその後、Ｃ番地〜Ｄ番地内のプログラムが終了して、Ａ番地〜Ｂ番地内の呼び出し元のプログラムへ戻ると、ＩＭ値は、割り込みマスクレベル制御部２５により１から元の０に戻されることとなる。
【０１１４】
そして、以上が、本来期待されるＩＭ値の遷移である。
ところが、図９（ａ）に示すように、Ｃ番地〜Ｄ番地内のプログラムが実行されている時に、優先レベルが１よりも高い割り込みのプログラムが起動されると、プログラムの実行アドレスがアドレス範囲ＰＡ１〜ＰＡｎ以外であるＡ番地〜Ｂ番地へ移ることとなるため、割り込みマスクレベル制御部２５により、そのことが判定されて、ＩＭ値が、その時点でスタック領域に退避されている０に戻されてしまう。これは、図６におけるＳ４４０の動作によるものである。
【０１１５】
また仮に、図９（ｂ）に示すように、割り込み処理の実行中におけるＩＭ値が、０に戻されることなく、ＯＳ等の機能により、その割り込みの要因に対応したレベル（＝１１）に設定されたとしても、割り込み処理のプログラムから元のＣ番地〜Ｄ番地内のプログラムへ戻る際には、プログラムの実行アドレスがアドレス範囲ＰＡ１〜ＰＡｎ以外であるＡ番地〜Ｂ番地からアドレス範囲ＰＡ１（Ｃ番地〜Ｄ番地）内へ移ることとなるため、割り込みマスクレベル制御部２５により、そのことが判定されて、スタック領域に、上記割り込みの要因に対応した優先レベル（＝１１）が格納されてしまう。これは、図６におけるＳ３９０の動作によるものである。すると、その後、Ｃ番地〜Ｄ番地内のプログラムの実行が終了して、Ａ番地〜Ｂ番地内の呼び出し元のプログラムへ戻る場合に、ＩＭ値を、元の値である０に戻すことができず、１１に設定してしまうこととなる。
【０１１６】
そこで、こうしたケースでの上記不具合を解決するためには、ＣＰＵ５が割り込みを受け付けて割り込み処理を行う場合と、その割り込み処理から元の処理へ復帰する場合には、割り込みマスクレベル制御部２５の動作のうち、少なくとも、図６におけるＳ３１０〜Ｓ３３０の動作が禁止されるように構成すれば良い。上記の例で説明するならば、Ｃ番地〜Ｄ番地内のプログラムが実行されている時に、優先レベルが１よりも高い割り込みのプログラムが起動されて、プログラムの実行アドレスがアドレス範囲ＰＡ１〜ＰＡｎ以外であるＡ番地〜Ｂ番地へ移っても、図６におけるＳ４４０の動作が行われなくなり、また、その割り込み処理のプログラムから元のＣ番地〜Ｄ番地内のプログラムへ復帰した際に、図６におけるＳ３９０の動作が行われなくなるため、図８に示したようにＩＭ値を遷移させることができるようになるからである。
【０１１７】
尚、上記第３実施形態では、ステータスレジスタ１９が、マスクレベル記憶手段に相当し、割り込みマスクレベル制御部２５が、判定手段、マスクレベル変更手段、及びマスクレベル復元手段に相当している。特に、割り込みマスクレベル制御部２５のうち、図６におけるＳ３１０〜Ｓ３３０，Ｓ３７０，Ｓ３８０，Ｓ４２０，Ｓ４３０の動作を行う部分が、判定手段に相当し、図６におけるＳ３４０〜Ｓ３６０，Ｓ３９０〜Ｓ４１０の動作を行う部分が、マスクレベル変更手段に相当し、図６におけるＳ４４０の動作を行う部分が、マスクレベル復元手段に相当している。そして、スタック領域が特定の記憶部に相当している。また、アドレス範囲ＰＡ１〜ＰＡｎ以外のアドレス範囲が、特定アドレス範囲外に相当し、アドレス範囲ＰＡ１〜ＰＡｎの各々が、特定アドレス範囲又は部分特定アドレス範囲に相当している。
［第４実施形態］
図１０に示す第４実施形態のＥＣＵ１は、第１実施形態と比較すると、マイコン３が下記の点で異なっている。
【０１１８】
まず、割り込みコントローラ１１内の論理積回路１１ｃが削除されている。このため、レベル比較部１１ｂからの割り込み要求信号が無条件でＣＰＵ５に出力される。
そして、割り込みコントローラ１１には、割り込み要因設定レジスタ１１ｄと、割り込みマスク部１１ｅが設けられている。
【０１１９】
割り込み要因設定レジスタ１１ｄは、マスクする割り込みの要因（割り込み要因）を設定するためのレジスタである。そして、その割り込み要因設定レジスタ１１ｄには、ＣＰＵ５により、マスクすべき割り込みの割り込み要因を示す情報として、入力ポート１３や内部タイマ１５などから当該割り込みコントローラ１１に入力される割り込み要求信号（周辺割り込み要求信号）のうちの１つ以上を示す情報が書き込まれる。
【０１２０】
例えば、本実施形態において、割り込み要因設定レジスタ１１ｄは、割り込みコントローラ１１に入力される割り込み要求信号の各々に対応した複数のビットを有するレジスタであり、“１”が書き込まれたビットに対応する割り込み要求信号が、マスクすべき割り込みの割り込み要因による割り込み要求信号であることを意味している。尚、ＣＰＵ５は、動作開始直後に起動されるイニシャルルーチンの実行により、割り込み要因設定レジスタ１１ｄの各ビットに“１”か“０”を書き込むようになっている。
【０１２１】
そして、割り込みマスク部１１ｅは、割り込みマスク判定部１７から前述の割り込みマスク信号が出力されていない場合には、入力ポート１３や内部タイマ１５などから当該割り込みコントローラ１１に入力される割り込み要求信号を、全て優先順位判定部１１ａに入力させる。
【０１２２】
また、割り込みマスク部１１ｅは、割り込みマスク判定部１７から割り込みマスク信号が出力されている場合には、当該割り込みコントローラ１１に入力される割り込み要求信号のうち、割り込み要因設定レジスタ１１ｄによって設定された割り込み要因の割り込み要求信号が優先順位判定部１１ａに入力されるのを阻止する。つまり、割り込み要因設定レジスタ１１ｄのビットのうち、“１”が書き込まれているビットに対応した割り込み要求信号が優先順位判定部１１ａに入力されるのを禁止する。
【０１２３】
尚、このような割り込みマスク部１１ｅは、論理積回路の組み合わせにより構成することができる。例えば、１つの割り込み要求信号ＩＲ１について説明すると、割り込みマスク部１１ｅは、その割り込み要求信号ＩＲ１に対応する割り込み要因設定レジスタ１１ｄのビット値と割り込みマスク判定部１７からの割り込みマスク信号とを入力とするナンド回路（否定論理積回路）と、そのナンド回路の出力と割り込み要求信号ＩＲ１とを入力とするアンド回路（論理積回路）とから構成することができる。そして、この構成の場合、アンド回路から優先順位判定部１１ａへ割り込み要求信号ＩＲ１が出力されることとなる。
【０１２４】
このような第４実施形態のマイコン３では、第１実施形態と同様に、メモリ７，９の記憶領域のうち、アドレス範囲レジスタ１７ａ内の情報が示すアドレス範囲に記憶されているプログラムをＣＰＵ３が実行している場合には、割り込みマスク判定部１７から割り込みコントローラ１１へ割り込みマスク信号が出力される。
【０１２５】
そして、割り込みマスク判定部１７から割り込みマスク信号が出力されると、割り込みコントローラ１１に入力される割り込み要求信号のうち、割り込み要因設定レジスタ１１ｄによって設定された割り込み要因の割り込み要求信号は、優先順位判定部１１ａに入力されなくなるため、たとえその割り込み要求信号がステータスレジスタ１９内のＩＭよりも優先レベルが高い割り込みの割り込み要求信号であっても、ＣＰＵ５へ出力されるのが阻止される。よって、ＣＰＵ５は、その割り込み要求信号に対応する割り込みを受け付けなくなる。
【０１２６】
そこで、本第４実施形態では、ＣＰＵ５に実行させるプログラムのうち、特定の割り込み要因の割り込みを禁止した状態で実行したいプログラム（以下、プログラムＰ１という）を、メモリ７，９における特定のアドレス範囲に格納し、更に、その特定のアドレス範囲の情報がアドレス範囲レジスタ１７ａに書き込まれると共に、上記特定の割り込み要因（即ち、プログラムＰ１の実行中に禁止したい割り込みの割り込み要因）を示す情報が割り込み要因設定レジスタ１１ｄに書き込まれるようにイニシャルルーチンをプログラミングしている。
【０１２７】
このようにすれば、プログラムＰ１が実行されている間は、前述した割り込みコントローラ１１内の割り込み要因設定レジスタ１１ｄ及び割り込みマスク部１１ｅと割り込みマスク判定部１７の作用により、ＣＰＵ５が上記特定の割り込み要因の割り込みを受け付けなくなるからである。
【０１２８】
よって、本第４実施形態のマイコン３によれば、特定の割り込み要因の割り込みを禁止した状態で実行したいプログラムがある場合に、そのプログラムの先頭で特定の割り込み要因の割り込みを禁止するための処理を行い該プログラムの最後で特定の割り込み要因の割り込み禁止を解除するための処理を行う、というプログラミングをする必要がなくなる。このため、ＣＰＵ５の処理負荷及びプログラム容量を低減することができ、更に、プログラムを記憶するためのメモリ容量も低減することができる。
【０１２９】
そして、このようなマイコン３を備えた第４実施形態のＥＣＵ１によれば、メモリ容量の低減により、コスト増加を防止することができ、更に、ＣＰＵ５の処理負荷が低減されるため、制御性能を高めることができる。
【０１３０】
また、第４実施形態のマイコン３によれば、禁止される割り込みの要因を、割り込み要因設定レジスタ１１ｄに書き込む内容によって任意に設定することができる。よって、高い汎用性が得られる。更に、禁止される割り込みの要因を複数指定することができるため、プログラム設計の自由度を向上させることができる。
【０１３１】
また、第４実施形態のマイコン３においても、特定の割り込み要因の割り込みが禁止されることとなるアドレス範囲を、アドレス範囲レジスタ１７ａに書き込む内容によって任意に設定することができ、高い汎用性が得られる。
【０１３２】
また更に、第４実施形態のマイコン３においても、割り込みマスク判定部１７と、割り込み要因設定レジスタ１１ｄ及び割り込みマスク部１１ｅとを、ＣＰＵ５の外部に設けているため、それらの追加や削除が容易である。
【０１３３】
尚、特定の割り込み要因の割り込みが禁止されることとなるアドレス範囲は固定であっても良い。この場合、例えば、アドレス範囲レジスタ１７ａに相当する部分に予め固定値がセットされる構成が考えられる。同様に、禁止される割り込みの要因は固定であっても良い。この場合、例えば、割り込み要因設定レジスタ１１ｄに相当する部分に予め固定値がセットされる構成が考えられる。
【０１３４】
一方、第４実施形態では、割り込みマスク判定部１７と割り込み要因設定レジスタ１１ｄ及び割り込みマスク部１１ｅとが、特定割り込み制限手段に相当している。また、割り込み要因設定レジスタ１１ｄが、割り込み要因設定用レジスタに相当している。
【０１３５】
以上、本発明の一実施形態について説明したが、本発明はこうした実施形態に何等限定されるものではなく、本発明の要旨を逸脱しない範囲において、種々なる態様で実施し得ることは勿論である。
【０１３６】
例えば、第３実施形態において、ＩＭ値の退避先はスタック領域に限らず、例えばＲＡＭ９における何れかの記憶領域でも良い。
また、各実施形態において、アドレス範囲レジスタ１７ａ，ＡＲ１〜ＡＲｎに書き込むアドレス範囲の情報としては、目的のアドレス範囲の先頭アドレスと最終アドレスに限らず、アドレス範囲が特定できる情報であればどのような形式の情報でも良い。例えば、先頭アドレスと、その先頭アドレスから何バイト分といった容量情報でも良い。また例えば、目的のアドレス範囲における各アドレス同士で共通なビットからなるビット列を示す共通ビット情報と、共通ではないビットの位置を示す非共通ビット情報とが、アドレス範囲レジスタ１７ａ，ＡＲ１〜ＡＲｎに書き込まれるようにし、実行アドレスのビット列のうち、非共通ビット情報が示す位置のビットを無視したビット列が、共通ビット情報が示すビット列と一致すれば、その実行アドレスがアドレス範囲レジスタ１７ａ，ＡＲ１〜ＡＲｎにより設定されたアドレス範囲内であると判定するように構成することもできる。
【図面の簡単な説明】
【０１３７】
【図１】第１実施形態のＥＣＵ及びマイコンの構成を表す構成図である。
【図２】第１実施形態のマイコンの使用方法及び作用を説明する説明図である。
【図３】第２実施形態のＥＣＵ及びマイコンの構成を表す構成図である。
【図４】第３実施形態のＥＣＵ及びマイコンの構成を表す構成図である。
【図５】第３実施形態のマイコンにおけるプログラムの格納状態を説明する説明図である。
【図６】第３実施形態のマイコンにおける割り込みマスクレベル制御部の動作を表すフローチャートである。
【図７】割り込みマスクレベル制御部が設けられていないと仮定した場合の、プログラムの構成例を説明するフローチャートである。
【図８】第３実施形態のマイコンの追加機能を説明するための第１の説明図である。
【図９】第３実施形態のマイコンの追加機能を説明するための第２の説明図である。
【図１０】第４実施形態のＥＣＵ及びマイコンの構成を表す構成図である。
【符号の説明】
【０１３８】
１…電子制御装置（ＥＣＵ）、３…マイコン（マイクロコンピュータ）、５…ＣＰＵ、７…ＲＯＭ、９…ＲＡＭ、１１…割り込みコントローラ、１１ａ…優先順位判定部、１１ｂ…レベル比較部、１１ｃ…論理積回路、１１ｄ…割り込み要因設定レジスタ、１１ｅ…割り込みマスク部、１３…入力ポート、１５…内部タイマ、１７…割り込みマスク判定部、１７ａ，ＡＲ１〜ＡＲｎ…アドレス範囲レジスタ、１７ｂ…アドレス比較部、１７ｃ…状態変化禁止レジスタ、１９…ステータスレジスタ、２１…アドレスバス（命令フェッチバス）、２３…プログラムカウンタ、２５…割り込みマスクレベル制御部
【図１】
2009093344.tif 000003
【図２】
2009093344.tif 000004
【図３】
2009093344.tif 000005
【図４】
2009093344.tif 000006
【図５】
2009093344.tif 000007
【図６】
2009093344.tif 000008
【図７】
2009093344.tif 000009
【図８】
2009093344.tif 000010
【図９】
2009093344.tif 000011
【図１０】
2009093344.tif 000012