動的再構成可能プロセッサ vulcan2 と そのソフトウェア開発環境 isacc...

28
動動動動動動動動動動動動 Vulcan2 動 動動動動動動動動動動動動 ISAcc 動動動動動動 動動動動動動動動 動動動動動 ,, 動動動動Lovic GAUTHIER Victor MAURO GOULART FERREIRA Antoine TROUVE 動動動動動 動動動動 ,, 1 2007 動 5 動 18 動

Upload: tarmon

Post on 12-Jan-2016

52 views

Category:

Documents


0 download

DESCRIPTION

動的再構成可能プロセッサ Vulcan2 と そのソフトウェア開発環境 ISAcc に関する研究. 平木哲夫, 門内伸吾 ,山崎陽介, 神戸隆行, Lovic GAUTHIER , Victor MAURO GOULART FERREIRA , Antoine TROUVE ,井上弘士,村上和彰. 目次. 背景 動的再構成可能プロセッサ Vulcan2 ソフトウェア開発環境 ISAcc 評価実験 おわりに. 目次. 背景 動的再構成可能プロセッサ Vulcan2 ソフトウェア開発環境 ISAcc 評価実験 おわりに. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 動的再構成可能プロセッサ Vulcan2 と そのソフトウェア開発環境 ISAcc に関する研究

動的再構成可能プロセッサ Vulcan2 とそのソフトウェア開発環境 ISAcc

に関する研究

平木哲夫,門内伸吾,山崎陽介,神戸隆行, Lovic GAUTHIER ,

Victor MAURO GOULART FERREIRA ,Antoine TROUVE ,井上弘士,村上和彰

12007 年 5 月 18 日

Page 2: 動的再構成可能プロセッサ Vulcan2 と そのソフトウェア開発環境 ISAcc に関する研究

目次

• 背景• 動的再構成可能プロセッサ Vulcan2• ソフトウェア開発環境 ISAcc• 評価実験• おわりに

22007 年 5 月 18 日

Page 3: 動的再構成可能プロセッサ Vulcan2 と そのソフトウェア開発環境 ISAcc に関する研究

目次

• 背景• 動的再構成可能プロセッサ Vulcan2• ソフトウェア開発環境 ISAcc• 評価実験• おわりに

32007 年 5 月 18 日

Page 4: 動的再構成可能プロセッサ Vulcan2 と そのソフトウェア開発環境 ISAcc に関する研究

ASIP(Application Specific Instruction-set Processor)

• 携帯電話やデジタルカメラなどに用いられるシステム LSI– 動画、暗号、通信プロトコル等、アプリケーションの多様化– 要求:高い計算能力、小面積、低開発コスト

• 解決手法: ASIP– 高負荷処理をカスタム命令化

2007 年 5 月 18 日 4

CPUCPU MemoryMemory

ASIPASIP

<問題点>設計時に想定されたアプリケーションに対して単一命令セットしか実装できない

<問題点>設計時に想定されたアプリケーションに対して単一命令セットしか実装できない

高性能を実現

Page 5: 動的再構成可能プロセッサ Vulcan2 と そのソフトウェア開発環境 ISAcc に関する研究

再構成可能 ASIP• 再構成可能ハードウェアで実現されたデータパ

スを搭載– プログラム実行開始時にのみ再構成– アプリケーション毎に命令セットを特化できる!

• 各カスタム命令の機能を制限するものは・・・– 命令セットの大きさ– 再構成可能ハードウェアの面積

2007 年 5 月 18 日 5

CPUCPU MemoryMemory

再構成可能 ASIP再構成可能 ASIP

Page 6: 動的再構成可能プロセッサ Vulcan2 と そのソフトウェア開発環境 ISAcc に関する研究

動的再構成可能 ASIP

• プログラム実行中にデータパスを再構成– 長所:ハードウェア資源の有効利用

• 単一カスタム命令が全ての再構成可能ハードウェア資源を利用可能

