(57)【要約】【課題】論理構成の複雑化を抑えつつ、さまざまなイベントを処理することが可能な半導体装置を提供すること。【解決手段】中央処理装置１０と、複数の機能ブロック５０と、イベントコントローラ４０と、を備え、それぞれの機能ブロック５０は、割り込み要因を検出し、割り込み要因に基づいたイベント処理要求を出力する割り込み要因検出部と、イベントコントローラ４０から出力されたイベントＩＤの入力を受け付けるイベントＩＤ入力部と、入力されたイベントＩＤが応答すべきイベントＩＤであるかどうかを判定し、入力されたイベントＩＤが応答すべきイベントＩＤである場合、入力されたイベントＩＤに対応する応答内容を指定するイベント応答指定部と、指定された応答内容に基づいてイベント応答処理を行うイベント応答処理部と、を備えている。【選択図】図１
2018106583.tif 000002
【特許請求の範囲】
【請求項１】
中央処理装置と、
割り込み要因に基づいたイベント処理要求を出力する複数の機能ブロックと、
それぞれの前記機能ブロックから出力された前記イベント処理要求の入力を受け付け、入力された複数の前記イベント処理要求を調停し、処理される前記イベント処理要求を選択し、選択した前記イベント処理要求に基づいたイベントＩＤを生成し、生成した前記イベントＩＤを複数の前記機能ブロックへ出力するイベントコントローラと、を備え、
それぞれの前記機能ブロックは、
前記割り込み要因を検出し、前記割り込み要因に基づいた前記イベント処理要求を出力する割り込み要因検出部と、
前記イベントコントローラから出力された前記イベントＩＤの入力を受け付けるイベントＩＤ入力部と、
入力された前記イベントＩＤが応答すべき前記イベントＩＤであるかどうかを判定し、入力された前記イベントＩＤが応答すべき前記イベントＩＤである場合、入力された前記イベントＩＤに対応する応答内容を指定するイベント応答指定部と、
指定された前記応答内容に基づいてイベント応答処理を行うイベント応答処理部と、
を備えている、
半導体装置。
【請求項２】
請求項１に記載の半導体装置において、
それぞれの前記機能ブロックは、
前記割り込み要因を保持する割り込み要因保持部を備え、
前記割り込み要因保持部で保持されている前記割り込み要因に基づいた前記イベントＩＤが入力されると、前記割り込み要因保持部で保持されている前記割り込み要因が消去される、
半導体装置。
【請求項３】
請求項１に記載の半導体装置において、
それぞれの前記機能ブロックは、応答すべき前記イベントＩＤと、前記応答内容と、を対応させたイベント応答情報を格納するイベント制御レジスタを備え、
前記イベント応答指定部は、前記イベントＩＤ入力部に入力された前記イベントＩＤと、前記イベント応答情報と、に基づいて前記応答内容を指定する、
半導体装置。
【請求項４】
請求項１に記載の半導体装置において、
それぞれの前記機能ブロックは、
前記イベント処理要求の出力を許可するかどうかを規定するイベント処理要求許可情報を格納するイベント処理要求許可レジスタと、
前記イベント処理要求許可情報に基づいて前記イベント処理要求を前記イベントコントローラへ出力するかどうかを判定するイベント処理要求許可判定部と、を備えている、
半導体装置。
【請求項５】
請求項１に記載の半導体装置において、
前記割り込み要因検出部は、前記イベント処理要求とともに、前記イベント応答処理に用いられるイベント応答処理用データを前記イベントコントローラへ出力する、
半導体装置。
【請求項６】
請求項１に記載の半導体装置において、
いずれかの前記機能ブロックは、タイマ機能に関する前記イベント応答処理を行う、
半導体装置。
【請求項７】
請求項１に記載の半導体装置において、
いずれかの前記機能ブロックは周辺装置と接続され、
前記イベント応答処理部は、前記周辺装置との間でシリアルデータの入出力を行う、
半導体装置。
【請求項８】
請求項１に記載の半導体装置において、
いずれかの前記機能ブロックは周辺装置と接続され、
前記イベント応答処理部は、前記周辺装置との間でアナログデータの入出力を行う、
半導体装置。
【請求項９】
請求項１に記載の半導体装置において、
いずれかの前記機能ブロックは周辺装置と接続され、前記周辺装置から出力された外部イベント処理要求の入力を受け付け、前記割り込み要因検出部は、入力された前記外部イベント処理要求に基づいて前記割り込み要因を検出する、
半導体装置。
【請求項１０】
請求項９に記載の半導体装置において、
前記外部イベント処理要求の入力を受け付ける前記機能ブロックの前記イベント応答処理部は、前記周辺装置へ出力されるデータを格納するポート出力レジスタと、前記ポート出力レジスタに格納された前記データの次に前記周辺装置へ出力されるネクストデータを格納するネクストデータレジスタと、を備え、
前記ポート出力レジスタに格納された前記データが出力されると、前記ネクストデータが前記ポート出力レジスタに格納される、
半導体装置。
【請求項１１】
請求項１に記載の半導体装置において、
前記イベントコントローラは、
選択した前記イベント処理要求を出力した前記機能ブロックへ、前記イベントＩＤを出力させるイベントＩＤ出力指示を出力し、
前記イベントＩＤ出力指示が入力された前記機能ブロックは、選択した前記イベント処理要求に基づいた前記イベントＩＤを複数の前記機能ブロックへ出力し、
複数の前記機能ブロックの前記イベントＩＤ入力部は、前記機能ブロックから出力された前記イベントＩＤの入力を受け付ける、
半導体装置。
【請求項１２】
中央処理装置と、
割り込み要因に基づいたイベントＩＤを出力する複数の機能ブロックと、
前記イベントＩＤを出力させるイベントＩＤ出力指示を前記機能ブロックへ出力するイベントコントローラと、を備え、
それぞれの前記機能ブロックは、
前記割り込み要因を検出し、前記割り込み要因に基づいた前記イベントＩＤを生成し、生成した前記イベントＩＤを出力する割り込み要因検出部と、
前記イベントＩＤの入力を受け付けるイベントＩＤ入力部と、
入力された前記イベントＩＤが応答すべき前記イベントＩＤであるかどうかを判定し、入力された前記イベントＩＤが応答すべき前記イベントＩＤである場合、入力された前記イベントＩＤに対応する応答内容を指定するイベント応答指定部と、
指定された前記応答内容に係るイベント応答処理を行うイベント応答処理部と、
を備え、
前記イベントＩＤ出力指示が入力された前記機能ブロックは、前記イベントＩＤを複数の前記機能ブロックへ出力し、
複数の前記機能ブロックの前記イベントＩＤ入力部は、前記機能ブロックから出力された前記イベントＩＤの入力を受け付ける、
半導体装置。
【請求項１３】
請求項１２に記載の半導体装置において、
前記イベントコントローラは、それぞれの前記機能ブロックへ前記イベントＩＤ出力指示を順次出力する、
半導体装置。
【請求項１４】
請求項１２に記載の半導体装置において、
前記イベントコントローラは、所定の間隔で前記機能ブロックへ前記イベントＩＤ出力指示を出力する、
半導体装置。
【請求項１５】
請求項１に記載の半導体装置において、
前記イベントコントローラは、選択した前記イベント処理要求に基づいて前記中央処理装置へ割り込むか、前記イベントコントローラを起動するか、を選択する、
半導体装置。
【請求項１６】
請求項１５に記載の半導体装置において、
前記イベントコントローラは、選択した前記イベント処理要求に対応するベクタ番号を生成し、前記中央処理装置へ割り込む場合、前記中央処理装置へのＣＰＵ割り込み要求及び前記ベクタ番号を前記中央処理装置へ出力し、前記イベントコントローラを起動する場合、前記ベクタ番号に対応する前記イベントＩＤを生成し、生成した前記イベントＩＤを複数の前記機能ブロックへ出力する、
半導体装置。
【請求項１７】
請求項１６に記載の半導体装置において、
前記イベントコントローラは、
複数の前記イベント処理要求の入力を受け付け、入力された前記複数のイベント処理要求を調停し、処理される前記イベント処理要求を選択し、選択した前記イベント処理要求に対応する前記ベクタ番号を生成し、選択した前記イベント処理要求に基づいて前記中央処理装置へ割り込むか、前記イベントコントローラを起動するか、を選択し、前記中央処理装置へ割り込む場合、前記ＣＰＵ割り込み要求及び前記ベクタ番号を前記中央処理装置へ出力し、前記イベントコントローラを起動する場合、イベントコントローラ起動要求及び前記ベクタ番号を出力するイベント検出ブロックと、
前記イベント検出ブロックから出力された前記イベントコントローラ起動要求及び前記ベクタ番号の入力を受け付け、前記ベクタ番号に対応する前記イベントＩＤを生成し、生成した前記イベントＩＤを複数の前記機能ブロックへ出力するイベント送信ブロックと、
を備えている、
半導体装置。
【請求項１８】
請求項１７に記載の半導体装置において、
前記イベント検出ブロックは、
前記中央処理装置へ割り込むか、前記イベントコントローラを起動するかを規定するイベント処理許可情報を格納するイベント処理許可レジスタと、
前記イベント処理許可情報に基づいて、それぞれの前記イベント処理要求に対し、前記中央処理装置へ割り込むか、前記イベントコントローラを起動するか、を判定するイベント判定部と、
前記イベント判定部により前記中央処理装置へ割り込むよう判定された複数の前記イベント処理要求を調停し、処理される前記イベント処理要求を選択し、選択した前記イベント処理要求に対応する前記ベクタ番号を生成し、前記ＣＰＵ割り込み要求及び前記ベクタ番号を前記中央処理装置へ出力し、前記イベント判定部により前記イベントコントローラを起動するよう判定された複数の前記イベント処理要求を調停し、処理される前記イベント処理要求を選択し、選択した前記イベント処理要求に対応する前記ベクタ番号を生成し、前記イベントコントローラ起動要求及び前記ベクタ番号を前記イベント送信ブロックへ出力するイベント選択部と、を備えている、
半導体装置。
【請求項１９】
請求項１８に記載の半導体装置において、
前記イベント検出ブロックは、
前記割り込み要因ごとの優先度を規定する優先度情報を格納するイベント選択レジスタを備え、
前記イベント選択部は、前記優先度情報に基づいて処理される前記イベント処理要求を選択する、
半導体装置。
【請求項２０】
請求項１８に記載の半導体装置において、
前記中央処理装置が割り込みを受け付けるかどうかを規定する割り込みマスクレベル情報を格納するイベント選択レジスタを備え、
前記イベント選択部は、前記割り込みマスクレベル情報に基づいて、前記中央処理装置へ割り込むかどうかを判定する、
半導体装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体装置に関する。
【背景技術】
【０００２】
マイクロコンピュータは、各種機器に設けられ、機器を構成する各部の制御を行う。マイクロコンピュータは、例えば、中央処理装置（ＣＰＵ）を中心にしてプログラム保持用のＲＯＭ（リードオンリメモリ）、データ保持用のＲＡＭ（ランダムアクセスメモリ）、データや信号の入出力を行うための入出力回路等の入出力機能ブロック等で構成されている。いわゆるシングルチップマイクロコンピュータと呼ばれる半導体装置では、ＣＰＵとこれらの機能ブロックとが、同一の半導体基板上に形成されている。
【０００３】
各種機器の制御において、マイクロコンピュータは、例えば、入出力機能ブロックからの割り込み等のイベントに呼応して、入出力機能ブロックに対する所要の処理を行う必要がある。例えば、ＣＰＵは命令の組み合わせによって任意の処理を実現できるものの、割り込み処理を行う場合には、例外処理、スタックの退避・復帰操作、復帰命令等を実行して処理の流れを切り替える必要がある。この場合、ＣＰＵの負担は増大する。
【０００４】
一方、特許文献１には、データ処理の高速化とＣＰＵの負担軽減を実現するイベント応答制御技術を提供する、データプロセッサ及び制御システムが開示されている。データプロセッサは、割り込みコントローラとは別に、発生されたイベント信号に応答して回路モジュールに対応する動作の起動制御信号を出力するイベントリンクコントローラを採用している。
【０００５】
また、回路モジュールはイベント信号を発生することが可能であり、イベントリンクコントローラは、イベント制御情報によって定義された前記イベント信号と起動制御信号との対応に従って前記起動制御信号を発生する。イベント記憶情報によってイベント信号と起動制御信号との連鎖が規定されるから、その連鎖によって規定される複数の回路モジュールの動作がシーケンシャルに制御される。割り込み処理の場合のようにＣＰＵによる退避・復帰の処理を伴わず、競合する割り込み要求に対する優先レベル制御も必要としない。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００８−２５０９８７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
このようなイベントリンクコントローラには、使用するイベント信号と起動制御信号との対応付けが、マイクロコンピュータの論理として予め実装されている必要がある。しかし、マイクロコンピュータの機能の増加に伴い、イベント信号および起動制御信号の数が増加するにつれ、イベント信号と起動制御信号とを対応させる組み合わせの個数も増加する。
【０００８】
また、１つのイベント信号から複数の起動制御信号が発生する場合や、複数のイベント信号から１つの起動制御信号が発生する場合もあるので、イベント信号と起動制御信号とを対応させる組み合わせはさらに多くなる。そうすると、イベントリンクコントローラの論理構成が非常に複雑になる。
【０００９】
また、マイクロコンピュータの使用者からすれば、使用したいイベント信号、起動制御信号、及びこれらの組み合わせが用意されているとは限らない。また、これらは、使用者による開発途中で、新たに認識されることも考えられる。さらに、複数のイベントが同時に発生したときの制御についても対処が必要になる場合もある。このように、必要な全ての組み合わせを、予めマイクロコンピュータに実装することは困難である。
【００１０】
そこで、本願は、論理構成の複雑化を抑えつつ、さまざまなイベントを処理することが可能な半導体装置を提供することを目的とする。
【００１１】
本願における前記ならびにその他の目的と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１２】
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、以下のとおりである。
【００１３】
代表的な実施の形態による半導体装置は、中央処理装置と、割り込み要因に基づいたイベント処理要求を出力する複数の機能ブロックと、それぞれの機能ブロックから出力されたイベント処理要求の入力を受け付け、入力された複数のイベント処理要求を調停し、処理されるイベント処理要求を選択し、選択したイベント処理要求に基づいたイベントＩＤを生成し、生成したイベントＩＤを複数の機能ブロックへ出力するイベントコントローラと、を備え、それぞれの機能ブロックは、割り込み要因を検出し、割り込み要因に基づいたイベント処理要求を出力する割り込み要因検出部と、イベントコントローラから出力されたイベントＩＤの入力を受け付けるイベントＩＤ入力部と、入力されたイベントＩＤが応答すべきイベントＩＤであるかどうかを判定し、入力されたイベントＩＤが応答すべきイベントＩＤである場合、入力されたイベントＩＤに対応する応答内容を指定するイベント応答指定部と、指定された応答内容に基づいてイベント応答処理を行うイベント応答処理部と、を備えている。
【発明の効果】
【００１４】
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば以下のとおりである。
【００１５】
すなわち、本発明の代表的な実施の形態によれば、論理構成の複雑化を抑えつつ、さまざまなイベントを処理することが可能となる。
【図面の簡単な説明】
【００１６】
【図１】本発明の実施の形態１に係るマイクロコンピュータの構成の一例を示す図である。
【図２】本発明の実施の形態１に係る機能ブロックの構成の一例を示す図である。
【図３】イベントＩＤに対応する応答内容の設定方法の一例を示す図である。
【図４】外部イベント処理要求の入力を受け付ける機能ブロックにおけるデータ出力方法の一例を示す図である。
【図５】イベント応答処理方法の一例を示す図である。
【図６】イベントコントローラの構成の一例を示す図である。
【図７】イベントＩＤ出力時におけるイベントライトサイクルの一例を示す図である。
【図８】複数の割り込み要因が同時に発生した場合のイベント応答処理方法の一例を示す図である。
【図９】イベントＩＤの出力方法の一例を示す図である。
【図１０】本発明の実施の形態４に係るカメラの構成の一例を示す図である。
【発明を実施するための形態】
【００１７】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全ての図において、同一部には原則として同一の符号を付し、その繰り返しの説明は省略する。
【００１８】
（実施の形態１）
＜半導体装置の構成＞
図１は、本発明の実施の形態１に係るマイクロコンピュータの構成の一例を示す図である。マイクロコンピュータ（ＭＣＵ：Ｍｉｃｒｏ  Ｃｏｎｔｒｏｌ  Ｕｎｉｔ、半導体装置）１は、図１に示すように、例えば、中央処理装置（ＣＰＵ：Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０、リードオンリメモリ（ＲＯＭ）２０、ランダムアクセスメモリ（ＲＡＭ）３０、イベントコントローラ４０、複数の機能ブロック５０（例えば、５０Ａ、５０Ｂ、５０Ｃ、５０Ｄ）、バスコントローラ（ＢＳＣ）６０、ＭＣＵ内部バス６５等を備えている。マイクロコンピュータ１を構成するこれら各部は、図１に示すように、ＭＣＵ内部バス６５等を介して互いに接続されている。
【００１９】
中央処理装置１０は、例えば、リードオンリメモリ２０等に格納された命令を読み出し、読み出した命令を実行する。
【００２０】
また、中央処理装置１０は、例えば、イベントコントローラ４０から出力されたＣＰＵ割り込み要求及び後述するベクタ番号の入力を受け付ける。中央処理装置１０は、ＣＰＵ割り込み要求及びベクタ番号とともに、イベントコントローラ４０から出力されるデータやパラメータの入力を受け付けてもよい。中央処理装置１０は、ＣＰＵ割り込み要求及びベクタ番号の入力を受け付けると、ベクタ番号に基づいたイベント応答処理（割り込み処理）を行う。
【００２１】
また、中央処理装置１０は、例えば、イベントコントローラ４０に設けられた後述する各種レジスタ、及びそれぞれの機能ブロックに設けられた後述する各種レジスタに格納される各種情報の書き込み、消去を行う。
【００２２】
リードオンリメモリ２０は、例えば、不揮発性メモリ等で構成されている。リードオンリメモリ２０は、例えば、中央処理装置１０で実行される命令、マイクロコンピュータ１の各種設定情報等を格納する。リードオンリメモリ２０は、例えば、中央処理装置１０等の要求に基づいて、格納している命令、設定情報等を出力する。また、リードオンリメモリ２０は、例えば、割り込み要因ごとに、ベクタ番号、イベントＩＤ、サービスルーチンの先頭アドレスを対応させたベクタテーブルを格納してもよい。ベクタテーブルの内容は、例えば、マイクロコンピュータ１の使用者により任意に設定される。
【００２３】
ランダムアクセスメモリ３０は、例えば、揮発性メモリ等で構成されている。ランダムアクセスメモリ３０は、例えば、中央処理装置１０における命令の実行により生成されたデータを一時的に格納する。また、ランダムアクセスメモリ３０は、例えば、中央処理装置１０等からの要求に基づいて、一時的に格納しているデータを出力する。また、ランダムアクセスメモリ３０は、前述したベクタテーブルを格納してもよい。
【００２４】
機能ブロック５０は、例えば、図示しない周辺装置と接続されており、周辺装置との間で各種データの入出力を行う。マイクロコンピュータ１は、図１に示すように、例えば、タイマ機能に関するイベント応答処理を行う機能ブロック（タイマ）５０Ａ、周辺装置との間でシリアルデータの入出力を行う機能ブロック（通信）５０Ｂ、周辺装置との間でアナログデータの入出力を行う機能ブロック（アナログ）５０Ｃ、周辺装置から出力された外部イベント処理要求の入力を受け付ける機能ブロック（Ｉ／Ｏ）５０Ｄを備えている。このように、マイクロコンピュータ１は、複数の機能ブロック５０を備えている。なお、マイクロコンピュータ１は、これら以外の機能（例えばデータ転送機能）を有する機能ブロック５０を備えていてもよい。
【００２５】
図２は、本発明の実施の形態１に係る機能ブロックの構成の一例を示す図である。それぞれの機能ブロック５０は、例えば、図２に示すように、割り込み要因検出部５１、割り込み要因保持部５２、イベントＩＤ入力部５３、イベント応答指定部５４、イベント制御レジスタ５５、イベント応答処理部５６、イベント処理要求許可判定部５８、イベント処理要求許可レジスタ５９等を備えている。
【００２６】
割り込み要因検出部５１は、割り込み要因を検出する。例えば、機能ブロック５０Ａ、５０Ｂ、５０Ｃの割り込み要因検出部５１は、それぞれの機能ブロック５０内で発生した割り込み要因を検出する。例えば、機能ブロック５０Ｄの割り込み要因検出部５１は、図示しない周辺装置から出力された外部イベント処理要求に基づいて割り込み要因を検出する。それぞれの機能ブロック５０の割り込み要因検出部５１は、検出した割り込み要因に基づいたイベント処理要求をイベントコントローラ４０へ出力する。また、割り込み要因検出部５１は、イベント処理要求とともに、イベント応答処理に用いられるイベント応答処理用データや、パラメータをイベントコントローラ４０へ出力してもよい。
【００２７】
割り込み要因保持部５２は、割り込み要因検出部５１で検出された割り込み要因を保持する。また、それぞれの機能ブロック５０では、割り込み要因保持部５２で保持されている割り込み要因に基づいたイベントＩＤが入力されると、割り込み要因保持部５２で保持されている割り込み要因が消去される。例えば、それぞれの機能ブロック５０は、ベクタテーブルに従い、入力されたイベントＩＤが割り込み要因保持部５２で保持されている割り込み要因に対応している場合、保持されているイベント情報を消去する。
【００２８】
イベントＩＤ入力部５３は、イベントコントローラ４０から出力されたイベントＩＤの入力を受け付ける。また、イベントＩＤ入力部５３は、ＭＣＵ内部バス６５と接続され、ＭＣＵ内部バス６５を介して、イベント応答処理用データ、パラメータ等の各種データの入力を受け付ける。イベントＩＤ入力部５３は、入力されたイベントＩＤ等を、例えば、イベント応答指定部５４等へ出力する。
【００２９】
イベント制御レジスタ５５は、機能ブロック５０ごとに応答すべきイベントＩＤと、応答内容と、を対応させたイベント応答情報を格納する。例えば、機能ブロック５０Ａのイベント制御レジスタ５５は、機能ブロック５０Ａが応答すべきイベントＩＤと、応答内容とを対応させたイベント応答情報を格納する。他の機能ブロック５０Ｂ、５０Ｃ、５０Ｄのイベント制御レジスタ５５についても同様である。
【００３０】
イベント応答指定部５４は、イベントＩＤ入力部５３に入力されたイベントＩＤが応答すべきイベントＩＤであるかどうかを判定する。また、イベント応答指定部５４は、入力されたイベントＩＤが応答すべきイベントＩＤである場合、入力されたイベントＩＤに対応する応答内容を指定する。例えば、イベント応答指定部５４は、イベント制御レジスタ５５に格納されたイベント応答情報を参照し、入力されたイベントＩＤが応答すべきイベントＩＤであるかを判定する。イベント応答指定部５４は、入力されたイベント情報が応答すべきイベントＩＤである場合、入力されたイベントＩＤ及びイベント応答情報に基づいて、応答すべきイベントＩＤに対応する応答内容を指定する。
【００３１】
イベント応答指定部５４は、指定した応答内容をイベント応答処理部５６へ出力する。また、イベント応答指定部５４は、応答内容を出力する際、イベントＩＤとともに入力されたイベント応答処理用データ等をイベント応答処理部５６へ出力してもよい。
【００３２】
それぞれの機能ブロック５０が応答すべきイベントＩＤ、及びイベントＩＤごとの応答内容は、例えば、マイクロコンピュータ１の使用者により、応用システムに応じて任意に設定される。図３は、イベントＩＤに対応する応答内容の設定方法の一例を示す図である。図３（ａ）は、応答すべきイベントＩＤの設定方法の一例を示す図である。図３（ｂ）は、応答すべきイベントＩＤに対応する応答内容の設定方法の一例を示す図である。なお、図３では、タイマ機能を備えた機能ブロック５０Ａの例が示されている。
【００３３】
機能ブロック５０Ａでは、図３（ａ）に示すように、タイマ機能に関する固有の動作（例えば、カウンタスタート、イベントカウント、インプットキャプチャ等）に対応するイベントＩＤが設定される。機能ブロック５０Ａのイベント制御レジスタ５５には、例えば、図３（ａ）に示すように、ＡＣＴ０（カウンタスタート）に対応するイベントＩＤ（ＥＶ＿ＩＤ（０））が設定され、ＡＣＴ１（イベントカウント）に対応するイベントＩＤ（ＥＶ＿ＩＤ（１））が設定され、ＡＣＴ２（インプットキャプチャ）に対応するイベントＩＤ（ＥＶ＿ＩＤ（２））等が設定される。
【００３４】
また、それぞれのイベントＩＤには、例えば、イベント応答処理用データや、パラメータが指定されるようにしてもよい。例えば、パラメータにより、インプットキャプチャのレジスタ使用方法が指定される。詳しくは、パラメータにより設定されたイベント制御レジスタ５５のパラメータ指定領域における特定のビットの値に応じて、いわゆるバッファ動作を行うかどうかが指定される。あるいは、パラメータの値が、コンペアレジスタの加減算に用いられる。
【００３５】
それぞれのイベントＩＤに対応する応答内容は、例えば、図３（ｂ）に示す方法により設定される。機能ブロック５０Ａのイベント制御レジスタ５５には、例えば、図３（ｂ）に示す方法により、ＣＴＲ０に、カウンタスタートを行う応答内容、ＣＴＲ１にイベントカウントを行う応答内容、ＣＴＲ２にインプットキャプチャを行う応答内容を、あるいはほかの応答内容を設定することができる。それぞれの応答内容は、例えば、図３（ｂ）に示すように、イベントＩＤの指定（ＥＶ＿ＩＤ）、使用するイベント制御レジスタ５５の指定（ＲＥＧ＿ＳＬ）、指定されたイベント制御レジスタ５５において設定を変更するビットの指定（ＷＲ＿ＥＮ）、指定されたビットに書き込むデータの指定（ＷＲ＿ＤＴ）、を１組の情報として設定される。
【００３６】
この１組の情報に基づいて、所定のイベント制御レジスタ５５の所定のビットに所定のデータが書きこまれることにより、それぞれのイベントＩＤに対応する応答内容が設定される。例えば、カウントスタートを指定するＣＳＴビットが、図示しないカウントスタートに関するイベント制御レジスタ５５（ＴＳＴＲ）のビット０に存在する場合、所定のイベント制御レジスタ５５（ＲＥＧ＿ＳＬ（０））の領域における、所定のビット（ＷＲ＿ＥＮ（０））に、所定のデータ（ＷＲ＿ＤＴ（０）、例えば「１」）を設定することにより、カウンタスタートに関する応答内容が設定される。２つのイベントでカウントスタートを行う場合、ＣＴＲ０、ＣＴＲ１に、イベントＩＤが異なる内容を設定すればよい。カウンタスタート、イベントカウント、インプットキャプチャ以外の応答内容をＣＴＲ０〜２に設定することができる。
【００３７】
イベント応答処理部５６は、イベント応答指定部５４により指定された応答内容に基づいてイベント応答処理を行う。イベント応答処理部５６は、例えば、イベント応答処理部５４から出力された応答内容、イベント応答処理用データ等に基づいてイベント応答処理を行ってもよい。
【００３８】
また、イベント応答処理部５６は、周辺装置との間で各種データの入出力を行う。例えば、イベント応答処理部５６は、周辺装置から出力された各種データの入力を受け付ける。イベント応答処理部５６は、入力された各種データを、例えば、割り込み要因検出部５１へ出力してもよい。また、イベント応答処理部５６は、例えば、イベントＩＤ入力部５３を介して入力された各種データ、イベント応答処理により生成されたデータ等を周辺装置へ出力してもよい。
【００３９】
機能ブロック５０Ａのイベント応答処理部５６は、タイマ機能に関するイベント応答処理を行う。機能ブロック５０Ａのイベント応答処理部５６は、例えば、カウンタのスタート、イベントカウント、カウンタのキャプチャ（インプットキャプチャとも呼ぶ）等の処理を行う。また、機能ブロック５０Ａのイベント応答処理部５６は、例えば、インプットキャプチャにより取り込んだカウント値等のデータを周辺装置等へ出力する。
【００４０】
機能ブロック５０Ｂのイベント応答処理部５６は、例えば、周辺装置との間でシリアルデータの入出力を行う。機能ブロック５０Ｂのイベント応答処理部５６は、例えば、シリアルコミュニケーションインタフェース（以下では、ＳＣＩとも称する）を備え、ＳＣＩを介して、周辺装置との間でシリアルデータの入出力を行う。
【００４１】
機能ブロック５０Ｂのイベント応答処理部５６は、例えば、周辺装置から出力されたシリアルデータの入力を受け付け、入力されたシリアルデータをパラレルデータに変換する。また、機能ブロック５０Ｂのイベント応答処理部５６は、変換されたパラレルデータを、例えば、イベント発生検出部５１等へ出力してもよい。このとき、機能ブロック５０Ｂの割り込み要因検出部５１は、例えば、周辺装置から出力されたシリアルデータの入力完了に基づいた割り込み要因を検出し、イベント処理要求を出力する。
【００４２】
また、機能ブロック５０Ｂのイベント応答処理部５６は、周辺装置へ出力するデータをシリアルデータに変換する。機能ブロック５０Ｂのイベント応答処理部５６は、例えば、イベント応答処理で生成されたデータや、イベントＩＤ入力部５３に入力されたデータのうち、周辺装置へ出力するデータを、シリアルデータに変換する。機能ブロック５０Ｂのイベント応答処理部５６は、変換したシリアルデータを、ＳＣＩを介して周辺装置へ出力する。
【００４３】
機能ブロック５０Ｃのイベント応答処理部５６は、周辺装置との間でアナログデータの入出力を行う。機能ブロック５０Ｃのイベント応答処理部５６は、例えば、アナログデータをデジタルデータに変換するＡ／Ｄ変換器、デジタルデータをアナログデータへ変換するＤ／Ａ変換器を備えている。機能ブロック５０Ｃのイベント応答処理部５６は、例えば、周辺装置から出力されたアナログデータの入力を受け付け、Ａ／Ｄ変換器において、入力されたアナログデータをデジタルデータに変換する。機能ブロック５０Ｃのイベント応答処理部５６は、例えば、変換されたデジタルデータに基づいてイベント応答処理を行う。また、機能ブロック５０Ｃのイベント応答処理部５６は、変換されたデジタルデータを、例えば、イベント発生検出部５１等へ出力してもよい。このとき、機能ブロック５０Ｃの割り込み要因検出部５１は、例えば、周辺装置から出力されたアナログデータの入力完了に基づいた割り込み要因を検出し、イベント処理要求を出力する。
【００４４】
また、機能ブロック５０Ｃのイベント応答処理部５６は、周辺装置へ出力するデータをアナログデータに変換する。機能ブロック５０Ｃのイベント応答処理部５６は、例えば、イベント応答処理で生成されたデータや、イベントＩＤ入力部５３に入力されたデータのうち、周辺装置へ出力するデータを、Ａ／Ｄ変換器において、アナログデータに変換する。機能ブロック５０Ｃのイベント応答処理部５６は、変換したアナログデータを周辺装置へ出力する。
【００４５】
機能ブロック５０Ｄのイベント応答処理部５６は、周辺装置から出力された外部イベント処理要求の入力を受け付ける。機能ブロック５０Ｄのイベント応答処理部５６は、入力された外部イベント処理要求を、例えば、割り込み要因検出部５１へ出力する。また、機能ブロック５０Ｄのイベント応答処理部５６は、入力された外部イベント処理要求に応答する各種データを出力する。機能ブロック５０Ｄのイベント応答処理部５６は、例えば、イベントＩＤ入力部５３に入力されたデータや、イベント応答処理により生成したデータ等の各種データを周辺装置へ出力する。
【００４６】
図４は、外部イベント処理要求の入力を受け付ける機能ブロックにおけるデータ出力方法の一例を示す図である。図４（ａ）は、機能ブロック５０Ｄの構成の一例を示す図である。なお、図４（ａ）では、機能ブロック５０Ｄの一部の構成のみが示されている。図４（ｂ）は、機能ブロック５０におけるデータ出力に係るタイミングの一例を示す図である。
【００４７】
機能ブロック５０Ｄのイベント応答処理部５６は、図４（ａ）に示すように、例えば、ポート出力レジスタ５６Ａ、ネクストデータレジスタ５６Ｂを備えている。
【００４８】
ポート出力レジスタ５６Ａは、周辺装置へ出力されるデータを格納する。ネクストデータレジスタ５６Ｂは、ポート出力レジスタ５６Ａに格納されたデータの次に周辺装置へ出力されるネクストデータを格納する。機能ブロック５０Ｄでは、例えば、所定のイベントＩＤが入力されると、イベント応答処理部５６は、ポート出力レジスタ５６Ａに格納されたデータを周辺装置へ出力する。ポート出力レジスタ５６Ａに格納されたデータが出力されると、ネクストデータレジスタ５６Ｂに格納されたネクストデータがポート出力レジスタ５６Ａに格納される。すなわち、ネクストデータは、ポート出力レジスタ５６Ａに転送される。
【００４９】
例えば、後述のイベント送信ブロック４８は、図４（ｂ）に示すイベントライトサイクルを起動する。イベント送信ブロック４８は、図４（ｂ）に示すように、例えば、データに関するＭＣＵ内部バス６５に対し、最初の１ステートでイベントＩＤを出力する。機能ブロック５０ＤのイベントＩＤ入力部５３は、例えば、図４（ｂ）に示すストローブ信号の立下りのタイミングでイベントＩＤの入力を受け付ける。機能ブロック５０Ｄは、イベントＩＤの入力を受け付けると、ポート出力レジスタ５６Ａに格納されたデータを周辺装置へ出力する。
【００５０】
そして、ポート出力レジスタ５６Ａは、ネクストデータレジスタ５６Ｂから転送されたネクストデータを格納する。
【００５１】
そして、機能ブロック５０Ｄのイベント応答処理部５６は、ネクストデータの次に出力されるデータをネクストデータレジスタ５６Ｂへ格納する。また、機能ブロック５０Ｄは、例えば、ネクストデータレジスタが設けられることなく、入力されたイベントＩＤに応じて、１出力や０出力を行うイベント応答処理を行ってもよい。
【００５２】
イベント処理要求許可レジスタ５９は、イベント処理要求の出力を許可するかどうかを規定するイベント処理要求許可情報を格納する。イベント処理要求許可情報は、例えば、中央処理装置１０により、イベント処理要求許可レジスタ５９に書き込まれる。このように、イベント処理要求許可レジスタ５９は、例えば、中央処理装置１０により、書き込み、消去等が行われる。
【００５３】
図２に示すイベント処理要求許可判定部５８は、例えば、割り込み要因検出部５１から出力されたイベント処理要求を格納するイベント処理要求格納レジスタ（図示は省略）を備えている。割り込み要因検出部５１からイベント処理要求が出力されると、イベント処理要求格納レジスタは、イベント処理要求を格納する。それぞれの機能ブロック５０は、例えば、イベント処理要求格納レジスタの割り込み要因フラグを所定の値（例えば、「１」）にセットすることにより、イベント処理要求を格納する。
【００５４】
割り込み要因フラグは、例えば、タイマ、通信、アナログの機能ブロック５０Ａ、５０Ｂ、５０Ｃが所定の状態になった（イベントが発生した）ときに「１」にセットされる。また、例えば、外部割り込み（Ｉ／Ｏ）の機能ブロック５０Ｄの割り込み要因フラグは、外部割り込み入力端子（例えば、イベント応答処理部５６の入力端子）が所定のレベルになったとき、又は外部割り込み入力端子のレベルに所定の変化が発生したときに、「１」にセットされる。
【００５５】
また、割り込み要因フラグは、割り込み要因保持部５２で保持されている割り込み要因に基づいたイベントＩＤが入力されると「０」にクリアされる。また、例えば、イベント処理要求に基づいたイベント応答処理が中央処理装置１０で行われた場合、割り込み要因フラグは、例えば、中央処理装置１０による書き込み（ライト）動作により「０」にクリアされる。
【００５６】
イベント処理要求許可判定部５８は、イベント処理要求許可レジスタ５９に格納されたイベント処理要求許可情報に基づいて、イベント処理要求をイベントコントローラ４０へ出力するかどうかを判定する。例えば、イベント処理要求の出力を許可するイベント処理要求出力許可情報がイベント処理要求許可レジスタ５９に書き込まれている場合、イベント処理要求許可判定部５８は、イベント処理要求をイベントコントローラ４０へ出力する。詳しくは、イベント処理要求許可判定部５８は、例えば、割り込み要因フラグが所定の値にセットされ、イベント処理要求許可レジスタ５９にイベント処理要求の出力を許可するイベント処理要求出力許可情報が書き込まれている場合、イベント処理要求をイベントコントローラ４０へ出力する。
【００５７】
次に、イベントコントローラ４０について説明する。図５は、イベント応答処理方法の一例を示す図である。図６は、イベントコントローラの構成の一例を示す図である。イベントコントローラ４０は、それぞれの機能ブロック５０から出力されたイベント処理要求の入力を受け付ける。また、イベントコントローラ４０は、入力された複数のイベント処理要求を調停し、処理されるイベント処理要求を選択する。また、イベントコントローラ４０は、選択したイベント処理要求に基づいたイベントＩＤを生成し、生成したイベントＩＤを複数の機能ブロック５０へ出力する。
【００５８】
また、イベントコントローラ４０は、選択したイベント処理要求に基づいて中央処理装置１０へ割り込むか、イベントコントローラ４０を起動するか、を選択する。
【００５９】
また、イベントコントローラ４０は、選択したイベント処理要求に対応するベクタ番号を生成する。中央処理装置１０へ割り込む場合、イベントコントローラ４０は、中央処理装置１０へのＣＰＵ割り込み要求及びベクタ番号を中央処理装置１０へ出力する。また、イベントコントローラ４０を起動する場合、イベントコントローラ４０は、ベクタ番号に対応するイベントＩＤを生成し、生成したイベントＩＤを複数の機能ブロック５０へ出力する。
【００６０】
イベントコントローラ４０は、図１、図５、図６に示すように、イベント検出ブロック４１、イベント送信ブロック４８を備えている。イベント検出ブロック４１は、それぞれの機能ブロック５０から出力されたイベント処理要求の入力を受け付ける。イベント検出ブロック４１は、入力された複数のイベント処理要求を調停し、処理されるイベント処理要求を選択する。イベント検出ブロック４１は、選択したイベント処理要求に基づいて中央処理装置１０へ割り込むか、イベントコントローラ４０を起動するか、を選択する。イベント検出ブロック４１は、選択したイベント処理要求に対応するベクタ番号を生成する。中央処理装置１０へ割り込む場合、イベント検出ブロック４１は、図６に示すように、ＣＰＵ割り込み要求及びベクタ番号を中央処理装置１０へ出力する。イベントコントローラ４０を起動する場合、イベント検出ブロック４１は、図６に示すように、イベントコントローラ起動要求（ＥＶ＿ＲＥＱ）及びベクタ番号（ＥＶ＿ＶＥＣ）をイベント送信ブロック４８へ出力する。
【００６１】
イベント検出ブロック４１は、図６に示すように、例えば、イベント処理許可レジスタ４２、イベント判定部４３、イベント選択レジスタ４４、イベント選択部４５等を備えている。
【００６２】
イベント処理許可レジスタ４２は、中央処理装置１０へ割り込むか、イベントコントローラ４０を起動するかを規定するイベント処理許可情報を格納する。イベント処理許可レジスタ４２は、例えば、それぞれの割り込み要因に対応するビットが設けられている。すなわち、イベント処理許可情報は、割り込み要因ごとに設定される。イベント処理許可情報は、例えば、中央処理装置１０により書き込まれる。
【００６３】
イベント判定部４３は、イベント処理許可レジスタ４２に格納されたイベント処理許可情報に基づいて、それぞれのイベント処理要求に対し、中央処理装置１０へ割り込むか、イベントコントローラ４０を起動するか、を判定する。イベント判定部４３は、判定したイベント処理要求をイベント選択部４５へ出力する。このとき、イベント判定部４３は、判定結果やイベント処理許可情報とともに、イベント処理要求をイベント選択部４５へ出力してもよい。
【００６４】
イベント選択レジスタ４４は、割り込み要因ごとの優先度を規定する優先度情報を格納する。イベント選択レジスタ４４は、例えば、それぞれの割り込み要因に対応するビットが設けられている。すなわち、優先度情報は、割り込み要因ごとに設定される。
【００６５】
また、イベント選択レジスタ４４は、中央処理装置１０が割り込みを受け付けるかどうかを規定する割り込みマスクレベル情報を格納する。割り込みマスクレベル情報は、例えば、割り込み要因ごとに設定されてもよいし、スリープモードに入っている等、中央処理装置１０の状態に応じて設定されてもよい。
【００６６】
優先度情報及び割り込みマスクレベル情報は、例えば、中央処理装置１０により書き込まれる。
【００６７】
イベント選択部４５は、イベント判定部４３により中央処理装置１０へ割り込むよう判定された複数のイベント処理要求を調停し、処理するイベント処理要求を選択する。イベント選択部４５は、例えば、イベント選択レジスタ４４に格納された優先度情報に基づいて処理するイベント処理要求を選択する。詳しくは、イベント選択部４５は、中央処理装置１０へ割り込むよう判定された複数のイベント処理要求のそれぞれの優先度を比較し、最も優先度が高いイベント処理要求を中央処理装置１０へ割り込み要求を行うイベント処理要求として選択する。
【００６８】
イベント選択部４５は、選択したイベント処理要求に対応するベクタ番号を生成する。イベント選択部４５は、例えば、リードオンリメモリ２０等に格納されたベクタテーブルを参照し、選択したイベント処理要求に対応するベクタ番号を読み出す。
【００６９】
イベント選択部４５は、イベント選択レジスタ４４に格納された割り込みマスクレベル情報に基づいて、中央処理装置１０へ割り込むかどうかを判定する。イベント選択部４５は、例えば、中央処理装置１０が割り込みを受け付け可能であることを示す割り込みマスクレベル情報がイベント選択レジスタ４４に書き込まれている場合、イベント選択部４５は、ＣＰＵ割り込み要求及び生成した（読み出した）ベクタ番号を中央処理装置１０へ出力する。
【００７０】
また、イベント選択部４５は、イベント判定部４３によりイベントコントローラ４０を起動するよう判定された複数のイベント処理要求を調停し、処理されるイベント処理要求を選択する。処理されるイベント処理要求は、例えば、前述した優先度情報に基づいて選択される。
【００７１】
イベント選択部４５は、イベントコントローラ４０を起動するよう選択したイベント処理要求に対応するベクタ番号を生成する。ベクタ番号は、例えば、前述したベクタテーブルに基づいて生成される。イベント選択部４５は、イベントコントローラ起動要求（ＥＶ＿ＲＥＱ）及び生成したベクタ番号（ＥＶ＿ＶＥＣ）をイベント送信ブロック４８へ出力する。
【００７２】
このように、イベント選択部４５は、中央処理装置１０へ割り込み要求を行うイベント処理要求と、イベントコントローラ４０を起動するイベント処理要求と、を独立して選択する。
【００７３】
イベント送信ブロック４８は、イベント検出ブロック４１（例えば、イベント選択部４５）から出力されたイベントコントローラ起動要求（ＥＶ＿ＲＥＣ）及びベクタ番号（ＥＶ＿ＶＥＣ）の入力を受け付ける。イベント送信ブロック４８は、入力されたベクタ番号（ＥＶ＿ＶＥＣ）に対応するイベントＩＤを生成する。イベント送信ブロック４８は、例えば、リードオンリメモリ２０等に格納されたベクタテーブルを参照し、入力されたベクタ番号に対応するイベントＩＤを読み出す。イベント送信ブロック４８は、例えば、イベントライトサイクルを起動し、生成した（読み出した）イベントＩＤを、ＭＣＵ内部バス６５を介して複数の機能ブロック５０へ出力する。
【００７４】
図７は、イベントＩＤ出力時におけるイベントライトサイクルの一例を示す図である。イベントＩＤ出力時のイベントライトサイクルでは、例えば、図７に示すように、２ステートのバスサイクルを単位としてイベントＩＤ等の入出力が行われる。アドレス（バスコマンド）のＭＣＵ内部バス６５には、例えば、データの出力回数に関する情報が出力される。イベント送信ブロック４８は、図７に示すように、例えば、アドレスのＭＣＵ内部バス６５に対し、最初のステート（１回目）では「１」を出力し、次のステート（２回目）では「０」を出力する。一方、イベント送信ブロック４８は、例えば、データのＭＣＵ内部バス６５には、１回目にイベントＩＤを出力し、２回目にイベント応答用データやパラメータを出力する。
【００７５】
機能ブロック５０のイベントＩＤ入力部５３は、例えば、図７に示すストローブ信号の立下りのタイミングで、1回目にイベントＩＤの入力を受け付け、２回目にイベント応答用データやパラメータの入力を受け付ける。
【００７６】
イベント送信ブロック４８は、生成したイベントＩＤを、例えば、全ての機能ブロック５０へ出力してもよいし、一部の機能ブロック５０へ出力してもよい。イベントＩＤが入力される機能ブロック５０は、例えば、バスコントローラ６０により指定される。イベント送信ブロック４８は、例えば、イベントＩＤの入力を待たずにイベント応答処理を行う機能ブロック５０へイベントＩＤを出力しなくてもよい。なお、イベント送信ブロック４８は、各機能ブロックへ、イベントＩＤとともにイベント応答用データやパラメータを出力してもよい。
【００７７】
バスコントローラ６０は、ＭＣＵ内部バス６５の調停を行う。バスコントローラ６０は、例えば、中央処理装置１０、イベントコントローラ４０、機能ブロック５０等との間で、バスリクエスト、バスアクノレジ、バスコマンド、ウェイト、アドレス、データ等のインタフェースを行い、ＭＣＵ内部バス６５の調停を行う。バスコントローラ６０は、例えば、中央処理装置１０やイベントコントローラ４０から出力されたバスリクエスト信号の入力を受け付け、ＭＣＵ内部バス６５の調停を行う。バスコントローラ６０は、ＭＣＵ内部バス６５の使用許可を与える各部に対してバスアクノレジ信号を出力する。バスアクノレジ信号が入力された各部は、ＭＣＵ内部バス６５を介して接続された各部との間で、各種データ等の入出力を行う。
【００７８】
例えば、中央処理装置１０は、バスアクノレジ信号の入力を受け付けると、ＭＣＵ内部バス６５を介して、例えば、リードオンリメモリ２０から命令を読み出し、命令の実行により生成されたデータをランダムアクセスメモリ３０へ書き込む。また、中央処理装置１０は、バスアクノレジ信号の入力を受け付けると、ＭＣＵ内部バス６５を介して、例えば、イベントコントローラ４０、機能ブロック５０に設けられた各レジスタへの各種情報の書き込み、消去等を行う。
【００７９】
ＭＣＵ内部バス６５は、前述したように、各部との間で行う各種データ等の入出力を仲介する。ＭＣＵ内部バス６５は、例えば、バスコマンドやアドレスに関するもの、データに関するもの等で構成されている。
【００８０】
＜イベント応答処理方法＞
次に、本実施の形態のマイクロコンピュータ１におけるイベント応答処理方法について説明する。それぞれの機能ブロック５０では、割り込み要因検出部５１は、割り込み要因を検出すると、検出した割り込み要因に基づいたイベント処理要求をイベント処理要求許可判定部５８へ出力する。
【００８１】
イベント処理要求許可レジスタ５９にイベント処理要求の出力を許可するイベント処理要求許可情報が格納され、イベント処理要求格納レジスタに格納された割り込み要因フラグが、例えば、「１」にセットされていれば、イベント処理要求許可判定部５８は、イベント処理要求をイベント検出ブロック４１のイベント判定部４３へ出力する。このとき、それぞれのイベント処理要求許可判定部５８は、ＭＣＵ内部バス６５を介さず、個別にイベント判定部４３へイベント処理要求を出力する。
【００８２】
イベント判定部４３は、イベント処理許可レジスタ４２に格納された、割り込み要因ごとに規定されたイベント処理許可情報に基づいて、それぞれのイベント処理要求に対し、中央処理装置１０へ割り込むか、イベントコントローラ４０を起動するか、を判定する。イベント判定部４３は、例えば、判定結果やイベント処理許可情報とともに、イベント処理要求をイベント選択部４５へ出力する。
【００８３】
イベント選択部４５は、イベント選択レジスタ４４に格納された優先度情報に基づいて、中央処理装置１０へ割り込む複数のイベント処理要求から、中央処理装置１０で処理されるイベント処理要求を選択する。また、イベント選択部４５は、例えば、リードオンリメモリ２０等に格納されたベクタテーブルを参照し、選択したイベント処理要求に対応するベクタ番号を読み出す。
【００８４】
イベント選択部４５は、イベント選択レジスタ４４に格納された割り込みマスクレベル情報を参照し、中央処理装置１０が割り込みを受け付けている場合、ＣＰＵ割り込み要求及びベクタ番号を中央処理装置１０へ出力する。
【００８５】
中央処理装置１０は、ＣＰＵ割り込み要求及びベクタ番号の入力を受け付けると、現在処理している命令の実行を中断し、ＣＰＵ割り込み要求に基づいた割り込み処理を行う。中央処理装置１０は、割り込み処理を終えると、中断した命令の実行を再開する。
【００８６】
中央処理装置１０は、例えば、割り込み処理に係るイベント処理要求を出力した機能ブロック５０のイベント処理要求検出レジスタ（図示せず）に格納された割り込み要因フラグを所定の値「０」にセットする。また、割り込み処理に係るイベント処理要求を出力した機能ブロック５０では、割り込み要因保持部５２に保持された割り込み要因が消去される。
【００８７】
また、イベント選択部４５は、イベント選択レジスタ４４に格納された優先度情報に基づいて、イベントコントローラ４０を起動する複数のイベント処理要求から、処理されるイベント処理要求を選択する。また、イベント選択部４５は、例えば、リードオンリメモリ２０等に格納されたベクタテーブルを参照し、選択したイベント処理要求に対応するベクタ番号を読み出す。
【００８８】
イベント選択部４５は、イベントコントローラ起動要求（ＥＶ＿ＲＥＱ）を出力する。イベント送信ブロック４８は、イベントコントローラ起動要求（ＥＶ＿ＲＥＱ）の入力を受け付けるとベクタ番号の出力を許可するベクタ番号出力許可信号（ＥＶ＿ＳＤ＿ＡＣＫ）を出力する。イベント選択部４５は、ベクタ番号出力許可信号（ＥＶ＿ＳＤ＿ＡＣＫ）の入力を受け付けると、ベクタ番号（ＥＶ＿ＶＥＣ）をイベント送信ブロック４８へ出力する。
【００８９】
イベント送信ブロック４８は、ベクタ番号の入力を受け付けると、ベクタテーブルに従い、入力されたベクタ番号に対応するイベントＩＤを生成する。
【００９０】
イベント送信ブロック４８は、バスコントローラ６０へバスリクエスト信号（ＥＶ＿ＢＳＲＱ）を出力する。バスコントローラ６０は、バスリクエスト信号（ＥＶ＿ＢＳＲＱ）の入力を受け付けると、ＭＣＵ内部バス６５の占有に対する調停をし、バスアクノレジ信号（ＢＳＡＣＫ＿ＥＶ）をイベント送信ブロック４８へ出力する。また、バスコントローラ６０は、ＭＣＵ内部バス６５を起動し、非選択的、あるいは複数の機能ブロック５０の選択信号を活性化させる。
【００９１】
イベント送信ブロック４８は、バスアクノレジ信号（ＢＳＡＣＫ＿ＥＶ）の入力を受け付けると、イベントライトサイクルを起動し、イベントＩＤをそれぞれの機能ブロック５０へ出力する。
【００９２】
それぞれの機能ブロック５０のイベントＩＤ入力部５３は、イベントＩＤの入力を受け付ける。それぞれの機能ブロック５０のイベント応答指定部５４は、イベント制御レジスタ５５に格納されたイベント応答情報を参照し、入力されたイベントＩＤが応答すべきイベントＩＤである場合、イベントＩＤに応じた応答内容を指定し、イベント応答処理部５６へ出力する。イベント応答処理部５６は、入力された応答内容に応じた応答処理を行う。
【００９３】
（割り込み要因が同時に発生した場合）
次に、複数のイベント（割り込み要因）が同時に発生した場合のイベント応答処理について説明する。図８は、複数の割り込み要因が同時に発生した場合のイベント応答処理方法の一例を示す図である。図８には、複数の機能ブロック５０Ｐ（５０）、５０Ｑ（５０）、５０Ｒ（５０）、５０Ｓ（５０）、イベント送信ブロック４８の処理内容がそれぞれ示されている。
【００９４】
図８に示すように、機能ブロック５０Ｐ、５０Ｑでは、それぞれのイベント（割り込み要因）Ａ、Ｂが同時に発生している。機能ブロック５０Ｐ、５０Ｑは、イベントＡ、Ｂに係るそれぞれのイベント処理要求をイベントコントローラ４０へ出力する。
【００９５】
イベント選択部４５は、イベント選択レジスタ４４に格納された優先度情報を参照し、イベントＡ、イベントＢの順に、処理されるイベント処理要求を選択する。すなわち、イベント選択部４５は、イベントＡに基づいたイベント処理要求のベクタ番号を、イベントＢに基づいたイベント処理要求のベクタ番号に優先して、イベント送信ブロック４８へ出力する。
【００９６】
イベント送信ブロック４８は、例えば、前述した２ステートのイベントライトサイクルを起動し、イベントＡに基づいたイベント処理要求に係るイベントＩＤ、イベント応答処理用データやパラメータを機能ブロック５０Ｐ〜５０Ｓへ出力する。機能ブロック５０Ｒは、イベントＩＤが入力されると、図７に示すように、イベントＡに係るイベント応答処理を行う。
【００９７】
そして、イベント送信ブロック４８は、イベントＢに基づいたイベント処理要求に係るイベントＩＤ、イベント応答処理用データやパラメータを機能ブロック５０Ｐ〜５０Ｓへ出力する。機能ブロック５０Ｒ、５０Ｓは、イベントＩＤが入力されると、図７に示すように、イベントＢに係るイベント応答処理を行う。
【００９８】
具体的な一例として、機能ブロック５０Ｐはシリアルコミュニケーションインタフェース（ＳＣＩ）を、機能ブロック５０Ｑはタイマを、機能ブロック５０Ｒはデータ転送機能を、機能ブロック５０Ｓはリアルタイム出力（図４（ａ）に相当）を備える。例えば、機能ブロック５０Ｐは、ＳＣＩの受信完了（イベントＡ）に応じて、イベント処理要求を出力し、機能ブロック５０Ｑはタイマのコンペアマッチ（イベントＢ）に応じてイベント処理要求を出力する。機能ブロック５０Ｒは、機能ブロック５０Ｐ（ＳＣＩ）から出力されたイベント処理要求に基づいて、データ転送機能を起動し応答データを準備し（イベントＡ応答処理）、機能ブロック５０Ｑ（タイマ）から出力されたイベント処理要求に基づいて、データ転送機能を起動してタイマのコンペアレジスタへのデータ転送を行い（イベントＢ応答処理）、コンペアレジスタの再設定し次のコンペアマッチの時間を設定する。さらに、機能ブロック５０Ｓ（リアルタイム出力）は機能ブロックＱ（タイマ）から出力されたイベント処理要求に基づいて、ネクストデータを転送する。
【００９９】
＜本実施の形態による効果＞
本実施の形態によれば、イベントコントローラ４０から出力されたイベントＩＤは複数の機能ブロック５０へ入力される。それぞれの機能ブロック５０は、入力されたイベントＩＤが応答すべきイベントＩＤであるかどうかを判定し、応答すべきイベントＩＤである場合、入力されたイベントＩＤに対応するイベント応答処理を行う。
【０１００】
この構成によれば、それぞれの機能ブロック５０で発生するイベント（割り込み要因）のそれぞれに対応する組み合わせを、個別の制御信号を設ける等、イベントコントローラ４０の内においてハードウェアで実現しなくてもよいので、論理構成の複雑化を抑えつつ、さまざまなイベントを処理することができる。また、この構成によれば、中央処理装置１０を介することなく、機能ブロック５０においてイベント応答処理が行われるので、中央処理装置１０の負担が軽減される。また、割り込み要因の検出からイベント応答処理までの時間が短縮されるので、応答性が向上する。また、この構成によれば、どの機能ブロック５０が応答するかを使用者や応用システムにより設定することにより、柔軟にイベント応答処理が行われる。
【０１０１】
また、この構成によれば、１つのイベントＩＤに対し、複数の機能ブロック５０によるイベント応答処理が実現される。これにより、マイクロコンピュータ１として、多様な動作が実現される。
【０１０２】
また、この構成によれば、イベントＩＤの出力がイベントコントローラ４０により排他的に行われるので、複数のイベント処理要求の出力が同時に行われることなく、イベント応答処理が容易に行われる。
【０１０３】
また、この構成によれば、ＭＣＵ内部バス６５を介してイベントＩＤが出力されるので、追加される論理構成が最小限になる。また、イベント応答処理において、中央処理装置１０等による読み出し／書き込みの競合が排除され、イベント応答処理が容易になる。
【０１０４】
また、本実施の形態によれば、イベントＩＤに対応する応答内容は、それぞれの機能ブロック５０の機能に従って、任意に設定される。これにより、イベント応答処理用データやパラメータにより、動作の開始や停止にとどまらず、複雑な機能が実現される。
【０１０５】
また、本実施の形態によれば、イベント制御レジスタ５５等への書き込みにより応答内容が設定されるので、既存の機能に対する論理の追加が最小限に抑えられる。例えば、イベント制御レジスタ５５等への書き込みは、いわゆるＤＭＡコントローラ等のデータ転送装置による書き込みと比較して容易に行われる。
【０１０６】
また、本実施の形態によれば、割り込み要因保持部５２で保持されている割り込み要因に基づいたイベントＩＤが入力されると、割り込み要因保持部５２で保持されている割り込み要因が消去される。この構成によれば、所定のイベントＩＤが入力されるまで割り込み要因が消去されないので、割り込み要因に基づいたイベント応答処理が行われたかどうかが容易に判断される。
【０１０７】
また、本実施の形態によれば、イベント応答指定部５４は、イベントＩＤ入力部５３に入力されたイベントＩＤと、イベント制御レジスタ５５に格納されたイベント応答情報と、に基づいて応答内容を指定する。この構成によれば、イベント応答指定部５４は、イベント応答情報に基づいて、入力されたイベントＩＤが応答すべきイベントＩＤであるかどうかを判断することが可能となるので、応答すべきイベントＩＤに対応するイベント応答処理を適切に指定することが可能となる。
【０１０８】
また、本実施の形態によれば、それぞれの機能ブロック５０は、イベント処理要求許可情報を格納するイベント処理要求許可レジスタと、イベント処理要求許可情報に基づいてイベント処理要求をイベントコントローラ４０へ出力するかどうかを判定するイベント処理要求許可判定部５８と、を備えている。この構成によれば、機能ブロック５０はイベント処理要求許可情報に基づいてイベント処理要求を行うかどうかを判断するので、マイクロコンピュータ１の使用状況に応じた適切なタイミングでイベント処理要求を行うことが可能となる。
【０１０９】
また、本実施の形態によれば、割り込み要因検出部５１は、イベント処理要求とともに、イベント応答処理に用いられるイベント応答処理用データやパラメータをイベントコントローラ４０へ出力する。この構成によれば、イベント送信ブロック４８は、イベントＩＤとともにイベント応答処理用データやパラメータを機能ブロック５０へ出力することが可能となるので、イベント応答処理用データやパラメータに応じたさまざまなイベント応答処理が行われる。
【０１１０】
また、本実施の形態によれば、機能ブロック５０Ａは、タイマ機能に関するイベント応答処理を行う。この構成によれば、機能ブロック５０Ａは、計時機能を備えているので、例えば、カウンタのスタート、イベントカウント、インプットキャプチャ等を行うことができる。
【０１１１】
また、本実施の形態によれば、機能ブロック５０Ｂは周辺装置と接続され、イベント応答処理部５６は、周辺装置との間でシリアルデータの入出力を行う。この構成によれば、シリアル通信を行う周辺装置との接続が可能となるので、マイクロコンピュータ１の適用範囲が拡張される。
【０１１２】
また、本実施の形態によれば、機能ブロック５０Ｃは周辺装置と接続され、イベント応答処理部５６は、周辺装置との間でアナログデータの入出力を行う。この構成によれば、アナログデータの入出力を行う周辺装置との接続が可能となるので、マイクロコンピュータ１の適用範囲が拡張される。
【０１１３】
また、本実施の形態によれば、機能ブロック５０Ｄは周辺装置と接続され、周辺装置から出力された外部イベント処理要求の入力を受け付ける。また、機能ブロック５０Ｄの割り込み要因検出部５１は、入力された外部イベント処理要求に基づいて割り込み要因を検出する。この構成によれば、それぞれの機能ブロック５０は、外部イベント処理要求に基づいたイベント応答処理を行うことが可能となるので、マイクロコンピュータ１の適用範囲が拡張される。
【０１１４】
また、本実施の形態によれば、機能ブロック５０Ｄのイベント応答処理部５６は、周辺装置へ出力されるデータを格納するポート出力レジスタ５６Ａと、ネクストデータを格納するネクストデータレジスタ５６Ｂと、を備えている。また、機能ブロック５０Ｄのイベント応答処理部５６は、ポート出力レジスタ５６Ａに格納されたデータが出力されると、ネクストデータがポート出力レジスタ５６Ａに格納される。この構成によれば、周辺装置へ出力されるデータが事前に用意されているので、データ出力に係るイベント応答処理が高速化される。
【０１１５】
また、本実施の形態によれば、イベントコントローラ４０は、選択したイベント処理要求に基づいて中央処理装置１０へ割り込むか、イベントコントローラ４０を起動するか、を選択する。この構成によれば、機能ブロック５０だけでなく、中央処理装置１０においてもイベント応答処理が行われるので、緊急度に応じてイベント処理要求の伝達方法が選択される。これにより、イベント応答処理が適切に行われる。
【０１１６】
また、これにより、中央処理装置１０への割り込み回数を低減したり、中央処理装置１０が低消費電力状態となる期間を調整することが可能となるので、消費電力が低減される。また、中央処理装置１０における割り込み処理に際し行う、例外処理、スタックの退避・復帰操作、復帰命令等の実行が不要となるので、プログラムが簡略化され、システムが効率化される。
【０１１７】
また、本実施の形態によれば、イベントコントローラ４０は、選択したイベント処理要求に対応するベクタ番号を生成する。また、中央処理装置１０へ割り込む場合、イベントコントローラ４０は、中央処理装置１０へのＣＰＵ割り込み要求及びベクタ番号を中央処理装置１０へ出力する。また、イベントコントローラ４０を起動する場合、イベントコントローラ４０は、ベクタ番号に対応するイベントＩＤを生成し、生成したイベントＩＤを複数の機能ブロックへ出力する。この構成によれば、中央処理装置１０では、入力されたベクタ番号に基づいた所定の命令が行われるので、ＣＰＵ割り込み要求に係るイベント応答処理が即座に行われる。
【０１１８】
また、本実施の形態によれば、イベントコントローラ４０は、イベント検出ブロック４１と、イベント送信ブロック４８と、を備えている。この構成によれば、イベント送信ブロック４８は、イベントコントローラ起動要求が入力されるまでイベントＩＤの生成、出力に係る処理を行わないスリープ状態とすることが可能であるので、消費電力が低減される。
【０１１９】
また、本実施の形態によれば、イベント検出ブロック４１は、イベント処理許可情報を格納するイベント処理許可レジスタ４２と、イベント処理許可情報に基づいて、それぞれのイベント処理要求に対し、中央処理装置１０へ割り込むか、イベントコントローラ４０を起動するか、を判定するイベント判定部４３と、中央処理装置１０で処理されるイベント処理要求の選択や、イベントコントローラ４０を起動するイベント処理要求の選択等に係る各種処理を行うイベント選択部４５を備えている。この構成によれば、イベント選択部４５は、中央処理装置１０へ割り込むイベント処理要求と、イベントコントローラ４０を起動するイベント処理要求と、を独立して選択することができるので、それぞれの場合において処理されるイベント処理要求が容易に選択される。
【０１２０】
また、本実施の形態によれば、イベント検出ブロック４１は、割り込み要因ごとの優先度を規定する優先度情報を格納するイベント選択レジスタ４４を備え、イベント選択部４５は、優先度情報に基づいて、処理されるイベント処理要求を選択する。この構成によれば、優先度が最も高い割り込み要因に基づいたイベント処理要求が選択されるので、さらに容易に、処理されるイベント処理要求が選択される。また、これにより、マイクロンピュータ１におけるイベント応答処理が円滑に行われる。
【０１２１】
また、本実施の形態によれば、イベント選択レジスタ４４は、中央処理装置１０が割り込みを受け付けるかどうかを規定する割り込みマスクレベル情報を格納し、イベント選択部４５は、割り込みマスクレベル情報に基づいて、中央処理装置１０へ割り込むかどうかを判定する。この構成によれば、イベント選択部４５は、中央処理装置１０の状態に応じて、割り込むかどうかを判断するので、中央処理装置１０の負荷の増大が抑えられつつ、イベント応答処理が行われる。
【０１２２】
（実施の形態２）
次に、本発明の実施の形態２について説明する。なお、以下では、上述の実施の形態と重複する箇所についての説明は原則として省略する。本実施の形態では、機能ブロック５０からイベントＩＤ出力して、イベント応答処理が行われる場合について説明する。図９は、イベントＩＤの出力方法の一例を示す図である。
【０１２３】
イベントコントローラ４０は、選択したイベント処理要求を出力した機能ブロック５０へ、イベントＩＤを出力させるイベントＩＤ出力指示を出力する。詳しくは、イベントコントローラ４０を起動して処理されるイベント処理要求が選択されると、イベント送信ブロック４８は、図９に示すように、選択したイベント処理要求を出力した機能ブロック５０へ、イベントＩＤを出力させるイベントＩＤ出力指示を出力する。
【０１２４】
イベントＩＤ出力指示が入力された機能ブロック５０は、選択したイベント処理要求に基づいたイベントＩＤを複数の機能ブロック５０へ出力する。イベント送信ブロック４８は、例えば、ＭＣＵ内部バス６５を介してイベントＩＤ出力指示を出力してもよいし、個別にイベントＩＤ出力指示を出力してもよい。
【０１２５】
機能ブロック５０は、イベントＩＤ出力指示が入力されると、ベクタテーブルに従い、割り込み要因保持部５２に保持されている割り込み要因に対応するイベントＩＤを複数の機能ブロック５０へ出力する。また、機能ブロック５０は、イベントＩＤとともに、イベント応答処理用データやパラメータ等を出力してもよい。機能ブロック５０は、例えば、イベントライトサイクルを起動し、ＭＣＵ内部バス６５を介してイベントＩＤ等を出力する。
【０１２６】
複数の機能ブロック５０のイベントＩＤ入力部５３は、機能ブロック５０から出力されたイベントＩＤ等の入力を受け付ける。なお、イベントＩＤを出力した機能ブロック５０も、自身が出力したイベントＩＤの入力を受け付けてもよい。それぞれの機能ブロック５０は、入力されたイベントＩＤに基づいたイベント応答処理を行う。
【０１２７】
本実施の形態によれば、機能ブロック５０からイベントＩＤ等が出力されるので、イベントコントローラ４０の論理構成がより簡略化される。
【０１２８】
（実施の形態３）
次に、本発明の実施の形態３について説明する。なお、以下では、上述の実施の形態と重複する箇所についての説明は原則として省略する。本実施の形態においても、機能ブロック５０から出力されたイベントＩＤに基づいてイベント応答処理が行われる場合の他の例について説明する。
【０１２９】
イベントコントローラ４０は、イベントＩＤを出力させるイベントＩＤ出力指示を機能ブロックへ出力する。例えば、イベントコントローラ４０は、それぞれの機能ブロック５０へイベントＩＤ出力指示を順次出力する。例えば、イベント送信ブロック４８は、それぞれの機能ブロック５０へイベントＩＤ出力指示を順次出力する。イベントＩＤ出力指示が入力された機能ブロック５０は、割り込み要因保持部５２で保持されている割り込み要因に基づいたイベントＩＤを出力する。
【０１３０】
このように、本実施の形態では、それぞれの機能ブロック５０は、イベントコントローラ４０へイベント処理要求を出力しなくてもよい。したがって、イベントコントローラ４０は、例えば、イベント検出ブロック４１が省略され、イベント送信ブロック４８のみで構成されてもよい。
【０１３１】
また、イベントコントローラ４０は、例えば、所定の間隔で機能ブロック５０へイベントＩＤ出力指示を出力する。イベント送信ブロック４８は、例えば、出力先の機能ブロック５０を変えながら所定の間隔でイベントＩＤ出力指示を出力してもよい。また、イベント送信ブロック４８は、例えば、出力先を適宜変更しつつ、同一の機能ブロック５０に対し、所定の間隔でイベントＩＤ出力指示を出力してもよい。
【０１３２】
また、イベントコントローラ４０は、例えば、イベントＩＤ出力指示の出力回数を機能ブロック５０ごとに異ならせてもよい。
【０１３３】
本実施の形態によれば、イベントコントローラ４０は、それぞれの機能ブロック５０へイベントＩＤ出力指示を順次出力する。この構成によれば、それぞれの機能ブロック５０からイベントＩＤが順次出力されるので、それぞれの機能ブロックで検出された割り込み要因に基づいたイベント応答処理が確実に行われる。
【０１３４】
また、本実施の形態によれば、処理されるイベント処理要求の選択が行われることなく、イベント送信ブロック４８からイベントＩＤ出力指示が出力されるので、イベント処理要求を行うことなくイベント応答処理を行うことが可能となる。また、処理されるイベント処理要求を選択する必要がないので、イベントコントローラ４０の構成が簡略化される。これにより、消費電力が低減される。
【０１３５】
また、本実施の形態によれば、イベントコントローラ４０は、所定の間隔で機能ブロック５０へイベントＩＤ出力指示を出力する。この構成によれば、所定の間隔でイベントＩＤが機能ブロック５０から出力されるので、所定の間隔でイベント応答処理が行われる。これにより、イベント応答処理が行われる間隔のばらつきが抑えられる。
【０１３６】
また、本実施の形態によれば、イベント送信ブロック４８は、出力先を適宜変更しつつ、それぞれの機能ブロック５０に対し、所定の間隔でイベントＩＤ出力指示を出力する。この構成によれば、複数の機能ブロック５０からイベントＩＤが出力されつつ、それぞれの機能ブロック５０から所定の間隔でイベントＩＤが出力されるので、複数の機能ブロック５０におけるイベントＩＤの出力回数のばらつきが抑えられる。
【０１３７】
また、本実施の形態によれば、イベント送信ブロック４８は、例えば、イベントＩＤ出力指示の出力回数を機能ブロック５０ごとに異ならせる。この構成によれば、機能ブロック５０ごとに、イベント応答処理が行われる頻度に応じてイベントＩＤ出力指示の出力回数を調整することができるので、イベント応答処理が効率的に行われる。
【０１３８】
（実施の形態４）
次に、本発明の実施の形態４について説明する。なお、以下では、上述の実施の形態と重複する箇所についての説明は原則として省略する。本実施の形態では、マイクロコンピュータ１がカメラに適用された場合について説明する。図１０は、本発明の実施の形態４に係るカメラの構成の一例を示す図である。カメラ１００は、カメラレンズＭＣＵ（マイクロコンピュータ）１０１、カメラボディＭＣＵ１０２、カメラレンズの焦点モータ１０３等を備えている。
【０１３９】
カメラレンズＭＣＵ１０１は、図１０に示すように、例えば、中央処理装置１０、イベントコントローラ４０、機能ブロック（タイマＦ）５０Ｅ、機能ブロック（通信）５０Ｆ、機能ブロック（Ａ／Ｄ変換器）５０Ｇ、機能ブロック（Ｉ／Ｏポート）５０Ｈ、機能ブロック（タイマＤ）５０Ｉ、機能ブロック（タイマＳ）５０Ｊ等を備えている。
【０１４０】
機能ブロック５０Ｅ、５０Ｉ、５０Ｊは、例えば、タイマ機能を備えている。機能ブロック５０Ｆは、例えば、通信機能を備えている。機能ブロック５０Ｇは、例えば、入力されたアナログデータをデジタルデータに変換するＡ／Ｄ変換機能を備えている。
【０１４１】
タイマ機能を有する機能ブロック５０Ｅ、５０Ｉ、５０Ｊは、例えば、レンズの焦点、絞り、防振に関するイベント応答処理をそれぞれ独立して行う。例えば、焦点に関するイベント応答処理は、複数の機能ブロック５０Ｅ、５０Ｇにより行われる。機能ブロック５０Ｇは、図１０に示すように、例えば、検出された焦点のずれ量（アナログデータ）の入力を受け付け、入力された焦点のずれ量をデジタルデータに変換する。そして、機能ブロック５０Ｇは、データ変換を完了するとイベント処理要求を出力する。このとき、機能ブロック５０Ｇは、例えば、イベント処理要求とともにデジタルデータに変換された焦点のずれ量を出力する。
【０１４２】
そして、機能ブロック５０Ｅは、機能ブロック５０Ｇから出力されたイベント処理要求に基づいたイベントＩＤ及び焦点のずれ量の入力を受け付けると、焦点のずれ量に基づいて焦点モータ１０３を駆動するイベント応答処理を行う。
【０１４３】
例えば、機能モジュール５０Ｅは、デジタルデータに変換された焦点のずれ量に基づいてタイマをスタートさせて焦点モータ１０３を駆動し、カメラレンズの焦点を調整する。また、機能ブロック５０Ｅは、例えば、タイマのコンペアレジスタの加減算を行うことにより焦点モータ１０３の加減速を行う。
【０１４４】
機能ブロック５０Ｆは、例えば、ＳＣＩを介して接続されたカメラボディＭＣＵ１０２との間で、シリアルデータの送受信を行う。カメラレンズＭＣＵ１０１における多くの動作は、ＳＣＩを介した、カメラボディＭＣＵ１０２から出力されたシリアルデータの受信完了によるイベント処理要求に基づいてなされる。
【０１４５】
例えば、機能ブロック５０Ｆが、カメラボディＭＣＵ１０２から出力されたシリアルデータの入力完了によるイベント応答処理要求を行うと、機能ブロック５０Ｅ、５０Ｇが起動し、前述した焦点モータ１０３の駆動に係る各種イベント応答処理を行う。
【０１４６】
機能ブロック５０Ｈは、例えば、オートフォーカスの許可や、防振に関するスイッチ操作等に関する外部イベント処理要求の入力を受け付ける。
【０１４７】
カメラレンズＭＣＵ１０１は、カメラボディＭＣＵ１０２から出力されたシリアルデータの入力完了等に基づいた各種のイベント応答処理を、イベントコントローラを介して行うことにより、イベント応答処理の高速化が実現される。
【０１４８】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明はこれまで記載した実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【０１４９】
例えば、バスコントローラ６０や、バス権やウェイトなどのバス動作の詳細については省略したが、これらは適宜実装可能である。
【０１５０】
以上の説明では、主として、本発明者によってなされた発明を、その背景となった利用分野であるマイクロコンピュータに適用した場合について説明したが、本発明の半導体装置は、これに限定されるものではない。本発明は、例えば、デジタルシグナルプロセッサ（ＤＳＰ）等の半導体装置や、少なくともイベントを扱うことが可能な機能ブロックを内蔵した半導体装置に適用することができる。
【符号の説明】
【０１５１】
１…マイクロコンピュータ、１０…中央処理装置、４０…イベントコントローラ、４１…イベント検出ブロック、４２…イベント処理許可レジスタ、４３…イベント判定部、４４…イベント選択レジスタ、４５…イベント選択部、４８…イベント送信ブロック、５０…機能ブロック、５１…割り込み要因検出部、５２…割り込み要因保持部、５３…イベントＩＤ入力部、５４…イベント応答指定部、５５…イベント制御レジスタ、５６…イベント応答処理部、５８…イベント処理要求許可判定部、５９…イベント処理要求許可レジスタ、６０…バスコントローラ、６５…ＭＣＵ内部バス
【図１】
2018106583.tif 000003
【図２】
2018106583.tif 000004
【図３】
2018106583.tif 000005
【図４】
2018106583.tif 000006
【図５】
2018106583.tif 000007
【図６】
2018106583.tif 000008
【図７】
2018106583.tif 000009
【図８】
2018106583.tif 000010
【図９】
2018106583.tif 000011
【図１０】
2018106583.tif 000012