FPGA開発日記

カテゴリ別記事インデックス https://msyksphinz.github.io/github_pages , English Version https://fpgadevdiary.hatenadiary.com/

Data Cache Prefetching Using a Global History Bufferの論文を読む (2. 性能評価)

https://ieeexplore.ieee.org/document/1410068

次に性能評価について:

以下の表に示すように、SPEC2000のベンチマーク・スイートのサブセットを使用した。

SPECfp SPECint
ammp mcf
art tolf
wupwise vpr
swim praser
lucas gap
mgrid bzip2
applu
galgel
apsi

シミュレータはSimpleScalar3.0を使用し、最初の10億命令をスキップした後に次の10億命令のデータを収集した。シミュレータの構成は以下に示す。

Issue Width 4 instructions
Load/Store Queue 64 entries
RUUsize 128 entries
Level 1 D-Cache 16-Kbyte, 2-way set-associative
Level 1 I-Cache 16-Kbyte, 2-way set-associative
Level 2 cache 512-Kbyte, 4-way set-associative
Memory latency 140 cycles

性能評価では以下の方式を評価した:

  • G/DC方式(従来のディスタンス・プリフェッチとGHBの両方
    • グローバル・アドレスを使用してインデックスし、テーブルに差分を保存する
    • プリフェッチ度について、幅と深さの2つのコンポーネントを使用する
      • 深さ(d):長さdの一連のプリフェッチをトリガする
  • PC/CSおよびGHB PC/DC
    • PCをインデックスとし、定数ストライドをテーブルに保存する

テーブルの構成は以下のようになっている:

Prefetching method Table configuration Size (Kbytes)
Conventional distance prefetching (G/DC) 512 table entries 18
GHB G/DC 512 IT entries \times 512 GHB entries 8
Conventional stride prefetching (PC/CS) 256 table entries 6
GHB PC/DC 256 IT entries \times 256 GHB entries 4

評価結果

図3は、GHBベースのプリフェッチの方法を、従来のテーブルベースの方式と比較した性能向上を示している。図3aは、プリフェッチ度の範囲での平均性能向上を示し、図3bは、命令ごとのメモリトラフィックの算術平均増加を示している。

  • G/DC方式:従来のディスタンス方式は、G/DCの全体的な潜在能力を出し切れていない。深さのプリフェッチは、幅のプリフェッチよりも約10%程優れている。さらにハイブリッドプリフェッチは10%優れている。
  • しかし、ハイブリッドプリフェッチはメモリトラフィックが増加する。約50%程度メモリトラフィックが増加しており、適切な深さと幅のコンポーネントを選択する必要がある。
図は本論文より引用

古いテーブルデータの振る舞いを解析するために、ディスタンス・プリフェッチの相関テーブルの各エントリの年齢を分析した。

  • 年齢手は、エントリが最後に触れられてからのサイクル数
  • 年齢グループを作成する:第1のグループは、16サイクル未満、第2のグループは16~256サイクル、とする
  • 各年齢グループから生成されたプリフェッチの数を監視し、プリフェッチが生成されると、シミュレータが各年齢グループからの成功したプリフェッチの数を監視し、のちにキャッシュヒットとなるものを見つける。

図4が示すのは、年齢が4Kサイクル未満のエントリによって生成されたプリフェッチは16K年齢サイクル以上のエントリによって生成されたプリフェッチよりも10倍性格に生成できていることが分かる。

全体的に、PCインデックス付きの方法はG/DC方式よりも優れた性能を持ち、帯域幅を削減することができる。

  • 従来のストライド・プリフェッチよりも7%高い性能を示し、メモリ・トラフィックはほぼ同一である。
  • 従来のストライド・プリフェッチは、テーブルエントリは特定のロード命令に関連付けられている。
  • GHBは G/DCはディスタンスプリフェッチと比較して20%のIPC向上を示し、メモリトラフィックを90%削減することができる。
  • GHB PC/DCは、ストライドプリフェッチと比較して7%のIPC向上を示し、同じだけのメモリトラフィックを生成する。