マイクロアーキテクチャに関する論文を読んでいる。今回はIBM POWER7に関する論文。
LSUの続き。
アドレス変換
- EA (Effective Address) : 有効アドレス。64-bit
- RA (Real Address) : 実アドレス : 46-bit
- 第1レベル変換
- EAからRAへ変換する。
- D-ERATキャッシュ : 64エントリx2
- IERATキャッシュ : 64エントリ
- ERATにキャッシュミスが発生した場合、第2レベルの変換が呼び出され、変換が生成される。
- SLBキャッシュ : 32エントリ
- TLB : 512エントリ
L1Dキャッシュの構成
- L1Dキャッシュの構成 32KB 8ウェイ セットアソシアティブ バンク型
- キャッシュラインサイズ : 128バイト (1024-bit)
- 32バイトの4セクタ
- L2キャッシュからの32バイトサイズの専用リロードインタフェースが入っている。
- 1クロック毎に32バイトのデータを供給可能
- 2リードポート (ロード命令用)
- 1ライトポート (ストア命令用 / キャッシュラインのリロード用)
- 書き込みは読み込みよりも遊園度が高い
- データバイト毎に編成された4つの物理マクロから構成されている
- EAビットを基準に16個のバンクに分割されている。
- 合計64バンク
- 書き込みと同じバンクに読み込まない限り、同じサイクルで1回の書き込みと2回の読み出しが可能
- ライトスルー設計
- 書き込みはすべてL2キャッシュに送られる。L1Dキャッシュの掃き出しは必要ない
- L1DキャッシュはEAビットでインデックスされる
- バイナリツリーのLRU置き換えポリシで置き換えられる
- 1セットあたり4kBととなる。
- キャッシュラインサイズ : 128バイト (1024-bit)
- ロード命令の実行
- 生成されたEA (52:56)がSet Predict Arrayのインデックスとして使用される
- EA (33:51)はハッシュ化され、8つのエントリの集合の内容と比較される。
- ハッシュの一致を確認した後、L1Dキャッシュから実アドレスを取得して、比較を行って始めてキャッシュヒットが確定する。
ロードミスハンドリング
- L1Dキャッシュミスが発生したロード命令は、L2キャッシュへのキャッシュライン再ロード要求を行う。
- この再発行キューのエントリを開放する
- L1Dキャッシュへのキャッシュラインのロードを追跡するために、LMQにエントリが作成させる。
- L2キャッシュからリロードデータが戻ってくると、LSUパイプライン上でより高い優先度で再実行される。
- LMQは、最大2つのロード命令を与えられたLMQエントリとキャッシュラインの再ロード要求に関連できるロードマージをサポートしている。