設計仕様解析による ハード/ソフト最適分割 システム

設計仕様解析による
ハード/ソフト最適分割システムの
構築と評価
立命館大学 理工学研究科
梅原 直人,○和田 智行,山崎 勝弘
2007/9/5
研究背景
• 高速化、低消費電力化などにコデザインは必要
• 大規模化によるシステムの複雑化
• システムにはハードとソフトのバランスが必要
目的
• ハード/ソフト最適分割システムの構築
• システムの設計仕様解析ツールの作成
• 実際にアプリケーション(暗号アルゴリズム)に適用
し、システムの有効性を検証
2
ハード/ソフト分割探索
• モジュール数により分割領域が指数関数的
に増加
• 人間の判断で行うには限界がある
• シミュレーションによる数値解析にも限界
• ハード/ソフトの最適な分割を支援すること
• 早期の予測による手戻り損失の減少
3
ハード/ソフト最適分割システム
• C言語リファレンス・プロトタイプ作成段階から
分割領域(境界)の特定
– 関数をハードウェアモジュールに対応
システムの最終出力
Cソースコード
int a();
char b();
void c();
Analysis
&
Answer
Hardware
Software
int a();
char b();
void c();
• ユーザの要求から分割
– 速さ優先、消費電力優先、コスト優先、etc…
4
ソースコードと要求仕様を併せて、設計仕様と呼称
設計仕様解析手法
モジュール
外部要素
プリプロセッサ・関数抽出
C言語ソースコード
モジュール(ファンクション)ファイル
コード解析
CDFG
合成
演算式
評価
データ
トレース
FSM
合成
設
計
仕
様
解
析
器
モジュール毎の各要素の内部表現(CDFG・演算強度など)
性能解析
回路規模
個別・相互評価
速度
メモリ量
消費電力
工数
5
設計仕様解析器
•
•
•
•
•
各関数はハードウェア・モジュールに1対1対応
実装環境を考慮
ユーザの要求を考慮(速度重視、メモリ重視、……など)
goto文・malloc文・ポインタ・文字列操作はサポートしない
実装言語はRuby
C言語ファイル
モジュールインスタンス(CDFG)
int func(int B,int C){
}
処理の流れ
int A,I,j;
for(i=0;i<4;i++){
for(j=0;j<4;j++){
A=B+C;
}
}
return A;
rtm,true,[“int”.”int”]
farg,”int”,[“B”,”C”]
decl,””,[“A”,”i”,”j”]
loop,”for”,0,”i”,0,”<4”,”++”
loop,”for”,1,”i”,0,”<4”,”++”
assign,2,[“A”],[“B”,”+”,”C”]
ctrl,”return”,0,no_assign,”A”
構造の深度
6
Misty1暗号アルゴリズム
• 64ビットブロック・128ビット秘密鍵暗号
• 条件分岐の一切ない構造
FL
平文(64bit)
32
16
16
64 bit
KLi
FL
KLi+1
KLi1
FL
KLi,
Loop N times
KOi
KLi2
FO
(
KLi+1,
FO
KOi+1
FO
)
16
9
32
16
S9
KOij
FI
KLn+1
FL
KLn+2
暗号文(64bit)
FL
7
16
KIij
KIi2
S7
KIi1
S9
7
モジュール連結による実験
• MISTY1を最適分割実験に使用
– MISTY1は軽く、簡単な制御
e.g.モジュール連結による実験結果の計測
• ループ回数は100固定
暗号化ブロック数は可変
平文
MISTY1 BLOCK[0]
インライン展開
(連結)
MISTY1 BLOCK[1]
大きな
MISTY1 BLOCK[N]
暗号文
ハードウェア
モジュール
• 連結によって意図的に
巨大モジュールを作成
• 解析によってどのような
変化が結果に出るのか
を考察
8
実験環境
OPB
SW処理
Block RAM
DLL
Clock
+
制御
UART
RS232C
Connector
SDRAM
control
SDRAM
MicroBlaze
FSL
FSL
User
Peripheral
•
•
•
•
FSL
FSL
User
Peripheral
HW処理
Clock
counter
Xilinx社のソフトコアMicroBlazeを軸に構築
FSLでユーザペリフェラルと通信
ツールと専用コンパイラが付属
結果はUART-RS232Cからデスクトップへ
FPGA
9
MISTY1単一ループモジュール性能
項目 動作周波数 レイテンシ
数値
•
•
•
•
397[MHz]
4[cycle]
回路規模
SWメモリ量
4932[slices] 4843[Bytes]
1ブロック(64bit)をN=8で暗号化する場合
最高性能で4Gbps程度のスループット
MB検証システムの動作周波数は100MHz固定
ソフトウェアのみで同じ動作を行う場合2892サイクル
このハードウェア・ソフトウェアの結果を本システムに
フィードバックして設計仕様解析器を実現
10
モジュール性能評価式
StdValitem   StdMin

