スポンサーリンク

問題の解答・解説ページ

このページは解説の閲覧モードです。
実力試しをしたい方は、下のボタンからクイズに挑戦してください!

この問題をクイズ形式で解く
問題 No.1956
CPUのパイプライン処理において、各ステージの処理時間が均等でない場合に全体の処理速度に影響を与える要因に関する記述として、最も適切なものはどれか。

【正解の解説】

最も処理時間が長いステージがボトルネックとなり、全体のクロックサイクル周期やスループットを制限する要因となる。

これは工場などの流れ作業と同じで、全員が一つのチームとしてベルトコンベアで仕事をする状態です。もし一人の作業員だけが極端に遅いと、他の人がどれだけ手際よく仕事を終わらせても、その遅い人のところで必ず渋滞が起きてしまいます。つまり、パイプライン全体の実力は、一番能力が低い(時間がかかる)メンバーによって完全に支配されてしまうのです。

スポンサーリンク

【その他の選択肢の解説】

すべてのステージの処理時間の平均値が全体のクロックサイクル周期となり、短縮されたステージの効果相殺要因となる。

「みんなの平均をとれば帳尻が合うだろう」と考えてしまいがちですが、それは大きな誤解です。実際のハードウェアの世界は非常に厳しく、一番遅い奴が仕事を終えるまで次の工程へ進めないルールになっています。平均値で動くわけではなく、常に一番遅いボトルネックに全体のスピードが強制的に合わせられてしまうのです。

最も処理時間が短いステージに合わせて全体の処理速度が最適化され、全体のスループットが向上する要因となる。

初学者が「短ければ短いほうが良いはずだ」と直感的に勘違いしやすい典型的なひっかけパターンです。もし一番短いステージに合わせて時計の針を早めてしまうと、重い処理をしているステージが途中で時間切れになってしまい、システム全体が盛大にエラーを起こしてしまいます。速い方に合わせるのではなく、遅い方に足を合わせざるを得ないのが現実です。

各ステージの処理時間のばらつきに関わらず、命令数に応じた一定のクロック数が全体のスループットを規定する要因となる。

「命令の数さえ決まっていればスピードは一定になるはずだ」と考えてしまうのは危険な罠です。実際には各ステージの凸凹(ばらつき)がそのまま性能のロスに直結します。デコボコ道で一番大きな穴のせいでスピードが出せないのと同じように、ステージ間のアンバランスさがそのまま全体の性能を大きく低下させる要因になります。