JP7481167B2 - 圧縮データの解凍システム及びメモリシステム並びにデータ解凍方法 - Google Patents

圧縮データの解凍システム及びメモリシステム並びにデータ解凍方法 Download PDF

Info

Publication number
JP7481167B2
JP7481167B2 JP2020097161A JP2020097161A JP7481167B2 JP 7481167 B2 JP7481167 B2 JP 7481167B2 JP 2020097161 A JP2020097161 A JP 2020097161A JP 2020097161 A JP2020097161 A JP 2020097161A JP 7481167 B2 JP7481167 B2 JP 7481167B2
Authority
JP
Japan
Prior art keywords
memory
data
decompressor
compressed data
compressed
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.)
Active
Application number
JP2020097161A
Other languages
English (en)
Other versions
JP2020201948A (ja
JP2020201948A5 (ja
Inventor
エス. ジンワラ ハザイファ
ピー. カチェア ラムダス
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US16/539,842 external-priority patent/US11048413B2/en
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of JP2020201948A publication Critical patent/JP2020201948A/ja
Publication of JP2020201948A5 publication Critical patent/JP2020201948A5/ja
Application granted granted Critical
Publication of JP7481167B2 publication Critical patent/JP7481167B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/174Redundancy elimination performed by the file system
    • G06F16/1744Redundancy elimination performed by the file system using compression, e.g. sparse files
    • 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/0656Data buffering 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/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/0658Controller construction arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Memory System (AREA)

Description

本発明は、メモリにおける圧縮データの解凍システムに関し、特に、圧縮データの解凍時に最大性能の読み出しを提供することができる圧縮データの解凍システム及びメモリシステム並びにデータ解凍方法に関する。
現在のところ、コンピューティングの分野では、一般的に、データ量が増加している。
例えば、ビデオ処理のような特定のアプリケーションにおいて、生成されたデータは、指数関数的に増加する。
このようなデータの増加率は、場合によっては、ストレージシステム容量の増加を超えるものになっている。
したがって、多くのコンピュータシステムは、データを圧縮された形態で格納する。
格納されたデータは、圧縮されていない形で消費される必要があるため、格納されたデータが処理される前に格納された圧縮データを解凍する必要がある。
そこで、コンピュータシステムでは、日常的に圧縮データの解凍時に最大の読み出し性能を有するような解凍システムの開発が課題となっている。
米国特許第20060056406号明細書 米国特許第20110131375号明細書 米国特許第20110238917号明細書 米国特許第20130339689号明細書 米国特許第20160283159号明細書
本発明は上記従来の解凍システムにおける課題に鑑みてなされたものであって、本発明の目的は、1つの読み出し(read)ポート及び1つの書き込み(write)ポートを有するデュアルポートメモリ(つまり、辞書メモリ)と並列に、別のメモリ(つまり、圧縮データの解凍書き込みバッファ)を維持することで、圧縮データを解凍時に、最大性能の読み出しを提供する圧縮データの解凍システム及びメモリシステム並びにデータ解凍方法を提供することにある。
上記目的を達成するためになされた本発明による圧縮データの解凍システムは、解凍器から、圧縮データの解凍されたデータ(decompressed data)を受信するように構成される第1書き込み(write)ポートと、バックリファレンス読み出し(back-reference read)要請を受信するように構成される第1読み出し(read)ポートと、を含む第1メモリと、前記第1書き込みポートと電気的に接続され、前記解凍されたデータを受信するように構成された第2書き込みポートを有する第2メモリと、を有し、前記第1メモリは、前記第1読み出しポートにおいて、前記バックリファレンス読み出し要請を受信したことに応答して、前記解凍器に、前記圧縮データの前記解凍されたデータに基づいて、直近の後続の圧縮データを解凍したデータを出力するように構成され、前記第2メモリは、受信機による検索のために前記解凍されたデータをバッファリングするように構成されることを特徴とする。
前記第2メモリは、圧縮されていないデータの読み出し要請を受信するように構成される第2読み出しポートを含み、前記圧縮されていないデータの読み出し要請に応答して、前記受信機に圧縮データの解凍されたデータを供給するように構成されることが好ましい。
前記バックリファレンス読み出し要請、及び前記圧縮されていないデータの読み出し要請を生成するように構成されるコントローラと、をさらに有することが好ましい。
前記第1メモリの出力は、前記解凍器と接続され、前記第2メモリの出力は、前記受信機と接続されることが好ましい。
前記第1メモリは、前記第2メモリとは独立して動作するように構成されることが好ましい。
前記第1メモリは、前記解凍器によって、圧縮データメモリに圧縮された形式で格納されたデータが解凍されるときに、前記解凍器によって使用される圧縮データの圧縮パターンを表す圧縮プロセスの辞書値(dictionary values)を格納するように構成される辞書メモリを含み、ここで、前記圧縮プロセスは、入力データセットで繰り返されるパターン又は文字列の値を探し出すプロセスであり、前記第2メモリは、圧縮されていないミラー(uncompressed mirror)書き込みバッファを含むことが好ましい。
前記第2メモリのストレージ容量は、前記第1メモリのストレージ容量よりも小さいことが好ましい。
前記第2メモリの前記ストレージ容量は、前記受信機の入力データレートと前記解凍器の出力データレートとの間のデータレートの不一致に基づき、前記ストレージ容量は、前記データレートの不一致により、データ出力を生成し、前記受信機がデータを読み出しする準備が整うまで、前記第2メモリに生成されたデータ出力をバッファリングする量に依存することが好ましい。
上記目的を達成するためになされた本発明によるメモリシステムは、受信機と、圧縮データを格納するように構成される圧縮データメモリと、前記圧縮データメモリから前記圧縮データを検索し、前記受信機からの要請に応答して、前記圧縮データから解凍されたデータを生成するように構成される解凍器と、前記解凍器から前記解凍されたデータを受信するように構成される第1書き込みポート、及びバックリファレンス読み出し要請を受信するように構成される第1読み出しポートを有する第1メモリと、前記第1書き込みポートと電気的に接続され、前記解凍されたデータを受信するように構成される第2書き込みポートを有する第2メモリと、を有し、前記第1メモリは、前記第1読み出しポートにおいて、前記バックリファレンス読み出し要請を受信したことに応答して、前記解凍器に、前記圧縮データの前記解凍されたデータに基づいて、直近の後続の圧縮データを解凍したデータを出力するように構成され、前記第2メモリは、前記受信機による検索のために前記解凍されたデータをバッファリングするように構成されることを特徴とする。
前記第2メモリは、圧縮されていないデータの読み出し要請を受信するように構成される第2読み出しポートを含み、前記圧縮されていないデータの読み出し要請に応答して、前記受信機に前記圧縮データの解凍されたデータを供給するように構成されることが好ましい。
前記バックリファレンス読み出し要請及び前記圧縮されていないデータの読み出し要請を生成するように構成されるコントローラをさらに有し、前記コントローラは、再構成可能なプロセッサを含むことが好ましい。
前記第1メモリの出力は、前記解凍器と接続され、前記第2メモリの出力は、前記受信機と接続されることが好ましい。
前記第1メモリは、前記第2メモリとは独立して動作するように構成されることが好ましい。
前記第1メモリは、前記解凍器によって、前記圧縮データメモリに格納された前記圧縮データが解凍されるときに、前記解凍器によって使用される圧縮データの圧縮パターンを表す圧縮プロセスの辞書値(dictionary values)を格納するように構成される辞書メモリを含み、ここで、前記圧縮プロセスは、入力データセットで繰り返されるパターン又は文字列の値を探し出すプロセスであり、前記第2メモリは、圧縮されていないミラー書き込みバッファを含むことが好ましい。
前記第2メモリのストレージ容量は、前記第1メモリのストレージ容量よりも小さいことが好ましい。
前記第2メモリの前記ストレージ容量は、前記受信機の入力データレートと前記解凍器の出力データレートとの間のデータレートの不一致に基づき、前記ストレージ容量は、前記データレートの不一致により、データ出力を生成し、前記受信機がデータを読み出しする準備が整うまで、前記第2メモリに生成されたデータ出力をバッファリングする量に依存することが好ましい。
前記解凍器は、前記第1メモリに格納された前記圧縮データの解凍されたデータに基づいて、前記圧縮データメモリからの後続の圧縮データを解凍するように構成されることが好ましい。
上記目的を達成するためになされた本発明によるデータ解凍方法は、メモリシステムに格納されたデータを解凍する方法であって、圧縮データメモリに格納されたデータを解凍して、解凍されたデータを生成するように解凍器に指示する段階と、ここで、前記格納されたデータは、圧縮された形式であり、前記解凍されたデータを第1メモリ及び第2メモリに書き込む段階と、バックリファレンス読み出し要請を前記第1メモリに伝送する段階と、圧縮されていないデータの読み出し要請を前記第2メモリに伝送する段階と、を有し、前記第1メモリは、前記バックリファレンス読み出し要請に応答して、前記解凍器に、前記圧縮された形式で格納されたデータの前記解凍されたデータに基づいて、直近の後続の圧縮データを解凍したデータを出力するように構成され、前記第2メモリは、前記圧縮されていないデータの読み出し要請に応答して、前記解凍されたデータを受信機に出力するように構成されることを特徴とする。
前記第1メモリの出力は、前記解凍器と接続され、前記第2メモリの出力は、前記受信機と接続されることが好ましい。
前記第1メモリは、前記第2メモリとは独立して動作するように構成されることが好ましい。
本発明に係る圧縮データの解凍システム及びメモリシステム並びにデータ解凍方法によれば、読み出しポートの数が減少し、圧縮データの解凍されたデータの読み出しを加速化することができる。
また、圧縮データの解凍時に、低い消費電力だけではなく、比較的高いスループット(throughput)と低いレイテンシの読み出しパフォーマンスを有することができる。
本発明の実施形態によるメモリシステムの概略構成を示すブロック図である。 本発明の実施形態によるメモリ解凍システムの構成を示すブロック図である。 本発明の実施形態による比較としての解凍システムの構成を示すブロック図である。 本発明の実施形態によるメモリシステムに格納されたデータを解凍する動作を例として説明するためのフローチャートである。
次に、本発明に係る圧縮データの解凍システム及びメモリシステム並びにデータ解凍方法を実施するための形態の具体例を図面を参照しながら説明する。
以下での詳しい説明は、本発明の実施形態に基づいて提供される、圧縮データの解凍のためのシステム及び方法の実施形態を例として説明するものを意図し、本発明で構成又は利用される唯一の形態を示すものとは意図しない。
詳しい説明は、例としての実施形態とともに、本発明の特徴を示す。
しかし、他の実施形態によって達成される同一又は均等な機能と構造は、本発明の技術的思想に含まれるものと理解されるべきである。
前述したように、類似のエレメントの符号は、類似のエレメント又は特徴を示すものと意図する。
データのサイズが増加するにつれ、ストレージシステムは、圧縮された形態でデータを格納する。
しかし、データ生成器(data generators)及びデータコンシューマー(data consumers)は、圧縮されていない形態でデータを生成及び消費する(consume)ため、ストレージソリューションは、圧縮及び圧縮データの解凍技術にさらに依存する。
しかし、このような形態のストレージに依存するシステムにおいて、圧縮及び圧縮データの解凍は、演算負荷を増加させる可能性があり、消費電力を増加させてレイテンシ(例えば、データの検索レイテンシ)を引き起こす可能性がある。
本発明は、メモリの圧縮データの解凍時、低い消費電力だけでなく、比較的高いスループット(throughput)と低いレイテンシの読み出しパフォーマンスを提供する圧縮データの解凍システム及びメモリシステムに関する。
図1は、本発明の実施形態によるメモリシステムの概略構成を示すブロック図である。
図1を参照すると、メモリシステム10は、送信機20と、圧縮システム30と、メモリ(例えば、圧縮データメモリ)40と、圧縮データの解凍システム50と、受信機60と、を備える。
送信機20及び受信機60は、圧縮されていない形態でデータを処理することができる。
しかし、いくつかの実施形態では、大きいサイズのデータは、送信機20と受信機60との間で伝送され得る。
したがって、これらのデータを格納するのに使用されるメモリ40の限られた容量のため、メモリシステム10は、メモリ40にデータを格納する前にデータを圧縮する。
その後、メモリシステム10は、受信機60が格納された情報に対する読み出し(read)要請をすると、格納されたデータを解凍する。
いくつかの実施形態では、メモリシステム10は、グラフィックス処理システムであり得、送信機20は、イメージフレームバッファを含み得、送信機20からのデータは、グラフィックス処理システムによって処理されたイメージデータを含み得、メモリ40は、グラフィックス処理ユニットのオンチップL2キャッシュを含み得、そして受信機60は、テクスチャユニット(texture unit)のような追加の処理ユニットを含み得る。
しかし、本発明はこれに限定されない。
たとえば、ストレージ装置において、送信機20及び受信機60は、ホストプロセス(例えば、ホストコンピュータのユーザー又はシステムプロセス)を表すことができ、メモリ40は、ソリッドステートドライブ(Solid State Drive:SSD)、ハードディスクドライブ(Hard Disk Drive:HDD)などのような非揮発性メモリであり得る。
いくつかの実施形態では、受信機60は、外部ストレージ装置を含み得る。
圧縮システム30は、送信機20から受信したデータブロック(例えば、テクスチャブロック)に対して圧縮(例えば、固定又は可変レートの圧縮)を実行する。
圧縮システム30は、データのブロックを分析することにより、以下のように実行する。
各々の個々のデータブロックに対して、関連付けられたデータタイプ(例えば、フラットデータタイプ、平面データタイプ、ウェーブレット(wavelet)データタイプ、スプライン(spline)データタイプなど)及び関連付けられた圧縮タイプを独立的に決定し、関連付けられた圧縮タイプに応じて、各々のデータブロックを圧縮する。
その後、圧縮データは、メモリ40に格納する。
受信機60が格納されている圧縮データに対応する圧縮されていないデータを要請すると、圧縮データの解凍システム50は、圧縮のうち、圧縮システム30で生成されたメタデータ及び辞書値を用いて格納されている圧縮データを解凍し、解凍されたデータを受信機60に提供する。
図2は、本発明の実施形態によるメモリ解凍システムの構成を示すブロック図であり、図3は、本発明の実施形態による比較としての解凍システムの構成を示すブロック図である。
図2を参照すると、圧縮データの解凍システム50は、圧縮データの解凍器100と、コントローラ(例えば、解凍コントローラ)110と、第1メモリ(例えば、辞書(dictionary)メモリ)120と、第2メモリ(例えば、圧縮されていないミラー書き込み(write)バッファ)130と、を備える。
第1メモリ120は、第2メモリ130から分離することができ(例えば、別のメモリダイ(die)のように)、第2メモリ130とは独立して動作(例えば、読み出し(read)及び書き込み(write)要請を処理)するように構成される。
第1及び第2メモリ(120、130)の各々は、(例えば、圧縮データの解凍器100からの)データ及び要請を受信する1つの書き込みポートと1つの読み出しポートを含む。
第1メモリ120の出力は、圧縮データの解凍器100に接続され、受信機60と接続されない。
なお、第2メモリ130の出力は、受信機60と接続され、圧縮データの解凍器100と接続されない。
第1及び第2メモリ(120、130)の読み出し及び書き込み動作は、コントローラ110によって制御される。
コントローラ110は、FPGA(Field-Programmable Gate Array)、特定用途向け集積回路(Application-Specific Integrated Circuit:ASIC)などのような再構成可能なプロセッサを含み得る。
いくつかの実施形態では、第1メモリ120は、圧縮システム30によって実行された圧縮プロセスからの辞書値(dictionary values)を格納する、辞書メモリを含む。
辞書値は、格納されたデータを解凍する圧縮データの解凍器によって使用される圧縮データの圧縮パターンを表す。
言い換えると、圧縮プロセスは、入力データセット(dataset)で繰り返されるパターン又は文字列(string)の値を探し出す。
これら検出された繰り返しパターンは、圧縮された出力データにエンコーディングされて検出されたパターンに対する1つのリファレンスコピーを有し、その後の入力データセットで、そのパターンのすべての後続の発生に対しそのコピーを参照する。
いくつかの実施形態によると、辞書値は、重複データブロックに対する圧縮データの1つのインスタンス(instance)、ピクセルデータブロックを表す1つ以上の値(例えば、フラット(flat)ピクセルブロックを示す単一の値)、又はこれらの組み合わせなどを含み得る。
たとえば、テキスト入力データセットで、文字列の「big dog」が5回表わされる場合には、これらの入力に対する圧縮された出力データは、1番目のインスタンスのためにコピーされた「big dog」を含むことができ、残りの4つのインスタンスは、コピーされた「big dog」を参照して、エンコーディングされる。
このようなことから、入力データセットでの5つの「big dog」のパターンは、1つの「big dog」のパターンと4つの参照ポインタに縮小することができ、したがって圧縮された出力の大きさは、入力データセットのサイズに比べて大幅に減少され得る。
つまり、バックリファレンスポインタの観点から、入力データセットで繰り返されたパターンをエンコーディングすることで、圧縮器は、高い圧縮率を達成することができる。
また、第1メモリ120は、圧縮データの解凍器100によって生成される解凍されたデータを格納することができ、圧縮データの解凍されたデータに依存する後続の圧縮データの解凍されたデータを、圧縮データの解凍器100によって、生成することができる。
つまり、いくつかの実施形態で、第1メモリ120の出力は、フィードバックライン126を介して圧縮データの解凍器100と接続される。
いくつかの実施形態によると、第2メモリ130は、受信機60による後の検索のために、圧縮データの解凍器100によって生成される解凍されたデータを一時的に格納する伝送バッファとして機能する。
第2メモリ130は、任意の辞書値を格納しない可能性があり、最近の圧縮データの解凍されたデータを格納するように(例えば、最近、圧縮データの解凍されたデータのみを格納するように)構成されるので、第2メモリ130のストレージ容量は、第1メモリ120のストレージ容量よりも小さくすることができる。
したがって、第2メモリ130の容量は、受信機60に伝送されるデータの量と同一であり得る。
いくつかの実施形態では、第2メモリ130の容量は、受信機60の入力データレートと圧縮データの解凍器100の出力データレートとの間のデータレートの不一致によって決定される。
第2メモリ130の容量は、特定の設計の実現に関連付けられたバーストバッファリング(burst buffering)の量に依存する。
例えば、受信機60は、圧縮データの解凍器100のスループットよりも遅いレートでデータを処理する。
このとき、圧縮データの解凍システム50は、データ出力を生成し、受信機60がデータを読み出しする準備が整うまで、第2メモリ130に生成されたデータ出力をバッファリングする。
したがって、圧縮データの解凍システム50は、データコンシューマー(例えば、受信機)が遅いレートで動作しても、圧縮データの解凍システム50が、動作を持続させる第2メモリ130の形態で一定量のバーストバッファリングを実装する。
このとき、第2メモリ130の固定されたサイズは、圧縮方式に関連付けられたブロックサイズとは独立して作られ得る。
ブロックサイズは、圧縮データの解凍システムの全体のメモリリソースの使用量を減らすのに役立つことができる。
また、第1メモリ120の形態で辞書の貯蔵と圧縮データの解凍システム50の出力を分離することにより、第2メモリ130は、データのコンシューマー(例えば、受信機60)に伝送される圧縮されていない出力データのレイテンシを改善することができる。
受信機60からのデータ要請に応答して、圧縮データの解凍器100は、メモリ40に格納されている圧縮データを解凍する。
したがって、圧縮データの解凍器100は、圧縮データの解凍されたデータを、第1及び第2メモリ(120、130)の両方に伝送することができる。
そして、コントローラ110は、圧縮データに含まれているメタデータをデコーディングすることにより、メモリ40に格納されている圧縮データを解釈する。
圧縮データのメタデータは、後続の解凍された出力データを発生又は生成する方法を表す。
いくつかの例において、これは、圧縮データから解凍されたデータにパターンを直接コピーすることや、初期の圧縮データの解凍されたデータの出力から特定のパターンをコピーすることを含み得る。
第1の例で、メタデータは、入力データセットで現在の「8」バイトを、そのまま、圧縮されていない出力にコピーすることを表す。
第2の例では、メタデータは、以前に圧縮されていないデータの特定の位置から「16」のバイトをコピーすることを表す。
第1の例で、コントローラ110は、第1及び第2メモリ(120、130)に直接書き込みを行う。
第2の例では、コントローラ110は、以前の解凍されたデータから適切な位置をまず読み出して(例えば、バックリファレンス動作を介して)、以後、圧縮データの解凍されたデータを、第1及び第2メモリ(120、130)の両方で適切な位置に記入する。
これらの解凍されたデータは、電気的に接続された(例えば、結び付けられる)第1及び第2メモリ(120、130)の各々の書き込みポート(122、132)によって並行に受信(例えば、同時に受信)される。
いくつかの実施形態によると、コントローラ110は、メモリ(120、130)のすべてに圧縮されていないデータの書き込みを制御して開始することができる。
いくつかの例では、メモリ40に格納されたデータを解凍するときに、圧縮データの解凍器100は、以前の解凍されたデータに基づいて使用することができる。
いくつかの実施形態によると、コントローラ110は、バックリファレンス読み出し信号(バックリファレンス読み出し要請ともいう)を第1メモリ120の読み出しポート122に伝送し、圧縮データの解凍器100に、直近に圧縮データの解凍されたデータを再び出力する第1メモリ120の信号は、バックリファレンスのためのものである。
また、コントローラ110は、第2メモリ130を維持し、圧縮されていないデータの読み出し要請を読み出しポート134に伝送して、第2メモリ130がバッファリングされた圧縮データの解凍されたデータを受信機60にリリース(例えば、出力)するように指示する。
また、第2メモリ130のデータ検索の動作は、第1メモリ120のバックリファレンス動作と分離することができ、格納されたデータが圧縮されていないとき、圧縮データの解凍されたデータは、受信機60に圧縮されていないデータを要請させ得る。
いくつかの例では、圧縮されていないデータを検索し、受信機60に伝送するプロセスは、第1メモリ120にアクセスしない場合があり、したがって、読み出しポート124の帯域幅は、バックリファレンスデータ(例えば、第1メモリ120に格納された圧縮されていないデータ)から読み出しを行う解凍プロセス専用であり得る。
バックリファレンス読み出し要請、及び圧縮されていないデータの読み出し要請を2つの独立したメモリの2つの分離された読み出しポートに伝送することにより、バックリファレンスと圧縮されていないデータの読み出し動作は、相対的に低い確定的(deterministic)レイテンシで同時に(例えば、共に)実行することができ、圧縮データの解凍システム50の全体的な圧縮率を向上させる(例えば、増加させる)ことができる。
上述した技術を、2つの要請が、1つの辞書メモリ(120-1)の1つの読み出しポート124に伝送される比較としての例(図3の圧縮データの解凍システム(50-1)参照)と対照する。
このような比較例では、2つの要請は、(たとえば、時分割多重化(time-division multiplexing)、ラウンドロビン優先順位(round robin priority)、厳密優先順位(strict priority)などを使用して)読み取りポートでアービトレータ(たとえば、マルチプレクサ140)によるアービトレーション(arbitration)を受ける可能性があり、解凍システムの複雑さが増す可能性があります。
また、他の動作が開始される前に、1つの動作が完了しなければならないため、このようなアービトレーションは、追加の非確定的な(non-deterministic)レイテンシをもたらす可能性があります。
これにより、装置の計算量が増加してシステム全体のパフォーマンスが低下する可能性がある。
また、デュアルポートメモリ(マルチポートメモリとは対照的)を含み得る第1及び第2メモリ(120、130)を利用することにより、圧縮データの解凍システムは、比較的低コストで実現することができます。
さらに、メモリ(120、130)の各々が、1つ(2つと対照的な)の業務を実行することは、装置へのアクセス回数を減らし、消費電力を低減させ、システムの全体的なロバストネス(robustness)及び信頼性を向上させることができる。
図4は、本発明の実施形態によるメモリシステムに格納されたデータを解凍するプロセス200の動作を例として説明するためのフローチャートである。
図2を参照して、いくつかの実施形態によると、受信機60が、メモリ40に格納されたデータを圧縮された形態で要請するとき、コントローラ110は、圧縮データの解凍器100が格納されたデータを解凍するように指示して、圧縮データの解凍されたデータを生成することができる(ステップS202)。
その後、コントローラ110は、圧縮データの解凍器100を介して、圧縮データの解凍されたデータを第1メモリ120及び第2メモリ130に同時に記入する(ステップS204)。
後続の格納されたデータが解凍される前に、コントローラ110は、第1メモリ120に圧縮データの解凍されたデータを圧縮データの解凍器100に出力させる、バックリファレンス読み出し要請を第1メモリ120に伝送する(ステップS206)。
次に、コントローラ110は、第2メモリ130にバッファリングされている圧縮データの解凍されたデータを受信機60に出力させる、圧縮されていないデータの読み出し要請を第2メモリ130に伝送する(ステップS208)。
したがって、上述したように、圧縮データの解凍システムは、圧縮されていないデータを有するメモリに必要なポートの数を減らす(例えば、最小化する)ことができる。
オンチップ辞書メモリからの読み出しは、受信機やデータコンシューマーへのデータ伝送に必要としない場合がある。
これは、メモリの読み出しに必要とされるエージェント(agent)の数を減らすことができ、読み出しポートを減らし、アービトレーションをなくし、そして複雑度を下げることができる。
このようなエージェントの減少は、全体的な圧縮データの解凍レートを高め、圧縮されていないデータのレイテンシを低減し、そして決定的なレイテンシを提供することができる。
本明細書で使用する用語は、特定の実施形態を記述するための目的として使用され、本発明を限定する意図で使用されない。
文脈上明らかに別のものを示していると定義されない限り、単数形は、複数形を含む意図で使用する。
そして「含む」又は「含んで限定されない」の用語は、本明細書に使用する場合には、記述された特徴、数字、段階、動作、エレメント、及び/又はコンポーネントの存在を明示するが、1つ以上の他の特徴、数字、段階、動作、エレメント、コンポーネント、及び/又はこれらのグループの存在若しくは追加を排除しない。
本明細書で使用する用語「及び/又は」は、1つ以上の関連付けられた列挙項目の任意の全ての組み合わせが含まれ得ることを意味する。
また、本明細書において、用語「できる」の使用は、「本発明の1つ以上の実施形態」を意味する。
また、用語「例としての」は、例示又は説明を意味するものと意図する。
本明細書では、たとえば、第1、第2、第3などの用語は、多様なエレメント、コンポーネント、領域、レイヤー、及び/又は区間を説明するために使用するが、これらのエレメント、コンポーネント、領域、レイヤー、及び/又は区間は、このような用語により限定されないと理解されるだろう。
このような用語は、1つのエレメント、コンポーネント、領域、レイヤー、又は区間を他のエレメント、コンポーネント、領域、レイヤー、又は区間から区別するために使用される。
したがって、本明細書で、第1エレメント、コンポーネント、領域、レイヤー、又は区間は、本発明の技術的思想及び範囲を逸脱することなく、第2エレメント、コンポーネント、領域、レイヤー、又は区間と称され得る。
エレメント又はレイヤーが、他のエレメント又はレイヤーとの関係から「その上」、「接続された」、「結合された」、又は「隣接した」と述べられるとき、それは、他のエレメント又はレイヤーとの関係から直接その上に位置した、接続された、結合された、又は隣接したことであり得、1つ以上の介入のエレメント又はレイヤーがそれらの間に存在することであり得る。
エレメント又はレイヤーが他のエレメント又はレイヤーとの関係から「その上に直接位置した」、「直接接続された」、「直接結合された」、又は「隣接した」と述べられるとき、介入のエレメント又はレイヤーがそれらの間に存在しないものと理解されるべきである。
本明細書で、用語である「使用」、「使用する」、及び「使用された」は、各々用語である「利用」、「利用する」、及び「利用された」と類似した用語としてみなされ得る。
本発明の実施形態による解凍システム及び/又は任意の他の関連装置や構成要素は、任意の適切なハードウェア、ファームウェア(例えば、特定用途向け集積回路(Application-Specific Integrated Circuit:ASIC))、ソフトウェア、又は適切なソフトウェア、ファームウェア及びハードウェアの組み合わせを用いて実装され得る。
たとえば、独立した、マルチソースディスプレイ装置の多様な構成要素は、1つのIC(Integrated Circuit)チップ又は別個のICチップとして形成され得る。
また、圧縮システムの多様な構成要素は、フレキシブルプリント回路フィルム(flexible printed circuit film)、テープキャリアパッケージ(Tape Carrier Package:TCP)、又はプリント回路基板(Printed Circuit Board:PCB)上に実装され得るか、又は同一の基板上に形成され得る。
また、圧縮システムの多様な構成要素は、本明細書で記述した多様な機能を実行するために、1つ以上のコンピューティング装置で1つ以上のプロセスを駆動させ、コンピュータプログラムの命令を実行し、そして他のシステム構成要素と相互作用する、プロセス、又はスレッド(thread)であり得る。
コンピュータプログラムの命令は、メモリに格納することができ、例えば、ランダムアクセスメモリ(random access memory:RAM)のような標準的なメモリデバイスを使用してコンピューティング装置において実装され得る。
また、コンピュータプログラムの命令は、例えば、CD-ROM(compact disk read only memory)、フラッシュドライブ(flash drive)、又はこのような非一時的なコンピュータ可読媒体に格納され得る。
また、本発明の技術的思想を逸脱しない範囲内で、通常の技術者(当業者)は、多様なコンピューティング装置の機能が1つのコンピューティング装置に結合若しくは統合することができ、又は特定のコンピューティング装置の機能が1つ以上の他のコンピューティング装置に分散され得ることを認識しなければならない。
尚、本発明は、上述の実施形態に限られるものではない。本発明の技術的範囲から逸脱しない範囲内で多様に変更実施することが可能である。
10 メモリシステム
20 送信機
30 圧縮システム
40 メモリ
50、50-1 圧縮データの解凍システム
60 受信機
100 圧縮データの解凍器
110 コントローラ
120、120-1 第1メモリ(辞書メモリ)
122、132 書き込みポート
124、134 読み出しポート
130 第2メモリ
140 マルチプレクサ

Claims (20)

  1. 解凍器から、圧縮データの解凍されたデータ(decompressed data)を受信するように構成される第1書き込み(write)ポートと、バックリファレンス読み出し(back-reference read)要請を受信するように構成される第1読み出し(read)ポートと、を含む第1メモリと、
    前記第1書き込みポートと電気的に接続され、前記解凍されたデータを受信するように構成された第2書き込みポートを有する第2メモリと、を有し、
    前記第1メモリは、前記第1読み出しポートにおいて、前記バックリファレンス読み出し要請を受信したことに応答して、前記解凍器に、前記圧縮データの前記解凍されたデータに基づいて、直近の後続の圧縮データを解凍したデータを出力するように構成され、
    前記第2メモリは、受信機による検索のために前記解凍されたデータをバッファリングするように構成されることを特徴とする圧縮データの解凍システム。
  2. 前記第2メモリは、圧縮されていないデータの読み出し要請を受信するように構成される第2読み出しポートをさらに含み、
    前記圧縮されていないデータの読み出し要請に応答して、前記受信機に前記解凍されたデータを供給するように構成されることを特徴とする請求項1に記載の圧縮データの解凍システム。
  3. 前記バックリファレンス読み出し要請、及び前記圧縮されていないデータの読み出し要請を生成するように構成されるコントローラと、をさらに有することを特徴とする請求項2に記載の圧縮データの解凍システム。
  4. 前記第1メモリの出力は、前記解凍器と接続され、
    前記第2メモリの出力は、前記受信機と接続されることを特徴とする請求項1に記載の圧縮データの解凍システム。
  5. 前記第1メモリは、前記第2メモリとは独立して動作するように構成されることを特徴とする請求項1に記載の圧縮データの解凍システム。
  6. 前記第1メモリは、前記解凍器によって、圧縮データメモリに圧縮された形式で格納されたデータが解凍されるときに、前記解凍器によって使用される圧縮データの圧縮パターンを表す圧縮プロセスの辞書値(dictionary values)を格納するように構成される辞書メモリを含み、
    ここで、前記圧縮プロセスは、入力データセットで繰り返されるパターン又は文字列の値を探し出すプロセスであり、
    前記第2メモリは、圧縮されていないミラー(uncompressed mirror)書き込みバッファを含むことを特徴とする請求項1に記載の圧縮データの解凍システム。
  7. 前記第2メモリのストレージ容量は、前記第1メモリのストレージ容量よりも小さいことを特徴とする請求項1に記載の圧縮データの解凍システム。
  8. 前記第2メモリの前記ストレージ容量は、前記受信機の入力データレートと前記解凍器の出力データレートとの間のデータレートの不一致に基づき、
    前記ストレージ容量は、前記データレートの不一致により、データ出力を生成し、前記受信機がデータを読み出しする準備が整うまで、前記第2メモリに生成されたデータ出力をバッファリングする量に依存することを特徴とする請求項7に記載の圧縮データの解凍システム。
  9. 受信機と、
    圧縮データを格納するように構成される圧縮データメモリと、
    前記圧縮データメモリから前記圧縮データを検索し、前記受信機からの要請に応答して、前記圧縮データから解凍されたデータを生成するように構成される解凍器と、
    前記解凍器から前記解凍されたデータを受信するように構成される第1書き込みポート、及びバックリファレンス読み出し要請を受信するように構成される第1読み出しポートを有する第1メモリと、
    前記第1書き込みポートと電気的に接続され、前記解凍されたデータを受信するように構成される第2書き込みポートを有する第2メモリと、を有し、
    前記第1メモリは、前記第1読み出しポートにおいて、前記バックリファレンス読み出し要請を受信したことに応答して、前記解凍器に、前記圧縮データの前記解凍されたデータに基づいて、直近の後続の圧縮データを解凍したデータを出力するように構成され、
    前記第2メモリは、前記受信機による検索のために前記解凍されたデータをバッファリングするように構成されることを特徴とするメモリシステム。
  10. 前記第2メモリは、圧縮されていないデータの読み出し要請を受信するように構成される第2読み出しポートをさらに含み、
    前記圧縮されていないデータの読み出し要請に応答して、前記受信機に前記解凍されたデータを供給するように構成されることを特徴とする請求項9に記載のメモリシステム。
  11. 前記バックリファレンス読み出し要請及び前記圧縮されていないデータの読み出し要請を生成するように構成されるコントローラをさらに有し、
    前記コントローラは、再構成可能なプロセッサを含むことを特徴とする請求項10に記載のメモリシステム。
  12. 前記第1メモリの出力は、前記解凍器と接続され、
    前記第2メモリの出力は、前記受信機と接続されることを特徴とする請求項9に記載のメモリシステム。
  13. 前記第1メモリは、前記第2メモリとは独立して動作するように構成されることを特徴とする請求項9に記載のメモリシステム。
  14. 前記第1メモリは、前記解凍器によって、前記圧縮データメモリに格納された前記圧縮データが解凍されるときに、前記解凍器によって使用される圧縮データの圧縮パターンを表す圧縮プロセスの辞書値(dictionary values)を格納するように構成される辞書メモリを含み、
    ここで、前記圧縮プロセスは、入力データセットで繰り返されるパターン又は文字列の値を探し出すプロセスであり、
    前記第2メモリは、圧縮されていないミラー書き込みバッファを含むことを特徴とする請求項9に記載のメモリシステム。
  15. 前記第2メモリのストレージ容量は、前記第1メモリのストレージ容量よりも小さいことを特徴とする請求項9に記載のメモリシステム。
  16. 前記第2メモリの前記ストレージ容量は、前記受信機の入力データレートと前記解凍器の出力データレートとの間のデータレートの不一致に基づき、
    前記ストレージ容量は、前記データレートの不一致により、データ出力を生成し、前記受信機がデータを読み出しする準備が整うまで、前記第2メモリに生成されたデータ出力をバッファリングする量に依存することを特徴とする請求項15に記載のメモリシステム。
  17. 前記解凍器は、前記第1メモリに格納された前記解凍されたデータに基づいて、前記圧縮データメモリからの後続の圧縮データを解凍するように構成されることを特徴とする請求項10に記載のメモリシステム。
  18. メモリシステムに格納されたデータを解凍する方法であって、
    圧縮データメモリに格納されたデータを解凍して、解凍されたデータを生成するように解凍器に指示する段階と、
    ここで、前記格納されたデータは、圧縮された形式であり、
    前記解凍されたデータを第1メモリ及び第2メモリに書き込む段階と、
    バックリファレンス読み出し要請を前記第1メモリに伝送する段階と、
    圧縮されていないデータの読み出し要請を前記第2メモリに伝送する段階と、を有し、
    前記第1メモリは、前記バックリファレンス読み出し要請に応答して、前記解凍器に、前記圧縮された形式で格納されたデータの前記解凍されたデータに基づいて、直近の後続の圧縮データを解凍したデータを出力するように構成され、
    前記第2メモリは、前記圧縮されていないデータの読み出し要請に応答して、前記解凍されたデータを受信機に出力するように構成されることを特徴とするデータ解凍方法。
  19. 前記第1メモリの出力は、前記解凍器と接続され、
    前記第2メモリの出力は、前記受信機と接続されることを特徴とする請求項18に記載のデータ解凍方法。
  20. 前記第1メモリは、前記第2メモリとは独立して動作するように構成されることを特徴とする請求項18に記載のデータ解凍方法。
JP2020097161A 2019-06-12 2020-06-03 圧縮データの解凍システム及びメモリシステム並びにデータ解凍方法 Active JP7481167B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201962860619P 2019-06-12 2019-06-12
US62/860,619 2019-06-12
US16/539,842 2019-08-13
US16/539,842 US11048413B2 (en) 2019-06-12 2019-08-13 Method for reducing read ports and accelerating decompression in memory systems

Publications (3)

Publication Number Publication Date
JP2020201948A JP2020201948A (ja) 2020-12-17
JP2020201948A5 JP2020201948A5 (ja) 2023-06-01
JP7481167B2 true JP7481167B2 (ja) 2024-05-10

Family

ID=73735931

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020097161A Active JP7481167B2 (ja) 2019-06-12 2020-06-03 圧縮データの解凍システム及びメモリシステム並びにデータ解凍方法

Country Status (2)

Country Link
JP (1) JP7481167B2 (ja)
CN (1) CN112083875B (ja)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000278139A (ja) 1999-03-19 2000-10-06 Asahi Kasei Microsystems Kk 圧縮データストリーム復元装置
JP2007221251A (ja) 2006-02-14 2007-08-30 Hitachi Ltd 多重伝送システム
JP2009211494A (ja) 2008-03-05 2009-09-17 Nec Corp 情報処理装置及び方法
JP2016129307A (ja) 2015-01-09 2016-07-14 株式会社日立製作所 通信システム、制御サーバおよび制御方法
US20170235497A1 (en) 2016-02-12 2017-08-17 Oracle International Corporation Decompression history buffer read/write pipelines

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5818873A (en) * 1992-08-03 1998-10-06 Advanced Hardware Architectures, Inc. Single clock cycle data compressor/decompressor with a string reversal mechanism
JPH06303439A (ja) * 1993-04-14 1994-10-28 Fujitsu Ltd イメージデータ処理装置
EP1454240B1 (en) * 2002-05-13 2006-02-08 Trek 2000 International Ltd System and apparatus for compressing and decompressing data stored to a portable data storage device
JP5969914B2 (ja) * 2012-12-20 2016-08-17 株式会社日立情報通信エンジニアリング 動画像圧縮伸張装置
US9059731B2 (en) * 2013-10-21 2015-06-16 International Business Machines Corporation Boosting decompression in the presence of reoccurring Huffman trees
DE112016000726B4 (de) * 2015-02-13 2024-08-01 Google LLC (n.d.Ges.d. Staates Delaware) Transparente hardwareunterstützte speicherdekompression
US9823854B2 (en) * 2016-03-18 2017-11-21 Qualcomm Incorporated Priority-based access of compressed memory lines in memory in a processor-based system
CN108122189B (zh) * 2016-11-29 2021-11-30 三星电子株式会社 硬件中的顶点属性压缩和解压缩
CN107027036A (zh) * 2017-05-12 2017-08-08 郑州云海信息技术有限公司 一种fpga异构加速平台的解压缩方法、装置及系统
US10659797B2 (en) * 2017-10-31 2020-05-19 Google Llc Video frame codec architectures

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000278139A (ja) 1999-03-19 2000-10-06 Asahi Kasei Microsystems Kk 圧縮データストリーム復元装置
JP2007221251A (ja) 2006-02-14 2007-08-30 Hitachi Ltd 多重伝送システム
JP2009211494A (ja) 2008-03-05 2009-09-17 Nec Corp 情報処理装置及び方法
JP2016129307A (ja) 2015-01-09 2016-07-14 株式会社日立製作所 通信システム、制御サーバおよび制御方法
US20170235497A1 (en) 2016-02-12 2017-08-17 Oracle International Corporation Decompression history buffer read/write pipelines

Also Published As

Publication number Publication date
CN112083875B (zh) 2022-09-30
JP2020201948A (ja) 2020-12-17
CN112083875A (zh) 2020-12-15

Similar Documents

Publication Publication Date Title
KR102596644B1 (ko) 메모리 대역폭 활용을 감소시키기 위해 활성화 데이터의 압축 및 압축 해제를 사용하는 신경망 프로세서
JP7421036B2 (ja) ロスレスデータ圧縮
US7924183B2 (en) Method and system for reducing required storage during decompression of a compressed file
US20140086309A1 (en) Method and device for encoding and decoding an image
JP2006099774A (ja) データ処理方法および装置、処理システム、コンピュータ処理システム、コンピュータのネットワーク
US20160124683A1 (en) In-memory data compression complementary to host data compression
WO2023124428A1 (zh) 芯片、加速卡以及电子设备、数据处理方法
CN112235579A (zh) 视频处理方法、计算机可读存储介质及电子设备
CN109508782B (zh) 基于神经网络深度学习的加速电路和方法
US6820087B1 (en) Method and apparatus for initializing data structures to accelerate variable length decode
US7864359B2 (en) Data compression and decompression unit
US6313766B1 (en) Method and apparatus for accelerating software decode of variable length encoded information
JP7481167B2 (ja) 圧縮データの解凍システム及びメモリシステム並びにデータ解凍方法
JPH0234038A (ja) データ圧縮装置
KR102531613B1 (ko) 메모리 시스템에서 읽기 포트들을 줄이고 압축 해제를 가속하는 방법
US20220318604A1 (en) Sparse machine learning acceleration
JP7390251B2 (ja) ストレージシステム
JP2007140858A (ja) メモリアクセス方法及びメモリアクセス装置
US8711013B2 (en) Coding circuitry for difference-based data transformation
JP2577705B2 (ja) 画像圧縮伸長装置及びその制御方法
CN212873459U (zh) 一种用于数据压缩存储的系统
JP3032160B2 (ja) 可変長復号化器における出力デ−タの再配列方法及び回路
EP4435612A1 (en) Memory device using multistage acceleration, operating method of memory device, and electronic device including the same
CN109886862B (zh) 一种数据处理的方法及装置
JP2004362531A (ja) 保存容量を拡張可能なストレージデバイス

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230524

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230524

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20230524

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230613

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230913

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20231128

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240228

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240425

R150 Certificate of patent or registration of utility model

Ref document number: 7481167

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150