IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 三星電子株式会社の特許一覧

特許7481167圧縮データの解凍システム及びメモリシステム並びにデータ解凍方法
<>
  • 特許-圧縮データの解凍システム及びメモリシステム並びにデータ解凍方法 図1
  • 特許-圧縮データの解凍システム及びメモリシステム並びにデータ解凍方法 図2
  • 特許-圧縮データの解凍システム及びメモリシステム並びにデータ解凍方法 図3
  • 特許-圧縮データの解凍システム及びメモリシステム並びにデータ解凍方法 図4
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-04-30
(45)【発行日】2024-05-10
(54)【発明の名称】圧縮データの解凍システム及びメモリシステム並びにデータ解凍方法
(51)【国際特許分類】
   G06F 12/04 20060101AFI20240501BHJP
【FI】
G06F12/04 530
【請求項の数】 20
(21)【出願番号】P 2020097161
(22)【出願日】2020-06-03
(65)【公開番号】P2020201948
(43)【公開日】2020-12-17
【審査請求日】2023-05-24
(31)【優先権主張番号】62/860,619
(32)【優先日】2019-06-12
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】16/539,842
(32)【優先日】2019-08-13
(33)【優先権主張国・地域又は機関】US
【早期審査対象出願】
(73)【特許権者】
【識別番号】390019839
【氏名又は名称】三星電子株式会社
【氏名又は名称原語表記】Samsung Electronics Co.,Ltd.
【住所又は居所原語表記】129,Samsung-ro,Yeongtong-gu,Suwon-si,Gyeonggi-do,Republic of Korea
(74)【代理人】
【識別番号】110000051
【氏名又は名称】弁理士法人共生国際特許事務所
(72)【発明者】
【氏名】ハザイファ エス. ジンワラ
(72)【発明者】
【氏名】ラムダス ピー. カチェア
【審査官】北村 学
(56)【参考文献】
【文献】特開平06-303439(JP,A)
【文献】特表平07-509823(JP,A)
【文献】特開2000-278139(JP,A)
【文献】特開2007-221251(JP,A)
【文献】特開2009-211494(JP,A)
【文献】特開2016-129307(JP,A)
【文献】米国特許出願公開第2017/0235497(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
IPC G06F 12/00 - 12/06
(57)【特許請求の範囲】
【請求項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に記載のデータ解凍方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、メモリにおける圧縮データの解凍システムに関し、特に、圧縮データの解凍時に最大性能の読み出しを提供することができる圧縮データの解凍システム及びメモリシステム並びにデータ解凍方法に関する。
【背景技術】
【0002】
現在のところ、コンピューティングの分野では、一般的に、データ量が増加している。
例えば、ビデオ処理のような特定のアプリケーションにおいて、生成されたデータは、指数関数的に増加する。
このようなデータの増加率は、場合によっては、ストレージシステム容量の増加を超えるものになっている。
【0003】
したがって、多くのコンピュータシステムは、データを圧縮された形態で格納する。
格納されたデータは、圧縮されていない形で消費される必要があるため、格納されたデータが処理される前に格納された圧縮データを解凍する必要がある。
【0004】
そこで、コンピュータシステムでは、日常的に圧縮データの解凍時に最大の読み出し性能を有するような解凍システムの開発が課題となっている。
【先行技術文献】
【特許文献】
【0005】
【文献】米国特許第20060056406号明細書
【文献】米国特許第20110131375号明細書
【文献】米国特許第20110238917号明細書
【文献】米国特許第20130339689号明細書
【文献】米国特許第20160283159号明細書
【発明の概要】
【発明が解決しようとする課題】
【0006】
本発明は上記従来の解凍システムにおける課題に鑑みてなされたものであって、本発明の目的は、1つの読み出し(read)ポート及び1つの書き込み(write)ポートを有するデュアルポートメモリ(つまり、辞書メモリ)と並列に、別のメモリ(つまり、圧縮データの解凍書き込みバッファ)を維持することで、圧縮データを解凍時に、最大性能の読み出しを提供する圧縮データの解凍システム及びメモリシステム並びにデータ解凍方法を提供することにある。
【課題を解決するための手段】
【0007】
上記目的を達成するためになされた本発明による圧縮データの解凍システムは、解凍器から、圧縮データの解凍されたデータ(decompressed data)を受信するように構成される第1書き込み(write)ポートと、バックリファレンス読み出し(back-reference read)要請を受信するように構成される第1読み出し(read)ポートと、を含む第1メモリと、前記第1書き込みポートと電気的に接続され、前記解凍されたデータを受信するように構成された第2書き込みポートを有する第2メモリと、を有し、前記第1メモリは、前記第1読み出しポートにおいて、前記バックリファレンス読み出し要請を受信したことに応答して、前記解凍器に、前記圧縮データの前記解凍されたデータに基づいて、直近の後続の圧縮データを解凍したデータを出力するように構成され、前記第2メモリは、受信機による検索のために前記解凍されたデータをバッファリングするように構成されることを特徴とする。
【0008】
前記第2メモリは、圧縮されていないデータの読み出し要請を受信するように構成される第2読み出しポートを含み、前記圧縮されていないデータの読み出し要請に応答して、前記受信機に圧縮データの解凍されたデータを供給するように構成されることが好ましい。
前記バックリファレンス読み出し要請、及び前記圧縮されていないデータの読み出し要請を生成するように構成されるコントローラと、をさらに有することが好ましい。
前記第1メモリの出力は、前記解凍器と接続され、前記第2メモリの出力は、前記受信機と接続されることが好ましい。
前記第1メモリは、前記第2メモリとは独立して動作するように構成されることが好ましい。
前記第1メモリは、前記解凍器によって、圧縮データメモリに圧縮された形式で格納されたデータが解凍されるときに、前記解凍器によって使用される圧縮データの圧縮パターンを表す圧縮プロセスの辞書値(dictionary values)を格納するように構成される辞書メモリを含み、ここで、前記圧縮プロセスは、入力データセットで繰り返されるパターン又は文字列の値を探し出すプロセスであり、前記第2メモリは、圧縮されていないミラー(uncompressed mirror)書き込みバッファを含むことが好ましい。
前記第2メモリのストレージ容量は、前記第1メモリのストレージ容量よりも小さいことが好ましい。
前記第2メモリの前記ストレージ容量は、前記受信機の入力データレートと前記解凍器の出力データレートとの間のデータレートの不一致に基づき、前記ストレージ容量は、前記データレートの不一致により、データ出力を生成し、前記受信機がデータを読み出しする準備が整うまで、前記第2メモリに生成されたデータ出力をバッファリングする量に依存することが好ましい。
【0009】
上記目的を達成するためになされた本発明によるメモリシステムは、受信機と、圧縮データを格納するように構成される圧縮データメモリと、前記圧縮データメモリから前記圧縮データを検索し、前記受信機からの要請に応答して、前記圧縮データから解凍されたデータを生成するように構成される解凍器と、前記解凍器から前記解凍されたデータを受信するように構成される第1書き込みポート、及びバックリファレンス読み出し要請を受信するように構成される第1読み出しポートを有する第1メモリと、前記第1書き込みポートと電気的に接続され、前記解凍されたデータを受信するように構成される第2書き込みポートを有する第2メモリと、を有し、前記第1メモリは、前記第1読み出しポートにおいて、前記バックリファレンス読み出し要請を受信したことに応答して、前記解凍器に、前記圧縮データの前記解凍されたデータに基づいて、直近の後続の圧縮データを解凍したデータを出力するように構成され、前記第2メモリは、前記受信機による検索のために前記解凍されたデータをバッファリングするように構成されることを特徴とする。
【0010】
前記第2メモリは、圧縮されていないデータの読み出し要請を受信するように構成される第2読み出しポートを含み、前記圧縮されていないデータの読み出し要請に応答して、前記受信機に前記圧縮データの解凍されたデータを供給するように構成されることが好ましい。
前記バックリファレンス読み出し要請及び前記圧縮されていないデータの読み出し要請を生成するように構成されるコントローラをさらに有し、前記コントローラは、再構成可能なプロセッサを含むことが好ましい。
前記第1メモリの出力は、前記解凍器と接続され、前記第2メモリの出力は、前記受信機と接続されることが好ましい。
前記第1メモリは、前記第2メモリとは独立して動作するように構成されることが好ましい。
前記第1メモリは、前記解凍器によって、前記圧縮データメモリに格納された前記圧縮データが解凍されるときに、前記解凍器によって使用される圧縮データの圧縮パターンを表す圧縮プロセスの辞書値(dictionary values)を格納するように構成される辞書メモリを含み、ここで、前記圧縮プロセスは、入力データセットで繰り返されるパターン又は文字列の値を探し出すプロセスであり、前記第2メモリは、圧縮されていないミラー書き込みバッファを含むことが好ましい。
前記第2メモリのストレージ容量は、前記第1メモリのストレージ容量よりも小さいことが好ましい。
前記第2メモリの前記ストレージ容量は、前記受信機の入力データレートと前記解凍器の出力データレートとの間のデータレートの不一致に基づき、前記ストレージ容量は、前記データレートの不一致により、データ出力を生成し、前記受信機がデータを読み出しする準備が整うまで、前記第2メモリに生成されたデータ出力をバッファリングする量に依存することが好ましい。
前記解凍器は、前記第1メモリに格納された前記圧縮データの解凍されたデータに基づいて、前記圧縮データメモリからの後続の圧縮データを解凍するように構成されることが好ましい。
【0011】
上記目的を達成するためになされた本発明によるデータ解凍方法は、メモリシステムに格納されたデータを解凍する方法であって、圧縮データメモリに格納されたデータを解凍して、解凍されたデータを生成するように解凍器に指示する段階と、ここで、前記格納されたデータは、圧縮された形式であり、前記解凍されたデータを第1メモリ及び第2メモリに書き込む段階と、バックリファレンス読み出し要請を前記第1メモリに伝送する段階と、圧縮されていないデータの読み出し要請を前記第2メモリに伝送する段階と、を有し、前記第1メモリは、前記バックリファレンス読み出し要請に応答して、前記解凍器に、前記圧縮された形式で格納されたデータの前記解凍されたデータに基づいて、直近の後続の圧縮データを解凍したデータを出力するように構成され、前記第2メモリは、前記圧縮されていないデータの読み出し要請に応答して、前記解凍されたデータを受信機に出力するように構成されることを特徴とする。
【0012】
前記第1メモリの出力は、前記解凍器と接続され、前記第2メモリの出力は、前記受信機と接続されることが好ましい。
前記第1メモリは、前記第2メモリとは独立して動作するように構成されることが好ましい。
【発明の効果】
【0013】
本発明に係る圧縮データの解凍システム及びメモリシステム並びにデータ解凍方法によれば、読み出しポートの数が減少し、圧縮データの解凍されたデータの読み出しを加速化することができる。
また、圧縮データの解凍時に、低い消費電力だけではなく、比較的高いスループット(throughput)と低いレイテンシの読み出しパフォーマンスを有することができる。
【図面の簡単な説明】
【0014】
図1】本発明の実施形態によるメモリシステムの概略構成を示すブロック図である。
図2】本発明の実施形態によるメモリ解凍システムの構成を示すブロック図である。
図3】本発明の実施形態による比較としての解凍システムの構成を示すブロック図である。
図4】本発明の実施形態によるメモリシステムに格納されたデータを解凍する動作を例として説明するためのフローチャートである。
【発明を実施するための形態】
【0015】
次に、本発明に係る圧縮データの解凍システム及びメモリシステム並びにデータ解凍方法を実施するための形態の具体例を図面を参照しながら説明する。
【0016】
以下での詳しい説明は、本発明の実施形態に基づいて提供される、圧縮データの解凍のためのシステム及び方法の実施形態を例として説明するものを意図し、本発明で構成又は利用される唯一の形態を示すものとは意図しない。
詳しい説明は、例としての実施形態とともに、本発明の特徴を示す。
しかし、他の実施形態によって達成される同一又は均等な機能と構造は、本発明の技術的思想に含まれるものと理解されるべきである。
前述したように、類似のエレメントの符号は、類似のエレメント又は特徴を示すものと意図する。
【0017】
データのサイズが増加するにつれ、ストレージシステムは、圧縮された形態でデータを格納する。
しかし、データ生成器(data generators)及びデータコンシューマー(data consumers)は、圧縮されていない形態でデータを生成及び消費する(consume)ため、ストレージソリューションは、圧縮及び圧縮データの解凍技術にさらに依存する。
しかし、このような形態のストレージに依存するシステムにおいて、圧縮及び圧縮データの解凍は、演算負荷を増加させる可能性があり、消費電力を増加させてレイテンシ(例えば、データの検索レイテンシ)を引き起こす可能性がある。
【0018】
本発明は、メモリの圧縮データの解凍時、低い消費電力だけでなく、比較的高いスループット(throughput)と低いレイテンシの読み出しパフォーマンスを提供する圧縮データの解凍システム及びメモリシステムに関する。
【0019】
図1は、本発明の実施形態によるメモリシステムの概略構成を示すブロック図である。
図1を参照すると、メモリシステム10は、送信機20と、圧縮システム30と、メモリ(例えば、圧縮データメモリ)40と、圧縮データの解凍システム50と、受信機60と、を備える。
【0020】
送信機20及び受信機60は、圧縮されていない形態でデータを処理することができる。
しかし、いくつかの実施形態では、大きいサイズのデータは、送信機20と受信機60との間で伝送され得る。
したがって、これらのデータを格納するのに使用されるメモリ40の限られた容量のため、メモリシステム10は、メモリ40にデータを格納する前にデータを圧縮する。
その後、メモリシステム10は、受信機60が格納された情報に対する読み出し(read)要請をすると、格納されたデータを解凍する。
【0021】
いくつかの実施形態では、メモリシステム10は、グラフィックス処理システムであり得、送信機20は、イメージフレームバッファを含み得、送信機20からのデータは、グラフィックス処理システムによって処理されたイメージデータを含み得、メモリ40は、グラフィックス処理ユニットのオンチップL2キャッシュを含み得、そして受信機60は、テクスチャユニット(texture unit)のような追加の処理ユニットを含み得る。
しかし、本発明はこれに限定されない。
たとえば、ストレージ装置において、送信機20及び受信機60は、ホストプロセス(例えば、ホストコンピュータのユーザー又はシステムプロセス)を表すことができ、メモリ40は、ソリッドステートドライブ(Solid State Drive:SSD)、ハードディスクドライブ(Hard Disk Drive:HDD)などのような非揮発性メモリであり得る。
いくつかの実施形態では、受信機60は、外部ストレージ装置を含み得る。
【0022】
圧縮システム30は、送信機20から受信したデータブロック(例えば、テクスチャブロック)に対して圧縮(例えば、固定又は可変レートの圧縮)を実行する。
圧縮システム30は、データのブロックを分析することにより、以下のように実行する。
各々の個々のデータブロックに対して、関連付けられたデータタイプ(例えば、フラットデータタイプ、平面データタイプ、ウェーブレット(wavelet)データタイプ、スプライン(spline)データタイプなど)及び関連付けられた圧縮タイプを独立的に決定し、関連付けられた圧縮タイプに応じて、各々のデータブロックを圧縮する。
その後、圧縮データは、メモリ40に格納する。
受信機60が格納されている圧縮データに対応する圧縮されていないデータを要請すると、圧縮データの解凍システム50は、圧縮のうち、圧縮システム30で生成されたメタデータ及び辞書値を用いて格納されている圧縮データを解凍し、解凍されたデータを受信機60に提供する。
【0023】
図2は、本発明の実施形態によるメモリ解凍システムの構成を示すブロック図であり、図3は、本発明の実施形態による比較としての解凍システムの構成を示すブロック図である。
【0024】
図2を参照すると、圧縮データの解凍システム50は、圧縮データの解凍器100と、コントローラ(例えば、解凍コントローラ)110と、第1メモリ(例えば、辞書(dictionary)メモリ)120と、第2メモリ(例えば、圧縮されていないミラー書き込み(write)バッファ)130と、を備える。
第1メモリ120は、第2メモリ130から分離することができ(例えば、別のメモリダイ(die)のように)、第2メモリ130とは独立して動作(例えば、読み出し(read)及び書き込み(write)要請を処理)するように構成される。
【0025】
第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)などのような再構成可能なプロセッサを含み得る。
【0026】
いくつかの実施形態では、第1メモリ120は、圧縮システム30によって実行された圧縮プロセスからの辞書値(dictionary values)を格納する、辞書メモリを含む。
辞書値は、格納されたデータを解凍する圧縮データの解凍器によって使用される圧縮データの圧縮パターンを表す。
言い換えると、圧縮プロセスは、入力データセット(dataset)で繰り返されるパターン又は文字列(string)の値を探し出す。
【0027】
これら検出された繰り返しパターンは、圧縮された出力データにエンコーディングされて検出されたパターンに対する1つのリファレンスコピーを有し、その後の入力データセットで、そのパターンのすべての後続の発生に対しそのコピーを参照する。
いくつかの実施形態によると、辞書値は、重複データブロックに対する圧縮データの1つのインスタンス(instance)、ピクセルデータブロックを表す1つ以上の値(例えば、フラット(flat)ピクセルブロックを示す単一の値)、又はこれらの組み合わせなどを含み得る。
【0028】
たとえば、テキスト入力データセットで、文字列の「big dog」が5回表わされる場合には、これらの入力に対する圧縮された出力データは、1番目のインスタンスのためにコピーされた「big dog」を含むことができ、残りの4つのインスタンスは、コピーされた「big dog」を参照して、エンコーディングされる。
このようなことから、入力データセットでの5つの「big dog」のパターンは、1つの「big dog」のパターンと4つの参照ポインタに縮小することができ、したがって圧縮された出力の大きさは、入力データセットのサイズに比べて大幅に減少され得る。
【0029】
つまり、バックリファレンスポインタの観点から、入力データセットで繰り返されたパターンをエンコーディングすることで、圧縮器は、高い圧縮率を達成することができる。
また、第1メモリ120は、圧縮データの解凍器100によって生成される解凍されたデータを格納することができ、圧縮データの解凍されたデータに依存する後続の圧縮データの解凍されたデータを、圧縮データの解凍器100によって、生成することができる。
つまり、いくつかの実施形態で、第1メモリ120の出力は、フィードバックライン126を介して圧縮データの解凍器100と接続される。
【0030】
いくつかの実施形態によると、第2メモリ130は、受信機60による後の検索のために、圧縮データの解凍器100によって生成される解凍されたデータを一時的に格納する伝送バッファとして機能する。
第2メモリ130は、任意の辞書値を格納しない可能性があり、最近の圧縮データの解凍されたデータを格納するように(例えば、最近、圧縮データの解凍されたデータのみを格納するように)構成されるので、第2メモリ130のストレージ容量は、第1メモリ120のストレージ容量よりも小さくすることができる。
したがって、第2メモリ130の容量は、受信機60に伝送されるデータの量と同一であり得る。
【0031】
いくつかの実施形態では、第2メモリ130の容量は、受信機60の入力データレートと圧縮データの解凍器100の出力データレートとの間のデータレートの不一致によって決定される。
第2メモリ130の容量は、特定の設計の実現に関連付けられたバーストバッファリング(burst buffering)の量に依存する。
例えば、受信機60は、圧縮データの解凍器100のスループットよりも遅いレートでデータを処理する。
このとき、圧縮データの解凍システム50は、データ出力を生成し、受信機60がデータを読み出しする準備が整うまで、第2メモリ130に生成されたデータ出力をバッファリングする。
【0032】
したがって、圧縮データの解凍システム50は、データコンシューマー(例えば、受信機)が遅いレートで動作しても、圧縮データの解凍システム50が、動作を持続させる第2メモリ130の形態で一定量のバーストバッファリングを実装する。
このとき、第2メモリ130の固定されたサイズは、圧縮方式に関連付けられたブロックサイズとは独立して作られ得る。
ブロックサイズは、圧縮データの解凍システムの全体のメモリリソースの使用量を減らすのに役立つことができる。
また、第1メモリ120の形態で辞書の貯蔵と圧縮データの解凍システム50の出力を分離することにより、第2メモリ130は、データのコンシューマー(例えば、受信機60)に伝送される圧縮されていない出力データのレイテンシを改善することができる。
【0033】
受信機60からのデータ要請に応答して、圧縮データの解凍器100は、メモリ40に格納されている圧縮データを解凍する。
したがって、圧縮データの解凍器100は、圧縮データの解凍されたデータを、第1及び第2メモリ(120、130)の両方に伝送することができる。
そして、コントローラ110は、圧縮データに含まれているメタデータをデコーディングすることにより、メモリ40に格納されている圧縮データを解釈する。
【0034】
圧縮データのメタデータは、後続の解凍された出力データを発生又は生成する方法を表す。
いくつかの例において、これは、圧縮データから解凍されたデータにパターンを直接コピーすることや、初期の圧縮データの解凍されたデータの出力から特定のパターンをコピーすることを含み得る。
第1の例で、メタデータは、入力データセットで現在の「8」バイトを、そのまま、圧縮されていない出力にコピーすることを表す。
第2の例では、メタデータは、以前に圧縮されていないデータの特定の位置から「16」のバイトをコピーすることを表す。
第1の例で、コントローラ110は、第1及び第2メモリ(120、130)に直接書き込みを行う。
第2の例では、コントローラ110は、以前の解凍されたデータから適切な位置をまず読み出して(例えば、バックリファレンス動作を介して)、以後、圧縮データの解凍されたデータを、第1及び第2メモリ(120、130)の両方で適切な位置に記入する。
【0035】
これらの解凍されたデータは、電気的に接続された(例えば、結び付けられる)第1及び第2メモリ(120、130)の各々の書き込みポート(122、132)によって並行に受信(例えば、同時に受信)される。
いくつかの実施形態によると、コントローラ110は、メモリ(120、130)のすべてに圧縮されていないデータの書き込みを制御して開始することができる。
【0036】
いくつかの例では、メモリ40に格納されたデータを解凍するときに、圧縮データの解凍器100は、以前の解凍されたデータに基づいて使用することができる。
いくつかの実施形態によると、コントローラ110は、バックリファレンス読み出し信号(バックリファレンス読み出し要請ともいう)を第1メモリ120の読み出しポート122に伝送し、圧縮データの解凍器100に、直近に圧縮データの解凍されたデータを再び出力する第1メモリ120の信号は、バックリファレンスのためのものである。
【0037】
また、コントローラ110は、第2メモリ130を維持し、圧縮されていないデータの読み出し要請を読み出しポート134に伝送して、第2メモリ130がバッファリングされた圧縮データの解凍されたデータを受信機60にリリース(例えば、出力)するように指示する。
また、第2メモリ130のデータ検索の動作は、第1メモリ120のバックリファレンス動作と分離することができ、格納されたデータが圧縮されていないとき、圧縮データの解凍されたデータは、受信機60に圧縮されていないデータを要請させ得る。
【0038】
いくつかの例では、圧縮されていないデータを検索し、受信機60に伝送するプロセスは、第1メモリ120にアクセスしない場合があり、したがって、読み出しポート124の帯域幅は、バックリファレンスデータ(例えば、第1メモリ120に格納された圧縮されていないデータ)から読み出しを行う解凍プロセス専用であり得る。
【0039】
バックリファレンス読み出し要請、及び圧縮されていないデータの読み出し要請を2つの独立したメモリの2つの分離された読み出しポートに伝送することにより、バックリファレンスと圧縮されていないデータの読み出し動作は、相対的に低い確定的(deterministic)レイテンシで同時に(例えば、共に)実行することができ、圧縮データの解凍システム50の全体的な圧縮率を向上させる(例えば、増加させる)ことができる。
【0040】
上述した技術を、2つの要請が、1つの辞書メモリ(120-1)の1つの読み出しポート124に伝送される比較としての例(図3の圧縮データの解凍システム(50-1)参照)と対照する。
このような比較例では、2つの要請は、(たとえば、時分割多重化(time-division multiplexing)、ラウンドロビン優先順位(round robin priority)、厳密優先順位(strict priority)などを使用して)読み取りポートでアービトレータ(たとえば、マルチプレクサ140)によるアービトレーション(arbitration)を受ける可能性があり、解凍システムの複雑さが増す可能性があります。
また、他の動作が開始される前に、1つの動作が完了しなければならないため、このようなアービトレーションは、追加の非確定的な(non-deterministic)レイテンシをもたらす可能性があります。
【0041】
これにより、装置の計算量が増加してシステム全体のパフォーマンスが低下する可能性がある。
また、デュアルポートメモリ(マルチポートメモリとは対照的)を含み得る第1及び第2メモリ(120、130)を利用することにより、圧縮データの解凍システムは、比較的低コストで実現することができます。
さらに、メモリ(120、130)の各々が、1つ(2つと対照的な)の業務を実行することは、装置へのアクセス回数を減らし、消費電力を低減させ、システムの全体的なロバストネス(robustness)及び信頼性を向上させることができる。
【0042】
図4は、本発明の実施形態によるメモリシステムに格納されたデータを解凍するプロセス200の動作を例として説明するためのフローチャートである。
図2を参照して、いくつかの実施形態によると、受信機60が、メモリ40に格納されたデータを圧縮された形態で要請するとき、コントローラ110は、圧縮データの解凍器100が格納されたデータを解凍するように指示して、圧縮データの解凍されたデータを生成することができる(ステップS202)。
【0043】
その後、コントローラ110は、圧縮データの解凍器100を介して、圧縮データの解凍されたデータを第1メモリ120及び第2メモリ130に同時に記入する(ステップS204)。
後続の格納されたデータが解凍される前に、コントローラ110は、第1メモリ120に圧縮データの解凍されたデータを圧縮データの解凍器100に出力させる、バックリファレンス読み出し要請を第1メモリ120に伝送する(ステップS206)。
次に、コントローラ110は、第2メモリ130にバッファリングされている圧縮データの解凍されたデータを受信機60に出力させる、圧縮されていないデータの読み出し要請を第2メモリ130に伝送する(ステップS208)。
【0044】
したがって、上述したように、圧縮データの解凍システムは、圧縮されていないデータを有するメモリに必要なポートの数を減らす(例えば、最小化する)ことができる。
オンチップ辞書メモリからの読み出しは、受信機やデータコンシューマーへのデータ伝送に必要としない場合がある。
これは、メモリの読み出しに必要とされるエージェント(agent)の数を減らすことができ、読み出しポートを減らし、アービトレーションをなくし、そして複雑度を下げることができる。
このようなエージェントの減少は、全体的な圧縮データの解凍レートを高め、圧縮されていないデータのレイテンシを低減し、そして決定的なレイテンシを提供することができる。
【0045】
本明細書で使用する用語は、特定の実施形態を記述するための目的として使用され、本発明を限定する意図で使用されない。
文脈上明らかに別のものを示していると定義されない限り、単数形は、複数形を含む意図で使用する。
そして「含む」又は「含んで限定されない」の用語は、本明細書に使用する場合には、記述された特徴、数字、段階、動作、エレメント、及び/又はコンポーネントの存在を明示するが、1つ以上の他の特徴、数字、段階、動作、エレメント、コンポーネント、及び/又はこれらのグループの存在若しくは追加を排除しない。
本明細書で使用する用語「及び/又は」は、1つ以上の関連付けられた列挙項目の任意の全ての組み合わせが含まれ得ることを意味する。
また、本明細書において、用語「できる」の使用は、「本発明の1つ以上の実施形態」を意味する。
また、用語「例としての」は、例示又は説明を意味するものと意図する。
【0046】
本明細書では、たとえば、第1、第2、第3などの用語は、多様なエレメント、コンポーネント、領域、レイヤー、及び/又は区間を説明するために使用するが、これらのエレメント、コンポーネント、領域、レイヤー、及び/又は区間は、このような用語により限定されないと理解されるだろう。
このような用語は、1つのエレメント、コンポーネント、領域、レイヤー、又は区間を他のエレメント、コンポーネント、領域、レイヤー、又は区間から区別するために使用される。
したがって、本明細書で、第1エレメント、コンポーネント、領域、レイヤー、又は区間は、本発明の技術的思想及び範囲を逸脱することなく、第2エレメント、コンポーネント、領域、レイヤー、又は区間と称され得る。
【0047】
エレメント又はレイヤーが、他のエレメント又はレイヤーとの関係から「その上」、「接続された」、「結合された」、又は「隣接した」と述べられるとき、それは、他のエレメント又はレイヤーとの関係から直接その上に位置した、接続された、結合された、又は隣接したことであり得、1つ以上の介入のエレメント又はレイヤーがそれらの間に存在することであり得る。
エレメント又はレイヤーが他のエレメント又はレイヤーとの関係から「その上に直接位置した」、「直接接続された」、「直接結合された」、又は「隣接した」と述べられるとき、介入のエレメント又はレイヤーがそれらの間に存在しないものと理解されるべきである。
本明細書で、用語である「使用」、「使用する」、及び「使用された」は、各々用語である「利用」、「利用する」、及び「利用された」と類似した用語としてみなされ得る。
【0048】
本発明の実施形態による解凍システム及び/又は任意の他の関連装置や構成要素は、任意の適切なハードウェア、ファームウェア(例えば、特定用途向け集積回路(Application-Specific Integrated Circuit:ASIC))、ソフトウェア、又は適切なソフトウェア、ファームウェア及びハードウェアの組み合わせを用いて実装され得る。
たとえば、独立した、マルチソースディスプレイ装置の多様な構成要素は、1つのIC(Integrated Circuit)チップ又は別個のICチップとして形成され得る。
また、圧縮システムの多様な構成要素は、フレキシブルプリント回路フィルム(flexible printed circuit film)、テープキャリアパッケージ(Tape Carrier Package:TCP)、又はプリント回路基板(Printed Circuit Board:PCB)上に実装され得るか、又は同一の基板上に形成され得る。
【0049】
また、圧縮システムの多様な構成要素は、本明細書で記述した多様な機能を実行するために、1つ以上のコンピューティング装置で1つ以上のプロセスを駆動させ、コンピュータプログラムの命令を実行し、そして他のシステム構成要素と相互作用する、プロセス、又はスレッド(thread)であり得る。
コンピュータプログラムの命令は、メモリに格納することができ、例えば、ランダムアクセスメモリ(random access memory:RAM)のような標準的なメモリデバイスを使用してコンピューティング装置において実装され得る。
また、コンピュータプログラムの命令は、例えば、CD-ROM(compact disk read only memory)、フラッシュドライブ(flash drive)、又はこのような非一時的なコンピュータ可読媒体に格納され得る。
また、本発明の技術的思想を逸脱しない範囲内で、通常の技術者(当業者)は、多様なコンピューティング装置の機能が1つのコンピューティング装置に結合若しくは統合することができ、又は特定のコンピューティング装置の機能が1つ以上の他のコンピューティング装置に分散され得ることを認識しなければならない。
【0050】
尚、本発明は、上述の実施形態に限られるものではない。本発明の技術的範囲から逸脱しない範囲内で多様に変更実施することが可能である。
【符号の説明】
【0051】
10 メモリシステム
20 送信機
30 圧縮システム
40 メモリ
50、50-1 圧縮データの解凍システム
60 受信機
100 圧縮データの解凍器
110 コントローラ
120、120-1 第1メモリ(辞書メモリ)
122、132 書き込みポート
124、134 読み出しポート
130 第2メモリ
140 マルチプレクサ
図1
図2
図3
図4