メディアに書き込むべきライトデータを一時的に記憶するライトバッファと、前記メディアに書き込むべきライトデータのそれぞれと対応するライトコマンドに関する情報を登録するテーブルと、前記テーブルに登録されているライトコマンドの実行順序を決定するキャッシュマネージャと、を備え、前記キャッシュマネージャは、前記メディアへの書き込み完了後にコマンド完了通知をホストへ送信するメディア書き込み強制コマンドを取得した場合、非メディア書き込み強制コマンドを取得した場合よりも高い優先度においてその実行順序を決定し、前記ライトバッファはリングバッファ方式のバッファであり、前記キャッシュマネージャは、予め定められた基準に基づいて、前記基準を満たす場合は、前記メディア書き込み強制コマンド、もしくは、前記メディア書き込み強制コマンドを含み互いに関連付けられた一連のライトコマンドの実行順序を、最初の実行順序に設定し、前記基準を満たさない場合は、キャッシュされているライトコマンドの中で、最古のライトコマンドを最初の実行順序に設定し、前記メディア書き込み強制コマンド、もしくは、前記メディア書き込み強制コマンドを含み互いに関連付けられた一連のライトコマンドの実行順序を前記最古のライトコマンドの後の実行順序に設定する、ハードディスクドライブ。請求項1に記載のハードディスクドライブであって、前記メディア書き込み強制コマンド、もしくは、前記メディア書き込み強制コマンドを含み互いに関連付けられた一連のライトコマンドの後に実行されるライトコマンドをリオーダリングすることを特徴とするハードディスクドライブ。請求項2に記載のハードディスクドライブであって、前記リオーダリングは、RPORotationalPositioningOptimizationアルゴリズムにより並べ替えることを特徴とするハードディスクドライブ。請求項2に記載のハードディスクドライブであって、前記基準は予め定められた前記ライトバッファに格納されたコマンドの数であることを特徴とするハードディスクドライブ。請求項4に記載のハードディスクドライブであって、前記格納されたコマンドの数は、ライトコマンドの数であることを特徴とするハードディスクドライブ。請求項2に記載のハードディスクドライブであって、前記基準は予め定められた前記ライトバッファに格納されているライトコマンドに対応するデータセクタ数であることを特徴とするハードディスクドライブ。請求項2に記載のハードディスクドライブであって、前記基準は予め定められた前記ライトバッファに格納されているライトコマンドの実行時間であることを特徴とするハードディスクドライブ。請求項7に記載のハードディスクドライブであって、前記ライトコマンドの実行時間はエラーによるリトライ処理と実行時のばらつきに関する係数を乗じた実行時間であることを特徴とするハードディスクドライブ。請求項2に記載のハードディスクドライブであって、前記基準は予め定められた前記ライトバッファの空き容量であることを特徴とするハードディスクドライブ。ホストとHDDとの間のインターフェース仕様として、SCSIやATA規格が知られているが、次期規格であるATAstandard7において、新たにFUAForcedUnitAccessシリーズのコマンドがサポートされる。ホストからFUAコマンドを取得したHDDは、ライトキャッシュがONの状態にあっても、そのライトデータを磁気ディスクに書き込んだ後に、ホストに対してコマンド完了通知を送らなければならない。ライトキャッシュがONの場合、キャッシュされたライトデータは、電源ダウンなどなんらかの理由によって磁気ディスクに書き込まれない場合が考えられる。ホストは、FUAコマンドを発行することによって、ライトデータが磁気ディスクに確実に書き込まれたことを確認することができるので、クリティカルなデータが磁気ディスクに書き込まれずに消失することを防止することができる。一方、重要度の低いデータについては、ホストは通常のコマンド非FUAコマンドを発行してライトを指示する。これによってライトキャッシュ機能を利用し、ホストとHDDのパフォーマンスの向上を図ることができる。このように、FUAコマンドは、データ書き込みの安全性とパフォーマンスの両立を図る技術であるといえる。しかしながら、ライトキャッシュがONである場合、FUAコマンドを取得したタイミングにおいて、HDDがすでに複数のライトコマンドをキャッシュしているケースが頻繁に起こる。例えば、既に5つのライトコマンドがキャッシュされているとすると、新たに取得されたFUAコマンドは、その5つのライトコマンドの終了を待って実行されることも考えられる。HDDは、FUAコマンドの完了通知を、対応データが磁気ディスクに書き込まれるまでホストに送信しない。このため、ホストは、次のコマンド発行のために、FUAコマンド完了の他に、5つの他のライトコマンドの実行完了を待たなければならない。従って、FUAコマンドを含むライトコマンドの実行順序を決定する新たな手法が必要とされる。また、FUAコマンドの実行順序決定において、ホストの待ち時間減少の観点の他に、HDDのスループット等を考慮することも重要な点の一つである。本発明は上述のような事情を背景としてなされたものであって、ハードディスクにおけるライトコマンド実行順序の決定手法を改善し、データの安全性とホストとデータ記憶装置のデータ処理効率の向上を図ることを目的とする。本発明の第1の態様に係るデータ記憶装置は、メディアに書き込むべきライトデータを一時的に記憶するライトバッファと、前記メディアに書き込むべきライトデータのそれぞれと対応するライトコマンドに関する情報を登録するテーブルと、前記テーブルに登録されているライトコマンドの実行順序を決定するキャッシュマネージャと、を備え、前記キャッシュマネージャは、前記メディアへの書き込み完了後にコマンド完了通知をホストへ送信するメディア書き込み強制コマンドを取得した場合、非メディア書き込み強制コマンドを取得した場合よりも高い優先度においてその実行順序を決定し、前記ライトバッファはリングバッファ方式のバッファであり、前記キャッシュマネージャは、予め定められた基準に基づいて、前記基準を満たす場合は、前記メディア書き込み強制コマンド、もしくは、前記メディア書き込み強制コマンドを含み互いに関連付けられた一連のライトコマンドの実行順序を、最初の実行順序に設定し、前記基準を満たさない場合は、キャッシュされているライトコマンドの中で、最古のライトコマンドを最初の実行順序に設定し、前記メディア書き込み強制コマンド、もしくは、前記メディア書き込み強制コマンドを含み互いに関連付けられた一連のライトコマンドの実行順序を前記最古のライトコマンドの後の実行順序に設定するものである。本発明の第2の態様は、上記第1の態様において、前記メディア書き込み強制コマンド、もしくは、前記メディア書き込み強制コマンドを含み互いに関連付けられた一連のライトコマンドの後に実行されるライトコマンドをリオーダリングするものである。本発明の第3の態様は、上記第2の態様において、前記リオーダリングは、RPOアルゴリズムにより並べ替えるものである。本発明の第4の態様は、上記第2の態様において、前記基準は予め定められた前記ライトバッファに格納されたコマンドの数である。本発明の第5の態様は、上記第4の態様において、前記格納されたコマンドの数は、ライトコマンドの数である。本発明の第6の態様は、上記第2の態様において、前記基準は予め定められた前記ライトバッファに格納されているライトコマンドに対応するデータセクタ数である。本発明の第7の態様は、上記第2の態様において、前記基準は予め定められた前記ライトバッファに格納されているライトコマンドの実行時間である。本発明の第8の態様は、上記第7の態様において、前記ライトコマンドの実行時間はエラーによるリトライ処理と実行時のばらつきに関する係数を乗じた実行時間である。本発明の第9の態様は、上記第2の態様において、前記基準は予め定められた前記ライトバッファの空き容量である。本発明によれは、ライトコマンド実行順序の決定手法を改善し、データの安全性とホストとデータ記憶装置のデータ処理効率の向上を図ることができる。以下に、本発明を適用可能な実施の形態を説明する。説明の明確化のため、以下の記載及び図面は、適宜、省略及び簡略化がなされている。又、各図面において、同一要素には同一の符号が付されており、説明の明確化のため、必要に応じて重複説明は省略されている。本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。本実施形態は、データ記憶装置のライトキャッシュONの状態において、ライトコマンドの実行順序メディアへの書き込み順序の決定手法に特徴を備え、特に、ホストへのコマンド完了通知をメディアへの書き込み完了後に行うライトコマンドの実行順序の決定手法に特徴を備える。本発明の理解の容易のため、最初に、データ記憶装置の一例であるハードディスクドライブHDDの全体構成の概略を説明する。図1は、本実施の形態に係るHDD1の構成を模式的に示すブロック図である。図1に示すように、HDD1は、密閉されたエンクロージャ10内に、メディア記録媒体の一例である磁気ディスク11、ヘッド素子部12、アーム電子回路アームエレクトロニクス:AE13、スピンドルモータSPM14、ボイスコイルモータVCM15、そしてアクチュエータ16を備えている。HDD1は、エンクロージャ10の外側に固定された回路基板20を備えている。回路基板20上には、リードライトチャネルR/Wチャネル21、モータドライバユニット22、ハードディスクコントローラHDCとMPUの集積回路以下、HDC/MPU23、及びメモリの一例であるRAM24などの各ICを備えている。尚、各回路構成は一つのICに集積すること、あるいは、複数のICに分けて実装することができる。外部ホスト51からのライトデータは、HDC/MPU23によって受信され、R/Wチャネル21、AE13を介して、ヘッド素子部12によって磁気ディスク11に書き込まれる。また、磁気ディスク11に記憶されているリードデータはヘッド素子部12によって読み出され、そのリードデータは、AE13、R/Wチャネル21を介して、HDC/MPU23から外部ホスト51に出力される。次に、HDD1の各構成要素について説明する。磁気ディスク11は、SPM14に固定されている。SPM14は所定の速度で磁気ディスク11を回転する。HDC/MPU23からの制御データに従って、モータドライバユニット22がSPM14を駆動する。本例の磁気ディスク11は、データを記録する記録面を両面に備え、各記録面に対応するヘッド素子部12が設けられている。各ヘッド素子部12はスライダ不図示に固定されている。また、スライダはアクチュエータ16に固定されている。アクチュエータ16はVCM15に連結され、回転軸を中心に揺動することによって、ヘッド素子部12及びスライダを磁気ディスク11上において半径方向に移動する。モータドライバユニット22は、HDC/MPU23からの制御データに従ってVCM15を駆動する。ヘッド素子部12には、典型的には、磁気ディスク11への記録データに応じて電気信号を磁界に変換する記録ヘッド、及び磁気ディスク11からの磁界を電気信号に変換する再生ヘッドを備えている。なお、磁気ディスク11は、1枚以上あればよく、記録面は磁気ディスク11の片面あるいは両面に形成することができる。続いて各回路部の説明を行う。AE13は、複数のヘッド素子部12の中からデータアクセスが行われる1つのヘッド素子部12を選択し、選択されたヘッド素子部12により再生される再生信号を一定のゲインで増幅プリアンプし、R/Wチャネル21に送る。また、R/Wチャネル21からの記録信号を選択されたヘッド素子部12に送る。R/Wチャネル21は、ホスト51から転送されたデータについて、ライト処理を実行する。ライト処理において、R/Wチャネル21はHDC/MPU23から供給されたライトデータをコード変調し、更にコード変調されたライトデータをライト信号に変換してAE13に供給する。また、ホスト51にデータを供給する際にはリード処理を行う。リード処理において、R/Wチャネル21はAE13から供給されたリード信号を一定の振幅となるように増幅し、取得したリード信号からデータを抽出し、デコード処理を行う。読み出されるデータは、ユーザデータとサーボデータを含む。デコード処理されたリードデータは、HDC/MPU23に供給される。HDC/MPU23において、MPUはRAM24にロードされたマイクロコードに従って動作する。HDD1の起動に伴い、RAM24には、MPU上で動作するマイクロコードの他、制御及びデータ処理に必要とされるデータが磁気ディスク11あるいはROM不図示からロードされる。HDC/MPU23は、コマンド実行順序の管理、ヘッド素子部12のポジショニング制御、インターフェース制御、ディフェクト管理などのデータ処理に関する必要な処理の他、HDD1の全体制御を実行する。HDC/MPU23は、R/Wチャネル21から取得した磁気ディスク11からのリードデータを、ホスト51に伝送する。磁気ディスク11からのリードデータは、RAM24内のリードバッファに一旦格納された後、HDC/MPU23を介してホスト51に転送される。また、ホスト51からのライトデータは、HDC/MPU23を介して、RAM24内のライトバッファに一旦格納され、その後、所定のタイミングでHDC/MPU23を介して磁気ディスク11に転送される。続いて、本実施形態に係るHDD1のライトキャッシュ処理について説明する。本形態のHDD1はライトキャッシュがオンの状態であり、ライトデータのライトバッファへの格納が完了したタイミングで、対応するライトコマンドの完了通知をホスト51に送信することができる。ホスト51は、HDD1からコマンド完了通知を受信した段階で、HDD1に対して新たなコマンドを発行することができる。また、本形態のHDD1は及びホスト51は、HDD1からホスト51へのコマンド完了通知を、記録ディスク11への書き込み完了後に行うライトコマンドをサポートする。このようなライトコマンドの最も典型的な一例は、ATAStandard7で標準化されているFUAForcedUnitAccessシリーズのコマンドである。ホスト51からFUAコマンドを取得したHDD1は、ライトキャッシュがONの状態にあっても、そのライトデータを磁気ディスク11に書き込んだ後に、ホスト51に対してコマンド完了通知を送信する。ATAStandard7において、FUAコマンドはWRITEDMAEXTENDFUAやWRITEDMAMULTIPLEEXTENDFUAなどを備えている。以下の説明においてはFUAコマンドを例として本形態の説明を行う。また、以下において、特に明示のないライトコマンドはFUA以外のコマンド非FUAコマンドであり、ライトデータがライトバッファに格納された後、磁気ディスク11に書き込む前に、コマンド完了通知がホスト51に送られる。以下において、未実行磁気ディスク11へのデータ書き込みが未完了のライトコマンドがキューされているタイミングで、HDD1がホスト51からFUAコマンドを取得した場合における、コマンド実行順序の決定について説明する。HDD1は、非FUAコマンドだけをキャッシュしている場合、効率的な内部処理を行うため、RPORotationalPositioningOptimization等のアルゴリズムを使用して、ライトデータの磁気ディスク11への書き出し順序を最適化する。FUAコマンドが発行された場合、HDD1はそのコマンドの実行が完了するまで、つまりライトデータの磁気ディスク11への書き込みが完了するまで、コマンド完了通知を返すことができず、HDD1とホスト51との間のインターフェースがビジー状態となる。このため、FUAコマンドをホスト51から取得した場合、取得したライトコマンドが非FUAコマンドである場合よりも、高い優先度においてライトコマンドの実行順序を再決定リオーダリングすることが好ましい。好ましい例の一つにおいて、HDD1は、ホスト51からFUAコマンドを受信すると、既にキャッシュされている他のライトコマンドに対して最優先で、そのFUAコマンドを実行する。つまり、キャッシュされている全てのライトコマンドよりも前に、最初に新たに発行されたFUAコマンドを実行する。図2は、FUAコマンドを最初の順序で実行する例を示している。図2aに示すように、HDD1は、5つのライトコマンドWRを、WR1-WR2-WR3-WR4-WR5の順序で、ホスト51から取得している。その後、図2bに示すように、ライトコマンドのリオーダリングを実行する。各ライトコマンドは、非FUAコマンドであるので、RPOなどの従来のアルゴリズムに従って、リオーダリングを実行する。図2bの例においては、実行順序は、WR2-WR3-WR1-WR5-WR4の順に設定されている。図2cに示すように、これらのライトコマンドRWを実行する前に、HDD1はホスト51からFUAコマンドを受信する。すると、HDD1は、図2dに示すように、FUAコマンドを最優先としてコマンドの実行順序を並べ替える。つまり、新たに取得したFUAコマンドの実行順序を最初とする。このように、FUAコマンドの実行順序を未実行ライトコマンドの内の最初の順序に設定することにとって、コマンド完了通知の返信遅れによるホスト51の処理効率低下を抑制することができる。ここで、好ましくは、FUAコマンドを実行順序の先頭に設定すると共に、その後に実行される他のライトコマンドWRについて、その実行順序のリオーダリングを再実行する。図2eの例において、FUAコマンドの実行順序を最初1番目に設定したことに応じて、ライトコマンドWR2の実行順序が、2番目から5番目に変更されている。FUAコマンドを実行した後のヘッド素子部12と磁気ディスク11の位置関係を考慮すると、元の事項順序WR2-WR3-WR1-WR5-WR4が最も効率的な実行順序であるとは限らない。そこで、FUAコマンドの最後のLBALogicalBlockAddressを基準として、再度、リオーダリング処理を実行して、実行順序の並べ替えを行う。これによって、より効率的なライトコマンド実行処理を実現することができる。図3及び図4は、取得したFUAコマンドの実行順序を、非FUAコマンドを取得した場合よりも高い優先度において決定する他の好ましい例を示している。本例において、FUAコマンドが互いに関連づけられた一連のコマンドに含まれる場合、その一連のコマンドをセットとして、最優先で実行順序を設定する。具体的には、HDD1は、シーケンシャルライトと呼ぶライトオペレーションをサポートしている。シーケンシャルライトは、キャッシュされているライトコマンドの中で、そのLBAライトデータ書き込むLBAが予め定められた範囲内にある場合、それらライトコマンドに対応するライトデータを、1回の書き込み処理で磁気ディスク11へ書き込む。近接するライトデータの磁気ディスク11への書き込みを、1回の書き込み処理として実行することによって、書き込み処理のオーバーヘッドを低減し、書き込み時間の短縮を図ることができる。まず、図3を参照して、シーケンシャルライトが実行されるライトコマンドの関係について説明する。2つのライトコマンドの間において、第1のライトコマンドの最終LBと第2のライトコマンドの先頭LABとの差が、基準値以下の場合にシーケンシャルライトが実行される。例えば、図3aに示すように、2つのライトコマンドのLBAが連続している場合、HDD1はこれら2つのライトコマンドのシーケンシャルライトを実行する。図3aの例において、第1のライトコマンドWR1の先頭LBAが200h、その最終LBAは27Fhである。一方、第2のライトコマンドWR2の先頭LBAが280h、その最終LBAは2FFhである。この場合、HDD1は、LBA200hから2FFhまでのセクタに、ライトデータを1回の書き込み処理で磁気ディスク11に書き込む。あるいは、図3bに示すように、2つのライトコマンドのLBAが重なっている場合に、HDD1はシーケンシャルライトを実行する。つまり、第2のライトコマンドWR2の先頭LBAが、第1のライトコマンドWR1のLBA領域先頭LBAから最終LBAまでの間の領域に含まれている場合である。図3bの例においては、第1のライトコマンドWR1の先頭LBAが200h、その最終LBAは2BFhである。一方、第2のライトコマンドWR2の先頭LBAが280h、その最終LBAは2FFhである。この場合、HDD1は、LABが重なっているアドレス部分280h~2BFhにおいて、古いデータ第1ライトコマンドのライトデータを消去するDiscard処理を実行した後、LBA200hから2FFhまでのライトデータを1回の書き込み処理で磁気ディスク11に書き込む。あるいは、図3cに示すように、2つのライトコマンドのLBAが連続していない、あるいは重なっていない場合であっても、その間隔が予め定められた基準値以下の場合には、HDD1はシーケンシャルライトを実行する。図3cの例において、第1のライトコマンドWR1の先頭LBAが200h、その最終LBAは27Fhである。一方、第2のライトコマンドWR2の先頭LBAが290h、その最終LBAは2FFhである。例えば、基準値が40hである場合、これら2つのライトコマンドをシーケンシャルライトで一括に書き込む。この場合、HDD1は、LBA280hから28Fhまでは、磁気ディスク11にデータを書き込むことなくスキップする。図4は、シーケンシャルライトをサポートするHDD1において、FUAコマンドをホスト51から受信した場合の実行順序決定処理を示している。本例において、HDD1は、取得したFUAコマンドとシーケンシャルライトを実行するライトコマンドがキューされている場合、その一連のシーケンシャルライトを最優先として実行順序を決定する。具体的には、図4aに示すように、HDD1は、5つのライトコマンドWRを、WR1-WR2-WR3-WR4-WR5の順序で、ホスト51から取得している。続いて、図4bに示すように、ライトコマンドのリオーダリングを実行して、実行順序をWR2-WR3-WR1-WR5-WR4の順に設定する。図4cに示すように、これらのライトコマンドWRを実行する前に、HDD1はホスト51からFUAコマンドを受信する。すると、HDD1は、図4dに示すように、FUAコマンドとシーケンシャルライトの関係にあるライトコマンドを探す。本例においては、ライトコマンドWR3がFUAコマンドとシーケンシャルライトの関係にあるため、これらが関連付けられる。さらに、図4eに示すように、FUAコマンド及びそれとシーケンシャルライトの関係にあるコマンド群が最優先として、その実行順序が最初に設定される。コマンド群の間においては、シーケンシャルライトの書き込み順序に従って順序決定される。本例においては、ライトコマンドWR3のライトデータがFUAコマンドの前に書き込まれる。このように、FUAコマンドを受信した場合、それとシーケンシャルライトの関係にあるコマンド群をまとめて優先することによって、ホスト51対するコマンド完了通知遅延の抑制と、HDD1内における処理効率化を同時に図ることができる。なお、図2を参照して説明したように、互いに関連づけられたコマンド群を最優先で実行順序決定した後、これらの最終LBAを基準として、その後のライトコマンドの実行順序を再設定することが好ましい。図5は、取得したFUAコマンドの実行順序を、非FUAコマンドを取得した場合よりも高い優先度において決定する他の好ましい例を示している。本例において、ライトデータを一時的に記憶するライトバッファとして、リングバッファ方式を使用する。リングバッファ方式は、ホストからのライトデータを、前のアドレスから後ろのアドレスに時系列的に格納していく。ライトバッファをその終端位置まで使い切った時には、ライトバッファの先端位置に戻る。このとき、先端位置に記憶されているライトデータがまだ磁気ディスク11に書き出されていない場合、ライトバッファは新たなライトデータを格納することができないため、次のライトデータをホストから受信することができない。このため、リングバッファ方式においては、磁気ディスク11への書き出し未完了のデータの内、最古のライトデータを早く磁気ディスク11に書き出すことが好ましい。つまり、最も古い未実行コマンドを優先的に実行することが好ましい。本例において、HDD1は、FUAコマンドを、未実行の最古のライトコマンドよりも後の順序で実行する。具体的に説明する。図5aに示すように、HDD1は、ホストからWR1-WR2-WR3-WR4-WR5の順序で、ライトコマンドを受信したとする。図5bは、RPOに従ってリオーダリングした場合の各コマンドの実行順序を示している。本例では、WR2-WR3-WR1-WR5-WR4の順に設定される。ここで、図5cに示すように、HDD1がホスト51からFUAコマンドを受信する。図2の例に従えば、FUAコマンドは、図5dに示すように、最初の実行順序に設定される。しかし、上述のように、リングバッファ方式のライトバッファにおいては、最古のコマンドを優先して実行することがバッファの空き領域を確保することにつながる。そこで、本例において、図5eに示すように、最初にホスト51から取得したライトコマンドWR1の実行順序を最初に設定する。さらに、FUAコマンドをライトコマンドWR1の次の実行順序に設定する。これによって、リングバッファ方式において空き領域を確保しつつ、FUAコマンドの実行遅延によるホスト51の待ち時間の増加を抑制することができる。なお、FUAコマンドの早期実行の点からは、FUAコマンド実行順序を2番目に設定することが好ましいが、FUAコマンドを優先する限り、これに限定されるものではない。上述のように、ホスト51の待ち時間を短縮する観点からはFUAコマンドを優先的に実行することが好ましい。しかし、HDD1の処理制御においては、HDD1のスループットなど、他の特性を優先することが好ましい場合がある。従って、HDD1は、複数の異なる実行順序決定方法を備え、FUAコマンドを受信した場合、予め定められた基準に従って、複数の決定方法の中から最適な決定方法を選択することが好ましい。実行順序決定方法は、図2-4を参照して説明したように、FUAコマンドを最優先として実行順序を決定する決定方法など、FUAコマンドを受信した場合に非FUAコマンドよりも高い優先度で実行順序を決定する方法の他、FUAコマンドを考慮しないRPOなど、FUAコマンドを非FUAコマンドと区別することなく実行順序を決定する方法を含む。例えば、HDD1は、図6aに示すよう、5つのライトコマンドWRを、WR1-WR2-WR3-WR4-WR5の順序で、ホスト51から取得する。続いて、図6bに示すように、RPOなどのリオーダリングを実行して、実行順序をWR2-WR3-WR1-WR5-WR4の順に設定する。さらに、図6cに示すように、これらのライトコマンドWRを実行する前に、HDD1はホスト51からFUAコマンドを受信する。ここで、HDD1は、予め定められている条件に従って実行順序決定方法を選択する。例えば、図6dに示すように、HDD1は、FUAコマンドに係わりなく、RPOに従ってライトコマンドの実行順序が決定される。図6dの例においては、FUAコマンドは6つのライトコマンドの最後に設定されている。あるいは、図6eに示すように、FUAコマンドを優先してリオーダリングを実行する。図6eの例においては、新たに取得したFUAコマンドを最初の実行順序に設定している。以下においては、FUAを優先するFUA優先決定方法と、FUAコマンドに係わらずHDD1のスループット優先で書き込み効率優先でリオーダリングする方法スループット優先決定方法の2つを備える例を説明する。HDD1が実行順序の決定方法を選択するいくつかの基準について説明を行う。一つの好ましい例において、HDD1は、ライトバッファの空き容量に基づいて実行順序決定方法を選択する。具体的には、ライトバッファの空き容量が多い場合、HDD1はFUA優先決定方法を選択する。一方、少ない場合は、スループット優先決定方法を選択する。図7のフローチャートを参照して、具体的に説明する。HDD1は、FUAコマンドを含まない複数の未実行ライトコマンドを、スループット優先決定方法に従って、リオーダリングするS11。その後、HDD1は、FUAコマンドを取得するとS12、ライトバッファの空き容量を計算し、その空き容量が予め定められた基準値未満であるかを判定するS13。基準値未満である場合、HDD1はFUAコマンドを優先することなく、HDD1のスループットを優先して、スループット優先決定方法を選択するS14。一方、ライトバッファの空き容量が基準値以上である場合、HDD1はFUAコマンドを優先してコマンド実行順序を決定するS15。つまり、HDD1はFUA優先決定方法を選択してライトコマンドの実行順序を決定する。このように、FUAコマンドを取得した場合、ライトバッファの空き容量に従って実行順序決定方法を変化させることによって、ライトバッファの空きが十分にあるときには、早くホスト51とのインターフェースをレディにし、後続コマンドを受信するようにする。一方、ライトバッファの空きに余裕がないときは、磁気ディスク11への書き込みを優先してライトバッファが早く空くように処理することができる。他の好ましい例において、HDD1は、既にキャッシュされているライトコマンドのコマンド数図6の例では5つに基づいて実行順序決定方法を選択する。具体的には、キャッシュされているライトコマンド数が多い場合、HDD1はスループット優先決定方法を選択する。一方、少ない場合は、FUA優先決定方法を選択する。図8のフローチャートを参照して、具体的に説明する。HDD1は、FUAコマンドを含まない複数の未実行ライトコマンドを、スループット優先決定方法に従って、リオーダリングするS21。その後、HDD1は、FUAコマンドを所得するとS22、キャッシュされているライトコマンド数を計算し、その数が予め定められた基準値未満であるかを判定するS23。図6の例においては、ライトコマンド数は5である。ライトコマンド数が基準値以上である場合、HDD1はFUAコマンドを優先することなく、HDD1のスループットを優先して、スループット優先決定方法を選択するS24。一方、キャッシュされているライトコマンド数が基準値未満である場合、HDD1はFUAコマンドを優先してコマンド実行順序を決定するS25。つまり、HDD1はFUA優先決定方法を選択してライトコマンドの実行順序を決定する。このように、FUAコマンドを取得した場合、ライトコマンド数に従って実行順序決定方法を変化させることによってライトバッファにキャッシュしているライトコマンドが少ないときは、早くインターフェースをレディにし、後続コマンドを受信するようにし、キャッシュしているライトコマンドが多いときには、磁気ディスク11への書き込みを優先してライトバッファが早く空くように処理する。キャッシュされているライトコマンド数の他に、キャッシュされているライトコマンドに対応するライトデータのセクタ数に基づいて実行順序決定方法を選択することは、他の好ましい例である。セクタ数が多い場合、HDD1はスループット優先決定方法を選択する。一方、少ない場合は、FUA優先決定方法を選択する。HDD1は、FUAコマンドを取得すると、キャッシュされているライトコマンドのデータセクタ数ライトデータ量を合計し、それが基準値以上であるか判定する。基準値以上である場合、HDD1はスループット優先決定方法を選択し、基準値未満である場合、FUA優先決定方法を選択する。なお、セクタ数の算出に、新たに取得したFUAコマンドのライトデータを含むことができる。このように、書き込むデータセクタ数に従って実行順序決定方法を変化させることによって、ライトバッファにキャッシュしているライトデータが少ないときは、早くインターフェースをレディにして後続コマンドを受信するようにし、キャッシュしているライトデータが多いときには、磁気ディスク11の書き込みを優先してライトバッファが早く空くように処理する。あるいは、キャッシュされているライトコマンドの実行時間に基づいて実行順序決定方法を選択することは、他の好ましい例である。実行時間が基準値より短い場合、HDD1はスループット優先決定方法を選択する。一方、実行時間が基準値より長い場合は、FUA優先決定方法を選択する。HDD1は、FUAコマンドを取得すると、スループット優先でリオーダリングしたのち、FUAの実行までに実行される各ライトコマンドの実行時間を計算する。実行時間は、シーク時間、回転待ち時間、そして書き込み時間を含む。これらの実行時間を合計し、その値が基準値以上であるか判定する。基準値以上である場合、HDD1はFUA優先決定方式を選択し、基準値未満である場合、スループット優先決定方式を選択する。なお、実行時間の計算において、シーク時間と書き込み時間に対して、エラーによるリトライ処理と実行時のバラツキを考慮した係数をかけることが好ましい。このように、書き込みの実行時間に従って実行順序決定方法を変化させることによってFUAコマンドの完了通知があまりにも遅くなることを防ぐことができる。つまり、メディアへの書き込みにおいて効率的な順序が選ばれたことにより、FUAコマンドの処理が後回しになると、場合によっては、FUAコマンドがタイムアウトになる可能性がある。実行時間を予測して、規定時間内にFUAコマンドの完了通知をすることで、FUAコマンドのタイムアウトを防ぐことができる。なお、FUAコマンドを取得したとき、FUAコマンドを含まず、キャッシュされているライトコマンドの実行時間のみを使用して、実行時間の基準値に対する判定をしてもよい。本形態においては、HDC/MPU23が上述のライトキャッシュ制御を行う。そこで、HDC/MPU23のライトキャッシュ制御処理の詳細について説明する。図9は、HDD1において、ライトキャッシュ制御に関する構成を示すブロック図である。HDC/MPU23は、ハードウェア構成として、ホストインターフェース231、ドライブインターフェース232及びメモリマネージャ233を備えている。マイクロコードがMPU上で動作することによって、MPUは、ホストインターフェースマネージャ234、コマンド実行マネージャ235及びキャッシュマネージャ236として機能することができる。メモリRAM24はコマンド及びデータを一時的に記憶し、ライトバッファ241及びライトキャッシュテーブル247として機能する。ホストインターフェース231は、ホスト51との間における実際のデータ伝送処理を実行し、データ伝送部として機能する。ドライブインターフェース232は、磁気ディスク11との間あるいはリードライトチャネル21との間における実際のデータ入出力処理を行う。メモリマネージャ233はRAMメモリ24のデータ記憶を制御し、HDC/MPU23内の他の機能ブロックとRAM24との間におけるコマンド及びユーザデータライト/リードデータの仲介処理を行う。ホストインターフェースマネージャ234はホストインターフェース231を管理するデータ伝送制御部として機能し、ホストインターフェース231との間において所定の通知あるいは命令の授受を行う。キャッシュマネージャ236は、キューされているライトコマンドの再スケジューリングを実行し、適切なコマンド実行順序を決定する。コマンド実行マネージャ235は、キャッシュマネージャ236によって決定された順序に従って、コマンドの実行を制御する。さらに、ドライブインターフェース232を制御することによって、磁気ディスク11との間のデータ書き込み及びデータ読み出しを制御する。図10は、ライトキャッシュテーブル247の一例を示している。図10において、コマンド番号は、ライトキャッシュテーブル247における各コマンドの識別子である。コマンドタイプは、各ライトコマンドがFUAコマンドであるか否かを示す。データ長は、ライトコマンドに対応するライトデータのデータ長、バッファ内開始位置はライトバッファ内におけるライトデータの記憶開始位置である。磁気ディスクへの書き込み順序は、各ライトデータの磁気ディスク11への書き出し順序であり、図の例では、Wr1から順に磁気ディスク11に書き出される。ライトコマンドのリオーダリング処理の動作について説明する。ホスト51からライトコマンド及びライトデータをホストインターフェース231が受信すると、メモリマネージャ233は、ライトバッファ241にライトデータを格納する。キャッシュマネージャ236は、ライトコマンドをライトキャッシュテーブル247に記録する。つまり、ホストインターフェース231は、ホストインターフェースマネージャ234、を介して、キャッシュマネージャ236にライトコマンドの受信、そのコマンドタイプ、LBALogicalBlockAddress、データ長を通知する。キャッシュマネージャ236は、ライトコマンドを受信すると、ライトキャッシュテーブル247の空いているレコードの各エントリに、ライトコマンドに関するデータを記録する。ライトキャッシュテーブル247への登録タイミングにおいて、このライトコマンドの実行順序は、例えば、最後の順序とすることができる。受信したライトコマンドが非FUAコマンドの場合、キャッシュマネージャ236は、ホストインターフェースマネージャ234に、コマンド完了通知をホスト51に返すように要求する。ホストインターフェースマネージャ234は、ホストインターフェース231を介して、ホスト51にコマンド完了通知を返す。さらに、キャッシュマネージャ236は、各ライトコマンドの実行順序、つまり、ライトデータの磁気ディスク11への書き出し順序のリオーダリングを実行する。このとき、キャッシュマネージャ236は、上述の実行順序決定方法に従って実行順序を決定する。一方、受信したライトコマンドがFUAコマンドの場合、コマンド完了通知をホスト51に返すことなく、キャッシュマネージャ236は、各ライトコマンドの実行順序を決定する。この際、キャッシュマネージャ236は、上述のように、所定の条件に依存する実行順序決定方法に従って、ライトコマンドのリオーダリングを実行する。その後、キャッシュマネージャ236は、コマンド実行マネージャ235に実行すべきライトコマンドを通知する。コマンド実行マネージャ235は、ドライブインターフェース232に、実行ライトコマンドのライトデータを磁気ディスク11に書き込むことを指示する。ドライブインターフェース232は、メモリマネージャ233を介して、ライトバッファ241からライトデータを取得し、磁気ディスク11に書き込むためにそのライトデータを転送する。磁気ディスク11への書き込みが完了すると、ドライブインターフェース232からコマンド実行マネージャ235に、書き込みが完了したことが通知される。FUAコマンドの実行が完了した場合、コマンド実行マネージャ235は、ホストインターフェースマネージャ234に、FUAコマンドの完了通知をホスト51に送信することを要求する。ホストインターフェースマネージャ234は、その要求に応答して、ホスト51にFUAコマンドの完了通知を返す。尚、上記の説明は、本発明の実施形態を説明するものであり、本発明が上記の実施形態に限定されるものではない。当業者であれば、上記の実施形態の各要素を、本発明の範囲において容易に変更、追加、変換することが可能である。例えば、本形態のライトバッファ制御を、磁気ディスク以外のメディアを利用するデータ記憶装置に適用することができる。