マルチコアプロセッサに関する記述のうち,最も適切なものはどれか。
平成25年度 秋期 ITパスポート試験 問66
この問題の解説と、これまでの解答の記録です。
問 66
不正解ア
1 台の PC に複数のマイクロプロセッサ (CPU) を搭載する構成はマルチプロセッサであって、一つの CPU 内にコアを複数もつマルチコアとは異なる。さらに、各プロセッサで同時に同じ処理を実行して結果を照合するのは、故障や誤りを検出して信頼性を高めるための多重化 (デュアルシステムなどのフォールトトレラント設計) の考え方である。マルチコアの各コアは同じ処理を重複して行うのではなく別々の処理を分担し、その目的も信頼性ではなく処理能力の向上にある。搭載の単位も目的も食い違うので誤り。
不正解イ
まず数の上で誤っている。クアッドコアはコアが 4 個、デュアルコアは 2 個なので、コア数の比は 4 ÷ 2 = 2 倍であり、4 倍にはならない。加えて、コア数を倍にしても処理能力がそのまま倍になるわけではない。プログラムには並列化できない逐次処理の部分が必ず残り (アムダールの法則)、メモリやキャッシュ、バスの奪い合い、OS によるスケジューリングや同期の負荷も生じるため、実際の性能向上はコア数の比よりも小さくなるのが普通である。演算装置の構造とクロック周波数が同じという条件を付けても、4 倍という断定は成り立たない。
不正解ウ
処理の負荷に応じて一時的にクロック周波数を高くする仕組みは、消費電力や温度に余裕があるときだけ定格を超えて動作させる動的なクロック制御 (いわゆるターボ機能) の説明であり、マルチコアプロセッサそのものの定義ではない。この機能は 1 コアのプロセッサにも実装しうるし、逆にマルチコアであってもこの機能を持たない製品はある。マルチコアの本質は周波数を上げることではなく、コアの数を増やして処理を並列に分担させる点にあるので、記述の焦点がずれており誤り。
- エ
正解 正解はエ。マルチコアプロセッサとは、一つの CPU (プロセッサのパッケージ) の内部に、演算や制御を行う処理回路のまとまりであるコアを複数個搭載したプロセッサのことである。コアは実質的に CPU の中核部分そのものであり、コアが 2 個ならデュアルコア、4 個ならクアッドコア、8 個ならオクタコアと呼ぶ。それぞれのコアが独立して命令を取り出し・解読・実行できるため、複数の処理 (スレッドやプロセス) を文字どおり同時並行で走らせることができ、単位時間あたりに処理できる仕事量、すなわち処理能力 (スループット) が向上する。エはこれを「一つの CPU 内に演算などを行う処理回路を複数個もち、それぞれが同時に別の処理を実行することによって処理能力の向上を図る」と正確に言い表しており、内蔵する場所 (一つの CPU 内)、持つもの (複数の処理回路 = コア)、動き方 (同時に別の処理)、目的 (処理能力の向上) の四点がすべて定義と合致する。背景として、かつては CPU の性能をクロック周波数の引上げで伸ばしてきたが、周波数を上げるほど消費電力と発熱が急増して限界に達したため、周波数を無理に上げずにコア数を増やして並列に処理する方向へ設計がかじを切った、という流れを押さえておくとよい。
- マルチコアプロセッサの定義: 一つの CPU の中に演算などを行う処理回路 (コア) を複数個もち、各コアが同時に別々の処理を並列実行して処理能力 (スループット) の向上を図るプロセッサ。コア 2 個でデュアルコア、4 個でクアッドコア。クロック周波数の引上げが発熱と消費電力の制約で頭打ちになったことへの対応策として普及した。
- 紛らわしい類似概念との区別: 1 台の機器に CPU を複数搭載するのはマルチプロセッサ、同じ処理を多重に実行して結果を照合するのは信頼性向上のための多重化 (フォールトトレラント)、負荷に応じてクロック周波数を一時的に上げるのは動的クロック制御 (ターボ機能)。またコア数が n 倍でも性能は n 倍にならない (逐次部分の存在=アムダールの法則、資源競合や同期のオーバーヘッド) という点も頻出。