キャッシュウェイ割り当てと コード配置の同時最適化による

キャッシュウェイ割り当てと
コード配置の同時最適化による
メモリアクセスエネルギーの削減
九州大学
○高田純司 井上弘士
京都大学
石原亨
2015/10/1
1
目次
• 研究背景
– 組込みプロセッサにおけるエネルギー削減の必要性
• キャッシュウェイ割り当て
• 提案手法
– キャッシュウェイ割り当てとコード配置の組み合わせ
– 同時最適化
• 評価実験
• まとめ
2015/10/1
2
研究背景
• 組込みプロセッサの課題
– 低消費エネルギー化,低消費電力化
消費エネルギー,消費電力が増大すると ・・・
• 携帯型機器の駆動時間の減少
• 発熱が増大し放熱器等にかかるコスト増加
• 組込みプロセッサの消費電力内訳
ARM920T
CP15
2%
PATag
RAM
1%
SysCtl
BIU 3%
8%
Clocks Other
4%
4%
D Cache
19%
I Cache
25%
arm9
25%
I MMU
4%
命令キャッシュ
25%
D MMU
5%
S. Seger, “Low-power design techniques for microprocessors," International Solid-State Circuits
Tutorial, Feb. 2001.
2015/10/1
Conference
3
研究対象
• 対象システム
– マルチタスク
• システムのハードウェア構成
– シングルコアプロセッサ
– セットアソシアティブ方式を用いる命令キャッシュ
– キャッシュは使用するウェイの選択と切り替えが可能
• selective cache ways
David H. Albonesi, “ Selective cache ways:On-demand cache resource Allocation ” ACM/IEEE
international symposium on Microarchitecture, Haifa, Israel, 1999.
2015/10/1
4
目次
• 研究背景
– 組込みプロセッサにおけるエネルギー削減の必要性
• キャッシュウェイ割り当て
• 提案手法
– キャッシュウェイ割り当てとコード配置の組み合わせ
– 同時最適化
• 評価実験
• まとめ
2015/10/1
5
キャッシュウェイ割り当て


マルチタスクにおいて、各タスクにキャッシュウェイを静的に割り当てることを
キャッシュウェイ割り当てと定義
実行時にタスクが切り替わると、使用するウェイをタスク毎に切り替える(ウェイ
選択可能なキャッシュメモリを使用)

割り当てられたウェイのみにアクセスすることでアクセスエネルギーを削減可能

