JP4279553B2 - フラッシュメモリシステムの迅速スリープ解除方法 - Google Patents
フラッシュメモリシステムの迅速スリープ解除方法 Download PDFInfo
- Publication number
- JP4279553B2 JP4279553B2 JP2002563351A JP2002563351A JP4279553B2 JP 4279553 B2 JP4279553 B2 JP 4279553B2 JP 2002563351 A JP2002563351 A JP 2002563351A JP 2002563351 A JP2002563351 A JP 2002563351A JP 4279553 B2 JP4279553 B2 JP 4279553B2
- Authority
- JP
- Japan
- Prior art keywords
- flash memory
- memory system
- flash
- data
- conversion table
- 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
-
- 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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- 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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0632—Configuration or reconfiguration of storage systems by initialisation or re-initialisation of storage systems
-
- 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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1441—Resetting or repowering
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)
- Computer Security & Cryptography (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
本発明は、フラッシュメモリ素子が、迅速スリープ解除能力を使用することを可能にし、しかもデータの完全性が確保されるシステムおよび方法に関する。これは、フラッシュメモリ素子を使用してソフトウェアドライバまたはファイルシステムを初期化(マウント)する時の時間遅延の潜在的な問題を解決する。
【0002】
コンピュータのデータ記憶装置にフラッシュメモリ素子を使用するには、従来、ホストコンピュータのオペレーティングシステムと装置の低レベルのアクセスルーチンとの間に存在するあるソフトウェア変換層が必要である。これは、フラッシュ技術には使用上の制約がいくつかあり、単純なランダムアクセス線形方法でフラッシュ技術を利用することが不可能だからである。主な制約は、任意の所望のメモリロケーションにランダムに上書きすることができず、新しい内容をフラッシュメモリロケーション内に配置するには、先ず当該ロケーションを含むブロック全体を消去しなければ(その他の記憶域の内容を保存する必要がある)、新しい内容を書き込むことはできない点である。
【0003】
変換層は、各データセクタのランダムアクセスによってアドレス指定が可能なアレイの仮想ビューをホストのオペレーティングシステムに提示し、フラッシュ媒体内の実在のロケーションに対するこれら仮想アドレスのマッピングの詳細すべてを隠蔽して管理する。この変換機構は決して平凡なものではなく、Amir Banの米国特許第5,937,425号に見られるフラッシュメモリ変換層の一例であり、この特許は本明細書に援用する。この特許は、仮想フラッシュアドレスと物理フラッシュアドレスとの間のマッピング機構を実施する方法を示している。こうしたシステムのもう1つの例は、フラッシュメモリ素子のこうした機能を管理するために必要なソフトウェア管理システムを開示する米国特許第5,404,485号に詳細に記載されており、この特許は、本明細書に援用する。
【0004】
変換処理は、ホストコンピュータのデータアクセス要求を実際のフラッシュアクセス要求に変換するために必要な情報をソフトウェアに提供する内部変換テーブルを使用する。これらのテーブルは、フラッシュ素子内に記憶された制御情報に基づいて、システムスリープ解除時(または、ホストのソフトウェアが要求した場合は、スリープ解除時より遅い時点)にソフトウェアによって構成される。こうしたテーブルを構成するのではなく、フラッシュからの生制御データのみを使用することは理論上可能だが、アクセス要求に対する応答時間が遅すぎるため、実際上は使用に適さない。これは、フラッシュ上のデータにアクセスするのは、通常のコンピュータのRAMメモリにアクセスするよりはるかに遅く、またメモリテーブルは、一般に、実行時に必要な動作のタイプにおける効率の点で最適化されるが、フラッシュ記憶制御データはそうではないためである。たとえば、フラッシュ物理装置は、そこにマッピングされる仮想装置の番号を含むことができる。プログラムの実行時、仮想装置番号をその物理的対応物に変換する必要が頻繁にある。フラッシュ記憶制御データしか使用できない場合、指定の仮想装置番号を有する装置を見つけるまですべての装置を走査しなければならず、これは、単純な媒体アクセス基準により、非常に長時間を要する処理である。しかし、システムスリープ解除時に1回フラッシュ素子を走査し、各仮想装置番号を対応する物理装置番号にマッピングするテーブルを構成することにより、こうしたマッピングを非常に効率的に後で行うことができる。
【0005】
【問題点】
システムのスリープ解除時にフラッシュデータ記憶装置を走査するには、特に大容量装置の場合、長時間を要する。これは、ユーザが直ちにターンオンすることを期待するシステムおよび装置(つまり、携帯電話、PDAなど)の場合、特に面倒である。テーブルをフラッシュに記憶するという明白な解決法は、コンピュータが実行可能なコードであって、ユーザが変更できないコードのみを記憶するフラッシュ素子などの読取り専用装置の場合に効果がある。しかし、この解決法は、頻繁に変化する可能性があるデータ(PDA内のテキストファイルまたはスプレッドシート)を記憶するために使用される装置を使用する場合は成功しないであろう。これは、継続的に装置に書き込み、その内容を変更する場合、変換テーブルの内容も変化するからである。フラッシュ内のテーブルがメモリ内で変化する度にそのコピーを更新することは、生じるオーバヘッドがシステムを著しく遅延させるため実際的ではない。したがって、フラッシュ内に記憶されたテーブルとメモリ内の「正確な」テーブルとの相違が蓄積される。したがって、ユーザが電源を切り、テーブルを更新せずに再び電源を投入する場合、ソフトウェアはフラッシュから不正確な変換テーブルを読み取り、新しいデータを書き込む時にデータの損失が生じる可能性がある。
【0006】
したがって、フラッシュデータ構造の完全性を損なわず、データ損失の危険がない状態で、フラッシュメモリシステムを迅速にスリープ解除することできるシステムに対する広く認識された必要性があり、こうしたシステムを有することは非常に好都合である。さらに、システム性能を著しく低下させずに、これを行う必要がある。
【0007】
本発明により、この問題は、変換テーブルをフラッシュ内に記憶するが、何らかの手段をソフトウェアに追加して、変換テーブルを読み取る時は常に検出可能であるように変換テーブルを無効にすることにより解決される。唯一のインプリメンテーションではなく、考えられるインプリメンテーションとしては、すべての項目の値をある一定の既知の値に等しくするチェックサム値を追加するか、または妥当性フラグを記憶テーブルに追加することが挙げられる。さらに、システムをシャットダウンする前に、変換層内の特定機能を呼び出すように、アプリケーションソフトウェアに要求するべきである。
【0008】
これらの方法では、フラッシュメモリ素子は、システムが正常にシャットダウンした時に迅速なスリープ解除を開始し、システムが異常にシャットダウンした時には通常のスリープ解除に戻ることができる。
【0009】
【発明の概要】
本発明により、変換テーブルをフラッシュメモリ内に記憶するが、何らかの手段をソフトウェアに追加して、変換テーブルを読み取る時は常に検出可能であるように変換テーブルを無効にするシステムを提供する。このシステムは、以下から構成される:
i.ハードウェア計算装置、
ii.フラッシュ素子にアクセスするために使用する少なくとも1つの変換テーブルを有する不揮発性フラッシュメモリデータ記憶装置、
iii.フラッシュ素子の低レベルのソフトウェアアクセスルーチン、
iv.各データセクタのランダムアクセスによってアドレス指定が可能なアレイの仮想ビューを上位ソフトウェアレベルに提示するための変換層、
v.ホストコンピュータのオペレーティングシステム、または変換層の上のその他の何らかのソフトウェア層、
vi.変換テーブルに対するアクセスおよび変換テーブルの使用を制御するためのソフトウェア。
【0010】
本発明は、変換テーブルと、コンピュータの記憶装置を迅速にスリープ解除することを可能にするソフトウェアとを含む不揮発性メモリシステムを提供する。本発明は、フラッシュ内に変換テーブルを記憶するためのシステムを具体化するほか、ソフトウェアに何らかの手段を追加して、変換テーブルを読み取る時は常に検出可能であるように変換テーブルを無効にする方法に関する。唯一のインプリメンテーションではなく、考えられるインプリメンテーションとしては、すべての項目の合計をある一定の既知の値に等しくするチェックサム値を追加するか、またはテーブルに妥当性フラグを追加することが挙げられる。データを無効にしたい時には、チェックサム値(もしくは、テーブル内のその他の項目)を変更し、合計が予想値と異なるようにするか、またはチェックサムではなく妥当性フラグを使用する場合、単にフラグの値を変更して無効状態を指示すれば良い。さらに、システムをシャットダウンする前に、変換層内の特定の機能を呼び出すように、アプリケーションソフトウェアに要求する。
【0011】
本発明の好ましい実施態様により、常にデータの完全性を維持しつつ、メモリ素子の迅速なスリープ解除を可能にするための方法であって、以下のステップを含む方法を提供する:
(a)少なくとも1個の変換テーブルをフラッシュメモリ構成要素内に記憶するステップと、
(b)スリープ解除後にテーブルを無効にするためのソフトウェア手段を追加するステップと、
(c)フラッシュメモリ構成要素の正常なシャットダウンを検証するための特定の機能を変換層に提供し、変換テーブルの最新のコピーをフラッシュ素子内に記憶し、迅速なスリープ解除を可能にするステップ。
【0012】
本発明の好ましい実施態様により、迅速なスリープ解除およびデータの完全性を確保するための方法であって、以下のステップを含む方法を提供する:
i.アプリケーションソフトウェアが正常に終了し、装置が、更新されたテーブルを記憶した場合、次にスリープ解除すると、テーブルを使用して、迅速にターンオンすることができる。
ii.アプリケーションソフトウェアが異常終了した場合、通常のスリープ解除手順が開始し、データの完全性が確保される。
【0013】
ソリッドステート記憶システム開発の当業者は、本明細書に記載する発明に相当する方法およびシステムを使用して、その他の実施態様を開発することができると考えるべきである。上記の実施態様は一例であり、いかなる点でも、本明細書に記載する技術をこれらの実施例のみに限定する意図はないと考えるべきである。
【0014】
本発明について、添付の図面を参照して例としてのみ本明細書で説明する。
【0015】
【好適な実施態様の詳細な説明】
本発明は、コンピュータのデータ記憶装置に使用されるフラッシュメモリ素子の迅速スリープ解除を可能にするシステムおよび方法である。
【0016】
特に、本発明は、変換テーブルを読み取る時には常に検出可能であるように変換テーブルを無効にすることによりこうした迅速スリープ解除を可能にすることができる。
【0017】
本発明によるこうしたシステムの原理および動作は、図面および添付の明細書に関連してより良く理解することができる。
図1は、本発明の基本的な構成要素および動作を好ましい用途について示す。本発明の構成要素は、以下を備える:
i.フラッシュメモリ素子にアクセスするハードウェア計算装置12;
ii.ハードウェア計算装置11のデータを記憶するための不揮発性フラッシュメモリデータ記憶装置であって、上位層のデータアクセス要求をフラッシュアクセス要求に変換するために必要な情報を変換層(iv項参照)に提供するために、少なくとも1つの変換テーブル13が存在する装置;
iii.フラッシュ素子の内容にアクセスするためのフラッシュ素子の低レベルのソフトウェアアクセスルーチン16;
iv.ランダムアクセス記憶装置の仮想ビューを上位ソフトウェアレベルに提示する変換層10;
v.ホストコンピュータのオペレーティングシステム、またはデータの処理を可能にするために変換層の上にその他の何らかのソフトウェア層15を含むソフトウェア機構;
および
vi.変換テーブルへのアクセスおよび変換テーブルの使用を制御するためのソフトウェア14。
【0018】
図1によると、1つの変換テーブルまたは複数の変換テーブル13がフラッシュメモリ11内に記憶されることが判明する。また、変換テーブルを読み取る時は常に検出可能であるように変換テーブルを無効にするための何らかの手段をソフトウェア14に提供する。唯一のインプリメンテーションではなく、考えられるインプリメンテーションは、すべての項目の合計をある一定の既知の値に等しくするか、または妥当性フラグをテーブルに追加することである。データを無効にしたい場合、単にチェックサム値(もしくはテーブル内のその他の項目)を変更し、合計が予想値と異なるようにするか、またはチェックサムではなく妥当性フラグを使用する場合、単にフラグの値を変更して無効状態を指示すれば良い。データを無効にしたい理由は、殆どのスリープ解除時のスリープ解除時間を迅速化するとともに、装置が正しくシャットダウンせず、記憶されたテーブルが最新ではない場合にも、スリープ解除時に不正確なテーブルを使用しないようにすることである。さらに、システムをシャットダウンする前に、変換層10内の特定の機能を呼び出すように、アプリケーションソフトウェアに要求する。こうして、ソフトウェアは、シャットダウンする前に変換テーブル13の最新のコピーをフラッシュメモリ11内に保存することができる。
【0019】
以下のアルゴリズムは、図2に示すようにインプリメントされる:
A.スリープ解除時20
変換テーブルをフラッシュメモリ素子から読み取る21。
変換テーブルが有効であると判明した場合22
−予期しないシャットダウンに対する保護として、テーブルを無効にする23。
−テーブルを使用し24、フラッシュメモリシステム全体を走査する必要がない。
その他(つまり、テーブルが有効ではない)25
−フラッシュメモリシステムを走査し26、更新された変換テーブルを構成する27。
−上記のようにテーブルを使用する24。
B.フラッシュメモリシステムのシャットダウンが通知された場合30、次のスリープ解除時に有効と認識されるように32、テーブルの現在のコピーまたは最近に更新されたコピーをフラッシュメモリシステム内に記憶する31。
【0020】
上記のアルゴリズムの結果は、以下の通りである:
−アプリケーションソフトウェアが正常に終了し、テーブルを記憶した場合、次のスリープ解除でテーブルを使用して、迅速起動/スリープ解除が可能である。
−正常に終了しない場合、スリープ解除時間を改善しなくても、なおデータの完全性が保たれる。
【0021】
【可能な変形】
テーブルの無効化は、システムのスリープ解除後のある時点であって、なおかつフラッシュの内容に最初に変更が加えられる時以前のある時点まで遅延させることができる。したがって、システムが、フラッシュ内に新しいデータが書き込まれない状態でシャットダウンされた場合、システムが事前に通知なくシャットダウンしたとしても、次回に迅速起動を行うことができるだろう。
【0022】
本発明について、限られた数の実施態様に関して説明してきたが、本発明の多くの変形、変更およびその他の用途が可能であることが分かるであろう。
【図面の簡単な説明】
【図1】 本発明の構成要素、およびこれら構成要素間の相互作用を示す。
【図2】 システムのスリープ解除からシャットダウンまでのステップを示す。
Claims (2)
- データの完全性を確保するように、フラッシュメモリシステムの迅速スリープ解除を可能にするための方法であって、
A.スリープ解除時:
i.データアクセス要求をフラッシュアクセス要求に変換するために必要な情報を変換層に提供するために、前記フラッシュメモリシステムのフラッシュメモリから変換テーブルを読み取るステップと、
ii.前記変換テーブルが有効であると判明した場合
iia.前記情報を提供するために前記変換テーブルのデータを変更することなく、前記変換テーブルの前記データを無効にするステップと、
iib.前記フラッシュメモリシステム全体を走査する必要なく前記テーブルを使用するステップと、
iii.その他
iiia.前記フラッシュメモリシステムを走査し、更新された変換テーブルを構成するステップと、
iiib.iib項のようにテーブルを使用するステップと、
B.フラッシュメモリシステムがシャットダウンの前に通知された場合、次のスリープ解除時に有効と認識されるように、前記テーブルの更新されたコピーを前記フラッシュメモリシステム内に記憶するステップと、を含み、
前記変換テーブルの前記無効化が、スリープ解除後であって、前記フラッシュメモリシステムに最初にアクセスしてフラッシュの内容に変更が加えられる以前の、後のある時点まで遅延される方法。 - a.前記フラッシュメモリシステムを使用するアプリケーションソフトウェアが正常に終了し、更新された変換テーブルを記憶した場合、前記アプリケーションソフトウェアが、次回のスリープ解除で前記テーブルを使用することを可能にするステップと、
b.前記アプリケーションソフトウェアが異常終了した場合、前記アプリケーションソフトウェアが通常のスリープ解除手順を開始するステップと、
をさらに含む、請求項1に記載の方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/775,499 US6510488B2 (en) | 2001-02-05 | 2001-02-05 | Method for fast wake-up of a flash memory system |
PCT/US2002/002808 WO2002063475A1 (en) | 2001-02-05 | 2002-02-04 | A method for fast wake-up of a flash memory system |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004519037A JP2004519037A (ja) | 2004-06-24 |
JP4279553B2 true JP4279553B2 (ja) | 2009-06-17 |
Family
ID=25104623
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002563351A Expired - Fee Related JP4279553B2 (ja) | 2001-02-05 | 2002-02-04 | フラッシュメモリシステムの迅速スリープ解除方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US6510488B2 (ja) |
JP (1) | JP4279553B2 (ja) |
KR (1) | KR100558631B1 (ja) |
IL (1) | IL151293A (ja) |
WO (1) | WO2002063475A1 (ja) |
Families Citing this family (73)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6691234B1 (en) * | 2000-06-16 | 2004-02-10 | Intel Corporation | Method and apparatus for executing instructions loaded into a reserved portion of system memory for transitioning a computer system from a first power state to a second power state |
US7085879B2 (en) * | 2002-02-27 | 2006-08-01 | Microsoft Corporation | Dynamic data structures for tracking data stored in a flash memory device |
US7533214B2 (en) * | 2002-02-27 | 2009-05-12 | Microsoft Corporation | Open architecture flash driver |
US6901499B2 (en) * | 2002-02-27 | 2005-05-31 | Microsoft Corp. | System and method for tracking data stored in a flash memory device |
US7181611B2 (en) * | 2002-10-28 | 2007-02-20 | Sandisk Corporation | Power management block for use in a non-volatile memory system |
US7093101B2 (en) * | 2002-11-21 | 2006-08-15 | Microsoft Corporation | Dynamic data structures for tracking file system free space in a flash memory device |
US7386700B2 (en) * | 2004-07-30 | 2008-06-10 | Sandisk Il Ltd | Virtual-to-physical address translation in a flash file system |
EP1797645B1 (en) * | 2004-08-30 | 2018-08-01 | Google LLC | Systems and methods for providing nonvolatile memory management in wireless phones |
JP4681900B2 (ja) * | 2005-02-04 | 2011-05-11 | 富士通株式会社 | コンピュータの停止状況監視方法、情報処理装置及びプログラム |
US8244958B2 (en) * | 2005-05-09 | 2012-08-14 | Sandisk Il Ltd. | Method and system for facilitating fast wake-up of a flash memory system |
US20070016721A1 (en) * | 2005-07-18 | 2007-01-18 | Wyse Technology Inc. | Flash file system power-up by using sequential sector allocation |
US8020190B2 (en) * | 2005-10-14 | 2011-09-13 | Sdc Software, Inc. | Enhanced browser security |
US7519754B2 (en) * | 2005-12-28 | 2009-04-14 | Silicon Storage Technology, Inc. | Hard disk drive cache memory and playback device |
US20070147115A1 (en) * | 2005-12-28 | 2007-06-28 | Fong-Long Lin | Unified memory and controller |
US7610528B2 (en) * | 2006-02-14 | 2009-10-27 | Atmel Corporation | Configuring flash memory |
WO2007095579A2 (en) * | 2006-02-14 | 2007-08-23 | Atmel Corporation | Writing to and configuring flash memory |
US7711923B2 (en) * | 2006-06-23 | 2010-05-04 | Microsoft Corporation | Persistent flash memory mapping table |
US8489780B2 (en) * | 2006-12-21 | 2013-07-16 | Intel Corporation | Power saving in NAND flash memory |
US7769945B2 (en) * | 2007-01-18 | 2010-08-03 | Sandisk Il Ltd. | Method and system for facilitating fast wake-up of a flash memory system |
US8307180B2 (en) | 2008-02-28 | 2012-11-06 | Nokia Corporation | Extended utilization area for a memory device |
US20090313420A1 (en) * | 2008-06-13 | 2009-12-17 | Nimrod Wiesz | Method for saving an address map in a memory device |
US8555086B2 (en) * | 2008-06-30 | 2013-10-08 | Intel Corporation | Encrypting data on a non-volatile memory |
US8874824B2 (en) | 2009-06-04 | 2014-10-28 | Memory Technologies, LLC | Apparatus and method to share host system RAM with mass storage memory RAM |
US8027195B2 (en) * | 2009-06-05 | 2011-09-27 | SanDisk Technologies, Inc. | Folding data stored in binary format into multi-state format within non-volatile memory devices |
US8102705B2 (en) | 2009-06-05 | 2012-01-24 | Sandisk Technologies Inc. | Structure and method for shuffling data within non-volatile memory devices |
US8352835B2 (en) * | 2009-06-10 | 2013-01-08 | International Business Machines Corporation | Data verification using checksum sidefile |
US20110002169A1 (en) | 2009-07-06 | 2011-01-06 | Yan Li | Bad Column Management with Bit Information in Non-Volatile Memory Systems |
US8296506B2 (en) * | 2009-11-09 | 2012-10-23 | Lite-On It Corporation | Method for managing a non-violate memory and computer readable medium thereof |
US8468294B2 (en) * | 2009-12-18 | 2013-06-18 | Sandisk Technologies Inc. | Non-volatile memory with multi-gear control using on-chip folding of data |
US8144512B2 (en) | 2009-12-18 | 2012-03-27 | Sandisk Technologies Inc. | Data transfer flows for on-chip folding |
US8725935B2 (en) | 2009-12-18 | 2014-05-13 | Sandisk Technologies Inc. | Balanced performance for on-chip folding of non-volatile memories |
US20110153912A1 (en) | 2009-12-18 | 2011-06-23 | Sergey Anatolievich Gorobets | Maintaining Updates of Multi-Level Non-Volatile Memory in Binary Non-Volatile Memory |
TWI484334B (zh) * | 2009-12-24 | 2015-05-11 | Univ Nat Taiwan | 非揮發記憶體的區域式管理方法 |
JP5269213B2 (ja) * | 2010-02-02 | 2013-08-21 | 株式会社東芝 | ストレージ機能を持つ通信装置 |
US8417876B2 (en) | 2010-06-23 | 2013-04-09 | Sandisk Technologies Inc. | Use of guard bands and phased maintenance operations to avoid exceeding maximum latency requirements in non-volatile memory systems |
US9069688B2 (en) | 2011-04-15 | 2015-06-30 | Sandisk Technologies Inc. | Dynamic optimization of back-end memory system interface |
US8464135B2 (en) | 2010-07-13 | 2013-06-11 | Sandisk Technologies Inc. | Adaptive flash interface |
KR101719395B1 (ko) | 2010-07-13 | 2017-03-23 | 샌디스크 테크놀로지스 엘엘씨 | 백-엔드 메모리 시스템 인터페이스를 동적으로 최적화하는 방법 |
US9342446B2 (en) | 2011-03-29 | 2016-05-17 | SanDisk Technologies, Inc. | Non-volatile memory system allowing reverse eviction of data updates to non-volatile binary cache |
US8793429B1 (en) * | 2011-06-03 | 2014-07-29 | Western Digital Technologies, Inc. | Solid-state drive with reduced power up time |
US8775901B2 (en) | 2011-07-28 | 2014-07-08 | SanDisk Technologies, Inc. | Data recovery for defective word lines during programming of non-volatile memory arrays |
US8468423B2 (en) | 2011-09-01 | 2013-06-18 | International Business Machines Corporation | Data verification using checksum sidefile |
TWI432962B (zh) * | 2011-10-06 | 2014-04-01 | Mstar Semiconductor Inc | 電子系統及其記憶體管理方法 |
CN103064756B (zh) * | 2011-10-21 | 2016-07-06 | 晨星软件研发(深圳)有限公司 | 电子系统及其存储器管理方法 |
US9417998B2 (en) | 2012-01-26 | 2016-08-16 | Memory Technologies Llc | Apparatus and method to provide cache move with non-volatile mass memory system |
US8842473B2 (en) | 2012-03-15 | 2014-09-23 | Sandisk Technologies Inc. | Techniques for accessing column selecting shift register with skipped entries in non-volatile memories |
US9311226B2 (en) | 2012-04-20 | 2016-04-12 | Memory Technologies Llc | Managing operational state data of a memory module using host memory in association with state change |
US8681548B2 (en) | 2012-05-03 | 2014-03-25 | Sandisk Technologies Inc. | Column redundancy circuitry for non-volatile memory |
US9164804B2 (en) | 2012-06-20 | 2015-10-20 | Memory Technologies Llc | Virtual memory module |
US9424896B2 (en) | 2012-06-22 | 2016-08-23 | Nxp B.V. | Method and system for fast initialization of a memory unit |
KR101993704B1 (ko) * | 2012-08-24 | 2019-06-27 | 삼성전자주식회사 | 플래시 메모리를 기반으로 하는 저장 장치 및 플래시 메모리를 제어하는 메모리 컨트롤러의 쓰기 메모리 블록 할당 방법 |
US9116820B2 (en) | 2012-08-28 | 2015-08-25 | Memory Technologies Llc | Dynamic central cache memory |
US9490035B2 (en) | 2012-09-28 | 2016-11-08 | SanDisk Technologies, Inc. | Centralized variable rate serializer and deserializer for bad column management |
US9076506B2 (en) | 2012-09-28 | 2015-07-07 | Sandisk Technologies Inc. | Variable rate parallel to serial shift register |
US8897080B2 (en) | 2012-09-28 | 2014-11-25 | Sandisk Technologies Inc. | Variable rate serial to parallel shift register |
US8812744B1 (en) | 2013-03-14 | 2014-08-19 | Microsoft Corporation | Assigning priorities to data for hybrid drives |
US9626126B2 (en) | 2013-04-24 | 2017-04-18 | Microsoft Technology Licensing, Llc | Power saving mode hybrid drive access management |
US9946495B2 (en) | 2013-04-25 | 2018-04-17 | Microsoft Technology Licensing, Llc | Dirty data management for hybrid drives |
US9772781B2 (en) * | 2013-11-27 | 2017-09-26 | Ngd Systems, Inc. | System and method for supporting atomic writes in a flash translation layer |
US9384128B2 (en) | 2014-04-18 | 2016-07-05 | SanDisk Technologies, Inc. | Multi-level redundancy code for non-volatile memory controller |
US9934872B2 (en) | 2014-10-30 | 2018-04-03 | Sandisk Technologies Llc | Erase stress and delta erase loop count methods for various fail modes in non-volatile memory |
US9224502B1 (en) | 2015-01-14 | 2015-12-29 | Sandisk Technologies Inc. | Techniques for detection and treating memory hole to local interconnect marginality defects |
US10032524B2 (en) | 2015-02-09 | 2018-07-24 | Sandisk Technologies Llc | Techniques for determining local interconnect defects |
US9564219B2 (en) | 2015-04-08 | 2017-02-07 | Sandisk Technologies Llc | Current based detection and recording of memory hole-interconnect spacing defects |
US9269446B1 (en) | 2015-04-08 | 2016-02-23 | Sandisk Technologies Inc. | Methods to improve programming of slow cells |
US10235287B2 (en) | 2016-06-29 | 2019-03-19 | Western Digital Technologies, Inc. | Efficient management of paged translation maps in memory and flash |
US10229048B2 (en) | 2016-06-29 | 2019-03-12 | Western Digital Technologies, Inc. | Unified paging scheme for dense and sparse translation tables on flash storage systems |
US10353813B2 (en) | 2016-06-29 | 2019-07-16 | Western Digital Technologies, Inc. | Checkpoint based technique for bootstrapping forward map under constrained memory for flash devices |
US10175896B2 (en) | 2016-06-29 | 2019-01-08 | Western Digital Technologies, Inc. | Incremental snapshot based technique on paged translation systems |
US11216361B2 (en) | 2016-06-29 | 2022-01-04 | Western Digital Technologies, Inc. | Translation lookup and garbage collection optimizations on storage system with paged translation table |
US10452561B2 (en) | 2016-08-08 | 2019-10-22 | Raytheon Company | Central processing unit architecture and methods for high availability systems |
CN107340976A (zh) * | 2017-07-14 | 2017-11-10 | 郑州云海信息技术有限公司 | 一种元数据存储方法及系统 |
CN110459256A (zh) * | 2018-05-08 | 2019-11-15 | 美光科技公司 | 动态p2l异步功率损耗降低 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5375222A (en) | 1992-03-31 | 1994-12-20 | Intel Corporation | Flash memory card with a ready/busy mask register |
US5404485A (en) | 1993-03-08 | 1995-04-04 | M-Systems Flash Disk Pioneers Ltd. | Flash file system |
US5645068A (en) | 1995-03-20 | 1997-07-08 | Bioscan, Inc. | Methods and apparatus for ambulatory and non-ambulatory monitoring of physiological data using digital flash storage |
US5937425A (en) | 1997-10-16 | 1999-08-10 | M-Systems Flash Disk Pioneers Ltd. | Flash file system optimized for page-mode flash technologies |
TW368626B (en) | 1998-04-17 | 1999-09-01 | Winbond Electronics Corp | Microprocessor with self-programmed embedded flash memory and programming method |
US6377500B1 (en) * | 1999-11-11 | 2002-04-23 | Kabushiki Kaisha Toshiba | Memory system with a non-volatile memory, having address translating function |
-
2001
- 2001-02-05 US US09/775,499 patent/US6510488B2/en not_active Expired - Lifetime
-
2002
- 2002-02-03 IL IL151293A patent/IL151293A/en not_active IP Right Cessation
- 2002-02-04 WO PCT/US2002/002808 patent/WO2002063475A1/en active IP Right Grant
- 2002-02-04 KR KR1020027013199A patent/KR100558631B1/ko not_active IP Right Cessation
- 2002-02-04 JP JP2002563351A patent/JP4279553B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
KR100558631B1 (ko) | 2006-03-13 |
IL151293A (en) | 2006-10-31 |
WO2002063475A1 (en) | 2002-08-15 |
US20020108014A1 (en) | 2002-08-08 |
IL151293A0 (en) | 2003-04-10 |
JP2004519037A (ja) | 2004-06-24 |
US6510488B2 (en) | 2003-01-21 |
KR20020086755A (ko) | 2002-11-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4279553B2 (ja) | フラッシュメモリシステムの迅速スリープ解除方法 | |
USRE46446E1 (en) | Method and system for facilitating fast wake-up of a flash memory system | |
JP5351046B2 (ja) | フラッシュメモリシステムの高速起動を容易にする方法およびシステム | |
US7711923B2 (en) | Persistent flash memory mapping table | |
US20050086551A1 (en) | Memory optimization for a computer system having a hibernation mode | |
US10387313B2 (en) | Method and system for ensuring reliability of cache data and metadata subsequent to a reboot | |
US8028148B2 (en) | Safe and efficient allocation of memory | |
US8190914B2 (en) | Method and system for designating and handling confidential memory allocations | |
WO2011033600A1 (ja) | 仮想記憶管理装置 | |
JP2004127205A (ja) | 不揮発性メモリへのデータ貯蔵方法及び装置 | |
JP2008508596A (ja) | Nvramを使用するメモリ管理のためのシステム、方法、コンピュータ可読媒体、および装置 | |
WO2010056571A2 (en) | Managing cache data and metadata | |
KR101392062B1 (ko) | 고속 컴퓨터 시스템 파워 온 및 파워 오프 방법 | |
WO2008087634A1 (en) | A method and system for facilitating fast wake-up of a flash memory system | |
CN111142792A (zh) | 一种存储装置的掉电保护方法 | |
US20040024970A1 (en) | Methods and apparatuses for managing memory | |
US20220147265A1 (en) | Metadata management for extent-based storage system | |
JP2003331239A (ja) | メモリ再配置機能を有するicカード |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20041116 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20070613 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070622 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20070921 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20071001 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20071017 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20071024 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20071120 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20071204 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20071221 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080314 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20080611 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20080618 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20080708 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20080715 |
|
RD13 | Notification of appointment of power of sub attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7433 Effective date: 20080723 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080808 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080813 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080814 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20080723 |
|
RD15 | Notification of revocation of power of sub attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7435 Effective date: 20090116 |
|
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: 20090227 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20090312 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120319 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4279553 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120319 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130319 Year of fee payment: 4 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130319 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140319 Year of fee payment: 5 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
R360 | Written notification for declining of transfer of rights |
Free format text: JAPANESE INTERMEDIATE CODE: R360 |
|
R360 | Written notification for declining of transfer of rights |
Free format text: JAPANESE INTERMEDIATE CODE: R360 |
|
R371 | Transfer withdrawn |
Free format text: JAPANESE INTERMEDIATE CODE: R371 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
R360 | Written notification for declining of transfer of rights |
Free format text: JAPANESE INTERMEDIATE CODE: R360 |
|
R360 | Written notification for declining of transfer of rights |
Free format text: JAPANESE INTERMEDIATE CODE: R360 |
|
R371 | Transfer withdrawn |
Free format text: JAPANESE INTERMEDIATE CODE: R371 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |