JP2017502376A - 不揮発性メモリのための転送バッファの管理 - Google Patents

不揮発性メモリのための転送バッファの管理 Download PDF

Info

Publication number
JP2017502376A
JP2017502376A JP2016528029A JP2016528029A JP2017502376A JP 2017502376 A JP2017502376 A JP 2017502376A JP 2016528029 A JP2016528029 A JP 2016528029A JP 2016528029 A JP2016528029 A JP 2016528029A JP 2017502376 A JP2017502376 A JP 2017502376A
Authority
JP
Japan
Prior art keywords
plurality
sectors
non
volatile memory
transfer buffer
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.)
Pending
Application number
JP2016528029A
Other languages
English (en)
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
Priority to US14/140,919 priority Critical patent/US20150186257A1/en
Priority to US14/140,919 priority
Application filed by インテル・コーポレーション filed Critical インテル・コーポレーション
Priority to PCT/US2014/066960 priority patent/WO2015099922A1/en
Publication of JP2017502376A publication Critical patent/JP2017502376A/ja
Application status is Pending legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING; 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; 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/7203Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING; 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/7205Cleaning, compaction, garbage collection, erase control

Abstract

複数の実施形態は、不揮発性メモリに関連付けられた転送バッファを管理するための装置、方法、およびシステムを含む。一実施形態において、コントローラロジックが、不揮発性メモリおよび転送バッファに連結されてよい。コントローラロジックは、不揮発性メモリからデータの複数のセクタを読み取り、読み取られたセクタを転送バッファに格納してよい。コントローラロジックは、複数のセクタのうちの個別のセクタの読み取りの完了時間に従い、複数の個別のセクタを複数のページにさらに割り当て、個別のページが複数のセクタを含んでいる。コントローラロジックは、ページのすべてのセクタが読み取られたという判断に応答して、複数のセクタからなるページを不揮発性メモリにさらに書き込んでよい。

Description

関連出願への相互参照
本願は、2013年12月26日に出願された、発明の名称「不揮発性メモリのための転送バッファの管理」の米国出願第14/140,919号の優先権を主張し、参照により本明細書にその全体が組み込まれる。本発明の複数の実施形態は、概してメモリの技術分野に関する。特定の複数の実施形態は、不揮発性メモリに関連付けられた転送バッファの管理に関する。

本明細書に提供される背景技術の記載は、概して本開示の文脈を提示する目的のものである。この背景技術の項で説明される程度において、現在名を連ねている発明者らの研究は、及び、出願時における従来技術として認定されないであろう説明の複数の態様は、本開示に対する従来技術として明示的にも暗示的にも認められるものではない。本明細書において別途記載されない限り、この項において説明されるアプローチは、本開示の特許請求の範囲に対する従来技術ではなく、この項に含まれることによって従来技術として認められるものでもない。

多くのソリッドステートドライブ(SSD)は、NANDフラッシュメモリのような不揮発性メモリを採用しており、そこではメモリリソースのブロックへの新しいデータの書き込み前に、当該ブロックが消去される必要がある。従って、不揮発性メモリをデフラグし、新しいデータの格納のために、メモリリソースのブロックを解放するために、定期的にガーベジコレクションが実行される必要がある。ガーベジコレクション中、不揮発性メモリのメモリリソースのブロック内に格納された、まだ有効なデータであるデータは、複数のページにグループ化され、当該ページはメモリから読み取られ、転送バッファ内に格納され、その後にメモリに再度書き込まれる。その後、当該メモリリソースのブロックは、消去される。しかしながら、当該複数のページのいくつかのデータに対する読み取り操作は、遅延させる可能性がある。複数の実施形態は、添付図面と共に、以下の詳細な説明によって、容易に理解されるであろう。本説明を容易にするために、同様の参照番号は、同様の構成要素を示す。複数の実施形態は、添付図面の図における例示として示されており、限定として示されるものではない。

様々な実施形態に従う、メモリコントローラおよび不揮発性メモリを含む例示的なメモリシステムを示す。 様々な実施形態に従う、不揮発性メモリにガーベジコレクションを実行するための例示的な方法を示す。 様々な実施形態に従う、本明細書に記載される装置および方法を採用するよう構成された例示的なシステムを示す。

以下の詳細な説明中、本明細書の一部を形成する添付図面に対する参照がなされる。添付図面中を通して、同様の参照符号は同様の部分を指し、そこでは実施され得る複数の実施形態が例示として示されている。複数の他の実施形態が利用されてよく、本開示の範囲を逸脱することなく、構造的または論理的変更がなされ得ることが理解されるであろう。従って、以下の詳細な説明は限定的意味に解釈されるべきではなく、複数の実施形態の範囲は、添付の特許請求の範囲およびそれらの均等技術によって画される。

様々な動作は、特許請求の範囲の主題の理解に最も有用な態様で、複数の別個のアクションまたは動作として順番に記載されてよい。しかしながら、当該記載の順序は、これらの動作が、必ず順序に依存することを示唆するものとして解釈されるべきではない。特に、これらの動作は、提示される順序で実行されなくてよい。記載される動作は、記載の実施形態と異なる順序で実行されてよい。複数の追加の実施形態において、様々な追加の動作が実行されてよく、および/または記載の複数の動作が、省略されてよい。

本開示の目的のために、「Aおよび/またはB」並びに「AまたはB」という文言は、(A)、(B)または(AおよびB)を意味する。本開示の目的において、「A、Bおよび/またはC」という文言は、(A)、(B)、(C)、(AおよびB)、(AおよびC)、(BおよびC)、または(A、BおよびC)を意味する。

