UltraSPARC T1 は "SMT" ではなかった
こないだ
1 GHz, 8コア×4-way SMTのT1
と書いてしまったが,Wikipedia情報だとこれは間違いらしい.言葉遣いをよく知らなかった.
SMT (Simultaneous MultiThreading) はスーパースカラ(複数の実行ユニット)が大前提で,複数の実行ユニットがあっても遊ぶ可能性が高いから2スレッド(以上)分の命令を(タグか何かで区別できるように拡張した上で)混ぜて突っ込んでみましょう.という定義か.Intel NetBurst, Nehalem, Sandy Bridge, Atom の HT (HyperThreading) やIBM POWER5..7, Cell PPEが該当する."Simultaneous" と名が付いたのは,複数の実行ユニットにより複数スレッドが「同時」に処理される(ことがある)からってことか.
UltraSPARC T1や,あとCUDAもそうだと思うが*1,レイテンシの隠蔽のために複数スレッドの命令をinterleaveさせるハードウェア機構を持つMPUは「バレル型」と呼ばれてるらしい.確かによく見ると真の意味で「同時」に実行されるスレッドは無いかも.オーバーラップしてはいるけどね.両方を含む言葉は「ハードウェア・マルチスレッディング」とあるな...
どうでもいいが日本人には RAW (Read after Write) って覚えづらくない? なんで Write → Read の順に起きるのに単語上では Read が先に来るんだよ! この辺,ペーパーテストを指針に習った英語ではどうにもなりませんね... 感覚がつかめない.