5‐04 スループットを決める
●パイプラインは流れ作業
図5‐21のように「半田付け」、「箱詰め」、「ネジ締め」の3つの作業を考えます。これらを一人で行う場合、同図(a)のように30秒×3=90秒毎に製品が1個完成します。
同図(b)ではそれらの作業を3人(A/B/C君)で行っています。この場合は30秒毎に製品が1個完成します。「パイプライン」とはこのような「流れ作業」のイメージになります。 |

図5-21 FPGAは並列動作する
●パイプラインは並列動作
例えばマイコンで3つの作業を行う場合は同図(a)のような「逐次動作」になります。それに対しFPGAで行う場合は同図(b)のような「並列動作」になります。
並列動作させる場合はこれら3つの作業の「バランス」を考える必要があります。図5‐22は「箱詰め」にかかる時間が飛びぬけて短く、これではB君は暇になってしまいます。 |

図5‐22 作業がアンバランスだと効率が悪い
●一人だけ早くてもあまり意味がない
この話をFPGAに置き換えると、1層目から6層目までをパイプラインで動かす際、どれか一つの層だけ早く終わってしまうという状況になります。つまり、一つの層にたくさんリソース(乗算器など)を投入しても、結局スループットは変わらないことになり、リソースの無駄になってしまいます。 |
●程よい速度と程よい回路規模のスループットを探る
そこでまず「スループット」を決めます。そしてその時間内に各層が演算終了できるか、その為にはどれくらい並列度を上げれば良いか、FPGAのリソースはその並列度を許容できるかなどを考察します。 |
次のページへ
目次へ戻る
|