JP2001209500A - ディスク装置およびディスク装置のリード・ライト処理方法 - Google Patents

ディスク装置およびディスク装置のリード・ライト処理方法

Info

Publication number
JP2001209500A
JP2001209500A JP2000019450A JP2000019450A JP2001209500A JP 2001209500 A JP2001209500 A JP 2001209500A JP 2000019450 A JP2000019450 A JP 2000019450A JP 2000019450 A JP2000019450 A JP 2000019450A JP 2001209500 A JP2001209500 A JP 2001209500A
Authority
JP
Japan
Prior art keywords
command
write
data
buffer
access
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
Application number
JP2000019450A
Other languages
English (en)
Inventor
Yoshiyuki Ota
善之 太田
Katsuhiko Nishikawa
克彦 西川
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 JP2000019450A priority Critical patent/JP2001209500A/ja
Priority to US09/770,608 priority patent/US6832288B2/en
Publication of JP2001209500A publication Critical patent/JP2001209500A/ja
Priority to US10/983,643 priority patent/US7058760B2/en
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0674Disk device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0674Disk device
    • G06F3/0676Magnetic disk device

Abstract

(57)【要約】 【課題】リードコマンドの実行処理の遅延を防ぐととも
に、重複データを有するライトコマンド間の処理を効率
化する。 【解決手段】コマンドキューに未処理のライトコマンド
が存在していてもリードコマンドを先行処理するリード
コマンド先行処理部と、新たなライトコマンドのライト
データと既存ライトコマンドのライトデータとの間で重
複がある場合、既存ライトコマンドのライトデータの重
複部分を新たなライトデータで上書きするライトコマン
ド重複データ処理部を設ける。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、ディスク装置およ
びそのリード・ライト処理方法に関する。特に、ライト
データをディスク装置内の1本のデータバッファに一時
格納してホストシステムには応答を返した後、そのデー
タバッファ内のデータをディスク媒体に格納する形式の
ディスク装置に関する。
【0002】
【従来の技術】第2図に従来のディスク装置の構成を示
す。従来のディスク装置30では、内部にリード・ライ
ト用データを一時保存するライトバッファ31を用意
し、特にライトコマンドの場合に、ライトバッファ31
にホストコンピュータからのデータを蓄積し終わった時
点で、ディスク媒体32へのデータライト完了を待たず
にホストへデータライト完了の応答を返すことで、高速
化を図っていた。ライトバッファ31へ蓄積したライト
データに対するコマンドはライトコマンドキュー33に
保有して、ディスク媒体32にはライトコマンドキュー
33内に蓄積された古いコマンドから、コマンド実行部
34によりライトコマンドを実行していた。連続アクセ
ス判定部35は、直前のライトコマンドのライトデータ
の最終アドレス36を保持し、今回実行するライトコマ
ンドのライトデータが直前のライトコマンドのライトデ
ータの最終アドレスに連続したアドレスにアクセスする
ものであるかどうかを判定するものである。
【0003】近年、ディスク装置内の制御プロセッサの
性能向上により、ライトコマンドキュー33内に複数の
ライトコマンドが存在する際に、現実行コマンドの最終
格納データ位置から、ライトコマンドキュー33内の各
コマンドの先頭データへの遷移に必要な「ヘッドシーク
+回転待ち時間」を各コマンド毎に計算し、その中で最
も短い時間で遷移できるコマンドを次に実行するライト
コマンドとして選択する、ライトコマンドのリオーダリ
ングを実行するようになった。リオーダリングはリオー
ダリング処理部37にて実行される。
【0004】
【発明が解決しようとする課題】ここで、従来のライト
コマンドのリオーダリング処理では、(1)ライトコマ
ンドキューに媒体ライトが実行されていないライトコマ
ンドが存在する状態で新たなリードコマンドが入力され
た場合、ライトコマンドキュー内の全ライトコマンドの
処理が終了するまで、リードコマンドの実行が待たされ
る、(2)時間的に連続して入力されたライトコマンド
が連続したアドレスのデータをライトする連続ライトコ
マンドの場合、キュー内にある他の全ライトコマンドの
処理が終了しないと、連続ライトコマンドの処理を実行
できない、(3)ライトコマンドキューに存在するコマ
ンドとデータが重複する他のライトコマンドが新たに入
力された場合に、重複しているキュー内のコマンドと新
コマンドとの連続性を考慮せずに、重複データを削除す
る、等、効率の良い処理を行っていない。
【0005】
【課題を解決するための手段】本発明は、上述の点に鑑
みてなされたもので、効果的なリオーダリング処理およ
び重複データの潰し込み処理等を可能にするディスク装
置を実現するものである。
【0006】第1図に本発明のディスク装置の構成例を
示す。ホストコンピュータから入力されたリードコマン
ドはリードキャッシュ・ライトキャッシュ(図示せず)
とのヒットチェックを行った後、コマンドキュー2にセ
ットされる。次いで、ライトコマンド重複データ処理部
3において、コマンドキュー2に蓄積されているライト
コマンドとのデータ重複の有無をチェックする。入力さ
れたリードコマンドは、データの重複があるライトコマ
ンドがコマンドキュー2内に存在する場合には、そのラ
イトコマンドの媒体ライトが終了するまでコマンドキュ
ー2で待たされた後、コマンド実行部4に入力され、デ
ータのリード動作を行う。データの重複がない場合に
は、リード先行処理部14により、コマンドキュー2に
蓄積されたライトコマンドを飛び越してコマンド実行部
4に入力される。
【0007】ホストコンピュータから入力されたライト
コマンド(Aとする)は、ライトコマンド重複データ処
理部3において、コマンドキュー2に蓄積されているラ
イトコマンドとのデータの重複をチェックされる。重複
がある場合には、ライトバッファ5に蓄積されているデ
ータあるいはライトコマンドAのデータの重複部分を削
除する。さらに、連続アクセス判定部6において、直前
のライトコマンドと連続したアドレスのデータをアクセ
スしているかどうかをチェックする。このとき、直前の
コマンドの最終アドレスのみでなく、先頭アドレス(直
前のコマンドが一連の連続アクセスコマンドの最後のコ
マンドであれば、連続アクセスの先頭コマンドの先頭ア
ドレス)との大小関係を比較する。ライトコマンドAが
直前のコマンドと重複を含めて連続アドレスをアクセス
するコマンドであることが判明した場合、連続アクセス
コマンド格納部7へ保存され、コマンドキュー2内のコ
マンドとともに、リオーダリング処理部8でリオーダリ
ングを行って実行される。ライトコマンドAが連続アク
セスコマンドでない場合、コマンドキュー2に格納さ
れ、リオーダリングを行った後に実行される。
【0008】ライトコマンドAに対応するライトデータ
は、ライトバッファ格納部9によって、ライトバッファ
5へ格納される。連続アクセス判定部6によって重複も
含めて連続アクセスであることが判明した場合には、ラ
イトデータはライトバッファ5内の前コマンドの領域の
隣接領域に格納される。一部重複が検出された場合に
は、前コマンドの重複部分のデータから書き換えを開始
する。
【0009】ライトバッファ5から媒体ライトを行う際
には、ライトバッファ読み出し部10内のFIFO2
(11)を経由する。上述したように、同一コマンドの
データが異なる空き領域に分断されて格納された場合に
は、バッファリードポインタを移動させる間、FIFO
2(11)に蓄積したデータを媒体ライトに使用し、デ
ータを連続してディスク媒体12に格納できるようにす
る。連続アクセスでない場合には、最大空き領域探索部
13において、ライトバッファ5内の最大空き領域を抽
出し、そこにデータを格納する。また、ライトデータ量
が選択した空き領域の大きさを越える場合には、バッフ
ァライト位置を新たな空き領域の先頭に移動させ、残り
のライトデータをその新たな空き領域に格納する。
【0010】ライトバッファ5から媒体ライトを行う際
に、同一コマンドのデータや連続アクセスのデータがラ
イトバッファ5上の異なる領域に格納されている場合に
は、ライトバッファ読み出し部10によって、不連続に
格納されているデータを連続的にディスク媒体12に格
納する。
【0011】
【発明の実施の形態】以下に本発明の実施例を、上記し
た図1および後述する図3〜図14を用いて説明する。 (1)リード先行処理を伴うライトコマンドのリオーダ
リング処理:従来例では、ライトコマンドキューに存在
するライトコマンド同士でのみ、リオーダリングを行っ
ていた。ライトコマンド実行中にリードコマンドが入力
されると、キュー内にあるライトコマンドの実行が全て
終了するまでリードコマンドの実行が待たされていた。
【0012】本発明のリオーダリングでは、ライトコマ
ンドを実行中に新たなリードコマンドが入力された場合
には、そのリードコマンドと同じアドレスをアクセスす
るライトコマンドがコマンドキュー2に存在するかどう
かをチェックする。存在しない場合は、現在実行中のラ
イトコマンドが終了した時点で、新たに入力されたリー
ドコマンドを実行し、その後、コマンドキュー2内に残
っているライトコマンドを実行する。このようにするこ
とで、コマンドキュー2内に蓄積されたライトコマンド
の媒体ライト処理の速度を上げるとともに、リードコマ
ンドが入力された場合には、データの重複がない限り、
入力されたリードコマンドの処理を先行して実行し、リ
ードコマンドのレスポンスを早めることができる。
【0013】ここで、ライトコマンド実行中のリードコ
マンドの割り込み方法については、上述したようなライ
トコマンドの全データのライト処理終了まで待つ方法の
他に、媒体ライト動作をすぐに中断し、そのライトコマ
ンドを、残っているデータをライトするコマンドとして
コマンドキュー2に戻してリードを先行して処理すると
いう、別の実施例が考えられる。この場合、コマンドキ
ュー2に戻すライトコマンドと先行したリードコマン
ド、コマンドキュー2内の他のライトコマンドとの間で
データの重複がないかどうかをチェックする必要がある
が、リードコマンドの実行はより早くなる。また、リー
ドコマンドが終了した時点で、コマンドキュー2に戻さ
れていたライトコマンドも含めてコマンドキュー2に存
在する複数のライトコマンドの間でリオーダリングを実
行し、最小のシーク・回転待ち時間で遷移できるライト
コマンドを選択する。 (2)重複データを含むリード先行処理:従来例では、
リードコマンドはコマンドキュー内の全てのライトコマ
ンドが終了するまで待たされるため、重複データを考慮
する必要がない。しかし本発明においては、コマンドキ
ュー2内のライトコマンドあるいは実行中のライトコマ
ンドと重複部分のあるリードコマンドが入力された場合
には、どのライトコマンドに重複しているかを記憶し、
コマンドキュー2の最後に新たなリードコマンドをセッ
トする。リオーダリング処理→コマンド実行を繰り返
し、重複しているライトコマンドが実行された時点でコ
マンドキュー2の最後に格納していたリードコマンドを
実行する。 (3)重複ライトデータの潰し込み:図3、図4を用い
て本発明による重複ライトデータの潰し込み処理を説明
する。図3は重複ライトデータが存在する場合の従来の
処理例を示す図であり、図4は本発明による処理例を示
す図である。図3の従来例においては、ディスク媒体内
先頭アドレスA、ディスク媒体内最終アドレスDのライ
トデータを伴うライトコマンドのライトデータが、ライ
トバッファの領域40に格納されている。(図3
(1)) なお、図3および後述する図4〜図16において、ライ
トバッファ中に「コマンド」、「CMD」と記載されて
いる領域はコマンドそのものを格納しているのではな
く、そのコマンドによってディスク媒体に格納されるラ
イトデータを格納している領域である。
【0014】図3(1)の状態において、ディスク媒体
内先頭アドレスB、ディスク媒体内最終アドレスC(こ
こで、A<B<C<Dであるとする)のライトデータを
伴う新ライトコマンドが入力されると、図3(2)に示
すように、データ領域40のうち、ディスク媒体アドレ
スBからディスク媒体アドレスCの部分のデータ領域4
0−2は空き領域とされ、残りのディスク媒体アドレス
Aからディスク媒体アドレスB−1の部分のデータ領域
40−1と、ディスク媒体アドレスC+1からディスク
媒体アドレスDの部分のデータ領域40−3のみが残さ
れる。そして、新ライトコマンドに伴うディスク媒体内
先頭アドレスB、ディスク媒体内最終アドレスCのライ
トデータは、最大空き領域であった領域41の先頭部分
の領域41−1に格納される。
【0015】このように、従来例では、常にコマンドキ
ュー内にある古いコマンド内の重複部分を削除するのみ
であった。そこで、新たなライトコマンドがコマンドキ
ューにあるライトコマンドに完全に包含される場合、コ
マンドキューに存在する重複ライトコマンドのライトデ
ータを修正すると、連続したデータが分割されてしま
い、余計なシーク・回転待ち時間を発生させてしまう。
【0016】一方、図4に示す本発明の処理例において
は、図3(1)と同一の図4(1)の状態において、デ
ィスク媒体内先頭アドレスB、ディスク媒体内最終アド
レスC(ここで、A<B<C<D)のライトデータを伴
う新ライトコマンドが入力されると、図4(2)に示す
ように、データ領域40のうち、ディスク媒体アドレス
Bからディスク媒体アドレスCの部分のデータ領域40
−2に、新ライトコマンドのデータが上書きされる。こ
のように、本発明では、新たな入力データが既存コマン
ドのデータに完全に包含される場合には、ライトコマン
ド重複データ処理部3により、ライトバッファ5の該当
部分を上書きするようにする。このようにすることで、
連続したアドレスを有するデータがライトバッファ5上
で分断されることがなくなる。 (4)重複データを有する連続ライト処理:図5、図6
を用いて本発明による重複データを有する連続ライト処
理を説明する。図5は従来の処理例を示す図であり、図
6は本発明による処理例を示す図である。図5の従来例
においては、ディスク媒体内先頭アドレスA、ディスク
媒体内最終アドレスCのライトデータを伴うライトコマ
ンドのライトデータが領域50に格納され、ディスク媒
体内先頭アドレスC+1、ディスク媒体内最終アドレス
Dのライトデータを伴うライトコマンドのライトデータ
が領域51に格納されている。(図5(1)) 図5(1)の状態において、ディスク媒体内先頭アドレ
スB、ディスク媒体内最終アドレスE(ここで、A<B
<C<D<Eであるとする)のライトデータを伴う新ラ
イトコマンドが入力されると、図5(2)に示すよう
に、データ領域50のうち、ディスク媒体アドレスBか
らディスク媒体アドレスCの部分のデータ領域およびデ
ータ領域51は、潰し込み領域として空き領域にされ
る。そして、新ライトコマンドに伴うディスク媒体内先
頭アドレスB、ディスク媒体内最終アドレスEのライト
データは、最大空き領域であった領域52の先頭部分の
領域52−1に格納される。この結果、コマンドキュー
には2本のコマンドがセットされる結果となった。従来
例では、時間的に連続して入力されるライトコマンドに
対して、前コマンドのライトデータのディスク媒体内最
終アドレスのみを記憶しており、連続して入力される次
のライトコマンドのライトデータのディスク媒体内先頭
アドレスが[記憶していたディスク媒体内最終アドレス
+1]ならば、連続アクセスコマンドとしてシークを発
生することなく、ライトバッファ上のデータを連続的に
ディスク媒体に格納していた。よって、次コマンドのラ
イトデータの前半部分が前コマンドのライトデータの後
半部分と一致する場合、連続アクセスとみなすことがで
きなかった。
【0017】一方、図6に示す本発明の処理例において
は、図5(1)と同一の図6(1)の状態において、デ
ィスク媒体内先頭アドレスB、ディスク媒体内最終アド
レスE(ここで、A<B<C<D<E)のライトデータ
を伴う新ライトコマンドが入力されると、図6(2)に
示すように、ライトバッファ内の重複データを上書き
し、そのまま残りのデータを後続の空き領域に格納す
る。これにより、既存コマンドのデータ重複部は上書き
され、1本のコマンドに統合されることになる。
【0018】本発明では、前コマンドのライトデータの
ディスク媒体内最終アドレスのみでなく、ディスク媒体
内先頭アドレスも保存する。先頭アドレスは、先頭アド
レス保持部15に保持され、最終アドレスは、最終アド
レス保持部16に保持される。このようにすることで、
次入力コマンドのライトデータのディスク媒体内先頭ア
ドレスが、記憶されている[先頭アドレス、最終アドレ
ス]の範囲内にあるときは、連続アクセスであると判断
して、次コマンドのライトデータを、前コマンドのライ
トデータの重複部分に上書きした部分を含めて、ライト
バッファ5に格納する。ディスク媒体ライト動作では、
連続アクセスコマンドとして新たな「シーク+回転待
ち」を発生する必要をなくすことができる。ただし、前
コマンドに対するディスク媒体ライトが既に始まってい
る場合には、次コマンドのライトデータのディスク媒体
内先頭アドレスが、[媒体ライト実行アドレス+α、最
終アドレス]の範囲内にあるかどうかをチェックする。
ここで、αは、媒体ライト実行アドレスを検出してから
次コマンドのデータをライトバッファ5に書き始めるま
でに、媒体ライトが進行してしまうためのマージンであ
る。 (5)前コマンドのライトデータの前半部に重複データ
を有する場合の連続ライト処理:図7、図8を用いて本
発明による前コマンドのライトデータの前半部に重複デ
ータを有する場合の連続ライト処理を説明する。図7は
従来の処理例を示す図であり、図8は本発明による処理
例を示す図である。図7の従来例においては、ディスク
媒体内先頭アドレスB、ディスク媒体内最終アドレスD
のライトデータを伴うライトコマンドのライトデータが
領域60に格納されている。(図7(1)) 図7(1)の状態において、ディスク媒体内先頭アドレ
スA、ディスク媒体内最終アドレスC(ここで、A<B
<C<Dであるとする)のライトデータを伴う新ライト
コマンドが入力されると、図7(2)に示すように、デ
ータ領域60のうち、ディスク媒体アドレスBからディ
スク媒体アドレスCの部分のデータ領域60−1は、空
き領域にされる。そして、新ライトコマンドに伴うディ
スク媒体内先頭アドレスA、ディスク媒体内最終アドレ
スCのライトデータは、空き領域であった領域61の先
頭部分の領域61−1に格納される。この結果、ライト
バッファへは独立した2つのコマンドとしてライトデー
タが格納されることになる。従来例では、既存コマンド
のライトデータの前半部に部分的に重複するライトデー
タを有するライトコマンドが入力された場合、重複を除
いた既存コマンドのライトデータと重複部分を含んだ新
たなコマンドのライトデータがライトバッファに存在し
ており、両者は互いに独立なコマンドとしてリオーダリ
ングを実施していた。
【0019】一方、図8に示す本発明の処理例において
は、図7(2)に示す従来例と同一の形式でライトバッ
ファに新たなライトコマンドのデータを格納するまでは
従来例と同様である。本発明では、ライトバッファ5と
ディスク媒体12の間に、FIFOメモリ2(11)が
設けられている。ライトバッファ5のリードポインタを
コマンド2の先頭から最後まで移動した後、コマンド1
の先頭に戻すことにより、コマンド2とコマンド1のラ
イトデータをFIFOメモリ2(11)にいったん格納
する。FIFOメモリ2(11)の容量がいっぱいにな
った時点からディスク媒体へのデータ転送が開始され、
ライトバッファ5上のポインタが他コマンドデータ部分
へ移動する際にもディスク媒体12へのデータライトが
中断されないように制御される。
【0020】このようにすることで、既存コマンド1の
ライトデータの前半部に重複するライトデータを有する
ライトコマンド2が入力された場合、コマンド2→コマ
ンド1というコマンドの連続性を記憶しておき、コマン
ド2の最終アドレスのデータをFIFO2(11)へ転
送した後、バッファリードポインタをコマンド1の先頭
データ位置に移動するまでの間、ディスク媒体12へは
FIFO2(11)に蓄積されたデータが書き込まれ
る。この後、連続アドレスのデータであるコマンド1の
先頭データからFIFO2(11)を通して連続的にデ
ィスク媒体12にデータを格納することができる。 (6)ライトバッファ上の連続領域に連続アドレスアク
セスコマンドのライトデータを格納する処理:図9、図
10を用いて本発明による連続アドレスアクセスのコマ
ンドに対する処理を説明する。
【0021】ライトコマンドのリオーダリングによっ
て、時間的に古いデータから順にディスク媒体ライトが
実行されるとは限らないため、ライトバッファには離散
的に空き領域が存在する。従来例では、新たなライトコ
マンドのために、常にライトバッファ内の最大の空き領
域を抽出しておき、そこにデータを格納していた。
【0022】図9に示す従来例においては、ディスク媒
体内先頭アドレスA、ディスク媒体内最終アドレスBの
ライトデータを伴うライトコマンド1(CMD1)(連
続アクセスの先頭コマンド)のライトデータが領域70
に格納され、その後に空き領域A71、他コマンドデー
タ領域72が続き、その後に最大空き領域B73が存在
する。このとき、連続アクセスの2番目のコマンドとし
て、ディスク媒体内先頭アドレスB+1、ディスク媒体
内最終アドレスCのライトデータを伴うライトコマンド
2(CMD2)が入力されると、ライトコマンド2のデ
ータは最大空き領域73へ格納されるように制御され
る。これは、連続アドレスをライトする複数のライトコ
マンドに対しては、先頭データを受けてみて始めて、先
頭アドレスが[前コマンドの最終アドレス+1]である
ことが判明するためである。
【0023】本発明では、ホストからのデータ転送に際
して、ライトバッファ5の前にFIFOメモリ1(1
7)を用意する。FIFOメモリ1(17)は、ライト
バッファ格納部9内に設けられる。ホストからのデータ
がこのFIFOメモリ1(17)を通過する間に、ライ
トコマンドの先頭アドレスが[前コマンドの最終アドレ
ス+1]であるかどうかを判断し、アドレスが連続して
いれば、バッファライトポンタを前コマンドのライトデ
ータから動かさないようにする。このようにすること
で、一連の連続アドレスアクセスの全てのコマンドに対
するデータをライトバッファ5上の連続領域に格納する
ことができる。
【0024】図10は、本発明の動作を示す図であり、
連続アクセスの2番目のコマンド(CMD2)のデータ
がFIFO1内に蓄積されている間に前コマンドとの連
続性がチェックされる。ライトコマンド2(CMD2)
の連続性が検出されるため、ライトコマンド2(CMD
2)のライトデータは空き領域71に格納される。
(7)最大空き領域を越えるサイズのライトコマンドへ
の対処:図11、図12を用いて本発明による、最大空
き領域を越えるサイズのライトデータに対する処理を説
明する。
【0025】従来のライトバッファ制御では、リオーダ
リングのためにライトバッファには離散的に空き領域が
存在する。ライトデータが空き領域以上のデータ量であ
る場合は、隣接する領域に格納された既存ライトデータ
のディスク媒体ライトが終了するまで、現コマンドに対
するホストからのデータ転送が中断していた。図11に
示す例で説明すると、大きさnのデータを有する新コマ
ンドが入力されてきたとき、最大空き領域として大きさ
m(m<n)の空き領域1(80)が存在しており、こ
の空き領域80に大きさmのデータを格納することはで
きるが、n−mのデータは未格納のまま残される。そし
て、空き領域80に隣接するコマンドcmd1のライト
データを格納する領域81のデータがディスク媒体12
に転送されるまでは、新コマンドのライトデータのライ
トバッファへの転送は中断されることになる。
【0026】本発明では、ライトバッファ5の前段にF
IFOメモリ1(17)を用意する。図12に示すライ
トバッファの領域80に大きさm(m<n)のデータを
格納した後、隣接する領域81のコマンドcmd1のデ
ータのディスク媒体12への転送を待たずに、コマンド
cmd1の領域81に隣接する空き領域82に残りのn
−mのデータを格納する動作を開始する。ここで、領域
80から空き領域82へバッファライトポインタを移動
する間、FIFO1(17)にn−mのライトデータを
蓄積し、バッファライトポインタが空き領域82の先頭
位置に移動し終わった時点で、ライトバッファ5へのデ
ータ転送を再開する。
【0027】離れている2つのバッファリードポインタ
の連続性を連続アクセスポインタ記憶部18に記憶して
おくことにより、1つのコマンドに属するデータが異な
る領域に格納されている状況が記憶される。ディスク媒
体ライトでは、FIFO2(11)経由でディスク媒体
12へデータを格納することにより、ライトバッファ5
上の異なる領域にバッファリードポインタを移動する際
にもディスク媒体12へデータが連続して転送できるよ
うにする。
【0028】(8)データ入力中のコマンドもリオーダ
リングに参加:図13、図14を用いて本発明による、
データ入力中のコマンドもリオーダリングに参加する処
理を説明する。データ入力中のコマンドもリオーダリン
グに参加できるようにするためには、ライトバッファ中
に他のコマンドのデータが存在する場合であっても、ラ
イトバッファへのライト動作とディスク媒体へのライト
動作とを同時処理できるようにしなければならない。
【0029】従来のリオーダリングにおいては、ライト
バッファへのデータ転送中のライトコマンドに対して
は、リオーダリングを行わなかった。なぜなら、バッフ
ァライト中のコマンドがディスク媒体ライトを開始する
と、ホストからのデータをライトバッファに格納しなが
ら、既にライトバッファに格納していたデータをディス
ク媒体に格納する動作を行うが、このとき、ライトバッ
ファ中の途中に他コマンドのデータが存在すると、そこ
でバッファライトを中断していたため、連続して媒体ラ
イトを行うことができなかった。図13は従来例を示す
図であり、ホストからのデータをライトバッファへ格納
するためのバッファライトポインタが図に示す90の位
置から順次、右側へ移行し、ライト動作を行っている途
中で、他コマンドのデータ領域の先頭位置である91の
位置に達すると、バッファライトを継続することができ
ず、ディスク媒体へのライト動作も中断する結果とな
る。
【0030】本発明では、バッファライト中のライトコ
マンドもリオーダリングに参加させる。リオーダリング
は、最も早く遷移できる次コマンドを検索する機能なの
で、リオーダリングの対象となるコマンド数が多い程、
効果的である。図14は本発明を説明する図である。バ
ッファライト実行中のコマンドが、ディスク媒体への媒
体ライトのための次実行コマンドとして選択された場
合、ライトバッファ5を挟んでホスト側・媒体側の両方
に用意した2つのFIFOメモリを利用してバッファラ
イト・媒体ライトを同時に行う。
【0031】バッファライトに関しては、ライトデータ
がライトバッファ5の前に用意したFIFOメモリ1
(17)を通過している間に、バッファライトポインタ
が他コマンドデータ格納領域(図14の92)に達した
ならば、他の空き領域(図14の93)の先頭位置を算
出し、バッファライトポインタを変更する。ディスク媒
体ライトの場合も同様に、バッファリードポインタが他
コマンド格納領域(図14の92)に達したならば、次
のデータが格納されている位置(図14の93)へバッ
ファリードポインタを変更する。バッファリードポイン
タを操作している間、ライトバッファ5からはデータを
読むことはできないが、FIFOメモリ2(11)に蓄
積していたデータが転送されるので、ディスク媒体12
へは連続してデータを転送することができる。
【0032】(9)ライトバッファ内に仮想的なセグメ
ントを設けて、他のライトデータを上書きしないで、オ
ートライトする処理:図15、図16を用いて本発明に
よる、ライトバッファ内に仮想的なセグメントを設け
て、他のライトデータを上書きしないで、オートライト
する処理を説明する。
【0033】図15は従来例を示す図であり、ライトバ
ッファへのデータ転送は、ライトバッファの最後尾まで
ライトデータを格納すると、バッファライトポインタを
ライトバッファの先頭に戻し、ライトバッファの先頭か
ら次データを格納していた。よって、データ長の長いラ
イトコマンドが入力されると、ライトバッファ中に存在
する他のライトコマンド(媒体ライト済み)に対するデ
ータを上書きしてしまっていた。また、媒体ライトが行
われていないライトコマンドAに対応するデータ領域1
00が存在する場合には、バッファライトがコマンドA
のデータが存在する領域100の先頭に到着すると、コ
マンドAのデータの媒体ライトが終了するまでバッファ
ライトを中断しなければならなかった。
【0034】図16は本発明の動作を説明する図であ
る。本発明のバッファライト制御では、バッファライト
中のライトコマンドが媒体ライトを開始した場合、ライ
トバッファ中の現在のバッファ格納位置からライトバッ
ファ内を前後に検索し、現在の格納位置より前の位置で
他のコマンドに対するデータが存在する点(図16にお
ける点”α”)、および現在の格納位置より後ろで他の
コマンドに対するデータが存在する点(図16における
点”β”)を抽出し、新たなデータのバッファ格納をそ
の2点間で折り返して行うようにする。ディスク媒体へ
のデータ転送に際しても、バッファリードポインタを前
記の2点間で折り返してバッファリードを実行する。こ
のようにすることによって、バッファライト中のライト
コマンドが媒体ライト動作も開始したとき、他のライト
コマンドのデータはバッファ内に保存したままで、媒体
ライトを行うことができる。このため、媒体ライトが実
行されていないライトデータaがライトバッファ内に存
在する場合でも、バッファライト中の他のコマンドBが
媒体ライトを実行した場合、コマンドBのバッファライ
トを中断することがない。
【0035】以上の各実施例において、FIFOメモリ
を使用している実施例では、2本のバッファリードポイ
ンタを使用する別の実施例も考えられる。例えば、前記
実施例(5)において、バッファリードポインタ1は既
存コマンド1のバッファ読み出しに使用するポインタで
あり、バッファリードポインタ2は重複するライトコマ
ンド2のバッファ読み出しに使用するポインタであると
する。既存コマンド1の前半部に重複するライトコマン
ド2が入力された際に、バッファリードポインタ1の値
を、重複データの次のデータ位置に変更し、コマンド2
→1という連続性を記憶する。ライトバッファ5を読み
出し、ディスク媒体ライトを実行する際には、バッファ
リードポインタ2がコマンド2の最終データ位置まで移
動してライトバッファ5の読み出しを行った後、すぐに
バッファリードポインタ1に切り換えてコマンド1に対
するデータを読み出すことによって、連続的にディスク
媒体にデータを格納することができる。
【0036】また前記実施例(7)においては、現コマ
ンドのデータをバッファライトポインタ1を使用してラ
イトバッファ5に格納している間に、次の最大空き領域
を算出し、その先頭位置をバッファライトポインタ2に
セットしておく。バッファライトポインタ1が最大空き
領域の最後まで移動した時点で、ライトバッファ5へ格
納するポインタをバッファライトポインタ1からバッフ
ァライトポインタ2へ代えて、ライトバッファ5への格
納を継続する。
【0037】
【発明の効果】本発明によれば、コマンドキューに未処
理のライトコマンドが存在していても、新たに入力され
たリードコマンドの処理を早めることにより、また、ラ
イトバッファ中のデータと重複のあるライトコマンドが
入力された際に、効果的に重複部分を削除すること等に
より、ディスク装置のリード・ライト処理を高速化する
ことができる。
【図面の簡単な説明】
【図1】本発明のディスク装置の構成を示す図である。
【図2】従来のディスク装置の構成を示す図である。
【図3】重複ライトデータが存在する場合の従来の処理
例を示す図である。
【図4】重複ライトデータが存在する場合の本発明の処
理例を示す図である。
【図5】重複データを有する連続ライト処理の従来例を
示す図である。
【図6】重複データを有する連続ライト処理の本発明の
処理例を示す図である。
【図7】前コマンドのライトデータの前半部に重複デー
タを有する場合の連続ライト処理の従来例を示す図であ
る。
【図8】前コマンドのライトデータの前半部に重複デー
タを有する場合の連続ライト処理の本発明の処理例を示
す図である。
【図9】ライトバッファ上の連続領域に連続アドレスア
クセスコマンドのライトデータを格納する処理の従来例
を示す図である。
【図10】ライトバッファ上の連続領域に連続アドレス
アクセスコマンドのライトデータを格納する処理の本発
明の処理例を示す図である。
【図11】最大空き領域を越えるサイズのライトデータ
に対する処理の従来例を示す図である。
【図12】最大空き領域を越えるサイズのライトデータ
に対する処理の本発明の処理例を示す図である。
【図13】ライトバッファへのデータ転送中のライトコ
マンドに対してはリオーダリングを行わない従来例を示
す図である。
【図14】データ入力中のコマンドもリオーダリングに
参加する本発明の処理例を示す図である。
【図15】バッファライトポインタのラップラウンド処
理の従来例を示す図である。
【図16】ライトバッファ内に仮想的なセグメントを設
ける本発明の処理例を示す図である。
【符号の説明】
1 ディスク装置 2 コマンドキュー 3 ライトコマンド重複データ処理部 4 コマンド実行部 5 ライトバッファ 6 連続アクセス判定部 7 連続アクセスコマンド格納部 9 ライトバッファ格納部 10 ライトバッファ読み出し部 11 FIFOメモリ 12 ディスク媒体 13 最大領域検索部 17 FIFOメモリ