タスク間の競合によって起こるキャッシュミスを削減可能
例:
ウェイ割り当て
タスク0:way1
タスク1: way0
タスク2: way0,way1
CPU
CPU
CPU
way0 way1
way0 way1
way0 way1
タスク0実行時
タスク1実行時
タスク2実行時
問題点:タスク内の競合によって起こるキャッシュミスが増加
David H. Albonesi, “ Selective cache ways:On-demand cache resource Allocation ” ACM/IEEE
international symposium on Microarchitecture, Haifa, Israel, 1999.
2015/10/1
6
目次
• 研究背景
– 組込みプロセッサにおけるエネルギー削減の必要性
• キャッシュウェイ割り当て
• 提案手法
– キャッシュウェイ割り当てとコード配置最適化の組み合わせ
– 同時最適化
• 評価実験
• まとめ
2015/10/1
7
コード配置最適化との組み合わせ
• コード配置とは
– プログラムコードを配置する主記憶上の位置を決定すること
– キャッシュメモリでの競合を避けるようにコード配置を行うことでキャッシュミス
を削減可能
関数
競合
競合
しない
主記憶
0
1
2
3
4
A
B
C
D
改善前の配置
A
タスク
キャッシュメモリ
ウェイ数1ライン数4
ライン0
ライン1
ライン2
ライン3
B
D
主記憶
A
B
D
C
0
1
2
3
4
改善後の配置
ウェイ割り当てとコード配置の同時最適化の必要性
•従来コード配置後にウェイ割り当てを行う場合の問題点
⇒最適なパターンが見つからない可能性が有る
例:
従来コード配置
提案コード配置
タスク1
タスク3
タスク2
タスク3
タスク2
A
C
B
C
B
D
主記憶
ウェイ0
ウェイ1
セット0
B
セット1
D
キャッシュメモリ
タスク2に2つのウェイを 1つのウェイを割り
タスク2に1つの
割り当てないといけない 当てても競合しない
ウェイを割り当て
ると競合
ウェイ割り当てとコード配置を同時に最適化
2015/10/1
問題定義
• 整数計画問題として定式化
– 消費エネルギーを最小化する、プログラムコード配置位置
とタスクの使用ウェイを求める問題
• 前提
– 各タスクにそれぞれ一つだけのウェイを割り当てる
• タスク
いくつかの関数からなる一連の処理
– コード配置は関数の単位で行う
2015/10/1
10
問題の決定変数と目的関数
• 決定変数:各関数の主記憶上の配置位置と各タスクの使用ウェイ
– 関数 jの配置位置を示す変数: x j , j '
– タスク i の使用ウェイを示す変数: yi
主記憶
例:
関数1
関数2
関数2
関数3
関数3
上位
アドレス
関数1
x2,1  0 x2,3  0
x3,1  0 x3, 2  1
x1, 2  1 x1,3  1
• 目的関数 :命令アクセスでの総消費エネルギー
E  N inst・ Ecache  N miss・ Emiss
2015/10/1
x, y の値に依存しない
Nmiss を x, y の式で表す
N miss :キャッシュミス数
N inst :実行命令数
Ecache :キャッシュアクセスエ
ネルギー
Emiss :キャッシュミス時の消
費エネルギー
11
貪欲法によるウェイ割り当てとコード配置決定
アルゴリズム
1. 最もアクセス頻度の高いタスクを選択する
2. タスクにウェイiを割り当てた場合のミス数をコード配置を行って
から求める
3. ウェイ数分繰り返してキャッシュミス数最小となる割り当てウェイ
を求める
4. 次にアクセス頻度が高いタスクを選択して2以降を繰り返す
2015/10/1
12
コード配置決定法
• 整数計画問題のコード配置だと
– 計算時間:タスク数×ウェイ数×関数の数の階乗
• 主記憶上に各関数の領域を用意し、その領域内で配置位
置をずらしてキャッシュミス数最小となる位置に決定
– アクセス頻度の高い関数から順に全関数の配置位置を決定
– 計算時間:タスク数×ウェイ数×関数の数×セット数
主記憶
関数0の
コード
set0に対応
set1に対応
set2に対応
:
set63に対応
:
関数0に確保
された領域
キャッシュ1way分
の大きさの倍数
set0の位置:ミス数100
set1の位置: ミス数80
set2の位置:ミス数100
・
・
・
set63の位置:ミス数120
ミス数最小となる位置に決定
2015/10/1
13
提案手法適用の流れ
• プロスラム実行前
ウェイの割り当てとコードの配置位置を最適化
オブジェクト
コード
アクセス
トレース
• プログラム実行時
提案手
法による
最適化
最適化後
オブジェクト
コード
ウェイ
割り当て
情報
– プロセッサが最適化後のコードを実行
– OSがウェイ割り当て情報に基づきウェイ選択・切り替え
2015/10/1
14
目次
• 研究背景
– 組込みプロセッサにおけるエネルギー削減の必要性
• キャッシュウェイ割り当て
• 提案手法
– キャッシュウェイ割り当てとコード配置の組み合わせ
– 同時最適化
• 評価実験
• まとめ
2015/10/1
15
消費エネルギーの評価実験
• 貪欲法を用いたウェイ割り当てとコード配置適用前後での消費
エネルギー評価を行う
実験対象
– アクセストレース
長さ100万命令 タスク数10 関数の数50
1.
2.
JPEG エンコードを行うアプリケーションプログラムからタスクを取得
人工的にマルチタスク用アクセストレースを作成
– 命令セットシミュレータ
東芝社のMedia embedded Processor(MeP)用
1命令実行時
1.6216[nj]
1wayキャッシュアクセス時
0.9609[nj]
2wayキャッシュアクセス時
1.2712[nj]
4wayキャッシュアクセス時
2.0427[nj]
キャッシュミス時
2015/10/1
50.032[nj]
MePの消費エネルギー値
( ROHM0.18um )
16
実験結果
2.5
消費エネルギー[mJ]
2
47%削減
1.5
命令キャッシュ
アクセス
主記憶命令
アクセス
1
0.5
0
2way
使用
1way
割り当て
提案
手法
4KB命令キャッシュ
(ウェイ数2)
2way使用,4way使用
1way割り当て
提案手法
2015/10/1
4way
使用
1way
割り当て
提案
手法
8KB命令キャッシュ
(ウェイ数4)
従来型2way/4wayキャッシュを使用
ウェイ割り当てのみを貪欲法によって決定
ウェイ割り当てとコード配置を貪欲法によって同時最適化
17
キャッシュミスの分析
• キャッシュミスを3種類に分類してそれぞれの変化を確認
8KB命令キャッシュ(ウェイ数4)の場合の分類結果
削減
4way使用
1way割り当て
提案手法
329
398
443
タスク間競合ミス数
2643
1848
1058
タスク内競合ミス数
598
6317
2852
3570
8563
4353
初期参照ミス数
合計
増加
削減
ウェイ割り当てによって増加したキャッシュミスをコード配置によって削減
2015/10/1
18
目次
• 研究背景
– 組込みプロセッサにおけるエネルギー削減の必要性
• キャッシュウェイ割り当て
• 提案手法
– キャッシュウェイ割り当てとコード配置の組み合わせ
– 同時最適化
• 評価実験
• まとめ
2015/10/1
19
まとめ
•
ウェイ割り当てとコード配置の同時最適化手法を提案
•
整数計画問題として定式化
•
貪欲法を導入
•
実験により命令アクセスの総消費エネルギーを最大47%
削減
今後の課題
•
実行時間の評価
•
より現実的な問題設定への拡張
2015/10/1
20
ご清聴ありがとうございました
2015/10/1
21
整数計画問題と貪欲法の比較
消費エネルギー[mJ]
7
命令キャッ
シュアクセス
主記憶命令
アクセス
データキャッ
シュアクセス
主記憶デー
タアクセス
CPU
6
5
4
3
2
1
0
ILP greedy
ILP greedy
セット数32
セット数64
ウェイ数2
ILP greedy
ILP greedy
セット数32
セット数64
ウェイ数4
プロセッサシステムの総消費エネルギー
消費エネルギー[mJ]
7
命令キャッ
シュアクセス
主記憶命令ア
クセス
データキャッ
シュアクセス
主記憶データ
アクセス
CPU
6
5
4
3
2
1
0
2way
使用
1way 1way greedy
使用 割り当て
割り当
て
ウェイ数2
4way
使用
1way 1way greedy
使用 割り当て
割り当
て
ウェイ数4
タスク切り替わり時に起きるミス
TASK1
ReadA
ReadA
ReadC
ReadA
Miss
Hit
Miss
Hit
END
TASK1
ReadA Miss
ReadA Hit
ReadC Miss
ReadB Miss:EvictsA
ReadD Miss:EvictsC
ReadA
(a)single task
TASK2
MISS
END
(b)multi task
Selective Cache Ways のHW構成
・通常のキャッシュメモリ
TAG
INDEX
タグアレイ
TAG
TAG
・Selective Cache Ways
データアレイ
DATA DATA
CWSR
way0
way1
1:使用
0:不使用
デコーダ、
プリチャー
ジ回路、
センスア
ンプへ
DATA
=
=
MUX
全てのウェイのデー
タを読み出す
•アドレスのデコード
•ビット線、ワード線の充放電
•信号増幅
2015/10/1
way0
way1
MUX
DATA
DATA
使用ウェイのデータ
のみを読み出す
25