0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【初心者向け】CPU の基本概念(コンセプト)【5分で読める】

Last updated at Posted at 2025-02-19

CPU の基本概念(コンセプト)

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

登場人物

  • 太郎(後輩):入社1年目の若手エンジニア。
  • 花子(先輩):システムエンジニア歴3年の先輩。

場面:オフィスの開発ルーム
太郎が CPU の基本概念(コンセプト) に関する資料を見ながら、花子に質問する。

太郎:「花子先輩、CPU のコンセプト って色々あって混乱してしまいます…。 何が重要な概念なのか整理 したいです!」

花子:「いい質問ね! CPU のパフォーマンスを理解するための 7 つのコンセプト を説明するわ。」


CPU のコンセプト

花子:「CPU の パフォーマンスを決める基本的な要素 は、以下の 7 つ よ。」

  1. クロックスピード
  2. 命令
  3. 命令パイプライン
  4. 命令幅
  5. 命令サイズ
  6. SMT(Simultaneous Multi-Threading)
  7. IPC(Instructions Per Cycle) & CPI(Cycles Per Instruction)

1. クロックスピード

花子:「クロックスピード は、 CPU の動作速度を決める基本的な指標 よ。」

  • クロックとは?CPU の動作を同期するためのデジタル信号
  • クロックスピードの単位GHz(ギガヘルツ)。例えば 4GHz なら 1秒間に40億回のクロックサイクル がある。
  • 影響クロックスピードが高いほど、基本的に処理速度が速くなるが、発熱や消費電力も増加する。

「これは 工場のベルトコンベアのスピード みたいなもので、 速く回るほど生産性が上がるけど、熱も発生する のよ。」

太郎:「なるほど! クロックが高いほど速い けど 発熱と電力消費が増える んですね。」


2. 命令

花子:「CPU の命令 は、 プログラムが実行される最小単位 よ。」

  • 基本命令足し算、引き算、メモリの読み書き、条件分岐など
  • RISC vs CISC
    • RISC(Reduced Instruction Set Computer)少ない種類の命令を高速に処理(例: ARM, RISC-V)
    • CISC(Complex Instruction Set Computer)多くの種類の命令をサポート(例: x86)

「これは 簡単な作業を素早く終わらせる職人(RISC)多機能で何でもできる職人(CISC) の違いね。」

太郎:「ってことは、 ARM(RISC)はシンプルで省電力x86(CISC)は高機能で複雑 なんですね!」


3. 命令パイプライン

花子:「命令パイプライン は、 複数の命令を同時に処理する仕組み よ。」

  • パイプラインのステージ
    • フェッチ(Fetch): 命令を取得
    • デコード(Decode): 命令の解釈
    • 実行(Execute): 演算処理
    • メモリアクセス(Memory Access): 必要ならメモリを読み書き
    • ライトバック(Write Back): 結果をレジスタに格納

「これは 流れ作業の製造ライン みたいなもので、 一度に複数の命令を処理することで全体のスループットを向上させる のよ。」

太郎:「つまり、 パイプラインが深いほど処理効率が上がる んですね!」


例1: ファストフード店の注文処理

花子:「ファストフード店のキッチンを想像してみて。注文を1つずつ処理すると、注文Aが完成してから次の注文Bを始めるため、時間がかかるわ。しかし、以下のように 流れ作業 にすると、 複数の注文を同時並行で処理できる ため、全体のスピードが向上するのよ。」

  • フェッチ(Fetch): お客様が注文をする
  • デコード(Decode): 注文をキッチンに伝え、調理内容を確認
  • 実行(Execute): 料理を調理する
  • メモリアクセス(Memory Access): 必要なら材料を取り出す
  • ライトバック(Write Back): 完成した料理をお客様に渡す

「この方法なら、注文Aが完成するのを待たずに、並行して注文Bの調理を開始できるの。 お店の回転率が上がる のと同じように、CPUの スループット も向上するのよ。」


例2: 自動車工場の生産ライン

花子:「車を1台ずつ作ると時間がかかるけど、工場では パイプライン生産方式 を採用しているの。これにより、 複数の車の製造工程が同時進行できる のよ。」

  • フェッチ(Fetch): 設計図をもとに部品を準備
  • デコード(Decode): 組み立て工程を確認
  • 実行(Execute): 実際に組み立て作業を行う
  • メモリアクセス(Memory Access): 必要なら部品を倉庫から取り出し
  • ライトバック(Write Back): 完成車を出荷

「このように、 異なる作業ステージを並行して動かすことで、工場全体の生産効率を上げる のと同じ考え方が CPUの命令パイプライン なのよ。」


例3: コンベアを使った皿洗い

花子:「もし1人で洗い物をしていたら、「すすぐ→洗う→拭く→しまう」の順で1枚ずつ処理するため、とても時間がかかるわよね。でも、以下のように 複数の人で役割分担 すると、 1枚の皿が完成する前に次の皿の処理を開始できる の。」

  • フェッチ(Fetch): 皿を流し台に持ってくる
  • デコード(Decode): 皿の種類(コップ、皿、鍋)を分類
  • 実行(Execute): 実際に洗う
  • メモリアクセス(Memory Access): 必要ならスポンジや洗剤を補充
  • ライトバック(Write Back): 乾燥機や食器棚に収納

「こうすれば 作業の並列化 ができて、 洗い物のスピードが劇的に向上 するわね。これが 命令パイプライン の仕組みとそっくりなのよ。」


太郎:「なるほど! パイプライン処理 って、 効率のいい流れ作業 のことなんですね! パイプラインが深いほど、同時に処理できる数が増えて、効率が良くなる というわけですね!」