詳細な説明は、「一実施形態において」または「複数の実施形態において」という文言を使用することがあるが、これらはそれぞれ、同一または異なる複数の実施形態のうちの1または複数を指してよい。さらに、「備える」、「含む」、「有する」等の用語は、本開示の複数の実施形態に関して使用されるように、類義語である。

本明細書において使用される、「モジュール」という用語は、1または複数のソフトウェア若しくはファームウェアプログラムを実行する、特定用途向け集積回路(ASIC)、電子回路、プロセッサ(共有、専用、またはグループ)および/またはメモリ(共有、専用、またはグループ)、組み合わせロジック回路、並びに/または記載された機能を提供する他の好適なハードウェアコンポーネントを指してよく、またはそれらの一部であってよく、またはそれらを含んでよい。本明細書で使用されるように、「コンピュータに実装される方法」は、1または複数のプロセッサ、1または複数のプロセッサを有するコンピュータシステム、スマートフォンのようなモバイルデバイス(1または複数のプロセッサを含んでよい)、タブレット、ラップトップコンピュータ、セットトップボックス、ゲーム機等によって実行される任意の方法を指してよい。

図1は、様々な実施形態に従うメモリシステム100を示す。いくつかの実施形態において、メモリシステム100は、ソリッドステートドライブ(SSD)を実装してよい。メモリシステム100は、メモリコントローラ102、不揮発性メモリ104、およびホストインタフェース106を含んでよい。

不揮発性メモリ104は、任意の適切な形態の不揮発性メモリを実装してよい。例えば、いくつかの実施形態において、不揮発性メモリ104は、NANDフラッシュメモリを含んでよい。他の実施形態において、メモリデバイス104は、相変化メモリ(PCM)、3次元クロスポイントメモリアレイ、抵抗変化メモリ、ナノワイヤメモリ、強誘電体トランジスタランダムアクセスメモリ(FeTRAM)、メモリスタ技術を組み込む磁気抵抗ランダムアクセスメモリ(MRAM)、スピントランスファートルク(STT)‐MRAM等のような別のタイプのメモリを含んでよい。いくつかの実施形態において、不揮発性メモリ104は、複数のメモリダイを含んでよい。

メモリコントローラ102は、不揮発性メモリ104へのデータの書き込みおよび/または不揮発性メモリ104からのデータの読み取りを制御してよい。ホストインタフェース106は、ホストデバイスが、メモリコントローラ102を介して、不揮発性メモリ104へデータを書き込むこと、および/または不揮発性メモリ104からデータを読み取ることを可能にすべく、ホストデバイス(例えば、プロセッサ、不図示)とのインタフェースを取ってよい。ホストインタフェース106は、シリアルアドバンストテクノロジアタッチメント(SATA)、ペリフェラルコンポーネントインターコネクトエクスプレス(PCIe)、シリアルアタッチドSCSI(SAS)、および/またはユニバーサルシリアルバス(USB)インタフェースのような1または複数の通信インタフェースプロトコルを使用して、ホストデバイスと通信してよい。

いくつかの実施形態において、メモリコントローラ102、不揮発性メモリ104、およびホストインタフェース106は、同一パッケージ内に含まれてよい。例えば、メモリコントローラ102、メモリデバイス104、およびホストインタフェース106が、同一のプリント回路基板に配置されてよい。

様々な実施形態において、メモリコントローラ102は、少なくとも図示の通り、互いに連結されたコントローラロジック108、転送バッファ110、および間接指定テーブル112を含んでよい。間接指定テーブル112は、不揮発性メモリ104内におけるデータの場所を示してよい。間接指定テーブル112は、複数のデータポインタを含んでよく、各ポインタは、データの識別子および識別されたデータが格納されている不揮発性メモリ104における場所を含む。

様々な実施形態において、不揮発性メモリ104に格納されたデータは、複数のページに編成されてよく、各ページはデータの複数のセクタを含む。1つのページは、コントローラロジック108が不揮発性メモリ104へ書き込み可能なデータの粒度に対応してよく、1つのセクタは不揮発性メモリ104内のデータの場所を示す間接指定テーブル112に使用されるデータの粒度に対応してよい。セクタおよび/またはページは、任意の適切なサイズであってよい。非限定的な実施形態において、1つのページは、4つのセクタを含んでよい。例えば、1つのページは、16キロバイト(KiB)および1つのセクタは4KiBであってよい。

様々な実施形態において、転送バッファ110は、スタティックランダムアクセスメモリ(SRAM)のような任意の適切なタイプのメモリを含んでよい。転送バッファは、データのセクタを転送バッファ110のそれぞれのスロットへ、後述されるガーベジコレクションプロセスの一部として格納してよい。

様々な実施形態において、不揮発性メモリ104のメモリリソースは、新しいデータをメモリリソースへ書き込む前に消去される必要がある。しかしながら、不揮発性メモリ104のメモリリソースは、複数のページを含む、不揮発性メモリ104のメモリリソースのブロック内においてのみ消去されるだけであってよい。

従って、不揮発性メモリ104は、無効なデータ(例えば、間接指定テーブル112が、もはや有効なデータポインタを含まないデータに対して)を含んでよい。例えば、更新されたデータが不揮発性メモリに書き込まれる場合、および/またはデータがもはや実行されていないホストデバイスのプロセスによって生成された一時的データであった場合、当該データは無効になってよい。いくつかの実施形態において、間接指定テーブル112は、有効なセクタに加え、不揮発性メモリ104内の無効なセクタの場所を示してよい。間接指定テーブル112は、追加的または代替的に、データを含まない(故に、新しいデータの格納に利用可能な)、不揮発性メモリのブロックを示す空きリストを含んでよい。

様々な実施形態において、コントローラロジック108は、無効なデータを消去し、不揮発性メモリ104のメモリリソースを解放すべく、ガーベジコレクションプロセスを実行してよい。ガーベジコレクションプロセスの一部として、コントローラロジック108は、不揮発性メモリ104に格納された複数のセクタを含むデータのブロックから、保持されるべき有効なセクタである、データの複数のセクタを識別してよい。例えば、当該複数の有効なセクタは、間接指定テーブル112の有効なデータポインタが参照する先のデータを含んでよい。いくつかの実施形態において、コントローラロジック108は、ブロックに格納された有効なセクタの数に基づいて、ガーベジコレクションのためのブロックを選択してよい。例えば、コントローラロジック108は、そこに格納された最小数の有効なセクタを持つブロックを選択してよい。

様々な実施形態において、コントローラロジック108は、不揮発性メモリからデータの複数の有効なセクタを読み取り、当該複数のセクタを転送バッファ110に格納してよい。コントローラロジック108は、当該複数のセクタのうちの個別のセクタの読み取りの完了時間に従い、個別のセクタをページに割り当ててよい。例えば、それらの各完了時間に従い、当該複数のセクタがページに連続的に割り当てられてよい。すなわち、1つのページが4つのセクタを含む一実施形態において、当該複数のセクタの間で、1番目、2番目、3番目、および4番目に読み取りが完了する当該複数のセクタが1番目のページが割り当てられてよく、5番目、6番目、7番目、および8番目に読み取りが完了する当該複数のセクタが2番目のページに割り当てられる等であってよい。

様々な実施形態において、コントローラロジック108は、複数のセクタからなる個別のページを不揮発性メモリ104に書き込んでよい。例えば、コントローラロジック108は、当該ページのすべてのセクタが読み取られ、および/または転送バッファ110に格納されたという判断に応答して、当該個別のページを不揮発性メモリに書き込んでよい。コントローラロジック108は、不揮発性メモリに書き込まれた複数のセクタの場所を示すべく、間接指定テーブル112を更新してよい。また、コントローラロジック108は、当該複数のページを不揮発性メモリ104に書き込んだ後、転送バッファ110から当該複数のページを消去してよく、それにより、転送バッファ110内の領域をさらに解放する。

従って、個別のセクタの読み取りの完了時間に従って個別のセクタをページに割り当てることで、不揮発性メモリからセクタを読み取る前にセクタをページに割り当てるのに比べ、転送バッファ110内のセクタの常駐時間(例えば、不揮発性メモリ104に再度書き込まれる前に、セクタが転送バッファ110に格納される時間)を低減してよい。常駐時間がより短くなることで今度は、特定のサイズの不揮発性メモリ104に対し、より小さな転送バッファ110が使用されることを可能にしてよい。

様々な実施形態において、コントローラロジック108は、有効なセクタの複数のページを不揮発性メモリ104へ書き込んだ後、不揮発性メモリ104のブロックからデータを消去してよく、それにより新しいデータを格納するために、ブロックのメモリリソースを解放する。

いくつかの実施形態において、不揮発性メモリ104に書き込まれる個別のページの複数のセクタは、転送バッファ110の複数の隣接するスロット内に格納されてよい。例えば、転送バッファ110の当該複数のスロットは、転送バッファ110内のスロットの物理的な場所に対応する関連付けられたインデックスを有してよい。転送バッファ110の一群のスロットが、ガーベジコレクションプロセスに割り当てられてよい。コントローラロジック108は、セクタの読み取りが完了すると、個別のセクタを転送バッファ110のそれぞれのスロットに割り当ててよい。例えば、セクタは、最も小さいインデックスが割り当てられた一群のスロットのうちの利用可能なスロットに割り当てられてよい。つまり、転送バッファ110の複数の隣接するスロット(例えば、シーケンシャルインデックスを持つスロット)に格納された複数のセクタからスロットのページが形成されてよい。

他の実施形態において、不揮発性メモリ104に書き込まれる個別のページの複数のセクタは、転送バッファ110の複数の隣接しないスロットに格納されてよい。例えば、コントローラロジック108は、セクタの読み取り処理を開始する際、データの個別のセクタを転送バッファ110のそれぞれのスロットに、割り当ててよい。コントローラロジック108は次に、当該個別のセクタでの読み取り処理の完了時間に従い、複数の個別のセクタを1つのページに割り当て、当該ページを不揮発性メモリ104に書き込んでよい。

図2は、様々な実施形態に従う、不揮発性メモリ(例えば、不揮発性メモリ104)のガーベジコレクションのための方法200を示す。いくつかの実施形態において、方法200は、不揮発性メモリに連結されたメモリコントローラ(例えば、メモリコントローラ102)によって実行されてよい。

ブロック202において、方法200は、不揮発性メモリからデータの複数のセクタを読み取ることを含んでよい。当該複数のセクタは、例えば、複数のセクタを含む、不揮発性メモリ内に格納されたデータのブロックに属する、保持されるべき複数の有効なセクタであってよい。

ブロック204において、方法200はさらに、読み取られた複数のセクタを転送バッファ(例えば、転送バッファ210)に格納することを含んでよい。

ブロック206において、方法200はさらに、複数のセクタのうちの個別のセクタの読み取りの完了時間に従い、個別の読み取られたセクタをページに割り当てることを含んでよい。当該ページは、複数のセクタを含んでよい。

