Athlon 64

はじめに

Athlon 64は2003年にAthlonの後継として発売されたx86互換CPUです。開発コードネームはK8でx86系互換CPUとして、またコンシューマ向けとして初めて64bit演算をサポートし次世代のCPUとしてその動向が注目されるCPUです。

Athlon 64の最大の特徴はAMD64とよばれるx86互換の32bitをそのまま64bitに拡張した独自のアーキテクチャをとっていることで、これにより既存のOSやソフトを通常通り使いつつ64bitのプログラムも実行できるという特徴があります。コンシューマ向けで始めての64bitプロセッサということもありハイエンドユーザーや自作マニアだけでなく市場全体が注目しているプロセッサなのです。

主な仕様

Athlon 64

スペック

チップ名 Athlon 64 Athlon 64 FX
開発コードネーム K8
コアの開発コードネーム ClawHammer SledgeHammer
一次キャッシュ 128KB
二次キャッシュ 1MB
メモリコントローラ シングルチャンネル(64bit)DDR400 デュアルチャンネル(128bit)DDR400
FSB HyperTransport (16×16bit)
クロック - -
パッケージ形状 Ceramic-mPGA
対応スロット Socket 754 Socket 940
コア電圧 -
プロセスルール 0.13μ Silicon On Insulator
ダイサイズ 193-2
トランジスタ数 10590万個
拡張命令 MMX/3D Now Professional
分類 RISC RISC
その他 - メモリにレジスタードタイプ必須

特徴

Athlon 64はAMDが開発したAMD64アーキテクチャによりx86互換CPUながら64bit演算が可能なCPUです。IntelはItaniumというIA-64と呼ばれるx86と互換性のないアーキテクチャを使ったプロセッサーでCPUの64bit化行いましたが、これに対してAMDはIntelとはことなりAMD64とよばれるx86をそのまま64bitに拡張したアーキテクチャを利用したCPUで64bit化を行いました。

ちょっと待てよと、Itaniumでもx86のプログラムを実行できるからx86互換じゃないか! と考える方もいるかもしれませんが、これは64bit演算を行うコアとは別に実装(要するに64bitのCPUと32bitのCPUを別々に持っているような構造)しているもので、さらにOSはIA-64に対応した専用のものを使うことが必要で完全なるx86互換とは言いにくいです。また、64bit専用のOSが必要なので企業などに使われる大規模サーバー向けで一般向けではないです。

ちなみにItaniumは32bit演算が別のコアで実装しているので64bit依存せずに演算能力が決まります。つまり64bit演算能力が向上させても32bit演算用のコアをパワーアップさせない限り32bitの演算は向上しないのです。で、その演算能力は低いらしくソフトウェアで32bitのプログラムを64bitにエミュレーションする方法をIntelが推奨するほどのものなのだそうです。

これに対してAMD64はx86をそのまま64bitに拡張した構造をしているので、OSを含めて今までの32bitのソフトウェアを通常のPentiumやAthlonなどと同様に実行でき、また64bitのソフトもそのまま実行できるという利点があり、また64bitと32bitを同一コアで実行するため32bitの性能が劣るようなことにはならない反面、64bitのプログラムの実行性能は特化したIA-64には劣るようです。

実はこの手法はIntelがi386で16bitと32bitの両方をサポートした時と似ていて、i386もx86命令の16bit演算をそのまま拡張して32bit化したものでした。i386系のCPUの16bitも32bitも同様に扱える点で、Windows95に代表される16bitの互換性を残しつつ自然に32bitへ移行することができたことを考えるとAthlon 64にも期待が持てるのです。

通常PentiumやAthlonはノースブリッジとのインターフェースをもっていてメインメモリはノースブリッジ経由でアクセスする仕組みを持っていました。しかし、この方法だとCPUとメモリの間にチップセットが入るためにそこでオーバーヘッドが起こってしまいメモリの性能が生かしきれない他、メモリへのデータとAGPやPCIバスへのデータを同じノースブリッジへのインターフェースによって送るために同時に利用すると帯域を取り合って競合してしまう可能性があります。

そこでAthlon 64ではCPU側にメモリインターフェースを設けました。このためメインメモリにはCPUから直接アクセスするために無駄がなく性能向上しますし、ノースブリッジへのインターフェースとは別にメモリインターフェースがあるのでPCIバスやAGPバスへのデータを転送することがあっても競合することはありません。逆にPCIバスやAGPバスのシステムがメモリにアクセスする際にはCPUを介す必要があるのでチップセットの場合よりも効率が悪くなります。

メモリインターフェースをCPUに統合した関係で、対応するメモリを変えるにはCPUごとの設計変更が必要となるので従来よりも新しいアーキテクチャのメモリへの対応が鈍くなる可能性があります。またメモリインターフェースとノースブリッジへのインターフェースの二つのインターフェースをCPUに持たせたためにCPUの製造が難しくなりCPUの製造コストが高価になることや、ピンの数が多くなるので(まるまるじゃないにしろメモリインターフェースの分ピン数が増える)マザーボードの設計の難易度が上がりコストが高くなるので全体的に価格が高くつく欠点があります。

