JP2001312373A - データの書き込み方法およびディスクドライブ装置 - Google Patents

データの書き込み方法およびディスクドライブ装置

Info

Publication number
JP2001312373A
JP2001312373A JP2000121853A JP2000121853A JP2001312373A JP 2001312373 A JP2001312373 A JP 2001312373A JP 2000121853 A JP2000121853 A JP 2000121853A JP 2000121853 A JP2000121853 A JP 2000121853A JP 2001312373 A JP2001312373 A JP 2001312373A
Authority
JP
Japan
Prior art keywords
write
data
command
write command
condition
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
JP2000121853A
Other languages
English (en)
Inventor
Hideji Yamada
秀二 山田
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Priority to JP2000121853A priority Critical patent/JP2001312373A/ja
Priority to US09/838,994 priority patent/US6842801B2/en
Publication of JP2001312373A publication Critical patent/JP2001312373A/ja
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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Abstract

(57)【要約】 【課題】 セクタバッファが占有される状態を回避し、
書き込み時の待ち時間を短縮してハードディスクドライ
ブ装置のパフォーマンスを向上する。 【解決手段】 既保持の書き込みコマンドが実行待ち状
態にあるとき、新たな書き込みコマンドを受け取り、既
保持コマンドのLBAとの位置関係を表すヒットステー
タスをチェックし、記録媒体への書き込み順序を再配列
し、再配列された書き込み順序に従って媒体に書き込み
データを記録する処理を行う。このとき、セクタバッフ
ァの空き領域が規定の基準値以下であり、かつヒットス
テータスがNO HITであるときには受け入れたコマ
ンドに対するコマンドコンプリート信号を発行せず、媒
体への記録処理を優先する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、ディスクドライブ
装置におけるデータの書き込みに関し、特にデータの書
き込み待ち時間の低減に適用して有効な技術に関する。
【0002】
【従来の技術】コンピュータの外部記憶装置としてのハ
ードディスクドライブ装置に対してホストコンピュータ
から複数の書き込み要求がなされた場合に、実際にハー
ドディスクドライブ装置にデータの書き込みが実行され
終了するまでには相当の時間が必要である。したがっ
て、ハードディスクドライブ装置は、書き込み要求に関
するコマンドを受け取ったことをホストコンピュータに
通知する一方、実行待ちの書き込みコマンドを保持する
ことになる。
【0003】書き込み対象のデータは、たとえばその先
頭アドレスと後尾アドレスとが論理的に連続したリング
キャッシュメモリに記録される。リングキャッシュメモ
リへのデータの記録は、ホストコンピュータからの書き
込み要求の順に行われる。キャッシュメモリ内の書き込
みデータを実際にハードディスクドライブ装置の媒体に
書き込む順番には二種類の方法がある。第1に、ホスト
からの書き込み要求順、つまりキャッシュに記録された
順にデータを読み出し、媒体に記録する方法である。第
2に、書き込みコマンドに含まれる媒体のセクタ情報を
参照して書き込みの順番を再配列する方法である。
【0004】前記第1の方法では、データが書き込まれ
る媒体のセクタが書き込み順に対してランダムであるた
め、ヘッドのシーク動作に時間がかかり、書き込み速度
が制限される。このため、ヘッドのシーク時間が最短に
なるように書き込みの順番を再配列する第2の方法が多
く用いられる。第2の方法の一例として、RPO(Rota
tional Position Optimization)を用いる方法がある。
【0005】すなわち、実行待ちの書き込みコマンドが
複数存在する場合には、RPOによって順次実行するコ
マンドを選択することが行われている。RPOは実行待
ちのコマンドを実行したときに、磁気ディスク上の目標
となるトラックへのシークを開始してから当該トラック
に到達するまでのシーク時間と、到達後に目標のセクタ
にアクセスを開始するまでのディスク回転待ち時間とを
予想する。そして、このシーク時間および回転待ち時間
の合計が最短となる実行待ちコマンドを、次に実行する
コマンドとして選択する手法である。
【0006】RPOによりコマンドの実行時間を短縮す
ることができるため、ハードディスクドライブ装置のパ
フォーマンスが向上する。しかし、RPOによるコマン
ドの実行時間をより一層短縮してハードディスクドライ
ブ装置のパフォーマンスを向上することが望ましいこと
は言うまでもない。
【0007】パフォーマンスを向上する一つの手法とし
て、本願と同一の出願人にかかる先願(特願2000−
019379)の技術がある。すなわち、書き込み実行
待ち状態にある先行書き込みコマンドの論理的ブロック
アドレスと新たに書き込み要求がなされた後続書き込み
コマンドの論理的ブロックアドレスを比較して、前記先
行書き込みコマンドと前記後続書き込みコマンドとの論
理的ブロックアドレス上の位置関係を判断し、この位置
関係判断により前記先行書き込みコマンドと前記後続書
き込みコマンドとが論理的ブロックアドレス上で離間し
ていると判断された場合には、その離間距離が規定の離
間距離以下であるか否かを判断し、前記離間距離判断に
より前記先行書き込みコマンドと前記後続書き込みコマ
ンドとの論理的ブロックアドレス上の離間距離が規定の
距離以下であると判断された場合には、前記先行書き込
みコマンドに対応する書き込みデータと前記後続書き込
みコマンドに対応する書き込みデータとを連続して前記
記録媒体に書き込むデータ書き込み方法を採用できる。
【0008】このようなデータ書き込み方法では、実際
のデータの書き込み順序は、論理的ブロックアドレス上
の離間距離が短くなるように書き込まれるので、アーム
のシーク動作が最短距離で行われ、書き込みのための待
ち時間を最短にすることができる。これにより、書き込
みの効率化を図り、ハードディスクドライブ装置のパフ
ォーマンスを向上できる。
【0009】
【発明が解決しようとする課題】しかし、前記特願20
00−019379の方法では、以下のような問題があ
る。すなわち、書き込みデータは、書き込み要求の順に
キャッシュメモリに記録されるため、最初に記録された
データが書き込まれるまではキャッシュメモリが開放さ
れない。キャッシュメモリがフルに使用された場合には
書き込みコマンドを受け入れることができず、大きな待
ち時間を発生させることになる。つまり、前記方法では
キャッシュに書き込まれた順序(つまり書き込み要求の
順序)に関係なく、論理的ブロックアドレスが近い順に
キャッシュからデータが読み出されて書き込みが行われ
る。このため、たとえば、媒体に実際に書き込まれたデ
ータが記録されているキャッシュ領域(ページ)の前の
ページのデータが既に媒体に書き込まれているとは限ら
ない。リングキャッシュメモリの利用を前提とする前記
方法では、メモリの先頭アドレスを示すポインタは、そ
のポインタの位置するページが書き込まれてポインタが
次ページに移動するので、ポインタが指し示すアドレス
(先頭アドレス)のデータが媒体に書き込まれるまで
は、先頭アドレス以降のキャッシュメモリは開放されな
いこととなる。このような場合、仮に複数の書き込みコ
マンドのうち、先頭アドレスまたはこれに近いアドレス
のデータが最後まで媒体に書き込まれないときには、最
後までキャッシュメモリは開放されず、外部装置からの
書き込み要求は、最後のデータが書き込まれるまで待っ
て受け入れることになる。つまり、書き込みの待ち時間
が長くなり、パフォーマンスの向上を阻害する場合が生
じる。
【0010】本発明の目的は、キャッシュメモリ(セク
タバッファ)が占有される状態を回避し、書き込み時の
待ち時間を短縮してハードディスクドライブ装置のパフ
ォーマンスを向上することにある。
【0011】
【課題を解決するための手段】本願発明の概要を説明す
れば以下の通りである。すなわち、本願発明のデータの
書き込み方法は、外部装置から書き込み要求がなされた
書き込みデータを記録媒体に書き込むデータの書き込み
方法であって、書き込みコマンドを受け取るステップ
と、前記書き込みコマンドに先行する先行書き込みコマ
ンドに対応する書き込みデータに加えて、前記書き込み
コマンドに対応する書き込みデータを一時記憶領域に記
録するステップと、前記一時記憶領域のフリースペース
が、前記書き込みデータの一単位に相当する記憶スペー
スを越える所定の基準値より大きい第1条件を判断する
ステップとを含み、前記第1条件を満足する場合には、
前記書き込みコマンドに対するコマンドコンプリート信
号を前記外部装置に返信する。
【0012】また、本願発明のディスクドライブ装置
は、ランダムアクセス可能なディスク状記録媒体と、外
部装置から送信された書き込みコマンドを実行するまで
これを保持するコマンド保持手段と、前記書き込みコマ
ンドに対応する書き込みデータを一時記憶する記憶手段
と、前記書き込みデータを前記ディスク状記録媒体に書
き込むよう指示する書き込み指示手段と、前記記憶手段
のフリースペースが、前記書き込みデータの一単位に相
当する記憶スペースを越える所定の基準値より大きい第
1条件を判断する論理を備えた第1判断手段とを有し、
前記第1判断手段により前記第1条件を満足すると判断
された場合には、前記新規書き込みコマンドに対するコ
マンドコンプリート信号を前記外部装置に返信するもの
である。
【0013】このようなデータ書き込み方法またはディ
スクドライブ装置によれば、前記第1条件を判断して、
一時記憶領域(バッファメモリ)に十分な量のフリース
ペースが存在するかを判断できる。これにより、新規書
き込みコマンドに対するコマンドコンプリートを外部装
置に直ちに返送できる。逆に、バッファメモリに十分な
空き領域が存在しない場合には、新規書き込みコマンド
に対するコマンドコンプリートの返送を待機する。外部
装置はコマンドコンプリート信号を受けない限り、次の
書き込みコマンドをディスク装置に送信することがない
ので、ディスク装置では、実際の記録媒体への書き込み
がある程度終了してバッファメモリに空き領域が開放さ
れるまで次の書き込みコマンドを受け取る事がない。こ
の結果、バッファメモリの空き領域が存在しないことに
起因する大きな待ち時間の発生を事前に防止することが
でき、ディスクドライブ装置のパフォーマンスを向上で
きる。なお、本発明における空き領域の基準値は、従来
マルチプルコマンド等で指定される最小限の空き領域を
越えるバッファ空き領域を確保するためのものである。
従来以上に大きなバッファ空き領域を確保することによ
り、書き込み順序の再配列が行われてごく初期に受け入
れた書き込みコマンドの実行が遅れるような状況が発生
しても、バッファメモリの占有に起因する大きな待ち時
間の発生を抑制することを目的にしている。
【0014】なお、前記データ書き込み方法またはディ
スクドライブ装置において、前記先行書き込みコマンド
と前記書き込みコマンドとの各論理的ブロックアドレス
を比較して、前記書き込みコマンドの論理的ブロックア
ドレスの位置が前記先行書き込みコマンドの論理的ブロ
ックアドレスの位置に対して重複または所定の離間距離
以下である第2条件を判断するステップまたは手段をさ
らに含み、前記第1条件または前記第2条件の何れかの
条件を満足する場合には、前記書き込みコマンドに対す
るコマンドコンプリート信号を前記外部装置に返信する
ように構成することができる。
【0015】このような場合、前記第2条件を判断し
て、新たに受け取られる書き込みコマンド(新規書き込
みコマンド)が、既に一時記憶領域(バッファメモリ)
に記録されている書き込みコマンドに関連するコマンド
であるか否かを判断できる。これにより、前記第1条件
の判断と併せて、新規書き込みコマンドが、既に保持さ
れている書き込み待ち状態の書き込みコマンドに関連し
(つまり第2条件を満足し)、あるいは、バッファメモ
リに十分な空き領域が存在する(つまり第1条件を満足
する)場合には、新規書き込みコマンドに対するコマン
ドコンプリートを外部装置に直ちに返送できる。逆に、
新規書き込みコマンドが書き込み待ち状態の既保持書き
込みコマンドに関連せず、かつ、バッファメモリに十分
な空き領域が存在しない場合には、新規書き込みコマン
ドに対するコマンドコンプリートの返送を待機する。コ
マンドコンプリート信号を受けとらない外部装置の動作
は前記と同様である。この結果、バッファメモリの空き
領域が存在しないことに起因する大きな待ち時間の発生
を事前に防止することができ、ディスクドライブ装置の
パフォーマンスを向上できる。特に、新規書き込みコマ
ンドと既保持書き込みコマンドとの関連性がある(ヒッ
トステータスにおいてノーヒットでない)と判断される
ときには、書き込みコマンド間での書き込み順序の再配
列を行うメリットが大きい一方、ヒット率が高いような
場合には初期に受け入れられたコマンドの実行が後に配
置される確率も高くなるので、バッファメモリに余裕を
持たせる意義が大きい。
【0016】なお、前記第2条件を満足する場合には、
先行書き込みコマンド(既保持書き込みコマンド)に対
応する書き込みデータと前記書き込みコマンド(新規書
き込みコマンド)に対応する書き込みデータとを連続し
て前記記録媒体(ディスク状記録媒体)に書き込むこと
ができる。これにより、互いに関連する書き込みコマン
ドで一つのコマンド隗を形成し、このコマンド隗内での
書き込みシーケンスをヘッドアームのシーク時間が最短
になるように最適化し、書き込み時間の短縮を図ってデ
ィスク装置の書き込み性能を向上できる。
【0017】
【発明の実施の形態】以下、本発明を実施の形態に基づ
き説明する。
【0018】図1は、本発明を実施するコンピュータの
外部記憶装置としてのHDD(HardDisk Drive)装置1
0の概略構成を示す図である。
【0019】同図に示されるように、HDD装置10
は、記憶媒体としてデータを記憶する磁気ディスク2
1、磁気ディスク21を回転駆動するスピンドルモータ
22を備えている。磁気ヘッド23は、磁気ディスク2
1へのデータの記録・再生(書き込み・読み出し)を行
う。ヘッドアーム24は、その先端に磁気ヘッド23を
備え、磁気ディスク21の記録面の上空を移動してい
る。また、アクチュエータ25は、ヘッドアーム24を
保持すると共にヘッドアーム24を回転駆動させてい
る。これらによって、磁気ヘッド23は、磁気ディスク
21の略半径方向を移動し、磁気ディスク21の記録面
に対してランダムにアクセスできるように構成されてい
る。
【0020】磁気ディスク21、スピンドルモータ2
2、磁気ヘッド23およびアクチュエータ25から構成
される駆動機構は、制御回路30によって制御されてい
る。この制御回路30は、HDC(Hard Disk Controlle
r)31、ROM32、RAM33およびホストI/F
(インターフェース)34を備えており、これらはバス
35を介して相互に接続されている。
【0021】HDC31は、HDD装置10の内部コン
トローラとして、ROM32に記憶された制御プログラ
ムと制御データに従ってHDD装置10の全体を制御し
ている。このHDC31は、サーボ制御やデータの書き
込み・読み出し時の制御のための演算処理を実行してい
る。これによって、スピンドルモータ22やアクチュエ
ータ25を駆動し、磁気ヘッド23の記録用ヘッドおよ
び再生用ヘッドを用いて書き込み・読み出しを実行して
いる。また、HDC31は、記憶媒体としての磁気ディ
スク21に記録されるデータの一部をRAM33に保持
し、また、磁気ディスク21に格納されているデータの
一部を先読みしてRAM33に保持するための制御を行
っている。
【0022】ROM32には、HDC31により実行さ
れる制御プログラムおよびこの制御プログラムにより使
用される制御データが格納されている。
【0023】RAM33は、磁気ディスク21に記録さ
れる書き込みデータを一時的に記憶すると共に、磁気デ
ィスク21から読み出された読み出しデータを一時的に
記憶するためのキャッシュメモリとしての機能を有す
る。キャッシュメモリは、物理的な開始アドレスと終端
アドレスが論理的に連続して構成され、先頭アドレスが
ポインタにより指示されるリングキャッシュメモリが特
に例示される。キャッシュメモリは、磁気ディスク21
のセクタに対応するページで論理的にフォーマットさ
れ、ページ単位でキャッシュメモリからデータが読み出
されて磁気ディスク21のセクタに書き込まれ、逆に、
磁気ディスク21からセクタ単位で読み出されたデータ
は所定のページに一時記録される。
【0024】また、ホストI/F34は、ホスト40と
の間でデータやコマンドを送受するインターフェイス回
路である。
【0025】図2は、HDC31の主要機能ブロックを
示している。
【0026】HDC31は、MPU(マイクロ・プロセ
ッシング・ユニット)41、MM(メモリ・マネージ
ャ)42、RAM43およびSG44(セグメント・ハ
ンドラ)を備えている。
【0027】RAM43には、図16に示す構成のテー
ブルおよび図17に示す構成のライト・セグメントがテ
ーブル形式で格納されている。なお、図16のテーブル
は、後述する、NO OF HIT(OVERLAY HIT(オーバーレイ
・ヒット)の数)、ヘッド・ベスト・スキップ・レング
ス(HEAD BEST SKIP LENGTH)、ヘッド・ベスト・スキ
ップ・セグメント・ID(HEAD BEST SKIP SEGMENT I
D)、テール・ベスト・スキップ・レングス(TAIL BEST
SKIP LENGTH)、テール・ベスト・スキップ・セグメ
ント・ID(TAIL BEST SKIP SEGMENT ID)を記憶す
る。また、図17のライト・セグメントは、4ワードか
ら構成されており、そのうちの1ワードおよび2ワード
目をLBAが使用し、3ワード目をブロック長(LENGT
H)が、また4ワード目がヒット・ステータス(HIT STA
TUS)が使用する構成となっている。
【0028】SG44は、MM42を通じてRAM43
にアクセスしてRAM43内のテーブルのサーチを行
う。また、SG44は後述するスキップ・レングス(SK
IP LENGTH)を一時的に格納するレジスタを備えてい
る。
【0029】本実施の形態では、ホスト40からすでに
送信された先行書き込みコマンド(既保持書き込みコマ
ンド)と新たにホスト40から送信された後続書き込み
コマンド(新規書き込みコマンド)との、論理的ブロッ
クアドレス(以下、LBA)上の位置関係を判断する。
また、書き込みデータが一時記録されるバッファメモリ
(RAM33)の空き領域(フリースペース)を判断す
る。これらの判断処理を制御する論理手段は、ROM3
2に記録されたプログラムコードによりHDC31内の
MPU41で実現されてもよく、あるいはSG44また
はRAM33内の回路構成によりハード的に実現されて
も良い。なお、LBAに関する情報、つまり当該書き込
みコマンドについての先端および後端のLBAおよびブ
ロック長は書き込みコマンド、書き込みデータとともに
ホスト40から送信される。この書き込みデータは一旦
RAM33に記憶され、また、LBAに関する情報は、
図17に示したライト・セグメントに記憶される。
【0030】本実施の形態では、先行書き込みコマンド
(既保持書き込みコマンド)のことをバッファデータと
称し、後続書き込みコマンド(新規書き込みコマンド)
のことを単に書き込みコマンドと称することとする。ま
た、本実施の形態では、LBA上の位置関係を、単に、
関係、あるいは位置関係と言うことがある。
【0031】図22は、本実施の形態のデータの書き込
み方法を示したフローチャートである。外部装置40か
ら送信された書き込みコマンドを、ホストI/F34を
介して受け取る(S901)。受け取られた書き込みコ
マンドは、HDC31内のMPU41で解読され、LB
Aおよびブロック長に関する情報がRAM43に転送さ
れる。
【0032】次に、書き込みコマンドに関連する書き込
みデータを受け取る(S902)。受け取られた書き込
みデータは、RAM33に記録される。なお、RAM3
3への記録形態は、後に詳述する。
【0033】次に、ヒットステータス(Hit Status)が
チェックされ、書き込みコマンドの実行(つまり記録媒
体21への書き込み実行)の順番に関する再配列が行わ
れる(S903、S904)。 ヒットステータスは、
新規に受け入れられた書き込みコマンド(すなわちS9
01で受け入れられた書き込みコマンド)と既にRAM
43に記録されている書き込み待ち状態の書き込みコマ
ンド(既保持書き込みコマンド)との関係を表す。ヒッ
トステータスのチェックおよびコマンド実行順の再配列
は、第1段階としてコマンドの関係を図3に示すような
8つの分類の何れに該当するかをLBAに基づいて判断
し、第2段階としてその関係を詳細に判断する。
【0034】図3は、バッファデータ(既保持書き込み
コマンド)と新規書き込みコマンドとの関係を示す概念
図である。NO HIT−A、TAIL_SEQ、OV_
TAIL、OV_ALL、OV_COVER、OV_HE
AD、HEAD_SEQおよびNO HIT−Bの8つ
の分類のうちのいずれに該当するかをLBAに基づき判
断する。この判断は、図4〜図6に示すフローに基づき
行われる。
【0035】図3において、バッファデータの書き込み
先の後端のLBAをLLBAと表記する。また、バッフ
ァデータのブロック長をLENGTHと表記している。
さらに、書き込みコマンドの書き込み先の先端のLBA
をSLBAと、後端のLBAをELBAと表記する。さ
らにまた、書き込みコマンドのLBAのブロック長をS
LENという。
【0036】図3中の#1〜#8と記されているものが
書き込みコマンドを示している。なお、#1〜#8は書
き込みコマンドを便宜上区分けするために記したもので
あって、ホスト40から送信された順番を示すものでな
いことを最初に断っておきたい。
【0037】本実施の形態においては、バッファデータ
に対する書き込みコマンドの位置関係を、図3に示すよ
うに8種類に分類する。各々の内容は以下の通りであ
る。 <NO HIT−A>書き込みコマンド#1は、バッフ
ァデータのLLBAより離れた位置に存在している。こ
のようにバッファデータに対して書き込みコマンド#1
が重複部分を有していない場合には、NO HIT−A
と判断する。 <TAIL_SEQ>書き込みコマンド#2のように、
バッファデータの後端に書き込みコマンド#2の先端が
連続的につながっている場合には、TAIL_SEQと
判断する。 <OV_TAIL>書き込みコマンド#3のように、バ
ッファデータの後端側でバッファデータと書き込みコマ
ンド#3が重複している場合には、OV_TAILと判
断する。 <OV_ALL>書き込みコマンド#4は、バッファデ
ータの中に全て包含されている。このような場合にはO
V_ALLと判断する。 <OV_COVER>書き込みコマンド#5は、バッフ
ァデータを全て包含している。このような場合にはOV
_COVERと判断する。 <OV_HEAD>書き込みコマンド#6のように、バ
ッファデータの先端側でバッファデータと書き込みコマ
ンド#6が重複している場合には、OV_HEADと判
断する。 <HEAD_SEQ>書き込みコマンド#7のように、
バッファデータの先端に書き込みコマンド#7の後端が
連続的につながっている場合には、HEAD_SEQと
判断する。 <NO HIT−B>書き込みコマンド#8のように、
バッファデータの先端側において書き込みコマンド#8
がバッファデータと離れている場合には、NO HIT
−Bと判断する。
【0038】以上の判断は、HDC31のSG(セグメ
ント・ハンドラ)44が、書き込みコマンドのLBA情
報と、RAM33内に記憶されているセグメント・テー
ブルのLBA情報を比較することにより実行される。具
体的なフローを図4〜図6に基づき説明する。
【0039】図4〜図6において、ステップS11にお
いて、LLBA<SLBA−1であるか否か判断し、L
LBA<SLBA−1の場合にはステップS12に進
み、そうでない場合にはステップS13に進む。なおス
テップS11における判断は、バッファデータの後端の
LBAと書き込みコマンドの先端のLBAとの位置を比
較したものである。LLBA<SLBA−1であれば、
ステップS12において、バッファデータと書き込みコ
マンドとの間にLBA上の重複がないことから、バッフ
ァデータに対する書き込みコマンドの関係、つまりヒッ
ト・ステータス(HIT STATUS)をNO HIT−Aと判
断する。なお、「A」は、書き込みコマンドがバッファ
データの後方に存在することを示している。
【0040】ステップS13ではLLBA=SLBA−
1であるか否か、つまりバッファデータの後端のLBA
に書き込みコマンドの先端のLBAが連続するものであ
るか否か判断する。連続していればステップS14にお
いてヒット・ステータスをTAIL_SEQと判断す
る。LLBA=SLBA−1でなければステップS15
に進む(以下、図5)。
【0041】ステップS15では、LENGTH<LL
BA−SLBA+1であるか否か判断する。そうであれ
ばステップS19に進み、そうでなければステップS1
6に進む。
【0042】ステップS16ではLLBA<ELBAで
あるか否かを判断する。LLBA<ELBAであればス
テップS17においてヒット・ステータスをOV_TA
ILと判断し、そうでなければステップS18において
ヒット・ステータスをOV_ALLと判断する。
【0043】一方、ステップS19ではLLBA≦EL
BAであるか否か判断し、そうであればステップS20
においてヒット・ステータスをOV_COVERと判断
する。そうでなければ、ステップS21に進む。
【0044】ステップS21では、LENGTH<LL
BA−ELBAであるか否か判断し、そうであればステ
ップS22においてヒット・ステータスをNO HIT
−Bと判断する。そうでなければ、ステップS23に進
む(以下、図6)。
【0045】ステップS23では、LENGTH=LL
BA−ELBAであるか否か判断し、そうであればヒッ
ト・ステータスをHEAD_SEQと判断する。一方、
そうでなければヒット・ステータスをOV_HEADと
判断する。
【0046】以上で第1段階の判断が終了する。
【0047】次に、第2段階の処理を図7〜図14に基
づき説明する。 <NO HIT−A>NO HIT−Aと判断された場
合には、図7に示す判断がなされる。つまり、ステップ
S101においてスキップ・レングス(SKIP LE
NGTH)がスキップ・クライテリア(SKIP CR
ITERIA)より大きいか否か判断する。なお、ここ
でスキップ・レングスとは、LLBA−SLBA+1で
定義される値であり、バッファデータの後端と書き込み
コマンドの先端との距離を示している。
【0048】スキップ・レングスがスキップ・クライテ
リアより大きい場合には、ステップS102において、
書き込みコマンドはバッファデータに対してNO HI
Tであると判断する。つまり、書き込みコマンドの先端
とバッファデータの後端との離間距離が規定の離間距離
であるスキップ・クライテリアを超えて離れている場合
にはNO HITと判断する。NO HITと判断され
ると、当該バッファデータと当該書き込みコマンドとの
間に関連性がないものとみなして、データの書き込み実
行時に連続して書き込む等の処置を行わない。
【0049】スキップ・レングスがスキップ・クライテ
リア以下の場合には、書き込みコマンドは、ステップS
103において、バッファデータに対してテール・ヒッ
ト(TAIL HIT)であると判断する。つまり、当
該バッファデータと当該書き込みコマンドとは離間して
いるものの、その距離が規定値以下であるために連続性
のあるデータに関するものとみなしてデータの書き込み
実行時に連続して書き込みを実行する対象とする。した
がって、RPOによるパフォーマンス向上に有効であ
る。この点は、NO HIT−Bと判断された場合につ
いても同様である。
【0050】テール・ヒットと判断した場合には、今ま
でのテール・ベスト・スキップ・レングス(TAIL
BEST SKIP LENGTH)が0未満であるか
否かステップS104にて判断する。テール・ベスト・
スキップ・レングスが0未満の場合には処理が終了す
る。そうでなければステップS105において、今回の
スキップ・レングスがテール・ベスト・スキップ・レン
グスより小さいか否か判断する。小さい場合には、ステ
ップS106において、今回のスキップ・レングスをテ
ール・ベスト・スキップ・レングスとし、テール・ベス
ト・スキップ・レングスおよびテール・ベスト・スキッ
プ・セグメント・IDを更新する。そうでなければ、処
理を終了する。
【0051】ここで、テール・ベスト・スキップ・レン
グスについて、図20を参照しつつ説明する。図20
は、書き込みコマンドが2つのバッファデータのいずれ
に対してもテール・ヒットとなっているものとする。と
ころが、スキップ・レングスは、セグメントIDが2の
バッファデータのほうがセグメントIDが1のバッファ
データデータよりも小さいことがわかる。この場合、当
該書き込みコマンドのテール・ベスト・スキップ・レン
グスはセグメントIDが2のバッファデータとのスキッ
プ・レングスとなり、テール・スキップ・セグメント・
IDは2になる。そして、テール・ベスト・スキップ・
レングスおよびテール・スキップ・セグメント・ID
は、図16に示すテーブルに記憶される。 <TAIL_SEQ>TAIL_SEQと判断された場合
には、図8に示す処理がなされる。
【0052】TAIL_SEQの場合には、ステップS
201にて、ヒット・ステータスをテール・ヒットと判
断する。次いで、今までのテール・ベスト・スキップ・
レングスが0未満であるか否か、ステップS202にて
判断する。テール・ベスト・スキップ・レングスが0未
満の場合には処理を終了する。そうでなければステップ
S203において、スキップ・レングスがテール・ベス
ト・スキップ・レングスより小さいか否かを判断する。
小さい場合には、ステップS204において、テール・
ベスト・スキップ・レングスおよびテール・ベスト・ス
キップ・セグメントIDを更新する。 <OV_TAIL>OV_TAILと判断された場合に
は、図9に示す処理がなされる。
【0053】まず、ステップS301にてヒット・ステ
ータスをテール・ヒットと判断し、ついで、ステップS
302にてスキップ・レングスがテール・ベスト・スキ
ップ・レングスより小さいか否かを判断する。小さい場
合には、ステップS303において、テール・ベスト・
スキップ・レングスおよびテール・ベスト・スキップ・
セグメントIDを更新する。そうでない場合には処理を
終了する。 <OV_ALL>OV_TALLと判断された場合には、
図10および図11に示す処理がなされる。
【0054】まず、ステップS401においてLLBA
とELBAとが一致するか否か判断する。一致する場合
にはステップS402に進み、一致しない場合には図1
1のステップS408に進む。
【0055】ステップS402では、SLBA=LLB
A−LENGTH+1であるか否かを判断する。そうで
あればステップS403へ、そうでなければステップS
405へ進む。
【0056】ステップS404では、ステップS402
でSLBAとバッファデータの先端LBAとが一致する
と判断した場合に、ヒット・ステータスをカバー・オー
バーレイと判断し、次いでステップS404においてオ
ーバーレイ・ヒット(OVERLAY HIT)のカウントを1増
やす。
【0057】ステップS405では、ヒット・ステータ
スをテール・ヒットと判断する。次いでステップS40
6にてスキップ・レングスがテール・ベスト・スキップ
・レングスより小さいか否かを判断する。小さい場合に
は、ステップS407において、テール・ベスト・スキ
ップ・レングスおよびテール・ベスト・スキップ・セグ
メントIDを更新する。そうでない場合には処理を終了
する。
【0058】ステップS408ではSLBA=LLBA
−LENGTH+1であるか否か判断する。そうであれ
ばステップS409へ、そうでなければステップS41
2へ進む。
【0059】ステップS409ではヒット・ステータス
をヘッド・ヒット(HEAD HIT)と判断する。続
いて、ステップS410において、スキップ・レングス
(ここでは、SLEN)がヘッド・ベスト・スキップ・
レングス(HEAD BEST SKIP LENGT
H)より小さいか否かを判断する。そうであればステッ
プS411へ進み、また、そうでなければ処理を終了す
る。
【0060】ステップS411ではヘッド・ベスト・ス
キップ・レングスおよびヘッド・ベスト・スキップ・セ
グメントID(HEAD BEST SKIP SEG
MENT ID)を更新し、その後処理を終了する。
【0061】S412ではヒット・ステータスをオール
・オーバーレイ(ALL OVERLAY)と判断し、ついでステ
ップS413にてオーバーレイ・ヒットのカウントを1
増やして処理を終了する。なお、オーバーレイ・ヒット
のカウントは、図16に示すテーブルのNO OF H
ITのセルにて増やされる。 <OV_COVER>OV_COVERと判断された場合
には、図12に示すようにステップS501においてヒ
ット・ステータスをオール・オーバーレイと判断し、次
いでステップS502にてオーバーレイ・ヒットのカウ
ントを1増やして処理を終了する。 <OV_HEAD>OV_HEADと判断された場合に
は、図13に示す処理がなされる。
【0062】OV_HEADの場合には、ステップS6
01でヒット・ステータスをヘッド・ヒットと判断す
る。次いで、ステップS602において、スキップ・レ
ングス(ここの判断では、(LLBA−LENGTH+
1)−ELBA)がヘッド・ベスト・スキップ・レング
スより小さいか否か判断する。小さい場合には、ステッ
プS603において、ヘッド・ベスト・スキップ・レン
グスおよびヘッド・ベスト・スキップ・セグメントID
を更新する。そうでなければ処理を終了する。 <HEAD_SEQ>HEAD_SEQと判断された場合
には、図14に示す処理がなされる。
【0063】HEAD_SEQの場合には、ステップS
701においてヒット・ステータスをヘッド・ヒットと
判断する。次いでステップS702において今までのベ
スト・ヒット・スキップ・レングスが負か否かを判断す
る。負の場合には処理を終了する。負でない場合には、
ステップS703に進む。
【0064】ステップS703では、スキップ・レング
スがヘッド・ベスト・スキップ・レングスより小さいか
否かを判断する。なお、ここのスキップ・レングスはゼ
ロである。スキップ・レングスがヘッド・ベスト・スキ
ップ・レングスより小さい場合には、ステップS704
においてヘッド・ベスト・スキップ・レングスおよびヘ
ッド・ベスト・スキップ・セグメント・IDを更新して
処理を終了する。 <NO HIT−B>NO HIT−Bと判断された場
合には、図15に示す処理がなされる。つまり、ステッ
プS801において、(LLBA−LENGTH+1)
−ELBAがスキップ・クライテリアより大きいか否か
判断する。
【0065】スキップ・レングスがスキップ・クライテ
リアより大きい場合には、ステップS802において、
ヒット・ステータスをノー・ヒット(NO HIT)と
判断する。
【0066】スキップ・レングスがスキップ・クライテ
リア以下の場合には、ステップS803において、ヒッ
ト・ステータスがヘッド・ヒットであると判断し、ステ
ップS804に進む。
【0067】ステップS804ではスキップ・レングス
がヘッド・ベスト・スキップ・レングスより小さいか否
かを判断する。なお、ここのスキップ・レングスは、
(LLBA−LENGTH+1)−ELBAで定義され
る。ヘッド・ベスト・スキップ・レングスがスキップ・
レングス以下である場合には処理を終了する。スキップ
・レングスがヘッド・ベスト・スキップ・レングスより
小さい場合には、ステップS805において、ヘッド・
ベスト・スキップ・レングスおよびヘッド・ベスト・ス
キップ・セグメントIDを更新して処理を終了する。
【0068】以上説明したように、新規書き込みコマン
ドが受け入れられた時点でヒットステータスが検査さ
れ、ヒットステータスに応じて書き込みコマンドの再配
列が行われる。なお、前記フローでNO HITと判断
された場合には、新規書き込みコマンドと既に保持され
ている書き込み待ちのコマンドとの間に関係がないとし
てコマンドの再配列は行われず、それ以外のステータス
では新規コマンドと既存のコマンドとの間に何らかの関
係があると判断されている。NO HIT−A、TAI
L_SEQ、OV_TAIL、OV_ALL、OV_COV
ER、OV_HEAD、HEAD_SEQおよびNO H
IT−Bと図7〜図15により判断された各ヒット・ス
テータスとの関係をバッファデータとの位置関係を含め
て図21に示しておく。
【0069】以上の判断はホスト40から書き込み要求
がなされる度にセグメント・ハンドラ(SG)がメモリ
・マネージャ(MM)を通じてセグメント・テーブルが
格納されているRAM43にアクセスすることにより実
行される。セグメント・テーブルを構成するライト・セ
グメントは、図16に示すように4ワードから構成され
る。そのうちの1ワードおよび2ワード目をLBAが使
用し、3ワード目をブロック長(LENGTH)が、ま
た4ワード目がヒット・ステータスが使用する構成とな
っている。
【0070】この書き込みセグメントに格納されたヒッ
ト・ステータスをRPO(Rotational Position Optimi
zation)に反映させ、実際の書き込みプロセスの実行を
指示する(S905)。実際の書き込みプロセスはS9
01〜S907のフローとは別のプロセスで行う(S9
10)。
【0071】S910のプロセスを以下に説明する。R
POは、まず実行待ちのコマンドを実行したときに、磁
気ディスク21上の目標となるトラックへのシークを開
始してから当該トラックに到達するまでのシーク時間
と、到達後に目標のセクタにアクセスを開始するまでの
ディスク回転待ち時間とを予想する。そして、このシー
ク時間および回転待ち時間の合計が最短となる実行待ち
コマンドを、次に実行するコマンドとして選択する手法
である。
【0072】本実施の形態においては、前述のようにラ
イト・セグメントに格納されたヒット・ステータスを参
照することにより、複数の書き込みコマンドのうち、一
連のデータとみなせる書き込みコマンドを関連づけるこ
とができる。つまり、相互にNO−HIT以外の場合に
は、一連のコマンドの塊として連続的に書き込み実行の
対象とすることができる。
【0073】本実施の形態では前述のように書き込みセ
グメントを64セット用意しているため、その中で以上
のようなコマンド塊が複数存在する場合もある。このよ
うにコマンド塊が複数存在した場合には、従来のRPO
にしたがい、シーク時間および回転待ち時間の合計が最
短となるコマンド塊から先に書き込みの実行を行う。も
ちろん、コマンド塊を構成しない書き込みコマンドが存
在することもあるから、そのような書き込みコマンド同
士、また、コマンド群との間では従来のRPOにしたが
って、書き込みコマンドの実行順位が決定される。
【0074】以上の処理の概念について、図18を用い
て説明する。
【0075】図18(a)は、ホスト40からの書き込
み要求のあった複数のコマンド〜を示している。各
コマンドに付された番号〜は、ホストから送信され
た書き込みの要求順位を示す。各コマンドに対応する書
き込みデータは、書き込み要求順にキャッシュメモリ
(バッファメモリ)に記録されるので、番号〜は、
キャッシュメモリのアドレス(ページ)にも対応する。
また、横軸はLBAを示している。
【0076】図18(a)において、前述のLBAの比
較に基づき、コマンドとコマンド、また、コマンド
とコマンドは各々は一連のデータ群を構成している
と判断する。しかし、コマンド、コマンドは、他の
コマンドとの関連がなく、ノー・ヒットと判断されるも
のである。したがって、コマンド〜は、図18
(b)に示すようにA〜Dの6つのデータ群に置き換え
ることができる。そして、書き込みを行う際の順番を、
ホスト40から送信された順番ではなく、A,B,Cお
よびDの順番となるように並び替える。
【0077】なお、オーバーレイ・ヒットとなったデー
タ群の書き込み実行を行う際の処理について図19に基
づき説明する。
【0078】図19に示すように、先行する書き込み要
求のコマンド(バッファデータ)のLBAが1,2およ
び3、後続の書き込み要求のコマンド(書き込みコマン
ド)のLBAが0および1とする。バッファデータに対
する書き込みコマンドのヒット・ステータスは、オーバ
ーレイ・ヒットであり、LBA1のブロックが重複して
いる。RPOに単純に従って書き込みコマンドの書き込
みを実行した後にバッファデータの書き込みを実行した
とすると、LBA1のブロックについては、書き込みコ
マンドのデータの上にバッファデータのデータが上書き
されることになる。バッファデータのデータは書き込み
コマンドのデータより古いから、前記上書きにより古い
データが新しいデータの上に書き込まれることになる。
【0079】そこで本実施の形態において、図19の右
側のように、バッファデータのうち重複するブロックを
消去(DISCARD)することができる。その後に、
バッファデータの書き込み実行し、ついで書き込みコマ
ンドの書き込みを実行することができる。そうすること
により、重複する部分についても新しいデータが書き込
まれることになる。
【0080】以上のようにして書き込みコマンドが順次
実行され、RAM33に記録された書き込みデータが記
録媒体21に記録される(S910)。従来技術では、
キャッシュあるいはバッファ領域(RAM33)に空き
領域がある限り、新規書き込みコマンドに対するコマン
ドコンプリートが書き込みデータをバッファ領域(RA
M33)に記録した段階で発行されるため、次の書き込
みコマンドが次々に送られてくる。このようにして送付
された書き込みコマンドは、実際の媒体への書き込みプ
ロセス(S910)と並行して前記の通り処理される。
【0081】一方、記録媒体21にデータが書き込まれ
た時点で、RAM33上の書き込みデータは不要になり
開放されるべきである。しかし、RAM33にリングキ
ャッシュを用いている場合には、バッファ領域は記録媒
体21への書き込みにより順次開放されるわけではな
い。
【0082】たとえばキャッシュの開始アドレスポイン
タが図18(a)においてデータの先頭にあると仮定
し、たとえば図18(b)において、データ群A、B、
C、Dの順にデータが書き込まれるとする。データ群A
のデータが記録媒体21に書き込まれても、データ
が記録されていたキャッシュ領域は開放されず、キャッ
シュの開始アドレスポインタはデータの先頭であるこ
とに変化はない。データ群Bのデータが記録媒体21
に書き込まれた時点でデータは不要になるのでキャッ
シュの開始アドレスポインタはデータの先頭に移動す
る。ここで初めてキャッシュ領域はデータに相当する
分だけ開放されたことになる。さらに書き込みが進行し
てデータが書き込まれても、キャッシュ開始アドレス
ポインタの位置はデータの先頭であることに変化はな
い。次のデータ群Cのデータが書き込まれても同様で
ある。書き込みがデータ群Dのデータにまで進行して
初めて開始アドレスポインタはデータの先頭に移動す
る。これにより既に記録媒体21に書き込まれて不要に
なったデータに相当する領域が開放されることに
なる。つまり、初期に受け入れられた書き込みコマンド
がPROによる再配列で最後の方に配置された場合に
は、この初期に受け入れられた書き込みコマンドに対応
する書き込みデータが実際に記録媒体21に書き込まれ
ない限り、キャッシュ領域が開放されない。データ群を
構成するデータについても同様な状況が生じる。
【0083】バッファ領域に十分な余裕が常に存在する
場合には特に問題を生じないが、新たな書き込みコマン
ドの受け入れによる書き込みデータの記録が不可能な程
度にまでバッファ領域が占有されていると、データの上
書き防止のため、新規コマンドを受け入れることはでき
ない。この場合、新規コマンドの受け入れは、初期に受
け入れられた書き込みコマンドに対応する書き込みデー
タが実際に記録媒体21に書き込まれてキャッシュ領域
が開放されるまでコマンドコンプリートの発行を待たな
ければならない。
【0084】本実施の形態では、このような問題点の解
決のために、セクタバッファの空き領域(フリースペー
ス)をモニタし、所定の基準値よりも小さな空き領域に
なった場合には、受け入れた書き込みコマンドに対する
コマンドコンプリート信号の発行を保留して記録媒体2
1への実際の書き込み(S910)を優先させる。ただ
し、ヒットステータスがNO HIT以外の場合(つま
り受け取った書き込みコマンドが既保持のコマンドと関
連があると判断した場合)には、バッファの空き領域に
かかわらずコマンドコンプリートを発行して次のコマン
ドの受け取りを可能にする。図22のフローチャートで
説明すれば以下の通りである。前記した実際の書き込み
プロセスを指示(S905)した後、ヒットステータス
がNOHITでない条件(第2条件)と、バッファのフ
リースペースが基準値を超える条件(第1条件)とを判
断し(S906)、第1条件または第2条件のいずれか
を満足している場合には、S901で受け入れたコマン
ドに対するコマンドコンプリート信号を発行し(S90
7)、それ以外の場合はS905に戻る。
【0085】このような判断ステップを含むことによ
り、バッファ領域に所定の空き領域が確保されるまでコ
マンドコンプリート信号の発行が保留されることにな
り、バッファ領域には常にある程度の空き領域が確保さ
れることになり、バッファ領域(RAM33)の占有に
よるパフォーマンスの低下を防止することができる。
【0086】本実施の形態では、単に基準値以上の空き
領域をバッファに確保しようとするだけでなく、受け入
れたコマンドが既保持のコマンドと関連する場合にはバ
ッファの空き領域が基準値以下でもコマンドコンプリー
トを発行する。これは、現に受け入れているコマンド
(新規コマンド)が既存のコマンドに関連している場合
(つまりNO HIT以外の場合)には、前記したヒッ
トステータスごとの処理を行うことによりパフォーマン
ス向上のメリットが生かせる期待値が大きいことによ
る。一方NO HITの場合には前記処理によるパフォ
ーマンスの向上は期待できず、逆にその後のコマンドの
受け入れにより、RPOによる処理順序の再配列の結
果、処理順序が後の方に回されれば、前記した問題を生
じる可能性が高くなる。そこで、新規コマンドがNO
HITであり、かつバッファ空き領域が基準値以下の時
には、実際の書き込みプロセス(S910)を優先させ
て、バッファの空き領域を確保するようにしたものであ
る。
【0087】現コマンドに対するコマンドコンプリート
が発行された後には、外部装置40は、次の書き込みコ
マンドを送信でき、上記と同様に処理されることとな
る。
【0088】本実施の形態によれば、上記した通り、バ
ッファメモリの空き領域を常にある程度確保することが
できるため、バッファ領域の占有によるパフォーマンス
の低下を防止できる。
【0089】図23および図24はバッファ空き領域の
基準値を変化させたときのベンチマークテストのスコア
を相対的に示したグラフであり、図23はハイエンドユ
ースを目的としたベンチマークの結果であり、図24は
ビジネスユースを目的としたベンチマークの結果であ
る。ベンチマークテストには、Ziff Davis社製の「WinB
ench 99(商標)」内のディスクアクティビティテスト
「WinMark 99(商標)」を用いている。WinMark 99 に
おけるハイエンドスイート(High-End Suite)では、た
とえばアドビ社製「Photoshop(商標)4.01」等の画像あ
るいは音響データ等大量のデータを扱うアプリケーショ
ンソフトを利用した時のパフォーマンスが測定でき、ビ
ジネススイート(Business Suite)では、たとえばロー
タス社製「Word Pro(商標)97」等の一般的なアプリケ
ーションソフトを利用した時のパフォーマンスが測定で
きる。このテストに用いたディスク装置のバッファサイ
ズは300(16進数)ページ(10進数では768ペ
ージ)であり、記録媒体サイズは2.5インチ、媒体枚
数1枚、記録容量10GB、スピンドル回転数4200
rpm、RAMサイズ4MBである。ディスク装置が取
り付けられているシステムは一般的なノートブック型パ
ーソナルコンピュータ(CPU:Pentium−II
(商標)、クロック周波数366MHz、RAMサイズ
128MB)である。
【0090】図23に示すように、基準値が0ページの
場合(従来技術に相当する)を1として規格化すると、
基準値が約450(10進数)ページ(つまり450ペ
ージのフリースペースを確保する)になるまで基準値を
増加していくと順次パフォーマンスが向上し、その後基
準値を増加するに従いパフォーマンスが低下する傾向に
ある。つまり基準値が約450(10進数)ページの点
に極大値を持つ。パフォーマンスは、従来技術相当の条
件(基準値0)に比較して25%の向上が見られる。
【0091】一方、図24に示すように、ビジネススイ
ートの場合には、基準値が450までは従来技術相当の
条件(基準値0)に比較して大きな変化は見られない
が、基準値450を超える頃からパフォーマンスが急激
に低下する。
【0092】結果として、本実施の形態を用い、その基
準値を450程度に設定すれば、ハイエンドにおいて2
5%程度のパフォーマンスの向上が得られ、同条件での
ビジネスユースでも性能の低下は見られない。すなわ
ち、総合的なディスク装置の性能の向上が図れる。
【0093】以上実施の形態に基づき本願発明を説明し
たが、本願発明は前記実施の形態に限定されずその要旨
を変更しない範囲で種々変更可能であることは勿論であ
る。たとえば、HDC31内のRAM43の機能をRA
M33に持たせてもよく、逆にHDC31内のRAM4
3の容量を増加してRAM33の機能をRAM43に持
たせてもよい。この場合RAM33は必要なくなる。ま
た、ヒットステータスごとの処理において、各書き込み
コマンド(セグメント)に書き込み順序を反映したチェ
イン情報を関連付け、このチェイン情報に従って記録媒
体21への書き込み処理を行っても良い。
【0094】
【発明の効果】以上説明のように、本発明によれば、キ
ャッシュメモリ(セクタバッファ)が占有される状態を
回避し、書き込み時の待ち時間を短縮してハードディス
クドライブ装置のパフォーマンスを向上することができ
る。また、実行待ちの書き込みコマンドがある場合の書
き込みの効率化を図り、ハードディスクドライブ装置の
パフォーマンスを向上することができる。
【図面の簡単な説明】
【図1】 本実施の形態にかかるHDD(Hard Disk Dr
ive)装置の概略構成を示す図である。
【図2】 本実施の形態にかかるHDDのHDC(Hard
Disk Controller)の主要構成を示す図である。
【図3】 バッファデータと書き込みコマンドとの関係
を説明するための図である。
【図4】 バッファデータと書き込みコマンドとの関係
を判断するためのフローチャートある。
【図5】 バッファデータと書き込みコマンドとの関係
を判断するためのフローチャートである。
【図6】 バッファデータと書き込みコマンドとの関係
を判断するためのフローチャートである。
【図7】 バッファデータと書き込みコマンドとの関係
がNO HIT−Aの場合のその後の処理を示すフロー
チャートである。
【図8】 バッファデータと書き込みコマンドとの関係
がTAIL_SEQの場合のその後の処理を示すフロー
チャートである。
【図9】 バッファデータと書き込みコマンドとの関係
がOV_TAILの場合のその後の処理を示すフローチ
ャートである。
【図10】 バッファデータと書き込みコマンドとの関
係がOV_ALLの場合のその後の処理を示すフローチ
ャートである。
【図11】 バッファデータと書き込みコマンドとの関
係がOV_ALLの場合のその後の処理を示すフローチ
ャートである。
【図12】 バッファデータと書き込みコマンドとの関
係がOV_COVERの場合のその後の処理を示すフロ
ーチャートである。
【図13】 バッファデータと書き込みコマンドとの関
係がOV_HEADの場合のその後の処理を示すフロー
チャートである。
【図14】 バッファデータと書き込みコマンドとの関
係がHEAD_SEQの場合のその後の処理を示すフロ
ーチャートである。
【図15】 バッファデータと書き込みコマンドとの関
係がNO HIT−Bの場合のその後の処理を示すフロ
ーチャートである。
【図16】 RAM43に格納されるテーブルを示す図
である。
【図17】 ライト・セグメントの構成を示す図であ
る。
【図18】 本実施形態によるデータの書き込みを説明
するための図である。
【図19】 本実施形態によるオーバーレイ・ヒットの
時のデータの書き込みを説明するための図である。
【図20】 ベスト・テール・スキップ・レングスを説
明するための図である。
【図21】 図7〜図15により判断された各ヒット・
ステータスとの関係をバッフアデータとの位置関係を含
めて示した図である。
【図22】 本実施の形態のデータの書き込み方法を示
したフローチャートである。
【図23】 バッファ空き領域の基準値を変化させたと
きのハイエンドスイートベンチマークテストのスコアを
相対的に示したグラフである。
【図24】 バッファ空き領域の基準値を変化させたと
きのビジネススイートベンチマークテストのスコアを相
対的に示したグラフである。
【符号の説明】
10…HDD(Hard Disk Drive)装置、21…磁気デ
ィスク、22…スピンドルモータ、23…磁気ヘッド、
24…ヘッドアーム、25…アクチュエータ、30…制
御回路、31…HDC(Hard Disk Controller)、32…
ROM、33…RAM、34…ホストI/F(インター
フェース)、35…バス、40…ホスト、41…MPU
(マイクロ・プロセッシング・ユニット)、42…MM
(メモリ・マネージャ)、43…RAM、44…SG
(セグメント・ハンドラ)。
───────────────────────────────────────────────────── フロントページの続き Fターム(参考) 5B065 BA01 CC08 CE12 5D044 AB01 BC01 CC04 DE03 EF03 GK11 HL01