• 高機能なカスタム命令を定義• 実行命令数を大幅に削減

– 短所:再構成時間の顕在化• 頻繁な再構成に伴う時間的オーバーヘッド• プログラム実行時間の増大

2007 年 5 月 18 日 6

Page 7: 動的再構成可能プロセッサ Vulcan2 と そのソフトウェア開発環境 ISAcc に関する研究

動的再構成可能 ASIP   Vulcan2• 動的再構成可能 ASIP Vulcan2

– PE をベースとした RDP(Reconfigurable Data Path)– 専用命令による再構成の制御

• Vulcan2 向けソフトウェア開発環境 ISAcc– 命令セットの自動生成、配置配線– 再構成オーバーヘッドを考慮した命令スケジューリン

グ• 高性能化を達成するためのポイント• いかに再構成制御命令の実行回数を削減するか?• いかにカスタム命令の高機能化により実行命令数を削減するか?• 本研究の目的:実装する PE 数の違いが総実行命令

数削減効果に与える影響を調査

2007 年 5 月 18 日 7

Page 8: 動的再構成可能プロセッサ Vulcan2 と そのソフトウェア開発環境 ISAcc に関する研究

目次

• 背景• 動的再構成可能プロセッサ Vulcan2• ソフトウェア開発環境 ISAcc• 評価実験• おわりに

82007 年 5 月 18 日

Page 9: 動的再構成可能プロセッサ Vulcan2 と そのソフトウェア開発環境 ISAcc に関する研究

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

2007 年 5 月 18 日 9

Vulcan 2

ALUALULoadStoreLoadStore

Register FileRegister File

Memory busMemory bus

RDPRDP

Inner busInner bus

• 命令セット• 32bit 標準的 RISC 命令• カスタム命令• RDP 再構成制御命令

• 内部構成• 5 ステージ・パイプラ

イン• 算術論理演算ユニット

ALU• 動的再構成可能ユニッ

ト RDP• 32bit ×32 本の汎用レジ

スタ

Page 10: 動的再構成可能プロセッサ Vulcan2 と そのソフトウェア開発環境 ISAcc に関する研究

Vulcan2 の RDP(Reconfigurable Data Path)

PEPESWSW

SWSW

SWSW

SWSW

SWSW

SWSW

SWSW

SWSW

SWSW

SWSW

SWSW

SWSW

・・・ ・・・ ・・・・・・

・・・・・・

PEPE

PEPE

PEPE

PEPE

PEPE

PEPE

PEPE

PEPE

PEPE

PEPE

PEPE

VL(Vertical Line)

128bit

HL(Horizontal Line)

64bit・・・

2007 年 5 月 18 日 10

VLと HL間の

スイッチ

6 入力 2 出力LUT

Page 11: 動的再構成可能プロセッサ Vulcan2 と そのソフトウェア開発環境 ISAcc に関する研究

再構成オーバーヘッドの隠蔽

• コンパイラによる命令スケジューリング– 再構成制御命令 (prcf 命令 ) と RISC 命令の並列実行– 構成情報の再利用

時間の経過RCRC

1 クロックサイクル

WBWB

IDID

MEME

EXEEXE WBWB

RCRC

EXEEXE WBWB

IFIF

IFIF

IFIF

prcf RCRC RCRC

MEME

MEME

IDID

IDID

EXEEXE WBWBIFIF MEMEIDID

EXEEXE WBWBMEMEIFIF EXEEXEIDIDci

add

sub

nop

EXEEXE WBWBMEMEIFIF EXEEXEIDIDci

2007 年 5 月 18 日 11RC:ReConfiguration

prcf では何もしない

prcf では何もしない

Page 12: 動的再構成可能プロセッサ Vulcan2 と そのソフトウェア開発環境 ISAcc に関する研究

目次

• 背景• 動的再構成可能プロセッサ Vulcan2• ソフトウェア開発環境 ISAcc• 評価実験• おわりに

