昔はCPUの性能といえば「クロック周波数」の高さが大事でした。しかし、最近のCPUは世代や「コア数」「スレッド数」の方が性能への影響力が大きいです。
この記事では「2コアと4コアの違いが分からない。」「インテルのCPUは2コアなのに4スレッドとか言うけど、スレッドって何?」というPC初心者向けに、図解も使って分かりやすく解説してみる。
CPUのコア数とは?
CPUは中に色々と入っている。で、実際に処理をする中央処理ユニットがいくつ搭載されているか、これが「コア数」になります。もっともっと大雑把に言うと「CPUの殻の中にいくつCPUが入っているか?」ということです。
CPUが登場してばかりの頃は、当然「1コア」が主流でした。殻の中に、CPUを1個だけ置いて完成です。
デュアルコア
2005年頃から、2つの処理ユニットを搭載する「2コア」(デュアルコア)のCPUが登場しました。代表例は「Athlon 64 X2」「Pentium D」など。最近では「Core i3」や「Pentium G」が馴染み深いかと思います。
クアッドコア
翌年の2006年になると、コア数を更に増やした4コア(クアッドコア)のCPUも登場。代表例は「Core 2 Quad」「Phenom X4」など。最近は「Core i5 / i7」「Ryzen 5」などが有名です。
その後もコア数は増え続けている
拡張機能や命令セット、キャッシュの大容量化など。CPUのコア数以外の改善は当然続いていますが、コア数の増加も止まる気配がありません。
なぜなら、CPUの絶対的な処理性能を高める上で「コア数を増やす」という方法が、(今のところ)もっとも手っ取り早いからです。では、なぜCPUの中に入っているコアの数が多いと、処理性能がアップするのか?
次はコア数が多いと性能が上がるわけについて説明していきます。
- 1コア:シングルコア
- 2コア:デュアルコア
- 3コア:トリプルコア
- 4コア:クアッドコア
- 6コア:ヘキサコア
- 8コア:オクタコア
- 10コア:デカコア
10コア以上になると呼び方が「デカデカ」とするため、単に「12コア」や「24コア」と呼ばれています。
コア数が多いと性能が上がる理由
なぜ、シングルコアCPUよりもデュアルコアCPUの方が性能は上になるのか。CPUのコア数は本当に多ければ多いほど優れていると言えるのか。この点について説明していきます。
シングルコアの場合、仕事をこなせる頭脳は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はスペック表に「4コア / 4スレッド」だったり「4コア / 8スレッド」だったり、必ずスレッド数もいっしょに表記されています。
- 4コア / 4スレッド
- 4コア / 8スレッド
どちらも同じ「4コア」(クアッドコア)ですが、スレッド数は違っています。どちらの方が性能は上なのか。直感的には8スレッド(オクタスレッド)のCPUを選んだ方が性能は良さそうなものですが。
では、まずは「スレッド」とは何なのかについて説明します。
「スレッド」 = CPUが担当できる仕事の数
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%の性能向上をもたらしたとしている。
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 9700F | 8 | 8 | 1450 cb | 4.8 倍 |
Core i5 9400F | 6 | 6 | 941 cb | 3.1 倍 |
Core i5 7600K | 4 | 4 | 662 cb | 2.2 倍 |
Core i3 9100F | 4 | 4 | 632 cb | 2.1 倍 |
Pentium G4520 | 2 | 2 | 299 cb | 1.0 倍 |
なお、コア数と性能の関係性はこちらの表にまとめたとおりです。コア数が多いほどCPUの性能がアップしているのが分かります。2コアと比較して、4コアなら約2倍、6コアなら約3倍の性能です。
「スレッド数」のおさらい
「スレッド数」は、搭載されているCPU(頭脳)1人あたり、同時にこなせる仕事の数のことです。1コアあたり2スレッドなら、最大で2つの仕事を同時に処理でき、性能の効率アップになります。
CPU | コア数 | スレッド数 | 性能 | |
---|---|---|---|---|
Core i9 9900K | 8 | 16 | 2038 cb | 1.31 倍 |
Core i7 9700K | 8 | 8 | 1552 cb | |
Core i7 8700K | 6 | 12 | 1364 cb | 1.31 倍 |
Core i5 8600K | 6 | 6 | 1038 cb | |
Ryzen 5 3600 | 6 | 12 | 1575 cb | 1.40 倍 |
Ryzen 5 3500 | 6 | 6 | 1121 cb | |
Core i7 7700K | 4 | 8 | 988 cb | 1.49 倍 |
Core i5 7600K | 4 | 4 | 662 cb | |
Pentium G5400 | 2 | 4 | 403 cb | 1.35 倍 |
Pentium G4520 | 2 | 2 | 299 cb |
比較的新しい世代のCPUで、マルチスレッド化でどれくらい性能が伸びるかをまとめました。CPUによってバラツキはありますが、スレッド数が2倍になると約1.3~1.4倍の性能になっています。
動画エンコードなどの物量タスクも、ソフトがマルチスレッドに対応していればエンコード時間を短縮できます。
6コア / 6スレッドの「Core i5 8600K」です。タスクマネージャーから見ると「窓」が6枚あるのが確認できます。
8コア / 16スレッドの「Ryzen 7 2700X」です。物理8コアのCPUですが、タスクマネージャーから確認できる「窓」の数はちゃんと16枚(=16スレッド)になっています。
どちらの方が性能が良いか?【まとめ】
CPUのコア数が同じでも、「スレッド数」が多いCPUの方が性能は高い。
そして同じスレッド数のCPUでも、基本的には「コア数」が多いほうが性能は高い。
では「8コア8スレッドと、6コア12スレッドだったら?」という疑問も出てくると思います。気になる人は、筆者が作った「CPUの性能比較表(最新版)」で確認してみてましょう。
以上、「【CPUの基本】図解でよくわかる「マルチコア / スレッド」の意味」について解説でした。
「クロック周波数」はCPUの性能を測るパラメータとして有効なのかどうか。今回の記事と同じように、図解で分かりやすく「クロック周波数」について解説しています。
[…] 【CPUの基本】図解でよくわかる「マルチコア / スレッド」の意味 | ちもろぐ […]
[…] 参考: https://www.s-fact.biz/draftsight/ https://chimolog.co/2017/06/bto-cpu-core-thread.html#i-8 […]
分かりやすかったです。
解説の粒度が細かすぎず大雑把すぎず良いと思いました。
ありがとうございました。
よくわかりやすくまとめられています、学校の授業の参考にさせてもらいます
「スレッドが多いとマルチタスク能力がアップする」の画像がとても解りやすく理解が深まりました。
コアが増えれば能率が上がることは言われなくとも分かるが、そのことがシングルコアの性能向上を追求するより優位であることの説明こそが重要では?
タスクマネージャーを起動して、アプリを起動すると、どのコアを使っているかよくわかる。アプリ自体がマルチ対応は少ないし、コアが多くてもタスク分散はされていないから、コア性能やクロック周波数に頼っているんじゃ?
とても分かり易かったです。マルチコア使用時のオーバーヒートの対処のアドバイスをお願いできますか。
オーバーヒートとは「サーマルスロットリング」のことでしょうか。使っているCPUによりますが、基本的には…
1.「CPUクーラーを良いモノに交換」
2.「CPUグリスを塗り直す」
などが効果てきめんです。もし付属のクーラーを使っていて熱に困っているなら、3500円くらいの「虎徹 MarkII」をオススメします。安価ですが、付属品よりはずっと冷えますよ。
図解もあり、理解が捗りました。
今後も参考にさせていただきます。
[…] 【CPUの基本】図解でよくわかる「マルチコア / スレッド」の意味 […]
[…] 引用元 : https://chimolog.co/bto-cpu-core-thread/#CPU […]
[…] 【CPUの基本】図解でよくわかる「マルチコア / スレッド」の意味 […]
いつも参考にさせていただいております
重箱的指摘ですが IBM Power 8 の表で、周波数とL2キャッシュの行は1つずつズレていませんでしょうか?
[…] 出典:【CPUの基本】図解でよくわかる「マルチコア / スレッド」の意味 […]
[…] https://chimolog.co/bto-cpu-core-thread/ […]
[…] https://chimolog.co/bto-cpu-core-thread/ […]
どっちもマルチタスクに強いということしか書かれていないようで中身があるのかないのか分からない記事です。もっと掘り下げてくれるか、他の記事を紹介したほうがいいのではないか?
マルチコア性能の話をすると決まって「マルチタスク性」「画像処理」としか説明しないけど
結局1億行×10列のデータの足し算引き算処理はマルチコア性で速くなるの?
[…] 参考:CPUのコア・スレッドって何?本当に処理能力の高いCPUとは!参考:【CPUの基本】図解でよくわかる「マルチコア / スレッド」の意味 […]