c ソースコード解析による ハード/ソフト最適分割システムの構築
DESCRIPTION
C ソースコード解析による ハード/ソフト最適分割システムの構築. 高性能計算研究室 M2 和田智行 2009/02/20. 研究背景と目的. 背景 高速化、低消費電力化などにコデザインは必要 大規模化によるシステムの複雑化 システムにはハードとソフトのバランスが必要 目的 Cソースコード解析による最適なハード/ソフト分割案を提案するシステムの構築 ソフトマクロCPUによるハード/ソフトの分割実験 ハード/ソフト最適分割システムの適用と検証 Misty1暗号、AES暗号、SHA -1. ハード/ソフト最適分割システム. C言語ソースコード. システムの特徴. - PowerPoint PPT PresentationTRANSCRIPT
C ソースコード解析によるハード/ソフト最適分割システムの
構築
高性能計算研究室M2 和田智行
2009/02/20
研究背景と目的• 背景
– 高速化、低消費電力化などにコデザインは必要– 大規模化によるシステムの複雑化– システムにはハードとソフトのバランスが必要
• 目的– Cソースコード解析による最適なハード/ソフ
ト分割案を提案するシステムの構築– ソフトマクロCPUによるハード/ソフトの分
割実験– ハード/ソフト最適分割システムの適用と検証
• Misty1暗号、AES暗号、SHA -12
ハード/ソフト最適分割システム
• 目的– 設計の早期段階で分割領
域の特定– ハード/ソフトの最適な
分割を支援– C ソースコード解析
• 条件・制約– ハードウェアのリファレ
ンスとなるソースコード– 関数がハードウェアモ
ジュールに対応– ポインタ・構造体・標準
関数は対象外– 各関数の制御は main 文
にまとめる
性能・コスト・並列性解析
分割パターン評価
分割パターン生成
最適分割パターン出力
C言語ソースコード システムの特徴
性能・コスト・並列性分割パターン
ユーザ要求
最適な分割パターン
関数・モジュール分割
3
ハード/ソフト最適分割システムの構成
• 実装言語は Ruby• 独自の内部表現を使
用
制御(インタフェース)
―
ソースコード字句解析
関数・モジュール分割&抽出
プリプロセッサ抽出CDFG ・ FSM 抽出制御文・変数抽出
分割パターン生成部
ソースコード
全分割パターン生成
―
前処理部
CDFG ・ FSM 演算式評価データ
ループ文実装環境記述ファイル
並列効果算出
並列性解析部
演算式評価データDFG ・ FSM変数リスト
実装環境記述ファイル
クロック数回路規模メモリ量
動作周波数SW負荷割合
性能・コスト解析部
出力部
分割パターンモジュール並列効果
モジュール性能ユーザ要求
最適な分割パターン出力並列可能性出力 4
実験方法• Misty1 暗号、 AES 暗号、 SHA-1 に適用• 各関数の解析値を算出
– SW 実行サイクル数、 SW 負荷割合、 HW 実行サイクル数、回路規模、メモリ量、最高動作周波数、並列性
• 全分割パターンの評価値を算出
– 実行サイクル数と回路規模のみで全パターン評価– 速度( 1 : 0 )・回路規模( 0:1 )・バランス重視
( 0.5:0.5 )• ユーザ要求を満たす、最適な分割パターンを算出• ソフトマクロ CPU で実測値を求め、解析値と比較
patternitem 最低偏差値最高偏差値
偏差値最高偏差値重み評価値
5
6
Misty1 暗号アルゴリズム
FL16
3216
KLi1
KLi2
FO
S9
S7S9
169 7
KIi2 KIi1
Loop(
N tim
es)
KLi KLi+1
KLi+1,
KOi+1
KLi,
KOi
平文( 64bit )
暗号文( 64bit )
FO
FO
FL FL
FL FL
KLn+2KLn+1
FI
3216 16
KOij
KIij
• 64 ビットブロック・ 128 ビット秘密鍵暗号• FL ・ FO ・ FI ・ KS の 4 つの機能ブロックモジュールに分割• 8 ループの場合を対象
Misty1 暗号で各モジュールの性能解析
• 全体の誤差の平均は 0.1• FI ・ FL のハードウェア化が効果的• 各性能により分割パターンの評価
FI FO FL KS
解析値 実測値 解析値 実測値 解析値 実測値 解析値 実測値
SW実行サイクル数 [Cycles] 47 36 247 199 48 41 576 551
SW負荷割合 [%] 45 46 47 52 10 5 12 17HW実行サイクル数
[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
並列性 なし ― なし ― なし ― なし ―
7
Misty1 暗号での全分割パターン評価
• 全ての重視項目で、 KS 以外がハードウェアのパターンが優秀8
FI S S S S S S S S H H H H H H H HFO S S S S H H H H S S S S H H H HFL S S H H S S H H S S H H S S H HKS S H S H S H S H S H S H S H S H
ユーザ要求を考慮した分割案の評価
• 要求を満たさないものは 0• FO 以外をハードウェア化したものが優秀 9
FI S S S S S S S S H H H H H H H HFO S S S S H H H H S S S S H H H HFL S S H H S S H H S S H H S S H HKS S H S H S H S H S H S H S H S H
◎ 要求– 回路規模:実行サイクル数
= 0.1 : 0.9– 回路規模・・・ 3000slice 以
下– 実行サイクル数・・・
4500clock 以下– 動作周波数・・・ 30MHz 以
上– メモリ使用量・・・ 10KByte
以下
AES暗号アルゴリズム
AddRoundKey
SubBytes
ShiftRows
MixColumns
AddRoundKey
暗号文( 128bit )
KeyExpansion
拡大鍵( 128 or 192 or 256 bit )
平文( 128bit ) 秘密鍵( 128 or 192 or 256bit )
Loop ( N times )
• 128 ビットブロック秘密鍵暗号(鍵は可変)• 5 つの機能ブロックモジュールに分割• 鍵長が 128 ビットの場合を対象
10
AES 暗号での実験
回路規模比率 SW負荷割合
重視項目 KE Add Shift Mix Sub 回路規模[Slices]
実行サイクル数 [Cycles]
評価値
解析値 実測値 解析値 実測値 速度 回路規模 バランス速度 H H H H H 2314 1600 1775 1397 1 0 0.5回路規模 S S S S S 0 0 25269 31246 0 1 0.5バランス S H H H S 512 1266 7285 5618 0.76
50.779 0.770
• AddRoundKey 、 ShiftRows 、 MixColumns のハードウェア化が効果的
• 全体的に妥当な最適パターンを選出
11
ハッシュ生成アルゴリズムSHA -1
Message Padding
Sequence Generate
Culculate Hash
Add Hash
メッセージ
ハッシュ化データ
GetK
GetF
Rotate
512bitBlock 生成
32bit シーケンスを 80個生成
組込み機器向けベンチマーク MiBench より選出5 つの機能ブロックモジュールに分割
MessagePadding はソフトウェアで固定•ハッシュ計算を行う•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}
12
SHA -1 での実験• 実測値と解析値によるバランス重視の評価値で比較
評価値
• 2 つの評価値の整合性が高い• ハードウェア化の優先度の高いモジュールの割り出し 13
SG S S S S S S S S S S S S S S S S H H H H H H H H H H H H H H H HAdd S S S S S S S S H H H H H H H H S S S S S S S S H H H H H H H HGetF S S S S H H H H S S S S H H H H S S S S H H H H S S S S H H H HGetK S S H H S S H H S S H H S S H H S S H H S S H H S S H H S S H HRotat
e S H S H S H S H S H S H S H S H S H S H S H S H S H S H S H S H
考察• Misty1 暗号、 AES 暗号
– 性能値の解析精度が高い– 分割パターンの選出は妥当– ユーザ要求を満たした最適な分割パターンの選出
• SHA-1– 全パターンの評価値を参照することで、分割パタ
ーンの傾向探索– ハードウェア化の優先度の決定
ハード/ソフト最適分割システムは有効
14
まとめ– ハード/ソフト最適分割システムによる Misty1
暗号、 AES 暗号の分割パターンの妥当性検討– ユーザ要求を考慮したハード/ソフト最適分割
による分割パターン検討– SHA-1 における分割パターンの傾向探索と分割
パターンの妥当性検討
– ハードウェアのコスト・性能見積もりの向上–様々なアプリケーションへのシステムの適用– マルチコア実験による並列性解析の妥当性検証
15
今後の課題