このページの本文へ

前へ 1 2 3 4 次へ

ロードマップでわかる!当世プロセッサー事情 第22回

x86 CPUの進化を拡張命令のロードマップでひもとく

2009年10月12日 12時00分更新

文● 大原雄介(http://www.yusuke-ohara.com/)

  • この記事をはてなブックマークに追加
  • 本文印刷

 今回からは趣向を変えて、x86の拡張命令の変遷を、ロードマップでひもといてみよう。「CPU、GPUと来たら、次はチップセットじゃないの?」と言われそうだが、担当編集が失念していたようだ。というわけでチップセットは今後のテーマとしたい。

拡張命令の変遷で見たCPUロードマップ

拡張命令の変遷で見たCPUロードマップ


そもそも拡張命令とはなんぞや?

 拡張命令の話を始めると、実は長い。そもそも「拡張」を議論するには、「元になるのは何か」をきちんと決めないといけない。一般に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!」といった命令セットを順次投入する。

MMX Pentium

MMX Pentium

 ただし、インテルも「SSE」(Streaming SIMD Extension)を同時期に投入したため、しばらくはSSEとEnhanced 3DNow!という2種類の拡張命令が共存する形になった。最終的に、AMD独自の3DNow!系統はマーケットをつかみ切れず、このためAMDは「3DNow! Professional」としてSSE命令との互換性を取ることになる。

SSEを初めて実装したのは「Pentium III」の世代

SSEを初めて実装したのは「Pentium III」の世代

 これに続きインテルは、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までである。

x86命令を64bit対応に拡張した初のCPU「Athlon 64」

x86命令を64bit対応に拡張した初のCPU「Athlon 64」

 この後、両社は相互の互換性をあまり取っていない。インテルはまず「SSSE3」(Supplemental SSE3)を、続いて「SSE 4.1/4.2」をリリース。2010年予定の「Sandy Bridge」世代のCPUでは、「AVX」(Advanced Vector eXtension)と呼ばれる新しい拡張命令を投入する予定だ。

 これに対してAMDは、「SSE4a」と呼ばれる独自命令セットをすでに投入しており、これに続いて「SSE5」を、2011年以降と目される「Bulldozer」コア世代で投入の予定である。このAVX/SSE5は今後細かく説明するが、両社ではある程度互換性を取りつつも、完全互換とはならない模様だ。

前へ 1 2 3 4 次へ

カテゴリートップへ

この連載の記事

注目ニュース

ASCII倶楽部

プレミアムPC試用レポート

ピックアップ

ASCII.jp RSS2.0 配信中

ASCII.jpメール デジタルMac/iPodマガジン