(57)【特許請求の範囲】
【請求項１】
ＳＣＳＩ対応ハードディスクドライブの初期化校正ルーチン実行方法において、ドライブを初期化するためのメインコードの実行中、インタラプトが発生すると、複数個に分割された初期化校正ルーチンのうち、一番目に指定されたアドレスを有する一つの初期化校正ルーチンを実行し、該初期化校正ルーチンの実行を完了すると、次に呼出すべき他の一つの初期化校正ルーチンのアドレスを指定した後、前記インタラプトを終了し、メインコードを継続して実行することを特徴とする、ハードディスクドライブの初期化校正ルーチン実行方法。
【請求項２】
一番目に指定されるアドレスは、ドライブに電源が印加された直後に実行される変数初期化過程でセットされる、請求項１記載のハードディスクドライブの初期化校正ルーチン実行方法。
【請求項３】
前記複数個に分割された初期化校正ルーチンの各々に対応するフラグは、ドライブに電源が印加された直後に実行される変数初期化過程でセットされ、各初期化校正ルーチンの実行を完了すると、実行が完了した該初期化校正ルーチンのフラグをリセットし、該初期化校正ルーチンが繰り返して行われることを防止する、請求項１又は２記載のハードディスクドライブの初期化校正ルーチン実行方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はＳＣＳＩ対応ハードディスクドライブ（以下、ＨＤＤ）の初期化校正ルーチン実行方法に関するものである。
【０００２】
【従来の技術】
コンピュータ技術は、ＬＳＩ製造及びソフトウェア技術の飛躍的な進歩により現代情報産業の発展に重要な牽引役を担ってきた。コンピュータシステムのユーザは急速に発展する情報産業に追いつくために高速且つ大容量の補助記憶装置を要求し、これによりＳＣＳＩ対応ＨＤＤを持つコンピュータシステムが登場することになった。以下、図１を参照して、従来のＳＣＳＩ対応ＨＤＤの初期化ルーチンについて説明する。
【０００３】
図１は、ＳＣＳＩ制御部４に複数個のＨＤＤが接続されているコンピュータシステムのブロック図である。ＳＣＳＩ制御部４に接続されているそれぞれのＨＤＤ６、８、１０はＳＣＳＩ制御部４の制御下に主制御部２から伝送されたデータをディスク上に書き込むか、またはディスク上に書き込まれているデータを読み出して主制御部２へ伝送する。主制御部２と各ＨＤＤ６、８、１０との間に接続されているＳＣＳＩ制御部４は、主制御部２と各ＨＤＤ６、８、１０との間で送受信される信号のインタフェースを制御する。主制御部２はホストコンピュータの全般的な動作制御を行っており、各ＨＤＤ６、８、１０に対し所定データの読出し／書込みのための動作制御を行う。
【０００４】
各ＨＤＤ６、８、１０は、電源印加時に一連の初期化校正ルーチンを行う。例えば、ディスクを一定の回転数まで加速させるスピンドルモータ駆動段階や、全トラックに対するバイアス校正段階や、プリント基板上のＩＣ（Ｄ／Ａコンバータ、ＶＣＭ駆動ＩＣ等）がもっているゲインを測定して校正するゲイン校正段階などは初期化校正ルーチンの一例と言える。一連の初期化校正ルーチンは、サーボ制御で補償し得ない非線形特性を除去するために、ドライブの電源印加時に行われる初期化ルーチンの中で実行するようにプログラムされている。
【０００５】
【発明が解決しようとする課題】
ＳＣＳＩ対応の従来のＨＤＤで、電源印加時に行われる初期化ルーチンで実行される一連の校正コードは、初期化プログラムのメインコードのひとつとして、コード実行の手順に従って実行される。もし、校正コードの実行中、サーボセクタによるインタラプトが発生すると、メインコードの一つである校正コードは中断され、インタラプトサービスルーチン（Interrupt Service Routine:以下、ＩＳＲ）が行われる。そしてＩＳＲが終了すると、初期化ルーチンが、中断されたメインコードから再実行されることにより、１サーボサンプリング周期でＩＳＲと校正コードが実行される。従って、ＳＣＳＩ対応の従来のＨＤＤでは、校正コードがメインコードの一つとして実行されるとき、ホストコンピュータのような外部装置から命令があった時に対応できないという問題があった。
【０００６】
本発明の目的は、ＳＣＳＩ対応ＨＤＤにおいて、ドライブを初期化するためのメインコード実行と並行して、あるいは外部装置からの命令に並行して初期化校正ルーチンを行うことができる初期化校正ルーチン実行方法を提供することにある。
【０００７】
【課題を解決するための手段】
この目的のために本発明によれば、ＳＣＳＩ対応ハードディスクドライブの初期化校正ルーチン実行方法において、ドライブを初期化するためのメインコードの実行中、インタラプトが発生すると、複数個に分割された初期化校正ルーチンのうち、一番目に指定されたアドレスを有する一つの初期化校正ルーチンを実行し、該初期化校正ルーチンの実行を完了すると、次に呼出すべき他の一つの初期化校正ルーチンのアドレスを指定した後、インタラプトを終了し、メインコードを継続して実行することを特徴とする。一番目に指定されるアドレスは、ドライブに電源が印加された直後に実行される変数初期化過程でセットするものとしておくことができる。複数個に分割された初期化校正ルーチンの各々に対応するフラグは、ドライブに電源が印加された直後に実行される変数初期化過程でセットされ、各初期化校正ルーチンの実行を完了すると、実行が完了した該初期化校正ルーチンのフラグをリセットし、該初期化校正ルーチンが繰り返して行われることを防止するとよい。
【０００８】
【発明の実施の形態】
以下、図２〜４を参照して本発明の実施形態を詳細に説明する。
【０００９】
図２は図１のＳＣＳＩ制御部４に接続されているＨＤＤのブロック図であってＨＤＤ６、８、１０は同じ構成を持ち、２枚のディスク２０とそれに対応する４つのヘッド２２を備えたＨＤＤを示すものである。ディスク２０は通常スタック形態でスピンドルモータ４４の駆動軸に装着されて回転し、それぞれのディスク面はヘッド２２に対応している。ヘッド２２はディスク２０の表面上に位置し、ロータリーボイスコイルモータ３８（Rotary Voice Coil Motor ：以下、ＶＣＭ）のアームアセンブリから垂直に伸張されたアーム２４に設置される。プリアンプ２６は、データ読出し時にはヘッド２２から読み出されたデータを増幅して読出し／書込みチャネル回路２８に送り、データ書込み時には読出し／書込みチャネル回路２８から送られてきた書込みデータを、ヘッド２２のうち対応する一つのヘッドを駆動させてディスク２０上に書き込む。このとき、プリアンプ２６はディスクデータコントローラ４６（Disk Data Controller：以下、ＤＤＣ）の制御によってヘッド２２のうちいずれか一つを選択する。読出し／書込みチャネル回路２８は、プリアンプ２６から送られる読出しデータをデコードして、読出しデータＲＤＡＴＡを生成し、またＤＤＣ４６から送られる書込みデータＷＤＡＴＡをエンコードしてプリアンプ２６に送る。読出し／書込みチャネル回路２８は、ディスク２０上に書き込まれているサーボ情報の一部であるヘッド位置情報を、復調してＰＥＳ(Position Error Signal) を生成する。読出し／書込みチャネル回路２８で生成されたＰＥＳはＡ／Ｄコンバータ３０に送られ、Ａ／Ｄコンバータ３０はＰＥＳをそのレベルに対応するデジタル値に変換してマイクロコントローラ３２に送る。
【００１０】
ＤＤＣ４６はホストコンピュータから送られるデータを、読出し／書込みチャネル回路２８とプリアンプ２６を通じてディスク２０上に書き込み、またディスク２０から読み出されたデータをホストコンピュータへ送る。また、ＤＤＣ４６はホストコンピュータとマイクロコントローラ３２との間のインタフェースの制御も行っている。マイクロコントローラ３２はホストコンピュータから送られるデータ読出し／書込み命令に応じてＤＤＣ４６を制御し、トラック検索及び追跡を管理する。この時、マイクロコントローラ３２はＡ／Ｄコンバータ３０から入力されるＰＥＳ値を用いてトラック追跡を制御し、ゲートアレイから出力される各種のサーボ制御関連信号に応じてサーボ制御を行う。Ｄ／Ａコンバータ３４は、マイクロコントローラ３２で発生するヘッド２２の位置制御のための制御値をアナログ信号に変換して出力する。ＶＣＭ駆動部３６は、Ｄ／Ａコンバータ３４から入力されるヘッド２２の位置制御のための信号によって、アクチュエータを駆動制御するための電流Ｉ（ｔ）を発生してＶＣＭ３８に入力する。先端にヘッド２２の取り付けられたアクチュエータの基端に位置するＶＣＭ３８は、ＶＣＭ駆動部３６から入力される電流Ｉ（ｔ）に対応してヘッド２２をディスク２０上で水平移動させる。モータ制御部４０は、マイクロコントローラ３２から発生するディスク２０の回転制御のための制御値によりスピンドルモータ駆動部４２を制御する。スピンドルモータ駆動部４２は、モータ制御部４０の制御に基づいてスピンドルモータ４４を駆動してディスク２０を回転させる。ＤＤＣ４６に接続されているバッファメモリ４８は、ＤＤＣ４６の制御下にディスク２０とホストコンピュータとの間に伝送されるデータを一時記憶する。
【００１１】
図３は本例の初期化ルーチンのフローチャートを示し、図４は図３のＩＳＲのフローチャートを示すものである。本例では、ドライブ初期化ルーチンで実行される一連の校正ルーチンを複数個の単独校正ルーチンに分割し、インタラプトの発生ごとのＩＳＲ実行中に実行する。
【００１２】
ＳＣＳＩ対応ＨＤＤを持つコンピュータシステムに電源印加すると、各ＨＤＤのマイクロコントローラ３２は、５０段階でシステム変数を初期化し、５２段階に進む。初期化されるシステム変数は、例えば、分割された初期化校正ルーチンのそれぞれのフラグビットを“１”にセットし、且つ最初に実行される初期化校正ルーチンのアドレスを指定する。各フラグビットは各校正ルーチンが実行された後“０”にリセットされて、一度実行された校正ルーチンが繰り返し行われることを防止する。アドレスは、分割された各初期化校正ルーチンの実行手順を規定した値である。マイクロコントローラ３２は５２段階で、停止しているアクチュエータを動作可能にした後、コード実行の手順に従ってメインコードを順次実行する。メインコードの実行中、インタラプトの発生が５４段階で検出されると、マイクロコントローラ３２は５６段階でＩＳＲを行う。ＩＳＲの動作を図４を用いて説明する。
【００１３】
６０段階でマイクロコントローラ３２は、５０段階の変数初期化により一番目に指定された校正ルーチンのアドレスを呼び出す。その後、マイクロコントローラ３２は６２段階で、呼び出されたアドレスに該当する校正ルーチンを行った後、６４段階で該校正ルーチンの実行の完了を判断する。その結果、該校正ルーチンが完了した場合は、マイクロコントローラ３２は該校正ルーチンのフラグを“０”にリセットした後、６６段階に進む。６６段階でマイクロコントローラ３２は２番目に行われるべき校正ルーチンのアドレスを新たに指定した後、待機状態の初期化ルーチンに戻る。
【００１４】
ＩＳＲ終了後、マイクロコントローラ３２は、図３に示した５８段階で初期化ルーチンで行われる一連の初期化校正ルーチンが全て完了したかを検査する。その結果、一連の初期化校正ルーチンが全て完了していた場合、マイクロコントローラ３２は初期化ルーチンを終了して準備完了となる。完了していなかった場合には、マイクロコントローラ３２は５４段階に戻ってインタラプトの発生有無を検索しながらメインコードを実行する。もし、メインコードの実行中５４段階で再びインタラプトが発生すると、マイクロコントローラ３２はＩＳＲモードに進んで、前回のＩＳＲ実行時にアドレス指定された２番目に行われる校正ルーチンを実行して、当該校正ルーチンの段階を全て実行したらフラグを”０”にリセットし、次のルーチンのアドレスを指定して初期化ルーチンに戻る。
【００１５】
マイクロコントローラ３２はインタラプトの発生以前はドライブを初期化させるためのメインコードを実行し、インタラプトが発生すると、ＩＳＲモードに移って分割された初期化校正ルーチンのうち、以前ＩＳＲモードで指定されたアドレスの校正ルーチンを実行し、さらにメインルーチンに戻って継続してメインコードを実行する。従って、この例のＨＤＤは一連の初期化校正ルーチンの実行中に外部装置から受信される命令に対応する制御動作あるいは初期化ルーチンのメインコードを並行して実行することができる。
【００１６】
【発明の効果】
以上述べてきたように本発明は、インタラプトサービスルーチン内で複数個に分割された一連の初期化校正ルーチンを段階的に実行することにより、一連の初期化校正ルーチンを、外部装置から受信される命令に対応する制御動作あるいはドライブを初期化するためのメインコードと並行して行うことができる利点がある。
【図面の簡単な説明】
【図１】ＳＣＳＩ対応ＨＤＤが接続されているコンピュータシステムのブロック図。
【図２】図１の各ＨＤＤのブロック図。
【図３】本発明による初期化ルーチンのフローチャート。
【図４】本発明によるインタラプトサービスルーチンのフローチャート。
【図１】
0004511641.tif 000002
【図２】
0004511641.tif 000003
【図３】
0004511641.tif 000004
【図４】
0004511641.tif 000005