(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024128680
(43)【公開日】2024-09-24
(54)【発明の名称】製造パレット制御システム及び製造パレット制御方法
(51)【国際特許分類】
G11B 5/00 20060101AFI20240913BHJP
G11B 20/10 20060101ALI20240913BHJP
G11B 5/09 20060101ALI20240913BHJP
G11B 33/14 20060101ALI20240913BHJP
G11B 5/84 20060101ALI20240913BHJP
G11B 21/08 20060101ALI20240913BHJP
【FI】
G11B5/00 D
G11B20/10 301Z
G11B5/09 301Z
G11B33/14 501W
G11B5/84 C
G11B21/08 Y
【審査請求】未請求
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2023037803
(22)【出願日】2023-03-10
(71)【出願人】
【識別番号】000003078
【氏名又は名称】株式会社東芝
(71)【出願人】
【識別番号】317011920
【氏名又は名称】東芝デバイス&ストレージ株式会社
(74)【代理人】
【識別番号】110001737
【氏名又は名称】弁理士法人スズエ国際特許事務所
(72)【発明者】
【氏名】柴田 聡
【テーマコード(参考)】
5D044
5D112
【Fターム(参考)】
5D044BC01
5D044CC04
5D044GK18
5D044GK19
5D044HL20
5D044JJ01
5D044JJ02
5D112AA24
5D112JJ09
(57)【要約】
【課題】磁気ディスク装置の製造プロセスを制御する製造パレット制御システム及び製造パレット制御方法を提供することを目的とする。
【解決手段】実施形態の製造パレット制御システムは、複数の処理プロセスを実行する磁気ディスク装置であって、外部からの問合せに基づいて、前記ステータス情報を出力する複数の磁気ディスク装置と、前記複数の磁気ディスク装置と双方向通信が可能に接続され、各磁気ディスク装置の前記処理プロセスのステータス情報を問合せするコントローラとを具備する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
複数の処理プロセスを実行する磁気ディスク装置であって、外部からの要求に基づいて、処理プロセスに関するステータス情報を出力する複数の磁気ディスク装置と、
前記複数の磁気ディスク装置と双方向通信が可能に接続され、各磁気ディスク装置の前記ステータス情報を問合せするコントローラとを具備する製造パレット制御システム。
【請求項2】
前記複数の磁気ディスク装置から受信した前記ステータス情報から確認した前記複数の磁気ディスク装置の動作モードに基づいて、少なくとも1つの磁気ディスク装置の処理プロセスを制御する請求項1に記載の製造パレット制御システム。
【請求項3】
前記動作モードに対する条件を含む調整条件と処理プロセスに対する制御内容とが予め紐づけられている請求項2に記載の製造パレット制御システム。
【請求項4】
前記複数の処理プロセスのうち他の磁気ディスク装置へ影響を与える処理プロセスを実行する第1磁気ディスク装置(DV)と前記複数の処理プロセスのうち他の磁気ディスク装置から影響を受ける処理プロセスを実行する第2磁気ディスク装置(DS)とを区別する請求項2に記載の製造パレット制御システム。
【請求項5】
少なくとも前記第1磁気ディスク装置(DD)の数に基づいて、前記複数の磁気ディスク装置のうち少なくとも1つの磁気ディスク装置の処理プロセスを制御する請求項4記載の製造パレット制御システム。
【請求項6】
少なくとも前記第2磁気ディスク装置(DS)の数に基づいて、前記複数の磁気ディスク装置のうち少なくとも1つの磁気ディスク装置の処理プロセスを制御する請求項4記載の製造パレット制御システム。
【請求項7】
第1磁気ディスク装置(DD)の処理プロセスを制御する請求項5または請求項6のいずれか1項に記載の製造パレット制御システム。
【請求項8】
第2磁気ディスク装置(DS)の処理プロセスを制御する請求項5または請求項6のいずれか1項に記載の製造パレット制御システム。
【請求項9】
前記調整条件は、磁気ディスク装置の温度や電源電圧値、複数の磁気ディスク装置間の位置関係の少なくとも1つを含む請求項3記載の製造パレット制御システム。
【請求項10】
複数の磁気ディスク装置の処理プロセスのステータス情報を問合せし、
前記複数の磁気ディスク装置の前記ステータス情報を取得する製造パレット制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
この発明の実施形態は、磁気ディスク装置の製造プロセスを制御する製造パレット制御システム及び製造パレット制御方法に関する。
【背景技術】
【0002】
磁気ディスク装置(HDD)の製造プロセスには、複数の処理プロセスがある。処理プロセスには、外乱振動の影響を受けやすい処理プロセスや、他の処理プロセスに対して振動を与えやすい処理プロセスがある。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】米国特許出願公開第2022/0093125号明細書
【特許文献2】米国特許第11404084号明細書
【特許文献3】米国特許出願公開第2022/0084549号明細書
【特許文献4】米国特許第10497385号明細書
【特許文献5】米国特許第10553248号明細書
【発明の概要】
【発明が解決しようとする課題】
【0004】
例えば1製造プロセスであるBlank Disk Self Servo Write(BDSSW)パターンライトは、外乱振動の影響を受けやすい処理プロセスや、振動を与えやすい処理プロセスを含み、両処理プロセスの実行タイミングなどによっては製造プロセスにおける不良率の増加や品質の劣化につながる。
【0005】
本発明が解決しようとする課題は、磁気ディスク装置の製造プロセスを制御する製造パレット制御システム及び製造パレット制御方法を提供することを目的とする。
【課題を解決するための手段】
【0006】
実施形態の製造パレット制御システムは、複数の処理プロセスを実行する磁気ディスク装置であって、外部からの問合せに基づいて、前記ステータス情報を出力する複数の磁気ディスク装置と、前記複数の磁気ディスク装置と双方向通信が可能に接続され、各磁気ディスク装置の前記処理プロセスのステータス情報を問合せするコントローラとを具備する。
【図面の簡単な説明】
【0007】
【
図1】
図1は、実施形態に係る磁気ディクス装置の製造プロセスにおけるシステム構成例である。
【
図2】
図2は、実施形態に係る磁気ディクス装置の機能ブロック図である。
【
図3】
図3は、実施形態に係るコントローラPCの機能ブロック図である。
【
図4】
図4は、実施形態に係る磁気ディクス装置とコントローラPCとでやり取りされるメッセージの例である。
【
図5】
図5は、実施形態に係るコントローラPCによる磁気ディクス装置の制御プロセスを決定するポリシーを示したデータベースの例である。
【
図6】
図6は、実施形態に係るコントローラPCによる磁気ディクス装置の動作スケジュールの例である。
【
図7】
図7は、実施形態に係るコントローラPCによるHDDのテスト処理を示すフローチャートである。
【
図8】
図8は、実施形態に係るコントローラPCによるHDDの動作スケジュール調整処理を示すフローチャートである。
【
図9】
図9は、実施形態に係るコントローラPCによるHDDの動作スケジュール調整処理を示す第2のフローチャートである。
【
図10】
図10は、実施形態に係るコントローラPCによるHDDの動作スケジュール調整条件と、調整処理の関係を示したデータベースの例である。
【発明を実施するための形態】
【0008】
以下、図面を参照しながら、本発明の実施形態について説明する。
(第1の実施形態)
本実施形態においては、コントローラPC側がパレット内のすべてのHDDの動作モードを把握し、一部もしくは全てのHDDに対して動作スケジュール変更を要求する例を示す。
【0009】
図1は、実施形態に係る磁気ディクス装置の製造プロセスにおけるシステムの構成例であり、具体的には製造プロセスの1つであるBlank Disk Self Servo Write(BDSSW)における製造パレットの構成例である。
【0010】
本実施形態のシステムは、コントローラPC2とパレット4内の複数のポート5に設置された各HDD1との間で転送部3を経由して双方向通信が可能である。
【0011】
磁気ディスク装置1(HDD1とも称する)は、データが読み書きされる磁気ディスク(以降、単にディスクと称することもある)を備える記憶装置であり、マイクロプロセッサなどのコンピュータを備える。磁気ディスク装置1は、コントローラPC2から受信するメッセージなどに基づいて、内部の各種機能を制御したり、コントローラPC2へメッセージなどのデータを出力したりする。
【0012】
コントローラPC2は、例えば、パソコン本体などであり、磁気ディスク装置1に対してデータの読み書き命令などの要求を出力する。またコントローラPC2は、磁気ディスク装置1の試験をするためのプログラムを備えていてもよく、磁気ディスク装置1にプログラムをロードしたり、トリガ信号などを出力してプログラムを起動したりすることでもよい。
【0013】
転送部3は、例えば、Universal Asynchronous Receiver/Transmitter(UART)であり、コントローラPC2とHDD1との双方向通信を可能とする回路である。本実施形態において転送部3は、コントローラPC2とシリアルケーブルで接続され、HDD1とシリアルケーブルもしくはパラレルケーブルで接続され、シリアルーパラレル変換またはパラレルーシリアル変換の機能を備え、1台のコントローラPC2により複数のHDD1と双方向通信が可能である。
【0014】
パレット4は、多数のHDD1を取付可能な台であり、例えば恒温槽などに設置されている。パレット4には、例えば図のように格子状にエリア(ポートと称する場合もある)が設定され、各エリアにはケーブルが接続可能なポートが設置されており、さらに各エリアに設置されるHDD1は、ポートとケーブルなどで接続され、UART3を経由して、コントローラPC2と通信可能である。各エリアに設置されたHDD1とポート5は1対1で対応しており、エリアに設置されたHDD1は、接続されたポートのポート番号N(Nは自然数を示す)を用いて、HDD1-Nのように称する。また同様にエリアは、ポート5と1対1で対応しており、ポート番号(例えばN=18)を用いて、ポート5-18のように称する。またポート5とHDD1とは1対1で対応していることから、HDD1-Nを指して、ポート5-Nと称する場合もある。
図1は、パレット4に102個のHDD1、ポート5が設置されている例であり、特に区別しない場合は、総称してHDD1、ポート5と称する。またさらに複数のHDD1が設置されたパレット4を複数含むラックを用いて、ラックごとにHDD1の製造プロセスを実行する場合も本実施形態が適用できる。
【0015】
図2は、実施形態に係る磁気ディクス装置の機能ブロック図である。
ディスク11は、円盤型の磁気による回転ディスク記憶媒体であり、データを書き込み(ライトと称する場合もある)可能なデータ領域に、ユーザから利用可能なユーザデータ領域と、システム管理に必要な情報をライトするシステムエリアとが割り当てられている。以下、ディスク11の半径方向に直交する方向を円周方向と称する。ディスク11は、スピンドルモータ12に取り付けられ、スピンドルモータ12の駆動により回転する。
【0016】
ディスク11は、複数のトラックが設定されている。図においては例として3つのトラックTR1、TR2、TR3(特に区別しない場合は、トラックTRと称する)を示したが、データ領域にスピンドル12を中心として同心円状に複数のトラックが設定される。ディスク11のデータのリードライト(読み書き)を実行する際には、シーク制御、トラッキング制御などによりヘッド16を読み書き対象のデータのあるトラックTRに移動させ、ヘッド16がリードライトをする。
【0017】
また、ディスク11にはサーボ情報が書き込まれており、ヘッド16の位置検出などに利用される。サーボ情報は、ディスク11の円周方向に予め決められた位置(サーボ領域と称する)に設置される。サーボ情報については一般的な内容であり、詳細の説明は省略する。
図1の例では、サーボ領域の例として3つのサーボ領域SVA1、SVA2、SVA3(特に区別しない場合は、サーボ領域SVAと称する)を示したが、一般的には、ディスク11の円周方向全体に等間隔でサーボ領域SVAが設置され、各トラックTRのサーボ領域SVAにサーボ情報が書き込まれる。サーボ情報をディスク11へ書き込む製造プロセスがBDSSWパターンライトである。
【0018】
スピンドル12は、ディスク11の支柱であり、磁気ディスク1の筐体などに設置される。スピンドル12が回転することによりディスク11が回転する。
【0019】
VCM13は、ボイスコイルモータ型のアクチュエータであり、アーム15などを動かすために利用される。VCM13は、入力される電流または電圧に基づいて、アーム15などの動作を制御する。なお、本実施形態においては、VCM13の例を示すが、ボイスコイルモータ型のアクチュエータに限定されることはない。
【0020】
ピボット14は、アーム15などを支持し、回転動作などさせるための軸受けである。
【0021】
アーム15は、ヘッド16を支持するアームであり、VCM13からの動力をヘッド16に伝え、ヘッド16を目標のトラックTRに移動させる。
【0022】
ヘッド16は、ディスク11にデータをライトしたり、ディスク11のデータトラックに記録されているデータをリードしたりする部位である。特に区別する場合は、ディスク11にデータをライトするヘッドをライトヘッド16W、ディスク11のデータトラックに記録されているデータをリードするヘッドをリードヘッド16Rと称する。
【0023】
制御部101は、コントローラPC2から命令などのメッセージを受信し、受信したメッセージなどに基づいて磁気ディスク装置1の各部位を制御するハードディスクコントローラである。制御部101は、CPU、マイクロプロセッサなどのコンピュータ、その他コンピュータを備えたICチップなどのハードウェアやソフトウェアなどを含む構成であってもよい。制御部101は、例えばコントローラPC2からディスク11へのデータの書き込み命令やディスク11のデータの読み込み命令などのメッセージを受信する。
【0024】
より具体的に制御部101は、コントローラPC2からステータス情報の要求命令を受信すると、実行中の処理プロセスの動作内容、その処理プロセスが終了するまでの予測時間、次に実行される予定の処理プロセスなどを含めたステータス情報をコントローラPC2へ出力する。ステータス情報とは、磁気ディスク装置1が実行中の処理の内容や実行の状態などを示す磁気ディスク装置1の動作状態、磁気ディスク装置1の内部温度、電源電圧、電源容量、パレット内の設置位置などを示す磁気ディスク装置1の物理状態に関する各種情報を示し、磁気ディスク装置1は、自身のステータス情報を作成し、不揮発性メモリ107などに格納することでもよい。磁気ディスク装置1の動作モードは、動作状態と物理状態との少なくともいずれかを含めた装置の状態を示す。
【0025】
制御部101の各種処理は、ソフトウェア(ファームウェアなどを含む)のプログラムにより実行してもよいし、ハードウェアもしくはソフトウェアやハードウェアの組み合わせとして備えていてもよい。
【0026】
通信部102は、ポート5とケーブルで接続され、転送部3を介してコントローラPC2とデータのやり取りをする。
【0027】
ヘッドアンプIC103は、例えば、リードアンプやライトドライバを備えている。リードアンプは、ディスク11からリードされたリード信号を増幅して、R/Wチャネル104に出力する。ライトドライバは、R/Wチャネル104から出力される信号に応じたライト電流をヘッド16に出力する。
【0028】
R/Wチャネル104は、制御部101などからの指示に応じて、ヘッドアンプIC103に対してディスク11からのデータの読み出しや、ディスク11へのデータの書き込みなどの制御をする。R/Wチャネル104は、ヘッドアンプIC103から受信したリードデータ信号を受信してディクス11のデータ(リードデータと称する場合もある)を抽出したり、書き込み命令されたデータ(ライトデータと称する場合もある)などに基づいてライトデータ信号を生成し、ヘッドアンプIC103に出力したりする。またR/Wチャネル104は、ヘッドアンプIC103から受信したリードデータ信号からサーボ情報を抽出することでもよい。
【0029】
ドライバIC105は、制御部101などからの制御に従って、SPM12、VCM13などを駆動、制御するための電流または電圧を出力する。
【0030】
揮発性メモリ106は、電力供給が断たれると保存しているデータが失われる半導体メモリであり、制御部101などのワークメモリとして用いられることでもよい。揮発性メモリ106は、例えば、DRAM(Dynamic Random Access Memory)、又はSDRAM(Synchronous Dynamic Random Access Memory)である。
【0031】
不揮発性メモリ107は、電力供給が断たれても保存しているデータを記録する半導体メモリである。不揮発性メモリ107には、例えばBDSSW用プログラムなど、磁気ディスク装置1における処理に必要なデータ、プログラムなどが格納される。不揮発性メモリ107は、例えば、NOR型またはNAND型のフラッシュROM(Flash Read Only Memory :FROM)である。
【0032】
図3は、実施形態に係るコントローラPCの機能ブロック図である。
【0033】
コントローラPC2は、各種通信インターフェース、CPU、メモリを備えるコンピュータを備えた、例えばパーソナルコンピュータ、スマートフォンなどの端末である。なおコントローラPC2は、製造工程においてディスク装置1に接続される端末を示し、製造工程の完了後(利用時など)において接続される通常のホスト端末とは区別するが、通常のホスト端末がコントローラPC2の機能を備えていてもよい。
【0034】
コントローラ制御部21は、I/F部23などから各種命令を受信し、受信した命令に基づき、コントローラPC2の各機能を制御する。コントローラ制御部21は、CPU、マイクロプロセッサなどのハードウェアやソフトウェアまたはそれらの組み合わせなどにより構成されてもよい。
【0035】
コントローラ制御部21は、製造プロセス用のプログラムなどを実行して、HDD1にプログラムをロードしたり、ロードしたプログラムを起動させたりする。また、コントローラ制御部21は、磁気ディスク装置1へメッセージを送信したり、磁気ディスク装置1から受信したメッセージを解析したりする。
【0036】
スケジュール調整部211は、各HDD1の製造プロセスにおける処理プロセスの実行、休止などのスケジュールを調整し、決定したスケジュールに基づいてメッセージを各HDD1に出力する。
【0037】
コントローラ通信部22は、転送部3とケーブルなどで接続され、転送部3を介してHDD1とデータのやり取りをする。
【0038】
I/F部23は、マウス、キーボードなどの周辺機器が接続され、周辺機器から入力されたデータを受信し、コントローラ制御部21などに出力する。
【0039】
不揮発性メモリ24は、電力供給が断たれても保存しているデータを記録する半導体メモリである。不揮発性メモリ24には、例えば製造プロセス用のプログラム、磁気ディスク装置1から受信したデータなどが格納される。不揮発性メモリ24は、例えば、NOR型またはNAND型のフラッシュROM(Flash Read Only Memory :FROM)である。
【0040】
揮発性メモリ25は、電力供給が断たれると保存しているデータが失われる半導体メモリであり、コントローラ制御部21などのワークメモリとして用いられることでもよい。揮発性メモリ25は、例えば、DRAM(Dynamic Random Access Memory)、又はSDRAM(Synchronous Dynamic Random Access Memory)である。
【0041】
HDD1の製造プロセスであるBDSSWにおいては、通常、各HDD1上にコントローラPC2からBDSSW用プログラムをロードし、BDSSW用プログラムをスタートさせた後は、各HDD1が個別に動作してBDSSWに含まれる複数の処理プロセスを行う。このことを自走方式とも呼ぶ。自走方式においては、BDSSW終了までの間、コントローラPC2は各ポート5におけるHDD1の現在の動作モード(処理プロセス)を確認しつつ、終了するのを待つ。この場合、コントローラPC2はポート5との通信は行っておらず、ポート5のHDD1が自走であらかじめ決められた動作を行う。
【0042】
パレット4内では多数のHDD1が動作しており、例えばHDD1のヘッド16のロードアンロード動作、緊急アンロード試験、スピンドルモータの起動などの処理プロセスでは比較的大きな振動を生じるが、これらの動作が複数のHDD1で同一時間帯に行われるとその振動エネルギーが外乱として他のHDD1に影響を及ぼす可能性がある。特に、BDSSW実施時に行われる初期パターン書き込み(CGS Write)時などは、外乱の影響が大きい。自走方式では各HDD1があらかじめ決められた動作を行うだけなのでいつ振動を発する動作を行うか、いつ初期パターン書き込みを行うかはHDD1毎にそれぞれ動作時間にばらつきがあることもあり、実際には成り行き任せである。本実施形態は、このような背景を鑑みて創作され、外乱の影響を考慮した製造プロセス可能をする。
【0043】
また同様に、複数のHDD1が同時に特定の動作を行うことで、発熱による温度上昇、消費電力の増加による電源電圧低下といった外乱の発生が他のHDD1に影響を及ぼす場合もありうるが、この場合については後述する。
【0044】
図4は、実施形態に係る磁気ディクス装置とコントローラPCとでやり取りされるメッセージの例である。
【0045】
図4(a)は、コントローラPC2がHDD1に対して発行するメッセージを示し、行ごとにメッセージとそのメッセージの内容を示す。
【0046】
図4(b)は、コントローラPC2が発行したメッセージに対するHDD1の返答メッセージを示し、行ごとにメッセージとそのメッセージの内容を示す。
【0047】
例えば、コントローラPC2が発行したステップ番号要求メッセージ(例えば、
図4(a)のNo1)をHDD1が受信すると、受信したHDD1は、自身が現在行っている処理動作のステップ番号と処理プロセスの内容を、返答メッセージ(例えば、
図4(b)のNo1)としてコントローラPC2に送る。
【0048】
また例えば、コントローラPC2が発行した動作休止要求メッセージ(例えば、
図4(a)のNo2)をHDD1が受信すると、受信したHDD1は、自身が現在行っている処理動作を休止し、制御部101が時間をカウントするなどし、指定された時間分だけ処理プロセスを休止する。
【0049】
図4(b)のNo2のメッセージは、HDD1が現在実行中の処理プロセスの経過時間をカウントし、次の処理プロセス(load_unload処理)の開始時刻を推測して、推測した開始時間(300秒)を含めてメッセージとしてコントローラPC2に送信する。メッセージ受信したコントローラPC2は、必要に応じて、パレット4上のHDD1の処理プロセスの実行を制御することでもよい。load_unload処理は、振動を与えやすい処理プロセスの例である。
【0050】
図4(b)のNo3のメッセージは、HDD1が現在実行中の処理プロセスの経過時間をカウントし、次の処理プロセス(initial_pattern_write処理)の開始時刻を推測して、推測した開始時間(1200秒)を含めてメッセージとしてコントローラPC2に送信する。メッセージ受信したコントローラPC2は、必要に応じて、パレット4上のHDD1の処理プロセスの実行を制御することでもよい。initial_pattern_write処理は、振動を受けやすい処理プロセスの例であり、req_silenceという付随情報で、振動を受けやすい処理プロセスであることをコントローラPC2へ通知することでもよい。
図4(b)のNo3のメッセージにより、HDD1は、自身が行う予定の動作時に、他のHDD1の動作休止をコントローラPC2に要求することができる。
【0051】
すなわちHDD1は、現在の動作ステップから直近の予定を推定して報告する。例えばHDD1は、各動作ステップの平均的な実行時間をあらかじめ固定テーブルで持っておき、そのステップの開始から現在までの時間を計測し、計測値を用いて、現ステップの終了までの時間や次ステップ以降の開始時間を推定することでもよい。
【0052】
一方、コントローラPC2側はパレット4内の全てのHDD1に適時、メッセージ要求を行うことで全てのポート5の動作モード(処理プロセスのステップ番号など動作状態でもよい)を把握する。
【0053】
図5は、実施形態に係るコントローラPCが磁気ディクス装置の制御プロセスを決定する際に用いられるポリシーを示した例である。
【0054】
ここで、DDvib(Drive Disturbance Vibration)は「振動を発生させる動作」を行おうとするHDD1を示し、DSvib(Drive Sensitive Vibration)は、「振動の影響を受けやすい動作」を行おうとするHDD1を示す。すなわち、DDvibは、他の磁気ディスク装置へ影響を与える処理プロセスを実行するHDD1を示し、DSvibは、他の磁気ディスク装置から影響を受ける処理プロセスを実行するHDD1を示す。各ポリシーは、DSvibまたはDDvibの動作状態に応じて、DSvibまたはDDvibの動作を決定する条件を示す。
【0055】
より具体的に例えば、
図5に示したような1以上のポリシーをプログラムなどに反映させ、コントローラPC2は、そのプログラムによって
図4に示したメッセージを生成し、該当するHDD1に出力することでもよい。メッセージを受信したHDD1は、ロードされたプログラムなどによりポリシーに基づいた処理動作を実行する。
【0056】
ポリシーNo1に基づき、例えば、「DDvibが存在するもしくは存在する予定の時間には、DSvibを存在させない」とした場合、コントローラPC2は、DDvibが動作予定の時間を検知して、その時間に動作予定のDSvibの動作を休止するように制御する。
【0057】
ポリシーNo2に基づき、例えば、「ある時刻においてDDvibの台数が最小になる時間にDSvibの動作を実施する」とした場合、コントローラPC2は、DDvibが動作予定の時刻におけるDDvibの数をカウントしてN台より少ない場合には、その時間に動作予定のDSvibを予定通り動作させる(すなわちDSvibに対する制御をしない)ように制御する。
【0058】
ポリシーNo3に基づき、コントローラPC2は、例えば、ある時刻においてDDvibの台数がN台以上となる場合は、その時間にはDSvibの動作を休止させ、DDvibの台数がN台未満となる時間に休止されたDSvibの動作を再開させるように制御する。
【0059】
ポリシーNo4に基づき、コントローラPC2は、例えば、ある時刻においてDSvib(HDD1-Aとする)の台数がM台以上となる場合は、その時間に動作予定のDDvib(HDD1-Bとする)の台数がN台未満となるように、一部もしくは全てのHDD1-Bに対してその時間の動作を一時停止させるように制御する。
【0060】
どの処理プロセスが「振動が生じる動作」であるか「振動の影響を受けやすい動作」であるかを示す対応情報は、予めわかっているものとし、その情報は、予めHDD1やコントローラPC2などにユーザが任意に設定することでもよい。その情報を、例えばロードされるプログラムなどを介してHDD1、コントローラPC2が共有している場合もしくはコントローラPC2のみが知っている場合は、例えば、HDD1とコントローラPC2とで処理プロセスに割り振られたステップ番号(例えば
図4(b)のNo1)をやり取りすることで、コントローラPC2は、HDD1が実行中の処理プロセスが「振動が生じる動作」であるか「振動の影響を受けやすい動作」であるかを判断できる。この場合、「振動が生じる動作」であるか「振動の影響を受けやすい動作」であるかを示す情報は、例えば処理プロセスに割り振られたステップ番号に紐づけられてHDD1、コントローラPC2に記憶されていることでもよい。
【0061】
また例えば、どの処理プロセスが「振動が生じる動作」であるか「振動の影響を受けやすい動作」であるかをHDD1のみが知っている場合は、例えば
図4(b)のNo2に示すようにメッセージに振動が生じる処理であることを示す「out_vib」という情報を含めることで、処理プロセス「load_unload」は振動が生じる処理プロセスであるという情報をコントローラPC2と共有できる。また同様に
図4(b)のNo3のメッセージ示すように振動の影響を受けやすい処理であることを示す「req_silence」という情報が含めることで、処理プロセス「initial_pattern_write」が、振動の影響を受けやすい処理プロセスであるという情報をコントローラPC2と共有できる。
【0062】
図6は、実施形態に係るコントローラPCが決定する磁気ディクス装置の動作スケジュールの例である。
【0063】
図6に示すようにHDD1が実行する処理プロセスの一時休止を一部のHDD1に対して要求することにより、外乱振動の影響を低減した条件下で、他のHDD1が振動の影響を受けやすい処理プロセスを行うことができる。
図6についてより詳細に説明する。
【0064】
ここでは便宜上パレット4のポート数は8として、パレット4内のHDD1の配置位置については考慮しない。例としてこのパレットでは同時に4台以上のHDD1が振動を発生する動作を行うと、その他のHDD1の振動の影響を受けやすい動作に悪影響を及ぼすことが分かっているとする。
【0065】
図6において、列方向は時間、行方向はポート5のポート番号Nを示し、各時間において各ポート5―Nで実行される処理プロセス(動作状態)を示す。n(S)は、該当する時間において処理ステップSが実行されるポート5の数すなわちHDD1の数を示している。
【0066】
S1~S9は動作状態(実行される処理プロセス)を示し、例えば、処理S1は「初期化」処理、処理S2は「Spin up」処理、処理S3は「Load/Unload test」処理、処理S4は「Initial pattern write」処理、処理S4は「Initial pattern write」処理、処理S9は「Final pattern write」処理が割り振られた例であり、基本的には、各HDD1において処理S1~S9が順番に実行されるものとする。またW1、W2は、処理の休止を示す動作状態である。なお本実施形態では9つの処理ステップの例を示すが、製造プロセスの内容などに応じて処理ステップの内容や処理ステップ数はさまざまな場合が考えられ、それらの場合についても本実施形態の適用は可能である。
【0067】
例えば、
図6(a)の処理フローPF-1は、ポート5-1のHDD1-1において実行される処理ステップのフローの例を示し、時刻t1に処理S1が実行開始され、時刻t2、t3、t4、t6にそれぞれ処理S2、S3、S4、S9が実行開始されることを示している。t4からt6の間の処理は省略しているが、例えば処理S5~S8の処理が実行されてもよい。なお便宜上、t0~t11及び各処理S1~S9を同じ時間間隔で揃えて表示しているが、時間間隔は異ってもよく、実際のポート5の処理プロセスの開始時間や各処理プロセスの時間は多少の差異が生じ任意の値となる。またこの差異は、プロセスの種類により異なり、同一プロセスでもドライブ(HDD1)毎にばらつきが生じる。
【0068】
また各ポート5の処理プロセスの開始は同時ではなく、
図6(a)では、時刻t1にポート5-1、ポート5-8が最初の初期化ステップである処理S1を開始し、続いて時刻t2にポート5-2、5-5が動作を開始する例を示している。時刻t2には、先行したポート5-1、5-8はステップS2に進んでいることを示す。各ポート5のHDD1は処理S1~S9を順次実行して製造プロセスを終了する。
【0069】
ここで、斜線を付加している処理S2、S3は「振動が生じる動作」の例であり、例えば、処理S2はスピンドルモータ12の起動テスト、処理S3はヘッドロードアンロードテストとした場合である。この例では時刻t3~t4で振動を生じる処理S2または処理S3が4台のHDD1(ポート5-1、5-2、5-5、5-8)で同時に行われるすなわちn(S2+S3)=4であることを示している。ここで、時刻t4では2台(ポート5-1、5-8)が「振動の影響を受けやすい動作」である処理S4が実行予定であるすなわちn(S4)=2であることを示している。
【0070】
ここで4台以上のHDD1が同時に「振動が生じる動作」である処理S2またはS3を実行すると、「振動の影響を受けやすい動作」である処理S4に影響が出ることが分かっているので、この状態の時刻t4でS4を実行開始するのを避けるための調整を行う。
【0071】
図6(b)は、コントローラPC2が、「振動の影響を受けやすい動作」である処理を実行しようとしているHDD1にその処理を休止するように動作スケジュールを調整した場合の例であり、以下のような状況を示している。
【0072】
コントローラPC2が、時刻t4に処理S4を実行しようとしていた2台のHDD1(ポート5-2、5-5)に対して一時休止w1を要求すると、その要求の結果、時刻t4では処理S2、処理S3を実施するポートのみが動作し、時刻t5では3台のHDD1(ポート5-3、5-6、5-7)だけが振動を生じる処理を行い4台未満であることから、「振動の影響を受けやすい動作」である処理S4が動作しても振動の影響を受けることがない。また、一時休止は指定時間待つだけとしており、一時休止を要求されたHDD1は、ほかの条件にかかわらず指定時間後に処理を再開するので、条件によってハングアップまたはデッドロックになるようなことはない。
【0073】
図6(c)は、コントローラPC2が、「振動が生じる動作」である処理を実行しようとしている振動発生側のHDD1に対して一時停止を要求する例であり、以下のような状況を示している。
【0074】
図6(a)と同様に動作開始されたパレット4において、時刻t4に処理S3を実行しようとしていた2台のHDD1(ポート5-2、5-5)に対してコントローラPC2側から一時休止w2を要求する。その要求の結果時刻t4では処理S2、S3を実施するポートは2台(ポート5-3、5-7)になり、4台以上が同時に処理S2,S3を行わないので、別のHDD1による処理S4が動作しても振動の影響を受けることがない。これにより、それ以降の時刻で、あるHDD1による処理S4が動作する時刻に処理S2,S3が4台以上実行される時刻は存在しなくなる。
図6(c)の例は、
図5のNo2のポリシーにおいてN=4とした場合の実行例であり、Nの値は任意の自然数に設定できる。
【0075】
なお、実際のHDD1による各処理の動作時間はばらつきを持ち、実際の処理ステップの終了時間は予測した時間通りとはならないことがありうるため、コントローラPC2側は、t4以降もすべてのポート5(及びHDD1)に対して適時にメッセージ要求(例えば、
図4(a)のNo.1のメッセージ)を出力し、ポートの動作モードを把握し、必要に応じて新たなスケジュール調整を行う。
【0076】
以上に示した方法により、あるHDD1の「振動の影響を受けやすい動作」である処理プロセスの動作は、他のHDD1の「振動が生じる動作」処理プロセスによる振動の影響を受けることがなく、磁気ディスク装置1の不良率の低減や品質の向上が効果として期待できる。
【0077】
以下に、本実施形態の処理動作について説明する。
【0078】
図7は、実施形態に係るコントローラPCによるHDDのテスト処理を示すフローチャートである。
【0079】
まず初めに、コントローラPC2は1以上のHDD1にプログラムを順次ロードし(ステップS101)、テストスタート要求を発行する(ステップS102)。各HDD1は内部で処理S1の初期化処理から順次動作を行い、処理S9まで到達するとテスト終了となる。コントローラPC2は、適切な間隔でメッセージ(例えば、
図4(a)のNo.1のメッセージ)を出力し、各ポート5にHDD1の現在の処理ステップや、処理ステップ終了時間等を報告するよう要求し(ステップS103)、受信したその結果を、コントローラPC2上の不揮発性メモリ24などに保存する(ステップS104、S105)。
【0080】
コントローラPC2は、全ポート5のステータスを確認し(ステップS106のYes)、全ポート5のテストが終了していれば、処理を終了する(ステップS107のYes)。一方、テストステップを実行中のポート5があれば(ステップS107のNo)、スケジュール調整部211でスケジュール調整が必要かの判断を行う(ステップS108)。なおステップS107において、2以上のHDD1がテストステップを実行中であれば、ステップS108においてスケジュール調整部211でスケジュール調整が必要かの判断を行うこととしてもよい。
【0081】
図8は、実施形態に係るコントローラPCによるHDDの動作スケジュール調整処理を示すフローチャートであり、
図7のステップS108に相当し、
図5に示したポリシーのNo.1からNo.4をプログラムなどにより実現する一例である。
【0082】
コントローラPC2は、取得済みのポート5毎のステータス情報を確認し(ステップS151)、ステータス情報に基づいて、
図5に示したポリシーに従い、次の処理ステップでDDvibとなるHDD1がN(Nは自然数)台以上になる時間帯Txがあるかを検索する(ステップS152)。Txが存在し(ステップS152のYes)、その時間帯にDSvibも存在すれば(ステップS153のYes)、それら一部または全てのDSvibとなるHDD1に対して処理一時停止命令を出力するなどし、処理の一時停止を要求する(ステップS154)。
【0083】
処理一時停止命令を受け取ったHDD1は現在実行中のステップが終了すると、次のステップに移行せずに指定された時間まで処理を一時停止する。またステップS154において、コントローラPC2は、各ポート5のステータス情報からDDvibの処理終了見込み時間を算出し、DSvibに対して一時停止を解除する時間を含めて、一時停止させた処理を再開させる再開要求を出す。
【0084】
また、ステップS153において条件を満たさなかった場合(ステップS155のNo)、コントローラPC2は、ポート5毎のステータス情報から、次の処理ステップでDSvibとなるHDD1がM(Mは自然数)台以上になる時間Tyが存在するか検索する(ステップS155)。Tyが存在し、その時間帯にDDvibも存在する場合(ステップS156のYes)、コントローラPC2は、DDvibがN台以下になるように複数のポート5に対して処理一時停止命令を出力するなどし、処理の一時停止を要求する(ステップS157)。またステップS157において、コントローラPC2は、ポート5のステータス情報からDSの処理終了見込み時間を算出し、DDvibに対して一時停止を解除する時間を含めて、一時停止させた処理を再開させる再開要求を出す。処理一時停止命令及び再開要求を受け取ったHDD1は現在実行中のステップが終了すると、次のステップに移行せずに指定された時間まで処理を一時停止する。
【0085】
図7に戻り、ステップS108において、処理一時停止命令及び再開要求のメッセージを受信したHDD1は、受信したメッセージに従って、処理を休止する。コントローラPC2は、ステップS108で算出した時間などに基づいて、休止させたHDD1が次に処理プロセスを実行する時間になるまで待つ(ステップS109)。
【0086】
以上に示した手順により、「振動の影響を受けやすい動作」である処理プロセスで動作中のHDD1は、他のHDD1の「振動が生じ外乱要因となる動作」である処理プロセスによる影響を低減できる。
【0087】
なお、本実施形態にて示したフローチャートは一例であり、例えば
図8においてステップS154をステップS157に優先して行う条件の場合を示したが、逆にステップS157をステップS154に優先させるようにしてもよい。また、ステップS154とステップS157を1つのフローチャートに示したが、いずれかのみの処理を実施するようにしてもよい。すなわち
図5に示したような任意のポリシーを適用して、さらに任意のポリシーの組み合わせを適用して、処理のフローチャートは任意に記載でき、本実施形態の範囲内である。
(第2の実施形態)
本実施形態においては、
図5に示したポリシーの例以外に、異なるポート5間の物理状態(物理位置、物理距離、横並びのポート列、縦並びのポートなど)やHDD1の温度上昇、電源電圧低下や電源容量不足など物理状態を外乱要因とする場合の別のポリシーの例を示す。
【0088】
本実施形態における磁気ディスク装置1は、磁気ディスク装置の温度を測定する図示せぬ温度測定部、電源電圧や電源容量を測定する図示せぬ電源測定部を備えていてもよい。磁気ディスク装置1は、測定した温度、電源電圧、電源容量などの物理状態をステータス情報に含めて、コントローラPC2にレポートするようにしてもよい。
【0089】
図9は、実施形態に係るコントローラPCによるHDDの動作スケジュール調整処理を示す第2のフローチャートである。
【0090】
コントローラPC2は、出力したメッセージに対する応答(レポート)を各HDD1から受信すると(ステップS171)、受信したレポートに基づいて、各HDD1の処理プロセスの実行、休止などを判断し(ステップS172)、各HDD1に対して決定した内容を出力して、各HDD1の動作スケジュールを調整する(ステップS173)。
【0091】
ステップS172は、
図8のステップS152、S153、S155、S156に相当し、ステップS173は、ステップS154、S157に相当する。例えば、
図8のステップS152における調整条件及びステップS154の調整処理は、
図5のNo.3に示すポリシーに基づいている。
【0092】
異なるポート5間の物理状態(物理位置、物理距離、横並びのポート列、縦並びのポートなど)や、HDD1の処理プロセスによる温度上昇、電源電圧低下や電源容量不足などの物理状態を含めて調整条件とし、調整条件に対する各HDD1への動作命令を予め決めておき、プログラムなどに反映させておくことで、
図7のフローチャートと同様の処理で各HDD1の動作スケジュール調整ができる。
【0093】
図10は、実施形態に係るコントローラPCによるHDDの動作スケジュール調整条件と、調整処理の関係を示したデータの例である。
【0094】
ポリシーNo.1、2は、動作状態に関する条件のみを調整条件に含めた第1の実施形態に示した例である。ポリシーNo.3、5、4、6は動作状態と物理状態との双方に関する条件を調整条件に含めた例である。DSvolt(Drive Sensitive Voltage)は、「電源電圧変動の影響を受けやすい動作モード」にあるドライブHDD1を示し、DDvoltは、「電源電圧変動を生じやすい動作モード」にあるドライブHDD1を示す。なお、電源電圧変動が生じやすい動作モードは、電力消費の多い動作モードであり、例えば、「ロードアンロード動作、スピンドルモータの起動」など、振動を生じる動作モードにおいて生じる可能が高い。また、DSvib、DSvoltを含む「影響を受けやすい動作モード」であるドライブHDD1をDSと総称し、DDvib、DDvoltを含む「影響を受けやすい動作モード」であるドライブHDD1をDDと総称する。どの処理プロセスが「振動が生じる動作」であるか「振動の影響を受けやすい動作」であるかを示す対応関係の情報は、予めHDD1やコントローラPC2などにユーザが任意に設定することでもよい。
【0095】
例えば、ポリシーとしてNo.3を適用した場合、コントローラPC1は受信したステータス情報を解析し、調整条件「温度X度以上である。」に合致するHDD1(HDD1-Aとする)があった場合に、調整処理内容「発熱の多い動作モードのドライブ(HDD1)の台数を減らすようにDDvoltの一部の処理を一定時間停止する。」を実行するメッセージをHDD1-Aに出力する。HDD1-Aは、受信したメッセージに従い自身の処理プロセスを一定時間停止する。
【0096】
また例えば、ポリシーとしてNo.4を適用した場合、コントローラPC1は受信したステータス情報を解析し、調整条件「1台以上のDDvibがあり、DDvib周辺に位置するDSvibである。」に合致するDSvibのHDD1(HDD1-Bとする)があった場合に、調整処理内容「該当DSvibの処理を一定時間停止する。」を実行するメッセージを該当するHDD1-Bに出力する。HDD1-Bは、受信したメッセージに従い自身の処理プロセスを制御する。
【0097】
ポリシーNo.4をプログラムに反映する場合など、調整条件における「DDvib周辺に位置するDSvib」という条件は、例えば「DDvibに隣接するDSvib」、「DDvibからX台分(Xは任意の自然数)以内に位置するDSvib」などと任意に定義する。
図1を例により具体的に説明する。
【0098】
「DDvibに隣接するDSvib」は、例えば
図1のポート5-45(HDD1-45)をDDvibであるHDD1とした場合に、隣接する4台のHDD1(HDD1-28、44、46、62に相当)のうちDSvibであるHDD1が、条件に合致する。
【0099】
また、「DDvibからX台分(またはX周分)以内に位置するDSvib」は、例えば
図1のポート5-45(HDD1-45)をDDvibとしX=2とした場合、2周以内に位置する24台のHDD1(HDD1-9、10、11、12、13、26、27、28、29、30、43、44、46、47、60、61、62、63、64、77、78、79、80、81に相当)のうちDSvibであるHDD1が、条件に合致する。
【0100】
ポリシーNo.5は、例えばパレット4上に、電力消費の多い動作モードのドライブDDvoltがP台以上ある場合の調整条件、調整処理内容を示す。コントローラ制御部21は、調整条件に合致したことを検知すると、全ての電圧低下に弱い動作モードのドライブDSvoltの処理を一定時間停止する。DSvoltであるドライブHDD1は、コントローラ制御部21から受信したメッセージに従い自身の処理プロセスを一定時間停止する。
【0101】
ポリシーNo.6は、例えばパレット4上に、DDvoltがQ台以上ある場合の調整条件、調整処理内容を示す。コントローラ制御部21は、調整条件に合致したことを検知すると、DDvoltのうち、P台(ただし、Q>P)を超えるドライブHDD1の処理を一定時間停止する。DSvoltであるドライブHDD1は、コントローラ制御部21から受信したメッセージに従い自身の処理プロセスを一定時間停止する。
【0102】
ポリシーは自由に設定可能であり、複数HDD1間の物理状態(物理位置、物理距離、横並びのポート列、縦並びのポートなど)、HDD1の温度、電源電圧、電源容量など任意の物理状態、HDD1の動作状態またはそれらの組み合わせを用いて調整条件を設定してもよい。例えば、パレット4に入力される電源容量によって同時に処理プロセスを実行するHDD1の数を制限するようにしてもよい。
【0103】
以上のポリシーは、プログラムへの反映などにより、コントローラPC1へ自由に設定でき、任意のポリシーが設定可能である。
【0104】
以上の手順により、任意のポリシーに基づいて、各HDD1に対する製造プロセスの処理動をスケジューリングすることができる。
【0105】
以上に示した実施形態は以下のような特徴を持つことでもよい。
(A-1)磁気ディスク製造用のパレット4において、コントローラPC2がパレット4内のHDD1に対して、現在の動作モードと現在の動作モードの終了までの予測時間と次の動作モードを問い合わせると、HDD1側からコントローラPC2にそれらを通知する仕組みを備えた磁気ディスク製造パレット制御方法。
(A-2)磁気ディスク製造用のパレット4において、同一パレット4内の一部またはすべてのHDD1の動作モードをコントローラPC2で把握し、特定動作を行うHDD1が多数になるとコントローラPC2が判断した場合に、それらのHDD1の一部または全部に処理の実施スケジュールの変更を要求する(A-1)に記載の磁気ディスク製造パレット制御方法。
(A-3)磁気ディスク製造用のパレット4において、同一パレット4内の一部またはすべてのHDD1の動作モードをコントローラPC2で把握し、特定の動作を行おうとする1以上のHDD1(HDD1-Aとする)の存在するポート5に隣接するかまたはそのポート5に物理位置が近い複数または1台のHDD1-A以外のHDD1の動作モードが前記特定の動作を行おうとするHDD1-Aの動作に振動等の外乱を与える恐れがある場合、コントローラPC2は前記特定動作を行おうとするHDD1-Aにメッセージを送り、隣接または物理位置が近いHDD1-A以外のHDD1が振動等の外乱の発生が終わるのを待ってから前記特定の動作を行うようHDD1-Aの一部または全部に処理の実施スケジュール変更を要求する磁気ディスク製造パレット制御方法。
【0106】
上記(A-1)の方法では、コントローラPC2がパレット4内の1以上のHDD1の現在の動作内容と直近の動作予定を把握する。これにより、パレット内のHDD全体の動作スケジュールを最適に調整するためにどのポートのHDDにスケジュール調整を行うべきか算出することが可能になる。
【0107】
上記(A-2)の方法では、特定のポート5のHDD1に対し処理の実施スケジュール変更を要求することで、スケジュール変更を要求されたHDD1はパレット4内で外乱を発生する可能性のある特定動作の影響を受ける時間帯の動作を避けることが出来る。
【0108】
上記(A-3)の方法では、より影響を受けやすい物理的距離の近いHDD1の動作に注目することで、処理の遅延となるスケジュール調整を最小限の頻度に抑えることが出来、工程時間の増加を最小限に抑えることが出来る。
【0109】
以上に述べた実施形態によれば、複数の磁気ディスク装置に対する製造プロセスの制御方法を提供することができる。
【0110】
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。また上記実施形態に示したフローチャート、シーケンスチャートなどに示す処理ステップは、本発明の要旨を逸脱しない範囲で、ステップ順番の入れ替え、ステップの削除、付加などをした場合についても本発明の範囲である。
【0111】
フローチャート、シーケンスチャートなどに示す処理は、CPU、ICチップ、デジタル信号処理プロセッサ(Digital Signal ProcessorまたはDSP)などのハードウェアもしくはマイクロコンピュータを含めたコンピュータなどで動作させるソフトウェア(プログラムなど)またはハードウェアとソフトウェアの組み合わせによって実現してもよい。
【0112】
また請求項を制御ロジックとして表現した場合、コンピュータを実行させるインストラクションを含むプログラムとして表現した場合、及び前記インストラクションを記載したコンピュータ読み取り可能な記録媒体として表現した場合でも本発明の装置を適用したものである。また、使用している名称や用語についても限定されるものではなく、他の表現であっても実質的に同一内容、同趣旨であれば、本発明に含まれるものである。
【符号の説明】
【0113】
1…磁気ディスク装置(HDD)、2…コントローラPC、3…転送部、4…パレット、5…ポート、11…ディスク、12…SPM、13…VCM、14…ピボット、15…アーム、16…ヘッド、21…コントローラ制御部、22…コントローラ通信部、23…I/F部、24…揮発性メモリ、25…不揮発性メモリ、101…制御部、102…通信部、103…ヘッドアンプIC、104…R/Wチャネル、105…ドライバIC、106…揮発性メモリ、107…不揮発性メモリ、211…スケジュール調整部。