JP2009093344A - マイクロコンピュータ、その使用方法、及び電子制御装置 - Google Patents
マイクロコンピュータ、その使用方法、及び電子制御装置 Download PDFInfo
- Publication number
- JP2009093344A JP2009093344A JP2007262227A JP2007262227A JP2009093344A JP 2009093344 A JP2009093344 A JP 2009093344A JP 2007262227 A JP2007262227 A JP 2007262227A JP 2007262227 A JP2007262227 A JP 2007262227A JP 2009093344 A JP2009093344 A JP 2009093344A
- Authority
- JP
- Japan
- Prior art keywords
- interrupt
- cpu
- address range
- microcomputer
- specific
- 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
Links
Images
Landscapes
- Microcomputers (AREA)
Abstract
【課題】あるプログラムを割り込み禁止状態で実行することを、CPUの処理負荷及びプログラム容量を増大させることなく実現する。
【解決手段】車載電子制御装置(ECU)1に搭載されるマイコン3では、割り込みマスク判定部17が、CPU5が実行するプログラムのアドレスを監視して、そのアドレス値が、アドレス範囲レジスタ17a内の情報が示す特定のアドレス範囲内であるか否かを判定し、そのアドレス範囲内であると判定している場合に、割り込みコントローラ11へ割り込みマスク信号を出力する。すると、割り込みコントローラ11内の論理積回路11cにより、CPU5へ割り込み要求信号が出力されるのが禁止される。このマイコン3によれば、割り込み禁止状態で実行したいプログラムを、メモリ7,9における上記特定のアドレス範囲内に格納しておくだけで、そのプログラムを割り込み禁止状態で実行できる。
【選択図】図1
【解決手段】車載電子制御装置(ECU)1に搭載されるマイコン3では、割り込みマスク判定部17が、CPU5が実行するプログラムのアドレスを監視して、そのアドレス値が、アドレス範囲レジスタ17a内の情報が示す特定のアドレス範囲内であるか否かを判定し、そのアドレス範囲内であると判定している場合に、割り込みコントローラ11へ割り込みマスク信号を出力する。すると、割り込みコントローラ11内の論理積回路11cにより、CPU5へ割り込み要求信号が出力されるのが禁止される。このマイコン3によれば、割り込み禁止状態で実行したいプログラムを、メモリ7,9における上記特定のアドレス範囲内に格納しておくだけで、そのプログラムを割り込み禁止状態で実行できる。
【選択図】図1
Description
本発明は、マイクロコンピュータ及びマイクロコンピュータを備えた電子制御装置に関するものである。
従来より、マイクロコンピュータにおいては、あるプログラムの実行中に割り込みを禁止するための方法として、そのプログラム(即ち、割り込み禁止状態で実行したいプログラム)の先頭で、割り込みを禁止するための処理が行われるようにし、そのプログラムの最後で、割り込みの禁止を解除するための処理が行われるようにする、というプログラミング方法が用いられている。
また、特許文献1には、実行中のプログラムがアクセスしているアドレスと、そのプログラムについてプログラムエリア設定レジスタに設定されたアクセス許可エリアのアドレスとを比較し、アクセスしているアドレスがアクセス許可エリア外のアドレスなら、CPUに割り込みをかけて不正アクセスを知らせる、ということが記載されている。
特開平8−272625号公報
上記従来のプログラミング方法を実施したのでは、プログラムの先頭と最後でそれぞれ割り込み禁止/禁止解除のための処理をCPUが実行する必要があり、CPUの処理負荷が大きくなるという問題がある。特に、割り込み禁止状態で実行したいプログラムが頻繁に呼び出されるサブルーチンである場合、CPUの処理負荷が一層大きくなってしまう。
更に、上記従来のプログラミング方法では、プログラム容量(プログラムを構成するデータ量)が大きくなることから、そのプログラムを格納するメモリの容量が大きくなり、延いては、マイクロコンピュータを搭載する電子制御装置のコスト増加を招いてしまう。
一方、上記特許文献1に記載の技術では、こうした問題を解決することはできない。
そこで、本発明は、あるプログラムを割り込み禁止状態で実行することを、CPUの処理負荷及びプログラム容量を増大させることなく実現することを目的としている。
そこで、本発明は、あるプログラムを割り込み禁止状態で実行することを、CPUの処理負荷及びプログラム容量を増大させることなく実現することを目的としている。
請求項1のマイクロコンピュータ(以下、マイコンともいう)では、CPUがメモリに格納されているプログラムを実行する。そして特に、割り込み制限手段が設けられており、その割り込み制限手段は、CPUが実行するプログラムのアドレス(以下、実行アドレスという)が、メモリ上の特定アドレス範囲内であるか否かを判定すると共に、実行アドレスが特定アドレス範囲内であると判定している場合には、CPUが割り込みを受け付けないようにする。
このマイコンによれば、請求項6に記載のように、CPUに実行させるプログラムのうち、割り込み禁止状態で実行したいプログラムを、メモリの前記特定アドレス範囲内に格納しておけば、そのプログラムを割り込み禁止状態で実行することができる。そのプログラムの実行時には、割り込み制限手段により、CPUが割り込みを受け付けない(即ち、割り込み処理を実行しない)ようになるからである。
よって、プログラムによる割り込み禁止及び禁止解除のための処理を省略することができ、CPUの処理負荷及びプログラム容量を低減することができる。また、このため、メモリの容量も低減することができる。
次に、請求項2のマイコンでは、請求項1のマイコンにおいて、割り込み制限手段は、CPUが命令フェッチ時に該CPUとメモリとの間のアドレスバスへ出力するアドレス値を監視し、そのアドレスバス上のアドレス値が前記特定アドレス範囲内であるか否かを判定することより、実行アドレスが前記特定アドレス範囲内であるか否かを判定するようになっている。
この構成によれば、割り込み制限手段のうち、実行アドレスが特定アドレス範囲内であるか否かを判定する部分(以下、判定機能部分という)を、CPUの外部に構成することができるため、その判定機能部分の追加や削除が容易となる。
次に、請求項3のマイコンでは、請求項1,2のマイコンにおいて、割り込み制限手段は、CPUの外部に設けられた割り込みコントローラがCPUに対して割り込み要求信号を出力するのを阻止することにより、CPUが割り込みを受け付けないようにする。
この構成によれば、割り込み制限手段のうち、CPUが割り込みを受け付けないようにするための部分(以下、割り込み禁止機能部分という)を、CPUの外部に構成することができるため、その割り込み禁止機能部分の追加や削除が容易となる。
次に、請求項4のマイコンでは、請求項1〜3のマイコンにおいて、メモリ上のアドレス範囲を示す情報がCPUによって書き込まれるアドレス範囲設定用レジスタが設けられている。そして、割り込み制限手段は、アドレス範囲設定用レジスタ内の情報が示すアドレス範囲を、前記特定アドレス範囲として扱うようになっている。つまり、割り込み制限手段は、実行アドレスが、アドレス範囲設定用レジスタ内の情報が示す特定アドレス範囲内であるか否かを判定するようになっている。
このため、アドレス範囲設定用レジスタに書き込む内容によって特定アドレス範囲を任意に設定することができる。よって、このマイコンによれば、割り込み禁止状態で実行したいプログラムのサイズなどに応じて、前記特定アドレス範囲を設定できるようになり、高い汎用性が得られる。
次に、請求項5のマイコンでは、請求項1〜4のマイコンにおいて、CPUが割り込み制限手段の動作状態を保持するための状態保持用命令を実行すると、その状態保持用命令による動作状態の保持を解除するための解除用命令をCPUが実行するまでの間、割り込み制限手段は、その状態保持用命令が実行された時になっている動作状態を保持するようになっている。尚、割り込み制限手段の動作状態とは、CPUが割り込みを受け付けないようにする動作状態と、CPUが割り込みを受け付けることができるようにする動作状態との何れかである。
このような請求項5のマイコンによれば、特定アドレス範囲内のプログラムPaから、特定アドレス範囲外のプログラムPbを呼び出して、そのプログラムPbを実行する際に、必要により、割り込み禁止状態が維持されるようにすることができる。
例えば、特定アドレス範囲外のサブルーチンプログラムPbを特定アドレス範囲外の他のプログラムPcから呼び出した場合には、割り込み禁止としないが、そのサブルーチンプログラムPbを特定アドレス範囲内のプログラムPaから呼び出した場合には、割り込み禁止状態を継続したい、つまり呼び出し元の状態を引き継いで処理を行いたい、という場合がある。そして、これを実現するためには、特定アドレス範囲内のプログラムPaから特定アドレス範囲外のサブルーチンプログラムPbを呼び出す際に上記状態保持用命令が実行され、呼び出したサブルーチンプログラムPbから戻ると上記解除用命令が実行されるように、プログラムPaを作成すれば良い。
一方、請求項7の電子制御装置は、請求項6に記載の使用方法が適用された電子制御装置である。即ち、請求項7の電子制御装置は、請求項1〜5のマイコンを備え、そのマイコンによって制御対象を制御するための処理を行う電子制御装置であって、制御対象を制御するためにCPUが実行するプログラムのうち、割り込み禁止状態で実行されるプログラムが、メモリの前記特定アドレス範囲内に格納されていることを特徴としている。
そして、この電子制御装置によれば、プログラム容量の低減により、必要なメモリ容量を抑制することができ、コスト増加を防止することができる。また、CPUの処理負荷が低減されるため、制御性能を高めることができる。
次に、請求項8のマイコンでは、CPUがメモリに格納されているプログラムを実行する。また、割り込みマスクレベルが記憶されるマスクレベル記憶手段と、割り込みコントローラを備えている。そして、割り込みコントローラは、優先レベルがマスクレベル記憶手段内の割り込みマスクレベルよりも高い割り込みの要求信号が発生すると、その割り込みをCPUに受け付けさせる(即ち、その割り込みに該当する割り込み処理を実行させる)が、優先レベルがマスクレベル記憶手段内の割り込みマスクレベル以下である割り込みの要求信号が発生しても、その割り込みをCPUが受け付けないようにする(即ち、その割り込みに該当する割り込み処理を実行しないようにする)。よって、優先レベルがマスクレベル記憶手段内の割り込みマスクレベル以下である割り込みは、起動されずにマスク(禁止)されることとなる。
そして特に、請求項8のマイコンには、以下の判定手段とマスクレベル変更手段とマスクレベル復元手段とが備えられている。
判定手段は、CPUが実行するプログラムのアドレスである実行アドレスが、メモリ上の特定アドレス範囲外から特定アドレス範囲内に入ったか否かと、実行アドレスが、特定アドレス範囲内から特定アドレス範囲外に出たか否かとを判定する。
判定手段は、CPUが実行するプログラムのアドレスである実行アドレスが、メモリ上の特定アドレス範囲外から特定アドレス範囲内に入ったか否かと、実行アドレスが、特定アドレス範囲内から特定アドレス範囲外に出たか否かとを判定する。
そして、判定手段により実行アドレスが特定アドレス範囲外から特定アドレス範囲内に入ったと判定されると、マスクレベル変更手段が、マスクレベル記憶手段内の割り込みマスクレベルを特定の記憶部に記憶した後、マスクレベル記憶手段内の割り込みマスクレベルを、前記特定アドレス範囲に対して定められている特定の優先レベルに変更する。
また、判定手段により実行アドレスが特定アドレス範囲内から特定アドレス範囲外に出たと判定されると、マスクレベル復元手段が、マスクレベル記憶手段内の割り込みマスクレベルを、前記記憶部内の割り込みマスクレベル(即ち、実行アドレスが特定アドレス範囲外から特定アドレス範囲内になったと判定された際にマスクレベル変更手段によって記憶部内に退避された元の割り込みマスクレベル)に戻す。
このようなマイコンによれば、請求項14に記載のように、CPUに実行させるプログラムのうち、優先レベルが前記特定の優先レベル以下である割り込み(以下、特定の優先レベル以下の割り込みともいう)を禁止した状態で実行したいプログラムを、メモリの前記特定アドレス範囲内に格納しておけば、そのプログラムを、特定の優先レベル以下の割り込みを禁止した状態で実行することができる。特定アドレス範囲内に格納されたプログラムの実行時には、マスクレベル変更手段により、マスクレベル記憶手段内の割り込みマスクレベルが自動的に前記特定の優先レベルに設定されるからである。
よって、このマイコンによれば、特定の優先レベル以下の割り込みを禁止した状態で実行したいプログラムがある場合に、そのプログラムの先頭で特定の優先レベル以下の割り込みを禁止するための処理を行い該プログラムの最後で特定の優先レベル以下の割り込みの禁止を解除するための処理を行うようにする必要がなくなる。
尚、特定の優先レベル以下の割り込みを禁止するための処理としては、マスクレベル記憶手段内の割り込みマスクレベルを特定の優先レベルに書き換える処理であり、特定の優先レベル以下の割り込みの禁止を解除するための処理としては、マスクレベル記憶手段内の割り込みマスクレベルを特定の優先レベルに書き換える前の元の割り込みマスクレベルに戻す処理が考えられる。そして、そのような処理をプログラム中で行う必要がなくなる。
このため、CPUの処理負荷及びプログラム容量を低減することができ、メモリの容量も低減することができる。
次に、請求項9のマイコンでは、請求項8のマイコンにおいて、マスクレベル変更手段は、マスクレベル記憶手段内の変更前の割り込みマスクレベルが、前記特定の優先レベル以上ならば、マスクレベル記憶手段内の割り込みマスクレベルを変更しないようになっている。
次に、請求項9のマイコンでは、請求項8のマイコンにおいて、マスクレベル変更手段は、マスクレベル記憶手段内の変更前の割り込みマスクレベルが、前記特定の優先レベル以上ならば、マスクレベル記憶手段内の割り込みマスクレベルを変更しないようになっている。
この構成によれば、特定アドレス範囲外のプログラムによってマスクレベル記憶手段内の割り込みマスクレベルが前記特定の優先レベル以上に設定されている状態で、特定アドレス範囲外の何れかのプログラムから特定アドレス範囲内のプログラムが呼び出された場合に、マスクレベル記憶手段内の割り込みマスクレベルが、呼び出し元のプログラムがマスクしたい割り込みの優先レベルよりも低くなってしまうこと(即ち、呼び出し元のプログラムがマスクしたい割り込みが割り込んでしまうこと)を防止することができる。つまり、呼び出し元のプログラムの実行時に設定されていた割り込みマスクレベルを保証することができる。
次に、請求項10のマイコンでは、請求項8,9のマイコンにおいて、CPUが割り込みを受け付けて割り込み処理を行う場合と、その割り込み処理から元の処理へ復帰する場合には、判定手段の作動が禁止されるようになっている。
この構成によれば、下記の問題(1),(2)を解決でき有利である。
(1)まず、特定アドレス範囲内のプログラムの実行中に、その特定アドレス範囲に対して定められた特定の優先レベルよりも高レベルの割り込みが発生して、特定アドレス範囲外の割り込み処理のプログラムが実行された場合、その割り込み処理中の割り込みマスクレベルは、その割り込みの要因に対応したレベルに設定したい。しかし、この場合、実行アドレスが特定アドレス範囲内から特定アドレス範囲外へ移ることとなるため、そのことが判定手段によって判定されると、マスクレベル復元手段が作動して、マスクレベル記憶手段内の割り込みマスクレベルが、その時点で記憶部に記憶されている割り込みマスクレベルに設定されてしまう。
(1)まず、特定アドレス範囲内のプログラムの実行中に、その特定アドレス範囲に対して定められた特定の優先レベルよりも高レベルの割り込みが発生して、特定アドレス範囲外の割り込み処理のプログラムが実行された場合、その割り込み処理中の割り込みマスクレベルは、その割り込みの要因に対応したレベルに設定したい。しかし、この場合、実行アドレスが特定アドレス範囲内から特定アドレス範囲外へ移ることとなるため、そのことが判定手段によって判定されると、マスクレベル復元手段が作動して、マスクレベル記憶手段内の割り込みマスクレベルが、その時点で記憶部に記憶されている割り込みマスクレベルに設定されてしまう。
(2)また仮に、割り込み処理中の割り込みマスクレベルが、その割り込みの要因に対応したレベルに設定されたとしても、割り込み処理から元の処理へ戻る際には、実行アドレスが特定アドレス範囲外から特定アドレス範囲内へ移ることとなるため、そのことが判定手段によって判定されると、マスクレベル変更手段が作動して、記憶部に上記割り込みの要因に対応した割り込みマスクレベルが記憶されてしまう。すると、その後、特定アドレス範囲内のプログラムの実行が終了して特定アドレス範囲外のプログラムへ戻る場合に、マスクレベル記憶手段内の割り込みマスクレベルを、元の値に戻すことができなくなる。
これに対して請求項10のマイコンによれば、CPUが割り込みを受け付けて割り込み処理を行う場合と、その割り込み処理から元の処理へ復帰する場合には、判定手段の作動が禁止されるため、マスクレベル復元手段とマスクレベル変更手段が作動せず、上記問題を解決することができるのである。
次に、請求項11のマイコンでは、請求項8のマイコンにおいて、前記特定アドレス範囲は、複数の部分特定アドレス範囲からなると共に、その各部分特定アドレス範囲に対してそれぞれ異なる優先レベルが定められている。
更に、判定手段は、実行アドレスが特定アドレス範囲外から前記複数の部分特定アドレス範囲のうちの何れに入ったかを区別して判定するようになっている。
そして、マスクレベル変更手段は、判定手段により実行アドレスが特定アドレス範囲外から前記部分特定アドレス範囲の何れかに入ったと判定されると、マスクレベル記憶手段内の割り込みマスクレベルを前記記憶部に記憶した後、マスクレベル記憶手段内の割り込みマスクレベルを、実行アドレスが今回入った部分特定アドレス範囲に対して定められている特定の優先レベルに変更する。
そして、マスクレベル変更手段は、判定手段により実行アドレスが特定アドレス範囲外から前記部分特定アドレス範囲の何れかに入ったと判定されると、マスクレベル記憶手段内の割り込みマスクレベルを前記記憶部に記憶した後、マスクレベル記憶手段内の割り込みマスクレベルを、実行アドレスが今回入った部分特定アドレス範囲に対して定められている特定の優先レベルに変更する。
このようなマイコンによれば、請求項16に記載のように、CPUに実行させるプログラムのうち、優先レベルがN(Nは優先レベルを示す数)以下である割り込み(以下、優先レベルN以下の割り込みともいう)を禁止した状態で実行したいプログラムを、メモリにおける複数の部分特定アドレス範囲のうち、優先レベルがNに定められている部分特定アドレス範囲内に格納しておけば、そのプログラムを、優先レベルN以下の割り込みを禁止した状態で実行することができる。よって、実行中に禁止したい割り込みの優先レベルが異なる複数のプログラムがあっても対応することができる。
次に、請求項12のマイコンでは、請求項11のマイコンにおいて、マスクレベル変更手段は、マスクレベル記憶手段内の変更前の割り込みマスクレベルが、前記特定の優先レベル(即ち、実行アドレスが今回入った部分特定アドレス範囲に対して定められている優先レベル)以上ならば、マスクレベル記憶手段内の割り込みマスクレベルを変更しないようになっている。そして、このマイコンによれば、請求項9のマイコンについて述べた効果が得られる。
次に、請求項13のマイコンでは、請求項11,12のマイコンにおいて、CPUが割り込みを受け付けて割り込み処理を行う場合と、その割り込み処理から元の処理へ復帰する場合には、判定手段の作動が禁止されるようになっている。そして、このマイコンによれば、請求項10のマイコンについて述べた効果が得られる。
一方、請求項15の電子制御装置は、請求項14に記載の使用方法が適用された電子制御装置である。即ち、請求項15の電子制御装置は、請求項8〜請求項10のマイコンを備え、そのマイコンによって制御対象を制御するための処理を行う電子制御装置であって、制御対象を制御するためにCPUが実行するプログラムのうち、優先レベルが前記特定の優先レベル以下である割り込みを禁止した状態で実行されるプログラムが、メモリの前記特定アドレス範囲内に格納されていることを特徴としている。
また、請求項17の電子制御装置は、請求項16に記載の使用方法が適用された電子制御装置である。即ち、請求項17の電子制御装置は、請求項11〜13のマイコンを備え、そのマイコンによって制御対象を制御するための処理を行う電子制御装置であって、制御対象を制御するためにCPUが実行するプログラムのうち、優先レベルがN以下である割り込みを禁止した状態で実行されるプログラムが、メモリにおける複数の部分特定アドレス範囲のうち、優先レベルがNに定められている部分特定アドレス範囲内に格納されていることを特徴としている。
そして、請求項15,17の電子制御装置によれば、プログラム容量の低減により、必要なメモリ容量を抑制することができ、コスト増加を防止することができる。また、CPUの処理負荷が低減されるため、制御性能を高めることができる。
次に、請求項18のマイコンでは、CPUがメモリに格納されているプログラムを実行する。そして特に、特定割り込み制限手段が設けられており、その特定割り込み制限手段は、CPUが実行するプログラムのアドレスである実行アドレスが、メモリ上の特定アドレス範囲内であるか否かを判定すると共に、実行アドレスが特定アドレス範囲内であると判定している場合には、CPUが特定の割り込み要因の割り込みを受け付けないようにする。
このマイコンによれば、請求項24に記載のように、CPUに実行させるプログラムのうち、前記特定の割り込み要因の割り込みを禁止した状態で実行したいプログラムを、メモリの特定アドレス範囲内に格納しておけば、そのプログラムを、特定の割り込み要因の割り込みを禁止した状態で実行することができる。そのプログラムの実行時には、特定割り込み制限手段により、CPUが特定の割り込み要因の割り込みを受け付けない(即ち、特定の割り込み要因の割り込み処理を実行しない)ようになるからである。
よって、このマイコンによれば、特定の割り込み要因の割り込みを禁止した状態で実行したいプログラムがある場合に、そのプログラムの先頭で特定の割り込み要因の割り込みを禁止するための処理を行い該プログラムの最後で特定の割り込み要因の割り込み禁止を解除するための処理を行うようにする必要がなくなる。このため、CPUの処理負荷及びプログラム容量を低減することができ、メモリの容量も低減することができる。
次に、請求項19のマイコンでは、請求項18のマイコンにおいて、割り込み要因を示す情報がCPUによって書き込まれる割り込み要因設定用レジスタが設けられている。そして、特定割り込み制限手段は、割り込み要因設定用レジスタ内の情報が示す割り込み要因を、前記特定の割り込み要因として扱うようになっている。つまり、特定割り込み制限手段は、割り込み要因設定用レジスタ内の情報が示す割り込み要因の割り込みをCPUが受け付けないようにする。
このため、割り込み要因設定用レジスタに書き込む内容により、禁止される割り込みの要因を任意に設定することができる。よって、このマイコンによれば、高い汎用性が得られる。
次に、請求項20のマイコンでは、請求項19のマイコンにおいて、割り込み要因設定用レジスタには、複数種類の割り込み要因を示す情報を書き込むことが可能になっている。そして、この構成によれば、特定アドレス範囲内のプログラムが実行されるときに禁止される割り込みの要因を複数指定することができるため、プログラム設計の自由度を向上させることができる。
次に、請求項21のマイコンでは、請求項18〜20のマイコンにおいて、特定割り込み制限手段は、CPUが命令フェッチ時に該CPUとメモリとの間のアドレスバスへ出力するアドレス値を監視し、そのアドレスバス上のアドレス値が前記特定アドレス範囲内であるか否かを判定することより、実行アドレスが前記特定アドレス範囲内であるか否かを判定するようになっている。
この構成によれば、特定割り込み制限手段のうち、実行アドレスが特定アドレス範囲内であるか否かを判定する判定機能部分を、CPUの外部に構成することができるため、その判定機能部分の追加や削除が容易となる。
次に、請求項22のマイコンでは、請求項18〜21のマイコンにおいて、特定割り込み制限手段は、CPUの外部に設けられた割り込みコントローラがCPUに対して前記特定の割り込み要因の割り込み要求信号を出力するのを阻止することにより、CPUが前記特定の割り込み要因の割り込みを受け付けないようにする。
この構成によれば、特定割り込み制限手段のうち、CPUが特定の割り込み要因の割り込みを受け付けないようにするための部分を、CPUの外部に構成することができるため、その部分の追加や削除が容易となる。
次に、請求項23のマイコンでは、請求項18〜22のマイコンにおいて、メモリ上のアドレス範囲を示す情報がCPUによって書き込まれるアドレス範囲設定用レジスタが設けられている。そして、特定割り込み制限手段は、アドレス範囲設定用レジスタ内の情報が示すアドレス範囲を、前記特定アドレス範囲として扱うようになっている。つまり、特定割り込み制限手段は、実行アドレスが、アドレス範囲設定用レジスタ内の情報が示す特定アドレス範囲内であるか否かを判定するようになっている。
このマイコンによれば、アドレス範囲設定用レジスタに書き込む内容によって特定アドレス範囲を任意に設定することができ、高い汎用性が得られる。
一方、請求項25の電子制御装置は、請求項24に記載の使用方法が適用された電子制御装置である。即ち、請求項25の電子制御装置は、請求項18〜請求項23のマイコンを備え、そのマイコンによって制御対象を制御するための処理を行う電子制御装置であって、制御対象を制御するためにCPUが実行するプログラムのうち、前記特定の割り込み要因の割り込みを禁止した状態で実行されるプログラムが、メモリの前記特定アドレス範囲内に格納されていることを特徴としている。
一方、請求項25の電子制御装置は、請求項24に記載の使用方法が適用された電子制御装置である。即ち、請求項25の電子制御装置は、請求項18〜請求項23のマイコンを備え、そのマイコンによって制御対象を制御するための処理を行う電子制御装置であって、制御対象を制御するためにCPUが実行するプログラムのうち、前記特定の割り込み要因の割り込みを禁止した状態で実行されるプログラムが、メモリの前記特定アドレス範囲内に格納されていることを特徴としている。
そして、この電子制御装置によれば、プログラム容量の低減により、必要なメモリ容量を抑制することができ、コスト増加を防止することができる。また、CPUの処理負荷が低減されるため、制御性能を高めることができる。
以下に、本発明が適用された実施形態の電子制御装置について説明する。尚、本実施形態の電子制御装置(以下、ECUという)は、例えば車両に搭載されて、その車両におけるエンジン等の制御対象を制御するものである。
[第1実施形態]
図1に示すように、第1実施形態のECU1は、制御対象を制御するための処理を行うマイコン3を備えている。そして、マイコン3は、プログラムを実行するCPU5と、CPU5によって実行されるプログラムが格納されるROM7及びRAM9と、割り込みコントローラ(INTC)11と、入力ポート13と、内部タイマ15と、割り込みマスク判定部17とを備えている。尚、以下では、ROM7とRAM9を総称してメモリ7,9と言う。
[第1実施形態]
図1に示すように、第1実施形態のECU1は、制御対象を制御するための処理を行うマイコン3を備えている。そして、マイコン3は、プログラムを実行するCPU5と、CPU5によって実行されるプログラムが格納されるROM7及びRAM9と、割り込みコントローラ(INTC)11と、入力ポート13と、内部タイマ15と、割り込みマスク判定部17とを備えている。尚、以下では、ROM7とRAM9を総称してメモリ7,9と言う。
CPU5には、ステータスレジスタ19が備えられており、そのステータスレジスタ19には、割り込みマスクレベル(詳しくは、その割り込みマスクレベルを示すデジタル値であり、以下、IMと記す)が書き込まれるようになっている。このIMは、マスクされる割り込みの優先レベルの最大値であり、そのIM以下の優先レベルの割り込みはマスクされることを意味している。
また、割り込みコントローラ11は、優先順位判定部11aと、レベル比較部11bと、論理積回路11cとを備えている。
そして、割り込みコントローラ11には、入力ポート13や内部タイマ15などから、様々な割り込み要因の割り込み要求信号(周辺割り込み要求信号)が入力される。
そして、割り込みコントローラ11には、入力ポート13や内部タイマ15などから、様々な割り込み要因の割り込み要求信号(周辺割り込み要求信号)が入力される。
例えば、マイコン3外部からの信号が入力される入力ポート13の入力端子(図示省略)のうち、所定数(本実施形態では2以上)の入力端子は、外部割り込みを発生させるための割り込み入力端子となっている。そして、各割り込み入力端子への入力信号が所定の状態変化をすると、入力ポート13から割り込みコントローラ11へ、その割り込み入力端子への入力信号が状態変化したことを要因とする外部割り込みの割り込み要求信号が出力される。また、内部タイマ15は、複数のタイマ機能を備えており、その各タイマ機能によって設定時間の経過が検知されると、内部タイマ15から割り込みコントローラ11へ、そのタイマ機能の設定時間が経過したことを要因とするタイマ割り込みの割り込み要求信号が出力される。尚、図示は省略しているが、割り込みコントローラ11へは、例えば、マイコン3の外部又は内部に設けられた通信回路が通信データを受信したことを要因とする通信割り込みの割り込み要求信号なども入力される。
そして、割り込みコントローラ11では、入力ポート13や内部タイマ15などからの割り込み要求信号が優先順位判定部11aに入力され、その優先順位判定部11aは、入力される割り込み要求信号のうち、優先レベルが一番高い割り込みの割り込み要求信号をレベル比較部11bに出力する。尚、各割り込みの優先レベルは予め定められている。
レベル比較部11bは、優先順位判定部11aから出力された割り込み要求信号に対応する割り込みの優先レベル(以下、ILと記す)と、CPU5のステータスレジスタ19に記憶されているIMとを比較する。そして、レベル比較部11bは、「IL>IM」ならば(つまり、ILの方がIMよりもレベルが高ければ)、優先順位判定部11aからの割り込み要求信号を論理積回路11cへ出力するが、「IL≦IM」ならば(つまり、ILがIM以下ならば)、優先順位判定部11aからの割り込み要求信号を論理積回路11cに出力せずにマスクする。
論理積回路11cは、割り込みマスク判定部17から後述する割り込みマスク信号が出力されていなければ、レベル比較部11bからの割り込み要求信号をCPU5へ出力する。すると、CPU5は、その割り込み要求信号に対応する割り込みを受け付けて、その割り込み要求信号に対応する割り込み処理を実行する。よって、割り込みマスク判定部17から割り込みマスク信号が出力されていない場合には、ステータスレジスタ19内のIMよりも優先レベルが高い割り込みの割り込み要求信号が割り込みコントローラ11に入力されると、その中で最も優先レベルの高い割り込み要求信号が割り込みコントローラ11からCPU5に出力されて、CPU5が該当する割り込み処理を実行することとなる。
また、論理積回路11cは、割り込みマスク判定部17から割り込みマスク信号が出力されていれば、レベル比較部11bからの割り込み要求信号をCPU5に出力せずにマスクする。このため、割り込みマスク判定部17から割り込みマスク信号が出力されている場合には、割り込みコントローラ11のレベル比較部11bから割り込み要求信号が出力されたとしても、CPU5は割り込みを受け付けないようになる。尚、本実施形態において、割り込みマスク信号は、ハイアクティブの信号である。
次に、割り込みマスク判定部17は、アドレス範囲レジスタ17aと、アドレス比較部17bとを備えている。
アドレス範囲レジスタ17aには、CPU5により、メモリ7,9上の任意のアドレス範囲を示す情報が書き込まれる。そして、CPU5は、動作開始直後に起動されるイニシャルルーチンの実行により、アドレス範囲レジスタ17aにアドレス範囲の情報を書き込むようになっている。また、その情報としては、例えばアドレス範囲の先頭アドレスと最終アドレスである。
アドレス範囲レジスタ17aには、CPU5により、メモリ7,9上の任意のアドレス範囲を示す情報が書き込まれる。そして、CPU5は、動作開始直後に起動されるイニシャルルーチンの実行により、アドレス範囲レジスタ17aにアドレス範囲の情報を書き込むようになっている。また、その情報としては、例えばアドレス範囲の先頭アドレスと最終アドレスである。
そして、アドレス比較部17bは、CPU5が命令フェッチ時に該CPU5とメモリ7,9との間の命令フェッチバスとしてのアドレスバス21へ出力するアドレス値(即ち、CPU5が実行するプログラムのアドレス)を監視して、そのアドレス値が、アドレス範囲レジスタ17a内の情報が示すアドレス範囲内であるか否かを判定し、そのアドレス範囲内であると判定している場合に、割り込みコントローラ11へ上記割り込みマスク信号を出力する。
このようなマイコン3では、メモリ7,9の記憶領域のうち、アドレス範囲レジスタ17a内の情報が示すアドレス範囲に記憶されているプログラムをCPU3が実行している場合には、割り込みマスク判定部17から割り込みコントローラ11へ割り込みマスク信号が出力される。そして、割り込みマスク信号が出力されると、たとえステータスレジスタ19内のIMよりも優先レベルが高い割り込みの割り込み要求信号が割り込みコントローラ11に入力されても、その割り込み要求信号がCPU5に出力されず、CPU5は割り込みを受け付けなくなる。つまり、割り込みが禁止される。よって、アドレス範囲レジスタ17a内の情報が示すアドレス範囲は、割り込み禁止アドレス範囲(即ち、割り込みが禁止されるアドレス範囲)ということになる。
そこで、本実施形態のECU1では、メモリ7,9における特定のアドレス範囲の情報がアドレス範囲レジスタ17aに書き込まれるようにプログラミングすると共に、CPU5に実行させるプログラム(制御対象を制御するためのプログラム)のうち、割り込み禁止状態で実行したいプログラムを、その特定のアドレス範囲内に格納するようにしている。
例えば、図2に示すように、メモリ7,9におけるプログラム格納用のアドレス空間(プログラム格納領域)のうち、A番地からB番地までのアドレス範囲には、割り込み許可状態で実行しても良い処理Xのプログラムが格納されている。そして、その処理Xのプログラムでは、最初のS110にて、割り込み許可状態で実行しても良い処理が行われ、次のS120にて、割り込み禁止状態で実行したい処理Aのプログラムをサブルーチンコールするが、その処理Aのプログラムは、C番地からD番地までのアドレス範囲に格納されている。そして更に、そのC番地からD番地までのアドレス範囲を示す情報が、アドレス範囲レジスタ17aに書き込まれるようにしている。
このため、処理Xのプログラムから処理Aのプログラムが呼び出されると、その処理Aのプログラムが実行されている間(そのプログラムへジャンプした時点から該プログラムを抜けるまでの間)は、前述した割り込みコントローラ11内の論理積回路11cと割り込みマスク判定部17の作用により、CPU5が割り込みを受け付けるのが阻止され、その処理Aのプログラムは割り込み禁止状態で実行されることとなる。
以上のような第1実施形態のECU1に設けられたマイコン3によれば、割り込み禁止状態で実行したいプログラムがある場合に、そのプログラムの先頭で割り込みを禁止するための処理を行い該プログラムの最後で割り込みの禁止を解除(割り込みを許可)するための処理を行う、というプログラミングをする必要がなくなる。そして、そのような処理が省略できることにより、CPU3の処理負荷及びプログラム容量を低減することができ、更に、プログラムを記憶するためのメモリ容量も低減することができる。
そして、そのようなマイコン3を備えた本実施形態のECU1によれば、メモリ容量の低減により、コスト増加を防止することができ、更に、CPU5の処理負荷が低減されるため、制御性能を高めることができる。
また、本実施形態のマイコン3によれば、割り込み禁止アドレス範囲を、アドレス範囲レジスタ17aに書き込む内容によって任意に設定することができる。よって、そのアドレス範囲を、割り込み禁止状態で実行したいプログラムのサイズなどに応じて設定できるようになり、高い汎用性が得られる。
また、本実施形態のマイコン3では、CPU5の外部に設けた割り込みマスク判定部17が、アドレスバス21上のアドレス値を監視することにより、CPU5の実行アドレスがアドレス範囲レジスタ17aにより設定されたアドレス範囲内か否かを判定するようになっているため、その割り込みマスク判定部17の追加や削除が容易である。更に、CPU5の外部に設けた論理積回路11cにより、割り込みコントローラ11からCPU5に割り込み要求信号が出力されるのを阻止することで、CPU5が割り込みを受け付けないようにしているため、その論理積回路11cの追加や削除も容易である。
尚、マイコン3において、割り込み禁止アドレス範囲は固定であっても良い。この場合、例えば、アドレス範囲レジスタ17aに相当する部分に予め固定値がセットされる構成が考えられる。
また、論理積回路11cをCPU5内に設けて、割り込みコントローラ11からの割り込み要求信号をCPU5側でマスクするようにしても良い。
更に、割り込みマスク判定部17もCPU5内に設けても良い。また、その場合には、例えば、CPU5におけるプログラムカウンタの値を監視して、その値が、割り込み禁止アドレス範囲内であるか否かを判定するように構成することもできる。
更に、割り込みマスク判定部17もCPU5内に設けても良い。また、その場合には、例えば、CPU5におけるプログラムカウンタの値を監視して、その値が、割り込み禁止アドレス範囲内であるか否かを判定するように構成することもできる。
一方、上記実施形態では、割り込みマスク判定部17と論理積回路11cが、割り込み制限手段に相当している。また、アドレス範囲レジスタ17aが、アドレス範囲設定用レジスタに相当している。
[第2実施形態]
第2実施形態のECU1は、第1実施形態と比較すると、下記の点が異なっている。
[第2実施形態]
第2実施形態のECU1は、第1実施形態と比較すると、下記の点が異なっている。
まず、マイコン3における割り込みマスク判定部17内に、1ビットの状態変化禁止レジスタ17cが追加されている。
そして、その状態変化禁止レジスタ17cには、CPU5が所定のビットセット命令を実行すると“1”が書き込まれ、CPU5が所定のビットクリア命令を実行すると“0”が書き込まれる。
そして、その状態変化禁止レジスタ17cには、CPU5が所定のビットセット命令を実行すると“1”が書き込まれ、CPU5が所定のビットクリア命令を実行すると“0”が書き込まれる。
更に、割り込みマスク判定部17では、状態変化禁止レジスタ17cに“1”が書き込まれると、アドレス比較部17bの判定結果が保持され、その結果、アドレス比較部17bから割り込みコントローラ11への出力(即ち、割り込みマスク信号を出力する/しないの状態)が保持される。そして、状態変化禁止レジスタ17cに“0”が書き込まれると、上記保持状態が解除される。
よって、アドレス比較部17bが割り込みマスク信号を出力している場合に、状態変化禁止レジスタ17cに“1”が書き込まれると、CPU5が割り込みを受け付けない状態(割り込み禁止状態)が保持されることとなる。
そして、このような第2実施形態のマイコン3によれば、割り込み禁止アドレス範囲内のプログラムPaから、割り込み禁止アドレス範囲外のプログラムPbを呼び出して、そのプログラムPbを実行する際に、必要により、割り込み禁止状態が維持されるようにすることができる。
具体的に説明すると、例えば、割り込み禁止アドレス範囲外のサブルーチンプログラムPbを割り込み禁止アドレス範囲外の他のプログラムPcから呼び出した場合には、割り込み禁止としないが、そのサブルーチンプログラムPbを割り込み禁止アドレス範囲内のプログラムPaから呼び出した場合には、割り込み禁止状態を継続したい、という場合がある。
そして、その場合には、割り込み禁止アドレス範囲内のプログラムPaから割り込み禁止アドレス範囲外のサブルーチンプログラムPbを呼び出す際に、状態変化禁止レジスタ17cについてのビットセット命令(状態保持用命令に相当)が実行され、呼び出したサブルーチンプログラムPbから元のプログラムPaに戻ると状態変化禁止レジスタ17cについてのビットクリア命令(解除用命令に相当)が実行されるように、プログラムPaを作成すれば良い。
尚、状態変化禁止レジスタ17cに“1”が書き込まれた場合に、アドレス比較部17bの判定結果ではなく、そのアドレス比較部17bの出力自体がラッチされる構成でも良い。また、状態保持/保持解除のための命令としては、状態変化禁止レジスタ17cについてのビットセット命令/ビットクリア命令に限らず、例えば他の専用命令でも良い。
[第3実施形態]
図4に示す第3実施形態のECU1は、第1実施形態と比較すると、マイコン3が下記の点で異なっている。
[第3実施形態]
図4に示す第3実施形態のECU1は、第1実施形態と比較すると、マイコン3が下記の点で異なっている。
まず、割り込みマスク判定部17と、割り込みコントローラ11内の論理積回路11cが削除されている。このため、レベル比較部11bからの割り込み要求信号が無条件でCPU5に出力される。
また、CPU5には、割り込みの優先レベル(本実施形態では1〜nのn通りで、nは2以上の整数)がそれぞれ定められたアドレス範囲PA1〜PAnであって、それに定められた優先レベル以下の割り込みを禁止した状態で実行したいプログラムが格納されるアドレス範囲PA1〜PAnを設定するためのアドレス範囲レジスタAR1〜ARnが設けられている。そして、アドレス範囲レジスタARm(mは1〜nの何れか)には、それに対応する優先レベル(=m)以下の割り込みを禁止した状態で実行したいプログラムを格納するアドレス範囲PAmを示す情報が、当該CPU5によって書き込まれるようになっている。
尚、CPU5は、動作開始直後に起動されるイニシャルルーチンの実行により、アドレス範囲レジスタAR1〜ARnの各々にアドレス範囲の情報を書き込むようになっている。また、その情報としては、例えばアドレス範囲の先頭アドレスと最終アドレスである。一方、前述の実施形態では図示を省略していたが、CPU5にはプログラムカウンタ23も備えられている。また、以下では、アドレス範囲レジスタARmに書き込まれた情報が示すアドレス範囲のことを、アドレス範囲レジスタARmによって設定されたアドレス範囲PAmという。
そして、図5に示すように、メモリ7,9におけるプログラム格納用のアドレス空間のうち、アドレス範囲レジスタAR1〜ARnによって設定されたアドレス範囲PA1〜PAnの各々には、CPU5に実行させるプログラム(制御対象を制御するためのプログラム)のうち、そのアドレス範囲に定められている優先レベル以下の割り込みを禁止した状態で実行したいプログラムが格納されている。
即ち、アドレス範囲レジスタAR1によって設定されたアドレス範囲PA1(この例ではC番地〜D番地)には、優先レベルが1以下の割り込みを禁止した状態で実行したいプログラムが格納されており、アドレス範囲レジスタAR2によって設定されたアドレス範囲PA2(この例ではE番地〜F番地)には、優先レベルが2以下の割り込みを禁止した状態で実行したいプログラムが格納されている。そして同様に、アドレス範囲レジスタARnによって設定されたアドレス範囲PAn(この例ではX番地〜Y番地)には、優先レベルがn以下の割り込みを禁止した状態(即ち、全ての割り込みを禁止した状態)で実行したいプログラムが格納されている。
また、図5に示すように、アドレス範囲レジスタAR1〜ARnの何れによっても設定されていないアドレス範囲であって、アドレス範囲PA1〜PAn以外のアドレス範囲(この例ではA番地〜B番地)には、全ての割り込みを許可した状態で実行しても良いプログラム(通常プログラム)が格納されている。
更に、図4に示すように、CPU5には、割り込みマスクレベル制御部25が設けられており、その割り込みマスクレベル制御部25は、プログラムの分岐命令(ブランチ命令、ジャンプ命令、リターンサブルーチン命令など)が実行された時に図6の動作を行う。
そして、図6に示すように、割り込みマスクレベル制御部25が動作すると、まず、分岐先のアドレスであるプログラムカウンタ23の値(以下、PC値という)が、アドレス範囲レジスタAR1〜ARnによって設定された何れかのアドレス範囲PA1〜PAn内に入っているか否かと、入っているならばどのアドレス範囲に入っているかを判定し(S310〜S330)、PC値が何れかのアドレス範囲PA1〜PAn内であれば、そのPC値が入っているアドレス範囲PAmに対応する優先レベルmを、IM候補値として記憶する(S340〜S360)。例えば、PC値がアドレス範囲PA1内であれば、1をIM候補値として記憶し(S340)、PC値がアドレス範囲PA2内であれば、2をIM候補値として記憶する(S350)。
次に、範囲内フラグがオンされているか否かを判定する(S370)。尚、範囲内フラグは、PC値がアドレス範囲PA1〜PAn内の場合にオンされるフラグである。
そして、範囲内フラグがオンされていれば(S370:YES)、今回の動作時以前からPC値がアドレス範囲PA1〜PAn内であるということであるため、そのまま動作を終了する。
そして、範囲内フラグがオンされていれば(S370:YES)、今回の動作時以前からPC値がアドレス範囲PA1〜PAn内であるということであるため、そのまま動作を終了する。
これに対し、PC値がアドレス範囲PA1〜PAn内であるのに範囲内フラグがオンされていなければ(S370:NO)、今回、PC値がアドレス範囲PA1〜PAn以外からアドレス範囲PA1〜PAn内に入ったということであるため、範囲内フラグをオンする(S380)。
そして次に、ステータスレジスタ19内のIM(以下、IM値ともいう)を、CPU5におけるスタック領域に格納し(S390)、次に、IM値と上記S340〜S360の動作で記憶したIM候補値(即ち、PC値が今回入ったアドレス範囲PAmに対して定められている優先レベルm)とを比較して、IM値がIM候補値以上であるか否かを判定する(S400)。
そして、IM値がIM候補値以上であれば(S400:YES)、そのまま動作を終了するが、IM値がIM候補値以上でなければ(S400:NO)、IM値をIM候補値に書き換え(S410)、その後、動作を終了する。
一方、上記S310〜S330の判定で、PC値がアドレス範囲PA1〜PAn内に入っていない(つまり、アドレス範囲PA1〜PAn以外である)と判定した場合には、範囲内フラグがオンされているか否かを判定し(S420)、範囲内フラグがオンされていなければ(S420:NO)、今回の動作時以前からPC値がアドレス範囲PA1〜PAn以外であるということであるため、そのまま動作を終了する。
これに対し、PC値がアドレス範囲PA1〜PAn以外であるのに範囲内フラグがオンされていれば(S420:YES)、今回、PC値がアドレス範囲PA1〜PAn内からアドレス範囲PA1〜PAn以外に出たということであるため、範囲内フラグをオフする(S430)。そして、IM値を、上記S390の動作でスタック領域に格納しておいた値に戻し(S440)、その後、動作を終了する。
このような割り込みマスクレベル制御部25を備えたマイコン3では、CPU5の実行アドレス(PC値)がアドレス範囲PA1〜PAn以外からアドレス範囲PA1〜PAn内に入ると、IM値がスタック領域に退避され(S390)、そのIM値が、実行アドレスが今回入ったアドレス範囲PAmに対して定められている優先レベルmよりも小さければ(S400:NO)、IM値がその優先レベルmに変更されることとなる(S410)。そして、CPU5の実行アドレスがアドレス範囲PA1〜PAn内からアドレス範囲PA1〜PAn以外へ出ると、IM値が、スタック領域に退避されていた元の値に戻されることとなる(S440)。
よって、アドレス範囲PA1〜PAnの各々について言えることであるが、そのアドレス範囲に格納されているプログラムの実行中は、そのアドレス範囲に対応する優先レベル以下の割り込みが禁止されることとなる。
以上のような第3実施形態のマイコン3によれば、CPU5に実行させるプログラムのうち、優先レベルがm以下の割り込み(以下、優先レベルm以下の割り込みともいう)を禁止した状態で実行したいプログラムを、メモリ7,9におけるアドレス範囲PA1〜PAnのうち、優先レベルがmに定められているアドレス範囲PAm内に格納するだけで、そのプログラムを、優先レベルがm以下の割り込みを禁止した状態で実行することができる。
よって、ある優先レベルm以下の割り込みを禁止した状態で実行したいプログラムがある場合に、そのプログラムの先頭で優先レベルがm以下の割り込みを禁止するための処理を行い該プログラムの最後で優先レベルがm以下の割り込みの禁止を解除するための処理を行うようにする必要がなくなる。
このため、CPU5の処理負荷及びプログラム容量を低減することができ、更に、プログラムを記憶するためのメモリ容量も低減することができる。また、実行中に禁止したい割り込みの優先レベルが異なる複数のプログラムがあっても対応することができる。また、アドレス範囲PA1〜PAnを、アドレス範囲レジスタAR1〜ARn17aによって任意に設定することができるため、高い汎用性が得られる。
更に、第3実施形態のマイコン3において、割り込みマスクレベル制御部25は、実行アドレスがアドレス範囲PA1〜PAn以外からアドレス範囲PA1〜PAnの何れかに入った際に、その時のIM値と、実行アドレスが今回入ったアドレス範囲PAmに対して定められている優先レベルmとを比較して、IM値が優先レベルm以上であれば(S400:YES)、IM値を変更しないようになっている。
このため、アドレス範囲PA1〜PAn以外のプログラムによってIM値が優先レベルm以上に設定されている状態で、アドレス範囲PA1〜PAn以外のプログラムからアドレス範囲PAm内のプログラムが呼び出された場合に、IM値が、呼び出し元のプログラムがマスクしたい割り込みの優先レベルよりも低くなってしまうこと(即ち、呼び出し元のプログラムがマスクしたい割り込みが割り込んでしまうこと)を防止することができる。
ところで、もしCPU5に割り込みマスクレベル制御部25が設けられておらず、その割り込みマスクレベル制御部25による作用と同様の作用を得ようとするならば、ある優先レベルm以下の割り込みを禁止した状態で実行したいプログラムを、図7のように作成する必要がある。
まず、図7(a)に示す処理Aのプログラムは、優先レベルm以下の割り込みを禁止した状態で実行したいプログラムである。そして、そのプログラムでは、最初のS210にて、優先レベルm以下の割り込みを禁止するための、図7(b)の割り込み禁止処理を行う。
そして、図7(b)に示すように、割り込み禁止処理では、まずS211にて、現在のIM値をバッファに記憶し、次のS213にて、その現在のIM値が、禁止したい割り込みの優先レベルm以上であるか否かを判定し、「IM値≧m」であれば、そのまま割り込み禁止処理を終了する。また、S213にて、「IM値≧m」ではないと判定したならば、次のS215にて、IM値を、禁止したい割り込みの優先レベルmに書き換え、その後、割り込み禁止処理を終了する。
このような割り込み禁止処理が終了すると、図7(a)に戻り、S220にて、優先レベルm以下の割り込みを禁止した状態で実行する必要のある処理を行う。そして、その処理が終わると、最後のS230にて、優先レベルm以下の割り込みの禁止を解除するための、図7(c)の割り込み許可処理を行う。
そして、図7(c)に示すように、割り込み許可処理では、S231にて、IM値を、図7(b)のS211でバッファに記憶しておいた値に戻し、その後、当該割り込み許可処理を終了する。これにより、図7(a)のプログラムが終了する。
このように、割り込みマスクレベル制御部25が無いと仮定すると、優先レベルm以下の割り込みを禁止した状態で実行したいプログラムの先頭(S210)と最後(S230)の各々にて、図7(b),(c)の各処理を行う必要が生じるが、本第3実施形態のマイコン3によれば、そのような処理を行う必要がなく、CPU5の処理負荷及びプログラム容量を低減できるのである。
そして、上記のようなマイコン3を備えた第3実施形態のECU1によれば、メモリ容量の低減により、コスト増加を防止することができ、更に、CPU5の処理負荷が低減されるため、制御性能を高めることができる。
次に、第3実施形態のマイコン3の追加機能について説明する。
まず、図8に例示するように、図5のA番地〜B番地内のプログラムが実行されている時に、そのプログラムによりIM値が0に設定されており、そのA番地〜B番地内のプログラムから図5のC番地〜D番地内のプログラム(アドレス範囲PA1内のプログラム )が呼び出されたとすると、IM値は、割り込みマスクレベル制御部25により0から1に変更されることとなる。
まず、図8に例示するように、図5のA番地〜B番地内のプログラムが実行されている時に、そのプログラムによりIM値が0に設定されており、そのA番地〜B番地内のプログラムから図5のC番地〜D番地内のプログラム(アドレス範囲PA1内のプログラム )が呼び出されたとすると、IM値は、割り込みマスクレベル制御部25により0から1に変更されることとなる。
そして、その後、C番地〜D番地内のプログラムが実行されている時に、優先レベルが1よりも高い割り込みが発生して、A番地〜B番地内の割り込み処理のプログラムが起動されたとすると、その割り込み処理の実行期間においては、IM値を、OS等の機能により、その割り込みの要因に対応した優先レベル(この例では11)に設定する必要がある。
また、その後、割り込み処理が終了して、OS等の機能によりIM値が11から1に戻され、更にその後、C番地〜D番地内のプログラムが終了して、A番地〜B番地内の呼び出し元のプログラムへ戻ると、IM値は、割り込みマスクレベル制御部25により1から元の0に戻されることとなる。
そして、以上が、本来期待されるIM値の遷移である。
ところが、図9(a)に示すように、C番地〜D番地内のプログラムが実行されている時に、優先レベルが1よりも高い割り込みのプログラムが起動されると、プログラムの実行アドレスがアドレス範囲PA1〜PAn以外であるA番地〜B番地へ移ることとなるため、割り込みマスクレベル制御部25により、そのことが判定されて、IM値が、その時点でスタック領域に退避されている0に戻されてしまう。これは、図6におけるS440の動作によるものである。
ところが、図9(a)に示すように、C番地〜D番地内のプログラムが実行されている時に、優先レベルが1よりも高い割り込みのプログラムが起動されると、プログラムの実行アドレスがアドレス範囲PA1〜PAn以外であるA番地〜B番地へ移ることとなるため、割り込みマスクレベル制御部25により、そのことが判定されて、IM値が、その時点でスタック領域に退避されている0に戻されてしまう。これは、図6におけるS440の動作によるものである。
また仮に、図9(b)に示すように、割り込み処理の実行中におけるIM値が、0に戻されることなく、OS等の機能により、その割り込みの要因に対応したレベル(=11)に設定されたとしても、割り込み処理のプログラムから元のC番地〜D番地内のプログラムへ戻る際には、プログラムの実行アドレスがアドレス範囲PA1〜PAn以外であるA番地〜B番地からアドレス範囲PA1(C番地〜D番地)内へ移ることとなるため、割り込みマスクレベル制御部25により、そのことが判定されて、スタック領域に、上記割り込みの要因に対応した優先レベル(=11)が格納されてしまう。これは、図6におけるS390の動作によるものである。すると、その後、C番地〜D番地内のプログラムの実行が終了して、A番地〜B番地内の呼び出し元のプログラムへ戻る場合に、IM値を、元の値である0に戻すことができず、11に設定してしまうこととなる。
そこで、こうしたケースでの上記不具合を解決するためには、CPU5が割り込みを受け付けて割り込み処理を行う場合と、その割り込み処理から元の処理へ復帰する場合には、割り込みマスクレベル制御部25の動作のうち、少なくとも、図6におけるS310〜S330の動作が禁止されるように構成すれば良い。上記の例で説明するならば、C番地〜D番地内のプログラムが実行されている時に、優先レベルが1よりも高い割り込みのプログラムが起動されて、プログラムの実行アドレスがアドレス範囲PA1〜PAn以外であるA番地〜B番地へ移っても、図6におけるS440の動作が行われなくなり、また、その割り込み処理のプログラムから元のC番地〜D番地内のプログラムへ復帰した際に、図6におけるS390の動作が行われなくなるため、図8に示したようにIM値を遷移させることができるようになるからである。
尚、上記第3実施形態では、ステータスレジスタ19が、マスクレベル記憶手段に相当し、割り込みマスクレベル制御部25が、判定手段、マスクレベル変更手段、及びマスクレベル復元手段に相当している。特に、割り込みマスクレベル制御部25のうち、図6におけるS310〜S330,S370,S380,S420,S430の動作を行う部分が、判定手段に相当し、図6におけるS340〜S360,S390〜S410の動作を行う部分が、マスクレベル変更手段に相当し、図6におけるS440の動作を行う部分が、マスクレベル復元手段に相当している。そして、スタック領域が特定の記憶部に相当している。また、アドレス範囲PA1〜PAn以外のアドレス範囲が、特定アドレス範囲外に相当し、アドレス範囲PA1〜PAnの各々が、特定アドレス範囲又は部分特定アドレス範囲に相当している。
[第4実施形態]
図10に示す第4実施形態のECU1は、第1実施形態と比較すると、マイコン3が下記の点で異なっている。
[第4実施形態]
図10に示す第4実施形態のECU1は、第1実施形態と比較すると、マイコン3が下記の点で異なっている。
まず、割り込みコントローラ11内の論理積回路11cが削除されている。このため、レベル比較部11bからの割り込み要求信号が無条件でCPU5に出力される。
そして、割り込みコントローラ11には、割り込み要因設定レジスタ11dと、割り込みマスク部11eが設けられている。
そして、割り込みコントローラ11には、割り込み要因設定レジスタ11dと、割り込みマスク部11eが設けられている。
割り込み要因設定レジスタ11dは、マスクする割り込みの要因(割り込み要因)を設定するためのレジスタである。そして、その割り込み要因設定レジスタ11dには、CPU5により、マスクすべき割り込みの割り込み要因を示す情報として、入力ポート13や内部タイマ15などから当該割り込みコントローラ11に入力される割り込み要求信号(周辺割り込み要求信号)のうちの1つ以上を示す情報が書き込まれる。
例えば、本実施形態において、割り込み要因設定レジスタ11dは、割り込みコントローラ11に入力される割り込み要求信号の各々に対応した複数のビットを有するレジスタであり、“1”が書き込まれたビットに対応する割り込み要求信号が、マスクすべき割り込みの割り込み要因による割り込み要求信号であることを意味している。尚、CPU5は、動作開始直後に起動されるイニシャルルーチンの実行により、割り込み要因設定レジスタ11dの各ビットに“1”か“0”を書き込むようになっている。
そして、割り込みマスク部11eは、割り込みマスク判定部17から前述の割り込みマスク信号が出力されていない場合には、入力ポート13や内部タイマ15などから当該割り込みコントローラ11に入力される割り込み要求信号を、全て優先順位判定部11aに入力させる。
また、割り込みマスク部11eは、割り込みマスク判定部17から割り込みマスク信号が出力されている場合には、当該割り込みコントローラ11に入力される割り込み要求信号のうち、割り込み要因設定レジスタ11dによって設定された割り込み要因の割り込み要求信号が優先順位判定部11aに入力されるのを阻止する。つまり、割り込み要因設定レジスタ11dのビットのうち、“1”が書き込まれているビットに対応した割り込み要求信号が優先順位判定部11aに入力されるのを禁止する。
尚、このような割り込みマスク部11eは、論理積回路の組み合わせにより構成することができる。例えば、1つの割り込み要求信号IR1について説明すると、割り込みマスク部11eは、その割り込み要求信号IR1に対応する割り込み要因設定レジスタ11dのビット値と割り込みマスク判定部17からの割り込みマスク信号とを入力とするナンド回路(否定論理積回路)と、そのナンド回路の出力と割り込み要求信号IR1とを入力とするアンド回路(論理積回路)とから構成することができる。そして、この構成の場合、アンド回路から優先順位判定部11aへ割り込み要求信号IR1が出力されることとなる。
このような第4実施形態のマイコン3では、第1実施形態と同様に、メモリ7,9の記憶領域のうち、アドレス範囲レジスタ17a内の情報が示すアドレス範囲に記憶されているプログラムをCPU3が実行している場合には、割り込みマスク判定部17から割り込みコントローラ11へ割り込みマスク信号が出力される。
そして、割り込みマスク判定部17から割り込みマスク信号が出力されると、割り込みコントローラ11に入力される割り込み要求信号のうち、割り込み要因設定レジスタ11dによって設定された割り込み要因の割り込み要求信号は、優先順位判定部11aに入力されなくなるため、たとえその割り込み要求信号がステータスレジスタ19内のIMよりも優先レベルが高い割り込みの割り込み要求信号であっても、CPU5へ出力されるのが阻止される。よって、CPU5は、その割り込み要求信号に対応する割り込みを受け付けなくなる。
そこで、本第4実施形態では、CPU5に実行させるプログラムのうち、特定の割り込み要因の割り込みを禁止した状態で実行したいプログラム(以下、プログラムP1という)を、メモリ7,9における特定のアドレス範囲に格納し、更に、その特定のアドレス範囲の情報がアドレス範囲レジスタ17aに書き込まれると共に、上記特定の割り込み要因(即ち、プログラムP1の実行中に禁止したい割り込みの割り込み要因)を示す情報が割り込み要因設定レジスタ11dに書き込まれるようにイニシャルルーチンをプログラミングしている。
このようにすれば、プログラムP1が実行されている間は、前述した割り込みコントローラ11内の割り込み要因設定レジスタ11d及び割り込みマスク部11eと割り込みマスク判定部17の作用により、CPU5が上記特定の割り込み要因の割り込みを受け付けなくなるからである。
よって、本第4実施形態のマイコン3によれば、特定の割り込み要因の割り込みを禁止した状態で実行したいプログラムがある場合に、そのプログラムの先頭で特定の割り込み要因の割り込みを禁止するための処理を行い該プログラムの最後で特定の割り込み要因の割り込み禁止を解除するための処理を行う、というプログラミングをする必要がなくなる。このため、CPU5の処理負荷及びプログラム容量を低減することができ、更に、プログラムを記憶するためのメモリ容量も低減することができる。
そして、このようなマイコン3を備えた第4実施形態のECU1によれば、メモリ容量の低減により、コスト増加を防止することができ、更に、CPU5の処理負荷が低減されるため、制御性能を高めることができる。
また、第4実施形態のマイコン3によれば、禁止される割り込みの要因を、割り込み要因設定レジスタ11dに書き込む内容によって任意に設定することができる。よって、高い汎用性が得られる。更に、禁止される割り込みの要因を複数指定することができるため、プログラム設計の自由度を向上させることができる。
また、第4実施形態のマイコン3においても、特定の割り込み要因の割り込みが禁止されることとなるアドレス範囲を、アドレス範囲レジスタ17aに書き込む内容によって任意に設定することができ、高い汎用性が得られる。
また更に、第4実施形態のマイコン3においても、割り込みマスク判定部17と、割り込み要因設定レジスタ11d及び割り込みマスク部11eとを、CPU5の外部に設けているため、それらの追加や削除が容易である。
尚、特定の割り込み要因の割り込みが禁止されることとなるアドレス範囲は固定であっても良い。この場合、例えば、アドレス範囲レジスタ17aに相当する部分に予め固定値がセットされる構成が考えられる。同様に、禁止される割り込みの要因は固定であっても良い。この場合、例えば、割り込み要因設定レジスタ11dに相当する部分に予め固定値がセットされる構成が考えられる。
一方、第4実施形態では、割り込みマスク判定部17と割り込み要因設定レジスタ11d及び割り込みマスク部11eとが、特定割り込み制限手段に相当している。また、割り込み要因設定レジスタ11dが、割り込み要因設定用レジスタに相当している。
以上、本発明の一実施形態について説明したが、本発明はこうした実施形態に何等限定されるものではなく、本発明の要旨を逸脱しない範囲において、種々なる態様で実施し得ることは勿論である。
例えば、第3実施形態において、IM値の退避先はスタック領域に限らず、例えばRAM9における何れかの記憶領域でも良い。
また、各実施形態において、アドレス範囲レジスタ17a,AR1〜ARnに書き込むアドレス範囲の情報としては、目的のアドレス範囲の先頭アドレスと最終アドレスに限らず、アドレス範囲が特定できる情報であればどのような形式の情報でも良い。例えば、先頭アドレスと、その先頭アドレスから何バイト分といった容量情報でも良い。また例えば、目的のアドレス範囲における各アドレス同士で共通なビットからなるビット列を示す共通ビット情報と、共通ではないビットの位置を示す非共通ビット情報とが、アドレス範囲レジスタ17a,AR1〜ARnに書き込まれるようにし、実行アドレスのビット列のうち、非共通ビット情報が示す位置のビットを無視したビット列が、共通ビット情報が示すビット列と一致すれば、その実行アドレスがアドレス範囲レジスタ17a,AR1〜ARnにより設定されたアドレス範囲内であると判定するように構成することもできる。
また、各実施形態において、アドレス範囲レジスタ17a,AR1〜ARnに書き込むアドレス範囲の情報としては、目的のアドレス範囲の先頭アドレスと最終アドレスに限らず、アドレス範囲が特定できる情報であればどのような形式の情報でも良い。例えば、先頭アドレスと、その先頭アドレスから何バイト分といった容量情報でも良い。また例えば、目的のアドレス範囲における各アドレス同士で共通なビットからなるビット列を示す共通ビット情報と、共通ではないビットの位置を示す非共通ビット情報とが、アドレス範囲レジスタ17a,AR1〜ARnに書き込まれるようにし、実行アドレスのビット列のうち、非共通ビット情報が示す位置のビットを無視したビット列が、共通ビット情報が示すビット列と一致すれば、その実行アドレスがアドレス範囲レジスタ17a,AR1〜ARnにより設定されたアドレス範囲内であると判定するように構成することもできる。
1…電子制御装置(ECU)、3…マイコン(マイクロコンピュータ)、5…CPU、7…ROM、9…RAM、11…割り込みコントローラ、11a…優先順位判定部、11b…レベル比較部、11c…論理積回路、11d…割り込み要因設定レジスタ、11e…割り込みマスク部、13…入力ポート、15…内部タイマ、17…割り込みマスク判定部、17a,AR1〜ARn…アドレス範囲レジスタ、17b…アドレス比較部、17c…状態変化禁止レジスタ、19…ステータスレジスタ、21…アドレスバス(命令フェッチバス)、23…プログラムカウンタ、25…割り込みマスクレベル制御部
Claims (25)
- CPUと、該CPUによって実行されるプログラムが格納されるメモリと、を備えたマイクロコンピュータにおいて、
前記CPUが実行するプログラムのアドレス(以下、実行アドレスという)が、前記メモリ上の特定アドレス範囲内であるか否かを判定すると共に、前記実行アドレスが前記特定アドレス範囲内であると判定している場合には、前記CPUが割り込みを受け付けないようにする割り込み制限手段を備えていること、
を特徴とするマイクロコンピュータ。 - 請求項1に記載のマイクロコンピュータにおいて、
前記割り込み制限手段は、前記CPUが命令フェッチ時に該CPUと前記メモリとの間のアドレスバスへ出力するアドレス値を監視し、そのアドレスバス上のアドレス値が前記特定アドレス範囲内であるか否かを判定することより、前記実行アドレスが前記特定アドレス範囲内であるか否かを判定するように構成されていること、
を特徴とするマイクロコンピュータ。 - 請求項1又は請求項2に記載のマイクロコンピュータにおいて、
前記割り込み制限手段は、前記CPUの外部に設けられた割り込みコントローラが前記CPUに対して割り込み要求信号を出力するのを阻止することにより、前記CPUが割り込みを受け付けないようにすること、
を特徴とするマイクロコンピュータ。 - 請求項1ないし請求項3の何れか1項に記載のマイクロコンピュータにおいて、
前記メモリ上のアドレス範囲を示す情報が前記CPUによって書き込まれるアドレス範囲設定用レジスタを備え、
前記割り込み制限手段は、前記アドレス範囲設定用レジスタ内の情報が示すアドレス範囲を、前記特定アドレス範囲として扱うこと、
を特徴とするマイクロコンピュータ。 - 請求項1ないし請求項4の何れか1項に記載のマイクロコンピュータにおいて、
前記CPUが前記割り込み制限手段の動作状態を保持するための状態保持用命令を実行すると、その状態保持用命令による動作状態の保持を解除するための解除用命令を前記CPUが実行するまでの間、前記割り込み制限手段は、前記CPUが割り込みを受け付けないようにする動作状態と、前記CPUが割り込みを受け付けることができるようにする動作状態とのうち、前記状態保持用命令が実行された時になっている動作状態を保持するようになっていること、
を特徴とするマイクロコンピュータ。 - 請求項1ないし請求項5の何れか1項に記載のマイクロコンピュータの使用方法であって、
前記CPUに実行させるプログラムのうち、割り込み禁止状態で実行したいプログラムを、前記メモリの前記特定アドレス範囲内に格納すること、
を特徴とするマイクロコンピュータの使用方法。 - 請求項1ないし請求項5の何れか1項に記載のマイクロコンピュータを備え、そのマイクロコンピュータによって制御対象を制御するための処理を行う電子制御装置であって、
前記制御対象を制御するために前記CPUが実行するプログラムのうち、割り込み禁止状態で実行されるプログラムが、前記メモリの前記特定アドレス範囲内に格納されていること、
を特徴とする電子制御装置。 - CPUと、
該CPUによって実行されるプログラムが格納されるメモリと、
マスクされる割り込みの優先レベルの最大値である割り込みマスクレベルが記憶されるマスクレベル記憶手段と、
優先レベルが前記マスクレベル記憶手段内の割り込みマスクレベルよりも高い割り込みの要求信号が発生すると、その割り込みを前記CPUに受け付けさせ、優先レベルが前記マスクレベル記憶手段内の割り込みマスクレベル以下である割り込みの要求信号が発生しても、その割り込みを前記CPUが受け付けないようにする割り込みコントローラと、
を備えたマイクロコンピュータにおいて、
前記CPUが実行するプログラムのアドレス(以下、実行アドレスという)が、前記メモリ上の特定アドレス範囲外から特定アドレス範囲内に入ったか否かと、前記実行アドレスが、前記特定アドレス範囲内から前記特定アドレス範囲外に出たか否かとを判定する判定手段と、
前記判定手段により前記実行アドレスが前記特定アドレス範囲外から前記特定アドレス範囲内に入ったと判定されると、前記マスクレベル記憶手段内の割り込みマスクレベルを特定の記憶部に記憶した後、前記マスクレベル記憶手段内の割り込みマスクレベルを、前記特定アドレス範囲に対して定められている特定の優先レベルに変更するマスクレベル変更手段と、
前記判定手段により前記実行アドレスが前記特定アドレス範囲内から前記特定アドレス範囲外に出たと判定されると、前記マスクレベル記憶手段内の割り込みマスクレベルを、前記記憶部内の割り込みマスクレベルに戻すマスクレベル復元手段と、
を備えていることを特徴とするマイクロコンピュータ。 - 請求項8に記載のマイクロコンピュータにおいて、
前記マスクレベル変更手段は、前記マスクレベル記憶手段内の変更前の割り込みマスクレベルが、前記特定の優先レベル以上ならば、前記マスクレベル記憶手段内の割り込みマスクレベルを変更しないようになっていること、
を特徴とするマイクロコンピュータ。 - 請求項8又は請求項9に記載のマイクロコンピュータにおいて、
前記CPUが割り込みを受け付けて割り込み処理を行う場合と、その割り込み処理から元の処理へ復帰する場合には、前記判定手段の作動が禁止されること、
を特徴とするマイクロコンピュータ。 - 請求項8に記載のマイクロコンピュータにおいて、
前記特定アドレス範囲は、複数の部分特定アドレス範囲からなると共に、その各部分特定アドレス範囲に対してそれぞれ異なる優先レベルが定められており、
更に、前記判定手段は、前記実行アドレスが前記特定アドレス範囲外から前記複数の部分特定アドレス範囲のうちの何れに入ったかを区別して判定するようになっており、
前記マスクレベル変更手段は、前記判定手段により前記実行アドレスが前記特定アドレス範囲外から前記部分特定アドレス範囲の何れかに入ったと判定されると、前記マスクレベル記憶手段内の割り込みマスクレベルを前記記憶部に記憶した後、前記マスクレベル記憶手段内の割り込みマスクレベルを、前記実行アドレスが今回入った前記部分特定アドレス範囲に対して定められている特定の優先レベルに変更すること、
を特徴とするマイクロコンピュータ。 - 請求項11に記載のマイクロコンピュータにおいて、
前記マスクレベル変更手段は、前記マスクレベル記憶手段内の変更前の割り込みマスクレベルが、前記特定の優先レベル以上ならば、前記マスクレベル記憶手段内の割り込みマスクレベルを変更しないようになっていること、
を特徴とするマイクロコンピュータ。 - 請求項11又は請求項12に記載のマイクロコンピュータにおいて、
前記CPUが割り込みを受け付けて割り込み処理を行う場合と、その割り込み処理から元の処理へ復帰する場合には、前記判定手段の作動が禁止されること、
を特徴とするマイクロコンピュータ。 - 請求項8ないし請求項10の何れか1項に記載のマイクロコンピュータの使用方法であって、
前記CPUに実行させるプログラムのうち、優先レベルが前記特定の優先レベル以下である割り込みを禁止した状態で実行したいプログラムを、前記メモリの前記特定アドレス範囲内に格納すること、
を特徴とするマイクロコンピュータの使用方法。 - 請求項8ないし請求項10の何れか1項に記載のマイクロコンピュータを備え、そのマイクロコンピュータによって制御対象を制御するための処理を行う電子制御装置であって、
前記制御対象を制御するために前記CPUが実行するプログラムのうち、優先レベルが前記特定の優先レベル以下である割り込みを禁止した状態で実行されるプログラムが、前記メモリの前記特定アドレス範囲内に格納されていること、
を特徴とする電子制御装置。 - 請求項11ないし請求項13の何れか1項に記載のマイクロコンピュータの使用方法であって、
前記CPUに実行させるプログラムのうち、優先レベルがN(Nは優先レベルを示す数)以下である割り込みを禁止した状態で実行したいプログラムを、前記メモリにおける複数の部分特定アドレス範囲のうち、優先レベルが前記Nに定められている部分特定アドレス範囲内に格納すること、
を特徴とするマイクロコンピュータの使用方法。 - 請求項11ないし請求項13の何れか1項に記載のマイクロコンピュータを備え、そのマイクロコンピュータによって制御対象を制御するための処理を行う電子制御装置であって、
前記制御対象を制御するために前記CPUが実行するプログラムのうち、優先レベルがN(Nは優先レベルを示す数)以下である割り込みを禁止した状態で実行されるプログラムが、前記メモリにおける複数の部分特定アドレス範囲のうち、優先レベルが前記Nに定められている部分特定アドレス範囲内に格納されていること、
を特徴とする電子制御装置。 - CPUと、該CPUによって実行されるプログラムが格納されるメモリと、を備えたマイクロコンピュータにおいて、
前記CPUが実行するプログラムのアドレス(以下、実行アドレスという)が、前記メモリ上の特定アドレス範囲内であるか否かを判定すると共に、前記実行アドレスが前記特定アドレス範囲内であると判定している場合には、前記CPUが特定の割り込み要因の割り込みを受け付けないようにする特定割り込み制限手段を備えていること、
を特徴とするマイクロコンピュータ。 - 請求項18に記載のマイクロコンピュータにおいて、
割り込み要因を示す情報が前記CPUによって書き込まれる割り込み要因設定用レジスタを備え、
前記特定割り込み制限手段は、前記割り込み要因設定用レジスタ内の情報が示す割り込み要因を、前記特定の割り込み要因として扱うこと、
を特徴とするマイクロコンピュータ。 - 請求項19に記載のマイクロコンピュータにおいて、
前記割り込み要因設定用レジスタには、複数種類の割り込み要因を示す情報を書き込むことが可能になっていること、
を特徴とするマイクロコンピュータ。 - 請求項18ないし請求項20の何れか1項に記載のマイクロコンピュータにおいて、
前記特定割り込み制限手段は、前記CPUが命令フェッチ時に該CPUと前記メモリとの間のアドレスバスへ出力するアドレス値を監視し、そのアドレスバス上のアドレス値が前記特定アドレス範囲内であるか否かを判定することより、前記実行アドレスが前記特定アドレス範囲内であるか否かを判定するように構成されていること、
を特徴とするマイクロコンピュータ。 - 請求項18ないし請求項21の何れか1項に記載のマイクロコンピュータにおいて、
前記特定割り込み制限手段は、前記CPUの外部に設けられた割り込みコントローラが前記CPUに対して前記特定の割り込み要因の割り込み要求信号を出力するのを阻止することにより、前記CPUが前記特定の割り込み要因の割り込みを受け付けないようにすること、
を特徴とするマイクロコンピュータ。 - 請求項18ないし請求項22の何れか1項に記載のマイクロコンピュータにおいて、
前記メモリ上のアドレス範囲を示す情報が前記CPUによって書き込まれるアドレス範囲設定用レジスタを備え、
前記特定割り込み制限手段は、前記アドレス範囲設定用レジスタ内の情報が示すアドレス範囲を、前記特定アドレス範囲として扱うこと、
を特徴とするマイクロコンピュータ。 - 請求項18ないし請求項23の何れか1項に記載のマイクロコンピュータの使用方法であって、
前記CPUに実行させるプログラムのうち、前記特定の割り込み要因の割り込みを禁止した状態で実行したいプログラムを、前記メモリの前記特定アドレス範囲内に格納すること、
を特徴とするマイクロコンピュータの使用方法。 - 請求項18ないし請求項23の何れか1項に記載のマイクロコンピュータを備え、そのマイクロコンピュータによって制御対象を制御するための処理を行う電子制御装置であって、
前記制御対象を制御するために前記CPUが実行するプログラムのうち、前記特定の割り込み要因の割り込みを禁止した状態で実行されるプログラムが、前記メモリの前記特定アドレス範囲内に格納されていること、
を特徴とする電子制御装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007262227A JP2009093344A (ja) | 2007-10-05 | 2007-10-05 | マイクロコンピュータ、その使用方法、及び電子制御装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007262227A JP2009093344A (ja) | 2007-10-05 | 2007-10-05 | マイクロコンピュータ、その使用方法、及び電子制御装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2009093344A true JP2009093344A (ja) | 2009-04-30 |
Family
ID=40665292
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007262227A Pending JP2009093344A (ja) | 2007-10-05 | 2007-10-05 | マイクロコンピュータ、その使用方法、及び電子制御装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2009093344A (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013028414A2 (en) * | 2011-08-22 | 2013-02-28 | Intel Corporation | Performing an atomic operation without quiescing an interconnect structure |
JP2013190930A (ja) * | 2012-03-13 | 2013-09-26 | Denso Corp | マイクロコンピュータ |
JP2013190929A (ja) * | 2012-03-13 | 2013-09-26 | Denso Corp | マイクロコンピュータ |
JP2015531521A (ja) * | 2012-10-09 | 2015-11-02 | コンチネンタル オートモーティヴ ゲゼルシャフト ミット ベシュレンクテル ハフツングContinental Automotive GmbH | リンクされた複数のプログラムブロックの別々の実行を制御するための方法および制御装置 |
-
2007
- 2007-10-05 JP JP2007262227A patent/JP2009093344A/ja active Pending
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013028414A2 (en) * | 2011-08-22 | 2013-02-28 | Intel Corporation | Performing an atomic operation without quiescing an interconnect structure |
WO2013028414A3 (en) * | 2011-08-22 | 2013-05-02 | Intel Corporation | Performing an atomic operation without quiescing an interconnect structure |
US9015436B2 (en) | 2011-08-22 | 2015-04-21 | Intel Corporation | Performing an atomic operation without quiescing an interconnect structure |
JP2013190930A (ja) * | 2012-03-13 | 2013-09-26 | Denso Corp | マイクロコンピュータ |
JP2013190929A (ja) * | 2012-03-13 | 2013-09-26 | Denso Corp | マイクロコンピュータ |
JP2015531521A (ja) * | 2012-10-09 | 2015-11-02 | コンチネンタル オートモーティヴ ゲゼルシャフト ミット ベシュレンクテル ハフツングContinental Automotive GmbH | リンクされた複数のプログラムブロックの別々の実行を制御するための方法および制御装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8234476B2 (en) | Information processing apparatus and method of updating stack pointer | |
US20130036426A1 (en) | Information processing device and task switching method | |
US7984432B2 (en) | Method for patching a read-only memory and a data processing system comprising a means of patching the read-only memory based on patch contexts | |
CN103329102A (zh) | 多处理器*** | |
JP6838223B2 (ja) | 車両制御装置 | |
JP2009093344A (ja) | マイクロコンピュータ、その使用方法、及び電子制御装置 | |
EP2590082A1 (en) | Cache memory apparatus, cache control method, and microprocessor system | |
JP2019049928A (ja) | 電子制御装置及び電子制御装置の制御方法 | |
JP2017204083A (ja) | メモリ保護システム | |
JP5870043B2 (ja) | 起動制御装置、情報機器および起動制御方法 | |
JP2004272844A (ja) | 割り込み制御方法 | |
JP6365387B2 (ja) | 電子制御装置 | |
JP4828996B2 (ja) | 情報処理装置及びそれを用いたセキュリティ解除プログラムの不正実行禁止方法 | |
CN108701031B (zh) | 寄存器访问控制 | |
JP2011070290A (ja) | データプロセッサ | |
US20050144408A1 (en) | Memory protection unit, memory protection method, and computer-readable record medium in which memory protection program is recorded | |
JP3395727B2 (ja) | 演算装置および方法 | |
JP2006309454A (ja) | プログラム制御方法及びプロセッサ | |
US6725298B1 (en) | Method and system for filter-processing by ensuring a memory space for a ring-buffer in digital signal processor | |
EP0864983A2 (en) | Computer system including memory adress management circuit for protecting memory from illegal writing | |
JP2011150457A (ja) | 情報処理装置およびメモリアクセス制御方法 | |
JP3617445B2 (ja) | 情報処理装置 | |
JP6252321B2 (ja) | メモリ制御方法及び情報処理装置 | |
JP2006085868A (ja) | 書換え制限方法及び半導体装置 | |
JP2004227488A (ja) | 電子装置 |