(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023110574
(43)【公開日】2023-08-09
(54)【発明の名称】磁気ディスク装置
(51)【国際特許分類】
G11B 21/10 20060101AFI20230802BHJP
G11B 21/08 20060101ALI20230802BHJP
【FI】
G11B21/10 Q
G11B21/08 H
G11B21/08 V
【審査請求】未請求
【請求項の数】11
【出願形態】OL
(21)【出願番号】P 2022012108
(22)【出願日】2022-01-28
(71)【出願人】
【識別番号】000003078
【氏名又は名称】株式会社東芝
(71)【出願人】
【識別番号】317011920
【氏名又は名称】東芝デバイス&ストレージ株式会社
(74)【代理人】
【識別番号】110001737
【氏名又は名称】弁理士法人スズエ国際特許事務所
(72)【発明者】
【氏名】須藤 大輔
(57)【要約】
【課題】マルチアクチュエータの性能を改善する磁気ディスク装置を提供することを目的とする。
【解決手段】実施形態に係る磁気ディスク装置は、2つ以上の独立駆動可能なアクチュエータブロックを持ち、Jerk(加加速度)を制限した低Jerkのシーク制御を行う磁気ディスク装置であって、第1アクチュエータブロックがディスクのデータセクタにアクセスしていない状態においては、前記第1アクチュエータブロックでない第2アクチュエータブロックは高Jerkを持つシーク制御によりディスクのデータセクタへのアクセスを行うことを特徴とする。
【選択図】
図9
【特許請求の範囲】
【請求項1】
2つ以上の独立駆動可能なアクチュエータブロックを持ち、加加速度であるJerkを制限した低Jerkのシーク制御を行う磁気ディスク装置において、
第1アクチュエータブロックがディスクのデータセクタにアクセスしていない状態においては、前記第1アクチュエータブロックでない第2アクチュエータブロックは高Jerkを持つシーク制御によりディスクのデータセクタへのアクセスを行うことを特徴とする磁気ディスク装置。
【請求項2】
前記第1アクチュエータブロックのPower modeがActiveでない場合もしくはHostから前記第1アクチュエータブロックへのディスクアクセス要求である第1コマンドが格納されているCommand queueが空の状態であるときに、前記第1アクチュエータブロックが前記データセクタにアクセスしていない状態であると判断することを特徴とする請求項1に記載の磁気ディスク装置。
【請求項3】
不揮発性メモリに前記Jerkを制限した低Jerkのシーク制御を実行するための低Jerkシーク制御パラメータと前記高Jerkを持つシーク制御を実行するための高Jerkシーク制御パラメータとを保持することを特徴とする請求項1に記載の磁気ディスク装置。
【請求項4】
前記不揮発性メモリに保存されている前記低Jerkシーク制御パラメータと前記高Jerkシーク制御パラメータとを、起動時に揮発性メモリに展開することを特徴とする請求項3に記載の磁気ディスク装置。
【請求項5】
前記Jerkを制限した低Jerkのシーク制御と前記高Jerkを持つシーク制御とにおいて、コマンドリオーダリングを実施するためのシーク距離に対するシーク時間の対応テーブルを各々持つことを特徴とする請求項1に記載の磁気ディスク装置。
【請求項6】
前記Jerkを制限した低Jerkのシーク制御から前記高Jerkを持つシーク制御に切り替える際は、前記対応テーブルを切り替えることを特徴とする請求項5に記載の磁気ディスク装置。
【請求項7】
第3アクチュエータブロックが前記高Jerkのシーク制御を行っている最中に、前記第3アクチュエータブロックでない第4アクチュエータブロックがシーク制御を行うときに、前記第3アクチュエータブロックのシーク終了時刻よりも遅い時刻に前記第4アクチュエータブロックが制御するデータセクタにアクセス可能な1以上の第4コマンドがある場合には、前記第4コマンドの中から次にアクセスするコマンドを選択することを特徴とする請求項1乃至請求項6のいずれか1項に記載の磁気ディスク装置。
【請求項8】
第5アクチュエータブロックが前記高Jerkのシーク制御を行っている最中に、前記第5アクチュエータブロックでない第6アクチュエータブロックがシーク制御を行う際は、前記第5アクチュエータブロックのシーク終了時刻よりも遅い時刻にデータセクタに前記第5アクチュエータブロックによりアクセス可能なコマンドが無い場合には、コマンド群の中から次にアクセスするコマンドを選択し、1周の回転時間を入れて前記第5アクチュエータブロックのシーク終了時刻よりも遅い時刻にアクセスさせることを特徴とする請求項1乃至請求項7のいずれか1項に記載の磁気ディスク装置。
【請求項9】
第7アクチュエータブロックのシーク制御において目標データセクタが確定した後に、前記目標データセクタにアクセスする時刻の直前に前記第7アクチュエータブロックのシークが終了するように、前記第7アクチュエータブロックのシーク制御の調整をすることを特徴とする請求項1乃至請求項8のいずれか1項に記載の磁気ディスク装置。
【請求項10】
前記第7アクチュエータブロックのシーク制御の調整においては、アクチュエータの加速区間における時間もしくは加速度レベル、減速区間における時間もしくは加速度レベル、定速度区間の時間のいずれかの組合せで調整を行うことを特徴とする請求項9に記載の磁気ディスク装置。
【請求項11】
シーク制御において、前記高Jerkを持つシーク制御と前記低Jerkのシーク制御とを切り替える場合に、各々のシーク制御の動作特性における加速度もしくは電流のいずれかのピークレベルが一致させることを特徴とする請求項1乃至請求項10のいずれか1項に記載の磁気ディスク装置。
【発明の詳細な説明】
【技術分野】
【0001】
この発明の実施形態は、磁気ディスク装置に関する。
【背景技術】
【0002】
マルチアクチュエータ磁気ディスク装置は、独立駆動可能な複数のアクチュエータを持ち、いずれかのアクチュエータがシーク動作を行うと、他のアクチュエータの振動を励起し、トラッキングしているヘッドが揺らされ、トラッキングヘッドの目標位置に対する位置誤差PESが大きくなることがある。このため、アクチュエータのシーク時のJerk(加加速度)を制限するように制御される。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】米国特許第10049691号明細書
【特許文献2】米国特許第10014018号明細書
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、Jerkを制限するとシーク時間が遅くなり、コマンドアクセス性能(単位時間にアクセス可能なコマンド数)が低下してしまうことがある。
【0005】
本発明が解決しようとする課題は、マルチアクチュエータの性能を改善する磁気ディスク装置を提供することを目的とする。
【課題を解決するための手段】
【0006】
実施形態に係る磁気ディスク装置は、2つ以上の独立駆動可能なアクチュエータブロックを持ち、Jerk(加加速度)を制限した低Jerkのシーク制御を行う磁気ディスク装置であって、第1アクチュエータブロックがディスクのデータセクタにアクセスしていない状態においては、前記第1アクチュエータブロックでない第2アクチュエータブロックは高Jerkを持つシーク制御によりディスクのデータセクタへのアクセスを行うことを特徴とする。
【図面の簡単な説明】
【0007】
【
図1】
図1は、実施形態に係る磁気ディスク装置の構成図である。
【
図2】
図2は、同実施形態に係るアクチュエータブロック及びディスクなどの構成の模式図である。
【
図3】
図3は、同実施形態に係る磁気ディスク装置のサーボ制御部の機能構成を示すブロック図である。
【
図4】
図4は、同実施形態に係る磁気ディスク装置のアクチュエータ起動時の他のアクチュエータへの影響の例を示す図である。
【
図5】
図5は、同実施形態に係る磁気ディスク装置におけるアクチュエータ間の振動干渉の影響を抑制する機能におけるデータの流れを示す図である。
【
図6】
図6は、同実施形態に係るリオーダリングテーブルを示す図である。
【
図7】
図7は、同実施形態に係る磁気ディスク装置がシーク動作を実行するタイミングチャートである。
【
図8】
図8は、同実施形態に係る磁気ディスク装置がコマンド選択を実行するフローチャートである。
【
図9】
図9は、同実施形態に係る磁気ディスク装置がJerkシーク制御のタイプを設定するフローチャートである。
【
図10】
図10は、同実施形態に係る磁気ディスク装置がリオーダリングテーブルのタイプを設定するフローチャートである。
【
図11】
図11は、同実施形態に係る磁気ディスク装置がコマンド選択を実行するフローチャートである。
【
図12】
図12は、同実施形態に係る磁気ディスク装置がシーク制御を実行するフローチャートである。
【
図13A】
図13Aは、同実施形態に係る磁気ディスク装置の2つの制御系統がシーク制御を実行するタイミングを示す図である。
【
図13B】
図13Bは、同実施形態に係る磁気ディスク装置の2つの制御系統の動作状態の関係を示す図である。
【
図14】
図14は、同実施形態に係る磁気ディスク装置におけるシーク制御の加速度と位置の関係例を示す図である。
【
図15】
図15は、変形例に係る磁気ディスク装置の構成図である。
【発明を実施するための形態】
【0008】
以下、図面を参照しながら、本発明の実施形態について説明する。
(実施形態)
本実施形態においては、2つのアクチュエータを備える磁気ディスク装置のコマンドアクセス性能を改善するためのシーク制御の例を示す。コマンドアクセス性能は、単位時間に処理可能なコマンド数であってもよい。
【0009】
例えば、一方のアクチュエータ(アクチュエータAとする)がシーク動作を行うと、もう一方のアクチュエータ(アクチュエータBとする)の振動を励起し、アクチュエータBがトラッキングしているアクチュエータBのヘッドが揺らされる。その結果として、アクチュエータBのトラッキングヘッドの目標位置に対する位置誤差PES(Position Error Signal)が大きくなり、データセクタへの読み書きに誤りが生じる可能性がある。このため、アクチュエータAのシーク時のJerkを制限することで、アクチュエータBのトラッキングヘッドの揺れを小さくしてデータセクタを読み書きすることが出来るようにしている。しかし、Jerkを制限するとシーク時間が遅くなり、アクチュエータAのコマンドアクセス性能が低下してしまう。本実施形態においては、上記のような状況において、コマンドアクセス性能を改善するシーク制御の例を示す。
【0010】
図1は、実施形態に係る磁気ディスク装置の構成図である。
【0011】
磁気ディスク装置1は、例えばハードディスクドライブ(HDD)であり、2つのアクチュエータブロック100A、アクチュエータブロック100Bを備えるマルチアクチュエータ磁気ディスク装置である。
【0012】
本実施形態の磁気ディスク装置1は、2つの制御系統A、Bを備える。制御系統Aは、アクチュエータブロック100Aを制御し、ディスクDK1へのアクセスを制御する。制御系統Bは、アクチュエータブロック100Bを制御し、ディスクDK2へのアクセスを制御する。制御系統Aと制御系統Bとはデータの通信が可能である。制御系統A、Bが備える各機能について、名称を同一とする機能ブロックは符号にはA、Bを付して区別している。
【0013】
HDA10はヘッドディスクアッセンブリであり、複数のディスク、複数のアクチュエータブロック、スピンドルなどが筐体に格納される。HDA10は、少なくとも2つ以上のアクチュエータブロック100及びディスクDKを含む。
【0014】
ディスクDK1、ディスクDK2(特に区別しない場合は、ディスクDKと総称する)は、それぞれ制御系統A、Bによって制御され、データを記憶する磁気ディスクである。
【0015】
スピンドル12は、ディスクDK1、ディスクDK2の支柱であり、筐体HSなどに設置される。
【0016】
スピンドルモータ(SPM)13は、スピンドル12が取り付けられ、スピンドル12を回転させる。
【0017】
アクチュエータブロック100A、アクチュエータブロック100B(特に区別しない場合は、アクチュエータブロック100と総称する)は、それぞれ制御系統A、Bにより制御され、異なるディスクDK1、DK2へのデータの読み書きを実行する。
【0018】
図2は、同実施形態に係るアクチュエータブロック及びディスクなどの構成の模式図である。
【0019】
図2(a)は、アクチュエータブロック100(アクチュエータブロック100Aまたはアクチュエータブロック100B)の模式図である。アクチュエータブロック100Aとアクチュエータブロック100Bとにおいて構成要素の名称が同一である場合は、両者の構成要素は同様であるため、アクチュエータブロック100Aの符号番号に続けてカッコ内にアクチュエータブロック100Bの符号番号を示す。
【0020】
アクチュエータAC1は、制御系統Aにより制御され、ボイスコイルモータ(VCM)型のアクチュエータであり、同軸BRに取り付けられている。
【0021】
アクチュエータAC2は、制御系統BにおいてアクチュエータAC1と同様に機能する。アクチュエータAC1とアクチュエータAC2とを特に区別しない場合は、アクチュエータACと総称する。
【0022】
アームAM11、アームAM12(特に区別しない場合は、アームAM1と総称する)は、ディスクDK1をはさむようにアクチュエータAC1やヘッドHD1に接続され、ヘッドHD1を支持する。アームAM1は、制御系統Aにより制御される。
【0023】
アームAM21、アームAM22(特に区別しない場合は、アームAM2と総称する)は、ディスクDK2をはさむようにアクチュエータAC2やヘッドHD2に接続され、ヘッドHD2を支持する。アームAM2は、制御系統BによってアームAM1と同様に制御される。アームAM1とアームAM2とを特に区別しない場合は、アームAMと総称する。
【0024】
マルチアクチュエータMA11、マルチアクチュエータAM12(特に区別しない場合は、マルチアクチュエータMA1と総称する)は、それぞれアームAM11、アームAM12の図示せぬサスペンションにディスクDK1をはさむように設置されて、制御系統Aにより制御され、それぞれヘッドHD11、ヘッドHD12を制御するアクチュエータである。より具体的にマイクロアクチュエータMA1は、ディスクDK1の半径方向におけるヘッドHD1の動作を、ボイスコイルモータVCMによる半径方向のヘッドHD1の動作の制御よりも微細に制御する。マイクロアクチュエータMA1は、VCMと独立に駆動が可能であってもよい。
【0025】
マルチアクチュエータMA21、マルチアクチュエータAM22(特に区別しない場合は、マルチアクチュエータMA2と総称する)は、制御系統BによってマルチアクチュエータMA1と同様に制御される。マルチアクチュエータMA1とマルチアクチュエータMA2とを特に区別しない場合は、マルチアクチュエータMAと総称する。
【0026】
ヘッドHD11、ヘッドHD12(特に区別しない場合は、ヘッドHD1と総称する)は、それぞれアームAM11、アームAM12の先端にディスクDK1をはさむように設置される。ヘッドHD11、ヘッドHD12は、制御系統Aにより制御され、それぞれディスクDK1の上面、下面のデータを読み書きする。
【0027】
ヘッドHD21、ヘッドHD22(特に区別しない場合は、ヘッドHD2と総称する)はそれぞれアームAM21、AM22の先端にディスクDK2をはさむように設置される。ヘッドHD2は制御系統BによってヘッドHD1と同様に制御される。ヘッドHD1とヘッドHD2とを特に区別しない場合は、ヘッドHDと総称する。
【0028】
各ヘッドHDは、それぞれアームAMのサスペンションに取り付けられている図示せぬスライダに取り付けられる。ヘッドHDは、後述するヘッド選択部(リードヘッド選択部310とも称する)により選択され、動作する。
【0029】
目標データセクタTGTがヘッドHDの位置に移動するためのDKの回転角度α(DKの回転方向は時計回りとした場合)を移動する時間は回転時間と称され、特にヘッドHDが目標データセクタTGTのあるトラック(目標トラックと称する)にシークした後からの回転時間は回転待ち時間と称される。より具体的は、現在ヘッドHDがいるディスク上の位置のSPM角度(もしくはサーボセクタ番号等)をα1、目標セクタTGTのSPM角度(もしくはサーボセクタ番号等)をα2とすると、そのα1とα2とのSPM角度差α(もしくはサーボセクタ番号等)を回転するのに要する時間が回転時間または回転待ち時間に相当する。また、ヘッドHDのシーク開始から目標データセクタTGTに到達するまでの時間はコマンドアクセス時間と称される。
【0030】
ヘッドHDがシークにより目標トラックに到達した時に、目標データセクタTGTがディスクDKの回転方向にヘッドHDの位置を過ぎてしまった場合は、ヘッドHDはディスクDKの回転により目標データセクタTGTを待つ。この場合コマンドアクセス時間は、現ヘッド位置から目標データセクタTGTにシークする時間に、追加で回転する周数分の回転時間または回転待ち時間を加算して求められる。基本的なコマンドリオーダリングではこれらのコマンドアクセス時間の中で最も短いコマンドを選択する。
【0031】
ヘッドHDは、ディスクDKにデータをライトするライトヘッドWHと、ディスクDKにライトされたデータをリードするリードヘッドRHとを有している。以下、ディスクDKにデータをライトする処理をライト処理と称し、ディスクDKからデータをリードする処理をリード処理と称する場合もある。また、所定の記録領域にデータを記録すること、所定の記録領域からデータを読み出すこと、ディスクDKの所定の位置にヘッドHDを配置すること、ディスクDKの所定の領域にデータをライトすることや、ディスクDKの所定の領域からデータをリードすること等をアクセスすると称する場合もある。
【0032】
リードヘッドRH11、リードヘッドRH12(特に区別しない場合は、リードヘッドRH1と総称する)は、ヘッドHD1に設置される。リードヘッドRH11、リードヘッドRH12は、制御系統Aにより制御され、それぞれディスクDK1の上面、下面からデータを読み込み(リード)する。
【0033】
リードヘッドRH21、リードヘッドRH22(特に区別しない場合は、リードヘッドRH2と総称する)は、ヘッドHD2に設置され、制御系統BによってリードヘッドRH1と同様に制御される。リードヘッドRH1とリードヘッドRH2とを特に区別しない場合は、リードヘッドRHと総称する。
【0034】
ライトヘッドWH11、ライトヘッドWH12(特に区別しない場合は、ライトヘッドWH1と総称する)は、ヘッドHD1に設置される。ライトヘッドWH11、ライトヘッドWH12は、制御系統Aにより制御され、ディスクDK1の上面、下面にデータを書き込み(ライト)する。
【0035】
ライトヘッドWH21、ライトヘッドWH22(特に区別しない場合は、ライトヘッドWH2と総称する)は、ヘッドHD2に設置され、制御系統BによってライトヘッドWH1と同様に制御される。ライトヘッドWH1とライトヘッドWH2とを特に区別しない場合は、ライトヘッドWHと総称する。
【0036】
図2(b)は、ディスクDKの模式図ある。ディスクDKは、一般的な磁気ディスクであり、詳細な説明は省略する。
【0037】
ディスクDKは、例えば円盤型の磁気ディスクであり、磁気によってデータを書き込む媒体である。ディスクDKは、スピンドル12に取り付けられ、SPM13の駆動により回転する。ディスクDK(の上面及び下面)の円周に沿った方向を円周方向と称し、ディスクDK(の上面及び下面)の円周方向に直交する方向を半径方向と称する。
【0038】
ディスクDKは、スピンドル12を中心として半径方向(または同心円状)にトラックと呼ばれる複数の領域に分割される。またディスクDKは、円周方向にセクタと呼ばれる複数の領域に分割される。
図2(b)は、トラックTR、セクタSCTを1つずつ示した例であり、トラックTR上のセクタSCTに目標データセクタTGTを示す。
【0039】
シーク制御においては、アクチュエータブロック100のアームAMなどを移動させてトラックTR上にヘッドHDを移動させた後、ディスクDKの回転により、ヘッドHDを目標データセクタTGT上に移動させる。その後、マイクロアクチュエータMAなどにより、トラッキング制御を実施する。トラッキング制御については一般的な技術であり、詳細は示さない。
【0040】
図1に戻り、ドライバIC20Aは、制御系統Aの機能であり、MPU50AまたはHDC60Aなどからの制御に従って、HDA10の各機能を制御する。
【0041】
ドライバIC20Bは、制御系統BにおいてドライバIC20Aと同様に機能する。ドライバIC20AとドライバIC20Bとを特に区別しない場合は、ドライバIC20と総称する。
【0042】
なお、ドライバIC20において、マイクロアクチュエータMAが備えられていない場合もあり、その場合は、MA制御部230は、なくともよい。
【0043】
SPM制御部210Aは、制御系統A、Bで共有の機能であり、HDA10のスピンドルモータSPM13の回転を制御する。SPM制御部210Aは、
図1においてはドライバIC20Aに設置しているが、ドライバIC20Bに設置することでもよい。
【0044】
VCM制御部220Aは、HDA10のアクチュエータブロック100Aを制御するボイスコイルモータ(VCM)に供給する電流(又は電圧)を制御することでボイスコイルモータの駆動を制御する。
【0045】
VCM制御部220Bは、制御系統BにおいてVCM制御部220Aと同様に機能する。VCM制御部220AとVCM制御部220Bとを特に区別しない場合は、VCM制御部220と総称する。
【0046】
MA制御部230Aは、マイクロアクチュエータMA1に供給する電流(又は電圧)を制御することでマイクロアクチュエータMA1の駆動を制御する。
【0047】
MA制御部230Bは、制御系統BにおいてMA制御部230Aと同様に機能する。MA制御部230AとMA制御部230Bとを特に区別しない場合は、MA制御部230と総称する。
【0048】
ヘッドアンプIC30Aは、例えばプリアンプであり、ディスクDK1からリードされたリード信号を増幅して、リード/ライト(R/W)チャネル40Aに出力する。ヘッドアンプIC30Aは、ヘッドHD1(ヘッドHD11、ヘッドHD12)に電気的に接続されている。また、ヘッドアンプIC30Aは、R/Wチャネル40Aから出力される信号に応じたライト電流をヘッドHD1に出力する。
【0049】
ヘッドアンプIC30Bは、制御系統BにおいてヘッドアンプIC30Aと同様に機能する。ヘッドアンプIC30AとヘッドアンプIC30Bとを特に区別しない場合は、ヘッドアンプIC30と総称する。ヘッドアンプIC30は、リードヘッド選択部310と、リード信号検出部320と、を備えている。
【0050】
リードヘッド選択部310Aは、ディスクDK1からデータをリードするリードヘッドRH1を選択する。
【0051】
リードヘッド選択部310Bは、制御系統Bにおいてリードヘッド選択部310Aと同様に機能する。リードヘッド選択部310Aとリードヘッド選択部310Bとを特に区別しない場合は、リードヘッド選択部310と総称する。
【0052】
リード信号検出部320Aは、ディスクDK1からリードヘッドRH1によりリードされた信号(リード信号)を検出する。
【0053】
リード信号検出部320Bは、制御系統Bにおいてリード信号検出部320Aと同様に機能する。リード信号検出部320Aとリード信号検出部320Bとを特に区別しない場合は、リード信号検出部320と総称する。
【0054】
R/Wチャネル40Aは、MPU50Aからの指示に応じて、ディスクDK1からホストシステム2に転送されるリードデータ及びホストシステム2から転送されるライトデータの信号処理を実行する。R/Wチャネル40Aは、ヘッドアンプIC30A、MPU50A、HDC60A、及びライト禁止検出器180等に電気的に接続されている。
【0055】
R/Wチャネル40Bは、制御系統BにおいてR/Wチャネル40Aと同様に機能する。R/Wチャネル40AとR/Wチャネル40Bとを特に区別しない場合は、R/Wチャネル40と総称する。
【0056】
ライト禁止部410Aは、ヘッドHD1によるディスクDK1へのライト(又はライト動作)の禁止(又は停止)指定をし、制御信号などをヘッドアンプIC30Aに出力する。
【0057】
ライト禁止部410Bは、制御系統Bにおいてライト禁止部410Aと同様に機能する。ライト禁止部410Aとライト禁止部410Bとを特に区別しない場合は、ライト禁止部410と総称する。
【0058】
ショックセンサライト禁止判定部411Aは、ショックセンサ170が検出した振動又は衝撃などに基づいてライト禁止検出器180が生成したライト禁止判定実行信号を受けた場合に、ヘッドHD1によるライト(又はライト動作)を禁止(又は停止)するかしないかを判定する。
【0059】
例えば、ショックセンサライト禁止判定部411Aは、ライト禁止判定実行信号に基づいてショックセンサ170が検出した振動又は衝撃が所定の値よりも大きいか所定の値以下であるかを判定することでもよい。振動又は衝撃が所定の値よりも大きいと判定した場合、ショックセンサライト禁止判定部411Aは、ヘッドHD1のライト(又はライト動作)の禁止(又は停止)を決定する。ショックセンサライト禁止判定部411Aは、決定結果に基づいて、ヘッドHD1のライト(又はライト動作)の禁止(又は停止)するためのライト禁止判定信号を生成し、出力する。
【0060】
一方、振動又は衝撃が所定の値以下であると判定した場合、ショックセンサライト禁止判定部411Aは、アクチュエータAC1に接続される少なくとも1つのヘッドHD1のライト(又はライト動作)を禁止(又は停止)しない決定をすることでもよい。
【0061】
ショックセンサライト禁止判定部411Bは、制御系統Bにおいてショックセンサライト禁止判定部411Aと同様に機能する。ショックセンサライト禁止判定部411Aとショックセンサライト禁止判定部411Bとを特に区別しない場合は、ショックセンサライト禁止判定部411と総称する。
【0062】
HDCライト禁止判定部412Aは、HDC60Aからの信号に基づいて、ヘッドHD1のライト(又はライト動作)を禁止(又は停止)するか否かを判定し、判定結果に基づいて制御信号をヘッドアンプIC30Aに出力する。例えば、HDC60AからヘッドHD1のライト(又はライト動作)を禁止(又は停止)するライト禁止信号を受けた場合、HDCライト禁止判定部412Aは、ライトゲートをネゲート(デアサート)して、ヘッドHD1のライト(又はライト動作)を禁止(又は停止)するようにヘッドアンプIC30Aを制御する。
【0063】
HDCライト禁止判定部412Bは、制御系統BにおいてHDCライト禁止判定部412Aと同様に機能する。HDCライト禁止判定部412AとHDCライト禁止判定部412Bとを特に区別しない場合は、HDCライト禁止判定部412と総称する。
【0064】
MPU50Aは、Micro Processing Unit(MPU)であり、HDC60Aなどからの信号に基づいて、ドライバIC20Aへ制御信号などを出力する。MPU50Aは、ディスクDK1の所定位置(例えば目標データセクタTGT)にヘッドHD1をシークするための制御信号を出力する。またMPU50Aは、所定のセクタ(データセクタ)にデータをライトしたり、又は所定のセクタ(データセクタ)からデータをリードしたりするための信号を出力する。例えば、MPU50Aは、ヘッドHD1を目標データセクタTGTに位置決めし、所定のセクタ(目標データセクタTGT)にデータをライトしたり、又は所定のセクタ(目標データセクタTGT)からデータをリードしたりするための信号を出力する。
【0065】
MPU50Bは、制御系統BにおいてMPU50Aと同様に機能する。MPU50AとMPU50Bとを特に区別しない場合は、MPU50と総称する。
【0066】
HDC60Aは、ハードディスクコントローラであり、コマンド制御部610A、サーボ制御部620A、及びライト動作判定部630Aを備えている。HDC60Aの各部、例えば、コマンド制御部610A、サーボ制御部620A、及びライト動作判定部630A等はファームウェアやソフトウェアなどプログラムにより実行されることでもよい。また、HDC60Aは、これら各部を回路などのハードウェアとして備えていてもよい。また、HDC60Aの構成の一部は、MPU50Aに備えられていてもよい。HDC60Aは、ドライバIC20Aを制御して、アクチュエータブロック100Aを制御する。
【0067】
HDC60Aは、ディスクDK1へのデータのリード/ライト処理を制御したり、ホストシステム2とR/Wチャネル40Aとの間のデータ転送を制御したりする。HDC60Aは、例えば、R/Wチャネル40A、MPU50A、揮発性メモリ70A、バッファメモリ80A、及び不揮発性メモリ90A等に電気的に接続されている。
【0068】
HDC60Bは、制御系統BにおいてHDC60Aと同様に機能する。HDC60AとHDC60Bとを特に区別しない場合は、HDC60と総称する。
【0069】
コマンド制御部610Aは、アクチュエータAC1の状態を取得して、バッファメモリ80AにCommand queue1として格納されているコマンドを選択する。アクチュエータAC1の状態とは、アクチュエータが動作しているかどうかを示すPower Mode、アクチュエータAC1で処理が予定されているCommand queue1の待ちコマンド数、アクチュエータAC1の動作パラメータとして設定されているType_JerkSeekを含む。またアクチュエータAC1の状態とは、アクチュエータAC1を含む制御系統(この場合は制御系統A)の機能やアクチュエータブロック100(この場合は100A)の状態を示すことでもよい。
【0070】
コマンド制御部610Bは、アクチュエータAC2の状態を取得して、バッファメモリ80BにCommand queue2として格納されているコマンドを選択する。アクチュエータAC2の状態とは、アクチュエータが動作しているかどうかを示すPower Mode、アクチュエータAC2で処理が予定されているCommand queue2の待ちコマンド数、アクチュエータAC2の動作パラメータとして設定されているType_JerkSeekを含む。
【0071】
コマンド制御部610Bは、制御系統Bにおいてコマンド制御部610Aと同様に機能する。コマンド制御部610Aとコマンド制御部610Bとを特に区別しない場合は、コマンド制御部610と総称する。
【0072】
アクチュエータ状態確認部611Aは、アクチュエータAC2の状態を確認し、自身の制御系統Aの制御対象であるアクチュエータAC1の動作モードを決定する。
【0073】
アクチュエータ状態確認部611Bは、アクチュエータAC1の状態を確認し、自身の制御系統Bの制御対象であるアクチュエータAC2の動作モードを決定する。
【0074】
アクチュエータ状態確認部611Bは、制御系統Bにおいてアクチュエータ状態確認部611Aと同様に機能する。アクチュエータ状態確認部611Aとアクチュエータ状態確認部611Bとを特に区別しない場合は、アクチュエータ状態確認部611と総称する。
【0075】
アクチュエータ状態通信部612Aは、コントローラ通信部190を介してアクチュエータ状態通信部612Bと通信し、データのやり取りをする。例えば、アクチュエータ状態通信部612Aは、HDC60Bの制御対象であるアクチュエータAC2の状態を取得する。
【0076】
アクチュエータ状態通信部612Bは、制御系統Bにおいてアクチュエータ状態通信部612Aと同様に機能する。例えば、アクチュエータ状態通信部612Bは、HDC60Aの制御対象であるアクチュエータAC1の状態を取得する。アクチュエータ状態通信部612Aとアクチュエータ状態通信部612Bとを特に区別しない場合は、アクチュエータ状態通信部612と総称する。
【0077】
コマンド選択部613Aは、バッファメモリ80AにCommand queue1に格納されている制御系統Aで処理される予定のコマンドから、実行するコマンドを選択する。
【0078】
コマンド選択部613Bは、バッファメモリ80BにCommand queue2に格納されている制御系統Bで処理される予定のコマンドから、実行するコマンドを選択する。コマンド選択部613Bは、制御系統Bにおいてコマンド選択部613Aと同様に機能する。コマンド選択部613Aとコマンド選択部613Bとを特に区別しない場合は、コマンド選択部613と総称する。
【0079】
リオーダリングテーブル選択部6131Aは、Command queue1に格納されているコマンドのうち、次に処理をするコマンドを決定するためのリオーダリングテーブルを選択する。
【0080】
リオーダリングテーブル選択部6131Bは、Command queue2に格納されているコマンドのうち、次に処理をするコマンドを決定するためのリオーダリングテーブルを選択する。リオーダリングテーブル選択部6131Bは、制御系統Bにおいてリオーダリングテーブル選択部6131Aと同様に機能する。リオーダリングテーブル選択部6131Aとリオーダリングテーブル選択部6131Bとを特に区別しない場合は、リオーダリングテーブル選択部6131と総称する。
【0081】
予想シーク時間制限コマンド選択部6132Aは、アクチュエータAC2が処理しているコマンドの終了時刻(予想時刻)より、シーク時間(予想時間)の長いコマンドがCommand queue1にあるかどうかを確認する。予想シーク時間制限コマンド選択部6132Aは、確認の結果に基づいて、例えばシーク加速度の動作特性としてJITシークを選択する。JITシークについては後述する。
【0082】
予想シーク時間制限コマンド選択部6132Bは、アクチュエータAC1が処理しているコマンドの終了時刻(予想時刻)より、シーク時間(予想時間)の長いコマンドがCommand queue2にあるかどうかを確認する。予想シーク時間制限コマンド選択部6132Bは、確認の結果に基づいて、例えばシーク加速度の動作特性としてJITシークを選択する。予想シーク時間制限コマンド選択部6132Bは、制御系統Bにおいて予想シーク時間制限コマンド選択部6132Aと同様に機能する。予想シーク時間制限コマンド選択部6132Aと予想シーク時間制限コマンド選択部6132Bとを特に区別しない場合は、予想シーク時間制限コマンド選択部6132と総称する。
【0083】
サーボ制御部620Aは、ヘッドHD1の位置を制御する。言い換えると、サーボ制御部620Aは、ディスクDK1の所定の領域(例えば目標データセクタTGT)へのヘッドHD1によるアクセスを制御する。サーボ制御部620Aは、トラッキング制御部621Aと、シーク制御部622Aとを有している。
【0084】
サーボ制御部620Bは、制御系統Bにおいてサーボ制御部620Aと同様に機能する。サーボ制御部620Aとサーボ制御部620Bとを特に区別しない場合は、サーボ制御部620と総称する。
【0085】
トラッキング制御部621Aは、ディスクDK1の所定のトラックへのヘッドHD1のトラッキングを制御する。ディスクDK1の所定のトラックにヘッドHD1をトラッキングすることを単にトラッキングと称する場合もある。トラッキングは、ディスクDK1にデータをライトする際に所定の経路(例えば、所定のトラック)を追従することや、ディスクDK1からデータをリードする際に所定の経路(例えば、所定のトラック)を追従することを含む。
【0086】
トラッキング制御部621Bは、制御系統Bにおいてトラッキング制御部621Aと同様に機能する。トラッキング制御部621Aとトラッキング制御部621Bとを特に区別しない場合は、トラッキング制御部621と総称する。
【0087】
シーク制御部622Aは、ディスクDK1において目標とするトラックへのヘッドHD1のシーク制御をする。シーク制御部622Aは、ヘッドHD1に対するシークの軌道を決定する。またシーク制御部622Aは、アクチュエータ状態確認部611Aにより設定されたシーク動作のモードであるType_JerkSeekにより、シーク制御の動作モードを切り替える。
【0088】
シーク制御部622Bは、制御系統Bにおいてシーク制御部622Aと同様に機能する。シーク制御部622Aとシーク制御部622Bとを特に区別しない場合は、シーク制御部622と総称する。
【0089】
低Jerkシーク制御部6221Aは、アクチュエータ状態確認部611Aにより設定されたType_JerkSeekが1である場合に、低Jerkの動作特性に基づいてシーク制御を実行する。
【0090】
低Jerkシーク制御部6221Bは、アクチュエータ状態確認部611Bにより設定されたType_JerkSeekが1である場合に、低Jerkの動作特性に基づいてシーク制御を実行する。低Jerkシーク制御部6221Aと低Jerkシーク制御部6221Bとを特に区別しない場合は、低Jerkシーク制御部6221と総称する。
【0091】
高Jerkシーク制御部6222Aは、アクチュエータ状態確認部611Aにより設定されたType_JerkSeekが2である場合に、高Jerkの動作特性に基づいてシーク制御を実行する。
【0092】
低Jerkシーク制御部6221Bは、アクチュエータ状態確認部611Bにより設定されたType_JerkSeekが2である場合に、高Jerkの動作特性に基づいてシーク制御を実行する。高Jerkシーク制御部6222Aと高Jerkシーク制御部6222Bとを特に区別しない場合は、高Jerkシーク制御部6222と総称する。
【0093】
JITシーク制御部6223Aは、アクチュエータ状態確認部611Aにより設定されたType_JerkSeekが0である場合に、JITシークの動作特性に基づいてシーク制御を実行する。
【0094】
JITシーク制御部6223Bは、アクチュエータ状態確認部611Bにより設定されたType_JerkSeekが0である場合に、JITシークの動作特性に基づいてシーク制御を実行する。JITシーク制御部6223AとJITシーク制御部6223Bとを特に区別しない場合は、JITシーク制御部6223と総称する。
【0095】
ライト動作判定部630Aは、ヘッドHD1のライト動作を判定する。ライト動作判定部630Aは、位置ライト動作判定部631Aと、速度ライト動作判定部632Aとを有している。位置ライト動作判定部631Aは、ヘッドHD1の位置によりこのヘッドHD1のライト動作を判定する。速度ライト動作判定部632Aは、ヘッドHD1の速度によりこのヘッドHDの1ライト動作を判定する。
【0096】
ライト動作判定部630Bは、制御系統Bにおいてライト動作判定部630Aと同様に機能する。ライト動作判定部630Aとライト動作判定部630Bとを特に区別しない場合は、ライト動作判定部630と総称する。
【0097】
揮発性メモリ70A、揮発性メモリ70B(特に区別しない場合は揮発性メモリ70と総称する)は、電力供給が断たれると保存しているデータが失われる半導体メモリである。揮発性メモリ70は、磁気ディスク装置1の各部での処理に必要なデータ等を格納する。揮発性メモリ70は、例えば、DRAM(Dynamic Random Access Memory)、又はSDRAM(Synchronous Dynamic Random Access Memory)である。揮発性メモリ70A、揮発性メモリ70Bは、それぞれ制御系統A、制御系統Bの処理で用いるワークメモリとしてもよい。
【0098】
バッファメモリ80A、バッファメモリ80B(特に区別しない場合はバッファメモリ80と総称する)は、磁気ディスク装置1とホストシステム2との間で送受信されるデータ等を一時的に記録する半導体メモリである。例えば、バッファメモリ80は、磁気ディスク装置1がホストシステム2から受信したコマンドを一時的に格納するバッファである。なお、バッファメモリ80は、揮発性メモリ70と物理的に一体として構成されていてもよい。またバッファメモリ80Aは、バッファメモリ80Bと物理的に一体として構成されていてもよい。バッファメモリ80は、例えば、DRAM、SRAM(Static Random Access Memory)、SDRAM、FeRAM(Ferroelectric Random Access memory)、又はMRAM(Magnetoresistive Random Access Memory)等である。
【0099】
バッファメモリ80Aは、制御系統AのDK1に対するコマンドを格納するCommand queue1(待ちコマンド1)の格納先である。
【0100】
バッファメモリ80Bは、制御系統BのDK2に対するコマンドを格納するCommand queue2(待ちコマンド2)の格納先である。
【0101】
不揮発性メモリ90A、不揮発性メモリ90B(特に区別しない場合は不揮発性メモリ90と総称する)は、電力供給が断たれても保存しているデータを記録する半導体メモリである。不揮発性メモリ90は、例えば、NOR型またはNAND型のフラッシュROM(Flash Read Only Memory:FROM)である。不揮発性メモリ90にはリオーダリングテーブルなどを格納することでもよい。
【0102】
ショックセンサ170は、磁気ディスク装置1、又は磁気ディスク装置1のHDA10などの筐体HSに対して外部から加えられた振動及び/又は衝撃を検出する。ショックセンサ170は、振動及び/又は衝撃を検出した場合、振動及び/又は衝撃を検出したことを示す信号(以下、振動/衝撃検出信号と称する場合もある)を出力する。ショックセンサ170は、例えば、ライト禁止検出器180と電気的に接続されている。ショックセンサ170は、振動及び/又は衝撃を検出した場合、ライト禁止検出器180に振動/衝撃検出信号を出力する。
【0103】
ライト禁止検出器180は、ライト(又はライト動作)の禁止の判定を実行するための信号(ライト禁止判定実行信号と称する場合もある)を出力する。振動/衝撃検出信号を受けた場合、ライト禁止検出器180は、ライト禁止判定実行信号を出力する。ライト禁止検出器180は、例えば、R/Wチャネル40に電気的に接続されている。振動/衝撃検出信号を受けた場合、ライト禁止検出器180は、R/Wチャネル40にライト禁止判定実行信号を出力する。
【0104】
コントローラ通信部190は、複数の制御系統の間の情報の転送を制御する。コントローラ通信部190は、例えば、制御系統A及び制御系統Bに電気的に接続している。コントローラ通信部190は、アクチュエータ状態通信部191を有している。アクチュエータ状態通信部191は、HDC60AとHDC60Bとの間でアクチュエータ状態をやり取りする。
【0105】
なお、
図1に示した構成において各機能の数、機能の構成などは特に制限することを意図しない。また本実施形態においては制御系統A、Bの構成を示すが、特に制限することを意図しない。
【0106】
図3は、同実施形態に係る磁気ディスク装置のサーボ制御部の機能構成を示すブロック図である。
【0107】
サーボ制御部620においては、目標位置6201、目標速度6202、目標加速度6203のいずれかを設定することにより、電流指示値決定部6204は、アクチュエータ(VCM、MA等)へ印加する電流や電圧を決定する。電流印加部6205は、VCMに電流を印加することによりアクチュエータACを動かし、磁気ディスクDK上のサーボパタンの位置情報を再生ヘッドが読み出すことにより位置を復調する。また、磁気ディスクDK上のサーボパタンから読み出した位置情報をそのまま使わず図のように位置、速度、加速度(電流)から推定される推定位置と復調位置との差分を状態推定部6207に入力して、推定位置および推定速度を各サーボサンプルにおいて更新する仕組みであっても良い。なお、プラント6206は、一般的なHDDで用いられるボイスコイルモータVCMやマルチアクチュエータMAの機能を示す。
【0108】
図4は、同実施形態に係る磁気ディスク装置のアクチュエータ起動時の他のアクチュエータへの影響の例を示す図である。
【0109】
マルチアクチュエータ磁気ディスク装置においては、いずれかのアクチュエータACがシーク動作を行うと、別のアクチュエータACに振動を与える。このシーク動作を行う方のアクチュエータACをAggressorと呼び、Aggressorの振動を受ける方のアクチュエータACをVictimと呼ぶことにする。
【0110】
特性1011は、Aggressorが高Jerkシーク制御で動作する場合の例を示している。特性TC11は、Aggressor側ヘッドHDのVCM加速度の時間特性例を示す。特性TC12は、特性TC11に対するJerk(加加速度)を示し、加速度aの時間変化(da/dt)を示す。特性TC13は、Aggressor側ヘッドHDが特性TC11のように動作した時のVictim側ヘッドHDのヘッド位置誤差の時間特性の例を示す。
【0111】
特性1021は、Aggressorが低Jerkシーク制御で動作する場合の例を示している。特性TC21は、Aggressor側ヘッドHDのVCM加速度の時間特性例を示す。特性TC22は、特性TC21に対するJerk(加加速度)を示し、加速度aの時間変化(da/dt)を示す。特性TC23は、Aggressor側ヘッドHDが特性TC21のように動作した時のVictim側ヘッドHDのヘッド位置誤差の時間特性の例を示す。
【0112】
TH11、TH12は、特性TC12及び特性TC22に対する閾値を示す。TH11は、thjerk、TH12は、-thjerkとする。特性1011においては、高Jerkシーク制御時の特性であることから、特性TC12は、閾値TH11を超える場合やTH12を下回る場合があることを示す。また特性1021においては、低Jerkシーク制御時の特性であることから、特性TC22は、閾値TH11を超えたりTH12を下回ったりしないように制御される。
【0113】
TH21、TH22は、特性TC13及び特性TC23に対する閾値を示す。TH21は、thPES、TH22は、-thPESとする。特性1011においては、高Jerkシーク制御時の特性であることから、特性TC13は、閾値TH21を超える場合やTH22を下回る場合があることを示し、Victim側のヘッド位置誤差が大きいことが示される。また特性1021においては、低Jerkシーク制御時の特性であることから、特性TC23は、閾値TH21を超えたりTH22を下回ったりしないように制御され、Victim側のヘッド位置誤差が小さく制御されることが示される。
【0114】
上記のようにVictim側においてデータセクタのライト動作およびリード動作を行う場合には、ヘッド位置が暴れているためにライト動作の禁止処理が発生したり、リード動作のエラーが発生したりする場合がある。このため、本実施形態においては、各アクチュエータAC間で相互に生じる振動干渉の影響を抑制する機能を持っていてもよい。
【0115】
より具体的には、Aggressor側ヘッドHDがシーク動作を行う際に、Victim側のヘッドHDに及ぼす位置外乱などの外乱情報を推定し、推定した外乱情報をVictim側のヘッドHDのマイクロアクチュエータMAの動作に反映させてVictim側のヘッドHDを制御する。
【0116】
図5は、同実施形態に係る磁気ディスク装置におけるアクチュエータ間の振動干渉の影響を抑制する機能におけるデータの流れを示す図である。本機能は、サーボ制御部620の機能として説明する。
【0117】
ここでは制御系統AのアクチュエータAC1をAggressor、制御系統BのアクチュエータAC2をVictimとして説明する。なお、本実施形態においては制御系統A、制御系統Bの双方で同様の機能を備えているため、双方を置き換えることでAggressor、Victimを逆にしてもよい。
【0118】
サーボ制御部620Aは、シーク動作を行う際に、制御器6241AがAggressorのVCM操作量(制御電流)を決定する。このVCM操作量をアクチュエータAC間の相互干渉のデジタルフィルタ6244A(伝達特性Fxact)に入力することで、Victim側の有効再生ヘッドHD2に及ぼす位置外乱を推定することができる。伝達特性Fxactはデジタルフィルタの伝達特性を示す。
【0119】
Aggressor側での有効ヘッドHD1やディスクDK1の区分半径位置とVictim側の有効ヘッドHD2やディスクDK2の区分半径位置とで伝達特性Fxactは変わるので、デジタルフィルタ6244A、6244Bのように各々の構成で伝達特性Fxactを生成するためのパラメータを持っていても良い。
【0120】
具体的には、VCMの制御電流は、制御器6241AからVCM6243Aに入力されると同時にデジタルフィルタ6244Aに入力され、デジタルフィルタ6244Aの出力電流(
図4のTC13のような波形の電流)が、制御系統Bのサーボ制御部620Bに入力される。サーボ制御部620Bにおいては、制御器6241Bが出力する制御電流にデジタルフィルタ6244Aの出力電流が加算されて、マイクロアクチュエータMA6242Bへ入力される。デジタルフィルタ6244Aの出力電流により、サーボ制御部620Bは、推定したVictim側の有効再生ヘッドHDに及ぼされる位置外乱を補償するように、Victim側の有効再生ヘッドのマイクロアクチュエータMA6242Bに加算して、Victim側の有効再生ヘッドを動作させる。これにより、Victim側の有効再生ヘッドHDの目標トラックに対する位置誤差PESを低減することができる。
【0121】
Victim側において、ディスクDK2のデータセクタのライト動作およびリード動作を行う場合には、ヘッド位置誤差がヘッド位置誤差閾値±thPES範囲を超えるとライト動作ではライト禁止処理をし、リード動作ではリードエラーが発生するものと判断してリード動作を停止するなどする。
【0122】
また、本実施形態においては、
図4の時間特性TC22のようにAggressor側アクチュエータAC1のシーク時の動作を低JerkシークとしてJerkを±th
jerk範囲内に制限する。これにより、Victim側のアクチュエータAC2のトラッキングヘッドHD2の位置誤差を±th
PES範囲内に収まるように小さくしてデータセクタを読み書きすることが出来る。
【0123】
図6は、同実施形態に係るリオーダリングテーブルを示す図である。
【0124】
テーブルRTD1は、低Jerkシーク用のリオーダリングテーブルを示し、テーブルRTD2は、高Jerkシーク用のリオーダリングテーブルを示す。データSTD1は、低Jerkシーク制御時のシーク時間を示し、データSTD2は、高Jerkシーク制御のシーク時間を示す。リオーダリングテーブル(RTD1、RTD2)、シーク時間の特性(STD1、STD2)は、不揮発性メモリ90に格納され、磁気ディスク装置1起動時に揮発性メモリ70に展開されることでもよい。またリオーダリングテーブル選択部6131によって選択されると揮発性メモリ70やバッファメモリ80に格納されることでもよい。
【0125】
本実施形態のアクチュエータACは、
図4の特性TC22に示した±thjerk範囲内に収まる低Jerk特性と、
図4の特性TC12に示した少なくとも±thjerk範囲を超える高Jerk特性を持つシーク制御を少なくとも可能とする。この制御において、例えばAggressorのアクチュエータAC1によるヘッドHD1を制御する際に、低Jerk特性によるシーク制御によっても、高Jerk特性によるシーク制御によっても、特性TC11及び特性TC21に示すようにVCM加速度のピーク値を一致させることが(シーク時間観点では)望ましい。なお、特性TC12及び特性TC22のシーク制御においてVCM電流ピークもしくは加速度ピークの少なくともいずれかが同じであっても良いし、異なっていても良い。
【0126】
また、アクチュエータAC2が少なくともシーク動作をしていない際には、アクチュエータAC1は±thjerk範囲を超える高Jerkのシークを行う。これにより、アクチュエータAC1のシーク時間を短縮させ、短い時間でコマンドにアクセスし、コマンドアクセス性能を改善することができる。
【0127】
しかし一方、±th
jerk範囲内に収まる低Jerkになると
図6のSTD1に示すようにシーク時間が長くなり、コマンドアクセス性能(単位時間にアクセス可能なコマンド数)が低下してしまう場合がある。
【0128】
図7は、同実施形態に係る磁気ディスク装置がシーク動作を実行するタイミングチャートであり、ホストシステム2から送信されるコマンドの受領からシーク動作への全体の流れの例を示す。ここでは、ホストシステム2から送信されるコマンドは、制御系統Aにより処理されるディスクDK1へのコマンドであるとする。
【0129】
ホストシステム2が磁気ディスク装置1にデータ読み出しもしくは書き込みの要求(コマンドと称する)Cmd21を出力する(SC21)。磁気ディスク装置1は、ホストシステム2から送られたコマンドCmd21を受信すると、磁気ディスク装置1のバッファメモリ80A上のCommand queue1(CQ1-1)の空き部分に格納する。なお、
図7におけるCQ1-1から1-5は、同一のCommand queue1を示し、状態の時間遷移を示している。
【0130】
コマンド制御部610Aは、SC21の前に、SC101において実行するコマンドCmd11を選択しており、コマンドCmd11が指定するDK1上のデータにアクセスするためのシーク要求をサーボ制御部620Aへ発行する(SC102)。サーボ制御部620Aは、コマンド要求Cmd11が指定するデータへの目標データセクタTGTにヘッドHD1が到達する時間(予想時間)に応じて、前記目標データセクタTGTへのヘッドHD1のディスク半径移動距離に応じたシーク軌道の中で前記予想時間内のシーク軌道のパタンを選択する(SC201)。これにより、前記目標データセクタTGTにおいて書き込みおよび読み出しが出来る。
【0131】
サーボ制御部620Aは、選択したパタンのシーク軌道で、目標データセクタTGTに対してヘッドHD1をシーク制御する(SC202)。ヘッドHD1は、シーク制御により目標データセクタTGTのあるトラックへ移動したらシーク完了通知をコマンド制御部610Aに発行する(SC203)。コマンド制御部610Aは、ディスクDK1の回転を待ち、目標データセクタTGTを検出すると(SC104)、ヘッドアンプIC30Aを制御してリードヘッドRH1もしくはライトヘッドWH1に指定されたデータのリードもしくはライトを実行する(SC105)。
【0132】
以上の手順により、Cmd11によるディスクDK1へのデータのリードもしくはライトが可能となる。制御系統Aの例えばHDC60Aは、Cmd11が完了したことをホストシステム2に通知する(SC106)。
【0133】
上記SC201からSC106において、ヘッドHD1などがCmd11を処理している間に、コマンド制御部610Aは、CQ1-2に格納されているコマンドから、Cmd11の次に実行するコマンドを選択する(SC103)。SC103においては、もう一方のアクチュエータAC2の状態を確認して、アクチュエータAC2の状態に応じてJerk設定とコマンドCmd12とを選択する。SC106でCmd11の処理が完了すると、Cmd12の処理をSC201からSC106と同様にシーク動作を実行する(SC107、SC204、SC205)。また、ホストシステム2からの新たなコマンドCmd22についても、Command queue1(CQ1-4)の空き部分に格納され、SC103と同様にコマンド制御部610Aは、CQ1-5に格納されているコマンドから、Cmd12の次に実行するコマンドを選択する(SC108)。以降、磁気ディスク装置1はホストシステム2からの要求コマンドに応じて同様の手順を繰り返す。
【0134】
図8は、同実施形態に係る磁気ディスク装置がコマンド選択を実行するフローチャートであり、コマンド制御部610Aが、
図7のSC101、SC103、SC108におけるコマンド選択(リオーダリング)においてCommand queue1からコマンドを選択するためのフローチャートである。アクチュエータAC1とこれを制御する制御系統Aにおける処理としてフォローチャートを説明する。
【0135】
コマンド制御部610Aにおいて、アクチュエータ状態確認部611Aは、制御系統BのアクチュエータAC2の状態を確認する(ステップS1)。リオーダリングテーブル選択部6131Aは、ステップS1で確認したアクチュエータAC2の状態に基づいてリオーダリングテーブルを選択する(ステップS2)。コマンド選択部613Aは、ステップ2で選択したリオーダリングテーブルに基づいてCommand queue1からコマンドを選択する(ステップS3)。ステップS3においては、例えばコマンド群の中でアクセス時間(シーク時間+回転待ち時間)が最も短いものを選択する。
【0136】
図9は、同実施形態に係る磁気ディスク装置がJerkシーク制御のタイプを設定するフローチャートであり、
図8のS1の処理に相当する。
【0137】
アクチュエータ状態通信部612Aは、もう一方の制御系統Bのアクチュエータ状態通信部612BからアクチュエータAC2の状態情報であるPower mode、Command queue2にて保持している保持コマンド数を取得する(ステップS101)。アクチュエータ状態確認部611Aは、ステップS101で取得したPower modeがActiveであるかを確認する(ステップS102)。制御系統BのアクチュエータAC2のPower modeがactiveでない場合(ステップS102のNo)、アクチュエータ状態確認部611Aは、自身のパラメータType_JerkSeekに高Jerkシーク制御を示す2を設定する(ステップS107)。Power modeがactiveでない場合とは、例えばPower modeがStandby、IdleもしくはSleepの場合である。すなわち、HDC60Aは、アクチュエータAC2のPower modeがactiveでない場合は、アクチュエータAC1を高Jerkでシーク制御する。
【0138】
一方、制御系統BのアクチュエータAC2のPower modeがActiveの場合(ステップS102のYes)、アクチュエータ状態確認部611Aは、ステップS101で取得したCommand queue2の保持コマンド数を確認する(ステップS103)。
【0139】
Command queue2のコマンド数が0の場合(ステップS103のNo)、アクチュエータ状態確認部611Aは、自身のパラメータType_JerkSeekに高Jerkシーク制御を示す2を設定する(ステップS107)。アクチュエータAC2のコマンド数が1以上の場合(ステップS103のYes)、アクチュエータ状態確認部611Aは、アクチュエータAC2に設定されているType_JerkSeekを確認する(ステップS104)。
【0140】
Type_JerkSeek=2の場合(ステップS104のYes)は、アクチュエータ状態確認部611Aは、自身のパラメータType_JerkSeekに低Jerkシーク制御を示す0を設定する(ステップS105)。また、Type_JerkSeekが2以外(ステップS104のNo)の場合は、アクチュエータ状態確認部611Aは、自身のパラメータType_JerkSeekに高Jerkシーク制御を示す1を設定する(ステップS106)。
【0141】
以上のType_JerkSeekの設定手順は以下のようにまとめることもできる。すなわち、もう一方(制御系統B)のアクチュエータAC2のPower modeがStandbyもしくはIdleの場合には、高Jerkシーク制御(Type_JerkSeek=2)を設定する。もう一方のアクチュエータAC2のPower modeがActiveで、もう一方のアクチュエータAC2に係るCommand queue2のコマンド数が0の場合には、高Jerkシーク制御(Type_JerkSeek=2)を設定する。もう一方のアクチュエータAC2のPower modeがActiveで、もう一方のアクチュエータAC2に係るCommand queue2のコマンド数が1以上で、もう一方のアクチュエータAC2のType_JerkSeekが2の場合には、低Jerkシーク制御(Type_JerkSeek=0)を設定する。もう一方のアクチュエータAC2のPower modeがActiveで、もう一方のアクチュエータAC2に係るCommand queue2のコマンド数が1以上で、もう一方のアクチュエータAC2のType_JerkSeekが2以外の場合には、低Jerkシーク制御(Type_JerkSeek=1)を設定する。
【0142】
図10は、同実施形態に係る磁気ディスク装置がリオーダリングテーブルのタイプを設定するフローチャートであり、
図8のS2の処理に相当する。
【0143】
リオーダリングテーブル選択部6131Aは、
図9のフローにおいてアクチュエータ状態確認部611Aが設定したType_JerkSeekを確認する(ステップS201)。Type_JerkSeekが0もしくは1の低Jerkシークの場合(ステップS201の‘0、1’)には、リオーダリングテーブル選択部6131Aは、揮発性メモリ70Aから低Jerkシーク用のリオーダリングテーブルを取得し、サーボ制御部620Aに設定する(ステップS202)。Type_JerkSeekが2の高Jerkシークの場合には(ステップS201の‘2’)、揮発性メモリ70Aから高Jerkシーク用のリオーダリングテーブルを取得し、サーボ制御部620Aに設定する(ステップS203)。
【0144】
図11は、同実施形態に係る磁気ディスク装置がコマンド選択を実行するフローチャートであり、
図8のS3の処理に相当する。
【0145】
コマンド選択部613Aは、
図9のフローにおいてアクチュエータ状態確認部611Aが設定したType_JerkSeekを確認する(ステップS301)。アクチュエータ状態確認部611Aが設定したType_JerkSeekが0でない場合(ステップS301のNo)、コマンド選択部613Aは、通常のコマンド選択処理をする(ステップS304)。すなわちステップS304においては、コマンド選択部613Aは、従来通り制御系統AのCommand queue1内のコマンド群からアクセス時間が短いコマンドを選択する。サーボ制御部620Aは、ステップS304で選択されたコマンドを処理する。より具体的には、サーボ制御部620Aは、Type_JerkSeek=1の場合は、低Jerkシーク制御部6221Aが低JerkシークパタンでヘッドHD1をシーク制御し、Type_JerkSeek=2の場合は、高Jerkシーク制御部6221Aが高JerkシークパタンでヘッドHD1をシーク制御する。
【0146】
ステップS301において、Type_JerkSeekが0(0は低Jerkシーク制御を示す。但しもう一方のアクチュエータAC2は高Jerkシーク制御に設定されている。)の場合(ステップS301のYes)、コマンド選択部613Aは、アクチュエータAC2側において現在実行中のコマンドの終了時刻と制御系統AのCommand queue1内の各コマンドのアクセス時間とを確認する(ステップS302)。
【0147】
ステップS302において、もう一方のアクチュエータAC2側で実行中のコマンド終了時刻より長くシーク時間を要するコマンドがCommand queue1に無い場合は(ステップS302のNo)、コマンド選択部613Aは、通常のコマンド選択処理をする(ステップS304)。すなわち、従来通り制御系統Aに対するCommand queue1内のコマンド群からアクセス時間が短いコマンドを選択する(ステップS304)。ステップS304において、この際、サーボ制御部620Aは、1周の回転時間を追加した時間においてJITシークでシークをさせるのが望ましい。それにより、シークによる消費電力を低減できる。
【0148】
ステップS302において、もう一方のアクチュエータAC2側のコマンド終了時刻より長くシーク時間を要するコマンドがCommand queue1にある場合は(ステップS302のYes)、コマンド選択部613Aは、もう一方のアクチュエータAC2側のコマンド終了時刻より長くシーク時間を要するCommand queue1のコマンドの中からアクセス時間が短いコマンドを選択する(ステップS303)。ステップS303において、この際、サーボ制御部620Aは、JITシークでシークをさせるのが望ましい。それにより、シークによる消費電力を低減できる。
【0149】
上記の手順をまとめると以下のように記載できる。
【0150】
制御系統BのアクチュエータAC2が高Jerkシーク動作中は、制御系統Aは制御系統Bによる振動の影響でデータアクセスできない問題がある。これを避けるために、制御系統Aは、制御系統Bによる高Jerkシーク動作が終了した後にヘッドHD1がデータへのアクセス(データのリードライト処理)を行うように制御する。例えば制御系統Aは、通常コマンド選択処理(ステップS304に相当)Command queue1から選択したコマンドの処理において、シーク制御により目標トラックにヘッドHD1を移動させた後に、ディスクDK1の1回転待ちを入れた後に、ヘッドHD1によるリードライト処理動作を実行することでもよい。なお、制御系統Aは、ディスクDK1の1回転待ちをしても制御系統Bによる高Jerkシーク動作が終了しない場合は、さらなるディスクDK1の回転時間を待ってからデータのリードライト処理を実施することでもよい。
【0151】
またステップS303、S304については、制御系統Aに対するCommand queue1内のコマンド群からアクセス時間が短いコマンドを選択する方法として、1手先だけでなく、2手先、3手先等の先の手までを考慮してパスにおいて時間が短くなる1手先のコマンドを選択する方法を採っても良い。
【0152】
コマンド選択部613Aは、上記のフローによって選択したコマンドを実行する。サーボ制御部620Aは、コマンド選択部613Aが選択したコマンドに基づいて、ドライバIC20、アクチュエータAC1などを制御する。
【0153】
図12は、同実施形態に係る磁気ディスク装置がシーク制御を実行するフローチャートであり、
図11のステップS303にて選択されたコマンドの処理を示す。シーク制御とは、コマンドが指定する目標データセクタのトラック(目標トラック)までヘッドHDを移動させる制御である。
【0154】
サーボ制御部620AのJITシーク制御部6223Aは、データセクタ(目標データセクタTGT)に間に合うシーク軌道のパタンを選択する(ステップS11)。シーク軌道のパタン選択では、例えば同一アクセス性能であればシーク動作による消費電力が低い方が好ましく、ステップS11において、JITシーク制御部6223Aは、例えば消費電力が最も低いシーク軌道のパタン(JITシークとも称する)を選択する。
【0155】
図13Aは、同実施形態に係る磁気ディスク装置の2つの制御系統がシーク制御を実行するタイミングを示す図である。
【0156】
図13A(a)は、制御系統Aの状態SA1と制御系統Bの状態SB1とを同一の時間軸で示し、
図11のS301のYesにおける制御系統A、Bの状態に相当する。制御系統Bの状態SB1において制御系統Bは、目標データセクタTGT-Bに対するコマンド(コマンドBとする)を処理中であり、時刻T1では制御系統Bが高Jerkシークでシーク制御中であることを示す。制御系統Aの状態SA1において制御系統Aは、制御系統Bが高Jerkシークでシーク制御している間、アクチュエータAC1に対して、低Jerkによるシーク制御は可能であるが、目標データセクタに対するリードライト制御は不可であることを示す。制御系統Bが、時刻T3で高Jerkシーク制御を終了し、制御系統Aによる目標データセクタに対するリードライト制御が可能となる。
【0157】
図13A(b)は、制御系統Aの状態SA2と制御系統Bの状態SB2とを同一の時間軸で示し、
図11のステップS302のYesにおける制御系統A、Bの状態に相当する。制御系統Aの状態SA2の時刻T1において、コマンド選択部613Aは、制御系統Aが処理しようとするコマンド(コマンドAとする)の目標データセクタTGT-Aへのシーク制御終了予想時刻T5と、制御系統Bの高Jerkシーク制御によるシーク制御が完了する予想時刻T3とを比較し、制御系統Aのコマンド選択部613Aは、目標データセクタTGT-Aへのシーク制御にJITシークを選択する。
【0158】
図13A(c)は、制御系統Aの状態SA3と制御系統Bの状態SB3とを同一の時間軸で示し、
図11のステップS302のNoの後、S304でコマンドが選択されて、対応したJITseekパタンの波形でシーク動作をする場合の制御系統A、Bの状態に相当する。制御系統Aの状態SA3の時刻T1において、コマンド選択部613Aは、制御系統Aが処理しようとするコマンド(コマンドAとする)の目標データセクタTGT-Aへのシーク制御終了予想時刻T2と、制御系統Bの高Jerkシーク制御によるシーク制御が完了する予想時刻T3とを比較し、制御系統Aのコマンド選択部613Aは、目標データセクタTGT-Aへのシーク制御にJITシークを選択する。しかしながら、
図13A(c)の場合、制御系統Aによる目標データセクタTGT-Aへのリードライト制御の開始時刻T2が、制御系統Bの高Jerkシーク制御に時間的に重なり、TGT-Aへのリードライト制御に誤りが生じる可能性が大きい。この誤りを避けるために、例えば制御系統Aは、制御系統Bの高Jerkシーク制御が終わるのを待ってから目標データセクタTGT-Aへのリードライト制御を実行することでもよい。
【0159】
図13A(d)は、
図13A(c)の場合において、制御系統Aが制御系統Bの高Jerkシーク制御が終わるのを待ってから目標データセクタTGT-Aへのリードライト制御する場合の制御系統A、Bの状態に相当する。
図13A(d)では制御系統Aは、ディスクの回転時間を1周分待つ場合についての例を示す。制御系統Aは、最初の目標データセクタTGT-Aのリードライト制御の開始時刻T2からさらにディスクの回転時間1周分を経過した時刻T6に目標データセクタTGT-Aのリードライト制御を開始する。制御系統Aは、時刻T6に目標データセクタTGT-Aへのシーク制御が終わるようなJITシークを選択する。これにより制御系統Aは、制御系統Bの高Jerkシーク制御による影響を受けることなく、目標データセクタTGT-Aへのリードライト制御を実行できる。
【0160】
図13Bは、同実施形態に係る磁気ディスク装置の2つの制御系統の動作状態の関係を示す図である。
【0161】
トラッキング制御とは、ヘッドHDを目標トラックに位置決めするための制御であり、シーク(高Jerkシーク、低Jerkシークなどを含む)を実行していない時の状態と考えてもよい。例えば、
図13Aでは、TGT(TGT-B、TGT-A)の部分(データリードライド時間)、TGT(TGT-B、TGT-A)の部分(データリードライド時間)以降の時間、シーク開始前の時間が「トラッキング制御」という状態を示す。
図9で設定した動作パラメータType_JerkSeekを用いて、アクチュエータブロック100もしくはアクチュエータACは、トラッキング制御の状態において例えばType_JerkSeek=-1のように持つことでもよい。またヘッドHDがデータをリードしたりライトしたりしている状態としてType_JerkSeekに別の値を割り当ててもよい。
【0162】
状態STT1は、一方のアクチュエータブロック(アクチュエータブロック100Bとする)が、高Jerkシーク制御でシーク実行しているときに、もう一方のアクチュエータブロック(アクチュエータブロック100Aとする)に許可する動作状態を示す。すなわち、アクチュエータブロック100Bが、高Jerkシーク制御でシーク実行しているときには、アクチュエータブロック100Aにおいては、それぞれトラッキング制御は可能、ヘッダHD1のデータリードライトは不可、低Jerkシーク制御は可能、高Jerkシーク制御は不可として制御を実施する。
【0163】
状態STT2は、アクチュエータブロック100Bが、高Jerkシーク制御でシーク実行していないときには、トラッキング制御、ヘッダHD1のデータリードライト、低Jerkシーク制御、高Jerkシーク制御が可能であることを示す。
【0164】
図14は、同実施形態に係る磁気ディスク装置におけるシーク制御の加速度と位置の関係例を示す図である。
【0165】
TC100は、ヘッドHD1のシーク加速度の時間特性(時間対シーク加速度)の例を示し、TC200は、ヘッドHD1のシーク位置の時間特性(時間対シーク位置)の例を示し、特性TC101、TC201は最速シークの場合の特性を示し、特性TC102、TC202はJITシークの場合の特性を示す。目標データセクタTGT201は、ディクスDK1上の1トラック上の1セクタであるとする。
【0166】
最速シークとは、目標データセクタTGT201にヘッドHD1を到達させる最速のシークパタンであり、例えば、
図4に示したTC11のように高Jerkシーク制御によりヘッドHD1の移動させる場合である。
【0167】
JITシークとは、シーク制御による磁気ディスク装置1の消費電力を低くするように最適化したシーク軌道のパタンで制御するシークである。より具体的には、JITシークとは、目標データセクタの直前までにシーク完了をさせるシークパタンのうち、消費電力等が低くなるように最適化したシーク軌道のパタンである。
【0168】
アクチュエータ状態確認部611Aが
図9のフローにおいて設定したType_JerkSeek条件に合う中の最速シークパタンの特性TC101でシークを行った場合、目標データセクタTGTのあるトラック(目標トラック)に(delta)Tseek時間分(REF202)だけ早く到達する。
図12のステップS11においては、この(delta)Tseek時間分のSeek時間が長いSeekパタンすなわちJITシークを選択する。例えば、
図14のJITシークの特性TC102においては、最速シークパタンの特性TC101よりも加速および減速区間の加速度レベルを下げて(VCMに印加する電圧レベルを下げて)、目標トラックまでのシーク距離を調整するためにゼロ加速度区間(加速度ゼロ付近であれば良い。定速区間とも呼ぶ。)の長さで調整している。
【0169】
加速度レベルを低減することにより、ディスク装置1の消費電力Pを下げる効果がある。消費電力PはVCMに流れる電流IvcmとVCMを含む回路抵抗Rで決まり、加速度レベルを下げた場合にはVCMに流れる電流Ivcmが下がることにより消費電力Pは低下する。
P = R×Ivcm
2
なお、上記は加速度レベルを下げることで消費電力が小さくなる例を示したが、加速区間および減速区間を短くして、ゼロ加速度区間(加速度ゼロ付近であれば良い。定速区間とも呼ぶ。)の長さで調整することで消費電力が小さくすることでもよい。
【0170】
特性TC102のシーク制御の調整においては、アクチュエータAC1の加速区間における時間もしくは加速度レベル、減速区間における時間もしくは加速度レベル、定速度区間の時間のいずれかの組合せで調整する。
【0171】
シーク制御部622Aは、
図12のステップS11において加速度特性T101などシーク軌道のパタンを選択したら、選択したシーク軌道パタン(シーク制御設定)に応じて、シーク制御を実行する。より具体的にはシーク制御部622Aは、アクチュエータ状態確認部611Aが設定した自身のパラメータType_JerkSeekに従って、例えばType_JerkSeek=0の場合は、低Jerkシーク制御部6221AまたはJITシーク制御部6223AからアクチュエータAC1を制御する。
【0172】
以上の手順により、一方のアクチュエータAC2の状態を考慮してアクチュエータAC1を動作させることができ、シーク時間を短縮させ、短い時間でコマンドにアクセスし、コマンドアクセス性能を改善することができる。
(変形例)
実施形態においては、2つのディスクDKやアクチュエータACを制御する2つの制御系統を備えた磁気ディスクの例について示したが、ディスクDK、アクチュエータAC及び制御系統は2つ以上であってもよい。例えば、スピンドル12に2以上のディスクDKが備えられ、それぞれにアクチュエータブロック100が備えられることでもよい。また、スピンドル12が2つ以上あり、それぞれに2以上のディスクDK及びそれらを制御するアクチュエータブロック100が備えられることでもよく、2以上の制御系統を備えることでもよい。磁気ディスク装置1に2以上のアクチュエータAC(もしくはアクチュエータブロック100)が備えられる場合、例えば
図9のステップS102、S103、S104や
図13Bなどにおける「他のアクチュエータAC(もしくはアクチュエータブロック100)」は、着目するアクチュエータAC(もしくはアクチュエータブロック100)以外の複数のアクチュエータAC(もしくはアクチュエータブロック100)とすることでもよい。
【0173】
図15は、変形例に係る磁気ディスク装置の構成図である。
【0174】
本変形例の磁気ディスク装置は、HDA10をHDA10-2とした他は、
図1の磁気ディスク装置1と同様である。HDA10-2は、1つのスピンドル(SPM)12の水平方向(HDA10の場合を垂直方向とする)に、2つのアクチュエータブロック100(
図2(a)と同様)が取り付けられた例である。
図1のHDA10と異なりHDA10-2においては、VCM用の同軸BR2本の各々にアクチュエータブロック100A、100Bが取り付けられる。
【0175】
本変形例の磁気ディスク装置において、アクチュエータブロック100A、100Bを2つの制御系統A、制御系統B(
図1と同様)にそれぞれ実施形態に示した制御と同様に制御することで、マルチアクチュエータによる影響を考慮したコマンドアクセスができる。
【0176】
本実施形態に示した特徴は以下のように抽出される。
【0177】
(A-1)少なくとも2つ以上の独立駆動可能なアクチュエータブロック100を持ち、Jerk(加加速度)を制限した低Jerkのシーク制御を行う磁気ディスク装置1において、
アクチュエータブロック100Bがディスクのデータセクタにアクセスしていない状態においては、アクチュエータブロック100Aは高Jerkを持つシーク制御によりディスクのデータセクタへのアクセスを行うことを特徴とする磁気ディスク装置。
【0178】
(A-2)アクチュエータブロック100Bがディスクのデータセクタにアクセスしていない状態は、アクチュエータブロック100BのPower modeがActiveでない場合もしくはホストシステム2からディスクのへのアクセス要求であるコマンドが格納されているCommand queue2が空の状態であることを特徴とする(A-1)に記載の磁気ディスク装置。
【0179】
(A-3)不揮発性メモリに前記Jerk制限した低Jerkのシーク制御を実行するための低Jerkシーク制御パラメータと前記高Jerkを持つシーク制御を実行するための高Jerkシーク制御パラメータとを保持することを特徴とする(A-1)に記載の磁気ディスク装置。
【0180】
(A-4)前記不揮発性メモリに保存されている前記低Jerkシーク制御パラメータと前記高Jerkシーク制御パラメータとを、起動時に揮発性メモリに展開することを特徴とする(A-3)に記載の磁気ディスク装置。
【0181】
(A-5)前記Jerkを制限した低Jerkのシーク制御と前記高Jerkを持つシーク制御において、コマンドリオーダリングを実施するためのシーク距離に対するシーク時間の対応テーブルを各々持つことを特徴とする(A-1)に記載の磁気ディスク装置。
【0182】
(A-6)前記Jerkを制限した低Jerkのシーク制御から前記高Jerkを持つシーク制御に切り替える際は、前記対応テーブルを切り替えることを特徴とする(A-5)に記載の磁気ディスク装置。
【0183】
(A-7)アクチュエータブロック100Bが前記高Jerkのシーク制御を行っている最中に、アクチュエータブロック100Aがシーク制御を行うときに、アクチュエータブロック100Bのシーク終了時刻よりも遅い時刻にアクチュエータブロック100Aが制御するデータセクタにアクセス可能な1以上のコマンドがCommand queue1にある場合には、Command queue1のコマンドの中から次にアクセスするコマンドを選択することを特徴とするA-1乃至A-6のいずれか1項に記載の磁気ディスク装置。
【0184】
(A-8)アクチュエータブロック100Bが前記高Jerkのシーク制御を行っている最中に、アクチュエータブロック100Aがシーク制御を行う際は、アクチュエータブロック100Bのシーク終了時刻よりも遅い時刻にデータセクタにアクセス可能なコマンドがCommand queue1に無い場合には、アクチュエータブロック100Aは、Command queue1の中から次にアクセスするコマンドを選択し、アクチュエータブロック100Bのシーク終了時刻後、ディスクの1周回転時間を入れて、アクセスさせることを特徴とする(A-1)乃至(A-7)のいずれか1項に記載の磁気ディスク装置。
【0185】
(A-9)アクチュエータブロック100Aのシーク制御において目標データセクタが確定した後に、前記目標データセクタにアクセスする時刻の直前にアクチュエータブロック100Aのシークが終了するように、アクチュエータブロック100Aのシーク制御の調整をすることを特徴とする(A-1)乃至(A-8)のいずれか1項に記載の磁気ディスク装置。
【0186】
(A-10)アクチュエータブロック100のシーク制御の調整においては、アクチュエータACの加速区間における時間もしくは加速度レベル、減速区間における時間もしくは加速度レベル、定速度区間の時間のいずれかの組合せで調整を行うことを特徴とする(A-9)に記載の磁気ディスク装置。
【0187】
(A-11)アクチュエータブロック100による前記高Jerkを持つシーク制御と前記低Jerkのシーク制御とにおいて、各々のシーク制御の加速度もしくは電流のいずれかのピークレベルを一致させることを特徴とする(A-1)乃至(A-10)のいずれか1項に記載の磁気ディスク装置。
【0188】
上記(A-1)を採用することで、あるアクチュエータブロックがデータセクタにアクセスしていない状態において、より早くに目標データセクタに到達可能なシークを行うことができる。
上記(A-2)を採用することで、HDDのPower modeがIdle、Standbyである時、もしくはHostから要求されたHDDへのCommand queueが空の状態である時に(A-1)のことを実施できる。
【0189】
上記(A-3)を採用することで、Jerk制限した低Jerkのシーク制御と高Jerkのシーク制御を実施することが出来る。
上記(A-4)を採用することで、FW上の処理時間によるオーバヘッドが小さい構成において、Jerk制限した低Jerkのシーク制御と高Jerkのシーク制御を実施することが出来る。
上記(A-5)を採用することで、コマンド制御側が高Jerkのシーク制御に対応したコマンドリオーダリングが出来るようになる。
【0190】
上記(A-6)を採用することで、コマンド制御側が高Jerkのシーク制御に対応したコマンドリオーダリングが出来るようになる。採用しない場合には、高Jerkのシーク制御を行っても、回転待ちが発生してアクセス性能が向上しない。
上記(A-7)を採用することで、あるアクチュエータブロックの高Jerkシークによる干渉振動を与える時間においてデータセクタへの書き込みおよび読み出しが行われないようにタイミングを調整することができる。
【0191】
上記(A-8)を採用することで、あるアクチュエータブロックの高Jerkシークによる干渉振動を与える時間においてデータセクタへの書き込みおよび読み出しが行われないようにタイミングを調整することができる。
上記(A-9)を採用することで、同一アクセス性能において消費電力を下げることができる。
【0192】
上記(A-10)を採用することで、目標データセクタにアクセスする時刻の直前にシークが終了するシーク制御調整をすることが出来る。
上記(A-11)を採用することで、電流ピークもしくは加速度ピークが同じでも、Jerkを変えることでシーク時間を変えることができる。
【0193】
以上に述べた少なくとも1つの実施形態、変形例によれば、マルチアクチュエータの性能を改善する磁気ディスク装置を提供することができる。
【0194】
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。また、フローチャート、シーケンスチャートなどに示す処理は、ICチップ、デジタル信号処理プロセッサ(Digital Signal ProcessorまたはDSP)などのハードウェアもしくはマイクロコンピュータを含めたコンピュータなどで動作させるソフトウェア(プログラムなど)またはハードウェアとソフトウェアの組み合わせによって実現してもよい。また請求項を制御ロジックとして表現した場合、コンピュータを実行させるインストラクションを含むプログラムとして表現した場合、及び前記インストラクションを記載したコンピュータ読み取り可能な記録媒体として表現した場合でも本発明の装置を適用したものである。また、使用している名称や用語についても限定されるものではなく、他の表現であっても実質的に同一内容、同趣旨であれば、本発明に含まれるものである。
【符号の説明】
【0195】
1…磁気ディスク装置、2…ホストシステム(ホスト)、10…HDA、12…スピンドル、13…スピンドルモータ(SPM)、20A…ドライバIC、30A…ヘッドアンプIC、40A…リードライト(R/W)チャネル、50A…マイクロプロセッサ(MPU)、60A…ハードディスクコントローラ(HDC)、70A…揮発性メモリ、80A…バッファメモリ、90A…不揮発性メモリ、100A…アクチュエータブロック、170…ショックセンサ、180…ライト禁止検出器、190…コントローラ通信部、210A…SPM制御部、220A…VCM制御部、230A…MA制御部、310A…リードヘッド選択部、320A…リード信号検出部、410A…ライト禁止部、411A…ショックセンサライト禁止判定部、412A…HDCライト禁止判定部、610A…コマンド制御部、611A…アクチュエータ状態確認部、612A…アクチュエータ状態通信部、613A…コマンド選択部、620A…サーボ制御部、621A…トラッキング制御部、622A…シーク制御部、630A…ライト動作判定部、631A…位置によるライト動作判定部、632A…速度によるライト動作判定部、6131A…リオーダリングテーブル選択部、6132A…予想シーク時間制限コマンド選択部、6221A…低Jerkシーク制御部、6222A…高Jerkシーク制御部、6223A…JITシーク制御部、DK1…ディスク、AC1…アクチュエータ、AM11…アーム、HD11…ヘッド、MA11…マイクロアクチュエータ、RH11…リードヘッド、WH11…ライトヘッド。