マルチコアCPU 【multi-core CPU】 マルチコアプロセッサ / multi-core processor
概要
マルチコアCPU(multi-core CPU)とは、2つ以上のプロセッサコアを単一のICチップに集積したマイクロプロセッサ(MPU/CPU)。コアの数に応じて複数のコンピュータプログラムを並列に実行することができる。一般的なCPUでは、命令の解釈や演算、他の装置の制御などを行う回路を組み合わせた「プロセッサコア」(processor core)が1セット入っている。マルチコアCPUにはこのコアが複数内蔵されており、ちょうどCPUを複数個搭載しているような状態になる。
マルチコアCPUでは、各コアは単体で機能が完結していて独立しているため、それぞれのコアは他のコアに影響されることなく動作できる。一台のコンピュータに複数のプロセッサを搭載するマルチプロセッサと同じように、処理を複数のコアで分散して並列に実行することで性能を向上させる。
コアの数を増やしていけば同時に実行できるプログラムの数も増え、複数台のコンピュータを用意したのと同じように全体として性能を向上させることができる。ただし、単体のプログラムの実行性能(シングルスレッド性能)はこの方法で向上させることはできない。
演算回路などはコアごとに独立しているが、一部のキャッシュメモリ(2次キャッシュなど)や外部とのデータ伝送路などは複数のコアで共有される。キャッシュの共有は、あるコアが読み込んだデータを別のコアが流用できるなど性能面でのメリットもある。
一方、マルチコアCPUのデメリットとして、1個のプロセッサ製品にほぼフルセットのコアを複数個詰め込むという性質上、どうしてもプロセッサのサイズ(面積やトランジスタ数)は大きくなり、製造コストは高くつく。
マルチコアCPUはOSからは独立した複数のマイクロプロセッサとして扱われ、動作感もマルチプロセッサ構成とほとんど変わらないため、利用者やソフトウェア開発者はマルチコアCPU上での動作を特に意識する必要はない。
内蔵するコア数によって呼び方が変わり、2コアは「デュアルコア」、4コアは「クアッドコア」、6コアは「ヘキサコア」、8コアは「オクタコア」と呼ばれる。10コアや12コアの製品も開発されているが、これらは単に「数字+コア」と呼称されることが多い。
ヘテロジニアスマルチコア (heterogeneous multicore)
異なる種類(heterogeneous)のプロセッサコアを一つのICチップに集積して一体的にどうさせる方式をヘテロジニアスマルチコアという。
機能や得意分野の異なる複数の種類のコアを統合することにより、様々な場面で総合的に高い性能を発揮できるように設計されている。ただし、性能を引き出すためには複雑なプログラミングが必要とされるため、対応ソフトの開発コストは高くなりがちになる。
ヘテロジニアス方式は組み込みシステム向けのプロセッサなどで採用例があり、ソニーのプレイステーション3のCPUである「Cell/Broadband Engine」プロセッサなどが有名。一方、パソコンやサーバ向けの汎用CPU製品では同じコアを複数搭載するホモジニアスマルチコアが主流となっている。
ホモジニアスマルチコア (homogeneous multicore)
同じプロセッサコアを複数集積したマルチコアプロセッサのことをホモジニアスマルチコアという。通常、単にマルチコアと言えばこの方式のため、あえて明示することは少なく、異なる種類のコアを組み合わせるヘテロジニアスマルチコアと対比する文脈で主に用いられる用語である。x86/x64系プロセッサなど、一般に広く流通する汎用的なCPU製品の多くがこの方式である。