【CPUの基本】図解でよくわかる「マルチコア / スレッド」の意味

昔はCPUの性能といえば「クロック周波数」の高さが大事でした。しかし、最近のCPUは世代や「コア数」「スレッド数」の方が性能への影響力が大きいです。

この記事では「2コアと4コアの違いが分からない。」「インテルのCPUは2コアなのに4スレッドとか言うけど、スレッドって何?」というPC初心者向けに、図解も使って分かりやすく解説してみる。

Sponsored Link

CPUのコア数とは?

シングルコア(1コア)

CPUは中に色々と入っている。で、実際に処理をする中央処理ユニットがいくつ搭載されているかこれが「コア数」になります。もっともっと大雑把に言うと「CPUの殻の中にいくつCPUが入っているか?」ということです。

CPUが登場してばかりの頃は、当然「1コア」が主流でした。殻の中に、CPUを1個だけ置いて完成です。

デュアルコア

デュアルコア(2コア)

2005年頃から、2つの処理ユニットを搭載する「2コア」(デュアルコア)のCPUが登場しました。代表例は「Athlon 64 X2」「Pentium D」など。最近では「Core i3」や「Pentium G」が馴染み深いかと思います。

クアッドコア

クアッドコア(4コア)

翌年の2006年になると、コア数を更に増やした4コア(クアッドコア)のCPUも登場。代表例は「Core 2 Quad」「Phenom X4」など。最近は「Core i5 / i7」「Ryzen 5」などが有名です。

自作歴27台のやかもち
ちなみに、2007年頃にAMDは今では滅多に見られないトリプルコア(3コア)の「Phenom X3」を発売していました。奇数コアは本当に珍しいです。

その後もコア数は増え続けている

毎年のようにCPUのコア数は増え続けている

拡張機能や命令セット、キャッシュの大容量化など。CPUのコア数以外の改善は当然続いていますが、コア数の増加も止まる気配がありません。

なぜなら、CPUの絶対的な処理性能を高める上で「コア数を増やす」という方法が、(今のところ)もっとも手っ取り早いからです。では、なぜCPUの中に入っているコアの数が多いと、処理性能がアップするのか?

次はコア数が多いと性能が上がるわけについて説明していきます。

参考:マルチコアの読み方
  • 1コア:シングルコア
  • 2コア:デュアルコア
  • 3コア:トリプルコア
  • 4コア:クアッドコア
  • 6コア:ヘキサコア
  • 8コア:オクタコア
  • 10コア:デカコア

10コア以上になると呼び方が「デカデカ」とするため、単に「12コア」や「24コア」と呼ばれています。

コア数が多いと性能が上がる理由

なぜ、シングルコアCPUよりもデュアルコアCPUの方が性能は上になるのか。CPUのコア数は本当に多ければ多いほど優れていると言えるのか。この点について説明していきます。

シングルコアはWindowsだけを動かすには十分でした

シングルコアの場合、仕事をこなせる頭脳は1つしかありません。ですから「Windowsだけ」など、使うソフトウェアが少ない間は、コア1つで間に合っていたんです。

それに昔のWindows XPは非常に少ないメモリとCPU性能で動いたため、Windows XPを動かしながら、他のアプリで何かをする。ということも可能でした。

シングルコアでは処理しきれない

しかし、Windows Vistaになってから必要な処理性能は大きく伸びてしまい、当然のことながらシングルコアで処理が追いつかなくなった。「Windowsだけで精一杯なのに、他の仕事なんてやってられない。」ということ。

この結果、PCの動作が重たくなって「なんて処理性能の低いCPUなんだ、使えない。」となってしまった。そこで解決策として登場したのがCPUの「マルチコア化」です。

マルチコア化:複数のコアに仕事を分担して高速化

仕事ができる頭脳の数を、複数に増やしたことで、同時にこなせる仕事の数が増えたのです。1人で4つの仕事(Windows / Excel / Chrome / ペイント)をこなすのはキツイが、4人いれば簡単です

これが「マルチコア化」をするとCPUの性能がアップする理由です。

エンコードの変換速度がアップする理由

動画エンコードはシングルコアだと厳しい

動画編集ソフトAdobe Premiereで、動画をmp4形式にエンコードする場合を考えてみます。エンコードする動画のフレーム数は45000枚(約24分)あり、1コアで1秒あたり3枚ずつ処理できる、とします。

もう察しが付いたと思いますが、このような物量が求められるタスクでは、シングルコアだと極めて非効率的です。1コアしかない場合、エンコードが終わるのに250分(約4時間)もかかってしまう計算になります。

マルチコアなら動画エンコードは早くなる

そこでマルチコアの出番です。シングルコアから4倍のクアッドコアになると、1秒あたり12枚ずつ処理できるようになりました。エンコード時間は250分から62分30秒(約1時間)に短縮されます。

物量作業はとにかくコア数の勝負

計算量の多いタスクでは、マルチコアであればあるほど有利です。たとえば動画エンコードは代表例ですし、レンダリングや物理演算シミュレーションといったタスクも、コア数の多さが性能アップにつながります。