122007 年 5 月 18 日

Page 13: 動的再構成可能プロセッサ Vulcan2 と そのソフトウェア開発環境 ISAcc に関する研究

2007 年 5 月 18 日 13

Vulcan2Vulcan2

動的再構成可能 ASIP 向け開発環境ISAcc

フロントエンド

命令セット合成

バックエンド

命令ライブラリ

ISAcc

•  HW非依存な最適化• ビット幅解析

•  HW非依存な最適化• ビット幅解析

• HW依存最適化• アセンブリ・コード生成• prcf 命令スケジューリング

• HW依存最適化• アセンブリ・コード生成• prcf 命令スケジューリング

• SW の構文要素に対応する命令部品の集まり

• SW の構文要素に対応する命令部品の集まり

C言語プログラム

C言語プログラム

Vulcan2 バイナリコード

Vulcan2 バイナリコード

構成情報構成情報

配置配線部

• CI のネットリストを配置配線• CI のネットリストを配置配線

• C 構文要素パターン・マッチング• CI のネットリストを合成• 命令の合成の最適化

• C 構文要素パターン・マッチング• CI のネットリストを合成• 命令の合成の最適化

Page 14: 動的再構成可能プロセッサ Vulcan2 と そのソフトウェア開発環境 ISAcc に関する研究

目次

• 背景• 動的再構成可能プロセッサ Vulcan2• ソフトウェア開発環境 ISAcc• 評価実験• おわりに

142007 年 5 月 18 日

Page 15: 動的再構成可能プロセッサ Vulcan2 と そのソフトウェア開発環境 ISAcc に関する研究

評価実験

• 評価対象モデル– 標準的な RISC プロセッサ– Vulcan2 プロセッサ

• RDP の PE 数: 64 、 128 、 256 、 512

• 実験環境– コード生成には ISAcc を利用– Vulcan2 シミュレータにより実行命令数を測

定• アプリケーション

– DES(Data Encryption Standard)• 64bit×16 の平文を 56bit の鍵で暗号化 152007 年 5 月 18 日

Page 16: 動的再構成可能プロセッサ Vulcan2 と そのソフトウェア開発環境 ISAcc に関する研究

コードサイズ

2007 年 5 月 18 日 16

Page 17: 動的再構成可能プロセッサ Vulcan2 と そのソフトウェア開発環境 ISAcc に関する研究

実行命令数

2007 年 5 月 18 日 17

Page 18: 動的再構成可能プロセッサ Vulcan2 と そのソフトウェア開発環境 ISAcc に関する研究

2007 年 5 月 18 日 18

カスタム命令の種類と RDP使用率

RDP のPE 数

カスタム命令の種類

RDP使用率 [%]

最大 最小 平均

64 18 80 3 53

128 57 75 2 45

256 64 88 1 26

512 62 56 0.4 14

Page 19: 動的再構成可能プロセッサ Vulcan2 と そのソフトウェア開発環境 ISAcc に関する研究

目次

• 背景• 動的再構成可能プロセッサ Vulcan2• ソフトウェア開発環境 ISAcc• 評価実験• おわりに

192007 年 5 月 18 日

Page 20: 動的再構成可能プロセッサ Vulcan2 と そのソフトウェア開発環境 ISAcc に関する研究

おわりに

• まとめ– アプリケーションを実装して実行命令数を測

定– PE 数 64 では低機能なカスタム命令しか生成

できないが、 PE 数 128 ・ 256 ならば高機能なカスタム命令の生成が可能

• 今後の予定– クロックサイクルレベルでの詳細な性能評価– Vulcan2 の RDP 部の詳細設計、面積の評価– ISAcc の更なる改良

202007 年 5 月 18 日

Page 21: 動的再構成可能プロセッサ Vulcan2 と そのソフトウェア開発環境 ISAcc に関する研究

御清聴ありがとうございました

212007 年 5 月 18 日

