JP2024034411A - 磁気ディスク装置及びコマンド処理方法 - Google Patents

磁気ディスク装置及びコマンド処理方法 Download PDF

Info

Publication number
JP2024034411A
JP2024034411A JP2022138628A JP2022138628A JP2024034411A JP 2024034411 A JP2024034411 A JP 2024034411A JP 2022138628 A JP2022138628 A JP 2022138628A JP 2022138628 A JP2022138628 A JP 2022138628A JP 2024034411 A JP2024034411 A JP 2024034411A
Authority
JP
Japan
Prior art keywords
command
commands
latency limit
limit time
magnetic disk
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2022138628A
Other languages
English (en)
Inventor
隆 藤浪
Takashi Fujinami
賀之 佐藤
Noriyuki Sato
高志 小野田
Takashi Onoda
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
Toshiba Electronic Devices and Storage Corp
Original Assignee
Toshiba Corp
Toshiba Electronic Devices and Storage 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, Toshiba Electronic Devices and Storage Corp filed Critical Toshiba Corp
Priority to JP2022138628A priority Critical patent/JP2024034411A/ja
Priority to CN202310057028.8A priority patent/CN117631965A/zh
Priority to US18/119,749 priority patent/US11942110B2/en
Publication of JP2024034411A publication Critical patent/JP2024034411A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • 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
    • 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0674Disk device
    • G06F3/0676Magnetic disk device
    • 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/4806Disposition 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 specially adapted for disk drive assemblies, e.g. assembly prior to operation, hard or flexible disk drives
    • G11B5/4826Mounting, aligning or attachment of the transducer head relative to the arm assembly, e.g. slider holding members, gimbals, adhesive

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

【課題】 応答時間を考慮しつつ効率的にコマンドを実行することのできる磁気ディスク装置及びコマンド処理方法を提供する。【解決手段】 磁気ディスク装置は、ディスクと、ヘッドと、コマンドキュー91と、上記コマンドキューにおける各コマンドの滞在時間を算出するコマンド滞在時間算出部63と、コマンドの数と比率とをそれぞれ算出するコマンド情報算出部64と、レイテンシリミット時間判定テーブルから上記コマンドの数と上記比率とに対応したレイテンシリミット時間を取得するリミット時間判定部65と、上記レイテンシリミット時間を考慮して実行するコマンドを選択するコマンド選択処理部66と、を備える。【選択図】図10

Description

