JPH11506238A - キャッシュ管理システムにおける順次性検出用のシステムと方法 - Google Patents
キャッシュ管理システムにおける順次性検出用のシステムと方法Info
- Publication number
- JPH11506238A JPH11506238A JP9510587A JP51058797A JPH11506238A JP H11506238 A JPH11506238 A JP H11506238A JP 9510587 A JP9510587 A JP 9510587A JP 51058797 A JP51058797 A JP 51058797A JP H11506238 A JPH11506238 A JP H11506238A
- Authority
- JP
- Japan
- Prior art keywords
- record
- track
- information field
- access
- sector
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
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
-
- 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/0862—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/31—Providing disk cache in a specific location of a storage system
- G06F2212/312—In storage controller
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/60—Details of cache memory
- G06F2212/6026—Prefetching based on access pattern detection, e.g. stride based prefetch
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)
Abstract
(57)【要約】
本システムはアクセスさるべく探査されたレコードの位置の内部解析、またはホスト処理システムからのヒントの何れかに依存する。内部解析は、レコードレベル上で、実行され、それによって順次性の検出に先立って実質的な数のミスが生じないように設計される。
Description
【発明の詳細な説明】
キャッシュ管理システムにおける順次性検出用のシステムと方法
発明の背景
発明の分野
本発明は一般的にデータ処理システムにおけるデータ記憶のためのメモリサブ
システムに関する。特に、本発明はメモリアクセスにおける順次性検出のための
システムと方法の改良に関する。
関連技術
メモリキャッシングは記憶装置の機械的限界によるメモリアクセスの遅れをな
くするための公知の技術である。例えば、ディスクドライブの場合、ディスクが
固定速度で何度も回転し、ディスクに対し固定されているかまたはディスクに対
し半径方向に往復運動をするかいずれかの読み取り/書き込みヘッドを通過して
、ディスク面の各点をヘッドに合わせる。いずれの場合も、特定のデータレコー
ドのディスク上の位置を見出して読み取るには、有限の平均時間(アクセス時)
を要する。この「アクセス」時には、正しいシリンダまでヘッドが移動するため
の時間(探査時)と、読み取りと書き込みのため特定の検索レコードの初めがヘ
ッドに合うまでディスクが回転するため要する時間(または待ち時間)とが含ま
れる。
キャッシュデータ記憶は、頻繁にアクセスされるトラックの中のレコードを高
速システムメモリ(例えば固体RAM )の中に記憶することにより、これら固有の
遅れをなくする。この考え方は、遅いディスク記憶装置から高速のシステムメモ
リにデータが移送される(つまり読出される)のを待つのではなく、簡単に出来
るだけ多くのメモリアクセスを可能にするため、データを高速システムメモリか
ら即座に検索することである。この目的を達成するためには、データアクセスが
必要になる前にデータを高速システムメモリ内に読出しておく(つまり先読みさ
せておく)のがよい。
明らかに、キャッシュデータ記憶システムの有効性は、将来のメモリアクセス
の必要性を予見し、これらのデータレコードをそのメモリアクセスに先立ってあ
らかじめディスク記憶から高速システムメモリに移すことについての、システム
の能力により限定される。これらの一般的検討は、ここにそのままを参照として
組み込んだHoutemaker他、"MVS I/O Subsystems: Configuration Management an
d Performance Analysis",McGraw-Hill,1993 に開示されている。
メモリアクセスの順序がその性質上不規則であるときは、キャッシュデータ記
憶システムは将来のメモリアクセスを予見出来ない。したがって、将来のメモリ
アクセスを予見する一方法は、順次的または準順次的メモリアクセスの識別であ
る。一旦、順次的または準順次的メモリアクセスが識別されたら、その並びの中
の将来のレコード/トラックを、将来のメモリアクセスに先立って直ちに高速シ
ステムメモリの中に先読み出来る。
順次的アクセスを識別するには、普通二つの方法が使われる。一つの方法では
、順次モードに入るためホストオペレーティングシステムが提供する「ヒント」
をシステムが利用する。ホストオペレーティングシステムからのヒントに頼るデ
イスク記憶システムの実例には、Storage Technology Corporation のIceberg
RAIDデータ記憶装置とInternational Business Machines Corporation のModel
3390 データ記憶サブシステムが含まれる。
しかし、その他のシステムは、メモリアクセス要求またはデータレコード自体
のいずれの内容にも無関係に順次的アクセスを検出することによりソフトウエア
の透明性(機器不依存性)を増大する。言い換えると、メモリアクセス要求にも
データレコード自体にも、順次性識別のための弁別マークは明示されていない。
これらのシステムにおいては、キャッシュデータ記憶システムに、順次的にアク
セスされるデータレコードとそうでないものとの間を効率的に弁別するための何
らかの内部手段を設けねばならない。この型のシステムはEMC Corporation が販
売している Symmetrixサブシステムで、これは順次性を識別するまでに多数のト
ラックへのアクセスの順次性に依存している。
一般的に、いずれの順次性内部検出システムにも設計上の兼ね合い含まれてお
り、これらにはキャッシュメモリサイズの変動、順次性検出アルゴリズムを実行
するため必要な処理オーバーヘッド、順次性を検出した際に読出されるトラック
の数、などが含まれる。例えば、キャッシュメモリの限られたサイズは、高速シ
ステムメモリ内に投機的に読出されるトラックの数に直接影響する。こうなるの
は、一般的に、キャッシュメモリはシステム性能向上のため正しく管理せねばな
らぬ高価な資源だからである。別の結果として、キャッシュメモリの限られたサ
イズは順次性発見に先立つ許容「見逃し」の数を増加する。この文脈で「見逃し
」とは、高速システムメモリに先読みされなかったレコードへのアクセスである
。明らかに、トラックの先読みは、これら読出されたトラックが将来のメモリア
クセスの対象となる十分に大きい確率があるのでない限り、起きてはならない。
最後に、順次性検出システムの実行に必要なオーバーヘッドは、キャッシュデー
タ記憶システム自体の性能が損なわれるほど過剰な負担になってはならない。
したがって、必要なものは、キャッシュ「見逃し」の数を最小にした、オーバ
ーヘッドの低い、正確な順次性検出のシステムと方法である。
発明の概要
本発明は、順次性を最小数の「見逃し」で正確に検出する低オーバーヘッドの
システムの提供により、前記の必要を満足する。特に、本発明は、トラックレベ
ルの反対にレコードレベルにおいてメモリアクセスを追跡するシステムと方法を
提供する。メモリアクセスを細かい感触で解析してオーバーヘッドを過剰に増や
すことなく、このシステムは順次性検出の前の「見逃し」数を最小にする。
特に、本発明は、各トラックのためのキャッシュディレクトリ登録を、システ
ムメモリ内に、先ず維持する。このディレクトリ登録は、4個のデータフィール
ドから構成されるデータ構造を含む。好適実施例において、4個のデータフィー
ルドには最新参照セクター/レコード(LSRR)と、トラック状態(ST)と、既要求先
読み数(PAR)と、前方読出し限界(SAL)とが含まれる。
操作に当たって、順次性検出のためのシステムと方法は、先ずトラックのSTフ
ィールドを、最初にアクセスされる前の初期状態に初期化する。トラックへの最
初のアクセスに際して、トラックのSTフィールドは第一非順次状態に設定され、
トラックのLSRRフィールドはアクセスされたレコードの番号に設定される。言い
換えると、トラック上の n番目のレコードがアクセスされると、LSSRフィールド
は値nに設定される。トラックの(n+1)番目のレコードへの次のアクセスに際し
て、トラックのSTフィールドは第二非順次状態に設定され、LSSRフィールドは値
(n+1)に設定される。最後に、トラックの(n+2)番目のレコードへの次のアクセス
の後、トラックのSTフィールドは順次状態に設定される。
上述のシステムと方法の変形として、LSSRフィールドには代替案としてレコー
ド番号の代わりにセクター番号を記憶しても良い。この変形では、LSSRフィール
ドに前のアクセスにおいてトラック上になされた最新移送の終わりのセクター番
号が記憶される。トラックへの次のアクセスにおいて、トラック上になされた最
初の移送の始めにあるセクターが、LSSRフィールドの中のセクター番号の受付範
囲内にあるとき、STフィールドは順に次の状態に変更される。
前記に概説した基本的順序の例外として、前のトラックがキャッシュの中にあ
りそれが順次状態にあると判定されたときは、そのトラックのSTフィールドは直
ちに、順次状態に設定される。また、レコードのサイズが相当大きくてトラック
に4レコード未満しか収容出来ないときは、連続する二つのレコードだけをアク
セスした後に順次状態に達する。最後に、トラックはホストシステムが提供する
ヒントに基づいて直ちに順次状態に入ることがある。特に、(1)Define Extent
コマンドに順次性ビットが設定されているか、(2)Read Track コマンドを受領し
たか、(3)Read Multiple Count Key Data コマンドを受領したか、(4)Write Cou
nt Key and Data Next Track コマンドを受領したかの、いずれかのとき、順次
状態に達する。
図面の簡単な説明
本発明の前述のおよびその他の利点は、以下から、特に、付属図面に図示した
ような、本発明の好適実施例の開示から、明白である。
第1図は、本発明の順次性検出システムと方法を組み込んだディスクアレーシ
ステムの高水準ダイヤグラムを示す。
第2図は、メモリアクセス要求における順次性識別の過程を明らかにする状態
ダイヤグラムを示す。
第3図と4図とは、順次性検出後のトラックの読出し実施と読出し解除とに関
する調節パラメータの効果を示す。
好適実施例の詳細な説明
本発明の好適実施例を下記に詳細に論じる。特定の構成について論じるが、そ
れは例証目的のためのみであると理解されるべきである。以下の開示を読んだ後
、本発明の精神と範囲とを逸脱することなく別の構成部品と構成を利用できるこ
とは、当業者には明白であろう。
第1図はキャッシュ管理システム100 の簡略化図面を示す。キャッシュ管理シ
ステム100には、1台以上のホスト110a-110b から一つ以上の通信チャンネル103
a、103bを通してデータ読み取り/書き込みコマンドと関連データとを受け取る
のに適応させたホストディレクタ102a-102b が含まれる。ホストディレクタ102a
-102b は、メモリコントローラ106 を介してシステムメモリ108 に結合されてい
る。ホストディレクタ102a-102b はバス120 を用いてメモリコントローラ106 に
結合されている。
キャッシュ管理システム100 はまた、デバイスコントローラ104a-104b を含む
。デバイスコントローラ104a-104b は1個以上の記憶装置112a-112b に結合され
てそれぞれのデータ記憶装置112a-112b からのデータの読み取りと書き込みに用
いられる。デバイスコントローラ104a-104b はまたバス120 を用いてメモリコン
トローラ106 にも結合されている。
操作に当たって、キャッシュ管理システム100 は、データをシステムメモリ10
8 に一時的に記憶することにより、ホスト110a-110b による記憶装置112a-112b
に記憶されたデータへのアクセス時間を短縮する。ホスト110a-110b はこのとき
、機械的記憶装置112a-112b の検索と待ち時間とに関連した本質的な時間遅延に
煩わされることなく、システムメモリ108 からデータをアクセスできる。この技
術の効率を最大にするには、キャッシュ管理システム100はシステムメモリ108
にどのデータを先読みするかを正確に予測しなければならない。本発明は、「見
逃し」の数を最小にしながらこれらの順次メモリアクセスを正確に識別する改良
された方法を提供する。
この目標の達成に当たって、順次性検出のためのシステムと方法はメモリアク
セス内部解析かまたはホストシステム110a-110b からの「ヒント」のいずれかに
頼る。この複合システムの動作の開示に当たって、このシステムと方法は、次の
機能部分、すなわち順次性の検出と、順次モードでの作動と、順次モードの終了
と、に分けられる。
以下の説明において、「セクター」と「レコード」と「トラック」とを引用す
る。これらの用語はディスク記憶システムの分野内で認容された意味を持つが、
記述する発明はこれらの用語に限定されるものではない。もっと一般的に、「ト
ラック」は物理的記憶装置からシステムメモリに読出されるデータの増し分をあ
らわし、一方「セクター」と「レコード」とは「トラック」内のデータの単位を
あらわす。
順次性の検出
一般的に、順次性の検出は、トラックレベルではなくレコードレベルにおける
メモリアクセスの解析により、既知のシステムを超えて改良された。この方法は
、多数のトラックをまたいででなく単一のトラック内で順次性を識別することに
より「見逃し」の数を最小にする。明らかに、多数のトラックの並びがアクセス
された後にのみ順次性を検出すると、それぞれの初期トラックの中でアクセスさ
れる最初のレコードはキャッシュデータ記憶システムに先読みされる恩恵に浴さ
ないでアクセスされる。
勿論、順次性検出を小さい尺度に洗練するだけでは、もっと効率の良いキャッ
シュデータ記憶システムは自動的には生まれない。特に、細かい感触の解析に必
要なオーバーヘッドの増加は、メモリアクセスの監視と解析に含まれるオーバー
ヘッドコストには一桁の増加があると合理的に見込めるので、性能を劣化させる
。さらに、既知のシステムより迅速に順次性を識別する方法はいずれも、複数の
トラックが恒久的に読出されないことを保証しなければならない。本発明は、オ
ーバーヘッドの膨大な増加なしにメモリアクセスをレコードレベルで解析するシ
ステムと方法の提供により、これらの問題の釣り合いを取る。その結果、本発明
の順次性検出システムは、システム性能に重大な影響を与えることなく、順次性
検出前の見逃し数を最小にする。
とりわけ、この順次性検出のためのシステムと方法は、システムメモリの中で
、各トラック用のディレクトリ登録の中にデータ構造を記憶する。好適実施例に
おいては、このデータ構造は4個の8-ビットフィールドに分割され、これらには
最新参照セクター/レコード(LSRR)、状態(ST)、既要求先読み(PAR)および前方
読出し限界(SAL)情報フィールドが含まれる。LSSRとSTのフィールドは、主とし
て順次性検出段階で用いられる。他方、PAR とSAL のフィールドは、順次性が検
出された後に利用される。LSSRとSTのフィールドは、以下のこの節で記述する。
PAR とSAL のフィールドの動作説明は次の節に示す。
LSSR情報フィールドには、トラック上で参照された最新のレコード番号が含ま
れる。代案では、LSSR情報フィールドに、トラック上になされた最新移送の終わ
りのキャッシュセクター番号が含まれる。定義では、セクターはディスク上のメ
モリの固定長部分である。これら二つの選択肢の間の特定的な選択は、実際のシ
ステム実施状況に左右される。例えば、レコード番号を用いると、非連続的に増
えるレコード番号のような非標準的トラック配置は、順次的とは見なされない。
他方、セクター番号を用いると、順次性試験は、アクセスされたセクターの間の
、順次アクセスの並びの一部と見なされ得る受付領域を識別するため、キイフィ
ールド、超越セクター、などを考慮に入れねばならない。
ST情報フィールドには、対応するトラックの状態が含まれる。STフィールドの
可能な値を第1表に示す。第2図に関連してこれらの状態の詳細な記述を下記に
詳細に示す。
PAR 情報フィールドは、このトラックの前方に既に要求されたトラックの数を
特定する。このフィールドは、順次性検出の後、前方に読出し要求がなされたと
き、設定される。最後に、SAL 情報フィールドは、システムがそのトラックより
前方に読出されたいと望むトラックの数を特定する。
動作に際して、順次性検出のためのシステムと方法は、第2図に示す一般的な
システムの流れにしたがう。第2図の状態のそれぞれは次の第1表に定義する。
0、1,2と128 の状態のいずれかの間の転移が、本発明の内部順次性検出シス
テムの動作をあらわす。他方、状態129-132 は、ホストシステム110a-110b によ
るヒントに頼る順次性検出システムの側面をあらわす。
内部順次性検出システムは、デバイスコントローラ104a-104b がそのトラック
の読出し実施を完了したとき、そのトラックのSTフィールドを0 に等しく設定す
ることにより開始される。この段階は第2図に転移202 により示してある。続い
てホストディレクタ102a-102b が読出されたトラックをアクセスしてSTが0 であ
ると見出したき、ホストディレクタ102a-102b は(現用トラックがシリンダ0 ヘ
ッド0 でない限り)前のトラックに関するディレクトリ登録を点検する。前のト
ラックのSTフィールドが高オーダーのビット設定を持っていないとき(つまりST
<128)、ホストディレクタ102a-102b が現用トラックの中のSTフィールドを状
態0 から状態1 に変更し、LSSRフィールドをアクセスされたレコードの番号に設
定する。代案として、LSSRフィールドをトラック上になされた最新移送の終わり
のセクター番号に設定する。この段階を転移204 により示す。
通常は、特定のトラックへの最初のアクセスは単に、そのトラック上のレコー
ドへのアクセスが起こったことを告げるのみである。この時点では、そのトラッ
クへの最初のメモリアクセスがたとえ順次の出発点であっても、そのメモリアク
セスを不規則なメモリアクセスと区別出来ない。
しかし、前のトラックがキャッシュの中にありST情報フィールドが高オーダー
のビット設定を有している(つまりST≧128 )ときは、順次性が検出され現用ト
ラックに関するSTフィールドが状態0 から状態128 に変更される(転移212 )。
一例では、現用トラック内でアクセスされたレコードは、前のトラックの中の最
後におかれたレコードに続いてそのトラック内の最初におかれたレコードであり
得る。言い換えると、アクセスは、前のトラックから現用トラックまで順次に継
続した。別の例では、現用トラック内でアクセスされたレコードは、前のトラッ
ク内でアクセスされた最後のレコードには直接続かない(すなわち準順次アクセ
ス)。いずれの場合にも、順次性は現用トラックへの最初のアクセスの後に検出
される。
トラックへの最初のアクセスが決定的でないとき(すなわちS=1 )は、内部順
次性検出システムは順次性を検出する前に、その特定のトラックへの将来のアク
セスを待たねばならない。特に、そのトラックへの次のアクセスに際して、ホス
トディレクタ102a-102b はディレクトリ登録内のLSSRフィールドを点検する。ア
クセスしようと検索しているレコード番号がLSSRフィールドに記憶されているレ
コード番号より1だけ大きければ(またはセクター番号が、LSSRフィールドの示
すところで最新アクセスセクターの受付範囲内にあれば)、STフィールドは状態
1 から状態2 に変更され(転移206 )、LSSRフィールドは該当するセクター/レ
コード番号に更新される。状態2 は、順次性階層構造内の中間状態をあらわす。
逆に、レコードへの次のアクセスが順次の可能性を示さなければ、必要なとき
LSSRフィールドが更新されるだけである。トラックの状態は無変更である。これ
により、順次性検出システムは、典型的な読み取り/更新/書き込みのシーケン
スをバッチデータベース更新のために取り扱うことが出来る。
トラック内のレコードへの連続的なアクセスは順次の可能性を示唆するけれど
も、第二の確認を用いて偽物の混在を最小にする。偽物の混在はシステムメモリ
108 への多数のトラックの不必要な先読み実施を生じるので、未熟な読出し実施
決定を制限する注意が払われている。
代替実施例においては、偽物の混在をさらに少なくするため追加の中間読出し
を用いる。このような追加読出しが必要か否かは、多すぎるトラックを早過ぎて
先読みすることと待ち過ぎにより「見逃し」を背負い込むこととの間の全体的な
兼ね合いを考慮して、トラック内のレコードのサイズ、位置などに準拠する必要
がある。
好適実施例において、状態1 と状態128 との間の転移210 は、中間状態2 の利
用の必要の例外をあらわす。この例外は、純粋に、アクセスされるレコードのサ
イズに基づく。例えば、もしレコードサイズが15,476バイト(すなわちIntenati
onal Business Machines 3380 ディスクファミリの3レコード/トラックの最大
レコードサイズ)より大きいと、トラックへの後続のアクセスは、STフィールド
に状態1 から状態128 への変更をうながす(つまり、順次性検出)。関連技術の
普通の技量の人には明らかなように、レコードサイズの正確な閾値(または最大
レコード/トラック)は個別のシステム実行またはアプリケーションに左右され
て変化する。
好適には、順次性検出方法は順次性の指示/検出の前に第二確認を必要とする
。こうして、もしST=2を有する特定のトラックへの後続のアクセスにおけるレコ
ード番号がLSSRフィールドに記憶されたレコード番号より1だけ大きければ(ま
たは最後にアクセスされたセクターの受付範囲内にあれば)、STフィールドが状
態2から状態128 に変更されて(転移208 )、順次性の検出を示す。
状態0 、1 および2 が初期順次性検出方法を説明する一方で、状態129-132 は
、ホストシステム110a-110b からのヒントに頼る順次性検出システムの側面を説
明する。状態129-132 のいずれかへの転移222 、224 、226 、228 は、内部順次
性検出システム内の流れの間のいずれかの時期に起こる。こうしてトラックのST
フィールドが、状態0-2 のいずれかから状態129-132 のいずれかに転移する。
特定的には、状態129 への転移222 はDefine Extent コマンドの中に順次ビッ
トが設定されたときに起こり、状態130 への転移224 はRead Track コマンドを
受領したときに起こり、状態131 への転移はRead Multiple Count Key Data コ
マンドを受領したときに起こり、状態132への転移はWrite Count Key and Data
Next Track コマンドを受領したときに起こる。状態129-132 のそれぞれにおい
て、高オーダービットが設定されるので順次性が検出される。
さらなる実施例においては、同様の転移がLocate Record コマンドのパラメー
タの内容に基づいて起こることがある。例えば、Locate Record コマンドの計数
と移送長さの因子を用いることにより、順次性検出システムは、トラックをいく
つ先読みすべきかを判定出来る。同様に、代替実施例において、順次性検出シス
テムは、Locate Record コマンドの中の計数とDefine Extent コマンドの中のブ
ロックサイズとを利用して、トラックをいくつ先読みすべきかを判定する。両方
の場合に、順次性検出システムは、先読みする範囲を判定するのに「ヒント」を
利用する。
順次モードでの動的作動
順次性が検出されると、中心問題は、何時どこまで前を読出しし、何時どこか
ら後を読出し解除または割り当て解除するかになる。読出し解除のとき、キャッ
シュ管理システムは内容をキャッシュからディスクにコピーする。割り当て解除
のとき、キャッシュ管理システムはキャッシュのいくつかの領域を将来利用出来
るようにする。一般的に、書き込みが起こっていると、トラックは割り当て解除
される前に読出し解除される。読み取りのみが起こっていると、トラックは単に
割り当て解除されるだけである。
一つの実施例では、前方読出しの決定は、レコード領域確定および/またはコ
マンドチェインの終わりになされる。動的読出し実施一読出し解除/割り当て解
除過程を進め易くするため、5個の動的調節パラメータ(K1-K5)を次のように定
義する。
K1 前方に読出す量(引き続く要求)
K2 さらに多くを要求する前に、以前の前方読出し要求の中で残す量
K3 後方割り当て解除の範囲
K4 後方読出し解除の範囲(書き込み)
K5 前方に読出しする量(最初のとき)
K1、K2およびK5の調節パラメータは、読出しする過程を制御する。これらの調
節パラメータの値は、レコードのサイズ(小さいレコードを有するトラックは、
トラック上に多くのレコードが存在するので、多くの処理時間を要する)、チャ
ンネルの速度、などのような、トラック処理の速度に影響する因子に左右される
。簡単に言うと、トラック処理の速度が速いほど、システムメモリ108に先読み
されるべきトラックの数が多くなる。しかし、内部順次性検出システムは順次ア
クセスがどこまで続くかを予測する方法を持たないので、前方に遠過ぎる読出し
をしてしまう危険性は続いている。
K5調節パラメータが、この問題に直接取り組む。この調節パラメータの値はK1
(後続の要求)と同様であるが、最初の順次性が検出されたとき利用される。好
適実施例においては、K1の初期値は8で、K5の初期値は3である。言い換えると
、順次性の最初の検出に基づく前方読出し要求は、システムメモリ108 への、8
トラックではなく3トラックの先読みを生じる。この状況の一例は第2図の状態
2から128への間の転移208である。この転移においては、最初の順次性検出が特
定されるので3トラックがシステムメモリ108に先読みされる。事実上、K5の値
は8トラックの後続先読み要求の全長を必要としない短い区間の場合を指向して
利用される。
他方、状態1 から状態128 への転移210 は、一つの例外をあらわす。転移210
は、大きいレコードサイズに配慮して特に設計されたので、大きいレコードのた
めの速い処理時間は、多くのトラックが前方に読出されることを必要とする。こ
の筋書きで、一つの実施例は、K1個のトラックが先読みされることを念頭におい
ている。明らかに、先読みされるべきトラックの正確な数値は、トラックのサイ
ズに比較したレコードのサイズに基づいて動的に調節することとなろう。
一般的に、一旦トラックが状態128-132 のいずれか一つに達すると、追加トラ
ックの先読みを始める要求が出る。一旦この要求が出ると、そのトラックの状態
は、状態128-132 のいずれか一つから状態255に更新される。これを第2図に転
移232により示す。
後続の先読み要求に関しては、これらの要求は調節パラメータK2の値と特定の
トラックのためのディレクトリ登録の中に記憶されたPAR フィールドの中の値と
に基づいて発動される。前節で述べたように、PAR フィールドは現用トラックの
前方のトラックがいくつ先読みされたかの情報を提供する。一般的に、読出され
たトラックのPAR 値はその前のトラックのPAR値から1を引いたものに等しい(
最小値は0 )。システムメモリ108 中でK2に等しいPAR 値を有するトラックがア
クセスされたとき、追加のK1個のトラックが読出される。このシーケンスを第3
図と第4図に示す。
第3図は、上述の調節パラメータK1-K4 に頼る読出し実施/読出し解除のシー
ケンスを示す。この例においては、現用トラック145 における初期前方読出し要
求が、現用トラックの前方8トラック(トラック146-153 )を読出したと想定す
る。この状況は、例えば、トラック144が読出されておらずDefine Extent コマ
ンドの中に順次ビットが設定されたとき(つまりST=129)に起こり得る。
第4図のトラックディレクトリ登録の中にさらに示すように、トラック145-15
0 のためのPAR フィールドにはその特定のトラックから前方に読出されているト
ラックの数があらわれている。トラック150 では、PAR 値は未だK2値の2 より大
きい。したがって、次の前方読出し要求は送られない。他方、トラック151 では
、PAR 値がK2に等しい。この時点で、SAL フィールドを参照して前方に読出しす
るトラックの数を判定する。SALフィールドにはK1が含まれているので、この例
では、さらに8トラックを読出しすることを要求する。読出し実施が完了すると
、トラック151 のPAR 値は10に更新される。
一般的に、調節パラメータK1、K2およびK5は、何時どれだけ前方に読出しする
かを判定する。動的調節の便宜のため、先読みされて未だアクセスされていない
トラックの数を監視する。アクセスされていないトラックの数が多過ぎるときは
、調節パラメータK1、K2またはK5を選択的に減少出来る。明らかに、動的調節の
ための特有の方法と閾値は実施時に固有のものである。
読出し解除/割り当て解除に関しては、調節パラメータK3とK4とを利用する。
調節パラメータK3は、現用トラックが読み取られていないとき、現用トラックの
後方で割り当て解除の出来るトラックを判定する。好適実施例においては、K3の
初期値は3 である。
調節パラメータK4は、調節パラメータK3に似ているが、現用トラックまたは読
出し解除すべきトラックの一つに書き込みがあったとき利用される。好適実施例
においては、調節パラメータK4の初期値は16(または1シリンダ)である。この
固有値は実施状況による。この値は、読出し解除のためのデータドライブが、読
出ししようとするデータのデータドライブになるのを防止するために選ばれた。
この設計により、読み取りと書き込みとは別々の物理的ディスクで起こる。実施
に当たって、調節パラメータK4は、読出し解除中のパリティドライブが読出しを
妨害すのを防止するよう動的に調節される。
第4図は、調節パラメータK3とK4との作動を示す。示したように、現用トラッ
クを145とすると、現用トラック145が読み取られていなければ、K3値の3がトラ
ック142 を最新使用(LRU )メモリに移動する。同様に、K4値の16(つまり1シ
リンダ)はトラック140 が後方に読出し解除されることを示す。
順次モードの終了
好適実施例において、キャッシュ管理システム100 は、順次モードを終了すべ
き時期を効率的に判定する。一つの実施例においては、読出されたトラックを含
むシステムメモリ108 の中のスロットがそれらの最新使用の時刻に基づいて論理
的にリンクされている。こうして、このスロットは論理的連鎖の終わりで最古使
用(LRU )スロットを決定する。
ホスト110a-110b が順次アクセスを停止すると、先読みされたトラックは結局
LRU スロットに落ち込んで割り当て解除される。したがって、K3調節パラメータ
が効率的に終了を制御する。代替実施例においては、システムは読み取られなか
ったキャッシュスロットを早急に利用できるようにするため、順次アクセスが止
まる時期を予期するよう設計されている。
本発明を個別的に示し好適実施例を参照して記述したが、当業者により、本発
明の精神と範囲を逸脱することなく形態と詳細において各種の変更を行い得るこ
とが理解されただろう。
Claims (1)
- 【特許請求の範囲】 1.各トラックに関連付けられ、最新参照セクター/レコード情報フィ ールドと状態情報フィールドを含む、データ構造を記憶するためのシステムメモ リと、 現用トラックと現在のメモリアクセスで参照されるレコードの前記現用トラック 内での位置とを識別するための手段と、 前記現在のメモリアクセスと前記現用トラック内のレコードへのその前のM個 のメモリアクセスとが連続しているか否かを、現用トラックに関連付けられた前 記の最新参照セクター/レコード情報フィールドと前記の状態情報フィールドと の値に基づいて判定する手段とを含み、レコードの順次性においてM が少なくも 1であることを特徴とする複数の記憶装置の任意の一つの上のトラックに記憶さ れたデータへのホストシステムによる一連のメモリアクセスにおける順次性を検 出するためのキャッシュ管理システム。 2.前記の検出のための手段が、後続のアクセスにおいてアクセスされ たレコードが直前のアクセスにおいてアクセスされたレコードと比べ、それに次 ぐ順序にあるか否かを判定するための手段を含み、前のアクセスにおいてアクセ スされたレコードは現用トラックのための前記最新参照セクター/レコード情報 フィールドに記憶されたレコード番号により特定される、 ことを特徴とする請求の範囲1のシステム。 3.前記検出のための手段が、後続のアクセスにおいてアクセスされた 第一のセクターが直前のアクセスにおいてアクセスされた第一セクターから受付 範囲内にあるか否かを識別するための手段を含み、前のアクセスにおいてアクセ スされたセクターは現用トラックのための前記最新参照セクター/レコード情報 フィールドに記憶されたセクター番号により特定されるものである、ことを特徴 とする請求の範囲1のシステム。 4.ホストシステムが提供するヒントを解析するための手段をさらに含 むことを特徴とする請求の範囲1のシステム。 5.前記解析のための手段が Define Extent コマンドの中に順次ビットが設定されているか、 Read Track コマンドを受領したか、 Read Multiple Count Key Data コマンドを受領したか、または Write Count Key and Data Next Track コマンドを受領したか、 の条件のいずれか一つを満足したとき順次性を検出する手段を含むことを特徴と する請求の範囲1のシステム。 6.(1) 現用トラックと第一のメモリアクセスにおいてアクセスされた レコードの前記現用トラック内での位置とを識別するステップであって、前記レ コードは前記現用トラックのn番レコードであるステップと、 (2) 前記第一のメモリアクセスにおいてアクセスされた前記レコードのレコ ード番号を、前記現用トラックに関連付けられた最新参照セクター/レコード情 報フィールドに記憶するステップであって、前記最新参照セクター/レコード情 報フィールドは前記現用トラックに関連付けられたデータ構造の一部であるステ ップと、 (3) 前記現用トラックに関連付けられた状態情報フィールドを第一の非順次 性状態に設定するステップであって、前記状態情報フィールドは前記現用トラッ クに関連付けられた前記データ構造の一部であるステップと、 (4) 前記現用トラックへの後続のアクセスに際して、前記後続のメモリアク セスにおいてアクセスされたレコードのレコード番号を前記現用トラックに関連 付けられた前記最新参照セクター/レコード情報フィールドの値と比較するステ ップと、 (5) 前記現用トラックに関連付けられた最新参照セクター/レコード情報フ ィールドが、前記後続のメモリアクセスアクセスされた前記レコードは、前記現 用トラックに関連付けられた前記最新参照セクター/レコード情報フィールドに より識別されたレコードに続くレコードであることを示したとき、前記現用トラ ックに関連付けられた状態情報フィールドを第二非順次性状態に設定するステッ プと、 (6) 前記最新参照セクター/レコード情報フィールドを、前記後続のメモリ アクセスでアクセスされた前記レコードのレコード番号に更新するステップと、 (7) 前記現用トラックへのさらに後続のメモリアクセスに際して、さらに前 記後続のメモリアクセスでアクセスされたレコードのレコード番号を、前記現用 トラックの前記最新参照セクター/レコード情報フィールドの値と比較するステ ップと、 (8) 前記最新参照セクター/レコード情報フィールドが、前記後続のメモリ アクセスでアクセスされた前記レコードは、前記現用トラックの前記最新参照セ クター/レコード情報フィールドで識別されたレコードに続くレコードであるこ とを示したとき、前記トラックの状態を順次性状態に設定するステップと、 の各ステップを含むことを特徴とする一連のメモリアクセスにおける順次性を検 出するためのキャッシュコントローラのための方法。 7.前記ステップ(3)に先立って、 前記現用トラックの前のトラックの前記データ構造の中の前記状態情報フィー ルドの値を識別するステップと、 前記トラックの前記状態情報フィールドが順次状態を示すとき、前記現用トラ ックに関連付けられた前記状態情報フィールドを順次状態に設定するステップと 、 のステップを実行することを特徴とする請求の範囲6の方法。 8.前記ステップ(5)に先立って、 レコードのサイズが、トラック当たり4レコード未満を記憶出来るものである か否かを識別するステップと、 トラック当たり4レコード未満を記憶出来て、また、前記最新参照セクター/ レコード情報フィールドが、前記後続のメモリアクセスにおいてアクセスされた 前記レコードは、前記トラックに関連付けられた前記最新参照セクター/レコー ド情報フィールドにより識別されたレコードに続くレコードであることを示した とき、前記現用トラックに関連付けられた前記状態情報フィールドを順次状態に 設定するステップと、 のステップを実行することを特徴とする請求の範囲7の方法。 9.ホストシステムにより順次性のヒントが提供されたとき即時に前記 現用トラックの前記状態情報フィールドを順次状態に設定するステップをさらに 含むことを特徴とする請求の範囲8の方法。 10.前記即時設定のステップが Define Extent コマンドの中に順次ビットが設定されているとき、前記現用ト ラックの前記状態情報フィールドを順次状態に設定するステップと、 Read Track コマンドを受領したとき、前記現用トラックの前記状態情報フィ ールドを順次状態に設定するステップと、 Read Multiple Count Key Data コマンドを受領したとき、前記現用トラック の前記状態情報フィールドを順次状態に設定するステップと、 Write Count Key and Data Next Track コマンドを受領したとき、前記現用ト ラックの前記状態情報フィールドを順次状態に設定するステップと、 のステップを含むことを特徴とする請求の範囲9の方法。 11.(1) 現在のメモリアクセスにおいて参照されたレコードの現用 トラックと参照されたレコードのその現用トラック内での位置とを識別するステ ップと、 (2) 前記の現在のメモリアクセスと、その前のM 個の(M ≧1 )前記現用ト ラック内のレコードへのアクセスとが、前記現用トラックに関連付けられた前記 最新参照セクター/レコード情報フィールドと前記状態情報フィールドの値に基 づいて、連続しているか否かを識別するステップと、 (3) ステップ(2)で前記現在のアクセスと前のM個のアクセスとは連続してい ると判定したとき、前記状態情報フィールドを順次状態に設定するステップと、 のステップを含むことを特徴とする一連のメモリアクセスにおける順次性を検出 するためのキャッシュコントローラのための方法。 12.前記ステップ(2)が、 (a) 前記現用トラックへの第一のアクセスにおいてアクセスされたレコード の番号を、最新参照レコード/セクター情報フィールドに記憶するステップと、 (b) 後続のアクセスにおいてアクセスされたレコードが、前記現用トラック の最新参照セクター/レコード情報フィールドの中のレコード番号と比べたとき レコードの順序で隣りにあるか否かを識別するステップと、 のステップをさらに含むことを特徴とする請求の範囲11の方法。 13.前記ステップ(2)が、 (a) 前記現用トラックへの第一のアクセスの間に前記現用トラック上になさ れた最新移送の終わりに、セクターの番号を最新参照セクター/レコード情報フ ィールドに設定するステップと、 (b) 後続のアクセスでアクセスされた第一のセクターが、前記現用トラック に関する最新参照セクター/レコード情報フィールドにより識別されたセクター から受付範囲内にあるか否かを識別するステップと、 のステップをさらに含むことを特徴とする請求の範囲12の方法。 14.ホストシステムから順次性のヒントが提供されたとき、即時に前 記現用トラックの状態情報フィールドを順次状態に設定するステップをさらに含 むことを特徴とする請求の範囲11の方法。 15.前記の即時設定のステップが Define Extent コマンドの中に順次ビットが設定されているとき、前記現用ト ラックの前記状態情報フィールドを順次状態に設定するステップと、 Read Track コマンドを受領したとき、前記現用トラックの前記状態情報フィ ールドを順次状態に設定するステップと、 Read Multiple Count Key Data コマンドを受領したとき、前記現用トラック の前記状態情報フィールドを順次状態に設定するステップと、 Write Count Key and Data Next Track コマンドを受領したとき、前記現用ト ラックの前記状態情報フィールドを順次状態に設定するステップと、 のステップを含むことを特徴とする請求の範囲14の方法。 16.レコードまたはセクターレベルでメモリアクセスを解析するキャ ッシュ管理システムにおいて、 ホストシステムが発行するコマンドを解析するための手段と、 Read Track コマンド、Read Multiple Count Key Data コマンドまたはWrit e Count Key and Data Next Track コマンドのいずれかの受領に基づいて順次性 を決定するための手段と、を含むことを特徴とする順次性検出システム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/521,026 US5867685A (en) | 1995-08-29 | 1995-08-29 | System and method for sequential detection in a cache management system |
US08/521,026 | 1995-08-29 | ||
PCT/US1996/013951 WO1997008621A1 (en) | 1995-08-29 | 1996-08-29 | System and method for sequential detection in a cache management system |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH11506238A true JPH11506238A (ja) | 1999-06-02 |
Family
ID=24075023
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP9510587A Pending JPH11506238A (ja) | 1995-08-29 | 1996-08-29 | キャッシュ管理システムにおける順次性検出用のシステムと方法 |
Country Status (7)
Country | Link |
---|---|
US (1) | US5867685A (ja) |
EP (1) | EP0847555B1 (ja) |
JP (1) | JPH11506238A (ja) |
AU (1) | AU707876B2 (ja) |
CA (1) | CA2230542A1 (ja) |
DE (1) | DE69609515T2 (ja) |
WO (1) | WO1997008621A1 (ja) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6381677B1 (en) * | 1998-08-19 | 2002-04-30 | International Business Machines Corporation | Method and system for staging data into cache |
US6449697B1 (en) * | 1999-04-23 | 2002-09-10 | International Business Machines Corporation | Prestaging data into cache in preparation for data transfer operations |
US6622212B1 (en) * | 1999-05-24 | 2003-09-16 | Intel Corp. | Adaptive prefetch of I/O data blocks |
US6865514B1 (en) * | 2000-08-18 | 2005-03-08 | Emc Corporation | Post test data processing of a mass storage system |
AUPR611101A0 (en) * | 2001-07-04 | 2001-07-26 | Commonwealth Scientific And Industrial Research Organisation | Apparatus and analysis method for determination of moisture in materials |
US7177853B1 (en) * | 2002-02-21 | 2007-02-13 | Emc Corporation | Cache management via statistically adjusted time stamp queue |
US6948009B2 (en) | 2002-06-04 | 2005-09-20 | International Business Machines Corporation | Method, system, and article of manufacture for increasing processor utilization |
US7353334B2 (en) * | 2002-08-19 | 2008-04-01 | Aristos Logic Corporation | Method of increasing performance and manageability of network storage systems using optimized cache setting and handling policies |
US7124128B2 (en) * | 2003-06-17 | 2006-10-17 | International Business Machines Corporation | Method, system, and program for managing requests to tracks subject to a relationship |
US7099995B2 (en) * | 2004-02-17 | 2006-08-29 | International Business Machines Corporation | Metadata access during error handling routines |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4536836A (en) * | 1981-11-27 | 1985-08-20 | Storage Technology Corporation | Detection of sequential data stream |
US4875155A (en) * | 1985-06-28 | 1989-10-17 | International Business Machines Corporation | Peripheral subsystem having read/write cache with record access |
US5253351A (en) * | 1988-08-11 | 1993-10-12 | Hitachi, Ltd. | Memory controller with a cache memory and control method of cache memory including steps of determining memory access threshold values |
US5146578A (en) * | 1989-05-01 | 1992-09-08 | Zenith Data Systems Corporation | Method of varying the amount of data prefetched to a cache memory in dependence on the history of data requests |
US5201053A (en) * | 1990-08-31 | 1993-04-06 | International Business Machines Corporation | Dynamic polling of devices for nonsynchronous channel connection |
JPH0535573A (ja) * | 1991-03-25 | 1993-02-12 | Nec Corp | 遠隔フアイルアクセス方式 |
US5381539A (en) * | 1992-06-04 | 1995-01-10 | Emc Corporation | System and method for dynamically controlling cache management |
US5426761A (en) * | 1992-12-22 | 1995-06-20 | International Business Machines Corporation | Cache DASD sequential staging and method |
-
1995
- 1995-08-29 US US08/521,026 patent/US5867685A/en not_active Expired - Lifetime
-
1996
- 1996-08-29 WO PCT/US1996/013951 patent/WO1997008621A1/en active IP Right Grant
- 1996-08-29 EP EP96930636A patent/EP0847555B1/en not_active Expired - Lifetime
- 1996-08-29 DE DE69609515T patent/DE69609515T2/de not_active Expired - Fee Related
- 1996-08-29 JP JP9510587A patent/JPH11506238A/ja active Pending
- 1996-08-29 CA CA002230542A patent/CA2230542A1/en not_active Abandoned
- 1996-08-29 AU AU69610/96A patent/AU707876B2/en not_active Ceased
Also Published As
Publication number | Publication date |
---|---|
MX9801539A (es) | 1998-10-31 |
EP0847555B1 (en) | 2000-07-26 |
AU6961096A (en) | 1997-03-19 |
DE69609515T2 (de) | 2000-12-14 |
US5867685A (en) | 1999-02-02 |
AU707876B2 (en) | 1999-07-22 |
CA2230542A1 (en) | 1997-03-06 |
DE69609515D1 (de) | 2000-08-31 |
WO1997008621A1 (en) | 1997-03-06 |
EP0847555A1 (en) | 1998-06-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0301211B1 (en) | Cache management for a peripheral data storage subsystem | |
US5809560A (en) | Adaptive read-ahead disk cache | |
US4956803A (en) | Sequentially processing data in a cached data storage system | |
US5134563A (en) | Sequentially processing data in a cached data storage system | |
US5353430A (en) | Method of operating a cache system including determining an elapsed time or amount of data written to cache prior to writing to main storage | |
US4875155A (en) | Peripheral subsystem having read/write cache with record access | |
US5146578A (en) | Method of varying the amount of data prefetched to a cache memory in dependence on the history of data requests | |
US5253351A (en) | Memory controller with a cache memory and control method of cache memory including steps of determining memory access threshold values | |
US5325509A (en) | Method of operating a cache memory including determining desirability of cache ahead or cache behind based on a number of available I/O operations | |
EP0080876B1 (en) | Cache control method and apparatus | |
JP3522527B2 (ja) | 入出力制御装置および入出力制御方法 | |
US4466059A (en) | Method and apparatus for limiting data occupancy in a cache | |
US5590300A (en) | Cache memory utilizing address translation table | |
US7437515B1 (en) | Data structure for write pending | |
US20080016273A1 (en) | System And Method To Reduce Disk Access Time During Predictable Loading Sequences | |
JPS60500187A (ja) | データ処理システム | |
JP4060506B2 (ja) | ディスク制御装置 | |
JP2003131942A (ja) | ハードディスク装置のキャッシュを制御する方法および装置 | |
US5694570A (en) | Method and system of buffering data written to direct access storage devices in data processing systems | |
US5717888A (en) | Accessing cached data in a peripheral disk data storage system using a directory having track and cylinder directory entries | |
JPH11506238A (ja) | キャッシュ管理システムにおける順次性検出用のシステムと方法 | |
JPH08263380A (ja) | ディスクキャッシュ制御方式 | |
JP4104283B2 (ja) | 記憶サブシステム及び情報処理システム | |
JP3503480B2 (ja) | キャッシュメモリ制御方法及び装置 | |
JPH10124387A (ja) | キャッシュ制御装置および方法 |