(57)【要約】【課題】同じ割り込み例外処理ルーチンに対する要求イベントが複数回発生した場合、その要求イベントが発生した回数分だけ割り込み例外処理ルーチンを行うことができるデータ処理装置を提供する。【解決手段】割り込み要求発生イベントの発生回数を保持するためのソフトウェア割り込みカウンタ６，ハードウェア割り込みカウンタ７は、ソフトウェア割り込みを発生させるソフトウェア処理またはハードウェア割り込みを発生させるハードウェアイベントが発生したときにカウントアップし、ＣＰＵ１がその割り込み要求を取り下げる処理を行うことによりカウントダウンする。ソフトウェア割り込みカウンタ６，ハードウェア割り込みカウンタ７の値がゼロでないときに、ＣＰＵ１に対するソフトウェア割り込み要求信号１４，ハードウェア割り込み要求信号１５はアサートされる。【選択図】図１
2005242806.tif 000002
【特許請求の範囲】
【請求項１】
中央処理装置と、
同一の割り込み要求発生イベントの発生回数を保持し、前記割り込み要求発生イベントの発生ごとにカウントアップし、前記中央処理装置が割り込み例外処理ルーチンを終了する処理を行うごとにカウントダウンするカウンタと、
前記カウンタの値がゼロでない場合に割り込み要求信号をアサートし前記中央処理装置へ出力する回路とを有することを特徴とするデータ処理装置。
【請求項２】
請求項１記載のデータ処理装置において、
前記割り込み要求発生イベントは、ソフトウェア割り込みを発生させるソフトウェア処理またはハードウェア割り込みを発生させるハードウェアイベントであることを特徴とするデータ処理装置。
【請求項３】
請求項１記載のデータ処理装置において、
割り込み要因ごとに複数の前記カウンタを有することを特徴とするデータ処理装置。
【請求項４】
請求項１記載のデータ処理装置において、
前記カウンタは、前記中央処理装置が前記割り込み例外処理ルーチンを終了する処理として割り込み要求を取り下げる処理を行うごとにカウントダウンすることを特徴とするデータ処理装置。
【請求項５】
請求項１記載のデータ処理装置において、
前記カウンタは、前記中央処理装置が前記割り込み例外処理ルーチンを終了する処理として例外処理からの復帰命令を実行するごとにカウントダウンすることを特徴とするデータ処理装置。
【請求項６】
請求項２記載のデータ処理装置において、
前記中央処理装置から書き込みができ、前記ソフトウェア割り込み／前記ハードウェア割り込みの選択ビットを有するレジスタを設け、前記選択ビットの情報に基づいて前記カウンタのカウントアップを行うことを特徴とするデータ処理装置。
【請求項７】
請求項１記載のデータ処理装置において、
前記中央処理装置から書き込みができ、各割り込み要求ごとに割り込みの優先順位を設定できる割り込み優先レベルレジスタと、
前記割り込み優先レベルレジスタの情報に基づいて優先順位判定を行い、最も優先順位の高い割り込み要求元の情報を前記中央処理装置へ送信する回路とを有することを特徴とするデータ処理装置。
【請求項８】
請求項１記載のデータ処理装置において、
整数から浮動小数点数へ変換する変換回路を含むデータ転送装置を有し、
前記データ転送装置は、周辺回路からメモリへのデータ転送時に、前記変換回路により整数から浮動小数点数へ変換することを特徴とするデータ処理装置。
【請求項９】
請求項８記載のデータ処理装置において、
前記周辺回路は、アナログ／デジタル変換器であることを特徴とするデータ処理装置。
【請求項１０】
請求項８記載のデータ処理装置において、
前記データ転送装置は、前記周辺回路からのハードウェア割り込みに応じてデータ転送を行うことを特徴とするデータ処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理装置に関し、特にその装置の割り込み制御部分の構成に適用して有効な技術に関するものである。
【背景技術】
【０００２】
例えば、本発明者が検討した技術として、データ処理装置においては、以下の技術が考えられる。
【０００３】
中央処理装置（以下、「ＣＰＵ」という）が、ある命令（タスク）を実行しているときに、ＣＰＵに別のタスクを実行させる手段として、ソフトウェア割り込みとハードウェア割り込みがある。
【０００４】
ソフトウェア割り込みでは、ＣＰＵが割り込みを発生させる特定のソフトウェア処理（命令実行）を行うと、割り込みコントローラ内に存在する割り込み要求フラグがセットされ、割り込みコントローラからＣＰＵへの割り込み要求信号がアサート（アクティブ（有効）な状態になること）され、それによってＣＰＵは割り込み例外処理ルーチン（別なタスク）を実行し始める。ＣＰＵがその割り込み例外処理ルーチンの命令実行を終了する際に、その割り込み要求を取り下げる処理（命令実行）を行うと、割り込みコントローラ内に存在する割り込み要求フラグがクリアされ、割り込みコントローラからＣＰＵへの割り込み要求信号がネゲート（非アクティブ（無効）な状態になること）される。そして、例外処理からの復帰命令を実行すると、ＣＰＵは該当割り込み例外処理ルーチン実行前の命令実行に復帰する。
【０００５】
ハードウェア割り込みには、内蔵周辺モジュールによるハードウェア割り込みと、外部端子によるハードウェア割り込みがある。
【０００６】
内蔵周辺モジュールによるハードウェア割り込みでは、ハードウェア（例えば、マイクロコントローラ）上にある内蔵周辺モジュールに、なんらかのイベントが発生したときに（例えば、タイマモジュールのコンペアマッチ、通信モジュールの送受信完了など）、該当する内蔵周辺モジュール内に存在する割り込み要求フラグがセットされ、内蔵周辺モジュールから割り込みコントローラへの割り込み要求信号がアサートされ、割り込みコントローラからＣＰＵへの割り込み要求信号がアサートされ、それによってＣＰＵは割り込み例外処理ルーチン（別のタスク）を実行し始める。ＣＰＵがその割り込み例外処理ルーチン中の命令実行を終了する際に、その割り込み要求を取り下げる処理（命令実行）を行うと、内蔵周辺モジュール内に存在する割り込み要求フラグがクリアされ、内蔵周辺モジュールから割り込みコントローラへの割り込み要求信号がネゲートされ、割り込みコントローラからＣＰＵへの割り込み要求信号がネゲートされる。そして、例外処理からの復帰命令を実行すると、ＣＰＵは該当する割り込み例外処理ルーチン実行前の命令実行に復帰する。
【０００７】
外部端子によるハードウェア割り込みでは、ハードウェア（例えば、マイクロコントローラ）上にある外部端子に、なんらかのイベントが発生したときに（例えば、外部ＩＲＱ端子のレベル変化など）、それを検出して、割り込みコントローラ内に存在する割り込み要求フラグがセットされ、割り込みコントローラからＣＰＵへの割り込み要求信号がアサートされ、それによってＣＰＵは割り込み例外処理ルーチン（別のタスク）を実行し始める。ＣＰＵがその割り込み例外処理ルーチン中の命令実行を終了する際に、その割り込み要求を取り下げる処理（命令実行）を行うと、割り込みコントローラ内に存在する割り込み要求フラグがクリアされ、割り込みコントローラからＣＰＵへの割り込み要求信号がネゲートされる。例外処理からの復帰命令を実行すると、ＣＰＵは該当割り込み例外処理ルーチン実行前の命令実行に復帰する。
【０００８】
割り込み処理機能については、例えば、特許文献１に記載された技術が挙げられる。
【０００９】
また、自動車パワートレイン制御等に用いられるマイクロコントローラでは、浮動小数点ユニット（以下、「ＦＰＵ」という）を搭載する事が標準的である。これらの制御装置では、センサ情報をアナログ／デジタル変換器（以下、「ＡＤ変換器」という）によりデジタル変換し、演算により制御対象を制御する。特に、急速に変化するセンサ情報を解析するような用途では、高速にデータ収集してデジタル信号処理を行う事が必要である。
【００１０】
従来、ノック制御等のデジタル信号処理に使用するサンプルを貯える方法として、マイクロコントローラ内のダイレクトメモリアクセスコントローラ（以下、「ＤＭＡＣ」という）等のデータ転送処理装置により、ＡＤ変換器から内蔵ＲＡＭ（メモリ）に転送していた。そして、そのデータ転送後、転送された内蔵ＲＡＭ上のデータ値をＣＰＵにより読み出し、デジタル信号処理が実施される。
【特許文献１】特開平８−３１４７３１号公報
【発明の開示】
【発明が解決しようとする課題】
【００１１】
ところで、前記のような割り込み処理の技術について、本発明者が検討した結果、以下のようなことが明らかとなった。
【００１２】
ソフトウェア割り込み・ハードウェア割り込みの両方の場合とも、ＣＰＵがその割り込み例外処理ルーチン中の命令実行を終了する際に、その割り込み要求を取り下げる処理（命令実行）を行うことにより、割り込み要求フラグのクリアおよび割り込み要求信号のネゲートを行う。しかし、割り込み要求を取り下げる処理（命令実行）を行うよりも前に、同じ割り込み要求を発生させるようなイベントが再度起きた場合、従来の割り込み機構では、１回目の割り込み例外処理ルーチン実行の一環として割り込み要求を取り下げる処理を行ってしまい、これによって割り込み要求フラグのクリアおよび割り込み要求信号のネゲートが行われてしまう。このため、ＣＰＵが例外処理からの復帰命令を実行して該当割り込み例外処理ルーチン実行前の命令実行に復帰した後には、割り込み要求信号がネゲートされているため、ＣＰＵは２回目の割り込み要求発生イベントに対する割り込み例外処理ルーチンの実行を行わない。したがって、同じ割り込み要求発生イベントが発生した回数分だけ割り込み例外処理ルーチンの実行を行う、ということができない。
【００１３】
そこで、本発明の目的は、同じ割り込み例外処理ルーチンに対する要求イベントが複数回発生した場合、その要求イベントが発生した回数分だけ割り込み例外処理ルーチンを行うことができるデータ処理装置を提供することにある。
【００１４】
また、デジタル信号処理は、従来では整数型で実施されているが、今後は効率のよい浮動小数点数を使用した演算となることが見込まれる。また、デジタル信号処理に使用されるデータ数は、一般に従来では数十個以下であるが、今後はデータ数が数百個以上に増加することが見込まれる。
【００１５】
そこで、本発明の他の目的は、高速にデータ収集してデジタル信号処理を行う必要がある場合に、センサ情報を効率良く整数から浮動少数点数に変換することのできるデータ処理装置を提供することにある。
【００１６】
本発明の前記並びにその他の目的と新規な特徴は、本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１７】
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、次のとおりである。
【００１８】
すなわち、本発明によるデータ処理装置は、割り込み要求発生イベントの発生回数を保持するためのカウンタを内蔵する割り込み機構を有するものである。
【００１９】
このカウンタは、ソフトウェア割り込みを発生させるソフトウェア処理またはハードウェア割り込みを発生させるハードウェアイベントが発生したときにカウントアップし、ＣＰＵが割り込み例外処理ルーチンを終了する処理（その割り込み要求を取り下げる処理、または例外処理からの復帰命令を実行）を行うことによりカウントダウンする。また、このカウンタの値がゼロでないときに、ＣＰＵに対する割り込み要求信号はアサートされる。つまりカウントアップと同じ回数分だけカウントダウン処理を行うまで割り込み要求信号をアサートし続けることができる。
【００２０】
これによって、同じ割り込み要求発生イベントが複数回発生した場合、１回目の割り込み例外処理ルーチンの最後にＣＰＵがその割り込み要求を取り下げる処理（命令実行）を行い、例外処理からの復帰命令を実行して該当割り込み例外処理ルーチン実行前の命令実行に復帰した後でも、ＣＰＵに対する割り込み要求信号はアサートされているため、ＣＰＵは２回目の割り込み例外処理ルーチンを実行し始めることになる。
【００２１】
したがって、同じ割り込み要求発生イベントが発生した回数分だけ割り込み例外処理ルーチン実行を行うことができる。
【００２２】
また、本発明によるデータ処理装置は、周辺回路（ＡＤ変換器など）からメモリへデータ転送する際に、整数から浮動小数点数に変換する機能をＤＭＡＣ内に設けたものである。
【発明の効果】
【００２３】
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば、以下のとおりである。
【００２４】
カウンタが同じ割り込み要求発生イベントの発生回数を保持して割り込み要求信号をアサートし続けるため、発生した回数分だけＣＰＵは割り込み例外処理ルーチン実行を行うことができる。
【発明を実施するための最良の形態】
【００２５】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一部材には原則として同一の符号を付し、その繰り返しの説明は省略する。
【００２６】
（実施の形態１）
図１は本発明の実施の形態１によるデータ処理装置の構成を示すブロック図、図２は本発明の実施の形態１によるデータ処理装置において、ソフトウェア割り込みの処理を示すタイミングチャート、図３は本発明の実施の形態１によるデータ処理装置において、ハードウェア割り込みの処理を示すタイミングチャートである。
【００２７】
まず、図１により、本実施の形態１によるデータ処理装置の構成の一例を説明する。本実施の形態１のデータ処理装置は、例えば、マイクロコントローラなどのシステムとされ、ＣＰＵ１、割り込みコントローラ４、ＡＤ変換器，ＤＡ変換器，ＤＭＡＣ，タイマ，シリアルＵＳＢ等の内蔵周辺モジュール／外部端子１２などから構成され、ＣＰＵ１と割り込みコントローラ４は内部アドレスバス２および内部データバス３により電気的に接続されている。また、上記データ処理装置は各内部構成を一つの半導体基板上に形成したものであっても良い。割り込みコントローラ４は、内部バスインタフェース回路５、ソフトウェア割り込みカウンタ６、ハードウェア割り込みカウンタ７、割り込み要求信号生成回路８などから構成され、内部バスインタフェース回路５からソフトウェア割り込みカウンタ６のカウントアップ入力へカウントアップ信号９が入力し、内部バスインタフェース回路５からソフトウェア割り込みカウンタ６のカウントダウン入力へカウントダウン信号１０が入力し、内部バスインタフェース回路５からハードウェア割り込みカウンタ７のカウントダウン入力へカウントダウン信号１１が入力し、内蔵周辺モジュール／外部端子１２からハードウェア割り込みカウンタ７のカウントアップ入力へ割り込みイベント発生信号１３が入力し、割り込み要求信号生成回路８からＣＰＵ１へソフトウェア割り込み要求信号１４およびハードウェア割り込み要求信号１５が入力し、ソフトウェア割り込みカウンタ６およびハードウェア割り込みカウンタ７から割り込み要求信号生成回路８および内部バスインタフェース回路５へ複数ビット幅（例えば８ビット）の信号が入力している。ソフトウェア割り込みカウンタ６およびハードウェア割り込みカウンタ７は、図１ではそれぞれ１個しか示していないが、これに限定されることはなく、割り込み要因ごとに複数のソフトウェア割り込みカウンタ６またはハードウェア割り込みカウンタ７が並列に接続される。つまり、割り込みイベント発生信号（ハードウェア割り込み）及び割り込み処理を必要とするソフトウェア処理（ソフトウェア割り込み）の、それぞれの要因ごと（割り込み種類ごと）にカウンタを用意し、それぞれの割り込み数を保持することも可能である。これにより複数の割り込み要因に対して本構成を取ることができる。
【００２８】
次に、本実施の形態１によるデータ処理装置の動作を説明する。
【００２９】
ソフトウェア割り込みの処理は以下のように実行される（図２参照）。
【００３０】
まず、ＣＰＵ１が割り込みコントローラ４の中のソフトウェア割り込みカウンタ６に割り当てられたアドレス番地へのストア命令実行を行うと、内部アドレスバス２にそのアドレスが、内部データバス３にライトデータがのる。
【００３１】
割り込みコントローラ４の中の内部バスインタフェース回路５が、内部アドレスバス２のアドレスがソフトウェア割り込みカウンタ６のものであることを判別し、また内部データバス３のライトデータが「１」か「０」かを判定し、「１」であればソフトウェア割り込みカウンタ６に対するカウントアップ信号９をアサート、「０」であればソフトウェア割り込みカウンタ６に対するカウントダウン信号１０をアサートする。これによって、ソフトウェア割り込みカウンタ６はカウントアップ・カウントダウンする。
【００３２】
割り込みコントローラ４の中の割り込み要求信号生成回路８が、ソフトウェア割り込みカウンタ６の値が「１」以上であるか「０」であるかを判定し、「１」以上であればＣＰＵ１へのソフトウェア割り込み要求信号１４をアサート、「０」であればＣＰＵ１へのソフトウェア割り込み要求信号１４をネゲートする。
【００３３】
ソフトウェア割り込み要求信号１４がアサートされた後、ＣＰＵ１はソフトウェア割り込み例外処理ルーチンを実行し始める。
【００３４】
ＣＰＵ１は、割り込み例外処理ルーチンを終了するため例外処理からの復帰命令を実行する前に、割り込み要求を取り下げる処理として、ソフトウェア割り込みカウンタ６に割り当てられたアドレス番地へのデータ「０」書き込みのストア命令実行を行い、それによってソフトウェア割り込みカウンタ６はカウントダウンする。
【００３５】
ＣＰＵ１は、例外処理からの復帰命令を実行して、ソフトウェア割り込み例外処理ルーチンから抜ける。
【００３６】
上記カウントダウン後にソフトウェア割り込みカウンタ６の値が「０」になった場合、ソフトウェア割り込み要求信号１４がネゲートされる。カウントダウン後にソフトウェア割り込みカウンタ６の値が「１」以上の場合、ソフトウェア割り込み要求信号１４はアサートされ続けるので、ＣＰＵ１は再度、ソフトウェア割り込み例外処理ルーチンに入る。
【００３７】
ＣＰＵ１がソフトウェア割り込みカウンタ６に割り当てられたアドレス番地へのロード命令実行を行ったときは、割り込みコントローラ４の中の内部バスインタフェース回路５が、ソフトウェア割り込みカウンタ６の値そのものを内部データバス３にのせ、ＣＰＵ１はカウンタ値をリードすることができる。
【００３８】
ハードウェア割り込みの処理は以下のように実行される（図３参照）。
【００３９】
まず、割り込み要求を取り下げる処理として、ＣＰＵ１が割り込みコントローラ４の中のハードウェア割り込みカウンタ７に割り当てられたアドレス番地へのストア命令実行を行うと、内部アドレスバス２にそのアドレスが、内部データバス３にライトデータがのる。
【００４０】
割り込みコントローラ４の中の内部バスインタフェース回路５が、内部アドレスバス２のアドレスがハードウェア割り込みカウンタ７のものであることを判別し、また内部データバス３のライトデータが「０」か判定し、「０」であればハードウェア割り込みカウンタ７に対するカウントダウン信号１１をアサートする。これによってハードウェア割り込みカウンタ７はカウントダウンする。
【００４１】
内蔵周辺モジュール／外部端子１２において、なんらかのイベントが発生したとき、割り込みコントローラ４への割り込みイベント発生信号１３がアサートされる。これによってハードウェア割り込みカウンタ７はカウントアップする。
【００４２】
割り込みコントローラ４の中の割り込み要求信号生成回路８が、ハードウェア割り込みカウンタ７の値が「１」以上であるか「０」であるかを判定し、「１」以上であればＣＰＵ１へのハードウェア割り込み要求信号１５をアサート、「０」であればＣＰＵ１へのハードウェア割り込み要求信号１５をネゲートする。
【００４３】
ハードウェア割り込み要求信号１５がアサートされた後、ＣＰＵ１はハードウェア割り込み例外処理ルーチンを実行し始める。
【００４４】
ＣＰＵ１は、割り込み例外処理ルーチンを終了するため例外処理からの復帰命令を実行する前に、割り込み要求を取り下げる処理として、ハードウェア割り込みカウンタ７に割り当てられたアドレス番地へのデータ「０」書き込みのストア命令実行を行い、それによってハードウェア割り込みカウンタ７はカウントダウンする。
【００４５】
ＣＰＵ１は例外処理からの復帰命令を実行して、ハードウェア割り込み例外処理ルーチンから抜ける。
【００４６】
上記カウントダウン後にハードウェア割り込みカウンタ７の値が「０」になった場合、ハードウェア割り込み要求信号１５がネゲートされる。カウントダウン後にハードウェア割り込みカウンタ７の値が「１」以上の場合、ハードウェア割り込み要求信号１５はアサートされ続けるので、ＣＰＵ１は再度、ハードウェア割り込み例外処理ルーチンに入る。
【００４７】
ＣＰＵ１がハードウェア割り込みカウンタ７に割り当てられたアドレス番地へのロード命令実行を行ったときは、割り込みコントローラ４の中の内部バスインタフェース回路５が、ハードウェア割り込みカウンタ７の値そのものを内部データバス３にのせ、ＣＰＵ１はカウンタ値をリードすることができる。
【００４８】
また、複数の割り込みイベントが発生した場合には図示はしないが割り込みコントローラ内にある制御回路によってその割り込み処理優先順位が判別され、それに従ってＣＰＵに対して割り込み要求信号が出力される。
【００４９】
したがって、本実施の形態１のデータ処理装置によれば、カウンタが同じ割り込み要求発生イベントが発生した回数分だけカウントアップし、カウンタが「０」でないときに割り込み要求信号をアサートするので、カウントアップと同じ回数分だけカウントダウン処理を行うまで割り込み要求信号をアサートし続けることができる。
【００５０】
そして、カウンタが同じ割り込み要求発生イベントの発生回数を保持して割り込み要求信号をアサートし続けるため、発生した回数分だけＣＰＵは割り込み例外処理ルーチン実行を行うことができる。
【００５１】
例えば、同一の内蔵モジュールから複数の異なる割り込みイベントが割り込みコントローラ４に対し出力される場合、それぞれの割り込みイベントに対してハードウェア割り込みカウンタを構成すればよく、それによって同一モジュールであっても割り込みイベント毎にイベント発生回数を保持することが可能となる。
【００５２】
（実施の形態２）
図４は本発明の実施の形態２によるデータ処理装置の構成を示すブロック図、図５は本発明の実施の形態２によるデータ処理装置において、ソフトウェア割り込みの処理を示すタイミングチャート、図６は本発明の実施の形態２によるデータ処理装置において、ハードウェア割り込みの処理を示すタイミングチャートである。
【００５３】
まず、図４により、本実施の形態２によるデータ処理装置の構成の一例を説明する。本実施の形態２のデータ処理装置は、前記実施の形態１によるカウントダウン信号１０，１１の代わりに、ＣＰＵ１から出力される復帰命令実行信号１６をソフトウェア割り込みカウンタ６およびハードウェア割り込みカウンタ７に入力して、復帰命令実行信号１６によりカウントダウンするようにしたものである。
【００５４】
次に、本実施の形態２によるデータ処理装置の動作を説明する。
【００５５】
ソフトウェア割り込みの処理は以下のように実行される（図５参照）。
【００５６】
まず、ＣＰＵ１が割り込みコントローラ４ａの中のソフトウェア割り込みカウンタ６に割り当てられたアドレス番地へのストア命令実行を行うと、内部アドレスバス２にそのアドレスが、内部データバス３にライトデータがのる。
【００５７】
割り込みコントローラ４ａの中の内部バスインタフェース回路５が、内部アドレスバス２のアドレスがソフトウェア割り込みカウンタ６のものであることを判別し、また内部データバス３のライトデータが「１」か「０」かを判定し、「１」であればソフトウェア割り込みカウンタ６に対するカウントアップ信号９をアサートする。これによってソフトウェア割り込みカウンタ６はカウントアップする。
【００５８】
割り込みコントローラ４ａの中の割り込み要求信号生成回路８が、ソフトウェア割り込みカウンタ６の値が「１」以上であるか「０」であるかを判定し、「１」以上であればＣＰＵ１へのソフトウェア割り込み要求信号１４をアサート、「０」であればＣＰＵ１へのソフトウェア割り込み要求信号１４をネゲートする。
【００５９】
ソフトウェア割り込み要求信号１４がアサートされた後、ＣＰＵ１はソフトウェア割り込み例外処理ルーチンを実行し始める。
【００６０】
ＣＰＵ１が割り込み例外処理ルーチンを終了するため例外処理からの復帰命令を実行すると、ＣＰＵ１から割り込みコントローラ４ａへの復帰命令実行信号１６がアサートされ、ソフトウェア割り込みカウンタ６はカウントダウンする。また、ＣＰＵ１自身はソフトウェア割り込み例外処理ルーチンから抜ける。
【００６１】
上記カウントダウン後にソフトウェア割り込みカウンタ６の値が「０」になった場合、ソフトウェア割り込み要求信号１４がネゲートされる。カウントダウン後にソフトウェア割り込みカウンタ６の値が「１」以上の場合、ソフトウェア割り込み要求信号１４はアサートされ続けるので、ＣＰＵ１は再度、ソフトウェア割り込み例外処理ルーチンに入る。
【００６２】
ＣＰＵ１がソフトウェア割り込みカウンタ６に割り当てられたアドレス番地へのロード命令実行を行ったときは、割り込みコントローラ４ａの中の内部バスインタフェース回路５が、ソフトウェア割り込みカウンタ６の値そのものを内部データバス３にのせ、ＣＰＵ１はカウンタ値をリードすることができる。
【００６３】
ハードウェア割り込みの処理は以下のように実行される（図６参照）。
【００６４】
まず、内蔵周辺モジュール／外部端子１２において、なんらかのイベントが発生したとき、割り込みコントローラ４ａへの割り込みイベント発生信号１３がアサートされる。これによってハードウェア割り込みカウンタ７はカウントアップする。
【００６５】
割り込みコントローラ４ａの中の割り込み要求信号生成回路８が、ハードウェア割り込みカウンタ７の値が「１」以上であるか「０」であるかを判定し、「１」以上であればＣＰＵ１へのハードウェア割り込み要求信号１５をアサート、「０」であればＣＰＵ１へのハードウェア割り込み要求信号１５をネゲートする。
【００６６】
ハードウェア割り込み要求信号１５がアサートされた後、ＣＰＵ１はハードウェア割り込み例外処理ルーチンを実行し始める。
【００６７】
ＣＰＵ１が割り込み例外処理ルーチンを終了するため例外処理からの復帰命令を実行すると、ＣＰＵ１から割り込みコントローラ４ａへの復帰命令実行信号１６がアサートされ、ハードウェア割り込みカウンタ７はカウントダウンする。また、ＣＰＵ１自身はソフトウェア割り込み例外処理ルーチンから抜ける。
【００６８】
上記カウントダウン後にハードウェア割り込みカウンタ７の値が「０」になった場合、ハードウェア割り込み要求信号１５がネゲートされる。カウントダウン後にハードウェア割り込みカウンタ７の値が「１」以上の場合、ハードウェア割り込み要求信号１５はアサートされ続けるので、ＣＰＵ１は再度、ハードウェア割り込み例外処理ルーチンに入る。
【００６９】
ＣＰＵ１がハードウェア割り込みカウンタ７に割り当てられたアドレス番地へのロード命令実行を行ったときは、割り込みコントローラ４ａの中の内部バスインタフェース回路５が、ハードウェア割り込みカウンタ７の値そのものを内部データバス３にのせ、ＣＰＵ１はカウンタ値をリードすることができる。
【００７０】
したがって、本実施の形態２のデータ処理装置によれば、前記実施の形態１と同様の効果を得ることができる。
【００７１】
（実施の形態３）
図７は本発明の実施の形態３によるデータ処理装置の構成を示すブロック図である。
【００７２】
本実施の形態３によるデータ処理装置は、割り込みカウンタと割り込み要求信号を、ソフトウェア割り込み用とハードウェア割り込み用で共通化したものである。
【００７３】
すなわち、割り込みコントローラ４ｂ内において、前記実施の形態１によるソフトウェア割り込みカウンタ６およびハードウェア割り込みカウンタ７を共通割り込みカウンタ１７として共通化し、オアゲート１８を設け、内部バスインタフェース回路からのカウントアップ信号９と内蔵周辺モジュール／外部端子１２からの割り込みイベント発生信号１３をオアゲート１８に入力し、オアゲート１８の出力を共通割り込みカウンタ１７のカウントアップ入力に入力し、カウントダウン信号１０を共通割り込みカウンタ１７のカウントダウン入力に入力し、ソフトウェア割り込み要求信号１４およびハードウェア割り込み要求信号１５を割り込み要求信号１９として共通化する。
【００７４】
これによって、ＣＰＵ１によるソフトウェア処理と内蔵周辺モジュール／外部端子１２のハードウェアイベントの両方で、共通割り込みカウンタ１７はカウントアップする。
【００７５】
したがって、本実施の形態３のデータ処理装置によれば、ソフトウェア割り込みとハードウェア割り込みの両方に対して同じ割り込み例外処理ルーチン処理を実行させるような場合、前記実施の形態１および２に比べて回路面積を削減することができ、プログラムも簡略化される。
【００７６】
（実施の形態４）
図８は本発明の実施の形態４によるデータ処理装置の構成を示すブロック図である。
【００７７】
本実施の形態４によるデータ処理装置は、前記実施の形態３と同様に、割り込みカウンタと割り込み要求信号を、ソフトウェア割り込み用とハードウェア割り込み用で共通化したものである。
【００７８】
すなわち、割り込みコントローラ４ｃ内に、ＣＰＵ１から内部アドレスバス２および内部データバス３を通じてリード／ライトできる別なレジスタ２０を設け、そのレジスタ２０内のビットをソフトウェア割り込み／ハードウェア割り込み選択ビット２１とする。
【００７９】
上記ソフトウェア割り込み／ハードウェア割り込み選択ビット２１によって、内部バスインタフェース回路５からのカウントアップ信号９か、内蔵周辺モジュール／外部端子１２からの割り込みイベント発生信号１３かのどちらかを選択するためのセレクタ２２を設け、セレクタ２２の出力信号を共通割り込みカウンタ１７のカウントアップ入力に入力する。これによって、ＣＰＵ１によるソフトウェア処理か内蔵周辺モジュール／外部端子１２のハードウェアイベントのどちらか一方で、共通割り込みカウンタ１７はカウントアップする。
【００８０】
割り込み要求信号生成回路８は、割り込みカウンタの値が「１」以上であるとき、上記ソフトウェア割り込み／ハードウェア割り込み選択ビット２１によって、ＣＰＵ１へのソフトウェア割り込み要求信号かハードウェア割り込み要求信号のどちらか一方のみをアサートする。
【００８１】
したがって、本実施の形態４のデータ処理装置によれば、ソフトウェア割り込みとハードウェア割り込みの両方に対して別な割り込み例外処理ルーチン処理を実行させるが、両者が同時に発生することはない場合、もしくは、どちらか一方しかカウンタを利用した割り込み処理を使用しない場合に、前記実施の形態１および２に比べて回路面積を削減でき、少ない回路構成で広い用途への対応が可能となる。
【００８２】
（実施の形態５）
図９は本発明の実施の形態５によるデータ処理装置の構成を示すブロック図である。
【００８３】
本実施の形態５によるデータ処理装置は、各割り込み要求につき、割り込みの優先順位を任意に設定できるようにしたものである。
【００８４】
すなわち、割り込みコントローラ４ｄ内に、ＣＰＵ１から内部アドレスバス２および内部データバス３を通じてリード／ライトできる割り込み優先レベルレジスタ２３を設け、各割り込み要求につき割り込みの優先順位を任意に設定できるようにする。
【００８５】
割り込みコントローラ４ｄは優先順位判定回路２４により、発生した各ソフトウェア割り込み／ハードウェア割り込み要求の中から、割り込み優先レベルレジスタ２３の設定に従って優先順位判定を行い、最も優先順位の高い割り込み要求元を選択してからＣＰＵ１にその割り込み要求元の情報（前述する割り込み要求信号）を伝達する。さらに、ＣＰＵに対し、割り込み要求元の優先レベル情報を伝達する。これにより、割り込み要求元の情報を伝達する際、ＣＰＵが割り込み処理を実行している場合、処理中の割り込み処理と伝達される新たな割り込み要求との優先順位判定を行うことが可能となり、ＣＰＵにおいて、何れかの割り込み処理を優先的に処理することが可能となる。
【００８６】
したがって、本実施の形態５のデータ処理装置によれば、複数種類の割り込みが同時に発生し、ケースによって動的に優先順位を変更したいような場合に、よりフレキシブルな制御が可能となる。
【００８７】
（割り込み処理の具体例）
図１０は、本発明の実施の形態１〜５によるデータ処理装置において、ＣＰＵの実行状態と割り込み処理フロー例を示す図である。
【００８８】
図１０において、割り込み処理ルーチン１は、割り込み２よりも優先順位の高い割り込み１が発生したときに実行されるルーチンである。割り込み１は定期的に発生するとする。処理中に状態を監視し、ある条件一致で割り込み２を発生させるために、割り込み２に対応するソフトウェア割り込みカウンタに「１」書き込みを行う。例えば、自動車パワートレイン制御等に用いられるマイクロコントローラでの利用例としては、アクセルを踏まれているかどうか監視し、踏まれている場合にはガソリン噴射処理を実行する。
【００８９】
また、割り込み処理ルーチン２は、割り込み１よりも優先順位の低い割り込み２が発生したときに実行されるルーチンである。割り込み２は割り込み処理ルーチン１から起動され、ソフトウェア割り込みカウンタを用いるソフトウェア割り込みである。割り込み処理ルーチン１を実行中に条件が一致した場合にソフトウェア割り込みカウンタ６にカウンタ値に「１」を書き込む。割り込み処理ルーチン２の処理を行った後、割り込み２に対応するソフトウェア割り込みカウンタ６に「０」書き込みを行う。例えば、実際にガソリン噴射を実行する処理などであり、噴射量の計算に時間がかかる。
【００９０】
まず、メインルーチン実行中に割り込み１が発生すると（ステップＳ１００）、ＣＰＵ１は割り込み処理ルーチン１を実行開始する（ステップＳ１０１）。このとき、条件が一致しないとした場合、そのままルーチンから抜け（割り込み処理ルーチンの終了）、メインルーチンを実行する。カウンタ値は「０」となる。
【００９１】
再び、メインルーチン実行中に割り込み１が発生すると（ステップＳ１０２）、割り込み処理ルーチン１を実行開始する（ステップＳ１０３）。このとき、条件が一致した場合、ソフトウェア割り込みカウンタ６に「１」書き込みを行ってから、ルーチンから抜ける。ソフトウェア割り込みカウンタ値は「１」となる。
【００９２】
ソフトウェア割り込みカウンタ６への書き込み及び割り込み１の割り込み処理終了で、割り込み２の発生により、割り込み処理ルーチン２を実行開始する（ステップＳ１０４）。割り込み処理ルーチン２を実行中に割り込み１が発生したとする（ステップＳ１０５）。
【００９３】
割り込み処理ルーチン２を実行中であるが、優先順位の高い割り込み１の発生により、割り込み処理ルーチン１を実行開始する（ステップＳ１０６）。このとき、条件が一致した場合、ソフトウェア割り込みカウンタ６に「１」書き込みを行ってから、ルーチンから抜ける。カウンタ値（割り込み処理ルーチン２に相当するソフトウェア割り込みカウンタの値）は「２」となる。
【００９４】
割り込み処理ルーチン１から抜けたため、割り込み処理ルーチン２の実行を再開する（ステップＳ１０７）。
【００９５】
割り込み処理ルーチン２が終了し、ソフトウェア割り込みカウンタ６に「０」書き込みを行ってから、ルーチンから抜ける（ステップＳ１０８）。カウンタ値は「１」となる。この時、ソフトウェア割り込みカウンタ値が「０」でないため、割り込み２が再度発生し、割り込み処理ルーチン２を実行開始する（ステップＳ１０９）。割り込み処理ルーチン２を実行中に割り込み１が発生するとする（ステップＳ１１０）。
【００９６】
割り込み処理ルーチン２を実行中であるが、優先順位の高い割り込み１の発生により、割り込み処理ルーチン１を実行開始する（ステップＳ１１１）。条件が一致しないとき、そのままルーチンから抜ける。
【００９７】
割り込み処理ルーチン１から抜けたため、割り込み処理ルーチン２の実行を再開する（ステップＳ１１２）。
【００９８】
割り込み処理ルーチン２が終了し、ソフトウェア割り込みカウンタ６に「０」書き込みを行ってから、ルーチンから抜ける（ステップＳ１１３）。カウンタ値は「０」となる。
【００９９】
メインルーチンを実行中に割り込み１が発生し（ステップＳ１１４）、割り込み処理ルーチン１を実行開始する（ステップＳ１１５）。条件が一致しないとき、そのままルーチンから抜ける。そして、メインルーチンを実行する。以下、同様にして、メインルーチンを実行中に割り込み１が発生する（ステップＳ１１６）。
【０１００】
（実施の形態６）
図１１は本発明の実施の形態６によるデータ処理装置の構成を示すブロック図である。
【０１０１】
まず、図１１により、本実施の形態６によるデータ処理装置の構成の一例を説明する。本実施の形態６のデータ処理装置は、例えば、前記実施の形態１〜５の内蔵周辺モジュール／外部端子１２として、ＡＤ変換器などの周辺モジュール４２およびＤＭＡＣ３４を使用し、周辺モジュール４２およびＤＭＡＣ３４から割り込みコントローラ４内のハードウェア割り込みカウンタ７へ割り込みイベント発生信号１３が入力するものである。具体的にはＤＭＡＣ３４を用いてのＡＤ変換器からのデータ転送毎にハードウェア割り込みが発生する場合（割り込みイベント発生信号１３の出力）、連続して複数個のデータ取り込みをして、複数のハードウェア割り込み要求が発生し、かつ、他に優先レベルの高い処理（例えばＣＰＵ処理）があるような、ある要求元からの複数回の割り込み要求発生の場合であっても、ハードウェア割り込み処理を行っているとき、その処理時間が長いため、処理中に同様のハードウェア割り込み要求の発生した場合であっても、本構成をとることによって要求回数分の割り込み処理を実行することが可能となる。
【０１０２】
本実施の形態６のデータ処理装置は、ＣＰＵ１、割り込みコントローラ４、ＤＭＡＣ３４、ＦＰＵ３７、内蔵ＲＡＭ３８、周辺バス制御回路３９、ＡＤ変換器などの周辺モジュール４２などから構成され、ＣＰＵ１、割り込みコントローラ４、ＤＭＡＣ３４、ＦＰＵ３７、内蔵ＲＡＭ３８および周辺バス制御回路３９は、内部アドレスバス２および内部データバス３により電気的に接続されている。また、周辺バス制御回路３９と周辺モジュール４２は、周辺アドレスバス４０および周辺データバス４１により電気的に接続されている。
【０１０３】
ＤＭＡＣ３４は、内部バスインタフェース回路３５および整数／浮動小数点数変換回路３６および図示はしないが転送情報を設定したり実際に転送制御を行うための制御回路などから構成され、内部バスインタフェース回路３５と整数／浮動小数点数変換回路３６は、整数データおよび浮動小数点数データを伝送するために相互に接続されている。また、周辺モジュール４２から割り込みコントローラ４へは割り込みイベント発生信号１３が入力している。
【０１０４】
次に、本実施の形態６によるデータ処理装置の動作を説明する。
【０１０５】
ＤＭＡＣ３４には、転送を開始する条件、転送元アドレス、転送先アドレス、が設定されている。転送元アドレスには周辺モジュール（ＡＤ変換器など）４２に割り当てられた番地が、転送先アドレスには内蔵ＲＡＭ３８に割り当てられた番地が設定されているとする。
【０１０６】
ＤＭＡＣ３４は、設定されている転送開始条件が成立すると、設定されている転送元アドレスへリードを行うため、内部アドレスバス２にそのアドレスをのせる。
【０１０７】
周辺バス制御回路３９が、内部アドレスバス２のアドレスを周辺アドレスバス４０にのせかえる。
【０１０８】
周辺モジュール４２はそのアドレスに割り振られた番地のデータを周辺データバス４１にのせる。
【０１０９】
周辺バス制御回路３９が、周辺データバス４１にのったデータを、内部データバス３にのせかえる。
【０１１０】
ＤＭＡＣ３４の中の内部バスインタフェース回路３５が、内部データバス３にのったデータを取り込み、ＤＭＡＣ３４の中の整数／浮動小数点数変換回路３６に対してそのデータを渡す。整数／浮動小数点数変換回路３６は、受け取った整数フォーマットのデータを、浮動小数点数フォーマットへ変換し、内部バスインタフェース回路３５に返す。
【０１１１】
内部バスインタフェース回路３５が、内部アドレスバス２に転送先アドレスを、内部データバス３に浮動小数点数フォーマットへ変換された後のデータをのせる。
【０１１２】
内蔵ＲＡＭ３８は、内部アドレスバス２の番地へ、内部データバス３にのったデータを書き込む。
【０１１３】
ＣＰＵ１またはＦＰＵ３７が、ＤＭＡＣ３４によって転送されたデータを読み出す際、内部アドレスバス２に転送先アドレスをのせる。
【０１１４】
内蔵ＲＡＭ３８は、内部アドレスバス２の番地に書かれたデータを、内部データバス３にのせる。
【０１１５】
ＣＰＵ１またはＦＰＵ３７は、内部データバス３にのったデータを取り込むことにより、データを取得する。
【０１１６】
したがって、本実施の形態６のデータ処理装置によれば、ＤＭＡＣ３４内に整数型から浮動小数点数への変換機能を設けることにより、ＤＭＡＣ３４で転送されたデータを浮動小数点数として得ることができる。
【０１１７】
また、ＣＰＵ１またはＦＰＵ３７による整数型から浮動小数点数への変換が不要になり、システムのスループットが向上する。
【０１１８】
（実施の形態７）
図１２は本発明の実施の形態７によるデータ処理装置の構成を示すブロック図である。
【０１１９】
本実施の形態７によるデータ処理装置は、前記実施の形態６によるデータ処理装置内の内部アドレスバス２と内部データバス３を分割し、バスブリッジ４３を通じて、もう一つの内部アドレスバス４４と内部データバス４５と接続したものである。
【０１２０】
ＣＰＵ１およびＦＰＵ３７は、内部アドレスバス２と内部データバス３に接続している。
【０１２１】
内蔵ＲＡＭ３８は、内部アドレスバス２と内部データバス３、内部アドレスバス４４と内部データバス４５、の両方に接続していて、どちらからもアクセスすることができる。
【０１２２】
ＤＭＡＣ３４は、内部アドレスバス４４と内部データバス４５に接続され、転送元から転送先へ転送を行う際には、これらを使用する。
【０１２３】
したがって、本実施の形態７のデータ処理装置によれば、ＤＭＡＣ３４が転送中にもＣＰＵ１は内部アドレスバス２と内部データバス３を使用することができるため、ＤＭＡＣ３４に中断されずに内蔵ＲＡＭ３８上での命令実行を行うことができ、システムのスループットが向上する。
【０１２４】
（実施の形態８）
図１３は本発明の実施の形態８によるデータ処理装置の構成を示すブロック図である。
【０１２５】
本実施の形態８によるデータ処理装置は、前記実施の形態６のＤＭＡＣ３４内にレジスタ４６を設け、レジスタ４６によって、転送元から読み出したデータのうちどの部分を利用するか選択できるようにしたものである。
【０１２６】
一例として、ＡＤ変換器が１２ビットの分解能を有しているとすると、アナログ値からデジタル値へ変換されたデータは１２ビットである。一方、内部バスや周辺バスは３２ビット・１６ビット・８ビットのように２のｎ乗ビットで構成される。このため、例えば、デジタル変換されたデータが整数１２'ｈ０１２であるときに、１６ビットのリードを行うと、ＡＤ変換器が左詰めで設計されていれば１６’ｈ０１２０というデータが読めるが、ＡＤ変換器が右詰めで設計されていれば１６'ｈ００１２というデータが読めることになる。なお、「１２’ｈ」は１２ビット・１６進法、「１６’ｈ」は１６ビット・１６進法を示す。
【０１２７】
これに対応するため、ＤＭＡＣ３４内に１ビットのレジスタ４６を設け、このレジスタ値によって整数／浮動小数点数変換回路３６は、転送元から読み出したデータのうち左詰めか右詰めかどちらが有効なデータなのかを判断する。
【０１２８】
したがって、本実施の形態８のデータ処理装置によれば、転送元から読み出したデータが左詰めか右詰めかどちらで設計されていても対応できることになり、周辺モジュールとのインタフェースにおける汎用性が向上する。
【０１２９】
以上、本発明者によってなされた発明をその実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【産業上の利用可能性】
【０１３０】
以上に述べたように、本願において開示される発明は、マイコンなどのデータ処理装置について適用可能であり、特に、リアルタイム制御に用いられる高速なマイコン製品や、自動車制御全般、モータ制御に用いられるマイコン製品、割り込みを使用するマイコンシステム全般に最適である。
【図面の簡単な説明】
【０１３１】
【図１】本発明の実施の形態１によるデータ処理装置の構成を示すブロック図である。
【図２】本発明の実施の形態１によるデータ処理装置において、ソフトウェア割り込みの処理を示すタイミングチャートである。
【図３】本発明の実施の形態１によるデータ処理装置において、ハードウェア割り込みの処理を示すタイミングチャートである。
【図４】本発明の実施の形態２によるデータ処理装置の構成を示すブロック図である。
【図５】本発明の実施の形態２によるデータ処理装置において、ソフトウェア割り込みの処理を示すタイミングチャートである。
【図６】本発明の実施の形態２によるデータ処理装置において、ハードウェア割り込みの処理を示すタイミングチャートである。
【図７】本発明の実施の形態３によるデータ処理装置の構成を示すブロック図である。
【図８】本発明の実施の形態４によるデータ処理装置の構成を示すブロック図である。
【図９】本発明の実施の形態５によるデータ処理装置の構成を示すブロック図である。
【図１０】本発明の実施の形態１〜５によるデータ処理装置において、ＣＰＵの実行状態と割り込み処理フロー例を示す図である。
【図１１】本発明の実施の形態６によるデータ処理装置の構成を示すブロック図である。
【図１２】本発明の実施の形態７によるデータ処理装置の構成を示すブロック図である。
【図１３】本発明の実施の形態８によるデータ処理装置の構成を示すブロック図である。
【符号の説明】
【０１３２】
１  ＣＰＵ
２，４４  内部アドレスバス
３，４５  内部データバス
４，４ａ，４ｂ，４ｃ，４ｄ  割り込みコントローラ
５  内部バスインタフェース回路
６  ソフトウェア割り込みカウンタ
７  ハードウェア割り込みカウンタ
８  割り込み要求信号生成回路
９  カウントアップ信号
１０，１１  カウントダウン信号
１２  内蔵周辺モジュール／外部端子
１３  割り込みイベント発生信号
１４  ソフトウェア割り込み要求信号
１５  ハードウェア割り込み要求信号
１６  復帰命令実行信号
１７  共通割り込みカウンタ
１８  オアゲート
１９  割り込み要求信号
２０  レジスタ
２１  ソフトウェア割り込み／ハードウェア割り込み選択ビット
２２  セレクタ
２３  割り込み優先レベルレジスタ
２４  優先順位判定回路
３４，３４ａ  ＤＭＡＣ
３５  内部バスインタフェース回路
３６  整数／浮動小数点数変換回路
３７  ＦＰＵ
３８  内蔵ＲＡＭ
３９  周辺バス制御回路
４０  周辺アドレスバス
４１  周辺データバス
４２  周辺モジュール
４３  バスブリッジ
４６  レジスタ
【図１】
2005242806.tif 000003
【図２】
2005242806.tif 000004
【図３】
2005242806.tif 000005
【図４】
2005242806.tif 000006
【図５】
2005242806.tif 000007
【図６】
2005242806.tif 000008
【図７】
2005242806.tif 000009
【図８】
2005242806.tif 000010
【図９】
2005242806.tif 000011
【図１０】
2005242806.tif 000012
【図１１】
2005242806.tif 000013
【図１２】
2005242806.tif 000014
【図１３】
2005242806.tif 000015