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

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






