JP3568110B2 - キャッシュメモリの制御方法、コンピュータシステム、ハードディスクドライブ装置およびハードディスク制御装置 - Google Patents
キャッシュメモリの制御方法、コンピュータシステム、ハードディスクドライブ装置およびハードディスク制御装置 Download PDFInfo
- Publication number
- JP3568110B2 JP3568110B2 JP29390999A JP29390999A JP3568110B2 JP 3568110 B2 JP3568110 B2 JP 3568110B2 JP 29390999 A JP29390999 A JP 29390999A JP 29390999 A JP29390999 A JP 29390999A JP 3568110 B2 JP3568110 B2 JP 3568110B2
- Authority
- JP
- Japan
- Prior art keywords
- cache
- data
- hard disk
- level
- swap
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0893—Caches characterised by their organisation or structure
- G06F12/0897—Caches characterised by their organisation or structure with two or more cache hierarchy levels
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/31—Providing disk cache in a specific location of a storage system
- G06F2212/311—In host system
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/31—Providing disk cache in a specific location of a storage system
- G06F2212/312—In storage controller
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
【発明の属する技術分野】
本発明は、キャッシュメモリに効率良くデータを保持するためのキャッシュメモリの制御方法、コンピュータシステム、ハードディスクドライブ装置およびハードディスク制御装置に関するものである。
【0002】
【従来の技術】
コンピュータシステムは、CPU、メインメモリ、HDD(hard disk drive )装置等の、データ転送速度がそれぞれ異なるデバイスにより構成される。一般に、メインメモリにはDRAMが使用されている。DRAMのデータ転送速度は、CPUと比較すると非常に遅いため、CPUの動作速度を低下させてしまう。HDD装置、CD−ROM装置等の外部記憶装置のデータ転送速度は、DRAMと比較すると非常に遅いため、DRAMの動作速度を低下させてしまう。このように、データを送受するデバイス間に速度差があると、システム全体のデータ転送速度は、データ転送速度の遅いほうのデバイスに支配されるため、高速なデータ転送速度を有するデバイスの本来の性能が発揮されず、システム全体の性能が低下してまう。
【0003】
これらのデバイス間の速度差を緩衝するため、コンピュータシステムには、キャッシュメモリが設けられている。キャッシュメモリは、プログラムおよびデータの局所性を利用し、データ転送速度の遅い下位のデバイスに記憶されるデータの一部を記憶する。これにより、下位のデバイスに対するアクセスを減少させ、コンピュータシステム全体のデータ転送速度を向上させている。
【0004】
キャッシュメモリは、典型的には、CPUとメインメモリとの間に設けられる。キャッシュメモリが複数の場合には、CPUに近いほうから、1次キャッシュ、2次キャッシュ、・・・と呼ばれる。CPUに近いほど、その記憶容量は小さい。一般に、これらのキャッシュメモリには、SRAMが使用されている。
【0005】
また、メインメモリは、外部記憶装置用のキャッシュメモリとして使用される。これにより、外部記憶装置に対するアクセスを減少させ、メインメモリの動作速度を向上させている。さらに、外部記憶装置や、いわゆる拡張カード等にもキャッシュメモリが設けられる場合がある。例えば、HDD装置には、磁気ディスクの一部のデータを保持するキャッシュメモリが設けられている。これにより、磁気ディスクに対するアクセスを減少させ、HDD装置のデータ転送速度を向上させている。このように、メインメモリ、拡張カード、HDD装置等に設けられたキャッシュ装置は、ディスクキャッシュと呼ばれる。
【0006】
これらのディスクキャッシュには、一般に、先読み(Look Ahead)と呼ばれるデータの読出方法が採用されている。先読みデータ読出方法は、ホスト装置から要求される領域の要求データの読出が終了した後、その要求データに続く領域のデータも併せて読み出す方法である。これにより、アドレスが連続的に大きくなる順方向の読出のキャッシュヒット率を向上させている。
【0007】
図12は、従来のディスクキャッシュのデータ読出方法を示す図である。
図12において、ホスト装置は、HDD装置に対しデータの読出および書込を要求する装置を意味する。ホスト装置およびHDD装置は、それぞれキャッシュメモリを有し、これらの装置のキャッシュメモリ間でデータを授受する。この場合、ホスト装置のキャッシュメモリが上位のキャッシュメモリとなり、HDD装置のキャッシュメモリが下位のキャッシュメモリとなる。ここで、ホスト装置およびHDD装置のそれぞれのキャッシュメモリには、アプリケーションから要求されるデータD1を保持していないものとする。
【0008】
アプリケーションからホスト装置にデータD1が要求されると、ホスト装置では、キャッシュミスとなるので、データD1と、このデータD1に連続するアドレスのデータD2とを含むデータD3がHDD装置に要求される。HDD装置では、キャッシュミスとなるので、ホスト装置から要求されたデータD3が磁気ディスクから読み出され、キャッシュメモリに保持され、さらに、ホスト装置に転送される。これにより、ホスト装置のキャッシュメモリには、データD3が保持される。さらに、HDD装置では、転送されたデータD3に続くアドレスのデータ4が磁気ディスクから読み出され、キャッシュメモリに保持される。
【0009】
さらに、この種の先読みデータ読出方法としては、例えば、特開平11−110139号公報のデータ読取方法および装置が開示されている。このデータ読取方法および装置では、アドレスが連続的に小さくなる逆方向の読出が検出されたとき、ホスト装置から要求される領域の要求データの読出が終了した後、その要求データより前のアドレスを読み出し、これにより、アドレスが連続的に小さくなる逆方向の読出のキャッシュヒット率を向上させている。
【0010】
【発明が解決しようとする課題】
しかしながら、従来のキャッシュメモリのデータ保持方法にあっては、ホスト装置およびHDD装置のそれぞれのキャッシュメモリに同じデータが保持される。アプリケーションからホスト装置にデータの読出が要求され、ホスト装置のキャッシュメモリがヒットした場合、そのデータは、ホスト装置から上位側に転送される。HDD装置にデータの読出が要求されることはない。したがって、HDD装置のキャッシュメモリに同じデータを保持しても有効に利用されないことになる。
【0011】
本発明は、かかる問題点を解決するためになされたものであり、その目的は、上位および下位のキャッシュメモリに共通のデータを保持しない、あるいは、上位および下位のキャッシュメモリに共通に保持されるデータを少なくすることで、それぞれのキャッシュメモリに効率良くデータを保持することができるキャッシュメモリの制御方法、コンピュータシステム、ハードディスクドライブ装置およびハードディスク制御装置を提供するにある。
【0012】
【課題を解決するための手段】
この発明に係るキャッシュメモリの制御方法は、拡張バスに任意の周辺装置を拡張して接続するための周辺装置接続手段と、その周辺装置接続手段からCPU側の回路に配置され、ハードディスクドライブ装置への書き込みデータあるいは読み出しデータを保持する上位のディスクキャッシュと、周辺装置接続手段からCPU側の回路に配置され、上位のディスクキャッシュへの記憶と読み出しを制御し、複数種類のスワップモードで動作できる上位のキャッシュ制御機能を含む上位のハードディスク制御機能を有する上位の制御手段と、周辺装置接続手段と接続され、ハードディスクドライブ装置への書き込みデータあるいは読み出しデータを保持する下位のディスクキャッシュと、その下位のディスクキャッシュへの記憶と読み出しを制御し、少なくとも1種類のスワップモードで動作できる下位のキャッシュ制御装置を含む下位のハードディスク制御装置とを有するハードディスクドライブ装置とを備えるコンピュータシステムにおいて、
システムの起動時に、下位のハードディスク制御装置では、上位の制御手段に向けて、下位のキャッシュ制御装置が選択可能な少なくとも1種類のスワップモードを送信し、
上位の制御手段では、受信したスワップモード以外から1種類のスワップモードを選択することを特徴とするものである。
【0013】
また、この発明に係るディスクキャッシュの制御方法は、システムの起動時に、下位のハードディスク制御装置では、1種類のスワップモードを送信すると共に、送信したスワップモードを選択するようにしても良く、
あるいは、システムの起動時に、下位のハードディスク制御装置では、複数種類のスワップモードを送信し、上位の制御手段では、選択したスワップモードを下位のハードディスク制御装置に送信し、さらに、下位のハードディスク制御装置では、上位の制御手段から受信したスワップモード以外の1種類のスワップモードを選択するようにしても良く、
あるいは、システムの起動時に、下位のハードディスク制御装置では、上位の制御手段に向けて、下位のキャッシュ制御装置が選択可能な複数種類のスワップモードを送信し、上位の制御手段では、受信したスワップモードから1種類のスワップモードを選択してそのスワップモードを下位のハードディスク制御装置に送信し、下位のハードディスク制御装置では、上位の制御手段から受信したスワップモード以外から1種類のスワップモードを選択するようにしても良い。
【0014】
また、この発明に係るディスクキャッシュの制御方法は、上位の制御手段が、少なくとも1種類のスワップモードで動作できる上位のキャッシュ制御機能を含む上位のハードディスク制御機能を有し、下位のハードディスク制御装置が、複数種類のスワップモードで動作できるコンピュータシステムの場合、
システムの起動時に、上位の制御手段では、下位のハードディスク制御装置に向けて、上位のキャッシュ制御装置が選択可能な少なくとも1種類のスワップモードを送信し、下位のハードディスク制御装置では、受信したスワップモード以外から1種類のスワップモードを選択しても良く、
あるいは、システムの起動時に、上位の制御手段では、1種類のスワップモードを送信すると共に、その送信したスワップモードを選択しても良く、
あるいは、システムの起動時に、上位の制御手段は、複数種類のスワップモードを送信し、下位のハードディスク制御装置では、選択したスワップモードを上位の制御手段に送信し、上位の制御手段では、下位のハードディスク制御装置から受信したスワップモード以外から1種類スワップモードを選択するようにしても良い。
【0015】
また、この発明に係るディスクキャッシュの制御方法は、上位の制御手段から下位のハードディスク制御装置に下位のディスクキャッシュのデータ転送が要求された時、下位のハードディスク制御装置は、下位のディスクキャッシュから転送されたデータを消去するようにしても良く、
あるいは、下位のハードディスク制御装置が、下位のディスクキャッシュの消去されたデータの後に、上位の制御手段から要求されたデータに基づいて、上位の制御手段から次回に要求されると予測されるデータを保持させるようにしても良く、
あるいは、上位の制御手段が、データ転送が要求されたデータが上位のディスクキャッシュに保持されていない時、要求されたデータに加えて、要求されたデータに基づいて次回に要求されると予測されるデータを下位のハードディスク制御装置に要求し、下位のハードディスク制御装置が、要求されたデータを上位の制御手段に転送すると共に、その要求されたデータに基づいて次回に要求されると予測されるデータを保持する用にしても良く、
あるいは、上位の制御手段の予測データが、今回要求されたデータに基づいて次回に要求されると予測されるデータであり、下位のハードディスク制御装置の予測データは、上位の制御手段の予測データを含むデータに基づいて次回に要求されると予想されるデータであるようにしても良い。
【0016】
この発明に係るコンピュータシステムは、拡張バスに任意の周辺装置を拡張して接続するための周辺装置接続手段と、
その周辺装置接続手段からCPU側の回路に配置され、ハードディスクドライブ装置への書き込みデータあるいは読み出しデータを保持する上位のディスクキャッシュと、
周辺装置接続手段からCPU側の回路に配置され、上位のディスクキャッシュへの記憶と読み出しを制御し、複数種類のスワップモードで動作できる上位のキャッシュ制御機能を含み、複数種類から1種類のスワップモードを選択する上位のハードディスク制御機能を有する上位の制御手段と、
周辺装置接続手段と接続され、ハードディスクドライブ装置への書き込みデータあるいは読み出しデータを保持する下位のディスクキャッシュと、その下位のディスクキャッシュへの記憶と読み出しを制御し、少なくとも1種類のスワップモードで動作できる下位のキャッシュ制御装置を含み、システム起動時に上位の制御手段に向けて下位のキャッシュ制御装置が選択可能な少なくとも1種類のスワップモードを送信する下位のハードディスク制御装置とを有するハードディスクドライブ装置とを備えるものである。
【0017】
また、この発明に係るコンピュータシステムは、下位のハードディスク制御装置は、システムの起動時に1種類のスワップモードを送信し、その送信したスワップモードを選択するようにしても良く、
あるいは、下位のハードディスク制御装置は、システムの起動時に複数種類のスワップモードを送信し、上位の制御手段からスワップモードを受信したら、その受信したスワップモード以外から1種類のスワップモードを選択し、上位の制御手段は、下位のハードディスク制御装置から受信した複数種類のスワップモードを受信したら、その複数種類のスワップモードから1種類のスワップモードを選択し、その選択したスワップモードを下位のハードディスク制御装置に送信するようにしても良い。
【0018】
また、この発明に係るコンピュータシステムは、上位の制御手段が、下位のハードディスク制御装置から受信したスワップモード以外の1種類のスワップモードを複数種類から選択し、その選択したスワップモードを下位のハードディスク制御装置に送信する上位のハードディスク制御機能を有し、
ハードディスクドライブ装置の下位のハードディスク制御装置が、少なくとも1種類のスワップモードで動作できる下位のキャッシュ制御装置を含み、システム起動時に上位の制御手段に向けて下位のキャッシュ制御装置が選択可能な少なくとも1種類のスワップモードを送信し、上位の制御手段からスワップモードを受信したら、その受信したスワップモード以外から1種類のスワップモードを選択するようにしても良い。
【0019】
この発明に係るコンピュータシステムは、上位の制御手段が、少なくとも1種類のスワップモードで動作できる上位のキャッシュ制御機能を含み、システムの起動時に下位のハードディスク制御装置に向けて、上位のキャッシュ制御装置が選択可能な少なくとも1種類のスワップモードを送信する上位のハードディスク制御機能を有し、
ハードディスクドライブ装置の下位のハードディスク制御装置が、下位のディスクキャッシュへの記憶と読み出しを制御し、複数種類のスワップモードで動作でき、上位の制御手段から受信したスワップモード以外から1種類のスワップモードを選択する下位のキャッシュ制御装置を含む下位のハードディスク制御装置とを有するようにしても良い。
【0020】
また、この発明に係るコンピュータシステムは、上位の制御手段が、システムの起動時に1種類のスワップモードを送信すると共に、その送信したスワップモードを選択するようにしても良く、
あるいは、上位の制御手段が、システムの起動時に複数種類のスワップモードを送信し、下位のハードディスク制御装置からスワップモードを受信したら、その受信したスワップモード以外から1種類スワップモードを選択し、下位のハードディスク制御装置が、選択したスワップモードを上位の制御手段に送信するようにしても良く、
あるいは、下位のハードディスク制御装置が、上位の制御手段から下位のディスクキャッシュのデータ転送が要求された時、下位のディスクキャッシュから転送したデータを消去し、消去されたデータの後に、上位の制御手段から要求されたデータに基づいて、上位の制御手段から次回に要求されると予測されるデータを保持させるようにしても良く、
あるいは、上位の制御手段が、データ転送が要求されたデータが上位のディスクキャッシュに保持されていない時、要求されたデータに加えて、要求されたデータに基づいて次回に要求されると予測されるデータを下位のハードディスク制御装置に要求し、下位のハードディスク制御装置が、要求されたデータを上位の制御手段に転送すると共に、その要求されたデータに基づいて次回に要求されると予測されるデータを保持するようにしても良く、
あるいは、上位のディスクキャッシュが、周辺装置接続手段に内蔵されるディスクキャッシュであり、上位の制御手段は、周辺装置接続手段に内蔵され、上位のキャッシュ制御装置を含む上位のハードディスク制御装置であるようにしても良く、
あるいは、上位のディスクキャッシュが、CPUが有するキャッシュであるか、あるいは、CPUに接続されるキャッシュであり、上位の制御手段が、CPU自体であるようにしても良く、
あるいは、上位のディスクキャッシュが、CPUと拡張バスを接続するためのブリッジ回路に接続されるメインメモリ内のキャッシュであり、上位の制御手段 が、ブリッジ回路内のメインメモリ制御装置であるようにしても良く、
あるいは、周辺装置接続手段が、拡張バスに任意の周辺装置を拡張して接続できる拡張カードであるようにしても良い。
【0021】
この発明に係るハードディスクドライブ装置は、上記した本発明のコンピュータシステムの何れかで用いられるものであり、さらに、この発明に係るハードディスク制御装置は、本発明のハードディスクドライブ装置で用いられるものである。
【0022】
【発明の実施の形態】
以下、この発明に係るキャッシュメモリの制御方法およびコンピュータスシステムの好ましい実施の形態を図面を参照して説明する。
実施の形態1.
この発明に係る実施の形態1のキャッシュメモリの制御方法は、上位および下位のキャッシュメモリをそれぞれ異なるスワップモードで動作させる。スワップとは、キャッシュメモリの記憶容量に空きがないとき、新たに保持すべきデータと既に保持されているデータとを入れ替えることをいう。
【0023】
スワップモードとしては、主に、LRU(Least Recently Used )モード、LFU(Least Frequently Used )モード、FIFO(first−in first−out)モードが使用される。LRUモードは、使用されない時間が最も長いデータをスワップアウトするモードである。LFUモードは、使用頻度が最も少ないデータをスワップアウトするモードである。FIFOモードは、先に保持されたデータから順次にスワップアウトするモードである。なお、スワップモードは、これに限るものではなく、例えば、複数のセグメントのうち、セグメントに含まれるデータ量が最も少ないセグメントをスワップアウトするスワップモード等、種々の方法(スワップモード)を使用することができる。
【0024】
上位および下位のキャッシュメモリを同じスワップモードで動作させると、それぞれのキャッシュメモリに同じ性質のデータが残される。例えば、上位および下位のキャッシュメモリを同じLRUモードで動作させた場合、使用されない時間が最も長いデータがスワップアウトされるため、最近使用されたデータがそれぞれのキャッシュメモリに残される。上位および下位のキャッシュメモリを同じLFUモードで動作させた場合、使用頻度が少ないデータがスワップアウトされるため、使用頻度の多いデータがそれぞれのキャッシュメモリに残される。上位および下位のキャッシュメモリを同じFIFOモードで動作させた場合、先に保持されたデータがそれぞれのキャッシュメモリから順次にスワップアウトされるため、最近使用されたデータがそれぞれのキャッシュメモリに残される。
【0025】
これに対し、例えば、上位のキャッシュメモリをLFUモードで動作させ、下位のキャッシュメモリをFIFOモードで動作させた場合には、上位のキャッシュメモリには、使用頻度の多いデータが残され、下位のキャッシュメモリには、最近使用されたデータが残される。このように、それぞれのキャッシュメモリには、性質が異なるデータが残されるため、双方のキャッシュメモリに同じデータが保持される可能性を小さくすることができる。すなわち、上位のキャッシュメモリに保持されたデータを下位のキャッシュメモリが保持する可能性を小さくすることができるので、それぞれのキャッシュメモリに効率良くデータを保持することができる。
【0026】
望ましくは、上位および下位のキャッシュメモリには、性質が異なるスワップモードを組み合わせるとよい。似通った性質のスワップモードを組み合わせる場合よりも、双方のキャッシュメモリに異なるデータが残される確率が高くなり、キャッシュメモリを一層効率良く利用することができるからである。ただし、ヒット率を低減させるようなスワップモードを使用すべきでない。データの局所性を利用するキャッシュメモリ本来の機能を発揮することができないからである。
【0027】
次に、このキャッシュメモリの制御方法を実現するコンピュータシステムについて説明する。
図1は、この発明に係る実施の形態1のコンピュータシステムの概略構成を示す図である。
図1に示すように、このコンピュータシステムは、CPU11、2次キャッシュ13、第1ブリッジ回路14およびメインメモリ15を備える。CPU11は、1次キャッシュ12を有する。CPU11には、外部バス10aを介して2次キャッシュ13が接続されている。また、CPU11には、外部バス10bを介して第1ブリッジ回路14が接続されている。第1ブリッジ回路14には、外部バス10cを介してメインメモリ15が接続されている。1次キャッシュ12および2次キャッシュ13は、例えばSRAMにより構成されている。1次キャッシュ12は、例えば、数十K〜数百KB(B;byte)の記憶容量を有する。2次キャッシュ13は、例えば、数百K〜数MBの記憶容量を有する。メインメモリ15は、例えばDRAMにより構成されている。メインメモリ15は、例えば、数十M〜数百MBの記憶容量を有する。
【0028】
第1ブリッジ回路14には、周辺装置を拡張するための拡張バス20が接続されている。拡張バス20は、例えばPCI(Peripheral Component Interconnect )バスにより構成されている。第1ブリッジ回路14は、例えば、図示しない、クロック発生器、CPUインタフェース、2次キャッシュコントローラ、メインメモリコントローラ、PCIバスインタフェース等の機能を有する。
【0029】
拡張バス20には、HDC(Hard Disk Controller)カード21が接続されている。さらに、HDCカード21には、バス24aを介してHDD(hard disk drive )装置22が接続され、バス24bを介してCD−ROM装置23が接続されている。バス24aおよびバス24bは、例えばATA(AT Attachment )/ATAPI(ATA packet interface)バスにより構成されている。HDCカード21は、HDD装置の増設やHDD装置の制御機能を拡張するために使用される。
【0030】
なお、HDCカード21は、HDD装置22の制御機能を拡張するものに限るものはなく、キャッシュメモリを有する拡張カードであればよい。例えば、SCSI(Small Computer System Interface )カードのようなものでもよい。また、拡張バス20は、PCIバスに限るものではなく、バス24aおよびバス24bは、ATA/ATAPIバスに限るものではない。
【0031】
図2は、図1に示されるHDD装置の概略構成を示す図である。
図2に示されるように、HDD装置22は、データが記録される記録面を有する磁気ディスク41と、図示しない記録用および再生用の磁気ヘッドを有するヘッドスライダ43とを備える。
【0032】
磁気ディスク41は、スピンドルモータ42の回転軸に固定して取り付けられ、スピンドルモータ42により回転駆動される。ヘッドスライダ43は、ヘッドアーム44の先端部分に固定されている。ヘッドアーム44は、アクチュエータ45に取り付けられ、ヘッドスライダ43を弾性支持する。ヘッドアーム44は、アクチュエータ45により磁気ディスク41の記録面の上空を回動駆動される。これにより、ヘッドスライダ43は、磁気ディスク41の略半径方向を移動し、磁気ディスク41の記録面の任意の位置のデータがアクセスされる。
【0033】
なお、磁気ディスク41は、1枚以上あればよく、その片面もしくは両面に記録面が形成される。ヘッドスライダ43およびヘッドアーム44は、磁気ディスク41の記録面に対応して設けられる。
【0034】
磁気ディスク41、スピンドルモータ42、ヘッドスライダ43、ヘッドアーム44およびアクチュエータ45から構成される駆動機構は、制御回路50により制御される。制御回路50は、HDC(Hard Disk Controller)51、制御用メモリ53、ディスクキャッシュ54およびホストI/F55を備える。これらは、バス56を介して相互に接続されている。
【0035】
HDC51は、制御用メモリ53に記憶された制御プログラム、制御データに従って、HDD装置22全体を制御する。HDC51は、サーボ制御やデータの記録/再生時の誤り制御のための演算処理を実行することにより、スピンドルモータ42およびアクチュエータ45を駆動し、記録用の磁気ヘッドを介して磁気ディスク41にデータを記録するとともに、再生用の磁気ヘッドを介して磁気ディスク41からデータを再生して読み出す。HDC51には、磁気ディスク41に記録されるデータの一部をディスクキャッシュ54に保持するためのキャッシュコントローラ52が設けられている。
【0036】
制御用メモリ53には、HDC51により実行される制御プログラム、この制御プログラムに使用される制御データが記憶されている。ディスクキャッシュ54は、磁気ディスク41に記録される書込データを一時的に記憶するとともに、磁気ディスク41から読み出された読出データを一時的に記憶するバッファメモリの機能を有する。ホストI/F55には、バス21aを介してHDCカード21が接続されている。ホストI/F55は、HDCカード21との間でデータを送受するインタフェース回路である。
【0037】
ディスクキャッシュ54は、上記のように、磁気ディスク41に記録されるデータの一部を保持するキャッシュメモリの機能を有する。ディスクキャッシュ54は、下位のキャッシュメモリに相当する。ディスクキャッシュ54は、例えば、DRAMからなり、数M〜数十MBの記憶容量を有する。キャッシュ制御は、キャッシュコントローラ52により行われる。キャッシュコントローラ52は、例えば、FIFOモードおよびLRUモードのスワップモードをサポートする。
【0038】
HDD装置22は、このコンピュータシステムの起動時にHDCカード(ホスト装置)21との間で設定情報を送受し、送受された設定情報に基づいてHDD装置22の初期設定を行う。このとき、HDD装置22は、例えば、自己の装置により選択可能なキャッシュメモリのスワップモード(FIFOモードおよびLRUモード)をHDCカード21に転送し、これに応じてHDCカード21から転送されたスワップモードを自己のキャッシュメモリのスワップモードとして選択する。
【0039】
図3は、図1に示されるHDCカード21の概略構成を示す図である。
図3に示されるように、HDCカード21は、HDC31、制御用メモリ33、ディスクキャッシュ34、I/Oポート35、I/Oポート36およびホストI/F37を備える。HDC31、制御用メモリ33、ディスクキャッシュ34およびホストI/F37は、バス38cを介して相互に接続されている。I/Oポート35は、バス38aを介してHDC31に接続され、I/Oポート36は、バス38bを介してHDC31に接続されている。
【0040】
HDC31は、制御用メモリ33に記憶された制御プログラム、制御データに従って、HDCカード21全体を制御する。HDC31には、HDD装置22に記憶されるデータの一部をディスクキャッシュ34に保持するためのキャッシュコントローラ32が設けられている。
【0041】
制御用メモリ33には、HDC31により実行される制御プログラム、この制御プログラムに使用される制御データが記憶されている。ディスクキャッシュ34は、HDD装置22に記憶される書込データを一時的に記憶するとともに、HDD装置22から読み出された読出データを一時的に記憶するバッファメモリの機能を有する。I/Oポート35には、バス24aを介してHDD装置22が接続され、I/Oポート36には、バス24bを介してCD−ROM装置23が接続されている。ホストI/F37には、拡張バス20が接続されている。ホストI/F37は、拡張バス20を介してデータを送受するインタフェース回路である。
【0042】
ディスクキャッシュ34は、上記のように、HDD装置22に記憶されるデータの一部を保持するキャッシュメモリの機能を有する。ディスクキャッシュ34は、HDD装置22に設けられたディスクキャッシュ54に対して上位のキャッシュメモリに相当する。ディスクキャッシュ34は、例えば、DRAMからなり、数M〜数十MBの記憶容量を有する。キャッシュ制御は、キャッシュコントローラ32により行われる。キャッシュコントローラ32は、例えば、FIFOモード、LRUモードおよびLFUモードをサポートする。
【0043】
HDCカード21は、このコンピュータシステムの起動時にHDD装置(下位装置)22との間で設定情報を送受し、送受された設定情報に基づいてHDCカード21の初期設定を行う。このとき、HDCカード21は、例えば、HDD装置22から転送されたキャッシュメモリのスワップモードの中からHDD装置22が選択すべきスワップモードを選択し、HDD装置22に転送し、さらに、HDD装置22に転送されたスワップモードと異なるスワップモードを自己のキャッシュメモリのスワップモードとして選択する。なお、どのスワップモードを選択するかは、その優先順位があらかじめ設定されている。
【0044】
図4は、キャッシュメモリのスワップモードを選択する動作の一例を示すシーケンス図である。
コンピュータシステムが起動されると、HDD装置22が選択可能なキャッシュメモリのスワップモード(FIFOモードおよびLRUモード)が、HDD装置22からHDCカード21に転送される(ステップS1)。HDCカード21では、HDD装置22からスワップモードが転送されると(ステップS2)、あらかじめ設定された優先順位に従って、受信されたスワップモードの中からHDD装置22が選択すべきスワップモード(FIFOモード)が選択され(ステップS3)、選択されたスワップモードがHDD装置22に応答される(ステップS4)。
【0045】
HDD装置22では、HDCカード21からスワップモードが転送されると(ステップS5)、転送されたスワップモードが自己のキャッシュメモリのスワップモードに選択される(ステップS6)。一方、HDCカード21では、あらかじめ設定された優先順位に従って、HDD装置22のスワップモードと異なるスワップモード(LRUモード)が自己のキャッシュメモリのスワップモードに選択される(ステップS7)。
【0046】
キャッシュメモリのスワップモードを選択する方法は、図5に示されるシーケンスにより行うこともできる。HDD装置22は、デフォルトのスワップモード(FIFOモード)があらかじめ設定されているものとする。
【0047】
コンピュータシステムが起動されると、HDD装置22にデフォルトで設定されているスワップモード(FIFOモード)が、HDD装置22からHDCカード21に転送される(ステップS11)。HDCカード21では、HDD装置22のスワップモードが転送されると(ステップS12)、あらかじめ設定された優先順位に従って、HDD装置22のスワップモードと異なるスワップモード(LFUモード)が自己のキャッシュメモリのスワップモードに選択される(ステップS13)。
【0048】
さらに、HDCカード21がHDD装置22のデフォルトのスワップモードと異なるスワップモードを有しない場合には、その旨をHDCカード21からHDD装置22に転送し、HDD装置22がデフォルトのスワップモードと異なるスワップモードを選択するように構成することもできる。
【0049】
なお、図4の例においては、HDCカード21がスワップモードの決定権を有するが、HDCカード21とHDD装置22との立場を置き換え、HDD装置22がスワップモードの決定権を有するように構成することもできる。この場合、スワップモードの決定権を有しない装置は、少なくとも1つのスワップモードを有すればよい。また、図5の例においても、HDCカード21とHDD装置22との立場を置き換え、HDCカード21がデフォルトのスワップモードをHDD装置22に転送するように構成することもできる。
【0050】
このように、コンピュータシステムの起動時に、HDCカード21のキャッシュメモリ(上位のキャッシュメモリ)とHDD装置22のキャッシュメモリ(下位のキャッシュメモリ)との間でスワップモードを送受し、互いに異なるスワップモードを選択することができる。したがって、それぞれのキャッシュメモリに最適なスワップモードを選択することができる。
【0051】
なお、スワップモードを選択する動作は、上記の動作に限るものではなく、種々の方法により実現することができる。例えば、一方のキャッシュメモリが、自己が選択不能なスワップモードを他方のキャッシュメモリに転送し、他方のキャッシュメモリが、転送されたスワップモードの中から自己のスワップモードを選択するように構成することもできる。
【0052】
実施の形態2.
この発明に係る実施の形態2のキャッシュメモリの方法は、上位および下位のキャッシュメモリに共通のデータを保持しないようにするものであり、具体的には、下位のキャッシュメモリから上位のキャッシュメモリに転送されたデータを下位のキャッシュメモリから消去するものである。これにより、下位のキャッシュメモリに一層効率良くデータを保持することができる。
【0053】
図6は、この発明に係る実施の形態2のコンピュータシステムの概略構成を示す図である。
なお、図1に示される実施の形態1のコンピュータシステムの各部と同様の構成には同一符号を付し、その説明を省略する。
【0054】
図6に示されるように、拡張バス20には、第2ブリッジ回路71が接続されている。第2ブリッジ回路71には、バス70を介して図示しない周辺装置が接続可能とされ、バス74aを介してHDD装置72が接続され、バス74bを介してCD−ROM装置73が接続されている。バス70は、例えばISA(Industry Standard Architecture)バスから構成されている。バス74aおよびバス74bは、例えばATA(AT Attachment )/ATAPI(ATA packet interface)バスにより構成されている。
【0055】
第2ブリッジ回路71は、拡張バス20と規格が異なる拡張バスに周辺装置を接続するために設けられている。第2ブリッジ回路71は、PCIバスインタフェース、割込コントローラ、DMA(direct memory access)コントローラ、ISAバスインタフェース等の機能を有する。なおバス70は、ISAバスに限るものではなく、バス74aおよびバス74bは、ATA/ATAPIバスに限るものではない。
【0056】
メインメモリ15は、CPU11の命令に従って、HDD装置72との間でデータを授受する。このメインメモリ15には、HDD装置72に記憶されるデータの一部を保持するためのディスクキャッシュ16が設けられている。ディスクキャッシュ16は、HDD装置72に設けられたディスクキャッシュ75に対して上位のキャッシュメモリに相当する。ディスクキャッシュ16は、例えば、数M〜数十MBの記憶容量を有する。キャッシュ制御は、第1ブリッジ回路14に設けられたメインメモリコントローラ17により行われる。
【0057】
メインメモリ15のディスクキャッシュ16(正確には、メインメモリコントローラ17)は、CPU11から要求されたデータが保持されていないとき、CPU11から要求されたデータと、CPU11から次回に要求されると予測されるデータとを含むデータをHDD装置72に要求し、この要求に応じてHDD装置72から転送されたデータを保持する。次回に要求されると予測されるデータとしては、例えば、CPU11から前回に要求されたデータや、CPU11から要求されたデータの先読み(Look Ahead)データが使用される。
【0058】
HDD装置72は、図1に示されるHDD装置22と同様の構成であり、下位のキャッシュメモリの機能を有するディスクキャッシュ75を備えるが、キャッシュ制御方法が、HDD装置22のディスクキャッシュ54のキャッシュ制御方法と異なる。ディスクキャッシュ75は、HDD装置72から読み出されたデータを消去するように構成されている。ディスクキャッシュ75は、例えば、数M〜数十MB(byte)の記憶容量を有する。
【0059】
HDD装置72のディスクキャッシュ75(正確には、図示しないキャッシュコントローラ)は、メインメモリ15から要求されたデータが保持されていないとき、メインメモリ15から要求されたデータと、メインメモリ15から次回に要求されると予測されるデータとを含むデータを磁気ディスク41から読み出す。ディスクキャッシュ75は、まず、メインメモリ15から要求されたデータを保持し、保持されたデータをメインメモリ15に転送する。ディスクキャッシュ75は、メインメモリ15から要求されたデータがメインメモリ15に転送されると、当該データを消去し、メインメモリ15から次回に要求されると予測される予測データを保持する。次回に要求されると予測されるデータとしては、例えば、メインメモリ15から要求されたデータの先読みデータが使用される。
【0060】
なお、本明細書における「消去」とは、メインメモリに転送されたデータを単に消去することのみならず、例えば、前記データと同時にメモリ管理領域に保持される前記データの制御データ(タグ、有効フラグ等)の内容を更新し、これらの領域を空き領域として指定する等の、前記データの消去に関連する処理を含む。
【0061】
図7は、キャッシュメモリのデータ保持動作の一例を示す図である。
メインメモリ15のディスクキャッシュ16(ホスト装置のキャッシュメモリ)およびHDD装置72のディスクキャッシュ75(下位装置のキャッシュメモリ)には、CPU11(アプリケーション)から要求されるデータが保持されていないものとする。
【0062】
アプリケーションからメインメモリ15にデータが要求されると、メインメモリ15のディスクキャッシュ16では、キャッシュミスとなるので、アプリケーションから要求されたデータと、アプリケーションから次回に要求されると予測されるデータとを含むデータAがHDD装置72に要求される。HDD装置72のディスクキャッシュ75では、キャッシュミスとなるので、メインメモリ15から要求されたデータAが磁気ディスク41から読み出され、ディスクキャッシュ75に保持され、さらに、メインメモリ15に転送される。これにより、メインメモリ15のディスクキャッシュ16には、データAが保持される。
【0063】
さらに、HDD装置72では、データAがメインメモリ15に転送されると、当該データAがディスクキャッシュ75から消去される。次いで、ホスト装置では、転送されたデータAに続くアドレスのデータBが磁気ディスク41から読み出され、ディスクキャッシュ75に保持される。
【0064】
図12に示される従来のデータ読出方法と比較すると、従来のHDD装置のキャッシュメモリには、ホスト装置から要求されたデータD3と、このデータD3に続くアドレスのデータ4(先読みデータ)とが保持される。これに対し、実施の形態2のHDD装置のキャッシュメモリには、ホスト装置から要求されたデータAは保持されず、データAに続くアドレスのデータB(先読みデータ)が保持される。
【0065】
このため、双方の記憶容量が同じ場合、従来のHDD装置よりも実施の形態1のHDD装置のキャッシュメモリのほうが、より多くの先読みデータを保持することができる。図12において、データB1は、従来のHDD装置のキャッシュメモリに保持することができる先読みデータD4を意味し、データB2は、データAがキャッシュメモリから消去されることで磁気ディスクから読み出されるデータB1に続く先読みデータを意味する。これにより、データの空間的な局所性を利用し、キャッシュメモリのヒット率を向上させることができる。したがって、キャッシュメモリに効率良くデータを保持することができる。
【0066】
なお、データの局所性には、時間的な局所性と空間的な局所性とがある。時間的な局所性とは、同じアドレスのデータが繰り返しアクセスされる可能性が高いことを意味する。空間的な局所性とは、アクセスされたデータの近くのアドレスに存在するデータがアクセスされる可能性が高いことを意味する。
【0067】
図8〜図11は、キャッシュメモリのデータ保持動作の他の例を示す図である。
図8に示されるように、メインメモリ15のディスクキャッシュ16は、アプリケーションから次回に要求されると予測されるデータとして、アプリケーションから前回に要求されたデータA2を使用する。これにより、データの時間的な局所性を利用し、ディスクキャッシュ16のヒット率を向上させることができる。
【0068】
図9に示されるように、メインメモリ15のディスクキャッシュ16は、アプリケーションから次回に要求されると予測されるデータとして、アプリケーションから要求されたデータA1の先読みデータA2を使用する。これにより、データの空間的な局所性を利用し、ディスクキャッシュ16のヒット率を向上させることができる。
【0069】
図10の例では、メインメモリ15のディスクキャッシュ16は、複数のセグメント(Segment)、例えば、Segment1、Segment2およびSegment3の3つのセグメントを有する。Segment1、Segment2およびSegment3には、アプリケーションから順次に発行されるコマンド(command)により、HDD装置72に要求されたデータが繰り返し保持される。
【0070】
Segment1には、アプリケーションのcommand1により要求されたデータA1と、データA1の先読みデータA2が保持されている。Segment2には、アプリケーションのcommand2により要求されたデータA3と、データA3の先読みデータA4が保持されている。Segment3には、アプリケーションのcommand3により要求されたデータA5と、データA5の先読みデータA6が保持されている。このように、キャッシュメモリを複数のセグメントにより構成することにより、データの時間的な局所性を利用し、ディスクキャッシュ16のヒット率を向上させることができる。
【0071】
一方、HDD装置72のディスクキャッシュ75には、メインメモリ15から要求された最新のデータA5およびA6の先読みデータBが保持されている。これにより、データの空間的な局所性を利用し、ディスクキャッシュ75のヒット率を向上させることができる。
【0072】
図11の例では、HDD装置72のディスクキャッシュ75も、複数のセグメント、例えば、Segment1、Segment2およびSegment3の3つのセグメントを有する。メインメモリ15のディスクキャッシュ16のSegment1、Segment2およびSegment3のそれぞれには、アプリケーションから順次に要求されたcommand1、command2およびcommand3に対応してHDD装置72に要求したデータA1、A2およびA3が保持されている。HDD装置72のディスクキャッシュ75のSegment1、Segment2およびSegment3のそれぞれには、メインメモリ15から要求されたデータA1、A2およびA3のそれぞれの先読みデータC1、C2およびC3が保持されている。これにより、データの時間的な局所性を利用し、ディスクキャッシュ75のヒット率を向上させることができる。
【0073】
なお、複数のセグメントを配置する方法は、これに限るものではなく、例えば、ダイレクト・マッピング、フル・アソシアティブ、セット・アソシアティブ等の従来良く知られる方法を採用することもできる。また、各セグメントの大きさは、固定長に限るものではなく、可変長にすることもできる。
【0074】
なお、実施の形態2では、メインメモリ15のディスクキャッシュ16(上位のキャッシュメモリ)およびHDD装置72のディスクキャッシュ75(下位のキャッシュメモリ)の2段階の記憶階層おいて、下位のキャッシュメモリが、上位のキャッシュメモリに転送されたデータを保持しないようにしている。これに対し、実施の形態1のように、メインメモリ、拡張カードおよびHDD装置の3段階の記憶階層の場合には、例えば、拡張カードからメインメモリに転送されたデータを拡張カードのキャッシュメモリが保持せずに、HDD装置から拡張カードに転送されたデータをHDD装置のキャッシュメモリが保持しないようにすることができる。
【0075】
また、実施の形態1および2では、HDD装置を最下位のデータ記憶装置としているが、最下位のデータ記憶装置は、HDD装置に限るものではなく、例えば、磁気テープ装置、光磁気ディスク装置等のディスク装置でもよい。
【0076】
本発明は、特に、キャッシュメモリを有する周辺装置に好適である。一般に、1次キャッシュ、2次キャッシュおよびメインメモリは、あらかじめコンピュータのマザーボードに実装されるため、これらのメモリ間のデータ転送方法は、統合されたシステムとして最適設計がなされている。これに対し、拡張カード、HDD装置等の従来の周辺装置は、一般に個別に設計されるため、必ずしも上位の記憶階層との関係において最適設計がなされている訳ではない。本発明は、下位のキャッシュメモリができるだけ上位のキャッシュメモリと重複するデータを保持しないようにすることで、データの局所性を利用し、下位のキャッシュメモリのヒット率を向上させることができる。したがって、上位の記憶階層との関係において最適なデータ転送方法を実現することができる。
【0077】
また、本発明は、上位および下位のキャッシュメモリが同じ程度の記憶容量を有する場合に最も効果を発揮する。上位キャッシュメモリの記憶容量に対する下位のキャッシュメモリの記憶容量が極端に大きい場合には、上位のキャッシュメモリに保持されたデータと同じデータを下位のキャッシュメモリが保持しても、下位のキャッシュメモリの記憶容量に対する前記同じデータの割合は小さいからである。
【0078】
これに対し、上位および下位のキャッシュメモリが、それぞれ同じ程度の記憶容量を有する場合には、上位のキャッシュメモリに保持されたデータと同じデータを下位のキャッシュメモリが保持すると、下位のキャッシュメモリの記憶容量に対する前記同じデータの割合が大きくなる。したがって、上位のキャッシュメモリに転送されたデータの代わりに、先読みデータ等の他のデータを保持し、ヒット率を向上させる効果が相対的に大きくなる。
【0079】
【発明の効果】
この発明によれば、上位および下位のディスクキャッシュを、それぞれ異なるスワップモードで動作させることができる。これにより、上位のディスクキャッシュに保持されたデータを下位のディスクキャッシュが保持する可能性を小さくすることができるので、それぞれのディスクキャッシュに効率良くデータを保持することができる。
【0080】
また、この発明によれば、CPU側の回路であるホスト装置から下位のディスクキャッシュにデータの転送が要求されたとき、この要求に応じてホスト装置に転送されたデータが下位のディスクキャッシュから消去される。あるいは、上位のディスクキャッシュから下位のディスクキャッシュへのデータの転送が要求されたとき、この要求に応じて上位のディスクキャッシュに転送されたデータが下位のディスクキャッシュから消去される。これにより、下位のディスクキャッシュに一層効率良くデータを保持することができる。
【図面の簡単な説明】
【図1】この発明に係る実施の形態1のコンピュータシステムの概略構成を示す図である。
【図2】図1に示されるHDD装置の概略構成を示す図である。
【図3】図1に示されるHDCカード21の概略構成を示す図である。
【図4】キャッシュメモリのスワップモードを選択する動作の一例を示すシーケンス図である。
【図5】キャッシュメモリのスワップモードを選択する動作の他の例を示すシーケンス図である。
【図6】この発明に係る実施の形態2のコンピュータシステムの概略構成を示す図である。
【図7】キャッシュメモリのデータ保持動作の一例を示す図である。
【図8】キャッシュメモリのデータ保持動作の他の例を示す図である。
【図9】キャッシュメモリのデータ保持動作の他の例を示す図である。
【図10】キャッシュメモリのデータ保持動作の他の例を示す図である。
【図11】キャッシュメモリのデータ保持動作の他の例を示す図である。
【図12】従来のディスクキャッシュのデータ読出方法を示す図である。
【符号の説明】
10a、10b、10c 外部バス
11 CPU
12 1次キャッシュ
13 2次キャッシュ
14 第1コントローラ装置
15 メインメモリ
16 キャッシュ領域(上位のキャッシュメモリ)
17 キャッシュコントローラ
20 拡張バス
21 HDCカード(ハードディスク制御装置)
22 HDD装置
23 CD−ROM装置
24a、24b バス
31 HDC
32 キャッシュコントローラ
33 制御用メモリ
34 バッファメモリ(上位または下位のキャッシュメモリ)
35 I/Oポート
36 I/Oポート
37 ホストI/F
38a、38b バス
41 磁気ディスク
42 スピンドルモータ
43 ヘッドスライダ
44 ヘッドアーム
45 アクチュエータ
51 HDC
52 キャッシュコントローラ
53 制御用メモリ
54 バッファメモリ(下位のキャッシュメモリ)
55 ホストI/F
56 バス
70 バス
71 第2コントローラ装置
72 HDD装置
73 CD−ROM装置
74a、74b バス
75 バッファメモリ(下位のキャッシュメモリ)
Claims (27)
- 拡張バスに任意の周辺装置を拡張して接続するための周辺装置接続手段と、
該周辺装置接続手段からCPU側の回路に配置され、ハードディスクドライブ装置への書き込みデータあるいは読み出しデータを保持する上位のディスクキャッシュと、
前記周辺装置接続手段からCPU側の回路に配置され、前記上位のディスクキャッシュヘの記憶と読み出しを制御し、複数種類のスワップモードで動作できる上位のキャッシュ制御機能を含む上位のハードディスク制御機能を有する上位の制御手段と、
前記周辺装置接続手段と接続され、ハードディスクドライブ装置への書き込みデータあるいは読み出しデータを保持する下位のディスクキャッシュと、該下位のディスクキャッシュヘの記憶と読み出しを制御し、少なくとも1種類のスワップモードで動作できる下位のキャッシュ制御装置を含む下位のハードディスク制御装置とを有するハードディスクドライブ装置と
を備えるコンピュータシステムにおけるディスクキャッシュの制御方法であって、
システムの起動時に、下位のハードディスク制御装置では、上位の制御手段に向けて、下位のキャッシュ制御装置が選択可能な少なくとも1種類のスワップモードを送信し、
上位の制御手段では、受信したスワップモード以外から1種類のスワップモードを選択する
ことを特徴とするディスクキャッシュの制御方法。 - システムの起動時に、下位のハードディスク制御装置では、1種類のスワップモードを送信すると共に、送信したスワップモードを選択する
ことを特徴とする請求項1に記載のディスクキャッシュの制御方法。 - システムの起動時に、下位のハードディスク制御装置では、複数種類のスワップモードを送信し、
上位の制御手段では、選択したスワップモードを下位のハードディスク制御装置に送信し、
下位のハードディスク制御装置では、上位の制御手段から受信したスワップモード以外の1種類のスワップモードを選択する
ことを特徴とする請求項1に記載のディスクキャッシュの制御方法。 - 拡張バスに任意の周辺装置を拡張して接続するための周辺装置接続手段と、
該周辺装置接続手段からCPU側の回路に配置され、ハードディスクドライブ装置への書き込みデータあるいは読み出しデータを保持する上位のディスクキャッシュと、
前記周辺装置接続手段からCPU側の回路に配置され、前記上位のディスクキャッシュヘの記憶と読み出しを制御し、複数種類のスワップモードで動作できる上位のキャッシュ制御機能を含む上位のハードディスク制御機能を有する上位の制御手段と、
前記周辺装置接続手段と接続され、ハードディスクドライブ装置への書き込みデータあるいは読み出しデータを保持する下位のディスクキャッシュと、該下位のディスクキャッシュヘの記憶と読み出しを制御し、少なくとも1種類のスワップモードで動作できる下位のキャッシュ制御装置を含む下位のハードディスク制御装置とを有するハードディスクドライブ装置と
を備えるコンピュータシステムにおけるディスクキャッシュの制御方法であって、
システムの起動時に、下位のハードディスク制御装置では、上位の制御手段に向けて、下位のキャッシュ制御装置が選択可能な複数種類のスワップモードを送信し、
上位の制御手段では、受信したスワップモードから1種類のスワップモードを選択して該スワップモードを下位のハードディスク制御装置に送信し、
下位のハードディスク制御装置では、上位の制御手段から受信したスワップモード以外から1種類のスワップモードを選択する
ことを特徴とするディスクキャッシュの制御方法。 - 拡張バスに任意の周辺装置を拡張して接続するための周辺装置接続手段と、
該周辺装置接続手段からCPU側の回路に配置され、ハードディスクドライブ装置への書き込みデータあるいは読み出しデータを保持する上位のディスクキャッシュと、
前記周辺装置接続手段からCPU側の回路に配置され、前記上位のディスクキャッシュヘの記憶と読み出しを制御し、少なくとも1種類のスワップモードで動作できる上位のキャッシュ制御機能を含む上位のハードディスク制御機能を有する上位の制御手段と、
前記周辺装置接続手段と接続され、ハードディスクドライブ装置への書き込みデータあるいは読み出しデータを保持する下位のディスクキャッシュと、該下位のディスクキャッシュヘの記憶と読み出しを制御し、複数種類のスワップモードで動作できる下位のキャッシュ制御装置を含む下位のハードディスク制御装置と
を有するハードディスクドライブ装置と
を備えるコンピュータシステムにおけるディスクキャッシュの制御方法であって、
システムの起動時に、上位の制御手段では、下位のハードディスク制御装置に向けて、上位のキャッシュ制御装置が選択可能な少なくとも1種類のスワップモードを送信し、
下位のハードディスク制御装置では、受信したスワップモード以外から1種類のスワップモードを選択する
ことを特徴とするディスクキャッシュの制御方法。 - システムの起動時に、上位の制御手段では、1種類のスワップモードを送信すると共に、該送信したスワップモードを選択する
ことを特徴とする請求項5に記載のディスクキャッシュの制御方法。 - システムの起動時に、上位の制御手段は、複数種類のスワップモードを送信し、
下位のハードディスク制御装置では、選択したスワップモードを上位の制御手段に送信し、
上位の制御手段では、下位のハードディスク制御装置から受信したスワップモード以外から1種類のスワップモードを選択する
ことを特徴とする請求項5に記載のディスクキャッシュの制御方法。 - 上位の制御手段から下位のハードディスク制御装置に下位のディスクキャッシュのデータ転送が要求された時、下位のハードディスク制御装置は、下位のディスクキャッシュから転送されたデータを消去する
ことを特徴とする請求項1〜7の何れかに記載のディスクキャッシュの制御方法。 - 下位のハードディスク制御装置は、下位のディスクキャッシュの消去されたデータの後に、上位の制御手段から要求されたデータに基づいて、上位の制御手段から次回に要求されると予測されるデータを保持させる
ことを特徴とする請求項8に記載のディスクキャッシュの制御方法。 - 上位の制御手段は、データ転送が要求されたデータが上位のディスクキャッシュに保持されていない時、要求されたデータに加えて、要求されたデータに基づいて次回に要求されると予測されるデータを下位のハードディスク制御装置に要求し、
下位のハードディスク制御装置は、要求されたデータを上位の制御手段に転送すると共に、該要求されたデータに基づいて次回に要求されると予測されるデータを保持する
ことを特徴とする請求項9に記載のディスクキャッシュの制御方法。 - 上位の制御手段の予測データは、今回要求されたデータに基づいて次回に要求されると予測されるデータであり、
下位のハードディスク制御装置の予測データは、前記上位の制御手段の予測データを含むデータに基づいて次回に要求されると予想されるデータである
ことを特徴とする請求項10に記載のディスクキャッシュの制御方法。 - 拡張バスに任意の周辺装置を拡張して接続するための周辺装置接続手段と、
該周辺装置接続手段からCPU側の回路に配置され、ハードディスクドライブ装置への書き込みデータあるいは読み出しデータを保持する上位のディスクキャッシュと、
前記周辺装置接続手段からCPU側の回路に配置され、前記上位のディスクキャッシュへの記憶と読み出しを制御し、複数種類のスワップモードで動作できる上位のキャッシュ制御機能を含み、前記複数種類から1種類のスワップモードを選択する上位のハードディスク制御機能を有する上位の制御手段と、
前記周辺装置接続手段と接続され、ハードディスクドライブ装置への書き込みデータあるいは読み出しデータを保持する下位のディスクキャッシュと、該下位のディスクキャッシュヘの記憶と読み出しを制御し、少なくとも1種類のスワップモードで動作できる下位のキャッシュ制御装置を含み、システム起動時に上位の制御手段に向けて下位のキャッシュ制御装置が選択可能な少なくとも1種類のスワップモードを送信する下位のハードディスク制御装置とを有するハードディスクドライブ装置と
を備えることを特徴とするコンピュータシステム。 - 下位のハードディスク制御装置は、システムの起動時に1種類のスワップモードを送信し、該送信したスワップモードを選択する
ことを特徴とする請求項12に記載のコンピュータシステム。 - 下位のハードディスク制御装置は、システムの起動時に複数種類のスワップモードを送信し、上位の制御手段からスワップモードを受信したら、該受信したスワップモード以外から1種類のスワップモードを選択し、
上位の制御手段は、下位のハードディスク制御装置から受信した複数種類のスワップモードを受信したら、該複数種類のスワップモードから1種類のスワップモードを選択し、該選択したスワップモードを下位のハードディスク制御装置に送信する
ことを特徴とする請求項12に記載のコンピュータシステム。 - 拡張バスに任意の周辺装置を拡張して接続するための周辺装置接続手段と、
該周辺装置接続手段からCPU側の回路に配置され、ハードディスクドライブ装置への書き込みデータあるいは読み出しデータを保持する上位のディスクキャッシュと、
前記周辺装置接続手段からCPU側の回路に配置され、前記上位のディスクキャッシュヘの記憶と読み出しを制御し、複数種類のスワップモードで動作できる上位のキャッシュ制御機能を含み、下位のハードディスク制御装置から受信したスワップモード以外の1種類のスワップモードを前記複数種類から選択し、該選択したスワップモードを下位のハードディスク制御装置に送信する上位のハードディスク制御機能を有する上位の制御手段と、
前記周辺装置接続手段と接続され、ハードディスクドライブ装置への書き込みデータあるいは読み出しデータを保持する下位のディスクキャッシュと、該下位のディスクキャッシュヘの記憶と読み出しを制御し、少なくとも1種類のスワップモードで動作できる下位のキャッシュ制御装置を含み、システム起動時に上位の制御手段に向けて下位のキャッシュ制御装置が選択可能な少なくとも1種類のスワップモードを送信し、上位の制御手段からスワップモードを受信したら、該受信したスワップモード以外から1種類のスワップモードを選択する下位のハードディスク制御装置とを有するハードディスクドライブ装置と
を備えることを特徴とするコンピュータシステム。 - 拡張バスに任意の周辺装置を拡張して接続するための周辺装置接続手段と、
該周辺装置接続手段からCPU側の回路に配置され、ハードディスクドライブ装置への書き込みデータあるいは読み出しデータを保持する上位のディスクキャッシュと、
前記周辺装置接続手段からCPU側の回路に配置され、前記上位のディスクキャッシュヘの記憶と読み出しを制御し、少なくとも1種類のスワップモードで動作できる上位のキャッシュ制御機能を含み、システムの起動時に下位のハードディスク制御装置に向けて、上位のキャッシュ制御装置が選択可能な少なくとも1種類のスワップモードを送信する上位のハードディスク制御機能を有する上位の制御手段と、
前記周辺装置接続手段と接続され、ハードディスクドライブ装置への書き込みデータあるいは読み出しデータを保持する下位のディスクキャッシュと、該下位のディスクキャッシュヘの記憶と読み出しを制御し、複数種類のスワップモードで動作でき、上位の制御手段から受信したスワップモード以外から1種類のスワップモードを選択する下位のキャッシュ制御装置を含む下位のハードディスク制御装置とを有するハードディスクドライブ装置と
を備えることを特徴とするコンピュータシステム。 - 上位の制御手段は、システムの起動時に1種類のスワップモードを送信すると共に、該送信したスワップモードを選択する
ことを特徴とする請求項16に記載のコンピュータシステム。 - 上位の制御手段は、システムの起動時に複数種類のスワップモードを送信し、下位のハードディスク制御装置からスワップモードを受信したら、該受信したスワップモード以外から1種類スワップモードを選択し、
下位のハードディスク制御装置は、選択したスワップモードを上位の制御手段に送信する
ことを特徴とする請求項16に記載のコンピュータシステム。 - 下位のハードディスク制御装置は、上位の制御手段から下位のディスクキャッシュのデータ転送が要求された時、下位のディスクキャッシュから転送したデータを消去し、消去されたデータの後に、上位の制御手段から要求されたデータに基づいて、上位の制御手段から次回に要求されると予測されるデータを保持させる
ことを特徴とする請求項12〜18の何れかに記載のコンピュータシステム。 - 上位の制御手段は、データ転送が要求されたデータが上位のディスクキャッシュに保持されていない時、要求されたデータに加えて、要求されたデータに基づいて次回に要求されると予測されるデータを下位のハードディスク制御装置に要求し、
下位のハードディスク制御装置は、要求されたデータを上位の制御手段に転送すると共に、該要求されたデータに基づいて次回に要求されると予測されるデータを保持する
ことを特徴とする請求項19に記載のコンピュータシステム。 - 上位のディスクキャッシュは、前記周辺装置接続手段に内蔵されるディスクキャッシュであり、
上位の制御手段は、前記周辺装置接続手段に内蔵され、上位のキャッシュ制御装置を含む上位のハードディスク制御装置である
ことを特徴とする請求項12〜20の何れかに記載のコンピュータシステム。 - 上位のディスクキャッシュは、CPUが有するキャッシュであるか、あるいは、CPUに接続されるキャッシュであり、
上位の制御手段は、CPU自体である
ことを特徴とする請求項12〜20の何れかに記載のコンピュータシステム。 - 上位のディスクキャッシュは、CPUと拡張バスを接続するためのブリッジ回路に接続されるメインメモリ内のキャッシュであり、
上位の制御手段は、前記ブリッジ回路内のメインメモリ制御装置である
ことを特徴とする請求項12〜20の何れかに記載のコンピュータシステム。 - 前記周辺装置接続手段は、拡張バスに任意の周辺装置を拡張して接続できる拡張カードである
ことを特徴とする請求項12〜22の何れかに記載のコンピュータシステム。 - 前記周辺装置接続手段は、拡張バスに任意の周辺装置を拡張して接続できる第2のブリッジ回路である
ことを特徴とする請求項23に記載のコンピュータシステム。 - 前記請求項12〜25の何れかのコンピュータシステムで用いられる
ことを特徴とするハードディスクドライブ装置。 - 前記請求項26のハードディスクドライブ装置で用いられる
ことを特徴とするハードディスク制御装置。
Priority Applications (5)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP29390999A JP3568110B2 (ja) | 1999-10-15 | 1999-10-15 | キャッシュメモリの制御方法、コンピュータシステム、ハードディスクドライブ装置およびハードディスク制御装置 |
| SG200005621A SG90174A1 (en) | 1999-10-15 | 2000-10-02 | Method for controlling cache memories, computer system, hard disk drive unit, and hard disk control unit |
| KR10-2000-0058696A KR100388338B1 (ko) | 1999-10-15 | 2000-10-06 | 캐시 메모리의 제어 방법, 컴퓨터 시스템, 하드 디스크드라이브 장치 및 하드 디스크 제어 장치 |
| DE10050171A DE10050171B4 (de) | 1999-10-15 | 2000-10-11 | Verfahren zur Steuerung von Cache-Speichern |
| US09/687,270 US6629200B1 (en) | 1999-10-15 | 2000-10-13 | System and method for controlling cache memories, computer system, hard disk drive unit, and hard disk control unit |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP29390999A JP3568110B2 (ja) | 1999-10-15 | 1999-10-15 | キャッシュメモリの制御方法、コンピュータシステム、ハードディスクドライブ装置およびハードディスク制御装置 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2001117817A JP2001117817A (ja) | 2001-04-27 |
| JP3568110B2 true JP3568110B2 (ja) | 2004-09-22 |
Family
ID=17800734
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP29390999A Expired - Fee Related JP3568110B2 (ja) | 1999-10-15 | 1999-10-15 | キャッシュメモリの制御方法、コンピュータシステム、ハードディスクドライブ装置およびハードディスク制御装置 |
Country Status (5)
| Country | Link |
|---|---|
| US (1) | US6629200B1 (ja) |
| JP (1) | JP3568110B2 (ja) |
| KR (1) | KR100388338B1 (ja) |
| DE (1) | DE10050171B4 (ja) |
| SG (1) | SG90174A1 (ja) |
Families Citing this family (19)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2003076498A (ja) * | 2001-09-05 | 2003-03-14 | Hitachi Ltd | ディスク記憶装置 |
| US7688863B2 (en) * | 2001-10-19 | 2010-03-30 | Renesas Technology America, Inc. | Methods and apparatus for sharing network bandwidth |
| JP2003216491A (ja) | 2002-01-23 | 2003-07-31 | Hitachi Ltd | 階層キャッシュ制御方法 |
| FR2846114A1 (fr) * | 2002-10-16 | 2004-04-23 | Thomson Licensing Sa | Dispositif de memorisation d'une liste d'elements et procede de memorisation d'un element dans un tel dispositif |
| JP2005267546A (ja) * | 2004-03-22 | 2005-09-29 | Hitachi Ltd | ディスク制御装置、及びディスク制御装置におけるネットワーク接続ストレージの接続管理方式 |
| US7634615B2 (en) * | 2004-06-10 | 2009-12-15 | Marvell World Trade Ltd. | Adaptive storage system |
| US7966450B2 (en) * | 2005-09-01 | 2011-06-21 | Micron Technology, Inc. | Non-volatile hard disk drive cache system and method |
| KR100876841B1 (ko) | 2006-08-22 | 2009-01-07 | 엘지전자 주식회사 | 캐쉬 메모리 탑재형 컴퓨터 및 그 제어 방법 |
| KR101128234B1 (ko) * | 2006-08-23 | 2012-03-23 | 엘지전자 주식회사 | 메모리 접근 제어 장치 및 방법 |
| US8370294B2 (en) * | 2009-05-06 | 2013-02-05 | Microsoft Corporation | File stashing for storage media |
| US9053060B2 (en) | 2009-09-29 | 2015-06-09 | Canon Kabushiki Kaisha | Information processing apparatus having file system consistency recovery function, and control method and storage medium therefor |
| US8990502B2 (en) | 2010-11-23 | 2015-03-24 | International Business Machines Corporation | Write cache structure in a storage system |
| US9098397B2 (en) * | 2011-04-04 | 2015-08-04 | International Business Machines Corporation | Extending cache for an external storage system into individual servers |
| WO2014147840A1 (ja) * | 2013-03-22 | 2014-09-25 | 富士通株式会社 | アクセス制御プログラム、ディスク装置及びアクセス制御方法 |
| JP6203592B2 (ja) * | 2013-10-07 | 2017-09-27 | 株式会社日立製作所 | 計算機システム、キャッシュ管理方法及び計算機 |
| US9478274B1 (en) | 2014-05-28 | 2016-10-25 | Emc Corporation | Methods and apparatus for multiple memory maps and multiple page caches in tiered memory |
| US9535844B1 (en) | 2014-06-30 | 2017-01-03 | EMC IP Holding Company LLC | Prioritization for cache systems |
| US10235054B1 (en) * | 2014-12-09 | 2019-03-19 | EMC IP Holding Company LLC | System and method utilizing a cache free list and first and second page caches managed as a single cache in an exclusive manner |
| JP6194875B2 (ja) * | 2014-12-11 | 2017-09-13 | 日本電気株式会社 | キャッシュ装置、キャッシュシステム、キャッシュ方法、及びキャッシュプログラム |
Family Cites Families (12)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4928239A (en) * | 1986-06-27 | 1990-05-22 | Hewlett-Packard Company | Cache memory with variable fetch and replacement schemes |
| JP2637788B2 (ja) * | 1988-09-02 | 1997-08-06 | 株式会社日立製作所 | ディスクキャッシュ制御方式および情報処理システム |
| JPH02114345A (ja) * | 1988-10-24 | 1990-04-26 | Nec Corp | キャッシュメモリ制御方式 |
| JPH03122737A (ja) | 1989-10-05 | 1991-05-24 | Nec Corp | ページング方式 |
| JPH0588976A (ja) * | 1991-09-30 | 1993-04-09 | Pfu Ltd | キヤツシユ記憶装置及びそれを用いた情報処理装置とその情報処理方法 |
| US5386547A (en) * | 1992-01-21 | 1995-01-31 | Digital Equipment Corporation | System and method for exclusive two-level caching |
| US5564035A (en) * | 1994-03-23 | 1996-10-08 | Intel Corporation | Exclusive and/or partially inclusive extension cache system and method to minimize swapping therein |
| US5809280A (en) * | 1995-10-13 | 1998-09-15 | Compaq Computer Corporation | Adaptive ahead FIFO with LRU replacement |
| US6571324B1 (en) * | 1997-06-26 | 2003-05-27 | Hewlett-Packard Development Company, L.P. | Warmswap of failed memory modules and data reconstruction in a mirrored writeback cache system |
| US6148368A (en) * | 1997-07-31 | 2000-11-14 | Lsi Logic Corporation | Method for accelerating disk array write operations using segmented cache memory and data logging |
| JPH11110139A (ja) * | 1997-09-26 | 1999-04-23 | Internatl Business Mach Corp <Ibm> | データ読み取り方法及びデータ読み取り装置 |
| US6243795B1 (en) * | 1998-08-04 | 2001-06-05 | The Board Of Governors For Higher Education, State Of Rhode Island And Providence Plantations | Redundant, asymmetrically parallel disk cache for a data storage system |
-
1999
- 1999-10-15 JP JP29390999A patent/JP3568110B2/ja not_active Expired - Fee Related
-
2000
- 2000-10-02 SG SG200005621A patent/SG90174A1/en unknown
- 2000-10-06 KR KR10-2000-0058696A patent/KR100388338B1/ko not_active Expired - Fee Related
- 2000-10-11 DE DE10050171A patent/DE10050171B4/de not_active Expired - Fee Related
- 2000-10-13 US US09/687,270 patent/US6629200B1/en not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| DE10050171A1 (de) | 2001-04-19 |
| SG90174A1 (en) | 2002-07-23 |
| KR100388338B1 (ko) | 2003-06-25 |
| KR20010050881A (ko) | 2001-06-25 |
| JP2001117817A (ja) | 2001-04-27 |
| DE10050171B4 (de) | 2006-01-05 |
| US6629200B1 (en) | 2003-09-30 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP3568110B2 (ja) | キャッシュメモリの制御方法、コンピュータシステム、ハードディスクドライブ装置およびハードディスク制御装置 | |
| JP2784440B2 (ja) | データ・ページの転送制御方法 | |
| JP3898782B2 (ja) | 情報記録再生装置 | |
| JP3586887B2 (ja) | 情報記録再生装置およびデータキャッシュ方法 | |
| US20130145094A1 (en) | Information Processing Apparatus and Driver | |
| JP2013196755A (ja) | ハイブリッドディスクドライブ中の書込み再配列方法 | |
| TW201103016A (en) | Systems and methods for tiered non-volatile storage | |
| JP2007522560A (ja) | マスストレージアクセラレータ | |
| JP2001166993A (ja) | 記憶制御装置およびキャッシュメモリの制御方法 | |
| JPH06348597A (ja) | キャッシュ制御方法および回転形記憶装置 | |
| JP2003216491A (ja) | 階層キャッシュ制御方法 | |
| US20080025706A1 (en) | Information recording apparatus and control method thereof | |
| US20100088466A1 (en) | Storage device, storage control device, and control method | |
| WO1997050035A1 (en) | Memory device | |
| US10152236B2 (en) | Hybrid data storage device with partitioned local memory | |
| KR19980029917A (ko) | 자기 디스크 드라이브에서 읽기 캐쉬의 성능을 높이기 위한 방법 | |
| KR101515621B1 (ko) | 반도체 디스크 장치 및 그것의 랜덤 데이터 처리 방법 | |
| US7069409B2 (en) | System for addressing a data storage unit used in a computer | |
| US6532513B1 (en) | Information recording and reproduction apparatus | |
| CN102160038A (zh) | 管理非易失性磁盘高速缓存的方法和设备 | |
| JP2010191672A (ja) | データ記憶システム | |
| KR20070060301A (ko) | 불휘발성 메모리를 쓰기 캐시로 구비한 하드 디스크드라이버 | |
| JP3969809B2 (ja) | 記憶装置におけるデータバッファの管理方法 | |
| JP2003150445A (ja) | 外部記憶装置を有するコンピュータシステム | |
| JPH03290873A (ja) | ディスク型記憶装置、ディスク型記憶装置の制御装置、及びディスク型記憶装置の制御方法 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| TRDD | Decision of grant or rejection written | ||
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20040601 |
|
| RD14 | Notification of resignation of power of sub attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7434 Effective date: 20040602 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040610 |
|
| R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080625 Year of fee payment: 4 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080625 Year of fee payment: 4 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090625 Year of fee payment: 5 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100625 Year of fee payment: 6 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110625 Year of fee payment: 7 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110625 Year of fee payment: 7 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120625 Year of fee payment: 8 |
|
| LAPS | Cancellation because of no payment of annual fees |