(57)【要約】【課題】１つの読み出しポートと１つの書き込みポートを有するデュアルポートメモリと並列に別のメモリを維持することで、圧縮データを解凍時に最大性能の読み出しを提供する圧縮データの解凍システム及びその方法を提供する。【解決手段】解凍器から圧縮データの解凍されたデータを受信するように構成される第１書き込みポートとバックリファレンス読み出し要請を受信するように構成される第１読み出しポートとを含む第１メモリと、第１書き込みポートと電気的に接続され、圧縮データの解凍されたデータを受信するように構成された第２書き込みポートを有する第２メモリとを有し、第１メモリは第１読み出しポートにおいて、バックリファレンス読み出し要請を受信したことに応答して、解凍器に圧縮データの解凍されたデータを出力するように構成され、第２メモリは受信機による検索のために圧縮データの解凍されたデータをバッファリングするように構成される。【選択図】  図２
2020201948.tif 000002
【特許請求の範囲】
【請求項１】
解凍器から圧縮データの解凍されたデータを受信するように構成される第１書き込み（ｗｒｉｔｅ）ポートと、バックリファレンス読み出し（ｂａｃｋ−ｒｅｆｅｒｅｎｃｅ  ｒｅａｄ）要請を受信するように構成される第１読み出し（ｒｅａｄ）ポートと、を含む第１メモリと、
前記第１書き込みポートと電気的に接続され、前記圧縮データの解凍されたデータを受信するように構成された第２書き込みポートを有する第２メモリと、を有し、
前記第１メモリは、前記第１読み出しポートにおいて、前記バックリファレンス読み出し要請を受信したことに応答して、前記解凍器に圧縮データの前記解凍されたデータを出力するように構成され、
前記第２メモリは、受信機による検索のために前記圧縮データの解凍されたデータをバッファリングするように構成されることを特徴とする圧縮データの解凍システム。
【請求項２】
前記第２メモリは、圧縮されていないデータの読み出し要請を受信するように構成される第２読み出しポートを含み、
前記圧縮されていないデータの読み出し要請に応答して、前記受信機に圧縮データの解凍されたデータを供給するように構成されることを特徴とする請求項１に記載の圧縮データの解凍システム。
【請求項３】
前記バックリファレンス読み出し要請、及び前記圧縮されていないデータの読み出し要請を生成するように構成されるコントローラと、をさらに有することを特徴とする請求項２に記載の圧縮データの解凍システム。
【請求項４】
前記第１メモリの出力は、前記解凍器と接続され、
前記第２メモリの出力は、前記受信機と接続されることを特徴とする請求項１に記載の圧縮データの解凍システム。
【請求項５】
前記第１メモリは、前記第２メモリとは独立して動作するように構成されることを特徴とする請求項１に記載の圧縮データの解凍システム。
【請求項６】
前記第１メモリは、前記圧縮データの解凍器によって解凍され、格納されたデータに対して実行される圧縮プロセスからの辞書値（ｄｉｃｔｉｏｎａｒｙ  ｖａｌｕｅｓ）を格納するように構成される辞書メモリを含み、
前記第２メモリは、圧縮されていないミラー（ｕｎｃｏｍｐｒｅｓｓｅｄ  ｍｉｒｒｏｒ）書き込みバッファを含むことを特徴とする請求項１に記載の圧縮データの解凍システム。
【請求項７】
前記第２メモリのストレージ容量は、前記第１メモリのストレージ容量よりも小さいことを特徴とする請求項１に記載の圧縮データの解凍システム。
【請求項８】
前記第２メモリの前記ストレージ容量は、前記受信機の入力データレートと前記解凍器の出力データレートとの間のデータレートの不一致に基づくことを特徴とする請求項７に記載の圧縮データの解凍システム。
【請求項９】
受信機と、
圧縮データを格納するように構成される圧縮データメモリと、
前記圧縮データメモリから前記圧縮データを検索し、前記受信機からの要請に応答して、前記圧縮データから解凍されたデータを生成するように構成される解凍器と、
前記解凍器から前記解凍されたデータを受信するように構成される第１書き込みポート、及びバックリファレンス読み出し要請を受信するように構成される第１読み出しポートを有する第１メモリと、
前記第１書き込みポートと電気的に接続され、前記圧縮データの解凍されたデータを受信するように構成される第２書き込みポートを有する第２メモリと、を有し、
前記第１メモリは、前記第１読み出しポートにおいて、前記バックリファレンス読み出し要請を受信したことに応答して、前記解凍器に前記圧縮データの解凍されたデータを出力するように構成され、
前記第２メモリは、前記受信機による検索のために前記圧縮データの解凍されたデータをバッファリングするように構成されることを特徴とするメモリシステム。
【請求項１０】
前記第２メモリは、圧縮されていないデータの読み出し要請を受信するように構成される第２読み出しポートを含み、
前記圧縮されていないデータの読み出し要請に応答して、前記受信機に前記圧縮データの解凍されたデータを供給するように構成されることを特徴とする請求項９に記載のメモリシステム。
【請求項１１】
前記バックリファレンス読み出し要請及び前記圧縮されていないデータの読み出し要請を生成するように構成されるコントローラをさらに有し、
前記コントローラは、再構成可能なプロセッサを含むことを特徴とする請求項１０に記載のメモリシステム。
【請求項１２】
前記第１メモリの出力は、前記解凍器と接続され、
前記第２メモリの出力は、前記受信機と接続されることを特徴とする請求項９に記載のメモリシステム。
【請求項１３】
前記第１メモリは、前記第２メモリとは独立して動作するように構成されることを特徴とする請求項９に記載のメモリシステム。
【請求項１４】
前記第１メモリは、前記圧縮データメモリに格納された前記圧縮データに対し実行される圧縮プロセスからの辞書値を格納するように構成される辞書メモリを含み、
前記第２メモリは、圧縮されていないミラー書き込みバッファを含むことを特徴とする請求項９に記載のメモリシステム。
【請求項１５】
前記第２メモリのストレージ容量は、前記第１メモリのストレージ容量よりも小さいことを特徴とする請求項９に記載のメモリシステム。
【請求項１６】
前記第２メモリの前記ストレージ容量は、前記受信機の入力データレートと前記解凍器の出力データレートとの間のデータレートの不一致に基づくことを特徴とする請求項１５に記載のメモリシステム。
【請求項１７】
前記解凍器は、前記第１メモリに格納された前記圧縮データの解凍されたデータに基づいて、前記圧縮データメモリからの後続の圧縮データを解凍するように構成されることを特徴とする請求項１０に記載のメモリシステム。
【請求項１８】
メモリシステムに格納されたデータを解凍する方法であって、
圧縮データメモリに圧縮された形態で格納されたデータを解凍して、解凍されたデータを生成するように解凍器に指示する段階と、
前記解凍されたデータを第１メモリ及び第２メモリに書き込む段階と、
バックリファレンス読み出し要請を前記第１メモリに伝送する段階と、
圧縮されていないデータの読み出し要請を前記第２メモリに伝送する段階と、を有し、
前記第１メモリは、前記バックリファレンス読み出し要請に応答して、前記解凍されたデータを前記解凍器に出力するように構成され、
前記第２メモリは、前記圧縮されていないデータの読み出し要請に応答して、前記解凍されたデータを受信機に出力するように構成されることを特徴とするデータ解凍方法。
【請求項１９】
前記第１メモリの出力は、前記解凍器と接続され、
前記第２メモリの出力は、前記受信機と接続されることを特徴とする請求項１８に記載のデータ解凍方法。
【請求項２０】
前記第１メモリは、前記第２メモリとは独立して動作するように構成されることを特徴とする請求項１８に記載のデータ解凍方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリにおける圧縮データの解凍システムに関し、特に、圧縮データの解凍時に最大性能の読み出しを提供することができる圧縮データの解凍システム及びメモリシステム並びにデータ解凍方法に関する。
【背景技術】
【０００２】
現在のところ、コンピューティングの分野では、一般的に、データ量が増加している。
例えば、ビデオ処理のような特定のアプリケーションにおいて、生成されたデータは、指数関数的に増加する。
このようなデータの増加率は、場合によっては、ストレージシステム容量の増加を超えるものになっている。
【０００３】
したがって、多くのコンピュータシステムは、データを圧縮された形態で格納する。
格納されたデータは、圧縮されていない形で消費される必要があるため、格納されたデータが処理される前に格納された圧縮データを解凍する必要がある。
【０００４】
そこで、コンピュータシステムでは、日常的に圧縮データの解凍時に最大の読み出し性能を有するような解凍システムの開発が課題となっている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】米国特許第２００６００５６４０６号明細書
【特許文献２】米国特許第２０１１０１３１３７５号明細書
【特許文献３】米国特許第２０１１０２３８９１７号明細書
【特許文献４】米国特許第２０１３０３３９６８９号明細書
【特許文献５】米国特許第２０１６０２８３１５９号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明は上記従来の解凍システムにおける課題に鑑みてなされたものであって、本発明の目的は、１つの読み出し（ｒｅａｄ）ポート及び１つの書き込み（ｗｒｉｔｅ）ポートを有するデュアルポートメモリ（つまり、辞書メモリ）と並列に、別のメモリ（つまり、圧縮データの解凍書き込みバッファ）を維持することで、圧縮データを解凍時に、最大性能の読み出しを提供する圧縮データの解凍システム及びメモリシステム並びにデータ解凍方法を提供することにある。
【課題を解決するための手段】
【０００７】
上記目的を達成するためになされた本発明による圧縮データの解凍システムは、解凍器から圧縮データの解凍されたデータを受信するように構成される第１書き込み（ｗｒｉｔｅ）ポートと、バックリファレンス読み出し（ｂａｃｋ−ｒｅｆｅｒｅｎｃｅ  ｒｅａｄ）要請を受信するように構成される第１読み出し（ｒｅａｄ）ポートと、を含む第１メモリと、前記第１書き込みポートと電気的に接続され、前記圧縮データの解凍されたデータを受信するように構成された第２書き込みポートを有する第２メモリと、を有し、前記第１メモリは、前記第１読み出しポートにおいて、前記バックリファレンス読み出し要請を受信したことに応答して、前記解凍器に圧縮データの前記解凍されたデータを出力するように構成され、前記第２メモリは、受信機による検索のために前記圧縮データの解凍されたデータをバッファリングするように構成されることを特徴とする。
【０００８】
前記第２メモリは、圧縮されていないデータの読み出し要請を受信するように構成される第２読み出しポートを含み、前記圧縮されていないデータの読み出し要請に応答して、前記受信機に圧縮データの解凍されたデータを供給するように構成されることが好ましい。
前記バックリファレンス読み出し要請、及び前記圧縮されていないデータの読み出し要請を生成するように構成されるコントローラと、をさらに有することが好ましい。
前記第１メモリの出力は、前記解凍器と接続され、前記第２メモリの出力は、前記受信機と接続されることが好ましい。
前記第１メモリは、前記第２メモリとは独立して動作するように構成されることが好ましい。
前記第１メモリは、前記圧縮データの解凍器によって解凍され、格納されたデータに対して実行される圧縮プロセスからの辞書値（ｄｉｃｔｉｏｎａｒｙ  ｖａｌｕｅｓ）を格納するように構成される辞書メモリを含み、前記第２メモリは、圧縮されていないミラー（ｕｎｃｏｍｐｒｅｓｓｅｄ  ｍｉｒｒｏｒ）書き込みバッファを含むことが好ましい。
前記第２メモリのストレージ容量は、前記第１メモリのストレージ容量よりも小さいことが好ましい。
前記第２メモリの前記ストレージ容量は、前記受信機の入力データレートと前記解凍器の出力データレートとの間のデータレートの不一致に基づくことが好ましい。
【０００９】
上記目的を達成するためになされた本発明によるメモリシステムは、受信機と、圧縮データを格納するように構成される圧縮データメモリと、前記圧縮データメモリから前記圧縮データを検索し、前記受信機からの要請に応答して、前記圧縮データから解凍されたデータを生成するように構成される解凍器と、前記解凍器から前記解凍されたデータを受信するように構成される第１書き込みポート、及びバックリファレンス読み出し要請を受信するように構成される第１読み出しポートを有する第１メモリと、前記第１書き込みポートと電気的に接続され、前記圧縮データの解凍されたデータを受信するように構成される第２書き込みポートを有する第２メモリと、を有し、前記第１メモリは、前記第１読み出しポートにおいて、前記バックリファレンス読み出し要請を受信したことに応答して、前記解凍器に前記圧縮データの解凍されたデータを出力するように構成され、前記第２メモリは、前記受信機による検索のために前記圧縮データの解凍されたデータをバッファリングするように構成されることを特徴とする。
【００１０】
前記第２メモリは、圧縮されていないデータの読み出し要請を受信するように構成される第２読み出しポートを含み、前記圧縮されていないデータの読み出し要請に応答して、前記受信機に前記圧縮データの解凍されたデータを供給するように構成されることが好ましい。
前記バックリファレンス読み出し要請及び前記圧縮されていないデータの読み出し要請を生成するように構成されるコントローラをさらに有し、前記コントローラは、再構成可能なプロセッサを含むことが好ましい。
前記第１メモリの出力は、前記解凍器と接続され、前記第２メモリの出力は、前記受信機と接続されることが好ましい。
前記第１メモリは、前記第２メモリとは独立して動作するように構成されることが好ましい。
前記第１メモリは、前記圧縮データメモリに格納された前記圧縮データに対し実行される圧縮プロセスからの辞書値を格納するように構成される辞書メモリを含み、前記第２メモリは、圧縮されていないミラー書き込みバッファを含むことが好ましい。
前記第２メモリのストレージ容量は、前記第１メモリのストレージ容量よりも小さいことが好ましい。
前記第２メモリの前記ストレージ容量は、前記受信機の入力データレートと前記解凍器の出力データレートとの間のデータレートの不一致に基づくことが好ましい。
前記解凍器は、前記第１メモリに格納された前記圧縮データの解凍されたデータに基づいて、前記圧縮データメモリからの後続の圧縮データを解凍するように構成されることが好ましい。
【００１１】
上記目的を達成するためになされた本発明によるデータ解凍方法は、メモリシステムに格納されたデータを解凍する方法であって、圧縮データメモリに圧縮された形態で格納されたデータを解凍して、解凍されたデータを生成するように解凍器に指示する段階と、前記解凍されたデータを第１メモリ及び第２メモリに書き込む段階と、バックリファレンス読み出し要請を前記第１メモリに伝送する段階と、圧縮されていないデータの読み出し要請を前記第２メモリに伝送する段階と、を有し、前記第１メモリは、前記バックリファレンス読み出し要請に応答して、前記解凍されたデータを前記解凍器に出力するように構成され、前記第２メモリは、前記圧縮されていないデータの読み出し要請に応答して、前記解凍されたデータを受信機に出力するように構成されることを特徴とする。
【００１２】
前記第１メモリの出力は、前記解凍器と接続され、前記第２メモリの出力は、前記受信機と接続されることが好ましい。
前記第１メモリは、前記第２メモリとは独立して動作するように構成されることが好ましい。
【発明の効果】
【００１３】
本発明に係る圧縮データの解凍システム及びメモリシステム並びにデータ解凍方法によれば、読み出しポートの数が減少し、圧縮データの解凍されたデータの読み出しを加速化することができる。
また、圧縮データの解凍時に、低い消費電力だけではなく、比較的高いスループット（ｔｈｒｏｕｇｈｐｕｔ）と低いレイテンシの読み出しパフォーマンスを有することができる。
【図面の簡単な説明】
【００１４】
【図１】本発明の実施形態によるメモリシステムの概略構成を示すブロック図である。
【図２】本発明の実施形態によるメモリ解凍システムの構成を示すブロック図である。
【図３】本発明の実施形態による比較としての解凍システムの構成を示すブロック図である。
【図４】本発明の実施形態によるメモリシステムに格納されたデータを解凍する動作を例として説明するためのフローチャートである。
【発明を実施するための形態】
【００１５】
次に、本発明に係る圧縮データの解凍システム及びメモリシステム並びにデータ解凍方法を実施するための形態の具体例を図面を参照しながら説明する。
【００１６】
以下での詳しい説明は、本発明の実施形態に基づいて提供される、圧縮データの解凍のためのシステム及び方法の実施形態を例として説明するものを意図し、本発明で構成又は利用される唯一の形態を示すものとは意図しない。
詳しい説明は、例としての実施形態とともに、本発明の特徴を示す。
しかし、他の実施形態によって達成される同一又は均等な機能と構造は、本発明の技術的思想に含まれるものと理解されるべきである。
前述したように、類似のエレメントの符号は、類似のエレメント又は特徴を示すものと意図する。
【００１７】
データのサイズが増加するにつれ、ストレージシステムは、圧縮された形態でデータを格納する。
しかし、データ生成器（ｄａｔａ  ｇｅｎｅｒａｔｏｒｓ）及びデータコンシューマー（ｄａｔａ  ｃｏｎｓｕｍｅｒｓ）は、圧縮されていない形態でデータを生成及び消費する（ｃｏｎｓｕｍｅ）ため、ストレージソリューションは、圧縮及び圧縮データの解凍技術にさらに依存する。
しかし、このような形態のストレージに依存するシステムにおいて、圧縮及び圧縮データの解凍は、演算負荷を増加させる可能性があり、消費電力を増加させてレイテンシ（例えば、データの検索レイテンシ）を引き起こす可能性がある。
【００１８】
本発明は、メモリの圧縮データの解凍時、低い消費電力だけでなく、比較的高いスループット（ｔｈｒｏｕｇｈｐｕｔ）と低いレイテンシの読み出しパフォーマンスを提供する圧縮データの解凍システム及びメモリシステムに関する。
【００１９】
図１は、本発明の実施形態によるメモリシステムの概略構成を示すブロック図である。
図１を参照すると、メモリシステム１０は、送信機２０と、圧縮システム３０と、メモリ（例えば、圧縮データメモリ）４０と、圧縮データの解凍システム５０と、受信機６０と、を備える。
【００２０】
送信機２０及び受信機６０は、圧縮されていない形態でデータを処理することができる。
しかし、いくつかの実施形態では、大きいサイズのデータは、送信機２０と受信機６０との間で伝送され得る。
したがって、これらのデータを格納するのに使用されるメモリ４０の限られた容量のため、メモリシステム１０は、メモリ４０にデータを格納する前にデータを圧縮する。
その後、メモリシステム１０は、受信機６０が格納された情報に対する読み出し（ｒｅａｄ）要請をすると、格納されたデータを解凍する。
【００２１】
いくつかの実施形態では、メモリシステム１０は、グラフィックス処理システムであり得、送信機２０は、イメージフレームバッファを含み得、送信機２０からのデータは、グラフィックス処理システムによって処理されたイメージデータを含み得、メモリ４０は、グラフィックス処理ユニットのオンチップＬ２キャッシュを含み得、そして受信機６０は、テクスチャユニット（ｔｅｘｔｕｒｅ  ｕｎｉｔ）のような追加の処理ユニットを含み得る。
しかし、本発明はこれに限定されない。
たとえば、ストレージ装置において、送信機２０及び受信機６０は、ホストプロセス（例えば、ホストコンピュータのユーザー又はシステムプロセス）を表すことができ、メモリ４０は、ソリッドステートドライブ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ：ＳＳＤ）、ハードディスクドライブ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ：ＨＤＤ）などのような非揮発性メモリであり得る。
いくつかの実施形態では、受信機６０は、外部ストレージ装置を含み得る。
【００２２】
圧縮システム３０は、送信機２０から受信したデータブロック（例えば、テクスチャブロック）に対して圧縮（例えば、固定又は可変レートの圧縮）を実行する。
圧縮システム３０は、データのブロックを分析することにより、以下のように実行する。
各々の個々のデータブロックに対して、関連付けられたデータタイプ（例えば、フラットデータタイプ、平面データタイプ、ウェーブレット（ｗａｖｅｌｅｔ）データタイプ、スプライン（ｓｐｌｉｎｅ）データタイプなど）及び関連付けられた圧縮タイプを独立的に決定し、関連付けられた圧縮タイプに応じて、各々のデータブロックを圧縮する。
その後、圧縮データは、メモリ４０に格納する。
受信機６０が格納されている圧縮データに対応する圧縮されていないデータを要請すると、圧縮データの解凍システム５０は、圧縮のうち、圧縮システム３０で生成されたメタデータ及び辞書値を用いて格納されている圧縮データを解凍し、解凍されたデータを受信機６０に提供する。
【００２３】
図２は、本発明の実施形態によるメモリ解凍システムの構成を示すブロック図であり、図３は、本発明の実施形態による比較としての解凍システムの構成を示すブロック図である。
【００２４】
図２を参照すると、圧縮データの解凍システム５０は、圧縮データの解凍器１００と、コントローラ（例えば、解凍コントローラ）１１０と、第１メモリ（例えば、辞書（ｄｉｃｔｉｏｎａｒｙ）メモリ）１２０と、第２メモリ（例えば、圧縮されていないミラー書き込み（ｗｒｉｔｅ）バッファ）１３０と、を備える。
第１メモリ１２０は、第２メモリ１３０から分離することができ（例えば、別のメモリダイ（ｄｉｅ）のように）、第２メモリ１３０とは独立して動作（例えば、読み出し（ｒｅａｄ）及び書き込み（ｗｒｉｔｅ）要請を処理）するように構成される。
【００２５】
第１及び第２メモリ（１２０、１３０）の各々は、（例えば、圧縮データの解凍器１００からの）データ及び要請を受信する１つの書き込みポートと１つの読み出しポートを含む。
第１メモリ１２０の出力は、圧縮データの解凍器１００に接続され、受信機６０と接続されない。
なお、第２メモリ１３０の出力は、受信機６０と接続され、圧縮データの解凍器１００と接続されない。
第１及び第２メモリ（１２０、１３０）の読み出し及び書き込み動作は、コントローラ１１０によって制御される。
コントローラ１１０は、ＦＰＧＡ（Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）、特定用途向け集積回路（Ａｐｐｌｉｃａｔｉｏｎ−Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ：ＡＳＩＣ）などのような再構成可能なプロセッサを含み得る。
【００２６】
いくつかの実施形態では、第１メモリ１２０は、圧縮システム３０によって実行された圧縮プロセスからの辞書値（ｄｉｃｔｉｏｎａｒｙ  ｖａｌｕｅｓ）を格納する、辞書メモリを含む。
辞書値は、格納されたデータを解凍する圧縮データの解凍器によって使用される圧縮データの圧縮パターンを表す。
言い換えると、圧縮プロセスは、入力データセット（ｄａｔａｓｅｔ）で繰り返されるパターン又は文字列（ｓｔｒｉｎｇ）の値を探し出す。
【００２７】
これら検出された繰り返しパターンは、圧縮された出力データにエンコーディングされて検出されたパターンに対する１つのリファレンスコピーを有し、その後の入力データセットで、そのパターンのすべての後続の発生に対しそのコピーを参照する。
いくつかの実施形態によると、辞書値は、重複データブロックに対する圧縮データの１つのインスタンス（ｉｎｓｔａｎｃｅ）、ピクセルデータブロックを表す１つ以上の値（例えば、フラット（ｆｌａｔ）ピクセルブロックを示す単一の値）、又はこれらの組み合わせなどを含み得る。
【００２８】
たとえば、テキスト入力データセットで、文字列の「ｂｉｇ  ｄｏｇ」が５回表わされる場合には、これらの入力に対する圧縮された出力データは、１番目のインスタンスのためにコピーされた「ｂｉｇ  ｄｏｇ」を含むことができ、残りの４つのインスタンスは、コピーされた「ｂｉｇ  ｄｏｇ」を参照して、エンコーディングされる。
このようなことから、入力データセットでの５つの「ｂｉｇ  ｄｏｇ」のパターンは、１つの「ｂｉｇ  ｄｏｇ」のパターンと４つの参照ポインタに縮小することができ、したがって圧縮された出力の大きさは、入力データセットのサイズに比べて大幅に減少され得る。
【００２９】
つまり、バックリファレンスポインタの観点から、入力データセットで繰り返されたパターンをエンコーディングすることで、圧縮器は、高い圧縮率を達成することができる。
また、第１メモリ１２０は、圧縮データの解凍器１００によって生成される解凍されたデータを格納することができ、圧縮データの解凍されたデータに依存する後続の圧縮データの解凍されたデータを、圧縮データの解凍器１００によって、生成することができる。
つまり、いくつかの実施形態で、第１メモリ１２０の出力は、フィードバックライン１２６を介して圧縮データの解凍器１００と接続される。
【００３０】
いくつかの実施形態によると、第２メモリ１３０は、受信機６０による後の検索のために、圧縮データの解凍器１００によって生成される解凍されたデータを一時的に格納する伝送バッファとして機能する。
第２メモリ１３０は、任意の辞書値を格納しない可能性があり、最近の圧縮データの解凍されたデータを格納するように（例えば、最近、圧縮データの解凍されたデータのみを格納するように）構成されるので、第２メモリ１３０のストレージ容量は、第１メモリ１２０のストレージ容量よりも小さくすることができる。
したがって、第２メモリ１３０の容量は、受信機６０に伝送されるデータの量と同一であり得る。
【００３１】
いくつかの実施形態では、第２メモリ１３０の容量は、受信機６０の入力データレートと圧縮データの解凍器１００の出力データレートとの間のデータレートの不一致によって決定される。
第２メモリ１３０の容量は、特定の設計の実現に関連付けられたバーストバッファリング（ｂｕｒｓｔ  ｂｕｆｆｅｒｉｎｇ）の量に依存する。
例えば、受信機６０は、圧縮データの解凍器１００のスループットよりも遅いレートでデータを処理する。
このとき、圧縮データの解凍システム５０は、データ出力を生成し、受信機６０がデータを読み出しする準備が整うまで、第２メモリ１３０に生成されたデータ出力をバッファリングする。
【００３２】
したがって、圧縮データの解凍システム５０は、データコンシューマー（例えば、受信機）が遅いレートで動作しても、圧縮データの解凍システム５０が、動作を持続させる第２メモリ１３０の形態で一定量のバーストバッファリングを実装する。
このとき、第２メモリ１３０の固定されたサイズは、圧縮方式に関連付けられたブロックサイズとは独立して作られ得る。
ブロックサイズは、圧縮データの解凍システムの全体のメモリリソースの使用量を減らすのに役立つことができる。
また、第１メモリ１２０の形態で辞書の貯蔵と圧縮データの解凍システム５０の出力を分離することにより、第２メモリ１３０は、データのコンシューマー（例えば、受信機６０）に伝送される圧縮されていない出力データのレイテンシを改善することができる。
【００３３】
受信機６０からのデータ要請に応答して、圧縮データの解凍器１００は、メモリ４０に格納されている圧縮データを解凍する。
したがって、圧縮データの解凍器１００は、圧縮データの解凍されたデータを、第１及び第２メモリ（１２０、１３０）の両方に伝送することができる。
そして、コントローラ１１０は、圧縮データに含まれているメタデータをデコーディングすることにより、メモリ４０に格納されている圧縮データを解釈する。
【００３４】
圧縮データのメタデータは、後続の解凍された出力データを発生又は生成する方法を表す。
いくつかの例において、これは、圧縮データから解凍されたデータにパターンを直接コピーすることや、初期の圧縮データの解凍されたデータの出力から特定のパターンをコピーすることを含み得る。
第１の例で、メタデータは、入力データセットで現在の「８」バイトを、そのまま、圧縮されていない出力にコピーすることを表す。
第２の例では、メタデータは、以前に圧縮されていないデータの特定の位置から「１６」のバイトをコピーすることを表す。
第１の例で、コントローラ１１０は、第１及び第２メモリ（１２０、１３０）に直接書き込みを行う。
第２の例では、コントローラ１１０は、以前の解凍されたデータから適切な位置をまず読み出して（例えば、バックリファレンス動作を介して）、以後、圧縮データの解凍されたデータを、第１及び第２メモリ（１２０、１３０）の両方で適切な位置に記入する。
【００３５】
これらの解凍されたデータは、電気的に接続された（例えば、結び付けられる）第１及び第２メモリ（１２０、１３０）の各々の書き込みポート（１２２、１３２）によって並行に受信（例えば、同時に受信）される。
いくつかの実施形態によると、コントローラ１１０は、メモリ（１２０、１３０）のすべてに圧縮されていないデータの書き込みを制御して開始することができる。
【００３６】
いくつかの例では、メモリ４０に格納されたデータを解凍するときに、圧縮データの解凍器１００は、以前の解凍されたデータに基づいて使用することができる。
いくつかの実施形態によると、コントローラ１１０は、バックリファレンス読み出し信号（バックリファレンス読み出し要請ともいう）を第１メモリ１２０の読み出しポート１２２に伝送し、圧縮データの解凍器１００に、直近に圧縮データの解凍されたデータを再び出力する第１メモリ１２０の信号は、バックリファレンスのためのものである。
【００３７】
また、コントローラ１１０は、第２メモリ１３０を維持し、圧縮されていないデータの読み出し要請を読み出しポート１３４に伝送して、第２メモリ１３０がバッファリングされた圧縮データの解凍されたデータを受信機６０にリリース（例えば、出力）するように指示する。
また、第２メモリ１３０のデータ検索の動作は、第１メモリ１２０のバックリファレンス動作と分離することができ、格納されたデータが圧縮されていないとき、圧縮データの解凍されたデータは、受信機６０に圧縮されていないデータを要請させ得る。
【００３８】
いくつかの例では、圧縮されていないデータを検索し、受信機６０に伝送するプロセスは、第１メモリ１２０にアクセスしない場合があり、したがって、読み出しポート１２４の帯域幅は、バックリファレンスデータ（例えば、第１メモリ１２０に格納された圧縮されていないデータ）から読み出しを行う解凍プロセス専用であり得る。
【００３９】
バックリファレンス読み出し要請、及び圧縮されていないデータの読み出し要請を２つの独立したメモリの２つの分離された読み出しポートに伝送することにより、バックリファレンスと圧縮されていないデータの読み出し動作は、相対的に低い確定的（ｄｅｔｅｒｍｉｎｉｓｔｉｃ）レイテンシで同時に（例えば、共に）実行することができ、圧縮データの解凍システム５０の全体的な圧縮率を向上させる（例えば、増加させる）ことができる。
【００４０】
上述した技術を、２つの要請が、１つの辞書メモリ（１２０−１）の１つの読み出しポート１２４に伝送される比較としての例（図３の圧縮データの解凍システム（５０−１）参照）と対照する。
このような比較例では、２つの要請は、（たとえば、時分割多重化（ｔｉｍｅ−ｄｉｖｉｓｉｏｎ  ｍｕｌｔｉｐｌｅｘｉｎｇ）、ラウンドロビン優先順位（ｒｏｕｎｄ  ｒｏｂｉｎ  ｐｒｉｏｒｉｔｙ）、厳密優先順位（ｓｔｒｉｃｔ  ｐｒｉｏｒｉｔｙ）などを使用して）読み取りポートでアービトレータ（たとえば、マルチプレクサ１４０）によるアービトレーション（ａｒｂｉｔｒａｔｉｏｎ）を受ける可能性があり、解凍システムの複雑さが増す可能性があります。
また、他の動作が開始される前に、１つの動作が完了しなければならないため、このようなアービトレーションは、追加の非確定的な（ｎｏｎ−ｄｅｔｅｒｍｉｎｉｓｔｉｃ）レイテンシをもたらす可能性があります。
【００４１】
これにより、装置の計算量が増加してシステム全体のパフォーマンスが低下する可能性がある。
また、デュアルポートメモリ（マルチポートメモリとは対照的）を含み得る第１及び第２メモリ（１２０、１３０）を利用することにより、圧縮データの解凍システムは、比較的低コストで実現することができます。
さらに、メモリ（１２０、１３０）の各々が、１つ（２つと対照的な）の業務を実行することは、装置へのアクセス回数を減らし、消費電力を低減させ、システムの全体的なロバストネス（ｒｏｂｕｓｔｎｅｓｓ）及び信頼性を向上させることができる。
【００４２】
図４は、本発明の実施形態によるメモリシステムに格納されたデータを解凍するプロセス２００の動作を例として説明するためのフローチャートである。
図２を参照して、いくつかの実施形態によると、受信機６０が、メモリ４０に格納されたデータを圧縮された形態で要請するとき、コントローラ１１０は、圧縮データの解凍器１００が格納されたデータを解凍するように指示して、圧縮データの解凍されたデータを生成することができる（ステップＳ２０２）。
【００４３】
その後、コントローラ１１０は、圧縮データの解凍器１００を介して、圧縮データの解凍されたデータを第１メモリ１２０及び第２メモリ１３０に同時に記入する（ステップＳ２０４）。
後続の格納されたデータが解凍される前に、コントローラ１１０は、第１メモリ１２０に圧縮データの解凍されたデータを圧縮データの解凍器１００に出力させる、バックリファレンス読み出し要請を第１メモリ１２０に伝送する（ステップＳ２０６）。
次に、コントローラ１１０は、第２メモリ１３０にバッファリングされている圧縮データの解凍されたデータを受信機６０に出力させる、圧縮されていないデータの読み出し要請を第２メモリ１３０に伝送する（ステップＳ２０８）。
【００４４】
したがって、上述したように、圧縮データの解凍システムは、圧縮されていないデータを有するメモリに必要なポートの数を減らす（例えば、最小化する）ことができる。
オンチップ辞書メモリからの読み出しは、受信機やデータコンシューマーへのデータ伝送に必要としない場合がある。
これは、メモリの読み出しに必要とされるエージェント（ａｇｅｎｔ）の数を減らすことができ、読み出しポートを減らし、アービトレーションをなくし、そして複雑度を下げることができる。
このようなエージェントの減少は、全体的な圧縮データの解凍レートを高め、圧縮されていないデータのレイテンシを低減し、そして決定的なレイテンシを提供することができる。
【００４５】
本明細書で使用する用語は、特定の実施形態を記述するための目的として使用され、本発明を限定する意図で使用されない。
文脈上明らかに別のものを示していると定義されない限り、単数形は、複数形を含む意図で使用する。
そして「含む」又は「含んで限定されない」の用語は、本明細書に使用する場合には、記述された特徴、数字、段階、動作、エレメント、及び／又はコンポーネントの存在を明示するが、１つ以上の他の特徴、数字、段階、動作、エレメント、コンポーネント、及び／又はこれらのグループの存在若しくは追加を排除しない。
本明細書で使用する用語「及び／又は」は、１つ以上の関連付けられた列挙項目の任意の全ての組み合わせが含まれ得ることを意味する。
また、本明細書において、用語「できる」の使用は、「本発明の１つ以上の実施形態」を意味する。
また、用語「例としての」は、例示又は説明を意味するものと意図する。
【００４６】
本明細書では、たとえば、第１、第２、第３などの用語は、多様なエレメント、コンポーネント、領域、レイヤー、及び／又は区間を説明するために使用するが、これらのエレメント、コンポーネント、領域、レイヤー、及び／又は区間は、このような用語により限定されないと理解されるだろう。
このような用語は、１つのエレメント、コンポーネント、領域、レイヤー、又は区間を他のエレメント、コンポーネント、領域、レイヤー、又は区間から区別するために使用される。
したがって、本明細書で、第１エレメント、コンポーネント、領域、レイヤー、又は区間は、本発明の技術的思想及び範囲を逸脱することなく、第２エレメント、コンポーネント、領域、レイヤー、又は区間と称され得る。
【００４７】
エレメント又はレイヤーが、他のエレメント又はレイヤーとの関係から「その上」、「接続された」、「結合された」、又は「隣接した」と述べられるとき、それは、他のエレメント又はレイヤーとの関係から直接その上に位置した、接続された、結合された、又は隣接したことであり得、１つ以上の介入のエレメント又はレイヤーがそれらの間に存在することであり得る。
エレメント又はレイヤーが他のエレメント又はレイヤーとの関係から「その上に直接位置した」、「直接接続された」、「直接結合された」、又は「隣接した」と述べられるとき、介入のエレメント又はレイヤーがそれらの間に存在しないものと理解されるべきである。
本明細書で、用語である「使用」、「使用する」、及び「使用された」は、各々用語である「利用」、「利用する」、及び「利用された」と類似した用語としてみなされ得る。
【００４８】
本発明の実施形態による解凍システム及び／又は任意の他の関連装置や構成要素は、任意の適切なハードウェア、ファームウェア（例えば、特定用途向け集積回路（Ａｐｐｌｉｃａｔｉｏｎ−Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ：ＡＳＩＣ））、ソフトウェア、又は適切なソフトウェア、ファームウェア及びハードウェアの組み合わせを用いて実装され得る。
たとえば、独立した、マルチソースディスプレイ装置の多様な構成要素は、１つのＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）チップ又は別個のＩＣチップとして形成され得る。
また、圧縮システムの多様な構成要素は、フレキシブルプリント回路フィルム（ｆｌｅｘｉｂｌｅ  ｐｒｉｎｔｅｄ  ｃｉｒｃｕｉｔ  ｆｉｌｍ）、テープキャリアパッケージ（Ｔａｐｅ  Ｃａｒｒｉｅｒ  Ｐａｃｋａｇｅ：ＴＣＰ）、又はプリント回路基板（Ｐｒｉｎｔｅｄ  Ｃｉｒｃｕｉｔ  Ｂｏａｒｄ：ＰＣＢ）上に実装され得るか、又は同一の基板上に形成され得る。
【００４９】
また、圧縮システムの多様な構成要素は、本明細書で記述した多様な機能を実行するために、１つ以上のコンピューティング装置で１つ以上のプロセスを駆動させ、コンピュータプログラムの命令を実行し、そして他のシステム構成要素と相互作用する、プロセス、又はスレッド（ｔｈｒｅａｄ）であり得る。
コンピュータプログラムの命令は、メモリに格納することができ、例えば、ランダムアクセスメモリ（ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ：ＲＡＭ）のような標準的なメモリデバイスを使用してコンピューティング装置において実装され得る。
また、コンピュータプログラムの命令は、例えば、ＣＤ−ＲＯＭ（ｃｏｍｐａｃｔ  ｄｉｓｋ  ｒｅａｄ  ｏｎｌｙ  ｍｅｍｏｒｙ）、フラッシュドライブ（ｆｌａｓｈ  ｄｒｉｖｅ）、又はこのような非一時的なコンピュータ可読媒体に格納され得る。
また、本発明の技術的思想を逸脱しない範囲内で、通常の技術者（当業者）は、多様なコンピューティング装置の機能が１つのコンピューティング装置に結合若しくは統合することができ、又は特定のコンピューティング装置の機能が１つ以上の他のコンピューティング装置に分散され得ることを認識しなければならない。
【００５０】
尚、本発明は、上述の実施形態に限られるものではない。本発明の技術的範囲から逸脱しない範囲内で多様に変更実施することが可能である。
【符号の説明】
【００５１】
１０    メモリシステム
２０    送信機
３０    圧縮システム
４０    メモリ
５０、５０−１    圧縮データの解凍システム
６０    受信機
１００    圧縮データの解凍器
１１０    コントローラ
１２０、１２０−１    第１メモリ（辞書メモリ）
１２２、１３２    書き込みポート
１２４、１３４    読み出しポート
１３０    第２メモリ
１４０    マルチプレクサ
【図１】
2020201948.tif 000003
【図２】
2020201948.tif 000004
【図３】
2020201948.tif 000005
【図４】
2020201948.tif 000006