(57)【要約】【課題】高い割り込み応答性能を維持しつつ回路規模の増大を抑制することが可能な半導体装置及びその制御方法を提供すること。【解決手段】一実施の形態によれば、半導体装置１は、Ｎ個の割り込みサブルーチンプログラムが格納されたフラッシュメモリ１２と、割り込みの発生を検出する割り込み制御回路１６と、割り込み制御回路１６の検出結果に基づいて、Ｎ個の割り込み要因のそれぞれの発生確率を判定するカウンタ１７＿１〜１７＿Ｎと、Ｎ個の割り込み要因のうち発生確率が高いと判定された上位Ｍ個（Ｍ＜Ｎ）の割り込み要因、に対応するＭ個の割り込みサブルーチンプログラムが格納される割り込みバッファメモリ１４と、Ｍ個の割り込み要因のうち何れかの要因の割り込みが発生した場合に当該割り込みに対応する割り込みサブルーチンプログラムを割り込みバッファメモリ１４から読み出して実行するＣＰＵ１１と、を備える。【選択図】図１
2018197902.tif 000002
【特許請求の範囲】
【請求項１】
Ｎ（Ｎは２以上の整数）個の割り込みサブルーチンプログラムが少なくとも格納されたフラッシュメモリと、
前記Ｎ個の割り込み要因のうち何れかの要因の割り込みが発生したことを検出する割り込み制御回路と、
前記割り込み制御回路の検出結果に基づいて、前記Ｎ個の割り込み要因のそれぞれの発生確率を判定する判定回路と、
前記Ｎ個の割り込み要因のうち前記判定回路により発生確率が高いと判定された上位Ｍ個（Ｍ＜Ｎ）の割り込み要因、に対応するＭ個の前記割り込みサブルーチンプログラムが格納される割り込みバッファメモリと、
前記Ｍ個の割り込み要因のうち何れかの要因の割り込みが発生した場合、発生した割り込みに対応する前記割り込みサブルーチンプログラムを前記割り込みバッファメモリから読み出して実行する演算処理回路と、
を備えた、半導体装置。
【請求項２】
前記演算処理回路は、
前記Ｎ個の割り込みサブルーチンプログラムのうち前記判定回路により発生確率が高いと判定された上位Ｍ個の割り込み要因、に対応するＭ個の割り込みサブルーチンプログラムを、前記フラッシュメモリから読み出して前記割り込みバッファメモリに格納する、
請求項１に記載の半導体装置。
【請求項３】
前記判定回路により判定された前記Ｎ個の割り込み要因のそれぞれの発生確率の情報、が格納された判定結果格納部をさらに備え、
前記演算処理回路は、
前記判定結果格納部に格納された前記Ｎ個の割り込み要因のそれぞれの発生確率の情報と、前記判定回路により新たに判定された前記Ｎ個の割り込み要因のそれぞれの発生確率の情報と、を比較して、上位Ｍ番目までの高い発生確率を示すＭ個の割り込み要因から除外されることになった割り込み要因、に対応する割り込みサブルーチンプログラムを、上位Ｍ番目までの高い発生確率を示すＭ個の割り込み要因に新たに追加されることになった割り込み要因、に対応する割り込みサブルーチンプログラムに書き換える、
請求項１に記載の半導体装置。
【請求項４】
前記判定回路は、
前記Ｎ個の割り込み要因のそれぞれの割り込みの発生に応じてカウント値をカウントアップさせるＮ個のカウンタを備え、
前記割り込みバッファメモリには、前記Ｎ個のカウンタのうち上位Ｍ番目までの高いカウント値を示すカウンタに対応するＭ個の前記割り込みサブルーチンプログラムが格納される、
請求項１に記載の半導体装置。
【請求項５】
前記演算処理回路は、
前記Ｎ個のカウンタのうち上位Ｍ番目までの高いカウント値を示すカウンタに対応するＭ個の前記割り込みサブルーチンプログラムを、前記フラッシュメモリから読み出して前記割り込みバッファメモリに格納する、
請求項４に記載の半導体装置。
【請求項６】
前記Ｎ個のカウンタのそれぞれのカウント値が格納された判定結果格納部をさらに備え、
前記演算処理回路は、
前記判定結果格納部に格納された前記Ｎ個のカウンタのそれぞれのカウント値と、前記Ｎ個のカウンタによって新たにカウントされたカウント値と、を比較して、上位Ｍ番目までの高いカウント値を示すカウンタから除外されることになったカウンタ、に対応する割り込みサブルーチンプログラムを、上位Ｍ番目までの高いカウント値を示すカウンタに新たに追加されることになったカウンタ、に対応する割り込みサブルーチンプログラムに、書き換える、
請求項４に記載の半導体装置。
【請求項７】
前記判定回路は、
前記Ｎ個の割り込み要因のそれぞれの割り込みの発生に応じて、当該Ｎ個の割り込み要因のそれぞれの割り込みの発生確率の期待値を算出するＮ個の期待値算出回路を備え、
前記割り込みバッファメモリには、前記Ｎ個の期待値算出回路のうち上位Ｍ番目までの高い発生確率の期待値を算出するＭ個の期待値算出回路、に対応するＭ個の前記割り込みサブルーチンプログラムが格納される、
請求項１に記載の半導体装置。
【請求項８】
前記演算処理回路は、
前記Ｎ個の期待値算出回路のうち上位Ｍ番目までの高い発生確率の期待値を算出するＭ個の期待値算出回路に対応するＭ個の前記割り込みサブルーチンプログラムを、前記フラッシュメモリから読み出して前記割り込みバッファメモリに格納する、
請求項７に記載の半導体装置。
【請求項９】
前記Ｎ個の期待値算出回路のそれぞれの算出結果が格納された判定結果格納部をさらに備え、
前記演算処理回路は、
前記判定結果格納部に格納された前記Ｎ個の期待値算出回路のそれぞれの算出結果と、前記Ｎ個の期待値算出回路によって新たに算出された算出結果と、を比較して、上位Ｍ番目までの高い発生確率の期待値を算出するＭ個の期待値算出回路から除外されることになった期待値算出回路、に対応する割り込みサブルーチンプログラムを、上位Ｍ番目までの高い発生確率の期待値を算出するＭ個の期待値算出回路に新たに追加されることになった期待値算出回路、に対応する割り込みサブルーチンプログラムに書き換える、
請求項７に記載の半導体装置。
【請求項１０】
前記Ｎ個の期待値算出回路の各々は、
期待値の初期設定値をＥ、分散値の初期設定値をＶとした場合に表されるパラメータα，βをそれぞれα＝Ｅ［｛Ｅ（１−Ｖ）／Ｖ｝−１］、β＝（１−Ｅ）［｛Ｅ（１−Ｖ）／Ｖ｝−１］とすると、割り込みの発生確率の期待値μは、下記式
μ＝（α＋担当する割り込み要因の割り込み発生回数）／（α＋β＋Ｎ個全ての割り込み要因の割り込み発生回数）
ように表される、
請求項７に記載の半導体装置。
【請求項１１】
前記Ｎ個の割り込みサブルーチンプログラムのうち前記判定回路により発生確率が高いと判定された上位Ｍ個の割り込み要因、に対応するＭ個の割り込みサブルーチンプログラムを、前記フラッシュメモリから読み出して前記割り込みバッファメモリに格納する、データ差し替え部をさらに備えた、
請求項１に記載の半導体装置。
【請求項１２】
前記判定回路により判定された前記Ｎ個の割り込み要因のそれぞれの発生確率の情報、が格納された判定結果格納部をさらに備え、
前記データ差し替え部は、
前記判定結果格納部に格納された前記Ｎ個の割り込み要因のそれぞれの発生確率の情報と、前記判定回路により新たに判定された前記Ｎ個の割り込み要因のそれぞれの発生確率の情報と、を比較して、上位Ｍ番目までの高い発生確率を示す割り込み要因から除外されることになった割り込み要因、に対応する割り込みサブルーチンプログラムを、上位Ｍ番目までの高い発生確率を示す割り込み要因に新たに追加されることになった割り込み要因、に対応する割り込みサブルーチンプログラムに書き換える、
請求項１１に記載の半導体装置。
【請求項１３】
Ｎ（Ｎは２以上の整数）個の割り込み要因のうち何れかの要因の割り込みが発生したことを検出し、
その検出結果に基づいて、前記Ｎ個の割り込み要因のそれぞれの発生確率を判定し、
前記Ｎ個の割り込み要因のうち発生確率が高いと判定された上位Ｍ個（Ｍ＜Ｎ）の割り込み要因、に対応するＭ個の割り込みサブルーチンプログラムをフラッシュメモリから読み出して割り込みバッファメモリに格納し、
前記Ｍ個の割り込み要因のうち何れかの要因の割り込みが発生した場合、発生した割り込みに対応する前記割り込みサブルーチンプログラムを前記割り込みバッファメモリから読み出して実行する、
半導体装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体装置及びその制御方法に関し、例えば高い割り込み応答性能を維持しつつ回路規模の増大を抑制するのに適した半導体装置及びその制御方法に関する。
【背景技術】
【０００２】
例えば、マイクロコンピュータでは、ＣＰＵ(Central Processing Unit)が、フラッシュメモリに格納された複数のプログラムの中から指定されたアドレスのプログラムを実行する。ここで、ＣＰＵは、指定されたアドレスのプログラムがキャッシュメモリに格納されている場合には、フラッシュメモリにアクセスすることなくキャッシュメモリから当該プログラムを読み出して実行する。他方、指定されたアドレスのプログラムがキャッシュメモリに格納されていない場合には、フラッシュメモリに格納された指定されたアドレスのプログラムを、キャッシュメモリに転送したうえで実行する。これは、メインルーチンのプログラムの場合に限られず、タイマ割り込み、通信ＩＰ割り込み、及び、外部端子割り込みなどの割り込みが発生した場合でも同様である。
【０００３】
しかしながら、割り込みに対応する割り込みサブルーチンプログラムは、メインルーチンのプログラムの場合と異なり、キャッシュメモリに格納されていないのが通常である。したがって、このマイクロコンピュータは、割り込みが発生するたびにフラッシュメモリにアクセスする必要があるため、割り込みサブルーチンプログラムを速やかに実行することができない、という問題があった。換言すると、このマイクロコンピュータは、割り込みの応答性を向上させることができない、という問題があった。
【０００４】
このような問題に対する解決策が、特許文献１に開示されている。特許文献１に開示されたマイクロコンピュータは、メインルーチンのプログラムが一時的に格納される第１の命令キュー（キャッシュメモリ）に加えて、複数の割り込み要因に対応する複数の割り込みサブルーチンプログラムの全てが格納される第２の命令キュー（割り込みバッファメモリ）を備える。それにより、このマイクロコンピュータは、割り込みが発生するたびにプログラム格納用メモリ（フラッシュメモリ）にアクセスする必要が無くなるため、割り込み応答性を向上させることができる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平１１−２４９４２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１の構成では、複数の割り込み要因に対応する複数の割り込みサブルーチンプログラムを全て格納可能な割り込みバッファメモリを備える必要があるため、回路規模が増大してしまうという問題があった。その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【０００７】
一実施の形態によれば、半導体装置は、Ｎ（Ｎは２以上の整数）個の割り込みサブルーチンプログラムが少なくとも格納されたフラッシュメモリと、前記Ｎ個の割り込み要因のうち何れかの要因の割り込みが発生したことを検出する割り込み制御回路と、前記割り込み制御回路の検出結果に基づいて、前記Ｎ個の割り込み要因のそれぞれの発生確率を判定する判定回路と、前記Ｎ個の割り込み要因のうち前記判定回路により発生確率が高いと判定された上位Ｍ個（Ｍ＜Ｎ）の割り込み要因、に対応するＭ個の前記割り込みサブルーチンプログラムが格納される割り込みバッファメモリと、前記Ｍ個の割り込み要因のうち何れかの要因の割り込みが発生した場合、発生した割り込みに対応する前記割り込みサブルーチンプログラムを前記割り込みバッファメモリから読み出して実行する演算処理回路と、を備える。
【０００８】
他の実施の形態によれば、半導体装置の制御方法は、Ｎ（Ｎは２以上の整数）個の割り込み要因のうち何れかの要因の割り込みが発生したことを検出し、その検出結果に基づいて、前記Ｎ個の割り込み要因のそれぞれの発生確率を判定し、前記Ｎ個の割り込み要因のうち発生確率が高いと判定された上位Ｍ個（Ｍ＜Ｎ）の割り込み要因、に対応するＭ個の割り込みサブルーチンプログラムをフラッシュメモリから読み出して割り込みバッファメモリに格納し、前記Ｍ個の割り込み要因のうち何れかの要因の割り込みが発生した場合、発生した割り込みに対応する前記割り込みサブルーチンプログラムを前記割り込みバッファメモリから読み出して実行する。
【発明の効果】
【０００９】
前記一実施の形態によれば、高い割り込み応答性能を維持しつつ、回路規模の増大を抑制することが可能な半導体装置を提供することができる。
【図面の簡単な説明】
【００１０】
【図１】実施の形態１にかかる半導体装置の構成例を示すブロック図である。
【図２】図１に示す半導体装置に設けられた割り込み制御回路の構成例を示す図である。
【図３】図１に示す半導体装置に設けられた割り込みバッファメモリの構成例を示す図である。
【図４】図１に示す半導体装置の動作を示すフローチャートであ。
【図５】図１に示す半導体装置の第１変形例を示すブロック図である。
【図６】図１に示す半導体装置の第２変形例を示すブロック図である。
【図７】実施の形態２にかかる半導体装置の構成例を示す図である。
【図８】図７に示す半導体装置の動作を示すフローチャートである。
【図９】図７に示す半導体装置に設けられたデータ差し替え部の第１具体的構成例を示す図である。
【図１０】図７に示す半導体装置に設けられたデータ差し替え部の第２具体的構成例を示す図である。
【図１１】図７に示す半導体装置の変形例を示すブロック図である。
【図１２】実施の形態３にかかる半導体装置の構成例を示すブロック図である。
【図１３】図１２に示す半導体装置に設けられた期待値算出回路の構成例を示すブロック図である。
【図１４】割り込みの発生確率の期待値の変化の一例を示す図である。
【図１５】割り込みの発生確率の分布及びその変化を示す図である。
【図１６】図１２に示す半導体装置の動作を示すフローチャートである。
【図１７】実施の形態に至る前の構想に係る半導体装置の構成を示す図である。
【図１８】実施の形態に至る前の構想に係る半導体装置の構成を示す図である。
【発明を実施するための形態】
【００１１】
以下、図面を参照しつつ、実施の形態について説明する。なお、図面は簡略的なものであるから、この図面の記載を根拠として実施の形態の技術的範囲を狭く解釈してはならない。また、同一の要素には、同一の符号を付し、重複する説明は省略する。
【００１２】
以下の実施の形態においては便宜上その必要があるときは、複数のセクションまたは実施の形態に分割して説明するが、特に明示した場合を除き、それらはお互いに無関係なものではなく、一方は他方の一部または全部の変形例、応用例、詳細説明、補足説明等の関係にある。また、以下の実施の形態において、要素の数等（個数、数値、量、範囲等を含む）に言及する場合、特に明示した場合および原理的に明らかに特定の数に限定される場合等を除き、その特定の数に限定されるものではなく、特定の数以上でも以下でもよい。
【００１３】
さらに、以下の実施の形態において、その構成要素（動作ステップ等も含む）は、特に明示した場合および原理的に明らかに必須であると考えられる場合等を除き、必ずしも必須のものではない。同様に、以下の実施の形態において、構成要素等の形状、位置関係等に言及するときは、特に明示した場合および原理的に明らかにそうでないと考えられる場合等を除き、実質的にその形状等に近似または類似するもの等を含むものとする。このことは、上記数等（個数、数値、量、範囲等を含む）についても同様である。
【００１４】
＜発明者らによる事前検討＞
実施の形態１にかかる半導体装置の詳細について説明する前に、本発明者らが事前検討した半導体装置について説明する。
【００１５】
図１７は、実施の形態に至る前の構想に係る半導体装置５の構成を示す図である。半導体装置５は、所謂マイクロコンピュータであって、ＣＰＵ５１と、フラッシュメモリ５２と、キャッシュメモリ５３と、データバス５５と、割り込み制御回路５６と、を備える。
【００１６】
フラッシュメモリ５２には、複数のメインルーチンのプログラムと、Ｎ（Ｎは２以上の整数）個の割り込み要因に対応するＮ個の割り込みサブルーチンのプログラムと、が少なくとも格納されている。なお、割り込み要因には、例えば、タイマ割り込み、通信ＩＰ割り込み、外部端子割り込み等がある。
【００１７】
割り込み制御回路５６は、Ｎ個の割り込み要因のうち何れかの要因の割り込みが発生したことを検出する。
【００１８】
ＣＰＵ５１は、フラッシュメモリ５２に格納された複数のプログラムの中から指定されたアドレスのプログラムを実行する。ここで、ＣＰＵ５１は、指定されたアドレスのプログラムがキャッシュメモリ５３に格納されている場合には、フラッシュメモリ５２にアクセスすることなくキャッシュメモリ５３から当該プログラムを読み出して実行する。他方、指定されたアドレスのプログラムがキャッシュメモリ５３に格納されていない場合には、フラッシュメモリ５２に格納された指定されたアドレスのプログラムを、データバス５５を介して、キャッシュメモリ５３に転送したうえで実行する。これは、メインルーチンのプログラムの場合に限られず、割り込みが発生した場合でも同様である。
【００１９】
具体的には、ＣＰＵ５１は、割り込み制御回路５６によりＮ個の割り込み要因のうち何れかの要因の割り込みが発生したことが検出された場合、フラッシュメモリ５２に格納されたＮ個の割り込みサブルーチンプログラムの中から、検出された割り込みの要因に対応する割り込みサブルーチンプログラムを実行する。ここで、ＣＰＵ５１は、検出された割り込みの要因に対応する割り込みサブルーチンプログラムがキャッシュメモリ５３に格納されている場合には、フラッシュメモリ５２にアクセスすることなくキャッシュメモリ５３からその割り込みサブルーチンプログラムを読み出して実行する。他方、検出された割り込み要因に対応する割り込みサブルーチンプログラムがキャッシュメモリ５３に格納されていない場合には、フラッシュメモリ５２に格納されたその割り込みサブルーチンプログラムを、キャッシュメモリ５３に転送したうえで実行する。
【００２０】
しかしながら、割り込みサブルーチンプログラムは、メインルーチンプログラムの場合と異なり、キャッシュメモリ５３に格納されていないのが通常である。したがって、半導体装置５は、割り込みが発生するたびにフラッシュメモリ５２にアクセスする必要があるため、割り込みサブルーチンプログラムを速やかに実行することができない、という問題がある。換言すると、半導体装置５は、割り込みの応答性を向上させることができない、という問題がある。
【００２１】
このような問題を解決するため、発明者らは次に半導体装置６を検討した。
【００２２】
図１８は、実施の形態に至る前の構想に係る半導体装置６の構成を示す図である。半導体装置６は、所謂マイクロコンピュータであって、ＣＰＵ６１と、フラッシュメモリ６２と、キャッシュメモリ６３と、割り込みバッファメモリ６４と、データバス６５と、割り込み制御回路６６と、を備える。
【００２３】
ここで、ＣＰＵ６１、フラッシュメモリ６２、キャッシュメモリ６３、データバス６５及び割り込み制御回路６６は、それぞれ、半導体装置５におけるＣＰＵ５１、フラッシュメモリ５２、キャッシュメモリ５３、データバス５５及び割り込み制御回路５６に対応する。
【００２４】
つまり、半導体装置６は、半導体装置５と比較して、メインルーチンプログラムが一時的に格納されるキャッシュメモリ６３に加えて、Ｎ個の割り込み要因に対応するＮ個の割り込みサブルーチンプログラムの全てが格納される割り込みバッファメモリ６４を備える。半導体装置６のその他の構成については、半導体装置５の場合と同様であるため、その説明を省略する。
【００２５】
ＣＰＵ６１は、割り込み制御回路６６によりＮ個の割り込み要因のうち何れかの要因の割り込みが発生したことが検出された場合、検出された割り込みの要因に対応する割り込みサブルーチンプログラムを割り込みバッファメモリ６４から読み出して実行する。それにより、半導体装置６は、割り込みが発生するたびにフラッシュメモリ６２にアクセスする必要が無くなるため、割り込み応答性を向上させることができる。
【００２６】
しかしながら、半導体装置６では、Ｎ個の割り込み要因に対応するＮ個の割り込みサブルーチンプログラムを全て格納可能な割り込みバッファメモリを備える必要があるため、回路規模が増大してしまうという問題があった。また、その結果、消費電力が増大してしまうという問題があった。
【００２７】
そこで、高い割り込み応答性能を維持しつつ、回路規模の増大を抑制することが可能な、実施の形態１にかかる半導体装置１が見出された。
【００２８】
＜実施の形態１＞
図１は、実施の形態１にかかる半導体装置１の構成例を示すブロック図である。半導体装置１は、所謂マイクロコンピュータであって、ＣＰＵ１１と、フラッシュメモリ１２と、キャッシュメモリ１３と、割り込みバッファメモリ１４と、データバス１５と、割り込み制御回路１６と、Ｎ（Ｎは２以上の整数）個の割り込み回数カウンタ１７＿１〜１７＿Ｎと、を備える。
【００２９】
フラッシュメモリ１２には、複数のメインルーチンのプログラムと、Ｎ個の割り込み要因に対応するＮ個の割り込みサブルーチンのプログラムと、が少なくとも格納されている。なお、割り込み要因には、例えば、タイマ割り込み、通信ＩＰ割り込み、外部端子割り込み等がある。
【００３０】
ＣＰＵ１１は、フラッシュメモリ１２に格納された複数のプログラムの中から指定されたアドレスのメインルーチンプログラムを実行する。ここで、ＣＰＵ１１は、指定されたアドレスのメインルーチンプログラムがキャッシュメモリ１３に格納されている場合には、フラッシュメモリ１２にアクセスすることなくキャッシュメモリ１３から当該プログラムを読み出して実行する。他方、指定されたアドレスのメインルーチンプログラムがキャッシュメモリ１３に格納されていない場合、ＣＰＵ１１は、フラッシュメモリ１２に格納された指定されたアドレスのメインルーチンプログラムを、データバス１５を介して、キャッシュメモリ１３に転送したうえで実行する。ＣＰＵ１１のその他の機能については後述する。
【００３１】
割り込み制御回路１６は、Ｎ個の割り込み要因のうち何れかの要因の割り込みが発生したことを検出する。以下、Ｎ個の割り込み要因のそれぞれの割り込みを割り込みＩＮＴ＿１〜ＩＮＴ＿Ｎとも称す。
【００３２】
（割り込み制御回路１６の構成例）
図２は、割り込み制御回路１６の構成例を示すブロック図である。
図２に示すように、割り込み制御回路１６は、ラッチ回路１６１＿１〜１６１＿Ｎと、優先順位判定回路１６２と、を有する。
【００３３】
ラッチ回路１６１＿１〜１６１＿Ｎは、それぞれ、Ｎ個の割り込み要因のそれぞれの割り込みＩＮＴ＿１〜ＩＮＴ＿Ｎをラッチする。優先順位判定回路１６２は、ラッチ回路１６１＿１〜１６１＿Ｎによってラッチされた割り込みＩＮＴ＿１〜ＩＮＴ＿Ｎを、予め設定された優先度の高い順に、対応する割り込み回数カウンタ及びＣＰＵ１１に対して出力する。なお、優先順位判定回路１６２は、ラッチ回路１６１＿ｉ（ｉは１〜Ｎの任意の整数）によりラッチされた割り込みＩＮＴ＿ｉを出力した後は、当該ラッチ回路１６１＿ｉを初期化する。
【００３４】
図１に戻り、説明を続ける。
割り込み回数カウンタ１７＿１〜１７＿Ｎは、それぞれ、割り込み制御回路１６によって検出された割り込みＩＮＴ＿１〜ＩＮＴ＿Ｎの発生回数をカウントする。ここで、割り込みＩＮＴ＿１〜ＩＮＴ＿Ｎの発生頻度が高くなり、割り込み回数カウンタ１７＿１〜１７＿Ｎのカウント値が大きくなるほど、割り込みＩＮＴ＿１〜ＩＮＴ＿Ｎの発生確率は高いと推定することができる。そのため、割り込み回数カウンタ１７＿１〜１７＿Ｎは、割り込みＩＮＴ＿１〜ＩＮＴ＿Ｎの発生頻度に基づいて発生確率を判定する判定回路、ということができる。なお、割り込み回数カウンタ１７＿１〜１７＿Ｎの初期値は、例えば“０”に設定されている。あるいは、仕様により決定された所定のカウント値に設定されている。
【００３５】
ＣＰＵ１１は、割り込み回数カウンタ１７＿１〜１７＿Ｎのうち上位Ｍ（Ｍ＜Ｎ）番目までの高いカウント値を示すカウンタ、に対応するＭ個の割り込みサブルーチンプログラムを、フラッシュメモリ１２から読み出して割り込みバッファメモリ１４に格納する。なお、割り込み回数カウンタ１７＿１〜１７＿Ｎのカウント値が何れも初期値“０”を示す場合、ＣＰＵ１１は、経験値等により発生確率が高いと判断された所定のＭ個の割り込み要因、に対応するＭ個の割り込みサブルーチンプログラムを、フラッシュメモリ１２から読み出して割り込みバッファメモリ１４に格納する。
【００３６】
図３は、割り込みバッファメモリ１４の構成例を示す図である。図３を参照すると、割り込みバッファメモリ１４には、Ｍ個分の割り込みサブルーチンプログラムをそれぞれ格納可能なＭ個の格納領域Ａ＿１〜Ａ＿Ｍが設けられている。ここで、割り込みバッファメモリ１４には、Ｎ個すべての割り込みサブルーチンプログラムを格納可能な領域よりも少ない格納領域Ａ＿１〜Ａ＿Ｍが設けられている。そのため、割り込みバッファメモリ１４は、割り込みバッファメモリ６４よりも回路規模を小さくすることができる。
【００３７】
図１に戻り、説明を続ける。
ＣＰＵ１１は、割り込み制御回路１６によりＮ個の割り込み要因のうち何れかの要因の割り込みが発生したことが検出された場合、フラッシュメモリ１２に格納されたＮ個の割り込みサブルーチンプログラムの中から、検出された割り込みの要因に対応する割り込みサブルーチンプログラムを実行する。
【００３８】
ここで、割り込みバッファメモリ１４には、高い発生頻度を示す（即ち発生確率が高いと推定された）Ｍ個の割り込み要因、に対応するＭ個の割り込みサブルーチンが格納されている。そのため、ＣＰＵ１１は、割り込みが発生した場合、高い確率で、フラッシュメモリ１２にアクセスすることなく割り込みバッファメモリ１４から対応する割り込みサブルーチンプログラムを読み出して実行することができる。
【００３９】
なお、上位Ｍ番目までの高い発生頻度を示す割り込み要因以外の要因の割り込みが発生した場合（即ち、発生頻度の低い要因の割り込みが発生した場合）、ＣＰＵ１１は、フラッシュメモリ１２に格納された対応する割り込みサブルーチンプログラムを、キャッシュメモリ１３に転送したうえで実行する。
【００４０】
（半導体装置１の動作）
続いて、図４を参照しながら、半導体装置１の動作について説明する。
図４は、半導体装置１の動作を示すフローチャートである。なお、以下では、割り込み要因の数が２０個（Ｎ＝２０）、割り込みバッファメモリ１４に格納される割り込みサブルーチンプログラムの数が５個（Ｍ＝５）である場合を例に説明する。
【００４１】
初期状態では、割り込み回数カウンタ１７＿１〜１７＿Ｎは、何れもカウント値“０”を示している。そのため、割り込みバッファメモリ１４には、経験値等により発生確率が高いと判断された所定のＭ個の割り込みサブルーチンプログラムが格納されている。
【００４２】
まず、ＣＰＵ１１によりメインルーチンプログラムを実行する（ステップＳ１０１）。
【００４３】
その後、Ｎ個の割り込み要因のうちの何れか要因の割り込みが発生する（ステップＳ１０２）。
【００４４】
このとき、ＣＰＵ１１は、発生した割り込みの要因に対応する割り込みサブルーチンプログラムが、割り込みバッファメモリ１４に格納されているか否かを確認する（ステップＳ１０３）。
【００４５】
例えば、発生した割り込みの要因に対応する割り込みサブルーチンプログラムが割り込みバッファメモリ１４に格納されている場合（ステップＳ１０３のＹＥＳ）、ＣＰＵ１１は、割り込みバッファメモリ１４からその割り込みサブルーチンプログラムを読み出して実行する（ステップＳ１０４）。
【００４６】
その後、割り込みサブルーチンプログラムの実行が完了すると（ステップＳ１０５）、発生した割り込みの要因に対応するカウンタ１７＿１〜１７＿Ｎの何れかのカウント値をカウントアップさせる（ステップＳ１０９）。例えば、割り込みＩＮＴ＿１が発生した場合、割り込みＩＮＴ＿１に対応するカウンタ１７＿１のカウント値をカウントアップさせる。なお、その結果、割り込み回数カウンタ１７＿１〜１７＿Ｎのカウント値の順位が入れ替わる可能性がある。
【００４７】
それに対し、発生した割り込みの要因に対応する割り込みサブルーチンプログラムが割り込みバッファメモリ１４に格納されていない場合（ステップＳ１０３のＮＯ）、ＣＰＵ１１は、フラッシュメモリ１２に格納されたその割り込みサブルーチンプログラムを、キャッシュメモリ１３に転送したうえで実行する（ステップＳ１０６、Ｓ１０７）。
【００４８】
その後、割り込みサブルーチンプログラムの実行が完了すると（ステップＳ１０８）、発生した割り込みの要因に対応するカウンタ１７＿１〜１７＿Ｎの何れかのカウント値をカウントアップさせる（ステップＳ１０９）。例えば、割り込みＩＮＴ＿２が発生した場合、割り込みＩＮＴ＿２に対応するカウンタ１７＿２のカウント値をカウントアップさせる。なお、その結果、割り込み回数カウンタ１７＿１〜１７＿Ｎのカウント値の順位が入れ替わる可能性がある。
【００４９】
ＣＰＵ１１は、割り込み回数カウンタ１７＿１〜１７＿Ｎの何れかによるカウントアップ動作が完了すると、割り込み回数カウンタ１７＿１〜１７＿Ｎのうち上位Ｍ番目までの高いカウント値を示すカウンタ、に対応するＭ個の割り込みサブルーチンプログラムを、フラッシュメモリ１２から読み出して割り込みバッファメモリ１４に格納する（ステップＳ１１０）。これにより、割り込みバッファメモリ１４に既に格納されていたＭ個の割り込みサブルーチンプログラムは、フラッシュメモリ１２から新たに読み出されたＭ個の割り込みサブルーチンプログラムによって上書きされる。
【００５０】
その後、半導体装置１は、ＣＰＵ１１による動作が完了した場合には（ステップＳ１１１のＹＥＳ）、動作を終了し、ＣＰＵ１１による動作が完了していない場合には（ステップＳ１１１のＮＯ）、ステップＳ１０１の処理に戻り、ステップＳ１０１〜Ｓ１１１の動作を繰り返す。
【００５１】
このように、本実施の形態にかかる半導体装置１は、Ｎ個の割り込み要因のうち高い発生頻度を示すＭ個の割り込み要因、に対応するＭ個の割り込みサブルーチンプログラムのみを格納する割り込みバッファメモリ１４を備える。それにより、本実施の形態にかかる半導体装置１は、高い割り込み応答性能を維持しつつ、回路規模及び消費電力の増大を抑制することができる。具体的には、Ｎ＝２０、Ｍ＝５の場合、割り込みバッファメモリ１４は、半導体装置６の場合と比較して、回路規模を４分の１程度に抑制することができる。
【００５２】
（半導体装置１の第１変形例）
本実施の形態では、割り込み回数カウンタ１７＿１〜１７＿Ｎの何れかによるカウントアップ動作の完了に応じて、割り込みバッファメモリ１４に格納される割り込みサブルーチンプログラムの書き換えが行われる場合を例に説明したが、これに限られない。所定の周期で、割り込みバッファメモリ１４に格納される割り込みサブルーチンプログラムの書き換えが行われてもよい。以下、図５を用いて簡単に説明する。
【００５３】
図５は、半導体装置１の第１変形例を半導体装置１ａとして示すブロック図である。
図５に示すように、半導体装置１ａは、半導体装置１と比較して、タイマ１８をさらに備える。半導体装置１ａのその他の構成については、半導体装置１の場合と同様であるため、その説明を省略する。
【００５４】
ここで、ＣＰＵ１１は、タイマ１８により計測された時間が所定時間を経過すると、割り込みバッファメモリ１４に格納される割り込みサブルーチンプログラムの書き換えを行う。割り込みサブルーチンプログラムの書き換え後、タイマ１８は初期化されて再び時間を計測し始める。
【００５５】
それにより、半導体装置１ａでは、所定の周期で、割り込みバッファメモリ１４に格納される割り込みサブルーチンプログラムの書き換えが行われることになる。
【００５６】
（半導体装置１の第２変形例）
また、本実施の形態では、割り込みバッファメモリ１４に既に格納されているＭ個の割り込みサブルーチンプログラムの全てが、フラッシュメモリ１２から新たに読み出されるＭ個の割り込みサブルーチンプログラムによって上書きされる場合を例に説明したが、これに限られない。上位Ｍ番目までの高い発生頻度を示す割り込み要因から除外されることになった割り込み要因、に対応する割り込みサブルーチンプログラムのみが、上位Ｍ番目までの高い発生頻度を示す割り込み要因に新たに追加されることになった割り込み要因、に対応する割り込みサブルーチンプログラムに書き換えられてもよい。以下、図６を用いて簡単に説明する。
【００５７】
図６は、半導体装置１の第２の変形例を半導体装置１ｂとして示すブロック図である。
図６に示すように、半導体装置１ｂは、半導体装置１と比較して、メモリ（判定結果格納部）１９をさらに備える。半導体装置１ｂのその他の構成については、半導体装置１の場合と同様であるため、その説明を省略する。
【００５８】
メモリ１９には、割り込み回数カウンタ１７＿１〜１７＿Ｎのそれぞれによって最後にカウントされたカウント値が格納されている。ここで、ＣＰＵ１１は、メモリ１９に格納されたカウンタ１７＿１〜１７＿Ｎのそれぞれのカウント値と、カウンタ１７＿１〜１７＿Ｎのそれぞれによって新たにカウントされたカウント値と、を比較する。それにより、上位Ｍ番目までの高いカウント値を示すカウンタから除外されることになったカウンタと、上位Ｍ番目までの高いカウント値を示すカウンタに新たに追加されることになったカウンタと、が明らかになる。そこで、ＣＰＵ１１は、上位Ｍ番目までの高いカウント値を示すカウンタから除外されることになったカウンタ、に対応する割り込みサブルーチンプログラムを、上位Ｍ番目までの高いカウント値を示すカウンタに新たに追加されることになったカウンタ、に対応する割り込みサブルーチンプログラムに書き換える。
【００５９】
それにより、半導体装置１ｂは、割り込みバッファメモリ１４に格納されるＭ個の割り込みサブルーチンプログラムの全てではなく一部のみを書き換えることができる。
【００６０】
＜実施の形態２＞
図７は、実施の形態２にかかる半導体装置２の構成例を示すブロック図である。
図７に示すように、半導体装置２は、ＣＰＵ２１と、フラッシュメモリ２２と、キャッシュメモリ２３と、割り込みバッファメモリ２４と、データバス２５と、割り込み制御回路２６と、割り込み回数カウンタ２７＿１〜２７＿Ｎと、データ差し替え部２０と、を備える。データ差し替え部２０は、データ差し替え制御回路２８と、ＤＭＡ２９と、を有する。
【００６１】
ここで、ＣＰＵ２１、フラッシュメモリ２２、キャッシュメモリ２３、割り込みバッファメモリ２４、データバス２５、割り込み制御回路２６、及び、割り込み回数カウンタ２７＿１〜２７＿Ｎは、それぞれ、半導体装置１におけるＣＰＵ１１、フラッシュメモリ１２、キャッシュメモリ１３、割り込みバッファメモリ１４、データバス１５、割り込み制御回路１６及び割り込み回数カウンタ１７＿１〜１７＿Ｎに対応する。
【００６２】
つまり、半導体装置２は、半導体装置１と比較して、データ差し替え部２０をさらに備える。
【００６３】
データ差し替え部２０は、ＣＰＵ２１の代わりに、上位Ｍ番目までの高いカウント値を示すカウンタ、に対応するＭ個の割り込みサブルーチンプログラムを、割り込みバッファメモリ１４に格納する。それにより、ＣＰＵ２１の動作負担が軽減される。半導体装置２のその他の構成及び動作については、半導体装置１の場合と同様であるため、その説明を省略する。
【００６４】
（半導体装置２の動作）
続いて、図８を参照しながら、半導体装置２の動作について説明する。
図８は、半導体装置２の動作を示すフローチャートである。ここで、図８に示す半導体装置２のステップＳ２０１〜Ｓ２１１の処理は、それぞれ、半導体装置１のステップＳ１０１〜Ｓ１１１の処理に対応する。
【００６５】
半導体装置２において、データ差し替え部２０は、割り込み回数カウンタ２７＿１〜２７＿Ｎの何れかによるカウントアップ動作が完了すると、割り込み回数カウンタ２７＿１〜２７＿Ｎのうち上位Ｍ番目までの高いカウント値を示すカウンタ、に対応するＭ個の割り込みサブルーチンプログラムを、フラッシュメモリ２２から読み出して割り込みバッファメモリ２４に格納する（ステップＳ２１０）。これにより、割り込みバッファメモリ２４に既に格納されていたＭ個の割り込みサブルーチンプログラムは、フラッシュメモリ２２から新たに読み出されたＭ個の割り込みサブルーチンプログラムによって上書きされる。
【００６６】
半導体装置２のその他の動作については、半導体装置１の場合と同様であるため、その説明を省略する。
【００６７】
このように、本実施の形態にかかる半導体装置２は、半導体装置１と同等程度の効果を奏することができる。さらに、本実施の形態にかかる半導体装置２は、データ差し替え部２０を用いて割り込みバッファメモリ１４への割り込みサブルーチンプログラムの書き込みを行うことにより、ＣＰＵ２１の動作負担を軽減させることができる。
【００６８】
なお、半導体装置２でも、半導体装置１の場合と同様に、所定の周期で、割り込みバッファメモリ１４に格納される割り込みサブルーチンプログラムの書き換えが行われてもよい。また、半導体装置２でも、半導体装置１の場合と同様に、上位Ｍ番目までの高い発生頻度を示す割り込み要因から除外されることになった割り込み要因、に対応する割り込みサブルーチンプログラムのみが、上位Ｍ番目までの高い発生頻度を示す割り込み要因に新たに追加されることになった割り込み要因、に対応する割り込みサブルーチンプログラムに書き換えられてもよい。
【００６９】
続いて、データ差し替え部２０の具体的な構成例についていくつか説明する。
【００７０】
（データ差し替え部２０の第１の具体的な構成例）
図９は、データ差し替え部２０の第１の具体的な構成例をデータ差し替え部２０ａとして示すブロック図である。図９に示すように、データ差し替え部２０ａは、データ差し替え制御回路２８ａと、ＤＭＡ２９ａと、を備える。
【００７１】
データ差し替え制御回路２８ａは、ＤＭＡ制御回路２８１と、カウント値判定回路２８２と、割り込み要因ＩＤ格納部２８３と、転送元割り込み情報格納部２８４と、を備える。ＤＭＡ２９ａは、転送元アドレス格納レジスタ２９１と、転送バイト数格納レジスタ２９２と、転送先アドレス格納レジスタ２９３と、転送開始フラグ２９４と、転送完了フラグ２９５と、を備える。
【００７２】
カウント値判定回路２８２は、Ｎ個の割り込み回数カウンタ２７＿１〜２７＿Ｎのそれぞれのカウント値から、カウント値の高い順に第１位から第Ｍ位までのＭ個のカウンタを判定するとともに、これらＭ個のカウンタに対応するＭ個の割り込み要因ＩＤ(Identification Information)を、割り込み要因ＩＤ格納部２８３から読み出して出力する。つまり、カウント値判定回路２８２は、上位Ｍ番目までの高い発生頻度を示す割り込み要因のＩＤ（割り込み要因ＩＤ）を出力する。
【００７３】
ＤＭＡ制御回路２８１は、まず、カウント値判定回路２８２から出力されたＭ個の割り込み要因ＩＤの中から発生頻度第１位の割り込み要因ＩＤを選択する。そして、ＤＭＡ制御回路２８１は、選択した発生頻度第１位の割り込み要因ＩＤに対応する割り込みサブルーチンプログラムの情報を、転送元割り込み情報格納部２８４から取得して、ＤＭＡ２９ａに対して出力する。
【００７４】
ここで、割り込みサブルーチンプログラムの情報とは、例えば、割り込みサブルーチンプログラムが格納されたフラッシュメモリ２２の格納領域のアドレス（転送元アドレス）、及び、割り込みサブルーチンプログラムのバイト数である。これらの情報は、それぞれ、ＤＭＡ２９ａに設けられた転送元アドレス格納レジスタ２９１及び転送バイト数格納レジスタ２９２に格納される。
【００７５】
また、ＤＭＡ制御回路２８１は、発生頻度第１位の割り込み要因ＩＤに対応する割り込みサブルーチンプログラムの格納先である、割り込みバッファメモリ２４の格納領域Ａ＿１のアドレス情報を、ＤＭＡ２９ａに対して出力する。このアドレス情報は、ＤＭＡ２９に設けられた転送先アドレス格納レジスタ２９３に格納される。
【００７６】
その後、ＤＭＡ制御回路２８１は、ＤＭＡ２９ａに設けられた転送開始フラグ２９４をアクティブ（例えば、ＬレベルからＨレベル）にする。それにより、ＤＭＡ２９ａは、指定されたアドレスの割り込みサブルーチンプログラムをフラッシュメモリ２２から読み出して、割り込みバッファメモリ２４の格納領域Ａ＿１に向けて転送を開始する。
【００７７】
ＤＭＡ２９ａは、転送が完了すると、転送完了フラグ２９５のアクティブ（例えば、ＬレベルからＨレベル）にする。それにより、ＤＭＡ制御回路２８１は、カウント値判定回路２８２から出力されたＭ個の割り込み要因ＩＤの中から選択される割り込み要因ＩＤを切り替える。具体的には、ＤＭＡ制御回路２８１は、カウント値判定回路２８２から出力されたＭ個の割り込み要因ＩＤの中から発生頻度第２位の割り込み要因ＩＤを選択する。
【００７８】
このような動作が、発生頻度第２位〜第Ｍ位の割り込み要因ＩＤに対しても繰り返される。それにより、発生頻度第１位から第Ｍ位までのＭ個の割り込み要因ＩＤに対応するＭ個の割り込みサブルーチンプログラムは、それぞれ、割り込みバッファメモリ２４の格納領域Ａ＿１〜Ａ＿Ｍに格納される。
【００７９】
（データ差し替え部２０の第２の具体的な構成例）
図１０は、データ差し替え部２０の第２の具体的な構成例をデータ差し替え部２０ｂとして示すブロック図である。図１０に示すように、データ差し替え部２０ｂは、データ差し替え制御回路２８ｂと、ＤＭＡ２９ｂと、を備える。なお、ＤＭＡ２９ｂは、ＤＭＡ２９ａと同様の構成を有する。
【００８０】
データ差し替え制御回路２８ｂは、カウント値判定回路２８２と、割り込み要因ＩＤ格納部２８３と、選択回路２８５と、制御回路２８６と、判定結果格納部２８７と、比較回路２８８＿１〜２８８＿Ｍと、ＯＲ回路２８９と、を備える。
【００８１】
カウント値判定回路２８２は、Ｎ個の割り込み回数カウンタ２７＿１〜２７＿Ｎのそれぞれのカウント値から、カウント値の高い順に第１位から第Ｍ位までのＭ個のカウンタを判定するとともに、これらＭ個のカウンタに対応するＭ個の割り込み要因ＩＤを、割り込み要因ＩＤ格納部２８３から読み出して出力する。つまり、カウント値判定回路２８２は、上位Ｍ番目までの高い発生頻度を示す割り込み要因のＩＤ（割り込み要因ＩＤ）を出力する。
【００８２】
制御回路２８６は、Ｍ個の割り込み要因ＩＤを１つずつ順番に選択して選択回路２８５から出力させる。例えば、制御回路２８６は、まず、Ｍ個の割り込み要因ＩＤの中から発生頻度第１位の割り込み要因ＩＤを選択して選択回路２８５から出力させる。
【００８３】
判定結果格納部２８７には、最後に判定された発生頻度上位Ｍ個の割り込み要因ＩＤが格納されている。換言すると、判定結果格納部２８７には、割り込みバッファメモリ２４に格納されたＭ個のサブルーチンプログラム、に対応するＭ個の割り込み要因ＩＤが格納されている。
【００８４】
比較回路２８８＿１〜２８８＿Ｍは、それぞれ、判定結果格納部２８７に格納された発生頻度第１位〜第Ｍ位の割り込み要因ＩＤと、選択回路２８５から新たに出力された割り込み要因ＩＤと、を比較して、比較結果Ｄ＿１〜Ｄ＿Ｍを出力する。例えば、比較回路２８８＿１〜２８８＿Ｍは、それぞれ、判定結果格納部２８７に格納された発生頻度第１位〜第Ｍ位の割り込み要因ＩＤと、選択回路２８５から新たに出力された割り込み要因ＩＤとが、一致する場合、Ｈレベルの比較結果Ｄ＿１〜Ｄ＿Ｍを出力し、一致しない場合、Ｌレベルの比較結果Ｄ＿１〜Ｄ＿Ｍを出力する。
【００８５】
ＯＲ回路２８９は、比較結果Ｄ＿１〜Ｄ＿Ｍの論理和を判定結果として出力する。例えば、ＯＲ回路２８９は、比較結果Ｄ＿１〜Ｄ＿Ｍの何れかがＨレベルを示す場合、Ｈレベルの判定結果を出力し、比較結果Ｄ＿１〜Ｄ＿ＭのすべてがＬレベルを示す場合、Ｌレベルの判定結果を出力する。
【００８６】
つまり、ＯＲ回路２８９は、判定結果格納部２８７に格納された第１位〜第Ｍ位の割り込み要因の中に、選択回路２８５から新たに出力された割り込み要因ＩＤ（ここでは発生頻度第１位の割り込み要因ＩＤ）が含まれている場合には、Ｈレベルの判定結果を出力し、含まれていない場合には、Ｌレベルの判定結果を出力する。
【００８７】
制御回路２８６は、ＯＲ回路２８９からの判定結果を受け取ると、選択回路２８５による割り込み要因ＩＤの選択の切り替えを行う。例えば、制御回路２８６は、発生頻度第１位の割り込み要因ＩＤから発生頻度第２位の割り込み要因ＩＤに切り替えて選択回路２８５から出力させる。その後、制御回路２８６は、ＯＲ回路２８９からの判定結果を受け取ると、再び選択回路２８５による割り込み要因ＩＤの選択の切り替えを行う。例えば、制御回路２８６は、発生頻度第２位の割り込み要因ＩＤから発生頻度第３位の割り込み要因ＩＤに切り替えて選択回路２８５から出力させる。その後、選択回路２８５によって発生頻度第Ｍ位の割り込み要因ＩＤが選択され、ＯＲ回路２８９からその判定結果が出力されるまで、このような動作が繰り返される。
【００８８】
制御回路２８６は、これらの判定結果から、判定結果格納部２８７に格納された発生頻度上位Ｍ個の割り込み要因ＩＤのうち、最新の発生頻度上位Ｍ個の割り込み要因ＩＤの何れとも一致しない割り込み要因ＩＤを抽出する。このとき抽出されたＩＤの割り込み要因は、上位Ｍ番目までの高い発生頻度を示す割り込み要因から除外されることになった割り込み要因、ということができる。また、制御回路２８６は、これらの判定結果から、最新の発生頻度上位Ｍ個の割り込み要因ＩＤのうち、判定結果格納部２８７に格納された発生頻度上位Ｍ個の割り込み要因ＩＤの何れとも一致しない割り込み要因ＩＤを抽出する。このとき抽出されたＩＤの割り込み要因は、上位Ｍ番目までの高い発生頻度を示す割り込み要因に新たに追加されることになった割り込み要因、ということができる。
【００８９】
制御回路２８６は、上位Ｍ番目までの高い発生頻度を示す割り込み要因に新たに追加されることになった割り込み要因、に対応する割り込みサブルーチンプログラムの情報（転送元アドレス及びバイト数）を、ＤＭＡ２９ｂに対して出力する。また、制御回路２８６は、上位Ｍ番目までの高い発生頻度を示す割り込み要因から除外されることになった割り込み要因、に対応する割り込みサブルーチンプログラムが格納された割り込みバッファメモリ２４のアドレス（転送先アドレス）を、ＤＭＡ２９ｂに対して出力する。
【００９０】
その後、ＤＭＡ２９ｂは、上位Ｍ番目までの高い発生頻度を示す割り込み要因に新たに追加されることになった割り込み要因、に対応する割り込みサブルーチンプログラムをフラッシュメモリ２２から読み出す。そして、その割り込みサブルーチンプログラムを、上位Ｍ番目までの高い発生頻度を示す割り込み要因から除外されることになった割り込み要因、に対応する割り込みサブルーチンプログラムが格納された割り込みバッファメモリ２４の格納領域に上書きする。
【００９１】
それにより、上位Ｍ番目までの高い発生頻度を示す割り込み要因から除外されることになった割り込み要因、に対応する割り込みサブルーチンプログラムのみが、上位Ｍ番目までの高い発生頻度を示す割り込み要因に新たに追加されることになった割り込み要因、に対応する割り込みサブルーチンプログラムに書き換えられる。
【００９２】
（半導体装置２の変形例）
図１１は、半導体装置２の変形例を半導体装置２ａとして示すブロック図である。半導体装置２ａでは、半導体装置２の場合と比較して、さらに、割り込み回数カウンタ２７＿１〜２７＿Ｎがデータバス２５に接続されている。半導体装置２ａのその他の構成については、半導体装置２の場合と同様であるため、その説明を省略する。
【００９３】
半導体装置２ａは、割り込み回数カウンタ２７＿１〜２７＿Ｎのそれぞれのカウント値をＣＰＵ２１によって任意の値に変更可能に構成されている。それにより、半導体装置２ａは、上位Ｍ番目までの高い発生頻度を示す割り込み要因を時間帯に応じて変更することができる。
【００９４】
例えば、半導体装置２ａを一日中連続的に動作させる場合、朝、昼、夜の時間帯毎に割り込みの発生頻度が異なる可能性がある。そこで、朝、昼、夜のそれぞれの時間帯の開始時に、割り込み回数カウンタ２７＿１〜２７＿Ｎのそれぞれのカウント値を任意の値（例えば“０”）に設定しなおすことにより、異なる時間帯におけるカウント値の影響を無くすことができる。それにより、半導体装置２ａの実用性を高めることができる。
【００９５】
＜実施の形態３＞
図１２は、実施の形態３にかかる半導体装置３の構成例を示すブロック図である。
図１２に示すように、半導体装置３は、ＣＰＵ３１と、フラッシュメモリ３２と、キャッシュメモリ３３と、割り込みバッファメモリ３４と、データバス３５と、割り込み制御回路３６と、期待値算出回路３７＿１〜３７＿Ｎと、を備える。
【００９６】
ここで、ＣＰＵ３１、フラッシュメモリ３２、キャッシュメモリ３３、割り込みバッファメモリ３４、データバス３５、及び、割り込み制御回路３６は、それぞれ、半導体装置１におけるＣＰＵ１１、フラッシュメモリ１２、キャッシュメモリ１３、割り込みバッファメモリ１４、データバス１５、及び、割り込み制御回路１６に対応する。
【００９７】
つまり、半導体装置３は、半導体装置１と比較して、期待値算出回路３７＿１〜３７＿Ｎをさらに備える。期待値算出回路３７＿１〜３７＿Ｎは、それぞれ、Ｎ個の要因の割り込みＩＮＴ＿１〜ＩＮＴ＿Ｎの発生確率の期待値をベイズ統計の公式を用いて算出する。それにより、発生頻度から発生確率を推定するよりも正確に発生確率を導出することができる。
【００９８】
具体的には、期待値算出回路３７＿ｉ（ｉは１〜Ｎの整数）は、期待値の初期設定値をＥｉ、分散値の初期設定値をＶｉとした場合に表されるパラメータαｉ，βｉをそれぞれαｉ＝Ｅｉ［｛Ｅｉ（１−Ｖｉ）／Ｖｉ｝−１］、βｉ＝（１−Ｅｉ）［｛Ｅｉ（１−Ｖｉ）／Ｖｉ｝−１］とすると、割り込みＩＮＴ＿ｉの発生確率の期待値μｉは、（αｉ＋担当する割り込み要因の割り込み発生回数）／（αｉ＋βｉ＋Ｎ個全ての割り込み要因の割り込み発生回数）と表すことができる。
【００９９】
なお、割り込みＩＮＴ＿ｉの発生確率の期待値μｉの初期設定値Ｅｉ及び分散値の初期設定値Ｖｉが分かっている場合には、それらの値を上述のパラメータαｉ，βｉの式に代入すればよい。他方、割り込みＩＮＴ＿ｉの発生確率の期待値μｉの初期設定値Ｅｉ及び分散値の初期設定値Ｖｉが分かっていない場合には、経験的及び主観的に推定される初期設定値Ｅｉ及び初期設定値Ｖｉを上述のパラメータαｉ，βｉの式に代入すればよい。例えば、割り込みＩＮＴ＿１の発生確率を３０％±１０％、割り込みＩＮＴ＿２の発生確率を２０％±１０％と設定する場合には、初期設定値Ｅ１＝０．３、初期設定値Ｖ１＝０．０１に設定し、初期設定値Ｅ２＝０．２、初期設定値Ｖ２＝０．０１に設定すればよい。
【０１００】
（期待値算出回路３７＿１〜３７＿Ｎの構成例）
図１３は、期待値算出回路３７＿ｉ（ｉは１〜Ｎの整数）の構成例を示すブロック図である。図１３に示すように、期待値算出回路３７＿ｉは、カウントアップ制御回路３７１と、期待値分子格納レジスタ３７２と、期待値分母格納レジスタ３７３と、除算回路３７４と、期待値格納レジスタ３７５と、を備える。カウントアップ制御回路３７１は、加算回路３７６，３７７を有する。
【０１０１】
期待値分子格納レジスタ３７２には、割り込みＩＮＴ＿ｉの発生確率の期待値μｉの分子の値が格納されている。期待値分母格納レジスタ３７３には、割り込みＩＮＴ＿ｉの発生確率の期待値μｉの分母の値が格納されている。加算回路３７６は、割り込みＩＮＴ＿ｉが発生した場合に、期待値分子格納レジスタ３７２に格納された期待値μｉの分子の値を１つカウントアップする。そして、カウントアップされた値は、期待値分子格納レジスタ３７２に格納される。加算回路３７７は、割り込みＩＮＴ＿１〜ＩＮＴ＿Ｎの何れかが発生した場合に、期待値分母格納レジスタ３７３に格納された期待値μｉの分母の値を１つカウントアップする。そして、カントアップされた値は、期待値分母格納レジスタ３７３に格納される。
【０１０２】
除算回路３７４は、期待値分子格納レジスタ３７２に格納された期待値μｉの分子の値を、期待値分母格納レジスタ３７３に格納された期待値μｉの分母の値で除して、その除算結果を出力する。この除算結果は、期待値格納レジスタ３７５に格納される。
【０１０３】
図１４は、割り込みＩＮＴ＿１〜ＩＮＴ＿Ｎの発生確率の期待値μ１〜μＮの変化の一例を示す図である。図１４にも示すように、ある時点での割り込みＩＮＴ＿１〜ＩＮＴ＿Ｎの発生確率の期待値μ１〜μＮは、例えば、以下のように表される。
μ１＝α１／（α１＋β１）
μ２＝α２／（α２＋β２）
μ３＝α３／（α３＋β３）
：
μＮ＝αＮ／（αＮ＋βＮ）
【０１０４】
ここで、例えば、割り込みＩＮＴ＿３が発生したとする。このとき、割り込みＩＮＴ＿１〜ＩＮＴ＿Ｎの発生確率の期待値μ１〜μＮを期待値μ１’〜μＮ’とすると、期待値μ１’〜μＮ’は以下のように表される。
μ１’＝        α１／（α１＋β１＋１）
μ２’＝        α２／（α２＋β２＋１）
μ３’＝（α３＋１）／（α３＋β３＋１）
：
μＮ’＝        αＮ／（αＮ＋βＮ＋１）
【０１０５】
図１５は、各割り込みＩＮＴ＿１〜ＩＮＴ＿Ｎの発生確率の分布及びその変化を示す図である。横軸は、各割り込みＩＮＴ＿１〜ＩＮＴ＿Ｎの発生確率を示し、縦軸は、各割り込みＩＮＴ＿１〜ＩＮＴ＿Ｎの発生確率に対する確率密度分布を示している。なお、図１５には、各割り込みＩＮＴ＿１〜ＩＮＴ＿Ｎの発生確率の平均値として、上述のベイズ統計の公式を用いて算出された期待値μ１〜μＮが示されている。
【０１０６】
図１５の左側では、ある時点での割り込みＩＮＴ＿１〜ＩＮＴ＿Ｎの発生確率の分布が示されている。ここで、例えば、割り込みＩＮＴ＿３が発生したとする。それにより、図１５の右側に示すように、割り込みＩＮＴ＿１〜ＩＮＴ＿Ｎの発生確率の分布が変化する。具体的には、割り込みＩＮＴ＿３の発生確率が上昇し、それ以外の割り込みの発生確率が下降する。また、上述のベイズ統計の公式を用いて算出された割り込みＩＮＴ＿３の期待値μ３が上昇し、それ以外の割り込みの発生確率の期待値μ１〜μ２，μ４〜μＮが下降する。
【０１０７】
（半導体装置３の動作）
続いて、図１６を参照しながら、半導体装置３の動作について説明する。
図１６は、半導体装置３の動作を示すフローチャートである。ここで、図１６に示す半導体装置３のステップＳ３０１〜Ｓ３０８の処理は、それぞれ、半導体装置１のステップＳ１０１〜Ｓ１０８の処理に対応する。
【０１０８】
半導体装置３において、割り込みサブルーチンプログラムの実行が完了すると（ステップＳ３０５，Ｓ３０８）、発生した割り込みの要因に対応する期待値分子格納レジスタ３７２の格納値をカウントアップさせる（Ｓ３０９）。また、Ｎ個全ての割り込みの要因に対応するＮ個の期待値分母格納レジスタ３７３の格納値をカウントアップさせる（Ｓ３１１０）。その後、期待値分子格納レジスタ３７２の格納値を期待値分母格納レジスタ３７３の格納値で除して、その除算結果を期待器格納レジスタ３７５に書き込む（ステップＳ３１１）。
【０１０９】
ＣＰＵ３１は、期待値算出回路３７＿１〜３７＿Ｎによる期待値μ１〜μＮの算出が完了すると、期待値μ１〜μＮのうち上位Ｍ番目までの高い値を示す期待値、に対応するＭ個の割り込みサブルーチンプログラムを、フラッシュメモリ３２から読み出して割り込みバッファメモリ３４に格納する（ステップＳ３１２）。これにより、割り込みバッファメモリ３４に既に格納されていたＭ個の割り込みサブルーチンプログラムは、フラッシュメモリ３２から新たに読み出されたＭ個の割り込みサブルーチンプログラムによって上書きされる。
【０１１０】
その後、半導体装置３は、ＣＰＵ３１による動作が完了した場合には（ステップＳ３１３のＹＥＳ）、動作を終了し、ＣＰＵ３１による動作が完了していない場合には（ステップＳ３１３のＮＯ）、ステップＳ３０１の処理に戻り、ステップＳ３０１〜Ｓ３１３の動作を繰り返す。
【０１１１】
半導体装置３のその他の動作については、半導体装置１の場合と同様であるため、その説明を省略する。
【０１１２】
このように、本実施の形態にかかる半導体装置３は、Ｎ個の割り込み要因のうち発生確率の期待値が高いＭ個の割り込み要因、に対応するＭ個の割り込みサブルーチンプログラムのみを格納する割り込みバッファメモリ３４を備える。それにより、本実施の形態にかかる半導体装置３は、割り込みバッファメモリ３４の記憶領域を低減させることができるため、高い割り込み応答性能を維持しつつ、回路規模及び消費電力の増大を抑制することができる。ここで、本実施の形態にかかる半導体装置３は、Ｎ個の要因の割り込みＩＮＴ＿１〜ＩＮＴ＿Ｎの発生確率の期待値をベイズ統計の公式を用いて算出している。それにより、本実施の形態にかかる半導体装置３は、発生頻度から発生確率を推定するよりも正確に発生確率を導出することができる。
【０１１３】
本実施の形態では、ベイズ統計のベータ分布により期待値の算出が行われた場合を例に説明したが、これに限られず、正規分布、ガンマ分布等の別の確率分布によって期待値の算出が行われてもよい。
【０１１４】
また、半導体装置３は、半導体装置２の場合と同様に、割り込みバッファメモリ３４の割り込みサブルーチンプログラムを書き換えるデータ差し替え部をさらに備えてもよい。それにより、ＣＰＵ３１の動作負担が軽減される。
【０１１５】
さらに、半導体装置３でも、半導体装置１，２の場合と同様に、所定の周期で、割り込みバッファメモリ３４に格納される割り込みサブルーチンプログラムの書き換えが行われてもよい。また、半導体装置３でも、半導体装置１，２の場合と同様に、上位Ｍ番目までの高い発生確率を示す割り込み要因から除外されることになった割り込み要因、に対応する割り込みサブルーチンプログラムのみが、上位Ｍ番目までの高い発生確率を示す割り込み要因に新たに追加されることになった割り込み要因、に対応する割り込みサブルーチンプログラムに書き換えられてもよい。
【０１１６】
以上のように、上記実施の形態１〜３に係る半導体装置１〜３は、Ｎ個の割り込み要因のうち発生確率が高いと判定されたＭ個の割り込み要因、に対応するＭ個の割り込みサブルーチンプログラムのみを格納する割り込みバッファメモリを備える。それにより、上記実施の形態１〜３にかかる半導体装置１〜３は、割り込みバッファメモリの記憶領域を低減させることができるため、高い割り込み応答性能を維持しつつ、回路規模及び消費電力の増大を抑制することができる。
【０１１７】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は既に述べた実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において種々の変更が可能であることはいうまでもない。
【０１１８】
例えば、上記の実施の形態に係る半導体装置では、半導体基板、半導体層、拡散層（拡散領域）などの導電型（ｐ型もしくはｎ型）を反転させた構成としてもよい。そのため、ｎ型、及びｐ型の一方の導電型を第１の導電型とし、他方の導電型を第２の導電型とした場合、第１の導電型をｐ型、第２の導電型をｎ型とすることもできるし、反対に第１の導電型をｎ型、第２の導電型をｐ型とすることもできる。
【符号の説明】
【０１１９】
１  半導体装置
１ａ，１ｂ  半導体装置
２  半導体装置
３  半導体装置
１１  ＣＰＵ（演算処理回路）
１２  フラッシュメモリ
１３  キャッシュメモリ
１４  割り込みバッファメモリ
１５  データバス
１６  割り込み制御回路
１７＿１〜１７＿Ｎ  割り込み回数カウンタ
１８  タイマ
１９  メモリ（判定結果格納部）
２０  データ差し替え部
２０ａ，２０ｂ  データ差し替え部
２１  ＣＰＵ
２２  フラッシュメモリ
２３  キャッシュメモリ
２４  割り込みバッファメモリ
２５  データバス
２６  割り込み制御回路
２７＿１〜２７＿Ｎ  割り込み回数カウンタ
２８  データ差し替え制御回路
２８ａ，２８ｂ  データ差し替え制御回路
２９  ＤＭＡ
２９ａ，２９ｂ  ＤＭＡ
３１  ＣＰＵ
３２  フラッシュメモリ
３３  キャッシュメモリ
３４  割り込みバッファメモリ
３５  データバス
３６  割り込み制御回路
３７＿１〜３７＿Ｎ  期待値算出回路
１６１＿１〜１６１＿Ｎ  ラッチ回路
１６２  優先順位判定回路
２８１  ＤＭＡ制御回路
２８２  カウント値判定回路
２８３  割り込み要因ＩＤ格納部
２８４  転送元割り込み情報格納部
２８５  選択回路
２８６  制御回路
２８７  判定結果格納部
２８８＿１〜２８８＿Ｍ  比較回路
２８９  ＯＲ回路
２９１  転送元アドレス格納レジスタ
２９２  転送バイト数格納レジスタ
２９３  転送先アドレス格納レジスタ
２９４  転送開始フラグ
２９５  転送完了フラグ
３７１  カウントアップ制御回路
３７２  期待値分子格納レジスタ
３７３  期待値分母格納レジスタ
３７４  除算回路
３７５  期待値格納レジスタ
３７６，３７７  加算回路
Ａ＿１〜Ａ＿Ｍ  割り込みサブルーチンプログラム格納領域
【図１】
2018197902.tif 000003
【図２】
2018197902.tif 000004
【図３】
2018197902.tif 000005
【図４】
2018197902.tif 000006
【図５】
2018197902.tif 000007
【図６】
2018197902.tif 000008
【図７】
2018197902.tif 000009
【図８】
2018197902.tif 000010
【図９】
2018197902.tif 000011
【図１０】
2018197902.tif 000012
【図１１】
2018197902.tif 000013
【図１２】
2018197902.tif 000014
【図１３】
2018197902.tif 000015
【図１４】
2018197902.tif 000016
【図１５】
2018197902.tif 000017
【図１６】
2018197902.tif 000018
【図１７】
2018197902.tif 000019
【図１８】
2018197902.tif 000020