MCL(112)

インデックスに戻る

前のMCLへ  次のMCLへ

▼ My Computer Life (112)

112. AMDとAthlon

 これまで、i486SXPC-486MUPentiumIIIストロンガーPentium4ブラックサタンと、3代続けてインテルのCPUを使ったマシンにしてきたが、この2006年に、初めてAMDのCPUであるAthlon64を使ったマシンを組んだ。
 マシン名は、最初、「ブラックサタン2」と付けた。何それ工夫が無い、って思うかも知れないが、なんとなくこの時、「PCケースが一緒ならマシン名は引き継ごう」とか言う自分ルールを作ったので、そうなった。
 しかし、ずっと後になって、「ブラックサタン2ってどのマシンの事だっけ…?」となる事がかなり増えた。やっぱり、CPUから何から異なるマシンなのに、2などとつけるから紛らわしくなる。なので、後から呼び名を変える事にした。このマシンは、「デルザー」と命名した。仮面ライダーストロンガーにおける、ブラックサタンの後継組織の、デルザー軍団から名前を拝借している。

 PC-486MUからストロンガーに乗り換えた時や、そこからブラックサタンに乗り換えた時は、それぞれ前のマシンの性能的な部分に若干の不満があり、それが理由での新マシン導入だった。
 しかし今回、デルザー導入にあたっては、その理由はスペック的な部分ではない。ブラックサタンの騒音が結構激しいので、静かなマシンにしたかったのだ。
 私はそれまでは、家に帰ってきてPCを使う時は電源を入れ、使わなくなったら電源を消す、というごく一般的な市民だった。しかし、このマシンにするちょっと前から、寝る時も電源を落とさなくなった。きっかけはいくつかあるが、やはりPCゲーム(MMORPGなど)をやるようになった、というのが大きい。つけっぱなしでいる必要があったのだ。
 そうなると、当時PCの置いてある部屋と寝室が一緒だったので、騒音が気になった。ブラックサタン導入の回(#0101)でも書いたけど、特にチップファンの回転数が可変で、音が高くなったり低くなったり、かなり気になるんだよね…。
 そして、前回書いたように、Pentium4はとにかく動作周波数に特化したCPUなので、消費電力が大きく、従って発熱が多く、従ってファンが頑張って排熱しなくてはならず、従ってうるさくなる。
 そこで、AMDのAthlon64で組もう、と思い立ったわけだ。

 AMDは、CPUメーカーとしては、ずっとインテルの互換チップを作ってきた。Am386Am486などと言って、それぞれインテルのi386i486の互換となっている。互換と言うのは、いわゆる「ピン互換」で、元のインテルのCPUをマザーから引っこ抜いて、代わりに挿しても動く、という意味だ。
 こういった互換チップを開発していたのはAMDだけではなく、サイリックス、NexGenなども同じようなビジネスをしていた。
 Pentiumの時代になっても、AMDはK5K6K6-2など、それぞれ互換チップを開発した。

 だが、互換チップビジネスは、インテルの訴訟との戦いでもあった。そりゃまあ、当然という気もしなくもないが、AMDはインテルから、特許侵害などで幾度となく訴えられた。
 そして最終的には、AMDは非互換路線を取った。つまり、ピンレベルでの互換性がなく、独自のソケットに挿す形になる。そうなると、マザーボードもインテルCPU向けとは別に作らなければいけなくなる。それを覚悟の上で、AMDは非互換に踏み切った。

 その、AMD初の非互換CPUの初代が、Athlon(アスロン)だ。それまではK5とかK6とか、単純なコードナンバーみたいなものだったのだが、初めてきちんとした名前をつけた。
 「非互換」とは言っても、ピン配列が異なり、従って違うソケットに挿さなければいけないだけで、命令レベルでは基本的に互換性がある。つまり、x86命令を実行可能で、わざわざAMD用Windowsを買わないと動かない、という事はない。一般的な意味では「互換チップ」ではある。

 AMDは、64ビット化で、インテルと異なる戦略をとった。
 インテルは、32ビットCPUであるPentiumとは別に、64ビットCPUのItaniumを開発、販売をしていた。これらは全然別のアーキテクチャで、従来のPentiumをIA-32と総称し、それに対して新しくItaniumのアーキテクチャ、命令セットをIA-64とした。そのため、命令レベルでの互換性はない。

 そもそも、2000年代前半くらいのあたりで、64ビット化は必須の流れだった。と言うのも、アドレスバスが32ビットだと、表現できるアドレス空間は4GBまでになる。
 32ビットCPUが普及しはじめた80年代当時、メインメモリが4GBを突破する事など、家庭用PCでは夢物語だった(当時は16ビットCPUの枠組みに引きずられて、1MBを突破するかしないかが大問題だった)。しかしそれから20年経ち、家庭用PCでもメモリ1GBくらいの時代になり、ましてやサーバ用途となると、4GBで不足するような懸念が生まれてきた。また、80年代当時にもあるにはあったが、仮想メモリ技術が進んでおり、それを考えるともうすでに足りない状況になっていた。従って、64ビット化が求められた。

 そこで、インテルは新規の64ビット命令セットとしてIA-64を策定し、そのプロセッサとしてItaniumを開発したのだが、AMDのアプローチは異なった。インテルが、全く新しい命令セットを作ったのに対し、AMDは、32ビット命令セットに上位互換性のある命令セットとして、AMD64を開発した。
 このような仕組みのため、AMD64のCPUは、32ビットコードをそのまま動かす事ができた。一応、Itaniumも、32ビットコードを動かす事は可能だったのだが、内部動作として、32ビット命令をIA-64命令に変換してから解釈実行を行うので、効率が悪い。つまり、IA-64のCPUにとって、32ビットコードは「外国語」なのだ。

 このような状況だったので、ソフトベンダーからは、AMD64の仕組みの方が喜ばれた。何しろ、今までのコード自体はそのままAMD64で実行できるからだ。
 これを書いている2016年現在、ソフト的には、32ビットから64ビットへの移行期ではある。OSであるWindowsは、64ビット版と32ビット版の両方が発売されているが、その上で走るソフトについては、まだ全て64ビット化されているとは言えない。つまり、64ビットOSを使っていたとしても、そこで走る各アプリケーションは、64ビット版だったり、32ビット版だったりする。その時、動作速度がデコボコになるIA-64よりも、均等に動かせるAMD64の方が、過渡期ではありがたい。
 まとめると、インテルが採用したIA-64は、世の中の全てのアプリケーションが64ビット化された暁には、その本領を発揮するのだろうが、その時が来るのは遥か未来と考えられるので、AMD64の方が現実的なのだ。何しろ、初めてAthlon64が出た2004年から12年経った2016年現在でも、全てのアプリケーションの64ビット化はなされていないのだ。

 やがて、マイクロソフトなど主要ソフトベンダーが、インテルに対し、AMDと同じ路線を取るように圧力をかけ始めた。言い換えると、64ビット命令セットのスタンダードを、AMD64にしたい、という意向を示した。  インテルは泣く泣く、EM64Tという、新しい命令体系を構築していった。IA-32の拡張として、64ビット命令を新しく定義しているのだが、何のことはない、AMD64互換の命令セットである。
 従来、インテルの作ったx86命令セットに対して互換性のあるチップを作っているので、AMDのチップは「互換チップ」と呼ばれていたのだが、64ビット世代になって、逆にAMDの作った命令セットに対して、インテルが互換性のあるチップを作るという、主従の逆転が起こった。
 その時のインテルの屈辱は、どれほどのものだったろうか。

 やがて、コンシューマ向け64ビットCPUの世界は、AMD64の命令体系に統一された。Itaniumも、サーバ用途で生き残っているとは言えなくもないが、ほぼ駆逐されている。
 そういうわけで、今の64ビットCPUはAMD64系と呼んでいいのだが、色々政治的な配慮から、x64と呼ばれている。元々、インテルの32ビットチップ群と、その命令セットを合わせてx86と呼んでいたので、その64ビットバージョンだからx64、という話なのだろう。
 そのx86は、元々は8086に端を発し、80186、80286、i386、i486など、○○86系CPUの総称として使われていた経緯がある。「x」はワイルドカードの意味なのだ。それを考えると、「x64」という言い方はおかしいのだが、AMDを特別に強調しない、公平な呼び方として、あえて使われているようだ。

 AMDは、この64ビット化の主導権を握る事に成功したのを利用して、それまでインテル(あるいはDECなど)に抑えられていたサーバ分野にも、OpteronというCPUを開発して、進出した。それから、Opteronがインテルで言うところのXeonであるのと同様、インテルの廉価版CPUであるCeleronのニッチに対しても、DuronというCPUを送り込んだ(Duronは、やがてSempronというCPUに置き換わる)。
 また、Athlonのフィールドでも、インテルのPentium4が、周波数を優先するあまり、消費電力などの点で不利になったのに対し、Athlonは低消費電力路線を売りにしていた。それで、私のように、騒音を減らしたいなどという人に選ばれる事もあった。

 ただ、やはり世間の人は動作周波数でCPUを評価する傾向はあった。例えば3GHzのPentium4の横に、1GHzのAhtlonが並んでいると、どうしても3GHzの方が速いCPUに見えてしまう。
 そこで、AMDは苦肉の策として、モデルナンバーという概念を持ち出した。
 これは、例えば動作周波数1GHzのCPUの名前に、「2000+」というナンバーをつけたりする。「Athlon XP 2000+」といった感じだ。この2000+が何を意味するのかと言うと、AMDもハッキリ明確には言わないが、つまり「Pentium4の2GBに相当する、あるいはそれ以上」という事をアピールしたいのだ(+がついているのは、それ以上、という事)。
 これで、単純に動作周波数で比較するような人たちに、「本当はこんくらいの実力があるんだぜ」という事をアピールしていた。が…正直、この戦略がうまく行ったかどうかは良く分からない。インテルCPUの「周波数」とAMDCPUの「モデルナンバー」を比較するような事を、そういった「周波数だけで比較するような」層の人たちがやっていたかどうか疑問だし、そもそも、このモデルナンバーって正しいの、という疑問もあった。所詮メーカーが自分で謳っている数値にしか過ぎないので、そこまで信用されていなかったのではないだろうか。
 正直、私自身、このモデルナンバーを全然参考にしていなかった。

 さて、この後、組みあがったデルザーの事を若干書こうと思ったが、思ったよりAMDチップの話だけで分量があったので、次回に回そうかと思っている。


前のMCLへ  次のMCLへ

戻る

TOM 2020