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

15
C ソソソソソソソソソソソ ソソソ ソソソソソソソソソソソソソソ ソソソソソソソソ ソソソソ M2 2009/02/20

Upload: akiko

Post on 19-Mar-2016

41 views

Category:

Documents


2 download

DESCRIPTION

C ソースコード解析による ハード/ソフト最適分割システムの構築. 高性能計算研究室 M2 和田智行 2009/02/20. 研究背景と目的. 背景 高速化、低消費電力化などにコデザインは必要 大規模化によるシステムの複雑化 システムにはハードとソフトのバランスが必要 目的 Cソースコード解析による最適なハード/ソフト分割案を提案するシステムの構築 ソフトマクロCPUによるハード/ソフトの分割実験 ハード/ソフト最適分割システムの適用と検証 Misty1暗号、AES暗号、SHA -1. ハード/ソフト最適分割システム. C言語ソースコード. システムの特徴. - PowerPoint PPT Presentation

TRANSCRIPT

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

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

構築

高性能計算研究室M2 和田智行

2009/02/20

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

研究背景と目的• 背景

– 高速化、低消費電力化などにコデザインは必要– 大規模化によるシステムの複雑化– システムにはハードとソフトのバランスが必要

• 目的– Cソースコード解析による最適なハード/ソフ

ト分割案を提案するシステムの構築– ソフトマクロCPUによるハード/ソフトの分

割実験– ハード/ソフト最適分割システムの適用と検証

• Misty1暗号、AES暗号、SHA -12

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

ハード/ソフト最適分割システム

• 目的– 設計の早期段階で分割領

域の特定– ハード/ソフトの最適な

分割を支援– C ソースコード解析

• 条件・制約– ハードウェアのリファレ

ンスとなるソースコード– 関数がハードウェアモ

ジュールに対応– ポインタ・構造体・標準

関数は対象外– 各関数の制御は main 文

にまとめる

性能・コスト・並列性解析

分割パターン評価

分割パターン生成

最適分割パターン出力

C言語ソースコード システムの特徴

性能・コスト・並列性分割パターン

ユーザ要求

最適な分割パターン

関数・モジュール分割

3

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

ハード/ソフト最適分割システムの構成

• 実装言語は Ruby• 独自の内部表現を使

制御(インタフェース)

ソースコード字句解析

関数・モジュール分割&抽出

プリプロセッサ抽出CDFG ・ FSM 抽出制御文・変数抽出

分割パターン生成部

ソースコード

全分割パターン生成

前処理部

CDFG ・ FSM 演算式評価データ

ループ文実装環境記述ファイル

並列効果算出

並列性解析部

演算式評価データDFG ・ FSM変数リスト

実装環境記述ファイル

クロック数回路規模メモリ量

動作周波数SW負荷割合

性能・コスト解析部

出力部

分割パターンモジュール並列効果

モジュール性能ユーザ要求

最適な分割パターン出力並列可能性出力 4

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

実験方法• Misty1 暗号、 AES 暗号、 SHA-1 に適用• 各関数の解析値を算出

– SW 実行サイクル数、 SW 負荷割合、 HW 実行サイクル数、回路規模、メモリ量、最高動作周波数、並列性

• 全分割パターンの評価値を算出

– 実行サイクル数と回路規模のみで全パターン評価– 速度( 1 : 0 )・回路規模( 0:1 )・バランス重視

( 0.5:0.5 )• ユーザ要求を満たす、最適な分割パターンを算出• ソフトマクロ CPU で実測値を求め、解析値と比較

patternitem 最低偏差値最高偏差値

偏差値最高偏差値重み評価値

5

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

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 ループの場合を対象

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

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

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

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

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

ユーザ要求を考慮した分割案の評価

• 要求を満たさないものは 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

以下

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

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

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

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

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

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

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

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

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

考察• Misty1 暗号、 AES 暗号

– 性能値の解析精度が高い– 分割パターンの選出は妥当– ユーザ要求を満たした最適な分割パターンの選出

• SHA-1– 全パターンの評価値を参照することで、分割パタ

ーンの傾向探索– ハードウェア化の優先度の決定

ハード/ソフト最適分割システムは有効

14

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

まとめ– ハード/ソフト最適分割システムによる Misty1

暗号、 AES 暗号の分割パターンの妥当性検討– ユーザ要求を考慮したハード/ソフト最適分割

による分割パターン検討– SHA-1 における分割パターンの傾向探索と分割

パターンの妥当性検討

– ハードウェアのコスト・性能見積もりの向上–様々なアプリケーションへのシステムの適用– マルチコア実験による並列性解析の妥当性検証

15

今後の課題