Page 22: 動的再構成可能プロセッサ Vulcan2 と そのソフトウェア開発環境 ISAcc に関する研究

付録

2007 年 5 月 18 日 22

Page 23: 動的再構成可能プロセッサ Vulcan2 と そのソフトウェア開発環境 ISAcc に関する研究

23

PE 数 =64

合計   18種類

PE 数= 128

合計   57 種類

PE使用 数 RDP使用率 種類96 75% 194 73% 1793 73% 181 63% 180 63% 179 62% 165 51% 264 50% 363 49% 154 42% 251 40% 150 39% 148 38% 534 27% 533 26% 524 19% 419 15% 12 2% 10 0% 4

カスタム命令の RDP使用率と種類

・ srl,sll,and などがカスタム命令化されている・基本ブロックが大きい?

PE使用 数 RDP使用率 種類51 80% 150 78% 348 75% 339 61% 136 56% 235 55% 134 53% 133 52% 132 50% 118 28% 12 3% 10 0 2

2007 年 5 月 18 日

Page 24: 動的再構成可能プロセッサ Vulcan2 と そのソフトウェア開発環境 ISAcc に関する研究

24

PE 数 =256

合計   64 種類

PE 数 =512

合計   62 種類

PE使用 数 RDP使用率 種類224 88% 1176 69% 2128 50% 295 37% 194 37% 1993 36% 181 32% 280 31% 178 30% 165 25% 161 24% 154 21% 351 20% 450 20% 148 19% 434 13% 333 13% 432 13% 224 9% 420 8% 117 7% 12 1% 10 0% 4

PE使用 数 RDP使用率 種類288 56% 1256 50% 2224 44% 1159 31% 195 19% 194 18% 1993 18% 181 16% 280 16% 178 15% 165 13% 164 13% 261 12% 154 11% 151 10% 450 10% 148 9% 334 7% 233 6% 432 6% 224 5% 420 4% 117 3% 12 0% 10 0% 42007 年 5 月 18 日

Page 25: 動的再構成可能プロセッサ Vulcan2 と そのソフトウェア開発環境 ISAcc に関する研究

25

Vulcan2 の性能評価式)(2 ciciprcfprcfbasebaseV ICCPIICCPIICCPICCTCPU 時間

baseCPI

baseIC

:基本命令 1 命令当たりの平均所要クロックサイクル数:基本命令の実行命令数

prcfCPI

ciCPIprcfIC

ciIC

: prcf命令の実行命令数

: ci命令の実行命令数

: prcf命令 1 命令当たりの平均所要クロックサイクル数

: ci命令 1 命令当たりの平均所要クロックサイクル数

CCT: Clock Cycle TimeIC: Instruction Count

CCT :クロックサイクル時間

2007 年 5 月 18 日

Page 26: 動的再構成可能プロセッサ Vulcan2 と そのソフトウェア開発環境 ISAcc に関する研究

構成情報の再利用による再構成時間の削減効果

2007 年 5 月 18 日 26

Page 27: 動的再構成可能プロセッサ Vulcan2 と そのソフトウェア開発環境 ISAcc に関する研究

基本命令と prcf 命令の並列実行による再構成時間の隠蔽効果

2007 年 5 月 18 日 27

Page 28: 動的再構成可能プロセッサ Vulcan2 と そのソフトウェア開発環境 ISAcc に関する研究

28

Vulcan のアーキテクチャProgramMemoryProgramMemory

ControllerController

DataMemory

DataMemory

PEPE PEPE PEPE PEPE

PEPE PEPE PEPE PEPE

PEPE PEPE PEPE PEPE

・・・

・・・

・・・

・・

・ ・・

・ ・・

・ ・・

・・・・

RegisterFiles

RegisterFiles

Reconfigurable Data Path

ConfigurationMemory

ConfigurationMemory

PE(ProgrammableElement)6 入力 2 出力LUT(Look Up Table) 

16行 8列128個