今回からは趣向を変えて、x86の拡張命令の変遷を、ロードマップでひもといてみよう。「CPU、GPUと来たら、次はチップセットじゃないの?」と言われそうだが、担当編集が失念していたようだ。というわけでチップセットは今後のテーマとしたい。
そもそも拡張命令とはなんぞや?
拡張命令の話を始めると、実は長い。そもそも「拡張」を議論するには、「元になるのは何か」をきちんと決めないといけない。一般にx86命令というとき、それは「80386」の命令を指していると思われがちだが、これはあまり正しくない。結果から言えば、「Pentium Pro」から始まるP6アーキテクチャーの命令が、事実上の標準になっている。
命令セットを見てみると、以下のような命令が80386の命令に追加される形でx86命令として定義されており、これを拡張命令とみなすかどうかで、話がちょっと変わってくる。
- 80486で追加
- BSWAP・XADD・CMPXCHG・INVD・WBINVD・INVLPG
- Pentiumで追加
- CMPXCHG8B・CPUID・RDTSC・RDMSR・WRMSR
- Pentium Proで追加
- CMOVcc・FCOMI・RDPMC・UD2
現実問題として、LINUXやさまざまなUNIX系はともかく、現在のWindowsなどはいずれも「P6命令は標準的にサポートされている」という前提でシステムが構築されており、基準となるのはこのあたりとなるだろう。なお、P6以降もちょろちょろとx86命令そのものは各社で追加されていたりするが、これは後述したい。
MMXに始まった新たな拡張命令群
64bit拡張はAMDの技術が基本に
こうしたx86命令そのものの追加や変更とはまた別に、x86命令の枠組みを拡張するような命令セットが追加されていった。上の図は、こうした拡張命令の系譜を簡単にまとめたものである。
この種の拡張命令セットを最初に定義したのはインテルで、1997年の「MMX」(MultiMedia eXtension)である。そのMMXを独自に拡張したのがAMDで、「MMX+/3DNow!/Enhanced 3DNow!」といった命令セットを順次投入する。
ただし、インテルも「SSE」(Streaming SIMD Extension)を同時期に投入したため、しばらくはSSEとEnhanced 3DNow!という2種類の拡張命令が共存する形になった。最終的に、AMD独自の3DNow!系統はマーケットをつかみ切れず、このためAMDは「3DNow! Professional」としてSSE命令との互換性を取ることになる。
これに続きインテルは、SSEをさらに拡張した「SSE2」を投入する。対するAMDはすぐには追従せず、代わりにx86の64bit拡張である「AMD64」(コード名 x86-64)を実装する。最終的にAMDは、SSE2とこれに続くSSE3をサポートする一方で、インテルはAMD64とほとんど互換(ほんの一部だけ異なっている)の64bit拡張を「EM64T」(Extended Memory 64 Technology、最近はIntel 64と呼称)としてサポートを余儀なくされる。両社で互換性がきちんと取れているのは、このAMD64/EM64TとMMX/SSE/SSE2/SSE3までである。
この後、両社は相互の互換性をあまり取っていない。インテルはまず「SSSE3」(Supplemental SSE3)を、続いて「SSE 4.1/4.2」をリリース。2010年予定の「Sandy Bridge」世代のCPUでは、「AVX」(Advanced Vector eXtension)と呼ばれる新しい拡張命令を投入する予定だ。
これに対してAMDは、「SSE4a」と呼ばれる独自命令セットをすでに投入しており、これに続いて「SSE5」を、2011年以降と目される「Bulldozer」コア世代で投入の予定である。このAVX/SSE5は今後細かく説明するが、両社ではある程度互換性を取りつつも、完全互換とはならない模様だ。
この連載の記事
-
第788回
PC
Meteor Lakeを凌駕する性能のQualcomm「Oryon」 Hot Chips 2024で注目を浴びたオモシロCPU -
第787回
PC
いまだに解決しないRaptor Lake故障問題の現状 インテル CPUロードマップ -
第786回
PC
Xeon 6は倍速通信できるMRDIMMとCXL 2.0をサポート、Gaudi 3は価格が判明 インテル CPUロードマップ -
第785回
PC
Xeon 6のIOチップレットには意地でもDDR5のI/Fを搭載しないインテルの強いこだわり インテル CPUロードマップ -
第784回
PC
Intel 3は300~500MHz動作周波数が向上する インテル CPUロードマップ -
第783回
PC
Lunar LakeにはWi-Fi 7があるがPCIe x16レーンは存在しない インテル CPUロードマップ -
第782回
PC
Lunar LakeはNPUの動作周波数がアップし性能は2倍、ピーク性能は4倍に インテル CPUロードマップ -
第781回
PC
Lunar LakeのGPU動作周波数はおよそ1.65GHz インテル CPUロードマップ -
第780回
PC
Lunar Lakeに搭載される正体不明のメモリーサイドキャッシュ インテル CPUロードマップ -
第779回
PC
Lunar LakeではEコアの「Skymont」でもAI処理を実行するようになった インテル CPUロードマップ -
第778回
PC
Lunar LakeではPコアのハイパースレッディングを廃止 インテル CPUロードマップ - この連載の一覧へ