(57)【要約】　　　（修正有）【課題】高速アクセスを必要とする命令やデータを予めキャッシュメモリ内に格納し、その後のＣＰＵアクセスによるキャッシュメモリ内の置換動作を制御し、キャッシュメモリの効果をあげる。【解決手段】命令又はデータを格納するキャッシュメモリ１５と、優先される命令等が格納されているアドレス範囲を指定するアドレス範囲指定手段１３と、アドレス範囲内の命令等を読み出す先読み制御手段１２と、優先される命令等をキャッシュラインが格納していることを示す識別情報１５３を格納する識別情報格納手段と、先読み制御手段１２とＣＰＵ１１のアクセス要求を調停する調停手段１４と、キャッシュラインに既に格納されている命令等が、優先される命令等であるか否かを識別情報１５３により判別し、かつ、キャッシュラインの命令等の置き換えを制御する置換制御手段とを備える。【選択図】　　　　図１
2004118305.tif 000002
【特許請求の範囲】
【請求項１】
ＣＰＵと主記憶装置との間に置かれるキャッシュメモリ制御装置であって、命令又はデータを格納するキャッシュメモリと、優先される命令又はデータが格納されているアドレス範囲を指定するアドレス範囲指定手段と、該アドレス範囲指定手段で指定したアドレス範囲内の命令又はデータを前記ＣＰＵに代わって読み出す先読み制御手段と、前記アドレス範囲指定手段で指定したアドレス範囲内の命令又はデータを前記キャッシュメモリ内の所定のキャッシュラインに格納する際に、優先される命令又はデータを該キャッシュラインが格納していることを示す識別情報を格納する識別情報格納手段と、前記先読み制御手段と前記ＣＰＵの前記主記憶装置へのアクセス要求を調停する調停手段と、前記ＣＰＵにより前記主記憶装置から読み出された命令又はデータが格納されるキャッシュメモリ内のキャッシュラインに対して、当該キャッシュラインに既に格納されている命令又はデータが、優先される命令又はデータであるか否かを前記識別情報格納手段によって格納される識別情報により判別し、かつ、当該キャッシュラインの命令又はデータの置き換えを制御する置換制御手段とを備えるキャッシュメモリ制御装置。
【請求項２】
上記先読み制御手段は、連続して先読みする命令又はデータをワード単位で設定することができ、かつ、設定したワード単位の先読み動作が終了する毎に一旦動作を停止することを、上記アドレス指定手段で指定したアドレス範囲内にある命令又はデータの先読みが終了するまで繰り返す請求項１記載のキャッシュメモリ制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、キャッシュメモリ制御装置に関し、特に、高速アクセスを必要とする命令やデータを予めキャッシュメモリ内に格納し、その後のＣＰＵアクセスによるキャッシュメモリ内の置換動作を制御するキャッシュメモリ制御装置に関する。
【０００２】
【従来の技術】
従来、ＣＰＵ（Ｃｅｎｔｒａｌ　Ｐｒｏｃｅｓｓｉｎｇ　Ｕｎｉｔ）とメモリの間に置かれるキャッシュメモリは、１度メモリからアクセスされた命令やデータは再度アクセスされる確率が高いという性質や、データや命令の局所性を利用し、高速動作を行うＣＰＵと、比較的アクセス速度が遅い主記憶装置との動作速度のギャップを緩和するために、アクセス速度の速いキャッシュメモリに移し、次回以降のアクセスを高速化するために設けられている。
【０００３】
従来の、キャッシュメモリの動作において、メモリから読み出した命令やデータを格納するキャッシュメモリ上に空きのキャッシュラインが存在しない場合は、既に命令やデータが格納されているキャッシュラインに対し、既に格納されている命令やデータから今回の命令やデータに置き換える動作を行っている。
【０００４】
従来の置き換え動作について、図４〜６を参照して説明する。図４に示すように、ＣＰＵ１の高速アクセスが必要な命令やデータがメモリ３の領域Ａに格納されていて、高速アクセスが必要でない命令やデータがメモリ３の領域Ｂに格納されていて、キャッシュメモリ２にはメモリ３の領域Ｂに格納されている命令やデータｂ１、ｂ２…がすでに格納されている。ＣＰＵ１が領域Ａから命令やデータａ１、ａ２…を読み出して、キャッシュメモリ２内の所定のキャッシュラインに転送する場合、既に格納されている命令やデータｂ１、ｂ２との置き換え動作を行う。
【０００５】
また、図４の状態の後、図５に示すように、ＣＰＵ１が領域Ｂから命令やデータｂ１、ｂ２…を読み出して、キャッシュメモリ２内の所定のキャッシュラインに転送する場合、既に格納されている、高速アクセスが必要な命令やデータａ１、ａ２との置き換え動作を行う。
【０００６】
さらに、図５の状態の後、図６に示すように、ＣＰＵ１が領域Ａから命令やデータａ１、ａ２…を読み出して、キャッシュメモリ２内の所定のキャッシュラインに転送する場合、既に格納されている、命令やデータｂ１、ｂ２との置き換え動作を行う。
【０００７】
しかしながら、このような置換動作は、高速アクセスが要求される命令やデータであるか否かに関わらず行われるため、高速アクセスが要求される命令やデータが常にキャッシュメモリに格納されている保証が無く、キャッシュメモリを使用しても期待する効果が得られないという問題点があった。
【０００８】
さらに、ＣＰＵが、高速アクセスの必要な命令やデータに対してアクセスを行う場合に、キャッシュメモリ内に該命令やデータが格納されていない場合は、アクセス対象の命令やデータをキャッシュメモリに格納する動作が追加されるため、動作が遅くなるという問題点があった。
【０００９】
高速動作が要求されるプログラム実行時のキャッシュメモリに対し、高速動作が必要な部分が出てきたときに、キャッシュレジスタで命令やデータの書き換えの制御を行うことが提案されている（特許文献１参照）。しかしながら、高速動作が要求されるプログラムが実行されるたびにキャッシュレジスタの設定が行われるという、不要な処理が追加されるし、高速動作が要求されるプログラムがはじめて実行されるときは、該プログラムがキャッシュメモリ内に格納されていないため、高速に動作させる事が出来なかった。
【００１０】
【特許文献１】
特開平６−１９５２６７号公報
【００１１】
【発明が解決しようとする課題】
本発明は、上記問題を鑑みてなされたものであって、高速アクセスを必要とする命令やデータを予めキャッシュメモリ内に格納し、その後のＣＰＵアクセスによるキャッシュメモリ内の置換動作を制御し、高速アクセスが要求される命令やデータのアクセス時に、キャッシュメモリの効果をあげるキャッシュメモリ制御装置を提供することを目的とする。
【００１２】
【課題を解決するための手段】
本発明は、ＣＰＵと主記憶装置との間に置かれるキャッシュメモリ制御装置であって、命令又はデータを格納するキャッシュメモリと、優先される命令又はデータが格納されているアドレス範囲を指定するアドレス範囲指定手段と、該アドレス範囲指定手段で指定したアドレス範囲内の命令又はデータを前記ＣＰＵに代わって読み出す先読み制御手段と、前記アドレス範囲指定手段で指定したアドレス範囲内の命令又はデータを前記キャッシュメモリ内の所定のキャッシュラインに格納する際に、優先される命令又はデータを該キャッシュラインが格納していることを示す識別情報を格納する識別情報格納手段と、前記先読み制御手段と前記ＣＰＵの前記主記憶装置へのアクセス要求を調停する調停手段と、前記ＣＰＵにより前記主記憶装置から読み出された命令又はデータが格納されるキャッシュメモリ内のキャッシュラインに対して、当該キャッシュラインに既に格納されている命令又はデータが、優先される命令又はデータであるか否かを前記識別情報格納手段によって格納される識別情報により判別し、かつ、当該キャッシュラインの命令又はデータの置き換えを制御する置換制御手段とを備えるキャッシュメモリ制御装置である。
【００１３】
これにより、高速アクセスが必要な命令やデータを、該命令やデータが格納されている主記憶装置のアドレス範囲をアドレス範囲指定手段によって指定し、先読み制御手段によって、実際にＣＰＵがアクセスする前にキャッシュメモリ内に格納することによって、ＣＰＵがはじめて該命令やデータにアクセスするときから、高速にアクセスすることができ、その後も優先的にキャッシュメモリ内に常駐させておくことができる。
【００１４】
また、本発明は、上記先読み制御手段は、連続して先読みする命令又はデータをワード単位で設定することができ、かつ、設定したワード単位の先読み動作が終了する毎に一旦動作を停止することを、上記アドレス指定手段で指定したアドレス範囲内にある命令又はデータの先読みが終了するまで繰り返すキャッシュメモリ制御装置である。
【００１５】
これにより、優先的にキャッシュメモリ内に常駐させたい命令やデータが大きな場合であっても、ＣＰＵのアクセスを長時間待たすことなく、アドレス範囲指定手段によって指定されたアドレス範囲内の命令やデータを、先読み制御手段によって、キャッシュメモリ内に格納することできる。
【００１６】
【発明の実施の形態】
本発明の実施の形態を説明する。
本発明のキャッシュメモリ制御装置の一実施例について、図１〜図３を用いて説明する。図１は、実施例のキャッシュメモリ制御装置の構成を示すブロック図である。図２は、実施例における先読み制御部の処理を示すフローチャートである。図３は、実施例におけるキャッシュコントローラによりアクセス要求入力時に実行される処理のフローチャートである。
【００１７】
実施例を説明する。本実施例のキャッシュメモリ制御装置を説明する。本実施例のキャッシュメモリ制御装置は、ＣＰＵと主記憶装置との間に置かれ、命令又はデータを格納するキャッシュメモリと、優先される命令又はデータが格納されているアドレス範囲を指定するアドレス範囲指定手段と、該アドレス範囲指定手段で指定したアドレス範囲内の命令又はデータを前記ＣＰＵに代わって読み出す先読み制御手段と、前記アドレス範囲指定手段で指定したアドレス範囲内の命令又はデータを前記キャッシュメモリ内の所定のキャッシュラインに格納する際に、優先される命令又はデータを該キャッシュラインが格納していることを示す識別情報を格納する識別情報格納手段と、前記先読み制御手段と前記ＣＰＵの前記主記憶装置へのアクセス要求を調停する調停手段と、前記ＣＰＵにより前記主記憶装置から読み出された命令又はデータが格納されるキャッシュメモリ内のキャッシュラインに対して、当該キャッシュラインに既に格納されている命令又はデータが、優先される命令又はデータであるか否かを前記識別情報格納手段によって格納される識別情報により判別し、かつ、当該キャッシュラインの命令又はデータの置き換えを制御する置換制御手段とを備える。
【００１８】
本実施例のキャッシュメモリ制御装置を具体的に説明する。図１は、計算機システム１０のブロック構成図である。なお、本実施例を説明するにあたって不要な部分は省略している。本図において、計算機システム１０は、ＣＰＵ１１、先読み制御部１２、アドレス範囲指定部１３、調停部１４、キャッシュメモリ１５、主記憶装置１６により構成される。
【００１９】
アドレス範囲指定部１３は、ＣＰＵ１１からのアドレス範囲設定命令を受けると、高速アクセスが必要な命令やデータが格納されているアドレス範囲をレジスタに設定する。
【００２０】
主記憶装置１６はＣＰＵ１１が実行するプログラムが格納されているＲＯＭ（Ｒｅａｄ　Ｏｎｌｙ　Ｍｅｍｏｒｙ）や、データが格納されるＳＤＲＡＭ（Ｓｙｎｃｈｒｏｎｏｕｓ　Ｄｙｎａｍｉｃ　Ｒａｎｄｏｍ　Ａｃｃｅｓｓ　Ｍｅｍｏｒｙ）等から構成されている。
【００２１】
調停部１４は、ＣＰＵ１１と先読み制御部１２のアクセス要求の調停を行い、どちらか一方のアクセスを許可してキャッシュメモリ１５にアクセス要求を出力し、他方のアクセスを待たせる。
【００２２】
キャッシュメモリ１５は、キャッシュコントローラ１５１、メモリ１５２、タグメモリ１５３から構成されている。
【００２３】
キャッシュコントローラ１５１は、ＣＰＵ１１または先読み格納制御部１２が主記憶装置１６から読み出した命令やデータをメモリ１５２へ格納する動作（ラインフィル、置き換え）およびタグメモリ１５３内のデータである、有効ビット（Ｖ：Ｖａｌｉｄ）、常駐ビット（Ｗ：Ｗｉｒｅｄ）、タグデータの格納動作を制御する。
【００２４】
タグメモリ１５３は、ＲＡＭ（Ｒａｎｄｏｍ　Ａｃｃｅｓｓ　Ｍｅｍｏｒｙ）等から構成され、有効ビットＶ（該キャッシュラインに有効な命令やデータが格納されていることを示す）、常駐ビットＷ（該キャッシュラインに格納されている命令やデータが優先指定されていることを示す）およびタグデータをキャッシュライン単位で格納するメモリ領域を形成し、メモリ１５２は、ＲＡＭ等から構成され、主記憶装置１６から読み出される命令やデータをキャッシュライン単位で格納するメモリ領域を形成する。
【００２５】
次に、先読み制御部１２の動作の一例について、図２に示すフローチャートに基づいて説明する。計算機システム１０の電源がオンされると、先読み制御部は初期化される（Ｓ１０１）。その後、ＣＰＵ１１からの命令をチェックし（Ｓ１０２）、連続先読みワード数設定命令か判断し（Ｓ１０３）、設定命令であれば、設定値をレジスタにセットし（Ｓ１１１）、そして、ステップＳ１０２に戻る。動作命令であるか判断し（Ｓ１２１）、動作命令でなければステップＳ１０２に戻り、ＣＰＵ１１０からの命令をチェックし続ける。動作命令であると、先読みが開始され、先読みを行った命令やデータの累計数をカウントする先読みカウンタと、連続して先読みを行った命令やデータの数をカウントする連続先読みカウンタをリセットする（Ｓ１２２、Ｓ１２３）。その後、調停部１４に対して先読みアクセス要求を発生する（Ｓ１２４）。調停部１４でＣＰＵ１１のアクセス要求との調停を行い、先読みアクセス要求が許可されるか判断し（Ｓ１２５）、許可されると、先読みを行うアドレスを、前記先読みカウンタの値とアドレス範囲指定部１３に指定されたアドレス範囲の先頭アドレスを基に生成する（Ｓ１３１）。生成された先読みを行うアドレスが、アドレス範囲指定部１３で設定されたアドレス範囲外であれば、先読みアクセス要求を終了し（Ｓ１４１）、ＣＰＵ１１からの命令チェックに戻る。アドレス範囲内であれば、アクセスを実行する（Ｓ１５１）。このアクセスで読み出された命令やデータは、先読み制御部１２では無視され、後述するキャッシュコントローラ１５１の制御によって、読み出した命令やデータをメモリ１５２内に格納するために使用される。アクセス終了後、先読みカウンタと連続先読みカウンタをインクリメントする（Ｓ１５２、Ｓ１５３）。連続先読みカウンタの値をチェックし（Ｓ１５４）、連続先読みワード数設定値と同一か判断し（Ｓ１５５）、同一であれば、先読みアクセス要求を終了し（Ｓ１６１）、連続先読みカウンタのリセットに戻る。同一でなければ、ステップＳ１３１に戻る。
【００２６】
次に、ＣＰＵ１１によるアクセス動作とキャッシュメモリ１５の動作を説明する。ＣＰＵ１１から調停部１４へ、アクセス要求を出力し、調停部１４で先読み制御部１２のアクセス要求との調停を行う。調停部１４でＣＰＵ１１のアクセス要求が許可されると、調停部は、キャッシュメモリ１５に対して、アクセス要求を出力する。キャッシュメモリ内に該当する命令やデータがある場合は、ＣＰＵ１１とキャッシュメモリ１５間で命令やデータの転送を行う。キャッシュメモリ１５内に該当する命令やデータが無く、読み出されたアドレスに対応するキャッシュラインが空の場合は、該キャッシュラインへのラインフィル（格納動作）が行われる。このとき、読み出されたアドレスが、アドレス範囲指定部１３で指定されたアドレス範囲内であれば、タグメモリ１５３の対応するキャッシュラインの常駐ビットＷと有効ビットＶは、”１”にセットされ、タグデータが格納される。読み出されたアドレスが、アドレス範囲指定部１３で指定されたアドレス範囲外であれば、タグメモリ１５３の対応するキャッシュラインの常駐ビットＷは”０”にセットされ、有効ビットＶは、”１”にセットされ、タグデータが格納される。また、キャッシュメモリ１５内に該当する命令やデータが無く、読み出されたアドレスに対応するキャッシュラインに既に命令やデータが格納されている場合は、常駐ビットＷが”０”の場合、該キャッシュラインへの命令やデータの置き換えが行われ、常駐ビットＷが”１”の場合、読み出されたアドレスが、アドレス範囲指定部１３で指定されたアドレス範囲内であれば、該キャッシュラインへの命令やデータの置き換えが行われ、アドレス範囲外であれば、置換を行わず、ＣＰＵ１１と主記憶装置１６間で命令やデータの転送を行う。
【００２７】
次に、キャッシュコントローラ１５１の動作の一例について、図３に示すフローチャートに基づいて説明する。調停部１４からのアクセス要求により処理を開始し、まずタグメモリ１５３の内容をチェックし（Ｓ２０１）、アクセス要求のあった命令やデータがメモリ１２２内に格納されているか否かを判断する（Ｓ２０２）。アクセス要求のあった命令やデータが格納されていた場合は、ＣＰＵ１１と先読み制御部１２のうち、調停部１４によってアクセスを許可されている方とキャッシュメモリ１５との間で命令やデータを転送して（Ｓ２１１）、処理を終了する。アクセス要求のあった命令やデータが格納されていない場合は、その命令やデータを主記憶装置１６から読み出してキャッシュメモリ１５内のメモリ１５２に格納するが、このとき、格納先のキャッシュラインに命令やデータが格納されているか否かにより処理が異なる。
【００２８】
すなわち、データが格納されていない場合は、そのキャッシュラインへのラインフィルを行って本処理を終了する（Ｓ２７１）。格納されている場合は、置き換えられるキャッシュラインのタグメモリ１５３の常駐ビットが”１”であるかをチェックする（Ｓ２２１、Ｓ２２２）。”０”のときは、そのキャッシュラインを今回読み出した命令やデータで置き換えて本処理を終了する（Ｓ２６）。
”１”の場合は、今回読み出した命令やデータのアドレスが、アドレス範囲指定部１３で設定されたアドレス範囲内か否かをチェックする（Ｓ２３１、Ｓ２３２）。アドレス範囲外であるときは、置き換えは行わず（Ｓ２５１）、ＣＰＵ１１と先読み制御部１２のうち、調停部１４によってアクセスを許可されている方と主記憶装置１６との間で命令やデータを転送して、本処理を終了する。アドレス範囲内である場合は、そのキャッシュラインを今回読み出した命令やデータで置き換え（Ｓ２４１）、本処理を終了する。
【００２９】
このように、先読み制御部によって、高速アクセスが必要な命令やデータを予めキャッシュメモリ１５内に格納し、タグメモリ１５３内に常駐ビットＷを追加して、キャッシュメモリ１５内に常駐させることにより、ＣＰＵ１１から高速アクセスが必要な命令やデータをアクセスした際に、はじめてアクセスするときから、キャッシュメモリ１５内に格納されている確率を向上させることができ、高速にアクセスすることができる。高速アクセスが必要な命令やデータを予めキャッシュメモリ１５内に格納するためには、アドレス範囲設定命令と連続先読みワード数設定命令と動作命令を出力する処理を、高速アクセスが必要な命令やデータを予めキャッシュメモリ１５内に格納することが必要なときのみ追加するだけで良いので、ＣＰＵ１１に対する処理負担増を考慮する必要性は少なくてすむ。
また、連続して先読みを行うワード数を設定する機能を追加することにより、高速アクセスが必要な命令やデータを予めキャッシュメモリ１５内に格納する際に、その命令やデータが大きな場合であっても、ＣＰＵ１１のアクセスを長時間待たすことなく、キャッシュメモリ１５内に格納することできる。
【００３０】
【発明の効果】
本発明によれば、高速アクセスが必要な命令やデータを予めキャッシュメモリに格納し、常駐させることにより、ＣＰＵから高速アクセスが必要な命令やデータをアクセスした際に、はじめてアクセスするときから、キャッシュメモリ内に格納されている確率を向上させることができ、高速にアクセスすることができるキャッシュメモリ制御装置を得ることができる。
【図面の簡単な説明】
【図１】実施例のキャッシュメモリ制御装置の構成を示すブロック図。
【図２】実施例における先読み制御部の処理を示すフローチャート。
【図３】実施例におけるキャッシュコントローラによりアクセス要求入力時に実行される処理のフローチャート。
【図４】従来のキャッシュメモリの動作を説明するための図。
【図５】従来のキャッシュメモリの置き換え動作を説明するための図。
【図６】従来のキャッシュメモリのさらに置き換え動作を行った場合を説明するための図。
【符号の説明】
１０　計算機システム
１１　ＣＰＵ
１２　先読み制御部
１３　アドレス範囲指定部
１４　調停部
１５　キャッシュメモリ
１５１　キャッシュコントローラ
１５２　メモリ
１５３　タグメモリ
１６　主記憶装置
【図１】
2004118305.tif 000003
【図２】
2004118305.tif 000004
【図３】
2004118305.tif 000005
【図４】
2004118305.tif 000006
【図５】
2004118305.tif 000007
【図６】
2004118305.tif 000008