(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5694895
(24)【登録日】2015年2月13日
(45)【発行日】2015年4月1日
(54)【発明の名称】改良されたフラッシュメモリ互換性の電子デバイスと相関する方法
(51)【国際特許分類】
G06F 12/00 20060101AFI20150312BHJP
【FI】
G06F12/00 542J
【請求項の数】16
【全頁数】11
(21)【出願番号】特願2011-237052(P2011-237052)
(22)【出願日】2011年10月28日
(65)【公開番号】特開2012-113699(P2012-113699A)
(43)【公開日】2012年6月14日
【審査請求日】2011年10月28日
【審判番号】不服2014-1771(P2014-1771/J1)
【審判請求日】2014年1月31日
(31)【優先権主張番号】61/417,400
(32)【優先日】2010年11月26日
(33)【優先権主張国】US
(31)【優先権主張番号】13/196,966
(32)【優先日】2011年8月3日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】502160992
【氏名又は名称】宏達國際電子股▲ふん▼有限公司
(74)【代理人】
【識別番号】100116872
【弁理士】
【氏名又は名称】藤田 和子
(72)【発明者】
【氏名】王 佳瑞
(72)【発明者】
【氏名】秦 嗣勃
【合議体】
【審判長】
乾 雅浩
【審判官】
小曳 満昭
【審判官】
白石 圭吾
(56)【参考文献】
【文献】
特開2003−216483(JP,A)
【文献】
特開2004−342126(JP,A)
【文献】
特開平2−309416(JP,A)
【文献】
米国特許出願公開第2009/0287956(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F12/00
(57)【特許請求の範囲】
【請求項1】
改良されたフラッシュメモリ互換性の電子デバイスであって、
複数の物理ブロックを含み、前記の各物理ブロックは、更に、複数の物理ページに分割されるNANDフラッシュと、
処理ユニットと、
アプリケーションソフトとオペレーティングシステムのコードを保存するプログラムメモリと、
を含み、
前記処理ユニットにより実行される前記アプリケーションソフトは、特定のページサイズで、NANDフラッシュアクセスを要求し、
前記処理ユニットにより実行される前記オペレーティングシステムは、前記アプリケーションソフトと前記NANDフラッシュ間の媒介となり、デバイスドライバーを提供して、前記NANDフラッシュの複数の前記物理ページを、特定のページサイズの各仮想ページに割り当て、これらの前記仮想ページを参照することにより、前記アプリケーションソフトからのNANDフラッシュアクセス要求に応答し、前記オペレーティングシステムにより提供され、前記処理ユニットにより実行される前記デバイスドライバーは、更に、前記アプリケーションソフトにより要求される単一の仮想ページ読み取り/書き込み指令を、分離したページ読み取り/書き込み指令に転換して、割り当てられる前記物理ページを別々に、読み取り/書き込みし、前記仮想ページ読み取り/書き込み指令がアクセスしたい前記仮想ページを形成することを特徴とする電子デバイス。
【請求項2】
前記オペレーティングシステムにより提供され、且つ、前記処理ユニットにより実行される前記デバイスドライバーは、更に、各仮想ページの仮想ページ情報を、対応する前記物理ページの情報バイトに保存することを特徴とする請求項1に記載の電子デバイス。
【請求項3】
前記オペレーティングシステムにより提供され、前記処理ユニットにより実行される前記デバイスドライバーは、更に、前記NANDフラッシュの複数の物理ブロックを、前記アプリケーションソフトにアクセス可能な単一の仮想ブロックとして割り当てることを特徴とする請求項1に記載の電子デバイス。
【請求項4】
前記オペレーティングシステムにより提供され、前記処理ユニットにより実行される前記デバイスドライバーは、更に、各仮想ブロックの仮想ブロック状態を、対応する前記物理ブロックのステータスバイトに保存することを特徴とする請求項3に記載の電子デバイス。
【請求項5】
前記オペレーティングシステムにより提供され、前記処理ユニットにより実行される前記デバイスドライバーは、更に、単一の仮想ブロック読み取り/書き込み指令を、分離したブロック読み取り/書き込み指令に転換して、別々に、前記物理ブロックを読み取り/書き込みし、前記物理ブロックが割り当てられて、前記仮想ブロック読み取り/書き込み指令がアクセスしたい前記仮想ブロックを形成することを特徴とする請求項3に記載の電子デバイス。
【請求項6】
前記オペレーティングシステムにより提供され、前記処理ユニットにより実行される前記デバイスドライバーは、更に、単一の仮想ブロック消去指令を、分離したブロック消去指令に転換し、別々に、前記物理ブロックを消去し、前記物理ブロックが割り当てられて、前記仮想ブロック消去指令が消去したい前記仮想ブロックを形成することを特徴とする請求項3に記載の電子デバイス。
【請求項7】
前記オペレーティングシステムにより提供され、前記処理ユニットにより実行される前記デバイスドライバーは、更に、単一の仮想ブロック状態観察指令を、分離したブロックステータス観察指令に転換し、別々に、前記物理ブロックのステータスを観察し、前記物理ブロックが割り当てられて、前記仮想ブロック状態観察指令が参照する前記仮想ブロックを形成することを特徴とする請求項3に記載の電子デバイス。
【請求項8】
前記オペレーティングシステムにより提供され、前記処理ユニットにより実行される前記デバイスドライバーは、更に、単一の仮想ブロックステータス設定指令を、単一の物理ブロックステータス設定指令に転換し、一個の仮想ブロックのステータスを、いずれかの前記物理ブロックのステータスバイトに記録し、前記物理ブロックが割り当てられて、前記仮想ブロックを形成することを特徴とする請求項3に記載の電子デバイス。
【請求項9】
電子デバイスのフラッシュメモリ互換性を改善する方法であって、
前記電子デバイス上に備えられるNANDフラッシュの物理ページサイズを観察し、前記NANDフラッシュは、複数の物理ブロックを含み、前記の各物理ブロックは、更に、複数の物理ページに分割されるステップと、
前記物理ページサイズと特定のページサイズ間のサイズの比率1:Nを判断し、Nは数値、且つ、前記特定のページサイズは、前記電子デバイスのアプリケーションソフトのNANDフラッシュアクセス要求を定義するステップと、
前記NANDフラッシュのN物理ページを、各仮想ページに割り当てるステップと、
前記仮想ページを参照することにより、前記アプリケーションソフトからの前記NANDフラッシュアクセス要求に応答するステップと、
前記アプリケーションソフトにより要求される単一の仮想ページ読み取り/書き込み指令を、分離したページ読み取り/書き込み指令に転換して、別々に、前記物理ページを読み取り/書き込みし、前記物理ページが割り当てられて、前記仮想ページ読み取り/書き込み指令が参照する前記仮想ページを形成するステップと、
を含むことを特徴とする方法。
【請求項10】
更に、各仮想ページの仮想ページ情報を、対応する前記物理ページの情報バイトに保存することを特徴とする請求項9に記載の方法。
【請求項11】
更に、前記NANDフラッシュのN物理ブロックを、前記アプリケーションソフトにアクセス可能な単一の仮想ブロックとして割り当てることを特徴とする請求項9に記載の方法。
【請求項12】
更に、各仮想ブロックの仮想ブロックステータスを、対応する前記物理ブロックのステータスバイトに保存することを特徴とする請求項11に記載の方法。
【請求項13】
更に、単一の仮想ブロック読み取り/書き込み指令を、分離したブロック読み取り/書き込み指令に転換し、別々に、前記物理ブロックを読み取り/書き込みし、前記物理ブロックが割り当てられて、前記仮想ブロック読み取り/書き込み指令が参照する前記仮想ブロックを形成することを特徴とする請求項11に記載の方法。
【請求項14】
更に、単一の仮想ブロック消去指令を、分離したブロック消去指令に転換して、前記物理ブロックを消去し、前記物理ブロックが割り当てられて、前記仮想ブロック消去指令が参照する前記仮想ブロックを形成することを特徴とする請求項11に記載の方法。
【請求項15】
更に、単一の仮想ブロック状態観察指令を、分離したブロックステータス観察指令に転換し、別々に、前記物理ブロックのステータスを観察し、前記物理ブロックが割り当てられて、前記仮想ブロック状態観察指令が参照する前記仮想ブロックを形成することを特徴とする請求項11に記載の方法。
【請求項16】
更に、単一の仮想ブロックステータス設定指令を、単一の物理ブロックステータス設定指令に転換し、単一の仮想ブロックのステータスを、いずれかの物理ブロックステータスバイトに記録して、前記物理ブロックが割り当てられて、前記仮想ブロックを形成することを特徴とする請求項11に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、フラッシュメモリを備えた電子デバイスに関するものであって、特に、各種ページサイズのNANDフラッシュの使用を可能にするフラッシュメモリ互換性設計に関するものである。
【背景技術】
【0002】
フラッシュメモリは、電気的に消去、及び、再プログラムできる不揮発性コンピュータストレージチップである。メモリカード、USBフラッシュデバイス、MP3プレーヤー、ソリッドステート装置(solid−state drives)、サムドライブ(thumb drives)、PDA等に用いられて、データの通常の保存とコンピュータと別のデジタル製品間の伝送を行う。
【0003】
NANDフラッシュは、フラッシュメモリの一種である。一般に、NANDフラッシュの保存空間は、複数の物理ブロックに分割され、且つ、各物理ブロックは、更に、複数の物理ページに分割される。NANDフラッシュの読み取りとプログラミング操作は、一度に1ページ実行されなければならず、ロック解除(unlocking)と消去(erasing)は、ブロックを単位として(block−wise fashion)実行されなければならない。よって、NANDフラッシュを備えた電子デバイスのアプリケーションソフトを設計する時、NANDフラッシュの物理ページサイズと物理ブロックサイズが考慮される必要がある。例えば、備えられたNANDフラッシュが2K+64バイトのページに分割される場合、アプリケーションソフトは、特定のページサイズ、2K+64バイトに基づいて、NANDフラッシュにアクセスできるように設計されなければならず、備えられたNANDフラッシュが4K+128バイトのページに分割される場合、アプリケーションソフトは、別の特定のページサイズ、4K+128バイトに基づいて、NANDフラッシュにアクセスできるように設計されなければならない。異なるページサイズのNANDフラッシュとの互換性のため、電子デバイスのアプリケーションソフトの設計は非常に複雑である。
【発明の概要】
【発明が解決しようとする課題】
【0004】
改良されたフラッシュメモリ互換性の電子デバイスと電子デバイスのフラッシュメモリ互換性を改善する方法を提供し、上述の問題を解決することを目的とする。
【課題を解決するための手段】
【0005】
本発明の実施形態による電子デバイスは、NANDフラッシュ、処理ユニット、及び、プログラムメモリを含む。NANDフラッシュは複数の物理ブロックを有し、且つ、各物理ブロックは、更に、複数の物理ページに分割される。プログラムメモリは、アプリケーションソフトとオペレーティングシステムのコードを保存し、処理ユニットにより読み出し、実行される。処理ユニットにより実行されるアプリケーションソフトは、特定のページサイズで、NANDフラッシュアクセスを要求する。処理ユニットにより実行されるオペレーティングシステムは、アプリケーションソフトとNANDフラッシュ間の媒介となり、デバイスドライバーを提供し、NANDフラッシュの複数の物理ページを、特定のページサイズの各仮想ページに割り当て、仮想ページを参照することにより、アプリケーションソフトから要求されるNANDフラッシュアクセス要求に応答する。
【0006】
別の実施形態中、電子デバイスのフラッシュメモリ互換性を改善する方法が紹介される。まず、電子デバイス上に備えられるNANDフラッシュの物理ページサイズが観察され、物理ページサイズと特定のページサイズ間のサイズの比率1:Nが判断され、Nは数値で、且つ、特定のページサイズが、NANDフラッシュアクセス要求の電子デバイスのアプリケーションソフト中で定義される。Nの値に基づいて、仮想ページアロケーションが導入され、NANDフラッシュのN物理ページを各仮想ページに割り当てる。仮想ページにより、アプリケーションソフトからのNANDフラッシュアクセス要求に応じる。
【発明の効果】
【0007】
本発明のフラッシュメモリ互換性設計は、各種ページサイズのNANDフラッシュの使用を可能にする。
【図面の簡単な説明】
【0008】
【
図1A】本発明の実施形態による電子デバイスを示す図である。
【
図1B】電子デバイス100のソフトウェアアーキテクチャを示す図である。
【
図2】仮想ページアロケーションのコンセプトを示す図である。
【
図3】ページを単位とした読み取り/書き込み指令転換技術を示す図である。
【
図4】仮想ブロックアロケーションのコンセプトを示す図である。
【
図5】ページを単位とした読み取り/書き込み指令転換技術を示す図である。
【
図8】ステータス設定指令要求の転換技術を示す図である。
【発明を実施するための形態】
【0009】
図1Aは、本発明の実施形態による電子デバイスを示す図である。電子デバイス100は、NANDフラッシュ102、処理ユニット104、プログラムメモリ106、及び、入力/出力ユニット108を含む。プログラムメモリ106は、アプリケーションソフト110とオペレーティングシステム112のコードを保存する。処理ユニット104は、プログラムメモリ106のコードを読み出し、実行して、様々なアプリケーションを実行し、且つ、NANDフラッシュ102と入力/出力ユニット108を管理するオペレーティングシステムをビルドする。
【0010】
図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と互換性がある。
【0011】
図2は、仮想ページアロケーションのコンセプトを示す。図のように、アプリケーション204からのNANDフラッシュ要求は、特定のページサイズ−−4K+128バイトに基づき、データの4KバイトとECCのようなページ情報の128バイトがある。デバイスドライバー208の仮想ページアロケーションにより、NANDフラッシュ102の二個の物理ページは、単一の仮想ページとして割り当てられる。第一物理ページは2K+64バイトを提供し、第二物理ページは2K+64バイトを提供する。このように、各仮想ページは特定のページサイズに符合し、アプリケーション204から要求されるNANDフラッシュに適切に応答できる。注意すべきことは、単一の仮想ページ中、データバイトは、二個の部分Data1とData2に分けられる。第一部分Data1は第一物理ページに含まれ、第二部分Data2は第二物理ページに含まれる。仮想ページの情報バイト(以下、仮想ページ情報)では、完全に、第一物理ページに含まれる、又は、完全に、第二物理ページに含まれる。別の実施形態中、第一と第二物理ページ両方は、それらの情報バイトを提供し、仮想ページ情報を保存する。
【0012】
上述の仮想ページアロケーションに加え、デバイスドライバー208は、更に、指令転換を含む。
【0013】
図3は、読み取り/書き込み指令転換を示す。アプリケーション204中、各仮想ページ読み取り/書き込み指令は、完全な仮想ページを読み取り/書き込みすることを指示する。デバイスドライバー208は、各仮想ページ読み取り/書き込み指令を分離した物理ページ読み取り/書き込み指令Instruction_1とInstruction_2に転換する働きをする。要求された仮想ページの第一と第二物理ページは、それぞれ、物理ページ読み取り/書き込み指令、Instruction_1とInstruction_2により、読み取り/書き込みされる。
【0014】
別の実施形態中、デバイスドライバー208は、更に、仮想ブロックアロケーションを含む。
図4は、仮想ブロックアロケーションのコンセプトを示す。アプリケーション204中、許容範囲のブロックサイズは、設計者により選択された特定の値に制限される。アプリケーションソフトで定義される特定のブロックサイズは、単一の仮想ブロックのサイズを決定する。
図4の例中、特定のブロックサイズは、64*(4K+128バイト)である。NANDフラッシュ102を駆動して、アプリケーション204からの指令に応答するため、デバイスドライバー208は、NANDフラッシュ102内の二個の物理ブロック(第一物理ブロックと第二物理ブロック)を単一の仮想ブロックとして割り当てる。この実施形態中、第一物理ブロックは、64個の物理ページPhyPage1−PhyPage64を含み、第二物理ブロックも、64個の物理ページPhyPage65−PhyPage128を含む。各物理ページは2K+64バイトを含むので、単一の仮想ブロックに割り当てられる総保存空間は64*2*(2K+64バイト)を含み、アプリケーションソフトに定義される特定のブロックサイズに等しい。仮想ブロックも、アプリケーション204の指令に対応するように割り当てられる。注意すべきことは、各仮想ブロックのステータス(以下、仮想ブロックステータス、仮想ブロックを形成する全物理ブロックのステータス(有効/無効)を示す)は、物理ブロックのステータスバイトに保存される。例えば、仮想ブロックステータスは、第一物理ブロックのステータスバイトにより完全に保存される、又は、第二物理ブロックのステータスバイトにより完全に保存される、又は、別の例で、仮想ブロックのステータスは、第一と第二物理ブロック両方のステータスバイトに分散する。
【0015】
上述の仮想ブロックアロケーションに加え、デバイスドライバー208は、更に、ブロックを単位とした指令転換を含む。
【0016】
図5は、読み取り/書き込み指令転換を示す。アプリケーション204中、各仮想ブロック読み取り/書き込み指令は、完全な仮想ブロックを読み取り/書き込みするように指示する。デバイスドライバー208は、各仮想ブロック読み取り/書き込み指令を、分離したブロック読み取り/書き込み指令Instruction_1とInstruction_2に転換する働きをする。要求された仮想ブロックの第一と第二物理ブロックは、それぞれ、物理ブロック読み取り/書き込み指令、Instruction_1とInstruction_2により、読み取り/書き込みされる。
【0017】
図6は、消去指令転換を示す。アプリケーション204中、各仮想ブロック消去指令は、完全な仮想ブロックを消去するよう指示する。デバイスドライバー208は、各仮想ブロック消去指令を、分離したブロック消去指令Instruction_1とInstruction_2に転換する働きをする。要求された仮想ブロックの第一と第二物理ブロックは、それぞれ、物理ブロック消去指令、Instruction_1とInstruction_2により消去される。
【0018】
図7は、状態観察要求の転換を示す。GET STATUS指令は、通常、ブロックステータス(無効/有効)を観察するのに用いられる。アプリケーション204中、各仮想ブロック状態観察指令は、要求された仮想ブロックの有効性を観察するように指示する。デバイスドライバー208は、各仮想ブロック状態観察指令を、分離したブロックステータス観察指令Instruction_1とInstruction_2に転換する働きをする。要求された仮想ブロックの第一物理ブロックのステータスは、物理ブロックステータス観察指令Instruction_1により観察され、要求された仮想ブロックの第二物理ブロックのステータスは、物理ブロックステータス観察指令Instruction_2により観察される。観察された結果が、物理ブロック中のいずれかが無効であることを示す時、仮想ブロック全体が無効であると見なされる。
【0019】
図8は、ステータス設定(SET STATUS)指令要求の転換を示す図である。ステータス設定指令は、ブロックステータス(無効/有効と表示)の設定に用いられる。アプリケーション204中、各仮想ブロックステータス設定指令は、要求された仮想ブロックのステータスを設定するよう指示する。デバイスドライバー208は、各仮想ブロックステータス設定指令を、物理ブロックステータス設定指令に転換する働きをし、全体の仮想ブロックのステータスを、要求された仮想ブロックの物理ブロックのいずれか一つのステータスバイトに保存する。
図8の例中、物理ブロックステータス設定指令は、全体の要求された仮想ブロックのステータスを、第一物理ブロックの予備空間に保存する。別の例で、物理ブロックステータス設定指令は、全体の要求された仮想ブロックのステータスを、第二物理ブロックの予備空間に保存する。
【0020】
この段落は、電子デバイスのフラッシュメモリ互換性を改善する方法について検討する。まず、電子デバイス上に備えられたNANDフラッシュの物理ページサイズが観察され、物理ページサイズと特定のページサイズ間のサイズの比例1:Nが判断され、Nは数値、且つ、特定のページサイズは、NANDフラッシュアクセス要求の電子デバイスのアプリケーションソフトで定義される。Nの値に基づいて、仮想ページアロケーション技術が実行され、NANDフラッシュのN物理ページを、各仮想ページに割り当てる。仮想ページを参照することにより、アプリケーションソフトからのNANDフラッシュアクセス要求が適切に応答される。検討された方法は、あらゆるANDフラッシュを備える電子デバイスに応用できる。
【0021】
本発明では好ましい実施例を前述の通り開示したが、これらは決して本発明に限定するものではなく、当該技術を熟知する者なら誰でも、本発明の精神と領域を脱しない範囲内で各種の変動や変更を加えることができ、従って本発明の保護範囲は、特許請求の範囲で指定した内容を基準とする。
【符号の説明】
【0022】
100 電子デバイス
102 NANDフラッシュ
104 処理ユニット
106 プログラムメモリ
108 入力/出力ユニット
110 アプリケーションソフト
112 オペレーティングシステム
202 ユーザー
204 アプリケーション
206 オペレーティングシステム
208 デバイスドライバー
B1、B2、…、Bn 物理ブロック
Data1、Data2 第一、第二部分のデータバイト
PhyPage1…PhyPage128 物理ページ