JP2005215729A - データ伝送制御方法及び記憶装置 - Google Patents
データ伝送制御方法及び記憶装置 Download PDFInfo
- Publication number
- JP2005215729A JP2005215729A JP2004017998A JP2004017998A JP2005215729A JP 2005215729 A JP2005215729 A JP 2005215729A JP 2004017998 A JP2004017998 A JP 2004017998A JP 2004017998 A JP2004017998 A JP 2004017998A JP 2005215729 A JP2005215729 A JP 2005215729A
- Authority
- JP
- Japan
- Prior art keywords
- command
- data
- host
- commands
- data transmission
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0674—Disk device
- G06F3/0676—Magnetic disk device
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
【課題】
コマンド終了通知のタイミングを制御してHDDのパフォーマンスを向上する。
【解決手段】
コマンド終了通知のホスト110への送信は、ホスト・インターフェース・マネージャ221によって管理される。キューされている2つのライト・コマンドに対するライト・データの各アドレスが連続する場合、又は、各アドレスが近傍であって周回待ちなく磁気ディスクへアクセスすることができる場合、ホスト・インターフェース・マネージャ221は、最初のライト・コマンド(X)に対するコマンド終了通知(X)の送信を延期する。次のコマンドのライト・データ(Y)の転送及びメディアへの書き出しが終了した後、2つのコマンドの終了通知(X)、(Y)を同時に行う。
【選択図】 図8
コマンド終了通知のタイミングを制御してHDDのパフォーマンスを向上する。
【解決手段】
コマンド終了通知のホスト110への送信は、ホスト・インターフェース・マネージャ221によって管理される。キューされている2つのライト・コマンドに対するライト・データの各アドレスが連続する場合、又は、各アドレスが近傍であって周回待ちなく磁気ディスクへアクセスすることができる場合、ホスト・インターフェース・マネージャ221は、最初のライト・コマンド(X)に対するコマンド終了通知(X)の送信を延期する。次のコマンドのライト・データ(Y)の転送及びメディアへの書き出しが終了した後、2つのコマンドの終了通知(X)、(Y)を同時に行う。
【選択図】 図8
Description
本発明はデータ伝送制御方法及び記憶装置に関し、特に、コマンド終了通知のタイミング制御に関する。
情報記録再生装置として、光ディスクや磁気テープなどの様々な態様のメディアを使用する装置が知られている。その中で、ハード・ディスク・ドライブは、コンピュータの記憶装置として広く普及し、現在のコンピュータ・システムにおいて欠かすことができない記憶装置の一つとなっている。さらに、コンピュータにとどまらず、動画像記録再生装置、カーナビゲーション・システム、あるいはデジタル・カメラなどで使用されるリムーバブルメモリなど、ハード・ディスク・ドライブの用途は、その優れた特性により益々拡大している。
ハード・ディスク・ドライブで使用される磁気ディスクは、同心円状に形成された複数のトラックを有しており、各トラックは複数のセクタに区分されている。各セクタにはセクタのアドレス情報と、ユーザ・データが記憶される。ヘッドがセクタのアドレス情報に従って所望のセクタにアクセスすることによって、セクタへのデータ書き込みあるいはセクタからのデータ読み出しを行うことができる。データ読み出し処理において、ヘッドが磁気ディスクから読み出した信号は、信号処理回路によって波形整形や復号処理などの所定の信号処理が施され、ホストに送信される。ホストからの転送データは、信号処理回路によって同様に所定処理された後に、磁気ディスクに書き込まれる。
ホストとハード・ディスク・ドライブとの間のデータ伝送のためのインターフェースは、SCSIインターフェースやATAインターフェースなどのプロトコルが一般に使用されている。特に、ATAインターフェースは、インターフェース機能の向上と低コストの点から、多くのコンピュータにおいて利用され、また、光ディスク記憶装置などの他のタイプに記憶装置のインターフェースとしても広く利用されている。記憶媒体の記録密度の向上及びパフォーマンス向上への要求から、ATAインターフェースのデータ転送速度に対する要求は、益々厳しいものになっている。このため、従来のパラレル伝送による伝送方式に代えて、シリアル転送によるATAインターフェースが提案されている。
シリアルATAの規格は、"Serial ATA Working Group"によって策定が進められている。既にリリースされている"Serial ATA II:Extensions to Serial ATA 1.0 Specification"において、従来のパラレルATAにないいくつかの技術が採用されている。その中の一つとして、NCQ(Native Command Queuing)と呼ばれるコマンド・キューイングの技術が採用されている。NCQは、ハード・ディスク・ドライブ自身が、キューされているコマンドの実行順序を内部的に決定することを可能としている。これによって、ハード・ディスク・ドライブの機械的内部動作に起因するレイテンシを効果的に低減することが可能となる。
NCQの特徴的な技術の一つは、コマンド終了通知の発行に関する。キューされるコマンドのステータスは、ホストのSActiveレジスタによって管理される。SActiveレジスタの対応ビットをクリアすることによって、キューされていたコマンドのステータスを、未終了から終了に変更することができる。SActiveレジスタのビット・クリアは、ハード・ディスク・ドライブからの"Set Device Bits FIS"とよばれるデータ・フレームによって実行される。このコマンド終了通知の送信タイミングは、いつに行うこともできる。例えば、ハード・ディスク・ドライブは、複数のコマンドに対応する"Set Device Bits FIS"を連続してホストに送信する、あるいは、一つの"Set Device Bits FIS"において2つのコマンドの終了をホストに通知することができる。
NCQに関わらず、コマンド終了通知の制御に関する技術として、例えば、特許文献1は、新規コマンドを受け入れによるセクタ・バッファのデータ上書き防止のため、コマンドコンプリート信号の発行タイミングを制御する技術を開示している。既保持の書き込みコマンドが実行待ち状態にあるとき、新たな書き込みコマンドを受け取り、既保持コマンドのLBAとの位置関係を表すヒット・ステータスをチェックし、記録媒体への書き込み順序を再配列し、再配列された書き込み順序に従って媒体に書き込みデータを記録する処理を行う。このとき、セクタ・バッファの空き領域が規定の基準値以下であり、かつヒット・ステータスがNOHITであるときには受け入れたコマンドに対するコマンドコンプリート信号を発行せず、媒体への記録処理を優先する。
しかし、特許文献1は、セクタ・バッファのデータ上書き防止の観点からコマンド終了通知の送信タイミングを制御するものであるため、例えば、シーク時間や回転待ち時間などメディア・アクセスの観点、あるいは、キューされているコマンドの再スケジューリングの観点から、適切なパフォーマンス向上を図ることができない。本発明は上記のような事情を背景としてなされたものであって、本発明の目的は、コマンド終了通知の発行を制御することによって、記憶装置のパフォーマンスを向上することである。
本発明の第1の態様はデータ伝送制御方法であって、ホストと記憶装置との間におけるデータの伝送を制御するデータ伝送制御方法であって、キューされている第1コマンドを取得するステップと、前記第1コマンドに対する第1データのアドレス情報を取得するステップと、前記第1データを、ホストと記憶装置との間において伝送するステップと、キューされている第2コマンドを取得するステップと、前記第2コマンドに対する第2データのアドレス情報を取得するステップと、前記第1及び第2データのアドレス情報に基づいて、前記第1コマンドの終了通知の伝送を前記記憶装置から前記ホストに行う前に前記ホストと前記記憶装置の間において前記第2データの伝送を行うかを決定するステップと、前記決定するステップにおける決定に従って、前記第2データを前記ホストと前記記憶装置の間において伝送するステップと、前記第1コマンドのコマンド処理が終了し、前記第2データの伝送の後に、前記第1コマンドの終了通知を前記ホストに伝送するステップと、を有する。第1及び第2データのアドレス情報に基づいて、第1コマンドの終了通知の伝送と前記第2データの伝送の順序を制御するので、記憶装置のパフォーマンスを向上することができる。
前記決定するステップにおいて、前記第1データのアドレスと前記第2データのアドレスの差が所定値以下である場合に、前記第1コマンドのコマンド終了通知の伝送前に、前記第2データの伝送を行うと決定されることが好ましい。
前記第1及び第2のコマンドは、回転するメディアへのメディア・アクセスを行うものであり、前記決定するステップにおいて、前記第1及び第2データのアドレス情報に基づいて、前記第1データのメディア・アクセス後に、周回待ちすることなく前記第2データのメディア・アクセスが可能な場合に、前記第1コマンドのコマンド終了通知の伝送前に、前記第2データの伝送を行うと決定されることが好ましい。
前記第1及び第2のコマンドはメディアへのデータのライト・コマンドである場合に、本発明は特に有用である。あるいは、前記第1及び第2コマンドは、回転するメディアへのデータ・ライトを行うコマンドであり、前記第2コマンドは前記第1コマンドの次にキューされており、前記決定するステップにおいて、前記第1及び第2データのアドレス情報に基づいて、前記第1データのメディアへのライト後に周回待ちすることなく前記第2データのメディアへのライトが可能な場合に、前記第1コマンドのコマンド終了通知の伝送前に、前記第2データの伝送を行うと決定されることが好ましい。
前記第1及び第2コマンドは、回転するメディアへのデータ・ライトを行うコマンドであり、前記第2コマンドは前記第1コマンドの次にキューされており、前記決定するステップにおいて、前記第2データのアドレスが前記第1データのアドレスに連続する場合に、前記第1コマンドのコマンド終了通知の伝送前に、前記第2データの伝送を行うと決定されることが好ましい。
本発明の第2の態様はデータ伝送制御方法であって、ホストと記憶装置との間におけるデータの伝送を制御するデータ伝送制御方法であって、キューされている第1コマンドを取得するステップと、前記第1コマンドを実行するステップと、キューされているコマンドの情報を取得するステップと、前記第1コマンドの実行時間と前記キューされているコマンドの再スケジューリング時間に基づき、前記第1コマンドのコマンド終了通知のタイミングを決定するステップと、を有する。これによって、適切な再スケジューリングを可能とする。
前記第1コマンドの実行時間は、前記第1コマンドに対するデータのセクタ長によって決定されることが好ましい。あるいは、前記第1コマンドの実行時間は、前記第1コマンドに対するデータのメディア・アクセス時間によって決定されることが好ましい。または、前記キューされているコマンドの再スケジューリング時間は、前記キューされているコマンドのコマンド数によって決定されることが好ましい。もしくは、前記第1コマンドに対するデータのセクタ長が所定値以下であり、前記キューされているコマンドのコマンド数が所定数以上である場合、前記第1のコマンドに対するコマンド終了通知が延期されることが好ましい。
前記第1コマンドに対するデータのメディア・アクセス時間が所定値以下であり、前記キューされているコマンドのコマンド数が所定数以上である場合、前記第1のコマンドに対するコマンド終了通知が延期されることが好ましい。前記第1のコマンドに対するコマンド終了通知は、前記キューされているコマンドの再スケジューリング終了後に伝送されることができる。
本発明の第3の態様はデータ伝送制御方法であって、ホストと記憶装置との間におけるデータの伝送を制御するデータ伝送制御方法であって、メディアへのアクセスを行うコマンドをコマンド・キューから取得するステップと、前記コマンドを実行するステップと、前記コマンドの実行時間が所定時間以上である場合に、前記ホストへの未送信のコマンド終了通知を前記ホストに伝送するステップと、を有する。これによって、未送信のコマンド終了通知を減らし、新たなコマンドの発行を可能とする。
本発明の第4の態様は記憶装置であって、ホストから伝送された複数のコマンドを記憶するコマンド・キューと、前記コマンド・キューに記憶されている第1のコマンドの次に第2のコマンドを実行することを決定するコマンド順序決定部と、前記第1コマンドに対する第1データのアドレス情報と、前記第2コマンドに対する第2データのアドレス情報とに基づき、前記第1コマンドの終了通知の前記ホストへの伝送タイミングを、前記第2データの前記ホストとの間の伝送後に延期することを決定する、データ伝送制御部と、前記データ伝送制御部の制御によって、前記第1データを前記ホストとの間において伝送し、前記第1コマンドのコマンド処理の終了及び前記第2データの伝送後に前記第1コマンドの終了通知を前記ホストに伝送する、データ伝送部と、を有する。第1及び第2データのアドレス情報に基づいて、第1コマンドの終了通知の伝送と前記第2データの伝送の順序を制御するので、記憶装置のパフォーマンスを向上することができる。
前記記憶装置はデータを記憶する回転するメディアを備え、前記第1及び第2コマンドは、前記メディアへのデータ・ライトを行うコマンドであり、前記データ伝送制御部は、前記第1データのアドレスと前記第2データのアドレスの差が所定値以下である場合に、前記第1コマンドの終了通知の前記ホストへの伝送タイミングを、前記第2データの前記ホストからの伝送後に延期することを決定することが好ましい。
前記記憶装置はデータを記憶する回転するメディアを備え、前記第1及び第2コマンドは、前記メディアへのデータ・ライトを行うコマンドであり、前記データ伝送制御部は、前記第2データのアドレスが前記第1データのアドレスに連続する場合に、前記第1コマンドの終了通知の前記ホストへの伝送タイミングを、前記第2データの前記ホストからの伝送後に延期することを決定することが好ましい。
本発明の第5の態様は記憶装置であって、データを記憶し回転するメディアと、ホストから伝送された複数のコマンドを記憶するコマンド・キューと、前記コマンド・キューに記憶されているコマンドの実行順序を決定する、コマンド順序決定部と、前記コマンド順序決定部によって決定され、前記メディアへのアクセスを行う実行コマンドのデータ長と、前記コマンド・キューに記憶されているコマンド数とに基づき、前記実行コマンドの終了通知を前記ホストへ伝送するタイミングを決定する、データ伝送制御部と、前記データ伝送制御部からの要求に応じて、前記コマンド終了通知を前記ホストに伝送するデータ伝送部と、を有する。実行コマンドのデータ長と、コマンド・キューに記憶されているコマンド数とに基づき、実行コマンドの終了通知を伝送するタイミングを決定することによって、コマンドの再スケジューリングを適切に行うことができる。
本発明の第6の態様は記憶装置であって、データを記憶し回転するメディアと、ホストから伝送された複数のコマンドを記憶するコマンド・キューと、前記コマンド・キューに記憶されているコマンドの実行順序を決定する、コマンド順序決定部と、前記コマンド順序決定部によって決定され、前記メディアへのアクセスを行う実行コマンドのアクセス時間と、前記コマンド・キューに記憶されているコマンド数とに基づき、前記実行コマンドの終了通知を前記ホストへ伝送するタイミングを決定する、データ伝送制御部と、前記データ伝送制御部からの要求に応じて、前記コマンド終了通知を前記ホストに伝送するデータ伝送部と、を有する。実行コマンドのアクセス時間と、コマンド・キューに記憶されているコマンド数とに基づき、実行コマンドの終了通知を伝送するタイミングを決定することによって、コマンドの再スケジューリングを適切に行うことができる。
本発明によれば、コマンド終了通知の発行を制御することによって、記憶装置のパフォーマンスを向上することができる。
以下に、本発明を適用可能な実施の形態が説明される。以下の説明は、本発明の実施形態を説明するものであり、本発明が以下の実施形態に限定されるものではない。説明の明確化のため、以下の記載及び図面は、適宜、省略及び簡略化がなされている。又、当業者であれば、以下の実施形態の各要素を、本発明の範囲において容易に変更、追加、変換することが可能である。尚、各図面において、同一要素には同一の符号が付されており、説明の明確化のため、必要に応じて重複説明は省略されている。
図1は、本実施形態におけるデータ処理システム100の概略構成を示す構成図である。データ処理システム100は、コンピュータやデジタル・カメラなど、データ処理を行うホスト110と、ホスト110から伝送されたデータを記憶する記憶装置であるハード・ディスク・ドライブ120を有している。ハード・ディスク・ドライブ120は、フレーム内に、メディアの一例として1もしくは複数の磁気ディスク121と、各磁気ディスクの記録面に対応する磁気ヘッド122を備えたヘッド・スタック・アセンブリ123と、磁気ディスク121へのデータの書き込み及び磁気ディスク121からのデータ読み出しのために、これらの要素を制御するコントローラ124とを備えている。
ホスト110から伝送されたホスト・ユーザ・データは、コントローラ124によって必要な処理がなされ、ライト信号に変換されたあと、ヘッド・スタック・アセンブリ123に送られる。磁気ヘッド122は、取得したライト信号に応じて、磁気ディスク121の記録面にデータを書き込む。一方、磁気ヘッド122によって磁気ディスクから読み出されたリード信号は、コントローラ124によってデジタル信号に変換され、必要な処理がなされたあと、ホスト110に伝送される。
磁気ディスク121は、磁性層が磁化されることによってデータを記録する不揮発性の記録媒体であり、ハード・ディスク・ドライブ120が動作しているときに、スピンドル・モータ125のスピンドル軸を中心として所定の一定速度で回転駆動される。ハード・ディスク・ドライブ120の非動作時には、磁気ディスク121は静止している。磁気ディスク121の表面には、データを格納するための区画として同心円状に複数のトラックが形成され、さらに、各トラックは円周方向に区分された複数のセクタを備えている。
磁気ディスク121の表面にはサーボ・データ記憶領域が形成されており、典型的には、磁気ディスク121は半径方向に沿って形成された複数のサーボ・データ記憶領域を有している。また、各セクタにおいてサーボ・データ記憶領域とユーザ・データ記憶領域とが形成されている。サーボ・データを磁気ヘッド122が読み取ることによって、磁気ヘッド122の位置に関する情報を取得することができる。サーボ・データは、トラック番号情報を備えるトラック・データ、セクタ番号情報を備えるセクタ・データ、及びバースト・パターンを有している。
ヘッド・スタック・アセンブリ123は、磁気ディスク121の表面に沿って揺動可能にフレーム内に取り付けられており、ボイス・コイル・モータ(VCM)126によって駆動される。ヘッド・スタック・アセンブリ123の先端部にはスライダと磁性薄膜素子とを有する磁気ヘッド122が設けられている。ヘッド・スタック・アセンブリ123が揺動することによって、磁気ヘッド122が磁気ディスク121の表面の半径方向に沿って移動する。これによって、磁気ヘッド122が所望のトラックにアクセスすることができる。
ヘッド・スタック・アセンブリ123は、一つの磁気ディスク121に対して2つの磁気ヘッド122を有しており、磁気ヘッドそれぞれが磁気ディスク121の各表裏面に対応する。磁気ヘッド122は、データ書き込み/読み出し処理を行わない場合、典型的には、磁気ディスク121の外側に配置されたランプ機構(不図示)に退避する、もしくは、CSS(Contact Start and Stop)方式においては、内周に配置されているCSSゾーンに退避する。磁気ヘッド122は、磁気ディスク121へのデータの書き込み、あるいは、磁気ディスク121からのサーボ・データ及びユーザ・データの読み出しを行う。
図1に示すように、コントローラ124は、リード/ライト・チャネル127、ハードディスク・コントローラ(HDC)128、マイクロプロセッサ・ユニット(MPU)129、メモリ130、サーボ・コントローラ133、モータ・ドライバ・ユニット134を有している。モータ・ドライバ・ユニット134は、ボイス・コイル・モータ・ドライバ(VCMドライバ)135及びスピンドル・モータ・ドライバ(SPMドライバ)136を有している。
リード/ライト・チャネル127は、ホスト110から取得したデータについて、ライト処理を実行する。ライト処理において、リード/ライト・チャネル127はHDC128から供給された書き込みデータをコード変調し、さらにコード変調された書き込みデータをライト信号(電流)に変換して磁気ヘッド122に供給する。磁気ヘッド122は、取得した信号に応じてコイルに電流を流すことによって磁気ディスク121にデータを書き込む。また、ホスト110にデータを供給する際にはリード処理を行う。リード処理において、リード/ライト・チャネル127は磁気ヘッド122から供給されたリード信号からデータを抽出し、デコード処理を行う。デコード処理された読み出しデータは、ハードディスク・コントローラ128に供給される。
MPU129は、メモリ130にロードされたマイクロ・コードに従って動作し、磁気ヘッド122のポジショニング制御、インターフェース制御、ディフェクト管理などのハード・ディスク・ドライブ120の全体の制御のほか、データ処理に関する必要な処理を実行する。ハード・ディスク・ドライブ120の起動に伴い、メモリ130には、MPU129上で動作するマイクロ・コードの他、制御及びデータ処理に必要とされるデータが磁気ディスク121あるいはROM(不図示)からロードされる。
リード/ライト・チャネル127によって読み出されるデジタル・データは、ホスト110からのユーザ・データの他に、サーボ・データを含んでいる。サーボ・コントローラ133はリード/ライト・チャネル127から取得した読み出しデータからサーボ・データを抽出する。サーボ・データは、トラック・データ、セクタ・データ、及びバースト・パターンを有している。抽出されたサーボ・データは、サーボ・コントローラ133からMPU129に転送される。
MPU129は、マイクロ・コードに従って、サーボ・データを使用した磁気ヘッド122の位置決め制御処理を行う。MPU129からの制御データはVCMドライバ134に出力される。VCMドライバ134は制御信号に応じて駆動電流をVCM126に供給する。また、MPU129は、マイクロ・コードに従って、スピンドル・モータ125の回転制御のために、モータ・ドライバ・ユニット134のレジスタにSPM制御データをセットする。SPMドライバ136は、セットされたSPM制御データに応じて、スピンドル・モータ125の回転制御を実行する。
HDC128は、ホスト110との間のインターフェース機能を備えており、ホスト110から伝送されるユーザ・データ及び、リード・コマンドやライト・コマンドを含む制御データなどを受信する。受信したユーザ・データは、リード/ライト・チャネル127に転送される。また、リード/ライト・チャネル127から取得した磁気ディスクからの読み出しデータ、あるいは、データ転送のための制御データをホスト110に送信する。HDC128は、この他、ユーザ・データについての誤り訂正処理などを実行する。
HDC128とホスト110との間における制御データ及びユーザ・データ伝送は、ハードディスク・コントローラ128及びMPU129上で動作するマイクロ・コードによって制御される。特に、本形態のハード・ディスク・ドライブ120は、ホスト110からの所定コマンドについて、コマンド・キューイングの機能を有している。ハードディスク・コントローラ128内におけるコマンド実行順序、あるいは、ホスト−デバイス間の制御データ及びユーザ・データ伝送順序は、ハード・ディスク・ドライブ120のパフォーマンス向上の観点から制御、管理される。
以下において、コマンド・キューイング、及び、ハード・ディスク・ドライブ120とホスト110との間におけるホスト−デバイス間のデータ伝送制御について説明される。本形態のホスト−デバイス間インターフェースにおいて、ハード・ディスク・ドライブ120が内部的に所定処理の実行順序を制御することができ、ハード・ディスク・ドライブ120のパフォーマンス向上を図ることができる。特に、本形態のホスト−デバイス間データ通信において、ハード・ディスク・ドライブ120からホスト110に対するコマンド終了通知の伝送タイミングが、パフォーマンス向上に寄与することができるように効果的に制御される。本形態のデータ伝送制御は、例えば、NCQ(Native Command Queuing)をサポートするSATAII(Serial ATA II)仕様に適用することによって、ドライブのパフォーマンス向上に寄与することが可能である。以下の説明においては、必要に応じてNCQに言及して本実施形態が説明されるが、本発明の適用範囲がNCQに限定されるものではない。
図2は、本形態のホスト−デバイス間インターフェースにおいて、ホスト−デバイス間の所定のデータ伝送を制御する論理構成を示すブロック図である。HDC128は、ホスト・インターフェース211、ドライブ・インターフェース212及びメモリ・マネージャ213を備えている。マイクロ・コードがMPU129上で動作することによって、MPU129は、ホスト・インターフェース・マネージャ221、コマンド実行マネージャ222、キュー・マネージャ223及びドライブ・マネージャ224として機能することができる。メモリ130はコマンド及びデータを一時的に記憶し、コマンド・キュー231及びデータ・バッファ232として機能することができる。
ホスト・インターフェース211は、ホスト110との間における実際のデータ伝送処理を実行し、データ伝送部として機能する。ドライブ・インターフェース212は、メディアの一例である磁気ディスク121との間(あるいはリード・ライト・チャネル127との間)における実際のデータ入出力処理を行う。メモリ・マネージャ213はメモリ130のデータ記憶を制御し、ハードディスク・コントローラ128内の他の機能ブロックとメモリ130との間におけるコマンド及びユーザ・データの仲介処理を行う。
ホスト・インターフェース・マネージャ221はホスト・インターフェース211を管理するデータ伝送制御部として機能し、ホスト・インターフェース211との間において所定の通知あるいは命令の授受を行う。また、ホスト・インターフェース・マネージャ221は、MPU129で機能する他の論理ブロックとハードディスク・コントローラ128との間のインターフェースとして機能する。ホスト・インターフェース・マネージャ221は、他の機能ブロックから取得した通知や要求などのデータに基づいて、ホスト・インターフェース211とホスト110との間のデータ転送順序を制御する。特に、ホスト110へのコマンド終了通知の発行タイミングを制御し、パフォーマンス向上に寄与する。
キュー・マネージャ223は、コマンド・キュー231にキューされているコマンドの再スケジューリングを実行し、パフォーマンス最適化の観点から適切なコマンド実行順序を決定するコマンド順序決定部として機能する。コマンド実行マネージャ222は、キュー・マネージャ223によって決定された順序に従って、コマンドの実行を制御する。ドライブ・マネージャ224はドライブ・インターフェース212を制御することによって、磁気ディスク121との間のデータ書き込み及びデータ読み出しを制御する。ドライブ・マネージャ224は、コマンド実行マネージャ222からの要求に応じて、ドライブ・インターフェース212を制御する。
本形態におけるコマンド・キューイングの基本的動作を説明する。尚、ホスト110から伝送されるコマンドは、キューされるコマンドの他、キューされないコマンドを含むことができる。例えば、SATAII仕様を例とすれば、NCQの他、DMA(Direct Memory Access)やPIO(Programmed I/O)などのプロトコルを同時にサポートすることができる。キューすべきコマンドは、例えば、コマンドに付される識別子を参照することによって、決定することができる。以下においては、キューされるコマンド及びそれに伴うデータ伝送について説明される。又、以下においては、キューされるコマンドとして、リード・コマンドとライト・コマンドが示される。
図3は、本形態におけるコマンドのデータ・フォーマットの一例を示している。図のデータ・フォーマットは、リード・コマンドあるいはライト・コマンドに適用することができる。本形態において、キューイングされるコマンドは、タグ・フィールドを含む。キューイングされる各コマンドは、各コマンドに対応するタグによって識別される。タグによって識別可能な未終了コマンドの数は、キューの深さに応じて決定される。NCQを例とすれば、32のコマンドのそれぞれが、0〜31を表すタグによって識別される。
図3における開始セクタは、転送要求されているデータの開始セクタを表している。セクタ数はその開始セクタからのセクタ数を表している。セクタは、例えば、LBA(Logical Block Addressing)によって特定することができる。コマンドには、さらに、リード・コマンドとライト・コマンドを識別するためのコマンドIDが付されている。この他、コマンドは、キャッシュ制御のためのデータなど、他の制御データ等を含むことができる。NCQを例として説明すれば、「Read FPDMA (First Party DMA) Queued」あるいは「Write FPDMA Queued」が、上記コマンドの一例に相当する。
ホスト110から伝送されたタグ付きのリードもしくはライト・コマンドは、ホスト・インターフェース211によって受信され、メモリ・マネージャ213を介してコマンド・キュー231に記憶される。ホスト・インターフェース211は、コマンドが入力されたことをホスト・インターフェース・マネージャ221に通知する。ホスト・インターフェース・マネージャ221は、ホスト・インターフェース211からの通知を受けると、ホスト・インターフェース211に、ビジーをクリアすることを要求する。コマンドを受信し、新たなコマンド受領が可能である段階で、ユーザ・データ転送前にビジーはクリアされる。
さらに、ホスト・インターフェース・マネージャ221は、キュー・マネージャ223にコマンド実行順序の再配列を要求する。コマンド・キュー231には、複数の未終了コマンドがキューされうる。パフォーマンスの点から最適な順序でコマンドが実行されるように、キュー・マネージャ223は、コマンド・キュー231内の未終了コマンドの実行順序を決定し、コマンド順序を再スケジューリングする。コマンド実行順序は、特に、シーク・レイテンシ時間及び回転レイテンシ時間を含むヘッドのメディア・アクセス時間の最短化が行われるように決定される。
再スケジューリングにおいて、キュー・マネージャ223は、所定アルゴリズムに従って、様々なパラメータを考慮して実行順序を決定する。例えば、シーク長、アクセス開始位置、アクチュエータ動作プロファイル、回転方向における位置決め、キャッシュ状態など、多くのパラメータが参照される。尚、コマンド実行順序の再スケジューリング・アルゴリズムは広く知られた技術であり、詳細な説明は省略される。
コマンド実行マネージャ222は、キュー・マネージャ223によって決定された順序に従ってコマンド実行を管理する。上記のように、本形態においては、ホスト−デバイス間のユーザ・データ転送は、ハード・ディスク・ドライブ120が内部的に制御することができる。ホスト110へのデータ転送あるいはホスト110からのデータ転送について、ハード・ディスク・ドライブ120が、内部処理におけるレイテンシ低減の観点から、最適なタイミングを決定することができる。
各コマンドに対応するデータ転送順序を順不同に決定することができることに加えて、一つのコマンドに対応するデータを、分割し、各部分データを順不同で転送することができることが、処理効率化の観点から好ましい。また、一つのコマンドに対応する部分データと部分データの転送の間に、他のコマンドの部分データを転送することができることが、さらに好ましい。例えば、NCQにおいて、オプションとして上記転送方法がサポートされている。NCQにおいて、"non-zero buffer offsets"が"Enable"、つまり、部分データを特定するオフセットの設定が可能であり、"guaranteed in-order delivery"が"Disable"である、つまり、順不同転送が可能である場合、部分データを上記方法によって転送することが可能である。以下の説明において、この条件が満たされているものとして説明が行われる。
ユーザ・データ転送をハード・ディスク・ドライブ120が制御するため、ハード・ディスク・ドライブ120は、ホスト110に対してデータ転送のためのセットアップ・フレームを発行する。図4は、本形態におけるセットアップ・フレームのデータ・フォーマットの一例を示している。NCQの"DMA Setup FIS(Frame Information Structure)"は、セットアップ・フレームの一例である。セットアップ・フレームは、リードもしくはライトのデータ転送方向を特定する転送方向を特定するフィールドを含む。タグ・フィールドは、データ転送が対応するキューされている未終了コマンドを特定する。上記のように、例えば、32のコマンドのそれぞれが、0〜31を表すタグによって識別される。
オフセット・フィールドは、一つのコマンドに対する部分データの転送を可能とするため、転送データのオフセットを特定する。NCQの"non-zero buffer offsets"は、オフセット・フィールドの一例である。転送データ・バイト・フィールドは、転送されるデータのバイト数を特定し、オフセットと共に一つのコマンドに対する部分データの転送を可能とする。セットアップ・フレームは、この他、フレーム・タイプや制御データ転送に関する情報などを含む制御データ・フィールドを含むことができる。
ユーザ・データ転送の終了に伴い、コマンド終了通知がハード・ディスク・ドライブ120からホスト110に送信される。本形態において、コマンド終了通知の転送はホスト・インターフェース・マネージャ221によって制御される。各コマンドに対応するコマンド終了通知のタイミングは、コマンド終了のタイミングの直後には限定されない。ハード・ディスク・ドライブ120は、パフォーマンス向上の観点から適切なタイミングにおいてコマンド終了通知をホスト110に出力することができる。例えば、複数のコマンドの処理が終了した後に、各コマンドの終了通知を連続して行うことが可能である。好ましくは、一つのコマンド終了通知によって、複数のコマンドが成功裏に終了したことを通知することができる。これによって、ホスト110へのインタラプト回数を低減することができる。
図5は、本形態におけるコマンド終了通知のデータ・フォーマットの一例を示している。コマンド終了通知は、フレーム・タイプなどの情報を含む制御データ・フィールドの他に、コマンド・ステータス・フィールドを含む。コマンド・ステータス・フィールドは、各タグによって特定される各コマンドのステータスを表す。好ましくは、コマンド・ステータス・フィールドは、キューされうるコマンド数と同一の数のビットから構成される。つまり、32のコマンドがキュー可能であれば、コマンド・ステータス・フィールドは、32ビット・データとなる。各ビットが、各タグに対応付けられたコマンドのステータスを表すことができる。
例えば、所定のビットがセットされている場合、そのビットに対応するタグのコマンドが成功裏に終了したことを示すことができる。上記のように、一つのコマンド終了通知が、複数のコマンドの終了をホスト110に知らせることができる。コマンド・ステータス・フィールドにおける複数のビットをセットすることによって、複数のコマンドの終了を同時にホスト110に通知することができる。反対に、ビットがクリアされている場合、対応するタグのコマンドが未終了であることを示すことができる。NCQを例とすれば、"Set Device Bits FIS"がコマンド終了通知の一例であり、"SActive"フィールドがコマンド・ステータス・フィールドの一例である。
まず、ライト・コマンド処理の基本的な動作について、図6を参照して説明する。ライト・キャッシュはDisableである場合を例として説明する。キュー・マネージャ223からライト・コマンドを取得すると(S601)、コマンド実行マネージャ222は、ホスト・インターフェース・マネージャ221にホスト110からのデータ転送を開始することを要求する。ホスト・インターフェース・マネージャ221は、所定のアルゴリズムに従ってホスト110との間のデータ伝送(データはユーザ・データの他、コマンド終了通知などの制御データを含む)順序を決定する(S602)。本例において、要求に応じてライト・データの転送開始をホスト・インターフェース211に要求する。ホスト・インターフェース211は、要求に応答して、セットアップ・フレームを発行する(S603)。
ホスト110は、セットアップ・フレームに応答して、ライト・データを転送する(S604)。転送されたライト・データは、ホスト・インターフェース211から、メモリ・マネージャ213を介して、メモリ130に記憶される。ホスト・インターフェース211からデータ転送終了の通知を受けたホスト・インターフェース・マネージャ221は、転送完了をコマンド実行マネージャ222に通知する。コマンド実行マネージャ222は、ドライブ・マネージャ224にデータ書き込みの要求を行う。ドライブ・インターフェース212は、ドライブ・マネージャ224の管理下において、メモリ・マネージャ213を介して、メモリ130から取得したライト・データを磁気ディスク121に出力する(S605)。
ライト・キャッシュがDisableである場合、コマンド終了の通知は、磁気ディスク121へのライト・データ書き込みの終了に応答して行われる。ホスト・インターフェース・マネージャ221は、HDC128からコマンド実行マネージャ222を介して磁気ディスク121へのライト・データ書き込みの終了の通知を取得すると、ホスト110にコマンド終了通知を送信するかを決定する(S606)。コマンド終了通知の送信タイミングは、他のコマンドあるいはコマンド終了通知などを考慮し、内部処理効率の点から決定される。コマンド終了通知の送信が決定されると、ホスト・インターフェース・マネージャ221は、終了コマンドのタグを特定したコマンド終了通知を送信するようにホスト・インターフェース211に要求する。ホスト・インターフェース211が、ステータス・フィールドの該当ビットがセットされたコマンド終了通知を、ホスト110に送信する(S607)。
一方、リード処理の基本的動作において、図7を参照して、コマンド実行マネージャ222は、ドライブ・マネージャ224に磁気ディスク121からのデータ読み出しを要求する。磁気ディスク121からのリード・データは、ドライブ・マネージャ224の制御の下、ドライブ・インターフェース212、メモリ・マネージャ213を介してメモリ130に記憶される(S701)。さらに、コマンド実行マネージャ222は、ホスト・インターフェース・マネージャ221にリード・データの転送要求を渡す。
ホスト・インターフェース・マネージャ221は、コマンド実行マネージャ222からの要求に応答して、ホスト・インターフェース211にホスト110へのデータ転送を開始することを要求する。ホスト・インターフェース211は、要求に応答して、セットアップ・フレームを発行する(S702)。ホスト・インターフェース211は、メモリ・マネージャ213からメモリ130に記憶されているリード・データを取得し、リード・データをホスト110に転送する(S703)。転送処理が終了すると、リード・データの転送が終了したことがホスト・インターフェース211からホスト・インターフェース・マネージャ221に通知される。
ホスト・インターフェース・マネージャ221は、他のコマンドあるいはコマンド終了通知などを考慮し、コマンド終了通知をホスト110に送信するタイミングを決定する(S704)。例えば、リード処理終了後すぐのタイミング、あるいは、パフォーマンスの観点から好ましい後のタイミングで送信することができる。送信する場合、ホスト・インターフェース211にコマンド終了通知の送信を要求する。ホスト・インターフェース211が、ステータス・フィールドの該当ビットがセットされたコマンド終了通知を、ホスト110に送信する(S705)。
コマンド終了通知の発行タイミング制御について、いくつかの好ましい態様を以下に説明する。上記のように、コマンド終了通知のホスト110への送信は、ホスト・インターフェース・マネージャ221によって管理される。一つの好ましい態様は、コマンド・キュー231にキューされている2つのライト・コマンドを連続して処理する場合における、コマンド終了通知の発行タイミング制御に関する。2つのライト・コマンドに対するライト・データの各アドレスの差異が所定値以下である場合、ホスト・インターフェース・マネージャ221は、最初のライト・コマンドに対するコマンド終了通知の送信を延期する。もしくは、各アドレスが連続する場合、又は、各アドレスが近傍であって周回待ちなく磁気ディスクへアクセスすることができる場合、ホスト・インターフェース・マネージャ221は、最初のライト・コマンドに対するコマンド終了通知の送信を延期する。
一つのライト・コマンドのホスト110からの転送後、コマンド終了通知を送信することなく、もう一方のライト・コマンドのライト・データ転送が実行される。後のライト・データの転送を早め、2つのライト・データを連続的に転送することによって、周回待ちによるパフォーマンスの低下防ぐことができる。尚、以下において、2つのライト・コマンドについて説明されるが、3以上の複数のライト・コマンドに関しても同様の処理を行うことによって、レイテンシを低減することが可能である。
図8及び9を参照して、具体的処理について説明する。図8は、ホスト110とハード・ディスク・ドライブ120との間のデータ伝送を示すシーケンス図、図9はそのフロー・チャートである。コマンド・キュー231には、タグXで特定されるライト・コマンド(X)と、タグYで特定されるライト・コマンド(Y)がキューされている。また、上記と同様に、ライト・キャッシュはDisableとする。コマンド実行マネージャ222は、キュー・マネージャ223からの要求に応答して、ホスト・インターフェース・マネージャ221に、ライト・コマンド(X)のライト・データ転送を要求する(S901)。
ホスト・インターフェース・マネージャ221の制御によって、ホスト・インターフェース211は、ライト・データ転送ためにセットアップ・フレーム(X)をホスト110に送信する(S902)。ホスト110は、セットアップ・フレーム(X)に応じて、ライト・データ(X)をハード・ディスク・ドライブ120に送信する(S903)。ライト・データ(X)は、HDC128を介して、データ・バッファ232に記憶される。ライト・データ(X)の送信開始後、あるいは、前の磁気ディスク・アクセスが終了次第、ライト・データ(X)の書き出しのためのシーク及び磁気ディスクへの書き出しが開始される(S904)。上記のように、ライト・データ(X)の書き出し処理は、コマンド実行マネージャ222からの要求を受けたドライブ・マネージャ224の管理下において、ドライブ・インターフェース212が実行する。
ライト・データ(X)の転送もしくは書き出し処理の間に、コマンド実行マネージャ222からホスト・インターフェース・マネージャ221に、ライト・コマンド(Y)のライト・データ転送が要求される(S905)。ホスト・インターフェース・マネージャ221は、取得しているライト・データ(X)とライト・データ(Y)のアドレス情報を参照し、アドレス情報に基づいてライト・データ(Y)の転送とライト・データ(X)のコマンド終了通知(X)の送信順序を決定する(S906)。好ましくは、ライト・データ(Y)のアドレスが、ライト・データ(X)のアドレスと連続、もしくは近傍にあり、コマンド終了通知(X)を遅らせることによってパフォーマンスを上げることができる場合、コマンド終了通知(X)の送信前に、ライト・データ(Y)の転送が実行されことが決定される。特に、周回待ちなしで磁気ディスクにデータを書くことができる場合、ライト・データ(Y)の転送が先に実行される。上記条件にない場合、コマンド終了通知(X)を先にホストに伝送する。
ライト・データ(Y)の転送が先に実行すると決定すると、ホスト・インターフェース・マネージャ221の制御によって、ホスト・インターフェース211は、ライト・データ(Y)転送ためにセットアップ・フレーム(Y)をホスト110に送信する(S907)。ホスト110は、セットアップ・フレーム(Y)に応じて、ライト・データ(Y)をハード・ディスク・ドライブ120に送信する(S908)。ライト・データ(Y)は、HDC128を介して、データ・バッファ232に記憶される。
ライト・データ(Y)の書き出しが終了すると、HDC128からの終了の通知が、コマンド実行マネージャ222を介して、ホスト・インターフェース・マネージャ221に送られる。ホスト・インターフェース・マネージャ221は、ライト・データ(X)及びライト・データ(Y)のためのコマンド終了通知を送信することを決定する。ホスト・インターフェース211は、コマンド・ステータス・フィールドの対応ビットをセットし、一つのコマンド終了通知を送信することによって、ライト・データ(X)及び(Y)の終了を同時にホスト110に知らせる(S909)。尚、2つのコマンド終了通知(X)、(Y)を連続して、あるいは、さらに後の所定タイミングでホスト110に送信することも可能である。尚、上記のコマンド終了通知制御は、データ・ライト処理に限定されない。
コマンド終了通知の発行タイミング制御について、他の好ましい態様を説明する。本態様において、例えば、キューされているコマンドの再スケジューリングのための要求されている時間を確保するために、コマンド終了通知の発行タイミングを延期する。特に、コマンド実行時間と再スケジューリング時間との関係に基づいて、コマンドの終了通知を延期することによって、再スケジューリングのための適切な時間を確保することができる。このように、コマンド終了通知の発行タイミングを遅らせることによって、コマンド実行順序の適切な再配列を可能とする。
再スケジューリングのために要求される時間を確保することができないことがある場合の一つは、一つのコマンドに対するリード・データもしくはライト・データのセクタ長が小さい場合である。セクタ長(データ長)が小さい場合、コマンド実行順序の再配列のための時間が短い。このため、キューされているコマンド数が所定数以上である場合に、適切な再スケジューリングを行うための時間を確保することができない場合が存在する。本態様においては、ホスト・インターフェース・マネージャ221は、キューに記憶されているコマンドと実行コマンドのデータ長に基づいて、コマンド終了通知の発行タイミングを制御する。
一つのリード・コマンドに対するリード・データ転送処理、あるいは、ライト・コマンドに対するライト・データの磁気ディスクへの書き出し処理が終了すると、ホスト・インターフェース・マネージャ221は、コマンド終了通知をホスト110に送信することができる。ホスト・インターフェース・マネージャ221はコマンド終了通知の送信を決定し、それをホスト・インターフェース211に要求する前に、実行コマンドのセクタ長とコマンド・キュー231にキューされているコマンド数とに基づいて、終了コマンドのコマンド終了通知を送信するか否かを決定する。
再スケジューリング処理が不要な場合(S1001)、ホスト・インターフェース・マネージャ221はコマンド終了通知の送信を決定し、それをホスト・インターフェース211に要求する(S1002)。複数のコマンド終了通知が未送信の場合、同時に複数のコマンドに対応するコマンド終了通知を発行することが好ましい。この点は、以下の説明において同様である。再スケジューリング処理が必要な場合(S1001)、ホスト・インターフェース・マネージャ221は、キュー・マネージャ223から、キューされているコマンド数の情報を取得する。また、キュー・マネージャ223から、実行コマンドに対するデータのセクタ長の情報を取得する。これらの情報は、適切なタイミングで取得される。ホスト・インターフェース・マネージャ221は、コマンド数とセクタ長を比較する。
ホスト・インターフェース・マネージャ221は、キューされているコマンド数に対する再スケジューリングのための必要な時間が、実行コマンド・データのセクタ長に対する処理時間によって確保できるかを決定する。好ましい例として、ホスト・インターフェース・マネージャ221は、実行コマンドのデータ・セクタ長が所定数以下であり、かつ、キューされているコマンド数が所定数以上である場合(S1003)、コマンド終了通知の送信を遅らせることを決定する。セクタ長あるいはコマンド数の数は、コマンドの種類、処理内容によって適切な値が予め設定される。
ホスト・インターフェース・マネージャ221は、上記条件を満たさない場合、つまり、セクタ長が所定数よりも多い、もしくは、コマンド数が所定数未満である場合、キューされているコマンド数に対する再スケジューリングのための必要な時間が確保できると判断し、コマンド終了通知を遅らせることなくホストに送信することを決定する(S1004)。上記条件が満たされ、再スケジューリングのための必要な時間が確保できないと判断すると、ホスト・インターフェース・マネージャ221は、コマンド終了通知をすぐには送信せず、後のタイミングで送信することを決定する(S1005)。
キュー・マネージャ223は、再スケジューリングが終了すると、それをホスト・インターフェース・マネージャ221に知らせる(S1006)。ホスト・インターフェース・マネージャ221は、キュー・マネージャ223からの通知に応答して、延期していたコマンド終了通知の発行を決定し、ホスト・インターフェース211にコマンド終了通知送信を要求する(S1007)。尚、ホスト・インターフェース・マネージャ221は、再スケジューリング終了後、さらにコマンド終了通知の発行を延期することも可能である。
一方、セクタ長が大きいためにコマンド実行時間が所定時間以上である場合において、未送信のコマンド終了通知がある場合、ホスト・インターフェース・マネージャ221は、コマンド実行時のタイミングにおいて未送信のコマンド終了通知を積極的にホスト110に返すことが好ましい。コマンド実行時間が再スケジューリングに要する時間よりも長い場合、未送信のコマンド終了通知が積極的に送信される。例えば、セクタ長が所定数以上であり、キュー・コマンド数が所定数よりも以下である場合、未送信のコマンド終了通知の送信を決定することができる。一度に使用することができるタグ・ナンバは通常限られていることから、コマンド終了通知をホスト110に返すことによって、ホスト110が新しいコマンドを発行することができる。コマンド数が増えることによって、ハード・ディスク・ドライブ120において、より適切なキュー・コマンドの再スケジューリングを行うことができる。
上記態様において、セクタ長とキュー・コマンド数の関係からコマンド終了通知の延期が決定されているが、実行コマンドのメディア・アクセス時間とキュー・コマンド数の関係からコマンド終了通知の延期を決定することは、好ましい他の態様の一つである。一つのコマンドに対するリード・データもしくはライト・データについて、シーク時間及び回転待ち時間を含むメディア・アクセス時間が短い場合、コマンド実行順序の再配列のための時間が短い。このため、キューされているコマンド数が所定数以上である場合に、適切な再スケジューリングを行うための時間を確保することができない場合が存在する。このため、ホスト・インターフェース・マネージャ221は、キューに記憶されているコマンドと実行コマンドのメディア・アクセス時間の情報に基づいて、コマンド終了通知の発行タイミングを制御する。
上記と同様に、コマンド終了通知をホスト110に送信することができる状態において、ホスト・インターフェース・マネージャ221は、ホスト・インターフェース211にコマンド終了通知の送信を要求する前に、実行コマンドのメディア・アクセス時間とコマンド・キュー231にキューされているコマンド数とに基づいて、終了コマンドのコマンド終了通知を送信するか否かを決定する。
キュー・コマンドの再スケジューリング処理が不要な場合(S1101)、ホスト・インターフェース・マネージャ221はコマンド終了通知の送信を決定し、ホスト・インターフェース211にそれを要求する(S1102)。再スケジューリング処理が必要な場合(S1101)、ホスト・インターフェース・マネージャ221は、キュー・マネージャ223から、キューされているコマンド数の情報を取得する。また、キュー・マネージャ223から、実行コマンドのメディア・アクセス時間の情報を取得する。これらの情報は、適切なタイミングで取得される。ホスト・インターフェース・マネージャ221は、コマンド数とメディア・アクセス時間を比較する。
ホスト・インターフェース・マネージャ221は、キューされているコマンド数に対する再スケジューリングのための必要な時間が、実行コマンドのメディア・アクセス時間によって確保できるかを決定する。好ましい例として、ホスト・インターフェース・マネージャ221は、実行コマンドのメディア・アクセス時間が所定時間以下であり、かつ、キューされているコマンド数が所定数以上である場合、コマンド終了通知の送信を遅らせることを決定する(S1103)。所定時間あるいは所定数は、コマンドの種類、処理内容によって適切な値が予め設定される。
ホスト・インターフェース・マネージャ221は、上記条件を満たさない場合、つまり、メディア・アクセス時間が所定時間よりも多い、もしくは、コマンド数が所定数未満である場合、キューされているコマンド数に対する再スケジューリングのための必要な時間が確保できると判断し、コマンド終了通知を遅らせることなくホスト110に送信することを決定する(S1104)。上記条件が満たされ、再スケジューリングのための必要な時間が確保できないと判断すると、ホスト・インターフェース・マネージャ221は、コマンド終了通知をすぐには送信せず、後のタイミングで送信することを決定する(S1105)。キュー・マネージャ223は、再スケジューリングが終了すると、それをホスト・インターフェース・マネージャ221に知らせる。
以下の処理は、上記態様と同様である。また、上記と同様に、メディア・アクセス時間が長く、コマンド実行時間が長い場合において、未送信のコマンド終了通知がある場合、ホスト・インターフェース・マネージャ221は、そのタイミングにおいてコマンド終了通知を積極的にホスト110に返すことが好ましい。コマンド実行時間が再スケジューリングに要する時間よりも長い場合、未送信のコマンド終了通知が積極的に送信される。例えば、メディア・アクセス時間が所定時間以上であり、キュー・コマンド数が所定数よりも以下である場合、未送信のコマンド終了通知の送信を決定することができる。
尚、本発明は、シリアル伝送、あるいはシリアルATAプロトコルに限定されるものではない。また、各処理と論理構成との関係は上記例に限定されるものではない。設計者は、効率的な機能及び回路構成によって、記憶装置を設計することができる。本実施形態において、磁気ヘッド122は、書き込み及び読み出し処理を行うことができる記録再生ヘッドであるが、再生のみを行う再生専用装置に本発明を適用することも可能である。尚、本発明は磁気ディスク記憶装置に特に有用であるが、光ディスク記憶装置など、記憶媒体としてのメディアを駆動する他の態様の記憶装置に適用することが可能である。
100 データ処理システム、110 ホスト、120 ハード・ディスク・ドライブ、
121 磁気ディスク、122 磁気ヘッド、123 ヘッド・スタック・アセンブリ、
124 コントローラ、125 スピンドル・モータ、
126 ボイス・コイル・モータ(VCM)、127 リード/ライト・チャネル、
128 ハードディスク・コントローラ(HDC)、
129 マイクロプロセッサ・ユニット(MPU)、130 メモリ、
133 サーボ・コントローラ、134 ボイス・コイル・モータ・ドライバ、
135 DAコンバータ(DAC)、
213 コマンド・キュー、213 メモリ・マネージャ、
221 ホスト・インターフェース・マネージャ、222 コマンド実行マネージャ、
223 キュー・マネージャ、224 ドライブ・マネージャ、
231 コマンド・キュー、232 データ・バッファ
121 磁気ディスク、122 磁気ヘッド、123 ヘッド・スタック・アセンブリ、
124 コントローラ、125 スピンドル・モータ、
126 ボイス・コイル・モータ(VCM)、127 リード/ライト・チャネル、
128 ハードディスク・コントローラ(HDC)、
129 マイクロプロセッサ・ユニット(MPU)、130 メモリ、
133 サーボ・コントローラ、134 ボイス・コイル・モータ・ドライバ、
135 DAコンバータ(DAC)、
213 コマンド・キュー、213 メモリ・マネージャ、
221 ホスト・インターフェース・マネージャ、222 コマンド実行マネージャ、
223 キュー・マネージャ、224 ドライブ・マネージャ、
231 コマンド・キュー、232 データ・バッファ
Claims (20)
- ホストと記憶装置との間におけるデータの伝送を制御するデータ伝送制御方法であって、
キューされている第1コマンドを取得するステップと、
前記第1コマンドに対する第1データのアドレス情報を取得するステップと、
前記第1データを、ホストと記憶装置との間において伝送するステップと、
キューされている第2コマンドを取得するステップと、
前記第2コマンドに対する第2データのアドレス情報を取得するステップと、
前記第1及び第2データのアドレス情報に基づいて、前記第1コマンドの終了通知の伝送を前記記憶装置から前記ホストに行う前に前記ホストと前記記憶装置の間において前記第2データの伝送を行うかを決定するステップと、
前記決定するステップにおける決定に従って、前記第2データを前記ホストと前記記憶装置の間において伝送するステップと、
前記第1コマンドのコマンド処理が終了し、前記第2データの伝送の後に、前記第1コマンドの終了通知を前記ホストに伝送するステップと、
を有するデータ伝送制御方法。 - 前記決定するステップにおいて、前記第1データのアドレスと前記第2データのアドレスの差が所定値以下である場合に、前記第1コマンドのコマンド終了通知の伝送前に、前記第2データの伝送を行うと決定される、請求項1に記載のデータ伝送制御方法。
- 前記第1及び第2のコマンドは、回転するメディアへのメディア・アクセスを行うものであり、
前記決定するステップにおいて、前記第1及び第2データのアドレス情報に基づいて、前記第1データのメディア・アクセス後に、周回待ちすることなく前記第2データのメディア・アクセスが可能な場合に、前記第1コマンドのコマンド終了通知の伝送前に、前記第2データの伝送を行うと決定される、
請求項1に記載のデータ伝送制御方法。 - 前記第1及び第2のコマンドはメディアへのデータのライト・コマンドである、請求項1に記載のデータ伝送制御方法。
- 前記第1及び第2コマンドは、回転するメディアへのデータ・ライトを行うコマンドであり、
前記第2コマンドは前記第1コマンドの次にキューされており、
前記決定するステップにおいて、前記第1及び第2データのアドレス情報に基づいて、前記第1データのメディアへのライト後に周回待ちすることなく前記第2データのメディアへのライトが可能な場合に、前記第1コマンドのコマンド終了通知の伝送前に、前記第2データの伝送を行うと決定される、
請求項1に記載のデータ伝送制御方法。 - 前記第1及び第2コマンドは、回転するメディアへのデータ・ライトを行うコマンドであり、
前記第2コマンドは前記第1コマンドの次にキューされており、
前記決定するステップにおいて、前記第2データのアドレスが前記第1データのアドレスに連続する場合に、前記第1コマンドのコマンド終了通知の伝送前に、前記第2データの伝送を行うと決定される、
請求項1に記載のデータ伝送制御方法。 - ホストと記憶装置との間におけるデータの伝送を制御するデータ伝送制御方法であって、
キューされている第1コマンドを取得するステップと、
前記第1コマンドを実行するステップと、
キューされているコマンドの情報を取得するステップと、
前記第1コマンドの実行時間と前記キューされているコマンドの再スケジューリング時間に基づき、前記第1コマンドのコマンド終了通知のタイミングを決定するステップと、
を有するデータ伝送制御方法。 - 前記第1コマンドの実行時間は、前記第1コマンドに対するデータのセクタ長によって決定される、請求項7に記載のデータ伝送制御方法。
- 前記第1コマンドの実行時間は、前記第1コマンドに対するデータのメディア・アクセス時間によって決定される、請求項7に記載のデータ伝送制御方法。
- 前記キューされているコマンドの再スケジューリング時間は、前記キューされているコマンドのコマンド数によって決定される、請求項7に記載のデータ伝送制御方法。
- 前記第1コマンドに対するデータのセクタ長が所定値以下であり、前記キューされているコマンドのコマンド数が所定数以上である場合、前記第1のコマンドに対するコマンド終了通知が延期される、請求項7に記載のデータ伝送制御方法。
- 前記第1コマンドに対するデータのメディア・アクセス時間が所定値以下であり、前記キューされているコマンドのコマンド数が所定数以上である場合、前記第1のコマンドに対するコマンド終了通知が延期される、請求項7に記載のデータ伝送制御方法。
- 前記第1のコマンドに対するコマンド終了通知は、前記キューされているコマンドの再スケジューリング終了後に伝送される、請求項7に記載のデータ伝送制御方法。
- ホストと記憶装置との間におけるデータの伝送を制御するデータ伝送制御方法であって、
メディアへのアクセスを行うコマンドをコマンド・キューから取得するステップと、
前記コマンドを実行するステップと、
前記コマンドの実行時間が所定時間以上である場合に、前記ホストへの未送信のコマンド終了通知を前記ホストに伝送するステップと、
を有するデータ伝送制御方法。 - ホストから伝送された複数のコマンドを記憶するコマンド・キューと、
前記コマンド・キューに記憶されている第1のコマンドの次に第2のコマンドを実行することを決定するコマンド順序決定部と、
前記第1コマンドに対する第1データのアドレス情報と、前記第2コマンドに対する第2データのアドレス情報とに基づき、前記第1コマンドの終了通知の前記ホストへの伝送タイミングを、前記第2データの前記ホストとの間の伝送後に延期することを決定する、データ伝送制御部と、
前記データ伝送制御部の制御によって、前記第1データを前記ホストとの間において伝送し、前記第1コマンドのコマンド処理の終了及び前記第2データの伝送後に前記第1コマンドの終了通知を前記ホストに伝送する、データ伝送部と、
を有する記憶装置。 - 前記記憶装置はデータを記憶する回転するメディアを備え、
前記第1及び第2コマンドは、前記メディアへのデータ・ライトを行うコマンドであり、
前記データ伝送制御部は、前記第1データのアドレスと前記第2データのアドレスの差が所定値以下である場合に、前記第1コマンドの終了通知の前記ホストへの伝送タイミングを、前記第2データの前記ホストからの伝送後に延期することを決定する、
請求項15に記載の記憶装置。 - 前記記憶装置はデータを記憶する回転するメディアを備え、
前記第1及び第2コマンドは、前記メディアへのデータ・ライトを行うコマンドであり、
前記データ伝送制御部は、前記第2データのアドレスが前記第1データのアドレスに連続する場合に、前記第1コマンドの終了通知の前記ホストへの伝送タイミングを、前記第2データの前記ホストからの伝送後に延期することを決定する、
請求項15に記載の記憶装置。 - データを記憶し回転するメディアと、
ホストから伝送された複数のコマンドを記憶するコマンド・キューと、
前記コマンド・キューに記憶されているコマンドの実行順序を決定する、コマンド順序決定部と、
前記コマンド順序決定部によって決定され、前記メディアへのアクセスを行う実行コマンドのデータ長と、前記コマンド・キューに記憶されているコマンド数とに基づき、前記実行コマンドの終了通知を前記ホストへ伝送するタイミングを決定する、データ伝送制御部と、
前記データ伝送制御部からの要求に応じて、前記コマンド終了通知を前記ホストに伝送するデータ伝送部と、
を有する記憶装置。 - 前記データ伝送部は、前記コマンド・キューに記憶されているコマンドの再スケジューリングが終了した後に前記コマンド終了通知を前記ホストに伝送する、請求項18に記載の記憶装置。
- データを記憶し回転するメディアと、
ホストから伝送された複数のコマンドを記憶するコマンド・キューと、
前記コマンド・キューに記憶されているコマンドの実行順序を決定する、コマンド順序決定部と、
前記コマンド順序決定部によって決定され、前記メディアへのアクセスを行う実行コマンドのアクセス時間と、前記コマンド・キューに記憶されているコマンド数とに基づき、前記実行コマンドの終了通知を前記ホストへ伝送するタイミングを決定する、データ伝送制御部と、
前記データ伝送制御部からの要求に応じて、前記コマンド終了通知を前記ホストに伝送するデータ伝送部と、
を有する記憶装置。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004017998A JP2005215729A (ja) | 2004-01-27 | 2004-01-27 | データ伝送制御方法及び記憶装置 |
US11/031,494 US7320050B2 (en) | 2004-01-27 | 2005-01-07 | Data transmission control method and storage device |
CNA2005100058874A CN1648843A (zh) | 2004-01-27 | 2005-01-27 | 数据传输控制方法和存储装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004017998A JP2005215729A (ja) | 2004-01-27 | 2004-01-27 | データ伝送制御方法及び記憶装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2005215729A true JP2005215729A (ja) | 2005-08-11 |
Family
ID=34792524
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004017998A Pending JP2005215729A (ja) | 2004-01-27 | 2004-01-27 | データ伝送制御方法及び記憶装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US7320050B2 (ja) |
JP (1) | JP2005215729A (ja) |
CN (1) | CN1648843A (ja) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006059365A (ja) * | 2004-08-19 | 2006-03-02 | Agere Systems Inc | 改善されたデータ転送のためのコントローラ装置および方法 |
JP2008112553A (ja) * | 2006-10-03 | 2008-05-15 | Seiko Epson Corp | メディア処理装置及びメディア処理装置の制御方法 |
JP2009187646A (ja) * | 2008-02-08 | 2009-08-20 | Kyocera Mita Corp | ハードディスクドライブ用の暗号化復号化装置、及びハードディスクドライブ装置 |
JP2012198981A (ja) * | 2006-10-03 | 2012-10-18 | Seiko Epson Corp | メディア処理装置及びメディア処理装置の制御方法 |
JP2012532397A (ja) * | 2009-07-02 | 2012-12-13 | サンドフォース インク. | ストレージデバイスに関連付けられた複数の書き込みコマンドの順序付け |
JP2012533800A (ja) * | 2009-07-17 | 2012-12-27 | サンドフォース インク. | ドライブからホスト装置に送信される情報にギャップを挿入する方法 |
JP2013137772A (ja) * | 2011-12-27 | 2013-07-11 | Apple Inc | 高性能ahciインターフェイス |
Families Citing this family (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7296094B2 (en) * | 2004-08-20 | 2007-11-13 | Lsi Corporation | Circuit and method to provide configuration of serial ATA queue depth versus number of devices |
US7370139B2 (en) * | 2004-11-19 | 2008-05-06 | Lsi Logic Corporation | Methods and structures for efficient storage of task file information in serial ATA environments |
US7805543B2 (en) * | 2005-06-30 | 2010-09-28 | Intel Corporation | Hardware oriented host-side native command queuing tag management |
US7620751B2 (en) * | 2005-09-27 | 2009-11-17 | Intel Corporation | Command scheduling and affiliation management for serial attached storage devices |
TWI347548B (en) * | 2007-09-07 | 2011-08-21 | Quanta Comp Inc | Detecting and recovering failure command method and system |
US8341286B1 (en) * | 2008-07-31 | 2012-12-25 | Alacritech, Inc. | TCP offload send optimization |
JP2010044814A (ja) * | 2008-08-11 | 2010-02-25 | Toshiba Storage Device Corp | 記憶装置の制御方法及び記憶装置 |
US8161234B2 (en) | 2008-12-30 | 2012-04-17 | Intel Corporation | Dynamically switching command types to a mass storage drive |
US8516166B2 (en) * | 2009-07-20 | 2013-08-20 | Lsi Corporation | System, method, and computer program product for reducing a rate of data transfer to at least a portion of memory |
US9959209B1 (en) | 2010-03-23 | 2018-05-01 | Western Digital Technologies, Inc. | Data storage device adjusting command rate profile based on operating mode |
US8667188B2 (en) | 2010-03-24 | 2014-03-04 | Hewlett-Packard Development Company, L.P. | Communication between a computer and a data storage device |
US8271692B1 (en) * | 2010-10-01 | 2012-09-18 | Western Digital Technologies, Inc. | Throttled command completion time |
US9298521B1 (en) | 2013-04-29 | 2016-03-29 | Seagate Technology Llc | Command sets and functions |
US9092156B1 (en) * | 2013-05-30 | 2015-07-28 | Marvell International Ltd. | Methods and apparatus for managing storage device commands |
US10228880B2 (en) | 2016-09-06 | 2019-03-12 | HGST Netherlands B.V. | Position-aware primary command queue management |
CN107817943B (zh) * | 2016-09-13 | 2020-12-15 | 深圳大心电子科技有限公司 | 数据传输方法、存储器存储装置及存储器控制电路单元 |
KR102386811B1 (ko) * | 2017-07-18 | 2022-04-15 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것의 동작 방법 |
JP6937337B2 (ja) * | 2019-05-14 | 2021-09-22 | 株式会社日立製作所 | 分散処理方法、分散処理システム及びサーバ |
KR20210080761A (ko) * | 2019-12-23 | 2021-07-01 | 삼성전자주식회사 | 컴플리션 타이밍을 관리하는 스토리지 컨트롤러, 및 이의 동작 방법 |
EP3842952B1 (en) | 2019-12-23 | 2023-05-10 | Samsung Electronics Co., Ltd. | Storage controller managing completion timing, and operating method thereof |
CN111522511B (zh) * | 2020-04-22 | 2022-04-22 | 杭州宏杉科技股份有限公司 | 命令处理方法及装置 |
US11321017B2 (en) * | 2020-06-29 | 2022-05-03 | SK Hynix Inc. | Systems and methods for controlling completion rate of commands |
JP2022138388A (ja) * | 2021-03-10 | 2022-09-26 | 株式会社東芝 | 磁気ディスク装置及びリオーダリング処理方法 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5394537A (en) * | 1989-12-13 | 1995-02-28 | Texas Instruments Incorporated | Adaptive page placement memory management system |
JP3250861B2 (ja) | 1993-03-09 | 2002-01-28 | 株式会社日立製作所 | ディスク装置システム |
US5729718A (en) * | 1993-11-10 | 1998-03-17 | Quantum Corporation | System for determining lead time latency as function of head switch, seek, and rotational latencies and utilizing embedded disk drive controller for command queue reordering |
US5787482A (en) * | 1995-07-31 | 1998-07-28 | Hewlett-Packard Company | Deadline driven disk scheduler method and apparatus with thresholded most urgent request queue scan window |
US5968109A (en) * | 1996-10-25 | 1999-10-19 | Navigation Technologies Corporation | System and method for use and storage of geographic data on physical media |
US6134586A (en) * | 1998-07-31 | 2000-10-17 | Philips Electronics N.A. Corp. | Striping data across disk zones |
JP3745552B2 (ja) | 1999-02-26 | 2006-02-15 | 富士通株式会社 | 情報記憶装置 |
US6272565B1 (en) * | 1999-03-31 | 2001-08-07 | International Business Machines Corporation | Method, system, and program for reordering a queue of input/output (I/O) commands into buckets defining ranges of consecutive sector numbers in a storage medium and performing iterations of a selection routine to select and I/O command to execute |
JP2001312373A (ja) * | 2000-04-21 | 2001-11-09 | Internatl Business Mach Corp <Ibm> | データの書き込み方法およびディスクドライブ装置 |
JP2002091898A (ja) | 2000-09-12 | 2002-03-29 | Canon Inc | 座標情報入力装置,座標情報入力方法、および、座標情報入力のためのプログラムを記憶した記憶媒体 |
US6851011B2 (en) * | 2001-08-09 | 2005-02-01 | Stmicroelectronics, Inc. | Reordering hardware for mass storage command queue |
US7043567B2 (en) * | 2002-07-22 | 2006-05-09 | Seagate Technology Llc | Method and apparatus for determining the order of execution of queued commands in a data storage system |
US7089448B2 (en) * | 2002-09-18 | 2006-08-08 | Netezza Corporation | Disk mirror architecture for database appliance |
US7197577B2 (en) * | 2003-12-12 | 2007-03-27 | International Business Machines Corporation | Autonomic input/output scheduler selector |
-
2004
- 2004-01-27 JP JP2004017998A patent/JP2005215729A/ja active Pending
-
2005
- 2005-01-07 US US11/031,494 patent/US7320050B2/en not_active Expired - Fee Related
- 2005-01-27 CN CNA2005100058874A patent/CN1648843A/zh active Pending
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006059365A (ja) * | 2004-08-19 | 2006-03-02 | Agere Systems Inc | 改善されたデータ転送のためのコントローラ装置および方法 |
JP2008112553A (ja) * | 2006-10-03 | 2008-05-15 | Seiko Epson Corp | メディア処理装置及びメディア処理装置の制御方法 |
JP2012198981A (ja) * | 2006-10-03 | 2012-10-18 | Seiko Epson Corp | メディア処理装置及びメディア処理装置の制御方法 |
JP2009187646A (ja) * | 2008-02-08 | 2009-08-20 | Kyocera Mita Corp | ハードディスクドライブ用の暗号化復号化装置、及びハードディスクドライブ装置 |
JP2012532397A (ja) * | 2009-07-02 | 2012-12-13 | サンドフォース インク. | ストレージデバイスに関連付けられた複数の書き込みコマンドの順序付け |
JP2012533800A (ja) * | 2009-07-17 | 2012-12-27 | サンドフォース インク. | ドライブからホスト装置に送信される情報にギャップを挿入する方法 |
JP2013137772A (ja) * | 2011-12-27 | 2013-07-11 | Apple Inc | 高性能ahciインターフェイス |
Also Published As
Publication number | Publication date |
---|---|
CN1648843A (zh) | 2005-08-03 |
US20050166014A1 (en) | 2005-07-28 |
US7320050B2 (en) | 2008-01-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2005215729A (ja) | データ伝送制御方法及び記憶装置 | |
US7664884B2 (en) | Media drive that creates a transfer unnecessary period, and power saving method thereof | |
US7373460B2 (en) | Media drive and command execution method thereof | |
US7606970B2 (en) | Hybrid disk drive and method of controlling data therein | |
JP5888717B2 (ja) | ハイブリッドハードディスクドライブ制御方法、メモリ装置及びハイブリッドハードディスクドライブ | |
EP1580665A2 (en) | Data storage device, control method thereof and magnetic disk storage device | |
US7451261B2 (en) | Data storage device and control method with buffer control thereof | |
JP4991605B2 (ja) | データ記憶装置およびその制御方法 | |
JP2006164012A (ja) | データ記憶装置及びそのパワー・セーブ・モードの制御方法 | |
JP3823040B2 (ja) | データ記憶装置、データ処理装置、書き込み要求の実行順序を最適化する方法、データ処理方法およびハード・ディスク・ドライブ | |
JPWO2003071534A1 (ja) | データ・アクセス制御装置及びデータ・アクセス制御方法、コントローラ、並びにコンピュータ・プログラム | |
JP2006127300A (ja) | ホストと記憶デバイスとの間における通信方法、記憶デバイス、ホスト、記憶デバイスとホストを備えるシステム | |
JP5030387B2 (ja) | データ記憶装置 | |
US20040015878A1 (en) | Reordering controller, reordering method and storage apparatus | |
US8320066B2 (en) | Storage device and read/write processing method therefor | |
US20060129716A1 (en) | Data storage device and buffer control method thereof | |
JP2005276026A (ja) | データ記憶装置におけるエラー回復処理方法、データ記憶装置及び磁気ディスク記憶装置 | |
JP4919983B2 (ja) | データ記憶装置及びデータ記憶装置におけるデータ管理方法 | |
KR20100030990A (ko) | 특정 조건을 갖는 파일을 정해진 위치에 저장할 수 있는 하이브리드 하드디스크 드라이브, 이에 적합한 제어 방법 및 이에 적합한 기록 매체 | |
JP2012038330A (ja) | ハードディスクドライブ | |
JP2007094995A (ja) | ディスク記憶装置及びディスク記憶装置のキャッシュ制御方法 | |
CN115116479A (zh) | 磁盘装置 | |
JP2004234762A (ja) | ディスク記憶装置及びバッファ制御方法 | |
JP2007286973A (ja) | ハードディスク制御装置、ハードディスク装置 |