まずはSMTを理解するための基本
プロセスとスレッドの関係
今回は「SMT」(Simultaneous MultiThreading、同期マルチスレッディング)の話をしてみたい。インテルではこれを「Hyper-Threading」と呼んでおり、以下では一般論の場合にはSMT、インテル製品に関する話題ではHyper-Threadingと、それぞれ称することにする。このSMTの技法はここ5回に渡って説明してきたパイプラインの改良そのものとは、ちょっと異なる方法論である。
例えば、図1のようなデュアルコアCPUを考えてみよう。2次キャッシュがコア別に異なるのは、インテルの「Pentium D」やAMDの「Athlon 64 X2」「Athlon X2」など、共有なのが「Core Duo」以降のインテルのCoreマイクロ・アーキテクチャー製品になる。だが、この話では2次/3次キャッシュはあまり問題ではないので、ここでは省いている。
このケースで「一番動いていないのはどこか?」と言うと、赤い枠で示した部分だ。ようするに実行ユニットに当たる部分で、データの依存関係の解消やらパイプラインストールやらと、何かと実行を妨げられる要素が多いから、ALUやLoad/Storeユニットがフルに動いている状況というのはそれほど多くない。というよりも、大半は寝ていると言っても過言ではない。
もちろん最適化したプログラムを動かせば、実行ユニットの利用率はぐんと高まる。だがそうは言っても、OS上で動いている以上は定期的にスケジューラーにより別のプログラムが動いたり、割り込みが入ってその処理が優先されたりするから、本当にフルに動く、というケースはむしろマレと言ってもいい。
では効率が低いALUやロードストアユニットを減らせば効率が上がるかというと、確かに効率は上がるのだが、今度はピーク性能が落ちてしまうため、全体としての処理性能はむしろ低下する傾向にある。
そこで出てきたアイディアが、「2つ以上のスレッドを同時に実行させる」というものである。スレッドというのは、処理の流れと考えればいい。
- プロセス(Process):ある特定のプログラムを動かすための環境一式
- スレッド(Thread):あるプロセス内で、プログラムを実行する部分
例えば以下の画面はCGレンダリングベンチマークテスト「CINEBENCH 11.5」の実行中のシーンだ。この場合、プロセスとは「CineBench 11.5全体」を指し、スレッドは「レンダリング中のオレンジ枠の正方形ひとつひとつ」になる。
つまりCineBench 11.5の場合、上のケースでは13個のスレッドが動作している(12個の正方形のレンダリングに12、CineBench全体の管理に1)。簡単なプログラムの場合には、ひとつのプロセスにひとつのスレッドしか含まれていないこともある。
本記事はアフィリエイトプログラムによる収益を得ている場合があります

この連載の記事
-
第868回
PC
物理IPには真似できない4%の差はどこから生まれるか? RTL実装が解き放つDimensity 9500の真価 -
第867回
PC
計算が速いだけじゃない! 自分で電圧を操って実力を出し切る賢すぎるAIチップ「Spyre」がAI処理を25%も速くする -
第866回
PC
NVIDIAを射程に捉えた韓国の雄rebellionsの怪物AIチップ「REBEL-Quad」 -
第865回
PC
1400WのモンスターGPU「Instinct MI350」の正体、AMDが選んだ効率を捨ててでも1.9倍の性能向上を獲る戦略 -
第864回
PC
なぜAMDはチップレットで勝利したのか? 2万ドルのウェハーから逆算する経済的合理性 -
第863回
PC
銅配線はなぜ限界なのか? ルテニウムへの移行で変わる半導体製造の常識と課題 -
第862回
PC
「ビル100階建て相当」の超難工事! DRAM微細化が限界を超え前人未到の垂直化へ突入 -
第861回
PC
INT4量子化+高度な電圧管理で消費電力60%削減かつ90%性能アップ! Snapdragon X2 Eliteの最先端技術を解説 -
第860回
PC
NVIDIAのVeraとRubinはPCIe Gen6対応、176スレッドの新アーキテクチャー搭載! 最高クラスの性能でAI開発を革新 -
第859回
デジタル
組み込み向けのAMD Ryzen AI Embedded P100シリーズはZen 5を最大6コア搭載で、最大50TOPSのNPU性能を実現 -
第858回
デジタル
CES 2026で実機を披露! AMDが発表した最先端AIラックHeliosの最新仕様を独自解説 - この連載の一覧へ











