JP2834189B2 - 入出力制御方法 - Google Patents

入出力制御方法

Info

Publication number
JP2834189B2
JP2834189B2 JP1171812A JP17181289A JP2834189B2 JP 2834189 B2 JP2834189 B2 JP 2834189B2 JP 1171812 A JP1171812 A JP 1171812A JP 17181289 A JP17181289 A JP 17181289A JP 2834189 B2 JP2834189 B2 JP 2834189B2
Authority
JP
Japan
Prior art keywords
data
output
slot
write
input
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 - Lifetime
Application number
JP1171812A
Other languages
English (en)
Other versions
JPH0337746A (ja
Inventor
山本  彰
俊明 坪井
孝夫 佐藤
義弘 安積
繁雄 本間
茂 木城
道生 宮崎
善祥 桑原
弘行 北嶋
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.)
Hitachi Microcomputer System Ltd
Hitachi Ltd
Original Assignee
Hitachi Microcomputer System Ltd
Hitachi Ltd
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 Hitachi Microcomputer System Ltd, Hitachi Ltd filed Critical Hitachi Microcomputer System Ltd
Priority to JP1171812A priority Critical patent/JP2834189B2/ja
Priority to US07/548,228 priority patent/US5257352A/en
Publication of JPH0337746A publication Critical patent/JPH0337746A/ja
Application granted granted Critical
Publication of JP2834189B2 publication Critical patent/JP2834189B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime 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/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • 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
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/31Providing disk cache in a specific location of a storage system
    • G06F2212/312In storage controller

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

