(57)【特許請求の範囲】
【請求項１】
不揮発性メモリと、マイクロコンピュータとを搭載したディスクドライブ装置であって、
前記不揮発性メモリは、第１のアプリケーションプログラムと第２のアプリケーションプログラムとを格納し、
前記第１のアプリケーションプログラムは、ＡＴＡＰＩ規格に定められた初期化を行う機能を有し、前記不揮発性メモリの書き換え可能な第１の領域に配置され、
前記第２のアプリケーションプログラムは、前記第１の領域とは異なる前記不揮発性メモリの書き換え可能な第２の領域に配置され、
前記不揮発性メモリの書き換え禁止領域に、前記第１、第２のアプリケーションプログラムの正当性を検査するリブートプログラムが配置され、
前記マイクロコンピュータは、前記リブートプログラムに基づいて、前記第１のアプリケーションプログラムの正当性を検査し、前記第１のアプリケーションプログラムが正常であれば前記第１のアプリケーションプログラムを起動させて前記第１のアプリケーションプログラムによってＡＴＡＰＩ規格に定められた初期化を行った後、前記第２のアプリケーションプログラムの正当性を検査し、正常であれば前記第２のアプリケーションプログラムを起動させることを特徴とするディスクドライブ装置。
【請求項２】
不揮発性メモリと、マイクロコンピュータとを搭載したディスクドライブ装置であって、
前記不揮発性メモリは、第１のアプリケーションプログラムと第２のアプリケーションプログラムとを格納し、
前記第１のアプリケーションプログラムは、ＡＴＡＰＩ規格に定められた初期化を行う機能を有し、前記不揮発性メモリの書き換え可能な第１の領域に配置され、
前記第２のアプリケーションプログラムは、前記第１の領域とは異なる前記不揮発性メモリの書き換え可能な第２の領域に配置され、
前記不揮発性メモリの書き換え禁止領域に、前記第１、第２のアプリケーションプログラムの正当性を検査するリブートプログラムが配置され、
前記マイクロコンピュータは、前記リブートプログラムに基づいて、前記第１のアプリケーションプログラムの正当性を検査し、前記第１のアプリケーションプログラムが正常であれば前記第１のアプリケーションプログラムを起動させて前記第１のアプリケーションプログラムによってＡＴＡＰＩ規格に定められた初期化を行い、前記第２のアプリケーションプログラムの起動が必要になると、前記第２のアプリケーションプログラムの正当性を検査し、正常であれば前記第２のアプリケーションプログラムを起動させることを特徴とするディスクドライブ装置。
【請求項３】
不揮発性メモリと、マイクロコンピュータとを搭載したディスクドライブ装置であって、
前記不揮発性メモリは、第１のアプリケーションプログラムと第２のアプリケーションプログラムとを格納し、
前記第１のアプリケーションプログラムは、ＡＴＡＰＩ規格に定められた初期化を行う機能を有し、前記不揮発性メモリの書き換え可能な第１の領域に配置され、
前記不揮発性メモリの書き換え禁止領域に、前記第１、第２のアプリケーションプログラムの正当性を検査するリブートプログラムが配置され、
前記第２のアプリケーションプログラムは、前記第１の領域とは異なる前記不揮発性メモリの書き換え可能な第２の領域に配置され、
前記マイクロコンピュータは、リブートプログラムに基づいて、前記第１のアプリケーションプログラムの正当性を検査し、前記第１のアプリケーションプログラムが正常であれば前記第１のアプリケーションプログラムを起動させて前記第１のアプリケーションプログラムによってＡＴＡＰＩ規格に定められた初期化を行い、前記アプリケーションプログラムのうち、任意の第２のアプリケーションプログラムの起動が必要になると、前記任意の第２のアプリケーションプログラムが配置されたブロックのサム値を検査し、正常であれば前記ブロックに配置された第２のアプリケーションプログラムだけを起動させることを特徴とするディスクドライブ装置。
【請求項４】
不揮発性メモリと、マイクロコンピュータとを搭載したディスクドライブ装置であって、
前記不揮発性メモリは、複数のブロックに分割されており、
前記不揮発性メモリの書き換え可能領域にアプリケーションプログラムが配置され、前記アプリケーションプログラムが格納される先頭のブロックに、前記アプリケーションプログラムを格納するすべてのブロックの先頭と末尾のデータと同じ値である待避データが格納されており、
前記不揮発性メモリの書き換え禁止領域に、前記アプリケーションプログラムの正当性を検査するリブートプログラムが配置され、
前記マイクロコンピュータは、前記リブートプログラムに基づいて、前記待避データと書き換え可能領域の前記アプリケーションプログラムを格納するすべてのブロックの先頭と末尾のデータとを照合し、一致した場合には前記アプリケーションプログラムを起動させることを特徴とするディスクドライブ装置。
【請求項５】
不揮発性メモリと、マイクロコンピュータとを搭載したディスクドライブ装置であって、
前記不揮発性メモリは、複数のブロックに分割されており、
前記複数のブロックのそれぞれは、格納されたデータのサム値によって正当性を検査することが可能とされ、
前記不揮発性メモリの書き換え可能領域にアプリケーションプログラムが配置され、
前記不揮発性メモリの書き換え禁止領域に、前記アプリケーションプログラムの正当性を検査するリブートプログラムが配置され、
前記リブートプログラムが、前記アプリケーションプログラムの正当性を検査する際には、前記アプリケーションプログラムが配置されていないブロックがある場合でも前記アプリケーションプログラムが配置されているブロックのサム値だけ検査し、正常であれば前記アプリケーションプログラムを起動させることを特徴とするディスクドライブ装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、不揮発性メモリを含むマイクロコンピュータを搭載したディスクドライブ装置におけるアプリケーションプログラムのチェック技術に関し、特に、フラッシュメモリなどの不揮発性メモリに格納されたアプリケーションプログラムにおけるサム値チェックに適用して有効な技術に関するものである。
【０００２】
【従来の技術】
本発明者が検討したところによれば、フラッシュメモリが備えられたマイクロコンピュータ、いわゆるフラッシュメモリ内蔵マイコンを搭載したディスクドライブ装置として、ＡＴＡＰＩ（Ａｄｖａｎｃｅｄ  Ｔｅｃｈｎｏｌｏｇｙ  Ａｔｔａｃｈｍｅｎｔ  Ｐａｃｋｅｔ  Ｉｎｔｅｒｆａｃｅ）やＳＣＳＩ（Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅ）などのインタフェース仕様によるＤＶＤ−ＲＯＭ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ−Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）ドライブ装置、ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ−ＲＯＭ）ドライブ装置などがある。
【０００３】
たとえば、フラッシュメモリ内蔵マイコンを搭載したＡＴＡＰＩ  ＤＶＤ−ＲＯＭドライブ装置においては、ホストコンピュータとドライブ装置とをＡＴＡＰＩインタフェースで接続した状態で、ホストコンピュータからアプリケーションプログラムデータをドライブ装置に転送し、フラッシュメモリの書き換えを行う。また、フラッシュメモリの消去および書き込みはフラッシュメモリのブロック毎に一括して行う方法が採られている。
【０００４】
このようなＤＶＤ−ＲＯＭドライブ装置では、フラッシュメモリの書き換え中に電源遮断などの事故が発生した場合に備えて、フラッシュメモリのブロックの一部分を書き換え禁止領域とし、この書き換え禁止領域に、アプリケーションプログラム領域の正当性を検査し、アプリケーションプログラム領域が破壊されていた場合には、ホストコンピュータからアプリケーションプログラムデータを受け取って、アプリケーションプログラム領域を書き換えるプログラムを配置する方式がある。この書き換え禁止領域に配置したプログラムをリブートプログラムと呼ぶ。
【０００５】
たとえば、ブロック０〜３がそれぞれ１ＫＢ、ブロック４が２８ＫＢ、およびブロック６，７が３２ＫＢにそれぞれ割り付けられたフラッシュメモリでは、ブロック０〜３の４ＫＢにリブートプログラムが配置されており、この領域を書き換え禁止領域にする。
【０００６】
また、アプリケーションプログラムはブロック４〜７に配置される。ブロック７の最後には、ブロック４〜７のサム値が格納される。このようなブロック割り当てにおいて、パワーオン時にリブートプログラムは、ブロック４〜７のサム値を計算し、ブロック７に予め格納されているサム値と一致するか比較することによって、ブロック４〜７のアプリケーションプログラムが正しいか否かを検査する。もし、アプリケーションプログラムが正しくない場合は、ホストコンピュータからアプリケーションプログラムデータを受け取って再書き込みを行う。
【０００７】
なお、このようなフラッシュメモリ内蔵マイコンを搭載したＤＶＤ−ＲＯＭドライブ装置などに関する技術としては、たとえば国際公開ＷＯ９７／３８３６７号公報「ディスクドライブ装置及びコンピュータ装置」に記載される技術などが挙げられる。
【０００８】
【発明が解決しようとする課題】
ところが、上記のようなＤＶＤ−ＲＯＭドライブ装置では、次のような問題点があることが本発明者により見い出された。
【０００９】
近年、ＤＶＤ−ＲＯＭドライブ装置の需要の急増化に伴い、ファームウェアのプログラムサイズも大きくなる傾向にあり、このファームウェアのプログラムサイズが大きくなることによってサム値の計算時間も長くなってしまう。
【００１０】
ＤＶＤ−ＲＯＭドライブ装置などのＡＴＡＰＩデバイスは、電源投入時、あるいはホストコンピュータなどからリセット信号を受け取った際にある規定の処理（マスタ／スレーブネゴシエーションなど）を定められた時間内に行うようにＡＴＡＰＩ規格で定められている。
【００１１】
しかしながら、ファームウェアのプログラムサイズが大きくなるとによってサム値の計算に時間がかかってしまうと、前述したＡＴＡＰＩ規格に定められた時間内に、アプリケーションプログラムのサム値を計算した後に該アプリケーションプログラム領域のプログラムを実行することが困難となってしまうという問題がある。
【００１２】
そこで、本発明の目的は、プログラムサイズが大きいアプリケーションプログラムであっても、短時間で確実にＡＴＡＰＩ規格に定められた初期化動作を行うことのできるディスクドライブ装置を提供するものである。
【００１３】
本発明の前記ならびにその他の目的と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【００１４】
【課題を解決するための手段】
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、次のとおりである。
【００１５】
すなわち、本発明によるディスクドライブ装置は、不揮発性メモリに格納されるアプリケーションプログラムを、第１のアプリケーションプログラムと第２のアプリケーションプログラムとに分割し、該第１のアプリケーションプログラムはＡＴＡＰＩ規格に定められた初期化を行う機能を有し、不揮発性メモリの書き換え可能領域に配置され、第２のアプリケーションプログラムは該第１のアプリケーションプログラム以外のすべての機能を有し、不揮発性メモリの書き換え可能領域に配置され、不揮発性メモリの書き換え禁止領域に、第１、第２のアプリケーションプログラムの正当性を検査するリブートプログラムが配置され、リブートプログラムが、第１、第２のアプリケーションプログラムの正当性を検査する際には、最初に第１のアプリケーションプログラムが配置されたブロックのサム値を検査し、該第１のアプリケーションプログラムが正常であれば第１のアプリケーションプログラムを起動させて第１のアプリケーションプログラムによってＡＴＡＰＩ規格に定められた初期化を行った後、第２のアプリケーションプログラムが配置されたブロックのサム値を検査し、正常であれば第２のアプリケーションプログラムを起動させるものである。
【００１６】
また、本発明によるディスクドライブ装置は、不揮発性メモリに格納されるアプリケーションプログラムを、第１のアプリケーションプログラムと第２のアプリケーションプログラムとに分割し、該第１のアプリケーションプログラムは、ＡＴＡＰＩ規格に定められた初期化を行う機能を有し、前記不揮発性メモリの書き換え可能領域に配置され、該第２のアプリケーションプログラムは、第１のアプリケーションプログラム以外のすべての機能を有し、不揮発性メモリの書き換え可能領域に配置され、該不揮発性メモリの書き換え禁止領域に第１、第２のアプリケーションプログラムの正当性を検査するリブートプログラムが配置され、該リブートプログラムが、第１、第２のアプリケーションプログラムの正当性を検査する際には、最初に第１のアプリケーションプログラムが配置されたブロックのサム値を検査し、第１のアプリケーションプログラムが正常であれば第１のアプリケーションプログラムを起動させて第１のアプリケーションプログラムによってＡＴＡＰＩ規格に定められた初期化を行い、第２のアプリケーションプログラムの起動が必要になると、第２のアプリケーションプログラムが配置されたブロックのサム値を検査し、正常であれば第２のアプリケーションプログラムを起動させるものである。
【００１７】
さらに、本発明によるディスクドライブ装置は、不揮発性メモリに格納されるアプリケーションプログラムを、第１のアプリケーションプログラムと第２のアプリケーションプログラムとに分割し、該第１のアプリケーションプログラムは、ＡＴＡＰＩ規格に定められた初期化を行う機能を有し、不揮発性メモリの書き換え可能領域に配置され、該第２のアプリケーションプログラムは、第１のアプリケーションプログラム以外のすべての機能を有し、不揮発性メモリの書き換え可能領域に配置され、不揮発性メモリの書き換え禁止領域に第１、第２のアプリケーションプログラムの正当性を検査するリブートプログラムが配置され、該リブートプログラムが、第１、第２のアプリケーションプログラムの正当性を検査する際には、最初に第１のアプリケーションプログラムが配置されたブロックのサム値を検査し、第１のアプリケーションプログラムが正常であれば第１のアプリケーションプログラムを起動させて第１のアプリケーションプログラムによってＡＴＡＰＩ規格に定められた初期化を行い、アプリケーションプログラムのうち、任意の第２のアプリケーションプログラムの起動が必要になると、任意の第２のアプリケーションプログラムが配置されたブロックのサム値を検査し、正常であれば該ブロックに配置された第２のアプリケーションプログラムだけを起動させるものである。
【００１８】
また、本発明によるディスクドライブ装置は、不揮発性メモリの書き換え可能領域にアプリケーションプログラムが配置され、該アプリケーションプログラムの先頭には、書き換え可能領域のそれぞれのブロックにおける先頭と末尾とに配置された少なくとも１バイトのアプリケーションプログラムの待避データが配置され、不揮発性メモリの書き換え禁止領域に、アプリケーションプログラムの正当性を検査するリブートプログラムが配置され、該リブートプログラムが、アプリケーションプログラムの正当性を検査する際には、待避データと書き換え可能領域のそれぞれのブロックにおける先頭と末尾とに配置された少なくとも１バイトのアプリケーションプログラムデータとが一致するか否かを照合し、一致した場合にはアプリケーションプログラムを起動させるものである。
【００１９】
さらに、本発明によるディスクドライブ装置は、不揮発性メモリの書き換え可能領域にアプリケーションプログラムが配置され、該不揮発性メモリの書き換え禁止領域に、アプリケーションプログラムの正当性を検査するリブートプログラムが配置され、該リブートプログラムが、アプリケーションプログラムの正当性を検査する際には、アプリケーションプログラムが配置されていないブロックがある場合でもアプリケーションプログラムが配置されているブロックのサム値だけ検査し、正常であればブロックに配置された第２のアプリケーションプログラムを起動させるものである。
【００２０】
【発明の実施の形態】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。
【００２１】
（実施の形態１）
図１は、本発明の実施の形態１によるディスクドライブ装置の機能ブロック図、図２は、本発明の実施の形態１によるディスクドライブ装置に設けられたマイクロコンピュータに備えられたフラッシュメモリのメモリマップを示す説明図、図３は、本発明の実施の形態１による起動時のフラッシュメモリにおけるプログラムの起動手順を示すフローチャートである。
【００２２】
本実施の形態１において、ディスクドライブ装置は、たとえば、フラッシュメモリ内蔵マイコンが搭載されたＡＴＡＰＩ  ＤＶＤ−ＲＯＭドライブ装置である。
【００２３】
このディスクドライブ装置は、情報が記憶されているＤＶＤ−ＲＯＭディスク１、および該ＤＶＤ−ＲＯＭディスク１に記憶されている情報を再生するＤＶＤ−ＲＯＭ再生装置２などから構成されている。
【００２４】
ＤＶＤ−ＲＯＭ再生装置２は、ＡＴＡＰＩバスを介して双方向に信号伝送可能にホストコンピュータ３に接続されている。ＤＶＤ−ＲＯＭ再生装置２は、マイクロコンピュータ４、ディジタル信号処理部５、プリアンプ６、ディスクモータ７、モータドライバ８、ピックアップ９、ならびにキャッシュＤＲＡＭ１０などから構成されている。
【００２５】
ＤＶＤ−ＲＯＭディスク１は、ディスクモータ７によって回転駆動される。ピックアップ９は、回転駆動されるＤＶＤ−ＲＯＭディスク１にレーザ光を照射し、その反射光をフォトダイオードからなる受光部で受光して光学変換して、ＤＶＤ−ＲＯＭディスク１に記憶されている情報を読み出す。モータドライバ８は、ディスクモータ７の回転速度を制御する。
【００２６】
また、ディジタル信号処理部５は、データストローブ回路１１、サーボ回路１２、ＤＶＤ用信号処理回路１３、ＲＡＭコントローラ１４、ＣＤ用信号処理回路１５、およびＡＴＡＰＩインタフェース回路１６などから構成されている。
【００２７】
データストローブ回路１１は、データスライス回路、ならびにＰＬＬ（Ｐｈａｓｅ  Ｌｏｃｋｅｄ  Ｌｏｏｐ）回路などから構成され、ピックアップ９から読み出されてプリアンプ６によって増幅された読み出し信号（高周波信号）を、２値（デジタル）化し、その２値化したデータに基づいてＰＬＬクロックを出力する。
【００２８】
サーボ回路１２は、ピックアップ９に備えられたスレッドモータを制御して該ピックアップ９の位置を制御する。ＲＡＭコントローラ１４は、キャッシュＤＲＡＭ１０に対するアクセス制御を行う。
【００２９】
ＡＴＡＰＩインタフェース回路１６は、パーソナルコンピュータなどのホストコンピュータ３に、ディスクドライブ装置などの機器をＡＴＡインタフェースに接続する際に用いられているインタフェースであり、ＡＴＡＰＩインタフェースに準拠したインタフェース制御を行う。
【００３０】
ＤＶＤ用信号処理回路１３、およびＣＤ用信号処理回路１５は、ＥＦＭ復調機能、サブコード復調機能、誤り訂正機能などをそれぞれ有する。ＥＦＭ復調機能は、速度制御機能で検出された同期信号をもとに、ＥＦＭ（Ｅｉｇｈｔ−ｔｏ−Ｆｏｕｒｔｅｅｎ  Ｍｏｄｕｌａｔｉｏｎ）変調されている読み出し信号を復調する。
【００３１】
サブコード復調機能は、ＥＦＭ復調機能に復調された読み出し信号の各フレームに含まれるサブコードを復調する。誤り訂正機能は、Ｃ１，Ｃ２の２系列のリードソロモン符号を組み合わせたＣＩＲＣという誤り訂正符号を用いて行うエラー訂正であり、その誤り訂正符号はフレームのパリティに対応される。
【００３２】
データストローブ回路１１によって２値化されディジタル信号は、ＥＦＭ復調機能、サブコード復調機能によって処理され、かつＣ１，Ｃ２訂正が行われた記録情報は、ＲＡＭコントローラ１４の制御により、キャッシュＤＲＡＭ１０に保持される。
【００３３】
このキャッシュＤＲＡＭ１０に保持された読み出しデータは、単数もしくは複数セクタ単位でＡＴＡＰＩインタフェース回路１６からホストコンピュータ３に出力される。
【００３４】
マイクロコンピュータ４は、フラッシュメモリ（不揮発性メモリ）１７、ＲＡＭ１８、プロセッサ、８ビットタイマ、１６ビットタイマ、Ａ／Ｄ変換器、ＳＣＩ回路、ならびに入出力ポートなどの回路モジュールから構成されている。これら回路モジュールは、アドレスバス、データバスおよび制御信号バスからなる内部バスを共有してなる。
【００３５】
フラッシュメモリ１７は、電気的消去および書き込み可能な不揮発性メモリであり、プロセッサの動作プログラムや定数データを格納するためのメモリである。さらに、フラッシュメモリ１７は、その記憶領域が所定のブロック単位で一括消去可能にされ、ブロック単位でデータを書き換え可能な構成を有する。
【００３６】
プロセッサは、その動作プログラムに従って、プリアンプ６、およびディジタル信号処理部５などを制御する。ＲＡＭ１８はプロセッサのワーク領域などに利用されるワークＲＡＭとされる。
【００３７】
また、プロセッサが、ディジタル信号処理部５にアクセスするためのアクセス制御信号は、該プロセッサから直接出力されるように構成されている。プロセッサは、ＲＡＭコントローラ１４に制御情報を設定し、ＲＡＭコントローラ１４を介して、あるいは直接キャッシュＤＲＡＭ１０をアクセスすることができる。
【００３８】
このように構成されるＤＶＤ−ＲＯＭドライブ装置において、フラッシュメモリ１７には、リブートプログラムＲＰＧと２つに分割されたアプリケーションプログラムＡＰＧ１，ＡＰＧ２とが格納される。
【００３９】
次に、本実施の形態のフラッシュメモリ１７における割り付け方法について、図２のメモリマップの説明図を用いて説明する。
【００４０】
ここでは、フラッシュメモリ１７のメモリ容量が２５６ＫＢであり、図２に示すように、ブロックＥＢ０〜ＥＢ７がそれぞれ４ＫＢ、ブロックＥＢ８が３２ＫＢ、およびブロックＥＢ９〜ＥＢ１１がそれぞれ６４ＫＢに各々割り付けられており、ブロックＥＢ０が書き換え禁止領域であり、ブロックＥＢ２〜ＥＢ１１が書き換え可能領域にされている。
【００４１】
ブロックＥＢ０にはリブートプログラムＲＰＧが格納されている。また、ブロックＥＢ１，ＥＢ２にはアプリケーションプログラム（第１のアプリケーションプログラム）ＡＰＧ１が格納されており、ブロックＥＢ３〜ＥＢ１１にはアプリケーションプログラム（第２のアプリケーションプログラム）ＡＰＧ２が格納されている。
【００４２】
リブートプログラムＲＰＧは、アプリケーションプログラムＡＰＧ１，ＡＰＧ２の正当性を検査するプログラムであり、アプリケーションプログラムＡＰＧ１は、たとえば、ネゴシエーションの処理などの、電源投入などによるリセット後に、ある規定時間以内に実行しなければならない初期動作プログラムである。アプリケーションプログラムＡＰＧ２は、前述したアプリケーションプログラムＡＰＧ１以外のすべてのプログラムである。
【００４３】
また、アプリケーションプログラムＡＰＧ１の最後（ブロックＥＢ２）には、該アプリケーションプログラムＡＰＧ１におけるサム値Ｓ１が格納され、アプリケーションプログラムＡＰＧ２の最後（ブロックＥＢ１１）には、該アプリケーションプログラムＡＰＧ２におけるサム値Ｓ２が格納される。
【００４４】
次に、図２、および図３のフローチャートを用いて、起動時のフラッシュメモリ１７におけるプログラムの起動手順について説明する。
【００４５】
まず、ディスクドライブ装置への電源投入によりリセット信号、あるいはホストコンピュータ３からのリセット信号によるリセットが解除されると（ステップＳ１０１）、ブロックＥＢ１，ＥＢ２に格納されたアプリケーションプログラムＡＰＧ１のサム値を算出する（ステップＳ１０２）。
【００４６】
そして、その算出値とブロックＥＢ２に格納されているサム値Ｓ１とを照合し（ステップＳ１０３）、算出されたサム値と格納されているサム値Ｓ１とが一致するか否かを判断する（ステップＳ１０４）。
【００４７】
このステップＳ１０４の処理において、算出値とサム値Ｓ１とが一致した場合には、初期動作プログラムであるアプリケーションプログラムＡＧＰ１を起動し、ＡＴＡＰＩ規格に定められた初期化を行う（ステップＳ１０５）。
【００４８】
また、ステップＳ１０４に処理において、算出値とサム値Ｓ１とが一致しない場合には、ブロックＥＢ１，ＥＢ２に、アプリケーションプログラムＡＰＧ１の書き換えが行われる（ステップＳ１０６）。
【００４９】
ステップＳ１０５の処理が終了すると、ブロックＥＢ３〜ＥＢ１１に格納されたアプリケーションプログラムＡＰＧ２のサム値が算出され（ステップＳ１０７）、その算出値とブロックＥＢ２に格納されているサム値Ｓ２とが照合される（ステップＳ１０８）。
【００５０】
そして、算出されたサム値と格納されているサム値Ｓ２とが一致するか否かを判断し（ステップＳ１０９）、サム値Ｓ２と算出値とが一致した場合には、アプリケーションプログラムＡＧＰ２が起動し（ステップＳ１１０）、ディスクドライブ装置として機能する。
【００５１】
ここで、アプリケーションプログラムＡＰＧ２は、アプリケーションプログラムＡＰＧ１の実行後に直ちにサム値チェックを行わずに、たとえば、アプリケーションプログラムＡＰＧ２が必要となってから該アプリケーションプログラムＡＰＧ２のサム値チェックを行うようにしてもよい。
【００５２】
あるいは、プリケーションプログラムＡＰＧ２のうち、必要となったアプリケーションプログラムＡＰＧ２が格納されたブロックだけのサム値チェックを行ってもよい。
【００５３】
さらに、ステップＳ１０９の処理において、算出されたサム値とサム値Ｓ２とが一致しない場合には、ブロックＥＢ３〜ＥＢ１１にアプリケーションプログラムＡＰＧ２の書き換えが行われる（ステップＳ１０６）。
【００５４】
それにより、本実施の形態１によれば、アプリケーションプログラムを２つに分割し、リセット後の短い時間に処理する必要のあるＡＴＡＰＩ規格に定められた初期化を行うアプリケーションプログラムＡＧＰ１のサム値を優先してチェックし、最初にアプリケーションプログラムＡＧＰ１だけを実行させることにより、アプリケーションプログラムのプログラムサイズが大きくなっても、ＡＴＡＰＩ規格に規定されている初期化処理を確実に規定時間内で実行することができ、ディスクドライブ装置の信頼性を向上させることができる。
【００５５】
また、本実施の形態１では、アプリケーションプログラムを、リセット後にＡＴＡＰＩ規格に定められた初期化を行うアプリケーションプラグラムＡＰＧ１と、該アプリケーションプログラムＡＰＧ１以外のすべてのプログラムであるアプリケーションプログラムＡＧＰ２とに分割してサム値をチェックする場合ついて記載したが、フラッシュメモリにアプリケーションプログラムが格納されていない未使用領域がある場合には、それら未使用領域のブロックにおけるサム値チェックを行わないようにすることによってもサム値チェックの時間を短縮することができる。
【００５６】
フラッシュメモリのメモリ容量が２５６ＫＢであり、図４に示すように、ブロックＥＢ０〜ＥＢ７がそれぞれ４ＫＢ、ブロックＥＢ８が３２ＫＢ、およびブロックＥＢ９〜ＥＢ１１がそれぞれ６４ＫＢに各々割り付けられており、ブロックＥＢ０が書き換え禁止領域であり、ブロックＥＢ２〜ＥＢ１１が書き換え可能領域にされているものとする。
【００５７】
そして、ブロックＥＢ０にはリブートプログラムＲＰＧが格納され、ブロックＥＢ１〜ＥＢ１０にはアプリケーションプログラムＡＰＧ３が格納されており、残りのブロックＥＢ１１が未使用領域になっている場合、リセットの解除後には、ブロックＥＢ１〜ＥＢ１０に格納されたアプリケーションプログラムＡＰＧ３のサム値のみをチェックし、ブロックＥＢ１１におけＲ８サム値チェックは行わないようにする。
【００５８】
たとえば、アプリケーションプログラムのプログラムサイズが、約１５０ＫＢ程度であった場合、フラッシュメモリのメモリ容量は１２８ＫＢでは不足するので、メモリ容量が２５６ＫＢのフラッシュメモリが用いられることになる。
【００５９】
このような場合には、約１００ＫＢ程度のブロックが未使用領域となり、サム値チェックを不要とすることができるので、アプリケーションプログラムＡＰＧ３のサム値チェックの時間を大幅に短縮することができる。
【００６０】
これによっても、ＡＴＡＰＩ規格に規定されている初期化処理を確実に規定時間内で実行することができ、ディスクドライブ装置の信頼性を向上させることができる。
【００６１】
（実施の形態２）
図５は、本発明の実施の形態２によるディスクドライブ装置に設けられたマイクロコンピュータに備えられたフラッシュメモリのメモリマップを示す説明図である。
【００６２】
本実施の形態２において、ディスクドライブ装置（図１）は、前記実施の形態１と同様に、フラッシュメモリ内蔵マイコンが搭載されたＡＴＡＰＩ  ＤＶＤ−ＲＯＭドライブ装置であり、ＤＶＤ−ＲＯＭディスク１、およびＡＴＡＰＩバスを介して双方向に信号伝送可能にホストコンピュータ３に接続されたＤＶＤ−ＲＯＭ再生装置２などから構成されている。
【００６３】
また、ＤＶＤ−ＲＯＭ再生装置２も、前記実施の形態１と同様にマイクロコンピュータ４、ディジタル信号処理部５、プリアンプ６、ディスクモータ７、モータドライバ８、ピックアップ９、ならびにキャッシュＤＲＡＭ１０などから構成されている。
【００６４】
さらに、マイクロコンピュータ４の内部構成も実施の形態１と同様に、フラッシュメモリ１７、ＲＡＭ１８、プロセッサ、８ビットタイマ、１６ビットタイマ、Ａ／Ｄ変換器、ＳＣＩ回路、ならびに入出力ポートなどの回路モジュールから構成されている。これら回路モジュールは、アドレスバス、データバスおよび制御信号バスからなる内部バスを共有している。
【００６５】
フラッシュメモリ１７には、リブートプログラムＲＰＧとアプリケーションプログラムＡＰＧ４とが格納される。また、フラッシュメモリ１７のメモリ容量は２５６ＫＢであり、図５に示すように、ブロックＥＢ０〜ＥＢ７がそれぞれ４ＫＢ、ブロックＥＢ８が３２ＫＢ、およびブロックＥＢ９〜ＥＢ１１がそれぞれ６４ＫＢに各々割り付けられており、ブロックＥＢ０が書き換え禁止領域であり、ブロックＥＢ２〜ＥＢ１１が書き換え可能領域にされている。
【００６６】
ブロックＥＢ０にはリブートプログラムＲＰＧが格納されている。また、ブロックＥＢ１〜ＥＢ１１には、アプリケーションプログラムＡＰＧ４が格納されている。
【００６７】
リブートプログラムＲＰＧは、アプリケーションプログラムＡＰＧ４の正当性を検査するプログラムであり、アプリケーションプログラムＡＰＧ４は、ディスクドライブ装置のアプリケーションプログラムネゴシエーションの処理などの、電源投入などによるリセット後に、ある規定時間以内に実行しなければならない初期動作プログラムを含む、ディスクドライブ装置におけるすべてのアプリケーションプログラムである。
【００６８】
また、アプリケーションプログラムＡＰＧ４の先頭、すなわちブロックＥＢ１には、それぞれのブロックＥＢ１〜ＥＢ１１に格納されているアプリケーションプログラムＡＰＧ４の先頭と末尾の数バイト（少なくとも１バイト）程度のコピーデータ（待避データ）ＣＤが格納されている。
【００６９】
そして、ディスクドライブ装置に電源が投入された後のリセット信号、あるいはホストコンピュータ３からのリセット信号によるリセットが解除されると、ブロックＥＢ１〜ＥＢ１１毎に、先頭と末尾との予め設定された数バイトのプログラムデータを読み出し、アプリケーションプログラムＡＰＧ４の先頭に格納されているコピーデータＣＤと比較する。
【００７０】
これら数バイトのプログラムデータとコピーデータＣＤとが、それぞれのブロックＥＢ１〜ＥＢ１１において、すべて一致する際には、アプリケーションプログラムＡＧＰ３を起動し、実行させる。
【００７１】
さらに、数バイトのプログラムデータとコピーデータＣＤとが一致しないブロックがある場合には、ブロック単位でアプリケーションプログラムＡＰＧ４の書き換えを行う。
【００７２】
それにより、本実施の形態２においても、アプリケーションプログラムＡＰＧ４のサムチェックが不要となるので、短時間にアプリケーションプログラムＡＰＧ４のチェックを終了することができ、アプリケーションプログラムＡＰＧ４のプログラムサイズが大きくなってもリセット後の短い時間に処理する必要のあるＡＴＡＰＩ規格に定められた初期化を行う確実に規定時間内で実行することができ、ディスクドライブ装置の信頼性を向上させることができる。
【００７３】
以上、本発明者によってなされた発明をその実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【００７４】
たとえば、前記実施の形態においては、ＡＴＡＰＩ  ＤＶＤ−ＲＯＭドライブ装置、ＳＣＳＩ  ＤＶＤ−ＲＯＭドライブ装置を例に説明したが、これに限定されるものではなく、ＡＴＡＰＩ  ＣＤ−ＲＯＭドライブ装置、ＡＴＡＰＩ  ＣＤ−ＲＷドライブ装置、ＳＣＳＩ  ＤＶＤ−ＲＯＭドライブ装置、ＳＣＳＩ  ＣＤ−ＲＯＭドライブ装置、ならびにＳＣＳＩ  ＣＤ−ＲＷドライブ装置などにも効果的である。
【００７５】
【発明の効果】
本願によって開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば、以下のとおりである。
【００７６】
（１）本発明によれば、リセット後の短い時間に処理する必要のあるＡＴＡＰＩ規格に定められた初期化を行う第１のアプリケーションプログラムだけを優先して実行させることにより、プログラムサイズが大きくなっても、ＡＴＡＰＩ規格に規定されている初期化処理を確実に規定時間内で実行することができる。
【００７７】
（２）また、本発明では、未使用領域におけるブロックのサム値チェックを行わずにアプリケーションプログラムを起動させることにより、該アプリケーションプログラムのサム値チェックの時間を大幅に短縮することができる。
【００７８】
（３）さらに、本発明においては、書き換え可能領域のそれぞれのブロックにおける先頭と末尾とに配置された少なくとも１バイトのアプリケーションプログラムの待避データと、それぞれのブロックにおける先頭と末尾とに配置された少なくとも１バイトのアプリケーションプログラムデータとを照合し、一致した場合に該アプリケーションプログラムを起動させるので、アプリケーションプログラムのサムチェックが不要となり、短時間にアプリケーションプログラムのチェックを終了することができる。
【図面の簡単な説明】
【図１】本発明の実施の形態１によるディスクドライブ装置の機能ブロック図である。
【図２】本発明の実施の形態１によるディスクドライブ装置に設けられたマイクロコンピュータに備えられたフラッシュメモリのメモリマップを示す説明図である。
【図３】本発明の実施の形態１による起動時のフラッシュメモリにおけるプログラムの起動手順を示すフローチャートである。
【図４】本発明の他の実施の形態によるディスクドライブ装置に設けられたマイクロコンピュータに備えられたフラッシュメモリのメモリマップの一例を示す説明図である。
【図５】本発明の実施の形態２によるディスクドライブ装置に設けられたマイクロコンピュータに備えられたフラッシュメモリのメモリマップを示す説明図である。
【符号の説明】
１  ＤＶＤ−ＲＯＭディスク
２  ＤＶＤ−ＲＯＭ再生装置
３  ホストコンピュータ
４  マイクロコンピュータ
５  ディジタル信号処理部
６  プリアンプ
７  ディスクモータ
８  モータドライバ
９  ピックアップ
１０  キャッシュＤＲＡＭ
１１  データストローブ回路
１２  サーボ回路
１３  ＤＶＤ用信号処理回路
１４  ＲＡＭコントローラ
１５  ＣＤ用信号処理回路
１６  ＡＴＡＰＩインタフェース回路
１７  フラッシュメモリ（不揮発性メモリ）
１８  ＲＡＭ
ＡＰＧ１  アプリケーションプログラム（第１のアプリケーションプログラム）
ＡＰＧ２  アプリケーションプログラム（第２のアプリケーションプログラム）
ＡＰＧ３  アプリケーションプログラム
ＡＰＧ４  アプリケーションプログラム
ＲＰＧ  リブートプログラム
【図１】
0004095767.tif 000002
【図２】
0004095767.tif 000003
【図３】
0004095767.tif 000004
【図４】
0004095767.tif 000005
【図５】
0004095767.tif 000006