【手続補正書】
【提出日】平成30年4月26日(2018.4.26)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
システムメモリにアクセスするように構成されたメモリインターフェースと、
コントローラとを備え、前記コントローラが、
システムバスにわたって前記システムメモリ内でアクセスされるべき物理アドレス(PA)を含むメモリアクセス要求を受信することと、
前記受信されたメモリアクセス要求に対する前記PAが、トランスレーションルックアサイドバッファ(TLB)内の複数のTLBエントリの間のTLBエントリに含まれるかどうかを決定することであって、前記複数のTLBエントリの間の各TLBエントリが、
PAに対応するタグアレイ内のタグと、
前記PAに対応する前記システムメモリ内の少なくとも1つの物理バッファアドレスと、
前記システムメモリ内の複数の異なるサイズの物理バッファプールの間の物理バッファプールを示すプールインジケータであって、各異なるサイズの物理バッファプールが異なる圧縮サイズの圧縮データに対応する、プールインジケータと、
を備えるマスターディレクトリからのエントリを記憶するように構成される、決定することと、
前記PAが前記TLB内の前記TLBエントリに含まれる場合、前記受信されたメモリアクセス要求内の前記受信されたPAを、前記PAを含む前記TLBエントリ内の前記少なくとも1つの物理バッファアドレスの物理バッファアドレスとして変換することと、
前記PAが前記TLB内の前記TLBエントリに含まれない場合、それぞれがPAに対応し、複数のデータラインから成る前記システムメモリ内のデータラインアドレスを含む複数の物理バッファアドレスを含む前記マスターディレクトリ内の前記エントリにおける前記物理バッファアドレスに前記PAをマッピングすることに基づいて、前記受信されたメモリアクセス要求内の前記受信されたPAを前記物理バッファアドレスに変換することと、
前記受信されたメモリアクセス要求を実施するために、前記物理バッファアドレスに基づいて前記システムメモリ内の前記データラインアドレスにアクセスすることとを行うように構成される、圧縮メモリコントローラ。
【請求項２】
前記コントローラが、前記受信されたメモリアクセス要求を実施するために、前記物理バッファアドレスに対するオフセットと前記マスターディレクトリ内の前記エントリと関連付けられた長さとに基づいて、前記システムメモリにアクセスするように構成される、請求項1に記載の圧縮メモリコントローラ。
【請求項３】
前記コントローラが、書込みデータを含む前記メモリアクセス要求と前記システムメモリ内に書き込まれるべき前記PAを含むメモリ書込み動作とを受信するように構成され、
前記コントローラが、
前記メモリ書込み動作内で受信された前記書込みデータを圧縮書込みデータに圧縮することと、
前記圧縮書込みデータに基づいて前記メモリ書込み動作に対して前記システムメモリ内の利用可能な物理バッファアドレスを決定することとを行うようにさらに構成され、
前記圧縮メモリコントローラが、前記メモリ書込み動作に対する前記圧縮書込みデータを記憶するために、前記決定された利用可能な物理バッファアドレスに基づいて前記システムメモリにアクセスするように構成される、請求項1に記載の圧縮メモリコントローラ。
【請求項４】
前記コントローラが、前記PAに対応する前記マスターディレクトリの前記エントリにおける前記メモリ書込み動作に対する前記物理バッファアドレスを記憶するために前記マスターディレクトリを更新するようにさらに構成される、請求項3に記載の圧縮メモリコントローラ。
【請求項５】
前記メモリコントローラが、前記物理バッファアドレスに対するオフセットと前記マスターディレクトリ内の前記エントリと関連付けられた長さとを記憶するようにさらに構成されることによって、前記マスターディレクトリを更新するように構成される、請求項3に記載の圧縮メモリコントローラ。
【請求項６】
前記コントローラが、前記メモリ書込み動作に対する前記書込みデータが固定パターンであるかどうかを決定するようにさらに構成され、
前記メモリ書込み動作に対する前記書込みデータが、前記固定パターンである場合、前記コントローラが、
前記メモリ書込み動作に対する前記固定パターンを示すために、前記PAに対応する前記マスターディレクトリ内の前記エントリを更新し、かつ
前記システムメモリ内の前記物理バッファアドレスにおける前記メモリ書込み動作に対する前記圧縮書込みデータを書き込まないように構成される、請求項3に記載の圧縮メモリコントローラ。
【請求項７】
前記コントローラが、
前記メモリ書込み動作に対する前記物理バッファアドレス内の前記プールインジケータに対応する前記物理バッファプール内の前記利用可能な物理バッファアドレスを決定することと、
前記物理バッファアドレスに基づいて前記システムメモリ内の前記メモリ書込み動作に対する前記圧縮書込みデータを記憶するために、前記システムメモリ内の前記物理バッファアドレス内の前記プールインジケータに対応する前記物理バッファプールにアクセスすることとを行うように構成され、 
前記コントローラが、前記物理バッファアドレスからのオフセットに基づいて前記システムメモリ内の前記メモリ書込み動作に対する前記圧縮書込みデータを記憶するために、前記システムメモリ内の前記物理バッファアドレス内の前記プールインジケータに対応する前記物理バッファプールにアクセスするように構成される、請求項3に記載の圧縮メモリコントローラ。
【請求項８】
前記コントローラが、前記システムメモリ内の少なくとも1つのフリー物理バッファアドレスを示す前記物理バッファプールに対応するフリーノードリストから、前記メモリ書込み動作に対する前記物理バッファプール内の前記利用可能な物理バッファアドレスを決定するように構成され、
前記コントローラが、前記フリーノードリスト内の利用可能な物理バッファアドレスの数が定義されたしきい値より小さくなるときに、オペレーティングシステム(OS)に知らせるようにさらに構成され、
前記物理バッファプール内の前記利用可能な物理バッファアドレスを決定することに応答して、前記コントローラが、少なくとも1つのフリー物理バッファを、前記フリーノードリストから前記利用可能な物理バッファアドレスに対するローカルプルバッファ内に引き込むように構成される、請求項7に記載の圧縮メモリコントローラ。
【請求項９】
前記コントローラが、
前記システムメモリ内で読み取られるべき前記PAを含むメモリ読取り動作を含む前記メモリアクセス要求を受信することと、
圧縮読取りデータを読み取るために、前記物理バッファアドレスに基づいて前記システムメモリにアクセスすることと、
前記圧縮読取りデータを解凍読取りデータに展開することと、
前記メモリ読取り動作に対して前記システムバス上に前記解凍読取りデータを供給することとを行うように構成され、
前記コントローラが、前記メモリ読取り動作に対する前記圧縮読取りデータが所定の固定パターンを含むかどうかを決定するようにさらに構成され、
前記メモリ読取り動作に対する前記圧縮読取りデータが前記所定の固定パターンを含む場合、前記コントローラが、前記圧縮読取りデータを読み取るために、前記物理バッファアドレスに基づいて前記システムメモリにアクセスしないようにさらに構成される、請求項1に記載の圧縮メモリコントローラ。
【請求項１０】
前記メモリアクセス要求が、メモリ書込み動作から成り、
前記コントローラが、利用可能な物理バッファアドレスに対するメモリ書込み動作の圧縮ラインサイズに基づいて、前記複数の異なるサイズの物理バッファプールの中の前記物理バッファプールを選択するように構成される、請求項1に記載の圧縮メモリコントローラ。
【請求項１１】
前記選択された物理バッファプールが、利用可能な物理バッファアドレスをまったく含まない場合、前記コントローラが、より大きい物理バッファに割り当てられた別の物理バッファプールから前記物理バッファアドレスを割り振るように割り当てられた前記物理バッファプールを選択するように構成され、
前記物理バッファアドレスが前記より大きい物理バッファに割り当てられた前記物理バッファプール内で利用可能でない場合、前記コントローラが、
前記より大きい物理バッファに割り当てられた前記物理バッファアドレスに対する前記物理バッファプールに対応するフリーノードリストに前記物理バッファアドレスを戻すようにさらに構成される、請求項10に記載の圧縮メモリコントローラ。
【請求項１２】
前記コントローラが、
前記システムメモリ内の開始位置およびデータページアドレスからの長さに基づいて、前記受信されたメモリアクセス要求内の前記受信されたPAを、前記マスターディレクトリ内の前記物理バッファアドレスに変換することと、
前記受信されたメモリアクセス要求を実施するために、前記システムメモリ内の前記開始位置における、前記データページアドレスからの前記長さの圧縮データにアクセスすることとを行うように構成され、
前記データページアドレスが、データページサイズにそれぞれ割り当てられた複数のデータページの中の前記システムメモリ内の1つのデータページを含み、
前記コントローラが、前記受信されたPAの少なくとも一部に基づいて、前記開始位置および前記長さを、前記マスターディレクトリ内の前記データページアドレスと関連付けられた複数の開始位置および長さから選択するようにさらに構成されることによって、前記受信されたPAを変換するように構成される、請求項1に記載の圧縮メモリコントローラ。
【請求項１３】
前記コントローラが、
前記受信されたPAに対応するデータページ、前記データページ内の開始データブロック、および前記開始データブロックからのデータブロック長に基づいて、前記受信されたメモリアクセス要求内の前記受信されたPAを、ブロックアドレスを含む前記物理バッファアドレスに変換することと、
前記受信されたメモリアクセス要求を実施するために、前記システムメモリ内の前記開始データブロックにおける、ページバッファ内の前記ブロックアドレスからの前記開始データブロックで前記データブロック長の圧縮データにアクセスすることとを行うように構成され、
前記コントローラが、複数の等しいサイズのデータページの中の前記データページ、前記受信されたPAに対応する前記データページ、前記データページ内の開始データブロック、および前記開始データブロックからのデータブロック長に基づいて、前記受信されたメモリアクセス要求内の前記受信されたPAを、前記ブロックアドレスを含む前記物理バッファアドレスに変換するように構成される、請求項1に記載の圧縮メモリコントローラ。
【請求項１４】
前記PAが前記TLB内の前記TLBエントリ内に含まれない場合、前記コントローラが、
前記TLB内の前記TLBエントリを立ち退かせることと、
前記受信されたメモリアクセス要求に対する前記PAに対応する前記マスターディレクトリに前記エントリを記憶することとを行わせるようにさらに構成される、請求項1に記載の圧縮メモリコントローラ。
【請求項１５】
中央処理装置(CPU)ベースシステム内のシステムメモリへのメモリアクセス要求に対するデータを圧縮する方法であって、
システムバスにわたってシステムメモリ内でアクセスされるべき物理アドレス(PA)を含むメモリアクセス要求を受信するステップと、
前記受信されたメモリアクセス要求に対する前記PAが、トランスレーションルックアサイドバッファ(TLB)内の複数のTLBエントリの間のTLBエントリに含まれるかどうかを決定するステップであって、前記複数のTLBエントリの間の各TLBエントリが、
PAに対応するタグアレイ内のタグと、
前記PAに対応する前記システムメモリ内の少なくとも1つの物理バッファアドレスと、
前記システムメモリ内の複数の異なるサイズの物理バッファプールの間の物理バッファプールを示すプールインジケータであって、各異なるサイズの物理バッファプールが異なる圧縮サイズの圧縮データに対応する、プールインジケータとを備えるマスターディレクトリからのエントリを記憶するように構成される、決定するステップと、
前記PAが前記TLB内の前記TLBエントリに含まれる場合、前記受信されたメモリアクセス要求内の前記受信されたPAを、前記PAを含む前記TLBエントリ内の前記物理バッファアドレスとして変換するステップと、
前記PAが前記TLB内の前記TLBエントリに含まれない場合、それぞれがPAに対応し、複数のデータラインから成る前記システムメモリ内のデータラインアドレスを含む複数の物理バッファアドレスを含む前記マスターディレクトリ内の前記エントリにおける前記物理バッファアドレスに前記PAをマッピングすることに基づいて、前記受信されたメモリアクセス要求内の前記受信されたPAを前記物理バッファアドレスに変換するステップと、
前記受信されたメモリアクセス要求を実施するために、前記物理バッファアドレスに基づいて前記システムメモリ内の前記データラインアドレスにアクセスするステップとを含む、方法。