(57)【要約】【課題】  ＯＳの許容制限に拘束されないフラッシュメモリを備えた外部記憶装置を構築することを目的とする。【解決手段】  コンピュータシステムに接続する通信用インターフェイスと、データを記憶する不揮発性のフラッシュメモリと、フラッシュメモリに対するデータの書込み、読み出しを制御するコントローラと、通信用インターフェイスの接続時に、コンピュータシステムに対して既知であるディスク装置が接続されたと認識させる信号を出力する出力手段と、ディスク装置の接続を認識したコンピュータシステムが実行する自動実行プログラムを格納する自動実行プログラム格納手段とを備え、自動実行プログラムは、外部記憶装置を仮想的なファイルレベルのデバイスとして認識させるドライバをコンピュータシステムに常駐させるプログラムである外部記憶装置とする。【選択図】  図３
2005258493.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータシステムに接続し、データを記憶する外部記憶装置であって、
前記コンピュータシステムに接続する通信用インターフェイスと、
前記データを記憶する不揮発性のフラッシュメモリと、
前記フラッシュメモリに対する前記データの書込み、読み出しを制御するコントローラと、
前記通信用インターフェイスの接続時に、前記コンピュータシステムに対して既知であるディスク装置が接続されたと認識させる信号を出力する出力手段と、
前記ディスク装置の接続を認識した前記コンピュータシステムが実行する自動実行プログラムを格納する自動実行プログラム格納手段とを備え、
前記自動実行プログラムは、当該外部記憶装置を仮想的なファイルレベルのデバイスとして認識させるドライバを前記コンピュータシステムに常駐させるプログラムである
外部記憶装置。
【請求項２】
請求項１に記載の外部記憶装置であって、
前記通信用インターフェイスは、ユニバーサルシリアルバスインターフェイスである外部記憶装置。
【請求項３】
請求項１または２に記載の外部記憶装置であって、
前記自動実行プログラム格納手段は、リードオンリーメモリである外部記憶装置。
【請求項４】
請求項１ないし３のいずれかに記載の外部記憶装置であって、
前記仮想的なファイルレベルのデバイスは、ネットワークドライブに相当するデバイスである外部記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータシステムに接続し、データを記憶するフラッシュメモリを備えた外部記憶装置に関するものである。
【背景技術】
【０００２】
従来から、不揮発性の半導体メモリであるフラッシュメモリをコンピュータシステムの外部記憶装置として扱いたいというニーズがある。例えば、特許文献１には、外部記憶装置としてフラッシュメモリを使用する場合の各ブロックのデータ消去回数を平準化し、特定のブロックのみの消去を防止する技術が開示されている。
【０００３】
【特許文献１】特表２００１−５２１２２０号公報
【０００４】
こうした外部記憶装置としてのフラッシュメモリをコンピュータシステムで扱う場合には、コンピュータシステム（オペレーションシステム（ＯＳ））側に、フラッシュメモリをハードディスク等と同じディスク装置として認識させる手法が行なわれていた。こうすることで、ＯＳ側は、ディスク装置に対するのと同様なリクエストでフラッシュメモリを扱うことができる。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、こうしたディスク装置と認識された外部記憶装置では、ＯＳの記憶容量の制約を受けるという問題があった。例えば、ＯＳのディスク装置のクラスタを管理する能力により、認識できるディスク装置の記憶容量に制限が課されていた。
【０００６】
本発明は、こうした問題の少なくとも一部を解決し、ＯＳの許容制限に拘束されないフラッシュメモリを備えた外部記憶装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の外部記憶装置は、上記課題の少なくとも一部を解決するため、以下の手法を採った。すなわち、コンピュータシステムに接続し、データを記憶する外部記憶装置であって、前記コンピュータシステムに接続する通信用インターフェイスと、前記データを記憶する不揮発性のフラッシュメモリと、前記フラッシュメモリに対する前記データの書込み、読み出しを制御するコントローラと、前記通信用インターフェイスの接続時に、前記コンピュータシステムに対して既知であるディスク装置が接続されたと認識させる信号を出力する出力手段と、前記ディスク装置の接続を認識した前記コンピュータシステムが実行する自動実行プログラムを格納する自動実行プログラム格納手段とを備え、前記自動実行プログラムは、当該外部記憶装置を仮想的なファイルレベルのデバイスとして認識させるドライバを前記コンピュータシステムに常駐させるプログラムであることを要旨としている。
【０００８】
本発明の外部記憶装置によれば、コンピュータシステムにディスク装置の接続を認識させる信号と自動実行プログラムとの協働によって、コンピュータシステムに接続された外部記憶装置を仮想的なファイルレベルのデバイスとしてＯＳに認識させる。ファイルレベルに接続された外部記憶装置は、データをファイル単位で扱う。したがって、ＯＳによる記憶容量の制限に拘束されない外部記憶装置を構築することができる。
【０００９】
上記の構成を有する外部記憶装置の通信用インターフェイスは、ユニバーサルシリアルバスインターフェイスであるものとしても良い。また、上記の構成を有する外部記憶装置の前記自動実行プログラム格納手段は、リードオンリーメモリであるものとしても良い。
【００１０】
上記の構成を有する外部記憶装置の仮想的なファイルレベルのデバイスは、ネットワークドライブに相当するデバイスとすることができる。かかる外部記憶装置によれば、コンピュータシステムに接続された外部記憶装置は、コンピュータシステムに、ネットワーク上に存在するドライブであると認識される。したがって、データをファイル単位で扱うことができる。
【発明を実施するための最良の形態】
【００１１】
以下、本発明の外部記憶装置の一実施例について説明する。図１は、本発明の一実施例としての外部記憶装置１０の構成を示す全体ブロック図である。図示するように、この外部記憶装置１０は、パーソナルコンピュータ（ＰＣ）と接続するインターフェイスであるＵＳＢデバイスＩ／Ｆ２０，データの読み書きを制御するＣＰＵ３０，所定のプログラムを備えたＲＯＭ５０，ＰＣからのデータを不揮発的に保存するフラッシュメモリ６０等から構成されている。
【００１２】
ＵＳＢデバイスＩ／Ｆ２０は、シリアル規格であるユニバーサルシリアルバス（ＵＳＢ）を有し、ＰＣとの接続が可能である。ＰＣから外部記憶装置１０へのデータの書込みや読み出し等のアクセスは、このＵＳＢデバイスＩ／Ｆ２０を介して行なわれる。以下、ＵＳＢデバイスＩ/Ｆ２０を介して、外部記憶装置１０をＰＣに接続することをＵＳＢ接続と呼ぶ。
【００１３】
ＣＰＵ３０は、フラッシュメモリ６０に書き込むデータの管理を行なっている。例えば、ＰＣのオペレーションシステム（ＯＳ）からデータの書換え要求を受けた場合には、ＣＰＵ３０は、ＯＳ側が所望するデータをフラッシュメモリ６０内から読み出し、データの修正を行ない、再びフラッシュメモリ６０にデータを書き込む。ＣＰＵ３０は、フラッシュメモリ６０を構成する複数のブロックを管理し、書込み、読み出し、消去などを実行する。
【００１４】
ＲＯＭ５０は、ＯＳに対して外部記憶装置１０を、既知のディスク装置の一つであるＣＤ―ＲＯＭとして認識させる擬似的な信号を出力する信号プログラムと、自動実行プログラムとを備えたマスクＲＯＭである。この信号プログラムからの擬似的な信号は、外部記憶装置１０のＵＳＢ接続時にＰＣ側からのデバイスの設定要求に対して出力される。ＰＣ側にＣＤ―ＲＯＭとして認識された後に、自動実行プログラムが起動する。なお、ＲＯＭ５０はＣＰＵ３０に内蔵されるものであっても良い。
【００１５】
フラッシュメモリ６０は、上述のようにデータを書き込む領域である複数のブロックから構成され、各ブロックにデータを記憶するメモリである。図２は、本実施例で採用するフラッシュメモリ６０の構造である。本実施例では、２５６Ｍｂｉｔの容量を有するＮＡＮＤ型のフラッシュメモリを使用している。図示するように、このフラッシュメモリ６０は、ＣＰＵ３０からの指令を受けてデータを一時的に格納するレジスタＲと、データの記憶領域である複数の物理的なブロックＢとからなる。この１つのブロックＢは、３２ページＰの領域に分割されている。このフラッシュメモリ６０は、ブロックＢ単位でデータの消去が行なわれ、ページＰ単位でデータの読み出し、書込みが行なわれる。
【００１６】
こうした要素からなる外部記憶装置１０のＰＣへのＵＳＢ接続および自動実行プログラムの処理について説明する。図３は、ＵＳＢ接続から自動実行プログラムの起動までに、ＯＳ側と外部記憶装置１０側とでそれぞれ実行される処理内容を示したフローチャートである。
【００１７】
まず、ユーザが起動中のＰＣのＵＳＢ接続ポートに外部記憶装置１０のＵＳＢ接続ポートを挿入すると（ステップＳ１００）、ＯＳは、ＵＳＢ接続ポートにデバイスが接続されたことを認識する（ステップＳ１１０）。デバイスを認識したＯＳは、デバイスに対して種別を認識するための信号を要求する（ステップＳ１２０）。
【００１８】
ＯＳ側からどのような種類のデバイスであるかは認識されていない外部記憶装置１０は、ＯＳからの要求に対して、ＣＤ−ＲＯＭに相当する信号を出力する（ステップＳ１３０）。
【００１９】
ＯＳは、外部記憶装置１０から受けた信号に基づいて、ＵＳＢ接続ポートに接続されたデバイスの種別を判定し、デバイスがＣＤ−ＲＯＭであることを認識する（ステップＳ１４０）。具体的には、接続されたデバイスは読み出し専用のディスクであると認識し、ＣＤ−ＲＯＭイメージをマウントする。
【００２０】
続いて、ＣＤ−ＲＯＭイメージをマウントしたＯＳは、ＣＤ−ＲＯＭイメージ内に自動実行プログラムが存在するか否かを問い合わせる（ステップＳ１５０）。問い合わせを受けた外部記憶装置１０は、ＲＯＭ５０内に自動実行プログラムの存在を示す信号をＯＳに送信する（ステップＳ１６０）。
【００２１】
外部記憶装置１０からのデータを受信したＯＳは、自動実行プログラムの有無を判断する（ステップＳ１６５）。ここで、自動実行プログラムが無い場合には、デバイスを認識した状態で処理を終了するが、本実施例では、自動実行プログラムの存在する旨の信号が送信されているため、ＯＳは、ＲＯＭ５０内からこのプログラムをロードし、これを起動する（ステップＳ１７０）。自動実行プログラムの起動と共に、外部記憶装置１０側での処理は終了する。
【００２２】
自動実行プログラムが起動すると、ＯＳは、先に認識したＣＤ−ＲＯＭイメージをアンマウントすると共に、ファイルシステムデバイスに相当するプログラムをＲＯＭ５０から読み出し、ＯＳ内に組み込む処理を行なう（ステップＳ１８０）。このファイルシステムデバイスは、ＵＳＢ接続された外部記憶装置１０の論理的な位置に仮想的なネットワークドライブに相当するデバイスを構成するものである。ＯＳは、この仮想的なネットワークドライブを認識して（ステップＳ１９０）、一連の処理を終了する。
【００２３】
こうしてＯＳに仮想的なネットワークドライブとして認識された外部記憶装置１０の概念図を図４に示す。一般的にＯＳは、上位層であるアプリケーションプログラムと下位層であるハードウェアとの仲介をし、図示するように、ＯＳカーネル，ファイルシステム，デバイス（デバイスドライバ）等により階層状に構成されている。通常、ＵＳＢ接続の外部記憶装置をＰＣに接続することは、デバイス層レベル（ＵＳＢデバイスドライバ）に接続することに相当する。こうしたデバイス層レベルに接続する外部記憶装置は、複数バイトからなるデータブロックを１つの単位としてデータの入出力を行なうデバイス（ハードディスクと同様）と認識され、外部記憶装置の入出力は、ブロックデバイスインターフェイスとして扱われる。
【００２４】
本実施例では、自動実行プログラムの起動により、ＯＳのファイルシステム層レベルにファイルシステムデバイスを挿入し、ＯＳが起動している間、外部記憶装置１０専用のファイルシステムデバイスを常駐させる。よって、本実施例のＵＳＢ接続の外部記憶装置１０をＰＣに接続することは、ファイルシステム層レベルに接続することに相当する。この外部記憶装置１０は、ＯＳからはネットワークに接続されたデバイスであると認識され、外部記憶装置１０の実質的な入出力は、通常のネットワークデバイスに対するのと同様に、ファイルシステムのＡＰＩ（Application  Program  Interface）レベルのインターフェイスとして扱われる。
【００２５】
具体的には、ＯＳがネットワークに接続したドライブであると認識した外部記憶装置１０に対して出力する指令は、例えば、ディレクトリカタログ，ファイルオープン・クローズ・リード／ライトなどファイルレベルの指令である。
【００２６】
こうしたファイルレベルの指令（コマンド）は、ＯＳから外部記憶装置１０へ受け渡される際に、ファイルシステムディスパッチャを経由している。このファイルシステムディスパッチャは、ＯＳからのコマンドが外部記憶装置１０へのものか否かを判断している。例えば、ファイルシステムディスパッチャが、ＯＳからのコマンドが外部記憶装置１０へのものであると判断した場合には、コマンドを外部記憶装置１０へ渡し、レスポンスを待つ。他方、ＯＳからのコマンドが外部記憶装置１０へのものではないと判断した場合には、ファイルシステムディスパッチャはコマンドをフックしてＯＳに返す。なお、ネットワークスタックにドライブレターを追加し、ネットワークデバイスの一つに見せることで、ネットワークディスパチャを経由して、同様なコマンドのやり取りをするものとしても良い。
【００２７】
ファイルシステムデバイスの物理層インターフェイスは、外部記憶装置１０のＵＳＢデバイスＩ／Ｆ２０を介して、ＣＰＵ３０と接続している。ＯＳからファイルシステムデバイスを介して、ファイルレベルの指令コマンドを受けた外部記憶装置１０は、ＣＰＵ３０の制御の下、フラッシュメモリ６０に対してデータの読み出し、書込み等を行なう。フラッシュメモリ６０自体へのアクセスは、ＵＳＢメモリとしてのフラッシュメモリの内部で実現されている。
【００２８】
本実施例の外部記憶装置１０では、ＲＯＭ５０に備えた擬似的な信号および自動実行プログラムによって、外部記憶装置１０を仮想的なネットワークドライブとしてＯＳに認識させ、ファイルシステム層レベルに接続することで、データをファイル単位で扱う。したがって、ＯＳによる記憶容量の制限に拘束されない外部記憶装置を構築することができる。
【００２９】
また、本実施例では、ファイルシステムデバイスは、ファイル単位でデータを扱うため、ファイル単位の暗号化を実施することが容易となる。この場合、暗号の復号化機能を外部記憶装置１０のＣＰＵ３０に実装すればＰＣ側の負担になることもない。例えば、ＣＰＵのシリアルナンバや機能、メーカなどの情報を取得できるＣＰＵＩＤコマンドを用いて、ＣＵＰＩＤを暗号化、復号化のキーとして使用することで、特定のＰＣ以外では復号化ができない外部記憶装置を構築することができる。
【００３０】
さらに、外部記憶装置１０側でも全ての入出力がファイルレベルで行なわれるため、データを圧縮して書き込む場合に、ＯＳの上位層との矛盾を生じることがない。また、外部記憶装置１０側は、ＰＣからのアクセスの形式を認識することができるので、アクセス形式に応じ、適切な圧縮メソッドを自動的に選択実行することができる。
【００３１】
以上、本発明の実施の形態について説明したが、本発明はこうした実施の形態に何ら限定されるものではなく、本発明の趣旨を逸脱しない範囲内において様々な形態で実施し得ることはもちろんである。本実施例では、外部記憶装置１０内にＲＯＭ５０を独立の構成としたが、このＲＯＭ５０をフラッシュメモリで代替して外部記憶装置を構成するものとしても良い。さらに、本実施例では、自動実行プログラムの起動により先に認識したＣＤ−ＲＯＭイメージをアンマウントするものとしたが、必ずしもアンマウントする必要はない。ＣＤ−ＲＯＭイメージをマウントしたままの状態とし、外部記憶装置１０のＵＳＢ接続ポートからの取り外しの際に利用するものとしても良い。
【図面の簡単な説明】
【００３２】
【図１】本発明の一実施例としての外部記憶装置の構成を示す全体ブロック図である。
【図２】本実施例の外部記憶装置で採用するフラッシュメモリの構造である。
【図３】ＵＳＢ接続から自動実行プログラムの起動までに、ＯＳ側と外部記憶装置側とでそれぞれ実行される処理内容を示したフローチャートである。
【図４】ＯＳに仮想的なネットワークドライブとして認識された外部記憶装置の概念図である。
【符号の説明】
【００３３】
１０...外部記憶装置
２０...ＵＳＢデバイスＩ／Ｆ
３０...ＣＰＵ
５０...ＲＯＭ
６０...フラッシュメモリ
【図１】
2005258493.tif 000003
【図２】
2005258493.tif 000004
【図３】
2005258493.tif 000005
【図４】
2005258493.tif 000006