【発明の詳細な説明】 【産業上の利用分野】
本発明は、キャッシュメモリ(バッファ)を有する入
出力制御方法及びその方法を用いた制御装置、さらにそ
の制御装置を用いた計算機システムに係る。特に、キャ
ッシュメモリ付きディスク制御装置のキャッシュ管理方
法に係る。
【従来の技術】
従来のキャッシュ付きディスク制御装置のキャッシュ
管理は、特開昭55-117780に次のように開示されてい
る。キャッシュのデータ格納単位であるスロットを一つ
のLRU(Least Recent Used)チェインで管理する。スロ
ットにはディスク制御装置のトラックを対応させる。デ
ィスク制御装置は上位システムからディスク装置への書
き込みデータ(Write Data、以下ライトデータと記
す。)を受け取ると、ライトデータをキャッシュに書き
込むと共にディスク装置にも書き込む。したがって、キ
ャッシュの内容は、ディスク装置の内容と常に一致して
いる。 ディスク制御装置がディスク装置から新しいデータを
読み込む場合、最も長い間アセスされていないスロット
を選択し、このスロットに新しいデータを書き込む。最
も長い間アクセスされていないスロットを選択にLRUチ
ェインを用いる。 特開昭59-135563には、ディスク制御装置にライトア
フタ機能を設ける場合について開示されている。ライト
アフタ機能とは、ディスク制御装置がキャッシュにライ
トデータを書き込む時点より後にディスク装置に書き込
む機能である。ライトアフタ機能を設けるとキャッシュ
の内容はディスク装置の内容と必ずしも一致していな
い。そこでキャッシュの信頼性を確保するため、不揮発
性メモリをディスク制御装置内に設け、不揮発性メモリ
とキャッシュにライトデータを二重に格納しておく。
【発明が解決しようとする課題】
従来技術、特にライトアフタ機能を設けた場合、次の
ような課題がある。 ディスク制御装置(以下、単に制御装置と呼ぶ。)の
新たなトラックを割り当てるために選択したスロット
に、未だディスク装置(以下、単にディスクと呼ぶ。)
に書き込まれていないデータが残っている可能性があ
る。このような未書き込みデータがある場合は、未書き
込みデータをディスクに書き込む必要がある。したがっ
て、未書き込みデータの書き込み時間が、スロットの割
り当てに対する待ち時間となる。 一台の制御装置に複数のディスクを接続する場合、そ
れらのディスクを並列に制御し、全体として効率の向上
を図る必要がある。このようなディスクの並列制御を容
易に実現するために、ディスク及びディスクキャッシュ
(以下、単にキャッシュと呼ぶ。)の新たな管理及び制
御方法を得ることが重要な課題である。 次の課題は、ディスクへの書き込み済みデータと未書
き込みデータとをキャッシュにいかなる配分で格納して
おくかである。ここで配分の問題は、格納データ量(メ
モリ容量)、及びキャッシュに格納されている時間ある
いはアクセスされないでいる時間に関して生じる。 不揮発性メモリを設ける場合には、不揮発性メモリの
容量がはキャッシュの容量より小さいとき、解決すべき
課題が生じる。ディスクへの未書き込みデータ(以下、
ライトアフタデータと呼ぶ。)の総容量を不揮発性メモ
リ容量以下にしなければならない。さもなければ、不揮
発性メモリを設けた意義が失われる。そこで、この容量
の制約を考慮したキャッシュの管理及び制御を実現する
必要がある。 したがって、本発明の目的は、ライトアフタデータが
格納されているスロットの中から、データをディスクに
書き込むべきスロットを効率的に選択する方法を提供す
ることである。 本発明の他の目的は、キャッシュのヒット率の観点か
ら、ライトアフタデータが格納されているスロットとラ
イトアフタデータが格納されていないスロットとをキャ
ッシュメモリの中に適切に配分する方法を提供すること
である。 本発明のさらに他の目的は、キャッシュのほかに、不
揮発性メモリを設け、キャッシュの障害に対応する制御
装置において、ライトアフタデータが格納されているス
ロットの中から、データをディスクに書き込むべきスロ
ットを効率的に選択する方法を提供することである。 本発明のさらに他の目的は、ライトアフタデータが格
納されているスロットの中から、データをディスクに書
き込むべきスロットを効率的に選択できる制御装置を提
供することである。 本発明のさらに他の目的は、ライトアフタデータが格
納されているスロットの中から、データをディスクに書
き込むべきスロットを効率的に選択できる制御装置を有
する計算機システムを提供することである。
【課題を解決するための手段】
上記目的は、以下のようにして達成できる。 入出力装置に接続する制御装置において、キャッシュ
メモリを、入出力装置の各々に対応してグループ化して
管理する。このようにして、入出力装置に格納されてい
るデータを、入出力装置の各々に対応して管理されるキ
ャッシュメモリに格納する。上位システムからの入出力
要求に応答して、キャッシュメモリにデータを入出力す
る。その後、キャッシュメモリに格納されているデータ
を入出力装置に格納する。以上が概要である。 ライトアフタデータを格納するスロットを新たなトラ
ックに対応させて割り当てないようにするためには、次
のようにする。 (1)ライトアフタデータを格納しているスロットと
ライトアフタデータを格納していないスロット(格納さ
れているデータのすべてがディスクへ書き込み済みであ
るスロット)とを分けて管理する。 (2)新たなトラックに対応させてスロットを割り当
てるとき、ライトアフタデータを格納していないスロッ
トの中から選択して、割り当てる。 ディスクの効率的な制御は、制御装置によるライトア
フタデータのディスクへの書き込み(以下、ライトアフ
タ処理と呼ぶ。)の高い並列性を確保することで実現で
きる。これはライトアフタデータを有するスロットを、
各ディスク対応にまとめておくことにより、可能であ
る。すなわち、上記したライトアフタデータの格納の有
無に対応したスロットの管理を、さらに各ディスク対応
に細分化した管理とすることにより実現する。以上のよ
うなスロットを、細分化した管理単位ごとにLRUチェイ
ンを用いて管理する。 ディスクへの書き込み済みデータとライトアフタデー
タとをキャッシュにいかなる配分で格納しておくかの問
題は、次のように解決する。ライトアフタデータを格納
しているスロットのキャッシュ内の保持時間を、ライト
アフタデータを格納していないスロットのキャッシュ内
の保持時間を比較して、配分を制御する。 この配分制御に当たって、前述のように不揮発性メモ
リを設けた場合の容量の問題がある。この問題に対し
て、不揮発性メモリ容量に対するライトアフタデータ
量、すなわちライトアフタデータの占有量が一定量以上
になったとき、ライトアフタデータのディスクへの書き
込みを実行する。
【作用】
ディスク装置に対して未書き込みのデータを含むトラ
ックに対応するスロットを、未書き込みのデータを含ま
ないトラックに対応するスロットを独立に管理する。こ
の時、ディスク装置に対して未反映のデータを含むスロ
ットをディスク装置ごとのLRUチェインにより管理す
る。 このようにスロットを管理し、長い間上位システムか
らアクセスされていないスロットを選択し、各ディスク
装置ごとに並行したライトアフタ処理を実行していくこ
とにより高い性能を得ることができる。 以上により、ライトアフタデータが格納されているス
ロットの中から、データをディスクに書き込むべきスロ
ットを効率的に選択できる。ライトアフタデータが格納
されているスロットとライトアフタデータが格納されて
いないスロットとをキャッシュメモリの中に、キャッシ
ュのヒット率の観点から、適切に配分される。キャッシ
ュのほかに、不揮発性メモリを設けた場合も、ライトア
フタデータが格納されているスロットの中から、データ
をディスクに書き込むべきスロットを効率的に選択でき
る。 さらに、ライトアフタデータが格納されているスロッ
トの中から、データをディスクに書き込むべきスロット
を効率的に選択できる制御装置及び計算機システムを構
成することができる。
【実施例】
以下、本発明の実施例を図面を用いて説明する。まず
第1の実施例を説明する。 第2図に本発明を適用する計算機システムの全体構成
を示す。第2図に示すように、計算機システムはCPU1
0、主記憶装置11、チャンネル12、制御装置2及び少な
くとも1台以上のディスク装置23j(j=a,b,…,m)
(以下、ディスクと呼ぶ))より構成される。制御装置
2は、CPU10あるいは主記憶装置11から出力され、チャ
ンネル12を介した入出力要求に応答して、ディスク23j
に対してデータを読み書きする。 以下の説明では、CPU10、主記憶装置11及びチャンネ
ル12を総称して上位システム1と呼ぶ。 制御装置2は、ディレクタ20、ディレクトリ21及びデ
ィスクキャッシュメモリ22(以下、キャッシュと呼ぶ)
により構成される。 ディレクタ20は、制御装置2の内部の制御、及び上位
システム1とのデータ転送とディスク23jとのデータ転
送とを制御するプロセッサである。 キャッシュ22は、ディスク23jに格納されているデー
タの中で、上位システム1からのアクセス頻度が高いデ
ータを格納するメモリである。 ディレクトリ21は、ディレクタ20がキャッシュ22を管
理、制御するために必要な情報を格納するメモリであ
る。 第2図に示す制御装置2は1つのディレクタ20を有す
る。第3図及び第4図に制御装置2の構成の変形例2a及
び2bを示す。第3図に示す制御装置2aは2つのディレク
タ20aを有し、それぞれのディレクタ20aはディレクトリ
21a及びキャッシュ22aに接続している。第4図に示す制
御装置2bは4つのディレクタ22bを有し、それぞれのデ
ィレクタ22bはディレクトリ21b及びキャッシュ22bに接
続している。 第3図あるいは第4図に示すような制御装置2aあるい
は2bの構成は、データ転送の並列性を高くして高速化す
ることや、多重化による信頼性を得ることを目的として
いる。したがって、上位システム1及びディスク23jと
のデータ転送路は、ディレクタ20aまたは20bの数に対応
して、それぞれ複数ある。 本発明は制御装置が有するディレクタの数に依存せず
に適用できる。すなわち、本発明による制御装置はディ
レクタの数が異なっても、同様に動作し、同様の効果を
発揮する。 以下では、第2図に示す制御装置2の構成を中心とし
て説明する。 第2図に示す制御装置2の動作を説明する。なお、キ
ャッシュ22へのデータの格納単位をスロットと呼ぶ。ス
ロットに格納されるデータはディスク23jのトラックに
格納されるデータに対応するものとする。すなわち、ス
ロットに格納されるデータの量(サイズ)は、ディスク
23jのトラックに格納されるデータの量(サイズ)に等
しいものとする。スロットとの対応は必ずしもトラック
である必要がなく、レコードやその他の適当なデータ量
であっても良い。ただし、ディスク23jへのデータの読
み書きの単位あるいはその単位の整数倍に対応している
ことが望ましいことは言うまでもない。 ディレクタ20は、上位システム1からディスク23jに
対する入出力要求を受け取ると、先ずディレクトリ21内
をサーチする。受け取った入出力要求が示すディスク23
jの入出力対象トラックに対応するスロットがキャッシ
ュ22に存在するか否かをチェックするためである。入出
力対象のトラックに対応するスロットがキャッシュ22に
存在する場合、すなわちサーチの結果、入出力対象のト
ラックに対応するスロットを検出できることをヒットと
呼ぶ。逆に、サーチの結果、入出力対象トラックに対応
するスロットを検出できないことをミスと呼ぶ。 上位システム1からの入出力要求には、読み出し要求
(以下、リード要求と呼ぶ。)と書き込み要求(以下、
ライト要求と呼ぶ。)とがある。リード要求とライト要
求とではディレクタ20の動作が異なる。なお、リード要
求及びライト要求の用語は、上位システム1のディスク
23jに対する動作を表すように使用する。 ヒットした場合、すなわちディレクタ20が受け取った
入出力要求が示すディスク23jの入出力対象のトラック
に対応するスロットがキャッシュ22内に存在することを
検出した場合について述べる。受け取った入出力要求が
リード要求ならば、ヒットしたスロット内の要求された
データを上位システム1へ転送する。受け取った入出力
要求がライト要求ならば、ヒットしたスロットに、ライ
ト要求に対応して上位システム1から転送されるデータ
を書き込む。 一方、ミスした場合、すなわちディレクタ20が受け取
った入出力要求が示すディスク23jの入出力対象トラッ
クに対応するスロットがキャッシュ22内に存在しないこ
とを検出した場合は、ディレクタ20はディスク23jへア
クセスする。受け取った入出力要求がリード要求なら
ば、要求されたデータをディスク23jから読み出し、上
位システム1へ転送する。受け取った入出力要求がライ
ト要求ならば、ライト要求に対応して上位システム1か
ら転送されるデータをディスク23jへ書き込む。なお、
ミスした場合には、キャッシュ22に対してディスク23j
からデータを転送するが、その詳細は後述する。 このように、入出力対象のトラックに対応するスロッ
トがキャッシュ22内に存在しない場合、すなわちミスし
た場合は、キャッシュ22を設けた効果が得られないこと
になる。 逆に、ヒットした場合は、上位システム1とキャッシ
ュ22とのデータ転送となるので、高速な入出力処理が可
能となる。この高速入出力処理は、ディスク23jに対す
るデータ転送の速度に比べて、半導体メモリなどによる
キャッシュ22に対するデータ転送の速度が高速であるこ
とに依存している。 以上の説明から明らかなように、ライト要求に対して
ヒットした場合、データがキャッシュ22に書き込まれる
だけで、ディスク23jへは書き込まれていない状態が発
生する。したがって、ディスク23jへ書き込んでいない
キャッシュ22のデータを、ライト要求とは独立して(ラ
イト要求に対応せずに)、ディスク23jへ書き込む必要
がある。このような書き込みを実行するディレクタ20の
処理をライトアフタ処理と呼ぶ。また、ライトアフタ処
理の対象となるデータをライトアフタデータと呼ぶ。 第5(a)図にディレクトリ21の構成を示す。第5
(b)図に、第5(a)図に示すディレクトリ21の構成
に対応させて、キャッシュ22の構成を示す。キャッシュ
22は複数のスロット220i(i=a,b,…,n)に分割されて
いる。スロット220iの個々に対応させてスロット管理情
報210i(i=a,b,…,n)の格納領域をディレクトリ21に
設ける。スロット管理情報210iとスロット220iとは、符
号の添字が等しいもの同志が対応しているものとする。
ディレクトリ21には、さらにスロット管理情報210iを管
理するための情報であるディレクトリ管理情報211の格
納領域を設ける。 以下、種々の情報の格納領域(テーブル)を単に情報
と呼ぶことがある。 第6図にスロット管理情報210iの格納領域の構成を示
す。第6図には本発明に関係する部分のみを示す。スロ
ット管理情報210iの格納領域は、前方向ポインタ212i、
後方向ポインタ213i、ディスクアドレス214i、トラック
アドレス215i及びアクセス時刻216iの各領域から構成さ
れる。 前方向ポインタ212iの領域及び後方向ポインタ213iの
領域に格納されるポインタについては後述する。 ディスクアドレス214iはスロット管理情報210iが示す
スロットに対応するディスク23jのアドレスを表す。ト
ラックアドレス215iは、スロット管理情報210iが示すス
ロット220iに対応するディスク23jのトラックのアドレ
スを表す。アクセス時刻216iは、スロット管理情報210i
が示すスロットが最も最近、上位システム1からアクセ
スされた時刻を表す。 ここで、前述した入出力要求に対応した動作の中で、
ミスした場合の動作をさらに述べる。ミスした場合に
は、ディレクタ20が受け取った入出力要求が示すディス
ク23jの入出力対象トラックに対応するスロットがキャ
ッシュ22内に存在しない。それ故に、そのままの状態を
継続すると、引き続きミスが発生する可能性が高い。そ
こで、ミスした入出力対象のトラックのデータをキャッ
シュ22に格納しておく必要がある。そのためにアクセス
頻度の小さいスロットを選択し、そのスロットにミスし
た入出力対象のトラックのデータを格納する。 このような処理の実行において、ライトアフタデータ
を格納していない、かつアクセス頻度の小さいスロット
を容易に選択することが重要な課題となる。ライトアフ
タデータを格納していないスロットをリプレイス(repl
ace)可能スロットと呼ぶ。ライトアフタデータを格納
しているスロットをライトアフタスロットと呼ぶことに
する。 この課題を解決するために、本発明では、第5(a)
図に概要を示したディレクトリ21の具体的な構成を第1
図に示すようにする。 第1図に示すように、ディレクトリ管理情報211の格
納領域は、リプレイス可能キューMRU(Most Recently U
sed)ポインタ30、リプレイス可能キューLRUポインタ3
1、ライトアフタキューMRUポインタ32j(j=a,b,…,
m)、ライトアフタキューLRUポインタ33j(j=a,b,…,
m)及び空きスロットポインタ34の各領域から構成され
る。 スロット管理情報210iの格納領域は、上記の各ポイン
タに対応してLRUキューとして管理される。この管理方
法を容易に理解できるようにするために、第1図ではス
ロット管理情報210iの添字の表記を変えて示す。 リプレイス可能スロットのスロット管理情報210p1
…,210ppを(第1図の右から)LRU順に並べ、これをリ
プレイス可能キュー35として管理する。リプレイス可能
キューMRU(Most Recently Used)ポインタ30は、リプ
レイス可能キュー35の中で、最も最近アクセスされた
(MRU位置の)リプレイス可能スロットのスロット管理
情報210p1の格納領域を示すポインタを格納する。スロ
ット管理情報210p1の前方向ポインタ212p1(第6図の添
字iをp1に読み替え)にはスロット管理情報210p2の格
納領域を示すポインタを格納する。このように各スロッ
ト管理情報の前方向ポインタに次のスロット管理情報の
格納領域を示すポインタを格納する。最も長い間アクセ
スされていない(LRU位置の)スロット管理情報210ppの
前方向ポインタ212pp(第6図の添字iをppに読み替
え)は終端する。終端は、たとえば、前方向ポインタの
領域にヌル(NULL)を格納するものとする。 リプレイス可能キューLRUポインタ31は、リプレイス
可能キュー35の中のLRU位置のリプレイス可能スロット
のスロット管理情報210ppの格納領域を示すポインタを
格納する。後方向ポインタをリプレイス可能キュー35の
各スロット管理情報のポインタの接続及び終端に使用
し、接続方向が異なるだけで、その使用方法は前述の前
方向ポインタの使用方法に同様である。 ライトアフタデータを格納するライトアフタスロット
のスロット管理情報をディスク23jに対応して分け、分
けたスロットのスロット管理情報210j1,…,210jβをLR
U順に並べ、LRU順に並べたスロット管理情報の列毎にラ
イトアフタキュー36j(j=a,b,…,m)として管理す
る。ライトアフタキューMRUポインタ32j(j=a,b,…,
m)は、最も最近アクセスされた(MRU位置の)ライトア
フタデータを格納するスロットのスロット管理情報の格
納領域を示すポインタを格納する。ライトアフタキュー
LRUポインタ33j(j=a,b,…,m)は、最も長い間アクセ
スされていない(LRU位置の)ライトアフタデータを格
納するスロットのスロット管理情報の格納領域を示すポ
インタを格納する。 前述のように、ライトアフタキューMRUポインタ32jと
ライトアフタキューLRUポインタ33jの対は、ディスク23
jの個々に対応して設けられる。なお、各スロット管理
情報のポインタによる接続方法及び終端方法はリプレイ
ス可能キュー35における方法と同様である。 このようにリプレイス可能キュー35及びライトアフタ
キュー36jに接続される各スロット管理情報は前方向ポ
インタ212iと後方向ポインタ213jとを有する。説明を繰
り返すが、前方向ポインタ212iは各キューのMRU位置に
あるスロット管理情報からLRU位置にあるスロット管理
情報の方向に向けて付けたポインタであり、後方向ポイ
ンタ213iはその逆である。したがって、前方向ポインタ
212iはLRU位置にある管理情報の格納領域で終端され、
後方向ポインタはMRU位置にある管理情報の格納領域で
終端される。以上のように、リプレイス可能キュー35及
びライトアフタキュー36jは、それぞれが前方向ポイン
タ212iと後方向ポインタとの双方向ポインタ213iで管
理、制御される。 キャッシュ22には、ディスク23jのデータに対応する
データを格納していない、すなわち使用されていないス
ロットが存在することがある。このようなスロットを空
きスロットと呼ぶ。空きスロットに対応するスロット管
理情報もキュー管理され、このキューを空きスロットキ
ュー37と呼ぶ。空きスロットキュー37で管理されるスロ
ット(210q1,210q2,…,210qq)管理情報は、順不同で
並べられても良い。ここでは、FIFO(First-In-Last-Ou
t)の方法で管理するものとする。したがって、空きス
ロットキュー37を管理するために必要なポインタは、先
頭の空きスロット管理情報210q1を指す一つのポインタ
で良く、これを空きスロットポインタ34とする。 スロット管理情報210iがリプレイス可能キュー35ある
いはライトアフタキュー36jに接続された場合に、その
前方向ポインタ212i及び後方向ポインタ213iにそれぞれ
前述したような値がが格納される。具体的には新規にリ
プレイス可能キュー35あるいはライトアフタキュー36j
に接続されるスロット管理情報210iは、対応するキュー
のMRU位置に接続される。したがって、その前方向ポイ
ンタ212iには、直前にMRU位置に接続されていたスロッ
ト管理情報の格納領域へのポインタが格納される。後方
向ポインタは終端される。 スロット管理情報210iが空きスロットキュー37に接続
された場合には、前方向ポインタ212iの領域のみが用い
られ、後方向ポインタ213iなどの他の領域に格納されて
いる情報は意味を持たない。 ここで、第6図に示したスロット管理情報210iのアク
セス時刻216iについて説明を追加する。前述のように、
リプレイス可能キュー35あるいはライトアフタキュー36
jに接続されるときは、必ずそのキューのMRU位置に接続
される。これらのいずれかのキューにスロット管理情報
が接続されているということは、対応するスロットにア
クセスがあったことを意味する。すなわちアクセス時刻
216iはスロット管理情報210iが属しているキューのMRU
位置へ移動した時刻を表す。 以上のようなディレクトリ21及びキャッシュ22の構成
を用いて、ディレクタ20が実行する処理を以下に説明す
る。 ディレクタ20が実行する処理のうち、リプレイス可能
キュー35に関係した処理は周知であるので、ライトアフ
タキュー36jに関係した処理について述べる。 第7図に、上位システム1から受け付けたライト要求
がヒットした場合にディレクタ20が実行する処理を示
す。 ディレクタ20は上位システム1からライト要求と共
に、ライト処理対象のディスク23jのディスクアドレ
ス、トラックアドレス、ライトデータの長さ等を受け取
る。ディレクタ20は上位システム1から受け取ったディ
スク23jのディスクアドレス、トラックアドレスを参照
して、ディレクトリ21のスロット管理情報210jtを周知
の方法で検索する。その結果として、入出力対象のスロ
ットに対応するスロット管理情報210jt(第8図)を検
出する(ステップ700)。 ディレクタ20はスロット管理情報210jtを該当するデ
ィスク23jのライトアフタキューMRUポインタ32jが示す
位置(第9図)に移す(ステップ701)。 ステップ701の処理を第8図及び第9図を用いて具体
的に説明する。第8図及び第9図は、第1図に示すライ
トアフタキュー36j、及びこのキューに対応するライト
アフタキューMRUポインタ32jとライトアフタキューLRU
ポインタ33jとを抜き出して示す。第8図はステップ701
の実行前、第9図はステップ701の実行後の状態を示
す。 スロット管理情報210jtの前方向ポインタ212jtに格納
されている値(スロット管理情報210juを指す)をスロ
ット管理情報210jsの前方向ポインタ212jsに格納する。
スロット管理情報210jtの後方向ポインタ213jtに格納さ
れている値(スロット管理情報210jsを指す)をスロッ
ト管理情報210juの後方向ポインタ213juに格納する。ラ
イトアフタキューMRUポインタ32jに格納されている値
(スロット管理情報210j1を指す)をスロット管理情報2
10jtの前方向ポインタ212jtに格納する。本処理の実行
前にMRU位置にあったスロット管理情報210j1の後方向ポ
インタ213j1に、スロット管理情報210jtを指す値を格納
する。スロット管理情報210jtの後方向ポインタ213jtを
格納する。ライトアフタキューMRUポインタ32jに、スロ
ット管理情報210jtを指す値を格納する。以上の処理が
ステップ701の詳細である。 次に、スロット管理情報210jtのアクセス時刻216jtに
現在時刻を設定する(ステップ702)。この現在時刻は
図示を省略してあるが、制御装置2内に設けられたタイ
マから読み出される。ステップ703では、上位システム
1からライトデータを受け取り、該当するスロット220j
tの中に書き込む。 第10図はディスク23jに対してライトアフタ処理を実
行するために、ディレクタ20から位置付け要求を発行す
るとき、ディレクタ20が実行すべき処理を持たないと
き、開始される。ステップ705では現在動作中でなく、
かつライトアフタキューが空になっていない(ライトア
フタキューに少なくとも一つのスロット管理情報が接続
されている)ディスク装置の中から任意の1台のディス
ク23jを選ぶ。 ステップ706ではディスク23jのライトアフタキューLR
Uポインタ33jが示すスロット管理情報210jwのアクセス
時刻216jwとリプレイス可能キューLRUポインタ31が指す
スロット管理情報210ppのアクセス時刻216ppとを比較す
る。前者が後者より以前の時刻を示しているならば、ス
ロット管理情報210jwに対応するスロット220jw内の未書
き込みデータ(ディスク23jに書き込まれていないデー
タ)は、未書き込みデータを有しないスロット220ppの
中のデータがキャッシュ22に保持されている時間より長
く、キャッシュ32に保持されていることになる。したが
って、ステップ706の判定条件が成立したスロット220jw
内の未書き込みデータをディスク23jに書き込むことに
より、未書き込みデータを有するスロットと未書き込み
データを有しないスロットとをキャッシュ22内にバラン
ス良く保持できる。 ステップ706の判定条件が成立したとき、ステップ707
で、このライトアフタキューLRUポインタ33jが指すスロ
ット管理情報210jwに対応したスロット220jw内の未書き
込みデータをディスク23jに書き込む(ライトアフタ処
理)ため、ディスク23jに対して位置付け要求を発行す
る。ステップ706の判定条件が成立しない場合、処理を
終了する。 第11図は、ディスク23jからの位置付け完了を受け取
った場合の処理である。ステップ710では、ディスク23j
のライトアフタキューLRUポインタ33jが指すスロット管
理情報210jwに対応したスロット220jwに格納された未書
き込みデータを、対応するトラックに書き込む。 ステップ711では、スロット管理情報210jwをリプレイ
ス可能キューLRUポインタ31が指すようにする。 ステップ711の動作を第12図及び第13図を用いて詳細
に説明する。第12図及び第13図は、第1図のリプレイス
可能キュー35、ライトアフタキュー36j、及びこれらの
キューを管理するためのポインタの部分を抜き出したも
のである。なお、第12図はステップ711の実行前、第13
図はステップ711の実行後の状態を示す。 スロット管理情報210jvの値(スロット管理情報210jw
を指す)をスロット管理情報210ppの前方向ポインタ212
ppに設定する。スロット管理情報210jvの前方向ポイン
タ212jvを終端する。スロット管理情報210jwの後方向ポ
インタ213jwの値(スロット管理情報210jvを指す)をワ
ークエリア(図示略)へ退避する。リプレイス可能キュ
ーLRUポインタ31の値(スロット管理情報210ppを指す)
をスロット管理情報210jwの後方向ポインタ213jwに設定
する。ライトアフタキュー36LRUポインタ33jの値(スロ
ット管理情報210jwを指す)をリプレイス可能キューLRU
ポインタ31に設定する。ワークエリアに退避してある値
(スロット管理情報210jvを指す)をライトアフタキュ
ー36LRUポインタ33jへ格納する。スロット管理情報210j
wの前方向ポインタ212jwは終端したままとする。以上の
処理がステップ711の詳細である。 制御装置2内のメモリ(ディレクトリ21、キャッシュ
22、ワークエリアなど)が揮発性メモリであると次のよ
うな問題が生じる。ディスク23jにライトアフタ処理を
行う前に、ディレクトリ21やキャッシュ22の電源が故障
した場合、ディスク23jに対する未書き込みのデータが
消失してしまうという問題である。そこで、このような
問題の発生を防止するため、ディレクトリ21及びキャッ
シュ22を不揮発化することが望ましい。 本実施例によれば、レプレイス可能キューのLRU位置
にあるスロットのアクセス時刻より過去のアクセス時刻
を有するスロットをライトアフタ処理の対象とし、ライ
トアフタデータをキャッシュ内に保有することにより、
ディスクのシーク・サーチ時間を、全体として、短くす
ることが期待できる。 さらに、キューの破壊等の障害が発生した場合、その
障害を制御装置全体に波及させずに、ある特定のディス
クに限定することができる。 次に、第2の実施例について述べる。第14図は、制御
装置2の構成の変形例2cである。第3図の構成と異なる
点は、制御装置2cが、不揮発性メモリ25、不揮発性メモ
リ管理テーブル24を新たに含む点である。不揮発性メモ
リ25の中には、ディスク23jに未書き込みのデータを格
納する。不揮発性メモリ管理テーブル24は、不揮発性メ
モリ25に格納されるデータを管理するための情報を格納
する。 このような構成の場合、ディレクトリ21、キャッシュ
22は必ずしも不揮発化する必要はない。不揮発化が必要
なのは、ディスク23jに未書き込みのデータを格納して
いるメモリである。キャッシュ22内のすべてのデータを
不揮発性メモリ25に必ずしも格納する必要はない。した
がって、キャッシュ22に格納されているデータの中で、
ディスク23jに未書き込みのデータを格納するための不
揮発性メモリ25は、一般的に、大容量である必要はな
い。 以上の説明から明らかなように、ディスク23jに未書
き込みのデータはキャッシュ22と不揮発性メモリ25と
に、二重に記憶される。したがって、キャッシュ22ある
いは不揮発性メモリ25のいずれか一方にメモリ障害が発
生しても、ディスク23jに未書き込みのデータが他方の
メモリに保持される。このように、メモリ障害に対して
制御装置2cは高信頼であると言える。 不揮発性メモリ25の構成を第15(b)図に示す。不揮
発性メモリ25は固定長のセグメント250k(k=1,2,…,
1)に分割される。セグメント250kは第5(b)図に示
すスロット220iより、その容量が小さい。したがって、
スロット220i内のほとんどのデータがディスク23jへの
未書き込みのデータであると、一つのスロット220iに対
応して、複数のセグメント250kを割り当てる必要が生じ
る。 第15(a)図は、不揮発性メモリ管理テーブル24の構
成を示す。不揮発性メモリ管理テーブル24に設けられる
不揮発性メモリ管理情報241の詳細は後述する。 セグメント管理情報240k(k=1,2,…,1)はセグメン
ト250kの各々に対応して設けられる。セグメント管理情
報240kには、キャッシュ22あるいはディレクトリ21に格
納されている情報が無効(電源故障や、読み出し不良故
障など)になったとき、不揮発性メモリ25に格納されて
いるデータをディスク23jへ書き込むために必要な情報
が格納される。 セグメント管理情報240kに格納される情報に関する詳
細は後述する。 ディレクトリ21の構成は、第5(a)図に示した構成
と同様であり、ディレクトリ管理情報211及びスロット
管理情報210′iからなる。ただし、スロット管理情報2
10′iの中に、対応するスロット220iに格納されている
データの中でディスク23jへ未書き込みであるデータを
格納している不揮発性メモリ25のセグメント250kへのポ
インタを格納する。 セグメント250kへのポインタ情報を含むスロット管理
情報210′iの構成を第16図に示す。第16図のスロット
管理情報210′iと第6図のスロット管理情報210iとの
差異は、セグメント250kへのポインタ情報(セグメント
ポインタ)242′i1,242′i2,…,242′ihが付加されて
いる点にある。セグメントポインタの数は次式で示され
る数(h)である。 h=(Csl/Csg)+1 (1) ここで、 Csl:スロット220iの容量 Csg:セグメント250kの容量 第17図に、セグメント管理情報240kの構成を示す。た
だし、第17図には本発明を説明するために必要な情報の
みを示す。セグメント管理情報240kはセグメント番号24
3k、空きポインタ244k及び有効アドレス245kより構成さ
れる。 セグメント番号243kは、セグメント管理情報240kがど
のセグメントに対応するかを示す情報である、前述のよ
うに、セグメント管理情報とセグメントとを1対1対応
させて設けると、セグメント番号は一義的に決まる。第
17図の場合は、セグメント番号はkとなる。ところが、
セグメント管理情報とセグメントとが1対1対応にしな
い場合、特に、その対応関係を可変にする場合、セグメ
ント番号の格納領域に格納される情報は、対応するセグ
メントを指すことになる。 空きポインタ244kは、対応するセグメント250kにライ
トアフタデータが格納されていない場合、すなわち、空
いた状態にある場合、他の空いた状態にあるセグメント
とリンクするためのものである。このリンク方法は、第
1図及びその説明に示した空きスロットキュー37の管理
方法と同様である。 有効アドレス245kは、対応するセグメント250kの先頭
からどこまで、ライトアフタデータが格納されているか
を示すアドレス情報である。すなわち、有効なデータが
格納されている最後アドレスを、そのセグメント250kの
先頭からの相対アドレスで表した値が格納される。 前述の空きポインタ244kは、有効アドレス245kの値が
0であるときに有効である。言い換えると、有効アドレ
ス245kの値が0以外であるときは、空きポインタ244kの
値は無意味である。また、説明するまでもないが、セグ
メント250kに格納されていたデータのディスク23jへの
書き込みが完了したならば、セグメント250kは空きセグ
メントとして扱われる。 次に、不揮発性メモリ管理情報241について、第18図
を用いて説明する。不揮発性メモリ管理情報241は、不
揮発性メモリ占有量251、掃き出し基準時刻252、基準時
刻有効フラグ253、基準時刻設定時刻254、掃き出し基準
メモリ上限値255、掃き出し基準メモリ下限値256、空き
セグメントポインタ257からなる。なお、掃き出しとい
う用語は、不揮発性メモリに格納されているデータ、あ
るいはそのデータと同いつの、スロット内のデータをデ
ィスク23jへ転送する意味に用いる。 不揮発性メモリ占有量251は、不揮発性メモリ25に格
納されているライトアフタデータの量を示す。この占有
量は、絶対的な量で表しても良いし、不揮発性メモリ25
の容量に対する割合で表しても良い。 掃き出し基準時刻252は、ライトアフタ処理の対象と
するスロット220iを選択する際の時間基準である。詳し
くは後述する。 基準時刻有効フラグ253は、掃き出し基準時刻252が有
効であるか否かを示す。フラグがオンのとき有効であ
り、フラグがオフのとき無効であるとする。 基準時刻設定時刻254は、次に掃き出し基準時刻252を
設定すべき時刻である。たとえば、一定時間間隔Δtで
掃き出し基準時刻252を設定するものとする。時刻tに
掃き出し基準時刻252を設定したならば、その時に基準
時刻設定時刻254にt+Δtを設定する。 掃き出し基準メモリ上限値255は、この上限値を超え
たライトアフタデータが不揮発性メモリ25に格納されて
いると、不揮発性メモリ25がオーバーフローする恐れが
あるデータ量を示す値である。 掃き出し基準メモリ下限値256は、不揮発性メモリ25
に格納されているライトアフタデータがこの下限値を下
回るならば、不揮発性メモリ25がオーバーフローする恐
れはないデータ量を示す値である。 掃き出し基準メモリ上限値255と掃き出し基準メモリ
下限値256との二つの限界値を設定するようにしたの
は、ライトアフタ処理の開始及び終了の制御にヒステリ
シス性を持たせるためである。限界値を一つにすると、
ライトアフタ処理の開始及び終了を頻繁に制御する必要
性が生じる。このようなハンチング現象を抑制するため
にヒステリシス性を持たせる。 空きセグメントポインタ257は、第17図を用いて説明
した空いた状態にあるセグメントに対応する空きポイン
タ244kを管理するための情報である。空きセグメントポ
インタ257は、第1図に示す空きスロットを管理する空
きスロットポインタ34に相当するものであり、管理の対
象が異なることがその差となっている。したがって、そ
の管理の方法は、第1図及びその説明に示した空きスロ
ットキュー37の管理方法と同様である。 次に、不揮発性メモリ25を用いることにより、新たに
発生する課題について述べる。 前述のように、不揮発性メモリ25はキャッシュ22より
小容量である。それ故に、既に説明した第7図、第10図
及び第11図に示したような制御をすると、次のような問
題が発生する。問題は、リプレイス可能キュー35のLRU
位置にあるスロット管理情報(第1図で言えば、210p
p)のアクセス時刻216pp(第6図参照)より以前のアク
セス時刻を有するスロット管理情報に対応するスロット
をライトアフタ処理の対象とすると、不揮発性メモリ25
が満杯(オーバーフロー)になる可能性が高くなるとい
うことである。したがって、新たにライトアフタ処理の
対象とするスロットの選択基準を設ける必要がある。 このような問題を解決するために、第18図を用いて説
明した不揮発性メモリ管理情報241を設けてある。具体
的な処理の説明に入る前に、再度第18図を用いて問題解
決の考え方を説明する。 まず、不揮発性メモリ占有量251の値が掃き出し基準
メモリ上限値255の値以上であるならば、基準時刻有効
フラグ253をオンし、ライトアフタ処理の対象のスロッ
トを選択する。この場合、掃き出し基準時刻252に設定
されている時刻以前のアクセス時刻216′iを有するス
ロット220iを選択する。選択したスロット220iに関して
ライトアフタ処理を実行後、対応するセグメント(セグ
メントポインタ242′i1〜242′ihが指すセグメント管理
情報に対応するセグメント)を解放し、そのセグメント
の容量に等しい容量を不揮発性メモリ占有量251の値よ
り減算する。減算した結果、不揮発性メモリ占有量251
の値が、掃き出し基準メモリ下限値256を下回らなけれ
ば、上記時間条件に合うスロットを選択し、処理を繰り
返す。不揮発性メモリ占有量251の値が、掃き出し基準
メモリ下限値256を下回れば、基準時刻有効フラグ253を
オフし、ライトアフタ処理を終了する。 次に、掃き出し基準時刻252の設定方法を説明する。
掃き出し基準時刻252は、各ディスク23jに対応したライ
トアフタキュー36jのLRU位置にあるスロット管理情報21
0′iのアクセス時刻216′iを参照して定められる。た
とえば、すべてのライトアフタキュー36jのLRU位置にあ
るスロット管理情報210′iのアクセス時刻216′iの中
の最も過去のアクセス時刻から一定時間経過した時刻
を、掃きだし基準時刻252として設定する方法がある。
他に、次のような方法がある。 各スロット管理情報210′iのアクセス時刻216′iの
分布は一様分布であるとする。不揮発性メモリ占有量25
1を、掃き出し基準メモリ下限値256以下にすることが、
ライトアフタ処理の対象スロットを選択することの目標
である。そこで、アクセス時刻216′iが現在時刻に近
い順序にスロット管理情報210′iを並べる。その順序
にスロット220iを対応させて、先頭のスロットから掃き
出し基準メモリ下限値256を超える直前までのスロット2
20iをキャッシュ22に残す。一様分布の仮定に基づく
と、キャッシュ22に残すように選択されるスロット220i
のアクセス時刻216′iの値は、次式で表される時刻T
よりも現在時刻に近い時刻であれば良い。 T=Tp−(Tp−Tpp)×Cup/Coq (2) ここで、 Tp :現在時刻 Tpp:各ライトアフタキューのLRU位置にあるスロット管
理情報のアクセス時刻の中の最も過去のアクセス時刻 Cup:掃き出し基準メモリ下限値 Coq:不揮発性メモリ占有量 以上より、(2)式でえられる時刻Tを掃き出し基準
時刻252として設定し、この時刻より過去のアクセス時
刻216′iを有するスロット管理情報210′iに対応する
スロット220iをライトアフタ処理の対象とすれば良いこ
とになる。 次に、本実施例における処理を説明する。前述の実施
例における第7図、第10図及び第11図に対応させて、第
19図、第20図及び第21図を示す。前述の実施例の処理と
異なる点を中心に、本実施例における処理を説明する。 第19図は第7図の処理に対応するものであり、上位シ
ステム1から受け付けたライト要求がヒットした場合に
ディレクタ20が実行する処理である。 ステップ800〜802は、第7図のステップ700〜702の処
理と同様であるので、説明を省略する。 ステップ803では、上位システム1から受け取ったラ
イトデータの量に応じてセグメント250kを確保する。確
保するセグメント250kの数は、記述の(1)式による。
セグメント250kの確保は、次のようにする。第18図の空
きセグメントポインタ257が指すセグメントを、第16図
に示すセグメントポインタ242′iに格納すれば良い。
当然のことながら、空きセグメントポインタ257の値の
変更、いわゆるポインタの付け換えをするが、前の実施
例で述べた方法と同様であるので、説明を省略する。 ステップ804は、第7図のステップ703に対応する処理
である。ただし、スロット220iにだけでなく、ステップ
803で確保したセグメント250kにも、上位システム1か
ら受け取った書き込みデータを格納する。 ステップ805では、書き込みデータの量を不揮発性メ
モリ占有量251の値に加算する。 次に、第10図の処理に対応する処理について述べる。
すなわち、ライトアフタ処理を実行するためにディスク
23jに位置付け要求を発行する際、ディレクタ20が実行
する処理である。この処理のフローチャートを第20図に
示す。 ステップ810では、基準時刻有効フラグ253がオンある
いはオフのいずれであるかを判定する。オフならば、ス
テップ811へ分岐し、オンならば、ステップ812へ分岐す
る。 ステップ811では、不揮発性メモリ占有量251が掃き出
し基準メモリ上限値255より大きいか否かを判定する。
大きいならば、ステップ815へ分岐し、大きくないなら
ば、ステップ817へ分岐する。 ステップ812では、不揮発性メモリ占有量251が掃き出
し基準メモリ下限値256より小さいか否かを判定する。
大きいならば、ステップ813へ分岐し、大きくないなら
ば、ステップ814へ分岐する。 ステップ813では、不揮発性メモリ占有量251が掃き出
し基準メモリ下限値256を下回っているのであるから、
不揮発性メモリ占有量251に関係してライトアフタ処理
をする必要がないので、基準時刻有効フラグ253をオフ
する。その後、ステップ817へ分岐する。 ステップ814では、現在時刻が基準時刻設定時刻254を
過ぎているか否かを判定する。既に過ぎているならば、
ステップ815へ分岐する。未だ過ぎていないならば、ス
テップ817へ分岐する。 ステップ815では、不揮発性メモリ占有量251が掃き出
し基準メモリ上限値255より大きい、あるいは現在時刻
が基準時刻設定時刻254を過ぎているのであるから、掃
き出し基準時刻252及び基準時刻設定時刻254を改めて設
定する。 ステップ816では、不揮発性メモリ25がオーバフロー
する可能性があるので、基準時刻有効フラグ253をオン
する。 ステップ817は、第10図のステップ705と同様の処理で
ある。処理結果として、1台のディスク23jが選択され
る。 ステップ818では、ステップ810と同様に基準時刻有効
フラグ253がオンあるいはオフのいずれであるかを判定
する。オフならば、ステップ820へ分岐し、オンなら
ば、ステップ819へ分岐する。 ステップ819は、第10図のステップ706と同様の処理で
ある。すなわち、選択したディスク23jのライトアフタ
キュー36jのLRU位置にあるステップ管理情報のアクセス
時刻は、リプレイス可能キュー35のLRU位置にあるスロ
ット管理情報のアクセス時刻より過去か否かを判定す
る。過去であるならば、ステップ821へ分岐し、そうで
なければ、処理を終了する。 ステップ820では、選択したディスク23jのライトアフ
タキュー36jのLRU位置にあるスロット管理情報のアクセ
ス時刻は、掃き出し基準時刻252の値より過去の時刻か
否かを判定する。過去であるならば、ステップ821へ分
岐し、そうでなければ、処理を終了する。 ステップ821では、選択したディスク23jに対して位置
付け要求を発行する。 次に、第11図の処理に対応する処理について述べる。
すなわち、ディスク23jからの位置付け完了を受け取っ
た場合に、ディレクタ20が実行する処理である。この処
理のフローチャートを第21図に示す。 ステップ825及び826は、それぞれ第11図のステップ71
0及び711と同様の処理である。すなわち、これらの処理
の結果、ディスク23jに対してスロット220iにあるデー
タを書き込み、書き込みを終えたスロット220iに関する
キュー操作が完了している。 ステップ827では、スロット220iと同じデータを格納
していたセグメント250kを解放する。すなわち、セグメ
ント250kをスロット管理情報200′iのセグメントポイ
ンタ242′iから外し、空きポインタ244kに接続する。
このポインタ操作に関しては既に説明しているので、こ
こでは詳細を省略する。 ステップ828では、ディスク23jに対して書き込んだデ
ータの量を不揮発性メモリ占有量251から減算する。 以上の実施例の説明から明かなように、揮発性メモリ
によるキャッシュのほかに不揮発性メモリを設けた制御
装置に、本発明を適用した場合も、ディスク毎の並列性
を高めることができ、スループットを向上させることが
できる。 さらに、信頼性を確保するため、ライトアフタデータ
をキャッシュだけでなく不揮発性メモリにも格納するよ
うにした場合に、この不揮発性メモリの占有量に着目し
て、ライトアフタ対象スロットを選択することにより、
ディスクのシーク・サーチ時間を、全体として、短くす
ることが期待できる。 さらに、別の実施例について述べる。第14図に示した
構成において、ライトアフタデータのすべてを不揮発性
メモリ25に格納した。これは、信頼性を確保するためで
ある。しかし、すべてのライトアフタ処理のすべてが、
高い信頼性を要求されるとは限らない。また、不揮発性
メモリ25への格納データの範囲をできる限り限定した方
が、不揮発性メモリ25を小容量化できる点、及び不揮発
性メモリ25へのデータの書き込み/読み出し処理に伴う
処理オーバーヘッドを小さくできる点で望ましい。そこ
で、ライトアフタ処理を、高い信頼性が要求される高信
頼ライトアフタ処理と、それほど高い信頼性が要求され
ない通常レベルライトアフタ処理とに分けてることがで
きる。高信頼ライトアフタ処理では、ライトアフタデー
タをキャッシュ22だけでなく、不揮発性メモリ25にも格
納する。一方、通常レベルライトアフタ処理では、ライ
トアフタデータをキャッシュ22には格納するが、不揮発
性メモリ25には格納しない。 第22図は、以上の考え方に基づいたディレクトリ21の
構造である。第22図と第1図とを比較してみると、次の
点が違いであることが分かる。 第1図に示すディスク23j毎のライトアフタキュー36j
を、高信頼ライトアフタキュー361jと通常レベルライト
アフタキュー362jとに分けた点が、違いの第1点であ
る。 第1の違いにより、それらを管理するためのディレク
トリ管理情報211の構造が必然的に異なる。これが違い
の第2点である。 第2点の違いに関して、新たなディレクトリ管理情報
211′の構造を簡単に説明する。第1図では、各々のラ
イトアフタキュー36jに対応して、ライトアフタキューM
RUポインタ32jとライトアフタキューLRUポインタ33jと
を持っている。第22図では、高信頼ライトアフタキュー
361jに対して、高信頼ライトアフタキューMRUポインタ3
21jと高信頼ライトアフタキューLRUポインタ331jとを持
つ。同様に、通常レベルライトアフタキュー362jに対し
て、通常レベルライトアフタキューMRUポインタ322jと
通常レベルライトアフタキューLRUポインタ332jとを持
つ。 以上の構成におけるキュー操作及びポインタ操作に関
しては、既に説明した実施例における方法と同様である
ので説明を省略する。なお、高信頼ライトアフタキュー
361jと通常レベルライトアフタキュー362jとに分けたこ
とによる点のみを説明しておく。 高信頼ライトアフタキュー361jに関しては、不揮発性
メモリ25にディスク23jへの書き込みデータが格納され
ているため、不揮発性メモリ25に格納されているデータ
量、すなわち前述の第2の実施例で言う不揮発性メモリ
占有量が、予め定めた値以上になったならば、不揮発性
メモリ25に格納されているデータをディスク23jへ書き
込めば良い。換言すると、高信頼ライトアフタキュー36
1jに関しては、前述の第2の実施例で説明したように制
御すれば良い。 一方、通常レベルライトアフタキュー362jに関して
は、キャッシュ22にディスク23jへの書き込みデータが
格納されているため、前述の第1の実施例で説明したよ
うに、リプレイス可能キュー35のLRU位置にあるスロッ
ト管理情報210ppのアクセス時刻216ppよりも過去の時刻
のアクセス時刻216iを有するスロット管理情報210iに対
応したスロットのデータをディスク23jへ書き込めば良
い。換言すると、通常レベルライトアフタキュー362jに
関しては、前述の第1の実施例で説明したように制御す
れば良い。 以上の説明より、本実施例を当業者は容易に理解し
得、また処理に関する説明は第1及び第2の実施例の説
明と重複するので省略する。
【発明の効果】
本発明によれば、ライトアフタ処理に必要なスロット
をディスク装置毎に分けて管理することにより、小さい
処理オーバーヘッドでディスク装置毎のライトアフタ処
理を効率的に並列実行できるという効果が得られる。
【図面の簡単な説明】
第1図は、本発明によるディレクトリの一構成例を示す
図である。第2図は、本発明を適用する計算機システム
の望ましい一構成例である。第3図は、本発明を適用す
る制御装置の変形例を示す図である。第4図は、さらに
本発明を適用する制御装置の変形例を示す図である。第
5(a)図は、本発明によるディレクトリの概略構成図
である。第5(b)図は、本発明によるキャッシュの構
成図である。第6図は、スロット管理情報の一テーブル
構成例である。第7図は、上位システムから受け付けた
ライト要求に対する、ディレクタのライトヒット処理を
表すフローチャートである。第8図及び第9図は、ディ
レクタのライトヒット処理内容を説明する図である。第
10図は、ライトアフタ処理の際、ディスク装置に対して
位置付け要求を発行するディレクタの処理を表すフロー
チャートである。第11図はライトアフタ処理の際、ディ
スク装置から位置付け完了を受けとったときのディレク
タの処理を表すフローチャートである。第12図及び第13
図は、ライトアフタ処理の際、ディスク装置から位置付
け完了を受けとったときのディレクタの処理内容を説明
する図である。第14図は、不揮発メモリを有する制御装
置の一構成例である。第15(a)図は、不揮発メモリ管
理テーブルの概略構成図である。第15(b)図は、不揮
発メモリの構成図である。第16図は、不揮発メモリを有
する場合のスロット管理情報の一テーブル構成図であ
る。第17図は、不揮発メモリのセグメントを管理するた
めのセグメント管理情報のテーブル構成図である。第18
図は不揮発メモリ管理情報の一テーブル構成図である。
第19図は、不揮発メモリを有する制御装置において、上
位システムから受け付けたライト要求に対する、ディレ
クタのライトヒット処理を表すフローチャートである。
第20図は、不揮発メモリを有する制御装置において、ラ
イトアフタ処理の際、ディスク装置に対して位置付け要
求を発行するディレクタの処理を表すフローチャートで
ある。第21図は不揮発メモリを有する制御装置におい
て、ライトアフタ処理の際、ディスク装置から位置付け
完了を受けとったときのディレクタの処理を表すフロー
チャートである。第22図は、不揮発メモリを有する制御
装置におけるディレクトリの一構成を示す図である。 符号の説明 1……上位システム、2……制御装置、10……CPU、11
……主記憶装置、12……チャネル、20……ディレクタ、
21……ディレクトリ、22……キャッシュ、23……ディス
ク、24……不揮発性メモリ管理テーブル、25……不揮発
性メモリ、35……リプレイス可能キュー、36……ライト
アフタキュー、37……空きスロットキュー、210……ス
ロット管理情報、211……ディレクトリ管理情報、220…
…スロット、240……セグメント管理情報、241……不揮
発性メモリ管理情報、250……セグメント
フロントページの続き (72)発明者 坪井 俊明 東京都小平市上水本町5丁目22番1号 日立マイクロコンピュータエンジニアリ ング株式会社内 (72)発明者 佐藤 孝夫 神奈川県川崎市麻生区王禅寺1099番地 株式会社日立製作所システム開発研究所 内 (72)発明者 安積 義弘 神奈川県小田原市国府津2880番地 株式 会社日立製作所小田原工場内 (72)発明者 本間 繁雄 神奈川県小田原市国府津2880番地 株式 会社日立製作所小田原工場内 (72)発明者 木城 茂 神奈川県小田原市国府津2880番地 株式 会社日立製作所小田原工場内 (72)発明者 宮崎 道生 神奈川県小田原市国府津2880番地 株式 会社日立製作所小田原工場内 (72)発明者 桑原 善祥 神奈川県小田原市国府津2880番地 株式 会社日立製作所小田原工場内 (72)発明者 北嶋 弘行 神奈川県川崎市麻生区王禅寺1099番地 株式会社日立製作所システム開発研究所 内 (56)参考文献 特開 昭63−249242(JP,A) 特開 昭60−105064(JP,A) 特開 昭62−233864(JP,A) (58)調査した分野(Int.Cl.6,DB名) G06F 12/08,12/12