本発明の実施形態は、磁気ディスク装置及びコマンド処理方法に関する。
磁気ディスク装置は、パーソナルコンピュータ等のホスト装置から受領した複数のコマンドを先行して一時的に記憶可能なコマンドキューを備えている。複数のコマンドは、磁気ディスク装置が受領した順にキューイングされている。
磁気ディスク装置は、様々な性能評価指標で評価されるが、その中で、コマンド応答性能という指標がある。ホスト装置から磁気ディスク装置に送られた1コマンドあたりの実行完了までの時間をコマンド応答時間と言い、コマンド応答時間に基づいてコマンド応答性能が評価される。磁気ディスク装置は、ホスト装置から発行されたコマンドに従って、ディスクから情報の読み出し、ディスクへの情報の書き込みを行う。
ところで、磁気ディスク装置が受領した順に複数のコマンドを実行すると、ディスクの対象セクタにアクセスするまで、シーク時間及び回転待ち時間を含む機械的な待ち時間が増大する可能性がある。そこで、磁気ディスク装置が複数のコマンドを受領した場合、コマンドキュー内の複数のコマンドを並べ替えるリオーダリング処理が行われている。コマンドを実行する順番を調整する(例えば、入れ替える)ことで、最も効率よく高速にアクセスを完了することができ、上記待ち時間の低減に寄与することができる。上記「高速にアクセス」とは、現在のヘッド位置、ディスクの回転位置から次にアクセス可能な位置にいるセクタの中で、最短でアクセス可能な位置にいるセクタにアクセスすることを言う。
上記のように、リオーダリング処理を行った場合、コマンドの選択によっては、なかなか選択されないコマンドが出てきてしまう。このコマンドは、ホスト装置から見ると、実行完了されないコマンドとなるため、コマンド応答性能の悪化を招いてしまう。
特許第3793682号公報 特開2001-100935号公報 特開2003-308176号公報 特開2004-272969号公報 特開2006-139548号公報 特許第6244972号公報
本実施形態は、応答時間を考慮しつつ効率的にコマンドを実行することのできる磁気ディスク装置及びコマンド処理方法を提供する。
一実施形態に係る磁気ディスク装置は、
ディスクと、前記ディスクに対してデータをライトし、前記ディスクからデータをリードするヘッドと、受領した1以上のコマンドを一時的に記憶するコマンドキューと、前記コマンドキューにおける各コマンドの滞在時間を算出するコマンド滞在時間算出部と、前記コマンドキューにある前記コマンドの数と、前記コマンドキューにあるリードコマンドとライトコマンドとの比率と、をそれぞれ算出するコマンド情報算出部と、レイテンシリミット時間判定テーブルの複数のレイテンシリミット時間の中から前記コマンドの数と前記比率とに対応したレイテンシリミット時間を取得するリミット時間判定部と、前記リミット時間判定部で取得した前記レイテンシリミット時間を考慮して実行するコマンドを選択するコマンド選択処理部と、を備える。
また、一実施形態に係るコマンド処理方法は、
ディスクと、前記ディスクに対してデータをライトし、前記ディスクからデータをリードするヘッドと、受領した1以上のコマンドを一時的に記憶するコマンドキューと、を備える磁気ディスク装置に適用されるコマンド処理方法であって、前記コマンドキューにおける各コマンドの滞在時間を算出し、前記コマンドキューにある前記コマンドの数と、前記コマンドキューにあるリードコマンドとライトコマンドとの比率と、をそれぞれ算出し、レイテンシリミット時間判定テーブルの複数のレイテンシリミット時間の中から前記コマンドの数と前記比率とに対応したレイテンシリミット時間を取得し、前記取得したレイテンシリミット時間を考慮して実行するコマンドを選択する。
図1は、比較例に係る磁気ディスク装置の構成を示すブロック図である。 図2は、上記磁気ディスク装置のディスクの複数のトラックの配置の一例を示す概略図であり、コマンド1、コマンド2、及びコマンド3を順に受領した場合、リオーダリングせず、コマンド1、コマンド2、及びコマンド3を順に実行する例を説明するための図である。 図3は、上記磁気ディスク装置のディスクの複数のトラックの配置の一例を示す概略図であり、コマンド1、コマンド2、及びコマンド3を順に受領した場合、リオーダリングし、コマンド1、コマンド3、及びコマンド2を順に実行する例を説明するための図である。 図4は、図1に示したコマンドキューに含まれる複数のコマンドを示す図であり、コマンドキューにエージング時間を超えている未実行のコマンドが残っている例を説明するための図である。 図5は、図1に示したHDC、MPU、バッファメモリ、及びホスト装置を示すブロック図である。 図6は、上記比較例に係るコマンド処理方法を示すフローチャートであり、エージング時間を考慮しつつ効率的にコマンドを実行することのできるコマンド処理方法を説明するために用いられる。 図7は、一実施形態に係る磁気ディスク装置が持つ第1レイテンシリミット時間判定テーブルを示す図である。 図8は、上記実施形態に係る磁気ディスク装置が持つ第2レイテンシリミット時間判定テーブルを示す図である。 図9は、上記実施形態に係る磁気ディスク装置が持つ第3レイテンシリミット時間判定テーブルを示す図である。 図10は、上記実施形態に係るHDC、MPU、バッファメモリ、及びホスト装置を示すブロック図である。 図11は、上記実施形態に係るコマンド処理方法を示すフローチャートであり、エージング時間及びレイテンシリミット時間を考慮しつつ効率的にコマンドを実行することのできるコマンド処理方法を説明するために用いられる。 図12は、図11に続く、上記コマンド処理方法を示すフローチャートである。 図13は、上記実施形態に係る磁気ディスク装置において、コマンドを受領してから、コマンドを実行し、ステータスをホスト装置に通知するまでの流れを示すフローチャートである。 図14は、図13に続く、上記流れを示すフローチャートである。 図15は、上記実施形態に係るHDC、MPU、不揮発性メモリ、及びホスト装置を示すブロック図である。 図16は、上記実施形態に係る磁気ディスク装置において、使用するレイテンシリミット時間判定テーブルを切替える流れを示すフローチャートである。
(比較例)
まず、比較例について、図面を参照して説明する。図1は、本比較例に係る磁気ディスク装置1の構成を示すブロック図である。
図1に示すように、磁気ディスク装置1は、ヘッドディスクアセンブリ(HDA)と、ドライバIC20と、ヘッドアンプ集積回路(以下、ヘッドアンプIC、又はプリアンプ)30と、揮発性メモリ70と、不揮発性メモリ80と、バッファメモリ(バッファ)90と、1チップの集積回路であるシステムコントローラ130とを備える。また、磁気ディスク装置1は、ホスト装置(ホスト)100と接続される。
HDAは、磁気ディスク(以下、ディスクと称する)10と、スピンドルモータ(以下、SPMと称する)12と、ヘッド15を搭載しているアーム13と、ボイスコイルモータ(以下、VCMと称する)14とを有する。ディスク10は、SPM12に取り付けられ、SPM12の駆動により回転する。アーム13及びVCM14は、アクチュエータを構成している。アクチュエータは、VCM14の駆動により、アーム13に搭載されているヘッド15をディスク10の所定の位置まで移動制御する。磁気ディスク装置1は、複数のディスク10及び複数のヘッド15を備えてもよい。
ディスク10は、そのデータをライト可能な領域に、ユーザが利用可能なユーザデータ領域10aと、ホスト装置等から転送されたデータ(又はコマンド)をユーザデータ領域10aの所定の領域にライトする前に一時的に保持するメディアキャッシュ(又は、メディアキャッシュ領域と称する場合もある)10bと、システム管理に必要な情報をライトするシステムエリア10cとが割り当てられている。なお、メディアキャッシュ10bは、ディスク10に配置されていなくともよい。
以下、ディスク10の内周から外周へ向かう方向を半径方向と称する。半径方向に平行な方向において、内周から外周へ向かう方向を外方向(外側)と称し、外周から内周へ向かう方向を内方向(内側)と称する。ディスク10の半径方向に直交する方向を円周方向又は周方向と称する。円周方向は、ディスク10の円周に沿った方向に相当する。
また、ディスク10の半径方向の所定の位置を半径位置と称し、ディスク10の円周方向の所定の位置を円周位置と称する場合もある。半径位置及び円周位置をまとめて単に位置と称する場合もある。半径位置は、ディスク10の回転中心から所定の半径位置までの距離、ディスク10の最内周から所定の半径位置までの距離、又はディスク10の所定の半径位置から他の半径位置までの距離等に相当する。
ディスク10は、半径方向の所定の範囲毎に複数の領域(以下、ゾーンと称する場合もある)に区分される。ゾーンは、複数のトラックを含んでいる。ディスク10を半径方向に区分した領域を半径領域と称する場合もある。半径領域は、1以上のゾーン、複数のトラック等を含んでいる。
なお、“トラック”は、ディスク10の半径方向に区分した複数の領域の内の1つの領域、所定の半径位置におけるヘッド15の経路、ディスク10の円周方向に延長するデータ、所定の半径位置のトラックにライトされた1周分のデータ、ディスク10の所定のトラックにライトされたデータ、ディスク10の所定のトラックにライトされたデータの一部、及びその他の種々の意味で用いる。
“セクタ”は、ディスク10の所定のトラックを円周方向に区分した複数の領域の内の1つの領域、ディスク10の所定の半径位置における所定の円周位置にライトされたデータ、ディスク10の所定のトラックの所定のセクタにライトされたデータ、及びその他の種々の意味で用いる。
“トラックの半径方向の幅”を“トラック幅”と称する場合もある。“所定のトラックにおけるトラック幅の中心位置を通る経路”を“トラックセンタ”と称する場合もある。“セクタの半径方向の幅”を“セクタ幅”と称する場合もある。“所定のセクタにおけるセクタ幅の中心位置を通る経路”を“セクタセンタ”と称する場合もある。セクタセンタは、トラックセンタと一致する。“同じ”、“同一”、“一致”、及び“同等”等の用語は、全く同じという意味を含んでいることはもちろん、実質的に同じであると見做せる程度に異なるという意味も含んでいる。以下、“所定のトラックのトラックセンタ”を単に“トラック”と称する場合もある。また、“所定のセクタのセクタセンタ”を単に“セクタ”と称する場合もある。
ヘッド15は、スライダを本体として、当該スライダに実装されているライトヘッド15Wとリードヘッド15Rとを備える。ライトヘッド15Wは、ディスク10上にデータをライトする。以下、“データをライトすること”を“ライティング”、“データライト”、“ライト処理”等と称する場合もある。リードヘッド15Rは、ディスク10に記録されているデータをリードする。以下、“データをリードすること”を“リーディング”、“データリード”、“リード処理”等と称する場合もある。
なお、ライトヘッド15Wを単にヘッド15と称する場合もあるし、リードヘッド15Rを単にヘッド15と称する場合もあるし、ライトヘッド15W及びリードヘッド15Rをまとめてヘッド15と称する場合もある。ヘッド15の中心部を単にヘッド15と称し、ライトヘッド15Wの中心部を単にライトヘッド15Wと称し、リードヘッド15Rの中心部を単にリードヘッド15Rと称する場合もある。
“ライトヘッド15Wの中心部”を単に“ヘッド15”と称する場合もあるし、“リードヘッド15Rの中心部”を単に“ヘッド15”と称する場合もある。“ヘッド15の中心部を所定のトラックのトラックセンタに位置決めする”ことを“ヘッド15を所定のトラックに位置決めする”、“ヘッド15を所定のトラックに配置する”、“ヘッド15を所定のトラックに位置する”等と表現する場合もある。
システムコントローラ130は、リード/ライト(R/W)チャネル40、ハードディスクコントローラ(HDC)50、及びマイクロプロセッサ(MPU)60を備えている。
ドライバIC20は、システムコントローラ130(詳細には、MPU60)の制御に従って、SPM12およびVCM14の駆動を制御する。
ヘッドアンプIC(プリアンプ)30は、リードアンプ及びライトドライバを備えている。リードアンプは、ディスク10からリードされたリード信号を増幅して、システムコントローラ130(詳細には、R/Wチャネル40)に出力する。ライトドライバは、R/Wチャネル40から出力される信号に応じたライト電流をヘッド15に出力する。
揮発性メモリ70は、電力供給が断たれると保存しているデータが失われる半導体メモリである。揮発性メモリ70は、磁気ディスク装置1の各部での処理に必要なデータ等を格納する。揮発性メモリ70は、例えば、DRAM(Dynamic Random Access Memory)、又はSDRAM(Synchronous Dynamic Random Access Memory)である。
不揮発性メモリ80は、電力供給が断たれても保存しているデータを記録する半導体メモリである。不揮発性メモリ80は、例えば、NOR型又はNAND型のフラッシュROM(Flash Read Only Memory :FROM)である。
バッファメモリ90は、磁気ディスク装置1とホスト装置100との間で送受信されるデータ等を一時的に記憶する半導体メモリである。なお、バッファメモリ90は、揮発性メモリ70と一体に構成されていてもよい。バッファメモリ90は、DRAM、SRAM(Static Random Access Memory)、SDRAM、FeRAM(Ferroelectric Random Access memory)、MRAM(Magnetoresistive Random Access Memory)等である。バッファメモリ90は、コマンドキュー91として使用される領域と、キャッシュバッファ92として使用される領域と、キャッシュ93として使用される領域と、を含んでいる。
コマンドキュー91は、受領した1以上のコマンドを一時的に記憶する。キャッシュバッファ92は、ライトキャッシュを兼ねている。キャッシュバッファ92は、1以上のコマンドをコマンドキュー91の替わりに一時的に記憶する。キャッシュ93はリードキャッシュとして機能する。
システムコントローラ(コントローラ)130は、例えば、複数の素子が単一チップに集積されたSystem-on-a-Chip(SoC)と称される大規模集積回路(LSI)を用いて実現される。システムコントローラ130は、例えば、ドライバIC20、ヘッドアンプIC30、揮発性メモリ70、不揮発性メモリ80、バッファメモリ90、及びホスト装置100に電気的に接続されている。
R/Wチャネル40は、後述するMPU60からの指示に応じて、ディスク10からホスト装置100に転送されるリードデータ及びホスト装置100から転送されるライトデータの信号処理、例えば、変調処理、復調処理、符号化処理、復号化処理を実行する。R/Wチャネル40は、リードデータの信号品質を測定する回路、又は機能を有している。R/Wチャネル40は、ヘッドアンプIC30、HDC50、MPU60等に電気的に接続されている。
HDC50は、MPU60からの指示に応じて、ホスト装置100とR/Wチャネル40との間のデータ転送を制御する。HDC50は、例えば、R/Wチャネル40、MPU60、揮発性メモリ70、不揮発性メモリ80、バッファメモリ90等に電気的に接続されている。
MPU60は、磁気ディスク装置1の各部を制御するメインコントローラである。MPU60は、ドライバIC20を介してVCM14を制御し、ヘッド15の位置決めを行なうサーボ制御を実行する。また、MPU60は、ドライバIC20を介してSPM12を制御し、ディスク10を回転させる。MPU60は、ディスク10へのデータのライト動作を制御すると共に、ライトデータの保存先を選択する。また、MPU60は、ディスク10からのデータのリード動作を制御すると共に、リードデータの処理を制御する。また、MPU60は、データを記録する領域を管理する。MPU60は、磁気ディスク装置1の各部に接続されている。MPU60は、ドライバIC20、R/Wチャネル40、HDC50等に電気的に接続されている。
ここで、磁気ディスク装置1で用いる性能指標について説明する。磁気ディスク装置1において様々な性能指標があるが、一般的に重視される性能指標としては、IOPS(Input/Output operations Per Second)、転送レート、及びレイテンシ(Latency)が挙げられる。
上記IOPSは、1秒あたりのリード回数及びライト回数である。IOPSは、磁気ディスク装置1の処理スループットの能力を表している。IOPSが高い方が、磁気ディスク装置1の転送性能はよい。
上記転送レートは、1秒間に磁気ディスク装置1に転送できるバイト数/ビット数(MB/s, bps)である。転送レートは、磁気ディスク装置1の処理スループットの能力を表している。転送レートが高い方が、磁気ディスク装置1の転送性能はよい。
レイテンシは、遅延のことを意味し、ホスト装置100から送られた1コマンドあたりの実行完了までの時間を表している。レイテンシは、磁気ディスク装置1のコマンド応答性能を表している。レイテンシが低い方が、磁気ディスク装置1の応答性能はよい。
磁気ディスク装置1において、他にも、振動、温度、消費電力、BenchMarkスコア、OS起動時間、ファイルコピー時間等の観点での性能指標もある。
次にコマンド処理の例について説明する。図2は、磁気ディスク装置1のディスク10の複数のトラックTR0,TR1,TR2,TR3,TR4,TR5の配置の一例を示す概略図であり、コマンド1、コマンド2、及びコマンド3を順に受領した場合、リオーダリング(Re-ordering)せず、コマンド1、コマンド2、及びコマンド3を順に実行する例を説明するための図である。図3は、磁気ディスク装置1のディスク10の複数のトラックTR0乃至TR5の配置の一例を示す概略図であり、コマンド1、コマンド2、及びコマンド3を順に受領した場合、リオーダリングし、コマンド1、コマンド3、及びコマンド2を順に実行する例を説明するための図である。
なお、図2及び図3において、一点鎖線の矢印は、現在のトラックから目標トラックに移動する動作であるシーク(Seek)を示している。破線の矢印は、目標トラックへのヘッドの移動が完了してから目標セクタが巡ってくるまでの回転待ち動作を示している。円周方向において、ディスク10の回転する方向を回転方向d3と称する。なお、図2及び図3に示した例では、回転方向d3は、反時計回りで示しているが、逆向き(時計回り)であってもよい。また、ディスク10に対するヘッド15の進行方向d2は、回転方向d3と逆向きである。
図2に示すように、ホスト装置100が複数のコマンドを発行し、磁気ディスク装置1が一度に複数のコマンドを受領する場合、磁気ディスク装置1は、複数のコマンドを1コマンドずつ来た順に処理している。例えば、磁気ディスク装置1は、コマンド1、コマンド2、及びコマンド3を順に受領した場合、リオーダリングせず、コマンド1、コマンド2、及びコマンド3を順に実行する。
まず、トラックTR1の実行領域TR1aを対象にコマンド1を実行する。続いて、シーク及び回転待ち動作を行い、トラックTR2の実行領域TR2aを対象にコマンド2を実行する。次いで、シーク及び回転待ち動作を行い、トラックTR3の実行領域TR3aを対象にコマンド3を実行する。なお、実行領域TR1a、実行領域TR2a、及び実行領域TR3aは、それぞれ1以上のセクタを含んでいる。また、半径方向d1において、実行領域TR2aは実行領域TR1aより内側に位置し、実行領域TR3aは実行領域TR2aより内側に位置している。
図2の例では、現在の実行領域から次の実行領域までの距離が長くなってしまう。詳しくは、進行方向d2において、現在の実行領域の最後尾のセクタの最後尾から、次の実行領域の先頭のセクタの先頭までの距離が長くなってしまう。そして、回転待ち時間が長くなってしまう。コマンド処理の効率を高め難いため、上記IOPSを高め難い。
図3に示すように、一方、磁気ディスク装置1は、複数のコマンドを合理的な順番に並べ直して処理している。例えば、磁気ディスク装置1は、コマンド1、コマンド2、及びコマンド3を順に受領した場合、実行領域TR1aに続けて実行領域TR3aにアクセス可能であると判断する。磁気ディスク装置1は、リオーダリングし、コマンド1、コマンド3、及びコマンド2を順に実行する。
まず、トラックTR1の実行領域TR1aを対象にコマンド1を実行する。続いて、シーク及び回転待ち動作を行い、トラックTR3の実行領域TR3aを対象にコマンド3を実行する。次いで、シーク及び回転待ち動作を行い、トラックTR2の実行領域TR2aを対象にコマンド2を実行する。
図3の例では、現在の実行領域から次の実行領域までの距離を最短にすることができる。すなわち、回転待ち時間を短くすることができる。そして、最も高速にコマンド1,2,3の処理を完了することができる。コマンド処理(リード処理及びライト処理)の効率を高めることができ、上記IOPSを高めることができる。
ここで、磁気ディスク装置1におけるコマンドの管理方法について説明する。
図1に示すように、磁気ディスク装置1の内部で複数のコマンドを溜め込む際、磁気ディスク装置1は、コマンドキュー91によるコマンド管理方法とキャッシュバッファ92によるコマンド管理方法との2種類を用いることができる。何れのコマンド管理方法においても、磁気ディスク装置1は、キューイング(queuing)の仕組みを利用している。
コマンドキュー91は、ホスト装置100から発行されたコマンドを先行して溜めておくことができる。磁気ディスク装置1のインターフェースがSAS(Serial Attached Small Computer System Interface)である場合、キュー深度(Queue Depth)は128である。磁気ディスク装置1のインターフェースがSATA(Serial Advanced Technology Attachment)である場合、キュー深度(Queue Depth)は32である。
SASの場合、コマンドキュー91に、最大128コマンドのキューができる。SASを使用する磁気ディスク装置1は、上記リオーダリングにより、上記IOPSを高める効果を一層得ることができる。なお、コマンドキュー91に溜めるコマンドは、リードコマンド及びキャッシュバッファ92に格納できないライトコマンドである。
一方、キャッシュバッファ92に溜めるコマンドは、複数のライトコマンドである。なお、キャッシュバッファ92に格納するライトコマンドを受領する際、上記ライトコマンドに対応するデータ(ディスク10にライトするデータ)も受領している。なお、ライトコマンドをライトキャッシュ(本比較例では、キャッシュバッファ92)に書いた時点で、磁気ディスク装置1はホスト装置100にステータス通知を行い、ディスク10へのライト処理を後回しにする。
キャッシュバッファ92を使用することで、スループットの向上を図ることができる。なお、キャッシュバッファ92は数万のライトコマンドを溜めることができる。MPU60は、キャッシュバッファ92に複数のライトコマンドを登録することができ、キャッシュバッファ92に登録された複数のライトコマンドを管理することができる。
図3に示すように、そのため、リオーダリングする際、磁気ディスク装置1は、コマンドキュー91のコマンドとキャッシュバッファ92のコマンドから次に実行するコマンドを選択することができる。
次に、コマンド処理時間の管理方法について説明する。図4は、図1に示したコマンドキュー91に含まれる複数のコマンドを示す図であり、コマンドキュー91にエージング時間(Aging Time)を超えている未実行のコマンドが残っている例を説明するための図である。
図4に示すように、磁気ディスク装置1は、上述したように、IOPSを高めることを重視し、リオーダリングを行っている。そのため、場合によっては、リードコマンド1のように、ずっと選択されずに後回しになってしまうコマンドがコマンドキュー91に残ってしまう。磁気ディスク装置1はホスト装置100にステータス通知(リードコマンド1実行完了の応答)を行うことができない。すると、ホスト装置100は、コマンドタイムアウトとして判定し、磁気ディスク装置1の異常と判断したり、磁気ディスク装置1にリードコマンド1を再発行したりする事態を招いてしまう。
そこで、磁気ディスク装置1が異常と判断される事態及びホスト装置100がコマンドを再発行する事態を回避するため、磁気ディスク装置1は、コマンドキュー91における各コマンドの滞在時間を監視している。磁気ディスク装置1は、上記滞在時間を監視する際、滞在時間が監視時間を超えていないか判断している。上記監視時間は、エージング時間とも呼ばれ、ユーザが任意に設定することができる。
例えば、エージング時間が2500msに設定されている場合、磁気ディスク装置1は、コマンドキュー91に滞在時間がエージング時間(2500ms)を超えているコマンドがあるか監視することができる。図4の例では、リードコマンド1の滞在時間が2550msであり、エージング時間を超えているため、磁気ディスク装置1は、強制的にリードコマンド1を最優先で選択し実行することができる。
次に、コマンド処理時間の管理を行うことのできるMPU60の構成について説明する。図5は、図1に示したHDC50、MPU60、バッファメモリ90、及びホスト装置100を示すブロック図である。
図5に示すように、MPU60は、コマンド受領部61と、エージング時間判定部62と、コマンド選択処理部66と、コマンド実行部67と、コマンド応答処理部68と、を備えている。コマンド受領部61は、ホスト装置100が発行するコマンドをHDC50を介して受領する。
エージング時間判定部62は、コマンドキュー91に滞在時間がエージング時間を超えているコマンドがあるか判断する。コマンド選択処理部66は、エージング時間判定部62での判断結果を考慮して次に実行するコマンドをコマンドキュー91及びキャッシュバッファ92の中から選択する。
コマンド実行部67は、コマンド選択処理部66が選択したコマンドを実行する。コマンド応答処理部68は、HDC50を介してホスト装置100にステータス通知(コマンド実行完了の応答)を行う。
次に、本比較例に係るコマンド処理方法について説明する。図6は、本比較例に係るコマンド処理方法を示すフローチャートであり、エージング時間を考慮しつつ効率的にコマンドを実行することのできるコマンド処理方法を説明するために用いられる。ここでは、コマンド処理方法のうちコマンド選択方法について説明する。
図6及び図5に示すように、比較例に係るコマンド選択方法が開始されると、まず、ステップSTa1において、エージング時間判定部62は、コマンドキュー91に、滞在時間がエージング時間を超えているコマンドがあるか判断する。コマンドキュー91に滞在時間がエージング時間を超えているコマンドがある場合、ステップSTa2に移行し、コマンド選択処理部66は、コマンドキュー91の中から滞在時間がエージング時間を超えている超過コマンドを次に実行するコマンドとして選択する。これにより、コマンド選択方法は終了する。
一方、コマンドキュー91に滞在時間がエージング時間を超えているコマンドがない場合(ステップSTa1)、ステップSTa3に移行し、コマンド選択処理部66は、現在実行しているコマンドから第1情報を取得する。上記第1情報は、シリンダ(現在実行しているコマンドに対応する実行トラック)、ヘッド15、及びセクタ(上記実行トラックのうち実行領域の最後尾の実行セクタ)の情報を含んでいる。
続いて、ステップSTa4において、コマンド選択処理部66は、コマンドキュー91及びキャッシュバッファ92にある複数のコマンドから複数の第2情報を取得する。各々の上記第2情報は、シリンダ(複数のコマンドのうち1のコマンドに対応する候補トラック)、ヘッド15、及びセクタ(上記候補トラックのうち候補領域の先頭の候補セクタ)の情報を含んでいる。
その後、ステップSTa5において、コマンド選択処理部66は、第1情報と複数の第2情報とから複数のアクセス距離(シーク距離を含む移動距離)を算出する。各々のアクセス距離は、実行セクタの最後尾から候補セクタの先頭までの距離である。次いで、ステップSTa6に移行し、コマンド選択処理部66は、複数のアクセス距離に基づいて、コマンドキュー91及びキャッシュバッファ92にある複数のコマンドの中から、最短で実行可能な最短コマンドを次に実行するコマンドとして選択する。これにより、コマンド選択方法は終了する。
なお、コマンド選択が終了した後、コマンド実行部67は、コマンド選択処理部66が選択したコマンドを実行する。コマンド応答処理部68は、HDC50を介してホスト装置100にステータス通知(コマンド実行完了の応答)を行う。これにより、コマンド選択方法を含むコマンド処理方法が終了する。
上述したように構成された比較例に係る磁気ディスク装置1及びコマンド処理方法によれば、磁気ディスク装置1は、エージング時間を考慮しつつ効率的にコマンドを実行することができる。しかしながら、逆に言えば、コマンドキュー91において、コマンドの滞在時間がエージング時間を超えない限り、コマンドの実行完了ができないこととなる。また、エージング時間は、コマンドキュー91に格納される全てのキューの全てのコマンドに一律に適用される。例えば、コマンドキュー91のコマンド数が1であっても、128であっても、エージング時間は固定である。また、コマンドキュー91におけるリードコマンドとライトコマンドとの比率が変わっても、エージング時間は固定である。
そのため、磁気ディスク装置1の使用条件によって、ホスト装置100が設定したエージング時間よりも早く磁気ディスク装置1に応答して欲しい場合、ホスト装置100からのあるコマンドパターンのときに磁気ディスク装置1の応答時間を変えたい場合等があっても、磁気ディスク装置1は、応答時間を変えることができない。コマンドキュー91のコマンドの滞在時間を単にエージング時間で一律に監視するだけでは、上記要求に対応できず、結果的に磁気ディスク装置1のコマンド応答を遅くしてしまう。
また、特許第3793682号公報に開示されているように、コマンドを入れ替えた回数を制限する機能でもコマンド応答を制御することができるが、入れ替え回数による制御であるため、応答時間を制御するものではない。
上記比較例では、アクセスパターンに応じたコマンド応答制御ができないという問題がある。これにより、コマンド応答性能の向上を図ることができず、ユーザの要求を満たすことができないと言う問題がある。
また、近年、IOPSの向上のため、磁気ディスク装置1が溜め込めるコマンド数が増えている。そのため、より応答時間が遅くなるコマンドが増えてしまい、ユーザの要求を満たすことができていない。
上述したことから、エージング時間を考慮しつつリオーダリングして効率的にコマンドを実行するだけでは、ユーザの要求を満たすことができない。
そこで、次に説明する実施形態では、応答時間を考慮しつつリオーダリングして効率的にコマンドを実行することのできる磁気ディスク装置1及びコマンド処理方法を得ることができるものである。詳しくは、コマンドキュー91のコマンド数が変わる毎に応答時間を制御することができ、コマンドキュー91におけるリードコマンドとライトコマンドとの比率(R/W比率)が変わる毎に応答時間を制御することができるものである。これにより、磁気ディスク装置1は、アクセスパターンに応じたコマンド応答制御が可能となる。
(一実施形態)
次に、一実施形態について説明する。磁気ディスク装置1は、本実施形態で説明する構成以外、上記比較例と同様に構成されている。図7は、本実施形態に係る磁気ディスク装置1が持つ第1レイテンシリミット時間判定テーブルを示す図である。図8は、本実施形態に係る磁気ディスク装置1が持つ第2レイテンシリミット時間判定テーブルを示す図である。図9は、本実施形態に係る磁気ディスク装置1が持つ第3レイテンシリミット時間判定テーブルを示す図である。
図7乃至図9において、レイテンシリミット時間の単位はミリ秒([ms])である。コマンドキュー91のコマンドが全てライトコマンドである場合、R/W比率は0%であり、コマンドキュー91のコマンドが全てリードコマンドである場合、R/W比率は100%である。各レイテンシリミット時間判定テーブルの各レイテンシリミット時間は、エージング時間(例えば、2500ms)より短い。
すなわち、エージング時間>レイテンシリミット時間、である。
R/W比率が0%以上10%未満であるコマンドキュー91の場合「0%」の縦の列の各レイテンシリミット時間が適用され、R/W比率が10%以上20%未満であるコマンドキュー91の場合「10%」の縦の列の各レイテンシリミット時間が適用され、R/W比率が20%以上30%未満であるコマンドキュー91の場合「20%」の縦の列の各レイテンシリミット時間が適用され、・・・(省略)・・・、R/W比率が90%以上100%未満であるコマンドキュー91の場合「90%」の縦の列の各レイテンシリミット時間が適用され、R/W比率が100%であるコマンドキュー91の場合「100%」の縦の列の各レイテンシリミット時間が適用される。
各レイテンシリミット時間判定テーブルは、必要なレイテンシリミット時間のみ規定していればよい。
例えば、一度に受領したコマンド数が1である場合、R/W比率は0%又は100%である。コマンド数が1である場合、各レイテンシリミット時間判定テーブルは、R/W比率が0%である場合のレイテンシリミット時間と、R/W比率が100%である場合のレイテンシリミット時間と、を規定していればよい。
別の例を示すと、一度に受領したコマンド数が2である場合、R/W比率は0%、50%、又は100%である。コマンド数が2である場合、各レイテンシリミット時間判定テーブルは、R/W比率が0%である場合のレイテンシリミット時間と、R/W比率が50%である場合のレイテンシリミット時間と、R/W比率が100%である場合のレイテンシリミット時間と、を規定していればよい。
図7に示すように、第1レイテンシリミット時間判定テーブルは、複数のレイテンシリミット時間を規定している。第1レイテンシリミット時間判定テーブルの複数のレイテンシリミット時間は、コマンドの数とR/W比率とに応じて個別に設定されている。例えば、一度に受領したコマンド数が32であり、R/W比率が100%である、コマンドキュー91の場合、レイテンシリミット時間は900msである。磁気ディスク装置1は、第1レイテンシリミット時間判定テーブルを用いることで、アクセスパターンに応じたコマンド応答制御が可能となる。
複数のレイテンシリミット時間は、R/W比率を固定した場合、コマンドの数が多くなるに従い、長くなるように設定されている。また、複数のレイテンシリミット時間は、コマンドの数を固定した場合、R/W比率が90乃至99%の範囲に近づくほど長くなるように設定されている。
R/W比率が0%である場合、キャッシュバッファ92に格納できるライトコマンドが多ければ、レイテンシリミット時間より早くコマンド応答を行うことができる。そのため、R/W比率が0%のコマンドキュー91にレイテンシリミット時間を使用する場合とは、キャッシュバッファ92に空きがない場合、又はキャッシュバッファ92に格納できないライトコマンドが多い場合である。
R/W比率が100%である場合、コマンドキュー91のコマンドはリードコマンドのみである。その場合、ライトコマンドを合い間に処理しないため、図7からも分かるように、R/W比率が100%の場合のレイテンシリミット時間を短く設定している。
図8に示すように、第2レイテンシリミット時間判定テーブルは、図7の第1レイテンシリミット時間判定テーブルと比較して、全体的に各レイテンシリミット時間を短く設定している。第2レイテンシリミット時間判定テーブルは、レイテンシを低くして磁気ディスク装置1の応答性能をよくしたい場合に好適であるが、IOPSは低くなり得る。
図9に示すように、第3レイテンシリミット時間判定テーブルは、図7の第1レイテンシリミット時間判定テーブルと比較して、全体的に各レイテンシリミット時間を長く設定している。第3レイテンシリミット時間判定テーブルは、IOPSを高くしてスループットを向上したい場合に好適であるが、レイテンシは高くなり得る。
上述した複数のレイテンシリミット時間判定テーブルは、例えば、不揮発性メモリ80に保存されている。ユーザは、磁気ディスク装置1に使用させるレイテンシリミット時間判定テーブルを切替え可能である。
次に、コマンド処理時間の管理を行うことのできるMPU60の構成について説明する。図10は、本実施形態に係るHDC50、MPU60、バッファメモリ90、及びホスト装置100を示すブロック図である。
図10に示すように、MPU60は、コマンド受領部61と、エージング時間判定部62と、コマンド滞在時間算出部63と、コマンド情報算出部64と、リミット時間判定部65と、コマンド選択処理部66と、コマンド実行部67と、コマンド応答処理部68と、を備えている。
コマンド受領部61は、ホスト装置100が発行するコマンドをHDC50を介して受領する。コマンド受領部61は、受領したコマンドをコマンドキュー91又はキャッシュバッファ92に格納する。
エージング時間判定部62は、コマンドキュー91に滞在時間がエージング時間を超えているコマンドがあるか判断する。例えば、エージング時間判定部62は、コマンドキュー91にエージング時間を超えている未実行の第2超過コマンドが残っているか判断する。なお、上述したように、エージング時間は、コマンドキュー91に格納される全てのキューの全てのコマンドに一律に適用される。
コマンド滞在時間算出部63は、コマンドキュー91における各コマンドの滞在時間を算出する。例えば、コマンド滞在時間算出部63は、コマンドキュー91にある1以上のコマンドの情報の1つである受領時間を用いて、最大滞在時間を算出する。
コマンド情報算出部64は、コマンドキュー91にあるコマンドの数と、コマンドキュー91にあるリードコマンドとライトコマンドとの比率(R/W比率)と、をそれぞれ算出する。例えば、コマンド情報算出部64は、コマンドキュー91にある1以上のコマンドの情報を用いて、コマンドの数とR/W比率と、を算出する。
リミット時間判定部65は、コマンド情報算出部64で算出した情報と、選択されているレイテンシリミット時間判定テーブルと、を用いる。リミット時間判定部65は、レイテンシリミット時間判定テーブルの複数のレイテンシリミット時間の中から、コマンドの数とR/W比率とに対応したレイテンシリミット時間を取得する。
コマンド選択処理部66は、エージング時間判定部62での判断結果を考慮して次に実行するコマンドをコマンドキュー91及びキャッシュバッファ92の中から選択する。さらに、コマンド選択処理部66は、リミット時間判定部65で取得したレイテンシリミット時間を考慮して実行するコマンドを選択する。
例えば、コマンド選択処理部66は、コマンドキュー91に上記第2超過コマンドが残っていると判断した際に、レイテンシリミット時間を考慮せずに第2超過コマンドを次に実行するコマンドとして選択する。
また、コマンド選択処理部66は、コマンドキュー91に上記第2超過コマンドが残っていないと判断した際に、レイテンシリミット時間を考慮して実行するコマンドを選択する。
詳しくは、コマンド選択処理部66は、コマンド滞在時間算出部63が算出した最大滞在時間と、取得したレイテンシリミット時間と、を比較し、コマンドキュー91にレイテンシリミット時間を超えている未実行の第1超過コマンドが残っているかどうか判断する。
コマンド選択処理部66は、コマンドキュー91にレイテンシリミット時間を超えている未実行の第1超過コマンドが残っていると判断した際に、優先的に、第1超過コマンドを次に実行するコマンドとして選択し、そのコマンドをコマンド実行部67に送る。
コマンド選択処理部66は、コマンドキュー91にレイテンシリミット時間を超えている未実行の第1超過コマンドが残っていないと判断した際に、コマンドキュー91及びキャッシュバッファ92に含まれる複数のコマンドから最短で実行可能な最短コマンドを次に実行するコマンドとして選択し、その最短コマンドをコマンド実行部67に送る。
コマンド実行部67は、コマンド選択処理部66が選択したコマンドを実行する。例えば、コマンド実行部67は、選択されたコマンドに応じて、ディスク10へのアクセスを行い、実行完了通知をコマンド応答処理部68に送る。
コマンド応答処理部68は、HDC50を介してホスト装置100にステータス通知(コマンド実行完了の応答)を行う。
次に、本実施形態に係るコマンド処理方法について説明する。図11は、本実施形態に係るコマンド処理方法を示すフローチャートであり、エージング時間及びレイテンシリミット時間を考慮しつつ効率的にコマンドを実行することのできるコマンド処理方法を説明するために用いられる。図12は、図11に続く、上記コマンド処理方法を示すフローチャートである。ここでは、コマンド処理方法のうちコマンド選択方法について説明する。
図11及び図10に示すように、本実施形態に係るコマンド選択方法が開始されると、まず、ステップSTb1において、エージング時間判定部62は、コマンドキュー91に、滞在時間がエージング時間を超えているコマンドがあるか判断する。コマンドキュー91に滞在時間がエージング時間を超えているコマンドがある場合、ステップSTb2に移行し、コマンド選択処理部66は、コマンドキュー91の中から滞在時間がエージング時間を超えている超過コマンド(第2超過コマンド)を次に実行するコマンドとして選択する。これにより、コマンド選択方法は終了する。
ステップSTb1及びSTb2は、上記比較例におけるコマンド滞在時間の監視方法の工程と同一であり、本実施形態においてはフェールセーフとして用いてもよい。但し、本実施形態に係るコマンド選択方法において、ステップSTb1及びSTb2を省略してもよい。その場合、MPU60はエージング時間判定部62無しに構成されてもよい。
一方、コマンドキュー91に滞在時間がエージング時間を超えているコマンドがない場合(ステップSTb1)、ステップSTb3に移行し、コマンド滞在時間算出部63は、現在時刻とコマンドキュー91内にある各コマンドの受領時刻とから各コマンドの滞在時間を算出する。例えば、コマンド滞在時間算出部63は、最大滞在時間を求めることができ、最大滞在時間を持つコマンドを特定することができる。
また、ステップSTb4において、コマンド情報算出部64は、コマンドキュー91内のコマンドの数及びR/W比率といったコマンド情報を算出する。
続いて、ステップSTb5において、リミット時間判定部65は、レイテンシリミット時間判定テーブルから、コマンドキュー91に含まれるコマンドの数とR/W比率とに対応したレイテンシリミット時間を取得する。例えば、一度に受領したコマンド数が16でありR/W比率が50%であるコマンドキュー91の場合、リミット時間判定部65は、図7の第1レイテンシリミット時間判定テーブルからレイテンシリミット時間(700ms)取得することができる。
次いで、ステップSTb6において、コマンド選択処理部66は、現在実行しているコマンドから第1情報を取得する。上記第1情報は、シリンダ(現在実行しているコマンドに対応する実行トラック)、ヘッド15、及びセクタ(上記実行トラックのうち実行領域の最後尾の実行セクタ)の情報を含んでいる。
続いて、ステップSTb7において、コマンド選択処理部66は、コマンドキュー91及びキャッシュバッファ92にある複数のコマンドから複数の第2情報を取得する。各々の上記第2情報は、シリンダ(複数のコマンドのうち1のコマンドに対応する候補トラック)、ヘッド15、及びセクタ(上記候補トラックのうち候補領域の先頭の候補セクタ)の情報を含んでいる。
図12及び図10に示すように、その後、ステップSTb8において、コマンド選択処理部66は、第1情報と複数の第2情報とから複数のアクセス距離(シーク距離を含む移動距離)を算出する。各々のアクセス距離は、実行セクタの最後尾から候補セクタの先頭までの距離である。
次いで、ステップSTb9に移行し、コマンド選択処理部66は、コマンドキュー91に、滞在時間がレイテンシリミット時間を超えているコマンドがあるか判断する。例えば、コマンド選択処理部66は、コマンド滞在時間算出部63で求めた最大滞在時間が、リミット時間判定部65で求めたレイテンシリミット時間を超えているか判断する。
コマンドキュー91に、滞在時間がレイテンシリミット時間を超えているコマンドがない場合(ステップSTb9)、ステップSTb10に移行し、コマンド選択処理部66は、複数のアクセス距離に基づいて、コマンドキュー91及びキャッシュバッファ92にある複数のコマンドの中から、最短で実行可能な最短コマンドを次に実行するコマンドとして選択する。これにより、コマンド選択方法は終了する。
一方、コマンドキュー91に、滞在時間がレイテンシリミット時間を超えているコマンドがある場合(ステップSTb9)、ステップSTb11に移行し、コマンド選択処理部66は、コマンドキュー91から、滞在時間がレイテンシリミット時間を超えている超過コマンド(第1超過コマンド)を次に実行するコマンドとして選択する。これにより、コマンド選択方法は終了する。
なお、コマンド選択が終了した後、コマンド実行部67は、コマンド選択処理部66から送られてきたコマンドを実行する。コマンド応答処理部68は、HDC50を介してホスト装置100にステータス通知(コマンド実行完了の応答)を行う。これにより、コマンド選択方法を含むコマンド処理方法が終了する。
このように、本実施形態のコマンド処理方法を用いることで、アクセスパターンを考慮したコマンド応答時間を制御することが可能となる。
次に、本実施形態の磁気ディスク装置1において、コマンドを受領してから、コマンドを実行し、ステータスをホスト装置100に通知するまでの流れについて説明する。図13は、本実施形態に係る磁気ディスク装置1において、コマンドを受領してから、コマンドを実行し、ステータスをホスト装置100に通知するまでの流れを示すフローチャートである。図14は、図13に続く、上記流れを示すフローチャートである。
図13及び図10に示すように、ホスト装置100がコマンドを発行し、磁気ディスク装置1による処理が開始されると、まず、ステップSTc1において、コマンド受領部61は、ホスト装置100が発行するコマンドをHDC50を介して受領する。続いて、ステップSTc2において、コマンド受領部61は、受領したコマンドが、キャッシュ(リードキャッシュ)93にヒットしたリードコマンドであるか判断する。
キャッシュ93にヒットしたリードコマンドである場合(ステップSTc2)、ステップSTc3に移行し、コマンド受領部61は、HDC50を介してホスト装置100にデータを転送(送信)し、ステップSTc4において、コマンド受領部61は、HDC50を介してホスト装置100に完了ステータスを報告する。
図14に示すように、これにより、磁気ディスク装置1による処理が終了する。
図13及び図10に示すように、一方、キャッシュ93にヒットしたリードコマンドでない場合(ステップSTc2)、ステップSTc5に移行し、コマンド受領部61は、受領したコマンドがキャッシュ93にヒットしないリードコマンドであるか又はキャッシュバッファ92に格納できないライトコマンドであるかを判断する。
ここで、「キャッシュバッファ92に格納できないライトコマンド」とは、ディスク10にライトするデータを予めもらうことができないと言うことである。他に、キャッシュバッファ92に空き容量が無い場合も、ライトコマンドをキャッシュバッファ92に格納できない。ライトコマンドのサイズがキャッシュバッファ92の容量より大きい場合も、ライトコマンドをキャッシュバッファ92に格納できない。コマンドのオプションで、キャッシュバッファ92ではなくディスク10に必ずライトすることを指定しているライトコマンドの場合も、ライトコマンドをキャッシュバッファ92に格納できない。
「キャッシュ93にヒットしないリードコマンド」及び「キャッシュバッファ92に格納できないライトコマンド」の何れかに該当する場合(ステップSTc5)、ステップSTc6に移行し、コマンド受領部61は、コマンドをコマンドキュー91に格納する。
「キャッシュ93にヒットしないリードコマンド」及び「キャッシュバッファ92に格納できないライトコマンド」の何れにも該当しない場合(ステップSTc5)、ステップSTc7に移行し、コマンド受領部61は、コマンドをキャッシュバッファ92に格納し、ステップSTc8において、コマンド受領部61は、HDC50を介してホスト装置100に完了ステータスを報告する。
上述したように、「キャッシュ93の情報にヒットしないリードコマンド」及び「ライトコマンド」は、ディスク10へのアクセスが必要となる。但し、ライトコマンドがキャッシュバッファ92に格納できるライトコマンドである場合、ディスク10にアクセスすること無しに、ホスト装置100に完了ステータスを報告することができる。ライトコマンドがキャッシュバッファ92に格納できないライトコマンドである場合、ライトコマンドは、リードコマンドとともにコマンドキュー91に格納される。
その後、ステップSTc9において、コマンド滞在時間算出部63はコマンドキュー91におけるコマンドの最大滞在時間を算出し、リミット時間判定部65はコマンド情報算出部64とともにレイテンシリミット時間判定テーブルからレイテンシリミット時間を取得(選択)する。ここでは、最大滞在時間がレイテンシリミット時間を超えていないものとする。
続いて、ステップSTc10において、コマンド選択処理部66は、コマンドキュー91のコマンドとキャッシュバッファ92のコマンドとを対象にリオーダリングし、次に実行するコマンドを選択する。
図14及び図10に示すように、その後、ステップSTc11において、コマンド実行部67は、コマンド選択処理部66で選択されたコマンドに従い、ディスク10へのアクセス要求を発行する。
ステップSTc12において、コマンド実行部67は、コマンド選択処理部66で選択されたコマンドがリードコマンドであるか判断する。
リードコマンドでない場合(ステップSTc12)、すなわちライトコマンドである場合、ステップSTc13に移行し、コマンド実行部67は、ディスク10にデータを転送する。すなわち、ディスク10にライト処理を行い、磁気ディスク装置1による処理が終了する。
一方、リードコマンドである場合(ステップSTc12)、ステップSTc14に移行し、コマンド実行部67は、ディスク10からリードしたデータをキャッシュ93に格納する。これにより、ステップSTc15において、キャッシュ93に格納したデータをホスト装置100に転送することができる。
そして、ステップSTc16において、コマンド応答処理部68は、HDC50を介してホスト装置100に完了ステータスを報告する。これにより、磁気ディスク装置1による処理が終了する。
次に、使用するレイテンシリミット時間判定テーブルを切替えるための磁気ディスク装置1の構成について説明する。図15は、本実施形態に係るHDC50、MPU60、不揮発性メモリ80、及びホスト装置100を示すブロック図である。なお、図15において、MPU60の全ての構成を示しておらず、ここでの説明に必要な構成のみを示している。
図15に示すように、MPU60は、テーブル選択部69をさらに備えている。テーブル選択部69は、不揮発性メモリ80に保存された複数のレイテンシリミット時間判定テーブルの中から1つのレイテンシリミット時間判定テーブルを選択可能である。リミット時間判定部65は、テーブル選択部69が選択したレイテンシリミット時間判定テーブルの複数のレイテンシリミット時間の中から、コマンドの数とR/W比率とに対応したレイテンシリミット時間を取得することができる。
次に、使用するレイテンシリミット時間判定テーブルを切替える方法について説明する。図16は、本実施形態に係る磁気ディスク装置1において、使用するレイテンシリミット時間判定テーブルを切替える流れを示すフローチャートである。
図16及び図15に示すように、レイテンシリミット時間判定テーブルの切替え方法が開始されると、まず、ステップSTd1において、テーブル選択部69は、コマンド受領部61を介してレイテンシリミット時間判定テーブルの切替えコマンドを受領する。上記切替えコマンドは、例えばユーザの操作によってホスト装置100が発行する。
続いて、ステップSTd2において、テーブル選択部69は、デフォルト以外のレイテンシリミット時間判定テーブルを指定しているか判断する。例えば、デフォルト状態で、リミット時間判定部65が第1レイテンシリミット時間判定テーブルを使用している場合、テーブル選択部69は、第2レイテンシリミット時間判定テーブル又は第3レイテンシリミット時間判定テーブルを指定しているか判断する。
デフォルト以外のレイテンシリミット時間判定テーブルを指定していない場合(ステップSTd2)、上記切替え方法は終了する。
一方、デフォルト以外のレイテンシリミット時間判定テーブルを指定している場合(ステップSTd2)、ステップSTd3に移行し、テーブル選択部69は、レイテンシリミット時間判定テーブルの切替えを実行する。例えば、ホスト装置100が第2レイテンシリミット時間判定テーブルを指定している場合、リミット時間判定部65が使用するレイテンシリミット時間判定テーブルを第1レイテンシリミット時間判定テーブルから第2レイテンシリミット時間判定テーブルに切替えることができる。
その後、ステップSTd4において、コマンド応答処理部68は、HDC50を介してホスト装置100に、レイテンシリミット時間判定テーブルの切替えが完了したことを報告する。これにより、上記切替え方法は終了する。
上記のように構成された実施形態に係る磁気ディスク装置1及びコマンド処理方法によれば、実行するコマンドを選択する際、レイテンシリミット時間判定テーブルの中の対応したレイテンシリミット時間を考慮しながら行うことができる。そのため、応答時間を考慮しつつ効率的にコマンドを実行することのできる磁気ディスク装置1及びコマンド処理方法を得ることができる。
本発明の実施形態を説明したが、上記実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。上記の新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。上記の実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
例えば、磁気ディスク装置1が使用するレイテンシリミット時間判定テーブルは、上述した第1乃至第3レイテンシリミット時間判定テーブルに限定されるものではなく、種々変形可能である。磁気ディスク装置1は、少なくとも1種類のレイテンシリミット時間判定テーブルを使用することができればよい。磁気ディスク装置1が持つレイテンシリミット時間判定テーブルの種類は、3種類に限らず、1種類、2種類、又は4種類以上であってもよい。
1…磁気ディスク装置、10…ディスク、TR1a,TR2a,TR3a…実行領域、
TR0,TR1,TR2,TR3,TR4,TR5…トラック、15…ヘッド、
50…HDC、60…MPU、61…コマンド受領部、62…エージング時間判定部、
63…コマンド滞在時間算出部、64…コマンド情報算出部、65…リミット時間判定部、66…コマンド選択処理部、67…コマンド実行部、68…コマンド応答処理部、
69…テーブル選択部、70…揮発性メモリ、80…不揮発性メモリ、
90…バッファメモリ、91…コマンドキュー、92…キャッシュバッファ、
93…キャッシュ、100…ホスト装置、130…システムコントローラ、
d1…半径方向、d2…進行方向、d3…回転方向。

