JP2015530685A - ソリッドステートドライブにおける物理論理マッピングのための方法、装置及びシステム - Google Patents

ソリッドステートドライブにおける物理論理マッピングのための方法、装置及びシステム Download PDF

Info

Publication number
JP2015530685A
JP2015530685A JP2015535725A JP2015535725A JP2015530685A JP 2015530685 A JP2015530685 A JP 2015530685A JP 2015535725 A JP2015535725 A JP 2015535725A JP 2015535725 A JP2015535725 A JP 2015535725A JP 2015530685 A JP2015530685 A JP 2015530685A
Authority
JP
Japan
Prior art keywords
page
physical
journal
pages
entry
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
JP2015535725A
Other languages
English (en)
Other versions
JP6210570B2 (ja
JP2015530685A5 (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 JP2015530685A publication Critical patent/JP2015530685A/ja
Publication of JP2015530685A5 publication Critical patent/JP2015530685A5/ja
Application granted granted Critical
Publication of JP6210570B2 publication Critical patent/JP6210570B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/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
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages

Abstract

データストレージデバイスは、それぞれが所定の物理位置に記憶される、物理ページを記憶する複数の不揮発性メモリデバイスを備える。コントローラは、メモリデバイスと接続されてもよく、かつ複数の論理ページ(L−ページ)に記憶されるように構成され、それぞれは、コントローラが、物理ページに記憶されたデータを論理参照可能にするL−ページ番号と関連付けられる。揮発性メモリは、コントローラが、各L−ページに記憶されたデータの、物理ページ内の、物理位置を決定可能にする論理物理アドレス変換マップを含んでもよい。コントローラは、物理論理対応を定義するジャーナルをメモリデバイスに維持するように構成されてもよく、各ジャーナルは、物理ページの所定の範囲をカバーし、かつ1以上の物理ページを各L−ページに関連付ける複数のエントリを含む。コントローラは、読み出したジャーナルからアドレス変換マップを開始及び再構築すると、ジャーナルを読みだしてもよい。【選択図】図2

Description

ソリッドステートドライブ(SSDs)におけるフラッシュメモリの性質により、データは、通常、ページによって書き込まれ、ブロックによって消去される。SSDのページは、通常、8−16キロバイト(KB)の大きさであり、ブロックは、多数のページ(a large number of pages)からなる(例えば、256又は512)。よって、SSDにおける特定の物理位置(例えば、ページ)は、磁気ハードディスクドライブのようにブロック内の同一ページのデータを上書きするものではなく、直接上書きされることができない。そのようなものとして、アドレス間接参照が必要である。SSDのようなデータストレージデバイス上のフラッシュメモリを管理し、ホストシステムとインターフェース接続する従来のデータストレージデバイスコントローラは、フラッシュトランスレーションレイヤ(flash translation layer(FTL))の一部であるロジカルブロックアドレッシング(Logical Block Addressing(LBA))として知られる論理物理マッピングシステム(Logical to Physical(L2P) mapping system)を用いる。新たなデータを、既に書き込まれた古いデータに置き換えるとき、データストレージデバイスコントローラは、新たなデータを新たな位置に書き込ませ、新たな物理位置を指し示すために論理マッピングを更新させる。古い物理位置は有効なデータを保持していないため、最終的には、再び書き込まれる前に消去される。
従来、大規模なL2Pマップテーブルは、SSD上の論理エントリを物理アドレス位置へマップしている。ダイナミックランダムアクセスメモリ(DRAM)のような揮発性メモリに存在するこの大規模なL2Pマップテーブルは、通常、書き込みの際に更新され、小さなセクションの不揮発性メモリに保存される。例えば、ランダム書き込みが生じた場合、システムは、1つのエントリのみを更新する必要があるが、それにもかかわらず、不揮発性メモリに対して、更新されなかったエントリを含むテーブル全体又はその一部をセーブしなければならず、これは、本質的に非効率的である。
図1は、SSD用の従来のロジカルブロックアドレッシング(LBA)スキームの態様を示す。図1に示されるように、マップテーブル104は、データストレージデバイスのフラッシュメモリ106に対して定義された論理ブロック103ごとに1つのエントリを含む。例えば、512バイトの論理ブロックをサポートする64GBのSSDは、それ自体が125,000,000の論理ブロックを有するものとしてホストに存在してもよい。マップテーブル104における1つのエントリは、フラッシュメモリ106における125,000,000の論理ブロックのそれぞれの現在位置を含む。従来のSSDでは、フラッシュページは、整数個の論理ブロックを保持する(つまり、論理ブロックは、フラッシュページに亘って広がらない)。この従来の例では、8KBのフラッシュページは、(サイズが512バイトの)16の論理ブロックを保持する。よって、論理物理アドレスマップテーブル104における各エントリは、論理ブロックが記憶されるフラッシュダイを特定するフィールド108と、論理ブロックが記憶されるフラッシュブロックを特定するフィールド110と、フラッシュブロック内のフラッシュページを特定する別のフィールド112と、論理ブロックデータが、特定されたフラッシュページで開始することを特定するフラッシュページ内のオフセットを特定するフィールド114と、を含む。サイズの大きなマップテーブル104は、テーブルが、SSDコントローラ内に保持されることを防ぐ。従来、大きなマップテーブル104は、SSDコントローラに接続される外部DRAMに保持されていた。マップテーブル104が揮発性DRAMに記憶されると、大きなサイズのテーブルにより、SSDの電源が投入され、その時間が長く掛かるとき、再度記憶されなければならない。
論理ブロックが読み出されるとき、マップテーブル104における対応するエントリは、読み出されるべきフラッシュメモリにおける位置を決定するために読み出される。その後、読み出しは、マップテーブル104における対応するエントリに特定されるフラッシュページに対して行われる。読みだしたデータが、フラッシュページに対して利用可能であるとき、マップエントリによって特定されるオフセットでデータは、SSDからホストへ転送される。論理ブロックが書き込まれたとき、マップテーブル104における対応するエントリは、論理ブロックの新たな位置を反映するように更新される。論理ブロックが書き込まれたとき、フラッシュメモリは、初めに、少なくとも2つのバージョンの論理ブロック、すなわち、有効な、直前に書き込まれたバージョン(マップテーブル104によって指し示される)と、少なくとも1つの別の、使われない、もはやマップテーブル104におけるいずれのエントリによっても指し示されない、古いバージョンと、を含むことを留意すべきである。これらの「使われない(stale)」データは、ガベージといい、これは、集め、消去され、かつ将来の使用のために利用可能となることが説明されなければならない領域を占有する。
図1は、SSD用の従来のロジカルブロックアドレッシング(LBA)スキームの態様を示す。 図2は、一実施形態に係るデータストレージデバイスの物理及び論理データ構成の態様を示す図である。 図3は、一実施形態に係る、論理物理アドレス変換マップ及びその実例となるエントリを示す。 図4は、一実施形態に係る、論理物理アドレス変換マップを更新し、S−ジャーナルエントリを生成する方法の態様を示す。 図5は、一実施形態に係る、S−ジャーナルのブロック図である。 図6は、一実施形態に係る、S−ジャーナルの1つのエントリの例示的な構成を示す。 図7は、一実施形態に係る、スーパーブロック(S−ブロック)のブロック図である。 図8は、一実施形態に係る、スーパーページ(S−ページ)の別の図を示す。 図9Aは、一実施形態に係る、論理物理アドレス変換マップ、S−ジャーナル及びS−ブロックの関係を示す。 図9Bは、一実施形態に係る、S−ジャーナルマップのブロック図である。 図10は、一実施形態に係る、論理物理アドレス変換マップを更新する方法の態様を示すブロック図である。 図11は、一実施形態に係る、論理物理アドレス変換マップを更新する方法の別の態様を示すブロック図である。 図12は、一実施形態に係る、論理物理アドレス変換マップを更新する方法の更に別の態様を示すブロック図である。 図13は、一実施形態に係る、論理物理アドレス変換マップを更新する方法の更に別の態様を示すブロック図である。 図14は、一実施形態に係る、S−ジャーナル及びS−ジャーナルマップを更新する方法の態様を示すブロック図である。 図15は、一実施形態に係る、S−ジャーナル及びS−ジャーナルマップを更新する方法の別の態様を示すブロック図である。 図16は、一実施形態に係る、S−ジャーナル及びS−ジャーナルマップを更新する方法の更に別の態様を示すブロック図である。 図17は、一実施形態に係る、S−ジャーナル及びS−ジャーナルマップを更新する方法の更に別の態様を示すブロック図である。 図18は、一実施形態に係る、ガベージコレクションの態様を示すブロック図である。 図19は、一実施形態に係る、ガベージコレクションの別の態様を示すブロック図である。 図20は、一実施形態に係る、ガベージコレクションの更に別の態様を示すブロック図である。 図21は、一実施形態に係る、ガベージコレクションの更に別の態様を示すブロック図である。 図22は、一実施形態に係る、システムブロックのガベージコレクションを行う態様を示すブロック図である。 図23は、一実施形態に係る、システムブロックのガベージコレクションを行う別の態様を示すブロック図である。 図24は、一実施形態に係る、システムブロックのガベージコレクションを行う更に別の態様を示すブロック図である。 図25は、一実施形態に係る、システムブロックのガベージコレクションを行う他の態様を示すブロック図である。 図26は、一実施形態に係る、システムブロックのガベージコレクションを行う更に他の態様を示すブロック図である。
システム概要
図2は、一実施形態に係るデータストレージデバイスの物理及び論理データ構成の態様を示す図である。一実施形態では、データストレージデバイスは、SSDである。別の実施形態では、データストレージデバイスは、フラッシュメモリ及び回転磁気ストレージメディアを含むハイブリッドデバイスである。本開示は、SSD及びハイブリッド実装の両方で適用可能であるが、簡略化のために、各種実施形態は、SSDベースの実装について説明される。一実施形態に係るデータストレージデバイスコントローラ202は、参照番号218で示されるホストに接続されるように構成されてもよい。ホスト218は、ロジカルブロックアドレッシング(Logical Block Addressing(LBA))スキームを使用してもよい。LBAサイズは、通常、固定されているが、ホストは、LBAのサイズを動的に変化しうる。例えば、LBAサイズは、インターフェース及びインターフェースモードによって変化してもよい。事実、512バイトが最も一般的であるが、4KBも一般的となっており、512+(520,528等)及び4KB+(4KB+8,4K+16等)がある。それらに示されるように、データストレージデバイスコントローラ202は、ページレジスタ204を備えてもよい又は接続されてもよい。ページレジスタ204は、コントローラ202がデータストレージデバイスからデータを読み出す、及びデータストレージデバイスへデータを記憶することを可能にするように構成されてもよい。コントローラ202は、ホスト218からのデータアクセスコマンドに対応するフラッシュメモリデバイスのアレイからデータを書き込み及び読み出すように構成されてもよい。本明細書の説明は、一般的なフラッシュメモリについて示されているが、メモリデバイスのアレイは、フラッシュ集積回路、カルコゲナイドRAM(Chalcogenide RAM(C−RAM))、相変化メモリ(Phase Change Memory(PC−RAM又はPRAM))、プログラマブルメタライゼーションセルRAM Programmable Metallization Cell RAM(PMC−RAM又はPMCm)、Ovonic Unified Memory(OUM)、抵抗RAM(Resistance RAM(RRAM)(登録商標))、NANDメモリ(例えば、single−level cell(SLC)メモリ、multi−level cell(MLC)メモリ又はそれらの任意の組み合わせ)、NORメモリ、EEPROM、強誘電体メモリ(Ferroelectric Memory(FeRAM))、磁気抵抗RAM(Magnetoresistive RAM(MRAM))、他のディスクリートNVM(不揮発性メモリ)チップ又はそれらの任意の組み合わせのような不揮発性メモリデバイスの1以上を備えてもよいことが理解される。
ページレジスタ204は、コントローラ202が、アレイからデータを読み出し、アレイにデータを記憶するように構成されてもよい。一実施形態によれば、フラッシュメモリデバイスのアレイは、複数のダイ(例えば、128ダイ)の不揮発性メモリデバイスを備えてもよく、図2の206で示されるように、それぞれが複数のブロックを備える。他のページレジスタ204(図示せず)は、他のダイのブロックに接続されてもよい。共にグループ化された、フラッシュブロックの組み合わせは、スーパーブロック又はS−ブロックと呼ばれる。一部の実施形態では、S−ブロックを形成する個々のブロックは、1以上のダイ、プレーン又は他のレベルの粒度から選択されてもよい。よって、S−ブロックは、共に組み合わせられた、1以上のダイに亘る、複数のフラッシュブロックを備えてもよい。この手法では、S−ブロックは、フラッシュマネージメントシステム(FMS)が動作するユニットを形成してもよい。一部の実施形態では、S−ブロックを形成する個々のブロックは、メモリデバイスが、プレーンのような構造に細分化された大を含む場合のような、ダイレベルとは異なる粒度に基づいて選ばれてもよい(すなわち、ブロックは、個々のプレーンから取得されてもよい)。一実施形態によれば、アロケーション、消去及びガベージコレクションは、S−ブロックレベルで実行されてもよい。別の実施形態では、FMSは、ページ、ブロック、プレーン、ダイ等のような他の論理グループに従ってデータオペレーションを実行してもよい。
次に、フラッシュブロック206のそれぞれは、複数のフラッシュページ(F−ページ)208を備える。各F−ページは、例えば、16KBのような固定サイズであってもよい。一実施形態によれば、F−ページは、与えられたフラッシュドライブ用のプログラムの最小ユニットのサイズである。図2に示されるように、各F−ページ208は、以下、E−ページ210をいう複数の物理ページを収容するように構成されてもよい。用語「E−ページ」は、誤り訂正符号(error correcting code(ECC))が適用されているフラッシュメモリに記憶されたデータ構造をいう。一実施形態によれば、E−ページ210は、データストレージデバイス内に物理的にアドレスする基準(basis)を形成し、フラッシュリードデータ転送の最小単位を構成してもよい。したがって、E−ページ210は、所定の固定のサイズ(例えば、2KB)のものであってもよく(しかし必ずしも必要ではない)、ECCシステムのペイロード(例えば、ホストデータ)のサイズを決定してもよい。一実施形態によれば、各F−ページ208は、その境界内に所定の複数のE−ページ210に適合するように構成されてもよい。例えば、16KBのF−ページ208及び2KBの固定サイズのE−ページ210が与えられた場合、8つのE−ページ210は、図2に示されるように、単一のF−ページ208内に適合する。ともかく、一実施形態によれば、ECCを含む、E−ページ210の2の階乗がF−ページ208に適合するように構成されてもよい。各E−ページ210は、データ部214を備えてもよく、E−ページ210が配置される位置に応じて、ECC部216も備えてもよい。データ部214及びECC部216のいずれもサイズを固定する必要はない。E−ページのアドレスは、フラッシュメモリ内のE−ページの位置を一意に特定する。例えば、E−ページのアドレスは、フラッシュチャネル、特定されたフラッシュチャネル内の特定ダイ、ダイ内の特定ブロック、特定のF−ページ及び最終的には、特定されたF−ページ内のE−ページを特定してもよい。
データストレージデバイス上の物理アドレッシング(physical addressing)と、ホストによる論理ブロックアドレッシング(logical block addressing)とをブリッジするために、論理ページ(L−ページ)構築が導入される。図2に参照番号212で示されるL−ページは、FMSによって使用されるアドレス変換の最小単位を含んでもよい。一実施形態によれば、各L−ページは、L−ページ番号と関連付けられてもよい。よって、L−ページ212のL−ページ番号は、コントローラ202が、E−ページ210のような物理ページの1以上に記憶されたホストデータを論理参照することができるように構成されてもよい。L−ページ212は、圧縮の基本ユニットとして使用されてもよい。一実施形態によれば、F−ページ208及びE−ページ210とは異なり、L−ページ212は、記憶されるべきデータの圧縮の変動性により、サイズが固定されず、サイズが変化してもよい。データの圧縮率が変化するため、4KBの1つのタイプのデータは、2KBのL−ページに圧縮される一方で、4KBの異なるタイプのデータは、例えば、1KBに圧縮されてもよい。よって、このような圧縮により、L−ページのサイズは、例えば、4KB又は4KB+の最大非圧縮サイズに対する、例えば、24バイトの最小圧縮サイズにより定義される範囲内で変化してもよい。他のサイズ及び範囲が実装されてもよい。図2に示されるように、L−ページ212は、E−ページ210の境界に位置合わせされる必要はない。事実、L−ページ212は、F−ページ208及び/又はE−ページ210に位置合わせされる開始アドレスを有するように構成されてもよいが、F−ページ208又はE−ページ210の境界のいずれかに位置合わせされないように構成されてもよい。つまり、図2に示されるように、L−ページ開始アドレスは、F−ページ208の開始又は最終アドレス又はE−ページ210の開始又は最終アドレスのいずれかからのゼロでないオフセットに位置付けられてもよい。L−ページ212のサイズが固定されず、固定されたサイズのE−ページ210よりも小さい場合には、1以上のL−ページ212は、単一のE−ページ210内に適合してもよい。同様に、L−ページ212のサイズがE−ページ210よりも大きい場合には、図2の参照番号217で示されるように、L−ページ212が1以上のE−ページに及び、F−ページ208の境界にわたってもよい。
例えば、LBAサイズが512又は512+バイトである場合、圧縮されないL−ページ212が4KBから4KB+だとすると、8つのシーケンシャルLBAは、4KBのL−ページ212にパックされてもよい。一実施形態によれば、L−ページ212の正確な論理サイズは、圧縮後には、重要ではなく、物理サイズは、最小サイズで数バイト、最大サイズで数千バイトに亘ってもよいことを留意すべきである。例えば、4TBのSSDドライブについて、30ビットのアドレッシングは、このようなSSDに存在する可能性があるL−ページの量に対してカバーするために、各L−ページ212をアドレス指定するために使用されてもよい。
図3は、一実施形態に係る、論理物理アドレス変換マップ及びその実例となるエントリを示す。ホストデータがL−ページ212におけるホストによって参照され、かつデータストレージデバイスが1以上の連続的なE−ページ210にL−ページ212を記憶すると、論理物理アドレス変換マップは、コントローラ202が、L−ページ212のL−ページ番号を1以上のE−ページ210に関連付けることができるように要求される。このような論理物理アドレス変換マップは、図3に示され、一実施形態では、L−ページ212ごとの1つのエントリを有するリニアアレイである。このような論理物理アドレス変換マップは、DRAM又はSRAMのような揮発性メモリに記憶されてもよい。図3は、また、4つの異なるL−ページ212についての論理物理アドレス変換マップにおけるエントリを示し、図3のL−ページ212は、L−ページ1、L−ページ2、L−ページ3及ぶL−ページ4と示されるL−ページ番号と関連付けられる。一実施形態によれば、データストレージデバイスに記憶される各L−ページは、論理物理アドレス変換マップ302における単一かつ一意なエントリにより指し示されて(pointed)もよい。よって、本明細書に展開される実施例では、4つのエントリが示される。302に示されるように、マップ302における各エントリは、L−ページ番号を含んでもよく、これは、参照されるL−ページの開始アドレス、物理ページ(例えば、E−ページ)の開始アドレスのオフセット及びL−ページの長さを含む物理ページ(例えば、E−ページ)のアイデンティフィケーションを備えてもよい。また、複数のECCビットは、マップエントリについての誤り訂正機能を提供してもよい。例えば、図3に示されるように、E−ページのサイズを2KBとすると、L−ページ1は、論理物理アドレス変換マップ302において以下のように参照されてもよい:E−ページ1003、オフセット800、長さ1624に続いて所定数のECCビット(図示せず)。つまり、物理アドレスのタームでは、L−ページ1の開始は、E−ページ1003内(図示せず)であり、800バイトに等しいE−ページ1003の開始物理位置からのオフセットに位置付けられる。圧縮されたL−ページ1は、更に、1,624バイトに拡張され、それにより、E−ページ境界からE−ページ1004に亘る。よって、E−ページ1003及び1004のそれぞれは、L−ページ番号L−ページ1によって示されるL−ページ212の一部を記憶する。同様に、L−ページ番号L−ページ2によって示される圧縮されたL−ページは、E−ページ1004内に全体が記憶され、400バイトのオフセットでスタートし、E−ページ1004内の696バイトのみが延びる。L−ページ番号L−ページ3に関連付けられた、圧縮されたL−ページは、1,120バイトのオフセット(L−ページ2の境界からちょうど24バイト離れる)でE−ページ1004内をスタートし、E−ページ1005を超え、E−ページ1006へ4,096バイト延びている。よって、L−ページ番号L−ページ3に関連付けられたL−ページは、E−ページ1004の一部、E−ページ1005の全て及びE−ページ1006の一部に亘る。最終的に、L−ページ番号L−ページ4に関連付けられたL−ページは、1,144バイトのオフセットでE−ページ1006内から開始し、3,128バイト拡張し、E−ページ1007全体に亘り、次のF−ページのE−ページ1008へのF−ページ境界を横断する。
合計すると、論理物理アドレス変換マップ302の各エントリを作成するこれらの構成要件の識別子フィールドのそれぞれ(E−ページ、オフセット、長さ及びECC)のサイズは、例えば、8バイトであってもよい。つまり、例示的な4TBドライブについては、E−ページのアドレスのサイズは、32ビットであってもよく、オフセットのサイズは、12ビット(E−ページデータ部用に4KBまで)であってもよく、長さのサイズは、10ビットまでであってもよく、ECCフィールドが提供されてもよい。他の構成及びビット幅も可能である。このような8バイトエントリは、L−ページが書き込まれる又は書き換えられる度に生成され、コントローラ202が、フラッシュストレージ内の、L−ページに書き込まれた、ホストデータのトラックを保持することを可能にする。論理物理アドレス変換マップにおけるこの8バイトエントリは、LPNのL−ページ番号によってインデクス付けされてもよい。言い換えれば、一実施形態によれば、L−ページ番号は、論理物理アドレス変換マップ302へのインデックスとして機能する。4KBセクタサイズの場合には、LBAは、LPNと同一であることを留意すべきである。よって、LPNは、揮発性メモリ内のエントリのアドレスを構成してもよい。コントローラ202がホスト218から読み出しコマンドを受信したとき、LPNは、供給されたLBAから生じてもよく、かつ論理物理アドレス変換マップ302へインデックス付けするために使用されてもよく、フラッシュメモリにおける読み出されるべきデータの位置を抽出する。コマンド202がホストから書き込みコマンドを受信したとき、LPNは、LBAから構築されてもよく、論理物理アドレス変換マップ302は、変更されてもよい。例えば、そこに新たなエントリが生成されてもよい。論理物理アドレス変換マップ302を記憶する揮発性メモリのサイズに応じて、LPNは、単一のエントリで記憶されてもよい、又は、例えば、当のL−ページの開始アドレス(プラスECCビット)を含むE−ページを特定する第1のエントリ、及びオフセット及び長さ(プラスECCビット)を特定する第2のエントリに分かれて記憶されてもよい。よって、一実施形態によれば、これらの2つのエントリは、フラッシュメモリ内の単一のL−ページに、共に対応及び指し示してもよい。別の実施形態では、論理物理アドレス変換マップエントリの特定のフォーマットは、上記で示された例とは異なっていてもよい。
S−ジャーナル及びS−ジャーナルマップ
論理物理アドレス変換マップ302が揮発性メモリに記憶されている場合、不揮発性メモリの起動又は不揮発性メモリへの任意の他の電力損失があると、再構築を行う必要がある。よって、これは、L−ページが、起動(startup)後又は電力損失イベント(power−fail event)の後に不揮発性メモリ内に記憶されることをコントローラが「知る」前に、コントローラ202が、論理物理アドレス変換マップ302を再構築することができるであろう不揮発性メモリに記憶されるべき一部のメカニズム及び情報を必要とする。一実施形態によれば、このようなメカニズム及び情報は、システムジャーナル又はS−ジャーナルと呼ばれる構成に統合される。一実施形態によれば、コントローラ202は、複数の不揮発性メモリデバイス(例えば、1以上のダイ、チャネル又はプレーンにおけるブロック206の1以上)において、物理論理アドレス対応を定義する複数のS−ジャーナルを維持するように構成されてもよい。一実施形態によれば、各S−ジャーナルは、所定の範囲の物理ページ(例えば、E−ページ)をカバーする。一実施形態によれば、各S−ジャーナルは、複数のジャーナルエントリを備えてもよく、各エントリは、E−ページのような1以上の物理ページを、各L−ページのL−ページ番号に関連付けられるように構成される。一実施形態によれば、コントローラ202がリスタートするたびに、又は論理物理アドレス変換マップ302が部分的又は全体的に再構築されるたびに、コントローラ202は、S−ジャーナルを読み出し、S−ジャーナルエントリから読み出された情報から、論理物理アドレス変換マップ302を再構築する。
図4は、一実施形態に係る、論理物理アドレス変換マップを更新し、S−ジャーナルエントリを生成する方法の態様を示す。図4に示されるように、論理物理アドレス変換マップ302が最新のまま維持されることを確実にするために、ブロックB41で示されるように、L−ページが書き込まれる又は更新される度に、論理物理アドレス変換マップ302は、B42に示されるように、更新されてもよい。B43に示されるように、S−ジャーナルエントリも生成され、更新されたL−ページの位置を指し示す情報をそこに記憶する。このようにして、論理物理アドレス変換マップ302及びS−ジャーナルの両方は、新たな書き込みが生じる(例えば、ホストが不揮発性メモリに書き込みを命じる、ガベージコレクション/ウェアレベリングが生じる等)とき、更新される。アドレス変換のパワーセーフコピーを維持するための不揮発性メモリデバイスへの書き込み動作は、したがって、論理物理アドレス変換マップの全て又は一部を再度保存することに替えて、新たに生成されたジャーナルエントリによって開始されるように構成されてもよく、ライトアンプリフィケーション(Write Amplification(WA))が減少する。S−ジャーナルの更新は、コントローラ202が、新たに更新されたL−ページへアクセスすることができること、及び論理物理アドレス変換マップ302が、論理物理アドレス変換マップが記憶された揮発性メモリに影響を与えるリスタート又は他の情報を消去するパワーイベントが生じると、再構築されることを確実にする。また、論理物理アドレス変換マップ302を再構築する際のそれらのユーティリティに加えて、S−ジャーナルは、効果的なガベージコレクション(Garbage Collection(GC))を可能にする際に有益である。事実、S−ジャーナルは、全てのL−ページ番号への最後の(last−in−time)更新を含んでもよく、有効なL−ページを指し示さないエントリである無効なエントリも含んでもよい。
一実施形態によれば、S−ジャーナルは、不揮発性メモリに書き込まれるメインフラッシュマネージメントデータであってもよい。S−ジャーナルは、与えられたS−ブロックについてのマッピング情報を含んでもよく、与えられたS−ブロックについての物理論理(Physical−to−Logical(P2L))情報を含んでもよい。図5は、一実施形態に係る、S−ジャーナルのブロック図である。図5に示されるように、各S−ジャーナル502は、506で示され、例えば、5ビットを用いてアドレス可能である、32のE−ページのような不揮発性メモリの所定の物理領域をカバーする各S−ジャーナル502は、S−ジャーナル番号によって特定されてもよく、S−ジャーナルについての他の情報を含むことができるヘッダ504の一部であってもよい。S−ジャーナル番号は、S−ジャーナルによってカバーされる第1の物理ページのアドレスの一部を含んでもよい。例えば、S−ジャーナル502のS−ジャーナル番号は、例えば、S−ジャーナル502によってカバーされる第1のE−ページアドレスの27の最上位ビット(Most Significant Bits(MSb))を含んでもよい。
図6は、一実施形態に係る、S−ジャーナルの1つのエントリの例示的な構成を示す。S−ジャーナル502の各エントリ602は、1つのL−ページの開始アドレスを指し示してもよく、これは、E−ページに物理的にアドレスされる。各エントリ602は、例えば、開始L−ページを含むE−ページのアドレスのある個数(例えば、5)の最下位ビット(Least Significant Bits(LSbs))を含んでもよい。完全なE−ページアドレスは、これらの5個のLSbsを、ヘッダ504におけるS−ジャーナル番号の27個のMSbsに連結させることにより得られる。また、エントリ602は、L−ページ番号、特定されたE−ページ内のそのオフセット及びそのサイズを含んでもよい。例えば、S−ジャーナルの各エントリ602は、このS−ジャーナルエントリ、30ビットのL−ページ番号、9ビットのE−ページオフセット及び10ビットのL−ページサイズによりカバーされる第1のE−ページのアドレスの5個のLSbsを含んでもよい。様々な他のインターナルジャーナルエントリフォーマットが他の実施形態で使用されてもよい。
一実施形態によれば、L−ページに記憶されたデータの圧縮又はホスト構成の変動により、様々な個数のL−ページは、506に示されるように、32のE−ページに等しい物理領域のような物理領域に記憶されてもよい。L−ページサイズの圧縮及びその結果生じる変動を用いた結果として、S−ジャーナルは、様々な個数のエントリを含んでもよい。例えば、一実施形態によれば、最大圧縮では、L−ページのサイズは24バイトであってもよく、S−ジャーナルは、2,500を超えるエントリを含んでもよく、等しい個数のL−ページ、S−ジャーナルエントリ602ごとに1つのL−ページを参照する。
上記で述べたように、S−ジャーナルは、与えられたS−ブロックについてのマッピング情報を含むように構成されてもよい。より正確には、一実施形態によれば、S−ジャーナルは、与えられたS−ブロック内のE−ページの所定の範囲についてのマッピング情報を含む。図7は、一実施形態に係る、S−ブロックのブロック図である。図7に示されるように、S−ブロック702は、ダイごとに1つのフラッシュブロック(F−ブロック)704(図2に206としても示される)を含んでもよい。よって、S−ブロックは、フラッシュマネージメントシステムのユニットを形成するために共に組み合わせられる、複数のF−ブロックの集合、ダイごとに1つのF−ブロックとみなされてもよい。一実施形態によれば、アロケーション、消去及びGCは、S−ブロックレベルで管理されてもよい。図7に示されるように、各F−ブロック704は、例えば、256又は512個のF−ページのような複数のフラッシュページ(F−ページ)を含んでもよい。一実施形態によれば、F−ページは、与えられた不揮発性メモリデバイスについてのプログラムの最小単位の大きさであってもよい。図8は、一実施形態に係る、スーパーページ(S−ページ)の別の図を示す。図8に示されるように、S−ページ802は、S−ブロックのF−ブロックごとに1つF−ページを含んでもよく、これはS−ページがS−ブロック全体に亘って広がることを意味する。
各種データ構造との関係
図9Aは、一実施形態に係る、論理物理アドレス変換マップ、S−ジャーナル及びS−ブロックの関係を示す。参照番号902は、(一実施形態では、DRAMに記憶される)論理物理アドレス変換マップにおけるエントリを示す。一実施形態によれば、論理物理アドレス変換マップは、L−ページ番号によってインデックス付けされてもよく、論理物理アドレス変換マップにおいてL−ページごとに1つのエントリ902であってもよい。フラッシュメモリにおけるL−ページの開始の物理アドレス及びそのサイズは、マップエントリ902、すなわち、E−ページアドレスによる、E−ページ内のオフセット及びL−ページのサイズに与えられてもよい。上記で述べたように、そのサイズに応じて、L−ページは、1以上のE−ページに亘ってもよく、同様に、F−ページ及びF−ブロックに亘ってもよい。
904に示されるように、揮発性メモリ(例えば、DRAM)は、システムジャーナル(S−ジャーナル)マップも記憶してもよい。S−ジャーナルマップにおけるエントリ904は、S−ジャーナルが不揮発性メモリに物理的に位置付けられることに関係する情報を記憶してもよい。例えば、L−ページの開始が記憶されるE−ページの物理アドレスの27のMSbsは、(図5で前述したように)S−ジャーナル番号を構成してもよい。揮発性メモリにおけるS−ジャーナルマップエントリ904は、システムE−ページで参照される、不揮発性メモリにおけるS−ジャーナルのアドレスも含んでもよい。揮発性メモリにおけるS−ジャーナルマップエントリ904から、システムS−ブロック情報908が抽出されてもよい。システムS−ブロック情報908は、システムS−ブロック(システムバンドにおけるS−ブロック)によりインデックス付けされてもよく、S−ブロックについての他の情報のうち、システムS−ブロックにおける任意の空き領域又は使用領域のサイズを含んでもよい。S−ジャーナルマップエントリ904からも、不揮発性メモリ910における参照されたS−ジャーナルの物理位置(システムバンドにおけるE−ページとして表される)が抽出されてもよい。
一実施形態によれば、システムバンドは、L−ページデータを含まず、ファイルマネージメントシステム(File Management System(FMS))メタ‐データ及び情報を含んでもよい。システムバンドは、信頼性及び電力損失の簡素化のためのみに低いページ(lower page)として構成されてもよい。通常オペレーション時に、システムバンドは、ガベージコレクションの時を除いて、読み出される必要はない。システムバンドは、全体のWA最適化のためのデータバンドをはるかに超えるものを過剰に提供してもよい。他のバンドは、L−ページデータを含み、頻繁に更新されるホットバンド(Hot Band)と、更新頻度が低く、GCの結果として収集されているデータようなより無効なデータを含むコールドバンドと、を含む。一実施形態によれば、システム、ホット及びコールドバンドlは、S−ブロック基準(S−Block basis)によって割り当てられてもよい。
上述したように、不揮発性メモリにおけるこれらのS−ジャーナルのそれぞれは、S−ジャーナルエントリの集合を含んでもよく、例えば、データの32のE−ページ分をカバーしてもよい。不揮発性メモリ910におけるこれらのS−ジャーナルは、コントローラ202が、揮発性メモリにおける論理物理アドレス変換マップだけでなく、揮発性メモリにおけるS−ジャーナルマップ、ユーザS−ブロック情報906及びシステムS−ブロック情報908も再構築することができる。
図9Bは、一実施形態に係る、S−ジャーナルマップ912のブロック図である。S−ジャーナルマップ912は、S−ブロック番号によってインデックス付けされてもよく、そのエントリそれぞれは、そのS−ブロックについての第1のS−ジャーナルの開始を指し示してもよく、これは、次に、そのS−ブロックの所定数(例えば、32)のE−ページをカバーしてもよい。コントローラ202は、S−ジャーナルのマップを構築又は再構築するように構成され、かつ揮発性メモリにおける得られたS−ジャーナルマップを記憶するように構成されてもよい。すなわち、リスタート又は電力を損失する別のイベントが生じると、若しくはエラーリカバリに続くリスタート後、コントローラ202は、所定の順序(シーケンシャルオーダー)で複数のS−ジャーナルを読み出し、連続的に(sequentially)読み出された複数のS−ジャーナルに基づいて不揮発性メモリデバイスに記憶されたS−ジャーナルのマップを構築し、揮発性メモリにおいて、構築されたS−ジャーナルマップ912を記憶してもよい。
論理物理アドレス変換マップの更新
図10−13は、一実施形態に係る、論理物理アドレス変換マップを更新する方法の態様を示すブロック図である。図10に示されるように、論理物理アドレス変換マップ1002は、L−ページ100についてのエントリ(例えば、L−ページの位置)を含み、これは、3,012バイトの長さを有する。この例では、L−ページ100は、1006に示されるように、S−ブロック15に記憶される。コントローラ202の又はコントローラ202に接続されるバッファ1004(例えば、static random access memory(SRAM))は、L−ページ100が存在するS−ブロック15についてのP2L情報を含むS−ジャーナルを記憶してもよい。バッファ1004に示されているものは、一部の実施形態においてDRAMに実際に存在してもよい。そのエントリがS−ブロックによりインデックス付けされるユーザS−ブロック情報906は、各S−ブロックに対して、S−ブロックについての他の情報のうち、S−ブロックにおける空き領域又は使用領域の(例えば、正確な又はおおよその)サイズを含んでもよい。図10に示されるように、S−ブロック15についてのユーザS−ブロック情報906におけるエントリが示される。図10は、L−ページ100への更新がコントローラ202によって処理される前の、これらの構成機能ブロックの例示的な状態を示す。
図11の1102に示されるように、更新されたL−ページ100が受信され、1,534バイトの新たな長さを有する。更新されたL−ページ100の受信に応じて、L−ページ情報100は、論理物理アドレス変換マップ1002からフェッチ(fetched)されてもよく、(既に使われない)L−ページ100の長さ(3,012バイト)は、そこから抽出され、S−ブロック15のトラックされた空き領域値を対応しかつ正確に増加するために用いられてもよい。特に、ユーザS−ブロック情報906は、S−ブロック15が、空き領域の追加の3,012バイトを有し、L−ページ100の元データが無効(例えば、使われない)ことを示すデータで更新されてもよい。
図12に示されるように、論理物理アドレス変換マップ1002は、更新したL−ページを収容するように更新されてもよい。例えば、長さ情報は、このとき1,534バイトである。その後、更新が生じるS−ブロック15の特定の部分についてのバッファ1004におけるS−ジャーナルは、長さ情報を含む新たなL−ページ情報で更新されてもよく、例えば圧縮プログラム(compressor)から新たに受信されたL−ページは、バッファ1004へ読み出されてもよい。新たなL−ページがバッファにある間、論理物理アドレス変換マップ1002におけるL−ページ100についてのエントリは、矢印「1」によって示されるように、バッファのその位置を一時的に反映してもよい。その後、更新されたL−ページ100は、バッファ1004の更新されたS−ジャーナルにおいて新たに生成されたエントリによって特定されるE−ページアドレスにおいて、ホットS−ブロック1008へフラッシュされ(flushed)てもよい論理物理アドレス変換マップ1002におけるマッピングテーブルエントリは、矢印「2」で示されるように、物理E−ページアドレス及びL−ページの最終点のオフセットを反映するように更新される。
図13に示されるように、例えば、十分な数の新たなエントリを蓄積した後のようないくつかの後の時点では、揮発性メモリバッファ1004におけるS−ジャーナルは、システムS−ブロック1010のような不揮発性メモリへ書き込まれてもよい。システムS−ブロック1010は、S−ジャーナルに記憶するために、コントローラファームウェアにより割り当てられるフラッシュメモリの一部であってもよい。不揮発性メモリにおけるS−ジャーナルの保存は、必要な場合、論理物理アドレス変換マップの後の再構築を可能にする。
S−ジャーナル及びS−ジャーナルマップの更新
図14−17は、一実施形態に係る、システムバンドにおけるS−ジャーナル及びS−ジャーナルマップを更新する方法の態様を示すブロック図である。図は、L−ページ100への同一の例の更新によって開始されるS−ジャーナルの更新メカニズムについての更なる詳細を示す。図に示されるように、揮発性メモリ(例えば、synchronous dynamic random−access memory(SDRAM))におけるS−ジャーナルマップ1402は、L−ページ100に関連付けられるP2Lマッピングデータを含むS−ジャーナルの、不揮発性メモリにおける、物理位置を指し示すエントリを含んでもよい。図示された例では、関連するS−ジャーナル(すなわち、L−ページ100を記憶するS−ブロック15の特定の部位についてのS−ジャーナル)は、E−ページ42で開始する、システムS−ブロック3(1408)に位置付けられる。
そののち、図15に示されるように、L−ページ100は、1,534バイトの長さで更新される。現在のL−ページ100についての情報(例えば、E−ページアドレス、オフセット及び長さ)は、論理物理アドレス変換マップ1002からフェッチされてもよい。その後、L−ページ100を記憶するE−ページのアドレスは、S−ジャーナルマップ1402内のS−ジャーナルエントリを位置付けるために使用されるS−ジャーナル番号を抽出するために使用されてもよい。例えば、図5及び6で示されるような場合には、S−ジャーナル番号は、32ビットE−ページアドレスの27MSbsを含んでもよい。このS−ジャーナル番号は、位置を取得するために、S−ジャーナルマップ1402へインデックス付けするために使用されてもよく、これは、その後、対象のS−ジャーナルを含むシステムS−ブロックを特定するために用いられてもよい。その後、図15に示されるように、システムS−ブロック情報908は、L−ページ100に対する最近の更新を考慮して、当該エントリによって以前に占有された領域が、割り当て解除されたときに、S−ブロック3でのS−ジャーナルにおけるL−ページ100についてのジャーナルエントリが無効であるということを反映するように更新されてもよい。当該割り当てを解除された領域は、このとき空き領域であり、考慮されなければならない。それに替えて、使用領域が考慮され、空き領域がそこから導かれてもよい。よって、S−ブロック3についてのシステムS−ブロック情報908におけるエントリは、1つのS−ジャーナルエントリ、つまり、本明細書で展開された例示的な実装における7バイトによって取得される領域によってインクリメントされてもよい。この空き領域は、その後、システムバンドのGC時に考慮されてもよい。
図16に示されるように、L−ページ100は、バッファ1004に書き込まれ、1005に示されるように、論理物理アドレス変換マップ1002は、バッファ1004を指し示し(L−ページ100が記憶される物理位置を示す)、更新されたL−ページ100の長さを記憶するように更新されてもよい(本明細書で展開される例では1,534)。この点において、システムS−ブロック3は、依然として、L−ページ100を含むものとして参照番号1006でS−ブロック15を指し示すS−ジャーナルエントリを含むことを留意すべきである。しかし、S−ブロック3についてのシステムS−ブロック情報は、参照番号1408において、システムS−ブロック3内の無効なS−ジャーナルエントリによって占められた現在の領域は、事実、空き領域であることを示すように更新されている。
図16は、バッファにおいて異なるS−ジャーナルも示している。一実施形態では、バッファ1004におけるS−ジャーナルは、オープンホットS−ブロック7へ書き込まれた新たなL−ページを記録するためにものである。この例では、バッファ1004におけるS−ジャーナル(不揮発性メモリにフラッシュされて(flushed)いない)は、図16の10007における矢印によって示されるように、更新されたL−ページ100(ここではバッファも)のL−ページ番号及びその長さ情報で更新される。L−ページ100は、図16に1404で示されるように、ここで、バッファ1004から現在のオープンホットS−ブロック7へフラッシュされてもよい。この時点では、バッファにおけるS−ジャーナルは、更新されたL−ページ100が、不揮発性メモリへ書き込まれていることを反映するように更新される。それに替えて、論理物理アドレス変換マップ1002及びS−ジャーナルは、更新されたL−ページ100が不揮発性メモリへ書き込まれる前に、更新されたL−ページ100のアドレスで更新されてもよい。一実施形態では、当該S−ジャーナルにおける更新されたエントリは、前述の図6に示されるように、論理物理アドレス変換マップ1002における新たなL−ページ100のエントリ及びL−ページ100についての追加情報によって指し示されるE−ページを含むであろう。
図17に示されるように、十分なデータを蓄積した後、バッファ1004におけるS−ジャーナルは、オープンシステムS−ブロック1へ書き出されてもよい(1406参照)。この例では、このS−ジャーナルは、オープンシステムブロック1のE−ページ19へ書き出される。S−ジャーナルマップ1402は、ここで、S−ブロック15の一部が、システムS−ブロック3,E−ページ42に記憶されることを示す1つのエントリを含む。しかし、S−ブロック15内のL−ページ100の古い位置を指し示すS−ジャーナル内のエントリは、もはや有効ではない。S−ジャーナルマップ1402は、S−ブロック7についてのS−ジャーナルが、システムS−ブロック1,E−ページ19に記憶されることを示す1つのエントリも含む。当該S−ジャーナルは、更新されたL−ページ100の不揮発性メモリにおける位置として、1404において、オープンS−ブロック7を指し示す有効なエントリを含む。このように、P2L情報を含むS−ジャーナルは、バッファ1004において更新され、最終的に不揮発性メモリへ書き込まれる。また、S−ジャーナルマップ1402は、このような新たに更新されたS−ジャーナルへ指し示すように適切に更新されてもよい。また、論理物理アドレス変換マップ1002は、正確なオープンホットS−ブロックへ指し示すために適切に更新されてもよい。
有利には、新たな書き込みで、本明細書に示されかつ説明されたS−ジャーナル構成は、書き込みオーバーヘッドを最小限にする。一実施形態によれば、新たな動作(オペレーション)は、不揮発性メモリにおける新たなS−ジャーナルエントリを書き込むことを必要とする。生成されたL−ページごとに少量のS−ジャーナルエントリデータが存在するため(例えば、本明細書で説明される7バイト)、システムデータによるWAは、従来のシステムに比べて低減される。S−ジャーナルデータは、大量のコマンド履歴に効果的である。更新されたS−ジャーナルデータは、プールされ、システムバンドへ連続的に書き出される。本明細書に示されかつ説明されたS−ジャーナルシステムは、生成されたマッピング情報が、別途エントリを変更することもなく、書き込まれるべきデータと同一であり、論理物理マップの全部又は一部とは対照的に、変更されるものが、不揮発性(例えば、フラッシュ)メモリに書き込まれるだけであり、効果的である。
電源投入時に(On power up)、システムバンドにおける全てのS−ジャーナルデータは、DRAMへ読み出し及び処理され、揮発性メモリにおける論理物理アドレス変換マップを再構築してもよい。一実施形態によれば、これは、S−ブロックがシステムバンドへ割り当てられる順序で行われる。一実施形態では、ハードウェアサポートは、この大きなデータロードが、電源投入タイミング要求を満たすために迅速に生じることを可能にするために用いられる(これが、コマンド履歴から論理物理アドレス変換マップを本質的に生成するため、これは、ハードウェアなしでは実現できない)。一実施形態によれば、S−ジャーナルマップは、システムバンドに記憶される有効なS−ジャーナルを指し示すために、電源投入(power−up)時にも構築される。
ユーザデータS−ブロックのガベージコレクション
図18−21は、一実施形態に係る、ガベージコレクションの態様を示すブロック図である。図に示されるように、ユーザS−ブロック情報906におけるデータは、ガベージコレクションを行うために、「最良の」S−ブロックを選択するためにスキャンされてもよい。ガベージコレクションを行うためのS−ブロックを選択するために評価される複数の分類が存在する。例えば、ガベージコレクションを行うために最良のS−ブロックは、最大空き領域を有するS−ブロック及び最低書き込み消去(lowest Program Erase(PE))カウントであってもよい。それに替えて、これらの及び/又は他の分類は、ガベージコレクションされるS−ブロックを選択するために重み付けされてもよい。例示の目的のために、図18−21でガベージコレクションされた、選択されたS−ブロックは、S−ブロック15であり、これは、ユーザS−ブロック情報906内の情報エントリ15により参照され、幾らかの量+3,012バイトの空き領域を示す(最近使用されなくなったL−ページ100を考慮するための追加の3,012バイト)。ユーザS−ブロック情報906は、他のアイテムの情報のうち、各トラックされたS−ブロックによって受けられたPEサイクルの数のランニングカウントを含んでもよく、これは、ガベージコレクションを行うS−ブロックを決定する際に評価されてもよいことを留意すべきである。1006に示されるように、S−ブロック15は、有効なデータ(ハッシュされたブロック)及び無効なデータ(ハッシュされないブロック)の混合したものを有する。
ここで、Sブロック15がGCのために選択されているからには、S−ジャーナルマップ(図9Bの912参照)は、考慮され(例えば、S−ブロック番号によりインデックス付けされる)、そのS−ブロックについての対応するS−ジャーナルの不揮発性メモリの位置(例えば、E−ページアドレス)を探す。一例を示すために、図18に示されるように、S−ジャーナルマップ912により指し示される1つのS−ジャーナルは、S−ジャーナル番号(E−ページアドレスの27MSb)を用いて位置付けられ、バッファ1004へ読み出される。つまり、S−ジャーナル912によって指し示されるシステムS−ブロック1804における1以上のE−ページは、アクセスされ、当該位置で開始する記憶されたS−ジャーナルは、バッファ1004へ読み出されてもよい。一実施形態では、S−ジャーナルマップは、S−ジャーナルが1以上のE−ページに亘るため、S−ジャーナルの長さも含んでもよい。S−ジャーナルは、非常に長い場合もあり、よって、分かれた状態で読み出され、利用可能なときに処理されてもよい。
その後、バッファ1004のS−ジャーナルにおける各P2Lエントリは、論理物理アドレス変換マップ1802における対応するエントリと比較されてもよい。バッファ1004のS−ジャーナルにおける各エントリについて、当該エントリのL−ページについての物理アドレスが、論理物理アドレス変換マップ1802における対応するエントリの同一L−ページの物理アドレスと一致するかどうかを判断する。2つが一致する場合、S−ジャーナルの当該エントリは、有効である。逆に、S−ジャーナルのL−ページについてのアドレスが論理物理アドレス変換マップにおけるL−ページについてのエントリと一致しない場合には、S−ジャーナルの当該エントリは、有効ではない。
一実施形態によれば、有効なエントリが、そのエントリがパースされ、かつ比較されるS−ジャーナルにあるとき、参照されたL−ページは、図19に示されるように、S−ブロック15外に読み出され、バッファ1004へ書き込まれてもよい。同一の処理は、S−ブロック全体が処理されるまで、S−ブロック15をカバーする他のS−ジャーナルのために用いられてもよい。図19にも示されるように、参照番号1006では、S−ブロック15は、無効なデータのみを含む。これは、S−ブロック15についてのS−ジャーナルにおけるエントリにより有効と示されるデータが保存されており、新たなS−ブロックへ直ぐに移動されるためである。図示された例では、システムS−ブロック1804のS−ブロック15の例示的なS−ジャーナルにおけるエントリが、このような無効なデータを指し示すとき、当該S−ジャーナルは、ハッシュされるように示され、現在使用されていないことを示す。論理物理アドレス変換マップ1802は、その後、更新され、バッファ1004へ読み出された有効なデータについての新たなE−ページ開始アドレスを生成する。論理物理アドレス変換マップの更新時に、マップは、有効なエントリについて再度チェックされる、及びマップ更新処理時にロックされて、原子性(atomicity)を保証してもよいことを留意すべきである。有効なデータは、S−ジャーナル1005において生成される新たなS−ジャーナルエントリも必要とし、これは、一実施形態では、コールドS−ブロック1801に対するものである。
一実施形態では、有効なデータは、その後、図20に示されるように、コールドS−ブロック1801へ書き出されてもよい(ホットS−ブロックは、直近に書き込まれたホストデータのために使用され、ガベージコレクションされたデータには使用されない)。しばらく後に(例えば、十分な数のエントリが追加された(populated)後)、S−ジャーナル1005は、システムバンドにおけるシステムS−ブロック1804に書き出されてもよい。S−ブロック15は、ここで、ガベージコレクションが行われており、ユーザS−ブロック情報906は、S−ブロック15全体が空き領域であることを示している。S−ブロック15は、その後、消去され、そのPERISHカウントが更新され、新たな書き込みのために利用可能となる。無効なS−ジャーナルもシステムS−ブロック1804に存在していることを留意すべきである。この無効なS−ジャーナルにより占められるシステムバンドにおけるフラッシュメモリの領域は、しばらく後にガベージコレクションが行われてもよい。
システムS−ブロックでのガベージコレクション
図22−26は、一実施形態に係る、システムブロックのガベージコレクションを行う態様を示すブロック図である。図22−26に展開される例では、図22の参照番号2208で示されるシステムS−ブロック3は、ガベージコレクションのために選ばれたものと仮定する。システムS−ブロックが選ばれると、選ばれたシステムS−ブロック内の全てのE−ページ(及び拡張により、そこに含まれる全てのS−ジャーナル)は、バッファ1004へ(連続的に又は非連続的に)読み出される。
図23に示されるように、バッファ1004へ読み出されたS−ジャーナルの1以上についてのS−ジャーナル番号は、その後、S−ジャーナルのヘッダから抽出されてもよい。このような各システムS−ジャーナル番号は、その後、S−ジャーナルマップ2202にルックアップするために使用され、対応するS−ジャーナルが有効であるかどうかを判定する。一実施形態によれば、無効なS−ジャーナルは、そのS−ジャーナル番号が、S−ジャーナルマップ2202における対応するエントリによって一致されないS−ジャーナルであり、これは、S−ジャーナルが物理的に記憶される、最も更新された情報を有する。例えば、S−ジャーナル番号“12345”についてのS−ジャーナルマップ2202におけるエントリが、システムS−ブロック120内のE−ページを指し示す場合、S−ブロック3におけるS−ジャーナル“12345”のコピー(S−ブロックは、ガベージコレクションが行われる)は、使用されない。同様に、S−ジャーナルマップエントリが、S−ジャーナル“12345”が存在するS−ブロック3からのE−ページを指し示す場合、S−ジャーナル“12345”は、有効である。
一実施形態では、ガベージコレクションが行われた有効なS−ジャーナルは、有効及び無効なエントリが混ざったものを含んでもよく、よって、エントリの個別のチェックが必要である。図24に示されるように、各有効なS−ジャーナル2402における各エントリは、その後、メモリの論理物理アドレス変換マップ1802における対応するエントリと一致されてもよい。つまり、各S−ジャーナルエントリにより参照されるL−ページのE−ページアドレスは、論理物理アドレス変換マップ1802で特定されるL−ページのE−ページアドレスと比較されてもよい。2つが一致する場合、当該S−ジャーナルは有効である。一実施形態によれば、S−ジャーナルにおけるE−ページ内のE−ページアドレス及びオフセットを、論理物理アドレス変換マップ1802で特定されるL−ページのE−ページ内のE−ページアドレス及びオフセットと比較する必要がある場合がある。逆に、S−ジャーナルにおけるL−ページについてのE−ページアドレス(又はE−ページアドレス及びオフセット)が、アドレス変換マップ1802における当該L−ページについてのエントリにおけるE−ページアドレス(又はE−ページアドレス及びオフセット)が一致しない場合には、S−ジャーナルにおける当該エントリは、有効ではない。
一実施形態によれば、有効なエントリが、S−ジャーナル2402で特定されると、それらは、図25に示されるように、S−ジャーナル2402の新たなバージョン2502へコピーされてもよい。S−ジャーナル2502は、一実施形態によれば、S−ジャーナル2402と同一のS−ジャーナル番号を有してもよい。このように、GCのために選ばれたS−ブロックからバッファ1004へロードされた各S−ジャーナルは、先ず、ジャーナルレベルにおいて有効であるか無効であるかを判定され、有効である場合には、有効なエントリのみを含むようにコンパクトにされる。一実施形態によれば、無効なS−ジャーナルエントリは、単に、S−ジャーナル2502の新たなバージョンにコピーされない。よって、S−ジャーナルの新たなバージョン2502は、その古いバージョン2402よりも小さくなり(つまり、より少ないエントリを含む)、S−ジャーナル2402は、1以上の使われないエントリを有することとなる。S−ジャーナルが有効なエントリを全て有する場合、その新たなバージョンのサイズは、同一に維持されるであろうことを留意すべきである。
図26に示されるように、S−ジャーナル2502(S−ジャーナル2402の新たなバージョン、これは、無効又は使われない)は、その後、現在のオープンシステムS−ブロックへ書き込まれ、図26では、オープンシステムS−ブロック1、つまり、参照番号2206である。その後、S−ジャーナルマップ2202は、オープンシステムS−ブロック1においてS−ジャーナル2502の新たな位置で更新されてもよい。この処理の最後には、システムS−ブロック3におけるS−ジャーナル(2208)は、ガベージコレクションが行われ、システムS−ブロック3は、消去され、将来の書き込みのために利用可能となる。
本開示の特定の実施形態が説明されてきたが、これらの実施形態は、例示のために示されているものであり、本開示の範囲を限定することを意図するものではない。実際、本明細書に説明される新規な方法、デバイス及びシステムは、各種の他の形態で具現化されてもよい。更に、本明細書で説明された方法及びシステムの形態の様々な省略、置き換え及び変更は、本開示の趣旨から逸脱しない範囲でなされてもよい。添付の特許請求の範囲及びそれらの等価物は、本開示の範囲及び趣旨の範囲内であるとして、このような形態又は修正を包含することが意図される。例えば、当業者は、各種実施形態において、実際の物理及び論理構造が図面に示されたものとは異なることを理解するであろう。実施形態に応じて、上記の実施例で説明された特定のステップは、除去され、別のものが追加されてもよい。また、上記に開示された特定の実施形態の特徴及び特質は、別の実施形態を形成するために異なる手法で組み合わせられてもよく、その全てが本開示の範囲に及ぶ。本開示は、特定の好ましい実施形態及び用途を提供するが、本明細書で明らかにされた特徴及び利点のすべてを提供しない実施形態を含む、当業者にとって自明な他の実施形態もまた本開示の範囲内である。したがって、本開示の範囲は、添付の特許請求の範囲を参照することによってのみ定義されることを意図するものである。

Claims (45)

  1. データストレージデバイスであって、
    それぞれが複数の物理ページを記憶するように構成される複数の不揮発性メモリデバイスであって、前記複数の物理ページのそれぞれが、前記複数の不揮発メモリデバイス内の所定の物理位置に記憶される、複数の不揮発性メモリデバイスと、
    前記複数の不揮発性メモリデバイスと接続され、前記複数の不揮発性メモリデバイスへデータを書き込み、かつ前記複数の不揮発性メモリデバイスからデータを読み出すように構成されるコントローラであって、前記データは、複数の論理ページ(L−ページ)に記憶され、前記複数のL−ページのそれぞれは、前記コントローラが、前記物理ページの1以上に記憶されたデータを論理参照可能にするように構成されるL−ページ番号と関連付けられる、コントローラと、
    前記コントローラが、各L−ページに記憶されたデータの、1以上の物理ページ内に、物理位置を決定可能にするように構成される論理物理アドレス変換マップを含む揮発性メモリと、を備え、
    前記コントローラは、前記複数の不揮発メモリデバイスに、物理論理対応を定義する複数のジャーナルを維持するように構成され、前記複数のジャーナルのそれぞれは、ジャーナル番号に関連付けられ、各ジャーナルは、所定の範囲の物理ページをカバーし、かつ複数のジャーナルエントリを含み、各エントリは、1以上の物理ページを各L−ページに関連付けるように構成され、前記コントローラは、起動すると、前記複数のジャーナルを読み出し、読みだした前記複数のジャーナルから前記揮発性メモリに記憶された前記論理物理アドレス変換マップを再構築するように構成される、データストレージデバイス。
  2. 前記コントローラは、前記複数のL−ページの1つへ更新されると、前記複数のジャーナルの1つに新たなエントリを生成するように更に構成される請求項1に記載のデータストレージデバイス。
  3. 変換データのパワーセーフコピーを維持するための前記不揮発性メモリデバイスへの書き込み動作は、前記論理物理アドレス変換マップの少なくとも一部を保存する代わりに新たに生成されたジャーナルエントリによって開始されるように構成され、ライトアンプリフィケーションが減少する、請求項2に記載のデータストレージデバイス。
  4. 前記新たなエントリは、更新されたL−ページのスタートの、物理ページ内の、物理位置を示す請求項2に記載のデータストレージデバイス。
  5. 前記コントローラは、更新前のL−ページの長さに対応する量により占められる空き領域を更新するように更に構成される請求項2に記載のデータストレージデバイス。
  6. 前記複数のL−ページの少なくとも1つは、物理ページ境界に位置合わせされない請求項1に記載のデータストレージデバイス。
  7. 前記物理ページは、誤り訂正符号(ECC)ページ(E−ページ)として実装され、前記複数のデバイスは、複数のフラッシュメモリブロックを含み、各フラッシュメモリブロックは、複数のフラッシュメモリページ(F−ページ)を含み、前記F−ページのそれぞれは、複数の前記E−ページを含み、複数の前記E−ページのそれぞれは、前記複数のデバイス内の所定の物理位置に記憶される、請求項1に記載のデータストレージデバイス。
  8. 前記コントローラは、更新されたL−ページのL−ページ番号によって参照されたデータの、1以上の物理ページ内に、前記物理位置で前記論理物理アドレス変換マップを更新するようにさらに構成される請求項2に記載のデータストレージデバイス。
  9. それぞれがデバイスごとに1以上のフラッシュメモリブロックを含む複数のスーパーブロック(S−ブロック)を更に備え、前記複数のジャーナルエントリのそれぞれは、前記S−ブロックの前記物理ページの1以上を各L−ページに関連付けるように構成される請求項1に記載のデータストレージデバイス。
  10. 前記コントローラは、少なくとも、
    ガベージコレクションを行うために、前記複数のS−ブロックの1つを選択し、
    選択されたS−ブロックに対するジャーナルにおける各エントリを前記論理物理アドレス変換マップにおけるエントリと比較し、有効であるエントリ及び有効でないエントリを指定し、
    有効なエントリに対応する前記L−ページを読み出し、
    読みだした前記L−ページを、前記複数の不揮発性メモリデバイス内の各物理アドレスに書き込み、
    前記各物理アドレスを指し示すために、前記有効なエントリについての前記論理物理アドレス変換マップを更新し、
    前記論理物理アドレス変換マップが更新された前記エントリについての新たなジャーナルエントリを生成する、
    ことによりガベージコレクションを行うように更に構成される請求項9に記載のデータストレージデバイス。
  11. 前記コントローラは、少なくとも、
    ガベージコレクションを行うために、前記複数のS−ブロックの1つを選択し、
    選択された前記S−ブロックの前記物理ページを読み出し、
    選択された前記S−ブロックの読み出した前記物理ページにおけるL−ページ番号を前記論理物理アドレス変換マップにおけるエントリと比較し、有効であるエントリ及び有効でないエントリを指定し、
    有効なエントリに対応するL−ページを、前記複数の不揮発性メモリデバイス内の各物理アドレスに書き込み、
    前記各物理アドレスを指し示すために、前記有効なエントリについての前記論理物理アドレス変換マップを更新し、
    前記論理物理アドレス変換マップが更新された前記エントリについての新たなジャーナルエントリを生成する、
    ことによりガベージコレクションを行うように更に構成される請求項9に記載のデータストレージデバイス。
  12. 前記選択することは、選択するためのS−ブロックを決定する際に空き領域及び書き込み消去(program erase(PE))カウントを重み付けすることを含む請求項10に記載のデータストレージデバイス。
  13. 各ジャーナル番号は、前記ジャーナルによりカバーされる第1の物理ページのアドレスの所定数の最上位ビットを含む請求項1に記載のデータストレージデバイス。
  14. 前記複数のジャーナルエントリのそれぞれは、
    L−ページ番号と、
    物理アドレス位置と、を含む請求項1に記載のデータストレージデバイス。
  15. 前記複数のジャーナルエントリのそれぞれは、
    L−ページ番号と、
    物理ページの物理アドレス位置と、
    L−ページサイズと、を含む請求項1に記載のデータストレージデバイス。
  16. 前記複数のジャーナルエントリのそれぞれは、
    L−ページのスタートを含む物理ページのアドレスの所定数の最下位ビットと、
    アドレスと、
    L−ページサイズと、
    前記物理ページへのオフセットと、を含む請求項1に記載のデータストレージデバイス。
  17. 前記複数のL−ページは、圧縮及びサイズを変更するように構成され、複数のジャーナル番号は、小さいサイズで大きな番号のL−ページを参照する、又は大きなサイズで小さな番号のL−ページを参照するように構成される請求項1に記載のデータストレージデバイス。
  18. 前記コントローラは、更に、所定の順序で開始すると、前記複数のジャーナルを読み出すように構成され、かつ、連続的に読み出された複数のジャーナルに基づいて、前記揮発性メモリに記憶された前記論理物理アドレス変換マップを再構築するように構成される請求項1に記載のデータストレージデバイス。
  19. 前記コントローラは、更に、前記複数のジャーナルに基づいてジャーナルマップを構築するように構成される請求項1に記載のデータストレージデバイス。
  20. 前記コントローラは、更に、
    所定の順序で開始すると、前記複数のジャーナルを読み出し、
    連続的に読み出された前記複数のジャーナルに基づいて、前記不揮発性メモリデバイスに記憶された前記ジャーナルのマップを構築し、
    前記揮発性メモリにおける前記ジャーナルの構築されたマップを記憶する
    ように構成される請求項1に記載のデータストレージデバイス。
  21. 与えられたL−ページに関連付けられたジャーナルエントリのうち、前記与えられたL−ページに関連付けられた、最後に更新された(last−in−time updated)ジャーナルエントリのみが有効である請求項1に記載のデータストレージデバイス。
  22. 前記コントローラは、更に、前記揮発性メモリにおける前記複数のジャーナルのシステムジャーナルマップを維持するように構成され、前記システムジャーナルマップにおける各エントリは、前記複数のジャーナルの1つが記憶される前記不揮発性メモリデバイスにおける位置を指し示す請求項1に記載のデータストレージデバイス。
  23. 揮発性メモリ及び複数の不揮発性メモリデバイスを備えるデータストレージデバイスを制御する方法であって、前記複数の不揮発性メモリデバイスのそれぞれが、複数の物理ページを記憶するように構成され、前記複数の物理ページのそれぞれが、前記複数の不揮発性メモリデバイス内の所定の物理位置で記憶され、前記方法は、
    複数の論理ページ(L−ページ)にデータを記憶するステップであって、前記複数のL−ページのそれぞれは、コントローラが1以上の前記物理ページに記憶されたデータを論理参照可能にするように構成されるL−ページ番号と関連付けられる、ステップと、
    前記揮発性メモリに論理物理アドレス変換マップを維持するステップであって、前記論理物理アドレス変換マップは、各L−ページに記憶されたデータの、前記物理ページの1以上内に、物理位置を決定可能にするように構成される、ステップと、
    前記複数の不揮発性メモリデバイスに物理論理対応を定義する複数のジャーナルを維持するステップであって、前記複数のジャーナルのそれぞれは、ジャーナル番号に関連付けられ、各ジャーナルは、物理ページの所定の範囲をカバーし、かつ複数のジャーナルエントリをそれぞれ含み、各エントリは、1以上の前記物理ページを各L−ページに関連付けるように構成される、ステップと、
    起動すると、前記複数のジャーナルを読み出し、前記複数のジャーナルにおける読み出されたエントリに基づいて前記揮発性メモリに記憶された前記論理物理アドレス変換マップを再構築するステップと、を備える方法。
  24. 前記複数のL−ページの1つへ更新されると、前記複数のジャーナルの1つに新たなエントリを生成するステップを更に備える請求項23に記載の方法。
  25. 前記論理物理アドレス変換マップの少なくとも一部を保存する代わりに新たに生成されたジャーナルエントリに基づいて変換データのパワーセーフコピーを維持するために、前記不揮発性メモリデバイスへの書き込み動作を開始し、ライトアンプリフィケーションが減少する、ステップを更に備える請求項24に記載の方法。
  26. 前記新たなエントリは、更新されたL−ページのスタートの、物理ページ内に、物理位置を示す請求項24に記載の方法。
  27. 更新前のL−ページの長さに対応する量により占められる空き領域を更新するステップを更に備える請求項24に記載の方法。
  28. 前記記憶するステップは、物理ページ境界に位置合わせされない位置に前記複数のL−ページの少なくとも1つを記憶することを含む請求項23に記載の方法。
  29. 前記物理ページは、誤り訂正符号(ECC)ページ(E−ページ)として実装され、前記複数のデバイスは、複数のフラッシュメモリブロックを含み、各フラッシュメモリブロックは、複数のフラッシュメモリページ(F−ページ)を含み、前記F−ページのそれぞれは、複数の前記E−ページを含み、複数の前記E−ページのそれぞれは、前記複数のデバイス内の所定の物理位置に記憶される、請求項23に記載の方法。
  30. 更新されたL−ページのL−ページ番号によって参照されたデータの、1以上の物理ページ内に、前記物理位置で前記論理物理アドレス変換マップを更新するステップを更に備える請求項23に記載の方法。
  31. 前記複数のデバイスは、それぞれがデバイスごとに1以上のフラッシュメモリブロックを含む複数のスーパーブロック(S−ブロック)を備え、前記複数のジャーナルエントリのそれぞれは、前記S−ブロックの前記物理ページの1以上を各L−ページに関連付けるように構成される、請求項23に記載の方法。
  32. ガベージコレクションを行うために、前記複数のS−ブロックの1つを選択するステップと、
    選択された前記S−ブロックに対するジャーナルにおける各エントリを前記論理物理アドレス変換マップにおけるエントリと比較し、有効であるエントリ及び有効でないエントリを指定するステップと、
    前記有効なエントリに対応する前記L−ページを読み出すステップと、
    読み出したL−ページを、前記複数の不揮発性メモリデバイス内の各物理アドレスに書き込むステップと、
    前記各物理アドレスを指し示すために、前記有効なエントリについての前記論理物理アドレス変換マップを更新するステップと、
    前記論理物理アドレス変換マップが更新された前記エントリについての新たなジャーナルエントリを生成するステップと、を更に備える請求項31に記載の方法。
  33. ガベージコレクションを行うために、前記複数のS−ブロックの1つを選択するステップと、
    選択された前記S−ブロックの前記物理ページを読み出すステップと、
    選択された前記S−ブロックの読み出した前記物理ページにおけるL−ページ番号を前記論理物理アドレス変換マップにおけるエントリと比較し、有効であるエントリ及び有効でないエントリを指定するステップと、
    有効なエントリに対応するL−ページを、前記複数の不揮発性メモリデバイス内の各物理アドレスに書き込むステップと、
    前記各物理アドレスを指し示すために、前記有効なエントリについての前記論理物理アドレス変換マップを更新するステップと、
    前記論理物理アドレス変換マップが更新された前記エントリについての新たなジャーナルエントリを生成するステップと、を更に備える請求項31に記載の方法。
  34. 前記選択するステップは、選択するためのS−ブロックを決定する際に空き領域及び書き込み消去(program erase(PE))カウントを重み付けすることを含む請求項32に記載の方法。
  35. 前記ジャーナル番号は、前記ジャーナルによりカバーされる第1の物理ページのアドレスの所定数の最上位ビットを含む請求項34に記載の方法。
  36. 前記複数のジャーナルエントリのそれぞれは、
    L−ページ番号と、
    物理アドレス位置と、を含む請求項23に記載の方法。
  37. 前記複数のジャーナルエントリのそれぞれは、
    L−ページ番号と、
    物理ページの物理アドレス位置と、
    L−ページサイズと、を含む請求項23に記載の方法。
  38. 前記複数のジャーナルエントリのそれぞれは、
    L−ページのスタートを含む物理ページのアドレスの所定数の最下位ビットと、
    アドレスと、
    L−ページサイズと、
    前記物理ページへのオフセットと、を含む請求項23に記載の方法。
  39. 前記複数のL−ページのサイズが変化するように前記複数のL−ページを選択的に圧縮するステップを更に備え、前記複数のジャーナルは、小さいサイズで大きな番号のL−ページを参照する、又は大きなサイズで小さな番号のL−ページを参照するように構成される請求項23に記載の方法。
  40. 前記論理物理アドレス変換マップを開始及び再構築すると、前記複数のジャーナルを読み出すステップは、所定の順序で開始すると、前記複数のジャーナルを読み出し、かつ連続的に読み出された複数のジャーナルに基づいて、前記揮発性メモリに記憶された前記論理物理アドレス変換マップを再構築することを含む請求項23に記載の方法。
  41. 前記コントローラは、更に、前記複数のジャーナルに基づいてジャーナルマップを構築するように構成される請求項23に記載の方法。
  42. 所定の順序で開始すると、前記複数のジャーナルを読み出すステップと、
    連続的に読み出された前記複数のジャーナルに基づいて、前記不揮発性メモリデバイスに記憶された前記ジャーナルのマップを構築するステップと、
    前記揮発性メモリにおける前記ジャーナルの構築されたマップを記憶するステップと、を更に備える請求項23に記載の方法。
  43. 与えられたL−ページに関連付けられたジャーナルエントリのうち、前記与えられたL−ページに関連付けられた、最後に更新された(last−in−time updated)ジャーナルエントリのみが有効である請求項23に記載の方法。
  44. 前記揮発性メモリにおける前記複数のジャーナルのシステムジャーナルマップを維持するステップであって、前記システムジャーナルマップにおける各エントリは、前記複数のジャーナルの1つが記憶される前記不揮発性メモリデバイスにおける位置を指し示す、ステップを更に備える請求項23に記載の方法。
  45. データストレージデバイスコントローラであって、
    揮発性メモリ及び複数のメモリデバイスと接続されたプロセッサであって、前記複数のメモリデバイスのそれぞれは、複数の不揮発性メモリデバイス内の所定の物理位置における複数の物理ページを記憶するように構成され、前記プロセッサは、更に、前記複数のメモリデバイスへデータを書き込み、かつ前記複数のメモリデバイスからデータを読み出すように構成され、前記データは、複数の論理ページ(L−ページ)に記憶され、前記複数のL−ページのそれぞれは、前記プロセッサが、前記物理ページの1以上に記憶されたデータを論理参照可能にするように構成されるL−ページ番号と関連付けられ、前記揮発性メモリは、前記プロセッサが、各L−ページに記憶されたデータの、1以上の物理ページ内に、物理位置を決定可能に構成された論理物理アドレス変換マップを記憶するように構成される、プロセッサを備え、
    前記プロセッサは、前記複数の不揮発性メモリデバイスに、物理論理対応を定義する複数のジャーナルを維持するように構成され、前記複数のジャーナルのそれぞれは、ジャーナル番号と関連付けられ、各ジャーナルは、所定の範囲の物理ページをカバーし、かつ複数のジャーナルエントリを含み、各エントリは、1以上の物理ページを各L−ページに関連付けるように構成され、前記プロセッサは、更に、読み出した前記複数のジャーナルから前記不揮発性メモリデバイスに記憶された前記論理物理アドレス変換マップを開始及び再構築すると、前記複数のジャーナルを読み出すように構成される、データストレージデバイスコントローラ。
JP2015535725A 2012-10-05 2013-09-30 ソリッドステートドライブにおける物理論理マッピングのための方法、装置及びシステム Expired - Fee Related JP6210570B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/645,822 US9268682B2 (en) 2012-10-05 2012-10-05 Methods, devices and systems for physical-to-logical mapping in solid state drives
US13/645,822 2012-10-05
PCT/US2013/062723 WO2014055445A1 (en) 2012-10-05 2013-09-30 Methods, devices and systems for physical-to-logical mapping in solid state drives

Publications (3)

Publication Number Publication Date
JP2015530685A true JP2015530685A (ja) 2015-10-15
JP2015530685A5 JP2015530685A5 (ja) 2016-11-17
JP6210570B2 JP6210570B2 (ja) 2017-10-11

Family

ID=50433685

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015535725A Expired - Fee Related JP6210570B2 (ja) 2012-10-05 2013-09-30 ソリッドステートドライブにおける物理論理マッピングのための方法、装置及びシステム

Country Status (8)

Country Link
US (1) US9268682B2 (ja)
EP (1) EP2904496A4 (ja)
JP (1) JP6210570B2 (ja)
KR (1) KR101911589B1 (ja)
CN (1) CN105027090B (ja)
AU (1) AU2013327582B2 (ja)
HK (1) HK1216443A1 (ja)
WO (1) WO2014055445A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11481121B2 (en) 2016-09-30 2022-10-25 Amazon Technologies, Inc. Physical media aware spacially coupled journaling and replay

Families Citing this family (174)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9176859B2 (en) 2009-01-07 2015-11-03 Siliconsystems, Inc. Systems and methods for improving the performance of non-volatile memory operations
US10079048B2 (en) 2009-03-24 2018-09-18 Western Digital Technologies, Inc. Adjusting access of non-volatile semiconductor memory based on access time
US9753847B2 (en) 2009-10-27 2017-09-05 Western Digital Technologies, Inc. Non-volatile semiconductor memory segregating sequential, random, and system data to reduce garbage collection for page based mapping
US8782327B1 (en) 2010-05-11 2014-07-15 Western Digital Technologies, Inc. System and method for managing execution of internal commands and host commands in a solid-state memory
US9026716B2 (en) 2010-05-12 2015-05-05 Western Digital Technologies, Inc. System and method for managing garbage collection in solid-state memory
US8959284B1 (en) 2010-06-28 2015-02-17 Western Digital Technologies, Inc. Disk drive steering write data to write cache based on workload
US9058280B1 (en) 2010-08-13 2015-06-16 Western Digital Technologies, Inc. Hybrid drive migrating data from disk to non-volatile semiconductor memory based on accumulated access time
US8769190B1 (en) 2010-09-15 2014-07-01 Western Digital Technologies, Inc. System and method for reducing contentions in solid-state memory access
US8788779B1 (en) 2010-09-17 2014-07-22 Western Digital Technologies, Inc. Non-volatile storage subsystem with energy-based performance throttling
US9021192B1 (en) 2010-09-21 2015-04-28 Western Digital Technologies, Inc. System and method for enhancing processing of memory access requests
US9164886B1 (en) 2010-09-21 2015-10-20 Western Digital Technologies, Inc. System and method for multistage processing in a memory storage subsystem
US9069475B1 (en) 2010-10-26 2015-06-30 Western Digital Technologies, Inc. Hybrid drive selectively spinning up disk when powered on
US8700950B1 (en) 2011-02-11 2014-04-15 Western Digital Technologies, Inc. System and method for data error recovery in a solid state subsystem
US8700951B1 (en) 2011-03-09 2014-04-15 Western Digital Technologies, Inc. System and method for improving a data redundancy scheme in a solid state subsystem with additional metadata
US9195530B1 (en) 2011-09-06 2015-11-24 Western Digital Technologies, Inc. Systems and methods for improved data management in data storage systems
US8707104B1 (en) 2011-09-06 2014-04-22 Western Digital Technologies, Inc. Systems and methods for error injection in data storage systems
US8713357B1 (en) 2011-09-06 2014-04-29 Western Digital Technologies, Inc. Systems and methods for detailed error reporting in data storage systems
US8700834B2 (en) 2011-09-06 2014-04-15 Western Digital Technologies, Inc. Systems and methods for an enhanced controller architecture in data storage systems
US9268701B1 (en) 2011-11-21 2016-02-23 Western Digital Technologies, Inc. Caching of data in data storage systems by managing the size of read and write cache based on a measurement of cache reliability
US8959416B1 (en) 2011-12-16 2015-02-17 Western Digital Technologies, Inc. Memory defect management using signature identification
US9348741B1 (en) 2011-12-19 2016-05-24 Western Digital Technologies, Inc. Systems and methods for handling write data access requests in data storage devices
US9053008B1 (en) 2012-03-26 2015-06-09 Western Digital Technologies, Inc. Systems and methods for providing inline parameter service in data storage devices
US9977612B1 (en) 2012-05-11 2018-05-22 Western Digital Technologies, Inc. System data management using garbage collection and logs
US9170932B1 (en) 2012-05-22 2015-10-27 Western Digital Technologies, Inc. System data storage mechanism providing coherency and segmented data loading
US8924832B1 (en) 2012-06-26 2014-12-30 Western Digital Technologies, Inc. Efficient error handling mechanisms in data storage systems
US8954653B1 (en) 2012-06-26 2015-02-10 Western Digital Technologies, Inc. Mechanisms for efficient management of system data in data storage systems
US8966343B2 (en) 2012-08-21 2015-02-24 Western Digital Technologies, Inc. Solid-state drive retention monitor using reference blocks
US9507523B1 (en) 2012-10-12 2016-11-29 Western Digital Technologies, Inc. Methods, devices and systems for variable size logical page management in a solid state drive
US9489296B1 (en) 2012-10-17 2016-11-08 Western Digital Technologies, Inc. Methods, devices and systems for hardware-based garbage collection in solid state drives
US8972826B2 (en) 2012-10-24 2015-03-03 Western Digital Technologies, Inc. Adaptive error correction codes for data storage systems
US9177638B2 (en) 2012-11-13 2015-11-03 Western Digital Technologies, Inc. Methods and devices for avoiding lower page corruption in data storage devices
US8954694B2 (en) 2012-11-15 2015-02-10 Western Digital Technologies, Inc. Methods, data storage devices and systems for fragmented firmware table rebuild in a solid state drive
US9021339B2 (en) 2012-11-29 2015-04-28 Western Digital Technologies, Inc. Data reliability schemes for data storage systems
US9059736B2 (en) 2012-12-03 2015-06-16 Western Digital Technologies, Inc. Methods, solid state drive controllers and data storage devices having a runtime variable raid protection scheme
US9032271B2 (en) 2012-12-07 2015-05-12 Western Digital Technologies, Inc. System and method for lower page data recovery in a solid state drive
US8954655B2 (en) 2013-01-14 2015-02-10 Western Digital Technologies, Inc. Systems and methods of configuring a mode of operation in a solid-state memory
US8972655B2 (en) 2013-01-21 2015-03-03 Western Digital Technolgies, Inc. Initialization of a storage device
US9495288B2 (en) * 2013-01-22 2016-11-15 Seagate Technology Llc Variable-size flash translation layer
US9274966B1 (en) 2013-02-20 2016-03-01 Western Digital Technologies, Inc. Dynamically throttling host commands to disk drives
US9454474B2 (en) 2013-03-05 2016-09-27 Western Digital Technologies, Inc. Methods, devices and systems for two stage power-on map rebuild with free space accounting in a solid state drive
US8924824B1 (en) 2013-03-12 2014-12-30 Western Digital Technologies, Inc. Soft-decision input generation for data storage systems
US8990668B2 (en) 2013-03-14 2015-03-24 Western Digital Technologies, Inc. Decoding data stored in solid-state memory
US9448738B2 (en) 2013-03-15 2016-09-20 Western Digital Technologies, Inc. Compression and formatting of data for data storage systems
US9218279B2 (en) 2013-03-15 2015-12-22 Western Digital Technologies, Inc. Atomic write command support in a solid state drive
US9335950B2 (en) 2013-03-15 2016-05-10 Western Digital Technologies, Inc. Multiple stream compression and formatting of data for data storage systems
US9338927B2 (en) 2013-05-02 2016-05-10 Western Digital Technologies, Inc. Thermal interface material pad and method of forming the same
US9195293B1 (en) 2013-05-03 2015-11-24 Western Digital Technologies, Inc. User controlled data storage device power and performance settings
US9081700B2 (en) 2013-05-16 2015-07-14 Western Digital Technologies, Inc. High performance read-modify-write system providing line-rate merging of dataframe segments in hardware
US9632926B1 (en) 2013-05-16 2017-04-25 Western Digital Technologies, Inc. Memory unit assignment and selection for internal memory operations in data storage systems
US9170938B1 (en) 2013-05-17 2015-10-27 Western Digital Technologies, Inc. Method and system for atomically writing scattered information in a solid state storage device
US9280200B1 (en) 2013-05-20 2016-03-08 Western Digital Technologies, Inc. Automatic peak current throttle of tiered storage elements
US9740248B2 (en) 2013-06-07 2017-08-22 Western Digital Technologies, Inc. Component placement within a solid state drive
US9274978B2 (en) 2013-06-10 2016-03-01 Western Digital Technologies, Inc. Migration of encrypted data for data storage systems
US9436630B2 (en) 2013-06-11 2016-09-06 Western Digital Technologies, Inc. Using dual phys to support multiple PCIe link widths
US9830257B1 (en) 2013-06-12 2017-11-28 Western Digital Technologies, Inc. Fast saving of data during power interruption in data storage systems
US9665501B1 (en) 2013-06-18 2017-05-30 Western Digital Technologies, Inc. Self-encrypting data storage device supporting object-level encryption
US9304560B2 (en) 2013-06-19 2016-04-05 Western Digital Technologies, Inc. Backup power for reducing host current transients
GB2515539A (en) 2013-06-27 2014-12-31 Samsung Electronics Co Ltd Data structure for physical layer encapsulation
US9208101B2 (en) 2013-06-26 2015-12-08 Western Digital Technologies, Inc. Virtual NAND capacity extension in a hybrid drive
US9583153B1 (en) 2013-06-28 2017-02-28 Western Digital Technologies, Inc. Memory card placement within a solid state drive
US9042197B2 (en) 2013-07-23 2015-05-26 Western Digital Technologies, Inc. Power fail protection and recovery using low power states in a data storage device/system
US9141176B1 (en) 2013-07-29 2015-09-22 Western Digital Technologies, Inc. Power management for data storage device
US9442668B1 (en) 2013-08-29 2016-09-13 Western Digital Technologies, Inc. Adaptive power management control with performance feedback
US9263136B1 (en) 2013-09-04 2016-02-16 Western Digital Technologies, Inc. Data retention flags in solid-state drives
US9304709B2 (en) 2013-09-06 2016-04-05 Western Digital Technologies, Inc. High performance system providing selective merging of dataframe segments in hardware
US9330143B2 (en) 2013-10-24 2016-05-03 Western Digital Technologies, Inc. Data storage device supporting accelerated database operations
US9007841B1 (en) 2013-10-24 2015-04-14 Western Digital Technologies, Inc. Programming scheme for improved voltage distribution in solid-state memory
US10444998B1 (en) 2013-10-24 2019-10-15 Western Digital Technologies, Inc. Data storage device providing data maintenance services
US8917471B1 (en) 2013-10-29 2014-12-23 Western Digital Technologies, Inc. Power management for data storage device
US9323467B2 (en) 2013-10-29 2016-04-26 Western Digital Technologies, Inc. Data storage device startup
US9286176B1 (en) 2013-11-08 2016-03-15 Western Digital Technologies, Inc. Selective skipping of blocks in an SSD
US9270296B1 (en) 2013-11-13 2016-02-23 Western Digital Technologies, Inc. Method and system for soft decoding through single read
US9529710B1 (en) 2013-12-06 2016-12-27 Western Digital Technologies, Inc. Interleaved channels in a solid-state drive
US10140067B1 (en) 2013-12-19 2018-11-27 Western Digital Technologies, Inc. Data management for data storage device with multiple types of non-volatile memory media
US9645894B2 (en) 2013-12-26 2017-05-09 Silicon Motion, Inc. Data storage device and flash memory control method
US9036283B1 (en) 2014-01-22 2015-05-19 Western Digital Technologies, Inc. Data storage device with selective write to a first storage media or a second storage media
US9337864B1 (en) 2014-01-29 2016-05-10 Western Digital Technologies, Inc. Non-binary LDPC decoder using binary subgroup processing
US9250994B1 (en) 2014-02-05 2016-02-02 Western Digital Technologies, Inc. Non-binary low-density parity check (LDPC) decoding using trellis maximization
US9384088B1 (en) 2014-02-24 2016-07-05 Western Digital Technologies, Inc. Double writing map table entries in a data storage system to guard against silent corruption
US9354955B1 (en) 2014-03-19 2016-05-31 Western Digital Technologies, Inc. Partial garbage collection for fast error handling and optimized garbage collection for the invisible band
US9268487B2 (en) 2014-03-24 2016-02-23 Western Digital Technologies, Inc. Method and apparatus for restricting writes to solid state memory when an end-of life condition is reached
US9348520B2 (en) 2014-03-24 2016-05-24 Western Digital Technologies, Inc. Lifetime extension of non-volatile semiconductor memory for data storage device
US9448742B2 (en) 2014-03-27 2016-09-20 Western Digital Technologies, Inc. Communication between a host and a secondary storage device
TWI522804B (zh) 2014-04-23 2016-02-21 威盛電子股份有限公司 快閃記憶體控制器以及資料儲存裝置以及快閃記憶體控制方法
US9564212B2 (en) 2014-05-06 2017-02-07 Western Digital Technologies, Inc. Solid-state memory corruption mitigation
US9690696B1 (en) 2014-05-14 2017-06-27 Western Digital Technologies, Inc. Lifetime extension of memory for data storage system
US9472222B2 (en) 2014-05-16 2016-10-18 Western Digital Technologies, Inc. Vibration mitigation for a data storage device
US9959203B2 (en) 2014-06-23 2018-05-01 Google Llc Managing storage devices
US9275741B1 (en) 2014-09-10 2016-03-01 Western Digital Technologies, Inc. Temperature compensation management in solid-state memory
US9418699B1 (en) 2014-10-09 2016-08-16 Western Digital Technologies, Inc. Management of sequentially written data
US9405356B1 (en) 2014-10-21 2016-08-02 Western Digital Technologies, Inc. Temperature compensation in data storage device
US9823859B2 (en) 2014-11-06 2017-11-21 Western Digital Technologies, Inc. Mechanical shock mitigation for data storage
US10915256B2 (en) * 2015-02-25 2021-02-09 SK Hynix Inc. Efficient mapping scheme with deterministic power transition times for flash storage devices
US9857995B1 (en) 2015-03-09 2018-01-02 Western Digital Technologies, Inc. Data storage device and method providing non-volatile memory buffer for real-time primary non-volatile memory protection
US9785563B1 (en) 2015-08-13 2017-10-10 Western Digital Technologies, Inc. Read command processing for data storage system based on previous writes
US9668337B2 (en) 2015-09-08 2017-05-30 Western Digital Technologies, Inc. Temperature management in data storage devices
US9727261B2 (en) 2015-09-24 2017-08-08 Western Digital Technologies, Inc. Weighted programming patterns in solid-state data storage systems
US10013174B2 (en) 2015-09-30 2018-07-03 Western Digital Technologies, Inc. Mapping system selection for data storage device
US9836232B1 (en) 2015-09-30 2017-12-05 Western Digital Technologies, Inc. Data storage device and method for using secondary non-volatile memory for temporary metadata storage
US9620226B1 (en) 2015-10-30 2017-04-11 Western Digital Technologies, Inc. Data retention charge loss and read disturb compensation in solid-state data storage systems
CN106843744B (zh) * 2015-12-03 2020-05-26 群联电子股份有限公司 数据程序化方法与存储器储存装置
US10126981B1 (en) 2015-12-14 2018-11-13 Western Digital Technologies, Inc. Tiered storage using storage class memory
US9940034B2 (en) 2016-01-25 2018-04-10 International Business Machines Corporation Reducing read access latency by straddling pages across non-volatile memory channels
US10162561B2 (en) 2016-03-21 2018-12-25 Apple Inc. Managing backup of logical-to-physical translation information to control boot-time and write amplification
US10157004B2 (en) * 2016-04-14 2018-12-18 Sandisk Technologies Llc Storage system and method for recovering data corrupted in a host memory buffer
CN113590504A (zh) * 2016-06-29 2021-11-02 北京忆恒创源科技股份有限公司 存储日志帧以及日志条目的固态硬盘
CN112433889B (zh) * 2016-06-29 2024-04-12 北京忆恒创源科技股份有限公司 基于ftl表的日志生成方法与装置
CN107544913B (zh) * 2016-06-29 2021-09-28 北京忆恒创源科技股份有限公司 一种ftl表快速重建方法与装置
CN106201778B (zh) * 2016-06-30 2019-06-25 联想(北京)有限公司 信息处理方法及存储设备
US9946463B2 (en) * 2016-07-12 2018-04-17 Western Digital Technologies, Inc. Compression of indirection tables
CN106155919B (zh) * 2016-07-26 2019-06-11 深圳市瑞耐斯技术有限公司 一种3d闪存的控制方法及控制系统
KR20180019419A (ko) 2016-08-16 2018-02-26 삼성전자주식회사 메모리 컨트롤러, 메모리 시스템 및 그 동작방법
US10387303B2 (en) 2016-08-16 2019-08-20 Western Digital Technologies, Inc. Non-volatile storage system with compute engine to accelerate big data applications
CN107870870B (zh) * 2016-09-28 2021-12-14 北京忆芯科技有限公司 访问超过地址总线宽度的内存空间
CN107870867B (zh) * 2016-09-28 2021-12-14 北京忆芯科技有限公司 32位cpu访问大于4gb内存空间的方法与装置
US10489289B1 (en) 2016-09-30 2019-11-26 Amazon Technologies, Inc. Physical media aware spacially coupled journaling and trim
US10747678B2 (en) 2016-10-27 2020-08-18 Seagate Technology Llc Storage tier with compressed forward map
US10459644B2 (en) 2016-10-28 2019-10-29 Western Digital Techologies, Inc. Non-volatile storage system with integrated compute engine and optimized use of local fast memory
KR20180051706A (ko) 2016-11-07 2018-05-17 삼성전자주식회사 어드레스 맵핑 테이블의 에러 정정을 수행하는 메모리 시스템
TWI591533B (zh) * 2016-11-25 2017-07-11 慧榮科技股份有限公司 可用於資料儲存裝置之資料儲存方法與資料回復程序、以及採用這些方法的資料儲存裝置
US10613973B1 (en) 2016-12-28 2020-04-07 Amazon Technologies, Inc. Garbage collection in solid state drives
US10565123B2 (en) 2017-04-10 2020-02-18 Western Digital Technologies, Inc. Hybrid logical to physical address translation for non-volatile storage devices with integrated compute module
CN108733575B (zh) * 2017-04-20 2022-12-27 深圳市得一微电子有限责任公司 一种断电重启后逻辑对物理映像表的重建方法、固态硬盘
KR102458312B1 (ko) 2017-06-09 2022-10-24 삼성전자주식회사 스토리지 장치 및 이의 동작 방법
US10845866B2 (en) * 2017-06-22 2020-11-24 Micron Technology, Inc. Non-volatile memory system or sub-system
US10649661B2 (en) * 2017-06-26 2020-05-12 Western Digital Technologies, Inc. Dynamically resizing logical storage blocks
WO2019000355A1 (en) * 2017-06-30 2019-01-03 Intel Corporation COMPRESSED KEY LOG STRUCTURE
US10628326B2 (en) 2017-08-21 2020-04-21 Micron Technology, Inc. Logical to physical mapping
US10474528B2 (en) 2017-10-02 2019-11-12 Western Digital Technologies, Inc. Redundancy coding stripe based on coordinated internal address scheme across multiple devices
US10379948B2 (en) 2017-10-02 2019-08-13 Western Digital Technologies, Inc. Redundancy coding stripe based on internal addresses of storage devices
US10877898B2 (en) * 2017-11-16 2020-12-29 Alibaba Group Holding Limited Method and system for enhancing flash translation layer mapping flexibility for performance and lifespan improvements
CN109800180B (zh) * 2017-11-17 2023-06-27 爱思开海力士有限公司 用于地址映射的方法和存储器系统
KR20190083051A (ko) * 2018-01-03 2019-07-11 에스케이하이닉스 주식회사 컨트롤러 및 그것의 동작방법
TWI670594B (zh) * 2018-01-18 2019-09-01 慧榮科技股份有限公司 資料儲存裝置
KR102527132B1 (ko) * 2018-01-19 2023-05-02 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
CN110096452A (zh) * 2018-01-31 2019-08-06 北京忆恒创源科技有限公司 非易失随机访问存储器及其提供方法
TWI679538B (zh) * 2018-03-31 2019-12-11 慧榮科技股份有限公司 資料儲存系統之控制單元以及邏輯至物理映射表更新方法
US10409511B1 (en) 2018-06-30 2019-09-10 Western Digital Technologies, Inc. Multi-device storage system with distributed read/write processing
US10725941B2 (en) 2018-06-30 2020-07-28 Western Digital Technologies, Inc. Multi-device storage system with hosted services on peer storage devices
KR102612918B1 (ko) * 2018-07-27 2023-12-13 에스케이하이닉스 주식회사 컨트롤러 및 컨트롤러의 동작방법
US10831603B2 (en) 2018-08-03 2020-11-10 Western Digital Technologies, Inc. Rebuild assist using failed storage device
US10649843B2 (en) 2018-08-03 2020-05-12 Western Digital Technologies, Inc. Storage systems with peer data scrub
US10824526B2 (en) 2018-08-03 2020-11-03 Western Digital Technologies, Inc. Using failed storage device in peer-to-peer storage system to perform storage-centric task
US10901848B2 (en) 2018-08-03 2021-01-26 Western Digital Technologies, Inc. Storage systems with peer data recovery
US10592144B2 (en) 2018-08-03 2020-03-17 Western Digital Technologies, Inc. Storage system fabric with multichannel compute complex
US10877810B2 (en) 2018-09-29 2020-12-29 Western Digital Technologies, Inc. Object storage system with metadata operation priority processing
US10956071B2 (en) 2018-10-01 2021-03-23 Western Digital Technologies, Inc. Container key value store for data storage devices
US10769062B2 (en) 2018-10-01 2020-09-08 Western Digital Technologies, Inc. Fine granularity translation layer for data storage devices
TWI709042B (zh) * 2018-11-08 2020-11-01 慧榮科技股份有限公司 用來進行關於容錯式磁碟陣列的映射資訊管理之方法與裝置以及儲存系統
US10740231B2 (en) 2018-11-20 2020-08-11 Western Digital Technologies, Inc. Data access in data storage device including storage class memory
US10983918B2 (en) 2018-12-31 2021-04-20 Micron Technology, Inc. Hybrid logical to physical caching scheme
US11182258B2 (en) 2019-01-04 2021-11-23 Western Digital Technologies, Inc. Data rebuild using dynamic peer work allocation
US11061598B2 (en) * 2019-03-25 2021-07-13 Western Digital Technologies, Inc. Optimized handling of multiple copies in storage management
TWI698744B (zh) * 2019-04-10 2020-07-11 慧榮科技股份有限公司 資料儲存裝置及邏輯至物理位址映射表之更新方法
US11226904B2 (en) * 2019-04-26 2022-01-18 Hewlett Packard Enterprise Development Lp Cache data location system
US10997085B2 (en) 2019-06-03 2021-05-04 International Business Machines Corporation Compression for flash translation layer
US11237893B2 (en) * 2019-06-26 2022-02-01 Western Digital Technologies, Inc. Use of error correction-based metric for identifying poorly performing data storage devices
US10825535B1 (en) 2019-08-28 2020-11-03 Micron Technology, Inc. Intra-code word wear leveling techniques
US10977189B2 (en) 2019-09-06 2021-04-13 Seagate Technology Llc Reducing forward mapping table size using hashing
TWI724550B (zh) * 2019-09-19 2021-04-11 慧榮科技股份有限公司 資料儲存裝置以及非揮發式記憶體控制方法
US11016905B1 (en) 2019-11-13 2021-05-25 Western Digital Technologies, Inc. Storage class memory access
CN113127376B (zh) * 2019-12-30 2024-02-27 阿里巴巴集团控股有限公司 固态驱动器的控制方法、装置及设备
US11194709B2 (en) * 2019-12-30 2021-12-07 Micron Technology, Inc. Asynchronous power loss recovery for memory devices
CN111338990B (zh) * 2020-02-12 2021-01-12 合肥康芯威存储技术有限公司 一种数据存储装置及数据存储方法与存储系统
JP2021149549A (ja) 2020-03-19 2021-09-27 キオクシア株式会社 ストレージ装置およびアドレス変換テーブルのキャッシュ制御方法
US11249921B2 (en) 2020-05-06 2022-02-15 Western Digital Technologies, Inc. Page modification encoding and caching
US11726921B2 (en) * 2020-05-21 2023-08-15 Seagate Technology Llc Combined page footer for parallel metadata storage
CN113885778B (zh) * 2020-07-02 2024-03-08 慧荣科技股份有限公司 数据处理方法及对应的数据储存装置
CN113961140A (zh) 2020-07-02 2022-01-21 慧荣科技股份有限公司 数据处理方法及对应的数据储存装置
US11360671B2 (en) * 2020-07-22 2022-06-14 Seagate Technology Llc Region-specific directed offline scan for hard disk drive
US11550724B2 (en) 2020-08-14 2023-01-10 Samsung Electronics Co., Ltd. Method and system for logical to physical (L2P) mapping for data-storage device comprising nonvolatile memory
KR20220032826A (ko) 2020-09-08 2022-03-15 에스케이하이닉스 주식회사 메모리 시스템 내 맵 정보를 제어 및 저장하는 장치 및 방법
US20210223979A1 (en) * 2021-03-16 2021-07-22 Intel Corporation On-ssd-copy techniques using copy-on-write
CN115563026B (zh) * 2022-12-07 2023-04-14 合肥康芯威存储技术有限公司 一种映射表的重建方法及数据存储设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008171163A (ja) * 2007-01-11 2008-07-24 Hitachi Ltd フラッシュメモリモジュール、そのフラッシュメモリモジュールを記録媒体として用いたストレージ装置及びそのフラッシュメモリモジュールのアドレス変換テーブル検証方法
JP2009199665A (ja) * 2008-02-21 2009-09-03 Hitachi Global Storage Technologies Netherlands Bv データ記憶装置及びデータ記憶装置におけるデータ管理方法
US20120191664A1 (en) * 2011-01-24 2012-07-26 Apple Inc. Coordinating sync points between a non-volatile memory and a file system
US8407449B1 (en) * 2010-02-26 2013-03-26 Western Digital Technologies, Inc. Non-volatile semiconductor memory storing an inverse map for rebuilding a translation table

Family Cites Families (54)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7886108B2 (en) 2000-01-06 2011-02-08 Super Talent Electronics, Inc. Methods and systems of managing memory addresses in a large capacity multi-level cell (MLC) based flash memory device
US7660941B2 (en) 2003-09-10 2010-02-09 Super Talent Electronics, Inc. Two-level RAM lookup table for block and page allocation and wear-leveling in limited-write flash-memories
US7610438B2 (en) 2000-01-06 2009-10-27 Super Talent Electronics, Inc. Flash-memory card for caching a hard disk drive with data-area toggling of pointers stored in a RAM lookup table
US8266367B2 (en) 2003-12-02 2012-09-11 Super Talent Electronics, Inc. Multi-level striping and truncation channel-equalization for flash-memory system
US7526599B2 (en) * 2002-10-28 2009-04-28 Sandisk Corporation Method and apparatus for effectively enabling an out of sequence write process within a non-volatile memory system
US20040088474A1 (en) 2002-10-30 2004-05-06 Lin Jin Shin NAND type flash memory disk device and method for detecting the logical address
US20040109376A1 (en) 2002-12-09 2004-06-10 Jin-Shin Lin Method for detecting logical address of flash memory
US7139864B2 (en) 2003-12-30 2006-11-21 Sandisk Corporation Non-volatile memory and method with block management system
JP2005293774A (ja) 2004-04-02 2005-10-20 Hitachi Global Storage Technologies Netherlands Bv ディスク装置の制御方法
US7441067B2 (en) 2004-11-15 2008-10-21 Sandisk Corporation Cyclic flash memory wear leveling
KR101404083B1 (ko) 2007-11-06 2014-06-09 삼성전자주식회사 반도체 디스크 및 그것의 동작 방법
US7363421B2 (en) 2005-01-13 2008-04-22 Stmicroelectronics S.R.L. Optimizing write/erase operations in memory devices
US8452929B2 (en) 2005-04-21 2013-05-28 Violin Memory Inc. Method and system for storage of data in non-volatile media
US20070016721A1 (en) 2005-07-18 2007-01-18 Wyse Technology Inc. Flash file system power-up by using sequential sector allocation
US20070094445A1 (en) 2005-10-20 2007-04-26 Trika Sanjeev N Method to enable fast disk caching and efficient operations on solid state disks
US7509471B2 (en) 2005-10-27 2009-03-24 Sandisk Corporation Methods for adaptively handling data writes in non-volatile memories
WO2007066720A1 (ja) 2005-12-09 2007-06-14 Matsushita Electric Industrial Co., Ltd. 不揮発性記憶装置並びにデータ書込み方法及びデータ読み出し方法
US7711923B2 (en) 2006-06-23 2010-05-04 Microsoft Corporation Persistent flash memory mapping table
KR100843543B1 (ko) 2006-10-25 2008-07-04 삼성전자주식회사 플래시 메모리 장치를 포함하는 시스템 및 그것의 데이터복구 방법
US8316206B2 (en) * 2007-02-12 2012-11-20 Marvell World Trade Ltd. Pilot placement for non-volatile memory
US20080288712A1 (en) 2007-04-25 2008-11-20 Cornwell Michael J Accessing metadata with an external host
US20080282024A1 (en) 2007-05-09 2008-11-13 Sudeep Biswas Management of erase operations in storage devices based on flash memories
US8095851B2 (en) 2007-09-06 2012-01-10 Siliconsystems, Inc. Storage subsystem capable of adjusting ECC settings based on monitored conditions
KR101436505B1 (ko) 2008-01-03 2014-09-02 삼성전자주식회사 메모리 장치
TWI375956B (en) 2008-02-29 2012-11-01 Phison Electronics Corp Block management methnd for flash memory, controller and storage sysetm thereof
KR101398200B1 (ko) 2008-03-18 2014-05-26 삼성전자주식회사 메모리 장치 및 인코딩/디코딩 방법
KR101398212B1 (ko) 2008-03-18 2014-05-26 삼성전자주식회사 메모리 장치 및 인코딩/디코딩 방법
US8180954B2 (en) 2008-04-15 2012-05-15 SMART Storage Systems, Inc. Flash management using logical page size
KR101518199B1 (ko) 2008-05-23 2015-05-06 삼성전자주식회사 오류 정정 장치, 그 방법 및 상기 장치를 포함하는 메모리장치
US8321652B2 (en) 2008-08-01 2012-11-27 Infineon Technologies Ag Process and method for logical-to-physical address mapping using a volatile memory device in solid state disks
US8412880B2 (en) 2009-01-08 2013-04-02 Micron Technology, Inc. Memory system controller to manage wear leveling across a plurality of storage nodes
US8255774B2 (en) 2009-02-17 2012-08-28 Seagate Technology Data storage system with non-volatile memory for error correction
KR20100104623A (ko) 2009-03-18 2010-09-29 삼성전자주식회사 데이터 처리 시스템 및 그것의 부호율 제어 스킴
KR101571693B1 (ko) 2009-04-15 2015-11-26 삼성전자주식회사 동작 수행 중 다른 요청을 우선 처리할 수 있는 비휘발성 메모리 컨트롤러, 이를 포함하는 시스템 및 그 관리 방법
US20100306451A1 (en) 2009-06-01 2010-12-02 Joshua Johnson Architecture for nand flash constraint enforcement
US8219776B2 (en) 2009-09-23 2012-07-10 Lsi Corporation Logical-to-physical address translation for solid state disks
US20110004720A1 (en) * 2009-07-02 2011-01-06 Chun-Ying Chiang Method and apparatus for performing full range random writing on a non-volatile memory
US8688894B2 (en) 2009-09-03 2014-04-01 Pioneer Chip Technology Ltd. Page based management of flash storage
US8463983B2 (en) 2009-09-15 2013-06-11 International Business Machines Corporation Container marker scheme for reducing write amplification in solid state devices
US20110072333A1 (en) 2009-09-24 2011-03-24 Innostor Technology Corporation Control method for flash memory based on variable length ecc
US8745353B2 (en) 2009-10-23 2014-06-03 Seagate Technology Llc Block boundary resolution for mismatched logical and physical block sizes
US8364929B2 (en) 2009-10-23 2013-01-29 Seagate Technology Llc Enabling spanning for a storage device
US8255661B2 (en) 2009-11-13 2012-08-28 Western Digital Technologies, Inc. Data storage system comprising a mapping bridge for aligning host block size with physical block size of a data storage device
JP4738536B1 (ja) 2010-01-29 2011-08-03 株式会社東芝 不揮発性メモリのコントローラ及び不揮発性メモリの制御方法
US8327226B2 (en) 2010-02-03 2012-12-04 Seagate Technology Llc Adjustable error correction code length in an electrical storage device
US8458417B2 (en) 2010-03-10 2013-06-04 Seagate Technology Llc Garbage collection in a storage device
US20110252289A1 (en) 2010-04-08 2011-10-13 Seagate Technology Llc Adjusting storage device parameters based on reliability sensing
US9026716B2 (en) 2010-05-12 2015-05-05 Western Digital Technologies, Inc. System and method for managing garbage collection in solid-state memory
US20120173795A1 (en) 2010-05-25 2012-07-05 Ocz Technology Group, Inc. Solid state drive with low write amplification
US8533550B2 (en) 2010-06-29 2013-09-10 Intel Corporation Method and system to improve the performance and/or reliability of a solid-state drive
TWI455144B (zh) 2010-07-22 2014-10-01 Silicon Motion Inc 使用於快閃記憶體的控制方法與控制器
CN102567221B (zh) * 2010-12-29 2015-06-10 群联电子股份有限公司 数据管理方法、存储器控制器与存储器储存装置
US8732431B2 (en) 2011-03-06 2014-05-20 Micron Technology, Inc. Logical address translation
TWI432962B (zh) * 2011-10-06 2014-04-01 Mstar Semiconductor Inc 電子系統及其記憶體管理方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008171163A (ja) * 2007-01-11 2008-07-24 Hitachi Ltd フラッシュメモリモジュール、そのフラッシュメモリモジュールを記録媒体として用いたストレージ装置及びそのフラッシュメモリモジュールのアドレス変換テーブル検証方法
JP2009199665A (ja) * 2008-02-21 2009-09-03 Hitachi Global Storage Technologies Netherlands Bv データ記憶装置及びデータ記憶装置におけるデータ管理方法
US8407449B1 (en) * 2010-02-26 2013-03-26 Western Digital Technologies, Inc. Non-volatile semiconductor memory storing an inverse map for rebuilding a translation table
US20120191664A1 (en) * 2011-01-24 2012-07-26 Apple Inc. Coordinating sync points between a non-volatile memory and a file system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11481121B2 (en) 2016-09-30 2022-10-25 Amazon Technologies, Inc. Physical media aware spacially coupled journaling and replay

Also Published As

Publication number Publication date
US9268682B2 (en) 2016-02-23
AU2013327582A1 (en) 2015-05-14
WO2014055445A1 (en) 2014-04-10
CN105027090B (zh) 2018-03-09
AU2013327582B2 (en) 2019-01-17
JP6210570B2 (ja) 2017-10-11
KR101911589B1 (ko) 2018-10-24
KR20150084817A (ko) 2015-07-22
EP2904496A4 (en) 2016-06-01
HK1216443A1 (zh) 2016-11-11
EP2904496A1 (en) 2015-08-12
US20140101369A1 (en) 2014-04-10
CN105027090A (zh) 2015-11-04

Similar Documents

Publication Publication Date Title
JP6210570B2 (ja) ソリッドステートドライブにおける物理論理マッピングのための方法、装置及びシステム
JP6192024B2 (ja) ソリッドステートドライブにおいて再構築された断片化ファームウェアテーブルのための方法、データストレージデバイス及びシステム
US10055345B2 (en) Methods, devices and systems for solid state drive control
US9792067B2 (en) Trim command processing in a solid state drive
KR101916206B1 (ko) 고체 상태 드라이브에서 자유 공간 어카운트와 함께 재구축되는 2 스테이지 파워 온 맵을 위한 방법들, 디바이스들, 및 시스템들
US10657047B2 (en) Data storage device and method of performing partial garbage collection
US10254983B2 (en) Atomic write command support in a solid state drive
US9507523B1 (en) Methods, devices and systems for variable size logical page management in a solid state drive

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20151217

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160929

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160929

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20160929

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20161027

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170117

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20170417

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20170616

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170718

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20170807

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

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20170817

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170907

R150 Certificate of patent or registration of utility model

Ref document number: 6210570

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313117

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees