(57)【要約】  複数の実施形態は、不揮発性メモリに関連付けられた転送バッファを管理するための装置、方法、およびシステムを含む。一実施形態において、コントローラロジックが、不揮発性メモリおよび転送バッファに連結されてよい。コントローラロジックは、不揮発性メモリからデータの複数のセクタを読み取り、読み取られたセクタを転送バッファに格納してよい。コントローラロジックは、複数のセクタのうちの個別のセクタの読み取りの完了時間に従い、複数の個別のセクタを複数のページにさらに割り当て、個別のページが複数のセクタを含んでいる。コントローラロジックは、ページのすべてのセクタが読み取られたという判断に応答して、複数のセクタからなるページを不揮発性メモリにさらに書き込んでよい。
2017502376.tif 000002
【特許請求の範囲】
【請求項１】
不揮発性メモリからデータの複数のセクタを読み取る段階と、
前記複数のセクタのうちの個別のセクタの前記読み取り段階の完了時間に従い、複数の前記個別のセクタを複数のページに割り当てる段階であって、個別のページが複数の前記セクタを含む段階と、
前記複数のセクタを含む前記個別のページを前記不揮発性メモリに書き込む段階と、を備える、不揮発性メモリを管理するための方法。
【請求項２】
前記不揮発性メモリ内の前記複数のセクタの場所を示すべく、間接指定テーブルを更新する段階をさらに備える、請求項１に記載の方法。
【請求項３】
読み取られた前記複数のセクタを転送バッファに格納する段階をさらに備え、複数のセクタからなる複数の前記ページが、前記転送バッファから前記不揮発性メモリに書き込まれる、請求項１に記載の方法。
【請求項４】
複数のそれぞれの完了時間に従い、複数の前記個別のページの複数の前記セクタが、前記転送バッファの複数の隣接するスロットに格納される、請求項３に記載の方法。
【請求項５】
複数の前記個別のページの複数の前記セクタが、前記転送バッファの複数の隣接しないスロットに格納される、請求項３に記載の方法。
【請求項６】
前記転送バッファは、スタティックランダムアクセスメモリ（ＳＲＡＭ）である、請求項３に記載の方法。
【請求項７】
複数のそれぞれの完了時間に従い、読み取られた前記複数のセクタが、複数のページに連続的に割り当てられる、請求項１から６のいずれか一項に記載の方法。
【請求項８】
前記読み取る段階、割り当てる段階、および書き込む段階は、前記不揮発性メモリのためのガーベジコレクションプロセスの一部として実行される、請求項１から６のいずれか一項に記載の方法。
【請求項９】
前記不揮発性メモリは、フラッシュメモリである、請求項１から６のいずれか一項に記載の方法。
【請求項１０】
不揮発性メモリと、
転送バッファと、
前記不揮発性メモリおよび前記転送バッファに連結されたコントローラロジックと、を備え、
前記コントローラロジックは、
前記不揮発性メモリからデータの複数のセクタを読み取り、
読み取られた前記複数のセクタを前記転送バッファに格納し、
前記複数のセクタのうちの個別のセクタの前記読み取りの完了時間に従い、複数の前記個別のセクタを複数のページに割り当て、個別のページは複数の前記セクタを含んでおり、
前記ページのすべてのセクタが読み取られたという判断に応答して、前記複数のセクタを含む前記個別のページを前記不揮発性メモリに書き込む、メモリを操作するための装置。
【請求項１１】
前記コントローラロジックに連結された、前記不揮発性メモリ内の前記複数のセクタの場所を示す間接指定テーブルをさらに備え、
前記コントローラロジックは、前記不揮発性メモリに書き込まれた前記複数のセクタの前記場所を示すべく、前記間接指定テーブルをさらに更新する、請求項１０に記載の装置。
【請求項１２】
複数の前記個別のページの複数の前記セクタが、前記転送バッファの複数の隣接するスロットに格納される、請求項１０に記載の装置。
【請求項１３】
複数の前記個別のページの複数の前記セクタが、前記転送バッファの複数の隣接しないスロットに格納される、請求項１０に記載の装置。
【請求項１４】
複数のそれぞれの完了時間に従い、読み取られた前記複数のセクタが、複数のページに連続的に割り当てられる、請求項１０に記載の装置。
【請求項１５】
前記転送バッファは、スタティックランダムアクセスメモリ（ＳＲＡＭ）である、請求項１０に記載の装置。
【請求項１６】
前記不揮発性メモリは、フラッシュメモリである、請求項１０に記載の装置。
【請求項１７】
前記コントローラロジックは、前記読み取り、格納、割り当て、および書き込む操作を前記不揮発性メモリのためのガーベジコレクションプロセスの一部として実行する、請求項１０から１６のいずれか一項に記載の装置。
【請求項１８】
プロセッサと、
前記プロセッサに連結された不揮発性メモリと、
転送バッファと、
前記不揮発性メモリおよび前記転送バッファに連結されたコントローラロジックと、を備え、
前記コントローラロジックは、ガーベジコレクションプロセスの一部として、
前記不揮発性メモリに格納された複数のセクタを含むデータのブロックから、保持されるべき複数の有効なセクタである、データの複数のセクタを識別し、
前記不揮発性メモリから前記複数の有効なセクタを読み取り、
読み取られた前記複数のセクタを前記転送バッファに格納し、
前記複数のセクタのうちの個別のセクタの前記読み取りの完了時間に従い、読み取られた前記複数のセクタを複数のページに割り当て、個別のページが複数の前記セクタを含んでおり、
前記ページのすべてのセクタが読み取られたという判断に応答して、前記複数のセクタを含む前記個別のページを前記不揮発性メモリに書き込む、メモリを操作するためのシステム。
【請求項１９】
前記コントローラロジックは、前記複数の有効なセクタを読み取った後、前記データのブロックをさらに消去する、請求項１８に記載のシステム。
【請求項２０】
前記コントローラロジックは、前記複数のページを前記不揮発性メモリに書き込んだ後、前記複数のページを前記転送バッファからさらに消去する、請求項１８に記載のシステム。
【請求項２１】
前記コントローラロジックに連結された、前記不揮発性メモリ内の前記複数のセクタの場所を示す間接指定テーブルをさらに備え、
前記コントローラロジックは、前記不揮発性メモリに書き込まれた前記複数のセクタの前記場所を示すべく、前記間接指定テーブルをさらに更新する、請求項１８に記載のシステム。
【請求項２２】
前記個別のセクタの前記読み取りの完了時間に従い、複数の前記個別のページの複数のセクタが、前記転送バッファの複数の隣接するスロットに格納される、請求項１８に記載のシステム。
【請求項２３】
複数の前記個別のページの複数の前記セクタが、前記転送バッファの複数の隣接しないスロットに格納される、請求項１８に記載のシステム。
【請求項２４】
複数のそれぞれの完了時間に従い、読み取られた前記複数のセクタが、複数のページに連続的に割り当てられる、請求項１８から２３のいずれか一項に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願への相互参照
本願は、２０１３年１２月２６日に出願された、発明の名称「不揮発性メモリのための転送バッファの管理」の米国出願第１４／１４０，９１９号の優先権を主張し、参照により本明細書にその全体が組み込まれる。本発明の複数の実施形態は、概してメモリの技術分野に関する。特定の複数の実施形態は、不揮発性メモリに関連付けられた転送バッファの管理に関する。
【背景技術】
【０００２】
本明細書に提供される背景技術の記載は、概して本開示の文脈を提示する目的のものである。この背景技術の項で説明される程度において、現在名を連ねている発明者らの研究は、及び、出願時における従来技術として認定されないであろう説明の複数の態様は、本開示に対する従来技術として明示的にも暗示的にも認められるものではない。本明細書において別途記載されない限り、この項において説明されるアプローチは、本開示の特許請求の範囲に対する従来技術ではなく、この項に含まれることによって従来技術として認められるものでもない。
【０００３】
多くのソリッドステートドライブ（ＳＳＤ）は、ＮＡＮＤフラッシュメモリのような不揮発性メモリを採用しており、そこではメモリリソースのブロックへの新しいデータの書き込み前に、当該ブロックが消去される必要がある。従って、不揮発性メモリをデフラグし、新しいデータの格納のために、メモリリソースのブロックを解放するために、定期的にガーベジコレクションが実行される必要がある。ガーベジコレクション中、不揮発性メモリのメモリリソースのブロック内に格納された、まだ有効なデータであるデータは、複数のページにグループ化され、当該ページはメモリから読み取られ、転送バッファ内に格納され、その後にメモリに再度書き込まれる。その後、当該メモリリソースのブロックは、消去される。しかしながら、当該複数のページのいくつかのデータに対する読み取り操作は、遅延させる可能性がある。複数の実施形態は、添付図面と共に、以下の詳細な説明によって、容易に理解されるであろう。本説明を容易にするために、同様の参照番号は、同様の構成要素を示す。複数の実施形態は、添付図面の図における例示として示されており、限定として示されるものではない。
【図面の簡単な説明】
【０００４】
【図１】様々な実施形態に従う、メモリコントローラおよび不揮発性メモリを含む例示的なメモリシステムを示す。
【図２】様々な実施形態に従う、不揮発性メモリにガーベジコレクションを実行するための例示的な方法を示す。
【図３】様々な実施形態に従う、本明細書に記載される装置および方法を採用するよう構成された例示的なシステムを示す。
【発明を実施するための形態】
【０００５】
以下の詳細な説明中、本明細書の一部を形成する添付図面に対する参照がなされる。添付図面中を通して、同様の参照符号は同様の部分を指し、そこでは実施され得る複数の実施形態が例示として示されている。複数の他の実施形態が利用されてよく、本開示の範囲を逸脱することなく、構造的または論理的変更がなされ得ることが理解されるであろう。従って、以下の詳細な説明は限定的意味に解釈されるべきではなく、複数の実施形態の範囲は、添付の特許請求の範囲およびそれらの均等技術によって画される。
【０００６】
様々な動作は、特許請求の範囲の主題の理解に最も有用な態様で、複数の別個のアクションまたは動作として順番に記載されてよい。しかしながら、当該記載の順序は、これらの動作が、必ず順序に依存することを示唆するものとして解釈されるべきではない。特に、これらの動作は、提示される順序で実行されなくてよい。記載される動作は、記載の実施形態と異なる順序で実行されてよい。複数の追加の実施形態において、様々な追加の動作が実行されてよく、および／または記載の複数の動作が、省略されてよい。
【０００７】
本開示の目的のために、「Ａおよび／またはＢ」並びに「ＡまたはＢ」という文言は、（Ａ）、（Ｂ）または（ＡおよびＢ）を意味する。本開示の目的において、「Ａ、Ｂおよび／またはＣ」という文言は、（Ａ）、（Ｂ）、（Ｃ）、（ＡおよびＢ）、（ＡおよびＣ）、（ＢおよびＣ）、または（Ａ、ＢおよびＣ）を意味する。
【０００８】
詳細な説明は、「一実施形態において」または「複数の実施形態において」という文言を使用することがあるが、これらはそれぞれ、同一または異なる複数の実施形態のうちの１または複数を指してよい。さらに、「備える」、「含む」、「有する」等の用語は、本開示の複数の実施形態に関して使用されるように、類義語である。
【０００９】
本明細書において使用される、「モジュール」という用語は、１または複数のソフトウェア若しくはファームウェアプログラムを実行する、特定用途向け集積回路（ＡＳＩＣ）、電子回路、プロセッサ（共有、専用、またはグループ）および／またはメモリ（共有、専用、またはグループ）、組み合わせロジック回路、並びに／または記載された機能を提供する他の好適なハードウェアコンポーネントを指してよく、またはそれらの一部であってよく、またはそれらを含んでよい。本明細書で使用されるように、「コンピュータに実装される方法」は、１または複数のプロセッサ、１または複数のプロセッサを有するコンピュータシステム、スマートフォンのようなモバイルデバイス（１または複数のプロセッサを含んでよい）、タブレット、ラップトップコンピュータ、セットトップボックス、ゲーム機等によって実行される任意の方法を指してよい。
【００１０】
図１は、様々な実施形態に従うメモリシステム１００を示す。いくつかの実施形態において、メモリシステム１００は、ソリッドステートドライブ（ＳＳＤ）を実装してよい。メモリシステム１００は、メモリコントローラ１０２、不揮発性メモリ１０４、およびホストインタフェース１０６を含んでよい。
【００１１】
不揮発性メモリ１０４は、任意の適切な形態の不揮発性メモリを実装してよい。例えば、いくつかの実施形態において、不揮発性メモリ１０４は、ＮＡＮＤフラッシュメモリを含んでよい。他の実施形態において、メモリデバイス１０４は、相変化メモリ（ＰＣＭ）、３次元クロスポイントメモリアレイ、抵抗変化メモリ、ナノワイヤメモリ、強誘電体トランジスタランダムアクセスメモリ（ＦｅＴＲＡＭ）、メモリスタ技術を組み込む磁気抵抗ランダムアクセスメモリ（ＭＲＡＭ）、スピントランスファートルク（ＳＴＴ）‐ＭＲＡＭ等のような別のタイプのメモリを含んでよい。いくつかの実施形態において、不揮発性メモリ１０４は、複数のメモリダイを含んでよい。
【００１２】
メモリコントローラ１０２は、不揮発性メモリ１０４へのデータの書き込みおよび／または不揮発性メモリ１０４からのデータの読み取りを制御してよい。ホストインタフェース１０６は、ホストデバイスが、メモリコントローラ１０２を介して、不揮発性メモリ１０４へデータを書き込むこと、および／または不揮発性メモリ１０４からデータを読み取ることを可能にすべく、ホストデバイス（例えば、プロセッサ、不図示）とのインタフェースを取ってよい。ホストインタフェース１０６は、シリアルアドバンストテクノロジアタッチメント（ＳＡＴＡ）、ペリフェラルコンポーネントインターコネクトエクスプレス（ＰＣＩｅ）、シリアルアタッチドＳＣＳＩ（ＳＡＳ）、および／またはユニバーサルシリアルバス（ＵＳＢ）インタフェースのような１または複数の通信インタフェースプロトコルを使用して、ホストデバイスと通信してよい。
【００１３】
いくつかの実施形態において、メモリコントローラ１０２、不揮発性メモリ１０４、およびホストインタフェース１０６は、同一パッケージ内に含まれてよい。例えば、メモリコントローラ１０２、メモリデバイス１０４、およびホストインタフェース１０６が、同一のプリント回路基板に配置されてよい。
【００１４】
様々な実施形態において、メモリコントローラ１０２は、少なくとも図示の通り、互いに連結されたコントローラロジック１０８、転送バッファ１１０、および間接指定テーブル１１２を含んでよい。間接指定テーブル１１２は、不揮発性メモリ１０４内におけるデータの場所を示してよい。間接指定テーブル１１２は、複数のデータポインタを含んでよく、各ポインタは、データの識別子および識別されたデータが格納されている不揮発性メモリ１０４における場所を含む。
【００１５】
様々な実施形態において、不揮発性メモリ１０４に格納されたデータは、複数のページに編成されてよく、各ページはデータの複数のセクタを含む。１つのページは、コントローラロジック１０８が不揮発性メモリ１０４へ書き込み可能なデータの粒度に対応してよく、１つのセクタは不揮発性メモリ１０４内のデータの場所を示す間接指定テーブル１１２に使用されるデータの粒度に対応してよい。セクタおよび／またはページは、任意の適切なサイズであってよい。非限定的な実施形態において、１つのページは、４つのセクタを含んでよい。例えば、１つのページは、１６キロバイト（ＫｉＢ）および１つのセクタは４ＫｉＢであってよい。
【００１６】
様々な実施形態において、転送バッファ１１０は、スタティックランダムアクセスメモリ（ＳＲＡＭ）のような任意の適切なタイプのメモリを含んでよい。転送バッファは、データのセクタを転送バッファ１１０のそれぞれのスロットへ、後述されるガーベジコレクションプロセスの一部として格納してよい。
【００１７】
様々な実施形態において、不揮発性メモリ１０４のメモリリソースは、新しいデータをメモリリソースへ書き込む前に消去される必要がある。しかしながら、不揮発性メモリ１０４のメモリリソースは、複数のページを含む、不揮発性メモリ１０４のメモリリソースのブロック内においてのみ消去されるだけであってよい。
【００１８】
従って、不揮発性メモリ１０４は、無効なデータ（例えば、間接指定テーブル１１２が、もはや有効なデータポインタを含まないデータに対して）を含んでよい。例えば、更新されたデータが不揮発性メモリに書き込まれる場合、および／またはデータがもはや実行されていないホストデバイスのプロセスによって生成された一時的データであった場合、当該データは無効になってよい。いくつかの実施形態において、間接指定テーブル１１２は、有効なセクタに加え、不揮発性メモリ１０４内の無効なセクタの場所を示してよい。間接指定テーブル１１２は、追加的または代替的に、データを含まない（故に、新しいデータの格納に利用可能な）、不揮発性メモリのブロックを示す空きリストを含んでよい。
【００１９】
様々な実施形態において、コントローラロジック１０８は、無効なデータを消去し、不揮発性メモリ１０４のメモリリソースを解放すべく、ガーベジコレクションプロセスを実行してよい。ガーベジコレクションプロセスの一部として、コントローラロジック１０８は、不揮発性メモリ１０４に格納された複数のセクタを含むデータのブロックから、保持されるべき有効なセクタである、データの複数のセクタを識別してよい。例えば、当該複数の有効なセクタは、間接指定テーブル１１２の有効なデータポインタが参照する先のデータを含んでよい。いくつかの実施形態において、コントローラロジック１０８は、ブロックに格納された有効なセクタの数に基づいて、ガーベジコレクションのためのブロックを選択してよい。例えば、コントローラロジック１０８は、そこに格納された最小数の有効なセクタを持つブロックを選択してよい。
【００２０】
様々な実施形態において、コントローラロジック１０８は、不揮発性メモリからデータの複数の有効なセクタを読み取り、当該複数のセクタを転送バッファ１１０に格納してよい。コントローラロジック１０８は、当該複数のセクタのうちの個別のセクタの読み取りの完了時間に従い、個別のセクタをページに割り当ててよい。例えば、それらの各完了時間に従い、当該複数のセクタがページに連続的に割り当てられてよい。すなわち、１つのページが４つのセクタを含む一実施形態において、当該複数のセクタの間で、１番目、２番目、３番目、および４番目に読み取りが完了する当該複数のセクタが１番目のページが割り当てられてよく、５番目、６番目、７番目、および８番目に読み取りが完了する当該複数のセクタが２番目のページに割り当てられる等であってよい。
【００２１】
様々な実施形態において、コントローラロジック１０８は、複数のセクタからなる個別のページを不揮発性メモリ１０４に書き込んでよい。例えば、コントローラロジック１０８は、当該ページのすべてのセクタが読み取られ、および／または転送バッファ１１０に格納されたという判断に応答して、当該個別のページを不揮発性メモリに書き込んでよい。コントローラロジック１０８は、不揮発性メモリに書き込まれた複数のセクタの場所を示すべく、間接指定テーブル１１２を更新してよい。また、コントローラロジック１０８は、当該複数のページを不揮発性メモリ１０４に書き込んだ後、転送バッファ１１０から当該複数のページを消去してよく、それにより、転送バッファ１１０内の領域をさらに解放する。
【００２２】
従って、個別のセクタの読み取りの完了時間に従って個別のセクタをページに割り当てることで、不揮発性メモリからセクタを読み取る前にセクタをページに割り当てるのに比べ、転送バッファ１１０内のセクタの常駐時間（例えば、不揮発性メモリ１０４に再度書き込まれる前に、セクタが転送バッファ１１０に格納される時間）を低減してよい。常駐時間がより短くなることで今度は、特定のサイズの不揮発性メモリ１０４に対し、より小さな転送バッファ１１０が使用されることを可能にしてよい。
【００２３】
様々な実施形態において、コントローラロジック１０８は、有効なセクタの複数のページを不揮発性メモリ１０４へ書き込んだ後、不揮発性メモリ１０４のブロックからデータを消去してよく、それにより新しいデータを格納するために、ブロックのメモリリソースを解放する。
【００２４】
いくつかの実施形態において、不揮発性メモリ１０４に書き込まれる個別のページの複数のセクタは、転送バッファ１１０の複数の隣接するスロット内に格納されてよい。例えば、転送バッファ１１０の当該複数のスロットは、転送バッファ１１０内のスロットの物理的な場所に対応する関連付けられたインデックスを有してよい。転送バッファ１１０の一群のスロットが、ガーベジコレクションプロセスに割り当てられてよい。コントローラロジック１０８は、セクタの読み取りが完了すると、個別のセクタを転送バッファ１１０のそれぞれのスロットに割り当ててよい。例えば、セクタは、最も小さいインデックスが割り当てられた一群のスロットのうちの利用可能なスロットに割り当てられてよい。つまり、転送バッファ１１０の複数の隣接するスロット（例えば、シーケンシャルインデックスを持つスロット）に格納された複数のセクタからスロットのページが形成されてよい。
【００２５】
他の実施形態において、不揮発性メモリ１０４に書き込まれる個別のページの複数のセクタは、転送バッファ１１０の複数の隣接しないスロットに格納されてよい。例えば、コントローラロジック１０８は、セクタの読み取り処理を開始する際、データの個別のセクタを転送バッファ１１０のそれぞれのスロットに、割り当ててよい。コントローラロジック１０８は次に、当該個別のセクタでの読み取り処理の完了時間に従い、複数の個別のセクタを１つのページに割り当て、当該ページを不揮発性メモリ１０４に書き込んでよい。
【００２６】
図２は、様々な実施形態に従う、不揮発性メモリ（例えば、不揮発性メモリ１０４）のガーベジコレクションのための方法２００を示す。いくつかの実施形態において、方法２００は、不揮発性メモリに連結されたメモリコントローラ（例えば、メモリコントローラ１０２）によって実行されてよい。
【００２７】
ブロック２０２において、方法２００は、不揮発性メモリからデータの複数のセクタを読み取ることを含んでよい。当該複数のセクタは、例えば、複数のセクタを含む、不揮発性メモリ内に格納されたデータのブロックに属する、保持されるべき複数の有効なセクタであってよい。
【００２８】
ブロック２０４において、方法２００はさらに、読み取られた複数のセクタを転送バッファ（例えば、転送バッファ２１０）に格納することを含んでよい。
【００２９】
ブロック２０６において、方法２００はさらに、複数のセクタのうちの個別のセクタの読み取りの完了時間に従い、個別の読み取られたセクタをページに割り当てることを含んでよい。当該ページは、複数のセクタを含んでよい。
【００３０】
ブロック２０８において、方法２００はさらに、複数のセクタからなるページを不揮発性メモリに書き込むことを含んでよい。当該ページのすべてのセクタが読み取られ、および／または転送バッファ内に格納されたという判断に応答して、個別のページは、不揮発性メモリに書き込まれてよい。複数のセクタからなるページは、当該複数のセクタがブロック２０２において読み取られた場所以外の不揮発性メモリの異なる場所（例えば、異なるブロック）に書き込まれてよい。ブロック２０８において、複数のセクタからなるページが書き込まれた不揮発性メモリ内の場所を示すべく、間接指定テーブルが更新されてよい。
【００３１】
様々な実施形態において、ブロックからすべての有効なセクタ（例えば、複数の関連付けられたページ内）を不揮発性メモリに書き込んだ後、セクタが読み取られた不揮発性メモリのブロックは、消去されてよい。消去されたブロックは、その後、新しいデータの格納のために使用されてよい。
【００３２】
図３は、様々な実施形態に従う、本明細書に記載の装置および／または方法（例えば、メモリシステム１００、方法２００）を採用し得る例示的なコンピューティングデバイス３００を示す。図示の通り、コンピューティングデバイス３００は、１または複数のプロセッサ３０４（１つが示される）および少なくとも１つの通信チップ３０６のような多数のコンポーネントを含んでよい。様々な実施形態において、当該１または複数のプロセッサ３０４はそれぞれ、１または複数のプロセッサコアを含んでよい。様々な実施形態において、当該少なくとも１つの通信チップ３０６は、当該１または複数のプロセッサ３０４に物理的および電気的に連結されてよい。さらなる実装において、通信チップ３０６は、当該１または複数のプロセッサ３０４の一部であってよい。様々な実施形態において、コンピューティングデバイス３００は、プリント回路基板（ＰＣＢ）３０２を含んでよい。これらの実施形態について、当該１または複数のプロセッサ３０４および通信チップ３０６がそこに配置されてよい。代替的な複数の実施形態において、様々なコンポーネントは、ＰＣＢ３０２を採用することなく連結されてよい。
【００３３】
その用途に応じて、コンピューティングデバイス３００は、ＰＣＢ３０２に物理的および電気的に連結されても、されなくてもよい複数の他のコンポーネントを含んでよい。これらの他のコンポーネントには、限定はされないが、メモリコントローラハブ３０５、揮発性メモリ（例えば、ＤＲＡＭ３０８）、リードオンリメモリ３１０（ＲＯＭ）のような不揮発性メモリ、フラッシュメモリ３１２、およびストレージデバイス３１１（例えば、ＳＳＤまたはハードディスクドライブ（ＨＤＤ））、Ｉ／Ｏコントローラ３１４、デジタル信号プロセッサ（不図示）、暗号プロセッサ（不図示）、グラフィックプロセッサ３１６、１または複数のアンテナ３１８、ディスプレイ（不図示）、タッチスクリーンディスプレイ３２０、タッチスクリーンコントローラ３２２、バッテリ３２４、オーディオコーデック（不図示）、ビデオコーデック（不図示）、全地球測位システム（ＧＰＳ）デバイス３２８、コンパス３３０、加速度計（不図示）、ジャイロスコープ（不図示）、スピーカ３３２、カメラ３３４、および大容量ストレージデバイス（ハードディスクドライブ、ソリッドステートドライブ、コンパクトディスク（ＣＤ）、デジタル多用途ディスク（ＤＶＤ）（不図示）のような）等を含む。様々な実施形態において、プロセッサ３０４は複数の他のコンポーネントと共に同一ダイ上に統合されて、システムオンチップ（ＳｏＣ）を形成してよい。
【００３４】
様々な実施形態において、フラッシュメモリ３１２および／またはストレージデバイス３１１は、本明細書に記載のメモリシステム１００を実装してよい。コンピューティングデバイス３００は、フラッシュメモリ３１２に加え、またはその代わりにストレージデバイス３１１を含んでよい。ストレージデバイス３１１がＳＳＤを実装する実施形態のようないくつかの実施形態において、ストレージデバイス３１１は、フラッシュメモリ３１２に加え、またはその代わりに本明細書に記載のメモリシステム１００を実装してよい。
【００３５】
いくつかの実施形態において、１または複数のプロセッサ、フラッシュメモリ３１２、および／またはストレージデバイス３１１は、１または複数のプロセッサ３０４によるプログラミング命令の実行に応答して、コンピューティングデバイス３００が、本明細書に記載の複数の方法（例えば、方法２００）のうちのすべてまたは選択された複数の態様を実施可能にするよう構成されたプログラミング命令を格納する関連するファームウェア（不図示）を含んでよい。様々な実施形態において、これらの態様は、１または複数のプロセッサ３０４、フラッシュメモリ３１２、またはストレージデバイス３１１とは別個のハードウェアを使用して、追加的にまたは代替的に実装されてよい。
【００３６】
通信チップ３０６は、コンピューティングデバイス３００との間のデータ転送のために、有線および／または無線通信を有効にしてよい。「無線」という用語およびその派生語は、非固体媒体を通る変調電磁放射を用いることによってデータ通信を行うことができる回路、デバイス、システム、方法、技術、通信チャネル等を記載するために使用されてよい。当該用語は、関連デバイスがいかなる有線をも含まないことを示唆するものではないが、いくつかの実施形態においては含まなくてよい。
【００３７】
通信チップ３０６は、３Ｇ、４Ｇ、５Ｇおよびこれら以降のものとして指定された任意の他の無線プロトコルだけでなく、限定はされないが、ＩＥＥＥ７０２．２０、汎用パケット無線サービス（ＧＰＲＳ）、Ｅｖｏｌｕｔｉｏｎ Ｄａｔａ Ｏｐｔｉｍｉｚｅｄ（Ｅｖ−ＤＯ）、Ｅｖｏｌｖｅｄ  Ｈｉｇｈ  Ｓｐｅｅｄ  Ｐａｃｋｅｔ  Ａｃｃｅｓｓ（ＨＳＰＡ＋）、Ｅｖｏｌｖｅｄ  Ｈｉｇｈ  Ｓｐｅｅｄ  Ｄｏｗｎｌｉｎｋ  Ｐａｃｋｅｔ  Ａｃｃｅｓｓ（ＨＳＤＰＡ＋）、Ｅｖｏｌｖｅｄ  Ｈｉｇｈ  Ｓｐｅｅｄ  Ｕｐｌｉｎｋ  Ｐａｃｋｅｔ  Ａｃｃｅｓｓ（ＨＳＵＰＡ＋）、グローバルシステムフォーモバイルコミュニケーションズ（ＧＳＭ（登録商標））、ＧＳＭ（登録商標）進化型高速データレート（ＥＤＧＥ）、符号分割多重アクセス（ＣＤＭＡ）、時分割多重アクセス（ＴＤＭＡ）、Ｄｉｇｉｔａｌ Ｅｎｈａｎｃｅｄ Ｃｏｒｄｌｅｓｓ Ｔｅｌｅｃｏｍｍｕｎｉｃａｔｉｏｎｓ（ＤＥＣＴ）、Ｂｌｕｅｔｏｏｔｈ（登録商標）、及びそれらの派生物を含む多数の無線規格またはプロトコルのいずれかを実装してよい。コンピューティングデバイス３００は、複数の通信チップ３０６を含んでよい。
【００３８】
例えば、第１の通信チップ３０６は、Ｗｉ−Ｆｉ（登録商標）およびＢｌｕｅｔｏｏｔｈ（登録商標）のような短距離無線通信に専用化されてよく、第２の通信チップ３０６は、ＧＰＳ、ＥＤＧＥ、ＧＰＲＳ、ＣＤＭＡ、ＷｉＭＡＸ（登録商標）、ＬＴＥ、Ｅｖ−ＤＯ等のような長距離無線通信に専用化されてよい。
【００３９】
様々な実装において、コンピューティングデバイス３００は、ラップトップ、ネットブック、ノートブック、ウルトラブック、スマートフォン、コンピューティングタブレット、パーソナルデジタルアシスタント（ＰＤＡ）、ウルトラモバイルＰＣ、携帯電話、デスクトップコンピュータ、サーバ、プリンタ、スキャナ、モニタ、セットトップボックス、エンターテインメント制御ユニット（例えば、ゲーム機または自動車用エンターテインメントユニット）、デジタルカメラ、電気機器、携帯音楽プレーヤ、またはデジタルビデオレコーダであってよい。さらなる実装において、コンピューティングデバイス３００は、データを処理する任意の他の電子デバイスであってよい。いくつかの非限定的な例が以下に示される。 
【００４０】
例１は、不揮発性メモリからデータの複数のセクタを読み取る段階と、上記複数のセクタのうちの個別のセクタの上記読み取り段階の完了時間に従い、複数の上記個別のセクタを複数のページに割り当てる段階であって、個別のページが複数の上記セクタを含む段階と、上記複数のセクタを含む上記個別のページを上記不揮発性メモリに書き込む段階と、を備える、不揮発性メモリを管理するための方法である。
【００４１】
例２は、上記不揮発性メモリ内の上記複数のセクタの場所を示すべく、間接指定テーブルを更新する段階をさらに備える、例１に係る方法である。
【００４２】
例３は、読み取られた上記複数のセクタを転送バッファに格納する段階をさらに備え、複数のセクタからなる複数のページが、上記転送バッファから上記不揮発性メモリに書き込まれる、例１に係る方法である。
【００４３】
例４は、複数のそれぞれの完了時間に従い、複数の上記個別のページの複数のセクタが、上記転送バッファの複数の隣接するスロットに格納される、例３の方法である。例５は、複数の上記個別のページの複数のセクタが、上記転送バッファの複数の隣接しないスロットに格納される、例３の方法である。
【００４４】
例６は、上記転送バッファは、スタティックランダムアクセスメモリ（ＳＲＡＭ）である、例３の方法である。
【００４５】
例７は、複数のそれぞれの完了時間に従い、読み取られた上記複数のセクタが、複数のページに連続的に割り当てられる、例１から６のいずれかに係る方法である。
【００４６】
例８は、上記読み取る段階、割り当てる段階、および書き込む段階は、上記不揮発性メモリのためのガーベジコレクションプロセスの一部として実行される、例１から６のいずれかに係る方法である。例９は、上記不揮発性メモリはフラッシュメモリである、例１から６のいずれかに係る方法である。
【００４７】
例１０は、不揮発性メモリと、転送バッファと、上記不揮発性メモリおよび上記転送バッファに連結されたコントローラロジックと、を備える、メモリを操作するための装置である。上記コントローラロジックは、上記不揮発性メモリからデータの複数のセクタを読み取り、読み取られた上記複数のセクタを上記転送バッファに格納し、上記複数のセクタのうちの個別のセクタの上記読み取りの完了時間に従い、複数の上記個別のセクタを複数のページに割り当て、個別のページは複数の上記セクタを含んでおり、上記ページのすべてのセクタが読み取られたという判断に応答して、上記複数のセクタを含む上記個別のページを上記不揮発性メモリに書き込む。
【００４８】
例１１は、上記コントローラロジックに連結された、上記不揮発性メモリ内の上記複数のセクタの場所を示す間接指定テーブルをさらに備え、上記コントローラロジックは、上記不揮発性メモリに書き込まれた上記複数のセクタの上記場所を示すべく、上記間接指定テーブルをさらに更新する、例１０の装置である。
【００４９】
例１２は、複数の上記個別のページの複数のセクタが、上記転送バッファの複数の隣接するスロットに格納される、例１０の装置である。
【００５０】
例１３は、複数の上記個別のページの複数のセクタが、上記転送バッファの複数の隣接しないスロットに格納される、例１０の装置である。例１４は、複数のそれぞれの完了時間に従い、読み取られた上記複数のセクタが、複数のページに連続的に割り当てられる、例１０の装置である。
【００５１】
例１５は、上記転送バッファは、スタティックランダムアクセスメモリ（ＳＲＡＭ）である、例１０の装置である。例１６は、上記不揮発性メモリは、フラッシュメモリである、例１０の装置である。 
【００５２】
例１７は、上記コントローラロジックは、上記読み取り、格納、割り当て、および書き込む操作を上記不揮発性メモリのためのガーベジコレクションプロセスの一部として実行する、例１０から１６のいずれかに係る装置である。
【００５３】
例１８は、プロセッサと、アンテナと、上記プロセッサおよび上記アンテナに連結された不揮発性メモリと、転送バッファと、上記不揮発性メモリおよび上記転送バッファに連結されたコントローラロジックを備える、メモリを操作するためのシステムである。上記コントローラロジックは、ガーベジコレクションプロセスの一部として、上記不揮発性メモリに格納された複数のセクタを含むデータのブロックから、保持されるべき複数野有効なセクタである、データの複数のセクタを識別し、上記不揮発性メモリから上記複数の有効なセクタを読み取り、読み取られた上記複数のセクタを上記転送バッファに格納し、上記複数のセクタのうちの個別のセクタの上記読み取りの完了時間に従い、読み取られた上記複数のセクタを複数のページに割り当て、個別のページが複数の上記セクタを含んでおり、上記ページのすべてのセクタが読み取られたという判断に応答して、上記複数のセクタを含む上記個別のページを上記不揮発性メモリに書き込む。
【００５４】
例１９は、上記コントローラロジックは、上記複数の有効なセクタを読み取った後、上記データのブロックをさらに消去する、例１８のシステムである。
【００５５】
例２０は、上記コントローラロジックは、上記複数のページを上記不揮発性メモリに書き込んだ後、上記複数のページを上記転送バッファからさらに消去する、例１８のシステムである。
【００５６】
例２１は、上記コントローラロジックに連結された、上記不揮発性メモリ内の上記複数のセクタの場所を示す間接指定テーブルをさらに備え、上記コントローラロジックは、上記不揮発性メモリに書き込まれた上記複数のセクタの上記場所を示すべく、上記間接指定テーブルをさらに更新する、例１８のシステムである。
【００５７】
例２２は、上記個別のセクタの上記読み取りの完了時間に従い、複数の上記個別のページの複数のセクタが、上記転送バッファの複数の隣接するスロットに格納される、例１８のシステムである。
【００５８】
例２３は、複数の上記個別のページの複数のセクタが、上記転送バッファの複数の隣接しないスロットに格納される、例１８のシステムである。
【００５９】
例２４は、複数のそれぞれの完了時間に従い、読み取られた上記複数のセクタが、複数のページに連続的に割り当てられる、例１８から２３のいずれかに係るシステムである。
【００６０】
複数の特定の実施形態が、本明細書において、説明目的のために例示かつ説明されたが、本願は、本明細書において説明された実施形態のあらゆる適応または変形に及ぶことが意図されている。従って、本明細書に記載された複数の実施形態は特許請求の範囲によってのみ限定されることが、明白に意図されている。
【００６１】
本開示が「１つの（ａ）」または「第１の（ａ  ｆｉｒｓｔ）」要素またはそれらの均等物について記載する場合、そのような開示は、１または複数のそのような要素を含むが、２または２より多くのそのような要素を必要するものでも除外するものでもない。さらに、識別された要素に対する序数表示（例えば、第１、第２または第３）は、要素間を区別するために使用されるものであり、そのような要素の必要なまたは限定的な数を示すものでも示唆するものでもなく、これらは、具体的に別途記載されない限り、そのような要素の特定の位置または順序を示すものでもない。
【図１】
2017502376.tif 000003
【図２】
2017502376.tif 000004
【図３】
2017502376.tif 000005
【国際調査報告】
2017502376.tif 000006
2017502376.tif 000007
2017502376.tif 000008
2017502376.tif 000009
2017502376.tif 000010
2017502376.tif 000011
2017502376.tif 000012