(57)【要約】本開示は、データ圧縮および管理のための装置および方法を含む。いくつかの方法は、管理ユニット量のデータに対応するいくつかのデータセグメントを受信するステップと、いくつかのデータセグメントのそれぞれについて個々の圧縮率を判定するステップと、その個々の判定された圧縮率に従って、いくつかのデータセグメントのそれぞれを圧縮するステップと、管理ユニット量のデータに対応するいくつかのデータセグメントに対応する圧縮された、および／または未圧縮のデータセグメントを含む圧縮された管理ユニットを形成するステップと、少なくとも圧縮された管理ユニットを備えるデータページを形成するステップとを含む。【選択図】図４
2015525423.tif 000002
【特許請求の範囲】
【請求項１】
メモリの動作方法であって、前記方法が、
管理ユニット量のデータに対応するいくつかのデータセグメントを受信するステップと、
前記いくつかのデータセグメントのそれぞれについて個々の圧縮率を判定するステップと、
その個々の判定された圧縮率に従って、前記いくつかのデータセグメントのそれぞれを圧縮するステップと、
前記管理ユニット量のデータに対応する前記いくつかのデータセグメントに対応する圧縮されたデータセグメントおよび未圧縮のデータセグメントの両方、またはいずれか一方を含む圧縮された管理ユニットを形成するステップと、
少なくとも前記圧縮された管理ユニットを備えるデータページを形成するステップと
を備える、メモリの動作方法。
【請求項２】
前記いくつかのデータセグメントが、第１のいくつかのデータセグメントであり、また前記圧縮された管理ユニットが、第１の圧縮された管理ユニットであり、前記方法が、
前記管理ユニット量のデータに対応する第２のいくつかのデータセグメントを受信するステップと、
前記第２のいくつかのデータセグメントのそれぞれについて個々の圧縮率を判定するステップと、
その個々の判定された圧縮率に従って、前記第２のいくつかのデータセグメントのそれぞれを圧縮するステップと、
前記管理ユニット量のデータに対応する前記第２のいくつかのデータセグメントに対応する圧縮されたデータセグメントおよび未圧縮のデータセグメントの両方、またはいずれか一方を含む第２の圧縮された管理ユニットを形成するステップと、
少なくとも前記第１および前記第２の圧縮された管理ユニットを備えるように前記データページを形成するステップと
を含む、請求項１に記載の方法。
【請求項３】
前記圧縮された管理ユニットを形成するステップが、前記圧縮された管理ユニットのための圧縮値を判定するステップを含む、請求項１に記載の方法。
【請求項４】
前記圧縮された管理ユニットのための圧縮値を判定するステップが、前記圧縮された管理ユニットの前記データセグメントについて圧縮の度合いが最も少ないものを判定するステップを含む、請求項３に記載の方法。
【請求項５】
前記ページを形成するステップが、異なる判定された圧縮値を有する少なくとも２つの圧縮された管理ユニットを含むページを形成するステップをさらに備える、請求項３に記載の方法。
【請求項６】
前記データページを前記メモリに格納するステップをさらに備え、前記データページが、
少なくとも前記圧縮された管理ユニットと、
前記ページ内における前記圧縮された管理ユニットの特定の位置を示すメタデータと
を含む、請求項１〜５のいずれか１項に記載の方法。
【請求項７】
前記いくつかのデータセグメントのそれぞれについて、その判定された圧縮率に基づいて、個々の圧縮レベルを判定するステップを含み、圧縮された管理ユニットを形成するステップが、異なる判定された圧縮レベルを有するデータセグメントを含む圧縮された管理ユニットを形成するステップをさらに備える、請求項１〜５のいずれか１項に記載の方法。
【請求項８】
前記ページを形成するステップが、それぞれが同じ数のデータセグメントを含む少なくとも２つの圧縮された管理ユニットを有するページを形成するステップを備える、請求項１〜５のいずれか１項に記載の方法。
【請求項９】
いくつかのデータセグメントを受信するステップが、前記いくつかのデータセグメントをコントローラで受信するステップを備える、請求項１〜５のいずれか１項に記載の方法。
【請求項１０】
その個々の判定された圧縮率に従って、前記いくつかのデータセグメントのそれぞれを圧縮するステップが、前記いくつかのデータセグメントのうちの特定の１つを、前記データセグメントのうちの前記特定の１つが圧縮可能でないと判定された場合に圧縮しないステップを備える、請求項１〜５のいずれか１項に記載の方法。
【請求項１１】
前記いくつかのデータセグメントが、対応するいくつかの論理アドレスと共にホストから受信された未圧縮のデータセクタであり、前記管理ユニット量のデータが、Ｎ個の論理アドレスを伴う未圧縮のデータのＮ個のセクタに対応し、前記Ｎ個の論理アドレスを伴う未圧縮のデータのＮ個のセクタが、前記ページに収まり、前記ページを形成するステップが、少なくとも２つの圧縮された管理ユニットを、前記少なくとも２つの圧縮された管理ユニットのそれぞれが前記Ｎ個の論理アドレスを伴うＮ個の圧縮されたおよび／または未圧縮のデータセクタに対応する状態で含むページを形成するステップをさらに備える、請求項１〜５のいずれか１項に記載の方法。
【請求項１２】
メモリの動作方法であって、前記方法が、
前記メモリに格納され、かつ管理ユニット量のデータに対応するいくつかのデータセグメントを受信するステップと、
前記いくつかのデータセグメントについて個々の圧縮率を判定するステップと、
それらの個々の判定された圧縮率に従って、前記いくつかのデータセグメントを圧縮し、前記圧縮されたいくつかのデータセグメントのそれぞれに個々の圧縮ヘッダを追加するステップと、
前記いくつかの圧縮されたデータセグメントを含み、前記判定された圧縮率に少なくとも部分的に基づく対応する圧縮値を有する圧縮された管理ユニットを形成するステップと、
データページを前記メモリに格納するステップであって、前記データページが前記圧縮された管理ユニットおよび少なくとも１つのその他の圧縮された管理ユニットを含む、格納するステップと
を備える、メモリの動作方法。
【請求項１３】
前記圧縮された管理ユニットに対応する前記圧縮値が圧縮率に対応し、前記少なくとも１つのその他の圧縮された管理ユニットがそれに対応する異なる圧縮率を有する、請求項１２に記載の方法。
【請求項１４】
圧縮されたデータの管理方法であって、前記方法が、
データページをメモリに格納するステップであって、前記データページが、前記データページ内におけるいくつかの圧縮された管理ユニットの物理構成を示すメタデータを含む、格納するステップを備え、
前記圧縮された管理ユニットのそれぞれが、それに対応するいくつかの圧縮されたデータセグメントの圧縮レベルに少なくとも部分的に基づく個々の圧縮値を有し、
個々の圧縮された管理ユニットに対応する前記いくつかの圧縮されたデータセグメントのそれぞれが、個々の論理アドレスおよびそれに対応する圧縮ヘッダを有する、圧縮されたデータの管理方法。
【請求項１５】
前記データページの物理アドレスと、
ターゲット論理アドレスに対応するターゲットの圧縮された管理ユニットの前記データページ内における位置と
を示すマッピングを提供するステップをさらに備える、請求項１４に記載の方法。
【請求項１６】
前記ターゲットの圧縮された管理ユニットに関係する前記圧縮値に少なくとも部分的に基づいて、前記ターゲットの圧縮された管理ユニットを探索することによって、前記ターゲット論理アドレスに対応する特定の圧縮されたデータセグメントを特定するステップをさらに備える、請求項１５に記載の方法。
【請求項１７】
前記マッピングを提供するステップが、前記ターゲットの圧縮された管理ユニットの前記データページ内における開始位置を示すインデックスを提供するステップをさらに備える、請求項１５に記載の方法。
【請求項１８】
データページをメモリに格納するステップが、ホストの書き込み要求に応じて前記データページを前記メモリに格納するステップを備え、前記方法が、ターゲット論理アドレスに関連付けられているホストの読み出し要求に応じて前記メモリ内の前記データページにアクセスするステップをさらに備える、請求項１４〜１７のいずれか１項に記載の方法。
【請求項１９】
ターゲット論理アドレスに対応する圧縮されたデータセグメントを復元するステップと、ホストの読み出し要求に関連して、前記復元されたデータセグメントをホストに提供するステップとをさらに備える、請求項１４〜１７のいずれか１項に記載の方法。
【請求項２０】
装置であって、
いくつかのメモリデバイスを備えるメモリと、
前記いくつかのメモリデバイスに接続されるコントローラであって、かつ、
管理ユニット量のデータに対応するいくつかのデータセグメントを受信するステップと、
前記いくつかのデータセグメントのそれぞれについて個々の圧縮率を判定するステップと、
その個々の判定された圧縮率に従って、前記いくつかのデータセグメントのそれぞれを圧縮するステップと、
前記管理ユニット量のデータに対応する前記いくつかのデータセグメントに対応するいくつかの圧縮されたデータセグメントおよび未圧縮のデータセグメントの両方、またはいずれか一方を含む圧縮された管理ユニットを形成するステップと、
少なくとも前記圧縮された管理ユニットを備えるデータページを形成するステップと
を制御するように構成される、コントローラと
を備える、装置。
【請求項２１】
前記データページが、前記ページ内における前記圧縮された管理ユニットの特定の位置を示すトポロジーメタデータをさらに備える、請求項２０に記載の装置。
【請求項２２】
前記コントローラが、前記いくつかのデータセグメントに関係する論理アドレスを前記メモリにおける前記いくつかのデータセグメントの物理的位置にマッピングするためのデータ構造を提供するステップを制御するようにさらに構成され、前記データ構造が、
前記いくつかのデータセグメントに関係する物理アドレスと、
オフセットインデックスであって、
前記圧縮された管理ユニットの前記ページ内における物理的位置と、
前記ページに割り当てられたいくつかの追加的な圧縮された管理ユニットの前記ページ内における物理的位置と
を示すオフセットインデックスと
を含む、請求項２１に記載の装置。
【請求項２３】
前記コントローラが、前記圧縮された管理ユニットの前記形成ステップの前に、前記いくつかの圧縮されたデータセグメントを暗号化するように構成される暗号化コンポーネントを含む、請求項２０〜２２のいずれか１項に記載の装置。
【請求項２４】
装置であって、
データページを格納するメモリであって、前記データページが、前記データページ内におけるいくつかの圧縮された管理ユニットの物理構成を示すメタデータを含む、メモリを備え、
前記圧縮された管理ユニットのそれぞれが、それに対応するいくつかの圧縮されたデータセグメントの圧縮レベルに少なくとも部分的に基づく個々の圧縮値を有し、
個々の圧縮された管理ユニットに対応する前記いくつかの圧縮されたデータセグメントのそれぞれが、個々の論理アドレスおよびそれに対応する圧縮ヘッダを有する、装置。
【請求項２５】
前記メモリに接続されるコントローラをさらに備え、前記コントローラが、変換コンポーネントを含んで、前記データページの物理アドレスと、ターゲット論理アドレスに対応するターゲットの圧縮された管理ユニットの前記データページ内における位置とを示すマッピングを提供する、請求項２４に記載の装置。
【請求項２６】
前記コントローラが、前記ターゲットの圧縮された管理ユニットに対応する前記圧縮値に少なくとも部分的に基づいて、前記ターゲットの圧縮された管理ユニットを探索することによって、前記ターゲット論理アドレスに対応する特定の圧縮されたデータセグメントを特定するステップを制御するように構成される、請求項２５に記載の装置。
【請求項２７】
前記マッピングが、前記ターゲットの圧縮された管理ユニットの前記データページ内における開始位置を示すインデックスをさらに備える、請求項２５に記載の装置。
【請求項２８】
装置であって、
いくつかのメモリデバイスを備えるメモリと、
前記いくつかのメモリデバイスに接続されるコントローラであって、かつ、
前記メモリに格納されるデータを受信するステップと、
管理ユニット量の前記受信データに対して圧縮演算を実行するステップであって、前記管理ユニット量が、いくつかの（Ｎ個の）未圧縮のデータセグメントである、実行するステップと、
前記Ｎ個のデータセグメントに対応する圧縮されたデータセグメントおよび未圧縮のデータセグメントの両方、またはいずれか一方を含む第１の圧縮された管理ユニットを形成するステップと、
少なくとも前記第１の圧縮された管理ユニットを備えるデータページを形成するステップであって、前記第１の圧縮された管理ユニットが、前記ページのいくつかの量子化境界のうちの１つで開始し、前記連続する量子化境界のそれぞれの間の空間割り当てが、未圧縮のデータセグメントを収容可能である、形成するステップと
を制御するように構成されるコントローラと
を備える装置。
【請求項２９】
前記ページの前記量子化境界の数がＮ個であり、前記第１の圧縮された管理ユニットが、前記Ｎ個の量子化境界のうちの少なくとも２つにわたる、請求項２８に記載の装置。
【請求項３０】
前記第１の圧縮された管理ユニットが、前記データページから追加的なデータページにわたる、請求項２９に記載の装置。
【請求項３１】
前記ページの前記量子化境界の数がＮ個であり、前記第１の圧縮された管理ユニットが、前記いくつかの量子化境界のうちの前記１つと、前記いくつかの量子化境界のうちの次に続く１つとの間に収まる、請求項２８に記載の装置。
【請求項３２】
前記データページが、Ｎ個の圧縮された管理ユニットを、前記Ｎ個の圧縮された管理ユニットのそれぞれが前記Ｎ個の量子化境界のうちの異なる１つで開始する状態で備える、請求項３１に記載の装置。
【請求項３３】
前記コントローラが、
追加的な管理ユニット量の前記受信データに対して圧縮演算を実行するステップであって、前記追加的な管理ユニット量が、Ｎ個の未圧縮のデータセグメントである、実行するステップと、
前記追加的な管理ユニット量の前記受信データの前記Ｎ個のデータセグメントに対応する圧縮されたデータセグメントおよび未圧縮のデータセグメントの両方、またはいずれか一方を含む追加的な圧縮された管理ユニットを形成するステップと、
少なくとも前記第１の圧縮された管理ユニットおよび前記追加的な圧縮された管理ユニットを備えるように前記データページを形成するステップであって、前記追加的な圧縮された管理ユニットが、前記ページの前記いくつかの量子化境界のうちの１つで開始する、形成するステップと
を制御するようにさらに構成される、請求項２８〜３２のいずれか１項に記載の装置。
【請求項３４】
前記管理ユニット量の前記受信データに対して前記圧縮演算を実行するステップを制御するように構成される前記コントローラが、前記Ｎ個の未圧縮のデータセグメントのそれぞれを独立に圧縮し、次いで、前記ＣＭＵを形成するステップに関連して、前記独立に圧縮されたＮ個のデータセグメントを組み合わせるステップを制御するように構成される前記コントローラをさらに備える、請求項２８〜３２のいずれか１項に記載の装置。
【請求項３５】
圧縮されたデータの管理方法であって、前記方法が、
データページをメモリに格納するステップであって、前記データページが、前記データページ内におけるいくつかの圧縮された管理ユニットの物理構成を示すメタデータを含む、格納するステップを備え、
前記いくつかの圧縮された管理ユニットのそれぞれが、管理ユニット量のデータに対応し、前記管理ユニット量のデータが、いくつかの（Ｎ個の）未圧縮のデータセグメントに対応し、
前記圧縮された管理ユニットのそれぞれが、前記ページのいくつかの量子化境界のうちの１つで開始し、各連続する量子化境界の間の空間割り当てが、未圧縮のデータセグメントを収容することができる、圧縮されたデータの管理方法。
【請求項３６】
前記データページを前記メモリから読み出しするステップと、
前記いくつかの圧縮された管理ユニットに対応する圧縮されたデータセグメントを復元するステップと、
前記復元されたデータセグメントをホストに提供するステップと
をさらに備える、請求項３５に記載の方法。
【請求項３７】
前記個々のいくつかの圧縮された管理ユニットのそれぞれに対して別々のメタデータフィールドを提供するステップをさらに備え、前記別々のメタデータフィールドが、前記個々のいくつかの圧縮された管理ユニットのサイズを示す、請求項３５〜３６のいずれか１項に記載の方法。
【請求項３８】
前記いくつかの未圧縮のデータセグメントがホストセクタであり、Ｎが８に等しい、請求項３５〜３６のいずれか１項に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、概して、半導体メモリおよび方法に関し、より詳細には、データ圧縮および管理のための装置および方法に関する。
【背景技術】
【０００２】
メモリデバイスは、一般に、コンピュータまたはその他の電子機器の内部の半導体集積回路として提供される。揮発性メモリおよび不揮発性メモリを含む多くの異なる種類のメモリが存在する。揮発性メモリは、そのデータを維持するために電力を要し、中でも、ランダムアクセスメモリ（ＲＡＭ）、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）、および同期型ダイナミックランダムアクセスメモリ（ＳＤＲＡＭ）を含む。不揮発性メモリは、非通電でも格納したデータを保持することによって、永続的なデータを提供し得、中でも、ＮＡＮＤフラッシュメモリ、ＮＯＲフラッシュメモリ、読み出し専用メモリ（ＲＯＭ）、電気的消去可能プログラマブルＲＯＭ（ＥＥＰＲＯＭ）、消去可能プログラマブルＲＯＭ（ＥＰＲＯＭ）、ならびに相変化ランダムアクセスメモリ（ＰＣＲＡＭ）、抵抗ランダムアクセスメモリ（ＲＲＡＭ(登録商標)）、および磁気抵抗ランダムアクセスメモリ（ＭＲＡＭ）などの可変抵抗メモリを含み得る。
【０００３】
メモリデバイスは、まとめて組み合されて、ソリッドステートドライブ（ＳＳＤ）などのメモリシステムの記憶ボリュームを形成し得る。ソリッドステートドライブは、様々なその他の種類の不揮発性メモリおよび揮発性メモリの中でも、不揮発性メモリ（例えば、ＮＡＮＤフラッシュメモリおよびＮＯＲフラッシュメモリ）を含み得る、および／または揮発性メモリ（例えば、ＤＲＡＭおよびＳＲＡＭ）を含み得る。
【０００４】
ＳＳＤは、コンピュータの主記憶ボリュームとしてハードディスクドライブの代わりに用いられ得る。それは、ソリッドステートドライブが、性能、寸法、重量、耐久性、動作温度範囲、および電力消費の面でハードドライブに勝る利点を有し得るためである。例えば、ＳＳＤは、可動部を持たないために、磁気ディスクドライブと比べた場合に優れた性能を有し得る。可動部を持たないことにより、シークタイム、待ち時間、および磁気ディスクドライブに関係するその他の電気機械的遅延を回避し得る。ＳＳＤ製造業者は、不揮発性フラッシュメモリを用いて、内部電池供給を用いないであろうフラッシュＳＳＤを作ることができ、そうして、ドライブをより汎用的でコンパクトなものにし得る。
【０００５】
ＳＳＤは、ホストから読み出しおよび書き込み動作などのメモリ動作に関するコマンドを受信して、データを（例えば、メモリデバイスとホストとの間で）転送し得る。例えば、ＳＳＤに関係するスループットを高めること、および／またはＳＳＤの記憶容量を増加することは有益であり得る。
【図面の簡単な説明】
【０００６】
【図１】本開示のいくつかの実施形態による少なくとも１つのメモリシステムを含むコンピューティングシステムの形を取る装置のブロック図である。
【図２】本開示のいくつかの実施形態によるデータ圧縮を示すブロック図である。
【図３Ａ】本開示のいくつかの実施形態による、いくつかの圧縮された管理ユニットの構成を示す図である。
【図３Ｂ】本開示のいくつかの実施形態による、いくつかの圧縮された管理ユニットの構成を示す図である。
【図４】本開示のいくつかの実施形態によるデータ圧縮および管理に対応する機能流れ図である。
【図５】本開示のいくつかの実施形態によるデータ圧縮および管理に関係する機能流れ図である。
【図６Ａ】本開示のいくつかの実施形態による管理ユニットを示す図である。
【図６Ｂ】本開示のいくつかの実施形態による、いくつかのデータページに割り当てられたいくつかのＣＭＵを示す図である。
【図６Ｃ】本開示のいくつかの実施形態によるデータ１ページに割り当てられたいくつかのＣＭＵを示す図である。
【図７】本開示のいくつかの実施形態によるデータ圧縮および管理に対応する機能流れ図である。
【発明を実施するための形態】
【０００７】
本開示は、データ圧縮および管理のための装置および方法を含む。いくつかの方法は、管理ユニット量のデータに対応するいくつかのデータセグメントを受信するステップと、いくつかのデータセグメントのそれぞれについて個々の圧縮率を判定するステップと、その個々の判定された圧縮率に従って、いくつかのデータセグメントのそれぞれを圧縮するステップと、管理ユニット量のデータに対応するいくつかのデータセグメントに対応する圧縮された、および／または未圧縮のデータセグメントを含む圧縮された管理ユニットを形成するステップと、少なくとも圧縮された管理ユニットを備えるデータページを形成するステップとを含む。
【０００８】
いくつかの方法は、データページをメモリに格納するステップを含み、データページは、データページ内におけるいくつかの圧縮された管理ユニットの物理構成を示すメタデータを含む。いくつかの圧縮された管理ユニットのそれぞれは、管理ユニット量のデータに対応し、管理ユニット量のデータは、いくつかの（Ｎ個の）未圧縮のデータセグメントに対応し、圧縮された管理ユニットのそれぞれは、ページのいくつかの量子化境界のうちの１つで開始し、各連続する量子化境界の間の空間割り当ては、未圧縮のデータセグメントを収容することができる。
【０００９】
本開示の以下の詳細な説明では、本開示の一部分を形成し、例としてどのように本開示の１つまたは２つ以上の実施形態が実行され得るかを示している、添付の図面を参照する。これらの実施形態は、当業者が、本開示の実施形態を実施できるように十分に詳しく記載される。そして、本開示の範囲から逸脱せずに、その他の実施形態が使用され得ること、またプロセス上の、電気的な、および／または構造的な変更がなされ得ることが理解されるべきである。本明細書で用いられる場合、表記「Ｎ」は、特に、図面の参照番号に関しては、そのように表記されるいくつかの特定の特徴が含まれ得ることを示す。本明細書で用いられる場合、「いくつかの（ａ  ｎｕｍｂｅｒ  ｏｆ）」特定の事物は、そのような事物の１つまたは２つ以上を指し得る（例えば、いくつかのメモリデバイスは、１つまたは２つ以上のメモリデバイスを指し得る）。
【００１０】
本明細書の図は、最初の数字（ｄｉｇｉｔ  ｏｒ  ｄｉｇｉｔｓ）が図面の図番号に対応し、残りの数字が図面中の要素または部品を特定する番号付け規則に従う。異なる図の間における類似の要素またはコンポーネントは、類似の数字を使用することによって特定され得る。例えば、２３０は、図２の要素「３０」を指し得、また図４において、類似の要素を４３０として指すこともある。理解されるように、本明細書の様々な実施形態において示される要素は、本開示のいくつかのさらなる実施形態を提供するように、追加、交換、および／または省略が行われ得る。さらに、理解されるように、図示の要素の比率および相対的な大きさは、本発明の特定の実施形態を説明することを意図しており、限定的な意味で解釈されるべきではない。
【００１１】
図１は、本開示のいくつかの実施形態による少なくとも１つのメモリシステム１０４を含むコンピューティングシステム１００の形を取る装置のブロック図である。本明細書で用いられる場合、メモリシステム１０４、コントローラ１０８、またはメモリデバイス１１０はまた、単独で「装置」とみなされ得る。メモリシステム１０４は、例えば、ソリッドステートドライブ（ＳＳＤ）であり得、ホストインターフェース１０６と、コントローラ１０８（例えば、プロセッサおよび／またはその他の制御回路）と、メモリシステム１０４に記憶ボリュームを提供する、いくつかのメモリデバイス１１０−１、．．．、１１０−Ｎ（例えば、ＮＡＮＤフラッシュデバイスなどのソリッドステートメモリデバイス）とを含み得る。
【００１２】
図１に示されるように、コントローラ１０８は、複数のチャネルを介して、ホストインターフェース１０６およびメモリデバイス１１０−１、．．．、１１０−Ｎに接続され得、メモリシステム１０４とホスト１０２との間でデータを転送するのに用いられ得る。インターフェース１０６は、標準インターフェースの形態であり得る。例えば、メモリシステム１０４が、コンピューティングシステム１００においてデータ記憶に使用される場合、インターフェース１０６は、その他のコネクタおよびインターフェースの中でも、シリアルアドバンストテクノロジーアタッチメント（ＳＡＴＡ）、周辺構成要素相互接続エクスプレス（ＰＣＩｅ）、またはユニバーサルシリアルバス（ＵＳＢ）であり得る。しかしながら、一般的に、インターフェース１０６は、メモリシステム１０４と、インターフェース１０６に互換性があるレセプタを有するホスト１０２との間で制御信号、アドレス信号、データ信号、およびその他の信号を受け渡しするためのインターフェースを提供し得る。
【００１３】
ホスト１０２は、様々なその他の種類のホストの中でも、ノート型パーソナルコンピュータ、デスクトップコンピュータ、デジタルカメラ、携帯電話、またはメモリカードリーダなどのホストシステムであり得る。ホスト１０２は、システムマザーボードおよび／またはバックプレーンを含み得、いくつかのメモリアクセスデバイス（例えば、いくつかのプロセッサ）を含み得る。
【００１４】
コントローラ１０８は、メモリデバイス１１０−１、．．．、１１０−Ｎと通信して、その他の動作の中でも、データの読み出し、書き込み、および消去の動作を制御し得る。コントローラ１０８は、例えば、ハードウェアおよび／もしくはファームウェア（例えば、１つまたは２つ以上の集積回路）の形態、ならびに／またはいくつかのメモリデバイス１１０−１、．．．、１１０−Ｎに対するアクセスを制御するため、および／もしくはホスト１０２とメモリデバイス１１０−１、．．．、１１０−Ｎとの間におけるデータ転送を助けるためのソフトウェアの形態で、いくつかのコンポーネントを含み得る。例えば、図１に示されている例では、コントローラ１０８は、圧縮／復元コンポーネント１１２（例えば、圧縮／復元エンジン）と、暗号化コンポーネント１１４と、変換コンポーネント１１６と、バッファ管理コンポーネント１１８とを含む。
【００１５】
圧縮／復元コンポーネント１１２は、本明細書に説明されるいくつかの実施形態によって、データを圧縮および／または復元するために用いられ得る。暗号化コンポーネント１１４は、例えば、高度暗号化標準（ＡＥＳ）などの暗号化仕様に従って、データを暗号化および／または復号するために用いられ得る。変換コンポーネント１１６は、例えば、ホスト１０２から受信されたコマンドを、いくつかのメモリデバイス１１０−１、．．．、１１０−Ｎに対して所望通りにアクセスするのに適切なコマンドに変換することに関連して用いられ得る。例えば、ホスト１０２は、メモリシステム１０４をアドレス指定する場合、論理アドレス（例えば、論理ブロックアドレス（ＬＢＡ））を用い得る。変換コンポーネント１１６は、論理アドレスからメモリデバイス１１０−１、．．．、１１０−Ｎにおける物理的位置（例えば、物理アドレス）にマッピングを提供し得、逆の場合も同じである（例えば、フラッシュ変換レイヤ（ＦＴＬ）の一部分として）。このようなアドレスマッピングは、変換コンポーネント１１６によって、例えば、テーブルなどのデータ構造の形態で提供され得、ホスト１０２が、メモリデバイス１１０−１、．．．、１１０−Ｎの物理的特性を無視できるようにし得、その結果、メモリシステム１０４の記憶ボリュームが、論理データセグメント（例えば、セクタ）の連続的な線形のマップとして扱われる。
【００１６】
コントローラ１０８は、様々なその他のコンポーネントの中でも、バッファ管理コンポーネント１１８などのその他のコンポーネントを含み得、これは、メモリシステム１０４に関係するメモリ動作を制御するために用いられ得る。本明細書に詳述されるように、バッファ管理コンポーネント１１８は、本開示のいくつかの実施形態によるデータ圧縮および管理と関係して用いられ得るいくつかのバッファを含み得る。
【００１７】
メモリデバイス１１０−１、．．．、１１０−Ｎは、いくつかのメモリセルのアレイ（例えば、不揮発性メモリセル）を含み得る。例えば、アレイは、ＮＡＮＤアーキテクチャのフラッシュアレイであり得る。しかしながら、実施形態は、特定の種類のメモリアレイまたはアレイアーキテクチャに限定されるものではない。メモリセルは、例えば、メモリセルからなるいくつかの物理ページを含むいくつかのブロックにまとめられ得る。いくつかのブロックは、メモリセルのプレーンに含められ得、アレイは、いくつかのプレーンを含み得る。一例として、メモリデバイスは、１ページ当たり８ＫＢ（キロバイト）のユーザデータ、１ブロック当たり１２８ページのユーザデータ、１プレーン当たり２０４８ブロック、そして１デバイス当たり１６プレーンを記憶するように構成され得る。
【００１８】
動作時、データは、例えば、データページとして、メモリシステムのメモリデバイス（例えば、システム１０４のメモリデバイス１１０−１、．．．、１１０−Ｎ）に書込みされ得る、および／または、これから読み出しされ得る。そのため、データページは、メモリシステムのデータ転送サイズと呼ばれ得る。データは、セクタ（例えば、ホストセクタ）と呼ばれるデータセグメントの状態で、ホスト（例えば、ホスト１０２）に、またはホストから転送され得る。そのため、データセクタは、ホストのデータ転送サイズと呼ばれ得る。
【００１９】
データページは、いくつかのバイトのユーザデータ（例えば、いくつかのデータセクタを含むデータペイロード）と、それに対応するメタデータとを備え得るが、データページのサイズは、しばしば、ユーザデータを格納するために使用されるバイト数のみを指す場合がある。例として、ページサイズが４ＫＢであるデータページは、４ＫＢのユーザデータ（例えば、セクタサイズを５１２Ｂと仮定して、８セクタ）と、ユーザデータに対応する、いくつかのバイト（例えば、３２Ｂ、５４Ｂ、２２４Ｂなど）のメタデータとを含み得る。メタデータは、ユーザデータに対応するその他のメタデータの中でも、エラーデータ（例えば、誤り検出符号データおよび／または誤り訂正符号データ）などのインテグリティデータ、および／またはアドレスデータ（例えば、論理アドレスデータ）を含み得る。
【００２０】
図２は、本開示のいくつかの実施形態によるデータ圧縮を示すブロック図である。図２において、ブロック２３０は、ホスト（例えば、図１に関連して上述されたホスト１０２）から受信されたデータセグメント（例えば、ユーザデータのセクタ）を表しており、データセグメントは、（例えば、書き込み動作に関連して）図１に示されるメモリデバイス１１０−１、．．．、１１０−Ｎなどのメモリに格納される（例えば、書き込みされる）。各データセクタ２３０は、それに対応する（例えば、それに関係する）論理アドレス（例えば、ＬＢＡ）を有し得、また「Ｘ」バイトのセクタサイズを有し得、ここでＸは、例えば５１２Ｂであり得る。実施形態は、特定のセクタサイズに限定されるものではなく、ホストから受信される一部のセクタ２３０は、異なるセクタサイズを有し得る。図２には１つのセクタ２３０が示されているが、例えば、特定の書き込み動作に関連して、複数のセクタ２３０（例えば、いくつかの連続ＬＢＡに対応するいくつかのセクタ）がホストから受信される場合もある。
【００２１】
図２に示されるように、セクタ２３０は、図１に関連して上述されたコントローラ１０８の圧縮／復元コンポーネント１１２などの圧縮コンポーネント２１２に提供され得る。圧縮コンポーネント２１２は、その他の圧縮スキームの中でも、ハフマン符号化、シャノン・ファノ符号化、フィボナッチ符号化、算術符号化、および／またはイライアスガンマ符号化などの、いくつかの圧縮スキームに従ってデータを圧縮するように構成され得る。
【００２２】
本開示のいくつかの実施形態では、圧縮コンポーネント２１２は、セクタ２３０の圧縮率（例えば、セクタが圧縮可能な量）を判定し得る。いくつかの実施形態では、圧縮コンポーネント２１２は、その判定された圧縮率に従ってセクタ２３０を圧縮するように、また圧縮可能セクタ２３０に対応する圧縮レベル（ＣＬ）を（例えば、セクタ２３０が圧縮可能である場合、その圧縮率に基づいて）判定するように構成され得る。いくつかの実施形態では、圧縮コンポーネント２１２は、圧縮ヘッダ（ＣＨ）をセクタ２３０に追加し得る。圧縮ヘッダは、例えば、その他の情報の中でも、セクタ２３０が圧縮可能かどうか、セクタ２３０の圧縮率（例えば、セクタに対応する圧縮率）、圧縮されたセクタのサイズ（例えば、圧縮されたセクタに対応するデータのバイト数）、および／または圧縮されたセクタのフォーマットなどの情報を提供し得る。圧縮ヘッダは、「Ｙ」バイトのサイズを有し得、ここでＹは、例えば４Ｂであり得る。
【００２３】
図２は、セクタ２３０の異なる圧縮率に基づいて判定された、いくつかの異なる圧縮レベル２３２−Ｕ（未圧縮）、２３２−０（ＣＬ０）、２３２−１（ＣＬ１）、２３２−２（ＣＬ２）、および２３２−３（ＣＬ３）を示している。例えば、圧縮レベル２３２−Ｕは、未圧縮のセクタ２３４に対応し、未圧縮のセクタ２３４は、圧縮可能でないセクタ２３４と呼ばれ得る。未圧縮のセクタ２３４は、非圧縮可能またはごくわずかに圧縮可能なデータを含むＸバイトのセクタ２３０（例えば、圧縮可能ではないＸバイトのセクタ２３０、またはＸ−Ｚバイト以下に圧縮可能であるＸバイトのセクタ２３０。ここで、「Ｚ」は、論理アドレス（ＬＡ）サイズに等しく、例えば４Ｂであり得る）を表す。そのため、圧縮可能でないセクタ２３４は、受信されるセクタ２３０と同じバイト数（例えば、この場合、Ｘバイト）を含み得る。圧縮可能でないセクタ２３４はまた、圧縮ヘッダ２４０−Ｕを含み、これは、セクタ２３４に対応するその他の情報の中でも、セクタが圧縮されたデータを含まないという指標、またはセクタに関係するデータが最小閾値未満（例えば、Ｘ−Ｚバイト未満）で圧縮されているという指標を提供し得る。例として、未圧縮のセクタ２３４に対応する圧縮ヘッダ２４０−Ｕは、セクタ２３４に対応するＬＡであり得、４Ｂのサイズを有し得る。
【００２４】
図２に示されている例では、圧縮レベル２３２−０は、圧縮されたセクタ２３６−０に対応し、圧縮レベル２３２−１は、圧縮されたセクタ２３６−１に対応し、圧縮レベル２３２−２は、圧縮されたセクタ２３６−２に対応し、圧縮レベル２３２−３は、圧縮されたセクタ２３６−３に対応する。図２に示されている例では、圧縮されたセクタ２３６−０は、Ｘ−Ｚバイトおよび（Ｘ＋Ｙ）／２−Ｙ−Ｚバイトの間で圧縮可能と判定されたＸバイトセクタ２３０を表し、圧縮されたセクタ２３６−１は、（Ｘ＋Ｙ）／２−Ｙ−Ｚバイトおよび（Ｘ＋Ｙ）／４−Ｙ−Ｚバイトの間で圧縮可能と判定されたＸバイトセクタ２３０を表し、圧縮されたセクタ２３６−２は、（Ｘ＋Ｙ）／４−Ｙ−Ｚバイトおよび（Ｘ＋Ｙ）／８−Ｙ−Ｚバイトの間で圧縮可能と判定されたＸバイトセクタ２３０を表し、圧縮されたセクタ２３６−３は、（Ｘ＋Ｙ）／８−Ｙ−Ｚバイト未満またはこれと等しい値に圧縮可能と判定されたＸバイトセクタ２３０を表す。
【００２５】
圧縮されたセクタ２３６−０、２３６−１、２３６−２、および２３６−３のそれぞれは、それに対応する個々の量の「ガベージ」データ２３８−０、２３８−１、２３８−２、および２３８−３を有する。「ガベージ」データは、圧縮されたセクタ２３６−０、２３６−１、２３６−２、および２３６−３が一時的に保持されているバッファの残りの部分を指し得る。例えば、圧縮されたデータセクタ（例えば、２３６−０）が、４００バイトのデータを含み、５１２バイトのバッファに保持されている場合、ガベージデータ部分（例えば、２３８−０）は、１１２バイトのバッファの残部を占めるデータになり得る。
【００２６】
圧縮されたセクタ２３６−０、２３６−１、２３６−２、および２３６−３のそれぞれは、それに対応する個々の圧縮ヘッダ２４０−０、２４０−１、２４０−２、および２４０−３、ならびに論理アドレス２４２−０、２４２−１、２４２−２、および２４２−３を含む。圧縮ヘッダ２４０−０、２４０−１、２４０−２、および２４０−３は、例えば、４Ｂのヘッダであり得、また個々の圧縮されたセクタ２３６−０、２３６−１、２３６−２、および２３６−３に関する様々な情報を提供し得る。論理アドレス２４２−０、２４２−１、２４２−２、および２４２−３は、例えば、個々の圧縮されたセクタ２３６−０、２３６−１、２３６−２、および２３６−３に対応する、４ＢのＬＢＡであり得る。実施形態は、圧縮ヘッダ２４０−０、２４０−１、２４０−２、および２４０−３または論理アドレス２４２−０、２４２−１、２４２−２、および２４２−３に関し、特定のサイズに限定されるものではない。ＣＨサイズおよびＬＡサイズは、この例では、圧縮レベル２３２−Ｕおよび２３２−０から２３２−３に対応する圧縮率の範囲に影響し得る。
【００２７】
いくつかの実施形態では、圧縮されたセクタ２３６−０、２３６−１、２３６−２、および２３６−３ならびに未圧縮のセクタ２３４は、圧縮コンポーネント２１２による圧縮に続いて、（例えば、図１に示される暗号化コンポーネント１１４などの暗号化コンポーネントを介して）暗号化され得る。いくつかの実施形態では、圧縮ヘッダ２４０−０、２４０−１、２４０−２、２４０−３、および２４０−Ｕ、ならびに／または論理アドレス２４２−０、２４２−１、２４２−２、および２４２−３は、暗号化されないままであり得る（例えば、暗号化コンポーネントを回避され得る）。
【００２８】
図２はまた、基準セクタ２３０−Ｓおよび対応するＬＡ  ２４２−Ｓを示している。本明細書で用いられる場合、基準セクタ（例えば、２３０−Ｓ）は、圧縮コンポーネント（例えば、２１２）に提供されていないホストセクタ（例えば、２３０）を指し得る。そのため、この例では、セクタ２３０−Ｓのサイズは、５１２Ｂであり得、ＬＡ  ２４２−Ｓのサイズは、４Ｂであり得る。
【００２９】
本明細書において以下に詳述されるように、いくつかの実施形態では、いくつかの圧縮された管理ユニット（ＣＭＵ）が形成され得、これはそれぞれ、そこに割り当てられたいくつかの圧縮されたデータセグメント（例えば、圧縮されたセクタ２３６−０、２３６−１、２３６−２、および２３６−３）と、それに対応する圧縮されたデータセグメントに対応する判定された圧縮率および／または圧縮レベルに基づき得る、対応する圧縮値とを含み得る。ＣＭＵは、データページ（例えば、論理ページ）に（例えば、コントローラを介して）割り当てられ得、データページは、例えば、データページ内におけるいくつかのＣＭＵの特定の位置を示すメタデータを含み得る。いくつかの実施形態では、例えば、異なる対応する圧縮値を有するＣＭＵを含む、データページが形成され得る。
【００３０】
図３Ａおよび図３Ｂは、本開示のいくつかの実施形態による、いくつかの圧縮された管理ユニット（ＣＭＵ）の構成を示している。図３Ａおよび図３Ｂに示されている例は、いくつかのデータページ３５０、３５０−０、３５０−１、３５０−２、３５０−３、３５０−４、および３５０−５を含む。上述のように、データページは、図１のシステム１０４などのメモリシステムのデータ転送サイズを指し得る。例えば、データは、１ページずつ、メモリシステムに書込みされ得る、および／または、これから読み出しされ得る。データページは、例えば、管理ユニット量のユーザデータを格納するように構成され得る。本明細書で用いられる場合、管理ユニットは、図１に示される変換コンポーネント１１６などの変換コンポーネント（例えば、ＦＴＬ）によって管理される、特定数の（例えば、「Ｎ個の」）未圧縮のデータセグメント（例えば、ホストセクタおよび対応する論理アドレス）に対応する量のデータを指す。例として、また図３Ａに示されるように、管理ユニット（ＭＵ）３６０は、８データセグメント（例えば、８ホストセクタ３３１−１から３３１−８にそれらの８つの個々のＬＡを伴う）に対応する量のデータを備え得る。そのため、未圧縮のホストセクタサイズを５１２Ｂ、ＬＡサイズを４Ｂと仮定すると、管理ユニット量のデータ３６０は、４、１２８Ｂ（例えば、５１６Ｂ／セクタ×８セクタ）であり得る。実施形態は、特定の管理ユニットサイズに限定されるものではなく、データページは、２つ以上の管理ユニット量のデータ３６０を格納するように構成され得る。
【００３１】
図３Ａおよび図３Ｂに示されている例では、データページ３５０、３５０−０、３５０−１、３５０−２、３５０−３、３５０−４、および３５０−５のそれぞれは、１つの管理ユニット量のデータ３６０（例えば、５１２Ｂのホストセクタサイズおよび４ＢのＬＡサイズに対応する８つの５１６Ｂデータセグメント）を備える。ページ３５０−０、３５０−１、３５０−２、３５０−３、３５０−４、および３５０−５のそれぞれは、１つまたは２つ以上の圧縮された管理ユニット（ＣＭＵ）と、それに対応するメタデータとを含むペイロード部分を含む。ＣＭＵは、（例えば、図１に示される１１２などの圧縮コンポーネントを介して）圧縮を経た管理ユニット量のデータ３６０を指す。あるＭＵに対応するデータセグメント（例えば、３３１−１から３３１−８）のうちの１つまたは２つ以上は、圧縮可能でない場合もあるし、ごくわずかに圧縮される場合（例えば、図２に示される圧縮可能でないセクタ２３４）もあることから、ＣＭＵのサイズは変わり得る。例えば、ＣＭＵは、ＭＵと同じおよび／または同じぐらいのサイズを有し得る（例えば、セクタのすべてが圧縮可能でない、またはごくわずかに圧縮可能）、あるいは縮小されたサイズを有し得る（例えば、ＭＵに対応するいくつかのデータセグメントのうちの１つまたは２つ以上が圧縮可能）。そのため、管理ユニット量のデータ３６０に対応するデータページは、複数のＣＭＵを備え得る（例えば、複数のＣＭＵが、データページに割り当てられ得る）。
【００３２】
図３Ａおよび図３Ｂに示されている例では、ページ３５０、３５０−０、３５０−１、３５０−２、３５０−３、３５０−４、および３５０−５のそれぞれは、個々のメタデータ３６２、３６２−０、３６２−１、３６２−３、３６２−４、および３６２−５、ならびに個々のメタデータ３６５、３６５−０、３６５−１、３６５−３、３６５−４、および３６５−５を含む。本明細書に詳述されるように、メタデータ３６２、３６２−０、３６２−１、３６２−３、３６２−４、および３６２−５は、個々のページ内における（例えば、個々のページに割り当てられる）ＣＭＵの構成を示すトポロジーメタデータを含み得る。例として、メタデータ３６２、３６２−０、３６２−１、３６２−３、３６２−４、および３６２−５は、個々のページに対応するいくつかのＣＭＵがどのようにページ内に配置されるか、および／または個々のページに対応する個々のいくつかのＣＭＵに対応する圧縮値を示し得る。例として、メタデータ３６２、３６２−０、３６２−１、３６２−３、３６２−４、および３６２−５は、図３Ｂに示されるトポロジーメタデータ３６６および３６７などのトポロジーメタデータを含み得る。図３Ａおよび図３Ｂに示されている例では、メタデータ３６５、３６５−０、３６５−１、３６５−３、３６５−４、および３６５−５は、個々のページに対応する１つまたは２つ以上のＣＭＵに対応するエラーデータ（例えば、誤り訂正符号（ＥＣＣ）データ）を含む。実施形態は、特定の種類のエラーデータに限定されるものではなく、例えば、巡回冗長検査（ＣＲＣ）符号を含み得る。
【００３３】
図３Ａおよび図３Ｂでは、データページ３５０、３５０−０、３５０−１、３５０−２、３５０−３、３５０−４、および３５０−５は、それぞれ、いくつかのＣＭＵを含む。例として、各ＣＭＵは、（例えば、コントローラによって）そこに割り当てられた特定数の（例えば、８つの）圧縮されたセクタおよび／または未圧縮のセクタ（例えば、図２に示される圧縮されたセクタ２３６−０、２３６−１、２３６−２、２３６−３および／または未圧縮のセクタ２３４）を含み得る。そのため、各ＣＭＵは、特定数の（例えば、８つの）ＬＢＡに対応するデータを含み得る。いくつかの実施形態では、各ＣＭＵは、連続するＬＢＡに対応するデータを含み得る（例えば、ＬＢＡ０〜７に対応するデータセクタは、特定のＣＭＵに割り当てられ得、ＬＢＡ８〜１５に対応するデータセクタは、異なるＣＭＵに割り当てられ得る）。図２と関連して上述したように、圧縮レベル（例えば、未圧縮、ＣＬ０、ＣＬ１、ＣＬ２、およびＣＬ３）は、各個々のセクタについて（例えば、その圧縮率または圧縮率がないことに基づいて）判定され得る。圧縮レベルは、圧縮率の範囲を表し得る。例えば、図２に示されている例では、ＸバイトおよびＸ−Ｚバイトの間に圧縮されたセクタ（例えば、ホストセクタ２３０＋Ｚ、ここで、Ｚは、ＬＡサイズに等しい）は、非圧縮可能またはごくわずかに圧縮可能なセクタ（未圧縮）に対応し、Ｘ−Ｚバイトおよび（Ｘ＋Ｙ）／２−Ｙ−Ｚバイトの間に圧縮されたセクタは、圧縮レベルＣＬ０に対応し、（Ｘ＋Ｙ）／２−Ｙ−Ｚバイトおよび（Ｘ＋Ｙ）／４−Ｙ−Ｚバイトの間に圧縮されたセクタは、圧縮レベルＣＬ１に対応し、（Ｘ＋Ｙ）／４−Ｙ−Ｚバイトおよび（Ｘ＋Ｙ）／８−Ｙ−Ｚバイトの間に圧縮されたセクタは、圧縮レベルＣＬ２に対応し、（Ｘ＋Ｙ）／８−Ｙ−Ｚバイト未満に圧縮されたセクタは、圧縮レベルＣＬ３に対応する。いくつかの実施形態では、いくつかの圧縮レベルが設定され得る。しかしながら、実施形態は、特定数の圧縮レベルに限定されるものではない（例えば、５つ以上または３つ未満の異なる圧縮レベルおよび１つの未圧縮のレベルが有り得る）。
【００３４】
いくつかの実施形態では、各ＣＭＵは、それに対応する特定の圧縮値（例えば、ＣＶ０、ＣＶ１、ＣＶ２、およびＣＶ３、または未圧縮）を有し得る。個々のＣＭＵに対応する圧縮値は、個々のＣＭＵに割り当てられた個々の圧縮されたセクタに割り当てられた空間の量を（例えば、バイトで）示し得、また例えば、個々のＣＭＵに割り当てられた個々の圧縮されたセクタに対応する判定された圧縮レベル（例えば、ＣＬ０、ＣＬ１、ＣＬ２、およびＣＬ３、または未圧縮）に基づき得る。例えば、未圧縮のセクタサイズを５１２Ｂ、ＣＨサイズを４Ｂ、ＬＡサイズを４Ｂと仮定すると、圧縮レベルＣＬ０は、５０８Ｂおよび２５０Ｂの間の圧縮されたセクタサイズを示し得、圧縮レベルＣＬ１は、２５０Ｂおよび１２０Ｂの間の圧縮されたセクタサイズを示し得、圧縮レベルＣＬ２は、１２０Ｂおよび５６Ｂの間の圧縮されたセクタサイズを示し得、圧縮レベルＣＬ３は、５６Ｂ未満またはこれに等しい圧縮されたセクタサイズを示し得る。例として、圧縮値（例えば、ＣＶ０、ＣＶ１、ＣＶ２、およびＣＶ３、または未圧縮）は、特定の圧縮レベル（例えば、ＣＬ０、ＣＬ１、ＣＬ２、およびＣＬ３、または未圧縮）に対応する最大の圧縮されたセクタサイズに対応し得る。例えば、圧縮値ＣＶ０は、（例えば、５０８Ｂが、圧縮レベルＣＬ０に対応する最大の圧縮されたセクタサイズである状態で）特定のＣＭＵに対応する圧縮されたセクタ当たり５０８Ｂの空間割り当てを示し得る。同様に、圧縮値ＣＶ１は、（例えば、２５０Ｂが、圧縮レベルＣＬ１に対応する最大の圧縮されたセクタサイズである状態で）特定のＣＭＵに対応する圧縮されたセクタ当たり２５０Ｂの空間割り当てを示し得る。また、圧縮値ＣＶ２は、（例えば、１２０Ｂが、圧縮レベルＣＬ２に対応する最大の圧縮されたセクタサイズである状態で）特定のＣＭＵに対応する圧縮されたセクタ当たり１２０Ｂの空間割り当てを示し得、圧縮値ＣＶ３は、（例えば、５６Ｂが、圧縮レベルＣＬ３に対応する最大の圧縮されたセクタサイズである状態で）特定のＣＭＵに対応する圧縮されたセクタ当たり５６Ｂの空間割り当てを示し得る。「未圧縮」の圧縮値は、ＭＵ量のデータ（例えば、５１６Ｂ）が、５０８Ｂ以上に圧縮可能であることを示し得る。このように、いくつかの実施形態では、圧縮値（例えば、ＣＶ０、ＣＶ１、ＣＶ２、およびＣＶ３、または未圧縮）は、圧縮率に対応し得る。例えば、上記の例では、ＣＶ１は、圧縮率１／２に対応し得、ＣＶ２は、圧縮率１／４に対応し得、ＣＶ３は、圧縮率１／８に対応し得る。実施形態は、これらの例に限定されるものではない。
【００３５】
いくつかの実施形態では、ＣＭＵに対応する圧縮値（例えば、ＣＶ０、ＣＶ１、ＣＶ２、およびＣＶ３、または未圧縮）は、ＭＵ量のデータに対応する個々の番号の（例えば、Ｎの）圧縮されたセクタの圧縮の度合いが最も少ないセクタに基づいて判定され得る。例えば、ＭＵが、セクタのうちの６つが圧縮レベルＣＬ３を有し、セクタのうちの２つが圧縮レベルＣＬ２を有する状態で、８つのセクタに対応する場合（例えば、ＭＵ３６０）、圧縮値ＣＶ２が、これは圧縮レベルＣＬ２に対応するのだが、ＣＭＵに割り当てられ得る。そのため、圧縮レベルＣＬ３を有する圧縮されたセクタが５６Ｂまたはそれ未満に圧縮されているのにもかかわらず、圧縮されたセクタ当たり１２０Ｂの空間割り当てが、ＣＭＵに提供され得る。そのため、圧縮値はまた、特定のＣＭＵの空間割り当て（例えば、サイズ）を示し得る。この例では、８つの圧縮されたセクタを備え（例えば、８つのＬＢＡに対応するＣＭＵ）、圧縮値ＣＶ２を有するＣＭＵは、約１ＫＢのＣＭＵサイズを示し得る（例えば、圧縮されたセクタ当たり１２０Ｂ＋セクタ当たり４ＢのＣＨおよびセクタ当たり４ＢのＬＡ×ＣＭＵ当たり８セクタ）。実施形態は、この例に限定されるものではない。
【００３６】
図３Ａに示されている例では、ページ３５０は、圧縮値が「未圧縮」である１つのＣＭＵを含む。つまり、ページ３５０のＣＭＵは、ＭＵ量のデータ３６０に対応する未圧縮またはごくわずかに圧縮されたデータセグメントを備える。例えば、ページ３５０に対応するＭＵ３６０の「Ｎ」個のデータセグメントは、図２に関連して説明されるデータセグメント２３４などのセグメントである。図３Ａに示されている例では、ページ３５０−０は、圧縮値ＣＶ０に対応する１つのＣＭＵを含む。ページ３５０−１は、それぞれが対応する圧縮値ＣＶ１を有する２つのＣＭＵを含む。ページ３５０−２は、それぞれが対応する圧縮値ＣＶ２を有する４つのＣＭＵを含む。ページ３５０−３は、それぞれが対応する圧縮値ＣＶ３を有する８つのＣＭＵを含む。
【００３７】
ホストセクタ（例えば、図２に示されるセクタ２３０）が圧縮可能でない場合、固定ページサイズを有するページは、固定数のセクタ（例えば、それぞれが、個々の固定サイズセクタに対応する固定数のＬＢＡ）を備え得る。例えば、４ＫＢのページサイズは、８つの未圧縮のセクタ（例えば、それぞれが個々の５１２Ｂのセクタに対応する８つのＬＢＡ）を備え得る。本明細書に説明される実施形態によるデータ圧縮および管理は、特定のページサイズに対応するいくつかのセクタ（例えば、ＬＢＡ）を増加し得る、および／または異なる数のセクタを備えるデータページを提供する能力を提供し得、このことは、従来のデータ圧縮および管理システムと比べて、その他の利点の中でも、記憶容量を増加し得る、および／またはメモリシステムのスループットを改善し得る。
【００３８】
ページ３５０、３５０−０、３５０−１、３５０−２、および３５０−３のそれぞれが、４１２８Ｂのページサイズ（例えば、４ＫＢのユーザデータにＬＡデータを加える）を有し、各ＣＭＵが、８つの圧縮されたおよび／または未圧縮のセクタ（例えば、それぞれが個々の５１２Ｂのセクタに対応する８つのＬＢＡ）をそれらに対応する４ＢのＣＨおよび／または４ＢのＬＡと共に備える例を考える。この例では、ページ３５０のＣＭＵに対応する圧縮値「未圧縮」は、ＣＭＵに対応する８つのセクタには５１６Ｂが割り当てられていることを示すと仮定する（例えば、ＣＭＵに対応するセクタのそれぞれが、最大で５０８Ｂに４ＢのＣＨを加えたものに圧縮される）。そのため、ページ３５０のＣＭＵの空間割り当て（例えば、サイズ）は、４１２８Ｂ（例えば、５１６Ｂ×８の未圧縮またはごくわずかに圧縮されたセクタ）であり、ページ３５０の合計のサイズは、４１２８Ｂ（例えば、ＣＭＵ当たり４１２８Ｂ×ページ当たり１ＣＭＵ）である。この例で、圧縮値ＣＶ０は、ＣＭＵに対応する８つのセクタには５０８Ｂが割り当てられていることを示すと仮定する（例えば、ＣＭＵに対応するセクタのそれぞれが、２５０Ｂおよび５０８Ｂの間に圧縮される）。ページ３５０と同様に、ページ３５０−０のＣＭＵの空間割り当ては、４１２８Ｂであって、ページ３５０−０のサイズが４１２８Ｂであるようにする（例えば、ページ３５０は、２５０Ｂおよび５０８Ｂの間に圧縮された８つのホストセクタをセクタ当たり４ＢのＣＨおよびセクタ当たり４ＢのＬＡを加えて収容する）。図３Ａに示される例では、ページ３５０の−１の２つのＣＭＵに対応する圧縮値ＣＶ１は、個々のＣＭＵに対応する８つの圧縮されたセクタのそれぞれには２５０Ｂが割り当てられていることを示すと仮定する（例えば、圧縮されたセクタのそれぞれは、２５０Ｂまたはそれ未満に圧縮されている）。そのため、ページ３５０−１の各ＣＭＵの空間割り当て（例えば、サイズ）は、２０６４Ｂ（例えば、２５０Ｂ×８の圧縮されたセクタにセクタ当たり４ＢのＣＨおよびセクタ当たり４ＢのＬＡを加える）であり、ページ３５０−１の合計のサイズは、４１２８Ｂ（例えば、ＣＭＵ当たり２０６４Ｂ×ページ当たり２ＣＭＵ）であり、これは、４１２８Ｂのページサイズに一致する。しかしながら、ページ３５０−１は、８つのセクタを備えるページ３５０および３５０−０（例えば、未圧縮またはＣＶ０の圧縮値を有するＣＭＵを備えるページ）の２倍のセクタ（例えば、１６）を備える。この例では、ページ３５０の−２の４つに対応する圧縮値ＣＶ２は、個々のＣＭＵに対応する４つの圧縮されたセクタのそれぞれには１２０Ｂが割り当てられていることを示すと仮定する（例えば、圧縮されたセクタのそれぞれは、１２０Ｂまたはそれ未満に圧縮されている）。そのため、各ＣＭＵのサイズは、１０２４Ｂ（例えば、１２０Ｂ×８の圧縮されたセクタにセクタ当たり４ＢのＣＨおよびセクタ当たり４ＢのＬＡを加える）であって、ページ３５０−２のペイロード部分が、４０９６Ｂ（例えば、ＣＭＵ当たり１０２４Ｂ×ページ当たり４ＣＭＵ）であるようにする。これは、４１２８Ｂのページサイズをわずかに下回る。しかしながら、ページ３５０−２は、８つのセクタを備えるページ３５０および３５０−０（例えば、未圧縮またはＣＶ０の圧縮値を有するＣＭＵを備えるページ）の４倍のセクタ（例えば、３２）を備える。この例では、ページ３５０の−３の８つのＣＭＵに対応する圧縮値ＣＶ３は、個々のＣＭＵに対応する８つの圧縮されたセクタのそれぞれには５６Ｂが割り当てられていることを示すと仮定する（例えば、圧縮されたセクタのそれぞれは、５６Ｂまたはそれ未満に圧縮されている）。そのため、各ＣＭＵのサイズは、５１２Ｂ（例えば、５６Ｂ×８の圧縮されたセクタにセクタ当たり４ＢのＣＨおよびセクタ当たり４ＢのＬＡを加える）であって、ページ３５０−３のペイロード部分が、４０９６Ｂ（例えば、ＣＭＵ当たり５１２Ｂ×ページ当たり８ＣＭＵ）であるようにする。これは、４１２８Ｂのページサイズをわずかに下回る。しかしながら、ページ３５０−３は、８つのセクタを備えるページ３５０および３５０−０（例えば、未圧縮またはＣＶ０の圧縮値を有するＣＭＵを備えるページ）の８倍のセクタ（例えば、６４）を備える。
【００３９】
図３Ｂは、ページ３５０−４および３５０−５を示しており、これは、本明細書に説明される実施形態にしたがって形成され得る。図３Ｂに示されるように、ページ３５０−４および３５０−５は、異なる対応する圧縮値を有するいくつかのＣＭＵを備える。図示のように、ページ３５０−４および３５０−５のＣＭＵは、ＭＵ量のデータ３６０に等しい空間割り当てに収まる。この例では、ページ３５０−４は、圧縮値ＣＶ３を有する２つのＣＭＵ３５８−１と、圧縮値ＣＶ２を有する１つのＣＭＵ３５６−１と、圧縮値ＣＶ１を有する１つのＣＭＵ３５４−１とを含む。ページ３５０−５は、それぞれが圧縮値ＣＶ１を有する２つのＣＭＵ３５４−１を含む。
【００４０】
図３Ｂはさらに、ページ３５０−４に対応するトポロジーメタデータ３６６およびページ３５０−５に対応するトポロジーメタデータ３６７の例を示している。トポロジーメタデータは、個々のメタデータフィールド３６２−４および３６２−５の中に含められ得、また、例えば、個々のページ内でＣＭＵが構成される方法を示し得る。図３Ｂに示されている例では、トポロジーメタデータ（例えば、３６６および３６７）は、特定のページ３５０−４／３５０−５内における個々のＣＭＵの圧縮値と、どのようにＣＭＵが特定のページ内で位置付けされるかとを示し得る８ビットのパターンを備える。
【００４１】
図３Ｂに示されている例では、トポロジーメタデータ３６６は、ビットパターン「１１１０１０００」を備え、これは、ページ３５０−４内における個々のいくつかのＣＭＵ３５８−１、３５６−１、および３５４−１の特定の位置と、これらの個々のＣＭＵの圧縮値とを示し得る。同様に、トポロジーメタデータ３６７は、ビットパターン「１０００１０００」を備え、これは、ページ３５０−５内における個々のいくつかのＣＭＵ３５４−１の特定の位置と、これらの個々のＣＭＵの圧縮値とを示し得る。
【００４２】
以下に詳述されるように、いくつかの実施形態では、トポロジーメタデータ（例えば、３６６／３６７）は、（例えば、メタデータ３６２−１から３６２−５の少なくとも一部分として）対応するデータページと共に、メモリ（例えば、図１に示されるメモリデバイス１１０−１、．．．、１１０−Ｎ）に格納され得る。トポロジーメタデータは、特定のデータページ内におけるいくつかのＣＭＵの構成を判定するために、メモリから（例えば、読み出し動作に関連して）引き出され得る。
【００４３】
実施形態は、図３Ａおよび図３Ｂに関連して説明される例に限定されるものではない。例えば、図６〜図７に関連して以下に詳述されるように、いくつかの実施形態では、圧縮演算は、メモリに格納される管理ユニット量の受信データに対して行われ得、ＣＭＵは、ＭＵに対応する圧縮されたおよび／または未圧縮のデータセグメントを含み得る。ＭＵ量のデータに対応するいくつかの（例えば、Ｎ個の）データセグメント（例えば、セクタ）は、（例えば、ＣＭＵ量のデータを形成する）グループとして圧縮され得る、あるいはＮ個のセクタが、独立に圧縮されて、ＣＭＵを形成するように組み合され得る。ＣＭＵは、少なくともそのＣＭＵを備えるデータページに割り当てられ得る。ＣＭＵは、連続する量子化境界のそれぞれの間の空間割り当てが未圧縮のデータセグメントを収容可能な状態で、ページのいくつかの量子化境界のうちの１つで開始する。
【００４４】
図４は、本開示のいくつかの実施形態によるデータ圧縮および管理に対応する機能流れ図を示している。図４では、ボックス４３０は、ホストから受信されて、圧縮コンポーネント４１２に（例えば、書き込み動作に関連して）提供されるいくつかのデータセグメント（例えば、図１に示されるホスト１０２などのホストから受信されるいくつかのデータセクタ）を表している。圧縮コンポーネントは、図２に示される圧縮コンポーネント２１２または図１に示される圧縮／復元コンポーネント１１２などの圧縮コンポーネントであり得る。この例では、８つの論理アドレス（ＬＡ）に対応するデータが、圧縮コンポーネント４１２に提供される。８つのＬＡは、８つのセクタ（例えば、８つの５１２Ｂの未圧縮のホストセクタ）に対応し得、これは、管理ユニット量のデータに対応し得る。そのため、いくつかの実施形態では、また図４に示されている例では、各ＣＭＵは、ユーザデータに相当する８つのセクタ（例えば、８つの論理アドレスに対応するユーザデータ）を備え得る。いくつかの実施形態では、ＬＡは、連続する論理アドレスであって、各ＣＭＵが、例えば、８つの連続するＬＢＡに対応するセクタを備えるようにし得る。しかしながら、実施形態は、このように限定されるものではない。
【００４５】
図４に示されるように、受信データ４３０は、圧縮コンポーネント４１２によって（例えば、それらの個々の圧縮率に従って）圧縮され得、圧縮されたセクタ４３３−０から４３３−７は、個々のバッファ４１５に提供され得る。上述のように、圧縮レベルは、個々の圧縮されたセクタ４３３−０から４３３−７のそれぞれに対して判定され得る。この例では、圧縮されたセクタ４３３−０、４３３−２、４３３−３、４３３−５、４３３−６、および４３３−７は、それぞれ、圧縮レベルＣＬ３を有し、圧縮されたセクタ４３３−１および４３３−４は、それぞれ、圧縮レベルＣＬ２を有する。例として、圧縮レベルＣＬ２は、１２０Ｂおよび５６Ｂの間に圧縮されたセクタに対応し得、圧縮レベルＣＬ３は、５６Ｂまたはそれ未満に圧縮されたセクタに対応し得る。
【００４６】
８つの圧縮されたセクタ４３３−０から４３３−７（例えば、ＭＵ量の受信データに対応する圧縮されたデータ）を備えるＣＭＵ４５６が形成され得る。ＣＭＵ４５６は、圧縮されたセクタ４３３−０から４３３−７の判定された圧縮レベルおよび／または圧縮率に基づき得る圧縮値に割り当てられ得る。割り当てられた圧縮値は、例えば、いくつかのセクタ４３３−０から４３３−７の圧縮の度合いが最も少ないセクタに基づき得る。例えば、この例では、割り当てられた圧縮値はＣＶ２であり、これは、セクタ４３３−１および４３３−４の圧縮レベルＣＬ２に対応する。
【００４７】
図４に示されるように、ＣＭＵ４５６は、いくつかのＣＭＵを備えるページ４５０に割り当てられ得る。この例では、ページ４５０は、４つのＣＭＵを備える。しかしながら、上述のように、データページは、５つ以上または３つ以下のＣＭＵを備え得る。なお、この例では、圧縮値ＣＶ３を有する２つのＣＭＵが５１２Ｂに対応し得る一方で、圧縮値ＣＶ２を有するＣＭＵ４５６は、１０２４バイトに対応し得、圧縮値ＣＶ１を有するＣＭＵは、２０６４Ｂに対応し得、合計の４１１２Ｂに関し、これは、４１２８のページサイズ未満である。しかしながら、合計のページサイズと比べたＣＭＵの合計のサイズは、許容し得る圧縮ゲインを提供し得る。ページ４５０は、メモリに格納され得る（例えば、メモリセルの物理ページに書き込まれ得る）。つまり、論理ページ４５０に割り当てられたＣＭＵは、メモリのメモリセルの物理ページに格納され得る。論理ページサイズは、メモリセルの物理ページと同じである場合もあるし、異なる場合もある。
【００４８】
図５は、本開示のいくつかの実施形態によるデータ圧縮および管理に対応する機能流れ図を示している。図５に示される例は、いくつかのＣＭＵ５５５−１、５５５−２、および５５５−３と、メタデータ（ＭＥＴＡ）とを備えるページ５５０を含む。ＣＭＵ５５５−１、５５５−２、および５５５−３は、図２、図３Ａ、図３Ｂ、および図４に関連して上述したものなどのＣＭＵであり得る。図５に示されている例では、ＣＭＵ５５５−１、５５５−２、および５５５−３は、それぞれ、８つの圧縮されたデータセクタ（例えば、８つのＬＢＡに対応する圧縮されたデータ）を備える。ＣＭＵ５５５−１および５５５−２は、そこに割り当てられた対応する圧縮値ＣＶ２を有し、これは、この例では、セクタ当たりの空間割り当てが１２０Ｂであることを示す（例えば、ＣＭＵ５５５−１および５５５−２に割り当てられた各圧縮されたセクタは、１２０Ｂまたはそれ未満に圧縮される）。図５に示されるように、ＣＭＵ５５５−２は、圧縮されたセクタ５８２−０から５８２−７を備える。
【００４９】
ページ５５０のメタデータ（ＭＥＴＡ）は、トポロジーメタデータ５７４（例えば、図３Ｂに説明されるトポロジーメタデータ３６６および３６７）を含み得、これは、ページ５５０内におけるＣＭＵ５５５−１、５５５−２、および５５５−３の物理構成と、それに対応する個々の圧縮値とを示し得る。ページ５５０のメタデータ（ＭＥＴＡ）はまた、ＣＭＵインデックス５７６を含み得、これは、例えば、ページ５５０内における特定のＣＭＵ５５５−１、５５５−２、および５５５−３の開始位置を特定するために用いられ得る。
【００５０】
図５は、本開示のいくつかの実施形態にしたがって、（例えば、読み出し動作に関連して）ターゲット論理アドレスに対応するターゲットＣＭＵにアクセスする例を示している。例えば、図５に示されるブロック５７０は、ページ５６０のＣＭＵ５５５−２に対応するターゲット論理アドレス５８４に対応する読み出し要求を表している。読み出し要求は、例えば、ホスト（例えば、図１に説明されるホスト１０２）および／またはコントローラ（例えば、図１に説明されるコントローラ１０８）によって開始され得る。
【００５１】
いくつかの実施形態では、アドレス変換テーブルなどのデータ構造が、コントローラ上のメモリ（例えば、ＤＲＡＭ、ＳＲＡＭなど）に格納され得る、および／またはアドレス変換テーブルの少なくとも一部分が、コントローラが接続されるいくつかのメモリデバイス（例えば、１１０−１、．．．、１１０−Ｎ）などのメモリに格納され得る。アドレス変換テーブルは、図１に説明される変換コンポーネント１１６などの変換コンポーネントによって維持され得、論理アドレス対物理アドレスのマッピングを含み得る。
【００５２】
例えば、図５に示されている例では、マッピング５７２は、ターゲット論理アドレス５８４が割り当てられる、ページ５５０に対応する物理アドレスを示す。いくつかの実施形態では、また図５に示されるように、マッピング５７２はまた、ターゲット論理アドレス５８４に対応する特定のＣＭＵ（例えば、５５５−２）に対するオフセットインデックス（例えば、５７８）を含む。動作時、マッピング５７２によって提供される物理アドレスは、いくつかのメモリデバイスにおけるページ５５０を特定するために用いられ得る。トポロジーメタデータ５７４は、ページ５５０のメタデータ（ＭＥＴＡ）から引き出され得る。上述のように、トポロジーメタデータ５７４は、ページ５５０内におけるＣＭＵ（例えば、５５５−１、５５５−２、および５５５−３）の物理構成を示す（例えば、ページ内におけるＣＭＵの特定の位置、それに対応する圧縮値など）。マッピング５７２によって提供されるオフセットインデックスは、ページ５５０内におけるターゲットＣＭＵの開始位置を示し得る。
【００５３】
例えば、図５に示されている例では、オフセットインデックス５７８（例えば、「２」）は、ターゲットＣＭＵ５５５−２ついて、ページ５５０内における開始位置を示している。ターゲットＣＭＵ５５５−２（例えば、この例ではＣＶ２）に割り当てられた既知の圧縮値に基づいて、ターゲットＣＭＵ５５５−２に対応するセクタ（例えば、５８２−０から５８２−７）は、効果的に探索され得る。ターゲット論理アドレス５８４が特定され得、それに対応する圧縮されたデータ５８２−３が、ホストに転送されて、読み出し要求５７０に対応する読み出し動作を完了し得る。いくつかの実施形態では、ターゲット論理アドレス（例えば、５８４）に対応する圧縮されたデータ（例えば、５８２−３）は、ホストに転送する前に、（例えば、図１に示される圧縮／復元コンポーネント１１２などの圧縮／復元コンポーネントを介して）復元され得る。
【００５４】
図６Ａは、本開示のいくつかの実施形態による管理ユニット６６０を示している。上述のように、管理ユニット（ＭＵ）は、いくつかの未圧縮のデータセグメント（例えば、セクタ）に対応する量のデータ（例えば、サイズ）を指し得る。圧縮演算は、データセグメントに相当するＭＵ上で行われて、ＣＭＵを形成し得る。上述のように、ＭＵに対応するデータセグメントの数（例えば、Ｎ個）は、例えば、８つであり得、圧縮演算を介して圧縮可能またはそうでない場合もあって、１つまたは２つ以上のＣＭＵが、ＭＵに対応する空間割り当てに収まるようにする。例えば、ＭＵ６６０に対応する「Ｎ」個のセクタが圧縮可能でない場合、またはごくわずかに圧縮可能である場合、「Ｎ」個のセクタを備える１つのＣＭＵだけが、ＭＵ６６０に対応する空間割り当てに収まる。
【００５５】
例として、ＭＵ６６０は、８つの未圧縮の５１２Ｂのホストセクタ（例えば、４ＫＢ）に等しい空間割り当てを表し得る。いくつかの実施形態では、また図６Ａに示されるように、ＭＵ（例えば、６６０）に対応する空間割り当ては、「Ｎ」個のセクタ（例えば、８つの５１２Ｂのセクタ）に対応するいくつかの量子化された空間割り当て（例えば、６７１−１から６７１−８）に分割され得る。そのため、図６Ａに示されるＭＵ６６０は、個々の空間割り当て６７１−１から６７１−８に対応するいくつかの量子化境界６７３−１から６７３−８を含む。したがって、それぞれの連続する量子化境界６７３−１から６７３−８の間の空間割り当ては、未圧縮のセクタを収容することができる。
【００５６】
図６Ｂは、本開示のいくつかの実施形態による、いくつかのデータページ６５０−１および６５０−２に割り当てられたいくつかのＣＭＵ６６１−１、６６１−２、６６１−３、６６１−４を示している。いくつかの実施形態では、ページは、ＭＵがＮ（例えば、８）個の未圧縮のセクタに対応する状態で、ＭＵ量のデータ６６０を収容し得る。例えば、図６Ｂに示されるように、ページ６５０−１は、ＭＵ量のデータ６６０を収容し得、ページ６５０−２は、ＭＵ量のデータ６６０を収容し得る。この例では、ページ６５０−１および６５０−２は、個々のページ内におけるＣＭＵの物理構成を示し得るメタデータ（例えば、６６２−１および６６２−２）と、ページに対応するＥＣＣデータなどのエラーデータ（例えば、６６５−１）とを含む。
【００５７】
上述のように、ＣＭＵ６６１−１、６６１−２、６６１−３、および６６１−４のそれぞれは、ＭＵ量のデータ（例えば、Ｎセクタ。ここで、例えばＮは８であり得る）に対応し得る。ページに割り当てられた各ＣＭＵは、８つの圧縮されたまたは未圧縮のセクタに対応するユーザデータを含み得る。例として、ＣＭＵ６６１−１から６６１−４のそれぞれは、８つの圧縮されたセクタに対応するユーザデータを含む（例えば、Ｎは８に等しい）。
【００５８】
いくつかの実施形態では、また図６Ｂに示されるように、ページのＣＭＵのそれぞれは、ページのいくつかの量子化境界のうちの１つで開始する。図６Ｂに示されるように、ページの量子化境界は、ＭＵ（例えば、６６０）に関係する量子化された空間割り当てに対応し得る。いくつかの実施形態では、ページのＣＭＵはまた、ページの量子化境界で終了する。しかしながら、ＣＭＵは、第１のページ（例えば、６５０−１）の量子化境界で開始して異なるページ（例えば、６５０−２）の量子化境界で終了する場合もある。
【００５９】
図６Ｂの例では、ページ６５０−１および６５０−２は、ＭＵ６６０に関係する８つの個々の空間割り当て６７１−１から６７１−８に対応する８つの量子化境界６７３−１から６７３−８を含む。ＣＭＵ６６１−１は、ページ６５０−１の量子化境界６７３−１で開始し、境界６７３−３で終了して、２つの空間割り当てにわたるようにする。この例では、ＣＭＵ６６１−１に対応するユーザデータは、丸２つの空間割り当て未満の量に圧縮される。そのため、ＣＭＵ６６１−１は、ある量のガベージデータ６７５−１を備え、これは、ＣＭＵ６６１−１に対応するバッファ（図示せず）に入れるために用いられ得る。ＣＭＵ６６１−２は、ページ６５０−１の量子化境界６７３−３で開始し、境界６７３−４で終了して、１つの空間割り当てに広がるようにする。この例では、ＣＭＵ６６１−２に対応するユーザデータは、丸１つの空間割り当て未満の量に圧縮される。そのため、ＣＭＵ６６１−２は、ある量のガベージデータ６７５−２を備える。ＣＭＵ６６１−３は、ページ６５０−１の量子化境界６７３−４で開始し、境界６７３−８で終了して、丸４つの空間割り当てにわたるようにする。この例では、ＣＭＵ６６１−３に対応するユーザデータは、丸４つの空間割り当て未満の量に圧縮される。そのため、ＣＭＵ６６１−３は、ある量のガベージデータ６７５−３を備える。ＣＭＵ６６１−４は、ページ６５０−１の量子化境界６７３−８で開始し、ページ６５０−２の境界６７３−２で終了して、２つの空間割り当てにわたるようにする。この例では、ＣＭＵ６６１−４に対応するユーザデータは、丸２つの空間割り当て未満の量に圧縮される。そのため、ＣＭＵ６６１−４は、ある量のガベージデータ６７５−４を備える。
【００６０】
ＣＭＵ６６１−１から６６１−４のそれぞれは、個々のメタデータフィールド６６３−１から６６３−４を含む。メタデータフィールド６６３−１から６６３−４は、例えば、対応するＣＭＵのサイズ（例えば、長さ）、次のＣＭＵの開始位置、および／またはＣＭＵに関係するその他の情報を示し得る。いくつかの実施形態では、ＣＭＵ（例えば、６６１−１から６６１−４）は、別個の個々のメタデータフィールドを含まない場合がある、またはメタデータフィールド（例えば、６６３−１から６６３−４）は、対応するＣＭＵの始まり以外の位置に配置される場合がある。
【００６１】
図６Ｃは、本開示のいくつかの実施形態によるデータ１ページ６５０−３に割り当てられたいくつかのＣＭＵ６６１−１から６６１−８を示している。ページ６５０−３は、８つの未圧縮のセクタに対応する量のデータなど、ＭＵ量のデータ６６０を収容し得る。この例では、ページ６５０−３は、ページ内におけるＣＭＵの物理構成を示し得るメタデータ６６２−３と、ページに対応するＥＣＣデータなどのエラーデータ６６５−３とを含む。
【００６２】
上述のように、ＣＭＵ６６１−１から６６１−８のそれぞれは、８つのセクタに対応し得る（例えば、ＭＵ６６０が、８つのセクタに対応するＬＡを加えたものと等しい量のデータに対応すると仮定する）。そのため、ページ６５０−３に割り当てられた各ＣＭＵ６６１−１から６６１−８は、８つの圧縮されたまたは未圧縮のセクタに対応するユーザデータを含み得る。この例では、ＣＭＵ６６１−１から６６１−８のそれぞれは、８つの圧縮されたセクタに対応するユーザデータを含む（例えば、Ｎは８に等しく、ＣＭＵのそれぞれは、圧縮可能であった８つのホストセクタに対応する）。
【００６３】
図６Ｃに示される実施形態では、ページ６５０−３のＣＭＵ６６１−１から６６１−８のそれぞれは、ページのいくつかの量子化境界６７３−１から６７３−８のうちの１つで開始する。この例では、ページ６５０−３は、ＭＵ６６０に関係する８つの個々の空間割り当て６７１−１から６７１−８に対応する８つの量子化境界６７３−１から６７３−８を含む。図６Ｃに示されている例では、ＣＭＵ６６１−１から６６１−８のそれぞれは、圧縮可能なユーザデータを含んで、ユーザデータが、８つの量子化境界６７３−１から６７３−８の連続する境界の間に収まるようにする（例えば、ＣＭＵ６６１−１から６６１−８のそれぞれは、図６Ａに示される８つの空間割り当て６７１−１から６７１−３の単一の空間割り当てに収まる）。ＣＭＵ６６１−１は、ページ６５０−３の量子化境界６７３−１で開始して境界６７３−２で終了し、ある量のガベージデータ６７５−１を備え、これは、ＣＭＵ６６１−１に対応するバッファ（図示せず）に入れるために用いられ得る。ＣＭＵ６６１−２は、ページ６５０−３の量子化境界６７３−２で開始して境界６７３−３で終了し、ある量のガベージデータ６７５−２を備える。ＣＭＵ６６１−３は、ページ６５０−３の量子化境界６７３−３で開始して境界６７３−４で終了し、ある量のガベージデータ６７５−３を備える。ＣＭＵ６６１−４は、ページ６５０−３の量子化境界６７３−４で開始して境界６７３−５で終了し、ガベージデータはなんら持たない。ＣＭＵ６６１−５は、ページ６５０−３の量子化境界６７３−５で開始して境界６７３−６で終了し、ある量のガベージデータ６７５−５を備える。ＣＭＵ６６１−６は、ページ６５０−３の量子化境界６７３−６で開始して境界６７３−７で終了し、ガベージデータはなんら持たない。ＣＭＵ６６１−７は、ページ６５０−３の量子化境界６７３−７で開始して境界６７３−８で終了し、ある量のガベージデータ６７５−７を備える。ＣＭＵ６６１−８は、ページ６５０−３の量子化境界６７３−８で開始し、空間割り当て６７１−８に広がり、ある量のガベージデータ６７５−８を備える。
【００６４】
ページ６５０−３のＣＭＵ６６１−１から６６１−８のそれぞれは、個々のメタデータフィールド６６３−１から６６３−８を含む。メタデータフィールド６６３−１から６６３−８は、例えば、対応するＣＭＵのサイズ（例えば、長さ）、次のＣＭＵの開始位置、および／またはＣＭＵに関係するその他の情報を示し得る。いくつかの実施形態では、ＣＭＵ（例えば、６６１−１から６６１−８）は、別個の個々のメタデータフィールドを含まない場合がある、またはメタデータフィールド（例えば、６６３−１から６６３−４）は、対応するＣＭＵの始まり以外の位置に配置される場合がある。
【００６５】
図７は、本開示のいくつかの実施形態によるデータ圧縮および管理に対応する機能流れ図を示している。図７では、ボックス７３０は、ホストから受信されて、圧縮コンポーネント７１２に（例えば、書き込み動作に関連して）提供されるいくつかのデータセグメント（例えば、図１に示されるホスト１０２などのホストから受信されるいくつかのデータセクタ）を表している。圧縮コンポーネント７１２は、図２に示される圧縮コンポーネント２１２または図１に示される圧縮／復元コンポーネント１１２などの圧縮コンポーネントであり得る。この例では、Ｎ個の論理アドレス（例えば、８つの論理アドレス（ＬＡ））に対応するＭＵ量のデータ（例えば、８セクタ）が、圧縮コンポーネント７１２に提供される。Ｎ個のＬＡは、Ｎ個の５１２Ｂの未圧縮のホストセクタに対応し得、これは、ＭＵ量のデータに対応し得る。
【００６６】
圧縮コンポーネント７１２は、受信したＭＵに対応するＮ個のセクタを圧縮し得（セクタのうちの１つまたは２つ以上が圧縮可能である場合）、このことが、圧縮された管理ユニット（ＣＭＵ）を形成する。そのため、いくつかの実施形態では、ＣＭＵは、ユーザデータに相当するＮ個のセクタ（例えば、Ｎ個の論理アドレスに対応するユーザデータ）を備え得る。いくつかの実施形態では、圧縮コンポーネント７１２によって受信されたＭＵに対応するＮ個の未圧縮のデータセクタは、独立に圧縮され得（例えば、個々の圧縮率に従って）、組み合わされてＣＭＵを形成する。しかしながら、実施形態は、このように限定されるものではない。例えば、いくつかの実施形態では、圧縮コンポーネント７１２によって受信されたＭＵに対応するＮ個の未圧縮のセクタのグループがまとめて圧縮されて、ＣＭＵを形成し得る。
【００６７】
いくつかの実施形態では、また図７に示されるように、圧縮コンポーネント７１２によって形成されたＣＭＵは、データページ（例えば、ページ７５０）に割り当てられ得る。上述のように、データページは、いくつかのＣＭＵを備え得る。いくつかの実施形態では、ＣＭＵは、ページ７５０に対応するいくつかの量子化境界（例えば、７７３−１から７７３−８）のうちの１つで開始し得る。連続する境界７７３−１から７７３−８の間の空間割り当ては、例えば、未圧縮のセクタを収容するようなサイズになされ得る。
【００６８】
この例では、ページ７５０は、メタデータ７６２を含み、これは、例えば、ページ７５０内におけるＣＭＵの物理構成などの情報を提供し得る。ページ７５０はまた、ＣＭＵメタデータ７６３を含み、これは、ページ７５０に割り当てられた特定のＣＭＵに関する情報を提供し得る。例として、メタデータ７６３は、その他の情報の中でも、特定のＣＭＵのサイズ（例えば、長さ）および／または特定のＣＭＵに対応する論理アドレス情報を示し得る。
【００６９】
結論
本開示は、データ圧縮および管理のための装置および方法を含む。いくつかの方法は、管理ユニット量のデータに対応するいくつかのデータセグメントを受信するステップと、いくつかのデータセグメントのそれぞれについて個々の圧縮率を判定するステップと、その個々の判定された圧縮率に従って、いくつかのデータセグメントのそれぞれを圧縮するステップと、管理ユニット量のデータに対応するいくつかのデータセグメントに対応する圧縮された、および／または未圧縮のデータセグメントを含む圧縮された管理ユニットを形成するステップと、少なくとも圧縮された管理ユニットを備えるデータページを形成するステップとを含む。
【００７０】
本明細書において特定の実施形態を図示および説明してきたが、当業者であれば、示された特定の実施形態に対して、同じ結果を得るように考案された構成を置き換え得ることを理解する。本開示は、本開示の１つまたは２つ以上の実施形態の適用または変形を包含するように意図されている。上記の説明が、例示的な方法でなされたものであり、制限的な方法でなされたものではないことを理解されたい。上記の実施形態の組み合わせ、および、本明細書に具体的に記載されていないその他の実施形態は、上の説明を検討すれば、当業者には自明である。本開示の１つまたは２つ以上の実施形態の範囲は、上記の構造および方法が用いられるその他の用途を含む。したがって、本開示の１つまたは２つ以上の実施形態の範囲は、添付の特許請求の範囲を基準に、そのような特許請求の範囲が権利範囲に含む均等物の全範囲と共に、定められるべきである。
【００７１】
上記の詳細な説明では、一部の特徴は、本開示を合理化するために単一の実施形態にまとめてある。この開示方法は、本開示の開示されている実施形態が、各請求項に明示的に列挙されている特徴よりも多くの特徴を使用しなければならないという意図を反映するものとして解釈されるべきではない。そうではなく、以下の特許請求の範囲が反映するように、発明の主題は、単一の開示された実施形態の一部の特徴にある。したがって、以下の特許請求の範囲は、ここに、各請求項が別個の実施形態としてそれ自体で成立している状態で、詳細な説明に組み込まれる。
【図６Ａ】
2015525423.tif 000003
【図６Ｂ】
2015525423.tif 000004
【図６Ｃ】
2015525423.tif 000005
【図１】
2015525423.tif 000006
【図２】
2015525423.tif 000007
【図３Ａ】
2015525423.tif 000008
【図３Ｂ】
2015525423.tif 000009
【図４】
2015525423.tif 000010
【図５】
2015525423.tif 000011
【図７】
2015525423.tif 000012
【手続補正書】
【提出日】平成27年1月27日(2015.1.27)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
メモリの動作方法であって、前記方法が、
管理ユニット量のデータに対応するいくつかのデータセグメントを受信することと、
前記いくつかのデータセグメントのそれぞれについて個々の圧縮率を判定することと、
その個々の判定された圧縮率に従って、前記いくつかのデータセグメントのそれぞれを圧縮することと、
前記管理ユニット量のデータに対応する前記いくつかのデータセグメントに対応する圧縮されたデータセグメントおよび未圧縮のデータセグメントの両方、またはいずれか一方を含む圧縮された管理ユニットを形成することと、
少なくとも前記圧縮された管理ユニットを備えるデータページを形成することと
を備える、メモリの動作方法。
【請求項２】
前記いくつかのデータセグメントが、第１のいくつかのデータセグメントであり、また前記圧縮された管理ユニットが、第１の圧縮された管理ユニットであり、前記方法が、
前記管理ユニット量のデータに対応する第２のいくつかのデータセグメントを受信することと、
前記第２のいくつかのデータセグメントのそれぞれについて個々の圧縮率を判定することと、
その個々の判定された圧縮率に従って、前記第２のいくつかのデータセグメントのそれぞれを圧縮することと、
前記管理ユニット量のデータに対応する前記第２のいくつかのデータセグメントに対応する圧縮されたデータセグメントおよび未圧縮のデータセグメントの両方、またはいずれか一方を含む第２の圧縮された管理ユニットを形成することと、
少なくとも前記第１および前記第２の圧縮された管理ユニットを備えるように前記データページを形成することと
を含む、請求項１に記載の方法。
【請求項３】
前記圧縮された管理ユニットを形成することが、前記圧縮された管理ユニットのための圧縮値を判定することを含む、請求項１または２に記載の方法。
【請求項４】
前記圧縮された管理ユニットのための圧縮値を判定することが、前記圧縮された管理ユニットの前記データセグメントについて圧縮の度合いが最も少ないものを判定することを含む、請求項３に記載の方法。
【請求項５】
前記ページを形成することが、異なる判定された圧縮値を有する少なくとも２つの圧縮された管理ユニットを含むページを形成することをさらに備える、請求項３に記載の方法。
【請求項６】
前記データページを前記メモリに格納することをさらに備え、前記データページが、
少なくとも前記圧縮された管理ユニットと、
前記ページ内における前記圧縮された管理ユニットの特定の位置を示すメタデータと
を含む、請求項１〜５のいずれか１項に記載の方法。
【請求項７】
前記いくつかのデータセグメントのそれぞれについて、その判定された圧縮率に基づいて、個々の圧縮レベルを判定することを含み、圧縮された管理ユニットを形成することが、異なる判定された圧縮レベルを有するデータセグメントを含む圧縮された管理ユニットを形成することをさらに備える、請求項１〜５のいずれか１項に記載の方法。
【請求項８】
前記ページを形成することが、それぞれが同じ数のデータセグメントを含む少なくとも２つの圧縮された管理ユニットを有するページを形成することを備える、請求項１〜５のいずれか１項に記載の方法。
【請求項９】
その個々の判定された圧縮率に従って、前記いくつかのデータセグメントのそれぞれを圧縮することが、前記いくつかのデータセグメントのうちの特定の１つを、前記データセグメントのうちの前記特定の１つが圧縮可能でないと判定された場合に圧縮しないことを含む、請求項１〜５のいずれか１項に記載の方法。
【請求項１０】
前記いくつかのデータセグメントが、対応するいくつかの論理アドレスと共にホストから受信された未圧縮のデータセクタであり、前記管理ユニット量のデータが、Ｎ個の論理アドレスを伴う未圧縮のデータのＮ個のセクタに対応し、前記Ｎ個の論理アドレスを伴う未圧縮のデータのＮ個のセクタが、前記ページに収まり、前記ページを形成することが、少なくとも２つの圧縮された管理ユニットを、前記少なくとも２つの圧縮された管理ユニットのそれぞれが前記Ｎ個の論理アドレスを伴うＮ個の圧縮されたおよび／または未圧縮のデータセクタに対応する状態で含むページを形成することをさらに備える、請求項１〜５のいずれか１項に記載の方法。
【請求項１１】
装置であって、
データページを格納するメモリであって、前記データページが、前記データページ内におけるいくつかの圧縮された管理ユニットの物理構成を示すメタデータを含む、メモリを備え、
前記圧縮された管理ユニットのそれぞれが、それに対応するいくつかの圧縮されたデータセグメントの圧縮レベルに少なくとも部分的に基づく個々の圧縮値を有し、
個々の圧縮された管理ユニットに対応する前記いくつかの圧縮されたデータセグメントのそれぞれが、個々の論理アドレスおよびそれに対応する圧縮ヘッダを有する、
装置。
【請求項１２】
前記メモリに接続されるコントローラをさらに備え、前記コントローラが、変換コンポーネントを含んで、前記データページの物理アドレスと、ターゲット論理アドレスに対応するターゲットの圧縮された管理ユニットの前記データページ内における位置とを示すマッピングを提供する、請求項１１に記載の装置。
【請求項１３】
前記コントローラが、前記ターゲットの圧縮された管理ユニットに対応する前記圧縮値に少なくとも部分的に基づいて、前記ターゲットの圧縮された管理ユニットを探索することによって、前記ターゲット論理アドレスに対応する特定の圧縮されたデータセグメントを特定することを制御するように構成される、請求項１２に記載の装置。
【請求項１４】
装置であって、
いくつかのメモリデバイスを備えるメモリと、
前記いくつかのメモリデバイスに接続されるコントローラであって、かつ、
前記メモリに格納されるデータを受信することと、
管理ユニット量の前記受信データに対して圧縮演算を実行することであって、前記管理ユニット量が、いくつかの（Ｎ個の）未圧縮のデータセグメントであることと、
前記Ｎ個のデータセグメントに対応する圧縮されたデータセグメントおよび未圧縮のデータセグメントの両方、またはいずれか一方を含む第１の圧縮された管理ユニットを形成することと、
少なくとも前記第１の圧縮された管理ユニットを備えるデータページを形成することであって、前記第１の圧縮された管理ユニットが、前記ページのいくつかの量子化境界のうちの１つで開始し、前記連続する量子化境界のそれぞれの間の空間割り当てが、未圧縮のデータセグメントを収容可能であることと
を制御するように構成されるコントローラと
を備える装置。
【請求項１５】
前記ページの前記量子化境界の数がＮ個であり、前記第１の圧縮された管理ユニットが、前記Ｎ個の量子化境界のうちの少なくとも２つにわたる、請求項１４に記載の装置。
【国際調査報告】
2015525423.tif 000013
2015525423.tif 000014