JP2001188707A - 複数のlruを使用するキャッシュ - Google Patents

複数のlruを使用するキャッシュ

Info

Publication number
JP2001188707A
JP2001188707A JP2000330774A JP2000330774A JP2001188707A JP 2001188707 A JP2001188707 A JP 2001188707A JP 2000330774 A JP2000330774 A JP 2000330774A JP 2000330774 A JP2000330774 A JP 2000330774A JP 2001188707 A JP2001188707 A JP 2001188707A
Authority
JP
Japan
Prior art keywords
cache memory
access
data
cache
lru
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.)
Withdrawn
Application number
JP2000330774A
Other languages
English (en)
Inventor
Daniel Lambright
ダニエル・ランブライト
Adi Ofer
アディ・オファー
Natan Vishlitzky
ナタン・ヴィシュリツキィ
Yuval Ofek
ユーヴァル・オフェク
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
EMC Corp
Original Assignee
EMC Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by EMC Corp filed Critical EMC Corp
Publication of JP2001188707A publication Critical patent/JP2001188707A/ja
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/123Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list

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

(57)【要約】 (修正有) 【課題】 いくつかのホストプロセッサが他のホストプ
ロセッサより良いキャッシュ性能を受けることができる
ように記憶装置に接続されたホストプロセッサシステ
ム。 【解決手段】 キャッシュメモリの第1の部分への排他
的アクセスを可能とする第1の機構を提供する工程と、
キャッシュメモリの第2の部分への排他的アクセスを可
能とする第2の機構を提供する工程と、を有し、第1の
部分への排他的アクセスは第2の部分への排他的アクセ
スと独立である。キャッシュメモリの第1の部分に第1
のデータ構造を提供する工程と、キャッシュメモリの第
2の部分に第2のデータ構造を提供する工程とを含み、
第1の部分へのアクセスは第1のデータ構造へのアクセ
スを含み、第2の部分へのアクセスは第2の構造へのア
クセスを含む。データ構造はデータのブロックの2重に
リンクしたリングリストとすることができ、ディスクド
ライブ上のトラックに対応するものとすることができ
る。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明はコンピュータデータ
記憶の分野に関し、特にキャッシュにアクセスする複数
のプロセッサを有するコンピュータデータ記憶システム
にキャッシュを構成する分野に関する。
【0002】
【従来の技術】ホストプロセッサシステムは、複数のイ
ンタフェースユニット、ディスクドライブ、およびディ
スクインタフェースユニットを含む記憶装置を使用して
データを記憶および検索することができる。そのような
記憶装置は、例えばマサチューセッツ州、ホプキントン
のEMC社により提供され、Yanai et al.への米国特許
第5,206,939号、Galtzur et al.への米国特許第 5,778,
394号、Vishlizzky et al.への米国特許第5,845,147
号、およびOfekへの米国特許第5,857,208号に記載され
ている。ホストシステムは、それに設けられた複数のチ
ャンネルを通じて記憶装置へアクセスする。ホストシス
テムは記憶装置へのチャンネルを通じてデータおよびア
クセス制御情報を提供し、記憶装置もそのチャンネルを
通じてホストシステムへデータを提供する。ホストシス
テムは記憶装置のディスクドライブを直接的にはアドレ
スしないが、ホストシステムが複数の論理的ディスクユ
ニットと考えるものにアクセスする。論理的ディスクユ
ニットは実際のディスクドライブに対応するものまたは
対応しないものとすることができる。複数のホストシス
テムが単一の記憶装置ユニットへアクセスできるように
することにより、ホストシステムはその内部に記憶され
たデータを共用することができる。
【0003】記憶システムの性能はキャッシュを使用す
ることにより改善されうる。ディスクドライブシステム
の場合、ディスクドライブより相対的に低いデータアク
セス時間を有する半導体メモリのブロックを使用して実
現することができる。アクセスされたデータは有益にデ
ィスクドライブからキャッシュへ移動されるので、その
データへの2回目のおよびその後のアクセスはディスク
ドライブではなくキャッシュへ行うことができる。最近
アクセスされていないデータをキャッシュから除去して
新たなデータのための空間を作ることができる。しばし
ば、そのようなキャッシュアクセスは、データを要求す
るホストシステムにとって明白である。
【0004】キャッシュを実現する1つの手法は、デー
タをブロックで記憶し、各ブロックを以下に「論理的リ
ングユニット」(LRU)と呼ぶ2重にリンクされたリ
ングリストに一体的にリンクすることである。LRUの
各ブロックは論理的ディスクユニットからデータのブロ
ックを示す。それらのブロックは、それらがディスクか
ら検索された順序で2重にリンクされたリングリスト内
に配置される。ポインタは、リストに最も最近加えられ
たブロックを指し示す。こうして、新しいブロックをキ
ャッシュに追加すべき場合、LRU構造をヘッドポイン
タとともに使用して除去すべきLRU中の最も古いブロ
ックを決定して新しいブロックのための空間を作る。
【0005】
【発明が解決しようとする課題】LRUメカニズムの欠
点は、2重にリンクされたリング構造の複雑性により複
数のプロセスがいつでもデータ構造を操作可能とするこ
とが困難であるので、単一のプロセスのみしか一時にリ
ングリストを操作可能できないことである。この一時に
1つのアクセスを実施する1つの方法はソフトウェアロ
ックを使用することであり、それはLRUへのプロセス
の排他的アクセスを可能とする従来のセマフォー(sema
phore)類似の機構である。しかし、複数のプロセッサ
がキャッシュの使用を必要とする場合、排他的LRUア
クセス方法は障害となる。加えて、いくつかの場合で
は、いくつかのホストプロセッサが他のホストプロセッ
サより良いキャッシュ性能を受けることができるように
記憶装置に接続されたホストプロセッサシステムに提供
されるキャッシュサービスを調整するための機構を提供
することが望まれる。
【0006】
【課題を解決するための手段】本発明によれば、キャッ
シュメモリにデータを記憶する方法は、キャッシュメモ
リの第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の
部分の一方にランダムに割り当てすることができる。
【0007】さらに本発明によれば、キャッシュメモリ
は、第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つにランダムに割り当てることができる。
【0008】さらに本発明によれば、記憶装置は、複数
のディスクドライブと、各々がディスクドライブの1つ
に接続された複数のディスクインタフェースユニット
と、ディスクインタフェースユニットを相互接続するバ
スと、バスに接続され複数の部分を有するキャッシュメ
モリとを有し、複数の部分の各々はディスクインタフェ
ースユニットの1つにより独立に制御可能である。キャ
ッシュメモリの各部分はそれらへの排他的アクセスを可
能とする機構を有することができる。各部分はデータ構
造を有し、部分のアクセスはデータ構造の対応するもの
へのアクセスを含むことができる。データ構造は、2重
にリンクされたリングリストとすることができる。
【0009】さらに本発明によれば、キャッシュメモリ
は複数の部分と複数のロックとを有し、ロックの各々は
特定の1つの部分への排他的アクセスに対応し、1つの
部分への排他的アクセスは部分の他の1つへの排他的ア
クセスと独立である。各部分はデータ構造を有し、1つ
の部分へのアクセスはデータ構造へのアクセスを含む。
データ構造は、2重にリンクされたリングリストとする
ことができる。データの各ブロックはディスクドライブ
上のトラックに対応することができる。
【0010】本発明によれば、記憶装置のキャッシュメ
モリにデータを記憶する方法は、記憶装置に接続された
第1のグループの外部ホストシステムのためにキャッシ
ュメモリの第1のセグメントにアクセスする工程と、記
憶装置に接続された第2のグループの外部ホストシステ
ムのためにキャッシュメモリの第2のセグメントにアク
セスする工程と、を有し、キャッシュメモリの第2のセ
グメントの少なくとも一部はキャッシュメモリの第1の
セグメントの一部ではない。いくつかの実施形態では、
キャッシュメモリの第2のセグメントは第1のセグメン
トの一部ではない。
【0011】また、記憶装置のキャッシュメモリにデー
タを記憶する方法は、キャッシュメモリの第1のセグメ
ントに第1のデータ構造を提供する工程と、キャッシュ
メモリの第2のセグメントに第2のデータ構造を提供す
る工程と、を有し、第1のセグメントのアクセスは第1
のデータ構造のアクセスを含み、第2のセグメントのア
クセスは第2のデータ構造のアクセスを含む。データ構
造は、データのブロックの2重にリンクしたリングリス
トとすることができる。データの各ブロックはディスク
ドライブ上のトラックに対応することができる。
【0012】また、キャッシュメモリにデータを記憶す
る方法は、キャッシュメモリをスロットに割り当てる工
程と、各スロットを、キャッシュメモリの第1および第
2のセグメントの少なくとも一方にマップする工程と、
を有することができる。スロットは式またはテーブルを
使用してセグメントにマップされうる。グループはテー
ブルを使用してセグメントの特定のものへマップされう
る。テーブルはグループ識別子と、対応するマスクとを
含むことができる。マスクは、N番目のビット位置に
「1」であるビットを有し、あるグループがN番目のセ
グメントに割り当てられていることを示す二進数値とす
ることができる。キャッシュにデータを記憶する方法
は、キャッシュメモリのブロックの要求に応じて、キャ
ッシュメモリにマップされたグループについてのキャッ
シュメモリのブロックの利用可能性を決定する工程を有
することができる。利用可能なグループについてのキャ
ッシュメモリのブロックが無いことに応じて、他のグル
ープに対応するキャッシュメモリのブロックを提供する
ことができる。提供されるキャッシュメモリのブロック
は、次に利用可能なブロック、割り当てられた最大番号
のブロックを有するグループに対応するブロック、利用
可能な最大番号を有するブロックを有するグループに対
応するブロック、および、利用可能なブロックの最大割
合を有するグループに対応するブロックの少なくとも1
つとすることができる。
【0013】さらに本発明によれば、記憶装置のキャッ
シュメモリは、記憶装置に接続された第1のグループの
外部ホストシステムのためにアクセスされるキャッシュ
メモリの第1のセグメントと、記憶装置に接続された第
2のグループの外部ホストシステムのためにアクセスさ
れるキャッシュメモリの第2のセグメントと、を有し、
キャッシュメモリの第2のセグメントの少なくとも一部
はキャッシュメモリの第1のセグメントの一部ではな
い。いくつかの実施形態では、キャッシュメモリの第2
のセグメントは第1のセグメントの一部ではない。
【0014】また、キャッシュメモリは、キャッシュメ
モリの第1のセグメント内の第1のデータ構造と、キャ
ッシュメモリの第2のセグメント内の第2のデータ構造
と、を有し、第1のセグメントのアクセスは第1のデー
タ構造のアクセスを含み、第2のセグメントのアクセス
は第2のデータ構造のアクセスを含む。データ構造は、
データのブロックの2重にリンクされたリングリストと
することができる。データの各ブロックはディスクドラ
イブのトラックに対応することができる。また、キャッ
シュメモリは、複数のスロットを有し、各スロットはキ
ャッシュメモリの一部に対応し、各スロットはキャッシ
ュメモリの第1および第2のセグメントの少なくとも1
つにマップされる。スロットは、式またはテーブルを使
用してセグメントにマップされうる。グループはテーブ
ルを使用してセグメントの特定のものにマップされう
る。テーブルは、グループ識別子と、対応するマスク
と、を有することができる。マスクは、N番目のビット
位置に「1」であるビットを有し、あるグループがN番
目のセグメントに割り当てられていることを示す二進数
値とすることができる。
【0015】さらに本発明によれば、記憶装置は、複数
のディスクドライブと、各々がディスクドライブのうち
の1つに接続された複数のディスクインタフェースユニ
ットと、ディスクインタフェースユニットを相互接続す
るバスと、バスに接続されたキャッシュメモリと、を有
し、キャッシュメモリは、記憶装置に接続された第1の
グループの外部ホストシステムのためにアクセスされる
第1のセグメントと、記憶装置に接続された第2のグル
ープの外部ホストシステムのためにアクセスされる第2
のセグメントと、を有し、キャッシュメモリの第2のセ
グメントの少なくとも一部はキャッシュメモリの第1の
セグメントの一部ではない。
【0016】さらに本発明によれば、記憶装置のキャッ
シュメモリにデータを記憶する方法は、記憶装置に接続
された第1のグループの外部ホストシステムのためにキ
ャッシュメモリの第1のセグメントにアクセスする工程
と、記憶装置に接続された第2のグループの外部ホスト
システムのためにキャッシュメモリの第2のセグメント
にアクセスする工程であって、キャッシュメモリの第2
のセグメントの少なくとも一部はキャッシュメモリの第
1のセグメントの一部ではない工程と、キャッシュメモ
リのブロックの要求に応じて、キャッシュメモリにマッ
プされたグループについてのキャッシュメモリのブロッ
クの利用可能性を決定する工程と、利用可能なグループ
についてのキャッシュメモリが無いことに応じて、他の
グループに対応するキャッシュメモリのブロックを提供
する工程と、を有する。また、記憶装置のキャッシュメ
モリにデータを記憶する方法は、キャッシュメモリの第
1のセグメントに第1のデータ構造を提供する工程と、
キャッシュメモリの第2のセグメントに第2のデータ構
造を提供する工程と、を有し、第1のセグメントのアク
セスは第1のデータ構造のアクセスを含み、第2のセグ
メントのアクセスは第2のデータ構造のアクセスを含
む。データ構造は、データのブロックの2重にリンクし
たリングリストとすることができる。データの各ブロッ
クはディスクドライブのトラックに対応することができ
る。
【0017】
【発明の実施の形態】図1を参照すると、データ記憶装
置20は、複数のホストインタフェースユニット22〜
24と、複数のディスクインタフェースユニット26〜
28と、複数のディスクドライブ32〜34とを有し、
複数のディスクドライブ32〜24の各々はディスクイ
ンタフェースユニット26〜28のそれぞれに接続され
ている。ホストインタフェースユニット22〜24を、
データをディスクドライブへ読み書きするコンピュータ
などの1つ以上の外部ホストシステム(図示せず)に接
続することができる。
【0018】記憶装置20は、そうでなければ各ホスト
システムに接続された従来のディスクドライブシステム
が行ったであろう動作を実行する。そうして、記憶装置
20はホストインタフェースユニット22〜24を通じ
てディスクコマンドを受け取り、ディスクドライブ32
〜34からのディスクデータをホストインタフェースユ
ニット22〜24を通じてホストシステムへ提供する。
しかし、記憶装置20に接続されたホストシステムはデ
ィスクドライブ32〜34へ直接アクセスせず、ホスト
システムは1つ以上の論理的ディスクの使用を要求する
ことにより記憶装置20にアクセスする。記憶装置20
は、特定の論理的ディスクへのアクセスのためのホスト
からの要求をディスクドライブ32〜34上の物理的位
置に翻訳する。バス31はホストインタフェースユニッ
ト22〜24とディスクインタフェースユニット26〜
28の間の通信を提供する。
【0019】ホストからの要求は、ホストインタフェー
スユニット22〜24のうちの1つを通じて、論理的デ
ィスク番号、シリンダ番号、およびトラック番号の形態
で提供される。すなわち、ホストは論理的ディスク番
号、シリンダ番号およびトラック番号を特定することに
よりデータを読み書きする。この要求はホストインタフ
ェースユニット22〜24のそれぞれ1つを通じてディ
スクインタフェースユニット26〜28の適当な1つへ
送られ、次にディスクインタフェースユニット26〜2
8の適当な1つはディスクドライブ32〜34の適当な
1つのデータへアクセスし、そのデータをホストインタ
フェースユニット22〜24の適当な1つへ提供する。
【0020】いくつかの例では、要求されたいくつかの
データをキャッシュすることにより、ディスクドライブ
32〜34に対して行われる物理的ディスクアクセス数
を減少させることがより効率的である。この目的のた
め、システムメモリ36がバス31に接続され、以下に
より詳細に説明するように、ディスクドライブ32〜3
4とホストインタフェースユニット22〜24の間で伝
送されるキャッシュデータの記憶を提供する。各ディス
クインタフェースユニット26〜28は1つのプロセッ
サを含み、システムメモリ36へ直接アクセスするプロ
セスを実行する。こうして、以下により詳細に説明する
ように、キャッシュするためにシステムメモリ36を使
用することは、2つ以上のプロセスが重要なデータへ同
時にアクセスしようとした時に生じるであろう問題を防
止する手法の使用を必要とする。
【0021】図2を参照すると、その概略図はシステム
36をより詳細に示す。システムメモリは、他のメモリ
37(ここでは議論していない他のシステムデータコン
ポーネントを含む)、トラックI.D.テーブル38、およ
びキャッシュメモリ39を含む。キャッシュメモリ39
およびその構造は後により詳細に説明される。トラック
I.D.テーブル38は、ディスクドライブ32〜34上の
各トラックについてのエントリーを含むテーブルであ
る。各トラックについてエントリーは特定のトラックが
キャッシュメモリ39内にあるか否かを示し、もしあれ
ば、キャッシュメモリ内のデータが書き込まれている
が、まだディスクドライブ32〜34へコピーして戻さ
れていないかを示す。こうしてトラックI.D.テーブル3
8はいくぶん従来的な直接マップキャッシュシステムを
実行するための使用され、そのシステムでは全てのディ
スクメモリ位置についてデータがキャッシュ内にあるか
否かを示す対応するインジケータが存在する。
【0022】図3を参照すると、概略図はキャッシュメ
モリ39をより詳細に示す。キャッシュメモリは、第1
の論理的リングユニット(LRU)42と、第2のLR
U44とを有する。また、キャッシュメモリ39は第1
および第2のソフトウェアLRUロック46、47を有
し、それらは以下により詳細に説明される。
【0023】ここに示す例示的実施形態は2つのLRU
42、44を使用しているが、ここに記載するシステム
をあらゆる数のLRUに一般化することができることが
当業者に理解されるであろう。実際、その手法はあらゆ
る数のキャッシュメモリ39の部分とともに動作するよ
うにさらに一般化できる。
【0024】LRU42は複数のメモリブロック51〜
55から構成され、それら各々はディスクドライブ32
〜34の1つの上の1つのトラックに対応する。各ブロ
ック51〜55はキャッシュメモリ39の1つのスロッ
トに対応することができ、スロットは単純にブロック5
1〜55の1つについて使用されるキャッシュメモリ3
9の部分を指している。加えて、「スロット番号」はブ
ロック51〜55の特定の1つを指すように使用され、
スロットはキャッシュメモリ39内のその相対的位置に
したがってゼロで始まる連続番号を付される。よって、
最小メモリアドレスを有するスロットはスロット0とす
ることができ、次に高いメモリアドレスを有するスロッ
トはスロット1とすることができ、他も同様である。1
つの実施形態では、ディスクドライブ32〜34の、お
よび各メモリブロック51〜55内の各トラックは50,3
68バイトのメモリを含む。しかし、そのサイズは変更可
能であることが当業者には理解されるであろう。加え
て、ここに記載したシステムを適合化して各ブロック5
1〜55のサイズがディスドライブ32〜34の各トラ
ックのサイズに必ずしも対応しないようにすることが可
能であることが当業者には理解されるであろう。例え
ば、各ブロック51〜55は、トラックサイズの倍数ま
たはトラックサイズの分数とすることができる。
【0025】また、第2のLRU44は、第1のLRU
42のメモリブロック51〜55に類似した複数のメモ
リブロック61〜65を含む。LRU42は、最も最近
にLRU42へ追加されたブロック55を指し示すヘッ
ドポインタを含む。同様に、LRU44も最も最近LR
U44へ追加されたブロック65を指し示すヘッドポイ
ンタを含む。
【0026】ディスクインタフェースユニット26〜2
8のいずれかのプロセッサは、例えば第1のLRU42
または第2のLRU44のいずれかを操作し、それにブ
ロックを加えるかそれからブロックを除去する。LRU
42、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について
使用することができることを述べておく。
【0027】ここに記載されるシステムの形態は、ディ
スクインタフェースユニット26〜28の1つが例えば
第1のLRU42へのアクセスをしている間、ディスク
インタフェースユニット26〜28の別の1つが同時に
LRU44へアクセスすることを可能とするものであ
る。よって、2つのプロセッサは同時にLRU42、4
4へアクセスすることができる。同時アクセスを許容す
ることは、プロセッサがキャッシュへのアクセスを待つ
場合を減らす。LRU42、44への2つのプロセッサ
の同時アクセスは、LRU42、44の各々が、他のデ
ータ構造への変更により影響を受けないスタンドアロー
ンデータ構造であることにより可能となる。よって、L
RU42のリンクされたリングリストの操作はLRU4
4のリンクされたリングリストに影響を与えない。いく
つかの実施形態において、時々、各ソフトウェアロック
46、47をアクセスおよび保持することにより、全て
のLRU42、44がロックされるまで、キャッシュメ
モリ39全体をロックすることが有益である。
【0028】データへのアクセスがホストの1つにより
要求されるたびに、トラックI.D.テーブル38を調べて
データが既にキャッシュメモリ39内にあるか否かを決
定する。データが既にキャッシュメモリ39内にあるな
らば、ディスクドライブ32〜34にアクセスするので
はなくキャッシュメモリ39がアクセスされる。読み取
り処理の場合、これはホストインタフェースユニット2
2〜24ならびにディスクインタフェース26〜28に
より実行することができる。そうでなければ、要求され
たデータが既にキャッシュメモリ39内にない場合、そ
れはフェッチされ、キャッシュメモリ39内に入れられ
る。その場合、そのデータに関連付けされるブロック
が、以下により詳細に記述される方法でLRU42、4
4の1つへ割り当てられる。
【0029】いくつかの実施形態では、スロット番号を
使用してLRU42、44のいずれが特定のデータを含
んでいるかを決定する。例えば、2つのLRUを有する
システムにおいて、奇数のスロット番号を1つのLRU
に対応させ、偶数のスロット番号を他方のLRUに対応
させることができる。N個のLRUを有するシステムで
は、式:(スロット番号)modNを使用して特定のLR
Uにスロット番号をマップすることができる。トラック
I.D.テーブル38はキャッシュメモリのどこに特定のデ
ータが存在するかを示すので、この手法はどのLRUが
特定のデータを含むかを決定するための便利な機構を提
供し、この情報を使用してスロット番号を決定し、それ
を特定のLRUにマップする。
【0030】図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の
トラックへコピーして戻される。
【0031】図4Bに示すように、ブロック62がディ
スクドライブ32〜34へコピーされると、ブロック6
2はLRU42、44の1つへ戻る。図4Bに示す例で
は、ブロック62は第2のLRU44ではなく、第1の
LRU42へ戻る。別の実施形態では、ブロック62は
常にLRU44へ戻り、一般的に1つのブロックがある
1つのLRUに割り当てられると、それは移動しない。
【0032】新しいブロックがキャッシュ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に配置す
ることができることを述べておく。
【0033】図5を参照すると、フローチャート70は
1つのブロックをLRU42、44の1つに割り当てる
ステップを示す。第1のステップ72で、各LRU4
2、44のフォールスルータイム(fall through tim
e)が計算される。フォールスルータイムは、ブロック
がLRU上で費やす時間量を調べることにより決定する
ことができ、新しいブロックが追加された場合は最も古
いブロックは無視されることを述べておく。新しいブロ
ックのための空間を作るためにブロックが除去されるた
びに、ブロックが追加された時間からブロックが除去さ
れた時間を減算することによりフォールスルータイムが
決定できる。こうして、特に小さいフォールスルータイ
ムを有するLRUは比較的少数のブロックを記憶し、比
較的大きなフォールスルータイムを有するLRUは比較
的多数のブロックが割り当てられる。
【0034】ステップ72の次はステップ74であり、
そこではLRU42と44のフォールスルータイムの差
が計算される。その差は、LRU42、44の一方のフ
ォールスルータイムをLRU42、44の他方のフォー
ルスルータイムから減算することにより計算される。ス
テップ74の次はステップ76であり、そこではステッ
プ74で計算されたデルタ値(差の値)が特定の閾値よ
り大きいか否かが決定される。閾値は絶対数に設定する
ことができ、またはフォールスルータイムの大きい方ま
たは小さい方のある割合として計算することができる。
閾値は、いくつかの経験的観察や計算にしたがって決定
することができ、その性能は当業者には単純である。
【0035】ステップ76においてデルタ値が特定の閾
値未満であると決定された場合、制御はステップ76か
らステップ78へ進み、そこでは上述と類似の方法でブ
ロックがLRU42、44の1つにランダムに割り当て
られる。その代わりに、テストステップ76でデルタ値
が特定の閾値より大きいと決定されたならば、制御はテ
ストステップ76からステップ79へ進み、そこで小さ
いフォールスルータイムを有するほうのLRUに新しい
ブロックが割り当てられる。
【0036】ここに記載されたシステムはあらゆる数の
LRUを使用して実行することができる。LRUの数が
増加すると、ブロックがLRU上で費やす時間量が減少
する。しかし、LRUへのアクセスを待っているプロセ
ッサの衝突数も減少する。1つのプロセスのみが一度に
そのデータ構造を変更できるメカニズムが存在するなら
ば、各LRUについて2重にリンクされたリングリスト
以外のデータ構造も使用できることを述べておく。ま
た、本発明は、ここに図示したものと異なる方法で動作
するように構成された、ここに示したものと異なるハー
ドウェアにより実施することができることを述べてお
く。ホストインタフェースユニット22〜24もキャッ
シュ39を制御することができる。
【0037】図6を参照すると、概略図100は、複数
のLRU106〜108を含むキャッシュ104を有す
る記憶装置102を示す。LRU106〜108の動作
は、LRU106〜108へのブロックの割り当てを以
下に詳細に述べる種々の手法にしたがって行うことがで
きることを除き、上述のものと同じである。データ記憶
装置102は、外部ホストシステム(図示せず)をデー
タ記憶装置102に接続するための複数の接続110〜
112を有する。ホスト接続110〜112をグループ
に分類し、例えばホスト接続110が第1のグループを
代表し、ホスト接続111が第2のグループを代表し、
ホスト接続112が第3のグループを代表することがで
きる。
【0038】以下により詳細に説明するように、ホスト
接続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)に割り当てることができる。
【0039】図7を参照すると、テーブル120は特定
のLRUを特定のグループに割り当てる手法を示す。図
7の例は、4つのグループの外部ホスト接続と8つのL
RUがあると仮定している。テーブル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
を共用する)。
【0040】全てのLRUが同一のサイズであると仮定
すると(異なるサイズのLRUを有する実施形態は後述
する)、テーブル120はグループ1接続に接続された
外部ホストシステムはキャッシュの3/8に対応するセ
グメントに割り当てられ、グループ2および3は各々キ
ャッシュの1/4に対応するセグメントに割り当てら
れ、グループ4はキャッシュの1/8に対応するセグメ
ントに割り当てられることを示している。グループ間の
特定の割り当ては、例えばグループ1はより多数の外部
ホストシステムを有し、またはより多量の記憶を要する
外部ホストシステムを有するなどの種々の理由から行う
ことができる。加えて、テーブル120に反映されてい
る種々のグループのサービスレベルは、例えば記憶装置
102を制御する記憶提供者への追加料金の支払いなど
を含む種々の他の理由によりより高いレベルのサービス
がグループ1に提供されていることを単に示している。
【0041】テーブル120に記載された方針の実施
は、上述のスロット数/LRU割り当てルールを使用し
て達成することができる。すなわち、式:LRU番号=
スロット番号(モジューロ)N(ここで、NはLRUの
数)を使用しLRUが特定のスロット番号と関連付けら
れると仮定すると、キャッシュのブロックの要求は、要
求を行った装置のグループに割り当てられたLRUに対
応するスロット番号を割り当てることにより処理され
る。例えば、10個のLRUがあり、要求している装置
がLRU番号5にアクセスするグループに関連付けされ
ているとすると、その装置からのキャッシュブロックの
要求は、スロット番号モジューロ10が5となるように
スロット番号を割り当てる(例えば、スロット番号5、
15、25など)。
【0042】図8を参照すると、フローチャート130
は、要求している外部ホストシステムによりキャッシュ
メモリを取得することに関連して実行されるステップを
示す。処理は第1のステップ132で始まり、そこでキ
ャッシュブロックを要求している外部ホストシステムに
対応する接続についてグループ番号が取得される。図6
に示し先に述べたように、グループ番号は記憶装置10
2のホスト接続110〜112にマップすることができ
る。各ホスト接続110〜112が固有の識別子を有
し、ホスト接続110〜112の特定の1つの識別子に
グループ番号をマップする従来のテーブル(図示せず)
を提供するようにすることができる。
【0043】ステップ132の次はステップ134であ
り、そこでLRUマスクが取得される。LRUマスク
は、図7に関連して上述したテーブル120に類似する
テーブルを使用して取得される。ステップ134の次は
ステップ136であり、そこではステップ134で取得
されたLRUマスクから割り当てられたLRUにマッチ
ングするスロット番号が返される。マッチングスロット
番号をステップ136で返すことは後により詳細に説明
する。
【0044】ステップ136の次はテストステップ13
8であり、ステップ138はマッチングスロット番号が
ステップ136で取得されたか否かを決定する。そのグ
ループに割り当てられたLRUに対応する利用可能なス
ロットが存在しない可能性があり、よってステップ13
6でマッチングスロット番号を返すことが不可能な場合
があることを述べておく。スロットは、種々の理由、例
えばブロックに対応するスロットが変更中であるなどの
理由により利用不能となる場合がある。ステップ136
でマッチングスロット番号を取得するルーチンは、いず
れのスロット番号にも対応しない値、例えば−1を返す
ことにより、マッチングスロットが利用不能であること
を示すことができる。
【0045】ステップ138でマッチングスロットが利
用可能であることが決定されると、処理は完了する。そ
うでなく、マッチングスロット番号が利用不能であるな
らば、制御はステップ138から140へ進み、そこで
代わりのスロット番号が返される。ステップ140で代
わりのスロット番号を返すことは、後により詳細に説明
される。
【0046】図9を参照すると、フローチャート150
は図8のステップ136でマッチングスロット番号を返
すことに関して実行されるステップの詳細を示す。一般
的に、マッチングスロット番号を返すプロセスは、空き
スロットが見つかるまでグループのLRUについての全
てのスロットの処理を繰り返すことを伴う。ここに記載
する実施形態では、各LRUのスロットのリストを指し
示すポインタがあり、各LRUへのポインタ(すなわ
ち、各LRUのスロットの各リストへのポインタ)があ
る。よって、そのプロセスは、スロットを要求している
グループに割り当てられた全てのLRUを通じた第1の
(外部)繰返しループと、どのスロットが空いているか
を決定するために各LRUについて全てのスロットを調
べる第2の(内部)繰返しループと、を含む。
【0047】処理は第1のステップ152で始まり、そ
こでグループの第1のLRUが指し示される。そのグル
ープに対応するLRUの決定は、例えば図7との関連で
先に述べたように、LRUマスクの適当なビットを調べ
てそれがそのグループについて1か0かを決定すること
により行うことができる。ステップ152の次はステッ
プ154であり、そこでLRUの第1スロットが指し示
される。上述のように、種々の手法を利用してスロット
番号を特定のLRUにマップすることができ、その方法
は、式:LRU番号=(スロット番号)モジューロNを
含み、NはLRUの数である。スロット番号をLRUに
マップするための他の手法を以下に述べる。
【0048】ステップ154の次はテストステップ15
6であり、そこでは指し示されているスロットが使用可
能か否かが決定される。指し示されているスロットが使
用可能である場合、制御はステップ156からステップ
158へ移行し、そこでスロット番号が呼び出しルーチ
ン(すなわち、図8に示すプロセス)へ戻る。そうでな
く、テストステップ156でスロットが利用不能である
ことが決定されたならば、制御はステップ156からテ
ストステップ160へ進み、そこでさらに調べるべきス
ロットがLRUに存在するか否かを決定する。LRUに
さらにスロットがあれば、制御はステップ160からス
テップ162へ進み、そこでそのLRU内の次のスロッ
トが指し示される。ステップ162の後、制御はステッ
プ156へ戻り、次の繰返しを実行し、そうして第2の
(内部)ループを閉じる。
【0049】LRUの全てのスロットが調べられると、
次に制御はテストステップ160からテストステップ1
64へ進み、そこでそのグループにさらについて調べる
べきLRUがあるか否かが決定される。上述のように、
2つ以上のLRUを1つのグループに割り当てることが
できる。テストステップ164において、そのグループ
についてさらに調べるべきLRUがあると決定された場
合、制御はステップ164からステップ166へ進み、
そこで−1が(呼び出しルーチンへ)返される。ステッ
プ166の後、処理は終了する。
【0050】テストステップ164において、さらに調
べるべきLRUがあると決定された場合、次に制御はス
テップ164からステップ168へ進み、そこで次のL
RUへのポインタが取得される。ステップ168に続い
て、制御はステップ154へ戻って次の繰返しを実行
し、そうして第1の(外部)ループを閉じる。
【0051】(ステップ136でマッチングスロットが
使用不能な場合に)代わりのスロットが取得される図8
のステップ140は、種々の方法で実行することがで
き、それは他のグループからスロットを“借りる”こと
を含む。1つの実施形態では、他のグループからの第1
の利用可能スロットは単純にステップ140で取得され
る。どのLRUが空きスロットを与えるかの選択はラン
ダムに行うことができる。別の手法は、最大のLRU番
号が割り当てられた別のグループに対応するLRUから
利用可能なスロットを返し、最も空いているスロットを
有するLRUに対応するスロットを返し、および/また
は最大の割合の利用可能なスロットを有するグループに
関連するLRUに対応するスロットを返すことを含む。
他の手法は従来技術の当業者に自明であろう。
【0052】図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つのL
RUを割り当てることが望ましい。スロット番号をLR
Uにマッピングするためのテーブル170とグループ番
号をLRUにマッピングするためのテーブル120の使
用は、記憶装置に接続された装置についての性能レベ
ル、利用可能なキャッシュメモリ、などを調整する際に
最大の柔軟性を提供する。
【0053】ここに記載したグループをキャッシュのセ
グメントに割り当てるシステムは、異なるデータ構造と
データのブロックをキャッシュに記憶するための手法を
使用して実行することができる。例えば、種々のグルー
プが使用するキャッシュのセグメントを単純にオーバー
ラップ(すなわち、いくつかのグループがセグメントの
ある部分を共用する)を有しまたは有しないように割り
当てることができる。キャッシュ内のデータのブロック
は、ブロックの線形アレイ、ブロックへのポインタのリ
ストまたはアレイ、その他としてキャッシュを構成およ
びアクセスすることを含む種々の従来のキャッシュ管理
手法のいずれかを使用して操作することができる。
【0054】本発明を詳細に図示および記述した好適な
実施形態との関係で説明してきたが、従来技術の当業者
にはその種々の変形および改善が容易に自明となろう。
よって、本発明の精神および視野は請求の範囲によって
のみ限定されるべきである。
【図面の簡単な説明】
【図1】本発明を利用するシステムの概略図である。
【図2】図1のシステムのメモリを示す詳細概略図であ
る。
【図3】本発明のキャッシュメモリに記憶されるデータ
を示す詳細概略図である。
【図4A】本発明のキャッシュメモリに記憶されるデー
タの変形ブロックの処理を示す。
【図4B】本発明のキャッシュメモリに記憶されるデー
タの変形ブロックの処理を示す。
【図5】本発明によるデータのブロックについてLRU
を選択する1つの手法を示すフローチャートである。
【図6】本発明による複数のLRUを有するデータ記憶
装置を示す概略図である。
【図7】本発明によるグループとLRUマスクとの相関
を示すテーブルである。
【図8】本発明によるスロットの割り当てを示すフロー
チャートである。
【図9】本発明によるマッチングスロットの取得を示す
フローチャートである。
【図10】本発明によるスロット番号の特定のLRUへ
のマッピングを示すテーブルである。
───────────────────────────────────────────────────── フロントページの続き (51)Int.Cl.7 識別記号 FI テーマコート゛(参考) G06F 15/177 682 G06F 15/177 682F (72)発明者 アディ・オファー アメリカ合衆国 マサチューセッツ 02481 ウェルズリー ウォッシュバーン アヴェニュー 96 (72)発明者 ナタン・ヴィシュリツキィ アメリカ合衆国 マサチューセッツ 02445 ブルックリン クリントン ロー ド 87 (72)発明者 ユーヴァル・オフェク アメリカ合衆国 マサチューセッツ 01702 フラミンガム ランターン ロー ド 20

