(57)【要約】【課題】割り込みイベント処理シーケンス、分岐イベント処理シーケンス、メモリ参照イベント処理シーケンスを高速に処理する。【解決手段】第２記憶部（１０４）、ＣＰＵコア（１０３）、専有バス（１０５）を設ける。ＣＰＵコアは、例外又は割り込みのイベントが発生された場合、上記専有バスを介して上記第２記憶部にアクセスし、例外又は割り込みのイベントに対応する例外又は割り込みの処理ルーチンの先頭アドレス情報を取得する。またＣＰＵコアは、分岐命令等による分岐イベントが発生された場合、上記専有バスを介して上記第２記憶部にアクセスし、分岐のイベントに対応した分岐先アドレスと当該分岐先の命令列等を取得する。さらにＣＰＵコアは、オペランド参照命令によるメモリ参照イベントが発生した場合、上記専有バスを介して上記第２記憶部にアクセスし、メモリ参照のイベントに対応したメモリ参照先アドレスと当該参照先データ列等を取得する。【選択図】図１
2011191865.tif 000002
【特許請求の範囲】
【請求項１】
イベントの発生により起動される処理を実行可能なＣＰＵコアを含み、
上記イベントは、識別コードのイベント・コードにより各々を識別可能とされ、
上記処理は、例外処理、ハードウェア割り込み処理、ソフトウェア割り込み処理、分岐処理、およびメモリ参照処理の少なくとも一つを含み、さらに、例外要因、ハードウェア割り込み要因、ソフトウェア割り込み要因、分岐先アドレス、およびメモリ参照先アドレスを含む要因に基づいて個別の処理を区別可能とされ、さらに固有な上記イベント・コードを割り当てることで上記処理の識別が可能な半導体装置であって、
例外又は割り込み処理ルーチンのベクタテーブルを形成可能な第１記憶部と、
上記イベント・コードを格納可能なイベント記憶部と、
上記イベント記憶部に対応する第２記憶部と、
上記イベント・コードを上記第２記憶部へ伝達可能な専有バスと、を含み、
上記第２記憶部は、上記処理に関連付けられるアドレス、命令コード、データ、および当該処理に係わる制御情報を含む第２イベント情報を上記イベント・コードに対応させて格納する第１機能と、
上記第１機能によって格納された上記第２イベント情報の中から、入力されたイベント・コードに対応する第２イベント情報を選択する第２機能と、
上記第２機能によって選択された第２イベント情報を、上記専有バスを介して上記ＣＰＵコアに出力する第３機能と、を含み、
上記ＣＰＵコアは、上記専有バスを介して伝達された上記第２イベント情報に基づいて上記処理を実行することを特徴とする半導体装置。
【請求項２】
上記ＣＰＵコアは、上記第２記憶部に入力される上記イベント・コードに対応する有効な上記第２イベント情報が上記第２記憶部に存在しない場合、上記イベント・コードから上記第１記憶部内のベクタテーブルの参照アドレスを導出し、そのアドレスに基づいてベクタアドレスを取得する請求項１記載の半導体装置。
【請求項３】
上記第２記憶部は共有バスに結合され、
上記共有バスは、上記ＣＰＵコアのアドレス空間に上記第２記憶部を配置することを可能とする機能と、上記ＣＰＵコアが上記第２記憶部に対して上記第２イベント情報の書き込み処理、および読み出し処理を実行可能とする機能とを含む請求項２記載の半導体装置。
【請求項４】
上記イベント記憶部は複数配置され、第２記憶部は、上記各イベント記憶部に対応して複数配置されて成る請求項３記載の半導体装置。
【請求項５】
上記第２記憶部は、上記イベントが発生されて上記専有バスを介してアクセスされる場合、及び、上記共有バスを介して書き込み処理、または読み出し処理される場合に活性状態とされる請求項４記載の半導体装置。
【請求項６】
上記イベント記憶部に任意のデータを格納し、上記イベント記憶部に格納されるデータに対応される上記イベントを発生させる請求項１記載の半導体装置。
【請求項７】
上記ＣＰＵコアを含む複数のモジュール間で共有される共有バスを含み、
上記ＣＰＵコアは、例外又は割り込みのイベントが発生された場合に、当該イベント情報から上記第１記憶部の参照アドレスを導出し、当該参照アドレスに基づいて上記ベクタテーブルから上記イベントに対応する上記先頭アドレスを求め、当該先頭アドレスに基づいて例外又は割り込みの処理ルーチンを実行可能とされ、
上記第２記憶部は、例外又は割り込みの処理ルーチンの先頭アドレスを含む情報が格納され、
上記専有バスは、上記共有バスとは別に上記ＣＰＵコアと上記第２記憶部との間で信号のやり取りを行うために設けられ、
上記ＣＰＵコアは、例外又は割り込みのイベントが発生された場合、上記第１記憶部の参照アドレス導出に並行して上記専有バスを介して上記第２記憶部にアクセスし、上記例外又は割り込みのイベントに対応する例外又は割り込みの処理ルーチンの有効な先頭アドレス情報が上記第２記憶部内に存在する場合には、上記ベクタテーブルからの先頭アドレス取得に代えて、上記第２記憶部内の先頭アドレス情報を上記専有バス経由で取得する請求項３記載の半導体装置。
【請求項８】
上記ＣＰＵコアは、上記共有バスを介して上記第２記憶部に対して、例外又は割り込みの処理ルーチンの先頭アドレスを含む情報を書き込む処理、および読み出し処理をする機能を含む請求項７記載の半導体装置。
【請求項９】
上記第２記憶部は、上記ＣＰＵコアから上記専有バスを介して上記例外又は割り込みのイベントを示すコードが伝達され、伝達されたコードと一致する有効なコードが上記第２記憶部内に存在する場合には、当該コードに対応する上記先頭アドレスを含む情報を上記専有バス経由で上記ＣＰＵコアに伝達する請求項８記載の半導体装置。
【請求項１０】
上記ＣＰＵコアは、次に実行すべき命令の格納アドレスを保持するプログラムカウンタと、
上記専有バス経由で上記第２記憶部から伝達された上記先頭アドレス情報を選択的に上記プログラムカウンタに設定するための選択回路と、を含む請求項８記載の半導体装置。
【請求項１１】
上記第２記憶部は、上記例外又は割り込みのイベントに対応するコード情報が格納されるコードアレイと、
上記コードアレイ内のコード情報に対応する例外又は割り込みの処理ルーチンの先頭アドレス情報が格納されるアドレスアレイと、
上記ＣＰＵコアから上記専有バスを介して上記例外又は割り込みのイベントを示すコード情報が伝達された場合に、当該コード情報が上記コードアレイ内の有効なコード情報と一致するか否かを判定するコード一致判定論理ブロックと、
上記コード一致判定論理ブロックでの判定結果に応じて、上記アドレスアレイ内の先頭アドレス情報を選択するアドレス選択論理ブロックと、を含み、
上記アドレス選択論理ブロックの出力が上記専有バス経由で上記ＣＰＵコアに伝達される請求項１０記載の半導体装置。
【請求項１２】
上記第２記憶部は、更に上記アドレスアレイに格納されている先頭アドレス情報に対応する例外又は割り込みの処理ルーチンにおける先頭命令列が格納されるコマンドアレイと、
上記コード一致判定論理ブロックでの判定結果に応じて、上記コマンドアレイ内の当該先頭命令列を選択するためのコマンド選択論理ブロックと、コマンド有効ビット選択論理ブロックと、プリフェッチ制御ビット選択論理ブロックと、を含み、
上記コマンドアレイには、更に、他のキャッシュメモリに対するプリフェッチを要求するプリフェッチ制御ビットおよびコマンドアレイの命令列の有効／無効を示すコマンド有効ビットと、が格納され、
上記コード一致判定論理ブロックの判定結果に応じて、更に、上記コマンド有効ビット選択論理ブロックは、上記コマンド有効ビットを選択し、上記プリフェッチ制御ビット選択論理は、上記プリフェッチ制御ビットを選択し、
上記コマンド選択論理ブロックの出力、上記有効ビット選択論理ブロック、および上記プリフェッチ制御ビット選択論理ブロックの出力が上記専有バス経由で上記ＣＰＵコアに伝達される請求項１１記載の半導体装置。
【請求項１３】
上記第２記憶部は、上記例外又は割り込みのイベントに対応するコードが格納されるコードアレイと、
上記コードアレイ内のコードに対応する例外又は割り込みの処理ルーチンの先頭アドレス情報として、当該先頭アドレスに対応するオフセットアドレスが格納されるアドレスアレイと、
上記ＣＰＵコアから上記専有バスを介して上記例外又は割り込みのイベントを示すコードが伝達された場合に、当該コードが上記コードアレイ内の有効なコードと一致するか否かを判定するコード一致判定論理ブロックと、
上記コード一致判定論理ブロックでの判定結果に応じて、上記アドレスアレイ内のオフセットアドレスを選択するアドレス選択論理ブロックと、を含み、
上記アドレス選択論理ブロックの出力が上記専有バス経由で上記ＣＰＵコアに伝達される請求項３記載の半導体装置。
【請求項１４】
上記ＣＰＵコアは、上記専有バス経由で上記第２記憶部から伝達されたオフセットアドレスにベースアドレスを加算することで例外又は割り込み処理ルーチンの有効な先頭アドレスを形成するための加算器を含む請求項１３記載の半導体装置。
【請求項１５】
上記第２記憶部は、上記例外又は割り込みのイベントに対応する例外又は割り込みの処理ルーチンの先頭アドレス情報が格納されるアドレスアレイを含み、
上記ＣＰＵコアより伝達される上記例外又は割り込みのイベントを示すコードを参照アドレスとして上記第２記憶部を参照することで上記アドレスアレイ内の上記先頭アドレス情報を選択し上記専有バスに読み出し可能にされる請求項３記載の半導体装置。
【請求項１６】
上記第２記憶部は、例外イベントに対応する例外処理ルーチンの先頭アドレスを出力可能な第１イベントキャッシュと、
ハードウェア割り込みイベントに対応する例外処理ルーチンの先頭アドレスを出力可能な第２イベントキャッシュメモリと、
ソフトウェア割り込みイベントに対応する例外処理ルーチンの先頭アドレスを出力可能な第３イベントキャッシュメモリと、を含み、
上記ＣＰＵコアは、受け付けられた例外イベントに対応するコードを保持する第１イベントコードレジスタと、
受け付けられたハードウェア割り込みイベントに対応するコードを保持する第２イベントコードレジスタと、
受け付けられたソフトウェア割り込みイベントに対応するコードを保持する第３イベントコードレジスタと、を含み、
上記第１イベントコードレジスタ内のコードに基づいて上記第１イベントキャッシュメモリ内の先頭アドレスが上記専有バスに読み出され、上記第２イベントコードレジスタ内のコードに基づいて上記第２イベントキャッシュメモリ内の先頭アドレスが上記専有バスに読み出され、上記第３イベントコードレジスタ内のコードに基づいて上記第３イベントキャッシュメモリ内の先頭アドレスが上記専有バスに読み出される請求項４記載の半導体装置。
【請求項１７】
上記第２記憶部は、例外又は割り込みのイベントに対応する例外又は割り込みの処理ルーチンの先頭アドレスを出力可能な第１イベントキャッシュメモリと、
外部周辺機器からの割り込み要求を識別するコードに対応する例外処理ルーチンの先頭アドレスを出力可能な第２イベントキャッシュメモリと、を含み、
上記ＣＰＵコアは、受け付けられた例外又は割り込みのイベントを示すコードを保持する第１イベントコードレジスタと、
上記外部周辺機器からの割り込み要求を識別するコードを保持する第２イベントコードレジスタと、を含み、
上記第１イベントコードレジスタ内のコードに基づいて上記第１イベントキャッシュメモリ内の先頭アドレスが上記専有バスに読み出され、上記第２イベントコードレジスタ内のコードに基づいて上記第２イベントキャッシュメモリ内の先頭アドレスが上記専有バスに読み出される請求項４記載の半導体装置。
【請求項１８】
上記第２記憶部は、分岐命令の分岐先アドレスを識別するためのイベントを示す分岐先イベント・コードが格納されるコードアレイと、
上記コードアレイ内のコードに対応する分岐先アドレス情報が格納されるアドレスアレイと、
上記分岐先アドレスから連続する分岐先命令列が格納されるコマンドアレイと、を含む請求項３記載の半導体装置。
【請求項１９】
少なくとも上記分岐先イベント・コードにより、分岐命令の分岐先アドレスを識別可能とされることを特徴とする請求項１８記載の半導体装置。
【請求項２０】
上記第２記憶部は、更に上記コード一致判定論理ブロックの判定結果に応じて、上記アドレスアレイ内のアドレス有効ビットを選択するためのアドレス有効ビット選択論理ブロックを含み、
上記アドレスアレイには、更に、格納されているメモリ参照先アドレス情報をプログラムカウンタに設定することを有効／無効に制御されるアドレス有効ビットが格納され、
上記コード一致判定論理ブロックの判定結果に応じて、更に、上記アドレス有効ビット選択論理ブロックは、上記アドレス有効ビットを選択し、上記アドレス有効ビット選択論理ブロックの出力が上記専有バス経由で上記ＣＰＵコアに伝達される請求項３記載の半導体装置。
【請求項２１】
上記ＣＰＵコアは、更に上記専有バス経由で取得される上記アドレス有効ビットによって、上記専有バス経由で取得される上記アドレスアレイのメモリ参照先アドレス情報をプログラムカウンタに設定するか否かを制御する機能を含む請求項２０の半導体装置。
【請求項２２】
上記第２記憶部は、上記ＣＰＵコアが管理されるアドレス空間におけるメモリ参照先を識別するためのメモリ参照イベント・コードが格納されるコードアレイと、これに関連づけられる上記メモリ参照先のアドレスが格納されるアドレスアレイと、上記アドレスアレイに格納された上記メモリ参照先のアドレスを先頭アドレスとするメモリ参照先のデータ列が格納されるコマンドアレイを含む請求項２１記載の半導体装置。
【請求項２３】
少なくとも上記メモリ参照イベント・コードにより、メモリ参照先アドレスを識別可能とされることを特徴とする請求項２２記載の半導体装置。
【請求項２４】
上記第２記憶部は、更に、上記アドレスアレイに格納されている先頭アドレス情報に対応する例外又は割り込みの処理ルーチンにおける先頭命令列が格納されるコマンドアレイと、
上記コード一致判定論理ブロックでの判定結果に応じて上記コマンドアレイ内の当該先頭命令列を選択するためのコマンド選択論理ブロックと、有効ビット選択論理ブロック７７とを含み、
上記コマンドアレイには、コマンドアレイの命令列の有効／無効を示すコマンド有効ビットが格納され、
上記コード一致判定論理ブロックの判定結果に応じて、更に上記有効ビット選択論理ブロックは、上記コマンド有効ビットを選択し、
上記コマンド選択論理ブロックの出力、及び上記有効ビット選択論理ブロックの出力が、上記専有バス経由で上記ＣＰＵコアに伝達される請求項１１記載の半導体装置。
【請求項２５】
上記第２記憶部は、更に、上記アドレスアレイに格納されている先頭アドレス情報に対応する例外又は、割り込みの処理ルーチンにおける先頭命令列が格納されるコマンドアレイと、
上記コード一致判定論理ブロックでの判定結果に応じて上記コマンドアレイ内の当該先頭命令列を選択するためのコマンド選択論理ブロックと、プリフェッチ制御ビット選択論理ブロックと、を含み、
上記コマンドアレイには、更に、他のキャッシュメモリに対するプリフェッチを要求するプリフェッチ制御ビットが格納され、
上記コード一致判定論理ブロックの判定結果に応じて、上記プリフェッチ制御ビット選択論理は、上記プリフェッチ制御ビットを選択し、
上記コマンド選択論理ブロックの出力、上記プリフェッチ制御ビット選択論理ブロックの出力が、上記専有バス経由で、上記ＣＰＵコアに伝達される請求項１１記載の半導体装置。
【請求項２６】
上記ＣＰＵコアは、上記専有バス経由で上記第２記憶部から伝達されたオフセットアドレスにベースアドレスを加算するか否かを制御する信号により上記先頭アドレスを生成可能とする機能を含む請求項１４記載の半導体装置。
【請求項２７】
上記第２記憶部は、上記イベントのそれぞれに対応されるコマンドアレイのラインサイズを任意に設可能とされることを特徴とする請求項１６記載の半導体装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体装置、さらにはそれにおける割り込みイベントを含むイベント処理の制御技術に関する。
【背景技術】
【０００２】
半導体装置の一例としてマイクロコンピュータ（「マイクロプロセッサ」とも称される）を挙げることができる。マイクロコンピュータはＣＰＵ（Central Processing Unit；中央処理装置）を含み、このＣＰＵでは、例外に対する処理や、割り込みに対する処理が行われる。「例外」は、プロセッサが命令の実行中にゼロ除算のようなエラー条件を検出したときに発生する。ＣＰＵは、保護違反、ページ・フォルト、内部マシン・フォルトをはじめ、さまざまなエラー条件を例外として検出する。これに対して「割り込み」は、通常、プログラムの実行中に、周辺モジュールからのサービス要求のような、ＣＰＵにとって外部的なイベントをハードウェアから要求を受けたときに起こる。これを「ハードウェア割り込み」という。また、ソフトウェアでも、所定命令を実行することにより割り込みを発生することができ、それを「ソフトウェア割り込み」という。
【０００３】
例外又は割り込みに応じて呼び出されるプログラムを「ハンドラー」という。例えば割り込みハンドラーでは、割り込み要因の解析、及び割り込み要因に対応した割り込み処理ルーチンの先頭アドレスが生成され、そのアドレスに分岐される。例外ハンドラーでは、例外処理ルーチンの先頭アドレスが生成され、そのアドレスに分岐される。処理ルーチンの先頭アドレスは「ベクタ」と称される。ハンドラーによるこのアドレス生成はソフトウェア処理であり、ＣＰＵによって管理されるアドレス空間上に配置されたベクタテーブルを参照するためのメモリアクセスを伴う。例外や割り込みのイベントが発生すると、ＣＰＵは実行中のプログラムが扱っているデータなどをメモリ上に退避して、対応するハンドラーを呼び出して処理する。そしてハンドラーによる処理が終了すると、ＣＰＵは、先に退避しておいたデータを元に戻して分岐前のプログラムの実行を再開する。
【０００４】
特許文献１には、検出したい割り込み要因を予め割り込みフラグパターンレジスタに設定しておくことで、入力された割り込みフラグの値に対し、前記設定した分の割り込み要因を検出し、割り込み判定処理を行い、その割り込み要因に該当するベクタ番号を出力する技術が記載されている。
【０００５】
特許文献２には、外部割り込みを対象とし、メモリが記憶する複数の処理プログラムを指定するプログラム指定情報を記憶する処理記憶部を有し、メモリ内のデータまたはプログラム指定情報のいずれかをセレクタで選択し、プログラム指定情報に応じたメモリ内の処理プログラムを読み出して実行する技術が記載されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００５−８５０５５号公報
【特許文献２】特開２００６−２０２０３４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
割り込みハンドラーを用いる場合、割り込みが発生してから実際の要因別の処理ルーチンが実行されるまでには、割り込みハンドラー処理に要するタイムラグがあり、これが、実質上の割り込みの応答時間、処理性能の低下を生じさせている。通常、割り込み応答時間は、割り込み要求が発生してからＣＰＵが割り込み要求を受け付けて、割り込みハンドラに分岐するまでの時間で規定され、ハンドラー処理時間は勘案されていない。これは、ハンドラー処理時間が、ソフトウェアの処理内容、実行状態、およびシステムの稼動状態に依存するため、確定が困難とされるためである。
【０００８】
特許文献１に記載された技術によれば、複数の割り込み要因の中から特定の要因に対応したベクタ番号を出力するようにしている。このベクタ番号からベクタテーブルのアドレスを生成し、それを参照して、そこに格納されている該当要因の割り込みベクタ（割り込み要因に対応する割り込み処理ルーチンの先頭アドレス）が取得される。しかし、ベクタ番号からベクタテーブルのアドレスを生成し、メモリを参照する必要があり、それに要する時間は、割り込みベクタが得られるまでの時間短縮を阻害することが、本願発明者によって見いだされた。
【０００９】
特許文献２に記載された技術によれば、特許文献２における図１に示されるようにマイクロプロセッサ内のデータ入力部に共通バスを介してデータを供給するようにしているため、そこにはセレクタ等の周辺回路を設ける必要がある。
【００１０】
本発明の目的は、例外や割り込みのイベントが発生した場合、対応する処理ルーチンへ分岐（遷移）する動作、つまり当該イベント処理ルーチンへの分岐処理シーケンスを高速に処理するための技術を提供することにある。
【００１１】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１２】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
【００１３】
すなわち、半導体装置は、イベントの発生により起動される処理を実行可能なＣＰＵコアを含む。上記イベントは、識別コードのイベント・コードにより各々を識別可能とされ、上記処理は、例外処理、およびハードウェア割り込み処理、ソフトウェア割り込み処理、分岐処理、およびメモリ参照処理の少なくとも一つを含み、さらに、例外要因、ハードウェア割り込み要因、ソフトウェア割り込み要因、分岐先アドレス、およびメモリ参照先アドレスを含む要因に基づいて個別の処理を区別可能とされる。また、半導体装置は、例外又は割り込み処理ルーチンのベクタテーブルを形成可能な第１記憶部と、上記イベント・コードを格納可能なイベント記憶部と、上記イベント記憶部に対応する第２記憶部と、上記イベント・コードを上記第２記憶部へ伝達可能な専有バスとを含む。上記第２記憶部は、上記処理に関連付けられるアドレス、命令コード、データ、および当該処理に係わる制御情報を含む第２イベント情報を上記イベント・コードに対応させて格納する第１機能と、上記第１機能によって格納された上記第２イベント情報の中から、入力されたイベント・コードに対応する第２イベント情報を選択する第２機能とを含む。また上記第２記憶部は、上記第２機能によって選択された第２イベント情報を、上記専有バスを介して上記ＣＰＵコアに出力する第３機能を含む。そして、上記ＣＰＵコアは、上記専有バスを介して伝達された上記第２イベント情報に基づいて上記処理を実行する。
【発明の効果】
【００１４】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記のとおりである。
【００１５】
すなわち、例外や割り込みのイベントが発生した場合、対応する当該イベント処理シーケンスを高速に処理することができる。
【図面の簡単な説明】
【００１６】
【図１】本発明にかかる半導体装置の一例とされるマイクロコンピュータの構成例ブロック図である。
【図２】図１に示されるマイクロコンピュータの比較対象とされるマイクロコンピュータの構成例ブロック図である。
【図３】図２に示されるマイクロコンピュータにおける割り込みイベント処理シーケンスの説明図である。
【図４】図１に示されるマイクロコンピュータにおける主要部の動作タイミング図である。
【図５】ハードウェア割り込み処理とソフトウェア割り込み処理の説明図である。
【図６】図１に示されるマイクロコンピュータと図２に示されるマイクロコンピュータとのベクタフェッチの所要時間を比較するための説明図である。
【図７】図１に示されるマイクロコンピュータに含まれるイベントキャッシュメモリの構成例ブロック図である。
【図８】上記マイクロコンピュータで実行されるデータ転送命令のフォーマット説明図である。
【図９】上記マイクロコンピュータで実行されるデータ転送命令のフォーマット説明図である。
【図１０】図１に示されるマイクロコンピュータに含まれるイベントキャッシュメモリの別の構成例ブロック図である。
【図１１】図１に示されるマイクロコンピュータに含まれるイベントキャッシュメモリの別の構成例ブロック図である。
【図１２】上記マイクロコンピュータで実行されるデータ転送命令のフォーマット説明図である。
【図１３】上記マイクロコンピュータで実行されるデータ転送命令のフォーマット説明図である。
【図１４】図１に示されるマイクロコンピュータに含まれるイベントキャッシュメモリの別の構成例ブロック図である。
【図１５】上記マイクロコンピュータで実行されるデータ転送命令のフォーマット説明図である。
【図１６】上記マイクロコンピュータで実行されるデータ転送命令のフォーマット説明図である。
【図１７】上記マイクロコンピュータで実行されるデータ転送命令のフォーマット説明図である。
【図１８】図１に示されるマイクロコンピュータに含まれるイベントキャッシュメモリの別の構成例ブロック図である。
【図１９】図１に示されるマイクロコンピュータに含まれるイベントキャッシュメモリの別の構成例ブロック図である。
【図２０】図１に示されるマイクロコンピュータに含まれるイベントキャッシュメモリの別の構成例ブロック図である。
【図２１】上記マイクロコンピュータで実行されるデータ転送命令のフォーマット説明図である。
【図２２】上記マイクロコンピュータで実行されるデータ転送命令のフォーマット説明図である。
【発明を実施するための形態】
【００１７】
１．実施の形態の概要
先ず、本願において開示される発明の代表的な実施の形態について概要を説明する。代表的な実施の形態についての概要説明で括弧を付して参照する図面中の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
【００１８】
〔１〕本発明の代表的な実施の形態に係る半導体装置（１００）は、イベントの発生により起動される処理を実行可能なＣＰＵコア（１０３）を含む。上記イベントは、識別コードのイベント・コードにより各々を識別可能とされ、上記処理は、例外処理、およびハードウェア割り込み処理、ソフトウェア割り込み処理、分岐処理、およびメモリ参照処理の少なくとも一つを含み、さらに、例外要因、ハードウェア割り込み要因、ソフトウェア割り込み要因、分岐先アドレス、およびメモリ参照先アドレスを含む要因に基づいて個別の処理を区別可能とされる。また、半導体装置は、例外又は割り込み処理ルーチンのベクタテーブルを形成可能な第１記憶部（１１３）と、上記イベント・コードを格納可能なイベント記憶部（１４）と、上記イベント記憶部に対応する第２記憶部（１０４）と、上記イベント・コードを上記第２記憶部へ伝達可能な専有バス（１０５）とを含む。
【００１９】
上記第２記憶部（１０４）は、上記処理に関連付けられるアドレス、命令コード、データ、および当該処理に係わる制御情報を含む第２イベント情報を上記イベント・コードに対応させて格納する第１機能と、上記第１機能によって格納された上記第２イベント情報の中から、入力されたイベント・コードに対応する第２イベント情報を選択する第２機能とを含む。また上記第２記憶部は、上記第２機能によって選択された第２イベント情報を、上記専有バスを介して上記ＣＰＵコアに出力する第３機能を含む。
【００２０】
そして、上記ＣＰＵコアは、上記専有バスを介して伝達された上記第２イベント情報に基づいて上記処理を実行する。
【００２１】
上記の構成により、例外又は割り込みのイベントが発生された場合に、ベクタテーブルの参照やハンドラーを経由しないで、ハードウェアによって当該イベント処理ルーチンの先頭アドレスを取得することができる。これにより、例外や割り込みのイベントが発生した場合、当該イベント処理ルーチンへの分岐処理シーケンス（以下、「イベント処理シーケンス」と称す）の高速化を達成することができる。
【００２２】
〔２〕上記〔１〕において、上記ＣＰＵコア（１０３）には、上記共有バスを介して上記第２記憶部に例外又は割り込みの処理ルーチンの先頭アドレス情報を書き込む処理を含めることができる。
【００２３】
〔３〕上記〔２〕において、上記第２記憶部（１０４）は、上記ＣＰＵコアから上記専有バスを介して上記例外又は割り込みのイベントを示すコードが伝達され、伝達されたコードと一致するコードが上記第２記憶部内に存在する場合には、当該コードに対応する上記先頭アドレス情報を上記専有バス経由で上記ＣＰＵコアに通知するように構成することができる。
【００２４】
〔４〕上記〔３〕において、上記ＣＰＵコア（１０３）は、次に実行すべき命令の格納アドレスを保持するプログラムカウンタ（１２）と、上記専有バス経由で上記第２記憶部から通知された上記先頭アドレス情報を選択的に上記プログラムカウンタに設定するための選択回路（１３）とを含んで構成することができる。
【００２５】
〔５〕上記〔４〕において、上記第２記憶部（１０４）は、上記例外又は割り込みのイベントに対応するコードが格納されるコードアレイ（７１）と、上記コードアレイ内のコードに対応する例外又は割り込みの処理ルーチンの先頭アドレス情報が格納されるアドレスアレイ（７２）とを含む。さらに上記第２記憶部（１０４）は、上記ＣＰＵコアから上記専有バスを介して上記例外又は割り込みのイベントを示すコードが伝達された場合に、当該コードが上記コードアレイ内のコードと一致するか否かを判定するコード一致判定論理ブロック（７３）と、上記コード一致判定論理ブロックでの判定結果に応じて、上記アドレスアレイ内の先頭アドレス情報を選択するアドレス選択論理ブロック（７４）とを含む。このとき、上記アドレス選択論理ブロックの出力が上記専有バス経由で上記ＣＰＵコアに伝達される。
【００２６】
〔６〕上記〔５〕において、上記第２記憶部（１０４）は、更に上記アドレスアレイに格納されている先頭アドレス情報に対応する例外又は割り込みの処理ルーチンにおける先頭命令列が格納されるコマンドアレイ（７５）と、上記コード一致判定論理ブロックでの判定結果に応じて、上記コマンドアレイ内の先頭命令列を選択するためのコマンド選択論理ブロック（７６）とを含んで構成することができる。このとき、上記コマンドアレイには、他のキャッシュメモリに対するプリフェッチを要求する制御ビットが格納され、上記コマンド選択論理ブロックの出力が上記専有バス経由で上記ＣＰＵコアに伝達される。
【００２７】
〔７〕上記〔４〕において、上記第２記憶部（１０４）は、上記例外又は割り込みのイベントに対応するコードが格納されるコードアレイ（７１）と、上記コードアレイ内のコードに対応する例外又は割り込みの処理ルーチンの先頭アドレス情報として、当該先頭アドレスに対応するオフセットアドレスが格納されるアドレスアレイ（７２）とを含む。さらに上記第２記憶部（１０４）は、上記ＣＰＵコアから上記専有バスを介して上記例外又は割り込みのイベントを示すコードが伝達された場合に、当該コードが上記コードアレイ内のコードと一致するか否かを判定するコード一致判定論理ブロック（７３）と、上記コード一致判定論理ブロックでの判定結果に応じて、上記アドレスアレイ内のオフセットアドレスを選択するアドレス選択論理ブロック（７４）とを含む。このとき、上記アドレス選択論理ブロックの出力が上記専有バス経由で上記ＣＰＵコアに伝達される。
【００２８】
〔８〕上記〔７〕において、上記ＣＰＵコア（１０３）には、上記専有バス経由で上記第２記憶部（１０４）から伝達されたオフセットアドレスにベースアドレスを加算することで有効な先頭アドレスを形成するための加算器（１５）を含めることができる。
【００２９】
〔９〕上記〔２〕において、上記第２記憶部（１０４）には、上記例外又は割り込みのイベントに対応する例外又は割り込みの処理ルーチンの先頭アドレス情報が格納されるアドレスアレイ（７２）を含めることができる。このとき、上記アドレスアレイ内の先頭アドレス情報は、上記例外又は割り込みのイベントを示すコードを参照アドレスとして読み出し可能にされ、上記専有バスを経由して上記ＣＰＵコアに伝達される。
【００３０】
〔１０〕上記〔４〕において、上記第２記憶部（１０４）には、第１イベントキャッシュメモリ（１０４−１）と、第２イベントキャッシュメモリ（１０４−２）と、第３イベントキャッシュメモリ（１０４−３）とを設けることができる。第１イベントキャッシュメモリ（１０４−１）は、例外イベントに対応する例外処理ルーチンの先頭アドレスを出力可能にされ、第２イベントキャッシュメモリ（１０４−２）は、ハードウェア割り込みイベントに対応する例外処理ルーチンの先頭アドレスを出力可能にされ、第３イベントキャッシュメモリ（１０４−３）は、ソフトウェア割り込みイベントに対応する例外処理ルーチンの先頭アドレスを出力可能にされる。このとき、ＣＰＵコア（１０３）は、受け付けられた例外イベントに対応するコードを保持する第１イベントコードレジスタ（１４−１）と、受け付けられたハードウェア割り込みイベントに対応するコードを保持する第２イベントコードレジスタ（１４−２）と、受け付けられたソフトウェア割り込みイベントに対応するコードを保持する第３イベントコードレジスタ（１４−３）とを含んで構成される。上記第１イベントコードレジスタ内のコードに基づいて上記第１イベントキャッシュメモリ内の先頭アドレスが読み出され、上記第２イベントコードレジスタ内のコードに基づいて上記第２イベントキャッシュメモリ内の先頭アドレスが読み出され、上記第３イベントコードレジスタ内のコードに基づいて上記第３イベントキャッシュ内の先頭アドレスが読み出され、上記専有バスを経由して上記ＣＰＵコアに伝達される。
【００３１】
〔１１〕上記〔４〕において、上記第２記憶部（１０４）は、例外又は割り込みのイベントに対応する例外又は割り込みの処理ルーチンの先頭アドレスを出力可能な第１イベントキャッシュメモリ（１０４−１）と、外部周辺機器からの割り込み要求を識別するコードに対応する例外処理ルーチンの先頭アドレスを出力可能な第２イベントキャッシュメモリ（１０４−２）とを含んで構成することができる。このとき、上記ＣＰＵコアは、受け付けられた例外又は割り込みのイベントを示すコードを保持する第１イベントコードレジスタ（１４−１）と、上記外部周辺機器からの割り込み要求を識別するコードを保持する第２イベントコードレジスタ（１４−２）とを含んで構成される。上記第１イベントコードレジスタ内のコードに基づいて上記第１イベントキャッシュメモリ内の先頭アドレスが読み出され、上記第２イベントコードレジスタ内のコードに基づいて上記第２イベントキャッシュメモリ内の先頭アドレスが読み出され、上記専有バスを経由して上記ＣＰＵコアに伝達される。
【００３２】
〔１２〕上記〔６〕において、上記第２記憶部（１０４）は、分岐命令の分岐先アドレスを識別するコードが格納されるコードアレイ（７１）を含み、上記コードアレイ内のコードに対応する分岐先アドレス情報が格納されるアドレスアレイ（７２）と、上記分岐先アドレスを先頭とする命令列（以下、「分岐先命令列」と称す）が格納されるコマンドアレイ（７５）とを含む。
【００３３】
〔１３〕上記〔６〕において、上記第２記憶部（１０４）は、オペランドデータを参照する参照先アドレスを識別するコードが格納されるコードアレイ（７１）を含む。さらに上記第２記憶部は、上記コードアレイ内のコードに対応する参照先アドレス情報および当該イベント・コードがオペランドデータの参照か否かを示す制御ビットが格納されるアドレスアレイ（７２）と、上記参照先アドレスを先頭とするデータ列（以下、「参照先データ列」と称す）が格納されるコマンドアレイ（７５）とを含む。
【００３４】
２．実施の形態の詳細
実施の形態について更に詳述する。
【００３５】
＜実施の形態１＞
図１には、本発明にかかる半導体装置の一例とされるマイクロコンピュータが示される。
【００３６】
図１に示されるマイクロコンピュータ１００は、特に制限されないが、公知の半導体集積回路製造技術により、単結晶シリコン基板などのひとつの半導体基板に形成される。マイクロコンピュータ１００は、データキャッシュメモリ１０１、命令キャッシュメモリ１０２、ＣＰＵコア１０３、イベントキャッシュメモリ（第２記憶部、E-Cache）１０４、周辺モジュール１０９，１１０、割り込みコントローラ（ＩＮＴＣ）１１１、ＲＡＭ（Random Access Memory）１１２、ＲＯＭ（Read Only Memory）１１３、外部バスインタフェース１１６を含む。イベントキャッシュメモリ１０４は、特に制限されないが連想メモリとされ、割り込みイベント・コードを検索キーとした連想アクセスにより割り込みベクタ等を高速に取得することができるようになっている。周辺モジュール１０９，１１０は、時間計測のためのタイマーユニットや、調歩同期式シリアル通信を可能とするシリアルコミュニケーションインタフェースなどとされるが、それに限定されるものではない。割り込みコントローラ１１１は、複数の割り込み要求を調停する機能を有し、周辺モジュール１０９，１１０からの割り込み及び外部割り込み端子からのＮＭＩ（Non-Maskable Interrupt）やＩＲＱ（Interrupt Request）をサポートする。ＲＡＭ１１２はランダムアクセス可能なメモリであり、ＲＯＭ１１３は読み出し専用メモリである。割り込みベクタ（割り込み要求イベントに対応する割り込み処理ルーチンの先頭アドレス）は、ＲＯＭ１１３又はＲＡＭ１１２のベクタテーブル領域に格納されている。データキャッシュメモリ１０１、命令キャッシュメモリ１０２、ＣＰＵコア１０３、及びイベントキャッシュメモリ１０４などのモジュールは、共有バス１０７に結合される。周辺モジュール１０９，１１０、割り込みコントローラ１１１、ＲＡＭ１１２、ＲＯＭ１１３は周辺バス１０８に結合される。周辺バス１０８は外部バスインタフェース１１６を介して外部バス（図示せず）に結合される。プログラムやデータは、共有バス１０７や周辺バス１０８を介してＲＯＭ１１３やＲＡＭ１１２又は外部バス上に配置された外部メモリからＣＰＵコア１０３に読み込まれるが、使用頻度の高いデータや命令については、データキャッシュメモリ１０１や命令キャッシュメモリ１０２の記憶情報が利用される。ＣＰＵコア１０３は、プログラムアダー（ＰＣＡ）１１、プログラムカウンタ（ＰＣ）１２、選択回路１３、イベントコードレジスタ（ＩＮＴＥＶＴ、イベント記憶部）１４を含む。上記プログラムカウンタ１２は、次に実行すべき命令の格納アドレスを保持しているレジスタとされる。ＣＰＵコア１０３は、プログラムカウンタ１２が指し示す命令をＲＯＭ１１３やＲＡＭ１１２又は外部バス上に配置された外部メモリから読み出して実行する。命令を読み出すと、上記プログラムアダー１１により自動的に次に実行すべき命令を指し示すようにインクリメントされる。上記選択回路１３は、上記プログラムアダー１１の出力とイベントキャッシュメモリ１０４から伝達された割り込みイベントのベクタとを選択的にプログラムカウンタ１２に供給する。上記イベントコードレジスタ１４は、割り込みコントローラ１１１からの割り込み要求がＣＰＵコア１０３によって受け付��られて確定された割り込みイベントを識別するコード情報（割り込みイベント・コード）を保持する。
【００３７】
上記イベントキャッシュメモリ１０４は、専有バス１０５及び共有バス１０７を介してＣＰＵコア１０３に結合され、エントリ情報（第２イベント情報）が格納される。
【００３８】
複数のモジュール間で共有される共有バス１０７は、ＣＰＵコア１０３によって管理されるアドレス空間からイベントキャッシュメモリ１０４に対して読み出し又は書き込みのためのアクセスを可能とする。例えば読み出しアクセスでは、イベントキャッシュメモリ１０４のエントリ情報（割り込みイベント・コード、割り込みベクタ、有効ビット等の第２イベント情報）が共有バス１０７を介してＣＰＵコア１０３に読み出される。また書き込みアクセスでは、イベントキャッシュメモリ１０４のエントリ情報（割り込みイベント・コード、割り込みベクタ、有効ビット等）が共有バス１０７を介してイベントキャッシュメモリ１０４に格納される。
【００３９】
専有バス１０５は、割り込みイベントが発生した時に、ＣＰＵコア１０３が当該イベントに対応する割り込みベクタを取得するための専用インタフェースとされる。この専有バス１０５は、ＣＰＵコア１０３とイベントキャッシュメモリ１０４との間での信号のやり取りのみに使用されるため、ＣＰＵ１０３によって管理されるアドレス空間から分離されている。特に制限されないが、専有バス１０５のインタフェースの構成要素として、割り込みイベントを識別する信号（割り込みイベント・コード）、割り込みベクタ信号（vector-address）、制御信号１（イベントキャッシュメモリ１０４に入力されるactive制御等）、制御信号２（イベントキャッシュメモリ１０４から出力されるenable制御等）を挙げることができる。
【００４０】
図７には、上記イベントキャッシュメモリ１０４の構成例が示される。
【００４１】
図７に示されるイベントキャッシュメモリ１０４は、４ウェイセットアソシアティブ方式とされ、１ウェイ当たり１キャッシュラインが設けられている。キャッシュラインは、有効ビット（Ｖ）及び割り込みイベント・コード（code）を保持するコードアレイ７１、割り込みベクタ（Vector address）を保持するアドレスアレイ７２を含む。さらに、上記コードが一致するか否かを判別するためのコード一致比較論理ブロック７３、および割り込みベクタを選択するためのアドレス選択論理ブロック７４が設けられる。共有バス１０７は、アドレスバス１０７Ａとデータバス１０７Ｂとを含み、このアドレスバス１０７Ａとデータバス１０７Ｂを介してコードアレイ７１及びアドレスアレイ７２の読み出しおよび書き込みが可能とされる。
【００４２】
有効ビット（Ｖ）は、イベントキャッシュメモリ１０４におけるキャッシュラインに格納されたデータの有効性を示す。例えば、このビットが論理値“１”の時、当該キャッシュラインのデータは有効とされ、論理値“０”の時、当該キャッシュラインのデータは無効とされる。尚、特に制限されないが、パワーオンリセット時には、無効に初期化される。
【００４３】
コードアレイ７１には、基本的に割り込みイベントコード（intevt-code）が格納される。ただし、コードの冗長ビットは削除可能である。実効ビット長は、ＣＰＵのシステムが実装する割り込み要求の総数（割り込み要因の本数ではない）を識別するのに必要十分なビット長とされる。
【００４４】
アドレスアレイ７２には、割り込みイベント・コードに対応した割り込みベクタ（vector-address）が格納される。ビット長は、特に制限されないが、基本的に３２ビット長とし、ＣＰＵコア１０３によって管理されるアドレス空間に依存して実効ビット長が確保可能とされる。尚、一般にベクタアドレスは偶数番地のみのため、最下位のビット０は常に論理値“０”とするか、またはそれ自体が存在しないようにしても良い。
【００４５】
コード一致判定論理ブロック７３は、ＣＰＵコア１０３が受け付けた割り込みイベント・コードとキャッシュラインのコード部（コードアレイ７１）に格納される割り込みイベント・コードを比較する。ＣＰＵコア１０３からの割り込みイベント・コードとコードアレイ７１に格納される割り込みイベント・コードが一致し、かつ、その当該キャッシュラインの有効ビット（Ｖ）が有効状態の場合、その当該キャッシュラインはキャッシュ・ヒットとされ、イネーブル信号（enable）がアサートされる。またキャッシュ・ヒットしたキャッシュラインのウェイを示すためのウェイ選択情報（way-select）が生成される。
【００４６】
アドレス選択論理ブロック７４は、コード一致判定論理ブロック７３からのウェイ選択情報（way-select）に基づいて、当該ウェイのアドレス部（アドレスアレイ７２）に格納されている割り込みベクタを選択し、それを専有バス１０５経由でＣＰＵコアの選択回路１３に送出する。
【００４７】
以上により、ＣＰＵコア１０３は、イベントキャッシュメモリ１０４を介して、受け付けた割り込みイベント・コードに対応した割り込みベクタを取得することが可能となる。
【００４８】
イベントキャッシュメモリ１０４における初期化および登録と一般的なキャッシュメモリにおける場合との主たる相違は次の通りである。
【００４９】
一般的なキャッシュメモリでは、ＣＰＵの命令処理でキャッシュ・ミスが発生するたびに、置換エントリの選択（例えば、ＬＲＵ；Least Recently Used）やデータ更新等のペナルティ処理をハードウェア的に逐次処理している。
【００５０】
これに対してイベントキャッシュメモリ１０４では、そのような動的な処理は不要とされ、基本的にソフトウェア処理によりデータの登録や置換が行われる。イベントキャッシュメモリ１０４は、基本的にシステムのパワーオンリセット等の初期化ルーチンにおいて、対象とする割り込みイベントの情報（割り込みイベント・コード、割り込みベクタ等）が登録されることで初期化される。またキャッシュミス時には従来の処理シーケンスを継続可能とされる。
【００５１】
この相違の事由として、割り込みベクタの挙動は、システムの開発時期に随時修正されるが、通常のシステム稼働中、基本的に割り込みベクタを修正することがないためである。つまり割り込みベクタは半固定の定数データとして扱うことができる。このため、通常動作時は、イベントキャッシュメモリ１０４の初期設定をそれ以降に変更する必要がほとんどない。尚、初期化時以外でイベントキャッシュメモリ１０４のエントリの置換または更新処理は、例えば、割り込み要求を禁止にした状態で実施することができる。
【００５２】
イベントキャッシュメモリ１０４におけるエントリの検索と一般的なキャッシュメモリにおける場合との主たる相違は次の通りである。
【００５３】
一般的なキャッシュメモリでは、メモリを参照する場合、これに先立って参照アドレスを導出、確定させるための前処理を必要とし、確定された参照アドレスを検索キーとしてエントリの検索が実行される。これに対して、イベントキャッシュメモリ１０４では、ＣＰＵコア１０３が割り込みイベントを識別する情報（割り込みイベント・コード、INTEVT）を確定させた時点（換言すれば割り込みを受け付けた時点）で、当該割り込みイベント・コードを検索キーとして、コードアレイ７１の検索が可能とされる。
【００５４】
またイベントキャッシュメモリ１０４におけるアクティブ制御（活性制御）と一般的なキャッシュメモリにおける制御との主たる相違は次の通りである。
【００５５】
一般的なキャッシュメモリでは、システム稼働中、メモリ参照がランダムに発生するために、常時、活性状態にするか、高度なアクティブ制御をする必要がある。これに対してイベントキャッシュメモリ１０４の活性状態は、割り込みイベント発生時に専有バス１０５を介してイベントキャッシュメモリ１０４をアクセスして割り込みベクタを取得する時、および共有バス１０７を介してイベントキャッシュメモリ１０４を書き込み又は読み出しのために参照する時に限ることができる。これ以外では、基本的に停止状態にできる。よってイベントキャッシュメモリ１０４の消費電力は、これらの動作状態に応じたアクティブ制御により、容易に抑止できる。例えば割り込みイベント発生時、ＣＰＵコア１０３からのアクティブ制御信号（active）により、イベントキャッシュメモリ１０４の活性状態を動的に制御する。割り込みイベント発生時、ＣＰＵコア１０３は割り込みイベントの確定に合わせて、アクティブ制御信号をアサートしてイベントキャッシュメモリ１０４を起動する。イベントキャッシュメモリ１０４から割り込みベクタを取得後には、アクティブ制御信号をネゲートしてイベントキャッシュメモリ１０４を停止させる。例えば共有バス１０７経由でイベントキャッシュメモリ１０４を参照する場合、特定の制御ビットを設ける事により、イベントキャッシュメモリ１０４の活性状態を静的に制御する。イベントキャッシュメモリ１０４を書き込み又は読み出し参照する場合、その制御ビットを有効状態にしてイベントキャッシュメモリ１０４を事前に活性状態にする。書き込み又は読み出し参照を完了した以降は、その制御ビットを無効状態してイベントキャッシュメモリ１０４を停止させる。
【００５６】
イベントキャッシュメモリ１０４へのデータ登録は以下のように行われる。
【００５７】
イベントキャッシュメモリ１０４のコードアレイ７１、アドレスアレイ７２等は、ＣＰＵコア１０３のデータ転送命令によるデータ登録または参照を可能にするために、システムのアドレス空間に割り付けられる。これを「イベントキャッシュメモリ１０４のメモリ割付け」と称する。また、そのアドレスを「メモリ割付けアドレス」と称する。ＣＰＵコア１０３のデータ転送命令には、アセンブリのニーモニック表記の場合、例えば、次の様な命令フォーマットの例が考えられる。尚、これは例示であり、これに限定されるものでは無い。
【００５８】
イベントキャッシュメモリ１０４にデータを登録する場合の命令フォーマットは、特に制限されないが、「ＭＯＶ.Ｌ  Ｒw、  ＠Ｒa」のようになる。この場合、「Ｒｗ」に格納されたデータを、「Ｒa」が指し示すイベントキャッシュメモリ１０４のメモリ割付けアドレスに書き込む。これにより、「Ｒｗ」の格納データは、当該イベントキャッシュメモリ１０４に書き込まれる。
【００５９】
イベントキャッシュメモリ１０４の内容を参照する命令フォーマットは、特に制限されないが、「ＭＯＶ.Ｌ  ＠Ｒa、  Ｒr」のようになる。この場合、「Ｒa」が指し示すイベントキャッシュメモリ１０４のメモリ割付けアドレスから読み出したデータが「Ｒr」に格納される。これにより、当該イベントキャッシュメモリ１０４の内容は「Ｒr」に読み出される。
【００６０】
ここで、「ＭＯＶ.Ｌ」は、アクセスサイズがロングワードのデータ転送命令の名称であり、「Ｒa」、「Ｒw」、「Ｒr」は、それぞれ汎用レジスタの名称である。尚、「Ｒa」をデータ転送命令のアドレス部、または単にアドレス部と称する。同様に、「Ｒw」、「Ｒr」をデータ転送命令のデータ部、または単にデータ部と称する。
【００６１】
上記データ転送命令におけるアドレス部及びデータ部には、各々、図８や図９に示されるようなフォーマット例が考えられる。尚、これは例示であり、これに限定されるものでは無い。
【００６２】
図８には、アドレスアレイに対するデータ転送命令のフォーマット例が示される。このフォーマット例では、アドレス部（Ｒa）には、イベントキャッシュメモリ１０４におけるアドレスアレイ７２のメモリ割付けアドレス（mapped-address）、ウェイ選択（Ｗ）が指定される。データ部（Ｒw／Ｒr）には、割り込みベクタ（vector-address）が割り当てられる。
【００６３】
図９には、コードアレイに対するデータ転送命令のフォーマット例が示される。このフォーマット例では、アドレス部（Ｒa）には、イベントキャッシュメモリ１０４におけるコードアレイ７１のメモリ割付けアドレス（mapped-address）、ウェイ選択（Ｗ）が指定される。データ部（Ｒw／Ｒr）には、有効ビット（Ｖ）、割り込みイベントコード（intevt-code）が割り当てられる。
【００６４】
次に、上記のように構成されたマイクロコンピュータ１００における割り込みイベント処理シーケンスの基本的な動作を説明する。
【００６５】
図４には、マイクロコンピュータ１００における主要部の動作タイミングが示される。尚、これは例示であり、これに限定されるものでは無い。
【００６６】
割り込みコントローラ１１１からＣＰＵコア１０３に対して割り込み要求がなされ（１２１）、それがＣＰＵコア１０３によって受け付けられると、例外・割り込み要求のアクノリッジ信号（ｉｎｔ＿ａｃｋ）がハイレベルにアサートされる。同時にＣＰＵコア１０３は、割り込みイベント・コード（１２２）をイベントコードレジスタ１４に確定させて、割り込みイベント処理シーケンスを起動する。このとき、制御信号１（active）がハイレベルにアサートされ、それに呼応してイベントキャッシュメモリ１０４が起動される（Ｔ１）。
【００６７】
マイクロコンピュータ１００のレジスタ退避（ＳＲ（ステータスレジスタ）やＰＣ（プログラムカウンタ）等の退避）と並行して、イベントキャッシュメモリ１０４は、割り込みイベント・コードの確定と同時に、当該コードを検索キーとして、イベントキャッシュメモリ１０４のエントリを検索する（Ｔ２）。検索キーに一致する有効なエントリが存在した場合（以下、「キャッシュ・ヒット」と称する）、イベントキャッシュメモリ１０４のキャッシュラインに格納されている当該割り込みベクタを専有バス１０５経由でＣＰＵコア１０３へ供給される。これに呼応して、制御信号２（enable）をアサートして、割り込みイベント・コードの検索キーがキャッシュ・ヒットしたことをＣＰＵコア１０３へ通知する。
【００６８】
ＣＰＵコア１０３は、制御信号２（enable）がアサートされた場合、レジスタ退避の完了に同期して、上記イベントキャッシュメモリ１０４からの当該割り込みベクタをプログラムカウンタ（ＰＣ）１２に設定する（Ｔ３）。これにより、ＣＰＵコア１０３は、当該割り込みイベント処理ルーチンの先頭命令のフェッチを行う。この先頭命令がフェッチされた後に選択回路１３の経路切り替えにより、プログラムアダー１１の出力が選択的にプログラムカウンタ１２に伝達される。この状態で、プログラムアダー１１によりプログラムカウンタ１２が更新されることで、当該割り込みイベント処理ルーチンの先頭命令に続く命令が順次フェッチされ、当該割り込みイベント処理ルーチンが実行される。
【００６９】
一方、検索キーに一致する有効なキャッシュ・エントリが存在しない場合（以下、「キャッシュ・ミス」と称する）、制御信号２（enable）はネゲート状態とされ、ＣＰＵコア１０３は、そのまま従来と同様の割り込みイベント処理シーケンスを継続実行する。すなわち、割り込みイベント・コードからベクタテーブルの参照アドレスを導出し、そのアドレスに基づいて、共有バス１０７及び周辺バス１０８を介してＲＯＭ１１３等にアクセスして当該割り込みベクタを取得する。そして取得した当該割り込みベクタをプログラムカウンタ（ＰＣ）に設定することで、ＣＰＵコア１０３は当該割り込みイベント処理ルーチンの先頭命令のフェッチを開始する。
【００７０】
また、ＣＰＵコア１０３は、割り込みベクタを取得した以降、制御信号１（active）をネゲートして、イベントキャッシュメモリ１０４の動作を停止することができる。それによって低消費電力化を実現することができる。
【００７１】
図２には、図１に示されるマイクロコンピュータ１００の比較対象とされるマイクロコンピュータ２００が示される。また、図３には、図２に示されるマイクロコンピュータ２００における割り込みイベント処理シーケンスが示される。
【００７２】
図２に示されるマイクロコンピュータ２００が図１に示されるマイクロコンピュータ１００と大きく相違するのは、イベントキャッシュメモリ１０４が設けられていない点である。
【００７３】
割り込みイベントが発生した場合、ＣＰＵコア２０３は、割り込みイベント受け付けると同時に、割り込みイベントを識別する情報（割り込みイベント・コード）を割り込みイベントコードレジスタ（ＩＮＴＥＶＴ）１４に確定させ、割り込みイベント処理シーケンスを起動する。ＣＰＵコア２０３は、レジスタの退避（スタック退避）、および割り込みイベント・コードから、ＲＯＭ１１３内のベクタテーブルの参照アドレスを導出し、そのアドレスに基づいて、共有バス１０７及び周辺バス１０７を介してＲＯＭ１１３をアクセスすることにより当該割り込みベクタを取得する（１２３）。取得した当該割り込みベクタをプログラムカウンタ（ＰＣ）１２に設定することで、ＣＰＵコア２０３は当該割り込みイベント処理ルーチンの先頭命令のフェッチを開始する。このように図２に示される構成によれば、共有バス１０７や周辺バス１０８を介してデータ転送を処理するために、バスのトラフィックやバス仕様（バス幅、バスクロック周波数、バスプロトコル）等に影響され、割り込みイベント処理シーケンスの実行ステート数が変動する。つまり割り込みレスポンス時間は、これら要因のために変動する。
【００７４】
尚、図３において、（１）は命令のプリフェッチアドレス、（２），（４）は命令コード、（３）は命令のプリフェッチアドレス、（５）はＳＰ−２、（７）はＳＰ−４、（６），（８）は退避ＰＣと退避ＣＣＲ、（９），（１１）はベクタアドレス、（１０），（１２），（１３）割り込み処理ルーチン開始アドレス、（１４）は割り込み処理ルーチン先頭命令である。
【００７５】
これに対して図１に示される構成によれば、イベントキャッシュメモリ１０４が設けられ、割り込みイベント・コードの確定と同時に、当該イベント・コードを検索キーとして、イベントキャッシュメモリ１０４のエントリが検索される。そして上記検索キーに一致する有効なエントリが存在した場合に、当該キャッシュメモリ１０４のキャッシュラインに格納されている当該割り込みベクタを専有バス１０５経由でＣＰＵコア１０３へ供給することができる。このようにＣＰＵコア１０３は、割り込みイベント・コードをイベントキャッシュメモリ１０４でエントリ検索する事により、専有バス１０５経由で直接に割り込みベクタを得ることができるので、図２に示されるマイクロコンピュータ２００に比べて割り込みベクタを短時間で得ることができる。
【００７６】
例えば図６に示されるように、マイクロコンピュータ２００の場合には割り込みベクタを取得するためのメモリ上のベクタテーブルにバス・アクセスを必要とするのに対して、マイクロコンピュータ１００の場合はそのようなバス・アクセスが無くなるため、マイクロコンピュータ２００の場合のベクタフェッチの所要時間に比べて、マイクロコンピュータ１００の場合のベクタフェッチの所要時間が大幅に短縮される。またマイクロコンピュータ１００の場合、ベクタフェッチ時には専有バス１０５を経由することで、上記共有バスの動作状態、さらに従来キャッシュメモリのペナルティ処理等を要因とするベクタフェッチの実行ステート数の変動が解消される。これにより、割込み要求が受け付けられてからの割り込みレスポンスは、高速化と同時に恒常的な応答性が達成される。この様に、マイクロコンピュータ１００のベクタフェッチの実行ステート数は、マイクロコンピュータ２００の場合と相違して、恒常的な応答性を実現される特徴を有する。
【００７７】
実施の形態１によれば以下の作用効果が得られる。
【００７８】
（１）イベントキャッシュメモリ１０４が設けられ、割り込みイベント・コードの確定と同時に、当該コードを検索キーとして、イベントキャッシュメモリ１０４のエントリが検索され、検索キーに一致する有効なエントリが存在した場合に、当該キャッシュ１０４のキャッシュラインに格納されている当該割り込みベクタを専有バス１０５経由でＣＰＵコア１０３へ供給することができる。このようにハンドラーを経由しないでハードウェアによって割り込みベクタを得ることができるので、割り込みベクタを短時間、および定常的な実行ステート数で得ることができる。
【００７９】
（２）特許文献１では、検出したい割り込み要因を予め割り込みフラグパターンレジスタに設定しておくことで、入力された割り込みフラグの値に対し、前記設定した分の割り込み要因を検出し、割り込み判定処理を行い、その割り込み要因に該当するベクタ番号を出力するようにしている。ここで出力されるベクタ番号は、割り込みベクタとは異なるため、上記ベクタ番号に基づいてさらに割り込みベクタを求める必要がある。これに対して実施の形態１によれば、イベントキャッシュメモリ１０４のエントリが検索され、検索キーに一致する有効なエントリが存在した場合に、当該キャッシュメモリ１０４のキャッシュラインに格納されている当該割り込みベクタを専有バス１０５経由でＣＰＵコア１０３へ供給し、それをプログラムカウンタ１２に設定することができるので、高速処理が期待できる。
【００８０】
（３）特許文献２に記載された技術によれば、マイクロプロセッサ内のデータ入力部に共通バスを介してデータを供給するようにしているため、そこにはセレクタ等の周辺回路を設ける必要があるが、実施の形態１によれば、ＣＰＵコア１０３とイベントキャッシュメモリ１０４とが専有バス１０５によって結合されているため、上記セレクタ等の周辺回路は不要である。
【００８１】
（４）ソフトウェア割り込み命令の引数をイベントキャッシュメモリ１０４の検索キーとすることで、ソフトウェア割り込みにおいても、以下のように同様の作用効果を得ることができる。
【００８２】
図５（Ａ）には、ハードウェア割り込み処理の流れが示され、図５（Ｂ）にはソフトウェア割り込み処理の流れが示される。
【００８３】
ソフトウェア割り込みとハードウェア割り込みの基本的な相違は、割り込みを要求する手段と、その割り込みイベントを識別する方法であり、割り込みイベント処理シーケンス自体は、図５（Ａ），（Ｂ）に示されるように、ほぼ同様な処理シーケンスである。
【００８４】
ソフトウェア割り込みイベントは、プログラムＢ中に明示されるソフトウェア割り込み命令（図中"ＴＲＡＰ  #ｉｍｍ"の命令）を実行して、発生させる。ソフトウェア割り込み命令の引数（図中"#imm"）が当該ソフトウェア割り込みイベントの識別コードを示す。ソフトウェア割り込みイベント処理シーケンスでは、この引数で与えられた識別コードをもとにしてベクタテーブルＢを参照し、当該割り込みベクタを取得した後、当該割り込み処理ルーチンに分岐する。図５（Ａ）では、ハードウェア処理中に、非ＣＰＵアドレス空間に割り当てられたイベントキャッシュメモリＥ−ｃａｃｈｅを利用して、ＳＲ（ステータスレジスタ）／ＰＣ（プログラムカウンタ）の待避中に割り込み処理用のベクタを取得可能であり、このような並列動作によって、割り込みルーチン分岐までの時短効果を得ることができる。
【００８５】
以上の類似点によりソフトウェア割り込み命令の引数（「#imm」）をイベントキャッシュメモリ１０４の検索キーとすることで、ソフトウェア割り込みにも適用できる。これにより、図５（Ａ）のハードウェア割り込み処理における並列化した割り込みイベント処理シーケンスは、図５（Ｂ）においても実行可能であり、ソフトウェア割り込みイベント処理シーケンスにおいても、上記ハードウェア割り込みの場合と同様の作用効果を得ることができる。
【００８６】
（５）以上「割り込み処理」に注目して説明したが、それに限定されるものではなく、「例外処理」の場合にも、上記（１）乃至（４）の作用効果を得ることができる。例えばＲＯＭ１１３には、例外又は割り込みの処理ルーチンの先頭アドレスを導出（出力、供給）可能なベクタテーブルが形成され、イベントキャッシュメモリ１０４には、例外又は割り込みの処理ルーチンの先頭アドレス情報が格納される。ＣＰＵコア１０３は、例外又は割り込みのイベントが発生された場合、上記ＲＯＭ１１３の参照アドレス導出に並行して上記専有バス１０５を介して上記イベントキャッシュメモリ１０４にアクセスする。そして、上記例外又は割り込みのイベントに対応する例外又は割り込みの処理ルーチンの先頭アドレス情報が上記イベントキャッシュメモリ１０４内に存在する場合には、上記ＲＯＭ１１３内のベクタテーブルからの先頭アドレス取得に代えて、上記イベントキャッシュメモリ１０４内の先頭アドレス情報が上記専有バス１０５経由でＣＰＵコア１０３に伝達される。これにより、例外又は割り込みのイベントが発生された場合に、ベクタテーブルの参照やハンドラーを経由しないで、ハードウェアによって上記先頭アドレス情報を得ることができる。
【００８７】
＜実施の形態２＞
図１０には、本発明にかかるマイクロコンピュータ１００におけるイベントキャッシュメモリ１０４の別の構成例が示される。
【００８８】
図１０に示される構成が図７に示されるのと大きく異なるのは、アドレスアレイ７２に、割り込みベクタのオフセットアドレス（offset-address）を格納する点である。
【００８９】
この構成では、キャッシュラインのアドレスアレイ７２には、例外又は割り込みイベント処理ルーチンのオフセットアドレス（offset-address）が格納され、このオフセットアドレスがアドレス選択論理ブロック７４を介してＣＰＵコア１０３に伝達される。実効的な割り込みベクタは、上記オフセットアドレスにベースアドレスレジスタ（ＶＢＲ）１６に格納される例外又は割り込み処理ルーチンのベースアドレスを加算した値になる。このため、図１０に示される構成を採用する場合、ＣＰＵコア１０３には、例外又は割り込み処理ルーチンのベースアドレス（ＶＢＲ）を保持するベクタルーチンベースレジスタ１６と、このベクタルーチンベースレジスタ１６に保持されている例外又は割り込み処理ルーチンのベースアドレス（ＶＢＲ）をアドレス選択論理ブロック７４の出力に加算するための加算器１５とが設けられる。上記加算器１５の出力が選択回路１３に伝達される。
【００９０】
このようにアドレスアレイ７２に、割り込みベクタのオフセットアドレス（offset-address）を格納するようにしても、上記オフセットアドレスに例外又は割り込み処理ルーチンのベースアドレス（ＶＢＲ）を加算することにより、上記実施の形態１の場合と同様の作用効果を得ることができる。
【００９１】
また、アドレスアレイ７２の属性として、ベクタアドレス及びオフセットアドレスの双方を採用することができる。例えばアドレスアレイ７２にベクタアドレスが格納される場合、ベクタルーチンベースレジスタ１６における例外又は割り込み処理ルーチンのベースアドレス（ＶＢＲ）の値を“０”にすればよい。“０”を加算しても加算結果に影響しないので、ベクタアドレスが変更されることはない。
【００９２】
さらに、特定の制御ビットを設けることで、イベントキャッシュメモリ１０４におけるアドレスアレイのアドレス属性を指定するようにしてもよい。例えばキャッシュラインのおのおのに制御ビットを設け、この制御ビットの状態によって、アドレスアレイ７２の属性を個々に識別し、ベースレジスタ（ＶＢＲ）の加算の有無を選択することができる。
【００９３】
＜実施の形態３＞
図１１には、本発明にかかるマイクロコンピュータ１００におけるイベントキャッシュメモリ１０４の別の構成例が示される。
【００９４】
図１１に示される構成が図７に示されるのと大きく異なるのは、１ウェイが複数のキャッシュラインから構成されている点である。この場合、割り込みイベント・コードはタグ（tag）とエントリ（entry）に意味づけされる要素で構成される。
【００９５】
割り込みイベントが発生したとき、ＣＰＵコア１０３が受け付けた割り込みイベント・コードが格納される割り込みイベントコードレジスタ１４のエントリ（entry）情報は、イベントキャッシュメモリ１０４のキャッシュラインを選択するために使用される。また同レジスタ１４のタグ（tag）情報は、キャッシュラインのコード部（コードアレイ７１）に格納されたタグ（tag）情報と一致比較するために使用される。コード一致比較論理ブロック７３では、割り込みイベントコードレジスタ１４のタグ情報と同レジスタ１４のエントリ情報で選択されたコードアレイ７１のタグ情報との比較が行われ、この比較結果に基づいて、ウェイを選択するためのウェイ選択情報（way-select）等が生成される。
【００９６】
このように構成しても、図７に示されるのと同様の作用効果を得ることができる。
【００９７】
イベントキャッシュメモリ１０４へのデータ登録はデータ転送命令によって行われる。
【００９８】
図１２には、図１１の構成を採用する場合のアドレスアレイに対するデータ転送命令のフォーマット例が示される。このフォーマット例では、転送命令のアドレス部（Ｒa）には、イベントキャッシュメモリ１０４におけるアドレスアレイのメモリ割付けアドレス（mapped-address）、ウェイ選択（Ｗ）、エントリ選択（entry）が割り当てられる。転送命令のデータ部（Ｒw／Ｒr）には、割り込みベクタ（vector-address）が割り当てられる。
【００９９】
図１３には、図１０の構成を採用する場合のコードアレイに対するデータ転送命令のフォーマット例が示される。このフォーマット例では、アドレス部（Ｒa）には、イベントキャッシュメモリ１０４におけるコードアレイのメモリ割付けアドレス（mapped-address）、ウェイ選択（Ｗ）,エントリ選択（entry）が割り当てられる。データ部（Ｒw／Ｒr）には、有効ビット（Ｖ）、タグ（tag）が割り当てられる。
【０１００】
＜実施の形態４＞
図１４には、本発明にかかるマイクロコンピュータ１００におけるイベントキャッシュメモリ１０４の別の構成例が示される。
【０１０１】
図１４に示される構成が図１１に示されるのと大きく異なるのは、コマンドアレイ７５およびアドレスアレイ７２にアドレス有効ビット（Ｖａ）が付加されている点である。
【０１０２】
コマンドアレイ７５には、キャッシュラインのアドレスアレイ７２に格納されている割り込みベクタを起点とする割り込み処理ルーチンの先頭命令列が格納される。コマンドアレイ７５のラインサイズは、基本的に任意であるが、従来のキャッシュメモリと同じラインサイズ、またはその整数倍で構成するのが好適と考えられる。また、割り込みベクタのアドレスは基本的に任意であるが、通常、コマンドアレイ７５のラインサイズを境界とするアドレスに配置するのが好適と考えられる。例えば、ラインサイズが３２バイトならば、３２バイト境界のアドレスに割り込みベクタが配置される。さらに、コマンドアレイ７５の出力は、コマンド選択論理ブロック７６、コマンド有効ビット選択論理ブロック７７、プリフェッチ制御ビット選択論理ブロック７８を介して選択的にＣＰＵコア１０３に伝達されるようになっている。アドレスアレイ７２の出力は、アドレス選択論理ブロック７４、アドレス有効ビット選択論理ブロック７９を介して選択的にＣＰＵコア１０３に伝達されるようになっている。
【０１０３】
ここで、命令列（または命令データ列）の先頭は、命令コードであり、それ以降には、先頭の命令コード以降に実行される命令コードや命令コードで参照されるオペランドデータが含まれる。ここで、コード一致判定論理ブロック７３において、割り込みイベントコードレジスタ１４のタグ情報とコードアレイ７１のタグ情報との比較が行われ、その結果に応じて、コマンド選択論理ブロック７６はコマンドアレイ７５から一つの命令列を選択する。更に、コマンド有効ビット選択論理ブロック７７は、アドレスアレイ７２に対応して格納される複数のコマンド有効ビット（Ｖｃ）の中から、一つのコマンド有効ビットを選択する。更に、プリフェッチ制御ビット選択論理ブロック７８は、アドレスアレイ７２に対応して格納される複数のプリフェッチ制御ビット（Ｆ）の中から、一つのプロフェッチ制御ビットを選択する。またアドレス選択論理ブロック７４は、アドレスアレイ７２から一つの割り込みベクタを選択する。アドレス有効ビット選択論理ブロック７９は、アドレスアレイ７２に対応して格納される複数のアドレス有効ビット（Ｖａ）の中から、一つのアドレス有効ビットを選択する。これら選択された、コマンドアレイ、コマンド有効ビット（Ｖｃ）、プリフェッチ制御ビット（Ｆ）、アドレスアレイ、アドレス有効ビット（Ｖａ）は、専有バス１０５を介してＣＰＵコア１０３へ供給される。
【０１０４】
図１４に示される構成例によれば、例えば特定の制御ビットを配置することで、コマンドアレイ７５におけるコマンドキャッシュライン（コマンドアレイの命令列）の有効性を一元的に管理することができる。上記コマンドアレイ７５内には、コマンドデータに加え、上記特定の制御ビットとしてキャッシュラインの各々に設けたコマンド有効ビット（Ｖｃ）によって、コマンドアレイ７５のキャッシュラインの有効／無効を示すことができる。さらに、上記コマンドアレイ７５内には、上記従来のキャッシュメモリ（イベントキャッシュメモリとは別のキャッシュメモリ）に対するプリフェッチを要求するプリフェッチ制御ビット（Ｆ）を設けることができる。さらに、上記アドレスアレイ７２には、特定の制御ビットとしてキャッシュラインの各々にアドレス有効ビット（Ｖａ）を設けることができる。アドレス有効ビットは、アドレスアレイ選択論理ブロック７４によって選択されたアドレスアレイの内容をプログラムカウンタ１２に設定するか否かを示す。通常、アドレス有効ビットは有効状態に設定され、選択されたアドレスアレイの内容をプログラムカウンタ１２に設定する事を示す。
【０１０５】
図１４に示される構成の基本的な動作は以下の通りである。
【０１０６】
イベントキャッシュメモリ１０４は、イベントコードレジスタ（ＩＮＴＥＶＴ）１４に格納された割り込みイベント・コードを検索キーとして検索を実行する。コード一致判定論理ブロック７３において、キャッシュ・ヒットする有効なエントリがあれば、当該エントリのキャッシュ・ヒット情報、割り込みベクタ、アドレス有効ビット（Ｖａ）、コマンドアレイ７５のデータ、コマンドアレイのコマンド有効ビット（Ｖｃ）、およびプリフェッチ制御ビット（Ｆ）が専有バス１０５経由でＣＰＵコア１０３へ供給される。ＣＰＵコア１０３は、コマンドアレイ７５のコマンド有効ビット（Vｃ）が有効状態、かつアドレスアレイ７２のアドレス有効ビット（Ｖａ）が有効状態にされている場合、選択された割り込みベクタをプログラムカウンタ１２に設定されるとともに、この選択されたコマンドアレイ７５の命令列、つまり例外又は割り込みイベント処理ルーチンが実行される。
【０１０７】
かかる構成によれば、キャッシュ・ヒットする有効なエントリがあれば、当該エントリのキャッシュ・ヒット情報、割り込みベクタ、アドレス有効ビット（Ｖａ）コマンドアレイ７５の命令列、コマンドアレイのコマンド有効ビット（Vｃ）およびプリフェッチ制御ビット（Ｆ）が専有バス１０５経由でＣＰＵコア１０３へ供給されるため、その時点で、例外又は割り込み処理ルーチンの先頭命令が既に得られている。このため、そのような先頭命令をフェッチするためのＲＯＭ１１３等のアクセスは不要になるので、その分、割り込みイベント処理シーケンスに続く割り込み処理ルーチンの初動を高速化できる。またキャッシュ・ヒット時、コマンド有効ビット（Ｖｃ）が無効状態、かつアドレス有効ビット（Ｖａ）が有効状態にされている場合、対応する命令列が無効とされるため、選択されたアドレスアレイ７２のアドレスがプログラムカウンタ１２に設定され、当該アドレスで参照されるＲＯＭ１１３等からフェッチされる命令が実行される。
【０１０８】
なお、コマンド有効ビット（Ｖｃ）、アドレス有効ビット（Ｖａ）が伴に無効状態の場合は、当該エントリ自体を無効として扱うか、禁止される。
【０１０９】
コマンド有効ビット（Ｖｃ）が有効状態、かつアドレス有効ビット（Ｖａ）が無効状態の場合については、後の実施の形態９において詳細する。
【０１１０】
またキャッシュ・ヒット時、当該キャッシュラインのプリフェッチ制御ビット（Ｆ）が有効である場合、イベントキャッシュメモリ１０４から従来のキャッシュメモリ１０２（図示しない）に対して、当該キャッシュラインに継続する次の命令列（起点のアドレス値＝当該割込みベクタ＋キャッシュライン長）のプリフェッチを要求する。上記従来のキャッシュメモリは、一般的にＣＰＵに搭載されるキャッシュメモリを構成しており、命令、データ等を格納するように構成され、上記イベントキャッシュメモリとは別に用意される。ＣＰＵが、専有バスを介して当該キャッシュラインのコマンドアレイの内容を処理するのと並行して、従来のキャッシュメモリは共有バスを介して、このプリフェッチ要求を処理する。この結果、イベントキャッシュメモリ１０４と従来のキャッシュメモリは、互いに連携しながら並行動作ができるため、ＣＰＵは、イベントキャッシュメモリ１０４から従来のキャッシュメモリに掛かるＣＰＵコアのパイプライン処理等を停止される事無く、連続的に実行することが可能となる。
【０１１１】
また、図１４は全ての構成要件を含むだけでなく、例えば、イベントキャッシュメモリ１０４に、コマンド有効ビット（Ｖｃ）を含み、プリフェッチ制御ビット（Ｆ）及びプリフェッチ制御ビット選択論理ブロック７８と、を含まない場合もある。この場合、イベントキャッシュメモリ１０４は常に次の命令列のプリフェッチを要求する構成となる。コード一致判定論理ブロック７３の判定結果に応じて、アドレス選択論理ブロック７４、コマンド選択論理ブロック７６、コマンド有効ビット選択論理ブロック７７、アドレス有効ビット選択論理ブロック７９は、それぞれ対応するビットを選択する。選択されたビットの出力は、専用バス経由でＣＰＵコアに伝達される。プリフェッチを固定的に要求する構成とすることで、プリフェッチの機能を実現しながら、イベントキャッシュメモリ１０４をより小さい構成要件で実現することが可能となる。
【０１１２】
また、例えば、イベントキャッシュメモリ１０４に、コマンド有効ビット（Ｖｃ）及びコマンド有効ビット選択論理ブロック７７が含まれない場合もある。この場合、イベントキャッシュメモリ１０４は、常にコマンドアレイを有効状態とする構成となる。コード一致判定論理ブロック７３の判定結果に応じて、アドレス選択論理ブロック７４、コマンド選択論理ブロック７６、プリフェッチ制御ビット選択論理ブロック７８、アドレス有効ビット選択論理ブロック７９とは、それぞれ対応するビットを選択する。選択されたビットの出力は、専用バス経由でＣＰＵコアに伝達される。また、イベントキャッシュメモリ１０４の有効ビット（Ｖ）をコマンド有効ビット（Ｖｃ）の代わりとして利用することも可能である。この場合、有効ビット（Ｖ）が有効である場合、対応するコマンドアレイは有効と判断され、コマンド選択論理ブロック７６で該当するコマンドアレイが選択される。選択コマンド有効ビット（Ｖｃ）を含まない場合、または、有効ビット（Ｖ）を代替する場合には、コマンド有効ビットの機能を実現しながら、イベントキャッシュメモリ１０４をより少ないビット数、且つ少ない構成要件で実現することが可能となる。
【０１１３】
また、例えば、イベントキャッシュメモリ１０４に、アドレス有効ビット（Ｖa）、アドレス有効ビット選択論理ブロック７９が含まれない場合もある。この場合、イベントキャッシュメモリ１０４は、常にアドレスアレイ７２を有効状態とする構成になる。コード一致判定論理ブロック７３の判定結果に応じて、アドレス選択論理ブロック７４、コマンド選択論理ブロック７６、コマンド有効ビット選択論理ブロック７７、プリフェッチ制御ビット選択論理ブロック７８は、それぞれ対応するビットを選択する。選択されたビットの出力は、専用バス経由でＣＰＵコアに伝達される。
【０１１４】
尚、構成要件は、本要旨を逸脱しない範囲において種々変更、削減することを可能とする。
【０１１５】
図１５には、図１４の構成を採用する場合のアドレスアレイに対するデータ転送命令のフォーマット例が示される。
【０１１６】
アドレス部（Ｒa）には、イベントキャッシュメモリ１０４におけるアドレスアレイ７２のメモリ割付けアドレス（mapped-address）、ウェイ選択（Ｗ）、エントリ選択（entry）が割り当てられる。データ部（Ｒw／Ｒr）には、アドレス有効ビット（Ｖａ）、割り込みベクタ（vector-address）が割り当てられる。
【０１１７】
図１６には、図１４の構成を採用する場合のコードアレイ７１に対するデータ転送命令のフォーマット例が示される。このフォーマット例では、アドレス部（Ｒa）には、E-Cacheコードアレイのメモリ割付けアドレス（mapped-address）、ウェイ選択（Ｗ）、エントリ選択（entry）が割り当てられる。データ部（Ｒw／Ｒr）には、有効ビット（Ｖ）、タグ（tag）、コマンド有効ビット（Ｖｃ）およびプリフェッチ制御ビット（Ｆ）が割り当てられる。
【０１１８】
図１７には、図１４に示される構成を採用する場合のコマンドアレイ７５に対するデータ転送命令のフォーマット例が示される。このフォーマット例では、アドレス部（Ｒa）には、E-Cacheコードアレイのメモリ割付けアドレス（mapped-address）、ウェイ選択（Ｗ）、エントリ選択（entry）、ロングワード選択（Ｌ）が割り当てられる。データ部（Ｒw／Ｒr）には、ロングワードデータ（ＬＷ）が割り当てられる。
【０１１９】
＜実施の形態５＞
図１８には、本発明にかかるマイクロコンピュータ１００におけるイベントキャッシュメモリ１０４の別の構成例が示される。
【０１２０】
図１８に示される構成が図７に示されるのと大きく異なるのは、ダイレクトマッピングによって構成される点である。
【０１２１】
図１８に示される構成では、例外又は割り込みイベント・コード（ＩＮＴＥＶＴ１４）によってアドレスアレイ７２内のベクタアドレスを選択可能とされる。つまり、割り込みイベント・コードをイベントキャッシュメモリ１０４におけるアドレスアレイ７２の参照アドレスと見なすことで、直接的にアドレスアレイ７２を選択し、当該割り込みベクタを取得する。割り込みイベントの発生時、イベントキャッシュメモリ１０４は、アドレスアレイ７２に格納された当該割り込みベクタ（vector address）、及び有効ビット（Ｖ）をＣＰＵコア１０３へ供給する。ＣＰＵコア１０３は、有効ビット（Ｖ）がアサートされている場合、適時に当該割り込みベクタをプログラムカウンタ（ＰＣ）１２へ設定する。
【０１２２】
このようにイベントキャッシュメモリ１０４がダイレクトマッピングによって形成される場合においても、上記の実施の形態の場合と同様の作用効果を得ることができる。図１８に示される構成は、エントリの数が少ない小規模システムの場合、割り込みコードを連続的に割り当てしているシステムの場合等に好適と考えられる。
【０１２３】
＜実施の形態６＞
図１９には、本発明にかかるマイクロコンピュータ１００におけるイベントキャッシュメモリ１０４の別の構成例が示される。
【０１２４】
図１９に示される構成が図７に示されるのと大きく異なるのは、割り込みイベントを属性毎に分化して、イベントキャッシュメモリ１０４を構築した点である。
【０１２５】
すなわち、図１９におけるイベントキャッシュ１０４は、第１イベントキャッシュメモリ１０４−１、第２イベントキャッシュメモリ１０４−２、第３イベントキャッシュ１０４−３を含む。第１イベントキャッシュメモリ１０４−１は、例外イベント・コードに対応した例外処理ルーチンの先頭アドレスを出力する。第２イベントキャッシュメモリ１０４−２は、割り込みイベント・コードに対応した割り込み処理ルーチンの先頭アドレスを出力する。第３イベントキャッシュメモリ１０４−３は、ソフトウェア割り込みイベント・コードに対応した割り込み処理ルーチンの先頭アドレスを出力する。
【０１２６】
尚、上記１イベントキャッシュメモリ１０４−１、第２イベントキャッシュメモリ１０４−２、第３イベントキャッシュメモリ１０４−３は、実施の形態１〜５、ならびに実施の形態９におけるイベントキャッシュ１０４と同様に構成することができる。
【０１２７】
ＣＰＵコア１０３は、上記第１イベントキャッシュメモリ１０４−１、第２イベントキャッシュメモリ１０４−２、第３イベントキャッシュメモリ１０４−３に対応して、第１イベントコードレジスタ（EXPEVT）１４−１、第２イベントコードレジスタ（ＩＮＴＥＶＴ）１４−２、第３イベントコードレジスタ（ＴＲＰＥＶＴ）１４−３が配置される。上記イベントコードレジスタ１４−１は、ＣＰＵコア１０３が受け付けた例外イベント・コードを保持する。上記イベントコードレジスタ１４−２は、ＣＰＵが受け付けた割り込みイベント・コードを保持する。上記イベントコードレジスタ１４−３は、ＣＰＵが処理するソフトウェア割り込みイベント・コードを保持する。
【０１２８】
上記イベントコードレジスタ１４−１の出力及び第１制御信号（active1）は、上記第１イベントキャッシュメモリ１０４−１に入力される。上記イベントコードレジスタ１４−２の出力及び第２制御信号（active2）は、上記第２イベントキャッシュメモリ１０４−２に入力される。上記イベントコードレジスタ１４−３の出力及び第３制御信号（active3）は、上記第３イベントキャッシュメモリ１０４−３に入力される。
【０１２９】
上記のように、割り込みイベントの属性毎に割り込みイベントコードレジスタ、イベントキャッシュメモリ１０４が構築される。高機能化・多機能化するマイクロコンピュータでは、イベント数が増加する傾向にあるために、割り込みイベントの属性毎に割り込みイベントコードレジスタ、イベントキャッシュメモリ１０４を構築したほうが良いと考えられる場合がある。特に、第３イベントキャッシュメモリ１０４−３を他のイベントキャッシュメモリから分離した構成は、ソフトウェア割り込み命令がオペレーティング・システムのシステムコールに使用されるので、当該サービスルーチンへの直接遷移が可能となり、システムパフォーマンスの向上を図ることができる。また各イベントに分化することで、それぞれのイベント毎にイベント・コードの増減や変更を容易にできる様になるために、イベントキャッシュメモリの利便性が向上する。
【０１３０】
尚、このようにイベントキャッシュメモリ、イベントコードレジスタの対について、イベント属性による分化の組み合わせや、増減の構成は、マイクロコンピュータの仕様において適宜に変更することができる。
【０１３１】
複数のイベントが同時に発生する場合、ＣＰＵコアは、例えば、イベント間の優先判定論理ブロックを設ける事により、各イベントキャッシュメモリからの出力を択一的に選択する機能を有する。
【０１３２】
＜実施の形態７＞
図２０には、本発明にかかるマイクロコンピュータ１００におけるイベントキャッシュメモリ１０４の別の構成例が示される。
【０１３３】
図２０に示される構成が図７に示されるのと大きく異なるのは、複数の外部周辺機器の割り込み要因に対応させた点である。
【０１３４】
第１イベントキャッシュメモリ（E-Cache）１０４−１と、第２イベントキャッシュメモリ（E-Cache2）１０４−２とを含んでイベントキャッシュメモリ１０４を形成する。それに対応して、ＣＰＵコア１０３には、第１イベントコードレジスタ（INTEVT）１４−１、第２イベントコードレジスタ（INTEVT2）１４−２が配置される。第１イベントコードレジスタ（INTEVT）１４−１は、ＣＰＵコア１０３によって受け付けられた例外又は割り込み処理のイベント・コードを保持する。これは、図１におけるイベントキャッシュメモリ１０４と同じである。一方、第２イベントコードレジスタ（INTEVT2）１４−２には、割り込みイベントの要因解析コードが保持される。マイクロコンピュータ１００の外部には、外部割り込みコントローラ２０１が配置される。この外部割り込みコントローラ２０１は、外部周辺機器で発生する複数の割り込み要求を制御する。
【０１３５】
一般的に、ひとつの割り込み要求には、複数の割り込み要因が割り当てられる場合が多い。例えば、外部端子数が少ないマイクロコンピュータと複数の外部周辺機器を備えるシステムでは、外部割り込み要求の入力端子数に比べて外部周辺機器からの割り込み要求数が多くなり、１対１の割り当てが困難になる場合がある。この場合の一般的な割り込み処理では、割り込み処理ルーチンにおいて、各割り込み要因フラグを比較演算で識別し、その要因に対応する割り込みベクタを取得し、その後、当該割り込み要因の処理ルーチンに分岐する。このため、各割り込み要因の応答時間は、割り込み要因フラグの比較演算に掛かる実行ステート数に依存して増加する。
【０１３６】
これに対して図２０に示される構成によれば、外部周辺機器で発生する複数の割り込み要求を識別する信号（ＥＸ−ＩＮＴＥＶＴ）の値が特定のレジスタ（ＩＮＴＥＶＴ２）へソフトウェア的に書き込まれ、その１ステート後には、第２イベントコードレジスタ（ＩＮＴＥＶＴ２）１４−２から該当する割り込みベクタを取得できる。ＥＸ−ＩＮＴＥＶＴの読み込みは、外部バスインタフェース１１６又は特定の入力ポートを経由して行うことができる。
【０１３７】
＜実施の形態８＞
図１４に示される構成に基づいた、別の実施の形態を説明する。
【０１３８】
実施の形態４においては、図１４における割り込みイベント・コードを検索キーとして、イベントキャッシュメモリ１０４から当該イベント・コードに対応した割り込み処理ルーチンの割り込みベクタと命令列を取得する例を示したが、割り込み処理ルーチンに代えて、分岐命令における分岐イベント処理シーケンスを実施するようにしても良い。このとき、引数で与えられた分岐先イベントを識別される分岐先イベント・コードを検索キーとして、イベントキャッシュメモリ１０４から当該イベント・コードに対応した分岐先アドレスおよび分岐先アドレスを先頭とする命令列を取得可能とする。これにより、割り込み処理時の場合と同様な作用効果が得られる。
【０１３９】
従来の分岐命令と本実施の形態における新たな分岐命令との主たる相違は、次の通りである。
【０１４０】
従来の分岐命令は、分岐先アドレスの指定方法により、相対アドレッシング型とレジスタ間接アドレッシング型に大別できる。相対アドレッシング型の場合は、分岐命令の引数に特定のベースアドレスからの相対アドレスを指定するために、一命令（単独命令）による局所分岐となる。これは、分岐命令コードにおいて引数に割り当てられるビット長に上限があるためである。レジスタ間接アドレッシング型の場合は、分岐命令の引数に分岐先アドレスを格納している参照レジスタを指定する。ただし、分岐命令の実行前に、メモリに記憶されている分岐先アドレスをこの参照レジスタへ格納するための前処理が必要になるが、広域分岐を可能とする。
【０１４１】
本実施の形態における新たな分岐命令の場合、分岐先（分岐先アドレス）に対して、これを識別するイベント・コード（以下、「分岐先イベント・コード」と称する）を事前に定義する。これにより、分岐先イベント・コードとこれに対応した分岐先アドレスを関連付けすることが可能となる。
【０１４２】
イベントキャッシュメモリ１０４のコードアレイ７１には分岐先イベント・コードを格納し、アドレスアレイ７２には分岐先イベント・コードに対応する分岐先アドレスを格納し、コマンドアレイ７５には分岐先アドレスを先頭アドレスとする命令列が格納される。
【０１４３】
上記の構成によれば、本実施の形態における新たな分岐命令の実行時には、分岐命令コードに引数として指定された分岐先イベント・コードをイベントコードレジスタ（ＩＮＴＥＶＴ）１４に格納する事により、分岐先イベント・コードを検索キーとして、イベントキャッシュメモリ１０４を検索し、当該イベント・コードに対応した分岐先アドレス及び分岐先命令列を取得可能となる。
【０１４４】
以上により、ＣＰＵコア１０３は、イベントキャッシュメモリ１０４を参照する分岐命令を実行する場合、上記従来分岐命令の様な前処理を不要とし、一命令（単独命令）による広域分岐が可能となる。
【０１４５】
また、従来の分岐命令を実行する場合、一般に、上記前処理の過程や分岐先アドレスからの命令の取得時にキャッシュ・ミスを発生させる可能性が大きく、システムの連続処理（例えばＣＰＵコアのパイプライン処理）を阻害する要因になっていた。しかしイベントキャッシュメモリ１０４を参照する、本実施の形態における新たな分岐命令を実行する場合は、分岐先アドレスを先頭アドレスとする分岐先命令列をイベントキャッシュメモリ１０４に格納していることより、分岐イベント処理シーケンスとそれに継続される分岐先命令を処理する初動の過程で、キャッシュ・ミスが発生しない。その結果、当該分岐命令を実行するパイプライン処理では、従来の阻害要因が解消されるので、連続パイプライン処理による性能向上を図ることができる。
【０１４６】
＜実施の形態９＞
図１４に示される構成に基づいた、別の実施の形態を説明する。
【０１４７】
実施の形態４において割り込みイベントとその処理シーケンス例を示し、実施の形態８において分岐イベントとその処理シーケンスの例を示した。これらに代えて、オペランド参照命令によるメモリ参照イベント処理シーケンス（メモリ参照処理）を実施するようにしても良い。
【０１４８】
この場合、従来のオペランド参照命令と本実施の形態によるものとの主たる相違は、次の通りである。
【０１４９】
従来のオペランド参照命令でメモリ上のオペランドデータを参照する場合、一般にレジスタ間接アドレッシングが用いられる。つまり、従来のオペランド参照命令の引数には、オペランドデータが記憶されているメモリ参照先アドレスを格納した汎用レジスタが指定される。この場合、命令実行に先立って、メモリ参照先アドレスを導出し、汎用レジスタに格納するための前処理を必要とする場合があり、さらに共有バスを介したバス・アクセスを必要とする。これに対して、本実施の形態におけるオペランド参照命令の場合、引数にメモリ参照イベント・コードを指定することにより、その様な前処理やバス・アクセスが不要とされる。
【０１５０】
本実施の形態におけるオペランド参照命令の場合、オペランド参照命令で参照されるオペランドデータの参照先アドレスにメモリ参照を識別するコード（以下、「メモリ参照イベント・コード」と称す）を定義する。これにより、メモリ参照イベント・コードとこれに対応したメモリ参照先アドレスを関連付けすることが可能となる。メモリ参照イベント・コードをコードアレイ７１に、メモリ参照先アドレスをアドレスアレイ７２に、メモリ参照先アドレスを先頭とするオペランドデータ列（メモリ参照先データ列）をコマンドアレイ７５に、それぞれ格納される。さらに、アドレス有効ビット（Ｖａ）には無効状態を、コマンド有効ビット（Ｖｃ）には有効状態を設定する。
【０１５１】
上記の構成によれば、本実施の形態におけるオペランド参照命令の実行時には、当該オペランド参照命令コードに引数として指定されたメモリ参照イベント・コードがイベントコードレジスタ（ＩＮＴＥＶＴ）１４に格納される事により、メモリ参照イベント・コードを検索キーとして、イベントキャッシュメモリ１０４を検索可能となる。この検索により、キャッシュ・ヒットした場合、ＣＰＵコアは、イベントキャッシュメモリ１０４から当該イベント・コードに対応したメモリ参照先アドレス、アドレス有効ビット（Ｖａ）及びメモリ参照先のオペランドデータ列等を取得可能となる。
【０１５２】
この時、コマンド有効ビット（Ｖｃ）は有効状態、かつアドレス有効ビット（Ｖａ）は無効状態である。ＣＰＵコアは、アドレス有効ビット（Ｖａ）の無効状態を検出するとき、取得されたメモリ参照先アドレスをプログラムカウンタ１２に設定させずに、必要に応じて汎用レジスタ等に格納することが可能である。またＣＰＵコアは、コマンド有効ビット（Ｖｃ）の有効状態を検出するとき、取得されたメモリ参照先のオペランドデータ列を有効なデータとして参照可能とされる。
【０１５３】
以上により、メモリ参照イベントの場合にも割り込みイベント時および分岐イベント時と同様な作用効果が得られる。
【０１５４】
＜実施の形態１０＞
図１４に示される構成に基づいた、更に別の実施の形態を説明する。
【０１５５】
前記実施の形態８における分岐命令によるイベント処理を、他のイベント処理と分化させる。つまり、割り込みイベント用の（第１の）イベントキャッシュメモリ１０４および（第１の）イベントコードレジスタに加え、さらに分岐命令の分岐イベント専用に、分岐先イベント・コードを格納する第２のイベントコードレジスタ、当該イベント・コードに対応した分岐先アドレス及び分岐先命令列を格納する第２のイベントキャッシュメモリを構成する。この場合、第２のイベントキャッシュメモリは、アドレス有効ビット（Ｖａ）およびアドレス有効ビット選択論理ブロック７９を削除し、常にアドレスアレイに格納される分岐先アドレスはプログラムカウンタに格納される。つまり、第２のイベントキャッシュメモリは、第１のイベントキャッシュメモリとは異なる構成であり、さらに、第２のイベントコードレジスタは、第１のイベントコードレジスタとは異なるイベント・コードを格納する。よって、実施の形態８と同様な作用効果に加えて、他のイベント処理との並行処理が可能になる。また分岐先イベント・コードは増減や変更を容易にできる様になるために、イベントキャッシュメモリの利便性が向上する。
【０１５６】
＜実施の形態１１＞
図１４に示される構成に基づいた、更に別の実施の形態を説明する。
【０１５７】
上記実施の形態９におけるオペランド参照命令によるメモリ参照イベント処理を、他のイベント処理と分化させる。つまり、割り込みイベント用の（第１の）イベントキャッシュメモリ１０４及び（第１の）イベントコードレジスタに加え、さらにオペランド参照命令のメモリ参照イベント専用に、メモリ参照イベント・コードを格納する第２のイベントコードレジスタ、当該イベント・コードに対応したメモリ参照先アドレスおよびメモリ参照先データ列を格納される第２のイベントキャッシュメモリを構成される。
【０１５８】
この場合、第２のイベントキャッシュメモリはアドレス有効ビット（Ｖａ）およびアドレス有効ビット選択論理ブロック７９を削除し、常にアドレスアレイに格納されるメモリ参照先アドレスは、プログラムカウンタに格納されずに、必要に応じて汎用レジスタ等に格納される。つまり、第２のイベントキャッシュメモリは、第１のイベントキャッシュメモリとは異なる構成であり、さらに、第２のイベントコードレジスタは、第１のイベントコードレジスタとは異なるイベント・コードを格納する。よって、実施の形態９と同様な作用効果に加えて、他のイベント処理との並行処理が可能になる。またメモリ参照イベント・コードは、増減や変更を容易にできる様になるために、イベントキャッシュメモリの利便性が向上する。
【０１５９】
次に、上記イベントキャッシュメモリ１０４のアクセスに使用される命令について説明する。
【０１６０】
先ず、例外キャッシュブロックの無効化命令（ECBI）を挙げることができる。
【０１６１】
この命令の書式は、「ECBI  ＠Rn」となる。
【０１６２】
この命令によれば、Rnの内容で示される例外キャッシュブロックのV bitを無効化することができる。Rnには、無効化するキャッシュブロックを示すウェイとエントリを指定する。図２１には、上記Rnのフォーマット例が示される。Wはウェイ選択ビット、entryはエントリ選択ビットである。
【０１６３】
また、例外キャッシュのプリフェッチ命令（PREE）を挙げることができる。
【０１６４】
この命令の書式は、「PREE  ＠Rｍ、＠Rｎ」となる。
【０１６５】
この命令によれば、Rmで示されるアドレスのデータがRnで示されるイベントキャッシュメモリ１０４のキャッシュラインにプリフェッチされる。Rnで示めすウェイとエントリに対応したキャッシュラインのデータ部に対して、Rｍで示めす割り込みベクタを含むキャッシュライン・サイズの境界で始まるキャッシュ１ライン分の命令列を読み込む。例えば、データ部のラインサイズが３２バイトの場合、割り込みベクタを含む３２バイト境界で始まる３２バイトの命令ブロックを読み込む。この場合、Rmで指定したアドレスの下位５ビットは０とみなす。読み込み完了後、同キャッシュラインのコード部にはRnで示すタグ、アドレス部にはRmで示めす割り込みベクタをそれぞれ登録し、V bitを有効に設定する。図２２には、上記Rn，Rmのフォーマット例が示される。Ｗはウェイ選択ビット、entryはエントリ選択ビットである。
【０１６６】
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
【０１６７】
例えば、実施の形態１乃至１１のいずれか二つ以上の組合せでイベントキャッシュメモリを実装しても良い。さらには、実施の形態１０及び１１の第２のイベントキャッシュメモリと、実施の形態１乃至９のイベントキャッシュメモリとを一つの半導体装置に実装してもよい。その場合に、必要なイベントをそれぞれ個別のイベントキャッシュメモリで制御することにより、並行処理が可能となる。
【符号の説明】
【０１６８】
１１  プログラムアダー
１２  プログラムカウンタ
１３  選択回路
１４  イベントコードレジスタ（イベント記憶部）
１５  加算器
１６  ベクタルーチンベースレジスタ
７１  コードアレイ
７２  アドレスアレイ
７３  コード一致比較論理ブロック
７４  アドレス選択論理ブロック
７５  コマンドアレイ
７６  コマンドアレイ選択論理ブロック
７７  コマンド有効ビット選択論理ブロック
７８  プリフェッチビット選択論理ブロック
７９  アドレス有効ビット選択論理ブロック
１００  マイクロコンピュータ
１０１  データキャッシュメモリ
１０２  命令キャッシュメモリ
１０３  ＣＰＵコア
１０４  イベントキャッシュメモリ（第２記憶部）
１０５  専有バス
１０７  共有バス
１０８  周辺バス
１０９，１１０  周辺モジュール
１１１  割り込みコントローラ
１１２  ＲＡＭ
１１３  ＲＯＭ
【図１】
2011191865.tif 000003
【図２】
2011191865.tif 000004
【図３】
2011191865.tif 000005
【図４】
2011191865.tif 000006
【図５】
2011191865.tif 000007
【図６】
2011191865.tif 000008
【図７】
2011191865.tif 000009
【図８】
2011191865.tif 000010
【図９】
2011191865.tif 000011
【図１０】
2011191865.tif 000012
【図１１】
2011191865.tif 000013
【図１２】
2011191865.tif 000014
【図１３】
2011191865.tif 000015
【図１４】
2011191865.tif 000016
【図１５】
2011191865.tif 000017
【図１６】
2011191865.tif 000018
【図１７】
2011191865.tif 000019
【図１８】
2011191865.tif 000020
【図１９】
2011191865.tif 000021
【図２０】
2011191865.tif 000022
【図２１】
2011191865.tif 000023
【図２２】
2011191865.tif 000024