データ値の局所性を利用した ライン共有キャッシュの提案
DESCRIPTION
データ値の局所性を利用した ライン共有キャッシュの提案. 九州大学 大学院 ○ 岡 慶太郎 福本 尚人 井上 弘士 村上 和彰. キャッシュメモリの大容量化. マルチコア・プロセッサが主流 メモリウォール問題の深刻化 メモリアクセス要求増加 IO ピンの制限 →大容量の LL(Last Level) キャッシュを搭載. 8MB の L3 キャッシュを搭載. Core i7 のチップ 写真 *. * http ://www.atmarkit.co.jp/fsys/zunouhoudan/102zunou/corei7.html. - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: データ値の局所性を利用した ライン共有キャッシュの提案](https://reader035.vdocuments.mx/reader035/viewer/2022070413/56814d62550346895dbab003/html5/thumbnails/1.jpg)
データ値の局所性を利用したライン共有キャッシュの提案
九州大学大学院 ○岡 慶太郎 福本 尚人 井上 弘士 村上 和彰
1
![Page 2: データ値の局所性を利用した ライン共有キャッシュの提案](https://reader035.vdocuments.mx/reader035/viewer/2022070413/56814d62550346895dbab003/html5/thumbnails/2.jpg)
キャッシュメモリの大容量化
• マルチコア・プロセッサが主流• メモリウォール問題の深刻化
– メモリアクセス要求増加– IOピンの制限
→大容量の LL(Last Level)キャッシュを搭載
2* http://www.atmarkit.co.jp/fsys/zunouhoudan/102zunou/corei7.html
Core i7のチップ写真*
8MBのL3キャッシュを
搭載
![Page 3: データ値の局所性を利用した ライン共有キャッシュの提案](https://reader035.vdocuments.mx/reader035/viewer/2022070413/56814d62550346895dbab003/html5/thumbnails/3.jpg)
キャッシュメモリの大容量化の問題点
• リーク消費電力増加– 容量 1MB→8MBで 8倍 *
• アクセスレイテンシ増加– 容量 1MB→8MBで 2.1倍 *
3
大幅な面積増加を伴わず,オフチップメモリアクセス回数を削減する手法
が必要
* CACTIによりブロックサイズ 64B,連想度 8で実験した結果
![Page 4: データ値の局所性を利用した ライン共有キャッシュの提案](https://reader035.vdocuments.mx/reader035/viewer/2022070413/56814d62550346895dbab003/html5/thumbnails/4.jpg)
目次
• 研究背景• 着目点:データ値の局所性• ライン共有キャッシュ• 評価–ミス率,面積, L1ミスペナルティ
• まとめ• 今後の課題
4
![Page 5: データ値の局所性を利用した ライン共有キャッシュの提案](https://reader035.vdocuments.mx/reader035/viewer/2022070413/56814d62550346895dbab003/html5/thumbnails/5.jpg)
• 従来型キャッシュメモリのキャッシング方法– 参照アドレスに基づいてブロックの格納場所を決定
• データ値の局所性が高いデータ値の局所性:メモリアドレスが異なる多数のデータが同一の値を有する性質
• 仮説– キャッシュ内に同一データ値を有するブロックが多数存在
タグ
ライン
001000
010011
LLキャッシュメモリインデック
ス
100101110111
従来型キャッシュメモリは容量を無駄遣い!?
5
ブロックの格納場所
書込みブロック A
インデックス
タグ0100 001
参照アドレス
0100 A ブロック:キャッシュのレベル間で取り交わすデータ
B
データ値:ブロックのデータの値
![Page 6: データ値の局所性を利用した ライン共有キャッシュの提案](https://reader035.vdocuments.mx/reader035/viewer/2022070413/56814d62550346895dbab003/html5/thumbnails/6.jpg)
タグ
B
ライン
001000
010011
LLキャッシュメモリインデック
ス
100101110111
従来型キャッシュメモリは容量を無駄遣い!?
6
ブロックの格納場所
書込みブロック A
インデックス
タグ0000 101
参照アドレス
0100 A
データ値:ブロックのデータの値
0000 A
• 従来型キャッシュメモリのキャッシング方法– 参照アドレスに基づいてブロックの格納場所を決定
• データ値の局所性が高いデータ値の局所性:メモリアドレスが異なる多数のデータが同一の値を有する性質
• 仮説– キャッシュ内に同一データ値を有するブロックが多数存在
ブロック:キャッシュのレベル間で取り交わすデータ
![Page 7: データ値の局所性を利用した ライン共有キャッシュの提案](https://reader035.vdocuments.mx/reader035/viewer/2022070413/56814d62550346895dbab003/html5/thumbnails/7.jpg)
従来型キャッシュメモリにおけるデータ値の局所性分析
多くのプログラムでキャッシュメモリ内のデータ値の局所性が高い
7
n:ブロック置き換え回数
平均圧縮率 =
キャッシュメモリ内のデータ値の局所性を平均圧縮率を用いて分析
Cholesky
BarnesFF
TFM
M
LUContig
LUNonco
ntig
OceanContig
WaterN
S
WaterSp
atial
average
00.20.40.60.8
64B 32B 16B 8B
平均圧縮率
キャッシュメモリ
AC
BA
B
圧縮率 =
キャッシュ容量 :1MB
ブロックサイズ
平均圧縮率が低い程,キャッシュメモリ内のデータ値の局所性が高い
![Page 8: データ値の局所性を利用した ライン共有キャッシュの提案](https://reader035.vdocuments.mx/reader035/viewer/2022070413/56814d62550346895dbab003/html5/thumbnails/8.jpg)
研究概要
• 着目点–キャッシュメモリ内に同一値を有するデータが多く存在
• 研究目的– LLキャッシュメモリの面積を大きく増加することなくLLキャッシュミス率を削減
• 提案手法–同一データ値を有するラインを共有し,容量を効率的に利用
–同容量の従来型キャッシュと比較し,最大でミス率を 18ポイント削減可能
8
![Page 9: データ値の局所性を利用した ライン共有キャッシュの提案](https://reader035.vdocuments.mx/reader035/viewer/2022070413/56814d62550346895dbab003/html5/thumbnails/9.jpg)
目次
• 研究背景• 着目点:データ値の局所性• ライン共有キャッシュ• 評価–ミス率,面積, L1ミスペナルティ
• まとめ• 今後の課題
9
![Page 10: データ値の局所性を利用した ライン共有キャッシュの提案](https://reader035.vdocuments.mx/reader035/viewer/2022070413/56814d62550346895dbab003/html5/thumbnails/10.jpg)
ライン共有キャッシュの概念LSC(Line Sharing Cache)
従来型キャッシュに比べ,より多くのデータ値をキャッシュメモリに格納可能
10
従来型キャッシュ
タグアレイ
データアレイ
…
タグアレイ
…A
A
A
データアレイ
…
A
タグのエントリ数増
加
参照アドレスに基づきブロックを格納するラインを決定
同一データ値を有するブロックを格納するラインを 1箇所に限定
ライン共有キャッシュ
![Page 11: データ値の局所性を利用した ライン共有キャッシュの提案](https://reader035.vdocuments.mx/reader035/viewer/2022070413/56814d62550346895dbab003/html5/thumbnails/11.jpg)
解決すべき課題その 1~如何にしてタグとラインを紐付けるか ?~
11
?
?
データアレイ
11111
ライン
0100
0110
…
タグ
タグアレイ
各タグは対応するラインを特定できない
• タグに対応するラインを特定する必要あり• 問題点:各タグに対応するラインを特定不可能• 解決策:行番号によるラインの区別と各タグに行ポインタ
配置
![Page 12: データ値の局所性を利用した ライン共有キャッシュの提案](https://reader035.vdocuments.mx/reader035/viewer/2022070413/56814d62550346895dbab003/html5/thumbnails/12.jpg)
解決すべき課題その 1~如何にしてタグとラインを紐付けるか ?~
12
データアレイ
11111
ライン000
001010011100101110111
行番号
0100
0110
…
タグ
タグアレイ
?
?
• タグに対応するラインを特定する必要あり• 問題点:各タグに対応するラインを特定不可能• 解決策:行番号によるラインの区別と各タグに行ポインタ
配置
各タグは対応するラインを特定できない
![Page 13: データ値の局所性を利用した ライン共有キャッシュの提案](https://reader035.vdocuments.mx/reader035/viewer/2022070413/56814d62550346895dbab003/html5/thumbnails/13.jpg)
解決すべき課題その 1~如何にしてタグとラインを紐付けるか ?~
• タグに対応するラインを特定する必要あり• 問題点:各タグに対応するラインを特定不可能• 解決策:行番号によるラインの区別と各タグに行ポインタ配置
13
タグ・ポインタアレイ
0100
0110
…
タグ
…
行ポインタ
100
100
データアレイ
11111
ライン000
001010011100101110111
行番号タグアレイ
![Page 14: データ値の局所性を利用した ライン共有キャッシュの提案](https://reader035.vdocuments.mx/reader035/viewer/2022070413/56814d62550346895dbab003/html5/thumbnails/14.jpg)
解決すべき課題その 2~如何にして効率の良いデータ検索を実現するか ?~
• 書込み動作:データアレイの全ラインを探索する必要あり
• 問題点:検索コストが大• 解決策:データ値を用いたハッシング
タグ・ポインタアレイ
000001010011100101110111
データアレイ行番号
11111
0100
0110
…
タグインデックス
111
…
行ポインタ0000
000100100011
111111101101110010111001書込みブロッ
ク 11111
インデックス
タグ0100 0001
参照アドレス
=一致
書き込みデー
タ値の検索
ライン
14
![Page 15: データ値の局所性を利用した ライン共有キャッシュの提案](https://reader035.vdocuments.mx/reader035/viewer/2022070413/56814d62550346895dbab003/html5/thumbnails/15.jpg)
解決すべき課題その 2~如何にして効率の良いデータ検索を実現するか ?~
• 書込み動作:データアレイの全ラインを探索する必要あり
• 問題点:検索コストが大• 解決策:データ値を用いたハッシング
15
タグ・ポインタアレイ
0100
0110
…
タグインデックス
111
…
行ポインタ0000
000100100011
111111101101110010111001書込みブロッ
ク 11111
インデックス
タグ0100 0001
参照アドレス
行番号とデータ値の下位 3ビットを対応付けてブロックを配置
000001010011100101110111
データアレイ行番号
11111
書き込みデー
タ値の検索
ライン
11111
行番号のサイズ
![Page 16: データ値の局所性を利用した ライン共有キャッシュの提案](https://reader035.vdocuments.mx/reader035/viewer/2022070413/56814d62550346895dbab003/html5/thumbnails/16.jpg)
解決すべき課題その 2~如何にして効率の良いデータ検索を実現するか ?~
• 書込み動作:データアレイの全ラインを探索する必要あり
• 問題点:検索コストが大• 解決策:データ値を用いたハッシング
16
タグ・ポインタアレイ
0100
0110
…
タグインデックス
111
…
行ポインタ0000
000100100011
111111101101110010111001書込みブロッ
ク 11111
インデックス
タグ0100 0001
参照アドレス
書込みデータ値の下位 3ビット
に対応する行番号にアクセス
=一致
000001010011100101110111
データアレイ行番号
書き込みデー
タ値の検索
ライン
11111
書込みデータ値がラインに存在
(データ値ヒット )
行番号のサイズ
![Page 17: データ値の局所性を利用した ライン共有キャッシュの提案](https://reader035.vdocuments.mx/reader035/viewer/2022070413/56814d62550346895dbab003/html5/thumbnails/17.jpg)
解決すべき課題その 2~如何にして効率の良いデータ検索を実現するか ?~
• 書込み動作:データアレイの全ラインを探索する必要あり
• 問題点:検索コストが大• 解決策:データ値を用いたハッシング
17
タグ・ポインタアレイ
0100
0110
…
タグインデックス
111
…
行ポインタ0000
000100100011
111111101101110010111001書込みブロッ
ク 11111
インデックス
タグ0100 0001
参照アドレス111
000001010011100101110111
データアレイライン
11111
行番号を行ポインタに書込み
書込みデータ値がラインに存在
(データ値ヒット )
書込みデータ値の下位 3ビット
に対応する行番号にアクセス
行番号のサイズ
![Page 18: データ値の局所性を利用した ライン共有キャッシュの提案](https://reader035.vdocuments.mx/reader035/viewer/2022070413/56814d62550346895dbab003/html5/thumbnails/18.jpg)
• データアレイ:各行番号に 1ラインを対応付け• 問題点:ブロックの追出しが頻発• 解決策:データアレイの水平分割と列ポインタの導入
タグ・ポインタアレイ
0100
0110…
タグインデックス
111
…
行ポインタ0000
000100100011
111111101101110010111001
データアレイ
000001010011100101110111
ライン
解決すべき課題その 3~如何にしてデータアレイでの書込み競合を回避する
か ?~
書込みブロック 00111
indextag0100 0001
参照アドレス
=一致
行番号
11111
18
![Page 19: データ値の局所性を利用した ライン共有キャッシュの提案](https://reader035.vdocuments.mx/reader035/viewer/2022070413/56814d62550346895dbab003/html5/thumbnails/19.jpg)
• データアレイ:各行番号に 1ラインを対応付け• 問題点:ブロックの追出しが頻発• 解決策:データアレイの水平分割と列ポインタの導入
タグ・ポインタアレイ
0100
0110…
タグインデックス
111
…
行ポインタ0000
000100100011
111111101101110010111001
解決すべき課題その 3~如何にしてデータアレイでの書込み競合を回避する
か ?~
書込みブロック 00111
indextag0100 0001
参照アドレス
書込みデータ値の下位 3ビット
に対応する行番号にアクセス
データアレイ
000001010011100101110111
ライン
書込みデータ値がラインに非存在
(データ値ミス )
ブロックの追出しが必要
行番号
11111
19
行番号のサイズ
![Page 20: データ値の局所性を利用した ライン共有キャッシュの提案](https://reader035.vdocuments.mx/reader035/viewer/2022070413/56814d62550346895dbab003/html5/thumbnails/20.jpg)
• データアレイ:各行番号に 1ラインを対応付け• 問題点:ブロックの追出しが頻発• 解決策:データアレイの水平分割と列ポインタの導入
解決すべき課題その 3~如何にしてデータアレイでの書込み競合を回避する
か ?~
書込みブロック 00111
indextag0100 0001
参照アドレス
データアレイ
000001010011100101110111
ライン
行番号
11111
タグ・ポインタアレイ
0100
0110…
タグインデックス
111
…
行ポインタ0000
000100100011
111111101101110010111001
20
![Page 21: データ値の局所性を利用した ライン共有キャッシュの提案](https://reader035.vdocuments.mx/reader035/viewer/2022070413/56814d62550346895dbab003/html5/thumbnails/21.jpg)
解決すべき課題その 3~如何にしてデータアレイでの書込み競合を回避する
か ?~• データアレイ:各行番号に 1ラインを対応付け• 問題点:ブロックの追出しが頻発• 解決策:データアレイの水平分割と列ポインタの導入
書込みブロック 00111
indextag0100 0001
参照アドレス 00011011
行番号
データアレイ
11111
ライン
ライン
タグ・ポインタアレイ
0100
0110…
タグインデックス
111
…
行ポインタ0000
000100100011
111111101101110010111001
各行番号に複数のラインを対応付け
21
![Page 22: データ値の局所性を利用した ライン共有キャッシュの提案](https://reader035.vdocuments.mx/reader035/viewer/2022070413/56814d62550346895dbab003/html5/thumbnails/22.jpg)
• データアレイ:各行番号に 1ラインを対応付け• 問題点:ブロックの追出しが頻発• 解決策:データアレイの水平分割と列ポインタの導入
タグ・ポインタアレイ
0100
0110…
タグインデックス
111
…
行ポインタ0000
000100100011
111111101101110010111001
解決すべき課題その 3~如何にしてデータアレイでの書込み競合を回避する
か ?~
書込みブロック 00111
indextag0100 0001
参照アドレス
データアレイ
00011011 11111
ライン
行番号
列番号0
列番号1
ライン
行番号,列番号によりラインを区別
22
![Page 23: データ値の局所性を利用した ライン共有キャッシュの提案](https://reader035.vdocuments.mx/reader035/viewer/2022070413/56814d62550346895dbab003/html5/thumbnails/23.jpg)
解決すべき課題その 3~如何にしてデータアレイでの書込み競合を回避する
か ?~• データアレイ:各行番号に 1ラインを対応付け• 問題点:ブロックの追出しが頻発• 解決策:データアレイの水平分割と列ポインタの導入
書込みブロック 00111
indextag0100 0001
参照アドレス
タグ・ポインタアレイ
データアレイ
00011011 11111
ライン
行番号
列番号0
列番号1
…
1
列ポインタ
ライン
行ポインタ
タグインデックス 0000
000100100011
111111101101110010111001
0100
0110…
11
…
列番号を格納するために
列ポインタの導入23
![Page 24: データ値の局所性を利用した ライン共有キャッシュの提案](https://reader035.vdocuments.mx/reader035/viewer/2022070413/56814d62550346895dbab003/html5/thumbnails/24.jpg)
0100
0110…
111
…
インデックス 0000
000100100011
111111101101110010111001 一致
解決すべき課題その 3~如何にしてデータアレイでの書込み競合を回避する
か ?~• データアレイ:各行番号に 1ラインを対応付け• 問題点:ブロックの追出しが頻発• 解決策:データアレイの水平分割と列ポインタの導入
書込みブロック 00111
indextag0100 0001
参照アドレス
タグ・ポインタアレイ
データアレイ
00011011 11111
ライン
行番号
列番号0
列番号1
列ポインタ
=
書込みデータ値の下位 2ビット
に対応する行番号にアクセス
00111
ブロックを追い出すことなく書込み
…ライン
タグ 行ポインタ
データ値ミス
24
行番号のサイズ
![Page 25: データ値の局所性を利用した ライン共有キャッシュの提案](https://reader035.vdocuments.mx/reader035/viewer/2022070413/56814d62550346895dbab003/html5/thumbnails/25.jpg)
読み出し動作読出し要求発行後の動作1. インデックスアクセス2. タグ比較3. ポインタ読出し4. ブロック読出し
indextag0100 0001
参照アドレス
タグ・ポインタアレイ
データアレイ
00011011
11101
ライン
行番号
列番号0
列番号1
0100
0110…
タグインデックス
01
11
…
行ポインタ0000
000100100011
111111101101110010111001
列ポインタ
0
1
…ライン
25
![Page 26: データ値の局所性を利用した ライン共有キャッシュの提案](https://reader035.vdocuments.mx/reader035/viewer/2022070413/56814d62550346895dbab003/html5/thumbnails/26.jpg)
読み出し動作読出し要求発行後の動作1. インデックスアクセス2. タグ比較3. ポインタ読出し4. ブロック読出し
indextag0100 0001
参照アドレス
タグ・ポインタアレイ
データアレイ
00011011
11101
ライン
行番号
列番号0
列番号1
0100
0110…
タグインデックス
01
11
…
行ポインタ0000
000100100011
111111101101110010111001
列ポインタ
0
1
…
=一致
ライン
26
![Page 27: データ値の局所性を利用した ライン共有キャッシュの提案](https://reader035.vdocuments.mx/reader035/viewer/2022070413/56814d62550346895dbab003/html5/thumbnails/27.jpg)
読み出し動作
indextag0100 0001
参照アドレス
タグ・ポインタアレイ
データアレイ
00011011
11101
ライン
行番号
列番号0
列番号1
0100
0110…
タグインデックス
01
11
…
行ポインタ0000
000100100011
111111101101110010111001
列ポインタ
0
1
…
同時に動作可能
01 0
ライン
読出し要求発行後の動作1. インデックスアクセス2. タグ比較3. ポインタ読出し4. ブロック読出し
27
![Page 28: データ値の局所性を利用した ライン共有キャッシュの提案](https://reader035.vdocuments.mx/reader035/viewer/2022070413/56814d62550346895dbab003/html5/thumbnails/28.jpg)
読み出し動作
indextag0100 0001
参照アドレス
タグ・ポインタアレイ
データアレイ
00011011
11101
ライン
行番号
列番号0
列番号1
0100
0110…
タグインデックス
01
11
…
行ポインタ0000
000100100011
111111101101110010111001
列ポインタ
0
1
…
同時に動作可能
01 0 11101
ライン
読出し要求発行後の動作1. インデックスアクセス2. タグ比較3. ポインタ読出し4. ブロック読出し
28
![Page 29: データ値の局所性を利用した ライン共有キャッシュの提案](https://reader035.vdocuments.mx/reader035/viewer/2022070413/56814d62550346895dbab003/html5/thumbnails/29.jpg)
従来型キャッシュ VSライン共有キャッシュ
29
LSC の従来型キャッシュに対す
る違い理由
ミス率 減少 データアレイ容量を有効利用
読出しレイテンシ
変化なしタグとポインタを同時に読み出し
書込みレイテンシ
増加• 書込みデータ値の探索• 追出しの動作が複雑化
データアレイに対する書込み回数
減少データ値ヒットの場合データアレイに対する書込みを行わない
![Page 30: データ値の局所性を利用した ライン共有キャッシュの提案](https://reader035.vdocuments.mx/reader035/viewer/2022070413/56814d62550346895dbab003/html5/thumbnails/30.jpg)
目次
• 研究背景• データ値の局所性• ライン共有キャッシュ• 評価–ミス率,面積, L1ミスペナルティ
• まとめ• 今後の課題
30
![Page 31: データ値の局所性を利用した ライン共有キャッシュの提案](https://reader035.vdocuments.mx/reader035/viewer/2022070413/56814d62550346895dbab003/html5/thumbnails/31.jpg)
評価指標と求め方• 面積
– 実装に必要な SRAMビット数で評価• L1ミスペナルティ
– モデルにより評価• L2アクセスレインテンシ→キャッシュメモリシミュレータCACTI
• キャッシュミス率– 従来型キャッシュのミス率と平均圧縮率からの見積もりにより評価
• 従来型キャッシュのミス率→マルチコアシミュレータM5
31
LSCのミス率の評価方法
splash2M5によるシミュレーショ
ン
L2アクセス
トレース
容量平均圧縮率
容量
ミス率
従来型キャッシュの L2ミス率
平均圧縮率
LSCのミス率に換算
ベンチマーク・プログラム
![Page 32: データ値の局所性を利用した ライン共有キャッシュの提案](https://reader035.vdocuments.mx/reader035/viewer/2022070413/56814d62550346895dbab003/html5/thumbnails/32.jpg)
L2キャッシュサイズ
L2キャッシュミ
ス率評価方法
• 面積:ミス率を従来型キャッシュ 8MBにおける値に固定• ミス率:データアレイ容量を 1MBに固定• L1ミスペナルティ:データアレイ容量を 1MBに固定
32
8MBLSCの容量
必要ビット数
L2キャッシュミ
ス率
従来型キャッシュのミス率
LSCのミス率
面積の比較 ミス率および L1ミスペナルティの比較
コア数 8
L1 キャッシュ
サイズ: 32KB, 連想度 :2, ブロックサイズ :64B
L2 キャッシュ
連想度: 8 ブロックサイズ :64B
M5の評価環境
データメモリ :1MB
従来型キャッシュ
LSC
従来型キャッシュ
LSC
データメモリ :1MB
![Page 33: データ値の局所性を利用した ライン共有キャッシュの提案](https://reader035.vdocuments.mx/reader035/viewer/2022070413/56814d62550346895dbab003/html5/thumbnails/33.jpg)
base LSC base LSC base LSC base LSC base LSC base LSCCholesky Barnes FFT FMM LUCon OceanCon
02468
1012
データアレイ容量 ポインタアレイ容量
ベンチマーク・プログラム
必要メモリ容量
[MB]
キャッシュミス率一定とした場合の面積削減効果
33圧縮率が低い程 ,面積を大幅に削減
52%面積削減
ブロックサイズ 64B,従来型キャッシュ容量 8MB
0.21 0.69 0.43 0.48 0.86 0.55圧縮率
![Page 34: データ値の局所性を利用した ライン共有キャッシュの提案](https://reader035.vdocuments.mx/reader035/viewer/2022070413/56814d62550346895dbab003/html5/thumbnails/34.jpg)
データアレイ容量を一定とした場合のミス率削減効果
すべてのプログラムでミス率を削減
Cholesky
BarnesFF
TFM
MLU
Con
LUNonco
n
OceanCon
OceanNonco
n
WaterN
S
WaterSp
atialRadix
Raytrace
0
0.2
0.4
0.6
0.8
1base LSC
ベンチマーク・プログラム
キャッシュミス率
18ポイント削減
ブロックサイズ 64B,データアレイ容量 1MB
34
圧縮率0.21
ミス率を大幅に
削減できない
容量を増加するとミス率がすぐに飽和
0
0.2
0.4
0.6
0.8
L2キャッシュ容量 [MB]
L2キャッシュミス率
1 32168
容量を増加した場合,ミス率の減少幅小
![Page 35: データ値の局所性を利用した ライン共有キャッシュの提案](https://reader035.vdocuments.mx/reader035/viewer/2022070413/56814d62550346895dbab003/html5/thumbnails/35.jpg)
データアレイ容量を一定とした場合のミス率削減効果
すべてのプログラムでミス率を削減
Cholesky
BarnesFF
TFM
MLU
Con
LUNonco
n
OceanCon
OceanNonco
n
WaterN
S
WaterSp
atialRadix
Raytrace
0
0.2
0.4
0.6
0.8
1base LSC
ベンチマーク・プログラム
キャッシュミス率
ブロックサイズ 64B,データアレイ容量 1MB
35
圧縮率0.55
ミス率を 18ポイント削減
00.10.20.30.40.50.60.7
L2キャッシュ容量 [MB]
L2キャッシュミス率
容量を増加する場合,ミス率の減少幅大
1 32168
![Page 36: データ値の局所性を利用した ライン共有キャッシュの提案](https://reader035.vdocuments.mx/reader035/viewer/2022070413/56814d62550346895dbab003/html5/thumbnails/36.jpg)
データアレイ容量一定とした場合のL1ミスペナルティ削減効果
00.20.40.60.8
11.2
ベンチマーク・プログラム
L1ミスペナルティ比
アクセス時間を考慮した場合でもL1ミスペナルティを大幅に削減
従来型キャッシュの L1ミスペナルティで正規化L1ミスペナル
ティ 30%削減
ブロックサイズ 64B,データアレイ容量 1MB
36
![Page 37: データ値の局所性を利用した ライン共有キャッシュの提案](https://reader035.vdocuments.mx/reader035/viewer/2022070413/56814d62550346895dbab003/html5/thumbnails/37.jpg)
まとめ
• データ値の局所性を利用したライン共有キャッシュを提案–ミス率一定条件において• 面積:最大 52%削減
–容量一定条件において• ミス率:最大 18ポイント削減• L1ミスペナルティ:最大 30%削減
• ライン共有キャッシュの有効性を確認
37
![Page 38: データ値の局所性を利用した ライン共有キャッシュの提案](https://reader035.vdocuments.mx/reader035/viewer/2022070413/56814d62550346895dbab003/html5/thumbnails/38.jpg)
今後の課題
• ライン共有キャッシュの詳細な評価–キャッシュミス率–アクセスレイテンシ–アクセスあたりの消費電力
• ライン共有キャッシュの適用範囲を拡張– LSCはデータアレイへの書込み回数を削減→不揮発性メモリに利用
• 既存研究との比較
38
![Page 39: データ値の局所性を利用した ライン共有キャッシュの提案](https://reader035.vdocuments.mx/reader035/viewer/2022070413/56814d62550346895dbab003/html5/thumbnails/39.jpg)
ご清聴ありがとうございました
39
![Page 40: データ値の局所性を利用した ライン共有キャッシュの提案](https://reader035.vdocuments.mx/reader035/viewer/2022070413/56814d62550346895dbab003/html5/thumbnails/40.jpg)
バックアップスライド
40
![Page 41: データ値の局所性を利用した ライン共有キャッシュの提案](https://reader035.vdocuments.mx/reader035/viewer/2022070413/56814d62550346895dbab003/html5/thumbnails/41.jpg)
既存研究Frequent Value Compression in Data Cache• 目的– L1キャッシュの消費電力大
• アプローチ– L1キャッシュに CC(Compression Cache)を導入
• ブロックのデータ値が FVT(Frequent Value Table)に存在→ブロックを半分に圧縮し格納
• 結果– ミス率,消費電力,オフチップのトラフィックを大幅に削減
• LSCとの違い– 圧縮対象のデータを予め決定
41Jun Yang,et al.”Frequent Value Compression in Data Caches”,MICRO’00
![Page 42: データ値の局所性を利用した ライン共有キャッシュの提案](https://reader035.vdocuments.mx/reader035/viewer/2022070413/56814d62550346895dbab003/html5/thumbnails/42.jpg)
既存研究Dynamic Zero Compression for Cache Energy Reduction
• 目的– L1キャッシュの消費電力大
• アプローチ– L1キャッシュに FVC(Frequent Value Cache)を導入
• 結果– ミス率,消費電力,オフチップのトラフィックを大幅に削減
• LSCとの違い– 圧縮対象データを予め決定
42Jun Yang,et al.”Frequent Value Compression in Data Caches”,MICRO’00
![Page 43: データ値の局所性を利用した ライン共有キャッシュの提案](https://reader035.vdocuments.mx/reader035/viewer/2022070413/56814d62550346895dbab003/html5/thumbnails/43.jpg)
質問内容• ミス率の求め方について
– 質問圧縮率で大丈夫なのか( A,A,A,B,C),( A,A,B,B,C)だと圧縮率が同じ
– 解答今のままではダメ
• 手法について– 質問データ値が0のやつばっかりだったら意味なくない?
– 解答その通りだがデータにより示されている.
• 圧縮率について– 質問具体的にはどんなデータを圧縮しているのか?(浮動小数点?アドレスポインタ?)
43
![Page 44: データ値の局所性を利用した ライン共有キャッシュの提案](https://reader035.vdocuments.mx/reader035/viewer/2022070413/56814d62550346895dbab003/html5/thumbnails/44.jpg)
ライン共有キャッシュアーキテクチャ
タグポインタv
タグウェイ 0
ライン
データウェイ 0(列番号 0)
データウェイ 1(列番号 1)
0001
1011
行番号
データアレイタグ・ポインタアレイ
ポインタセット
ラインセット
0123
インデッ
クス
10011
44
110114567
ラインCA
Mタグポインタv
CAM
CAM
CAM
タグウェイ 1
![Page 45: データ値の局所性を利用した ライン共有キャッシュの提案](https://reader035.vdocuments.mx/reader035/viewer/2022070413/56814d62550346895dbab003/html5/thumbnails/45.jpg)
データ値の局所性に着目• データ値の局所性
– メモリアドレスが異なるデータが同一の値を持つ性質• 同一データ値の書込み頻度分析
1. 書込みデータ値のごとに書込み回数を取得• 書込みデータ値:プロセッサがストアする 64bitのデータ
2. 書込み回数が多い順に並び替え3. 書込み回数を累計4. 書込みデータ値の種類数と累計書込み回数をプロット
10回
20回
5回
5回
20回
10回
A
B
C
データ 書込み回数 書込み回数 累計書込み回数
35回
20回
30回
B
A
D
データ
1 2 3 40
5
10
15
20
25
30
35
40
38回D 3回
3回
C 45
![Page 46: データ値の局所性を利用した ライン共有キャッシュの提案](https://reader035.vdocuments.mx/reader035/viewer/2022070413/56814d62550346895dbab003/html5/thumbnails/46.jpg)
同一データ値の書込み頻度分析
多くのプログラムでデータ値の局所性が高い
Cholesky Barnes FFT
FMM LUContig OceanContig書込みデータ値の種類数
累計書き込み回数 75% 70% 65%
50%25%
55%
20% 20% 20%
20% 20% 20%
46
![Page 47: データ値の局所性を利用した ライン共有キャッシュの提案](https://reader035.vdocuments.mx/reader035/viewer/2022070413/56814d62550346895dbab003/html5/thumbnails/47.jpg)
データアレイ容量を一定とした場合のミス率削減効果
すべてのベンチマークでミス率を削減
Cholesky
BarnesFF
TFM
MLU
Con
LUNonco
n
OceanCon
OceanNonco
n
WaterN
S
WaterSp
atialRadix
Raytrace
0
0.2
0.4
0.6
0.8
1base LSC
ベンチマーク・プログラム
キャッシュミス率
18ポイント削減
ブロックサイズ 64B,データアレイ容量 1MB
47
0.21
0.61
0.33
0.720.44
0.50
0.550.58
0.37 0.55
0.68
0.39
![Page 48: データ値の局所性を利用した ライン共有キャッシュの提案](https://reader035.vdocuments.mx/reader035/viewer/2022070413/56814d62550346895dbab003/html5/thumbnails/48.jpg)
容量の影響L2キャッシュミス率
1MB
2MB
4MB
8MB
1MB
2MB
4MB
8MB
1MB
2MB
4MB
8MB
1MB
2MB
4MB
8MB
Cholesky FFT LUContig OceanContig
0
0.2
0.4
0.6
0.8
1
base LSC
• ミス率削減ポイント増加 FFT 容量を増加するとミス率削減幅大• ミス率削減ポイント低下: LUContig,OceanContig 容量を増加するとミス率削減度合い小
キャッシュミス
率
48
ブロックサイズ :64B
![Page 49: データ値の局所性を利用した ライン共有キャッシュの提案](https://reader035.vdocuments.mx/reader035/viewer/2022070413/56814d62550346895dbab003/html5/thumbnails/49.jpg)
容量の影響L1ミスペナルティ
1MB
2MB
4MB
8MB
1MB
2MB
4MB
8MB
1MB
2MB
4MB
8MB
1MB
2MB
4MB
8MB
Cholesky FFT LUContig OceanContig
00.10.20.30.40.50.60.70.80.9
1
L1ミスペナルティはキャッシュミス率と同じ傾向
• ミス率削減ポイント増加 FFT • ミス率削減ポイント低下:
LUContig,OceanContig 49
ブロックサイズ :64B
![Page 50: データ値の局所性を利用した ライン共有キャッシュの提案](https://reader035.vdocuments.mx/reader035/viewer/2022070413/56814d62550346895dbab003/html5/thumbnails/50.jpg)
ブロックサイズの影響L2キャッシュミス率
8 16 32 64 8 16 32 64 8 16 32 64 8 16 32 64Cholesky FFT LUContig OceanContig
0
0.2
0.4
0.6
0.8
1
base LSC
• ブロックサイズ減少• ミス率削減: Cholesky,FFT• ミス率増加: LUContig,OceanContig
空間的局所性を利用できないため効果が低い
キャッシュミス
率
19%ミス率削減
12%ミス率削減 17%ミ
ス率削減
18%ミス率削減
L2キャッシュ容量1MB
50
![Page 51: データ値の局所性を利用した ライン共有キャッシュの提案](https://reader035.vdocuments.mx/reader035/viewer/2022070413/56814d62550346895dbab003/html5/thumbnails/51.jpg)
ブロックサイズの影響L1ミスペナルティ
8 16 32 64 8 16 32 64 8 16 32 64 8 16 32 64Cholesky FFT LUContig OceanContig
00.20.40.60.8
11.21.4
• ブロックサイズ減少• ミス率削減: Cholesky,FFT• ミス率増加: LUContig,OceanContig
L1ミスペナルティはキャッシュミス率と同じ傾向
ブロックサイズ 64Bの L1ミスペナルティで正規化L1ミスペナル
ティ17%削減L1ミスペナル
ティ22%削減
L1ミスペナルティ
18%削減
L1ミスペナルティ
25%増加
L1ミスペナル
ティ
51
L2キャッシュ容量1MB
![Page 52: データ値の局所性を利用した ライン共有キャッシュの提案](https://reader035.vdocuments.mx/reader035/viewer/2022070413/56814d62550346895dbab003/html5/thumbnails/52.jpg)
L1ミスペナルティのモデル
52
![Page 53: データ値の局所性を利用した ライン共有キャッシュの提案](https://reader035.vdocuments.mx/reader035/viewer/2022070413/56814d62550346895dbab003/html5/thumbnails/53.jpg)
動作フロー
53
![Page 54: データ値の局所性を利用した ライン共有キャッシュの提案](https://reader035.vdocuments.mx/reader035/viewer/2022070413/56814d62550346895dbab003/html5/thumbnails/54.jpg)
読み出し開始
アドレス入力
ポインタアレイから読出し対象の
行ポインタと列ポインタを読み出し
データアレイから
読出し対象データ読み出し
Tag比較?
終了
書き込み操作
主記憶からデータ読み出し
YesNo
終了
タグ入替え
54
![Page 55: データ値の局所性を利用した ライン共有キャッシュの提案](https://reader035.vdocuments.mx/reader035/viewer/2022070413/56814d62550346895dbab003/html5/thumbnails/55.jpg)
書きこみ開始
アドレスとデータ入力
主記憶からデータ読出し
Tag一致?
書き込み操作
YesNo
終了
タグ更新
55
![Page 56: データ値の局所性を利用した ライン共有キャッシュの提案](https://reader035.vdocuments.mx/reader035/viewer/2022070413/56814d62550346895dbab003/html5/thumbnails/56.jpg)
書きこみ操作
56
![Page 57: データ値の局所性を利用した ライン共有キャッシュの提案](https://reader035.vdocuments.mx/reader035/viewer/2022070413/56814d62550346895dbab003/html5/thumbnails/57.jpg)
評価
57
![Page 58: データ値の局所性を利用した ライン共有キャッシュの提案](https://reader035.vdocuments.mx/reader035/viewer/2022070413/56814d62550346895dbab003/html5/thumbnails/58.jpg)
評価環境L1ミスペナルティ
• 周波数 :2GHz• L2レイテンシ :7cc• L2アクセス時間 :3.37179ns• 主記憶アクセスレイテンシ :200cc
58
テクノロジサイズ 90nm
キャッシュ容量 1MB
ブロックサイズ 64B
バス幅 256B
Cactiの設定値
![Page 59: データ値の局所性を利用した ライン共有キャッシュの提案](https://reader035.vdocuments.mx/reader035/viewer/2022070413/56814d62550346895dbab003/html5/thumbnails/59.jpg)
圧縮率の求め方
59
![Page 60: データ値の局所性を利用した ライン共有キャッシュの提案](https://reader035.vdocuments.mx/reader035/viewer/2022070413/56814d62550346895dbab003/html5/thumbnails/60.jpg)
ライン共有キャッシュの面積の見積もり方法
• LSCのデータアレイ容量– 圧縮率 ×従来型キャッシュのデータアレイ容量
• ポインタアレイ容量–ポインタのビット数 ×セット数 ×連想度• ポインタのビット数
– Log(LSCのデータアレイ容量 /(ブロックサイズ ))
• セット数,連想度– 従来型キャッシュにおけるセット数と同じ
• タグアレイ–従来型キャッシュの容量と同じ
60
![Page 61: データ値の局所性を利用した ライン共有キャッシュの提案](https://reader035.vdocuments.mx/reader035/viewer/2022070413/56814d62550346895dbab003/html5/thumbnails/61.jpg)
ライン共有キャッシュにおけるL2キャッシュミス率の見積もり方法
LSC容量 :2MBにおける L2キャッシュミス率を求める場合
従来型キャッシュの容量と圧縮率 CRの関係を求める
① ②
従来型キャッシュ容量 [MB]
従来型キャッ
シュ
に対する圧縮率
LSCキャッシュの容量
LSCキャッシュ
に対する圧縮率
LSCの容量と圧縮率 CRの関係を求める
L2キャッシュ容量 [MB]
L2キャッシュ
ミス率
容量と L2キャッシュミス率の関係からL2キャッシュミス率を求める
)(
LSC
CR圧縮率容量見かけ容量=
③
MM
45.0
2見かけ容量=
LSCの見かけ容量を求める
④
4Mミス率
2M
0.5
61