Simultaneous MultiThreading
1つのコアに複数の仕事を(ほぼ)同時に並行処理させるよ
日本では「同時マルチスレッディング」や「SMT」と表現されるのが一般的だよ
簡単に書くよ
Simultaneous MultiThreading(読:サイマルテイニアス・マルチスレッディング)とは
いわゆる「同時マルチスレッディング」のこと。
用語の中身としては
1つのコア
(CPUの脳みそ)に複数のスレッド(仕事)を並行で処理させるための技術とか機能とかあれやこれや
です。
詳しく書くよ
最初に留意事項です。
「同時マルチスレッディング」や「SMT」と言われて「あぁ、アレのことね」と分かる方は最後まで読む必要ありません。
同時マルチスレッディングの英語表現が「Simultaneous MultiThreading」です。
ちなみに「Simultaneous MultiThreading」を何となく省略したのが「SMT」ね。
※「Simultaneous MultiThreading」を何となく日本語にすると「同時のマルチスレッド」となります。[詳細]
以上が「同時マルチスレッディング」の意味を知っている人向けの説明です。
「同時マルチスレッディングって何?美味しいの?」な人は、このまま読み進めてください。
用語の中身について説明します。

それでは、いってみましょう。
まずは予備知識として
・CPU
・コア
・スレッド
について簡単に説明します。
「そんなの説明されなくても知ってるよ!」な人は適当に読み飛ばしてください。
CPUは「実際に計算したり、あれやこれやの処理を実行するパソコンの部品」です。
CPUはパソコンさんの脳みそに相当する部品です。
パソコンさんが お仕事をしているときは、CPUさんが一生懸命 働いています。
なお、話を単純化するために「パソコン」と表現しましたが、スマホや その他のコンピュータ類でも同じです。
コアは「CPUの脳みそ」です。
CPUの中核で、実際にCPUとしてのお仕事をする部分です。
人間様と違って、CPUは脳みそを複数持っている場合があります。
1つのCPUに対して脳みそが1つある状態を「シングルコア」と言います。
1つのCPUに対して脳みそが複数ある状態は「マルチコア」です。
マルチコアの中でも、1つのCPUに対して脳みそが2つある状態は「デュアルコア」と言います。
これが4つになれば「クアッドコア」です。
技術の進歩に伴い、もっと、たくさんの脳みそがあるCPUも登場しています。
スレッドは「プログラムの処理単位(のひとつ)」ですが、今回は「(コンピュータさんのやる)お仕事」と捉えてください。
以上を踏まえて、本題に入ります。
CPUの脳みそであるコアは不器用なやつです。
一度にできる仕事は1つだけです。
並行処理はできません。
この不器用なコアに、あえて複数の仕事を同時にやらせるための技術……とか機能とかあれやこれやが「Simultaneous MultiThreading」です。
上でも書きましたが、日本語では「同時マルチスレッディング」と表現されます。
※本ページでも以降は「同時マルチスレッディング」と表現します。
もともと、コアはずっと働き続けているわけでは ありません。
お仕事がないときは、ぼーっとして休んでいます。
それに対して「よし!この休んでいる時間が無駄だから、もっと働かせよう!」と悪魔のようなことを考える人が出てきました。
人間社会だったら完全にブラック企業ですね。
でもコンピュータの世界ですから関係ありません。
労災も有給もない世界なのです。
そんな経緯で(実際にそんな経緯かは知りませんが)、コアの休んでいる時間にも別の仕事をさせることにしました。
そうすれば「なんちゃって」ではありますが、(ほぼ)同時に2つのことを処理できます。
そんな悪魔のような技術が同時マルチスレッディングです。
「同時マルチスレッディング」という名前なので「ほぼ同時に仕事(スレッド)を並行処理させるよ」的な説明をしましたが、実際には「コアのやつがサボっている時間あるじゃん?その時間も働かせようぜ!」な技術です。

例えば、インテルさんが考えた技術に「ハイパースレッディング」というのがあります。
ハイパースレッディングは「CPUのコアに一人二役をやらせる技術」です。
実際には1つのコアしかないけど、コンピュータさんには複数のコアがあるように見せかける技術です。
見せかけとはいえ、複数のコアがあれば、複数の仕事を同時にやれそうですよね。
ハイパースレッディングでは、1つのコアで複数の仕事を(ほぼ)同時にやります。
ということで、同期マルチスレッディングの実装例として、ちょいちょいハイパースレッディングが登場したりします。
気が向いたら、併せて覚えてあげてください。
一言でまとめるよ
まぁ「Simultaneous MultiThreading」って単語が出てきたら「同時マルチスレッディング
(1つのコアに複数の仕事を並行処理(っぽく)させるためのあれやこれや)のことなんだな~」と お考えください。
おまけ
■訳してみるよ
「simultaneous(サイマルテイニアス)」の意味は「同時の」とかです。
「multi(マルチ)」の意味は「複数の」とかです。
「threading(スレッディング)」は「thread(スレッド)」+「ing」です。
「thread(スレッド)」の意味は「より糸」とか「筋道」とか「脈絡」とかです。
何となく くっつけると
同時複数糸
となります。






