(57)【要約】可換型記憶媒体に合わせたプログラムを実行する記憶装置に関し、記憶媒体（７２）の読み取りのためのドライブ手段（６）と、記憶装置の処理に必要なプログラムモジュールと、モジュールリストを格納するプログラムメモリ（３）と、ランダムアクセスメモリ（４）と、前記モジュールリストを参照して、前記プログラムモジュールを実行して、記憶媒体（７２）のデータのアクセス処理するプロセッサ（２）とを有し、プロセッサ（２）は、記憶媒体（７２）に格納されたプログラムモジュールを読み取り、前記ランダムアクセスメモリに展開し、前記モジュールリストに前記読み取ったモジュールを登録する。外部記憶装置上で動作するプログラムを、外部記憶装置のＲＯＭ上と、外部記憶装置に投入される可換型媒体上に分散して記憶しておき、適宜読み込み実行されるようにした。
2002052397.tif 000002
【特許請求の範囲】
【請求項１】
脱着可能な記憶媒体のデータを少なくとも読み取る記憶装置において、
前記記憶媒体の読み取りのためのドライブ部と、
前記記憶装置の処理に必要なプログラムモジュールと、モジュールリストを格納するアクセス用メモリと、
前記モジュールリストを参照して、前記プログラムモジュールを実行して、前記記憶媒体のデータのアクセス処理するプロセッサとを有し、
前記プロセッサは、前記記憶媒体に格納されたプログラムモジュールを読み取り、前記アクセス用メモリに展開し、前記モジュールリストに前記読み取ったモジュールを登録することを
特徴とする記憶装置。
【請求項２】
請求の範囲１の記憶装置において、
前記プロセッサは、前記記憶媒体の投入時に、前記記憶媒体に格納されたプログラムモジュールを読み取り、前記アクセス用メモリに展開し、前記モジュールリストに前記読み取ったモジュールを登録することを
特徴とする記憶装置。
【請求項３】
請求の範囲１の記憶装置において、
前記プロセッサは、前記記憶媒体の排出時に、前記登録されたプログラムモジュールを無効化することを
特徴とする記憶装置。
【請求項４】
請求の範囲１の記憶装置において、
前記プロセッサは、前記記憶媒体の投入時に、前記記憶媒体に格納された管理情報からプログラムモジュールの存在を検出し、前記存在結果により、前記記憶媒体のプログラムモジュールを読み取り、前記アクセス用メモリに展開し、前記モジュールリストに前記読み取ったモジュールを登録することを
特徴とする記憶装置。
【請求項５】
請求の範囲４の記憶装置において、
前記プロセッサは、前記記憶媒体の投入時に、前記記憶媒体に格納された管理情報のモジュールフラグにより、前記プログラムモジュールの存在を検出することを
特徴とする記憶装置。
【請求項６】
請求の範囲１の記憶装置において、
前記プロセッサは、前記記憶媒体の投入時に、前記記憶媒体に格納されたモジュールリストを読み込み、前記モジュールリストに従い、前記記憶媒体のプログラムモジュールを読み取り、前記アクセス用メモリに展開し、前記モジュールリストに前記読み取ったモジュールを登録することを
特徴とする記憶装置。
【請求項７】
請求の範囲１の記憶装置において、
前記プロセッサは、プログラム用メモリのモジュールリストをアクセス用メモリに展開し、前記展開したモジュールリストに前記読み取ったモジュールを登録して構成されたモジュールリストを参照して、前記プログラムモジュールを実行することを
特徴とする記憶装置。
【請求項８】
脱着可能な記憶媒体のデータを少なくとも読み取る記憶装置の制御方法において、
ドライブ部に投入された前記記憶媒体に格納されたプログラムモジュールを読み取り、アクセス用メモリに展開し、モジュールリストに前記読み取ったモジュールを登録するステップと、
前記モジュールリストを参照して、アクセス用メモリに格納されたプログラムモジュールを実行して、前記記憶媒体のデータのアクセス処理するステップとを有することを
特徴とする記憶装置の制御方法。
【請求項９】
請求の範囲８の記憶装置の制御方法において、
前記登録ステップは、前記記憶媒体の投入時に、前記記憶媒体に格納されたプログラムモジュールを読み取り、前記アクセス用メモリに展開し、前記モジュールリストに前記読み取ったモジュールを登録するステップからなることを
特徴とする記憶装置の制御方法。
【請求項１０】
請求の範囲８の記憶装置の制御方法において、
前記記憶媒体の排出時に、前記登録されたプログラムモジュールを無効化するステップを更に有することを
特徴とする記憶装置の制御方法。
【請求項１１】
請求の範囲８の記憶装置の制御方法において、
前記登録ステップは、前記記憶媒体の投入時に、前記記憶媒体に格納された管理情報からプログラムモジュールの存在を検出し、前記存在結果により、前記記憶媒体のプログラムモジュールを読み取り、前記アクセス用メモリに展開し、前記モジュールリストに前記読み取ったモジュールを登録するステップからなることを
特徴とする記憶装置の制御方法。
【請求項１２】
請求の範囲１１の記憶装置の制御方法において、
前記登録ステップは、前記記憶媒体の投入時に、前記記憶媒体に格納された管理情報のモジュールフラグにより、前記プログラムモジュールの存在を検出するステップを有することを
特徴とする記憶装置の制御方法。
【請求項１３】
請求の範囲８の記憶装置の制御方法において、
前記登録ステップは、前記記憶媒体の投入時に、前記記憶媒体に格納されたモジュールリストを読み込み、前記モジュールリストに従い、前記記憶媒体のプログラムモジュールを読み取り、前記アクセス用メモリに展開するステップからなることを
特徴とする記憶装置の制御方法。
【請求項１４】
請求の範囲８の記憶装置の制御方法において、
前記登録ステップは、プログラム用メモリのモジュールリストを前記アクセス用メモリに展開し、前記展開したモジュールリストに前記読み取ったモジュールを登録するステップからなり、
前記処理ステップは、前記登録ステップで登録されたモジュールリストを参照して、前記プログラムモジュールを実行するステップからなることを
特徴とする記憶装置の制御方法。
【請求項１５】
記憶媒体のデータを少なくとも読み取る記憶装置に脱着可能な可換型記憶媒体において、
データを格納するデータ領域と、
前記記憶装置の駆動のためのプログラムモジュールを格納する制御領域とを有することを
特徴とする可換型記憶媒体。
【請求項１６】
請求の範囲１５の可換型記憶媒体において、
前記制御領域に、前記プログラムモジュールの存在を検出するための管理情報を格納することを
特徴とする可換型記憶媒体。
【請求項１７】
請求の範囲１６の可換型記憶媒体において、
前記制御領域に、前記記憶媒体に格納されたプログラムモジュールのモジュールリストを格納することを
特徴とする可換型記憶媒体。
【発明の詳細な説明】
技術分野
本発明は、記憶媒体を交換できる記憶装置、その制御方法及びその可換型記憶媒体に関し、特に、記憶装置が実行するソフトウェアの一部を記憶媒体に格納した記憶装置、その制御方法及びその可換型記憶媒体に関する。
背景技術
コンピュータ等の記憶装置として、着脱可能な記憶媒体を利用した外部記憶装置が広く普及している。この記憶媒体として、磁気デイスク、光デイスク、光磁気デイスク、半導体メモリ等種々のものが利用されている。このような外部記憶媒体の記憶容量は年々増加しているが、一方、これらに対して情報の再生又は記録又は消去を行うドライブ装置のいっそうの低価格化が望まれている。
一般に、記憶装置（ドライブ）は、記憶媒体をドライブするドライブ部と、ＭＰＵ、ＲＯＭ、ＲＡＭ、ホストコンピュータ（ＰＣ等）とのインターフェース等で構成される。着脱可能な記憶媒体は、ドライブ部に挿入され、利用が可能となる。
従来の装置は、ドライブの制御プログラムは、ＲＯＭ上に静的に記録されており、このＲＯＭに記録されたプログラムをＭＰＵで実行していた。また、ＲＯＭ上のプログラムを実行する際は、そのプログラムの必要とするデータ領域をＲＡＭ上に確保していた。
例えば、デイスクドライブにおいて、ＲＥＡＤ命令がホストコンピュータより送られてきた場合は、以下の手順で実行される。
（１）ホストコンピュータより命令が送られてきたため、メインプログラムはＲＯＭ上の命令解釈プログラムを呼び出す。
（２）命令解釈プログラムは、送られてきた命令がＲＥＡＤであることを判別する。
（３）ＲＥＡＤ命令と判別されたため、メインプログラムはＲＯＭ上のＲＥＡＤプログラムを呼び出す。
（４）ＲＥＡＤプログラムは、ＲＥＡＤ命令が媒体上のどのセクタから何セクタ分読み出すかを判別する。
（５）ＲＥＡＤプログラムは、ＲＯＭ上のキャッシュプログラムを呼び出し、読み出す予定のセクタのデータがキャッシュデータ内に存在するかどうか尋ねる。
（６）キャッシュプログラムは、該当するデータが存在する場合はそのデータをＲＥＡＤプログラムに提供する。該当するデータが存在しない場合は、ＲＯＭ上の媒体アクセスプログラムを呼び出し、媒体上の該当するデータを読み込み、ＲＥＡＤプログラムに読み込んだデータを提供する。
（７）プログラムは、読み込まれたデータをインターフェイスプログラムを介してホストコンピュータに提供する。
このように、従来のドライブ装置では、ドライブの全ての制御プログラムを予めＲＯＭ上に記録していたため、全てのプログラムを記録することができるだけの容量を持つＲＯＭを必要とする。このドライブ装置のＲＯＭ容量を削減する方法として、装置にデイスクを固定したハードデイスクドライブでは、ハードデイスクの一部の領域に、制御プログラム等を格納することが行われていた（例えば、特開平５−１２０２６号公報）。
しかしながら、この方法は、ドライブ装置の制御プログラムの一部を、装置内に固定された固定デイスクに分担させるものであり、装置内の記憶領域全体を見ると、制御プログラムを格納する容量に変わりがない。このため、ユーザーの使用時に、必ずしも希望しない制御プログラムも格納しておくという必要があった。例えば、キャッシュプログラムのようにユーザが使用しないことを希望した場合でも、ＲＯＭ又はデイスク上にそのプログラムを記録しておく必要があった。
同様に、同時に動作することの無い複数のプログラムをＲＯＭ上に記録しておくため、ＲＯＭとＲＡＭを合計したメモリ領域中に、動作していないプログラムの容量分を余計に確保しておくという欠点があった。例えば、ＰＣ用途用のデイスクプログラムとＡＶ用途用のデイスクプログラムにはそれぞれに最適化されたキャッシュプログラム等の制御プログラムがあり、どちらかでは動作しているが、同時に動作することの無い部分がある。これらを両方ともメモリ領域上に置く必要があった。このため、コストダウンが困難である。
更に、最小限の制御プログラムを搭載する場合には、ＭＯ等の可換記憶媒体上では容量や論理フォーマットの違いがあるにも関わらず、可換記憶媒体の特性に合わせたキャッシュプログラム等を使用することが出来ないという問題があった。更に、プログラムの追加も困難であるという問題があり、ドライブの機能アップが難しい。
一方、パーソナルコンピュータ等のホストが実行するプログラムをフロッピーデイスク等でインストールする方法（例えば、特開平５−１２００２４号公報）や、ホストの実行するプログラム（例えば、閲覧ソフト）とデータを格納したＣＤ−ＲＯＭにより、ホストにプログラムを追加し、データ処理する方法も知られている。しかしながら、この方法は、ホストの実行するプログラムをインストールするものであり、ドライブ装置の機能を変更するものではないため、ドライブ装置の機能を変更できないという問題がある。
発明の開示
従って、本発明の目的は、各々の記憶媒体の特徴に合わせた制御プログラムを実行するための記憶装置、その制御方法及び可換型記憶媒体を提供するにある。
又、本発明の他の目的は、記憶装置の内部メモリの増加を招くことなく、各々の記憶媒体の特徴に合わせた制御プログラムを実行するための記憶装置、その制御方法及び可換型記憶媒体を提供するにある。
更に、本発明の他の目的は、記憶媒体の挿入により、各々の記憶媒体の特徴に合わせた制御プログラムを実行するための記憶装置、その制御方法及び可換型記憶媒体を提供するにある。
この目的の達成のため、本発明の記憶装置は、脱着可能な記憶媒体のデータを少なくとも読み取るドライブ機構と、記憶装置の処理に必要なプログラムモジュールとモジュールリストを格納するアクセス用メモリと、前記モジュールリストを参照して、前記プログラムモジュールを実行して、前記記憶媒体のデータのアクセス処理するプロセッサとを有し、前記プロセッサは、前記記憶媒体に格納されたプログラムモジュールを読み取り、前記アクセス用メモリに展開し、前記モジュールリストに前記読み取ったモジュールを登録する。
本発明では、外部記憶装置上で動作するプログラムを、外部記憶装置のＲＯＭ上と、外部記憶装置に投入される可換型媒体上に分散して記録しておき、適宜読み込み実行される様にした。このため、外部記憶装置が必要とするＲＯＭ容量を削減することができ、同時に実行されることの無いプログラムを、外部記憶装置の媒体上に記録し、適宜読み込み実行されるようにできるため、外部記憶装置が必要とするＲＯＭとＲＡＭを合計したメモリ領域の容量を削減することができる。更に、可換型外部記憶装置上で動作するプログラムを、可換記憶媒体上に記録し、適宜読み込み実行されるため、各々の可換媒体の特徴に合わせた（最適化された）プログラムを実行することができる。
又、本発明の記憶装置では、好ましくは、前記プロセッサは、前記記憶媒体の投入時に、前記記憶媒体に格納されたプログラムモジュールを読み取り、前記アクセス用メモリに展開し、前記モジュールリストに前記読み取ったモジュールを登録する。これにより、記憶媒体の投入により、記憶媒体特有のプログラムモジュールが読み込まれ、記憶装置で実行可能となる。
更に、本発明の記憶装置では、好ましくは、前記プロセッサは、前記記憶媒体の排出時に、前記登録されたプログラムモジュールを無効化することにより、その記憶媒体特有のプログラムモジュールが他の記憶媒体に使用されることを防止できる。
更に、本発明の記憶装置では、好ましくは、前記プロセッサは、前記記憶媒体の投入時に、前記記憶媒体に格納された管理情報からプログラムモジュールの存在を検出し、前記存在結果により、前記記憶媒体のプログラムモジュールを読み取り、前記アクセス用メモリに展開し、前記モジュールリストに前記読み取ったモジュールを登録する。これにより、記憶媒体の投入時の管理情報の読み取りにより、プログラムモジュールの有無を検出できる。
更に、本発明の記憶装置では、好ましくは、前記プロセッサは、前記記憶媒体の投入時に、前記記憶媒体に格納された管理情報のモジュールフラグにより、前記プログラムモジュールの存在を検出することにより、簡単に且つ記憶容量を削減せずに、プログラムモジュールの有無を検出できる。
更に、本発明の記憶装置では、好ましくは、前記プロセッサは、前記記憶媒体の投入時に、前記記憶媒体に格納されたモジュールリストを読み込み、前記モジュールリストに従い、前記記憶媒体のプログラムモジュールを読み取り、前記アクセス用メモリに展開し、前記モジュールリストに前記読み取ったモジュールを登録する。これにより、モジュールリストを設けることにより、記憶媒体のプログラムモジュールの個数、格納位置を取得し、プログラムロードできる。
更に、本発明の記憶装置では、前記プロセッサは、プログラム用メモリのモジュールリストをアクセス用メモリに展開し、前記展開したモジュールリストに前記読み取ったモジュールを登録して構成されたモジュールリストを参照して、前記プログラムモジュールを実行する。これにより、モジュールリストを先読みするため、記憶媒体のプログラムモジュールの必要な時点で、プログラムモジュールをロードできる。
発明を実施するための最良の形態
以下、本発明の実施例を外部記憶装置、媒体処理、他の実施の形態の順で説明する。
［外部記憶装置］
図１は、本発明の一実施の形態の外部記憶装置のブロック図、図２は、図１のドライブ機構の構成図、図３は、図１のメモリマップの説明図、図４は、記憶媒体のメモリマップの説明図、図５は、図１の記憶装置のモジュールリストの説明図、図６は、図１の記憶媒体のモジュールリストの説明図である。
図１は、外部記憶装置として、記憶媒体にＭＯ（光磁気デイスク）７２を用いるＭＯドライブ１を例にしている。ＭＯドライブ１は、ＭＰＵ（マイクロプロセッサ）２と、書き換え不可なメモリであるＲＯＭ（リードオンリーメモリ）３と、高速アクセス可能で書き換え可能なメモリであるＲＡＭ（ランダムアクセスメモリ）４と、インターフェイス部５と、ドライブ機構６と、バス７とからなる。
ＲＯＭ３は、ＭＰＵ２の実行する処理プログラム、パラメータ等を格納するものであり、後述するプログラムモジュールを格納する。ＲＡＭ４は、ＭＰＵ２の処理のためのデータを一時格納するものであり、本発明では、媒体７２のプログラムを格納する。ＭＰＵ２のメモリ空間は、図３に示すように、アドレス００００Ｈｅｘから３ＦＦＦＨｅｘまでのＲＯＭ３と、アドレス４０００ＨｅｘからＦＦＦＦＨｅｘまでのＲＡＭ４である。インターフェイス部５は、ホスト（例えば、パーソナルコンピュータ）とコマンド、データのやり取りを行う。
ＭＯ７２は、ドライブ機構６に着脱可能であり、光（熱）と磁気を利用して、リード又はライトされる情報トラックを有する。ＭＯ７２のメモリマップは、図４に示すように、リードイン領域１００、リードアウト領域１２０と、データ領域１１０とからなる。リードイン領域１００、リードアウト領域１２０は、ホスト（ユーザ）からアクセスできない領域であり、一方はディスクの最内周で他方は最外周に位置し、コントロールゾーン１０２、テストゾーン１２４を有する。この領域１００、１２０の使用されていない領域に、モジュールリスト１０６と、モジュールフラグ１０４と、プログラムモジュール１２２が格納される。モジュールフラグ１０４は、モジュールの存在を示すフラグである。データ領域１１０は、ホスト（ユーザ）からアクセス可能なユーザ領域であり、この例では、トラック４０、セクタ０（ＬＢＡ０）からトラック１０３９、セクタ９９（ＬＢＡ１０００００）までの１万トラック割り当てられる。リードイン領域１００、リードアウト領域１２０は、おのおの４０トラックずつ割り当てられる。
ドライブ機構６は、図２に示すように、情報を記録するための情報トラックが設けられた光ディスク媒体７２を収容するカートリッジ７０を着脱するための挿入口６９と、挿入された光デイスク媒体７２を装着し、光ディスク７２を回転駆動するスピンドルモータ６７を備える。
又、光デイスクドライブ機構６は、光ディスク７２に対して情報の記録又は、再生を行うための光学ヘッドを備える。光学ヘッドは、キャリッジ７６と、固定光学部７８とを有する。キャリッジ７６は、光ディスク７２の情報トラック上に光ビーム１０４を照射するための対物レンズ８０と、対物レンズ８０を光軸方向（光ディスクに対して近づいたり遠ざかったりする方向、フォーカシング方向）に駆動するフォーカスアクチュエータと、反射ミラー８２等を搭載し、光ディスク７２の半径方向に移動可能に駆動される。固定光学部７８は、光源となるレーザダイオードやフォトディテクタを含む光学部品を備えている。
図１において、ＲＯＭ３には、モジュール３０〜３９が格納される。モジュールリスト３０は、ＲＯＭ３に格納されたモジュールのリストであり、図５に示すように、ＲＯＭ３に格納されたモジュールの番号、メモリ上の開始アドレス、モジュール長を格納する。図５では、番号０から２０までの２１モジュール搭載された例を示す。
図１において、初期化モジュール３１は、装置の初期化を行うためのものであり、図７にて詳しく述べる。インタラプトモジュール３２は、インタラプト要求を解析し、要求に対応したモジュールを起動するものであり、図７にて詳しく述べる。ＣＤＢ解析モジュール３３は、与えられたコマンドを解析するものであり、この例では、ＣＤＢ（Ｃｏｍｍａｎｄ　Ｄｅｓｃｒｉｐｔｉｏｎ　Ｂｌｏｃｋ）ＳＣＳＩコマンドを解析する。
リードモジュール３４は、リード処理を行うモジュールであり、図１０で詳しく述べる。キャッシュモジュール３５は、リード／ライト時のキャッシュ処理を行うモジュールであり、図１２で詳しく述べる。ライトモジュール３５は、ライト処理を行うモジュールであり、図１５で詳しく述べる。
投入処理モジュール３７は、記憶媒体７２のドライブへの投入に応じて、初期処理を行うものであり、図８で詳しく述べる。ロード処理モジュール３８は、媒体７２のプログラムモジュール１２２をＭＰＵ２が利用可能にロード処理を行うものであり、図８で詳しく述べる。排出処理モジュール３９は、記憶媒体７２の排出処理を行うものであり、図１６で詳しく述べる。ＲＡＭ４には、バッファ管理領域４０と、ワーク領域４１とが割り当てられる。
次に、ＭＯ７２の格納モジュールを説明する。図６に示すように、ＭＯ７２のモジュールリスト１０６は、ＲＯＭ３のモジュールリスト３０と同一の構造を有し、モジュール番号、媒体での開始アドレス、モジュール長からなる。この例では、モジュール番号２と２５のモジュールを格納したことを示し、図４のプログラム領域１２２に、これらのモジュール（プログラム）が格納されていることを示す。ＭＯ７２のモジュール番号２のモジュールは、ＲＯＭ３のモジュール番号２のモジュールを置き換えるものであり、例えば、キャッシュプログラムである。ＭＯ７２のモジュール番号２５のモジュールは、ＲＯＭ３に無いモジュールであり、例えば、セキュリテイモジュールである。
可換型記憶媒体用の記憶装置上で動作するプログラムを、可換記憶媒体上に記録し、適宜読み込み実行されるため、各々の可換媒体の特徴にあわせた（最適化された）プログラムを実行することができる。
また、ＲＯＭのような記憶装置内の内部メモリには、記憶装置を駆動する為に必要な最低限の基本機能のモジュール（プログラム）を格納しておき、記憶媒体の使用形態に応じてドライブの機能を向上させる為に使用されるモジュール（プログラム）は、（可換型記憶媒体は交換されるので）記憶媒体自身に格納しておくことで、全ての媒体の使用形態に対応するモジュール（プログラム）を記憶装置のメモリに格納する必要が無くなり、記憶装置側のメモリ容量を削減できる。
また、記憶装置の機能を向上させる追加プログラムを媒体に記憶しておくことで、記憶装置を新製品のように機能アップさせることができる。
また、ユーザの記憶装置の使い勝手に合わせたプログラムを媒体に記憶しておくことで、ユーザの使用形態に合わせた記憶装置の駆動が可能になり、使い勝手を向上できる。
記憶装置上で動作するプログラムを、記憶装置内の内部メモリと、記憶装置に投入される可換型記憶媒体に分散しておき記録しておき、適宜読み込み実行されるようにしたため、記憶装置が必要とする内部メモリの容量を削減することができる。
また、同時に実行されることの無いプログラムを、記憶媒体側に記録しておき、適宜読み込み実行されるようにできるため、外部記憶装置が必要とする内部メモリの容量を削減することができる。
前述の例では、可換媒体の外部記憶装置１を光磁気デイスク装置で説明したが、ＣＤ−Ｒ、ＣＤ−ＲＷ，ＤＶＤ等の光デイスク装置、磁気デイスク装置、半導体記憶カード等を用いた半導体記憶装置等の他のディスク状だけでなくテープ状、カード状の可換媒体を用いる記憶装置に適用できる。又、前述のような記憶装置は、ホスト（ＣＰＵ）の外部に物理的に存在するもののみならず、例えば、パーソナルコンピュータ等のシステムに内蔵されるものも含む。
［媒体処理］
図７は、図１の初期化モジュール及びインタラプトモジュールの処理フロー図、図８は、図１の媒体投入処理モジュール及びロードモジュールの処理フロー図、図９は、ロード処理の説明図である。
図７により、電源投入時の初期化処理を説明する。
（Ｓ１）電源投入を検出すると、ＭＰＵ２は、初期化モジュール３１を実行する。初期化モジュールの実行により、所望のレジスタ、メモリ等の初期化が行われる。初期化モジュールは、初期化の最後に、インタラプト処理モジュール３２を起動する。
（Ｓ２）インタラプト処理モジュール３２は、インタラプト要求が生じたかを判定する。
（Ｓ３）インタラプト処理モジュール３２は、インタラプト要求を受けると、要求を解析し、要求に対応するモジュールを決定する。そして、インタラプト処理モジュール３２は、決定されたモジュール番号のモジュールを起動し、起動したモジュールに処理を移す。
（Ｓ４）起動モジュールが処理を終了し、インタラプト処理モジュール３２が処理終了を受けると、インタラプト処理モジュール３２は、待機状態に戻り、ステップＳ２に戻る。
次に、媒体投入処理モジュール３７及びロード処理モジュール３８の処理動作を、図８により、説明する。
（Ｓ１０）記憶媒体７２の投入を検出すると、媒体投入処理モジュール３７が起動され、ドライブ機構６の起動、媒体７２のコントロールゾーン１０２の読み取り、媒体７２の種類（記憶容量等）等の検出の読み取りデータの解析、ドライブ機構６の設定等の媒体投入処理を行う。
（Ｓ１１）媒体投入処理モジュール３７は、コントロールゾーンのデータ解析において、モジュールリストが有るかを、モジュールフラグから判定する。モジュールリストが無いときは、終了する。
（Ｓ１２）モジュールリストが有ると、ロード処理モジュール３８を起動する。ロード処理モジュール３８は、ＲＯＭ３のモジュールリスト３０をＲＡＭ４のワークエリア４１（例えば、アドレス「４０００」〜「４０ＦＦ」）にコピーする（図９のＡ）。次に、媒体７２のモジュールリスト１０６をＲＡＭ４のワークエリア４１に読み込む（図９のＢ）。読み込んだ媒体のモジュールリスト１０６からモジュールの個数を取得する。
（Ｓ１３）ロード処理モジュール３８は、読み込んだ媒体のモジュールリスト１０６中のモジュール１２２を媒体７２から読み込み、ＲＡＭ４のワークエリア４１（例えば、アドレス「４１ＦＦ」〜「４６４Ｆ」）に展開する（図９のＣ）。
（Ｓ１４）モジュールリスト１０６から、読み込んだモジュールのモジュール番号を読み込み、このモジュール番号が、ドライブ（ＲＯＭ３）のモジュールリスト３０にあるかを判定する。
（Ｓ１５）このモジュール番号が、ドライブ（ＲＯＭ３）のモジュールリスト３０にある場合には、ドライブ（ＲＯＭ３）のモジュールリスト３０の同じモジュール番号の開始位置と、モジュール長を、媒体７２から読み込んだモジュール１２２の開始位置と、モジュール長に変更する。図５及び図６の例では、モジュール番号「２」の例である。
（Ｓ１６）このモジュール番号が、ドライブ（ＲＯＭ３）のモジュールリスト３０にない場合には、ＲＡＭ４に展開されたドライブ（ＲＯＭ３）のモジュールリスト３０の末尾に、媒体７２から読み込んだモジュール１２２のモジュール番号と、開始位置と、モジュール長に追加する。図５及び図６の例では、モジュール番号「２５」の例である。
（Ｓ１７）媒体の全てのモジュールをロードしたかを判定する。全てのモジュールをロードしていないときは、ステップＳ１３に戻り、全てのモジュールをロードした時は、ロード処理を終了する。
このようにして、媒体７２のモジュール１２２が、ドライブのファームとして、使用可能にロードされる。
次に、リード処理モジュール３４、キャッシュモジュール３５を、図１０乃至図１５により説明する。先ず、図１０により、リード処理モジュール３４を説明する。
（Ｓ２０）図７のように、インタラプト処理モジュール３２が起動され、待機状態にある。
（Ｓ２１）ホストコンピュータより命令が送られると、インタラプト（割り込み）要求が起こる。インタラプト処理モジュール３２は、ＣＤＢ（命令）解釈プログラム３３を起動する。
（Ｓ２２）ＣＤＢ（命令）解釈プログラム３３は、命令を解析し、送られてきた命令がＲＥＡＤ命令であることを判別する。
（Ｓ２３）ＲＥＡＤ命令と判別されたため、ＣＤＢ解釈プログラム３３は、モジュールリスト（ＲＡＭ４上に展開された）から、ＲＥＡＤモジュール３４のアドレスを取り出し、ＣＤＢ解釈プログラム３３は、ＲＥＡＤモジュール３４を起動する。
（Ｓ２４）ＲＥＡＤモジュール３４は、ＲＥＡＤ処理を実行する。この時、キャッシュモジュールが存在する時は、図１１乃至図１４で後述するように、キャッシュモジュールを起動して、ＲＥＡＤ処理を行う。
（Ｓ２５）起動されたＲＥＡＤモジュール３４が処理を終了し、インタラプト処理モジュール３２が処理終了を受けると、インタラプト処理モジュール３２は、待機状態に戻り、ステップＳ２０に戻る。
次に、キャッシュモジュールの処理動作を説明する。この例では、キャッシュモジュールとして、先読みキャッシュモジュール（図１１、図１２）と、ＦＡＴキャッシュモジュール（図１３乃至図１５）の２つを説明する。
先読みキャッシュを、図１１により説明する。図１１に示すように、デイスク７２上にセクタ０〜ｎまで存在すると仮定した場合、セクタ０の読み込み命令を受けると、例えば、セクタ０からセクタ７までを読み込み、キャッシュメモリに蓄積する。そして、セクタ０のデータを命令発行元のホストへ転送する。次に、セクタ１に対して読み込み命令が来た場合には、ドライブは、実際のデイスクにアクセスせずに、キャッシュメモリ上の蓄積されているセクタ１のデータをホストに返送する。このようにして、先読みしておくことにより、アクセス時間を短縮する。
図１２により、先読みキャッシュモジュールの処理を説明する。
（Ｓ３０）読み込み命令のセクタ番号ＬＢＡのデータが、ＲＡＭ４のワークエリア４１のキャッシュメモリ（バッファ）にあるかを、バッファ管理情報４０から判別する。バッファ管理情報４０は、キャッシュメモリ（バッファ）を管理するものであり、バッファに格納されたデータのセクタ番号と格納アドレスを格納する。
（Ｓ３１）指定セクタ番号のデータが、バッファにない場合には、媒体７２から指定セクタ番号のセクタとそれに連続するセクタを読み込み、読み込まれたデータをバッファに保存する。例えば、指定セクタ番号がＬＢＡ０である時は、セクタ番号ＬＢＡ０〜ＬＢＡ７までのデータを先読みする。
（Ｓ３２）先読みセクタに従い、バッファ管理情報４０を更新し、保存する。
（Ｓ３３）バッファにある場合又は先読みを終了した場合には、バッファ上のセクタ番号のデータをホストに転送する。
次に、ＦＡＴ（ファイル管理テーブル）キャッシュモジュールを図１３乃至図１４により説明する。図１３に示すように、ＦＡＴでフォーマットされたデイスクのデータ領域１１０は、ＢＯＯＴセクタ２００と、ＦＡＴ領域２１０と、ＤＡＴＡ領域２１２とからなる。ファイルは、ＤＡＴＡ領域２１２に書き込まれ、ＦＡＴ領域２１０は、そのファイルのＤＡＴＡ領域２１２の書き込み位置（セクタ位置）を保存する。ＦＡＴフォーマットされたデイスクは、ファイルの読み書きの度に、ＦＡＴ領域２１０が読み書きされる。ＦＡＴキャッシュモジュールは、ＦＡＴ領域２１０の情報をキャッシュメモリに蓄積しておくことで、媒体７２上のＦＡＴ領域２１０を読み書きする頻度を減らし、リード／ライト時間を短縮する。ＦＡＴフォーマットは、ＤＯＳ，ＷＩＮＤＯＷＳのＯＳで利用される。
図１４により、ＦＡＴキャッシュモジュールの処理を説明する。
（Ｓ４０）媒体７２のＢＯＯＴセクタ２００を読み取り、ＦＡＴ領域２１０の開始位置（ＬＢＡ）と長さ（セクタ長）を判断する。
（Ｓ４１）開始位置、長さから、媒体７２のＦＡＴ領域２１０のデータを全てＲＡＭ４のワーク領域４１のバッファに読み込む。
（Ｓ４２）読み込みデータからバッファ管理情報（読み込みアドレス等）を作成し、保存する。
このＲＡＭ４のＦＡＴをＯＳがアクセスして、ファイルのセクタ番号を読み書きする。
この例では、先読みキャッシュモジュールは、例えば、ＲＯＭ３に、キャッシュモジュール３５として、予め格納されているものとする。そして、ＦＡＴフォーマットされた媒体７２に、ＦＡＴキャッシュモジュール１２２が格納されている。ＦＡＴフォーマットされた媒体７２が投入された時に、ＲＡＭ４にＦＡＴキャッシュモジュール１２２が読み込まれ、ＦＡＴの先読みが行われる。一方、ＦＡＴフォーマットされていなく且つＦＡＴキャッシュモジュールを格納しない媒体７２が投入された場合には、キャッシュ動作は、ＲＯＭ３の先読みキャッシュモジュール３５により行われる。
又、ＦＡＴキャッシュモジュールとして、ＦＡＴの全部でなく、一部をキャッシュするものも使用でき、更に、セクタデータを先読みする機能を追加したものも適用できる。更に、ＬＩＮＵＸを含むＵＮＩＸ系で用いられるファイル管理フォーマットの管理情報の先読みを行うモジュールにも適用できる。
次に、図１５により、図１２の先読み処理する場合のライト処理を説明する。
（Ｓ５０）書き込み命令のセクタ番号ＬＢＡのデータが、ＲＡＭ４のワークエリア４１のキャッシュメモリ（バッファ）にあるかを、バッファ管理情報４０から判別する。バッファ管理情報４０は、キャッシュメモリ（バッファ）を管理するものであり、バッファに格納されたデータのセクタ番号と格納アドレスを格納する。
（Ｓ５１）指定セクタ番号のデータが、バッファにある場合には、バッファ中の該当ＬＢＡの領域をホストからの転送データで上書きする。
（Ｓ５２）バッファにない場合又は上書き終了後、媒体７２の要求セクタ番号のセクタにデータを書き込む。そして、書き込み終了をホストに通知する。
次に、媒体排出処理モジュール３９を、図１６により説明する。
（Ｓ６０）媒体排出指示に応じて、排出処理モジュール３９は、ロードされたモジュールがあるかを判別する。
（Ｓ６１）ロードされたモジュールがある場合には、終了処理（資源解放等）が必要かを判定し、必要なら終了処理する。
（Ｓ６２）次に、ロードされたモジュールをアンロードする。例えば、ＲＡＭ４のモジュールリストを無効化する。全てのモジュールをアンロードする。
（Ｓ６３）媒体排出を実行する。即ち、ドライブ機構６に媒体排出を実行させる。そして、終了する。
これにより、ドライブ内に登録された媒体のモジュールは、媒体排出とともに無効化（クリア）されるため、次に他の媒体が投入されたら、新たな媒体のモジュールがドライブに登録されるので、前の媒体のモジュールとの干渉を防止できる。
［他の実施の形態］
図１７及び図１８は、本発明の他の実施の形態の媒体のモジュールロード処理フロー図である。この例では、媒体投入時にモジュールリストの読み込みを行い、ホストのコマンドで必要モジュールを読み込むものである。図１７により、媒体投入処理を説明する。
（Ｓ７０）媒体投入処理モジュール３７は、コントロールゾーンのデータ解析において、モジュールリストが有るかを、モジュールフラグから判定する。モジュールリストが無いときは、終了する。
（Ｓ７１）モジュールリストが有ると、ロード処理モジュール３８を起動する。ロード処理モジュール３８は、ＲＯＭ３のモジュールリスト３０をＲＡＭ４のワークエリア４１にコピーする（図９のＡ）。次に、媒体７２のモジュールリスト１０６をＲＡＭ４のワークエリア４１に読み込む（図９のＢ）。
次に、ホストからのコマンド到来時のロード処理を、図１８で説明する。
（Ｓ８０）ホストのコマンド到来時に、ホストから来たコマンドに対応するモジュールが、ステップＳ７１で読み込んだモジュールリストに存在するかを判定する。存在しない場合、終了する。
（Ｓ８１）モジュールリストに存在する場合、ロード処理モジュール３８は、読み込んだ媒体のモジュールリスト１０６中のコマンドで指定されたモジュール（ここでは、セキュリテイモジュール）１２２を媒体７２から読み込み、ＲＡＭ４のワークエリア４１に展開する。そして、前述の図８の処理と同様、モジュールリスト１０６から、読み込んだモジュールのモジュール番号を読み込み、このモジュール番号が、ドライブ（ＲＯＭ３）のモジュールリスト３０にあるかを判定する。このモジュール番号が、ドライブ（ＲＯＭ３）のモジュールリスト３０にある場合には、ドライブ（ＲＯＭ３）のモジュールリスト３０の同じモジュール番号の開始位置と、モジュール長を、媒体７２から読み込んだモジュール１２２の開始位置と、モジュール長に変更する。
一方、このモジュール番号が、ドライブ（ＲＯＭ３）のモジュールリスト３０にない場合には、ＲＡＭ４に展開されたドライブ（ＲＯＭ３）のモジュールリスト３０の末尾に、媒体７２から読み込んだモジュール１２２のモジュール番号と、開始位置と、モジュール長に追加する。初期化が必要なら、初期化処理を行い、ロード処理を終了する。
このようにして、媒体７２のモジュール１２２が、ドライブのファームウェアとして、使用可能にロードされる。
ここで、セキュリテイモジュールを説明する。セキュリテイの目的は、媒体に記録されたデータの機密性を保つため、媒体上にセキュリテイ情報を持たせ、ドライブがこのセキュリテイ情報を理解することで、不特定なユーザーからのデータアクセスを制限する。
セキュリテイ機能を追加する場合には、セキュリテイ機能の存在しないドライブに、セキュリテイ機能を追加する場合と、セキュリテイ機能の存在しないドライブに、そのドライブに存在しない別のセキュリテイ機能を付加する場合がある。
セキュリテイの種類としては、（１）媒体に記録されているメデイアＩＤを用いて、媒体を識別する機能、（２）媒体に装置ＩＤを記録し、装置ＩＤの一致するドライブ以外での媒体へのアクセスを制限する機能、（３）パスワードを媒体に付与し、入力されたパスワードと一致する場合以外のアクセスを制限する機能、（４）特定のＬＢＡ範囲へのアクセスを制限する機能、等があり、これらの１つ又は２つ以上を組み合わせて利用できる。
又、媒体のモジュールを、キャッシュモジュール、セキュリテイモジュールの例で説明したが、他のドライブで利用可能なモジュールを利用できる。ＲＯＭ、ＲＡＭで説明したが、他の不揮発性メモリや揮発性メモリ等でも応用可能である。実施例は、登録済みのモジュールを読み出す例を示したが、モジュールの記憶媒体への登録は、媒体メーカやドライブメーカが工場内で行っても良いが、ユーザが記憶装置に対してドライバを使用する等して、特殊コマンドを発行することで、媒体にフラグの書込みやＣＤやＦＤやインターネットからダウンロードしたプログラムを用いてモジュール（プログラム）の書込みを行うことも可能である。つまり、ドライブの機能アップを図るモジュールを媒体に記憶しておくことで、ドライブを新製品の如く動作させることも可能である。また、ユーザの使い勝手に合わせてモジュールを記憶させることでユーザの使用形態に応じたドライブの駆動が可能になる。
以上、本発明を実施例により説明したが、本発明の技術的趣旨の範囲内において、本発明は種々の変形が可能であり、これらを本発明の技術的範囲から排除するものではない。
産業上の利用可能性
可換型記憶媒体用の記憶装置上で動作するプログラムを、可換記憶媒体上に記録し、適宜読み込み実行されるため、各々の可換媒体の特徴にあわせた（最適化された）プログラムを実行することができる。
また、ＲＯＭのような記憶装置内の内部メモリには、記憶装置を駆動する為に必要な最低限の基本機能のモジュール（プログラム）を格納しておき、記憶媒体の使用形態に応じてドライブの機能を向上させる為に使用されるモジュール（プログラム）は、（可換型記憶媒体は交換されるので）記憶媒体自身に格納しておくことで、全ての媒体の使用形態に対応するモジュール（プログラム）を記憶装置のメモリに格納する必要が無くなり、記憶装置側のメモリ容量を削減できる。
また、記憶装置の機能を向上させる追加プログラムを媒体に記憶しておくことで、記憶装置を新製品のように機能アップさせることができる。
また、ユーザの記憶装置の使い勝手に合わせたプログラムを媒体に記憶しておくことで、ユーザの使用形態に合わせた記憶装置の駆動が可能になり、使い勝手を向上できる。
記憶装置上で動作するプログラムを、記憶装置内の内部メモリと、記憶装置に投入される可換型記憶媒体に分散しておき記録しておき、適宜読み込み実行されるようにしたため、記憶装置が必要とする内部メモリの容量を削減することができる。
また、同時に実行されることの無いプログラムを、記憶媒体側に記録しておき、適宜読み込み実行されるようにできるため、外部記憶装置が必要とする内部メモリの容量を削減することができる。
【図面の簡単な説明】
図１は、本発明の一実施例の外部記憶装置のブロック図である。
図２は、図１のドライブ機構の構成図である。
図３は、図１のメモリ空間の説明図である。
図４は、図１の可換型記憶媒体のメモリマップ図である。
図５は、図１のＲＯＭ（ドライブ）のモジュールリストの説明図である。
図６は、図４の記憶媒体のモジュールリストの説明図である。
図７は、図１の初期化及びインタラプトモジュールの処理フロー図である。
図８は、図１の媒体投入及びロード処理モジュールの処理フロー図である。
図９は、図８のロード処理の説明図である。
図１０は、図１のＣＤＢ解析モジュール及びＲＥＡＤモジュールの処理フロー図である。
図１１は、図１のキャッシュモジュールの説明のためのセクタ先読みの説明図である。
図１２は、図１１の先読みキャッシュモジュールの処理フロー図である。
図１３は、ＦＡＴフォーマットの説明図である。
図１４は、ＦＡＴキャッシュモジュールの処理フロー図である。
図１５は、先読みキャッシュモジュールのライト処理フロー図である。
図１６は、図１の媒体排出処理モジュールの処理フロー図である。
図１７は、本発明の他の実施例のモジュールリスト読み込み処理フロー図である。
図１８は、本発明の他の実施例のモジュールロード処理フロー図である。
【図１】
2002052397.tif 000003
【図２】
2002052397.tif 000004
【図３】
2002052397.tif 000005
【図４】
2002052397.tif 000006
【図５】
2002052397.tif 000007
【図６】
2002052397.tif 000008
【図７】
2002052397.tif 000009
【図８】
2002052397.tif 000010
【図９】
2002052397.tif 000011
【図１０】
2002052397.tif 000012
【図１１】
2002052397.tif 000013
【図１２】
2002052397.tif 000014
【図１３】
2002052397.tif 000015
【図１４】
2002052397.tif 000016
【図１５】
2002052397.tif 000017
【図１６】
2002052397.tif 000018
【図１７】
2002052397.tif 000019
【図１８】
2002052397.tif 000020
【国際調査報告】
2002052397.tif 000021
2002052397.tif 000022
2002052397.tif 000023