4. 命令幅

花子:「命令幅 は、 一度に処理できる命令の数 を決める指標よ。」

  • シングルイシュー1 つの命令を1回に処理
  • マルチイシュー複数の命令を同時に処理(スーパースカラープロセッサ)

「これは 一度に何個の荷物を運べるか みたいなもので、 命令幅が広いほど並列処理が可能になる のよ。」

太郎:「なるほど! マルチイシューCPUは、一度に複数の命令を処理できるから高速 なんですね!」


5. 命令サイズ

花子:「命令サイズ は、 CPU が処理する命令のビット数 を指すわ。」

  • 32ビット命令ARMやx86の旧世代CPUで主流だった。
  • 64ビット命令現在の主流。より多くのメモリを扱える。

「これは 手紙のサイズ みたいなもので、 64ビットなら一度に大きな情報を処理できる のよ。」

太郎:「ってことは、 64ビットCPU はメモリを効率的に使える んですね!」


6. SMT(Simultaneous Multi-Threading)

花子:「SMT(同時マルチスレッディング) は、 1 つのコアが複数のスレッドを並行処理する技術 よ。」

  • Intel のハイパースレッディング(HT)1 コアで 2 つのスレッドを実行可能。
  • AMD の SMT同じく 1 コアで 2 つのスレッドを処理できる。

「これは 1 人のシェフが左右の手で別々の料理を作る のと同じね。」

太郎:「なるほど! SMT を使うとコアのリソースを効率的に使える んですね!」


7. IPC(Instructions Per Cycle) & CPI(Cycles Per Instruction)

花子:「IPC(サイクルあたりの命令数) は、 CPU の効率を測る指標 よ。」

  • IPC が高いCPU が 1 サイクルで多くの命令を実行できる。
  • CPI(1 命令あたりのサイクル数)CPI が低いほど効率が良い。

「これは 工場の生産効率 みたいなもので、 IPC が高いと処理速度が上がる のよ。」


例1: ハンバーガーショップの生産効率

花子:「ファストフード店を考えてみましょう。お店の生産能力(=CPUの処理能力)を向上させるには、 1分間に作れるハンバーガーの数(=IPC) を増やすのが大切よ。」

  • IPC が高い場合(理想的な環境)

    • 1回の作業(サイクル)で、 同時に3つのハンバーガーを作れる
    • → 生産性が高く、 注文がすぐさばける
  • IPC が低い場合(非効率な環境)

    • 1回の作業(サイクル)で 1つしか作れない
    • → 注文が溜まってしまい、 待ち時間が増える

「また、 CPI(Cycles Per Instruction) は、「1つのハンバーガーを作るのにかかる作業ステップ数(=サイクル数)」を表しているの。」

  • CPI が低い(理想的な環境)

    • 3ステップ(バンズ用意 → 一気に具材を乗せる → 包装)で完成
    • 短時間で商品が完成する
  • CPI が高い(非効率な環境)

    • 6ステップ(具材を1つずつ丁寧に配置、個別包装など)で完成
    • 時間がかかりすぎて、回転率が悪い

「結局、お店の効率を上げるには IPC を上げ、CPI を下げる ことが重要なのね。」


例2: 自動車工場の生産ライン

花子:「車を作る工場では、多くの工程が並列で動いているわよね。ここでの IPC1時間に何台の車を作れるか に相当するの。」

  • IPC が高い工場(高効率)

    • 1時間に 10台の車を生産できる
    • 多くのロボットアームが並列に動作 し、無駄がない
    • 最新の設備で部品の取り付けが高速
  • IPC が低い工場(低効率)

    • 1時間に 3台しか生産できない
    • → 作業員が1つずつ手作業で組み立てている
    • → 一部の工程で ボトルネック(CPI が高い工程)が発生している

CPI の考え方 で言えば、「1台の車を作るのにかかる工程数」がCPIになるの。

  • CPI が低い(効率的な工場)

    • 1台の車を 20工程 で完成
    • → ロボットアームが 一度に複数の作業 をしている
  • CPI が高い(非効率な工場)

    • 1台の車を 40工程 で完成
    • 部品が順番待ちで遅れている

例3: 学校のテスト採点

花子:「先生が 100人分のテストを採点する ときの作業効率も、IPC と CPI に似ているわ。」

  • IPC が高い(高速採点)

    • 複数の先生が並列で採点
    • マークシートを使って機械で自動採点
    • 1時間で100枚採点できる
  • IPC が低い(遅い採点)

    • 1人の先生が手作業で1枚ずつ採点
    • 論述問題が多く、1枚に時間がかかる
    • 1時間で20枚しか採点できない

花子:「CPI を考えると、1枚のテストを採点するのにかかる手順数がCPIよ。」

  • CPI が低い(効率的な採点)

    • マークシートで1工程で採点完了
    • 1枚あたり5秒で済む
  • CPI が高い(時間がかかる採点)

    • 論述問題の採点で1枚に10工程かかる
    • 1枚あたり5分かかる

まとめ

太郎:「つまり、 CPU の効率を最大化するには、IPC を上げ、CPI を下げることが大事 なんですね!」

花子:「その通りよ!これは 工場の生産効率飲食店の回転率 に似ていて、 ボトルネックをなくして並列処理を増やすのがポイント なの。」

花子:「CPU の コンセプト を理解すると、 どの CPU がどの用途に適しているかを判断できる わ。」

太郎:「ありがとうございます! htop で CPU 使用率と SMT の影響 を確認してみます!」

参考リンク

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

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

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?