マルチコア(Multiple core、Multi-core)は、1つのプロセサ・パッケージ内に複数のプロセサ・コアを封入した技術であり、マルチ・プロセッシングの一形態である。
外見的には1つのプロセサでありながら内部的には複数のプロセサとして認識されるため、主に
並列処理を
行わせる
環境下においては、プロセサ・
チップ全体での処理能力を上げ性能向上を果たすために
行われる。このプロセサ・パッケージ内のプロセサ・コアが2つであれば
デュアルコア、4つであれば
クアッドコア、8つではオクタコアと呼ばれる。高性能な専用プロセサの中には数十個ものコアを持つものがあり、メニーコア(Many core)と呼ばれる。従来の1つのコアを持つプロセサは
マルチコアに対してシングルコアと呼ばれる。
概要
マルチコアはシングルコアに対し、
プロセスルールが同じであれば、
実装したプロセサ・コア数に比例してダイが大きくなる。面積が増えると、級数的に製造不良が増えるなど製造の面での難度が上る。
並列コンピューティングに対応したプログラミングが必要なため、
ソフトウェアの開発は難しくなるが、
OSや
ミドルウェアなどが
並列処理の支援を
行うことで
ソフトウェア開発は容易なものとなる場合がある。
マルチプロセッサに対応しているプロセッサの
マルチコア化の開発は、比較的簡単である。
パーソナルコンピュータでは高消費電力と廃熱処理や騒音対策などによる制約や
クロック周波数対効果の停滞などにより、この技術へのシフトが進んでいる。
マルチコア・プロセサは消費電力低減と発熱抑制を目的に、各コアごとに動作電圧やクロック・スピードの可変制御を
行ったり、
休止状態を含む動作状態の制御を
行なっている製品もある。コアごとに複数の電圧で給電する
システムが別途必要となるため、単一電圧よりは難易度は高い。
マルチコア・プロセサに似た技術に、同時マルチスレッディング(Simultaneous multi-threading、
SMT)がある。これは1つのプロセサを外部から2つ以上に見せるという点では同じだが、実際に存在しているコアは1つ、すなわちシングルコアであるという点で
マルチコア技術とは根本的に異なる。