基本情報技術者試験「パイプラインの性能」の問題
4段のパイプラインを持つCPUで1000命令を実行する。各段1クロックでハザードはないとき、同じ処理を段を重ねない逐次実行(1命令4クロック)で行った場合に対する高速化率(逐次の所要クロック÷パイプラインの所要クロック)はおよそ何倍か。
ア1倍
イ2倍
ウおおよそ1.3倍
エ約4倍
正解
エ.約4倍
逐次実行のクロック数=段数×命令数=4×1000=4000。パイプラインの所要クロック=k+n-1=4+1000-1=1003。高速化率=4000÷1003≒3.99で約4倍となり正しい。
?選択肢ごとの解説
ア ×1倍はパイプライン化しても速くならないとした誤りで、段の重なりによる短縮(4000→約1003)を無視している。
イ ×2倍は段数4の半分しか速くならないと見積もった誤りで、立ち上がりの影響を過大に評価している。
ウ ×おおよそ1.3倍は逐次とパイプラインのクロック数を取り違える、たとえば分子分母を近い値どうしにした誤りである。
エ ○逐次実行のクロック数=段数×命令数=4×1000=4000。パイプラインの所要クロック=k+n-1=4+1000-1=1003。高速化率=4000÷1003≒3.99で約4倍となり正しい。
✎くわしく
パイプラインの理想高速化率は命令数nが十分大きいとき段数kに近づく。これは逐次のk×nに対しパイプラインがk+n-1≒nとなり、比がk×n÷n=kに収束するためである。本問はn=1000がk=4に比べ十分大きく、ほぼ段数倍の高速化となる。
✓本番での押さえどころ
試験のコツ
高速化率の上限は段数k。命令数が段数より十分多ければ『ほぼ段数倍』と即断できる。
覚え方
パイプラインは『段数だけ並列が効く』=理想で段数倍速い。命令が多いほど立ち上がりが薄まり段数倍に近づく、と覚える。
よくある誤り
パイプラインのクロックをk×nのままにする、または立ち上がりk-1を二重に数えて高速化率を小さく見積もる誤りが多い。
コンピュータ構成要素の他の問題
この問題を、AIの8-ways解説つきで。
無料ではじめる →基本情報技術者試験の演習を、一問ごとに「なぜ」まで。まずは無料で。
ukamiru 過去問 · 基本情報技術者試験 · fe-a3-0154