Cソースコード解析による

Cソースコード解析による
ハード/ソフト最適分割システムの構築
高性能計算研究室
M2 和田智行
2009/02/20
研究背景と目的
• 背景
– 高速化、低消費電力化などにコデザインは必要
– 大規模化によるシステムの複雑化
– システムにはハードとソフトのバランスが必要
• 目的
– Cソースコード解析による最適なハード/ソフト分
割案を提案するシステムの構築
– ソフトマクロCPUによるハード/ソフトの分割実験
– ハード/ソフト最適分割システムの適用と検証
• Misty1暗号、AES暗号、SHA-1
2
ハード/ソフト最適分割システム
C言語ソースコード
システムの特徴
関数・モジュール分割
分割パターン生成
分割パターン
性能・コスト・並列性解析
性能・コスト・並列性
分割パターン評価
最適分割パターン出力
ユーザ要求
• 目的
– 設計の早期段階で分割領
域の特定
– ハード/ソフトの最適な分
割を支援
– Cソースコード解析
• 条件・制約
– ハードウェアのリファレンス
となるソースコード
– 関数がハードウェアモ
ジュールに対応
– ポインタ・構造体・標準関数
は対象外
– 各関数の制御はmain文に
まとめる
最適な分割パターン
3
ハード/ソフト最適分割システムの構成
制御(インタフェース)
―
―
性能・コスト解析部
演算式評価データ
DFG・FSM
変数リスト
実装環境記述ファイル
クロック数
回路規模
メモリ量
動作周波数
SW負荷割合
分割パターン生成部
ソースコード
全分割パターン生成
前処理部
ソースコード
字句解析
関数・モジュール分割&抽出
プリプロセッサ抽出
CDFG・FSM抽出
制御文・変数抽出
並列性解析部
CDFG・FSM
演算式評価データ
ループ文
実装環境記述ファイル
並列効果算出
出力部
分割パターン
モジュール並列効果
モジュール性能
ユーザ要求
最適な分割パターン出力
並列可能性出力
• 実装言語はRuby
• 独自の内部表現を使用
4
実験方法
• Misty1暗号、AES暗号、SHA-1に適用
• 各関数の解析値を算出
– SW実行サイクル数、SW負荷割合、HW実行サイクル数、回路規
模、メモリ量、最高動作周波数、並列性
• 全分割パターンの評価値を算出
最高偏差値 偏差値 

評価値   重みitem 

最高偏差値

最低偏差値

 pattern
– 実行サイクル数と回路規模のみで全パターン評価
– 速度(1:0)・回路規模(0:1)・バランス重視(0.5:0.5)
• ユーザ要求を満たす、最適な分割パターンを算
出
• ソフトマクロCPUで実測値を求め、解析値と比較
5
Misty1暗号アルゴリズム
• 64ビットブロック・128ビット秘密鍵暗号
• FL・FO・FI・KSの4つの機能ブロックモジュールに分割
• 8ループの場合を対象
FL
平文(64bit)
KLi
FL
KLi+1
32
16
16
KLi1
FL
KLi,
Loop N times
KLi2
KOi
FO
(
KLi+1,
FO
KOi+1
32
FO
)
16
9
16
S9
KOij
FI
KLn+1
FL
KLn+2
暗号文(64bit)
FL
7
16
KIij
KIi2
S7
KIi1
S9
6
Misty1暗号で各モジュールの性能解析
FI
FO
FL
KS
解析値
実測値
解析値
実測値
解析値
実測値
解析値
実測値
SW実行サイクル数[Cycles]
47
36
247
199
48
41
576
551
SW負荷割合[%]
45
46
47
52
10
5
12
17
HW実行サイクル数[Cycles]
1
1
4
3
1
1
12
8
回路規模[Slices]
256
232
784
1026
16
16
2064
2489
メモリ量[Bytes]
28
39
140
43
24
36
232
228
最高動作周波数[MHz]
88
63
20
34
108
155
35
59.6
並列性
なし
―
なし
―
なし
―
なし
―
• 全体の誤差の平均は0.1
• FI・FLのハードウェア化が効果的
• 各性能により分割パターンの評価
7
Misty1暗号での全分割パターン評価
1.000
0.900
0.800
0.700
速度
0.600
回路規模
0.500
バランス
0.400
0.300
0.200
0.100
0.000
FI
S
S
S
S
S
S
S
S
H
H
H
H
H
H
H
H
FO
S
S
S
S
H
H
H
H
S
S
S
S
H
H
H
H
FL
S
S
H
H
S
S
H
H
S
S
H
H
S
S
H
H
KS
S
H
S
H
S
H
S
H
S
H
S
H
S
H
S
H
• 全ての重視項目で、KS以外がハードウェアのパターンが優秀
8
ユーザ要求を考慮した分割案の評価
1
◎要求
– 回路規模:実行サイクル数=
0.1:0.9
– 回路規模・・・3000slice以下
– 実行サイクル数・・・4500clock
以下
– 動作周波数・・・30MHz以上
– メモリ使用量・・・10KByte以下
0.9
0.8
0.7
0.6
0.5
0.4
0.3
0.2
0.1
0
FI
S
S
S
S
S
S
S
S
H
H
H
H
H
H
H
H
速度
FO
S
S
S
S
H
H
H
H
S
S
S
S
H
H
H
H
回路規模
FL
S
S
H
H
S
S
H
H
S
S
H
H
S
S
H
H
バランス
KS
S
H
S
H
S
H
S
H
S
H
S
H
S
H
S
H
ユーザ要求
• 要求を満たさないものは0
• FO以外をハードウェア化したものが優秀
9
AES暗号アルゴリズム
• 128ビットブロック秘密鍵暗号(鍵は可変)
• 5つの機能ブロックモジュールに分割
• 鍵長が128ビットの場合を対象
平文(128bit)
秘密鍵
(128 or 192 or 256bit)
AddRoundKey
KeyExpansion
SubBytes
拡大鍵
(128 or 192 or 256 bit)
ShiftRows
AddRoundKey
MixColumns
暗号文(128bit)
Loop(N times)
10
AES暗号での実験
重視項目 KE Add Shift Mix Sub
回路規模
実行サイク
[Slices]
ル数[Cycles]
解析値 実測値 解析値 実測値
評価値
速度
H
H
H
H
H
2314
1600
1775
1397
速度
1
回路規模
S
S
S
S
S
0
0
25269
31246
0
1
0.5
バランス
S
H
H
H
S
512
1266
7285
5618
0.765
0.779
0.770
Sub KE
7% 7%
KE
21%
Add
7%
Add
1%
Sub
58%
Mix
20%
回路規模比率
Mix
41%
Shift
0%
Shift
38%
回路規模 バランス
0
0.5
• AddRoundKey、
ShiftRows、MixColumns
のハードウェア化が効
果的
• 全体的に妥当な最適
パターンを選出
SW負荷割合
11
ハッシュ生成アルゴリズムSHA-1
 組込み機器向けベンチマークMiBenchより選出
 5つの機能ブロックモジュールに分割
 MessagePaddingはソフトウェアで固定