Eval   Wu item 

StdMax

StdMin

 pattern
Eval:各モジュール評価総和、Wu item:ユーザ要求の係数
Std():偏差値導出関数、Val:CDFGなどの性能値
•
•
•
•
偏差値は価値を画一するため(Bytes,Cycles…)
分数計算は偏差値の揺れ幅を揃えるため
ユーザ要求の係数は比率
Evalが最も大きい時にそのパターンを使用
11
実験結果と評価
MISTY1暗号の解析結果
HWループ回数
0回
8回
32回
64回
100回
実行サイクル数
92330
85120
63056
24406
525
回路規模
0
13265
13270
13276
13282
メモリ量
38048
37668
25885
13728
64
MISTY1暗号の評価結果
HWループ回数
0回
8回
32回 64回 100回
処理速度重視
A
8:1:1
0.10 0.06 0.29
0.66
0.90
回路規模重視
B
1:8:1
0.80 0.06 0.14
0.20
0.00
メモリ使用量重視
C
1:1:8
0.10 0.02 0.29
0.59
0.90
D
6:2:2
0.20 0.05 0.26
0.57
0.80
E
2:6:2
0.60 0.02 0.13
0.28
0.40
F
2:2:6
0.20 0.0.
0.53
0.80
重み付け
(速度:回路規模:メモリ量)
0.26
12
11
Evaluation
MISTY1暗号解析結果の評価と考察
1.0
0.9
0.8
0.7
0.6
0.5
0.4
0.3
0.2
0.1
0.0
A
C
B
A:速度重視
B:回路規模重視
C:メモリ使用量重視
0
8
32
64
100
• 処理速度とメモリ量はハードの化による評価の向上
が高い
• 回路規模はあまり変化なし
• [6,2,2]の比率でも大差はない
13
• MISTY1はハードウェア化で高性能になる
AES暗号での実験
• 全く異なるモジュールからなる
• 負荷の高いモジュールを優先的にハードウェア化
SubBytes, 40%
分類
ハードウェア処理部
ア
MixColumns, 36%
ShiftRows,
14%
Add
Round
Key,
10%
ソフトウェア処理部
SubBytes,MixColumns,ShiftRows,
AddRoundKey
イ
MixColumns
SubBytes,ShiftRows,AddRoundKey
ウ
SubBytes
MixColumns,AddRoundKey,ShiftRows
エ
SbuBytes,MixColumns
ShiftRows,AddRoundKey
オ
SubBytes,MixColumns,ShiftRows
AddRoundKey
カ
SubBytes,MixColumns,AddRoundKey ShiftRows
キ
SubBytes,MixColumns,ShiftRows,
AddRoundKey
S
W
大
H
W
14
14
大
AES暗号による解析結果評価
実測評価結果
1
A
Evaluation
0.9
B
D
C
E
F
A
速度重視
(8:1:1)
B
回路規模重視
(1:8:1)
C
メモリ使用量
重視
(1:1:8)
D
速度優先
(6:2:2)
E
回路規模優先
(2:6:2)
F
メモリ使用量
優先
(2:2:6)
0.8
0.7
0.6
0.5
0.4
0.3
0.2
0.1
0
ア
イ
ウ
エ
オ
カ
キ
解析評価結果
1
A
0.9
B
D
C
E
F
Evaluation
0.8
0.7
0.6
0.5
0.4
0.3
0.2
0.1
15
0
ア
イ
ウ
エ
オ
カ
キ
ピアソンの積率相関係数による類似性証明
1
0.9
0.8
0.7
0.6
0.5
0.4
0.3
0.2
0.1
0
0. 953
0. 949
0. 858
0. 835
0. 751
A
B
C
0. 737
D
E
F
•
•
•
•
1に近いほど相関関係が強く、0に近いほど無関係
平均値は0.85
概ね解析が正しいといえる
“A”と“D”が高いことから処理速度(クロックサイクル数)の
見積もり精度は高いといえる
• “C”と“F”から、メモリ量解析でまだ見積もり精度に問題
16
まとめ
• ハード/ソフト最適分割システム
• 分割方法の探査のための実験・考察
– MISTY1暗号のハード/ソフト分割
• ツールの有効性判断
– AES暗号の実測値と解析値の類似性証明
課題
• 設計仕様解析器の完成
• 解析器の精度向上
• 他のアルゴリズム実装による実験
17