Claims (11)

  1. ディスクと、
    前記ディスクに対してデータをライトし、前記ディスクからデータをリードするヘッドと、
    受領した1以上のコマンドを一時的に記憶するコマンドキューと、
    前記コマンドキューにおける各コマンドの滞在時間を算出するコマンド滞在時間算出部と、
    前記コマンドキューにある前記コマンドの数と、前記コマンドキューにあるリードコマンドとライトコマンドとの比率と、をそれぞれ算出するコマンド情報算出部と、
    レイテンシリミット時間判定テーブルの複数のレイテンシリミット時間の中から前記コマンドの数と前記比率とに対応したレイテンシリミット時間を取得するリミット時間判定部と、
    前記リミット時間判定部で取得した前記レイテンシリミット時間を考慮して実行するコマンドを選択するコマンド選択処理部と、を備える、
    磁気ディスク装置。
  2. 前記レイテンシリミット時間判定テーブルの前記複数のレイテンシリミット時間は、前記コマンドの数と前記比率とに応じて個別に設定されている、
    請求項1に記載の磁気ディスク装置。
  3. 前記コマンド選択処理部は、前記コマンドキューに前記レイテンシリミット時間を超えている未実行の第1超過コマンドが残っていると判断した際に、前記第1超過コマンドを次に実行するコマンドとして選択する、
    請求項1に記載の磁気ディスク装置。
  4. 前記コマンドキューにエージング時間を超えている未実行の第2超過コマンドが残っているか判断するエージング時間判定部をさらに備え、
    前記コマンド選択処理部は、
    前記コマンドキューに前記第2超過コマンドが残っていないと判断した際に前記レイテンシリミット時間を考慮して実行するコマンドを選択し、及び
    前記コマンドキューに前記第2超過コマンドが残っていると判断した際に前記レイテンシリミット時間を考慮せずに前記第2超過コマンドを次に実行するコマンドとして選択し、
    前記エージング時間は、前記コマンドキューに格納される全てのキューの全てのコマンドに一律に適用され、
    前記レイテンシリミット時間判定テーブルの前記複数のレイテンシリミット時間の各々は、前記エージング時間より短い、
    請求項1に記載の磁気ディスク装置。
  5. 前記レイテンシリミット時間判定テーブルを含む複数のレイテンシリミット時間判定テーブルの中から1つのレイテンシリミット時間判定テーブルを選択可能であるテーブル選択部をさらに備え、
    前記リミット時間判定部は、前記テーブル選択部が選択した前記レイテンシリミット時間判定テーブルの複数のレイテンシリミット時間の中から前記コマンドの数と前記比率とに対応したレイテンシリミット時間を取得する、
    請求項1に記載の磁気ディスク装置。
  6. 前記レイテンシリミット時間判定テーブルの前記複数のレイテンシリミット時間は、前記比率を固定した場合、前記コマンドの数が多くなるに従い、長くなる、
    請求項1に記載の磁気ディスク装置。
  7. 前記レイテンシリミット時間判定テーブルの前記複数のレイテンシリミット時間は、前記コマンドの数を固定した場合、前記比率が90乃至99%の範囲に近づくほど長くなる、
    請求項1に記載の磁気ディスク装置。
  8. 前記1以上のコマンドを前記コマンドキューの替わりに一時的に記憶するキャッシュバッファをさらに備え、
    前記コマンド選択処理部は、前記コマンドキューに前記レイテンシリミット時間を超えている未実行の第1超過コマンドが残っていないと判断した際に、前記コマンドキュー及び前記キャッシュバッファに含まれる前記複数のコマンドから最短で実行可能な最短コマンドを次に実行するコマンドとして選択する、
    請求項1に記載の磁気ディスク装置。
  9. ディスクと、前記ディスクに対してデータをライトし、前記ディスクからデータをリードするヘッドと、受領した1以上のコマンドを一時的に記憶するコマンドキューと、を備える磁気ディスク装置に適用されるコマンド処理方法であって、
    前記コマンドキューにおける各コマンドの滞在時間を算出し、
    前記コマンドキューにある前記コマンドの数と、前記コマンドキューにあるリードコマンドとライトコマンドとの比率と、をそれぞれ算出し、
    レイテンシリミット時間判定テーブルの複数のレイテンシリミット時間の中から前記コマンドの数と前記比率とに対応したレイテンシリミット時間を取得し、
    前記取得したレイテンシリミット時間を考慮して実行するコマンドを選択する、
    コマンド処理方法。
  10. 前記取得したレイテンシリミット時間を考慮して実行するコマンドを選択する場合において、前記コマンドキューに前記レイテンシリミット時間を超えている未実行の第1超過コマンドが残っていると判断した際に、前記第1超過コマンドを次に実行するコマンドとして選択する、
    請求項9に記載のコマンド処理方法。
  11. 前記滞在時間を算出する前に、前記コマンドキューにエージング時間を超えている未実行の第2超過コマンドが残っているか判断し、
    前記コマンドキューに前記第2超過コマンドが残っていないと判断した際に前記レイテンシリミット時間を考慮して実行するコマンドを選択し、及び前記コマンドキューに前記第2超過コマンドが残っていると判断した際に前記レイテンシリミット時間を考慮せずに前記第2超過コマンドを次に実行するコマンドとして選択し、
    前記エージング時間は、前記コマンドキューに格納される全てのキューの全てのコマンドに一律に適用され、
    前記レイテンシリミット時間判定テーブルの前記複数のレイテンシリミット時間の各々は、前記エージング時間より短い、
    請求項9に記載のコマンド処理方法。
