(57)【要約】【課題】  使用ＲＡＭ領域の増加と必要モジュールのディスク媒体からの読み出し動作の頻度を抑制し、ホストシステムの要求により、コマンドの種類によってはスピンドルモータ（ＳＰＭ）の回転を伴わずに実行可能なディスク装置を提供する。【解決手段】  ＣＰＵ、ＣＰＵバス、ＲＡＭ、フラッシュＲＯＭ、ディスク媒体とを有し、プログラムの実行内容に応じたプログラムモジュールが前記ＲＡＭ内に存在しない場合に、このプログラムモジュールが前記フラッシュＲＯＭ内に存在すればフラッシュＲＯＭから、存在しなければディスク媒体から読み出してＲＡＭに展開し、プログラムモジュールの使用頻度によりフラッシュＲＯＭ内に保存するための優先順位を求める手段により、前記フラッシュＲＯＭに保存された前記プログラムモジュールで優先順位の低いものを高いもので逐次置換する。【選択図】      図１
2005189907.tif 000002
【特許請求の範囲】
【請求項１】
ＣＰＵと、
前記ＣＰＵが接続されるＣＰＵバスと、
前記ＣＰＵバスに接続され、プログラムモジュールを選択的に格納するための１つまたは複数の領域をもつＲＡＭと、
前記ＣＰＵに接続され、前記ＲＡＭ内に展開されるプログラムモジュールを選択的に格納するための１つまたは複数の領域をもつフラッシュＲＯＭと、
前記ＲＡＭ内に展開されるすべてのプログラムモジュールを格納するための複数の領域をもつディスク媒体と、
プログラムの実行内容に応じた必要なプログラムモジュールが前記ＲＡＭ内に存在しない場合に、前記プログラムモジュールが前記フラッシュＲＯＭ内に存在すれば前記フラッシュＲＯＭから、前記プログラムモジュールが前記フラッシュＲＯＭ内に存在しなければ、前記ディスク媒体から読み出して前記ＲＡＭに展開する手段と、
前記プログラムモジュールの使用頻度により前記フラッシュＲＯＭ内に保存するための優先順位を求める手段と、
前記フラッシュＲＯＭに保存された前記プログラムモジュールのうち、優先順位の低いものを優先順位の高いもので逐次置換する手段と
を備えたことを特徴とするディスク装置。
【請求項２】
前記フラッシュＲＯＭ内のプログラムモジュールを前記ＲＡＭに展開する際に、前記フラッシュＲＯＭ内のプログラムモジュールが正しいかを検証するための手段と、
前記プログラムモジュールが正しくないと判断された場合に、前記ディスク媒体から前記プログラムモジュールを読み出して前記ＲＡＭに展開し、同時に正しくないと判断された前記フラッシュＲＯＭ内のプログラムモジュールを正しいもので更新するための手段と、
を備えた請求項１に記載のディスク装置。
【請求項３】
ＣＰＵと、
前記ＣＰＵが接続されるＣＰＵバスと、
前記ＣＰＵバスに接続され、プログラムモジュールを選択的に格納するための１つまたは複数の領域をもつＲＡＭと、
前記ＣＰＵに接続され、前記ＲＡＭ内に展開されるプログラムモジュールを選択的に格納するための１つまたは複数の領域をもつフラッシュＲＯＭと、
前記ＲＡＭ内に展開されるすべてのプログラムモジュールを格納するための複数の領域をもつディスク媒体と、
プログラムの実行内容に応じた必要なプログラムモジュールが前記ＲＡＭ内に存在しない場合に、前記プログラムモジュールが前記フラッシュＲＯＭ内に存在すれば前記フラッシュＲＯＭから、前記プログラムモジュールが前記フラッシュＲＯＭ内に存在しなければ前記ディスク媒体から読み出して、前記ＲＡＭに展開する手段と、
前記フラッシュＲＯＭ内に必ず配置されるプログラムモジュールを指定および指定解除する手段と
を備えたことを特徴とするディスク装置。
【請求項４】
前記フラッシュＲＯＭ内の前記プログラムモジュールを前記ＲＡＭに展開する際に、前記フラッシュＲＯＭ内の前記プログラムモジュールが正しいかを検証するための手段と、
前記プログラムモジュールが正しくないと判断された場合に、前記ディスク媒体から前記プログラムモジュールを読み出して前記ＲＡＭに展開し、同時に正しくないと判断された前記フラッシュＲＯＭ内のプログラムモジュールを正しいもので更新するための手段と
を備えた請求項３に記載のディスク装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、組み込み用ソフトウェアの格納と展開に関し、特にファームウェアの格納及び展開に特徴を有するディスク装置に関する。
【背景技術】
【０００２】
従来は、ハードディスク装置などの磁気ディスクにおいては、装置制御のためのファームウェアはフラッシュＲＯＭまたは磁気ディスク媒体に格納されるのが一般的である。これらのうち、装置の起動、サーボ制御およびデータの読出し／書き込み用（Ｒ／Ｗ用）のモジュールなど最低限必要なものはＲＯＭ上に配置することが必須であるが、それ以外の部分については磁気ディスク上の領域へ配置することが可能であった。
【０００３】
ここで、磁気ディスクに存在するファームウェアはＲＡＭに読み出されて実行されることになるが、このための領域を節約するために、例えば、ホストからのコマンドを受信時に必要なモジュールを磁気ディスクから共用のＲＡＭ領域に読み出すと言うような、ＲＡＭの共通化を実施することが容易に想像される。
【０００４】
例えば、先行技術文献である特開平９−２３１０８４には、コンピュータシステムの立上げ時にディスクから読み出され、各処理装置に展開されるファームウェアをフラッシュＲＯＭに記録し、次回以降はここを読み出すことで起動を拘束にする手法が知られている。すなわち、先行技術文献では、システムの起動時に限ってディスクからの読み出しを省略するための手段が提供されることが開示されている。
【０００５】
【特許文献１】特開平９−２３１０８４号公報（概要）
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかし、上述した先行技術文献の場合には、（１）必要となるモジュールを磁気ディスクから読み出す動作の頻度が高くなる。（２）磁気ディスク上に格納されているコマンドを、スピンドルモータ（以下、ＳＰＭと称する）を回転させることなく実行させることができない。という問題点が存在している。
【０００７】
そこで、本発明は上記の問題を解決するためになされたものであり、ＲＡＭ領域の増加を抑制しながら、必要モジュールのディスク媒体からの読み出し動作の頻度を抑制し、ホストシステムの要求により、コマンドの種類によってはＳＰＭの回転を伴わずに実行できるようにすることが可能なディスク装置を提供することにある。
【課題を解決するための手段】
【０００８】
上記した課題を解決するために、この発明に係るディスク装置は、ＣＰＵと、前記ＣＰＵが接続されるＣＰＵバスと、前記ＣＰＵバスに接続され、プログラムモジュールを選択的に格納するための１つまたは複数の領域をもつＲＡＭと、前記ＣＰＵに接続され、前記ＲＡＭ内に展開されるプログラムモジュールを選択的に格納するための１つまたは複数の領域をもつフラッシュＲＯＭと、前記ＲＡＭ内に展開されるすべてのプログラムモジュールを格納するための複数の領域をもつディスク媒体と、プログラムの実行内容に応じた必要なプログラムモジュールが前記ＲＡＭ内に存在しない場合に、前記プログラムモジュールが前記フラッシュＲＯＭ内に存在すれば前記フラッシュＲＯＭから、前記プログラムモジュールが前記フラッシュＲＯＭ内に存在しなければ、前記ディスク媒体から読み出して前記ＲＡＭに展開する手段と、前記プログラムモジュールの使用頻度により前記フラッシュＲＯＭ内に保存するための優先順位を求める手段と、前記フラッシュＲＯＭに保存された前記プログラムモジュールのうち、優先順位の低いものを優先順位の高いもので逐次置換する手段とを備えたことを特徴とするものである。
【０００９】
また、本発明のディスク装置は、ＣＰＵと、前記ＣＰＵが接続されるＣＰＵバスと、
前記ＣＰＵバスに接続され、プログラムモジュールを選択的に格納するための１つまたは複数の領域をもつＲＡＭと、前記ＣＰＵに接続され、前記ＲＡＭ内に展開されるプログラムモジュールを選択的に格納するための１つまたは複数の領域をもつフラッシュＲＯＭと、前記ＲＡＭ内に展開されるすべてのプログラムモジュールを格納するための複数の領域をもつディスク媒体と、プログラムの実行内容に応じた必要なプログラムモジュールが前記ＲＡＭ内に存在しない場合に、前記プログラムモジュールが前記フラッシュＲＯＭ内に存在すれば前記フラッシュＲＯＭから、前記プログラムモジュールが前記フラッシュＲＯＭ内に存在しなければ前記ディスク媒体から読み出して、前記ＲＡＭに展開する手段と、前記フラッシュＲＯＭ内に必ず配置されるプログラムモジュールを指定および指定解除する手段とを備えたことを特徴とするものである。
【発明の効果】
【００１０】
この発明によれば、上記のような構成にすることで、使用頻度・重要度の高いプログラムモジュールを優先的にアクセス所要時間の短いフラッシュＲＯＭに配置することで、ＲＡＭ容量の増加とコマンド実行のためのディスク媒体へのアクセス頻度を同時に抑制することが可能となる。
【００１１】
また、ホストシステムが指定した、特定のコマンドを実行するためのプログラムモジュールを優先的にアクセス所要時間の短いフラッシュＲＯＭに配置することで、そのコマンド実行のためのメカニズム系の駆動を抑制することができ、ホストシステムの構成に対して最適な動作が可能となる。
【発明を実施するための最良の形態】
【００１２】
以下、この発明の実施の形態について、図面を参照しながら詳細に説明する。
本発明の実施形態に係るディスク装置である磁気ディスク装置（ＨＤＤ）の構造を図１を用いて説明する。
＜装置の構成＞
図１は本発明の構成を示すブロック図である。
同図において、ＣＰＵ１は装置全体の制御およびモータドライバ６の制御を時分割で行う。モータドライバ６はＣＰＵ１からの制御によりディスク媒体である磁気ディスク９を定常回転させるためのスピンドルモータ（以下、ＳＰＭと称する）８および、磁気ヘッド１３を目的の位置に移動させるためのボイスコイルモータ（以下、ＶＣＭと称する）７を駆動するための電流をＳＰＭ８およびＶＣＭ７に供給する。
【００１３】
ＣＰＵバス１２にはＣＰＵ１が電源投入時に装置制御のためのファームウェアをフラッシュＲＯＭ１５からＣＰＵ内のＲＡＭ１０へコピーする動作（この動作を以下、イニシャルロードと称する）を行うプログラム（以下、イニシャルプログラムロード：ＩＰＬと称する）が記録されているＩＰＬ ＲＯＭ１１、装置制御を行うためのプログラム、変数等を格納するためのＲＡＭ１０とディスクコントローラ（以下、ハードディスクコントローラ：ＨＤＣと称する）３、および制御に必要な諸信号の生成を行うゲートアレイ２が接続されている。
【００１４】
ＨＤＣ３およびゲートアレイ２の制御用レジスタはそれぞれＣＰＵ１のメモリ空間の一部に割り当てられており、ＣＰＵ１がこの領域に対して読み出しおよび書き込みを行うことでＨＤＣ３およびゲートアレイ２の制御を行う。
【００１５】
また、リード／ライトＩＣ回路５については、主として磁気ヘッド１３の位置決め処理に必要な信号処理を行うサーボブロックと、データの読み出し／書き込みのための信号処理を行うリード／ライトブロックに大別される。
【００１６】
磁気ディスク９には位置決めのためのサーボデータ信号が記録されている領域（以下、サーボ領域と称する）とホストシステムから転送されるデータを記録するための領域（以下、データ領域と称する）が交互にかつ等間隔に配置されている。
【００１７】
さらに、磁気ディスク９上にはその回転軸を中心とした同心円状にデータトラック（以下、単にトラックと称する）が配置され、トラック上に磁気ヘッド１３を追従させるための位置決めを前述のサーボデータ信号から得られる情報をもとに行う。
【００１８】
具体的には、磁気ヘッド１３の位置決め実施時に磁気ヘッド１３から読み出され、ヘッドＩＣ回路１６で増幅されたアナログ信号が、リード／ライトＩＣ回路５に送られ、同リード／ライトＩＣ回路５のサーボブロック２１によりサーボデータとして抽出される。抽出されたサーボデータは更にゲートアレイ２によって処理され、ＣＰＵ１はこのデータをもとにモータドライバ６を制御して、磁気ヘッド１３の位置決めのための電流をＶＣＭ７に供給する。
【００１９】
ＨＤＣ３はＣＰＵバス１２以外にゲートアレイ２、バッファＲＡＭ４、リード／ライトIC回路５に接続されている。また、ＨＤＣ３は更に機能毎にホストシステム１７とのインタフェース制御を行うホストブロック、バッファＲＡＭの制御を行うバッファブロック、リード／ライトＩＣ回路５およびゲートアレイ２と接続され、読み出し／書き込み処理を行うリード／ライトブロックなどに分かれる。
【００２０】
読み出し時、磁気ディスク９から磁気ヘッド１３によって読み出され、ヘッドＩＣ回路１６によって増幅されたアナログ信号は、リード／ライトＩＣ回路５によって復号化され、ＨＤＣ３はこれをゲートアレイ２からの制御用の各信号にしたがって処理することにより、ホストシステム１７に転送すべきデータを生成する。このデータは一旦バッファＲＡＭ４に格納されてからホストシステム１７に転送される。
【００２１】
書き込み時、ホストシステム１７からＨＤＣ３に転送されたデータは一旦バッファＲＡＭ４に格納された後、ゲートアレイ２からの制御用の各信号にしたがってＨＤＣ３からリード／ライトＩＣ回路５へ送られ、リード／ライトＩＣ回路５によって符号化された書き込みデータは、ヘッドＩＣ１６を経由して磁気ヘッド１３によって磁気ディスク９に書き込まれる。
【００２２】
＜ファームウェアコードの配置と装置の起動＞
図２はファームウェアの配置を示す領域配置図である。
ＣＰＵ１のアドレス空間にはＣＰＵ内のＲＡＭ１０、ＨＤＣ３、ゲートアレイ２のレジスタ（具体的には、ＣＰＵ・ゲートアレイ制御レジスタ１１４）、およびＩＰＬＲＯＭ１１が配置されており、ＣＰＵ内のＲＡＭ１０は更に、基本領域１０１とロード領域１０２に分割されている。
【００２３】
ファームウェアのコードはＣＰＵ１のアドレス空間に存在するもののみが実行可能であり、装置に対して電源投入直後はＣＰＵ内のＲＡＭ１０にはファームウェアのコードは存在しないため、ここにファームウェアコードを展開するためのコードがＩＰＬ１１５である。
【００２４】
ＩＰＬ１１５によって、ＣＰＵ内のＲＡＭ１０内に展開されるコードはフラッシュＲＯＭ１５に存在するが、フラッシュＲＯＭ１５はＣＰＵバス１２に接続されておらず、このアドレス空間は、ＣＰＵ１のアドレス空間とは独立したものである。
【００２５】
フラッシュＲＯＭ１５内の領域はさらに非更新領域１２１とコード保持領域１１２に分割されており、前者には装置の起動、サーボ制御および磁気ディスク９に対する読み書きに最低限必要なファームウェアコード（以下、基本コード１３１と称する）と装置毎の調整および設定内容を記した最適化パラメータＡ１３２が格納されている。
【００２６】
装置の電源投入時、ハードウェアのリセット状態が解除されるとＣＰＵ１はＩＰＬ１１５の先頭からプログラムの実行を開始する。ＩＰＬ１１５はフラッシュＲＯＭ１５中の非更新領域１２１の内容を読み出し、ＣＰＵ１内のＲＡＭ１０内の基本領域１０１にコピーする。
【００２７】
これによって基本コード領域１１１、パラメータ領域Ａ１１２内に装置の起動、サーボ制御および磁気ディスク９に対する読み書きに最低限必要なプログラムコードが用意されたことになるので、これに次いで基本コード領域１１１の先頭に処理を分岐させ、ＩＰＬ１１５の動作は完了する。
【００２８】
基本コード領域１１１の先頭に処理が移されると、まず装置全体の初期化、自己診断など、磁気ディスク９のデータを読み出すための準備を行う。この初期化動作にはロード領域管理表マスタ１３３のロード領域管理表１１６へのコピー、およびコード保持領域管理表１１７の初期化（即ち、登録されている項目がない状態にする）が含まれる。
【００２９】
これに次いで、ＳＰＭ８を回転させ、磁気ヘッド１３を所定の位置に移動させた後、最適化パラメータＢ１４１を読み出し、パラメータ領域Ｂ１１３にコピーする。
なお、最適化パラメータＢ１４１は装置の起動には必要ではないが、ホストシステムからのコマンドを実行するために必要なデータ（例えば、ディフェクトリスト、セキュリティ情報等）が格納されており、この読み出しの完了をもって装置の起動処理が完了する。
【００３０】
また、装置起動時にＳＰＭ８を回転させないような設定も可能であり、この場合にはこれらの読み出しは行われず、ホストシステム１７より受信したコマンドを実行するなど、必要になった時点でＳＰＭ８を始動させ、読み出すことになる。
【００３１】
＜ホストシステムからのコマンドの実行＞
図３はＣＰＵ内のＲＡＭ１０上のロード領域１０２、およびフラッシュＲＯＭ１５上のコード保持領域１２２を管理する表のフォーマットである。
ＣＰＵ内のＲＡＭ１０中の変数領域１０３内にロード領域１０２を管理するためのロード領域管理表１１６、およびコード保持領域１２２を管理するためのコード保持領域管理表１１６がそれぞれ配置されており、これらのフォーマットはいずれも図３で示されるもので、各項の意味は以下に示す通りである。
【００３２】
領域番号２０１：その行が表すサブ領域（具体的には、ロードサブ領域もしくはコード保持サブ領域と称する）の番号。
モジュール番号２０２：サブ領域に存在する実行時コード（モジュール）の識別番号。モジュールが存在しないときにはＦＦＦＦｈとなっている。
優先度２０３：モジュールの使用頻度などから判定される上書時の優先度で、大きいほど高く（即ち、上書きされにくい）、ＦＦＦＦｈのときは上書き禁止。  チェックサム２０４：モジュールの整合性を確認するためのチェックサム。
【００３３】
ロード領域１０２はファームウェアのコードを機能毎にまとめたモジュールを必要に応じて展開して実行するための領域でＮＲ個のサブ領域に等分されており（ロードサブ領域１〜ロードサブ領域ＮＲ）、１つのモジュールを格納するためにその大きさにより１つまたは複数のサブ領域が使用される。また、ここに展開される各モジュールには識別のための番号がついている。
【００３４】
ホストシステム１７からコマンドを受信するなど新たな処理を行う必要が生じると、まずロード領域管理表１１６のモジュール２０２の項を検索する。ここで必要なモジュールの番号が見つかればロード領域１０２内の対応するロードサブ領域に既にそのモジュールが存在することになるので処理を継続させることができるが、必要なモジュールが存在しなければその前にフラッシュＲＯＭ１５内のコード保持領域１２２または磁気ディスク９上のコード領域１４２から必要なモジュールを読み出し、ロード領域１０２に展開しておかなければならない。このような処理を１つまたは複数のモジュールに対して行い、必要なモジュールが全てロード領域１０２に展開された時点で当初の処理を継続する。
【００３５】
ロード領域１０２へのモジュール展開時には、モジュール番号２０２の項の中に空きを表す値（ＦＦＦＦｈ）があるかを調べ、空きが見つかればそのロード領域１０２にモジュールが展開されるが、空きがなければ優先度２０３の項を検索して値が最も小さい、すなわち最も優先度が低いものを探し、これを上書きする形で展開する。
【００３６】
ここで、優先度２０３についてはモジュールの使用頻度などを元に計算するが、展開されたばかりのモジュールがすぐに上書きされることがないように最終使用時刻なども考慮する。また、優先度２０３の計算は逐次行うようにし、必要に応じてフラッシュＲＯＭ１５や磁気ディスク９などの不揮発記憶領域に保存する。
【００３７】
次に、ロード領域１０２に展開されるモジュールの展開元について述べる。
モジュールの展開元はフラッシュＲＯＭ１５内のコード保持領域１２２または磁気ディスク９上のコード領域１４２の何れかであり、前者は高速である上に常に（即ち、ＳＰＭ８が停止した状態でも）読み出しが可能であるが、全てのモジュールを格納するだけの容量がなく、後者は読み出すためにＳＰＭ８の始動や磁気ヘッド１３の移動を伴うこともあるため時間がかかるものの、全てのモジュールが格納されている。
【００３８】
このことから、ロード領域１０２にモジュールを展開する場合にはまずコード保持領域１２２内に存在するかを調べ、存在すればそれを使用し、存在しなければコード領域１４２から読み出すという手順をとることになる。
【００３９】
このような特徴から、コード保持領域１２２には使用頻度の高いモジュールや、使用時にＳＰＭ８の始動や磁気ヘッド１３の移動といった動作をさせたくないようなモジュールを格納することが望ましい。また、フラッシュＲＯＭ１５はある単位（例えば、本実施例ではコード保持サブ領域）での消去および書き込みが可能であるため、この領域に保持しておくモジュールを動的に変更することができる。
【００４０】
コード保持領域１２２内の管理はロード領域管理表１１６を使用してロード領域１０２を管理しているのと同様の方法で、コード保持領域管理表１１７を用いて行う。ロード領域１０２へのモジュールの展開が必要になった場合、まず同表のモジュール番号２０２の項を検索し、対応するモジュール番号が見つかればそれをロード領域１０２に展開した後、展開先のロードサブ領域内のチェックサムを計算してチェックサム２０４の項の対応する値と照合する。
【００４１】
チェックサムが一致すれば展開処理は完了するが、チェックサムが不一致であるか、または、対応するモジュールが見つからなければコード領域１４２より読み出して展開する。チェックサムの不一致が発生した場合には、コード保持領域１２２内の対応するコード保持サブ領域も更新しておく。
【００４２】
また、コード保持領域１２２内に格納されているモジュールの更新は、やはりロード領域１０２内のモジュールと同様に使用頻度や最終更新時刻により決定される優先度によって行うが、この場合には更に自動的に決定される優先度と区別される「上書き禁止」（ＦＦＦＦｈ）の条件を追加する。この値が自動的に下がることはなく、自動的に決定される優先度がこの値に到達することもない。
【００４３】
なお、ロード領域管理表１１６を更新した場合には、同時にコード保持領域１２２内のロード領域管理表マスタ１３３も更新する。このとき、フラッシュＲＯＭ１５には書き換え上限回数などの制限がある場合が多いので、あまり頻繁にこれらの表が更新されないように優先度比較の判定条件を決定する必要がある。
【００４４】
さらに、上述の「上書き禁止」（ＦＦＦＦｈ）状態をホストシステム１７が設定および解除できるように、そのためのコマンドを設ける。この場合、ホストシステム１７がモジュール番号を直接指定すると煩雑になるので、指定はコマンド単位とする。
【００４５】
すなわち、常に高速で実行したいコマンドや、ＳＰＭ８の始動を伴わずに実行したいコマンドのコマンドコードを指定して「上書き禁止」（ＦＦＦＦｈ）コマンドを実行すると、装置は必要なモジュールを列挙し、それをコード保持領域１２２に展開した後に、コード保持領域管理表１１７を更新する。もちろん、このときに記録する優先度は「上書き禁止」を表すＦＦＦＦｈとする。
【００４６】
逆に、この状態を解除するためには同様にコマンドコードを指定して「上書き禁止」解除コマンドを実行することで、これらのコマンドで使用しているモジュールの登録を解除することができる。このための動作として該当するモジュールの削除は行わず、優先度の値を通常のものに下げることで後により優先度が高いモジュールが現れた場合に置換されるようになる。
【００４７】
この機能は、例えばリード／ライト系コマンドにそれ以外のコマンドを頻繁に混在させて発行するようなシステムでのコマンド応答性の低下防止や、ＳＰＭ８を停止させた状態で起動させ、ＳＰＭ８の回転を伴うコマンドを実行するかどうかを判定するためのコマンド（例えば、温度測定など）を事前に発行するようなシステムでの「事前の」コマンドにおけるＳＰＭ回転防止などに利用できる。
【００４８】
これにより、ＣＰＵ１内のＲＡＭ１０の容量増加を抑制しつつ必要モジュールの磁気ディスク９からの読み出し動作の頻度を抑制し、またホストシステム１７の特徴に合わせてコマンドの種類によっては恒久的にＳＰＭ８の始動を伴わずに実行させることを可能にする磁気ディスク装置を提供することが可能となる。
【００４９】
なお、本発明は、磁気ディスク装置に限らず、情報をディスク状の媒体に記録する他のディスク装置、例えば、光磁気ディスク装置、オプティカルディスク装置にも適用可能であることは言うまでもない。
【図面の簡単な説明】
【００５０】
【図１】本発明の実施形態に係る磁気ディスク装置（ＨＤＤ）のハードウェア構成を示すブロック図
【図２】本実施形態に係るＨＤＤの磁気ディスク上のコード領域を示す領域配置図
【図３】本実施形態に係るＨＤＤのフラッシュＲＯＭ内のアドレス空間を示す領域配置図
【図４】本実施形態に係るＨＤＤのＣＰＵアドレス空間を示す領域配置図
【図５】本実施形態に係るＨＤＤのコード保持領域・ロード領域の管理表
【符号の説明】
【００５１】
１……ＣＰＵ
２……ゲートアレイ
３……ハードディスクコントローラ（ＨＤＣ）
４……バッファＲＡＭ
５……リード／ライトＩＣ回路
６……ボイスコイルモータ（ＶＣＭ）／スピンドルモータ（ＳＰＭ）ドライバ
７……ボイスコイルモータ（ＶＣＭ）
８……スピンドルモータ（ＳＰＭ）
９……ディスク媒体（磁気ディスク）
１０……ＣＰＵＲＡＭ
１１……イニシャルプログラムローダを格納したＲＯＭ
１２……ＣＰＵバス
１３……磁気ヘッド
１５……フラッシュＲＯＭ
１６……ヘッドＩＣ回路
１７……ホストシステム
１８……ホストインタフェース
１０１……基本領域
１０２……ロード領域
１０３……変数領域
１１１……基本コード領域
１１２……パラメータ領域Ａ
１１３……パラメータ領域Ｂ
１１４……ＨＤＣ・ゲートアレイ制御レジスタ
１１５……イニシャルプログラムローダ格納領域（ＩＰＬ）
１１６……ロード領域管理表
１１７……コード保持領域管理表
１２１……非更新領域
１２２……コード保持領域
１３１……基本コード領域
１３２……最適化パラメータＡ
１３３……ロード領域管理表マスタ
１４１……最適化パラメータＢ
１４２……コード領域
２０１……領域番号
２０２……モジュール番号
２０３……優先度
２０４……チェックサム
【図１】
2005189907.tif 000003
【図２】
2005189907.tif 000004
【図３】
2005189907.tif 000005
【図４】
2005189907.tif 000006
【図５】
2005189907.tif 000007