ブロック208において、方法200はさらに、複数のセクタからなるページを不揮発性メモリに書き込むことを含んでよい。当該ページのすべてのセクタが読み取られ、および/または転送バッファ内に格納されたという判断に応答して、個別のページは、不揮発性メモリに書き込まれてよい。複数のセクタからなるページは、当該複数のセクタがブロック202において読み取られた場所以外の不揮発性メモリの異なる場所(例えば、異なるブロック)に書き込まれてよい。ブロック208において、複数のセクタからなるページが書き込まれた不揮発性メモリ内の場所を示すべく、間接指定テーブルが更新されてよい。

様々な実施形態において、ブロックからすべての有効なセクタ(例えば、複数の関連付けられたページ内)を不揮発性メモリに書き込んだ後、セクタが読み取られた不揮発性メモリのブロックは、消去されてよい。消去されたブロックは、その後、新しいデータの格納のために使用されてよい。

図3は、様々な実施形態に従う、本明細書に記載の装置および/または方法(例えば、メモリシステム100、方法200)を採用し得る例示的なコンピューティングデバイス300を示す。図示の通り、コンピューティングデバイス300は、1または複数のプロセッサ304(1つが示される)および少なくとも1つの通信チップ306のような多数のコンポーネントを含んでよい。様々な実施形態において、当該1または複数のプロセッサ304はそれぞれ、1または複数のプロセッサコアを含んでよい。様々な実施形態において、当該少なくとも1つの通信チップ306は、当該1または複数のプロセッサ304に物理的および電気的に連結されてよい。さらなる実装において、通信チップ306は、当該1または複数のプロセッサ304の一部であってよい。様々な実施形態において、コンピューティングデバイス300は、プリント回路基板(PCB)302を含んでよい。これらの実施形態について、当該1または複数のプロセッサ304および通信チップ306がそこに配置されてよい。代替的な複数の実施形態において、様々なコンポーネントは、PCB302を採用することなく連結されてよい。

その用途に応じて、コンピューティングデバイス300は、PCB302に物理的および電気的に連結されても、されなくてもよい複数の他のコンポーネントを含んでよい。これらの他のコンポーネントには、限定はされないが、メモリコントローラハブ305、揮発性メモリ(例えば、DRAM308)、リードオンリメモリ310(ROM)のような不揮発性メモリ、フラッシュメモリ312、およびストレージデバイス311(例えば、SSDまたはハードディスクドライブ(HDD))、I/Oコントローラ314、デジタル信号プロセッサ(不図示)、暗号プロセッサ(不図示)、グラフィックプロセッサ316、1または複数のアンテナ318、ディスプレイ(不図示)、タッチスクリーンディスプレイ320、タッチスクリーンコントローラ322、バッテリ324、オーディオコーデック(不図示)、ビデオコーデック(不図示)、全地球測位システム(GPS)デバイス328、コンパス330、加速度計(不図示)、ジャイロスコープ(不図示)、スピーカ332、カメラ334、および大容量ストレージデバイス(ハードディスクドライブ、ソリッドステートドライブ、コンパクトディスク(CD)、デジタル多用途ディスク(DVD)(不図示)のような)等を含む。様々な実施形態において、プロセッサ304は複数の他のコンポーネントと共に同一ダイ上に統合されて、システムオンチップ(SoC)を形成してよい。

様々な実施形態において、フラッシュメモリ312および/またはストレージデバイス311は、本明細書に記載のメモリシステム100を実装してよい。コンピューティングデバイス300は、フラッシュメモリ312に加え、またはその代わりにストレージデバイス311を含んでよい。ストレージデバイス311がSSDを実装する実施形態のようないくつかの実施形態において、ストレージデバイス311は、フラッシュメモリ312に加え、またはその代わりに本明細書に記載のメモリシステム100を実装してよい。

いくつかの実施形態において、1または複数のプロセッサ、フラッシュメモリ312、および/またはストレージデバイス311は、1または複数のプロセッサ304によるプログラミング命令の実行に応答して、コンピューティングデバイス300が、本明細書に記載の複数の方法(例えば、方法200)のうちのすべてまたは選択された複数の態様を実施可能にするよう構成されたプログラミング命令を格納する関連するファームウェア(不図示)を含んでよい。様々な実施形態において、これらの態様は、1または複数のプロセッサ304、フラッシュメモリ312、またはストレージデバイス311とは別個のハードウェアを使用して、追加的にまたは代替的に実装されてよい。

通信チップ306は、コンピューティングデバイス300との間のデータ転送のために、有線および/または無線通信を有効にしてよい。「無線」という用語およびその派生語は、非固体媒体を通る変調電磁放射を用いることによってデータ通信を行うことができる回路、デバイス、システム、方法、技術、通信チャネル等を記載するために使用されてよい。当該用語は、関連デバイスがいかなる有線をも含まないことを示唆するものではないが、いくつかの実施形態においては含まなくてよい。

通信チップ306は、3G、4G、5Gおよびこれら以降のものとして指定された任意の他の無線プロトコルだけでなく、限定はされないが、IEEE702.20、汎用パケット無線サービス(GPRS)、Evolution Data Optimized(Ev−DO)、Evolved High Speed Packet Access(HSPA+)、Evolved High Speed Downlink Packet Access(HSDPA+)、Evolved High Speed Uplink Packet Access(HSUPA+)、グローバルシステムフォーモバイルコミュニケーションズ(GSM(登録商標))、GSM(登録商標)進化型高速データレート(EDGE)、符号分割多重アクセス(CDMA)、時分割多重アクセス(TDMA)、Digital Enhanced Cordless Telecommunications(DECT)、Bluetooth(登録商標)、及びそれらの派生物を含む多数の無線規格またはプロトコルのいずれかを実装してよい。コンピューティングデバイス300は、複数の通信チップ306を含んでよい。

