JP2012529102A - ソリッドステートデバイス内のオブジェクト指向メモリ - Google Patents

ソリッドステートデバイス内のオブジェクト指向メモリ Download PDF

Info

Publication number
JP2012529102A
JP2012529102A JP2012513923A JP2012513923A JP2012529102A JP 2012529102 A JP2012529102 A JP 2012529102A JP 2012513923 A JP2012513923 A JP 2012513923A JP 2012513923 A JP2012513923 A JP 2012513923A JP 2012529102 A JP2012529102 A JP 2012529102A
Authority
JP
Japan
Prior art keywords
solid state
control component
data
host
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.)
Granted
Application number
JP2012513923A
Other languages
English (en)
Other versions
JP5517089B2 (ja
Inventor
エス. フィーリー,ピーター
エー. ガルボ,ニール
コーク,ジェイムス
ワイ. ツァイ,ビクター
エヌ. レイボヴィッツ,ロバート
ヘンリー. ラドキ,ウィリアム
Original Assignee
マイクロン テクノロジー, インク.
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
Application filed by マイクロン テクノロジー, インク. filed Critical マイクロン テクノロジー, インク.
Publication of JP2012529102A publication Critical patent/JP2012529102A/ja
Application granted granted Critical
Publication of JP5517089B2 publication Critical patent/JP5517089B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • 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/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
    • G06F11/2064Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring while ensuring consistency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)
  • Memory System (AREA)

Abstract

本開示は、ソリッドステートデバイス内のオブジェクト指向メモリの方法、デバイス、およびシステムを含む。ソリッドステートデバイス内のオブジェクト指向メモリのための方法の一実施形態は、原子動作様式で単一オブジェクトとして定義されたデータの組にアクセスすることを含み、前記アクセスは、ホスト以外のソースからである。本実施形態はまた、いくつかのソリッドステートメモリブロックを含むソリッドステートデバイスの制御構成要素によってフォーマットされるように、いくつかのソリッドステートメモリブロック内に単一オブジェクトとして定義されたデータの組を記憶することを含む。
【選択図】図1

Description

