SAシステムアーキテクト試験 午前Ⅱ

令和3年度春期 システムアーキテクト 午前Ⅱ 問21

問題文と選択肢を読んで答えを考えてから、下の「正解と解説を見る」で確認しましょう。

問題

パイプラインの深さをD,パイプラインピッチをP秒とすると,I個の命令をパイプラインで実行するのに要する時間を表す式はどれか。ここで,パイプラインは1本だけとし,全ての命令は処理にDステージ分の時間がかかり,各ステージは1ピッチで処理されるものとする。また,パイプラインハザードについては,考慮しなくてよい。

選択肢

  1. ア
    (I + D) × P
  2. イ
    (I + D - 1) × P
  3. ウ
    (I × D) + P
  4. エ
    (I × D - 1) + P
解き方のヒントを見る

処理順を整理するための視点

パイプラインを検討するときは、各段階の役割を個別に捉え、処理の前後関係と同時に扱える範囲を整理して、全体の流れと判断の根拠を落ち着いて確認しましょう。

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

一つの観点として、段階どうしの依存関係に注目してください。ある処理の結果が次の処理の前提になるかを見極め、順序を考える材料を整理し、個別の知識だけで決めずに検討してください。

視点

各段階を独立した役割として書き出し、入力・出力・前提条件のつながりを比べます。全体を一度に判断せず、隣接する段階の関係から流れを確認すると整理しやすくなります。

確認ポイント

  • 各段階の結果が、後続の段階を始める前提になっているかを確認する。
  • 段階間のつながりを、処理の目的と受け渡される情報に分けて整理する。
  • 全体の順序を決める前に、前後関係が必要な箇所だけを見分ける。
正解と解説を見る

正解

イ

解説

パイプラインの深さがDステージ、ピッチがP秒なら、最初の命令の完了までにDピッチ、その後は命令ごとに1ピッチずつ進む。したがってI個目までの所要時間は(D+I-1)P秒です。

理由

最初の命令はD個のステージを通過するため、完了までD×P秒かかる。その後、パイプラインハザードがないので、命令は1ピッチ、すなわちP秒ごとに完了する。残りのI-1個の命令には(I-1)×P秒が必要です。よって、合計はD×P+(I-1)×P=(I+D-1)×P秒となる。

比較

この問題では、各命令をDステージ分ずつ順番に処理するのではなく、ステージを重ねて利用する。したがって、命令数Iとステージ数Dをそのまま掛け合わせる式や、時間の単位がそろっていない式は、パイプラインの完了間隔を正しく表していない。

選択肢ア

これは不正解だよ。Dステージを通過する初回の完了までと、その後の命令が1ピッチずつ完了する部分を合わせると、必要なピッチ数はD+I-1になる。この式はD+Iとしており、最後の命令までの間隔を1回分多く数えている。

選択肢イ(正解)

これは正解だよ。最初の命令が完了するまでにDピッチ、その後のI-1個の命令はそれぞれ1ピッチ間隔で完了する。したがって必要な時間は、(D+I-1)ピッチに相当する(I+D-1)×P秒となる。

選択肢ウ

これは不正解だよ。I×Dは、パイプラインの重なりを考えず、全命令がDステージを順番に処理する場合の段階数に近い表し方である。また、そこへPを加えており、ステージ数を表す無次元量と秒を足しているため、時間の単位も整合しない。

選択肢エ

これは不正解だよ。I×D-1という部分は、命令数とステージ数を単純に掛けた値を基にしており、パイプラインで後続命令が1ピッチごとに完了する関係を表していない。さらに、その値にPを加えるだけで、全体をP秒単位に換算していない。

学習のポイント

初回の処理完了時間と後続命令の処理間隔を区別する。

出典:独立行政法人 情報処理推進機構(IPA)令和3年度春期 システムアーキテクト試験 午前Ⅱ 問21(公式資料:問題冊子(PDF) / 解答例)

関連する過去問一覧

IPA Advancedは非公式の学習サイトです。解説にはAIによる補助生成を含む場合があります。公式の問題冊子・解答例・採点講評を優先し、誤りは確認後に訂正します。運営・編集方針