「コア数」まとめ

ここまでの解説で「コア数」については十分に分かったと思います。まとめると、基本的にCPUのコア数は多ければ多いほど性能アップです。最近のWindowsは重たいので、少なくともデュアルコアは欲しい時代ですね。

スレッドが多いと性能は上がるのか?

CPUのスペック表には「コア数」と「スレッド数」が表記される

コア数の次は、「スレッド数」について解説します。最近のCPUはスペック表に「4コア / 4スレッド」だったり「4コア / 8スレッド」だったり、必ずスレッド数もいっしょに表記されています。

  • 4コア / 4スレッド
  • 4コア / 8スレッド

どちらも同じ「4コア」(クアッドコア)ですが、スレッド数は違っています。どちらの方が性能は上なのか。直感的には8スレッド(オクタスレッド)のCPUを選んだ方が性能は良さそうなものですが。

では、まずは「スレッド」とは何なのかについて説明します。

「スレッド」 = CPUが担当できる仕事の数

1スレッドしかないと効率が悪い

1コア1スレッドのCPUを例にしてみよう。今、Windows 10を動かしていて、更にGoogle Chromeも使いたいと思ったとします。

オレンジ色がWindowsの処理にかかっているパワーで、空いている領域があるのが分かります。そう、まだこのCPUは余裕があるんですよ。そこでGoogle Chrome(青色)にもパワーを与えたいと思いますが…。

このCPUは「1スレッド」しか無いので、別のアプリケーション(仕事)を同時にうまく処理することができません。もちろん、動くには動きますが、効率よく仕事をこなせないために動作がガタガタと重たくなってしまう。

マルチスレッド化で効率アップ

そこで登場したのが「マルチスレッド化」されたCPUです。技術としてはハイパースレッディング・テクノロジー(Hyper Threading Technology = HTT)呼ばれています。

物理的に入っているコアは1個だけど、ソフトウェア(Windowsなど)側からは2個あることにしよう。という考え方。この技術のお陰で、CPUの余力部分も効率よく使えるようになった。

だいぶ大雑把に解説しましたが、「スレッド数は、1人のCPUが同時に処理できる仕事の数」と思えば大丈夫です。2スレッドなら、1コアあたり2個の仕事を(余裕があれば)同時にこなせるということ。

参考:マルチスレッド化の技術

インテルCPUは、ハイパースレッディング・テクノロジー(Hyper Threading Technology)を略した「HTT」です。AMD製CPUでは、サイマルテイニアスマルチスレッディング(Simultaneous Multi-Threading)を略した「SMT」が実装されています。

  • インテル製CPU:HTT
  • AMD製CPU:SMT(Ryzenシリーズ以降)

名前が違うだけで、本質的にはHTTとSMTはまったく同じ技術といって差し支えないです(※SMTは登場初期において、効率よく性能を出せない不具合が存在したが、Windowsアップデートによってほぼ解消されています)

スレッドが多いとマルチタスク能力がアップする

スレッド数が少ないと非効率的な場合がある

物理コアが実際にあるわけではないため、大きな性能差が出ることはないです。ただ、処理が効率化されるため体感上の性能はやはり向上します。単なる4コア4スレッドだと、画像のように「余力」があっても上手く利用できません。

スレッド数が多いとマルチタスクが向上

そこでCPUのスレッド数を2スレッドに増やしてあげれば、「余力」になっている部分を効率よく使えるようになります。スレッド数が増えることで、CPUの処理効率が改善し、結果的に性能アップです。

インテルによると、NetBurstマイクロアーキテクチャにおける最初の実装は「通常の」プロセッサへ5%の領域のみを追加するだけで、15 – 30%の性能向上をもたらしたとしている。

Hyper-Threading Technology – Wikipedia より

Wikipediaにもこのような記述があり、処理の効率化によってベンチマーク上の性能も15~30%程度アップしています。

進化するハイパースレッディング

コンシューマ向けのCPUでは1コアあたり2倍のスレッドが最大ですが、サーバー向けのCPUではIBMが1コアあたり8倍のマルチスレッド化を実現しています。8コアあれば64スレッド、性能はものすごく伸びそうですが、普通のパソコンで使っても大した効果は見込めないです。

なぜなら、マルチスレッドをうまく利用するためには、ソフトウェア側の対応が必須だからです。一般ユーザーがよく使う、Officeやゲームソフトなど。ごく普通のソフトのほとんどは、2スレッドを前提とした設計になっています。4~8スレッドになると逆に性能が下がる可能性すらあります。

「スレッド数」まとめ

スレッド数は実際にCPUの中に複数のコアが入っているわけではなく、1コアあたりの同時にこなせる作業数のこと。

コア数と比べると性能に与える影響は小さいですが、CPUの「余力」部分をを効率よく活用できるようになるため、同時に複数のソフトを使うマルチタスクにおいて大きな性能アップを見込めます。

