(57)【要約】【課題】  プログラム動作中に動的にキャッシュ制御を変更することが可能で、キャッシュの利用効率を効果的に高めるプロセッサを提供する。【解決手段】  キャッシュメモリ（１３２）を内蔵するプロセッサ（１０）が、動作するプログラム（３０）からの主記憶メモリ（２０）に対するアクセスに際し、キャッシュメモリの利用の有無を変更可能に指定する動作モード情報（４３）と、プログラム中のアクセス命令語におけるキャッシュメモリ利用の指定とに基づいて、キャッシュメモリ（１３２）の利用を制御する。【選択図】  図１
2009093559.tif 000002
【特許請求の範囲】
【請求項１】
キャッシュメモリを内蔵するプロセッサにおいて、
動作するプログラムからの主記憶メモリに対するアクセスに際し、前記キャッシュメモリの利用の有無を指定する動作モードを参照して前記キャッシュメモリの利用を制御することを特徴とするプロセッサ。
【請求項２】
前記動作モードと、前記プログラム中のアクセス命令語における前記キャッシュメモリ利用の指定とに基づいて、前記キャッシュメモリの利用を制御することを特徴とする請求項１に記載のプロセッサ。
【請求項３】
前記動作モードを示す動作モード情報を変更可能に設定する動作モード設定部を備えることを特徴とする請求項１又は請求項２に記載のプロセッサ。
【請求項４】
前記動作モード設定部は、
前記動作モード情報を格納する格納手段と、
前記動作モード情報を、動作する前記プログラム内の命令に基づいて動的に変更する動作モード変更手段を備えることを特徴とする請求項３に記載のプロセッサ。
【請求項５】
前記プログラム中の前記主記憶メモリへのアクセス命令語に基づいて、前記主記憶メモリに対するアクセス命令を発行する命令発行部と、
前記命令発行部からのアクセス命令に従って前記キャッシュメモリの利用制御を行うキャッシュ制御部とを備え、
前記命令発行部は、前記動作モードと、前記アクセス命令語のキャッシュ利用の指定に基づいて、前記キャッシュメモリを利用するキャッシュ利用有りのアクセス命令又は前記キャッシュメモリを利用しないキャッシュ利用無しのアクセス命令を前記キャッシュ制御部に対して発行することを特徴とする請求項２から請求項４の何れかに記載のプロセッサ。
【請求項６】
前記命令発行部は、前記動作モードがキャッシュ利用有りを指定し、かつ前記アクセス命令語がキャッシュ利用を指定する場合に、前記キャッシュ利用有りのアクセス命令を前記キャッシュ制御部に対して発行することを特徴とする請求項５に記載のプロセッサ。
【請求項７】
前記命令発行部は、前記動作モードの指定を優先して参照し、前記動作モードがキャッシュ利用無しである場合、前記アクセス命令語がキャッシュ利用有りを指定する場合であっても、前記キャッシュ利用無しのアクセス命令を発行することを特徴とする請求項５に記載のプロセッサ。
【請求項８】
前記キャッシュ制御部は、前記命令発行部からのアクセス命令が前記キャッシュ利用無しのアクセス命令であっても、前記キャッシュメモリにアクセス対象データが存在するかどうかを判定し、アクセス対象データが存在する場合に、前記キャッシュメモリを利用したアクセス制御を行うことを特徴とする請求項５に記載のプロセッサ。
【請求項９】
プロセッサが内蔵するキャッシュメモリの利用を制御するキャッシュ制御方法において、
動作するプログラムからの主記憶メモリに対するアクセスに際し、前記キャッシュメモリの利用の有無を指定する動作モードを参照して前記キャッシュメモリの利用を制御するステップを含むことを特徴とするキャッシュ制御方法。
【請求項１０】
前記動作モードと、前記プログラムのアクセス命令語における前記キャッシュメモリ利用の指定とに基づいて、前記キャッシュメモリの利用を制御するステップを含むことを特徴とする請求項９に記載のキャッシュ制御方法。
【請求項１１】
前記動作モードを示す動作モード情報を、動作する前記プログラム内の命令によって動的に変更することを特徴とする請求項９又は請求項１０に記載のキャッシュ制御方法。
【請求項１２】
前記動作モードと、前記アクセス命令語のキャッシュ利用の指定に基づいて、前記キャッシュメモリを利用するキャッシュ利用有りのアクセス命令又は前記キャッシュメモリを利用しないキャッシュ利用無しのアクセス命令を、アクセス命令に従って前記キャッシュメモリの利用制御を行うキャッシュ制御部に対して発行するステップを有することを特徴とする請求項１０又は請求項１１に記載のキャッシュ制御方法。
【請求項１３】
前記動作モードがキャッシュ利用有りを指定し、かつ前記アクセス命令語がキャッシュ利用を指定する場合に、前記キャッシュ利用有りのアクセス命令を前記キャッシュ制御部に対して発行するステップを有することを特徴とする請求項１２に記載のキャッシュ制御方法。
【請求項１４】
前記動作モードの指定を優先して参照し、前記動作モードがキャッシュ利用無しである場合、前記アクセス命令語がキャッシュ利用有りを指定する場合であっても、前記キャッシュ利用無しのアクセス命令を発行するステップを有することを特徴とする請求項１２に記載のキャッシュ制御方法。
【請求項１５】
前記命令発行部からのアクセス命令が前記キャッシュ利用無しのアクセス命令であっても、前記キャッシュメモリにアクセス対象データが存在するかどうかを判定し、アクセス対象データが存在する場合に、前記キャッシュメモリを利用したアクセス制御を行うことを特徴とする請求項１２に記載のキャッシュ制御方法。
【請求項１６】
キャッシュメモリを内蔵するプロセッサを備える情報処理装置において、
前記プロセッサが、動作するプログラムからの主記憶メモリに対するアクセスに際し、前記キャッシュメモリの利用の有無を指定する動作モードを参照して前記キャッシュメモリの利用を制御することを特徴とする情報処理装置。
【請求項１７】
前記プロセッサが、前記動作モードと、前記プログラム中のアクセス命令語における前記キャッシュメモリ利用の指定とに基づいて、前記キャッシュメモリの利用を制御することを特徴とする請求項１６に記載の情報処理装置。
【請求項１８】
前記プロセッサが、前記動作モードを示す動作モード情報を変更可能に設定する動作モード設定部を備えることを特徴とする請求項１６又は請求項１７に記載の情報処理装置。
【請求項１９】
前記動作モード設定部は、
前記動作モード情報を格納する格納手段と、
前記動作モード情報を、動作する前記プログラム内の命令に基づいて動的に変更する動作モード変更手段を備えることを特徴とする請求項１８に記載の情報処理装置。
【請求項２０】
前記プロセッサが、
前記プログラム中の前記主記憶メモリへのアクセス命令語に基づいて、前記主記憶メモリに対するアクセス命令を発行する命令発行部と、
前記命令発行部からのアクセス命令に従って前記キャッシュメモリの利用制御を行うキャッシュ制御部とを備え、
前記命令発行部は、前記動作モードと、前記アクセス命令語のキャッシュ利用の指定に基づいて、前記キャッシュメモリを利用するキャッシュ利用有りのアクセス命令又は前記キャッシュメモリを利用しないキャッシュ利用無しのアクセス命令を前記キャッシュ制御部に対して発行することを特徴とする請求項２から請求項４の何れかに記載の情報処理装置。
【請求項２１】
前記命令発行部は、前記動作モードがキャッシュ利用有りを指定し、かつ前記アクセス命令語がキャッシュ利用を指定する場合に、前記キャッシュ利用有りのアクセス命令を前記キャッシュ制御部に対して発行することを特徴とする請求項２０に記載の情報処理装置。
【請求項２２】
前記命令発行部は、前記動作モードの指定を優先して参照し、前記動作モードがキャッシュ利用無しである場合、前記アクセス命令語がキャッシュ利用有りを指定する場合であっても、前記キャッシュ利用無しのアクセス命令を発行することを特徴とする請求項２０に記載の情報処理装置。
【請求項２３】
前記キャッシュ制御部は、前記命令発行部からのアクセス命令が前記キャッシュ利用無しのアクセス命令であっても、前記キャッシュメモリにアクセス対象データが存在するかどうかを判定し、アクセス対象データが存在する場合に、前記キャッシュメモリを利用したアクセス制御を行うことを特徴とする請求項２０に記載の情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、キャッシュメモリを内蔵するプロセッサ及びプロセッサのキャッシュ制御方法に関し、特に高いキャッシュ利用効率を実現するプロセッサ、情報処理装置及びキャッシュ制御方法に関する。
【背景技術】
【０００２】
汎用スカラプロセッサは、一般にハードウェア制御によるキャッシュ機構を採用している。ハードウェアによるキャッシュ制御機構においては、プロセッサがメモリからロードするデータ、またはメモリへストアするデータがキャッシュに格納される。
【０００３】
キャッシュ制御は、再利用性が高いデータをキャッシュメモリへ保持することによりメモリアクセスの高速化を図るものであるため、再利用性が高いデータをいかにキャッシュ中に保持するかが重要となる。
【０００４】
ハードウェア制御によるキャッシュ機構においては、一般にＬＲＵ（Ｌｅａｓｔ  Ｒｅｃｅｎｔｌｙ  Ｕｓｅｄ）方式等を用いて、再利用性が高いと思われるデータをキャッシュメモリへ格納する制御方式が採用されている。
【０００５】
しかし、ＬＲＵ方式等を用いたキャッシュ制御方式では、必ずしも再利用性の高いデータがキャッシュ中に保持されるとは限らないことから、キャッシュの利用効率を十分に高められない問題がある。
【０００６】
このような問題を解決するために、キャッシュメモリへのデータ格納をソフトウェア制御により行なう手法がいくつか考案されており、そのうちの一例が、特許文献１や特許文献２に開示されている。
【０００７】
特許文献１に記載のキャッシュ・メモリ・システムでは、メインメモリへのアクセス命令の種類に基づいてキャッシュメモリの利用を制御することで、再利用性の高いデータのキャッシュメモリへの格納を可能にしている。
【０００８】
ソフトウェアによるキャッシュ制御方式は、ＬＲＵ等を用いたハードウェアによる制御と比較して再利用性の高いデータのみをキャッシュへ格納することが可能となる。
【特許文献１】特開平６−２０２９５１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
特許文献１等で提案されるこれまでのソフトウェアによるキャッシュ制御方式は、プログラム動作中に動的にキャッシュ制御を変更することができず、キャッシュの利用効率を十分に高めることができないという問題がある。
【００１０】
その理由は、アクセス命令における指定に基づいたキャッシュ制御であるため、プログラムのコンパイル時にキャッシュへ格納するデータが決定され、データのキャッシュ格納制御を動的に制御できないからである。
【００１１】
（発明の目的）
本発明の目的は、上述したプログラム動作中に動的にキャッシュ制御を変更することができず、キャッシュの利用効率を十分に高めることができないという課題を解決するプロセッサ、情報処理装置及びプロセッサのキャッシュ制御方法を提供することにある。
【課題を解決するための手段】
【００１２】
本発明の第１のプロセッサは、キャッシュメモリを内蔵するプロセッサにおいて、動作するプログラムからの主記憶メモリに対するアクセスに際し、キャッシュメモリの利用の有無を指定する動作モードを参照してキャッシュメモリの利用を制御する。
【００１３】
本発明の第２のキャッシュ制御方法は、プロセッサが内蔵するキャッシュメモリの利用を制御するキャッシュ制御方法において、動作するプログラムからの主記憶メモリに対するアクセスに際し、キャッシュメモリの利用の有無を指定する動作モードを参照してキャッシュメモリの利用を制御するステップを含む。
【００１４】
本発明の第３の情報処理装置は、キャッシュメモリを内蔵するプロセッサを備える情報処理装置において、プロセッサが、動作するプログラムからの主記憶メモリに対するアクセスに際し、キャッシュメモリの利用の有無を指定する動作モードを参照してキャッシュメモリの利用を制御する。
【発明の効果】
【００１５】
本発明によれば、キャッシュの利用効率を効果的に高めることができる。
【発明を実施するための最良の形態】
【００１６】
次に、本発明の実施の形態について図面を参照して詳細に説明する。
【００１７】
（第１の実施の形態）
図１は、本発明の第１の実施の形態によるプロセッサ（中央処理装置）１０の構成を示すブロック図である。
【００１８】
第１の実施の形態によるプロセッサ１０は、命令発行部１１と、演算部１２と、キャッシュユニット１３を備える構成であり、キャッシュユニット１３を介して主記憶メモリ２０と接続されている。また、命令発行部１１には、プログラム３０と動作モード設定部４０が接続されている。
【００１９】
命令発行部１１は、プログラム３０中の命令語を受け取ると、その命令語に従って演算部１２やキャッシュ制御部１３１に対して演算命令やアクセス命令を発行する。例えば、主記憶部２に対するアクセス命令時においては、プログラム３０におけるアクセス命令語中のキャッシュ利用指定及び動作モード設定部４０における動作モード情報に基づいて、キャッシュ利用有り又はキャッシュ利用無しのアクセス命令をキャッシュユニット１３に対して発行する。
【００２０】
演算部１２は、キャッシュ制御部１３１による制御に基づいて主記憶メモリ２０からロードしたデータ等について、命令発行部１１から発行される演算命令に基づいて演算処理を実行する。
【００２１】
キャッシュユニット１３は、キャッシュ制御部１３１とキャッシュメモリ１３２を備えている。
【００２２】
キャッシュ制御部１３１は、命令発行部１１からの主記憶メモリ２０に対するアクセス命令に基づき、キャッシュメモリ１３２及び主記憶メモリ２０へのアクセス制御を行なう。
【００２３】
記憶装置としてのキャッシュメモリ１３２、及び主記憶メモリ２０については、当業者によって広く知られている一般的な記憶方式のものを利用することができる。それらの詳しい構成については説明を省略する。
【００２４】
また、キャッシュメモリ１３については、当業者にとってよく知られているように、一次キャッシュメモリや二次キャッシュメモリ等のように、演算部１２、及び主記憶２の間にキャッシュを階層構造的に配置して構成することも可能である。
【００２５】
本実施の形態における各階層の複数のキャッシュメモリに対する制御については、各キャッシュメモリ毎に個別に制御する方式や、複数のキャッシュメモリを一括して制御する方式等が考えられる。
【００２６】
プログラム３０は、コンパイラによる構文解析、またはプログラムソースコード中にユーザにより明示的に記述されるキャッシュ利用の指示行等に基づきコンパイルされた実行コードである。
【００２７】
プログラム３０中の主記憶メモリ２０へのアクセス命令語には、主記憶メモリ２０に対するアクセスに際してキャッシュメモリ１３２を利用するかどうかが指定されている。
【００２８】
このアクセス命令語のキャッシュ利用指定によって、主記憶メモリ２０のアクセスに際してキャッシュ利用制御をする、もしくはキャッシュ利用制御をしないことを命令発行部１１に対して指定する。
【００２９】
命令発行部１１は、プログラム３０中のアクセス命令語を受け取ると、動作モード設定部４０の動作モード情報とアクセス命令語に指定されるキャッシュ利用指定に基づいて、キャッシュ制御部１３１に対してアクセス命令を発行する。
【００３０】
背景技術で説明した関連技術における命令発行部では、プログラム３０のアクセス命令語中のキャッシュを利用するか否かの指定だけに従ってキャッシュ利用有り又はキャッシュ利用無しのアクセス命令を発行していたが、本実施の形態による命令発行部１１は、動作モード設定部４０の動作モード情報とプログラム３０のアクセス命令語中のキャッシュ利用指定の双方に基づいてキャッシュ利用有り又はキャッシュ利用無しのアクセス命令を発行する。
【００３１】
ここで、命令発行部１１が発行するアクセス命令２００の構成例を図２に示す。
【００３２】
命令発行部１１が発行するアクセス命令２００は、図２に示すように、主記憶メモリ２０のアクセス先アドレスを指定するオペランドオペランド２０１と、アクセス動作（ロード又はストア）を指定する命令コード２０２の他に、キャッシュ利用指定情報２０３を含んでいる。
【００３３】
このアクセス命令２００のキャッシュ利用指定情報２０３の値（例えば、ビット１又は０）によって、主記憶メモリ２０のアクセスに際してキャッシュ利用制御をする、もしくはキャッシュ利用制御をしないことをキャッシュ制御部１３１に対して指定する。
【００３４】
動作モード設定部４０には、命令発行部１１に対して、主記憶メモリ２０へのアクセスに対してキャッシュメモリ１３２を利用する動作モードか、キャッシュメモリ１３２を利用しない動作モードかを指定する動作モード情報４３を設定する。
【００３５】
命令発行部１１は、主記憶メモリ２０へのアクセス命令を発行する際に、動作モード設定部４０に設定されている動作モード情報４３を参照し、動作モード情報４３がキャッシュ利用有りであればキャッシュメモリ１３２を使用するキャッシュ利用有りのアクセス命令を発行し、動作モード情報４３がキャッシュ利用無しであればキャッシュ利用無しのアクセス命令を発行する。
【００３６】
本実施の形態において、動作モード設定部４０で指定する動作モード情報４３は、プログラム３０の実行中（すなわち、プロセッサ１０の動作中）に動的に変更することが可能である。
【００３７】
命令発行部１１において、この動作モード設定部４０の動作モード情報４３は、アクセス命令語２００中のキャッシュ利用指定情報２０３より優先して参照される。このために、動作モード設定部４０の動作モード情報４３をプログラム実行中に変更することにより、キャッシュ利用の有無をプログラム実行中に動的に変更することが可能となる。
【００３８】
動作モード設定部４０の構成例について図３を参照して説明する。
【００３９】
動作モード設定部４０は、動作モード情報４３の変更を行なう動作モード変更手段４１と、動作モード情報４３を格納する動作モード情報格納手段４２を備えている。
【００４０】
動作モード変更手段４１は、命令発行部１１から発行される動作モードを変更する命令を受け取ることにより、当該命令で指定される動作モードを、動作モード指定情報４３として動作モード格納手段４２に格納する機能を有する。
【００４１】
動作モード情報格納手段４２は、例えば、ソフトウェアレジスタやハードウェアレジスタ等を利用することで実現することができる。
【００４２】
プログラム３０中に、分岐等の一定の条件に応じて、キャッシュ利用の有無を示す動作モード情報４３を変更する命令行を記述しておくことで、上記のように動作モード変更手段４１によって動作モード情報４３の変更が実行される。このようにプログラム３０からの命令に基づいて動作モードを設定することで、プログラム３０の実行中でも、動作条件に応じて動的に動作モードを変更することができる。
【００４３】
また、プロセッサ１０の動作環境を管理するＯＳ（オペレーティングシステム）等から動作モード変更手段４１に対して動作モードの変更を指示することで、動作モード情報４３を変更するように構成することも可能である。
【００４４】
上記のように構成される動作モード設定部４０は、ハードウェア又はソフトウェアの何れでも実現することが可能である。
【００４５】
次に、第１の実施の形態によるプロセッサ１０の主記憶メモリ２０へのアクセス動作について図４及び図５のフローチャートを参照して説明する。
【００４６】
まず、図４のフローチャートを用いて主記憶アクセスにおけるロード動作について説明する。
【００４７】
プログラム３０により主記憶メモリ２０に対するアクセス命令としてロード命令が命令発行部１１に与えられると、命令発行部１１は、動作モード設定部４０の動作モード情報４３を参照してキャッシュ利用の有無を判定する（ステップＳ１０１）。
【００４８】
動作モード情報４３にキャッシュ利用有りが指定されている場合は、さらに命令発行部１１は、プログラム３０からのロード命令の命令語中のキャッシュ利用指定を判定する（ステップＳ１０２）。
【００４９】
プログラム３０の命令語中にキャッシュ利用有りが指定されている場合、命令発行部１１は、キャッシュ利用有りのロード命令をキャッシュ制御部１３１に対して発行する（ステップＳ１０３）。
【００５０】
命令発行部１１により発行されたキャッシュ利用有りのロード命令に基づいて、キャッシュ制御部１３１は、キャッシュ利用有りのロード命令で指定されるロードデータがキャッシュメモリ１３２中に存在するかどうか（すなわち、キャッシュヒットの有無）を判定する（ステップＳ１０４）。
【００５１】
当該ロードデータがキャッシュ１３２中に存在する場合（キャッシュヒットの場合）、キャッシュ制御部１３１は、キャッシュ１３２中のロードデータを演算部１２へロードする（ステップＳ１０５、Ｓ１０６）。
【００５２】
キャッシュ１３２中に当該ロードデータが存在しない場合（キャッシュミスの場合）、キャッシュ制御部１３１は、主記憶メモリ２０からロードデータを読み出す（ステップＳ１０８）。
【００５３】
発行されたロード命令がキャッシュ利用有りのロード命令であれば（ステップＳ１０９）、キャッシュ制御部１３１の制御によりキャッシュメモリ１３２へ主記憶メモリ２０から読み出した当該ロードデータを格納し（ステップＳ１１０）、次に演算部１２へ当該ロードデータをロードする（ステップＳ１０６）。
【００５４】
動作モード情報４３によるキャッシュ利用指定、またはプログラム３０における命令語中のキャッシュ利用指定のいずれかがキャッシュ利用無しである場合、命令発行部１１は、キャッシュ利用無しのロード命令を発行する（ステップＳ１０７）。
【００５５】
命令発行部１１により発行された当該キャッシュ利用無しのロード命令は、キャッシュ制御部１３１を経由して、主記憶メモリ２より当該ロード命令で指定されたロードデータを読み出す（ステップＳ１０８）。発行されたロード命令がキャッシュ利用無しのロード命令であるため（ステップＳ１０９）、読み出した当該ロードデータをキャッシュメモリ１３２へ格納することなく演算部１２へロードする（ステップＳ２０６）。
【００５６】
次に、第１の実施の形態によるプロセッサ１０の主記憶アクセスにおけるストア動作について図５のフローチャートを参照して説明する。
【００５７】
プログラム３０により主記憶メモリ２０に対するアクセス命令としてストア命令が命令発行部１１に与えられると、命令発行部１１は、動作モード設定部４０の動作モード情報４３を参照してキャッシュ利用の有無を判定する（ステップＳ２０１）。
【００５８】
動作モード情報４３にキャッシュ利用有りが指定されている場合、さらに命令発行部１１は、プログラム３０からのストア命令の命令語中のキャッシュ利用指定を判定する（ステップＳ２０２）。
【００５９】
プログラム３０の命令語中にキャッシュ利用有りが指定されている場合、命令発行部１１は、キャッシュ利用有りのストア命令をキャッシュ制御部１３１に対して発行する（ステップ２０３）。
【００６０】
命令発行部１１により発行されたキャッシュ利用有りのストア命令に基づいて、キャッシュ制御部１３１は、当該ストア命令で指定されるストアデータがキャッシュメモリ１３２中に存在するかどうか（キャッシュヒットの有無）を判定する（ステップＳ２０４）。
【００６１】
ストアデータがキャッシュメモリ１３２中に存在する場合（キャッシュヒットの場合）、演算部１２からキャッシュメモリ１３２へデータをストアすることにより、キャッシュメモリ１３２中のデータが更新される（ステップＳ２０５）。同時に、主記憶メモリ２へ当該ストアデータが書き込まれる（ステップＳ２０６）。
【００６２】
動作モード情報４３によるキャッシュ利用指定、またはプログラム３０における命令語中のキャッシュ利用指定のいずれかがキャッシュ利用無しである場合、命令発行部１１はキャッシュ利用無しのストア命令を発行する（ステップＳ２０７）。
【００６３】
命令発行部１１により発行された当該キャッシュ利用無しのストア命令によって、キャッシュ制御部１３１を経由して、主記憶メモリ２０に当該ストアデータを書き込む（ステップＳ２０６）。
【００６４】
（第１の実施の形態による効果）
次に、第１の実施の形態による効果について説明する。
第１の実施の形態によるプロセッサ１０は、動作モード設定部４０の動作モード情報４３に基づいて命令発行部１１からキャッシュ利用有り又はキャッシュ利用無しのアクセス命令を発行する構成としているので、プログラム３０の動作中においても動的にキャッシュ利用制御を行なうことができる。
【００６５】
また、動的に変更可能な動作モード情報４３とプログラム３０のアクセス命令語中のキャッシュ利用指定に基づいてキャッシュ利用制御をしているので、再利用性の低いデータをキャッシュメモリ１３２へ格納することによるキャッシュ汚染を低減し、高いキャッシュ利用効率を実現することが可能となる。
【００６６】
動作モード設定部４０の動作モード情報４３を用いてキャッシュ利用制御をしているので、プログラム３０コンパイル後においても動的にキャッシュ利用制御を行なうことが可能であり、プログラム３０のキャッシュ利用最適化を容易に実現できる。
【００６７】
（第２の実施の形態）
次に、本発明の第２の実施の形態について説明する。
この第２の実施の形態によるプロセッサ１０の構成は、図１に示した第１の実施例の構成と同様であるので説明を省略する。
【００６８】
第２の実施の形態は、命令発行部１１がキャッシュ利用無しのアクセス命令を発行した場合においても、キャッシュ制御部１３１が、キャッシュメモリ１３２にアクセス対象データが存在するかどうかを判定する点が第１の実施の形態と相違する。
【００６９】
すなわち、第２の実施の形態においては、キャッシュ制御部１３１が、キャッシュ利用無しのロード命令によるロード時に、キャッシュメモリ１３２に当該ロードデータがあればキャッシュメモリ１３２からデータをロードし、キャッシュ利用無しのストア命令によるストア時に、キャッシュメモリ１３２にストアデータがあればキャッシュメモリ２０のデータを更新する制御を行なう。
【００７０】
まず、図６のフローチャートを用いて第２の実施の形態による主記憶アクセスにおけるロード動作について説明する。なお、図６において、図４と共通の符号を付したステップは同じ処理内容であることを示しており、詳細な説明は省略する。
【００７１】
第１の実施の形態では、動作モード情報４３によるキャッシュ利用の指定、またはプログラム３０における命令語中のキャッシュ利用指定のいずれかがキャッシュ利用無しである場合に、命令発行部１１がキャッシュ利用無しのロード命令を発行し（ステップＳ１０７）、主記憶メモリ２０より当該ロード命令で指定されたロードデータを読み出す（ステップＳ１０８）という制御を行なう。
【００７２】
これに対して、第２の実施の形態では、キャッシュ利用無しのロード命令が発行された場合（ステップＳ１０７）、キャッシュ制御部１３１がキャッシュメモリ１３２内にロードデータが存在するかどうかを判定し（ステップ４０１）、ロードデータが存在する場合には、ステップ１０５に移行する。
【００７３】
また、キャッシュメモリ１３２内にロードデータが存在しない場合には、主記憶メモリ２より当該ロード命令で指定されたロードデータを読み出す（ステップＳ１０８）。
【００７４】
次に、図７のフローチャートを用いて第２の実施の形態による主記憶アクセスにおけるストア動作について説明する。
【００７５】
図７において、図５と共通の符号を付したステップは同じ処理内容であることを示しており、詳細な説明は省略する。
【００７６】
第１の実施の形態では、動作モード情報４３によるキャッシュ利用の指定、またはプログラム３０における命令語中のキャッシュ利用指定のいずれかがキャッシュ利用無しである場合に、命令発行部１１がキャッシュ利用無しのストア命令を発行し（ステップＳ２０７）、主記憶メモリ２０に当該ストアデータを書き込む（ステップＳ２０６）という制御を行なう。
【００７７】
これに対して、第２の実施の形態では、キャッシュ利用無しのロード命令が発行された場合（ステップＳ２０７）、キャッシュ制御部１３１がキャッシュメモリ１３２内にストアデータが存在するかどうかを判定し（ステップ５０１）、ストアドデータが存在する場合には、ステップ２０５に移行する。
【００７８】
また、キャッシュメモリ１３２内にストアデータが存在しない場合には、キャッシュ利用無しのストア命令によって、主記憶メモリ２０に当該ストアデータを書き込む（ステップＳ２０６）。
【００７９】
（第２の実施の形態による効果）
次に、第２の実施の形態による効果について説明する。
【００８０】
第２の実施の形態によれば、上述した第１の実施の形態と同様の効果を実現すると共に、加えて、キャッシュ利用無しのアクセス命令の場合でも、アクセス対象データがキャッシュメモリ１３２に存在するかどうを判定する制御を行なうため、キャッシュ利用効率をより高めることが可能となる。
【００８１】
（第３の実施の形態）
次に、本発明の第３の実施の形態について説明する。
この第３の実施の形態によるプロセッサ１０の構成は、図１に示した第１の実施例の構成と同様であるので説明を省略する。
【００８２】
第３の実施の形態は、命令発行部１１が、動作モード設定部４０の動作モード情報４３を参照してキャッシュ利用の有無を判定する点については第１の実施の形態と同じであるが、プログラム３０からのアクセス命令の命令語中のキャッシュ利用指定を判定しない点で第１の実施の形態と相違する。
【００８３】
すなわち、第３の実施の形態においては、命令発行部１１が、動作モード設定部４０の動作モード情報４３を参照してキャッシュ利用有りが指定されていれば、アクセス命令の命令語中のキャッシュ利用指定を判定せずに、キャッシュ利用有りのアクセス命令をキャッシュ制御部１３１に対して発行する制御を行なう。
【００８４】
以下、図８のフローチャートを用いて第３の実施の形態による主記憶アクセスにおけるロード動作について説明する。なお、図８において、図４と共通の符号を付したステップは同じ処理内容であることを示しており、詳細な説明は省略する。
【００８５】
第１の実施の形態では、動作モード情報４３によるキャッシュ利用の指定がキャッシュ利用有りであり（ステップＳ１０１）、かつプログラム３０における命令語中のキャッシュ利用指定がキャッシュ利用有りである（ステップＳ１０２）場合に、命令発行部１１がキャッシュ利用有りのロード命令を発行していた（ステップＳ１０３）。
【００８６】
これに対して、第３の実施の形態では、動作モード情報４３によるキャッシュ利用の指定がキャッシュ利用有りである場合（ステップ１０１）、プログラム３０からのロード命令の命令語中のキャッシュ利用指定を判定することなく、命令発行部１１がキャッシュ利用有りのロード命令を発行する（ステップＳ１０３）。
【００８７】
キャッシュ利用有りのロード命令を発行した後の動作及びキャッシュ利用無しのロード命令を発行した後の動作は、第１の実施の形態と同様である。
【００８８】
次に、図９のフローチャートを用いて第３の実施の形態による主記憶アクセスにおけるストア動作について説明する。
【００８９】
図９においても、図５と共通の符号を付したステップは同じ処理内容であることを示しており、詳細な説明は省略する。
【００９０】
第１の実施の形態では、動作モード情報４３によるキャッシュ利用の指定がキャッシュ利用有りであり（ステップＳ２０１）、かつプログラム３０における命令語中のキャッシュ利用指定がキャッシュ利用有りである（ステップＳ２０２）場合に、命令発行部１１がキャッシュ利用有りのストア命令を発行していた（ステップＳ２０３）。
【００９１】
これに対して、第３の実施の形態では、動作モード情報４３によるキャッシュ利用の指定がキャッシュ利用有りである場合（ステップＳ２０１）、プログラム３０からのストア命令の命令語中のキャッシュ利用指定の有無を判定することなく、命令発行部１１がキャッシュ利用有りのストア命令を発行する（ステップＳＳ２０３）。
【００９２】
キャッシュ利用有りのストア命令を発行した後の動作及びキャッシュ利用無しのストア命令を発行した後の動作は、第１の実施の形態と同様である。
【００９３】
（第３の実施の形態による効果）
第３の実施の形態によるプロセッサでは、第１の実施の形態と同様、以下のような効果が得られる。
【００９４】
動作モード情報４３に基づいてキャッシュ利用有り又はキャッシュ利用無しのアクセス命令を発行する構成としているので、プログラム３０の動作中においても動的にキャッシュ利用制御を行なうことができる。
【００９５】
また、動作モード情報４３を用いてキャッシュ利用制御を行なうので、プログラム３０コンパイル後においても動的にキャッシュ利用制御を行なうことが可能であり、プログラム３０のキャッシュ利用最適化を容易に実現できる。
【００９６】
以上好ましい実施の形態と実施例をあげて本発明を説明したが、本発明は必ずしも、上記実施の形態及び実施例に限定されるものでなく、その技術的思想の範囲内において様々に変形して実施することができる。
【００９７】
例えば、他の実施の形態としては、その基本的構成は上述した第１の実施の形態と同じであるが、キャッシュメモリのライトバック制御、もしくはライトスルー制御と組み合わせて実施することも可能である。
【００９８】
上述した各実施の形態では、本発明を適用したプロセッサについて説明したが、それ以外にプロセッサを搭載する情報処理装置にも本発明を実施することできるのは言うまでもない。
【００９９】
また、上述した第２の実施の形態と第３の実施の形態を組み合わせた構成とすることも可能である。
【図面の簡単な説明】
【０１００】
【図１】本発明の第１の実施の形態によるプロセッサの構成を示すブロック図である。
【図２】本発明の第１の実施の形態によるプロセッサの命令発行部が発行するアクセス命令の構成例を示す図である。
【図３】本発明の第１の実施の形態によるプロセッサの動作モード設定部の構成例を示すブロック図である。
【図４】本発明の第１の実施の形態による主記憶アクセスにおけるロード動作を説明するフローチャートである。
【図５】本発明の第１の実施の形態による主記憶アクセスにおけるストア動作を説明するフローチャートである。
【図６】本発明の第２の実施の形態による主記憶アクセスにおけるロード動作を説明するフローチャートである。
【図７】本発明の第２の実施の形態による主記憶アクセスにおけるストア動作を説明するフローチャートである。
【図８】本発明の第３の実施の形態による主記憶アクセスにおけるロード動作を説明するフローチャートである。
【図９】本発明の第３の実施の形態による主記憶アクセスにおけるストア動作を説明するフローチャートである。
【符号の説明】
【０１０１】
１０：プロセッサ
１１：命令発行部
１２：演算部
１３：キャッシュユニット
１３１：キャッシュ制御部
１３２：キャッシュメモリ
２０：主記憶メモリ
３０：プログラム
４０：動作モード設定部
４１：動作モード変更手段
４２：動作モード情報格納手段
４３：動作モード情報
【図１】
2009093559.tif 000003
【図２】
2009093559.tif 000004
【図３】
2009093559.tif 000005
【図４】
2009093559.tif 000006
【図５】
2009093559.tif 000007
【図６】
2009093559.tif 000008
【図７】
2009093559.tif 000009
【図８】
2009093559.tif 000010
【図９】
2009093559.tif 000011