ブートコードを記憶するNANDフラッシュメモリ、ホストプロセッサによって実行可能に構成されている揮発性メモリ、揮発性メモリをホストに接続する物理インターフェイス、および前記揮発性メモリに対する動作を制御するコントローラを備えるデータ記憶デバイスであって、前記データ記憶デバイスがホスト装置の前記ホストプロセッサに作動可能に接続された状態で、電源が投入されると、前記コントローラが前記NANDフラッシュメモリから前記ブートコードを前記揮発性メモリにコピーするよう構成され、電源投入されると、ブートコード以外の他のコードを実行する前に、前記ホストプロセッサが前記物理インターフェイスを介して前記コピーされたブートコードを実行するよう構成され、前記ホストプロセッサが前記物理インターフェイスを介して、仮想アドレスを含むインストラクションを前記NANDフラッシュメモリに送信するよう構成され、前記コントローラが前記仮想アドレスを前記NANDフラッシュメモリの物理アドレスに変換するように構成され、前記仮想アドレスの物理アドレスへの変換が前記データ記憶デバイス内で行われ、前記NANDフラッシュメモリに記憶されるドライバは、前記ホスト装置のオペレーティングシステムによって利用可能であり、前記ホスト装置が前記データ記憶デバイスとは異なる物理デバイスにアクセスするよう作動させ、前記ドライバに応答するデータ流を生成し、前記物理インターフェイスからのデータを送信するよう作動させることで、前記第一のインターフェイスを前記物理インターフェイス上にエミュレートし、前記物理インターフェイスに対応する通信を管理し、前記ホスト装置が前記物理インターフェイスを用いて通信するよう作動する、データ記憶デバイス。前記第一のインターフェイスはUSBインターフェイスである、請求項1に記載のデータ記憶デバイス。前記コントローラが、前記フラッシュメモリから前記ブートコードを取得し、前記揮発性メモリに記憶し、前記ホスト装置に電源が投入されると、前記物理インターフェイスを経由して前記ホスト装置が前記揮発性メモリのブートコードを実行し、前記ホスト装置が前記ブートコードを実行することで、前記ホスト装置が前記ドライバを前記ホスト装置にコピーする、請求項1または2に記載のデータ記憶デバイス。ブートコードを記憶するNANDフラッシュメモリと、ホストプロセッサによって実行可能に構成されている揮発性メモリと、コントローラとを有するデータ記憶デバイスを作動させるためにコントローラが実行する方法であって、前記データ記憶デバイスがホスト装置の前記ホストプロセッサに作動可能に接続された状態で、前記ホストプロセッサが電源投入されると、前記コントローラが前記NANDフラッシュメモリから前記揮発性メモリにブートコードをコピーすることで、ブートコード以外の他のコードを実行する前に、前記ホストプロセッサが前記ブートコードを実行するステップと、前記ホストプロセッサが前記物理インターフェイスを介して前記NANDフラッシュメモリに仮想アドレスを含むインストラクションを送信するステップと、前記データ記憶デバイス内において、前記ホストプロセッサから前記インストラクションと共に受信した前記仮想アドレスを前記NANDフラッシュメモリの物理アドレスへ変換するステップと、前記ホスト装置のオペレーティングシステムによって利用可能であり、前記ホスト装置が前記データ記憶デバイスとは異なる物理デバイスにアクセスするよう作動し、前記ドライバに応答するデータ流を生成して前記物理インターフェイスからのデータを送信するよう作動することで、前記第一のインターフェイスを前記物理インターフェイス上にエミュレートし、前記物理インターフェイスに対応する通信を管理し、前記ホスト装置が前記物理インターフェイスを用いて通信することを可能にする、前記NANDフラッシュメモリに記憶されているドライバを、前記ホスト装置が前記ブートコードを実行することに応答して、前記ホスト装置にコピーするステップと、を備える、方法。前記ドライバをコピーするステップの後で、前記ドライバによって前記NANDフラッシュメモリから前記ホスト装置へオペレーティングシステムをコピーする、請求項4の方法。不揮発性メモリをホスト装置へ接続する物理インターフェイスと、ドライバを記憶する不揮発性メモリとを有する不揮発性記憶デバイスのホスト装置が実行する方法であって、前記不揮発性メモリによって提供されるブートコードを実行するステップと、前記ホスト装置のホストプロセッサが前記ブートコードを実行することによって、前記物理インターフェイスを経由して前記不揮発性メモリから前記ドライバを受信するステップと、前記不揮発性メモリから前記ドライバを受信するステップの後で、前記物理インターフェイスを管理する前記ドライバが、前記ホスト装置のオペレーティングシステムが前記NANDフラッシュメモリとは異なる物理デバイスにアクセスするよう作動し、前記ドライバによって、データ流を生成し、前記物理インターフェイスからのデータを送信するよう作動し、第一のインターフェイスを前記物理インターフェイス上にエミュレートすることで、前記ホスト装置が前記不揮発性メモリと前記物理インターフェイスを経由して通信するステップと、を備える、方法。本発明によれば、次のものを含むデータ記憶デバイスが提供される。aNANDフラッシュメモリ。b実行可能なインターフェイス。そしてcホストから実行可能なインターフェイスを介して、仮想アドレスでNANDフラッシュメモリにアクセスするインストラクションを受信するための、そして仮想アドレスをNANDフラッシュメモリ内の物理アドレスへ変換するためのコントローラ。本発明によれば、次のステップを含む、システムを作動させるための方法が提供される。aシステム内に、ブートコードを記憶したNANDフラッシュメモリを含むデータ記憶デバイスを含ませるステップ。b電源オンで、ブートコードを実行するステップ。cその後、仮想アドレスでメモリにアクセスするインストラクションをデータ記憶デバイスへ出すステップ。そしてdデータ記憶デバイスによって、仮想アドレスをメモリの物理アドレスへ変換するステップ。本発明によれば、次のステップを含む、メモリを含むデータ記憶デバイスがデータ記憶デバイスのホストと相互作用するための方法が提供される。aホストへ実行可能なインターフェイスを提示するステップ。bホストから、仮想アドレスでメモリにアクセスするインストラクションを受信するステップ。そしてc仮想アドレスをメモリの物理アドレスへ変換するステップ。本発明の基本的なデータ記憶デバイスは、NANDフラッシュメモリ、実行可能なインターフェイスおよびコントローラを含む。コントローラは、データ記憶デバイスのホストから実行可能なインターフェイスを介して、仮想アドレスでNANDフラッシュメモリにアクセスするインストラクションを受信するための、そして仮想アドレスをNANDフラッシュメモリ内の物理アドレスへ変換するためのものである。NANDフラッシュメモリにアクセスすることは、少なくとも、NANDフラッシュメモリからデータを読み込むこと、そしてNANDフラッシュメモリへデータを書き込むことを含む。コントローラは、また、ブート機能をホストへ提供するように作動可能であることが好ましい。コントローラがそのようなブート機能を提供する一つの好適な方法は、それ自体内に揮発性メモリを含ませ、ホストの起動時に、NANDフラッシュメモリから揮発性メモリへブートコードをコピーすることである。揮発性メモリがSRAMであり、そして実行可能なインターフェイスがSRAMインターフェイスであることが最も好ましい。NANDフラッシュメモリは、その中に、ホストが実行可能なインターフェイスを介してコントローラへインストラクションを送信するために実行するドライバのためのコードを記憶していることが好ましい。本発明の一つの方法によれば、コンピュータシステムを作動させるために、NANDフラッシュメモリを含むデータ記憶デバイスは、システム内に含まれる。ブートコードは、そのメモリ内に記憶される。電源オンで、ブートコードが実行される。その後、仮想アドレスでメモリにアクセスするインストラクションがデータ記憶デバイスへ出され、そしてデータ記憶デバイスが、仮想アドレスをメモリの物理アドレスへ変換する。本発明のもう一つの方法によれば、メモリを含むデータ記憶デバイスは、ホストへ実行可能なインターフェイスを提示すること、仮想アドレスでメモリにアクセスするインストラクションをホストから受信すること、そして仮想アドレスをメモリの物理アドレスへ変換することによって、データ記憶デバイスのホストと相互作用する。本発明を、例としてのみ、添付の図面を参照して説明する。本発明は、それ自身の仮想アドレスから物理アドレスへの変換を実行すると共に、ホストへ実行可能なインターフェイスを提示するデータ記憶デバイスに関する。特に本発明は、ブートメモリおよびメイン不揮発性メモリの両方として、そのホストが使用できる。本発明によるデータ記憶デバイスの原理および作用は、図面とその説明文を参照することによって、よく理解することができる。本発明は、前述の従来の技術によるアーキテクチャの両方とも異なり、それら二つの従来の技術によるアーキテクチャ間の一種のハイブリッドアーキテクチャであるアーキテクチャを採用することによって、ブートサポートと内部フラッシュ管理との両方を提供する。本発明の記憶デバイスは、一方でデバイスの記憶メディアと、そして他方でホストプロセッサとインターフェイスするコントローラを含む。第一の従来の技術によるアーキテクチャの場合のように、コントローラは、フラッシュ管理の機能を含み、アドレスマッピングの機能を含む。しかし、第一のアーキテクチャのデバイスとは異なり、コントローラがホストプロセッサへエクスポートするインターフェイスは、例えばSRAMインターフェイス等の、実行可能なインターフェイスである。第二のアーキテクチャの場合のように、コントローラは、また、SRAMインターフェイスを介してホストがアクセス可能な、SRAMメモリの小さなセクションを含む。システムの電源オンで、コントローラは、自動的に、そしてホストプロセッサから独立して、NAND記憶セルからSRAMのそのセクションへ、初期ブートコードをコピーする。ホストが、そのリセット電源オン状態を経た後にコード実行を開始するとき、実行すべき最初のコードが、そのSRAMセクションのコードである。再び図面を参照する。図3は、本発明のコンピュータシステム60を部分的に示す、高度な概略ブロック図である。図示のアーキテクチャが適当なコンピュータシステムの例としては、例えばパソコン等のコンピュータ、コンピュータに基づく機器、そして携帯電話等のポータブル機器がある。システム60と従来の技術によるシステム20との両方に共通するコンポーネントプロセッサ22、RAM26およびバス30は、同一の参照番号を持つ。システム60とシステム20との間の主要な相違は、システム60において、システム20の三つの不揮発性メモリデバイスBIOS24、ハードディスク28およびフラッシュメモリデバイス44が、単一のフラッシュメモリデバイス62で置換されていることである。フラッシュメモリデバイス62は、NANDフラッシュメモリ64、フラッシュコントローラ66および実行可能なインターフェイス、特にSRAMインターフェイス68を含む。NANDフラッシュメモリ内には、ブートコード70と、システム60のオペレーティングシステム72が記憶されている。オペレーティングシステム72は、フラッシュメモリデバイス62のためのドライバ76を含む。フラッシュコントローラ48のように、フラッシュコントローラ66は、NANDフラッシュメモリ64のためのフラッシュ管理システムを具現する。フラッシュコントローラ66は、また、電源オンでフラッシュコントローラ66がブートコード70をコピーする、コピー先のSRAM74を含む。SRAMインターフェイス68が実行可能であることは、システム60がフラッシュメモリデバイス62からブートすることを可能にする。これは、あたかも、第二の従来の技術によるアーキテクチャのフラッシュメモリデバイスを持つシステムのようである。フラッシュメモリデバイス62に対して、システム60の他の部分は、フラッシュメモリデバイス62のホスト78である。システム60が起動すると、フラッシュコントローラ66は、ブートコード70をSRAM74へコピーする。プロセッサ22は、SRAMインターフェイス68を介してSRAM74からブートし、それからRAM26へオペレーティングシステム72をコピーする。システム60上で実行されるオペレーティングシステム72による、そしてアプリケーションによるフラッシュメモリデバイス62への、それ以降のアクセスは、ドライバ76を介して行われる。ただし、ブートコード70を実行した後に、プロセッサ22がオペレーティングシステム72をRAM26へコピーできるためには、ブートコード70が、ドライバ76をRAM26へコピーするためのインストラクションを含んでいなければならない。そうすれば、以降のオペレーティングシステム72のRAM26へのコピーは、単に、オペレーティングシステム72の残部に関する。システム60の一つの欠点は、ドライバ76が、SRAMインターフェイス68を介するフラッシュコントローラ66との通信をサポートするよう、最初から書かれていなければならないことである。実行可能なインターフェイスに関連したより複雑な統合化を解決するために、本発明は、ホストと記憶デバイスとの間の実行可能な物理インターフェイス上で、USBインターフェイスまたはSDインターフェイス等の、標準インターフェイスプロトコルをエミュレートすることが好ましい。そのようなエミュレーションは、ホスト上で実行しているソフトウェアアプリケーションまたはオペレーティングシステムが、標準インタフェースを物理的に持つデバイスへのアクセスのためにオペレーティングシステムが備える標準ドライバを使用することによって、記憶デバイスに容易にアクセスすることを可能にする。したがって、統合化のすべての努力は、エミュレーションソフトウェアへ局所化でき、エミュレーションソフトウェアは、記憶デバイスタイプとホストプロセッサタイプとのいずれの組み合わせに対しても、僅かに一度だけ仕立てて統合させなければならない。図4は、このエミュレーションを行う一つの方法を示す。図4は、本発明のもう一つのコンピュータシステム80を部分的に示す、高度な概略ブロック図である。システム80は、システム60の改良バージョンであり、システム20、60および/あるいは80に共通するコンポーネントは、同一の参照番号を持つ。システム60および80の相違は、システム80がフラッシュメモリデバイス62にアクセスするために使用するドライバ82が、システム20の従来の技術によるドライバ34を改良して書かれていることである。ドライバ82は、上層36を維持しているが、上層36とSRAMインターフェイス68との間の通信を管理するための、本発明の新しい下層84を持つ。本発明を限られた数の実施例に関して説明したが、本発明の多くの変形、修正、そして他の応用が可能であることは明らかである。