JP2015525423A - データ圧縮および管理 - Google Patents

データ圧縮および管理 Download PDF

Info

Publication number
JP2015525423A
JP2015525423A JP2015518612A JP2015518612A JP2015525423A JP 2015525423 A JP2015525423 A JP 2015525423A JP 2015518612 A JP2015518612 A JP 2015518612A JP 2015518612 A JP2015518612 A JP 2015518612A JP 2015525423 A JP2015525423 A JP 2015525423A
Authority
JP
Japan
Prior art keywords
data
compressed
management unit
page
data segments
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
JP2015518612A
Other languages
English (en)
Other versions
JP6096291B2 (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 JP2015525423A publication Critical patent/JP2015525423A/ja
Application granted granted Critical
Publication of JP6096291B2 publication Critical patent/JP6096291B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/60General implementation details not specific to a particular type of compression
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0661Format or protocol conversion arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/60General implementation details not specific to a particular type of compression
    • H03M7/6064Selection of Compressor
    • H03M7/6082Selection strategies

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

本開示は、データ圧縮および管理のための装置および方法を含む。いくつかの方法は、管理ユニット量のデータに対応するいくつかのデータセグメントを受信するステップと、いくつかのデータセグメントのそれぞれについて個々の圧縮率を判定するステップと、その個々の判定された圧縮率に従って、いくつかのデータセグメントのそれぞれを圧縮するステップと、管理ユニット量のデータに対応するいくつかのデータセグメントに対応する圧縮された、および/または未圧縮のデータセグメントを含む圧縮された管理ユニットを形成するステップと、少なくとも圧縮された管理ユニットを備えるデータページを形成するステップとを含む。【選択図】図4

Description

本開示は、概して、半導体メモリおよび方法に関し、より詳細には、データ圧縮および管理のための装置および方法に関する。
メモリデバイスは、一般に、コンピュータまたはその他の電子機器の内部の半導体集積回路として提供される。揮発性メモリおよび不揮発性メモリを含む多くの異なる種類のメモリが存在する。揮発性メモリは、そのデータを維持するために電力を要し、中でも、ランダムアクセスメモリ(RAM)、ダイナミックランダムアクセスメモリ(DRAM)、および同期型ダイナミックランダムアクセスメモリ(SDRAM)を含む。不揮発性メモリは、非通電でも格納したデータを保持することによって、永続的なデータを提供し得、中でも、NANDフラッシュメモリ、NORフラッシュメモリ、読み出し専用メモリ(ROM)、電気的消去可能プログラマブルROM(EEPROM)、消去可能プログラマブルROM(EPROM)、ならびに相変化ランダムアクセスメモリ(PCRAM)、抵抗ランダムアクセスメモリ(RRAM(登録商標))、および磁気抵抗ランダムアクセスメモリ(MRAM)などの可変抵抗メモリを含み得る。
メモリデバイスは、まとめて組み合されて、ソリッドステートドライブ(SSD)などのメモリシステムの記憶ボリュームを形成し得る。ソリッドステートドライブは、様々なその他の種類の不揮発性メモリおよび揮発性メモリの中でも、不揮発性メモリ(例えば、NANDフラッシュメモリおよびNORフラッシュメモリ)を含み得る、および/または揮発性メモリ(例えば、DRAMおよびSRAM)を含み得る。
SSDは、コンピュータの主記憶ボリュームとしてハードディスクドライブの代わりに用いられ得る。それは、ソリッドステートドライブが、性能、寸法、重量、耐久性、動作温度範囲、および電力消費の面でハードドライブに勝る利点を有し得るためである。例えば、SSDは、可動部を持たないために、磁気ディスクドライブと比べた場合に優れた性能を有し得る。可動部を持たないことにより、シークタイム、待ち時間、および磁気ディスクドライブに関係するその他の電気機械的遅延を回避し得る。SSD製造業者は、不揮発性フラッシュメモリを用いて、内部電池供給を用いないであろうフラッシュSSDを作ることができ、そうして、ドライブをより汎用的でコンパクトなものにし得る。
SSDは、ホストから読み出しおよび書き込み動作などのメモリ動作に関するコマンドを受信して、データを(例えば、メモリデバイスとホストとの間で)転送し得る。例えば、SSDに関係するスループットを高めること、および/またはSSDの記憶容量を増加することは有益であり得る。
本開示のいくつかの実施形態による少なくとも1つのメモリシステムを含むコンピューティングシステムの形を取る装置のブロック図である。 本開示のいくつかの実施形態によるデータ圧縮を示すブロック図である。 本開示のいくつかの実施形態による、いくつかの圧縮された管理ユニットの構成を示す図である。 本開示のいくつかの実施形態による、いくつかの圧縮された管理ユニットの構成を示す図である。 本開示のいくつかの実施形態によるデータ圧縮および管理に対応する機能流れ図である。 本開示のいくつかの実施形態によるデータ圧縮および管理に関係する機能流れ図である。 本開示のいくつかの実施形態による管理ユニットを示す図である。 本開示のいくつかの実施形態による、いくつかのデータページに割り当てられたいくつかのCMUを示す図である。 本開示のいくつかの実施形態によるデータ1ページに割り当てられたいくつかのCMUを示す図である。 本開示のいくつかの実施形態によるデータ圧縮および管理に対応する機能流れ図である。
本開示は、データ圧縮および管理のための装置および方法を含む。いくつかの方法は、管理ユニット量のデータに対応するいくつかのデータセグメントを受信するステップと、いくつかのデータセグメントのそれぞれについて個々の圧縮率を判定するステップと、その個々の判定された圧縮率に従って、いくつかのデータセグメントのそれぞれを圧縮するステップと、管理ユニット量のデータに対応するいくつかのデータセグメントに対応する圧縮された、および/または未圧縮のデータセグメントを含む圧縮された管理ユニットを形成するステップと、少なくとも圧縮された管理ユニットを備えるデータページを形成するステップとを含む。
いくつかの方法は、データページをメモリに格納するステップを含み、データページは、データページ内におけるいくつかの圧縮された管理ユニットの物理構成を示すメタデータを含む。いくつかの圧縮された管理ユニットのそれぞれは、管理ユニット量のデータに対応し、管理ユニット量のデータは、いくつかの(N個の)未圧縮のデータセグメントに対応し、圧縮された管理ユニットのそれぞれは、ページのいくつかの量子化境界のうちの1つで開始し、各連続する量子化境界の間の空間割り当ては、未圧縮のデータセグメントを収容することができる。
本開示の以下の詳細な説明では、本開示の一部分を形成し、例としてどのように本開示の1つまたは2つ以上の実施形態が実行され得るかを示している、添付の図面を参照する。これらの実施形態は、当業者が、本開示の実施形態を実施できるように十分に詳しく記載される。そして、本開示の範囲から逸脱せずに、その他の実施形態が使用され得ること、またプロセス上の、電気的な、および/または構造的な変更がなされ得ることが理解されるべきである。本明細書で用いられる場合、表記「N」は、特に、図面の参照番号に関しては、そのように表記されるいくつかの特定の特徴が含まれ得ることを示す。本明細書で用いられる場合、「いくつかの(a number of)」特定の事物は、そのような事物の1つまたは2つ以上を指し得る(例えば、いくつかのメモリデバイスは、1つまたは2つ以上のメモリデバイスを指し得る)。
本明細書の図は、最初の数字(digit or digits)が図面の図番号に対応し、残りの数字が図面中の要素または部品を特定する番号付け規則に従う。異なる図の間における類似の要素またはコンポーネントは、類似の数字を使用することによって特定され得る。例えば、230は、図2の要素「30」を指し得、また図4において、類似の要素を430として指すこともある。理解されるように、本明細書の様々な実施形態において示される要素は、本開示のいくつかのさらなる実施形態を提供するように、追加、交換、および/または省略が行われ得る。さらに、理解されるように、図示の要素の比率および相対的な大きさは、本発明の特定の実施形態を説明することを意図しており、限定的な意味で解釈されるべきではない。
図1は、本開示のいくつかの実施形態による少なくとも1つのメモリシステム104を含むコンピューティングシステム100の形を取る装置のブロック図である。本明細書で用いられる場合、メモリシステム104、コントローラ108、またはメモリデバイス110はまた、単独で「装置」とみなされ得る。メモリシステム104は、例えば、ソリッドステートドライブ(SSD)であり得、ホストインターフェース106と、コントローラ108(例えば、プロセッサおよび/またはその他の制御回路)と、メモリシステム104に記憶ボリュームを提供する、いくつかのメモリデバイス110−1、...、110−N(例えば、NANDフラッシュデバイスなどのソリッドステートメモリデバイス)とを含み得る。
図1に示されるように、コントローラ108は、複数のチャネルを介して、ホストインターフェース106およびメモリデバイス110−1、...、110−Nに接続され得、メモリシステム104とホスト102との間でデータを転送するのに用いられ得る。インターフェース106は、標準インターフェースの形態であり得る。例えば、メモリシステム104が、コンピューティングシステム100においてデータ記憶に使用される場合、インターフェース106は、その他のコネクタおよびインターフェースの中でも、シリアルアドバンストテクノロジーアタッチメント(SATA)、周辺構成要素相互接続エクスプレス(PCIe)、またはユニバーサルシリアルバス(USB)であり得る。しかしながら、一般的に、インターフェース106は、メモリシステム104と、インターフェース106に互換性があるレセプタを有するホスト102との間で制御信号、アドレス信号、データ信号、およびその他の信号を受け渡しするためのインターフェースを提供し得る。
ホスト102は、様々なその他の種類のホストの中でも、ノート型パーソナルコンピュータ、デスクトップコンピュータ、デジタルカメラ、携帯電話、またはメモリカードリーダなどのホストシステムであり得る。ホスト102は、システムマザーボードおよび/またはバックプレーンを含み得、いくつかのメモリアクセスデバイス(例えば、いくつかのプロセッサ)を含み得る。
コントローラ108は、メモリデバイス110−1、...、110−Nと通信して、その他の動作の中でも、データの読み出し、書き込み、および消去の動作を制御し得る。コントローラ108は、例えば、ハードウェアおよび/もしくはファームウェア(例えば、1つまたは2つ以上の集積回路)の形態、ならびに/またはいくつかのメモリデバイス110−1、...、110−Nに対するアクセスを制御するため、および/もしくはホスト102とメモリデバイス110−1、...、110−Nとの間におけるデータ転送を助けるためのソフトウェアの形態で、いくつかのコンポーネントを含み得る。例えば、図1に示されている例では、コントローラ108は、圧縮/復元コンポーネント112(例えば、圧縮/復元エンジン)と、暗号化コンポーネント114と、変換コンポーネント116と、バッファ管理コンポーネント118とを含む。
圧縮/復元コンポーネント112は、本明細書に説明されるいくつかの実施形態によって、データを圧縮および/または復元するために用いられ得る。暗号化コンポーネント114は、例えば、高度暗号化標準(AES)などの暗号化仕様に従って、データを暗号化および/または復号するために用いられ得る。変換コンポーネント116は、例えば、ホスト102から受信されたコマンドを、いくつかのメモリデバイス110−1、...、110−Nに対して所望通りにアクセスするのに適切なコマンドに変換することに関連して用いられ得る。例えば、ホスト102は、メモリシステム104をアドレス指定する場合、論理アドレス(例えば、論理ブロックアドレス(LBA))を用い得る。変換コンポーネント116は、論理アドレスからメモリデバイス110−1、...、110−Nにおける物理的位置(例えば、物理アドレス)にマッピングを提供し得、逆の場合も同じである(例えば、フラッシュ変換レイヤ(FTL)の一部分として)。このようなアドレスマッピングは、変換コンポーネント116によって、例えば、テーブルなどのデータ構造の形態で提供され得、ホスト102が、メモリデバイス110−1、...、110−Nの物理的特性を無視できるようにし得、その結果、メモリシステム104の記憶ボリュームが、論理データセグメント(例えば、セクタ)の連続的な線形のマップとして扱われる。
コントローラ108は、様々なその他のコンポーネントの中でも、バッファ管理コンポーネント118などのその他のコンポーネントを含み得、これは、メモリシステム104に関係するメモリ動作を制御するために用いられ得る。本明細書に詳述されるように、バッファ管理コンポーネント118は、本開示のいくつかの実施形態によるデータ圧縮および管理と関係して用いられ得るいくつかのバッファを含み得る。
メモリデバイス110−1、...、110−Nは、いくつかのメモリセルのアレイ(例えば、不揮発性メモリセル)を含み得る。例えば、アレイは、NANDアーキテクチャのフラッシュアレイであり得る。しかしながら、実施形態は、特定の種類のメモリアレイまたはアレイアーキテクチャに限定されるものではない。メモリセルは、例えば、メモリセルからなるいくつかの物理ページを含むいくつかのブロックにまとめられ得る。いくつかのブロックは、メモリセルのプレーンに含められ得、アレイは、いくつかのプレーンを含み得る。一例として、メモリデバイスは、1ページ当たり8KB(キロバイト)のユーザデータ、1ブロック当たり128ページのユーザデータ、1プレーン当たり2048ブロック、そして1デバイス当たり16プレーンを記憶するように構成され得る。
動作時、データは、例えば、データページとして、メモリシステムのメモリデバイス(例えば、システム104のメモリデバイス110−1、...、110−N)に書込みされ得る、および/または、これから読み出しされ得る。そのため、データページは、メモリシステムのデータ転送サイズと呼ばれ得る。データは、セクタ(例えば、ホストセクタ)と呼ばれるデータセグメントの状態で、ホスト(例えば、ホスト102)に、またはホストから転送され得る。そのため、データセクタは、ホストのデータ転送サイズと呼ばれ得る。
データページは、いくつかのバイトのユーザデータ(例えば、いくつかのデータセクタを含むデータペイロード)と、それに対応するメタデータとを備え得るが、データページのサイズは、しばしば、ユーザデータを格納するために使用されるバイト数のみを指す場合がある。例として、ページサイズが4KBであるデータページは、4KBのユーザデータ(例えば、セクタサイズを512Bと仮定して、8セクタ)と、ユーザデータに対応する、いくつかのバイト(例えば、32B、54B、224Bなど)のメタデータとを含み得る。メタデータは、ユーザデータに対応するその他のメタデータの中でも、エラーデータ(例えば、誤り検出符号データおよび/または誤り訂正符号データ)などのインテグリティデータ、および/またはアドレスデータ(例えば、論理アドレスデータ)を含み得る。
図2は、本開示のいくつかの実施形態によるデータ圧縮を示すブロック図である。図2において、ブロック230は、ホスト(例えば、図1に関連して上述されたホスト102)から受信されたデータセグメント(例えば、ユーザデータのセクタ)を表しており、データセグメントは、(例えば、書き込み動作に関連して)図1に示されるメモリデバイス110−1、...、110−Nなどのメモリに格納される(例えば、書き込みされる)。各データセクタ230は、それに対応する(例えば、それに関係する)論理アドレス(例えば、LBA)を有し得、また「X」バイトのセクタサイズを有し得、ここでXは、例えば512Bであり得る。実施形態は、特定のセクタサイズに限定されるものではなく、ホストから受信される一部のセクタ230は、異なるセクタサイズを有し得る。図2には1つのセクタ230が示されているが、例えば、特定の書き込み動作に関連して、複数のセクタ230(例えば、いくつかの連続LBAに対応するいくつかのセクタ)がホストから受信される場合もある。
図2に示されるように、セクタ230は、図1に関連して上述されたコントローラ108の圧縮/復元コンポーネント112などの圧縮コンポーネント212に提供され得る。圧縮コンポーネント212は、その他の圧縮スキームの中でも、ハフマン符号化、シャノン・ファノ符号化、フィボナッチ符号化、算術符号化、および/またはイライアスガンマ符号化などの、いくつかの圧縮スキームに従ってデータを圧縮するように構成され得る。
本開示のいくつかの実施形態では、圧縮コンポーネント212は、セクタ230の圧縮率(例えば、セクタが圧縮可能な量)を判定し得る。いくつかの実施形態では、圧縮コンポーネント212は、その判定された圧縮率に従ってセクタ230を圧縮するように、また圧縮可能セクタ230に対応する圧縮レベル(CL)を(例えば、セクタ230が圧縮可能である場合、その圧縮率に基づいて)判定するように構成され得る。いくつかの実施形態では、圧縮コンポーネント212は、圧縮ヘッダ(CH)をセクタ230に追加し得る。圧縮ヘッダは、例えば、その他の情報の中でも、セクタ230が圧縮可能かどうか、セクタ230の圧縮率(例えば、セクタに対応する圧縮率)、圧縮されたセクタのサイズ(例えば、圧縮されたセクタに対応するデータのバイト数)、および/または圧縮されたセクタのフォーマットなどの情報を提供し得る。圧縮ヘッダは、「Y」バイトのサイズを有し得、ここでYは、例えば4Bであり得る。
図2は、セクタ230の異なる圧縮率に基づいて判定された、いくつかの異なる圧縮レベル232−U(未圧縮)、232−0(CL0)、232−1(CL1)、232−2(CL2)、および232−3(CL3)を示している。例えば、圧縮レベル232−Uは、未圧縮のセクタ234に対応し、未圧縮のセクタ234は、圧縮可能でないセクタ234と呼ばれ得る。未圧縮のセクタ234は、非圧縮可能またはごくわずかに圧縮可能なデータを含むXバイトのセクタ230(例えば、圧縮可能ではないXバイトのセクタ230、またはX−Zバイト以下に圧縮可能であるXバイトのセクタ230。ここで、「Z」は、論理アドレス(LA)サイズに等しく、例えば4Bであり得る)を表す。そのため、圧縮可能でないセクタ234は、受信されるセクタ230と同じバイト数(例えば、この場合、Xバイト)を含み得る。圧縮可能でないセクタ234はまた、圧縮ヘッダ240−Uを含み、これは、セクタ234に対応するその他の情報の中でも、セクタが圧縮されたデータを含まないという指標、またはセクタに関係するデータが最小閾値未満(例えば、X−Zバイト未満)で圧縮されているという指標を提供し得る。例として、未圧縮のセクタ234に対応する圧縮ヘッダ240−Uは、セクタ234に対応するLAであり得、4Bのサイズを有し得る。
図2に示されている例では、圧縮レベル232−0は、圧縮されたセクタ236−0に対応し、圧縮レベル232−1は、圧縮されたセクタ236−1に対応し、圧縮レベル232−2は、圧縮されたセクタ236−2に対応し、圧縮レベル232−3は、圧縮されたセクタ236−3に対応する。図2に示されている例では、圧縮されたセクタ236−0は、X−Zバイトおよび(X+Y)/2−Y−Zバイトの間で圧縮可能と判定されたXバイトセクタ230を表し、圧縮されたセクタ236−1は、(X+Y)/2−Y−Zバイトおよび(X+Y)/4−Y−Zバイトの間で圧縮可能と判定されたXバイトセクタ230を表し、圧縮されたセクタ236−2は、(X+Y)/4−Y−Zバイトおよび(X+Y)/8−Y−Zバイトの間で圧縮可能と判定されたXバイトセクタ230を表し、圧縮されたセクタ236−3は、(X+Y)/8−Y−Zバイト未満またはこれと等しい値に圧縮可能と判定されたXバイトセクタ230を表す。
圧縮されたセクタ236−0、236−1、236−2、および236−3のそれぞれは、それに対応する個々の量の「ガベージ」データ238−0、238−1、238−2、および238−3を有する。「ガベージ」データは、圧縮されたセクタ236−0、236−1、236−2、および236−3が一時的に保持されているバッファの残りの部分を指し得る。例えば、圧縮されたデータセクタ(例えば、236−0)が、400バイトのデータを含み、512バイトのバッファに保持されている場合、ガベージデータ部分(例えば、238−0)は、112バイトのバッファの残部を占めるデータになり得る。
圧縮されたセクタ236−0、236−1、236−2、および236−3のそれぞれは、それに対応する個々の圧縮ヘッダ240−0、240−1、240−2、および240−3、ならびに論理アドレス242−0、242−1、242−2、および242−3を含む。圧縮ヘッダ240−0、240−1、240−2、および240−3は、例えば、4Bのヘッダであり得、また個々の圧縮されたセクタ236−0、236−1、236−2、および236−3に関する様々な情報を提供し得る。論理アドレス242−0、242−1、242−2、および242−3は、例えば、個々の圧縮されたセクタ236−0、236−1、236−2、および236−3に対応する、4BのLBAであり得る。実施形態は、圧縮ヘッダ240−0、240−1、240−2、および240−3または論理アドレス242−0、242−1、242−2、および242−3に関し、特定のサイズに限定されるものではない。CHサイズおよびLAサイズは、この例では、圧縮レベル232−Uおよび232−0から232−3に対応する圧縮率の範囲に影響し得る。
いくつかの実施形態では、圧縮されたセクタ236−0、236−1、236−2、および236−3ならびに未圧縮のセクタ234は、圧縮コンポーネント212による圧縮に続いて、(例えば、図1に示される暗号化コンポーネント114などの暗号化コンポーネントを介して)暗号化され得る。いくつかの実施形態では、圧縮ヘッダ240−0、240−1、240−2、240−3、および240−U、ならびに/または論理アドレス242−0、242−1、242−2、および242−3は、暗号化されないままであり得る(例えば、暗号化コンポーネントを回避され得る)。
図2はまた、基準セクタ230−Sおよび対応するLA 242−Sを示している。本明細書で用いられる場合、基準セクタ(例えば、230−S)は、圧縮コンポーネント(例えば、212)に提供されていないホストセクタ(例えば、230)を指し得る。そのため、この例では、セクタ230−Sのサイズは、512Bであり得、LA 242−Sのサイズは、4Bであり得る。
本明細書において以下に詳述されるように、いくつかの実施形態では、いくつかの圧縮された管理ユニット(CMU)が形成され得、これはそれぞれ、そこに割り当てられたいくつかの圧縮されたデータセグメント(例えば、圧縮されたセクタ236−0、236−1、236−2、および236−3)と、それに対応する圧縮されたデータセグメントに対応する判定された圧縮率および/または圧縮レベルに基づき得る、対応する圧縮値とを含み得る。CMUは、データページ(例えば、論理ページ)に(例えば、コントローラを介して)割り当てられ得、データページは、例えば、データページ内におけるいくつかのCMUの特定の位置を示すメタデータを含み得る。いくつかの実施形態では、例えば、異なる対応する圧縮値を有するCMUを含む、データページが形成され得る。
図3Aおよび図3Bは、本開示のいくつかの実施形態による、いくつかの圧縮された管理ユニット(CMU)の構成を示している。図3Aおよび図3Bに示されている例は、いくつかのデータページ350、350−0、350−1、350−2、350−3、350−4、および350−5を含む。上述のように、データページは、図1のシステム104などのメモリシステムのデータ転送サイズを指し得る。例えば、データは、1ページずつ、メモリシステムに書込みされ得る、および/または、これから読み出しされ得る。データページは、例えば、管理ユニット量のユーザデータを格納するように構成され得る。本明細書で用いられる場合、管理ユニットは、図1に示される変換コンポーネント116などの変換コンポーネント(例えば、FTL)によって管理される、特定数の(例えば、「N個の」)未圧縮のデータセグメント(例えば、ホストセクタおよび対応する論理アドレス)に対応する量のデータを指す。例として、また図3Aに示されるように、管理ユニット(MU)360は、8データセグメント(例えば、8ホストセクタ331−1から331−8にそれらの8つの個々のLAを伴う)に対応する量のデータを備え得る。そのため、未圧縮のホストセクタサイズを512B、LAサイズを4Bと仮定すると、管理ユニット量のデータ360は、4、128B(例えば、516B/セクタ×8セクタ)であり得る。実施形態は、特定の管理ユニットサイズに限定されるものではなく、データページは、2つ以上の管理ユニット量のデータ360を格納するように構成され得る。
図3Aおよび図3Bに示されている例では、データページ350、350−0、350−1、350−2、350−3、350−4、および350−5のそれぞれは、1つの管理ユニット量のデータ360(例えば、512Bのホストセクタサイズおよび4BのLAサイズに対応する8つの516Bデータセグメント)を備える。ページ350−0、350−1、350−2、350−3、350−4、および350−5のそれぞれは、1つまたは2つ以上の圧縮された管理ユニット(CMU)と、それに対応するメタデータとを含むペイロード部分を含む。CMUは、(例えば、図1に示される112などの圧縮コンポーネントを介して)圧縮を経た管理ユニット量のデータ360を指す。あるMUに対応するデータセグメント(例えば、331−1から331−8)のうちの1つまたは2つ以上は、圧縮可能でない場合もあるし、ごくわずかに圧縮される場合(例えば、図2に示される圧縮可能でないセクタ234)もあることから、CMUのサイズは変わり得る。例えば、CMUは、MUと同じおよび/または同じぐらいのサイズを有し得る(例えば、セクタのすべてが圧縮可能でない、またはごくわずかに圧縮可能)、あるいは縮小されたサイズを有し得る(例えば、MUに対応するいくつかのデータセグメントのうちの1つまたは2つ以上が圧縮可能)。そのため、管理ユニット量のデータ360に対応するデータページは、複数のCMUを備え得る(例えば、複数のCMUが、データページに割り当てられ得る)。
図3Aおよび図3Bに示されている例では、ページ350、350−0、350−1、350−2、350−3、350−4、および350−5のそれぞれは、個々のメタデータ362、362−0、362−1、362−3、362−4、および362−5、ならびに個々のメタデータ365、365−0、365−1、365−3、365−4、および365−5を含む。本明細書に詳述されるように、メタデータ362、362−0、362−1、362−3、362−4、および362−5は、個々のページ内における(例えば、個々のページに割り当てられる)CMUの構成を示すトポロジーメタデータを含み得る。例として、メタデータ362、362−0、362−1、362−3、362−4、および362−5は、個々のページに対応するいくつかのCMUがどのようにページ内に配置されるか、および/または個々のページに対応する個々のいくつかのCMUに対応する圧縮値を示し得る。例として、メタデータ362、362−0、362−1、362−3、362−4、および362−5は、図3Bに示されるトポロジーメタデータ366および367などのトポロジーメタデータを含み得る。図3Aおよび図3Bに示されている例では、メタデータ365、365−0、365−1、365−3、365−4、および365−5は、個々のページに対応する1つまたは2つ以上のCMUに対応するエラーデータ(例えば、誤り訂正符号(ECC)データ)を含む。実施形態は、特定の種類のエラーデータに限定されるものではなく、例えば、巡回冗長検査(CRC)符号を含み得る。
図3Aおよび図3Bでは、データページ350、350−0、350−1、350−2、350−3、350−4、および350−5は、それぞれ、いくつかのCMUを含む。例として、各CMUは、(例えば、コントローラによって)そこに割り当てられた特定数の(例えば、8つの)圧縮されたセクタおよび/または未圧縮のセクタ(例えば、図2に示される圧縮されたセクタ236−0、236−1、236−2、236−3および/または未圧縮のセクタ234)を含み得る。そのため、各CMUは、特定数の(例えば、8つの)LBAに対応するデータを含み得る。いくつかの実施形態では、各CMUは、連続するLBAに対応するデータを含み得る(例えば、LBA0〜7に対応するデータセクタは、特定のCMUに割り当てられ得、LBA8〜15に対応するデータセクタは、異なるCMUに割り当てられ得る)。図2と関連して上述したように、圧縮レベル(例えば、未圧縮、CL0、CL1、CL2、およびCL3)は、各個々のセクタについて(例えば、その圧縮率または圧縮率がないことに基づいて)判定され得る。圧縮レベルは、圧縮率の範囲を表し得る。例えば、図2に示されている例では、XバイトおよびX−Zバイトの間に圧縮されたセクタ(例えば、ホストセクタ230+Z、ここで、Zは、LAサイズに等しい)は、非圧縮可能またはごくわずかに圧縮可能なセクタ(未圧縮)に対応し、X−Zバイトおよび(X+Y)/2−Y−Zバイトの間に圧縮されたセクタは、圧縮レベルCL0に対応し、(X+Y)/2−Y−Zバイトおよび(X+Y)/4−Y−Zバイトの間に圧縮されたセクタは、圧縮レベルCL1に対応し、(X+Y)/4−Y−Zバイトおよび(X+Y)/8−Y−Zバイトの間に圧縮されたセクタは、圧縮レベルCL2に対応し、(X+Y)/8−Y−Zバイト未満に圧縮されたセクタは、圧縮レベルCL3に対応する。いくつかの実施形態では、いくつかの圧縮レベルが設定され得る。しかしながら、実施形態は、特定数の圧縮レベルに限定されるものではない(例えば、5つ以上または3つ未満の異なる圧縮レベルおよび1つの未圧縮のレベルが有り得る)。
いくつかの実施形態では、各CMUは、それに対応する特定の圧縮値(例えば、CV0、CV1、CV2、およびCV3、または未圧縮)を有し得る。個々のCMUに対応する圧縮値は、個々のCMUに割り当てられた個々の圧縮されたセクタに割り当てられた空間の量を(例えば、バイトで)示し得、また例えば、個々のCMUに割り当てられた個々の圧縮されたセクタに対応する判定された圧縮レベル(例えば、CL0、CL1、CL2、およびCL3、または未圧縮)に基づき得る。例えば、未圧縮のセクタサイズを512B、CHサイズを4B、LAサイズを4Bと仮定すると、圧縮レベルCL0は、508Bおよび250Bの間の圧縮されたセクタサイズを示し得、圧縮レベルCL1は、250Bおよび120Bの間の圧縮されたセクタサイズを示し得、圧縮レベルCL2は、120Bおよび56Bの間の圧縮されたセクタサイズを示し得、圧縮レベルCL3は、56B未満またはこれに等しい圧縮されたセクタサイズを示し得る。例として、圧縮値(例えば、CV0、CV1、CV2、およびCV3、または未圧縮)は、特定の圧縮レベル(例えば、CL0、CL1、CL2、およびCL3、または未圧縮)に対応する最大の圧縮されたセクタサイズに対応し得る。例えば、圧縮値CV0は、(例えば、508Bが、圧縮レベルCL0に対応する最大の圧縮されたセクタサイズである状態で)特定のCMUに対応する圧縮されたセクタ当たり508Bの空間割り当てを示し得る。同様に、圧縮値CV1は、(例えば、250Bが、圧縮レベルCL1に対応する最大の圧縮されたセクタサイズである状態で)特定のCMUに対応する圧縮されたセクタ当たり250Bの空間割り当てを示し得る。また、圧縮値CV2は、(例えば、120Bが、圧縮レベルCL2に対応する最大の圧縮されたセクタサイズである状態で)特定のCMUに対応する圧縮されたセクタ当たり120Bの空間割り当てを示し得、圧縮値CV3は、(例えば、56Bが、圧縮レベルCL3に対応する最大の圧縮されたセクタサイズである状態で)特定のCMUに対応する圧縮されたセクタ当たり56Bの空間割り当てを示し得る。「未圧縮」の圧縮値は、MU量のデータ(例えば、516B)が、508B以上に圧縮可能であることを示し得る。このように、いくつかの実施形態では、圧縮値(例えば、CV0、CV1、CV2、およびCV3、または未圧縮)は、圧縮率に対応し得る。例えば、上記の例では、CV1は、圧縮率1/2に対応し得、CV2は、圧縮率1/4に対応し得、CV3は、圧縮率1/8に対応し得る。実施形態は、これらの例に限定されるものではない。
いくつかの実施形態では、CMUに対応する圧縮値(例えば、CV0、CV1、CV2、およびCV3、または未圧縮)は、MU量のデータに対応する個々の番号の(例えば、Nの)圧縮されたセクタの圧縮の度合いが最も少ないセクタに基づいて判定され得る。例えば、MUが、セクタのうちの6つが圧縮レベルCL3を有し、セクタのうちの2つが圧縮レベルCL2を有する状態で、8つのセクタに対応する場合(例えば、MU360)、圧縮値CV2が、これは圧縮レベルCL2に対応するのだが、CMUに割り当てられ得る。そのため、圧縮レベルCL3を有する圧縮されたセクタが56Bまたはそれ未満に圧縮されているのにもかかわらず、圧縮されたセクタ当たり120Bの空間割り当てが、CMUに提供され得る。そのため、圧縮値はまた、特定のCMUの空間割り当て(例えば、サイズ)を示し得る。この例では、8つの圧縮されたセクタを備え(例えば、8つのLBAに対応するCMU)、圧縮値CV2を有するCMUは、約1KBのCMUサイズを示し得る(例えば、圧縮されたセクタ当たり120B+セクタ当たり4BのCHおよびセクタ当たり4BのLA×CMU当たり8セクタ)。実施形態は、この例に限定されるものではない。
図3Aに示されている例では、ページ350は、圧縮値が「未圧縮」である1つのCMUを含む。つまり、ページ350のCMUは、MU量のデータ360に対応する未圧縮またはごくわずかに圧縮されたデータセグメントを備える。例えば、ページ350に対応するMU360の「N」個のデータセグメントは、図2に関連して説明されるデータセグメント234などのセグメントである。図3Aに示されている例では、ページ350−0は、圧縮値CV0に対応する1つのCMUを含む。ページ350−1は、それぞれが対応する圧縮値CV1を有する2つのCMUを含む。ページ350−2は、それぞれが対応する圧縮値CV2を有する4つのCMUを含む。ページ350−3は、それぞれが対応する圧縮値CV3を有する8つのCMUを含む。
ホストセクタ(例えば、図2に示されるセクタ230)が圧縮可能でない場合、固定ページサイズを有するページは、固定数のセクタ(例えば、それぞれが、個々の固定サイズセクタに対応する固定数のLBA)を備え得る。例えば、4KBのページサイズは、8つの未圧縮のセクタ(例えば、それぞれが個々の512Bのセクタに対応する8つのLBA)を備え得る。本明細書に説明される実施形態によるデータ圧縮および管理は、特定のページサイズに対応するいくつかのセクタ(例えば、LBA)を増加し得る、および/または異なる数のセクタを備えるデータページを提供する能力を提供し得、このことは、従来のデータ圧縮および管理システムと比べて、その他の利点の中でも、記憶容量を増加し得る、および/またはメモリシステムのスループットを改善し得る。
ページ350、350−0、350−1、350−2、および350−3のそれぞれが、4128Bのページサイズ(例えば、4KBのユーザデータにLAデータを加える)を有し、各CMUが、8つの圧縮されたおよび/または未圧縮のセクタ(例えば、それぞれが個々の512Bのセクタに対応する8つのLBA)をそれらに対応する4BのCHおよび/または4BのLAと共に備える例を考える。この例では、ページ350のCMUに対応する圧縮値「未圧縮」は、CMUに対応する8つのセクタには516Bが割り当てられていることを示すと仮定する(例えば、CMUに対応するセクタのそれぞれが、最大で508Bに4BのCHを加えたものに圧縮される)。そのため、ページ350のCMUの空間割り当て(例えば、サイズ)は、4128B(例えば、516B×8の未圧縮またはごくわずかに圧縮されたセクタ)であり、ページ350の合計のサイズは、4128B(例えば、CMU当たり4128B×ページ当たり1CMU)である。この例で、圧縮値CV0は、CMUに対応する8つのセクタには508Bが割り当てられていることを示すと仮定する(例えば、CMUに対応するセクタのそれぞれが、250Bおよび508Bの間に圧縮される)。ページ350と同様に、ページ350−0のCMUの空間割り当ては、4128Bであって、ページ350−0のサイズが4128Bであるようにする(例えば、ページ350は、250Bおよび508Bの間に圧縮された8つのホストセクタをセクタ当たり4BのCHおよびセクタ当たり4BのLAを加えて収容する)。図3Aに示される例では、ページ350の−1の2つのCMUに対応する圧縮値CV1は、個々のCMUに対応する8つの圧縮されたセクタのそれぞれには250Bが割り当てられていることを示すと仮定する(例えば、圧縮されたセクタのそれぞれは、250Bまたはそれ未満に圧縮されている)。そのため、ページ350−1の各CMUの空間割り当て(例えば、サイズ)は、2064B(例えば、250B×8の圧縮されたセクタにセクタ当たり4BのCHおよびセクタ当たり4BのLAを加える)であり、ページ350−1の合計のサイズは、4128B(例えば、CMU当たり2064B×ページ当たり2CMU)であり、これは、4128Bのページサイズに一致する。しかしながら、ページ350−1は、8つのセクタを備えるページ350および350−0(例えば、未圧縮またはCV0の圧縮値を有するCMUを備えるページ)の2倍のセクタ(例えば、16)を備える。この例では、ページ350の−2の4つに対応する圧縮値CV2は、個々のCMUに対応する4つの圧縮されたセクタのそれぞれには120Bが割り当てられていることを示すと仮定する(例えば、圧縮されたセクタのそれぞれは、120Bまたはそれ未満に圧縮されている)。そのため、各CMUのサイズは、1024B(例えば、120B×8の圧縮されたセクタにセクタ当たり4BのCHおよびセクタ当たり4BのLAを加える)であって、ページ350−2のペイロード部分が、4096B(例えば、CMU当たり1024B×ページ当たり4CMU)であるようにする。これは、4128Bのページサイズをわずかに下回る。しかしながら、ページ350−2は、8つのセクタを備えるページ350および350−0(例えば、未圧縮またはCV0の圧縮値を有するCMUを備えるページ)の4倍のセクタ(例えば、32)を備える。この例では、ページ350の−3の8つのCMUに対応する圧縮値CV3は、個々のCMUに対応する8つの圧縮されたセクタのそれぞれには56Bが割り当てられていることを示すと仮定する(例えば、圧縮されたセクタのそれぞれは、56Bまたはそれ未満に圧縮されている)。そのため、各CMUのサイズは、512B(例えば、56B×8の圧縮されたセクタにセクタ当たり4BのCHおよびセクタ当たり4BのLAを加える)であって、ページ350−3のペイロード部分が、4096B(例えば、CMU当たり512B×ページ当たり8CMU)であるようにする。これは、4128Bのページサイズをわずかに下回る。しかしながら、ページ350−3は、8つのセクタを備えるページ350および350−0(例えば、未圧縮またはCV0の圧縮値を有するCMUを備えるページ)の8倍のセクタ(例えば、64)を備える。
図3Bは、ページ350−4および350−5を示しており、これは、本明細書に説明される実施形態にしたがって形成され得る。図3Bに示されるように、ページ350−4および350−5は、異なる対応する圧縮値を有するいくつかのCMUを備える。図示のように、ページ350−4および350−5のCMUは、MU量のデータ360に等しい空間割り当てに収まる。この例では、ページ350−4は、圧縮値CV3を有する2つのCMU358−1と、圧縮値CV2を有する1つのCMU356−1と、圧縮値CV1を有する1つのCMU354−1とを含む。ページ350−5は、それぞれが圧縮値CV1を有する2つのCMU354−1を含む。
図3Bはさらに、ページ350−4に対応するトポロジーメタデータ366およびページ350−5に対応するトポロジーメタデータ367の例を示している。トポロジーメタデータは、個々のメタデータフィールド362−4および362−5の中に含められ得、また、例えば、個々のページ内でCMUが構成される方法を示し得る。図3Bに示されている例では、トポロジーメタデータ(例えば、366および367)は、特定のページ350−4/350−5内における個々のCMUの圧縮値と、どのようにCMUが特定のページ内で位置付けされるかとを示し得る8ビットのパターンを備える。
図3Bに示されている例では、トポロジーメタデータ366は、ビットパターン「11101000」を備え、これは、ページ350−4内における個々のいくつかのCMU358−1、356−1、および354−1の特定の位置と、これらの個々のCMUの圧縮値とを示し得る。同様に、トポロジーメタデータ367は、ビットパターン「10001000」を備え、これは、ページ350−5内における個々のいくつかのCMU354−1の特定の位置と、これらの個々のCMUの圧縮値とを示し得る。
以下に詳述されるように、いくつかの実施形態では、トポロジーメタデータ(例えば、366/367)は、(例えば、メタデータ362−1から362−5の少なくとも一部分として)対応するデータページと共に、メモリ(例えば、図1に示されるメモリデバイス110−1、...、110−N)に格納され得る。トポロジーメタデータは、特定のデータページ内におけるいくつかのCMUの構成を判定するために、メモリから(例えば、読み出し動作に関連して)引き出され得る。
実施形態は、図3Aおよび図3Bに関連して説明される例に限定されるものではない。例えば、図6〜図7に関連して以下に詳述されるように、いくつかの実施形態では、圧縮演算は、メモリに格納される管理ユニット量の受信データに対して行われ得、CMUは、MUに対応する圧縮されたおよび/または未圧縮のデータセグメントを含み得る。MU量のデータに対応するいくつかの(例えば、N個の)データセグメント(例えば、セクタ)は、(例えば、CMU量のデータを形成する)グループとして圧縮され得る、あるいはN個のセクタが、独立に圧縮されて、CMUを形成するように組み合され得る。CMUは、少なくともそのCMUを備えるデータページに割り当てられ得る。CMUは、連続する量子化境界のそれぞれの間の空間割り当てが未圧縮のデータセグメントを収容可能な状態で、ページのいくつかの量子化境界のうちの1つで開始する。
図4は、本開示のいくつかの実施形態によるデータ圧縮および管理に対応する機能流れ図を示している。図4では、ボックス430は、ホストから受信されて、圧縮コンポーネント412に(例えば、書き込み動作に関連して)提供されるいくつかのデータセグメント(例えば、図1に示されるホスト102などのホストから受信されるいくつかのデータセクタ)を表している。圧縮コンポーネントは、図2に示される圧縮コンポーネント212または図1に示される圧縮/復元コンポーネント112などの圧縮コンポーネントであり得る。この例では、8つの論理アドレス(LA)に対応するデータが、圧縮コンポーネント412に提供される。8つのLAは、8つのセクタ(例えば、8つの512Bの未圧縮のホストセクタ)に対応し得、これは、管理ユニット量のデータに対応し得る。そのため、いくつかの実施形態では、また図4に示されている例では、各CMUは、ユーザデータに相当する8つのセクタ(例えば、8つの論理アドレスに対応するユーザデータ)を備え得る。いくつかの実施形態では、LAは、連続する論理アドレスであって、各CMUが、例えば、8つの連続するLBAに対応するセクタを備えるようにし得る。しかしながら、実施形態は、このように限定されるものではない。
図4に示されるように、受信データ430は、圧縮コンポーネント412によって(例えば、それらの個々の圧縮率に従って)圧縮され得、圧縮されたセクタ433−0から433−7は、個々のバッファ415に提供され得る。上述のように、圧縮レベルは、個々の圧縮されたセクタ433−0から433−7のそれぞれに対して判定され得る。この例では、圧縮されたセクタ433−0、433−2、433−3、433−5、433−6、および433−7は、それぞれ、圧縮レベルCL3を有し、圧縮されたセクタ433−1および433−4は、それぞれ、圧縮レベルCL2を有する。例として、圧縮レベルCL2は、120Bおよび56Bの間に圧縮されたセクタに対応し得、圧縮レベルCL3は、56Bまたはそれ未満に圧縮されたセクタに対応し得る。
8つの圧縮されたセクタ433−0から433−7(例えば、MU量の受信データに対応する圧縮されたデータ)を備えるCMU456が形成され得る。CMU456は、圧縮されたセクタ433−0から433−7の判定された圧縮レベルおよび/または圧縮率に基づき得る圧縮値に割り当てられ得る。割り当てられた圧縮値は、例えば、いくつかのセクタ433−0から433−7の圧縮の度合いが最も少ないセクタに基づき得る。例えば、この例では、割り当てられた圧縮値はCV2であり、これは、セクタ433−1および433−4の圧縮レベルCL2に対応する。
図4に示されるように、CMU456は、いくつかのCMUを備えるページ450に割り当てられ得る。この例では、ページ450は、4つのCMUを備える。しかしながら、上述のように、データページは、5つ以上または3つ以下のCMUを備え得る。なお、この例では、圧縮値CV3を有する2つのCMUが512Bに対応し得る一方で、圧縮値CV2を有するCMU456は、1024バイトに対応し得、圧縮値CV1を有するCMUは、2064Bに対応し得、合計の4112Bに関し、これは、4128のページサイズ未満である。しかしながら、合計のページサイズと比べたCMUの合計のサイズは、許容し得る圧縮ゲインを提供し得る。ページ450は、メモリに格納され得る(例えば、メモリセルの物理ページに書き込まれ得る)。つまり、論理ページ450に割り当てられたCMUは、メモリのメモリセルの物理ページに格納され得る。論理ページサイズは、メモリセルの物理ページと同じである場合もあるし、異なる場合もある。
図5は、本開示のいくつかの実施形態によるデータ圧縮および管理に対応する機能流れ図を示している。図5に示される例は、いくつかのCMU555−1、555−2、および555−3と、メタデータ(META)とを備えるページ550を含む。CMU555−1、555−2、および555−3は、図2、図3A、図3B、および図4に関連して上述したものなどのCMUであり得る。図5に示されている例では、CMU555−1、555−2、および555−3は、それぞれ、8つの圧縮されたデータセクタ(例えば、8つのLBAに対応する圧縮されたデータ)を備える。CMU555−1および555−2は、そこに割り当てられた対応する圧縮値CV2を有し、これは、この例では、セクタ当たりの空間割り当てが120Bであることを示す(例えば、CMU555−1および555−2に割り当てられた各圧縮されたセクタは、120Bまたはそれ未満に圧縮される)。図5に示されるように、CMU555−2は、圧縮されたセクタ582−0から582−7を備える。
ページ550のメタデータ(META)は、トポロジーメタデータ574(例えば、図3Bに説明されるトポロジーメタデータ366および367)を含み得、これは、ページ550内におけるCMU555−1、555−2、および555−3の物理構成と、それに対応する個々の圧縮値とを示し得る。ページ550のメタデータ(META)はまた、CMUインデックス576を含み得、これは、例えば、ページ550内における特定のCMU555−1、555−2、および555−3の開始位置を特定するために用いられ得る。
図5は、本開示のいくつかの実施形態にしたがって、(例えば、読み出し動作に関連して)ターゲット論理アドレスに対応するターゲットCMUにアクセスする例を示している。例えば、図5に示されるブロック570は、ページ560のCMU555−2に対応するターゲット論理アドレス584に対応する読み出し要求を表している。読み出し要求は、例えば、ホスト(例えば、図1に説明されるホスト102)および/またはコントローラ(例えば、図1に説明されるコントローラ108)によって開始され得る。
いくつかの実施形態では、アドレス変換テーブルなどのデータ構造が、コントローラ上のメモリ(例えば、DRAM、SRAMなど)に格納され得る、および/またはアドレス変換テーブルの少なくとも一部分が、コントローラが接続されるいくつかのメモリデバイス(例えば、110−1、...、110−N)などのメモリに格納され得る。アドレス変換テーブルは、図1に説明される変換コンポーネント116などの変換コンポーネントによって維持され得、論理アドレス対物理アドレスのマッピングを含み得る。
例えば、図5に示されている例では、マッピング572は、ターゲット論理アドレス584が割り当てられる、ページ550に対応する物理アドレスを示す。いくつかの実施形態では、また図5に示されるように、マッピング572はまた、ターゲット論理アドレス584に対応する特定のCMU(例えば、555−2)に対するオフセットインデックス(例えば、578)を含む。動作時、マッピング572によって提供される物理アドレスは、いくつかのメモリデバイスにおけるページ550を特定するために用いられ得る。トポロジーメタデータ574は、ページ550のメタデータ(META)から引き出され得る。上述のように、トポロジーメタデータ574は、ページ550内におけるCMU(例えば、555−1、555−2、および555−3)の物理構成を示す(例えば、ページ内におけるCMUの特定の位置、それに対応する圧縮値など)。マッピング572によって提供されるオフセットインデックスは、ページ550内におけるターゲットCMUの開始位置を示し得る。
例えば、図5に示されている例では、オフセットインデックス578(例えば、「2」)は、ターゲットCMU555−2ついて、ページ550内における開始位置を示している。ターゲットCMU555−2(例えば、この例ではCV2)に割り当てられた既知の圧縮値に基づいて、ターゲットCMU555−2に対応するセクタ(例えば、582−0から582−7)は、効果的に探索され得る。ターゲット論理アドレス584が特定され得、それに対応する圧縮されたデータ582−3が、ホストに転送されて、読み出し要求570に対応する読み出し動作を完了し得る。いくつかの実施形態では、ターゲット論理アドレス(例えば、584)に対応する圧縮されたデータ(例えば、582−3)は、ホストに転送する前に、(例えば、図1に示される圧縮/復元コンポーネント112などの圧縮/復元コンポーネントを介して)復元され得る。
図6Aは、本開示のいくつかの実施形態による管理ユニット660を示している。上述のように、管理ユニット(MU)は、いくつかの未圧縮のデータセグメント(例えば、セクタ)に対応する量のデータ(例えば、サイズ)を指し得る。圧縮演算は、データセグメントに相当するMU上で行われて、CMUを形成し得る。上述のように、MUに対応するデータセグメントの数(例えば、N個)は、例えば、8つであり得、圧縮演算を介して圧縮可能またはそうでない場合もあって、1つまたは2つ以上のCMUが、MUに対応する空間割り当てに収まるようにする。例えば、MU660に対応する「N」個のセクタが圧縮可能でない場合、またはごくわずかに圧縮可能である場合、「N」個のセクタを備える1つのCMUだけが、MU660に対応する空間割り当てに収まる。
例として、MU660は、8つの未圧縮の512Bのホストセクタ(例えば、4KB)に等しい空間割り当てを表し得る。いくつかの実施形態では、また図6Aに示されるように、MU(例えば、660)に対応する空間割り当ては、「N」個のセクタ(例えば、8つの512Bのセクタ)に対応するいくつかの量子化された空間割り当て(例えば、671−1から671−8)に分割され得る。そのため、図6Aに示されるMU660は、個々の空間割り当て671−1から671−8に対応するいくつかの量子化境界673−1から673−8を含む。したがって、それぞれの連続する量子化境界673−1から673−8の間の空間割り当ては、未圧縮のセクタを収容することができる。
図6Bは、本開示のいくつかの実施形態による、いくつかのデータページ650−1および650−2に割り当てられたいくつかのCMU661−1、661−2、661−3、661−4を示している。いくつかの実施形態では、ページは、MUがN(例えば、8)個の未圧縮のセクタに対応する状態で、MU量のデータ660を収容し得る。例えば、図6Bに示されるように、ページ650−1は、MU量のデータ660を収容し得、ページ650−2は、MU量のデータ660を収容し得る。この例では、ページ650−1および650−2は、個々のページ内におけるCMUの物理構成を示し得るメタデータ(例えば、662−1および662−2)と、ページに対応するECCデータなどのエラーデータ(例えば、665−1)とを含む。
上述のように、CMU661−1、661−2、661−3、および661−4のそれぞれは、MU量のデータ(例えば、Nセクタ。ここで、例えばNは8であり得る)に対応し得る。ページに割り当てられた各CMUは、8つの圧縮されたまたは未圧縮のセクタに対応するユーザデータを含み得る。例として、CMU661−1から661−4のそれぞれは、8つの圧縮されたセクタに対応するユーザデータを含む(例えば、Nは8に等しい)。
いくつかの実施形態では、また図6Bに示されるように、ページのCMUのそれぞれは、ページのいくつかの量子化境界のうちの1つで開始する。図6Bに示されるように、ページの量子化境界は、MU(例えば、660)に関係する量子化された空間割り当てに対応し得る。いくつかの実施形態では、ページのCMUはまた、ページの量子化境界で終了する。しかしながら、CMUは、第1のページ(例えば、650−1)の量子化境界で開始して異なるページ(例えば、650−2)の量子化境界で終了する場合もある。
図6Bの例では、ページ650−1および650−2は、MU660に関係する8つの個々の空間割り当て671−1から671−8に対応する8つの量子化境界673−1から673−8を含む。CMU661−1は、ページ650−1の量子化境界673−1で開始し、境界673−3で終了して、2つの空間割り当てにわたるようにする。この例では、CMU661−1に対応するユーザデータは、丸2つの空間割り当て未満の量に圧縮される。そのため、CMU661−1は、ある量のガベージデータ675−1を備え、これは、CMU661−1に対応するバッファ(図示せず)に入れるために用いられ得る。CMU661−2は、ページ650−1の量子化境界673−3で開始し、境界673−4で終了して、1つの空間割り当てに広がるようにする。この例では、CMU661−2に対応するユーザデータは、丸1つの空間割り当て未満の量に圧縮される。そのため、CMU661−2は、ある量のガベージデータ675−2を備える。CMU661−3は、ページ650−1の量子化境界673−4で開始し、境界673−8で終了して、丸4つの空間割り当てにわたるようにする。この例では、CMU661−3に対応するユーザデータは、丸4つの空間割り当て未満の量に圧縮される。そのため、CMU661−3は、ある量のガベージデータ675−3を備える。CMU661−4は、ページ650−1の量子化境界673−8で開始し、ページ650−2の境界673−2で終了して、2つの空間割り当てにわたるようにする。この例では、CMU661−4に対応するユーザデータは、丸2つの空間割り当て未満の量に圧縮される。そのため、CMU661−4は、ある量のガベージデータ675−4を備える。
CMU661−1から661−4のそれぞれは、個々のメタデータフィールド663−1から663−4を含む。メタデータフィールド663−1から663−4は、例えば、対応するCMUのサイズ(例えば、長さ)、次のCMUの開始位置、および/またはCMUに関係するその他の情報を示し得る。いくつかの実施形態では、CMU(例えば、661−1から661−4)は、別個の個々のメタデータフィールドを含まない場合がある、またはメタデータフィールド(例えば、663−1から663−4)は、対応するCMUの始まり以外の位置に配置される場合がある。
図6Cは、本開示のいくつかの実施形態によるデータ1ページ650−3に割り当てられたいくつかのCMU661−1から661−8を示している。ページ650−3は、8つの未圧縮のセクタに対応する量のデータなど、MU量のデータ660を収容し得る。この例では、ページ650−3は、ページ内におけるCMUの物理構成を示し得るメタデータ662−3と、ページに対応するECCデータなどのエラーデータ665−3とを含む。
上述のように、CMU661−1から661−8のそれぞれは、8つのセクタに対応し得る(例えば、MU660が、8つのセクタに対応するLAを加えたものと等しい量のデータに対応すると仮定する)。そのため、ページ650−3に割り当てられた各CMU661−1から661−8は、8つの圧縮されたまたは未圧縮のセクタに対応するユーザデータを含み得る。この例では、CMU661−1から661−8のそれぞれは、8つの圧縮されたセクタに対応するユーザデータを含む(例えば、Nは8に等しく、CMUのそれぞれは、圧縮可能であった8つのホストセクタに対応する)。
図6Cに示される実施形態では、ページ650−3のCMU661−1から661−8のそれぞれは、ページのいくつかの量子化境界673−1から673−8のうちの1つで開始する。この例では、ページ650−3は、MU660に関係する8つの個々の空間割り当て671−1から671−8に対応する8つの量子化境界673−1から673−8を含む。図6Cに示されている例では、CMU661−1から661−8のそれぞれは、圧縮可能なユーザデータを含んで、ユーザデータが、8つの量子化境界673−1から673−8の連続する境界の間に収まるようにする(例えば、CMU661−1から661−8のそれぞれは、図6Aに示される8つの空間割り当て671−1から671−3の単一の空間割り当てに収まる)。CMU661−1は、ページ650−3の量子化境界673−1で開始して境界673−2で終了し、ある量のガベージデータ675−1を備え、これは、CMU661−1に対応するバッファ(図示せず)に入れるために用いられ得る。CMU661−2は、ページ650−3の量子化境界673−2で開始して境界673−3で終了し、ある量のガベージデータ675−2を備える。CMU661−3は、ページ650−3の量子化境界673−3で開始して境界673−4で終了し、ある量のガベージデータ675−3を備える。CMU661−4は、ページ650−3の量子化境界673−4で開始して境界673−5で終了し、ガベージデータはなんら持たない。CMU661−5は、ページ650−3の量子化境界673−5で開始して境界673−6で終了し、ある量のガベージデータ675−5を備える。CMU661−6は、ページ650−3の量子化境界673−6で開始して境界673−7で終了し、ガベージデータはなんら持たない。CMU661−7は、ページ650−3の量子化境界673−7で開始して境界673−8で終了し、ある量のガベージデータ675−7を備える。CMU661−8は、ページ650−3の量子化境界673−8で開始し、空間割り当て671−8に広がり、ある量のガベージデータ675−8を備える。
ページ650−3のCMU661−1から661−8のそれぞれは、個々のメタデータフィールド663−1から663−8を含む。メタデータフィールド663−1から663−8は、例えば、対応するCMUのサイズ(例えば、長さ)、次のCMUの開始位置、および/またはCMUに関係するその他の情報を示し得る。いくつかの実施形態では、CMU(例えば、661−1から661−8)は、別個の個々のメタデータフィールドを含まない場合がある、またはメタデータフィールド(例えば、663−1から663−4)は、対応するCMUの始まり以外の位置に配置される場合がある。
図7は、本開示のいくつかの実施形態によるデータ圧縮および管理に対応する機能流れ図を示している。図7では、ボックス730は、ホストから受信されて、圧縮コンポーネント712に(例えば、書き込み動作に関連して)提供されるいくつかのデータセグメント(例えば、図1に示されるホスト102などのホストから受信されるいくつかのデータセクタ)を表している。圧縮コンポーネント712は、図2に示される圧縮コンポーネント212または図1に示される圧縮/復元コンポーネント112などの圧縮コンポーネントであり得る。この例では、N個の論理アドレス(例えば、8つの論理アドレス(LA))に対応するMU量のデータ(例えば、8セクタ)が、圧縮コンポーネント712に提供される。N個のLAは、N個の512Bの未圧縮のホストセクタに対応し得、これは、MU量のデータに対応し得る。
圧縮コンポーネント712は、受信したMUに対応するN個のセクタを圧縮し得(セクタのうちの1つまたは2つ以上が圧縮可能である場合)、このことが、圧縮された管理ユニット(CMU)を形成する。そのため、いくつかの実施形態では、CMUは、ユーザデータに相当するN個のセクタ(例えば、N個の論理アドレスに対応するユーザデータ)を備え得る。いくつかの実施形態では、圧縮コンポーネント712によって受信されたMUに対応するN個の未圧縮のデータセクタは、独立に圧縮され得(例えば、個々の圧縮率に従って)、組み合わされてCMUを形成する。しかしながら、実施形態は、このように限定されるものではない。例えば、いくつかの実施形態では、圧縮コンポーネント712によって受信されたMUに対応するN個の未圧縮のセクタのグループがまとめて圧縮されて、CMUを形成し得る。
いくつかの実施形態では、また図7に示されるように、圧縮コンポーネント712によって形成されたCMUは、データページ(例えば、ページ750)に割り当てられ得る。上述のように、データページは、いくつかのCMUを備え得る。いくつかの実施形態では、CMUは、ページ750に対応するいくつかの量子化境界(例えば、773−1から773−8)のうちの1つで開始し得る。連続する境界773−1から773−8の間の空間割り当ては、例えば、未圧縮のセクタを収容するようなサイズになされ得る。
この例では、ページ750は、メタデータ762を含み、これは、例えば、ページ750内におけるCMUの物理構成などの情報を提供し得る。ページ750はまた、CMUメタデータ763を含み、これは、ページ750に割り当てられた特定のCMUに関する情報を提供し得る。例として、メタデータ763は、その他の情報の中でも、特定のCMUのサイズ(例えば、長さ)および/または特定のCMUに対応する論理アドレス情報を示し得る。
結論
本開示は、データ圧縮および管理のための装置および方法を含む。いくつかの方法は、管理ユニット量のデータに対応するいくつかのデータセグメントを受信するステップと、いくつかのデータセグメントのそれぞれについて個々の圧縮率を判定するステップと、その個々の判定された圧縮率に従って、いくつかのデータセグメントのそれぞれを圧縮するステップと、管理ユニット量のデータに対応するいくつかのデータセグメントに対応する圧縮された、および/または未圧縮のデータセグメントを含む圧縮された管理ユニットを形成するステップと、少なくとも圧縮された管理ユニットを備えるデータページを形成するステップとを含む。
本明細書において特定の実施形態を図示および説明してきたが、当業者であれば、示された特定の実施形態に対して、同じ結果を得るように考案された構成を置き換え得ることを理解する。本開示は、本開示の1つまたは2つ以上の実施形態の適用または変形を包含するように意図されている。上記の説明が、例示的な方法でなされたものであり、制限的な方法でなされたものではないことを理解されたい。上記の実施形態の組み合わせ、および、本明細書に具体的に記載されていないその他の実施形態は、上の説明を検討すれば、当業者には自明である。本開示の1つまたは2つ以上の実施形態の範囲は、上記の構造および方法が用いられるその他の用途を含む。したがって、本開示の1つまたは2つ以上の実施形態の範囲は、添付の特許請求の範囲を基準に、そのような特許請求の範囲が権利範囲に含む均等物の全範囲と共に、定められるべきである。
上記の詳細な説明では、一部の特徴は、本開示を合理化するために単一の実施形態にまとめてある。この開示方法は、本開示の開示されている実施形態が、各請求項に明示的に列挙されている特徴よりも多くの特徴を使用しなければならないという意図を反映するものとして解釈されるべきではない。そうではなく、以下の特許請求の範囲が反映するように、発明の主題は、単一の開示された実施形態の一部の特徴にある。したがって、以下の特許請求の範囲は、ここに、各請求項が別個の実施形態としてそれ自体で成立している状態で、詳細な説明に組み込まれる。

Claims (38)

  1. メモリの動作方法であって、前記方法が、
    管理ユニット量のデータに対応するいくつかのデータセグメントを受信するステップと、
    前記いくつかのデータセグメントのそれぞれについて個々の圧縮率を判定するステップと、
    その個々の判定された圧縮率に従って、前記いくつかのデータセグメントのそれぞれを圧縮するステップと、
    前記管理ユニット量のデータに対応する前記いくつかのデータセグメントに対応する圧縮されたデータセグメントおよび未圧縮のデータセグメントの両方、またはいずれか一方を含む圧縮された管理ユニットを形成するステップと、
    少なくとも前記圧縮された管理ユニットを備えるデータページを形成するステップと
    を備える、メモリの動作方法。
  2. 前記いくつかのデータセグメントが、第1のいくつかのデータセグメントであり、また前記圧縮された管理ユニットが、第1の圧縮された管理ユニットであり、前記方法が、
    前記管理ユニット量のデータに対応する第2のいくつかのデータセグメントを受信するステップと、
    前記第2のいくつかのデータセグメントのそれぞれについて個々の圧縮率を判定するステップと、
    その個々の判定された圧縮率に従って、前記第2のいくつかのデータセグメントのそれぞれを圧縮するステップと、
    前記管理ユニット量のデータに対応する前記第2のいくつかのデータセグメントに対応する圧縮されたデータセグメントおよび未圧縮のデータセグメントの両方、またはいずれか一方を含む第2の圧縮された管理ユニットを形成するステップと、
    少なくとも前記第1および前記第2の圧縮された管理ユニットを備えるように前記データページを形成するステップと
    を含む、請求項1に記載の方法。
  3. 前記圧縮された管理ユニットを形成するステップが、前記圧縮された管理ユニットのための圧縮値を判定するステップを含む、請求項1に記載の方法。
  4. 前記圧縮された管理ユニットのための圧縮値を判定するステップが、前記圧縮された管理ユニットの前記データセグメントについて圧縮の度合いが最も少ないものを判定するステップを含む、請求項3に記載の方法。
  5. 前記ページを形成するステップが、異なる判定された圧縮値を有する少なくとも2つの圧縮された管理ユニットを含むページを形成するステップをさらに備える、請求項3に記載の方法。
  6. 前記データページを前記メモリに格納するステップをさらに備え、前記データページが、
    少なくとも前記圧縮された管理ユニットと、
    前記ページ内における前記圧縮された管理ユニットの特定の位置を示すメタデータと
    を含む、請求項1〜5のいずれか1項に記載の方法。
  7. 前記いくつかのデータセグメントのそれぞれについて、その判定された圧縮率に基づいて、個々の圧縮レベルを判定するステップを含み、圧縮された管理ユニットを形成するステップが、異なる判定された圧縮レベルを有するデータセグメントを含む圧縮された管理ユニットを形成するステップをさらに備える、請求項1〜5のいずれか1項に記載の方法。
  8. 前記ページを形成するステップが、それぞれが同じ数のデータセグメントを含む少なくとも2つの圧縮された管理ユニットを有するページを形成するステップを備える、請求項1〜5のいずれか1項に記載の方法。
  9. いくつかのデータセグメントを受信するステップが、前記いくつかのデータセグメントをコントローラで受信するステップを備える、請求項1〜5のいずれか1項に記載の方法。
  10. その個々の判定された圧縮率に従って、前記いくつかのデータセグメントのそれぞれを圧縮するステップが、前記いくつかのデータセグメントのうちの特定の1つを、前記データセグメントのうちの前記特定の1つが圧縮可能でないと判定された場合に圧縮しないステップを備える、請求項1〜5のいずれか1項に記載の方法。
  11. 前記いくつかのデータセグメントが、対応するいくつかの論理アドレスと共にホストから受信された未圧縮のデータセクタであり、前記管理ユニット量のデータが、N個の論理アドレスを伴う未圧縮のデータのN個のセクタに対応し、前記N個の論理アドレスを伴う未圧縮のデータのN個のセクタが、前記ページに収まり、前記ページを形成するステップが、少なくとも2つの圧縮された管理ユニットを、前記少なくとも2つの圧縮された管理ユニットのそれぞれが前記N個の論理アドレスを伴うN個の圧縮されたおよび/または未圧縮のデータセクタに対応する状態で含むページを形成するステップをさらに備える、請求項1〜5のいずれか1項に記載の方法。
  12. メモリの動作方法であって、前記方法が、
    前記メモリに格納され、かつ管理ユニット量のデータに対応するいくつかのデータセグメントを受信するステップと、
    前記いくつかのデータセグメントについて個々の圧縮率を判定するステップと、
    それらの個々の判定された圧縮率に従って、前記いくつかのデータセグメントを圧縮し、前記圧縮されたいくつかのデータセグメントのそれぞれに個々の圧縮ヘッダを追加するステップと、
    前記いくつかの圧縮されたデータセグメントを含み、前記判定された圧縮率に少なくとも部分的に基づく対応する圧縮値を有する圧縮された管理ユニットを形成するステップと、
    データページを前記メモリに格納するステップであって、前記データページが前記圧縮された管理ユニットおよび少なくとも1つのその他の圧縮された管理ユニットを含む、格納するステップと
    を備える、メモリの動作方法。
  13. 前記圧縮された管理ユニットに対応する前記圧縮値が圧縮率に対応し、前記少なくとも1つのその他の圧縮された管理ユニットがそれに対応する異なる圧縮率を有する、請求項12に記載の方法。
  14. 圧縮されたデータの管理方法であって、前記方法が、
    データページをメモリに格納するステップであって、前記データページが、前記データページ内におけるいくつかの圧縮された管理ユニットの物理構成を示すメタデータを含む、格納するステップを備え、
    前記圧縮された管理ユニットのそれぞれが、それに対応するいくつかの圧縮されたデータセグメントの圧縮レベルに少なくとも部分的に基づく個々の圧縮値を有し、
    個々の圧縮された管理ユニットに対応する前記いくつかの圧縮されたデータセグメントのそれぞれが、個々の論理アドレスおよびそれに対応する圧縮ヘッダを有する、圧縮されたデータの管理方法。
  15. 前記データページの物理アドレスと、
    ターゲット論理アドレスに対応するターゲットの圧縮された管理ユニットの前記データページ内における位置と
    を示すマッピングを提供するステップをさらに備える、請求項14に記載の方法。
  16. 前記ターゲットの圧縮された管理ユニットに関係する前記圧縮値に少なくとも部分的に基づいて、前記ターゲットの圧縮された管理ユニットを探索することによって、前記ターゲット論理アドレスに対応する特定の圧縮されたデータセグメントを特定するステップをさらに備える、請求項15に記載の方法。
  17. 前記マッピングを提供するステップが、前記ターゲットの圧縮された管理ユニットの前記データページ内における開始位置を示すインデックスを提供するステップをさらに備える、請求項15に記載の方法。
  18. データページをメモリに格納するステップが、ホストの書き込み要求に応じて前記データページを前記メモリに格納するステップを備え、前記方法が、ターゲット論理アドレスに関連付けられているホストの読み出し要求に応じて前記メモリ内の前記データページにアクセスするステップをさらに備える、請求項14〜17のいずれか1項に記載の方法。
  19. ターゲット論理アドレスに対応する圧縮されたデータセグメントを復元するステップと、ホストの読み出し要求に関連して、前記復元されたデータセグメントをホストに提供するステップとをさらに備える、請求項14〜17のいずれか1項に記載の方法。
  20. 装置であって、
    いくつかのメモリデバイスを備えるメモリと、
    前記いくつかのメモリデバイスに接続されるコントローラであって、かつ、
    管理ユニット量のデータに対応するいくつかのデータセグメントを受信するステップと、
    前記いくつかのデータセグメントのそれぞれについて個々の圧縮率を判定するステップと、
    その個々の判定された圧縮率に従って、前記いくつかのデータセグメントのそれぞれを圧縮するステップと、
    前記管理ユニット量のデータに対応する前記いくつかのデータセグメントに対応するいくつかの圧縮されたデータセグメントおよび未圧縮のデータセグメントの両方、またはいずれか一方を含む圧縮された管理ユニットを形成するステップと、
    少なくとも前記圧縮された管理ユニットを備えるデータページを形成するステップと
    を制御するように構成される、コントローラと
    を備える、装置。
  21. 前記データページが、前記ページ内における前記圧縮された管理ユニットの特定の位置を示すトポロジーメタデータをさらに備える、請求項20に記載の装置。
  22. 前記コントローラが、前記いくつかのデータセグメントに関係する論理アドレスを前記メモリにおける前記いくつかのデータセグメントの物理的位置にマッピングするためのデータ構造を提供するステップを制御するようにさらに構成され、前記データ構造が、
    前記いくつかのデータセグメントに関係する物理アドレスと、
    オフセットインデックスであって、
    前記圧縮された管理ユニットの前記ページ内における物理的位置と、
    前記ページに割り当てられたいくつかの追加的な圧縮された管理ユニットの前記ページ内における物理的位置と
    を示すオフセットインデックスと
    を含む、請求項21に記載の装置。
  23. 前記コントローラが、前記圧縮された管理ユニットの前記形成ステップの前に、前記いくつかの圧縮されたデータセグメントを暗号化するように構成される暗号化コンポーネントを含む、請求項20〜22のいずれか1項に記載の装置。
  24. 装置であって、
    データページを格納するメモリであって、前記データページが、前記データページ内におけるいくつかの圧縮された管理ユニットの物理構成を示すメタデータを含む、メモリを備え、
    前記圧縮された管理ユニットのそれぞれが、それに対応するいくつかの圧縮されたデータセグメントの圧縮レベルに少なくとも部分的に基づく個々の圧縮値を有し、
    個々の圧縮された管理ユニットに対応する前記いくつかの圧縮されたデータセグメントのそれぞれが、個々の論理アドレスおよびそれに対応する圧縮ヘッダを有する、装置。
  25. 前記メモリに接続されるコントローラをさらに備え、前記コントローラが、変換コンポーネントを含んで、前記データページの物理アドレスと、ターゲット論理アドレスに対応するターゲットの圧縮された管理ユニットの前記データページ内における位置とを示すマッピングを提供する、請求項24に記載の装置。
  26. 前記コントローラが、前記ターゲットの圧縮された管理ユニットに対応する前記圧縮値に少なくとも部分的に基づいて、前記ターゲットの圧縮された管理ユニットを探索することによって、前記ターゲット論理アドレスに対応する特定の圧縮されたデータセグメントを特定するステップを制御するように構成される、請求項25に記載の装置。
  27. 前記マッピングが、前記ターゲットの圧縮された管理ユニットの前記データページ内における開始位置を示すインデックスをさらに備える、請求項25に記載の装置。
  28. 装置であって、
    いくつかのメモリデバイスを備えるメモリと、
    前記いくつかのメモリデバイスに接続されるコントローラであって、かつ、
    前記メモリに格納されるデータを受信するステップと、
    管理ユニット量の前記受信データに対して圧縮演算を実行するステップであって、前記管理ユニット量が、いくつかの(N個の)未圧縮のデータセグメントである、実行するステップと、
    前記N個のデータセグメントに対応する圧縮されたデータセグメントおよび未圧縮のデータセグメントの両方、またはいずれか一方を含む第1の圧縮された管理ユニットを形成するステップと、
    少なくとも前記第1の圧縮された管理ユニットを備えるデータページを形成するステップであって、前記第1の圧縮された管理ユニットが、前記ページのいくつかの量子化境界のうちの1つで開始し、前記連続する量子化境界のそれぞれの間の空間割り当てが、未圧縮のデータセグメントを収容可能である、形成するステップと
    を制御するように構成されるコントローラと
    を備える装置。
  29. 前記ページの前記量子化境界の数がN個であり、前記第1の圧縮された管理ユニットが、前記N個の量子化境界のうちの少なくとも2つにわたる、請求項28に記載の装置。
  30. 前記第1の圧縮された管理ユニットが、前記データページから追加的なデータページにわたる、請求項29に記載の装置。
  31. 前記ページの前記量子化境界の数がN個であり、前記第1の圧縮された管理ユニットが、前記いくつかの量子化境界のうちの前記1つと、前記いくつかの量子化境界のうちの次に続く1つとの間に収まる、請求項28に記載の装置。
  32. 前記データページが、N個の圧縮された管理ユニットを、前記N個の圧縮された管理ユニットのそれぞれが前記N個の量子化境界のうちの異なる1つで開始する状態で備える、請求項31に記載の装置。
  33. 前記コントローラが、
    追加的な管理ユニット量の前記受信データに対して圧縮演算を実行するステップであって、前記追加的な管理ユニット量が、N個の未圧縮のデータセグメントである、実行するステップと、
    前記追加的な管理ユニット量の前記受信データの前記N個のデータセグメントに対応する圧縮されたデータセグメントおよび未圧縮のデータセグメントの両方、またはいずれか一方を含む追加的な圧縮された管理ユニットを形成するステップと、
    少なくとも前記第1の圧縮された管理ユニットおよび前記追加的な圧縮された管理ユニットを備えるように前記データページを形成するステップであって、前記追加的な圧縮された管理ユニットが、前記ページの前記いくつかの量子化境界のうちの1つで開始する、形成するステップと
    を制御するようにさらに構成される、請求項28〜32のいずれか1項に記載の装置。
  34. 前記管理ユニット量の前記受信データに対して前記圧縮演算を実行するステップを制御するように構成される前記コントローラが、前記N個の未圧縮のデータセグメントのそれぞれを独立に圧縮し、次いで、前記CMUを形成するステップに関連して、前記独立に圧縮されたN個のデータセグメントを組み合わせるステップを制御するように構成される前記コントローラをさらに備える、請求項28〜32のいずれか1項に記載の装置。
  35. 圧縮されたデータの管理方法であって、前記方法が、
    データページをメモリに格納するステップであって、前記データページが、前記データページ内におけるいくつかの圧縮された管理ユニットの物理構成を示すメタデータを含む、格納するステップを備え、
    前記いくつかの圧縮された管理ユニットのそれぞれが、管理ユニット量のデータに対応し、前記管理ユニット量のデータが、いくつかの(N個の)未圧縮のデータセグメントに対応し、
    前記圧縮された管理ユニットのそれぞれが、前記ページのいくつかの量子化境界のうちの1つで開始し、各連続する量子化境界の間の空間割り当てが、未圧縮のデータセグメントを収容することができる、圧縮されたデータの管理方法。
  36. 前記データページを前記メモリから読み出しするステップと、
    前記いくつかの圧縮された管理ユニットに対応する圧縮されたデータセグメントを復元するステップと、
    前記復元されたデータセグメントをホストに提供するステップと
    をさらに備える、請求項35に記載の方法。
  37. 前記個々のいくつかの圧縮された管理ユニットのそれぞれに対して別々のメタデータフィールドを提供するステップをさらに備え、前記別々のメタデータフィールドが、前記個々のいくつかの圧縮された管理ユニットのサイズを示す、請求項35〜36のいずれか1項に記載の方法。
  38. 前記いくつかの未圧縮のデータセグメントがホストセクタであり、Nが8に等しい、請求項35〜36のいずれか1項に記載の方法。
JP2015518612A 2012-06-22 2013-06-21 データ圧縮および管理 Active JP6096291B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/531,090 US9148172B2 (en) 2012-06-22 2012-06-22 Data compression and management
US13/531,090 2012-06-22
PCT/US2013/047107 WO2013192548A1 (en) 2012-06-22 2013-06-21 Data compression and management

Publications (2)

Publication Number Publication Date
JP2015525423A true JP2015525423A (ja) 2015-09-03
JP6096291B2 JP6096291B2 (ja) 2017-03-15

Family

ID=49769439

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015518612A Active JP6096291B2 (ja) 2012-06-22 2013-06-21 データ圧縮および管理

Country Status (7)

Country Link
US (2) US9148172B2 (ja)
EP (1) EP2864889A4 (ja)
JP (1) JP6096291B2 (ja)
KR (1) KR101660190B1 (ja)
CN (1) CN104471547B (ja)
TW (1) TWI542159B (ja)
WO (1) WO2013192548A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017511521A (ja) * 2014-02-05 2017-04-20 ティダル システムズ, インク.Tidal Systems, Inc. フラッシュメモリ圧縮
JP2017516232A (ja) * 2014-05-21 2017-06-15 クアルコム,インコーポレイテッド メモリ容量圧縮を利用するメモリコントローラならびに関連するプロセッサベースのシステムおよび方法
US10503661B2 (en) 2014-05-21 2019-12-10 Qualcomm Incorporated Providing memory bandwidth compression using compressed memory controllers (CMCs) in a central processing unit (CPU)-based system

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9772936B2 (en) 2008-07-10 2017-09-26 Micron Technology, Inc. Data collection and compression in a solid state storage device
US20160378352A1 (en) * 2015-06-26 2016-12-29 Intel Corporation Efficient solid state drive data compression scheme and layout
US10255004B2 (en) * 2015-11-16 2019-04-09 Marvell World Trade Ltd. Systems and methods for managing address-mapping data in memory devices
US11336294B2 (en) * 2016-06-10 2022-05-17 Apple Inc. Hybrid, adaptive virtual memory compression
US10503443B2 (en) * 2016-09-13 2019-12-10 Netapp, Inc. Systems and methods for allocating data compression activities in a storage system
US10592170B2 (en) 2017-01-25 2020-03-17 International Business Machines Corporation Optimizing dual-layered compression in storage systems
KR102299880B1 (ko) * 2017-04-04 2021-09-09 에스케이하이닉스 주식회사 데이터 변환 장치 및 방법
US10140215B1 (en) 2017-05-26 2018-11-27 Seagate Technology Llc Low overhead mapping for highly sequential data
KR20190059053A (ko) 2017-11-22 2019-05-30 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작 방법
CN113282235A (zh) * 2018-06-16 2021-08-20 王梅 基于缓存内移出的数据组进行动态处理的方法及系统
CN109274377A (zh) * 2018-08-22 2019-01-25 泰康保险集团股份有限公司 区块链网络的数据处理方法、装置、介质及电子设备
JP2020154525A (ja) 2019-03-19 2020-09-24 キオクシア株式会社 メモリシステムおよび情報処理システム
KR20200114483A (ko) * 2019-03-28 2020-10-07 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
CN111966285B (zh) * 2020-07-20 2022-09-06 四川虹美智能科技有限公司 向eeprom存储数据的方法、主控芯片和系统
TWI770870B (zh) * 2021-03-11 2022-07-11 台灣優化水務股份有限公司 流體量時間變化模式數據編碼方法
US11632128B2 (en) * 2021-06-07 2023-04-18 Dell Products L.P. Determining compression levels to apply for different logical chunks of collected system state information
US20230236725A1 (en) * 2022-01-25 2023-07-27 Dell Products L.P. Method to opportunistically reduce the number of SSD IOs, and reduce the encryption payload, in an SSD based cache in a deduplication file system
CN117240305B (zh) * 2023-11-15 2024-01-26 上海叁零肆零科技有限公司 一种管网拓扑数据压缩方法、装置、设备及可读存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011128792A (ja) * 2009-12-16 2011-06-30 Toshiba Corp メモリ管理装置
US20110252184A1 (en) * 2010-04-09 2011-10-13 Samsung Electronics Co., Ltd. Method of storing data in storage media, data storage device using the same, and system including the same
US20120102295A1 (en) * 2010-10-25 2012-04-26 Xueshi Yang Data compression and encoding in a memory system

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6577254B2 (en) 2001-11-14 2003-06-10 Hewlett-Packard Development Company, L.P. Data compression/decompression system
US6657564B2 (en) 2001-12-13 2003-12-02 International Business Machines Corporation Method and apparatus for compressing data in which dictionary sizes are reduced
KR100524076B1 (ko) 2003-11-13 2005-10-26 삼성전자주식회사 데이터 압축 및 복원 장치
US7194596B2 (en) * 2004-06-09 2007-03-20 Simpletech Global Limited Method of efficient data management with flash storage system
KR100849305B1 (ko) 2006-11-24 2008-07-29 삼성전자주식회사 데이터를 압축하여 관리하는 메모리 및 그 방법
US7975109B2 (en) * 2007-05-30 2011-07-05 Schooner Information Technology, Inc. System including a fine-grained memory and a less-fine-grained memory
US9395929B2 (en) * 2008-04-25 2016-07-19 Netapp, Inc. Network storage server with integrated encryption, compression and deduplication capability
US9772936B2 (en) 2008-07-10 2017-09-26 Micron Technology, Inc. Data collection and compression in a solid state storage device
US8347023B2 (en) 2008-10-06 2013-01-01 Marvell World Trade Ltd. Compression based wear leveling for non-volatile memory
JP5148542B2 (ja) * 2009-03-31 2013-02-20 株式会社エヌ・ティ・ティ・ドコモ データ共有システム、共有データ管理装置、共有データ管理装置の制御方法
US8131688B2 (en) 2009-08-26 2012-03-06 Lsi Corporation Storage system data compression enhancement
KR101602939B1 (ko) 2009-10-16 2016-03-15 삼성전자주식회사 불휘발성 메모리 시스템 및 그것의 데이터 관리 방법
US8364929B2 (en) 2009-10-23 2013-01-29 Seagate Technology Llc Enabling spanning for a storage device
US8013762B2 (en) 2009-11-03 2011-09-06 Seagate Technology Llc Evaluating alternative encoding solutions during data compression

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011128792A (ja) * 2009-12-16 2011-06-30 Toshiba Corp メモリ管理装置
US20110252184A1 (en) * 2010-04-09 2011-10-13 Samsung Electronics Co., Ltd. Method of storing data in storage media, data storage device using the same, and system including the same
US20120102295A1 (en) * 2010-10-25 2012-04-26 Xueshi Yang Data compression and encoding in a memory system

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017511521A (ja) * 2014-02-05 2017-04-20 ティダル システムズ, インク.Tidal Systems, Inc. フラッシュメモリ圧縮
US9927998B2 (en) 2014-02-05 2018-03-27 Tidal Systems, Inc. Flash memory compression
JP2017516232A (ja) * 2014-05-21 2017-06-15 クアルコム,インコーポレイテッド メモリ容量圧縮を利用するメモリコントローラならびに関連するプロセッサベースのシステムおよび方法
US10503661B2 (en) 2014-05-21 2019-12-10 Qualcomm Incorporated Providing memory bandwidth compression using compressed memory controllers (CMCs) in a central processing unit (CPU)-based system
US10838862B2 (en) 2014-05-21 2020-11-17 Qualcomm Incorporated Memory controllers employing memory capacity compression, and related processor-based systems and methods

Also Published As

Publication number Publication date
US9696910B2 (en) 2017-07-04
TW201419770A (zh) 2014-05-16
EP2864889A4 (en) 2016-07-13
CN104471547B (zh) 2018-04-20
JP6096291B2 (ja) 2017-03-15
KR20150033663A (ko) 2015-04-01
CN104471547A (zh) 2015-03-25
US20160018993A1 (en) 2016-01-21
US20130342375A1 (en) 2013-12-26
US9148172B2 (en) 2015-09-29
TWI542159B (zh) 2016-07-11
KR101660190B1 (ko) 2016-09-26
EP2864889A1 (en) 2015-04-29
WO2013192548A1 (en) 2013-12-27

Similar Documents

Publication Publication Date Title
JP6096291B2 (ja) データ圧縮および管理
US10346312B2 (en) Variable-size flash translation layer
TWI609263B (zh) 可變大小快閃轉變層
US9335950B2 (en) Multiple stream compression and formatting of data for data storage systems
US9448738B2 (en) Compression and formatting of data for data storage systems
US10853234B2 (en) Memory controller
KR101759658B1 (ko) 메모리 장치 및 메모리 시스템
EP2757480A1 (en) Storage address to NVM address, span, and length mapping and converting
US9274978B2 (en) Migration of encrypted data for data storage systems
US20140189279A1 (en) Method of compressing data and device for performing the same
KR20180052739A (ko) 고체 상태 드라이브 컨트롤러를 사용한 데이터 중복 제거
US8706953B2 (en) Data storage device and method performing background operation with selected data compression
WO2011028802A1 (en) Systems and methods for compressing data in non-volatile semiconductor memory drives
US9552163B1 (en) Systems and methods for providing non-power-of-two flash cell mapping
US20210026731A1 (en) Method and system for enhancing throughput of big data analysis in a nand-based read source storage
Wang et al. Lifetime adaptive ECC in NAND flash page management
US9921909B2 (en) Systems and methods for providing error code detection using non-power-of-two flash cell mapping
US9444490B2 (en) Method of operating data compression circuit and devices to perform the same
KR20220072398A (ko) 메모리 장치 및 메모리 시스템
JP2016052046A (ja) 圧縮装置、伸長装置およびストレージ装置
TW202420745A (zh) 記憶體裝置、壓縮符號流的方法以及產生符號流的方法
JP2024044792A (ja) メモリシステム
CN116263749A (zh) 存储系统和控制其的方法以及存储装置和控制其的方法

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160122

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160223

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160520

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20161011

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20161222

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170215

R150 Certificate of patent or registration of utility model

Ref document number: 6096291

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250