本発明者はディスクドライブ装置の処理プログラムなどの変更を容易化するために、ディスクドライブ装置それ自体に関する観点と、ホスト装置とのインタフェースの観点から更に検討を行った。
先ず第1には、ディスクドライブ装置の制御に、電気的に消去及び書き込み可能な不揮発性メモリを内蔵したマイクロコンピュータを採用し、その不揮発性メモリに、ディスクドライブ装置のためのアプリケーションプログラムと共に、ダウンロードされたアプリケーションプログラムを取り込み制御する入力制御プログラムを格納し、更に必要な場合には書き換え制御プログラムも格納することについて検討した。ここで、前記アプリケーションプログラムは、ディスクアクセスのための処理プログラム(アクセス制御プログラム)と、ディスクドライブ装置のための外部インタフェース処理プログラム(インタフェース処理プログラム)とを含むプログラムである。
その場合、更に解決しなければならない幾つかの課題のあることが本発明者によって明らかにされた。
その一つは、書き換え制御プログラム及び入力制御プログラムをディスクドライブ装置それ自体が保有する場合、アプリケーションプログラムの書込みに際して書き換え制御プログラム及び入力制御プログラムが、復旧不可能な状態に破壊若しくは消失することがあってはならないということである。書き換え制御プログラム又は入力制御プログラムが破壊若しくは消失すると、その後、アプリケーションプログラムの書き換えを行うことが難しくなる。
また、マイクロコンピュータの不揮発性メモリそれ自体が保有している書き換え制御プログラム及び入力制御プログラムは信頼性が高くなければならないということである。
第2には、ディスクドライブ装置がパーソナルコンピュータなどのコンピュータ装置に標準搭載される状況を考慮し、前記アプリケーションプログラムなどを容易に変更できるようにすることについて検討した。
今日パーソナルコンピュータ(単にPCとも記す)等のコンピュータ装置におけるハードディスクインタフェースの殆どはIDE(Integrated Device Electronics)に準拠し、PC(Personal Computer)ボード上に複数のIDEインタフェースポート(例えば4個)を持っている。IDEについては日経エレクトロニクス(日経BP社1994年6月6日発行)第67頁〜第96頁に記載がある。この明細書では、FAST ATA、Enhanced IDE、Extended IDEなどの呼称がある所謂拡張IDEの概念などもIDEに含むものとして用いる。IDEインタフェース仕様ではインタフェースケーブルの長さが極端に制限されており、通常はPCの筐体内部に搭載した周辺機器とのインタフェースに利用できる程度である。今日ではPCの拡張スロット若しくはドライブベイにCD−ROMドライブ装置が標準搭載されているものが殆どであるが、それ以前はオプションとして外付けされるのが一般的であり、このため、そのインタフェース仕様は当初、SCSI若しくはSCSI2に準拠されて発展してきた。
しかしながら、SCSIインタフェースはオプションとしての性格が根強く、SCSIインタフェースによるCD−ROMドライブ装置の接続にはSCSIインタフェースボード若しくはSCSIインタフェースPCカードなどが特別に必要になり、全体としてコストの上昇を招いてしまう。一般的に、IDEコントローラLSI(Large Scale Integrated circuits)はSCSIコントローラLSIに比べて安価である。
そこで登場するのがATAPI(ATA Packet Interface)インタフェースであり、PCボードとのインタフェース仕様はIDE準拠で、コマンドはSCSI若しくはSCSI2準拠とされる。これにより、PCにCD−ROMドライブ装置を搭載するのにそれ専用の特別なインタフェース回路を必要とせず、更に、SCSIインタフェース時代に標準的に用いられてきたSCSI準拠のコマンドをそのまま流用できる。即ち、CD−ROMドライブ装置に関する過去のソフトウェア資産を承継しながら、拡張IDEのような新しいインタフェースへ移行でき、しかもコストの低減を図ることができるようになる。これにより、PCに標準搭載されるCD−ROMドライブ装置のインタフェース仕様のほとんど全てがATAPIインタフェース仕様(IDEの拡張仕様)を採用するに至っている。
多くのPCメーカが上述のようにATAPIインタフェースを利用してCD−ROMドライブ装置をPCに標準搭載する場合、CD−ROM再生速度の転換サイクルが極端に短い状況では、CD−ROMドライブ装置の評価期間が長くなると、PCメーカにとっては再生速度の速いCD−ROMドライブ装置を搭載したPCを効率的に市場に投入できなくなる。
PCメーカにおけるCD−ROMドライブ装置の評価期間が長くなると予想される原因は幾つかある。
第1には、ATAPI対応CD−ROMドライブ装置はPCに標準搭載されるから、CD−ROMドライブ装置を取り外すにはPCの筐体を分解することが必要になるからである。
第2には、極端に短い再生速度転換サイクル故に、ドライブメーカにとってもCD−ROMドライブ装置の処理プログラムに対する開発期間が短くなり、バグの修正が度重なる場合も多くなることが予想されるからである。
第3には、極端に短い再生速度転換サイクル故に、ドライブメーカは、前記アプリケーションプログラムの性能向上が間に合わないため、ハードウェアのみ先行させてPCメーカに送り、後付けでアプリケーションプログラムを段階的にPCメーカに送り、ドライブを完成させることが必要になるからである。例えば24倍速のCD−ROMドライブの場合、ドライブメーカは同一ハードウェアで20倍速再生までのアプリケーションプログラムをPCメーカに送り、次に、24倍速でアクセス速度の速いアプリケーションプログラムを送り、最後に、そのアプリケーションプログラムの論理的に不十分な点を改善若しくはチューニングした高い性能のアプリケーションプログラムを送る、というような段階的な処置が施される。或いは、24倍速CD−ROMドライブを想定すると、最低の1倍速と最高の24倍速再生のためのアプリケーションプログラムを送り、それらに対する中間の倍速に関しては段階的にアプリケーションプログラムを完成させてPCメーカに提供するといったことが行われる。
第4には、ATAPIインタフェースを採用したCD−ROMドライブ装置がPCに標準搭載されると、そのCD−ROMドライブ装置は特定のPCに専用化されるので、当該CD−ROMドライブ装置の前記アプリケーションプログラムの内容がPCの機種若しくはPCメーカ毎に個別化される傾向が強くなるからである。例えば、ドライブメーカは、標準使用のCD−ROMドライブ装置をPCメーカにサンプル出荷してくる場合が多いが、PCメーカのドライブ仕様がメーカ毎に異なっている場合には、ドライブの仕様追加が必要になる。PCメーカ毎に異なる仕様の一例として、偏心や面ぶれなどを生じているディスクに対する再生制御手法がある。偏心や面ぶれを生じているディスクに対して、通常CD−ROMドライブ装置はディスクが読めるところまで、自動的に再生速度を落とす。しかし、この後、いつ再生速度を上げるかは、PCメーカの仕様によって異なっており、次のリードコマンドを受信したところで、再生速度を元に戻す場合もあれば、そのディスクについては再生速度を上げない場合もある。更に、ベンダーユニークコマンドを利用して再生速度を元に戻す場合もある。或いはディスクに対する線速度一定と角速度一定とを混在させて再生制御することも行われており、角速度一定と線速度一定の制御を切り換える態様も区々になっている。
また、ATAPI対応CD−ROMドライブ装置を標準搭載したPCがエンドユーザに渡った後、再生速度の向上及びCD―R(Compact disc-Recordable)ディスクの普及等により、全てのディスクを再生できるとは限らない状況も生じてくる。このような場合にも、エンドユーザ側で前記アプリケーションプログラムを効率的に更新できることが望ましい。
このように、CD−ROMドライブ装置における再生速度の転換サイクルが極端に短くされ、また、CD−ROMドライブ装置がPCに標準搭載される状況下において、ドライブメーカはPCメーカ毎に相違する仕様の前記アプリケーションプログラムを短期間で作成しなければならない。PCメーカにとっては、CD−ROMドライブ装置の評価を短期間で済まさなければならず、評価期間を通じてドライブメーカからアプリケーションプログラムのバグの修正を受けながら、PC上でCD−ROMドライブ装置の評価を効率的に行うことが絶対的に必要とされる。したがって、CD−ROMドライブ装置のアプリケーションプログラムの修正を効率的に行えるようにするという要請は、極めて高くなっている。
本発明の目的は、ディスクドライブ装置のディスクアクセス及びインタフェース制御用の処理プログラムを含むアプリケーションプログラムの全部又は一部を効率的に修正できるようにすることである。
本発明の別の目的は、ディスクドライブ装置の物理的な規模を増大させることなく前記アプリケーションプログラムの全部又は一部を容易に書き換えることができるディスクドライブ装置を提供することにある。
本発明の更に別の目的は、前記アプリケーションプログラムの書き換えの信頼性を向上できるディスクドライブ装置を提供することにある。
本発明の更に別の目的は、記録情報再生装置やディスクドライブ装置のハードウェアの量産を先行させ、出荷直前まで前記アプリケーションプログラムの全部又は一部を修正でき、開発期間を短縮できるディスクドライブ装置を提供することにある。
本発明のその他の目的は、同一ハードウェアによって他品種展開が容易なディスクドライブ装置を提供することにある。
本発明の更にその他の目的は、ディスクドライブ装置が組み込まれた状態でも(当該装置を取り外すことなく)、記録情報再生装置やディスクドライブ装置の前記アプリケーションプログラムの全部又は一部を変更できるパーソナルコンピュータ等のコンピュータ装置を提供することにある。
また、本発明は、再生速度の転換サイクルが極端に短い状況下でも、再生速度の速いディスクドライブ装置を標準搭載したコンピュータ装置を効率的に市場に投入できるようにすることにある。
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
すなわち、ディスクドライブ装置の制御に、電気的な消去及び書き込み可能な不揮発性メモリを内蔵したマイクロコンピュータを採用し、その不揮発性メモリが、アプリケーションプログラム領域にディスクアクセス及びインタフェース制御用の処理プログラムを含むアプリケーションプログラムを保有し、また、そのアプリケーションプログラムの全部又は一部を更新するのに利用されるリブートプログラムをリブートプログラム領域に保有する。
更に詳しくは、ディスクドライブ装置は、回転駆動されるディスクをアクセスするアクセス手段と、前記アクセス手段に接続され外部とインタフェースされるインタフェース回路と、前記アクセス手段の動作を制御すると共に前記インタフェース回路に結合されたマイクロコンピュータとを含む。前記マイクロコンピュータは、電気的に書き換え可能な不揮発性メモリと、この不揮発性メモリをアクセスする中央処理装置とを含む。前記不揮発性メモリはその記憶領域に、リブートプログラム領域とアプリケーションプログラム領域とを有する。前記アプリケーションプログラム領域は、前記アクセス手段及び前記インタフェース回路を制御するために前記中央処理装置によって実行されるアプリケーションプログラムの格納領域を有する。前記リブートプログラム領域は、前記中央処理装置に、前記アプリケーションプログラム領域を書き換えるための処理を実行させるリブートプログラムが格納される領域を有する。前記中央処理装置は、外部から前記インタフェース回路に供給されるアプリケーションプログラム領域の書き換えコマンドに応答して前記リブートプログラムを実行しアプリケーションプログラム領域の全部又は一部の書き換えを行い、また、外部から前記インタフェース回路に供給されるディスクアクセスコマンドに応答して前記アプリケーションプログラム領域中の前記アプリケーションプログラムを実行し前記アクセス手段及びインタフェース回路を制御する。
前記アプリケーションプログラムとは、記録情報再生制御プログラムなどのアクセス制御プログラムとディスクドライブ装置の外部インタフェース制御用のインタフェース制御プログラムとを含む動作プログラムを意味する。アクセス制御プログラムは、ディスクの速度制御や記録情報の再生速度に応じた信号処理などを制御する。インタフェース制御プログラムは、ディスクアクセスのための外部インタフェース制御を行う。前記アプリケーションプログラム領域の書き換えは、アプリケーションプログラムの一部(アクセス制御プログラム又はインタフェース制御プログラムのいずれか一方)を対象にしても、全部(アクセス制御プログラム及びインタフェース制御プログラムの双方)を対象にしてもよい。また、アプリケーションプログラムが複数個のプログラムモジュール(例えば複数個のサブルーチン)を含む場合に、一部のプログラムモジュールを書き換えの対象にすることも可能である。例えば、アプリケーションプログラムを書きかえる(更新する)とき、前記アクセス制御プログラム又はインタフェース制御プログラムにおいて、修正が施された一方のプログラムだけを書き換えるようにしてもよい。
上記により、ディスクドライブ装置にマイクロコンピュータが実装された後も、当該マイクロコンピュータ内蔵の前記不揮発性メモリにアプリケーションプログラムを書き込み、或いはアプリケーションプログラムの一部又は全部を書き換えることができる。これにより、今後極めて短いサイクルで生ずるであろう、再生速度転換時期等に応じてに、再生速度の向上に応じ必要な修正を加えたアプリケーションプログラムの全部又は一部を書き換えるだけで、ディスクドライブ装置における再生速度の転換に即座に若しくはタイムリーに対応できる。
前記不揮発性メモリの書き換え対象はアプリケーションプログラム領域とされる。リブートプログラム領域は書き換え対象ではないから、不揮発性メモリの書き換え動作途中で異常があった場合にも、再度リブートプログラムを実行すれば、すぐにアプリケーションプログラム領域に対する再書き込み動作に移行でき、書き換え途中における異常状態からの復旧に手間取ることはない。ディスクドライブ装置における処理プログラムの書き換え対象は前記不揮発性メモリだけであるから、書き換えの制御手順を簡素化でき、しかも書き換え時間も短縮できる。更に、半導体集積回路化されたはマイクロコンピュータに、ディスクドライブ装置の処理プログラムを保有する前記不揮発性メモリがに内蔵されている場合、ディスクドライブ装置の物理的な規模が増大するのを抑えて、上記作用を得ることができる。
前記リブートプログラムは、入力制御プログラム、書き換え制御プログラム及び転送制御プログラムを含むことができる。このとき、前記書き換えコマンドに応答する前記中央処理装置は、前記入力制御プログラムを実行することにより外部から前記インタフェース回路に供給される全部又は一部のアプリケーションプログラムをバッファRAMなどに取り込み、前記転送制御プログラムを実行することにより前記書き換え制御プログラムを前記リブートプログラム格納領域から前記マイクロコンピュータの内蔵RAMに転送する。中央処理装置は、前記内蔵RAMに転送された書き換え制御プログラムを実行することにより前記取り込まれた全部又は一部のアプリケーションプログラムを前記アプリケーションプログラム領域に書込み制御する。これによれば、アプリケーションプログラム領域の更新に当たって、ホスト装置は前記不揮発性メモリに対する書込みコマンドに続けてアプリケーションプログラム領域に書き込むべき全部又は一部のアプリケーションプログラムをディスクドライブ装置に転送すればよく、書き換え制御プログラムを転送する必要はないから、アプリケーションプログラム領域を更新する処理時間を更に短縮することができる。
前記リブートプログラムは、入力制御プログラム及び転送制御プログラムを含むことができる。このとき、前記書き換えコマンドに応答する前記中央処理装置は、前記入力制御プログラムを実行することにより外部から前記インタフェース回路に供給される前記アプリケーションプログラム及び書き換え制御プログラムを取り込み、前記転送制御プログラムを実行することにより前記取り込まれた書き換え制御プログラムをマイクロコンピュータの内蔵RAMに転送する。前記中央処理装置は、前記内蔵RAMに転送された書き換え制御プログラムを実行することにより、前記取り込まれた全部又は一部のアプリケーションプログラムを前記アプリケーションプログラム領域に書込み制御する。これによれば、不揮発性メモリはその書き換え制御プログラムを保有しないから、中央処理装置が暴走して不揮発性メモリに格納されているプログラムを不所望に実行することがあっても、当該不揮発性記憶装置が誤ってか書き換えられる虞は全くない。
前記リブートプログラム領域は、ベクタテーブルとリセット処理プログラムの格納領域とを更に有することができる。このとき、前記中央処理装置は、リセットの指示に応答して前記ベクタテーブルを参照することにより前記リセット処理プログラムの実行に移行し、リセット処理プログラムの実行途上では前記書き換えコマンドに応答し得る強制リブート状態か否かを判定する。強制リブート状態のとき、中央処理装置は、前記書き換えコマンドの入力を待って前記リブートプログラムの実行に遷移する。強制リブート状態でないとき、中央処理装置は前記アプリケーションプログラム領域のプログラムを実行可能な状態に遷移する。これによれば、不揮発性メモリの書き換えに際して異常が起きても、リセットをかけて強制リブート状態の指示を行えば、その異常から容易に復旧して、不揮発性メモリを書き換える処理に戻ることができる。この点においても、アプリケーションプログラム領域を更新する処理時間の短縮に寄与できる。
前記アプリケーションプログラム領域は、その一部の記憶領域に、その他の記憶領域が保有する情報のサム値を格納するサム値格納領域を有することができ、前記リブートプログラム領域は、ベクタテーブルとリセット処理プログラムの格納領域とを更に有することができる。このとき、前記中央処理装置は、リセットの指示に応答して前記ベクタテーブルを参照することにより前記リセット処理プログラムの実行に移行し、リセット処理プログラムの実行途上では前記書き換えコマンドに応答し得る強制リブート状態か否かを判定する。強制リブート状態のとき、中央処理装置は、前記書き換えコマンドの入力を待って前記リブートプログラムの実行に遷移する。強制リブート状態でないとき、中央処理装置は、前記サム値格納領域に格納されているサム値が、前記その他の記憶領域が保有する情報のサム値に一致するかを判定する。中央処理装置は、判定結果が不一致の場合には前記書き換えコマンドの入力を待って前記リブートプログラムの実行に遷移し、前記判定結果が一致の場合には前記アプリケーションプログラム領域のプログラムを実行可能な状態に遷移する。これによれば、ホスト装置や、ディスクドライブ装置の異常によって前記アプリケーションプログラム領域のプログラムが不所望に書き換えられたとき、強制リブート状態が指示されなくても、リセットされるだけで、自己診断的に、中央処理装置の動作を、アプリケーションプログラム領域に対する書き換え可能な状態に遷移させることができ、ディスクドライブ装置の誤動作を未然に防止することができる。
前記不揮発性メモリとして、一括消去単位とされる複数個のメモリブロックを有するフラッシュメモリを採用することができる。このとき、前記リブートプログラム領域と前記アプリケーションプログラム領域とを相互に異なるメモリブロックに割り当てることにより、アプリケーションプログラム領域に対する消去動作を効率化できる。
前記リブートプログラム領域に対するプログラムの初期的な書込み動作の信頼性は、そのプログラムの性質上良好であることが望ましく、それを保証するには、前記マイクロコンピュータの製造工程でリブートプログラム領域にプログラムを書き込むことができる。
リブートプログラムの不所望な消失防止に万全を期するには、前記リブートプログラム領域の書き換えを禁止する手段を設ければよい。
前記インタフェース回路に、ATAPIインタフェース仕様を採用することができる。これによれば、SCSIインタフェース仕様等のディスクドライブ装置に関して蓄積された過去のソフトウェア資産を承継しながら、拡張IDEのような新しいインタフェースへ容易に移行でき、しかもコストの低減を図ることができる。
そのようなディスクドライブ装置を備えたコンピュータ装置は、バスに接続されたマイクロプロセッサと周辺インタフェースコントローラとを含むメインボードを有し、前記インタフェースコントローラにディスクドライブ装置のインタフェース回路が接続されている。前記バスに例えばPCIバスを採用し、前記インタフェースコントローラにIDEインタフェースコントローラを含む、パーソナルコンピュータのようなコンピュータ装置に、ディスクドライブ装置を標準搭載する場合、ディスクドライブ装置のインタフェース回路に前記ATAPIインタフェース回路を採用することができる。コンピュータ装置にディスクドライブ装置が標準搭載される場合、メインボードとディスクドライブ装置は殆どの場合一つの筐体に組み込まれる。
ディスクドライブ装置のアプリケーションプログラム領域の書き換えにおいては、コンピュータ装置のメインボードをホスト装置とし、このホスト装置を介してディスクドライブ装置のアプリケーションプログラムを全部又は一部だけ書き換えることができる。したがって、ディスクドライブ装置をコンピュータ装置から取り外すことなく、前記マイクロプロセッサを利用して、ディスクドライブ装置のアプリケーションプログラムを変更できる。
したがって、ディスクドライブ装置における再生速度の転換サイクルが極端に短くされ、ディスクドライブ装置がコンピュータ装置に標準搭載され、それによってドライブメーカはコンピュータ装置メーカ毎に相違する仕様でディスクドライブ装置のディスクアクセス及びインタフェース制御用のアプリケーションプログラムを作成しなければならない状況下において、コンピュータ装置メーカは、ディスクドライブ装置の評価期間を通じてドライブメーカからアプリケーションプログラムに関するバグの修正や追加機能を受けながらコンピュータ装置に組みこまれたままの状態でディスクドライブ装置の評価を行うことができる。前述のディスクドライブ装置は、アプリケーションプログラム領域に対する書き換え処理の能率化、書き換え処理中における異常状態から速やかに復旧して書き換え処理に戻れるなどの手段が講じられているから、ディスクドライブ装置の評価期間を通じて、マイクロコンピュータに内蔵された不揮発性メモリに、修正されたアプリケーションプログラムを効率的に再インストールすることができる。よって、コンピュータ装置メーカはディスクドライブ装置の評価期間を短期できる。
これにより、ディスクドライブ装置における再生速度の転換サイクルが極端に短くされている状況下において、コンピュータ装置メーカは、より再生速度の速いディスクドライブ装置を標準搭載したコンピュータ装置を効率的に市場に投入できるようになる。
また、記録情報再生制御プログラムのようなアクセス制御プログラムやインタフェース制御プログラムを含むアプリケーションプログラムはインタネット等の通信手段でディスクドライブ装置の製造又はその販売会社からコンピュータ装置メーカ又はその販売会社に、或いはコンピュータ装置メーカ又はその販売会社からコンピュータ装置の使用者に供給することも可能である。これによれば、コンピュータ装置メーカ又はその販売会社或いはコンピュータ装置の使用者に瞬時に前記アプリケーションプログラムを送ることができる。このとき、上記ディスクドライブ装置やこれを搭載したコンピュータ装置を使用すれば、その使用者側で、それら装置の記録情報再生速度などの機能を即座にバージョンアップすることができる。すなわち、使用者側での製品の機能変更が容易になる。
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記の通りである。
すなわち、ディスクドライブ装置のディスクアクセス及びインタフェース制御用の処理プログラムを含むアプリケーションプログラムの全部又は一部を効率的に修正できる。
ディスクドライブ装置の物理的な規模を増大させることなく前記アプリケーションプログラムの全部又は一部を容易に書き換えることができる。前記アプリケーションプログラムの書き換えの信頼性を向上できる。
記録情報再生装置やディスクドライブ装置のハードウェアの量産を先行させ、出荷直前まで前記アプリケーションプログラムの全部又は一部を修正でき、開発期間を短縮できる。
《CD−ROMドライブ装置》
図1には本発明の一例に係るCD−ROMドライブ装置がホスト装置と共に示されている。図1において1で示されるものは、CD−ROMディスク(単にディスクとも称する)であり、記録密度を上げるため、信号の記録速度がディスクの内周、外周の位置にかかわらず一定であるCLV(Constant Liner Velocity)方式によって情報が記録されている。このディスク1は、特に制限されないが、1シンボル(1シンボル=1バイト)のサブコード情報、24シンボルのデータ及び8シンボルのパリティーを1フレームとし、このフレーム毎に同期信号が付加されて構成されている。そのようなフレームの情報は特に制限されないが、EFM(Eight to Fourteen Modulation)変調されている。EFM変調は、1シンボル8ビットのデータを14ビットに変換する処理である。更に変換後の直流成分を除去するために3ビットのマージンビットが付加され、NRZI変調が行われている。また、フレームはインタリーブされている。
図1に示されるCD−ROMドライブ装置2は、ホスト装置3からのアクセス若しくはデータ転送要求をATAPIインタフェース回路4から受けると、マイクロコンピュータ5が、その要求に応ずるための制御を行う。マイクロコンピュータ5によって制御されるCD−ROMドライブ装置2の動作の概略は次の通りとされる。すなわち、ディスク1から光学的に情報が読み取られ、読み取られた情報はディジタル信号処理回路7で復号及びエラー訂正などが行われ、復号及びエラー訂正された情報は、CD−ROMやCD−Iなどの所定のフォーマットに従って、ディジタル信号処理回路7からバス8を介してCD−ROMデコーダ9に与えられる。CD−ROMデコーダ9はこれに与えられた情報に対して同期信号検出、デインタリーブ、付加ECC誤り訂正等の処理を施し、ホスト装置が要求するデータをATAPIインタフェース回路4を介してホスト装置3に出力する。
次に、CD−ROMドライブ装置2の各部について詳細に説明する。
前記ディスク1はディスクモータ10によって回転駆動される。ピックアップ11は、回転駆動されるディスク1にレーザ光を照射し、その反射光をフォトダイオードから成る受光部で受光して光電変換し、これによって、ディスク1に記録されている情報を読み出す。スレッドモータ12はピックアップ11をディスク1の半径方向に移動させる。ローディングモータ13はディスク1が載置される図示しないトレーを移動させる。
前記ディジタル信号処理回路7は、その動作プログラムに従ってディジタルフィルタ、EFM復調、C1,C2誤り訂正、ディジタルサーボ、速度制御等の機能を実現する。ディジタルサーボの機能は、スレッドモータ12を制御してピックアップ11の位置を制御する。速度制御の機能はディスクモータ10の回転速度を制御する。C1,C2誤り訂正機能は、C1,C2の2系列のリードソロモン符号を組み合わせたCIRC(Cross Interleaved Read-Solomon Code)という誤り訂正符号を用いて行うエラー訂正であり、その誤り訂正符号は前記フレームのパリティーに対応される。
ピックアップ11から読み出された信号(高周波信号)はプリアンプ14により増幅され、ディジタル信号処理回路7に供給される。この読み出し信号は、ディジタル信号処理回路7によって実現されるディジタルフィルタによって2値化され、ディジタル信号とされる。このディジタル化された読み出し信号は、速度制御及びEFM復調機能によって順次処理される。速度制御機能は、ディスク1の回転速度を検出し、所定の速度でディスク1を回転させるようにディスクモータ10を制御することである。また、速度制御の機能は、読み出し信号から同期信号を検出する機能を含む。EFM復調機能は、速度制御機能で検出された同期信号をもとに、EFM変調されている読み出し信号を復調することである。また、復調された読み出し信号の各フレームに含まれるサブコードは、信号700によってマイクロコンピュータ5のSCI(シリアル・コミュニケーション・インタフェース)回路50に与えられる。マイクロコンピュータ5は、入力されたサブコードに対してその動作プログラムによりサブコード信号処理を行う。すなわち、与えられたサブコードを例えば98フレーム分を一単位として組み立てて、それに含まれる時間情報やインデックス情報などを認識し、ディスクモータ10やスレッドモータ12などを制御するための制御情報をディジタル信号処理回路7に与える。
ディジタル信号処理回路7で復調され且つC1,C2訂正が行われた記録情報はバス8を介してCD−ROMデコーダ9に与えられる。CD−ROMデコーダ9に与えられるデータは、例えば2336バイト毎の物理セクタで区切られた物理フォーマットが規格化されている。例えばCD−ROM規格では、各セクタは、同期信号12バイト、ヘッダ4バイト、及びユーザデータから成る。ユーザデータの領域に対しては、C1,C2誤り訂正によっても訂正できない誤りを訂正可能にするためのECCのような付加誤り訂正符号を有する規格がある。CD−ROMデコーダ9は、RAMコントローラ90、誤り訂正回路91、及び同期信号検出・デインタリーブ回路92を備え、バッファRAM16に接続されている。RAMコントローラ90は、バッファRAM16に対するメモリコントローラである。同期信号検出・デインタリーブ回路92はバス8から順次供給されるセクタ毎のデータから同期信号を検出してデインタリーブ処理を行う。誤り訂正回路90は、C1,C2訂正によっても訂正しきれない誤りのあるデータに対して付加誤り訂正符号により誤り訂正を行う。デインタリーブされ、また誤り訂正されたデータは、RAMコントローラ90の制御によって逐次バッファRAM16に保持される。バッファRAM16に保持された読み出しデータは、単数若しくは複数セクタ単位でATAPIインタフェース回路4からホスト装置3に与えられる。
ATAPIインタフェース回路4は、コマンドバッファ40及びプロトコルシーケンス制御回路41を備える。プロトコルシーケンス制御回路41はATAPIインタフェースの規格に準拠したインタフェース制御を行う。ATAPIインタフェースは、パーソナルコンピュータの主体を成すマイクロプロセッサにハードディスク装置などをインタフェースするのに用いられている既存のIDEインタフェースコントローラを介してCD−ROMドライブ装置を制御可能にするためのインタフェース仕様である。このATAPIインタフェースにおいては、SCSI2の仕様に準拠したコマンドがパケットとしてCD−ROMドライブ装置に与えられ、これによって、CD−ROMドライブ装置が制御される。このようなATAPIインタフェースの仕様の詳細は、米国の外部記憶装置の業界団体SSF(Small Form Factor)Committeeの所属会社によって策定された「ATA Packet Interface for CD-ROM Revision 1.2」などがある。前記コマンドバッファ40はホスト装置3から送られてくるコマンドを保持する。
《マイクロコンピュータ》
前記マイクロコンピュータ5は、中央処理装置(CPU)51、8ビットタイマ52,53、16ビットタイマ54、A/D変換器55、SCI回路50、フラッシュメモリ56、RAM57及び入出力ポート59を単結晶シリコンのような1個の半導体基板に備え、特に制限されないが、それら回路モジュールが内部バス58を共有して成る。電気的消去及び書き込み可能な不揮発性半導体メモリとしての前記フラッシュメモリ56は前記CPU51の動作プログラムや定数データを格納するためのメモリとされ、CPU51はその動作プログラムに従って、前記プリアンプ14、ディジタル信号処理回路7、CD−ROMデコーダ9、及びATAPIインタフェース回路4などを制御する。RAM57はCPU51のワーク領域等に利用されるワークRAMとされる。
フラッシュメモリ56は、その記憶領域が所定のブロック(メモリブロック)単位で一括消去可能にされ、ブロック単位でデータを書き換え可能な構成を有する。そのようなフラッシュメモリは公知であるから、詳細な説明は省略するが、そのメモリセルトランジスタは、浮遊ゲートと制御ゲートを持つ2層ゲート構造の絶縁ゲート型電界効果トランジスタにより構成される。メモリセルトランジスタへの情報の書込み動作は、例えば制御ゲート及びドレインに高圧電圧を印加して、アバランシェ注入によりドレイン側から浮遊ゲートに電子を注入することで実現でき、この書込み動作によりメモリセルトランジスタは、その制御ゲートからみたしきい値電圧が、書込み動作を行わなかった消去状態のメモリセルトランジスタに比べて高くされる。一方消去動作は、例えばソースに高圧電圧を印加して、トンネル現象により浮遊ゲートからソース側に電子を引き抜くことによって実現され、それによってメモリセルトランジスタは、その制御ゲートからみたしきい値電圧が低くされる。書込み並びに消去状態の何れにおいてもメモリセルトランジスタのしきい値電圧は正の電圧レベルにされる。すなわちワード線から制御ゲートに与えられるワード線選択レベルに対して、書込み状態のしきい値電圧は高くされ、消去状態のしきい値電圧は低くされる。双方のしきい値電圧とワード線選択レベルとがそのような関係を持つことによって、選択トランジスタを採用することなく1個のトランジスタでメモリセルを構成することができる。メモリセルトランジスタに対する消去動作並びに書込み動作のための制御手法は、現在種々の態様が実現されており、ソースが共通接続されたメモリセルトランジスタに対して一括消去を行うもの、或いは、制御ゲートが共通接続されたメモリセルトランジスタに対して一括消去を行うものがある。そのような態様によってブロック単位での一括消去が可能にされている。消去ブロックの指定は消去ブロック指定レジスタに対する制御データの設定で指示することができる。また、フラッシュメモリに対する動作、すなわち、消去、消去ベリファイ、書き込み、書き込みベリファイ、読み出し等の動作は、フラッシュメモリのモードレジスタに対する制御情報の設定で指示される。それら設定は、中央処理装置51がその動作プログラムに従って行う。
前記内部バス58は、アドレス、データ及び制御信号のためのバスを総称する。内部バス8に含まれるデータバスやアドレスバスは前記CD−ROMデコーダ9及びATAPIインタフェース回路4に接続される。また、CPU51が前記CD−ROMデコーダ9及びATAPIインタフェース回路4をアクセスするためのアクセス制御信号510は、特に制限されないが、中央処理装置51から直接出力されるように図示されており、そのようなアクセス制御信号510は、リード信号、ライト信号、チップイネーブル信号などとされる。これによってCPU51は、コマンドバッファ40をアクセスし、また、RAMコントローラ90に制御情報を設定し、またRAMコントローラ90を介し或いは直接、バッファRAM16をアクセスすることができる。
前記16ビットタイマ54はディスク1に対するピックアップ11の線速度を学習するための情報を得る。
図1において93で示されるものはCD−ROMデコーダ9からCPU51に与えられる割込み信号であり、例えば前記付加誤り訂正コードによっても訂正不能な誤りを生じたことを通知する割込み信号などとされる。42で示されるものはATAPIインタフェース回路4からCPU51に与えられる割込み信号であり、例えば、ホスト装置3からコマンドバッファ40にコマンドが供給されたことを通知する割込み信号である。信号501で示されるものはプリアンプ14の特性を制御するための制御情報であり、502で示されるものはディジタル信号処理回路7におけるディジタルフィルタ、C1,C2誤り訂正、ディジタルサーボ、及び速度制御の各機能を制御するための制御情報である。それら情報は入出力ポート59から出力される。
《再生速度の転換に応じた回路特性の変更》
CD−ROMドライブ装置2において、記録情報再生速度(即ちディスク1からの記録情報の読み取り速度)の高速化は、CD−ROMドライブ装置2の内部回路の特性変更を伴う。即ち、第1には、ディスクモータ10やスレッドモータ12の回転速度などを高速化しなければならない。第2に、それに応じてディジタルサーボやディジタルフィルタの係数を変更しなければならない。第3に、読み取り速度の高速化によってC1,C2誤り訂正に費やせる時間が短くされるので、C1,C2誤り訂正能力を変更(低下)したプログラムを採用しなければならない。例えば4倍速のとき最大6シンボル訂正まで可能なとき、6倍速ではそれを最大4シンボル訂正まで訂正能力を下げるようにする。第4に、読み取り速度の高速化によって読み取り信号周波数が高くなるのでプリアンプ14のゲインや周波数帯域等の特性を変更しなければならない。第1乃至第3の変更点に対しては、当然ディジタル信号処理回路7の動作周波数も高速化しなければならない。第1乃至第3の修正点に対する対処はハードウェアの変更によらず、CPU51の動作プログラムの変更によって容易に対処できる。第4の修正点に対しては、プリアンプ14が有する図示しない加算及び波形等化器の周波数特性を4倍速、6倍速、8倍速そしてそれ以上に最適に対応できるよう切り換える回路を予め持つことにより、その特性をCPU51の動作プログラムによって切り換えて対処できる。斯る周波数特性の切換えは、加算及び波形等化された信号の2値化精度を向上させるために必要とされる。例えば、オペアンプを主体とする加算回路の帰還系に配置した波形等化フィルタの抵抗及び容量の値をスイッチを介して選択する構成によって、周波数特性を最適に切り換えることができる。
CD−ROMドライブ装置2における記録情報再生動作及び外部インタフェース動作は、CPU51がアプリケーションプログラムに含まれる記録情報再生制御プログラム及びインタフェース制御プログラムを実行して制御する。例えば記録情報再生速度を4倍速とする場合には4倍速用の記録情報再生制御プログラムを採用し、記録情報再生速度を8倍速とする場合には8倍速用の記録情報再生制御プログラムを採用する。この説明において、記録情報再生制御プログラムとは、ディスクモータなどに対するサーボ制御、ディジタル信号処理回路7に対する動作制御、CD−ROMデコーダ9等のための動作プログラムを総称する。前記インタフェース制御プログラムとは、ATAPIインタフェース回路4に対するコマンドやデータのインタフェース制御などを実現する処理プログラムを総称する。したがって、CD−ROMドライブ装置2において、アプリケーションプログラムは、ディスクに記録された情報を再生してホスト装置3に再生情報を与えるための処理プログラムを総称する。
《ユーザプログラム領域の書き換えによる再生速度転換への対処》
図2に例示されるように、前記フラッシュメモリ56はその記憶領域にリブートプログラム領域560とアプリケーションプログラム領域(以下ユーザプログラム領域とも称する)561とを有する。ユーザプログラム領域561はアプリケーションプログラムM2を格納するための領域とされる。前記リブートプログラム領域560は、入力制御プログラムM1、消去/書込み制御プログラムM3,転送制御プログラムM4などを格納する領域とされる。
入力制御プログラムM1は、外部からATAPIインタフェース回路4に供給された書込み若しくは書き換え対象とされる全部又は一部のアプリケーションプログラムを例えばバッファRAM16に取り込むために前記CPU51が実行するインタフェース用のプログラムとされる。消去/書込み制御プログラムM3は、バッファRAM16に取り込まれた前記全部又は一部のアプリケーションプログラムを前記ユーザプログラム領域561に書込み制御するためにCPU51が実行する書き換え制御プログラムとされる。転送制御プログラムは、リブートプログラム領域560に格納されている消去/書込み制御プログラムM3をCPUがワークRAM57に転送制御するプログラムとされる。CPU51はワークRAM57に転送された消去/書込み制御プログラムM3を実行して、ユーザプログラム領域561にバッファRAM16内の全部又は一部のアプリケーションプログラムM2を書き込みすることになる。
前記リブートプログラム領域560は更に、ベクタアドレスが格納されるベクタテーブル560Aとそのベクタテーブル560Aのベクタアドレスによって参照される所定のプログラムの格納領域560Bとを含む。前記ベクタテーブル560Aは、リセットベクタBCT1及びATAPI割込みベクタBCT2などを含む。プログラムの格納領域560Bはリセット処理プログラムPRG1及びATAPI割込み処理プログラムPRG2などを含む。
前記リセット処理プログラムPRG1は前記リセットベクタBCT1によって参照される。即ち、パワーオンリセット又はハードウェア若しくはソフトウェアリセットの指示があると、CPU51は前記リセットベクタBCT1を読込み、それによって指示される前記リセット処理プログラムPRG1の先頭アドレスにその処理を分岐させる。
図3にはリセット処理のフローチャートが示される。リセット処理では先ず内部の初期化若しくは内部回路の初期設定が行われる(S1)。特にマイクロコンピュータ5はその後、アプリケーションプログラムのオンボード書き込み若しくは書き換えを行うか否か、即ちユーザリブートモードか否かを判定する(S2)。この例では、ユーザリブートモードの起動条件は、特に制限されないが、CD−ROMドライブ装置2の電源投入時に所定のスイッチ例えばディスクのイジェクトスイッチを押すこととされる。イジェクトスイッチなどを操作して指示されるユーザリブートモードを、特に強制リブートモードとも称する。前記強制リブートモードでなければ、前記アプリケーションプログラムM2の実行に移る(S3)。前記ユーザリブートモードの場合には、リブートフラグがセット状態にされ(S4)、その後、ATAPI割込みを待つことになる(S5)。リブートフラグは例えばCPU51に含まれる図示を省略するフラグ若しくはコントロールレジスタの所定の1ビットが割り当てられる。
前記ATAPI割込み処理プログラムPRG2は前記ATAPI割込みベクタBCT2によって参照される。すなわち、ATAPIプロトコルにおいてATAPIインタフェース回路4に供給される一連の情報の先頭にはコマンドが配置されている。コマンドはコマンドバッファ40に取り込まれる。コマンドがコマンドバッファ40に取り込まれると、ATAPIインタフェース回路4は割込み信号42によってその旨をCPU51に通知する。CPU51はATAPI割込みを受け付けると、ATAPI割込みベクタBCT2を参照してATAPI割込み処理プログラムPRG2にその処理を分岐させる。
図4にはATAPI割込み処理プログラムのフローチャートが示される。CPU51は、ATAPI割込みがあると、コマンドバッファ40からコマンドをリードし、それを解読する(S10)。そして、前記リブートフラグを検査する。リブートフラグがセット状態でない場合には、そのコマンドの解読結果に従って、アプリケーションプログラムM2に含まれる所定の処理ルーチンを実行し、例えばディスク1から記録情報を読み出すための記録情報再生制御を開始する(S12)。前記リブートフラグがセット状態の場合に、そのコマンドが所定のコマンド(ベンダーユニークコマンド)である場合には、記録情報再生制御プログラムをオンボード書き込みするためのリブートプログラムが実行される。
この例において、前記リブートプログラムの実行とは、前記CPU51が、前記入力制御プログラムM1を実行して、ホスト装置3からATAPIインタフェース回路4に供給された記録情報再生制御プログラムをバッファRAM16に格納すると共に、前記転送制御プログラムM4を実行して消去/書込み制御プログラムM3を前記ワークRAM57に転送した後、ワークRAM57が保有する消去/書込み制御プログラムM3を実行して、バッファRAM16内の全部又は一部のアプリケーションプログラムをユーザプログラム領域561に書き込み制御することである。尚、前記ベンダーユニークコマンドは、特に制限されないが、ATAPIインタフェース仕様において規格化されていない(若しくは未使用の)コード情報とされる。
図2において、ユーザプログラム領域561に格納されるアプリケーションプログラムM2は、メインプログラムとサブルーチンに分けられた処理プログラム及び分岐先サブルーチンのプログラムアドレスを与える2次ベクタテーブルなどによって構成されている。図3のS2においてユーザリブートモードでないことが判定された後、CPU51の図示しないプログラムカウンタは、アプリケーションプログラムM2における処理プログラムの先頭アドレスに強制され、これによって、そのプログラムアドレスを起点にアプリケーションプログラムを実行する。
前記フラッシュメモリ56は、図5に例示されるように、一括消去単位とされる複数個のメモリブロック(BLK0〜BLKn)を有する。このとき、前記リブートプログラム領域560及びユーザプログラム領域561を、相互に異なるメモリブロックに割り当てる。例えば、メモリブロックBLK0がリブートプログラム領域560に割り当てられている。
消去/書込み制御プログラムM3はユーザプログラム領域561だけを書込み対象とする。即ち、図5に従えば、消去/書込み制御プログラムM3は、その制御動作上、消去/書込みブロック指定レジスタに対して、メモリブロックBLK0を消去・書込み対象とすることはない。換言すれば、消去/書込み制御プログラムM3は、リブートプログラム領域560を書込み対象とはしない。この意味において、リブートプログラム領域560の書き換えが阻止されている。
前記リブートプログラム領域560が保有しているプログラムは、ATAPIインタフェース回路4を介して書き換えすることができないから、初期的な書込みの信頼性が高くなければならない。それを保証するには、特に制限されないが、マイクロコンピュータの製造工程でそれらプログラムを書き込むことが望ましい。
図6にはマイクロコンピュータの製造工程が概略的に示される。例えば多数のマスクパターンを利用して単結晶シリコンウェーハ上にマイクロコンピュータを構成する回路を集積したウェーハを製作する(ステップP1)。製作されたウェーハに対してウェーハ検査が行われ(ステップP2)、そしてウェーハ上の回路機能に対するプローブ検査が行われ、ウェーハ上のマイクロコンピュータチップに対する良否が判定される(ステップP3)。プローブ検査の後、ダイシングによってウェーハから複数個のマイクロコンピュータチップが切り出され、良品チップがボンディングやパッケージングの工程を経て組み立てられる(ステップP4)。組み立て後、雰囲気温度や動作電圧を許容限度の上限としてマイクロコンピュータを動作させ、近い将来に生ずるであろう不良を予じめ顕在化させるためのエージングを行なう(ステップP5)。エージングの後、テスタを使ってマイクロコンピュータLSIの選別を行なう(ステップP6)。この選別工程には、内蔵フラッシュメモリ56に対する消去、書込みテストが含まれる。この工程を利用して、リブートプログラム領域に前記消去/書込み制御プログラム等のリブートプログラムの書込みを行なう。書込みされたリブートプログラムに対しては、その動作テストを併せて行なうことも容易である。選別工程を経た後、マイクロコンピュータLSIはストックされ、出荷前に出荷検査が行なわれ(ステップP7)、検査で不都合のないものが出荷される(ステップS8)。
上述の様に、消去/書込み制御プログラムM3はリブートプログラム領域560を消去/書込み対象とはしない。これは所謂、ソフトウェアプロテクトである。CPUが暴走したり或いはユーザプログラムの不備によって、リブートプログラム領域560が不所望に消去・書込みされないようにするために、ハードウェアプロテクトの手段を備えることができる。
図7にはハードウェアプロテクトのための一例が示される。図7において562は一括消去対象とするメモリブロックを指定する消去ブロック指定レジスタである。例えば図5に対応させれば、消去ブロック指定レジスタ562は、メモリブロックBLK0〜BLKnに1対1対応される制御ビットES0〜ESnを有し、制御ビットES0〜ESnは論理値1によって対応メモリブロックの消去をフラッシュメモリ56に指示する。563は、消去ブロック指定レジスタ562による消去指示に拘らず消去を禁止するメモリブロックを指定するための消去禁止ブロック指定レジスタである。例えば図5に対応させれば、消去禁止ブロック指定レジスタ563は、メモリブロックBLK0〜BLKnに1対1対応される制御ビットIH0〜IHnを有し、制御ビットIH0〜IHnは論理値0によって対応メモリブロックの消去を禁止する。消去ブロック指定レジスタ562と消去禁止ブロック指定レジスタ563との対応ビットは夫々2入力アンドゲートAND0〜ANDnに供給され、アンドゲートAND0〜ANDnの出力が、フラッシュメモリ56に対する消去ブロック指示情報として供給される。消去ブロック指定レジスタ562及び消去禁止ブロック指定レジスタ563の双方に対するデータ設定はCPU51が行なう。特に、消去禁止ブロック指定レジスタ563に対するデータ設定はイニシャライズリセットで行なうことができる。例えば、IH0を論理値0に設定する。この構成によれば、消去/書込み制御プログラムM3の実行中にCPU51が暴走したとき、レジスタ563の値が不所望に書き換えられない限り、レジスタ562の値が変化されても、ブートプログラム領域560は消去されない。
図8にはハードウェアプロテクトを実現するための別の例が示されている。図8において562は図7と同じ消去ブロック指定レジスタである。564は、マイクロコンピュータ5の外部端子T0〜Tiから供給されるデータをデコードして、メモリブロック単位の消去禁止信号を出力する。前記消去ブロック指定レジスタ562は内部バス58を介しCPU51によってデータ設定される。内部バス58と消去ブロック指定レジスタ562の入力との間には、2入力アンドゲートAND0〜ANDnが配置されている。アンドゲートAND0〜ANDnの一方の入力には、内部バス58の信号線がビット毎に供給され、他方の入力には前記消去禁止信号がビット毎に供給される。したがって、論理値0の消去禁止信号が供給されるアンドゲートの出力は常時論理値0にされるから、そのアンドゲートの出力に対応される消去ブロック指定レジスタの制御ビットは論理値1(消去指示レベル)にされることはない。例えば、メモリブロックBLK0がリブートプログラム領域に割り当てられるとき、アンドゲートAND0の出力が常時論理値0になるように外部端子T0〜Tiをプルアップ又はプルダウンしておけば、CPU51が暴走した場合もリブートプログラム領域560が書き換えられる虞は全くない。
以上説明したように、前記マイクロコンピュータ5がATAPIインタフェース回路4やCD−ROMデコーダ9などと一緒に配線基板(ボード)に実装されて構成されたCD−ROMドライブ装置2において、リセット時に前記強制リブートモードを設定することにより、当該マイクロコンピュータ5のCPU51は内蔵フラッシュメモリ56のリブートプログラムを実行して、ユーザプログラム領域の561のアプリケーションプログラムM2の全部又は一部を、ホスト装置3からATAPIインタフェース回路4に供給される新たなプログラムに更新することができる。これにより、今後極めて短いサイクルで生ずるであろう、再生速度転換時期に、再生速度の向上に応じて必要な修正を加えたアプリケーションプログラムM2の全部又は一部を書き換えるだけで、CD−ROMドライブ装置2におけるそのような再生速度の転換に即座に若しくはタイムリーに対応できることになる。アプリケーションプログラムの書き換え若しくは更新は、アプリケーションプログラムの全部であることに限定されず、その一部であってもよい。アプリケーションプログラムに含まれる再生制御プログラムだけ書き換え対象としてもよい。要するに、必要な修正がアプリケーションプログラムの全体に及べばその全体を、また、必要な修正がアプリケーションプログラムの一部で済めば当該一部を書き換えればよい。
このとき、前記フラッシュメモリ56の書き換え対象はユーザプログラム領域561とされる。リブートプログラム領域560は書き換え対象ではないから、フラッシュメモリ56の書き換え動作途中で異常があった場合にも、再度リブートプログラムを実行すれば、すぐにユーザプログラム領域561に対する再書き込み動作に移行でき、書き換え途中における異常状態からの復旧に手間取ることはない。
CD−ROMドライブ装置2においてアプリケーションプログラムM2を格納しているのは前記フラッシュメモリ56だけであるから、書き換えの制御手順を簡素化でき、しかも書き換え時間も短縮できる。更に、アプリケーションプログラムとリブートプログラムは一緒にフラッシュメモリ56に格納されるから、夫々のプログラムが別々のメモリに格納される場合に比べて、CD−ROMドライブ装置2の物理的な規模の増大を極力抑制して上記効果を得ることができる。
上記の例ではリブートプログラムは、入力制御プログラム、書き換え制御プログラム及び転送制御プログラムを含んでいる。したがって、ユーザプログラム領域561の更新に当たって、ホスト装置3は前記フラッシュメモリ56に対する書込みコマンドに続けてユーザプログラム領域561に書き込むべきアプリケーションプログラムをCD−ROMドライブ装置2に転送すればよく、書き換え制御プログラムを転送する必要はないから、ユーザプログラム領域561を更新する処理時間を更に短縮することができる。
前記リブートプログラム領域560は、リセットベクタBCT1とリセット処理プログラムPRG1の格納領域とを有している。このとき、前記CPU51は、リセットの指示に応答して前記リセットベクタBCT1を参照することにより前記リセット処理プログラムPRG1の実行に移行する。リセット処理プログラムPGR1の実行途上ではイジェクトスイッチが押されたか否かによって、ホスト装置3からの書き換えコマンドに応答し得る強制リブートモードであるか否かを判定する。強制リブートモードのときは、前記書き換えコマンドの入力を待って前記リブートプログラムの実行に遷移し、強制リブート状態でないときは前記ユーザプログラム領域のアプリケーションプログラムを実行可能な状態に遷移する。したがって、フラッシュメモリ56の書き換えに際して異常が起きても、リセットをかけて強制リブートモードの指示を行えば、その異常から容易に復旧して、フラッシュメモリ56を書き換える処理に戻ることができる。この点においても、ユーザプログラム領域を更新する処理時間を短縮することができる。
前記フラッシュメモリ56は一括消去単位とされる複数個のメモリブロックBLK0〜BLMnを有している。このとき、前記リブートプログラム領域と前記ユーザプログラム領域とを相互に異なるメモリブロックに割り当てているから、ユーザプログラム領域561に対する消去動作を効率化できる。換言すれば、ユーザプログラム領域561に書き換えに当たって当該領域の消去動作を一緒に行うことができる。
ホスト装置3とのインタフェースにATAPIインタフェース回路4を採用するから、CD−ROMドライブ装置2は、SCSIインタフェース仕様等のディスクドライブ装置に関して蓄積された過去のソフトウェア資産を承継しながら、拡張IDEのような新しいインタフェースを採用でき、しかもコストの低減を図ることができる。前記ATAPIインタフェース仕様は、パーソナルコンピュータ等の分野で広く普及しているIDEインタフェースに準拠しているから、ユーザプログラム領域561の書き換えに際して、CD−ROMドライブ装置メーカはその生産ライン上のホストシステムを利用できる。また、パーソナルコンピュータのセットメーカは、CD−ROMドライブ装置をパーソナルコンピュータに組み込んだままの状態で、当該パーソナルコンピュータを利用して再生制御プログラムの書き換えを行うことができる。
《パーソナルコンピュータ》
図9には前記CD−ROMドライブ装置2を内蔵したパーソナルコンピュータ30の一例が示されている。このパーソナルコンピュータ30において、マイクロプロセッサ31は、特に制限されないが、PCI(Peripheral Component Interconnect)バスコントローラ32を介してPCIバスの規格に準拠した内部バス(PCIバス)33に接続されている。前記内部バス33には周辺コントローラとして代表的に示されたIDEインタフェースコントローラ34が結合され、前記CD−ROMドライブ装置2は、インタフェースケーブルとしてのATAPIバス35を介して前記IDEインタフェースコントローラ34に結合されている。前記IDEインタフェースコントローラ34はハードディスク装置36と内部バス33とのインタフェース制御も行う。前記マイクロプロセッサ31、PCIバスコントローラ32、内部バス33及びIDEインタフェースコントローラ34はPCボード(メインボード)37を構成する。前記PCボード37、CD−ROMドライブ装置2及びハードディスク装置36は共通のケース(筐体)に内蔵されいる。尚、図示は省略するが、前記PCボード上にはその他の周辺コントローラとして、グラフィックアクセラレータ、プリンタなどとのパラレルインタフェースを行うセントロニクスインタフェースコントローラ、及びフロッピーディスクドライブ装置とのインタフェース制御を行うフロッピーディスクコントローラ等が内部バス33に接続されて実装されている。図9を図1に対応させると、図1のホスト装置3は、図9のパーソナルコンピュータ30においてCD−ROMドライブ装置2を除いた部分になる。
前記パーソナルコンピュータ30においては、CD−ROMドライブ装置2とIDEインタフェースコントローラ34との接続状態を変更することなく、若しくはCD−ROMドライブ装置2をパーソナルコンピュータ30の筐体から取り外すことなく、前記マイクロプロセッサ31にユーティリティープログラムを実行させて、CD−ROMドライブ装置2に書き換えコマンドや新しいアプリケーションプログラムを転送してやれば、上記同様、CD−ROMドライブ装置2の再生制御プログラムを簡単に更新することができる。
《ユーザプログラム領域の書き換え動作》
図10〜図15は図9に示されるパーソナルコンピュータ30に搭載された状態でCD−ROMドライブ装置2のアプリケーションプログラムを書きかえる動作を順を追って示している。図10〜図15においてCD−ROMドライブ装置2はパーソナルコンピュータ30の筐体38の外に拡大して図示してある。
図10は初期状態を示し、CD−ROMドライブ装置2はATAPIバス35を介して前記IDEインタフェースコントローラ34に接続されている。前記入力制御プログラムM1、消去/書き込み制御プログラムM3、転送制御プログラムM4が格納されているリブートプログラム領域560は、アプリケーションプログラムM2が格納されるユーザプログラム領域561とは、相互に異なるメモリブロックに割り当てられている。
図11に示されるように、アプリケーションプログラムを書き換えるときは、例えばCD−ROMドライブ装置2をリセットすると共に、ディスクのイジェクトスイッチを押して、CD−ROMドライブ装置2に前記強制リブートモードを設定する。例えばフロッピーディスクFDには、バグの修正された或いはバージョンアップされたアプリケーションプログラムと、そのアプリケーションプログラムをCD−ROMドライブ装置2に書き込むためのユーティリティープログラムが格納されている。このユーティリティープログラムは、アプリケーションプログラムをCD−ROMドライブ装置2に転送するための転送ソフトウェアである。前記フロッピーディスクFDをパーソナルコンピュータ30のフロッピーディスクドライブに挿入して起動する。ユーティリティープログラムはハードディスク装置36に格納されていてもよい。
起動された転送ソフトウェアの指示に従ってパーソナルコンピュータ側でキー操作等が行われると、パーソナルコンピュータ30のマイクロプロセッサ31は、フラッシュメモリ56に対する書き込みコマンド(前記ベンダーユニークコマンド)をIDEインタフェースコントローラ34を介して出力する。ATAPIインタフェース回路4は、前記書き込みコマンドを認識すると、ATAPI割込み信号42をCPU51に与える。これによってCPU51は、入力制御プログラムM1を実行し、先ず最初にバッファRAM16の内容をクリアする。
図12に示されるように、パーソナルコンピュータ30のマイクロプロセッサ31は、前記書き込みコマンドに続いて、新たなアプリケーションプログラム(新アプリケーションプログラム)をIDEインタフェースコントローラ34を介して出力する。CPU51は入力制御プログラムM1を実行する。これによりCPU51は、ATAPIインタフェース回路4に供給されたアプリケーションプログラムをバッファRAM16に順次格納していく。ATAPIインタフェース回路4に順次供給されてくる情報にパリティーが付加されている場合には、パリティーチェックを行い、エラーのあるデータブロックに対して再送が要求される。
図13に示されるように、新アプリケーションプログラムがバッファRAM16に格納された後、CPU51は転送制御プログラムM4の実行に移る。これによってCPU51は、消去/書き込み制御プログラムM3をマイクロコンピュータ5のワークRAM57に転送制御する。
図14に示されるように、消去/書き込み制御プログラムM3がワークRAM57に転送完了された後、CPU51はそのワークRAM57に格納された消去/書き込み制御プログラムM3の実行に移る。このときの消去ブロックの指定は消去/書き込み制御プログラムM3に従って行われる。また、マイクロコンピュータ5には、書き込み及び消去用の高電圧が供給されている。消去/書き込み制御プログラムが実行されることにより、先ず、フラッシュメモリ56のユーザプログラム領域561が消去・消去ベリファイされる。次に図15に示されるように、CPU51は、バッファRAM16に格納されている新たな再生制御プログラムとしての新アプリケーションプログラムを順次フラッシュメモリ56のユーザプログラム領域561に書き込む動作と書き込みベリファイ動作とを行っていく。特に制限されないが、書き込みアドレス等は消去/書き込みプログラムによって規定されている。
書き込み動作終了後、CD−ROMドライブ装置2がリセットされることにより、CD−ROMドライブ装置2は、更新されたアプリケーションプログラムに従ってCD−ROMの再生制御を行うことができる。
図16には前記ユーザプログラム領域を書き換える動作のフローチャートが概略的に示されている。前記転送ソフトウェアが起動されると、CPU51は、マイクロプロセッサ31からATAPIインタフェース回路4を介して供給される前記新アプリケーションプログラムをバッファRAM16に転送すると共に、消去/書き込み制御プログラムをワークRAM57に転送する(S20)。転送に際してはパリティーチェック若しくはサムチェックを行い、転送異常があるかを監視する(S21)。転送異常がある場合にはそのアプリケーションプログラムを再送する。バッファRAM16及びワークRAM57への転送が完了されると、フラッシュメモリ56のユーザプログラム領域561が消去され(S22)、次いで、バッファRAM16に転送された新アプリケーションプログラムがフラッシュメモリ56のユーザプログラム領域561に書き込まれる(S23)。書き込みデータに対しては書き込みベリファイが行われる(S24)。
上述のようなユーザプログラム領域561の書き換え処理は、CD−ROMドライブメーカがホスト装置3を用いて実施できることは言うまでもないが、図10〜図16に示した処理は、例えばCD−ROMドライブ装置2がパーソナルコンピュータ30に標準搭載されるとき、パソコンメーカが、パーソナルコンピュータ30上でCD−ROMドライブ装置2を評価する期間に、バグの修正されたアプリケーションプログラムをユーザプログラム領域561に再インストールする手法として位置付けることができる。
図10〜図16に基づいて説明したように、CD−ROMドライブ装置2のユーザプログラム領域561の書き換えでは、パーソナルコンピュータ30のPCボード37をホスト装置とし、このPCボード37を介してCD−ROMドライブ装置2のアプリケーションプログラムを書き換えることができる。したがって、CD−ROMドライブ装置2をパーソナルコンピュータ30から取り外すことなく、前記マイクロプロセッサ31を利用して、CD−ROMドライブ装置2の再生制御プログラム及びインタフェース制御プログラムなどのアプリケーションプログラムの全部又は一部を変更できる。
したがって、CD−ROMドライブ装置2における再生速度の転換サイクルが極端に短くされ、CD−ROMドライブ装置2がパーソナルコンピュータ30に標準搭載され、それによってCD−ROMドライブメーカはパソコンメーカ毎に相違する仕様でCD−ROMドライブ装置2のアプリケーションプログラムを作成しなければならない状況下において、パソコンメーカは、CD−ROMドライブ装置2の評価期間を通じてドライブメーカからアプリケーションプログラムに関するバグの修正や追加機能を受けながらパーソナルコンピュータ30に組みこまれたままの状態でCD−ROMドライブ装置2の評価を行うことができる。前述の通り、CD−ROMドライブ装置2は、ユーザプログラム領域561に対する書き換え処理の能率化、書き換え処理中における異常状態から速やかに復旧して書き換え処理に戻れるなどの手段が講じられているから、CD−ROMドライブ装置2の評価期間を通じて、マイクロコンピュータ5に内蔵されたフラッシュメモリ56を、修正されたアプリケーションプログラムに効率的に書き換えることができる。よって、パソコンメーカはディスクドライブ装置の評価期間を短期できる。
これにより、CD−ROMドライブ装置2における再生速度の転換サイクルが極端に短くされている状況下において、パソコンメーカは、より再生速度の速いCD−ROMドライブ装置2を標準搭載したパーソナルコンピュータ30を効率的に市場に投入できるようになる。
また、パーソナルコンピュータのOS(Operating System)が変更(バージョンアップ)されるような場合に、変更されたOSに対応されるコマンドを処理するインタフェース機能をアプリケーションプログラムのインタフェース制御プログラムに反映するような修正にも即座に対応することができる。
前記アプリケーションプログラムはインタネット等の通信手段でCD−ROMドライブ装置2の製造又は販売会社からパソコンメーカ又はその販売会社に、或いはパソコンメーカ又はその販売会社からパーソナルコンピュータのエンドユーザに供給することも可能である。これによれば、パソコンメーカ又はその販売会社或いはパーソナルコンピュータのエンドユーザに瞬時に前記アプリケーションプログラムを送ることができる。したがって、前記パーソナルコンピュータ30がインターネットにアクセスするハードウェア及びソフトウェアを備えたものであれば、バージョンアップ若しくはバグが修正された再生制御プログラムをユーザプログラム領域561に簡単に再インストールすることができ、パソコンメーカによるCD−ROMドライブ装置の評価期間の短縮はもとより、エンドユーザに対しても、CD−ROMドライブ装置の機能変更を容易化することができる。
《消去/書き込み制御プログラムのダウンロード化》
上記構成ではフラッシュメモリ56のリブートプログラム領域561に消去/書き込み制御プログラムM3を配置し、そこからワークRAM57に内部転送して当該プログラムをCPU51が実行するようにした。これに対し、消去/書き込み制御プログラムM3をフラッシュメモリ56には格納せず、ユーザプログラム領域561を書き換える度に、前記ホスト装置3若しくはPCボード37を介してワークRAM57にダウンロードするようにできる。これによれば、フラッシュメモリ56はその消去/書き込み制御プログラムを保有しないから、CPU51が暴走してフラッシュメモリ56に格納されているプログラムを不所望に実行することがあっても、当該フラッシュメモリ56が誤ってか書き換えられる虞は全くなくなる。
図17〜図22には、フラッシュメモリ56がその消去/書き込み制御プログラムM3を保有しな場合において、パーソナルコンピュータ30に搭載された状態でCD−ROMドライブ装置2のアプリケーションプログラムを書きかえる動作を順を追って示している。図17〜図22においてCD−ROMドライブ装置2はパーソナルコンピュータ30の筐体38の外に拡大して図示してある。
図17は初期状態を示し、CD−ROMドライブ装置2はATAPIバス35を介して前記IDEインタフェースコントローラ34に接続されている。リブートプログラム領域560には前記消去/書き込み制御プログラムM3は格納されていない。
図18に示されるように、アプリケーションプログラムを書き換えるときは、例えばCD−ROMドライブ装置2をリセットすると共に、ディスクのイジェクトスイッチを押して、CD−ROMドライブドライブ装置2に前記強制リブートモードを設定する。例えばフロッピーディスクFDには、バグの修正された或いはバージョンアップされたアプリケーションプログラムと、CPU51が実行してそのアプリケーションプログラムをユーザプログラム領域561に書き込むための消去/書き込み制御プログラムと、前記マイクロプロセッサ31が実行してCPU51にユーザプログラム領域561の書き換え処理を実行させるためのユーティリティープログラムとが格納されている。このユーティリティープログラムは、アプリケーションプログラム及び消去/書き込み制御プログラムをCD−ROMドライブ装置2に転送するための転送ソフトウェアとすることができる。前記フロッピーディスクFDをパーソナルコンピュータ30のフロッピーディスクドライブに挿入してユーティリティープログラムを起動する。ユーティリティープログラムはハードディスク装置36に格納されていてもよい。
起動された転送ソフトウェアの指示に従ってパーソナルコンピュータ側でキー操作等が行われると、パーソナルコンピュータ30のマイクロプロセッサ31は、フラッシュメモリ56に対する書き込みコマンド(前記ベンダーユニークコマンド)をIDEインタフェースコントローラ34を介して出力する。ATAPIインタフェース回路4は、前記書き込みコマンドを認識すると、ATAPI割込み信号42をCPU51に与える。これによってCPU51は、入力制御プログラムM1を実行し、先ず最初にバッファRAM16の内容をクリアする。
図19に示されるように、パーソナルコンピュータ30のマイクロプロセッサ31は、前記書き込みコマンドに続いて、新たなアプリケーションプログラム(新アプリケーションプログラム)及び消去/書き込み制御プログラムをIDEインタフェースコントローラ34を介して出力する。CPU51は入力制御プログラムM1を実行する。これによりCPU51は、ATAPIインタフェース回路4に供給されたアプリケーションプログラム及び消去/書き込み制御プログラムをバッファRAM16に順次格納していく。
図20に示されるように、新アプリケーションプログラム及び消去/書き込み制御プログラムがバッファRAM16に格納された後、CPU51は転送制御プログラムM4の実行に移る。これによってCPU51は、消去/書き込み制御プログラムM3をバッファRAM16からマイクロコンピュータ5のワークRAM57に内部転送する。
そして、図21に示されるように、CPU51はそのワークRAM57に格納された消去/書き込み制御プログラムM3の実行に移る。このときの消去ブロックの指定は消去/書き込み制御プログラムM3に従って行われる。また、マイクロコンピュータ5には、書き込み及び消去用の高電圧が供給されている。消去/書き込み制御プログラムが実行されることにより、先ず、フラッシュメモリ56のユーザプログラム領域561が消去・消去ベリファイされる。次に図22に示されるように、CPU51は、バッファRAM16に格納されている新アプリケーションプログラムを順次フラッシュメモリ56のユーザプログラム領域561に書き込む動作と書き込みベリファイ動作とを行っていく。書き込み動作終了後、CD−ROMドライブ装置2がリセットされることにより、CD−ROMドライブ装置2は、更新されたアプリケーションプログラムに従ってCD−ROMの再生制御を行うことができる。
《ユーザプログラム領域に対するチェックサム》
上記説明した強制リブートモードの設定はイジェクトスイッチを操作することが条件とされる。ここでは、前記強制リブートモードのほかに、ユーザプログラム領域561を書き換えることができる動作モードを設定可能にしたCD−ROMドライブ装置2を説明する。
図23に示すように、前記ユーザプログラム領域561は、その一部の記憶領域に、その他の記憶領域が保有する情報のサム値を格納するサム値格納領域M21を有する点が図2と相違する。前記サム値格納領域M21に対するサム値の書き込みは、ユーザプログラム領域561に対する書き込み動作毎に行うことになる。前記リブートプログラム領域560は、図2に基づいて説明したのと同様に、リセットベクタBCT1及びリセット処理プログラムPGM1等の格納領域を有する。
図24にはリセット時に前記サム値を考慮してユーザプログラム領域561を書き換え可能にするときの動作フローチャートが示される。
リセット割り込みがあると前記CPU51は、リセットの指示に応答して前記リセットベクタBCT1を参照することにより前記リセット処理プログラムPRG1の実行に移行し(S30)、マイクロコンピュータ5内部やその周辺回路を初期化する(S31)。
そして、前記書き換えコマンドに応答し得る強制リブートモードか否かを判定する(S32)。即ち、イジェクトスイッチが押されていれば強制リブートモードと判定される。強制リブートモードのときは、前記図2及び図3で説明した通り前記書き換えコマンドの入力を待って前記リブートプログラムの実行に遷移する。即ち、リブートフラグをセットし(S33)、前記書き換えコマンドの入力を待って前記リブートプログラムを起動し(S34)、今まで説明したようにユーザプログラム領域561に新たなアプリケーションプログラムを書き込む(S35)。この処理の最後には、ユーザプログラム領域のデータのサム値を演算し、その値を前記サム値格納領域M21に保存しておく。
ステップS32の判断で強制リブートモードでないとき、CPU51はユーザプログラム領域561のサム値を演算し(S36)、演算した値が前記サム値格納領域M21に格納されているサム値に一致するかを判定する(S37)。
ステップS37の判定結果が不一致の場合には前記書き換えコマンドの入力を待って前記リブートプログラムの実行に遷移する。ステップ37の判定結果が一致の場合には2次ベクタテーブルを参照して(S38),前記アプリケーションプログラム領域561のプログラムを実行可能な状態に遷移する(S39)。
このように、ホスト装置3や、CD−ROMドライブ装置2などの異常によって前記アプリケーションプログラム領域561のプログラムが不所望に書き換えられたときは、強制リブートモードが指示されなくても、リセットされるだけで、自己診断的に、CPU51の動作を、アプリケーションプログラム領域561に対する書き換え可能な状態に遷移させることができ、CD−ROMドライブ装置2の誤動作を未然に防止することができる。
《プログラム配置のその他の例》
以上の説明ではアプリケーションプログラムはフラッシュメモリ56のユーザプログラム領域561に配置した。また、リブートプログラムはリブートプログラム領域560に配置した。CD−ROMドライブ装置2におけるプログラム配置は、次のように変更することができる。例えば、図25に示されるようにベクタテーブルをワークRAM57に配置してもよい。ベクタテーブルをRAM化すれば、CPU51の動作モードなどに応じてベクタテーブルの内容を動的に変更することが容易になる。
図26には前記フラッシュメモリ56のアドレスマップの別の例が示されている。図26の例においてリセット処理プログラムPRG1はサム(SUM)値チェックと強制リブートモードSW(イジェクトスイッチ)の操作を検出する処理などを規定する。アプリケーションプログラム領域561に含まれるブート処理プログラムM23は、リブートプログラム領域560のPRG2,M1,M3,M4の各プログラムと同じ処理を規定するものである。すなわち、ユーザプログラム領域561のアプリケーションプログラムを実行可能な状態においても、書き換えコマンドを受け付けてユーザプログラム領域561の書き換えを行うことができる。この場合には、イジェクトスイッチの操作やサム値のチェックは要しないものとされる。
《フラッシュメモリに対する書き込み態様》
以上説明してきたフラッシュメモリのリブートプログラム領域560及びユーザプログラム領域561に対する書き込み動作を、CD−ROMドライブメーカ(ドライブメーカ)及びPCメーカ(パソコンメーカ)の処理に対応付けて説明する。
図27はCD−ROMドライブメーカによるCD−ROMドライブ装置2の製造手順を示すフローチャートである。
CD−ROMドライブメーカは、マイクロコンピュータ5をLSIメーカから購入してCD−ROMドライブ装置2を組み立てる。特にその回路部分は配線基板(PCB)上に構成する(S40)。この時マイクロコンピュータ5に内蔵されたフラッシュメモリ56のリブートプログラム領域560に対するプログラムの書き込み態様は、CD−ROMドライブメーカがEPROMライタによって行う場合(S41)、半導体メーカによるマイクロコンピュータ5の製造工程で行う場合(S42)、或いは、前記配線基板にマイクロコンピュータ5を実装し(S43)た後で当該マイクロコンピュータ5にブートモードを設定して行う場合(S46)がある。
EPROMライタで書き込みを行う場合には、図31に例示するようにマイクロコンピュータ5の内部バス58を外部とインタフェースさせるポート581(図1には図示を省略してある)をEPROMライタ582に接続して行う。EPROMライタ582は、書き込み高電圧をマイクロコンピュータ5に印加して、プログラムモードをマイクロコンピュータ5に設定する。プログラムモードが設定されたマイクロコンピュータ5は、EPROMライタ582にとってフラッシュメモリ単体LSIと同様にみなされ、EPROMライタ582はマイクロコンピュータ5の内蔵フラッシュメモリ56を外部から書き換え可能になる。この状態で、EPROMライタ582によってフラッシュメモリ56のリブートプログラム領域560に前記リブートプログラムなどを初期的に書き込む(S41)。マイクロコンピュータのリブートプログラム領域560に対する書き込み後、当該マイクロコンピュータ5は前記CD−ROMドライブ装置2の配線基板に実装される(S44)。尚、図31において図1と同一の回路ブロックには同一参照符号を付してある。
マイクロコンピュータ5のリブートプログラム領域560に対する書き込みがLSIメーカによって既に完了されている場合には(S42)、当該マイクロコンピュータ5がCD−ROMドライブ装置2の前記配線基板に実装される(S45)。
プリント配線基板にマイクロコンピュータ5を実装した後、マイクロコンピュータ5にブートモードを設定してリブートプログラム領域560にプログラムを書き込む(S46)場合には、例えば図30に例示されるように、RS23Cのようなシリアルポート583を介して結合されたホスト装置584で制御する。図30に例示されるマイクロコンピュータ5は図1のマイクロコンピュータ5に対してSCI回路585、ブートROM586及びポート587が追加されている。ホスト装置585から書き込み用高電圧588とブートモード信号589がポート587を介してマイクロコンピュータ5に供給されると、CPU51はブートROM586のブートプログラムを実行する。CPU51はブートプログラムを実行することにより、フラッシュメモリ56を全面消去し、SCI回路585を初期設定し、シリアルポート583を介してホスト装置584とインタフェース可能にする。CPU51はホスト装置584から供給されるプログラムをフラッシュメモリ56のリブートプログラム領域560に書き込み制御する。これによって、フラッシュメモリ56のリブートプログラム領域560に図2で説明したようなリブートプログラムなどが書き込まれる。尚、シリアルポート583を利用して書き込む動作速度は、その性質上一般的に遅い。その場合には、CD−ROMドライブ装置2の回路ボードには、ディスクアクセス動作には直接用いられないシリアルポート583を特別に配置しなければならならず、それによってCD−ROMドライブ装置の回路ボードの物理的な規模が大きくなることに注意しなければならない。CD−ROMドライブ装置の物理的な規模を小さくすることを優先させるならば、そのようなシリアルポート583を介するプログラム書込みのための構成を設けないことが得策である。
前記ステップS44、S45又はS46によってフラッシュメモリ56のリブートプログラム領域560が初期設定され後、マイクロコンピュータ5がリセットされ、ユーザプログラム領域561に書き込みを行うために前記強制リブートプログラムモードが設定される(S47)。そして、前記ホスト装置3から書き込みコマンドを発行することにより、リブートプログラムを起動し、ユーザプログラム領域561にアプリケーションプログラムなどのアプリケーションプログラムを書き込む(S48)。正常に書き込みできたかが判定され(S49)、異常があった場合には再度リブートプログラムが起動される(S50)。正常に書き込まれた場合には、当該書き込まれたアプリケーションプログラムをマイクロコンピュータ5に実行させてCD−ROMドライブ装置2の動作テストを行う(S51)。動作テストで異常が発見されなかたCD−ROMドライブ装置2がPCメーカに出荷される(S52)。
尚、フラッシュメモリ56のリブートプログラム領域560とユーザプログラム領域561に対する書込みを別々に行わず、図29に例示されるように一緒に行ってもよい。即ち、図29に示されるステップS41AではEPROMライトを用いてフラッシュメモリ56のリブートプログラム領域560及びユーザプログラム領域561に全てのプログラムを書き込む。ステップS42Aではマイクロコンピュータ5を製造するLSIメーカが前記全てのプログラムを書き込む。ステップS43AではCD−ROMドライブメーカがマイクロコンピュータ5の前記ブートモードを利用して前記全てのプログラムを書き込む。
図28はCD−ROMドライブメーカから出荷されたCD−ROMドライブ装置2を用いたPCメーカによるパーソナルコンピュータの評価手順の一例を示すフローチャートである。
PCメーカは、CD−ROMドライブメーカから出荷されたCD−ROMドライブ装置2を対応するパーソナルコンピュータ30に組み込む(S53)。このとき、CD−ROMドライブ装置2はATAPIインタフェース回路4を介してPCボード37のIDEインタフェースコントローラ34に接続される。この状態でPCメーカはパーソナルコンピュータ30のマイクロプロセッサ31に所要のテストプログラムや任意のアプリケーションプログラムなどを実行させながらCD−ROMドライブ装置2をアクセスして当該CD−ROMドライブ装置2の評価を行う。この評価に際して、CD−ROMドライブ装置2のアプリケーションプログラムにバグがあるかを調べ(S54)、また、アプリケーションプログラムに対してPCメーカ側からの仕様変更すべき個所があるかを調べる(S55)。バグも仕様変更もなければその機種のパーソナルコンピュータはCD−ROMドライブ装置2に関し何ら支障のないものとして評価を終わり、当該機種のパーソナルコンピュータはCD−ROMドライブ装置2を搭載してエンドユーザへ出荷されることになる(S61)。
一方、前記ステップS54でバグの発生が明らかにされ、また、ステップS55で仕様変更が明らかにされたとき、当該バグの情報や仕様変更に関する情報がCD−ROMドライブメーカに伝えられる。このとき、CD−ROMドライブ装置2それ自体をパーソナルコンピュータ30から取り外してCD−ROMドライブメーカに送り返すことを要しない。
CD−ROMドライブメーカはそれに従ってアプリケーションプログラムを修正する(S56)。修正されたアプリケーションプログラムは例えばインターネットなどを介してPCメーカに送信される(S57)。送信された修正プログラムは、実際の評価に用いているパーソナルコンピュータで受信することができる。そして、受信した修正済みのアプリケーションプログラムをCD−ROMドライブ装置2のフラッシュメモリ56に書き込む(S58)。書込み動作の詳細は前述の通りマイクロコンピュータ5に強制リブートモードを設定してパーソナルコンピュータ30それ自体で即座に行うことができる。正常に書き込みできたかが判定され(S59)、異常があった場合には再度リブートプログラムが起動される(S60)。正常に書き込まれた場合には、その機種のパーソナルコンピュータの評価が終わる。このように、アプリケーションプログラムにバグがあっても、或いはPCメーカ側からアプリケーションプログラムの仕様変更を行う場合にも、修正されたアプリケーションプログラムをCD−ROMドライブ装置2に簡単に再インストールすることができるから、パーソナルコンピュータ30に組み込んだ状態でCD−ROMドライブ装置2を短期間に評価することが可能になる。
パーソナルコンピュータの出荷に当たって、CPメーカ側でCD−ROMドライブ装置に前記修正されたアプリケーションプログラムを再インストールしなければならないものに対してはそれを行い、また、PCメーカ独自の情報(CD−ROMドライブのID(identification)情報)をPCメーカ自らがフラッシュメモリ56に書き込む場合にはそれを行う。そして当該機種のパーソナルコンピュータはエンドユーザへ出荷されることになる(S61)。
以上本発明者によってなされた発明を実施例に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
例えば、リブートモードの設定は上記の例に限定されず、ベンダーユニークコマンドだけで設定することも可能である。その場合には、ベンダーユニークコマンドの解読結果を用いて、CPUの処理をユーザリブート用のプログラムに移行させることができる。また、記憶情報再生装置の量産ライン上で初めてアプリケーションプログラムを不揮発性メモリに書き込む場合には、アプリケーションプログラムの先頭にある2次ベクタテーブルに何も記憶されていない状態(例えば、全ビット論理値0又は1)をソフトウェアで検出して、ユーザリブートモードに移行するようにしてもよい。また、フラッシュメモリの所定のブロックを2バンク構成とし、一方のバンクを書き換え禁止領域として用いることが可能である。このときのバンク切換えは、ユーザリブートモードの設定に連動され、ユーザリブートモードにおいては書き換え禁止側のブロックが用いられる。また、前記サム値を求める演算はユーザプログラム領域のデータを単に加算するだけでなく、適当な論理を通して加算することも可能である。
尚、リブートプログラムは、前記アプリケーションプログラムを書き込み若しくは再書き込みするためのイニシャルプログラムを意味している。したがって、前記リブートプログラム領域には、前記イニシャルプログラムが記憶されていると解することもできる。
以上のように、本発明に係るディスクドライブ装置はCD−ROMドライブ装置はもとより、その他の記録情報再生装置や情報記録再生装置などに広く適用することができる。また、ディスクドライブ装置を搭載したコンピュータ装置はパーソナルコンピュータだけでなく、ワークステーション、オフコンなどその名称に拘わらず種々のコンピュータ装置に適用することができる。