"改良されたフラッシュメモリ互換性の電子デバイスであって、複数の物理ブロックを含み、前記の各物理ブロックは、更に、複数の物理ページに分割されるNANDフラッシュと、処理ユニットと、アプリケーションソフトとオペレーティングシステムのコードを保存するプログラムメモリと、を含み、前記処理ユニットにより実行される前記アプリケーションソフトは、特定のページサイズで、NANDフラッシュアクセスを要求し、前記処理ユニットにより実行される前記オペレーティングシステムは、前記アプリケーションソフトと前記NANDフラッシュ間の媒介となり、デバイスドライバーを提供して、前記NANDフラッシュの複数の前記物理ページを、特定のページサイズの各仮想ページに割り当て、これらの仮想ページを参照することにより、前記アプリケーションソフトからのNANDフラッシュアクセス要求に応答することを特徴とする電子デバイス。前記オペレーティングシステムにより提供され、且つ、前記処理ユニットにより実行される前記デバイスドライバーは、更に、各仮想ページの仮想ページ情報を、対応する前記物理ページの情報バイトに保存することを特徴とする請求項1に記載の電子デバイス。前記オペレーティングシステムにより提供され、前記処理ユニットにより実行される前記デバイスドライバーは、更に、前記アプリケーションソフトにより要求される単一の仮想ページ読み取り/書き込み指令を、分離したページ読み取り/書き込み指令に転換して、割り当てられる前記物理ページを別々に、読み取り/書き込みし、前記仮想ページ読み取り/書き込み指令がアクセスしたい前記仮想ページを形成することを特徴とする請求項1に記載の電子デバイス。前記オペレーティングシステムにより提供され、前記処理ユニットにより実行される前記デバイスドライバーは、更に、前記NANDフラッシュの複数の物理ブロックを、前記アプリケーションソフトにアクセス可能な単一の仮想ブロックとして割り当てることを特徴とする請求項1に記載の電子デバイス。前記オペレーティングシステムにより提供され、前記処理ユニットにより実行される前記デバイスドライバーは、更に、各仮想ブロックの仮想ブロック状態を、対応する前記物理ブロックのステータスバイトに保存することを特徴とする請求項4に記載の電子デバイス。前記オペレーティングシステムにより提供され、前記処理ユニットにより実行される前記デバイスドライバーは、更に、単一の仮想ブロック読み取り/書き込み指令を、分離したブロック読み取り/書き込み指令に転換して、別々に、前記物理ブロックを読み取り/書き込みし、前記物理ブロックが割り当てられて、前記仮想ブロック読み取り/書き込み指令がアクセスしたい前記仮想ブロックを形成することを特徴とする請求項4に記載の電子デバイス。前記オペレーティングシステムにより提供され、前記処理ユニットにより実行される前記デバイスドライバーは、更に、単一の仮想ブロック消去指令を、分離したブロック消去指令に転換し、別々に、前記物理ブロックを消去し、前記物理ブロックが割り当てられて、前記仮想ブロック消去指令が消去したい前記仮想ブロックを形成することを特徴とする請求項4に記載の電子デバイス。前記オペレーティングシステムにより提供され、前記処理ユニットにより実行される前記デバイスドライバーは、更に、単一の仮想ブロック状態観察指令を、分離したブロックステータス観察指令に転換し、別々に、前記物理ブロックのステータスを観察し、前記物理ブロックが割り当てられて、前記仮想ブロック状態観察指令が参照する前記仮想ブロックを形成することを特徴とする請求項4に記載の電子デバイス。前記オペレーティングシステムにより提供され、前記処理ユニットにより実行される前記デバイスドライバーは、更に、単一の仮想ブロックステータス設定指令を、単一の物理ブロックステータス設定指令に転換し、一個の仮想ブロックのステータスを、いずれかの前記物理ブロックのステータスバイトに記録し、前記物理ブロックが割り当てられて、前記仮想ブロックを形成することを特徴とする請求項4に記載の電子デバイス。電子デバイスのフラッシュメモリ互換性を改善する方法であって、前記電子デバイス上に備えられるNANDフラッシュの物理ページサイズを観察し、前記NANDフラッシュは、複数の物理ブロックを含み、前記の各物理ブロックは、更に、複数の物理ページに分割されるステップと、前記物理ページサイズと特定のページサイズ間のサイズの比率1:Nを判断し、Nは数値、且つ、前記特定のページサイズは、前記電子デバイスのアプリケーションソフトのNANDフラッシュアクセス要求を定義するステップと、前記NANDフラッシュのN物理ページを、各仮想ページに割り当てるステップと、前記仮想ページを参照することにより、前記アプリケーションソフトからの前記NANDフラッシュアクセス要求に応答するステップと、を含むことを特徴とする方法。更に、各仮想ページの仮想ページ情報を、対応する前記物理ページの情報バイトに保存することを特徴とする請求項10に記載の方法。更に、前記アプリケーションソフトにより要求される単一の仮想ページ読み取り/書き込み指令を、分離したページ読み取り/書き込み指令に転換して、別々に、前記物理ページを読み取り/書き込みし、前記物理ページが割り当てられて、前記仮想ページ読み取り/書き込み指令が参照する前記仮想ページを形成することを特徴とする請求項10に記載の方法。更に、前記NANDフラッシュのN物理ブロックを、前記アプリケーションソフトにアクセス可能な単一の仮想ブロックとして割り当てることを特徴とする請求項10に記載の方法。更に、各仮想ブロックの仮想ブロックステータスを、対応する前記物理ブロックのステータスバイトに保存することを特徴とする請求項13に記載の方法。更に、単一の仮想ブロック読み取り/書き込み指令を、分離したブロック読み取り/書き込み指令に転換し、別々に、前記物理ブロックを読み取り/書き込みし、前記物理ブロックが割り当てられて、前記仮想ブロック読み取り/書き込み指令が参照する前記仮想ブロックを形成することを特徴とする請求項13に記載の方法。更に、単一の仮想ブロック消去指令を、分離したブロック消去指令に転換して、前記物理ブロックを消去し、前記物理ブロックが割り当てられて、前記仮想ブロック消去指令が参照する前記仮想ブロックを形成することを特徴とする請求項13に記載の方法。更に、単一の仮想ブロック状態観察指令を、分離したブロックステータス観察指令に転換し、別々に、前記物理ブロックのステータスを観察し、前記物理ブロックが割り当てられて、前記仮想ブロック状態観察指令が参照する前記仮想ブロックを形成することを特徴とする請求項13に記載の方法。更に、単一の仮想ブロックステータス設定指令を、単一の物理ブロックステータス設定指令に転換し、単一の仮想ブロックのステータスを、いずれかの物理ブロックステータスバイトに記録して、前記物理ブロックが割り当てられて、前記仮想ブロックを形成することを特徴とする請求項13に記載の方法。改良されたフラッシュメモリ互換性の電子デバイスと電子デバイスのフラッシュメモリ互換性を改善する方法を提供し、上述の問題を解決することを目的とする。本発明の実施形態による電子デバイスは、NANDフラッシュ、処理ユニット、及び、プログラムメモリを含む。NANDフラッシュは複数の物理ブロックを有し、且つ、各物理ブロックは、更に、複数の物理ページに分割される。プログラムメモリは、アプリケーションソフトとオペレーティングシステムのコードを保存し、処理ユニットにより読み出し、実行される。処理ユニットにより実行されるアプリケーションソフトは、特定のページサイズで、NANDフラッシュアクセスを要求する。処理ユニットにより実行されるオペレーティングシステムは、アプリケーションソフトとNANDフラッシュ間の媒介となり、デバイスドライバーを提供し、NANDフラッシュの複数の物理ページを、特定のページサイズの各仮想ページに割り当て、仮想ページを参照することにより、アプリケーションソフトから要求されるNANDフラッシュアクセス要求に応答する。別の実施形態中、電子デバイスのフラッシュメモリ互換性を改善する方法が紹介される。まず、電子デバイス上に備えられるNANDフラッシュの物理ページサイズが観察され、物理ページサイズと特定のページサイズ間のサイズの比率1:Nが判断され、Nは数値で、且つ、特定のページサイズが、NANDフラッシュアクセス要求の電子デバイスのアプリケーションソフト中で定義される。Nの値に基づいて、仮想ページアロケーションが導入され、NANDフラッシュのN物理ページを各仮想ページに割り当てる。仮想ページにより、アプリケーションソフトからのNANDフラッシュアクセス要求に応じる。本発明のフラッシュメモリ互換性設計は、各種ページサイズのNANDフラッシュの使用を可能にする。図1Aは、本発明の実施形態による電子デバイスを示す図である。電子デバイス100は、NANDフラッシュ102、処理ユニット104、プログラムメモリ106、及び、入力/出力ユニット108を含む。プログラムメモリ106は、アプリケーションソフト110とオペレーティングシステム112のコードを保存する。処理ユニット104は、プログラムメモリ106のコードを読み出し、実行して、様々なアプリケーションを実行し、且つ、NANDフラッシュ102と入力/出力ユニット108を管理するオペレーティングシステムをビルドする。図1Bは、電子デバイス100のソフトウェアアーキテクチャである。ユーザー202は、アプリケーション204で、電子デバイス100を操作する。簡単にするため、アプリケーション204のためにコード化されたアプリケーションソフトは、特定の仕様のNANDフラッシュだけにアクセスが可能である。例えば、アプリケーション204により要求されるNANDフラッシュアクセス要求は、特定のページサイズだけと互換性を有する。しかし、電子デバイス100上に備えられたNANDフラッシュ102物理ブロックB1,B2...Bnに分割され、各物理ブロックは、更に、物理ページに分割されるは、アプリケーションソフト中で定義される特定のページサイズと異なる物理ページサイズを有する。この問題に対処するため、仮想ページアロケーション技術が、オペレーティングシステム内のデバイスドライバーのソフトウェア設計に導入される。図のように、オペレーティングシステム206は、アプリケーション204とNANDフラッシュ102間の媒介となり、オペレーティングシステム206により提供されるデバイスドライバー208は、仮想ページアロケーション技術を実現する。仮想ページアロケーション技術により、NANDフラッシュ102の幾つかの物理ページは、単一の仮想ページとして割り当てられる破線の円を参照。各仮想ページのサイズは、アプリケーション204のために定義された特定のページサイズに適合する。デバイスドライバー208は、NANDフラッシュ102を駆動して、仮想ページを参照することにより、アプリケーション204からのNANDフラッシュアクセス要求に応答する。このように、たとえ、NANDフラッシュ102の物理ページサイズがどのくらいであっても、特定のフラッシュメモリに対し設計されたアプリケーション204は正常に作動する。異なる仕様のNANDフラッシュは、開示された電子デバイス100と互換性がある。図2は、仮想ページアロケーションのコンセプトを示す。図のように、アプリケーション204からのNANDフラッシュ要求は、特定のページサイズ--4K128バイトに基づき、データの4KバイトとECCのようなページ情報の128バイトがある。デバイスドライバー208の仮想ページアロケーションにより、NANDフラッシュ102の二個の物理ページは、単一の仮想ページとして割り当てられる。第一物理ページは2K64バイトを提供し、第二物理ページは2K64バイトを提供する。このように、各仮想ページは特定のページサイズに符合し、アプリケーション204から要求されるNANDフラッシュに適切に応答できる。注意すべきことは、単一の仮想ページ中、データバイトは、二個の部分Data1とData2に分けられる。第一部分Data1は第一物理ページに含まれ、第二部分Data2は第二物理ページに含まれる。仮想ページの情報バイト以下、仮想ページ情報では、完全に、第一物理ページに含まれる、又は、完全に、第二物理ページに含まれる。別の実施形態中、第一と第二物理ページ両方は、それらの情報バイトを提供し、仮想ページ情報を保存する。上述の仮想ページアロケーションに加え、デバイスドライバー208は、更に、指令転換を含む。図3は、読み取り/書き込み指令転換を示す。アプリケーション204中、各仮想ページ読み取り/書き込み指令は、完全な仮想ページを読み取り/書き込みすることを指示する。デバイスドライバー208は、各仮想ページ読み取り/書き込み指令を分離した物理ページ読み取り/書き込み指令Instruction_1とInstruction_2に転換する働きをする。要求された仮想ページの第一と第二物理ページは、それぞれ、物理ページ読み取り/書き込み指令、Instruction_1とInstruction_2により、読み取り/書き込みされる。別の実施形態中、デバイスドライバー208は、更に、仮想ブロックアロケーションを含む。図4は、仮想ブロックアロケーションのコンセプトを示す。アプリケーション204中、許容範囲のブロックサイズは、設計者により選択された特定の値に制限される。アプリケーションソフトで定義される特定のブロックサイズは、単一の仮想ブロックのサイズを決定する。図4の例中、特定のブロックサイズは、644K128バイトである。NANDフラッシュ102を駆動して、アプリケーション204からの指令に応答するため、デバイスドライバー208は、NANDフラッシュ102内の二個の物理ブロック第一物理ブロックと第二物理ブロックを単一の仮想ブロックとして割り当てる。この実施形態中、第一物理ブロックは、64個の物理ページPhyPage1-PhyPage64を含み、第二物理ブロックも、64個の物理ページPhyPage65-PhyPage128を含む。各物理ページは2K64バイトを含むので、単一の仮想ブロックに割り当てられる総保存空間は6422K64バイトを含み、アプリケーションソフトに定義される特定のブロックサイズに等しい。仮想ブロックも、アプリケーション204の指令に対応するように割り当てられる。注意すべきことは、各仮想ブロックのステータス以下、仮想ブロックステータス、仮想ブロックを形成する全物理ブロックのステータス有効/無効を示すは、物理ブロックのステータスバイトに保存される。例えば、仮想ブロックステータスは、第一物理ブロックのステータスバイトにより完全に保存される、又は、第二物理ブロックのステータスバイトにより完全に保存される、又は、別の例で、仮想ブロックのステータスは、第一と第二物理ブロック両方のステータスバイトに分散する。上述の仮想ブロックアロケーションに加え、デバイスドライバー208は、更に、ブロックを単位とした指令転換を含む。図5は、読み取り/書き込み指令転換を示す。アプリケーション204中、各仮想ブロック読み取り/書き込み指令は、完全な仮想ブロックを読み取り/書き込みするように指示する。デバイスドライバー208は、各仮想ブロック読み取り/書き込み指令を、分離したブロック読み取り/書き込み指令Instruction_1とInstruction_2に転換する働きをする。要求された仮想ブロックの第一と第二物理ブロックは、それぞれ、物理ブロック読み取り/書き込み指令、Instruction_1とInstruction_2により、読み取り/書き込みされる。図6は、消去指令転換を示す。アプリケーション204中、各仮想ブロック消去指令は、完全な仮想ブロックを消去するよう指示する。デバイスドライバー208は、各仮想ブロック消去指令を、分離したブロック消去指令Instruction_1とInstruction_2に転換する働きをする。要求された仮想ブロックの第一と第二物理ブロックは、それぞれ、物理ブロック消去指令、Instruction_1とInstruction_2により消去される。図7は、状態観察要求の転換を示す。GETSTATUS指令は、通常、ブロックステータス無効/有効を観察するのに用いられる。アプリケーション204中、各仮想ブロック状態観察指令は、要求された仮想ブロックの有効性を観察するように指示する。デバイスドライバー208は、各仮想ブロック状態観察指令を、分離したブロックステータス観察指令Instruction_1とInstruction_2に転換する働きをする。要求された仮想ブロックの第一物理ブロックのステータスは、物理ブロックステータス観察指令Instruction_1により観察され、要求された仮想ブロックの第二物理ブロックのステータスは、物理ブロックステータス観察指令Instruction_2により観察される。観察された結果が、物理ブロック中のいずれかが無効であることを示す時、仮想ブロック全体が無効であると見なされる。図8は、ステータス設定SETSTATUS指令要求の転換を示す図である。ステータス設定指令は、ブロックステータス無効/有効と表示の設定に用いられる。アプリケーション204中、各仮想ブロックステータス設定指令は、要求された仮想ブロックのステータスを設定するよう指示する。デバイスドライバー208は、各仮想ブロックステータス設定指令を、物理ブロックステータス設定指令に転換する働きをし、全体の仮想ブロックのステータスを、要求された仮想ブロックの物理ブロックのいずれか一つのステータスバイトに保存する。図8の例中、物理ブロックステータス設定指令は、全体の要求された仮想ブロックのステータスを、第一物理ブロックの予備空間に保存する。別の例で、物理ブロックステータス設定指令は、全体の要求された仮想ブロックのステータスを、第二物理ブロックの予備空間に保存する。この段落は、電子デバイスのフラッシュメモリ互換性を改善する方法について検討する。まず、電子デバイス上に備えられたNANDフラッシュの物理ページサイズが観察され、物理ページサイズと特定のページサイズ間のサイズの比例1:Nが判断され、Nは数値、且つ、特定のページサイズは、NANDフラッシュアクセス要求の電子デバイスのアプリケーションソフトで定義される。Nの値に基づいて、仮想ページアロケーション技術が実行され、NANDフラッシュのN物理ページを、各仮想ページに割り当てる。仮想ページを参照することにより、アプリケーションソフトからのNANDフラッシュアクセス要求が適切に応答される。検討された方法は、あらゆるANDフラッシュを備える電子デバイスに応用できる。本発明では好ましい実施例を前述の通り開示したが、これらは決して本発明に限定するものではなく、当該技術を熟知する者なら誰でも、本発明の精神と領域を脱しない範囲内で各種の変動や変更を加えることができ、従って本発明の保護範囲は、特許請求の範囲で指定した内容を基準とする。"