(57)【特許請求の範囲】
【請求項１】
改良されたフラッシュメモリ互換性の電子デバイスであって、
複数の物理ブロックを含み、前記の各物理ブロックは、更に、複数の物理ページに分割されるＮＡＮＤフラッシュと、
処理ユニットと、
アプリケーションソフトとオペレーティングシステムのコードを保存するプログラムメモリと、
を含み、
前記処理ユニットにより実行される前記アプリケーションソフトは、特定のページサイズで、ＮＡＮＤフラッシュアクセスを要求し、
前記処理ユニットにより実行される前記オペレーティングシステムは、前記アプリケーションソフトと前記ＮＡＮＤフラッシュ間の媒介となり、デバイスドライバーを提供して、前記ＮＡＮＤフラッシュの複数の前記物理ページを、特定のページサイズの各仮想ページに割り当て、これらの前記仮想ページを参照することにより、前記アプリケーションソフトからのＮＡＮＤフラッシュアクセス要求に応答し、前記オペレーティングシステムにより提供され、前記処理ユニットにより実行される前記デバイスドライバーは、更に、前記アプリケーションソフトにより要求される単一の仮想ページ読み取り／書き込み指令を、分離したページ読み取り／書き込み指令に転換して、割り当てられる前記物理ページを別々に、読み取り／書き込みし、前記仮想ページ読み取り／書き込み指令がアクセスしたい前記仮想ページを形成することを特徴とする電子デバイス。
【請求項２】
前記オペレーティングシステムにより提供され、且つ、前記処理ユニットにより実行される前記デバイスドライバーは、更に、各仮想ページの仮想ページ情報を、対応する前記物理ページの情報バイトに保存することを特徴とする請求項１に記載の電子デバイス。
【請求項３】
前記オペレーティングシステムにより提供され、前記処理ユニットにより実行される前記デバイスドライバーは、更に、前記ＮＡＮＤフラッシュの複数の物理ブロックを、前記アプリケーションソフトにアクセス可能な単一の仮想ブロックとして割り当てることを特徴とする請求項１に記載の電子デバイス。
【請求項４】
前記オペレーティングシステムにより提供され、前記処理ユニットにより実行される前記デバイスドライバーは、更に、各仮想ブロックの仮想ブロック状態を、対応する前記物理ブロックのステータスバイトに保存することを特徴とする請求項３に記載の電子デバイス。
【請求項５】
前記オペレーティングシステムにより提供され、前記処理ユニットにより実行される前記デバイスドライバーは、更に、単一の仮想ブロック読み取り／書き込み指令を、分離したブロック読み取り／書き込み指令に転換して、別々に、前記物理ブロックを読み取り／書き込みし、前記物理ブロックが割り当てられて、前記仮想ブロック読み取り／書き込み指令がアクセスしたい前記仮想ブロックを形成することを特徴とする請求項３に記載の電子デバイス。
【請求項６】
前記オペレーティングシステムにより提供され、前記処理ユニットにより実行される前記デバイスドライバーは、更に、単一の仮想ブロック消去指令を、分離したブロック消去指令に転換し、別々に、前記物理ブロックを消去し、前記物理ブロックが割り当てられて、前記仮想ブロック消去指令が消去したい前記仮想ブロックを形成することを特徴とする請求項３に記載の電子デバイス。
【請求項７】
前記オペレーティングシステムにより提供され、前記処理ユニットにより実行される前記デバイスドライバーは、更に、単一の仮想ブロック状態観察指令を、分離したブロックステータス観察指令に転換し、別々に、前記物理ブロックのステータスを観察し、前記物理ブロックが割り当てられて、前記仮想ブロック状態観察指令が参照する前記仮想ブロックを形成することを特徴とする請求項３に記載の電子デバイス。
【請求項８】
前記オペレーティングシステムにより提供され、前記処理ユニットにより実行される前記デバイスドライバーは、更に、単一の仮想ブロックステータス設定指令を、単一の物理ブロックステータス設定指令に転換し、一個の仮想ブロックのステータスを、いずれかの前記物理ブロックのステータスバイトに記録し、前記物理ブロックが割り当てられて、前記仮想ブロックを形成することを特徴とする請求項３に記載の電子デバイス。
【請求項９】
電子デバイスのフラッシュメモリ互換性を改善する方法であって、
前記電子デバイス上に備えられるＮＡＮＤフラッシュの物理ページサイズを観察し、前記ＮＡＮＤフラッシュは、複数の物理ブロックを含み、前記の各物理ブロックは、更に、複数の物理ページに分割されるステップと、
前記物理ページサイズと特定のページサイズ間のサイズの比率１：Ｎを判断し、Ｎは数値、且つ、前記特定のページサイズは、前記電子デバイスのアプリケーションソフトのＮＡＮＤフラッシュアクセス要求を定義するステップと、
前記ＮＡＮＤフラッシュのＮ物理ページを、各仮想ページに割り当てるステップと、
前記仮想ページを参照することにより、前記アプリケーションソフトからの前記ＮＡＮＤフラッシュアクセス要求に応答するステップと、
前記アプリケーションソフトにより要求される単一の仮想ページ読み取り／書き込み指令を、分離したページ読み取り／書き込み指令に転換して、別々に、前記物理ページを読み取り／書き込みし、前記物理ページが割り当てられて、前記仮想ページ読み取り／書き込み指令が参照する前記仮想ページを形成するステップと、
を含むことを特徴とする方法。
【請求項１０】
更に、各仮想ページの仮想ページ情報を、対応する前記物理ページの情報バイトに保存することを特徴とする請求項９に記載の方法。
【請求項１１】
更に、前記ＮＡＮＤフラッシュのＮ物理ブロックを、前記アプリケーションソフトにアクセス可能な単一の仮想ブロックとして割り当てることを特徴とする請求項９に記載の方法。
【請求項１２】
更に、各仮想ブロックの仮想ブロックステータスを、対応する前記物理ブロックのステータスバイトに保存することを特徴とする請求項１１に記載の方法。
【請求項１３】
更に、単一の仮想ブロック読み取り／書き込み指令を、分離したブロック読み取り／書き込み指令に転換し、別々に、前記物理ブロックを読み取り／書き込みし、前記物理ブロックが割り当てられて、前記仮想ブロック読み取り／書き込み指令が参照する前記仮想ブロックを形成することを特徴とする請求項１１に記載の方法。
【請求項１４】
更に、単一の仮想ブロック消去指令を、分離したブロック消去指令に転換して、前記物理ブロックを消去し、前記物理ブロックが割り当てられて、前記仮想ブロック消去指令が参照する前記仮想ブロックを形成することを特徴とする請求項１１に記載の方法。
【請求項１５】
更に、単一の仮想ブロック状態観察指令を、分離したブロックステータス観察指令に転換し、別々に、前記物理ブロックのステータスを観察し、前記物理ブロックが割り当てられて、前記仮想ブロック状態観察指令が参照する前記仮想ブロックを形成することを特徴とする請求項１１に記載の方法。
【請求項１６】
更に、単一の仮想ブロックステータス設定指令を、単一の物理ブロックステータス設定指令に転換し、単一の仮想ブロックのステータスを、いずれかの物理ブロックステータスバイトに記録して、前記物理ブロックが割り当てられて、前記仮想ブロックを形成することを特徴とする請求項１１に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、フラッシュメモリを備えた電子デバイスに関するものであって、特に、各種ページサイズのＮＡＮＤフラッシュの使用を可能にするフラッシュメモリ互換性設計に関するものである。
【背景技術】
【０００２】
フラッシュメモリは、電気的に消去、及び、再プログラムできる不揮発性コンピュータストレージチップである。メモリカード、ＵＳＢフラッシュデバイス、ＭＰ３プレーヤー、ソリッドステート装置（ｓｏｌｉｄ−ｓｔａｔｅ  ｄｒｉｖｅｓ）、サムドライブ（ｔｈｕｍｂ  ｄｒｉｖｅｓ）、ＰＤＡ等に用いられて、データの通常の保存とコンピュータと別のデジタル製品間の伝送を行う。
【０００３】
ＮＡＮＤフラッシュは、フラッシュメモリの一種である。一般に、ＮＡＮＤフラッシュの保存空間は、複数の物理ブロックに分割され、且つ、各物理ブロックは、更に、複数の物理ページに分割される。ＮＡＮＤフラッシュの読み取りとプログラミング操作は、一度に１ページ実行されなければならず、ロック解除（ｕｎｌｏｃｋｉｎｇ）と消去（ｅｒａｓｉｎｇ）は、ブロックを単位として（ｂｌｏｃｋ−ｗｉｓｅ  ｆａｓｈｉｏｎ）実行されなければならない。よって、ＮＡＮＤフラッシュを備えた電子デバイスのアプリケーションソフトを設計する時、ＮＡＮＤフラッシュの物理ページサイズと物理ブロックサイズが考慮される必要がある。例えば、備えられたＮＡＮＤフラッシュが２Ｋ＋６４バイトのページに分割される場合、アプリケーションソフトは、特定のページサイズ、２Ｋ＋６４バイトに基づいて、ＮＡＮＤフラッシュにアクセスできるように設計されなければならず、備えられたＮＡＮＤフラッシュが４Ｋ＋１２８バイトのページに分割される場合、アプリケーションソフトは、別の特定のページサイズ、４Ｋ＋１２８バイトに基づいて、ＮＡＮＤフラッシュにアクセスできるように設計されなければならない。異なるページサイズのＮＡＮＤフラッシュとの互換性のため、電子デバイスのアプリケーションソフトの設計は非常に複雑である。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
改良されたフラッシュメモリ互換性の電子デバイスと電子デバイスのフラッシュメモリ互換性を改善する方法を提供し、上述の問題を解決することを目的とする。
【課題を解決するための手段】
【０００５】
本発明の実施形態による電子デバイスは、ＮＡＮＤフラッシュ、処理ユニット、及び、プログラムメモリを含む。ＮＡＮＤフラッシュは複数の物理ブロックを有し、且つ、各物理ブロックは、更に、複数の物理ページに分割される。プログラムメモリは、アプリケーションソフトとオペレーティングシステムのコードを保存し、処理ユニットにより読み出し、実行される。処理ユニットにより実行されるアプリケーションソフトは、特定のページサイズで、ＮＡＮＤフラッシュアクセスを要求する。処理ユニットにより実行されるオペレーティングシステムは、アプリケーションソフトとＮＡＮＤフラッシュ間の媒介となり、デバイスドライバーを提供し、ＮＡＮＤフラッシュの複数の物理ページを、特定のページサイズの各仮想ページに割り当て、仮想ページを参照することにより、アプリケーションソフトから要求されるＮＡＮＤフラッシュアクセス要求に応答する。
【０００６】
別の実施形態中、電子デバイスのフラッシュメモリ互換性を改善する方法が紹介される。まず、電子デバイス上に備えられるＮＡＮＤフラッシュの物理ページサイズが観察され、物理ページサイズと特定のページサイズ間のサイズの比率１：Ｎが判断され、Ｎは数値で、且つ、特定のページサイズが、ＮＡＮＤフラッシュアクセス要求の電子デバイスのアプリケーションソフト中で定義される。Ｎの値に基づいて、仮想ページアロケーションが導入され、ＮＡＮＤフラッシュのＮ物理ページを各仮想ページに割り当てる。仮想ページにより、アプリケーションソフトからのＮＡＮＤフラッシュアクセス要求に応じる。
【発明の効果】
【０００７】
本発明のフラッシュメモリ互換性設計は、各種ページサイズのＮＡＮＤフラッシュの使用を可能にする。
【図面の簡単な説明】
【０００８】
【図１Ａ】本発明の実施形態による電子デバイスを示す図である。
【図１Ｂ】電子デバイス１００のソフトウェアアーキテクチャを示す図である。
【図２】仮想ページアロケーションのコンセプトを示す図である。
【図３】ページを単位とした読み取り／書き込み指令転換技術を示す図である。
【図４】仮想ブロックアロケーションのコンセプトを示す図である。
【図５】ページを単位とした読み取り／書き込み指令転換技術を示す図である。
【図６】ブロック消去指令転換技術を示す図である。
【図７】状態観察要求の転換技術を示す図である。
【図８】ステータス設定指令要求の転換技術を示す図である。
【発明を実施するための形態】
【０００９】
図１Ａは、本発明の実施形態による電子デバイスを示す図である。電子デバイス１００は、ＮＡＮＤフラッシュ１０２、処理ユニット１０４、プログラムメモリ１０６、及び、入力／出力ユニット１０８を含む。プログラムメモリ１０６は、アプリケーションソフト１１０とオペレーティングシステム１１２のコードを保存する。処理ユニット１０４は、プログラムメモリ１０６のコードを読み出し、実行して、様々なアプリケーションを実行し、且つ、ＮＡＮＤフラッシュ１０２と入力／出力ユニット１０８を管理するオペレーティングシステムをビルドする。
【００１０】
図１Ｂは、電子デバイス１００のソフトウェアアーキテクチャである。ユーザー２０２は、アプリケーション２０４で、電子デバイス１００を操作する。簡単にするため、アプリケーション２０４のためにコード化されたアプリケーションソフトは、特定の仕様のＮＡＮＤフラッシュだけにアクセスが可能である。例えば、アプリケーション２０４により要求されるＮＡＮＤフラッシュアクセス要求は、特定のページサイズだけと互換性を有する。しかし、電子デバイス１００上に備えられたＮＡＮＤフラッシュ１０２（物理ブロックＢ１，Ｂ２…Ｂｎに分割され、各物理ブロックは、更に、物理ページに分割される）は、アプリケーションソフト中で定義される特定のページサイズと異なる物理ページサイズを有する。この問題に対処するため、仮想ページアロケーション技術が、オペレーティングシステム内のデバイスドライバーのソフトウェア設計に導入される。図のように、オペレーティングシステム２０６は、アプリケーション２０４とＮＡＮＤフラッシュ１０２間の媒介となり、オペレーティングシステム２０６により提供されるデバイスドライバー２０８は、仮想ページアロケーション技術を実現する。仮想ページアロケーション技術により、ＮＡＮＤフラッシュ１０２の幾つかの物理ページは、単一の仮想ページとして割り当てられる（破線の円を参照）。各仮想ページのサイズは、アプリケーション２０４のために定義された特定のページサイズに適合する。デバイスドライバー２０８は、ＮＡＮＤフラッシュ１０２を駆動して、仮想ページを参照することにより、アプリケーション２０４からのＮＡＮＤフラッシュアクセス要求に応答する。このように、たとえ、ＮＡＮＤフラッシュ１０２の物理ページサイズがどのくらいであっても、特定のフラッシュメモリに対し設計されたアプリケーション２０４は正常に作動する。異なる仕様のＮＡＮＤフラッシュは、開示された電子デバイス１００と互換性がある。
【００１１】
図２は、仮想ページアロケーションのコンセプトを示す。図のように、アプリケーション２０４からのＮＡＮＤフラッシュ要求は、特定のページサイズ−−４Ｋ＋１２８バイトに基づき、データの４ＫバイトとＥＣＣのようなページ情報の１２８バイトがある。デバイスドライバー２０８の仮想ページアロケーションにより、ＮＡＮＤフラッシュ１０２の二個の物理ページは、単一の仮想ページとして割り当てられる。第一物理ページは２Ｋ＋６４バイトを提供し、第二物理ページは２Ｋ＋６４バイトを提供する。このように、各仮想ページは特定のページサイズに符合し、アプリケーション２０４から要求されるＮＡＮＤフラッシュに適切に応答できる。注意すべきことは、単一の仮想ページ中、データバイトは、二個の部分Ｄａｔａ１とＤａｔａ２に分けられる。第一部分Ｄａｔａ１は第一物理ページに含まれ、第二部分Ｄａｔａ２は第二物理ページに含まれる。仮想ページの情報バイト（以下、仮想ページ情報）では、完全に、第一物理ページに含まれる、又は、完全に、第二物理ページに含まれる。別の実施形態中、第一と第二物理ページ両方は、それらの情報バイトを提供し、仮想ページ情報を保存する。
【００１２】
上述の仮想ページアロケーションに加え、デバイスドライバー２０８は、更に、指令転換を含む。
【００１３】
図３は、読み取り／書き込み指令転換を示す。アプリケーション２０４中、各仮想ページ読み取り／書き込み指令は、完全な仮想ページを読み取り／書き込みすることを指示する。デバイスドライバー２０８は、各仮想ページ読み取り／書き込み指令を分離した物理ページ読み取り／書き込み指令Ｉｎｓｔｒｕｃｔｉｏｎ＿１とＩｎｓｔｒｕｃｔｉｏｎ＿２に転換する働きをする。要求された仮想ページの第一と第二物理ページは、それぞれ、物理ページ読み取り／書き込み指令、Ｉｎｓｔｒｕｃｔｉｏｎ＿１とＩｎｓｔｒｕｃｔｉｏｎ＿２により、読み取り／書き込みされる。
【００１４】
別の実施形態中、デバイスドライバー２０８は、更に、仮想ブロックアロケーションを含む。図４は、仮想ブロックアロケーションのコンセプトを示す。アプリケーション２０４中、許容範囲のブロックサイズは、設計者により選択された特定の値に制限される。アプリケーションソフトで定義される特定のブロックサイズは、単一の仮想ブロックのサイズを決定する。図４の例中、特定のブロックサイズは、６４＊（４Ｋ＋１２８バイト）である。ＮＡＮＤフラッシュ１０２を駆動して、アプリケーション２０４からの指令に応答するため、デバイスドライバー２０８は、ＮＡＮＤフラッシュ１０２内の二個の物理ブロック（第一物理ブロックと第二物理ブロック）を単一の仮想ブロックとして割り当てる。この実施形態中、第一物理ブロックは、６４個の物理ページＰｈｙＰａｇｅ１−ＰｈｙＰａｇｅ６４を含み、第二物理ブロックも、６４個の物理ページＰｈｙＰａｇｅ６５−ＰｈｙＰａｇｅ１２８を含む。各物理ページは２Ｋ＋６４バイトを含むので、単一の仮想ブロックに割り当てられる総保存空間は６４＊２＊（２Ｋ＋６４バイト）を含み、アプリケーションソフトに定義される特定のブロックサイズに等しい。仮想ブロックも、アプリケーション２０４の指令に対応するように割り当てられる。注意すべきことは、各仮想ブロックのステータス（以下、仮想ブロックステータス、仮想ブロックを形成する全物理ブロックのステータス（有効／無効）を示す）は、物理ブロックのステータスバイトに保存される。例えば、仮想ブロックステータスは、第一物理ブロックのステータスバイトにより完全に保存される、又は、第二物理ブロックのステータスバイトにより完全に保存される、又は、別の例で、仮想ブロックのステータスは、第一と第二物理ブロック両方のステータスバイトに分散する。
【００１５】
上述の仮想ブロックアロケーションに加え、デバイスドライバー２０８は、更に、ブロックを単位とした指令転換を含む。
【００１６】
図５は、読み取り／書き込み指令転換を示す。アプリケーション２０４中、各仮想ブロック読み取り／書き込み指令は、完全な仮想ブロックを読み取り／書き込みするように指示する。デバイスドライバー２０８は、各仮想ブロック読み取り／書き込み指令を、分離したブロック読み取り／書き込み指令Ｉｎｓｔｒｕｃｔｉｏｎ＿１とＩｎｓｔｒｕｃｔｉｏｎ＿２に転換する働きをする。要求された仮想ブロックの第一と第二物理ブロックは、それぞれ、物理ブロック読み取り／書き込み指令、Ｉｎｓｔｒｕｃｔｉｏｎ＿１とＩｎｓｔｒｕｃｔｉｏｎ＿２により、読み取り／書き込みされる。
【００１７】
図６は、消去指令転換を示す。アプリケーション２０４中、各仮想ブロック消去指令は、完全な仮想ブロックを消去するよう指示する。デバイスドライバー２０８は、各仮想ブロック消去指令を、分離したブロック消去指令Ｉｎｓｔｒｕｃｔｉｏｎ＿１とＩｎｓｔｒｕｃｔｉｏｎ＿２に転換する働きをする。要求された仮想ブロックの第一と第二物理ブロックは、それぞれ、物理ブロック消去指令、Ｉｎｓｔｒｕｃｔｉｏｎ＿１とＩｎｓｔｒｕｃｔｉｏｎ＿２により消去される。
【００１８】
図７は、状態観察要求の転換を示す。ＧＥＴ  ＳＴＡＴＵＳ指令は、通常、ブロックステータス（無効／有効）を観察するのに用いられる。アプリケーション２０４中、各仮想ブロック状態観察指令は、要求された仮想ブロックの有効性を観察するように指示する。デバイスドライバー２０８は、各仮想ブロック状態観察指令を、分離したブロックステータス観察指令Ｉｎｓｔｒｕｃｔｉｏｎ＿１とＩｎｓｔｒｕｃｔｉｏｎ＿２に転換する働きをする。要求された仮想ブロックの第一物理ブロックのステータスは、物理ブロックステータス観察指令Ｉｎｓｔｒｕｃｔｉｏｎ＿１により観察され、要求された仮想ブロックの第二物理ブロックのステータスは、物理ブロックステータス観察指令Ｉｎｓｔｒｕｃｔｉｏｎ＿２により観察される。観察された結果が、物理ブロック中のいずれかが無効であることを示す時、仮想ブロック全体が無効であると見なされる。
【００１９】
図８は、ステータス設定（ＳＥＴ  ＳＴＡＴＵＳ）指令要求の転換を示す図である。ステータス設定指令は、ブロックステータス（無効／有効と表示）の設定に用いられる。アプリケーション２０４中、各仮想ブロックステータス設定指令は、要求された仮想ブロックのステータスを設定するよう指示する。デバイスドライバー２０８は、各仮想ブロックステータス設定指令を、物理ブロックステータス設定指令に転換する働きをし、全体の仮想ブロックのステータスを、要求された仮想ブロックの物理ブロックのいずれか一つのステータスバイトに保存する。図８の例中、物理ブロックステータス設定指令は、全体の要求された仮想ブロックのステータスを、第一物理ブロックの予備空間に保存する。別の例で、物理ブロックステータス設定指令は、全体の要求された仮想ブロックのステータスを、第二物理ブロックの予備空間に保存する。
【００２０】
この段落は、電子デバイスのフラッシュメモリ互換性を改善する方法について検討する。まず、電子デバイス上に備えられたＮＡＮＤフラッシュの物理ページサイズが観察され、物理ページサイズと特定のページサイズ間のサイズの比例１：Ｎが判断され、Ｎは数値、且つ、特定のページサイズは、ＮＡＮＤフラッシュアクセス要求の電子デバイスのアプリケーションソフトで定義される。Ｎの値に基づいて、仮想ページアロケーション技術が実行され、ＮＡＮＤフラッシュのＮ物理ページを、各仮想ページに割り当てる。仮想ページを参照することにより、アプリケーションソフトからのＮＡＮＤフラッシュアクセス要求が適切に応答される。検討された方法は、あらゆるＡＮＤフラッシュを備える電子デバイスに応用できる。
【００２１】
本発明では好ましい実施例を前述の通り開示したが、これらは決して本発明に限定するものではなく、当該技術を熟知する者なら誰でも、本発明の精神と領域を脱しない範囲内で各種の変動や変更を加えることができ、従って本発明の保護範囲は、特許請求の範囲で指定した内容を基準とする。
【符号の説明】
【００２２】
１００  電子デバイス
１０２  ＮＡＮＤフラッシュ
１０４  処理ユニット
１０６  プログラムメモリ
１０８  入力／出力ユニット
１１０  アプリケーションソフト
１１２  オペレーティングシステム
２０２  ユーザー
２０４  アプリケーション
２０６  オペレーティングシステム
２０８  デバイスドライバー
Ｂ１、Ｂ２、…、Ｂｎ  物理ブロック
Ｄａｔａ１、Ｄａｔａ２  第一、第二部分のデータバイト
ＰｈｙＰａｇｅ１…ＰｈｙＰａｇｅ１２８  物理ページ
【図１Ａ】
0005694895.tif 000002
【図１Ｂ】
0005694895.tif 000003
【図２】
0005694895.tif 000004
【図３】
0005694895.tif 000005
【図４】
0005694895.tif 000006
【図５】
0005694895.tif 000007
【図６】
0005694895.tif 000008
【図７】
0005694895.tif 000009
【図８】
0005694895.tif 000010