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