【手続補正書】
【提出日】平成30年5月7日(2018.5.7)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
メモリコントローラであって、
システムバスにわたってシステムメモリ内で読み取られるべき第1の物理アドレス(PA)を含む第1のメモリ読取り要求を受信するための手段と、
前記受信された第1のメモリ読取り要求を実施するために、前記システムメモリ内の前記第1のPAにアクセスするための手段と、
前記システムバスにわたって前記システムメモリ内で読み取られるべき次のPAを含む次のメモリ読取り要求を受信するための手段と、
前記受信された次のメモリ読取り要求を実施するために、前記システムメモリ内の前記次のPAに基づいて前記システムメモリにアクセスするための手段と、
前記第1のPAに関連する前記システムメモリ内に前記次のPAを記憶するための手段と、
第1のPAエントリおよび対応する次のPAエントリをそれぞれが含む複数のキャッシュエントリを含むプリフェッチメタデータ(PMD)キャッシュ内の前記第1のPAと関連付けられたキャッシュエントリ内の前記次のPAを記憶するための手段であって、前記PMDキャッシュは前記メモリコントローラに通信可能に接続される、手段と、
を備える、メモリコントローラ。
【請求項２】
システムメモリにアクセスするように構成されたメモリインターフェースをさらに備え、
第1のメモリ読取り要求を受信するための手段と、前記システムメモリ内の前記第1のPAにアクセスするための手段と、次のメモリ読取り要求を受信するための手段と、前記システムメモリ内の前記次のPAに基づいて前記システムメモリにアクセスするための手段と、前記第1のPAに関連する前記システムメモリ内に前記次のPAを記憶するための手段とは、コントローラを備える、請求項1に記載のメモリコントローラ。
【請求項３】
前記コントローラが、前記次のPAを、前記システムメモリ内の前記第1のPAと関連付けられたメモリブロック内のメタデータとして記憶するように構成される、請求項2に記載のメモリコントローラ。
【請求項４】
前記コントローラが、
前記第1のPAと関連付けられた前記メモリブロックが、前記次のPAを記憶するために利用可能な空間を含むかどうかを決定することと、
前記第1のPAと関連付けられた前記メモリブロックが前記次のPAに対して前記利用可能な空間を含む場合に、前記次のPAを、前記システムメモリ内の前記第1のPAと関連付けられた前記メモリブロック内の前記メタデータとして記憶することとを行うように構成される、請求項3に記載のメモリコントローラ。
【請求項５】
前記第1のPAと関連付けられた前記メモリブロック内の前記利用可能な空間が、前記メモリブロック内に記憶される圧縮メモリデータのサイズに基づく、請求項4に記載のメモリコントローラ。
【請求項６】
前記コントローラが、
前記コントローラが現在のPAに対する読取り動作を実施することに応答して、受信されたメモリ読取り要求に対する前記現在のPAが、レポジトリ内に含まれるかどうかを決定することと、
前記次のPAが、前記レポジトリ内の前記受信されたメモリ読取り要求に対する前記現在のPAに関連して記憶される場合に、
前記システムメモリ内の前記現在のPAと関連付けられた前記次のPAを読み取ることと、
前記次のPAにおいて前記システムメモリ内のメモリデータをプリフェッチし、前記次のPAにおいて記憶される前記メモリデータをプリフェッチされたメモリデータとして取得することとを行うようにさらに構成される、請求項2に記載のメモリコントローラ。
【請求項７】
前記コントローラが、前記システムバスにわたって前記プリフェッチされたメモリデータを供給するようにさらに構成される、請求項6に記載のメモリコントローラ。
【請求項８】
前記コントローラが、プロセッサコアとそれぞれが関連付けられた複数のPMDキャッシュの中の前記PMDキャッシュ内の前記第1のPAと関連付けられた前記キャッシュエントリ内に前記次のPAを記憶するように構成され、前記複数のPMDキャッシュの各々が、前記第1のPAエントリおよび前記対応する次のPAエントリをそれぞれが含む前記複数のキャッシュエントリを含み、前記PMDキャッシュが、前記メモリコントローラに通信可能に結合される、請求項2に記載のメモリコントローラ。
【請求項９】
前記コントローラが、
受信されたメモリ読取り要求に対する現在のPAが前記PMDキャッシュ内に含まれるかどうかを決定することと、
前記現在のPAが前記PMDキャッシュ内に含まれる場合に、
前記コントローラが、前記現在のPAに対する読取り動作を実施することに応答して、前記PMDキャッシュ内の前記現在のPAと関連付けられた前記次のPAを読み取ることと、
前記次のPAにおいて前記システムメモリ内のメモリデータをプリフェッチし、前記次のPAにおいて記憶される前記メモリデータをプリフェッチされたメモリデータとして取得することと
前記システムバスにわたって前記受信されたメモリ読取り要求に対する前記次のPAにおけるシステムメモリに記憶された前記プリフェッチされたメモリデータを供給することと、
を行うようにさらに構成される、請求項2に記載のメモリコントローラ。
【請求項１０】
前記受信されたメモリ読取り要求に対する前記現在のPAが前記PMDキャッシュ内に含まれない場合に、前記コントローラが、
前記システムメモリ内の前記現在のPAにアクセスして、前記システムメモリ内の前記現在のPA内に記憶された前記対応するメモリデータを取得することと、
前記プリフェッチされたメモリデータが記憶された前記PMDキャッシュ内の前記キャッシュエントリに対する前記現在のPAに対応する前記PMDキャッシュ内の前記キャッシュエントリを更新することと、
前記PMDキャッシュ内に利用可能なキャッシュエントリがあるかどうかを決定することと、
前記PMDキャッシュ内に利用可能なキャッシュエントリがない場合に、前記PMDキャッシュ内の前記キャッシュエントリを立ち退かせて、前記立ち退かされたキャッシュエントリ内の前記現在のPAを前記PMDキャッシュ内に記憶することと
を行うようにさらに構成される、請求項9に記載のメモリコントローラ。
【請求項１１】
アドレスエントリに関連するメモリデータを記憶するようにそれぞれが構成された複数のデータキャッシュエントリを含むデータキャッシュをさらに備え、
前記コントローラが、
前記現在のPAが、前記データキャッシュ内のデータキャッシュエントリ内のアドレスエントリと一致するかどうかを決定することと、
前記現在のPAが、前記データキャッシュの前記データキャッシュエントリ内の前記アドレスエントリ内に含まれる場合に、前記データキャッシュ内の前記現在のPAにおける前記システムメモリ内に記憶される前記対応するメモリデータを、前記受信されたメモリ読取り要求に対する前記プリフェッチされたメモリデータとして供給することとを行うようにさらに構成される、請求項9に記載のメモリコントローラ。
【請求項１２】
前記現在のPAが、前記データキャッシュの前記データキャッシュエントリ内の前記アドレスエントリ内に含まれる場合に、前記コントローラが、
前記PMDキャッシュ内の前記現在のPAと関連付けられた前記次のPAを読み取ることと、
前記次のPAにおいて前記システムメモリ内のメモリデータをプリフェッチし、前記次のPAにおいて記憶される前記メモリデータを、前記受信されたメモリ読取り要求に対する前記プリフェッチされたメモリデータとして取得することとを行うようにさらに構成される、請求項11に記載のメモリコントローラ。
【請求項１３】
前記次のPAが前記PMDキャッシュ内に含まれない場合に、前記コントローラが、
前記システムメモリ内の前記現在のPAと関連付けられた前記次のPAを読み取ることと、
前記システムメモリ内の前記現在のPAと関連付けられた前記次のPAが有効である場合に、前記次のPAにおいて前記システムメモリからメモリデータを、前記受信されたメモリ読取り要求に対する前記プリフェッチされたメモリデータとしてプリフェッチすることと、
前記次のPAを、前記現在のPAに関連する前記PMDキャッシュ内に書き戻すこととを行うようにさらに構成される、請求項11に記載のメモリコントローラ。
【請求項１４】
前記現在のPAが、前記データキャッシュの前記データキャッシュエントリ内の前記アドレスエントリと一致しない場合に、前記コントローラが、
前記データキャッシュ内のデータキャッシュエントリを立ち退かせることと、
前記現在のPAにおける前記システムメモリからメモリデータを読み取って、前記メモリデータを前記データキャッシュ内に記憶することと、
次のPAが前記PMDキャッシュ内に含まれるかどうかを決定することと、
前記次のPAが前記PMDキャッシュ内に含まれる場合に、前記次のPAにおいて前記システムメモリからメモリデータを、前記受信されたメモリ読取り要求に対する前記プリフェッチされたメモリデータとしてプリフェッチすることとを行うようにさらに構成される、請求項11に記載のメモリコントローラ。
【請求項１５】
前記現在のPAが、前記データキャッシュの前記データキャッシュエントリ内の前記アドレスエントリと一致しない場合に、前記コントローラが、
前記PMDキャッシュ内の前記現在のPAと関連付けられた前記次のPAにアクセスすることと、
前記立ち退かされたデータキャッシュエントリがダーティである場合に、前記次のPAを、前記現在のPAと関連付けられた前記システムメモリ内に書き戻すことと、
前記PMDキャッシュ内の前記現在のPAと関連付けられた前記次のPAが、設定可能な確率によってダーティである場合に、前記次のPAを、前記現在のPAと関連付けられた前記システムメモリ内に書き戻すこととを行うようにさらに構成される、請求項14に記載のメモリコントローラ。
【請求項１６】
前記コントローラが、
第2のPAを含むメモリ書込み要求を受信して、前記システムバスにわたって前記システムメモリ内に記憶されるべきメモリデータを書き込むことと、
前記第2のPAが、前記データキャッシュ内のデータキャッシュエントリ内のアドレスエントリと一致するかどうかを決定することと、
前記第2のPAが、前記データキャッシュの前記データキャッシュエントリ内の前記アドレスエントリ内に含まれる場合に、前記書込みメモリデータを前記第2のPAと関連付けられた前記データキャッシュ内に記憶することと、
前記第2のPAが、前記データキャッシュの前記データキャッシュエントリ内の前記アドレスエントリ内に含まれない場合に、データキャッシュエントリを前記データキャッシュから立ち退かせて、前記書込みメモリデータを前記第2のPAと関連付けられた前記データキャッシュ内に記憶することとを行わせるようにさらに構成される、請求項11に記載のメモリコントローラ。
【請求項１７】
前記第2のPAが、前記データキャッシュの前記データキャッシュエントリ内の前記アドレスエントリ内に含まれない場合に、前記コントローラが、
前記PMDキャッシュ内の前記第2のPAと関連付けられた前記次のPAにアクセスすることと、
前記立ち退かされたデータキャッシュエントリがダーティである場合に、前記次のPAを、前記第2のPAと関連付けられた前記システムメモリ内に書き戻すことと、
前記PMDキャッシュ内の前記第2のPAと関連付けられた前記次のPAが、設定可能な確率によってダーティである場合に、前記次のPAを、前記第2のPAと関連付けられた前記システムメモリ内に書き戻すこととを行うようにさらに構成される、請求項16に記載のメモリコントローラ。
【請求項１８】
中央処理装置(CPU)ベースシステム内のシステムメモリに対するメモリ読取り要求に対するデータを圧縮する方法であって、
システムバスにわたってシステムメモリ内で読み取られるべき第1の物理アドレス(PA)を含む第1のメモリ読取り要求を受信するステップと、
前記第1のメモリ読取り要求を実施するために、前記システムメモリ内の前記第1のPAにアクセスするステップと、
前記システムバスにわたって前記システムメモリ内で読み取られるべき次のPAを含む次のメモリ読取り要求を受信するステップと、
前記受信された次のメモリ読取り要求を実施するために、前記システムメモリ内の前記次のPAにアクセスするステップと、
前記第1のPAと関連付けられた前記システムメモリ内に前記次のPAを記憶するステップと、
第1のPAエントリおよび対応する次のPAエントリをそれぞれが含む複数のキャッシュエントリを含むプリフェッチメタデータ(PMD)キャッシュ内の前記第1のPAと関連付けられたキャッシュエントリ内の前記次のPAを記憶するステップと、
を含む、方法。
【請求項１９】
システムバスと、
前記システムバスに通信可能に結合された少なくとも1つのCPUコアと、
前記システムバスに通信可能に結合された、請求項1乃至18の何れか1項に記載のメモリコントローラと、
前記システムバスに通信可能に結合され、メモリデータを記憶するように構成されたシステムメモリと、
アドレスエントリおよび対応する次の読取りアドレスをそれぞれが含む複数のキャッシュエントリを含み、前記メモリコントローラに通信可能に結合されたプリフェッチメタデータ(PMD)キャッシュとを備え、
前記メモリコントローラが、
前記システムバスにわたって前記システムメモリ内で読み取られるべき第1の物理アドレス(PA)を含む第1のメモリ読取り要求を受信することと、
前記受信された第1のメモリ読取り要求を実施するために、前記システムメモリ内の前記第1のPAにアクセスすることとを行うように構成されたコントローラを備え、
前記コントローラが、
前記システムバスにわたって前記システムメモリ内で読み取られるべき次のPAを含む次のメモリ読取り要求を受信することと、
前記受信された次のメモリ読取り要求を実施するために、前記次のPAに基づいて前記システムメモリにアクセスすることと、
前記第1のPAに関連する前記システムメモリ内に前記次のPAを記憶することとを行うようにさらに構成される、中央処理装置(CPU)システム。