メモリインターフェースをCPUに内臓すればメモリ周りを変更するためにCPUごと設計を変更する必要があるのは上の通りで、この為このタイプのCPUを開発するためには将来の方向性を確実に予測する必要があります。実はAthlon 64でこの予測を大きく読み違えてしまいかなり痛い門出となってしまったのです。

AMDの予定ではメモリがデュアルチャンネルのサ-バー向けであるOptionとメモリがシングルチャンネルのコンシューマ向けのAthlon 64の二つの製品を想定していたのですが発売前に、IntelのAthlon64対抗策としてメモリのデュアルチャンネル化を進めた結果コンシューマ向けでもデュアルチャンネルのメモリが普及してしまい、高性能を謳うAthlon64でシングルチャンネルというのはナンセンスとなってしまいました。しかしながら、上の理由からメモリインターフェースを変更するためにはCPUの設計そのものを変更する必要があり、当然発売までに間に合わすことができませんでした。

そこでAMDはサーバー向けのOptionをAthlon FXとして発売するという方法をとりました。Athlon 64とOptionではピンの数が異なるためにOptionをベースに作ったAthlonFXはOptionと同じマザーボードに対応していてAthlon 64用マザーボードで使えない上に、通常サーバーなどに使われるレジスタードタイプのメモリしか利用できないという問題を引き起こしてしまいました。下の表からもAthlonFXがOptionに近いことがわかります。

Athlon 64もOptionもトランジスタの数とダイサイズが同じことからおそらく中身のコアは同一だと考えられるので、パッケージングにしろメモリにしろ変更するのはそれほど大変ではないと思われ、逆にそれすらできないくらい急な方針転換だったのだと思われます。

来年の4月にこのパッケージを変更してアンバーファードタイプのメモリ(レジスタードタイプではない普通のメモリ)に対応したCPUが登場します。このCPUがなんとSocket939という現行のAthlon 64でもAthlon FX/Optionでもない新しいプラットホームに対応して登場します。このため、現行のCPUと物理的な互換性がなく、AthlonFXのSocket 940はOption用として使う他アップグレードパスがなくなってしまうようなのです(当座は互換性を保つためにSocket940のAthlon FXもリリースするらしいが)。

また、Athlon 64もSocket 939に統一され現行のSocket 754はAthlon 64の廉価版となる製品(製品名はAthlonXPとなるようですが中身はAthlon 64系列。ただし32bitに制限されるとか。)用としてしばらくは残るようです。ただし、考えてみてもメインストリーム向けCPUのプラットホームで使えないようではバリュー向けCPUの存在意義が薄れてしまい、尚且つ32bitに限定するようなら既存のAthlonXPのプラットホームとの互換性を犠牲にする意味がないので微妙です。Athlon 64/Optionの販売が遅れたために、さらに次世代のK9の発表がすでに目前まで迫っているといわれ今後の動向がきになるところです。

Athlonでは旧DECが開発したAlpha用のバスであるEVバスを利用していました。しかし、Athlon 64ではメモリバスをノースブリッジからCPUに移動させた関係でバスの性質が変わったのと、マルチプロセッサーを構築する際にCPU同士の接続などができるようにするためなどから、HyperTransportというバスを使うことにしました。HyperTransportはCPU間の接続をはじめ多目的に使える汎用バスです。Hyper Transportには速度に応じて何種類か転送モードがありますが、今回のAthlon64に搭載されたのは1.6GHz×16bit=6.4GB/sのもので、3つのHyper Transportを備えるOptionとはことなりAthlon64/Athlon FXではともに一本しかもたないので確実にノースブリッジと接続することになります。

Hyper Transportは汎用バスなのでノーズブリッジを接続するという一般的な方法以外にもブリッジチップを使って別のものを接続して…というようにプラットホームそものもの自由度が高くなるという利点を持ちます。いずれにせよCPU本体にメモリインターフェースをもってしまうのでHyperTransportに接続されるもので従来のように速度を求められるのはグラフィックくらいなものなのでノースブリッジの重要性は低くなるかもしれませんが、今までなかったようなユニークな製品が登場する可能性があるのは期待できると思います。

Athlon 64ではアーキテクチャの一新が注目されていますが、二次キャッシュの増大など基本でも向上していてCPUにメモリインターフェースを統合した成果もあって64bit環境でなくても既存の環境でも充分現行のAthlonを上回る性能を見せていて、Pentium4とも良い勝負をしています。今後64bit環境が整えられたときのことも考えると将来が楽しみなものだと思われます。

ラインナップ

Athlon 64とAthlon FX及びOptionの違い

チップ名 Athlon 64 Athlon 64 FX Option
コアの開発コードネーム ClawHammer SledgeHammer
メモリコントローラ シングルチャンネル(64bit)DDR400 デュアルチャンネル(128bit)DDR400 デュアルチャンネル(128bit)DDR333
コアの開発コードネーム Unbuffered Registered
FSB HyperTransport (16×16bit)×1 HyperTransport (16×16bit)×3
対応スロット Socket 754 Socket 940

※Optionはシリーズによってシングル用、デュアル用、8way用がありますが、HyperTransportの数をはじめどれもスペック的には同じで、単に信頼性の違いと制限をかけているものと思われます。