差分
この文書の現在のバージョンと選択したバージョンの差分を表示します。
動的リコンフィギャラブルとは [2010/11/03 13:23] wasmii 作成 |
動的リコンフィギャラブルとは [2011/04/05 07:19] (現在) |
||
---|---|---|---|
ライン 7: | ライン 7: | ||
動的リコンフィギャラブルについて理解するためには,その対局にあるFPGA(Field-Programmable Gate Array)の構成についても理解する必要があります. | 動的リコンフィギャラブルについて理解するためには,その対局にあるFPGA(Field-Programmable Gate Array)の構成についても理解する必要があります. | ||
FPGAは,実行前にアプリケーション(回路情報:コンテキストデータ)をロードします.実行が始まると,その回路構成は変化しません.回路構成を変化させることのできないFPGAは,規模の大きなアプリケーションを実行可能とするために,非常に大きな構造を取っています.サイズの大きいシリーズでは回路を構成するブロック(スライス)を何十万と搭載しており,大容量化するアプリケーションに耐え,さらには複数のアプリケーションを1チップのFPGAで実行できるようになってきています. | FPGAは,実行前にアプリケーション(回路情報:コンテキストデータ)をロードします.実行が始まると,その回路構成は変化しません.回路構成を変化させることのできないFPGAは,規模の大きなアプリケーションを実行可能とするために,非常に大きな構造を取っています.サイズの大きいシリーズでは回路を構成するブロック(スライス)を何十万と搭載しており,大容量化するアプリケーションに耐え,さらには複数のアプリケーションを1チップのFPGAで実行できるようになってきています. | ||
+ | |||
+ | {{:fpga_structure.jpg|}} | ||
+ | 図:FPGAの構成(簡略図).スライスと呼ばれる回路構成単位を大量に並べた構成を取っている. | ||
+ | |||
一方で,いくら大容量とはいえ,アプリケーション実行中には実行される領域は限られています.つまり,一瞬一瞬で考えると,アプリケーション回路をすべて安直に搭載すると非常に無駄があるわけです. | 一方で,いくら大容量とはいえ,アプリケーション実行中には実行される領域は限られています.つまり,一瞬一瞬で考えると,アプリケーション回路をすべて安直に搭載すると非常に無駄があるわけです. | ||
+ | {{:active_fpga.jpg|}} | ||
+ | 図:アプリケーション回路実行中でも,ある瞬間にはアクティブになっている回路は少ない. | ||
+ | |||
+ | 一方で,動的リコンフィギャラブルアーキテクチャ(Dynamically Reconfigurable Processor Array)は,回路構成単位(プロセッシングエレメント:Processing Element:PE)の数を少なくし,代わりに各PEはアプリケーション実行中にその役割を切り替えることができるようになっています.この点から,FPGAと動的リコンフィギャラブルアーキテクチャは次のように見ることができます. | ||
+ | |||
+ | * FPGA : 実行時に機能を切り替え不能なブロックを大量に並べる(1-10万個) | ||
+ | * DRPA : 実行時に機能を切り替えることができるブロックを並べる(10-100個) | ||
+ | |||
+ | {{:pe_connection.png|}} | ||
+ | |||
+ | 図:動的リコンフィギャラブルアーキテクチャの基本構成.PEの数は少ない. | ||
+ | |||
+ | ====== PEの再構成によるデータパスの変更 ====== | ||
+ | |||
+ | 動的リコンフィギャラブルアーキテクチャのPEの構成は,次の図のようになっています.(これはMuCCRA-3の例) | ||
+ | |||
+ | {{:pe_structure.png|}} | ||
+ | |||
+ | FPGAのスライスとはずいぶんと違います.論理素子(AND,OR)などではなく,レジスタアレイ,ALU,スイッチなどが入っています. | ||
+ | そして,これらのALU,レジスタアレイ、スイッチなどが1クロックごとに動作を切り替えていきます.たとえばALUだと,あるクロックでは加算,つぎのクロックでは乗算といった具合です. | ||
+ | |||
+ | 瞬時に役割が切り替えられると,1つのPEが複数の役割をこなせると言うことがわかりますね. | ||
+ | 時分割された処理ならば,1つのPEが何役もこなすことができます.これが,動的リコンフィギャラブルアーキテクチャのPEの数が少なくて済む理由です. | ||
+ | |||
+ | また,動的リコンフィギャラブルアーキテクチャはPEのアレイで構成されていますが,各PEの機能は規則正しく一斉に切り替わっていきます.こうすることにより,PEアレイ全体で構成されるデータフローを切り替えていき,プログラムを実行していくというわけです. | ||
+ | |||
+ | {{:dataflow_exec.png|}} | ||
+ | |||
+ | 図:動的リコンフィギャラブルアーキテクチャのアプリケーション実行の流れ.1クロックごとにデータの流れを変え,アプリケーション回路を実行していく. | ||