【システム構成】1クロックで限界を超えて処理する!「多重命令発行プロセッサ」|情報処理問題1000本ノック
プロセッサの性能を高める究極の手法。「1サイクルに1命令」という基本の枠組みを壊し、同時に複数の命令を撃ち出す驚異のメカニズムを攻略しましょう。
1. 【 問題 】:プロセッサの並列処理アーキテクチャ
【 問題 】 コンピュータのCPU(プロセッサ)の高速化技術において、CPU内部に複数の演算器(実行ユニット)を搭載し、1サイクル(1クロック信号)あたりに複数の命令を同時に読み込んで実行へと移す(発行する)ことができるプロセッサの総称(仕組み)として、最も適切なものはどれでしょうか?
① パイプラインプロセッサ (Pipeline Processor)
② 多重命令発行プロセッサ (Multiple Instruction Issue Processor)
③ コプロセッサ (Co-processor)
④ CISCプロセッサ (Complex Instruction Set Computer)
2. 正解:
正解: ② 多重命令発行プロセッサ(複数命令発行プロセッサ)
3. 解説:演算器を並べて同時にアタックする
初期のCPUは「1サイクルあたり1つの命令を処理する」のが限界でした。しかし、演算を行うパーツ(演算器)をCPUの中に2つ、3つと並べて配置し、それらに同時に命令を割り振ることで、1サイクルあたり複数の命令を並列実行させる仕組みが作られました。これが多重命令発行プロセッサです。
試験では、この多重命令発行プロセッサの「具体的な中身(アプローチ)」として以下の2つが超頻出です。
・スーパースカラ(Super Scalar)
→ 命令の依存関係(順番通りに実行してバグらないか)を、CPUのハードウェアがリアルタイムに判断して、同時に実行できる命令を複数発行する方式。
・VLIW(Very Long Instruction Word)
→ 同時に実行できる複数の命令を、コンパイラ(ソフトウェア側)が事前に長い1つの命令にまとめておき、CPUはそれをそのまま並列実行する方式。
★ ① パイプラインプロセッサ:命令を「翻訳」「実行」などのステージに細分化し、前の命令の終わりを待たずに次の命令をずらして開始する(ベルトコンベア式)プロセッサです。1サイクルあたりに「発行(開始)」する命令自体は1つです。
★ ③ コプロセッサ:メインのCPUを補助するために、浮動小数点演算や画像処理などを専門に担当する「補助プロセッサ」のことです。
★ ④ CISCプロセッサ:複雑で高機能な命令セットをハードウェアで直接実行するタイプのCPUアーキテクチャ(Intelのx86など)のことです。
1. 理解のコツ: 「ラーメン屋さんの厨房」に例えてみましょう。
・1人の職人が、麺茹で、盛り付けをずらしながら同時進行するのがパイプラインです。
・それに対して、厨房に職人を2〜3人並べて、チャイムが1回鳴る(1サイクル)ごとに「はい、ラーメン2丁同時に一気に作り始めて!(多重命令発行)」と指示を出すのがこの仕組みです。圧倒的なスピードアップが図れます。
2. 試験対策の視点: 「1サイクルあたり複数の命令を実行」「複数(多重)の命令を発行」という文脈があれば多重命令発行プロセッサが正解です。午前試験では、この言葉そのものの定義を問う問題のほか、前述の「スーパースカラ」や「VLIW」という具体的な名称とセットで正解の選択肢に絡んでくる、システム構成(アーキテクチャ)の超重要基本です。
4. まとめ
「CPUの内部に複数の実行ユニットを持たせ、1クロックの間に同時に複数の命令を撃ち出すことで、クロック周波数以上の処理速度を叩き出す設計思想」。これが多重命令発行プロセッサです。現代のIntelやAMD、Appleのプロセッサなどはすべてこの多重命令発行(スーパースカラなど)を極限まで進化させた構造になっており、私たちのPCの超高速なマルチタスクを支えています。