JP4234753B2 - ハードディスクドライブおよびコマンド実行方法 - Google Patents

ハードディスクドライブおよびコマンド実行方法 Download PDF

Info

Publication number
JP4234753B2
JP4234753B2 JP2006338368A JP2006338368A JP4234753B2 JP 4234753 B2 JP4234753 B2 JP 4234753B2 JP 2006338368 A JP2006338368 A JP 2006338368A JP 2006338368 A JP2006338368 A JP 2006338368A JP 4234753 B2 JP4234753 B2 JP 4234753B2
Authority
JP
Japan
Prior art keywords
command
write
seek
data
nonvolatile memory
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
JP2006338368A
Other languages
English (en)
Other versions
JP2008152440A (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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2006338368A priority Critical patent/JP4234753B2/ja
Priority to US11/858,354 priority patent/US7477477B2/en
Priority to KR1020070104601A priority patent/KR20080056082A/ko
Priority to CNA2007101988704A priority patent/CN101206554A/zh
Publication of JP2008152440A publication Critical patent/JP2008152440A/ja
Application granted granted Critical
Publication of JP4234753B2 publication Critical patent/JP4234753B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B21/00Head arrangements not specific to the method of recording or reproducing
    • G11B21/02Driving or moving of heads
    • G11B21/10Track finding or aligning by moving the head ; Provisions for maintaining alignment of the head relative to the track during transducing operation, i.e. track following
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B5/00Recording by magnetisation or demagnetisation of a record carrier; Reproducing by magnetic means; Record carriers therefor
    • G11B5/48Disposition or mounting of heads or head supports relative to record carriers ; arrangements of heads, e.g. for scanning the record carrier to increase the relative speed
    • G11B5/54Disposition or mounting of heads or head supports relative to record carriers ; arrangements of heads, e.g. for scanning the record carrier to increase the relative speed with provision for moving the head into or out of its operative position or across tracks
    • G11B5/55Track change, selection or acquisition by displacement of the head
    • G11B5/5521Track change, selection or acquisition by displacement of the head across disk tracks
    • 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/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • 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/068Hybrid storage device
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B19/00Driving, starting, stopping record carriers not specifically of filamentary or web form, or of supports therefor; Control thereof; Control of operating function ; Driving both disc and head
    • G11B19/02Control of operating function, e.g. switching from recording to reproducing

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)
  • Computer Security & Cryptography (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Description

本発明は、ホストから送られる読み出しまたは書き込みのコマンドを実行するハードディスクドライブおよびコマンド実行方法に関する。
ハードディスク装置を代表する磁気ディスク装置において、ディスクへの読み出し、書き込みをする際、ヘッドを目標トラックに移動するシークを行い、目標アドレスのディスク位置がヘッドの下に移動するまで、ヘッドの位置決め制御を行いながらディスクの回転を待つ回転待ちを行う。ディスクのヘッドが目標アドレスに到達した時点より、ディスクへのデータの読み書きを開始する。この際、エラーが発生すると、読み書きを中止し、ディスクが1回転するのを待ち、読み書きを再度行うリトライが行われる。エラーが解消されるまでリトライを続けるため、次のコマンドの実行を開始するまで、少なくともディスク1回転の回転待ち時間が生じる。
ディスクへの書き込みは読み出しと比べ、厳しい位置決め制御が必要となり、エラーが発生しやすい。ディスクへの書き込みを失敗するライトフォルトが発生するたびにディスク1回転以上の回転待ちが生じるため、ライトフォルト数を削減することでコマンド実行時間を迅速にすることが可能である。
ディスク装置には複数のコマンドを保持するためのコマンドキューを備えたものがある。このようなディスク装置では、ホスト装置から受信したコマンドを上記コマンドキューに格納し、コマンドキューに格納された実行待ちコマンドの中から次に実行するコマンドを選択し、実行する。コマンドキューを用いることで、コマンドの実行をコマンドの発行順序から入れ替えて行うリオーダリングが可能となる。コマンドの要求アドレスのディスク上の位置を考慮し、リオーダリングを実施することで、コマンド実行に要する時間を短縮することができる。例えば図14のように、コマンド1、2、3の順序でコマンドが発行された場合を考える。この場合、図14(B)に示すように、発行された順番でコマンドを実行(ディスクアクセス)するよりも、リオーダリングにより、図14(A)のように、コマンド1→コマンド3→コマンド2の順でコマンドを実行する方が、データの読み出し/書き込みを効率よく行うことが確認できる。なお、図14(A)および図14(B)では、コマンド1、2、3による読み出し/書き込みの対象となるディスク上の領域が示されている。
STF (Shortest Time First)アルゴリズムは、リオーダリングアルゴリズムの1つであり、最もアクセス時間が短いコマンドを次々に選ぶアルゴリズムである。たとえば、図15のように、コマンド1(コマンド1が読み出し/書き込みの対象とするディスク上の領域が示されている)を実行中であるとする。STFアルゴリズムでは、次に実行するコマンドとして、コマンド3を選択する。コマンド2は、シーク中のディスクの回転により、ヘッド位置を通り過ぎ、ディスク1周分の余計な回転待ち(シーク終了後、読み出し/書き込みを行うデータが到来するのを待つこと)が生じるため、選択されない。コマンド3の実行終了後、コマンド4はシークが間に合うため、コマンド3の次に実行するコマンドは、一番早くアクセスできるコマンド4となる。
シークスピード(ヘッドの移動速度)を速めた場合、トラック間の移動時間が短くなる。 図16(B)のように、シークスピードを速めない場合、コマンド1の次のコマンドとしてコマンド2を選択することができず、コマンド3を実行するが、シークスピードを速めた場合は、同時間内でコマンド1、2、3を実行でき(図16(A))、より多くのコマンドの実行が可能となる。このように、シークスピードを上げるとで、より効率的なリオーダリングをSTFアルゴリズムで行うことができる。
特開平6−282384公報 特開2000−293963公報 特開2001−100935公報 特開2001−236744公報
しかし、シークスピードを速めた場合、ヘッド位置を目標トラックに停止させる際にヘッドに伝わる振動が大きくなる。この振動が大きいほど、位置決め制御が困難となり、リード・ライトフォルトが発生しやすくなる。ゆえに、シークスピードを高速化すると、より効率的なリオーダリング可能となるが、ライトフォルト発生率が上がり、回転待ち時間が増え、必ずしもスループット向上には繋がらない。
特開平6−282384公報(特許文献1)では、ディスクの信頼性向上のためディスク上の欠陥セクタの代替領域として、ディスク書き込みに失敗したデータをフラッシュメモリに格納する。この方式では、データサイズの小さいランダムライトコマンド(書き込み先のアドレスがとびとびであるライトコマンド)に対し、スループット向上が期待できるが、シーケンシャルなライトコマンド(書き込み先のアドレスが連続しているライトコマンド)やデータサイズの大きいライトコマンドに対しスループット向上を配慮した処理を行っていない。また、フラッシュメモリに格納したデータをディスクに書き戻す処理が無いため、フラッシュメモリの容量に空きがなくなった場合、ライトフォルトの発生により書き込みに失敗したデータをフラッシュメモリに書きこむ処理ができなくなる。
特開2000−293963公報(特許文献2)では、ディスク書き込みに失敗したデータをディスク上の専用領域に格納する。この方式は、専用領域に格納するためのシーク、回転待ち時間が発生するため、必ずしもスループットが向上するとは限らない。
特開2001−100935公報(特許文献3)では、ディスクに読み書き失敗したデータを、再度ディスクコマンドキューに格納し、リオーダリングしなおしている。この方式では、ライトフォルトが発生したデータに対するディスクライトは必要不可欠であり、必ずしもライトフォルトのペナルティが削減されるわけではない。例えば、図17のように、書き込み失敗後、失敗したデータをディスクコマンドキューに戻し、リオーダリングしなおした結果、同一コマンドを選択する場合がある。この場合、リオーダリングしない場合の処理である、ディスク一周待ち後の再書き込みと同じ動作になるため、ディスクコマンドキューに戻しリオーダリングし直す処理をしてもスループットは向上されない。
特開2001−236744公報(特許文献4)では、ディスクに読み書き失敗しリトライが必要となった場合、その間に実行可能なコマンドを探索する。この方式も特許文献3の場合と同様に、ライトフォルトが発生したデータに対するディスクライトは必要不可欠であり、必ずしもライトフォルトのペナルティが削減されるわけではない。
本発明は、ホストから送られるコマンドを効率的に処理できるようにしたハードディスクドライブおよびコマンド実行方法を提供する。
本発明の一態様としてのハードディスクドライブは、
データを読み書き可能なディスク状記憶媒体と、
実行要求された読み出しまたは書き込みコマンドにしたがって、ディスクヘッドを高速にシークさせる高速シークおよび低速にシークさせる低速シークにより前記ディスクヘッドをシークしてデータの読み出しまたは書き込みを行うシーク制御部と、
データを読み書き可能な不揮発性メモリと、
実行要求された読み出しまたは書き込みのコマンドにしたがって前記不揮発性メモリに対しデータの読み出しまたは書き込みを行うアクセス制御部と、
ホストからデータの読み出しまたは書き込みを指示するコマンドを受け取るコマンド受取手段と、
前記コマンド受取部により受け取られた前記コマンドを前記シーク制御部および前記アクセス制御部のいずれに実行させるかを決定する決定手段と、
前記シーク制御部に実行させるべきと決定されたコマンドを格納する第1のコマンド格納部と、
前記アクセス制御部に実行させるべきと決定されたコマンドを格納する第2のコマンド格納部と、
前記第2のコマンド格納部内からコマンドを選択し、選択したコマンドの実行を前記アクセス制御部に要求する第1の要求手段と、
前記不揮発性メモリの利用状況を検出する利用状況検出手段と、
前記利用状況が低いとき、前記第1のコマンド格納部に格納された書き込みコマンドおよび読み出しコマンドのうち前記シーク制御部に次に実行させるとした場合に前記ディスクヘッドをアクセス開始位置に最も早く到達させることが可能なコマンドを、前記書き込みコマンドについては高速シークにより前記読み出しコマンドについては低速シークにより前記ディスクヘッドをシークさせると想定して選択する第1の選択部と、
前記第1の選択部により選択されたコマンドが書き込みコマンドである場合、前記高速シークを指定して前記シーク制御部に実行要求し、前記第1の選択部により選択したコマンドが読み出しコマンドである場合、前記低速シークを指定して前記シーク制御部に実行要求する、第2の要求手段と、
前記第2の要求手段によって要求された前記書き込みコマンドの実行中に書き込みエラーを検出し、書き込みに失敗したデータを書き込むことを指示する書き込みコマンドを前記第2のコマンド格納部に格納する書き込みエラー処理部と、
前記不揮発性メモリの利用状況が高いとき、前記第1のコマンド格納部に格納された書き込みコマンドおよび読み出しコマンドのうち前記シーク制御部に次に実行させるとした場合に前記ディスクヘッドをアクセス開始位置に最も早く到達させることが可能なコマンドを前記低速シークにより前記ディスクヘッドをシークさせると想定して選択する第2の選択部と、
前記第2の選択部により選択されたコマンドの実行を前記低速シークを指定して前記シーク制御部に要求する第3の要求手段と、
を備える。
本発明の一態様としてのコマンド実行方法は、
ディスクヘッドによりデータを読み書き可能なディスク状記憶媒体と、データを読み書き可能な不揮発性メモリと、を備えたハードディスクドライブにおいて実行するコマンド実行方法であって、
ホストからデータの読み出しまたは書き込みを指示するコマンドを受け取り、
受け取られた前記コマンドの実行を前記ディスク状記憶媒体および前記不揮発性メモリのいずれに対して行うかを決定し、
前記ディスク状記憶媒体に決定された場合第1のコマンド格納部に前記コマンドを格納し、前記不揮発性メモリに決定された場合第2のコマンド格納部に前記コマンドを格納し、
前記不揮発性メモリの利用状況を検出し、
前記利用状況が低いとき、前記第1のコマンド格納部に格納された書き込みコマンドおよび読み出しコマンドのうち次に実行するとした場合に前記ディスクヘッドをアクセス開始位置に最も早く到達させることが可能なコマンドを、前記書き込みコマンドについては高速シークにより前記読み出しコマンドについては低速シークにより前記ディスクヘッドをシークさせると想定して選択し、
選択されたコマンドが書き込みコマンドである場合、前記書き込みコマンドを前記高速シークにより実行し、選択したコマンドが読み出しコマンドである場合、前記読み出しコマンドを前記低速シークにより実行し、
前記書き込みコマンドの実行中に書き込みエラーを検出したら、書き込みに失敗したデータを書き込むことを指示する書き込みコマンドを前記第2のコマンド格納部に格納し、
前記不揮発性メモリの利用状況が高いとき、前記第1のコマンド格納部に格納された書き込みコマンドおよび読み出しコマンドのうち次に実行するとした場合に前記ディスクヘッドをアクセス開始位置に最も早く到達させることが可能なコマンドを前記低速シークにより前記ディスクヘッドをシークさせると想定して選択し、
選択されたコマンドを前記低速シークにより実行する、
ことを特徴とする。
本発明により、ホストから送られるコマンドを効率的に処理できる。
図1は、本発明の一実施の形態としてのハードディスクドライブ(HDD :Hard Disk Drive)の構成を示すブロック図である。HDD2は、記憶装置として、ディスク6と不揮発性メモリ8を有している。ホスト1はリード・ライトコマンドの発行をHDD2内のフロー制御部3に行う。フロー制御部3では、受理したリード・ライトコマンドをディスク6に実行させる場合はディスクインターフェイス5にディスクの読み・書きの指令を出し、不揮発性メモリ8に実行させる場合は不揮発性メモリインターフェイス7に読み・書きの指令を出す。図1のブロック矢印はバスを表している。ホスト1から発行されたコマンドがリードコマンドの場合、リードコマンドにより要求されたデータがディスク6または不揮発性メモリ8からキャッシュメモリ4に読み出され、キャッシュメモリ4からホスト1に転送される。一方、ホスト1から発行されたコマンドがライトコマンドの場合、ライトコマンドにより要求されたデータをキャッシュメモリ4に格納し、ディスク6または不揮発性メモリ8に書き込みを行う。
以下、図2は、図1のHDDの構成を詳細に示すブロック図である。
ホスト1より発行されたコマンドは、フロー制御部3内のホストインターフェイス(コマンド受取手段、決定手段)9が受理する。受理したコマンドがライトコマンドの場合、図3のフローチャートに示す処理を行う。
まず、ホストインターフェイス9は、受理したライトコマンドをキャッシュメモリ4に格納する(S11)。ホストインターフェイス9はライトコマンドによって書き込み要求されるデータ(ライトデータ)をディスク6・不揮発性メモリ8のどちらの記憶装置に書き込むかを、ホスト1からの指定、ディスク6の状態、不揮発性メモリ8の状態を考慮し決定する(S12)。
ホスト1からの指定とは、ホスト1が書き込む記憶装置を指定することを意味し、この場合指定された記憶装置にライトデータを書き込むこととなる。ディスク6の状態とは、ディスク6の回転状況、ディスク6へアクセスするコマンド数(ディスクコマンドキュー10内のコマンド数)が挙げられる。ディスク6が回転していない場合、回転させるまでに時間を要し、ディスク6へのアクセスが集中している場合、ライトデータの書き込み完了まで時間を要する。このような状況でディスク6に書き込みを行うのは好ましくない。また、不揮発性メモリ8の状態とは、不揮発性メモリ8の残存容量、不揮発性メモリ8へのアクセス待ちのコマンド数(不揮発性メモリコマンドキュー11内のコマンド数)が挙げられる。残存容量は、現在の不揮発性メモリ8の空き容量から、不揮発性メモリコマンドキュー11に格納されたライトコマンドの全ての要求データサイズの和を減算したものである。すなわち不揮発性メモリコマンドキュー11に格納されたライトコマンドを全て実行した後の不揮発性メモリ8の空き容量が不揮発性メモリ8の残存容量である。不揮発性メモリ8の残存容量が不足している場合は、不揮発性メモリに書くことはできない。また、アクセスするコマンド数が多い場合、不揮発性メモリ8へ書き込むのに時間を要する。このような状況で不揮発性メモリ8に書き込みを行うのは好ましくない。
ディスク6の状態、不揮発性メモリ8の状態を考慮し、どちらの記憶装置に書き込む方が効率的かを算出し、書き込む記憶装置を決定する。ディスク6に書き込む場合はディスクコマンドキュー(第1のコマンド格納部)10、不揮発性メモリ8に書き込む場合は不揮発性メモリコマンドキュー(第2のコマンド格納部)11にホストインターフェイス9が受理したライトコマンドを格納する(S13、S14)。図3の例では、書き込む記憶装置として、ディスク6・不揮発性メモリ8のどちらか片方を選んでいるが、ディスク6・不揮発性メモリ8の両方に書き込むこともできる。その際、受理したライトデータを分割し、異なるデータを別の記憶装置に書き込むことや、同じデータを両方の記憶装置に書き込むことができる。本判定の際に、後述する不揮発性メモリ迅速利用判定機能12を用いても構わない。またディスクコマンドキュー10と不揮発性メモリコマンドキュー11とを合わせて単一のコマンドキューとして構成することも可能である。単一のコマンドキューの一例を図18に示す。単一のコマンドキュー内に書き込み先が不揮発性メモリであるかディスクであるかを識別する書き込み先情報を付加することで、ディスクアクセス選択機能14および不揮発性メモリアクセス選択機能16(後述)は単一コマンドキューから自身が実行するべきコマンドを識別できる。すなわち、第1のコマンド格納部と第2のコマンド格納部は物理的に一体に形成されていても分離して形成されていてもよく本発明はこれらのいずれの場合も含む。
図4は、図3のS12を詳細に説明するフローチャートである。S51にて、ライトデータの書き込み先が不揮発性メモリ8に指定されているか調べる。指定されていた場合(S51のYES)、書き込む記憶装置として不揮発性メモリ8を決定する(S52)。指定されていなかった場合は(S51のNO)、S53にてディスクが回転しているか(ディスクを回転させるモーターのオン/オフ(on/off))を調べる。回転していた場合(S53のon)、ディスクに書き込むことを前提とするが、S54にてディスクへのコマンド数(ディスクコマンドキュー10内のコマンド数)を調べ、規定値以上であれば、書き込む記憶装置として不揮発性メモリ8を検討する(S55)。またS53においてディスクが回転していない場合も(S53のoff)不揮発性メモリ8を検討する(S55)。S55では、不揮発性メモリ8の残存容量を調べ、不揮発性メモリ8に書き込むか決定する。残存容量が規定値以上であれば、書き込む記憶装置として不揮発性メモリ8を決定し(S52)、規定値未満であれば、書き込む記憶装置としてディスク6を決定する(S56)。S54にて規定値未満である場合も、書き込む記憶装置としてディスク6を決定する(S56)。
一方、図2において、ホストインターフェイス9により受理されたコマンドがリードコマンドである場合、例えば図5のフローチャートに示す処理を行う。まず、読み出し要求されているデータ(リードデータ)がディスク6、不揮発性メモリ8どちらに格納されているかを調べる(S21)。ディスク6に格納されている場合はディスクコマンドキュー10、不揮発性メモリ8の場合は不揮発性メモリコマンドキュー11に、両方に別々に格納されている場合は、両方のコマンドキューに必要なデータを読み出すリードコマンドを格納する(S22)。S21の処理を行う前に、キャッシュメモリ4にリードデータが存在するかどうかを判定し、存在した場合、S22の処理を行うことなくホスト1にデータ転送を行ってもよい。
ディスク6へのアクセスを実行開始する際は、図6のフローチャートに従った処理をディスクアクセス選択機能14および不揮発性メモリ迅速利用判定機能12により行う。まず、不揮発性メモリ8に迅速にアクセス可能であるか(不揮発性メモリ8の利用状況が低いか高いか)を、不揮発性メモリ迅速利用判定機能(利用状況検出手段)12により調べる(S31)。不揮発性メモリ迅速利用判定機能12では、迅速にアクセス可能であるかの判断基準として、(1)不揮発性メモリ8の残存容量、(2)不揮発性メモリ8へのアクセス時間を見積もる方法が挙げられる。
(1)不揮発性メモリ8の残存容量は、上述したように、現在の不揮発性メモリ8の空き容量から、不揮発性メモリコマンドキュー11に格納されたライトコマンドの全ての要求データサイズの和を減算したものである。規定値以上の残存容量が存在すれば、迅速にアクセス可能であると判断される。すなわち不揮発性メモリ8の利用状況は低いと判断される。
(2)一方、不揮発性メモリへのアクセス時間は、不揮発性メモリコマンドキュー11に格納されたコマンドの種類(リード・ライト)、データサイズより見積もることが出来る。例えば、1セクタ当たりの不揮発性メモリ8から読み出しに要する時間をa 、書き込みに要する時間を b とし、不揮発性コマンドキュー11に格納されたリードコマンドの総セクタ数を A 、ライトコマンドの総セクタ数を B とすると、不揮発性コマンドキュー11に格納された全てのコマンドを実行する時間は、aA+bBと見積もることができる。見積もった値が規定値以下であれば、迅速にアクセス可能であると判断できる。すなわち不揮発性メモリ8の利用状況は低いと判断される。
以上のように、S31の処理では、不揮発性メモリ8の残存容量、または不揮発性メモリ8のアクセス総時間を見積もり、不揮発性メモリ8に迅速にアクセス可能であるかを判断する。
迅速にアクセス可能であれば(S31のYES)、ライトフォルトが発生しても、ディスク6への書き込みに失敗したデータを不揮発性メモリ8に即座に書き込むことができ、従来ライトフォルト時に発生したディスク一周分の回転待ちのペナルティを削減することができる。そこで、ライトフォルトの発生率が高いが効率的なリオーダリングが可能となる高速スピードのシーク(高速シーク)を行うことを想定してディスクアクセス選択機能(第1の選択手段、第2の選択手段、第2の要求手段、第3の要求手段)14においてリオーダリングを行う(S32)。一方、迅速にアクセス可能でなければ(S31のNO)、通常スピードのシーク(通常シーク)を行うことを想定してディスクアクセス選択機能14においてリオーダリングを行う(S36)。
通常スピードのリオーダリング(S36)では、ディスクコマンドキュー10に溜まったコマンドの中から、最も早くアクセス可能であるコマンド(アクセス開始位置に最も早くヘッドを到達可能なコマンド)を探し出す。その際、各コマンドに対し、ヘッド位置と、書き込み要求あるいは読み出し要求されているデータ(要求データ)のディスク上の先頭位置(アクセス開始位置)と、通常シーク用のシーク時間情報13(1)より得られる通常シークにかかるシーク時間とを用い、コマンドへのアクセス時間を算出する。以下、アクセス時間算出の具体例を紹介する。時間の変わりに、ディスク上の角度で算出しても良い。
まず図7に示すようにディスクコマンドキュー10に格納されたコマンドj(トラックjにあるとする)に対し、ヘッド位置(トラックiにあるとする)と、要求データの先頭位置とから、ヘッド位置と該先頭位置とがディスク中心に対して成す角度θと、トラック間距離Dとを算出する。ディスクの回転角度ωは一定であることから、算出した角度より、ヘッド位置から要求データへのアクセス開始までの最短アクセス時間(角度×ω=Tj)を図8に示すように求めることが出来る。一方、トラック間距離Dよりトラックiからトラックjにシークをする際に要する時間Sijを、シーク時間情報13(1)より、図8に示すように求めることが出来る。シーク情報(シーク時間情報13(1)および13(2))の例として、i、jを引数に持った関数、i、jより検索可能なテーブルが挙げられる。最短アクセス時間Tjよりもシーク時間Sijが大きい場合(Tj>Sij)、シーク時間中に要求データがヘッドを通り過ぎてしまうため、最短アクセス時間Tjではアクセスできない。この場合、アクセス時間は、最短アクセス時間にディスク一周分の回転待ち時間を足し続け、シーク時間を越える最小の値となる(2周以上回転待ちをする場合があるため)。すなわち、シーク中にヘッドがコマンドjを通り過ぎる数をxとした場合、 Tj+(ディスク一周の回転待ち時間)×xとなる。以上のようにして、コマンドjを実行開始する時刻を見積もることができ、最も早く実行するコマンドを探索することが出来る。リオーダリングの計算時間、および位置決め制御に要する時間(リード・ライトで異なる値にしてよい)を考慮し、Tj>Sij+α (αが考慮した時間分)をディスクの回転待ちを行うことなくシークが間に合うか否かの条件式としても良い。
一方、高速シークのリオーダリングの場合(S32)、通常シークの場合と同様に、ディスクコマンドキュー10に溜まったコマンドの中から、最も早くアクセス可能であるコマンドを探し出す。その際、ライトコマンドに対しては、高速シーク用のシーク時間情報13(2)から高速シークにかかるシーク時間を得て、アクセス時間を算出する。リードコマンドに対しては、通常シーク用のシーク時間情報13(1)から通常シークにかかるシーク時間を得る。そのため、高速シークのリオーダリングでは、通常シーク用のシーク時間情報13(1)と、高速シーク用のシーク時間情報13(2)との2種類のシーク時間情報が必要となる。
高速シークをライトコマンドのみに用いるのは、ライトコマンドはディスク6・不揮発性メモリ8のどちらにも書き込みを行うことが可能なためである。ライトフォルトが発生した際、ディスク6の代わりに不揮発性メモリ8に書き込むことができるため、回転待ちのペナルティを削減できる。一方、リードコマンドの場合、ホストが要求しているデータは、ディスク6・不揮発性メモリ8の両方に格納されているとは限らない。そのため、リードフォルトが発生した場合、必ずしも不揮発性メモリから読み出すことはできない。
例えば、図9に示すように、ヘッドがトラックi、リードコマンドにより読み出し要求されているリードデータがトラックj、ライトコマンドにより書き込み要求されているライトデータがトラックk上に存在し、リードデータの方がヘッドに近い場合を考える。この場合、リードコマンドに対しては高速シークが行われないため、リードデータに到達するためには一周の回転待ちが余計に生じる。一方、高速シークを行うライトデータに対しては、データが通り過ぎる前にヘッドが移動完了できるため回転待ちは生じない。したがって図9の状況において、高速リオーダリングした場合、ライトコマンドが選択される。
S32における高速シークを想定したリーダリングで選出されたコマンドがライトコマンドである場合(S33のNO)、このライトコマンドの実行開始時刻(アクセス開始時刻)が、このライトコマンドに通常シークでアクセスした場合の実行開始時刻と同一時刻であるか調べる(S34)。すなわち、このライトコマンドへの高速シークによるアクセス時間が通常シークを行った場合のアクセス時間と同じであるかを調べる。これは、高速シークによるリオーダリングで選出されたコマンドが必ずしも高速シークする必要があるとは限らないためである。通常シークでもアクセス時間が変わらないのであれば(S34のYES)、ライトフォルト発生率の高い高速シークではなく、通常シークによりアクセスを行う。
通常のシークを行うことを決定した場合、(S31のNO、またはS33のYES、またはS34のYES)、シーク制御部17が通常シーク用のシークプロファイル情報15(1)を参照してヘッドをシークする(S37)。一方、高速シークを行うことを決定した場合(S34のNO)、シーク制御部17は高速シーク用のシークプロファイル情報15(2)を参照してヘッドをシークする(S35)。このようにシーク制御部17は少なくとも2種類のシーク(通常シークと高速シーク)を行うため、通常シーク用のシークプロファイル情報15(1)と高速シーク用のシークプロファイル情報15(2)との2種類のシークプロファイル情報が必要となる。S35の高速シーク、S37の通常シークでは、ジャストインタイムシーク制御を行って、シーク完了時の振動を減らしライトフォルトの発生を抑えるようにしてもよい。ジャストインタイムシーク制御とは、シークが完了後の回転待ち時間が最小限になるようシークスピードを調整する。この制御により消費電力を削減できることが知られている(特開2000-40317号参照)。ここでシークプロファイル情報について簡単に説明すると以下の通りである。ヘッドのシーク制御は、ヘッドの位置するトラックと目標トラックとのトラック間距離に対し、目標速度を設置しフィードバック制御を行うのが一般的である。すなわち、シーク制御部17はシーク中のトラック間距離に応じ、目標速度になるようシーク速度を増減する。トラック間距離から目標速度を求める際に、シークプロファイル情報を用いる。シークプロファイル情報は、トラック間距離に対する目標速度を格納したテーブル、トラック間距離を引数とし目標速度を返す関数、または上記関数の係数情報として保持することができる(例えば特開平9-73618号参照)。
S35の高速シークまたはS37の通常シークにより、ヘッドが目的トラック(図8の場合トラックj)に到達する。その後、回転待ちにより要求データがヘッドの真下に到達するのを待ち、データの読み・書きを行う(S38)。リードコマンドの場合は、読み出したデータをキャッシュメモリ4に格納し、ホスト1への転送を開始する。ライトコマンドの場合、書き込み要求されたデータの書き込みが終了した時点で、コマンドの実行完了となる。
S38におけるディスク6への書き込み中に、ディスクインターフェイス5が書き込み不可信号(書き込みエラー信号)を検出した場合(ライトフォルトが発生した場合)、直ちに書き込み処理を停止し、ライトフォルト処理を行う。書き込み不可信号が発生した際、その原因となった現象を知ることが出来る。エラー発生には、ヘッドを正しい位置に制御できない位置決め制御のエラー、衝撃検知や電源異常の外部要因によるエラー、ディスクに対する読み・書きが正常に行えないディスクの欠陥によるエラーがある。
図10はライトフォルト処理の流れを示すフローチャートである。S41では、書き込みに失敗したデータを検出している。この書き込み失敗したデータの検出では、書き込み要求されているデータサイズに応じて異なる処理をする方が望ましい。具体的には、図11のように、ライトフォルト発生地点からライトデータの末尾が近い場合には、ライトフォルトが発生した時点で、ライトフォルト発生地点からライトデータの末尾までが、書き込みが失敗したデータとして検出する。一方、ライトデータのサイズが大きい場合や、アドレスの連続した書き込み要求が続いている場合(アドレスが連続する複数のライトコマンドがまとめて処理されている場合)、図12のようにライトフォルト発生地点よりライトデータの末尾までが非常に長いため、ヘッドがライトデータの末尾に到達する前に、エラーが解除され、再度書き込みを開始することが可能となる。ディスクインターフェイス5はディスク6より書き込み可能信号が送られるのを待ち、書き込み可能になった時点で、書き込みを再開する。その際は、ライトフォルト発生時点から再書き込みを開始した地点までを、書き込み失敗したデータとして検出する。
S42では、エラーの発生原因がディスクの欠陥によるものか判定し、もしディスク欠陥によるものである場合は(S42のYES)、リトライ処理を行う(S46)。リトライ処理では、再度同一アドレスにデータの書き込みを行い、そのディスク上の位置が欠陥であるかを調べる。そのため、再書き込みを行うたびに、ディスク1周の回転待ちを行う。欠陥と判断した場合、当該ディスク上の位置を欠陥セクタとして登録し、代替の位置にデータを格納する。代替の位置は、ディスク、不揮発性メモリのどちらに設けても構わない。
エラーの発生原因がディスクの欠陥でないと判断した場合は(S42のNO)、不揮発性メモリ迅速利用判定機能12により、不揮発性メモリ8が迅速にアクセス可能であるかを再度、検査する(S43)。可能であれば(S43のYES)、S41で検出した書き込みに失敗したデータを書き込むライトコマンドを不揮発性メモリコマンドキュー11に格納する(S45)。すなわち、ディスクインターフェイス5は、ディスク6に対する書き込みのエラーが発生したら、書き込みに失敗したデータを書き込むためのライトコマンドを生成し、生成したライトコマンドを不揮発性メモリコマンドキュー11に格納する書き込みエラー処理部を含む。一方、不揮発性メモリ8に迅速にアクセスできる状況でなければ(S43のNO)、書き込みに失敗したデータを書き込むためのライトコマンドをディスクコマンドキュー10に格納する(S44)。ここで図6のS31において行われた、不揮発性メモリ8に迅速にアクセス可能であるどうかの判定結果を利用することにより、S43での再検査を省略してもよい。すなわち、S31で不揮発性メモリ8に迅速にアクセス可能である判定が得られた場合はS42からS45に直接進み、そうでない場合はS42からS44に直接進むこととしてもよい。
図6において、S38での読み出し中に、読み出し不可信号(読み出しエラー信号)を受け取った場合(リードフォルトが発生した場合)、直ちに読み出し処理を停止し、リードフォルト処理を行う。ライトフォルトと同様に、読み出し不可信号が発生する際、その原因となった現象を知ることができ、位置決め制御のエラー、外部要因によるエラー、ディスクの欠陥によるエラーを検出することが出来る。リードフォルト処理のフローチャートを図13に示す。読み出しに失敗したデータを検出し(S51)、リードフォルトの原因が、ディスク上の欠陥であるか判断する(S52)。ディスク上の欠陥の可能性のある場合(S52のYES)、リトライ処理を行う(S54)。このリトライ処理では、要求データの読み出しを再度行い、読み出すことができなかった場合、読出しエラーをホスト1に通知する。リードフォルトの原因がディスク上の欠陥でないと判断した場合(S52のNO)、読み出しに失敗したデータを読み出すリードコマンドをディスクコマンドキュー10に格納する(S53)。
図2に戻り、不揮発性メモリアクセス選択機能(第1の要求手段)16は、不揮発性コマンドキュー11に格納されたコマンドから実行すべきコマンドを選択し、選択したコマンドを、不揮発性メモリインターフェイス(アクセス制御部)7へ送る。不揮発性メモリインターフェイス7は、受理したコマンドを実行して、不揮発性メモリ8に対しデータの読み出し・書き込みを行う。不揮発性メモリアクセス選択機能16のコマンド選択方法としては、不揮発性メモリコマンドキュー11に格納された順に選択する方法、(処理速度の速い)読み出しコマンドの順に選択する方法が挙げられる。リードコマンドを実行した場合、読み出したデータをキャッシュメモリ4に格納し、ホスト1への転送を開始する。ライトコマンドを実行した場合、書き込み要求されたデータの書き込みが終了した時点で、コマンドの実行完了となる。
不揮発性メモリ8の容量を空けるため、不揮発性メモリ8に格納されたデータをディスク6に書き込む処理を行ってもよい。本処理は、スループットへの影響が少ないときに行うことが望ましい。例えば、ディスクコマンドキュー10、不揮発性コマンドキュー11にコマンドが格納さていないときが挙げられる。本処理では、ディスク6に書き込みたいデータを不揮発性メモリ8からキャッシュメモリ4に読み出す。その際、不揮発性メモリコマンドキュー11にリードコマンドを登録することにより読み出しを実行してもよい。次に、キャッシュメモリ4に読み出されたデータをディスク6に書き込む。その際、ライトコマンドをディスクコマンドキュー10に格納し行っても良い。
本発明の一実施の形態としてのハードディスクドライブ(HDD :Hard Disk Drive)の構成を示すブロック図 図1のHDDの構成を詳細に示すブロック図。 ライトコマンドが受理された場合に行う処理を説明するフローチャート。 図3のS12を詳細に説明するフローチャート。 リードコマンドが受理された場合に行う処理を説明するフローチャート。 ディスク6へのアクセスを実行開始する際に行う処理を説明するフローチャート。 ヘッドと要求データとが成す角度を説明する図。 最短アクセス時間とシーク時間とを示す図。 高速リオーダリングを説明する図。 ライトフォルト処理の流れを示すフローチャート。 書き込み失敗したデータの検出例を説明する図。 書き込み失敗したデータの検出例を説明する図。 リードフォルト処理の流れを示すフローチャート。 リオーダリングによる効果を説明する図。 STF (Shortest Time First)アルゴリズムを説明する図。 通常速度のシークと、高速シークとを説明する図。 ライトフォルトのペナルティを説明する図。 単一のコマンドキューを示す図。
符号の説明
1:ホスト
2:ハードディスクドライブ(HDD)
3:フロー制御部
4:キャッシュメモリ
5:ディスクインターフェイス
6:ディスク
7:不揮発性メモリインターフェイス
8:不揮発性メモリ
9:ホストインターフェイス
10:ディスクコマンドキュー
11:不揮発性メモリコマンドキュー
12:不揮発性メモリ迅速利用判定機能
13(1)、13(2):シーク時間情報
14:ディスクアクセス選択機能
15(1)、15(2):シークプロファイル情報
16:不揮発性メモリアクセス選択機能
17:シーク制御部

Claims (11)

  1. データを読み書き可能なディスク状記憶媒体と、
    実行要求された読み出しまたは書き込みコマンドにしたがって、ディスクヘッドを高速にシークさせる高速シークおよび低速にシークさせる低速シークにより前記ディスクヘッドをシークしてデータの読み出しまたは書き込みを行うシーク制御部と、
    データを読み書き可能な不揮発性メモリと、
    実行要求された読み出しまたは書き込みのコマンドにしたがって前記不揮発性メモリに対しデータの読み出しまたは書き込みを行うアクセス制御部と、
    ホストからデータの読み出しまたは書き込みを指示するコマンドを受け取るコマンド受取手段と、
    前記コマンド受取部により受け取られた前記コマンドを前記シーク制御部および前記アクセス制御部のいずれに実行させるかを決定する決定手段と、
    前記シーク制御部に実行させるべきと決定されたコマンドを格納する第1のコマンド格納部と、
    前記アクセス制御部に実行させるべきと決定されたコマンドを格納する第2のコマンド格納部と、
    前記第2のコマンド格納部内からコマンドを選択し、選択したコマンドの実行を前記アクセス制御部に要求する第1の要求手段と、
    前記不揮発性メモリの利用状況を検出する利用状況検出手段と、
    前記利用状況が低いとき、前記第1のコマンド格納部に格納された書き込みコマンドおよび読み出しコマンドのうち前記シーク制御部に次に実行させるとした場合に前記ディスクヘッドをアクセス開始位置に最も早く到達させることが可能なコマンドを、前記書き込みコマンドについては高速シークにより前記読み出しコマンドについては低速シークにより前記ディスクヘッドをシークさせると想定して選択する第1の選択部と、
    前記第1の選択部により選択されたコマンドが書き込みコマンドである場合、前記高速シークを指定して前記シーク制御部に実行要求し、前記第1の選択部により選択したコマンドが読み出しコマンドである場合、前記低速シークを指定して前記シーク制御部に実行要求する、第2の要求手段と、
    前記第2の要求手段によって要求された前記書き込みコマンドの実行中に書き込みエラーを検出し、書き込みに失敗したデータを書き込むことを指示する書き込みコマンドを前記第2のコマンド格納部に格納する書き込みエラー処理部と、
    前記不揮発性メモリの利用状況が高いとき、前記第1のコマンド格納部に格納された書き込みコマンドおよび読み出しコマンドのうち前記シーク制御部に次に実行させるとした場合に前記ディスクヘッドをアクセス開始位置に最も早く到達させることが可能なコマンドを前記低速シークにより前記ディスクヘッドをシークさせると想定して選択する第2の選択部と、
    前記第2の選択部により選択されたコマンドの実行を前記低速シークを指定して前記シーク制御部に要求する第3の要求手段と、
    を備えたハードディスクドライブ。
  2. 前記利用状況検出手段は、前記書き込みエラー処理部により書き込みエラーが検出されたら、前記不揮発性メモリの利用状況を検出し、
    前記書き込みエラー処理部は、前記不揮発性メモリの利用状況が低いときは、前記書き込みに失敗したデータを書き込むことを指示する書き込みコマンドを前記第2のコマンド格納部に格納し、前記不揮発性メモリの利用状況が高いときは、前記書き込みコマンドを前記第1のコマンド格納部に格納する、
    ことを特徴とする請求項1に記載のハードディスクドライブ。
  3. 前記利用状況検出手段は、前記不揮発性メモリの利用状況として、前記不揮発性メモリの空き容量から、前記第2のコマンド格納部内の各書き込みコマンドにより書き込み要求されているデータ量の総和を減算した残存容量を検出し、
    前記第1の選択部は、前記残存容量が第1の閾値以上であるとき前記利用状況が低いと判断する、
    ことを特徴とする請求項1または2に記載のハードディスクドライブ。
  4. 前記利用状況検出手段は、前記不揮発性メモリの利用状況として、前記不揮発性メモリの空き容量から、前記第2のコマンド格納部内の各書き込みコマンドにより書き込み要求されているデータ量の総和を減算した残存容量を検出し、
    前記書き込みエラー処理部は、前記残存容量が第1の閾値以上であるとき前記利用状況が低いと判断する、
    ことを特徴とする請求項2に記載のハードディスクドライブ。
  5. 前記利用状況検出手段は、前記不揮発性メモリの利用状況として、前記第2のコマンド格納部内の書き込みコマンドおよび読み出しコマンドの実行に要する時間の合計を計算し、
    前記第1の選択部は、前記合計が第2の閾値以下であるとき前記利用状況が低いと判断する、
    ことを特徴とする請求項1または2に記載のハードディスクドライブ。
  6. 前記利用状況検出手段は、前記不揮発性メモリの利用状況として、前記第2のコマンド格納部内の書き込みコマンドおよび読み出しコマンドの実行に要する時間の合計を計算し、
    前記書き込みエラー処理部は、前記合計が第2の閾値以下であるとき前記利用状況が低いと判断する、
    ことを特徴とする請求項2に記載のハードディスクドライブ。
  7. 前記第2の要求手段は、前記第1の選択手段により選択された書き込みコマンドについて前記ディスクヘッドを前記高速シークさせるとした場合のアクセス開始時刻と、前記低速シークさせるとした場合のアクセス開始時刻とを比較し、これらのアクセス開始時刻が同一であるときは、前記シーク制御部に対し前記低速シークを指定する、
    ことを特徴とする請求項1ないし6のいずれか一項に記載のハードディスクドライブ。
  8. 前記書き込みエラー処理部は、前記書き込みコマンドの実行中に書き込みエラーが発生したら、前記書き込みコマンドにより書き込み要求されているデータにおいて前記エラーが発生した地点以降の部分を前記書き込みに失敗したデータとして検出する、
    ことを特徴とする請求項1ないし7のいずれか一項に記載のハードディスクドライブ。
  9. 前記シーク制御部は、前記書き込みコマンドの実行中に書き込みエラーが発生したらエラーが解除されるまで待機し、前記エラーが解除されたら書き込みを再開し、
    前記書き込みエラー処理部は、前記書き込みコマンドにより書き込み要求されているデータのうち前記エラーが発生した地点から前記書き込みを再開した地点までの部分を前記書き込みに失敗したデータとして検出する、
    ことを特徴とする請求項1ないし7のいずれか一項に記載のハードディスクドライブ。
  10. 前記決定手段は、前記ディスク状記憶媒体を回転駆動するディスクモーターのオン/オフの状態、前記第1のコマンド格納部内のコマンド数、前記不揮発性メモリの空き容量から前記第2のコマンド格納部内の各書き込みコマンドにより書き込み要求されているデータの総和を減算した残存容量、の少なくともいずれかを用いて前記コマンド受取部により受け取られたコマンドを前記シーク制御部および前記アクセス制御部のいずれに実行させるかを決定する、
    ことを特徴とする請求項1ないし9のいずれか一項に記載のハードディスクドライブ。
  11. ディスクヘッドによりデータを読み書き可能なディスク状記憶媒体と、データを読み書き可能な不揮発性メモリと、を備えたハードディスクドライブにおいて実行するコマンド実行方法であって、
    ホストからデータの読み出しまたは書き込みを指示するコマンドを受け取り、
    受け取られた前記コマンドの実行を前記ディスク状記憶媒体および前記不揮発性メモリのいずれに対して行うかを決定し、
    前記ディスク状記憶媒体に決定された場合第1のコマンド格納部に前記コマンドを格納し、前記不揮発性メモリに決定された場合第2のコマンド格納部に前記コマンドを格納し、
    前記不揮発性メモリの利用状況を検出し、
    前記利用状況が低いとき、前記第1のコマンド格納部に格納された書き込みコマンドおよび読み出しコマンドのうち次に実行するとした場合に前記ディスクヘッドをアクセス開始位置に最も早く到達させることが可能なコマンドを、前記書き込みコマンドについては高速シークにより前記読み出しコマンドについては低速シークにより前記ディスクヘッドをシークさせると想定して選択し、
    選択されたコマンドが書き込みコマンドである場合、前記書き込みコマンドを前記高速シークにより実行し、選択したコマンドが読み出しコマンドである場合、前記読み出しコマンドを前記低速シークにより実行し、
    前記書き込みコマンドの実行中に書き込みエラーを検出したら、書き込みに失敗したデータを書き込むことを指示する書き込みコマンドを前記第2のコマンド格納部に格納し、
    前記不揮発性メモリの利用状況が高いとき、前記第1のコマンド格納部に格納された書き込みコマンドおよび読み出しコマンドのうち次に実行するとした場合に前記ディスクヘッドをアクセス開始位置に最も早く到達させることが可能なコマンドを前記低速シークにより前記ディスクヘッドをシークさせると想定して選択し、
    選択されたコマンドを前記低速シークにより実行する、
    ことを特徴とするコマンド実行方法。
JP2006338368A 2006-12-15 2006-12-15 ハードディスクドライブおよびコマンド実行方法 Expired - Fee Related JP4234753B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2006338368A JP4234753B2 (ja) 2006-12-15 2006-12-15 ハードディスクドライブおよびコマンド実行方法
US11/858,354 US7477477B2 (en) 2006-12-15 2007-09-20 Hard disk drive and command execution method
KR1020070104601A KR20080056082A (ko) 2006-12-15 2007-10-17 하드디스크드라이브 및 명령 실행 방법
CNA2007101988704A CN101206554A (zh) 2006-12-15 2007-12-14 硬盘驱动器以及命令执行方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006338368A JP4234753B2 (ja) 2006-12-15 2006-12-15 ハードディスクドライブおよびコマンド実行方法

Publications (2)

Publication Number Publication Date
JP2008152440A JP2008152440A (ja) 2008-07-03
JP4234753B2 true JP4234753B2 (ja) 2009-03-04

Family

ID=39526873

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006338368A Expired - Fee Related JP4234753B2 (ja) 2006-12-15 2006-12-15 ハードディスクドライブおよびコマンド実行方法

Country Status (4)

Country Link
US (1) US7477477B2 (ja)
JP (1) JP4234753B2 (ja)
KR (1) KR20080056082A (ja)
CN (1) CN101206554A (ja)

Families Citing this family (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8694714B2 (en) * 2008-01-18 2014-04-08 Spansion Llc Retargeting of a write operation retry in the event of a write operation failure
US20100146205A1 (en) * 2008-12-08 2010-06-10 Seagate Technology Llc Storage device and method of writing data
KR20100091379A (ko) * 2009-02-10 2010-08-19 삼성전자주식회사 반도체 디스크 장치 및 그것의 프로그램 페일 처리 방법
US8341339B1 (en) 2010-06-14 2012-12-25 Western Digital Technologies, Inc. Hybrid drive garbage collecting a non-volatile semiconductor memory by migrating valid data to a disk
US8959284B1 (en) 2010-06-28 2015-02-17 Western Digital Technologies, Inc. Disk drive steering write data to write cache based on workload
US9146875B1 (en) 2010-08-09 2015-09-29 Western Digital Technologies, Inc. Hybrid drive converting non-volatile semiconductor memory to read only based on life remaining
US8639872B1 (en) 2010-08-13 2014-01-28 Western Digital Technologies, Inc. Hybrid drive comprising write cache spanning non-volatile semiconductor memory and disk
US9268499B1 (en) 2010-08-13 2016-02-23 Western Digital Technologies, Inc. Hybrid drive migrating high workload data from disk to non-volatile semiconductor memory
US9058280B1 (en) 2010-08-13 2015-06-16 Western Digital Technologies, Inc. Hybrid drive migrating data from disk to non-volatile semiconductor memory based on accumulated access time
US8775720B1 (en) 2010-08-31 2014-07-08 Western Digital Technologies, Inc. Hybrid drive balancing execution times for non-volatile semiconductor memory and disk
US8683295B1 (en) 2010-08-31 2014-03-25 Western Digital Technologies, Inc. Hybrid drive writing extended error correction code symbols to disk for data sectors stored in non-volatile semiconductor memory
US8782334B1 (en) 2010-09-10 2014-07-15 Western Digital Technologies, Inc. Hybrid drive copying disk cache to non-volatile semiconductor memory
US8825977B1 (en) 2010-09-28 2014-09-02 Western Digital Technologies, Inc. Hybrid drive writing copy of data to disk when non-volatile semiconductor memory nears end of life
US8825976B1 (en) 2010-09-28 2014-09-02 Western Digital Technologies, Inc. Hybrid drive executing biased migration policy during host boot to migrate data to a non-volatile semiconductor memory
US8670205B1 (en) 2010-09-29 2014-03-11 Western Digital Technologies, Inc. Hybrid drive changing power mode of disk channel when frequency of write data exceeds a threshold
US8699171B1 (en) 2010-09-30 2014-04-15 Western Digital Technologies, Inc. Disk drive selecting head for write operation based on environmental condition
US8427771B1 (en) 2010-10-21 2013-04-23 Western Digital Technologies, Inc. Hybrid drive storing copy of data in non-volatile semiconductor memory for suspect disk data sectors
US8429343B1 (en) 2010-10-21 2013-04-23 Western Digital Technologies, Inc. Hybrid drive employing non-volatile semiconductor memory to facilitate refreshing disk
US8612798B1 (en) 2010-10-21 2013-12-17 Western Digital Technologies, Inc. Hybrid drive storing write data in non-volatile semiconductor memory if write verify of disk fails
US8560759B1 (en) 2010-10-25 2013-10-15 Western Digital Technologies, Inc. Hybrid drive storing redundant copies of data on disk and in non-volatile semiconductor memory based on read frequency
US9069475B1 (en) 2010-10-26 2015-06-30 Western Digital Technologies, Inc. Hybrid drive selectively spinning up disk when powered on
US8719520B1 (en) * 2010-12-14 2014-05-06 Datadirect Networks, Inc. System and method for data migration between high-performance computing architectures and data storage devices with increased data reliability and integrity
US8630056B1 (en) 2011-09-12 2014-01-14 Western Digital Technologies, Inc. Hybrid drive adjusting spin-up profile based on cache status of non-volatile semiconductor memory
US8909889B1 (en) 2011-10-10 2014-12-09 Western Digital Technologies, Inc. Method and apparatus for servicing host commands by a disk drive
US9268701B1 (en) 2011-11-21 2016-02-23 Western Digital Technologies, Inc. Caching of data in data storage systems by managing the size of read and write cache based on a measurement of cache reliability
US8977803B2 (en) 2011-11-21 2015-03-10 Western Digital Technologies, Inc. Disk drive data caching using a multi-tiered memory
US8977804B1 (en) 2011-11-21 2015-03-10 Western Digital Technologies, Inc. Varying data redundancy in storage systems
US8904091B1 (en) 2011-12-22 2014-12-02 Western Digital Technologies, Inc. High performance media transport manager architecture for data storage systems
US9177607B2 (en) * 2012-05-16 2015-11-03 Seagate Technology Llc Logging disk recovery operations in a non-volatile solid-state memory cache
US8959281B1 (en) 2012-11-09 2015-02-17 Western Digital Technologies, Inc. Data management for a storage device
US9274966B1 (en) 2013-02-20 2016-03-01 Western Digital Technologies, Inc. Dynamically throttling host commands to disk drives
US9075538B2 (en) 2013-06-24 2015-07-07 Seagate Technology Llc Performance and power management for rotating data storage device
US9087545B2 (en) 2013-07-16 2015-07-21 Saegate Technology Llc Request management for rotating data storage media
US20150033066A1 (en) * 2013-07-26 2015-01-29 Seagate Technology Llc Partial write error recovery
US9141176B1 (en) 2013-07-29 2015-09-22 Western Digital Technologies, Inc. Power management for data storage device
CN104375781B (zh) * 2013-08-16 2019-07-23 深圳市腾讯计算机***有限公司 数据存取方法及装置
US9070379B2 (en) 2013-08-28 2015-06-30 Western Digital Technologies, Inc. Data migration for data storage device
US9323467B2 (en) 2013-10-29 2016-04-26 Western Digital Technologies, Inc. Data storage device startup
US9348747B2 (en) * 2013-10-29 2016-05-24 Seagate Technology Llc Solid state memory command queue in hybrid device
US8917471B1 (en) 2013-10-29 2014-12-23 Western Digital Technologies, Inc. Power management for data storage device
US9472222B2 (en) 2014-05-16 2016-10-18 Western Digital Technologies, Inc. Vibration mitigation for a data storage device
KR20160075165A (ko) * 2014-12-19 2016-06-29 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
EP3332319B1 (en) * 2015-10-23 2023-09-06 Hewlett-Packard Development Company, L.P. Write commands filtering
US10198208B2 (en) 2015-11-13 2019-02-05 International Business Machines Corporation Performing collective I/O operations within operating system processes
US11264056B1 (en) 2020-10-01 2022-03-01 Seagate Technology Llc System and method for write-retry management

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4530055A (en) * 1982-03-03 1985-07-16 Sperry Corporation Hierarchical memory system with variable regulation and priority of writeback from cache memory to bulk memory
JPH06282384A (ja) 1993-03-26 1994-10-07 Toshiba Corp ディスクドライブの制御方式
JPH0973618A (ja) 1995-09-07 1997-03-18 Toshiba Corp ディスク記録再生装置のヘッド位置決め制御システム及びそのシステムに適用する速度制御方法
GB2336023A (en) 1998-03-30 1999-10-06 Quantum Corp Disk drive with just-in-time data seek
JP3356106B2 (ja) 1999-04-02 2002-12-09 日本電気株式会社 磁気ディスク装置及びそのリトライ処理方法
JP2001100935A (ja) 1999-09-28 2001-04-13 Internatl Business Mach Corp <Ibm> ディスク装置およびその制御方法
JP2001236744A (ja) 2000-02-18 2001-08-31 Hitachi Ltd 情報記録再生方法及び情報記録再生装置

Also Published As

Publication number Publication date
KR20080056082A (ko) 2008-06-20
CN101206554A (zh) 2008-06-25
JP2008152440A (ja) 2008-07-03
US7477477B2 (en) 2009-01-13
US20080144209A1 (en) 2008-06-19

Similar Documents

Publication Publication Date Title
JP4234753B2 (ja) ハードディスクドライブおよびコマンド実行方法
US8560759B1 (en) Hybrid drive storing redundant copies of data on disk and in non-volatile semiconductor memory based on read frequency
JP4469906B2 (ja) 磁気ディスク装置及び同装置におけるデータリフレッシュ方法
US8578100B1 (en) Disk drive flushing write data in response to computed flush time
US6789163B2 (en) Optimizing data transfer performance through partial write command purging in a disc drive
JP5058060B2 (ja) データ記憶装置及び隣接トラック書き直し処理方法。
US20070168606A1 (en) Storage device using nonvolatile cache memory and control method thereof
JP4675881B2 (ja) 磁気ディスク装置およびその制御方法
US20080082744A1 (en) Storage system having data comparison function
US7415636B2 (en) Method and apparatus for replacement processing
JP5049835B2 (ja) ハイブリッド記録装置
US10346051B2 (en) Storage media performance management
US7941601B2 (en) Storage device using nonvolatile cache memory and control method thereof
US20120162809A1 (en) Magnetic disk drive and method of accessing a disk in the drive
US8154814B2 (en) Method of refreshing data stored on a disk
US20060212777A1 (en) Medium storage device and write path diagnosis method
US20060218361A1 (en) Electronic storage device with rapid data availability
US8959284B1 (en) Disk drive steering write data to write cache based on workload
JP4869416B2 (ja) 磁気ディスク装置及び同装置におけるデータリフレッシュ方法
US7526605B2 (en) System and method for optimizing random XOR command performance
US20060294310A1 (en) Write control method and storage apparatus
JP4872089B2 (ja) ディスクアレイ装置及びその制御装置並びに制御方法
US11907113B2 (en) Magnetic disk device and control method of magnetic disk device
JP2005243221A (ja) Hddのヘッド傾きを補正するためのシステム及び方法
JP3573599B2 (ja) ディスクアレイにおけるデータ回復方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080327

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20081203

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20081205

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20081211

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

Free format text: PAYMENT UNTIL: 20111219

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20121219

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20121219

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20131219

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees