JP2017502539A - マルチユーザの省電力コードブックの最適化を実現するためのシステムおよび方法 - Google Patents

マルチユーザの省電力コードブックの最適化を実現するためのシステムおよび方法 Download PDF

Info

Publication number
JP2017502539A
JP2017502539A JP2016525035A JP2016525035A JP2017502539A JP 2017502539 A JP2017502539 A JP 2017502539A JP 2016525035 A JP2016525035 A JP 2016525035A JP 2016525035 A JP2016525035 A JP 2016525035A JP 2017502539 A JP2017502539 A JP 2017502539A
Authority
JP
Japan
Prior art keywords
codebook
data
computing device
computing devices
unique
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.)
Pending
Application number
JP2016525035A
Other languages
English (en)
Other versions
JP2017502539A5 (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 JP2017502539A publication Critical patent/JP2017502539A/ja
Publication of JP2017502539A5 publication Critical patent/JP2017502539A5/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/3068Precoding preceding compression, e.g. Burrows-Wheeler transformation
    • H03M7/3079Context modeling
    • 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/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/325Power saving in peripheral device
    • G06F1/3275Power saving in memory, e.g. RAM, cache
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/4074Power supply or voltage generation circuits, e.g. bias voltage generators, substrate voltage generators, back-up power, power control circuits
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/23Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using convolutional codes, e.g. unit memory codes
    • H03M13/235Encoding of convolutional codes, e.g. methods or arrangements for parallel or block-wise encoding

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Hardware Design (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Power Sources (AREA)

Abstract

マルチユーザの省電力コードブックの最適化を実現するためのシステムおよび方法が開示される。1つのそのような方法は、複数のコンピューティングデバイスのための一意のコードブックを生成することであって、各一意のコードブックが対応するコンピューティングデバイス内のメモリデータを符号化するために構成される、生成することと、通信ネットワークを介して対応するコンピューティングデバイスに一意のコードブックを供給することと、通信ネットワークを介してコンピューティングデバイスのうちの1つまたは複数から圧縮統計データを受信することであって、圧縮統計データが対応する一意のコードブックに関係する、受信することと、受信された圧縮統計データに基づいてコンピューティングデバイスのうちの少なくとも1つのための最適化されたコードブックを生成することとを含む。

Description

関連出願の陳述
本出願は、2013年10月24日に出願された、「SYSTEM AND METHOD FOR CONSERVING POWER CONSUMPTION IN A MEMORY SYSTEM」と題する、同時係属米国特許出願第14/062,859号(Qualcomm参照番号133990U1)に関する。
ダイナミックランダムアクセスメモリ(DRAM)は、様々なコンピューティングデバイス(たとえば、パーソナルコンピュータ、ラップトップ、ノートブック、ビデオゲームコンソール、ポータブルコンピューティングデバイス、モバイルフォンなど)において使用されている。DRAMは、データの各ビットを集積回路内の個別のコンデンサに記憶するタイプの揮発性メモリである。コンデンサは充電または放電のいずれかを行うことができる。これらの2つの状態は、慣例的に0および1と呼ばれるビットの2つの値を表すように解釈される。コンデンサは電荷を漏電するので、コンデンサの電荷が周期的にリフレッシュされない限り、情報は最終的に減衰する。このリフレッシュ要件のために、DRAMは、SRAMおよび他のスタティックメモリとは対照的にダイナミックメモリと呼ばれる。
DRAMの利点は、その構造の単純さ(ビット当たり1つのトランジスタとコンデンサのみが必要とされる)であり、それにより、DRAMが非常に高い密度に達することが可能になる。しかしながら、DRAMの密度および速度の要件が増大し続けるにつれて、メモリの電力消費が重要な問題になっている。
DRAM内の電力は、一般に、コアメモリアレイの電力および非コアの電力として分類される。コアメモリアレイの電力は、ビットセル/アレイ内のすべてのデータを保持し、漏電およびリフレッシュ動作を管理するための電力を指す。非コアの電力は、すべてのデータをメモリデバイスに、およびメモリデバイスから転送し、アンペアを検知し、かつ周辺論理、マルチプレクサ、内部バス、バッファ、入力/出力(I/O)ドライバ、および受信機を管理するための電力を指す。非コアの電力を削減することが重要な問題である。
非コアの電力を削減する既存の解決策は、通常、性能が要求されないときはいつでも動作電圧を下げること、負荷キャパシタンスを削減すること、または動作周波数を一時的に低減することに関与している。しかしながら、これらの解決策は、必要な帯域幅の集約的な使用ケースに対処することができない。他の解決策は、メモリシステムに関連するデータ活動係数を低減するように試みてきた。データ活動係数kは、固定期間にわたるメモリアクセスシステムにおける、0から1へのトグルまたは遷移の数を指す。たとえば、単線にわたる以下の8個のビートシーケンス0、1、0、1、0、1、0、1では、k=0.5である。データ活動係数を低減することへの試みは、画像圧縮を使用する表示フレームバッファなどの特定のタイプのデータに対して提案されている。これは、通常、ソース(すなわち、表示ハードウェアエンジン)において実行される。しかしながら、そのような解決策は、通常、全DRAM使用量の比較的ごく一部しか占めないこのタイプの表示データに、かなり専門化され限定される。したがって、当技術分野では、DRAMメモリシステムにおいて電力消費を節約するための改善されたシステムおよび方法が依然として必要とされている。
マルチユーザの省電力コードブックの最適化を実現するためのシステムおよび方法が開示される。1つのそのような方法は、複数のコンピューティングデバイスのための一意のコードブックを生成することであって、各一意のコードブックが対応するコンピューティングデバイス内のメモリデータを符号化するために構成される、生成することと、通信ネットワークを介して対応するコンピューティングデバイスに一意のコードブックを供給することと、通信ネットワークを介してコンピューティングデバイスのうちの1つまたは複数から圧縮統計データを受信することであって、圧縮統計データが対応する一意のコードブックに関係する、受信することと、受信された圧縮統計データに基づいてコンピューティングデバイスのうちの少なくとも1つのための最適化されたコードブックを生成することとを含む。
別の実施形態は、通信ネットワークを介して複数のコンピューティングデバイスと通信しているサーバを備えるコンピュータシステムである。サーバは、コンピューティングデバイスによって実行されるメモリデータの符号化を最適化するように構成された、エンコーダ最適化モジュールを備える。エンコーダ最適化モジュールは、複数のコンピューティングデバイスの各々のための一意のコードブックを生成するように構成された論理であって、一意のコードブックが対応するコンピューティングデバイス内のメモリデータを符号化するために使用される、論理と、通信ネットワークを介してコンピューティングデバイスに一意のコードブックを供給するように構成された論理と、通信ネットワークを介してコンピューティングデバイスのうちの1つまたは複数から圧縮統計データを受信するように構成された論理であって、圧縮統計データが対応する一意のコードブックに関係する、論理と、受信された圧縮統計データに基づいてコンピューティングデバイスのうちの少なくとも1つのための最適化されたコードブックを生成するように構成された論理とを備える。
図において、別段の指示がない限り、同様の参照番号は、様々な図の全体を通して同様の部分を指す。「102A」または「102B」などの文字指定を伴う参照番号の場合、文字指定は、同じ図に存在する2つの同様の部分または要素を区別することができる。参照番号がすべての図において同じ参照番号を有するすべての部分を包含することが意図されるとき、参照番号の文字指定は省略される場合がある。
SoCに結合されたDRAMメモリシステムにおいて電力消費を節約するためのシステムの一実施形態のブロック図である。 図1のSoCとDRAMメモリシステムを結合するデータバスの例示的な実施形態を示す図である。 DRAMメモリシステムによって規定された例示的な最小アクセス長(MAL)トランザクションについて、図1のエンコーダへの非圧縮データ入力、および図1のエンコーダからの圧縮データ出力を示すデータ図である。 電力消費を節約するために図1のシステムにおいて実施される方法の一実施形態を示すフローチャートである。 図1のシステムのデータ活動係数を低減するための圧縮アルゴリズムの一実施形態を実装するための簡略化されたハフマンツリーを示す図である。 図1のDRAMメモリシステム用の例示的なMALトランザクションについての第1の圧縮使用事例を示す図である。 図1のDRAMメモリシステム用の例示的なMALトランザクションについての第2の圧縮使用事例を示す図である。 図1のSoC内のエンコーダの一実施形態を示すブロック図である。 図1のDRAMメモリシステム内のデコーダの一実施形態を示すブロック図である。 図8のエンコーダにおける3ビットサイズの出力用の例示的な値を示す表である。 図1のシステム用の圧縮統計データを追跡するための表の一実施形態を示す図である。 図1のシステムを備えるポータブルコンピューティングデバイスの一実施形態のブロック図である。 複数のユーザのエンコーダの圧縮性能を最適化するためのシステムの一実施形態のブロック図である。 図13のシステム内のエンコーダ最適化モジュールによって生成されるサーバデータベースの一実施形態を示すデータ図である。 コンピューティングデバイスのメモリイメージに関連付けられた例示的なコードブックの一実施形態を示す図である。 図13のシステム内のサーバエンコーダ最適化モジュールの一実施形態のアーキテクチャ、動作、および/または機能を示すフローチャートである。 図13のシステム内の1人または複数のユーザのための最適化されたコードブックを生成するために使用される様々な例示的なデバイスメトリックを示す表である。
「例示的」という言葉は、本明細書では、「一例、事例、または例示として役立つ」ことを意味するように使用される。「例示的」として本明細書に記載されるいずれの態様も、必ずしも他の態様よりも好ましいか、または有利であると解釈されるとは限らない。
本明細書では、「アプリケーション」という用語は、オブジェクトコード、スクリプト、バイトコード、マークアップ言語ファイル、およびパッチなどの、実行可能なコンテンツを有するファイルを含む場合もある。加えて、本明細書で言及される「アプリケーション」は、開封される必要があり得るドキュメント、またはアクセスされる必要がある他のデータファイルなどの、本質的に実行可能ではないファイルを含む場合もある。
「コンテンツ」という用語は、オブジェクトコード、スクリプト、バイトコード、マークアップ言語ファイル、およびパッチなどの、実行可能なコンテンツを有するファイルを含む場合もある。加えて、本明細書で言及される「コンテンツ」は、開封される必要があり得るドキュメント、またはアクセスされる必要がある他のデータファイルなどの、本質的に実行可能ではないファイルを含む場合もある。
本明細書において使用する「構成要素」、「データベース」、「モジュール」、「システム」などの用語は、ハードウェア、ファームウェア、ハードウェアとソフトウェアの組合せ、ソフトウェア、または実行中のソフトウェアのいずれかである、コンピュータ関連のエンティティを指すものとする。たとえば、構成要素は、限定はしないが、プロセッサ上で動作するプロセス、プロセッサ、オブジェクト、実行ファイル、実行スレッド、プログラム、および/またはコンピュータであり得る。例として、コンピューティングデバイス上で動作するアプリケーションと、コンピューティングデバイスの両方は、構成要素であり得る。1つまたは複数の構成要素は、プロセスおよび/または実行スレッド内に存在する場合があり、1つの構成要素は、1つのコンピュータに局所化され、かつ/または、2つ以上のコンピュータ間で分散される場合がある。加えて、これらの構成要素は、様々なデータ構造を記憶した様々なコンピュータ可読媒体から実行することができる。構成要素は、1つまたは複数のデータパケット(たとえば、信号によって、ローカルシステム、分散システム内の別の構成要素と対話し、かつ/または、インターネットなどのネットワークにわたって他のシステムと対話する、1つの構成要素からのデータ)を有する信号に従うなどして、ローカルプロセスおよび/またはリモートプロセスによって通信することができる。
本明細書では、「通信デバイス」、「ワイヤレスデバイス」、「ワイヤレス電話」、「ワイヤレス通信デバイス」、および「ワイヤレスハンドセット」という用語は、互換的に使用される。第3世代(「3G」)ワイヤレス技術および第4世代(「4G」)の出現により、利用可能な帯域幅が拡大されたので、より多様なワイヤレス機能を備える、より携帯が容易なコンピューティングデバイスが利用可能になっている。したがって、ポータブルコンピューティングデバイスは、携帯電話、ページャ、PDA、スマートフォン、ナビゲーションデバイス、またはワイヤレス接続もしくはワイヤレスリンクを有するハンドヘルドコンピュータを含む場合がある。
図1は、DRAMメモリシステム104において電力消費を節約するためのシステム100を示す。システム100は、パーソナルコンピュータと、ワークステーションと、サーバと、携帯電話、携帯情報端末(PDA)、ポータブルゲームコンソール、パームトップコンピュータ、またはタブレットコンピュータなどのポータブルコンピューティングデバイス(PCD)とを含む、任意のコンピューティングデバイスに実装される場合がある。図1の実施形態に示されたように、システム100は、DRAMメモリシステム104に結合されたシステムオンチップ(SoC)102を備える。SoC102は、DRAMメモリシステム104にメモリリソースを要求する1つまたは複数のメモリクライアント106を含む、様々なオンチップ構成要素を備える。メモリクライアント106は、1つまたは複数の処理装置(たとえば、中央処理装置(CPU)、グラフィックス処理装置(GPU)、デジタル信号プロセッサ(DSP)、表示プロセッサなど)、ビデオエンコーダ、またはDRAMメモリシステム104への読取り/書込みアクセスを要求する他のクライアントを備える場合がある。メモリクライアント106は、SoCバス105を介してエンコーダ108に接続される。
下記により詳細に記載されるように、エンコーダ108は、DRAMメモリシステム104へのデータ入力のデータ活動係数kを低減することによって、DRAMメモリシステム104の電力消費を削減するように構成される。DRAMメモリシステム104内の電力は、コアメモリアレイの電力および非コアの電力として分類される場合がある。当技術分野で知られているように、コアメモリアレイの電力は、コアメモリアレイ124内のすべてのデータを保持し、漏電およびリフレッシュ動作を管理するための電力を指す。非コアの電力は、すべてのデータをメモリデバイスに、およびメモリデバイスから転送し、アンペアを検知し、かつ周辺論理、マルチプレクサ、内部バス、バッファ、入力/出力(I/O)ドライバ、および受信機を管理するための電力を指す。エンコーダ108は、たとえば、エントロピーベースの圧縮を介して、メモリデータ入力のデータ活動係数を低減することによって、非コアの電力を削減する。
DRAMメモリシステム104内の動的または非コアの電力は、式1によって表される場合がある。
動的電力=kCV2f*密度、ここで
k=データ活動係数
C=負荷キャパシタンス
V=電圧
f=周波数またはトグルレート
密度=ギガバイト(GB)単位の総容量
式1
データ活動係数kは、固定期間にわたる、0から1へのトグルまたは遷移の数として定義される場合がある。たとえば、8個のビートシーケンス01010101では、k=0.5である。DRAMメモリシステム104への最小のアクセスは、1つのDRAM最小アクセス長(MAL)トランザクションと呼ばれる。32ビットの並列LPDDR3 DRAMバスの場合、MAL=32ビット*8ビート=256ビット=32バイト(8ビート、32ビット幅)である。MALトランザクションは、次から次へと連続して発生する場合がある。
密度および周波数の需要が増大しているので、非コアの電力を削減することは、負荷キャパシタンスを削減すること、電圧を下げること、ビートからビートへのビットごとのkを最小化すること、またはMALからMALへのビットごとのkを最小化することを必要とする。非コアの電力を削減する既存の方法は、一般に、性能が要求されないときはいつでも動作電圧を下げること、負荷キャパシタンスを削減すること、または動作周波数を一時的に低減することに関与している(必要とする帯域幅の集約的な使用ケースに対処することができない)。データ活動係数kを低減することへの試みは、画像圧縮を使用する表示フレームバッファなどの特定のタイプのデータに対して提案されている。しかしながら、これは、通常、ソース(すなわち、表示ハードウェアエンジン)において実行される。しかしながら、そのような解決策は、通常、全DRAM使用量の比較的ごく一部しか占めないこのタイプの表示データに、かなり専門化され限定される。
図1のシステム100は、すべてのメモリクライアント106用のメモリデータ入力のデータ活動係数kを低減することによって、DRAMメモリシステム104全体の非コアの電力消費を節約または最適化することができる。SoC102とDRAMメモリシステム104は、1つまたは複数の接続、インターフェース、またはバスを介して通信する。図1の実施形態では、SoC102は、物理レイヤまたは入力/出力デバイス(PHY/IO)110a、110b、および110cを備える。DRAMメモリシステム104は、PHY/IO112a、112b、および112cを備える。PHY/IO110aとPHY/IO112aは接続114を介して結合され、接続114は、(「cビット」と呼ばれる)メタデータ圧縮ビットを通信してデータが圧縮されているか否かを示すためのチャネルを備える場合がある。PHY/IO110bとPHY/IO112bは接続116を介して結合され、接続116はnビットのデータバスを備える場合がある。PHY/IO110cとPHY/IO112cは接続118を介して結合され、接続118は制御/アドレスバスを備える場合がある。
動作中、SoC102内のメモリクライアント106からのメモリデータは、エンコーダ108を通過する。エンコーダ108は、たとえば、データを圧縮しゼロパディングする簡略化されたハフマン方式を介してメモリデータを圧縮することができ、次いで、それらは接続114および116を介してDRAMメモリシステム104に供給される。DRAMメモリシステム104は、PHY/IO112a、112b、および/または112cの中にデータを受信する。周辺インターフェース120は、圧縮データをデコーダ122に供給し、デコーダ122は、データを元の非圧縮形式に逆変換し、次いでコアメモリアレイ124に記憶するように構成される。DRAMメモリシステム104は、任意の望ましいタイプ、サイズ、およびメモリ構成の任意の数のDRAMメモリデバイスを備える場合があることを諒解されたい。
図2は、SoC102とDRAMメモリシステム104との間の例示的な32ビット並列LPDDR3 DRAMバス116を示す。例示のために使用されるこの実施形態では、MALトランザクション204は、クロック202の8ビート(すなわち、t=0、1、2、3、4、5、6、7)用の32ビットを備える。各MAL=32ビット*8ビート=256ビット=32バイトである。エンコーダ108は、各MALトランザクション204を圧縮することによって、データ活動係数kを低減する。図3は、MALトランザクション204についての例示的な符号化例を示す。非圧縮データ302は、圧縮データ304を生成するために、たとえば、エントロピーベースの圧縮を介して処理される場合がある。非圧縮データ302は、たとえば、32バイトの生の非圧縮データを含む場合がある。エンコーダ108において具現化される圧縮アルゴリズムは、たとえば、その後にグレー表示されたビート(すなわち、T=4、5、6、7)によって表されたゼロパディングが続く16バイトに非圧縮データ302を圧縮することができ、それにより、MALトランザクション204に関連付けられたデータ活動係数kが低減される。
図4は、DRAMメモリシステム104の非コアの電力を削減するために、図1のシステム100によって実施される方法400を示す。ブロック402において、エンコーダ108が、DRAMメモリシステム104にアクセスするために、SoC102に存在する1つまたは複数のメモリクライアント106からメモリデータを受信する。ブロック404において、エンコーダ108が、圧縮方式に従って受信されたメモリデータを符号化することによって、受信されたメモリデータによって規定されたデータ活動係数kを低減する。一実施形態では、データ活動係数kはMALごとに低減される。圧縮方式の様々な実施形態が実装され得ることを諒解されたい。一実施形態では、圧縮方式は、たとえば、ゼロパディングを伴う簡略化されたハフマン方式を介するエントロピーベースの圧縮を含む。ブロック406において、符号化または圧縮されたメモリデータが、DRAMメモリシステム104に供給される。下記により詳細に記載されるように、エンコーダ108は、MALごとに圧縮アルゴリズムの有効性を評価するための論理を含む場合がある。このようにして、エンコーダ108は、圧縮ビットまたはCビットを生成して、データが圧縮されているか否かを識別することができる。ブロック408において、DRAMメモリシステム104内のデコーダ122は、圧縮方式に従って、符号化されたメモリデータを元の受信されたメモリデータに復号することができる。このようにして、DRAMメモリシステム104の非コアの電力は、低電力の使用事例に適応するために、選択的に削減される場合がある。
図5は、エンコーダ108によって実施され得るエントロピーベースの圧縮アルゴリズムの一実施形態を示す。ハフマン符号化方式は、ソースシンボルを符号化するためのコード表を含む場合がある。コード表は、推定される発生確率に基づいて、所定の数のソースシンボルを含む場合がある。簡略化されたハフマンツリー500は、圧縮されるべき最も頻度の高いシンボルまたは「パターン」を符号化することができる。一実施形態では、アルゴリズムはバイトごとに動作する。メモリデータ(たとえば、MALビート)に関連付けられたソースシンボルまたはパターンが、ハフマンツリー500の左半分の「葉」のうちのいずれかに適合する場合、バイト圧縮が行われる。図において、プレフィックス「0x」は16進(hex)数が後続することを意味し、「b」のサフィクスはバイナリ数(ビット)が先行することを意味することを諒解されたい。ブロック504は、パターン「00」hexがコードワード(CW=01b)に適合されたことを表す。ブロック506は、パターン「FF」hexがコードワード(CW=001b)に適合されたことを表す。ブロック508は、パターン「0F」hexがコードワード(CW=0001b)に適合されたことを表す。ブロック510は、パターン「F0」hexがコードワード(CW=00001b)に適合されたことを表す。ブロック512は、パターン「55」hexがコードワード(CW=000001b)に適合されたことを表す。ブロック514は、パターン「AA」hexがコードワード(CW=000000b)に適合されたことを表す。パターンはプログラムされ得ることを諒解されたい。図5にさらに示されたように、適合がない場合、ハフマンツリーの右半分は、バイトごとに余分なビットペナルティを招く可能性がある。たとえば、ブロック502は、パターン「XX」がビットペナルティを招き、9ビットのコードワード長をもたらすコードワード(CW=1b+0x「XX」)を用いて符号化される場合があることを示す。
図6は、ハフマンツリー500を使用して圧縮されるMALトランザクションについての第1の圧縮使用事例の一例を示す。非圧縮MAL602は、32バイトの生データを含む。8ビートの各々は、コードワード(CW=01b)を用いて符号化され得るソースパターン「00」hexを含む。この「最良の場合」の例では、得られた圧縮MAL604は、その後にゼロパディングが続く圧縮された8バイトを含む。図6の例では、非圧縮MAL602内の行の各々は、ソースパターン「00」を表す。非圧縮MAL602内の各行は、対応するコードワード(CW=01b)を用いて符号化される。圧縮MAL604は、非圧縮MAL602内の行ごとの符号化の結果を示す。
図7は、非圧縮MAL702の各ビートが、圧縮されず、バイトごとに余分なビットペナルティを招くソースパターン「XX」hexを含む「最悪の場合」の例を示す。得られた圧縮MAL704は、36バイトを含む。図7の例では、非圧縮MAL702内の行の各々は、ソースパターン「XX」を表す。圧縮MAL704は、非圧縮MAL702内の行ごとの符号化の結果を示す。言い換えれば、各ソースパターン「XX」は、コードワード(CW=1b+0xXX)を用いて符号化される。圧縮がより大きいサイズをもたらすこの例では、エンコーダ108は、圧縮データ704の代わりに非圧縮データ702を送ることができる。この点について、エンコーダ108は、余分な圧縮ビットまたはCビットを生成して、データが圧縮されたか否かを定義することができることを諒解されたい。
いくつかの実施形態では、Cビットは、(たとえば、図1のインターフェース114を介して)個別に送信され、DRAMメモリシステム104内の個別のメモリデバイスに記憶される場合がある。他の実施形態では、Cビットは、データバス(たとえば、図1のインターフェース116)上で送信されるデータと連結され、同じDRAMチップに記憶される場合がある。Cビットは、それをDRAMメモリシステム104に記憶する必要なしに、インターフェースのみに使用される場合があることをさらに諒解されたい。CビットがDRAMメモリに記憶されない場合、一実施形態では、デコーダ122は、図1に示されたように各メモリに組み込まれる場合がある。CビットがDRAMメモリに記憶される場合、一実施形態では、たとえば、32バイトのデータごとに1つのCビットを記憶するためにさらなるDRAM空間が使用される場合があり、デコーダ122は、DRAMメモリシステム104ではなくSoC102内に配置される場合があることを諒解されたい。
システム100は、たとえば、システム100内のクライアント、または、たとえばクラウドベースのサーバなどの外部構成要素上で動作する最適化プログラムを使用して、圧縮係数セット(すなわち、Cビット)の統計データの有効性を分析するための論理を用いて強化される場合がある。一実施形態では、エンコーダ108は、圧縮統計データを記録するカウンタを備え、多数のエンドユーザにわたって改善を行うことができる。エンコーダ108は、特定のクライアント106に対して圧縮をオフにする能力を有して構成される場合がある。
一実施形態では、DRAMメモリシステム104は、SoC102上のすべてのメモリクライアント106によって使用される場合がある。このようにして、エンコーダ108は、メモリクライアント106のすべてからのトラフィックのすべての経路内にある。いくつかのクライアント106からのデータを符号化することが望ましくない場合があるときの事例があり得る。たとえば、表示プロセッサがすでにDRAMデータを圧縮している場合、エンコーダ108に圧縮を再試行させると、電力が浪費される筈である。したがって、エンコーダ108は個別のイネーブルビットを有し、また、クライアント106ごとにCビットの統計データを収集する。あらゆるDRAMトランザクションの間の各メモリクライアント106は、そのクライアントを一意に識別するマスタID(MID)を含む場合がある。メモリクライアント106ごとに、圧縮が有効にされると、エンコーダ108は圧縮するように試みることができ、トランザクションの総数および非圧縮トランザクションの数をカウントすることができる。これらのカウンタ/統計データは、CPUが利用可能であり得る。デフォルトは、すべてのメモリクライアント106に対して圧縮を常に有効にすることであり得る。
圧縮を無効にするために、CPUは特定のメモリクライアント106用のイネーブルビットをクリアすることができ、それ以降、DRAMメモリシステム104に対するいかなる書込みもエンコーダ108をバイパスすることができるが、Cビットはまだゼロとして送信され得るし、それはデータが圧縮されていないことを意味する。DRAMメモリシステム104からのいかなる読取りも、圧縮または非圧縮のいずれかのデータを含んでいる場合があり、Cビットは、解凍が必要とされるか否かを正しく示すことができる。たとえば、読取りデータの解凍は、CPUが特定のメモリクライアント106用の圧縮イネーブルビットをクリアした後でも、まだ行われる場合がある。
図11は、CPUによってアクセス可能であり得る例示的な表1100を示す。表1100は、クライアント名フィールド1102と、マスタID(MID)フィールド1104と、圧縮イネーブルビットフィールド1106と、トランザクションの総数フィールド1108と、非圧縮トランザクションの総数フィールド1109とを含む。各メモリクライアント106は、一意のMIDを有する。CPUは、クライアントごとに圧縮を有効または無効にすることができる。有効にされると、エンコーダ108は、クライアントごとに圧縮統計データの更新された記録を保持することができ、各クライアントは、独立して、それぞれのクライアントごとのトラフィックの「圧縮可能性」に基づいて、圧縮を有効または無効にすることができる。たとえば、一実施形態では、特定のクライアントがプログラム可能しきい値を超える十分な非圧縮トラフィック(Cビット=0)を有する場合、そのクライアント用の圧縮は無効にされる場合がある。
図8および図9は、それぞれエンコーダ108およびデコーダ122の一実施形態を示す。エンコーダ108は、プログラマブルハフマン係数表804と、連結/バッファ810と、ゼロパディング構成要素814と、カウンタ818と、Cビット生成器820とを備える場合がある。エンコーダ108は、接続802上で非圧縮データ入力を受信する。この例では、非圧縮データは、上述されたように、32バイト(8ビット)を含む。表804は、たとえば、ハフマンツリー500(図5)を実装するために使用され得るプログラマブルエンコーダ係数を含む。エンコーダ係数は、たとえば再起動中に、CPUからロードされる場合がある。CPUは、ROMまたは2次ローダに存在する非圧縮コードを実行することができる。ハフマン出力(9ビット)が接続806上で連結/バッファ810に供給され、連結/バッファ810は、接続812を介してゼロパディング構成要素814に連結出力(8ビット)を供給する。ゼロパディング構成要素814は、接続816にデコーダ122(図9)への圧縮出力(8ビット)を供給する。
サイズ(3ビット)は、接続808を介してカウンタ818に供給される。図10は、3ビット表現(値0〜7)およびそれらのそれぞれの定義を示す表1000である。Cビット生成器820は、所定のバイトサイズにいつ達するかを判定するように構成される場合がある。Cビット生成器820は、接続816上のデータ入力が圧縮されているか否かを識別するために、Cビットを生成し、接続822を介して供給する。上述されたように、圧縮がより大きいサイズをもたらす場合、CビットはC=0に設定され、生のデータ入力が圧縮データよりも小さい(たとえば、圧縮サイズ>非圧縮サイズ)ので、生のデータ入力が出力されることを示す場合がある。
図9を参照すると、圧縮データおよびCビットは、それぞれ接続816および822を介して、バッファ&左シフト構成要素902によって受信される場合がある。シフト出力(8ビット)は、接続904を介して、プログラマブル逆ハフマン係数表905に供給される場合があり、プログラマブル逆ハフマン係数表905は、CPUによってロードされた逆係数を含む。非圧縮データ出力は、接続908を介して、コアメモリアレイ124に供給される場合がある。
上述されたように、システム100は、任意の望ましいコンピューティングシステムに組み込まれる場合がある。図12は、例示的なポータブルコンピューティングデバイス(PCD)1200に組み込まれたシステム100を示す。システム100のいくつかの構成要素(たとえば、エンコーダ108)は、SoC322(図12)に含まれるが、他の構成要素(たとえば、DRAMメモリシステム104)は、SoC322に結合された外部構成要素であることが容易に諒解されよう。SoC322は、マルチコアCPU1202を含む場合がある。マルチコアCPU 1202は、第0のコア410、第1のコア412、および第Nのコア414を含む場合がある。コアのうちの1つは、たとえば、グラフィックス処理装置(GPU)を備え、他のコアのうちの1つまたは複数は、CPUを備える場合がある。
ディスプレイコントローラ328およびタッチスクリーンコントローラ330は、CPU1202に結合される場合がある。一方、オンチップシステム322の外部にあるタッチスクリーンディスプレイ1206は、ディスプレイコントローラ328およびタッチスクリーンコントローラ330に結合される場合がある。
図12は、ビデオエンコーダ334、たとえば位相反転線(PAL)エンコーダ、順次式カラーメモリ(SECAM)エンコーダ、または全米テレビジョン方式委員会(NTSC)エンコーダが、マルチコアCPU1202に結合されることをさらに示す。さらに、ビデオ増幅器336は、ビデオエンコーダ334およびタッチスクリーンディスプレイ1206に結合される。また、ビデオポート338は、ビデオ増幅器336に結合される。図12に示されたように、ユニバーサルシリアルバス(USB)コントローラ340は、マルチコアCPU1202に結合される。また、USBポート342は、USBコントローラ340に結合される。メモリ1204および加入者識別モジュール(SIM)カード346も、マルチコアCPU 1202に結合される場合がある。メモリ1204は、SoC322に存在するか、または(図1に示されたように)SoC322に結合される場合がある。メモリ1204は、上述されたDRAMメモリシステム104(図1)を含む場合がある。
さらに、図12に示されたように、デジタルカメラ348は、マルチコアCPU 1202に結合される場合がある。例示的な態様では、デジタルカメラ348は、電荷結合デバイス(CCD)カメラまたは相補型金属酸化物半導体(CMOS)カメラである。
図12にさらに示されたように、ステレオオーディオコーダ-デコーダ(コーデック)350は、マルチコアCPU1202に結合される場合がある。その上、オーディオ増幅器352は、ステレオオーディオコーデック350に結合される場合がある。例示的な態様では、第1のステレオスピーカ354および第2のステレオスピーカ356は、オーディオ増幅器352に結合される。図12は、マイクロフォン増幅器358もステレオオーディオコーデック350に結合される場合があることを示している。加えて、マイクロフォン360は、マイクロフォン増幅器358に結合される場合がある。特定の態様では、周波数変調(「FM」)ラジオチューナ362は、ステレオオーディオコーデック350に結合される場合がある。また、FMアンテナ364は、FMラジオチューナ362に結合される。さらに、ステレオヘッドフォン366は、ステレオオーディオコーデック350に結合される場合がある。
図12はさらに、無線周波数(RF)トランシーバ368がマルチコアCPU1202に結合される場合があることを示す。RFスイッチ370は、RFトランシーバ368およびRFアンテナ372に結合される場合がある。図12に示されたように、キーパッド374は、マルチコアCPU 1202に結合される場合がある。また、マイクロフォン付きモノヘッドセット376は、マルチコアCPU 1202に結合される場合がある。さらに、バイブレータデバイス378は、マルチコアCPU 1202に結合される場合がある。
図12はまた、電源380がオンチップシステム322に結合される場合があることを示す。特定の態様では、電源380は電力を必要とするPCD1200の様々な構成要素に電力を供給する直流(DC)電源である。さらに、特定の態様では、電源は、充電式DCバッテリー、または交流(AC)電源に接続されたAC-DC変換器から導出されるDC電源である。
図12はさらに、PCD1200がデータネットワーク、たとえばローカルエリアネットワーク、パーソナルエリアネットワーク、または任意の他のネットワークにアクセスするために使用され得る、ネットワークカード388を含む場合もあることを示す。ネットワークカード388は、Bluetooth(登録商標)ネットワークカード、WiFiネットワークカード、パーソナルエリアネットワーク(PAN)カード、パーソナルエリアネットワーク超低電力技術(PeANUT)ネットワークカード、テレビジョン/ケーブル/衛星チューナ、または当技術分野でよく知られている任意の他のネットワークカードであり得る。さらに、ネットワークカード388はチップに組み込まれる場合があり、すなわち、ネットワークカード388は、チップ内のフルソリューションであり得るし、別個のネットワークカード388ではない場合がある。
図12に描写されたように、タッチスクリーンディスプレイ1206、ビデオポート338、USBポート342、カメラ348、第1のステレオスピーカ354、第2のステレオスピーカ356、マイクロフォン360、FMアンテナ364、ステレオヘッドフォン366、RFスイッチ370、RFアンテナ372、キーパッド374、モノヘッドセット376、バイブレータ378、および電源380は、オンチップシステム322の外部にある場合がある。
本明細書に記載された方法ステップのうちの1つまたは複数は、上述されたモジュールなどのコンピュータプログラム命令としてメモリに記憶される場合があることを諒解されたい。これらの命令は、本明細に記載された方法を実施するために、対応するモジュールと組合せまたは協働して、任意の適切なプロセッサによって実行される場合がある。
上述されたように、システム100によって実装される圧縮方式は、クラウドベースのサーバによって最適化される場合がある。図13は、複数のコンピューティングデバイス1302に組み込まれたシステム100に実装された圧縮アルゴリズム(たとえば、コード表、圧縮係数など)を最適化するためのコンピュータシステム1300の一実施形態を示す。コンピュータシステム1300は、通信ネットワーク1308を介して複数のコンピューティングデバイス1302と通信しているサーバ1306を備える。各コンピューティングデバイス1302は、対応するユーザ1304によって操作される場合がある。通信ネットワーク1308は、たとえば、インターネット、公衆交換電話網(PSTN)、ワイドエリアネットワーク、ローカルエリアネットワーク、ワイヤレスアクセスポイント、または任意の他の適切な通信基盤を含む、任意の適切なプロトコルを介して、有線および/またはワイヤレスの通信をサポートすることができる。
コンピューティングデバイス1302は、パーソナルコンピュータ、ラップトップ、ノートブック、ビデオゲームコンソール、ポータブルコンピューティングデバイス、モバイルフォンなどを含む場合がある。図13に示されたように、コンピューティングデバイス1302は、圧縮方式に従ってメモリデータを符号化することによって、メモリシステム内の電力消費を節約するための上述されたシステム100を含む。サーバ1306は、通信ネットワーク1308を介してコンピューティングデバイス1302の各々と通信する。
一般には、コンピュータシステム1300はエンコーダ最適化モジュールを備え、エンコーダ最適化モジュールは、コンピューティングデバイス1302に提供され、対応するエンコーダ108によって実装されるコードブックを生成し最適化するための論理および/または機能を含む。エンコーダ最適化モジュールのいくつかの態様はコンピューティングデバイス1302に配置される場合があり、他の態様はサーバ1306に配置される場合があることを諒解されたい。クライアント側の機能は、クライアントエンコーダ最適化モジュール1310によって提供される場合があり、サーバ側の機能は、サーバエンコーダ最適化モジュール1314によって提供される場合がある。一実施形態では、クライアントエンコーダ最適化モジュール1310は、サーバ1306とのデータ通信およびデータ同期、ならびにユーザインターフェースの機能および制御を提供するモバイルアプリケーションを含む場合がある。たとえば、ユーザ1304は、コードブックの最適化を選択的に有効および無効にすることができる。下記により詳細に記載されるように、クライアントエンコーダ最適化モジュール1310は、サーバ1306へのコードブック最適化データ(たとえば、圧縮統計データならびに様々なデバイスおよび/またはユーザのメトリック)の送信を制御することができる。一般には、サーバエンコーダ最適化モジュール1314は、コンピューティングデバイス1302からコードブック最適化データを受信し、コードブックを生成し各コンピューティングデバイス1302に供給し、データベース1316を介して複数のユーザ1304のネットワークにわたってコードブックを最適化するための論理および/または機能を含む。
図14は、サーバデータベース1316の一実施形態を示す。サーバデータベース1316は、ユーザ1304および/または対応するコンピューティングデバイス1302に関連付けられた以下の情報:デバイスメモリイメージ1404、コンピューティングデバイス1302に供給されるコードブック1406、コンピューティングデバイス1302から受信されるコードブック圧縮統計データ1407およびデバイス/ユーザメトリック1408のうちの1つまたは複数を有する、コンピュータシステム1300内のユーザ1304ごとの様々なタイプのデータを記憶する。データベース1316内の各行は、コンピュータシステム1300内の異なるユーザ1304に関連付けられたデータに対応する。1番目の行はユーザ1304aに対応する。2番目の行はユーザ1304bに対応する。3番目の行はユーザ1304cに対応する。最後の行はユーザ1304nに対応する。任意の数のユーザに適応するように、任意の数の行が記憶され得ることを諒解されたい。
図16は、サーバエンコーダ最適化モジュール1314の一実施形態のアーキテクチャ、動作、および/または機能を示す。ブロック1602において、コンピュータシステム1300内のユーザ1304ごとに一意のコードブックが生成される場合がある。各コードブックは、コンピューティングデバイス1302のうちの1つに関連付けられ、上述されたように、圧縮方式に従って対応するコンピューティングデバイス1302内のメモリデータを符号化するために構成される。圧縮方式は、図5に示されたハフマン符号化方式などの、エントロピーベースの圧縮アルゴリズムを含む場合がある。図15に示されたように、コードブック1406は、対応するコードワード1504を割り当てられている各パターンを用いて圧縮されるべき、頻度の高いシンボルまたは「パターン」を識別するコード表を含む。
コンピューティングデバイス1302用の最初のコードブック1406は、コンピューティングデバイス1302の仮想メモリイメージ1404を構築することによって生成される場合がある。サーバ1306は、様々なソフトウェア構成要素(たとえば、アプリケーション、アプリケーションフレームワーク、サービス/ランタイム環境、ライブラリ、カーネル、オペレーティングシステムなど)についての様々なタイプの情報(たとえば、図17の情報1700)を受信することができる。サーバ1306は、アプリケーションおよび他の事前に圧縮された構造を解凍し、仮想メモリイメージ1404を構築することができる。
コードブック1406が様々な方法で生成され得ることを諒解されたい。一実施形態では、サーバ1306は段階的コードブック生成プロセスを採用する。第1の段階は、各ソフトウェア構成要素内のパターンの静的分布に基づいて、1次静的コードブックを生成することに関与する。サーバ1306は、最も反復するコードパターン1502を求めて仮想メモリイメージ1404内の各構成要素を検索し、これらに最短コードワード1504を割り当てる。頻繁に動作するプロセスも、最短コードワード1504を割り当てられる場合がある。第2の段階は、動的コードブックの生成および検証に関与する場合がある。仮想メモリイメージ1404は、サーバ1306上で動作する仮想デバイス上にロードされ、スクリプト記述/実行される場合がある。メモリトランザクションは、ロギングされ、記録されたトラフィックを読取り/書込みされる場合がある。静的分布パターンの代わりに動的分布パターンに基づいて、同様のパターン検索が実行される場合がある。
再び図16を参照すると、ブロック1604において、サーバ1306は、通信ネットワーク1308を介して対応するコンピューティングデバイス1302に一意のコードブック1406を供給する。コンピューティングデバイス1302は、コードブック1406を受信し、上述されたように、メモリデータを圧縮するためにコードブック1406を使用することを開始することができる。ブロック1606において、サーバ1306は、コンピューティングデバイス1302から圧縮統計データおよび/またはデバイスメトリックを受信することができる。圧縮統計データは、たとえば、図11に示されたCビット統計データを含む場合がある。
図17は、たとえば、コードブック1406を最適化する際に有用であり得る、デバイスメトリック1702、ならびに値1704、1706および1708などの情報1700の様々な例を示す。圧縮統計データおよびデバイスメトリックは、データベース1316に記憶される場合がある。第1のデバイスメトリック1702は、メモリリソースを要求する特定のプロセスまたはタスクを識別するプロセス識別子(Process_IDx)を含む場合があり、プロセス識別子は、タイムスタンプ、プロセスまたはタスクが動作する平均時間(%avg_time_running)、およびプロセスまたはタスクに関連付けられたバージョン情報についての値を含む場合がある。第2のデバイスメトリック1702は、ハードウェア識別子(Phone_Hardware_ID)を含む場合があり、ハードウェア識別子は、ハードウェアモデル(Hardware_model)および任意の電話レビジョン(Phone_revision)を識別するための値を含む場合がある。第3のデバイスメトリック1702は、追跡タイムスタンプおよび平均CPU稼働率についての値を有するCPU稼働率を含む場合がある。第4のデバイスメトリック1702は、マスタID1104(図11)に従って識別される特定のクライアントについての圧縮統計データを含む場合がある。第5のデバイスメトリック1702は、ソフトウェア識別子(Phone_Software_ID)を含む場合があり、ソフトウェア識別子は、バージョン情報を識別するための値を含む場合がある。
複数のプロセスが同時に動作している場合があり、コンピューティングデバイス1302に関連付けられた多数のさらなるメトリックが受信される場合があることを諒解されたい。一実施形態では、電話ハードウェアIDおよび電話ソフトウェアIDなどのメトリックは、個別に相互参照し、デフォルトの工場ソフトウェアをデータベース1316からローカルに取得して、デフォルトの仮想メモリイメージ1404を作成するために使用される場合があり、プロセスIDおよびバージョンなどのメトリックは、個別に相互参照し、ユーザ1304によってインストールされた任意のさらなるソフトウェアをデータベース1316からローカルに取得し、次いで工場の仮想メモリイメージ1404を改訂してユーザ固有の仮想メモリイメージ1404を作成するために使用される場合がある。一実施形態では、ユーザ1304のコンピューティングデバイス1302上の実際のイメージ1404がサーバ1306に直接送られないので、これは、通信ネットワーク1308の帯域幅を大幅に削減して行われ得る。ローカルデータベース1316は、新しいソフトウェア構成要素を用いて周期的に更新される場合がある。
ブロック1608において、サーバ1306は、コンピュータシステム1300内のユーザ1304の各々からの圧縮統計データおよび/またはデバイスメトリックを処理し、コンピューティングデバイス1302のうちの1つまたは複数のための最適化されたコードブック1406を生成することができる。一実施形態では、サーバ1306は、改善された省電力につながる場合がある、圧縮に成功した最大の割合を有するCビット統計データについて、同様のデバイスメトリックを有するすべてのユーザ1304を見渡すことができる。ブロック1610において、最適化されたコードブック1406が、コンピューティングデバイス1302のうちの1つまたは複数に供給される場合がある。
本発明が記載されたように機能するために、本明細書に記載されたプロセスまたはプロセスフロー内の特定のステップが他のステップよりも先行することは当然である。しかしながら、そのような順序またはシーケンスが本発明の機能を変えない場合、本発明は、記載されたステップの順序に限定されない。すなわち、本発明の範囲および趣旨から逸脱することなく、いくつかのステップは、他のステップの前に実行されるか、後に実行されるか、または他のステップと並行して(実質的に同時に)実行される場合があることを認識されたい。場合によっては、本発明から逸脱することなく、いくつかのステップは、省略されてもよく、または実行されなくてもよい。さらに、「その後」、「次いで」、「次に」などの単語は、ステップの順序を限定するものではない。これらの単語は、単に例示的な方法の説明を通して読者を導くために使用される。
加えて、プログラミングにおける当業者は、たとえば、本明細書内のフローチャートおよび関連する説明に基づいて、開示された発明を容易に実施するために、コンピュータのコードを書くこと、または適切なハードウェアおよび/もしくは回路を識別することができる。
したがって、特定の1組のプログラムコード命令または詳細なハードウェアデバイスの開示は、本発明をどのように製作および使用すべきかについて適切に理解するために必要であるとは見なされない。特許請求されるコンピュータ実施プロセスの発明性のある機能は、上記の説明において、かつ様々なプロセスフローを示すことができる図面とともに、より詳細に説明される。
1つまたは複数の例示的な態様では、記載された機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せに実装される場合がある。ソフトウェアに実装される場合、機能は、1つまたは複数の命令またはコードとして、コンピュータ可読媒体上に記憶されるか、またはコンピュータ可読媒体上で送信される場合がある。コンピュータ可読媒体は、ある場所から別の場所へのコンピュータプログラムの転送を容易にする任意の媒体を含む、コンピュータ記憶媒体と通信媒体の両方を含む。記憶媒体は、コンピュータによってアクセスされ得る任意の利用可能な媒体であり得る。限定ではなく例として、そのようなコンピュータ可読媒体は、RAM、ROM、EEPROM、NANDフラッシュ、NORフラッシュ、M-RAM、P-RAM、R-RAM、CD-ROMもしくは他の光ディスクストレージ、磁気ディスクストレージもしくは他の磁気ストレージデバイス、または命令もしくはデータ構造の形態で所望のプログラムコードを搬送もしくは記憶するために使用され得るし、コンピュータによってアクセスされ得る任意の他の媒体を含む場合がある。
また、任意の接続は、適切にコンピュータ可読媒体と呼ばれる。たとえば、ソフトウェアが、同軸ケーブル、光ファイバケーブル、ツイストペア、デジタル加入者回線(「DSL」)、または、赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバケーブル、ツイストペア、DSL、または、赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。
本明細書で使用されるディスク(disk)およびディスク(disc)は、コンパクトディスク(disc)(CD)、レーザディスク(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピーディスク(disk)、およびブルーレイディスク(disc)を含み、ディスク(disk)は通常、データを磁気的に再生し、ディスク(disc)は、データをレーザで光学的に再生する。上記の組合せも、コンピュータ可読媒体の範囲内に含まれるべきである。
本発明の趣旨および範囲から逸脱することなく、本発明が関係する代替の実施形態は、当業者には明かになるであろう。したがって、選択された態様が詳細に図示および記載されているが、以下の特許請求の範囲によって定義されるように、本発明の趣旨および範囲から逸脱することなく、各態様において様々な置換および改変が行われ得ることが理解されよう。
100 システム
102 システムオンチップ(SoC)
104 DRAMメモリシステム
105 SoCバス
106 メモリクライアント
108 エンコーダ
110a 物理レイヤまたは入力/出力デバイス(PHY/IO)
110b 物理レイヤまたは入力/出力デバイス(PHY/IO)
110c 物理レイヤまたは入力/出力デバイス(PHY/IO)
112a 物理レイヤまたは入力/出力デバイス(PHY/IO)
112b 物理レイヤまたは入力/出力デバイス(PHY/IO)
112c 物理レイヤまたは入力/出力デバイス(PHY/IO)
114 接続
116 接続
118 接続
120 周辺インターフェース
122 デコーダ
124 コアメモリアレイ
202 クロック
204 MALトランザクション
302 非圧縮データ
304 圧縮データ
322 SoC
328 ディスプレイコントローラ
330 タッチスクリーンコントローラ
334 ビデオエンコーダ
336 ビデオ増幅器
338 ビデオポート
340 ユニバーサルシリアルバス(USB)コントローラ
342 USBポート
346 加入者識別モジュール(SIM)カード
348 デジタルカメラ
350 ステレオオーディオコーダ-デコーダ(コーデック)
352 オーディオ増幅器
354 第1のステレオスピーカ
356 第2のステレオスピーカ
358 マイクロフォン増幅器
360 マイクロフォン
362 周波数変調(「FM」)ラジオチューナ
364 FMアンテナ
366 ステレオヘッドフォン
368 無線周波(RF)トランシーバ
370 RFスイッチ
372 RFアンテナ
374 キーパッド
376 マイクロフォン付きモノヘッドセット
378 バイブレータデバイス
380 電源
388 ネットワークカード
400 方法
402 ブロック
404 ブロック
406 ブロック
408 ブロック
410 第0のコア
412 第1のコア
414 第Nのコア
500 ハフマンツリー
502 ブロック
504 ブロック
506 ブロック
508 ブロック
510 ブロック
512 ブロック
514 ブロック
602 非圧縮MAL
604 圧縮MAL
702 非圧縮MAL
704 圧縮MAL
802 接続
804 プログラマブルハフマン係数表
806 接続
808 接続
810 連結/バッファ
812 接続
814 ゼロパディング構成要素
816 接続
818 カウンタ
820 Cビット生成器
822 接続
902 バッファ&左シフト構成要素
904 接続
905 プログラマブル逆ハフマン係数表
906 接続
908 接続
1000 表
1100 表
1102 クライアント名フィールド
1104 マスタID(MID)フィールド
1106 圧縮イネーブルビットフィールド
1108 トランザクションの総数フィールド
1109 非圧縮トランザクションの総数フィールド
1200 ポータブルコンピューティングデバイス(PCD)
1202 マルチコアCPU
1204 メモリ
1206 タッチスクリーンディスプレイ
1300 コンピュータシステム
1302 コンピューティングデバイス
1304 ユーザ
1304a ユーザ
1304b ユーザ
1304c ユーザ
1304n ユーザ
1306 サーバ
1308 通信ネットワーク
1310 クライアントエンコーダ最適化モジュール
1312 ネットワークインターフェースデバイス
1314 サーバエンコーダ最適化モジュール
1316 サーバデータベース
1402 ユーザID
1404 デバイスメモリイメージ
1406 コードブック
1407 コードブック圧縮統計データ
1408 デバイス/ユーザメトリック
1502 コードパターン
1504 コードワード
1602 ブロック
1604 ブロック
1606 ブロック
1608 ブロック
1610 ブロック
1700 情報
1702 デバイスメトリック
1704 値
1706 値
1708 値

Claims (40)

  1. 省電力コードブックの最適化を実現するための方法であって、
    複数のコンピューティングデバイスのための一意のコードブックを生成するステップであって、各一意のコードブックが前記対応するコンピューティングデバイス内のメモリデータを符号化するために構成される、ステップと、
    通信ネットワークを介して前記対応するコンピューティングデバイスに前記一意のコードブックを供給するステップと、
    前記通信ネットワークを介して前記コンピューティングデバイスのうちの1つまたは複数から圧縮統計データを受信するステップであって、前記圧縮統計データが前記対応する一意のコードブックに関係する、ステップと、
    前記受信された圧縮統計データに基づいて前記コンピューティングデバイスのうちの少なくとも1つのための最適化されたコードブックを生成するステップと
    を含む、方法。
  2. 前記通信ネットワークを介して前記コンピューティングデバイスのうちの1つまたは複数に前記最適化されたコードブックを供給するステップをさらに含む、請求項1に記載の方法。
  3. 前記一意のコードブックを生成する前記ステップが、
    前記コンピューティングデバイスの仮想メモリイメージを構築するステップと、
    前記仮想メモリイメージに関連付けられた複数の頻度の高いソースシンボルを特定するステップと、
    各ソースシンボルに対応するコードワードを割り当てるステップと
    を含む、請求項1に記載の方法。
  4. 前記仮想メモリイメージを構築する前記ステップが、前記コンピューティングデバイスから情報を受信し、前記情報を相互参照してデータベース内の1つまたは複数のソフトウェア構成要素を識別するステップを含み、前記方法が、サーバ上で動作する仮想デバイス上に前記仮想メモリイメージをロードし、実行するステップをさらに含む、請求項3に記載の方法。
  5. 前記一意のコードブックが、エントロピー符号化アルゴリズムに従って前記メモリデータを符号化するように構成された、請求項1に記載の方法。
  6. 前記エントロピー符号化アルゴリズムが、複数のプログラマブル係数を含む簡略化されたハフマン方式を含む、請求項5に記載の方法。
  7. 前記圧縮統計データが、前記対応するコンピューティングデバイス内のエンコーダによって生成されたCビットデータを含む、請求項1に記載の方法。
  8. 前記通信ネットワークを介して前記コンピューティングデバイスのうちの1つまたは複数から、前記対応するコンピューティングデバイスまたはユーザに関連付けられたデバイスメトリックを受信するステップ
    をさらに含み、
    前記最適化されたコードブックを生成する前記ステップが、前記受信された圧縮統計データおよび前記受信されたデバイスメトリックのうちの1つまたは複数に基づく、
    請求項1に記載の方法。
  9. 前記デバイスメトリックが、ハードウェアバージョン、ソフトウェアバージョン、オペレーティングシステムバージョン、プロセスタイムスタンプ、プロセス平均実行時間、およびCPU稼働率データのうちの1つまたは複数を含む、請求項8に記載の方法。
  10. 前記コンピューティングデバイスがポータブル通信デバイスを含む、請求項1に記載の方法。
  11. マルチユーザの省電力コードブックの最適化を実現するためのシステムであって、
    複数のコンピューティングデバイスのための一意のコードブックを生成するための手段であって、各一意のコードブックが対応するコンピューティングデバイス内のメモリデータを符号化するために構成される、手段と、
    通信ネットワークを介して前記対応するコンピューティングデバイスに前記一意のコードブックを供給するための手段と、
    前記通信ネットワークを介して前記コンピューティングデバイスのうちの1つまたは複数から圧縮統計データを受信するための手段であって、前記圧縮統計データが前記対応する一意のコードブックに関係する、手段と、
    前記受信された圧縮統計データに基づいて前記コンピューティングデバイスのうちの少なくとも1つのための最適化されたコードブックを生成するための手段と
    を備える、システム。
  12. 前記通信ネットワークを介して前記コンピューティングデバイスのうちの1つまたは複数に前記最適化されたコードブックを供給するための手段をさらに備える、請求項11に記載のシステム。
  13. 前記一意のコードブックを生成するための前記手段が、
    前記コンピューティングデバイスの仮想メモリイメージを構築するための手段と、
    前記仮想メモリイメージに関連付けられた複数の頻度の高いソースシンボルを特定するための手段と、
    各ソースシンボルに対応するコードワードを割り当てるための手段と
    を備える、請求項11に記載のシステム。
  14. 前記仮想メモリイメージを構築するための前記手段が、前記コンピューティングデバイスから情報を受信し、前記情報を相互参照してデータベース内の1つまたは複数のソフトウェア構成要素を識別するための手段を備え、前記システムが、サーバ上で動作する仮想デバイス上に前記仮想メモリイメージをロードし、実行するための手段をさらに備える、請求項13に記載のシステム。
  15. 前記一意のコードブックが、エントロピー符号化アルゴリズムに従って前記メモリデータを符号化するように構成された、請求項11に記載のシステム。
  16. 前記エントロピー符号化アルゴリズムが、複数のプログラマブル係数を含む簡略化されたハフマン方式を含む、請求項15に記載のシステム。
  17. 前記圧縮統計データが、前記対応するコンピューティングデバイス内のエンコーダによって生成されたCビットデータを含む、請求項11に記載のシステム。
  18. 前記通信ネットワークを介して前記コンピューティングデバイスのうちの1つまたは複数から、前記対応するコンピューティングデバイスまたはユーザに関連付けられたデバイスメトリックを受信するための手段
    をさらに備え、
    前記最適化されたコードブックが、前記受信された圧縮統計データおよび前記受信されたデバイスメトリックのうちの1つまたは複数に基づいて生成される、
    請求項11に記載のシステム。
  19. 前記デバイスメトリックが、ハードウェアバージョン、ソフトウェアバージョン、オペレーティングシステムバージョン、プロセスタイムスタンプ、プロセス平均実行時間、およびCPU稼働率データのうちの1つまたは複数を含む、請求項18に記載のシステム。
  20. 前記コンピューティングデバイスがポータブル通信デバイスを含む、請求項11に記載のシステム。
  21. マルチユーザの省電力コードブックの最適化を実現するための、コンピュータ可読媒体内で具現化され、プロセッサによって実行可能なコンピュータプログラムであって、
    複数のコンピューティングデバイスのための一意のコードブックを生成することであって、各一意のコードブックが対応するコンピューティングデバイス内のメモリデータを符号化するために構成される、生成することと、
    通信ネットワークを介して前記対応するコンピューティングデバイスに前記一意のコードブックを供給することと、
    前記通信ネットワークを介して前記コンピューティングデバイスのうちの1つまたは複数から圧縮統計データを受信することであって、前記圧縮統計データが前記対応する一意のコードブックに関係する、受信することと、
    前記受信された圧縮統計データに基づいて前記コンピューティングデバイスのうちの少なくとも1つのための最適化されたコードブックを生成することと
    を行うように構成された論理を含む、コンピュータプログラム。
  22. 前記通信ネットワークを介して前記コンピューティングデバイスのうちの1つまたは複数に前記最適化されたコードブックを供給するように構成された論理をさらに含む、請求項21に記載のコンピュータプログラム。
  23. 前記一意のコードブックを生成するように構成された前記論理が、
    前記コンピューティングデバイスの仮想メモリイメージを構築することと、
    前記仮想メモリイメージに関連付けられた複数の頻度の高いソースシンボルを特定することと、
    各ソースシンボルに対応するコードワードを割り当てることと
    を行うように構成された論理をさらに含む、請求項21に記載のコンピュータプログラム。
  24. 前記仮想メモリイメージを構築するように構成された前記論理が、前記コンピューティングデバイスから情報を受信し、前記情報を相互参照してデータベース内の1つまたは複数のソフトウェア構成要素を識別するように構成された論理を含み、前記コンピュータプログラムが、サーバ上で動作する仮想デバイス上に前記仮想メモリイメージをロードし、実行するように構成された論理をさらに含む、請求項23に記載のコンピュータプログラム。
  25. 前記一意のコードブックが、エントロピー符号化アルゴリズムに従って前記メモリデータを符号化するように構成された、請求項21に記載のコンピュータプログラム。
  26. 前記エントロピー符号化アルゴリズムが、複数のプログラマブル係数を含む簡略化されたハフマン方式を含む、請求項25に記載のコンピュータプログラム。
  27. 前記圧縮統計データが、前記対応するコンピューティングデバイス内のエンコーダによって生成されたCビットデータを含む、請求項21に記載のコンピュータプログラム。
  28. 前記通信ネットワークを介して前記コンピューティングデバイスのうちの1つまたは複数から、前記対応するコンピューティングデバイスまたはユーザに関連付けられたデバイスメトリックを受信すること
    を行うように構成された論理をさらに含み、
    前記最適化されたコードブックが、前記受信された圧縮統計データおよび前記受信されたデバイスメトリックのうちの1つまたは複数に基づいて生成される、
    請求項21に記載のコンピュータプログラム。
  29. 前記デバイスメトリックが、ハードウェアバージョン、ソフトウェアバージョン、オペレーティングシステムバージョン、プロセスタイムスタンプ、プロセス平均実行時間、およびCPU稼働率データのうちの1つまたは複数を含む、請求項28に記載のコンピュータプログラム。
  30. 前記コンピューティングデバイスがポータブル通信デバイスを含む、請求項21に記載のコンピュータプログラム。
  31. 通信ネットワークを介して複数のコンピューティングデバイスと通信しているサーバを備えるコンピュータシステムであって、前記サーバが、前記コンピューティングデバイスによって実行されるメモリデータの符号化を最適化するように構成されたエンコーダ最適化モジュールを備え、前記エンコーダ最適化モジュールが、
    前記複数のコンピューティングデバイスの各々のための一意のコードブックを生成するように構成された論理であって、前記一意のコードブックが対応するコンピューティングデバイス内のメモリデータを符号化するために使用される、論理と、
    前記通信ネットワークを介して前記コンピューティングデバイスに前記一意のコードブックを供給するように構成された論理と、
    前記通信ネットワークを介して前記コンピューティングデバイスのうちの1つまたは複数から圧縮統計データを受信するように構成された論理であって、前記圧縮統計データが前記対応する一意のコードブックに関係する、論理と、
    前記受信された圧縮統計データに基づいて前記コンピューティングデバイスのうちの少なくとも1つのための最適化されたコードブックを生成するように構成された論理と
    を含む、コンピュータシステム。
  32. 前記エンコーダ最適化モジュールが、前記通信ネットワークを介して前記コンピューティングデバイスのうちの1つまたは複数に前記最適化されたコードブックを供給するように構成された論理をさらに含む、請求項31に記載のコンピュータシステム。
  33. 前記一意のコードブックを生成するように構成された前記論理が、
    前記コンピューティングデバイスの仮想メモリイメージを構築するように構成された論理と、
    前記仮想メモリイメージに関連付けられた複数の頻度の高いソースシンボルを特定するように構成された論理と、
    各ソースシンボルに対応するコードワードを割り当てるように構成された論理と
    を含む、請求項31に記載のコンピュータシステム。
  34. 前記仮想メモリイメージを構築するように構成された前記論理が、前記コンピューティングデバイスから情報を受信し、前記情報を相互参照してデータベース内の1つまたは複数のソフトウェア構成要素を識別するように構成された論理を含み、前記エンコーダ最適化モジュールが、サーバ上で動作する仮想デバイス上に前記仮想メモリイメージをロードし、実行するように構成された論理をさらに含む、請求項33に記載のコンピュータシステム。
  35. 前記一意のコードブックが、エントロピー符号化アルゴリズムに従って前記メモリデータを符号化するように構成された、請求項31に記載のコンピュータシステム。
  36. 前記エントロピー符号化アルゴリズムが、複数のプログラマブル係数を含む簡略化されたハフマン方式を含む、請求項35に記載のコンピュータシステム。
  37. 前記圧縮統計データが、前記対応するコンピューティングデバイス内のエンコーダによって生成されたCビットデータを含む、請求項31に記載のコンピュータシステム。
  38. 前記エンコーダ最適化モジュールが、
    前記通信ネットワークを介して前記コンピューティングデバイスのうちの1つまたは複数から、前記対応するコンピューティングデバイスに関連付けられたデバイスメトリックを受信するように構成された論理
    をさらに含み、
    前記最適化されたコードブックが、前記受信された圧縮統計データおよび前記受信されたデバイスメトリックのうちの1つまたは複数に基づいて生成される、
    請求項31に記載のコンピュータシステム。
  39. 前記デバイスメトリックが、ハードウェアバージョン、ソフトウェアバージョン、オペレーティングシステムバージョン、プロセスタイムスタンプ、プロセス平均実行時間、およびCPU稼働率データのうちの1つまたは複数を含む、請求項38に記載のコンピュータシステム。
  40. 前記コンピューティングデバイスがポータブル通信デバイスを含む、請求項31に記載のコンピュータシステム。
JP2016525035A 2013-10-24 2014-10-23 マルチユーザの省電力コードブックの最適化を実現するためのシステムおよび方法 Pending JP2017502539A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/062,866 2013-10-24
US14/062,866 US20150121111A1 (en) 2013-10-24 2013-10-24 System and method for providing multi-user power saving codebook optmization
PCT/US2014/061969 WO2015061567A1 (en) 2013-10-24 2014-10-23 System and method for providing multi-user power saving codebook optimization

Publications (2)

Publication Number Publication Date
JP2017502539A true JP2017502539A (ja) 2017-01-19
JP2017502539A5 JP2017502539A5 (ja) 2017-11-16

Family

ID=51894227

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016525035A Pending JP2017502539A (ja) 2013-10-24 2014-10-23 マルチユーザの省電力コードブックの最適化を実現するためのシステムおよび方法

Country Status (6)

Country Link
US (1) US20150121111A1 (ja)
EP (1) EP3061189A1 (ja)
JP (1) JP2017502539A (ja)
KR (1) KR20160077117A (ja)
CN (1) CN105659503A (ja)
WO (1) WO2015061567A1 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9864536B2 (en) 2013-10-24 2018-01-09 Qualcomm Incorporated System and method for conserving power consumption in a memory system
US9600317B2 (en) * 2014-04-16 2017-03-21 Vmware, Inc. Page compressibility checker
US9342344B2 (en) 2014-04-16 2016-05-17 Vmware, Inc. Content-based swap candidate selection
US10222853B2 (en) 2016-03-03 2019-03-05 Qualcomm Incorporated Power saving techniques for memory systems by consolidating data in data lanes of a memory bus
KR20200034499A (ko) * 2018-09-21 2020-03-31 삼성전자주식회사 메모리 장치와 통신하는 데이터 처리 장치 및 방법
CN116193138B (zh) * 2023-04-21 2023-07-21 北京象帝先计算技术有限公司 数据处理系统、电子组件及电子设备

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0969785A (ja) * 1995-08-30 1997-03-11 Toshiba Corp データ圧縮方法及びデータ圧縮装置
JPH11168390A (ja) * 1997-12-03 1999-06-22 Fujitsu Ltd データ圧縮装置及びデータ復元装置,データ圧縮方法及びデータ復元方法,データ圧縮/復元用辞書作成装置並びにデータ圧縮プログラム又はデータ復元プログラムを記録したコンピュータ読み取り可能な記録媒体
US6081211A (en) * 1998-04-08 2000-06-27 Xerox Corporation Minimal buffering method and system for optimized encoding tables in JPEG compression
US6112244A (en) * 1998-02-27 2000-08-29 Motorola, Inc. Method and apparatus in a wireless communication system for compressing and decompressing messages generated by a plurality of applications
JP2001007707A (ja) * 1999-04-20 2001-01-12 Matsushita Electric Ind Co Ltd 符号化装置
JP2003087789A (ja) * 2001-09-13 2003-03-20 Mitsubishi Electric Corp 画像符号化装置及び画像復号化装置
JP2005063270A (ja) * 2003-08-18 2005-03-10 Konami Co Ltd 通信システム、サービス方法、端末方法、ならびに、プログラム
US8301686B1 (en) * 2007-04-16 2012-10-30 Citrix Systems, Inc. Systems and methods for decentralized computing
US20120296983A1 (en) * 2011-05-17 2012-11-22 Microsoft Corporation Managing compression dictionaries

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5532694A (en) * 1989-01-13 1996-07-02 Stac Electronics, Inc. Data compression apparatus and method using matching string searching and Huffman encoding
US5493574A (en) * 1992-09-24 1996-02-20 Zilog, Inc. Power efficient RAM disk and a method of emulating a rotating memory disk
US5627533A (en) * 1994-08-05 1997-05-06 Hayes Microcomputer Products, Inc. Adjusting encoding table size and memory allocation for data compression in response to input data
US6414610B1 (en) * 1997-02-24 2002-07-02 Rodney J Smith Data compression
US20020115407A1 (en) * 1997-05-07 2002-08-22 Broadcloud Communications, Inc. Wireless ASP systems and methods
TW543311B (en) * 2000-11-16 2003-07-21 Ericsson Telefon Ab L M Static information knowledge used with binary compression methods
US6985965B2 (en) * 2000-11-16 2006-01-10 Telefonaktiebolaget Lm Ericsson (Publ) Static information knowledge used with binary compression methods
US7095343B2 (en) * 2001-10-09 2006-08-22 Trustees Of Princeton University code compression algorithms and architectures for embedded systems
KR100451554B1 (ko) * 2002-08-30 2004-10-08 삼성전자주식회사 멀티미디어용 시스템온칩 프로세서
WO2005081494A1 (en) * 2004-02-19 2005-09-01 Telefonaktiebolaget Lm Ericsson (Publ) Method and arrangement for state memory management
US7348904B2 (en) * 2004-02-19 2008-03-25 Telefonaktiebolaget Lm Ericsson (Publ) Selective updating of compression dictionary
US8001294B2 (en) * 2004-09-28 2011-08-16 Sony Computer Entertainment Inc. Methods and apparatus for providing a compressed network in a multi-processing system
GB2427803A (en) * 2005-06-29 2007-01-03 Symbian Software Ltd E-mail/text message compression using differences from earlier messages or standard codebooks with specific message supplements
CN101558619A (zh) * 2006-10-26 2009-10-14 高通股份有限公司 多址无线通信系统中的码书交换方法和装置
US7961640B2 (en) * 2006-10-26 2011-06-14 Qualcomm Incorporated Method and apparatus for codebook exchange in a multiple access wireless communication system
CN101527849B (zh) * 2009-03-30 2011-11-09 清华大学 集成视频解码器的存储系统
GB0918373D0 (en) * 2009-10-20 2009-12-02 Advanced Risc Mach Ltd Memory interface compression
US8572218B2 (en) * 2009-12-10 2013-10-29 International Business Machines Corporation Transport data compression based on an encoding dictionary patch
EP2529374A4 (en) * 2010-01-28 2014-04-02 Hewlett Packard Development Co MEMORY ACCESS METHODS AND APPARATUS
CN102075759B (zh) * 2011-02-25 2012-11-14 清华大学 视频解码应用中动态存储器的低功耗编码方法
KR101605047B1 (ko) * 2011-12-21 2016-03-21 인텔 코포레이션 움직임 보상 및 디스플레이 리프레시의 전력 소모를 감소시키는 dram 압축 방안

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0969785A (ja) * 1995-08-30 1997-03-11 Toshiba Corp データ圧縮方法及びデータ圧縮装置
JPH11168390A (ja) * 1997-12-03 1999-06-22 Fujitsu Ltd データ圧縮装置及びデータ復元装置,データ圧縮方法及びデータ復元方法,データ圧縮/復元用辞書作成装置並びにデータ圧縮プログラム又はデータ復元プログラムを記録したコンピュータ読み取り可能な記録媒体
US6112244A (en) * 1998-02-27 2000-08-29 Motorola, Inc. Method and apparatus in a wireless communication system for compressing and decompressing messages generated by a plurality of applications
US6081211A (en) * 1998-04-08 2000-06-27 Xerox Corporation Minimal buffering method and system for optimized encoding tables in JPEG compression
JP2001007707A (ja) * 1999-04-20 2001-01-12 Matsushita Electric Ind Co Ltd 符号化装置
JP2003087789A (ja) * 2001-09-13 2003-03-20 Mitsubishi Electric Corp 画像符号化装置及び画像復号化装置
JP2005063270A (ja) * 2003-08-18 2005-03-10 Konami Co Ltd 通信システム、サービス方法、端末方法、ならびに、プログラム
US8301686B1 (en) * 2007-04-16 2012-10-30 Citrix Systems, Inc. Systems and methods for decentralized computing
US20120296983A1 (en) * 2011-05-17 2012-11-22 Microsoft Corporation Managing compression dictionaries

Also Published As

Publication number Publication date
US20150121111A1 (en) 2015-04-30
CN105659503A (zh) 2016-06-08
EP3061189A1 (en) 2016-08-31
KR20160077117A (ko) 2016-07-01
WO2015061567A1 (en) 2015-04-30

Similar Documents

Publication Publication Date Title
JP2017502539A (ja) マルチユーザの省電力コードブックの最適化を実現するためのシステムおよび方法
JP6309621B2 (ja) メモリシステムにおける電力消費を節約するためのシステムおよび方法
US9430434B2 (en) System and method for conserving memory power using dynamic memory I/O resizing
KR101952562B1 (ko) 홀수 계수 메모리 채널 인터리빙을 위한 시스템 및 방법
KR20120049604A (ko) 모바일 디바이스의 메모리 관리 방법 및 장치
WO2015168189A1 (en) Cpu/gpu dcvs co-optimization for reducing power consumption in graphics frame processing
WO2017048463A1 (en) System and method for controlling memory frequency using feed-forward compression statistics
US9632562B2 (en) Systems and methods for reducing volatile memory standby power in a portable computing device
JP2017516123A (ja) Dramメモリシステムにおいて省電力静止画像表示リフレッシュを提供するためのシステムおよび方法
TW201717026A (zh) 用於逐頁記憶體通道交錯之系統及方法
CN101521782A (zh) 一种快进退浏览视频的方法、系统及多媒体设备
CN109416662A (zh) 使用存储使用率环的选择性闪存压缩/解压缩
TW201717025A (zh) 用於逐頁記憶體通道交錯之系統及方法
TW201239756A (en) Power optimization for special media playback scenarios
WO2019128497A1 (zh) 一种数据异构存储方法以及数据异构存储装置
US9378750B2 (en) Apparatus and method of reproducing audio data using low power
CN107251000A (zh) 片上系统中的动态存储器利用
KR102623137B1 (ko) 컴퓨팅 디바이스에서 동적 버퍼 사이징을 위한 시스템 및 방법

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171006

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20171006

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20181012

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20181022

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20190527