JP5823875B2 - 固体メモリフォーマッティング - Google Patents

固体メモリフォーマッティング Download PDF

Info

Publication number
JP5823875B2
JP5823875B2 JP2011546264A JP2011546264A JP5823875B2 JP 5823875 B2 JP5823875 B2 JP 5823875B2 JP 2011546264 A JP2011546264 A JP 2011546264A JP 2011546264 A JP2011546264 A JP 2011546264A JP 5823875 B2 JP5823875 B2 JP 5823875B2
Authority
JP
Japan
Prior art keywords
data
memory
physical block
padding
memory array
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.)
Active
Application number
JP2011546264A
Other languages
English (en)
Other versions
JP2012515955A (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 JP2012515955A publication Critical patent/JP2012515955A/ja
Application granted granted Critical
Publication of JP5823875B2 publication Critical patent/JP5823875B2/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
    • 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/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • 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
    • 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
    • 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/0608Saving storage space on 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • 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/0638Organizing or formatting or addressing of data
    • G06F3/0643Management of files
    • 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7202Allocation control and policies

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)
  • Memory System (AREA)
  • Read Only Memory (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Description

本開示は、一般に、半導体メモリデバイス、方法およびシステムに関し、より詳細にはソリッドステートドライブフォーマッティングに関する。
メモリデバイスは、典型的には、コンピュータまたはその他の電子デバイス内部の半導体集積回路として提供される。揮発性メモリおよび不揮発性メモリを含む、多くの異なるタイプのメモリがある。揮発性メモリは、そのデータを維持するために電力を必要とすることがあり、とりわけ、ランダムアクセスメモリ(RAM)、ダイナミックランダムアクセスメモリ(DRAM)、およびシンクロナスダイナミックランダムアクセスメモリ(SDRAM)を含む。不揮発性メモリは、電力が供給されていないときに、保存した情報を保持することによって永続データを提供することができ、とりわけ、NANDフラッシュメモリ、NORフラッシュメモリ、リードオンリーメモリ(ROM)、電気的消去書込み可能型ROM(EEPROM)、消去可能型ROM(EPROM)、および相変化ランダムアクセスメモリ(PCRAM)を含み得る。
複数のメモリデバイスを組み合せて、ソリッドステートドライブ(SSD)を形成することができる。ソリッドステートドライブは、様々な他のタイプの不揮発性メモリおよび揮発性メモリのうち、不揮発性メモリ、たとえば、NANDフラッシュメモリおよびNORフラッシュメモリを含むことができ、ならびに/あるいは、揮発性メモリ、たとえば、DRAMおよびSRAMを含むことができる。
ソリッドステートドライブは、性能、サイズ、重量、耐久性、動作温度範囲、および電力消費量の点でハードドライブに勝る利点を有し得るので、SSDは、コンピューター用の主な記憶装置としてハードディスクドライブの代わりに使用することができる。たとえば、SSDは、移動する部分がなく、それにより、シーク時間、待ち時間、磁気ディスクドライブと関連付けられたその他の電気力学的遅延を回復することができることに起因して、磁気ディスクドライブと比較したときに、すぐれた性能を有し得る。SSD製造業者は、不揮発性フラッシュメモリを使用して、内部バッテリー供給を使用しななくてもよいフラッシュSSDを創出することができ、したがって、ドライブをより多目的でコンパクトにすることができる。
SSDは、複数のメモリデバイス、たとえば、複数のメモリチップを含むことができる(本明細書で使用する場合、「複数の」ものは、かかるもののうち1つまたは複数を指すことがあり、たとえば、複数のメモリデバイスは、1つまたは複数のメモリデバイスを指すことがある)。当業者には明らかなように、メモリチップは、複数のダイを含むことができる。それぞれのダイは、複数のメモリアレイと、その上の周辺回路とを含むことができる。メモリアレイは、複数の物理ブロックに編成された複数のメモリセルを含むことができ、この物理ブロックを、複数のページへと編成することができる。
いくつかの記憶アプリケーションの場合、SSDを、ハード(ディスク)ドライブの代わりに、またはハード(ディスク)ドライブを補完するために使用することができる。これらの例では、SSDsは、ハードドライブの機能に順応するように設計された環境に設置することができる。SSDとハードドライブとの間の最も小さな消去可能ユニットの粒状度または量子化の差(たとえば、ハードドライブに対する512バイトセクタ対SSD中の128kまたは256kブロック)に起因して、コンピューティングデバイス中のハードドライブの代わりに、またはコンピューティングデバイス中のハードドライブの補完として使用されるSSDは、ピーク性能レベルで動作しないことがある。
本開示の1つまたは複数の実施形態にしたがって動作することができる電子メモリシステムの機能ブロック図である。 本開示の1つまたは複数の実施形態によるメモリアレイの一部分の図である。 本開示の1つまたは複数の実施形態による複数のメモリアレイに関するファイルシステムの図である。 本開示の1つまたは複数の実施形態による、ブロック境界と整列したユーザデータを有する複数のメモリアレイに関するファイルシステムの図である。 本開示の1つまたは複数の実施形態による、ブロック境界と位置合わせされたファイル割当てテーブルおよびユーザデータを有する複数のメモリアレイに関するファイルシステムの図である。
本開示は、ソリッドステートドライブフォーマッティングのための方法およびデバイスを含む。1つのデバイス実施形態は、複数のメモリアレイに結合された制御回路を含み、各メモリアレイは、メモリセルの複数の物理ブロックを有する。メモリアレイは、システムデータが物理ブロック境界で終了する様にはシステムデータを複数のメモリアレイに書き込み、ユーザデータが物理ブロック境界から開始する様にユーザデータを複数のメモリアレイを書き込むように構成された制御回路によってフォーマットすることができる。
以下に、添付の図面を参照して本開示を詳細に記載するが、添付の図面は本開示の一部を形成し、どのように本開示の1つまたは複数の実施形態を実施することができるかを例として示すものである。これらの実施形態は、当業者が本開示の実施形態を実施できるように十分に詳細に記載され、本開示の範囲から逸脱することなく、その他の実施形態を利用することができ、プロセス、電気的および/または構造的な変更をなし得ることを理解されたい。本明細書で使用されている様に特に図面の参照番号に関する表記「N」、「M」、「R」および「S」は、本開示の1つまたは複数の実施形態とともに、そのように表示された複数の具体的なフィーチャを含むことができることを示す。
本明細書の各図は、最初の1桁または複数の桁が図番号に対応し、残りの桁が図面のエレメントまたは構成要素を特定するナンバリング規約に従う。異なる図面の同様のエレメントまたは構成要素は、同様の桁を使用していることによって識別することができる。たとえば、130は、図1の参照エレメント「30」を指すことができ、同様のエレメントは図2において230として示されている。理解されるように、本明細書の様々な実施形態で示されるエレメントは、本開示の複数のさらなる実施形態を提供するように、付加、交換、および/または除去することができる。さらに、理解されるように、各図に提供されるエレメントの比率および相対的な縮尺は、本発明の実施形態を例示することを意図するものであり、限定的な意味で解釈されるべきではない。
図1は、本開示の1つまたは複数の実施形態にしたがって動作することができる電子メモリシステム120の機能ブロック図である。図1に例示された実施形態では、メモリシステム120は、たとえば、ソリッドステートドライブ(SSD)であり得る。図1に例示されるように、システム120は、メモリコントローラ101と、ホストインターフェースコネクタ103と、複数のメモリアレイ130−1,...,130−N、たとえば、複数のフラッシュアレイのような複数の固体メモリアレイとを含むことができる。
インターフェース103を使用して、メモリシステム120とホストシステム102のような別のデバイスとの間で情報を通信することができる。ホストシステム102は、メモリアクセスデバイス、たとえばプロセッサを含むことができる。当業者には、「プロセッサ」は、並行処理システム、コプロセッサなどのような1つまたは複数のプロセッサを意図できることが理解できよう。ホストシステムの例には、ラップトップコンピュータ、パーソナルトップコンピュータ、デジタルカメラ、デジタル記録再生デバイス、PDA、メモリカードリーダ、インターフェースハブなどが含まれる。1つまたは複数の実施形態では、インターフェース103は、標準化されたインターフェースの形態とすることができる。たとえば、ホストインターフェースコネクタ103は、その他のコネクタまたはインターフェースのうち、シリアルアドバンスドテクノロジーアタッチメント(SATA)、周辺構成機器相互接続エクスプレス(PCIe)、またはユニバーサルシリアルバス(USB)とすることができる。しかしながら、一般には、インターフェース103は、メモリシステム120とインターフェース103に対して適合可能レセプタを有するホストシステム102との間で、制御信号、アドレス信号、データ信号またはその他の信号をパスするためのインターフェースを提供することができる。
メモリコントローラ101は、その他のオペレーションのうち、データを検知し、プログラムし、消去するために、アレイ130−1,...,130−Nと通信することができる。メモリコントローラ101は、1つまたは複数の集積回路および/または個別の構成要素とすることができる回路を有することができる。1つまたは複数の実施形態では、メモリコントローラ101中の回路は、複数のメモリアレイにわたるアクセスを制御し、および/または外部ホストとメモリシステム120との間に変換レイヤを提供するための制御回路を含むことができる。したがって、メモリコントローラは、適時に適当なI/O接続で適当な信号を受信するために、メモリアレイのI/O接続(図1には図示されていない)に選択的に結合することができる。同様に、ホスト102とメモリシステム120との間の通信プロトコルは、アレイ130−1から130−Nのようなメモリアレイのアクセスに必要とされるものとは異なってもよい。次いで、メモリコントローラ101は、メモリアレイへの所望のアクセスを達成するために、ホスト、たとえば102から受信したコマンドを適当なコマンドに変換することができる。
メモリアレイ130−1,...,130−Nは、たとえば、NANDアーキテクチャを有するフラッシュメモリセルのアレイとすることができる不揮発性メモリセルとすることができる。NANDアーキテクチャでは、「行」のメモリセルの制御ゲートをワード線と結合することができ、「列」のメモリセルのドレイン領域をビット線に結合することができる。メモリセルのソース領域はソース線に結合することができる。当業者には理解できるように、メモリセルをビット線およびソース線に接続する様式は、アレイがNANDアーキテクチャかどうか、NORアーキテクチャかどうか、ANDアーキテクチャかどうか、または何らかのその他のメモリアレイアーキテクチャかどうかに左右される。
図1の実施形態は、追加の回路を含むことができるが、本開示の諸実施形態を不明瞭にしないように追加の回路は例示しない。たとえば、メモリシステム120はI/O回路を通ってI/O接続を介して提供されるアドレス信号にラッチするためのアドレス回路を含むことができる。アドレス信号を行デコーダおよび列デコーダによって受信および復号して、メモリ130−1,...,130−Nにアクセスすることができる。当業者には、アドレス入力接続の数は、メモリ130−1,...,130−Nの密度およびアーキテクチャに依存し、アドレスの数は、メモリセルの数の増加と、メモリブロックおよびアレイの数の増加の両方とともに増加することとが理解できよう。
図2は、本開示の1つまたは複数の実施形態による、メモリアレイ230の一部分の図を示す。図2には示されていないが、当業者には、メモリアレイ230は、その動作に関連付けられた様々な周辺回路に沿って、特定の半導体ダイ上に配置できることが理解できよう。
図2に示されるように、アレイ230は、メモリセルの複数の物理ブロック240−0(ブロック0),240−1(ブロック1),...,240−M(ブロックM)を有する。図1に示した例では、表示「M」は、アレイ230が複数の物理ブロックを含むことができることを示すために使用される。メモリセルは、シングルレベルのセルおよび/またはマルチレベルのセルとすることができる。一例として、アレイ230中の物理ブロックの数は、128個のブロック、512個のブロック、または1,024個のブロックとすることができるが、実施形態は、アレイ230中の具体的には128個 の特定の倍数、または任意の特定の数の物理ブロックに限定されるものではない。さらに、実施形態は、アレイ中で使用されるメモリのタイプ、たとえば、不揮発性、揮発性などに限定されるものではない。図2に例示された実施形態では、メモリアレイ230は、たとえば、NANDフラッシュメモリアレイ230とすることができる。
この例では、物理ブロック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とすることができるが、実施形態は、1物理ブロックにつき、特定の数の行250−0,250−1,...,250−Rに限定されるものではない。
当業者には明らかなように、各行250−0,250−1,...,250−Rは、1つまたは複数のページのデータを記憶することができる。ページとは、たとえば、一緒にまたはメモリセルの機能グループとして複数のセルをプログラムする、および/または読み取る単位を指す。図1に示された実施形態では、各行250−0,250−1,...,250−Rは、1ページのデータを記憶する。しかしながら、本開示の実施形態はそのように限定されるものではない。たとえば、本開示のいくつかの実施形態では、各行は、複数のページのデータを記憶することができる。たとえば、行内の各セルは、上側ページのデータに向かうビットに寄与することができ、下側ページのデータに向かうビットに寄与することができる。1つまたは複数の実施形態では、メモリアレイは、メモリセルの複数の物理ブロックを含むことができ、各物理ブロックは、複数のページへと編成することができる。
本開示の1つまたは複数の実施形態では、図2に示したように、行250−0のような行は、複数の物理セクタ252−0,252−1,...,252−Sにしたがってデータを記憶することができる。表示「S」は、行、たとえば、250−0,250−1,...,250−Rが複数の物理セクタを含むことができることを示すために使用される。各物理セクタ252−0,252−1,...,252−Sは、論理セクタに対応するデータを記憶することができ、誤り訂正コード(ECC)情報および論理ブロックアドレス(LBA)情報、ならびにユーザデータのようなオーバーヘッド情報を含むことができる。当業者には明らかなように、論理ブロックアドレス指定は、情報の論理セクタを識別するために、ホストによってしばしば使用されるスキームである。一例として、データの論理セクタは、複数バイト、たとえば、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バイトを超える、または512バイト未満のデータを含むことができる単一の論理セクタに対応するデータを記憶することができる。
図3は、本開示の1つまたは複数の実施形態による複数のメモリアレイ330に関するファイルシステムの図を示す。1つまたは複数の実施形態では、複数の物理ブロックを使用してシステムデータを記憶することができ、複数の物理ブロックを使用してユーザデータを記憶することができる。図3に例示された実施形態では、システムデータは、パーティションブートレコード(PBR)364と、予約データ366と、第1のファイル割当てテーブル368と、第2のファイル割当てテーブル370を含むことができる。システムデータは、複数のメモリアレイ330に関するファイルシステムの構造および動作に関係するデータを含むことができる。一例として、ファイル割当てテーブル、たとえば368および370は、メモリアレイ、たとえば330のどの区域が記憶されたデータを有し、利用可能または利用不可能である可能性があるか、また、メモリアレイ中のどこにデータが記憶されるかに関する情報を集中化するファイル割当てデーを含んでいることがある。様々な実施形態では、2つのファイル割当てテーブルは、ファイル割当てテーブルのうちの1つの潜在的な失敗に対するバックアップとして作用するファイル割当てテーブルのうちの1つとともに使用することができる。たとえば、予約データ366は、メモリアレイに関する情報を含んでいるデータを含むことができ、メモリアレイの動作を可能にするために、メモリアレイによって使用することができる。
図3に例示された実施形態では、ユーザデータは、たとえば、図1に示されたホスト102のようなホストデバイスから受信したデータとすることができる。ユーザデータ362は、複数回、書き込み、読み取り、および消去することができる。
1つまたは複数の実施形態では、ホスト102のようなホストデバイス、および/またはコントローラ101のようなコントローラ中の制御回路は、たとえば、データが所望の様式でメモリアレイに書き込まれるように、コマンドをメモリアレイに通信することができる。ホストデバイスおよび/または制御回路からのコマンドは、各コマンドと関連付けられたデータ用のページの始めに、データを書き込むように構成することができる。また、1つまたは複数の実施形態では、ホストデバイスおよび/または制御回路からのコマンドは、消去されたブロックにデータを書き込むとき、物理ブロックの第1のページ、たとえば、物理ブロック境界にデータを書き込むように構成することができる。1つまたは複数の実施形態では、フォーマットされたメモリデバイスは、メモリアレイのページの第1のメモリセル、たとえば、ページ境界にデータを書き込むために、および/または空白の、たとえば、消去されたページの始めにデータを書き込むために、ホストデバイスおよび/または制御回路からのコマンドを使用することができる。
1つまたは複数の実施形態では、メモリアレイをフォーマットすることは、PBRデータを書き込むことを含むことができ、PBRは、システムおよびユーザデータ用のメモリアレイ中のスペースに割り当てることができる。PBRデータ構造は、ユーザデータおよびシステムデータが物理ブロックの始めから開始するように構築および/または構成することができる。書き込みコマンドがメモリアレイによって受信されると、PBRは、コマンドに、メモリアレイ中のモジュラス増分がそれぞれ、確実に物理ブロックおよび/またはページの始めになるように計算されるモジュラスに対応して、メモリアレイ中の次の利用可能なロケーションにデータを書き込ませる。
1つまたは複数の実施形態では、フォーマットすることは、メモリアレイ中のシステムデータおよびユーザデータのロケーションを決定するために、メモリアレイに関するシステムデータおよび/またはメタデータを使用することを含む。1つまたは複数の実施形態では、システムデータおよび/またはメタデータは、その他のパラメータのうち、メモリアレイサイズ、ページサイズ、ブロックサイズ、ファイルシステムタイプ、メディアタイプ、およびメモリセルタイプのような物理パラメータを含むことができる。記憶スペース、たとえばユーザデータを記憶するために利用できるセクタは、割当てユニットに量子化することができる。割当てユニット、たとえばクラスタは、複数のセクタを含むことができる。割当てユニット中のセクタの数は、メモリアレイに関するシステムデータおよび/またはメタデータによって特定することができる。たとえば、メモリアレイ中のセクタは512バイトで構成することができ、割当てユニットは、8個のセクタを有し、それにより、4096バイトの割当てユニットを生じることができる。したがって、この例では、それぞれが4096バイトを含んでいる連続する割当てユニットは、以前の割当てユニットの論理アドレスに8を付加することによって、ホストによりアドレス指定することができる。
1つまたは複数の実施形態では、ページ中のセクタの数、たとえばページサイズである、書き込み動作に関するセクタの最低数量、および/またはブロック中のページの数、たとえばブロックサイズである、消去動作に関するページの最低数量を、メモリアレイメタデータおよび/またはシステムデータによって規定される割当てユニットとともに使用して、メモリアレイに関するモジュラスを決定することができる。このモジュラスを使用して、システムデータおよびユーザデータの構成成分の開始ロケーションを決定するためにメモリアレイをフォーマットすることができる。
たとえば、SSDは、1ページに4個、8個または16個のセクタ(ただし、1セクタは512バイトとすることができる)を有することができ、SSDは、1物理ブロックにつき128ページ、256ページまたは512ページを有することができ、したがって、物理ブロックサイズは、131072バイト、262144バイトおよび524288バイトとなる。本開示の実施形態はこの例に限定されるものではなく、セクタ、ページおよび物理ブロックは、任意のバイト数で構成することができる。
1つまたは複数の実施形態では、メモリアレイをフォーマットすることは、システムデータおよびユーザデータの構成成分の開始ロケーションを決定するときに使用するためのモジュラスを決定するために、ページサイズ、ブロックサイズ、および割当てユニットを使用することを含むことができる。フォーマット中、ホストは、メモリアレイのSSDの組織に関する知識、具体的には、書き込み動作または消去動作の最低サイズに影響を与えるそれらの要件、ならびに、メモリアレイ用の、たとえば、フォーマットを決定するために使用されるFAT1およびFAT2サイズのような選択されたファイルシステムのメタデータ構造に関するホストの知識、たとえば、システムデータおよびユーザデータの構成成分のロケーションを使用することができる。たとえば、PBR、予約データ、FAT1、FAT2、およびユーザデータの開始ロケーションは、モジュラス、ならびにメモリアレイに関するメタデータおよび/またはシステムデータを使用して規定することができる。このフォーマッティングは、物理ブロックの始めにこれらの部分のそれぞれを整列させる。
デバイスがフォーマットされると、ホストは、モジュラスおよび割当てユニットと整列するユーザデータを読み取る、または書き込むように要求する。たとえば、FATタイプファイルシステムは、割当てユニットを、1割当てユニットにつき最大64セクタの小容量デバイスに関する論理ブロックマッピングへの1:1割当てユニットで開始する、増加する2の累乗で512バイトセクタの複数のグループに編成するのが最も一般的である。たとえば、割当てユニットごとに64セクタの場合には、ホストによるアクセスは、固定されたオフセットが、先行システム、またはインターレースシステム、たとえば、メタデータ、エントリのサイズに依存するアドレスに付加さているモジュラス64であるアドレスで見られることになる。
SSDが、ページ境界に整列されていない書き込みコマンドを受信すると、書き込みコマンドの開始論理ブロックによって示されるセクタに先行するページ中のそれらのセクタは、書き込みコマンドによってアクセスされるページにコピーされ、その結果、余計なオーバーヘッドを生じ、また、それらのセクタの古いロケーションも消去する必要があるので、メモリアレイにさらなる書き込みが生じる。フォーマットされたSSDは、性能が向上し、非整列フォーマットによって引き起こされる追加の書き込みを最小限に抑えることによって、SSDの寿命が延びる。
1つまたは複数の実施形態では、余計なオーバーヘッド、および/または新しいデータがホストによって書き込まれたときにデバイスが実行しなければならない余計な読み取り/書き込み動作の量を最小にするフォーマットが望まれる。
1つまたは複数の実施形態では、SSDのページサイズおよび/または消去ブロックサイズに関する知識、たとえばメタデータおよび/またはシステムデータの知識が全くないホストは、メモリアレイ容量が2の累乗に量子化できるという事実に基づいて、メモリアレイをフォーマットすることができる。メモリアレイは、システムデータおよびユーザデータの構成成分、たとえば、割当てユニットの論理アドレスを、2の累乗に基づいて整列させることによってフォーマットすることができる。2の累乗に基づいてシステムデータおよび割当てユニットを整列させる1つまたは複数の実施形態では、ホストコマンドで受信された論理アドレスのメモリアレイ変換は、受信した論理アドレスに追加のオフセットを付加することができず、あるいは、オフセットが使用される場合には、追加のオフセットもまた2の累乗である。
本開示の実施形態にしたがってデータを書き込むことによってメモリアレイをフォーマットすることは、メモリアレイ上に新しいデータを書き込むことに関連付けられた動作オーバーヘッド量を低減させることができる。オーバーヘッドとは、ハードドライブとSSDとの間の最も小さな書き込み可能または消去可能ユニットのサイズの差による、フラッシュ(ページまたはブロック)アドレスに対する書き込みコマンドアドレスの非整列に起因して、書き込みコマンドによってアドレス指定されたメモリセルに加えて、コピーまたは移動しなければならない複数の追加のメモリセルを指すことができる。オーバーヘッドの低減は、メモリアレイをフォーマットすることは、空白の、たとえば、消去されたページの始めにデータを書き込ませることになるので、ページ上新しいデータストリングを書き込むために、書き込まれたページを部分的に移動させる必要性がないことに少なくとも部分的に基づくことができる。
また、論理ブロックおよび/または物理ブロック、ならびに/あるいはページ、メモリアレイがフォーマットされるときにより効率的に使用することができる。割当てユニットおよびシステムデータを論理ページ境界および/または論理ブロック境界、たとえば消去ブロックに整列させるフォーマットは、ホスト書き込みコマンドの論理アドレスに、物理ブロックまたはページの境界と一致させることができる。フォーマッティングは、データを、たとえば、物理ブロックの境界にある空白の、たとえば、消去された物理ブロックの始めに書き込ませることができる。ホスト書き込みコマンドの論理アドレスが、論理および/または物理ページ、ならびに/あるいはブロックの始めから開始するので、物理ブロックおよび/またはページ中のデータは、フォーマットされたメモリアレイで消去および再書き込みする頻繁度がへりこれにより整列しないフォーマットの場合のように、書き込みコマンド中で示される論理アドレスに先立つページおよび/または物理ブロック中のそれらのセクタを移動またはコピーさせる必要はない。
1つまたは複数の実施形態では、メモリアレイをフォーマットすることは、メモリアレイ(たとえば図1の130−1...130−N)上の消耗率を制御するように実装することができる摩耗レベリングを補完することができる。当業者には明らかなように、固体メモリアレイは、複数のプログラムおよび/または消去サイクル後に失敗を経験することがあるので、摩耗レベリングは、固体メモリアレイの寿命を増大させることができる。
様々な実施形態では、摩耗レベリングは、ブロックを再生するために移動される有効ブロック量を最小限にするための動的摩耗レベリングを含むことができる。動的摩耗レベリングは、複数の無効なページ(すなわち、異なるページに再書き込みされた、および/または無効なページではもはや必要ではないデータを有するページ)を有するブロックが、ブロックを消去することによって再生される、ガーベッジコレクションと呼ばれる技法を含むことができる。静的摩耗レベリングは、ブロックの寿命を延長するために高い消去数を有するブロックに静的データを書き込むことを含む。
1つまたは複数の実施形態では、複数のブロックは、メモリアレイにデータを書き込むことに関連付けられた書き込み増幅量を低減させるためのスペアブロックとして指定することができる。スペアブロックは、データを書き込むことができないブロックとして指定することができるメモリアレイのブロックとすることができる。書き込み増幅は、データを固体メモリアレイに書き込むときに行われるプロセスである。メモリアレイにデータをランダムに書き込むときには、メモリアレイは、アレイ中のフリースペースを走査する。メモリアレイ中のフリースペースは、プログラムされていないメモリセルの個別のセル、ページ、および/またはブロックとすることができる。データを書き込むのに十分なフリースペースがある場合、データは、メモリアレイ中のフリースペースに書き込まれる。1つのロケーションに十分なフリースペースがない場合、メモリアレイ中のデータは、メモリアレイにすでに存在しているデータを、メモリアレイに書き込まれるべき新たなデータのためのフリースペースを残す新たなロケーションに、消去、移動および再書き込みすることによって再構成される。メモリアレイ中の古いデータを再構成は、新たなデータを書き込むためにおこなわなければならないメモリアレイの書き込み量は、メモリアレイ中のフリースペースの量と、メモリアレイ上に書き込まれるべき新たなデータサイズとに基づいて増幅されるので、書き込み増幅と呼ぶことができる。フリースペースとして指定される(すなわち、静的データが書き込まれない)メモリアレイ上のスペースの量を増大させることによって、書き込み増幅を低減することができ、したがって、少ない量のデータが再構成されるので、書き込まれるべきデータの量のんど増幅させがへる。
1つまたは複数の実施形態では、メモリアレイをフォーマットすることは、書き込み増幅の量を低減させ、また、書き込み増幅を所望のレベルに制御するために必要とされる指定されたフリースペースの量を低減させるために使用することができる。フォーマットされたメモリアレイは、効率的な様式で、データで満たされており、物理ブロックおよびページの境界から開始、したがって、フォーマットされたメモリアレイ中のデータストングは、物理ブロックおよび/またはページの中央では始まらず、その結果、新たなデータ用のメモリアレイのスペースをフリーにするために、データストリングを別のロケーションに再書き込みしなければならない機会が減少する。
図4は、本開示の1つまたは複数の実施形態による、ブロック境界に整列したユーザデータを有する複数のメモリアレイ430用のファイルシステムの図を示す。図4において、複数のメモリアレイ430用のファイルシステムは、パーティションブートレコード464と、予約データ466と、第1のファイル割当てテーブル468(ファイル割当てテーブル1)と、第2のファイル割当てテーブル470(ファイル割当てテーブル2)とを含む。図4に例示された実施形態では、予約された部分466と第1のファイル割当てテーブル468はパディング472によって分離されている。パディング472は、システムデータまたはユーザデータを記憶するためには使用されない複数のメモリセルとすることができ、たとえば、パディング472のセルは、消去状態のままとすることができる。パディング472は、第2のファイル割当てテーブル470がブロック境界、たとえば474で終了するように、メモリアレイ430内に配置することができる。また、パディング472は、ユーザデータ462がブロック境界、たとえば474から開始するように、メモリアレイ430内に配置することができる。ユーザデータ462は、ブロック境界と整列させることができ、このユーザデータは、メモリアレイ430中の物理ブロック境界から開始することができる。
1つまたは複数の実施形態では、ソリッドステートドライブに書き込まれたシステムデータおよびユーザデータは、ソリッドステートドライブソリッドステートドライブの物理構造と整列させることができる。つまり、消去されたブロックに書き込まれるときには、物理ブロックの始めにデータが書き込まれ、消去されたページに書き込まれるときには、ページの始めにデータが書き込まれる。また、いくつかの実施形態では、データは、部分的に書き込まれたページには書き込まれず、次の利用可能な消去されたページにデータが書き込まれる。
1つまたは複数の実施形態では、ソリッドステートドライブ中のメモリアレイに関連付けられた様々な物理パラメータを、その他のメモリタイプのうち、ランダムアクセスメモリ(RAM)のようなソリッドステートドライブ上のメモリに記憶することができ、ソリッドステートドライブ上のメモリを介して、ソリッドステートドライブ中の制御回路に通信することができる。1つまたは複数の実施形態では、様々な物理パラメータは、ソリッドステートドライブ上のメモリから物理パラメータを受信したホストデバイスから通信することができる。物理パラメータは、その他のパラメータのうち、メモリアレイサイズ、ページサイズ、ブロックサイズ、ファイルシステムタイプ、メディアタイプ、およびメモリセルタイプを含むことができる。
1つまたは複数の実施形態では、物理パラメータが制御回路によって、またはホストデバイスによって知られると、データをメモリアレイに書き込むためのモジュラスが、制御回路またはホストデバイスによって計算される。モジュラスは、データを書き込むときに使用されるメモリセルの最小増分数とすることができる。このモジュラスは、メモリセルの総数、ブロックサイズ、ページサイズ、およびメモリアレイのメモリセルタイプに基づいて計算することができる。
1つまたは複数の実施形態では、ソリッドステートドライブのそれぞれの部分を、ソリッドステートドライブの物理パラメータと整列させることができる。様々な実施形態では、ソリッドステートドライブ上のデータの部分同士の間に、パディング、たとえばパディング472を設けることができる。パディングは、使用されないままでいる複数のセル、たとえば、消去された状態のままのセルとすることができ、データを書き込むためには使用されない。いくつかの実施形態では、ソリッドステートドライブの予約データとファイル割当てテーブルとの間にパディングを設けることができる。たとえば、図4に例示された実施形態では、予約データ466とファイル割当てテーブル468との間にパディング472を設けることができる。パディングは、ファイル割当てテーブルが、ブロック境界、たとえば474で終了するように配置することができ、それにより、ユーザデータの始点をファイル割当てテーブルが終了するブロック境界に続くブロックの始めに整列させることできる。
1つまたは複数の実施形態では、予約データと第1のファイル割当てテーブルとの間にパディングを提供することができ、それにより、第1のファイル割当てテーブルの始めをブロック境界と整列させる。様々な実施形態では、第1のファイル割当てテーブルと第2のファイル割当てテーブルの間にパディングを設けることができ、第2のファイル割当てテーブルをブロック境界に整列させる。様々な実施形態では、第2のファイル割当てテーブルとユーザデータの間にパディングを設けることができ、ユーザデータをブロック境界に整列させる。1つまたは複数の実施形態では、ソリッドステートドライブ上のデータの一部分をブロック境界と整列させるように、メモリアレイ中の様々なその他のロケーションにおいてパディングを使用する、たとえば、配置することができる。
図5は、本開示の1つまたは複数の実施形態にしたがって動作することができる、ブロック境界に整列しているファイル割当てテーブルおよびユーザデータを有する複数のメモリアレイ530用のファイルシステムの図を示している。図5において、複数のメモリアレイ530用のファイルシステムは、パーティションブートレコード564と、予約データ566と、第1のファイル割当てテーブル568(ファイル割当てテーブル1)と、第2のファイル割当てテーブル570(ファイル割当てテーブル2)とを有する。予約データ566と第1のファイル割当てテーブル568は、パディング576によって分離されている。パディング576は、図4について記載されたパディング472のようなパディングとすることができる。たとえば、パディング576は、データを記録するためには使用されない複数のメモリセルとすることができ、たとえば、データはセルに書き込む、またはセルから読み取ることができない。パディング576の一部であるメモリセルはブロック境界578で終了し、それにより、ブロック境界578で第1のファイル割当てテーブル568が開始する。第1のファイル割当てテーブル568に書き込まれたファイル割当てデータは、図5に例示されるように、境界578に続くブロックの始めと整列することができる。
図5において、第1のファイル割当てテーブル568と第2のファイル割当てテーブル570は、パディング580によって分離されている。パディング580の一部であるメモリセルはブロック境界582で終了し、それにより、ブロック境界582で第2のファイル割当てテーブル570が開始する。
図5において、第2のファイル割当てテーブル570とユーザデータ562は、パディング584によって分離されている。パディング584の一部であるメモリセルは、ユーザデータ562がブロック境界586で開始するように配置することができる。ユーザデータ562はブロック境界に整列することができ、ユーザデータは、メモリアレイ530中の物理ブロック境界で開始することができる。
結論
本開示は、ソリッドステートドライブフォーマッティングのための方法およびデバイスを含む。1つのデバイス実施形態は、複数のメモリアレイに結合された制御回路を含み、各メモリアレイは、メモリセルの複数の物理ブロックを有する。メモリアレイは、システムデータが物理ブロック境界で終了する場合には、複数のメモリアレイにシステムデータを書き込むように、ユーザデータは物理ブロック境界から開始する場合には、複数のメモリアレイにユーザデータを書き込むように構成された制御回路によってフォーマットされる。
具体的な実施形態を本明細書に例示し、記載してきたが、当業者には、同じ結果を達成するために計算された構成を、図示された具体的な実施形態と置換し得ることが理解できよう。本開示は、本開示の1つまたは複数の実施形態の適応例または変形例を網羅することを意図するものである。上述の記載は、例示的なものであり、限定的なものではないことを理解されたい。上述の記載を検討すると、上記実施形態の組み合わせ、および本明細書に具体的には記載されていないその他の実施形態が当業者には明らかになるであろう。本開示の1つまたは複数の実施形態の範囲は、上記構造および方法が使用されるその他の適用例を含む。したがって、本開示の1つまたは複数の実施形態の範囲は、添付の特許請求の範囲を参照して、そのような請求の範囲が与える等価物の全範囲とともに決定されるべきである。
前述の詳細な説明において、いくつかのフィーチャは、本開示を合理化するために、単一の実施形態にまとめてグループ化される。本開示の方法は、本開示の開示された実施形態が、各請求項に明示されるよりも多くのフィーチャを使用しなければならないという意図を反映して解釈するべきではない。むしろ、以下の特許請求の範囲が反映するように、本発明の主題は、単一の開示された実施形態のすべてのフィーチャよりも少ないフィーチャにおいて存在する。したがって、以下の特許請求の範囲は詳細な説明に組み込まれ、各請求項は、別個の実施形態の上に立脚する。

Claims (8)

  1. 複数の物理ブロックを有するメモリアレイに結合され、前記メモリアレイをフォーマットする制御回路を備えたメモリコントローラであって、
    前記メモリアレイにシステムデータを書き込み、該メモリアレイでは、該システムデータ内の第1のファイル割当てテーブルが前記複数の物理ブロックの内の第1の物理ブロックの境界で開始するよう、システムデータまたはユーザデータを記憶するためには使用されないメモリセルの第1のパディングを前記第1の物理ブロックとは異なる第2の物理ブロックに含ませることにより、前記第1のファイル割当てテーブルが前記第1の物理ブロックの一方の境界で開始し、さらに、システムデータまたはユーザデータを記憶するためには使用されないメモリセルの第2のパディングを前記第1の物理ブロックに含ませることにより、前記第1のファイル割当てテーブルと前記第2のパディングとの合計が前記第1の物理ブロックの他方の境界で終了し、かつ、
    前記メモリアレイにユーザデータを書き込み、前記メモリアレイでは、該ユーザデータが前記メモリアレイにおける前記第1および第2の物理ブロックと異なる第3の物理ブロックの境界で開始するよう、
    構成された制御回路を備えたメモリコントローラ。
  2. 前記制御回路は、
    該システムデータ内の第2のファイル割当てテーブルが前記複数の物理ブロックの内の前記第1、第2および第3の物理ブロックと異なる第4の物理ブロックの境界で開始するよう、前記第2のパディングを前記第1の物理ブロックに含ませることにより、前記第2のファイル割当てテーブルが前記第4の物理ブロックの一方の境界で開始し、さらに、システムデータまたはユーザデータを記憶するためには使用されないメモリセルの第3のパディングを前記第4の物理ブロックに含ませることにより、前記第2のファイル割当てテーブルと前記第3のパディングとの合計が前記第4の物理ブロックの他方の境界で終了するよう、
    さらに構成される、請求項1記載のメモリコントローラ。
  3. 前記制御回路は、
    前記第2のパディングが前記第1のファイル割当てテーブルと前記第2のファイル割当てテーブルとの間に含まれるよう、
    さらに構成される、請求項2記載のメモリコントローラ。
  4. 前記制御回路は、
    前記第3のパディングが前記第2のファイル割当てテーブルと前記ユーザデータとの間に含まれるよう、
    さらに構成される、請求項3記載のメモリコントローラ。
  5. 前記制御回路は、
    前記第1のパディングを前記第2の物理ブロックに含ませることにより、該システムデータ内のパーティションブートレコード、前記メモリアレイに関する情報を含み、前記メモリアレイの動作を可能にするために前記メモリアレイによって使用される予約データ、及び、前記第1のパディングの合計が前記第2の物理ブロックの境界で終了するよう、
    さらに構成される、請求項1から請求項4のいずれか1項に記載のメモリコントローラ。
  6. 前記制御回路は、
    前記第1のパディングが前記予約データと前記第1のファイル割当てテーブルとの間に含まれるよう、
    さらに構成される、請求項5記載のメモリコントローラ。
  7. 複数の物理ブロックを有するメモリアレイをフォーマットする方法であって、
    システムデータ内の第1のファイル割当てテーブルが前記複数の物理ブロックの内の第1の物理ブロックの境界で開始するよう、システムデータまたはユーザデータを記憶するためには使用されないメモリセルの第1のパディングを前記第1の物理ブロックとは異なる第2の物理ブロックに含ませることにより、前記第1のファイル割当てテーブルが前記第1の物理ブロックの一方の境界で開始するよう、さらに、システムデータまたはユーザデータを記憶するためには使用されないメモリセルの第2のパディングを前記第1の物理ブロックに含ませることにより、前記第1のファイル割当てテーブルと前記第2のパディングとの合計が前記第1の物理ブロックの他方の境界で終了するよう、前記メモリアレイに前記システムデータを書き込むことと、
    ユーザデータが前記メモリアレイにおける前記第1および第2の物理ブロックと異なる第3の物理ブロックの境界で開始するよう、前記メモリアレイに前記ユーザデータを書き込むことと、
    を含む方法。
  8. 前記システムデータ内の第2のファイル割当てテーブルが前記第1乃至第3の物理ブロックと異なり且つ前記第1および第3の物理テーブルの間にある第4の物理ブロックの境界で開始するよう、システムデータまたはユーザデータを記憶するためには使用されないメモリセルの第3のパディングを前記第4の物理ブロックに含ませることにより、前記第2のファイル割当てテーブルが前記第4の物理ブロックの一方の境界で開始すると共に、前記第2のファイル割当てテーブルと前記第3のパディングとの合計が前記第4の物理ブロックの他方の境界で終了するよう、前記メモリアレイに前記システムデータを書き込むこと、をさらに含む請求項7記載の方法。
JP2011546264A 2009-01-21 2010-01-15 固体メモリフォーマッティング Active JP5823875B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/356,725 US8392687B2 (en) 2009-01-21 2009-01-21 Solid state memory formatting
US12/356,725 2009-01-21
PCT/US2010/000099 WO2010090697A2 (en) 2009-01-21 2010-01-15 Solid state memory formatting

Publications (2)

Publication Number Publication Date
JP2012515955A JP2012515955A (ja) 2012-07-12
JP5823875B2 true JP5823875B2 (ja) 2015-11-25

Family

ID=42337852

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011546264A Active JP5823875B2 (ja) 2009-01-21 2010-01-15 固体メモリフォーマッティング

Country Status (7)

Country Link
US (3) US8392687B2 (ja)
EP (1) EP2389631B1 (ja)
JP (1) JP5823875B2 (ja)
KR (3) KR20110107857A (ja)
CN (1) CN102292711B (ja)
TW (1) TWI418980B (ja)
WO (1) WO2010090697A2 (ja)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US20120089765A1 (en) * 2010-10-07 2012-04-12 Huang Shih-Chia Method for performing automatic boundary alignment and related non-volatile memory device
JP5395824B2 (ja) * 2011-02-16 2014-01-22 株式会社東芝 メモリシステム
US9069703B2 (en) * 2011-04-29 2015-06-30 Seagate Technology Llc Encrypted-transport solid-state disk controller
JP2013077209A (ja) * 2011-09-30 2013-04-25 Nintendo Co Ltd プログラム、情報処理システム、情報処理装置、および情報処理方法
TWI467379B (zh) * 2012-04-23 2015-01-01 Phison Electronics Corp 系統運作方法、記憶體控制器與記憶體儲存裝置
CN103383663B (zh) * 2012-05-04 2016-06-29 群联电子股份有限公司 ***运作方法、存储器控制器与存储器
US9645917B2 (en) * 2012-05-22 2017-05-09 Netapp, Inc. Specializing I/O access patterns for flash storage
JP2015191336A (ja) * 2014-03-27 2015-11-02 キヤノン株式会社 メモリ制御装置、情報処理装置とその制御方法、及びプログラム
US9431052B2 (en) 2014-06-26 2016-08-30 Marvell World Trade Ltd. Two dimensional magnetic recording systems, devices and methods
US10338817B2 (en) * 2014-12-30 2019-07-02 Sandisk Technologies Llc Systems and methods for storage recovery
KR102322084B1 (ko) * 2015-04-30 2021-11-04 삼성디스플레이 주식회사 터치 센서 장치 및 그 제조 방법
JP2017004146A (ja) * 2015-06-08 2017-01-05 富士通株式会社 ストレージ制御装置
TWI554885B (zh) * 2015-08-18 2016-10-21 群聯電子股份有限公司 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置
CN106484307B (zh) * 2015-08-25 2019-05-21 群联电子股份有限公司 存储器管理方法、存储器控制电路单元及存储器存储装置
KR102502569B1 (ko) 2015-12-02 2023-02-23 삼성전자주식회사 시스템 리소스 관리를 위한 방법 및 장치
US10261876B2 (en) * 2016-11-08 2019-04-16 Micron Technology, Inc. Memory management
US10795836B2 (en) * 2017-04-17 2020-10-06 Microsoft Technology Licensing, Llc Data processing performance enhancement for neural networks using a virtualized data iterator
US20190227957A1 (en) * 2018-01-24 2019-07-25 Vmware, Inc. Method for using deallocated memory for caching in an i/o filtering framework
WO2020000492A1 (zh) 2018-06-30 2020-01-02 华为技术有限公司 一种存储碎片管理方法及终端
KR20200057473A (ko) * 2018-11-16 2020-05-26 삼성전자주식회사 스토리지 장치 및 이를 포함하는 스토리지 시스템
KR20200069889A (ko) 2018-12-07 2020-06-17 에스케이하이닉스 주식회사 컨트롤러, 이를 포함하는 메모리 시스템 및 이의 동작 방법
KR20200086143A (ko) * 2019-01-08 2020-07-16 삼성전자주식회사 저장 장치 및 그것의 데이터 처리 방법
IT201900000973A1 (it) 2019-01-23 2019-04-23 Cosimo Romano Sistema di riscaldamento a induzione
TWI738308B (zh) * 2020-04-27 2021-09-01 宇瞻科技股份有限公司 基於分頁模式備份資料的固態硬碟以及基於分頁模式的固態硬碟資料備份方法

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6125435A (en) 1995-09-13 2000-09-26 Lexar Media, Inc. Alignment of cluster address to block addresses within a semiconductor non-volatile mass storage memory
US5799168A (en) * 1996-01-05 1998-08-25 M-Systems Flash Disk Pioneers Ltd. Standardized flash controller
JP3588231B2 (ja) 1997-08-04 2004-11-10 東京エレクトロンデバイス株式会社 データ処理システム及びブロック消去型記憶媒体
JP2007293917A (ja) * 1997-08-08 2007-11-08 Toshiba Corp メモリシステムの制御方法
JP4079506B2 (ja) 1997-08-08 2008-04-23 株式会社東芝 不揮発性半導体メモリシステムの制御方法
US6725322B1 (en) 1999-02-22 2004-04-20 Renesas Technology Corp. Memory card, method for allotting logical address, and method for writing data
US6191712B1 (en) * 1999-06-28 2001-02-20 International Business Machines Corporation Circuit for aligning logical sectors with physical sectors in a disk storage system
CN1203395C (zh) * 1999-10-21 2005-05-25 松下电器产业株式会社 半导体存储卡的访问装置、计算机可读记录介质、初始化方法和半导体存储卡
US7085914B1 (en) * 2000-01-27 2006-08-01 International Business Machines Corporation Methods for renaming stack references to processor registers
JP3942807B2 (ja) * 2000-06-06 2007-07-11 株式会社ルネサステクノロジ ブロックアラインメント機能付き半導体記憶装置
US6745266B1 (en) * 2001-12-21 2004-06-01 Unisys Corporation Method and apparatus for disk cache translation between systems
JP4238514B2 (ja) * 2002-04-15 2009-03-18 ソニー株式会社 データ記憶装置
KR100749298B1 (ko) * 2003-08-06 2007-08-14 마쯔시다덴기산교 가부시키가이샤 반도체 메모리 카드, 액세스 장치 및 액세스 방법
US20050041453A1 (en) 2003-08-22 2005-02-24 Brazis Paul W. Method and apparatus for reading and writing to solid-state memory
US7383375B2 (en) * 2003-12-30 2008-06-03 Sandisk Corporation Data run programming
JP4130808B2 (ja) * 2004-01-30 2008-08-06 松下電器産業株式会社 フォーマット方法
JP4566621B2 (ja) * 2004-05-14 2010-10-20 富士通セミコンダクター株式会社 半導体メモリ
JP4177292B2 (ja) * 2004-05-31 2008-11-05 Tdk株式会社 メモリンコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP4157501B2 (ja) * 2004-06-30 2008-10-01 株式会社東芝 記憶装置
JP4177301B2 (ja) * 2004-07-29 2008-11-05 Tdk株式会社 メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
US7395404B2 (en) * 2004-12-16 2008-07-01 Sandisk Corporation Cluster auto-alignment for storing addressable data packets in a non-volatile memory array
US7509474B2 (en) * 2005-06-08 2009-03-24 Micron Technology, Inc. Robust index storage for non-volatile memory
US20070143566A1 (en) 2005-12-21 2007-06-21 Gorobets Sergey A Non-volatile memories with data alignment in a directly mapped file storage system
US7802232B2 (en) * 2006-03-31 2010-09-21 Microsoft Corporation Software robustness through search for robust runtime implementations
JP2008009919A (ja) * 2006-06-30 2008-01-17 Toshiba Corp カードコントローラ
WO2008016081A1 (fr) * 2006-08-04 2008-02-07 Panasonic Corporation Contrôleur de mémoire, dispositif de mémoire non-volatile, dispositif d'accès et système de mémoire non-volatile
JP2008112285A (ja) * 2006-10-30 2008-05-15 Toshiba Corp 不揮発性メモリシステム
US7791952B2 (en) * 2007-01-30 2010-09-07 Micron Technology, Inc. Memory device architectures and operation
US7774525B2 (en) 2007-03-13 2010-08-10 Dell Products L.P. Zoned initialization of a solid state drive
TWI362667B (en) * 2007-12-31 2012-04-21 Phison Electronics Corp Data writing method for flash memory and controller thereof

Also Published As

Publication number Publication date
US9626287B2 (en) 2017-04-18
KR20150070448A (ko) 2015-06-24
CN102292711B (zh) 2016-01-27
US20170199702A1 (en) 2017-07-13
TWI418980B (zh) 2013-12-11
KR20140016440A (ko) 2014-02-07
EP2389631A4 (en) 2012-08-22
TW201040719A (en) 2010-11-16
EP2389631B1 (en) 2018-08-08
KR20110107857A (ko) 2011-10-04
US20130254465A1 (en) 2013-09-26
US20100185802A1 (en) 2010-07-22
JP2012515955A (ja) 2012-07-12
US8392687B2 (en) 2013-03-05
WO2010090697A3 (en) 2010-10-28
WO2010090697A2 (en) 2010-08-12
CN102292711A (zh) 2011-12-21
EP2389631A2 (en) 2011-11-30
KR101759811B1 (ko) 2017-07-19

Similar Documents

Publication Publication Date Title
JP5823875B2 (ja) 固体メモリフォーマッティング
US10949344B2 (en) Garbage collection
US8930671B2 (en) Logical address offset in response to detecting a memory formatting operation
US9390004B2 (en) Hybrid memory management
JP5585919B2 (ja) 電源遮断管理
CN112463647A (zh) 使用散列来减小前向映射表的大小

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130827

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131121

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20131121

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20140422

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140716

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20140716

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

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20140730

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20140822

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20140903

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20141030

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150826

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20150826

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20151008

R150 Certificate of patent or registration of utility model

Ref document number: 5823875

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