(57)【特許請求の範囲】
【請求項１】
メインメモリに接続されると共に複数の領域に分割された複数のデータ記憶部からなるセットアソシアティブ方式のキャッシュメモリを制御するキャッシュメモリの制御方法であって、
前記領域は、キャッシュメモリを構成するキャッシュラインであり、一つのデータ記憶部における各キャッシュラインに対して置換の禁止を設定するフラグを設け、供給される命令信号に基づいて、少なくとも一つのフラグをセットすることにより対応する全てのデータ記憶部のキャッシュラインを前記メインメモリとの置換を禁止する領域として設定する第一のステップと、
前記設定により前記置換が禁止されている前記キャッシュラインを前記メインメモリと置換することなく、前記キャッシュメモリ又は前記メインメモリに対するデータの読み出し又は書き込みを行う第二のステップとを有することを特徴とするキャッシュメモリの制御方法。
【請求項２】
供給される命令信号に基づいて、前記設定を解除する第三のステップを有することを特徴とする請求項１に記載のキャッシュメモリの制御方法。
【請求項３】
前記第三のステップにおいては、前記設定を解除する領域に対応するフラグをリセットすることを特徴とする請求項２に記載のキャッシュメモリの制御方法。
【請求項４】
前記第一のステップにおいては、一つの命令信号に基づいて、前記設定を全て解除し得る請求項１乃至３の何れか１項に記載のキャッシュメモリの制御方法。
【請求項５】
メインメモリと、前記メインメモリに接続され複数の領域に分割された複数のデータ記憶部からなるセットアソシアティブ方式のキャッシュメモリとを有する情報処理装置であって、
前記領域は、キャッシュメモリを構成するキャッシュラインであり、一つのデータ記憶部における各キャッシュラインに対して置換の禁止を設定するフラグを設け、供給される命令信号に基づいて、少なくとも一つのフラグをセットすることにより対応する全てのデータ記憶部のキャッシュラインを前記メインメモリとの置換を禁止する領域として設定する置換領域設定手段と、
前記置換領域設定手段により前記置換の禁止が設定された前記キャッシュラインを前記メインメモリと置換することなく、前記キャッシュメモリ又は前記メインメモリに対するデータの読み出し又は書き込みを行うデータ読み書き手段とを有することを特徴とする情報処理装置。
【請求項６】
供給される命令信号に基づいて、前記設定を解除する置換領域解除手段を有することを特徴とする請求項５に記載の情報処理装置。
【請求項７】
前記置換領域解除手段は、前記設定を解除する領域に対応するフラグをリセットすることを特徴とする請求項６に記載の情報処理装置。
【請求項８】
前記置換領域設定手段は、一つの命令信号に基づいて、前記設定を全て解除し得る請求項５乃至７の何れか１項に記載の情報処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は計算機等の情報処理装置に関し、さらに詳しくは、キャッシュメモリの制御方法と該方法を実現する計算機等の情報処理装置に関するものである。
【０００２】
【従来の技術】
一般に、プロセッサのメモリに対するアクセス速度を向上させる方法として、キャッシュメモリの使用が知られている。このキャッシュメモリの使用とは、ある一定の実行時間におけるプログラムよりアクセス（参照）されるメモリのアドレスは一部に集中するという参照局所性（referential locality）を効果的に用いたものである。
【０００３】
なお、上記参照局所性は、局所性を示す対象により二つに分けられる。すなわち、一度アクセスされたアドレスに近接する（格納場所が近い）アドレスは、近いうちにアクセスされる可能性が高いという空間的参照局所性（spatial locality, locality in space ）と、一度アクセスされたアドレスは、近いうちに何回もアクセスされる可能性が高いという時間的参照局所性（temporal locality, locality in time ）とがあり、多くのプログラムはこのような参照局所性を持っている。
【０００４】
以下において、従来において提案されているキャッシュメモリを使用した計算機について説明する。図１は、従来のダイレクトマップ（direct mapped ）方式によるキャッシュ計算機の構成を示す図である。なお、ダイレクトマップ（direct mapped ）方式によるキャッシュ計算機においては、ライトスルー（write-through)及びライトバック（write-back) の二つの形式がある。
【０００５】
ここで、「ライトスルー」とは、キャッシュメモリ３のデータの書き換えと同時にメインメモリ５のデータも更新する形式のものをいう。一方、「ライトバック」とは、いったんキャッシュメモリ３だけが書き換えられ、その後そのデータが含まれるキャッシュブロック＃０〜＃ｎが置換の対象となってメインメモリ５へ追い出されることを利用してメインメモリ５が更新される形式のものをいう。
【０００６】
図１に示されるように、このキャッシュ計算機はプロセッサ１と、プロセッサ１に接続されたキャッシュメモリ３と、キャッシュメモリ３に接続されたメインメモリ５とを備える。そして、キャッシュメモリ３はアドレスレジスタ７と、比較器９と、制御部１１と、データレジスタ１３と、データ記憶部１０とを含む。ここで、アドレスレジスタ７はプロセッサ１に接続され、プロセッサ１から供給されたアドレスを保持する。また、データレジスタ１３は制御部１１及びプロセッサ１に接続され、プロセッサ１へ供給する読出データ、プロセッサ１から供給される書込データ、制御部１１から供給される読出データ、及びデータ記憶部１０へ供給される書込データを保持する。
【０００７】
また、データ記憶部１０は複数の領域（キャッシュブロック）＃０〜＃ｎから構成され、各領域はタグＴＡＧと、有効フラグＶと、キャッシュブロックデータＤＡＴＡとを含む。そして、ライトバック形式のキャッシュ計算機においては、さらに変更フラグＭを含む。
ここで、タグＴＡＧはキャッシュブロック＃０〜＃ｎの識別アドレスを保持する。また、有効フラグＶはＶ＝０の時にキャッシュブロックが無効であり、Ｖ＝１の時にキャッシュブロックが有効であることをそれぞれ意味するものである。
【０００８】
またライトバック形式のキャッシュ計算機で用いられる変更フラグＭは、Ｍ＝０の時にキャッシュブロックは未置換（未変更）であり、Ｍ＝１の時にキャッシュブロックがメインメモリと置換（変更）済みであることをそれぞれ意味するものである。
またキャッシュブロック＃０〜＃ｎは、キャッシュブロックデータＤＡＴＡとして、メインメモリ５から供給されたブロックデータを保持する。さらに、比較器９はアドレスレジスタ７を介してプロセッサ１から供給されたアドレスとタグＴＡＧとを比較する。なお、有効フラグＶが０である場合には不一致とみなされる。また、制御部１１はプロセッサ１の命令読み出し動作の制御を行う。
【０００９】
図２は、図１に示された制御部１１の構成を示す図である。図２に示されるように、制御部１１はプロセッサ１から供給された信号をデコードするデコード部３００と、デコード部３００に接続されデータ記憶部１０及びメインメモリ５に対するデータ書き込みを制御する書込制御部３２２と、同様にデコード部３００に接続されデータ記憶部１０及びメインメモリ５からのデータ読み出しを制御する読出制御部３１１とを備える。
【００１０】
以下において、上記計算機の動作について説明する。まずプロセッサ１によるデータ読み出し動作では、比較器９においてプロセッサ１より供給されたアドレスと、有効フラグＶが１である有効なキャッシュブロックのタグＴＡＧとを比較する。そして、一致するものがあるキャッシュヒット時は、キャッシュヒットを示す信号が比較器９から読出制御部３１１及び書込制御部３２２へ供給され、読出制御部３１１はアドレスレジスタ７から供給されたブロックアドレスに応じてデータ記憶部１０からキャッシュブロックデータＤＡＴＡを読出し、データレジスタ１３を介してプロセッサ１へ供給する。
【００１１】
一方、一致するものが無いキャッシュミスヒット時は、キャッシュミスヒットを示す信号が比較器９から読出制御部３１１及び書込制御部３２２へ供給され、読出制御部３１１及び書込制御部３２２は置換対象とするキャッシュブロックを決定してブロック置換を行う。すなわち、読出制御部３１１はメインメモリ５からデータを読出し、書込制御部３２２は読み出したデータを上記の置換したキャッシュブロックに書込むと共に、該キャッシュブロックに含まれた有効フラグＶを１とする。なお、ライトバック形式のキャッシュ計算機においては、この時置換対象とするキャッシュブロックの変更フラグＭが１である場合には、読出制御部３１１が該キャッシュブロックに既に書込まれているデータをメインメモリ５へも書込み、その後変更フラグＭが０とされた上で、該キャッシュブロックに新たなデータが書込まれる。また、キャッシュブロックに書込まれた該データはプロセッサ１へ供給される。
【００１２】
次に、プロセッサ１によるデータ書き込み動作について説明する。比較器９は、プロセッサ１より供給されたアドレスと有効フラグＶが１であるキャッシュブロックのタグＴＡＧとを比較する。この時、一致するものがあるキャッシュヒット時は、書込制御部３２２はアドレスレジスタ７から供給されたブロックアドレスに対応するキャッシュブロックへプロセッサ１より供給された書込データを書込み、ライトバック形式のキャッシュ計算機においては該キャッシュブロックに含まれた変更フラグＭが１とされる。一方、一致するものがないキャッシュミスヒット時は、書込制御部３２２によりメインメモリ５へ書込データが書込まれる。
【００１３】
図３は、従来のフル・アソシアティブ（full associative）方式によるキャッシュ計算機の構成を示す図である。なお、フル・アソシアティブ（full associative）方式によるキャッシュ計算機においても、上記ダイレクトマップ（direct mapped ）方式によるキャッシュ計算機と同様に、ライトスルー（write-through)及びライトバック（write-back) の二つの形式がある。
【００１４】
図３に示されるように、このキャッシュ計算機は、図１に示された計算機と同様にプロセッサ１と、プロセッサ１に接続されたキャッシュメモリ３０と、キャッシュメモリ３０に接続されたメインメモリ５とを備える。そして、キャッシュメモリ３０はアドレスレジスタ１４と、比較器１５，１７，１９，２０と、制御部２３と、データレジスタ２１と、キャッシュブロック＃０〜＃ｎとを含む。
【００１５】
また、図４は図３に示された制御部２３の構成を示す図である。図４に示されるように、制御部２３はブロックアドレス算出部３３２と、ＯＲゲート３３９と、デコード部３０１と、書込制御部３２３と、読出制御部３１２とを備える。そして、ブロックアドレス算出部３３２は比較器１５，１７，１９，２０に接続され、かつ各キャッシュブロック＃０〜＃ｎの有効フラグＶの値が供給される。また、ＯＲゲート３３９には各キャッシュブロック＃０〜＃ｎの有効フラグＶの値が供給される。
【００１６】
また、デコード部３０１はプロセッサ１に接続され、供給された信号をデコードする。さらに、読出制御部３１２はデコード部３０１やブロックアドレス算出部３３２やＯＲゲート３３９に接続されデータの読み出しを制御する。そして同様に、書込制御部３２３はデコード部３０１やブロックアドレス算出部３３２やＯＲゲート３３９に接続されデータの書き込みを制御する。
【００１７】
このような方式によるキャッシュ計算機は、図１に示された計算機と同様に動作するが、ブロックアドレス算出部３３２から供給されたキャッシュブロックアドレスＣＢＡ及びＯＲゲート３３９から供給された信号に応じて、読出制御部３１２及び書込制御部３２３はデータの読出し又は書込みの対象とするキャッシュブロック＃０〜＃ｎを選択するほか、プロセッサ１によるデータ書き込み動作におけるキャッシュミスヒット時の動作が相違する。すなわち、書込み動作におけるキャッシュミスヒット時においては、読出制御部３１２及び書込制御部３２３は置換対象とするキャッシュブロック＃０〜＃ｎを決定しブロック置換を行う。そして、置換対象とするキャッシュブロックの有効フラグＶが１に設定される。ここで、プロセッサ１から供給される書込データは、置換されたキャッシュブロックとメインメモリ５との双方へ書込制御部３２３により書込まれる。
【００１８】
なお、ライトバック形式のキャッシュ計算機では、データ読出し時において、置換対象とするキャッシュブロックの変更フラグＭが１である場合には、読出制御部３１２が該キャッシュブロックに既に書込まれているデータをメインメモリ５にも書込み、その後変更フラグＭが０とされ、該キャッシュブロックへ新たなデータが書込まれる。
【００１９】
図５は、従来の２ウェイ・セット・アソシアティブ方式によるキャッシュ計算機の構成を示す図である。図５に示されるように、この計算機は図１に示された計算機と同様にプロセッサ１と、プロセッサ１に接続されたキャッシュメモリ４０と、キャッシュメモリ４０に接続されたメインメモリ５とを備える。そして、キャッシュメモリ４０はアドレスレジスタ２５と、比較器９，２７と、制御部３３と、データレジスタ３１と、二つのデータ記憶部（ウェイ）１０，２９とを含む。
【００２０】
図６は図５に示された制御部３３の構成を示す図である。図６に示されるように、制御部３３はブロックアドレス算出部３３３と、ＯＲゲート３４０と、デコード部３０２と、書込制御部３２４と、読出制御部３１３とを備える。そして、ブロックアドレス算出部３３３は比較器９，２７に接続され、かつ各ウェイ１０，２９に含まれるキャッシュブロック＃０〜＃ｎの有効フラグＶの値が供給される。また、ＯＲゲート３４０には各キャッシュブロック＃０〜＃ｎの有効フラグＶの値が供給される。
【００２１】
また、デコード部３０２はプロセッサ１に接続され、供給された信号をデコードする。さらに、読出制御部３１３はデコード部３０２やブロックアドレス算出部３３３やＯＲゲート３４０に接続されデータの読み出しを制御する。そして同様に、書込制御部３２４はデコード部３０２やブロックアドレス算出部３３３やＯＲゲート３４０に接続されデータの書き込みを制御する。そして、このような方式による計算機も、上記の計算機と同様に動作する。
【００２２】
従って、従来の２ウェイ・セット・アソシアティブ方式によるライトバック形式のキャッシュ計算機においても、プロセッサ１による書込み動作時にはプロセッサ１から供給された書込データが置換対象とされるキャッシュブロックのみに書込まれる。すなわち、ライトバック形式のキャッシュ計算機においては、いったんキャッシュメモリ４０だけが書き換えられ、その後そのデータが含まれるキャッシュブロック＃０〜＃ｎが置換の対象となってメインメモリ５へ追い出されることを利用してメインメモリが更新される。
【００２３】
上記のようなキャッシュメモリを使用した計算機等の情報処理装置においては、プロセッサ１のメインメモリ５に対するアクセス速度が向上されるが、外部割込みのような非同期的データ処理や多岐にわたる信号を処理するマルチメディア処理のように参照局所性が期待できないプログラムにおいては、キャッシュメモリの使用の効果が十分得られないという問題がある。
【００２４】
【発明が解決しようとする課題】
本発明は、上述の問題を解消するためになされたものであり、参照局所性が期待できないプログラムにおいてもメインメモリに対するアクセス速度を容易に向上させることができるキャッシュメモリの制御方法及び情報処理装置を提供することを目的とする。
【００２５】
【課題を解決するための手段】
上記の目的は、メインメモリに接続されると共に複数の領域に分割された複数のデータ記憶部からなるセットアソシアティブ方式のキャッシュメモリを制御するキャッシュメモリの制御方法であって、前記領域は、キャッシュメモリを構成するキャッシュラインであり、一つのデータ記憶部における各キャッシュラインに対して置換の禁止を設定するフラグを設け、供給される命令信号に基づいて、少なくとも一つのフラグをセットすることにより対応する全てのデータ記憶部のキャッシュラインを前記メインメモリとの置換を禁止する領域として設定する第一のステップと、前記設定により前記置換が禁止されている前記キャッシュラインを前記メインメモリと置換することなく、前記キャッシュメモリ又は前記メインメモリに対するデータの読み出し又は書き込みを行う第二のステップとを有することを特徴とするキャッシュメモリの制御方法を提供することにより達成される。このような手段によれば、不要な置換を抑止してメインメモリに対するアクセス速度を容易に向上させることができる。
【００２６】
また、上記第一のステップにおいては、置換の禁止を設定する領域に対応するフラグをセットすると共に設定を解除する領域に対応するフラグをリセットし、第二のステップにおいては、フラグがセットされた領域をメインメモリとの置換の対象としないものとすることができる。そしてさらに上記第一のステップにおいては、一つの命令信号をキャッシュメモリへ供給することにより、設定を全て解除し得ることとすることができる。
【００２７】
また、本発明の目的は、メインメモリと、前記メインメモリに接続され複数の領域に分割された複数のデータ記憶部からなるセットアソシアティブ方式のキャッシュメモリとを有する情報処理装置であって、前記領域は、キャッシュメモリを構成するキャッシュラインであり、一つのデータ記憶部における各キャッシュラインに対して置換の禁止を設定するフラグを設け、供給される命令信号に基づいて、少なくとも一つのフラグをセットすることにより対応する全てのデータ記憶部のキャッシュラインを前記メインメモリとの置換を禁止する領域として設定する置換領域設定手段と、前記置換領域設定手段により前記置換の禁止が設定された前記キャッシュラインを前記メインメモリと置換することなく、前記キャッシュメモリ又は前記メインメモリに対するデータの読み出し又は書き込みを行うデータ読み書き手段とを有することを特徴とする情報処理装置を提供することにより達成される。
【００２８】
また、上記置換領域設定手段は、置換の禁止を設定する領域に対応するフラグをセットすると共に、設定を解除する領域に対応するフラグをリセットし、データ読み書き手段は、フラグがセットされた領域をメインメモリとの置換の対象としないものとすることができる。そして、置換領域設定手段はさらに、供給された一つの命令信号により、置換を禁止する設定を全て解除し得るものとすることができる。
【００２９】
【発明の実施の形態】
以下において、本発明の情報処理装置の実施の形態を図面を参照して詳しく説明する。なお、同一符号は同一又は相当部分を示す。
［実施の形態１］
本発明の実施の形態１に係る計算機は、ダイレクトマップ（direct mapped ）方式によるキャッシュ計算機において、データを記憶するキャッシュメモリの全体又は一部に対して、供給された命令信号によりメインメモリに対する置換禁止領域を設定し得るものである。なお、上記ダイレクトマップ方式によるキャッシュ計算機においては、ライトスルー及びライトバックのいずれの形式を採用するものであっても、本発明が同様に適用される。以下において、より具体的に記述する。
（実施例１）
図７は、本実施の形態に係る計算機においてキャッシュメモリ５０のデータ記憶部１０全体を置換禁止領域と設定し得る計算機の構成を示す図である。図７に示されるように、本実施例に係る計算機は図１に示された従来の計算機と同様な構成を有するが、プロセッサ３４は命令フェッチ部３５と命令実行部３７とレジスタ部３２とを含み、キャッシュメモリ５０はロックフラグＬを含む点で相違する。
【００３０】
また、図８は図７に示された制御部３９の構成を示す図である。図８に示されるように、制御部３９はデコード部３０３と、判断部３５５と、フラグ制御部３４７と、読出制御部３１４と、書込制御部３２５とを備える。ここで、デコード部３０３は命令実行部３７に接続され、判断部３５５は比較器９およびロックフラグＬに接続される。また、フラグ制御部３４７はデコード部３０３及びロックフラグＬに接続される。そして、読出制御部３１４及び書込制御部３２５は、デコード部３０３とアドレスレジスタ７と比較器９及び判断部３５５等に接続される。
【００３１】
このような構成を有する計算機は、図１に示された従来の計算機と同様に動作するが、以下の点で相違する。すなわち、命令フェッチ部３５はメインメモリ５またはキャッシュメモリ５０から命令の読み出しを行い、キャッシュロック命令を読み出した場合にその命令を命令実行部３７へ供給する。
ここで、一般的にキャッシュメモリ５０の種類としては、専ら命令を格納する命令キャッシュと、専らデータを格納するデータキャッシュと、命令及びデータを格納する統合型（unified ）キャッシュとがあるが、図７においては統合型のキャッシュメモリ５０を備えたキャッシュ計算機の構成が示される。
【００３２】
ここで、図７に示されるように統合型のキャッシュ計算機においては、命令フェッチ部３５が命令をキャッシュメモリ５０から読み出し、キャッシュミス時には命令をメインメモリ５からデータレジスタ１３を介して読み出す。またデータについては、命令実行部３７がメインメモリ５からデータレジスタ１３を介して読み出す。一方、命令フェッチ部３５からアドレスレジスタ７へは命令アドレスが供給され、命令実行部３７からアドレスレジスタ７へはデータアドレスが供給される。なお、命令実行部３７に接続されたレジスタ部３２は、命令実行部３７における処理のため一時的な記憶をしたり、該処理を容易に実行するために用いられる一種の記憶装置である。
【００３３】
そして、上記のように命令実行部３７は供給された命令を実行するが、命令フェッチ部３５からキャッシュロック命令が供給された場合には、メインメモリ５に対してデータ記憶部１０全体を置換禁止領域とするキャッシュロックの実行を制御部３９へ指示する。また命令実行部３７は、キャッシュアンロック命令が供給された場合には、メインメモリ５に対してデータ記憶部１０全体を置換禁止領域とする設定を解除するキャッシュアンロックの実行を制御部３９へ指示する。
【００３４】
そして、制御部３９は、命令実行部３７よりキャッシュロックが指示された場合にはフラグ制御部３４７がロックフラグＬを１にし、キャッシュアンロックが指示された場合にはフラグ制御部３４７がロックフラグＬを０にすることにより置換禁止領域を設定する。ここで、プロセッサ３４のデータ読み出し時においては、読出制御部３１４及び書込制御部３２５は判断部３５５から供給されるオールロック信号ＡＬに応じてロックフラグＬの値が０か１かを判別し、０の場合にはデータ記憶部１０をメインメモリ５との置換の対象とする一方、１の場合にはデータ記憶部１０全体をメインメモリ５との置換禁止領域とする。すなわち、判断部３５５によりロックフラグＬの値が１であると判断された場合には、データ記憶部１０全体についてメインメモリ５との置換がなされることなく、メインメモリ５またはキャッシュメモリ５０からデータが読み出される。
【００３５】
また同様に、プロセッサ３４はデータの書込み時においても、判断部３５５がロックフラグＬの値が０か１かを判断し、０の場合にはデータ記憶部１０をメインメモリ５との置換の対象とする一方、１の場合にはデータ記憶部１０全体をメインメモリ５との置換禁止領域とする。すなわち、判断部３５５によりロックフラグＬの値が１であると判断された場合には、データ記憶部１０全体についてメインメモリ５との置換がなされないため、メインメモリ５のみへ新たなデータが書込まれる。
【００３６】
なお図９は、キャッシュメモリのデータ記憶部１１１全体を置換禁止領域と設定し得るキャッシュ計算機であって、ダイレクトマップ方式による命令キャッシュ計算機の構成を示す図である。図９に示されるように、この命令キャッシュ計算機においては、命令フェッチ部１３５が命令をフェッチデータとしてキャッシュメモリ１５０から読み出し、キャッシュミス時には命令をフェッチデータとしてメインメモリ１１５からデータレジスタ１１３を介して読み出す。一方、命令フェッチ部１３５からアドレスレジスタ１１７へ命令アドレスが供給され、比較器１１９においてアドレスレジスタ１１７から供給された命令アドレスとデータ記憶部１１１から読み出されたアドレスとが比較される。そして、この比較の結果に基づいて、制御部１３９はメインメモリ１１５に対するフェッチデータの読み出し及び書き込みを制御する。なお、命令実行部１３７にはレジスタ部１３２が接続される。
【００３７】
また図１０は、キャッシュメモリのデータ記憶部２１０全体を置換禁止領域と設定し得るキャッシュ計算機であって、ダイレクトマップ方式によるデータキャッシュ計算機の構成を示す図である。図１０に示されるように、このデータキャッシュ計算機においては、命令実行部２３７がロードデータをキャッシュメモリ２５０から読み出し、キャッシュミス時にはメインメモリ２０５からデータレジスタ２１３を介して読み出す。一方、命令実行部２３７からアドレスレジスタ２１７へデータアドレスが供給され、比較器２１９においてアドレスレジスタ２１７から供給されたデータアドレスとデータ記憶部２１０から読み出されたアドレスとが比較される。そして、この比較の結果に基づいて、制御部２３９はメインメモリ２０５に対するデータの読み出し及び書き込みを制御する。なお、命令実行部２３７には命令フェッチ部２３５及びレジスタ部２３２が接続される。
【００３８】
また、上記におけるキャッシュロック命令とキャッシュアンロック命令とは、共に命令コードOP-CODE を含む図１１に示されるような命令形式を有するが、キャッシュロック命令とキャッシュアンロック命令とは異なる命令コードOP-CODE を有する。
以上より本実施例に係る計算機によれば、データ記憶部１０全体についてメインメモリ５との置換を禁止する領域の設定及び解除ができるため、必要に応じてキャッシュメモリ５０のメインメモリ５との不要な置換を抑止し、プロセッサ３４のメインメモリ５に対するアクセス速度の向上を図ることができる。
（実施例２）
図１２は、本実施の形態に係る計算機においてキャッシュメモリ６０のデータ記憶部４９につきキャッシュブロック＃０〜＃ｎ毎に置換禁止領域を設定又は解除することができ、さらには全てのキャッシュブロック＃０〜＃ｎを同時に解除することもできる計算機の構成を示す図である。なお、図１２は統合型キャッシュ計算機の構成を示すが、上記実施例１のように、本実施例は命令キャッシュ計算機やデータキャッシュ計算機においても同様に適用できる。
【００３９】
図１２に示されるように、本実施例に係る計算機は図７に示された上記実施例１に係る計算機と同様な構成を有するが、データ記憶部１０全体に対するロックフラグＬの代わりに、データ記憶部４９を構成するキャッシュブロック＃０〜＃ｎ毎にロックフラグＬが設けられる点で相違する。
また、図１３は図１２に示された制御部４７の構成を示す図である。図１３に示されるように、制御部４７は図８に示された制御部３９と同様な構成を有するが、フラグ制御部３４８及び判断部３５６は、データ記憶部４９を構成するキャッシュブロック＃０〜＃ｎ毎に設けられたロックフラグＬに接続される点で相違する。
【００４０】
このような構成を有する計算機は、図７に示された実施例１に係る計算機と同様に動作するが、以下の点で相違する。すなわち命令フェッチ部４３はメインメモリ５またはキャッシュメモリ６０から命令の読み出しを行い、キャッシュブロックロック命令やキャッシュブロックアンロック命令もしくはキャッシュロック解除命令を読み出した場合に、その命令を命令実行部４５へ供給する。
【００４１】
そして命令実行部４５は、命令フェッチ部４３からキャッシュブロックロック命令が供給された場合には、キャッシュブロックロック命令により指定されたキャッシュブロック＃０〜＃ｎをメインメモリ５との置換禁止領域と設定するよう制御部４７へ指示する。なお、このとき命令実行部４５は、供給されたキャッシュブロックロック命令に基づいてレジスタ部４２から読み出されたメモリアドレスに応じて、メインメモリ５との置換を禁止するキャッシュブロック＃０〜＃ｎを選択する。また、以下に記す置換禁止領域の設定を解除する場合においても同様な選択がなされることとなる。
【００４２】
一方、命令実行部４５はキャッシュブロックアンロック命令が供給された場合には、キャッシュブロックアンロック命令により指定されたキャッシュブロック＃０〜＃ｎのメインメモリ５に対する置換禁止領域の設定を解除するよう制御部４７へ指示する。そしてさらには、キャッシュロック解除命令が供給された場合には、キャッシュブロック＃０〜＃ｎの全てについて置換禁止領域とする設定を解除するよう制御部４７へ指示する。
【００４３】
そして制御部４７においては、命令実行部４５よりキャッシュブロック単位の置換禁止領域の設定（キャッシュブロックロック）が指示された場合には、フラグ制御部３４８が指定されたキャッシュブロックに含まれたロックフラグＬを１にし、キャッシュブロック単位の置換禁止領域の設定解除（キャッシュブロックアンロック）が指示された場合にはフラグ制御部３４８が指定されたキャッシュブロックに含まれたロックフラグＬを０にする。さらに、キャッシュブロック＃０〜＃ｎの全てについて置換禁止領域とする設定を解除するキャッシュロック解除が指示された場合には、フラグ制御部３４８がキャッシュブロック＃０〜＃ｎに含まれた全てのロックフラグＬを０にする。
【００４４】
そして、プロセッサ４１のデータ読み出し時に、読出制御部３１５及び書込制御部３２６はキャッシュブロック＃０〜＃ｎ毎のロックフラグＬの値が０か１かを判断部３５６から供給されるオールロック信号ＡＬに応じて判別し、ロックフラグＬが０のキャッシュブロックをメインメモリ５との置換対象とする一方、ロックフラグＬが１のキャッシュブロックをメインメモリ５との置換禁止領域とする。
【００４５】
また同様に、プロセッサ４１のデータ書込み時においても、読出制御部３１５及び書込制御部３２６はロックフラグＬの値が０か１かを判別し、ロックフラグＬが０のキャッシュブロックをメインメモリ５との置換対象とする一方、ロックフラッグＬが１のキャッシュブロックをメインメモリ５との置換禁止領域とする。すなわち、判断部３５６によりロックフラグＬの値が１であると判断されるキャッシュブロックに記憶されたデータは、データの読み出し時及び書込み時においてデータ記憶部４９に存置されることとなる。従って、キャッシュメモリ４９をメインメモリ５と置換する場合においては、ロックフラグＬが０のキャッシュブロックの中で選択されたキャッシュブロックが適宜置換対象とされる。
【００４６】
なお、上記におけるキャッシュブロックロック命令とキャッシュブロックアンロック命令とは、図１４に示されるような命令形式を有する。ここで、図１４に示されるようにキャッシュブロックロック命令とキャッシュブロックアンロック命令とは、命令コードOP-CODE と、オペランドBASE，OFFSETからなる。そして、オペランドBASEはキャッシュブロックを指定するためのメモリアドレスのベース値を保持するレジスタ部４２内のレジスタの番号を示し、オペランドOFFSETはキャッシュブロックを指定するためのメモリアドレスのオフセット値を保持するレジスタ部４２内のレジスタの番号を示す。ここで、上記メモリアドレスは上記ベース値にオフセット値を加算することで得られる。
【００４７】
以上より本実施例に係る計算機によれば、キャッシュブロック＃０〜＃ｎ単位でメインメモリ５との置換を禁止する領域の設定及び解除ができるので、長いタイムスパンにおいて必要度が高い最小限のデータだけをデータ記憶部４９に存置できる。これより、不要な置換を抑止してキャッシュメモリ６０を有効に活用することができ、プロセッサ４１のメインメモリ５に対するアクセス速度の向上を図ることができる。
［実施の形態２］
本発明の実施の形態２に係る計算機は、フル・アソシアティブ（full associative）方式によるキャッシュ計算機において、データを記憶するキャッシュメモリの全体又は一部に対して、供給する命令信号によりメインメモリに対する置換禁止領域を設定し得るものである。なお、上記フル・アソシアティブ方式によるキャッシュ計算機においては、ライトスルー及びライトバックのいずれの形式を採用するものであっても、本発明が同様に適用される。また、本実施の形態２においては統合型キャッシュ計算機を例にとり説明するが、命令キャッシュ計算機やデータキャッシュ計算機についても本実施の形態が同様に適用できる。以下において、より具体的に記述する。
（実施例１）
図１５は、本実施の形態に係る計算機においてキャッシュメモリ７０に含まれたキャッシュブロック＃０〜＃ｎの全体を同時に置換禁止領域と設定し得る計算機の構成を示す図である。図１５に示されるように、本実施例に係る計算機は図３に示された従来の計算機と同様な構成を有するが、プロセッサ５１は命令フェッチ部５３と命令実行部５５及びレジスタ部５２を含み、キャッシュメモリ７０はロックフラグＬを含む点で相違する。
【００４８】
また、図１６は図１５に示された制御部５７の構成を示す図である。図１６に示されるように、制御部５７は図２３に示された従来の制御部２３と同様な構成を有するが、フラグ制御部３４９と判断部３５７とをさらに備える点で相違する。ここで、フラグ制御部３４９はデコード部３０５及びロックフラグＬに接続され、判断部３５７はロックフラグＬとＯＲゲート３４１と書込制御部３２７及び読出制御部３１６に接続される。
【００４９】
このような構成を有する計算機は、図３に示された従来の計算機と同様に動作するが、以下の点で相違する。すなわち、命令フェッチ部５３はメインメモリ５またはキャッシュメモリ７０から命令の読み出しを行い、キャッシュロック命令を読み出した場合にその命令を命令実行部５５へ供給する。そして、命令実行部５５は一般的に供給された命令を実行するが、命令フェッチ部５３からキャッシュロック命令が供給された場合には、メインメモリ５に対してキャッシュブロック＃０〜＃ｎ全体を同時に置換禁止領域とするキャッシュロックの実行を制御部５７へ指示する。また命令実行部５５は、キャッシュアンロック命令が供給された場合には、メインメモリ５に対してキャッシュブロック＃０〜＃ｎ全体を同時に置換禁止領域とする設定を解除するキャッシュアンロックの実行を制御部５７へ指示する。
【００５０】
そして、制御部５７においては、命令実行部５５よりキャッシュロックが指示された場合にはフラグ制御部３４９がロックフラグＬを１にし、キャッシュアンロックが指示された場合にはフラグ制御部３４９がロックフラグＬを０にする。ここで、プロセッサ５１のデータの読み出し時において、読出制御部３１６及び書込制御部３２７は判断部３５７から供給されたオールロック信号ＡＬに応じてロックフラグＬの値が０か１かを判別し、０の場合にはキャッシュブロック＃０〜＃ｎ全体をメインメモリ５との置換の対象とする一方、１の場合にはキャッシュブロック＃０〜＃ｎ全体を一括してメインメモリ５との置換禁止領域とする。すなわち、判断部３５７によりロックフラグＬの値が１であると判断される場合には、キャッシュブロック＃０〜＃ｎ全体についてメインメモリ５との置換がなされることなく、メインメモリ５またはキャッシュメモリ７０からデータが読み出される。
【００５１】
また同様に、プロセッサ５１はデータの書込み時においても、読出制御部３１６及び書込制御部３２７は判断部３５７から供給されたオールロック信号ＡＬに応じてロックフラグＬの値が０か１かを判別し、０の場合にはキャッシュブロック＃０〜＃ｎ全体をメインメモリ５との置換の対象とする一方、１の場合にはキャッシュブロック＃０〜＃ｎ全体をメインメモリ５との置換禁止領域とする。すなわち、判断部３５７によりロックフラグＬの値が１であると判断される場合には、キャッシュブロック＃０〜＃ｎ全体についてメインメモリ５との置換がなされないため、メインメモリ５のみへ新たなデータが書込まれる。
【００５２】
なお、上記におけるキャッシュロック命令とキャッシュアンロック命令とは、共に命令コードOP-CODE を含む図１１に示されるような命令形式を有するが、キャッシュロック命令とキャッシュアンロック命令とは異なる命令コードOP-CODE を有する。
以上より本実施例に係る計算機によれば、キャッシュブロック＃０〜＃ｎ全体を一括してメインメモリ５との置換禁止領域と設定し、かつ、該設定を一括して解除できるため、必要に応じてキャッシュメモリ７０のメインメモリ５との不要な置換を抑止し、プロセッサ５１のメインメモリ５に対するアクセス速度の向上を図ることができる。
（実施例２）
図１７は、本実施の形態に係る計算機においてキャッシュメモリ８０のキャッシュブロック＃０〜＃ｎ毎に置換禁止領域を設定又は解除することができ、さらには全てのキャッシュブロック＃０〜＃ｎを同時に解除することもできる計算機の構成を示す図である。図１７に示されるように、本実施例に係る計算機は図１５に示された上記実施例１に係る計算機と同様な構成を有するが、キャッシュブロック＃０〜＃ｎ全体に対応した一つのロックフラグＬの代わりに、キャッシュブロック＃０〜＃ｎ毎にロックフラグＬが設けられる点で相違する。
【００５３】
このような構成を有する計算機は、図１５に示された上記実施例１に係る計算機と同様に動作するが、以下の点で相違する。すなわち命令フェッチ部６３はメインメモリ５またはキャッシュメモリ８０から命令の読み出しを行い、キャッシュブロックロック命令やキャッシュブロックアンロック命令もしくはキャッシュロック解除命令を読み出した場合に、その命令を命令実行部６５へ供給する。
【００５４】
そして命令実行部６５は、命令フェッチ部６３からキャッシュブロックロック命令が供給された場合には、キャッシュブロックロック命令により指定されたキャッシュブロック＃０〜＃ｎをメインメモリ５との置換禁止領域と設定するよう制御部６７へ指示する。また、命令実行部６５はキャッシュブロックアンロック命令が供給された場合には、キャッシュブロックアンロック命令により指定されたキャッシュブロック＃０〜＃ｎのメインメモリ５に対する置換禁止領域の設定を解除するよう制御部６７へ指示する。そしてさらには、キャッシュロック解除命令が供給された場合には、キャッシュブロック＃０〜＃ｎの全てについて置換禁止領域とする設定を一括して解除するよう制御部６７へ指示する。
【００５５】
そして制御部６７においては、命令実行部６５よりキャッシュブロック単位の置換禁止領域の設定（キャッシュブロックロック）が指示された場合には、フラグ制御部３５０が指定されたキャッシュブロックに含まれたロックフラグＬを１にし、キャッシュブロック単位の置換禁止領域の設定解除（キャッシュブロックアンロック）が指示された場合にはフラグ制御部３５０が指定されたキャッシュブロックに含まれたロックフラグＬを０にする。さらに、キャッシュブロック＃０〜＃ｎの全てについて置換禁止領域とする設定を一括して解除するキャッシュロック解除が指示された場合にはフラグ制御部３５０がキャッシュブロック＃０〜＃ｎに含まれた全てのロックフラグＬを同時に０にする。
【００５６】
そして、プロセッサ６１のデータ読み出し時に、読出制御部３１７及び書込制御部３２８は判断部３５８から供給されたオールロック信号ＡＬに応じてキャッシュブロック＃０〜＃ｎ毎のロックフラグＬの値が０か１かを判別し、ロックフラグＬが０のキャッシュブロックをメインメモリ５との置換対象とする一方、ロックフラグＬが１のキャッシュブロックをメインメモリ５との置換禁止領域とする。
【００５７】
また同様に、プロセッサ６１のデータ書込み時においても、読出制御部３１７及び書込制御部３２８は判断部３５８から供給されたオールロック信号ＡＬに応じてロックフラグＬの値が０か１かを判別し、ロックフラグＬが０のキャッシュブロックをメインメモリ５との置換対象とする一方、ロックフラッグＬが１のキャッシュブロックをメインメモリ５との置換禁止領域とする。すなわち、判断部３５８によりロックフラグＬの値が１であると判断されるキャッシュブロックに記憶されたデータは、データの読み出し時及び書込み時において置換されることなく存置されることとなる。従って、キャッシュメモリ８０をメインメモリ５と置換する場合においては、ロックフラグＬが０のキャッシュブロックの中で選択されたキャッシュブロックが適宜置換対象とされる。
【００５８】
なお、上記におけるキャッシュブロックロック命令とキャッシュブロックアンロック命令とは、図１４に示されるような命令形式を有する。ここで、図１４に示されるようにキャッシュブロックロック命令とキャッシュブロックアンロック命令とは、命令コードOP-CODE と、オペランドBASE，OFFSETからなる。そして、オペランドBASEはキャッシュブロックを指定するためのメモリアドレスのベース値を保持するレジスタ部６２内のレジスタの番号を示し、オペランドOFFSETはキャッシュブロックを指定するためのメモリアドレスのオフセット値を保持するレジスタ部６２内のレジスタの番号を示す。ここで、上記メモリアドレスは上記ベース値にオフセット値を加算することで得られる。
【００５９】
以上より本実施例に係る計算機によれば、キャッシュブロック＃０〜＃ｎ単位でメインメモリ５との置換を禁止する領域の設定及び解除ができるので、長いタイムスパンにおいて必要度が高い最小限のデータだけをキャッシュブロックに存置できる。これより、不要な置換を抑止してキャッシュメモリ８０を有効に活用することができ、プロセッサ６１のメインメモリ５に対するアクセス速度の向上を図ることができる。
［実施の形態３］
本発明の実施の形態３に係る計算機は、２ウェイ・セット・アソシアティブ方式によるキャッシュ計算機において、データを記憶するキャッシュメモリの全体又は一部に対して、供給する命令信号によりメインメモリに対する置換禁止領域を設定し得るものである。なお、上記２ウェイ・セット・アソシアティブ方式によるキャッシュ計算機においては、ライトスルー及びライトバックのいずれの形式を採用するものであっても、本発明が同様に適用される。また、本実施の形態３においても統合型キャッシュ計算機を例にとり説明するが、命令キャッシュ計算機やデータキャッシュ計算機についても本実施の形態が同様に適用できる。以下において、より具体的に記述する。
（実施例１）
図１９は、本実施の形態に係る計算機においてキャッシュメモリ９０に含まれた二つのウェイ７８，７９の双方を同時に置換禁止領域と設定し得る計算機の構成を示す図である。図１９に示されるように、本実施例に係る計算機は図５に示された従来の計算機と同様な構成を有するが、プロセッサ７１は命令フェッチ部７３と命令実行部７５及びレジスタ部７２とを含み、キャッシュメモリ９０は一つのロックフラグＬを含む点で相違する。
【００６０】
また、図２０は図１９に示された制御部７７の構成を示す図である。図２０に示されるように、制御部７７は図６に示された従来の制御部３３と同様な構成を有するが、フラグ制御部３５１と判断部３５９とをさらに備える点で相違する。ここで、フラグ制御部３５１はデコード部３０７及びロックフラグＬに接続され、判断部３５９はロックフラグＬとＯＲゲート３４３と書込制御部３２９及び読出制御部３１８に接続される。
【００６１】
このような構成を有する計算機は、図５に示された従来の計算機と同様に動作するが、以下の点で相違する。すなわち、命令フェッチ部７３はメインメモリ５またはキャッシュメモリ９０から命令の読み出しを行い、キャッシュロック命令を読み出した場合にその命令を命令実行部７５へ供給する。そして、命令実行部７５は一般的に供給された命令を実行するが、命令フェッチ部７３からキャッシュロック命令が供給された場合には、メインメモリ５に対してウェイ７８，７９の双方を同時に置換禁止領域とするキャッシュロックの実行を制御部７７へ指示する。また命令実行部７５は、キャッシュアンロック命令が供給された場合には、メインメモリ５に対してウェイ１０，２９の双方を同時に置換禁止領域とする設定を解除するキャッシュアンロックの実行を制御部７７へ指示する。
【００６２】
そして、制御部７７においては、命令実行部７５よりキャッシュロックが指示された場合にはフラグ制御部３５１がロックフラグＬを１にし、キャッシュアンロックが指示された場合にはフラグ制御部３５１がロックフラグＬを０にする。ここで、プロセッサ７１のデータの読み出し時において、読出制御部３１８及び書込制御部３２９は判断部３５９から供給されたオールロック信号ＡＬに応じてロックフラグＬの値が０か１かを判別し、０の場合にはウェイ７８，７９双方をメインメモリ５との置換の対象とする一方、１の場合にはウェイ７８，７９の双方を一括してメインメモリ５に対し置換禁止領域とする。すなわち、判断部３５９によりロックフラグＬの値が１であると判断される場合には、ウェイ７８，７９双方についてメインメモリ５との置換がなされることなく、メインメモリ５またはキャッシュメモリ９０からデータが読み出される。
【００６３】
また同様に、プロセッサ７１はデータの書込み時においても、読出制御部３１８及び書込制御部３２９は判断部３５９から供給されたオールロック信号ＡＬに応じてロックフラグＬの値が０か１かを判別し、０の場合にはウェイ７８，７９双方をメインメモリ５との置換の対象とする一方、１の場合にはウェイ７８，７９双方をメインメモリ５との置換禁止領域とする。すなわち、判断部３５９によりロックフラグＬの値が１であると判断される場合には、ウェイ７８，７９双方についてメインメモリ５との置換がなされないため、メインメモリ５のみへ新たなデータが書込まれる。
【００６４】
なお、上記におけるキャッシュロック命令とキャッシュアンロック命令とは、共に命令コードOP-CODE を含む図１１に示されるような命令形式を有するが、キャッシュロック命令とキャッシュアンロック命令とは異なる命令コードOP-CODE を有する。
以上より本実施例に係る計算機によれば、ウェイ７８，７９双方を一括してメインメモリ５との置換禁止領域と設定し、かつ、該設定を一括して解除できるため、必要に応じてキャッシュメモリ９０のメインメモリ５との不要な置換を抑止し、プロセッサ７１のメインメモリ５に対するアクセス速度の向上を図ることができる。
（実施例２）
図２１は、本実施の形態に係る計算機においてキャッシュメモリ１００に含まれたデータ記憶部（ウェイ）８８，８９毎に置換禁止領域を設定又は解除することができ、さらには全てのウェイ８８，８９を同時に解除することもできる計算機の構成を示す図である。図２１に示されるように、本実施例に係る計算機は図１９に示された上記実施例１に係る計算機と同様な構成を有するが、ウェイ７８，７９双方に対応した一つのロックフラグＬの代わりに、各ウェイ８８，８９に対応してそれぞれロックフラグＬ０，Ｌ１が設けられる点で相違する。
【００６５】
また、図２２は図２１に示された制御部８７の構成を示す図である。図２２に示されるように、制御部８７は図２０に示された制御部７７と同様な構成を有するが、フラグ制御部３５２及び判断部３６０はそれぞれ、キャッシュウェイ８８，８９に一対一に対応するよう設けられたロックフラグＬ０，Ｌ１の双方に接続される点で相違する。
【００６６】
このような構成を有する計算機は、図１９に示された上記実施例１に係る計算機と同様に動作するが、以下の点で相違する。すなわち命令フェッチ部８３はメインメモリ５またはキャッシュメモリ１００から命令の読み出しを行い、キャッシュウェイロック命令やキャッシュウェイアンロック命令もしくはキャッシュロック解除命令を読み出した場合に、その命令を命令実行部８５へ供給する。
【００６７】
そして命令実行部８５は、命令フェッチ部８３からキャッシュウェイロック命令が供給された場合には、キャッシュウェイロック命令により指定されたキャッシュウェイをメインメモリ５との置換禁止領域と設定するよう制御部８７へ指示する。また、命令実行部８５はキャッシュウェイアンロック命令が供給された場合には、キャッシュウェイアンロック命令により指定されたキャッシュウェイのメインメモリ５に対する置換禁止領域の設定を解除するよう制御部８７へ指示する。そしてさらには、キャッシュロック解除命令が供給された場合には、キャッシュウェイ８８，８９の全てについて置換禁止領域とする設定を一括して解除するよう制御部８７へ指示する。
【００６８】
そして制御部８７においては、命令実行部８５よりキャッシュウェイ単位の置換禁止領域の設定（キャッシュウェイロック）が指示された場合には、フラグ制御部３５２が指定されたキャッシュウェイに対応するロックフラグＬ０またはロックフラグＬ１を１にする。キャッシュウェイ単位の置換禁止領域の設定解除（キャッシュウェイアンロック）が指示された場合にはフラグ制御部３５２が指定されたキャッシュウェイに対応するロックフラグＬ０またはロックフラグＬ１を０にする。さらに、キャッシュウェイの双方について置換禁止領域とする設定を一括して解除するキャッシュロック解除が指示された場合にはフラグ制御部３５２が全てのロックフラグＬ０，Ｌ１を同時に０にする。
【００６９】
そして、プロセッサ８１のデータ読み出し時に、読出制御部３１９及び書込制御部３３０は判断部３６０から供給されたオールロック信号ＡＬに応じて各キャッシュウェイ８８，８９にそれぞれ対応するロックフラグＬ０，Ｌ１の値が０か１かを判別し、０の値を有するロックフラグに対応するキャッシュウェイをメインメモリ５との置換対象とする一方、１の値を有するロックフラグに対応するキャッシュウェイをメインメモリ５との置換禁止領域とする。
【００７０】
また同様に、プロセッサ８１のデータ書込み時においても、読出制御部３１９及び書込制御部３３０は判断部３６０から供給されたオールロック信号ＡＬに応じてロックフラグＬ０，Ｌ１の値が０か１かを判別し、０の値を有するロックフラグに対応したキャッシュウェイをメインメモリ５との置換対象とする一方、１の値を有するロックフラグに対応したキャッシュウェイをメインメモリ５との置換禁止領域とする。すなわち、判断部３６０によって値が１であると判断されるロックフラグに対応するキャッシュウェイに記憶されたデータは、データの読み出し時及び書込み時において置換されること無く存置されることとなる。なお、双方のロックフラグＬ０，Ｌ１の値が共に０であるときには、二つのキャッシュウェイ８８、８９のうちで選択されたキャッシュウェイが優先的に置換対象とされ、双方のロックフラグＬ０，Ｌ１の値が共に１であるときには、二つのキャッシュウェイ８８、８９は共に置換されることがない。
【００７１】
一方、上記におけるキャッシュウェイロック命令とキャッシュウェイアンロック命令とは、図２３に示されるような命令形式を有する。ここで、図２３に示されるようにキャッシュウェイロック命令とキャッシュウェイアンロック命令とは、命令コードOP-CODE と、オペランドWAY からなる。そして、オペランドWAY はキャッシュウェイを指定するためのウェイ番号を保持しているレジスタ部８２内のレジスタの番号を示す。
【００７２】
以上より本実施例に係る計算機によれば、キャッシュウェイ８８，８９単位でメインメモリ５との置換を禁止する領域の設定及び解除ができるので、長いタイムスパンにおいて必要度が高い最小限のデータだけをキャッシュウェイに存置できる。
すなわち、全てのキャッシュウェイ８８，８９を置換禁止領域とせず、ロックしないウェイを置換対象として残すことにより、キャッシュメモリ１００が元々備えていた参照局所性による効果を担保できると共に、不要な置換を抑止してキャッシュメモリ１００を有効に活用することができる。このようにして、プロセッサ８１のメインメモリ５に対するアクセス速度の向上を図ることができる。
（実施例３）
図２４は、本実施の形態に係る計算機において、キャッシュメモリ１１０に含まれた二つのデータ記憶部（ウェイ）９８，９９の同一キャッシュラインＣＬ０〜ＣＬｎ毎に同時に置換禁止領域を設定又は解除することができ、さらには全ての置換禁止領域を同時に解除することもできる計算機の構成を示す図である。
【００７３】
図２４に示されるように、本実施例に係る計算機は図２１に示された上記実施例２に係る計算機と同様な構成を有するが、各ウェイ８８，８９に対応したロックフラグＬ０，Ｌ１の代わりに、各ウェイ８８，８９のキャッシュラインＣＬ０〜ＣＬｎに対応してそれぞれロックフラグＬ０〜Ｌｎが設けられる点で相違する。すなわち本実施例に係る計算機は、二つのデータ記憶部（ウェイ）９８，９９が共に（ｎ＋１）本のキャッシュラインＣＬ０〜ＣＬｎから構成され、例えば、ウェイ９８のキャッシュラインＣＬ０とウェイ９９のキャッシュラインＣＬ０に対応して一つのロックフラグＬ０が設けられる。そして、このロックフラグＬ０の値に応じてウェイ９８のキャッシュラインＣＬ０とウェイ９９のキャッシュラインＣＬ０とが同時に置換禁止領域と設定され、又は同時に該設定の解除がなされることになる。なお上記において、それぞれのウェイ９８，９９における各キャッシュラインＣＬ０〜ＣＬｎは、上記のキャッシュブロック＃０〜＃ｎに対応するものである。
【００７４】
また、図２５は図２４に示された制御部９７の構成を示す図である。図２５に示されるように、制御部９７は図２２に示された制御部８７と同様な構成を有するが、フラグ制御部３５３及び判断部３６１はそれぞれ、キャッシュラインＣＬ０〜ＣＬｎに一対一に対応するよう設けられたロックフラグＬ０〜Ｌｎに接続される点で相違する。
【００７５】
このような構成を有する計算機は、図２１に示された上記実施例２に係る計算機と同様に動作するが、以下の点で相違する。すなわち命令フェッチ部９３はメインメモリ５またはキャッシュメモリ１１０から命令の読み出しを行い、キャッシュラインロック命令やキャッシュラインアンロック命令もしくはキャッシュロック解除命令を読み出した場合に、その命令を命令実行部９５へ供給する。
【００７６】
そして命令実行部９５は、命令フェッチ部９３からキャッシュラインロック命令が供給された場合には、キャッシュラインロック命令により指定されたキャッシュラインをメインメモリ５との置換禁止領域と設定するよう制御部９７へ指示する。また、命令実行部９５はキャッシュラインアンロック命令が供給された場合には、キャッシュラインアンロック命令により指定されたキャッシュラインのメインメモリ５に対する置換禁止領域の設定を解除するよう制御部９７へ指示する。そしてさらには、キャッシュロック解除命令が供給された場合には、キャッシュラインＣＬ０〜ＣＬｎの全てに関し、置換禁止領域とする設定を一括して解除するよう制御部９７へ指示する。
【００７７】
そして制御部９７においては、命令実行部９５よりキャッシュライン単位の置換禁止領域の設定（キャッシュラインロック）が指示された場合には、フラグ制御部３５３が指定されたキャッシュラインに対応するロックフラグを１にする。また、キャッシュライン単位で置換禁止領域の設定解除（キャッシュラインアンロック）が指示された場合にはフラグ制御部３５３が指定されたキャッシュラインに対応するロックフラグを０にする。さらに、全てのキャッシュラインＬ０〜Ｌｎについて置換禁止領域とする設定を一括して解除するキャッシュロック解除が指示された場合にはフラグ制御部３５３が全てのロックフラグＬ０〜Ｌｎを同時に０にする。
【００７８】
そして、プロセッサ９１のデータ読み出し時に、読出制御部３２０及び書込制御部３３１は判断部３６１から供給されたオールロック信号ＡＬに応じて両ウェイ９８，９９にそれぞれ含まれたキャッシュラインＣＬ０〜ＣＬｎに対応するロックフラグＬ０〜Ｌｎの値が０か１かを判別し、０の値を有するロックフラグに対応し各ウェイ９８，９９に含まれるキャッシュラインを共にメインメモリ５との置換対象とする一方、１の値を有するロックフラグに対応し各ウェイ９８，９９に含まれるキャッシュラインを共にメインメモリ５との置換禁止領域とする。
【００７９】
また同様に、プロセッサ９１のデータ書込み時においても、読出制御部３２０及び書込制御部３３１は判断部３６１から供給されたオールロック信号ＡＬに応じて各ロックフラグＬ０〜Ｌｎの値が０か１かを判別し、０の値を有するロックフラグに対応すると共に各ウェイ９８，９９に含まれたキャッシュラインをメインメモリ５との置換対象とする一方、１の値を有するロックフラグに対応すると共に各ウェイ９８，９９に含まれたキャッシュラインをメインメモリ５との置換禁止領域とする。
【００８０】
すなわち、判断部３６１によって値が１であると判断されるロックフラグに対応する両ウェイ９８，９９のキャッシュラインに記憶されたデータは、データの読み出し時及び書込み時において置換されること無く存置されることとなる。なお、二つ以上のロックフラグＬ０〜Ｌｎの値が共に０であるときには、該ロックフラグに対応するキャッシュラインのうちで選択されたキャッシュラインが置換対象とされ、全てのロックフラグＬ０〜Ｌｎの値が１であるときには、いかなるキャッシュラインＣＬ０〜ＣＬｎも置換されることがない。
【００８１】
一方、上記におけるキャッシュラインロック命令とキャッシュラインアンロック命令とは、図２６に示されるような命令形式を有する。ここで、図２６に示されるようにキャッシュラインロック命令とキャッシュラインアンロック命令とは、命令コードOP-CODE と、オペランドLINEからなる。そして、オペランドLINEはキャッシュラインを指定するためのライン番号を保持しているレジスタ部９２内のレジスタの番号を示す。
【００８２】
なお、上記におけるキャッシュラインロック命令とキャッシュラインアンロック命令とは、上記図１４に示される命令形式と同様の形式を有するものとすることもできる。そして、本実施例においては、オペランドBASEはキャッシュラインを指定するためのメモリアドレスのベース値を保持するレジスタ部９２内のレジスタの番号を示し、オペランドOFFSETはキャッシュラインを指定するためのメモリアドレスのオフセット値を保持するレジスタ部９２内のレジスタの番号を示すものとされる。ここで、上記メモリアドレスは上記ベース値にオフセット値を加算することで得られる。
【００８３】
以上より本実施例に係る計算機によれば、各ウェイ９８，９９内のキャッシュラインＣＬ０〜ＣＬｎ毎にメインメモリ５との置換を禁止する領域の設定及び解除ができるので、長いタイムスパンにおいて必要度が高いデータだけをキャッシュウェイに存置できる。
すなわち、全てのキャッシュラインＣＬ０〜ＣＬｎを置換禁止領域とせず、ロックしないキャッシュラインをメインメモリ５との置換対象として残すことにより、キャッシュメモリ１１０が元々備えていた参照局所性による効果を担保できると共に、不要な置換を抑止してキャッシュメモリ１１０を有効に活用することができる。このようにして、プロセッサ９１のメインメモリ５に対するアクセス速度の向上を図ることができる。
（実施例４）
図２７は、本実施の形態に係る計算機において、キャッシュメモリ１２０に含まれたデータ記憶部（ウェイ）１０８，１０９の各キャッシュブロック＃０〜＃ｎ毎に置換禁止領域を設定又は解除することができ、さらには全ての置換禁止領域を同時に解除することもできる計算機の構成を示す図である。
【００８４】
図２７に示されるように、本実施例に係る計算機は図２４に示された上記実施例３に係る計算機と同様な構成を有するが、両ウェイ９８，９９のキャッシュラインＣＬ０〜ＣＬｎに対応してそれぞれロックフラグＬ０〜Ｌｎが設けられる代わりに、ウェイ１０８，１０９の各キャッシュブロック＃０〜＃ｎ内にそれぞれロックフラグＬが設けられる点で相違する。
【００８５】
また、図２８は図２７に示された制御部１０７の構成を示す図である。図２８に示されるように、制御部１０７は図２５に示された制御部９７と同様な構成を有するが、フラグ制御部３５４及び判断部３６２はそれぞれ、各キャッシュブロック＃０〜＃ｎ毎に設けられたロックフラグＬに接続される点で相違する。
このような構成を有する計算機は、図２４に示された上記実施例３に係る計算機と同様に動作するが、以下の点で相違する。すなわち命令フェッチ部１０３はメインメモリ５またはキャッシュメモリ１２０から命令の読み出しを行い、キャッシュブロックロック命令やキャッシュブロックアンロック命令もしくはキャッシュロック解除命令を読み出した場合に、その命令を命令実行部１０５へ供給する。
【００８６】
そして命令実行部１０５は、命令フェッチ部１０３からキャッシュブロックロック命令が供給された場合には、キャッシュブロックロック命令により指定されたキャッシュブロックをメインメモリ５との置換禁止領域と設定するよう制御部１０７へ指示する。また、命令実行部１０５はキャッシュブロックアンロック命令が供給された場合には、キャッシュブロックアンロック命令により指定されたキャッシュブロックのメインメモリ５に対する置換禁止領域の設定を解除するよう制御部１０７へ指示する。そしてさらには、キャッシュロック解除命令が供給された場合には、キャッシュブロック＃０〜＃ｎの全てに関し、置換禁止領域とする設定を一括して解除するよう制御部１０７へ指示する。
そして制御部１０７においては、命令実行部１０５よりキャッシュブロック単位の置換禁止領域の設定（キャッシュブロックロック）が指示された場合には、フラグ制御部３５４が指定されたキャッシュブロックに対応するロックフラグを１にする。また、キャッシュブロック単位で置換禁止領域の設定解除（キャッシュブロックアンロック）が指示された場合にはフラグ制御部３５４が指定されたキャッシュブロックに対応するロックフラグを０にする。さらに、全てのキャッシュブロック＃０〜＃ｎに関して、置換禁止領域とする設定を一括して解除するキャッシュロック解除が指示された場合にはフラグ制御部３５４が全てのロックフラグＬを同時に０にする。
【００８７】
そして、プロセッサ１０１のデータ読み出し時に、読出制御部３２１及び書込制御部３６３は判断部３６２から供給されたオールロック信号ＡＬに応じて両ウェイ１０８，１０９を構成する各キャッシュブロック＃０〜＃ｎに含まれた各ロックフラグＬの値が０か１かを判別し、０の値を有するロックフラグＬに対応するキャッシュブロックをメインメモリ５との置換対象とする一方、１の値を有するロックフラグＬに対応するキャッシュブロックをメインメモリ５との置換禁止領域とする。
【００８８】
また同様に、プロセッサ１０１のデータ書込み時においても、読出制御部３２１及び書込制御部３６３は判断部３６２から供給されたオールロック信号ＡＬに応じて各キャッシュブロック＃０〜＃ｎに含まれた各ロックフラグＬの値が０か１かを判別し、０の値を有するロックフラグＬに対応するキャッシュブロックをメインメモリ５との置換対象とする一方、１の値を有するロックフラグＬに対応するキャッシュブロックをメインメモリ５との置換禁止領域とする。
【００８９】
すなわち、判断部３６２によって値が１であると判断されるロックフラグＬに対応するキャッシュブロックに記憶されたデータは、データの読み出し時及び書込み時において置換されること無く存置されることとなる。なお、二つ以上のロックフラグＬの値が共に０であるときには、該ロックフラグＬに対応するキャッシュブロックのうちで選択されたキャッシュブロックが置換対象とされ、全てのロックフラグＬの値が１であるときには、いかなるキャッシュブロック＃０〜＃ｎも置換されることがない。
【００９０】
一方、上記におけるキャッシュブロックロック命令とキャッシュブロックアンロック命令とは、図１４に示されるような命令形式を有する。ここで、図１４に示されるようにキャッシュブロックロック命令とキャッシュブロックアンロック命令とは、命令コードOP-CODE と、オペランドBASE, OFFSETからなる。そして、本実施例においては、オペランドBASEはキャッシュブロックを指定するためのメモリアドレスのベース値を保持するレジスタ部１０２内のレジスタの番号を示し、オペランドOFFSETはキャッシュブロックを指定するためのメモリアドレスのオフセット値を保持するレジスタ部１０２内のレジスタの番号を示すものとされる。ここで、上記メモリアドレスは上記ベース値にオフセット値を加算することで得られる。
【００９１】
以上より本実施例に係る計算機によれば、各キャッシュブロック＃０〜＃ｎ毎にメインメモリ５との置換を禁止する領域の設定及び解除ができるので、長いタイムスパンにおいて必要度が高い最小限のデータだけをウェイ１０８，１０９に存置できる。
すなわち、全てのキャッシュブロック＃０〜＃ｎを置換禁止領域とせず、ロックしないキャッシュブロックをメインメモリ５との置換対象として残すことにより、キャッシュメモリ１２０が元々備えていた参照局所性による効果を担保できると共に、不要な置換を抑止してキャッシュメモリ１２０を有効に活用することができる。このようにして、プロセッサ１０１のメインメモリ５に対するアクセス速度の向上を図ることができる。
【００９２】
最後に、本発明の課題を解決するための手段について付記する。
（１）メインメモリに接続されると共に複数の領域に分割されたキャッシュメモリを制御するキャッシュメモリの制御方法であって、キャッシュメモリへ命令信号を供給することにより、選択的に、少なくとも一つの領域をメインメモリとの置換を禁止する領域として設定し、あるいは上記設定を解除する第一のステップと、上記設定により置換が禁止されている領域をメインメモリと置換することなく、キャッシュメモリ及びメインメモリに対するデータの読み書きを行う第二のステップとを有することを特徴としたキャッシュメモリの制御方法。
（２）上記領域は、キャッシュメモリを構成するキャッシュウェイである（１）に記載のキャッシュメモリの制御方法。
（３）上記領域は、キャッシュメモリを構成するキャッシュラインである（１）に記載のキャッシュメモリの制御方法。
（４）上記領域は、キャッシュメモリを構成するキャッシュブロックである（１）に記載のキャッシュメモリの制御方法。
（５）メインメモリと、メインメモリに接続され複数の領域に分割されたキャッシュメモリとを有する計算機であって、キャッシュメモリへ供給された命令信号により、選択的に、少なくとも一つの領域をメインメモリとの置換を禁止する領域として設定し、あるいは設定を解除する置換領域設定手段と、置換領域設定手段により置換の禁止が設定された領域をメインメモリと置換することなく、キャッシュメモリ及びメインメモリに対するデータの読み書きを行うデータ読み書き手段とを備えたことを特徴とする計算機。
（６）上記領域は、キャッシュメモリを構成するキャッシュウェイである（５）に記載の計算機。
（７）上記領域は、キャッシュメモリを構成するキャッシュラインである（５）に記載の計算機。
（８）上記領域は、キャッシュメモリを構成するキャッシュブロックである（５）に記載の計算機。
【００９３】
なお、上記領域をキャッシュウェイまたはキャッシュラインとすることにより、参照局所性に対応した高速なデータの読み書きを維持しながら、不要な置換を抑止してメインメモリへのアクセス速度の向上を図ることができる。
また、上記領域をキャッシュブロックとすれば、キャッシュブロック単位で不要な置換を抑止することができるため、キャッシュメモリをより有効に活用することができる。これより、全体として上記参照局所性に応じたより高速なデータの読み書きが実現でき、メインメモリへのアクセス速度の向上をさらに図ることができる。
【００９４】
【発明の効果】
上述の如く、本発明によれば、命令信号を供給することによりキャッシュメモリを構成する少なくとも一つの領域をメインメモリとの置換を禁止する領域として選択的に設定することができるため、キャッシュメモリの不要な置換を抑止してメインメモリへのアクセス速度の向上を図ることができる。
【００９５】
また、キャッシュメモリへ供給された一つの命令信号により、置換禁止領域とする設定が全て解除され得ることとすれば、メインメモリに対する置換の制限を容易になくすことができ、参照局所性に従うデータの読み書きを最大限に優先させることができる。
【図面の簡単な説明】
【図１】従来のダイレクトマップ（direct mapped ）方式によるキャッシュ計算機の構成を示す図である。
【図２】図１に示された制御部の構成を示す図である。
【図３】従来のフル・アソシアティブ（full associative）方式によるキャッシュ計算機の構成を示す図である。
【図４】図３に示された制御部の構成を示す図である。
【図５】従来の２ウェイ・セット・アソシアティブ方式によるキャッシュ計算機の構成を示す図である。
【図６】図５に示された制御部の構成を示す図である。
【図７】実施の形態１に係るダイレクトマップ方式による統合型キャッシュ計算機においてキャッシュメモリのデータ記憶部全体を置換禁止領域と設定し得るキャッシュ計算機の構成を示す図である。
【図８】図７に示された制御部の構成を示す図である。
【図９】実施の形態１に係るダイレクトマップ方式による命令キャッシュ計算機においてキャッシュメモリのデータ記憶部全体を置換禁止領域と設定し得るキャッシュ計算機の構成を示す図である。
【図１０】実施の形態１に係るダイレクトマップ方式によるデータキャッシュ計算機においてキャッシュメモリのデータ記憶部全体を置換禁止領域と設定し得るキャッシュ計算機の構成を示す図である。
【図１１】実施の形態１に係るキャッシュロック命令とキャッシュアンロック命令の命令形式を示す図である。
【図１２】実施の形態１に係るダイレクトマップ方式によるキャッシュ計算機においてキャッシュメモリのデータ記憶部につきキャッシュブロック毎に置換禁止領域を設定又は解除することができ、さらには全てのキャッシュブロックを同時に解除することもできるキャッシュ計算機の構成を示す図である。
【図１３】図１２に示された制御部の構成を示す図である。
【図１４】実施の形態１に係るキャッシュブロックロック命令とキャッシュブロックアンロック命令の命令形式を示す図である。
【図１５】実施の形態２に係るフル・アソシアティブ方式によるキャッシュ計算機においてキャッシュメモリに含まれたキャッシュブロックの全体を同時に置換禁止領域と設定し得るキャッシュ計算機の構成を示す図である。
【図１６】図１５に示された制御部の構成を示す図である。
【図１７】実施の形態２に係るフル・アソシアティブ方式によるキャッシュ計算機においてキャッシュメモリのキャッシュブロック毎に置換禁止領域を設定又は解除することができ、さらには全てのキャッシュブロックを同時に解除することもできるキャッシュ計算機の構成を示す図である。
【図１８】図１７に示された制御部の構成を示す図である。
【図１９】実施の形態３に係る２ウェイ・セット・アソシアティブ方式によるキャッシュ計算機においてキャッシュメモリに含まれた二つのウェイの双方を同時に置換禁止領域と設定し得る計算機の構成を示す図である。
【図２０】図１９に示された制御部の構成を示す図である。
【図２１】実施の形態３に係る２ウェイ・セット・アソシアティブ方式によるキャッシュ計算機においてキャッシュメモリに含まれたデータ記憶部（ウェイ）毎に置換禁止領域を設定又は解除することができ、さらには全てのウェイを同時に解除することもできるキャッシュ計算機の構成を示す図である。
【図２２】図２１に示された制御部の構成を示す図である。
【図２３】実施の形態３に係るキャッシュウェイロック命令とキャッシュウェイアンロック命令の命令形式を示す図である。
【図２４】実施の形態３に係るキャッシュ計算機において二つのデータ記憶部（ウェイ）の同一キャッシュライン毎に同時に置換禁止領域を設定又は解除することができ、さらには全ての置換禁止領域を同時に解除することもできるキャッシュ計算機の構成を示す図である。
【図２５】図２４に示された制御部の構成を示す図である。
【図２６】実施の形態３に係るキャッシュラインロック命令とキャッシュラインアンロック命令の命令形式を示す図である。
【図２７】実施の形態３に係るキャッシュ計算機においてデータ記憶部（ウェイ）の各キャッシュブロック毎に置換禁止領域を設定又は解除することができ、さらには全ての置換禁止領域を同時に解除することもできるキャッシュ計算機の構成を示す図である。
【図２８】図２７に示された制御部の構成を示す図である。
【符号の説明】
１，３４，４１，５１，６１，７１，８１，９１，１０１，１３４，２３４  プロセッサ
３，３０，４０，５０，６０，７０，８０，９０，１００，１１０，１２０，１５０，２５０  キャッシュメモリ
５，１１５，２０５  メインメモリ
７，１４，２５，１１７，２１７  アドレスレジスタ
９，１５，１７，１９，２０，２７，１１９，２１９  比較器
１０，２９，７８，７９，８８，８９，９８，９９，１０８，１０９，１１１，２１０  データ記憶部
１１，２３，３３，３９，４７，５７，６７，７７，８７，９７，１０７，１３９，２３９  制御部
１３，２１，３１，１１３，２１３  データレジスタ
３２，４２，５２，６２，７２，８２，９２，１０２，１３２，２３２  レジスタ部
３５，４３，５３，６３，７３，８３，９３，１０３，１３５，２３５  命令フェッチ部
３７，４５，５５，６５，７５，８５，９５，１０５，１３７，２３７  命令実行部
３００〜３１０  デコード部
３１１〜３２１  読出制御部
３２２〜３３１，３６３  書込制御部
３３２〜３３８，３６４  ブロックアドレス算出部
３３９〜３４６  ＯＲゲート
３４７〜３５４  フラグ制御部
３５５〜３６２  判断部
Ｌ，Ｌ０〜Ｌｎ  ロックフラグ
＃０〜＃ｎ  キャッシュブロック
ＣＬ０〜ＣＬｎ  キャッシュライン
ＴＡＧ  タグ
Ｖ  有効フラグ
Ｍ  変更フラグ
ＤＡＴＡ  キャッシュブロックデータ
ＣＢＡ  キャッシュブロックアドレス
ＡＬ  オールロック信号
【図１】
0003813393.tif 000002
【図２】
0003813393.tif 000003
【図３】
0003813393.tif 000004
【図４】
0003813393.tif 000005
【図５】
0003813393.tif 000006
【図６】
0003813393.tif 000007
【図７】
0003813393.tif 000008
【図８】
0003813393.tif 000009
【図９】
0003813393.tif 000010
【図１０】
0003813393.tif 000011
【図１１】
0003813393.tif 000012
【図１２】
0003813393.tif 000013
【図１３】
0003813393.tif 000014
【図１４】
0003813393.tif 000015
【図１５】
0003813393.tif 000016
【図１６】
0003813393.tif 000017
【図１７】
0003813393.tif 000018
【図１８】
0003813393.tif 000019
【図１９】
0003813393.tif 000020
【図２０】
0003813393.tif 000021
【図２１】
0003813393.tif 000022
【図２２】
0003813393.tif 000023
【図２３】
0003813393.tif 000024
【図２４】
0003813393.tif 000025
【図２５】
0003813393.tif 000026
【図２６】
0003813393.tif 000027
【図２７】
0003813393.tif 000028
【図２８】
0003813393.tif 000029