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のリソースはその並列度を許容できるかなどを考察します。


次のページへ


目次へ戻る