(57)【特許請求の範囲】
【請求項１】
回転駆動されるディスクをアクセスするアクセス手段と、前記アクセス手段とホストとを接続するためのインターフェース回路と、前記アクセス手段の動作を制御すると共に前記インターフェース回路に結合されたマイクロコンピュータと、を含み、
前記インターフェース回路は、前記ホストから供給されるコマンドを受け、
前記マイクロコンピュータは、電気的に書き換え可能な不揮発性メモリと、前記不揮発性メモリにアクセスする中央処理装置と、前記インターフェース回路に接続される第１ポートと、第２ポートと、ブートプログラムを格納したＲＯＭと、を１個の半導体基板に含み、前記インターフェース回路が前記ホストから受けたコマンドに応じた処理を行うように構成され、
前記ディスクから読み取られた情報に処理を施して生成されたデータは、前記インターフェース回路を介して前記ホストに出力されるように構成され、
前記不揮発性メモリは、書き換え禁止領域と書き換え許容領域とを有し、
前記書き換え許容領域は、前記アクセス手段を制御するために前記中央処理装置によって実行されるアクセス制御プログラムを格納し、
前記書き換え禁止領域は、ＡＴＡＰＩ割り込み処理プログラムと、入力制御プログラムとを格納し、
前記中央処理装置は、前記ホストから前記インターフェース回路に供給されるコマンドが所定のコマンドであるか否かを前記ＡＴＡＰＩ割り込み処理プログラムを実行することにより解読し、前記ホストから供給されたコマンドが前記所定のコマンドである場合に、前記所定のコマンドに応じた処理として、前記入力制御プログラムを実行することにより前記ホストから前記インターフェース回路を介して供給される前記書換え許容領域に書き込まれるプログラムを取込み、
前記書き換え禁止領域に書き込まれるプログラムは、前記ＲＯＭに格納されたブートプログラムに基づいて、前記第２ポートを介して書き込むことが可能であることを特徴とするディスクドライブ装置。
【請求項２】
請求項１において、
前記ディスクドライブ装置は、シリアルポートを更に有し、
前記シリアルポートは、前記第２ポートに接続されることを特徴とするディスクドライブ装置。
【請求項３】
請求項１又は２において、
前記マイクロコンピュータは、シリアルコミュニケーションインターフェース回路を更に含み、
前記第２ポートは、前記書換え禁止領域にプログラムを書き込む際に、前記シリアルコミュニケーションインターフェース回路に接続されることを特徴とするディスクドライブ装置。
【請求項４】
請求項１から３の内の何れか一つにおいて、
前記ブートプログラムは、前記第２ポートを介して前記書換え禁止領域に書き込まれるプログラムの取り込み及び前記書換え禁止領域への書き込みを制御するためのプログラムであることを特徴とするディスクドライブ装置。
【請求項５】
請求項１から４の内の何れか一つにおいて、
前記ディスクドライブ装置は、バッファＲＡＭを更に含み、
前記書換え許容領域に書き込まれるプログラムは、前記インターフェース回路を介して前記ホストから前記バッファＲＡＭに転送され、
前記バッファＲＡＭに格納されたプログラムは、前記不揮発性メモリに転送されることを特徴とするディスクドライブ装置。
【請求項６】
請求項５において、
前記書換え禁止領域には、書換え制御プログラムが格納され、
前記中央処理装置は、前記書換え制御プログラムを実行することにより、前記ホストから前記バッファＲＡＭに転送されたプログラムを前記書換え許可領域に書き込むことで前記アクセス制御プログラムの一部又は全部を書き換えることを特徴とするディスクドライブ装置。
【請求項７】
請求項１から６の内の何れか一つにおいて、
前記不揮発性メモリは、フラッシュメモリであることを特徴とするディスクドライブ装置。
【請求項８】
請求項１から７の内の何れか一つにおいて、
前記ディスクは、CD-ＲＯＭ、DVD、DVD-ＲＯＭ、DVD-ＲＡＭ、CDI、DVI、又はMODの何れか一つであることを特徴とするディスクドライブ装置。
【請求項９】
請求項１から８の内の何れか一つにおいて、
前記インターフェース回路は、ＡＴＡＰＩインターフェース仕様を有するものであることを特徴とするディスクドライブ装置。
【請求項１０】
回転駆動されるディスクをアクセスするアクセス手段と、前記アクセス手段とホストとを接続するためのインターフェース回路と、前記アクセス手段の動作を制御すると共に前記インターフェース回路に結合されたマイクコンピュータと、を含み、
前記インターフェース回路は、前記ホストから供給されるコマンドを受け、
前記マイクロコンピュータは、電気的に書き換え可能な不揮発性メモリと、前記不揮発性メモリにアクセスする中央処理装置と、前記インターフェース回路に接続される第１ポートと、第２ポートと、ブートプログラムを格納したＲＯＭと、を１個の半導体基板に含み、前記インターフェース回路が前記ホストから受けたコマンドに応じた処理を行うように構成され、
前記ディスクから読み取られた情報に処理を施して生成されたデータは、前記インターフェース回路を介して前記ホストに出力されるように構成され、
前記不揮発性メモリは、書き換え禁止領域と書き換え許容領域とを有し、
前記書き換え許容領域は、前記アクセス手段を制御するために前記中央処理装置によって実行される第１プログラムを格納し、
前記書き換え禁止領域は、第２プログラムと、第３プログラムとを格納し、
前記ホストから前記インターフェース回路に供給されるコマンドが所定のコマンドであるか否かは、前記第２プログラムにより前記中央処理装置が解読し、
前記中央処理装置は、前記インターフェース回路に供給されたコマンドが前記所定のコマンドである場合に、前記所定のコマンドに応じた処理として、前記第３プログラムを実行することにより前記ホストから前記インターフェース回路に供給される前記書換え許容領域に書き込まれるプログラムを取込み、
前記書き換え禁止領域に格納されるプログラムは、前記ＲＯＭに格納されたブートプログラムに基づいて、前記第２ポートを介して書き込むことが可能であることを特徴とするディスクドライブ装置。
【請求項１１】
請求項１０において、
前記ディスクドライブ装置は、シリアルポートを更に有し、
前記シリアルポートは、前記第２ポートに接続されることを特徴とするディスクドライブ装置。
【請求項１２】
請求項１０又は１１において、
前記マイクロコンピュータは、シリアルコミュニケーションインターフェース回路を更に含み、
前記第２ポートは、前記書換え禁止領域にプログラムを書き込む際に、前記シリアルコミュニケーションインターフェース回路に接続されることを特徴とするディスクドライブ装置。
【請求項１３】
請求項１０から１２の内の何れか一つにおいて、
前記ブートプログラムは、前記第２ポートを介して前記書換え禁止領域に書き込まれるプログラムの取り込み及び前記不揮発性メモリへ書き込まれるプログラムの書き込みを制御するためのプログラムであることを特徴とするディスクドライブ装置。
【請求項１４】
請求項１０から１３の内の何れか一つにおいて、
前記ディスクドライブ装置は、バッファＲＡＭを更に含み、
前記書換え許容領域に書き込まれる書き込み対象プログラムは、前記インターフェース回路を介して前記ホストから前記バッファＲＡＭに転送され、
前記バッファＲＡＭに転送されたプログラムは、前記不揮発性メモリに転送されることを特徴とするディスクドライブ装置。
【請求項１５】
請求項１４において、
前記書換え禁止領域には、第５プログラムが格納され、
前記中央処理装置は、前記第５プログラムを実行することにより、前記ホストから前記バッファＲＡＭに転送されたプログラムを前記書換え許可領域に書き込むことで前記第１プログラムの一部又は全部を書き換えることを特徴とするディスクドライブ装置。
【請求項１６】
請求項１０から１５の内の何れか一つにおいて、
前記不揮発性メモリは、フラッシュメモリであることを特徴とするディスクドライブ装置。
【請求項１７】
請求項１０から１６の内の何れか一つにおいて、
前記ディスクは、ＣＤ−ＲＯＭ、ＤＶＤ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＣＤＩ、ＤＶＩ、又はＭＯＤの内の何れか一つであることを特徴とするディスクドライブ装置。
【請求項１８】
請求項１０から１７の内の何れか一つにおいて、
前記インターフェース回路は、ＡＴＡＰＩインターフェース仕様を有するものであることを特徴とするディスクドライブ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＣＤ−ＲＯＭ（Compact Disk-Read Only Memory）、ＤＶＤ(Digital Versatile Disk,  Digital Video Disk)、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＣＤＩ（Compact Disk-Interactive）、ＤＶＩ（Digital Video Interactive）、又はＭＯＤ（Magneto Optical Disk）等を媒体として用いる記録情報再生装置、この記録情報再生装置を含む情報記録再生装置、そしてそれらを総称するディスクドライブ装置、さらにはディスクドライブ装置を搭載したコンピュータ装置に関し、例えば、パーソナルコンピュータに標準搭載されたＣＤ−ＲＯＭドライブ装置の記録情報再生動作などを制御するプログラムの書き換えを容易化すると共に書き換えの信頼性を向上するのに適用して有効な技術に関する。
【背景技術】
【０００２】
ＣＤ−ＲＯＭドライブ装置などのディスクドライブ装置は、パーソナルコンピュータやゲーム機などとインタフェースされる記録情報再生装置として急速に普及してきた。このＣＤ−ＲＯＭドライブ装置などは、オーディオ用ＣＤプレーヤの規格をベースにしているため、オーディオ用に比べてデータ転送速度やデータアクセス速度を向上させることが要求される。また、データの誤り訂正不能な場合にデータ補間や前値保持などの処理が可能なオーディオ用途に対してパーソナルコンピュータのデータにはそのような処理が無意味であるからデータの誤り訂正能力の強化も必要になる。
【０００３】
そこで、データアクセス速度を高速化するために、ＣＤ−ＲＯＭドライブ装置などでは、ディスクから読み取った情報を増幅するプリアンプの周波数帯域を上げ、ピックアップサーボ回路の強化を行い、ディジタル信号処理回路の動作速度を向上させること等により、ＣＤ−ＲＯＭディスクを通常速度の２倍又は４倍などの速度で回転させながら記録情報を読み取って再生する技術を採用している。更に、２重誤り訂正符合に対し４重の誤り訂正符合を付加して誤り訂正能力を向上させることも行われている。
【０００４】
しかしながら、今日、ＣＤ−ＲＯＭドライブ装置に代表されるように、記録情報再生速度は短期間で高速化に転換されているのが実状である。過去においては、２年以上の周期で標準速（オーディオ用のＣＤ再生時のディスクの線速度）から倍速、倍速から４倍速へと転換されてきた再生速度は、今日では、６倍速から８倍速、８倍速以上へと数カ月単位の周期で急激に転換されようとしている。
【０００５】
このような状況においては、再生速度の高速化に合わせて、プリアンプの周波数帯域やゲインの変更、ピックアップサーボ回路の強化、ディジタル信号処理回路の動作速度の向上、誤り訂正処理の最適化などのために、回路の制御態様若しくは回路定数などの変更をその都度短期間で行わなければならない。
【０００６】
ＣＤ−ＲＯＭドライブ装置等における記録情報再生制御にマイクロコンピュータを利用する場合には、その記録情報再生制御プログラム（定数テーブルなども含む）を変更しなければならない。それらプログラムをマスクＲＯＭで提供する場合には、上記の極端に短い再生速度転換サイクルすなわち製品サイクルでは、マスクパターンの変更が間に合わなくなる。
【０００７】
特許文献１には、光磁気ディスク装置においてディスクの記録情報を再生したりディスクに情報を記録したりするための処理プログラムに対するバグの修正やバージョンアップを容易化するために、書き換え可能なＲＯＭにその処理プログラムを格納する構成が示されている。
【０００８】
すなわち、光磁気ディスク装置はホスト装置に接続されるＳＣＳＩ（Small Computer System Interface）コントローラとこのコントローラに接続されたドライバとを有し、前記コントローラのファームウェア（処理プログラム）は書き換え可能なＲＯＭに格納され、ドライバのファームウェアはＥＥＰＲＯＭ（Electrically Erasable and Programmable ROM）に格納されている。コントローラのファームウェアを書き換える場合は、ホスト装置がコントローラ内のバッファメモリにコントローラ用ファームウェアを転送すると共に、コントローラ内の前記ＲＯＭに格納された書き換えプログラムをコントローラ内のＲＡＭに転送し、次いで、コントローラにコマンドを発行する。コントローラはそのコマンドを受け取ると、前記ＲＡＭに保持されている書き換えプログラムに従って前記ＲＯＭをバッファメモリ内のコントローラ用ファームウェアに書き換える。この書き換えに際して、それまで前記ＲＯＭに格納されていた書き換えプログラムも同時に更新する。ドライバのファームウェアを書き換える場合は、ホスト装置がドライバに対する書き換えプログラムをバッファメモリを介してコントローラのＲＡＭに転送し、また、ドライバのファームウェアをコントローラのバッファメモリに転送する。そしてコントローラのＣＰＵに前記ＲＡＭに格納された書き換えプログラムを実行させる。コントローラのＣＰＵは書き換えプログラムに従ってドライバのファームウェアやアドレスをドライバのＲＡＭに設定した後、ドライバのＣＰＵにコマンドを発行する。ドライバは、通信及び基本的なコマンドをサポートするマスクＲＯＭを有し、前記コマンドを受け取ったドライバ内のＣＰＵはそのマスクＲＯＭのプログラムを実行して、ＥＥＰＲＯＭをＲＡＭ内のドライバ用ファームウェアに書き換える。
【０００９】
しかしながら、上記コントローラ用ファームウェアの書き換えのように、ＲＯＭに格納された書き換えプログラムもコントローラ用ファームウェアと一緒に更新する構成では、ＲＯＭを書き換えている途中で異常があった場合に、ＲＡＭ内の書き換えプログラムが破壊されてしまうと、それ以降、コントローラを正常状態に復旧させるのに手間がかかることが予想される。
【００１０】
また、ドライバのファームウェアを保有するＥＥＰＲＯＭとは別のマスクＲＯＭに、ＥＥＰＲＯＭの書き換え制御プログラムや書き換えのためのインタフェース用のプログラムを格納する構成では、ＥＥＰＲＯＭの他にもマスクＲＯＭが必要になり、システムの物理的な規模を増大させてしまう。しかも、マスクＲＯＭは半導体集積回路化されたマイクロコンピュータ若しくはマイクロプロセッサに外付けされることになるであろうが、その場合には、外付けメモリに対するチップ選択制御等のための論理が増え、この点においてもディスクドライブ装置の物理的な規模が増大すると予想される。
【００１１】
上記従来技術では、ドライバとコントローラのファームウェアを別々の書き換え可能なＲＯＭとＥＥＰＲＯＭに格納している。ドライバ用ファームウェアはドライバに含まれるサーボ制御回路などの特性に応じた制御プログラムとされる。コントローラ用ファームウェアはホスト装置に対応するインタフェース仕様を実現するための制御プログラムとされる。そのように光磁気ディスク装置の処理プログラムを、書き換え可能なＲＯＭとＥＥＰＲＯＭに分割するのは、光磁気ディスク装置の製造段階ではコントローラの制御プログラムをドライバの調整作業に都合のよいインタフェース仕様にそろえて行うことができるようにし、ドライバの制御プログラムを設定した後、最後に目的のホスト装置とのインタフェース仕様に応じてコントローラの制御プログラムを書き換えできるようにするためである。これは、光磁気ディスク装置の調整作業や製品管理などを簡略化し得るように考慮しているためである。しかしながら、コントローラとドライバの制御プログラムをＲＯＭとＥＥＰＲＯＭに分けて格納する構成では、制御プログラムの書き換え手順が複雑で、書き換えにも時間を要することが本発明者によって明らかにされた。
【００１２】
また、コントローラのＲＯＭに対する書き換えプログラムは当該ＲＯＭが保有し、ドライバのＥＥＰＲＯＭに対する書き換えプログラムはマスクＲＯＭが保有している。このため、光磁気ディスク装置の動作中にＣＰＵが暴走すると、当該ディスク装置それ自体に格納されている書き換えプログラムが不所望に実行されて、ＲＯＭやＥＥＰＲＯＭの内容が破壊される虞もある。
【００１３】
【特許文献１】特開平６−１８７１４１号公報
【発明の開示】
【発明が解決しようとする課題】
【００１４】
本発明者はディスクドライブ装置の処理プログラムなどの変更を容易化するために、ディスクドライブ装置それ自体に関する観点と、ホスト装置とのインタフェースの観点から更に検討を行った。
【００１５】
先ず第１には、ディスクドライブ装置の制御に、電気的に消去及び書き込み可能な不揮発性メモリを内蔵したマイクロコンピュータを採用し、その不揮発性メモリに、ディスクドライブ装置のためのアプリケーションプログラムと共に、ダウンロードされたアプリケーションプログラムを取り込み制御する入力制御プログラムを格納し、更に必要な場合には書き換え制御プログラムも格納することについて検討した。ここで、前記アプリケーションプログラムは、ディスクアクセスのための処理プログラム（アクセス制御プログラム）と、ディスクドライブ装置のための外部インタフェース処理プログラム（インタフェース処理プログラム）とを含むプログラムである。
【００１６】
その場合、更に解決しなければならない幾つかの課題のあることが本発明者によって明らかにされた。
【００１７】
その一つは、書き換え制御プログラム及び入力制御プログラムをディスクドライブ装置それ自体が保有する場合、アプリケーションプログラムの書込みに際して書き換え制御プログラム及び入力制御プログラムが、復旧不可能な状態に破壊若しくは消失することがあってはならないということである。書き換え制御プログラム又は入力制御プログラムが破壊若しくは消失すると、その後、アプリケーションプログラムの書き換えを行うことが難しくなる。
【００１８】
また、マイクロコンピュータの不揮発性メモリそれ自体が保有している書き換え制御プログラム及び入力制御プログラムは信頼性が高くなければならないということである。
【００１９】
第２には、ディスクドライブ装置がパーソナルコンピュータなどのコンピュータ装置に標準搭載される状況を考慮し、前記アプリケーションプログラムなどを容易に変更できるようにすることについて検討した。
【００２０】
今日パーソナルコンピュータ（単にＰＣとも記す）等のコンピュータ装置におけるハードディスクインタフェースの殆どはＩＤＥ（Integrated Device Electronics）に準拠し、ＰＣ（Personal Computer）ボード上に複数のＩＤＥインタフェースポート（例えば４個）を持っている。ＩＤＥについては日経エレクトロニクス（日経ＢＰ社１９９４年６月６日発行）第６７頁〜第９６頁に記載がある。この明細書では、FAST  ATA、Enhanced  IDE、Extended  IDEなどの呼称がある所謂拡張ＩＤＥの概念などもＩＤＥに含むものとして用いる。ＩＤＥインタフェース仕様ではインタフェースケーブルの長さが極端に制限されており、通常はＰＣの筐体内部に搭載した周辺機器とのインタフェースに利用できる程度である。今日ではＰＣの拡張スロット若しくはドライブベイにＣＤ−ＲＯＭドライブ装置が標準搭載されているものが殆どであるが、それ以前はオプションとして外付けされるのが一般的であり、このため、そのインタフェース仕様は当初、ＳＣＳＩ若しくはＳＣＳＩ２に準拠されて発展してきた。
【００２１】
しかしながら、ＳＣＳＩインタフェースはオプションとしての性格が根強く、ＳＣＳＩインタフェースによるＣＤ−ＲＯＭドライブ装置の接続にはＳＣＳＩインタフェースボード若しくはＳＣＳＩインタフェースＰＣカードなどが特別に必要になり、全体としてコストの上昇を招いてしまう。一般的に、ＩＤＥコントローラＬＳＩ（Large Scale Integrated circuits）はＳＣＳＩコントローラＬＳＩに比べて安価である。
【００２２】
そこで登場するのがＡＴＡＰＩ(ATA Packet Interface)インタフェースであり、ＰＣボードとのインタフェース仕様はＩＤＥ準拠で、コマンドはＳＣＳＩ若しくはＳＣＳＩ２準拠とされる。これにより、ＰＣにＣＤ−ＲＯＭドライブ装置を搭載するのにそれ専用の特別なインタフェース回路を必要とせず、更に、ＳＣＳＩインタフェース時代に標準的に用いられてきたＳＣＳＩ準拠のコマンドをそのまま流用できる。即ち、ＣＤ−ＲＯＭドライブ装置に関する過去のソフトウェア資産を承継しながら、拡張ＩＤＥのような新しいインタフェースへ移行でき、しかもコストの低減を図ることができるようになる。これにより、ＰＣに標準搭載されるＣＤ−ＲＯＭドライブ装置のインタフェース仕様のほとんど全てがＡＴＡＰＩインタフェース仕様（ＩＤＥの拡張仕様）を採用するに至っている。
【００２３】
多くのＰＣメーカが上述のようにＡＴＡＰＩインタフェースを利用してＣＤ−ＲＯＭドライブ装置をＰＣに標準搭載する場合、ＣＤ−ＲＯＭ再生速度の転換サイクルが極端に短い状況では、ＣＤ−ＲＯＭドライブ装置の評価期間が長くなると、ＰＣメーカにとっては再生速度の速いＣＤ−ＲＯＭドライブ装置を搭載したＰＣを効率的に市場に投入できなくなる。
【００２４】
ＰＣメーカにおけるＣＤ−ＲＯＭドライブ装置の評価期間が長くなると予想される原因は幾つかある。
【００２５】
第１には、ＡＴＡＰＩ対応ＣＤ−ＲＯＭドライブ装置はＰＣに標準搭載されるから、ＣＤ−ＲＯＭドライブ装置を取り外すにはＰＣの筐体を分解することが必要になるからである。
【００２６】
第２には、極端に短い再生速度転換サイクル故に、ドライブメーカにとってもＣＤ−ＲＯＭドライブ装置の処理プログラムに対する開発期間が短くなり、バグの修正が度重なる場合も多くなることが予想されるからである。
【００２７】
第３には、極端に短い再生速度転換サイクル故に、ドライブメーカは、前記アプリケーションプログラムの性能向上が間に合わないため、ハードウェアのみ先行させてＰＣメーカに送り、後付けでアプリケーションプログラムを段階的にＰＣメーカに送り、ドライブを完成させることが必要になるからである。例えば２４倍速のＣＤ−ＲＯＭドライブの場合、ドライブメーカは同一ハードウェアで２０倍速再生までのアプリケーションプログラムをＰＣメーカに送り、次に、２４倍速でアクセス速度の速いアプリケーションプログラムを送り、最後に、そのアプリケーションプログラムの論理的に不十分な点を改善若しくはチューニングした高い性能のアプリケーションプログラムを送る、というような段階的な処置が施される。或いは、２４倍速ＣＤ−ＲＯＭドライブを想定すると、最低の１倍速と最高の２４倍速再生のためのアプリケーションプログラムを送り、それらに対する中間の倍速に関しては段階的にアプリケーションプログラムを完成させてＰＣメーカに提供するといったことが行われる。
【００２８】
第４には、ＡＴＡＰＩインタフェースを採用したＣＤ−ＲＯＭドライブ装置がＰＣに標準搭載されると、そのＣＤ−ＲＯＭドライブ装置は特定のＰＣに専用化されるので、当該ＣＤ−ＲＯＭドライブ装置の前記アプリケーションプログラムの内容がＰＣの機種若しくはＰＣメーカ毎に個別化される傾向が強くなるからである。例えば、ドライブメーカは、標準使用のＣＤ−ＲＯＭドライブ装置をＰＣメーカにサンプル出荷してくる場合が多いが、ＰＣメーカのドライブ仕様がメーカ毎に異なっている場合には、ドライブの仕様追加が必要になる。ＰＣメーカ毎に異なる仕様の一例として、偏心や面ぶれなどを生じているディスクに対する再生制御手法がある。偏心や面ぶれを生じているディスクに対して、通常ＣＤ−ＲＯＭドライブ装置はディスクが読めるところまで、自動的に再生速度を落とす。しかし、この後、いつ再生速度を上げるかは、ＰＣメーカの仕様によって異なっており、次のリードコマンドを受信したところで、再生速度を元に戻す場合もあれば、そのディスクについては再生速度を上げない場合もある。更に、ベンダーユニークコマンドを利用して再生速度を元に戻す場合もある。或いはディスクに対する線速度一定と角速度一定とを混在させて再生制御することも行われており、角速度一定と線速度一定の制御を切り換える態様も区々になっている。
【００２９】
また、ＡＴＡＰＩ対応ＣＤ−ＲＯＭドライブ装置を標準搭載したＰＣがエンドユーザに渡った後、再生速度の向上及びＣＤ―Ｒ（Compact disc-Recordable）ディスクの普及等により、全てのディスクを再生できるとは限らない状況も生じてくる。このような場合にも、エンドユーザ側で前記アプリケーションプログラムを効率的に更新できることが望ましい。
【００３０】
このように、ＣＤ−ＲＯＭドライブ装置における再生速度の転換サイクルが極端に短くされ、また、ＣＤ−ＲＯＭドライブ装置がＰＣに標準搭載される状況下において、ドライブメーカはＰＣメーカ毎に相違する仕様の前記アプリケーションプログラムを短期間で作成しなければならない。ＰＣメーカにとっては、ＣＤ−ＲＯＭドライブ装置の評価を短期間で済まさなければならず、評価期間を通じてドライブメーカからアプリケーションプログラムのバグの修正を受けながら、ＰＣ上でＣＤ−ＲＯＭドライブ装置の評価を効率的に行うことが絶対的に必要とされる。したがって、ＣＤ−ＲＯＭドライブ装置のアプリケーションプログラムの修正を効率的に行えるようにするという要請は、極めて高くなっている。
【００３１】
本発明の目的は、ディスクドライブ装置のディスクアクセス及びインタフェース制御用の処理プログラムを含むアプリケーションプログラムの全部又は一部を効率的に修正できるようにすることである。
【００３２】
本発明の別の目的は、ディスクドライブ装置の物理的な規模を増大させることなく前記アプリケーションプログラムの全部又は一部を容易に書き換えることができるディスクドライブ装置を提供することにある。
【００３３】
本発明の更に別の目的は、前記アプリケーションプログラムの書き換えの信頼性を向上できるディスクドライブ装置を提供することにある。
【００３４】
本発明の更に別の目的は、記録情報再生装置やディスクドライブ装置のハードウェアの量産を先行させ、出荷直前まで前記アプリケーションプログラムの全部又は一部を修正でき、開発期間を短縮できるディスクドライブ装置を提供することにある。
【００３５】
本発明のその他の目的は、同一ハードウェアによって他品種展開が容易なディスクドライブ装置を提供することにある。
【００３６】
本発明の更にその他の目的は、ディスクドライブ装置が組み込まれた状態でも（当該装置を取り外すことなく）、記録情報再生装置やディスクドライブ装置の前記アプリケーションプログラムの全部又は一部を変更できるパーソナルコンピュータ等のコンピュータ装置を提供することにある。
【００３７】
また、本発明は、再生速度の転換サイクルが極端に短い状況下でも、再生速度の速いディスクドライブ装置を標準搭載したコンピュータ装置を効率的に市場に投入できるようにすることにある。
【００３８】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【００３９】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
【００４０】
すなわち、ディスクドライブ装置の制御に、電気的な消去及び書き込み可能な不揮発性メモリを内蔵したマイクロコンピュータを採用し、その不揮発性メモリが、アプリケーションプログラム領域にディスクアクセス及びインタフェース制御用の処理プログラムを含むアプリケーションプログラムを保有し、また、そのアプリケーションプログラムの全部又は一部を更新するのに利用されるリブートプログラムをリブートプログラム領域に保有する。
【００４１】
更に詳しくは、ディスクドライブ装置は、回転駆動されるディスクをアクセスするアクセス手段と、前記アクセス手段に接続され外部とインタフェースされるインタフェース回路と、前記アクセス手段の動作を制御すると共に前記インタフェース回路に結合されたマイクロコンピュータとを含む。前記マイクロコンピュータは、電気的に書き換え可能な不揮発性メモリと、この不揮発性メモリをアクセスする中央処理装置とを含む。前記不揮発性メモリはその記憶領域に、リブートプログラム領域とアプリケーションプログラム領域とを有する。前記アプリケーションプログラム領域は、前記アクセス手段及び前記インタフェース回路を制御するために前記中央処理装置によって実行されるアプリケーションプログラムの格納領域を有する。前記リブートプログラム領域は、前記中央処理装置に、前記アプリケーションプログラム領域を書き換えるための処理を実行させるリブートプログラムが格納される領域を有する。前記中央処理装置は、外部から前記インタフェース回路に供給されるアプリケーションプログラム領域の書き換えコマンドに応答して前記リブートプログラムを実行しアプリケーションプログラム領域の全部又は一部の書き換えを行い、また、外部から前記インタフェース回路に供給されるディスクアクセスコマンドに応答して前記アプリケーションプログラム領域中の前記アプリケーションプログラムを実行し前記アクセス手段及びインタフェース回路を制御する。
【００４２】
前記アプリケーションプログラムとは、記録情報再生制御プログラムなどのアクセス制御プログラムとディスクドライブ装置の外部インタフェース制御用のインタフェース制御プログラムとを含む動作プログラムを意味する。アクセス制御プログラムは、ディスクの速度制御や記録情報の再生速度に応じた信号処理などを制御する。インタフェース制御プログラムは、ディスクアクセスのための外部インタフェース制御を行う。前記アプリケーションプログラム領域の書き換えは、アプリケーションプログラムの一部（アクセス制御プログラム又はインタフェース制御プログラムのいずれか一方）を対象にしても、全部（アクセス制御プログラム及びインタフェース制御プログラムの双方）を対象にしてもよい。また、アプリケーションプログラムが複数個のプログラムモジュール（例えば複数個のサブルーチン）を含む場合に、一部のプログラムモジュールを書き換えの対象にすることも可能である。例えば、アプリケーションプログラムを書きかえる（更新する）とき、前記アクセス制御プログラム又はインタフェース制御プログラムにおいて、修正が施された一方のプログラムだけを書き換えるようにしてもよい。
【００４３】
上記により、ディスクドライブ装置にマイクロコンピュータが実装された後も、当該マイクロコンピュータ内蔵の前記不揮発性メモリにアプリケーションプログラムを書き込み、或いはアプリケーションプログラムの一部又は全部を書き換えることができる。これにより、今後極めて短いサイクルで生ずるであろう、再生速度転換時期等に応じてに、再生速度の向上に応じ必要な修正を加えたアプリケーションプログラムの全部又は一部を書き換えるだけで、ディスクドライブ装置における再生速度の転換に即座に若しくはタイムリーに対応できる。
【００４４】
前記不揮発性メモリの書き換え対象はアプリケーションプログラム領域とされる。リブートプログラム領域は書き換え対象ではないから、不揮発性メモリの書き換え動作途中で異常があった場合にも、再度リブートプログラムを実行すれば、すぐにアプリケーションプログラム領域に対する再書き込み動作に移行でき、書き換え途中における異常状態からの復旧に手間取ることはない。ディスクドライブ装置における処理プログラムの書き換え対象は前記不揮発性メモリだけであるから、書き換えの制御手順を簡素化でき、しかも書き換え時間も短縮できる。更に、半導体集積回路化されたはマイクロコンピュータに、ディスクドライブ装置の処理プログラムを保有する前記不揮発性メモリがに内蔵されている場合、ディスクドライブ装置の物理的な規模が増大するのを抑えて、上記作用を得ることができる。
【００４５】
前記リブートプログラムは、入力制御プログラム、書き換え制御プログラム及び転送制御プログラムを含むことができる。このとき、前記書き換えコマンドに応答する前記中央処理装置は、前記入力制御プログラムを実行することにより外部から前記インタフェース回路に供給される全部又は一部のアプリケーションプログラムをバッファＲＡＭなどに取り込み、前記転送制御プログラムを実行することにより前記書き換え制御プログラムを前記リブートプログラム格納領域から前記マイクロコンピュータの内蔵ＲＡＭに転送する。中央処理装置は、前記内蔵ＲＡＭに転送された書き換え制御プログラムを実行することにより前記取り込まれた全部又は一部のアプリケーションプログラムを前記アプリケーションプログラム領域に書込み制御する。これによれば、アプリケーションプログラム領域の更新に当たって、ホスト装置は前記不揮発性メモリに対する書込みコマンドに続けてアプリケーションプログラム領域に書き込むべき全部又は一部のアプリケーションプログラムをディスクドライブ装置に転送すればよく、書き換え制御プログラムを転送する必要はないから、アプリケーションプログラム領域を更新する処理時間を更に短縮することができる。
【００４６】
前記リブートプログラムは、入力制御プログラム及び転送制御プログラムを含むことができる。このとき、前記書き換えコマンドに応答する前記中央処理装置は、前記入力制御プログラムを実行することにより外部から前記インタフェース回路に供給される前記アプリケーションプログラム及び書き換え制御プログラムを取り込み、前記転送制御プログラムを実行することにより前記取り込まれた書き換え制御プログラムをマイクロコンピュータの内蔵ＲＡＭに転送する。前記中央処理装置は、前記内蔵ＲＡＭに転送された書き換え制御プログラムを実行することにより、前記取り込まれた全部又は一部のアプリケーションプログラムを前記アプリケーションプログラム領域に書込み制御する。これによれば、不揮発性メモリはその書き換え制御プログラムを保有しないから、中央処理装置が暴走して不揮発性メモリに格納されているプログラムを不所望に実行することがあっても、当該不揮発性記憶装置が誤ってか書き換えられる虞は全くない。
【００４７】
前記リブートプログラム領域は、ベクタテーブルとリセット処理プログラムの格納領域とを更に有することができる。このとき、前記中央処理装置は、リセットの指示に応答して前記ベクタテーブルを参照することにより前記リセット処理プログラムの実行に移行し、リセット処理プログラムの実行途上では前記書き換えコマンドに応答し得る強制リブート状態か否かを判定する。強制リブート状態のとき、中央処理装置は、前記書き換えコマンドの入力を待って前記リブートプログラムの実行に遷移する。強制リブート状態でないとき、中央処理装置は前記アプリケーションプログラム領域のプログラムを実行可能な状態に遷移する。これによれば、不揮発性メモリの書き換えに際して異常が起きても、リセットをかけて強制リブート状態の指示を行えば、その異常から容易に復旧して、不揮発性メモリを書き換える処理に戻ることができる。この点においても、アプリケーションプログラム領域を更新する処理時間の短縮に寄与できる。
【００４８】
前記アプリケーションプログラム領域は、その一部の記憶領域に、その他の記憶領域が保有する情報のサム値を格納するサム値格納領域を有することができ、前記リブートプログラム領域は、ベクタテーブルとリセット処理プログラムの格納領域とを更に有することができる。このとき、前記中央処理装置は、リセットの指示に応答して前記ベクタテーブルを参照することにより前記リセット処理プログラムの実行に移行し、リセット処理プログラムの実行途上では前記書き換えコマンドに応答し得る強制リブート状態か否かを判定する。強制リブート状態のとき、中央処理装置は、前記書き換えコマンドの入力を待って前記リブートプログラムの実行に遷移する。強制リブート状態でないとき、中央処理装置は、前記サム値格納領域に格納されているサム値が、前記その他の記憶領域が保有する情報のサム値に一致するかを判定する。中央処理装置は、判定結果が不一致の場合には前記書き換えコマンドの入力を待って前記リブートプログラムの実行に遷移し、前記判定結果が一致の場合には前記アプリケーションプログラム領域のプログラムを実行可能な状態に遷移する。これによれば、ホスト装置や、ディスクドライブ装置の異常によって前記アプリケーションプログラム領域のプログラムが不所望に書き換えられたとき、強制リブート状態が指示されなくても、リセットされるだけで、自己診断的に、中央処理装置の動作を、アプリケーションプログラム領域に対する書き換え可能な状態に遷移させることができ、ディスクドライブ装置の誤動作を未然に防止することができる。
【００４９】
前記不揮発性メモリとして、一括消去単位とされる複数個のメモリブロックを有するフラッシュメモリを採用することができる。このとき、前記リブートプログラム領域と前記アプリケーションプログラム領域とを相互に異なるメモリブロックに割り当てることにより、アプリケーションプログラム領域に対する消去動作を効率化できる。
【００５０】
前記リブートプログラム領域に対するプログラムの初期的な書込み動作の信頼性は、そのプログラムの性質上良好であることが望ましく、それを保証するには、前記マイクロコンピュータの製造工程でリブートプログラム領域にプログラムを書き込むことができる。
【００５１】
リブートプログラムの不所望な消失防止に万全を期するには、前記リブートプログラム領域の書き換えを禁止する手段を設ければよい。
【００５２】
前記インタフェース回路に、ＡＴＡＰＩインタフェース仕様を採用することができる。これによれば、ＳＣＳＩインタフェース仕様等のディスクドライブ装置に関して蓄積された過去のソフトウェア資産を承継しながら、拡張ＩＤＥのような新しいインタフェースへ容易に移行でき、しかもコストの低減を図ることができる。
【００５３】
そのようなディスクドライブ装置を備えたコンピュータ装置は、バスに接続されたマイクロプロセッサと周辺インタフェースコントローラとを含むメインボードを有し、前記インタフェースコントローラにディスクドライブ装置のインタフェース回路が接続されている。前記バスに例えばＰＣＩバスを採用し、前記インタフェースコントローラにＩＤＥインタフェースコントローラを含む、パーソナルコンピュータのようなコンピュータ装置に、ディスクドライブ装置を標準搭載する場合、ディスクドライブ装置のインタフェース回路に前記ＡＴＡＰＩインタフェース回路を採用することができる。コンピュータ装置にディスクドライブ装置が標準搭載される場合、メインボードとディスクドライブ装置は殆どの場合一つの筐体に組み込まれる。
【００５４】
ディスクドライブ装置のアプリケーションプログラム領域の書き換えにおいては、コンピュータ装置のメインボードをホスト装置とし、このホスト装置を介してディスクドライブ装置のアプリケーションプログラムを全部又は一部だけ書き換えることができる。したがって、ディスクドライブ装置をコンピュータ装置から取り外すことなく、前記マイクロプロセッサを利用して、ディスクドライブ装置のアプリケーションプログラムを変更できる。
【００５５】
したがって、ディスクドライブ装置における再生速度の転換サイクルが極端に短くされ、ディスクドライブ装置がコンピュータ装置に標準搭載され、それによってドライブメーカはコンピュータ装置メーカ毎に相違する仕様でディスクドライブ装置のディスクアクセス及びインタフェース制御用のアプリケーションプログラムを作成しなければならない状況下において、コンピュータ装置メーカは、ディスクドライブ装置の評価期間を通じてドライブメーカからアプリケーションプログラムに関するバグの修正や追加機能を受けながらコンピュータ装置に組みこまれたままの状態でディスクドライブ装置の評価を行うことができる。前述のディスクドライブ装置は、アプリケーションプログラム領域に対する書き換え処理の能率化、書き換え処理中における異常状態から速やかに復旧して書き換え処理に戻れるなどの手段が講じられているから、ディスクドライブ装置の評価期間を通じて、マイクロコンピュータに内蔵された不揮発性メモリに、修正されたアプリケーションプログラムを効率的に再インストールすることができる。よって、コンピュータ装置メーカはディスクドライブ装置の評価期間を短期できる。
【００５６】
これにより、ディスクドライブ装置における再生速度の転換サイクルが極端に短くされている状況下において、コンピュータ装置メーカは、より再生速度の速いディスクドライブ装置を標準搭載したコンピュータ装置を効率的に市場に投入できるようになる。
【００５７】
また、記録情報再生制御プログラムのようなアクセス制御プログラムやインタフェース制御プログラムを含むアプリケーションプログラムはインタネット等の通信手段でディスクドライブ装置の製造又はその販売会社からコンピュータ装置メーカ又はその販売会社に、或いはコンピュータ装置メーカ又はその販売会社からコンピュータ装置の使用者に供給することも可能である。これによれば、コンピュータ装置メーカ又はその販売会社或いはコンピュータ装置の使用者に瞬時に前記アプリケーションプログラムを送ることができる。このとき、上記ディスクドライブ装置やこれを搭載したコンピュータ装置を使用すれば、その使用者側で、それら装置の記録情報再生速度などの機能を即座にバージョンアップすることができる。すなわち、使用者側での製品の機能変更が容易になる。
【発明の効果】
【００５８】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記の通りである。
【００５９】
すなわち、ディスクドライブ装置のディスクアクセス及びインタフェース制御用の処理プログラムを含むアプリケーションプログラムの全部又は一部を効率的に修正できる。
【００６０】
ディスクドライブ装置の物理的な規模を増大させることなく前記アプリケーションプログラムの全部又は一部を容易に書き換えることができる。前記アプリケーションプログラムの書き換えの信頼性を向上できる。
【００６１】
記録情報再生装置やディスクドライブ装置のハードウェアの量産を先行させ、出荷直前まで前記アプリケーションプログラムの全部又は一部を修正でき、開発期間を短縮できる。
【発明を実施するための最良の形態】
【００６２】
《ＣＤ−ＲＯＭドライブ装置》
図１には本発明の一例に係るＣＤ−ＲＯＭドライブ装置がホスト装置と共に示されている。図１において１で示されるものは、ＣＤ−ＲＯＭディスク（単にディスクとも称する）であり、記録密度を上げるため、信号の記録速度がディスクの内周、外周の位置にかかわらず一定であるＣＬＶ（Constant Liner Velocity）方式によって情報が記録されている。このディスク１は、特に制限されないが、１シンボル（１シンボル＝１バイト）のサブコード情報、２４シンボルのデータ及び８シンボルのパリティーを１フレームとし、このフレーム毎に同期信号が付加されて構成されている。そのようなフレームの情報は特に制限されないが、ＥＦＭ（Eight to Fourteen Modulation）変調されている。ＥＦＭ変調は、１シンボル８ビットのデータを１４ビットに変換する処理である。更に変換後の直流成分を除去するために３ビットのマージンビットが付加され、ＮＲＺＩ変調が行われている。また、フレームはインタリーブされている。
【００６３】
図１に示されるＣＤ−ＲＯＭドライブ装置２は、ホスト装置３からのアクセス若しくはデータ転送要求をＡＴＡＰＩインタフェース回路４から受けると、マイクロコンピュータ５が、その要求に応ずるための制御を行う。マイクロコンピュータ５によって制御されるＣＤ−ＲＯＭドライブ装置２の動作の概略は次の通りとされる。すなわち、ディスク１から光学的に情報が読み取られ、読み取られた情報はディジタル信号処理回路７で復号及びエラー訂正などが行われ、復号及びエラー訂正された情報は、ＣＤ−ＲＯＭやＣＤ−Ｉなどの所定のフォーマットに従って、ディジタル信号処理回路７からバス８を介してＣＤ−ＲＯＭデコーダ９に与えられる。ＣＤ−ＲＯＭデコーダ９はこれに与えられた情報に対して同期信号検出、デインタリーブ、付加ＥＣＣ誤り訂正等の処理を施し、ホスト装置が要求するデータをＡＴＡＰＩインタフェース回路４を介してホスト装置３に出力する。
【００６４】
次に、ＣＤ−ＲＯＭドライブ装置２の各部について詳細に説明する。
【００６５】
前記ディスク１はディスクモータ１０によって回転駆動される。ピックアップ１１は、回転駆動されるディスク１にレーザ光を照射し、その反射光をフォトダイオードから成る受光部で受光して光電変換し、これによって、ディスク１に記録されている情報を読み出す。スレッドモータ１２はピックアップ１１をディスク１の半径方向に移動させる。ローディングモータ１３はディスク１が載置される図示しないトレーを移動させる。
【００６６】
前記ディジタル信号処理回路７は、その動作プログラムに従ってディジタルフィルタ、ＥＦＭ復調、Ｃ１，Ｃ２誤り訂正、ディジタルサーボ、速度制御等の機能を実現する。ディジタルサーボの機能は、スレッドモータ１２を制御してピックアップ１１の位置を制御する。速度制御の機能はディスクモータ１０の回転速度を制御する。Ｃ１，Ｃ２誤り訂正機能は、Ｃ１，Ｃ２の２系列のリードソロモン符号を組み合わせたＣＩＲＣ（Cross Interleaved Read-Solomon Code）という誤り訂正符号を用いて行うエラー訂正であり、その誤り訂正符号は前記フレームのパリティーに対応される。
【００６７】
ピックアップ１１から読み出された信号（高周波信号）はプリアンプ１４により増幅され、ディジタル信号処理回路７に供給される。この読み出し信号は、ディジタル信号処理回路７によって実現されるディジタルフィルタによって２値化され、ディジタル信号とされる。このディジタル化された読み出し信号は、速度制御及びＥＦＭ復調機能によって順次処理される。速度制御機能は、ディスク１の回転速度を検出し、所定の速度でディスク１を回転させるようにディスクモータ１０を制御することである。また、速度制御の機能は、読み出し信号から同期信号を検出する機能を含む。ＥＦＭ復調機能は、速度制御機能で検出された同期信号をもとに、ＥＦＭ変調されている読み出し信号を復調することである。また、復調された読み出し信号の各フレームに含まれるサブコードは、信号７００によってマイクロコンピュータ５のＳＣＩ（シリアル・コミュニケーション・インタフェース）回路５０に与えられる。マイクロコンピュータ５は、入力されたサブコードに対してその動作プログラムによりサブコード信号処理を行う。すなわち、与えられたサブコードを例えば９８フレーム分を一単位として組み立てて、それに含まれる時間情報やインデックス情報などを認識し、ディスクモータ１０やスレッドモータ１２などを制御するための制御情報をディジタル信号処理回路７に与える。
【００６８】
ディジタル信号処理回路７で復調され且つＣ１，Ｃ２訂正が行われた記録情報はバス８を介してＣＤ−ＲＯＭデコーダ９に与えられる。ＣＤ−ＲＯＭデコーダ９に与えられるデータは、例えば２３３６バイト毎の物理セクタで区切られた物理フォーマットが規格化されている。例えばＣＤ−ＲＯＭ規格では、各セクタは、同期信号１２バイト、ヘッダ４バイト、及びユーザデータから成る。ユーザデータの領域に対しては、Ｃ１，Ｃ２誤り訂正によっても訂正できない誤りを訂正可能にするためのＥＣＣのような付加誤り訂正符号を有する規格がある。ＣＤ−ＲＯＭデコーダ９は、ＲＡＭコントローラ９０、誤り訂正回路９１、及び同期信号検出・デインタリーブ回路９２を備え、バッファＲＡＭ１６に接続されている。ＲＡＭコントローラ９０は、バッファＲＡＭ１６に対するメモリコントローラである。同期信号検出・デインタリーブ回路９２はバス８から順次供給されるセクタ毎のデータから同期信号を検出してデインタリーブ処理を行う。誤り訂正回路９０は、Ｃ１，Ｃ２訂正によっても訂正しきれない誤りのあるデータに対して付加誤り訂正符号により誤り訂正を行う。デインタリーブされ、また誤り訂正されたデータは、ＲＡＭコントローラ９０の制御によって逐次バッファＲＡＭ１６に保持される。バッファＲＡＭ１６に保持された読み出しデータは、単数若しくは複数セクタ単位でＡＴＡＰＩインタフェース回路４からホスト装置３に与えられる。
【００６９】
ＡＴＡＰＩインタフェース回路４は、コマンドバッファ４０及びプロトコルシーケンス制御回路４１を備える。プロトコルシーケンス制御回路４１はＡＴＡＰＩインタフェースの規格に準拠したインタフェース制御を行う。ＡＴＡＰＩインタフェースは、パーソナルコンピュータの主体を成すマイクロプロセッサにハードディスク装置などをインタフェースするのに用いられている既存のＩＤＥインタフェースコントローラを介してＣＤ−ＲＯＭドライブ装置を制御可能にするためのインタフェース仕様である。このＡＴＡＰＩインタフェースにおいては、ＳＣＳＩ２の仕様に準拠したコマンドがパケットとしてＣＤ−ＲＯＭドライブ装置に与えられ、これによって、ＣＤ−ＲＯＭドライブ装置が制御される。このようなＡＴＡＰＩインタフェースの仕様の詳細は、米国の外部記憶装置の業界団体SSF（Small Form Factor）Committeeの所属会社によって策定された「ATA Packet Interface for CD-ROM Revision 1.2」などがある。前記コマンドバッファ４０はホスト装置３から送られてくるコマンドを保持する。
【００７０】
《マイクロコンピュータ》
前記マイクロコンピュータ５は、中央処理装置（ＣＰＵ）５１、８ビットタイマ５２，５３、１６ビットタイマ５４、Ａ／Ｄ変換器５５、ＳＣＩ回路５０、フラッシュメモリ５６、ＲＡＭ５７及び入出力ポート５９を単結晶シリコンのような１個の半導体基板に備え、特に制限されないが、それら回路モジュールが内部バス５８を共有して成る。電気的消去及び書き込み可能な不揮発性半導体メモリとしての前記フラッシュメモリ５６は前記ＣＰＵ５１の動作プログラムや定数データを格納するためのメモリとされ、ＣＰＵ５１はその動作プログラムに従って、前記プリアンプ１４、ディジタル信号処理回路７、ＣＤ−ＲＯＭデコーダ９、及びＡＴＡＰＩインタフェース回路４などを制御する。ＲＡＭ５７はＣＰＵ５１のワーク領域等に利用されるワークＲＡＭとされる。
【００７１】
フラッシュメモリ５６は、その記憶領域が所定のブロック（メモリブロック）単位で一括消去可能にされ、ブロック単位でデータを書き換え可能な構成を有する。そのようなフラッシュメモリは公知であるから、詳細な説明は省略するが、そのメモリセルトランジスタは、浮遊ゲートと制御ゲートを持つ２層ゲート構造の絶縁ゲート型電界効果トランジスタにより構成される。メモリセルトランジスタへの情報の書込み動作は、例えば制御ゲート及びドレインに高圧電圧を印加して、アバランシェ注入によりドレイン側から浮遊ゲートに電子を注入することで実現でき、この書込み動作によりメモリセルトランジスタは、その制御ゲートからみたしきい値電圧が、書込み動作を行わなかった消去状態のメモリセルトランジスタに比べて高くされる。一方消去動作は、例えばソースに高圧電圧を印加して、トンネル現象により浮遊ゲートからソース側に電子を引き抜くことによって実現され、それによってメモリセルトランジスタは、その制御ゲートからみたしきい値電圧が低くされる。書込み並びに消去状態の何れにおいてもメモリセルトランジスタのしきい値電圧は正の電圧レベルにされる。すなわちワード線から制御ゲートに与えられるワード線選択レベルに対して、書込み状態のしきい値電圧は高くされ、消去状態のしきい値電圧は低くされる。双方のしきい値電圧とワード線選択レベルとがそのような関係を持つことによって、選択トランジスタを採用することなく１個のトランジスタでメモリセルを構成することができる。メモリセルトランジスタに対する消去動作並びに書込み動作のための制御手法は、現在種々の態様が実現されており、ソースが共通接続されたメモリセルトランジスタに対して一括消去を行うもの、或いは、制御ゲートが共通接続されたメモリセルトランジスタに対して一括消去を行うものがある。そのような態様によってブロック単位での一括消去が可能にされている。消去ブロックの指定は消去ブロック指定レジスタに対する制御データの設定で指示することができる。また、フラッシュメモリに対する動作、すなわち、消去、消去ベリファイ、書き込み、書き込みベリファイ、読み出し等の動作は、フラッシュメモリのモードレジスタに対する制御情報の設定で指示される。それら設定は、中央処理装置５１がその動作プログラムに従って行う。
【００７２】
前記内部バス５８は、アドレス、データ及び制御信号のためのバスを総称する。内部バス８に含まれるデータバスやアドレスバスは前記ＣＤ−ＲＯＭデコーダ９及びＡＴＡＰＩインタフェース回路４に接続される。また、ＣＰＵ５１が前記ＣＤ−ＲＯＭデコーダ９及びＡＴＡＰＩインタフェース回路４をアクセスするためのアクセス制御信号５１０は、特に制限されないが、中央処理装置５１から直接出力されるように図示されており、そのようなアクセス制御信号５１０は、リード信号、ライト信号、チップイネーブル信号などとされる。これによってＣＰＵ５１は、コマンドバッファ４０をアクセスし、また、ＲＡＭコントローラ９０に制御情報を設定し、またＲＡＭコントローラ９０を介し或いは直接、バッファＲＡＭ１６をアクセスすることができる。
【００７３】
前記１６ビットタイマ５４はディスク１に対するピックアップ１１の線速度を学習するための情報を得る。
【００７４】
図１において９３で示されるものはＣＤ−ＲＯＭデコーダ９からＣＰＵ５１に与えられる割込み信号であり、例えば前記付加誤り訂正コードによっても訂正不能な誤りを生じたことを通知する割込み信号などとされる。４２で示されるものはＡＴＡＰＩインタフェース回路４からＣＰＵ５１に与えられる割込み信号であり、例えば、ホスト装置３からコマンドバッファ４０にコマンドが供給されたことを通知する割込み信号である。信号５０１で示されるものはプリアンプ１４の特性を制御するための制御情報であり、５０２で示されるものはディジタル信号処理回路７におけるディジタルフィルタ、Ｃ１，Ｃ２誤り訂正、ディジタルサーボ、及び速度制御の各機能を制御するための制御情報である。それら情報は入出力ポート５９から出力される。
【００７５】
《再生速度の転換に応じた回路特性の変更》
ＣＤ−ＲＯＭドライブ装置２において、記録情報再生速度（即ちディスク１からの記録情報の読み取り速度）の高速化は、ＣＤ−ＲＯＭドライブ装置２の内部回路の特性変更を伴う。即ち、第１には、ディスクモータ１０やスレッドモータ１２の回転速度などを高速化しなければならない。第２に、それに応じてディジタルサーボやディジタルフィルタの係数を変更しなければならない。第３に、読み取り速度の高速化によってＣ１，Ｃ２誤り訂正に費やせる時間が短くされるので、Ｃ１，Ｃ２誤り訂正能力を変更（低下）したプログラムを採用しなければならない。例えば４倍速のとき最大６シンボル訂正まで可能なとき、６倍速ではそれを最大４シンボル訂正まで訂正能力を下げるようにする。第４に、読み取り速度の高速化によって読み取り信号周波数が高くなるのでプリアンプ１４のゲインや周波数帯域等の特性を変更しなければならない。第１乃至第３の変更点に対しては、当然ディジタル信号処理回路７の動作周波数も高速化しなければならない。第１乃至第３の修正点に対する対処はハードウェアの変更によらず、ＣＰＵ５１の動作プログラムの変更によって容易に対処できる。第４の修正点に対しては、プリアンプ１４が有する図示しない加算及び波形等化器の周波数特性を４倍速、６倍速、８倍速そしてそれ以上に最適に対応できるよう切り換える回路を予め持つことにより、その特性をＣＰＵ５１の動作プログラムによって切り換えて対処できる。斯る周波数特性の切換えは、加算及び波形等化された信号の２値化精度を向上させるために必要とされる。例えば、オペアンプを主体とする加算回路の帰還系に配置した波形等化フィルタの抵抗及び容量の値をスイッチを介して選択する構成によって、周波数特性を最適に切り換えることができる。
【００７６】
ＣＤ−ＲＯＭドライブ装置２における記録情報再生動作及び外部インタフェース動作は、ＣＰＵ５１がアプリケーションプログラムに含まれる記録情報再生制御プログラム及びインタフェース制御プログラムを実行して制御する。例えば記録情報再生速度を４倍速とする場合には４倍速用の記録情報再生制御プログラムを採用し、記録情報再生速度を８倍速とする場合には８倍速用の記録情報再生制御プログラムを採用する。この説明において、記録情報再生制御プログラムとは、ディスクモータなどに対するサーボ制御、ディジタル信号処理回路７に対する動作制御、ＣＤ−ＲＯＭデコーダ９等のための動作プログラムを総称する。前記インタフェース制御プログラムとは、ＡＴＡＰＩインタフェース回路４に対するコマンドやデータのインタフェース制御などを実現する処理プログラムを総称する。したがって、ＣＤ−ＲＯＭドライブ装置２において、アプリケーションプログラムは、ディスクに記録された情報を再生してホスト装置３に再生情報を与えるための処理プログラムを総称する。
【００７７】
《ユーザプログラム領域の書き換えによる再生速度転換への対処》
図２に例示されるように、前記フラッシュメモリ５６はその記憶領域にリブートプログラム領域５６０とアプリケーションプログラム領域（以下ユーザプログラム領域とも称する）５６１とを有する。ユーザプログラム領域５６１はアプリケーションプログラムＭ２を格納するための領域とされる。前記リブートプログラム領域５６０は、入力制御プログラムＭ１、消去／書込み制御プログラムＭ３，転送制御プログラムＭ４などを格納する領域とされる。
【００７８】
入力制御プログラムＭ１は、外部からＡＴＡＰＩインタフェース回路４に供給された書込み若しくは書き換え対象とされる全部又は一部のアプリケーションプログラムを例えばバッファＲＡＭ１６に取り込むために前記ＣＰＵ５１が実行するインタフェース用のプログラムとされる。消去／書込み制御プログラムＭ３は、バッファＲＡＭ１６に取り込まれた前記全部又は一部のアプリケーションプログラムを前記ユーザプログラム領域５６１に書込み制御するためにＣＰＵ５１が実行する書き換え制御プログラムとされる。転送制御プログラムは、リブートプログラム領域５６０に格納されている消去／書込み制御プログラムＭ３をＣＰＵがワークＲＡＭ５７に転送制御するプログラムとされる。ＣＰＵ５１はワークＲＡＭ５７に転送された消去／書込み制御プログラムＭ３を実行して、ユーザプログラム領域５６１にバッファＲＡＭ１６内の全部又は一部のアプリケーションプログラムＭ２を書き込みすることになる。
【００７９】
前記リブートプログラム領域５６０は更に、ベクタアドレスが格納されるベクタテーブル５６０Ａとそのベクタテーブル５６０Ａのベクタアドレスによって参照される所定のプログラムの格納領域５６０Ｂとを含む。前記ベクタテーブル５６０Ａは、リセットベクタＢＣＴ１及びＡＴＡＰＩ割込みベクタＢＣＴ２などを含む。プログラムの格納領域５６０Ｂはリセット処理プログラムＰＲＧ１及びＡＴＡＰＩ割込み処理プログラムＰＲＧ２などを含む。
【００８０】
前記リセット処理プログラムＰＲＧ１は前記リセットベクタＢＣＴ１によって参照される。即ち、パワーオンリセット又はハードウェア若しくはソフトウェアリセットの指示があると、ＣＰＵ５１は前記リセットベクタＢＣＴ１を読込み、それによって指示される前記リセット処理プログラムＰＲＧ１の先頭アドレスにその処理を分岐させる。
【００８１】
図３にはリセット処理のフローチャートが示される。リセット処理では先ず内部の初期化若しくは内部回路の初期設定が行われる（Ｓ１）。特にマイクロコンピュータ５はその後、アプリケーションプログラムのオンボード書き込み若しくは書き換えを行うか否か、即ちユーザリブートモードか否かを判定する（Ｓ２）。この例では、ユーザリブートモードの起動条件は、特に制限されないが、ＣＤ−ＲＯＭドライブ装置２の電源投入時に所定のスイッチ例えばディスクのイジェクトスイッチを押すこととされる。イジェクトスイッチなどを操作して指示されるユーザリブートモードを、特に強制リブートモードとも称する。前記強制リブートモードでなければ、前記アプリケーションプログラムＭ２の実行に移る（Ｓ３）。前記ユーザリブートモードの場合には、リブートフラグがセット状態にされ（Ｓ４）、その後、ＡＴＡＰＩ割込みを待つことになる（Ｓ５）。リブートフラグは例えばＣＰＵ５１に含まれる図示を省略するフラグ若しくはコントロールレジスタの所定の１ビットが割り当てられる。
【００８２】
前記ＡＴＡＰＩ割込み処理プログラムＰＲＧ２は前記ＡＴＡＰＩ割込みベクタＢＣＴ２によって参照される。すなわち、ＡＴＡＰＩプロトコルにおいてＡＴＡＰＩインタフェース回路４に供給される一連の情報の先頭にはコマンドが配置されている。コマンドはコマンドバッファ４０に取り込まれる。コマンドがコマンドバッファ４０に取り込まれると、ＡＴＡＰＩインタフェース回路４は割込み信号４２によってその旨をＣＰＵ５１に通知する。ＣＰＵ５１はＡＴＡＰＩ割込みを受け付けると、ＡＴＡＰＩ割込みベクタＢＣＴ２を参照してＡＴＡＰＩ割込み処理プログラムＰＲＧ２にその処理を分岐させる。
【００８３】
図４にはＡＴＡＰＩ割込み処理プログラムのフローチャートが示される。ＣＰＵ５１は、ＡＴＡＰＩ割込みがあると、コマンドバッファ４０からコマンドをリードし、それを解読する（Ｓ１０）。そして、前記リブートフラグを検査する。リブートフラグがセット状態でない場合には、そのコマンドの解読結果に従って、アプリケーションプログラムＭ２に含まれる所定の処理ルーチンを実行し、例えばディスク１から記録情報を読み出すための記録情報再生制御を開始する（Ｓ１２）。前記リブートフラグがセット状態の場合に、そのコマンドが所定のコマンド（ベンダーユニークコマンド）である場合には、記録情報再生制御プログラムをオンボード書き込みするためのリブートプログラムが実行される。
【００８４】
この例において、前記リブートプログラムの実行とは、前記ＣＰＵ５１が、前記入力制御プログラムＭ１を実行して、ホスト装置３からＡＴＡＰＩインタフェース回路４に供給された記録情報再生制御プログラムをバッファＲＡＭ１６に格納すると共に、前記転送制御プログラムＭ４を実行して消去／書込み制御プログラムＭ３を前記ワークＲＡＭ５７に転送した後、ワークＲＡＭ５７が保有する消去／書込み制御プログラムＭ３を実行して、バッファＲＡＭ１６内の全部又は一部のアプリケーションプログラムをユーザプログラム領域５６１に書き込み制御することである。尚、前記ベンダーユニークコマンドは、特に制限されないが、ＡＴＡＰＩインタフェース仕様において規格化されていない（若しくは未使用の）コード情報とされる。
【００８５】
図２において、ユーザプログラム領域５６１に格納されるアプリケーションプログラムＭ２は、メインプログラムとサブルーチンに分けられた処理プログラム及び分岐先サブルーチンのプログラムアドレスを与える２次ベクタテーブルなどによって構成されている。図３のＳ２においてユーザリブートモードでないことが判定された後、ＣＰＵ５１の図示しないプログラムカウンタは、アプリケーションプログラムＭ２における処理プログラムの先頭アドレスに強制され、これによって、そのプログラムアドレスを起点にアプリケーションプログラムを実行する。
【００８６】
前記フラッシュメモリ５６は、図５に例示されるように、一括消去単位とされる複数個のメモリブロック（ＢＬＫ０〜ＢＬＫｎ）を有する。このとき、前記リブートプログラム領域５６０及びユーザプログラム領域５６１を、相互に異なるメモリブロックに割り当てる。例えば、メモリブロックＢＬＫ０がリブートプログラム領域５６０に割り当てられている。
【００８７】
消去／書込み制御プログラムＭ３はユーザプログラム領域５６１だけを書込み対象とする。即ち、図５に従えば、消去／書込み制御プログラムＭ３は、その制御動作上、消去／書込みブロック指定レジスタに対して、メモリブロックＢＬＫ０を消去・書込み対象とすることはない。換言すれば、消去／書込み制御プログラムＭ３は、リブートプログラム領域５６０を書込み対象とはしない。この意味において、リブートプログラム領域５６０の書き換えが阻止されている。
【００８８】
前記リブートプログラム領域５６０が保有しているプログラムは、ＡＴＡＰＩインタフェース回路４を介して書き換えすることができないから、初期的な書込みの信頼性が高くなければならない。それを保証するには、特に制限されないが、マイクロコンピュータの製造工程でそれらプログラムを書き込むことが望ましい。
【００８９】
図６にはマイクロコンピュータの製造工程が概略的に示される。例えば多数のマスクパターンを利用して単結晶シリコンウェーハ上にマイクロコンピュータを構成する回路を集積したウェーハを製作する（ステップＰ１）。製作されたウェーハに対してウェーハ検査が行われ（ステップＰ２）、そしてウェーハ上の回路機能に対するプローブ検査が行われ、ウェーハ上のマイクロコンピュータチップに対する良否が判定される（ステップＰ３）。プローブ検査の後、ダイシングによってウェーハから複数個のマイクロコンピュータチップが切り出され、良品チップがボンディングやパッケージングの工程を経て組み立てられる（ステップＰ４）。組み立て後、雰囲気温度や動作電圧を許容限度の上限としてマイクロコンピュータを動作させ、近い将来に生ずるであろう不良を予じめ顕在化させるためのエージングを行なう（ステップＰ５）。エージングの後、テスタを使ってマイクロコンピュータＬＳＩの選別を行なう（ステップＰ６）。この選別工程には、内蔵フラッシュメモリ５６に対する消去、書込みテストが含まれる。この工程を利用して、リブートプログラム領域に前記消去／書込み制御プログラム等のリブートプログラムの書込みを行なう。書込みされたリブートプログラムに対しては、その動作テストを併せて行なうことも容易である。選別工程を経た後、マイクロコンピュータＬＳＩはストックされ、出荷前に出荷検査が行なわれ（ステップＰ７）、検査で不都合のないものが出荷される（ステップＳ８）。
【００９０】
上述の様に、消去／書込み制御プログラムＭ３はリブートプログラム領域５６０を消去／書込み対象とはしない。これは所謂、ソフトウェアプロテクトである。ＣＰＵが暴走したり或いはユーザプログラムの不備によって、リブートプログラム領域５６０が不所望に消去・書込みされないようにするために、ハードウェアプロテクトの手段を備えることができる。
【００９１】
図７にはハードウェアプロテクトのための一例が示される。図７において５６２は一括消去対象とするメモリブロックを指定する消去ブロック指定レジスタである。例えば図５に対応させれば、消去ブロック指定レジスタ５６２は、メモリブロックＢＬＫ０〜ＢＬＫｎに１対１対応される制御ビットＥＳ０〜ＥＳｎを有し、制御ビットＥＳ０〜ＥＳｎは論理値１によって対応メモリブロックの消去をフラッシュメモリ５６に指示する。５６３は、消去ブロック指定レジスタ５６２による消去指示に拘らず消去を禁止するメモリブロックを指定するための消去禁止ブロック指定レジスタである。例えば図５に対応させれば、消去禁止ブロック指定レジスタ５６３は、メモリブロックＢＬＫ０〜ＢＬＫｎに１対１対応される制御ビットＩＨ０〜ＩＨｎを有し、制御ビットＩＨ０〜ＩＨｎは論理値０によって対応メモリブロックの消去を禁止する。消去ブロック指定レジスタ５６２と消去禁止ブロック指定レジスタ５６３との対応ビットは夫々２入力アンドゲートＡＮＤ０〜ＡＮＤｎに供給され、アンドゲートＡＮＤ０〜ＡＮＤｎの出力が、フラッシュメモリ５６に対する消去ブロック指示情報として供給される。消去ブロック指定レジスタ５６２及び消去禁止ブロック指定レジスタ５６３の双方に対するデータ設定はＣＰＵ５１が行なう。特に、消去禁止ブロック指定レジスタ５６３に対するデータ設定はイニシャライズリセットで行なうことができる。例えば、ＩＨ０を論理値０に設定する。この構成によれば、消去／書込み制御プログラムＭ３の実行中にＣＰＵ５１が暴走したとき、レジスタ５６３の値が不所望に書き換えられない限り、レジスタ５６２の値が変化されても、ブートプログラム領域５６０は消去されない。
【００９２】
図８にはハードウェアプロテクトを実現するための別の例が示されている。図８において５６２は図７と同じ消去ブロック指定レジスタである。５６４は、マイクロコンピュータ５の外部端子Ｔ０〜Ｔｉから供給されるデータをデコードして、メモリブロック単位の消去禁止信号を出力する。前記消去ブロック指定レジスタ５６２は内部バス５８を介しＣＰＵ５１によってデータ設定される。内部バス５８と消去ブロック指定レジスタ５６２の入力との間には、２入力アンドゲートＡＮＤ０〜ＡＮＤｎが配置されている。アンドゲートＡＮＤ０〜ＡＮＤｎの一方の入力には、内部バス５８の信号線がビット毎に供給され、他方の入力には前記消去禁止信号がビット毎に供給される。したがって、論理値０の消去禁止信号が供給されるアンドゲートの出力は常時論理値０にされるから、そのアンドゲートの出力に対応される消去ブロック指定レジスタの制御ビットは論理値１（消去指示レベル）にされることはない。例えば、メモリブロックＢＬＫ０がリブートプログラム領域に割り当てられるとき、アンドゲートＡＮＤ０の出力が常時論理値０になるように外部端子Ｔ０〜Ｔｉをプルアップ又はプルダウンしておけば、ＣＰＵ５１が暴走した場合もリブートプログラム領域５６０が書き換えられる虞は全くない。
【００９３】
以上説明したように、前記マイクロコンピュータ５がＡＴＡＰＩインタフェース回路４やＣＤ−ＲＯＭデコーダ９などと一緒に配線基板（ボード）に実装されて構成されたＣＤ−ＲＯＭドライブ装置２において、リセット時に前記強制リブートモードを設定することにより、当該マイクロコンピュータ５のＣＰＵ５１は内蔵フラッシュメモリ５６のリブートプログラムを実行して、ユーザプログラム領域の５６１のアプリケーションプログラムＭ２の全部又は一部を、ホスト装置３からＡＴＡＰＩインタフェース回路４に供給される新たなプログラムに更新することができる。これにより、今後極めて短いサイクルで生ずるであろう、再生速度転換時期に、再生速度の向上に応じて必要な修正を加えたアプリケーションプログラムＭ２の全部又は一部を書き換えるだけで、ＣＤ−ＲＯＭドライブ装置２におけるそのような再生速度の転換に即座に若しくはタイムリーに対応できることになる。アプリケーションプログラムの書き換え若しくは更新は、アプリケーションプログラムの全部であることに限定されず、その一部であってもよい。アプリケーションプログラムに含まれる再生制御プログラムだけ書き換え対象としてもよい。要するに、必要な修正がアプリケーションプログラムの全体に及べばその全体を、また、必要な修正がアプリケーションプログラムの一部で済めば当該一部を書き換えればよい。
【００９４】
このとき、前記フラッシュメモリ５６の書き換え対象はユーザプログラム領域５６１とされる。リブートプログラム領域５６０は書き換え対象ではないから、フラッシュメモリ５６の書き換え動作途中で異常があった場合にも、再度リブートプログラムを実行すれば、すぐにユーザプログラム領域５６１に対する再書き込み動作に移行でき、書き換え途中における異常状態からの復旧に手間取ることはない。
【００９５】
ＣＤ−ＲＯＭドライブ装置２においてアプリケーションプログラムＭ２を格納しているのは前記フラッシュメモリ５６だけであるから、書き換えの制御手順を簡素化でき、しかも書き換え時間も短縮できる。更に、アプリケーションプログラムとリブートプログラムは一緒にフラッシュメモリ５６に格納されるから、夫々のプログラムが別々のメモリに格納される場合に比べて、ＣＤ−ＲＯＭドライブ装置２の物理的な規模の増大を極力抑制して上記効果を得ることができる。
【００９６】
上記の例ではリブートプログラムは、入力制御プログラム、書き換え制御プログラム及び転送制御プログラムを含んでいる。したがって、ユーザプログラム領域５６１の更新に当たって、ホスト装置３は前記フラッシュメモリ５６に対する書込みコマンドに続けてユーザプログラム領域５６１に書き込むべきアプリケーションプログラムをＣＤ−ＲＯＭドライブ装置２に転送すればよく、書き換え制御プログラムを転送する必要はないから、ユーザプログラム領域５６１を更新する処理時間を更に短縮することができる。
【００９７】
前記リブートプログラム領域５６０は、リセットベクタＢＣＴ１とリセット処理プログラムＰＲＧ１の格納領域とを有している。このとき、前記ＣＰＵ５１は、リセットの指示に応答して前記リセットベクタＢＣＴ１を参照することにより前記リセット処理プログラムＰＲＧ１の実行に移行する。リセット処理プログラムＰＧＲ１の実行途上ではイジェクトスイッチが押されたか否かによって、ホスト装置３からの書き換えコマンドに応答し得る強制リブートモードであるか否かを判定する。強制リブートモードのときは、前記書き換えコマンドの入力を待って前記リブートプログラムの実行に遷移し、強制リブート状態でないときは前記ユーザプログラム領域のアプリケーションプログラムを実行可能な状態に遷移する。したがって、フラッシュメモリ５６の書き換えに際して異常が起きても、リセットをかけて強制リブートモードの指示を行えば、その異常から容易に復旧して、フラッシュメモリ５６を書き換える処理に戻ることができる。この点においても、ユーザプログラム領域を更新する処理時間を短縮することができる。
【００９８】
前記フラッシュメモリ５６は一括消去単位とされる複数個のメモリブロックＢＬＫ０〜ＢＬＭｎを有している。このとき、前記リブートプログラム領域と前記ユーザプログラム領域とを相互に異なるメモリブロックに割り当てているから、ユーザプログラム領域５６１に対する消去動作を効率化できる。換言すれば、ユーザプログラム領域５６１に書き換えに当たって当該領域の消去動作を一緒に行うことができる。
【００９９】
ホスト装置３とのインタフェースにＡＴＡＰＩインタフェース回路４を採用するから、ＣＤ−ＲＯＭドライブ装置２は、ＳＣＳＩインタフェース仕様等のディスクドライブ装置に関して蓄積された過去のソフトウェア資産を承継しながら、拡張ＩＤＥのような新しいインタフェースを採用でき、しかもコストの低減を図ることができる。前記ＡＴＡＰＩインタフェース仕様は、パーソナルコンピュータ等の分野で広く普及しているＩＤＥインタフェースに準拠しているから、ユーザプログラム領域５６１の書き換えに際して、ＣＤ−ＲＯＭドライブ装置メーカはその生産ライン上のホストシステムを利用できる。また、パーソナルコンピュータのセットメーカは、ＣＤ−ＲＯＭドライブ装置をパーソナルコンピュータに組み込んだままの状態で、当該パーソナルコンピュータを利用して再生制御プログラムの書き換えを行うことができる。
【０１００】
《パーソナルコンピュータ》
図９には前記ＣＤ−ＲＯＭドライブ装置２を内蔵したパーソナルコンピュータ３０の一例が示されている。このパーソナルコンピュータ３０において、マイクロプロセッサ３１は、特に制限されないが、ＰＣＩ（Peripheral Component Interconnect）バスコントローラ３２を介してＰＣＩバスの規格に準拠した内部バス（ＰＣＩバス）３３に接続されている。前記内部バス３３には周辺コントローラとして代表的に示されたＩＤＥインタフェースコントローラ３４が結合され、前記ＣＤ−ＲＯＭドライブ装置２は、インタフェースケーブルとしてのＡＴＡＰＩバス３５を介して前記ＩＤＥインタフェースコントローラ３４に結合されている。前記ＩＤＥインタフェースコントローラ３４はハードディスク装置３６と内部バス３３とのインタフェース制御も行う。前記マイクロプロセッサ３１、ＰＣＩバスコントローラ３２、内部バス３３及びＩＤＥインタフェースコントローラ３４はＰＣボード（メインボード）３７を構成する。前記ＰＣボード３７、ＣＤ−ＲＯＭドライブ装置２及びハードディスク装置３６は共通のケース（筐体）に内蔵されいる。尚、図示は省略するが、前記ＰＣボード上にはその他の周辺コントローラとして、グラフィックアクセラレータ、プリンタなどとのパラレルインタフェースを行うセントロニクスインタフェースコントローラ、及びフロッピーディスクドライブ装置とのインタフェース制御を行うフロッピーディスクコントローラ等が内部バス３３に接続されて実装されている。図９を図１に対応させると、図１のホスト装置３は、図９のパーソナルコンピュータ３０においてＣＤ−ＲＯＭドライブ装置２を除いた部分になる。
【０１０１】
前記パーソナルコンピュータ３０においては、ＣＤ−ＲＯＭドライブ装置２とＩＤＥインタフェースコントローラ３４との接続状態を変更することなく、若しくはＣＤ−ＲＯＭドライブ装置２をパーソナルコンピュータ３０の筐体から取り外すことなく、前記マイクロプロセッサ３１にユーティリティープログラムを実行させて、ＣＤ−ＲＯＭドライブ装置２に書き換えコマンドや新しいアプリケーションプログラムを転送してやれば、上記同様、ＣＤ−ＲＯＭドライブ装置２の再生制御プログラムを簡単に更新することができる。
【０１０２】
《ユーザプログラム領域の書き換え動作》
図１０〜図１５は図９に示されるパーソナルコンピュータ３０に搭載された状態でＣＤ−ＲＯＭドライブ装置２のアプリケーションプログラムを書きかえる動作を順を追って示している。図１０〜図１５においてＣＤ−ＲＯＭドライブ装置２はパーソナルコンピュータ３０の筐体３８の外に拡大して図示してある。
【０１０３】
図１０は初期状態を示し、ＣＤ−ＲＯＭドライブ装置２はＡＴＡＰＩバス３５を介して前記ＩＤＥインタフェースコントローラ３４に接続されている。前記入力制御プログラムＭ１、消去／書き込み制御プログラムＭ３、転送制御プログラムＭ４が格納されているリブートプログラム領域５６０は、アプリケーションプログラムＭ２が格納されるユーザプログラム領域５６１とは、相互に異なるメモリブロックに割り当てられている。
【０１０４】
図１１に示されるように、アプリケーションプログラムを書き換えるときは、例えばＣＤ−ＲＯＭドライブ装置２をリセットすると共に、ディスクのイジェクトスイッチを押して、ＣＤ−ＲＯＭドライブ装置２に前記強制リブートモードを設定する。例えばフロッピーディスクＦＤには、バグの修正された或いはバージョンアップされたアプリケーションプログラムと、そのアプリケーションプログラムをＣＤ−ＲＯＭドライブ装置２に書き込むためのユーティリティープログラムが格納されている。このユーティリティープログラムは、アプリケーションプログラムをＣＤ−ＲＯＭドライブ装置２に転送するための転送ソフトウェアである。前記フロッピーディスクＦＤをパーソナルコンピュータ３０のフロッピーディスクドライブに挿入して起動する。ユーティリティープログラムはハードディスク装置３６に格納されていてもよい。
【０１０５】
起動された転送ソフトウェアの指示に従ってパーソナルコンピュータ側でキー操作等が行われると、パーソナルコンピュータ３０のマイクロプロセッサ３１は、フラッシュメモリ５６に対する書き込みコマンド（前記ベンダーユニークコマンド）をＩＤＥインタフェースコントローラ３４を介して出力する。ＡＴＡＰＩインタフェース回路４は、前記書き込みコマンドを認識すると、ＡＴＡＰＩ割込み信号４２をＣＰＵ５１に与える。これによってＣＰＵ５１は、入力制御プログラムＭ１を実行し、先ず最初にバッファＲＡＭ１６の内容をクリアする。
【０１０６】
図１２に示されるように、パーソナルコンピュータ３０のマイクロプロセッサ３１は、前記書き込みコマンドに続いて、新たなアプリケーションプログラム（新アプリケーションプログラム）をＩＤＥインタフェースコントローラ３４を介して出力する。ＣＰＵ５１は入力制御プログラムＭ１を実行する。これによりＣＰＵ５１は、ＡＴＡＰＩインタフェース回路４に供給されたアプリケーションプログラムをバッファＲＡＭ１６に順次格納していく。ＡＴＡＰＩインタフェース回路４に順次供給されてくる情報にパリティーが付加されている場合には、パリティーチェックを行い、エラーのあるデータブロックに対して再送が要求される。
【０１０７】
図１３に示されるように、新アプリケーションプログラムがバッファＲＡＭ１６に格納された後、ＣＰＵ５１は転送制御プログラムＭ４の実行に移る。これによってＣＰＵ５１は、消去／書き込み制御プログラムＭ３をマイクロコンピュータ５のワークＲＡＭ５７に転送制御する。
【０１０８】
図１４に示されるように、消去／書き込み制御プログラムＭ３がワークＲＡＭ５７に転送完了された後、ＣＰＵ５１はそのワークＲＡＭ５７に格納された消去／書き込み制御プログラムＭ３の実行に移る。このときの消去ブロックの指定は消去／書き込み制御プログラムＭ３に従って行われる。また、マイクロコンピュータ５には、書き込み及び消去用の高電圧が供給されている。消去／書き込み制御プログラムが実行されることにより、先ず、フラッシュメモリ５６のユーザプログラム領域５６１が消去・消去ベリファイされる。次に図１５に示されるように、ＣＰＵ５１は、バッファＲＡＭ１６に格納されている新たな再生制御プログラムとしての新アプリケーションプログラムを順次フラッシュメモリ５６のユーザプログラム領域５６１に書き込む動作と書き込みベリファイ動作とを行っていく。特に制限されないが、書き込みアドレス等は消去／書き込みプログラムによって規定されている。
【０１０９】
書き込み動作終了後、ＣＤ−ＲＯＭドライブ装置２がリセットされることにより、ＣＤ−ＲＯＭドライブ装置２は、更新されたアプリケーションプログラムに従ってＣＤ−ＲＯＭの再生制御を行うことができる。
【０１１０】
図１６には前記ユーザプログラム領域を書き換える動作のフローチャートが概略的に示されている。前記転送ソフトウェアが起動されると、ＣＰＵ５１は、マイクロプロセッサ３１からＡＴＡＰＩインタフェース回路４を介して供給される前記新アプリケーションプログラムをバッファＲＡＭ１６に転送すると共に、消去／書き込み制御プログラムをワークＲＡＭ５７に転送する（Ｓ２０）。転送に際してはパリティーチェック若しくはサムチェックを行い、転送異常があるかを監視する（Ｓ２１）。転送異常がある場合にはそのアプリケーションプログラムを再送する。バッファＲＡＭ１６及びワークＲＡＭ５７への転送が完了されると、フラッシュメモリ５６のユーザプログラム領域５６１が消去され（Ｓ２２）、次いで、バッファＲＡＭ１６に転送された新アプリケーションプログラムがフラッシュメモリ５６のユーザプログラム領域５６１に書き込まれる（Ｓ２３）。書き込みデータに対しては書き込みベリファイが行われる（Ｓ２４）。
【０１１１】
上述のようなユーザプログラム領域５６１の書き換え処理は、ＣＤ−ＲＯＭドライブメーカがホスト装置３を用いて実施できることは言うまでもないが、図１０〜図１６に示した処理は、例えばＣＤ−ＲＯＭドライブ装置２がパーソナルコンピュータ３０に標準搭載されるとき、パソコンメーカが、パーソナルコンピュータ３０上でＣＤ−ＲＯＭドライブ装置２を評価する期間に、バグの修正されたアプリケーションプログラムをユーザプログラム領域５６１に再インストールする手法として位置付けることができる。
【０１１２】
図１０〜図１６に基づいて説明したように、ＣＤ−ＲＯＭドライブ装置２のユーザプログラム領域５６１の書き換えでは、パーソナルコンピュータ３０のＰＣボード３７をホスト装置とし、このＰＣボード３７を介してＣＤ−ＲＯＭドライブ装置２のアプリケーションプログラムを書き換えることができる。したがって、ＣＤ−ＲＯＭドライブ装置２をパーソナルコンピュータ３０から取り外すことなく、前記マイクロプロセッサ３１を利用して、ＣＤ−ＲＯＭドライブ装置２の再生制御プログラム及びインタフェース制御プログラムなどのアプリケーションプログラムの全部又は一部を変更できる。
【０１１３】
したがって、ＣＤ−ＲＯＭドライブ装置２における再生速度の転換サイクルが極端に短くされ、ＣＤ−ＲＯＭドライブ装置２がパーソナルコンピュータ３０に標準搭載され、それによってＣＤ−ＲＯＭドライブメーカはパソコンメーカ毎に相違する仕様でＣＤ−ＲＯＭドライブ装置２のアプリケーションプログラムを作成しなければならない状況下において、パソコンメーカは、ＣＤ−ＲＯＭドライブ装置２の評価期間を通じてドライブメーカからアプリケーションプログラムに関するバグの修正や追加機能を受けながらパーソナルコンピュータ３０に組みこまれたままの状態でＣＤ−ＲＯＭドライブ装置２の評価を行うことができる。前述の通り、ＣＤ−ＲＯＭドライブ装置２は、ユーザプログラム領域５６１に対する書き換え処理の能率化、書き換え処理中における異常状態から速やかに復旧して書き換え処理に戻れるなどの手段が講じられているから、ＣＤ−ＲＯＭドライブ装置２の評価期間を通じて、マイクロコンピュータ５に内蔵されたフラッシュメモリ５６を、修正されたアプリケーションプログラムに効率的に書き換えることができる。よって、パソコンメーカはディスクドライブ装置の評価期間を短期できる。
【０１１４】
これにより、ＣＤ−ＲＯＭドライブ装置２における再生速度の転換サイクルが極端に短くされている状況下において、パソコンメーカは、より再生速度の速いＣＤ−ＲＯＭドライブ装置２を標準搭載したパーソナルコンピュータ３０を効率的に市場に投入できるようになる。
【０１１５】
また、パーソナルコンピュータのＯＳ（Operating System）が変更（バージョンアップ）されるような場合に、変更されたＯＳに対応されるコマンドを処理するインタフェース機能をアプリケーションプログラムのインタフェース制御プログラムに反映するような修正にも即座に対応することができる。
【０１１６】
前記アプリケーションプログラムはインタネット等の通信手段でＣＤ−ＲＯＭドライブ装置２の製造又は販売会社からパソコンメーカ又はその販売会社に、或いはパソコンメーカ又はその販売会社からパーソナルコンピュータのエンドユーザに供給することも可能である。これによれば、パソコンメーカ又はその販売会社或いはパーソナルコンピュータのエンドユーザに瞬時に前記アプリケーションプログラムを送ることができる。したがって、前記パーソナルコンピュータ３０がインターネットにアクセスするハードウェア及びソフトウェアを備えたものであれば、バージョンアップ若しくはバグが修正された再生制御プログラムをユーザプログラム領域５６１に簡単に再インストールすることができ、パソコンメーカによるＣＤ−ＲＯＭドライブ装置の評価期間の短縮はもとより、エンドユーザに対しても、ＣＤ−ＲＯＭドライブ装置の機能変更を容易化することができる。
【０１１７】
《消去／書き込み制御プログラムのダウンロード化》
上記構成ではフラッシュメモリ５６のリブートプログラム領域５６１に消去／書き込み制御プログラムＭ３を配置し、そこからワークＲＡＭ５７に内部転送して当該プログラムをＣＰＵ５１が実行するようにした。これに対し、消去／書き込み制御プログラムＭ３をフラッシュメモリ５６には格納せず、ユーザプログラム領域５６１を書き換える度に、前記ホスト装置３若しくはＰＣボード３７を介してワークＲＡＭ５７にダウンロードするようにできる。これによれば、フラッシュメモリ５６はその消去／書き込み制御プログラムを保有しないから、ＣＰＵ５１が暴走してフラッシュメモリ５６に格納されているプログラムを不所望に実行することがあっても、当該フラッシュメモリ５６が誤ってか書き換えられる虞は全くなくなる。
【０１１８】
図１７〜図２２には、フラッシュメモリ５６がその消去／書き込み制御プログラムＭ３を保有しな場合において、パーソナルコンピュータ３０に搭載された状態でＣＤ−ＲＯＭドライブ装置２のアプリケーションプログラムを書きかえる動作を順を追って示している。図１７〜図２２においてＣＤ−ＲＯＭドライブ装置２はパーソナルコンピュータ３０の筐体３８の外に拡大して図示してある。
【０１１９】
図１７は初期状態を示し、ＣＤ−ＲＯＭドライブ装置２はＡＴＡＰＩバス３５を介して前記ＩＤＥインタフェースコントローラ３４に接続されている。リブートプログラム領域５６０には前記消去／書き込み制御プログラムＭ３は格納されていない。
【０１２０】
図１８に示されるように、アプリケーションプログラムを書き換えるときは、例えばＣＤ−ＲＯＭドライブ装置２をリセットすると共に、ディスクのイジェクトスイッチを押して、ＣＤ−ＲＯＭドライブドライブ装置２に前記強制リブートモードを設定する。例えばフロッピーディスクＦＤには、バグの修正された或いはバージョンアップされたアプリケーションプログラムと、ＣＰＵ５１が実行してそのアプリケーションプログラムをユーザプログラム領域５６１に書き込むための消去／書き込み制御プログラムと、前記マイクロプロセッサ３１が実行してＣＰＵ５１にユーザプログラム領域５６１の書き換え処理を実行させるためのユーティリティープログラムとが格納されている。このユーティリティープログラムは、アプリケーションプログラム及び消去／書き込み制御プログラムをＣＤ−ＲＯＭドライブ装置２に転送するための転送ソフトウェアとすることができる。前記フロッピーディスクＦＤをパーソナルコンピュータ３０のフロッピーディスクドライブに挿入してユーティリティープログラムを起動する。ユーティリティープログラムはハードディスク装置３６に格納されていてもよい。
【０１２１】
起動された転送ソフトウェアの指示に従ってパーソナルコンピュータ側でキー操作等が行われると、パーソナルコンピュータ３０のマイクロプロセッサ３１は、フラッシュメモリ５６に対する書き込みコマンド（前記ベンダーユニークコマンド）をＩＤＥインタフェースコントローラ３４を介して出力する。ＡＴＡＰＩインタフェース回路４は、前記書き込みコマンドを認識すると、ＡＴＡＰＩ割込み信号４２をＣＰＵ５１に与える。これによってＣＰＵ５１は、入力制御プログラムＭ１を実行し、先ず最初にバッファＲＡＭ１６の内容をクリアする。
【０１２２】
図１９に示されるように、パーソナルコンピュータ３０のマイクロプロセッサ３１は、前記書き込みコマンドに続いて、新たなアプリケーションプログラム（新アプリケーションプログラム）及び消去／書き込み制御プログラムをＩＤＥインタフェースコントローラ３４を介して出力する。ＣＰＵ５１は入力制御プログラムＭ１を実行する。これによりＣＰＵ５１は、ＡＴＡＰＩインタフェース回路４に供給されたアプリケーションプログラム及び消去／書き込み制御プログラムをバッファＲＡＭ１６に順次格納していく。
【０１２３】
図２０に示されるように、新アプリケーションプログラム及び消去／書き込み制御プログラムがバッファＲＡＭ１６に格納された後、ＣＰＵ５１は転送制御プログラムＭ４の実行に移る。これによってＣＰＵ５１は、消去／書き込み制御プログラムＭ３をバッファＲＡＭ１６からマイクロコンピュータ５のワークＲＡＭ５７に内部転送する。
【０１２４】
そして、図２１に示されるように、ＣＰＵ５１はそのワークＲＡＭ５７に格納された消去／書き込み制御プログラムＭ３の実行に移る。このときの消去ブロックの指定は消去／書き込み制御プログラムＭ３に従って行われる。また、マイクロコンピュータ５には、書き込み及び消去用の高電圧が供給されている。消去／書き込み制御プログラムが実行されることにより、先ず、フラッシュメモリ５６のユーザプログラム領域５６１が消去・消去ベリファイされる。次に図２２に示されるように、ＣＰＵ５１は、バッファＲＡＭ１６に格納されている新アプリケーションプログラムを順次フラッシュメモリ５６のユーザプログラム領域５６１に書き込む動作と書き込みベリファイ動作とを行っていく。書き込み動作終了後、ＣＤ−ＲＯＭドライブ装置２がリセットされることにより、ＣＤ−ＲＯＭドライブ装置２は、更新されたアプリケーションプログラムに従ってＣＤ−ＲＯＭの再生制御を行うことができる。
【０１２５】
《ユーザプログラム領域に対するチェックサム》
上記説明した強制リブートモードの設定はイジェクトスイッチを操作することが条件とされる。ここでは、前記強制リブートモードのほかに、ユーザプログラム領域５６１を書き換えることができる動作モードを設定可能にしたＣＤ−ＲＯＭドライブ装置２を説明する。
【０１２６】
図２３に示すように、前記ユーザプログラム領域５６１は、その一部の記憶領域に、その他の記憶領域が保有する情報のサム値を格納するサム値格納領域Ｍ２１を有する点が図２と相違する。前記サム値格納領域Ｍ２１に対するサム値の書き込みは、ユーザプログラム領域５６１に対する書き込み動作毎に行うことになる。前記リブートプログラム領域５６０は、図２に基づいて説明したのと同様に、リセットベクタＢＣＴ１及びリセット処理プログラムＰＧＭ１等の格納領域を有する。
【０１２７】
図２４にはリセット時に前記サム値を考慮してユーザプログラム領域５６１を書き換え可能にするときの動作フローチャートが示される。
【０１２８】
リセット割り込みがあると前記ＣＰＵ５１は、リセットの指示に応答して前記リセットベクタＢＣＴ１を参照することにより前記リセット処理プログラムＰＲＧ１の実行に移行し（Ｓ３０）、マイクロコンピュータ５内部やその周辺回路を初期化する（Ｓ３１）。
【０１２９】
そして、前記書き換えコマンドに応答し得る強制リブートモードか否かを判定する（Ｓ３２）。即ち、イジェクトスイッチが押されていれば強制リブートモードと判定される。強制リブートモードのときは、前記図２及び図３で説明した通り前記書き換えコマンドの入力を待って前記リブートプログラムの実行に遷移する。即ち、リブートフラグをセットし（Ｓ３３）、前記書き換えコマンドの入力を待って前記リブートプログラムを起動し（Ｓ３４）、今まで説明したようにユーザプログラム領域５６１に新たなアプリケーションプログラムを書き込む（Ｓ３５）。この処理の最後には、ユーザプログラム領域のデータのサム値を演算し、その値を前記サム値格納領域Ｍ２１に保存しておく。
【０１３０】
ステップＳ３２の判断で強制リブートモードでないとき、ＣＰＵ５１はユーザプログラム領域５６１のサム値を演算し（Ｓ３６）、演算した値が前記サム値格納領域Ｍ２１に格納されているサム値に一致するかを判定する（Ｓ３７）。
【０１３１】
ステップＳ３７の判定結果が不一致の場合には前記書き換えコマンドの入力を待って前記リブートプログラムの実行に遷移する。ステップ３７の判定結果が一致の場合には２次ベクタテーブルを参照して（Ｓ３８），前記アプリケーションプログラム領域５６１のプログラムを実行可能な状態に遷移する（Ｓ３９）。
【０１３２】
このように、ホスト装置３や、ＣＤ−ＲＯＭドライブ装置２などの異常によって前記アプリケーションプログラム領域５６１のプログラムが不所望に書き換えられたときは、強制リブートモードが指示されなくても、リセットされるだけで、自己診断的に、ＣＰＵ５１の動作を、アプリケーションプログラム領域５６１に対する書き換え可能な状態に遷移させることができ、ＣＤ−ＲＯＭドライブ装置２の誤動作を未然に防止することができる。
【０１３３】
《プログラム配置のその他の例》
以上の説明ではアプリケーションプログラムはフラッシュメモリ５６のユーザプログラム領域５６１に配置した。また、リブートプログラムはリブートプログラム領域５６０に配置した。ＣＤ−ＲＯＭドライブ装置２におけるプログラム配置は、次のように変更することができる。例えば、図２５に示されるようにベクタテーブルをワークＲＡＭ５７に配置してもよい。ベクタテーブルをＲＡＭ化すれば、ＣＰＵ５１の動作モードなどに応じてベクタテーブルの内容を動的に変更することが容易になる。
【０１３４】
図２６には前記フラッシュメモリ５６のアドレスマップの別の例が示されている。図２６の例においてリセット処理プログラムＰＲＧ１はサム（ＳＵＭ）値チェックと強制リブートモードＳＷ（イジェクトスイッチ）の操作を検出する処理などを規定する。アプリケーションプログラム領域５６１に含まれるブート処理プログラムＭ２３は、リブートプログラム領域５６０のＰＲＧ２，Ｍ１，Ｍ３，Ｍ４の各プログラムと同じ処理を規定するものである。すなわち、ユーザプログラム領域５６１のアプリケーションプログラムを実行可能な状態においても、書き換えコマンドを受け付けてユーザプログラム領域５６１の書き換えを行うことができる。この場合には、イジェクトスイッチの操作やサム値のチェックは要しないものとされる。
【０１３５】
《フラッシュメモリに対する書き込み態様》
以上説明してきたフラッシュメモリのリブートプログラム領域５６０及びユーザプログラム領域５６１に対する書き込み動作を、ＣＤ−ＲＯＭドライブメーカ（ドライブメーカ）及びＰＣメーカ（パソコンメーカ）の処理に対応付けて説明する。
【０１３６】
図２７はＣＤ−ＲＯＭドライブメーカによるＣＤ−ＲＯＭドライブ装置２の製造手順を示すフローチャートである。
【０１３７】
ＣＤ−ＲＯＭドライブメーカは、マイクロコンピュータ５をＬＳＩメーカから購入してＣＤ−ＲＯＭドライブ装置２を組み立てる。特にその回路部分は配線基板(ＰＣＢ)上に構成する（Ｓ４０）。この時マイクロコンピュータ５に内蔵されたフラッシュメモリ５６のリブートプログラム領域５６０に対するプログラムの書き込み態様は、ＣＤ−ＲＯＭドライブメーカがＥＰＲＯＭライタによって行う場合（Ｓ４１）、半導体メーカによるマイクロコンピュータ５の製造工程で行う場合（Ｓ４２）、或いは、前記配線基板にマイクロコンピュータ５を実装し（Ｓ４３）た後で当該マイクロコンピュータ５にブートモードを設定して行う場合（Ｓ４６）がある。
【０１３８】
ＥＰＲＯＭライタで書き込みを行う場合には、図３１に例示するようにマイクロコンピュータ５の内部バス５８を外部とインタフェースさせるポート５８１（図１には図示を省略してある）をＥＰＲＯＭライタ５８２に接続して行う。ＥＰＲＯＭライタ５８２は、書き込み高電圧をマイクロコンピュータ５に印加して、プログラムモードをマイクロコンピュータ５に設定する。プログラムモードが設定されたマイクロコンピュータ５は、ＥＰＲＯＭライタ５８２にとってフラッシュメモリ単体ＬＳＩと同様にみなされ、ＥＰＲＯＭライタ５８２はマイクロコンピュータ５の内蔵フラッシュメモリ５６を外部から書き換え可能になる。この状態で、ＥＰＲＯＭライタ５８２によってフラッシュメモリ５６のリブートプログラム領域５６０に前記リブートプログラムなどを初期的に書き込む（Ｓ４１）。マイクロコンピュータのリブートプログラム領域５６０に対する書き込み後、当該マイクロコンピュータ５は前記ＣＤ−ＲＯＭドライブ装置２の配線基板に実装される（Ｓ４４）。尚、図３１において図１と同一の回路ブロックには同一参照符号を付してある。
【０１３９】
マイクロコンピュータ５のリブートプログラム領域５６０に対する書き込みがＬＳＩメーカによって既に完了されている場合には（Ｓ４２）、当該マイクロコンピュータ５がＣＤ−ＲＯＭドライブ装置２の前記配線基板に実装される（Ｓ４５）。
【０１４０】
プリント配線基板にマイクロコンピュータ５を実装した後、マイクロコンピュータ５にブートモードを設定してリブートプログラム領域５６０にプログラムを書き込む（Ｓ４６）場合には、例えば図３０に例示されるように、ＲＳ２３Ｃのようなシリアルポート５８３を介して結合されたホスト装置５８４で制御する。図３０に例示されるマイクロコンピュータ５は図１のマイクロコンピュータ５に対してＳＣＩ回路５８５、ブートＲＯＭ５８６及びポート５８７が追加されている。ホスト装置５８５から書き込み用高電圧５８８とブートモード信号５８９がポート５８７を介してマイクロコンピュータ５に供給されると、ＣＰＵ５１はブートＲＯＭ５８６のブートプログラムを実行する。ＣＰＵ５１はブートプログラムを実行することにより、フラッシュメモリ５６を全面消去し、ＳＣＩ回路５８５を初期設定し、シリアルポート５８３を介してホスト装置５８４とインタフェース可能にする。ＣＰＵ５１はホスト装置５８４から供給されるプログラムをフラッシュメモリ５６のリブートプログラム領域５６０に書き込み制御する。これによって、フラッシュメモリ５６のリブートプログラム領域５６０に図２で説明したようなリブートプログラムなどが書き込まれる。尚、シリアルポート５８３を利用して書き込む動作速度は、その性質上一般的に遅い。その場合には、ＣＤ−ＲＯＭドライブ装置２の回路ボードには、ディスクアクセス動作には直接用いられないシリアルポート５８３を特別に配置しなければならならず、それによってＣＤ−ＲＯＭドライブ装置の回路ボードの物理的な規模が大きくなることに注意しなければならない。ＣＤ−ＲＯＭドライブ装置の物理的な規模を小さくすることを優先させるならば、そのようなシリアルポート５８３を介するプログラム書込みのための構成を設けないことが得策である。
【０１４１】
前記ステップＳ４４、Ｓ４５又はＳ４６によってフラッシュメモリ５６のリブートプログラム領域５６０が初期設定され後、マイクロコンピュータ５がリセットされ、ユーザプログラム領域５６１に書き込みを行うために前記強制リブートプログラムモードが設定される（Ｓ４７）。そして、前記ホスト装置３から書き込みコマンドを発行することにより、リブートプログラムを起動し、ユーザプログラム領域５６１にアプリケーションプログラムなどのアプリケーションプログラムを書き込む（Ｓ４８）。正常に書き込みできたかが判定され（Ｓ４９）、異常があった場合には再度リブートプログラムが起動される（Ｓ５０）。正常に書き込まれた場合には、当該書き込まれたアプリケーションプログラムをマイクロコンピュータ５に実行させてＣＤ−ＲＯＭドライブ装置２の動作テストを行う（Ｓ５１）。動作テストで異常が発見されなかたＣＤ−ＲＯＭドライブ装置２がＰＣメーカに出荷される（Ｓ５２）。
【０１４２】
尚、フラッシュメモリ５６のリブートプログラム領域５６０とユーザプログラム領域５６１に対する書込みを別々に行わず、図２９に例示されるように一緒に行ってもよい。即ち、図２９に示されるステップＳ４１ＡではＥＰＲＯＭライトを用いてフラッシュメモリ５６のリブートプログラム領域５６０及びユーザプログラム領域５６１に全てのプログラムを書き込む。ステップＳ４２Ａではマイクロコンピュータ５を製造するＬＳＩメーカが前記全てのプログラムを書き込む。ステップＳ４３ＡではＣＤ−ＲＯＭドライブメーカがマイクロコンピュータ５の前記ブートモードを利用して前記全てのプログラムを書き込む。
【０１４３】
図２８はＣＤ−ＲＯＭドライブメーカから出荷されたＣＤ−ＲＯＭドライブ装置２を用いたＰＣメーカによるパーソナルコンピュータの評価手順の一例を示すフローチャートである。
【０１４４】
ＰＣメーカは、ＣＤ−ＲＯＭドライブメーカから出荷されたＣＤ−ＲＯＭドライブ装置２を対応するパーソナルコンピュータ３０に組み込む（Ｓ５３）。このとき、ＣＤ−ＲＯＭドライブ装置２はＡＴＡＰＩインタフェース回路４を介してＰＣボード３７のＩＤＥインタフェースコントローラ３４に接続される。この状態でＰＣメーカはパーソナルコンピュータ３０のマイクロプロセッサ３１に所要のテストプログラムや任意のアプリケーションプログラムなどを実行させながらＣＤ−ＲＯＭドライブ装置２をアクセスして当該ＣＤ−ＲＯＭドライブ装置２の評価を行う。この評価に際して、ＣＤ−ＲＯＭドライブ装置２のアプリケーションプログラムにバグがあるかを調べ（Ｓ５４）、また、アプリケーションプログラムに対してＰＣメーカ側からの仕様変更すべき個所があるかを調べる（Ｓ５５）。バグも仕様変更もなければその機種のパーソナルコンピュータはＣＤ−ＲＯＭドライブ装置２に関し何ら支障のないものとして評価を終わり、当該機種のパーソナルコンピュータはＣＤ−ＲＯＭドライブ装置２を搭載してエンドユーザへ出荷されることになる（Ｓ６１）。
【０１４５】
一方、前記ステップＳ５４でバグの発生が明らかにされ、また、ステップＳ５５で仕様変更が明らかにされたとき、当該バグの情報や仕様変更に関する情報がＣＤ−ＲＯＭドライブメーカに伝えられる。このとき、ＣＤ−ＲＯＭドライブ装置２それ自体をパーソナルコンピュータ３０から取り外してＣＤ−ＲＯＭドライブメーカに送り返すことを要しない。
【０１４６】
ＣＤ−ＲＯＭドライブメーカはそれに従ってアプリケーションプログラムを修正する（Ｓ５６）。修正されたアプリケーションプログラムは例えばインターネットなどを介してＰＣメーカに送信される（Ｓ５７）。送信された修正プログラムは、実際の評価に用いているパーソナルコンピュータで受信することができる。そして、受信した修正済みのアプリケーションプログラムをＣＤ−ＲＯＭドライブ装置２のフラッシュメモリ５６に書き込む（Ｓ５８）。書込み動作の詳細は前述の通りマイクロコンピュータ５に強制リブートモードを設定してパーソナルコンピュータ３０それ自体で即座に行うことができる。正常に書き込みできたかが判定され（Ｓ５９）、異常があった場合には再度リブートプログラムが起動される（Ｓ６０）。正常に書き込まれた場合には、その機種のパーソナルコンピュータの評価が終わる。このように、アプリケーションプログラムにバグがあっても、或いはＰＣメーカ側からアプリケーションプログラムの仕様変更を行う場合にも、修正されたアプリケーションプログラムをＣＤ−ＲＯＭドライブ装置２に簡単に再インストールすることができるから、パーソナルコンピュータ３０に組み込んだ状態でＣＤ−ＲＯＭドライブ装置２を短期間に評価することが可能になる。
【０１４７】
パーソナルコンピュータの出荷に当たって、ＣＰメーカ側でＣＤ−ＲＯＭドライブ装置に前記修正されたアプリケーションプログラムを再インストールしなければならないものに対してはそれを行い、また、ＰＣメーカ独自の情報（ＣＤ−ＲＯＭドライブのＩＤ（identification）情報）をＰＣメーカ自らがフラッシュメモリ５６に書き込む場合にはそれを行う。そして当該機種のパーソナルコンピュータはエンドユーザへ出荷されることになる（Ｓ６１）。
【０１４８】
以上本発明者によってなされた発明を実施例に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
【０１４９】
例えば、リブートモードの設定は上記の例に限定されず、ベンダーユニークコマンドだけで設定することも可能である。その場合には、ベンダーユニークコマンドの解読結果を用いて、ＣＰＵの処理をユーザリブート用のプログラムに移行させることができる。また、記憶情報再生装置の量産ライン上で初めてアプリケーションプログラムを不揮発性メモリに書き込む場合には、アプリケーションプログラムの先頭にある２次ベクタテーブルに何も記憶されていない状態（例えば、全ビット論理値０又は１）をソフトウェアで検出して、ユーザリブートモードに移行するようにしてもよい。また、フラッシュメモリの所定のブロックを２バンク構成とし、一方のバンクを書き換え禁止領域として用いることが可能である。このときのバンク切換えは、ユーザリブートモードの設定に連動され、ユーザリブートモードにおいては書き換え禁止側のブロックが用いられる。また、前記サム値を求める演算はユーザプログラム領域のデータを単に加算するだけでなく、適当な論理を通して加算することも可能である。
【０１５０】
尚、リブートプログラムは、前記アプリケーションプログラムを書き込み若しくは再書き込みするためのイニシャルプログラムを意味している。したがって、前記リブートプログラム領域には、前記イニシャルプログラムが記憶されていると解することもできる。
【０１５１】
以上のように、本発明に係るディスクドライブ装置はＣＤ−ＲＯＭドライブ装置はもとより、その他の記録情報再生装置や情報記録再生装置などに広く適用することができる。また、ディスクドライブ装置を搭載したコンピュータ装置はパーソナルコンピュータだけでなく、ワークステーション、オフコンなどその名称に拘わらず種々のコンピュータ装置に適用することができる。
【図面の簡単な説明】
【０１５２】
【図１】図１は本発明の一例に係るＣＤ−ＲＯＭドライブ装置を示すブロック図である。
【図２】図２はフラッシュメモリの記憶領域を示す説明図である。
【図３】図３はリセット処理の一例を示すフローチャートである。
【図４】図４はＡＴＡＰＩ割込み処理の一例を示すフローチャートである。
【図５】図５はフラッシュメモリの一括消去単位ブロックとリブートプログラム領域との関係を示す説明図である。
【図６】図６はフラッシュメモリ内蔵マイクロコンピュータの製造工程を概略的に示すフローチャートである。
【図７】図７はリブートプログラム領域に対する不所望な消去を阻止するためのハードウェアプロテクトの一例を示すブロック図である。
【図８】図８はリブートプログラム領域に対する不所望な消去を阻止するためのハードウェアプロテクトの別の例を示すブロック図である。
【図９】図９はＣＤ−ＲＯＭドライブ装置を内蔵するパーソナルコンピュータの一例ブロック図である。
【図１０】図１０はパーソナルコンピュータにＣＤ−ＲＯＭドライブ装置が搭載された状態で当該ドライブ装置にアプリケーションプログラムを書込む動作の初期状態を示す説明図である。
【図１１】図１１はパーソナルコンピュータにＣＤ−ＲＯＭドライブ装置が搭載された状態で当該ドライブ装置にアプリケーションプログラムを書込む動作における動作開始時の状態を示す説明図である。
【図１２】図１２は図１１に状態に続くアプリケーションプログラムの転送状態を示す説明図である。
【図１３】図１３は図１２の状態に続く消去／書き込み制御プログラム起動状態を示す説明図である。
【図１４】図１４は図１３の状態に続く消去／書き込み制御プログラムによるフラッシュメモリの消去動作状態を示す説明図である。
【図１５】図１５は図１４の状態に続く消去／書き込み制御プログラムによるフラッシュメモリの書き込み動作状態を示す説明図である。
【図１６】図１６は図１０〜図１５で説明した書き込み処理の全体的なフローチャートである。
【図１７】図１７は図１０に対して消去／書込み制御プログラムをＣＤ−ＲＯＭドライブ装置の外部から受け取って当該ドライブ装置にアプリケーションプログラムを書込む動作の初期状態を示す説明図である。
【図１８】図１８は図１０に対して消去／書込み制御プログラムをＣＤ−ＲＯＭドライブ装置の外部から受け取って当該ドライブ装置にアプリケーションプログラムを書込む動作における動作開始時の状態を示す説明図である。
【図１９】図１９は図１８の状態に続くアプリケーションプログラムの転送状態を示す説明図である。
【図２０】図２０は図１９の状態に続く消去／書き込み制御プログラム起動状態を示す説明図である。
【図２１】図２１は図２０の状態に続く消去／書き込み制御プログラムによるフラッシュメモリの消去動作状態を示す説明図である。
【図２２】図２２は図２１に状態に続く消去／書き込み制御プログラムによるフラッシュメモリの書き込み動作状態を示す説明図である。
【図２３】図２３はサム値格納領域が割り当てられたフラッシュメモリの記憶領域の説明図である。
【図２４】図２４はリセット時にサム値を考慮してユーザプログラム領域を書き換え可能にするときの動作フローチャートである。
【図２５】図２５はベクタテーブルをマイクロコンピュータのワークＲＡＭに配置した状態を示す説明図である。
【図２６】図２６はフラッシュメモリのアドレスマップの別の例を示す説明図である。
【図２７】図２７はＣＤ−ＲＯＭドライブメーカによるＣＤ−ＲＯＭドライブ装置の製造手順の一例を示すフローチャートである。
【図２８】図２８はＣＤ−ＲＯＭドライブメーカから出荷されたＣＤ−ＲＯＭドライブ装置を用いたＰＣメーカによるパーソナルコンピュータの評価手順の一例を示すフローチャートである。
【図２９】図２９は図２７に対してリブートプログラム領域とユーザプログラム領域とに処理プログラムを一緒に書き込む場合の一例フローチャートである。
【図３０】図３０はＣＤ−ＲＯＭドライブ装置がシリアルポートを持つ場合に当該ポートを介して処理プログラムをマイクロコンピュータに書き込むときの状態を示すＣＤ−ＲＯＭドライブ装置のブロック図である。
【図３１】図３１はＥＰＲＯＭライタを用いてマイクロコンピュータの処理プログラムを書き込む時の状態を示すマイクロコンピュータのブロック図である。
【符号の説明】
【０１５３】
１  ディスク
２  ディスクドライブ装置
３  ホスト
４  ＡＴＡＰＩインタフェース回路
５  マイクロコンピュータ
７  ディジタル信号処理回路
５１  中央処理装置
５６  電気的な消去及び書き込み可能な不揮発性メモリ
５６０  リブートプログラム領域
５６１  アプリケーションプログラム領域
Ｍ１  入力制御プログラム
Ｍ２  アプリケーションプログラム
Ｍ３  消去／書き込み制御プログラム
Ｍ４  転送制御プログラム
【図１】
0003643367.tif 000002
【図２】
0003643367.tif 000003
【図３】
0003643367.tif 000004
【図４】
0003643367.tif 000005
【図５】
0003643367.tif 000006
【図６】
0003643367.tif 000007
【図７】
0003643367.tif 000008
【図８】
0003643367.tif 000009
【図９】
0003643367.tif 000010
【図１０】
0003643367.tif 000011
【図１１】
0003643367.tif 000012
【図１２】
0003643367.tif 000013
【図１３】
0003643367.tif 000014
【図１４】
0003643367.tif 000015
【図１５】
0003643367.tif 000016
【図１６】
0003643367.tif 000017
【図１７】
0003643367.tif 000018
【図１８】
0003643367.tif 000019
【図１９】
0003643367.tif 000020
【図２０】
0003643367.tif 000021
【図２１】
0003643367.tif 000022
【図２２】
0003643367.tif 000023
【図２３】
0003643367.tif 000024
【図２４】
0003643367.tif 000025
【図２５】
0003643367.tif 000026
【図２６】
0003643367.tif 000027
【図２７】
0003643367.tif 000028
【図２８】
0003643367.tif 000029
【図２９】
0003643367.tif 000030
【図３０】
0003643367.tif 000031
【図３１】
0003643367.tif 000032