Claims (3)

    (57)【特許請求の範囲】
  1. 【請求項1】上位システムに接続し、該上位システムか
    らの要求に基づいて入出力装置へのデータの入出力を制
    御する制御装置における入出力制御方法において、 前記制御装置に前記入出力装置に対して入出力すべきデ
    ータの少なくとも一部を保持するための複数の格納領域
    を有するキャッシュメモリを設け、 前記上位システムからの出力要求に応じて前記上位シス
    テムから受け取った出力データを、前記入出力装置に対
    して出力することなく前記キャッシュメモリの格納領域
    に格納し、 前記入出力装置に未格納の出力データのうち、前記キャ
    ッシュメモリの格納領域に保持され、かつ、前記入出力
    装置に格納されるデータのうち、前記上位装置から最も
    過去にアクセスされたデータよりも長い期間前記出力デ
    ータを保持している格納領域を選択し、 選択した格納領域に保持される出力データを前記入出力
    装置に出力することを特徴とする入出力制御方法。
  2. 【請求項2】上位システムに接続し、該上位システムか
    らの要求に基づいて入出力装置へのデータの入出力を制
    御する制御装置における入出力制御方法において、 前記制御装置に前記入出力装置に対して入出力すべきデ
    ータの少なくとも一部を保持するための複数の格納領域
    を有する第1のメモリと、前記入出力装置に出力される
    べき出力データであって、前記入出力装置に未格納の出
    力データを格納するための複数の格納領域を有する第2
    のメモリとを設け、 前記上位システムからの出力要求に応じて前記上位シス
    テムから受け取った出力データを、前記入出力装置に対
    して出力することなく前記第1のメモリ及び前記第2の
    メモリそれぞれの格納領域に格納し、 前記第2のメモリにおける前記入出力装置に未格納の出
    力データの占有量を判定し、 該占有量が所定の第1の基準値を超えたとき前記第1の
    メモリ中で前記入出力装置に未格納の出力データを保持
    する格納領域の中から所定の基準に基づいて少なくとも
    1つの格納領域を選択し、 選択した格納領域に保持される出力データを前記入出力
    装置に出力することを特徴とする入出力制御方法。
  3. 【請求項3】前記格納領域の選択、及び前記入出力装置
    への出力は、前記占有量が前記第1の基準値より低い第
    2の基準値を下回るまで行われることを特徴とする請求
    項2に記載の入出力制御方法。