例えば、第1の通信チップ306は、Wi−Fi(登録商標)およびBluetooth(登録商標)のような短距離無線通信に専用化されてよく、第2の通信チップ306は、GPS、EDGE、GPRS、CDMA、WiMAX(登録商標)、LTE、Ev−DO等のような長距離無線通信に専用化されてよい。

様々な実装において、コンピューティングデバイス300は、ラップトップ、ネットブック、ノートブック、ウルトラブック、スマートフォン、コンピューティングタブレット、パーソナルデジタルアシスタント(PDA)、ウルトラモバイルPC、携帯電話、デスクトップコンピュータ、サーバ、プリンタ、スキャナ、モニタ、セットトップボックス、エンターテインメント制御ユニット(例えば、ゲーム機または自動車用エンターテインメントユニット)、デジタルカメラ、電気機器、携帯音楽プレーヤ、またはデジタルビデオレコーダであってよい。さらなる実装において、コンピューティングデバイス300は、データを処理する任意の他の電子デバイスであってよい。いくつかの非限定的な例が以下に示される。

例1は、不揮発性メモリからデータの複数のセクタを読み取る段階と、上記複数のセクタのうちの個別のセクタの上記読み取り段階の完了時間に従い、複数の上記個別のセクタを複数のページに割り当てる段階であって、個別のページが複数の上記セクタを含む段階と、上記複数のセクタを含む上記個別のページを上記不揮発性メモリに書き込む段階と、を備える、不揮発性メモリを管理するための方法である。

例2は、上記不揮発性メモリ内の上記複数のセクタの場所を示すべく、間接指定テーブルを更新する段階をさらに備える、例1に係る方法である。

例3は、読み取られた上記複数のセクタを転送バッファに格納する段階をさらに備え、複数のセクタからなる複数のページが、上記転送バッファから上記不揮発性メモリに書き込まれる、例1に係る方法である。

例4は、複数のそれぞれの完了時間に従い、複数の上記個別のページの複数のセクタが、上記転送バッファの複数の隣接するスロットに格納される、例3の方法である。例5は、複数の上記個別のページの複数のセクタが、上記転送バッファの複数の隣接しないスロットに格納される、例3の方法である。

例6は、上記転送バッファは、スタティックランダムアクセスメモリ(SRAM)である、例3の方法である。

例7は、複数のそれぞれの完了時間に従い、読み取られた上記複数のセクタが、複数のページに連続的に割り当てられる、例1から6のいずれかに係る方法である。

例8は、上記読み取る段階、割り当てる段階、および書き込む段階は、上記不揮発性メモリのためのガーベジコレクションプロセスの一部として実行される、例1から6のいずれかに係る方法である。例9は、上記不揮発性メモリはフラッシュメモリである、例1から6のいずれかに係る方法である。

例10は、不揮発性メモリと、転送バッファと、上記不揮発性メモリおよび上記転送バッファに連結されたコントローラロジックと、を備える、メモリを操作するための装置である。上記コントローラロジックは、上記不揮発性メモリからデータの複数のセクタを読み取り、読み取られた上記複数のセクタを上記転送バッファに格納し、上記複数のセクタのうちの個別のセクタの上記読み取りの完了時間に従い、複数の上記個別のセクタを複数のページに割り当て、個別のページは複数の上記セクタを含んでおり、上記ページのすべてのセクタが読み取られたという判断に応答して、上記複数のセクタを含む上記個別のページを上記不揮発性メモリに書き込む。

例11は、上記コントローラロジックに連結された、上記不揮発性メモリ内の上記複数のセクタの場所を示す間接指定テーブルをさらに備え、上記コントローラロジックは、上記不揮発性メモリに書き込まれた上記複数のセクタの上記場所を示すべく、上記間接指定テーブルをさらに更新する、例10の装置である。

例12は、複数の上記個別のページの複数のセクタが、上記転送バッファの複数の隣接するスロットに格納される、例10の装置である。

例13は、複数の上記個別のページの複数のセクタが、上記転送バッファの複数の隣接しないスロットに格納される、例10の装置である。例14は、複数のそれぞれの完了時間に従い、読み取られた上記複数のセクタが、複数のページに連続的に割り当てられる、例10の装置である。

例15は、上記転送バッファは、スタティックランダムアクセスメモリ(SRAM)である、例10の装置である。例16は、上記不揮発性メモリは、フラッシュメモリである、例10の装置である。

例17は、上記コントローラロジックは、上記読み取り、格納、割り当て、および書き込む操作を上記不揮発性メモリのためのガーベジコレクションプロセスの一部として実行する、例10から16のいずれかに係る装置である。

例18は、プロセッサと、アンテナと、上記プロセッサおよび上記アンテナに連結された不揮発性メモリと、転送バッファと、上記不揮発性メモリおよび上記転送バッファに連結されたコントローラロジックを備える、メモリを操作するためのシステムである。上記コントローラロジックは、ガーベジコレクションプロセスの一部として、上記不揮発性メモリに格納された複数のセクタを含むデータのブロックから、保持されるべき複数野有効なセクタである、データの複数のセクタを識別し、上記不揮発性メモリから上記複数の有効なセクタを読み取り、読み取られた上記複数のセクタを上記転送バッファに格納し、上記複数のセクタのうちの個別のセクタの上記読み取りの完了時間に従い、読み取られた上記複数のセクタを複数のページに割り当て、個別のページが複数の上記セクタを含んでおり、上記ページのすべてのセクタが読み取られたという判断に応答して、上記複数のセクタを含む上記個別のページを上記不揮発性メモリに書き込む。

