(57)【要約】【課題】複数のイベントの処理をより効率的に実行できるマイクロコンピュータを提供する。【解決手段】周辺リソース５がイベントを発生させて割り込みコントローラ３に割り込み要因フラグがセットされると、イベント記憶制御部７は、対応する割り込み要因番号をイベント発生レジスタ９の１つに書き込み、その書き込みが行われる毎に次書込み位置記憶レジスタ８のレジスタ値をインクリメントする。ＣＰＵ２は、一定時間毎にイベント処理を開始すると、最初にレジスタ８が示すレジスタ値と自身が管理しているイベント処理カウンタ１０の値とを比較し、後者が前者より小ならカウンタ１０のカウンタ値のアドレスが示すレジスタ９に格納されている割り込み要因番号を読み出し、その番号に対応するイベントを処理する。レジスタ８の値とカウンタ１０の値とが一致するまで上記の処理を繰り返し実行する。【選択図】図１
2016021123.tif 000002
【特許請求の範囲】
【請求項１】
発生したイベントの情報が書き込まれる複数のイベント発生レジスタ（９、３４、４５）と、
このイベント発生レジスタに前記情報が書き込まれる毎に、書き込み先を指定するレジスタアドレスがインクリメントされるアドレス指定手段（８）と、
複数種類のイベントの発生に応じてそれぞれのイベント発生フラグがセットされると、対応するイベントの情報を、前記アドレス指定手段により指定されるイベント発生レジスタに書き込むイベント記憶制御手段（７、１３、２３、４４）と、
一定時間毎にイベント処理を開始すると、最初に前記アドレス指定手段が指定しているレジスタアドレスの値と、自身が管理しているイベント処理カウンタの値とを比較し、
後者が前者よりも小さければ、前記イベント処理カウンタのカウンタ値のアドレスが示すイベント発生レジスタに格納されている情報を読み出して、前記情報に対応するイベントの処理を行い、
前記レジスタアドレスの値と、前記イベント処理カウンタの値とが一致するまで上記の処理を繰り返し実行するＣＰＵ（２、４２）とを備えることを特徴とするマイクロコンピュータ。
【請求項２】
前記イベント記憶制御手段は、前記イベント発生レジスタに書き込みを行っている間に他のイベントが発生すると、次にそのイベントの情報を書き込むために一時記憶させるバッファ（１４）を備えていることを特徴とする請求項１記載のマイクロコンピュータ。
【請求項３】
前記イベント記憶制御手段は、複数のイベントが同時に発生した際に、各イベントの優先度に応じて、優先度が高いものから先に書き込みが行われるように前記バッファに記憶させることを特徴とする請求項２記載のマイクロコンピュータ。
【請求項４】
前記バッファは、ＦＩＦＯ（First In First Out）であることを特徴とする請求項２又は３記載のマイクロコンピュータ。
【請求項５】
前記イベント発生レジスタには、各イベントの発生時刻を記憶する領域が設けられており、
前記発生時刻を計時するタイマ（３５）を備え、
前記イベント記憶制御手段は、前記イベントの情報と共に、その時点に前記タイマが示している時刻を前記イベント発生レジスタに記憶させることを特徴とする請求項１から４の何れか一項に記載のマイクロコンピュータ
【請求項６】
前記イベント発生レジスタには、各イベントの処理状態を示す処理実行フラグを格納する領域（４５Ｆ）が設けられており、
前記イベント記憶制御手段は、前記イベントの情報と共に当該イベントに対応する処理実行フラグをセットし
前記ＣＰＵは、処理を完了したイベントに対応する処理実行フラグをリセットすることを特徴とする請求項１から５の何れか一項に記載のマイクロコンピュータ。
【請求項７】
前記ＣＰＵは、自身が管理する処理実行フラグポインタ（４６）の値を、前記処理実行フラグが１つ以上セットされているとそれらの内レジスタアドレスが最小のものに設定し、
前記処理実行フラグがセットされているイベントの処理を完了すると、前記ポインタ値をインクリメントして、
前記ポインタ値が前記イベント処理カウンタのカウンタ値に一致するまで上記の処理を繰り返し実行することを特徴とする請求項６記載のマイクロコンピュータ。
【請求項８】
各イベントを、前記ＣＰＵに対する割り込みによる割り込み処理対象とするか、前記イベント処理の対象とするかが選択可能に構成されていることを特徴とする請求項１から７の何れか一項に記載のマイクロコンピュータ。
【請求項９】
各イベントを、前記割り込み処理対象及び前記イベント処理の対象の何れにもしないことを、重ねて選択可能に構成されていることを特徴とする請求項８記載のマイクロコンピュータ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のイベントを、割り込みを用いることなく処理するマイクロコンピュータに関する。
【背景技術】
【０００２】
一般にマイクロコンピュータ（以下、マイコンと称す）は、状態の変化やイベント発生の監視を、割り込み信号の発生やポーリング処理により行っている。迅速な応答が要求される処理については割り込みを使用するが、割り込みは、干渉や排他制御を十分に考慮して設計する必要があり、設計の難度が高く、また結果として効率的な処理が実行できているか否かの評価も難しい。このため、割り込みの使用は必要最低限に留め、大半はポーリング処理により状態の変化等の有無をチェックしている。尚、特許文献１には、多数の割り込みを効率的に処理するための割り込みコントローラを備えたマイコンが開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００５−８５０５５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
近年は、半導体の集積度が向上しており、マイコンに搭載される機能も増加していることから、マイコンのＣＰＵが状態の変化等をチェックする対象の数も増加している。例えば車両に搭載される制御用のマイコン（ＥＣＵ：Electronic Control Unit）では、チェック対象の数は３００以上になる。このように多数の対象をポーリングによりチェックするとＣＰＵの処理負荷が増大するため、製品機能の実装に支障を来たしたり、即時応答性が低下するといった問題がある。
【０００５】
本発明は上記事情に鑑みてなされたものであり、その目的は、複数のイベントの処理をより効率的に実行できるマイクロコンピュータを提供することにある。
【課題を解決するための手段】
【０００６】
請求項１記載のマイクロコンピュータによれば、イベントの発生に応じてイベント発生フラグがセットされると、イベント記憶制御手段は、対応するイベントの情報を、アドレス指定手段により指定されるイベント発生レジスタに書き込む。そして、その書き込みが行われる毎に、アドレス指定手段における書き込み先を指定するレジスタアドレスがインクリメントされる。
【０００７】
ＣＰＵは一定時間毎にイベント処理を開始すると、最初にアドレス指定手段が指定しているレジスタアドレスの値と自身が管理しているイベント処理カウンタの値とを比較する。この時、後者の値が前者の値よりも小さければ、ＣＰＵが未だ処理していないイベントが存在することを示す。そこでＣＰＵは、イベント処理カウンタのカウンタ値のアドレスが示すイベント発生レジスタに格納されている情報を読み出して、その情報に対応するイベントの処理を行う。そして、レジスタアドレスの値とイベント処理カウンタの値とが一致するまで、つまり未処理のイベントがなくなるまで上記の処理を繰り返し実行する。
【０００８】
すなわち、ＣＰＵはレジスタアドレスの値とイベント処理カウンタの値とを比較して、両者が不一致の場合のみイベントを処理すれば良いので、実際にイベントが発生しているか否かを逐一ポーリングして確認する必要がなくなる。したがって、複数のイベントの処理を、割り込みを用いることなく効率的に行うことができる。
【図面の簡単な説明】
【０００９】
【図１】第１実施形態であり、マイクロコンピュータの構成を要旨に係る部分について示す機能ブロック図
【図２】ＣＰＵによるイベント処理を示すフローチャート
【図３】（ａ）は従来のポーリング処理のイメージ、（ｂ）は本実施形態のイベント処理のイメージを示す図
【図４】第２実施形態であり、マイクロコンピュータの構成を要旨に係る部分について示す機能ブロック図
【図５】第３実施形態であり、マイクロコンピュータの構成を要旨に係る部分について示す機能ブロック図
【図６】第４実施形態であり、マイクロコンピュータの構成を要旨に係る部分について示す機能ブロック図
【図７】第５実施形態であり、マイクロコンピュータの構成を要旨に係る部分について示す機能ブロック図
【図８】ＣＰＵによるイベント処理を示すフローチャート
【発明を実施するための形態】
【００１０】
（第１実施形態）
図１に示すように、マイクロコンピュータ（マイコン）１は、ＣＰＵ２、割り込みコントローラ３及びイベント発生記憶部４を備えている。割り込みコントローラ３（１）、３（２）、３（３）、…は、複数の周辺リソース５（１）、５（２）、５（３）、…と１対１で設けられている。周辺リソース５がイベントを発生させると、対応する割り込みコントローラ３に割り込み要因フラグ（イベント発生フラグ）がセットされる。尚、イベントを発生させるリソースは、マイコン１の外部に存在するものでも良い。
【００１１】
割り込みコントローラ３はセレクタ６を備えており、セレクタ６により、割り込み要因フラグを元に（１）ＣＰＵ２に割り込み信号を入力するか、（２）イベント発生記憶部４にフラグ変化情報を入力するか、或いは（３）何れの入力も行わないかを切換える。この切り換えは、ＣＰＵ２が予め選択レジスタ６Ｒに２ビットデータを書き込むことで行う。但し、本実施形態では基本的に、イベントの発生をイベント発生記憶部４に入力してＣＰＵ２が処理することを前提とする。
【００１２】
イベント発生記憶部４は、イベント記憶制御部７（イベント記憶制御手段）、次書込み位置記憶レジスタ８（アドレス指定手段）及びイベント発生レジスタ９を備えている。イベント発生レジスタ９は、複数のレジスタからなるレジスタファイルである。イベント記憶制御部７は、割り込みコントローラ３を介してフラグ変化情報が入力されると、その時点で次書込み位置記憶レジスタ８が出力している番号（アドレス）のイベント発生レジスタ９に、前記フラグ（イベント）の番号（便宜的に「割り込み要因番号」と称す；情報）を書き込んで記憶する。その後、次書込み位置記憶レジスタ８の値をインクリメントする。この処理はＣＰＵ２が関与することなく、イベント発生記憶部４のハードウェアロジックにより実行される。
【００１３】
次書込み位置記憶レジスタ８は、ＣＰＵ２による読み出しが可能となっている。ＣＰＵ２は、イベント処理カウンタ１０（マイコン１に内蔵されるメモリ上に用意されるソフトウェアカウンタ）を備えており、イベント処理カウンタ１０が示すイベント発生レジスタ９の番号と、次書込み位置記憶レジスタ８が示している番号とを比較した結果に応じてイベントを処理する。
【００１４】
次に、本実施形態の作用について説明する。図２に示す処理は一定時間が経過する毎に実行される。また、初期状態では、イベント処理カウンタ１０の値と次書込み位置記憶レジスタ８の値とは何れも初期値（例えば「１」）で一致している。ＣＰＵ２は、イベント処理カウンタ１０（図中では「次処理カウンタ」）の値と次書込み位置記憶レジスタ８の値とを読み出して、前者が後者より小さいか否かを判断する（Ｓ１）。前者が後者以上である場合（ＮＯ）、ＣＰＵ２が新たに処理すべきイベントは未だ発生していないことを意味する。したがって、「新たなイベント発生なし」という状態を設定してから（Ｓ７）処理を終了する。尚、上記状態は、マイコン１の図示しない他の処理ルーチンで使用される。
【００１５】
一方、ステップＳ１において、イベント処理カウンタ１０の値が次書込み位置記憶レジスタ８の値よりも小さければ（ＹＥＳ）次の状態であることを意味する。何れかの周辺リソース５がイベントを発生させたことで、対応する割り込み要因番号がイベント発生レジスタ９に記憶され、次書込み位置記憶レジスタ８の値がイベント記憶制御部７により自動的にインクリメント（増分は「１」以上の値）されている。つまり、既に発生し、未だＣＰＵ２によって処理されていないイベントが存在することを意味している。
【００１６】
そこで、ＣＰＵ２は、イベント処理カウンタ１０の値が示すイベント発生レジスタ９の番号にアクセス（検索）する（Ｓ２）。すると、前記番号のイベント発生レジスタ９には、未処理の割り込み要因番号が記憶されているので、ＣＰＵ２は前記番号に該当する関数（イベント処理ルーチン）を実行する（Ｓ３）。これにより、未処理であったイベントの１つが処理される。
【００１７】
次に、ＣＰＵ２は、イベント処理カウンタ１０をインクリメントしてから（Ｓ４）イベント処理カウンタ１０の値と次書込み位置記憶レジスタ８の値とを読み出して、前者が後者以上か否かを判断する（Ｓ５）。前者が後者未満であれば（ＮＯ）、ＣＰＵ２が未処理のイベントが存在することを意味するので、ステップＳ２に戻りステップＳ５までの処理を繰り返し実行する。一方、ステップＳ５において「ＹＥＳ」と判断すれば、ＣＰＵ２が未処理であったイベントの全てを処理したことを意味する。したがって、「新たなイベント発生あり」という状態を設定してから（Ｓ６）処理を終了する。この状態も、ステップＳ７と同様に扱われる。
【００１８】
上記の処理について、具体例を挙げて説明する。
（１）初期状態で、イベント処理カウンタ１０の値と次書込み位置記憶レジスタ８の値が何れも「１」であるとする。
カウンタ「１」      レジスタ「１」
この時、「カウンタ値」＝「レジスタ値」であるから、ＣＰＵ２はイベント処理を行わない（Ｓ１→Ｓ７）。
【００１９】
（２）イベントが発生し、対応する割り込み要因番号がイベント発生レジスタ９のアドレス「１」に書き込まれ、次書込み位置記憶レジスタ８がインクリメントされる。
カウンタ「１」      レジスタ「２」
（３）すると、「カウンタ値」＜「レジスタ値」となるから、ＣＰＵ２はイベント処理カウンタ１０を参照し（Ｓ１→Ｓ２）、イベント発生レジスタ９のアドレス「１」に書き込まれている割り込み要因番号のイベントを処理する（Ｓ３）。
【００２０】
（４）ＣＰＵ２はイベント処理カウンタ１０をインクリメントする（Ｓ４）。
カウンタ「２」      レジスタ「２」
これで「カウンタ値」＝「レジスタ値」となって、（１）の状態に戻る。尚、イベント発生レジスタ９の全てのアドレスに割り込み要因番号を書き込んだ場合は、先頭アドレスに戻ってオーバーライトする。
【００２１】
図３（ａ）に示すように、リソース情報を取得するための関数が例えばＡ，Ｂ，Ｃ，…，＊まであれば、従来のポーリング処理では、ＣＰＵはポーリング周期毎に先ず全ての関数Ａ〜＊を実行し、各イベントの発生の有無を監視する必要がある。その後に、実際に発生していたイベントについて情報を分析し、その分析結果に基づいて実行すべきアクションを決定し、実行準備をしたのちアクションを実行する（イベントを処理する）、という流れになる。
【００２２】
このような処理形態では、監視対象とするイベントの数が増えるほどＣＰＵの処理負担が増大するため、例えばＣＰＵの動作クロック周波数をより高く設定して対応する必要がある。しかしながら、クロック周波数の上昇は、消費電流やノイズの増加、コストの増加といった問題に繋がる。
【００２３】
これに対して、図３（ｂ）に示すように本実施形態のイベント処理では、ＣＰＵ２は、ステップＳ１においてイベント処理カウンタ１０の値と次書込み位置記憶レジスタ８の値とを比較することで、関数Ａ〜＊のうち、実際にイベントが発生したものが例えば関数Ｂ，Ｄ，Ｆの３つだけであることを特定できる。したがって、ＣＰＵ２が処理すべきイベントを予め確定でき、不要な監視動作を行う必要が無いので、ＣＰＵ２の処理負担が大きく軽減される。
【００２４】
以上のように本実施形態によれば、マイコン１において、周辺リソース５がイベントを発生させて割り込みコントローラ３に割り込み要因フラグがセットされると、イベント記憶制御部７は、対応する割り込み要因番号をイベント発生レジスタ９の１つに書き込み、その書き込みが行われる毎に、次書込み位置記憶レジスタ８のレジスタ値をインクリメントする。
【００２５】
ＣＰＵ２は、一定時間毎にイベント処理を開始すると、最初に次書込み位置記憶レジスタ８が示すレジスタ値と自身が管理しているイベント処理カウンタ１０の値とを比較し、後者が前者よりも小さければイベント処理カウンタ１０のカウンタ値のアドレスが示すイベント発生レジスタ９に格納されている割り込み要因番号を読み出して、その番号に対応するイベントを処理する。そして、次書込み位置記憶レジスタ８の値とイベント処理カウンタ１０の値とが一致するまで上記の処理を繰り返し実行する。
【００２６】
すなわち、ＣＰＵ２はイベント処理カウンタ１０の値と次書込み位置記憶レジスタ８の値とが不一致の場合のみイベントを処理すれば良いので、従来のポーリング処理とは異なり、実際にイベントが発生しているか否かを逐一確認する必要がなくなる。したがって、複数のイベントの処理を、割り込みを用いることなく効率的に行うことができる。
【００２７】
また、マイコン１は割り込みコントローラ３に、各イベントを、ＣＰＵ２に対する割り込み処理対象とするか、本実施形態のイベント処理の対象とするか、又は何れの対象にもしないことを選択するセレクタ６を備えた。したがって、個別の仕様に応じて、各イベントの処理形態や、処理対象とするか否かをダイナミックに選択できる。
【００２８】
（第２実施形態）
以下、第１実施形態と同一部分には同一符号を付して説明を省略し、異なる部分について説明する。図４に示すように、第２実施形態のマイコン１１は、イベント発生記憶部４をイベント発生記憶部１２に置き換えたもので、イベント発生記憶部１２は、イベント記憶制御部１３（イベント記憶制御手段）がＦＩＦＯ（First In First Out）１４（バッファ）を備えた構成である。
【００２９】
例えば、イベント記憶制御部１３がイベント発生レジスタ９に書き込みを行う１サイクル内の時間に、割り込み要因番号「１２」，「２５」，「８」に対応するイベントが順次発生したとする。この時、ＦＩＦＯ１４には、その発生順に番号「１２」，「２５」，「８」が順次格納されて一時記憶される。そして、イベント記憶制御部１３は、ＦＩＦＯ１４に格納された順に、イベント発生レジスタ９に対して各番号を書き込む。
【００３０】
以上のように第２実施形態によれば、イベント記憶制御部１３にＦＩＦＯ１４を備え、イベント記憶制御部１３がイベント発生レジスタ９に書き込みを行っている間に発生したイベントの番号をＦＩＦＯ１４に順次記憶させておき、記憶させた番号を先入れ先出しでイベント発生レジスタ９に書き込むようにした。したがって、複数のイベントがほぼ同時発生した場合でも、各イベントを取りこぼすことなくＣＰＵ２に確実に処理させることができる。
【００３１】
（第３実施形態）
図５に示すように、第３実施形態のマイコン２１は、イベント発生記憶部４をイベント発生記憶部２２に置き換えたもので、イベント発生記憶部２２は、イベント記憶制御部２３（イベント記憶制御手段）が優先順位判定回路２４を備えた構成である。優先順位判定回路２４は、例えば第２実施形態のように、割り込み要因番号を一時的に記憶するためのバッファとしての機能も備えている。また、前提として、各イベントには予め優先順位が付与されており、その情報は優先順位判定回路２４が保持している。
【００３２】
例えば、割り込み要因番号「８」，「１２」，「２５」に対応するイベントがほぼ同時に発生したとする。この時、優先順位判定回路２４は、これらの間の優先順位の高低を判定し、優先順位がより高い割り込み要因番号から先にイベント発生レジスタ９に書き込むように一時記憶する。図５に示す例では「１２」，「２５」，「８」の順で優先順位が高く（図中に丸数字で示す）、その順に従いイベント発生レジスタ９に書き込みが行われている。
【００３３】
以上のように第３実施形態によれば、優先順位判定回路２４は、複数のイベントが同時に発生した際に、各イベントの優先度が高いものから先に書き込みが行われるように一時記憶して、イベント発生記憶部２２は前記優先度に従いイベント発生レジスタ９に書き込みを行うようにした。したがって、ＣＰＵ２は、優先度が高いイベントの処理を早期に行うことができる。
【００３４】
（第４実施形態）
図６に示すように、第４実施形態のマイコン３１は、イベント発生記憶部４をイベント発生記憶部３２に置き換えたもので、イベント発生記憶部３２は、イベント記憶制御部７に替わるイベント記憶制御部３３（イベント記憶制御手段）と、イベント発生レジスタ９に替わるイベント発生レジスタ３４と、タイマカウンタ３５とを備えている。タイマカウンタ３５は、例えばリアルタイムクロックであり、時刻データをタイマ値として出力する。イベント発生レジスタ３４には、各割り込み要因番号の格納領域に対応して前記タイマ値を格納する領域が設けられている。
【００３５】
イベント記憶制御部３３は、イベントが発生して対応する割り込み要因番号をイベント発生レジスタ３４に書き込む際にタイマカウンタ３５のタイマ値を読み出して、そのタイマ値もイベント発生レジスタ３４に書き込む。これにより、イベント発生レジスタ３４を参照することで、各イベントが発生した時刻を知ることができる。
【００３６】
（第５実施形態）
図７に示すように、第５実施形態のマイコン４１は、ＣＰＵ４２及びイベント発生記憶部４３を備えている。イベント発生記憶部４３は、新たなイベント記憶制御部４４（イベント記憶制御手段）及びイベント発生レジスタ４５を備えている。イベント発生レジスタ４５は、記憶される割り込み要因番号に対応して処理実行フラグの格納領域４５Ｆが設けられている。尚、何もイベントが発生していない状態での処理実行フラグの初期値は「０」である。
【００３７】
イベント発生記憶部４３は、イベント発生レジスタ４５に割り込み要因番号を書き込む際に、対応するフラグ格納領域４５Ｆにイベント処理が未完であることを示すフラグ（１）をセットする。また、前記フラグ格納領域４５Ｆには、ＣＰＵ４２がアクセス可能であり、対応するイベント処理を実行すると、フラグをクリアして（０）イベント処理の完了を示す状態とする。
【００３８】
ＣＰＵ４２は、処理実行フラグポインタ４６を備えており、フラグ格納領域４５Ｆのフラグがすべてクリアされていれば、処理実行フラグポインタ４６の値をイベント処理カウンタ１０の値に設定する。一方、前記フラグが１つ以上セットされていれば、処理実行フラグポインタ４６の値が、それらのうち最小のレジスタ番号（アドレス）を指すように設定する。
【００３９】
次に、第５実施形態の作用について説明する。図８に示すように、ＣＰＵ４２は、処理時間を監視するためのタイマ（監視タイマ）を起動してカウント動作を開始させると（Ｓ１１）、処理実行フラグポインタ４６の値がイベント処理カウンタ１０の値よりも小さいか否かを判断する（Ｓ１２）。両者の値が等しく「ＮＯ」と判断すると、既に発生したことを認識しているイベントで処理が未完了のものはないことを意味する。したがって、第１実施形態と同様にステップＳ１〜Ｓ４を実行し、新たに発生したイベントがあればそれを処理する。
【００４０】
次に、ＣＰＵ４２は、監視タイマの値を取得し（Ｓ１３）、そのタイマ値が予め設定された制限時間未満か否かを判断する（Ｓ１４）。タイマ値が制限時間未満であれば（ＹＥＳ）ステップＳ５を実行し、タイマ値が制限時間以上であれば（ＮＯ）ステップＳ６を実行する。
【００４１】
一方、ステップＳ１２で「ＹＥＳ」と判断すると、既に発生したことを認識しているイベントで処理が未完了のものがあることを意味する。そこで、ＣＰＵ４２は、処理実行フラグポインタ４６の値が示すイベント発生レジスタ４５のレジスタ番号（アドレス）を検索し（Ｓ１５）、ステップＳ３と同様に、前記レジスタ番号に格納されている割り込み要因番号に対応するイベントを処理する（Ｓ１６）。そして、対応するフラグ格納領域４５Ｆのフラグをクリア（０をセット）すると（Ｓ１７）、処理実行フラグポインタ４６をインクリメントする（Ｓ１８）。
【００４２】
続くステップＳ１９及びＳ２０はステップＳ１３及びＳ１４と同様の処理であり、ステップＳ２０で「ＹＥＳ」と判断すると、処理実行フラグポインタ４６の値がイベント処理カウンタ１０の値以上か否かを判断する（Ｓ２１）。ここで「ＮＯ」と判断すると、処理が未完了のイベントがあることを意味するのでステップＳ１５に戻る。また、「ＹＥＳ」と判断すると、過去に発生済みのイベントは全て処理したことになり、「過去にイベント発生あり」の状態を設定してから（Ｓ２２）、ステップＳ１に移行する。
【００４３】
以上のように第５実施形態によれば、イベント発生レジスタ４５には、各イベントの処理状態を示す処理実行フラグを格納する領域４５Ｆが設けられており、イベント記憶制御部４４は、イベントの情報と共に当該イベントに対応する処理実行フラグをセットし、ＣＰＵ４２は、処理を完了したイベントに対応する処理実行フラグをリセットする。したがって、ＣＰＵ４２は、フラグ格納領域４５Ｆを参照すれば、各イベントを処理したか否かを判断できる。
【００４４】
また、ＣＰＵ４２は、自身が管理する処理実行フラグポインタ４６の値を、処理実行フラグが１つ以上セットされていると、それらの内レジスタアドレスが最小のものに設定し、処理実行フラグがセットされているイベントの処理を完了すると、ポインタ４６の値をインクリメントして、前記ポインタ値がイベント処理カウンタ１０のカウンタ値に一致するまで上記の処理を繰り返し実行する。したがって、ＣＰＵ４２は、各イベントを確実に処理することができる。
【００４５】
本発明は上記した、又は図面に記載した実施形態にのみ限定されるものではなく、以下のような変形又は拡張が可能である。
セレクタ６を、ＣＰＵ２への割り込み対象とするか、本実施形態のイベント処理の対象とするかのみを選択するものに置き換えても良い。
また、セレクタ６は必要に応じて設ければ良く、各イベントを割り込み対象とするか、本実施形態のイベント処理の対象とするかは、予めスタティックに設定しても良い。
第２実施形態のＦＩＦＯ１４を、単に複数の割り込み要因番号を一時記憶するバッファとしても良く、必ずしもイベント発生レジスタ９に先入れ先出しで書き込みを行う必要はない。
【符号の説明】
【００４６】
図面中、１はマイクロコンピュータ、２はＣＰＵ、６はセレクタ、７はイベント記憶制御部（イベント記憶制御手段）、８は次書込み位置記憶レジスタ（アドレス指定手段）、９はイベント発生レジスタを示す。
【図１】
2016021123.tif 000003
【図２】
2016021123.tif 000004
【図３】
2016021123.tif 000005
【図４】
2016021123.tif 000006
【図５】
2016021123.tif 000007
【図６】
2016021123.tif 000008
【図７】
2016021123.tif 000009
【図８】
2016021123.tif 000010