JP1171812A 1989-07-05 1989-07-05 入出力制御方法 Expired - Lifetime JP2834189B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP1171812A JP2834189B2 (ja) 1989-07-05 1989-07-05 入出力制御方法
US07/548,228 US5257352A (en) 1989-07-05 1990-07-05 Input/output control method and system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP1171812A JP2834189B2 (ja) 1989-07-05 1989-07-05 入出力制御方法

Publications (2)

Publication Number Publication Date
JPH0337746A JPH0337746A (ja) 1991-02-19
JP2834189B2 true JP2834189B2 (ja) 1998-12-09

Family

ID=15930187

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1171812A Expired - Lifetime JP2834189B2 (ja) 1989-07-05 1989-07-05 入出力制御方法

Country Status (2)

Country Link
US (1) US5257352A (ja)
JP (1) JP2834189B2 (ja)

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS58140161A (ja) * 1982-02-15 1983-08-19 Sharp Corp 半導体装置
US6728832B2 (en) * 1990-02-26 2004-04-27 Hitachi, Ltd. Distribution of I/O requests across multiple disk units
US5680574A (en) 1990-02-26 1997-10-21 Hitachi, Ltd. Data distribution utilizing a master disk unit for fetching and for writing to remaining disk units
US6874101B2 (en) 1991-01-31 2005-03-29 Hitachi, Ltd. Storage unit subsystem
JP3409859B2 (ja) * 1991-01-31 2003-05-26 株式会社日立製作所 制御装置の制御方法
JP2913917B2 (ja) 1991-08-20 1999-06-28 株式会社日立製作所 記憶装置および記憶装置システム
US5640596A (en) * 1992-03-10 1997-06-17 Hitachi, Ltd. Input output control system for transferring control programs collectively as one transfer unit designated by plurality of input output requests to be executed
US5596736A (en) * 1992-07-22 1997-01-21 Fujitsu Limited Data transfers to a backing store of a dynamically mapped data storage system in which data has nonsequential logical addresses
JP3149098B2 (ja) * 1992-11-26 2001-03-26 日本電信電話株式会社 ディジタル動画情報ファイルの多重読み取り方法
GB2273798A (en) * 1992-12-22 1994-06-29 Ibm Cache system for disk array.
JP3169511B2 (ja) * 1994-03-10 2001-05-28 三菱電機株式会社 メモリ装置及びメモリ管理方法
US5634109A (en) * 1994-06-20 1997-05-27 International Business Machines Corporation Method and system for enhanced data management efficiency in memory subsystems utilizing redundant arrays of disk memory devices and a nonvolatile cache
US5829018A (en) * 1994-10-25 1998-10-27 International Business Machines Corporation Apparatus and method for writing data from a cache to a storage device
US5752080A (en) * 1994-12-22 1998-05-12 Intel Corporation Cable terminal unit using bit set for selectively enabling a plurality of hardware functions with some functions having a plurality of selectively enabled hardware functions
US5586291A (en) * 1994-12-23 1996-12-17 Emc Corporation Disk controller with volatile and non-volatile cache memories
JP3239669B2 (ja) 1995-02-20 2001-12-17 株式会社日立製作所 記憶制御装置及びその制御方法
JP3641872B2 (ja) 1996-04-08 2005-04-27 株式会社日立製作所 記憶装置システム
US6148376A (en) 1996-05-10 2000-11-14 Apple Computer, Inc. Method and apparatus for an improved stack arrangement and operations thereon
JP3414218B2 (ja) * 1997-09-12 2003-06-09 株式会社日立製作所 記憶制御装置
US6988176B2 (en) * 1997-09-12 2006-01-17 Hitachi, Ltd. Method and apparatus for data duplexing in storage unit system
JP2000305856A (ja) * 1999-04-26 2000-11-02 Hitachi Ltd ディスクサブシステム及びこれらの統合システム
JP4434407B2 (ja) * 2000-01-28 2010-03-17 株式会社日立製作所 サブシステム及びこれらの統合システム
JP4044717B2 (ja) 2000-03-31 2008-02-06 株式会社日立製作所 記憶サブシステムのデータ二重化方法及びデータ二重化システム
US7017006B2 (en) * 2003-04-28 2006-03-21 Texas Instruments Incorporated System and method to enable efficient communication with a dynamic information storage and retrieval system, or the like
US8161362B2 (en) * 2005-06-10 2012-04-17 Hitachi, Ltd. Task management control apparatus and method, having redundant processing comparison
US7395377B2 (en) * 2006-04-20 2008-07-01 International Business Machines Corporation Method and system for adaptive back-off and advance for non-volatile storage (NVS) occupancy level management
US7761659B2 (en) * 2006-06-30 2010-07-20 Seagate Technology Llc Wave flushing of cached writeback data to a storage array
US8234457B2 (en) * 2006-06-30 2012-07-31 Seagate Technology Llc Dynamic adaptive flushing of cached data
CN102750249B (zh) * 2012-06-27 2016-01-06 中国科学院声学研究所 上位机与下位机通信的方法、装置及系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4425615A (en) * 1980-11-14 1984-01-10 Sperry Corporation Hierarchical memory system having cache/disk subsystem with command queues for plural disks