例19は、上記コントローラロジックは、上記複数の有効なセクタを読み取った後、上記データのブロックをさらに消去する、例18のシステムである。

例20は、上記コントローラロジックは、上記複数のページを上記不揮発性メモリに書き込んだ後、上記複数のページを上記転送バッファからさらに消去する、例18のシステムである。

例21は、上記コントローラロジックに連結された、上記不揮発性メモリ内の上記複数のセクタの場所を示す間接指定テーブルをさらに備え、上記コントローラロジックは、上記不揮発性メモリに書き込まれた上記複数のセクタの上記場所を示すべく、上記間接指定テーブルをさらに更新する、例18のシステムである。

例22は、上記個別のセクタの上記読み取りの完了時間に従い、複数の上記個別のページの複数のセクタが、上記転送バッファの複数の隣接するスロットに格納される、例18のシステムである。

例23は、複数の上記個別のページの複数のセクタが、上記転送バッファの複数の隣接しないスロットに格納される、例18のシステムである。

例24は、複数のそれぞれの完了時間に従い、読み取られた上記複数のセクタが、複数のページに連続的に割り当てられる、例18から23のいずれかに係るシステムである。

複数の特定の実施形態が、本明細書において、説明目的のために例示かつ説明されたが、本願は、本明細書において説明された実施形態のあらゆる適応または変形に及ぶことが意図されている。従って、本明細書に記載された複数の実施形態は特許請求の範囲によってのみ限定されることが、明白に意図されている。

本開示が「1つの(a)」または「第1の(a first)」要素またはそれらの均等物について記載する場合、そのような開示は、1または複数のそのような要素を含むが、2または2より多くのそのような要素を必要するものでも除外するものでもない。さらに、識別された要素に対する序数表示(例えば、第1、第2または第3)は、要素間を区別するために使用されるものであり、そのような要素の必要なまたは限定的な数を示すものでも示唆するものでもなく、これらは、具体的に別途記載されない限り、そのような要素の特定の位置または順序を示すものでもない。

Claims (24)

  1. 不揮発性メモリからデータの複数のセクタを読み取る段階と、
    前記複数のセクタのうちの個別のセクタの前記読み取り段階の完了時間に従い、複数の前記個別のセクタを複数のページに割り当てる段階であって、個別のページが複数の前記セクタを含む段階と、
    前記複数のセクタを含む前記個別のページを前記不揮発性メモリに書き込む段階と、を備える、不揮発性メモリを管理するための方法。
  2. 前記不揮発性メモリ内の前記複数のセクタの場所を示すべく、間接指定テーブルを更新する段階をさらに備える、請求項1に記載の方法。
  3. 読み取られた前記複数のセクタを転送バッファに格納する段階をさらに備え、複数のセクタからなる複数の前記ページが、前記転送バッファから前記不揮発性メモリに書き込まれる、請求項1に記載の方法。
  4. 複数のそれぞれの完了時間に従い、複数の前記個別のページの複数の前記セクタが、前記転送バッファの複数の隣接するスロットに格納される、請求項3に記載の方法。
  5. 複数の前記個別のページの複数の前記セクタが、前記転送バッファの複数の隣接しないスロットに格納される、請求項3に記載の方法。
  6. 前記転送バッファは、スタティックランダムアクセスメモリ(SRAM)である、請求項3に記載の方法。
  7. 複数のそれぞれの完了時間に従い、読み取られた前記複数のセクタが、複数のページに連続的に割り当てられる、請求項1から6のいずれか一項に記載の方法。
  8. 前記読み取る段階、割り当てる段階、および書き込む段階は、前記不揮発性メモリのためのガーベジコレクションプロセスの一部として実行される、請求項1から6のいずれか一項に記載の方法。
  9. 前記不揮発性メモリは、フラッシュメモリである、請求項1から6のいずれか一項に記載の方法。
  10. 不揮発性メモリと、
    転送バッファと、
    前記不揮発性メモリおよび前記転送バッファに連結されたコントローラロジックと、を備え、
    前記コントローラロジックは、
    前記不揮発性メモリからデータの複数のセクタを読み取り、
    読み取られた前記複数のセクタを前記転送バッファに格納し、
    前記複数のセクタのうちの個別のセクタの前記読み取りの完了時間に従い、複数の前記個別のセクタを複数のページに割り当て、個別のページは複数の前記セクタを含んでおり、
    前記ページのすべてのセクタが読み取られたという判断に応答して、前記複数のセクタを含む前記個別のページを前記不揮発性メモリに書き込む、メモリを操作するための装置。
  11. 前記コントローラロジックに連結された、前記不揮発性メモリ内の前記複数のセクタの場所を示す間接指定テーブルをさらに備え、
    前記コントローラロジックは、前記不揮発性メモリに書き込まれた前記複数のセクタの前記場所を示すべく、前記間接指定テーブルをさらに更新する、請求項10に記載の装置。
  12. 複数の前記個別のページの複数の前記セクタが、前記転送バッファの複数の隣接するスロットに格納される、請求項10に記載の装置。
  13. 複数の前記個別のページの複数の前記セクタが、前記転送バッファの複数の隣接しないスロットに格納される、請求項10に記載の装置。
  14. 複数のそれぞれの完了時間に従い、読み取られた前記複数のセクタが、複数のページに連続的に割り当てられる、請求項10に記載の装置。
  15. 前記転送バッファは、スタティックランダムアクセスメモリ(SRAM)である、請求項10に記載の装置。
  16. 前記不揮発性メモリは、フラッシュメモリである、請求項10に記載の装置。
  17. 前記コントローラロジックは、前記読み取り、格納、割り当て、および書き込む操作を前記不揮発性メモリのためのガーベジコレクションプロセスの一部として実行する、請求項10から16のいずれか一項に記載の装置。
  18. プロセッサと、
    前記プロセッサに連結された不揮発性メモリと、
    転送バッファと、
    前記不揮発性メモリおよび前記転送バッファに連結されたコントローラロジックと、を備え、
    前記コントローラロジックは、ガーベジコレクションプロセスの一部として、
    前記不揮発性メモリに格納された複数のセクタを含むデータのブロックから、保持されるべき複数の有効なセクタである、データの複数のセクタを識別し、
    前記不揮発性メモリから前記複数の有効なセクタを読み取り、
    読み取られた前記複数のセクタを前記転送バッファに格納し、
    前記複数のセクタのうちの個別のセクタの前記読み取りの完了時間に従い、読み取られた前記複数のセクタを複数のページに割り当て、個別のページが複数の前記セクタを含んでおり、
    前記ページのすべてのセクタが読み取られたという判断に応答して、前記複数のセクタを含む前記個別のページを前記不揮発性メモリに書き込む、メモリを操作するためのシステム。
  19. 前記コントローラロジックは、前記複数の有効なセクタを読み取った後、前記データのブロックをさらに消去する、請求項18に記載のシステム。
  20. 前記コントローラロジックは、前記複数のページを前記不揮発性メモリに書き込んだ後、前記複数のページを前記転送バッファからさらに消去する、請求項18に記載のシステム。
  21. 前記コントローラロジックに連結された、前記不揮発性メモリ内の前記複数のセクタの場所を示す間接指定テーブルをさらに備え、
    前記コントローラロジックは、前記不揮発性メモリに書き込まれた前記複数のセクタの前記場所を示すべく、前記間接指定テーブルをさらに更新する、請求項18に記載のシステム。
  22. 前記個別のセクタの前記読み取りの完了時間に従い、複数の前記個別のページの複数のセクタが、前記転送バッファの複数の隣接するスロットに格納される、請求項18に記載のシステム。
  23. 複数の前記個別のページの複数の前記セクタが、前記転送バッファの複数の隣接しないスロットに格納される、請求項18に記載のシステム。
  24. 複数のそれぞれの完了時間に従い、読み取られた前記複数のセクタが、複数のページに連続的に割り当てられる、請求項18から23のいずれか一項に記載のシステム。