Claims (10)

    【特許請求の範囲】
  1. 【請求項1】 ホストから入力されるライトコマンドに
    対するデータを蓄積するライトバッファと、 ディスク媒体へのアクセス処理が終了していないコマン
    ドを蓄積しておくコマンドキューと、 ホストへはデータライト完了の応答を返し、コマンドキ
    ューに蓄積されているライトコマンドの間で、現実行コ
    マンドの最終データを格納するディスク上のアドレスか
    ら最短時間で遷移できるディスク媒体上の先頭データ格
    納アドレスを有するコマンドを次に実行するライトコマ
    ンドとして選択するリオーダリング処理部と、 リオーダリング処理部で選択されたコマンドを実行する
    コマンド実行部と、ライトコマンド実行中にリードコマ
    ンドが入力された場合に、コマンドキュー内のライトコ
    マンドとのデータの重複がないことをチェックするライ
    トコマンド重複データ処理部と、 前記ライトコマンド重複処理部によりデータの重複がな
    いことがチェックされたとき、現実行ライトコマンドを
    コマンドキューに戻してリードコマンドを実行させるリ
    ードコマンド先行処理部とをそなえたことを特徴とする
    ディスク装置。
  2. 【請求項2】 コマンドキュー内のライトコマンドある
    いは実行中のライトコマンドとの間でアクセスデータの
    重複のあるリードコマンドが新たに入力された場合に、
    どのライトコマンドに重複しているかを記憶し、コマン
    ドキューの最後に新たなリードコマンドをセットすると
    ともに、リオーダリング処理とコマンド実行処理とを繰
    り返し、重複しているライトコマンドの実行が完了した
    時点でコマンドキューの最後に格納していたリードコマ
    ンドを実行することを特徴とする請求項1に記載のディ
    スク装置。
  3. 【請求項3】 ホストから入力されるライトコマンドに
    対するデータを蓄積するライトバッファと、 ディスク媒体へのアクセス処理が終了していないコマン
    ドを蓄積しておくコマンドキューと、 ホストへはデータライト完了の応答を返し、コマンドキ
    ューに蓄積されているライトコマンドの間で、現実行コ
    マンドの最終データを格納するディスク上のアドレスか
    ら最短時間で遷移できるディスク媒体上の先頭データ格
    納アドレスを有するコマンドを次に実行するライトコマ
    ンドとして選択するリオーダリング処理部と、 リオーダリング処理部で選択されたコマンドを実行する
    コマンド実行部と、新たなライトコマンドが入力された
    とき、コマンドキューに存在する他のライトコマンドと
    アクセスデータの重複があるかどうかをチェックし、 (1)新たなコマンドの一部のアクセスデータがコマン
    ドキュー内の既存ライトコマンドの少なくとも一部のア
    クセスデータと重複していることが検出された場合に
    は、ライトバッファ内の既存ライトコマンドの重複デー
    タ部分に上書きし、 (2)新たなライトコマンドのアクセスデータが既存コ
    マンドに完全に包含される場合には、ライトバッファ内
    の既存コマンドの対応部分を新たなデータで置き換え、
    新たなライトコマンドを削除する、 ライトコマンド重複データ処理部をそなえたことを特徴
    とするディスク装置。
  4. 【請求項4】 ホストから入力されるライトコマンドに
    対するデータを蓄積するライトバッファと、 ディスク媒体へのアクセス処理が終了していないコマン
    ドを蓄積しておくコマンドキューと、 ホストへはデータライト完了の応答を返し、コマンドキ
    ューに蓄積されているライトコマンドの間で、現実行コ
    マンドの最終データを格納するディスク上のアドレスか
    ら最短時間で遷移できるディスク媒体上の先頭データ格
    納アドレスを有するコマンドを次に実行するライトコマ
    ンドとして選択するリオーダリング処理部と、 リオーダリング処理部で選択されたコマンドを実行する
    コマンド実行部と、 時間的に連続して入力されるライトコマンドに対して、
    前コマンドのアクセスデータの先頭アドレスと最終アド
    レスを記憶し、新たなライトコマンドのアクセスデータ
    の先頭アドレスが記憶した両アドレスの間にある場合で
    も連続アクセスであると判断する連続アクセス判定部
    と、 ライトバッファ内の前コマンドのデータを上書きし、ホ
    ストからのライトデータをライトバッファ内の指定の位
    置に格納するライトバッファ格納手段と、 一連の連続ライトコマンドを蓄積しておく連続アクセス
    コマンド格納部をそなえ、 時間的に連続して入力されるライトコマンドにおいて、
    現コマンドのアクセスデータの前半部が前コマンドのア
    クセスデータの後半部と重複した場合、新たなコマンド
    に対するライトデータの格納位置を重複データの先頭位
    置に移動させて連続データをバッファに格納して連続ア
    クセス処理を行うことを特徴とするディスク装置。
  5. 【請求項5】 ホストから入力されるライトコマンドに
    対するデータを蓄積するライトバッファと、 ディスク媒体へのアクセス処理が終了していないコマン
    ドを蓄積しておくコマンドキューと、 ホストへはデータライト完了の応答を返し、コマンドキ
    ューに蓄積されているライトコマンドの間で、現実行コ
    マンドの最終データを格納するディスク上のアドレスか
    ら最短時間で遷移できるディスク媒体上の先頭データ格
    納アドレスを有するコマンドを次に実行するライトコマ
    ンドとして選択するリオーダリング処理部と、 リオーダリング処理部で選択されたコマンドを実行する
    コマンド実行部と、新たなライトコマンドが入力された
    際、コマンドキューに存在する他のライトコマンドとア
    クセスデータの重複があるかどうかをチェックし、新た
    なコマンドの一部のアクセスデータがコマンドキュー内
    に存在するライトコマンドの少なくとも一部のアクセス
    データと重複していることが検出された場合には、ライ
    トバッファ内の既存ライトコマンドの重複データ部分を
    削除するライトコマンド重複データ処理部と、 ライトバッファ内の異なる位置に格納されているデータ
    を連続してディスク媒体に格納するライトバッファ読み
    出し部をそなえ、 コマンドキューに存在する第1のライトコマンドのアク
    セスデータの前半部に部分的に重複するアクセスデータ
    を有する第2のライトコマンドが入力された場合、重複
    アクセスデータを除いた第1のライトコマンドと新たに
    入力された第2のライトコマンドの連続性をライトコマ
    ンド重複データ処理部に記憶しておき、第2のライトコ
    マンドの重複アクセスデータに対して媒体ライトを実行
    した後に、ライトバッファ内の他の領域に格納されてい
    る、ディスク媒体内アドレスの連続している第1のライ
    トコマンドの後半部アクセスデータに対して連続的に媒
    体ライトを実行することを特徴とするディスク装置。
  6. 【請求項6】 ホストから入力されるライトコマンドに
    対するデータを蓄積するライトバッファと、 ディスク媒体へのアクセス処理が終了していないコマン
    ドを蓄積しておくコマンドキューと、 ホストへはデータライト完了の応答を返し、コマンドキ
    ューに蓄積されているライトコマンドの間で、現実行コ
    マンドの最終データを格納するディスク上のアドレスか
    ら最短時間で遷移できるディスク媒体上の先頭データ格
    納アドレスを有するコマンドを次に実行するライトコマ
    ンドとして選択するリオーダリング処理部と、 リオーダリング処理部で選択されたコマンドを実行する
    コマンド実行部と、ライトコマンドに対するホストから
    のデータ転送に際して、次のライトコマンドが、ライト
    バッファへ現在格納動作しているライトコマンドに連続
    したディスク媒体内アドレスをアクセスするコマンドで
    あることを判断する連続アクセス判定部と、 現在のライトコマンドの最終データをライトバッファへ
    格納した際に、前記連続アクセス判定部において連続ア
    ドレスアクセスではないと判定されたとき次のライトコ
    マンドに対するライトバッファ上の格納位置をライトバ
    ッファ内の最大空き領域の先頭位置に移動させる最大空
    き領域検索部をそなえ、次のライトコマンドが現在のラ
    イトコマンドと連続したディスク媒体内アドレスをアク
    セスするコマンドであれば、ライトバッファ転送位置を
    そのままにしてライトバッファの連続領域にデータを格
    納し、ディスク媒体内連続アドレスをアクセスするコマ
    ンドでない場合は、ライトバッファ転送位置をライトバ
    ッファに離散的に存在する空き領域の中で最も広い空き
    領域の先頭位置に変更して、最大空き領域にライトデー
    タを格納することを特徴とするディスク装置。
  7. 【請求項7】 ホストから入力されるライトコマンドに
    対するデータを蓄積するライトバッファと、 ディスク媒体へのアクセス処理が終了していないコマン
    ドを蓄積しておくコマンドキューと、 ホストへはデータライト完了の応答を返し、コマンドキ
    ューに蓄積されているライトコマンドの間で、現実行コ
    マンドの最終データを格納するディスク上のアドレスか
    ら最短時間で遷移できるディスク媒体上の先頭データ格
    納アドレスを有するコマンドを次に実行するライトコマ
    ンドとして選択するリオーダリング処理部と、 リオーダリング処理部で選択されたコマンドを実行する
    コマンド実行部と、 ライトコマンドに対するホストからのデータ転送に際し
    て、現ライトコマンドによるライトバッファ内の1つの
    空き領域への格納動作中にその空き領域が埋め尽くされ
    た場合、残りのデータを別の空き領域へ格納させるライ
    トバッファ格納部と、 現在のライトコマンドのデータが1つの連続した空き領
    域に格納できないために、残りのデータを他の空き領域
    に格納した旨を記憶しておく連続アクセスポインタ記憶
    部と、 ライトバッファ内のデータをディスク媒体へ格納する媒
    体ライトに際して、ライトバッファ内の異なる位置から
    連続したデータをディスク媒体へ格納するライトバッフ
    ァ読み出し部をそなえたことを特徴とするディスク装
    置。
  8. 【請求項8】 ホストから入力されるライトコマンドに
    対するデータを蓄積するライトバッファと、 ディスク媒体へのアクセス処理が終了していないコマン
    ドを蓄積しておくコマンドキューと、 ホストへはデータライト完了の応答を返し、コマンドキ
    ューに蓄積されているライトコマンドの間で、現実行コ
    マンドの最終データを格納するディスク上のアドレスか
    ら最短時間で遷移できるディスク媒体上の先頭データ格
    納アドレスを有するコマンドを次に実行するライトコマ
    ンドとして選択するリオーダリング処理部と、 リオーダリング処理部で選択されたコマンドを実行する
    コマンド実行部と、 バッファライト中のライトコマンドが媒体ライトを開始
    した場合に、他のライトコマンドのデータがライトバッ
    ファに存在しているために、そのデータを飛び越してバ
    ッファライトを実行したときの、その飛び越したライト
    バッファの位置を記憶しておく連続アクセスポインタ部
    と、 ディスク媒体の連続領域に格納すべきデータがライトバ
    ッファ内で異なる位置に分割して格納されている場合、
    その異なる位置にあるデータを読み出して連続してディ
    スク媒体に格納するライトバッファ読み出し部をそな
    え、 バッファライトを実行しているコマンドに対してもリオ
    ーダリング処理を実行することを特徴とするディスク装
    置。
  9. 【請求項9】 ホストから入力されるライトコマンドに
    対するデータを蓄積するライトバッファと、 ディスク媒体へのアクセス処理が終了していないコマン
    ドを蓄積しておくコマンドキューと、 ホストへはデータライト完了の応答を返し、コマンドキ
    ューに蓄積されているライトコマンドの間で、現実行コ
    マンドの最終データを格納するディスク上のアドレスか
    ら最短時間で遷移できるディスク媒体上の先頭データ格
    納アドレスを有するコマンドを次に実行するライトコマ
    ンドとして選択するリオーダリング処理部と、 リオーダリング処理部で選択されたコマンドを実行する
    コマンド実行部と、ライトバッファ入力中のライトコマ
    ンドが媒体ライト動作も開始したとき、ライトバッファ
    中の現在のバッファ格納位置からライトバッファ内を前
    後に検索し、現在の格納位置より前の位置で他のコマン
    ドに対するデータが存在する点、および現在の格納位置
    より後ろの位置で他のコマンドに対するデータが存在す
    る点を抽出し、新たなデータのバッファ格納動作をその
    2点間でラップラウンドして実行するライトバッファ格
    納部と、 ディスク媒体へ格納する場合にも、上記2点間で折り返
    してライトバッファからデータを読み出すライトバッフ
    ァ読み出し部をそなえ、 ライトバッファ入力中のライトコマンドが媒体ライト動
    作も開始したとき、現在バッファライトを実行している
    ライトバッファ内のセグメントを媒体ライトの緩衝領域
    として使用し、他のライトセグメントのデータは保存す
    ることを特徴とするディスク装置。
  10. 【請求項10】 ホストから入力されるライトコマンド
    に対するデータをライトバッファへ蓄積する過程と、 ディスク媒体へのアクセス処理が終了していないコマン
    ドをコマンドキューへ蓄積する過程と、 ホストへはデータライト完了の応答を返し、コマンドキ
    ューに蓄積されているライトコマンドの間で、現実行コ
    マンドの最終データを格納するディスク上のアドレスか
    ら最短時間で遷移できるディスク媒体上の先頭データ格
    納アドレスを有するコマンドを次に実行するライトコマ
    ンドとして選択する過程と、 選択されたコマンドを実行する過程と、 ライトコマンド実行中にリードコマンドが入力された場
    合に、コマンドキュー内のライトコマンドとのデータの
    重複がないことをチェックする過程と、 データの重複がないことがチェックされたとき、現実行
    ライトコマンドをコマンドキューに戻してリードコマン
    ドを先行して実行させる過程とからなることを特徴とす
    るディスク装置のリード・ライト処理方法。
