JP4279553B2 - フラッシュメモリシステムの迅速スリープ解除方法 - Google Patents

フラッシュメモリシステムの迅速スリープ解除方法 Download PDF

Info

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
Application number
JP2002563351A
Other languages
English (en)
Other versions
JP2004519037A (ja
Inventor
ラッセル メナケム
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Western Digital Israel Ltd
Original Assignee
SanDisk IL Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=25104623&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=JP4279553(B2) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by SanDisk IL Ltd filed Critical SanDisk IL Ltd
Publication of JP2004519037A publication Critical patent/JP2004519037A/ja
Application granted granted Critical
Publication of JP4279553B2 publication Critical patent/JP4279553B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0632Configuration or reconfiguration of storage systems by initialisation or re-initialisation of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1441Resetting 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

【0001】
本発明は、フラッシュメモリ素子が、迅速スリープ解除能力を使用することを可能にし、しかもデータの完全性が確保されるシステムおよび方法に関する。これは、フラッシュメモリ素子を使用してソフトウェアドライバまたはファイルシステムを初期化(マウント)する時の時間遅延の潜在的な問題を解決する。
【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)

  1. データの完全性を確保するように、フラッシュメモリシステムの迅速スリープ解除を可能にするための方法であって、
    A.スリープ解除時:
    i.データアクセス要求をフラッシュアクセス要求に変換するために必要な情報を変換層に提供するために、前記フラッシュメモリシステムのフラッシュメモリから変換テーブルを読み取るステップと、
    ii.前記変換テーブルが有効であると判明した場合
    iia.前記情報を提供するために前記変換テーブルのデータを変更することなく、前記変換テーブルの前記データを無効にするステップと、
    iib.前記フラッシュメモリシステム全体を走査する必要なく前記テーブルを使用するステップと、
    iii.その他
    iiia.前記フラッシュメモリシステムを走査し、更新された変換テーブルを構成するステップと、
    iiib.iib項のようにテーブルを使用するステップと、
    B.フラッシュメモリシステムがシャットダウンの前に通知された場合、次のスリープ解除時に有効と認識されるように、前記テーブルの更新されたコピーを前記フラッシュメモリシステム内に記憶するステップと、を含み、
    前記変換テーブルの前記無効化が、スリープ解除後であって、前記フラッシュメモリシステムに最初にアクセスしてフラッシュの内容に変更が加えられる以前の、後のある時点まで遅延される方法。
  2. a.前記フラッシュメモリシステムを使用するアプリケーションソフトウェアが正常に終了し、更新された変換テーブルを記憶した場合、前記アプリケーションソフトウェアが、次回のスリープ解除で前記テーブルを使用することを可能にするステップと、
    b.前記アプリケーションソフトウェアが異常終了した場合、前記アプリケーションソフトウェアが通常のスリープ解除手順を開始するステップと、
    をさらに含む、請求項1に記載の方法
JP2002563351A 2001-02-05 2002-02-04 フラッシュメモリシステムの迅速スリープ解除方法 Expired - Fee Related JP4279553B2 (ja)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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