どうも、ジサ郎です。
自作PCやCPUスペック表を見ると、「8コア16スレッド」といった表記を目にすることが多いでしょう。
ここで登場するのが、AMD Ryzenをはじめとした最新CPUに搭載される技術 SMT(Simultaneous Multithreading、同時マルチスレッディング) です。
ぱっと見では「コア数の2倍のスレッドを動かせる便利な仕組み」と理解されがちですが、実際にはもっと奥深い存在です。
CPU内部の命令パイプラインは、分岐予測の失敗やメモリアクセス待ちによって、どうしても隙間時間が生まれます。SMTは、その遊んでいるリソースを別のスレッドに貸し出すことで、CPU全体の効率を引き上げる仕掛けなのです。
本記事では、この仕組みを単なる「スレッド倍増の魔法」としてではなく、命令の流れ・キャッシュ階層・Ryzen特有のCCX構造との関係 まで徹底的に解体します。
さらに、実際のベンチマーク挙動や用途別のオン/オフ活用法も交えて、「PCパーツ解体新書」ならではの視点で掘り下げていきましょう。
SMTとは?基本メカニズムを分解する
CPUの世界で語られる「スレッド」という言葉は、ソフトウェア的な実行単位を指します。通常、1つの物理コアは1つのスレッドしか処理できません。
しかし、Ryzenに代表される最新CPUは SMT(Simultaneous Multithreading:同時マルチスレッディング) を実装することで、1つの物理コアをあたかも「2人の作業員が同時に働ける机」として扱うことが可能になっています。
なぜこのような仕組みが必要とされるのでしょうか。理由はシンプルで、CPUは常に100%効率で動けているわけではない からです。
命令パイプラインを流れる処理は、分岐予測の失敗やメモリからのデータ待ちによって、しばしば空き時間が生まれます。
例えるなら、流れ作業の工場で次の部品が来ないせいで手が止まってしまう状態です。この時間を遊ばせておくのはもったいない。そこで登場するのがSMTです。
SMTでは、1つのコアに2つのスレッドを割り当て、アイドル状態のリソースに“別のスレッドの仕事”を流し込むことができます。
例えば整数演算ユニット(ALU)が「Thread0の処理を待っている間に、Thread1の命令を先に流す」といった具合です。これにより、実行ユニットやキャッシュの遊び時間が大幅に減少し、コア全体の稼働率が向上 します。
ただし、全てが都合よく進むわけではありません。スレッド同士が同じリソースを同時に要求すると、取り合いが発生し競合が生じます。
その結果、理論上は「2倍の性能」にはならず、実測では 1.3〜1.4倍程度 の向上に落ち着くのが一般的です。つまりSMTは「見かけの2倍」ではなく、空きを有効活用する賢い節約術 なのです。
この「どこを共有し、どこを分離するか」の設計は非常に重要です。Ryzenの場合、命令デコーダや実行ユニット、キャッシュ階層は共有しつつ、スレッドごとのレジスタや命令順序管理(ROB: Reorder Buffer)は分離されています。
これにより「机は共有するがノートは別々」という関係性が成立し、効率的に2スレッドを同時進行できるようになっています。
RyzenアーキテクチャとSMTの相性
SMTを語るうえで欠かせないのが、AMD Ryzenの特徴的なアーキテクチャ設計です。Intelが長年単一のモノリシックダイを主流としてきたのに対し、Ryzenは初代Zenから CCX(Core Complex) という構造を採用しました。
これは、4コアまたは8コアのまとまりを1ユニットとし、それらを Infinity Fabric と呼ばれる内部バスで接続して全体のCPUを構成する仕組みです。
この構造の面白い点は、SMTの効き方がキャッシュの設計と密接に関係している ことです。CCXごとにキャッシュの配置や共有範囲が異なるため、SMTオンでの効率も世代によって変わってきます。以下に世代ごとの特徴を整理してみましょう。
- Zen / Zen+(初代Ryzen〜2000シリーズ)
4コア単位でL3キャッシュを分割して持っていました。そのため、同じCCX内のSMTスレッドは比較的効率よく動作しますが、別のCCXにまたがるとレイテンシが増大。結果として、アプリケーションによってSMTの効果にムラが生じやすい構造でした。
- Zen 2(Ryzen 3000シリーズ)
1つのCCD内にCCXを2基搭載し、合計8コアを形成。Infinity Fabricによる接続が改良され、SMTでスレッド数が倍増してもレイテンシの悪影響が軽減されました。ただし、L3キャッシュは依然としてCCX単位で分割されており、大きなデータ処理では競合が発生する場面もありました。
- Zen 3(Ryzen 5000シリーズ)
ついにCCXが統合され、1 CCX = 8コアがL3キャッシュを丸ごと共有する形へ進化。これにより、SMTオン時に2スレッドがキャッシュを効率よく利用でき、競合を最小化。Cinebenchなどのレンダリング系ベンチマークでSMTの効果が顕著に現れる世代となりました。
- Zen 4 / Zen 5(Ryzen 7000/9000シリーズ)
キャッシュ帯域の拡大やフロントエンドの強化によって、SMT効率がさらに向上。特にZen 5ではスケジューラの改善が報告されており、整数演算・浮動小数点演算を並列にさばく際の競合をより賢く処理できるようになっています。
RyzenにおけるSMTの存在は、単なる「おまけ機能」ではなく、アーキテクチャ進化そのものと歩調を合わせて強化されてきた機能 と言えます。
キャッシュ階層の設計がSMT効率を大きく左右するため、Ryzen世代ごとに「SMTオンが効くワークロード」と「効きにくいワークロード」が変化してきたのです。
さらに重要なのは、Ryzenが採用する チップレット設計 です。CCD(Core Complex Die)が複数存在する場合、SMTによってスレッド数が増えると、OSのスケジューラが「どのCCDにスレッドを割り当てるか」で性能が揺らぐことがあります。
例えば、CCDをまたいだスレッド同士はInfinity Fabricを介する必要があり、同じCCX内で動作する場合と比べるとメモリアクセスの遅延が大きくなるのです。これが俗にいう「CCDまたぎ問題」であり、SMTの効果測定を難しくする要因となっています。
つまりRyzenでは、SMTを単に「オンにするかオフにするか」という単純な話に留めず、世代ごとのキャッシュ設計・CCDの数・Infinity Fabricの帯域 といった要素まで含めて考える必要があります。
単純な「2倍のスレッド」という表現を超えて、内部構造からSMTの本当の価値を理解する鍵となるのです。
ベンチマークで見るSMTの実力
理屈としては理解できても、「SMTがオンだと本当にどれくらい速くなるのか?」という疑問は多くの自作PCユーザーにとって気になるところです。実際のベンチマークを通じて、SMTの効果と限界を見ていきましょう。
まず定番の Cinebench R23。これはCPUの整数演算・浮動小数点演算をフル活用するレンダリング系ベンチマークです。Ryzen 7やRyzen 9といった多コアCPUでSMTをオフにすると、例えば16スレッドのCPUが「8コア8スレッド」として動作する形になり、スコアは3割程度下がります。
逆にオンにすると「8コア16スレッド」としてフル稼働し、スコアが1.3〜1.4倍程度伸びるのが一般的です。理論上の2倍には届きませんが、これはキャッシュや実行ユニットの競合によるものであり、むしろ「無駄を埋めてくれる技術」として理解すべきです。
次に、実際のクリエイティブ用途である Blender や 動画エンコード。これらは膨大なタスクを細分化し、CPUに投げて同時並列で処理します。
SMTをオンにした場合、処理効率はほぼ理想的に改善し、レンダリング時間が20〜30%短縮されるケースも珍しくありません。特に8コア以上のRyzenでは、SMTの有効化によるメリットが体感レベルで現れる分野です。
一方で、ゲームにおけるSMTの評価はやや複雑です。最新のAAAタイトルではマルチスレッド対応が進んでおり、SMTオンによってバックグラウンド処理や物理演算がスムーズになり、平均フレームレートや描画の安定性が増す傾向があります。
しかし競技系FPS(例:CS2、Apex Legendsなど)では、逆にSMTオフの方がフレームタイムが安定し、カクつきが減るという報告もあります。これはゲームエンジンのスケジューラがSMT前提で最適化されていない場合に起こる現象です。
つまり、「ゲーマー=常にSMTオンが最適」とは限らず、タイトルごとに挙動を検証する価値がある のです。
さらにサーバー用途や仮想環境においては、SMTはほぼ必須といえる存在です。DockerやVMwareなどで複数の仮想マシンを同時稼働させるとき、SMTによるスレッド数増加がそのままリソース効率につながります。
特にサーバー分野では「SMTを無効にすると、CPU利用効率が20〜30%低下する」という報告も珍しくありません。
まとめると、ベンチマークの世界でのSMTは「魔法の2倍」ではなく、「用途によって確実に効果が変わる賢い補助輪」です。
レンダリングやエンコードのようにCPUリソースを徹底的に使い切る作業では大きな効果を発揮し、ゲームのようにレイテンシやスケジューリングが重視される分野では一長一短。だからこそ、オン/オフを切り替えて最適解を探る楽しみがあるのです。
SMTの設定方法とハック視点
SMTのオン・オフは、WindowsやLinuxといったOS上では基本的に制御できず、マザーボードのUEFI/BIOS から切り替えることになります。
設定項目はシンプルで、多くのマザーボードでは「SMT Control」という項目に集約されています。選択肢は「Auto」「Enabled」「Disabled」の3つが一般的で、初期設定ではAuto=有効になっているケースがほとんどです。
では、なぜわざわざBIOSに潜ってまでオン・オフを切り替えるのでしょうか。理由は用途や狙う挙動によって、SMTの有効化がプラスにもマイナスにも働くからです。
例えば、仮想環境やレンダリング用途ではSMTを切る理由がほぼありません。逆に、競技系FPSなどでは「フレームタイムの安定化」を目的にあえてオフにするケースがあります。こうした判断を下すために、ユーザーがBIOSを直接操作するわけです。
興味深いのは、SMTのオン・オフが Precision Boost Overdrive(PBO) や Eco Mode といった電力管理機能と相互作用を持つ点です。SMTをオフにすると消費電力が下がり、CPU全体の温度が低下します。
その結果、PBOによる自動オーバークロックの余裕が増し、単一スレッド性能が向上する場合がある のです。つまり「SMTを切ったらクロックが高くなり、シングルベンチでスコアが伸びた」という現象が実際に起こります。これを意図的に利用するのは、まさにハック視点といえるでしょう。
また、一部のユーザーはSMTオフを「デバッグ用途」として活用します。マルチスレッド最適化がうまく働いていないソフトウェアや、古いアプリケーションではSMTオン時に不安定化することがあります。
こうした場合に「原因切り分け」としてBIOSからSMTをオフにすることで、挙動の違いを確認できます。自作PCのトラブルシューティングにおいても役立つ知識です。
さらに、サーバー分野ではセキュリティの観点からSMTをオフにすることもあります。過去にはIntelのHyper-Threadingに対する脆弱性(Side Channel Attack)が報告され、クラウド事業者の中には安全策としてマルチスレッディングを無効化した事例もありました。
AMDのSMTも仕組み的には同様の懸念を抱え得るため、特定の業務環境では「効率よりセキュリティを優先してSMTを切る」という選択が行われるのです。
このように、BIOSでのSMT設定は「性能を最大化するためのスイッチ」であると同時に、「安定性やセキュリティを担保する安全弁」としての役割も持ちます。
単なるオン/オフの切り替えではなく、PBOやEco Modeとの相互作用、ワークロード特性、トラブルシューティングやセキュリティポリシー といった複数の視点を組み合わせて判断するのが、上級者の楽しみ方といえるでしょう。
未来展望「Zen 5以降のSMTと不要論」
SMTはここまで、Ryzenの進化とともに性能向上を支えてきた重要な技術でした。しかし、将来に向けて「SMTはどこまで残るのか?」という議論も存在します。
ここではZen 5以降の展望と、SMT不要論について掘り下げてみましょう。
Zen 5世代のSMT改善
2025年現在、最新のZen 5アーキテクチャでは、フロントエンドとスケジューラが大幅に強化されました。
命令デコード段階での並列処理能力が向上し、SMTによるスレッド混在の効率がさらに改善。整数演算と浮動小数点演算のリソース管理も賢くなり、「Thread0とThread1が同じ演算ユニットを取り合う」場面が減少しました。
これにより、SMTの性能向上幅は従来の1.3倍前後から、1.4倍以上に安定して出るケース も見られています。
また、Zen 5ではAVX-512命令に正式対応しました。これにより科学技術計算やAI処理での効率は向上しましたが、同時に「AVX処理時にSMTオンだと効率が落ちる」という課題がより鮮明になっています。
AMDは内部的にAVX命令の割り当てをスレッドごとに分散させる仕組みを実装しており、今後のマイクロコード更新やZen 6でのさらなる改善が期待されます。
Zen 5cとSMT非搭載コア
Zen 5世代で登場した「Zen 5c」は省電力・高密度を重視したコア設計ですが、このコアにはSMTが搭載されていません。理由はシンプルで、消費電力とダイ面積を抑えつつ効率を最大化するためには、物理コア単体での処理性能を高めた方が合理的だからです。
つまり「小型コアにはSMT不要」という割り切りの思想が見て取れます。これはIntelのEコア設計とも共通する流れです。
SMT不要論の台頭
コア数が増え続ける未来において、「物理コアが十分にあるならSMTは不要では?」という意見も出始めています。AppleのMシリーズやArm系のサーバーCPUは、SMTを搭載せずに高効率を実現している代表例です。
大量の物理コアを備えることで、あえてスレッド倍増の複雑さを排除し、安定性やセキュリティを重視するアプローチです。
実際、SMTは副作用も抱えています。キャッシュ競合やリソース取り合いによる性能揺らぎ、そしてセキュリティリスク(サイドチャネル攻撃の可能性)です。
特にクラウド分野では、セキュリティ上の理由からSMTを無効化して運用する事業者も存在します。
それでもSMTが残る理由
とはいえ、現時点でSMTがすぐに廃止される可能性は低いでしょう。なぜなら、「同じダイ面積と消費電力で得られる性能効率」を高める技術 として非常に優秀だからです。
マルチスレッドに最適化されたアプリケーション(動画編集、レンダリング、サーバー用途など)では、SMTを切ってしまうと20〜30%もの性能を失うことになり、コスト面で不利になります。
AMDとしても、ハイエンドのRyzenやEPYCではSMTを維持しつつ、Zen 5cのような軽量コアでは省略する「ハイブリッド戦略」を取ると考えられます。
将来的には「ハイパフォーマンスコア=SMT対応」「省電力コア=SMT非対応」という住み分けが一般的になるでしょう。
まとめ
本記事では、Ryzenを中心に展開されるSMT(Simultaneous Multithreading)の仕組みと実力を、内部構造・歴史的背景・用途別の観点から解説してきました。
ポイントを整理すると、まずSMTは単なる「コア数×2の魔法」ではなく、命令パイプラインや実行ユニットの隙間時間を埋める効率化技術 だということ。
理論上は2倍の性能にはならず、多くのベンチマークでは1.3〜1.4倍程度の伸びにとどまりますが、それこそが「無駄をなくす本質的なアプローチ」と言えます。
次に、RyzenのアーキテクチャとSMTは切っても切れない関係にあります。Zen 1/2のCCX分割構造では効果にムラがありましたが、Zen 3以降はL3キャッシュ共有設計により効率が大きく改善しました。
Zen 5ではフロントエンド強化によってさらに洗練され、最新世代ではより高効率に機能しています。
用途別の視点では、レンダリングや動画編集、仮想環境などの並列タスクではオン必須。一方で競技系FPSなどレイテンシに敏感な分野ではオフが有効になる場合もあり、「常にオンが正解」ではないことが見えてきました。
この柔軟性こそ、BIOSにSMT切り替えスイッチが存在する理由です。
未来を見据えると、SMTはすべてのCPUに必須の技術ではなくなる可能性があります。Zen 5cのように省電力コアではSMTを削ぎ落とし、ハイエンドコアでのみ維持する。
そんな住み分けが進むでしょう。それでも、限られた消費電力やダイ面積で性能効率を高める武器 として、SMTは当面の間、重要な役割を果たし続けます。
最後に強調したいのは、SMTは単なる数値上の機能ではなく、ユーザーが用途に合わせてチューニングできるスイッチ であるということです。