JP2016528029A 2013-12-26 2014-11-21 不揮発性メモリのための転送バッファの管理 Pending JP2017502376A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
US14/140,919 US20150186257A1 (en) 2013-12-26 2013-12-26 Managing a transfer buffer for a non-volatile memory
US14/140,919 2013-12-26
PCT/US2014/066960 WO2015099922A1 (en) 2013-12-26 2014-11-21 Managing a transfer buffer for a non-volatile memory

Publications (1)

Publication Number Publication Date
JP2017502376A true JP2017502376A (ja) 2017-01-19

Family

ID=53479500

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016528029A Pending JP2017502376A (ja) 2013-12-26 2014-11-21 不揮発性メモリのための転送バッファの管理

Country Status (5)

Country Link
US (1) US20150186257A1 (ja)
JP (1) JP2017502376A (ja)
KR (1) KR20160075703A (ja)
CN (1) CN105765540A (ja)
WO (1) WO2015099922A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160016421A (ko) * 2014-08-05 2016-02-15 삼성전자주식회사 비휘발성 메모리 기반의 스토리지 장치의 최적화 방법
US9870169B2 (en) 2015-09-04 2018-01-16 Intel Corporation Interleaved all-level programming of non-volatile memory
US10126958B2 (en) 2015-10-05 2018-11-13 Intel Corporation Write suppression in non-volatile memory

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6069827A (en) * 1995-09-27 2000-05-30 Memory Corporation Plc Memory system
US20050141312A1 (en) * 2003-12-30 2005-06-30 Sinclair Alan W. Non-volatile memory and method with non-sequential update block management
US20070159885A1 (en) * 2004-12-30 2007-07-12 Gorobets Sergey A On-Chip Data Grouping and Alignment
US20110283166A1 (en) * 2010-05-14 2011-11-17 Samsung Electronics Co., Ltd Storage device having a non-volatile memory device and copy-back method thereof
US20130198438A1 (en) * 2011-07-29 2013-08-01 Yoko Masuo Data storage apparatus and method for compaction processing
JP2013196646A (ja) * 2012-03-22 2013-09-30 Toshiba Corp メモリ制御装置、データ記憶装置及びメモリ制御方法

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5088036A (en) * 1989-01-17 1992-02-11 Digital Equipment Corporation Real time, concurrent garbage collection system and method
US6098124A (en) * 1998-04-09 2000-08-01 National Instruments Corporation Arbiter for transferring largest accumulated data block output from data buffers over serial bus
US8108590B2 (en) * 2000-01-06 2012-01-31 Super Talent Electronics, Inc. Multi-operation write aggregator using a page buffer and a scratch flash block in each of multiple channels of a large array of flash memory to reduce block wear
US7412560B2 (en) * 2004-12-16 2008-08-12 Sandisk Corporation Non-volatile memory and method with multi-stream updating
US7984084B2 (en) * 2005-08-03 2011-07-19 SanDisk Technologies, Inc. Non-volatile memory with scheduled reclaim operations
US20080005520A1 (en) * 2006-06-09 2008-01-03 Siegwart David K Locality with parallel hierarchical copying garbage collection
US7444461B2 (en) * 2006-08-04 2008-10-28 Sandisk Corporation Methods for phased garbage collection
US8271700B1 (en) * 2007-11-23 2012-09-18 Pmc-Sierra Us, Inc. Logical address direct memory access with multiple concurrent physical ports and internal switching
US7934052B2 (en) * 2007-12-27 2011-04-26 Pliant Technology, Inc. System and method for performing host initiated mass storage commands using a hierarchy of data structures
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
KR101581679B1 (ko) * 2009-03-18 2015-12-31 삼성전자주식회사 저장 장치 및 저장 장치의 버퍼 메모리 관리 방법
KR20100115583A (ko) * 2009-04-20 2010-10-28 삼성전자주식회사 데이터 저장 시스템
US8688894B2 (en) * 2009-09-03 2014-04-01 Pioneer Chip Technology Ltd. Page based management of flash storage
JP5518197B2 (ja) * 2009-09-09 2014-06-11 フュージョン−アイオー・インコーポレーテッド ストレージを割り当てるための装置、システム、および方法
CN102819468B (zh) * 2011-11-30 2014-09-24 凯迈(洛阳)环测有限公司 一种基于flash的小型数据备份及查询方法
KR20140040998A (ko) * 2012-09-27 2014-04-04 삼성전자주식회사 로그기반 데이터 저장 시스템의 관리방법
US9189389B2 (en) * 2013-03-11 2015-11-17 Kabushiki Kaisha Toshiba Memory controller and memory system

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6069827A (en) * 1995-09-27 2000-05-30 Memory Corporation Plc Memory system
JP2007317224A (ja) * 1995-09-27 2007-12-06 Lexar Media Inc メモリシステム
US20050141312A1 (en) * 2003-12-30 2005-06-30 Sinclair Alan W. Non-volatile memory and method with non-sequential update block management
US20070159885A1 (en) * 2004-12-30 2007-07-12 Gorobets Sergey A On-Chip Data Grouping and Alignment
JP2008527586A (ja) * 2004-12-30 2008-07-24 サンディスク コーポレイション オンチップデータのグループ化および整列
US20110283166A1 (en) * 2010-05-14 2011-11-17 Samsung Electronics Co., Ltd Storage device having a non-volatile memory device and copy-back method thereof
US20130198438A1 (en) * 2011-07-29 2013-08-01 Yoko Masuo Data storage apparatus and method for compaction processing
JP2013196646A (ja) * 2012-03-22 2013-09-30 Toshiba Corp メモリ制御装置、データ記憶装置及びメモリ制御方法