Claims (27)

    【特許請求の範囲】
  1. 【請求項1】 キャッシュメモリにデータを記憶する方
    法において、 キャッシュメモリの第1の部分への排他的アクセスを可
    能とする第1の機構を提供する工程と、 キャッシュメモリの第2の部分への排他的アクセスを可
    能とする第2の機構を提供する工程と、を有し、第1の
    部分への排他的アクセスは第2の部分への排他的アクセ
    スと独立である方法。
  2. 【請求項2】 キャッシュメモリの少なくとも第3の部
    分への排他的アクセスを可能とする少なくとも第3の機
    構を提供する工程を有し、前記いずれかの部分への排他
    的アクセスは他の部分への排他的アクセスと独立である
    請求項1に記載の方法。
  3. 【請求項3】 第1および第2の機構はロックである請
    求項1に記載の方法。
  4. 【請求項4】 ロックはハードウェアロックである請求
    項3に記載の方法。
  5. 【請求項5】 ロックはソフトウェアロックである請求
    項3に記載の方法。
  6. 【請求項6】 キャッシュメモリの第1の部分に第1の
    データ構造を提供する工程と、 キャッシュメモリの第2の部分に第2のデータ構造を提
    供する工程と、を有し、第1の部分のアクセスは第1の
    構造のアクセスを含み、第2の部分のアクセスは第2の
    構造のアクセスを含む請求項1に記載の方法。
  7. 【請求項7】 データ構造はデータのブロックの2重に
    リンクしたリングリストである請求項6に記載の方法。
  8. 【請求項8】 データの各ブロックはディスクドライブ
    のトラックに対応する請求項7に記載の方法。
  9. 【請求項9】 第1の部分についての第1のキャッシュ
    フォールスルータイムを決定する工程と、 第2の部分についての第2のキャッシュフォールスルー
    タイムを決定する工程と、 第1および第2のキャッシュフォールスルータイムにし
    たがって第1および第2の部分の1つにデータを割り当
    てる工程と、を有する請求項1に記載の方法。
  10. 【請求項10】 第1と第2のキャッシュフォールスル
    ータイムの差を決定する工程と、を有し、第1および第
    2の部分の1つへのデータの割り当ては前記差に基づく
    請求項9に記載の方法。
  11. 【請求項11】 所定量より小さい前記差に応じて、デ
    ータが第1および第2の部分の一方にランダムに割り当
    てされる請求項10に記載の方法。
  12. 【請求項12】 第1の部分であって、前記第1の部分
    への排他的アクセスを可能とする第1の機構を有する第
    1の部分と、 第2の部分であって、前記第2の部分への排他的アクセ
    スを可能とする第2の機構を有する第2の部分と、を有
    し、前記第1の部分への排他的アクセスは前記第2の部
    分への排他的アクセスと独立であるキャッシュメモリ。
  13. 【請求項13】 前記第1および第2の機構はソフトウ
    ェアロックである請求項12に記載のキャッシュメモ
    リ。
  14. 【請求項14】 前記第1の部分は第1のデータ構造を
    有し、前記第2の部分は第2のデータ構造を有し、前記
    第1の部分のアクセスは前記第1の構造のアクセスを含
    み、前記第2の部分のアクセスは前記第2の構造のアク
    セスを含む請求項12に記載のキャッシュメモリ。
  15. 【請求項15】 前記データ構造は、データのブロック
    の2重にリンクされたリングリストである請求項14に
    記載のキャッシュメモリ。
  16. 【請求項16】 データの各ブロックはディスクドライ
    ブ上のトラックに対応する請求項15に記載のキャッシ
    ュメモリ。
  17. 【請求項17】 前記第1の部分についての第1のキャ
    ッシュフォールスルータイムが決定され、前記第2の部
    分についての第2のキャッシュフォールスルータイムが
    決定され、データは前記第1および第2のキャッシュフ
    ォールスルータイムにしたがって第1および第2の部分
    の1つへ割り当てられる請求項12に記載のキャッシュ
    メモリ。
  18. 【請求項18】 前記第1および第2のキャッシュフォ
    ールスルータイムの差が決定され、前記第1および第2
    の部分の1つへの割り当ては前記差に基づく請求項17
    に記載のキャッシュメモリ、
  19. 【請求項19】 所定量より小さい前記差に応じて、デ
    ータは前記第1および第2の部分の1つにランダムに割
    り当てられる請求項18に記載のキャッシュメモリ。
  20. 【請求項20】 複数のディスクドライブと、 各々が前記ディスクドライブの1つに接続された複数の
    ディスクインタフェースユニットと、 前記ディスクインタフェースユニットを相互接続するバ
    スと、 前記バスに接続されたキャッシュメモリであって、前記
    キャッシュメモリは複数の部分を有し、前記複数の部分
    の各々は前記ディスクインタフェースユニットの1つに
    より独立に制御可能である記憶装置。
  21. 【請求項21】 前記キャッシュメモリの前記各部分は
    それらへの排他的アクセスを可能とする機構を有する請
    求項20に記載の記憶装置。
  22. 【請求項22】 前記各部分はデータ構造を有し、前記
    部分のアクセスは前記データ構造の対応するものへのア
    クセスを含む請求項20に記載の記憶装置。
  23. 【請求項23】 前記データ構造は、2重にリンクした
    リングリストである請求項22に記載の記憶装置。
  24. 【請求項24】 複数の部分と、複数のロックと、を有
    し、前記ロックの各々は前記部分の特定の1つへの排他
    的アクセスに対応し、前記部分の1つへの排他的アクセ
    スは前記部分の他の1つへの排他的アクセスと独立であ
    る請求項24に記載の記憶装置。
  25. 【請求項25】 前記各部分はデータ構造を有し、前記
    部分の1つへのアクセスは前記データ構造へのアクセス
    を含む請求項24に記載の記憶装置。
  26. 【請求項26】 前記データ構造は、2重にリンクした
    リングリストである請求項25に記載の記憶装置。
  27. 【請求項27】 データの各ブロックはディスクドライ
    ブ上のトラックに対応する請求項26に記載の記憶装
    置。
