この概念が出た関連問題

この試験の対策ガイド

情報処理安全確保支援士試験 対策ガイド

合格率・勉強法・参考書の選び方をまとめています

見る →
答えと解説を見る(先に解くのがおすすめ)

正解は エ

解説

スーパスカラ(Superscalar)は、1つのプロセッサコア内に複数の演算器(実行ユニット)を備え、互いに依存関係のない複数の命令を同時にそれぞれの演算器へ振り分けて並列実行する高速化技術です。命令レベル並列性(ILP)を活用してCPI(命令あたりのクロック数)を下げ、1クロックで複数命令を完了させることを狙います。命令の依存関係を動的に解析し、並列実行できる命令を選び出して各演算器へ割り当てる制御が特徴で、現代の高性能CPUの多くが採用しています。選択肢dは「並列実行可能な複数の命令を、複数の演算器に振り分けることによって並列に実行する」とあり、スーパスカラの定義そのものなので正解です。なお、1つの命令の処理を複数の段階に分割して時間的に重ねるパイプラインが「時間的な並列化」であるのに対し、スーパスカラは複数命令を同時に実行する「空間的な並列化」である点が本質的な違いです。両者は併用されることも多く、混同しないよう整理しておきましょう。

なぜ他の選択肢は違うのか

選択肢 ア
「一つのチップ内に複数のプロセッサコアを実装し、複数のスレッドを並列に実行する」はマルチコアプロセッサの説明です。スーパスカラは1つのコアの内部で複数命令を並列実行する技術であり、独立した複数のコアを1チップに集積するマルチコアとは並列化の粒度(命令単位かコア単位か)が異なります。コアの数を増やして並列性を得るマルチコアと、1コア内で命令を並列実行するスーパスカラは併用されることも多いですが、別概念です。
選択肢 イ
「一つのプロセッサコアで複数のスレッドを切り替えて並列に実行する」はマルチスレッディング(同時マルチスレッディング/SMTやハイパースレッディング等)の説明です。スレッド単位で並列性を確保する技術であり、1スレッド内の複数命令を複数演算器へ振り分けるスーパスカラとは観点が異なります。スレッドを切り替えて並列性を高めるマルチスレッディングは、命令を演算器へ振り分けるスーパスカラとは並列化の単位が異なります。
選択肢 ウ
「一つの命令で、複数の異なるデータに対する演算を、複数の演算器を用いて並列に実行する」はSIMD(Single Instruction Multiple Data)の説明です。1命令で多数のデータをまとめて処理するベクトル演算的手法であり、複数の「異なる命令」を同時に実行するスーパスカラとは並列化の対象(データか命令か)が異なります。

解くときのポイント

並列化技術の区別:スーパスカラ(複数命令を複数演算器へ=空間的並列)、パイプライン(命令を段階分割して時間的に重ねる)、SIMD(1命令で複数データ)、マルチコア(複数コア)、マルチスレッド(複数スレッド)。粒度で整理する。