IPA プロセッサ・性能計算 — 頻出論点と過去問

頻出論点

1. この分野は何か

プロセッサの性能指標の計算と、命令を効率よく実行するためのハードウェアの制御方式を扱う分野です。クロック周期と1命令あたりのサイクル数から実行時間やMIPSを導く関係式に加え、パイプラインや並列実行の制御主体、レジスタ・特権レベル・割込みの役割を区別することが要点になります。

2. 実際の出題のされ方

CPUの基本要素と用語の役割を結び付ける問題が、ITパスポートで出ています。CPU内部の高速な記憶回路やクロックの役割、ビット数・クロック周波数・コア数の違いによる性能の大小関係、3次元画像処理などを担うGPUの用途を選ぶ問題が出題されています。

応用情報技術者の午前や高度試験の午前Iでは、高速化アーキテクチャの仕組みと、性能指標の計算問題が中心になります。知識問題では、5段パイプラインのステージの順序や、VLIW・投機実行・ヘテロジニアスマルチコアプロセッサといった高速化・省電力化の方式が問われます。加えて、ディープラーニングの学習にGPUを用いる利点や、量子コンピュータの量子ビット・重ね合わせ・量子超越性の概念も出題されています。計算や手順を問う問題では、クロック周期とCPI(Cycles Per Instruction)から2つのコンピュータの処理時間の比を求める問題や、動作周波数と1秒間の実行命令数から平均CPIを求める問題が出ています。パイプラインの所要サイクル数、読取り・CPU処理・書込みを重ねたときの最大データ処理件数、重なり合うメモリ領域を上書きせずにブロック転送する開始アドレスと方向フラグの指定を問う問題もあります。

パイプラインやハザード対策の仕組みに加え、プログラムカウンタ・エンディアン・特権レベルといったソフトウェアから見たCPUの動きまで踏み込んで問われるのが、エンベデッドシステムスペシャリストの午前IIです。アウトオブオーダ実行などのハザード対策、ビッグエンディアンでのレジスタへのロード結果、4段階の特権レベル(EL0〜EL3)へのソフトウェアモジュールの割当てが出題されています。アムダールの法則による性能向上比の上限判定や、big.LITTLEテクノロジ・RISC-Vの説明を選ぶ問題もあります。

スーパースカラやハーバードアーキテクチャのねらい、パイプラインの実行時間を表す式は、システムアーキテクトの午前IIで問われています。

命令の種類ごとのCPIと構成比率から実行時間を求める計算や、量子アニーリング方式の説明を選ぶ問題はネットワークスペシャリストの午前IIで、内部割込みの要因を選ぶ問題はITサービスマネージャの午前IIで出題されています。

3. 学習のポイント

プロセッサの性能計算では、クロック周波数ff(Hz)とクロック周期TT(秒)が互いに逆数(T=1fT = \frac{1}{f})であることを出発点にします。1命令あたりの平均サイクル数がCPIであり、総命令数IIのプログラムの実行時間は次の関係式で求まります。

実行時間=I×CPI×T=I×CPIf\text{実行時間} = I \times \text{CPI} \times T = \frac{I \times \text{CPI}}{f}

命令種別ごとにCPIや実行時間が異なる場合は、それぞれの値に出現頻度(構成比率)を掛けて足し合わせることで、1命令あたりの平均CPIや平均命令実行時間を算出します。1秒間に実行できる命令数を100万単位で表すMIPS(Million Instructions Per Second)は、平均命令実行時間で1秒を割り、さらに10610^6で割ることで求められます。

パイプライン処理については、RISCプロセッサにおける5段パイプラインの順序を、命令フェッチ → 命令デコードとレジスタファイル読出し → 実行とアドレス生成 → メモリアクセス → 書込み(ライトバック)の流れとして押さえます。ハザードなしでパイプラインを実行するとき、たとえば4段のパイプラインで10命令を実行すると、最初の命令が4サイクルで終わり、残りの9命令が1サイクルずつ続いて完了するので、合計13サイクルかかります。全体の実行時間は、この総サイクル数に1ステージの処理時間(ピッチ)を掛けて求めます。また、読取り・CPU処理・書込みのように処理時間の異なる複数のステップを並行動作させる場合は、最も処理時間が長いステップの間隔で1件ずつ処理が完了していく点に着目します。

命令レベルの並列化とハザード対策は、誰が・いつ並列性や順序を制御するかで整理します。

  • VLIWとスーパースカラ:VLIWは同時に流せる命令の組合せをコンパイラが前もって決め、1つの長い命令語に詰める方式であるのに対し、スーパースカラは実行ユニットを複数持ち、並べて実行できる命令をプロセッサ自身が実行中に見つけて同時に流す方式です。
  • 投機実行とアウトオブオーダ実行:分岐の結果が出る前に、予測した側の命令を進めておく方式が投機実行であり、前の命令がデータ待ちで止まっていても、準備のできた後ろの命令から先に実行する方式がアウトオブオーダ実行です。
  • バスとマルチコアの方式:命令用バスとデータ用バスを物理的に分離して同時アクセスを可能にし実行時間を短縮するのがハーバードアーキテクチャです。マルチコアでは、高性能コアと低消費電力コアを混載して処理性能と省電力を両立するヘテロジニアスマルチコア(ARMのbig.LITTLEなど)と、同一性能のコアを並べるホモジニアスマルチコアを区別します。また、複数のプロセッサが1つの主記憶を共有する構成では、同時に主記憶を使おうとして待ちが生じるため、台数を増やしても性能は台数倍になりません。アムダールの法則で並列化できる割合をrrとすると、プロセッサを何台に増やしても性能向上比の上限は11−r\frac{1}{1 - r}です。

