【初心者向け】CPU 関連の用語【５分で読める】

# CPU 関連の用語

理解のために小咄形式でまとめました。

:::note info
システムパフォーマンス関連記事の目次
- [【初心者向け】システムパフォーマンス関連まとめ【それぞれ５分で読める】](https://qiita.com/nouernet/items/d3efe67e0f52a92e061d)
:::

**登場人物**
- **太郎（後輩）**：入社1年目の若手エンジニア。
- **花子（先輩）**：システムエンジニア歴3年の先輩。

**場面：オフィスの開発ルーム**
*太郎が `CPU 関連の用語` に関する資料を見ながら、花子に質問する。*

**太郎**：「花子先輩、`CPU 関連の用語` について整理したいんですが、`プロセッサ、コア、スレッドの違い` って何ですか？」

**花子**：「いい質問ね！ `CPUの基本概念` を理解することで、 `マルチコアやスレッディングの仕組み` が分かるわ。`6 つの主要な用語` を説明するわね。」

---

### **CPU 関連の用語**
**花子**：「CPU に関連する `6 つの重要な用語` を解説するわね。」

1. **プロセッサ（Processor）**
2. **コア（Core）**
3. **ハードウェアスレッド（Hardware Thread）**
4. **CPU命令（Instruction）**
5. **論理CPU（Logical CPU）**
6. **命令セット（Instruction Set）**

---

### **1. プロセッサ（Processor）**
**花子**：「`プロセッサ` は、 `物理的なチップ` のことよ。」

- **CPU とは `中央処理装置（Central Processing Unit）` の略で、計算処理を行うハードウェア。**
- **物理プロセッサ（Physical Processor） は `システムに搭載されるチップ全体` のこと。**
- **1 つのプロセッサには `1 つ以上のコア` を持つことができる。**

「これは `工場全体` みたいなもので、 `工場（プロセッサ）が製品（データ）を加工する` のよ。」

**太郎**：「ってことは、 `プロセッサ自体はチップ全体` を指すんですね！」

---

### **2. コア（Core）**
**花子**：「`コア` は、 `プロセッサ内の個々の演算ユニット` よ。」

- **シングルコア CPU** → `1 つのコアだけを持つ古いタイプの CPU。`
- **マルチコア CPU** → `複数のコアを持ち、並列処理が可能。`
- **現代のプロセッサは、`2 ～ 64 コア以上` を搭載することが一般的。**

「例えば `キッチンのコンロ` みたいなもので、 `1 つのコンロ（コア）` しかなければ `1 つの料理しか作れない` けど、 `複数のコンロ（マルチコア）` があれば `同時に複数の料理を作れる` のよ。」

**太郎**：「なるほど、 `コアが増えるほど並列処理ができる` んですね！」

---

### **3. ハードウェアスレッド（Hardware Thread）**
**花子**：「`ハードウェアスレッド` は、 `1 つのコアが同時に処理できるスレッド数` のことよ。」

- **Intel の `ハイパースレッディング（Hyper-Threading, HT）` 技術は、 `1 つのコアで 2 つのスレッドを同時実行可能。`**
- **AMD の SMT（Simultaneous Multi-Threading） も `同様に 1 コアで複数のスレッドを並列処理。`**
- **例えば、 `8 コアの CPU で SMT を有効にすると、 `16 論理 CPU（8 × 2 スレッド）` が使用可能になる。**

「これは `飲食店のレジ` みたいなもので、 `1 つのレジ（コア）に 2 つの店員（スレッド）がついて`、 `交互にお客さんをさばく仕組み` よ。」

**太郎**：「つまり、 `1 つのコアが複数のスレッドを処理できる` ことで、 `リソースを効率的に使える` んですね！」

---

### **4. CPU命令（Instruction）**
**花子**：「`CPU命令` は、 `CPU が実行できる基本的なオペレーション` のことよ。」

- **算術演算（加算、減算、乗算など）**
- **メモリアクセス（データの読み書き）**
- **制御命令（分岐やループ処理）**

「これは `レシピの指示` みたいなもので、 `料理（プログラム）を作るために、手順（命令）を実行する` のと同じよ。」

**太郎**：「CPU の `命令セット` によって、 `どんな計算ができるか決まる` んですね！」

---

### **5. 論理CPU（Logical CPU）**
**花子**：「`論理CPU` は、 `OS から見える仮想的な CPU 数` のことよ。」

- **物理 CPU** が `8 コア` でも、 `SMT によって 16 論理 CPU` に見えることがある。
- **OS は論理 CPU を単位としてスケジューリングを行う。**
- **`cat /proc/cpuinfo` を実行すると、 `OS が認識している論理 CPU` の数を確認できる。**

「これは `デジタル時計とアナログ時計` みたいなもので、 `中身は同じだけど見え方が違う` のと同じね。」

**太郎**：「なるほど！ `OS の視点では、論理 CPU が処理単位` なんですね！」

---

### **6. 命令セット（Instruction Set）**
**花子**：「`命令セット` は、 `CPU が理解できる命令の集合` よ。」

- **x86, ARM, RISC-V など、`CPU のアーキテクチャごとに異なる命令セット` がある。**
- **x86 は `デスクトップ PC やサーバー` に多い。**
- **ARM は `近年のMac`、`スマホやタブレット、組み込み機器` で広く使われている。**
- **RISC-V は `オープンソースの命令セット` で、新しい技術として注目されている。**

「これは `言語の違い` みたいなもので、 `日本語しか話せない人に英語の指示を出しても理解できない` のと同じよ。」

**太郎**：「ってことは、 `CPU の種類によって動かせるプログラムが違う` んですね！」

---

### **まとめ**
**花子**：「CPU の `基本用語` を理解すると、 `パフォーマンス分析や最適化の基礎` が分かるわ。」

**太郎**：「ありがとうございます！ `CPU のコア数と SMT の影響` を `htop コマンド` で確認してみます！」

# 参考リンク

システムパフォーマンス関連記事の目次

- [【初心者向け】システムパフォーマンス関連まとめ【それぞれ５分で読める】](https://qiita.com/nouernet/items/d3efe67e0f52a92e061d)

システムパフォーマンス関連記事は、以下の書籍を参考に記述しています。

- [［改訂新版］プロのためのLinuxシステム構築・運用技術](https://www.amazon.co.jp/dp/B01LZURAPK)
- [改訂2版 ネットワークエンジニアの教科書](https://www.amazon.co.jp/dp/B07NXQ4TDV)
- [絵で見てわかるシステムパフォーマンスの仕組み](https://www.amazon.co.jp/dp/B00LHFOTF4)
- [詳解 システム・パフォーマンス 第2版](https://www.oreilly.co.jp/books/9784814400072/)
- [入門 モダンLinux](https://www.oreilly.co.jp/books/9784814400218/)
- [Linuxシステム管理](https://www.oreilly.co.jp/books/9784873113463/)