JP3918077B2 - Storage controller control method - Google Patents
Storage controller control method Download PDFInfo
- Publication number
- JP3918077B2 JP3918077B2 JP50410999A JP50410999A JP3918077B2 JP 3918077 B2 JP3918077 B2 JP 3918077B2 JP 50410999 A JP50410999 A JP 50410999A JP 50410999 A JP50410999 A JP 50410999A JP 3918077 B2 JP3918077 B2 JP 3918077B2
- Authority
- JP
- Japan
- Prior art keywords
- storage device
- side processor
- data
- host
- cache
- 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
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
技術分野
本発明は、中央処理装置と記憶装置との間のデータ転送に介在する制御装置の制御方法に関する。
背景技術
従来の制御装置は、記憶装置のデータを一時的に格納するキャッシュメモリと、キャッシュメモリと中央処理装置との間のデータ転送を実行するホスト側プロセッサと、キャッシュメモリと記憶装置との間のデータ転送を実行する記憶装置側プロセッサと、キャッシュメモリの管理情報を格納する共有メモリから構成される。そして、ホスト側プロセッサと記憶装置側プロセッサの双方が、共有メモリにアクセス可能となっている。
上記の構成では、制御装置内の各プロセッサは、キャッシュメモリ上のデータおよび管理情報を共有している。このため、各プロセッサは、キャッシュメモリを介していずれの記憶装置のデータにもアクセス可能である。また、ホスト側及び記憶装置側の各プロセッサは、独立して動作可能である。つまり、ホスト側プロセッサによるキャッシュメモリへのヒット処理と、記憶装置側プロセッサによる記憶装置へのライト処理は、並列に実行可能である。
従来のように、制御装置に一つの共有メモリ及びキャッシュメモリを搭載する構成では、各プロセッサからのアクセスが共有メモリに集中する。このため、共有メモリへのアクセス制御がボトルネックとなるという問題がある。
本発明の目的は、共有メモリおよびキャッシュメモリへのアクセスネックを解消する記憶制御装置およびその制御方法を提供することにある。
発明の開示
キャッシュメモリは記憶装置上のデータを一時的に保存しておくためのものであり、基本的には記憶装置対応に存在すれば良い。また、共有メモリに格納されたキャッシュ管理情報も同様に、記憶装置対応に存在すれば良い。以上の考えに基づいて、上記目的を達成するために本発明では、各記憶装置毎に、この記憶装置にアクセス可能な1つ以上の記憶装置側プロセッサを一つのグループとして割り当て、キャッシュメモリおよび共有メモリをそれぞれのグループに割り当て、グループ内の各記憶装置側プロセッサが、このグループに割り当てられたキャッシュ管理情報を管理する。これにより、複数のキャッシュメモリおよび複数の共有メモリを同時に動作させることが可能となり、ボトルネックを解消することができる。ただし、このグループ分けは、複数の記憶装置に対するグループ分けであっても良い。
本発明における制御装置では、ホスト側プロセッサは、中央処理装置からアクセス要求のあったデータが格納された記憶装置に基づいて、その記憶装置にアクセス可能なグループ内の記憶装置側プロセッサを特定する。また、特定された記憶装置側プロセッサは、ホスト側プロセッサからのアクセス要求に対して、このグループに割り当てられた共有メモリにアクセスして、目的とするデータがキャッシュ上に存在するかどうかを判定し、キャッシュにデータが存在すれば、データを格納しているキャッシュアドレスをホスト側プロセッサに通知する。この結果、ホスト側プロセッサは、通知されたキャッシュアドレスに対してアクセスする。
以上の処理により、各グループに割り当てられた1つの共有メモリへアクセスするのは、この共有メモリが割り当てられた1つのグループに属する記憶装置側プロセッサのみである。このため、1つの共有メモリに対するアクセス回数を削減できる。この結果、共有メモリに対するアクセスの競合を抑えることが出来る。また、システム内では複数の共有メモリおよび複数のキャッシュメモリを保持しているので、システム全体での共有メモリおよびキャッシュメモリへのアクセス性能を向上させることができる。
【図面の簡単な説明】
第1図は、本発明を適用した計算機システムの構成例を示す図である。
第2図は、記憶装置の構成を示す図である。
第3図は、キャッシュメモリの管理情報および管理方法を示す図である。
第4図は、リードヒット処理の処理概要を示す図である。
第5図は、中央処理装置からリード処理要求を受領したホスト側プロセッサの処理のフローチャートである。
第6図は、記憶装置側プロセッサから再接続要求を受領したホスト側プロセッサの処理のフローチャートである。
第7図は、リード処理における記憶装置側プロセッサの処理のフローチャートである。
第8図は、ライト処理におけるホスト側プロセッサの処理のフローチャートである。
第9図は、ライト処理における記憶装置側プロセッサの処理のフローチャートである。
発明を実施するための最良の形態
以下、図面を用いて本発明を実施するための最良の形態を説明する。
第1図に示すように、計算機システムは、中央処理装置100、制御装置180、記憶装置170から構成される。制御装置180は、キャッシュメモリ140と中央処理装置100間のデータ転送を制御する一つ以上のホスト側プロセッサ111と、記憶装置170とキャッシュメモリ140間のデータ転送を制御する一つ以上の記憶装置側プロセッサ152から構成されている。
また、同一の記憶装置170にアクセス可能な全ての記憶装置側プロセッサ152を同一のプロセッサグループ190としており、各グループ毎に、一つの共有メモリ160とキャッシュメモリ140を設ける。各グループ190内の記憶装置側プロセッサ152は、共有メモリアクセスパス165を介して共有メモリ160へアクセス可能である。各記憶装置側プロセッサ152は、記憶装置アクセスパス175を介して記憶装置170へアクセスする。記憶装置アクセスパス175は、一本のパス上に複数の記憶装置170が芋蔓状に接続されていているものとする。また、説明を簡単にするために、各記憶装置側プロセッサ152からは、一本の記憶装置アクセスパス175しか表記していないが、一つの記憶装置側プロセッサ152には、複数の記憶装置アクセスパス175が接続されていてもかまわない。
次に、第2図を用いて記憶装置170について説明する。本発明では記憶装置170は、回転する記憶媒体を備えた磁気記憶装置であるとする。記憶装置170は、複数の記憶媒体400、記憶媒体400毎に存在し、記憶媒体400と記憶装置インタフェース440間のデータ転送を行う複数のヘッド420、ヘッド420と記憶装置外部とのデータ転送を実行する記憶装置インタフェース440から構成される。
ヘッド420は上から昇順に番号がつけられている。複数の記憶媒体400から同時にデータをリード、ライトすることはできない。つまり、アクティブになるヘッド420は高々一つである。目的のデータをアクセスするために記憶媒体上をヘッド420を移動させることをシークと呼び、シークが完了した後に、目的データがヘッド420の下を通過するまで待つことをサーチと呼ぶ。ヘッド420が一回転する間にアクセス可能な記憶媒体400上の領域をトラック410と呼ぶ。また、記憶媒体400が一回転する間に、全ヘッド420下を通過する領域(トラック410の集まり)をシリンダ430と呼び、記憶媒体400の外側から内側に向かって、昇順に番号が付けられている。シリンダ番号とヘッド番号の組みによって、トラック410を特定する。さらに、記憶媒体400のデータ格納領域は512バイトの小領域に分かれていて、これをセクタと呼ぶ。セクタには、トラック410内で一意に番号が付けられていて、トラック410の先頭から昇順に、トラック410内で一意に番号が付けられている。
次に、第3図を用いてキャッシュメモリ140の管理方法を説明する。キャッシュメモリ140は、各グループ190毎に分割されているが、論理的には連続したアドレス空間として見えるものとする。つまり、あるキャッシュアドレスが定まれば、それはどのグループ190に属するどの領域かを特定できるものとする。この実現のためには、例えばキャッシュアドレス上にグループ190の番号を埋め込んでおき、データ転送を実行するハードウエアでそれを認識すれば良い。
キャッシュメモリ140は、セグメント530と呼ばれる例えば16KB(システムにより固定の大きさ)の領域に分割されていて、1セグメントにつき、1個のセグメント管理テーブル520が共用メモリ160上に存在する。セグメント管理テーブル520は、当該セグメント530のキャッシュアドレス522、ダーティデータを示すビットマップ523、クリーンデータを示すビットマップ524、他セグメント管理テーブルへのポインタ521が格納されている。ここで、ダーティデータとは、キャッシュ140上は更新されているが、まだ記憶装置170に未反映のライトデータ、クリーンデータとは、キャッシュ140上に存在する記憶装置170の内容と一致したデータを表す。さらに、セグンメント530を例えば512バイト毎に区切り、この領域に1ビットを対応させたビットマップを作成しておく。そして、もし対応する領域にダーティデータあるいはクリーンデータが存在するなら、ダーティビットマップ523あるいはクリーンビットマップ524の対応するビットを1にする。以上のようにより細かくデータ領域を管理するために、ダーティビットマップ523およびクリーンビットマップ524を使用する。
記憶装置170上の連続した領域、あるいは近傍の領域に対応してキャッシュ領域を割り当てる場合、複数のセグメント530をまとめて管理したほうが都合がよい。本発明では、1トラック410分に対応するキャッシュ領域を、スロット管理テーブル510によって管理する。ここで、スロット管理テーブル510は、記憶装置番号512、トラック番号513、最初のセグメント管理ブロックへのポインタ515、ロック情報514を格納している。記憶装置番号512およびトラック番号513によって、どの記憶装置のどのトラック410のデータを格納しているのかを特定でき、さらにポインタ515をたどり、セグメント管理ブロック520を参照することによって、そのトラック410のどのセクタを格納しているのか、またそのセクタがダーティかどうかを特定できる。また、ロック情報514は、当該スロットを排他的に処理する場合に用いる。
ここで、ある記憶装置170のあるトラック410上のあるデータにアクセス要求があった場合に、どのようにキャッシュ管理が行われるか一例を示す。まず、アクセス要求として、リード・ライト種別、論理記憶装置番号、トラック番号、目的データの先頭のセクタ、長さ(セクタ数)が与えられる。まず、記憶装置番号とトラック番号を元に、目的のスロット管理ブロック510が存在するかどうかを調べる。この手法の一つとして、例えばハッシュがあげられる。すなわち、記憶装置番号とトラック番号をハッシュ関数に与えると、対応するハッシュテーブル500のエントリを出力し、このエントリにスロット管理テーブル510のアドレスが格納されている。もしこれがヌル(アドレスなし)であれば、ミスである。ヌルでなければこのポインタをたどって、記憶装置番号512とトラック番号513が探しているものと一致しているかどうか調べる。一致してなければ、スロット管理ブロック510へのポインタをたどり、記憶装置番号512とトラック番号513の比較を繰り返す。このようにして、目的とするスロット管理ブロック510が存在するかどうかを探す。
もしスロット管理ブロック510が共有メモリ160上に存在すれば、続いてアクセス対象となっているセクタ範囲が存在するかどうかを調べる。そのためには、まず目的のデータの先頭セクタ番号とセクタ数から、先頭セグメント番号と先頭のビット位置、および最終セグメントと最終のビット位置を計算する。例えば、60番のセクタを先頭に、12個のセクタを読み出す場合では、第2セグメントのビット29から、第3セグメントのビット9が算出される。これを元にして、このビット範囲のデータが存在するかどうかを、クリーンビットマップ524あるいはダーティビットマップ523を調べて判定する。もし目的の範囲全てに渡ってデータが存在すればヒット、もし一部分でも存在しなければミスということになる。ヒットの場合には、そのままアクセスを続行すれば良い。ミスの場合は、スロット管理テーブル510が存在しない場合と、スロット管理テーブル510は存在するが、セグメント管理テーブル520の一部あるいは全部が存在しない場合、セグメント管理テーブル520も全て存在するが、データがキャッシュ140上に存在しない場合がある。データがキャッシュ140上に存在しない場合には、データを記憶装置170からキャッシュ140へ読み込んでくれば良い。セグメント管理テーブル520が存在しない場合には、新しいセグメント管理テーブル520を必要数割り当て、スロット管理テーブル510に接続する。この際、ダーティビットマップ523とクリーンビットマップ524は初期化しておく。スロット管理テーブル510が存在しない場合には、スロット管理テーブル510一つと、セグメント管理テーブル520を必要数分割り当て、対応するハッシュテーブル500のエントリにスロット管理テーブル510のアドレスを格納する。この際、論理記憶装置番号512とトラック番号513を更新しておく。
目的のスロットがヒットであると判明した時点、あるいはミスであることが判明し、スロット管理テーブル510を新規に割り当てた時点で、スロットロックを確保する。もし、すでにスロットロック済みであった場合、当該スロットのロックが解放されるまで待つことになる。キャッシュ操作が完了し、もはや当該スロットが不要となると、スロットロックを解放する。この場合にも、ヒットミス判定時と同様に、論理記憶装置番号、トラック番号から目的のスロットをサーチする。あるいはヒットミス判定時に当該スロットのアドレスを記憶しておき、解放時はそのアドレスからスロット管理テーブル510を求める方法でもよい。目的とするスロット管理テーブル510を求めると、スロットロックを解除して、スロット解放処理が完了する。
以下、中央処理装置100からのアクセス要求に対する処理方法について説明する。中央処理装置100と制御装置180間のデータアクセスプロトコルは、汎用機で使用されるCKDプロトコル、ワークステーション等で使用されるSCSIプロトコルなどがあるが、本実施例ではCKDプロトコルを前提として説明する。
CKDプロトコルで使用されるコマンドのうち、本発明に関連するものは、アクセス有効範囲やキャッシュアクセスモードなどを示すDX(Define Extent)コマンド、アクセス位置やアクセスするレコード数を示すLOC(Locate)コマンド、リードを行うRDD(Read Data)コマンド、ライトを行うWRD(Write Data)コマンドなどがある。あるレコードをアクセスする場合には、DX,LOC,RDDなど、複数のコマンドが連続して実行される。これをコマンドチェインと呼ぶ。また、DX,LOC,RDD...とコマンド発行することにより、複数の連続したレコードをアクセスすることもできる。DXコマンドでは、レコードを逐次的に読み出すかどうかを指定するモードがある。LOCコマンドによって転送される位置づけ情報は、シリンダ番号、ヘッド番号、セクタ番号、レコード番号が指定される。また、記憶装置番号は中央処理装置がコマンドを発行するために、制御装置との接続を確立する際に指定される。
まず、第4図を用いて処理全体の概要を説明する。
第4図は、リードヒット処理の概略図を示す。ホスト側プロセッサ111が、中央処理装置100からのリード要求を受領すると、リード対象となった記憶装置170にアクセス可能な記憶装置側プロセッサ152を以下の方法で選択し、リードメッセージを送信する。
各プロセッサは、そのローカルメモリ上に記憶装置アクセス表600を保持している。各エントリは、各該記憶装置170にアクセス可能な記憶装置側プロセッサ番号と状態の組から構成され、この例では各記憶装置170に高々2つの記憶装置側プロセッサ152がアクセス可能な構成となっている。状態は正常あるいは閉塞のいずれかであり、閉塞状態の時は、当該プロセッサ152から記憶装置170へのアクセスはできない。この表は、システム構築時に共有メモリ160に作成されて、各プロセッサはそのコピーをローカルメモリ上に保持する。障害により記憶装置側プロセッサ152と記憶装置間アクセスパス175が閉塞した場合や、保守により一時的にアクセス不能にする場合は、本記憶装置アクセス表600の対応するエントリの状態を閉塞とする。
ホスト側プロセッサ111は、記憶装置アクセス表600の、アクセス対象である記憶装置番号に対応するエントリを見て、当該記憶装置170にアクセス可能な記憶装置側プロセッサ152を求め、任意の記憶装置側プロセッサに対して、処理要求のメッセージを発行する。メッセージは、アクセス種別、記憶装置番号、シリンダ番号、ヘッド番号、セクタ番号、セクタ数から成る。ここで、アクセス種別からセクタ番号までは中央処理装置から指定される。セクタ数は、LOCコマンドで指定されたレコード数とレコード長から算出する。例えば、1セクタ512バイトで、4キロバイトのレコードを3個読み出す場合には、4096×3÷512=24セクタとなる。
ホスト側プロセッサ111からのリード要求に対して、記憶装置側プロセッサ152は共有メモリをアクセスしてヒットミス判定を実行し、当該データを格納しているキャッシュ領域のアドレス、およびキャッシュ140上の有効データ長をホスト側プロセッサ111へ返す。これを受けて、ホスト側プロセッサ111は当該アドレスからデータを読み出して、中央処理装置100へデータ転送を行う。以上の処理が完了すると、中央処理装置100へ正常終了を報告するとともに、記憶装置側プロセッサ152へアクセス完了を報告し、処理を終了する。これを受けて記憶装置側プロセッサ152は、確保していたキャッシュ領域を解放する。
以上、中央処理装置100からのリード要求に対する処理方式の概要を説明した。以下、リードおよびライト処理の詳細を処理フロー図を用いて説明する。
まず、リード処理方式について、第5図から第7図を用いて説明する。
第5図はホスト側プロセッサ111の処理を示す。ステップ700で中央処理装置100からリード処理要求を受領すると、ステップ720において、上述した方法で、記憶装置側プロセッサ152を選択し、リード処理要求を発行する。ステップ730で、記憶装置側プロセッサ152からの応答を待つ。
第7図のステップ900において、記憶装置側プロセッサ152がホスト側プロセッサ111からの処理要求を受領すると、ステップ910でヒットミス判定を行う。その結果、ヒットであることがわかると、ステップ920でメッセージを発行したホスト側プロセッサ111に対して、以下の報告する。
(1)ヒットミス判定結果:ヒット。
(2)セグメントアドレスリスト:データを格納しているセグメントアドレスのリスト。
(3)セグメント内オフセット:データを格納している先頭セクタの先頭セグメント内オフセット。
ここで、セグメントアドレスはセグメント管理テーブル520に格納されている。また、セグメント内オフセットは、セグメント管理テーブル520のダーティビットマップ523あるいはクリーンビットマップ524における、目的データを格納した先頭セクタに対応するビット位置を返す。
ホスト側プロセッサ111がヒットであることを認識すると、前記セグメントアドレスリストおよびセグメント内オフセットから、目的のデータを格納したキャッシュアドレスがわかるので、ステップ740で中央処理装置100に対してデータを転送する。その後、ステップ750で記憶装置側プロセッサ152に対して、アクセス完了を報告し、処理を完了する。この時送信されるメッセージは、記憶装置番号、シリンダ番号、ヘッド番号、ダーティ有無情報、先頭ダーティセグメント、セグメント内オフセット、ダーティセクタ数から構成される。ここで、ダーティ有無情報はダーティなしが格納され、先頭ダーティセグメント、セグメント内オフセット、ダーティセクタ数は無効値が格納されている。第7図のステップ930で、記憶装置側プロセッサ152が、ホスト側プロセッサ111から、アクセス完了報告を受領すると、現在確保中のスロットのロックを解放して、処理を終了する。
もし、キャッシュミスしていた場合には、記憶装置側プロセッサ152は、第7図のステップ910のヒットミス判定処理において、新規にスロット管理テーブル510ならびにセグメント管理テーブル520を割り当る。続いてステップ950でホスト側プロセッサ111に対してヒットミス判定結果(ミス)を報告した後、ステップ960で、データを格納した記憶装置170に対してリード要求を発行し、リード完了まで待つ。
ホスト側プロセッサ111は、第5図のステップ735において、リードミスであることを認識すると、いったん処理を中断し、中央処理装置100との接続を切り離す(ステップ770)。
記憶装置170からキャッシュメモリ140へのデータ転送が完了すると、記憶装置側プロセッサ152は、第7図のステップ970において、当該記憶装置170からの読み出しを待っているホスト側プロセッサ152に対して、再接続要求を発行する。
第6図のステップ800において、ホスト側プロセッサ111が記憶装置側プロセッサ152からの再接続要求を検出すると、ステップ810において、ホスト側プロセッサ111と中央処理装置100間で再接続処理を実行する。これを完了すると、ステップ830で、記憶装置側プロセッサ152に対して再接続完了を報告する。
これを受けて、記憶装置側プロセッサ152は、第7図のステップ990で、要求データを格納したセグメントアドレスリスト、セグメント内オフセットを送信する。以降の処理はリードヒットの処理と同様なので省略する。
もしヒットミス判定の結果がライトミスだった場合は、ホスト側プロセッサ111からの要求が、ミス時リード要か不要かによって、対応が異なる。もし、ミス時リード要であった場合には、前記リードミス時と同様に、記憶装置170からキャッシュ140へデータを格納する。ホスト側プロセッサ111ではこの間、中央処理装置100との接続を切り離しており、再開処理にてライト処理を実行する。ここでのライト処理はヒット時のライト処理と同様である。ミス時リード不要であれば、記憶装置側プロセッサ152およびホスト側プロセッサ111共、ライトヒット処理と同様の処理を行う。
次に、ライト処理方法について、第8図、第9図を用いて説明する。
第8図のステップ1000において、ホスト側プロセッサ111が中央処理装置100からライト処理要求を受領すると、ステップ1020で、第4図で説明した方法で記憶装置側プロセッサ152を選択して、ライト処理要求を発行し、ステップ1030で記憶装置側プロセッサ152からの応答を待つ。
記憶装置側プロセッサ152では、第9図のステップ1110でヒットミス判定を実行する。ここで、もしミスであれば、ヒットミス判定処理で、スロット管理テーブル510およびセグメント管理テーブル520を必要分割り当てる。続いてステップ1120で、セグメントアドレスリスト、セグメント内オフセットをホスト側プロセッサへ転送した後、ステップ1130でホスト側プロセッサ111からのスロット解放要求を待つ。
ホスト側プロセッサ111では、第8図のステップ1040で、記憶装置側プロセッサ152から、ヒットミス判定結果、およびキャッシュアドレスを受け取ると、当該キャッシュ領域に、中央処理装置100から転送されたデータを格納する。データ転送が完了すると、ステップ1050において、ホスト側プロセッサ111は記憶装置側プロセッサ152に対して、アクセス完了を送信する。この時送信されるメッセージは、記憶装置番号、シリンダ番号、ヘッド番号、ダーティ有無情報、先頭ダーティセグメント、セグメント内オフセット、ダーティセクタ長から構成される。ここで、ダーティ有無情報はダーティありが格納され、先頭ダーティセグメントおよびセグメント内オフセットには、先頭のダーティセクタを保持したセグメントアドレスおよびそのセグメント内のセクタオフセット、ダーティセグメント数には中央処理装置100からライトされたセグメントの個数が格納される。
アクセス完了報告を受領した記憶装置側プロセッサ152は、第9図のステップ1140で、前述の方法で目的とするスロット管理テーブル510を取得すると、先頭ダーティセグメントに対応するセグメント管理テーブル520のダーティビットマップ523の、セグメント内オフセットに対応するビットから、ダーティセグメント数分のビットを1にする(ステップ1140)。この際、ダーティセクタ数によっては複数セグメントにわたってダーティビットマップ523を1にする場合もありうる。この場合には次セグメントポインタをたどって、ダーティビットマップを順次1にしていく。この処理を完了すると、当該スロットロックを解除し、ホスト側プロセッサ111に完了報告を行った後、記憶装置170に対してライト要求を発行し、データを書き込む。
産業上の利用可能性
以上のように、本発明にかかる記憶制御装置およびその制御方法は、複数の記憶装置側プロセッサと共有メモリとキャッシュメモリによりグループを構成し、グループ内だけで共有メモリへのアクセスを許可することによって、制御を簡単化して共有メモリアクセスネックを低減し、かつ共有メモリおよびキャッシュメモリを各グループ毎に分散して持つことによって、記憶制御装置全体のスループットを向上することができる記憶制御装置およびその制御方法を構築するのに適している。Technical field
The present invention relates to a control method of a control device that intervenes in data transfer between a central processing unit and a storage device.
Background art
A conventional control device includes a cache memory that temporarily stores data in a storage device, a host-side processor that executes data transfer between the cache memory and the central processing unit, and data between the cache memory and the storage device. The storage device side processor that executes the transfer and the shared memory that stores the management information of the cache memory. Both the host-side processor and the storage device-side processor can access the shared memory.
In the above configuration, each processor in the control device shares data and management information on the cache memory. Therefore, each processor can access data in any storage device via the cache memory. The processors on the host side and the storage device side can operate independently. That is, the hit processing to the cache memory by the host side processor and the write processing to the storage device by the storage device side processor can be executed in parallel.
In the conventional configuration in which one shared memory and cache memory are mounted on the control device, accesses from each processor are concentrated on the shared memory. For this reason, there is a problem that access control to the shared memory becomes a bottleneck.
An object of the present invention is to provide a storage control device and a control method therefor that can eliminate an access bottleneck to a shared memory and a cache memory.
Disclosure of the invention
The cache memory is for temporarily storing data on the storage device, and basically only needs to exist for the storage device. Similarly, the cache management information stored in the shared memory only needs to exist corresponding to the storage device. Based on the above idea, in order to achieve the above object, in the present invention, for each storage device, one or more storage device side processors that can access this storage device are allocated as one group, and cache memory and shared A memory is allocated to each group, and each storage device processor in the group manages the cache management information allocated to this group. As a result, a plurality of cache memories and a plurality of shared memories can be operated simultaneously, and a bottleneck can be eliminated. However, this grouping may be a grouping for a plurality of storage devices.
In the control device according to the present invention, the host-side processor specifies a storage-device-side processor in a group that can access the storage device based on the storage device that stores the data requested to be accessed from the central processing unit. In response to an access request from the host processor, the specified storage device processor accesses the shared memory assigned to this group and determines whether the target data exists in the cache. If there is data in the cache, the host side processor is notified of the cache address storing the data. As a result, the host side processor accesses the notified cache address.
Through the above processing, only the storage device side processor belonging to one group to which the shared memory is allocated accesses the single shared memory allocated to each group. As a result, the number of accesses to one shared memory can be reduced. As a result, contention for access to the shared memory can be suppressed. Further, since a plurality of shared memories and a plurality of cache memories are held in the system, the access performance to the shared memory and the cache memory in the entire system can be improved.
[Brief description of the drawings]
FIG. 1 is a diagram showing a configuration example of a computer system to which the present invention is applied.
FIG. 2 is a diagram showing the configuration of the storage device.
FIG. 3 is a diagram showing management information and a management method for the cache memory.
FIG. 4 is a diagram showing a processing outline of the read hit processing.
FIG. 5 is a flowchart of the processing of the host side processor that has received the read processing request from the central processing unit.
FIG. 6 is a flowchart of the processing of the host processor that has received the reconnection request from the storage device processor.
FIG. 7 is a flowchart of the processing of the storage device side processor in the read processing.
FIG. 8 is a flowchart of the processing of the host side processor in the write processing.
FIG. 9 is a flowchart of the processing of the storage device side processor in the write processing.
BEST MODE FOR CARRYING OUT THE INVENTION
Hereinafter, the best mode for carrying out the present invention will be described with reference to the drawings.
As shown in FIG. 1, the computer system includes a
Further, all the storage
Next, the
The
Next, a method for managing the
The
When allocating a cache area corresponding to a continuous area or a nearby area on the
Here, an example of how cache management is performed when there is an access request to certain data on a
If the
When the target slot is found to be a hit or when it is found to be a mistake and the slot management table 510 is newly assigned, a slot lock is secured. If the slot is already locked, the process waits until the lock of the slot is released. When the cache operation is completed and the slot is no longer needed, the slot lock is released. Also in this case, the target slot is searched from the logical storage device number and the track number as in the case of hit miss determination. Alternatively, a method may be used in which the address of the slot is stored at the time of hit miss determination and the slot management table 510 is obtained from the address at the time of release. When the target slot management table 510 is obtained, the slot lock is released and the slot release processing is completed.
Hereinafter, a processing method for an access request from the
Among the commands used in the CKD protocol, those related to the present invention include a DX (Define Extent) command indicating an access valid range and a cache access mode, a LOC (Locate) command indicating an access position and the number of records to be accessed, There are an RDD (Read Data) command for reading, a WRD (Write Data) command for writing, and the like. When accessing a certain record, a plurality of commands such as DX, LOC, and RDD are continuously executed. This is called a command chain. Further, a plurality of continuous records can be accessed by issuing commands such as DX, LOC, RDD. In the DX command, there is a mode for designating whether to read records sequentially. As positioning information transferred by the LOC command, a cylinder number, a head number, a sector number, and a record number are designated. The storage device number is specified when establishing a connection with the control device in order for the central processing unit to issue a command.
First, the outline of the entire process will be described with reference to FIG.
FIG. 4 shows a schematic diagram of the read hit process. When the host-
Each processor maintains a storage device access table 600 on its local memory. Each entry is composed of a pair of storage device side processor numbers and states that can access each
The host-
In response to a read request from the host-
The outline of the processing method for the read request from the
First, the read processing method will be described with reference to FIGS.
FIG. 5 shows the processing of the
In
(1) Hit miss determination result: hit.
(2) Segment address list: A list of segment addresses storing data.
(3) Offset within segment: Offset within the first segment of the first sector storing the data.
Here, the segment address is stored in the segment management table 520. The intra-segment offset returns the bit position corresponding to the first sector storing the target data in the
When the
If there is a cache miss, the storage
When the host-
When the data transfer from the
When the
In response to this, in step 990 of FIG. 7, the storage
If the result of the hit miss determination is a write miss, the response varies depending on whether the request from the host-
Next, the write processing method will be described with reference to FIGS.
When the host-
The storage
When the host-
Receiving the access completion report, the storage
Industrial applicability
As described above, the storage control device and the control method thereof according to the present invention form a group with a plurality of storage device side processors, a shared memory, and a cache memory, and permit access to the shared memory only within the group. Storage control device capable of improving throughput of entire storage control device by simplifying control and reducing shared memory access bottleneck, and having shared memory and cache memory distributed to each group, and control thereof Suitable for building methods.
Claims (4)
ここで、前記複数のホスト側プロセッサが複数のローカルメモリを、一つのホスト側プロセッサが一つのローカルメモリを有する形で、有し、
また、前記複数の記憶装置は複数のグループに分けられており、更に、前記複数のグループのそれぞれが、キャッシュメモリと、当該キャッシュメモリに記憶されているデータの有無に関する管理情報を格納する共有メモリと、および、当該グループに属する記憶装置と当該グループに割り当てられた前記キャッシュメモリとの間のデータ転送を制御する少なくとも1つ以上の記憶装置側プロセッサとを有しており、
前記複数のホスト側プロセッサのそれぞれが、当該ホスト側プロセッサが有する前記ローカルメモリに、前記複数の記憶装置の各々と前記複数の記憶装置側プロセッサとの対応関係を記憶し、
前記ホスト側プロセッサが、前記中央処理装置からアクセス要求を受けると、前記アクセス要求で指定されるアクセス対象の記憶装置と対応する記憶装置側プロセッサを、前記アクセス要求を受けたホスト側プロセッサが有する前記ローカルメモリ内の前記対応関係を参照して決定し、
前記アクセス要求を受けたホスト側プロセッサが、前記決定した記憶装置側プロセッサが属する前記グループに含まれる前記キャッシュメモリと前記アクセス要求を出した前記中央処理装置との間でデータ転送を実行することを特徴とする記憶装置システムの制御方法。 A control method for a storage system having a plurality of host-side processors connected to a central processing unit and a plurality of storage units for storing data from the central processing unit,
Here, the plurality of host-side processors have a plurality of local memories, and one host-side processor has one local memory,
The plurality of storage devices are divided into a plurality of groups, and each of the plurality of groups further stores a cache memory and management information regarding the presence or absence of data stored in the cache memory. And at least one storage device side processor that controls data transfer between the storage devices belonging to the group and the cache memory allocated to the group ,
Each of said plurality of host side processor to said local memory to which the host processor has to store the correspondence between each said plurality of storage device side processor of the plurality of storage devices,
When the host-side processor receives an access request from the central processing unit, the host-side processor that has received the access request has a storage-device-side processor corresponding to the access-target storage device specified by the access request. Determine by referring to the correspondence in the local memory,
The host-side processor that has received the access request performs data transfer between the cache memory included in the group to which the determined storage-device-side processor belongs and the central processing unit that has issued the access request. A control method of a storage device system.
前記アクセス要求がリード要求である場合、
前記リード要求を受けたホスト側プロセッサは、前記決定した前記記憶装置側プロセッサへ、記憶装置アドレス、データ位置、リード範囲と共にリード要求を発行し、
前記リード要求を受けた前記記憶装置側プロセッサは、前記共有メモリの管理情報をアクセスして、リード対象データがキャッシュ上に存在するか否かを判定し、
前記リード対象データがキャッシュ上に存在する場合、前記記憶装置側プロセッサは、前記リード対象データのキャッシュアドレスと有効データ長とを前記リード要求を発行した前記ホスト側プロセッサに対して通知し、
前記通知を受けた前記ホスト側プロセッサは、通知された前記キャッシュアドレスからリード対象データを読み出して、前記中央処理装置にデータ転送を行なうことを特徴とする記憶装置システムの制御方法。 A method for controlling a storage system according to claim 1 , comprising:
If the access request is a read request,
The host-side processor that has received the read request issues a read request together with the storage device address, data position, and read range to the determined storage device-side processor,
The storage device-side processor that has received the read request accesses the management information of the shared memory to determine whether the read target data exists on the cache,
When the read target data is present on the cache, the storage device side processor notifies the cache address and valid data length of the read target data to the host side processor that issued the read request,
The storage processor system control method, wherein the host side processor receiving the notification reads the read target data from the notified cache address and transfers the data to the central processing unit.
前記アクセス要求がリード要求である場合、
前記リード要求を受けたホスト側プロセッサは、前記決定した前記記憶装置側プロセッサへ、記憶装置アドレス、データ位置、リード範囲と共にリード要求を発行し、
前記リード要求を受けた前記記憶装置側プロセッサは、前記共有メモリの管理情報をアクセスして、リード対象データがキャッシュ上に存在するか否かを判定し、
前記リード対象データがキャッシュ上に存在しない場合、前記記憶装置側プロセッサは、リードミスを前記リード要求を発行した前記ホスト側プロセッサへ通知するとともに、当該記憶装置側プロセッサが属するグループの記憶装置に対してリード要求を発行し、
前記リードミスの通知を受けた前記ホスト側プロセッサは、前記記憶装置側プロセッサおよび前記中央処理装置との接続を切り離し、記憶装置からキャッシュへデータが転送され前記リードミスを通知した記憶装置側プロセッサから再接続要求が発行されたことに応じて、前記中央処理装置と再接続処理を実行し、更に、前記再接続要求を発行した前記記憶装置側プロセッサに対して再接続完了を報告し、
前記再接続完了の報告を受けた記憶装置側プロセッサは、前記データが格納されたキャッシュアドレスおよび有効データ長を前記再接続完了を報告した前記ホスト側プロセッサに通知し、
前記キャッシュアドレスおよび有効データ長を受けた前記ホスト側プロセッサは、前記キャッシュアドレスからデータを読み出して、前記中央処理装置にデータ転送を行なうことを特徴とする記憶装置システムの制御方法。 A method for controlling a storage system according to claim 1 , comprising:
If the access request is a read request,
The host-side processor that has received the read request issues a read request together with the storage device address, data position, and read range to the determined storage device-side processor,
The storage device-side processor that has received the read request accesses the management information of the shared memory to determine whether the read target data exists on the cache,
When the read target data does not exist in the cache, the storage device side processor notifies the host side processor that issued the read request of a read miss and notifies the storage device of the group to which the storage device side processor belongs. Issue a read request,
The host-side processor that has received the notification of the read miss disconnects the connection between the storage device-side processor and the central processing unit, and the data is transferred from the storage device to the cache and reconnected from the storage-device processor that has notified the read miss. In response to the request being issued, the CPU executes reconnection processing with the central processing unit, and further reports completion of reconnection to the storage device side processor that has issued the reconnection request,
The storage-side processor that has received the reconnection completion report notifies the host-side processor that has reported the reconnection completion to the cache address and valid data length in which the data is stored,
The method of controlling a storage system, wherein the host side processor receiving the cache address and the effective data length reads data from the cache address and transfers the data to the central processing unit.
前記アクセス要求がライト要求である場合、
前記ライト要求を受領した前記ホスト側プロセッサは、前記決定した前記記憶装置側プロセッサに対して、記憶装置アドレス、データ位置、ライト範囲とともにライト要求を発行し、
前記ライト要求を受領した前記記憶装置側プロセッサは、ライトデータを格納するためのキャッシュ領域を確保し、データを格納すべきキャッシュアドレスを前記ホスト側プロセッサへ通知し、
前記キャッシュアドレスを受けた前記ホスト側プロセッサは、通知された前記キャッシュアドレスに前記中央処理装置から転送されたライトデータを格納し、前記記憶装置側プロセッサに対して、前記ライトデータを格納しているキャッシュアドレスならびにデータ長を送信し、
前記キャッシュアドレスならびに前記データ長を受けた前記記憶装置側プロセッサは、前記キャッシュに格納された前記ライトデータを、当該記憶装置側プロセッサが属するグループに含まれる前記記憶装置に書き込むことを特徴とする記憶装置システムの制御方法。 A method for controlling a storage system according to claim 1 , comprising:
If the access request is a write request,
The host side processor that has received the write request issues a write request together with a storage device address, a data position, and a write range to the determined storage device side processor,
The storage device-side processor that has received the write request secures a cache area for storing write data, and notifies the host-side processor of a cache address for storing data,
The host-side processor that has received the cache address stores the write data transferred from the central processing unit at the notified cache address, and stores the write data for the storage-side processor. Send cache address and data length,
The storage device-side processor that has received the cache address and the data length writes the write data stored in the cache to the storage device included in the group to which the storage device processor belongs. Device system control method.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP1997/002135 WO1998059291A1 (en) | 1997-06-20 | 1997-06-20 | Method of control of memory controller |
Publications (1)
Publication Number | Publication Date |
---|---|
JP3918077B2 true JP3918077B2 (en) | 2007-05-23 |
Family
ID=14180721
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP50410999A Expired - Fee Related JP3918077B2 (en) | 1997-06-20 | 1997-06-20 | Storage controller control method |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP3918077B2 (en) |
WO (1) | WO1998059291A1 (en) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7275100B2 (en) | 2001-01-12 | 2007-09-25 | Hitachi, Ltd. | Failure notification method and system using remote mirroring for clustering systems |
US7076687B2 (en) | 2002-10-16 | 2006-07-11 | Hitachi, Ltd. | System and method for bi-directional failure detection of a site in a clustering system |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS59117653A (en) * | 1982-12-24 | 1984-07-07 | Nec Corp | External storage controller |
JPS6073758A (en) * | 1983-09-30 | 1985-04-25 | Hitachi Ltd | Disk cache control system |
JP2637788B2 (en) * | 1988-09-02 | 1997-08-06 | 株式会社日立製作所 | Disk cache control method and information processing system |
-
1997
- 1997-06-20 WO PCT/JP1997/002135 patent/WO1998059291A1/en active Application Filing
- 1997-06-20 JP JP50410999A patent/JP3918077B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
WO1998059291A1 (en) | 1998-12-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3944449B2 (en) | Computer system, magnetic disk device, and disk cache control method | |
US7117310B2 (en) | Systems and methods for cache synchronization between redundant storage controllers | |
US7930474B2 (en) | Automated on-line capacity expansion method for storage device | |
US7043610B2 (en) | System and method for maintaining cache coherency without external controller intervention | |
US7337350B2 (en) | Clustered storage system with external storage systems | |
US5193184A (en) | Deleted data file space release system for a dynamically mapped virtual data storage subsystem | |
US5586291A (en) | Disk controller with volatile and non-volatile cache memories | |
US5991775A (en) | Method and system for dynamic cache allocation between record and track entries | |
US8392670B2 (en) | Performance management of access to flash memory in a storage device | |
WO2014061064A1 (en) | Cache control apparatus and cache control method | |
US6009498A (en) | Disk control unit for holding track data in cache memory | |
US6954839B2 (en) | Computer system | |
JP2007079958A (en) | Storage controller, data processing method and computer program | |
JPS6238731B2 (en) | ||
JPH037978B2 (en) | ||
JPH06348597A (en) | Cache control method and rotary type storage device | |
JP2010049502A (en) | Storage subsystem and storage system having the same | |
CN111722791A (en) | Information processing system, storage system, and data transmission method | |
US6336164B1 (en) | Method and system for preventing deadlock in a log structured array | |
JP2002023958A (en) | Computer, computer system and method for transferring data | |
JP3918077B2 (en) | Storage controller control method | |
JP3747937B2 (en) | Computer system and secondary storage device | |
JPH04246746A (en) | Storage device system | |
JP3747788B2 (en) | Computer system and secondary storage device | |
US6862659B1 (en) | Utilizing disk cache as part of distributed cache |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040517 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060104 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060303 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20060627 |
|
RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7421 Effective date: 20060621 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060823 |
|
A911 | Transfer of reconsideration by examiner before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20060921 |
|
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: 20070116 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070129 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100223 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110223 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110223 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120223 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120223 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130223 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130223 Year of fee payment: 6 |
|
LAPS | Cancellation because of no payment of annual fees |