JP2022138628A 2022-08-31 2022-08-31 磁気ディスク装置及びコマンド処理方法 Pending JP2024034411A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2022138628A JP2024034411A (ja) 2022-08-31 2022-08-31 磁気ディスク装置及びコマンド処理方法
CN202310057028.8A CN117631965A (zh) 2022-08-31 2023-01-17 磁盘装置以及命令处理方法
US18/119,749 US11942110B2 (en) 2022-08-31 2023-03-09 Magnetic disk device and command processing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2022138628A JP2024034411A (ja) 2022-08-31 2022-08-31 磁気ディスク装置及びコマンド処理方法

Publications (1)

Publication Number Publication Date
JP2024034411A true JP2024034411A (ja) 2024-03-13

Family

ID=89997323

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022138628A Pending JP2024034411A (ja) 2022-08-31 2022-08-31 磁気ディスク装置及びコマンド処理方法

Country Status (3)

Country Link
US (1) US11942110B2 (ja)
JP (1) JP2024034411A (ja)
CN (1) CN117631965A (ja)

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001100935A (ja) 1999-09-28 2001-04-13 Internatl Business Mach Corp <Ibm> ディスク装置およびその制御方法
JP3793682B2 (ja) 2000-03-07 2006-07-05 株式会社日立グローバルストレージテクノロジーズ コマンドキューイングの機能を持つ記憶装置
JP2003308176A (ja) 2002-04-03 2003-10-31 Internatl Business Mach Corp <Ibm> データ記憶装置、コマンド・キューのリオーダリング方法、データ処理方法およびプログラム
JP2004272969A (ja) 2003-03-06 2004-09-30 Hitachi Ltd 記録再生装置、記録再生システム、および磁気ディスク装置の制御方法
JP2006139548A (ja) 2004-11-12 2006-06-01 Hitachi Global Storage Technologies Netherlands Bv メディア・ドライブ及びそのコマンド実行方法
US9239786B2 (en) 2012-01-18 2016-01-19 Samsung Electronics Co., Ltd. Reconfigurable storage device
JP6244972B2 (ja) 2014-02-21 2017-12-13 富士通株式会社 ストレージ制御装置、ストレージ装置及びストレージ制御プログラム
US10250684B2 (en) 2016-01-12 2019-04-02 Netapp, Inc. Methods and systems for determining performance capacity of a resource of a networked storage environment
US10198188B2 (en) * 2017-03-09 2019-02-05 Kabushiki Kaisha Toshiba Disk drive that efficiently handles random mixed-R/W command-streams
US10732895B2 (en) 2017-03-22 2020-08-04 Burlywood, Inc. Drive-level internal quality of service