Also Published As

Publication number Publication date
US5257352A (en) 1993-10-26
JPH0337746A (ja) 1991-02-19

Similar Documents

Publication Publication Date Title
JP2834189B2 (ja) 入出力制御方法
US5680574A (en) Data distribution utilizing a master disk unit for fetching and for writing to remaining disk units
US6389509B1 (en) Memory cache device
US6230239B1 (en) Method of data migration
US6505287B2 (en) Virtual channel memory access controlling circuit
EP0077452B1 (en) Data promotion in storage subsystems
KR100263524B1 (ko) 알에이아이디 제어기 및 데이터 기록 방법
US6341331B1 (en) Method and system for managing a raid storage system with cache
US5651132A (en) Disk array control system
US5991775A (en) Method and system for dynamic cache allocation between record and track entries
EP0166310B1 (en) Data processing system
EP0727745A1 (en) Memory control apparatus and its control method
JPH11194899A (ja) ディスク記憶システム及び同システムに適用するデータ更新方法
US5420983A (en) Method for merging memory blocks, fetching associated disk chunk, merging memory blocks with the disk chunk, and writing the merged data
JP2015517697A (ja) 二次記憶装置に基づく記憶領域をキャッシュ領域として用いるストレージシステム及び記憶制御方法
US5717884A (en) Method and apparatus for cache management
JPH0675897A (ja) 分割を許容するバッファ・メモリ管理方法及びその装置
US6959359B1 (en) Software prefetch system and method for concurrently overriding data prefetched into multiple levels of cache
US5694570A (en) Method and system of buffering data written to direct access storage devices in data processing systems
US6336164B1 (en) Method and system for preventing deadlock in a log structured array
US5136692A (en) Memory disk buffer manager
US5696921A (en) System and method for allocating a write request on the same cylinder as a most recent read request on a rotating memory
US6532513B1 (en) Information recording and reproduction apparatus
JPH0863394A (ja) 記憶装置システムおよび記憶装置の制御方法
JPH04246746A (ja) 記憶装置システム

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081002

Year of fee payment: 10

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091002

Year of fee payment: 11

EXPY Cancellation because of completion of term
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091002

Year of fee payment: 11