平成29年度 III-10

科目: 専門科目 / 分野: 情報工学部門 / 年度: 平成29年度

III-10 問題画像

出典:公益社団法人 日本技術士会「技術士第一次試験 過去問題」

ステージ数Dの単一の命令実行パイプを持つパイプラインプロセッサで、1ステージがPナノ秒のとき、N個の命令の実行が完了するまでの時間を求める問題。パイプラインハザードは起きないものとする。答えは(N+D−1)×P。

解説

この問題で問われていること

パイプライン処理で、N個の命令を実行するのに必要な時間を、式で表す問題。

解き方

① パイプライン: 1つ目の命令はD段を通ってD×P、その後は1命令ごとにPずつ完了する
② D×P+(N−1)×P。迷ったらN=1でD×P、N=2で(D+1)×Pになるかで確かめる
③ (N+D−1)×P(⑤)

正解が正しい理由

最初の命令が完了するまでには、D個のステージを通るので、D×Pナノ秒かかる。その後は、1つ命令が完了するごとにP(ナノ秒)ずつ進み、残りの(N−1)個の命令が、Pごとに次々と完了する。したがって全体の時間は、D×P+(N−1)×P=(N+D−1)×Pナノ秒となる。⑤が正しい。

この問題で必要な基礎

■ パイプライン処理
1つの命令の実行をD個の段階(ステージ)に分け、流れ作業のように、前の命令が次のステージに進んだら、空いたステージで次の命令の処理を始める方式です。1つの命令が全ステージを通るにはD×Pナノ秒かかりますが、2つ目以降の命令は、前の命令からPナノ秒遅れで次々と完了します。

各選択肢について

覚えるべきポイント

パイプライン: 最初の命令の完了にD段(D×P)、以降はP時間ごとに1命令が完了。Nが大きいと、1命令あたり約Pで、逐次実行のD倍の速度になる。

キーワード: パイプライン、スループット、ステージ数、命令実行時間、パイプラインハザード、プロセッサ、情報工学部門