Also Published As

Publication number Publication date
CN105765540A (zh) 2016-07-13
US20150186257A1 (en) 2015-07-02
WO2015099922A1 (en) 2015-07-02
KR20160075703A (ko) 2016-06-29

Similar Documents

Publication Publication Date Title
US8700881B2 (en) Controller, data storage device and data storage system having the controller, and data processing method
US9032138B2 (en) Storage device based on a flash memory and user device including the same
KR101486987B1 (ko) 불휘발성 메모리를 포함하는 반도체 메모리 장치 및 불휘발성 메모리를 위한 커맨드 스케줄링 방법
US9158671B2 (en) Nonvolatile memory system with migration manager
US9928167B2 (en) Information processing system and nonvolatile storage unit
US20120124317A1 (en) Concurrent read and write memory operations in a serial interface memory
KR101348048B1 (ko) 개선된 플래시 메모리 호환성을 갖는 전자 장치 및 전자 장치의 플래시 메모리 호환성을 개선하는 방법
US9852061B2 (en) Memory device and operating method of memory device
US20130151759A1 (en) Storage device and operating method eliminating duplicate data storage
US20120005451A1 (en) Data storage device and bad block managing method thereof
US9898402B2 (en) Unaligned data coalescing
US8990480B2 (en) Semiconductor memory device and computer program product
JP5788369B2 (ja) メモリシステム、コンピュータシステム、およびメモリ管理方法
TW201145022A (en) Virtualization of storage devices
KR20160049200A (ko) 데이터 저장 장치의 작동 방법, 이를 포함하는 모바일 컴퓨팅 장치, 및 이의 작동 방법
US20100125694A1 (en) Memory device and management method of memory device
JP6568387B2 (ja) ストレージコントローラ及びストレージ装置
KR101395778B1 (ko) 메모리 카드 및 그것을 포함하는 메모리 시스템 그리고그것의 동작 방법
US9460006B2 (en) Nonvolatile memory system, system including the same, and method of adaptively adjusting user storage region in the same
US20130219146A1 (en) Method, device and system for a configurable address space for non-volatile memory
US9760281B2 (en) Sequential write stream management
US20160004438A1 (en) Storage device including nonvolatile memory and memory controller, and operating method of storage device
US20140115239A1 (en) Method of managing data in nonvolatile memory device
US9582416B2 (en) Data erasing method, memory control circuit unit and memory storage apparatus
US20120203993A1 (en) Memory system with tiered queuing and method of operation thereof

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170406

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170509

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170703

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20180109