最終更新日:2026年8月4日
fe fe-technology computer-architecture
まず結論
マルチコアプロセッサは、一つのプロセッサ内に複数の処理コアを搭載し、複数の処理を並列に実行できるようにしたプロセッサです。
基本情報技術者試験では、次の判断軸を押さえると選択肢を切りやすくなります。
複数コアで処理を分担する
→ プロセッサ全体の性能を高めやすい
極端な高クロック化だけに頼らない
→ 性能当たりの消費電力を抑えやすい
ただし、すべての処理を並列化できるわけではない
→ コア数どおりに性能が伸びるとは限らない
特に重要なのは、次の3点です。
- コア数を増やしても、性能が必ず同じ倍率で向上するとは限らない
- 複数コアは、主記憶やキャッシュなどの共有資源を取り合うことがある
- 各コアのクロック周波数が、シングルコアより必ず高くなるわけではない
直感的な説明
一人の作業者を無理に速く働かせる方法と、複数人で仕事を分担する方法を考えます。
シングルコアを高クロック化するイメージ
作業者1人
↓
より速く働かせる
↓
発熱や消費電力が増えやすい
マルチコアのイメージ
作業者を複数人にする
↓
作業を分担する
↓
全体の処理量を増やす
ただし、どんな仕事でも完全に分担できるわけではありません。
例えば、前の作業結果が出るまで次の作業を始められない場合は、作業者を増やしても速くなりません。
並列化できる部分
→ 複数コアの効果が出やすい
順番にしか進められない部分
→ コア数を増やしても速くならない
定義・仕組み
マルチコアプロセッサとは
マルチコアプロセッサは、一つのプロセッサチップやパッケージ内に、複数のCPUコアを搭載したプロセッサです。
プロセッサ
├─ コア1
├─ コア2
├─ コア3
└─ コア4
各コアは、命令を取り出して実行する処理機能を持ちます。
OSは、複数のプロセスやスレッドを各コアへ割り当てます。
処理A → コア1
処理B → コア2
処理C → コア3
処理D → コア4
複数の処理を同時に進められる場合、プロセッサ全体の処理能力を高められます。
シングルコアとの違い
| 項目 | シングルコア | マルチコア |
|---|---|---|
| コア数 | 1個 | 複数 |
| 同時実行 | 基本的に1コアで処理 | 複数コアで並列実行可能 |
| 性能向上の方法 | 高クロック化など | コア数と並列処理を活用 |
| 注意点 | 単一処理の性能が重要 | 並列化と同期が重要 |
シングルコアでも、処理を高速に切り替えることで複数の処理が同時に進んでいるように見せられます。
一方、マルチコアでは、複数のコアが物理的に異なる処理を同時実行できます。
なぜ省電力につながるのか
プロセッサを高速化する方法の一つに、クロック周波数を上げる方法があります。
しかし、クロック周波数を高くすると、一般に動作電圧や発熱も増えやすくなります。
そこで、極端な高クロック化だけに頼らず、複数コアで処理を分担します。
高クロックの1コア
→ 高性能だが消費電力と発熱が増えやすい
比較的低いクロックの複数コア
→ 並列処理で全体性能を高めやすい
このため、同程度の性能を得る場合、マルチコアは高クロックの単一コアよりも、性能当たりの消費電力を改善しやすいと考えられます。
ただし、マルチコアなら必ず総消費電力が小さくなるという意味ではありません。
コア数や処理負荷が増えれば、プロセッサ全体の消費電力も増える場合があります。
コア数どおりに性能が伸びない理由
理想的には、2コアなら2つの処理、4コアなら4つの処理を同時に進められます。
しかし、実際の性能向上は、コア数の倍率を下回ることが多くあります。
主な理由は次のとおりです。
- 並列化できない処理が残る
- 処理を分割して各コアへ配る時間がかかる
- コア同士の同期が必要になる
- 計算結果を最後にまとめる必要がある
- 主記憶やキャッシュなどを共有する
- OSのスケジューリングに時間がかかる
コア数を2倍
→ 必ず2倍速くなるわけではない
コア数を4倍
→ 必ず4倍速くなるわけではない
順番にしか実行できない部分が残るためです。
この考え方は、アムダールの法則にもつながります。
基本情報技術者試験では、数式を暗記するよりも、直列部分が残るため、コア数どおりには高速化しないと理解しておくことが重要です。
共有資源の競合
複数のコアが、次のような資源を共有する場合があります。
- 主記憶
- キャッシュ
- メモリバス
- 入出力装置
- 同じデータ
- ファイルやデータベース
複数のコアが同じデータを同時に更新すると、処理結果が不正になることがあります。
コア1:値を読み込む
コア2:同じ値を読み込む
コア1:値を更新する
コア2:古い値を基に更新する
↓
一方の更新が失われる可能性
そのため、ロックや排他制御、同期処理が必要です。
複数コア
→ 共有資源の競合が起こり得る
→ 同期・排他制御が必要
マルチコアとマルチプロセッサ
| 用語 | 構成 |
|---|---|
| マルチコア | 一つのプロセッサ内に複数コア |
| マルチプロセッサ | 一つのシステム内に複数プロセッサ |
マルチコア
CPUチップ
├─ コア1
└─ コア2
マルチプロセッサ
システム
├─ CPU1
└─ CPU2
どちらも、複数の処理装置で並列処理する点は共通しています。
公式の出題範囲やシラバスは、IPA:基本情報技術者試験から確認できます。
科目Aでどう出る?
科目Aでは、マルチコアの特徴として正しいものを選ぶ問題が出題されます。
判断手順
問題文を見たら、次を確認します。
1. 複数コアによる並列処理か
2. 性能がコア数どおりに伸びると断定していないか
3. 共有資源の競合を無視していないか
4. クロック周波数が必ず高くなると書かれていないか
選択肢を切るキーワード
| 選択肢の表現 | 判断 |
|---|---|
| 複数のコアで並列処理する | 適切 |
| 高クロック化を抑えて性能を高める | 適切 |
| 性能当たりの消費電力を改善しやすい | 適切 |
| コア数の二乗に比例して性能が上がる | 誤り |
| コア数どおり必ず高速化する | 誤り |
| 共有資源の競合は発生しない | 誤り |
| 排他制御は不要である | 誤り |
| 各コアのクロックが必ず高くなる | 誤り |
判断例
次のような説明を考えます。
複数のコアで処理を分担することで、極端な高クロック化を避けながら、プロセッサ全体の性能を高めやすい。
この説明は適切です。
複数コア
+
並列処理
↓
全体性能を向上
高クロック化を抑える
↓
性能当たりの消費電力を改善しやすい
一方、次の説明は誤りです。
コア数を2倍にすれば、どのプログラムでも必ず2倍速くなる。
並列化できない処理や同期のオーバーヘッドがあるためです。
どんな場面で使う?
マルチコアは、複数の処理を同時に進められる場面で効果を発揮します。
効果が出やすい例
- 複数利用者からの要求を処理するサーバ
- 動画や画像の変換
- 大量データの集計
- 科学技術計算
- 複数アプリケーションの同時実行
- 独立した複数タスクの処理
例えば、画像を複数の領域に分割し、それぞれを異なるコアで処理できれば、並列化の効果が出やすくなります。
効果が出にくい例
- 前の計算結果が出ないと次へ進めない処理
- 単一スレッドだけで動くプログラム
- 共有データへのアクセスが多い処理
- コア間の同期が頻繁に必要な処理
処理同士が独立している
→ マルチコアの効果が出やすい
処理同士の依存が強い
→ マルチコアの効果が小さくなりやすい
よくある誤解・混同
コアを2倍にすれば必ず2倍速くなる
誤りです。
並列化できない部分や、処理を分割・同期するオーバーヘッドがあります。
2コア
≠ 必ず2倍
4コア
≠ 必ず4倍
コア数が多ければ、どのプログラムでも速くなる
プログラム側が複数コアを利用できるように作られていなければ、効果は限定的です。
単一スレッドしか使わないプログラムでは、基本的に一つのコアしか使いません。
マルチコアでは共有資源の競合が起きない
誤りです。
複数のコアが同じ主記憶、キャッシュ、ファイル、データを利用するため、競合は発生します。
ロック、排他制御、同期処理が必要です。
マルチコアはクロック周波数を高める技術
誤りです。
マルチコアは、各コアのクロック周波数を必ず高くするのではなく、処理するコア数を増やして全体性能を高める考え方です。
マルチコアなら必ず省電力になる
必ず総消費電力が小さくなるとは限りません。
試験では、次のように整理します。
同程度の性能を得る場合
高クロックの単一コアより
複数コアの方が省電力化しやすい
まとめ(試験直前用)
最後に、試験直前の判断基準を整理します。
複数コアで並列処理
→ プロセッサ全体の性能を高めやすい
高クロック化だけに頼らない
→ 性能当たりの消費電力を抑えやすい
コア数を増やす
→ 性能が同じ倍率で上がるとは限らない
主記憶やキャッシュを共有する
→ 競合や同期が必要になる
各コアのクロック周波数
→ シングルコアより必ず高いわけではない
一言で覚えるなら、次です。
マルチコアは、複数コアで処理を分担して性能と省電力を両立しやすくするが、並列化できない部分や共有資源の競合があるため、性能はコア数どおりには伸びない。