ハードウェア制御の基礎知識として、以下の点も整理しておきます。

  • 制御レジスタとブロック転送:命令アドレスレジスタ(プログラムカウンタ)は次に実行すべき命令が格納されている主記憶上の番地を保持し、条件分岐命令の成立時などに内容が書き換えられます。同一メモリ空間で領域が重なるブロック転送では、転送先の方が大きい番地にずれている場合、小さい番地(昇順)から1語ずつ写すと未転送のデータが上書きされるため、大きい番地の端を開始アドレスとして降順に転送します。
  • エンディアン:複数バイトのデータを主記憶に格納する際、ビッグエンディアンは上位バイトから順に若い(小さい)番地へ配置し、リトルエンディアンは下位バイトから若い番地へ配置します。
  • 特権レベルと割込み:ハードウェアリソースへのアクセスを制限する特権レベルは、管理する側ほど強い権限を持つ階層になっており、アプリケーションよりOS、OSより複数のOSを管理するハイパーバイザー、さらにその下のシステム最下層を制御するファームウェアやセキュアモニタの方が高い特権レベルで動作します。割込みは、ゼロでの除算やページフォールトのように実行中の命令が原因で起こる内部割込みと、入出力の完了やキーボードの入力のようにCPUの外の装置が原因で起こる外部割込みに分けられます。
  • GPUと量子コンピュータ:GPUは単純な演算コアを多数持ち、同じ命令を大量のデータに一斉に適用する並列計算を得意とします。量子コンピュータは、0と1の重ね合わせ状態をもつ量子ビットと量子論理ゲートを用いて汎用的な計算を行う量子ゲート方式と、組合せ最適化問題に特化した量子アニーリング方式の2つを対比して押さえます。

4. 間違えやすいところ

パイプラインのサイクル数や実行時間の計算では、最初の命令と後続の命令の重なりに関する「−1-1」を忘れた誤答肢がありました。ステージ数と命令数をそのまま足した式や数値が誤答肢として並んでいます。最初の1命令がステージ数分のサイクルを占め、1サイクルずつ遅れて完了する残りの命令は総命令数より1つ少ないことを確認すれば防げます。

性能指標の計算では、割り算の向きや求めた中間値の扱いに注意が必要です。動作周波数と1秒間の実行命令数から平均CPIを求める問題では、分子と分母を逆にして1サイクルあたりの実行命令数(IPC)を計算した値が誤答肢にあります。また、2つのコンピュータの処理時間の比を求める問題では分母と分子を逆にした比率が、命令ミックスからMIPSを求める問題では算出した平均命令実行時間の数値をそのままMIPS値とした選択肢がありました。さらに、読取り・CPU処理・書込みを並行実行する問題では、最も長いステップの時間ではなく、3ステップの合計時間で割った直列処理の件数が誤答肢に含まれています。

用語や仕組みの選択では、似た概念のすり替えに気をつけます。

  • プログラムカウンタの保持内容:プログラムカウンタが指す番地の主記憶に、命令そのものではなく実行すべき命令のアドレスが入っているとした誤答肢があります。また、「クロックは,次に実行すべき命令の格納位置を記録する」のようにクロックの説明にプログラムカウンタの役割を混ぜた誤答肢も出ています。
  • CPUとGPUの特性の混同:ディープラーニングにGPUを用いる利点を問う問題では、「各プロセッサコアが独立して異なるプログラムを実行し,異なるデータを処理できる」や「分岐予測を行い,パイプラインの利用効率を高めた処理を実行できる」といったCPU側の特徴が誤答肢として並んでいます。
  • 量子コンピュータとRISC-Vの誤解:量子ゲート方式について「特定のアルゴリズムによる演算だけができ,加算演算はできない」と量子アニーリング方式の特徴にすり替えた選択肢や、極低温ではなく高温で動作するとした選択肢があります。また、RISC-Vについては「学術研究には無償で使用でき,商用のライセンス料も安価に抑えられている」という誤答肢がありますが、商用利用であっても命令セットの仕様自体はロイヤリティフリー(無償)で提供されています。

プロセッサ・性能計算の理解度チェック

プロセッサ・性能計算の過去問一覧

プロセッサ・性能計算の用語

ハードウェアのほかの論点

メモリ・キャッシュ43問 補助記憶・入出力装置27問 論理回路24問 電子部品・電子回路14問