本開示は、概して、半導体メモリデバイス、方法、およびシステムに関し、より具体的には、ソリッドステートデバイス内のオブジェクト指向メモリに関する。
メモリデバイスは、多様な他の電子デバイスの中でも、例えば、コンピュータ、携帯情報端末(PDA)、デジタルカメラ、およびモバイル(例えば、携帯)電話の中の、内部の半導体集積回路、および/または外部の着脱式デバイスとして提供される場合がある。数ある他の種類のメモリ構成の中でも、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、ダイナミックランダムアクセスメモリ(DRAM)、シンクロナスダイナミックランダムアクセスメモリ(SDRAM)、相変化ランダムアクセスメモリ(PCRAM)、およびフラッシュメモリを含む、多くの異なる種類のメモリが存在する。
多種多様な種類のメモリは、メモリデバイスを使用するシステムに使用される場合がある。多種多様な種類のメモリは、ホストのためのメモリを提供するために任意の組み合わせで使用される場合がある。例えば、フラッシュメモリ(例えば、NANDまたはNORメモリセルを使用する)は、メモリデバイスの中に含まれる場合がある。フラッシュメモリは、ユニバーサルシリアルバス(USB)接続等のインターフェースを介してシステムに結合される場合がある、内部メモリまたは着脱式メモリとして利用される場合がある。
フラッシュメモリデバイスは、広範囲の電子機器用途のための不揮発性メモリとして利用される場合がある。フラッシュメモリデバイスは、高いメモリ密度、高い信頼性、および低電力消費を可能にする1トランジスタメモリセルを使用する場合がある。
本開示の1つ以上の実施形態に従う、システムのブロック図である。 本開示の1つ以上の実施形態に従う、メモリアレイの一部の図である。 本開示の1つ以上の方法の実施形態に従うソリッドステートデバイス内のオブジェクト指向メモリを示すブロック図である。
本開示は、ソリッドステートデバイス内のオブジェクト指向メモリのための方法、デバイス、およびシステムを含む。ソリッドステートデバイス内のオブジェクト指向メモリのための方法の一実施例は、原子動作様式で単一オブジェクトとして定義されたデータの組にアクセスすることを含み、アクセスは、ホスト以外のソースからである。多様な実施形態において、ソースは、説明のためであって限定ではなく、図1に関して説明されるネットワークとすることができる。実施形態はまた、いくつかのソリッドステートメモリブロックを含むソリッドステートデバイスの制御構成要素によってフォーマットされるように、いくつかのソリッドステートメモリブロック内に単一オブジェクトとして定義されたデータの組を記憶することも含む。
ソリッドステートデバイスは、いくつかのメモリデバイス(例えば、いくつかのメモリチップ)を含むことができる。本開示に利用されるように、ある物を意味するために「いくつかの」を使用すると、1つ以上のそのような物を意味することができる。例えば、いくつかのメモリデバイスは、1つ以上のメモリデバイスを意味することができる。当業者は、1つのメモリチップがいくつかのダイを含むことができることを理解するであろう。各ダイは、いくつかのメモリアレイおよびその上の周辺回路を含むことができる。メモリアレイは、いくつかのプレーンを含むことができ、各プレーンは、メモリセルのいくつかの物理ブロックを含む。各物理ブロックは、データのいくつかのセクタを記憶することができる、メモリセルのいくつかのページを含むことができる。
大型記憶容量全体にわたって低レイテンシおよび高帯域幅の動作を実現するために、ソリッドステートデバイスは、並列に動作する複数のチャンネルを含む場合があり、各チャンネルは、メモリのいくらかの部分を動作する。このため、メモリチャンネルコントローラ(例えば、NANDフラッシュコントローラロジック)の複数のコピーが、ソリッドステートデバイスのマルチチャンネルシステムコントローラ上に集積される場合がある。そのような配設において、各チャンネル、またはチャンネルの集約ポイントは、論理から物理へのマッピングおよび/またはブロック管理(例えば、ウェアレベリング)を行うことを含む、チャンネルによって供給される関連メモリを動作するタスクが課される場合がある。したがって、複数のチャンネルの各々に対応する、複数のメモリチャンネルコントローラの各コピーは、マッピングおよびブロック管理の機能を実行するために使用される高速バッファメモリを有する場合がある。加えて、複数のメモリチャンネルコントローラの各コピーは、それぞれのチャンネルに指示された「移動中」データのためのバッファメモリを含む場合がある。
メモリデバイスは、ソリッドステートデバイスを形成するように共に組み合わされる場合がある。ソリッドステートデバイスは、多様な他の種類の不揮発性および揮発性メモリの中でも、不揮発性メモリ(例えば、NANDフラッシュメモリおよび/またはNORフラッシュメモリ)を含む場合があり、および/または、揮発性メモリ(例えば、DRAMおよび/またはSRAM)を含む場合がある。
ソリッドステートデバイスは、性能、サイズ、重量、耐久性、動作温度範囲、および/または電力消費の点においてハードドライブに優る利点を有する場合があるので、ソリッドステートデバイスは、コンピュータの主記憶装置等のハードディスクドライブを置換するために使用される場合がある。例えば、ソリッドステートデバイスは、稼動部がないことに起因して、磁気ディスクドライブに比較すると優れた性能を有する場合があり、磁気ディスクドライブに関連する、シーク時間、レイテンシ、および/または他の電気機械的遅延を改善する場合がある。ソリッドステートデバイス製造者は、内部のバッテリー電源を使用しなくてもよいフラッシュソリッドステートデバイスを作成するために不揮発性フラッシュメモリを使用する場合があり、これによって、ドライブをより多用途および小型にすることを可能にする。
いくつかのメモリ用途では、ソリッドステートデバイスは、ハードディスクドライブに対する置換または補完として使用される場合がある。これらの事例において、ソリッドステートデバイスは、ハードドライブの機能に対応するように設計された環境に位置する場合がある。ソリッドステートデバイスとハードドライブとの間の最小消去可能単位の粒度または量子化の差(例えば、ハードドライブの512バイトセクタに対して、ソリッドステートデバイスの128Kまたは256Kブロック)に起因して、コンピューティングデバイスのハードドライブに対する置換または補完として使用されるソリッドステートデバイスは、ピーク性能レベルで動作しない場合がある。
複数のメモリチャンネルコントローラの各コピーと、メモリの対応する部分との間の並列通信は、その間にデータ、制御、電力、および接地の接続を確立するために約20ピンを要する場合がある。これによって、結果として、既存のディスクドライブのプロトコルとの互換性を保証するために、大量のピンカウントを有する高価なメモリシステムとなる可能性がある。
ソリッドステートデバイスの開発および採用は、より高い入力/出力性能を求める急速に拡大する必要性によって推進されてきた。高性能のデスクトップコンピュータ、ラップトップ、モバイルシステムもしくはデバイス、ならびに/またはリアルタイムもしくはほぼリアルタイムで情報を配信することが必要な任意のアプリケーションも、ソリッドステートデバイスから恩恵を受けることができる。歴史的に、ソリッドステートデバイスは、ハードドライブよりも高価であった。しかしながら、製造技術の進歩および拡大したチップ容量によって、価格が低下し、一般消費者および企業レベルの消費者のどちらもソリッドステートデバイスをこれまでのメモリシステムに対する有望な代替として再評価するようになっている。
メモリセルは、2つ以上の容易に識別可能な状態の間を迅速に切り替えることができる構造に、デジタル情報を記憶する。いくつかのメモリセルは、セルの領域内に含有される電荷の存在または不在に基づく。その電荷を保存することによって、メモリセルはその記憶したデータを保存する。いくつかのメモリセルの構造は、本質的に、電荷を漏洩し、その格納された電荷を回復するためには継続的に電力が供給されなければならない。
しかしながら、不揮発性メモリは、電荷情報を保存するために電力を必要としない。例えば、フラッシュメモリは、その上に電荷が格納されている「浮遊ゲート」を有する場合があり、これは電荷の漏洩を抑制するために防護されている。したがって、電力は、記憶された情報(例えば、データ、ビット等)を変更する、例えば、メモリセルへの書き込み(すなわち、電荷を格納する)、メモリセルからの読み出し(すなわち、電荷が存在するかどうかを判定する)、および/または消去する(すなわち、電荷を除去する)ためだけに必要である。フラッシュメモリ内に記憶されたデータの不揮発性は、携帯用電子機器用途では利点である。不揮発性メモリは、数ある他の使用の中でも、例であって限定ではなく、パーソナルコンピュータ(例えば、デスクトップおよびラップトップ)、携帯情報端末(PDA)、デジタルカメラ、および携帯電話で使用される場合がある。数ある他の種類中でも、コンピューティングシステムにおいて使用される基本入出力システム(BIOS)等のプログラムコードおよびシステムデータは、不揮発性メモリデバイスに記憶される場合がある。
ソリッドステートメモリデバイスは、ソリッドステートフラッシュメモリ上に永続的データを格納するメモリデバイスである場合がある。ソリッドステートメモリデバイスは、関与する可動部品が存在しないため、用語の従来の意味においては、ハードドライブではない。そうではなく、ソリッドステートメモリデバイスは、磁気または光学媒体ではなく、集積回路(IC)を使用して体系化された半導体メモリのアレイを有する。
この配設は多くの利点を有する。ソリッドステートデバイスへおよびソリッドステートデバイスからのデータ伝送は、電気機械的なディスクドライブよりも速い。シーク時間およびレイテンシも短縮される場合がある。ユーザは、はるかに速いブート時間および/またはオペレーティングシステムの機能も享受する。概して、ソリッドステートデバイスは、耐久性にも優れ、騒音も少なく、破損したり、スピンアップまたはスピンダウンしたりする可動部品を含まない。しかしながら、ソリッドステートデバイスは、性能が異常になる場合があるまでの消去/書き込みサイクルの有限回数が存在するため、設定された平均余命を有する。
このため、定義されたデータの組は、例えば、定義されたデータの組がそれまで記憶されていたメモリセル上の「ウェア」に起因して、定期的に再書き込みされる場合がある。本開示において説明される多様な実施形態において、定義されたデータの組は、そのようなデータのアクセスの前およびアクセス中に、ならびに/またはそのようなデータの記憶後に定義されるような、適切なシステム性能を可能にするための命令を含むことができる、「重要なデータ」の完全な集積パッケージを含むことができる。いくつかの実施形態において、データの「組」は、そのようなデータのアクセス中および/またはアクセス後であるが、定義されたデータの組として完全な統合パッケージを記憶する前に、集積されるようになるデータの複数のパッケージとして定義することができる。
さらに、技術の進歩は、定義されたデータのそれまでに記憶された(例えば、書き込まれた)組の置換を望ましくする場合がある。本開示において、これらの動作の各々は、定義されたデータの組を「更新する」と称することができる。特に重要なデータに対しては(例えば、その実質的にエラーのない読み出し時にシステムの操作性が依存するブートイメージおよび/またはオペレーティングシステムに対しては)、具体的には、新しくアクセスされたデータが、適切な操作性のためにホスト(例えば、ホストデバイスおよび/またはホストデバイスによって管理されるシステム)によって依存されるデータを置換する時、定義されたデータの組をソリッドステートメモリに記憶する前に、そのようなデータの精度を検証することが重要である可能性がある。
ソリッドステートデバイスの中の既存のソリッドステートメモリ(例えば、NORおよび/またはNANDフラッシュメモリ)は、例えば、一連の固定長の論理ブロックとしてホストデータ(例えば、ファイル)を記憶する場合がある。ホストは、ファイルを作成するために、フラッシュメモリデバイス内のどの論理ブロックが各ファイルに関連するのかを特定するだけでなく、それらの論理ブロックの順序付けも行うテーブルを保持する場合がある。ホストによるメモリデバイスへの読み出しおよび書き込みアクセスは、論理ブロック番号を使用して実施される場合がある。しかしながら、フラッシュデバイスは、読み出しおよび書き込みが基礎ファイルデータ自体にどのように関連するかを理解するための十分な情報を欠く場合がある。
これにもかかわらず、メモリシステムは、多種のホストデータに対して十分良好に機能する場合があるが、いくつかのデータタイプに対しては特定の不具合を有する場合がある。一例は、コード命令の実質的にエラーのない読み出しに依存する機能を有するシステムの操作性にとって重要なプロセッサブート命令および/またはオペレーティングシステム命令等のシステムデータである。この種類のデータの破壊は、そのようなシステムの操作不能をもたらす場合がある。本開示において、向上した信頼性および性能に加えて、さらに広範囲のサービスを提供する、代替のメモリメカニズムを説明する。本開示に説明されるように、代替のメモリメカニズムは、ソリッドステートデバイス内のオブジェクト指向メモリ、および/または例えば、オブジェクト指向メモリを模倣するようにエンコードされた1組の規則によって管理されるブロック指向メモリを利用することができる。
一連の論理ブロックとして(例えば、ブロック指向様式で)ファイルを処理するのではなく、ファイルの中の定義されたデータの組は、代わりに、ソリッドステートメモリデバイスによって単一オブジェクト(例えば、完全集積パッケージ)として処理(例えば、アクセスおよび/または記憶)することができる。定義されたデータの組を単一オブジェクトとして処理することによって、ソリッドステートメモリデバイス(例えば、いくつかの不揮発性NORおよび/またはNANDフラッシュメモリアレイを有する)が、書き込みおよび読み出しプロセス中に、信頼性および性能を高めることができる、或る動作を実施することを可能にすることができる。特定のシステム機能の操作性のために実質的にエラーのない読み出しが要求されるデータ上で実施することができる、そのような動作の例としては、本明細書に説明される数ある他の動作の中でも、書き込みプロセスが実施されるまたは完了と見なされる前にある種のデータ整合性チェックが実施される読み出し検証、1つのコピーによる読み出し失敗の場合に、システムがコピーの別の1つの読み出しに依存することができるように、そのようなデータの複数のコピーが格納されること、および不良な読み出しまたは再書き込みの場合に、最新の既知の良好なデータの読み出しをシステムに指示できるように、以前の既知の良好なバージョンのデータが保持されること、を挙げることができる。
本開示に説明されるように、ソリッドステートデバイス内のオブジェクト指向データ構造は、前述の動作を提供および/または提供する際に支援することができるが、従来のブロック指向メモリデバイスは、そのような動作が不可能な場合がある。本開示に説明されるように、ソリッドステートデバイスは、数ある他の構成要素の中でも、いくつかのソリッドステートメモリアレイ、およびソリッドステートデバイスコントローラを含むことができる。コントローラは、ソフトウェア、ファームウェア、および/またはハードウェア(例えば、特定用途向け回路回路(ASIC)等のロジック)として記憶される命令(例えば、必要に応じてプロセッサによって実行される)を使用して、ソリッドステートデバイスを管理(例えば、命令、制御、規制等)する制御構成要素とすることができる。本開示によって、当業者は、本明細書では「オブジェクト指向ソリッドステートデバイス」とも称される、ソリッドステートデバイス内のオブジェクト指向メモリのための実施形態を用いて、数ある中でも、これらの動作を実践することが可能になる。
ソリッドステートデバイス内のオブジェクト指向メモリとして書き込む時、ソリッドステートデバイスは、ブロック指向デバイス様式でデータストリームにアクセスすることができる。しかしながら、オブジェクト指向メモリデバイスは、データストリームが単一の定義されたエンティティ(すなわち、単一オブジェクトを定義する、定義されたデータの組)に関連するという理解をもってデータストリームにアクセスすることができるため、例えば、ホストに対する書き込み完了確認応答は、1つ以上のデータ保護動作が順調に完了するまで、遅延することができる。多様なデータ保護動作の実施は、オブジェクト指向メモリ技法の使用を通じて容易にすることができる。これらのデータ保護動作のうちのいくつかを以下に説明する。
ソリッドステートデバイスは、ホストによって読み出されるオブジェクトデータの信頼性を向上するように、オブジェクトに関連するプロパティを使用することができる。ソリッドステートデバイスは、ホストによって読み出される際に媒体エラーがオブジェクトを破壊することになる確率を削減するために、複数のコピーを使用することができる。以下に詳細を説明するように、そのような確率の削減を可能にするために、多様な動作を個別にまたは組み合わせて実施することができる。例えば、フェイルオーバー動作は、エラー検出が読み出しおよび/または書き込みの失敗を示す場合にオブジェクトの別のコピーを使用することができる。いくつかの実施形態において、コピーのうちの少なくとも1つでのエラー検出後に、オブジェクトの複数のコピー上でビット単位の比較を実施することができる。比較で発見された不一致が、結果的に複数のコピーの過半数になる可能性があり、またはソリッドステートデバイスが最新の既知の良好なオブジェクトに戻る可能性がある。別のレベルの検証は、オブジェクト全体の完全な巡回冗長検査(CRC)とすることができる。
オブジェクト指向のソリッドステートデバイスは、オブジェクト全体のそれまでに記憶されたバージョンをホストに指示することができる。例えば、オブジェクト指向のソリッドステートデバイスの制御構成要素は、特定の期間(例えば、状況に応じて、予め設定された期間または決定された「オンザフライ」とすることができる)内にオブジェクトへの複数の読み出し要求を検出し、そのような複数の要求をデバイスが再ブートループで得られたインジケータとして認識することができる。そのような認識によって、ソリッドステートデバイスは、結果的にオブジェクトの最新の既知の良好なバージョンをホストに提供することができる。
オブジェクト指向のソリッドステートデバイスは、多様な実施形態において、ホストのブートを早めるためのサービスを提供することができる。これらのサービスの中でも、ソリッドステートデバイスは、数あるイベントの中でも、電源投入時のリセットおよび/または信号の遷移等の特定のイベントに基づいて読み出し動作を自動的に開始することができる。読み出されたデータは、次いで、例えば、ホストおよび/またはホストを含むシステムをブートするために使用することができる場合、ホストに自動的に送信することができ、あるいは、データがその時点でホストおよび/またはホストを含むシステムによって必要とされない場合、データは無視することができる。
ブロック指向のメモリデバイスは概して、ファイル内の論理ブロックの数、ならびに/あるいはブロックが読み出しおよび/または書き込みされる順序を認識するための能力を有さないため、ブロック指向のメモリデバイスは、本明細書に説明される範囲の動作および/またはサービスを実施することが不可能な場合がある。ブロック指向のメモリデバイスは概して、読み出し/書き込みコマンドにのみ応答する。
コンピューティングデバイスが所望のタスクを達成する前に、適当な命令の組を受信する場合がある。例えば、デバイスのプロセッサによって実行されることによって、これらの命令は、デバイスの動作を指示する。これらの命令は、メモリに記憶することができる。命令は、他の命令を呼び出すことができる。コンピューティングデバイスおよび/またはシステム(例えば、サーバ、ルータ、デスクトップコンピュータ、ラップトップ、モバイルデバイスまたはシステム、ならびにプロセッサロジックおよびメモリを有する他のデバイス)は、多様な機能または役割を実施することを可能にするように、オペレーティングシステム層およびアプリケーション層を含むことができる。オペレーティングシステム層は、基礎レベルの制御および操作性を提供する、「カーネル」(すなわち、マスタ制御プログラム)を含む場合がある。カーネルは、例えばホストに対して、数ある中でも、タスク管理、デバイス管理、およびデータ管理を提供する場合がある。カーネルは、コンピューティングデバイス上で稼動するアプリケーションプログラムの基準を設定する場合があり、アプリケーションプログラムによって使用されるリソースを制御する場合がある。アプリケーション層は、オペレーティングシステム層の上に位置し、ユーザによってアクセス可能なプログラム(すなわち、実行可能な命令)を含む場合がある。
ブートイメージおよび/またはオペレーティングシステムの命令は、前述の機能の開始を可能にし、したがって呼び出された重要なデータである可能性がある、コード化された情報(例えば、定義されたビットの組)を含有する場合がある。そのような重要なデータにオブジェクト指向様式でアクセスおよび/または記憶することは、例えば、ホストによって、制御されるシステムの操作性を維持するために、重要なデータの整合性を保存する上で支援するはずである。
本開示に説明されるように、重要なデータを保護することを実行する命令が提供される。新しい定義されたデータの組が、オペレーティングシステムのインストールまたは更新に関連するかどうかに関わらず、少なくとも1回記憶された際に順調にブートした後、新しい定義されたデータの組が「最新インストール」として自動的に保存されるような命令を実行する、1つ以上の実施形態が提供される。最新インストール構成は、「既知の良好な」インストールとなり、例えば、ユーザがブート不可能なカーネル構成を不注意に作成し、バックアップを作成していなかった時に、問題を回避することを助けることになる。1つ以上の定義された重要なデータの組のいくつかのコピーを作成するための命令を実行する、1つ以上の実施形態が提供される。コピーに対してエラー修正動作を適用するために実行することができる命令を実行する、1つ以上の実施形態が提供される。これらおよび他の実施形態は、本開示を一読後に当業者によって理解されるであろう。
図1は、本開示の1つ以上の実施形態に従う、システムのブロック図である。以下の発明を実施するための形態では、本明細書の一部を形成し、その中で、本開示の1つ以上の実施形態がどのように実践されてもよいかを例示として示す、添付の図面を参照する。これらの実施形態は、当業者が本開示の実施形態を実践することを可能にするように十分な詳細が説明され、他の実施形態が利用される場合があること、および本開示の範囲を逸脱することなく、プロセス変更、電気的変更、および/または構造的変更が行われる場合があることが理解される。本明細書に使用される場合、指示子「N」、「M」、「R」および「S」は、特に図面の参照番号に関して、そのように指定される特定の特徴のうちのいくつかを、本開示の1つ以上の実施形態と共に含むことができることを示す。
本明細書中の図面は、上位の桁(単数または複数)が、図面番号に対応し、残りの桁(複数)は、図面の中の要素または構成要素を識別するという、番号規則に従う。異なる図面間の同様な要素または構成要素は、同様な数字の使用によって識別される場合がある。例えば、130は、図1の要素「30」を参照する場合があり、類似要素が、図2の230として参照される場合がある。理解されるように、本明細書の多様な実施形態に示される要素は、本開示のいくつかの追加の実施形態を提供するように、追加、交換、および/または削除することができる。加えて、理解されるように、図面の中に提供される要素の比率および相対尺度は、本発明の実施形態を図示することを意図しており、限定の意味で解釈されてはならない。
システムは、ホストと、ホストメモリと、ホストに対して外部のいくつかのメモリデバイスとを含む場合がある。ホストは、いくつかのプロセッサと、ホストコントローラと、ホストコントローラおよびいくつかの内部メモリデバイスに関連するホストコントローラメモリとを有する場合がある。ホストは、ホストコントローラを介してメモリデバイスと相互作用することによって、内部および/または外部のメモリデバイスを使用する場合がある。ホストコントローラは、メモリデバイスからのデータをホストに読み出す、またはホストからのデータをメモリデバイスに記憶する等、メモリデバイス上で動作を実施するために、メモリデバイスと通信する場合がある。データの読み出しおよび記憶を管理するコマンドは、ホストによって構築される場合がある。ホストコントローラは、コマンドのメモリデバイス能力を制御するハードウェアを有する場合がある。そのような場合、ホストコントローラがメモリデバイス能力を定義するハードウェアを有する時、ホストコントローラは、ホストコントローラ上に存在するハードウェアに関連する能力を有するコマンドを構築することを制限される場合がある。
1つ以上の実施形態において、図1に図示されるシステム100は、例であって限定ではなく、数ある他の例の中でも、パーソナルコンピュータおよび/またはラップトップコンピュータ、モバイル電話、デジタルカメラ、デジタル記録および再生デバイス、PDA、メモリカードリーダ、ならびにインターフェースハブ、およびUSBのための、機能を有効にするように利用することができる。
システム100は、ホスト105を含むことができ、ホスト105は、ホストコントローラ112を介していくつかの他の構成要素と通信する、少なくとも1つのホストプロセッサ114を含む。他のホスト構成要素は、ホストメモリコントローラ122を介してアクセスされるホストメモリ118を含む場合がある。追加の構成要素は、ホストネットワークインターフェース110、およびユーザインターフェース125を含む場合がある。
多様な実施形態において、ホストネットワークインターフェース110は、ネットワーク102との入力および出力デバイスの相互作用を可能にするように、外部ネットワーク102とアクセスすること(例えば、それと通信すること)を可能にすることができる。例であって制限ではなく、そのような外部のネットワークとしては、数ある中でも、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、インターネット、および/またはワイヤレスネットワークを挙げることができる。ホストネットワークインターフェース110は、ネットワーク102を介して、他のデバイスおよび/またはシステム内の対応するインターフェースデバイスに結合される場合がある。同様のものが当業者によって既知であり、かつ理解されるように、ネットワーク102はそれ自体、多数の相互接続されたシステムおよび通信リンクからなる場合がある。本明細書に使用される場合、通信リンクは、ハードワイヤリンク、光リンク、衛星または他のワイヤレス通信リンク、波動伝播リンク、または情報の通信のための任意の他のメカニズムである場合がある。
ユーザインターフェース125は、多様な実施形態において、キーボード、ポインティングデバイス(例えば、マウス、トラックボール、タッチパッド、またはグラフィックスタブレット)、スキャナ、ディスプレイに組み込まれたタッチスクリーン、音声認識システムのようなオーディオ入力デバイス、マイクロフォン、および/または他の種類の入力デバイス(図示せず)を含んでもよい、いくつかのデバイスによる入力を可能にすることができる。概して、「入力デバイス」と言う用語の使用は、図1に図示されるシステム100へ情報を入力するための全ての可能な種類のデバイスおよび方式を含むことを意図する。
システム100のホスト105は、多様な実施形態において、ホスト105に周辺メモリを提供するソリッドステートデバイス150に動作可能に結合することができる。ソリッドステートデバイスは、多様な実施形態において、前述のように、ネットワーク102への入力および/または出力を可能にするように、外部ネットワーク102との通信(例えば、アクセス)を可能にすることができる、ソリッドステートデバイスネットワークインターフェース156を含むことができる。
ソリッドステートデバイスネットワークインターフェース156は、多様な実施形態において、ソリッドステートデバイスコントローラ166に動作可能に結合することができる。ソリッドステートデバイスコントローラ166は、多様な実施形態において、ソリッドステートデバイスネットワークインターフェース156へのデータ/情報の入力および/またはソリッドステートデバイスネットワークインターフェース156からのデータ/情報の出力を、処理および/または管理することができる。ソリッドステートデバイスコントローラ166によってデータ/情報を管理することは、ソリッドステートデバイスコントローラ166に埋め込まれた、あるいは別法により関連付けられたプロセッサ172によって実行される場合がある。ソリッドステートデバイスコントローラ166は、多様な実施形態において、データ/情報を、ホスト105に提供し、かつ/またはホスト105から受信(例えば、交換)するために、ホスト105のホストコントローラ112に動作可能に結合することができる。例えば、データ/情報(例えば、コンピュータ可読バイナリコードでコード化されるビット)は、そのようなデータ/情報の実質的にエラーのない読み出し時において、ホスト105によって制御されるシステムの操作性がそれに依存する、データ/情報とすることができる。例であって制限ではなく、データ/情報は、ホストおよび/またはホストによって管理されるシステム内のオペレーティングシステムのブートに必要な定義されたデータの組(例えば、ブートイメージ)および/または機能の開始に必要な定義されたデータの組とすることができる。
ソリッドステートデバイス150のソリッドステートデバイスコントローラ166は、多様な実施形態において、いくつかのソリッドステートメモリアレイ186に動作可能に結合することができる。ソリッドステートメモリアレイ186は、図2に関してさらに詳細を説明する。簡潔には、1つ以上のソリッドステートメモリアレイ186は、多様な実施形態において、定義されたデータの組の実質的にエラーのない読み出し時において、ホスト105によって制御されるシステムの操作性がそれに依存する、例えば、単一オブジェクト192として定義されたデータの組を記憶するため(例えば、メモリアレイのメモリセル内のそのようなデータの「書き込み」後)に利用することができる。
本開示に説明するように、定義されたデータの組は、1つ以上の単一オブジェクト192としてソリッドステートメモリアレイ186に記憶されるように、集合的な全体として処理することができ、ホスト105によって管理(例えば、指示、制御、規制等)されるシステムのブートおよび/またはオペレーティングシステム機能を高い信頼性で可能にするように、ソリッドステートデバイスコントローラ166を通じてホスト105にそのように提供することができる。本開示で説明されるように、ソリッドステートデバイス150の構成要素156、166、172、186、192は、多様な実施形態において、そのような単一オブジェクトをオブジェクト指向様式で処理することによって、「重要なデータ」として称される場合がある、そのような定義されたデータの組(すなわち、単一オブジェクト)の信頼性の高い更新を可能にすることができる。
図2は、本開示の1つ以上の実施形態に従う、メモリアレイの一部の図である。図2には示されていないが、当業者は、ソリッドステートメモリアレイ230が、その動作に関連する多様な周辺回路と共に、特定の半導体ダイ上に位置することができることを理解するであろう。
図2に示されるように、ソリッドステートメモリアレイ230は、メモリセルのいくつかの物理ブロック240−0(ブロック0)、240−1(ブロック1)、・・・、240−M(ブロックM)を有する。インジケータ「M」は、アレイ230がいくつかの物理ブロックを含むことができることを示すために使用される。メモリセルは、単一レベルのセルおよび/または複数レベルのセルとすることができる。本開示の多様な実施形態において、特定の物理メモリブロックは、単一レベルのメモリセル(すなわち、シングルビットのメモリセル)のみを含むことができるか、または物理メモリブロックは、単一ビットセルとしてのみ書き込まれる、複数レベルのメモリセルを含むことができる。例として、アレイ230の中の物理ブロックの数は、128ブロック、512ブロック、または1,024ブロックであってもよいが、実施形態は、128の特定の倍数、またはアレイ230の中の物理ブロックの任意の特定の数に限定されない。
さらに、実施形態は、いくつかのアレイの全てで使用される特定の種類のメモリに限定されない。すなわち、異なるメモリアレイは、多様な実施形態において、当業者によって現在既知の任意の種類のメモリブロック(例えば、不揮発性、揮発性等の多様な種類のメモリ)を使用することができる。しかしながら、本開示の目的のために、いくつかのメモリアレイは、当業者によって理解されるように、ソリッドステートメモリアレイとして構成される、少なくとも1つのアレイを含有する。図2に示される実施形態において、メモリアレイ230は、例えば、不揮発性NANDフラッシュメモリアレイとすることができる。いくつかの実施形態において、例であって限定ではなく、メモリアレイ230は、不揮発性NORフラッシュメモリアレイアーキテクチャを有することができる。
図2に示される例において、各物理ブロック240−0、240−1、・・・、240−Mは、ユニットとして一緒に消去することができるメモリセル(例えば、各物理ブロックの中のセルは、実質的に同時の様式で消去することができる)を含む。例えば、各物理ブロックの中のセルは、単一の動作で一緒に消去することができる。各物理ブロック、例えば、240−0、240−1、・・・、240−Mは、アクセスライン(例えば、ワードライン)に結合されるメモリセルのいくつかの物理列、例えば、250−0、250−1、・・・、250−Rを含有する。インジケータ「R」は、物理ブロック、例えば、240−0、240−1、・・・、240−Mがいくつかの列を含むことができることを示すために使用される。いくつかの実施形態において、各物理ブロックの中の列(例えば、ワードライン)の数は、32とすることができるが、実施形態は、物理ブロックあたりの列250−0、250−1、・・・、250−Rの特定の数に限定されない。
当業者が理解するように、各列250−0、250−1、・・・、250−Rは、データの1つ以上のページ(例えば、ビット)を記憶することができる。ページとは、プログラミングおよび/または読み出しの単位(例えば、一緒にまたはメモリセルの機能グループとしてプログラムされ、かつ/または読み出されるいくつかのセル)を言う。図2に示される実施形態において、各列250−0、250−1、・・・、250−Rは、1ページのデータを記憶する。しかしながら、本開示の実施形態はそのように限定されない。例えば、本開示のいくつかの実施形態において、各列は、複数ページのデータを記憶することができる。例えば、列内の各セルは、ページの上半分のデータに対して1ビットを寄与することができ、ページの下半分のデータに対して1ビットを寄与することができる。1つ以上の実施形態において、メモリアレイは、メモリセルの複数の物理ブロックを含むことができ、各物理ブロックは、複数のページに体系化することができる。本開示に説明されるように、少なくとも1つのアレイおよび/またはそのようなアレイの中の複数のブロックは、1ページのデータだけを記憶できる、または1ページのデータだけを記憶するような様式で利用される、メモリセルを含む。
本開示の1つ以上の実施形態において、図2に示されるように、列250−0等の1列は、いくつかの物理セクタ252−0、252−1、・・・、252−Sに応じて(例えば、書き込み動作後に)データを記憶することができる。インジケータ「S」は、例えば、250−0、250−1、・・・、250−R等の1列がいくつかの物理セクタを含むことができることを示すために使用される。各物理セクタ252−0、252−1、・・・、252−Sは、1つの論理セクタに対応するデータを記憶することができ、エラー修正コード(ECC)情報、および論理ブロックアドレス(LBA)情報等のオーバーヘッド情報、ならびに定義されたデータの組(例えば、本開示に説明されるような重要なデータ)を含むことができる。当業者が理解するであろうように、論理ブロックアドレッシングは、情報の論理セクタを識別するために、ホストによってしばしば使用されるスキーマである。例として、1つの論理セクタのデータは、いくつかのバイトのデータ(例えば、256バイト、512バイト、または1,024バイト)とすることができる。実施形態はこれらの例に限定されない。
物理ブロック240−0、240−1、・・・、240−M、列250−0、250−1、・・・、250−R、セクタ252−0、252−1、・・・、252−Sおよびページに対する他の構成が可能であることに注意されたい。例えば、物理ブロック240−0、240−1、・・・、240−Mの列250−0、250−1、・・・、250−Rは各々、例えば、おおよそ512バイトのデータを含むことができる、単一の論理セクタに対応するデータを記憶することができる。
本開示に提供されるその記述に一致して、ソリッドステートデバイスは、多様な実施形態において、ソリッドステートデバイス内のいくつかのソリッドステートメモリアレイに結合される制御構成要素を含むことができ、各アレイは、メモリセルの複数の物理ブロックを有する。加えて、多様な実施形態において、各アレイは、単一オブジェクトとして定義されたデータの組にアクセスし、単一オブジェクトとしていくつかのアレイに定義されたデータの組を記憶するように構成される、ソリッドステートデバイスの制御構成要素によってフォーマットすることができる。
本明細書に使用される場合、ソリッドステートの制御構成要素が1つの動作を実施することができると記載される時、それは「〜するように構成される制御構成要素」または「プロセッサによって実行するように構成される制御構成要素」の短縮代替として理解されるであろう。
いくつかの実施形態において、ソリッドステートデバイスの制御構成要素は、単一オブジェクトのフォーマットを管理する関連プロセッサを含むことができる。フォーマットは、いくつかのソリッドステートメモリアレイ内のメモリセルの複数の物理ブロックのうちのどれに定義されたデータの組が記憶されるかを決定することによって、実施することができる。例えば、ソリッドステートデバイスの制御構成要素は、多様な実施形態において、メモリセルの物理ブロックのいくつかのメモリアレイの特定の(例えば、状況に応じて、事前に決定または「オンザフライ」で決定できる)パーティションに、定義されたデータの組を記憶することができる。特定のパーティションは、本開示に説明されるように、いくつかの因子に基づいて決定することができる。そのような因子として、例であって制限ではなく、数ある中でも、ウェア(例えば、特定のメモリアレイ/ブロック/セルが経験した書き込み/消去サイクルの回数)、特定のブロック/アレイのセルが単一レベルまたは複数レベルのメモリセルかどうか、および/またはブロック/アレイの中のメモリセルの種類を挙げることができる。
例であって制限ではなく、メモリセルの複数の物理ブロックは、不揮発性NANDまたは不揮発性NORアーキテクチャに配設することができる。いくつかの実施形態において、ソリッドステートデバイスの制御構成要素は、メモリセルのいくつかの隣接する物理ブロックに先頭から終端まで定義されたデータの組を記憶することができる。例えば、メモリセルの隣接する物理ブロックは、メモリセルの物理ブロックのいくつかのメモリアレイの特定のパーティションによって定義することができる。いくつかの実施形態において、定義されたデータの組は、本明細書に説明されるように、ブートイメージとすることができる。いくつかの実施形態において、定義されたデータの組は、本明細書に説明されるように、いくつかのオペレーティングシステムをインストールおよび/または起動するための命令にすることができる。定義されたデータの組の実施形態は、そのように限定されない。
ソリッドステートデバイスの制御構成要素は、いくつかの実施形態において、原子動作の完了後に、定義されたデータの組にアクセスし、定義されたデータの組をいくつかのアレイに記憶することができる。当業者によって理解されるように、動作の組は、2つの条件を満たす時に原子的であると考えることができる。第1に、動作の組の全体が完了するまで、他のプロセスは、検出されずに行われている変更について知ることができない。第2に、動作のうちのいずれかが成功しない場合、動作の組の全体が中断され、システムの状態は、動作の一切が開始される前の状態に復元される。本開示において、定義されたデータの組に原子動作様式でアクセスすることは、例えば、そうでない場合に、定義されたデータの組の部分的更新および/または部分的インストールになる場合がある、アクセスの途中終了および/または中断を防止することができる。原子動作のためでない場合、重要なデータの部分的書き込みに起因して、いくつかの良くない結果が発生する可能性がある。加えて、ソリッドステートデバイスの制御構成要素は、いくつかの実施形態において、原子動作の完了まで、アレイ内のデータの最新の既知の良好なコピーにポインタを割り当てることができ、ポインタは、データの読み出しが最新の既知の良好なコピー上で実施されるように指示する。最新の既知の良好なオブジェクトへのポインタを提供し、保持することができる。すなわち、書き込みプロセスが順調に完了されるまで、オブジェクトのあらゆる読み出し試行を、最新の既知の良好なオブジェクトへのポインタによって、指示することができる。
加えて、ソリッドステートデバイスは、多様な実施形態において、ソリッドステートデバイス内のいくつかのソリッドステートメモリアレイに結合される制御構成要素を含むことができ、各アレイは、メモリセルの複数の物理ブロックを有する。各アレイは、多様な実施形態において、定義されたデータの組の1つ以上の反復がアクセスされる場合、単一オブジェクトとして定義されたデータの組にアクセスするように構成される、ソリッドステートデバイスの制御構成要素によってフォーマットすることができ、1つ以上の反復の複数のコピーを単一オブジェクトとしていくつかのアレイの特定の位置に記憶することができる。定義されたデータの組の1つ以上の反復にアクセスすることは、本開示に説明されるように、例であって限定ではなく、そのような命令のネットワークプロバイダからおよび/またはホストから、プログラム命令の1つ以上のコピーをダウンロードすることを含むことができる。
ソリッドステートデバイスの制御構成要素は、いくつかの実施形態において、いくつかのアレイのうちの物理的に異なるアレイに複数のコピーの各々を記憶することができる。物理的に異なるアレイに記憶することによって、一定のアレイに限定された障害が、物理的に異なるアレイに記憶された重要なデータを破壊することが防止される場合がある。しかしながら、いくつかの実施形態において、数ある他の考慮事項の中でも、スペースおよび/またはコストの削減のために可能性として、アレイの数は1つとすることができる。前述のように、ソリッドステートデバイスの制御構成要素は、いくつかの実施形態において、メモリセルのいくつかの隣接する物理ブロックで先頭から終端まで単一オブジェクトを読み出すことができる。
書き込みオブジェクトの複数のコピーを記憶することができる(例えば、同時または順次)。フラッシュメモリデバイスの場合、コピーは、全体的な信頼性に寄与するように、物理的に独立したメモリアレイに記憶することができる。多様な実施形態において、オブジェクトは、多様なアレイのメモリセル内部および/またはそれらの間で最も信頼性が高いと判定されたメモリ素子に記憶することができる。例えば、データは、2つ以上ではなく、メモリセルあたり1ビットを現在記憶しているおよび/または記憶することが可能である、素子に記憶することができる。
ソリッドステートデバイスの制御構成要素は、いくつかの実施形態において、他の物理ブロックよりも信頼性が高いと判定されたアレイの物理ブロックに複数のコピーのうちの少なくとも1つを記憶することができる。例えば、より信頼性が高いと判定されたアレイの物理ブロックは、単一レベルのメモリセルを有する物理ブロックとすることができる。そのような単一レベルのメモリセルは、1ビットのデータだけを保持可能にできるか、または、2ビット以上のデータを保持することから制約された複数レベルのメモリセルとすることができる。いずれの場合も、1ビットだけのデータを有するセルは、セルの読み出しに影響を与える電荷レベルに顕著な遷移の確率が少ないことから、信頼性がより高い可能性がある。いくつかの実施形態において、信頼性がより高いと判定されたアレイの物理ブロックは、他の物理ブロックのメモリセルよりも少ない回数再使用されているメモリセルを有する物理ブロック(例えば、より少ない書き込み/消去サイクルを経験しているメモリブロック/セル)とすることができる。アレイの物理ブロックのより高い信頼性を判定する様式は、ここで提供される例に限定されない。
アクセスされたデータの1つ以上の反復がアクセスされた後、いくつかの実施形態において、ソリッドステートデバイスの制御構成要素は、単一オブジェクトをアレイに記憶する前に、1つ以上のデータ反復の複数のコピーを独立的に検証することができる。独立的に検証することは、本明細書に説明される動作として実施することができる。このように、ソリッドステートデバイスの制御構成要素は、いくつかの実施形態において、単一オブジェクトをアレイに記憶する前に発見されたいくつかのエラーを読み出し、独立的に修正することができる。データ反復の検証を完了後、ソリッドステートデバイスの制御構成要素は、以前の最新の既知の良好なコピーを置換するように、新しい最新の既知の良好なコピーとして、1つ以上のデータ反復の特定のコピーにポインタを割り当てることができる。ソリッドステートデバイスの制御要素はまた、ホストによるいずれの読み出しも、新しい最新の既知の良好なコピーへのポインタによって指示されるように、ホストに書き込み完了肯定応答を送信することもできる。
オブジェクト全体が受信された後、コピーの各々は独立的に検証することができる。検証は、少なくとも、オブジェクト全体を読み出し、エラーを修正することを含むことができる。さらに、オブジェクトをソリッドステートメモリアレイ内に記憶することが可能になる前に、特定の数よりも少ない読み出しエラーが、それによって検出された閾値を実装することができる。
加えて、終端から終端までのデータ整合性チェック(例えば、巡回冗長検査(CRC)を計算することができる。いくつかの実施形態においては、CRCは、ソリッドステートメモリデバイスへの伝送の前に、ホストによって組み込むことができる。簡潔には、CRC動作は、転送動作後にデータ整合性を検証するために、数学的演算を使用する。CRCは、入力として、任意の長さのデータストリームを使用し、出力として、或るスペース、一般的には32ビット整数の値を生成する1種の関数である。CRCという用語は、関数または関数の出力を表す。CRCは、伝送または記憶の間のデータの偶発的な改ざんを検出するためのチェックサムとして使用することができる。CRCは、バイナリハードウェアに実装するのが簡単で、数学的に分析するのが容易で、例えば、伝送チャンネルのノイズによって生じる、一般的なエラーを検出することに特に優れているため、使用されることが多い。
本開示に提供されるその記述と一致して、システムは、多様な実施形態において、システムを管理するために、ホストに動作可能に結合されるように構成される、ホスト制御構成要素を含むことができる。そのようなホストは、例であって制限ではなく、本明細書に説明されるように、携帯用または別途、コンピューティングデバイスおよびシステムの意図される操作性を維持することを含むことができる。ホスト制御構成要素は、複数のソリッドステート物理メモリブロックのメモリセルを有するソリッドステートデバイスの制御構成要素に動作可能に結合されるように構成することができる。加えて、ソリッドステートデバイスの制御構成要素は、後続の書き込みおよび読み出し動作中、単一オブジェクトとして定義されたデータの組にアクセスし、単一オブジェクトとして定義されたデータの組を管理するように構成することができる。
ソリッドステートデバイスの制御構成要素は、いくつかの実施形態において、単一オブジェクトの複数のコピーを記憶することができ、複数のコピーの各々は、物理的に別個のメモリブロックに書き込むための規則の組によって判定されるように、複数のメモリブロックに別個に記憶される。例えば、ソリッドステートデバイスの制御構成要素は、1組の規則に従って、単一オブジェクトの複数のコピーをメモリセルの複数の物理メモリブロックの特定のパーティションに記憶することができる。このように、ソリッドステートデバイスの制御構成要素は、いくつかの実施形態において、端から端までのデータ整合性のために、複数の物理メモリブロックのうちのいくつかで隣接した特定のパーティションに単一オブジェクトの複数のコピーの各々を記憶することができる。
加えて、または代替として、ソリッドステートデバイスの制御構成要素は、いくつかの実施形態において、論理ブロックアドレッシングによって判定されるように、複数の物理メモリブロックに書き込むことができる。このように、ソリッドステートデバイスの制御構成要素は、いくつかの実施形態において、特定の論理ブロックアドレスに記憶することができる。
前述のように、ブロック指向のメモリデバイスは概して、ファイルの中の論理ブロックの数、ならびに/またはブロックが読み出しおよび/もしくは書き込みされる順序を認識するための能力を有さないため、ブロック指向のメモリデバイスは、オブジェクトの指向メモリシステムに関して本明細書に説明される動作および/またはサービスの範囲を実施することが可能ではない場合がある。ブロック指向のメモリデバイスは概して、読み出し/書き込みコマンドにのみ応答する。それにもかかわらず、本開示に説明されるように、ホストおよびソリッドステートデバイスの両方が、特定の論理ブロックアドレスに対するブロックの読み出しおよび書き込みに関連する規則の組に従う時、オブジェクト指向のソリッドステートデバイスに関して本明細書に説明されるいくつかの動作および/またはサービスをエミュレートすることができる。そのようなエミュレーションは、ブロック指向のソリッドステートデバイスが所定の様式でデータを処理する時に実現することができる。
例えば、ブロック指向のデバイスは、データのために予備として保留される一連のブロック番号を定義することができる。データは、特定のシリーズに特定の順序で記憶することができ、ホストは、ソリッドステートデバイスに対するインジケータをデータの最新のブロックに提供する。ソリッドステートデバイスは、データの複数のコピーを管理することができるとともに、必要な時にデータの最新の既知の良好なバージョンへの読み出しアクセスを提供することができる。そのようにデータをブロック指向の配設に記憶することによって、定義されたデータの組の読み出しを、オブジェクト指向のソリッドステートデバイスと同様に先頭から終端まで連続的に実施することが可能になる。
したがって、本開示に説明されるようなシステムは、多様な実施形態において、本明細書に説明されるように、システムを管理するために、ホストに動作可能に結合されるように構成される、ホスト制御構成要素を含むことができる。ホスト制御構成要素は、多様な実施形態において、複数のソリッドステート物理メモリブロックのメモリセルを有するソリッドステートデバイスの制御構成要素に動作可能に結合されるように構成することができる。ソリッドステートデバイスの制御構成要素は、定義されたデータの組を特定の論理ブロックアドレスに記憶するように規則の組を、ホスト制御構成要素およびソリッドステートデバイス制御構成要素が従う時、後続の書き込みおよび読み出し動作中、ブロック指向様式で定義されたデータの組にアクセスし、かつブロック指向様式で定義されたデータの組を処理するように構成することができる。
ホスト制御構成要素およびソリッドステートデバイス制御構成要素が従う規則の組は、多様な実施形態において、複数のソリッドステートデバイスの物理メモリブロックの別個のパーティションされていない物理ブロックに定義された(例えば、ブロック指向のメモリと一致する)データの組の書き込みを可能にする。しかしながら、ホスト制御構成要素およびソリッドステートデバイス制御構成要素が従う規則の組は、多様な実施形態において、定義されたデータの組を記憶するように、特定の一連の物理メモリブロック番号を含むことができる。そのような規則は、定義されたデータの組の書き込みが、特定の順序で実施されることを指示することができる。そのような規則はまた、ホスト制御構成要素が、定義されたデータの組の最新のブロックを特定するように、ソリッドステートデバイス制御構成要素にインジケータを提供することを指示することもできる。そのような規則のうちの1つ以上に従うことによって、ソリッドステートデバイス制御構成要素は、定義されたデータの組がオブジェクト指向様式で記憶されているかのように、定義されたデータの組の先頭から終端まで連続して、定義されたデータの組を読み出すことができる。
いくつかの実施形態において、ソリッドステートデバイス制御構成要素は、複数のコピーの各々が、規則の組によって判定されるように複数のメモリブロックに別個に記憶される場合、定義されたデータの組の複数のコピーを記憶することができる。加えて、ソリッドステートデバイス制御構成要素は、いくつかの実施形態において、ホスト制御構成要素の読み出しアクセスを、定義されたデータの組の最新の既知の良好なコピーに提供するように、定義されたデータの組の複数のコピーを管理することができる。
図3は、本開示の1つ以上の方法の実施形態に従うソリッドステートデバイス内のオブジェクト指向メモリを示すブロック図である。明示的に記載のない限り、本明細書に説明される実施形態は、特定の順序または順次に制約されない。加えて、説明される実施形態のうちのいくつか、またはその要素は、同じまたは少なくとも実施的に同じ時点に発生または動作することができる。
図3に図示される実施形態は、原子動作様式で単一オブジェクトとして定義されたデータの組にアクセスすることを含み、アクセスすることは、ブロック310に示されるように、ホスト以外のソースからである。多様な実施形態において、ソースは、説明のためであって限定ではなく、図1に関して説明されるネットワーク102とすることができる。いくつかの実施形態において、ホスト以外のソースからデータにアクセスすることは、モバイルシステム内のデータにアクセスすることを含むことができ、モバイルシステムは、数ある他の可能なモバイルシステムの中でも、デジタルカメラ、デジタル音楽デバイス、ネットワークデバイス、モバイル電話、携帯情報端末デバイス、およびラップトップコンピュータを含む群より選択することができる。
原子動作は、本明細書の他の部分に説明されるように実施されることを意図する。いくつかの実施形態において、定義されたデータの組に原子動作様式でアクセスすることは、定義されたデータの組への最初のアクセスが完了するまで、そのようなデータの最新の既知の良好なバージョンへのポインタを使用することを含むことができる。
ブロック320に示されるように、実施形態は、いくつかのソリッドステートメモリブロックを含む、ソリッドステートデバイスの制御構成要素によってフォーマットされるように、いくつかのソリッドステートメモリブロックに単一オブジェクトとして、システム内の定義されたデータの組を記憶することを含む。いくつかの実施形態において、記憶することは、原子動作が完了後に実施することができる。定義されたデータの組をいくつかのメモリブロックに記憶することは、いくつかの実施形態において、複数のコピーの各々上で原子動作を独立的に実施することが完了した後に、定義されたデータの組各々の複数のコピーを別個のメモリブロックに記憶することを含むことができる。
ソリッドステートデバイスは、いくつかの実施形態において、特定の期間に定義されたデータの組の新しく記憶されたバージョンに対する複数の読み出し要求を検出すると、定義されたデータの組の以前に記憶されたバージョンをホストに提供することができる。例えば、多様な実施形態において、ソリッドステートデバイスまたはホストは、システムのブート動作に必要な新しく記憶されたブートイメージに対する複数の読み出し要求を検出することができる。このため、いくつかの実施形態において、ソリッドステートデバイスは、ブートイメージの最新の既知の良好なバージョンをホストに提供することができる。
本開示の教示に従い、オブジェクト指向メモリは、多様な実施形態において、定義されたデータの組に単一オブジェクトとしてアクセスすることであって、アクセスは、ホスト以外のソースからである、アクセスすることと、アクセスされた定義されたデータの組上で読み出し検証動作を実施することとを含むことができる。特定の読み出し検証動作の実施形態は、以下により詳細に説明する。実施形態は、いくつかのソリッドステートメモリブロックを含むソリッドステートデバイスに動作可能に結合された制御構成要素によってフォーマットされるように、いくつかのメモリブロック内に、定義されたデータの組を単一オブジェクトとして記憶することを含むことができる。
いくつかの実施形態において、定義されたデータの組を単一オブジェクトとして記憶することは、読み出し検証動作が完了後に実施される。アクセスされたデータ上で読み出し検証動作を実施することは、いくつかの実施形態において、アクセスされた定義された新しいデータの組上での読み出し検証動作が完了し、定義された新しいデータの組の記憶が完了するまで、以前に記憶された定義されたデータの組の最新の既知の良好なバージョンへポインタを使用することを含むことができる。
ソリッドステートデバイスが、オブジェクトは高い信頼性で書き込まれ、検証されたと判定した時、ソリッドステートデバイスは、書き込み完了肯定応答をホストに送信することができる。肯定応答がホストに送信された後の読み出しは全て、以前に既知の良好なオブジェクト上ではなく、新しいオブジェクト上で行われることになる。代替として、ホストは、遷移が発生することを可能にする前に、ソリッドステートデバイスに対するコマンド、レジスタ設定、または同様な通知を通じて遷移を制御することを要求することができる。
読み出し検証動作は、いくつかの実施形態において、コピーの各々上で書き込み動作が実施される前に定義された新しいデータの組の複数のコピー上で独立的に実施することができ、その後、読み出し検証動作がそこで特定の数よりも少ないエラーを検出した、定義された新しいデータの組のコピーを記憶する。いくつかの実施形態は、読み出し検証動作が順調に完了すると、定義された新しいデータの組の複数のコピーを記憶することを含むことができる。いくつかの実施形態は、少なくとも特定の数のエラーが定義された新しいデータの組の複数のコピーのうちの別の1つで検出される時、データの読み出し検証されたコピーに自動フェイルオーバーを提供することを含むことができる。特に、いくつかの実施形態は、特定の数の新しいエラーが、別の、それまでに読み出し検証され、かつ記憶された定義された新しいデータの組のコピーで検出される時、定義された新しいデータの組の読み出し検証されたコピーに自動フェイルオーバーを提供することを含むことができる。読み出し検証動作を実施する実施形態は、巡回冗長検査(CRC)動作を実施することを含むことができる。読み出し検証動作の実施形態はそのように限定されない。
エラー検出動作は、送信器から受信器への伝送の間に、ノイズまたは他の障害によって生じたエラーの存在を検出するための能力を有することができる。エラー修正は、元のエラーのないデータを再構築するための追加の能力を有することができる。簡潔には、そのような例は、限定ではなく、その中で送信器がデータおよびエラー検出コードも送信し、受信器がエラーを確認するために使用する、自動再送要求(ARQ)を含むことができ、誤ったデータの再送信を要求することができる。いくつかの場合、要求は暗示的であり、その中で、受信器は、正しく受信されたデータの肯定応答(ACK)を送信し、送信器は、正当な期間内に肯定応答されなかったものを全て再送信する。
別の例は、送信器がその中で、エラー修正コード(ECC)を用いてデータをコード化し、コード化されたメッセージを送信する、順方向誤り訂正(FEC)である。受信器は送信器にいかなるメッセージも返信しないかもしれない。受信器は、受信内容を「最も可能性が高い」データに復号することができる。コードは、受信器がデータを誤って解釈させるようにだますためには大量のノイズを受けることになるように設計される。重大でないエラーは再送信することなく修正され、重大なエラーは検出され、再送信が要求されるように2つを組み合わせることが可能である。
本開示のいくつかの実施形態は、特定の数のエラーが、定義されたデータの組のそれまでに読み出し検証され、記憶されたいくつかのコピーのうちの少なくとも1つで検証される時、エラー修正動作を実施することを含むことができる。いくつかの実施形態は、特定の数のエラーが、定義されたデータの組のまだ読み出し検証されていない、または、記憶されたいくつかのコピーのうちの少なくとも1つで検出される時、エラー修正動作を実施する。エラー修正動作を実施することは、いくつかの実施形態において、定義されたデータの組の複数のそれまでに読み出し検証され、記憶されたコピーのビット単位の比較を実施することを含むことができ、ソリッドステートデバイスは、一致するコピーの過半数より選択することによって、複数のコピーの中から、1つ以上のコピーを検証する。
他の保護は、定義されたデータの組の演算署名の計算(例えば、当業者によって理解されるように、ハッシュ関数)を含むことができる。ソリッドステートデバイスは、例えば、ハッシュ関数を計算し、次いで、完了肯定応答の一部として、計算結果をホストに戻すように提供することができる。ホストは、次いで、署名が正しいかどうかの判定を行うことができる。オブジェクトを読み出すことはまた、ホストが認証プログラムの一部として使用することができるデータ署名を生成(例えば、ハッシュ関数)することができる。署名は、ホストにオブジェクトデータを送信する前、またはオブジェクトデータが送信される際のいずれかに計算することができ、したがって、署名は、ホストがソリッドステートデバイスから読み出すために使用可能になる。
簡潔には、ハッシュ関数は、大型で、可変サイズ量である可能性があるデータを小型のデータ、通常はアレイへのインデックスとして機能する場合がある単一の整数に変換する、よく定義された手順または数学関数である。ハッシュ関数はほとんどの場合、テーブル参照またはデータ比較タスクを高速化するために使用される。ハッシュ関数は、チェックサム、チェックディジット、フィンガープリント、無作為化関数、誤り訂正符号、および暗号学的ハッシュ関数に関係する。これらの概念はある程度重複するが、各々はその独自の使用および要件を有し、全ては、本開示の範囲内である。
デバイスに演算署名を計算させることは(例えば、電源投入時に自動的に)、コード化されたデータの実行前に、データを認証するために使用することができる。そのような認証は、例えば、ハッカーが、ネットワークおよび/または他の動作へのアクセスを得るためにコードを改ざんすることを防止することによって、システム全体のセキュリティを強化することができる。
本開示のいくつかの実施形態は、ソースからのデータにアクセスする前に、定義されたデータの組の演算署名を提供することを含むことができ、演算署名は、ソリッドステートデバイスによって、エラーの検出のためにソースに戻すように提供される。加えて、または代替として、いくつかの実施形態は、ホストからのデータにアクセスする前に、定義されたデータの組の演算署名を提供することを含むことができ、演算署名は、ソリッドステートデバイスによって、エラーの検出のためにホストに戻すように提供される。
ソリッドステートデバイスは、例えば、ハッシュ関数を計算し、次いで、完了肯定応答の一部として、算出結果をホストに戻すように示すことができる。ホストは、次いで、署名が正しいかどうかの判定を行うことができる。オブジェクトを読み出すことはまた、ホストが認証プログラムの一部として使用することができるデータ署名を生成(例えば、ハッシュ関数)することができる。署名は、ホストにオブジェクトデータを送信する前、またはオブジェクトデータが送信される際のいずれかに計算することができ、したがって、署名は、ホストがソリッドステートデバイスから読み出すために使用可能になる。
<結論>
本開示は、ソリッドステートデバイス内のオブジェクト指向メモリの方法、デバイス、およびシステムを含む。ソリッドステートデバイス内のオブジェクト指向メモリのための方法の一実施形態は、原子動作様式で単一オブジェクトとして定義されたデータの組にアクセスすることを含み、アクセスは、ホスト以外のソースからである。実施形態はまた、いくつかのソリッドステートメモリブロックを含むソリッドステートデバイスの制御構成要素によってフォーマットされるように、いくつかのソリッドステートメモリブロック内に単一オブジェクトとして定義されたデータの組を記憶することを含む。
1つの要素が別の要素「の上にある」、「に接続される」、または「と結合される」と言及される時、それは、もう一方の要素の直接その上にあることができる、それに接続できる、またはそれと結合できること、あるいは介在要素が存在する場合があることを理解されたい。対照的に、1つの要素が別の要素「の直接その上に」「に直接接続される」または「と直接結合される」されると言及される場合、介在要素または介在層は存在しない。第1の要素が別の要素「に接続」または「と結合」されると言及される時、第1の要素は2つの要素のうちのもう一方に物理的に付設されることを意図することを理解されたい。対照的に、要素が「動作可能に結合」されると言及される時、要素は相互に連通状態にある。本明細書に使用される場合、ソリッドステートの制御構成要素がアクションを実施することができると記載される時、「するように構成される制御構成要素」または「プロセッサによって実行するように構成される制御構成要素」の短縮された代替として理解されたい。本明細書に使用される場合、用語「または」はそれ自体、その他明示的にこれに反すると記載のない限り、排他的様式で使用されるのではなく、複数の連結された要素を含む。さらに、本明細書に使用される場合、用語「および/または」は、関連列挙項目のうちの1つ以上の任意または全ての組み合わせを含む。
第1、第2等の用語は、本明細書において、多様な要素を記述するために使用される場合があるが、これらの要素はこれらの用語によって限定されてはならないことを理解されたい。これらの用語は、1つの要素を別の要素から区別するために使用されるに過ぎない。したがって、本開示の教示から逸脱することなく、第1の要素は第2の要素と称すことができる。
本開示の詳細説明においては、本明細書の一部を形成し、その中で、本開示の1つ以上の実施形態がどのように実践されてもよいかを例示として示す、添付の図面を参照する。これらの実施形態は、当業者が本開示の実施形態を実践することを可能にするように十分な詳細が説明され、他の実施形態が利用されてもよいこと、および本開示の範囲から逸脱することなく、プロセス変更、電気的変更、または構造的変更が行われてもよいことが理解される。
理解されるように、本明細書の多様な実施形態に示される要素は、本開示のいくつかの追加の実施形態を提供するように、追加、交換、または削除することができる。加えて、理解されるように、図面の中に提供される要素の比率および相対尺度は、本開示の実施形態を図示することを目的とし、限定の意味で解釈されてはならない。
本明細書に使用される用語は、特定の実施形態を説明することのみを目的とし、本開示を限定することを意図しない。本明細書に使用される場合、単数形の「1つの(a)、(an)」および「その(the)」は、文脈がそうでないことを明確に示さない限り、複数形も含むことを意図する。さらに、本明細書において使用される場合、「含む、備える(comprises、comprising)」という用語は、記載された特徴、個数、ステップ、動作、要素、または構成要素の存在を指定するが、1つ以上の他の特徴、個数、ステップ、動作、要素、構成要素、またはこれらのグループの存在または追加を除外しないことを理解されたい。
別途定義されない限り、本明細書に使用される全ての用語(技術用語および科学用語を含む)は、本開示が属する技術分野の当業者によって一般的に理解されるものと同じ意味を有する。さらに、一般的に使用される辞書で定義されるような用語は、関連技術および本開示の文脈においてそれらの意味と一貫する意味を有するとして解釈されるべきであり、本明細書においてそのように明示的に定義されない限り、理想化されたまたは過度に形式的な意味に解釈されてはならないことが理解される。
本明細書には具体的な実施形態が図示および説明されているが、当業者は、同じ結果を達成するように考案された配設を、示された具体的な実施形態に代えることができることを理解するであろう。本開示は、本開示の多様な実施形態の全ての適応または変形を包含することを意図する。
上記の説明は、制限の様式ではなく、例示の様式において行われたものであることをさらに理解されたい。上記の実施形態の組み合わせ、および本明細書に具体的に説明されない他の実施形態は、上記の説明を検討することによって、当業者には明らかとなるであろう。
本開示の多様な実施形態の適用性は、例えば、他のコンピューティングシステム、モバイルデバイス、および/またはシステム等に関連して、上記の方法、デバイス、およびシステムが使用される他の用途を含む。したがって、本開示の多様な実施形態の適用性は、添付の請求項に加えて、このような特許請求の範囲が権利を与えられる均等物の完全な範囲を参照して決定されなければならない。
前述の発明を実施するための形態では、開示を簡素化するために、多様な特徴が単一の実施形態にまとめられている。この開示方法は、本開示の開示される実施形態が、各請求項に明記されるよりも多くの特徴を使用することが必要であるという意図を反映するものとして解釈されるべきではない。そうではなく、以下の特許請求の範囲が反映するように、発明の主題は、単一の開示される実施形態の全ての特徴に満たない中に存する。したがって、以下の特許請求の範囲は、本明細書において発明を実施するための形態に組み入れられ、各請求項は個別の実施形態として独立する。

Claims (56)

  1. ソリッドステートデバイス内のオブジェクト指向メモリの方法であって、
    原子動作様式で単一オブジェクトとして定義されたデータの組にアクセスすることであって、前記アクセスは、ホスト以外のソースからである、アクセスすることと、
    いくつかのソリッドステートメモリブロックを含むソリッドステートデバイスの制御構成要素によってフォーマットされるように、前記いくつかのソリッドステートメモリブロック内に前記単一オブジェクトとして前記定義されたデータの組を記憶することと、を含む、
    方法。
  2. 前記記憶することは、前記原子動作が完了すると実施される、請求項1に記載の方法。
  3. 前記原子動作様式において前記定義されたデータの組にアクセスすることは、前記定義されたデータの組への最初のアクセスが完了するまで、そのようなデータの最新の既知の良好なバージョンへのポインタを使用することを含む、請求項1に記載の方法。
  4. 前記定義されたデータの組を前記いくつかのメモリブロックに記憶することは、前記定義されたデータの組各々の複数のコピーを、前記複数のコピーの各々の上で原子動作を独立的に実施することが完了した後に、別個のメモリブロック内に書き込むことを含む、請求項1に記載の方法。
  5. 前記方法は、前記ソリッドステートデバイスが、特定の期間の間に前記定義されたデータの組の新しく記憶されたバージョンに対する複数の読み出し要求を検出すると、前記定義されたデータの組の以前に記憶されたバージョンを前記ホストに提供することを含む、請求項1〜4のいずれか1項に記載の方法。
  6. 前記定義されたデータの組の前記新しく記憶されたバージョンに対する複数の読み出し要求を検出することは、前記ソリッドステートデバイスおよび/または前記ホストが、前記ホストによって管理されるシステム内のブート動作のために必要な新しく記憶されたブートイメージに対する複数の読み出し要求を検出することを含む、請求項5に記載の方法。
  7. 前記新しく記憶されたブートイメージに対する複数の読み出し要求を検出することは、前記ソリッドステートデバイスが、ブートイメージの最新の既知の良好なバージョンを前記ホストに提供することを含む、請求項6に記載の方法。
  8. データにアクセスすることは、
    デジタルカメラ、
    デジタルミュージックデバイス、
    ネットワークデバイス、
    モバイル電話機、
    携帯情報端末デバイス、および
    ラップトップコンピュータを含む群より選択されるモバイルシステムの中の前記データにアクセスすることを含む、
    請求項1〜4のいずれか1項に記載の方法。
  9. ソリッドステートデバイス内のオブジェクト指向メモリの方法であって、
    単一オブジェクトとして定義されたデータの組にアクセスすることであって、前記アクセスは、ホスト以外のソースからである、アクセスすることと、
    前記アクセスされた定義されたデータの組上で読み出し検証動作を実施することと、
    いくつかのソリッドステートメモリブロックを含むソリッドステートデバイスに動作可能に結合された制御構成要素によってフォーマットされるように、前記いくつかのメモリブロック内に前記単一オブジェクトとして前記定義されたデータの組を記憶することと、を含む、
    方法。
  10. 前記単一オブジェクトとして前記定義されたデータの組を記憶することは、前記読み出し検証動作が完了すると実施される、請求項9に記載の方法。
  11. 前記アクセスされたデータ上で前記読み出し検証動作を実施することは、前記アクセスされた定義された新しいデータの組上での前記読み出し検証動作が完了し、前記定義された新しいデータの組の前記記憶することが完了するまで、前記データの以前に記憶された定義されたデータの組の最新の既知の良好なバージョンへポインタを使用することを含む、請求項9に記載の方法。
  12. 前記方法は、前記コピーの各々上の書き込み動作が実施される前に、前記定義された新しいデータの組の複数のコピー上で前記読み出し検証動作を独立的に実施し、それに続いて、前記読み出し検証動作が特定の数よりも少ないエラーを検出した前記定義された新しいデータの組のコピーを記憶することを含む、請求項9〜11のいずれか1項に記載の方法。
  13. 前記方法は、前記読み出し検証動作が順調に完了すると、前記定義された新しいデータの組の複数のコピーを記憶することを含む、請求項12に記載の方法。
  14. 前記方法は、少なくとも前記特定のエラー数が前記定義された新しいデータの組の前記複数のコピーのうちの別の1つで検出される時、前記データの読み出し検証されたコピーに自動フェイルオーバーを提供することを含む、請求項13に記載の方法。
  15. 前記方法は、少なくとも特定の数の新しいエラーが、前記定義された新しいデータの組の別のそれまでに読み出し検証され、記憶されたコピーで検出される時、前記定義された新しいデータの組の読み出し検証されたコピーに自動フェイルオーバーを提供することを含む、請求項13に記載の方法。
  16. 前記読み出し検証動作を実施することは、巡回冗長検査動作を実施することを含む、請求項9〜11のいずれか1項に記載の方法。
  17. 前記方法は、特定の数のエラーが、定義されたデータの組のいくつかのそれまでに読み出し検証され、記憶されたコピーのうちの少なくとも1つで検証される時、エラー修正動作を実施することを含む、請求項9〜11のいずれか1項に記載の方法。
  18. 前記エラー修正動作を実施することは、前記定義されたデータの組の複数のそれまでに読み出し検証され、記憶されたコピーのビット単位の比較を実施することを含み、前記ソリッドステートデバイスは、一致するコピーの過半数から選択することにより、複数のコピーの中から1つ以上のコピーを検証する、請求項17に記載の方法。
  19. 前記方法は、前記ソースからの前記データにアクセスする前に、前記定義されたデータの組の演算署名を提供することを含み、前記演算署名は、前記ソリッドステートデバイスによって、エラーの検出のために前記ソースに戻すように提供される、請求項9〜11のいずれか1項に記載の方法。
  20. 前記方法は、前記ホストから前記データにアクセスする前に、前記定義されたデータの組に演算署名を提供することを含み、前記演算署名は、前記ソリッドステートデバイスによって、エラーの検出のために前記ホストに戻すように提供される、請求項9〜11のいずれか1項に記載の方法。
  21. ソリッドステートデバイスであって、
    前記ソリッドステートデバイス内のいくつかのソリッドステートメモリアレイに結合される制御構成要素を備え、各アレイは、メモリセルの複数の物理ブロックを有し、前記制御構成要素は、
    単一オブジェクトとして定義されたデータの組にアクセスし、
    前記単一オブジェクトとして、前記いくつかのアレイに前記定義されたデータの組を記憶するように構成される、
    デバイス。
  22. 前記制御構成要素は、前記いくつかのアレイの前記物理ブロックのメモリセルの前記単一オブジェクトのフォーマットを管理する、関連プロセッサを含む、請求項21に記載のデバイス。
  23. メモリセルの前記複数の物理ブロックは、不揮発性NANDまたは不揮発性NORアーキテクチャに配設される、請求項21に記載のデバイス。
  24. 前記定義されたデータの組は、ブートイメージまたはオペレーティングシステムのためである、請求項21に記載のデバイス。
  25. 前記制御構成要素は、前記定義されたデータの組を、メモリセルの前記物理ブロックの前記いくつかのメモリアレイの特定のパーティションに記憶するように構成される、請求項21に記載のデバイス。
  26. 前記制御構成要素は、メモリセルのいくつかの隣接する物理ブロックに先頭から終端まで前記定義されたデータの組を記憶するように構成される、請求項21に記載のデバイス。
  27. 前記制御構成要素は、原子動作の完了後に、前記定義されたデータの組にアクセスし、前記いくつかのアレイに前記定義されたデータの組を記憶するように構成される、請求項21〜26のいずれか1項に記載のデバイス。
  28. 前記制御構成要素は、前記原子動作の完了まで、前記アレイの前記データの最新の既知の良好なコピーにポインタを割り当てるように構成され、前記ポインタは、前記データの読み出しが前記最新の既知の良好なコピー上で実施されるように指示する、請求項27に記載のデバイス。
  29. ソリッドステートデバイスであって、
    前記ソリッドステートデバイス内のいくつかのソリッドステートメモリアレイに結合される制御構成要素を備え、各アレイは、メモリセルの複数の物理ブロックを有し、前記制御構成要素は、
    単一オブジェクトとして定義されたデータの組にアクセスし、前記定義されたデータの組の1つ以上の反復がアクセスされ、
    前記単一オブジェクトとして前記いくつかのアレイの特定の場所に前記1つ以上の反復の複数のコピーを記憶するように構成される、デバイス。
  30. 前記制御構成要素は、前記いくつかのアレイの物理的に異なるアレイに、前記複数のコピーの各々を記憶するように構成される、請求項29に記載のデバイス。
  31. 前記アレイの数は1つである、請求項29に記載のデバイス。
  32. 前記制御構成要素は、他の物理ブロックよりも信頼性がより高いことが判定された前記アレイの物理ブロックに、前記複数のコピーのうちの少なくとも1つを記憶するように構成される、請求項29〜31のいずれか1項に記載のデバイス。
  33. 信頼性がより高いことが判定された前記アレイの前記物理ブロックは、単一レベルのメモリセルを有する物理ブロックである、請求項32に記載のデバイス。
  34. 信頼性がより高いことが判定された前記アレイの前記物理ブロックは、前記他の物理ブロックのメモリセルよりも少ない回数再使用されているメモリセルを有する物理ブロックである、請求項32に記載のデバイス。
  35. 前記アクセスされたデータの前記1つ以上の反復がアクセスされた後、前記制御構成要素は、前記単一オブジェクトを前記アレイに記憶する前に、前記1つ以上のデータ反復の複数のコピーを独立的に検証するように構成される、請求項29〜31のいずれか1項に記載のデバイス。
  36. 前記制御構成要素は、前記アレイに前記単一オブジェクトを記憶する前に発見されたいくつかのエラーを読み出し、独立的に修正するように構成される、請求項35に記載のデバイス。
  37. 前記制御構成要素は、以前の最新の既知の良好なコピーを置換するように、新しい最新の既知の良好なコピーとして、前記1つ以上のデータ反復の特定のコピーへポインタを割り当てるように構成される、請求項36に記載のデバイス。
  38. 前記制御構成要素は、ホストによるいずれの読み出しも、前記新しい最新の既知の良好なコピーへ前記ポインタによって指示されるように、記憶完了肯定応答を前記ホストに送信するように構成される、請求項37に記載のデバイス。
  39. 前記制御構成要素は、データ保護動作が順調に完了するまで遅延される、ホストへの記憶完了肯定応答を送信するように構成される、請求項37〜38のいずれか1項に記載のデバイス。
  40. 前記制御構成要素は、メモリセルのいくつかの隣接する物理ブロックで先頭から終端まで前記単一オブジェクトを読み出すように構成される、請求項29〜31のいずれか1項に記載のデバイス。
  41. 前記制御構成要素は、電源投入のリセットおよび/または信号の遷移に基づいて、読み出し動作を自動的に開始するように構成され、前記読み出されたデータは、ホストをブートするために使用される場合、自動的に前記ホストに送信され、前記データがその時点で前記ホストによって要求されない場合は無視される、請求項29〜31のいずれか1項に記載のデバイス。
  42. 前記制御構成要素は、新しい定義されたデータの組を最新インストールとして保存するように構成され、少なくとも1回記憶された際に、前記新しい定義されたデータの組が順調にブートした後、前記最新インストール構成が既知の良好なコピーとして定義されるようになる、請求項29〜31のいずれか1項に記載のデバイス。
  43. システムであって、
    システムを管理するために、ホストに動作可能に結合されるように構成されるホスト制御構成要素を備え、
    前記ホスト制御構成要素は、メモリセルの複数のソリッドステート物理メモリブロックを有するソリッドステートデバイスの制御構成要素に動作可能に結合されるように構成され、
    前記ソリッドステートデバイスの前記制御構成要素は、
    後続の書き込みおよび読み出し動作中、単一オブジェクトとして定義されたデータの組にアクセスし、前記単一オブジェクトとして前記定義されたデータの組を管理するように構成される、
    システム。
  44. 前記ソリッドステートデバイスの前記制御構成要素は、前記単一オブジェクトの複数のコピーを記憶するように構成され、前記複数のコピーの各々は、物理的に別個のメモリブロックに書き込むための規則の組によって判定されるように、前記複数のメモリブロックに別個に記憶される、請求項43に記載のシステム。
  45. 前記ソリッドステートデバイスの前記制御構成要素は、メモリセルの前記複数の物理メモリブロックの特定のパーティションに前記単一オブジェクトの前記複数のコピーを記憶するように構成される、請求項44に記載のシステム。
  46. 前記ソリッドステートデバイスの前記制御構成要素は、端から端までのデータ整合性のために、前記複数の物理メモリブロックのうちのいくつかで隣接した前記特定のパーティションに前記単一オブジェクトの前記複数のコピーの各々を記憶するように構成される、請求項45に記載のシステム。
  47. 前記ソリッドステートデバイスの前記制御構成要素は、論理ブロックアドレッシングによって判定されるように、前記複数の物理メモリブロックに記憶するように構成される、請求項45〜46のいずれか1項に記載のシステム。
  48. 前記ソリッドステートデバイスの前記制御構成要素は、特定の論理ブロックアドレスに記憶するように構成される、請求項47に記載のシステム。
  49. システムであって、
    システムを管理するために、ホストに動作可能に結合されるように構成されるホスト制御構成要素を備え、
    前記ホスト制御構成要素は、メモリセルの複数のソリッドステート物理メモリブロックを有するソリッドステートデバイスの制御構成要素に動作可能に結合されるように構成され、
    前記ソリッドステートデバイスの前記制御構成要素は、
    後続の書き込みおよび読み出し動作中、ブロック指向様式で定義されたデータの組にアクセスし、前記ブロック指向様式で前記定義されたデータの組を管理するように構成され、
    規則の組に、前記ホスト制御構成要素が従い、
    前記ソリッドステートデバイス制御構成要素は、特定の論理ブロックアドレスに前記定義されたデータの組を記憶する、システム。
  50. 前記ホスト制御構成要素および前記ソリッドステートデバイス制御構成要素が従う前記規則の組は、前記複数のソリッドステートデバイス物理メモリブロック内の別個のパーティションされていない物理メモリブロックで、前記定義されたデータの組の書き込みを可能にする、請求項49に記載のシステム。
  51. 前記ホスト制御構成要素および前記ソリッドステートデバイス制御構成要素が従う前記規則の組は、前記定義されたデータの組を書き込むために、特定の一連の物理メモリブロック番号を含む、請求項49〜50のいずれか1項に記載のシステム。
  52. 前記定義されたデータの組の前記書き込みは、特定の順序で実施される、請求項51に記載のシステム。
  53. 前記特定の順序で実施される前記定義されたデータの組の前記書き込みは、前記ホスト制御構成要素が、前記定義されたデータの組の最新のブロックを特定するように、前記ソリッドステートデバイス制御構成要素にインジケータを提供することを含む、請求項52に記載のシステム。
  54. 前記ソリッドステートデバイス制御構成要素は、前記定義されたデータの組がオブジェクト指向様式で記憶されたかのように、前記定義されたデータの組の先頭から終端まで連続して、前記定義されたデータの組を読み出すように構成される、請求項53に記載のシステム。
  55. 前記ソリッドステートデバイスの制御構成要素は、前記定義されたデータの組の複数のコピーを記憶するように構成され、前記複数のコピーの各々は、前記規則の組によって判定されるように、前記複数のメモリブロックに別個に記憶される、請求項49〜50のいずれか1項に記載のシステム。
  56. 前記ソリッドステートデバイスの制御構成要素は、前記ホスト制御構成要素の読み出しアクセスを、前記定義されたデータの組の最新の既知の良好なコピーに提供するために、前記定義されたデータの組の前記複数のコピーを管理するように構成される、請求項55に記載のシステム。
JP2012513923A 2009-06-03 2010-05-24 ソリッドステートデバイス内のオブジェクト指向メモリ Active JP5517089B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/477,349 2009-06-03
US12/477,349 US8751860B2 (en) 2009-06-03 2009-06-03 Object oriented memory in solid state devices
PCT/US2010/001520 WO2010141058A2 (en) 2009-06-03 2010-05-24 Object oriented memory in solid state devices

Publications (2)

Publication Number Publication Date
JP2012529102A true JP2012529102A (ja) 2012-11-15
JP5517089B2 JP5517089B2 (ja) 2014-06-11

Family

ID=43298356

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012513923A Active JP5517089B2 (ja) 2009-06-03 2010-05-24 ソリッドステートデバイス内のオブジェクト指向メモリ

Country Status (7)

Country Link
US (2) US8751860B2 (ja)
EP (1) EP2438521B1 (ja)
JP (1) JP5517089B2 (ja)
KR (1) KR101369573B1 (ja)
CN (1) CN102449613B (ja)
TW (1) TWI455126B (ja)
WO (1) WO2010141058A2 (ja)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8583986B2 (en) * 2008-12-17 2013-11-12 Seagate Technology Llc Solid-state memory with error correction coding
US8910002B2 (en) * 2009-08-24 2014-12-09 OCZ Storage Solutions Inc. NAND flash-based storage device with built-in test-ahead for failure anticipation
US8601202B1 (en) * 2009-08-26 2013-12-03 Micron Technology, Inc. Full chip wear leveling in memory device
US8402217B2 (en) * 2009-09-15 2013-03-19 Marvell International Ltd. Implementing RAID in solid state memory
US8988800B1 (en) 2009-09-15 2015-03-24 Marvell International Ltd. Error correction for storage devices
US9329948B2 (en) * 2012-09-15 2016-05-03 Seagate Technology Llc Measuring cell damage for wear leveling in a non-volatile memory
US9477484B2 (en) 2013-07-23 2016-10-25 Samsung Electronics Co., Ltd. System and method for boot acceleration of a data processing system wherein a nonvolatile memory is pre-configured before boot time
WO2015116078A1 (en) * 2014-01-30 2015-08-06 Hewlett-Packard Development Company, L.P. Memory data versioning
US9431052B2 (en) 2014-06-26 2016-08-30 Marvell World Trade Ltd. Two dimensional magnetic recording systems, devices and methods
US10169124B2 (en) 2014-12-16 2019-01-01 Samsung Electronics Co., Ltd. Unified object interface for memory and storage system
CA2918136C (en) 2015-01-19 2023-08-15 Queen's University At Kingston High sum-rate write-once memory
US10296580B1 (en) 2015-09-18 2019-05-21 Amazon Technologies, Inc. Delivering parsed content items
US10127210B1 (en) 2015-09-25 2018-11-13 Amazon Technologies, Inc. Content rendering
US10691750B1 (en) * 2015-09-28 2020-06-23 Amazon Technologies, Inc. Browser configured to efficiently store browsing session state
US10601894B1 (en) 2015-09-28 2020-03-24 Amazon Technologies, Inc. Vector-based encoding for content rendering
US10341345B1 (en) 2015-12-15 2019-07-02 Amazon Technologies, Inc. Network browser configuration
US10359946B1 (en) * 2016-05-03 2019-07-23 Altera Corporation Systems and methods for operating a flash memory in an integrated circuit
CN107797755B (zh) 2016-09-05 2021-01-08 上海宝存信息科技有限公司 固态硬盘***的原子写入方法以及使用该方法的装置
US10795760B2 (en) * 2017-03-20 2020-10-06 Samsung Electronics Co., Ltd. Key value SSD
US10981576B2 (en) 2017-12-27 2021-04-20 Micron Technology, Inc. Determination of reliability of vehicle control commands via memory test
US10933882B2 (en) 2017-12-27 2021-03-02 Micron Technology, Inc. Determination of reliability of vehicle control commands using a voting mechanism
US10901862B2 (en) * 2018-11-13 2021-01-26 Micron Technology, Inc. High-reliability non-volatile memory using a voting mechanism
US11294722B2 (en) 2019-07-29 2022-04-05 Marvell Asia Pte, Ltd. Object-oriented memory client

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001243632A (ja) * 1999-12-15 2001-09-07 Adaptec Inc ブータブル増分パケット光記憶媒体
JP2004280284A (ja) * 2003-03-13 2004-10-07 Sony Corp 制御プロセッサ、電子機器及び電子機器のプログラム起動方法、並びに電子機器のシステムモジュール更新方法
JP2006260283A (ja) * 2005-03-17 2006-09-28 Nec Corp 制御装置とそのプログラム、及び、プログラムダウンロード方法
JP2007188384A (ja) * 2006-01-16 2007-07-26 Nuclear Fuel Ind Ltd オブジェクト指向メモリ管理方法、解析プログラムおよび原子炉炉心特性解析プログラム
WO2007094742A1 (en) * 2006-02-14 2007-08-23 Trek 2000 International Ltd. Data storage device using two types of storage medium
JP2008544437A (ja) * 2005-06-24 2008-12-04 メタラム インコーポレイテッド 一体化されたメモリコア及びメモリインターフェース回路
WO2009002725A1 (en) * 2007-06-26 2008-12-31 Microsoft Corporation Object model for transactional memory

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5140592A (en) * 1990-03-02 1992-08-18 Sf2 Corporation Disk array system
US5623604A (en) * 1992-11-18 1997-04-22 Canon Information Systems, Inc. Method and apparatus for remotely altering programmable firmware stored in an interactive network board coupled to a network peripheral
US6298401B1 (en) * 1997-08-11 2001-10-02 Seagate Technology Llc Object oriented storage device having a disc drive controller providing an interface exposing methods which are invoked to access objects stored in a storage media
US6240498B1 (en) * 1999-01-06 2001-05-29 International Business Machines Corporation Object oriented storage pool apparatus and method
US6490662B1 (en) * 2000-04-29 2002-12-03 Hewlett-Packard Company System and method for enhancing the reliability of a computer system by combining a cache sync-flush engine with a replicated memory module
KR100644602B1 (ko) * 2000-10-11 2006-11-10 삼성전자주식회사 플래시메모리를 위한 재사상 제어방법 및 그에 따른플래시 메모리의 구조
JP4808839B2 (ja) * 2000-11-16 2011-11-02 インヴェンサス・コーポレイション メモリシステム
US6954875B2 (en) * 2001-03-12 2005-10-11 Honeywell International Inc. Method of recovering a flight critical computer after a radiation event
US6535924B1 (en) * 2001-09-05 2003-03-18 Pluris, Inc. Method and apparatus for performing a software upgrade of a router while the router is online
US6704833B2 (en) * 2002-01-04 2004-03-09 Hewlett-Packard Development Company, L.P. Atomic transfer of a block of data
JP4300462B2 (ja) * 2003-04-23 2009-07-22 富士フイルム株式会社 情報記録再生方法及び装置
US7320100B2 (en) * 2003-05-20 2008-01-15 Cray Inc. Apparatus and method for memory with bit swapping on the fly and testing
US7237141B2 (en) * 2003-06-19 2007-06-26 Lsi Corporation Method for recovering data from a redundant storage object
US7047379B2 (en) * 2003-07-11 2006-05-16 International Business Machines Corporation Autonomic link optimization through elimination of unnecessary transfers
US7594135B2 (en) * 2003-12-31 2009-09-22 Sandisk Corporation Flash memory system startup operation
GB2414573B (en) 2004-05-26 2007-08-08 Advanced Risc Mach Ltd Control of access to a shared resource in a data processing apparatus
US6937527B1 (en) * 2004-05-27 2005-08-30 Hewlett-Packard Development Company, L.P. High reliability triple redundant latch with voting logic on each storage node
US7610463B2 (en) * 2004-10-22 2009-10-27 Qualcomm Incorporated Method and apparatus for performing an atomic semaphore operation
US7328318B1 (en) * 2005-03-31 2008-02-05 Emc Corporation System and method for atomic multi-volume operations
CH697875B1 (fr) 2005-07-16 2009-03-13 Ludwig Mueller Alliage de métal précieux.
US7599261B2 (en) * 2006-01-18 2009-10-06 International Business Machines Corporation Removable storage media with improved data integrity
US7636829B2 (en) * 2006-05-02 2009-12-22 Intel Corporation System and method for allocating and deallocating memory within transactional code
KR100827677B1 (ko) * 2006-06-20 2008-05-07 한국과학기술원 행렬 스트라이프 캐쉬를 이용한 raid 시스템의 입출력성능 향상 방법
US20080140963A1 (en) * 2006-12-11 2008-06-12 Thomason Ronald G Methods and systems for storage system generation and use of differential block lists using copy-on-write snapshots
US8370715B2 (en) * 2007-04-12 2013-02-05 International Business Machines Corporation Error checking addressable blocks in storage
US7716192B2 (en) * 2007-05-08 2010-05-11 Microsoft Corporation Concurrent, lock-free object copying
US8065583B2 (en) * 2007-07-06 2011-11-22 Micron Technology, Inc. Data storage with an outer block code and a stream-based inner code
US20090113235A1 (en) * 2007-10-30 2009-04-30 Selinger Robert D Raid with redundant parity
US20100017649A1 (en) * 2008-07-19 2010-01-21 Nanostar Corporation Data storage system with wear-leveling algorithm
US8219741B2 (en) * 2008-10-24 2012-07-10 Microsoft Corporation Hardware and operating system support for persistent memory on a memory bus

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001243632A (ja) * 1999-12-15 2001-09-07 Adaptec Inc ブータブル増分パケット光記憶媒体
JP2004280284A (ja) * 2003-03-13 2004-10-07 Sony Corp 制御プロセッサ、電子機器及び電子機器のプログラム起動方法、並びに電子機器のシステムモジュール更新方法
JP2006260283A (ja) * 2005-03-17 2006-09-28 Nec Corp 制御装置とそのプログラム、及び、プログラムダウンロード方法
JP2008544437A (ja) * 2005-06-24 2008-12-04 メタラム インコーポレイテッド 一体化されたメモリコア及びメモリインターフェース回路
JP2007188384A (ja) * 2006-01-16 2007-07-26 Nuclear Fuel Ind Ltd オブジェクト指向メモリ管理方法、解析プログラムおよび原子炉炉心特性解析プログラム
WO2007094742A1 (en) * 2006-02-14 2007-08-23 Trek 2000 International Ltd. Data storage device using two types of storage medium
WO2009002725A1 (en) * 2007-06-26 2008-12-31 Microsoft Corporation Object model for transactional memory
JP2010532048A (ja) * 2007-06-26 2010-09-30 マイクロソフト コーポレーション トランザクションメモリのオブジェクトモデル

Non-Patent Citations (6)

* Cited by examiner, † Cited by third party
Title
CSND200601060013; 百田 昌馬: 'SQL Serverでど〜んといってみよう! 必ず役立つ現場のノウハウ' Windows Developer Magazine 第12巻,第4号, 20060301, p.144-149, 株式会社翔泳社 *
CSND200601245022; 尾島 良司: '.NET開発天国 第2回' WEB+DB PRESS 第33巻, 20060725, p.186-196, (株)技術評論社 *
CSND200700135003; 沖 要知: 'Oracle、SQL Server、DB2、MySQL チューニングポイント Best10' DB Magazine 第16巻,第5号, 20060901, p.052-62, 株式会社翔泳社 *
JPN6013047428; 沖 要知: 'Oracle、SQL Server、DB2、MySQL チューニングポイント Best10' DB Magazine 第16巻,第5号, 20060901, p.052-62, 株式会社翔泳社 *
JPN6013047429; 尾島 良司: '.NET開発天国 第2回' WEB+DB PRESS 第33巻, 20060725, p.186-196, (株)技術評論社 *
JPN6013047430; 百田 昌馬: 'SQL Serverでど〜んといってみよう! 必ず役立つ現場のノウハウ' Windows Developer Magazine 第12巻,第4号, 20060301, p.144-149, 株式会社翔泳社 *

Also Published As

Publication number Publication date
WO2010141058A2 (en) 2010-12-09
KR20120014939A (ko) 2012-02-20
EP2438521A2 (en) 2012-04-11
CN102449613A (zh) 2012-05-09
WO2010141058A3 (en) 2011-03-03
US20140281811A1 (en) 2014-09-18
US9110832B2 (en) 2015-08-18
EP2438521B1 (en) 2016-04-27
EP2438521A4 (en) 2013-11-13
US8751860B2 (en) 2014-06-10
JP5517089B2 (ja) 2014-06-11
US20100313065A1 (en) 2010-12-09
KR101369573B1 (ko) 2014-03-04
TW201106354A (en) 2011-02-16
CN102449613B (zh) 2015-04-15
TWI455126B (zh) 2014-10-01

Similar Documents

Publication Publication Date Title
JP5517089B2 (ja) ソリッドステートデバイス内のオブジェクト指向メモリ
KR101801147B1 (ko) 데이터 신뢰성을 개선하는 데이터 관리 방법 및 그에 따른 데이터 저장 장치
US9329931B2 (en) Solid state drive emergency pre-boot application providing expanded data recovery function
US11157357B2 (en) Operation methods of memory system and host, and computing system
US11755315B2 (en) Boot ROM update method and boot-up method of embedded system
US20200089410A1 (en) Apparatus and method for retaining firmware in memory system
US11138080B2 (en) Apparatus and method for reducing cell disturb in an open block of a memory system during a recovery procedure
KR102641107B1 (ko) 스토리지 장치, 이를 포함하는 시스템 및 그 동작 방법
TWI783012B (zh) 記憶體系統、其操作方法以及包括其的資料處理系統
US20180373629A1 (en) Memory system and operating method thereof
TW202236098A (zh) 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元
US11698970B2 (en) Double wrapping for verification
US11815985B2 (en) Apparatus and method for checking an operation status of a memory device in a memory system
TW202344970A (zh) 基於資料優先級的風險評估方法、記憶體儲存裝置及記憶體控制電路單元
TWI810865B (zh) 表格排序方法、記憶體儲存裝置及記憶體控制電路單元
TWI826161B (zh) 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元
US11893275B2 (en) DRAM-less SSD with recovery from HMB loss
US11809742B2 (en) Recovery from HMB loss
TWI814501B (zh) 映射表重建方法、記憶體儲存裝置及記憶體控制電路單元
TWI834149B (zh) 表格管理方法、記憶體儲存裝置及記憶體控制電路單元
US20240004641A1 (en) Memory system firmware update using virtual slots
CN113360429A (zh) 数据重建方法、存储器存储装置及存储器控制电路单元

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130517

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130528

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20130827

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130827

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20131001

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20140129

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140129

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20140205

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: 20140225

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140320

R150 Certificate of patent or registration of utility model

Ref document number: 5517089

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250