JP3708047B2 - フラッシュメモリの管理方法 - Google Patents
フラッシュメモリの管理方法 Download PDFInfo
- Publication number
- JP3708047B2 JP3708047B2 JP2001384833A JP2001384833A JP3708047B2 JP 3708047 B2 JP3708047 B2 JP 3708047B2 JP 2001384833 A JP2001384833 A JP 2001384833A JP 2001384833 A JP2001384833 A JP 2001384833A JP 3708047 B2 JP3708047 B2 JP 3708047B2
- Authority
- JP
- Japan
- Prior art keywords
- block
- log
- data
- page
- flash memory
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4234—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus
- G06F13/4239—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus with asynchronous protocol
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/20—Employing a main memory using a specific memory technology
- G06F2212/202—Non-volatile memory
- G06F2212/2022—Flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7203—Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System (AREA)
Description
【発明の属する技術分野】
本発明はフラッシュメモリに係り、特にフラッシュメモリに基づいたシステムにおいてフラッシュメモリの管理方法に関する。
【0002】
【従来の技術】
フラッシュメモリは電気的にデータを消去/書込み可能な不揮発性記憶素子である。マグネチックディスクメモリに基づいた貯蔵装置に比べてフラッシュメモリに基づいた貯蔵装置は省エネルギー性に優れ、小型であるためにマグネチックディスクメモリの代案として研究及び開発が活発に進められている。特に、フラッシュメモリはデジタルカメラ、モビルホン、PDA(Personal Digital Assistant)のようなモビルコンピューティング機器のための貯蔵装置として脚光を浴びると予想される。
【0003】
しかし、フラッシュメモリはデータの再書込みが自由なマグネチックディスクメモリとは異なってデータの再書込みが不可能である。フラッシュメモリにデータを再書込むためにはまずデータを消去しなければならない。すなわち、メモリセルを書込み可能な初期状態に復帰させねばならない。このような作業を消去という。消去は一般に書込みに比べて非常に長時間がかかる。また、消去は書込みよりさらに大きなブロック単位で行われるために書込みが要請されない部分までも共に消去される結果となりうる。誤って消去された部分は再書込みを通じて復元しなければならないために、最悪の場合にデータ一つの書込み要請が一つの消去と消去された単位だけの書込みを必要とする。これにより消去と書込みの実行単位の不一致によって書込みの実行性能は読出しのそれに比べて顕著に劣り、かつ機械動作による必然的な遅延を伴うマグネチックディスク基盤の貯蔵装置のそれより低い。したがって、フラッシュメモリに基づいた貯蔵装置の設計において書込みの性能改善は核心技術に該当する。
【0004】
米国特許No.5,388,083は要請された書込みが、先行すべきである消去によって遅延されることを防止するために消去を行わず、空間に書込む代わりに使用者が要請した論理アドレスをフラッシュメモリ上の物理アドレスに変換するカム(CAM)構造を提案している。しかし、カム構造を具現するためには高価な回路を必要とする。米国特許No.5,485,595は書込みが要請された場合に消去を行わず、空間に書込む代わりに各ページの付加領域に論理アドレスを記入し、付加領域に記録された論理アドレスを順次に検索して読出しを行う方式を提案している。しかし、このようなアドレス変換メカニズムはNANDタイプのフラッシュメモリのように読出しの単位が大きな場合には分散貯蔵されたアドレス変換情報を読出すのに長時間がかかって実効性が低い問題点がある。
【0005】
米国特許No.5,845,313は貯蔵装置を初期化する時、フラッシュメモリに貯蔵された論理アドレスをスキャニングして別のRAMに直接アドレス変換を行える線形的なアドレス変換テーブルを構築する方法を提示している。しかし、アドレス変換テーブルを貯蔵するためには大容量RAMが必要である。例えば、全体貯蔵容量が32MBで、ページの大きさが512Bのフラッシュメモリ基盤貯蔵装置のアドレス変換テーブルを貯蔵するためには65,536のページ当り2Bが必要なので総128KBのRAMが必要となる。このような要求量はモビル機器など資源の貴重な小規模システムにおいては過度に大きい。
【0006】
米国特許No.5,404,485は書込みのために新たなブロック(交替ブロック)を割当て、割当てられたブロックに書込みを行う方式を提案している。しかし、これによれば書込みのために新たなブロックが割当て続けられるので同一なページが記録された相異なるバージョンの複数個のブロックが存在することになる。すなわち、暗黙に全てのブロック毎に少なくとも1つの交替ブロックが存在することを要求してフラッシュメモリの容量が相当減ることになる。また、新たなブロックに使われるページは常に以前のブロックのそれと同じ位置に書込まれるべきなので、特定ページに対してのみ頻繁な更新が行われ、残りページは更新がほとんど行われない場合、特定ページの内容のみが相異なるだけで残りページの内容は同一な交替ブロックが複数個存在することになってフラッシュメモリの貯蔵空間の浪費が激しくなる問題点がある。これに、モビル機器などの小規模システムに適さない。
【0007】
【発明が解決しようとする課題】
したがって、本発明の目的は、フラッシュメモリの性能を改善させうるフラッシュメモリ基盤システム及びその管理方法を提供することである。
本発明の他の目的は、電源遮断などの非常時に一貫性あるデータの復元が可能なフラッシュメモリ基盤システム及びその管理方法を提供することである。
本発明のさらに他の目的は、FAT(File Allocation Table)に基づいたDOSファイルシステムのように特定ページに対するデータ更新が頻繁な環境でもシステムの性能が低下しないフラッシュメモリ基盤システム及びその管理方法を提供することである。
【0008】
【課題を解決するための手段】
前記目的は、フラッシュメモリに所定データを書込む方法において、(a) 書込みが行われて所定のデータが記録されているページに書込みを要請される段階と、(b) 前記ページが含まれるデータブロックに対応するように備えられたログブロックに書込みを行う段階と、(c) 前記ページに書込みを再び要請される段階と、(d) 前記ログブロック内の空いている自由ページに書込みを行う段階とを含むことを特徴とするフラッシュメモリ書込み方法によって達成される。
【0009】
前記(b)段階は、(b11) 空いている自由ページに書込みを行う段階を含んだり、(b21) 前記ログブロックを割当てる段階と、(b22) 前記書込みが要請されたページの前記データブロックでの位置と同じ位置の自由ページに書込みを行う段階を含むことが望ましい。
また、フラッシュメモリに所定データを書込む方法において、(a) 所定ページに書込みを要請される段階と、(b) 前記ページが含まれた第1データブロックに対応する第1-1ログブロックを割当てる段階と、(c) 前記第1-1ログブロック内の空いている自由ページに書込みを行う段階と、(d) 前記ページに書込みを再び要請される段階と、(e) 前記第1-1ログブロック内の空いている自由ページに書込みを行う段階とを含むことを特徴とするフラッシュメモリ書込み方法によっても達成される。
【0010】
前記(b)段階は、(b1) 第2データブロック及びこれに対応する第2ログブロックに基づいて第3データブロックを生成するブロック併合を行う段階と、(b2) 前記第2データブロックに対する消去を行い得られた自由ブロックを前記第1ログブロックに割当てる段階とを含むことが望ましい。前記(b1)段階は、前記第1-1ログブロックを割当てるための自由ブロックが存在しない時に行われたり、前記第1データブロックに対応する既存のログブロックが全て使用中である場合に行われることが望ましい。
【0011】
また、前記(b1)段階は、(b11)前記第2ログブロックのページと前記第2データブロックのページの配列順序が同一で、一対一対応する場合、前記第2ログブロックを前記第3データブロックに遷移させる交換併合を行う段階を含んだり、(b12) 前記第2ログブロックに存在するページが全て一回ずつだけ書込み要請された場合、前記第2ログブロックの自由ページに前記第2データブロックの該当ページをコピーして前記第3データブロックを生成するコピー併合を行う段階を含んだり、(b13) データが記録されていない自由ブロックに前記第2ログブロックに存在する最新ページをコピーし、残りの自由ページに前記第2データブロックの該当ページをコピーして前記第3データブロックを生成する単純併合を行う段階とを含むことがさらに望ましい。
【0012】
前記(e)段階は、(e1) 前記第1-1ログブロック内に自由ページが存在しない場合、新しい第1-2ログブロックを割当てる段階と、(e2) 前記第1-2ログブロック内の自由ページに書込みを行う段階を含み、前記(e1)段階は、(e11)前記第1-1ログブロックのページと前記第1データブロックのページの配列順序が同一で、一対一対応する場合、前記第1-1ログブロックを第2データブロックに遷移させる交換併合を行う段階と、(e12) 前記第1データブロックに対する消去を行い得られた自由ブロックを前記第1-2ログブロックに割当てる段階を含んだり、(e21) 前記第1-1ログブロックに存在するページが全て一回ずつだけ書込み要請された場合、前記第1-1ログブロックの自由ページに前記第1データブロックの該当ページをコピーして第2データブロックを生成するコピー併合を行う段階と、(e22)前記第1データブロックに対する消去を行い得られた自由ブロックを前記第1-2ログブロックに割当てる段階を含んだり、(e31) 自由ブロックに前記第1-1ログブロックに存在する最新ページをコピーし、残りの自由ページに前記第1データブロックの該当ページをコピーして第2データブロックを生成する単純併合を行う段階と、(e32)前記第1データブロックまたは前記第1-1ログブロックに対する消去を行い得られた自由ブロックを前記第1-2ログブロックに割当てる段階とを含むことが特に望ましい。
【0013】
前記(e2)段階は、(e21)書込みが要請されたページの前記データブロックでの位置と同じ位置の自由ページに書込みを行う段階を含むことが望ましい。
一方、本発明の他の分野によれば、前記目的はフラッシュメモリから所定データを読出す方法において、(a)ログポインタテーブルに要請されたページの論理アドレスのうちブロックアドレス部分が記録されたエントリーを検索する段階と、(b)検索されたエントリーに前記要請されたページの論理アドレスの記録有無を確認する段階と、(c)検索されたエントリーに記録された対応ログブロックの物理アドレスと、検索された論理アドレスの前記検索されたエントリーでの記録位置を参照して前記ログブロックの該当ページに接近する段階を含むことを特徴とするフラッシュメモリ読出し方法によっても達成される。
【0014】
前記(c)段階は、前記ログブロックの該当ページへの接近に際して前記検索された論理アドレスの前記検索されたエントリーでの記録位置と同じ位置のページに接近することが望ましい。
一方、本発明の他の分野によれば、前記目的は、データブロック、及び前記データブロックを更新するためのデータを書込むためのログブロックを含むフラッシュメモリを管理する方法において、(a)第1データブロックのページと前記第1データブロックに対応する第1ログブロックのページの配列順序が同一で、一対一対応する場合、前記第1ログブロックを第2データブロックに遷移させる段階と、(b)アドレス変換情報を更新する段階を含むことを特徴とするフラッシュメモリの管理方法によっても達成される。
【0015】
また、データブロック、及び前記データブロックを更新するためのデータを書込むためのログブロックを含むフラッシュメモリを管理する方法において、(a)第1ログブロックに存在するページが全て一回ずつだけ書込み要請された場合、前記第1ログブロックの自由ページに対応第1データブロックの該当ページをコピーして第2データブロックを生成する段階と、(b)アドレス変換情報を更新する段階を含むことを特徴とするフラッシュメモリの管理方法によっても達成される。
【0016】
また、データブロック、及び前記データブロックを更新するためのデータを書込むためのログブロックを含むフラッシュメモリを管理する方法において、(a)データが記録されていない自由ブロックに第1ログブロックに存在する最新ページをコピーし、残りの自由ページに対応第1データブロックの該当ページをコピーして第2データブロックを生成する段階と、(b) アドレス変換情報を更新する段階とを含むことを特徴とするフラッシュメモリの管理方法によっても達成される。
【0017】
前記(a)段階の前に(a0) 前記(a)段階または(b)段階の実行中にシステムが中断される場合、データを復旧するための復旧情報を記録する段階をさらに含むことが望ましい。
前記フラッシュメモリの管理方法は、(c) 前記(a)段階または(b)段階の実行中にシステムが中断される場合、前記復旧情報を参照してデータを復元する段階をさらに含むことが望ましい。
【0018】
前記復旧情報は、前記自由ブロックのリスト、ログブロックのリスト、前記ログブロックを管理するためのデータ構造のログポインタテーブルを含み、前記ログポインタテーブルにはログブロックに対応する数だけのログポインタテーブルエントリーが構成されており、各エントリーには対応データブロックの論理アドレスと該当ログブロックの物理アドレスとがマッピングされており、該当ログブロック内の各ページの物理的配列順序によって該当データブロックの要請されたページの論理アドレスが記録されている。
【0019】
また、前記目的は、データブロック、及び前記データブロックを更新するためのデータを書込むためのログブロックを含むフラッシュメモリを管理する方法において、(a)フラッシュメモリの所定領域を割当て、割当てられた領域に復旧情報として前記データブロック及び前記ログブロックのリスト、及び前記ログブロックを管理するためのデータ構造を記録する段階と、(b)システムが中断される場合に前記復旧情報に基づいて現在のフラッシュメモリに記録された状態を点検してエラーの発生有無を確認する段階と、(c)エラーが発生した場合に前記復旧情報に基づいてデータを復元する段階をさらに含むことを特徴とするフラッシュメモリの管理方法によっても達成される。
【0020】
【発明の実施の形態】
以下、添付した図面に基づいて本発明の望ましい実施形態を説明する。
図1は本発明の望ましい実施形態に係るフラッシュメモリ基盤システムのブロック図である。
図1を参照すれば、システムはフラッシュメモリ1、ROM2、RAM3及びプロセッサ4を具備する。通常、プロセッサ4はROM2に記録されているプログラムコードと結合してフラッシュメモリ1またはRAM2に対する一連の読出しまたは書込み命令を発する。フラッシュメモリ1には本発明のフラッシュメモリの管理方法による書込み/読出しが行われる。ROM2とRAM3にはプロセッサ4で行われる応用プログラムコードまたは関連データ構造が貯蔵される。
【0021】
図2は本発明によってフラッシュメモリ1に備えられ、一般のデータが貯蔵されるためのブロックを説明するための参考図である。
図2を参照すれば、フラッシュメモリ1には複数個のデータブロックと少なくとも一部のデータブロックに対応するように備えられるログブロックが存在する。「データブロック」は一般のデータを貯蔵するブロックを示し、「ログブロック」はデータブロックの所定部分を修正しようとする場合に割当てられて修正内容を記録する用途として活用されるブロックを示す。したがって、ログブロックは唯一のデータブロックに対応して該当データブロックの修正されたページを貯蔵する。ログブロックに貯蔵されているページはデータブロックに貯蔵されている該当ページより優先的に参照される。このように優先的に参照されるページを本明細書では「有効ページ」という。さらに、物理的に有効なデータが記録されていたとしても有効ページによりその内容が無視されるページは論理的な意味で「無効ページ」と称する。
【0022】
図3はログブロックとデータブロックとに対する読出しを説明するための参考図である。
図3を参照すれば、使用者から論理アドレスと共に所定ページに対する読出しが要請されるとプロセッサ4はRAM3に記録されているログポインタテーブルを参照して該当ログブロックの存否を確認し、存在する場合にそのログブロックに要請されたページが有効に貯蔵されているか否かを確認する。要請されたページが有効に貯蔵されていればログブロックの該当ページを読出し、そうでなければ該当データブロックに記録された該当ページを読出す。ログポインタテーブルは後述する。
【0023】
図4は本発明の一実施形態に係るフラッシュメモリ1の領域分割を説明するための参考図である。図4を参照すれば、フラッシュメモリ1はマップ領域、ログブロック領域、データブロック領域、及び自由ブロック領域に分割しうる。マップ領域にはアドレス変換情報が貯蔵され、ログブロック領域はログブロックに割当てられるための領域であり、データブロック領域は一般のデータが記録される領域であり、自由ブロック領域はログブロックまたはデータブロックに割当てられるための領域である。ここで、各領域は論理的に分割された領域を意味する。したがって、物理的には混ぜられて不連続に存在しうる。特に、データブロック領域、ログブロック領域、及び自由ブロック領域がそうである。
【0024】
図5は本発明の他の実施形態に係るフラッシュメモリ1の領域分割を説明するための参考図である。図5を参照すれば、フラッシュメモリ1はマップ領域、チェックポイント領域、ログブロック領域、データブロック領域、及び自由ブロック領域に分割しうる。本実施形態では図4の領域分割に比べてチェックポイント領域が新たに備えられている。チェックポイント領域にはデータ復旧のために必要な復旧情報が記録される。一方、図4の場合と同様に、マップ領域にはアドレス変換情報が貯蔵され、ログブロック領域はログブロックに割当てられるための領域であり、データブロック領域は一般のデータが記録される領域であり、自由ブロック領域はログブロックまたはデータブロックに割当てるための自由領域である。マップ領域に記録されるアドレス変換情報及びチェックポイント領域に記録される復旧情報についての詳細な説明は後述する。
【0025】
「ログポインタテーブル」はログブロックの管理のためのデータ構造である。ログポインタテーブルには対応データブロックの論理アドレス、該当ログブロックの物理アドレス、及びログブロック内の各ページの物理的配列順序によって該当データブロックの更新されたページのオフセット値(要請されたページの論理アドレス)が記録される。ログポインタテーブルは本実施形態によってRAM3に構築されるべきなので、プロセッサ4がログブロック領域をスキャンして構成する。図6を参照すれば、ログポインタテーブルにはログブロックに対応する数だけのログポインタテーブルエントリーが配置されている。該当ページの論理アドレスと共に書込みまたは読出し命令が要請されるとプロセッサ4はログポインタテーブルを参照して該当エントリーの存否によってログブロックまたはデータブロックに接近することになる。
【0026】
図7はログポインタテーブルエントリーの構造図である。
図7を参照すれば、ログポインタテーブルエントリーにはデータブロックの論理アドレスlog_blkと該当ログブロックの物理アドレスphy_blkが記録されている。また、データブロックのページの記録順に該当ログブロック内の対応ページの論理アドレスpage#0、page#1、‥、page#Nが記録されている。
【0027】
例えば、1つのブロックに16のページが存在する場合、論理アドレスが02FF(16進数)であれば、前の三桁02Fはブロックアドレスを意味し、最後の一桁Fは該当ブロックに存在するページのオフセット値となる。したがって、ログポインタテーブルのlog_blkのうち02Fの有無を検索して対応ログブロックの存否を確認しうる。対応ログブロックが存在すれば要請されたページの論理アドレス02FF、またはオフセット値Fの記録有無を確認して該当ログブロック内の更新されたページの位置がわかる。例えば、もし、page#0がFならばログブロック内の最初の物理的ページに要請されたページが記録されている。
【0028】
このように、要請された論理アドレス中の一部、すなわちブロックアドレス部分だけを使用してログブロックの存否を確認して該当ログブロックに接近することを「ブロックアドレッシング」と定義し、要請された論理アドレス全体(またはオフセット値)を使用して該当ログブロックのページにアクセスすることを「ページアドレッシング」と定義する。このように、本発明はブロックアドレッシングとページアドレッシングとを共に採用して同じページが何回も更新されても1つのログブロックにこれを全て記録しうる。
【0029】
図8はログポインタテーブルとフラッシュメモリ1の参照関係図である。
図8に示されたように、log_blkを参照して該当データブロックに対するログブロックの存否を検索し、phy_blkを参照して対応ログブロックが記録された位置がわかる。また、ログポインタテーブルエントリーには本実施形態によって該当ログブロックの各ページの論理アドレスpage#0、page#1、‥、page#15が記録されうる。本実施形態での各ブロックには16のページが含まれる。
【0030】
原則的に更新されたページはログブロックに記録されるに当たって該当データブロックの対応ページと同じ位置に記録される。実際に、ログブロックに更新されたページが最初に記録される場合にはデータブロックの該当ページと同じ位置に記録されうる。しかし、以後には必ずしもそうではない。すなわち、該当データブロックの所定ページが、残りのページが一回ずつ更新される前に再更新されるべき場合には該当ログブロックの残り空間に記録される。
【0031】
図9は消去可能ブロックを説明するための参考図である。
データブロックのページが全て一回ずつのみ更新されればログブロックのページは図8に示されたように、該当データブロックの各ページに一対一に対応する。このような場合にはログブロックが該当データブロックのあらゆる内容を含んでいるので該当データブロックを消去してもデータの損失は生じない。このようにこれ以上有効なデータを有してない(完全にシャドーされた)データブロックは「消去可能ブロック」と言う。消去されたブロックは「自由ブロック」という。消去可能ブロックは何時でも消去可能で、自由ブロックは必要に応じてデータブロックまたはログブロックに割当てられる。
【0032】
一方、本発明では「ブロック併合」が行われる。ブロック併合は原則的に書込むが反復されてログブロックに書込み可能なページが存在しなくなるとなされる。この場合、ブロック併合を通じてログブロックと該当データブロックとを合せて新たなデータブロックを生成し、既存のログブロックは消去して自由ブロックに作る。
【0033】
特に、データブロックの全てのページが一回ずつのみ更新されてログブロックとデータブロックのページ配列が同一な場合に行われるブロック併合は「交換併合」と言う。
ログブロックのページと該当データブロックのページの配列が一致しない場合には「単純併合」が行われる。さらに、ログブロックが現在全て使用中であるために新たに要請された書込みを行うためにログブロックが再び割当てられるべき場合にも行われる。この場合には併合対象となるログブロックがまだ使われていない自由ページを有しうる。
【0034】
もし、ログブロックに存在するページが一回ずつのみ更新された場合であれば、空ページをデータブロックの該当ページとして満たすことによってログブロックをデータブロックに遷移させ、このようなブロック併合を「コピー併合」という。つまり、ブロック併合は、交換併合、単純併合、及びコピー併合の3種がある。
交換併合は、図9のようにデータブロックの全てのページが一回ずつのみ更新されたログブロックをそのままデータブロックに遷移させることによって行われる。ブロックの遷移はデータブロックまたはログブロックに記録されたデータのコピーなしにアドレス変換情報のみを更新することによってなされる。すなわち、マップ領域に記録されたアドレス変換情報を更新して使用者が要請した論理アドレスに対して該当ログブロックがマッピングされるようにする。マップ領域にはブロックアドレッシングを可能にするために各ブロック毎のアドレス変換情報が記録されている。ここで、無効ページは前述したように有効ページによってその内容が無視されるページという意味で使われたものであり、実際の具現においては物理的に有効なページで有り得る。
【0035】
単純併合により、図10のように、新たな自由ブロックの同一な位置にデータブロックの有効ページ及び該当ログブロックの有効ページを記録して新たなデータブロックが生成される。これに既存のデータブロックとログブロックとは消去可能ブロックとなる。
コピー併合は、図11に示されたように、既存のデータブロックに記録された有効ページをログブロックの自由ページにコピーすることによってなされる。既存のデータブロックは消去可能ブロックに遷移される。ブロック併合における無効ページとは、前述したように最初に参照されないページという意味で使われたものであり、実際の具現においては物理的に有効なページで有り得る。
【0036】
図12は本発明に係るブロック併合の実行におけるブロックの遷移関係を示す関係図である。
図12を参照すれば、自由ブロックはログブロックまたはデータブロックに遷移される。ログブロックは交換併合またはコピー併合を通じてデータブロックに遷移されたり、単純併合を通じて消去可能ブロックに遷移される。データブロックは交換併合、単純併合及びコピー併合を通じて消去可能ブロックに遷移されうる。消去可能ブロックは消去されてから再び自由ブロックに遷移される。
【0037】
ブロック併合を行うためにはフラッシュメモリ1に存在する自由ブロックと消去可能ブロックに対するリストを有しなければならない。自由ブロックと消去可能ブロックのリストはRAM3にログポインタテーブルと共に記録されるデータ構造であって、マップ領域またはチェックポイント領域に記録されうる。
自由ブロックのリスト、消去可能ブロックのリスト、及びログポインタテーブルはシステムが初期化される時、RAM3に復元されるべきである。チェックポイント領域はこれらの迅速で完全な復旧のために必要な復旧情報が記録されるために本発明の一実施形態によって割当てられた領域である。チェックポイント領域が設定される場合、ここには復旧情報として前述した自由ブロックのリスト、消去可能ブロックのリスト、及びログブロックのリストが貯蔵される。特に、チェックポイント領域にはブロック併合の実行中システムの暴走や突然の電源遮断等で情報が損傷することを防止するために、ブロック併合を行う前に何れかのブロック併合を行い、その結果何れのブロックが何れのブロックに遷移されるかを記述するプランログが貯蔵される。プランログには実行しようとするブロック併合の種類、自由ブロックからデータブロックに遷移されるブロック、自由ブロックからログブロックに遷移されるブロック、データブロックから自由ブロックに遷移されるブロック、ログブロックから自由ブロックに遷移されるブロックの物理的なアドレスが記録される。チェックポイント領域にはアドレス変換情報の構築のために必要な情報(例えば、アドレス変換情報が貯蔵された位置)も記録される。チェックポイント領域自体の位置はフラッシュメモリ1の既定のブロックに記録される。
【0038】
前記構成によって本発明の望ましい実施形態に係るフラッシュメモリの管理方法を説明すれば次の通りである。以下、本発明に係るフラッシュメモリの管理方法をシステム初期化に伴うデータ構造構築及び復旧方法、読出し方法及び書込み方法に分けて記述する。
まず、システム初期化に伴うフラッシュメモリの管理方法はデータ構造構築及び復旧方法を意味する。すなわち、書込み及び読出しに必要なデータ構造(自由ブロックのリスト、消去可能ブロックのリスト、ログブロックのリスト及びログポインタテーブル)及びアドレス変換情報を構築し、該構築された情報の一貫性(integrity)検査を行って復旧作業が必要な場合、復旧情報に基づいて復旧作業を行うことを意味する。図1のシステムが初期化されるとプロセッサ4はRAM3にログポインタテーブル、自由ブロックのリスト、消去可能ブロックのリスト、及びログブロックのリストを構築せねばならない。このためにプロセッサ4はフラッシュメモリ1のチェックポイント領域の最近に記録されたページから復旧情報を読取る。復旧情報が順次に記録される場合にはチェックポイント領域で最初に発見される自由ページ(空ページ)の直前に位置したページに最新の復旧情報が記録されるからである。ただし、前述した最近に記録されたページの識別が可能なかぎり復旧情報の記録順序は必要に応じて変更されうる。
【0039】
ログポインタテーブルは復旧情報に指定されたログブロックの全てのページをスキャニングしてページ毎に付加されている領域に貯蔵された論理アドレスを読出すことによって構築されうる。マップ領域でもアドレス変換情報は順次に記録されるので最後に記録されたページ(最初の自由ページの直前に位置したページ)を最終変更されたものと見なしてこれに基づいてアドレス変換情報を構築しうる。自由ブロックリストと消去可能ブロックリストも復旧情報に基づいてそのまま復旧が可能である。
【0040】
次いで、プランログを参照して構築した情報(自由ブロックのリスト、消去可能ブロックのリスト、ログブロックのリスト及びログポインタテーブル)を検証する。換言すれば、ブロック併合の実行中、システム動作が中断された場合などが生じて構築した情報と実際状況とが合うか否かを検査すべきである。具体的に、システム動作が中断される場合は、第1、チェックポイント領域への復旧情報の書込み中、第2、ブロック併合の実行中、第3、マップ領域へのアドレス変換情報の更新中、第4、消去中、の4つに分類でき、それぞれの場合に構築された情報と実際状況とが合うか否かを検査し、合わない場合に復旧する方法は次の通りである。
【0041】
1.チェックポイント領域への復旧情報の書込み中にシステム動作が中断された場合:チェックポイント領域の最初の自由ページを探し、このページが実際の自由ページか否かをデータを読出して確認する。もし、自由ページが空いていないとチェックポイント領域への復旧情報の書込み中にシステムの動作が中断されたと判断しうる。この場合、実際データが書込みの実行前であるために別の復旧手続きを踏む必要がなく、ただ最終的に記録された復旧情報を無視する。
【0042】
2.ブロック併合の実行中にシステム動作が中断された場合:プランログにデータブロックに遷移されるものと記載されたブロックの全てのページに正しくデータが記録されているか(有効か)否かを検査する。もし、1つのページでも有効でなければブロック併合途中にシステム動作が中断されたと判断しうる。この場合にはブロック併合を再実行することによってデータを正しく復旧しうる。
【0043】
3.アドレス変換情報の更新中にシステム動作が中断された場合:プランログにデータブロックに遷移されるものと記録されたブロックから論理アドレスを読取ってマップ領域に記録された情報と一致するか否かを確認する。一致しなければアドレス変換情報の更新中にシステム動作が中断されたものと見なせる。この場合、データブロックから得た論理アドレスと該当物理アドレスとに基づいてアドレス変換情報を修正することによって復元しうる。
【0044】
4.消去中にシステム動作が中断された場合:プランログに自由ブロックに遷移されるものと記録されたブロックが実際の自由ブロックなのか否かを検査する。自由ブロックでなければ(ページが全て空いていないならば)空いていないブロックに対して消去を再実行する。
システム初期化に伴うフラッシュメモリの管理方法を通じて前述したように必要なデータ構造を構築し、一貫性検査まで完了すると読出し及び書込みを行える。
【0045】
図13は本発明に係る読出し方法を説明するためのフローチャートである。
理解のために読出し方法を説明すれば、プロセッサ4はログブロックから要請されたページの存否を検索し、検索されたログブロックから該当ページを読取る。
さらに具体的に、まずプロセッサ4は要請されたページの論理アドレスに基づいてログポインタテーブルを順次に検索して見合うエントリーの有無を確認する(1301段階)。要請されたページの論理アドレスはブロックアドレッシング部分とページアドレッシング部分とで結合されているためにブロックアドレッシング部分を参照してエントリーを検索する。見合うエントリーが発見されると(1302段階)、発見されたエントリーを検索して要請されたページの存否を確認する(1303段階)
【0046】
該当ページが発見されればこれを読出す(1305段階)。この際、同じページが2つ以上発見されれば同じオフセット値を有するものを除いて最後に発見されたのを最新のものと見なしてログブロックの該当ページを読出す。見合うエントリーが発見されないか(1302段階)、或いは対応ログブロックに該当ページが存在しない場合(1304段階)、要請された論理アドレスに基づいてデータブロック内の該当ページを読出す(1306段階)。
【0047】
図14は本発明に係る書込み方法を説明するためのフローチャートである。
理解のために書込み方法を説明すれば、まずプロセッサ4はログブロックから要請されたページの存否を検索し、ログブロックが存在する場合にログブロックに要請されたページと同じ位置のページが使用可能な状態なのか否かを検査する。使用可能ならば該当ページに書込みを行い、そうでない場合にはログブロックの使用可能な他のページに書込みを行い、ログブロックに使用可能なページが存在しなければログブロックを新たに割当てて同じ位置に書込みを行う。
【0048】
より具体的に、プロセッサ4は要請されたページの論理アドレスに基づいてログポインタテーブルを検索する(1401段階)。エントリーが発見されれば(1402段階)、該当ログブロックが存在するということを意味するのでエントリーを検索して要請されたページと同じオフセット値を有するページが使用可能なのかを判断し(1403段階)、使用可能ならば該当ページに書込みを行う(1404段階)。ここで、使用可能なページとは、ログブロックの該当ページにまだ書込みが実行されない空ページ(自由ページ)をいう。自由ページの存否はエントリーを検索して該当ページが有効か否か(優先的に参照されているか、すなわちデータが記録されているか)と判断しうる。次いで、ログポインタテーブルの該当エントリーに書込みが行われたページの論理アドレスに対応する物理アドレスを記入する。この場合、使用者の書込み要請はフラッシュメモリに対する1つの書込みだけで完了される。
【0049】
対応ログブロックは発見されたがオフセット値が同じページが既に使われたならば(1403段階)、ログブロック内に他の自由ページが割当てられるかを確認し(1406段階)、割当てられた自由ページに書込みを行う(1407段階)。2つ以上の自由ページが存在するならばログブロックの開始地点から順次に検索して最近のページを割当てられる。次いで、ログポインタテーブルの対応エントリーに要請されたページの論理アドレスに対応するように、割当てられたページの物理アドレスを記録する(1405段階)。
【0050】
ログポインタテーブルを検索した結果、要請されたページに対する対応エントリーが発見されないと新たなログブロックが割当て可能か否かを確認する(1408段階)。新たなログブロックに割当てられる自由ブロックが残っていると、その中の1つを新たなログブロックに割当て(1408段階)、自由ブロックが残っていない場合、ブロック併合を通じて自由ブロックを生成した後、生成された自由ブロックを新たなログブロックに割当てる(1409段階)。割当てられたログブロックにおいて書込みが要請されたページと同じオフセット値を有するページに書込みを行う(1410段階)。次いで、ログポインタテーブルに対応エントリーを生成する(1405段階)。
【0051】
図15は図14のブロック併合を説明するためのフローチャートである。
ブロック併合は前述したようにログブロック内のページ配置状態によって各々異なる方法で行われる。より具体的に、プロセッサ4はログブロックの全てのページが対応データブロックのそれと同一な位置にあるかを確認し(1501段階)、そうであればログブロックの全てのページが有効なのかを確認する(1502段階)。
【0052】
ログブロックの全てのページがデータブロックのそれと同一に配置されており、全て有効であれば交換併合が行われる。一方、プロセッサ4は交換併合を行う前にチェックポイント領域に復旧情報を記録する(1503段階)。但し、1503段階は実行されないことがある。実行の如何はシステム設計者の選択事項である。交換併合のために、プロセッサ4は前記ログブロックを新たなデータブロックになるようにマップ領域のアドレス変換情報を更新する(1504段階)。すなわち、ログブロックが新たなデータブロックに遷移されると使用者の観点で論理アドレスに対応する物理アドレスが変更されるのでアドレス変換情報の更新が必要となる。実際に、マップ領域の最初の自由ページに更新されたアドレス変換情報を記録すればよい。同様にマップ領域も順次に記録され、それ以上の自由ページがない場合には自由ブロックをマップ領域に割当てて記録する。自由ブロックの割当て方法は図14の説明と同一に行われる。これに、データブロックは消去可能ブロックに遷移され、よってデータブロックを消去してからチェックポイント領域に記録された自由ブロックリストを更新する(1505段階)。
【0053】
ログブロックの何れか1ページでもデータブロックのそれと同一に配置されていないと単純併合が行われる。同様に、プロセッサ4は単純併合を行う前にチェックポイント領域に復旧情報を記録する(1506段階)。1506段階またシステム設計者の選択事項である。次いで、自由ブロックを割当てられ、ここにログブロックの有効ページをコピーし(1507段階)、残り部分はデータブロックの該当ページを記録した後(1508段階)、自由ブロックが新たなデータブロックになるようにマップ領域のアドレス変換情報を更新する(1509段階)。自由ブロックの割当て方法は図14の説明と同一に行われる。一方、ログブロックとデータブロックは消去可能ブロックに遷移され、よってログブロックとデータブロックとを消去した後、チェックポイント領域に記録された自由ブロックリストを更新する(1510段階)。
【0054】
ログブロックの全てのページがデータブロックのそれと同一に配置されているが、データブロックの一部ページがログブロックに存在しなければコピー併合が行われる。同様に、プロセッサ4はコピー併合を行う前にチェックポイント領域に復旧情報を記録する(1511段階)。1511段階またシステム設計者の選択事項である。次いで、データブロックの有効ページを読取ってログブロックにコピーする(1512段階)。次いで、ログブロックを新たなデータブロックになるようにマップ領域のアドレス変換情報を更新し(1504段階)、データブロックを消去した後、チェックポイント領域に記録された自由ブロックリストを更新する(1505段階)。
【0055】
このように、データ更新のためのログブロックが発見されていない場合には、自由ブロックを割当てられ、ログブロックに遷移させ、ここに書込みを行う。自由ブロックが1つだけ残ってログブロックを割当てられない場合には、既存のログブロックのうち任意の1つを選択してブロック併合を行うことによって新たな自由ブロックを確保してから、ログブロックを割当てるべきである。このような状況ではブロック併合にかかるコストとブロックの今後の使用可能性を考慮して適切な選択がなされなければならない。今後の使用可能性は実行しようとする応用プログラムの特徴に従属しうる。本発明では交替アルゴリズムに対して特に規定しない。従って、本発明を具現するためにLRUのような一般化された交替アルゴリズムを使用しても良い。
【0056】
【発明の効果】
前述したように、本発明は、フラッシュメモリの性能を改善させうるフラッシュメモリの管理方法を提供する。従来は1つのデータブロックの一部を更新するために残りの部分までコピーしたり、大規模のアドレス変換情報を必要とした。しかし、本発明によれば同じページに連続的に書込みが要請される場合にも1つのログブロック内で処理可能なのでフラッシュメモリ資源の効率性を向上させうる。さらに、ブロック併合実行中に電源遮断などによってシステムが中断される場合にも一貫性あるデータの復元が可能である。
【図面の簡単な説明】
【図1】 本発明の望ましい実施形態に係るフラッシュメモリ基盤システムのブロック図である。
【図2】 本発明によってフラッシュメモリに備えられて一般のデータが貯蔵されるブロックを説明するための参考図である。
【図3】 ログブロックとデータブロックとに対する読出しを説明するための参考図である。
【図4】 本発明の一実施形態に係るフラッシュメモリの領域分割を説明するための参考図である。
【図5】 本発明の他の実施形態に係るフラッシュメモリの領域分割を説明するための参考図である。
【図6】 ログポインタテーブルを説明するための参考図である。
【図7】 ログポインタテーブルエントリーの構造図である。
【図8】 ログポインタテーブルとフラッシュメモリの参照関係図である。
【図9】 消去可能ブロックを説明するための参考図である。
【図10】 単純併合の概念図である。
【図11】 コピー併合の概念図である。
【図12】 本発明に係るブロック併合の実行におけるブロックの遷移関係を示す関係図である。
【図13】 本発明に係る読出し方法を説明するためのフローチャートである。
【図14】 本発明に係る書込み方法を説明するためのフローチャートである。
【図15】 図14のブロック併合を説明するためのフローチャートである。
【符号の説明】
1…フラッシュメモリ
2…ROM
3…RAM
4…プロセッサ
Claims (9)
- データブロック、及び前記データブロックを更新するためのデータを書込むためのログブロックを含むフラッシュメモリから所定のデータを読出す方法において、
(a) 前記ログブロックを管理するためのデータ構造のログポインタテーブルに要請されたページの論理アドレスのうちブロックアドレス部分が記録されたエントリーを検索する段階と、
(b) 検索されたエントリーに前記要請されたページの論理アドレスの記録有無を確認する段階と、
(c) 検索されたエントリーに記録された対応ログブロックの物理アドレスと、検索された論理アドレスの前記検索されたエントリーでの記録位置を参照して前記ログブロックの該当ページに接近する段階とを含むことを特徴とするフラッシュメモリ読出し方法。 - 前記(c)段階は、
前記ログブロックの該当ページへの接近に際して前記検索された論理アドレスの前記検索されたエントリーでの記録位置と同じ位置のページに接近することを特徴とする請求項1に記載のフラッシュメモリ読出し方法。 - データブロック、及び前記データブロックを更新するためのデータを書込むためのログブロックを含むフラッシュメモリを管理する方法において、
(a) 第1データブロックのページと前記第1データブロックに対応する第1ログブロックのページの配列順序が同一で、一対一対応する場合、前記第1ログブロックを第2データブロックに遷移させる段階と、
(b) アドレス変換情報を更新する段階とを含み、
前記 (a) 段階の前に、
(a 0 ) 前記 (a) 段階または (b) 段階の実行中にシステムが中断された場合に備えて、データを復旧するための復旧情報を記録する段階をさらに含み、
(c) 前記 (a) 段階または (b) 段階の実行中にシステムが中断された場合に備えて、前記復旧情報に基づいてデータを復元する段階をさらに含み、
前記復旧情報は、ログブロックまたはデータブロックに割当てられるための領域である自由ブロックのリスト、ログブロックのリスト、前記ログブロックを管理するためのデータ構造のログポインタテーブルを含み、
前記ログポインタテーブルにはログブロックに対応する数だけのログポインタテーブルエントリーが構成されており、各エントリーには対応データブロックの論理アドレスと該当ログブロックの物理アドレスとがマッピングされており、該当ログブロック内の各ページの物理的配列順序によって該当データブロックの要請されたページの論理アドレスが記録されていることを特徴とするフラッシュメモリの管理方法。 - 前記ログポインタテーブルは前記ログブロックが記録されたログブロック領域をスキャンして必要な情報を得て構成されることを特徴とする請求項3に記載のフラッシュメモリの管理方法。
- データブロック、及び前記データブロックを更新するためのデータを書込むためのログブロックを含むフラッシュメモリを管理する方法において、
(a) 第1ログブロックに存在するページが全て一回ずつのみ書込み要請された場合、前記第1ログブロックの自由ページに対応する第1データブロックの該当ページをコピーして第2データブロックを生成する段階と、
(b) アドレス変換情報を更新する段階とを含み、
前記 (a) 段階以前に、
(a 0 ) 前記 (a) 段階または (b) 段階の実行中にシステムが中断された場合に備えて、データを復旧するための復旧情報を記録する段階をさらに含み、
(c) 前記 (a) 段階または (b) 段階の実行中にシステムが中断された場合に備えて、前記復旧情報に基づいてデータを復元する段階をさらに含み、
前記復旧情報は、ログブロックまたはデータブロックに割当てられるための領域である 自由ブロックのリスト、ログブロックのリスト、前記ログブロックを管理するためのデータ構造のログポインタテーブルを含み、
前記ログポインタテーブルにはログブロックに対応する数だけのログポインタテーブルエントリーが構成されており、各エントリーには対応データブロックの論理アドレスと該当ログブロックの物理アドレスがマッピングされており、該当ログブロック内の各ページの物理的配列順序によって該当データブロックの要請されたページの論理アドレスが記録されていることを特徴とするフラッシュメモリの管理方法。 - 前記ログポインタテーブルは前記ログブロックが記録されたログブロック領域をスキャンして必要な情報を得て構成されることを特徴とする請求項5に記載のフラッシュメモリの管理方法。
- データブロック、及び前記データブロックを更新するためのデータを書込むためのログブロックを含むフラッシュメモリを管理する方法において、
(a) データが記録されていない自由ブロックに第1ログブロックに存在する最新ページをコピーし、残りの自由ページに対応する第1データブロックの該当ページをコピーして第2データブロックを生成する段階と、
(b) アドレス変換情報を更新する段階とを含み、
前記 (a) 段階以前に、
(a 0 ) 前記 (a) 段階または (b) 段階の実行中にシステムが中断された場合に備えて、データを復旧するための復旧情報を記録する段階をさらに含み、
(c) 前記 (a) 段階または (b) 段階の実行中にシステムが中断された場合に備えて、前記復旧情報に基づいてデータを復元する段階をさらに含み、
前記復旧情報は、ログブロックまたはデータブロックに割当てられるための領域である自由ブロックのリスト、ログブロックのリスト、前記ログブロックを管理するためのデータ構造のログポインタテーブルを含み、
前記ログポインタテーブルにはログブロックに対応する数だけのログポインタテーブルエントリーが構成されており、各エントリーには対応データブロックの論理アドレスと該当ログブロックの物理アドレスがマッピングされており、該当ログブロック内の各ページの物理的配列順序によって該当データブロックの要請されたページの論理アドレスが記録されていることを特徴とするフラッシュメモリの管理方法。 - 前記ログポインタテーブルは前記ログブロックが記録されたログブロック領域をスキャンして必要な情報を得て構成されることを特徴とする請求項7に記載のフラッシュメモリの管理方法。
- データブロック、及び前記データブロックを更新するためのデータを書込むためのログブロックを含むフラッシュメモリを管理する方法において、
(a) フラッシュメモリの所定領域を割当て、割当てられた領域に復旧情報として前記データブロック及び前記ログブロックのリスト、及び前記ログブロックを管理するためのデータ構造を記録する段階と、
(b) システムが中断される場合、前記復旧情報に基づいて現在フラッシュメモリに記録された状態を点検してエラーの発生有無を確認する段階と、
(c) エラーが発生した場合、前記復旧情報に基づいてデータを復元する段階とを含み、
前記復旧情報は自由ブロックのリストをさらに含み、
前記ログポインタテーブルにはログブロックに対応する数だけのログポインタテーブルエントリーが構成されており、各エントリーには対応データブロックの論理アドレスと該当ログブロックの物理アドレスとがマッピングされており、該当ログブロック内の各ページの物理的配列順序によって該当データブロックの要請されたページの論理アドレスが記録されていることを特徴とするフラッシュメモリの管理方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR2001-031124 | 2001-06-04 | ||
KR10-2001-0031124A KR100389867B1 (ko) | 2001-06-04 | 2001-06-04 | 플래시 메모리 관리방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2002366423A JP2002366423A (ja) | 2002-12-20 |
JP3708047B2 true JP3708047B2 (ja) | 2005-10-19 |
Family
ID=19710358
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001384833A Expired - Fee Related JP3708047B2 (ja) | 2001-06-04 | 2001-12-18 | フラッシュメモリの管理方法 |
Country Status (4)
Country | Link |
---|---|
US (5) | US6938116B2 (ja) |
JP (1) | JP3708047B2 (ja) |
KR (1) | KR100389867B1 (ja) |
CN (1) | CN1322428C (ja) |
Families Citing this family (151)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7108975B2 (en) * | 2001-09-21 | 2006-09-19 | Regents Of The University Of Michigan | Atlastin |
JP3967121B2 (ja) * | 2001-12-11 | 2007-08-29 | 株式会社ルネサステクノロジ | ファイルシステム、ファイルシステム制御方法およびファイルシステムを制御するためのプログラム |
US7111289B2 (en) * | 2001-12-21 | 2006-09-19 | Agere Systems, Inc. | Method for implementing dual link list structure to enable fast link-list pointer updates |
CN100347685C (zh) * | 2002-08-29 | 2007-11-07 | 松下电器产业株式会社 | 用于将数据写入快闪存储设备的半导体存储器的装置和方法 |
KR100484485B1 (ko) * | 2002-10-01 | 2005-04-20 | 한국전자통신연구원 | 비휘발성 메모리에의 데이터 저장 방법 및 장치 |
US6910106B2 (en) | 2002-10-04 | 2005-06-21 | Microsoft Corporation | Methods and mechanisms for proactive memory management |
JP3928724B2 (ja) * | 2003-02-20 | 2007-06-13 | ソニー株式会社 | 記録媒体の記録制御方法および記録媒体の記録制御装置 |
EP1659497A4 (en) | 2003-08-29 | 2008-01-23 | Matsushita Electric Ind Co Ltd | NON-VOLATILE MEMORY BLOCK AND WRITING PROCESS THEREFOR |
KR100608602B1 (ko) | 2003-12-10 | 2006-08-03 | 삼성전자주식회사 | 플래시 메모리, 이를 위한 사상 제어 장치 및 방법 |
US8504798B2 (en) * | 2003-12-30 | 2013-08-06 | Sandisk Technologies Inc. | Management of non-volatile memory systems having large erase blocks |
US7139864B2 (en) | 2003-12-30 | 2006-11-21 | Sandisk Corporation | Non-volatile memory and method with block management system |
KR100526188B1 (ko) * | 2003-12-30 | 2005-11-04 | 삼성전자주식회사 | 플래시 메모리의 주소 사상 방법, 사상 정보 관리 방법 및상기 방법을 이용한 플래시 메모리 |
KR100533683B1 (ko) * | 2004-02-03 | 2005-12-05 | 삼성전자주식회사 | 플래시 메모리의 데이터 관리 장치 및 방법 |
JP4701618B2 (ja) * | 2004-02-23 | 2011-06-15 | ソニー株式会社 | 情報処理装置及び情報処理方法、並びにコンピュータ・プログラム |
KR20070005730A (ko) * | 2004-04-28 | 2007-01-10 | 마츠시타 덴끼 산교 가부시키가이샤 | 불휘발성 기억장치 및 데이터 기록방법 |
CN100437517C (zh) * | 2004-04-28 | 2008-11-26 | 松下电器产业株式会社 | 非易失性存储装置和数据写入方法 |
JP4253272B2 (ja) * | 2004-05-27 | 2009-04-08 | 株式会社東芝 | メモリカード、半導体装置、及び半導体メモリの制御方法 |
JP2006003966A (ja) * | 2004-06-15 | 2006-01-05 | Oki Electric Ind Co Ltd | フラッシュメモリの書込方法 |
US7302543B2 (en) * | 2004-06-16 | 2007-11-27 | Nec Laboratories America, Inc. | Compressed memory architecture for embedded systems |
KR100568115B1 (ko) | 2004-06-30 | 2006-04-05 | 삼성전자주식회사 | 점진적 머지 방법 및 그것을 이용한 메모리 시스템 |
KR100577384B1 (ko) * | 2004-07-28 | 2006-05-10 | 삼성전자주식회사 | 페이지 정보를 이용한 페이지 대체 방법 |
KR100695267B1 (ko) * | 2004-08-23 | 2007-03-14 | 에스케이 텔레콤주식회사 | 이동통신 단말기의 랜덤 액세스 메모리의 저장 공간을절감하는 방법 |
US7490197B2 (en) | 2004-10-21 | 2009-02-10 | Microsoft Corporation | Using external memory devices to improve system performance |
US20090172269A1 (en) * | 2005-02-04 | 2009-07-02 | Samsung Electronics Co., Ltd. | Nonvolatile memory device and associated data merge method |
KR100684887B1 (ko) * | 2005-02-04 | 2007-02-20 | 삼성전자주식회사 | 플래시 메모리를 포함한 데이터 저장 장치 및 그것의 머지방법 |
US8122193B2 (en) | 2004-12-21 | 2012-02-21 | Samsung Electronics Co., Ltd. | Storage device and user device including the same |
KR100703727B1 (ko) | 2005-01-12 | 2007-04-05 | 삼성전자주식회사 | 비휘발성 메모리, 이를 위한 사상 제어 장치 및 방법 |
US9104315B2 (en) | 2005-02-04 | 2015-08-11 | Sandisk Technologies Inc. | Systems and methods for a mass data storage system having a file-based interface to a host and a non-file-based interface to secondary storage |
US20060184718A1 (en) | 2005-02-16 | 2006-08-17 | Sinclair Alan W | Direct file data programming and deletion in flash memories |
US20060184719A1 (en) | 2005-02-16 | 2006-08-17 | Sinclair Alan W | Direct data file storage implementation techniques in flash memories |
US7877539B2 (en) | 2005-02-16 | 2011-01-25 | Sandisk Corporation | Direct data file storage in flash memories |
KR100684942B1 (ko) | 2005-02-07 | 2007-02-20 | 삼성전자주식회사 | 복수의 사상 기법들을 채용한 적응형 플래시 메모리 제어장치 및 그것을 포함한 플래시 메모리 시스템 |
KR100703753B1 (ko) * | 2005-04-14 | 2007-04-06 | 삼성전자주식회사 | 파일 시스템 관리 장치 및 방법 |
US7275140B2 (en) * | 2005-05-12 | 2007-09-25 | Sandisk Il Ltd. | Flash memory management method that is resistant to data corruption by power loss |
KR100706246B1 (ko) * | 2005-05-24 | 2007-04-11 | 삼성전자주식회사 | 읽기 성능을 향상시킬 수 있는 메모리 카드 |
JP4723921B2 (ja) * | 2005-06-13 | 2011-07-13 | 株式会社日立製作所 | 記憶制御装置及びその制御方法 |
US20060294049A1 (en) * | 2005-06-27 | 2006-12-28 | Microsoft Corporation | Back-off mechanism for search |
US7685380B1 (en) * | 2005-06-29 | 2010-03-23 | Xilinx, Inc. | Method for using configuration memory for data storage and read operations |
US7558906B2 (en) * | 2005-08-03 | 2009-07-07 | Sandisk Corporation | Methods of managing blocks in nonvolatile memory |
US7480766B2 (en) * | 2005-08-03 | 2009-01-20 | Sandisk Corporation | Interfacing systems operating through a logical address space and on a direct data file basis |
US7669003B2 (en) | 2005-08-03 | 2010-02-23 | Sandisk Corporation | Reprogrammable non-volatile memory systems with indexing of directly stored data files |
US7949845B2 (en) | 2005-08-03 | 2011-05-24 | Sandisk Corporation | Indexing of file data in reprogrammable non-volatile memories that directly store data files |
US7409489B2 (en) * | 2005-08-03 | 2008-08-05 | Sandisk Corporation | Scheduling of reclaim operations in non-volatile memory |
WO2007019155A1 (en) * | 2005-08-03 | 2007-02-15 | Sandisk Corporation | Reclaiming data storage capacity in flash memory systems |
JP4547028B2 (ja) * | 2005-08-03 | 2010-09-22 | サンディスク コーポレイション | ブロック管理を伴う不揮発性メモリ |
US7552271B2 (en) * | 2005-08-03 | 2009-06-23 | Sandisk Corporation | Nonvolatile memory with block management |
US7474559B1 (en) | 2005-08-30 | 2009-01-06 | Xilinx, Inc. | Circuit and method for employing unused configuration memory cells as scratchpad memory |
CN100573476C (zh) * | 2005-09-25 | 2009-12-23 | 深圳市朗科科技股份有限公司 | 闪存介质数据管理方法 |
KR100801072B1 (ko) * | 2005-09-30 | 2008-02-11 | 삼성전자주식회사 | 플래시 메모리, 이를 위한 맵핑 장치 및 방법 |
US7529905B2 (en) | 2005-10-13 | 2009-05-05 | Sandisk Corporation | Method of storing transformed units of data in a memory system having fixed sized storage blocks |
US7814262B2 (en) | 2005-10-13 | 2010-10-12 | Sandisk Corporation | Memory system storing transformed units of data in fixed sized storage blocks |
US7516267B2 (en) * | 2005-11-03 | 2009-04-07 | Intel Corporation | Recovering from a non-volatile memory failure |
US20070136671A1 (en) * | 2005-12-12 | 2007-06-14 | Buhrke Eric R | Method and system for directing attention during a conversation |
US8914557B2 (en) | 2005-12-16 | 2014-12-16 | Microsoft Corporation | Optimizing write and wear performance for a memory |
US7769978B2 (en) | 2005-12-21 | 2010-08-03 | Sandisk Corporation | Method and system for accessing non-volatile storage devices |
JP2009521049A (ja) * | 2005-12-21 | 2009-05-28 | エヌエックスピー ビー ヴィ | ブロック消去可能な記憶場所を有するメモリ |
US7793068B2 (en) | 2005-12-21 | 2010-09-07 | Sandisk Corporation | Dual mode access for non-volatile storage devices |
US7747837B2 (en) | 2005-12-21 | 2010-06-29 | Sandisk Corporation | Method and system for accessing non-volatile storage devices |
US7676474B2 (en) * | 2005-12-22 | 2010-03-09 | Sap Ag | Systems and methods for finding log files generated by a distributed computer |
EP1808863A1 (en) * | 2006-01-16 | 2007-07-18 | Deutsche Thomson-Brandt Gmbh | Method and apparatus for recording high-speed input data into a matrix of memory devices |
JP4898252B2 (ja) * | 2006-03-15 | 2012-03-14 | パナソニック株式会社 | 不揮発性記憶装置及びそのデータ管理方法 |
JP2007280108A (ja) * | 2006-04-07 | 2007-10-25 | Sony Corp | 記憶媒体制御装置、記憶媒体制御方法、プログラム |
US7861159B2 (en) * | 2006-04-07 | 2010-12-28 | Pp Associates, Lp | Report generation with integrated quality management |
US8307148B2 (en) * | 2006-06-23 | 2012-11-06 | Microsoft Corporation | Flash management techniques |
US20080005449A1 (en) * | 2006-07-03 | 2008-01-03 | Phison Electronics Corp. | Generalized flash memory and method thereof |
WO2008033952A2 (en) * | 2006-09-15 | 2008-03-20 | Sandisk Corporation | Non-volatile memory and method for class-based update block replacement rules |
JP4609406B2 (ja) * | 2006-10-12 | 2011-01-12 | Tdk株式会社 | メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法 |
KR100849221B1 (ko) * | 2006-10-19 | 2008-07-31 | 삼성전자주식회사 | 비휘발성 메모리의 관리 방법 및 비휘발성 메모리 기반의장치 |
KR100771521B1 (ko) | 2006-10-30 | 2007-10-30 | 삼성전자주식회사 | 멀티 레벨 셀을 포함하는 플래시 메모리 장치 및 그것의데이터 쓰기 방법 |
KR100843135B1 (ko) | 2006-11-20 | 2008-07-02 | 삼성전자주식회사 | 비휘발성 메모리 관리 방법 및 장치 |
JP2008152464A (ja) * | 2006-12-15 | 2008-07-03 | Toshiba Corp | 記憶装置 |
US8560760B2 (en) * | 2007-01-31 | 2013-10-15 | Microsoft Corporation | Extending flash drive lifespan |
KR100823171B1 (ko) * | 2007-02-01 | 2008-04-18 | 삼성전자주식회사 | 파티션된 플래시 변환 계층을 갖는 컴퓨터 시스템 및플래시 변환 계층의 파티션 방법 |
KR100885181B1 (ko) * | 2007-02-06 | 2009-02-23 | 삼성전자주식회사 | 그룹 맵핑 동작을 수행하는 메모리 시스템 및 그것의어드레스 맵핑 방법 |
KR100817087B1 (ko) * | 2007-02-13 | 2008-03-27 | 삼성전자주식회사 | 플래시 메모리를 구비하는 스토리지 장치에서의 버퍼 캐시운용 방법 |
US7657572B2 (en) * | 2007-03-06 | 2010-02-02 | Microsoft Corporation | Selectively utilizing a plurality of disparate solid state storage locations |
JP4468407B2 (ja) * | 2007-05-14 | 2010-05-26 | フェリカネットワークス株式会社 | データ管理システム、管理サーバ、データ管理方法、およびプログラム |
KR100857761B1 (ko) * | 2007-06-14 | 2008-09-10 | 삼성전자주식회사 | 웨어 레벨링을 수행하는 메모리 시스템 및 그것의 쓰기방법 |
KR101300821B1 (ko) | 2007-07-04 | 2013-08-26 | 삼성전자주식회사 | 비휘발성 메모리의 데이터 손실을 방지하기 위한 장치 및방법 |
KR101472797B1 (ko) * | 2007-07-16 | 2014-12-15 | 삼성전자주식회사 | 데이터를 읽거나 쓰기 위한 방법 및 장치 |
US8572307B2 (en) | 2007-07-20 | 2013-10-29 | Panasonic Corporation | Memory controller, memory card, and nonvolatile memory system |
KR101447188B1 (ko) * | 2007-07-31 | 2014-10-08 | 삼성전자주식회사 | 플래시 메모리에 최적화된 입출력 제어 방법 및 장치 |
JP2009139990A (ja) * | 2007-12-03 | 2009-06-25 | Internatl Business Mach Corp <Ibm> | 情報の不正取得を防止する技術 |
US8631203B2 (en) | 2007-12-10 | 2014-01-14 | Microsoft Corporation | Management of external memory functioning as virtual cache |
CN101256564B (zh) * | 2007-12-25 | 2010-06-02 | 深圳市同洲电子股份有限公司 | 一种循环文件的操作方法 |
EP2225643B1 (en) | 2007-12-28 | 2020-05-06 | Toshiba Memory Corporation | Semiconductor storage device |
KR101465789B1 (ko) * | 2008-01-24 | 2014-11-26 | 삼성전자주식회사 | 페이지 복사 횟수를 줄일 수 있는 메모리 카드 시스템의쓰기 및 병합 방법 |
US8332572B2 (en) * | 2008-02-05 | 2012-12-11 | Spansion Llc | Wear leveling mechanism using a DRAM buffer |
US8275945B2 (en) | 2008-02-05 | 2012-09-25 | Spansion Llc | Mitigation of flash memory latency and bandwidth limitations via a write activity log and buffer |
US8352671B2 (en) | 2008-02-05 | 2013-01-08 | Spansion Llc | Partial allocate paging mechanism using a controller and a buffer |
US8370519B2 (en) * | 2008-02-12 | 2013-02-05 | Microsoft Corporation | Copying data onto an expandable memory in a wireless device using a desktop interface |
KR101477047B1 (ko) | 2008-02-29 | 2014-12-30 | 삼성전자주식회사 | 메모리 시스템 및 그것의 블록 병합 방법 |
KR101067457B1 (ko) | 2008-03-01 | 2011-09-27 | 가부시끼가이샤 도시바 | 메모리 시스템 |
JP4498426B2 (ja) * | 2008-03-01 | 2010-07-07 | 株式会社東芝 | メモリシステム |
JP4745356B2 (ja) * | 2008-03-01 | 2011-08-10 | 株式会社東芝 | メモリシステム |
US7979626B2 (en) * | 2008-05-13 | 2011-07-12 | Microsoft Corporation | Flash recovery employing transaction log |
US8843691B2 (en) * | 2008-06-25 | 2014-09-23 | Stec, Inc. | Prioritized erasure of data blocks in a flash storage device |
JP5132451B2 (ja) * | 2008-07-02 | 2013-01-30 | 株式会社リコー | 画像形成装置 |
JP2010020586A (ja) * | 2008-07-11 | 2010-01-28 | Nec Electronics Corp | データ処理装置 |
CN101324903B (zh) * | 2008-07-24 | 2013-02-13 | 深圳市同洲电子股份有限公司 | 一种循环文件转循环线性文件方法及其访问操作方法 |
KR101086857B1 (ko) * | 2008-07-25 | 2011-11-25 | 주식회사 팍스디스크 | 데이터 머지를 수행하는 반도체 스토리지 시스템의 제어 방법 |
KR100954039B1 (ko) * | 2008-08-11 | 2010-04-20 | (주)인디링스 | 플래시 메모리 제어 방법 및 제어 장치 |
US20100057755A1 (en) * | 2008-08-29 | 2010-03-04 | Red Hat Corporation | File system with flexible inode structures |
US8032707B2 (en) | 2008-09-15 | 2011-10-04 | Microsoft Corporation | Managing cache data and metadata |
US9032151B2 (en) | 2008-09-15 | 2015-05-12 | Microsoft Technology Licensing, Llc | Method and system for ensuring reliability of cache data and metadata subsequent to a reboot |
US7953774B2 (en) | 2008-09-19 | 2011-05-31 | Microsoft Corporation | Aggregation of write traffic to a data store |
KR101011434B1 (ko) * | 2008-10-28 | 2011-01-28 | 코오롱건설주식회사 | 침지형분리막여과조의 공기공급장치 |
KR100970537B1 (ko) * | 2008-11-20 | 2010-07-16 | 서울시립대학교 산학협력단 | Ssd 관리 장치 및 방법 |
KR101022001B1 (ko) * | 2008-12-08 | 2011-03-17 | 주식회사 이스트후 | 플래시 메모리 시스템 및 플래시 메모리의 관리 방법 |
JP5175703B2 (ja) * | 2008-12-11 | 2013-04-03 | 株式会社東芝 | メモリデバイス |
CN101763320B (zh) * | 2008-12-24 | 2011-11-30 | 鸿富锦精密工业(深圳)有限公司 | 存储方法 |
KR101028929B1 (ko) * | 2008-12-31 | 2011-04-12 | 성균관대학교산학협력단 | 실시간 시스템을 위한 로그 블록 연관성 분산 방법 및 이를수행하는 플래시 메모리 장치 |
KR101581859B1 (ko) * | 2009-02-27 | 2016-01-21 | 삼성전자주식회사 | 메모리 시스템 및 그것의 플래시 변환 계층의 데이터 관리 방법 |
KR100994052B1 (ko) | 2009-05-06 | 2010-11-11 | 성균관대학교산학협력단 | 플래시 변환 계층에서 수행되는 데이터 관리 방법 및 이를 수행하는 플래시 메모리 장치 |
TWI457940B (zh) * | 2009-05-15 | 2014-10-21 | Macronix Int Co Ltd | 區塊為基礎快閃記憶體之位元組存取 |
US8447922B2 (en) | 2009-07-16 | 2013-05-21 | Panasonic Corporation | Memory controller, nonvolatile storage device, accessing device, and nonvolatile storage system |
KR101143397B1 (ko) | 2009-07-29 | 2012-05-23 | 에스케이하이닉스 주식회사 | 페이지 복사 발생 빈도를 줄이는 반도체 스토리지 시스템 및 그 제어 방법 |
KR20110018157A (ko) * | 2009-08-17 | 2011-02-23 | 삼성전자주식회사 | 플래시 메모리 장치의 액세스 방법 |
TWI446349B (zh) | 2010-03-04 | 2014-07-21 | Phison Electronics Corp | 非揮發性記憶體存取方法、系統,與非揮發性記憶體控制器 |
CN103473182B (zh) * | 2010-03-12 | 2016-05-11 | 群联电子股份有限公司 | 非挥发性存储器存取方法及非挥发性存储器控制器 |
US20110283044A1 (en) * | 2010-05-11 | 2011-11-17 | Seagate Technology Llc | Device and method for reliable data storage |
US20110289289A1 (en) * | 2010-05-20 | 2011-11-24 | Microsoft Corporation | Backup and restore of items using bounded checkpoint and log buffers in memory |
JP5679383B2 (ja) * | 2011-06-09 | 2015-03-04 | Necディスプレイソリューションズ株式会社 | 電子機器、電源操作ログ記録方法およびプログラム |
TWI521343B (zh) | 2011-08-01 | 2016-02-11 | Toshiba Kk | An information processing device, a semiconductor memory device, and a semiconductor memory device |
CN102521289B (zh) * | 2011-11-29 | 2013-12-04 | 华为技术有限公司 | 一种文件同步方法、装置及系统 |
WO2013091167A1 (zh) * | 2011-12-21 | 2013-06-27 | 华为技术有限公司 | 日志存储方法及系统 |
US8984247B1 (en) * | 2012-05-10 | 2015-03-17 | Western Digital Technologies, Inc. | Storing and reconstructing mapping table data in a data storage system |
US8966205B1 (en) | 2012-05-10 | 2015-02-24 | Western Digital Technologies, Inc. | System data management using garbage collection and hybrid self mapping |
US9977612B1 (en) | 2012-05-11 | 2018-05-22 | Western Digital Technologies, Inc. | System data management using garbage collection and logs |
US9170932B1 (en) | 2012-05-22 | 2015-10-27 | Western Digital Technologies, Inc. | System data storage mechanism providing coherency and segmented data loading |
KR101997572B1 (ko) * | 2012-06-01 | 2019-07-09 | 삼성전자주식회사 | 불휘발성 메모리 장치를 포함하는 저장 장치 및 그것의 쓰기 방법 |
KR102147359B1 (ko) * | 2012-06-29 | 2020-08-24 | 삼성전자 주식회사 | 비휘발성 메모리 장치의 관리 방법 및 비휘발성 메모리 장치 |
KR20140078893A (ko) * | 2012-12-18 | 2014-06-26 | 에스케이하이닉스 주식회사 | 데이터 저장 장치의 동작 방법 |
CN103077118A (zh) * | 2012-12-28 | 2013-05-01 | 深圳市硅格半导体有限公司 | 一种无效数据回收方法及系统 |
KR102069273B1 (ko) * | 2013-03-11 | 2020-01-22 | 삼성전자주식회사 | 시스템 온 칩 및 그 동작방법 |
US9471485B2 (en) | 2013-03-12 | 2016-10-18 | Macronix International Co., Ltd. | Difference L2P method |
US9478271B2 (en) * | 2013-03-14 | 2016-10-25 | Seagate Technology Llc | Nonvolatile memory data recovery after power failure |
KR101519069B1 (ko) * | 2013-12-03 | 2015-05-12 | 에스케이텔레콤 주식회사 | 메모리장치 및 메모리장치의 동작 방법 |
WO2015096698A1 (zh) * | 2013-12-24 | 2015-07-02 | 飞天诚信科技股份有限公司 | 一种Flash的数据写入和读取方法 |
CN103778964B (zh) * | 2013-12-30 | 2016-08-17 | 上海晨思电子科技有限公司 | 一种NAND Flash烧写数据的处理、使用方法及装置、系统 |
CN104021088B (zh) * | 2014-06-24 | 2017-11-21 | 广东睿江云计算股份有限公司 | 日志存储方法和装置 |
JP2016018473A (ja) * | 2014-07-10 | 2016-02-01 | 株式会社東芝 | 半導体記憶装置、メモリコントローラ、及びメモリコントローラの制御方法 |
TWI512609B (zh) | 2014-09-05 | 2015-12-11 | Silicon Motion Inc | 讀取命令排程方法以及使用該方法的裝置 |
KR102474937B1 (ko) | 2016-03-21 | 2022-12-07 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
US9817593B1 (en) | 2016-07-11 | 2017-11-14 | Sandisk Technologies Llc | Block management in non-volatile memory system with non-blocking control sync system |
RU2636107C1 (ru) * | 2016-10-28 | 2017-11-20 | Общество с ограниченной ответственностью "Лаборатория информационно-измерительной и преобразовательной техники" | Способ записи данных на накопитель цифровой информации на базе flash-памяти типа nand |
US9905294B1 (en) | 2017-05-03 | 2018-02-27 | Seagate Technology Llc | Writing logically offset pages of data to N-level memory cells coupled to a common word line |
TWI650660B (zh) * | 2017-09-21 | 2019-02-11 | 和碩聯合科技股份有限公司 | 交易式檔案存取方法與電子裝置 |
CN109800180B (zh) | 2017-11-17 | 2023-06-27 | 爱思开海力士有限公司 | 用于地址映射的方法和存储器系统 |
CN109800178B (zh) | 2017-11-17 | 2023-05-16 | 爱思开海力士有限公司 | 垃圾收集方法以及用于混合地址映射的存储器系统 |
US11947839B2 (en) | 2021-05-10 | 2024-04-02 | Samsung Electronics Co., Ltd. | Storage device, system, and method for customizable metadata |
Family Cites Families (50)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0617363B1 (en) * | 1989-04-13 | 2000-01-26 | SanDisk Corporation | Defective cell substitution in EEprom array |
US5226133A (en) * | 1989-12-01 | 1993-07-06 | Silicon Graphics, Inc. | Two-level translation look-aside buffer using partial addresses for enhanced speed |
GB2251323B (en) * | 1990-12-31 | 1994-10-12 | Intel Corp | Disk emulation for a non-volatile semiconductor memory |
US5652723A (en) * | 1991-04-18 | 1997-07-29 | Mitsubishi Denki Kabushiki Kaisha | Semiconductor memory device |
JP3485938B2 (ja) * | 1992-03-31 | 2004-01-13 | 株式会社東芝 | 不揮発性半導体メモリ装置 |
JP3328321B2 (ja) * | 1992-06-22 | 2002-09-24 | 株式会社日立製作所 | 半導体記憶装置 |
US5528764A (en) * | 1992-12-24 | 1996-06-18 | Ncr Corporation | Bus system with cache snooping signals having a turnaround time between agents driving the bus for keeping the bus from floating for an extended period |
JPH06222986A (ja) * | 1993-01-26 | 1994-08-12 | Oki Electric Ind Co Ltd | メモリ制御装置 |
US5266133A (en) | 1993-02-17 | 1993-11-30 | Sika Corporation | Dry expansible sealant and baffle composition and product |
US5404485A (en) * | 1993-03-08 | 1995-04-04 | M-Systems Flash Disk Pioneers Ltd. | Flash file system |
US5485595A (en) * | 1993-03-26 | 1996-01-16 | Cirrus Logic, Inc. | Flash memory mass storage architecture incorporating wear leveling technique without using cam cells |
US5479638A (en) | 1993-03-26 | 1995-12-26 | Cirrus Logic, Inc. | Flash memory mass storage architecture incorporation wear leveling technique |
US5388083A (en) * | 1993-03-26 | 1995-02-07 | Cirrus Logic, Inc. | Flash memory mass storage architecture |
JP3184383B2 (ja) * | 1993-11-26 | 2001-07-09 | シャープ株式会社 | ホームコントローラ |
JP3507132B2 (ja) * | 1994-06-29 | 2004-03-15 | 株式会社日立製作所 | フラッシュメモリを用いた記憶装置およびその記憶制御方法 |
JP3706167B2 (ja) * | 1995-02-16 | 2005-10-12 | 株式会社ルネサステクノロジ | 半導体ディスク装置 |
JPH08314794A (ja) * | 1995-02-28 | 1996-11-29 | Matsushita Electric Ind Co Ltd | 安定記憶装置へのアクセス待ち時間を短縮するための方法およびシステム |
JPH08328762A (ja) * | 1995-06-06 | 1996-12-13 | Mitsubishi Electric Corp | 半導体ディスク装置及びそのメモリ管理方法 |
US5778427A (en) | 1995-07-07 | 1998-07-07 | Sun Microsystems, Inc. | Method and apparatus for selecting a way of a multi-way associative cache by storing waylets in a translation structure |
US5845313A (en) * | 1995-07-31 | 1998-12-01 | Lexar | Direct logical block addressing flash memory mass storage architecture |
JPH0997205A (ja) * | 1995-09-28 | 1997-04-08 | Canon Inc | フラッシュrom管理方法及び装置及びコンピュータ制御装置 |
US5696929A (en) * | 1995-10-03 | 1997-12-09 | Intel Corporation | Flash EEPROM main memory in a computer system |
JPH09185551A (ja) * | 1996-01-08 | 1997-07-15 | Mitsubishi Electric Corp | 半導体記憶装置 |
KR980010782A (ko) * | 1996-07-02 | 1998-04-30 | 이대원 | 플래시 메모리의 오버라이트 방법 |
JPH1040175A (ja) * | 1996-07-19 | 1998-02-13 | Canon Inc | フラッシュromの記憶管理方法及び装置 |
US5860124A (en) * | 1996-09-30 | 1999-01-12 | Intel Corporation | Method for performing a continuous over-write of a file in nonvolatile memory |
US5745418A (en) | 1996-11-25 | 1998-04-28 | Macronix International Co., Ltd. | Flash memory mass storage system |
US5956473A (en) | 1996-11-25 | 1999-09-21 | Macronix International Co., Ltd. | Method and system for managing a flash memory mass storage system |
JPH10154101A (ja) * | 1996-11-26 | 1998-06-09 | Toshiba Corp | データ記憶システム及び同システムに適用するキャッシュ制御方法 |
US6418506B1 (en) * | 1996-12-31 | 2002-07-09 | Intel Corporation | Integrated circuit memory and method for transferring data using a volatile memory to buffer data for a nonvolatile memory array |
HUP0001470A3 (en) * | 1997-03-21 | 2002-09-30 | Canal Plus Sa | Signal generation and broadcasting |
US6000006A (en) * | 1997-08-25 | 1999-12-07 | Bit Microsystems, Inc. | Unified re-map and cache-index table with dual write-counters for wear-leveling of non-volatile flash RAM mass storage |
WO1999021063A1 (en) * | 1997-10-16 | 1999-04-29 | The Victoria University Of Manchester | Timing circuit |
US5937425A (en) * | 1997-10-16 | 1999-08-10 | M-Systems Flash Disk Pioneers Ltd. | Flash file system optimized for page-mode flash technologies |
US6076137A (en) * | 1997-12-11 | 2000-06-13 | Lexar Media, Inc. | Method and apparatus for storing location identification information within non-volatile memory devices |
US6263398B1 (en) * | 1998-02-10 | 2001-07-17 | Ramtron International Corporation | Integrated circuit memory device incorporating a non-volatile memory array and a relatively faster access time memory cache |
US6298428B1 (en) | 1998-03-30 | 2001-10-02 | International Business Machines Corporation | Method and apparatus for shared persistent virtual storage on existing operating systems |
US6327638B1 (en) | 1998-06-30 | 2001-12-04 | Lsi Logic Corporation | Disk striping method and storage subsystem using same |
JP2000057039A (ja) * | 1998-08-03 | 2000-02-25 | Canon Inc | アクセス制御方法及び装置及びファイルシステム及び情報処理装置 |
KR20000039727A (ko) * | 1998-12-15 | 2000-07-05 | 구자홍 | 플래시 메모리 접근 방법 |
JP2001006379A (ja) * | 1999-06-16 | 2001-01-12 | Fujitsu Ltd | 複写、移動機能を有するフラッシュメモリ |
KR100577380B1 (ko) * | 1999-09-29 | 2006-05-09 | 삼성전자주식회사 | 플래시 메모리와 그 제어 방법 |
KR100703680B1 (ko) * | 1999-10-14 | 2007-04-05 | 삼성전자주식회사 | 플래시 파일 시스템 |
JP2001209543A (ja) * | 2000-01-28 | 2001-08-03 | Nec Ic Microcomput Syst Ltd | フラッシュ・マイコンにおけるプログラム書き換え方法 |
JP3734408B2 (ja) | 2000-07-03 | 2006-01-11 | シャープ株式会社 | 半導体記憶装置 |
US6704835B1 (en) * | 2000-09-26 | 2004-03-09 | Intel Corporation | Posted write-through cache for flash memory |
US6564286B2 (en) * | 2001-03-07 | 2003-05-13 | Sony Corporation | Non-volatile memory system for instant-on |
US6836816B2 (en) * | 2001-03-28 | 2004-12-28 | Intel Corporation | Flash memory low-latency cache |
US6760805B2 (en) * | 2001-09-05 | 2004-07-06 | M-Systems Flash Disk Pioneers Ltd. | Flash management system for large page size |
US8504798B2 (en) * | 2003-12-30 | 2013-08-06 | Sandisk Technologies Inc. | Management of non-volatile memory systems having large erase blocks |
-
2001
- 2001-06-04 KR KR10-2001-0031124A patent/KR100389867B1/ko active IP Right Grant
- 2001-12-18 JP JP2001384833A patent/JP3708047B2/ja not_active Expired - Fee Related
- 2001-12-28 CN CNB01144049XA patent/CN1322428C/zh not_active Expired - Lifetime
- 2001-12-31 US US10/029,966 patent/US6938116B2/en not_active Ceased
-
2007
- 2007-08-30 US US11/848,005 patent/USRE44052E1/en not_active Expired - Lifetime
-
2011
- 2011-06-02 US US13/134,225 patent/USRE45222E1/en not_active Expired - Lifetime
- 2011-06-02 US US13/151,735 patent/USRE45577E1/en not_active Expired - Lifetime
-
2015
- 2015-02-23 US US14/628,462 patent/USRE46404E1/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
USRE44052E1 (en) | 2013-03-05 |
KR20020092487A (ko) | 2002-12-12 |
US6938116B2 (en) | 2005-08-30 |
CN1389790A (zh) | 2003-01-08 |
US20020184436A1 (en) | 2002-12-05 |
USRE45222E1 (en) | 2014-10-28 |
JP2002366423A (ja) | 2002-12-20 |
USRE46404E1 (en) | 2017-05-16 |
USRE45577E1 (en) | 2015-06-23 |
KR100389867B1 (ko) | 2003-07-04 |
CN1322428C (zh) | 2007-06-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3708047B2 (ja) | フラッシュメモリの管理方法 | |
US8028120B2 (en) | System with flash memory device and data recovery method thereof | |
CN100487672C (zh) | 用于分割一逻辑块的方法及设备 | |
US8219776B2 (en) | Logical-to-physical address translation for solid state disks | |
JP4633802B2 (ja) | 不揮発性記憶装置及びデータ読み出し方法及び管理テーブル作成方法 | |
US6381176B1 (en) | Method of driving remapping in flash memory and flash memory architecture suitable therefor | |
US6865658B2 (en) | Nonvolatile data management system using data segments and link information | |
US8041884B2 (en) | Controller for non-volatile memories and methods of operating the memory controller | |
US20080082729A1 (en) | Device driver including a flash memory file system and method thereof and a flash memory device and method thereof | |
JP4828816B2 (ja) | メモリカード、半導体装置、及びメモリカードの制御方法 | |
US20080098195A1 (en) | Memory system including flash memory and mapping table management method | |
US20050172068A1 (en) | Memory card and semiconductor device | |
KR20070096429A (ko) | 빠른 마운팅을 지원하는 낸드 플래시 메모리에 적용되는파일시스템 | |
KR20150083264A (ko) | 플래시 메모리 장치를 위한 주소변환 시스템 및 그 방법 | |
JP2005242897A (ja) | フラッシュディスク装置 | |
JP2006040264A (ja) | メモリカードの制御方法および不揮発性半導体メモリの制御方法 | |
US11397669B2 (en) | Data storage device and non-volatile memory control method | |
US7664906B2 (en) | Flash memory access apparatus and method | |
US7058784B2 (en) | Method for managing access operation on nonvolatile memory and block structure thereof | |
JP4460967B2 (ja) | メモリカード、不揮発性半導体メモリ、及び半導体メモリの制御方法 | |
US11307979B2 (en) | Data storage device and non-volatile memory control method | |
JP2009205689A (ja) | フラッシュディスク装置 | |
JP2007011872A (ja) | メモリカードとその制御方法 | |
KR100745163B1 (ko) | 동적 매핑 테이블을 이용한 플래시 메모리 관리방법 | |
CN115630001A (zh) | 垃圾回收方法和固态硬盘 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20040903 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20041102 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050202 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20050705 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050802 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080812 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090812 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090812 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100812 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110812 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110812 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120812 Year of fee payment: 7 |
|
LAPS | Cancellation because of no payment of annual fees |