Presentation is loading. Please wait.

Presentation is loading. Please wait.

Cソースコード解析による ハード/ソフト最適分割システムの構築

Similar presentations


Presentation on theme: "Cソースコード解析による ハード/ソフト最適分割システムの構築"— Presentation transcript:

1 Cソースコード解析による ハード/ソフト最適分割システムの構築
高性能計算研究室 M2 和田智行 2009/02/20

2 研究背景と目的 背景 目的 高速化、低消費電力化などにコデザインは必要 大規模化によるシステムの複雑化
システムにはハードとソフトのバランスが必要 目的 Cソースコード解析による最適なハード/ソフト分割案を提案するシステムの構築 ソフトマクロCPUによるハード/ソフトの分割実験 ハード/ソフト最適分割システムの適用と検証 Misty1暗号、AES暗号、SHA-1

3 ハード/ソフト最適分割システム 目的 条件・制約 設計の早期段階で分割領域の特定 ハード/ソフトの最適な分割を支援 Cソースコード解析
性能・コスト・並列性解析 分割パターン評価 分割パターン生成 最適分割パターン出力 C言語ソースコード システムの特徴 性能・コスト・並列性 分割パターン ユーザ要求 最適な分割パターン 関数・モジュール分割 目的 設計の早期段階で分割領域の特定 ハード/ソフトの最適な分割を支援 Cソースコード解析 条件・制約 ハードウェアのリファレンスとなるソースコード 関数がハードウェアモジュールに対応 ポインタ・構造体・標準関数は対象外 各関数の制御はmain文にまとめる

4 ハード/ソフト最適分割システムの構成 実装言語はRuby 独自の内部表現を使用 制御(インタフェース) ― ソースコード 字句解析
関数・モジュール分割&抽出 プリプロセッサ抽出 CDFG・FSM抽出 制御文・変数抽出 分割パターン生成部 全分割パターン生成 前処理部 CDFG・FSM 演算式評価データ ループ文 実装環境記述ファイル 並列効果算出 並列性解析部 DFG・FSM 変数リスト クロック数 回路規模 メモリ量 動作周波数 SW負荷割合 性能・コスト解析部 出力部 分割パターン モジュール並列効果 モジュール性能 ユーザ要求 最適な分割パターン出力 並列可能性出力 実装言語はRuby 独自の内部表現を使用

5 実験方法 Misty1暗号、AES暗号、SHA-1に適用 各関数の解析値を算出 全分割パターンの評価値を算出
SW実行サイクル数、SW負荷割合、HW実行サイクル数、回路規模、メモリ量、最高動作周波数、並列性 全分割パターンの評価値を算出 実行サイクル数と回路規模のみで全パターン評価 速度(1:0)・回路規模(0:1)・バランス重視(0.5:0.5) ユーザ要求を満たす、最適な分割パターンを算出 ソフトマクロCPUで実測値を求め、解析値と比較

6 Misty1暗号アルゴリズム 64ビットブロック・128ビット秘密鍵暗号 FL・FO・FI・KSの4つの機能ブロックモジュールに分割
8ループの場合を対象 FL 16 32 KLi1 KLi2 Loop(N times) KLi KLi+1 KLi+1, KOi+1 KLi, KOi 平文(64bit) 暗号文(64bit) FO FL KLn+2 KLn+1 FO 16 9 7 32 16 16 S9 KOij S7 FI KIij KIi2 KIi1 S9

7 Misty1暗号で各モジュールの性能解析 全体の誤差の平均は0.1 FI・FLのハードウェア化が効果的 各性能により分割パターンの評価 FI
FO FL KS 解析値 実測値 SW実行サイクル数[Cycles] 47 36 247 199 48 41 576 551 SW負荷割合[%] 45 46 52 10 5 12 17 HW実行サイクル数[Cycles] 1 4 3 8 回路規模[Slices] 256 232 784 1026 16 2064 2489 メモリ量[Bytes] 28 39 140 43 24 228 最高動作周波数[MHz] 88 63 20 34 108 155 35 59.6 並列性 なし 全体の誤差の平均は0.1 FI・FLのハードウェア化が効果的 各性能により分割パターンの評価

8 Misty1暗号での全分割パターン評価 FI S H FO FL KS 全ての重視項目で、KS以外がハードウェアのパターンが優秀

9 ユーザ要求を考慮した分割案の評価 要求を満たさないものは0 FO以外をハードウェア化したものが優秀 ◎要求
回路規模:実行サイクル数=0.1:0.9 回路規模・・・3000slice以下 実行サイクル数・・・4500clock以下 動作周波数・・・30MHz以上 メモリ使用量・・・10KByte以下 FI S H FO FL KS 要求を満たさないものは0 FO以外をハードウェア化したものが優秀

10 AES暗号アルゴリズム 128ビットブロック秘密鍵暗号(鍵は可変) 5つの機能ブロックモジュールに分割 鍵長が128ビットの場合を対象
AddRoundKey SubBytes ShiftRows MixColumns 暗号文(128bit) KeyExpansion 拡大鍵 (128 or 192 or 256 bit) 平文(128bit) 秘密鍵 (128 or 192 or 256bit) Loop(N times)

11 AES暗号での実験 AddRoundKey、ShiftRows、MixColumnsのハードウェア化が効果的
重視項目 KE Add Shift Mix Sub 回路規模 [Slices] 実行サイク ル数[Cycles] 評価値 解析値 実測値 速度 バランス H 2314 1600 1775 1397 1 0.5 S 25269 31246 512 1266 7285 5618 0.765 0.779 0.770 AddRoundKey、ShiftRows、MixColumnsのハードウェア化が効果的 全体的に妥当な最適パターンを選出 回路規模比率 SW負荷割合

12 ハッシュ生成アルゴリズム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 ハッシュ化データ

13 SHA-1での実験 実測値と解析値によるバランス重視の評価値で比較 2つの評価値の整合性が高い
SG S H Add GetF GetK Rotate 2つの評価値の整合性が高い ハードウェア化の優先度の高いモジュールの割り出し

14 考察 Misty1暗号、AES暗号 SHA-1 ハード/ソフト最適分割システムは有効 性能値の解析精度が高い 分割パターンの選出は妥当
ユーザ要求を満たした最適な分割パターンの選出 SHA-1 全パターンの評価値を参照することで、分割パターンの傾向探索 ハードウェア化の優先度の決定 ハード/ソフト最適分割システムは有効

15 まとめ 今後の課題 ハード/ソフト最適分割システムによるMisty1暗号、AES暗号の分割パターンの妥当性検討
ユーザ要求を考慮したハード/ソフト最適分割による分割パターン検討 SHA-1における分割パターンの傾向探索と分割パターンの妥当性検討 ハードウェアのコスト・性能見積もりの向上 様々なアプリケーションへのシステムの適用 マルチコア実験による並列性解析の妥当性検証 今後の課題


Download ppt "Cソースコード解析による ハード/ソフト最適分割システムの構築"

Similar presentations


Ads by Google