(57)【要約】  ダイナミックランダムアクセスメモリ(DRAM)キャッシュタグの空間効率的記憶の実現がもたらされる。一態様では、DRAMキャッシュ管理回路は複数のキャッシュエントリを提供し、それらの各々がタグ記憶領域、データ記憶領域、および誤り防止領域を含む。DRAMキャッシュ管理回路は、各キャッシュエントリのデータ記憶領域にキャッシュされるべきデータを記憶するように構成される。DRAMキャッシュ管理回路はまた、誤り訂正コード(ECC)の代わりに誤り検出コード(EDC)を使用し、各キャッシュエントリのタグおよびEDCをキャッシュエントリの誤り防止領域に記憶するように構成される。このようにして、キャッシュエントリの誤り検出を実現しながらも、各キャッシュエントリのタグ記憶領域の必要を回避することによって、DRAMキャッシュの容量は増大し得る。
2019513264.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサベースシステムであって、
データ記憶領域および誤り防止領域をそれぞれが提供する複数のキャッシュエントリを備える、高帯域幅メモリの一部であるダイナミックランダムアクセスメモリ(DRAM)キャッシュと、
前記プロセッサベースシステムのコンピュートダイの上に配置され、前記DRAMキャッシュに通信可能に結合されたDRAMキャッシュ管理回路と
を備え、
前記DRAMキャッシュ管理回路は、
前記DRAMキャッシュの前記複数のキャッシュエントリのうちのキャッシュエントリの前記データ記憶領域にキャッシュされるべきデータを書き込み、
前記キャッシュエントリの前記誤り防止領域に前記キャッシュエントリのタグおよび誤り検出コード(EDC)を書き込む
ように構成される、プロセッサベースシステム。
【請求項２】
前記DRAMキャッシュ管理回路は、ライトスルーモードで動作するように構成される、請求項1に記載のプロセッサベースシステム。
【請求項３】
前記DRAMキャッシュ管理回路は、
前記DRAMキャッシュの前記複数のキャッシュエントリのうちの前記キャッシュエントリを読み取り、
前記キャッシュエントリの前記誤り防止領域における前記キャッシュエントリの前記EDCがデータ誤りを示すかどうかを判断し、
前記キャッシュエントリの前記誤り防止領域における前記キャッシュエントリの前記EDCがデータ誤りを示すとの判断に応答して、システムメモリDRAMから前記キャッシュエントリに対応するメモリラインを読み取る
ようにさらに構成される、請求項2に記載のプロセッサベースシステム。
【請求項４】
前記DRAMキャッシュ管理回路は、ライトバックモードで動作するように構成され、
前記DRAMキャッシュ管理回路は、前記DRAMキャッシュの前記複数のキャッシュエントリに対応する複数のダーティインジケータを備え、
前記DRAMキャッシュ管理回路は、
キャッシュされるべき前記データが変更されているかどうかを判断し、
キャッシュされるべき前記データが変更されているとの判断に応答して、
前記DRAMキャッシュの前記複数のキャッシュエントリのうちの前記キャッシュエントリの前記データ記憶領域にキャッシュされるべき前記データを書き込み、
前記キャッシュエントリのタグ記憶領域に前記キャッシュエントリの前記タグを書き込み、
前記キャッシュエントリの前記誤り防止領域に前記キャッシュエントリの誤り訂正コード(ECC)を書き込み、
前記キャッシュエントリが変更されたデータを含むことを示すように、前記キャッシュエントリに対応する前記複数のダーティインジケータのうちのダーティインジケータを設定し、
キャッシュされるべき前記データが変更されていないとの判断に応答して、
前記キャッシュエントリが変更されていないデータを含むことを示すように、前記キャッシュエントリに対応する前記複数のダーティインジケータのうちのダーティインジケータを設定する
ようにさらに構成され、
前記DRAMキャッシュ管理回路は、キャッシュされるべき前記データが変更されていないとの判断にさらに応答して、前記DRAMキャッシュの前記複数のキャッシュエントリのうちの前記キャッシュエントリの前記データ記憶領域にキャッシュされるべき前記データを書き込み、前記キャッシュエントリの前記誤り防止領域に前記キャッシュエントリの前記タグおよび前記EDCを書き込むように構成される、請求項1に記載のプロセッサベースシステム。
【請求項５】
前記DRAMキャッシュ管理回路は、
前記DRAMキャッシュの前記複数のキャッシュエントリのうちの前記キャッシュエントリを読み取り、
前記キャッシュエントリに対応する前記複数のダーティインジケータのうちの前記ダーティインジケータに基づいて、前記キャッシュエントリが変更されたデータを含むかどうかを判断し、
前記キャッシュエントリが変更されたデータを含むとの判断に応答して、
前記キャッシュエントリの前記誤り防止領域における前記キャッシュエントリの前記ECCがデータ誤りを示すかどうかを判断し、
前記キャッシュエントリの前記誤り防止領域における前記キャッシュエントリの前記ECCがデータ誤りを示すとの判断に応答して、
前記データ誤りが訂正可能であるかどうかを判断し、
前記データ誤りが訂正可能であるとの判断に応答して、前記ECCに基づいて前記データ誤りを訂正し、
前記データ誤りが訂正可能ではないとの判断に応答して、システムメモリDRAMから前記キャッシュエントリに対応するメモリラインを読み取り、
前記キャッシュエントリが変更されたデータを含まないとの判断に応答して、
前記キャッシュエントリの前記誤り防止領域における前記キャッシュエントリの前記EDCがデータ誤りを示すかどうかを判断し、
前記キャッシュエントリの前記誤り防止領域における前記キャッシュエントリの前記EDCがデータ誤りを示すとの判断に応答して、前記システムメモリDRAMから前記キャッシュエントリに対応する前記メモリラインを読み取る
ようにさらに構成される、請求項4に記載のプロセッサベースシステム。
【請求項６】
前記DRAMキャッシュ管理回路は、リードソロモンコードとして前記キャッシュエントリの前記誤り防止領域に前記キャッシュエントリの前記ECCを書き込むように構成され、
前記DRAMキャッシュ管理回路は、前記キャッシュエントリの前記誤り防止領域が前記キャッシュエントリの前記EDCを含むか、または前記ECCを含むかを示す誤りコードインジケータを前記キャッシュエントリの前記誤り防止領域に書き込むようにさらに構成される、請求項4に記載のプロセッサベースシステム。
【請求項７】
集積回路(IC)に統合された、請求項1に記載のプロセッサベースシステム。
【請求項８】
セットトップボックス、エンターテインメントユニット、ナビゲーションデバイス、通信デバイス、固定ロケーションデータユニット、モバイルロケーションデータユニット、モバイルフォン、セルラーフォン、スマートフォン、タブレット、ファブレット、サーバ、コンピュータ、ポータブルコンピュータ、デスクトップコンピュータ、携帯情報端末(PDA)、モニタ、コンピュータモニタ、テレビ、チューナ、ラジオ、衛星ラジオ、音楽プレーヤ、デジタル音楽プレーヤ、ポータブル音楽プレーヤ、デジタルビデオプレーヤ、ビデオプレーヤ、デジタルビデオディスク(DVD)プレーヤ、ポータブルデジタルビデオプレーヤ、および自動車からなる群から選択されたデバイスに統合された、請求項1に記載のプロセッサベースシステム。
【請求項９】
ダイナミックランダムアクセスメモリ(DRAM)キャッシュ管理回路を含むプロセッサベースシステムであって、前記DRAMキャッシュ管理回路は、
高帯域幅メモリの一部であるDRAMキャッシュの複数のキャッシュエントリのうちのキャッシュエントリのデータ記憶領域にキャッシュされるべきデータを書き込むための手段と、
前記キャッシュエントリの誤り防止領域に前記キャッシュエントリのタグおよび誤り検出コード(EDC)を書き込むための手段と
を備える、プロセッサベースシステム。
【請求項１０】
ダイナミックランダムアクセスメモリ(DRAM)キャッシュにおけるDRAMキャッシュタグの空間効率的記憶を実現するための方法であって、
DRAMキャッシュ管理回路によって、高帯域幅メモリの一部であるDRAMキャッシュの複数のキャッシュエントリのうちのキャッシュエントリのデータ記憶領域にキャッシュされるべきデータを書き込むステップと、
前記キャッシュエントリの誤り防止領域に前記キャッシュエントリのタグおよび誤り検出コード(EDC)を書き込むステップと
を含む方法。
【請求項１１】
前記DRAMキャッシュ管理回路は、ライトスルーモードで動作するように構成される、請求項10に記載の方法。
【請求項１２】
前記DRAMキャッシュの前記複数のキャッシュエントリのうちの前記キャッシュエントリを読み取るステップと、
前記キャッシュエントリの前記誤り防止領域における前記キャッシュエントリの前記EDCがデータ誤りを示すかどうかを判断するステップと、
前記キャッシュエントリの前記誤り防止領域における前記キャッシュエントリの前記EDCがデータ誤りを示すとの判断に応答して、システムメモリDRAMから前記キャッシュエントリに対応するメモリラインを読み取るステップと
をさらに含む、請求項11に記載の方法。
【請求項１３】
前記DRAMキャッシュ管理回路は、ライトバックモードで動作するように構成され、
前記方法は、
キャッシュされるべき前記データが変更されているかどうかを判断するステップと、
キャッシュされるべき前記データが変更されているとの判断に応答して、
前記DRAMキャッシュの前記複数のキャッシュエントリのうちの前記キャッシュエントリの前記データ記憶領域にキャッシュされるべき前記データを書き込むステップと、
前記キャッシュエントリのタグ記憶領域に前記キャッシュエントリの前記タグを書き込むステップと、
前記キャッシュエントリの前記誤り防止領域に前記キャッシュエントリの誤り訂正コード(ECC)を書き込むステップと、
前記キャッシュエントリが変更されたデータを含むことを示すように、前記DRAMキャッシュ管理回路の複数のダーティインジケータのうちの前記キャッシュエントリに対応するダーティインジケータを設定するステップと、
キャッシュされるべき前記データが変更されていないとの判断に応答して、
前記キャッシュエントリが変更されていないデータを含むことを示すように、前記複数のダーティインジケータのうちの前記キャッシュエントリに対応する前記ダーティインジケータを設定するステップと
をさらに含み、
前記DRAMキャッシュの前記複数のキャッシュエントリのうちの前記キャッシュエントリの前記データ記憶領域にキャッシュされるべき前記データを書き込むステップ、および前記キャッシュエントリの前記誤り防止領域に前記キャッシュエントリの前記タグおよび前記EDCを書き込むステップは、キャッシュされるべき前記データが変更されていないとの判断にさらに応答したものである、請求項10に記載の方法。
【請求項１４】
前記DRAMキャッシュの前記複数のキャッシュエントリのうちの前記キャッシュエントリを読み取るステップと、
前記キャッシュエントリに対応する前記複数のダーティインジケータのうちの前記ダーティインジケータに基づいて、前記キャッシュエントリが変更されたデータを含むかどうかを判断するステップと、
前記キャッシュエントリが変更されたデータを含むとの判断に応答して、
前記キャッシュエントリの前記誤り防止領域における前記キャッシュエントリの前記ECCがデータ誤りを示すかどうかを判断するステップと、
前記キャッシュエントリの前記誤り防止領域における前記キャッシュエントリの前記ECCがデータ誤りを示すとの判断に応答して、
前記データ誤りが訂正可能であるかどうかを判断するステップと、
前記データ誤りが訂正可能であるとの判断に応答して、前記ECCに基づいて前記データ誤りを訂正するステップと、
前記データ誤りが訂正可能ではないとの判断に応答して、システムメモリDRAMから前記キャッシュエントリに対応するメモリラインを読み取るステップと、
前記キャッシュエントリが変更されたデータを含まないとの判断に応答して、
前記キャッシュエントリの前記誤り防止領域における前記キャッシュエントリの前記EDCがデータ誤りを示すかどうかを判断するステップと、
前記キャッシュエントリの前記誤り防止領域における前記キャッシュエントリの前記EDCがデータ誤りを示すとの判断に応答して、前記システムメモリDRAMから前記キャッシュエントリに対応する前記メモリラインを読み取るステップと
をさらに含む、請求項13に記載の方法。
【請求項１５】
前記キャッシュエントリの前記誤り防止領域に前記キャッシュエントリの前記ECCを書き込むステップは、リードソロモンコードを書き込むステップを含み、
前記方法は、前記キャッシュエントリの前記誤り防止領域が前記キャッシュエントリの前記EDCを含むか、または前記ECCを含むかを示す誤りコードインジケータを前記キャッシュエントリの前記誤り防止領域に書き込むステップをさらに含む、請求項13に記載の方法。
【請求項１６】
プロセッサによって実行されると、前記プロセッサに、
高帯域幅メモリの一部であるダイナミックランダムアクセスメモリ(DRAM)キャッシュの複数のキャッシュエントリのうちのキャッシュエントリのデータ記憶領域にキャッシュされるべきデータを書き込み、
前記キャッシュエントリの誤り防止領域に前記キャッシュエントリのタグおよび誤り検出コード(EDC)を書き込む
ことを行わせるコンピュータ実行可能命令を記憶した非一時的コンピュータ可読記憶媒体。
【請求項１７】
前記プロセッサによって実行されると、前記プロセッサに、
前記DRAMキャッシュの前記複数のキャッシュエントリのうちの前記キャッシュエントリを読み取り、
前記キャッシュエントリの前記誤り防止領域における前記キャッシュエントリの前記EDCがデータ誤りを示すかどうかを判断し、
前記キャッシュエントリの前記誤り防止領域における前記キャッシュエントリの前記EDCがデータ誤りを示すとの判断に応答して、システムメモリDRAMから前記キャッシュエントリに対応するメモリラインを読み取る
ことをさらに行わせるコンピュータ実行可能命令を記憶した、請求項16に記載の非一時的コンピュータ可読記憶媒体。
【請求項１８】
前記プロセッサによって実行されると、前記プロセッサに、
キャッシュされるべき前記データが変更されているかどうかを判断し、
キャッシュされるべき前記データが変更されているとの判断に応答して、
前記DRAMキャッシュの前記複数のキャッシュエントリのうちの前記キャッシュエントリの前記データ記憶領域にキャッシュされるべき前記データを書き込み、
前記キャッシュエントリのタグ記憶領域に前記キャッシュエントリの前記タグを書き込み、
前記キャッシュエントリの前記誤り防止領域に前記キャッシュエントリの誤り訂正コード(ECC)を書き込み、
前記キャッシュエントリが変更されたデータを含むことを示すように、複数のダーティインジケータのうちの前記キャッシュエントリに対応するダーティインジケータを設定し、
キャッシュされるべき前記データが変更されていないとの判断に応答して、
前記キャッシュエントリが変更されていないデータを含むことを示すように、前記複数のダーティインジケータのうちの前記キャッシュエントリに対応する前記ダーティインジケータを設定する
ことをさらに行わせるコンピュータ実行可能命令を記憶し、
前記DRAMキャッシュの前記複数のキャッシュエントリのうちの前記キャッシュエントリの前記データ記憶領域にキャッシュされるべき前記データを書き込むこと、および前記キャッシュエントリの前記誤り防止領域に前記キャッシュエントリの前記タグおよび前記EDCを書き込むことは、キャッシュされるべき前記データが変更されていないとの判断にさらに応答したものである、請求項16に記載の非一時的コンピュータ可読記憶媒体。
【請求項１９】
前記プロセッサによって実行されると、前記プロセッサに、
前記DRAMキャッシュの前記複数のキャッシュエントリのうちの前記キャッシュエントリを読み取り、
前記キャッシュエントリに対応する前記複数のダーティインジケータのうちの前記ダーティインジケータに基づいて、前記キャッシュエントリが変更されたデータを含むかどうかを判断し、
前記キャッシュエントリが変更されたデータを含むとの判断に応答して、
前記キャッシュエントリの前記誤り防止領域における前記キャッシュエントリの前記ECCがデータ誤りを示すかどうかを判断し、
前記キャッシュエントリの前記誤り防止領域における前記キャッシュエントリの前記ECCがデータ誤りを示すとの判断に応答して、
前記データ誤りが訂正可能であるかどうかを判断し、
前記データ誤りが訂正可能であるとの判断に応答して、前記ECCに基づいて前記データ誤りを訂正し、
前記データ誤りが訂正可能ではないとの判断に応答して、システムメモリDRAMから前記キャッシュエントリに対応するメモリラインを読み取り、
前記キャッシュエントリが変更されたデータを含まないとの判断に応答して、
前記キャッシュエントリの前記誤り防止領域における前記キャッシュエントリの前記EDCがデータ誤りを示すかどうかを判断し、
前記キャッシュエントリの前記誤り防止領域における前記キャッシュエントリの前記EDCがデータ誤りを示すとの判断に応答して、前記システムメモリDRAMから前記キャッシュエントリに対応する前記メモリラインを読み取る
ことをさらに行わせるコンピュータ実行可能命令を記憶した、請求項18に記載の非一時的コンピュータ可読記憶媒体。
【請求項２０】
前記プロセッサによって実行されると、前記プロセッサに、
リードソロモンコードを書き込むことによって、前記キャッシュエントリの前記誤り防止領域に前記キャッシュエントリの前記ECCを書き込み、
前記キャッシュエントリの前記誤り防止領域が前記キャッシュエントリの前記EDCを含むか、または前記ECCを含むかを示す誤りコードインジケータを前記キャッシュエントリの前記誤り防止領域に書き込む
ことをさらに行わせるコンピュータ実行可能命令を記憶した、請求項18に記載の非一時的コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
優先出願
本出願は、その全体が参照により本明細書に組み込まれている、2016年3月30日に出願した「PROVIDING SPACE-EFFICIENT STORAGE FOR DYNAMIC RANDOM ACCESS MEMORY (DRAM) CACHE TAGS」と題する米国特許出願第15/085,350号の優先権を主張するものである。
【０００２】
本開示の技術は、一般に、ダイナミックランダムアクセスメモリ(DRAM)管理に関し、詳細には、DRAMキャッシュの管理に関する。
【背景技術】
【０００３】
垂直に相互接続されている積み重ねられた複数のダイから構成されるダイ積層型集積回路(IC)の出現が、ダイ積層型ダイナミックランダムアクセスメモリ(DRAM)の発展を可能にしている。ダイ積層型DRAMは、本明細書では「高帯域幅メモリ」と呼ばれるものを実装するために使用され得る。高帯域幅メモリは、同様のアクセスレイテンシを提供しながら、従来のシステムメモリDRAMよりも高い帯域幅を提供する。いくつかの実装形態では、高帯域幅メモリはまた、「ニア」メモリ、または、他のシステムメモリDRAMよりもメモリインターフェースのより近くに物理的に位置するメモリでもあり得る。非限定的な例として、以前にシステムメモリDRAMから読み取られ、かつ/またはレベル3(L3)キャッシュなどの高位レベルキャッシュから追い出された、頻繁にアクセスされるデータを記憶するために、DRAMキャッシュを実装するために高帯域幅メモリが使用され得る。高帯域幅メモリの中にDRAMキャッシュを設けることにより、システムメモリDRAMにおけるメモリ競合が低減し得、したがって、事実上、全体的なメモリ帯域幅が増大し得る。
【０００４】
他の従来のキャッシュと同様に、DRAMキャッシュ内の各キャッシュエントリは、タグ記憶領域、データ記憶領域、および誤り防止領域を含む。タグ記憶領域は、タグを記憶するために使用され得、タグは、キャッシュエントリの一意の識別子としての働きをする。キャッシュされたデータがキャッシュエントリのデータ記憶領域に記憶される一方、誤り防止領域は、DRAMキャッシュがキャッシュエントリ内のキャッシュされたデータの破損を検出し訂正することを可能にする誤り訂正コード(ECC)を記憶し得る。非限定的な例として、ECCは、単一誤り訂正および二重誤り検出(SECDED:single-error correction and double-error detection)コードを含むことができ、それによりDRAMキャッシュは、キャッシュされたデータ内のシングルビット誤りを訂正し、キャッシュされたデータ内のダブルビット誤りを検出することができる。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、DRAMキャッシュ内に記憶できるデータの量は、タグ記憶に専用のDRAMキャッシュの量によって悪影響を及ぼされることがある。たとえば、各キャッシュエントリが64バイト長であるDRAMキャッシュ実装形態では、各タグは、サイズが5バイトであり得、そのため、DRAMキャッシュにとって利用可能なメモリの8パーセント近くを消費することがある。DRAMキャッシュ実装形態のメモリアクセス粒度は、タグにキャッシュエントリの5バイト超を占有させることによって、この問題を悪化させ得る。したがって、DRAMキャッシュの有効メモリ容量を増大させるためにDRAMキャッシュタグを記憶するための空間効率的な機構を提供することが望ましい。
【課題を解決するための手段】
【０００６】
詳細な説明において開示される態様は、ダイナミックランダムアクセスメモリ(DRAM)キャッシュタグの空間効率的記憶を実現することを含む。いくつかの態様では、高帯域幅メモリの一部であるDRAMキャッシュへのアクセスを管理するために、DRAMキャッシュ管理回路が提供される。DRAMキャッシュは複数のキャッシュエントリを含み、それらの各々がタグ記憶領域、データ記憶領域、および誤り防止領域を含む。DRAMキャッシュのいくつかの態様では、タグ記憶領域は5バイト長であり得、データ記憶領域は64バイト長であり得、誤り防止領域は8バイト長であり得る。いくつかの態様では、タグ記憶領域は、5バイトよりも大きいかまたは小さい場合がある一方、いくつかの態様では、データ記憶領域がより大きいかまたは小さく(たとえば、非限定的な例として32バイトまたは128バイト)、誤り防止領域が相応してサイズ決定される場合がある。DRAMキャッシュ管理回路は、各キャッシュエントリのデータ記憶領域にキャッシュされるべきデータを記憶するように構成される。DRAMキャッシュ管理回路はまた、誤り訂正コード(ECC)の代わりに誤り検出コード(EDC)を使用し、各キャッシュエントリのタグおよびEDCをキャッシュエントリの誤り防止領域に記憶するように構成される。非限定的な例として、EDCは、11ビットを占有する巡回冗長検査(CRC)を備えることができ、キャッシュエントリの誤り防止領域の残りの53ビットは、キャッシュエントリのタグおよび/またはキャッシュエントリに記憶されるデータに関係するメタデータ(たとえば、非限定的な例として圧縮および/またはセキュリティ属性)を記憶するために使用される。このようにして、キャッシュエントリの誤り検出を実現しながらも、各キャッシュエントリのタグ記憶領域を除去するか、またはタグ記憶領域のサイズを縮小することによって、DRAMキャッシュの容量は増大し得る。
【０００７】
DRAMキャッシュ管理回路のさらなる態様は、ライトスルーモードまたはライトバックモードで動作するように構成され得る。ライトスルーモードで動作するDRAMキャッシュ管理回路の態様では、DRAMキャッシュに記憶されるデータは、ECCによって保護されるシステムメモリDRAMにも書き込まれるので、DRAMキャッシュおよびシステムメモリDRAMが常に同期すること、およびシステムメモリDRAMが破損していないデータを含むことが保証される。したがって、キャッシュエントリのEDCが、キャッシュエントリに記憶されたデータ内で誤りが検出されていることを示す場合、DRAMキャッシュ管理回路は、破損していないデータを取得するために、キャッシュエントリに対応するシステムメモリDRAMにおけるメモリラインを読み取ることができる。ライトバックモードで動作するDRAMキャッシュ管理回路の態様では、DRAMキャッシュ管理回路は、DRAMキャッシュの複数のキャッシュエントリに対応する複数のダーティインジケータをさらに提供し得る。キャッシュエントリがアクセスされたとき、DRAMキャッシュ管理回路は、キャッシュエントリのダーティインジケータを使用して、キャッシュエントリがクリーンな(すなわち、変更されていない)データを記憶しているか、またはダーティな(すなわち、変更された)データを記憶しているかを判断し得る。DRAMキャッシュ管理回路は、クリーンなデータを記憶しているキャッシュエントリに関して上記で説明したようにEDCを使用してタグ記憶領域を利用し得る。ダーティなデータを記憶しているキャッシュエントリに関しては、DRAMキャッシュ管理回路は従来のキャッシュと同様にECCを使用し得る。DRAMキャッシュ管理回路はまた、各キャッシュエントリの誤り防止領域内に、キャッシュエントリが誤り検出にEDCを使用するか、またはECCを使用するかを示す誤りコードインジケータを記憶し得る。
【０００８】
別の態様では、プロセッサベースシステムが提供される。プロセッサベースシステムは、高帯域幅メモリの一部であるDRAMキャッシュを備える。DRAMキャッシュは、データ記憶領域および誤り防止領域をそれぞれが提供する複数のキャッシュエントリを備える。プロセッサベースシステムは、プロセッサベースシステムのコンピュートダイの上に配置され、DRAMキャッシュに通信可能に結合されるDRAMキャッシュ管理回路をさらに備える。DRAMキャッシュ管理回路は、DRAMキャッシュの複数のキャッシュエントリのうちのキャッシュエントリのデータ記憶領域にキャッシュされるべきデータを書き込むように構成される。DRAMキャッシュ管理回路は、キャッシュエントリの誤り防止領域にキャッシュエントリのタグおよびEDCを書き込むようにさらに構成される。
【０００９】
別の態様では、DRAMキャッシュ管理回路を含むプロセッサベースシステムが提供される。DRAMキャッシュ管理回路は、高帯域幅メモリの一部であるDRAMキャッシュの複数のキャッシュエントリのうちのキャッシュエントリのデータ記憶領域にキャッシュされるべきデータを書き込むための手段を備える。DRAMキャッシュ管理回路は、キャッシュエントリの誤り防止領域にキャッシュエントリのタグおよびEDCを書き込むための手段をさらに備える。
【００１０】
別の態様では、DRAMキャッシュにおけるDRAMキャッシュタグの空間効率的記憶を実現するための方法が提供される。本方法は、DRAMキャッシュ管理回路によって、高帯域幅メモリの一部であるDRAMキャッシュの複数のキャッシュエントリのうちのキャッシュエントリのデータ記憶領域にキャッシュされるべきデータを書き込むステップを含む。本方法は、キャッシュエントリの誤り防止領域にキャッシュエントリのタグおよびEDCを書き込むステップをさらに含む。
【００１１】
別の態様では、非一時的コンピュータ可読媒体が提供される。非一時的コンピュータ可読媒体は、プロセッサによって実行されると、プロセッサに、高帯域幅メモリの一部であるDRAMキャッシュの複数のキャッシュエントリのうちのキャッシュエントリのデータ記憶領域にキャッシュされるべきデータを書き込むことを行わせるコンピュータ実行可能命令を記憶する。非一時的コンピュータ可読媒体は、プロセッサによって実行されると、プロセッサに、キャッシュエントリの誤り防止領域にキャッシュエントリのタグおよびEDCを書き込むことを行わせるコンピュータ実行可能命令をさらに記憶する。
【図面の簡単な説明】
【００１２】
【図１】ダイナミックランダムアクセスメモリ(DRAM)キャッシュを提供する高帯域幅メモリと、DRAMキャッシュにアクセスするための従来のDRAMキャッシュ管理回路とを含む、例示的なプロセッサベースシステムのブロック図である。
【図２】DRAMキャッシュ内のDRAMキャッシュタグの空間効率的記憶を実現するように構成されたDRAMキャッシュ管理回路を含む、例示的なプロセッサベースシステムのブロック図である。
【図３】図1のDRAMキャッシュを使用してメモリ書込み動作を実行するための、図2のDRAMキャッシュ管理回路の例示的な動作を示すフローチャートである。
【図４】図1のDRAMキャッシュを使用してメモリ読取り動作を実行するための、図2のDRAMキャッシュ管理回路の例示的な動作を示すフローチャートである。
【図５Ａ】ライトバックモードでメモリ書込み動作を実行するための、図2のDRAMキャッシュ管理回路の例示的な動作を示すフローチャートである。
【図５Ｂ】ライトバックモードでメモリ書込み動作を実行するための、図2のDRAMキャッシュ管理回路の例示的な動作を示すフローチャートである。
【図６】ライトバックモードでメモリ読取り動作を実行するための、図2のDRAMキャッシュ管理回路の例示的な動作を示すフローチャートである。
【図７】図2のDRAMキャッシュ管理回路を含み得る、例示的なプロセッサベースシステムのブロック図である。
【発明を実施するための形態】
【００１３】
ここで図面を参照して、本開示のいくつかの例示的な態様について説明する。「例示的」という語は、本明細書では「例、事例、または例示としての働きをすること」を意味するために使用される。本明細書で「例示的」と記載されている任意の態様は、必ずしも他の態様よりも好ましいまたは有利であると解釈されるべきではない。
【００１４】
詳細な説明において開示される態様は、ダイナミックランダムアクセスメモリ(DRAM)キャッシュタグの空間効率的記憶を実現することを含む。この点について、いくつかの態様では、DRAMキャッシュ管理回路が提供される。DRAMキャッシュ管理回路は、DRAMキャッシュ内の各キャッシュエントリのデータ記憶領域にキャッシュされるべきデータを記憶するように構成される。DRAMキャッシュ管理回路はまた、誤り訂正コード(ECC)の代わりに誤り検出コード(EDC)を使用し、各キャッシュエントリのタグおよびEDCをキャッシュエントリの誤り防止領域に記憶するように構成される。このようにして、各キャッシュエントリのタグ記憶領域の必要を除去または低減することができるので、誤り検出機能を提供しながらも、DRAMキャッシュの有効メモリ容量を増大させることができる。
【００１５】
空間効率的なDRAMキャッシュタグを提供するためのDRAMキャッシュ管理回路の例示的な要素および動作について述べる前に、従来のDRAMキャッシュの構造について説明する。したがって、この点について、図1は、高帯域幅メモリ106の一部であるDRAMキャッシュ104を管理するためのDRAMキャッシュ管理回路102を提供するプロセッサベースシステム100のブロック図である。プロセッサベースシステム100は、システムメモリDRAM108を含み、システムメモリDRAM108は、いくつかの態様では、1つまたは複数のデュアルインラインメモリモジュール(DIMM)を備え得る。システムメモリDRAM108は、データが記憶されるメモリライン110(0)〜110(Y)に再分割される。プロセッサベースシステム100は、コンピュートダイ112をさらに提供し、コンピュートダイ112の上に高位レベルキャッシュ114が配置される。いくつかの態様では、高位レベルキャッシュ114は、非限定的な例として、レベル3(L3)キャッシュを備え得る。DRAMキャッシュ管理回路102は、コンピュートダイ112の上に配置され、双方向矢印116および118によって示されるように、高帯域幅メモリ106およびシステムメモリDRAM108に通信可能に結合される。DRAMキャッシュ管理回路102はまた、双方向矢印120によって示されるように、高位レベルキャッシュ114から読み取られ、かつ高位レベルキャッシュ114に書き込まれ得る。
【００１６】
図1のプロセッサベースシステム100は、要素の中でも、知られているデジタル論理要素、半導体回路、処理コア、および/もしくはメモリ構造のうちのいずれか1つ、またはそれらの組合せを包含し得る。本明細書で説明する態様は、要素の任意の特定の構成に限定されず、開示する技法は、半導体ダイまたはパッケージ上の様々な構造およびレイアウトに容易に拡張され得る。プロセッサベースシステム100のいくつかの態様が、図1に示すものに加えて要素を含んでよいことを理解されたい。
【００１７】
メモリ帯域幅を改善するために、プロセッサベースシステム100の高帯域幅メモリ106内のDRAMキャッシュ104は、システムメモリDRAM108のメモリライン110(0)〜110(Y)のうちの1つもしくは複数から以前に読み取られ、かつ/または高位レベルキャッシュ114から追い出された、データ(図示せず)をキャッシュするために、DRAMキャッシュ管理回路102によって使用され得る。非限定的な例として、いくつかの態様は、システムメモリDRAM108からデータを読み取るときのみ、DRAMキャッシュ104にデータがキャッシュされ得ることを実現してよく、いくつかの態様では、データは、高位レベルキャッシュ114から追い出されたときのみ、DRAMキャッシュ104にキャッシュされ得る。いくつかの態様によれば、プロセッサ負荷、および高位レベルキャッシュ114からのダーティなエビクションによってトリガされる読取りに対して、システムメモリDRAM108からデータを読み取るときにDRAMキャッシュ104にデータがキャッシュされ得る。
【００１８】
高帯域幅メモリ106内のDRAMキャッシュ104は、システムメモリDRAM108とは無関係にアクセスされ得る。その結果、メモリ帯域幅は、DRAMキャッシュ104とシステムメモリDRAM108の両方から同時に読み取ることによって事実上増大し得る。いくつかの態様では、DRAMキャッシュ104は、DRAMキャッシュ104内のエビクションの候補を決定するために、ランダムな置換ポリシーを実装し得る。
【００１９】
DRAMキャッシュ104は、キャッシュされたデータが記憶され得る複数のキャッシュエントリ122(0)〜122(X)を提供する。キャッシュエントリ122(0)〜122(X)の各々は、タグ記憶領域124、データ記憶領域126、および誤り防止領域128からなる。タグ記憶領域124、データ記憶領域126、および誤り防止領域128は図1において、説明のためにのみ連続して記憶されるものとして示されていることを理解されたい。いくつかの態様では、タグ記憶領域124、データ記憶領域126、および誤り防止領域128は、別個のデータ構造またはメモリ領域として実装され得る。DRAMキャッシュ104のいくつかの態様によれば、キャッシュエントリ122(0)〜122(X)の各々は、5バイトを占有するタグ記憶領域124、64バイトを占有するデータ記憶領域126、および8バイトを占有する誤り防止領域128に関連付けられる。いくつかの態様では、タグ記憶領域124は、図1の例に示すよりも大きいかまたは小さい場合があることを理解されたい。いくつかの態様によるデータ記憶領域126は、図1の例に示すよりも大きいかまたは小さく(たとえば、非限定的な例として32バイトまたは128バイト)、誤り防止領域128が相応してサイズ決定される場合があることをさらに理解されたい。
【００２０】
キャッシュエントリ122(0)〜122(X)のタグ記憶領域124は通常、対応するタグ130(0)〜130(X)を記憶するために使用され、これらのタグは、キャッシュエントリ122(0)〜122(X)の一意の識別子としての働きをする。キャッシュエントリ122(0)〜122(X)のデータ記憶領域126にデータ132(0)〜132(X)が記憶される。キャッシュエントリ122(0)〜122(X)の誤り防止領域128は、キャッシュエントリ122(0)〜122(X)内のデータ132(0)〜132(X)の破損の検出および訂正を可能にするECC134(0)〜134(X)を記憶し得る。非限定的な例として、ECC134(0)〜134(X)はそれぞれ、単一誤り訂正および二重誤り検出(SECDED)コードを含むことができ、それにより、対応するデータ132(0)〜132(X)内のシングルビット誤りを訂正し、データ132(0)〜132(X)内のダブルビット誤りを検出することができる。
【００２１】
しかしながら、DRAMキャッシュ104内に記憶できるデータ132(0)〜132(X)の量は、タグ130(0)〜130(X)の記憶に専用のDRAMキャッシュ104の量によって制限されることがある。たとえば、キャッシュエントリ122(0)〜122(X)の各々が64バイト長であるDRAMキャッシュ104の実装形態では、タグ130(0)〜130(X)の各々は5バイトに達することがあり、そのため、DRAMキャッシュ104にとって利用可能なメモリの8パーセント近くを消費することがある。DRAMキャッシュ104のメモリアクセス粒度が5バイトよりも大きいDRAMキャッシュ104の態様では、タグ130(0)〜130(X)の各々は実際には、その対応するキャッシュエントリ122(0)〜122(X)の5バイト超を占めることがある。したがって、DRAMキャッシュ104の有効メモリ容量を増大させるためにタグ130(0)〜130(X)を記憶するための空間効率的な機構を提供することが望ましい。
【００２２】
この点について、DRAMキャッシュ104内のタグ130(0)〜130(X)の空間効率的記憶を実現するように構成されたDRAMキャッシュ管理回路202を含む例示的なプロセッサベースシステム200を示すために、図2が提供される。明快にするために、図2について説明する際に、図1の要素が参照される。図2に見られるように、DRAMキャッシュ管理回路202は、データ132(0)〜132(X)のためのより大きい記憶容量およびタグ130(0)〜130(X)のより効率的な記憶をもたらすために、誤り防止領域128を再利用するように構成される。これらの目標を達成するために、DRAMキャッシュ管理回路202は、キャッシュエントリ122(0)〜122(X)に記憶されたデータ132(0)〜132(X)の誤りを検出するために、図1のECC134(0)〜134(X)の代わりにEDC204(0)〜204(X)に依拠する。非限定的な例として、EDC204(0)〜204(X)は、11ビットを占める巡回冗長検査(CRC)を備え得る。EDC204(0)〜204(X)の各々はECC134(0)〜134(X)よりもはるかに小さい(たとえば、いくつかの態様では64ビットに対して11ビット)ので、DRAMキャッシュ管理回路202は誤り防止領域128に、対応するキャッシュエントリ122(0)〜122(X)のEDC204(0)〜204(X)とタグ130(0)〜130(X)の両方を記憶することができる。このようにして、DRAMキャッシュ管理回路202は、図1のタグ記憶領域124を設ける必要を回避または低減し得るので、DRAMキャッシュ104の容量が事実上増大し得る。
【００２３】
ECC134(0)〜134(X)とは異なり、EDC204(0)〜204(X)は、データ132(0)〜132(X)の検出された誤りを訂正するためには使用できず、そのような誤りを検出するためにのみ使用できる。キャッシュエントリ122(0)〜122(X)のうちの1つの中で誤りを検出すると、DRAMキャッシュ管理回路202は、破損していないデータを取り出すために、システムメモリDRAM108からキャッシュエントリ122(0)〜122(X)に対応するメモリライン110(0)〜110(Y)のうちの1つを読み取り得る。このために、DRAMキャッシュ管理回路202のいくつかの態様では、図2に示す例は、クリーンであることが知られているデータをDRAMキャッシュ104に書き込むときのみ使用され得る。たとえば、DRAMキャッシュ管理回路202のいくつかの態様は、ライトスルーモードで動作するように構成されてよく、ライトスルーモードでは、DRAMキャッシュ104に記憶されるすべてのデータは、システムメモリDRAM108にも書き込まれる。DRAMキャッシュ104およびシステムメモリDRAM108は常に同期するので、図2に示す例は、DRAMキャッシュ104に書き込まれ、DRAMキャッシュ104から読み取られるすべてのデータ132(0)〜132(X)に使用され得る。
【００２４】
ライトバックモードで動作するDRAMキャッシュ管理回路202のいくつかの態様では、DRAMキャッシュ104のキャッシュエントリ122(0)〜122(X)の各々に記憶されたデータ132(0)〜132(X)は、クリーンであるか、またはダーティであり得る。したがって、そのような態様におけるDRAMキャッシュ管理回路202は、DRAMキャッシュ104の複数のキャッシュエントリ122(0)〜122(X)に対応する複数のダーティインジケータ206(0)〜206(X)を提供し得る。DRAMキャッシュ104のキャッシュエントリ122(0)などのキャッシュエントリ122(0)〜122(X)に書き込むとき、DRAMキャッシュ管理回路202は、書き込まれるデータ132(0)がクリーン(たとえば、システムメモリDRAM108から読み取られたデータ132(0)および/または高位レベルキャッシュ114から追い出されたクリーンなデータ132(0))であるか、またはダーティ(たとえば、高位レベルキャッシュ114から追い出されたダーティなデータ132(0))であるかを判断し得る。DRAMキャッシュ管理回路202は次いで、それに応じてキャッシュエントリ122(0)に対応するダーティインジケータ206(0)を設定し得る。データ132(0)がクリーンである場合、図2に示すようにキャッシュエントリ122(0)にデータ132(0)、タグ130(0)、およびEDC204(0)が記憶され得る。一方、データ132(0)がダーティである場合、図1に示すように従来の方法でキャッシュエントリ122(0)にデータ132(0)、タグ130(0)、およびECC134(0)が記憶され得る。ダーティインジケータ206(0)〜206(X)はまた、データ132(0)およびタグ130(0)がキャッシュエントリ122(0)内にどのように記憶されているかを判断するために、またどの形式の誤り防止(EDC204(0)またはECC134(0))がキャッシュエントリ122(0)に使用されているかを示すために、DRAMキャッシュ104からキャッシュエントリ122(0)を読み取るときに、DRAMキャッシュ管理回路202によって使用され得る。
【００２５】
プロセッサベースシステム200のいくつかの態様では、他のプロセスがプロセッサベースシステム200によって実行され、DRAMキャッシュ104にアクセスすることは、どの形式の誤り防止がDRAMキャッシュ104のキャッシュエントリ122(0)〜122(X)の各々に使用されているかを判断するための機構を必要とし得る。非限定的な例として、プロセッサベースシステム200は、シングルビットデータ誤りがないかキャッシュエントリ122(0)〜122(X)をチェックするために、また検出された誤りを訂正するために周期的または連続的に実行される「スクラバ」プロセス(図示せず)を提供し得る。そのようなプロセスを容易にするために、DRAMキャッシュ104の各キャッシュエントリ122(0)〜122(X)は、キャッシュエントリ122(0)〜122(X)が誤り検出にEDC204(0)〜204(X)を使用するか、またはECC134(0)〜134(X)を使用するかを示す、対応する誤りコードインジケータ(IND)208(0)〜208(X)を記憶し得る。
【００２６】
いくつかの態様によれば、DRAMキャッシュ管理回路202は、ECC134(0)〜134(X)としてリードソロモンコードを使用するように構成され得る。リードソロモンコードは、他の従来型ECCコードよりも小さくてよいので、ECC134(0)〜134(X)が使用される態様では、誤りコードインジケータ208(0)〜208(X)を記憶するために誤り防止領域128内に追加ビットを提供し得る。いくつかの態様では、誤りコードインジケータ208(0)〜208(X)の各々は、すべて同じ値に設定された奇数の複数のビット(図示せず)を備え得る。奇数の複数のビットのうちの1つが破損した場合、誤り防止の形式は依然として、複数のビットの大部分の値によって決定され得る。
【００２７】
図3は、図1のDRAMキャッシュ104を使用してメモリ書込み動作を実行するための、図2のDRAMキャッシュ管理回路202の例示的な動作を示すフローチャートである。明快にするために、図3について説明する際に図1および図2の要素が参照される。図3では、DRAMキャッシュ管理回路202が、高帯域幅メモリ106の一部であるDRAMキャッシュ104の複数のキャッシュエントリ122(0)〜122(X)のうちのキャッシュエントリ122(0)のデータ記憶領域126にキャッシュされるべきデータ132(0)を書き込む(ブロック300)ことで、動作が始まる。この点について、DRAMキャッシュ管理回路202は本明細書において、「高帯域幅メモリの一部であるDRAMキャッシュの複数のキャッシュエントリのうちのキャッシュエントリのデータ記憶領域にキャッシュされるべきデータを書き込むための手段」と呼ばれることがある。DRAMキャッシュ管理回路202は次いで、キャッシュエントリ122(0)の誤り防止領域128にキャッシュエントリ122(0)のタグ130(0)およびEDC204(0)を書き込む(ブロック302)。したがって、DRAMキャッシュ管理回路202は本明細書において、「キャッシュエントリの誤り防止領域にキャッシュエントリのタグおよびEDCを書き込むための手段」と呼ばれることがある。このようにして、DRAMキャッシュ管理回路202は、DRAMキャッシュ104のメモリ容量を増大させる一方でタグ130(0)の空間効率的記憶を実現する。
【００２８】
上記で説明したように、DRAMキャッシュ管理回路202のいくつかの態様は、ライトスルーモードで動作するときなど、クリーンであることが知られているデータ132(0)の書込みを実行するときに、図3の動作を利用し得る。ライトスルーモードを実装する態様では、DRAMキャッシュ管理回路202はさらに、キャッシュされるべきデータ132(0)を、データ132(0)のECCとともにシステムメモリDRAM108に書き込む(ブロック304)。このようにして、DRAMキャッシュ104およびシステムメモリDRAM108のコンテンツは常に同期し、システムメモリDRAM108は破損していないデータを含む。
【００２９】
図1のDRAMキャッシュ104を使用してメモリ読取り動作を実行するための、図2のDRAMキャッシュ管理回路202の例示的な動作を示すために、図4が提供される。図4について説明する際に、明快にするために図1および図2の要素が参照される。DRAMキャッシュ管理回路202が、DRAMキャッシュ104の複数のキャッシュエントリ122(0)〜122(X)のうちのキャッシュエントリ122(0)を読み取る(ブロック400)ことで、図4の動作が始まる。DRAMキャッシュ管理回路202は次いで、キャッシュエントリ122(0)の誤り防止領域128におけるEDC204(0)がデータ誤りを示すかどうかを判断する(ブロック402)。EDC204(0)がデータ誤りを示す場合、DRAMキャッシュ管理回路202は、システムメモリDRAM108からキャッシュエントリ122(0)に対応するメモリライン110(0)を読み取り得る(ブロック404)。システムメモリDRAM108はECCによって保護されているので、データ132(0)の破損していないコピーがシステムメモリDRAM108から取得され得る。このようにして、DRAMキャッシュ管理回路202のパフォーマンスは、データ破損という比較的まれな場合にシステムメモリDRAM108から読み取るときに不利益を被る一方で、データ破損が発生していないより一般的な場合に最適化され得る。
【００３０】
DRAMキャッシュ管理回路202は次いで、(たとえば、要求側キャッシュまたはプロセスにデータ132(0)を提供することによって)データ132(0)を処理し続ける(ブロック406)。決定ブロック402において、DRAMキャッシュ管理回路202が、EDC204(0)がデータ誤りを示さないと判断した場合、処理はブロック406において再開する。図3と同様に、DRAMキャッシュ管理回路202のいくつかの態様は、クリーンであることが知られているデータ132(0)の読取りを実行するときに、図4の動作を利用し得る。
【００３１】
図5Aおよび図5Bは、ライトバックモードで動作するように構成されたときにメモリ書込み動作を実行するための、図2のDRAMキャッシュ管理回路202の例示的な動作を示すフローチャートである。明快にするために、図5Aおよび図5Bについて説明する際に図1および図2の要素が参照される。ここで図5Aを参照すると、DRAMキャッシュ管理回路202が、キャッシュされるべきデータ132(0)が変更されているかどうかを判断する(ブロック500)ことで、動作が始まる。非限定的な例として、キャッシュされるべきデータ132(0)は、高位レベルキャッシュ114から追い出されたダーティなデータ132(0)を含み得る。データ132(0)が変更されている(すなわち、データ132(0)がダーティである)場合、DRAMキャッシュ管理回路202は、従来の書込み動作と同様のメモリ書込み動作に進む。DRAMキャッシュ管理回路202は、DRAMキャッシュ104の複数のキャッシュエントリ122(0)〜122(X)のうちのキャッシュエントリ122(0)のデータ記憶領域126にキャッシュされるべきデータ132(0)を書き込む(ブロック502)。DRAMキャッシュ管理回路202は次に、キャッシュエントリ122(0)のタグ記憶領域124にキャッシュエントリ122(0)のタグ130(0)を書き込む(ブロック504)。DRAMキャッシュ管理回路202はまた、キャッシュエントリ122(0)の誤り防止領域128にキャッシュエントリ122(0)のECC134(0)を書き込む(ブロック506)。いくつかの態様では、DRAMキャッシュ管理回路202は、リードソロモンコードを書き込む(ブロック508)ことによってECC134(0)を書き込むためのブロック506の動作を実行し得る。DRAMキャッシュ管理回路202は次いで、キャッシュエントリ122(0)が変更されたデータ132(0)を含むことを示すように、DRAMキャッシュ管理回路202の複数のダーティインジケータ206(0)〜206(X)のうちのキャッシュエントリ122(0)に対応するダーティインジケータ206(0)を設定する(ブロック510)。処理は次いで、図5Bのブロック514において再開する。
【００３２】
ここで図5Bを参照すると、図5Aの決定ブロック500において、DRAMキャッシュ管理回路202が、データ132(0)が変更されていない(すなわち、データ132(0)がクリーンである)と判断した場合、DRAMキャッシュ管理回路202は、図3に示すものと同様のメモリ書込み動作に進む。DRAMキャッシュ管理回路202は、DRAMキャッシュ104の複数のキャッシュエントリ122(0)〜122(X)のうちのキャッシュエントリ122(0)のデータ記憶領域126にキャッシュされるべきデータ132(0)を書き込む(ブロック516)。DRAMキャッシュ管理回路202は次に、キャッシュエントリ122(0)の誤り防止領域128にキャッシュエントリ122(0)のタグ130(0)およびEDC204(0)を書き込む(ブロック518)。DRAMキャッシュ管理回路202は次いで、キャッシュエントリ122(0)が変更されていないデータ132(0)を含むことを示すように、複数のダーティインジケータ206(0)〜206(X)のうちのキャッシュエントリ122(0)に対応するダーティインジケータ206(0)を設定する(ブロック520)。いくつかの態様では、DRAMキャッシュ管理回路202はまた、キャッシュエントリ122(0)の誤り防止領域128に、キャッシュエントリ122(0)の誤り防止領域128がキャッシュエントリ122(0)のEDC204(0)を含むか、またはECC134(0)を含むかを示す誤りコードインジケータ208(0)を書き込み得る(ブロック514)。
【００３３】
ライトバックモードで動作するように構成されたときにメモリ読取り動作を実行するための、図2のDRAMキャッシュ管理回路202の例示的な動作を示すために、図6が提供される。図6について説明する際に、明快にするために図1および図2の要素が参照される。図6では、DRAMキャッシュ管理回路202が、DRAMキャッシュ104の複数のキャッシュエントリ122(0)〜122(X)のうちのキャッシュエントリ122(0)を読み取る(ブロック600)ことで、動作が始まる。DRAMキャッシュ管理回路202は、キャッシュエントリ122(0)に対応する複数のダーティインジケータ206(0)〜206(X)のうちのダーティインジケータ206(0)に基づいて、キャッシュエントリ122(0)が変更されたデータ132(0)(すなわち、ダーティなデータ132(0))を含むかどうかを判断する(ブロック602)。キャッシュエントリ122(0)が変更されたデータ132(0)を含まない場合、DRAMキャッシュ管理回路202は次に、キャッシュエントリ122(0)の誤り防止領域128におけるEDC204(0)がデータ誤りを示すかどうかを判断する(ブロック604)。データ誤りを示さない場合、処理はブロック608において再開する。一方、決定ブロック604において、DRAMキャッシュ管理回路202が、キャッシュエントリ122(0)の誤り防止領域128におけるEDC204(0)がデータ誤りを示すと判断した場合、DRAMキャッシュ管理回路202は、システムメモリDRAM108からキャッシュエントリ122(0)に対応するメモリライン110(0)を読み取る(ブロック606)。このようにして、データ132(0)の破損していないコピーがシステムメモリDRAM108から取得され得る。DRAMキャッシュ管理回路202は次いで、(たとえば、要求側キャッシュまたはプロセスにデータ132(0)を提供することによって)データ132(0)を処理し続ける(ブロック608)。
【００３４】
決定ブロック602において、DRAMキャッシュ管理回路202が、キャッシュエントリ122(0)が変更されたデータ132(0)を含むと判断した場合、DRAMキャッシュ管理回路202は、キャッシュエントリ122(0)の誤り防止領域128におけるECC134(0)がデータ誤りを示すかどうかを判断する(ブロック610)。データ誤りを示さない場合、処理はブロック608において再開する。決定ブロック610において、DRAMキャッシュ管理回路202が、キャッシュエントリ122(0)の誤り防止領域128におけるECC134(0)がデータ誤りを示すと判断した場合、DRAMキャッシュ管理回路202は、データ誤りが訂正可能である(たとえば、SECDED ECC134(0)によって訂正可能なシングルビット誤り)かどうかを判断する(ブロック612)。データ誤りが訂正できない場合、DRAMキャッシュ管理回路202は、訂正不可能な誤りが発生したことを示すために、中断を引き起こし得る(ブロック613)。一方、データ誤りが訂正可能である場合、DRAMキャッシュ管理回路202は、ECC134(0)に基づいてデータ誤りを訂正する(ブロック614)。次いで、ブロック608において処理が再開する。
【００３５】
本明細書で開示する態様による、DRAMキャッシュタグの空間効率的記憶の実現は、任意のプロセッサベースデバイスにおいてもたらされてよく、または任意のプロセッサベースデバイスに組み込まれてもよい。例としては、限定はしないが、セットトップボックス、エンターテインメントユニット、ナビゲーションデバイス、通信デバイス、固定ロケーションデータユニット、モバイルロケーションデータユニット、モバイルフォン、セルラーフォン、スマートフォン、タブレット、ファブレット、サーバ、コンピュータ、ポータブルコンピュータ、デスクトップコンピュータ、携帯情報端末(PDA)、モニタ、コンピュータモニタ、テレビ、チューナ、ラジオ、衛星ラジオ、音楽プレーヤ、デジタル音楽プレーヤ、ポータブル音楽プレーヤ、デジタルビデオプレーヤ、ビデオプレーヤ、デジタルビデオディスク(DVD)プレーヤ、ポータブルデジタルビデオプレーヤ、および自動車が含まれる。
【００３６】
この点について、図7は、高帯域幅メモリ(HBM)106の一部であるDRAMキャッシュ104を管理するための、図1に示すDRAMキャッシュ管理回路(DCMC)102を採用できるプロセッサベースシステム700の一例を示す。プロセッサベースシステム700は、図1のコンピュートダイ112を含み、各々が1つまたは複数のプロセッサ704を含む1つまたは複数の中央処理装置(CPU)702がコンピュートダイ112の上に設けられる。CPU702は、一時的に記憶されているデータに迅速にアクセスするために、プロセッサ704に結合されたキャッシュメモリ706を有してもよい。CPU702は、システムバス708に結合され、プロセッサベースシステム700に含まれるマスタデバイスとスレーブデバイスとを相互結合することができる。よく知られているように、CPU702は、システムバス708を介してアドレス情報、制御情報、およびデータ情報を交換することによって、これらの他のデバイスと通信する。たとえば、CPU702は、スレーブデバイスの一例としてメモリコントローラ710に、バストランザクション要求を通信することができる。
【００３７】
他のマスタデバイスおよびスレーブデバイスがシステムバス708に接続されてよい。図7に示すように、これらのデバイスは、例として、メモリシステム712、1つまたは複数の入力デバイス714、1つまたは複数の出力デバイス716、1つまたは複数のネットワークインターフェースデバイス718、および1つまたは複数のディスプレイコントローラ720を含むことができる。入力デバイス714は、限定はしないが、入力キー、スイッチ、音声プロセッサなどを含む任意のタイプの入力デバイスを含むことができる。出力デバイス716は、限定はしないが、オーディオ、ビデオ、他の視覚的インジケータなどを含む任意のタイプの出力デバイスを含むことができる。ネットワークインターフェースデバイス718は、ネットワーク722との間のデータの交換を可能にするように構成された、任意のデバイスとすることができる。ネットワーク722は、限定はしないが、有線ネットワークまたはワイヤレスネットワーク、プライベートネットワークまたは公衆ネットワーク、ローカルエリアネットワーク(LAN)、ワイヤレスローカルエリアネットワーク(WLAN)、ワイドエリアネットワーク(WAN)、BLUETOOTH(登録商標)ネットワーク、およびインターネットを含む、任意のタイプのネットワークであってよい。ネットワークインターフェースデバイス718は、任意のタイプの所望の通信プロトコルをサポートするように構成され得る。メモリシステム712は、1つまたは複数のメモリユニット724(0)〜724(N)を含むことができる。
【００３８】
CPU702はまた、1つまたは複数のディスプレイ726に送られる情報を制御するために、システムバス708を介してディスプレイコントローラ720にアクセスするように構成されてもよい。ディスプレイコントローラ720は、1つまたは複数のビデオプロセッサ728を介して表示されるべき情報をディスプレイ726に送り、ビデオプロセッサ728は、表示されるべき情報をディスプレイ726に適したフォーマットになるように処理する。ディスプレイ726は、限定はしないが、陰極線管(CRT)、液晶ディスプレイ(LCD)、プラズマディスプレイなどを含む任意のタイプのディスプレイを含むことができる。
【００３９】
本明細書で開示する態様に関して説明した様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムが、電子ハードウェア、メモリの中もしくは別のコンピュータ可読媒体の中に記憶されるとともにプロセッサもしくは他の処理デバイスによって実行される命令、または両方の組合せとして実装され得ることを、当業者はさらに諒解されよう。本明細書で説明するマスタデバイスおよびスレーブデバイスは、例として、任意の回路、ハードウェア構成要素、集積回路(IC)、またはICチップにおいて使用されてもよい。本明細書で開示するメモリは、任意のタイプおよびサイズのメモリであってもよく、任意のタイプの所望の情報を記憶するように構成されてもよい。この互換性を明確に示すために、様々な例示的な構成要素、ブロック、モジュール、回路、およびステップについて、概してそれらの機能に関して上記において説明した。そのような機能がどのように実装されるのかは、特定の適用例、設計選択、および/またはシステム全体に課される設計制約によって決まる。当業者は、説明した機能を特定の適用例ごとに様々な方法で実装してもよいが、そのような実装決定が本開示の範囲からの逸脱を引き起こすものと解釈されるべきではない。
【００４０】
本明細書で開示する態様に関して説明した様々な例示的な論理ブロック、モジュール、および回路は、プロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)もしくは他のプログラマブル論理デバイス、個別ゲートもしくはトランジスタ論理、個別ハードウェア構成要素、または本明細書で説明する機能を実行するように設計されたそれらの任意の組合せを用いて実装または実行され得る。プロセッサは、マイクロプロセッサであってよいが、代替として、プロセッサは、任意の従来のプロセッサ、コントローラ、マイクロコントローラ、または状態機械であってもよい。プロセッサはまた、コンピューティングデバイスの組合せ(たとえば、DSPとマイクロプロセッサとの組合せ、複数のマイクロプロセッサ、DSPコアと連携した1つもしくは複数のマイクロプロセッサ、または任意の他のそのような構成)として実装されてもよい。
【００４１】
本明細書で開示する態様は、ハードウェアにおいて具現化されてもよく、かつハードウェアに記憶され、たとえば、ランダムアクセスメモリ(RAM)、フラッシュメモリ、読取り専用メモリ(ROM)、電気的プログラマブルROM(EPROM)、電気的消去可能プログラマブルROM(EEPROM)、レジスタ、ハードディスク、リムーバブルディスク、CD-ROM、または当技術分野において知られている任意の他の形態のコンピュータ可読媒体の中に存在し得る命令において具現化されてもよい。例示的な記憶媒体は、プロセッサが記憶媒体から情報を読み取りかつ記憶媒体に情報を書き込むことができるようにプロセッサに結合される。代替として、記憶媒体は、プロセッサと一体化してもよい。プロセッサおよび記憶媒体は、ASICの中に存在する場合がある。ASICは、リモート局の中に存在する場合がある。代替として、プロセッサおよび記憶媒体は、個別構成要素としてリモート局、基地局、またはサーバの中に存在する場合がある。
【００４２】
本明細書の例示的な態様のいずれかにおいて説明する動作ステップが、例示および説明のために記載されていることにも留意されたい。説明する動作は、図示のシーケンス以外の数多くの異なるシーケンスにおいて実行される場合がある。さらに、単一の動作ステップにおいて説明する動作は、実際にはいくつかの異なるステップにおいて実行される場合がある。さらに、例示的な態様で説明した1つまたは複数の動作ステップは、組み合わせられてよい。当業者には容易に明らかになるように、フローチャート図に示される動作ステップが数多くの異なる変更を受ける場合があることを理解されたい。情報および信号が様々な異なる技術および技法のいずれかを使用して表される場合があることも当業者は理解されよう。たとえば、上記の説明全体にわたって参照される場合があるデータ、命令、コマンド、情報、信号、ビット、シンボル、およびチップは、電圧、電流、電磁波、磁場もしくは磁気粒子、光場もしくは光学粒子、またはそれらの任意の組合せによって表されてもよい。
【００４３】
本開示のこれまでの説明は、任意の当業者が本開示を作製または使用できるようにするために提供される。本開示の様々な変更が当業者に容易に明らかになり、本明細書で定義する一般原理は、本開示の趣旨または範囲から逸脱することなく他の変形形態に適用されてもよい。したがって、本開示は、本明細書で説明した例および設計に限定されるものでなく、本明細書で開示する原理および新規の特徴と一致する最も広い範囲を与えられるべきである。
【符号の説明】
【００４４】
100  プロセッサベースシステム
102  DRAMキャッシュ管理回路(DCMC)
104  DRAMキャッシュ
106  高帯域幅メモリ(HBM)
108  システムメモリDRAM
110(0)〜110(Y)  メモリライン
112  コンピュートダイ
114  高位レベルキャッシュ
116  双方向矢印
118  双方向矢印
120  双方向矢印
122(0)〜122(X)  キャッシュエントリ
124  タグ記憶領域
126  データ記憶領域
128  誤り防止領域
130(0)〜130(X)  タグ
132(0)〜132(X)  データ
134(0)〜134(X)  ECC
200  プロセッサベースシステム
202  DRAMキャッシュ管理回路
204(0)〜204(X)  EDC
206(0)〜206(X)  ダーティインジケータ
208(0)〜208(X)  誤りコードインジケータ(IND)
700  プロセッサベースシステム
702  中央処理装置(CPU)
704  プロセッサ
706  キャッシュメモリ
708  システムバス
710  メモリコントローラ
712  メモリシステム
714  入力デバイス
716  出力デバイス
718  ネットワークインターフェースデバイス
720  ディスプレイコントローラ
722  ネットワーク
724(0)〜724(N)  メモリユニット
726  ディスプレイ
728  ビデオプロセッサ
【図１】
2019513264.tif 000003
【図２】
2019513264.tif 000004
【図３】
2019513264.tif 000005
【図４】
2019513264.tif 000006
【図５Ａ】
2019513264.tif 000007
【図５Ｂ】
2019513264.tif 000008
【図６】
2019513264.tif 000009
【図７】
2019513264.tif 000010
【手続補正書】
【提出日】平成30年10月2日(2018.10.2)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
プロセッサベースシステムであって、
データ記憶領域および誤り防止領域をそれぞれが提供する複数のキャッシュエントリを備える、高帯域幅メモリの一部であるダイナミックランダムアクセスメモリ(DRAM)キャッシュと、
前記プロセッサベースシステムのコンピュートダイの上に配置され、前記DRAMキャッシュに通信可能に結合されたDRAMキャッシュ管理回路と
を備え、
前記DRAMキャッシュ管理回路は、
前記DRAMキャッシュの前記複数のキャッシュエントリのうちのキャッシュエントリの前記データ記憶領域にキャッシュされるべきデータを書き込み、
前記キャッシュエントリの前記誤り防止領域に誤り訂正コード(ECC)を書き込むことなく、前記キャッシュエントリの前記誤り防止領域に前記キャッシュエントリのタグおよび誤り検出コード(EDC)を書き込む
ように構成される、プロセッサベースシステム。
【請求項２】
前記DRAMキャッシュ管理回路は、ライトスルーモードで動作するように構成される、請求項1に記載のプロセッサベースシステム。
【請求項３】
前記DRAMキャッシュ管理回路は、
前記DRAMキャッシュの前記複数のキャッシュエントリのうちの前記キャッシュエントリを読み取り、
前記キャッシュエントリの前記誤り防止領域における前記キャッシュエントリの前記EDCがデータ誤りを示すかどうかを判断し、
前記キャッシュエントリの前記誤り防止領域における前記キャッシュエントリの前記EDCがデータ誤りを示すとの判断に応答して、システムメモリDRAMから前記キャッシュエントリに対応するメモリラインを読み取る
ようにさらに構成される、請求項2に記載のプロセッサベースシステム。
【請求項４】
前記DRAMキャッシュ管理回路は、ライトバックモードで動作するように構成され、
前記DRAMキャッシュ管理回路は、前記DRAMキャッシュの前記複数のキャッシュエントリに対応する複数のダーティインジケータを備え、
前記DRAMキャッシュ管理回路は、
キャッシュされるべき前記データが変更されているかどうかを判断し、
キャッシュされるべき前記データが変更されているとの判断に応答して、
前記DRAMキャッシュの前記複数のキャッシュエントリのうちの前記キャッシュエントリの前記データ記憶領域にキャッシュされるべき前記データを書き込み、
前記キャッシュエントリのタグ記憶領域に前記キャッシュエントリの前記タグを書き込み、
前記キャッシュエントリの前記誤り防止領域に前記キャッシュエントリのECCを書き込み、
前記キャッシュエントリが変更されたデータを含むことを示すように、前記キャッシュエントリに対応する前記複数のダーティインジケータのうちのダーティインジケータを設定し、
キャッシュされるべき前記データが変更されていないとの判断に応答して、
前記キャッシュエントリが変更されていないデータを含むことを示すように、前記キャッシュエントリに対応する前記複数のダーティインジケータのうちのダーティインジケータを設定する
ようにさらに構成され、
前記DRAMキャッシュ管理回路は、キャッシュされるべき前記データが変更されていないとの判断にさらに応答して、前記DRAMキャッシュの前記複数のキャッシュエントリのうちの前記キャッシュエントリの前記データ記憶領域にキャッシュされるべき前記データを書き込み、前記キャッシュエントリの前記誤り防止領域に前記キャッシュエントリの前記タグおよび前記EDCを書き込むように構成される、請求項1に記載のプロセッサベースシステム。
【請求項５】
前記DRAMキャッシュ管理回路は、
前記DRAMキャッシュの前記複数のキャッシュエントリのうちの前記キャッシュエントリを読み取り、
前記キャッシュエントリに対応する前記複数のダーティインジケータのうちの前記ダーティインジケータに基づいて、前記キャッシュエントリが変更されたデータを含むかどうかを判断し、
前記キャッシュエントリが変更されたデータを含むとの判断に応答して、
前記キャッシュエントリの前記誤り防止領域における前記キャッシュエントリの前記ECCがデータ誤りを示すかどうかを判断し、
前記キャッシュエントリの前記誤り防止領域における前記キャッシュエントリの前記ECCがデータ誤りを示すとの判断に応答して、
前記データ誤りが訂正可能であるかどうかを判断し、
前記データ誤りが訂正可能であるとの判断に応答して、前記ECCに基づいて前記データ誤りを訂正し、
前記データ誤りが訂正可能ではないとの判断に応答して、システムメモリDRAMから前記キャッシュエントリに対応するメモリラインを読み取り、
前記キャッシュエントリが変更されたデータを含まないとの判断に応答して、
前記キャッシュエントリの前記誤り防止領域における前記キャッシュエントリの前記EDCがデータ誤りを示すかどうかを判断し、
前記キャッシュエントリの前記誤り防止領域における前記キャッシュエントリの前記EDCがデータ誤りを示すとの判断に応答して、前記システムメモリDRAMから前記キャッシュエントリに対応する前記メモリラインを読み取る
ようにさらに構成される、請求項4に記載のプロセッサベースシステム。
【請求項６】
前記DRAMキャッシュ管理回路は、リードソロモンコードとして前記キャッシュエントリの前記誤り防止領域に前記キャッシュエントリの前記ECCを書き込むように構成され、
前記DRAMキャッシュ管理回路は、前記キャッシュエントリの前記誤り防止領域が前記キャッシュエントリの前記EDCを含むか、または前記ECCを含むかを示す誤りコードインジケータを前記キャッシュエントリの前記誤り防止領域に書き込むようにさらに構成される、請求項4に記載のプロセッサベースシステム。
【請求項７】
集積回路(IC)に統合された、請求項1に記載のプロセッサベースシステム。
【請求項８】
セットトップボックス、エンターテインメントユニット、ナビゲーションデバイス、通信デバイス、固定ロケーションデータユニット、モバイルロケーションデータユニット、モバイルフォン、セルラーフォン、スマートフォン、タブレット、ファブレット、サーバ、コンピュータ、ポータブルコンピュータ、デスクトップコンピュータ、携帯情報端末(PDA)、モニタ、コンピュータモニタ、テレビ、チューナ、ラジオ、衛星ラジオ、音楽プレーヤ、デジタル音楽プレーヤ、ポータブル音楽プレーヤ、デジタルビデオプレーヤ、ビデオプレーヤ、デジタルビデオディスク(DVD)プレーヤ、ポータブルデジタルビデオプレーヤ、および自動車からなる群から選択されたデバイスに統合された、請求項1に記載のプロセッサベースシステム。
【請求項９】
ダイナミックランダムアクセスメモリ(DRAM)キャッシュ管理回路を含むプロセッサベースシステムであって、前記DRAMキャッシュ管理回路は、
高帯域幅メモリの一部であるDRAMキャッシュの複数のキャッシュエントリのうちのキャッシュエントリのデータ記憶領域にキャッシュされるべきデータを書き込むための手段と、
前記キャッシュエントリの誤り防止領域に誤り訂正コード(ECC)を書き込むことなく、前記キャッシュエントリの前記誤り防止領域に前記キャッシュエントリのタグおよび誤り検出コード(EDC)を書き込むための手段と
を備える、プロセッサベースシステム。
【請求項１０】
ダイナミックランダムアクセスメモリ(DRAM)キャッシュにおけるDRAMキャッシュタグの空間効率的記憶を実現するための方法であって、
DRAMキャッシュ管理回路によって、高帯域幅メモリの一部であるDRAMキャッシュの複数のキャッシュエントリのうちのキャッシュエントリのデータ記憶領域にキャッシュされるべきデータを書き込むステップと、
前記キャッシュエントリの誤り防止領域に誤り訂正コード(ECC)を書き込むことなく、前記キャッシュエントリの前記誤り防止領域に前記キャッシュエントリのタグおよび誤り検出コード(EDC)を書き込むステップと
を含む方法。
【請求項１１】
前記DRAMキャッシュ管理回路は、ライトスルーモードで動作するように構成される、請求項10に記載の方法。
【請求項１２】
前記DRAMキャッシュの前記複数のキャッシュエントリのうちの前記キャッシュエントリを読み取るステップと、
前記キャッシュエントリの前記誤り防止領域における前記キャッシュエントリの前記EDCがデータ誤りを示すかどうかを判断するステップと、
前記キャッシュエントリの前記誤り防止領域における前記キャッシュエントリの前記EDCがデータ誤りを示すとの判断に応答して、システムメモリDRAMから前記キャッシュエントリに対応するメモリラインを読み取るステップと
をさらに含む、請求項11に記載の方法。
【請求項１３】
前記DRAMキャッシュ管理回路は、ライトバックモードで動作するように構成され、
前記方法は、
キャッシュされるべき前記データが変更されているかどうかを判断するステップと、
キャッシュされるべき前記データが変更されているとの判断に応答して、
前記DRAMキャッシュの前記複数のキャッシュエントリのうちの前記キャッシュエントリの前記データ記憶領域にキャッシュされるべき前記データを書き込むステップと、
前記キャッシュエントリのタグ記憶領域に前記キャッシュエントリの前記タグを書き込むステップと、
前記キャッシュエントリの前記誤り防止領域に前記キャッシュエントリのECCを書き込むステップと、
前記キャッシュエントリが変更されたデータを含むことを示すように、前記DRAMキャッシュ管理回路の複数のダーティインジケータのうちの前記キャッシュエントリに対応するダーティインジケータを設定するステップと、
キャッシュされるべき前記データが変更されていないとの判断に応答して、
前記キャッシュエントリが変更されていないデータを含むことを示すように、前記複数のダーティインジケータのうちの前記キャッシュエントリに対応する前記ダーティインジケータを設定するステップと
をさらに含み、
前記DRAMキャッシュの前記複数のキャッシュエントリのうちの前記キャッシュエントリの前記データ記憶領域にキャッシュされるべき前記データを書き込むステップ、および前記キャッシュエントリの前記誤り防止領域に前記キャッシュエントリの前記タグおよび前記EDCを書き込むステップは、キャッシュされるべき前記データが変更されていないとの判断にさらに応答したものである、請求項10に記載の方法。
【請求項１４】
前記DRAMキャッシュの前記複数のキャッシュエントリのうちの前記キャッシュエントリを読み取るステップと、
前記キャッシュエントリに対応する前記複数のダーティインジケータのうちの前記ダーティインジケータに基づいて、前記キャッシュエントリが変更されたデータを含むかどうかを判断するステップと、
前記キャッシュエントリが変更されたデータを含むとの判断に応答して、
前記キャッシュエントリの前記誤り防止領域における前記キャッシュエントリの前記ECCがデータ誤りを示すかどうかを判断するステップと、
前記キャッシュエントリの前記誤り防止領域における前記キャッシュエントリの前記ECCがデータ誤りを示すとの判断に応答して、
前記データ誤りが訂正可能であるかどうかを判断するステップと、
前記データ誤りが訂正可能であるとの判断に応答して、前記ECCに基づいて前記データ誤りを訂正するステップと、
前記データ誤りが訂正可能ではないとの判断に応答して、システムメモリDRAMから前記キャッシュエントリに対応するメモリラインを読み取るステップと、
前記キャッシュエントリが変更されたデータを含まないとの判断に応答して、
前記キャッシュエントリの前記誤り防止領域における前記キャッシュエントリの前記EDCがデータ誤りを示すかどうかを判断するステップと、
前記キャッシュエントリの前記誤り防止領域における前記キャッシュエントリの前記EDCがデータ誤りを示すとの判断に応答して、前記システムメモリDRAMから前記キャッシュエントリに対応する前記メモリラインを読み取るステップと
をさらに含む、請求項13に記載の方法。
【請求項１５】
前記キャッシュエントリの前記誤り防止領域に前記キャッシュエントリの前記ECCを書き込むステップは、リードソロモンコードを書き込むステップを含み、
前記方法は、前記キャッシュエントリの前記誤り防止領域が前記キャッシュエントリの前記EDCを含むか、または前記ECCを含むかを示す誤りコードインジケータを前記キャッシュエントリの前記誤り防止領域に書き込むステップをさらに含む、請求項13に記載の方法。
【請求項１６】
プロセッサによって実行されると、前記プロセッサに、
高帯域幅メモリの一部であるダイナミックランダムアクセスメモリ(DRAM)キャッシュの複数のキャッシュエントリのうちのキャッシュエントリのデータ記憶領域にキャッシュされるべきデータを書き込み、
前記キャッシュエントリの誤り防止領域に誤り訂正コード(ECC)を書き込むことなく、前記キャッシュエントリの前記誤り防止領域に前記キャッシュエントリのタグおよび誤り検出コード(EDC)を書き込む
ことを行わせるコンピュータ実行可能命令を記憶した非一時的コンピュータ可読記憶媒体。
【請求項１７】
前記プロセッサによって実行されると、前記プロセッサに、
前記DRAMキャッシュの前記複数のキャッシュエントリのうちの前記キャッシュエントリを読み取り、
前記キャッシュエントリの前記誤り防止領域における前記キャッシュエントリの前記EDCがデータ誤りを示すかどうかを判断し、
前記キャッシュエントリの前記誤り防止領域における前記キャッシュエントリの前記EDCがデータ誤りを示すとの判断に応答して、システムメモリDRAMから前記キャッシュエントリに対応するメモリラインを読み取る
ことをさらに行わせるコンピュータ実行可能命令を記憶した、請求項16に記載の非一時的コンピュータ可読記憶媒体。
【請求項１８】
前記プロセッサによって実行されると、前記プロセッサに、
キャッシュされるべき前記データが変更されているかどうかを判断し、
キャッシュされるべき前記データが変更されているとの判断に応答して、
前記DRAMキャッシュの前記複数のキャッシュエントリのうちの前記キャッシュエントリの前記データ記憶領域にキャッシュされるべき前記データを書き込み、
前記キャッシュエントリのタグ記憶領域に前記キャッシュエントリの前記タグを書き込み、
前記キャッシュエントリの前記誤り防止領域に前記キャッシュエントリのECCを書き込み、
前記キャッシュエントリが変更されたデータを含むことを示すように、複数のダーティインジケータのうちの前記キャッシュエントリに対応するダーティインジケータを設定し、
キャッシュされるべき前記データが変更されていないとの判断に応答して、
前記キャッシュエントリが変更されていないデータを含むことを示すように、前記複数のダーティインジケータのうちの前記キャッシュエントリに対応する前記ダーティインジケータを設定する
ことをさらに行わせるコンピュータ実行可能命令を記憶し、
前記DRAMキャッシュの前記複数のキャッシュエントリのうちの前記キャッシュエントリの前記データ記憶領域にキャッシュされるべき前記データを書き込むこと、および前記キャッシュエントリの前記誤り防止領域に前記キャッシュエントリの前記タグおよび前記EDCを書き込むことは、キャッシュされるべき前記データが変更されていないとの判断にさらに応答したものである、請求項16に記載の非一時的コンピュータ可読記憶媒体。
【請求項１９】
前記プロセッサによって実行されると、前記プロセッサに、
前記DRAMキャッシュの前記複数のキャッシュエントリのうちの前記キャッシュエントリを読み取り、
前記キャッシュエントリに対応する前記複数のダーティインジケータのうちの前記ダーティインジケータに基づいて、前記キャッシュエントリが変更されたデータを含むかどうかを判断し、
前記キャッシュエントリが変更されたデータを含むとの判断に応答して、
前記キャッシュエントリの前記誤り防止領域における前記キャッシュエントリの前記ECCがデータ誤りを示すかどうかを判断し、
前記キャッシュエントリの前記誤り防止領域における前記キャッシュエントリの前記ECCがデータ誤りを示すとの判断に応答して、
前記データ誤りが訂正可能であるかどうかを判断し、
前記データ誤りが訂正可能であるとの判断に応答して、前記ECCに基づいて前記データ誤りを訂正し、
前記データ誤りが訂正可能ではないとの判断に応答して、システムメモリDRAMから前記キャッシュエントリに対応するメモリラインを読み取り、
前記キャッシュエントリが変更されたデータを含まないとの判断に応答して、
前記キャッシュエントリの前記誤り防止領域における前記キャッシュエントリの前記EDCがデータ誤りを示すかどうかを判断し、
前記キャッシュエントリの前記誤り防止領域における前記キャッシュエントリの前記EDCがデータ誤りを示すとの判断に応答して、前記システムメモリDRAMから前記キャッシュエントリに対応する前記メモリラインを読み取る
ことをさらに行わせるコンピュータ実行可能命令を記憶した、請求項18に記載の非一時的コンピュータ可読記憶媒体。
【請求項２０】
前記プロセッサによって実行されると、前記プロセッサに、
リードソロモンコードを書き込むことによって、前記キャッシュエントリの前記誤り防止領域に前記キャッシュエントリの前記ECCを書き込み、
前記キャッシュエントリの前記誤り防止領域が前記キャッシュエントリの前記EDCを含むか、または前記ECCを含むかを示す誤りコードインジケータを前記キャッシュエントリの前記誤り防止領域に書き込む
ことをさらに行わせるコンピュータ実行可能命令を記憶した、請求項18に記載の非一時的コンピュータ可読記憶媒体。
【国際調査報告】
2019513264.tif 000011
2019513264.tif 000012