メッセージ
Loop(Block数)
Message Padding
512bit
Block生成
32bitシーケンス
を80個生成
Sequence Generate
Culculate Hash
Add Hash
ハッシュ化データ
ハッシュ値
の更新
•ハッシュ計算を行う
•GetF・GetK・Rotateの3つの
モジュールを使用
Loop 80times{
Temp=Rotate+f(b,c,d)+e+K+input
e=d
d=c
c= Rotate
b=a
a=Temp
}
Rotate
GetF
GetK
12
SHA-1での実験
• 実測値と解析値によるバランス重視の評価値で比較
評価値
1
実測値
0.9
解析値
0.8
0.7
0.6
0.5
0.4
0.3
0.2
0.1
0
SG
Add
GetF
GetK
Rotate
1
S
S
S
S
S
2
S
S
S
S
H
3
S
S
S
H
S
4
S
S
S
H
H
5
S
S
H
S
S
6
S
S
H
S
H
7
S
S
H
H
S
8
S
S
H
H
H
9
S
H
S
S
S
10
S 11
S 12
S 13
S 14
S 15
S 16
S 17
H 18
H 19
H 20
H 21
H 22
H 23
H 24
H 25
H 26
H 27
H 28
H 29
H 30
H 31
H 32
H
H
S
S
H
H
S
H
S
H
S
H
H
H
H
S
S
H
H
S
H
H
H
H
S
H
H
H
H
S
S
S
S
S
S
S
H
S
S
H
S
S
S
H
H
S
H
S
S
S
H
S
H
S
H
H
S
S
H
H
H
H
S
S
S
H
S
S
H
H
S
H
S
H
S
H
H
H
H
S
S
• 2つの評価値の整合性が高い
• ハードウェア化の優先度の高いモジュールの割り出し
H
H
S
H
H
H
H
S
H
H
H
H
13
考察
• Misty1暗号、AES暗号
– 性能値の解析精度が高い
– 分割パターンの選出は妥当
– ユーザ要求を満たした最適な分割パターンの選出
• SHA-1
– 全パターンの評価値を参照することで、分割パター
ンの傾向探索
– ハードウェア化の優先度の決定
ハード/ソフト最適分割システムは有効
14
まとめ
– ハード/ソフト最適分割システムによるMisty1暗
号、AES暗号の分割パターンの妥当性検討
– ユーザ要求を考慮したハード/ソフト最適分割に
よる分割パターン検討
– SHA-1における分割パターンの傾向探索と分割パ
ターンの妥当性検討
今後の課題
– ハードウェアのコスト・性能見積もりの向上
– 様々なアプリケーションへのシステムの適用
– マルチコア実験による並列性解析の妥当性検証
15