(57)【特許請求の範囲】
【請求項１】
拡張バスに任意の周辺装置を拡張して接続するための周辺装置接続手段と、
該周辺装置接続手段からＣＰＵ側の回路に配置され、ハードディスクドライブ装置への書き込みデータあるいは読み出しデータを保持する上位のディスクキャッシュと、
前記周辺装置接続手段からＣＰＵ側の回路に配置され、前記上位のディスクキャッシュヘの記憶と読み出しを制御し、複数種類のスワップモードで動作できる上位のキャッシュ制御機能を含む上位のハードディスク制御機能を有する上位の制御手段と、
前記周辺装置接続手段と接続され、ハードディスクドライブ装置への書き込みデータあるいは読み出しデータを保持する下位のディスクキャッシュと、該下位のディスクキャッシュヘの記憶と読み出しを制御し、少なくとも１種類のスワップモードで動作できる下位のキャッシュ制御装置を含む下位のハードディスク制御装置とを有するハードディスクドライブ装置と
を備えるコンピュータシステムにおけるディスクキャッシュの制御方法であって、
システムの起動時に、下位のハードディスク制御装置では、上位の制御手段に向けて、下位のキャッシュ制御装置が選択可能な少なくとも１種類のスワップモードを送信し、
上位の制御手段では、受信したスワップモード以外から１種類のスワップモードを選択する
ことを特徴とするディスクキャッシュの制御方法。
【請求項２】
システムの起動時に、下位のハードディスク制御装置では、１種類のスワップモードを送信すると共に、送信したスワップモードを選択する
ことを特徴とする請求項１に記載のディスクキャッシュの制御方法。
【請求項３】
システムの起動時に、下位のハードディスク制御装置では、複数種類のスワップモードを送信し、
上位の制御手段では、選択したスワップモードを下位のハードディスク制御装置に送信し、
下位のハードディスク制御装置では、上位の制御手段から受信したスワップモード以外の１種類のスワップモードを選択する
ことを特徴とする請求項１に記載のディスクキャッシュの制御方法。
【請求項４】
拡張バスに任意の周辺装置を拡張して接続するための周辺装置接続手段と、
該周辺装置接続手段からＣＰＵ側の回路に配置され、ハードディスクドライブ装置への書き込みデータあるいは読み出しデータを保持する上位のディスクキャッシュと、
前記周辺装置接続手段からＣＰＵ側の回路に配置され、前記上位のディスクキャッシュヘの記憶と読み出しを制御し、複数種類のスワップモードで動作できる上位のキャッシュ制御機能を含む上位のハードディスク制御機能を有する上位の制御手段と、
前記周辺装置接続手段と接続され、ハードディスクドライブ装置への書き込みデータあるいは読み出しデータを保持する下位のディスクキャッシュと、該下位のディスクキャッシュヘの記憶と読み出しを制御し、少なくとも１種類のスワップモードで動作できる下位のキャッシュ制御装置を含む下位のハードディスク制御装置とを有するハードディスクドライブ装置と
を備えるコンピュータシステムにおけるディスクキャッシュの制御方法であって、
システムの起動時に、下位のハードディスク制御装置では、上位の制御手段に向けて、下位のキャッシュ制御装置が選択可能な複数種類のスワップモードを送信し、
上位の制御手段では、受信したスワップモードから１種類のスワップモードを選択して該スワップモードを下位のハードディスク制御装置に送信し、
下位のハードディスク制御装置では、上位の制御手段から受信したスワップモード以外から１種類のスワップモードを選択する
ことを特徴とするディスクキャッシュの制御方法。
【請求項５】
拡張バスに任意の周辺装置を拡張して接続するための周辺装置接続手段と、
該周辺装置接続手段からＣＰＵ側の回路に配置され、ハードディスクドライブ装置への書き込みデータあるいは読み出しデータを保持する上位のディスクキャッシュと、
前記周辺装置接続手段からＣＰＵ側の回路に配置され、前記上位のディスクキャッシュヘの記憶と読み出しを制御し、少なくとも１種類のスワップモードで動作できる上位のキャッシュ制御機能を含む上位のハードディスク制御機能を有する上位の制御手段と、
前記周辺装置接続手段と接続され、ハードディスクドライブ装置への書き込みデータあるいは読み出しデータを保持する下位のディスクキャッシュと、該下位のディスクキャッシュヘの記憶と読み出しを制御し、複数種類のスワップモードで動作できる下位のキャッシュ制御装置を含む下位のハードディスク制御装置と
を有するハードディスクドライブ装置と
を備えるコンピュータシステムにおけるディスクキャッシュの制御方法であって、
システムの起動時に、上位の制御手段では、下位のハードディスク制御装置に向けて、上位のキャッシュ制御装置が選択可能な少なくとも１種類のスワップモードを送信し、
下位のハードディスク制御装置では、受信したスワップモード以外から１種類のスワップモードを選択する
ことを特徴とするディスクキャッシュの制御方法。
【請求項６】
システムの起動時に、上位の制御手段では、１種類のスワップモードを送信すると共に、該送信したスワップモードを選択する
ことを特徴とする請求項５に記載のディスクキャッシュの制御方法。
【請求項７】
システムの起動時に、上位の制御手段は、複数種類のスワップモードを送信し、
下位のハードディスク制御装置では、選択したスワップモードを上位の制御手段に送信し、
上位の制御手段では、下位のハードディスク制御装置から受信したスワップモード以外から１種類のスワップモードを選択する
ことを特徴とする請求項５に記載のディスクキャッシュの制御方法。
【請求項８】
上位の制御手段から下位のハードディスク制御装置に下位のディスクキャッシュのデータ転送が要求された時、下位のハードディスク制御装置は、下位のディスクキャッシュから転送されたデータを消去する
ことを特徴とする請求項１〜７の何れかに記載のディスクキャッシュの制御方法。
【請求項９】
下位のハードディスク制御装置は、下位のディスクキャッシュの消去されたデータの後に、上位の制御手段から要求されたデータに基づいて、上位の制御手段から次回に要求されると予測されるデータを保持させる
ことを特徴とする請求項８に記載のディスクキャッシュの制御方法。
【請求項１０】
上位の制御手段は、データ転送が要求されたデータが上位のディスクキャッシュに保持されていない時、要求されたデータに加えて、要求されたデータに基づいて次回に要求されると予測されるデータを下位のハードディスク制御装置に要求し、
下位のハードディスク制御装置は、要求されたデータを上位の制御手段に転送すると共に、該要求されたデータに基づいて次回に要求されると予測されるデータを保持する
ことを特徴とする請求項９に記載のディスクキャッシュの制御方法。
【請求項１１】
上位の制御手段の予測データは、今回要求されたデータに基づいて次回に要求されると予測されるデータであり、
下位のハードディスク制御装置の予測データは、前記上位の制御手段の予測データを含むデータに基づいて次回に要求されると予想されるデータである
ことを特徴とする請求項１０に記載のディスクキャッシュの制御方法。
【請求項１２】
拡張バスに任意の周辺装置を拡張して接続するための周辺装置接続手段と、
該周辺装置接続手段からＣＰＵ側の回路に配置され、ハードディスクドライブ装置への書き込みデータあるいは読み出しデータを保持する上位のディスクキャッシュと、
前記周辺装置接続手段からＣＰＵ側の回路に配置され、前記上位のディスクキャッシュへの記憶と読み出しを制御し、複数種類のスワップモードで動作できる上位のキャッシュ制御機能を含み、前記複数種類から１種類のスワップモードを選択する上位のハードディスク制御機能を有する上位の制御手段と、
前記周辺装置接続手段と接続され、ハードディスクドライブ装置への書き込みデータあるいは読み出しデータを保持する下位のディスクキャッシュと、該下位のディスクキャッシュヘの記憶と読み出しを制御し、少なくとも１種類のスワップモードで動作できる下位のキャッシュ制御装置を含み、システム起動時に上位の制御手段に向けて下位のキャッシュ制御装置が選択可能な少なくとも１種類のスワップモードを送信する下位のハードディスク制御装置とを有するハードディスクドライブ装置と
を備えることを特徴とするコンピュータシステム。
【請求項１３】
下位のハードディスク制御装置は、システムの起動時に１種類のスワップモードを送信し、該送信したスワップモードを選択する
ことを特徴とする請求項１２に記載のコンピュータシステム。
【請求項１４】
下位のハードディスク制御装置は、システムの起動時に複数種類のスワップモードを送信し、上位の制御手段からスワップモードを受信したら、該受信したスワップモード以外から１種類のスワップモードを選択し、
上位の制御手段は、下位のハードディスク制御装置から受信した複数種類のスワップモードを受信したら、該複数種類のスワップモードから１種類のスワップモードを選択し、該選択したスワップモードを下位のハードディスク制御装置に送信する
ことを特徴とする請求項１２に記載のコンピュータシステム。
【請求項１５】
拡張バスに任意の周辺装置を拡張して接続するための周辺装置接続手段と、
該周辺装置接続手段からＣＰＵ側の回路に配置され、ハードディスクドライブ装置への書き込みデータあるいは読み出しデータを保持する上位のディスクキャッシュと、
前記周辺装置接続手段からＣＰＵ側の回路に配置され、前記上位のディスクキャッシュヘの記憶と読み出しを制御し、複数種類のスワップモードで動作できる上位のキャッシュ制御機能を含み、下位のハードディスク制御装置から受信したスワップモード以外の１種類のスワップモードを前記複数種類から選択し、該選択したスワップモードを下位のハードディスク制御装置に送信する上位のハードディスク制御機能を有する上位の制御手段と、
前記周辺装置接続手段と接続され、ハードディスクドライブ装置への書き込みデータあるいは読み出しデータを保持する下位のディスクキャッシュと、該下位のディスクキャッシュヘの記憶と読み出しを制御し、少なくとも１種類のスワップモードで動作できる下位のキャッシュ制御装置を含み、システム起動時に上位の制御手段に向けて下位のキャッシュ制御装置が選択可能な少なくとも１種類のスワップモードを送信し、上位の制御手段からスワップモードを受信したら、該受信したスワップモード以外から１種類のスワップモードを選択する下位のハードディスク制御装置とを有するハードディスクドライブ装置と
を備えることを特徴とするコンピュータシステム。
【請求項１６】
拡張バスに任意の周辺装置を拡張して接続するための周辺装置接続手段と、
該周辺装置接続手段からＣＰＵ側の回路に配置され、ハードディスクドライブ装置への書き込みデータあるいは読み出しデータを保持する上位のディスクキャッシュと、
前記周辺装置接続手段からＣＰＵ側の回路に配置され、前記上位のディスクキャッシュヘの記憶と読み出しを制御し、少なくとも１種類のスワップモードで動作できる上位のキャッシュ制御機能を含み、システムの起動時に下位のハードディスク制御装置に向けて、上位のキャッシュ制御装置が選択可能な少なくとも１種類のスワップモードを送信する上位のハードディスク制御機能を有する上位の制御手段と、
前記周辺装置接続手段と接続され、ハードディスクドライブ装置への書き込みデータあるいは読み出しデータを保持する下位のディスクキャッシュと、該下位のディスクキャッシュヘの記憶と読み出しを制御し、複数種類のスワップモードで動作でき、上位の制御手段から受信したスワップモード以外から１種類のスワップモードを選択する下位のキャッシュ制御装置を含む下位のハードディスク制御装置とを有するハードディスクドライブ装置と
を備えることを特徴とするコンピュータシステム。
【請求項１７】
上位の制御手段は、システムの起動時に１種類のスワップモードを送信すると共に、該送信したスワップモードを選択する
ことを特徴とする請求項１６に記載のコンピュータシステム。
【請求項１８】
上位の制御手段は、システムの起動時に複数種類のスワップモードを送信し、下位のハードディスク制御装置からスワップモードを受信したら、該受信したスワップモード以外から１種類スワップモードを選択し、
下位のハードディスク制御装置は、選択したスワップモードを上位の制御手段に送信する
ことを特徴とする請求項１６に記載のコンピュータシステム。
【請求項１９】
下位のハードディスク制御装置は、上位の制御手段から下位のディスクキャッシュのデータ転送が要求された時、下位のディスクキャッシュから転送したデータを消去し、消去されたデータの後に、上位の制御手段から要求されたデータに基づいて、上位の制御手段から次回に要求されると予測されるデータを保持させる
ことを特徴とする請求項１２〜１８の何れかに記載のコンピュータシステム。
【請求項２０】
上位の制御手段は、データ転送が要求されたデータが上位のディスクキャッシュに保持されていない時、要求されたデータに加えて、要求されたデータに基づいて次回に要求されると予測されるデータを下位のハードディスク制御装置に要求し、
下位のハードディスク制御装置は、要求されたデータを上位の制御手段に転送すると共に、該要求されたデータに基づいて次回に要求されると予測されるデータを保持する
ことを特徴とする請求項１９に記載のコンピュータシステム。
【請求項２１】
上位のディスクキャッシュは、前記周辺装置接続手段に内蔵されるディスクキャッシュであり、
上位の制御手段は、前記周辺装置接続手段に内蔵され、上位のキャッシュ制御装置を含む上位のハードディスク制御装置である
ことを特徴とする請求項１２〜２０の何れかに記載のコンピュータシステム。
【請求項２２】
上位のディスクキャッシュは、ＣＰＵが有するキャッシュであるか、あるいは、ＣＰＵに接続されるキャッシュであり、
上位の制御手段は、ＣＰＵ自体である
ことを特徴とする請求項１２〜２０の何れかに記載のコンピュータシステム。
【請求項２３】
上位のディスクキャッシュは、ＣＰＵと拡張バスを接続するためのブリッジ回路に接続されるメインメモリ内のキャッシュであり、
上位の制御手段は、前記ブリッジ回路内のメインメモリ制御装置である
ことを特徴とする請求項１２〜２０の何れかに記載のコンピュータシステム。
【請求項２４】
前記周辺装置接続手段は、拡張バスに任意の周辺装置を拡張して接続できる拡張カードである
ことを特徴とする請求項１２〜２２の何れかに記載のコンピュータシステム。
【請求項２５】
前記周辺装置接続手段は、拡張バスに任意の周辺装置を拡張して接続できる第２のブリッジ回路である
ことを特徴とする請求項２３に記載のコンピュータシステム。
【請求項２６】
前記請求項１２〜２５の何れかのコンピュータシステムで用いられる
ことを特徴とするハードディスクドライブ装置。
【請求項２７】
前記請求項２６のハードディスクドライブ装置で用いられる
ことを特徴とするハードディスク制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、キャッシュメモリに効率良くデータを保持するためのキャッシュメモリの制御方法、コンピュータシステム、ハードディスクドライブ装置およびハードディスク制御装置に関するものである。
【０００２】
【従来の技術】
コンピュータシステムは、ＣＰＵ、メインメモリ、ＨＤＤ（ｈａｒｄ  ｄｉｓｋ  ｄｒｉｖｅ  ）装置等の、データ転送速度がそれぞれ異なるデバイスにより構成される。一般に、メインメモリにはＤＲＡＭが使用されている。ＤＲＡＭのデータ転送速度は、ＣＰＵと比較すると非常に遅いため、ＣＰＵの動作速度を低下させてしまう。ＨＤＤ装置、ＣＤ−ＲＯＭ装置等の外部記憶装置のデータ転送速度は、ＤＲＡＭと比較すると非常に遅いため、ＤＲＡＭの動作速度を低下させてしまう。このように、データを送受するデバイス間に速度差があると、システム全体のデータ転送速度は、データ転送速度の遅いほうのデバイスに支配されるため、高速なデータ転送速度を有するデバイスの本来の性能が発揮されず、システム全体の性能が低下してまう。
【０００３】
これらのデバイス間の速度差を緩衝するため、コンピュータシステムには、キャッシュメモリが設けられている。キャッシュメモリは、プログラムおよびデータの局所性を利用し、データ転送速度の遅い下位のデバイスに記憶されるデータの一部を記憶する。これにより、下位のデバイスに対するアクセスを減少させ、コンピュータシステム全体のデータ転送速度を向上させている。
【０００４】
キャッシュメモリは、典型的には、ＣＰＵとメインメモリとの間に設けられる。キャッシュメモリが複数の場合には、ＣＰＵに近いほうから、１次キャッシュ、２次キャッシュ、・・・と呼ばれる。ＣＰＵに近いほど、その記憶容量は小さい。一般に、これらのキャッシュメモリには、ＳＲＡＭが使用されている。
【０００５】
また、メインメモリは、外部記憶装置用のキャッシュメモリとして使用される。これにより、外部記憶装置に対するアクセスを減少させ、メインメモリの動作速度を向上させている。さらに、外部記憶装置や、いわゆる拡張カード等にもキャッシュメモリが設けられる場合がある。例えば、ＨＤＤ装置には、磁気ディスクの一部のデータを保持するキャッシュメモリが設けられている。これにより、磁気ディスクに対するアクセスを減少させ、ＨＤＤ装置のデータ転送速度を向上させている。このように、メインメモリ、拡張カード、ＨＤＤ装置等に設けられたキャッシュ装置は、ディスクキャッシュと呼ばれる。
【０００６】
これらのディスクキャッシュには、一般に、先読み（Ｌｏｏｋ  Ａｈｅａｄ）と呼ばれるデータの読出方法が採用されている。先読みデータ読出方法は、ホスト装置から要求される領域の要求データの読出が終了した後、その要求データに続く領域のデータも併せて読み出す方法である。これにより、アドレスが連続的に大きくなる順方向の読出のキャッシュヒット率を向上させている。
【０００７】
図１２は、従来のディスクキャッシュのデータ読出方法を示す図である。
図１２において、ホスト装置は、ＨＤＤ装置に対しデータの読出および書込を要求する装置を意味する。ホスト装置およびＨＤＤ装置は、それぞれキャッシュメモリを有し、これらの装置のキャッシュメモリ間でデータを授受する。この場合、ホスト装置のキャッシュメモリが上位のキャッシュメモリとなり、ＨＤＤ装置のキャッシュメモリが下位のキャッシュメモリとなる。ここで、ホスト装置およびＨＤＤ装置のそれぞれのキャッシュメモリには、アプリケーションから要求されるデータＤ１を保持していないものとする。
【０００８】
アプリケーションからホスト装置にデータＤ１が要求されると、ホスト装置では、キャッシュミスとなるので、データＤ１と、このデータＤ１に連続するアドレスのデータＤ２とを含むデータＤ３がＨＤＤ装置に要求される。ＨＤＤ装置では、キャッシュミスとなるので、ホスト装置から要求されたデータＤ３が磁気ディスクから読み出され、キャッシュメモリに保持され、さらに、ホスト装置に転送される。これにより、ホスト装置のキャッシュメモリには、データＤ３が保持される。さらに、ＨＤＤ装置では、転送されたデータＤ３に続くアドレスのデータ４が磁気ディスクから読み出され、キャッシュメモリに保持される。
【０００９】
さらに、この種の先読みデータ読出方法としては、例えば、特開平１１−１１０１３９号公報のデータ読取方法および装置が開示されている。このデータ読取方法および装置では、アドレスが連続的に小さくなる逆方向の読出が検出されたとき、ホスト装置から要求される領域の要求データの読出が終了した後、その要求データより前のアドレスを読み出し、これにより、アドレスが連続的に小さくなる逆方向の読出のキャッシュヒット率を向上させている。
【００１０】
【発明が解決しようとする課題】
しかしながら、従来のキャッシュメモリのデータ保持方法にあっては、ホスト装置およびＨＤＤ装置のそれぞれのキャッシュメモリに同じデータが保持される。アプリケーションからホスト装置にデータの読出が要求され、ホスト装置のキャッシュメモリがヒットした場合、そのデータは、ホスト装置から上位側に転送される。ＨＤＤ装置にデータの読出が要求されることはない。したがって、ＨＤＤ装置のキャッシュメモリに同じデータを保持しても有効に利用されないことになる。
【００１１】
本発明は、かかる問題点を解決するためになされたものであり、その目的は、上位および下位のキャッシュメモリに共通のデータを保持しない、あるいは、上位および下位のキャッシュメモリに共通に保持されるデータを少なくすることで、それぞれのキャッシュメモリに効率良くデータを保持することができるキャッシュメモリの制御方法、コンピュータシステム、ハードディスクドライブ装置およびハードディスク制御装置を提供するにある。
【００１２】
【課題を解決するための手段】
この発明に係るキャッシュメモリの制御方法は、拡張バスに任意の周辺装置を拡張して接続するための周辺装置接続手段と、その周辺装置接続手段からＣＰＵ側の回路に配置され、ハードディスクドライブ装置への書き込みデータあるいは読み出しデータを保持する上位のディスクキャッシュと、周辺装置接続手段からＣＰＵ側の回路に配置され、上位のディスクキャッシュへの記憶と読み出しを制御し、複数種類のスワップモードで動作できる上位のキャッシュ制御機能を含む上位のハードディスク制御機能を有する上位の制御手段と、周辺装置接続手段と接続され、ハードディスクドライブ装置への書き込みデータあるいは読み出しデータを保持する下位のディスクキャッシュと、その下位のディスクキャッシュへの記憶と読み出しを制御し、少なくとも１種類のスワップモードで動作できる下位のキャッシュ制御装置を含む下位のハードディスク制御装置とを有するハードディスクドライブ装置とを備えるコンピュータシステムにおいて、
システムの起動時に、下位のハードディスク制御装置では、上位の制御手段に向けて、下位のキャッシュ制御装置が選択可能な少なくとも１種類のスワップモードを送信し、
上位の制御手段では、受信したスワップモード以外から１種類のスワップモードを選択することを特徴とするものである。
【００１３】
また、この発明に係るディスクキャッシュの制御方法は、システムの起動時に、下位のハードディスク制御装置では、１種類のスワップモードを送信すると共に、送信したスワップモードを選択するようにしても良く、
あるいは、システムの起動時に、下位のハードディスク制御装置では、複数種類のスワップモードを送信し、上位の制御手段では、選択したスワップモードを下位のハードディスク制御装置に送信し、さらに、下位のハードディスク制御装置では、上位の制御手段から受信したスワップモード以外の１種類のスワップモードを選択するようにしても良く、
あるいは、システムの起動時に、下位のハードディスク制御装置では、上位の制御手段に向けて、下位のキャッシュ制御装置が選択可能な複数種類のスワップモードを送信し、上位の制御手段では、受信したスワップモードから１種類のスワップモードを選択してそのスワップモードを下位のハードディスク制御装置に送信し、下位のハードディスク制御装置では、上位の制御手段から受信したスワップモード以外から１種類のスワップモードを選択するようにしても良い。
【００１４】
また、この発明に係るディスクキャッシュの制御方法は、上位の制御手段が、少なくとも１種類のスワップモードで動作できる上位のキャッシュ制御機能を含む上位のハードディスク制御機能を有し、下位のハードディスク制御装置が、複数種類のスワップモードで動作できるコンピュータシステムの場合、
システムの起動時に、上位の制御手段では、下位のハードディスク制御装置に向けて、上位のキャッシュ制御装置が選択可能な少なくとも１種類のスワップモードを送信し、下位のハードディスク制御装置では、受信したスワップモード以外から１種類のスワップモードを選択しても良く、
あるいは、システムの起動時に、上位の制御手段では、１種類のスワップモードを送信すると共に、その送信したスワップモードを選択しても良く、
あるいは、システムの起動時に、上位の制御手段は、複数種類のスワップモードを送信し、下位のハードディスク制御装置では、選択したスワップモードを上位の制御手段に送信し、上位の制御手段では、下位のハードディスク制御装置から受信したスワップモード以外から１種類スワップモードを選択するようにしても良い。
【００１５】
また、この発明に係るディスクキャッシュの制御方法は、上位の制御手段から下位のハードディスク制御装置に下位のディスクキャッシュのデータ転送が要求された時、下位のハードディスク制御装置は、下位のディスクキャッシュから転送されたデータを消去するようにしても良く、
あるいは、下位のハードディスク制御装置が、下位のディスクキャッシュの消去されたデータの後に、上位の制御手段から要求されたデータに基づいて、上位の制御手段から次回に要求されると予測されるデータを保持させるようにしても良く、
あるいは、上位の制御手段が、データ転送が要求されたデータが上位のディスクキャッシュに保持されていない時、要求されたデータに加えて、要求されたデータに基づいて次回に要求されると予測されるデータを下位のハードディスク制御装置に要求し、下位のハードディスク制御装置が、要求されたデータを上位の制御手段に転送すると共に、その要求されたデータに基づいて次回に要求されると予測されるデータを保持する用にしても良く、
あるいは、上位の制御手段の予測データが、今回要求されたデータに基づいて次回に要求されると予測されるデータであり、下位のハードディスク制御装置の予測データは、上位の制御手段の予測データを含むデータに基づいて次回に要求されると予想されるデータであるようにしても良い。
【００１６】
この発明に係るコンピュータシステムは、拡張バスに任意の周辺装置を拡張して接続するための周辺装置接続手段と、
その周辺装置接続手段からＣＰＵ側の回路に配置され、ハードディスクドライブ装置への書き込みデータあるいは読み出しデータを保持する上位のディスクキャッシュと、
周辺装置接続手段からＣＰＵ側の回路に配置され、上位のディスクキャッシュへの記憶と読み出しを制御し、複数種類のスワップモードで動作できる上位のキャッシュ制御機能を含み、複数種類から１種類のスワップモードを選択する上位のハードディスク制御機能を有する上位の制御手段と、
周辺装置接続手段と接続され、ハードディスクドライブ装置への書き込みデータあるいは読み出しデータを保持する下位のディスクキャッシュと、その下位のディスクキャッシュへの記憶と読み出しを制御し、少なくとも１種類のスワップモードで動作できる下位のキャッシュ制御装置を含み、システム起動時に上位の制御手段に向けて下位のキャッシュ制御装置が選択可能な少なくとも１種類のスワップモードを送信する下位のハードディスク制御装置とを有するハードディスクドライブ装置とを備えるものである。
【００１７】
また、この発明に係るコンピュータシステムは、下位のハードディスク制御装置は、システムの起動時に１種類のスワップモードを送信し、その送信したスワップモードを選択するようにしても良く、
あるいは、下位のハードディスク制御装置は、システムの起動時に複数種類のスワップモードを送信し、上位の制御手段からスワップモードを受信したら、その受信したスワップモード以外から１種類のスワップモードを選択し、上位の制御手段は、下位のハードディスク制御装置から受信した複数種類のスワップモードを受信したら、その複数種類のスワップモードから１種類のスワップモードを選択し、その選択したスワップモードを下位のハードディスク制御装置に送信するようにしても良い。
【００１８】
また、この発明に係るコンピュータシステムは、上位の制御手段が、下位のハードディスク制御装置から受信したスワップモード以外の１種類のスワップモードを複数種類から選択し、その選択したスワップモードを下位のハードディスク制御装置に送信する上位のハードディスク制御機能を有し、
ハードディスクドライブ装置の下位のハードディスク制御装置が、少なくとも１種類のスワップモードで動作できる下位のキャッシュ制御装置を含み、システム起動時に上位の制御手段に向けて下位のキャッシュ制御装置が選択可能な少なくとも１種類のスワップモードを送信し、上位の制御手段からスワップモードを受信したら、その受信したスワップモード以外から１種類のスワップモードを選択するようにしても良い。
【００１９】
この発明に係るコンピュータシステムは、上位の制御手段が、少なくとも１種類のスワップモードで動作できる上位のキャッシュ制御機能を含み、システムの起動時に下位のハードディスク制御装置に向けて、上位のキャッシュ制御装置が選択可能な少なくとも１種類のスワップモードを送信する上位のハードディスク制御機能を有し、
ハードディスクドライブ装置の下位のハードディスク制御装置が、下位のディスクキャッシュへの記憶と読み出しを制御し、複数種類のスワップモードで動作でき、上位の制御手段から受信したスワップモード以外から１種類のスワップモードを選択する下位のキャッシュ制御装置を含む下位のハードディスク制御装置とを有するようにしても良い。
【００２０】
また、この発明に係るコンピュータシステムは、上位の制御手段が、システムの起動時に１種類のスワップモードを送信すると共に、その送信したスワップモードを選択するようにしても良く、
あるいは、上位の制御手段が、システムの起動時に複数種類のスワップモードを送信し、下位のハードディスク制御装置からスワップモードを受信したら、その受信したスワップモード以外から１種類スワップモードを選択し、下位のハードディスク制御装置が、選択したスワップモードを上位の制御手段に送信するようにしても良く、
あるいは、下位のハードディスク制御装置が、上位の制御手段から下位のディスクキャッシュのデータ転送が要求された時、下位のディスクキャッシュから転送したデータを消去し、消去されたデータの後に、上位の制御手段から要求されたデータに基づいて、上位の制御手段から次回に要求されると予測されるデータを保持させるようにしても良く、
あるいは、上位の制御手段が、データ転送が要求されたデータが上位のディスクキャッシュに保持されていない時、要求されたデータに加えて、要求されたデータに基づいて次回に要求されると予測されるデータを下位のハードディスク制御装置に要求し、下位のハードディスク制御装置が、要求されたデータを上位の制御手段に転送すると共に、その要求されたデータに基づいて次回に要求されると予測されるデータを保持するようにしても良く、
あるいは、上位のディスクキャッシュが、周辺装置接続手段に内蔵されるディスクキャッシュであり、上位の制御手段は、周辺装置接続手段に内蔵され、上位のキャッシュ制御装置を含む上位のハードディスク制御装置であるようにしても良く、
あるいは、上位のディスクキャッシュが、ＣＰＵが有するキャッシュであるか、あるいは、ＣＰＵに接続されるキャッシュであり、上位の制御手段が、ＣＰＵ自体であるようにしても良く、
あるいは、上位のディスクキャッシュが、ＣＰＵと拡張バスを接続するためのブリッジ回路に接続されるメインメモリ内のキャッシュであり、上位の制御手段が、ブリッジ回路内のメインメモリ制御装置であるようにしても良く、
あるいは、周辺装置接続手段が、拡張バスに任意の周辺装置を拡張して接続できる拡張カードであるようにしても良い。
【００２１】
この発明に係るハードディスクドライブ装置は、上記した本発明のコンピュータシステムの何れかで用いられるものであり、さらに、この発明に係るハードディスク制御装置は、本発明のハードディスクドライブ装置で用いられるものである。
【００２２】
【発明の実施の形態】
以下、この発明に係るキャッシュメモリの制御方法およびコンピュータスシステムの好ましい実施の形態を図面を参照して説明する。
実施の形態１．
この発明に係る実施の形態１のキャッシュメモリの制御方法は、上位および下位のキャッシュメモリをそれぞれ異なるスワップモードで動作させる。スワップとは、キャッシュメモリの記憶容量に空きがないとき、新たに保持すべきデータと既に保持されているデータとを入れ替えることをいう。
【００２３】
スワップモードとしては、主に、ＬＲＵ（Ｌｅａｓｔ  Ｒｅｃｅｎｔｌｙ  Ｕｓｅｄ  ）モード、ＬＦＵ（Ｌｅａｓｔ  Ｆｒｅｑｕｅｎｔｌｙ  Ｕｓｅｄ  ）モード、ＦＩＦＯ（ｆｉｒｓｔ−ｉｎ  ｆｉｒｓｔ−ｏｕｔ）モードが使用される。ＬＲＵモードは、使用されない時間が最も長いデータをスワップアウトするモードである。ＬＦＵモードは、使用頻度が最も少ないデータをスワップアウトするモードである。ＦＩＦＯモードは、先に保持されたデータから順次にスワップアウトするモードである。なお、スワップモードは、これに限るものではなく、例えば、複数のセグメントのうち、セグメントに含まれるデータ量が最も少ないセグメントをスワップアウトするスワップモード等、種々の方法（スワップモード）を使用することができる。
【００２４】
上位および下位のキャッシュメモリを同じスワップモードで動作させると、それぞれのキャッシュメモリに同じ性質のデータが残される。例えば、上位および下位のキャッシュメモリを同じＬＲＵモードで動作させた場合、使用されない時間が最も長いデータがスワップアウトされるため、最近使用されたデータがそれぞれのキャッシュメモリに残される。上位および下位のキャッシュメモリを同じＬＦＵモードで動作させた場合、使用頻度が少ないデータがスワップアウトされるため、使用頻度の多いデータがそれぞれのキャッシュメモリに残される。上位および下位のキャッシュメモリを同じＦＩＦＯモードで動作させた場合、先に保持されたデータがそれぞれのキャッシュメモリから順次にスワップアウトされるため、最近使用されたデータがそれぞれのキャッシュメモリに残される。
【００２５】
これに対し、例えば、上位のキャッシュメモリをＬＦＵモードで動作させ、下位のキャッシュメモリをＦＩＦＯモードで動作させた場合には、上位のキャッシュメモリには、使用頻度の多いデータが残され、下位のキャッシュメモリには、最近使用されたデータが残される。このように、それぞれのキャッシュメモリには、性質が異なるデータが残されるため、双方のキャッシュメモリに同じデータが保持される可能性を小さくすることができる。すなわち、上位のキャッシュメモリに保持されたデータを下位のキャッシュメモリが保持する可能性を小さくすることができるので、それぞれのキャッシュメモリに効率良くデータを保持することができる。
【００２６】
望ましくは、上位および下位のキャッシュメモリには、性質が異なるスワップモードを組み合わせるとよい。似通った性質のスワップモードを組み合わせる場合よりも、双方のキャッシュメモリに異なるデータが残される確率が高くなり、キャッシュメモリを一層効率良く利用することができるからである。ただし、ヒット率を低減させるようなスワップモードを使用すべきでない。データの局所性を利用するキャッシュメモリ本来の機能を発揮することができないからである。
【００２７】
次に、このキャッシュメモリの制御方法を実現するコンピュータシステムについて説明する。
図１は、この発明に係る実施の形態１のコンピュータシステムの概略構成を示す図である。
図１に示すように、このコンピュータシステムは、ＣＰＵ１１、２次キャッシュ１３、第１ブリッジ回路１４およびメインメモリ１５を備える。ＣＰＵ１１は、１次キャッシュ１２を有する。ＣＰＵ１１には、外部バス１０ａを介して２次キャッシュ１３が接続されている。また、ＣＰＵ１１には、外部バス１０ｂを介して第１ブリッジ回路１４が接続されている。第１ブリッジ回路１４には、外部バス１０ｃを介してメインメモリ１５が接続されている。１次キャッシュ１２および２次キャッシュ１３は、例えばＳＲＡＭにより構成されている。１次キャッシュ１２は、例えば、数十Ｋ〜数百ＫＢ（Ｂ；ｂｙｔｅ）の記憶容量を有する。２次キャッシュ１３は、例えば、数百Ｋ〜数ＭＢの記憶容量を有する。メインメモリ１５は、例えばＤＲＡＭにより構成されている。メインメモリ１５は、例えば、数十Ｍ〜数百ＭＢの記憶容量を有する。
【００２８】
第１ブリッジ回路１４には、周辺装置を拡張するための拡張バス２０が接続されている。拡張バス２０は、例えばＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ  ）バスにより構成されている。第１ブリッジ回路１４は、例えば、図示しない、クロック発生器、ＣＰＵインタフェース、２次キャッシュコントローラ、メインメモリコントローラ、ＰＣＩバスインタフェース等の機能を有する。
【００２９】
拡張バス２０には、ＨＤＣ（Ｈａｒｄ  Ｄｉｓｋ  Ｃｏｎｔｒｏｌｌｅｒ）カード２１が接続されている。さらに、ＨＤＣカード２１には、バス２４ａを介してＨＤＤ（ｈａｒｄ  ｄｉｓｋ  ｄｒｉｖｅ  ）装置２２が接続され、バス２４ｂを介してＣＤ−ＲＯＭ装置２３が接続されている。バス２４ａおよびバス２４ｂは、例えばＡＴＡ（ＡＴ  Ａｔｔａｃｈｍｅｎｔ  ）／ＡＴＡＰＩ（ＡＴＡ  ｐａｃｋｅｔ  ｉｎｔｅｒｆａｃｅ）バスにより構成されている。ＨＤＣカード２１は、ＨＤＤ装置の増設やＨＤＤ装置の制御機能を拡張するために使用される。
【００３０】
なお、ＨＤＣカード２１は、ＨＤＤ装置２２の制御機能を拡張するものに限るものはなく、キャッシュメモリを有する拡張カードであればよい。例えば、ＳＣＳＩ（Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅ  ）カードのようなものでもよい。また、拡張バス２０は、ＰＣＩバスに限るものではなく、バス２４ａおよびバス２４ｂは、ＡＴＡ／ＡＴＡＰＩバスに限るものではない。
【００３１】
図２は、図１に示されるＨＤＤ装置の概略構成を示す図である。
図２に示されるように、ＨＤＤ装置２２は、データが記録される記録面を有する磁気ディスク４１と、図示しない記録用および再生用の磁気ヘッドを有するヘッドスライダ４３とを備える。
【００３２】
磁気ディスク４１は、スピンドルモータ４２の回転軸に固定して取り付けられ、スピンドルモータ４２により回転駆動される。ヘッドスライダ４３は、ヘッドアーム４４の先端部分に固定されている。ヘッドアーム４４は、アクチュエータ４５に取り付けられ、ヘッドスライダ４３を弾性支持する。ヘッドアーム４４は、アクチュエータ４５により磁気ディスク４１の記録面の上空を回動駆動される。これにより、ヘッドスライダ４３は、磁気ディスク４１の略半径方向を移動し、磁気ディスク４１の記録面の任意の位置のデータがアクセスされる。
【００３３】
なお、磁気ディスク４１は、１枚以上あればよく、その片面もしくは両面に記録面が形成される。ヘッドスライダ４３およびヘッドアーム４４は、磁気ディスク４１の記録面に対応して設けられる。
【００３４】
磁気ディスク４１、スピンドルモータ４２、ヘッドスライダ４３、ヘッドアーム４４およびアクチュエータ４５から構成される駆動機構は、制御回路５０により制御される。制御回路５０は、ＨＤＣ（Ｈａｒｄ  Ｄｉｓｋ  Ｃｏｎｔｒｏｌｌｅｒ）５１、制御用メモリ５３、ディスクキャッシュ５４およびホストＩ／Ｆ５５を備える。これらは、バス５６を介して相互に接続されている。
【００３５】
ＨＤＣ５１は、制御用メモリ５３に記憶された制御プログラム、制御データに従って、ＨＤＤ装置２２全体を制御する。ＨＤＣ５１は、サーボ制御やデータの記録／再生時の誤り制御のための演算処理を実行することにより、スピンドルモータ４２およびアクチュエータ４５を駆動し、記録用の磁気ヘッドを介して磁気ディスク４１にデータを記録するとともに、再生用の磁気ヘッドを介して磁気ディスク４１からデータを再生して読み出す。ＨＤＣ５１には、磁気ディスク４１に記録されるデータの一部をディスクキャッシュ５４に保持するためのキャッシュコントローラ５２が設けられている。
【００３６】
制御用メモリ５３には、ＨＤＣ５１により実行される制御プログラム、この制御プログラムに使用される制御データが記憶されている。ディスクキャッシュ５４は、磁気ディスク４１に記録される書込データを一時的に記憶するとともに、磁気ディスク４１から読み出された読出データを一時的に記憶するバッファメモリの機能を有する。ホストＩ／Ｆ５５には、バス２１ａを介してＨＤＣカード２１が接続されている。ホストＩ／Ｆ５５は、ＨＤＣカード２１との間でデータを送受するインタフェース回路である。
【００３７】
ディスクキャッシュ５４は、上記のように、磁気ディスク４１に記録されるデータの一部を保持するキャッシュメモリの機能を有する。ディスクキャッシュ５４は、下位のキャッシュメモリに相当する。ディスクキャッシュ５４は、例えば、ＤＲＡＭからなり、数Ｍ〜数十ＭＢの記憶容量を有する。キャッシュ制御は、キャッシュコントローラ５２により行われる。キャッシュコントローラ５２は、例えば、ＦＩＦＯモードおよびＬＲＵモードのスワップモードをサポートする。
【００３８】
ＨＤＤ装置２２は、このコンピュータシステムの起動時にＨＤＣカード（ホスト装置）２１との間で設定情報を送受し、送受された設定情報に基づいてＨＤＤ装置２２の初期設定を行う。このとき、ＨＤＤ装置２２は、例えば、自己の装置により選択可能なキャッシュメモリのスワップモード（ＦＩＦＯモードおよびＬＲＵモード）をＨＤＣカード２１に転送し、これに応じてＨＤＣカード２１から転送されたスワップモードを自己のキャッシュメモリのスワップモードとして選択する。
【００３９】
図３は、図１に示されるＨＤＣカード２１の概略構成を示す図である。
図３に示されるように、ＨＤＣカード２１は、ＨＤＣ３１、制御用メモリ３３、ディスクキャッシュ３４、Ｉ／Ｏポート３５、Ｉ／Ｏポート３６およびホストＩ／Ｆ３７を備える。ＨＤＣ３１、制御用メモリ３３、ディスクキャッシュ３４およびホストＩ／Ｆ３７は、バス３８ｃを介して相互に接続されている。Ｉ／Ｏポート３５は、バス３８ａを介してＨＤＣ３１に接続され、Ｉ／Ｏポート３６は、バス３８ｂを介してＨＤＣ３１に接続されている。
【００４０】
ＨＤＣ３１は、制御用メモリ３３に記憶された制御プログラム、制御データに従って、ＨＤＣカード２１全体を制御する。ＨＤＣ３１には、ＨＤＤ装置２２に記憶されるデータの一部をディスクキャッシュ３４に保持するためのキャッシュコントローラ３２が設けられている。
【００４１】
制御用メモリ３３には、ＨＤＣ３１により実行される制御プログラム、この制御プログラムに使用される制御データが記憶されている。ディスクキャッシュ３４は、ＨＤＤ装置２２に記憶される書込データを一時的に記憶するとともに、ＨＤＤ装置２２から読み出された読出データを一時的に記憶するバッファメモリの機能を有する。Ｉ／Ｏポート３５には、バス２４ａを介してＨＤＤ装置２２が接続され、Ｉ／Ｏポート３６には、バス２４ｂを介してＣＤ−ＲＯＭ装置２３が接続されている。ホストＩ／Ｆ３７には、拡張バス２０が接続されている。ホストＩ／Ｆ３７は、拡張バス２０を介してデータを送受するインタフェース回路である。
【００４２】
ディスクキャッシュ３４は、上記のように、ＨＤＤ装置２２に記憶されるデータの一部を保持するキャッシュメモリの機能を有する。ディスクキャッシュ３４は、ＨＤＤ装置２２に設けられたディスクキャッシュ５４に対して上位のキャッシュメモリに相当する。ディスクキャッシュ３４は、例えば、ＤＲＡＭからなり、数Ｍ〜数十ＭＢの記憶容量を有する。キャッシュ制御は、キャッシュコントローラ３２により行われる。キャッシュコントローラ３２は、例えば、ＦＩＦＯモード、ＬＲＵモードおよびＬＦＵモードをサポートする。
【００４３】
ＨＤＣカード２１は、このコンピュータシステムの起動時にＨＤＤ装置（下位装置）２２との間で設定情報を送受し、送受された設定情報に基づいてＨＤＣカード２１の初期設定を行う。このとき、ＨＤＣカード２１は、例えば、ＨＤＤ装置２２から転送されたキャッシュメモリのスワップモードの中からＨＤＤ装置２２が選択すべきスワップモードを選択し、ＨＤＤ装置２２に転送し、さらに、ＨＤＤ装置２２に転送されたスワップモードと異なるスワップモードを自己のキャッシュメモリのスワップモードとして選択する。なお、どのスワップモードを選択するかは、その優先順位があらかじめ設定されている。
【００４４】
図４は、キャッシュメモリのスワップモードを選択する動作の一例を示すシーケンス図である。
コンピュータシステムが起動されると、ＨＤＤ装置２２が選択可能なキャッシュメモリのスワップモード（ＦＩＦＯモードおよびＬＲＵモード）が、ＨＤＤ装置２２からＨＤＣカード２１に転送される（ステップＳ１）。ＨＤＣカード２１では、ＨＤＤ装置２２からスワップモードが転送されると（ステップＳ２）、あらかじめ設定された優先順位に従って、受信されたスワップモードの中からＨＤＤ装置２２が選択すべきスワップモード（ＦＩＦＯモード）が選択され（ステップＳ３）、選択されたスワップモードがＨＤＤ装置２２に応答される（ステップＳ４）。
【００４５】
ＨＤＤ装置２２では、ＨＤＣカード２１からスワップモードが転送されると（ステップＳ５）、転送されたスワップモードが自己のキャッシュメモリのスワップモードに選択される（ステップＳ６）。一方、ＨＤＣカード２１では、あらかじめ設定された優先順位に従って、ＨＤＤ装置２２のスワップモードと異なるスワップモード（ＬＲＵモード）が自己のキャッシュメモリのスワップモードに選択される（ステップＳ７）。
【００４６】
キャッシュメモリのスワップモードを選択する方法は、図５に示されるシーケンスにより行うこともできる。ＨＤＤ装置２２は、デフォルトのスワップモード（ＦＩＦＯモード）があらかじめ設定されているものとする。
【００４７】
コンピュータシステムが起動されると、ＨＤＤ装置２２にデフォルトで設定されているスワップモード（ＦＩＦＯモード）が、ＨＤＤ装置２２からＨＤＣカード２１に転送される（ステップＳ１１）。ＨＤＣカード２１では、ＨＤＤ装置２２のスワップモードが転送されると（ステップＳ１２）、あらかじめ設定された優先順位に従って、ＨＤＤ装置２２のスワップモードと異なるスワップモード（ＬＦＵモード）が自己のキャッシュメモリのスワップモードに選択される（ステップＳ１３）。
【００４８】
さらに、ＨＤＣカード２１がＨＤＤ装置２２のデフォルトのスワップモードと異なるスワップモードを有しない場合には、その旨をＨＤＣカード２１からＨＤＤ装置２２に転送し、ＨＤＤ装置２２がデフォルトのスワップモードと異なるスワップモードを選択するように構成することもできる。
【００４９】
なお、図４の例においては、ＨＤＣカード２１がスワップモードの決定権を有するが、ＨＤＣカード２１とＨＤＤ装置２２との立場を置き換え、ＨＤＤ装置２２がスワップモードの決定権を有するように構成することもできる。この場合、スワップモードの決定権を有しない装置は、少なくとも１つのスワップモードを有すればよい。また、図５の例においても、ＨＤＣカード２１とＨＤＤ装置２２との立場を置き換え、ＨＤＣカード２１がデフォルトのスワップモードをＨＤＤ装置２２に転送するように構成することもできる。
【００５０】
このように、コンピュータシステムの起動時に、ＨＤＣカード２１のキャッシュメモリ（上位のキャッシュメモリ）とＨＤＤ装置２２のキャッシュメモリ（下位のキャッシュメモリ）との間でスワップモードを送受し、互いに異なるスワップモードを選択することができる。したがって、それぞれのキャッシュメモリに最適なスワップモードを選択することができる。
【００５１】
なお、スワップモードを選択する動作は、上記の動作に限るものではなく、種々の方法により実現することができる。例えば、一方のキャッシュメモリが、自己が選択不能なスワップモードを他方のキャッシュメモリに転送し、他方のキャッシュメモリが、転送されたスワップモードの中から自己のスワップモードを選択するように構成することもできる。
【００５２】
実施の形態２．
この発明に係る実施の形態２のキャッシュメモリの方法は、上位および下位のキャッシュメモリに共通のデータを保持しないようにするものであり、具体的には、下位のキャッシュメモリから上位のキャッシュメモリに転送されたデータを下位のキャッシュメモリから消去するものである。これにより、下位のキャッシュメモリに一層効率良くデータを保持することができる。
【００５３】
図６は、この発明に係る実施の形態２のコンピュータシステムの概略構成を示す図である。
なお、図１に示される実施の形態１のコンピュータシステムの各部と同様の構成には同一符号を付し、その説明を省略する。
【００５４】
図６に示されるように、拡張バス２０には、第２ブリッジ回路７１が接続されている。第２ブリッジ回路７１には、バス７０を介して図示しない周辺装置が接続可能とされ、バス７４ａを介してＨＤＤ装置７２が接続され、バス７４ｂを介してＣＤ−ＲＯＭ装置７３が接続されている。バス７０は、例えばＩＳＡ（Ｉｎｄｕｓｔｒｙ  Ｓｔａｎｄａｒｄ  Ａｒｃｈｉｔｅｃｔｕｒｅ）バスから構成されている。バス７４ａおよびバス７４ｂは、例えばＡＴＡ（ＡＴ  Ａｔｔａｃｈｍｅｎｔ  ）／ＡＴＡＰＩ（ＡＴＡ  ｐａｃｋｅｔ  ｉｎｔｅｒｆａｃｅ）バスにより構成されている。
【００５５】
第２ブリッジ回路７１は、拡張バス２０と規格が異なる拡張バスに周辺装置を接続するために設けられている。第２ブリッジ回路７１は、ＰＣＩバスインタフェース、割込コントローラ、ＤＭＡ（ｄｉｒｅｃｔ  ｍｅｍｏｒｙ  ａｃｃｅｓｓ）コントローラ、ＩＳＡバスインタフェース等の機能を有する。なおバス７０は、ＩＳＡバスに限るものではなく、バス７４ａおよびバス７４ｂは、ＡＴＡ／ＡＴＡＰＩバスに限るものではない。
【００５６】
メインメモリ１５は、ＣＰＵ１１の命令に従って、ＨＤＤ装置７２との間でデータを授受する。このメインメモリ１５には、ＨＤＤ装置７２に記憶されるデータの一部を保持するためのディスクキャッシュ１６が設けられている。ディスクキャッシュ１６は、ＨＤＤ装置７２に設けられたディスクキャッシュ７５に対して上位のキャッシュメモリに相当する。ディスクキャッシュ１６は、例えば、数Ｍ〜数十ＭＢの記憶容量を有する。キャッシュ制御は、第１ブリッジ回路１４に設けられたメインメモリコントローラ１７により行われる。
【００５７】
メインメモリ１５のディスクキャッシュ１６（正確には、メインメモリコントローラ１７）は、ＣＰＵ１１から要求されたデータが保持されていないとき、ＣＰＵ１１から要求されたデータと、ＣＰＵ１１から次回に要求されると予測されるデータとを含むデータをＨＤＤ装置７２に要求し、この要求に応じてＨＤＤ装置７２から転送されたデータを保持する。次回に要求されると予測されるデータとしては、例えば、ＣＰＵ１１から前回に要求されたデータや、ＣＰＵ１１から要求されたデータの先読み（Ｌｏｏｋ  Ａｈｅａｄ）データが使用される。
【００５８】
ＨＤＤ装置７２は、図１に示されるＨＤＤ装置２２と同様の構成であり、下位のキャッシュメモリの機能を有するディスクキャッシュ７５を備えるが、キャッシュ制御方法が、ＨＤＤ装置２２のディスクキャッシュ５４のキャッシュ制御方法と異なる。ディスクキャッシュ７５は、ＨＤＤ装置７２から読み出されたデータを消去するように構成されている。ディスクキャッシュ７５は、例えば、数Ｍ〜数十ＭＢ（ｂｙｔｅ）の記憶容量を有する。
【００５９】
ＨＤＤ装置７２のディスクキャッシュ７５（正確には、図示しないキャッシュコントローラ）は、メインメモリ１５から要求されたデータが保持されていないとき、メインメモリ１５から要求されたデータと、メインメモリ１５から次回に要求されると予測されるデータとを含むデータを磁気ディスク４１から読み出す。ディスクキャッシュ７５は、まず、メインメモリ１５から要求されたデータを保持し、保持されたデータをメインメモリ１５に転送する。ディスクキャッシュ７５は、メインメモリ１５から要求されたデータがメインメモリ１５に転送されると、当該データを消去し、メインメモリ１５から次回に要求されると予測される予測データを保持する。次回に要求されると予測されるデータとしては、例えば、メインメモリ１５から要求されたデータの先読みデータが使用される。
【００６０】
なお、本明細書における「消去」とは、メインメモリに転送されたデータを単に消去することのみならず、例えば、前記データと同時にメモリ管理領域に保持される前記データの制御データ（タグ、有効フラグ等）の内容を更新し、これらの領域を空き領域として指定する等の、前記データの消去に関連する処理を含む。
【００６１】
図７は、キャッシュメモリのデータ保持動作の一例を示す図である。
メインメモリ１５のディスクキャッシュ１６（ホスト装置のキャッシュメモリ）およびＨＤＤ装置７２のディスクキャッシュ７５（下位装置のキャッシュメモリ）には、ＣＰＵ１１（アプリケーション）から要求されるデータが保持されていないものとする。
【００６２】
アプリケーションからメインメモリ１５にデータが要求されると、メインメモリ１５のディスクキャッシュ１６では、キャッシュミスとなるので、アプリケーションから要求されたデータと、アプリケーションから次回に要求されると予測されるデータとを含むデータＡがＨＤＤ装置７２に要求される。ＨＤＤ装置７２のディスクキャッシュ７５では、キャッシュミスとなるので、メインメモリ１５から要求されたデータＡが磁気ディスク４１から読み出され、ディスクキャッシュ７５に保持され、さらに、メインメモリ１５に転送される。これにより、メインメモリ１５のディスクキャッシュ１６には、データＡが保持される。
【００６３】
さらに、ＨＤＤ装置７２では、データＡがメインメモリ１５に転送されると、当該データＡがディスクキャッシュ７５から消去される。次いで、ホスト装置では、転送されたデータＡに続くアドレスのデータＢが磁気ディスク４１から読み出され、ディスクキャッシュ７５に保持される。
【００６４】
図１２に示される従来のデータ読出方法と比較すると、従来のＨＤＤ装置のキャッシュメモリには、ホスト装置から要求されたデータＤ３と、このデータＤ３に続くアドレスのデータ４（先読みデータ）とが保持される。これに対し、実施の形態２のＨＤＤ装置のキャッシュメモリには、ホスト装置から要求されたデータＡは保持されず、データＡに続くアドレスのデータＢ（先読みデータ）が保持される。
【００６５】
このため、双方の記憶容量が同じ場合、従来のＨＤＤ装置よりも実施の形態１のＨＤＤ装置のキャッシュメモリのほうが、より多くの先読みデータを保持することができる。図１２において、データＢ１は、従来のＨＤＤ装置のキャッシュメモリに保持することができる先読みデータＤ４を意味し、データＢ２は、データＡがキャッシュメモリから消去されることで磁気ディスクから読み出されるデータＢ１に続く先読みデータを意味する。これにより、データの空間的な局所性を利用し、キャッシュメモリのヒット率を向上させることができる。したがって、キャッシュメモリに効率良くデータを保持することができる。
【００６６】
なお、データの局所性には、時間的な局所性と空間的な局所性とがある。時間的な局所性とは、同じアドレスのデータが繰り返しアクセスされる可能性が高いことを意味する。空間的な局所性とは、アクセスされたデータの近くのアドレスに存在するデータがアクセスされる可能性が高いことを意味する。
【００６７】
図８〜図１１は、キャッシュメモリのデータ保持動作の他の例を示す図である。
図８に示されるように、メインメモリ１５のディスクキャッシュ１６は、アプリケーションから次回に要求されると予測されるデータとして、アプリケーションから前回に要求されたデータＡ２を使用する。これにより、データの時間的な局所性を利用し、ディスクキャッシュ１６のヒット率を向上させることができる。
【００６８】
図９に示されるように、メインメモリ１５のディスクキャッシュ１６は、アプリケーションから次回に要求されると予測されるデータとして、アプリケーションから要求されたデータＡ１の先読みデータＡ２を使用する。これにより、データの空間的な局所性を利用し、ディスクキャッシュ１６のヒット率を向上させることができる。
【００６９】
図１０の例では、メインメモリ１５のディスクキャッシュ１６は、複数のセグメント（Ｓｅｇｍｅｎｔ）、例えば、Ｓｅｇｍｅｎｔ１、Ｓｅｇｍｅｎｔ２およびＳｅｇｍｅｎｔ３の３つのセグメントを有する。Ｓｅｇｍｅｎｔ１、Ｓｅｇｍｅｎｔ２およびＳｅｇｍｅｎｔ３には、アプリケーションから順次に発行されるコマンド（ｃｏｍｍａｎｄ）により、ＨＤＤ装置７２に要求されたデータが繰り返し保持される。
【００７０】
Ｓｅｇｍｅｎｔ１には、アプリケーションのｃｏｍｍａｎｄ１により要求されたデータＡ１と、データＡ１の先読みデータＡ２が保持されている。Ｓｅｇｍｅｎｔ２には、アプリケーションのｃｏｍｍａｎｄ２により要求されたデータＡ３と、データＡ３の先読みデータＡ４が保持されている。Ｓｅｇｍｅｎｔ３には、アプリケーションのｃｏｍｍａｎｄ３により要求されたデータＡ５と、データＡ５の先読みデータＡ６が保持されている。このように、キャッシュメモリを複数のセグメントにより構成することにより、データの時間的な局所性を利用し、ディスクキャッシュ１６のヒット率を向上させることができる。
【００７１】
一方、ＨＤＤ装置７２のディスクキャッシュ７５には、メインメモリ１５から要求された最新のデータＡ５およびＡ６の先読みデータＢが保持されている。これにより、データの空間的な局所性を利用し、ディスクキャッシュ７５のヒット率を向上させることができる。
【００７２】
図１１の例では、ＨＤＤ装置７２のディスクキャッシュ７５も、複数のセグメント、例えば、Ｓｅｇｍｅｎｔ１、Ｓｅｇｍｅｎｔ２およびＳｅｇｍｅｎｔ３の３つのセグメントを有する。メインメモリ１５のディスクキャッシュ１６のＳｅｇｍｅｎｔ１、Ｓｅｇｍｅｎｔ２およびＳｅｇｍｅｎｔ３のそれぞれには、アプリケーションから順次に要求されたｃｏｍｍａｎｄ１、ｃｏｍｍａｎｄ２およびｃｏｍｍａｎｄ３に対応してＨＤＤ装置７２に要求したデータＡ１、Ａ２およびＡ３が保持されている。ＨＤＤ装置７２のディスクキャッシュ７５のＳｅｇｍｅｎｔ１、Ｓｅｇｍｅｎｔ２およびＳｅｇｍｅｎｔ３のそれぞれには、メインメモリ１５から要求されたデータＡ１、Ａ２およびＡ３のそれぞれの先読みデータＣ１、Ｃ２およびＣ３が保持されている。これにより、データの時間的な局所性を利用し、ディスクキャッシュ７５のヒット率を向上させることができる。
【００７３】
なお、複数のセグメントを配置する方法は、これに限るものではなく、例えば、ダイレクト・マッピング、フル・アソシアティブ、セット・アソシアティブ等の従来良く知られる方法を採用することもできる。また、各セグメントの大きさは、固定長に限るものではなく、可変長にすることもできる。
【００７４】
なお、実施の形態２では、メインメモリ１５のディスクキャッシュ１６（上位のキャッシュメモリ）およびＨＤＤ装置７２のディスクキャッシュ７５（下位のキャッシュメモリ）の２段階の記憶階層おいて、下位のキャッシュメモリが、上位のキャッシュメモリに転送されたデータを保持しないようにしている。これに対し、実施の形態１のように、メインメモリ、拡張カードおよびＨＤＤ装置の３段階の記憶階層の場合には、例えば、拡張カードからメインメモリに転送されたデータを拡張カードのキャッシュメモリが保持せずに、ＨＤＤ装置から拡張カードに転送されたデータをＨＤＤ装置のキャッシュメモリが保持しないようにすることができる。
【００７５】
また、実施の形態１および２では、ＨＤＤ装置を最下位のデータ記憶装置としているが、最下位のデータ記憶装置は、ＨＤＤ装置に限るものではなく、例えば、磁気テープ装置、光磁気ディスク装置等のディスク装置でもよい。
【００７６】
本発明は、特に、キャッシュメモリを有する周辺装置に好適である。一般に、１次キャッシュ、２次キャッシュおよびメインメモリは、あらかじめコンピュータのマザーボードに実装されるため、これらのメモリ間のデータ転送方法は、統合されたシステムとして最適設計がなされている。これに対し、拡張カード、ＨＤＤ装置等の従来の周辺装置は、一般に個別に設計されるため、必ずしも上位の記憶階層との関係において最適設計がなされている訳ではない。本発明は、下位のキャッシュメモリができるだけ上位のキャッシュメモリと重複するデータを保持しないようにすることで、データの局所性を利用し、下位のキャッシュメモリのヒット率を向上させることができる。したがって、上位の記憶階層との関係において最適なデータ転送方法を実現することができる。
【００７７】
また、本発明は、上位および下位のキャッシュメモリが同じ程度の記憶容量を有する場合に最も効果を発揮する。上位キャッシュメモリの記憶容量に対する下位のキャッシュメモリの記憶容量が極端に大きい場合には、上位のキャッシュメモリに保持されたデータと同じデータを下位のキャッシュメモリが保持しても、下位のキャッシュメモリの記憶容量に対する前記同じデータの割合は小さいからである。
【００７８】
これに対し、上位および下位のキャッシュメモリが、それぞれ同じ程度の記憶容量を有する場合には、上位のキャッシュメモリに保持されたデータと同じデータを下位のキャッシュメモリが保持すると、下位のキャッシュメモリの記憶容量に対する前記同じデータの割合が大きくなる。したがって、上位のキャッシュメモリに転送されたデータの代わりに、先読みデータ等の他のデータを保持し、ヒット率を向上させる効果が相対的に大きくなる。
【００７９】
【発明の効果】
この発明によれば、上位および下位のディスクキャッシュを、それぞれ異なるスワップモードで動作させることができる。これにより、上位のディスクキャッシュに保持されたデータを下位のディスクキャッシュが保持する可能性を小さくすることができるので、それぞれのディスクキャッシュに効率良くデータを保持することができる。
【００８０】
また、この発明によれば、ＣＰＵ側の回路であるホスト装置から下位のディスクキャッシュにデータの転送が要求されたとき、この要求に応じてホスト装置に転送されたデータが下位のディスクキャッシュから消去される。あるいは、上位のディスクキャッシュから下位のディスクキャッシュへのデータの転送が要求されたとき、この要求に応じて上位のディスクキャッシュに転送されたデータが下位のディスクキャッシュから消去される。これにより、下位のディスクキャッシュに一層効率良くデータを保持することができる。
【図面の簡単な説明】
【図１】この発明に係る実施の形態１のコンピュータシステムの概略構成を示す図である。
【図２】図１に示されるＨＤＤ装置の概略構成を示す図である。
【図３】図１に示されるＨＤＣカード２１の概略構成を示す図である。
【図４】キャッシュメモリのスワップモードを選択する動作の一例を示すシーケンス図である。
【図５】キャッシュメモリのスワップモードを選択する動作の他の例を示すシーケンス図である。
【図６】この発明に係る実施の形態２のコンピュータシステムの概略構成を示す図である。
【図７】キャッシュメモリのデータ保持動作の一例を示す図である。
【図８】キャッシュメモリのデータ保持動作の他の例を示す図である。
【図９】キャッシュメモリのデータ保持動作の他の例を示す図である。
【図１０】キャッシュメモリのデータ保持動作の他の例を示す図である。
【図１１】キャッシュメモリのデータ保持動作の他の例を示す図である。
【図１２】従来のディスクキャッシュのデータ読出方法を示す図である。
【符号の説明】
１０ａ、１０ｂ、１０ｃ  外部バス
１１  ＣＰＵ
１２  １次キャッシュ
１３  ２次キャッシュ
１４  第１コントローラ装置
１５  メインメモリ
１６  キャッシュ領域（上位のキャッシュメモリ）
１７  キャッシュコントローラ
２０  拡張バス
２１  ＨＤＣカード（ハードディスク制御装置）
２２  ＨＤＤ装置
２３  ＣＤ−ＲＯＭ装置
２４ａ、２４ｂ  バス
３１  ＨＤＣ
３２  キャッシュコントローラ
３３  制御用メモリ
３４  バッファメモリ（上位または下位のキャッシュメモリ）
３５  Ｉ／Ｏポート
３６  Ｉ／Ｏポート
３７  ホストＩ／Ｆ
３８ａ、３８ｂ  バス
４１  磁気ディスク
４２  スピンドルモータ
４３  ヘッドスライダ
４４  ヘッドアーム
４５  アクチュエータ
５１  ＨＤＣ
５２  キャッシュコントローラ
５３  制御用メモリ
５４  バッファメモリ（下位のキャッシュメモリ）
５５  ホストＩ／Ｆ
５６  バス
７０  バス
７１  第２コントローラ装置
７２  ＨＤＤ装置
７３  ＣＤ−ＲＯＭ装置
７４ａ、７４ｂ  バス
７５  バッファメモリ（下位のキャッシュメモリ）
【図１】
0003568110.tif 000002
【図２】
0003568110.tif 000003
【図３】
0003568110.tif 000004
【図４】
0003568110.tif 000005
【図５】
0003568110.tif 000006
【図６】
0003568110.tif 000007
【図７】
0003568110.tif 000008
【図８】
0003568110.tif 000009
【図９】
0003568110.tif 000010
【図１０】
0003568110.tif 000011
【図１１】
0003568110.tif 000012
【図１２】
0003568110.tif 000013