JP3122702B2 - ディスク装置のライトバック制御方法 - Google Patents

ディスク装置のライトバック制御方法

Info

Publication number
JP3122702B2
JP3122702B2 JP05266918A JP26691893A JP3122702B2 JP 3122702 B2 JP3122702 B2 JP 3122702B2 JP 05266918 A JP05266918 A JP 05266918A JP 26691893 A JP26691893 A JP 26691893A JP 3122702 B2 JP3122702 B2 JP 3122702B2
Authority
JP
Japan
Prior art keywords
write
data
command
control unit
host
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
Application number
JP05266918A
Other languages
English (en)
Other versions
JPH07121308A (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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP05266918A priority Critical patent/JP3122702B2/ja
Publication of JPH07121308A publication Critical patent/JPH07121308A/ja
Application granted granted Critical
Publication of JP3122702B2 publication Critical patent/JP3122702B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、ディスク装置のライト
バック制御方法に関する。近年、磁気ディスク装置等の
アクセス速度向上のために、ディスク回転の高速度化、
トラック容量の増加等、様々な物理手法が用いられてい
るが、その最も基本的なものとして、シーク時間、回転
待ち時間の短縮化が挙げられる。
【0002】これら2つの時間短縮方法は、既存のハー
ドウェアで、その制御方法を改良することにより、ある
程度の実現が可能である。ところで、磁気ディスク装置
において、ライトキャッシュ機構の装備が極当然となっ
てきた近年、ライトバック制御方法がライトキャッシュ
機構、ひいては磁気ディスク装置そのものの性能に大き
く影響することは明らかである。
【0003】そのため、ライトバック動作を如何に効率
良く行うかが課題となり、それらをハードウェアで実現
するために、シーク時間、回転待ち時間の短縮によるラ
イトバック動作の高速化がその一手段となっている。
【0004】
【従来の技術】図22は従来の磁気ディスク装置ブロッ
ク図であり、図22中、1は磁気ディスク装置、2はホ
スト(ホストコンピュータ)、3はインターフェース制
御部、5は入出力制御部、6はデータバッファ制御部、
7はデータバッファ、8はリード/ライト制御部、9は
ディスク媒体を示す。
【0005】§1:磁気ディスク装置の説明・・・図2
2参照 図示の磁気ディスク装置は、ライトキャッシュ機構を装
備した装置であり、該磁気ディスク装置1には、インタ
ーフェース制御部3、リード/ライト制御部8、ディス
ク媒体9等(説明上必要なもののみ図示してある)が設
けてある。
【0006】また、前記インターフェース制御部3に
は、入出力制御部5、データバッファ制御部6、データ
バッファ7等が設けてある。前記磁気ディスク装置の運
用時には、この磁気ディスク装置1をホスト2に接続し
て運用する。前記各部の機能等は次の通りである。
【0007】:入出力制御部5は、ホスト2との間の
各種インターフェース制御を行うものである。 :データバッファ制御部6は、データバッファ7に対
するデータのリード/ライト制御を行うものである。
【0008】:データバッファ7は、ホスト2から転
送されたライトデータを一時格納しておくものであり、
データバッファ制御部6によって、データのリード/ラ
イトが行われる。
【0009】:リード/ライト制御部8は、ディスク
媒体9に対し、データのリード/ラトの制御を行うもの
である。 §2:磁気ディスク装置におけるライトバック制御の概
要説明 ライトキャッシュ機構を装備した磁気ディスク装置で
は、次のように制御を行う。
【0010】ホスト2がデータの書き込みコマンド(ラ
イトコマンド)を発行すると、そのコマンドは、入出力
制御部5が受領する。そして、入出力制御部5では、受
領したコマンドを解析し、書き込みコマンドであること
を認識すると、データバッファ制御部6に指示を出し
て、ホスト2から転送されたライトデータを一時、デー
タバッファ7に格納する(データキューイング)。
【0011】その後、データバッファ7が一杯になった
り、或いはホスト2からコマンドが発行された場合等に
は、前記データバッファ7のデータを、ディスク媒体9
に書き込む(ライトバック)。
【0012】この場合、データバッファ7にキューイン
グしたデータのライトバックは、書き込みコマンドで指
定されたブロック単位で行っていた。そのライトバック
制御方法としては、次のような方法がある。
【0013】:1コマンド分のデータキューイングが
終了しても、そのデータのライトバックが終了するま
で、次の書き込みコマンドのデータキューイングを行わ
ず、前コマンドのライトバック動作が終了した時点で、
次の書き込みコマンドのデータキューイングを開始する
方法(ライトバック制御方法1)。
【0014】:複数の書き込みコマンドのデータのキ
ューイングが可能な装置であっても、1コマンド分のラ
イトバックが終了したら、一旦、書き込み処理を停止
し、その時点で、まだデータバッファ7内に、別の書き
込みコマンドで転送されたデータが残っていれば、次の
1コマンド分のライトバックを新たに開始する方法(ラ
イトバック制御方法2)。
【0015】
【発明が解決しようとする課題】上記のような従来のも
のにおいては、次のような課題があった。 :1回の書き込み命令でホストから転送されるデータ
量に対して、磁気ディスク装置の装備するデータバッフ
ァの容量が十分でない装置においては、1回の書き込み
命令毎に行われるライトバックの度に、ディスク媒体の
回転待ちが生じていた。
【0016】このライトバック動作の遅延のため、ホス
トは、磁気ディスク装置に書き込みデータを送出するこ
とができず、ライトバック動作終了まで待たされるとい
った不具合が生じていた。
【0017】:シーケンシャルライトの場合であって
も、1コマンド毎に書き込み処理(ライトバック)を中
断してしまうため、回転待ちが発生する。従って、ライ
トバックに要する時間が長くなる。
【0018】:前記ライトバック制御方法1では、ホ
ストが書き込みデータの転送を長時間待たされる。 :前記ライトバック制御方法2では、次々に書き込み
データをキューイングするような場合には、直ぐにデー
タバッファが書き込みデータで満たされてしまい、結果
的にデータキューイングが出来なくなる。従って、ホス
トが書き込みデータの転送を長時間待たされる。
【0019】本発明は、このような従来の課題を解決
し、ホストがシーケンシャルライトを行う場合のライト
バック動作時に生じていたディスク媒体の回転待ち時間
を無くし、高速、かつ効率の良いライトバック制御がで
きるようにすることを目的とする。
【0020】
【課題を解決するための手段】図1は本発明の原理説明
図であり、図1中、図22と同じものは、同一符号で示
してある。また、12はコマンドキュー、14はリオー
ダリング実行部、20、21はホスト(ホストコンピュ
ータ)を示す。本発明は上記の課題を解決するため、次
のように構成した。
【0021】:ホスト2から転送されたデータを一時
データバッファ7に格納し、その後、前記データバッフ
ァのデータをディスク媒体9に書き込む制御を行うライ
トキャッシュ機構を備えたディスク装置において、ホス
トの発行した命令を受領した際、シーケンシャルライト
(ディスク媒体上の連続したデータブロック群を、複数
回の命令にわたって順番に書き込む)命令であるか否か
を判断し、シーケンシャルライト命令であると判断した
場合、ディスク媒体9に書き込むべきデータを、データ
バッファ7に先取り(データキューイング)すると共
に、新たな命令で指定されたディスク媒体への書き込み
処理(ライトバック)を、前命令で行っている書き込み
処理に引き続き行うように制御するディスク装置のライ
トバック制御方法。
【0022】:ホスト2から転送されたデータを一時
データバッファ7に格納し、その後、前記データバッフ
ァのデータをディスク媒体9に書き込む制御を行うライ
トキャッシュ機構を備えたディスク装置において、ホス
ト2が連続発行した複数の書き込み命令を受領した際、
その命令を受領した順に先取り(コマンドキューイン
グ)した後、これらの命令を、最も短時間に書き込み処
理が終了する順番に最適化(リオーダリング)し、前記
最適化した命令を順次取り出して、シーケンシャルライ
ト(ディスク媒体上の連続したデータブロック群を、複
数回の命令にわたって順番に書き込む)命令か否かを判
断し、シーケンシャルライト命令であれば、ディスク媒
体9に書き込むべきデータを、データバッファ7に先取
り(データキューイング)すると共に、新たな命令で指
定されたディスク媒体への書き込み処理(ライトバッ
ク)を、前命令で行っている書き込み処理に引き続き行
うように制御するディスク装置のライトバック制御方
法。
【0023】:ホストから転送されたデータを一時デ
ータバッファ7に格納し、その後、前記データバッファ
のデータをディスク媒体9に書き込む制御を行うライト
キャッシュ機構を備えたディスク装置において、複数の
ホスト20、21の発行した命令を受領した際、シーケ
ンシャルライト(ディスク媒体上の連続したデータブロ
ック群を、複数回の命令にわたって順番に書き込む)命
令であるか否かを判断し、シーケンシャルライト命令で
あると判断した場合、ディスク媒体9に書き込むべきデ
ータを、データバッファ7に先取り(データキューイン
グ)すると共に、新たな命令で指定されたディスク媒体
への書き込み処理(ライトバック)を、前命令で行って
いる書き込み処理に引き続き行うように制御するディス
ク装置のライトバック制御方法。
【0024】:ホストから転送されたデータを一時デ
ータバッファ7に格納し、その後、前記データバッファ
のデータをディスク媒体9に書き込む制御を行うライト
キャッシュ機構を備えたディスク装置において、複数の
ホスト20、21が連続発行した複数の書き込み命令を
受領した際、その命令を受領した順に先取り(コマンド
キューイング)した後、これらの命令を、最も短時間に
書き込み処理が終了する順番に最適化(リオーダリン
グ)し、前記最適化した命令を順次取り出して、シーケ
ンシャルライト(ディスク媒体上の連続したデータブロ
ック群を、複数回の命令にわたって順番に書き込む)命
令か否かを判断し、シーケンシャルライト命令であれ
ば、ディスク媒体9に書き込むべきデータを、データバ
ッファ7に先取り(データキューイング)すると共に、
新たな命令で指定されたディスク媒体への書き込み処理
(ライトバック)を、前命令で行っている書き込み処理
に引き続き行うように制御するディスク装置のライトバ
ック制御方法。
【0025】
【作用】上記構成に基づく本発明の作用を、図1に基づ
いて説明する。 :ライトキャッシュ機構を装備した磁気ディスク装置
において、ホスト(1機または複数機)がシーケンシャ
ルライトを行う場合、入出力制御部5がこれを検出し、
データバッファ7に書き込みデータ(ライトデータ)を
キューイングすると共に、リード/ライト制御部8に対
して、現行の命令の書き込み(ライトバック)処理終了
に引き続き、次の命令の書き込み処理を行うように指示
する。
【0026】:また、コマンドキュー12を装備した
磁気ディスク装置の場合、ホスト(1機または複数機)
が連続発行した複数の命令を受領すると、入出力制御部
5が、これらの命令をコマンドキュー12にスタック
(コマンドキューイング)し、その後、リオーダリング
実行部14がリオーダリングを行う。
【0027】そして、このリオーダリングした命令がシ
ーケンシャルライトとなった場合は、前記のシーケン
シャルライトの場合と同様にして、ライトバック処理を
連続して行う。
【0028】:このようにして、ホストがシーケンシ
ャルライトを行う場合、磁気ディスク装置1がこれを検
出し、複数命令の書き込み処理を連続して行うことによ
り、ライトバック処理時のディスク媒体の回転待ち時間
を無くすことができる。
【0029】その結果、ライトバック処理の実時間を短
縮できると同時に、データバッファ7の出力を活性化す
ることで、より多くのデータをキューイングすることが
可能となる。
【0030】
【実施例】以下、本発明の実施例を図面に基づいて説明
する。図2〜図21は、本発明の実施例を示した図であ
り、図2〜図21中、図1、図22と同じものは、同一
符号で示してある。また、11はコマンド情報退避用メ
モリを示す。
【0031】(実施例1の説明) §1:実施例1の概要説明 実施例1では、ライトキャッシュ機構を有する磁気ディ
スク装置において、ホストがディスク媒体上の連続した
データブロック群を複数回に渡って順番に書き込みを行
う場合(以下、「シーケンシャルライト」という)、磁
気ディスク装置がシーケンシャルライトであることを検
出し、ディスク媒体に書き込むべきデータ(ライトデー
タ)をデータバッファに先取りする(以下「データキュ
ーイング」という)。
【0032】そして、新たなコマンドで指定された書き
込み処理を、前コマンドで行っている書き込み処理に引
き続き行うことで、ディスク媒体の回転待ち時間を無く
し、アクセス速度の向上を達成する。
【0033】§2:磁気ディスク装置の説明・・・図2
参照 図2は実施例1の磁気ディスク装置ブロック図である。
実施例1では、ホスト(ホストコンピュータ)2と磁気
ディスク装置1のインターフェースとして、SCSI
(Small Computer System Interface )を採用し、磁気
ディスク装置は、コマンドキューイング、及びライトキ
ャッシュ機構を装備した装置とする。
【0034】図示のように、磁気ディスク装置1には、
インターフェース制御部3、リード/ライト制御部8、
ディスク媒体9等(説明上必要なもののみ図示してあ
る)が設けてある。
【0035】また、前記インターフェース制御部3に
は、入出力制御部5、データバッファ制御部6、データ
バッファ7、コマンド情報退避用メモリ11、コマンド
キュー12等が設けてある。
【0036】前記磁気ディスク装置の運用時には、この
磁気ディスク装置1(1機)をホスト2(1機)に接続
して運用する。前記各部の機能等は次の通りである。 :入出力制御部5は、ホスト2との間の各種インター
フェース制御を行うものである。この入出力制御部5が
ホスト2からの書き込みコマンドを受領した場合には、
そのコマンドを解析し、解析結果をコマンド情報退避用
メモリ11に格納しておく。
【0037】また、書き込みコマンド実行中に、新たに
別の書き込みコマンドを受領した場合には、そのコマン
ドをコマンドキュー12に格納し、実行中の書き込みコ
マンドが終了したら、再びコマンドキュー12から次に
処理すべきコマンドを取り出す。
【0038】ホスト2から受領した書き込みデータは、
データバッファ制御部6によりデータバッファ7に格納
する。リード/ライト制御部8に対しては、ライトバッ
ク動作の起動を指示する。
【0039】:データバッファ制御部6は、データバ
ッファ7に対するデータのリード/ライト制御を行うも
のである。このデータバッファ制御部6は、データバッ
ファ7への書き込み用と、読み込み用の2つのポインタ
を持ち、このポインタを使用してデータバッファ7でア
ンダーラン、及びオーバランが起こらないように、入出
力制御部5、及びリード/ライト制御部8とデータバッ
ファ7間のデータ転送の調整を行う。
【0040】:データバッファ7は、リードポートと
ライトポートの2つのポートを持ち、キューイングされ
た書き込みデータを退避しておくためのバッファであ
り、データバッファ制御部6によって、データのライト
/リードが行われる。
【0041】実施例1では、データバッファ7は32[K
Byte] の容量を持つRAMで構成されたリングバッファ
構造のデータバッファとする。 :コマンド情報退避用メモリ11は、入出力制御部5
が解析した書き込みコマンド(ホストの発行したライト
コマンド)の解析結果を格納する(コマンド情報を一時
的に退避しておく)メモリである。
【0042】:コマンドキュー12は、書き込みコマ
ンド実行中に、新たに受領したコマンドを退避しておく
メモリである。実施例1の場合、コマンドキュー12は
4[KByte] の容量を持つRAMで構成されたリングバッ
ファ構造のコマンドキューとする。
【0043】:リード/ライト制御部8は、入出力制
御部5の指示を受けて、データバッファ7内のデータの
ライトバックを行うものである。リード/ライト制御部
8は、ディスク媒体をアクセスするためのハードウェア
と、それを制御するためのファームウェアで構成されて
いる。
【0044】:ディスク媒体9は、データの記録媒体
であり、実施例1では、データバイト長が4096バイ
トにフォーマットされたLBA(Logical Block Addres
s)(論理ブロックアドレス)の「000000」hから「「00F00
0」hを持つ媒体とする。
【0045】§3:磁気ディスク装置の動作概要 前記磁気ディスク装置の動作概要は次の通りである。ホ
スト2がコマンドを発行すると、このコマンドは、入出
力制御部5が受領して解析する。そして、入出力制御部
5は、前記コマンドがライトコマンドであることを認識
すると、データバッファ制御部6にデータの格納を指示
する。この指示によりデータバッファ制御部6は、ホス
ト2から転送されたデータをデータバッファ7に格納
(データキューイング)する。
【0046】この時同時に、入出力制御部5はリード/
ライト制御部8に対し、LBA(=「000000」h)と転送
ブロック数を通知し、書き込み処理開始の指示をする。
リード/ライト制御部8は、前記指示を受けて、目的の
データブロックを検索し、そのブロックを検出した時点
で、データバッファ7に格納されているデータの書き込
み(ライトバック)を開始する。
【0047】一方、入出力制御部5は、ホスト2から、
書き込みデータを全て受領した時点で、ホスト2に対
し、「GOOD」ステータスを報告(ライトコマンドの
データを正常に受領した旨の報告)して次のコマンド待
ち状態となる。
【0048】また、リード/ライト制御部8は、入出力
制御部5で指示された書き込み処理が終了した時点で停
止する。 §4:ライトコマンドの説明・・・図3参照 図3は実施例1の説明図(ライトコマンドの例)であ
る。以下、図3に基づいて、ホストの発行するライトコ
マンドの例を説明する。
【0049】図3では、実施例1で説明するライトコマ
ンドの例を(a)〜(h)の符号で示してある。この
(a)〜(h)の符号で示した各ライトコマンドについ
て、それぞれ、CDB(Command Description Block :
コマンド記述ブロック)[hex]、書き込み先頭LBA
(論理ブロックアドレス)、転送ブロック数、転送バイ
ト数が示してある。
【0050】例えば、符号(a)で示したライトコマン
ドは、CDBが「0A 00 00 00 01 00」 、書き込み先頭ア
ドレスが「000000」h、転送ブロック数が「01」h、転送バ
イト数が4[KByte] である。
【0051】符号(b)で示したライトコマンドは、C
DBが「0A 00 80 00 05 00」 、書き込み先頭アドレスが
「008000」h、転送ブロック数が「05」h、転送バイト数が
20[KByte] である。
【0052】符号(c)で示したライトコマンドは、C
DBが「0A 00 80 05 05 00」 、書き込み先頭アドレスが
「008005」h、転送ブロック数が「05」h、転送バイト数が
20[KByte] である。
【0053】符号(d)で示したライトコマンドは、C
DBが「0A 00 80 0A 05 00」 、書き込み先頭アドレスが
「00800A 」 h、転送ブロック数が「05」h、転送バイト数
が20[KByte] である。以下、他のコマンドについても
図示の通りである。
【0054】§5:フローチャートによる実施例1の処
理説明・・・図4、図5参照 図4は実施例1の処理フローチャート1、図5は実施例
1の処理フローチャート2である。以下、図4、図5に
基づいて、実施例1の処理を説明する。なお、S1〜S
17は処理ステップを示す。
【0055】この処理は、ホスト2が、図3に示したラ
イトコマンド(b)、(c)、(d)を順次発行する場
合の処理例である。最初に、ホスト2がライトコマンド
(b)を発行したとする。この時、入出力制御部5は、
前記コマンドを受領し(S1)、その内容を解析する
(S2)。解析の結果、LBA「008000」hから「05」hブ
ロック分のライトコマンドであることを確認すると(S
3)、その情報(CDB解析結果)をコマンド情報退避
用メモリ11に格納して退避する(S4)。なお、ライ
トコマンド以外のコマンドを受領した場合には、他の処
理を行う。
【0056】この時、入出力制御部5は、前記解析結果
の情報をリード/ライト制御部8に通知し、書き込みの
動作開始を指示すると同時に、ホスト2からの書き込み
データの受領を開始(書き込みデータの転送を開始)す
る。
【0057】このようにして、入出力制御部5がデータ
転送を実行している間、ディスク媒体9上のLBA「008
000」hのブロックの存在するトラックにシークを行い、
目的のデータブロックを検索する(S5)。
【0058】そして、リード/ライト制御部8では、目
的のデータブロックを検出した時点で、データバッファ
7にキューイングされているデータをディスク媒体9に
書き込み始める。すなわち、リード/ライト制御部8
は、目的のデータブロックを検出した時点でディスク媒
体9へのライトバックを開始する。
【0059】一方、入出力制御部5では、データバッフ
ァ制御部6に指示を出して、前記書き込みデータをデー
タバッファ7に格納する処理(データキューイング)を
開始する(S6)。すなわち、データバッファ7へのデ
ータキューイングと、データバッファ7からディスク媒
体9へのライトバックを、独立して別々に行う。
【0060】その後、入出力制御部5は、前記コマンド
(b)のデータキューイングが正常に終了したことを確
認すると(S7)、該入出力制御部5はホスト2に対
し、前記処理が終了した旨の「GOOD」ステータスを
報告する(S8)。
【0061】この報告により、ホスト2に、次のコマン
ドが実行可能であることを知らせる(通常、この時点で
は、まだリード/ライト制御部8は、シーク、目的デー
タブロックの検出、或いは書き込み動作実行中であ
る)。
【0062】続いて、ホスト2がライトコマンド(c)
を発行したとする。この時入出力制御部5は、前記コマ
ンドを受領し(S9)、その内容を解析する(S1
0)。その結果、LBA「008005」hから「05」h ブロック
分のライトコマンドであることを確認した場合には(S
11)、その情報(CDB解析結果)をコマンド情報退
避用メモリ11に格納して退避する(S12)。なお、
ライトコマンド以外のコマンドを受領した場合には、ラ
イトコマンド(b)のライトバック処理が終了したら、
他の処理を行う。
【0063】また、入出力制御部5では、前回実行した
ライトコマンド(b)の書き込み最終LBAと、今回受
領したライトコマンド(c)の書き込みLBAとを比較
し、それらのLBAが連続であるか否か、すなわち、シ
ーケンシャルライトであるか否かを判断する(S1
3)。
【0064】その結果、LBAが連続でなければ(シー
ケンシャルライトでない場合)、ライトコマンド(b)
のライトバック処理が終了したら、他の処理を行う。し
かし、この例では、ライトコマンド(b)の最終LBA
が「008004」hであり、ライトコマンド(c)の書き込み
先頭LBAが「008005」であるため、入出力制御部5は、
シーケンシャルライトであると判断する。
【0065】前記ライトコマンドがシーケンシャルライ
トであると判断した場合(S13)、入出力制御部5
は、ライトコマンド(c)の書き込みデータを、データ
バッファ7の空き領域にキューイングする(S14)。
【0066】ここで、データキューイング中に、データ
バッファ7に空き領域が無くなった場合には、ディスク
媒体9への書き込みが終了したデータの上に上書きす
る。この制御は入出力制御部5の指示により、データバ
ッファ制御部6が行う。
【0067】また、入出力制御部5は、この時点でリー
ド/ライト制御部8が動作中であれば、現在実行してい
るライトコマンド(b)の書き込み処理に引き続き、今
回受領したライトコマンド(c)のライトバックを行う
ように、リード/ライト制御部8に指示する(S1
5)。
【0068】リード/ライト制御部8は、入出力制御部
5の指示を受けてライトコマンド(b)の書き込み処理
(ライトバック処理)が終了しても、停止することな
く、引き続きライトコマンド(c)の書き込み処理(ラ
イトバック処理)を行うように制御する。
【0069】一方、ライトコマンド(c)のデータキュ
ーイングが終了すると(S16)、入出力制御部5は、
ホスト2に対し、「GOOD」ステータスを報告する
(S17)。
【0070】前記「GOOD」ステータスを受領したホ
スト2は、続いて、ライトコマンド(d)を発行する。
この例では、ライトコマンド(d)もシーケンシャルラ
イトの対象であるため、前記処理S9〜S17と同じよ
うにして処理を行う。以下、更に別のコマンドを発行し
た場合にも、同様に処理を行う。
【0071】なお、ホスト2が前記コマンドを発行後、
磁気ディスク装置にアクセスしない場合には、該磁気デ
ィスク装置においては、入出力制御部5が、本コマンド
に対する「GOOD」ステータスをホスト2に報告後、
次のコマンド待ちとなり、リード/ライト制御部8は、
全てのライトバック処理が終了した時点で処理を停止す
る。
【0072】§6:タイムチャートによる実施例1の処
理説明・・・図6参照 図6は実施例1のタイムチャートである。以下、図6の
タイムチャートに基づいて、前記実施例1の処理を説明
する。なお、処理内容は前記の説明と同じである。
【0073】図6において、(A)はホスト2、(B)
は入出力制御部5、(C)はリード/ライト制御部8の
各処理時のタイムチャートを示す。また、[1]〜[1
7]は各処理のタイミングであり、その内容は次の通り
である。
【0074】[1]ではホスト2がライトコマンド
(b)を発行する。[2]ではそのコマンドを入出力制
御部5が受領する。[3]では、入出力制御部5がリー
ド/ライト制御部8にライトコマンド(b)のライトバ
ックを指示する。[4]ではディスク媒体上の目的のブ
ロックへシークを行う。[5]では入出力制御部5がラ
イトコマンド(b)のデータキューイングを開始する。
【0075】[6]ではホスト2から入出力制御部5へ
ライトコマンド(b)のデータ転送を行う。[7]では
入出力制御部5がホスト2へライトコマンド(b)の
「GOOD」ステータスを報告する。[8]ではホスト
2が前記「GOOD」ステータスを受領する。[9]で
はホスト2がライトコマンド(c)を発行する。[1
0]ではそのコマンドを入出力制御部5が受領する。
【0076】[11]では入出力制御部5が、リード/
ライト制御部8に対し、ライトコマンド(b)に引き続
き、ライトコマンド(c)のライトバックを行うことを
指示する。[12]ではリード/ライト制御部8がライ
トコマンド(b)のデータの書き込み(ディスク媒体へ
のライトバック)を行う。
【0077】[13]では入出力制御部5がライトコマ
ンド(c)のデータキューイングを開始する。[14]
ではホスト2から入出力制御部5へライトコマンド
(c)のデータ転送を開始する。[15]ではリード/
ライト制御部8がライトコマンド(c)のデータの書き
込み(ディスク媒体へのライトバック)を行う。
【0078】[16]では入出力制御部5がホスト2に
「GOOD」ステータスを報告する。[17]ではホス
ト2が前記「GOOD」ステータスを受領する。 (実施例2の説明) §1:実施例2の概要説明 実施例2では、磁気ディスク装置に、ホストからのコマ
ンドの先取り機構(以下「コマンドキューイング機能」
という)を装備し、またそのために必要なコマンドキュ
ーを有する。
【0079】そして磁気ディスク装置が、複数の書き込
み命令を先取りした場合、これらの命令を最も短時間に
書き込み処理が終了するような順番に最適化し(以下
「リオーダリング」という)、その結果がシーケンシャ
ルライトと同様なものであれば、それらの命令の書き込
みは連続して行う。その結果、アクセス速度を向上する
ことができる。
【0080】なお、図3に示した実施例1のライトコマ
ンド例は、実施例2でも同じなので、図3も援用して説
明する。 §2:磁気ディスク装置の構成の説明・・・図7参照 図7は実施例2の磁気ディスク装置ブロック図である。
実施例2の磁気ディスク装置は、前記実施例1の磁気デ
ィスク装置(図2参照)に、更にリオーダリング実行部
14を付加した装置であり、他の構成は、実施例1と同
じである。
【0081】前記リオーダリング実行部14は、コマン
ドキュー12内のコマンド(ホストの発行したライトコ
マンドをキューイングしたもの)をリオーダリング(順
番を並べ換える処理)するものである。なお、他の構成
は実施例1と同じなので、説明は省略する。
【0082】§3:リオーダリングの処理説明・・・図
8参照 図8は実施例2のリオーダリング説明図であり、図8A
は例1、図8Bは例2を示す。なお、各図共、左側がリ
オーダリング前、右側がリオーダリング後を示してい
る。
【0083】入出力制御部5は、ホスト2の発行したラ
イトコマンドを受領した際、そのコマンドを一時コマン
ドキュー12に受領した順序で格納しておく。その後、
リオーダリング実行部14によりリオーダリングを行
う。
【0084】このリオーダリングでは、コマンドの受領
した順序ではなく、LBAの連続性等を調べ、最も短時
間で処理ができるように、コマンドの順序を入れ換え
る。例えば、ホスト2がライトコマンドを(d)→
(c)→(b)の順に連続的に発行したとすると、入出
力制御部5では、受領したコマンドを、例1のように、
一旦、この順序でコマンドキュー12に格納する。その
後、リオーダリングを行い、コマンドキュー12内のコ
マンドを(b)→(c)→(d)の順に入れ換える。
【0085】また、ホスト2がライトコマンドを(h)
→(g)→(f)の順に連続的に発行したとすると、入
出力制御部5では、受領したコマンドを、例2のよう
に、一旦、この順序でコマンドキュー12に格納する。
その後、リオーダリングを行い、(f)→(g)→
(h)の順に入れ換える。
【0086】§4:フローチャートによる実施例2の処
理説明・・・図9、図10参照 図9は実施例2の処理フローチャート1、図10は実施
例2の処理フローチャート2である。以下、図9、図1
0に基づいて、実施例2の処理を説明する。なお、S2
1〜S41は処理ステップを示す。
【0087】この処理は、ホスト2が、磁気ディスク装
置からの「GOOD」ステータス報告を待たずに、図3
に示したライトコマンド(d)、(c)、(b)を、
(d)→(c)→(b)の順に連続的に発行する場合の
処理例である。
【0088】入出力制御部5は、ホスト2から(d)→
(c)→(b)の順で連続発行されたライトコマンドの
CDBを受領し(S21)、これらのライトコマンド
を、一時コマンドキュー12に(d)→(c)→(b)
の順(受領した順)に格納(図8Aのリオーダリング前
参照)しておく(S22)。
【0089】その後、リオーダリング実行部14がリオ
ーダリングを実施する(S23)。リオーダリング実行
部14では、このリオーダリングにより、これらのコマ
ンドの処理を最も短時間で終了するであろう順序に入れ
換える(図8Aのリオーダリング後参照)(S24)。
【0090】次に、入出力制御部5は、コマンドキュー
12より、最初に処理すべきコマンドのCDBを取り出
し(S25)、これを解析する(S26)。この例では
最初にライトコマンド(b)を取り出して解析する。
【0091】解析の結果、LBA「008000」hから「05」h
ブロック分のライトコマンドであることを認識すると、
その情報(CDB解析結果)をコマンド情報退避用メモ
リ11に格納して退避する(S28)。なお、ライトコ
マンド以外のコマンドを受領した場合には、他の処理を
行う。
【0092】この時、入出力制御部5は、前記解析結果
の情報をリード/ライト制御部8に通知し、書き込みの
動作開始を指示すると同時に、ホスト2からの書き込み
データの受領を開始(書き込みデータの転送を開始)す
る。
【0093】このようにして、入出力制御部5がデータ
転送を実行している間、ディスク媒体9上のLBA「008
000」hのブロックの存在するトラックにシークを行い、
目的のデータブロックを検索する(S29)。
【0094】そして、リード/ライト制御部8では、目
的のデータブロックを検出した時点で、データバッファ
7にキューイングされているデータをディスク媒体9に
書き込み始める。すなわち、リード/ライト制御部8
は、目的のデータブロックを検出した時点でディスク媒
体9へのライトバックを開始する。
【0095】一方、入出力制御部5では、データバッフ
ァ制御部6に指示を出して、前記書き込みデータをデー
タバッファ7に格納する処理(データキューイング)を
開始する(S30)。
【0096】その後、入出力制御部5は、前記コマンド
(b)のデータキューイングが正常に終了したことを確
認すると(S31)、該入出力制御部5はホスト2に対
し、前記処理が終了した旨の「GOOD」ステータスを
報告する(S32)。
【0097】この報告により、ホスト2に、次のコマン
ドが実行可能であることを知らせる(通常、この時点で
は、まだリード/ライト制御部8は、シーク、目的デー
タブロックの検出、或いは書き込み動作実行中であ
る)。
【0098】次に入出力制御部5は、次に処理すべきコ
マンド、すなわち、この例ではライトコマンド(c)の
CDBをコマンドキュー12から取り出し(S33)、
このコマンドを解析する(S34)。
【0099】解析の結果、LBA「008005」hから「05」h
ブロック分のライトコマンドであることを認識すると
(S35)、その情報(CDB解析結果)をコマンド情
報退避用メモリ11に格納して退避する(S36)。な
お、ライトコマンド以外のコマンドを受領した場合に
は、他の処理を行う。
【0100】また、入出力制御部5では、前回実行した
ライトコマンド(b)の書き込み最終LBAが現在処理
しているライトコマンド(c)の書き込み開始LBAに
連続しているか否か、すなわち、シーケンシャルライト
であるか否かを判断する(S37)。
【0101】その結果、LBAが連続でなければ(シー
ケンシャルライトでない場合)、ライトコマンド(b)
のライトバック処理が終了したら、他の処理を行う。し
かし、この例では、ライトコマンド(b)の最終LBA
が「008004」hであり、ライトコマンド(c)の書き込み
先頭LBAが「008005」であるため、入出力制御部5は、
シーケンシャルライトであると判断する。
【0102】前記ライトコマンドがシーケンシャルライ
トであると判断した場合(S37)、入出力制御部5
は、ライトコマンド(c)の書き込みデータを、データ
バッファ7の空き領域にキューイングする(S38)。
【0103】ここで、データキューイング中に、データ
バッファ7に空き領域が無くなった場合には、ディスク
媒体9への書き込みが終了したデータの上に上書きす
る。この制御はデータバッファ制御部6が行う。
【0104】また、入出力制御部5は、この時点で、リ
ード/ライト制御部8が動作中であれば、現在実行して
いるライトコマンド(b)の書き込み処理に引き続き、
ライトコマンド(c)のライトバックを行うように、リ
ード/ライト制御部8に指示する(S39)。
【0105】リード/ライト制御部8は、入出力制御部
5の指示を受けて、ライトコマンド(b)の書き込み処
理(ライトバック処理)が終了しても、停止することな
く、引き続きライトコマンド(c)の書き込み処理(ラ
イトバック処理)を行うように制御する。
【0106】一方、ライトコマンド(c)のデータキュ
ーイングが終了すると(S40)、入出力制御部5は、
ホスト2に対し、「GOOD」ステータスを報告する
(S41)。
【0107】前記「GOOD」ステータスを報告した入
出力制御部5では、続いて次に処理すべきコマンド、す
なわち、この例では、ライトコマンド(d)のCDBを
コマンドキュー12から取り出す。
【0108】この例では、ライトコマンド(d)もシー
ケンシャルライトの対象であるため、前記処理と同じよ
うに処理を行う。従って、ホスト2が、ライトコマンド
(d)、(c)、(b)のコマンドを連続発行後、磁気
ディスク装置にアクセスしない場合には、磁気ディスク
装置においては、入出力制御部5は、本コマンドに対す
る「GOOD」ステータスをホストに報告後は、次のコ
マンド待ちの状態となる。このため、リード/ライト制
御部8は、全てのライトバック動作が終了した時点で停
止する。
【0109】§5:タイムチャートによる実施例2の処
理説明・・・図11参照 図11は実施例2のタイムチャートである。以下、図1
1のタイムチャートに基づいて、前記実施例2の処理を
説明する。なお、処理内容は前記の説明と同じである。
【0110】図11において、(A)はホスト2、
(B)は入出力制御部5、(C)はリオーダリング実行
部14、(D)はリード/ライト制御部8の各処理時の
タイムチャートを示す。また、[1]〜[21]は各処
理のタイミングであり、その内容は次の通りである。
【0111】[1]ではホスト2がライトコマンド
(d)を発行する。[2]ではそのコマンドを入出力制
御部5が受領し、コマンドキュー12に格納する。
[3]ではホスト2がライトコマンド(c)を発行す
る。[4]ではそのコマンドを入出力制御部5が受領
し、コマンドキュー12に格納する。[5]ではホスト
2がライトコマンド(b)を発行する。[6]ではその
コマンドを入出力制御部5が受領し、コマンドキュー1
2に格納する。
【0112】[7]ではリオーダリング実行部14がリ
オーダリングを実行し、ライトコマンドを、(b)→
(c)→(d)の順に決定する。[8]では入出力制御
部5がリード/ライト制御部8にライトコマンド(b)
のライトバックを指示する。[9]ではディスク媒体上
の目的のブロックへシークを行う。[10]では入出力
制御部5がライトコマンド(b)のデータキューイング
を開始する。
【0113】[11]ではホスト2から入出力制御部5
へライトコマンド(b)のデータ転送を行う。[12]
では入出力制御部5がホスト2へ、ライトコマンド
(b)の「GOOD」ステータスを報告する。[13]
ではホスト2が前記「GOOD」ステータスを受領す
る。[14]では入出力制御部5がコマンドキュー12
からライトコマンド(c)を取り出す。
【0114】[15]では入出力制御部5がリード/ラ
イト制御部8にライトコマンド(b)のライトバックに
引き続き、ライトコマンド(c)のライトバックを行う
ことを指示する。[16]ではリード/ライト制御部8
がコマンド(b)のデータの書き込み(ディスク媒体9
へのライトバック)を行う。
【0115】[17]では入出力制御部5がライトコマ
ンド(c)のデータキューイングを開始する。[18]
ではホスト2から入出力制御部5へライトコマンド
(c)のデータ転送を行う。[19]では入出力制御部
5がホスト2へ、ライトコマンド(c)の「GOOD」
ステータスを報告する。[20]ではホスト2が前記
「GOOD」ステータスを受領する。
【0116】[21]ではリード/ライト制御部8がラ
イトコマンド(c)のデータの書き込み(ディスク媒体
9へのライトバック)を行う。なお、ライトコマンド
(d)の処理は、前記ライトコマンド(c)の処理と同
じである。
【0117】(実施例3の説明) §1:実施例3の一般的な説明 実施例3は、前記実施例2と同様な構成の磁気ディスク
装置1機に対して、複数機のホスト(この例では2機)
が接続されている環境において、磁気ディスク装置が、
複数機のホストから書き込み命令を受領し、それらの命
令がシーケンシャルライトとなった場合、それらの命令
の書き込みを連続して行う。
【0118】その結果、ディスク媒体の回転待ち時間を
無くし、アクセス速度を向上させる。なお、図3に示し
たライトコマンド例は、実施例3でも同じなので、図3
も援用して説明する。
【0119】§2:磁気ディスク装置の構成の説明・・
・図12参照 図12は実施例3の磁気ディスク装置ブロック図であ
る。図示のように、磁気ディスク装置1には、インター
フェース制御部3、リード/ライト制御部8、ディスク
媒体9等が設けてある。
【0120】また、前記インターフェース制御部3に
は、入出力制御部5、データバッファ制御部6、データ
バッファ7、コマンド情報退避用メモリ11、コマンド
キュー12等が設けてある。
【0121】そして、運用時には、前記磁気ディスク装
置1に、2機のホスト20、21を接続する。なお、磁
気ディスク装置1の構成は実施例1と同じなので、詳細
な説明は省略する。
【0122】§3:フローチャートによる実施例3の処
理説明・・・図13〜図15参照 図13は実施例3の処理フローチャート1、図14は実
施例3の処理フローチャート2、図15は実施例3の処
理フローチャート3である。以下、図13〜図15に基
づいて、実施例3の処理を説明する。なお、S51〜S
74は処理ステップを示す。
【0123】この実施例は、一方のホスト20が、図3
に示したライトコマンド(e)を発行し、そのコマンド
のデータキューイングが終了する以前に、他方のホスト
21がライトコマンド(f)を発行する場合の例であ
る。
【0124】例えば、ホスト20がライトコマンド
(e)を発行したとする。この時、入出力制御部5は、
前記コマンドを受領し(S51)、その内容を解析する
(S52)。解析の結果、LBA「008000」hから「10」h
ブロック分のライトコマンドであることを確認すると
(S53)、その情報(CDB解析結果)をコマンド情
報退避用メモリ11に格納して退避する(S54)。な
お、ライトコマンド以外のコマンドを受領した場合に
は、他の処理を行う。
【0125】この時、入出力制御部5は、前記解析結果
の情報をリード/ライト制御部8に通知し、書き込みの
動作開始を指示すると同時に、ホスト21からの書き込
みデータの受領を開始(書き込みデータの転送を開始)
する。
【0126】このようにして、入出力制御部5がデータ
転送を実行している間、ディスク媒体9上のLBA「008
000」hのブロックの存在するトラックにシークを行い、
目的のデータブロックを検索する(S55)。
【0127】そして、リード/ライト制御部8では、目
的のデータブロックを検出した時点で、データバッファ
7にキューイングされているデータをディスク媒体9に
書き込み始める。すなわち、リード/ライト制御部8
は、目的のデータブロックを検出した時点でディスク媒
体9へのライトバックを開始する。
【0128】一方、入出力制御部5では、データバッフ
ァ制御部6に指示を出して、前記書き込みデータをデー
タバッファ7に格納する処理(データキューイング)を
開始する(S56)。すなわち、データバッファ7への
データキューイングと、データバッファ7からディスク
媒体9へのライトバックを、独立して別々に行う。
【0129】前記データキューイングを行う際、入出力
制御部5は、データバッファ7に空き領域があるか否か
を判断する(S57)。そして、空き領域が有れば、デ
ータキューイングを続けて行う。
【0130】その後、入出力制御部5は、前記コマンド
(e)のデータキューイングが正常に終了したことを確
認すると(S58)、該入出力制御部5はホスト20に
対し、前記処理が終了した旨の「GOOD」ステータス
を報告する(S59)。
【0131】しかし、ライトコマンド(e)のデータキ
ューイングで、データバッファ7に空き領域が無くなっ
た場合(S57)、入出力制御部5はデータキューイン
グを一時停止する(S70)。
【0132】そして、入出力制御部5は、ライトコマン
ド(f)をホスト21から受領し(S71)、これをコ
マンドキュー12へ格納する(S72)。また、ライト
コマンド(e)のデータキューイングは、ライトバック
によってデータバッファ7に空き領域が出来次第(S7
3)処理を再開する(S74)。この場合、書き込みが
終了したデータブロックのデータに上書きする。
【0133】前記処理(S59)で「GOOD」ステー
タスを報告後、入出力制御部5は、次に処理すべきライ
トコマンド(f)のCDBをコマンドキュー12から取
り出し(S60)、これを解析する(S61)。
【0134】その結果、LBA「008010」hから「01」h ブ
ロック分のライトコマンドであることを確認した場合に
は(S62)、その情報(CDB解析結果)をコマンド
情報退避用メモリ11に格納して退避する(S63)。
なお、ライトコマンド以外のコマンドを受領した場合に
は、ライトコマンド(b)のライトバック処理が終了し
たら、他の処理を行う。
【0135】また、入出力制御部5では、前回実行した
ライトコマンド(e)の書き込み最終LBAと、現在処
理しているライトコマンド(f)の書き込みLBAとを
比較し、それらのLBAが連続であるか否か、すなわ
ち、シーケンシャルライトであるか否かを判断する(S
64)。
【0136】その結果、LBAが連続でなければ(シー
ケンシャルライトでない場合)、ライトコマンド(e)
のライトバック処理が終了したら、他の処理を行う。し
かし、この例では、ライトコマンド(e)と(f)はシ
ーケンシャルライトであると判断する。
【0137】そして、入出力制御部5は、ライトコマン
ド(f)の書き込みデータを、データバッファ7の空き
領域(書き込みが終了したデータブロックのデータを格
納していた領域)にキューイングする(S65)。
【0138】また、入出力制御部5は、この時点で、リ
ード/ライト制御部8が動作中であれば、現在実行して
いるライトコマンド(e)の書き込み処理に引き続き、
今回受領したライトコマンド(f)のライトバックを行
うように、リード/ライト制御部8に指示する(S6
6)。
【0139】リード/ライト制御部8は、入出力制御部
5の指示を受けて、ライトコマンド(e)の書き込み処
理(ライトバック処理)が終了しても、停止することな
く、引き続きライトコマンド(f)の書き込み処理(ラ
イトバック処理)を行うように制御する。
【0140】一方、ライトコマンド(e)のデータキュ
ーイングが終了すると(S67)、入出力制御部5は、
ホスト2に対し、「GOOD」ステータスを報告する
(S68)。
【0141】その後、どちらのホストも磁気ディスク装
置にアクセスしない場合には、該磁気ディスク装置にお
いては、入出力制御部5が、次のコマンドの待ち状態と
なり、リード/ライト制御部8は、全てのライトバック
処理が終了した時点で処理を停止する。
【0142】§4:タイムチャートによる実施例3の処
理説明・・・図16参照 図16は実施例3のタイムチャートである。以下、図1
6のタイムチャートに基づいて、前記実施例3の処理を
説明する。なお、処理内容は前記の説明と同じである。
【0143】図16において、(A)はホスト20、
(B)はホスト21、(C)は入出力制御部5、(D)
はデータバッファ制御部6、(E)はリード/ライト制
御部8の各処理時のタイムチャートを示す。また、
[1]〜[21]は各処理のタイミングであり、その内
容は次の通りである。
【0144】[1]ではホスト20がライトコマンド
(e)を発行する。[2]ではそのコマンドを入出力制
御部5が受領する。[3]では、入出力制御部5がリー
ド/ライト制御部8にライトコマンド(e)のライトバ
ックを指示する。[4]ではディスク媒体上の目的のブ
ロックへシークを行う。[5]では入出力制御部5がラ
イトコマンド(e)のデータキューイングを開始する。
【0145】[6]ではホスト20から入出力制御部5
へライトコマンド(e)のデータ転送を行う。[7]で
はデータバッファ7に空き領域が無くなり、ライトコマ
ンド(e)のデータバッファ7へのデータ転送を一時停
止する。
【0146】[8]ではホスト21がライトコマンド
(f)を発行する。[9]ではそのコマンドを入出力制
御部5が受領し、コマンドキュー12へ格納する。[1
0]ではデータバッファ制御部6が、データバッファ7
へのライトコマンド(e)のデータ転送を再開する。
[11]ではホスト20から入出力制御部5へライトコ
マンド(e)のデータ転送(続き)を行う。
【0147】[12]では入出力制御部5がホスト20
へライトコマンド(e)の「GOOD」ステータスを報
告する。[13]ではホスト20が前記「GOOD」ス
テータスを受領する。[14]では入出力制御部5がコ
マンドキュー12からライトコマンド(f)を取り出
す。
【0148】[15]では入出力制御部5がリード/ラ
イト制御部8に対し、ライトコマンド(e)のライトバ
ックに引き続き、ライトコマンド(f)のライトバック
を行うように指示をする。[16]ではリード/ライト
制御部8がライトコマンド(e)のデータの書き込み
(ディスク媒体9へのライトバック)を行う。
【0149】[17]では入出力制御部5がライトコマ
ンド(f)のデータキューイングを開始する。[18]
ではホスト21から入出力制御部5へライトコマンド
(f)のデータ転送を行う。[19]では入出力制御部
5がホスト21へライトコマンド(f)の「GOOD」
ステータスを報告する。[20]ではホスト21が前記
「GOOD」ステータスを受領する。[21]ではリー
ド/ライト制御部8がライトコマンド(f)のデータの
書き込み(ディスク媒体9へのライトバック)を行う。
【0150】(実施例4の説明) §1:実施例4の一般的な説明 実施例4では、実施例3と同様な環境において、磁気デ
ィスク装置が複数機のホストからの複数の書き込み命令
を先取りした場合、これらの命令のリオーダリングを行
い、その結果がシーケンシャルライトと同様なものであ
れば、それらの命令の書き込みは連続して行う。その結
果、アクセス速度の向上を達成することができる。
【0151】§2:磁気ディスク装置の構成の説明・・
・図17参照 図17は実施例4の磁気ディスク装置ブロック図であ
る。実施例4の磁気ディスク装置は、前記実施例2の磁
気ディスク装置(図7参照)と同じなので、説明は省略
する。但し、運用時には、この磁気ディスク装置に2機
のホスト20、21を接続する。
【0152】§3:フローチャートによる実施例4の処
理説明・・・図18〜図20参照 図18は実施例4の処理フローチャート1、図19は実
施例4の処理フローチャート2、図20は実施例4の処
理フローチャート3である。以下、図18〜図20に基
づいて、実施例4の処理を説明する。なお、S81〜S
105は処理ステップを示す。
【0153】この例は、一方のホスト20がライトコマ
ンド(e)を発行し、そのコマンドのデータキューイン
グが終了する以前に(磁気ディスク装置からの「GOO
D」ステータスを待たずに)、他方のホスト21が、ラ
イトコマンド(h)→(g)→(f)の順で発行する場
合の例である。
【0154】例えば、ホスト20がライトコマンド
(e)を発行したとする。この時、入出力制御部5は、
前記コマンドを受領し(S81)、その内容を解析する
(S82)。解析の結果、LBA「008000」hから「10」h
ブロック分のライトコマンドであることを確認すると
(S83)、その情報(CDB解析結果)をコマンド情
報退避用メモリ11に格納して退避する(S84)。な
お、ライトコマンド以外のコマンドを受領した場合に
は、他の処理を行う。
【0155】この時、入出力制御部5は、前記解析結果
の情報をリード/ライト制御部8に通知し、書き込みの
動作開始を指示すると同時に、ホスト20からの書き込
みデータの受領を開始(書き込みデータの転送を開始)
する。
【0156】このようにして、入出力制御部5がデータ
転送を実行している間、ディスク媒体9上のLBA「008
000」hのブロックの存在するトラックにシークを行い、
目的のデータブロックを検索する(S85)。
【0157】そして、目的のデータブロックを検出した
時点で、リード/ライト制御部8では、データバッファ
7にキューイングされているデータのディスク媒体9へ
の書き込み(ライトバック)を開始する。
【0158】一方、入出力制御部5では、データバッフ
ァ制御部6に指示を出して、前記書き込みデータをデー
タバッファ7に格納する処理(データキューイング)を
開始する(S86)。
【0159】前記データキューイングを行う際、入出力
制御部5は、データバッファ7に空き領域があるか否か
を判断する(S87)。そして、空き領域が有れば、デ
ータキューイングを続けて行う。
【0160】その後、入出力制御部5は、前記コマンド
(e)のデータキューイングが正常に終了したことを確
認すると(S88)、該入出力制御部5はホスト20に
対し、前記処理が終了した旨の「GOOD」ステータス
を報告する(S89)。
【0161】しかし、ライトコマンド(e)のデータキ
ューイングで、データバッファ7に空き領域が無くなっ
た場合(S87)、入出力制御部5はデータキューイン
グを一時停止する(S99)。
【0162】そして、入出力制御部5は、ホスト21が
(h)→(g)→(f)の順で連続発行したライトコマ
ンド(h)、(g)、(f)を受領し(S100)、こ
れを(h)→(g)→(f)の順でコマンドキュー12
へ格納する(S101)。
【0163】その後、リオーダリング実行部14は、リ
オーダリングを実施する(S102)。この結果、ライ
トコマンドを(f)→(g)→(h)の順に入れ換え、
コマンドキュー12に格納する(S103)。
【0164】また、ライトコマンド(e)のデータキュ
ーイングは、ライトバックによってデータバッファ7に
空き領域が出来次第(S104)処理を再開する(S1
05)。この場合、書き込みが終了したデータブロック
のデータに上書きする。
【0165】前記処理(S89)で「GOOD」ステー
タスを報告後、入出力制御部5は、次に処理すべきライ
トコマンド(f)のCDBをコマンドキュー12から取
り出し(S90)、これを解析する(S91)。
【0166】その結果、LBA「008010」hから「01」h ブ
ロック分のライトコマンドであることを確認した場合に
は(S92)、その情報(CDB解析結果)をコマンド
情報退避用メモリ11に格納して退避する(S93)。
なお、ライトコマンド以外のコマンドを受領した場合に
は、ライトコマンド(e)のライトバック処理が終了し
たら、他の処理を行う。
【0167】また、入出力制御部5では、前回実行した
ライトコマンド(e)の書き込み最終LBAと、現在処
理しているライトコマンド(f)の書き込みLBAとを
比較し、それらのLBAが連続であるか否か、すなわ
ち、シーケンシャルライトであるか否かを判断する(S
94)。
【0168】その結果、LBAが連続でなければ(シー
ケンシャルライトでない場合)、ライトコマンド(e)
のライトバック処理が終了したら、他の処理を行う。し
かし、この例では、ライトコマンド(e)と(f)はシ
ーケンシャルライトであると判断する。
【0169】そして、入出力制御部5は、ライトコマン
ド(f)の書き込みデータを、データバッファ7の空き
領域(書き込みが終了したデータブロックのデータを格
納していた領域)にキューイングする(S95)。
【0170】また、入出力制御部5は、この時点で、リ
ード/ライト制御部8が動作中であれば、現在実行して
いるライトコマンド(e)の書き込み処理に引き続き、
今回受領したライトコマンド(f)のライトバックを行
うように、リード/ライト制御部8に指示する(S9
6)。
【0171】リード/ライト制御部8は、入出力制御部
5の指示を受けて、ライトコマンド(e)の書き込み処
理(ライトバック処理)が終了しても、停止することな
く、引き続きライトコマンド(f)の書き込み処理(ラ
イトバック処理)を行うように制御する。
【0172】一方、ライトコマンド(f)のデータキュ
ーイングが終了すると(S97)、入出力制御部5は、
ホスト21に対し、「GOOD」ステータスを報告する
(S98)。以後、ライトコマンド(g)、(h)につ
いても同様に処理を行う。
【0173】その後、どちらのホストも磁気ディスク装
置にアクセスしない場合には、該磁気ディスク装置にお
いては、入出力制御部5が、次のコマンドの待ち状態と
なり、リード/ライト制御部8は、全てのライトバック
処理が終了した時点で処理を停止する。
【0174】§4:タイムチャートによる実施例4の処
理説明・・・図21参照 図21は実施例4のタイムチャートである。以下、図2
1のタイムチャートに基づいて、前記実施例4の処理を
説明する。なお、処理内容は前記の説明と同じである。
【0175】図21において、(A)はホスト20、
(B)はホスト21、(C)は入出力制御部5、(D)
はデータバッファ制御部6、(E)はリオーダリング実
行部14、(F)はリード/ライト制御部8の各処理時
のタイムチャートを示す。また、[1]〜[26]は各
処理のタイミングであり、その内容は次の通りである。
【0176】[1]ではホスト20がライトコマンド
(e)を発行する。[2]ではそのコマンドを入出力制
御部5が受領する。[3]では、入出力制御部5がリー
ド/ライト制御部8にライトコマンド(e)のライトバ
ックを指示する。[4]ではディスク媒体上の目的のブ
ロックへシークを行う。[5]では入出力制御部5がラ
イトコマンド(e)のデータキューイングを開始する。
【0177】[6]ではホスト20から入出力制御部5
へライトコマンド(e)のデータ転送を行う。[7]で
はデータバッファ7に空き領域が無くなり、ライトコマ
ンド(e)のデータバッファ7へのデータ転送を一時停
止する。
【0178】[8]ではホスト21がライトコマンド
(h)を発行する。[9]ではそのコマンドを入出力制
御部5が受領し、コマンドキュー12へ格納する。[1
0]ではホスト21がライトコマンド(g)を発行す
る。[11]ではそのコマンドを入出力制御部5が受領
し、コマンドキュー12へ格納する。
【0179】[12]ではホスト21がライトコマンド
(f)を発行する。[13]ではそのコマンドを入出力
制御部5が受領し、コマンドキュー12へ格納する。
[14]ではリオーダリング実行部14がリオーダリン
グを実施し、コマンド実行順序を(f)→(g)→
(h)の順に決定する。
【0180】[15]ではリード/ライト制御部8がラ
イトコマンド(e)のデータの書き込み(ディスク媒体
9へのライトバック)を行う。[16]ではデータバッ
ファ制御部6が、データバッファ7へのライトコマンド
(e)のデータ転送を再開する。[17]ではホスト2
0から入出力制御部5へライトコマンド(e)のデータ
転送(続き)を行う。
【0181】[18]では入出力制御部5がホスト20
へライトコマンド(e)の「GOOD」ステータスを報
告する。[19]ではホスト20が前記「GOOD」ス
テータスを受領する。[20]では入出力制御部5がコ
マンドキュー12からライトコマンド(f)を取り出
す。
【0182】[21]では入出力制御部5がリード/ラ
イト制御部8に対し、ライトコマンド(e)のライトバ
ックに引き続き、ライトコマンド(f)のライトバック
を行うように指示をする。[22]では入出力制御部5
がライトコマンド(f)のデータキューイングを開始す
る。
【0183】[23]ではホスト21から入出力制御部
5へライトコマンド(f)のデータ転送を行う。[2
4]では入出力制御部5がホスト21へライトコマンド
(f)の「GOOD」ステータスを報告する。[25]
ではホスト21が前記「GOOD」ステータスを受領す
る。
【0184】[26]ではリード/ライト制御部8がラ
イトコマンド(f)のデータの書き込み(ディスク媒体
9へのライトバック)を行う。なお、ライトコマンド
(g)(h)の処理は前記ライトコマンド(f)の処理
と同様に行う。
【0185】(他の実施例)以上実施例について説明し
たが、本発明は次のようにしても実施可能である。 :実施例3、4において、ホストの数は、3機以上の
任意の数でも適用可能である。
【0186】:磁気ディスク装置に限らず、例えば、
光磁気ディスク装置等にも同様に適用可能である。
【0187】
【発明の効果】以上説明したように、本発明によれば次
のような効果がある。 :シーケンシャルライトに対しては、磁気ディスク装
置自らこれを認識するため、ディスクの回転待ち無く、
ライトバックを行うことができる。従って、ライトバッ
ク処理を高速化することができる。
【0188】:ホストがシーケンシャルライトを行う
場合、ライトバック処理時に生じていたディスク媒体の
回転待ち時間を無くし、高速、かつ効率の良いライトバ
ック制御ができる。また、アクセス速度が向上する。
【0189】:ホストが連続発行したライトコマンド
を受領してコマンドキューイングした後、リオーダリン
グしているので、処理時間を短縮することができる。
【図面の簡単な説明】
【図1】本発明の原理説明図である。
【図2】実施例1の磁気ディスク装置ブロック図であ
る。
【図3】実施例1の説明図(ライトコマンドの例)であ
る。
【図4】実施例1の処理フローチャート1である
【図5】実施例1の処理フローチャート2である。
【図6】実施例1のタイムチャートである。
【図7】実施例2の磁気ディスク装置ブロック図であ
る。
【図8】実施例2のリオーダリング説明図である。
【図9】実施例2の処理フローチャート1である。
【図10】実施例2の処理フローチャート2である。
【図11】実施例2のタイムチャートである。
【図12】実施例3の磁気ディスク装置ブロック図であ
る。
【図13】実施例3の処理フローチャート1である。
【図14】実施例3の処理フローチャート2である。
【図15】実施例3の処理フローチャート3である。
【図16】実施例3のタイムチャートである。
【図17】実施例4の磁気ディスク装置ブロック図であ
る。
【図18】実施例4の処理フローチャート1である。
【図19】実施例4の処理フローチャート2である。
【図20】実施例4の処理フローチャート3である。
【図21】実施例4のタイムチャートである。
【図22】従来の磁気ディスク装置ブロック図である。
【符号の説明】
1 磁気ディスク装置 2、20、21 ホスト(ホストコンピュータ) 3 インターフェース制御部 5 入出力制御部 6 データバッファ制御部 7 データバッファ 8 リード/ライト制御部 9 ディスク媒体 12 コマンドキュー 14 リオーダリング実行部
───────────────────────────────────────────────────── フロントページの続き (58)調査した分野(Int.Cl.7,DB名) G06F 3/06 G06F 12/08 320

Claims (4)

    (57)【特許請求の範囲】
  1. 【請求項1】 ホストから転送されたデータを一時デー
    タバッファ(7)に格納し、その後、前記データバッフ
    ァのデータをディスク媒体(9)に書き込む制御を行う
    ライトキャッシュ機構を備えたディスク装置において、 ホスト(2)が発行した命令を受領した際、シーケンシ
    ャルライト(ディスク媒体上の連続したデータブロック
    群を、複数回の命令にわたって順番に書き込む)命令で
    あるか否かを判断し、 シーケンシャルライト命令であると判断した場合、ディ
    スク媒体(9)に書き込むべきデータを、データバッフ
    ァ(7)に先取り(データキューイング)すると共に、 新たな命令で指定されたディスク媒体への書き込み処理
    (ライトバック)を、前命令で行っている書き込み処理
    に引き続き行うように制御することを特徴としたディス
    ク装置のライトバック制御方法。
  2. 【請求項2】 ホストから転送されたデータを一時デー
    タバッファ(7)に格納し、その後、前記データバッフ
    ァのデータをディスク媒体(9)に書き込む制御を行う
    ライトキャッシュ機構を備えたディスク装置において、 ホスト(2)が連続発行した複数の書き込み命令を受領
    した際、その命令を受領した順に先取り(コマンドキュ
    ーイング)した後、これらの命令を、最も短時間に書き
    込み処理が終了する順番に最適化(リオーダリング)
    し、 前記最適化した命令を順次取り出して、シーケンシャル
    ライト(ディスク媒体上の連続したデータブロック群
    を、複数回の命令にわたって順番に書き込む)命令か否
    かを判断し、 シーケンシャルライト命令であれば、ディスク媒体
    (9)に書き込むべきデータを、データバッファ(7)
    に先取り(データキューイング)すると共に、 新たな命令で指定されたディスク媒体への書き込み処理
    (ライトバック)を、前命令で行っている書き込み処理
    に引き続き行うように制御することを特徴としたディス
    ク装置のライトバック制御方法。
  3. 【請求項3】 ホストから転送されたデータを一時デー
    タバッファ(7)に格納し、その後、前記データバッフ
    ァのデータをディスク媒体(9)に書き込む制御を行う
    ライトキャッシュ機構を備えたディスク装置において、 複数のホスト(20、21)が発行した命令を受領した
    際、シーケンシャルライト(ディスク媒体上の連続した
    データブロック群を、複数回の命令にわたって順番に書
    き込む)命令であるか否かを判断し、 シーケンシャルライト命令であると判断した場合、ディ
    スク媒体(9)に書き込むべきデータを、データバッフ
    ァ(7)に先取り(データキューイング)すると共に、 新たな命令で指定されたディスク媒体への書き込み処理
    (ライトバック)を、前命令で行っている書き込み処理
    に引き続き行うように制御することを特徴としたディス
    ク装置のライトバック制御方法。
  4. 【請求項4】 ホストから転送されたデータを一時デー
    タバッファ(7)に格納し、その後、前記データバッフ
    ァのデータをディスク媒体(9)に書き込む制御を行う
    ライトキャッシュ機構を備えたディスク装置において、 複数のホスト(20、21)が連続発行した複数の書き
    込み命令を受領した際、その命令を受領した順に先取り
    (コマンドキューイング)した後、これらの命令を、最
    も短時間に書き込み処理が終了する順番に最適化(リオ
    ーダリング)し、 前記最適化した命令を順次取り出して、シーケンシャル
    ライト(ディスク媒体上の連続したデータブロック群
    を、複数回の命令にわたって順番に書き込む)命令か否
    かを判断し、 シーケンシャルライト命令であれば、ディスク媒体
    (9)に書き込むべきデータを、データバッファ(7)
    に先取り(データキューイング)すると共に、 新たな命令で指定されたディスク媒体への書き込み処理
    (ライトバック)を、前命令で行っている書き込み処理
    に引き続き行うように制御することを特徴としたディス
    ク装置のライトバック制御方法。
JP05266918A 1993-10-26 1993-10-26 ディスク装置のライトバック制御方法 Expired - Fee Related JP3122702B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP05266918A JP3122702B2 (ja) 1993-10-26 1993-10-26 ディスク装置のライトバック制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP05266918A JP3122702B2 (ja) 1993-10-26 1993-10-26 ディスク装置のライトバック制御方法

Publications (2)

Publication Number Publication Date
JPH07121308A JPH07121308A (ja) 1995-05-12
JP3122702B2 true JP3122702B2 (ja) 2001-01-09

Family

ID=17437488

Family Applications (1)

Application Number Title Priority Date Filing Date
JP05266918A Expired - Fee Related JP3122702B2 (ja) 1993-10-26 1993-10-26 ディスク装置のライトバック制御方法

Country Status (1)

Country Link
JP (1) JP3122702B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009093423A (ja) * 2007-10-09 2009-04-30 Delta Electronics Inc キュー機能を備えるプログラマブル論理制御装置とその方法
US20110004718A1 (en) * 2009-07-02 2011-01-06 Ross John Stenfort System, method, and computer program product for ordering a plurality of write commands associated with a storage device
JP5593718B2 (ja) 2010-02-05 2014-09-24 富士通株式会社 ストレージ装置、ストレージ装置制御プログラムおよびストレージ装置制御方法
JP5712713B2 (ja) 2011-03-18 2015-05-07 富士通株式会社 制御装置、制御方法およびストレージ装置
JP2023011449A (ja) 2021-07-12 2023-01-24 富士通株式会社 演算処理装置及び演算処理装置の動作方法

Also Published As

Publication number Publication date
JPH07121308A (ja) 1995-05-12

Similar Documents

Publication Publication Date Title
US6374327B2 (en) Method of data migration
JP3183993B2 (ja) ディスク制御システム
JP3254429B2 (ja) データ転送/管理システム及び方法
US5548788A (en) Disk controller having host processor controls the time for transferring data to disk drive by modifying contents of the memory to indicate data is stored in the memory
US5606684A (en) On-line dumping system and disk sub-system
US7376786B2 (en) Command stack management in a disk drive
JPH07225715A (ja) キャッシュ内のデータにアクセスする方法およびシステム
KR19980029917A (ko) 자기 디스크 드라이브에서 읽기 캐쉬의 성능을 높이기 위한 방법
JP3087429B2 (ja) 記憶装置システム
US4903195A (en) Method for controlling data transfer
JP3122702B2 (ja) ディスク装置のライトバック制御方法
JP3566319B2 (ja) 情報記憶装置
JP2003241904A (ja) ディスクアレイ装置、及びその制御方法
JPH05289818A (ja) ディスクアレイ制御方式
JPH10171713A (ja) ディスク記憶装置及び同装置に適用するキャッシュ制御方法
JP2834081B2 (ja) 磁気ディスク制御装置
JP3080758B2 (ja) 磁気ディスク装置
JP2704138B2 (ja) 磁気ディスクキャッシュの制御方法
JPH10275110A (ja) ディスクドライブ装置及びその制御方法
JPS60222943A (ja) デイスクキヤツシユ制御方式
JPH07295916A (ja) ディスク制御方式
JP2001222381A (ja) パーシャルライト処理を行うディスク制御装置、ディスクサブシステム、ディスク制御装置の制御方法、及びプログラムを記録した記録媒体。
JPH0432944A (ja) 磁気ディスク制御方式
JPH0418649A (ja) バッファメモリ制御方式
JPH04111015A (ja) 情報記録装置

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20001010

LAPS Cancellation because of no payment of annual fees