動的再構成可能プロセッサVulcan2

Download Report

Transcript 動的再構成可能プロセッサVulcan2

動的再構成可能プロセッサVulcan2と
そのソフトウェア開発環境ISAcc
に関する研究
平木哲夫,門内伸吾,山崎陽介,
神戸隆行,Lovic GAUTHIER,
Victor MAURO GOULART FERREIRA,
Antoine TROUVE,井上弘士,村上和彰
2007年5月18日
1
目次
•
•
•
•
•
背景
動的再構成可能プロセッサ Vulcan2
ソフトウェア開発環境 ISAcc
評価実験
おわりに
2007年5月18日
2
目次
•
•
•
•
•
背景
動的再構成可能プロセッサ Vulcan2
ソフトウェア開発環境 ISAcc
評価実験
おわりに
2007年5月18日
3
ASIP
(Application Specific Instruction-set Processor)
• 携帯電話やデジタルカメラなどに用いられるシステムLSI
– 動画、暗号、通信プロトコル等、アプリケーションの多様化
– 要求:高い計算能力、小面積、低開発コスト
• 解決手法:ASIP
– 高負荷処理をカスタム命令化
高性能を実現
CPU
<問題点>
設計時に想定されたアプリケー
ションに対して単一命令セット
しか実装できない
2007年5月18日
Memory
ASIP
4
再構成可能ASIP
• 再構成可能ハードウェアで実現されたデータパスを
搭載
– プログラム実行開始時にのみ再構成
– アプリケーション毎に命令セットを特化できる!
• 各カスタム命令の機能を制限する
ものは・・・
– 命令セットの大きさ
– 再構成可能ハードウェアの面積
2007年5月18日
CPU
Memory
再構成可能ASIP
5
動的再構成可能ASIP
• プログラム実行中にデータパスを再構成
– 長所:ハードウェア資源の有効利用
• 単一カスタム命令が全ての再構成可能ハードウェア資
源を利用可能
• 高機能なカスタム命令を定義
• 実行命令数を大幅に削減
– 短所:再構成時間の顕在化
• 頻繁な再構成に伴う時間的オーバーヘッド
• プログラム実行時間の増大
2007年5月18日
6
動的再構成可能ASIP Vulcan2
• 動的再構成可能ASIP Vulcan2
– PEをベースとしたRDP(Reconfigurable Data Path)
– 専用命令による再構成の制御
• Vulcan2向けソフトウェア開発環境ISAcc
– 命令セットの自動生成、配置配線
– 再構成オーバーヘッドを考慮した命令スケジューリング
• 高性能化を達成するためのポイント
• いかに再構成制御命令の実行回数を削減するか?
• いかにカスタム命令の高機能化により実行命令数を削減するか?
• 本研究の目的:実装するPE数の違いが総実行命令数
削減効果に与える影響を調査
2007年5月18日
7
目次
•
•
•
•
•
背景
動的再構成可能プロセッサ Vulcan2
ソフトウェア開発環境 ISAcc
評価実験
おわりに
2007年5月18日
8
動的再構成可能プロセッサVulcan2
Vulcan 2
Memory bus
Load
Store
ALU
RDP
Inner bus
Register File
2007年5月18日
• 命令セット
• 32bit 標準的RISC命令
• カスタム命令
• RDP再構成制御命令
• 内部構成
• 5ステージ・パイプライン
• 算術論理演算ユニット
ALU
• 動的再構成可能ユニット
RDP
• 32bit ×32本の汎用レジ
スタ
9
Vulcan2のRDP
(Reconfigurable Data Path)
6入力2出力LUT
PE
SW
VLとHL間の
スイッチ
VL
(Vertical Line)
128bit
・・・
SW
PE
SW
SW
PE
PE
・・・
PE
PE
PE
・・・
PE
SW
SW
・
・
・
PE
SW
2007年5月18日
PE
SW
HL
・
・
・ (Horizontal Line)
PE
64bit
・
・
・
PE ・・・
SW
SW
SW
SW
10
再構成オーバーヘッドの隠蔽
prcf
add
sub
nop
IF ID RC RC RC RC ME WB
時間の経過
IF ID EXE ME WB
IF ID EXE ME WB
prcfでは何もしない
IF ID EXE ME WB
IF ID EXE EXE ME WB
ci
IF ID EXE EXE ME WB
ci
1クロック
サイクル
• コンパイラによる命令スケジューリング
– 再構成制御命令(prcf命令)とRISC命令の並列実行
– 構成情報の再利用
2007年5月18日
RC:ReConfiguration
11
目次
•
•
•
•
•
背景
動的再構成可能プロセッサ Vulcan2
ソフトウェア開発環境 ISAcc
評価実験
おわりに
2007年5月18日
12
動的再構成可能ASIP向け開発環境
ISAcc
• HW非依存な最適化
• ビット幅解析
C言語
プログラム
フロントエンド
• C構文要素パターン・マッチ
ング
• CIのネットリストを合成
• 命令の合成の最適化
命令セット合成
ISAcc
• SWの構文要素
に対応する命令
部品の集まり
命令ライブラリ
• CIのネットリスト
を配置配線
配置配線部
• HW依存最適化
• アセンブリ・コード
生成
バックエンド
• prcf命令
スケジューリング
2007年5月18日
Vulcan2バイナリコード
Vulcan2
13
目次
•
•
•
•
•
背景
動的再構成可能プロセッサ Vulcan2
ソフトウェア開発環境 ISAcc
評価実験
おわりに
2007年5月18日
14
評価実験
• 評価対象モデル
– 標準的なRISCプロセッサ
– Vulcan2プロセッサ
• RDPのPE数:64、128、256、512
• 実験環境
– コード生成にはISAccを利用
– Vulcan2シミュレータにより実行命令数を測定
• アプリケーション
– DES(Data Encryption Standard)
• 64bit×16の平文を56bitの鍵で暗号化
2007年5月18日
15
コードサイズ
ci
prcf
Shift
Logic
Arithmetic
nop
Jump+Branch
Load+Store
83
248
170
157
6
398
83
247
コード中に出現する各命令の数
3000
393
20
20
344
1084
1132
236
242
233
244
32
452
32
453
32
439
32
420
170
157
1
344
75
251
32
428
0
64
128
256
512
2500
2000
1500
1000
500
0
2007年5月18日
165
152
29
470
使用可能なPE数
16
実行命令数
Load+Store
Jump+Branch
nop
Arithmetic
Logic
Shift
prcf
40000
169
35000
5431
169
5086
16501
16186
実行命令数
30000
25000
20000
15000
10000
5000
2354
2161
466
7883
2434
2241
98
6716
2434
2241
16
5884
1704
3235
1576
3239
826
5853
826
5861
256
512
3927
3909
3185
3217
1704
3235
826
6333
826
6380
826
6157
0
64
0
2007年5月18日
128
使用可能なPE数
17
ci
カスタム命令の種類とRDP使用率
RDP使用率[%]
RDPの
PE数
カスタム命令
の種類
最大
最小
平均
64
18
80
3
53
128
57
75
2
45
256
64
88
1
26
512
62
56
0.4
14
2007年5月18日
18
目次
•
•
•
•
•
背景
動的再構成可能プロセッサ Vulcan2
ソフトウェア開発環境 ISAcc
評価実験
おわりに
2007年5月18日
19
おわりに
• まとめ
– アプリケーションを実装して実行命令数を測定
– PE数64では低機能なカスタム命令しか生成でき
ないが、PE数128・256ならば高機能なカスタム命
令の生成が可能
• 今後の予定
– クロックサイクルレベルでの詳細な性能評価
– Vulcan2のRDP部の詳細設計、面積の評価
– ISAccの更なる改良
2007年5月18日
20
御清聴ありがとうございました
2007年5月18日
21
付録
2007年5月18日
22
カスタム命令のRDP使用率と種類
PE数=128
PE数=64
使用P E数 R D P 使用率 種類
1
80%
51
3
78%
50
3
75%
48
1
61%
39
2
56%
36
1
55%
35
1
53%
34
1
52%
33
1
50%
32
1
28%
18
1
3%
2
2
0
0
合計
18種類
・srl,sll,andなどがカスタム
命令化されている
・基本ブロックが大きい?
2007年5月18日
使用P E数 R D P 使用率 種類
96
75%
1
94
73%
17
93
73%
1
81
63%
1
80
63%
1
79
62%
1
65
51%
2
64
50%
3
63
49%
1
54
42%
2
51
40%
1
50
39%
1
48
38%
5
34
27%
5
33
26%
5
24
19%
4
19
15%
1
2
2%
1
0
0%
4
合計
57 種類23
PE数=512
PE数=256
使用P E数 R D P 使用率 種類
224
88%
1
176
69%
2
128
50%
2
95
37%
1
94
37%
19
93
36%
1
81
32%
2
80
31%
1
78
30%
1
65
25%
1
61
24%
1
54
21%
3
51
20%
4
50
20%
1
48
19%
4
34
13%
3
33
13%
4
32
13%
2
24
9%
4
20
8%
1
17
7%
1
2
1%
1
0
0%
4
2007年5月18日
合計
64 種類
使用P E 数 R D P 使用率 種類
288
56%
1
256
50%
2
224
44%
1
159
31%
1
95
19%
1
94
18%
19
93
18%
1
81
16%
2
80
16%
1
78
15%
1
65
13%
1
64
13%
2
61
12%
1
54
11%
1
51
10%
4
50
10%
1
48
9%
3
34
7%
2
33
6%
4
32
6%
2
24
5%
4
20
4%
1
17
3%
1
2
0%
1
0
0%
4
合計
24
62 種類
Vulcan2の性能評価式
CCT:Clock Cycle Time
IC:Instruction Count
CPU時間V 2  CCT  (CPIbase  ICbase  CPI prcf  ICprcf  CPIci  ICci )
CCT
:クロックサイクル時間
CPIbase
ICbase
CPI prcf
ICprcf
:基本命令1命令当たりの平均所要クロックサイクル数
:基本命令の実行命令数
:prcf命令1命令当たりの平均所要クロックサイクル数
:prcf命令の実行命令数
CPI ci :ci命令1命令当たりの平均所要クロックサイクル数
ICci :ci命令の実行命令数
2007年5月18日
25
構成情報の再利用による
再構成時間の削減効果
PE=64
PE=128
PE=256
PE=512
CPIci=1[CC]
実行クロックサイクル数削減率
8.00%
6.00%
4.00%
2.00%
0.00%
1
2007年5月18日
2
3
4
8
CCprcf[CC]
16
32
26
基本命令とprcf命令の並列実行による
再構成時間の隠蔽効果
PE=64
PE=128
PE=256
PE=512
実行クロックサイクル数隠蔽率
25%
CPIci=1[CC]
20%
15%
10%
5%
0%
1
2007年5月18日
2
3
4
CCprcf[CC]
8
16
32
27
Vulcanのアーキテクチャ
PE
(Programmable
Element)
6入力2出力
LUT(Look Up
Table)
16行8列
128個
Controller
Reconfigurable Data Path
・・・
PE
PE
PE
PE
・・・
PE
・・・
PE
PE
PE
・・・
PE
・・・
PE
・・・
PE
・・・
Data
Memory
Program
Memory
Register
Files
PE
Configuration
Memory
28