マルチコアの解説(基本情報技術者シラバス用語)

目次

マルチコアとは

マルチコア(マルチコアプロセッサ)とは、1つのCPUパッケージ(集積回路)の中に、コンピュータの頭脳である「コア(演算回路の中心部)」を複数搭載している仕組みのことです。コアが2つのものを「デュアルコア」、4つのものを「クアッドコア」、8つのものを「オクタコア」と呼びます。かつては1つのCPUに1つのコアしかありませんでしたが、計算速度をさらに上げるために複数のコアを並べる技術が開発されました。複数のコアが処理を分担して並行して行うことができるため、複数のアプリを同時に起動して作業する際にもパソコンの動作が重くなりにくく、極めてスムーズに処理できます。

具体例

1つのオフィス(CPU)で働く事務員の人数(コア数)に例えられます。1人だけで全ての仕事をこなす(シングルコア)よりも、4人の事務員がそれぞれ別々の仕事(ブラウザで調べ物をする、音楽を流す、書類を印刷するなど)を分担して同時に進めるほうが、オフィス全体の作業スピードが遥かに向上します。

もう少し詳しく

コンピュータの歴史において、長い間CPUの性能を向上させる主な方法は「クロック周波数を引き上げる(動作のテンポを速くする)」ことでした。しかし、クロック周波数を高め続けると、CPUが発する熱量と消費電力が急激に増大し、冷却が追いつかなくなる「熱の壁(消費電力の壁)」という物理的な限界に直面しました。この問題を解決するために登場したのがマルチコア技術です。1つのコアを無理に超高速で動かすのではなく、少しクロック周波数を抑えたコアを1つのチップ(半導体)の中に複数配置し、それらに計算を分担させることで、発熱と消費電力を抑えながらシステム全体の処理能力(スループット)を劇的に向上させることができました。

マルチコアプロセッサの性能を最大限に引き出すためには、同時に実行されているソフトウェア(OSやアプリケーション)の側も、処理を複数の作業単位(スレッドやプロセス)に分割して並列に行う「マルチスレッド処理」に対応している必要があります。例えば、動画のエンコード(変換)や3Dグラフィックスのレンダリングといった作業は、データを細かく分割して各コアに割り当てやすいため、コア数が増えるほど処理時間が目に見えて短縮されます。一方で、前の処理が終わらないと次の処理に進めないような順次処理が多いプログラムの場合は、コアが複数あっても一部のコアしか働かず、残りのコアは待機状態になってしまうため、マルチコアの恩恵を十分に受けることができません。

近年では、スマートフォンやパソコン向けのプロセッサにおいて、「高性能だが電力を多く消費するコア(Pコア:パフォーマンスコア)」と、「性能は控えめだが消費電力が非常に少ないコア(Eコア:高効率コア)」など、性質の異なる複数のコアを組み合わせて1つのチップに搭載する「ヘテロジニアスマルチコア(非対称マルチコア)」と呼ばれる技術も一般的になっています。これにより、重い作業は高性能コアで素早くこなし、裏での軽い通信処理などは省電力コアに任せることで、バッテリー寿命を大幅に延ばす工夫がなされています。

試験でのポイント

情報処理技術者試験では、「なぜマルチコアプロセッサが普及したのか」という背景や目的がよく問われます。「クロック周波数の向上による性能アップが、消費電力や発熱の問題(熱の壁)で限界に達したため、並行処理によって性能を向上させるマルチコアが主流になった」という歴史的・技術的な背景を必ず押さえておきましょう。

また、「コア数」と「クロック周波数」の関係についても理解が必要です。試験問題の中で「シングルコアで高クロックのCPU」と「マルチコアで低クロックのCPU」を比較させるようなケースがあります。「単一の直列処理の実行速度はクロック周波数が高い方が速いが、複数の処理を同時に行う(マルチタスク)環境では、マルチコアの方が全体の効率が良い」という性質を覚えておいてください。

さらに、マルチコアに関連して、ソフトウェアを複数のスレッドに分けて並行処理する「マルチスレッド」という用語もセットで出題されます。ハードウェアがマルチコアであっても、ソフトウェア側が処理を分割できなければ性能を引き出せない、というシステム全体の仕組みについての知識も問われるポイントです。

関連する用語

関連する用語として、ソフトウェアの処理の最小単位である「スレッド」、1つのプロセッサで同時に複数のスレッドを処理する技術「マルチスレッド」、発熱や消費電力の限界を指す「熱の壁」などがあります。

読んだ内容を10問練習と実技で確認

記事で理解した用語を、StudyQuestの演習とクラウド実技ラボで定着させます。

10問練習 実技ラボ