JP2000019450A 2000-01-28 2000-01-28 ディスク装置およびディスク装置のリード・ライト処理方法 Pending JP2001209500A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2000019450A JP2001209500A (ja) 2000-01-28 2000-01-28 ディスク装置およびディスク装置のリード・ライト処理方法
US09/770,608 US6832288B2 (en) 2000-01-28 2001-01-29 Read/write processing device and method for a disk medium
US10/983,643 US7058760B2 (en) 2000-01-28 2004-11-09 Read/write disk drive having read ahead processor which returns a write command, currently being executed, to command queue and executes read command in response to confirmation that there is no overlap

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000019450A JP2001209500A (ja) 2000-01-28 2000-01-28 ディスク装置およびディスク装置のリード・ライト処理方法

Publications (1)

Publication Number Publication Date
JP2001209500A true JP2001209500A (ja) 2001-08-03

Family

ID=18546143

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000019450A Pending JP2001209500A (ja) 2000-01-28 2000-01-28 ディスク装置およびディスク装置のリード・ライト処理方法

Country Status (2)

Country Link
US (2) US6832288B2 (ja)
JP (1) JP2001209500A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7373460B2 (en) 2004-11-12 2008-05-13 Hitachi Global Storage Technologies Netherlands B.V. Media drive and command execution method thereof
JP2010199634A (ja) * 2009-02-20 2010-09-09 Hitachi Industrial Equipment Systems Co Ltd デバイス接続システム、ならびに、そのデバイス接続システムに用いられるマスタ側ブリッジ、スレーブ側ブリッジ、および、通信用ブリッジ
JP2010267345A (ja) * 2009-05-15 2010-11-25 Toshiba Corp ディスクコントローラ、ディスクドライブ装置、及びディスク制御方法
JP2012063875A (ja) * 2010-09-14 2012-03-29 Toshiba Corp データ記憶装置、コマンド制御装置及び電子機器

