【手続補正書】
【提出日】令和2年2月14日(2020.2.14)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
システムバスを介してシステムメモリとシステムキャッシュとにアクセスするように構成されたメモリインターフェースを備え、前記システムキャッシュの複数のシステムキャッシュラインに対応する複数のサブラインを記憶するように各々がサイズ決定された複数のラストレベルキャッシュ（ＬＬＣ）ラインを備えるＬＬＣに通信可能に結合された、圧縮メモリコントローラ（ＣＭＣ）であって、
前記ＣＭＣは、
前記システムキャッシュからメモリアドレスを備えるメモリ読取り要求を受信することと、
前記メモリアドレスが前記ＬＬＣの前記複数のＬＬＣラインのうちの１つのＬＬＣライン内の前記複数のサブラインのうちの有効なサブラインに対応するかどうかを決定することと、
前記メモリアドレスが前記ＬＬＣの前記複数のＬＬＣラインのうちの１つのＬＬＣライン内の前記複数のサブラインのうちの有効なサブラインに対応しないと決定したことに応答して、
前記システムメモリ中のマスタテーブルから前記１つのＬＬＣラインのためのオフセット値と長さ値とを含んでいるマスタテーブルエントリを読み取ることと、
前記メモリアドレスと、前記オフセット値と、前記長さ値とに基づいて、前記システムメモリから１つまたは複数のブロックを検索することと、
前記検索された１つまたは複数のブロックからのデータを前記ＬＬＣの前記複数のＬＬＣラインのうちの１つのＬＬＣライン内の前記複数のサブラインのうちのサブラインに記憶することと、
前記検索された１つまたは複数のブロックからの前記データを前記システムキャッシュに返すことと
を行うように構成された、ＣＭＣ。
【請求項２】
前記メモリアドレスが前記複数のＬＬＣライン内の既存のＬＬＣラインのサブラインに対応するかどうかを決定することと、
前記メモリアドレスが前記複数のＬＬＣライン内の既存のＬＬＣラインのサブラインに対応すると決定したことに応答して、前記既存のＬＬＣラインの前記サブラインが有効であるかどうかを決定することと
を行うように構成されることによって、前記メモリアドレスが前記ＬＬＣの前記複数のＬＬＣラインのうちの１つのＬＬＣライン内の前記複数のサブラインのうちの有効なサブラインに対応するかどうかを決定するように構成された、請求項１に記載のＣＭＣ。
【請求項３】
前記メモリアドレスが前記ＬＬＣの前記複数のＬＬＣラインのうちの１つのＬＬＣライン内の前記複数のサブラインのうちの有効なサブラインに対応すると決定したことに応答して、前記有効なサブラインからのデータを前記システムキャッシュに返すようにさらに構成された、請求項１に記載のＣＭＣ。
【請求項４】
前記長さ値に基づいて、前記検索された１つまたは複数のブロックからの前記データが圧縮されたかどうかを決定することと、
前記検索された１つまたは複数のブロックからの前記データが圧縮されていないと決定したことに応答して、前記検索された１つまたは複数のブロックからの前記データを前記ＬＬＣの前記複数のＬＬＣラインのうちの前記１つのＬＬＣライン内の前記複数のサブラインのうちの前記サブラインに記憶することと、
前記検索された１つまたは複数のブロックからの前記データが圧縮されたと決定したことに応答して、
前記検索された１つまたは複数のブロックからの前記データを復元することと、
前記復元されたデータを前記ＬＬＣの前記複数のＬＬＣラインのうちの前記１つのＬＬＣライン内の前記複数のサブラインのうちの前記サブラインに記憶することと
を行うように構成されることによって、前記検索された１つまたは複数のブロックからの前記データを前記ＬＬＣの前記複数のＬＬＣラインのうちの前記１つのＬＬＣライン内の前記複数のサブラインのうちの前記サブラインに記憶するように構成された、請求項１に記載のＣＭＣ。
【請求項５】
前記検索された１つまたは複数のブロックからの前記データを前記ＬＬＣの前記複数のＬＬＣラインのうちの前記１つのＬＬＣライン内の前記複数のサブラインのうちの前記サブラインに記憶するより前に、
前記複数のＬＬＣラインのうちの１つのＬＬＣラインをエビクションＬＬＣラインとして選択することと、
前記エビクションＬＬＣラインの前記複数のサブラインからのデータを前記システムメモリに記憶することと、
前記検索された１つまたは複数のブロックからの前記データを前記エビクションＬＬＣライン内の前記複数のサブラインのうちのサブラインに記憶することと
を行うようにさらに構成された、請求項１に記載のＣＭＣ。
【請求項６】
前記エビクションＬＬＣラインの前記複数のサブラインの各対応するサブラインのためのオフセット値と長さ値とを各々が含んでいる複数のマスタテーブルエントリを読み取ることと、
変更されたデータを含んでいる前記エビクションＬＬＣラインの前記複数のサブラインの各サブラインについて、
前記サブラインからのデータを圧縮することと、
前記サブラインからの前記圧縮されたデータに基づいて、前記サブラインのための更新された長さ値を生成することと、
前記サブラインのための前記更新された長さ値が前記サブラインのための前記長さ値とは異なるかどうかを決定することと、
前記サブラインのための前記更新された長さ値が前記サブラインのための前記長さ値とは異ならないと決定したことに応答して、前記サブラインのための前記オフセット値と前記長さ値とに基づいて、前記サブラインのための前記圧縮されたデータを前記システムメモリの１つまたは複数のブロックに書き込むことと、
前記サブラインのための前記更新された長さ値が前記サブラインのための前記長さ値とは異なると決定したことに応答して、
前記サブラインのための更新されたオフセット値を生成することと、
前記サブラインのための前記更新されたオフセット値と前記更新された長さ値とに基づいて、前記サブラインのための前記圧縮されたデータを前記システムメモリの１つまたは複数のブロックに書き込むことと、
前記更新されたオフセット値と前記更新された長さ値とで前記サブラインのためのマスタテーブルエントリを更新することと
を行うように構成されることによって、前記エビクションＬＬＣラインの前記複数のサブラインからの前記データを前記システムメモリに記憶するように構成された、請求項５に記載のＣＭＣ。
【請求項７】
前記圧縮されたデータが、２つ以上のサブラインに対応する前記システムメモリのメモリサブライン領域にまたがることを防ぐことと、前記システムメモリの前記メモリサブライン領域内で、前記圧縮されたデータを整合させることと、前記複数のサブラインのための前記圧縮されたデータをグループ化することとを備える１つまたは複数の割振りルールに基づいて、前記サブラインのための前記更新されたオフセット値を生成するように構成された、請求項６に記載のＣＭＣ。
【請求項８】
前に読み取られたマスタテーブルエントリを記憶するように各々が構成された複数のマスタテーブル（ＭＴ）キャッシュエントリを備えるＭＴキャッシュをさらに備え、
前記ＣＭＣは、前記マスタテーブルエントリを読み取るより前に、前記メモリアドレスが前記ＭＴキャッシュの前記複数のＭＴキャッシュエントリのうちのＭＴキャッシュエントリに対応するかどうかを決定するようにさらに構成され、
前記ＣＭＣは、前記メモリアドレスが前記ＭＴキャッシュの前記複数のＭＴキャッシュエントリのうちのＭＴキャッシュエントリに対応しないと決定したことに応答して、前記マスタテーブル中の前記マスタテーブルエントリを読み取るように構成され、
前記ＣＭＣは、
前記メモリアドレスが前記ＭＴキャッシュの前記複数ＭＴキャッシュエントリのうちのＭＴキャッシュエントリに対応しないと決定したことに応答して、前記マスタテーブルエントリを前記ＭＴキャッシュの前記複数のＭＴキャッシュエントリのうちのＭＴキャッシュエントリに書き込むことと、
前記メモリアドレスが前記ＭＴキャッシュの前記複数ＭＴキャッシュエントリのうちのＭＴキャッシュエントリに対応すると決定したことに応答して、前記ＭＴキャッシュの前記ＭＴキャッシュエントリを読み取ることと
を行うようにさらに構成された、
請求項１に記載のＣＭＣ。
【請求項９】
前記マスタテーブルエントリを前記ＭＴキャッシュの前記複数のＭＴキャッシュエントリのうちの前記ＭＴキャッシュエントリに書き込むより前に、
前記ＭＴキャッシュの前記複数のＭＴキャッシュエントリのうちの現在のＭＴキャッシュエントリがエビクトされるべきであるかどうかを決定することと、
前記現在のＭＴキャッシュエントリがエビクトされるべきであると決定したことに応答して、
前記現在のＭＴキャッシュエントリが更新されたかどうかを決定することと、
前記現在のＭＴキャッシュエントリが更新されたと決定したことに応答して、前記現在のＭＴキャッシュエントリのコンテンツを前記マスタテーブルに書き込むことと
を行うようにさらに構成された、請求項８に記載のＣＭＣ。
【請求項１０】
前記ＬＬＣの前記複数のＬＬＣラインのうちの前記１つのＬＬＣライン内の前記複数のサブラインのうちの１つまたは複数の残りのサブラインのための１つまたは複数のオフセット値と１つまたは複数の長さ値とを含んでいる１つまたは複数のマスタテーブルエントリを読み取ることと、
前記１つまたは複数のオフセット値と前記１つまたは複数の長さ値とに基づいて、前記システムメモリから前記１つまたは複数のブロックを検索することと、
前記検索された１つまたは複数のブロックからの前記データを前記ＬＬＣの前記複数のＬＬＣラインのうちの前記１つのＬＬＣライン内の前記複数のサブラインのうちの前記１つまたは複数の残りのサブラインに記憶することと
を行うようにさらに構成された、請求項１に記載のＣＭＣ。
【請求項１１】
集積回路（ＩＣ）に組み込まれる、請求項１に記載のＣＭＣ。
【請求項１２】
セットトップボックスと、エンターテインメントユニットと、ナビゲーションデバイスと、通信デバイスと、固定ロケーションデータユニットと、モバイルロケーションデータユニットと、モバイルフォンと、セルラーフォンと、スマートフォンと、タブレットと、ファブレットと、コンピュータと、ポータブルコンピュータと、デスクトップコンピュータと、携帯情報端末（ＰＤＡ）と、モニタと、コンピュータモニタと、テレビジョンと、チューナーと、無線機と、衛星無線機と、音楽プレーヤと、デジタル音楽プレーヤと、ポータブル音楽プレーヤと、デジタルビデオプレーヤと、ビデオプレーヤと、デジタルビデオディスク（ＤＶＤ）プレーヤと、ポータブルデジタルビデオプレーヤと、自動車とからなるグループから選択されたデバイスに組み込まれる、請求項１に記載のＣＭＣ。
【請求項１３】
メモリ読取り動作のためのメモリ帯域幅圧縮を行うための方法であって、
システムキャッシュから圧縮メモリコントローラ（ＣＭＣ）によって、メモリアドレスを備えるメモリ読取り要求を受信することと、
前記メモリアドレスがラストレベルキャッシュ（ＬＬＣ）の複数のＬＬＣラインのうちの１つのＬＬＣライン内の複数のサブラインのうちの有効なサブラインに対応するかどうかを決定することと、
前記メモリアドレスが前記ＬＬＣの前記複数のＬＬＣラインのうちの１つのＬＬＣライン内の前記複数のサブラインのうちの有効なサブラインに対応しないと決定したことに応答して、
システムメモリ中のマスタテーブルから前記ＬＬＣラインのためのオフセット値と長さ値とを含んでいるマスタテーブルエントリを読み取ることと、
前記メモリアドレスと、前記オフセット値と、前記長さ値とに基づいて、前記システムメモリから１つまたは複数のブロックを検索することと、
前記検索された１つまたは複数のブロックからのデータを前記ＬＬＣの前記複数のＬＬＣラインのうちの１つのＬＬＣライン内の前記複数のサブラインのうちのサブラインに記憶することと、
前記検索された１つまたは複数のブロックからの前記データを前記システムキャッシュに返すことと
を備える、方法。
【請求項１４】
前記メモリアドレスが前記ＬＬＣの前記複数のＬＬＣラインのうちの１つのＬＬＣライン内の前記複数のサブラインのうちの有効なサブラインに対応するかどうかを決定することは、
前記メモリアドレスが前記ＬＬＣの前記複数のＬＬＣラインのうちの既存のＬＬＣライン内の前記複数のサブラインのうちのサブラインに対応するかどうかを決定することと、
前記メモリアドレスが前記ＬＬＣの前記複数のＬＬＣラインのうちの既存のＬＬＣライン内の前記複数のサブラインのうちのサブラインに対応すると決定したことに応答して、前記既存のＬＬＣラインの前記サブラインが有効であるかどうかを決定することと
を備える、請求項１３方法。
【請求項１５】
前記メモリアドレスが前記ＬＬＣの前記複数のＬＬＣラインのうちの１つのＬＬＣライン内の前記複数のサブラインのうちの有効なサブラインに対応すると決定したことに応答して、前記有効なサブラインからのデータを前記システムキャッシュに返すことをさらに備える、請求項１３に記載の方法。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００６２
【補正方法】変更
【補正の内容】
【００６２】
[0070]本開示についての以上の説明は、いかなる当業者も本開示を作成または使用することができるように与えられる。本開示への様々な変更は当業者には容易に明らかになり、本明細書で定義された一般原理は、本開示の趣旨または範囲から逸脱することなく他の変形形態に適用され得る。したがって、本開示は、本明細書で説明された例および設計に限定されるものではなく、本明細書で開示された原理および新規の特徴に合致する最も広い範囲を与えられるべきである。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
［Ｃ１］
システムバスを介してシステムメモリとシステムキャッシュとにアクセスするように構成されたメモリインターフェースを備え、前記システムキャッシュの複数のシステムキャッシュラインに対応する複数のサブラインを記憶するように各々がサイズ決定された複数のラストレベルキャッシュ（ＬＬＣ）ラインを備えるＬＬＣに通信可能に結合された、圧縮メモリコントローラ（ＣＭＣ）であって、
前記ＣＭＣは、
前記システムキャッシュからメモリアドレスを備えるメモリ読取り要求を受信することと、
前記メモリアドレスが前記ＬＬＣの前記複数のＬＬＣラインのうちのＬＬＣライン内の前記複数のサブラインのうちの有効なサブラインに対応するかどうかを決定することと、
前記メモリアドレスが前記ＬＬＣの前記複数のＬＬＣラインのうちのＬＬＣライン内の前記複数のサブラインのうちの有効なサブラインに対応しないと決定したことに応答して、
前記システムメモリ中のマスタテーブルから前記ＬＬＣラインのためのオフセット値と長さ値とを含んでいるマスタテーブルエントリを読み取ることと、
前記メモリアドレスと、前記オフセット値と、前記長さ値とに基づいて、前記システムメモリから１つまたは複数のブロックを検索することと、
前記検索された１つまたは複数のブロックからのデータを前記ＬＬＣの前記複数のＬＬＣラインのうちのＬＬＣライン内の前記複数のサブラインのうちのサブラインに記憶することと、
前記検索された１つまたは複数のブロックからの前記データを前記システムキャッシュに返すことと
を行うように構成された、ＣＭＣ。
［Ｃ２］
前記メモリアドレスが前記複数のＬＬＣライン内の既存のＬＬＣラインのサブラインに対応するかどうかを決定することと、
前記メモリアドレスが前記複数のＬＬＣライン内の既存のＬＬＣラインのサブラインに対応すると決定したことに応答して、前記既存のＬＬＣラインの前記サブラインが有効であるかどうかを決定することと
を行うように構成されることによって、前記メモリアドレスが前記ＬＬＣの前記複数のＬＬＣラインのうちのＬＬＣライン内の前記複数のサブラインのうちの有効なサブラインに対応するかどうかを決定するように構成された、［Ｃ１］に記載のＣＭＣ。
［Ｃ３］
前記メモリアドレスが前記ＬＬＣの前記複数のＬＬＣラインのうちのＬＬＣライン内の前記複数のサブラインのうちの有効なサブラインに対応すると決定したことに応答して、前記有効なサブラインからのデータを前記システムキャッシュに返すようにさらに構成された、［Ｃ１］に記載のＣＭＣ。
［Ｃ４］
前記長さ値に基づいて、前記検索された１つまたは複数のブロックからの前記データが圧縮されたかどうかを決定することと、
前記検索された１つまたは複数のブロックからの前記データが圧縮されていないと決定したことに応答して、前記検索された１つまたは複数のブロックからの前記データを前記ＬＬＣの前記複数のＬＬＣラインのうちの前記ＬＬＣライン内の前記複数のサブラインのうちの前記サブラインに記憶することと、
前記検索された１つまたは複数のブロックからの前記データが圧縮されたと決定したことに応答して、
前記検索された１つまたは複数のブロックからの前記データを復元することと、
前記復元されたデータを前記ＬＬＣの前記複数のＬＬＣラインのうちの前記ＬＬＣライン内の前記複数のサブラインのうちの前記サブラインに記憶することと
を行うように構成されることによって、前記検索された１つまたは複数のブロックからの前記データを前記ＬＬＣの前記複数のＬＬＣラインのうちの前記ＬＬＣライン内の前記複数のサブラインのうちの前記サブラインに記憶するように構成された、［Ｃ１］に記載のＣＭＣ。
［Ｃ５］
前記検索された１つまたは複数のブロックからの前記データを前記ＬＬＣの前記複数のＬＬＣラインのうちの前記ＬＬＣライン内の前記複数のサブラインのうちの前記サブラインに記憶するより前に、
前記複数のＬＬＣラインのうちのＬＬＣラインをエビクションＬＬＣラインとして選択することと、
前記エビクションＬＬＣラインの前記複数のサブラインからのデータを前記システムメモリに記憶することと、
前記検索された１つまたは複数のブロックからの前記データを前記エビクションＬＬＣライン内の前記複数のサブラインのうちのサブラインに記憶することと
を行うようにさらに構成された、［Ｃ１］に記載のＣＭＣ。
［Ｃ６］
前記エビクションＬＬＣラインの前記複数のサブラインの各対応するサブラインのためのオフセット値と長さ値とを各々が含んでいる複数のマスタテーブルエントリを読み取ることと、
変更されたデータを含んでいる前記エビクションＬＬＣラインの前記複数のサブラインの各サブラインについて、
前記サブラインからのデータを圧縮することと、
前記サブラインからの前記圧縮されたデータに基づいて、前記サブラインのための更新された長さ値を生成することと、
前記サブラインのための前記更新された長さ値が前記サブラインのための前記長さ値とは異なるかどうかを決定することと、
前記サブラインのための前記更新された長さ値が前記サブラインのための前記長さ値とは異ならないと決定したことに応答して、前記サブラインのための前記オフセット値と前記長さ値とに基づいて、前記サブラインのための前記圧縮されたデータを前記システムメモリの１つまたは複数のブロックに書き込むことと、
前記サブラインのための前記更新された長さ値が前記サブラインのための前記長さ値とは異なると決定したことに応答して、
前記サブラインのための更新されたオフセット値を生成することと、
前記サブラインのための前記更新されたオフセット値と前記更新された長さ値とに基づいて、前記サブラインのための前記圧縮されたデータを前記システムメモリの１つまたは複数のブロックに書き込むことと、
前記更新されたオフセット値と前記更新された長さ値とで前記サブラインのためのマスタテーブルエントリを更新することと
を行うように構成されることによって、前記エビクションＬＬＣラインの前記複数のサブラインからの前記データを前記システムメモリに記憶するように構成された、［Ｃ５］に記載のＣＭＣ。
［Ｃ７］
前記圧縮されたデータが、２つ以上のサブラインに対応する前記システムメモリのメモリサブライン領域にまたがることを防ぐことと、前記システムメモリの前記メモリサブライン領域内で、前記圧縮されたデータを整合させることと、前記複数のサブラインのための前記圧縮されたデータをグループ化することとを備える１つまたは複数の割振りルールに基づいて、前記サブラインのための前記更新されたオフセット値を生成するように構成された、［Ｃ６］に記載のＣＭＣ。
［Ｃ８］
前に読み取られたマスタテーブルエントリを記憶するように各々が構成された複数のマスタテーブル（ＭＴ）キャッシュエントリを備えるＭＴキャッシュをさらに備え、
前記ＣＭＣは、前記マスタテーブルエントリを読み取るより前に、前記メモリアドレスが前記ＭＴキャッシュの前記複数のＭＴキャッシュエントリのうちのＭＴキャッシュエントリに対応するかどうかを決定するようにさらに構成され、
前記ＣＭＣは、前記メモリアドレスが前記ＭＴキャッシュの前記複数のＭＴキャッシュエントリのうちのＭＴキャッシュエントリに対応しないと決定したことに応答して、前記マスタテーブル中の前記マスタテーブルエントリを読み取るように構成され、
前記ＣＭＣは、
前記メモリアドレスが前記ＭＴキャッシュの前記複数ＭＴキャッシュエントリのうちのＭＴキャッシュエントリに対応しないと決定したことに応答して、前記マスタテーブルエントリを前記ＭＴキャッシュの前記複数のＭＴキャッシュエントリのうちのＭＴキャッシュエントリに書き込むことと、
前記メモリアドレスが前記ＭＴキャッシュの前記複数ＭＴキャッシュエントリのうちのＭＴキャッシュエントリに対応すると決定したことに応答して、前記ＭＴキャッシュの前記ＭＴキャッシュエントリを読み取ることと
を行うようにさらに構成された、
［Ｃ１］に記載のＣＭＣ。
［Ｃ９］
前記マスタテーブルエントリを前記ＭＴキャッシュの前記複数のＭＴキャッシュエントリのうちの前記ＭＴキャッシュエントリに書き込むより前に、
前記ＭＴキャッシュの前記複数のＭＴキャッシュエントリのうちの現在のＭＴキャッシュエントリがエビクトされるべきであるかどうかを決定することと、
前記現在のＭＴキャッシュエントリがエビクトされるべきであると決定したことに応答して、
前記現在のＭＴキャッシュエントリが更新されたかどうかを決定することと、
前記現在のＭＴキャッシュエントリが更新されたと決定したことに応答して、前記現在のＭＴキャッシュエントリのコンテンツを前記マスタテーブルに書き込むことと
を行うようにさらに構成された、［Ｃ８］に記載のＣＭＣ。
［Ｃ１０］
前記ＬＬＣの前記複数のＬＬＣラインのうちの前記ＬＬＣライン内の前記複数のサブラインのうちの１つまたは複数の残りのサブラインのための１つまたは複数のオフセット値と１つまたは複数の長さ値とを含んでいる１つまたは複数のマスタテーブルエントリを読み取ることと、
前記１つまたは複数のオフセット値と前記１つまたは複数の長さ値とに基づいて、前記システムメモリから前記１つまたは複数のブロックを検索することと、
前記検索された１つまたは複数のブロックからの前記データを前記ＬＬＣの前記複数のＬＬＣラインのうちの前記ＬＬＣライン内の前記複数のサブラインのうちの前記１つまたは複数の残りのサブラインに記憶することと
を行うようにさらに構成された、［Ｃ１］に記載のＣＭＣ。
［Ｃ１１］
集積回路（ＩＣ）に組み込まれる、［Ｃ１］に記載のＣＭＣ。
［Ｃ１２］
セットトップボックスと、エンターテインメントユニットと、ナビゲーションデバイスと、通信デバイスと、固定ロケーションデータユニットと、モバイルロケーションデータユニットと、モバイルフォンと、セルラーフォンと、スマートフォンと、タブレットと、ファブレットと、コンピュータと、ポータブルコンピュータと、デスクトップコンピュータと、携帯情報端末（ＰＤＡ）と、モニタと、コンピュータモニタと、テレビジョンと、チューナーと、無線機と、衛星無線機と、音楽プレーヤと、デジタル音楽プレーヤと、ポータブル音楽プレーヤと、デジタルビデオプレーヤと、ビデオプレーヤと、デジタルビデオディスク（ＤＶＤ）プレーヤと、ポータブルデジタルビデオプレーヤと、自動車とからなるグループから選択されたデバイスに組み込まれる、［Ｃ１］に記載のＣＭＣ。
［Ｃ１３］
システムバスを介してシステムメモリとシステムキャッシュとにアクセスするように構成されたメモリインターフェースを備え、前記システムキャッシュの隣接する複数のシステムキャッシュラインに対応する複数のサブラインを記憶するように各々がサイズ決定された複数のラストレベルキャッシュ（ＬＬＣ）ラインを備えるＬＬＣに通信可能に結合された、圧縮メモリコントローラ（ＣＭＣ）であって、
前記ＣＭＣは、
前記システムキャッシュから書込みデータとメモリアドレスとを備えるメモリ書込み要求を受信することと、
前記メモリアドレスが前記ＬＬＣの前記複数のＬＬＣラインのうちのＬＬＣライン内の前記複数のサブラインのうちのサブラインに対応するかどうかを決定することと、
前記メモリアドレスが前記ＬＬＣの前記複数のＬＬＣラインのうちのＬＬＣライン内の前記複数のサブラインのうちのサブラインに対応しないと決定したことに応答して、      前記ＬＬＣの前記複数のＬＬＣライン内のＬＬＣラインをエビクションＬＬＣラインとして選択することと、
変更されたデータを含んでいる前記エビクションＬＬＣラインの前記複数のサブラインの各サブラインについて、
前記サブラインからのデータを圧縮することと、
前記サブラインからの前記圧縮されたデータに基づいて、前記サブラインのための更新されたオフセット値と更新された長さ値とを生成することと、
前記サブラインのための前記更新されたオフセット値と前記更新された長さ値とに基づいて、前記サブラインのための前記圧縮されたデータを前記システムメモリの１つまたは複数のブロックに記憶することと、
前記更新されたオフセット値と前記更新された長さ値とをマスタテーブル中の前記サブラインのためのマスタテーブルエントリに記憶することと、
前記書込みデータを前記エビクションＬＬＣラインの前記複数のサブラインのうちのサブラインに記憶することと
を行うように構成された、ＣＭＣ。
［Ｃ１４］
前記メモリアドレスが前記ＬＬＣの前記複数のＬＬＣラインのうちのＬＬＣライン内の前記複数のサブラインのうちのサブラインに対応すると決定したことに応答して、前記書込みデータを前記ＬＬＣラインの前記サブラインに記憶するようにさらに構成された、［Ｃ１３］に記載のＣＭＣ。
［Ｃ１５］
前記圧縮されたデータが、２つ以上のサブラインに対応する前記システムメモリのメモリサブライン領域にまたがることを防ぐことと、前記システムメモリの前記メモリサブライン領域内で、前記圧縮されたデータを整合させることと、前記複数のサブラインのための前記圧縮されたデータをグループ化することとを備える１つまたは複数の割振りルールに基づいて、前記サブラインのための前記更新されたオフセット値を生成するように構成された、［Ｃ１３］に記載のＣＭＣ。
［Ｃ１６］
前記サブラインのための前記更新されたオフセット値と前記更新された長さ値とに基づいて、前記サブラインのための前記圧縮されたデータを前記システムメモリの前記１つまたは複数のブロックに記憶するより前に、前記サブラインのためのオフセット値と長さ値とを読み取ることと、
前記サブラインのための前記更新された長さ値が前記サブラインのための前記長さ値とは異なるかどうかを決定することと、
前記サブラインのための前記更新された長さ値が前記サブラインのための前記長さ値とは異なると決定したことに応答して、
前記サブラインのための前記更新されたオフセット値を生成することと、
前記サブラインのための前記更新されたオフセット値と前記長さ値とに基づいて、前記サブラインのための前記圧縮されたデータを前記システムメモリの１つまたは複数のブロックに記憶することと、
前記更新されたオフセット値と前記長さ値とで前記マスタテーブル中の前記サブラインのための前記マスタテーブルエントリを更新することと
を行うようにさらに構成され、
前記ＣＭＣは、前記サブラインのための前記更新された長さ値が前記サブラインのための前記長さ値とは異ならないと決定したことに応答して、前記サブラインのための前記オフセット値と前記長さ値とに基づいて、前記サブラインのための前記圧縮されたデータを前記システムメモリの前記１つまたは複数のブロックに記憶するように構成された、
［Ｃ１３］に記載のＣＭＣ。
［Ｃ１７］
前に読み取られたマスタテーブルエントリを記憶するように各々が構成された複数のマスタテーブル（ＭＴ）キャッシュエントリを備えるＭＴキャッシュをさらに備え、
前記ＣＭＣは、前記更新されたオフセット値と前記更新された長さ値とを前記マスタテーブル中の前記サブラインのための前記マスタテーブルエントリに記憶するより前に、前記メモリアドレスが前記ＭＴキャッシュの前記複数のＭＴキャッシュエントリのうちのＭＴキャッシュエントリに対応するかどうかを決定するようにさらに構成され、
前記ＣＭＣは、
前記メモリアドレスが前記ＭＴキャッシュの前記複数のＭＴキャッシュエントリのうちのＭＴキャッシュエントリに対応しないと決定したことに応答して、前記更新されたオフセット値と前記更新された長さ値とを前記ＭＴキャッシュのＭＴキャッシュエントリに記憶することと、
前記メモリアドレスが前記ＭＴキャッシュの前記複数のＭＴキャッシュエントリのうちのＭＴキャッシュエントリに対応すると決定したことに応答して、前記更新されたオフセット値と前記更新された長さ値とで前記ＭＴキャッシュの前記ＭＴキャッシュエントリを更新することと
を行うようにさらに構成された、［Ｃ１３］に記載のＣＭＣ。
［Ｃ１８］
前記マスタテーブルエントリを前記ＭＴキャッシュの前記ＭＴキャッシュエントリに書き込むより前に、
前記ＭＴキャッシュの前記複数のＭＴキャッシュエントリのうちの現在のＭＴキャッシュエントリがエビクトされるべきであるかどうかを決定することと、
前記現在のＭＴキャッシュエントリがエビクトされるべきであると決定したことに応答して、
前記現在のＭＴキャッシュエントリが変更されたかどうかを決定することと、
前記現在のＭＴキャッシュエントリが変更された決定したことに応答して、前記ＭＴキャッシュエントリの前記マスタテーブルエントリを前記マスタテーブルに書き込むことと
を行うようにさらに構成された、［Ｃ１７］に記載のＣＭＣ。
［Ｃ１９］
集積回路（ＩＣ）に組み込まれる、［Ｃ１３］に記載のＣＭＣ。
［Ｃ２０］
セットトップボックスと、エンターテインメントユニットと、ナビゲーションデバイスと、通信デバイスと、固定ロケーションデータユニットと、モバイルロケーションデータユニットと、モバイルフォンと、セルラーフォンと、スマートフォンと、タブレットと、ファブレットと、コンピュータと、ポータブルコンピュータと、デスクトップコンピュータと、携帯情報端末（ＰＤＡ）と、モニタと、コンピュータモニタと、テレビジョンと、チューナーと、無線機と、衛星無線機と、音楽プレーヤと、デジタル音楽プレーヤと、ポータブル音楽プレーヤと、デジタルビデオプレーヤと、ビデオプレーヤと、デジタルビデオディスク（ＤＶＤ）プレーヤと、ポータブルデジタルビデオプレーヤと、自動車とからなるグループから選択されたデバイスに組み込まれる、［Ｃ１３］に記載のＣＭＣ。
［Ｃ２１］
メモリ読取り動作のためのメモリ帯域幅圧縮を行うための方法であって、
システムキャッシュから圧縮メモリコントローラ（ＣＭＣ）によって、メモリアドレスを備えるメモリ読取り要求を受信することと、
前記メモリアドレスがラストレベルキャッシュ（ＬＬＣ）の複数のＬＬＣラインのうちのＬＬＣライン内の複数のサブラインのうちの有効なサブラインに対応するかどうかを決定することと、
前記メモリアドレスが前記ＬＬＣの前記複数のＬＬＣラインのうちのＬＬＣライン内の前記複数のサブラインのうちの有効なサブラインに対応しないと決定したことに応答して、
システムメモリ中のマスタテーブルから前記ＬＬＣラインのためのオフセット値と長さ値とを含んでいるマスタテーブルエントリを読み取ることと、
前記メモリアドレスと、前記オフセット値と、前記長さ値とに基づいて、前記システムメモリから１つまたは複数のブロックを検索することと、
前記検索された１つまたは複数のブロックからのデータを前記ＬＬＣの前記複数のＬＬＣラインのうちのＬＬＣライン内の前記複数のサブラインのうちのサブラインに記憶することと、
前記検索された１つまたは複数のブロックからの前記データを前記システムキャッシュに返すことと
を備える、方法。
［Ｃ２２］
前記メモリアドレスが前記ＬＬＣの前記複数のＬＬＣラインのうちのＬＬＣライン内の前記複数のサブラインのうちの有効なサブラインに対応するかどうかを決定することは、  前記メモリアドレスが前記ＬＬＣの前記複数のＬＬＣラインのうちの既存のＬＬＣライン内の前記複数のサブラインのうちのサブラインに対応するかどうかを決定することと、  前記メモリアドレスが前記ＬＬＣの前記複数のＬＬＣラインのうちの既存のＬＬＣライン内の前記複数のサブラインのうちのサブラインに対応すると決定したことに応答して、前記既存のＬＬＣラインの前記サブラインが有効であるかどうかを決定することと
を備える、［Ｃ２１方法。
［Ｃ２３］
前記メモリアドレスが前記ＬＬＣの前記複数のＬＬＣラインのうちのＬＬＣライン内の前記複数のサブラインのうちの有効なサブラインに対応すると決定したことに応答して、前記有効なサブラインからのデータを前記システムキャッシュに返すことをさらに備える、［Ｃ２１］に記載の方法。
［Ｃ２４］
前記検索された１つまたは複数のブロックからの前記データを前記ＬＬＣの前記複数のＬＬＣラインのうちの前記ＬＬＣライン内の前記複数のサブラインのうちの前記サブラインに記憶することは、
前記長さ値に基づいて、前記検索された１つまたは複数のブロックからの前記データが圧縮されたかどうかを決定することと、
前記検索された１つまたは複数のブロックからの前記データが圧縮されていないと決定したことに応答して、前記検索された１つまたは複数のブロックからの前記データを前記ＬＬＣの前記複数のＬＬＣラインのうちの前記ＬＬＣライン内の前記複数のサブラインのうちの前記サブラインに記憶することと、
前記検索された１つまたは複数のブロックからの前記データが圧縮されたと決定したことに応答して、
前記検索された１つまたは複数のブロックからの前記データを復元することと、
前記復元されたデータを前記ＬＬＣの前記複数のＬＬＣラインのうちの前記ＬＬＣライン内の前記複数のサブラインのうちの前記サブラインに記憶することと
を備える、［Ｃ２１］に記載の方法。
［Ｃ２５］
前記検索された１つまたは複数のブロックからの前記データを前記ＬＬＣの前記複数のＬＬＣラインのうちの前記ＬＬＣライン内の前記複数のサブラインのうちの前記サブラインに記憶するより前に、
前記複数のＬＬＣラインのうちのＬＬＣラインをエビクションＬＬＣラインとして選択することと、
前記エビクションＬＬＣラインの前記複数のサブラインからのデータを前記システムメモリに記憶することと、
前記検索された１つまたは複数のブロックからの前記データを前記エビクションＬＬＣライン内の前記複数のサブラインのうちのサブラインに記憶することと
をさらに備える、［Ｃ２１］に記載の方法。
［Ｃ２６］
前記エビクションＬＬＣラインの前記複数のサブラインからの前記データを前記システムメモリに記憶することは、
前記エビクションＬＬＣラインの前記複数のサブラインの各対応するサブラインのためのオフセット値と長さ値とを各々が含んでいる複数のマスタテーブルエントリを読み取ることと、
変更されたデータを含んでいる前記エビクションＬＬＣラインの前記複数のサブラインの各サブラインについて、
前記サブラインからのデータを圧縮することと、
前記サブラインからの前記圧縮されたデータに基づいて、前記サブラインのための更新された長さ値を生成することと、
前記サブラインのための前記更新された長さ値が前記サブラインのための前記長さ値とは異なるかどうかを決定することと、
前記サブラインのための前記更新された長さ値が前記サブラインのための前記長さ値とは異ならないと決定したことに応答して、前記サブラインのための前記オフセット値と前記長さ値とに基づいて、前記サブラインのための前記圧縮されたデータを前記システムメモリの１つまたは複数のブロックに書き込むことと、
前記サブラインのための前記更新された長さ値が前記サブラインのための前記長さ値とは異なると決定したことに応答して、
前記サブラインのための更新されたオフセット値を生成することと、
前記サブラインのための前記更新されたオフセット値と前記更新された長さ値とに基づいて、前記サブラインのための前記圧縮されたデータを前記システムメモリの１つまたは複数のブロックに書き込むことと、
前記更新されたオフセット値と前記更新された長さ値とで前記サブラインのための前記マスタテーブルエントリを更新することと
を備える、［Ｃ２５］に記載の方法。
［Ｃ２７］
前記サブラインのための前記更新されたオフセット値を生成することは、前記圧縮されたデータが、２つ以上のサブラインに対応する前記システムメモリのメモリサブライン領域にまたがることを防ぐことと、前記システムメモリの前記メモリサブライン領域内で、前記圧縮されたデータを整合させることと、前記複数のサブラインのための前記圧縮されたデータをグループ化することとを備える１つまたは複数の割振りルールに基づく、［Ｃ２６］に記載の方法。
［Ｃ２８］
前記マスタテーブル中の前記マスタテーブルエントリを読み取るより前に、前記メモリアドレスがマスタテーブル（ＭＴ）キャッシュの複数のＭＴキャッシュエントリのうちのＭＴキャッシュエントリに対応するかどうかを決定することと、各ＭＴキャッシュエントリが、前に読み取られたマスタテーブルエントリを記憶するように構成された、
前記メモリアドレスが前記ＭＴキャッシュの前記複数ＭＴキャッシュエントリのうちのＭＴキャッシュエントリに対応しないと決定したことに応答して、
前記マスタテーブル中の前記マスタテーブルエントリを読み取ることと、
前記マスタテーブルエントリを前記ＭＴキャッシュの前記複数のＭＴキャッシュエントリのうちのＭＴキャッシュエントリに書き込むことと、
前記メモリアドレスが前記ＭＴキャッシュの前記複数ＭＴキャッシュエントリのうちのＭＴキャッシュエントリに対応すると決定したことに応答して、前記ＭＴキャッシュの前記複数のＭＴキャッシュエントリのうちの前記ＭＴキャッシュエントリを読み取ることとをさらに備える、［Ｃ２１］に記載の方法。
［Ｃ２９］
前記マスタテーブルエントリを前記ＭＴキャッシュの前記複数のＭＴキャッシュエントリのうちの前記ＭＴキャッシュエントリに書き込むより前に、
前記ＭＴキャッシュの前記複数のＭＴキャッシュエントリのうちの現在のＭＴキャッシュエントリがエビクトされるべきであるかどうかを決定することと、
前記現在のＭＴキャッシュエントリがエビクトされるべきであると決定したことに応答して、
前記現在のＭＴキャッシュエントリが更新されたかどうかを決定することと、
前記現在のＭＴキャッシュエントリが更新されたと決定したことに応答して、前記現在のＭＴキャッシュエントリのコンテンツを前記マスタテーブルに書き込むことと
をさらに備える、［Ｃ２８］に記載の方法。
［Ｃ３０］
前記ＬＬＣの前記複数のＬＬＣラインのうちのＬＬＣラインの前記複数のサブラインのうちの１つまたは複数の残りのサブラインのための１つまたは複数のオフセット値と１つまたは複数の長さ値とを含んでいる１つまたは複数のマスタテーブルエントリを読み取ることと、
前記１つまたは複数のオフセット値と前記１つまたは複数の長さ値とに基づいて、前記システムメモリから１つまたは複数のブロックを検索することと、
前記検索された１つまたは複数のブロックからの前記データを前記ＬＬＣの前記複数のＬＬＣラインのうちの前記ＬＬＣライン内の前記複数のサブラインのうちの前記１つまたは複数の残りのサブラインに記憶することと
をさらに備える、［Ｃ２１］に記載の方法。
［Ｃ３１］
メモリ書込み動作のためのメモリ帯域幅圧縮を行うための方法であって、
システムキャッシュから圧縮メモリコントローラ（ＣＭＣ）によって、書込みデータとメモリアドレスとを備えるメモリ書込み要求を受信することと、
前記メモリアドレスがラストレベルキャッシュ（ＬＬＣ）の複数のＬＬＣラインのうちのＬＬＣライン内の複数のサブラインのうちのサブラインに対応するかどうかを決定することと、
前記メモリアドレスが前記ＬＬＣの前記複数のＬＬＣラインのうちのＬＬＣライン内の前記複数のサブラインのうちのサブラインに対応しないと決定したことに応答して、
前記ＬＬＣの前記複数のＬＬＣライン内のＬＬＣラインをエビクションＬＬＣラインとして選択することと、
変更されたデータを含んでいる前記エビクションＬＬＣラインの前記複数のサブラインの各サブラインについて、
前記サブラインからのデータを圧縮することと、
前記サブラインからの前記圧縮されたデータに基づいて、前記サブラインのための更新されたオフセット値と更新された長さ値とを生成することと、
前記サブラインのための前記更新されたオフセット値と前記更新された長さ値とに基づいて、前記サブラインのための前記圧縮されたデータをシステムメモリの１つまたは複数のブロックに記憶することと、
前記更新されたオフセット値と前記更新された長さ値とをマスタテーブル中の前記サブラインのためのマスタテーブルエントリに記憶することと、
前記書込みデータを前記エビクションＬＬＣラインの前記複数のサブラインのうちのサブラインに記憶することと
を備える、方法。
［Ｃ３２］
前記メモリアドレスが前記ＬＬＣの前記複数のＬＬＣラインのうちのＬＬＣライン内の前記複数のサブラインのうちのサブラインに対応すると決定したことに応答して、前記書込みデータを前記ＬＬＣラインの前記サブラインに記憶することをさらに備える、［Ｃ３１］に記載の方法。
［Ｃ３３］
前記サブラインのための前記更新されたオフセット値を生成することは、前記圧縮されたデータが、２つ以上のサブラインに対応する前記システムメモリのメモリサブライン領域にまたがることを防ぐことと、前記システムメモリの前記メモリサブライン領域内で、前記圧縮されたデータを整合させることと、前記複数のサブラインのための前記圧縮されたデータをグループ化することとを備える１つまたは複数の割振りルールに基づく、［Ｃ３１］に記載の方法。
［Ｃ３４］
前記サブラインからの前記圧縮されたデータに基づいて、前記サブラインのための前記更新されたオフセット値と前記更新された長さ値とを生成することは、
前記圧縮されたデータに基づいて、前記サブラインのための前記更新された長さ値を生成することと、
前記サブラインのためのオフセット値と長さ値とを読み取ることと、
前記サブラインのための前記更新された長さ値が前記サブラインのための前記長さ値とは異なるかどうかを決定することと、
前記サブラインのための前記更新された長さ値が前記サブラインのための前記長さ値とは異なると決定したことに応答して、前記圧縮されたデータに基づいて、前記更新されたオフセット値を生成することと、
前記サブラインのための前記更新された長さ値が前記サブラインのための前記長さ値とは異ならないと決定したことに応答して、前記オフセット値を前記更新されたオフセット値として使用することと
を備える、［Ｃ３１］に記載の方法。
［Ｃ３５］
前記更新されたオフセット値と前記更新された長さ値とを前記マスタテーブル中の前記サブラインのための前記マスタテーブルエントリに記憶するより前に、前記メモリアドレスがマスタテーブル（ＭＴ）キャッシュの複数のＭＴキャッシュエントリのうちのＭＴキャッシュエントリに対応するかどうかを決定することと、各ＭＴキャッシュエントリが、前に読み取られたマスタテーブルエントリを記憶するように構成された、
前記メモリアドレスが前記ＭＴキャッシュの前記複数のＭＴキャッシュエントリのうちのＭＴキャッシュエントリに対応しないと決定したことに応答して、
前記更新されたオフセット値と前記更新された長さ値とを前記マスタテーブル中の前記サブラインのための前記マスタテーブルエントリに記憶することと、
前記マスタテーブルエントリを前記ＭＴキャッシュの前記複数のＭＴキャッシュエントリのうちのＭＴキャッシュエントリに書き込むことと、
前記メモリアドレスが前記ＭＴキャッシュの前記複数のＭＴキャッシュエントリのうちのＭＴキャッシュエントリに対応すると決定したことに応答して、前記マスタテーブルエントリで前記ＭＴキャッシュの前記ＭＴキャッシュエントリを更新することと
をさらに備える、［Ｃ３１］に記載の方法。
［Ｃ３６］
前記マスタテーブルエントリを前記ＭＴキャッシュの前記複数のＭＴキャッシュエントリのうちの前記ＭＴキャッシュエントリに書き込むより前に、
前記ＭＴキャッシュの前記複数のＭＴキャッシュエントリのうちの現在のＭＴキャッシュエントリがエビクトされるべきであるかどうかを決定することと、
前記現在のＭＴキャッシュエントリがエビクトされるべきであると決定したことに応答して、
前記現在のＭＴキャッシュエントリが変更されたかどうかを決定することと、
前記現在のＭＴキャッシュエントリが変更されたと決定したことに応答して、前記ＭＴキャッシュエントリのコンテンツを前記マスタテーブルに書き込むことと
をさらに備える、［Ｃ３５］に記載の方法。
［Ｃ３７］
システムキャッシュからメモリアドレスを備えるメモリ読取り要求を受信するための手段と、
前記メモリアドレスがラストレベルキャッシュ（ＬＬＣ）の複数のＬＬＣラインのうちのＬＬＣライン内の複数のサブラインのうちの有効なサブラインに対応するかどうかを決定するための手段と、
前記メモリアドレスが前記ＬＬＣの前記複数のＬＬＣラインのうちのＬＬＣライン内の前記複数のサブラインのうちの有効なサブラインに対応しないと決定したことに応答して、システムメモリ中のマスタテーブルから前記ＬＬＣラインのためのオフセット値と長さ値とを含んでいるマスタテーブルエントリを読み取るための手段と、
前記メモリアドレスと、前記オフセット値と、前記長さ値とに基づいて、前記システムメモリから１つまたは複数のブロックを検索するための手段と、
前記検索された１つまたは複数のブロックからのデータを前記ＬＬＣの前記複数のＬＬＣラインのうちのＬＬＣライン内の前記複数のサブラインのうちのサブラインに記憶するための手段と、
前記検索された１つまたは複数のブロックからの前記データを前記システムキャッシュに返すための手段と
を備える、圧縮メモリコントローラ（ＣＭＣ）。
［Ｃ３８］
システムキャッシュから書込みデータとメモリアドレスとを備えるメモリ書込み要求を受信するための手段と、
前記メモリアドレスがラストレベルキャッシュ（ＬＬＣ）の複数のＬＬＣラインのうちのＬＬＣライン内の複数のサブラインのうちのサブラインに対応するかどうかを決定するための手段と、
前記メモリアドレスが前記ＬＬＣの前記複数のＬＬＣラインのうちのＬＬＣライン内の前記複数のサブラインのうちのサブラインに対応しないと決定したことに応答して、前記ＬＬＣの前記複数のＬＬＣライン内のＬＬＣラインをエビクションＬＬＣラインとして選択するための手段と、
変更されたデータを含んでいる前記エビクションＬＬＣラインの前記複数のサブラインの各サブラインからのデータを圧縮するための手段と、
変更されたデータを含んでいる前記エビクションＬＬＣラインの前記複数のサブラインの各サブラインについて、前記サブラインからの前記圧縮されたデータに基づいて、更新されたオフセット値と更新された長さ値とを生成するための手段と、
変更されたデータを含んでいる前記エビクションＬＬＣラインの前記複数のサブラインの各サブラインについて、前記サブラインのための前記更新されたオフセット値と前記更新された長さ値とに基づいて、前記圧縮されたデータをシステムメモリの１つまたは複数のブロックに記憶するための手段と、
変更されたデータを含んでいる前記エビクションＬＬＣラインの前記複数のサブラインの各サブラインについて、前記更新されたオフセット値と前記更新された長さ値とをマスタテーブル中の前記サブラインのためのマスタテーブルエントリに記憶するための手段と、
前記書込みデータを前記エビクションＬＬＣラインの前記複数のサブラインのうちのサブラインに記憶するための手段と
を備える、圧縮メモリコントローラ（ＣＭＣ）。