(57)【要約】【課題】演算処理装置のアクセス効率を向上する。【解決手段】主記憶装置６とＣＰＵ４との間で転送されるデータを格納するキャッシュ装置１において、転送されるデータを格納する複数のキャッシュバンクと、アクセス要求を受けたデータのアドレスのバンク６２を読み出し、バンク６２の値に対応するキャッシュバンクを選択するキャッシュバンク制御装置５とを設け、キャッシュバンク制御装置５は、選択したキャッシュバンクとＣＰＵ４がアクセスするように制御する。【選択図】　図１
2004046643.tif 000002
【特許請求の範囲】
【請求項１】
演算処理装置と主記憶装置との間で転送されるデータを格納するキャッシュ装置において、
上記転送されるデータを記憶する複数の記憶手段と、
上記演算処理装置から主記憶装置へのアクセス要求に応じて、上記複数の記憶手段のうち一つの記憶手段を選択し、当該演算処理装置と選択した記憶手段との間の伝送を制御する制御手段とを備え、
上記制御手段は、上記演算処理装置によってアクセス要求を受けたアドレスの所定の位置に存在するビットを読み出し、読み出したビットの値に対応する記憶手段を当該演算処理装置がアクセスする記憶手段として選択することを特徴とするキャッシュ装置。
【請求項２】
アドレスの上位の数ビットに対応するタグを記憶するタグ記憶手段と、
アドレスの下位の数ビットに対応するインデックスと当該アドレスに格納されたデータとを関連付けて記憶するデータ記憶手段と、
上記演算処理装置によってアクセス要求を受けたアドレスのタグとタグ記憶手段に記憶されたタグとを比較し、データ記憶手段がアクセス要求を受けたデータを記憶しているか否かを判定する判定手段とを備え、
上記制御手段は、上記演算処理装置によってアクセス要求を受けたアドレスのタグとインデックスの間に位置するビットを読み出し、読み出したビットの値に対応する記憶手段を当該演算処理装置のアクセスする記憶手段として選択することを特徴とする請求項１記載のキャッシュ装置。
【請求項３】
アドレスの上位の数ビットに対応するタグを記憶するタグ記憶手段と、
アドレスの下位の数ビットに対応するインデックスと当該アドレスに格納されたデータとを関連付けて記憶するデータ記憶手段と、
上記演算処理装置によってアクセス要求を受けたアドレスのタグとタグ記憶手段に記憶されたタグとを比較し、データ記憶手段にアクセス要求を受けたデータが記憶されているか否かを判定する判定手段とを備え、
上記制御手段は、上記演算処理装置によってアクセス要求を受けたアドレスのうち、タグの下位ビットもしくはインデックスの上位ビットに重複した位置のビットを読み出し、読み出したビットの値に対応する記憶手段を当該演算処理装置のアクセスする記憶手段として選択することを特徴とする請求項１記載のキャッシュ装置。
【請求項４】
演算処理装置と主記憶装置との間で転送されるデータを格納する複数の記憶手段を備えたキャッシュ装置の記憶手段選択方法であって、
上記演算処理装置がアクセスを要求したアドレスの所定の位置に存在するビットを読み出し、読み出したビットの値に対応する記憶手段を当該演算処理装置がアクセスする記憶手段として選択することを特徴とする記憶手段選択方法。
【請求項５】
上記キャッシュ装置は、アドレスの上位の数ビットに対応するタグを記憶するタグ記憶手段と、アドレスの下位の数ビットに対応するインデックスと当該アドレスに格納されたデータとを関連付けて記憶するデータ記憶手段と、上記演算処理装置によってアクセス要求を受けたアドレスのタグとタグ記憶手段に記憶されたタグとを比較し、データ記憶手段がアクセス要求を受けたデータを記憶しているか否かを判定する判定工程とを備え、
上記演算処理装置によってアクセス要求を受けたアドレスのタグとインデックスの間に位置するビットを読み出し、読み出したビットの値に対応する記憶手段を当該演算処理装置がアクセスする記憶手段として選択することを特徴とする請求項４記載の記憶手段選択方法。
【請求項６】
上記キャッシュ装置は、アドレスの上位の数ビットに対応するタグを記憶するタグ記憶手段と、アドレスの下位の数ビットに対応するインデックスと当該アドレスに格納されたデータとを関連付けて記憶するデータ記憶手段と、上記演算処理装置によってアクセス要求を受けたアドレスのタグとタグ記憶手段に記憶されたタグとを比較し、データ記憶手段がアクセス要求を受けたデータを記憶しているか否かを判定する判定工程とを備え、
上記演算処理装置によってアクセス要求を受けたアドレスのタグの下位ビット、もしくはインデックスの上位ビットに重複した位置のビットを読み出し、読み出したビットの値に対応する記憶手段を当該演算処理装置がアクセスする記憶手段として選択することを特徴とする請求項４記載の記憶手段選択方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、演算処理装置と主記憶装置との間で転送されるデータを格納するキャッシュ装置および記憶手段選択方法に関する。
【０００２】
【従来の技術】
従来、ＣＰＵ（Ｃｅｎｔｒａｌ　Ｐｒｏｃｅｓｓｉｎｇ　Ｕｎｉｔ；中央処理装置）と主記憶装置との間に、キャッシュ装置と呼ばれる記憶装置が設けられている。一般に、コンピュータシステムでは、主記憶装置に大容量で低速なデバイスを用い、キャッシュ装置に小容量で高速なデバイスを用いることによりコストとパフォーマンスのバランスをとっている。
【０００３】
キャッシュ装置が設けられたコンピュータシステムでは、ＣＰＵが主記憶装置にアクセスする際、最初にキャッシュ装置を検索して、キャッシュ装置内にアクセスするデータがあるか否かを判断する。判断した結果、キャッシュメモリにアクセスするデータがあれば（キャッシュヒットという。）ＣＰＵはメインメモリには直接アクセスせずにキャッシュメモリにアクセスする。判断した結果、キャッシュ装置にアクセスするデータがなければ（キャッシュミスという。）、ＣＰＵはメインメモリにアクセスする。
【０００４】
図６は、マルチプロセッサにおける従来のキャッシュ装置１００の構成を示すブロック図である。キャッシュ装置１００は、複数のＣＰＵ１３０および主記憶装置１５０に接続されている。キャッシュ装置１００は、データのタグを記憶するタグＲＡＭ（Ｒａｎｄｏｍ　Ａｃｃｅｓｓ　Ｍｅｍｏｒｙ）１２１、タグに対応するインデックスを記憶するキャッシュＲＡＭ１２２、タグとインデックスが対応しているか否かを判定する判定回路１２３、トラフィックの管理を行うキャッシュ制御回路１４０から構成される。
【０００５】
キャッシュ制御回路１４０には、調停回路１４１が設けられており、複数のＣＰＵ１３０からアクセス要求が出されたとき、適当なＣＰＵ１３０を選択して、選択したＣＰＵ１３０にアクセス権を受け渡す。このとき、アクセス権を受けられなかったＣＰＵ１３０は、アクセス権を受けたＣＰＵ１３０の処理を待機し、この処理が終了した後に、キャッシュ装置１００にアクセスする。
【０００６】
【発明が解決しようとする課題】
このように、マルチプロセッサシステムでは、複数のＣＰＵ１３０がキャッシュ装置１００にアクセスするため、アクセス権を受けられなかったＣＰＵ１３０は、アクセス権を受けるまで待機しなければならず、スループットが低下する。
【０００７】
本発明は、上記課題に鑑みてなされたものであって、演算処理装置との間のアクセス効率を向上したキャッシュ装置および記憶手段選択方法に関する。
【０００８】
【課題を解決するための手段】
上述した目的を達成するために、本発明にかかるキャッシュ装置は、演算処理装置と主記憶装置との間で転送されるデータを格納するキャッシュ装置において、転送されるデータを記憶する複数の記憶手段と、演算処理装置から主記憶装置へのアクセス要求に応じて、複数の記憶手段のうち一つの記憶手段を選択し、演算処理装置と選択した記憶手段との間の伝送を制御する制御手段とを備え、制御手段は、演算処理装置によってアクセス要求を受けたアドレスの所定の位置に存在するビットを読み出し、読み出したビットの値に対応する記憶手段を演算処理装置がアクセスする記憶手段として選択する。
【０００９】
また、本発明にかかる記憶手段選択方法は、演算処理装置と主記憶装置との間で転送されるデータを格納する複数の記憶手段を備えたキャッシュ装置の記憶手段選択方法であって、演算処理装置がアクセスを要求したアドレスの所定の位置に存在するビットを読み出し、読み出したビットの値に対応する記憶手段を当該演算処理装置がアクセスする記憶手段として選択する。
【００１０】
【発明の実施の形態】
以下、本発明を適用したキャッシュ装置を具体的に説明する。図１は、本発明を適用したキャッシュ装置１が用いられたコンピュータシステムのブロック図である。図１に示すコンピュータシステムは、複数のＣＰＵ４と、１つのキャッシュ装置１と、１つの主記憶装置６とを備えて構成されている。このコンピュータシステムは、主記憶装置に対して複数のＣＰＵがアクセスするいわゆるマルチプロセッサ型のシステムである。
【００１１】
図１に示すように、キャッシュ装置１は、第１のキャッシュバンク２および第２のキャッシュバンク３と、第１のキャッシュバンク２と第２のキャッシュバンク３のいずれかをＣＰＵのアクセス先として選択するキャッシュバンク制御回路５とから構成される。
【００１２】
キャッシュバンク制御回路５は、バンク判定回路５１、第１の切換回路５２、第２の切換回路５３を有する。キャッシュバンク制御回路５は、ＣＰＵ４のアクセス要求に応じて、第１のキャッシュバンク２と第２のキャッシュバンク３のいずれかをＣＰＵ４のアクセス先として選択する。また、キャッシュバンク制御回路は、複数のＣＰＵ４に対するアクセスの調停を行う。
【００１３】
バンク判定回路５１は、ＣＰＵ４がアクセスする主記憶装置のアドレスに基づいて、１つのキャッシュバンクを選択する。バンク判定回路５１は、キャッシュバンクを選択する際、アドレスの所定の位置に存在するビットを読み出す。このとき読み出したビットの値をバンクと呼び、バンク判定回路は、バンクの値が０ならば第１のキャッシュバンク２、１ならば第２のキャッシュバンク３というようにバンクの値に対応するキャッシュバンクを選択する。
【００１４】
第１の切換回路５２は、複数のＣＰＵ４と、第１のキャッシュバンク２とを結ぶバスの調停を行う。また、第２の切換回路５３は、複数のＣＰＵ４と、第２のキャッシュバンク３とを結ぶバスの調停を行う。第１の切換回路５２は、ＣＰＵ４の状態および第１のキャッシュバンク２の状態を入力し、第１のキャッシュバンク２がビジー状態のときには、ＣＰＵ４を待機させる。そして、第１のキャッシュバンク２が使用可能になると、第１の切換回路５２は、スイッチを切り換え、ＣＰＵ４から出力されたデータを第１のキャッシュバンク２に出力する。
【００１５】
また、第１の切換回路５２は、第１のキャッシュバンク２が使用可能になると、第１のキャッシュバンク２から出力されたデータをＣＰＵ４に出力する。なお、第２の切換回路５３と第２のキャッシュバンク３は、第１の切換回路５３と第１のキャッシュバンク２と対応しており、同様の処理を行う。そのため、第２の切換回路５３と第２のキャッシュバンク３の説明を省略する。
【００１６】
次に、図２のフローチャートを参照して、キャッシュバンク制御回路５の動作について説明する。この処理は、キャッシュバンク制御回路５によって実行される。キャッシュバンク制御回路５は、ＣＰＵ４から出力されるアクセス命令、データ、アドレスなどの情報を待機している（ステップＳ１）。キャッシュバンク制御回路５は、ＣＰＵ４からアクセス命令、データ、アドレスなどの情報を入力すると、入力したデータをもとに、どのキャッシュバンクへアクセスするかを判定する（ステップＳ２）。
【００１７】
アクセスするキャッシュバンクを判定する方法について具体的に説明する。アドレスは図３に示すように、タグ６１、バンク６２、インデックス６３の３つの領域に区分されている。タグ６１は、アドレスの上位数ビットであり、インデックス６３は、アドレスの下位数ビットである。バンク６２は、タグ６１とインデックス６３の中間に位置する１ビットのデータである。バンク判定回路５１は、アドレスのバンク６２を読み出し、バンク６１の値が０であるとき、第１のキャッシュバンク２を選択し（ステップＳ２；ＹＥＳ）、バンク６１の値が１であるとき第２のキャッシュバンク３を選択する（ステップＳ２；ＮＯ）。
【００１８】
ステップＳ２において、第１のキャッシュバンク２が選択された場合（ステップＳ２；ＮＯ）、キャッシュバンク制御回路５は、アクセスの調停を行う（ステップＳ３）。アクセスの調停とは、単一のキャッシュバンクに対して複数のＣＰＵ４のアクセス要求が発生した場合に実行する処理であり、ＣＰＵ４に付けられた優先順位に基づいて、第１のキャッシュバンク２に出力するデータの順序を変更する。キャッシュバンク制御回路５は、アクセスの調停が終了すると、第１の切換回路５２にキューを出力する。
【００１９】
第１の切換回路５２は、第１のキャッシュバンク２の状態を監視し、第１のキャッシュバンク２が使用可能になったとき、キューに蓄積されたＣＰＵ４からのアクセスに基づいて、ＣＰＵ４からのデータを第１のキャッシュバンク２に出力する。また、第１の切換回路５２は、ＣＰＵ４のリード命令に応じて、第１のキャッシュバンク２のデータが読み出された場合には、読み出されたデータをＣＰＵ４に出力する（ステップＳ４）。キャッシュバンク制御回路５は、キューを出力すると待機状態に入り、次のアクセスを待機する（ステップＳ１）。
【００２０】
また、ステップＳ２において、第２のキャッシュバンク３が選択された場合（ステップＳ２；ＮＯ）、キャッシュバンク制御回路５は、ＣＰＵ４の調停を行い（ステップＳ５）、第２の切換回路５３にキューを出力する。第２の切換回路５３は、第２のキャッシュバンク３の状態を監視し、第２のキャッシュバンク３が使用可能になったとき、キューに蓄積されたＣＰＵ４からのアクセスに基づいて、ＣＰＵ４からのデータを第２のキャッシュバンク３に出力する。また、第２の切換回路５３は、ＣＰＵ４のリード命令に応じて、第２のキャッシュバンク３のデータが読み出された場合には、読み出されたデータをＣＰＵ４に出力する（ステップＳ６）。キャッシュバンク制御回路５は、キューを出力すると待機状態に入り、次のアクセスを待機する（ステップＳ１）。
【００２１】
このように、キャッシュバンク制御回路５は、ＣＰＵ４から入力されたアドレスをもとにキャッシュバンクを選択し、このキャッシュバンクに対して、データのリードまたはライトを実行させる。
【００２２】
また、キャッシュバンク制御回路５は、調停機能を備えており、ＣＰＵに優先順位を設けている。そして、複数のＣＰＵ４からのアクセスが１つのキャッシュバンクに集中した場合には、優先順位の高いＣＰＵ４からのアクセスをキューに入れる制御を行う。
【００２３】
次に、キャッシュバンクについて説明する。図４は、第１のキャッシュバンク２および第２のキャッシュバンク３の内部構成を示すブロック図である。第１のキャッシュバンク２、第２のキャッシュバンク３は、タグを記憶するタグＲＡＭ１２、データを記憶するキャッシュＲＡＭ１３、キャッシュヒットかキャッシュミスかを判定する判定回路１４、トラフィックの管理を行うキャッシュ制御回路１１から構成される。キャッシュ制御回路１１には、キャッシュバンク制御回路５および主記憶装置６が接続され、キャッシュバンク制御回路５を介してＣＰＵ４からのアドレスとデータを入力し、主記憶装置６からアドレスとデータを入力する。
【００２４】
キャッシュ制御回路１１は、キャッシュバンク制御回路５、主記憶装置６、タグＲＡＭ１２、キャッシュＲＡＭ１３、判定回路１４、キャッシュ制御回路に接続された装置の間におけるデータのやりとりを制御する。キャッシュ制御回路１１は、キャッシュバンク制御回路５を介してＣＰＵ４からのアクセス要求を受けつける。また、キャッシュ制御回路１１は、ＣＰＵ４から出力されたアドレスおよびデータを入力し、入力したアドレスをタグとインデックスに分割する。キャッシュ制御回路１１は、アドレスをタグとインデックスに分割すると、タグをインデックスで参照されるタグＲＡＭ１２のアドレスに記憶させ、データをインデックスで参照されるキャッシュＲＡＭ１２のアドレスに記憶させる。
【００２５】
タグＲＡＭ１２は、タグとキャッシュを更新するための情報とデータの属性を記憶している。タグは、アドレスの上位の数ビットを切り出したデータであり、ＣＰＵ４からのアクセス要求があったデータがキャッシュバンクに記憶されているか否かを検出するために用いられる。キャッシュを更新するための情報とは、ＬＲＵ（Ｌｅａｓｔ　Ｒｅｃｅｎｔｌｙ　Ｕｓｅｄ）方式、ＦＩＦＯ（Ｆｉｒｓｔ−Ｉｎ　Ｆｉｒｓｔ−Ｏｕｔ）方式などのキャッシュ更新方法に必要とされる内部状態として用いられる。データの属性は、データが有効か無効か、主記憶装置６とのデータコヒーレンシは取れているかといった情報として用いられる。
【００２６】
キャッシュＲＡＭ１３は、データを記憶する。インデックスは、アドレスの下位数ビットに対応する値であり、タグＲＡＭ１２とキャッシュＲＡＭを参照するアドレスとして利用される。キャッシュＲＡＭ１３は、キャッシュ制御回路１１からインデックスを入力し、入力したインデックスに対応するデータをキャッシュ制御回路１１に出力する。
【００２７】
判定回路１４は、ＣＰＵ４からアクセスの要求を受けたアドレスのタグとタグＲＡＭ１２に記憶されているタグを比較し、比較結果をキャッシュ制御回路１１に出力する。
【００２８】
次に、図５のフローチャートを参照して、キャッシュバンクにアクセスする手順を示す。以下の説明では、第１のキャッシュバンク２の手順について記述するが、第２のキャッシュバンク３も同様の動作を行う。そのため、第２のキャッシュバンク３における動作の説明は省略する。
【００２９】
キャッシュ制御回路１１は、キャッシュバンク制御回路５から出力されるＣＰＵ４のアクセス命令を待機する（ステップＳ１１）。キャッシュ制御回路１１は、キャッシュバンク制御回路５からＣＰＵ４のアクセス命令を入力すると、ＣＰＵ４がアクセスするアドレスの下位数ビット、すなわちインデックス６３を読み出す。そして、キャッシュ制御回路１１は、インデックスに対応するタグをタグＲＡＭ１２から読み出すとともに、インデックスに対応するデータをキャッシュＲＡＭ１３から読み出す（ステップＳ１２）。
【００３０】
キャッシュ制御回路１１は、タグＲＡＭ１２から読み出したタグの値と、ＣＰＵ４から指定されたアドレスのタグ６２の値を判定回路１４に出力する。ここで、ＣＰＵ４の命令がリード命令の場合（ステップＳ１３；ＹＥＳ）、判定回路１４は、タグＲＡＭ１２に記憶されたタグの値とアドレスから読み出したタグ６２の値とを比較し、この結果をキャッシュ制御回路１１に出力する（ステップＳ１４）。
【００３１】
キャッシュ制御回路１１は、判定回路１４の判定結果を入力し、タグＲＡＭ１２のタグとアドレスのタグ６２が一致する場合（ステップＳ１４；ＹＥＳ）、ＣＰＵ４から指定されたデータが第１のキャッシュバンク２に記憶されていることを認識し、ステップＳ１１で読み出したキャッシュＲＡＭ１３のデータをＣＰＵ４に転送する（ステップＳ１５）。そして、キャッシュ制御回路１１は、タグＲＡＭ１２の値を更新する（ステップＳ１７）。第１のキャッシュバンク２は、タグＲＡＭ１２の更新を終了すると待機状態になり、キャッシュ制御回路１１は、第１のキャッシュバンク２が使用可能状態であることを示す信号をキャッシュバンク制御回路５に出力する（ステップＳ１１）。
【００３２】
また、判定回路１４の判定結果が不一致の場合（ステップＳ１４；ＮＯ）、キャッシュ制御回路１１は、主記憶装置６から該当するアドレスのデータを読み出し、このデータをＣＰＵ４に転送するとともに、キャッシュＲＡＭ１３にこのデータを記憶させる（ステップＳ１６）。また、キャッシュ制御回路１１は、ライトバックを行う必要のあるデータがある場合、主記憶装置６にライトバックを行う。次いで、キャッシュ制御回路１１は、タグＲＡＭ１２の値を更新する（ステップＳ１７）。キャッシュバンク２は、タグＲＡＭ１２の更新を終了すると待機状態になり、キャッシュ制御回路１１は、第１のキャッシュバンク２が使用可能状態であることを示す信号をキャッシュバンク制御回路５に出力する（ステップＳ１１）。
【００３３】
また、ステップＳ１３において、ＣＰＵ４の命令がライト命令であった場合（ステップＳ１３；ＮＯ）、キャッシュ制御装置２４ａは、タグＲＡＭ１２から読み出したタグの値とアドレスから読み出したタグ６１の値とを判定回路１４に出力する。判定回路１４は、これらの値が一致するか否かを判定し、判定結果をキャッシュ制御回路１１に出力する（ステップＳ１８）。キャッシュ制御回路１１は、判定回路１４の判定結果を入力し、２つのタグが一致する場合（ステップＳ１８；ＹＥＳ）、キャッシュ制御回路１１は、ＣＰＵ４に指定されたデータがキャッシュバンク内に記憶されているものと認識し、ＣＰＵ４から出力されたデータをキャッシュＲＡＭ１３に上書きする（ステップＳ１９）。そして、キャッシュ制御回路１１は、タグＲＡＭ１２の値を更新する（ステップＳ１７）。第１のキャッシュバンク２は、タグＲＡＭ１２の更新を終了すると待機状態になり、キャッシュ制御回路１１は、第１のキャッシュバンク２が使用可能状態であることを示す信号をキャッシュバンク制御回路５に出力する（ステップＳ１１）。
【００３４】
また、判定回路１４がタグＲＡＭ１２のタグとアドレスのタグは一致しないと判定した場合（ステップＳ１８；ＮＯ）、キャッシュ制御回路１１は、ＣＰＵ４から入力したデータをキャッシュＲＡＭ１３に書き込む。また、キャッシュ制御回路１１は、ライトバックを行う必要のあるデータがある場合、主記憶装置６にライトバックを行う。そして、キャッシュ制御回路１１は、タグＲＡＭ１２の値を更新する（ステップＳ１７）。一連の処理が終了すると第１のキャッシュバンク２は待機状態になり、キャッシュ制御装置２４ａは、キャッシュバンク制御回路５に対して、使用可能状態であることを示す信号を出力する（ステップＳ１１）。
【００３５】
このように、キャッシュバンクは、タグとインデックスをもとにキャッシュバンク内のデータを検索し、ＣＰＵ４の指定したデータがキャッシュバンクに存在する場合には、このデータの読み書きを行う。また、ＣＰＵ４の指定したデータがキャッシュバンクに存在しない場合には、主記憶装置６にアクセスし、目的のデータの取得とキャッシュバンクに記憶されたデータの更新を行う。このキャッシュバンクの動作は、従来のキャッシュ装置と同様の動作である。従来のキャッシュ装置と本発明のキャッシュ装置１の違いは、キャッシュ装置１に複数のキャッシュバンクが設けられている点、ＣＰＵ４とキャッシュバンクの間にキャッシュバンク制御回路５が設けられ、キャッシュバンク制御回路５がＣＰＵ４とキャッシュバンクとの間の調停を行う点にある。
【００３６】
以上のように、本発明を適用したキャッシュ装置２は、複数のキャッシュバンクを有する。そして、ＣＰＵ４とキャッシュバンクの間には、キャッシュバンク制御回路５が設けられており、キャッシュバンク制御回路５は、ＣＰＵ４から指定されたアドレスをもとに使用するキャッシュバンクを選択する。キャッシュバンクの選択方法は、アドレスのバンクと呼ばれる部分に記録された値をもとに決定する。
【００３７】
本発明を適用したキャッシュ装置１は、複数のキャッシュバンクを有するため、あるＣＰＵ４があるキャッシュバンクにアクセスしていも、他のＣＰＵ４が他のキャッシュバンクにアクセスすることができれば、先にアクセスしたＣＰＵ４の処理を待つことなく、キャッシュバンクにアクセスすることができる。そのため、ＣＰＵ４のアクセス効率が向上し、命令やデータの遅延が生じにくくなる。よって、プログラムのリアルタイム処理および高速処理が可能となる。
【００３８】
なお、本発明は上記実施の形態に限定されるものではなく、本発明の要旨を含む範囲での変形、改良は、本発明に含まれるものとする。例えば、本実施の形態において、キャッシュバンクの個数は２つとしたが、必ずしも２つである必要はなく、さらに多くのキャッシュバンクを設けるようにしてもよい。
【００３９】
また、本実施の形態において、バンクの長さは１ビットとしたが、キャッシュバンクの個数に応じてバンクの長さは変更してもよい。例えば、キャッシュバンクが４つある場合には、バンクの長さを２ビットにすると、バンクの値とキャッシュバンクの個数が対応するようになる。
【００４０】
また、本形態のタグＲＡＭにおいて、タグ以外に、キャッシュを更新するための情報とデータの属性を記憶するとしたが、キャッシュを更新するための情報とデータの属性を記憶するＲＡＭはタグＲＡＭに限定されない。
【００４１】
また、個々のキャッシュバンクで行うキャッシュＲＡＭの更新方法に関しては、ＬＲＵ（Ｌｅａｓｔ　Ｒｅｃｅｎｔｌｙ　Ｕｓｅｄ）方式、ＦＩＦＯ（Ｆｉｒｓｔ−Ｉｎ　Ｆｉｒｓｔ−Ｏｕｔ）方式などがあるが更新方法に関しては、特に限定されない。さらに、キャッシュバンク内のデータの配置方法としては、ダイレクト・マップ、フル・アソシアティブ、セット・アソシアティブなどがあるが、データの配置方法についても特に限定されない。
【００４２】
【発明の効果】
上述した目的を達成するために、本発明にかかるキャッシュ装置は、演算処理装置と主記憶装置との間で転送されるデータを格納するキャッシュ装置において、転送されるデータを記憶する複数の記憶手段と、演算処理装置から主記憶装置へのアクセス要求に応じて、複数の記憶手段のうち一つの記憶手段を選択し、演算処理装置と選択した記憶手段との間の伝送を制御する制御手段とを備え、制御手段は、演算処理装置によってアクセス要求を受けたアドレスの所定の位置に存在するビットを読み出し、読み出したビットの値に対応する記憶手段を演算処理装置がアクセスする記憶手段として選択することにより、演算処理装置との間のアクセス効率が向上する。
【００４３】
また、本発明にかかる記憶手段選択方法は、演算処理装置と主記憶装置との間で転送されるデータを格納する複数の記憶手段を備えたキャッシュ装置の記憶手段選択方法であって、演算処理装置がアクセスを要求したアドレスの所定の位置に存在するビットを読み出し、読み出したビットの値に対応する記憶手段を当該演算処理装置がアクセスする記憶手段として選択することにより、演算処理装置との間のアクセス効率が向上する。
【図面の簡単な説明】
【図１】本発明を適用したキャッシュ装置を内蔵するコンピュータシステムのブロック図である。
【図２】キャッシュバンク制御装置の動作を示すフローチャートである。
【図３】アドレス上のバンクの位置を示す図である。
【図４】キャッシュバンクの構成を示すブロック図である。
【図５】キャッシュバンクの動作を示すブロック図である。
【図６】従来のキャッシュ装置の構成を示すブロック図である。
【符号の説明】
１　キャッシュ装置、２　第１のキャッシュバンク、３　第２のキャッシュバンク、４　ＣＰＵ、５　キャッシュバンク制御装置、６　主記憶装置、１１　キャッシュ制御回路、１２　タグＲＡＭ、１３　キャッシュＲＡＭ、１４　ヒット判定回路、５１　バンク判定回路、５２第１の切換回路、５３　第２の切換回路、６１　タグ、６２　バンク、６３　インデックス
【符号の説明】
【図１】
2004046643.tif 000003
【図２】
2004046643.tif 000004
【図３】
2004046643.tif 000005
【図４】
2004046643.tif 000006
【図５】
2004046643.tif 000007
【図６】
2004046643.tif 000008