JP3690295B2 - ディスクアレイ制御装置 - Google Patents
ディスクアレイ制御装置 Download PDFInfo
- Publication number
- JP3690295B2 JP3690295B2 JP2001074425A JP2001074425A JP3690295B2 JP 3690295 B2 JP3690295 B2 JP 3690295B2 JP 2001074425 A JP2001074425 A JP 2001074425A JP 2001074425 A JP2001074425 A JP 2001074425A JP 3690295 B2 JP3690295 B2 JP 3690295B2
- Authority
- JP
- Japan
- Prior art keywords
- host
- cache page
- cache
- processing
- disk
- 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; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0613—Improving I/O performance in relation to throughput
-
- 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/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/084—Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
-
- 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
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0689—Disk arrays, e.g. RAID, JBOD
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
【発明の属する技術分野】
本発明は、ホストからのI/O要求を制御してディスク装置とのI/O処理を実行する複数のホストディレクタと、これらのホストディレクタに共用されるとともにディスクキャッシュを構成する共用メモリとを備えたディスクアレイ制御装置に関する。
【0002】
【従来の技術】
[第一従来例]
【0003】
近年、ディスクアレイ装置では、スループット向上のためにキャッシュメモリの搭載が不可欠になっている。ディスクアレイ装置の全容量の中で、アクセス頻度の高い領域というのは限られているので、その部分のデータをキャッシュメモリ上にコピーしておくことによりホストコンピュータへの応答を速く行うことができる。
【0004】
また、I/O処理を行うディレクタ部を複数搭載するマルチディレクタにより負荷分散させる技術がある。これにより、複数のホストからのI/O要求を、それぞれのホストディレクタが並列に処理することができる。更に、ディスクアレイ内の物理ディスクアクセス処理を独立して実行するディスクディレクタを設けることにより、ホスト・キャッシュ間の優先的なデータ転送処理と、キャッシュ・ディスク間のバックグラウンド処理を非同期に行うことができるので、スループットの向上が得られる。
【0005】
このようなマルチディレクタ方式のディスクアレイ装置において、複数のディレクタが同じタイミングでキャッシュメモリの管理領域にアクセスしようとした場合、排他されることなく並列して処理を遂行できるようにした、キャッシュメモリ管理方法が知られている(特開2000−187617号公報)。図6は、同公報に開示されたディスクアレイ装置を示すブロック図である。図7は、このディスクアレイ装置に用いられる論理ディスクとキャッシュパーティションとの対応関係を示す図表である。以下、これらの図面に基づき説明する。
【0006】
ディスクアレイ504は、三つのホストディレクタ511,512,513を介して三台のホスト501,502,503に接続されている。ディスクアレイ504は、キャッシュメモリ51と、ホストディレクタ511,512,513と、物理ディスクユニット525と、物理ディスクユニット525に接続されるディスクディレクタ531,532,533から構成されている。キャッシュメモリ51は、論理的に三つのパーティション521,522,523に分割されている。それぞれのパーティションは管理領域5211,5221,5231及びキャッシュ領域5212,5222,5232からなる。
【0007】
次に、動作について説明する。まず、ホスト501から論理ディスク0へのアクセス要求があったものとする。ホストディレクタ511は図7に従ってキャッシュパーティション0を使用するために、キャッシュ管理領域5211を操作する。この間キャッシュ管理領域5211は排他制御され、他のディレクタからは操作できない。それとほぼ同時にホスト502から論理ディスク1へのアクセス要求があったものとする。するとホストディレクタ512はキャッシュパーティション1を使用するために、キャッシュ管理領域5221を操作する必要がある。このときキャッシュ管理領域5221は排他制御されていないので、すぐに操作することができる。
【0008】
また、ホスト501が複数のライト要求を連続して発行しているものとする。ホストディレクタ511は、論理アドレスによってキャッシュパーティション521とキャッシュパーティション522とに振り分けてライトする。一方、ディスクディレクタ531は、キャッシュ上にライトされたデータを物理ディスクユニット525に書き込む処理を、ホストディレクタ511の動作と並列して行う。このとき、両ディレクタ511、531がキャッシュ管理領域5211、5221をほぼ同時にアクセスしようとしたときでも、パーティションが違えば同時に処理を行うことができる。
【0009】
以上に見られるように、複数のホストからのI/O要求が、キャッシュ管理領域の操作において競合せずに並列処理を行うことができるため、スループットの向上が得られる効果がある。なぜならば、複数のキャッシュパーティションが完全に独立しているためであり、それぞれの管理領域を操作するときには、そのパーティションだけを排他制御するからである。
【0010】
[第二従来例]
【0011】
近年、ディスクアレイ装置では、ホスト接続ポート数の増加、ディスクドライブの容量及び最大搭載数の増加、ディスクキャッシュの大容量化など、装置全体が大規模化している。このような大規模のディスクアレイ装置を実現するために、ホスト接続ポート数やディスクドライブ搭載数に応じてマルチプロセッサを搭載し、共用メモリによるディスクキャッシュを構成する技術がある。ディスクキャッシュとは、コンピュータとディスクとの間で、データのやりとりを高速化する装置又は機能をいう。その動作原理は、いったんディスクから読み出したデータをメモリ上に蓄えておき、再度同じデータを読み出すときには、ディスクから再度読み込むのではなく、メモリ上に蓄えてあるデータを利用する、というものである。この技術では、マルチホスト接続においても十分なスループットを実現でき、また必要に応じてホストディレクタを実装できるスケーラビリティ(拡張性)もある。
【0012】
図8は、このような共用メモリ方式によるディスクアレイ装置を示すブロック図である。以下、この図面に基づき説明する。
【0013】
このディスクアレイ装置は、ホスト121にホストディレクタ281、ホスト122にホストディレクタ282がそれぞれ接続され、ディスクドライブ141にディスクディレクタ301、ディスクドライブ142にディスクディレクタ302がそれぞれ接続され、ホストディレクタ281,282及びディスクディレクタ301,302が共用メモリ18を使用しながら並列動作するものである。
【0014】
このディスクアレイ装置においては、機械動作を伴うディスクドライブアクセス時間はメモリアクセス時間に比べて大きいので、キャッシュヒット率を向上させること、及び、キャッシュヒット時のレスポンス時間を向上させることにより、平均性能を向上させることができる。キャッシュヒット時のレスポンス時間は、主にホストインターフェース処理時間、データ転送時間、共用メモリ制御処理時間などからなる。これらのうち、ホストインターフェース処理時間、データ転送時間については、ファイバーチャネル技術などにより十分短くなっている。したがって、共用メモリ制御処理についても同様に短くすることが望まれる。なお、ファイバチャネルとは、コンピュータ同士や周辺機器との間を同軸ケーブルや光ファイバケーブルで結び、高速データ転送をするためのインターフェース規格である。
【0015】
ところで、あるアドレスと、その同じアドレス又は近傍のアドレスとに、ほぼ同時にコマンドが発行された場合、キャッシュページの競合が発生する。そのため、排他制御により後の処理は、前の処理が終わるまで待たされることになる。従来は、別々のホストからのI/Oでキャッシュページ競合が発生するようなケースは稀であるので問題は少なかった。しかしながら、ホストがマルチスレッドアクセスを行ってくる場合には、同一ホストからの複数のコマンド同士でキャッシュページ競合が発生してしまう。この場合、ホストは、近傍のアドレスに対して一度に複数のコマンドを発行しておいて、ディスク側がインターフェースバスに隙間を作らないでデータ転送を行うことを期待している。しかし、ディスクアレイ内部でキャッシュページ競合が発生していることにより、データ転送が終了した後に、キャッシュページの受け渡し処理があるため、次のデータ転送をすぐに開始することができない。なお、ディレクタのプロセス(処理単位)を分割した単位を「スレッド」と呼ぶ。マルチスレッドとは、このスレッドでホストの複数の処理要求(ホスト・プロセス)に対応する機能のことをいう。
【0016】
図9は、第二従来例におけるコマンド処理を示すフローチャートである。以下、図8及び図9に基づき説明する。
【0017】
ホストディレクタ281,282はホスト121,122からコマンドを受信すると(ステップ401)、共用メモリ18上の管理データ操作によりキャッシュページ占有処理を行う(ステップ402)。その後、データ転送を起動し(ステップ403)、データ転送が完了するのを待つ。データ転送が完了すると(ステップ404)、共用メモリ18上の管理データ操作によりキャッシュページを解放し(ステップ405)、コマンド完了処理を行う(ステップ406)。
【0018】
図10は、第二従来例において、ホストから続けて2つのコマンドを受け取ったため、キャッシュページ競合が発生したときの処理を示すフローチャートである。以下、図8及び図10に基づき説明する。
【0019】
コマンドA、Bを続けて受信すると(ステップ501,502)、まず、コマンドAの処理としてキャッシュページ占有処理を行う(ステップ503)。続いて、コマンドAのデータ転送を起動すると(ステップ504)、転送完了までプロセッサが空くので、コマンドBの処理としてキャッシュページ占有処理を行う(ステップ505)。しかし、使用したいキャッシュページがすでに占有されているので競合待ちの状態になる。この後、コマンドAのデータ転送が完了して(ステップ506)、コマンドAのキャッシュページ解放処理を行い(ステップ507)、コマンドAは完了する(ステップ508)。ここで漸くコマンドBはキャッシュページを占有できる(ステップ509)。その後はコマンドBの処理を続行する(ステップ510〜513)。このように、ステップ506〜510の間は、ステップ508の処理を除いてホストインターフェースが使用されていない状態である。したがって、ホストインターフェース性能が最大限に発揮されていない。
【0020】
【発明が解決しようとする課題】
このように、第二従来例では、同一ホストからの複数のコマンド同士によるキャッシュページ競合が発生してしまうという問題があった。一方、第一従来例では、異なるホストからの複数のコマンド同士によるキャッシュページ競合を防止できるものの、同一ホストからの複数のコマンド同士に対してはキャッシュページ競合が発生してしまうという問題があった。
【0021】
【発明の目的】
そこで、本発明の目的は、同一ホストからの複数のコマンド同士によるキャッシュページ競合を防止できる、ディスクアレイ制御装置を提供することにある。
【0022】
【課題を解決するための手段】
本発明に係るディスクアレイ制御装置は、複数のホストに一つずつ設けられるとともに当該ホストからのI/O要求を制御してディスク装置とのI/O処理を実行する複数のホストディレクタと、これらのホストディレクタに共用されるとともにディスクキャッシュを構成する共用メモリとを備えたものである。そして、ホストディレクタは、ホストが同一キャッシュページに対する複数のリードコマンドを発行してきた場合に、複数のリードコマンドを処理する間、当該キャッシュページを占有したまま複数のデータ転送処理を起動する機能を備えている。このとき、ホストは、同一キャッシュページに対する複数のリードコマンドをマルチスレッドで発行する。
【0023】
例えば、ホストディレクタは、ホストが同一キャッシュページに対する複数のリードコマンドを発行してきた場合に、最初のリードコマンドに基づきキャッシュページ占有処理を行ない、最後のリードコマンドに基づきキャッシュページ解放処理を行なう。より具体的には、ホストディレクタは、ホストが同一キャッシュページに対するリードコマンドA,Bを続けて発行してきた場合に、リードコマンドAに基づきキャッシュページ占有処理を行なうとともにデータ転送処理を行ない、その後リードコマンドBに基づきデータ転送処理を行なうとともにキャッシュページ解放処理を行なう。
【0024】
これらの場合に、ホストディレクタは、ホストがリードコマンドを発行してきた場合に、そのリードコマンドの要求するキャッシュページアドレスを既に他のリードコマンドが要求していれば、使用カウンタをインクリメントし、当該キャッシュページアドレスに記憶されているデータを転送した後に、使用カウンタをデクリメントする。更に、この場合、ホストディレクタは、使用カウンタが0の場合に、前記キャッシュページアドレスのキャッシュページ解放処理を行なう。
【0025】
換言すると、本発明に係るディスクアレイ制御装置は、キャッシュページを占有している状態で、ローカルメモリ上でキャッシュページ情報を保存しておき、同一プロセッサ内でキャッシュページ競合が発生した場合でも、リードコマンドであれば排他せずに同時に使用できるようにする。これにより、FW(ファームウェア)処理を挟まずに複数の転送を続けて行えるので、狭い範囲へのランダムリードアクセスやシーケンシャルリードアクセスがマルチスレッドで発行された場合の性能を、格段に向上できる。
【0026】
【発明の実施の形態】
図1は、本発明に係るディスクアレイ制御装置の一実施形態を示すブロック図である。以下、この図面に基づき説明する。
【0027】
本発明に係るディスクアレイ制御装置10は、ホスト121,122に一つずつ設けられるとともにホスト121,122からのI/O要求を制御してディスクドライブ141,142とのI/O処理を実行するホストディレクタ161,162と、ホストディレクタ161,162に共用されるとともにディスクキャッシュを構成する共用メモリ18とを備えたものである。
【0028】
ホストディレクタ161は、ホスト121が同一キャッシュページに対する複数のリードコマンドを発行してきた場合に、複数のリードコマンドを処理する間、当該キャッシュページを占有したまま複数のデータ転送処理を起動する機能を備えている。同様に、ホストディレクタ162も、ホスト122が同一キャッシュページに対する複数のリードコマンドを発行してきた場合に、複数のリードコマンドを処理する間、当該キャッシュページを占有したまま複数のデータ転送処理を起動する機能を備えている。
【0029】
ホストディレクタ161は、ローカルメモリ161a、プロセッサ161b、ホスト接続ポート161c、制御回路161d等を備えている。同様に、ホストディレクタ162も、ローカルメモリ162a、プロセッサ162b、ホスト接続ポート162c、制御回路162d等を備えている。
【0030】
また、ディスクアレイ制御装置10には、ディスクディレクタ201,202が付設されている。ディスクディレクタ201は、ローカルメモリ201a、プロセッサ201b、ホスト接続ポート201c、制御回路201d等を備えている。同様に、ディスクディレクタ202も、ローカルメモリ202a、プロセッサ202b、ホスト接続ポート202c、制御回路202d等を備えている。
【0031】
次に、各構成要素について詳しく説明する。
【0032】
ホスト121は、ホスト接続ポート161cでホストディレクタ161に接続されている。また、ホスト121は、マルチスレッドにより一度に複数のコマンドを発行する。プロセッサ161bは、高速にアクセスできるローカルメモリ161aを持ち、ホスト121からのコマンドにより制御回路161dを通して、ホスト接続ポート161cと共用メモリ18との間のデータ転送を起動したり、共用メモリ18に直接アクセスしたりすることにより、共用メモリ18上のデータ管理を行う。ホストディレクタ162は、別のホスト122に接続されていて、ホストディレクタ161とは独立して動作可能であるが、共用メモリ18の情報は共用している。ディスクディレクタ201,202は、ディスクドライブ141,142と共用メモリ18との間のデータ転送を制御する。
【0033】
図2は、ホストディレクタ161,162がローカルメモリ161a,162a上に持つキャッシュページ管理情報テーブルを示す図表である。以下、図1及び図2に基づき説明する。
【0034】
キャッシュページ管理情報テーブルは、複数のエントリについてのそれぞれの有効ビット、アドレス情報、キャッシュページ番号及び使用カウントからなる。有効ビット221,241,261はそのエントリが有効であることを示す。アドレス情報222,242,262は占有中キャッシュページのアドレスを示す。キャッシュページ番号223,243,263は当該キャッシュページの共用メモリ18上の識別子を表わす。使用カウント224,244,264は、当該キャッシュページを使用しているコマンドの数を示す。
【0035】
図3は、リードコマンドにおけるコマンド受信からデータ転送開始までのプロセッサ161bによる処理を示すフローチャートである。以下、図1乃至図3に基づき説明する。なお、プロセッサ162bもこれと同様に動作する。
【0036】
リードコマンドを受信すると(ステップ101)、ローカルメモリ161a上のキャッシュページ管理情報を検索する。このとき、アドレス情報が一致するエントリを検索する(ステップ102)。ここでは、有効ビット221が有効であり、アドレス情報222が一致したものとする(ステップ103)。アドレス情報222が一致した場合、共用メモリ18上で、キャッシュページ番号223に対応するキャッシュページの使用待ちがあるか否かをチェックする(ステップ104)。使用待ちがない場合には、当該エントリの使用カウント224をインクリメントする。これで、そのキャッシュページの使用権が得られたのでデータ転送起動処理を実行する(ステップ111)。
【0037】
一方、ステップ103において当該アドレス情報がなかった場合、そのキャッシュページは占有しているものではないので、キャッシュページ占有処理を実施する(ステップ107)。また、ステップ105において共用メモリ18上で使用待ちがあった場合は、キャッシュページのプロセッサ間競合が発生したか、又はライトコマンドのプロセッサ内競合が先に発生したことになる。したがって、当該コマンド処理はその後に行わなければならないので、キャッシュページ占有処理を実施する(ステップ107)。
【0038】
キャッシュページ占有処理を行った場合には(ステップ107)、ローカルメモリ161a上のキャッシュページ管理情報で空きエントリを検索する(ステップ108)。ここでは有効ビット241が無効だったとする。この場合、有効ビット241を有効とし、アドレス情報242にアドレス情報を登録し、キャッシュページ番号243にキャッシュページ番号を登録し、使用カウント244に1をセットすることで、占有したページ情報を登録する(ステップ110)。このようにして、以後同じキャッシュページにコマンドが有った場合に同時使用できるようにする。
【0039】
図4は、リードコマンドにおけるデータ転送完了からコマンド完了までのプロセッサ161bによる処理を示すフローチャートである。以下、図1、図2及び図4に基づき説明する。なお、プロセッサ162bもこれと同様に動作する。
【0040】
データ転送が完了すると(ステップ201)、ローカルメモリ161a上のキャッシュページ管理情報を検索する。このとき、アドレス情報が一致するエントリを検索する(ステップ202)。アドレス情報が一致するエントリを検索できた場合(ステップ203)、当該エントリの使用カウントをデクリメントする(ステップ204)。その結果がゼロとなった場合には(ステップ205)、そのキャッシュページを使用中の処理が無くなったことを示すので、有効ビットを消すことでキャッシュページ情報を削除し(ステップ206)、キャッシュページ解放処理を行う(ステップ207)。
【0041】
一方、ステップ203でアドレスが一致しなかった場合は、すぐにキャッシュページ解放処理を行う(ステップ207)。また、ステップ205で使用カウントがゼロにならなかった場合は、まだ他に使用中の処理があるので、キャッシュページ解放処理は行わずにコマンド完了処理を行う(ステップ208)。なお、ライトコマンドに対しては、従来通り図9のフローチャートに従って処理を行う。
【0042】
図5は、ホスト121から二つのリードコマンドを続けて受けたときのプロセッサ161bによる処理を示すフローチャートである。以下、図1、図2及び図5に基づき説明する。なお、プロセッサ162bもこれと同様に動作する。また、詳細については、図3及び図4で説明したとおりである。
【0043】
コマンドA,Bを受信した後(301,302)、コマンドAに基づきキャッシュページ占有処理(303)、続いてデータ転送処理(304)を行った後、すぐにコマンドBのデータ転送処理を行う(305)。
【0044】
【発明の効果】
本発明によれば、ホストが同一キャッシュページに対する複数のリードコマンドを発行してきた場合に、複数のリードコマンドを処理する間、当該キャッシュページを占有したまま複数のデータ転送処理を起動することにより、同一ホストからの複数のコマンド同士によるキャッシュページ競合を防止することができる。
【0045】
換言すると、本発明によれば、ホストが狭い範囲に対するランダムリードアクセス又はシーケンシャルリードアクセスをマルチスレッドで発行してきた場合に、同一ページに対するコマンドを処理する間、そのキャッシュページを占有したまま複数のデータ転送処理を起動するので、ホストインターフェースバス性能を最大限に発揮できる。
【図面の簡単な説明】
【図1】本発明に係るディスクアレイ制御装置の一実施形態を示すブロック図である。
【図2】本実施形態におけるホストディレクタがローカルメモリ上に持つキャッシュページ管理情報テーブルを示す図表である。
【図3】本実施形態のリードコマンドにおけるコマンド受信からデータ転送開始までのプロセッサによる処理を示すフローチャートである。
【図4】本実施形態のリードコマンドにおけるデータ転送完了からコマンド完了までのプロセッサによる処理を示すフローチャートである。
【図5】本実施形態におけるホストから二つのリードコマンドを続けて受けたときのプロセッサによる処理を示すフローチャートである。
【図6】第一従来例を示すブロック図である。
【図7】第一従来例に用いられる論理ディスクとキャッシュパーティションとの対応関係を示す図表である。
【図8】第二従来例を示すブロック図である。
【図9】第二従来例におけるコマンド処理を示すフローチャートである。
【図10】第二従来例におけるキャッシュページ競合が発生したときの処理を示すフローチャートである。
【符号の説明】
10 ディスクアレイ制御装置
121,122 ホスト
141,142 ディスクドライブ
161,162 ホストディレクタ
161a ローカルメモリ
161b プロセッサ
161c ホスト接続ポート
161d 制御回路
18 共用メモリ
201,202 ディスクディレクタ
Claims (1)
- 複数のホストに一つずつ設けられるとともに当該ホストからのI/O要求を制御してディスク装置とのI/O処理を実行する複数のホストディレクタと、これらのホストディレクタに共用されるとともにディスクキャッシュを構成する共用メモリと、を備えたディスクアレイ制御装置において、
前記ホストディレクタは、当該ホストディレクタに対応する前記ホストが同一キャッシュページに対する複数のリードコマンドを発行してきた場合に、当該複数のリードコマンドを処理する間、最初のリードコマンドに基づきキャッシュページ占有処理を行ない、リードコマンドの要求するキャッシュページアドレスを既に他のリードコマンドが要求していれば、当該キャッシュページを使用しているリードコマンドの数を示す使用カウンタをインクリメントし、当該キャッシュページアドレスに記憶されているデータを転送した後に、前記使用カウンタをデクリメントするとともに、前記使用カウンタが0の場合に、前記キャッシュページアドレスのキャッシュページ解放処理を行なう機能を備えた、
ことを特徴とするディスクアレイ制御装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001074425A JP3690295B2 (ja) | 2001-03-15 | 2001-03-15 | ディスクアレイ制御装置 |
US10/095,522 US6845426B2 (en) | 2001-03-15 | 2002-03-13 | Disk cache control for servicing a plurality of hosts |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001074425A JP3690295B2 (ja) | 2001-03-15 | 2001-03-15 | ディスクアレイ制御装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2002278833A JP2002278833A (ja) | 2002-09-27 |
JP3690295B2 true JP3690295B2 (ja) | 2005-08-31 |
Family
ID=18931692
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001074425A Expired - Fee Related JP3690295B2 (ja) | 2001-03-15 | 2001-03-15 | ディスクアレイ制御装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US6845426B2 (ja) |
JP (1) | JP3690295B2 (ja) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7752294B2 (en) * | 2002-10-28 | 2010-07-06 | Netapp, Inc. | Method and system for dynamic expansion and contraction of nodes in a storage area network |
JP4257785B2 (ja) * | 2003-04-22 | 2009-04-22 | 株式会社日立製作所 | キャッシュストレージ装置 |
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 |
US7934054B1 (en) | 2005-11-15 | 2011-04-26 | Oracle America, Inc. | Re-fetching cache memory enabling alternative operational modes |
US7899990B2 (en) * | 2005-11-15 | 2011-03-01 | Oracle America, Inc. | Power conservation via DRAM access |
US7516274B2 (en) * | 2005-11-15 | 2009-04-07 | Sun Microsystems, Inc. | Power conservation via DRAM access reduction |
US7873788B1 (en) | 2005-11-15 | 2011-01-18 | Oracle America, Inc. | Re-fetching cache memory having coherent re-fetching |
US7958312B2 (en) * | 2005-11-15 | 2011-06-07 | Oracle America, Inc. | Small and power-efficient cache that can provide data for background DMA devices while the processor is in a low-power state |
TWI366094B (en) * | 2007-12-28 | 2012-06-11 | Asmedia Technology Inc | Method and system of integrating data assessing commands and data accessing device thereof |
JP6030951B2 (ja) * | 2012-12-28 | 2016-11-24 | ルネサスエレクトロニクス株式会社 | 半導体装置及び電子装置 |
US10169232B2 (en) * | 2016-02-19 | 2019-01-01 | Seagate Technology Llc | Associative and atomic write-back caching system and method for storage subsystem |
US10698844B1 (en) | 2019-04-19 | 2020-06-30 | EMC IP Holding Company LLC | Intelligent external storage system interface |
US11151063B2 (en) | 2019-04-19 | 2021-10-19 | EMC IP Holding Company LLC | Host system directly connected to internal switching fabric of storage system |
US11500549B2 (en) | 2019-04-19 | 2022-11-15 | EMC IP Holding Company LLC | Secure host access to storage system resources via storage system interface and internal switching fabric |
US10698613B1 (en) * | 2019-04-19 | 2020-06-30 | EMC IP Holding Company LLC | Host processing of I/O operations |
US10740259B1 (en) | 2019-04-19 | 2020-08-11 | EMC IP Holding Company LLC | Host mapping logical storage devices to physical storage devices |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5222217A (en) * | 1989-01-18 | 1993-06-22 | International Business Machines Corporation | System and method for implementing operating system message queues with recoverable shared virtual storage |
US5363498A (en) * | 1990-02-09 | 1994-11-08 | Hitachi, Ltd. | Method of controlling shared data among computers |
JPH04313126A (ja) * | 1991-04-11 | 1992-11-05 | Nec Corp | 分散ファイルシステムのファイル入出力方式 |
JP3358655B2 (ja) | 1998-12-22 | 2002-12-24 | 日本電気株式会社 | ディスクアレイ装置におけるキャッシュメモリ管理方法 |
-
2001
- 2001-03-15 JP JP2001074425A patent/JP3690295B2/ja not_active Expired - Fee Related
-
2002
- 2002-03-13 US US10/095,522 patent/US6845426B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2002278833A (ja) | 2002-09-27 |
US6845426B2 (en) | 2005-01-18 |
US20020131310A1 (en) | 2002-09-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3690295B2 (ja) | ディスクアレイ制御装置 | |
EP1646925B1 (en) | Apparatus and method for direct memory access in a hub-based memory system | |
US5870625A (en) | Non-blocking memory write/read mechanism by combining two pending commands write and read in buffer and executing the combined command in advance of other pending command | |
US6480927B1 (en) | High-performance modular memory system with crossbar connections | |
US7337281B2 (en) | Storage system and data caching method in the system | |
US7500059B2 (en) | Inter-processor communication method using a shared cache memory in a storage system | |
US5682551A (en) | System for checking the acceptance of I/O request to an interface using software visible instruction which provides a status signal and performs operations in response thereto | |
EP1037137A2 (en) | Disk array controller | |
US5269005A (en) | Method and apparatus for transferring data within a computer system | |
JP2000010901A (ja) | ディスクアレイ制御装置 | |
US20060206663A1 (en) | Disk array device and shared memory device thereof, and control program and control method of disk array device | |
JP2002117002A (ja) | 共用型ペリフェラルアーキテクチャ | |
JP3266470B2 (ja) | 強制順序で行う要求毎ライト・スルー・キャッシュを有するデータ処理システム | |
JP3516431B2 (ja) | プロセッサ・バスによるi/oトラフィック伝送 | |
JP2550311B2 (ja) | 磁気デイスクの多重制御方式 | |
JP4983133B2 (ja) | 入出力制御装置およびその制御方法、並びにプログラム | |
US6988166B1 (en) | Method for snooping raid 1 read transactions by a storage device | |
JPH0281255A (ja) | マルチプロセッサコンピュータ複合装置 | |
JP3940701B2 (ja) | ディスクアレイ装置及び同装置に適用されるキャッシュ一致化制御方法 | |
JPH10283302A (ja) | 複数のプロセッサに接続されたバスにデータを供給する方法およびシステム | |
JP2755103B2 (ja) | 記憶装置のアクセス方法 | |
EP0923031B1 (en) | Method for reading data from a shared memory in a multiprocessor computer system | |
JP2002278923A (ja) | バスシステム,バス制御方式及びそのバス変換装置 | |
JPH0916474A (ja) | 入出力制御装置及び方法 | |
US6839820B1 (en) | Method and system for controlling data access between at least two memory arrangements |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20050209 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050301 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050428 |
|
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: 20050524 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050606 |
|
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: 20080624 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090624 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100624 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100624 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110624 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110624 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120624 Year of fee payment: 7 |
|
LAPS | Cancellation because of no payment of annual fees |