JP2004062663A - ディスク記憶装置において実行されるプログラムを書き換えるための方法及び装置 - Google Patents
ディスク記憶装置において実行されるプログラムを書き換えるための方法及び装置 Download PDFInfo
- Publication number
- JP2004062663A JP2004062663A JP2002221835A JP2002221835A JP2004062663A JP 2004062663 A JP2004062663 A JP 2004062663A JP 2002221835 A JP2002221835 A JP 2002221835A JP 2002221835 A JP2002221835 A JP 2002221835A JP 2004062663 A JP2004062663 A JP 2004062663A
- Authority
- JP
- Japan
- Prior art keywords
- program
- rewriting
- storage device
- main program
- disk storage
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims description 84
- 238000012545 processing Methods 0.000 claims abstract description 81
- 230000008569 process Effects 0.000 claims description 49
- 230000004044 response Effects 0.000 claims description 8
- 230000004913 activation Effects 0.000 claims description 6
- 238000012790 confirmation Methods 0.000 claims description 4
- 238000001994 activation Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 7
- 238000004092 self-diagnosis Methods 0.000 description 6
- 238000012546 transfer Methods 0.000 description 5
- 230000002159 abnormal effect Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003213 activating effect Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 230000002950 deficient Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0674—Disk device
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B2220/00—Record carriers by type
- G11B2220/20—Disc-shaped record carriers
- G11B2220/25—Disc-shaped record carriers characterised in that the disc is based on a specific recording technology
- G11B2220/2508—Magnetic discs
- G11B2220/2516—Hard disks
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 (AREA)
- Computer Security & Cryptography (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
- Stored Programmes (AREA)
Abstract
【解決手段】ホストシステムにより発行されたプログラム転送コマンドをディスク記憶装置にて受信した場合に(ステップ502)、当該コマンドの指定する新たなプログラムをディスク媒体に書き込んで(ステップ503)、当該コマンドの処理を終了する。そして、次のディスク記憶装置の電源投入時に、起動処理の中で、ディスク媒体に書き込まれている新たなプログラムで不揮発性メモリに格納されているプログラムを書き換える。
【選択図】 図8
Description
【発明の属する技術分野】
本発明は、ヘッドによりデータが記録されるディスク媒体を備えたディスク記憶装置に係り、特に当該ディスク記憶装置において実行されるプログラムを書き換えるのに好適な方法及び装置に関する。
【0002】
【従来の技術】
ディスク記憶装置は、ヘッドによりデータが記録されるディスク媒体を備えている。通常、ディスク記憶装置は、当該ディスク記憶装置を利用するホストシステムに接続して用いられる。ホストシステムは、一般にディスク記憶装置を補助記憶装置(大容量記憶装置)として利用するパーソナルコンピュータである。ディスク記憶装置では、ディスク媒体へのデータ記録及びディスク媒体からのデータ読み出しを含む各種処理が実行される。これらの処理は、ディスク記憶装置に設けられた不揮発性メモリに格納されているプログラム(制御プログラム)を当該ディスク記憶装置(内のCPU)が実行することにより実現される。
【0003】
最近のディスク記憶装置には、当該ディスク記憶装置内の不揮発性メモリに格納されているプログラムを最新のものに書き換えられることが要求されている。そこで最近のディスク記憶装置では、プログラムの格納に、フラッシュROMに代表される書き換えが可能な不揮発性メモリが用いられている(例えば特開2000−99270号公報)。
【0004】
従来、不揮発性メモリに格納されているプログラムを書き換えるには、当該プログラムを転送するコマンド、転送されたプログラムを、書き換え可能な不揮発性メモリに書き込むコマンド、書き換え後のプログラムの再起動を行うコマンドなどをホストシステムが順に実行するのが一般的である。つまり、ホストシステムは、書き換えるべき新たなプログラムをディスク記憶装置に転送後、直ちに当該プログラムを不揮発性メモリに書き込むことにより、当該不揮発性メモリ上のプログラムの書き換えを行う。そしてホストシステムは、プログラム書き換え直後にはホストシステム全体を再起動させる。
【0005】
さて、ディスク記憶装置内の不揮発性メモリに格納されているプログラムを安全に書き換えるためには、プログラム書き換えの期間、当該プログラム書き換え以外でホストシステムからディスク記憶装置がアクセスされないことが必要となる。ところが、ホストシステムがパーソナルコンピュータである場合、当該コンピュータのOSは複数のタスク(プログラム)を並行して実行できるマルチタスク機能を有しているのが一般的である。このように、複数のタスクが並行して実行される環境下で、ディスク記憶装置内の不揮発性メモリに格納されているプログラムを書き換えることは危険である。
【0006】
そこで従来は、プログラム書き換え後にホストシステム全体を再起動するためと、不揮発性メモリ上のプログラムを書き換える期間、ホストシステムからディスク記憶装置へのアクセスの発生を防止するために、次のような方法を適用している。まず、最低限のブート機能を持ったブートプログラムと、ホストシステムのアーキテクチャ(コンピュータアーキテクチャ)に適合するプログラム書き換え用のアプリケーションプログラムとを記憶したフレキシブルディスクを用意する。そして、このディスクをホストシステムのフレキシブルディスクドライブに装着して、当該ディスク内のプログラムを実行することで、上述の手順でプログラム書き換えを行う。
【0007】
【発明が解決しようとする課題】
しかしながら、上記した従来技術においては、プログラムの書き換え手順が複雑であり、アーキテクチャを異にするホストシステム毎に、そのシステムに固有のプログラム書き換え用のアプリケーションプログラムを用意しなければならないという問題がある。特に最近は、ディスク記憶装置が、カーナビゲーション装置、或いはAV(Audio Visual)データの大容量記憶装置など、パーソナルコンピュータ以外の分野にも使用されるようになっている。つまり、ディスク記憶装置を利用するホストシステムが、必ずしもホストコンピュータではなく、当該ホストシステムが適用するアーキテクチャも多種多様となってきている。このため、上記問題は顕著である。
【0008】
また上記した従来技術においては、プログラムの書き換え直後にホストシステム全体を再起動させなければならず、プログラム書き換え用のアプリケーションプログラムを通常のOS上で動作させることが難しい。そのため通常は、ブートプログラムを記憶したフレキシブルディスク上に用意されたプログラム書き換え用のアプリケーションプログラムを、OSによらずに実行させることが多い。しかし、ディスク記憶装置を利用する最近のホストシステムは必ずしもフレキシブルディスクドライブを持っていない。したがって、このようなホストシステムにより利用されるディスク記憶装置上で実行されるプログラムを書き換えることは困難である。
【0009】
本発明は上記事情を考慮してなされたものでその目的は、ディスク記憶装置において実行されるプログラムを書き換えるためのオペレーションが、通常のOS上で動作可能なアプリケーションプログラムに基づいて簡単に実行できる、ディスク記憶装置において実行されるプログラムを書き換えるための方法及び装置を提供することにある。
【0010】
【課題を解決するための手段】
本発明の1つの観点によれば、ヘッドによりデータが記録されるディスク媒体へのアクセスを含む各種の制御が、書き換え可能な不揮発性メモリに格納されているプログラムに従って実行されるディスク記憶装置において、上記プログラムを書き換えるためのプログラム書換方法が提供される。この方法は、上記ディスク記憶装置を利用するホストシステムから、プログラムを転送するプログラム転送コマンドを受信した場合に、当該プログラム転送コマンドの指定するプログラムを上記ホストシステムから受け取って上記ディスク媒体に書き込むステップと、上記ディスク記憶装置の電源投入時に上記不揮発性メモリに格納されているプログラムに従って当該ディスク記憶装置を起動する起動処理を実行するステップとから構成される。また、上記起動処理を実行するステップは、上記プログラム転送コマンドに応じて上記ディスク媒体に書き込まれたプログラムで上記不揮発性メモリに格納されているプログラムを書き換えるステップを含む。
【0011】
このような構成においては、ホストシステムにより発行されたプログラム転送コマンドをディスク記憶装置にて受信した場合に、当該コマンドの指定するプログラム(新たなプログラム)がディスク媒体に書き込まれ、ディスク記憶装置の不揮発性メモリに格納されているプログラムの書き換えが行われることなく当該コマンドの処理が終了する。そして、ディスク記憶装置の次の電源投入時に、ディスク媒体に書き込まれている新たなプログラムで不揮発性メモリに格納されているプログラムを書き換える処理が、当該電源投入時に実行される起動処理の一環として自動的に行われる。これにより、ホストシステムのアーキテクチャに関係なく、ディスク記憶装置の不揮発性メモリに格納されているプログラムの書き換えが行える。また、プログラム書き換えのためにホストシステムが行うべきことはプログラム転送コマンドを実行することのみであり、複雑な手順を要しない。よって、本発明においては、様々なアーキテクチャのホストシステムからの指令によるプログラム書き換えに柔軟に対応することが可能となる。
【0012】
ここで、上記ディスク媒体へのプログラムの書き込みに応じて、上記不揮発性メモリに格納されているプログラムを書き換える必要があることを示す有効な書換要求フラグを上記不揮発性メモリにセットするステップを追加し、前記書き換えるステップでは、上記不揮発性メモリに上記有効な書換要求フラグがセットされている場合に上記プログラムの書き換えを実行する構成とするとよい。
【0013】
このようにすると、ディスク記憶装置の電源投入時に、不揮発性メモリに有効な書換要求フラグがセットされているかを調べることにより、既にディスク記憶装置のディスク媒体に、不揮発性メモリに格納されているプログラムを書き換えるための新たなプログラムが書き込まれているかを正しく判断できるようになり、プログラムの書き換えを確実に実行できる。
【0014】
また、上記起動処理を実行するステップに、上記プログラム転送コマンドに応じて上記ディスク媒体に書き込まれたプログラムの当該ディスク媒体からの読み出し完了までの所要時間を予め定められた時間と比較するステップを含ませ、上記所要時間が上記予め定められた時間を越えている場合には、上記書き換えるステップの実行を抑止して、上記不揮発性メモリに格納されているプログラムを書き換えるべきプログラムが上記ディスク媒体に書き込まれていない場合と同一の起動処理を継続する構成とするとよい。その理由は次の通りである。
【0015】
プログラムの書き換えを電源投入時の起動処理の中で行う場合、もし当該プログラムの書き換えのための処理時間が長くなると、ホストシステムの動作に影響を及ぼす。そこで、リトライ等の要因でディスク媒体からのプログラムの読み出しに時間を要した場合には、上述のようにプログラムの書き換えを行わないようにすることで、処理時間の増大を抑えることができる。
【0016】
また、上記起動処理を実行するステップに、プログラム書き換え後に当該書き換え後の新たなプログラムの実行に切り替えるステップを含ませ、当該新たなプログラムに従って起動処理を継続する構成とするとよい。
【0017】
このように、プログラムの書き換えをディスク記憶装置の電源投入時に行い、新たなプログラムの実行までを起動処理の一環として行うようにすることで、プログラムの書き換えが行われた場合であってもホストシステムからは起動時間を除いて通常に起動した場合と同様に見える。このことにより、様々なアーキテクチャのホストシステムからの指令によるプログラム書き換えに柔軟に対応することが可能となる。
【0018】
また、上記起動処理を実行するステップに、上記プログラムの書き換え後に当該書き換え後の新たなプログラムが正常に動作することを確認するステップを含ませ、上記確認ステップで上記書き換え後の新たなプログラムが正常に動作することが確認された場合に限り、当該新たなプログラムに従って上記起動処理を継続する構成とするとよい。
【0019】
このように、書き換え後の新たなプログラムが正常に動作することが確認できた場合に限り、当該新たなプログラムに従って起動処理を継続することにより、書き換え後の新たなプログラムを無条件で実行する場合と比べて、プログラムが暴走するなどの理由で正常な動作が不能になるのを防止できる。
【0020】
ここで、起動処理を実行するステップに、上記確認ステップで上記書き換え後の新たなプログラムが正常に動作することが確認できた場合、その旨を示す特定情報を上記不揮発性メモリに書き込むステップを含ませるならば、当該特定情報の有無を調べるだけで、上記新たなプログラムが正常に動作することが確認できたかを正しく判断できる。
【0021】
また、上記不揮発性メモリに上記特定情報が書き込まれているか否かを、上記書き換えの対象となるプログラムとは独立のモニタプログラムに従って判定するステップと、この判定ステップにより上記特定情報が書き込まれていないと判定された場合に、上記書き換え後の新たなプログラムの実行に代えて上記モニタプログラムを実行するステップとを追加するとよい。
【0022】
このようにすると、新たなプログラムが正しく実行できない場合であっても、モニタプログラムによって最低限の入出力は行えるため、以後のプログラム書き換えも行えなくなるといった不具合の発生を防止できる。
【0023】
また、上記起動処理を実行するステップに、上記プログラムの書き換え前に、その時点における上記ディスク記憶装置内の各部の設定状態を保存するステップと、上記プログラムの書き換え後に、上記ホストシステムと上記ディスク記憶装置とを接続するホストインタフェースの状態を上記プログラムの書き換え前の状態に維持したままで初期化処理を実行するステップと、上記プログラムの書き換え後に、上記プログラムの書き換え前に保存された上記設定状態から上記ディスク記憶装置内の各部の設定状態を復元するステップとを含ませるとよい。その理由は次の通りである。
【0024】
プログラムを書き換えた後には、その書き換え後の新たなプログラムを先頭から実行することになる。しかし、プログラムを先頭から実行すると、通常は初期化処理によってホストインタフェースの状態及びディスク記憶装置内の各部の設定状態は初期化されてしまう。そこで上述のように、初期化処理時に状態を変えないようにする、或いは初期化後に以前の状態を復元して、プログラムの書き換え前後で設定状態が変わらないようにすることにより、プログラムの書き換え実施後にもホストシステム全体の再起動を行う必要がなくなる。これにより、様々なアーキテクチャのホストシステムからの指令によるプログラム書き換えに柔軟に対応することが可能となる。ここで、上記復元ステップより後に上記ホストインタフェースの状態の1つであるビジー状態を解除するならば、ホストシステムの立ち上げよりも前に、しかもディスク記憶装置での起動処理の中で、プログラムの書き換えを完了させて、当該ホストシステムからのコマンドを受け付けることが可能となる。
【0025】
なお、上記プログラム書換方法に係る本発明は、当該方法を適用する装置(ディスク記憶装置)に係る発明としても成立する。
【0026】
【発明の実施の形態】
以下、本発明を磁気ディスク装置に適用した実施の形態につき図面を参照して説明する。
【0027】
図1は本発明の一実施形態に係る磁気ディスク装置の構成を示すブロック図である。
図1の磁気ディスク装置(以下、HDDと称する)1において、ディスク(磁気ディスク媒体)11は上側と下側の2つのディスク面を有している。ディスク11の2つのディスク面の少なくとも一方のディスク面、例えば両方のディスク面は、データが磁気記録される記録面をなしている。ディスク11の各記録面に対応してそれぞれヘッド(磁気ヘッド)12が配置されている。ヘッド12は、ディスク媒体11へのデータ書き込み(データ記録)及びディスク媒体11からのデータ読み出し(データ再生)に用いられる。なお、図1の構成では、単一枚のディスク11を備えたHDDを想定しているが、ディスク11が複数枚スタックされたHDDであっても構わない。
【0028】
ディスク11はスピンドルモータ(以下、SPMと称する)13により高速に回転する。ヘッド12はヘッド移動機構としてのアクチュエータ(キャリッジ)14に取り付けられている。ヘッド12は、アクチュエータ14の回動に従ってディスク11の半径方向に移動される。これにより、ヘッド12は、目標トラック上に位置付けられる。アクチュエータ14は、当該アクチュエータ14の駆動源となるボイスコイルモータ(以下、VCMと称する)15を有している。アクチュエータ14は、このVCM15により駆動される。
【0029】
SPM13及びVCM15は、SPM・VCMドライバIC16からそれぞれ供給される駆動電流(SPM電流及びVCM電流)により駆動される。SPM・VCMドライバIC16は、SPM13を定常回転させるためにCPU17から指定された量のSPM電流を当該SPM13に対して供給する。SPM・VCMドライバIC16はヘッド12をディスク11上の目標位置に位置付けるためにCPU17から指定された量のVCM電流をVCM15に対して供給する。
【0030】
CPU17はHDD1の主制御部をなし、HDD1内のSPM・VCMドライバIC16を除く他の要素の制御と、当該SPM・VCMドライバIC16の制御とを時分割で行う。
【0031】
CPU17はCPUバス18に接続されている。CPUバス18には、CPUが実行すべきプログラム(制御プログラム)が格納されている書き換え可能な不揮発性メモリとしてのフラッシュROM(以下、FROMと称する)19と、CPU17が使用する変数の領域等に割り当てられるRAM(以下、CPU−RAMと称する)20と、ディスクコントローラ(以下、HDCと称する)21と、HDD1の制御に必要な諸信号の生成を行うゲートアレイ22とが接続されている。
【0032】
HDC21は、CPUバス18以外に、ゲートアレイ22、リード/ライトIC24及びバッアァRAM25にも接続されている。HDC21はまた、HDD1を利用するホストシステム2とホストインタフェース3を介して接続されている。
【0033】
HDC21及びゲートアレイ22の制御用レジスタは、それぞれCPU17のアドレス空間の一部の領域に割り当てられている。CPU17は、この領域を対象として読み出しまたは書き込みを行うことで、対応するHDC21またはゲートアレイ22を制御する。
【0034】
HDC21は、ホストシステム2から転送されるコマンド(リード/ライトコマンド等)を受信すると共に、ホストシステム2とHDC21との間のデータ転送を制御するインタフェース制御機能を有する。HDC21はまた、ディスク1lとHDC21との間のデータ転送を制御するディスク制御機能と、バッアァRAM25を制御するバッファ制御機能とを有する。
【0035】
ヘッド12はヘッドIC(ヘッドアンプ回路)23と接続されている。ヘッドIC23はヘッド12により読み出されたリード信号を増幅するリードアンプ(図示せず)、及びライトデータをライト電流に変換するライトアンプ(図示せず)を有する。ヘッドIC23は、リード/ライトIC(リード/ライトチャネル)24と接続されている。リード/ライトIC24は、リード信号に対するA/D(アナログ/ディジタル)変換処理、ライトデータの符号化処理及びリードデータの復号化処理等の各種の信号処理を実行する。
【0036】
HDD1において、ホストシステム2からのリードコマンドの実行時には、当該コマンドで指定される論理アドレスに対応する物理アドレスで示されるディスク11上の領域に記録されているデータ信号がヘッド12によって読み出される。ヘッド12により読み出された信号(アナログ信号)はヘッドIC23により増幅され、リード/ライトIC24によって復号化される。HDC21は、リード/ライトIC24によって復号化されたデータをゲートアレイ22からの制御用の各信号に従って処理することにより、ホストシステム2に転送すべきデータ(リードデータ)を生成する。このデータは一旦バッファRAM25に格納されてからホストシステム2に転送される。
【0037】
一方、ホストシステム2からのライトコマンドの実行時には、当該ホストシステム2からHDC21に転送されたデータ(ライトデータ)は一旦バッアァRAM25に格納された後、ゲートアレイ22からの制御用の各信号に従ってHDC21によりリード/ライトIC24に転送される。このリード/ライトIC24に転送されたライトデータは符号化されて、ヘッドIC23を経由してヘッド12に導かれ、当該ヘッド12により、上記コマンドで指定される論理アドレスに対応する物理アドレスで示されるディスク11上の領域に書き込まれる。
【0038】
図2は、CPUバス18に接続される各種デバイスと当該デバイスが割り当てられるCPUアドレス空間内の領域との対応関係の一例を示す、CPUアドレス空間マップを示す。
【0039】
図2の例では、FROM19及びCPU−RAM20は、CPUアドレス空間30のそれぞれ領域31及び32内のアドレスに割り当てられる。また、HDC21及びゲートアレイ22の制御用レジスタは、CPUアドレス空間30のそれぞれ領域33及び34内のアドレスに割り当てられる。これによりCPU17はこれらのデバイスに対してメモリアクセスと同じ方法で入出力を行うことが可能である。
【0040】
CPUアドレス空間30内の領域31が割り当てられるFROM19の領域は、モニタプログラム領域51、メインプログラム領域52及びパラメタ領域53に大別される。モニタプログラム領域51には、CPU17上で動作するモニタプログラム41が格納される。メインプログラム領域52には、CPU17上で動作する、FROM19をアクセスするためのメインプログラム書換ルーチン42及びメインプログラム43が格納される。本実施形態において、メインプログラム書換ルーチン42はメインプログラム43に付随しており、メインプログラム43の書き換え時には、当該メインプログラム書換ルーチン42も書き換えられる。但し、書き換え前のメインプログラム書換ルーチン42と書き換え後のメインプログラム書換ルーチン42とが異なっているとは限らない。またメインプログラム領域52には、後述する書換要求フラグ44、チェックコード45及びチェックサム46も格納される。パラメタ領域53には、HDD1内の各部の設定情報、各種最適化データなどのパラメタが格納される。
【0041】
モニタプログラム41は、メインプログラム43とは別に用意される、最低限の入出力のみを実現するプログラムである。このモニタプログラム41を使用することで、メインプログラム43が存在しない場合であってもメインプログラムを受け取り、FROM19上のメインプログラム領域52に書き込むことが可能である。
【0042】
メインプログラム43は、HDD1内の各部(各IC)の制御、ヘッド位置決め制御、ホストシステム2から送られるコマンドの解釈と実行など、HDD1全体の制御を行うためのものである。HDD1の機能追加、或いは改良などは、このメインプログラム43を書き換えることで実現可能である。本実施形態におけるプログラムの更新とは、メインプログラム領域52内のメインプログラム43を書き換えることをいう。
【0043】
CPUアドレス空間30内の領域32が割り当てられるCPU−RAM20の領域は、状態保存領域61、状態保存フラグ62の領域及び変数領域63に大別される。変数領域63は、主として、モニタプログラム41及びメインプログラム43の変数格納に使用される。但し、変数領域63は、FROM19の記憶内容の消去を行う場合には、当該FROM19への読み書きができなくなることから、一時的なプログラム格納領域として使用されることもある。
【0044】
次に、図1のHDD1における電源投入時の動作(通常起動時の動作)について、図3乃至図5のフローチャートを参照して説明する。なお、図3は、モニタプログラム41の処理手順を説明するためのフローチャート、図4及び図5はメインプログラム43のうち電源投入時のリセット処理を行う部分の処理手順を説明するためのフローチャートである。
【0045】
HDD1の電源が投入されると、CPU17は、当該HDD1内のハードウェアの初期化後に、ステップ101からモニタプログラム41の実行を開始する。CPU17はまず、CPU−RAM20上に配置される状態保存フラグ62をクリア(リセット)する(ステップ102)。この状態保存フラグ62は、後にメインプログラム43から参照される。CPU17は、状態保存フラグ62をクリアすると、モニタプログラム41の実行に最低限必要な初期化処理を行う(ステップ103)。この後、CPU17は、メインプログラム領域52に配置されているチェックコード45を読み、当該チェックコード45から、有効なメインプログラム43がメインプログラム領域52内に存在するか否かをチェックする(ステップ104)。
【0046】
上述のように、チェックコード45はメインプログラム領域52に存在する。したがって、チェックコード45は、メインプログラム43が書き換えのため消去されるときに同時に消去され、その値は0FFFFH(末尾のHは16進表現であることを示す)となる。チェックコード45は、上記消去に続いて、新たなメインプログラム43がメインプログラム領域52に書き込まれ、当該メインプログラム43が正しく実行できることが確認された後に、特定の値(例えば01234H)に更新される。
【0047】
したがって、上記ステップ104では、チェックコード45が特定の値(01234H)であればメインプログラム43が存在すると判定される。この場合、モニタプログラム41からメインプログラム43の実行に分岐する(ステップ105)。これに対し、チェックコード45が上記特定の値と異なる場合には、メインプログラム43が存在しないと判定される。この場合、CPU17は、モニタプログラム41による最低限の入出力は行えるようにするため、当該モニタプログラム41のコマンド待ちループに入る(ステップ113)。このコマンド待ちループは、後述するメインプログラム43のコマンド待ちループ(アイドルループ)とは異なる。
【0048】
モニタプログラム41には、電源投入エントリ(ステップ101)の他に、後述する特定のコールドスタートエントリ(ステップ111)が存在する。モニタプログラム41は、コールドスタートエントリ(ステップ111)から実行された場合には、CPU−RAM20内に状態保存フラグ62がセットされた後に上記ステップ103に分岐するように構成されている。この場合、状態保存フラグ62の状態を除いて、電源投入時と同様の動作となる。
【0049】
さて、モニタプログラム41からメインプログラム43に分岐すると(ステップ105)、つまりメインプログラム43に制御が移ると(ステップ201)、CPU17は、当該メインプログラム43に従って初期化処理を行う(ステップ202)。この初期化処理では、HDD1内の各部(各IC)の初期化とCPU−RAM20内の変数領域63の初期化とが行われる。ここでCPU17は、CPU−RAM20内の状態保存フラグ62と状態保存領域61については初期化を行わない。またCPU17は、状態保存フラグ62がセットされていれば、ホストシステム2から見たホストインタフェース3の各信号線の状態を変えないようにする。ホストインタフェース3の信号線の状態にはBUSY(ビジー)、DASP等がある。BUSYは、HDD1がホストシステム2からコマンドを受信できない状態にあることを示す。DASPは、HDD1でのマスタ・スレーブの設定のための通信用の信号線の状態を示す。
【0050】
CPU17は初期化処理(ステップ202)を終了すると、メインプログラム領域52内のチェックコード45が特定の値(01234H)に一致するか否かをチェックする(ステップ203)。もし、チェックコード45が特定の値に一致しないならば、つまりチェックコード45が正しい値でないならば、CPU17は、メインプログラム領域52内には有効なメインプログラム43が存在しないと判定する。この場合、CPU17は、メインプログラム43の書き換えが完了していないと判定し、メインプログラム43の書き換え動作の一部をなすステップ231へ進む。これに対し、チェックコード45が特定の値に一致しているならば、CPU17はステップ204に進み、状態保存フラグ62の値をチェックする。
【0051】
もし、状態保存フラグ62がセットされていなければ、CPU17は通常の起動動作を行うためにステップ205へ進み、ホストインタフェース3のリセット信号がホストシステム2によって解除されるのを待つ。
【0052】
やがて、リセット信号が解除されたならば、CPU17はSPM・VCMドライバIC16を制御してSPM13を起動するための起動動作を開始する(ステップ206)。ここで、SPM13が定常回転に達するまでには、ある程度の時間を要する。そこでCPU17は、起動動作を開始すると、SPM13が定常回転に達するのを待つことなく、次のステップ207に進む。これにより、ステップ207から始まる幾つかのステップは、SPM13の起動処理と並行して行われる。
【0053】
CPU17は、ステップ207において、マスタまたはスレーブの認識のための一連の動作を行う。即ちCPU17は、HDD1がスレーブデバイスとして設定されていれば、HDD1自身の存在をマスタデバイスに伝えるための、ホストインタフェース3上の信号線を駆動する。これに対し、HDD1がスレーブデバイスとして設定されていなければ、CPU17は、スレーブデバイスが存在するか否かをホストインタフェース3上の上記信号線の状態を読み取ることで確認する。そしてCPU17は、ホストインタフェース3上のデバイス接続構成を確定する。
【0054】
次に、上記ステップ204で、状態保存フラグ62がセットされていると判定された場合の動作について述べる。まず、状態保存フラグ62がセットされるのは電源投入直後ではない。つまり状態保存フラグ62がセットされるのは、装置の状態(マスタ・スレーブの設定状態及び関連する信号線の状態、ホストシステム2からのモード指定など)が確定してから内部的にリセット動作が再度実行された場合である。これらの設定状態は保持されなければならない。そこで、状態保存フラグ62がセットされた場合、後述するステップ205〜207の動作の代わりに、ステップ221または213が実行される。ステップ221では、先のステップ206と全く同じSPM13の起動動作が行われる。この起動動作は、ホストインタフェース3のリセット信号の解除を待つことなく、開始される。また本実施形態では、マスタ・スレーブの設定状態は保持されなければならないので、ステップ207に相当する処理は行わない。これ以外の装置の状態については、以前に状態保存領域61に保存された内容を再設定することで復元させる。この装置状態の復元は、後のステップ213で行われる。
【0055】
CPU17は、ステップ221でSPM13の起動動作が開始されると、自己診断処理を行う(ステップ208)。この自己診断処理は、メインプログラム領域52を対象とするチェックサムの計算を含むFROM19のチェック、CPU−RAM20のチェック及びおよびバッファRAM25のチェックを含む。メインプログラム領域52のチェックサム46は当該領域53内に記録されている。このメインプログラム領域52内の書換要求(メインプログラム書換要求)フラグ44及びチェックコード45は、チェックサム46の計算の対象外である。また、CPU−RAM20のチェックでは、状態保存フラグ62及び状態保存領域61の内容が破壊されないようにする必要がある。
【0056】
CPU17はステップ208での自己診断処理を完了すると、続いて行われるディスクアクセスのため、SPM13が定常回転数に達するまで待つ(ステップ209)。そして、SPM13が定常回転数に達すると、CPU17は書換要求フラグ44の値をチェックすることで、メインプログラム書換要求の有無を判定する(ステップ210)。もし、書換要求フラグ44が初期化状態(0FFFFH)であれば、CPU17はメインプログラム書換要求がないものと判定して、通常の起動を行うためにステップ211へ分岐する。これに対し、書換要求フラグ44が初期化状態以外ならば、CPU17はメインプログラム書換要求があるものと判断して、ステップ251から始まるメインプログラム書換処理を実行する。
【0057】
さてCPU17は、通常起動時には、まずステップ211において、ディスク11に記録されているシステムデータを読み出して、HDD1内各部への状態の反映を行う。ここで、システムデータとは、ディスク11上のディフェクトセクタのリスト、及びホストシステム2によって設定された内容を含む。次にCPU17は、CPU−RAM20の所定領域に状態保存フラグ62がセットされているか否かを判定する(ステップ212)。もし、状態保存フラグ62がセットされているならば、CPU17はCPU−RAM20内の状態保存領域61の内容をHDD1の状態へ反映させる(ステップ213)。つまりCPU17は、HDD1の各部の設定状態を復元する。この場合、ステップ211で設定された内容が状態保存領域61の内容で上書きされることもある。
【0058】
次にCPU17は、リセット終了処理を行う(ステップ214)。このリセット終了処理により、ホストインタフェース3の信号線と、HDC21及びゲートアレイ22の制御用レジスタとが所定の値に設定される。また、ホストシステム2からの割り込みが許可される。このリセット終了処理の結果、HDD1(内のHDC21)は、ホストインタフェース3からのコマンド受信が可能となる。そこでCPU17は、状態保存フラグ62をクリアする共に(ステップ215)、ホストインタフェース3の特定信号線によりHDD1のビジー状態を解除し(ステップ216)、しかる後にコマンド待ちのためのアイドルループに入る(ステップ217)。なお、電源投入直後からステップ215でビジー状態が解除されるまでは、HDD1は終始ビジー状態である。
【0059】
次に、図1のHDD1におけるコマンド処理について、図7及び図8のフローチャートを参照して説明する。なお、図7は、メインプログラム43中のアイドルループ(コマンド待ちループ)の処理手順を説明するためのフローチャート、図8はメインプログラム43中のコマンド処理ルーチンの処理手順を説明するためのフローチャートである。
【0060】
先に述べたように、メインプログラム43に従う電源投入時のリセット処理が完了すると、HDD1はホストシステム2からのコマンドを受信できる状態になり、アイドルループに入る(ステップ217)。これによりステップ401に制御が移る。このステップ401から始まるアイドルループは、ホストシステム2からコマンドが発行されない場合に定期的に行うべき処理を実行するためのものである。具体的には、省電力のための処理、自己診断処理などが、これに当たる。
【0061】
CPU17は、アイドルループのステップ401に制御が移ると、タイマの値を取得し(ステップ402)、その値から定期的に行う処理を実行すべきか否かを判定する(ステップ403)。もし、実行すべき処理があれば、CPU17は当該処理を実行し(ステップ404)、ステップ402に戻る。これに対し、実行すべき処理がなければ、CPU17は何もせずに再度ステップ402に分岐する。CPU17は、このステップ402から始まる処理を繰り返す。
【0062】
上記アイドルループはホストシステム2からのコマンドを待つためのループである。このため、このアイドルループで処理を実行している場合であっても、ホストシステム2からのコマンドには応答する必要がある。そこで本実施形態では、HDC21は、ホストシステム2からのコマンドを受信すると、CPU17に対して割り込み処理を要求する。CPU17は、これを受けて、実行中の処理を中断した後、即座にHDD1をビジー状態にして、図8のフローチャートに示すコマンド処理ルーチンに分岐させる。
【0063】
CPU17は、アイドルループの実行状態において、HDC21がホストシステム2からコマンドを受信すると、上述のように割り込み処理によってコマンド処理ルーチンのステップ501に分岐させる。このコマンド処理ルーチンでは、CPU17は、ホストシステム2により発行されたコマンドをHDC21から受け取って、そのコマンドの種類を判定する(ステップ502,511)。もし、ホストシステム2により発行されたコマンドがメインプログラム転送コマンドであるならば、CPU17はステップ503に進む。また、上記コマンドがメインプログラム書き込みコマンドであるならば、CPU17はステップ512に進む。また、上記コマンドが、メインプログラム転送コマンド及びメインプログラム書き込みコマンド以外のコマンドであれば、CPU17はそのコマンドに応じた処理(ステップ521)を実行する。
【0064】
CPU17は、ステップ503またはステップ521に進んだ場合、つまりメインプログラム書き込みコマンド以外のコマンドを処理した場合、そのコマンドの処理終了後、ステップ508に分岐する。CPU17は、このステップ508で、HDC21及びゲートアレイ22の制御用レジスタの値の設定、及びビジー状態の解除を含むコマンド終了処理を行った後、再度アイドルループへ分岐する(ステップ509)。
【0065】
次に、図1のHDD1における電源投入時のメインプログラム書き換えについて、上記図3、図4、図5、図7及び図8のフローチャートに加えて、図6のフローチャートを参照して説明する。なお、図6はCPU−RAM20上にコピーされるメインプログラム書換ルーチン42の処理手順を示すフローチャートである。
【0066】
本実施形態におけるメインプログラムの書き換えの主な特徴は2点ある。第1は、通常のホストシステム2からのデータ転送(データ書き込み)と同様にして、ホストシステム2からHDD1へのメインプログラム転送コマンドに応じて当該ホストシステム2からメインプログラムを受け取り、ディスク11に書き込んでおく点である。第2は、ディスク11に書き込んでおいたメインプログラムを、次のHDD1の電源投入時に読み出して、メインプログラム43としてFROM19のメインプログラム領域52に書き込む点である。
【0067】
まず、ホストシステム2からHDD1に対してメインプログラム転送コマンドが発行されたものとする。HDD1では、ホストシステム2からコマンドを受信すると、図8のフローチャートを参照して説明したようにコマンド処理が開始され(ステップ501)、受信コマンドの種類が判定される(ステップ502,511)。この例のように、メインプログラム転送コマンドの場合、CPU17はステップ503に制御を移す。ステップ503では、メインプログラム転送コマンドで指定されたデータ(メインプログラム)が、HDC21で受け取られ、一旦バッファRAM25に格納される。するとCPU17は、バッファRAM25に格納されたデータが、メインプログラム転送コマンドで指定された正しい(有効な)メインプログラムであるか否かを、チェックサムの計算などにより判定する(ステップ504)。もし、バッファRAM25に格納されたデータが有効なメインプログラムでない場合には、CPU17はステップ513に分岐して終了ステータスを「異常」に設定することにより、コマンド(メインプログラム転送コマンド)の処理を異常終了させる(ステップ508)。そして、CPU17はアイドルループに入る(ステップ509)。
【0068】
これに対し、バッファRAM25に格納されたデータが有効なメインプログラムである場合には、CPU17は当該データ(メインプログラム)をディスク11に書き込む制御を行う(ステップ505)。次にCPU17は、FROM19に確保されているメインプログラム領域52中の書換要求フラグ44をセットする(ステップ506)。この書換要求フラグ44は、バッファRAM25に格納されているデータ(メインプログラム)をディスク11に書き込む時点では、後述するステップ302で、例えば0FFFFHに既に初期化(リセット)されている。書換要求フラグ44が0FFFFHの状態は、メインプログラムの「書換要求なし」を意味する。そこでCPU17は、メインプログラムをディスク11に書き込むと、上記ステップ506で書換要求フラグ44を0FFFFH以外の値にセットする。これにより、書換要求フラグ44は、メインプログラムの「書換要求あり」を示す状態に遷移する。CPU17はステップ506を実行すると、終了ステータスを「正常」に設定することにより(ステップ507)、コマンド(メインプログラム転送コマンド)の処理を正常終了させる(ステップ508)。そして、CPU17はアイドルループに入る(ステップ509)。
【0069】
この状態で、ホストシステム2(及びHDD1)がシャットダウン(電源断)し、その後、ホストシステム2(及びHDD1)の電源が再び投入されたものとする。この場合、CPU17は以下に述べるように、メインプログラム43の書き換えを伴う起動動作を開始する。
【0070】
まずCPU17は、HDD1の電源が投入されると(ステップ101)、先に述べた電源投入に伴う通常起動時の動作と同様に、ステップ102〜105、201〜209を実行する。次にCPU17は、ステップ210において書換要求フラグ44の状態を参照して、メインプログラムの書換要求の有無を判定する。通常起動時であれば、書換要求フラグ44は0FFFFHに初期化されているため、メインプログラムの書換要求がないと判定されて、ステップ211に分岐する。
【0071】
しかし、この例のように、先に述べたメインプログラム転送コマンドの実行によって既に書換要求フラグ44がセットされている状態で、HDD1の電源が投入された場合、上記ステップ210では、メインプログラムの書換要求があると判定される。この場合、CPU17はFROM19のメインプログラム領域52に現在書き込まれているメインプログラム43の書き換えのために、ディスク11に書き込まれているメインプログラムを読み出してバッファRAM25に格納する制御を行う(ステップ251)。
【0072】
さて、ディスク11からのメインプログラムの読み出し中にリトライが発生するなどの要因で、当該メインプログラムの読み出しに多くの時間を要した場合、メインプログラム領域52内のメインプログラム43の書き換えが遅れて、総合的な起動時間が延びてしまう虞がある。そこで本実施形態では、HDD1の電源投入時点からメインプログラムの読み出し完了までの所要時間を計測し、その時間が予め定められた一定時間を越えていれば、メインプログラム43の書き換えは行わないようにしている。そのためCPU17は、メインプログラムの読み出し完了までの所要時間を上記一定時間と比較する(ステップ252)。そして、読み出し完了までの所要時間が一定時間を越えている場合には、CPU17は、メインプログラムの書換要求がない場合と同様の動作、即ち通常起動時と同様の動作を行うために、ステップ211に分岐する。この場合、メインプログラム43の書き換えは、少なくとも次回の電源投入時まで待たされることになる。なお、電源投入時(またはメインプログラムの読み出し開始時)から一定時間をカウントするタイマを用い、当該タイマが一定時間をカウントしてもメインプログラムの読み出しが完了しない場合に、ステップ211に分岐する構成としてもよい。
【0073】
一方、メインプログラムの読み出しまでが一定時間以内で完了した場合、CPU17は、ディスク11からバッファRAM25に読み出されたメインプログラムが正常であるか否かをチェックサムの計算などによりチェックする(ステップ254,255)。CPU17は、バッファRAM25に読み出されたメインプログラムが正常であればステップ256に進む。これに対し、バッファRAM25に読み出されたメインプログラムが異常であれば、CPU17は以後は通常起動時と同様の動作を行うために、ステップ211に分岐する。
【0074】
CPU17はステップ256に進んだ場合、メインプログラム43の書き換えのために、SPM13の駆動を停止させる制御を行う。SPM13の駆動を停止させるのは、メインプログラム43の書き換え時には、SPM13及びVCM15の制御を行うルーチンも消去されて、当該SPM13及びVCM15を制御できなくなるためである。CPU17は、ステップ256でSPM13の駆動を停止させると、当該SPM13の回転速度が予め定められた所定の回転速度より低くなるまで待つことなく、直ちにステップ257へ分岐する。このように、SPM13の回転速度が所定の回転速度より低くなるまで待つ処理を行わないのは、SPM13の駆動を停止しても、当該SPM13は慣性により回転を続けることから、当該SPM13の回転速度が所定の回転速度より低くなるには時間がかかるためである。
【0075】
CPU17はステップ257に分岐すると、現時点でのHDD1内での各部の設定状態を取得して、CPU−RAM20上に確保されている状態保存領域61に、その設定状態を保存する。この処理は、新しいメインプログラム43に書き換えられた結果、当該新しいメインプログラム43に制御が移った後に、現在の設定状態を復元可能とするために行われる。
【0076】
次にCPU17は、FROM19のメインプログラム領域52に保存されているメインプログラム書換ルーチン42をCPU−RAM20の変数領域63にコピーする(ステップ258)。この処理を実行する理由は次の通りである。まず、メインプログラム43の書き換えを行う場合に、その書き換えを行うためのメインプログラム書換ルーチン42が必要である。しかし、メインプログラム43の書き換え中は、FROM19全体がアクセス不能となる。このため、メインプログラム43をFROM19上で動作させることはできない。そこで本実施形態では、メインプログラム書換ルーチン42を、FROM19のメインプログラム領域52からCPU−RAM20の変数領域63にコピーして、当該CPU−RAM20上で動作させるようにしている。そのため、メインプログラム書換ルーチン42は、CPU−RAM20の変数領域63で動作してメインプログラム書き換え処理を完了すると、メインプログラム43の先頭に分岐するように構成されている。
【0077】
さてCPU17は、メインプログラム書換ルーチン42のCPU−RAM20へのコピーを完了すると、CPU−RAM20の変数領域63の特定のアドレス(ステップ301)に分岐する(ステップ259)。するとCPU17は、メインプログラム書換ルーチン42に従って以下に述べるようにメインプログラム43の書き換えを実行する。
【0078】
まずFROM19の特性として、当該FROM19にデータが書き込まれている状態で、そのデータが書き込まれている領域に、新たなデータを上書きすることはできない。つまり、この領域に新たなデータを書き込むには、事前にその領域のデータを消去する必要がある。そこでCPU17は、メインプログラム書換ルーチン42に制御を移すと、FROM19のメインプログラム領域52上のデータを全て消去する(ステップ302)。これにより、メインプログラム43だけでなく、メインプログラム書換ルーチン42、書換要求フラグ44、チェックコード45及びチェックサム46も消去される。次にCPU17は、バッファRAM25に格納されているメインプログラムを、新たなメインプログラム43として順次FROM19のメインプログラム領域52に書き込む(ステップ303)。このときメインプログラムに付随するメインプログラム書換ルーチンもメインプログラム書換ルーチン42としてメインプログラム領域52に書き込まれる。
【0079】
もし、新たなメインプログラム43の書き込みが全て正常終了したならば(ステップ304)、CPU17は当該新たなメインプログラム43の先頭(ステップ201)へ分岐する(ステップ305)。これに対し、新たなメインプログラム43の書き込みが正常に実行できなかった場合には、CPU17は当該新たなメインプログラム43は無効である判断して、特定のコールドスタートエントリ(ステップ111)へ分岐する(ステップ311)。
【0080】
さて、新たなメインプログラム43の書き込みが正常終了し、当該新たなメインプログラム43に制御が移ると(ステップ201)、先に述べたモニタプログラム41からメインプログラム43に分岐した場合と同様に、初期化処理が行われる(ステップ202)。これにより、HDD1内の各部(各IC)の初期化とCPU−RAM20内の変数領域63の初期化とが行われる。次にCPU17は、メインプログラム領域52内のチェックコード45をチェックする(ステップ203)。この段階では、チェックコード45はまだ書き込まれていない(初期化状態のままである)ことから、CPU17はステップ231へ分岐する。
【0081】
上述のように本実施形態では、メインプログラム43の書き換え過程で、図4及び図5のフローチャートに示すリセット処理部分がそれぞれ異なる経路で複数回実行される。このため、このリセット処理部分のプログラム構造、特に分岐条件は、新たなメインプログラム43でも同様である必要がある。
【0082】
CPU17は、ステップ231に分岐すると、新たなメインプログラム43の動作をテストする。ここでのテスト内容は、前記ステップ208で行われているのと同様の自己診断処理に加え、擬似的にコマンド割り込みを発行させることでコマンド実行のためのルーチンが正しく働いていることを確認する処理を含む。CPU17は、ステップS231でのテスト結果から、新たなメインプログラム43が正常に動作しているか否かを判定する(ステップ232)。もし、新たなメインプログラム43が正常に動作しているならば、CPU17は当該メインプログラム43が正しく書き込まれていると判断して、メインプログラム領域52内に特定の値(01234H)のチェックコード45を書き込む(ステップ233)。
【0083】
このステップ233を実行した時点で新たなメインプログラム43の書き込み動作は正常完了したことになる。そこでCPU17は、確認のため、モニタプログラム41の先頭から再度実行させる(ステップ234)。但し、モニタプログラム41への分岐先は電源投入エントリ(ステップ101)ではなくて、上記コールドスタートエントリ(ステップ111)となる。その理由は、メインプログラム書き換えの過程でホストインタフェース3の信号線の状態を変えることはできず、また前記ステップ257で保存したHDD1内の各部の設定状態を新たなメインプログラム43上で復元させる必要があるためである。
【0084】
CPU17は、コールドスタートエントリ(ステップ111)に分岐すると、まずCPU−RAM20上に配置される状態保存フラグ62をセットする(ステップ112)。次にCPU17は、先に述べた電源投入時(ステップ101)と同様に、ステップ103に進んで初期化処理を行う。ここで、電源投入時(電源投入直後)と異なるのは、状態保存フラグ62がリセットされた(ステップ102)後ではなくて、状態保存フラグ62がセットされた(ステップ112)後に、初期化処理(ステップ103)が行われる点である。
【0085】
CPU17は、初期化処理(ステップ103)を実行すると、メインプログラム領域52に正しいチェックコード45が書き込まれているか否かを判定する(ステップ104)。この時点ではメインプログラム領域52には、先のステップ233で正しい値(01234H)のチェックコード45が書き込まれている。この場合、CPU17はステップ105に分岐し、再度新たなメインプログラム43を先頭から実行する(ステップ201)。そしてCPU17は、初期化処理(ステップ202)を経て、上記ステップ104と同様の判定、即ちメインプログラム領域52に正しいチェックコード45が書き込まれているか否かの判定を行う(ステップ203)。ここでも、上記ステップ104の場合と同様に、正しい値(01234H)のチェックコード45が書き込まれていると判定される。この場合、CPU17はステップ204に分岐して、状態保存フラグ62がセットされているか否かを判定する。
【0086】
今回のステップ204は、モニタプログラム41がコールドスタートエントリ(ステップ111)より実行されて、当該モニタプログラム41から分岐したメインプログラム43で実行されたものである。この場合、コールドスタートエントリ(ステップ111)の次のステップ112で、状態保存フラグ62がセットされる。したがって、今回のステップ204では、状態保存フラグ62がセットされていると判定される。
【0087】
CPU17は、状態保存フラグ62がセットされている場合、前述したようにマスタ・スレーブの設定及びホストインタフェース3の信号線の状態が変化しないように、ステップ221に分岐する。CPU17は、このステップ221でSPM13の起動のみを行って、通常の起動時と同様に自己診断処理(ステップ208)を行う。そしてCPU17は、SPM13が定常回転数に達するのを待った後(ステップ209)、書換要求フラグ44の値をチェックすることで、メインプログラム書換要求の有無を判定する(ステップ210)。ここでは、ステップ302の消去動作で書換要求フラグ44はクリアされている。この場合、CPU17は、メインプログラム書換要求がないものと判定し、通常の起動時と同様に、ディスク11に記録されているシステムデータを読み出して、HDD1内各部への状態の反映を行う(ステップ211)。
【0088】
次にCPU17は、状態保存フラグ62がセットされているか否かを判定する(ステップ212)。ここでは、状態保存フラグ62はセットされている。この場合、CPU17はメインプログラムの書き換え前の段階(ステップ257)で状態保存領域61に保存されたHDD1内の各部の設定状態を読み出し、その設定状態を現在のHDD1の状態に反映させる(ステップ213)。つまり、HDD1内の各部の状態をメインプログラムの書き換え前の状態に復元する。このとき、前述したようにステップ211で設定された内容が上書きされることもある。その後、CPU17は、通常起動時と同様にステップ214〜216を実行することにより、ホストシステム2からのコマンド受信が可能な状態となる。するとCPU17は、アイドルループ(ステップ401)に分岐して(ステップ217)、メインプログラム43の書き換えを含む電源投入後の起動処理を完了する。
【0089】
さて、本実施形態では、電源投入時から新たなメインプログラム43中のステップ216が実行されてビジー状態が解除されるまでの間は、メインプログラムの書き換え中、及び再起動中を含め、HDD1は終始ビジー状態を保っている。このため、ホストシステム2からは、単に電源投入に伴うHDD1の起動のための時間が延びたように見えるだけとなる。更に本実施形態では、書き換え前のメインプログラム43中のステップ207で設定されたマスタ・スレーブの設定状態、及び他のHDD1内各部の設定状態が書き換え前の状態に復元される。つまり本実施形態では、マスタ・スレーブの設定状態、及びそれ以外のHDD1内部の状態に関し、通常に起動した場合と同様の振る舞いとなる。このため本実施形態においては、ホストシステム2の動作に影響を与えることなくメインプログラム43の書き換えを行うことが可能となる。
【0090】
上記したように本実施形態では、メインプログラムの書き換えを、電源投入時の起動処理の一部として行っている。この他に、本実施形態では、メインプログラム転送コマンドに続いて、ホストシステム2からHDD1に対して特定のコマンド(メインプログラム書き込みコマンド)を発行することによっても、ディスク11に格納されたメインプログラムを用いてメインプログラム領域52上のメインプログラム43を書き換えることが可能なように構成されている。
【0091】
以下、メインプログラム書き込みコマンドに従うメインプログラムの書き換えについて、上記図5、図6及び図8を参照して説明する。
まず、ホストシステム2からHDD1に対してメインプログラム転送コマンドが発行された場合、前記したように、コマンド処理ルーチンの中で当該メインプログラム転送コマンドが実行されて、ホストシステム2からの新たなメインプログラムがディスク11に書き込まれる。このメインプログラム転送コマンドに続いてホストシステム2からメインプログラム書き込みコマンドが発行されて、HDC21で受信されたものとする。この場合、CPU17は、コマンド処理ルーチンの中で、受信コマンドがメインプログラム書き込みコマンドであると判定し(ステップ511)、メインプログラム43のリセット処理部分のステップ253(エントリA)に分岐する。すると、電源投入時のメインプログラム書き換えの場合と同様にして、メインプログラム領域52上のメインプログラム43が書き換えられる(ステップ254〜259,301〜305)。そしてメインプログラム43の書き換えが完了すると、ビジー状態が解除されてコマンドを受信できるようになる。
【0092】
このように、メインプログラム書き込みコマンドに従うメインプログラムの書き換えにおいても、ホストシステム2から見れば単一のメインプログラム書き込みコマンドを実行したに過ぎず、メインプログラム43の書き換え後には、HDD1内の各設定状態も書き換え前の状態に復元される。このため、メインプログラム43を、以後のホストシステム2の動作に影響を与えることなく書き換えることが可能となる。上記実施形態では、メインプログラム転送コマンドとメインプログラム書き込みコマンドを別々に用意している。しかし、メインプログラム転送コマンドの処理ルーチンでコマンド終了処理(ステップ508)を行う代わりに、エントリA(ステップ253)に分岐させるようにするならば、1つのコマンド(メインプログラム転送コマンド)で、メインプログラムの転送及び書き換えを、連続して実行することも可能である。
【0093】
上記実施形態においては、本発明を磁気ディスク装置(HDD)に適用した。しかし本発明は、光磁気ディスク装置など、記録媒体にディスク媒体を用い、且つ当該ディスク媒体へのデータ書き込みにヘッドが用いられるディスク記憶装置全般に適用することができる。
【0094】
なお、本発明は、上記実施形態及びその変形例に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。更に、上記実施形態及びその変形例には種々の段階の発明が含まれており、開示される複数の構成要件における適宜な組み合わせにより種々の発明が抽出され得る。例えば、実施形態に示される全構成要件から幾つかの構成要件が削除されても、発明が解決しようとする課題の欄で述べた課題が解決でき、発明の効果の欄で述べられている効果が得られる場合には、この構成要件が削除された構成が発明として抽出され得る。
【0095】
【発明の効果】
以上詳述したように本発明によれば、ホストシステムにより発行されたプログラム転送コマンドをディスク記憶装置にて受信した場合に、当該コマンドの指定するプログラム(新たなプログラム)で不揮発性メモリに格納されているプログラムを直ちに書き換えることはせずに、当該新たなプログラムをディスク媒体に書き込んでおき、次のディスク記憶装置の電源投入時に、起動処理の中で、ディスク媒体に書き込まれている当該新たなプログラムで不揮発性メモリに格納されているプログラムを書き換えるようにした。
【0096】
これにより、ホストシステムのアーキテクチャに関係なく、ディスク記憶装置の不揮発性メモリに格納されているプログラムの書き換えが行える。また、プログラム書き換えのためにホストシステムが行うべきことはプログラム転送コマンドを実行することのみであり、複雑な手順を要しない。よって、本発明においては、様々なアーキテクチャのホストシステムからの指令によるプログラム書き換えに柔軟に対応することができる。即ち本発明によれば、ディスク記憶装置において実行されるプログラムを書き換えるためのオペレーションを簡略化し、当該オペレーションが、通常のOS上で動作可能なアプリケーションプログラムに基づいて簡単に実行でき、これにより様々なアーキテクチャのホストシステムからのプログラム書き換えを簡単に且つ安全に行うことができる。
【図面の簡単な説明】
【図1】本発明の一実施形態に係る磁気ディスク装置の構成を示すブロック図。
【図2】図1中のCPU17のアドレス空間マップの一例を示す図。
【図3】図2中のモニタプログラム41の処理手順を説明するためのフローチャート。
【図4】図2中のメインプログラム43のうち電源投入時のリセット処理を行う部分の処理手順を説明するためのフローチャートの一部を示す図。
【図5】図2中のメインプログラム43のうち電源投入時のリセット処理を行う部分の処理手順を説明するためのフローチャートの残りを示す図。
【図6】図2中のメインプログラム書換ルーチン42の処理手順を説明するためのフローチャート。
【図7】図2中のメインプログラム43に含まれているアイドルループの処理手順を説明するためのフローチャート。
【図8】図2中のメインプログラム43に含まれているコマンド処理ルーチンの処理手順を説明するためのフローチャート。
【符号の説明】
1…HDD(磁気ディスク装置、ディスク記憶装置)
2…ホストシステム
3…ホストインタフェース
11…ディスク
12…ヘッド
17…CPU
19…FROM(フラッシュROM、書き換え可能な不揮発性メモリ)
20…CPU−RAM
21…HDC(ディスクコントローラ)
25…バッファRAM
30…CPUアドレス空間
41…モニタプログラム
42…メインプログラム書換ルーチン
43…メインプログラム
44…書換要求フラグ
45…チェックコード(特定情報)
46…チェックサム
51…モニタプログラム領域
52…メインプログラム領域
53…パラメタ領域
61…状態保存領域
62…状態保存フラグ
63…変数領域
Claims (13)
- ヘッドによりデータが記録されるディスク媒体へのアクセスを含む各種の制御が、書き換え可能な不揮発性メモリに格納されているプログラムに従って実行されるディスク記憶装置において、前記プログラムを書き換えるためのプログラム書換方法であって、
前記ディスク記憶装置を利用するホストシステムから、プログラムを転送するプログラム転送コマンドを受信した場合に、当該プログラム転送コマンドの指定するプログラムを前記ホストシステムから受け取って前記ディスク媒体に書き込むステップと、
前記ディスク記憶装置の電源投入時に前記不揮発性メモリに格納されているプログラムに従って当該ディスク記憶装置を起動する起動処理を実行するステップと
を具備し、
前記起動処理を実行するステップは、前記プログラム転送コマンドに応じて前記ディスク媒体に書き込まれたプログラムで前記不揮発性メモリに格納されているプログラムを書き換えるステップを含む
ことを特徴とするプログラム書換方法。 - 前記ディスク媒体への前記プログラムの書き込みに応じて、前記不揮発性メモリに格納されているプログラムを書き換える必要があることを示す有効な書換要求フラグを前記不揮発性メモリにセットするステップを更に具備し、
前記書き換えるステップでは、前記不揮発性メモリに前記有効な書換要求フラグがセットされている場合に前記プログラムの書き換えを実行する
ことを特徴とする請求項1記載のプログラム書換方法。 - 前記起動処理を実行するステップは、前記プログラム転送コマンドに応じて前記ディスク媒体に書き込まれたプログラムの当該ディスク媒体からの読み出し完了までの所要時間を予め定められた時間と比較するステップを含み、
前記起動処理を実行するステップは、前記所要時間が前記予め定められた時間を越えている場合には、前記書き換えるステップの実行を抑止して、前記不揮発性メモリに格納されているプログラムを書き換えるべきプログラムが前記ディスク媒体に書き込まれていない場合と同一の起動処理を継続する
ことを特徴とする請求項1記載のプログラム書換方法。 - 前記起動処理を実行するステップは、前記プログラムの書き換え後に当該書き換え後の新たなプログラムの実行に切り替えるステップを含み、
前記起動処理を実行するステップは、前記書き換え後の新たなプログラムに従って前記起動処理を継続する
ことを特徴とする請求項1記載のプログラム書換方法。 - 前記起動処理を実行するステップは、前記プログラムの書き換え後に当該書き換え後の新たなプログラムが正常に動作することを確認するステップを含み、
前記起動処理を実行するステップは、前記確認ステップで前記書き換え後の新たなプログラムが正常に動作することが確認された場合に限り、当該新たなプログラムに従って前記起動処理を継続する
ことを特徴とする請求項4記載のプログラム書換方法。 - 前記起動処理を実行するステップは、前記確認ステップで前記書き換え後の新たなプログラムが正常に動作することが確認できた場合、その旨を示す特定情報を前記不揮発性メモリに書き込むステップを含み、
前記起動処理を実行するステップは、前記不揮発性メモリに前記特定情報が書き込まれている場合に限り、前記書き換え後の新たなプログラムに従って前記起動処理を継続する
ことを特徴とする請求項5記載のプログラム書換方法。 - 前記不揮発性メモリに前記特定情報が書き込まれているか否かを、前記書き換えの対象となるプログラムとは独立のモニタプログラムに従って判定するステップと、
前記判定ステップにより前記特定情報が書き込まれていないと判定された場合に、前記書き換え後の新たなプログラムの実行に代えて前記モニタプログラムを実行するステップと
を更に具備することを特徴とする請求項6記載のプログラム書換方法。 - 前記起動処理を実行するステップは、
前記プログラムの書き換え前に、その時点における前記ディスク記憶装置内の各部の設定状態を保存するステップと、
前記プログラムの書き換え後に、前記ホストシステムと前記ディスク記憶装置とを接続するホストインタフェースの状態を前記プログラムの書き換え前の状態に維持したままで初期化処理を実行するステップと、
前記プログラムの書き換え後に、前記プログラムの書き換え前に保存された前記設定状態から前記ディスク記憶装置内の各部の設定状態を復元するステップと
を更に含むことを特徴とする請求項1記載のプログラム書換方法。 - 前記起動処理を実行するステップは、前記復元ステップより後に前記ホストインタフェースの状態の1つであるビジー状態を解除するステップを含むことを特徴とする請求項8記載のプログラム書換方法。
- 前記書き換えるステップでは、前記プログラム転送コマンドの指定するプログラムが前記ディスク媒体に書き込まれている状態で、前記ホストシステムからプログラムの書き込みを指定するプログラム書き込みコマンドを受信した場合にも、前記プログラム転送コマンドに応じて前記ディスク媒体に書き込まれたプログラムで前記不揮発性メモリに格納されているプログラムを書き換えることを特徴とする請求項1記載のプログラム書換方法。
- ヘッドによりデータが記録されるディスク媒体へのアクセスを含む各種の制御が、書き換え可能な不揮発性メモリに格納されているプログラムに従って実行されるディスク記憶装置において、
前記ディスク記憶装置を利用するホストシステムから、プログラムを転送するプログラム転送コマンドを受信した場合に、当該プログラム転送コマンドの指定するプログラムを前記ホストシステムから受け取って前記ディスク媒体に書き込む手段と、
前記ディスク記憶装置の電源投入時に前記不揮発性メモリに格納されているプログラムに従って当該ディスク記憶装置を起動する起動処理を実行する手段と
を具備し、
前記起動処理を実行する手段は、前記プログラム転送コマンドに応じて前記ディスク媒体に書き込まれたプログラムで前記不揮発性メモリに格納されているプログラムを書き換える手段を含む
ことを特徴とするディスク記憶装置。 - 前記起動処理を実行する手段は、前記プログラムの書き換え後に当該書き換え後の新たなプログラムの実行に切り替える手段を含み、
前記起動処理を実行する手段は、前記新たなプログラムに従って前記起動処理を継続することを特徴とする請求項11記載のディスク記憶装置。 - 前記起動処理を実行する手段は、前記プログラムの書き換え前に、その時点における前記ディスク記憶装置内の各部の設定状態を保存する手段と、前記プログラムの書き換え後に、前記ホストシステムと前記ディスク記憶装置とを接続するホストインタフェースの状態を前記プログラムの書き換え前の状態に維持したままで初期化処理を実行する手段と、前記プログラムの書き換え後に、前記プログラムの書き換え前に保存された前記設定状態から前記ディスク記憶装置内の各部の設定状態を復元する手段とを更に含むことを特徴とする請求項11記載のディスク記憶装置。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002221835A JP3708914B2 (ja) | 2002-07-30 | 2002-07-30 | ディスク記憶装置において実行されるプログラムを書き換えるための方法及び装置 |
SG200302564A SG129246A1 (en) | 2002-07-30 | 2003-04-30 | Method and apparatus for rewriting program executed in disk drive |
CN03123527.1A CN1221885C (zh) | 2002-07-30 | 2003-05-09 | 用于重写在磁盘驱动器中执行的程序的方法 |
US10/438,046 US6996667B2 (en) | 2002-07-30 | 2003-05-15 | Method and apparatus for rewriting program executed in disk drive |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002221835A JP3708914B2 (ja) | 2002-07-30 | 2002-07-30 | ディスク記憶装置において実行されるプログラムを書き換えるための方法及び装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004062663A true JP2004062663A (ja) | 2004-02-26 |
JP3708914B2 JP3708914B2 (ja) | 2005-10-19 |
Family
ID=30437681
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002221835A Expired - Fee Related JP3708914B2 (ja) | 2002-07-30 | 2002-07-30 | ディスク記憶装置において実行されるプログラムを書き換えるための方法及び装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US6996667B2 (ja) |
JP (1) | JP3708914B2 (ja) |
CN (1) | CN1221885C (ja) |
SG (1) | SG129246A1 (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006127140A (ja) * | 2004-10-28 | 2006-05-18 | Toshiba Corp | ファームウェアの書換方法、ディスクドライブ装置、及び情報処理システム |
JP2011216183A (ja) * | 2011-07-14 | 2011-10-27 | Toshiba Corp | 磁気ディスク装置、制御方法および情報処理装置 |
US8693130B2 (en) | 2010-01-29 | 2014-04-08 | Kabushiki Kaisha Toshiba | Magnetic disk device and control method thereof, and information processor |
JP2016508250A (ja) * | 2012-12-12 | 2016-03-17 | 華為技術有限公司Huawei Technologies Co.,Ltd. | ハードディスクシステム操作方法、ストレージシステム及びプロセッサ |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7845012B2 (en) * | 2005-11-18 | 2010-11-30 | Toyota Motor Engineering & Manufacturing North America, Inc. | System and method of intelligent agent identification for vehicle diagnostics |
US8060285B2 (en) * | 2006-04-26 | 2011-11-15 | Toyota Motor Engineering & Manufacturing North America, Inc. | System and method of intelligent agent management using an overseer agent for use in vehicle diagnostics |
US7233879B1 (en) | 2006-05-09 | 2007-06-19 | Toyota Technical Center Usa, Inc. | System and method of agent self-repair within an intelligent agent system |
US7729825B2 (en) | 2006-06-29 | 2010-06-01 | Toyota Motor Engineering & Manufacturing North America, Inc. | System and method of intelligent agent management using an agent interface for use in vehicle diagnostics |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5297067A (en) * | 1991-10-16 | 1994-03-22 | Quantum Corporation | Electronic hot connection of disk drive module to computer peripheral bus |
JPH06295238A (ja) | 1993-04-07 | 1994-10-21 | Nec Ibaraki Ltd | 磁気ディスク制御装置 |
US5537578A (en) * | 1993-04-20 | 1996-07-16 | International Business Machines Corporation | Transparent driving partition for processing logical volumes to be recorded onto optical media |
JPH07121974A (ja) | 1993-10-21 | 1995-05-12 | Mitsubishi Electric Corp | 情報記録・再生装置 |
US5452277A (en) * | 1993-12-30 | 1995-09-19 | International Business Machines Corporation | Adaptive system for optimizing disk drive power consumption |
JPH08125830A (ja) | 1994-10-19 | 1996-05-17 | Ricoh Co Ltd | ファクシミリ装置 |
WO1997038367A1 (fr) * | 1996-04-11 | 1997-10-16 | Hitachi, Ltd. | Unite de disques et ordinateur |
JPH10307726A (ja) | 1997-05-02 | 1998-11-17 | Nec Corp | 起動エラー時におけるファームウェアリカバリ方式 |
JP3437083B2 (ja) | 1998-02-23 | 2003-08-18 | 富士通株式会社 | 入出力制御装置およびそのファームウェア更新方法 |
JP2000099270A (ja) * | 1998-09-17 | 2000-04-07 | Alps Electric Co Ltd | 制御情報書き換え可能なディスク駆動装置及びその書き換え方法 |
JP2002041298A (ja) | 2000-05-17 | 2002-02-08 | Fujitsu Ltd | 計算機と資源自動適用処理プログラムと資源自動適用処理プログラムの記録媒体 |
-
2002
- 2002-07-30 JP JP2002221835A patent/JP3708914B2/ja not_active Expired - Fee Related
-
2003
- 2003-04-30 SG SG200302564A patent/SG129246A1/en unknown
- 2003-05-09 CN CN03123527.1A patent/CN1221885C/zh not_active Expired - Fee Related
- 2003-05-15 US US10/438,046 patent/US6996667B2/en not_active Expired - Lifetime
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006127140A (ja) * | 2004-10-28 | 2006-05-18 | Toshiba Corp | ファームウェアの書換方法、ディスクドライブ装置、及び情報処理システム |
JP4575112B2 (ja) * | 2004-10-28 | 2010-11-04 | 株式会社東芝 | ファームウェアの書換方法、ディスクドライブ装置、及び情報処理システム |
US8693130B2 (en) | 2010-01-29 | 2014-04-08 | Kabushiki Kaisha Toshiba | Magnetic disk device and control method thereof, and information processor |
JP2011216183A (ja) * | 2011-07-14 | 2011-10-27 | Toshiba Corp | 磁気ディスク装置、制御方法および情報処理装置 |
JP2016508250A (ja) * | 2012-12-12 | 2016-03-17 | 華為技術有限公司Huawei Technologies Co.,Ltd. | ハードディスクシステム操作方法、ストレージシステム及びプロセッサ |
US10664164B2 (en) | 2012-12-12 | 2020-05-26 | Huawei Technologies Co., Ltd. | Hard disk system operation method, storage system, and processor |
Also Published As
Publication number | Publication date |
---|---|
US6996667B2 (en) | 2006-02-07 |
US20040022096A1 (en) | 2004-02-05 |
CN1472629A (zh) | 2004-02-04 |
CN1221885C (zh) | 2005-10-05 |
JP3708914B2 (ja) | 2005-10-19 |
SG129246A1 (en) | 2007-02-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20080040818A1 (en) | Storage apparatus, firmware renewal method, and control device | |
US8266611B2 (en) | Hard disk drive with disk embedded DOS boot image and firmware download method | |
US7487392B2 (en) | Data storage device, and method for rewriting data in nonvolatile memory | |
US8291190B2 (en) | Disk drive including a host interface supporting different sizes of data sectors and method for writing data thereto | |
JP2005011317A (ja) | ストレージシステムを初期化する方法と装置 | |
JP2011253576A (ja) | 記録媒体制御装置、及びその方法 | |
JP2009110287A (ja) | アクセス制御装置およびアクセス制御方法 | |
US20080126784A1 (en) | Storage apparatus, control method, and control device | |
JP3708914B2 (ja) | ディスク記憶装置において実行されるプログラムを書き換えるための方法及び装置 | |
US8429336B2 (en) | Disk drive and method of changing a program therefor | |
US9389803B2 (en) | Method for controlling interface operation and interface device applying the same | |
JP2015049915A (ja) | 情報記録装置およびデータ復旧方法 | |
JP2002100126A (ja) | 記録再生装置、記憶装置、コンピュータ装置、データ処理方法、プログラム伝送装置 | |
JPH0281130A (ja) | マイクロプログラム更新方式 | |
US20090077368A1 (en) | Controller for a Mass Memory and Method for Providing Data for a Start Process of a Computer | |
US20040225710A1 (en) | Write processing method for stream type commands and medium storage apparatus | |
JP2005189907A (ja) | ディスク装置 | |
JP2009054209A (ja) | 不揮発性半導体メモリ装置を有するディスク・ドライブ装置及びそのディスク・ドライブ装置において不揮発性半導体メモリ装置にデータを格納する方法 | |
JP4575112B2 (ja) | ファームウェアの書換方法、ディスクドライブ装置、及び情報処理システム | |
JPH09312084A (ja) | 情報記録装置 | |
JP2957380B2 (ja) | 磁気ディスク用ヘッド位置づけ制御装置 | |
JP2000267936A (ja) | ディスクサブシステム | |
JPH09274543A (ja) | ディスクアレイ装置 | |
JP2011129221A (ja) | 異なるサイズのデータ・セクタによるインターフェースをサポートするディスク・ドライブ及びそのユーザ・データのバックアップ方法 | |
JPH03129515A (ja) | ディスク装置の二重化制御方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20040924 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050111 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050314 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20050802 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050804 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090812 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090812 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100812 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100812 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110812 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110812 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120812 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120812 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130812 Year of fee payment: 8 |
|
LAPS | Cancellation because of no payment of annual fees |