CPUの基本「マルチコア / スレッド」まとめ

2006年以降、「クロック周波数」以上に、コア数とスレッド数はCPUの性能を示すパラメータとして重視されるようになりました。では、コアとスレッドについておさらいします。

「コア数」のおさらい

マルチコアは、物理コアの数

「コア数」はCPUの殻の中に入っている中央処理ユニット(CPU、頭脳)の数です。2コアなら実際に2つのCPUが入っているし、4コアなら4つのCPUが入っているという意味です。

最近は8コアが当たり前になり、12コアや32コアなど。とんでもない単位のコア数になっていますが、本当に1つのCPUの中に32コアが詰まっている時代です。驚くべき技術力の進化ですね。

CPUコア数スレッド数性能
Core i7 9700F881450 cb4.8 倍
Core i5 9400F66941 cb3.1 倍
Core i5 7600K44662 cb2.2 倍
Core i3 9100F44632 cb2.1 倍
Pentium G452022299 cb1.0 倍

なお、コア数と性能の関係性はこちらの表にまとめたとおりです。コア数が多いほどCPUの性能がアップしているのが分かります。2コアと比較して、4コアなら約2倍、6コアなら約3倍の性能です。

「スレッド数」のおさらい

スレッド数は、1コアが同時に処理できる仕事の数

「スレッド数」は、搭載されているCPU(頭脳)1人あたり、同時にこなせる仕事の数のことです。1コアあたり2スレッドなら、最大で2つの仕事を同時に処理でき、性能の効率アップになります。

CPUコア数スレッド数性能
Core i9 9900K8162038 cb1.31 倍
Core i7 9700K881552 cb
Core i7 8700K6121364 cb1.31 倍
Core i5 8600K661038 cb
Ryzen 5 36006121575 cb1.40 倍
Ryzen 5 3500661121 cb
Core i7 7700K48988 cb1.49 倍
Core i5 7600K44662 cb
Pentium G540024403 cb1.35 倍
Pentium G452022299 cb

比較的新しい世代のCPUで、マルチスレッド化でどれくらい性能が伸びるかをまとめました。CPUによってバラツキはありますが、スレッド数が2倍になると約1.3~1.4倍の性能になっています。

動画エンコードなどの物量タスクも、ソフトがマルチスレッドに対応していればエンコード時間を短縮できます。

コア数とスレッド数が同じ「Core i5」

6コア / 6スレッドの「Core i5 8600K」です。タスクマネージャーから見ると「窓」が6枚あるのが確認できます。

8コア / 16スレッドの「Ryzen 7 2700X」です。物理8コアのCPUですが、タスクマネージャーから確認できる「窓」の数はちゃんと16枚(=16スレッド)になっています。

どちらの方が性能が良いか?【まとめ】

同じコア数ならスレッド数の多いCPUが高性能

CPUのコア数が同じでも、「スレッド数」が多いCPUの方が性能は高い。

同じスレッド数でもコア数が多いほうが優秀

そして同じスレッド数のCPUでも、基本的には「コア数」が多いほうが性能は高い。

では「8コア8スレッドと、6コア12スレッドだったら?」という疑問も出てくると思います。気になる人は、筆者が作った「CPUの性能比較表(最新版)」で確認してみてましょう。

以上、「【CPUの基本】図解でよくわかる「マルチコア / スレッド」の意味」について解説でした。

「クロック周波数」はCPUの性能を測るパラメータとして有効なのかどうか。今回の記事と同じように、図解で分かりやすく「クロック周波数」について解説しています。

Sponsored Link

14 件のコメント

  • 分かりやすかったです。
    解説の粒度が細かすぎず大雑把すぎず良いと思いました。
    ありがとうございました。

  • 「スレッドが多いとマルチタスク能力がアップする」の画像がとても解りやすく理解が深まりました。

  • コアが増えれば能率が上がることは言われなくとも分かるが、そのことがシングルコアの性能向上を追求するより優位であることの説明こそが重要では?

  • タスクマネージャーを起動して、アプリを起動すると、どのコアを使っているかよくわかる。アプリ自体がマルチ対応は少ないし、コアが多くてもタスク分散はされていないから、コア性能やクロック周波数に頼っているんじゃ?

  • とても分かり易かったです。マルチコア使用時のオーバーヒートの対処のアドバイスをお願いできますか。

    • オーバーヒートとは「サーマルスロットリング」のことでしょうか。使っているCPUによりますが、基本的には…
      1.「CPUクーラーを良いモノに交換」
      2.「CPUグリスを塗り直す」
      などが効果てきめんです。もし付属のクーラーを使っていて熱に困っているなら、3500円くらいの「虎徹 MarkII」をオススメします。安価ですが、付属品よりはずっと冷えますよ。

  • いつも参考にさせていただいております

    重箱的指摘ですが IBM Power 8 の表で、周波数とL2キャッシュの行は1つずつズレていませんでしょうか?

  • コメントを残す

    メールアドレスが公開されることはありません。