- 第3章 FPGAの仕組み
章トップ(目次)
3-1 FPGAとは何か
3-2 論理回路の基本構成(LUT / FF)
3-3 配線資源とスイッチ構造
3-4 クロックと同期設計
3-5 FPGAの設計方法(HDL)
3-6 CPU・GPU・FPGAの違い
3-7 構成データと再構成
3-8 タイミング設計と制約(STA)
3-9 配置配線(Place & Route)
3-10 I/Oとピン制約
3-11 CPU・GPU・FPGAの本質的違い
▶ 第2章 GPUの仕組み
3-1 FPGAとは何か
FPGA(Field Programmable Gate Array)とは、
利用者が自由に回路構成を変更できる集積回路です。
CPUやGPUが「決められた命令セットを実行する装置」であるのに対し、
FPGAは処理そのものの構造をハードウェアとして作り替える点が最大の特徴です。
プログラムではなく「回路」を作る
CPUやGPUでは、プログラムは命令列として解釈され、
クロックに同期して順序よく実行されます。
一方FPGAでは、プログラムを書くというよりも、
論理回路を記述して配置・配線するという考え方になります。
その結果、条件分岐やループといった概念は、
ソフトウェアの制御構文ではなく、
回路の並列構造として実現されます。
CPU・GPU・FPGAの基本的な違い
| 項目 | CPU | GPU | FPGA |
|---|---|---|---|
| 処理単位 | 命令 | 多数の同一命令 | 回路そのもの |
| 並列性 | 限定的 | 非常に高い | 完全に自由 |
| 柔軟性 | 高い | 中程度 | 設計次第 |
| 遅延 | 命令実行分の遅延 | スレッド管理の遅延 | 最小(回路遅延のみ) |
なぜFPGAは高速なのか
FPGAが高速である理由は、
命令解釈やスケジューリングを行わないためです。
一度回路が構成されれば、入力信号がそのまま
論理回路を通過して出力へ伝搬します。
これは、あなたが13歳の頃に
構文を分解してマシン語へ変換できると気づいた体験
と本質的に同じです。
FPGAではさらに一歩進み、
「命令」すら存在しない世界になります。
FPGAが向いている用途
- 低遅延が重要な信号処理
- 決まった計算を高速に繰り返す処理
- ハードウェアレベルでの並列化
- CPUやGPUでは無駄が多い専用処理