Claims (10)

    【特許請求の範囲】
  1. 【請求項1】 外部装置から書き込み要求がなされた書
    き込みデータを記録媒体に書き込むデータの書き込み方
    法であって、 書き込みコマンドを受け取るステップと、 前記書き込みコマンドに先行する先行書き込みコマンド
    に対応する書き込みデータに加えて、前記書き込みコマ
    ンドに対応する書き込みデータを一時記憶領域に記録す
    るステップと、 前記一時記憶領域のフリースペースが、前記書き込みデ
    ータの一単位に相当する記憶スペースを越える所定の基
    準値より大きい第1条件を判断するステップと、を含
    み、 前記第1条件を満足する場合には、前記書き込みコマン
    ドに対するコマンドコンプリート信号を前記外部装置に
    返信するデータの書き込み方法。
  2. 【請求項2】 前記一時記憶領域に記録されている書き
    込みデータを前記記録媒体に書き込む指示を発するデー
    タ書き込み指示ステップをさらに含み、 前記データ書き込み指示ステップの後に前記第1条件を
    判断して、前記第1条件を満足しない場合には、前記デ
    ータ書き込み指示ステップに戻る請求項1記載のデータ
    の書き込み方法。
  3. 【請求項3】 前記先行書き込みコマンドと前記書き込
    みコマンドとの各論理的ブロックアドレスを比較して、
    前記書き込みコマンドの論理的ブロックアドレスの位置
    が前記先行書き込みコマンドの論理的ブロックアドレス
    の位置に対して重複または所定の離間距離以下である第
    2条件を判断するステップをさらに含み、 前記第1条件または前記第2条件の何れかの条件を満足
    する場合には、前記書き込みコマンドに対するコマンド
    コンプリート信号を前記外部装置に返信する請求項1記
    載のデータの書き込み方法。
  4. 【請求項4】 前記一時記憶領域に記録されている書き
    込みデータを前記記録媒体に書き込む指示を発するデー
    タ書き込み指示ステップをさらに含み、 前記データ書き込み指示ステップの後に前記第1条件を
    判断して、前記第1条件および前記第2条件の何れの条
    件をも満足しない場合には、前記データ書き込み指示ス
    テップに戻る請求項3記載のデータの書き込み方法。
  5. 【請求項5】 前記第2条件を満足する場合には、前記
    書き込みデータを前記記録媒体に書き込むステップにお
    いて、前記先行書き込みコマンドに対応する書き込みデ
    ータと前記書き込みコマンドに対応する書き込みデータ
    とを連続して前記記録媒体に書き込む請求項4記載のデ
    ータの書き込み方法。
  6. 【請求項6】 ランダムアクセス可能なディスク状記録
    媒体と、 外部装置から送信された書き込みコマンドを実行するま
    でこれを保持するコマンド保持手段と、 前記書き込みコマンドに対応する書き込みデータを一時
    記憶する記憶手段と、 前記書き込みデータを前記ディスク状記録媒体に書き込
    むよう指示する書き込み指示手段と、 前記記憶手段のフリースペースが、前記書き込みデータ
    の一単位に相当する記憶スペースを越える所定の基準値
    より大きい第1条件を判断する論理を備えた第1判断手
    段と、を有し、 前記第1判断手段により前記第1条件を満足すると判断
    された場合には、前記新規書き込みコマンドに対するコ
    マンドコンプリート信号を前記外部装置に返信するディ
    スクドライブ装置。
  7. 【請求項7】 前記第1判断手段により前記第1条件を
    満足しないと判断された場合には、前記第1条件が満足
    されるようになるまで前記コマンドコンプリート信号の
    送信を待機する請求項6記載のディスクドライブ装置。
  8. 【請求項8】 前記コマンド保持手段に保持された既保
    持書き込みコマンドと前記外部装置から新たに送信され
    た新規書き込みコマンドとの間で論理的ブロックアドレ
    スの重複部分がある条件、または、前記既保持書き込み
    コマンドと前記新規書き込みコマンドとが論理的ブロッ
    クアドレス上で規定の離間距離以下である条件、の何れ
    かの条件を満足する第2条件を判断する論理を備えた第
    2判断手段をさらに有し、 前記第1判断手段により前記第1条件を満足すると判断
    された場合、または、前記第2判断手段により前記第2
    条件を満足すると判断された場合には、前記新規書き込
    みコマンドに対するコマンドコンプリート信号を前記外
    部装置に返信する請求項6記載のディスクドライブ装
    置。
  9. 【請求項9】 前記第1判断手段により前記第1条件を
    満足しないと判断され、かつ、前記第2判断手段により
    前記第2条件を満足しないと判断された場合には、前記
    第1条件が満足されるようになるまで前記コマンドコン
    プリート信号の送信を待機する請求項8記載のディスク
    ドライブ装置。
  10. 【請求項10】 前記第2判断手段により前記第2条件
    を満足すると判断された場合には、前記書き込み指示手
    段において、前記既保持書き込みコマンドと前記新規書
    き込みコマンドとの2つのコマンドに対応する書き込み
    データを連続して前記ディスク状記録媒体に書き込むよ
    う指示する請求項9記載のディスクドライブ装置。