Families Citing this family (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020013852A1 (en) 2000-03-03 2002-01-31 Craig Janik System for providing content, management, and interactivity for thin client devices
US7468934B1 (en) 1999-07-12 2008-12-23 Ez4Media, Inc. Clock with link to the internet
JP2001209500A (ja) * 2000-01-28 2001-08-03 Fujitsu Ltd ディスク装置およびディスク装置のリード・ライト処理方法
US8219681B1 (en) * 2004-03-26 2012-07-10 Emc Corporation System and method for managing provisioning of storage resources in a network with virtualization of resources in such a network
US20020065927A1 (en) * 2000-09-05 2002-05-30 Janik Craig M. Webpad and method for using the same
US20060031550A1 (en) * 2000-09-05 2006-02-09 Universal Electronics Inc. Webpad adapted to communicate using wide area and local area communication channels
US20020065902A1 (en) * 2000-09-05 2002-05-30 Janik Craig M. Webpad and method for using the same
US6851011B2 (en) * 2001-08-09 2005-02-01 Stmicroelectronics, Inc. Reordering hardware for mass storage command queue
JP3823040B2 (ja) * 2001-10-12 2006-09-20 インターナショナル・ビジネス・マシーンズ・コーポレーション データ記憶装置、データ処理装置、書き込み要求の実行順序を最適化する方法、データ処理方法およびハード・ディスク・ドライブ
JP2003178527A (ja) * 2001-12-12 2003-06-27 Fujitsu Ltd 情報記録装置及びバッファコントローラ並びに情報記憶方法
US7093061B2 (en) * 2004-02-19 2006-08-15 Avago Technologies Fiber Ip (Singapore) Pte. Ltd. FIFO module, deskew circuit and rate matching circuit having the same
US20060037040A1 (en) * 2004-08-12 2006-02-16 Mahalick Scott G Method of transmitting audio and video signals over radio and television channels
US7392333B2 (en) * 2004-11-30 2008-06-24 Xyratex Technology Limited Fibre channel environment supporting serial ATA devices
JP2006172032A (ja) * 2004-12-15 2006-06-29 Hitachi Global Storage Technologies Netherlands Bv データ記憶装置及びそのバッファ制御方法
CN100370435C (zh) * 2004-12-24 2008-02-20 北京中星微电子有限公司 一种硬盘数据存储与读取方法
US9600661B2 (en) * 2005-12-01 2017-03-21 Drive Sentry Limited System and method to secure a computer system by selective control of write access to a data storage medium
US10503418B2 (en) 2005-12-01 2019-12-10 Drive Sentry Limited System and method to secure a computer system by selective control of write access to a data storage medium
JP2008084507A (ja) * 2006-09-29 2008-04-10 Fujitsu Ltd 記憶装置、記憶装置制御方法、制御装置
US7849259B1 (en) * 2007-02-14 2010-12-07 Marvell International Ltd. Disk controller response handler for write commands
US20090089515A1 (en) * 2007-10-02 2009-04-02 Qualcomm Incorporated Memory Controller for Performing Memory Block Initialization and Copy
US8412998B1 (en) * 2008-04-02 2013-04-02 Marvell International Ltd Restart operation with logical blocks in queued commands
US9298393B2 (en) * 2008-06-12 2016-03-29 Seagate Technology Llc Buffer management for increased write speed in large sector data storage device
US9128699B2 (en) * 2008-12-22 2015-09-08 Intel Corporation Method and system for queuing transfers of multiple non-contiguous address ranges with a single command
US8078848B2 (en) 2009-01-09 2011-12-13 Micron Technology, Inc. Memory controller having front end and back end channels for modifying commands
DE102009031923A1 (de) * 2009-07-07 2011-01-13 Sones Gmbh Verfahren zum Verwalten von Datenobjekten
ES2372460B1 (es) * 2010-07-09 2012-11-16 Moehs Ibérica S.L. Nuevo método para la preparación de ezetimiba.
US10877669B1 (en) * 2011-06-30 2020-12-29 Amazon Technologies, Inc. System and method for providing a committed throughput level in a data store
US9116625B2 (en) 2012-05-11 2015-08-25 Micron Technology, Inc. Write command overlap detection
US9412455B2 (en) * 2013-09-11 2016-08-09 Kabushiki Kaisha Toshiba Data write control device and data storage device
US20150178125A1 (en) 2013-12-23 2015-06-25 Oracle International Corporation Reducing synchronization of tasks in latency-tolerant task-parallel systems
US9619157B2 (en) * 2014-04-03 2017-04-11 Analysis Solution Llc High-speed data storage
US20170052736A1 (en) * 2014-05-23 2017-02-23 Hewlett Packard Enterprise Development Lp Read ahead buffer processing
US9600205B1 (en) * 2014-09-22 2017-03-21 Western Digital Technologies, Inc. Power aware power safe write buffer
US10761772B2 (en) * 2014-12-19 2020-09-01 Toshiba Memory Corporation Memory system including a plurality of chips and a selectively-connecting bus
US10423568B2 (en) * 2015-12-21 2019-09-24 Microsemi Solutions (U.S.), Inc. Apparatus and method for transferring data and commands in a memory management environment
CN108509616B (zh) * 2018-03-30 2022-03-08 北京怡生乐居信息服务有限公司 数据处理方法及系统
EP3567485B1 (en) * 2018-05-09 2020-11-25 Nxp B.V. A writing block for a receiver
US10969994B2 (en) * 2018-08-08 2021-04-06 Micron Technology, Inc. Throttle response signals from a memory system
US11074007B2 (en) 2018-08-08 2021-07-27 Micron Technology, Inc. Optimize information requests to a memory system
CN109947365B (zh) * 2019-03-04 2021-08-17 腾讯科技(深圳)有限公司 一种分布式存储数据校验方法及装置
WO2020185679A1 (en) * 2019-03-11 2020-09-17 Replixio Ltd. System and method for optimizing write requests of a write queue
CN110347339B (zh) * 2019-06-28 2020-07-10 华中科技大学 一种针对机械硬盘的可控连续写方法、调度器及存储系统
US11500581B2 (en) 2020-09-25 2022-11-15 Western Digital Technologies, Inc. Efficient TLP fragmentations in extended LBA environment
US11537524B2 (en) * 2020-11-20 2022-12-27 Western Digital Technologies, Inc. Effective PCIe utilization by PCIe TLP coalescing
US11853218B2 (en) 2020-11-20 2023-12-26 Western Digital Technologies, Inc. Semi and cached TLP coalescing

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5729718A (en) * 1993-11-10 1998-03-17 Quantum Corporation System for determining lead time latency as function of head switch, seek, and rotational latencies and utilizing embedded disk drive controller for command queue reordering
US5548795A (en) * 1994-03-28 1996-08-20 Quantum Corporation Method for determining command execution dependencies within command queue reordering process
US5696938A (en) * 1994-08-31 1997-12-09 Vlsi Technology, Inc. Computer system permitting mulitple write buffer read-arounds and method therefor
US5586291A (en) * 1994-12-23 1996-12-17 Emc Corporation Disk controller with volatile and non-volatile cache memories
US5870625A (en) * 1995-12-11 1999-02-09 Industrial Technology Research Institute Non-blocking memory write/read mechanism by combining two pending commands write and read in buffer and executing the combined command in advance of other pending command
US6275782B1 (en) * 1998-05-05 2001-08-14 Advanced Micro Devices, Inc. Non-intrusive performance monitoring
US6219764B1 (en) * 1998-08-03 2001-04-17 Micron Technology, Inc. Memory paging control method
JP2001209500A (ja) * 2000-01-28 2001-08-03 Fujitsu Ltd ディスク装置およびディスク装置のリード・ライト処理方法

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7373460B2 (en) 2004-11-12 2008-05-13 Hitachi Global Storage Technologies Netherlands B.V. Media drive and command execution method thereof
JP2010199634A (ja) * 2009-02-20 2010-09-09 Hitachi Industrial Equipment Systems Co Ltd デバイス接続システム、ならびに、そのデバイス接続システムに用いられるマスタ側ブリッジ、スレーブ側ブリッジ、および、通信用ブリッジ
JP2010267345A (ja) * 2009-05-15 2010-11-25 Toshiba Corp ディスクコントローラ、ディスクドライブ装置、及びディスク制御方法
JP4630933B2 (ja) * 2009-05-15 2011-02-09 株式会社東芝 ディスクコントローラ、ディスクドライブ装置、及びディスク制御方法
US7986489B2 (en) 2009-05-15 2011-07-26 Kabushiki Kaisha Toshiba Disk controller, disk drive device, and disk control method
JP2012063875A (ja) * 2010-09-14 2012-03-29 Toshiba Corp データ記憶装置、コマンド制御装置及び電子機器

Also Published As

Publication number Publication date
US6832288B2 (en) 2004-12-14
US20050066120A1 (en) 2005-03-24
US7058760B2 (en) 2006-06-06
US20010011323A1 (en) 2001-08-02

Similar Documents

Publication Publication Date Title
JP2001209500A (ja) ディスク装置およびディスク装置のリード・ライト処理方法
JP3183993B2 (ja) ディスク制御システム
US5890208A (en) Command executing method for CD-ROM disk drive
US6230239B1 (en) Method of data migration
EP2329361B1 (en) Aggregation of write traffic to a data store
US6842801B2 (en) System and method of implementing a buffer memory and hard disk drive write controller
JP3586887B2 (ja) 情報記録再生装置およびデータキャッシュ方法
JP2004295893A (ja) データ格納及びキャッシングアーキテクチャ
JPH03164840A (ja) ディスクベースコンピュータシステムにおけるデータキャッシングを最適化する方法及びシステム
US10180792B1 (en) Cache management in data storage systems
US8732404B2 (en) Method and apparatus for managing buffer cache to perform page replacement by using reference time information regarding time at which page is referred to
JP3566319B2 (ja) 情報記憶装置
JP2001357607A (ja) データ処理装置
JP2852232B2 (ja) コンピュータ
US7421536B2 (en) Access control method, disk control unit and storage apparatus
JPH0773107A (ja) ディスク・システムの制御方法
JP3130569B2 (ja) キャッシュメモリのストア方式
JP2004102440A (ja) コマンド処理方法及び記憶装置
JP3080521B2 (ja) ディスク装置
JP2554761B2 (ja) データ転送パス制御方式
JP2973474B2 (ja) 光磁気ディスク装置
JPH04311216A (ja) 外部記憶制御装置
JP3083530B2 (ja) キャッシュメモリのデータ管理方法およびキャッシュ制御装置
JP2008146516A (ja) 記録装置のデータ先読み処理方法
JP2003203486A (ja) 半導体記憶装置及びその制御方法

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20060518

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060606

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060803

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20070515