JP2006196011A - 変化するサービスレベルを提供するためのキャッシュのセグメント化 - Google Patents
変化するサービスレベルを提供するためのキャッシュのセグメント化 Download PDFInfo
- Publication number
- JP2006196011A JP2006196011A JP2006028456A JP2006028456A JP2006196011A JP 2006196011 A JP2006196011 A JP 2006196011A JP 2006028456 A JP2006028456 A JP 2006028456A JP 2006028456 A JP2006028456 A JP 2006028456A JP 2006196011 A JP2006196011 A JP 2006196011A
- Authority
- JP
- Japan
- Prior art keywords
- segment
- cache memory
- data
- cache
- access
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/123—Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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; CALCULATING OR 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)
- Multi Processors (AREA)
Abstract
【課題】いくつかのホストプロセッサが他のホストプロセッサより良いキャッシュ性能を受けることができるようにする。
【解決手段】記憶装置のキャッシュメモリにデータを記憶する方法は、キャッシュメモリの第1のセグメントに第1のデータ構造を提供する工程と、キャッシュメモリの第2のセグメントに第2のデータ構造を提供する工程と、を有することができ、第1のセグメントのアクセスは第1のデータ構造のアクセスを含み、第2のセグメントのアクセスは第2のデータ構造のアクセスを含む。データ構造は、データのブロックの2重にリンクしたリングリストとすることができる。異なるグループの外部ホストシステムに、異なるアクセス、優先度、およびキャッシュの異なるセグメントに関するサービスレベルを提供する。
【選択図】図5
【解決手段】記憶装置のキャッシュメモリにデータを記憶する方法は、キャッシュメモリの第1のセグメントに第1のデータ構造を提供する工程と、キャッシュメモリの第2のセグメントに第2のデータ構造を提供する工程と、を有することができ、第1のセグメントのアクセスは第1のデータ構造のアクセスを含み、第2のセグメントのアクセスは第2のデータ構造のアクセスを含む。データ構造は、データのブロックの2重にリンクしたリングリストとすることができる。異なるグループの外部ホストシステムに、異なるアクセス、優先度、およびキャッシュの異なるセグメントに関するサービスレベルを提供する。
【選択図】図5
Description
本発明はコンピュータデータ記憶の分野に関し、特にキャッシュにアクセスする複数のプロセッサを有するコンピュータデータ記憶システムにキャッシュを構成する分野に関する。
ホストプロセッサシステムは、複数のインタフェースユニット、ディスクドライブ、およびディスクインタフェースユニットを含む記憶装置を使用してデータを記憶および検索することができる。そのような記憶装置は、例えばマサチューセッツ州、ホプキントンのEMC社により提供され、Yanai et al.への米国特許第5,206,939号、Galtzur et al.への米国特許第 5,778,394号、Vishlizzky et al.への米国特許第5,845,147号、およびOfekへの米国特許第5,857,208号に記載されている。ホストシステムは、それに設けられた複数のチャンネルを通じて記憶装置へアクセスする。ホストシステムは記憶装置へのチャンネルを通じてデータおよびアクセス制御情報を提供し、記憶装置もそのチャンネルを通じてホストシステムへデータを提供する。ホストシステムは記憶装置のディスクドライブを直接的にはアドレスしないが、ホストシステムが複数の論理的ディスクユニットと考えるものにアクセスする。論理的ディスクユニットは実際のディスクドライブに対応するものまたは対応しないものとすることができる。複数のホストシステムが単一の記憶装置ユニットへアクセスできるようにすることにより、ホストシステムはその内部に記憶されたデータを共用することができる。
記憶システムの性能はキャッシュを使用することにより改善されうる。ディスクドライブシステムの場合、ディスクドライブより相対的に低いデータアクセス時間を有する半導体メモリのブロックを使用して実現することができる。アクセスされたデータは有益にディスクドライブからキャッシュへ移動されるので、そのデータへの2回目のおよびその後のアクセスはディスクドライブではなくキャッシュへ行うことができる。最近アクセスされていないデータをキャッシュから除去して新たなデータのための空間を作ることができる。しばしば、そのようなキャッシュアクセスは、データを要求するホストシステムにとって明白である。
キャッシュを実現する1つの手法は、データをブロックで記憶し、各ブロックを以下に「論理的リングユニット」(LRU)と呼ぶ2重にリンクされたリングリストに一体的にリンクすることである。LRUの各ブロックは論理的ディスクユニットからデータのブロックを示す。それらのブロックは、それらがディスクから検索された順序で2重にリンクされたリングリスト内に配置される。ポインタは、リストに最も最近加えられたブロックを指し示す。こうして、新しいブロックをキャッシュに追加すべき場合、LRU構造をヘッドポインタとともに使用して除去すべきLRU中の最も古いブロックを決定して新しいブロックのための空間を作る。
LRUメカニズムの欠点は、2重にリンクされたリング構造の複雑性により複数のプロセスがいつでもデータ構造を操作可能とすることが困難であるので、単一のプロセスのみしか一時にリングリストを操作可能できないことである。この一時に1つのアクセスを実施する1つの方法はソフトウェアロックを使用することであり、それはLRUへのプロセスの排他的アクセスを可能とする従来のセマフォー(semaphore)類似の機構である。しかし、複数のプロセッサがキャッシュの使用を必要とする場合、排他的LRUアクセス方法は障害となる。加えて、いくつかの場合では、いくつかのホストプロセッサが他のホストプロセッサより良いキャッシュ性能を受けることができるように記憶装置に接続されたホストプロセッサシステムに提供されるキャッシュサービスを調整するための機構を提供することが望まれる。
本発明によれば、キャッシュメモリにデータを記憶する方法は、キャッシュメモリの第1の部分への排他的アクセスを可能とする第1の機構を提供する工程と、キャッシュメモリの第2の部分への排他的アクセスを可能とする第2の機構を提供する工程と、を有し、第1の部分への排他的アクセスは第2の部分への排他的アクセスと独立である。また、キャッシュメモリへデータを記憶する方法は、キャッシュメモリの少なくとも第3の部分への排他的アクセスを可能とする少なくとも第3の機構を提供することができ、いずれかの部分への排他的アクセスは他の部分への排他的アクセスと独立である。第1および第2の機構はロックとすることができる。ロックはソフトウェアロックまたはハードウェアロックとすることができる。排他的アクセスを可能とする方法は、キャッシュメモリの第1の部分に第1のデータ構造を提供する工程と、キャッシュメモリの第2の部分に第2のデータ構造を提供する工程と、を有することができ、第1の部分のアクセスは第1の構造のアクセスを含み、第2の部分のアクセスは第2の構造のアクセスを含む。データ構造はデータのブロックの2重にリンクしたリングリストとすることができ、ブロックはディスクドライブのトラックに対応することができる。排他的アクセスを可能とする方法は、第1の部分についての第1のキャッシュフォールスルータイムを決定する工程と、第2の部分についての第2のキャッシュフォールスルータイムを決定する工程と、第1および第2のキャッシュフォールスルータイムにしたがって第1および第2の部分の1つにデータを割り当てる工程と、を有することができる。排他的アクセスを可能とする方法は、第1と第2のキャッシュフォールスルータイムの差を決定する工程を有することができ、第1および第2の部分へのデータの割り当てはその差に基づく。その差が所定量より小さい場合に、データを第1および第2の部分の一方にランダムに割り当てすることができる。
さらに本発明によれば、キャッシュメモリは、第1の部分であって、第1の部分への排他的アクセスを可能とする第1の機構を有する第1の部分と、第2の部分であって、第2の部分への排他的アクセスを可能とする第2の機構を有する第2の部分と、を有し、第1の部分への排他的アクセスは第2の部分への排他的アクセスと独立である。第1および第2の機構はソフトウェアロックとすることができる。第1の部分は第1のデータ構造を有することができ、第2の部分は第2のデータ構造を有することができ、第1の部分のアクセスは第1の構造のアクセスを含み、第2の部分のアクセスは第2の構造のアクセスを含む。データ構造は、データのブロックの2重にリンクしたリングリストとすることができる。データの各ブロックはディスクドライブ上のトラックに対応することができる。第1の部分についての第1のキャッシュフォールスルータイムが決定され、第2の部分についての第2のキャッシュフォールスルータイムが決定され、データは第1および第2のキャッシュフォールスルータイムにしたがって第1および第2の部分の1つへ割り当てられる。第1および第2のキャッシュフォールスルータイムの差が決定され、第1および第2の部分の1つの割り当てはその差に基づく。その差が所定量より小さい場合に、データを第1および第2の部分の1つにランダムに割り当てることができる。
さらに本発明によれば、記憶装置は、複数のディスクドライブと、各々がディスクドライブの1つに接続された複数のディスクインタフェースユニットと、ディスクインタフェースユニットを相互接続するバスと、バスに接続され複数の部分を有するキャッシュメモリとを有し、複数の部分の各々はディスクインタフェースユニットの1つにより独立に制御可能である。キャッシュメモリの各部分はそれらへの排他的アクセスを可能とする機構を有することができる。各部分はデータ構造を有し、部分のアクセスはデータ構造の対応するものへのアクセスを含むことができる。データ構造は、2重にリンクされたリングリストとすることができる。
さらに本発明によれば、キャッシュメモリは複数の部分と複数のロックとを有し、ロックの各々は特定の1つの部分への排他的アクセスに対応し、1つの部分への排他的アクセスは部分の他の1つへの排他的アクセスと独立である。各部分はデータ構造を有し、1つの部分へのアクセスはデータ構造へのアクセスを含む。データ構造は、2重にリンクされたリングリストとすることができる。データの各ブロックはディスクドライブ上のトラックに対応することができる。
本発明によれば、記憶装置のキャッシュメモリにデータを記憶する方法は、記憶装置に接続された第1のグループの外部ホストシステムのためにキャッシュメモリの第1のセグメントにアクセスする工程と、記憶装置に接続された第2のグループの外部ホストシステムのためにキャッシュメモリの第2のセグメントにアクセスする工程と、を有し、キャッシュメモリの第2のセグメントの少なくとも一部はキャッシュメモリの第1のセグメントの一部ではない。いくつかの実施形態では、キャッシュメモリの第2のセグメントは第1のセグメントの一部ではない。
また、記憶装置のキャッシュメモリにデータを記憶する方法は、キャッシュメモリの第1のセグメントに第1のデータ構造を提供する工程と、キャッシュメモリの第2のセグメントに第2のデータ構造を提供する工程と、を有し、第1のセグメントのアクセスは第1のデータ構造のアクセスを含み、第2のセグメントのアクセスは第2のデータ構造のアクセスを含む。データ構造は、データのブロックの2重にリンクしたリングリストとすることができる。データの各ブロックはディスクドライブ上のトラックに対応することができる。
また、キャッシュメモリにデータを記憶する方法は、キャッシュメモリをスロットに割り当てる工程と、各スロットを、キャッシュメモリの第1および第2のセグメントの少なくとも一方にマップする工程と、を有することができる。スロットは式またはテーブルを使用してセグメントにマップされうる。グループはテーブルを使用してセグメントの特定のものへマップされうる。テーブルはグループ識別子と、対応するマスクとを含むことができる。マスクは、N番目のビット位置に「1」であるビットを有し、あるグループがN番目のセグメントに割り当てられていることを示す二進数値とすることができる。キャッシュにデータを記憶する方法は、キャッシュメモリのブロックの要求に応じて、キャッシュメモリにマップされたグループについてのキャッシュメモリのブロックの利用可能性を決定する工程を有することができる。利用可能なグループについてのキャッシュメモリのブロックが無いことに応じて、他のグループに対応するキャッシュメモリのブロックを提供することができる。提供されるキャッシュメモリのブロックは、次に利用可能なブロック、割り当てられた最大番号のブロックを有するグループに対応するブロック、利用可能な最大番号を有するブロックを有するグループに対応するブロック、および、利用可能なブロックの最大割合を有するグループに対応するブロックの少なくとも1つとすることができる。
さらに本発明によれば、記憶装置のキャッシュメモリは、記憶装置に接続された第1のグループの外部ホストシステムのためにアクセスされるキャッシュメモリの第1のセグメントと、記憶装置に接続された第2のグループの外部ホストシステムのためにアクセスされるキャッシュメモリの第2のセグメントと、を有し、キャッシュメモリの第2のセグメントの少なくとも一部はキャッシュメモリの第1のセグメントの一部ではない。いくつかの実施形態では、キャッシュメモリの第2のセグメントは第1のセグメントの一部ではない。
また、キャッシュメモリは、キャッシュメモリの第1のセグメント内の第1のデータ構造と、キャッシュメモリの第2のセグメント内の第2のデータ構造と、を有し、第1のセグメントのアクセスは第1のデータ構造のアクセスを含み、第2のセグメントのアクセスは第2のデータ構造のアクセスを含む。データ構造は、データのブロックの2重にリンクされたリングリストとすることができる。データの各ブロックはディスクドライブのトラックに対応することができる。また、キャッシュメモリは、複数のスロットを有し、各スロットはキャッシュメモリの一部に対応し、各スロットはキャッシュメモリの第1および第2のセグメントの少なくとも1つにマップされる。スロットは、式またはテーブルを使用してセグメントにマップされうる。グループはテーブルを使用してセグメントの特定のものにマップされうる。テーブルは、グループ識別子と、対応するマスクと、を有することができる。マスクは、N番目のビット位置に「1」であるビットを有し、あるグループがN番目のセグメントに割り当てられていることを示す二進数値とすることができる。
さらに本発明によれば、記憶装置は、複数のディスクドライブと、各々がディスクドライブのうちの1つに接続された複数のディスクインタフェースユニットと、ディスクインタフェースユニットを相互接続するバスと、バスに接続されたキャッシュメモリと、を有し、キャッシュメモリは、記憶装置に接続された第1のグループの外部ホストシステムのためにアクセスされる第1のセグメントと、記憶装置に接続された第2のグループの外部ホストシステムのためにアクセスされる第2のセグメントと、を有し、キャッシュメモリの第2のセグメントの少なくとも一部はキャッシュメモリの第1のセグメントの一部ではない。
さらに本発明によれば、記憶装置のキャッシュメモリにデータを記憶する方法は、記憶装置に接続された第1のグループの外部ホストシステムのためにキャッシュメモリの第1のセグメントにアクセスする工程と、記憶装置に接続された第2のグループの外部ホストシステムのためにキャッシュメモリの第2のセグメントにアクセスする工程であって、キャッシュメモリの第2のセグメントの少なくとも一部はキャッシュメモリの第1のセグメントの一部ではない工程と、キャッシュメモリのブロックの要求に応じて、キャッシュメモリにマップされたグループについてのキャッシュメモリのブロックの利用可能性を決定する工程と、利用可能なグループについてのキャッシュメモリが無いことに応じて、他のグループに対応するキャッシュメモリのブロックを提供する工程と、を有する。また、記憶装置のキャッシュメモリにデータを記憶する方法は、キャッシュメモリの第1のセグメントに第1のデータ構造を提供する工程と、キャッシュメモリの第2のセグメントに第2のデータ構造を提供する工程と、を有し、第1のセグメントのアクセスは第1のデータ構造のアクセスを含み、第2のセグメントのアクセスは第2のデータ構造のアクセスを含む。データ構造は、データのブロックの2重にリンクしたリングリストとすることができる。データの各ブロックはディスクドライブのトラックに対応することができる。
図1を参照すると、データ記憶装置20は、複数のホストインタフェースユニット22〜24と、複数のディスクインタフェースユニット26〜28と、複数のディスクドライブ32〜34とを有し、複数のディスクドライブ32〜24の各々はディスクインタフェースユニット26〜28のそれぞれに接続されている。ホストインタフェースユニット22〜24を、データをディスクドライブへ読み書きするコンピュータなどの1つ以上の外部ホストシステム(図示せず)に接続することができる。
記憶装置20は、そうでなければ各ホストシステムに接続された従来のディスクドライブシステムが行ったであろう動作を実行する。そうして、記憶装置20はホストインタフェースユニット22〜24を通じてディスクコマンドを受け取り、ディスクドライブ32〜34からのディスクデータをホストインタフェースユニット22〜24を通じてホストシステムへ提供する。しかし、記憶装置20に接続されたホストシステムはディスクドライブ32〜34へ直接アクセスせず、ホストシステムは1つ以上の論理的ディスクの使用を要求することにより記憶装置20にアクセスする。記憶装置20は、特定の論理的ディスクへのアクセスのためのホストからの要求をディスクドライブ32〜34上の物理的位置に翻訳する。バス31はホストインタフェースユニット22〜24とディスクインタフェースユニット26〜28の間の通信を提供する。
ホストからの要求は、ホストインタフェースユニット22〜24のうちの1つを通じて、論理的ディスク番号、シリンダ番号、およびトラック番号の形態で提供される。すなわち、ホストは論理的ディスク番号、シリンダ番号およびトラック番号を特定することによりデータを読み書きする。この要求はホストインタフェースユニット22〜24のそれぞれ1つを通じてディスクインタフェースユニット26〜28の適当な1つへ送られ、次にディスクインタフェースユニット26〜28の適当な1つはディスクドライブ32〜34の適当な1つのデータへアクセスし、そのデータをホストインタフェースユニット22〜24の適当な1つへ提供する。
いくつかの例では、要求されたいくつかのデータをキャッシュすることにより、ディスクドライブ32〜34に対して行われる物理的ディスクアクセス数を減少させることがより効率的である。この目的のため、システムメモリ36がバス31に接続され、以下により詳細に説明するように、ディスクドライブ32〜34とホストインタフェースユニット22〜24の間で伝送されるキャッシュデータの記憶を提供する。各ディスクインタフェースユニット26〜28は1つのプロセッサを含み、システムメモリ36へ直接アクセスするプロセスを実行する。こうして、以下により詳細に説明するように、キャッシュするためにシステムメモリ36を使用することは、2つ以上のプロセスが重要なデータへ同時にアクセスしようとした時に生じるであろう問題を防止する手法の使用を必要とする。
図2を参照すると、その概略図はシステム36をより詳細に示す。システムメモリは、他のメモリ37(ここでは議論していない他のシステムデータコンポーネントを含む)、トラックI.D.テーブル38、およびキャッシュメモリ39を含む。キャッシュメモリ39およびその構造は後により詳細に説明される。トラックI.D.テーブル38は、ディスクドライブ32〜34上の各トラックについてのエントリーを含むテーブルである。各トラックについてエントリーは特定のトラックがキャッシュメモリ39内にあるか否かを示し、もしあれば、キャッシュメモリ内のデータが書き込まれているが、まだディスクドライブ32〜34へコピーして戻されていないかを示す。こうしてトラックI.D.テーブル38はいくぶん従来的な直接マップキャッシュシステムを実行するための使用され、そのシステムでは全てのディスクメモリ位置についてデータがキャッシュ内にあるか否かを示す対応するインジケータが存在する。
図3を参照すると、概略図はキャッシュメモリ39をより詳細に示す。キャッシュメモリは、第1の論理的リングユニット(LRU)42と、第2のLRU44とを有する。また、キャッシュメモリ39は第1および第2のソフトウェアLRUロック46、47を有し、それらは以下により詳細に説明される。
ここに示す例示的実施形態は2つのLRU42、44を使用しているが、ここに記載するシステムをあらゆる数のLRUに一般化することができることが当業者に理解されるであろう。実際、その手法はあらゆる数のキャッシュメモリ39の部分とともに動作するようにさらに一般化できる。
LRU42は複数のメモリブロック51〜55から構成され、それら各々はディスクドライブ32〜34の1つの上の1つのトラックに対応する。各ブロック51〜55はキャッシュメモリ39の1つのスロットに対応することができ、スロットは単純にブロック51〜55の1つについて使用されるキャッシュメモリ39の部分を指している。加えて、「スロット番号」はブロック51〜55の特定の1つを指すように使用され、スロットはキャッシュメモリ39内のその相対的位置にしたがってゼロで始まる連続番号を付される。よって、最小メモリアドレスを有するスロットはスロット0とすることができ、次に高いメモリアドレスを有するスロットはスロット1とすることができ、他も同様である。1つの実施形態では、ディスクドライブ32〜34の、および各メモリブロック51〜55内の各トラックは50,368バイトのメモリを含む。しかし、そのサイズは変更可能であることが当業者には理解されるであろう。加えて、ここに記載したシステムを適合化して各ブロック51〜55のサイズがディスドライブ32〜34の各トラックのサイズに必ずしも対応しないようにすることが可能であることが当業者には理解されるであろう。例えば、各ブロック51〜55は、トラックサイズの倍数またはトラックサイズの分数とすることができる。
また、第2のLRU44は、第1のLRU42のメモリブロック51〜55に類似した複数のメモリブロック61〜65を含む。LRU42は、最も最近にLRU42へ追加されたブロック55を指し示すヘッドポインタを含む。同様に、LRU44も最も最近LRU44へ追加されたブロック65を指し示すヘッドポインタを含む。
ディスクインタフェースユニット26〜28のいずれかのプロセッサは、例えば第1のLRU42または第2のLRU44のいずれかを操作し、それにブロックを加えるかそれからブロックを除去する。LRU42、44の各々は2重にリンクしたリングリスト(比較的複雑なデータ構造)として構成されているので、一度に1つのプロセッサのみがLRU42、44の1つにアクセスすることが許可される。これは、ソフトウェアロック46,47を使用することにより達成され、そのソフトウェアロックは手旗信号法のものであってプロセッサがLRU42、44の1つへの排他的なアクセスを得ることを可能とし、そうして同時アクセスを禁止する。1つの実施形態では、LRU42、44の1つへのアクセスを望むディスクインタフェースユニット26〜28の1つのプロセッサはまず従来のハードウェアメモリロックを使用してメモリハードウェアをロックし、ソフトウェアロック46、47へのアクセスを防止する。ハードウェアロックが達成されると、アクセスを望むプロセッサは次にソフトウェアロック46、47の1つを取得し、その後ハードウェアロックが解放される。ソフトウェアロック46はLRU42について使用することができ、ソフトウェアロック47はLRU44について使用することができることを述べておく。
ここに記載されるシステムの形態は、ディスクインタフェースユニット26〜28の1つが例えば第1のLRU42へのアクセスをしている間、ディスクインタフェースユニット26〜28の別の1つが同時にLRU44へアクセスすることを可能とするものである。よって、2つのプロセッサは同時にLRU42、44へアクセスすることができる。同時アクセスを許容することは、プロセッサがキャッシュへのアクセスを待つ場合を減らす。LRU42、44への2つのプロセッサの同時アクセスは、LRU42、44の各々が、他のデータ構造への変更により影響を受けないスタンドアローンデータ構造であることにより可能となる。よって、LRU42のリンクされたリングリストの操作はLRU44のリンクされたリングリストに影響を与えない。いくつかの実施形態において、時々、各ソフトウェアロック46、47をアクセスおよび保持することにより、全てのLRU42、44がロックされるまで、キャッシュメモリ39全体をロックすることが有益である。
データへのアクセスがホストの1つにより要求されるたびに、トラックI.D.テーブル38を調べてデータが既にキャッシュメモリ39内にあるか否かを決定する。データが既にキャッシュメモリ39内にあるならば、ディスクドライブ32〜34にアクセスするのではなくキャッシュメモリ39がアクセスされる。読み取り処理の場合、これはホストインタフェースユニット22〜24ならびにディスクインタフェース26〜28により実行することができる。そうでなければ、要求されたデータが既にキャッシュメモリ39内にない場合、それはフェッチされ、キャッシュメモリ39内に入れられる。その場合、そのデータに関連付けされるブロックが、以下により詳細に記述される方法でLRU42、44の1つへ割り当てられる。
いくつかの実施形態では、スロット番号を使用してLRU42、44のいずれが特定のデータを含んでいるかを決定する。例えば、2つのLRUを有するシステムにおいて、奇数のスロット番号を1つのLRUに対応させ、偶数のスロット番号を他方のLRUに対応させることができる。N個のLRUを有するシステムでは、式:(スロット番号)modNを使用して特定のLRUにスロット番号をマップすることができる。トラックI.D.テーブル38はキャッシュメモリのどこに特定のデータが存在するかを示すので、この手法はどのLRUが特定のデータを含むかを決定するための便利な機構を提供し、この情報を使用してスロット番号を決定し、それを特定のLRUにマップする。
図4Aおよび4Bを参照すると、キャッシュ39内のブロックを変更するためのプロセスが示されている。システム20に接続されたホストがキャッシュ39内に記憶されたデータを変更する時、ホストはホストインタフェースユニット22〜24の適当な1つを通じてディスク書き込み命令を送信する。書き込み中のディスクドライブ32〜34のトラックがキャッシュ39内にあるならば、書き込み中のブロック(図4Aおよび4Bの例においてはブロック62)がLRU44から移動されてブロック62が書き込み動作中に他のプロセスにより操作されることを防止する。書き込み動作のためにブロック62が除去されると、トラックI.D.テーブル38内の対応するエントリーが変更されて書き込み動作を示す。ブロック62がLRU44から除去されると、第2のLRU44についてのソフトウェアロック47が解放され、他のプロセスが第2のLRU44を変更することができる。一度ブロック62が第2のLRU44から分離されると、ホストインタフェース22〜24の1つが提供したデータを使用してブロック62を変更することができる。変更後、ブロック62からのデータは、ブロック62に対応するディスクドライブ32〜34のトラックへコピーして戻される。
図4Bに示すように、ブロック62がディスクドライブ32〜34へコピーされると、ブロック62はLRU42、44の1つへ戻る。図4Bに示す例では、ブロック62は第2のLRU44ではなく、第1のLRU42へ戻る。別の実施形態では、ブロック62は常にLRU44へ戻り、一般的に1つのブロックがある1つのLRUに割り当てられると、それは移動しない。
新しいブロックがキャッシュ39に加えられるたびに、および、書き込み処理後に1つのブロックがLRU42、44のうちの特定の1つに戻されるたびに、そのブロックはLRU42、44の特定の1つに割り当てられる。1つの実施形態では、LRU42、44の特定の1つへのブロックの割り当ては、乱数または疑似乱数をとることにより行われる。乱数または疑似乱数は例えばLRU42、44の番号のウォールクロックタイム(wall clock time)モジューロであり、ここでは2である。こうして、図4Aおよび4Bに示すブロック62などの変更されたブロック、またはディスク32からアクセスされた新しいブロックに対してLRU42、44の特定の1つがランダムに割り当てられ、それによりLRU42、44中のブロック数を均衡させるメカニズムが提供される。スロット番号がLRUにマップされる場合には、1つのブロックについての特定のLRUが割り当てられると、特定のスロット(および、スロット番号)を得てブロックを割り当てられたLRUに配置することができることを述べておく。
図5を参照すると、フローチャート70は1つのブロックをLRU42、44の1つに割り当てるステップを示す。第1のステップ72で、各LRU42、44のフォールスルータイム(fall through time)が計算される。フォールスルータイムは、ブロックがLRU上で費やす時間量を調べることにより決定することができ、新しいブロックが追加された場合は最も古いブロックは無視されることを述べておく。新しいブロックのための空間を作るためにブロックが除去されるたびに、ブロックが追加された時間からブロックが除去された時間を減算することによりフォールスルータイムが決定できる。こうして、特に小さいフォールスルータイムを有するLRUは比較的少数のブロックを記憶し、比較的大きなフォールスルータイムを有するLRUは比較的多数のブロックが割り当てられる。
ステップ72の次はステップ74であり、そこではLRU42と44のフォールスルータイムの差が計算される。その差は、LRU42、44の一方のフォールスルータイムをLRU42、44の他方のフォールスルータイムから減算することにより計算される。ステップ74の次はステップ76であり、そこではステップ74で計算されたデルタ値(差の値)が特定の閾値より大きいか否かが決定される。閾値は絶対数に設定することができ、またはフォールスルータイムの大きい方または小さい方のある割合として計算することができる。閾値は、いくつかの経験的観察や計算にしたがって決定することができ、その性能は当業者には単純である。
ステップ76においてデルタ値が特定の閾値未満であると決定された場合、制御はステップ76からステップ78へ進み、そこでは上述と類似の方法でブロックがLRU42、44の1つにランダムに割り当てられる。その代わりに、テストステップ76でデルタ値が特定の閾値より大きいと決定されたならば、制御はテストステップ76からステップ79へ進み、そこで小さいフォールスルータイムを有するほうのLRUに新しいブロックが割り当てられる。
ここに記載されたシステムはあらゆる数のLRUを使用して実行することができる。LRUの数が増加すると、ブロックがLRU上で費やす時間量が減少する。しかし、LRUへのアクセスを待っているプロセッサの衝突数も減少する。1つのプロセスのみが一度にそのデータ構造を変更できるメカニズムが存在するならば、各LRUについて2重にリンクされたリングリスト以外のデータ構造も使用できることを述べておく。また、本発明は、ここに図示したものと異なる方法で動作するように構成された、ここに示したものと異なるハードウェアにより実施することができることを述べておく。ホストインタフェースユニット22〜24もキャッシュ39を制御することができる。
図6を参照すると、概略図100は、複数のLRU106〜108を含むキャッシュ104を有する記憶装置102を示す。LRU106〜108の動作は、LRU106〜108へのブロックの割り当てを以下に詳細に述べる種々の手法にしたがって行うことができることを除き、上述のものと同じである。データ記憶装置102は、外部ホストシステム(図示せず)をデータ記憶装置102に接続するための複数の接続110〜112を有する。ホスト接続110〜112をグループに分類し、例えばホスト接続110が第1のグループを代表し、ホスト接続111が第2のグループを代表し、ホスト接続112が第3のグループを代表することができる。
以下により詳細に説明するように、ホスト接続110〜112の異なるグループに、異なるアクセス、優先度およびLRU106〜108に関するサービスレベルを提供することができる。そうして、例えば、ホスト接続111のグループよりも多くの利用可能メモリ空間を有するキャッシュ104の第1のセグメントをホスト接続110のグループに割り当てることができる。これは、例えば、ホスト接続110〜112の各グループをLRU106〜108の特定の1つにマップすることにより実現することができる。こうして、セグメントは1つ以上のLRUを含み、または一般的にキャッシュメモリのあらゆるサブセットを参照することができる。より低いレベルのサービスを提供されているホスト接続110〜112の第2のグループより多くのLRUにマップされることにより、ホスト接続110〜112の第1のグループに、キャッシュ104(すなわち、多量のメモリ空間に対応するキャッシュ104のセグメント)へのより多数のアクセスを提供することができる。加えて、ホスト接続110〜112の第1のグループを、ホスト接続110〜112の第2のグループより相対的に大きなLRU(すなわち、より多数のブロックを含むLRU)に割り当てることができる。
図7を参照すると、テーブル120は特定のLRUを特定のグループに割り当てる手法を示す。図7の例は、4つのグループの外部ホスト接続と8つのLRUがあると仮定している。テーブル120は各グループを特定のLRUマスクに関連付け、そのLRUマスクはどのLRUが対応するグループに割り当てられているかを示す8ビット値である。LRUマスクの各ビット位置は、8つのLRUの特定の1つに対応する。加えて、あるビットの値1は、対応するLRUがそのグループに割り当てられていることを示し、値0は対応するLRUがそのグループに割り当てられていないことを示す。こうして、図7の例では、グループ1が3つのLRUに割り当てられ、グループ2および3の各々が2つのLRUに割り当てられ、グループ4は1つのみのLRUが割り当てられている。図7の例では、2つ以上のグループに割り当てられたLRUは無い。しかし、他の実施形態では、2つ以上のグループを同一のLRUに割り当てることができる(すなわち、複数のグループが特定のLRUを共用する)。
全てのLRUが同一のサイズであると仮定すると(異なるサイズのLRUを有する実施形態は後述する)、テーブル120はグループ1接続に接続された外部ホストシステムはキャッシュの3/8に対応するセグメントに割り当てられ、グループ2および3は各々キャッシュの1/4に対応するセグメントに割り当てられ、グループ4はキャッシュの1/8に対応するセグメントに割り当てられることを示している。グループ間の特定の割り当ては、例えばグループ1はより多数の外部ホストシステムを有し、またはより多量の記憶を要する外部ホストシステムを有するなどの種々の理由から行うことができる。加えて、テーブル120に反映されている種々のグループのサービスレベルは、例えば記憶装置102を制御する記憶提供者への追加料金の支払いなどを含む種々の他の理由によりより高いレベルのサービスがグループ1に提供されていることを単に示している。
テーブル120に記載された方針の実施は、上述のスロット数/LRU割り当てルールを使用して達成することができる。すなわち、式:LRU番号=スロット番号(モジューロ)N(ここで、NはLRUの数)を使用しLRUが特定のスロット番号と関連付けられると仮定すると、キャッシュのブロックの要求は、要求を行った装置のグループに割り当てられたLRUに対応するスロット番号を割り当てることにより処理される。例えば、10個のLRUがあり、要求している装置がLRU番号5にアクセスするグループに関連付けされているとすると、その装置からのキャッシュブロックの要求は、スロット番号モジューロ10が5となるようにスロット番号を割り当てる(例えば、スロット番号5、15、25など)。
図8を参照すると、フローチャート130は、要求している外部ホストシステムによりキャッシュメモリを取得することに関連して実行されるステップを示す。処理は第1のステップ132で始まり、そこでキャッシュブロックを要求している外部ホストシステムに対応する接続についてグループ番号が取得される。図6に示し先に述べたように、グループ番号は記憶装置102のホスト接続110〜112にマップすることができる。各ホスト接続110〜112が固有の識別子を有し、ホスト接続110〜112の特定の1つの識別子にグループ番号をマップする従来のテーブル(図示せず)を提供するようにすることができる。
ステップ132の次はステップ134であり、そこでLRUマスクが取得される。LRUマスクは、図7に関連して上述したテーブル120に類似するテーブルを使用して取得される。ステップ134の次はステップ136であり、そこではステップ134で取得されたLRUマスクから割り当てられたLRUにマッチングするスロット番号が返される。マッチングスロット番号をステップ136で返すことは後により詳細に説明する。
ステップ136の次はテストステップ138であり、ステップ138はマッチングスロット番号がステップ136で取得されたか否かを決定する。そのグループに割り当てられたLRUに対応する利用可能なスロットが存在しない可能性があり、よってステップ136でマッチングスロット番号を返すことが不可能な場合があることを述べておく。スロットは、種々の理由、例えばブロックに対応するスロットが変更中であるなどの理由により利用不能となる場合がある。ステップ136でマッチングスロット番号を取得するルーチンは、いずれのスロット番号にも対応しない値、例えば−1を返すことにより、マッチングスロットが利用不能であることを示すことができる。
ステップ138でマッチングスロットが利用可能であることが決定されると、処理は完了する。そうでなく、マッチングスロット番号が利用不能であるならば、制御はステップ138から140へ進み、そこで代わりのスロット番号が返される。ステップ140で代わりのスロット番号を返すことは、後により詳細に説明される。
図9を参照すると、フローチャート150は図8のステップ136でマッチングスロット番号を返すことに関して実行されるステップの詳細を示す。一般的に、マッチングスロット番号を返すプロセスは、空きスロットが見つかるまでグループのLRUについての全てのスロットの処理を繰り返すことを伴う。ここに記載する実施形態では、各LRUのスロットのリストを指し示すポインタがあり、各LRUへのポインタ(すなわち、各LRUのスロットの各リストへのポインタ)がある。よって、そのプロセスは、スロットを要求しているグループに割り当てられた全てのLRUを通じた第1の(外部)繰返しループと、どのスロットが空いているかを決定するために各LRUについて全てのスロットを調べる第2の(内部)繰返しループと、を含む。
処理は第1のステップ152で始まり、そこでグループの第1のLRUが指し示される。そのグループに対応するLRUの決定は、例えば図7との関連で先に述べたように、LRUマスクの適当なビットを調べてそれがそのグループについて1か0かを決定することにより行うことができる。ステップ152の次はステップ154であり、そこでLRUの第1スロットが指し示される。上述のように、種々の手法を利用してスロット番号を特定のLRUにマップすることができ、その方法は、式:LRU番号=(スロット番号)モジューロNを含み、NはLRUの数である。スロット番号をLRUにマップするための他の手法を以下に述べる。
ステップ154の次はテストステップ156であり、そこでは指し示されているスロットが使用可能か否かが決定される。指し示されているスロットが使用可能である場合、制御はステップ156からステップ158へ移行し、そこでスロット番号が呼び出しルーチン(すなわち、図8に示すプロセス)へ戻る。そうでなく、テストステップ156でスロットが利用不能であることが決定されたならば、制御はステップ156からテストステップ160へ進み、そこでさらに調べるべきスロットがLRUに存在するか否かを決定する。LRUにさらにスロットがあれば、制御はステップ160からステップ162へ進み、そこでそのLRU内の次のスロットが指し示される。ステップ162の後、制御はステップ156へ戻り、次の繰返しを実行し、そうして第2の(内部)ループを閉じる。
LRUの全てのスロットが調べられると、次に制御はテストステップ160からテストステップ164へ進み、そこでそのグループにさらについて調べるべきLRUがあるか否かが決定される。上述のように、2つ以上のLRUを1つのグループに割り当てることができる。テストステップ164において、そのグループについてさらに調べるべきLRUがあると決定された場合、制御はステップ164からステップ166へ進み、そこで−1が(呼び出しルーチンへ)返される。ステップ166の後、処理は終了する。
テストステップ164において、さらに調べるべきLRUがあると決定された場合、次に制御はステップ164からステップ168へ進み、そこで次のLRUへのポインタが取得される。ステップ168に続いて、制御はステップ154へ戻って次の繰返しを実行し、そうして第1の(外部)ループを閉じる。
(ステップ136でマッチングスロットが使用不能な場合に)代わりのスロットが取得される図8のステップ140は、種々の方法で実行することができ、それは他のグループからスロットを“借りる”ことを含む。1つの実施形態では、他のグループからの第1の利用可能スロットは単純にステップ140で取得される。どのLRUが空きスロットを与えるかの選択はランダムに行うことができる。別の手法は、最大のLRU番号が割り当てられた別のグループに対応するLRUから利用可能なスロットを返し、最も空いているスロットを有するLRUに対応するスロットを返し、および/または最大の割合の利用可能なスロットを有するグループに関連するLRUに対応するスロットを返すことを含む。他の手法は従来技術の当業者に自明であろう。
図10を参照すると、テーブル170は、式:LRU番号=(スロット番号)モジューロN(NはLRUの数)の使用に変わるスロット番号のマッピング手法を示す。図10の手法はLRUの相対的サイズを調整することに使用できる。テーブルは、スロット番号のエントリーと、LRU番号についての対応するエントリーを含む。図10のテーブル170の例については、スロット番号0と1はLRU番号1に対応し、スロット2〜5はLRU番号2に対応し、スロット6はLRU番号3に対応し、スロット7〜12はLRU番号4に対応する。こうしてスロットをLRUにマッピングすることは、LRUが異なるサイズを有することを可能とする。こうして、いくつかの場合、相対的に大きなLRUの小さい番号を、相対的に小さいLRUの大きな番号に割り当てるのではなく特定のグループに割り当て、またその逆を行うことが有益である。例えば、各々が10個のスロットを有する3つのLRUを特定のグループに割り当てるのではなく、各々が15スロットを有する2つのLRUを割り当てることが望ましい。スロット番号をLRUにマッピングするためのテーブル170とグループ番号をLRUにマッピングするためのテーブル120の使用は、記憶装置に接続された装置についての性能レベル、利用可能なキャッシュメモリ、などを調整する際に最大の柔軟性を提供する。
ここに記載したグループをキャッシュのセグメントに割り当てるシステムは、異なるデータ構造とデータのブロックをキャッシュに記憶するための手法を使用して実行することができる。例えば、種々のグループが使用するキャッシュのセグメントを単純にオーバーラップ(すなわち、いくつかのグループがセグメントのある部分を共用する)を有しまたは有しないように割り当てることができる。キャッシュ内のデータのブロックは、ブロックの線形アレイ、ブロックへのポインタのリストまたはアレイ、その他としてキャッシュを構成およびアクセスすることを含む種々の従来のキャッシュ管理手法のいずれかを使用して操作することができる。
本発明を詳細に図示および記述した好適な実施形態との関係で説明してきたが、従来技術の当業者にはその種々の変形および改善が容易に自明となろう。よって、本発明の精神および視野は請求の範囲によってのみ限定されるべきである。
Claims (27)
- キャッシュメモリにデータを記憶する方法において、
記憶装置に接続された1つ以上の外部ホストシステムの内の第1のグループを受け持つキャッシュメモリの第1のセグメントへの排他的アクセスを可能とする第1の機構を提供する工程と、
記憶装置に接続された1つ以上の外部ホストシステムの内の第2のグループを受け持つキャッシュメモリの第2のセグメントへの排他的アクセスを可能とする第2の機構を提供する工程と、
を有し、前記第1のセグメントへの排他的アクセスは前記第2のセグメントへのアクセスと独立であることを特徴とする方法。 - キャッシュメモリの少なくとも第3のセグメントへの排他的アクセスを可能とする少なくとも第3の機構を有し、前記いずれかのセグメントへの排他的アクセスは他のセグメントへの排他的アクセスと独立である請求項1に記載の方法。
- 前記第1及び第2の機構はロックである請求項1に記載の方法。
- 前記ロックはハードウエアによるロックである請求項3に記載の方法。
- 前記ロックはソフトウエアによるロックである請求項3に記載の方法。
- キャッシュメモリの第1のセグメントに第1のデータ構造体を提供する工程と、
キャッシュメモリの第2のセグメントに第2のデータ構造体を提供する工程と、を有し、第1のセグメントへのアクセスは、第1のデータ構造体へのアクセスを含み、第2のセグメントへのアクセスは、第2のデータ構造体へのアクセスを含む請求項1に記載の方法。 - 前記データ構造体はデータのブロックの2重にリンクしたリングリストである請求項5に記載の方法。
- データの各ブロックはディスクドライブ上のトラックに対応する請求項7に記載に方法。
- 前記第1のセグメントについて第1のキャッシュフォールスルータイムを決定する工程と、
前記第2のセグメントについての第2のキャッシュフォールスルータイムを決定する工程と、
第1及び第2のキャッシュフォールスルータイムに従って第1および第2のセグメントの1つにデータを割り当てる工程と、を有する請求項1に記載の方法。 - 第1と第2のキャッシュフォールスルータイムの差を決定する工程をさらに有し、第1および第2のセグメントの1つへのデータの割り当てが前記差に基づく請求項9に記載の方法。
- 前記差の所定量によって、データが第1および第2のセグメントの一方に割り当てられる請求項10に記載の方法。
- 記憶装置のキャッシュメモリにおいて、
記憶装置に接続された1つ以上の外部ホストシステムの内の第1のグループを受け持つキャッシュメモリの第1のセグメントへの排他的アクセスを可能とする第1の機構を有する第1のセグメントと、
記憶装置に接続された1つ以上の外部ホストシステムの内の第2のグループを受け持つキャッシュメモリの第2のセグメントへの排他的アクセスを可能とする第2の機構を有する第2のセグメントと、
を有し、前記第1のセグメントへの排他的アクセスは前記第2のセグメントへの排他的アクセスと独立であることを特徴とするキャッシュメモリ。 - 前記第1及び第2の機構はソフトウエアによるロックである請求項12に記載のキャッシュメモリ。
- 前記キャッシュメモリの第1のセグメントは第1のデータ構造体を有し、
キャッシュメモリの第2のセグメントは第2のデータ構造体を有し、前記第1のセグメントへのアクセスは、第1のデータ構造体へのアクセスを含み、第2のセグメントへのアクセスは、第2のデータ構造体へのアクセスを含む請求項12に記載の方法。 - 前記データ構造体はデータのブロックの2重にリンクしたリングリストである請求項14に記載のキャッシュメモリ。
- データの各ブロックはディスクドライブ上のトラックに対応する請求項15に記載のキャッシュメモリ。
- 前記第1のセグメントについて第1のキャッシュフォールスルータイムが決定され、
前記第2のセグメントについての第2のキャッシュフォールスルータイムが決定され、データは第1及び第2のキャッシュフォールスルータイムに従って第1および第2のセグメントの1つに割り当てられる請求項12に記載のキャッシュメモリ。 - 第1と第2のキャッシュフォールスルータイムの差が決定され、第1および第2のセグメントの1つへのデータの割り当てが前記差に基づく請求項17に記載のキャッシュメモリ。
- 前記差の所定量によって、データが第1および第2のセグメントの一方に割り当てられる請求項18に記載のキャッシュメモリ。
- 複数のディスクドライブと、
各々が前記ディスクドライブのうちの1つに接続された複数のディスクインターフェースユニットと、
前記ディスクインターフェースユニットを相互接続するバスと
前記バスに接続されたキャッシュメモリとからなる記憶装置であって、
前記キャッシュメモリは複数のセグメントを有し、前記複数の各々のセグメントは前記ディスクインターフェースユニットの1つにより独立に制御可能である記憶装置。 - 前記キャッシュメモリの前記セグメントはそれらへの排他的アクセスを可能とする機構を有する請求項20に記載の記憶装置。
- 前記各セグメントは各データ構造体を有し、前記セグメントのアクセスはそれぞれの前記データ構造体に対応するアクセスである請求項21に記載の記憶装置。
- 前記データ構造体はデータのブロックの2重にリンクしたリングリストである請求項22に記載の記憶装置。
- キャッシュメモリが複数のセグメントと、複数のロック機構と、を有し、前記ロック機構の各々が前記セグメントの特定の1つへの排他的アクセスに対応し、前記セグメントの1つへの排他的アクセスは前記セグメントの他の1つへの排他的アクセスと独立である請求項20に記載の記憶装置。
- 前記各セグメントは各データ構造体を有し、前記セグメントのアクセスはそれぞれの前記データ構造体に対応するアクセスである請求項20に記載の記憶装置。
- 前記データ構造体はデータのブロックの2重にリンクしたリングリストである請求項25に記載の記憶装置。
- データの各ブロックはディスクドライブ上のトラックに対応する請求項26に記載の記憶装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/434,611 US6457102B1 (en) | 1999-11-05 | 1999-11-05 | Cache using multiple LRU's |
US09/535,134 US6728836B1 (en) | 1999-11-05 | 2000-03-24 | Segmenting cache to provide varying service levels |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000330866A Division JP3839655B2 (ja) | 1999-11-05 | 2000-10-30 | 変化するサービスレベルを提供するためのキャッシュのセグメント化 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2006196011A true JP2006196011A (ja) | 2006-07-27 |
Family
ID=27030247
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000330866A Expired - Lifetime JP3839655B2 (ja) | 1999-11-05 | 2000-10-30 | 変化するサービスレベルを提供するためのキャッシュのセグメント化 |
JP2006028456A Pending JP2006196011A (ja) | 1999-11-05 | 2006-02-06 | 変化するサービスレベルを提供するためのキャッシュのセグメント化 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000330866A Expired - Lifetime JP3839655B2 (ja) | 1999-11-05 | 2000-10-30 | 変化するサービスレベルを提供するためのキャッシュのセグメント化 |
Country Status (3)
Country | Link |
---|---|
US (1) | US6898672B2 (ja) |
EP (1) | EP1098249A1 (ja) |
JP (2) | JP3839655B2 (ja) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8635305B1 (en) * | 2001-12-19 | 2014-01-21 | Cisco Technology, Inc. | Mechanisms for providing differentiated services within a web cache |
US7254676B2 (en) | 2002-11-15 | 2007-08-07 | Intel Corporation | Processor cache memory as RAM for execution of boot code |
JP4437650B2 (ja) | 2003-08-25 | 2010-03-24 | 株式会社日立製作所 | ストレージシステム |
JP4257783B2 (ja) * | 2003-10-23 | 2009-04-22 | 株式会社日立製作所 | 論理分割可能な記憶装置及び記憶装置システム |
JP4227035B2 (ja) * | 2004-02-03 | 2009-02-18 | 株式会社日立製作所 | 計算機システム、管理装置、ストレージ装置及びコンピュータ装置 |
JP2005267008A (ja) | 2004-03-17 | 2005-09-29 | Hitachi Ltd | ストレージ管理方法およびストレージ管理システム |
US8549226B2 (en) | 2004-05-14 | 2013-10-01 | Hewlett-Packard Development Company, L.P. | Providing an alternative caching scheme at the storage area network level |
US7260679B2 (en) * | 2004-10-12 | 2007-08-21 | International Business Machines Corporation | Apparatus and method to manage a data cache using a first and second least recently used list |
US7500050B2 (en) | 2006-03-20 | 2009-03-03 | International Business Machines Corporation | Wise ordering for writes—combining spatial and temporal locality in write caches for multi-rank storage |
US7574556B2 (en) * | 2006-03-20 | 2009-08-11 | International Business Machines Corporation | Wise ordering for writes—combining spatial and temporal locality in write caches |
US20080032735A1 (en) * | 2006-08-07 | 2008-02-07 | Research In Motion Limited | Apparatus, and associated method, for performing cell selection in a packet radio communication system |
CN102486753B (zh) | 2009-11-30 | 2015-09-16 | 国际商业机器公司 | 构建及允许访问高速缓存的方法、设备及存储系统 |
US20140115260A1 (en) * | 2012-10-18 | 2014-04-24 | Oracle International Corporation | System and method for prioritizing data in a cache |
US9942324B2 (en) * | 2015-08-05 | 2018-04-10 | Futurewei Technologies, Inc. | Rebalancing and elastic storage scheme with elastic named distributed circular buffers |
CN110377572B (zh) * | 2019-07-18 | 2024-02-13 | 腾讯科技(深圳)有限公司 | 一种缓存空间管理方法、装置、设备及介质 |
US11403232B2 (en) * | 2020-05-29 | 2022-08-02 | EMC IP Holding Company LLC | Sequence thrashing avoidance via fall through estimation |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4371929A (en) * | 1980-05-05 | 1983-02-01 | Ibm Corporation | Multiprocessor system with high density memory set architecture including partitionable cache store interface to shared disk drive memory |
US5257367A (en) * | 1987-06-02 | 1993-10-26 | Cab-Tek, Inc. | Data storage system with asynchronous host operating system communication link |
US5263160A (en) * | 1991-01-31 | 1993-11-16 | Digital Equipment Corporation | Augmented doubly-linked list search and management method for a system having data stored in a list of data elements in memory |
JPH08314779A (ja) * | 1995-05-16 | 1996-11-29 | Hitachi Ltd | サーバーシステム |
JPH11249916A (ja) * | 1998-03-03 | 1999-09-17 | Fujitsu Ltd | メモリ管理装置および記録媒体 |
JPH11259318A (ja) * | 1998-03-13 | 1999-09-24 | Hitachi Ltd | ディスパッチ方式 |
JP2000200214A (ja) * | 1998-08-27 | 2000-07-18 | Lucent Technol Inc | メモリ―システムおよびメモリ―バンクを割り当てる方法 |
US6349363B2 (en) * | 1998-12-08 | 2002-02-19 | Intel Corporation | Multi-section cache with different attributes for each section |
JP3358655B2 (ja) * | 1998-12-22 | 2002-12-24 | 日本電気株式会社 | ディスクアレイ装置におけるキャッシュメモリ管理方法 |
US6493800B1 (en) * | 1999-03-31 | 2002-12-10 | International Business Machines Corporation | Method and system for dynamically partitioning a shared cache |
US6457102B1 (en) * | 1999-11-05 | 2002-09-24 | Emc Corporation | Cache using multiple LRU's |
-
2000
- 2000-10-12 EP EP00122104A patent/EP1098249A1/en not_active Ceased
- 2000-10-30 JP JP2000330866A patent/JP3839655B2/ja not_active Expired - Lifetime
-
2004
- 2004-03-02 US US10/791,216 patent/US6898672B2/en not_active Expired - Lifetime
-
2006
- 2006-02-06 JP JP2006028456A patent/JP2006196011A/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
JP3839655B2 (ja) | 2006-11-01 |
JP2001222469A (ja) | 2001-08-17 |
US6898672B2 (en) | 2005-05-24 |
US20040215884A1 (en) | 2004-10-28 |
EP1098249A1 (en) | 2001-05-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6728836B1 (en) | Segmenting cache to provide varying service levels | |
JP2006196011A (ja) | 変化するサービスレベルを提供するためのキャッシュのセグメント化 | |
EP0130349B1 (en) | A method for the replacement of blocks of information and its use in a data processing system | |
US5835908A (en) | Processing multiple database transactions in the same process to reduce process overhead and redundant retrieval from database servers | |
US7707337B2 (en) | Object-based storage device with low process load and control method thereof | |
US6507893B2 (en) | System and method for time window access frequency based caching for memory controllers | |
US6848034B2 (en) | Dense server environment that shares an IDE drive | |
US6112281A (en) | I/O forwarding in a cache coherent shared disk computer system | |
US5978839A (en) | Data sharing method in a plurality of computer systems | |
JPH02228745A (ja) | 入出力キヤツシユ | |
US5897660A (en) | Method for managing free physical pages that reduces trashing to improve system performance | |
JPH0571976B2 (ja) | ||
JP2007213619A (ja) | 共用仮想記憶を管理する方法および装置 | |
JPH0683782A (ja) | データ処理制御方法及びコンピュータ・システム | |
JPS595483A (ja) | 計算装置の動作方法 | |
JP2002202914A (ja) | 大容量記憶装置により提供される、制御装置lunを介したlunへのアクセスを安全にする方法およびシステム | |
JP2005519391A (ja) | 共有ベクトルの増加を伴わないdsmマルチプロセッサシステムにおけるキャッシュコヒーレンスのための方法およびシステム | |
US6473845B1 (en) | System and method for dynamically updating memory address mappings | |
US7032093B1 (en) | On-demand allocation of physical storage for virtual volumes using a zero logical disk | |
US7103747B2 (en) | Memory table and memory manager for use in managing memory | |
US7818478B2 (en) | Input/Output completion system for a data processing platform | |
US6029229A (en) | Digital data storage subsystem including directory for efficiently providing formatting information for stored records | |
JPH07262071A (ja) | データベースシステム及び負荷分散制御方法 | |
KR100300792B1 (ko) | 공유 메모리 멀티프로세서용 계층적 버스 단순 코마 구조 | |
US11474938B2 (en) | Data storage system with multiple-size object allocator for disk cache |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080812 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20090407 |