JP2000330774A 1999-11-05 2000-10-30 複数のlruを使用するキャッシュ Withdrawn JP2001188707A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/434611 1999-11-05
US09/434,611 US6457102B1 (en) 1999-11-05 1999-11-05 Cache using multiple LRU's

Publications (1)

Publication Number Publication Date
JP2001188707A true JP2001188707A (ja) 2001-07-10

Family

ID=23724933

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000330774A Withdrawn JP2001188707A (ja) 1999-11-05 2000-10-30 複数のlruを使用するキャッシュ

Country Status (3)

Country Link
US (2) US6457102B1 (ja)
EP (1) EP1098250A1 (ja)
JP (1) JP2001188707A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008027444A (ja) * 2006-07-20 2008-02-07 Internatl Business Mach Corp <Ibm> 方法、システム、製品(複数のデータ構造を用いるキャッシュ内のデータの管理)

Families Citing this family (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1098249A1 (en) * 1999-11-05 2001-05-09 Emc Corporation Segmenting cache to provide varying service levels
US6725336B2 (en) * 2001-04-20 2004-04-20 Sun Microsystems, Inc. Dynamically allocated cache memory for a multi-processor unit
US6986003B1 (en) * 2001-08-09 2006-01-10 Unisys Corporation Method for processing communal locks
US6662272B2 (en) * 2001-09-29 2003-12-09 Hewlett-Packard Development Company, L.P. Dynamic cache partitioning
US8635305B1 (en) * 2001-12-19 2014-01-21 Cisco Technology, Inc. Mechanisms for providing differentiated services within a web cache
US6880041B2 (en) * 2002-02-20 2005-04-12 International Business Machines Corporation Method and apparatus to transfer information between different categories of servers and one or more data storage media
US7177853B1 (en) * 2002-02-21 2007-02-13 Emc Corporation Cache management via statistically adjusted time stamp queue
US6889288B2 (en) * 2002-12-02 2005-05-03 Emc Corporation Reducing data copy operations for writing data from a network to storage of a cached data storage system by organizing cache blocks as linked lists of data fragments
US7043579B2 (en) * 2002-12-05 2006-05-09 International Business Machines Corporation Ring-topology based multiprocessor data access bus
US6922754B2 (en) * 2002-12-09 2005-07-26 Infabric Technologies, Inc. Data-aware data flow manager
US7299334B2 (en) * 2003-07-15 2007-11-20 Xiv Ltd. Storage system configurations
US20050015546A1 (en) * 2003-07-15 2005-01-20 Ofir Zohar Data storage system
US7827353B2 (en) * 2003-07-15 2010-11-02 International Business Machines Corporation Self healing memory
US7293156B2 (en) * 2003-07-15 2007-11-06 Xiv Ltd. Distributed independent cache memory
JP4437650B2 (ja) 2003-08-25 2010-03-24 株式会社日立製作所 ストレージシステム
US7089357B1 (en) 2003-09-22 2006-08-08 Emc Corporation Locally buffered cache extensions having associated control parameters to determine use for cache allocation on subsequent requests
JP4257783B2 (ja) 2003-10-23 2009-04-22 株式会社日立製作所 論理分割可能な記憶装置及び記憶装置システム
US7213107B2 (en) * 2003-12-31 2007-05-01 Intel Corporation Dedicated cache memory
JP4227035B2 (ja) * 2004-02-03 2009-02-18 株式会社日立製作所 計算機システム、管理装置、ストレージ装置及びコンピュータ装置
JP2005267008A (ja) 2004-03-17 2005-09-29 Hitachi Ltd ストレージ管理方法およびストレージ管理システム
US7155573B1 (en) * 2004-05-25 2006-12-26 Emc Corporation Cache fall through time estimation
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
JP2006244098A (ja) * 2005-03-03 2006-09-14 Hitachi Ltd ストレージシステムにおける論理分割方法
JP4813843B2 (ja) 2005-08-04 2011-11-09 株式会社日立製作所 ストレージ装置、ディスクキャッシュ制御方法及びディスクキャッシュの容量割当方法
US7596670B2 (en) * 2005-11-30 2009-09-29 International Business Machines Corporation Restricting access to improve data availability
US20100082527A1 (en) * 2008-09-24 2010-04-01 Yahoo! Inc. Dated metadata to support multiple versions of user profiles for targeting of personalized content
US20100077152A1 (en) * 2008-09-24 2010-03-25 Yahoo! Inc. Primary-secondary caching scheme to ensure robust processing transition during migration and/or failover
US20100076815A1 (en) * 2008-09-24 2010-03-25 Yahoo! Inc. Storage optimization for updated user behavioral profile scores
US8499120B2 (en) * 2008-10-17 2013-07-30 Seagate Technology Llc User selectable caching management
US8627012B1 (en) 2011-12-30 2014-01-07 Emc Corporation System and method for improving cache performance
US8930947B1 (en) 2011-12-30 2015-01-06 Emc Corporation System and method for live migration of a virtual machine with dedicated cache
US9158578B1 (en) 2011-12-30 2015-10-13 Emc Corporation System and method for migrating virtual machines
US9053033B1 (en) * 2011-12-30 2015-06-09 Emc Corporation System and method for cache content sharing
US9009416B1 (en) * 2011-12-30 2015-04-14 Emc Corporation System and method for managing cache system content directories
US9235524B1 (en) 2011-12-30 2016-01-12 Emc Corporation System and method for improving cache performance
US9104529B1 (en) 2011-12-30 2015-08-11 Emc Corporation System and method for copying a cache system
US9892180B2 (en) * 2014-11-21 2018-02-13 International Business Machines Corporation Data transfer between multiple databases
US10387329B2 (en) * 2016-02-10 2019-08-20 Google Llc Profiling cache replacement
CN108228649B (zh) 2016-12-21 2021-08-24 伊姆西Ip控股有限责任公司 用于数据访问的方法和设备
US11403232B2 (en) * 2020-05-29 2022-08-02 EMC IP Holding Company LLC Sequence thrashing avoidance via fall through estimation

Family Cites Families (23)

* Cited by examiner, † Cited by third party
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
US5206939A (en) 1990-09-24 1993-04-27 Emc Corporation System and method for disk mapping and data retrieval
JPH0799508B2 (ja) * 1990-10-15 1995-10-25 インターナショナル・ビジネス・マシーンズ・コーポレイション キャッシュ記憶機構を動的に区分する方法およびキャッシュ記憶機構システム
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
US5875464A (en) * 1991-12-10 1999-02-23 International Business Machines Corporation Computer system with private and shared partitions in cache
JPH06282488A (ja) * 1993-03-25 1994-10-07 Mitsubishi Electric Corp キャッシュ記憶装置
US5680571A (en) * 1995-12-28 1997-10-21 Unisys Corporation Multi-processor data processing system with multiple, separate instruction and operand second level caches
US5822764A (en) * 1996-03-04 1998-10-13 Motorola, Inc. Method and circuit for efficiently replacing invalid locked portions of a cache with valid data
US5845147A (en) 1996-03-19 1998-12-01 Emc Corporation Single lock command for an I/O storage system that performs both locking and I/O data operation
US5857208A (en) 1996-05-31 1999-01-05 Emc Corporation Method and apparatus for performing point in time backup operation in a computer system
US5778394A (en) 1996-12-23 1998-07-07 Emc Corporation Space reclamation system and method for use in connection with tape logging system
EP0856797B1 (en) * 1997-01-30 2003-05-21 STMicroelectronics Limited A cache system for concurrent processes
US5875461A (en) * 1997-04-03 1999-02-23 Sun Microsystems, Inc. Method of synchronizing one of the objects with one of the threads at a time
US6115790A (en) * 1997-08-29 2000-09-05 Silicon Graphics, Inc. System, method and computer program product for organizing page caches
US5964838A (en) * 1997-09-30 1999-10-12 Tandem Computers Incorporated Method for sequential and consistent startup and/or reload of multiple processor nodes in a multiple node cluster
US6360303B1 (en) * 1997-09-30 2002-03-19 Compaq Computer Corporation Partitioning memory shared by multiple processors of a distributed processing system
US6205519B1 (en) * 1998-05-27 2001-03-20 Hewlett Packard Company Cache management for a multi-threaded processor
US6141731A (en) * 1998-08-19 2000-10-31 International Business Machines Corporation Method and system for managing data in cache using multiple data structures
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
US6173367B1 (en) * 1999-05-19 2001-01-09 Ati Technologies, Inc. Method and apparatus for accessing graphics cache memory

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008027444A (ja) * 2006-07-20 2008-02-07 Internatl Business Mach Corp <Ibm> 方法、システム、製品(複数のデータ構造を用いるキャッシュ内のデータの管理)

Also Published As

Publication number Publication date
US6728836B1 (en) 2004-04-27
EP1098250A1 (en) 2001-05-09
US6457102B1 (en) 2002-09-24

Similar Documents

Publication Publication Date Title
JP2001188707A (ja) 複数のlruを使用するキャッシュ
JP2006196011A (ja) 変化するサービスレベルを提供するためのキャッシュのセグメント化
JP6832187B2 (ja) データストレージサブシステムにおけるキャッシングのための方法およびシステム
US10152428B1 (en) Virtual memory service levels
US7707337B2 (en) Object-based storage device with low process load and control method thereof
US6948033B2 (en) Control method of the cache hierarchy
JP3264319B2 (ja) バスブリッジ
JPH0571976B2 (ja)
JPH11102323A (ja) 仮想アドレス変換用の柔軟な変換記憶バッファ
JP2001175529A (ja) メモリ制御回路
JP2002082775A (ja) 計算機システム
JPH02228745A (ja) 入出力キヤツシユ
US7032093B1 (en) On-demand allocation of physical storage for virtual volumes using a zero logical disk
US6983355B2 (en) Virtualization of physical storage using size optimized hierarchical tables
US7103747B2 (en) Memory table and memory manager for use in managing memory
JP2003228461A (ja) ディスクアレイ装置のディスクキャッシュ管理方法
US6782444B1 (en) Digital data storage subsystem including directory for efficiently providing formatting information for stored records
JP2004078398A (ja) 仮想ボリューム管理方式
JP2006164218A (ja) ストレージシステム及びそのキャッシュ制御方法
JP3808058B2 (ja) 複数のホストが圧縮データを記憶するメモリ・セクタの集合を共用できるようにするための装置
KR20170127666A (ko) 원격 메모리 제공 시스템 및 이의 페이지 폴트 처리 방법
US11474938B2 (en) Data storage system with multiple-size object allocator for disk cache
JP4664586B2 (ja) キャッシュ制御装置、キャッシュ制御方法、コンピュータシステム
US6594726B1 (en) Digital data storage subsystem including arrangement for efficiently controlling fast write storage operation
US6862659B1 (en) Utilizing disk cache as part of distributed cache

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20080108