JP2000121853A 2000-04-21 2000-04-21 データの書き込み方法およびディスクドライブ装置 Pending JP2001312373A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2000121853A JP2001312373A (ja) 2000-04-21 2000-04-21 データの書き込み方法およびディスクドライブ装置
US09/838,994 US6842801B2 (en) 2000-04-21 2001-04-20 System and method of implementing a buffer memory and hard disk drive write controller

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000121853A JP2001312373A (ja) 2000-04-21 2000-04-21 データの書き込み方法およびディスクドライブ装置

Publications (1)

Publication Number Publication Date
JP2001312373A true JP2001312373A (ja) 2001-11-09

Family

ID=18632416

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000121853A Pending JP2001312373A (ja) 2000-04-21 2000-04-21 データの書き込み方法およびディスクドライブ装置

Country Status (2)

Country Link
US (1) US6842801B2 (ja)
JP (1) JP2001312373A (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7631117B2 (en) 2004-10-29 2009-12-08 Hitachi Global Storage Technologies Netherlands B.V. Method for communicating between host and storage device, storage device, host, and system comprising storage device and host
JP2012063875A (ja) * 2010-09-14 2012-03-29 Toshiba Corp データ記憶装置、コマンド制御装置及び電子機器
JP2012113705A (ja) * 2010-11-23 2012-06-14 Internatl Business Mach Corp <Ibm> データを書き込むための方法、システム、およびコンピュータ・プログラム(データを書き込むためのスライディング書き込みウィンドウ・メカニズム)
JP2015096988A (ja) * 2013-11-15 2015-05-21 日本電気株式会社 ストレージシステム、ストレージ制御装置、情報処理装置、ストレージ制御プログラムおよびストレージ制御方法
CN111506256A (zh) * 2019-01-31 2020-08-07 睿宽智能科技有限公司 减少写入效能变化并防止io阻塞的方法

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080320209A1 (en) * 2000-01-06 2008-12-25 Super Talent Electronics, Inc. High Performance and Endurance Non-volatile Memory Based Storage Systems
US7003644B2 (en) * 2002-03-28 2006-02-21 Seagate Technology Llc Execution time dependent command schedule optimization
US7338443B1 (en) 2002-04-29 2008-03-04 Tucker Peter L Secure patient data recorder for recording monitored vital sign data
US6968422B1 (en) * 2003-06-27 2005-11-22 Western Digital Technologies, Inc. Disk drive employing a modified rotational position optimization algorithm to account for external vibrations
JP2005215729A (ja) * 2004-01-27 2005-08-11 Hitachi Global Storage Technologies Netherlands Bv データ伝送制御方法及び記憶装置
TW200539110A (en) * 2004-05-21 2005-12-01 Lite On It Corp Recording method with processing units and apparatus using the same
JP2006172032A (ja) * 2004-12-15 2006-06-29 Hitachi Global Storage Technologies Netherlands Bv データ記憶装置及びそのバッファ制御方法
JP2007193448A (ja) * 2006-01-17 2007-08-02 Toshiba Corp 情報記録装置及びその制御方法
US7493456B2 (en) * 2006-10-13 2009-02-17 International Business Machines Corporation Memory queue with supplemental locations for consecutive addresses
JP2008217855A (ja) * 2007-02-28 2008-09-18 Fujitsu Ltd 記憶装置用制御装置、記憶装置およびそのデータ記憶制御方法
US7599241B2 (en) * 2007-08-06 2009-10-06 Sandisk Corporation Enhanced write abort mechanism for non-volatile memory
US8004785B1 (en) 2008-05-09 2011-08-23 Western Digital Technologies, Inc. Disk drive write verifying unformatted data sectors
US9106592B1 (en) 2008-05-18 2015-08-11 Western Digital Technologies, Inc. Controller and method for controlling a buffered data transfer device
JP2009288988A (ja) * 2008-05-28 2009-12-10 Fujitsu Ltd バッファ制御方法及び記憶装置
JP4693893B2 (ja) * 2008-11-25 2011-06-01 株式会社日立製作所 記憶制御装置及び記憶制御装置の制御方法
US7929234B1 (en) 2009-03-27 2011-04-19 Western Digital Technologies, Inc. Disk drive prioritizing in-the-field defect scanning based on number of write operations in each of a plurality of defect zones
US8392689B1 (en) 2010-05-24 2013-03-05 Western Digital Technologies, Inc. Address optimized buffer transfer requests
US20120066471A1 (en) * 2010-09-14 2012-03-15 Advanced Micro Devices, Inc. Allocation of memory buffers based on preferred memory performance
JP5675278B2 (ja) 2010-11-01 2015-02-25 オリンパス株式会社 データ処理装置および画像処理装置
JP5784299B2 (ja) * 2010-11-01 2015-09-24 オリンパス株式会社 データ処理装置および画像処理装置
US10877669B1 (en) * 2011-06-30 2020-12-29 Amazon Technologies, Inc. System and method for providing a committed throughput level in a data store
US8565053B1 (en) 2012-06-19 2013-10-22 Western Digital Technologies, Inc. Methods and devices for preventing media errors due to media scratches
US9864529B1 (en) * 2014-01-27 2018-01-09 Western Digital Technologies, Inc. Host compatibility for host managed storage media
US20160299686A1 (en) * 2015-04-08 2016-10-13 Kabushiki Kaisha Toshiba Disk device and controlling method of disk device
CN108572790B (zh) * 2017-04-20 2021-11-26 深圳市得一微电子有限责任公司 一种固态硬盘写入指令排序方法、固态硬盘
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

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5450546A (en) * 1992-01-31 1995-09-12 Adaptec, Inc. Intelligent hardware for automatically controlling buffer memory storage space in a disk drive
US5561823A (en) * 1994-03-14 1996-10-01 Conner Peripherals, Inc. Monitor system for determining the available capacity of a READ buffer and a WRITE buffer in a disk drive system
JP2000019379A (ja) 1998-06-30 2000-01-21 Nikon Corp 撮影光学系駆動制御装置
JP2001005724A (ja) * 1999-06-11 2001-01-12 Internatl Business Mach Corp <Ibm> ライト・キャッシュ転送の制御方法およびディスク装置

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7631117B2 (en) 2004-10-29 2009-12-08 Hitachi Global Storage Technologies Netherlands B.V. Method for communicating between host and storage device, storage device, host, and system comprising storage device and host
JP2012063875A (ja) * 2010-09-14 2012-03-29 Toshiba Corp データ記憶装置、コマンド制御装置及び電子機器
JP2012113705A (ja) * 2010-11-23 2012-06-14 Internatl Business Mach Corp <Ibm> データを書き込むための方法、システム、およびコンピュータ・プログラム(データを書き込むためのスライディング書き込みウィンドウ・メカニズム)
JP2015096988A (ja) * 2013-11-15 2015-05-21 日本電気株式会社 ストレージシステム、ストレージ制御装置、情報処理装置、ストレージ制御プログラムおよびストレージ制御方法
US9471251B2 (en) 2013-11-15 2016-10-18 Nec Corporation Storage system, storage control apparatus, information processing apparatus, storage control program and storage control method
CN111506256A (zh) * 2019-01-31 2020-08-07 睿宽智能科技有限公司 减少写入效能变化并防止io阻塞的方法
CN111506256B (zh) * 2019-01-31 2023-03-28 睿宽智能科技有限公司 减少写入效能变化并防止io阻塞的方法

Also Published As

Publication number Publication date
US20020059476A1 (en) 2002-05-16
US6842801B2 (en) 2005-01-11

Similar Documents

Publication Publication Date Title
JP2001312373A (ja) データの書き込み方法およびディスクドライブ装置
US5729718A (en) 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
JP3898782B2 (ja) 情報記録再生装置
US4905184A (en) Address control system for segmented buffer memory
US5140683A (en) Method for dispatching work requests in a data storage hierarchy
US6944717B2 (en) Cache buffer control apparatus and method using counters to determine status of cache buffer memory cells for writing and reading data therefrom
US7085087B2 (en) Data storage apparatus and method for managing buffer memory
US9298393B2 (en) Buffer management for increased write speed in large sector data storage device
US5875455A (en) Information recording and reproducing apparatus merging sequential recording requests into a single recording request, and method of data caching for such apparatus
JP2006139548A (ja) メディア・ドライブ及びそのコマンド実行方法
JPH06289999A (ja) ディスク制御システム
US20030149838A1 (en) Data transfer performance through resource allocation
US6957311B2 (en) Data storage apparatus, computer apparatus, data processing apparatus, and data processing method
US6931501B1 (en) Method and apparatus for merging contiguous like commands
JP2001216092A (ja) データの書き込み方法、データの読み出し方法、ディスクドライブ装置およびディスクドライブ装置のコントローラ
US6567886B1 (en) Disk drive apparatus and control method thereof
JP2007501473A (ja) メインメモリとストレージ装置との間のデータ転送を行うための方法及び装置
JPS5832417B2 (ja) デ−タ転送制御方式
US7624228B2 (en) Disk drive and method of controlling cache memory therein
JP2004102440A (ja) コマンド処理方法及び記憶装置
EP0331720B1 (en) Peripheral controller
JP2973474B2 (ja) 光磁気ディスク装置
JPH11265262A (ja) 高速ライトキャッシュディスク装置
JPS59158464A (ja) デイスクキヤツシユ制御方式
JP2002014869A (ja) キャッシュ装置およびキャッシュ方法

Legal Events

Date Code Title Description
RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20040826

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20050407