(57)【要約】【課題】本発明は、ソフトウェアによってキャッシュメモリを動的に変動させ、キャッシュメモリを有効利用できる半導体装置を提供することを目的とする。【解決手段】本発明は、ソフトウェアが組み込まれ、当該ソフトウェアに基づき演算処理を行う半導体装置において、ＣＰＵ部２と、キャッシュメモリ３と、キャッシュ制御部４とを備える構成である。そして、ＣＰＵ部２は、ソフトウェアに基づき演算処理を行い、キャッシュメモリ３は、ＣＰＵ部２で必要な情報を一時的に保持する。さらに、キャッシュ制御部４は、ソフトウェアに応じて、キャッシュメモリ３内のメモリ領域をオンチップメモリとして利用できるように制御する。【選択図】図１
2008310465.tif 000002
【特許請求の範囲】
【請求項１】
ソフトウェアが組み込まれ、当該前記ソフトウェアに基づき演算処理を行う半導体装置であって、
前記ソフトウェアに基づき演算処理を行う演算処理部と、
前記演算処理部で必要な情報を一時的に保持するキャッシュメモリと、
前記ソフトウェアに応じて、前記キャッシュメモリ内のメモリ領域をオンチップメモリとして利用できるように制御するキャッシュ制御部とを備える半導体装置。
【請求項２】
請求項１に記載の半導体装置であって、
前記キャッシュ制御部は、前記キャッシュメモリのウェイ数を変更するウェイ数設定レジスタを有し、前記ウェイ数を変更することで前記キャッシュメモリ内のメモリ領域を前記オンチップメモリとして利用できるように制御することを特徴とする半導体装置。
【請求項３】
請求項１又は請求項２に記載の半導体装置であって、
前記キャッシュ制御部は、前記キャッシュメモリのライン数を変更するライン数設定レジスタを有し、前記ライン数を変更することで前記キャッシュメモリ内のメモリ領域を前記オンチップメモリとして利用できるように制御することを特徴とする半導体装置。
【請求項４】
請求項１乃至請求項３のいずれか１つに記載の半導体装置であって、
前記キャッシュ制御部は、前記キャッシュメモリのラインサイズを変更するラインサイズ設定レジスタを有し、前記ラインサイズを変更することで前記キャッシュメモリ内のメモリ領域を前記オンチップメモリとして利用できるように制御することを特徴とする半導体装置。
【請求項５】
請求項１乃至請求項４のいずれか１つに記載の半導体装置であって、
前記キャッシュ制御部は、前記キャッシュメモリ内のメモリ領域を前記オンチップメモリとして利用する際に、前記オンチップメモリとして利用する前記キャッシュメモリのメモリ領域で書き戻しが必要な情報のみコピーバックすることを特徴とする半導体装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体装置に係る発明であって、特に、ソフトウェアが組み込まれた半導体装置に関するものである。
【背景技術】
【０００２】
組み込みマイコンやＤＳＰ（Digital Signal Processor）等のソフトウェアが予め組み込まれ、当該ソフトウェアに基づき演算処理を行う半導体装置では、内部にキャッシュメモリを有する場合が多い。キャッシュメモリは、演算処理部（ＣＰＵ）で必要となる使用頻度の高い命令やデータの情報を一時的に蓄えておく記憶部であり、外部に接続された記憶部に比べ高速に読み書きすることが可能である。
【０００３】
例えば、キャッシュメモリは、命令キャッシュとして８Ｋバイト，オペランドキャッシュとして８Ｋバイトのメモリサイズが確保され、それぞれ１２８エントリ，４ウェイで構成されている。ここで、エントリのデータをラインと呼び、１ラインのラインサイズは１６バイトである。そのため、１ウェイあたりの容量は、１６バイト×１２８エントリ＝２Ｋバイトで、４ウェイで２Ｋバイト×４ウェイ＝８Ｋバイトとなる。
【０００４】
なお、キャッシュメモリを含む組み込みマイコンについては、非特許文献１に詳しく説明されている。
【０００５】
【非特許文献１】株式会社ルネサスソリューションズ、ルネサス32ビットRISCマイクロコンピュータ  ハードウェアマニュアル  SH7261グループ、Rev.1.00、株式会社ルネサス テクノロジ、2006年6月23日
【発明の開示】
【発明が解決しようとする課題】
【０００６】
従来の組み込みマイコン等では、キャッシュメモリのメモリサイズは固定されているが、マイコンに組み込まれているソフトウェアによって最適なキャッシュメモリのメモリサイズは異なっていた。そのため、従来の組み込みマイコン等では、不必要に大きいキャッシュメモリが確保され、キャッシュメモリが有効に利用されていなかったり、実行されるソフトウェアによってはキャッシュメモリが小さいためマイコンの性能を十分に引き出せない問題があった。
【０００７】
そこで、本発明は、ソフトウェアによってキャッシュメモリを動的に変動させ、キャッシュメモリを有効利用できる半導体装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明の一実施形態は、ソフトウェアが組み込まれ、当該ソフトウェアに基づき演算処理を行う半導体装置であって、演算処理部と、キャッシュメモリと、キャッシュ制御部とを備えている。そして、演算処理部は、ソフトウェアに基づき演算処理を行い、キャッシュメモリは、演算処理部で必要な情報を一時的に保持する。さらに、キャッシュ制御部は、ソフトウェアに応じて、キャッシュメモリのウェイ数を変更するウェイ数設定レジスタ等を用いて、キャッシュメモリ内のメモリ領域をオンチップメモリとして利用できるように制御する。
【発明の効果】
【０００９】
本発明の半導体装置によれば、キャッシュ制御部が、ソフトウェアに応じて、キャッシュメモリ内のメモリ領域をオンチップメモリとして利用できるように制御するので、ソフトウェアによってキャッシュメモリを動的に変動させ、キャッシュメモリを有効利用できる。
【発明を実施するための最良の形態】
【００１０】
（実施の形態１）
図１に、本実施の形態に係る組み込みマイコンのブロック図を示す。本実施の形態では、電子機器等に搭載される組み込みマイコンについて説明するが、本発明はこれに限られず、ソフトウェアが予め組み込まれ、当該ソフトウェアに基づき演算処理を行う半導体装置であれば良い。例えば、ＤＳＰ等も本発明に係る半導体装置に含まれる。
【００１１】
まず、図１に示すマイコン１には、ソフトウェアに基づきデータの演算処理を行うＣＰＵ部２と、ＣＰＵ部２で必要な情報（命令やデータ）を一時的に保持するキャッシュメモリ３と、キャッシュメモリ３を制御するキャッシュ制御部４とを備えている。さらに、図１に示すマイコン１は、外部メモリ１０との接続を制御する外部メモリＩ／Ｆ部５と、外部メモリ１０から読み出したデータや、ＣＰＵ部２で処理されたデータが通る経路であるバスを制御するバス制御部６を備えている。
【００１２】
さらに、図１に示すキャッシュ制御部４は、キャッシュメモリ３のウェイ数を変更するウェイ数設定レジスタ４１を備えている。ここで、キャッシュメモリ３のメモリサイズは、ラインサイズ×ライン数×ウェイ数で決まる。例えば、ラインサイズを１６バイト、ライン数を１２８ライン（エントリ）、ウェイ数を４ウェイとすると、キャッシュメモリ３のメモリサイズは、１６バイト×１２８ライン×４ウェイ＝８Ｋバイトとなる。そのため、ウェイ数設定レジスタ４１で４ウェイを２ウェイに変更することで、キャッシュメモリ３のメモリサイズを８Ｋバイトから４Ｋバイトに変更することができる。
【００１３】
本実施の形態に係るマイコン１は、ソフトウェアをＣＰＵ部２で処理し、当該ソフトウェアで必要なウェイ数を取り出し、ウェイ数設定レジスタ４１に指示する。なお、ソフトウェアで必要なウェイ数は、予めソフトウェア内に設定していても、ソフトウェアの処理で必要となるキャッシュメモリ３のメモリサイズから割り出しても良い。例えば、予めソフトウェア内に必要なウェイ数が「１」と設定されている場合は、当該値を取り出し、ウェイ数設定レジスタ４１に転送し、ウェイ数設定レジスタ４１がキャッシュメモリ３内の１ウェイをキャッシュメモリとして利用する。
【００１４】
図１に示すキャッシュメモリ３では、メモリサイズとして４ウェイ分用意されているが、そのうち１ウェイ分だけキャッシュメモリとして利用し、残り３ウェイ分のメモリ領域をオンチップメモリとして利用する。つまり、キャッシュメモリ３のメモリサイズが８Ｋバイト、１ウェイ分が２Ｋバイトとすれば、キャッシュメモリとして２Ｋバイト、オンチップメモリとして６Ｋバイトが割り当てられる。なお、各ウェイには、予めアドレスが割り当てられている。
【００１５】
上記ではキャッシュメモリ３を１つのキャッシュとして説明したが、命令キャッシュとオペランドキャッシュに分けても良い。つまり、命令キャッシュに８Ｋバイト、オペランドキャッシュに８Ｋバイト、おのおの４ウェイで構成されるキャッシュメモリ３としても良い。さらに、ウェイ数設定レジスタ４１は、命令キャッシュのウェイ数と、オペランドキャッシュのウェイ数とを別々に設定する構成でも良い。具体的には、命令キャッシュは１ウェイとし、オペランドキャッシュは２ウェイとしても良い。
【００１６】
ウェイ数設定レジスタ４１は、設定されたウェイ数に応じてキャッシュメモリ３を制御する。キャッシュ制御部４は、さらに今後オンチップメモリとして使われるウェイのタグを調べ、書き戻す必要があるエントリ（情報）のみを実メモリ（例えば外部メモリ１０）にコピーバックする。図１に示すキャッシュメモリ３では、３ウェイ分のタグを調べ、書き戻す必要があるエントリを外部メモリ１０にコピーバックする。なお、オンチップメモリとして使用するウェイに割り当てられたアドレスに対しては、ＣＰＵ部２が読み出し又は書き出しの処理を行う。
【００１７】
ウェイ数設定レジスタ４１は、ウェイ数を「０」と設定した場合、キャッシュメモリ３を全てオンチップメモリとして利用することになり、ウェイ数を最大値（図１の例では「４」）に設定した場合、キャッシュメモリ３を全てキャッシュメモリとして利用することになる。
【００１８】
以上のように、本実施の形態に係る半導体装置では、ウェイ数設定レジスタ４１がキャッシュメモリとして利用するウェイ数を変更し、残りのメモリ領域をオンチップメモリとして利用する。そのため、本実施の形態に係る半導体装置では、キャッシュメモリのメモリサイズが少なくても十分実行可能なソフトウェアを利用する際に、キャッシュとして殆ど使われないウェイ（メモリ領域）をオンチップメモリとして有効活用でき、性能が向上する。また、本実施の形態に係る半導体装置では、ウェイ数を変更してキャッシュメモリとして利用するメモリサイズを変更するので、半導体装置の構成をあまり変更することなく構成を変更できる。
【００１９】
（実施の形態２）
図２に、本実施の形態に係る組み込みマイコンのブロック図を示す。本実施の形態では、電子機器等に搭載される組み込みマイコンについて説明するが、本発明はこれに限られず、ソフトウェアが予め組み込まれ、当該ソフトウェアに基づき演算処理を行う半導体装置であれば良い。例えば、ＤＳＰ等も本発明に係る半導体装置に含まれる。
【００２０】
まず、図２に示すマイコン１には、ソフトウェアに基づきデータの演算処理を行うＣＰＵ部２と、ＣＰＵ部２で必要な情報（命令やデータ）を一時的に保持するキャッシュメモリ３と、キャッシュメモリ３を制御するキャッシュ制御部４とを備えている。さらに、図２に示すマイコン１は、外部メモリ１０との接続を制御する外部メモリＩ／Ｆ部５と、外部メモリ１０から読み出したデータや、ＣＰＵ部２で処理されたデータが通る経路であるバスを制御するバス制御部６を備えている。
【００２１】
さらに、図２に示すキャッシュ制御部４は、キャッシュメモリ３のライン数を変更するライン数設定レジスタ４２を備えている。ここで、キャッシュメモリ３のメモリサイズは、実施の形態１で述べたようにラインサイズ×ライン数×ウェイ数で決まる。そのため、例えば、ラインサイズを１６バイト、ライン数を１２８ライン（エントリ）、ウェイ数を４ウェイとし、ライン数設定レジスタ４２で１２８ラインを６４ラインに変更することで、キャッシュメモリ３のメモリサイズが８Ｋバイトから４Ｋバイトになる。
【００２２】
なお、本実施の形態に係るキャッシュ制御部４では、ライン数設定レジスタ４２のみを設け、ウェイ数を固定してライン数のみ変更する構成であるが、本発明はこれに限られない。本発明に係るキャッシュ制御部４は、ウェイ数設定レジスタ４１及びライン数設定レジスタ４２を設け、ウェイ数及びライン数をそれぞれ独立して変更する構成でも良い。以下、ウェイ数を固定してライン数のみ変更する構成について説明する。
【００２３】
本実施の形態に係るマイコン１は、ソフトウェアをＣＰＵ部２で処理し、当該ソフトウェアで必要なライン数を取り出し、ライン数設定レジスタ４２に指示する。なお、ソフトウェアで必要なライン数は、予めソフトウェア内に設定していても、ソフトウェアの処理で必要となるキャッシュメモリ３のメモリサイズから割り出しても良い。例えば、予めソフトウェア内で必要なライン数が「６４」と設定されている場合は、当該値を取り出し、ライン数設定レジスタ４２に転送し、ライン数設定レジスタ４２がキャッシュメモリ３内の各ウェイの６４ライン分をキャッシュメモリとして利用する。
【００２４】
図２に示すキャッシュメモリ３では、メモリサイズとして４ウェイ×１２８ライン分用意されているが、そのうち４ウェイ×６４ライン分だけをキャッシュメモリとして利用し、残り４ウェイ×６４ライン分のメモリ領域をオンチップメモリとして利用する。つまり、キャッシュメモリ３のメモリサイズが８Ｋバイト、１ウェイ分が２Ｋバイトとすれば、キャッシュメモリとして各ウェイの１Ｋバイト分（合計４Ｋバイト）、オンチップメモリとして残り４Ｋバイト分のメモリ領域が割り当てられる。なお、各ラインには、予めアドレスが割り当てられている。
【００２５】
上記ではキャッシュメモリ３を１つのキャッシュとして説明したが、命令キャッシュとオペランドキャッシュに分けても良い。つまり、命令キャッシュに８Ｋバイト、オペランドキャッシュに８Ｋバイト、おのおの４ウェイ×１２８ラインで構成されるキャッシュメモリ３としても良い。さらに、ライン数設定レジスタ４２は、命令キャッシュのライン数と、オペランドキャッシュのライン数とを別々に設定する構成でも良い。具体的には、命令キャッシュは４ウェイ×３２ラインとし、オペランドキャッシュは４ウェイ×６４ラインとしても良い。
【００２６】
ライン数設定レジスタ４２は、設定されたライン数に応じてキャッシュメモリ３を制御する。キャッシュ制御部４は、さらに今後オンチップメモリとして使われるラインのタグを調べ、書き戻す必要があるエントリ（情報）のみを実メモリ（例えば外部メモリ１０）にコピーバックする。図２に示すキャッシュメモリ３では、６４ライン分のタグを調べ、書き戻す必要があるエントリを外部メモリ１０にコピーバックする。なお、オンチップメモリとして使用するラインに割り当てられたアドレスに対しては、ＣＰＵ部２が読み出し又は書き出しの処理を行う。
【００２７】
ライン数設定レジスタ４２は、ライン数を「０」と設定した場合、キャッシュメモリ３を全てオンチップメモリとして利用することになり、ライン数を最大値（図２の例では「１２８」）に設定した場合、キャッシュメモリ３を全てキャッシュメモリとして利用することになる。
【００２８】
以上のように、本実施の形態に係る半導体装置では、ライン数設定レジスタ４２がキャッシュメモリとして利用するライン数を変更し、残りのメモリ領域をオンチップメモリとして利用する。そのため、本実施の形態に係る半導体装置では、キャッシュメモリのメモリサイズが少なくても十分実行可能なソフトウェアを利用する際に、キャッシュとして殆ど使われないライン（メモリ領域）をオンチップメモリとして有効活用でき、性能が向上する。
【００２９】
なお、実施の形態１及び実施の形態２に係る半導体装置では、ラインサイズを固定してサイン数及びウェイ数のうち少なくとも１つ変更する構成であったが、本発明はこれに限られない。図３に示すように、キャッシュ制御部４は、キャッシュメモリ３のラインサイズを変更するラインサイズ設定レジスタ４３を備えても良い。そのため、例えば、ラインサイズを１６バイト、ライン数を１２８ライン（エントリ）、ウェイ数を４ウェイとし、ラインサイズ設定レジスタ４３で１６バイトを８バイトに変更することで、キャッシュメモリ３のメモリサイズが８Ｋバイトから４Ｋバイトになる。
【００３０】
また、本発明に係るキャッシュ制御部４では、ウェイ数設定レジスタ４１，ライン数設定レジスタ４２及びラインサイズ設定レジスタ４３を組み合わせて設け、ウェイ数，ライン数及びラインサイズをそれぞれ独立して変更する構成でも良い。
【図面の簡単な説明】
【００３１】
【図１】本発明の実施の形態１に係る半導体装置のブロック図である。
【図２】本発明の実施の形態２に係る半導体装置のブロック図である。
【図３】本発明の実施の形態２に係る半導体装置のブロック図である。
【符号の説明】
【００３２】
１  マイコン、２  ＣＰＵ部、３  キャッシュメモリ、４  キャッシュ制御部、５  外部メモリＩ／Ｆ部、６  バス制御部、１０  外部メモリ、４１  ウェイ数設定レジスタ、４２  ライン数設定レジスタ、４３  ラインサイズ設定レジスタ。
【図１】
2008310465.tif 000003
【図２】
2008310465.tif 000004
【図３】
2008310465.tif 000005