Also Published As

Publication number Publication date
US20240071420A1 (en) 2024-02-29
US11942110B2 (en) 2024-03-26
CN117631965A (zh) 2024-03-01

Similar Documents

Publication Publication Date Title
US7373460B2 (en) Media drive and command execution method thereof
US7664884B2 (en) Media drive that creates a transfer unnecessary period, and power saving method thereof
US8896953B2 (en) Disk storage apparatus and method for shingled magnetic recording
JP4675881B2 (ja) 磁気ディスク装置およびその制御方法
JP2005215729A (ja) データ伝送制御方法及び記憶装置
US20100079904A1 (en) Storage control method, storage control unit and storage apparatus
US20200294540A1 (en) Magnetic disk device and method
US20160378357A1 (en) Hybrid storage device and method for operating the same
US9727265B2 (en) Disk device and control method that controls amount of data stored in buffer
JP3823040B2 (ja) データ記憶装置、データ処理装置、書き込み要求の実行順序を最適化する方法、データ処理方法およびハード・ディスク・ドライブ
US10777218B2 (en) Disk-drive with efficient command reordering
JP2002304823A (ja) リオーダリングコントローラ、リオーダリング方法及び記憶装置
JP5030387B2 (ja) データ記憶装置
JP2001022529A (ja) ディスクドライブ装置及びその制御方法
JP2024034411A (ja) 磁気ディスク装置及びコマンド処理方法
JP2014086116A (ja) 磁気ディスク装置およびデータライト方法
US20160299686A1 (en) Disk device and controlling method of disk device
JP6178287B2 (ja) 記憶装置、及び制御方法
US12073855B2 (en) Magnetic disk device and control method
JP2023125196A (ja) データ記録装置、および、データ記録方法
JP2018159993A (ja) ディスク装置、及びディスク装置の制御方法
JP2009087460A (ja) ディスク記憶装置のコマンド処理方法
JP7252448B2 (ja) テープ装置、制御装置および読み出し制御プログラム
JP2012038330A (ja) ハードディスクドライブ
JP2009032323A (ja) ディスク記憶装置