(57)【要約】【課題】  ＣＰＵのキャッシュ領域に対して、ＣＰＵ以外のコンポーネントによるアクセスを可能にする。【解決手段】  本発明は、バスに接続され、ＣＰＵコアおよび該ＣＰＵコアのキャッシュメモリを備えたプロセッサモジュールと、前記バスに接続され、割り込みハンドラを記憶するためのシステムメモリと、前記バスに接続されたＤＭＡコントローラとを備える半導体装置である。前記ＤＭＡコントローラは、外部からの状態信号に基づく所定の転送命令に従って、前記システムメモリに記憶された前記割り込みハンドラを、前記バスを介して、前記プロセッサモジュールに転送するように制御を行う。また、前記プロセッサモジュールは、前記ＤＭＡコントローラによる制御に従って転送される前記割り込みハンドラを前記キャッシュメモリの少なくとも１つの記憶領域に書き込むように制御する。【選択図】  図１
2015184993.tif 000002
【特許請求の範囲】
【請求項１】
バスと、
前記バスに接続され、ＣＰＵコアおよび該ＣＰＵコアの利用に供されるキャッシュメモリを備えたプロセッサモジュールと、
前記バスに接続され、少なくとも１つの割り込みハンドラを記憶するためのシステムメモリと、
前記バスに接続されたＤＭＡコントローラと、を備える半導体装置であって、
前記ＤＭＡコントローラは、外部からの状態信号に基づく所定の転送命令に従って、前記システムメモリに記憶された前記少なくとも１つの割り込みハンドラを、前記バスを介して、前記プロセッサモジュールに転送するように制御を行い、
前記プロセッサモジュールは、前記ＤＭＡコントローラによる制御に従って転送される前記少なくとも１つの割り込みハンドラを前記キャッシュメモリの少なくとも１つの記憶領域に書き込むように制御する、
半導体装置。
【請求項２】
前記半導体装置はシステムオンチップ型半導体装置として構成される、請求項１記載の半導体装置。
【請求項３】
前記プロセッサモジュールは、
前記少なくとも１つの割り込みハンドラと前記キャッシュメモリの前記少なくとも１つの記憶領域を示すアドレスとを関連付けるアドレステーブルと、
前記アドレステーブルに従って、前記バスを介して転送される前記少なくとも１つの割り込みハンドラを前記キャッシュメモリの前記少なくとも１つの記憶領域に書き込みを行うバックリフィル部とを、備える、
請求項２記載の半導体装置。
【請求項４】
前記アドレステーブルは、前記バックリフィル部により書き込み可能な前記キャッシュメモリの前記少なくとも１つの記憶領域を示すアドレスを含む、請求項３記載の半導体装置。
【請求項５】
前記アドレステーブルは、前記キャッシュメモリの前記少なくとも１つの記憶領域に対する、前記ＣＰＵコア以外のコンポーネントによるアクセスが可能であることを示す有効フラグを含む、請求項３記載の半導体装置。
【請求項６】
前記バックリフィル部は、前記バスを介して第１の書き込みコマンドを検出した場合、前記第１の書き込みコマンドが示すアドレスおよび前記アドレステーブルに基づいて、前記キャッシュメモリの所定の記憶領域を無効化する、請求項３記載の半導体装置。
【請求項７】
前記バックリフィル部は、前記バスを介して第２の書き込みコマンドを検出した場合、前記第２の書き込みコマンドが示すアドレスおよび前記アドレステーブルに基づいて、前記バスを介して転送される前記少なくとも１つの割り込みハンドラを前記キャッシュメモリの前記少なくとも１つの記憶領域に書き込みを行う、請求項３記載の半導体装置。
【請求項８】
Ｉ／Ｏ信号ピンを介して外部との入出力制御を行うアプリケーションモジュールをさらに備え、
前記アプリケーションモジュールは、前記Ｉ／Ｏ信号ピンを共有する２以上の特定のサブモジュールを含む、
請求項１記載の半導体装置。
【請求項９】
前記アプリケーションモジュールは、前記状態信号が示すシステム状態の変化を検出するように構成され、
前記アプリケーションモジュールは、前記状態信号に基づいて前記システム状態の変化を検出する場合に、前記検出されたシステム状態の変化に対応する一の特定のサブモジュールに対応する一の割り込みハンドラが前記プロセッサモジュールに転送されるように、前記ＤＭＡコントローラに対して転送指示を行う、
請求項８記載の半導体装置。
【請求項１０】
前記アプリケーションモジュールは、前記ＤＭＡコントローラの制御による転送完了後、前記プロセッサモジュールの前記ＣＰＵコアに対して割り込みをかけ、
前記ＣＰＵコアは、前記割り込みに応じて前記キャッシュメモリの前記少なくとも１つの記憶領域に書き込まれた前記一の割り込みハンドラを使用する、
請求項９記載の半導体装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体装置に関し、特に、システムオンチップ（ＳｏＣ）型の半導体装置に関する。
【背景技術】
【０００２】
コンピュータシステムにおいては、一般に、プロセッサ等の処理装置と主記憶装置やバス等との間の処理性能差を吸収するために、処理装置内部に高速アクセス可能なキャッシュメモリを含むキャッシュ機構が設けられる。かかるキャッシュ機構は、典型的には、所定のキャッシュアルゴリズムに従って、新たなデータを書き込むためのキャッシュメモリ上の領域（キャッシュ領域）を選択し、確保する。また、キャッシュ機構は、処理装置による特殊命令に従って、特定のデータをキャッシュ領域における特定の領域に強制的に取り込み、該特定の領域をロックすることができ、これにより、該特定のデータが書き換えられることなく、常にキャッシュヒットすることとなる。
【０００３】
例えば、下記特許文献１は、キャッシュヒットを向上させるために、常駐させるべき命令コードやデータをキャッシュメモリに常駐させるキャッシュメモリ装置を開示する。具体的には、該特許文献１に開示された装置は、システムを動作させるためのプログラムやデータの処理を行うＣＰＵと、プログラムの命令コードやデータを格納するための低速でかつ大容量の主記憶装置と、主記憶装置より小容量でかつ高速な、命令コードやデータを一時的に格納するためのキャッシュメモリと、キャッシュメモリの置き換えや読み出し動作を行うキャッシュメモリ制御回路と、キャッシュメモリに常駐させた命令コードやデータの領域を置き換え動作時の置き換え対象から除外するための置き換え候補制御回路とを備えており、キャッシュメモリには常駐させるべき命令コードやデータが存在する領域が設けられる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−２８５７２７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
従来のキャッシュ機構においては、キャッシュメモリのサイズは小さく、かつ、限られているため、ロックした特定の領域に保持されたデータであっても、システムの状態の変化に応じて置換乃至はリフィルが必要となる場合がある。このような場合、ＣＰＵは、状態変化に基づく割り込み等に従って特殊なキャッシュ処理を実行することとなり、その間、他の処理を実施することができず、このため、かかる特殊な処理はＣＰＵのパフォーマンスを阻害する要因となっていた。また、かかる特殊なキャッシュ処理は、典型的には、アセンブラ等のプリミティブな言語で記述されることから、開発負担は大きく、開発の期間が長期化し、これにより、開発のコストを押し上げる要因となっていた。
【０００６】
そこで、本発明は、ＣＰＵの利用に供されるキャッシュ領域に対して、ＣＰＵ以外のコンポーネント乃至はモジュールによるアクセスを可能にしたマイクロアーキテクチャを提供することを目的とする。
【０００７】
より具体的には、本発明は、システムオンチップ型半導体集積回路であって、該半導体集積回路におけるＣＰＵコアによる処理を介すことなく、該ＣＰＵコアのキャッシュ領域における特定の領域に対してデータを置換乃至はリフィルすることができる半導体集積回路を提供することを目的の一つとする。
【課題を解決するための手段】
【０００８】
上記課題を解決するための本発明は、以下に示す発明特定事項乃至は技術的特徴を含んで構成される。
【０００９】
即ち、ある観点に従う本発明は、バスと、前記バスに接続され、ＣＰＵコアおよび該ＣＰＵコアの利用に供されるキャッシュメモリを備えたプロセッサモジュールと、前記バスに接続され、少なくとも１つの割り込みハンドラを記憶するためのシステムメモリと、前記バスに接続されたＤＭＡコントローラと、を備える半導体装置である。前記ＤＭＡコントローラは、外部からの状態信号に基づく所定の転送命令に従って、前記システムメモリに記憶された前記少なくとも１つの割り込みハンドラを、前記バスを介して、前記プロセッサモジュールに転送するように制御を行う。また、前記プロセッサモジュールは、前記ＤＭＡコントローラによる制御に従って転送される前記少なくとも１つの割り込みハンドラを前記キャッシュメモリの少なくとも１つの記憶領域に書き込むように制御する。
【００１０】
従って、ＣＰＵコアによる処理を介すことなく、該ＣＰＵコアのキャッシュメモリにおける特定のキャッシュ領域に対してデータを置換乃至はリフィルすることができるようになる。従って、ＣＰＵコアは、かかるキャッシュ領域に対してデータの置換が行われている間であっても、他の処理を実行することができるようになる。
【００１１】
前記半導体装置はシステムオンチップ型半導体装置として構成され得る。
【００１２】
また、前記プロセッサモジュールは、前記少なくとも１つの割り込みハンドラと前記キャッシュメモリの前記少なくとも１つの記憶領域を示すアドレスとを関連付けるアドレステーブルと、前記アドレステーブルに従って、前記バスを介して転送される前記少なくとも１つの割り込みハンドラを前記キャッシュメモリの前記少なくとも１つの記憶領域に書き込みを行うバックリフィル部とを備え得る。
【００１３】
また、前記アドレステーブルは、前記バックリフィル部により書き込み可能な前記キャッシュメモリの前記少なくとも１つの記憶領域を示すアドレスを含み得る。さらに、前記アドレステーブルは、前記キャッシュメモリの前記少なくとも１つの記憶領域に対する、ＣＰＵ以外のコンポーネント乃至はモジュールによるアクセスが可能であることを示す有効フラグを含み得る。
【００１４】
また、前記バックリフィル部は、前記バスを介して第１の書き込みコマンドを検出した場合、前記第１の書き込みコマンドが示すアドレスおよび前記アドレステーブルに基づいて、前記キャッシュメモリの所定の記憶領域を無効化し得る。
【００１５】
さらに、前記バックリフィル部は、前記バスを介して第２の書き込みコマンドを検出した場合、前記第２の書き込みコマンドが示すアドレスおよび前記アドレステーブルに基づいて、前記バスを介して転送される前記少なくとも１つの割り込みハンドラを前記キャッシュメモリの前記少なくとも１つの記憶領域に書き込みを行い得る。
【００１６】
さらにまた、前記半導体装置は、Ｉ／Ｏピンを介して外部との入出力制御を行うアプリケーションモジュールをさらに備え得る。
【００１７】
前記アプリケーションモジュールは、前記Ｉ／Ｏピンを共有する２以上の特定のサブモジュールを含み得る。
【００１８】
また、前記アプリケーションモジュールは、前記状態信号が示すシステム状態の変化を検出するように構成される。そして、前記アプリケーションモジュールは、前記状態信号に基づいて前記システム状態の変化を検出する場合に、前記検出されたシステム状態の変化に対応する一の特定のサブモジュールに対応する一の割り込みハンドラが前記プロセッサモジュールに転送されるように、前記ＤＭＡコントローラに対して転送指示を行い得る。
【００１９】
さらに、前記アプリケーションモジュールは、前記ＤＭＡコントローラの制御による転送完了後、前記プロセッサモジュールの前記ＣＰＵコアに対して割り込みをかけ得る。これにより、前記ＣＰＵコアは、前記割り込みに応じて前記キャッシュメモリの前記少なくとも１つの記憶領域に前記一の割り込みハンドラが書き込まれたことを認識して使用し得る。
【００２０】
なお、本発明は、上記装置の発明を方法の発明としても成立する。即ち、別の観点に従う本発明は、半導体装置におけるキャッシュ制御方法として把握され得る。
【発明の効果】
【００２１】
本発明によれば、システムオンチップ型半導体装置において、ＣＰＵコアによる処理を介すことなく、該ＣＰＵコアのキャッシュメモリにおける特定のキャッシュ領域に対してデータを置換乃至はリフィルすることができるようになる。従って、ＣＰＵコアは、かかるキャッシュ領域に対してデータの置換が行われている間であっても、他の処理を実行することができるようになる。
【００２２】
また、本発明によれば、システムオンチップ型半導体装置を用いたシステムの状態に変化が生じて、キャッシュメモリにおける特定の領域にロック（書き込み禁止）されたデータを置換する必要が生じた場合であっても、ＣＰＵコアによる処理を介すことなく、円滑に、該特定の領域におけるデータを置換し、その後、該特定の領域を再びロックすることができるようになる。
【００２３】
従って、プロセッサモジュールに対する特殊な処理をアセンブラ等で記述する必要がなく、開発者の開発負担は軽減され、これにより、開発の期間を短縮し、開発のコストも抑えることができるようになる。
【００２４】
本発明の他の技術的特徴、目的、及び作用効果乃至は利点は、添付した図面を参照して説明される以下の実施形態により明らかにされる。
【図面の簡単な説明】
【００２５】
【図１】本発明の一実施形態に係る半導体装置の概略構成の一例を示す図である。
【図２】本発明の一実施形態に係る半導体装置におけるプロセッサモジュールのキャッシュメモリの概略構成の一例を説明するための図である。
【図３】本発明の一実施形態に係る半導体装置におけるプロセッサモジュールのアドレステーブルの概略構成の一例を説明するための図である。
【図４】本発明の一実施形態に係る半導体装置におけるプロセッサモジュールのシステムアドレス空間を説明するための図である。
【図５】本発明の一実施形態に係る半導体装置におけるシステムメモリのアドレス空間を説明するための図である。
【図６】本発明の一実施形態に係る半導体装置におけるプロセッサモジュールのアドレステーブルの内容の一例を説明するための図である。
【図７】本発明の一実施形態に係る半導体装置における割り込みハンドラのキャッシュ処理の一例を説明するためのフローチャートである。
【図８Ａ】本発明の一実施形態に係る半導体装置におけるバックリフィル部による処理の一例を説明するためのフローチャートである。
【図８Ｂ】本発明の一実施形態に係る半導体装置におけるバックリフィル部による処理の一例を説明するためのフローチャートである。
【図９】本発明の一実施形態に係る半導体装置におけるプロセッサモジュールのキャッシュメモリの内容の一例を説明するための図である。
【図１０】本発明の一実施形態に係る半導体装置におけるデータ転送の一例を説明するための図である。
【図１１】本発明の一実施形態に係る半導体装置におけるプロセッサモジュールのキャッシュメモリの内容の一例を説明するための図である。
【図１２】本発明の一実施形態に係る半導体装置におけるプロセッサモジュールのキャッシュメモリの内容の他の例を説明するための図である。
【図１３】本発明の一実施形態に係る半導体装置におけるデータ転送の他の例を説明するための図である。
【図１４】本発明の一実施形態に係る半導体装置におけるプロセッサモジュールのキャッシュメモリの内容の他の例を説明するための図である。
【図１５】本発明の一実施形態に係る半導体装置の概略構成の他の例を示す図である。
【発明を実施するための形態】
【００２６】
以下、図面を参照して本発明の実施の形態を説明する。ただし、以下に説明する実施形態は、あくまでも例示であり、以下に明示しない種々の変形や技術の適用を排除する意図はない。本発明は、その趣旨を逸脱しない範囲で種々変形（例えば各実施形態を組み合わせる等）して実施することができる。また、以下の図面の記載において、同一又は類似の部分には同一又は類似の符号を付して表している。図面は模式的なものであり、必ずしも実際の寸法や比率等とは一致しない。図面相互間においても互いの寸法の関係や比率が異なる部分が含まれていることがある。
【００２７】
図１は、本発明の一実施形態に係る半導体装置の概略構成の一例を示す図である。同図に示すように、半導体装置１００は、複数のコンポーネント（機能ブロック）、例えば、プロセッサモジュール１１０と、システムメモリ１２０と、アプリケーションモジュール１３０と、ＤＭＡコントローラ（以下、「ＤＭＡＣ」という。）１４０とを含み、これらのコンポーネントをバス１５０により相互に接続にして構成されたシステムオンチップ（ＳｏＣ）である。
【００２８】
プロセッサモジュール１１０は、ＣＰＵコア１１１が、プログラムとして記述された命令セットを解釈することにより処理を実行するコンポーネントである。ここでは、「ＣＰＵコア」という語は、演算回路を含む処理装置を意味するプロセッサやＣＰＵ、ＭＰＵ、マイクロコントローラ等と同義のものとして扱われ、また、マルチコアプロセッサを意味するものであっても良い。プロセッサモジュール１１０は、典型的には、ＣＰＵコア１１１に加え、バスインターフェース（以下、「バスＩ／Ｆ」という。）１１２と、キャッシュ機構１１３と、割り込みコントローラ１１４とを含んで構成される。本実施形態では、また、プロセッサモジュール１１０は、アドレステーブル１１５とバックリフィル部１１６とをさらに含む。また、図示はしていないが、プロセッサモジュール１１０は、ＣＰＵコア１１１にブリッジを介して接続されるチップセットに関わる機能ブロックを含んでいても良い。
【００２９】
バスＩ／Ｆ１１２は、プロセッサモジュール１１０をバス１５０に接続するためのインターフェース回路である。バスＩ／Ｆ１１２は、例えば、所定のバスプロトコルに従って、バス１５０を介して他のコンポーネント（例えばシステムメモリ１２０）とのデータのやり取りを制御する。
【００３０】
キャッシュ機構１１３は、ＣＰＵコア１１１とバスおよび他のコンポーネントとの間の処理性能差を吸収するための記憶階層を実現するコンポーネントである。キャッシュ機構１１３は、典型的には、キャッシュメモリ１１３１とロード／ストア部１１３２とを含む。キャッシュメモリ１１３１は、高速アクセス可能なメモリ（例えばスタティックＲＡＭ）で構成されるが、これに限られるものではない。キャッシュメモリ１１３１は、典型的には、ライン（またはブロック）と呼ばれる所定サイズの記憶領域（キャッシュライン）に命令および／またはデータ（プログラムを含む。）を記憶する。ロード／ストア部１１３２は、キャッシュメモリ１１３１に対するアクセスを制御する回路であり、所定のキャッシュアルゴリズムに従って、キャッシュメモリ１１３１上のデータを置換し、また、目的とするデータがキャッシュメモリ１１３１上にあるか否かを判定し、それがキャッシュメモリ１１３１上にあると判定する場合（即ち、キャッシュヒットの場合）、ＣＰＵコア１１１の利用に供するために、該データをキャッシュメモリ１１３１から読み出す。キャッシュ機構１１３は、複数のレベルキャッシュ（例えば、Ｌ１キャッシュ、Ｌ２キャッシュ等）で構成されても良い。また、キャッシュ機構１１３におけるデータ格納構造は、本例では、理解の容易のため、１組のタグにより構成されるダイレクトマップ構造であるものとするが、これに限られるものではなく、例えば、セットアソシアティブ構造やフルアソシアティブ構造であっても良い。
【００３１】
割り込みコントローラ１１４は、プロセッサモジュール１１０の外部のコンポーネント（例えば、アプリケーションモジュール１３０や通信モジュール（図示せず））から発行される各種の割り込み信号ＩＮＴを受けて、ＣＰＵコア１１１に対して該割り込み信号に対応する割り込みをかける回路である。ＣＰＵコア１１１は、割り込みがかかると、それに対応する処理乃至は動作を行うことになる。例えば、割り込みコントローラ１１４は、アプリケーションモジュール１３０における特定のモジュールから送られる割り込み信号ＩＮＴを受けると、ＣＰＵコア１１１に対して割り込みをかけ、これにより、ＣＰＵコア１１１の制御の下、該特定のモジュールに対応するプログラム（即ち、割り込みハンドラ）を実行する。特に、本実施形態のＣＰＵコア１１１は、キャッシュメモリ１１３への割り込みハンドラのキャッシュ（即ち、リフィル）処理が必要な場合であっても、かかるキャッシュ処理から解放され、該キャッシュ処理が行われている間、他の処理を行うことができる。
【００３２】
アドレステーブル１１５は、キャッシュされるデータとバスアドレスとを関連付けるための各種のパラメータを格納するテーブルである。アドレステーブル１１５は、例えば、ＣＰＵコア１１１に実行される特殊命令によって書き換えられる。アドレステーブル１１５は、半導体装置１００を含むシステムが起動した際、例えば、ＢＩＯＳにより初期化される。
【００３３】
バックリフィル部１１６は、バスＩ／Ｆ１１２を介して転送される特定のデータを、アドレステーブル１１５に従って、キャッシュメモリ１１３１にキャッシュするためのコンポーネントである。つまり、バスＩ／Ｆ１１２を介して転送される特定のデータは、アドレステーブル１１５に従って、バックリフィル部１１６の制御の下（即ち、ロード／ストア部１１３２の制御とは無関係に）、キャッシュメモリ１１３１にキャッシュされることになる。
【００３４】
システムメモリ１２０は、典型的には、揮発性メモリ（例えばＤＲＡＭ）、不揮発性メモリ（例えばＲＯＭやフラッシュメモリ等）またはこれらの組み合わせからなるＣＰＵコア１１１の１次記憶装置である。典型的には、ＣＰＵコア１１１は、所定のバスプロトコルに従ってシステムバスアドレスを指定することにより、システムメモリ１２０上の対応する記憶領域に対してアクセスすることができる。記憶階層の観点から、一般に、システムメモリ１２０に対するアクセスは、キャッシュメモリ１１３１に対するそれよりも低速である。システムメモリ１２０は、典型的には、割り込みハンドラ、制御プログラム、及びプログラムデータ等の全部または一部を保持し、プロセッサモジュール１１０の利用に供される。本実施形態では、システムメモリ１２０は、割り込みハンドラとして、アプリケーションモジュール１３０の構成に対応するＰＷＭ割り込みハンドラ１２１およびキャプチャ割り込みハンドラ１２２を保持する。
【００３５】
アプリケーションモジュール１３０は、外部のコンポーネント（図示せず）との間で入出力制御を行うコンポーネントであり、一以上の特定のサブモジュールを含んで構成される。本実施形態では、アプリケーションモジュール１３０は、例えば、ＰＷＭモジュール１３１と、キャプチャモジュール１３２とを含んで構成される。ＰＷＭモジュール１３１は、所定の設定に従って、パルス波信号のデューティ比を変化させることにより該パルス波信号を変調し、Ｉ／Ｏ信号ピン１３３に対して出力する機能ブロックである。ＰＷＭモジュール１３１は、パルス波信号の出力が完了すると、割り込みコントローラ１１４に対する割り込み信号ＩＮＴをアサートする。一方、キャプチャモジュール１３２は、Ｉ／Ｏ信号ピン１３３に入力されるパルス波信号のデューティ比を計測する機能ブロックである。キャプチャモジュール１３２は、デューティ比の計測が完了すると、割り込みコントローラ１１４に対する割り込み信号ＩＮＴをアサートする。
【００３６】
本実施形態では、ＰＷＭモジュール１３１とキャプチャモジュール１３２とは、Ｉ／Ｏ信号ピン１３３を共有するように構成されており、従って、仕様上、ＰＷＭモジュール１３１とキャプチャモジュール１３２とが同時に駆動されることはないものとする。ＰＷＭモジュール１３１またはキャプチャモジュール１３２のいずれが駆動されるかは、半導体装置１００の外部から状態信号ピン１３４に入力される状態信号に依存する。従って、半導体装置１００の設計上、ＰＷＭモジュール１３１およびキャプチャモジュール１３２のそれぞれに対応するＰＷＭ割り込みハンドラ１２１及びキャプチャ割り込みハンドラ１２２は、キャッシュメモリ１１３１に両方ともキャッシュされる必要はない。つまり、メモリサイズの限られたキャッシュメモリ１１３１を有効的に用いるため、ＰＷＭ割り込みハンドラ１２１およびキャプチャ割り込みハンドラ１２２は、キャッシュメモリ１１３１の特定の領域に排他的にキャッシュされる。
【００３７】
アプリケーションモジュール１３０は、例えば、ＤＭＡＣ１４０と制御線を介して接続される。アプリケーションモジュール１３０は、半導体装置１００の外部から状態信号ピン１３４に入力される状態信号が示す状態の変化に応じて、制御線を介してＤＭＡＣ１４０に対してスタート信号を出力し、これにより、データ（即ち、対応する割り込みハンドラ）の転送を要求する。
【００３８】
ＤＭＡＣ１４０は、指定されたコンポーネント間で、直接的にデータを転送するためのコンポーネントである。本実施形態では、ＤＭＡＣ１４０は、アプリケーションモジュール１３０から出力されるスタート信号に従って、システムメモリ１２０に記憶された特定の割り込みハンドラをプロセッサモジュール１１０のキャッシュメモリ１１３１に対して転送する。例えば、ＤＭＡＣ１４０のレジスタ（図示せず）には、転送元の記憶領域のアドレス（転送元アドレス）、転送先の記憶領域のアドレス（転送先アドレス）、およびデータ長を示すパラメータを含む命令が予めセットされ、または、必要に応じてセットされる。ＤＭＡＣ１４０は、スタート信号に従って要求されたデータ転送が完了すると、制御線を介してアプリケーションモジュール１３０に対して終了信号を出力し、データ転送が完了した旨を通知する。
【００３９】
バス１５０は、コンピュータシステム１００におけるプロセッサモジュール１１０等のコンポーネント間でデータを伝送するための各種の信号線を含む伝送路である。バス１５０は、典型的には、コンポーネントのアドレス情報を伝送するためのアドレス線ＡＤＤと、コンポーネントにデータを伝送するためのデータ線ＤＡＴＡと、コンポーネントに対する制御情報を伝送するための制御線ＣＮＴとを含んで構成される（図示せず）。バス１５０は、例えば、シリアル方式であってもパラレル方式であっても良い。
【００４０】
図２は、本発明の一実施形態に係る半導体装置におけるプロセッサモジュール１１０のキャッシュメモリの概略構成の一例を説明するための図である。本実施形態では、キャッシュメモリ１１３１のデータ格納構造は、ダイレクトマップ方式を採用している。従って、同図に示すように、キャッシュメモリ１１３１は、例えば、インデックス欄２０１、有効フラグ欄２０２、タグ欄２０３、およびデータブロック欄２０４からなる複数のキャッシュライン（記憶領域）で構成される。
【００４１】
インデックス欄２０１は、各キャッシュラインを一意に管理するための欄である。本例では、インデックス欄２０１には、１０２４個のキャッシュラインを一意に管理するため、インデックス番号“０〜１０２３”の数字が割り当てられている。有効フラグ欄は、該キャッシュラインが有効であるか否かを示す欄である。例えば、有効フラグ欄の値が“１”であれば、該キャッシュラインは有効であることを示し、“０”であれば、該キャッシュラインは無効であることを示す。タグ欄２０３は、システムメモリ１２０上のどのアドレスのデータが保持されているかを管理するための欄である。データブロック欄２０４は、データを格納する欄である。本例では、データブロック欄２０４のサイズは、３２バイトである。
【００４２】
図３は、本発明の一実施形態に係る半導体装置におけるプロセッサモジュール１１０のアドレステーブルの概略構成の一例を説明するための図である。上述したように、アドレステーブル１１５は、キャッシュされるデータとバスアドレスとを関連付けるための各種のパラメータを格納するテーブルである。ＣＰＵコア１１１およびバックリフィル部１１６は、例えば、特殊命令を実行することにより、アドレステーブル１１５の内容を書き換えることができる。
【００４３】
即ち、同図に示すように、アドレステーブル１１５は、例えば、セット番号欄３０１、有効フラグ欄３０２、インデックス欄３０３、データ長欄３０４、ターゲット欄３０５、ポート欄３０６、およびクリア欄３０７からなる複数のパラメータセットで構成される。
【００４４】
セット番号欄３０１は、各パラメータセットを一意に管理するための番号を保持する欄である。本例では、セット番号欄３０１は、８個のパラメータセットを管理するため、セット番号“０〜７”の数字が割り当てられている。有効フラグ欄３０２は、該パラメータセットが有効であるか否かを示す欄である。後述するように、有効フラグ欄３０２が有効であることを示す値（例えば“１”）である場合、そのパラメータセットが示すキャッシュ領域が、バス１５０を介して外部のコンポーネントから書き込み可能な状態であることを示す。インデックス欄３０３は、プロセッサモジュール１１０の外部のコンポーネントがバス１５０を介してデータを書き込み可能なキャッシュメモリ１１３１内の先頭アドレス（即ち、キャッシュライン）を指定する欄である。即ち、インデックス欄３０３には、プロセッサモジュール１１０の外部のコンポーネントがバス１５０を介してデータを書き込み可能なキャッシュメモリ１１３１のインデックス欄２０１の値が格納される。データ長欄３０４は、外部から書き込み可能なキャッシュメモリ１１３１の記憶領域サイズを例えばキャッシュラインの数によって指定する。他の例として、データ長欄３０４は、キャッシュラインのサイズに合わせたバイト数やワード数によって指定しても良い。ターゲット欄３０５は、キャッシュの対象となるシステムメモリ１２０上の記憶領域のアドレス（即ち、システムバスアドレス）を指定する欄である。典型的には、ターゲット欄３０５には、常にキャッシュヒットさせたいデータ（ターゲットデータ）を格納するシステムメモリ１２０上の記憶領域の先頭アドレス（ターゲットアドレス）が格納される。ポート欄３０６は、ターゲットデータが書き込まれるべきキャッシュメモリ１１３１上のキャッシュ領域の先頭アドレスに対応するシステムバスアドレス（ポートアドレス）を指定する欄である。クリア欄３０７は、該当するパラメータセットが示すキャッシュ領域を無効にする際に使用されるシステムバスアドレスを指定する欄である。クリア欄３０７に所定のシステムバスアドレス（クリアアドレス）が指定され、そのシステムバスアドレスに対して書き込みが行われると、該パラメータセットにおけるインデックス欄３０３およびデータ長欄３０４で指定されたキャッシュ領域が無効化されることとなる。
【００４５】
かかるアドレステーブル１１５によれば、インデックス欄３０３とデータ長欄３０４とで示されるキャッシュメモリ１１３１上のキャッシュ領域は、ターゲット欄３０５と該データ長欄３０４とで示されるシステムメモリ１２０上の記憶領域(システムバス領域）に対応することになる。また、インデックス欄３０３とデータ長欄３０４とで示されるキャッシュメモリ１１３１上のキャッシュ領域が、有効フラグ欄３０２によって有効であるとされる場合、対応するポート欄３０６とデータ長欄３０４とで示されるシステムバスアドレスに対して書き込みが行われ、その内容が書き換えられることとなる。
【００４６】
なお、インデックス欄３０３およびデータ長欄３０４で指定される同一のキャッシュ領域は、複数のパラメータセットによって指定されても良い。
【００４７】
アドレステーブル１１５を参照するバックリフィル部１１６は、バスＩ／Ｆ１１２を介してポート欄３０６とデータ長欄３０４とで示される領域に対する書き込みコマンドを検出すると、取り込まれるデータをインデックス欄３０３とデータ長欄３０４とで示されるキャッシュメモリ１１３１上のキャッシュ領域（即ち、キャッシュライン）に書き込む。また、バックリフィル部１１６は、該キャッシュ領域に対する書き込みを完了すると、キャッシュメモリ１１３１における対応するキャッシュラインの有効フラグ欄２０２に有効であることを示す値をセットする。またこれと同時に、バックリフィル部１１６は、該キャッシュ領域をロック状態とする。
【００４８】
また、アドレステーブル１１５の内容に従ってバス１５０を介した外部のコンポーネントからのアクセスが許可されたキャッシュ領域であっても、ＣＰＵコア１１１は、有効フラグ欄３０２が無効であることを示す値（例えば“０”）である場合には、かかるキャッシュ領域を使用することができる。
【００４９】
図４は、本発明の一実施形態に係る半導体装置におけるプロセッサモジュール１１０のシステムアドレス空間を説明するための図である。同図に示すように、ＣＰＵコア１１１は、システムメモリ１２０のアドレス空間と、キャッシュメモリ１１３１のアドレス空間とを含むシステムアドレス空間４００を管理し得る。システムメモリ１２０のアドレス空間は、割り込みハンドラを記憶する記憶領域を有する。該記憶領域は、アドレステーブル１１５によって、ターゲットアドレスと呼ばれるシステムバスアドレスに対応付けられている。また、キャッシュメモリ１１３１の記憶領域は、アドレステーブル１１５によってポートアドレスに対応付けられている。なお、本例では、ＣＰＵコア１１１のシステムアドレス空間４００は０ｘ０〜０ｘＦＦＦＦ＿ＦＦＦＦとしたが、これに限られるものではなく、ＣＰＵコア１１１の仕様に応じて設定され得る。
【００５０】
以上のように構成される半導体装置１００は、典型的には、いわゆるマザーボード等に搭載され、他の半導体装置やコンポーネントとともに電子回路システムを構成する。例えば、電子回路システムに電源が投入されると、半導体装置１００は起動し、所定の初期化処理を行う。例えば、キャッシュメモリ１１３１のキャッシュラインは全て無効となる。また、アドレステーブル１５１の全てのパラメータセットも無効となる。この場合には、ＣＰＵコア１１１は、全てのキャッシュラインを使用することができ、ロード／ストア部１１３２によって、所定のデータがキャッシュされ、アクセス可能になる。
【００５１】
初期化処理において、または、初期化処理後、アプリケーションモジュール１３０のＰＷＭモジュール１３１またはキャプチャモジュール１３２のいずれかが有効な状態になり、ＣＰＵコア１１１は、所定のシーケンスを実行して、その処理を実行するための割り込みハンドラがキャッシュメモリ１１３１にキャッシュされるように、アドレステーブル１５１の初期設定を行う。
【００５２】
例えば、ＰＷＭ割り込みハンドラ１２１およびキャプチャ割り込みハンドラ１２２は、システムメモリ１２０上に、図５に示すように配置されているものとする。このことから明らかなように、ＰＷＭ割り込みハンドラ１２１のデータ長は、０ｘ４８０であり、キャプチャ割り込みハンドラ１２２のデータ長は、０ｘ５２４である。本例では、キャッシュメモリ１１３１のデータブロック２０４のバウンダリーは３２バイトであるため、それぞれの割り込みハンドラ１２１および１２２の全体がキャッシュメモリ１１３１にキャッシュされるために、以下の本数のキャッシュラインが必要となる。
ＰＷＭ割り込みハンドラ１２１…３７本
キャプチャ割り込みハンドラ１２２…４２本
【００５３】
ＣＰＵコア１１１は、例えば、システムメモリ１２０上に書き込まれている制御情報に基づいて、使用される割り込みハンドラが書き込まれるべきキャッシュメモリ１１３１上のアドレスに対応するシステムバスアドレス（ポートアドレス）を得ることができるようになっている。つまり、かかるシステムバスアドレス（ポートアドレス）に対する書き込みコマンドが発行されると、割り込みハンドラは、キャッシュメモリ１１３１上の対応するキャッシュラインに書き込まれることになる。本例では、ＰＷＭ割り込みハンドラ１２１およびキャプチャ割り込みハンドラ１２２をキャッシュメモリ１１３１に書き込むためのシステムバスアドレス（ポートアドレス）はそれぞれ、０ｘ５０００＿３４００および０ｘ５０００＿６５４０であるものとする。また、かかる制御情報には、キャッシュメモリ１１３１上の割り込みハンドラを削除（無効）にするためのシステムバスアドレス（クリアアドレス）もまた保持されている。本例では、ＰＷＭ割り込みハンドラ１２１およびキャプチャ割り込みハンドラ１２２を無効にするためのシステムバスアドレス（クリアアドレス）はそれぞれ、０ｘ６０００＿３４００および０ｘ６０００＿６５４０であるものとする。ＣＰＵコア１１１は、初期化処理において、または、初期化処理後、該制御情報の内容に従って、例えば図６に示すようにアドレステーブル１５１を初期設定する。この時点では、キャッシュメモリ機構１１３のロード／ストア部１１３２は、所定のキャッシュアルゴリズムに従って、例えば、最もアクセス頻度が高いデータがキャッシュメモリ１１３１に保持されるように、動作を行う。
【００５４】
次に、以上のように構成された半導体装置１００における割り込みハンドラのキャッシュ処理について説明する。図７は、本発明の一実施形態に係る半導体装置における割り込みハンドラのキャッシュ処理の一例を説明するためのフローチャートである。
【００５５】
同図に示すように、半導体装置１００のアプリケーションモジュール１３０は、状態信号ピン１３４に入力される状態信号が変化したか否かを監視する（Ｓ７０１）。半導体装置１００を含む電子回路システムにおいて、その状態が変化し、状態信号が変化すると、アプリケーションモジュール１３０は、これを検出し（Ｓ７０１のＹｅｓ）、所定の割り込みハンドラがキャッシュメモリ１１３１上でＣＰＵコア１１１の利用に供されるようにするため、ＤＭＡＣ１４０に対してスタート信号を出力する（Ｓ７０２）。これにより、アプリケーションモジュール１３０は、ＤＭＡＣ１４０から出力される終了信号を待つことになる。
【００５６】
ＤＭＡＣ１４０は、スタート信号を受けると、キャッシュメモリ１１３１上の所定のキャッシュラインを無効化するため、所定のシステムバスアドレス（クリアアドレス）に対して書き込みコマンドを発行し、バックリフィル部１１６は、これを検出して、アドレステーブル１１５に従って、キャッシュメモリ１１３１上の指定されたキャッシュラインを全て無効化する（Ｓ７０３）。即ち、本例では、ＤＭＡＣ１４０は、レジスタに予め定められた該割り込みハンドラと排他的な関係にある割り込みハンドラのクリアアドレスに対して書き込みコマンドを発行し、バックリフィル部１１６は、アドレステーブル１１５のクリア欄３０７に対応するインデックス欄３０３およびデータ長欄３０４で示されるキャッシュメモリ１１３１のキャッシュラインの有効フラグ欄２０２に“０”を書き込む。
【００５７】
続いて、ＤＭＡＣ１４０は、システムメモリ１２０上の転送元アドレス（割り込みハンドラのターゲットアドレス）、転送先アドレス（割り込みハンドラのポートアドレス）および該割り込みハンドラのデータ長を含む所定のパラメータを所定のレジスタにセットして、該割り込みハンドラを構成するデータの転送を開始する（Ｓ７０４）。これにより、バスＩ／Ｆ１１２を介して転送されるデータを受けるバックリフィル部１１６は、アドレステーブル１１５に従って、キャッシュメモリ１１３１上の指定されたキャッシュラインに該データを書き込んでいくことになる。ＤＭＡＣ１４０は、かかるデータの転送を監視し（Ｓ７０４）、データの転送が完了すると（Ｓ７０４のＹｅｓ）、アプリケーションモジュール１３０に対して終了信号を出力する（Ｓ７０５）。
【００５８】
アプリケーションモジュール１３０は、ＤＭＡＣ１４０より終了信号を受けると、割り込みハンドラのキャッシュメモリ１１３１へのキャッシュが完了したと判断し、割り込みコントローラ１１４に対して割り込み信号ＩＮＴを出力する（Ｓ７０６）。これにより、ＣＰＵコア１１１には割り込みがかかり、ＣＰＵコア１１１は、割り込みハンドラがキャッシュメモリ１１３１に書き込まれたことを認識することになる。
【００５９】
図８Ａ及び図８Ｂは、本発明の一実施形態に係る半導体装置におけるバックリフィル部による処理の一例を説明するためのフローチャートである。バックリフィル部１１６は、例えば、クリアアドレスに従った処理とポートアドレスに従った処理を並行的に実行し得る。
【００６０】
即ち、同図Ａに示すように、バックリフィル部１１６は、バスＩ／Ｆ１１２を介してクリアアドレスに対する書き込みコマンドがあったか否かを監視する（Ｓ８０１Ａ）。バックリフィル部１１６は、クリアアドレスに対する書き込みコマンドがあったことを検出すると（Ｓ８０１ＡのＹｅｓ）、アドレステーブル１１５を参照し、クリア欄３０７に書き込みコマンドが示すクリアアドレスが書き込まれているパラメータセットが示すキャッシュラインを無効化する（Ｓ８０２Ａ）。即ち、バックリフィル部１１６は、書き込みコマンドが示すクリアアドレスが書き込まれたアドレステーブル１１５のクリア欄３０７に対応するインデックス欄３０３およびデータ長欄３０４で示されるキャッシュメモリ１１３１のキャッシュラインの有効フラグ欄２０２に“０”を書き込む。
【００６１】
また、バックリフィル部１１６は、バスＩ／Ｆ１１２を介してポートアドレスに対する書き込みコマンドがあったか否かを監視する（Ｓ８０１Ｂ）。バックリフィル部１１６は、ポートアドレスに対する書き込みコマンドがあったことを検出すると（Ｓ８０１ＢのＹｅｓ）、バスＩ／Ｆ１１２を介して転送されてくるデータを、アドレステーブル１１５に従って、キャッシュメモリ１１３１の対応するキャッシュラインに順次に書き込んでいく（Ｓ８０２Ｂ）。このように、ＤＭＡＣ１４０の制御の下でバスＩ／Ｆ１１２を介して転送されてくるデータは、バックリフィル部１１６によって、アドレステーブル１１５が示す内容に従い、キャッシュメモリ１１３１の所定の領域に書き込まれることになる。
【００６２】
次に、割り込みハンドラがバスＩ／Ｆ１１２を介してキャッシュメモリ１１３１に書き込まれる場合の処理の流れについて、ＰＷＭ割り込みハンドラ１２１およびキャプチャ割り込みハンドラ１２２のそれぞれを例にして説明する。
【００６３】
＜ＰＷＭモジュール１３１の有効化の場合＞
まず、電子回路システムにおいて状態が変化し、アプリケーションモジュール１３０に対してＰＷＭモジュール１３１を有効にするよう指示する状態信号が入力されたとする。アプリケーションモジュール１３０は、これを受けて、スタート信号を“Ｓｔａｒｔ［１：０］＝１０ｂ”として出力することにより、ＤＭＡＣ１４０に対して、ＰＷＭモジュール１３１用に規定されたデータ転送を実行するよう指示を出す。
【００６４】
ＤＭＡＣ１４０は、かかるスタート信号を受けると、クリアアドレス“０ｘ６０００＿６５４０”に対して書き込みコマンドを発行する。クリアアドレス“０ｘ６０００＿６５４０”は、ＰＷＭ割り込みハンドラ１２１と排他的に使用されるキャプチャ割り込みハンドラ１２２を無効にするための指定アドレスである。バックリフィル部１１６は、該クリアアドレスに対する書き込みコマンドを検出すると、アドレステーブル１１５のパラメータセット番号“１”が示すパラメータセットの内容に従って、キャッシュメモリ１１３１のインデックス番号“０〜４１”のキャッシュラインを図９に示すように全て無効にする。
【００６５】
次に、ＤＭＡＣ１４０は、バックリフィル部１１６によるキャッシュラインの無効化の完了後、以下の転送パラメータに従ったデータの転送を行うため、書き込みコマンドを発行する。
転送元アドレス：０ｘ４０００＿３４００（ＰＷＭ割り込みハンドラ１２１のターゲットアドレス）
転送先アドレス：０ｘ５０００＿３４００（ＰＷＭ割り込みハンドラ１２１のポートアドレス）
データ長：０ｘ４Ａ０（ＰＷＭ割り込みハンドラ１２１のデータ長；３２バイト×：３７ライン）
【００６６】
これにより、半導体装置１００において、ＤＭＡＣ１４０の制御の下、図１０に示すようなデータ転送が開始する。バックリフィル部１１６は、該書き込みコマンドを検出すると、アドレステーブル１１５を参照し、アドレステーブル１１５のパラメータセット番号“０”が示すパラメータセットの内容に従って、キャッシュメモリ１１３１のキャッシュラインに順次にデータをキャッシュする。この結果、キャッシュメモリ１１３１の内容は、図１１に示すようにセットされる。同図から明らかなように、インデックス番号“０〜３６”のキャッシュラインは有効フラグ欄２０２が有効を示すことになり、さらに自動的にロックされることで、ロード／ストア部１１３２によって書き換えられることはなくなる。
【００６７】
ＤＭＡＣ１４０は、データの転送が完了すると、終了信号を“Ｆｉｎｉｓｈ［１：０］＝１０ｂ”として出力することにより、アプリケーションモジュール１３０に対して、ＰＷＭ割り込みハンドラ１２１のキャッシュメモリ１１３１への転送が完了したことを通知する。これに伴い、スタート信号および終了信号はともに“００ｂ”の値に戻る。
【００６８】
この後、アプリケーションモジュール１３０は、割り込みコントローラ１１４に対して割り込み信号ＩＮＴを出力し、これにより、ＣＰＵコア１１１に割り込みをかける。ＣＰＵコア１１１は、該割り込みがかかると、キャッシュメモリ１１３１にキャッシュされたＰＷＭ割り込みハンドラ１２１がキャッシュメモリ１１３１に書き込まれたことを認識し、その後、ＰＷＭモジュール１３１からの割り込み信号ＩＮＴがアサートされるごとに、キャッシュメモリ１１３１上のＰＷＭ割り込みハンドラを使用することになる。
【００６９】
＜キャプチャモジュール１３２の有効化の場合＞
次に、電子回路システムにおいて状態が変化し、アプリケーションモジュール１３０に対してキャプチャモジュール１３２を有効にするよう指示する状態信号が入力されたとする。アプリケーションモジュール１３０は、これを受けて、スタート信号を“Ｓｔａｒｔ［１：０］＝１１ｂ”として出力することにより、ＤＭＡＣ１４０に対してキャプチャモジュール１３２用に規定されたデータ転送を実行するよう指示を出す。
【００７０】
ＤＭＡＣ１４０は、かかるスタート信号を受けると、クリアアドレス“０ｘ６０００＿３４００”に対して書き込みコマンドを発行する。クリアアドレス“０ｘ６０００＿３４００”は、キャプチャ割り込みハンドラ１２２と排他的に使用されるＰＷＭ割り込みハンドラ１２１を無効にするための指定アドレスである。バックリフィル部１１６は、該クリアアドレスに対する書き込みコマンドを検出すると、アドレステーブル１１５のパラメータセット番号“０”が示すパラメータセットの内容に従って、キャッシュメモリ１１３１のインデックス番号“０〜３６”のキャッシュラインを図１２に示すように全て無効にする。
【００７１】
次に、ＤＭＡＣ１４０は、バックリフィル部１１６によるキャッシュラインの無効化の完了後、以下の転送パラメータに従ったデータの転送を行うため、書き込みコマンドを発行する。
転送元アドレス：０ｘ４０００＿６５４０（キャプチャ割り込みハンドラ１２２のターゲットアドレス）
転送先アドレス：０ｘ５０００＿６５４０（キャプチャ割り込みハンドラ１２２のポートアドレス）
データ長：０ｘ５４０（キャプチャ割り込みハンドラ１２２のデータ長；３２バイト×：４２ライン）
【００７２】
これにより、半導体装置１００において、ＤＭＡＣ１４０の制御の下、図１３に示すようなデータ転送が開始する。バックリフィル部１１６は、該書き込みコマンドを検出すると、アドレステーブル１１５を参照し、アドレステーブル１１５のパラメータセット番号“１”が示すパラメータセットの内容に従って、キャッシュメモリ１１３１のキャッシュラインに順次にデータを書き込む。この結果、キャッシュメモリ１１３１の内容は、図１４に示すようにセットされる。同図から明らかなように、インデックス番号“０〜４１”のキャッシュラインは有効フラグ欄２０２が有効を示し、さらに自動的にロックされることで、ロード／ストア部１１３２によって書き換えられることはなくなる。
【００７３】
ＤＭＡＣ１４０は、データの転送が完了すると、終了信号を“Ｆｉｎｉｓｈ［１：０］＝１１ｂ”として出力することにより、アプリケーションモジュール１３０に対して、キャプチャ割り込みハンドラ１２２のキャッシュメモリ１１３１への転送が完了したことを通知する。これに伴い、スタート信号および終了信号はともに“００ｂ”の値に戻る。
【００７４】
この後、アプリケーションモジュール１３０は、割り込みコントローラ１１４に対して割り込み信号ＩＮＴを出力し、これにより、ＣＰＵコア１１１に割り込みをかける。ＣＰＵコア１１１は、該割り込みがかかると、キャッシュメモリ１１３１にキャッシュされたキャプチャ割り込みハンドラ１２２がキャッシュメモリ１１３１に書き込まれたことを認識することになる。その後、キャプチャモジュール１３２から割り込み信号ＩＮＴがアサートされるごとに、該キャッシュメモリ１１３１上の割り込みを使用することになる。
【００７５】
以上のように、本実施形態によれば、システムオンチップ型半導体装置１００において、ＣＰＵコア１１１による処理を介すことなく、該ＣＰＵコア１１１の特定のキャッシュラインに対してデータがキャッシュされることになる。従って、ＣＰＵコア１１１は、かかるキャッシュラインに対してデータの置換が行われている間であっても、他の処理を実行することができるようになる。
【００７６】
また、本実施形態によれば、半導体装置１００を用いたシステムの状態に変化が生じて、キャッシュメモリ１１３１上の特定のキャッシュラインにロックされたデータを置換する必要が生じた場合であっても、ＣＰＵコア１１１による処理を介すことなく、円滑に、特定のキャッシュラインに対するデータを置換し、該特定のキャッシュラインを再びロックすることができるようになる。
【００７７】
図１５は、本発明の一実施形態に係る半導体装置の概略構成の変形例を示す図である。本例の半導体装置１００’は、同図に示すように、プロセッサモジュール１１０のロード／ストア部１５０１が上述したバックリフィル部１１６の機能を包含するように構成されている点で、図１に示した半導体装置１００と異なっている。即ち、ロード／ストア部１５０１は、バスＩ／Ｆ１１２を介して書き込みコマンドを検出した場合には、アドレステーブル１１５に示す内容に従って、バスＩ／Ｆ１１２を介して転送されてくるデータをキャッシュメモリ１１３１に書き込むように動作する。
【００７８】
上記各実施形態は、本発明を説明するための例示であり、本発明をこれらの実施形態にのみ限定する趣旨ではない。本発明は、その要旨を逸脱しない限り、さまざまな形態で実施することができる。
【００７９】
例えば、本明細書に開示される方法においては、その結果に矛盾が生じない限り、ステップ、動作又は機能を並行して又は異なる順に実施しても良い。説明されたステップ、動作および機能は、単なる例として提供されており、ステップ、動作および機能のうちのいくつかは、発明の要旨を逸脱しない範囲で、省略でき、また、互いに結合させることで一つのものとしてもよく、また、他のステップ、動作又は機能を追加してもよい。
【００８０】
また、本明細書では、さまざまな実施形態が開示されているが、一の実施形態における特定のフィーチャ（技術的事項）を、適宜改良しながら、他の実施形態に追加し、又は該他の実施形態における特定のフィーチャと置換することができ、そのような形態も本発明の要旨に含まれる。
【産業上の利用可能性】
【００８１】
本発明は、システムオンチップ（ＳｏＣ）型半導体装置のみならず、一般の半導体装置の分野に広く利用することができる。
【符号の説明】
【００８２】
１００…コンピュータシステム
１１０…プロセッサモジュール
１１１…ＣＰＵコア
１１２…バスインターフェース
１１３…キャッシュメモリ機構
１１３１…キャッシュメモリ
１１３２…ロード／ストア部
１１４…割り込みコントローラ
１１５…アドレステーブル
１１６…バックリフィル部
１２０…システムメモリ
１２１…ＰＷＭ割り込みハンドラ
１２２…キャプチャ割り込みハンドラ
１３０…アプリケーションモジュール
１３１…ＰＷＭモジュール
１３２…キャプチャモジュール
１３３…Ｉ／Ｏ信号ピン
１３４…状態信号ピン
１４０…ＤＭＡＣ
１５０…システムバス
【図１】
2015184993.tif 000003
【図２】
2015184993.tif 000004
【図３】
2015184993.tif 000005
【図４】
2015184993.tif 000006
【図５】
2015184993.tif 000007
【図６】
2015184993.tif 000008
【図７】
2015184993.tif 000009
【図８Ａ】
2015184993.tif 000010
【図８Ｂ】
2015184993.tif 000011
【図９】
2015184993.tif 000012
【図１０】
2015184993.tif 000013
【図１１】
2015184993.tif 000014
【図１２】
2015184993.tif 000015
【図１３】
2015184993.tif 000016
【図１４】
2015184993.tif 000017
【図１５】
2015184993.tif 000018