Intel 互換 CPU の選択 '01 年夏

2001 年 8 月 11 日 最終更新
1999 年 3 月 1 日作成
Pentium 関係など,out of date な記述が増えてきたが, 削除するのも何なので,この文章の更新は停止し, 別に書くことにします.(2001 年 11 月 5 日)

2001 年 8 月 11 日.Athlon も P4 も発熱過大 CPU に

Thunderbird Athlon 1.2GHz の電力消費量は最大 63W, 1.4GHz だと70W を越える. Thunderbird Athlon のスイートスポットは 800MHz (45W) くらいだったと思う. この秋には 1.2GHz が Athlon のローエンドになるというが, こんな消費電力では,とても安心して使えない. 次世代の Palomino core は消費電力が低減されているが, その分をクロック向上にふりむけるため, 発熱量の絶対値は減らないようだ. intel の Pentium4 も現在の Socket423 のものは消費電力が 70W 前後あり,こんなものをメインストリーム CPU として 家庭用にばんばん売り込んで大丈夫なのか.

発熱の大きい CPU は,ファンの騒音,過熱による故障や 寿命短縮の問題もあり,安定稼働が危ぶまれる. もはや,多少の性能の高低より,CPU 消費電力が, もっとも重大な要素になりつつある. PC を自作する場合には,CPU の消費電力は 40W を上限に選んだ方が, あとで無用なトラブルを起こさなくて済むだろう.

2001 年 4 月 09 日. やはりレイテンシ低減が決め手

FSB133MHz の Athlon が出回り, それに対応したチップセットも四種類出ている. AMD760,VIA KT133A,ALI MAGiK1,VIA KT266 である. 各サイトのベンチマークをみると, AMD760 と KT266 がほぼ同性能,KT133A が僅差でそれに続き, MAGiK1 が劣る結果になっている. ここで注目されるのは SDR の KT133A が DDR の AMD760 に 近い性能 (〜95%)を発揮していることである. スループットを測る項目では劣るものの, オフィスアプリケーションではほとんど遜色がない. 一方,の MAGiK1 は FSB133MHz 時のピークスループットでは 負けないものの,レイテンシが大きいためアプリケーションの 実行性能は劣る. DDR メモリを使っても,SDR の

KT133A は,KT133 でも見られた 例の問題 は持ち越している. ただし FSB クロックを 33% あげたことで落ち込み幅は減少し, メモリアクセス性能は KT133 比 25% の向上といっていい. つまり,全く同じ 133MHZ の VC SDRAM を使っても, N=1000 のとき KT133 が約 16MFLPS だったものが 約 20MFLOPS に向上している. SDRAM のスループットは変わらないから, この向上は純粋にチップセットのレイテンシが減ったためといえる.

一方,FSB を固定すると,PC133 CL3 と VC133 CL2 の性能差は 10% 以内しかないことが分かっている.

まとめると次のようになる.

  1. SDR と DDR の違いによるアプリケーションの性能差は,ほとんどない.
  2. DRAM のレイテンシも,あまり性能に効かない.
  3. チップセットのレイテンシを低減すると,性能がはっきり上がる.

次の一手は,ノースブリッジの CPU への統合であろうか.


はじめに

PC の CPU に関する情報は、 Tom's Hardware Guideや, www.tomoya.com などにまとめられている. 後者は独自の見解をもって前者に批判的検討を加えており, 両方読めば僕が付け加えることは特にないのだが, 客観的な評価はさておき,自分なら何を選ぶか, という点に重きをおいてまとめ直してみよう.

これまでこの記事では FPU 能力を重視してこなかったが, MII や K6-2 のように FPU 能力の低い CPU は後退し, 新しい Athlon はかなりいい線いっている. Athlon のクロックが 1GHz を楽々越えたことで, 多少クロックあたりの性能が高くても, 高価で実クロックの劣る Alpha システムを選ぶ理由は なくなりつつある.

原理

1. ベンチマークプログラムと実使用環境の違い

一次キャッシュに収まるような小さいループを回すベンチマーク プログラムがナンセンスだという知識はだいぶ普及してきた. そこで最近は大きい実アプリケーションを使ったベンチマークが 行なわれる. Tomoya が力説するのは,単一アプリケーションだけ動かした ベンチマークもまだ不十分だということであろう.

マルチプロセス OS では毎秒数百回割り込みが起こって プロセスが切替えられる. プロセス A から B に切替えられると,A が使っていた キャッシュメモリの内容は B には必要ないから, B は主記憶から自分のデータを読み出し、 キャッシュの内容を書き換える. 極めてラフな議論として, 大体キャッシュが自分のデータになった頃には, また次のプロセスにスイッチされる. 大きなプロセスが自分一人しかいなければ, 次にタイムスライスがまわってきたときに前の キャッシュの内容が残っている可能性もあるだろうが, いくつものプロセスがまわっていれば,ワーキングセットを キャッシュに取ってくるだけでタイムスライスが終ってしまい, キャッシュのデータを使って高速に実行するまでに至らない. つまりキャッシュがないのと同じことになる.

仮に毎秒 300 回プロセススイッチすると考え, 主記憶の実効スループットが 100MByte/秒とする. これは,僕の使っている Celeron300A(450MHz駆動) の典型的な 値であろう.すると,1 タイムスライスの間に主記憶と やり取りできるデータ量は僅か 300kBytes に過ぎない. よって,次のタイムスライスまでデータが残らないくらい 負荷が掛かっているとき 300kByte 以上のキャッシュメモリは あまり意味がないことが分かる.

これが,負荷が掛かれば掛かるほど二次キャッシュの効用が 低下する理由である. 負荷がかかったときタフなマシンが欲しいのであれば, 大容量の二次キャッシュに余分なお金を払うのは無駄である. 中程度の負荷までならば,1~2MBytes の大容量キャッシュは 効果があるだろう.

2. クロック逓倍率の影響

CPU の種類と FSB のクロック周波数が同じならバススループットが同じ, キャッシュのヒット率も同じなので,倍率を上げても処理能力の飛躍はない. 例えば,Pentium-133 (66x2) と Pentium-200 (66x3) のクロック は 1.5 倍だが実力は 15% 位しか変わらない. 本質的に同じといっていい.

3. 一次キャッシュの大切さ

CPU に内蔵されている一次キャッシュは演算回路と等速に動く 小容量のキャッシュメモリで,演算回路の速度に見合った速度で 命令やデータを供給するのに不可欠なものである. クロック逓倍というアイデアは,一次キャッシュがあれば こそ実現できる。 Pentium はこの一次キャッシュが命令用 8kBytes データ 8kBytes の 合計 16kBytes と今から見れば小さいため, クロック逓倍率を上げたとき CPU が要求するデータが一次キャッシュに ない確率が高く,主記憶待ちが発生して CPU が空回りしてしまう. こうなるといくら速い CPU でも結局主記憶の速度でしか仕事が 進まない.

MMX Pentium へマイナーチェンジしたとき一次キャッシュの 容量が 16 + 16 = 32kBytes に倍増された. これによってキャッシュミス率が低下し命令・データの供給が 乱されることが減ったため,演算回路の演算能力はほとんど 変わらないのに,CPU としての処理能力は 6% から 15% 向上した. また,これによって処理能力が頭打ちになる逓倍率を少し上げられた.

AMD K6-2 や Cyrix MII などは更に二倍 64kBytes の一次キャッシュを 内蔵している. これくらい大きくしても,さっきの 300kBytes という値よりは 十分小さいため,タイムスライス内でのキャッシュとしての効用は 十分発揮される.

4. 内部二次キャッシュ

Intel は PentiumPro や Celeron プロセサで, 一次キャッシュを増量するよりも,二次キャッシュを CPU 内に統合する方向を選んだ. 一次キャッシュを増量することの難しさは,キャッシュの中に 求めるデータがあるかどうかの検査が増えることで, CPU と同じ速度でという前提では限界がある. 内部二次キャッシュは一次キャッシュよりも 2, 3 倍アクセス時間が 掛かるが,外部二次キャッシュよりは数倍速い. 容量は 128k から 256kBytes で,512k から 2MBytes の容量 を持たせられる外部キャッシュより小さい.

この内部二次キャッシュが注目されるわけは, 一次キャッシュ増量に近い効果が得られることで, 単一アプリケーションの実行にも効き, しかもタイムスライス内で充填できる程度の容量なため, 高負荷時でも効果が残ることにある.

5. バス効率

同じ FSB 周波数で同じメモリでも,バスプロトコルの違いにより データ転送速度は違ってくる. 例えば,Slot1/Socket370 の方が Socket7 と比べて, 主記憶からの転送スループットは速い.

5. 所詮は主記憶の速さが地力

コンピュータの底力は CPU の能力より主記憶のスループットで決まる, という説がある. 初めはスーパーコンピュータのユーザーが,キャッシュにキャッシュを 重ねてカタログ性能を嵩上げした MPU ベースのワークステーションを 批判していいだしたことである. CPU の演算が十分速くなり,プログラムのタイトループがキャッシュに 納まってしまえば,あとは巨大データをなめていくのに主記憶の 転送速度がボトルネックになるという趣旨であろう. tomoya は日本語 Windows の実使用状況の考察から同じ結論に達している. Tom もこの頃は主記憶の速さ重視で一貫しているようだ.

PC の処理能力は CPU のクロック周波数ではなく, 主記憶の転送速度でクラスわけされるべきである. 下の表は,John D. McCalpin による stream プログラムの結果を 示したものである. 連続したアドレスにおかれた double (8バイト)のデータを順番に アクセスしていくスループットを表している.

表2:ソケット/スロットの種類と主記憶連続アクセス性能
形態CPUFSB[MHz]Copy[MB/s]Scale[MB/s] Add[MB/s]Triad[MB/s]概算比
Socket ADuron6001334784756015005.6
Slot AAthlon5501333473434083914.1
Slot AAthlon5001003312873433293.5
Slot 1Celeron300A(450)100300269368304 3.4
Slot 1PentiumIII667E133154155170162 1.7
Super 7K6/2-4001001461451641561.7
Socket 8PentiumPro2006696951041031.1
Socket 7MMX3006671961001001.0
表3:実験条件
CPUマザーボードチップセットメモリ
DuronMSI K7TProVIA KT133VC-SDRAM133 CL=2
AthlonAbit KA7VIA KX133PC133 SDRAM CL=3
AthlonFIC SD11AMD 750PC100 SDRAM CL=2
CeleronAbit BH6Intel 440BXPC100 SDRAM CL=2
PentiumIIIAbit VA6VIA Apollo Pro133PC133 SDRAM CL=3
K6-2Asus P5A-BALi Aladdin VPC100 SDRAM CL=2
PentiumProAsus P/I-XP6NP5Intel 440FXEDRAM
MMX東芝Portege3020Intel 430TX?EDRAM
以上の結果をまとめると次のようになる.

  1. CL=2,3 の違いは約 10% である.
  2. バスプロトコルの違いから,440BX チップセットのクロックあたりの スループットは,Socket7 に比べて二倍ある.
  3. VIA Apollo Pro133 のメモリアクセス性能は低い.
  4. Pentium Pro は,440FX チップセットを使う限り, 主記憶アクセス(と演算速度)に関しては MMXPentium と一割くらいしか変わらない.

'01 八月〜: intel PentiumIII FCPGA2 (Tualatin) 1.13G

intel の Pentium4 前倒し作戦のため,Tualatin PentiumIII は 第三四半期中しか売られないことになったらしい. しかし,0.13[μm] プロセスと P6 アーキテクチャの組合せで, 1.13GHz でも消費電力は最大 33W で済む. Athlon 1GHz より 20W も少ないのであるから,これは嬉しい. 買うなら今のうちだ. Tualatin は Celeron ブランドで売られ続けるだろうが, 現在のロードマップでは FSB100MHz に限られていて, P3 に比べて性能では不利になる. Celeron の FSB を限る理由は上位の CPU との差をつけるためであり, 逆にいえば,FSB133MHz の P3 は,P4 にたいしても競争力があるのだ.

'01 春〜: AMDAthlon 1000-266

Athlon の FSB が DDR266 に上がったことで,PIII に対する レイテンシの不利はなくなり,性能は一ランク上がった. これから買うなら FSB の高い方に決まり. Duron はまだ低い FSB のタイプしかなく, オーバークロックは可能だが,最初からそれを狙って買うのも どうかと思われる. 一方消費電力問題も,大丈夫になりつつあるようなので, 今回は Athlon 1GHz-266 を選んだ. ALi MAGiK1 さえ避ければ, メモリは DDR266 でも VC133 でも良い.

'00 夏〜: AMD新 Athlon 750〜800/Duron 800

Athlon は第二世代 Thunderbird にモデルチェンジし, Intel Coppermine と同じオンダイ二次キャッシュになった. これで 750MHz 以上の高クロック化が二次キャッシュの心配なしに できるようになった. 価格性能比からいって,PentiumIII に勝ち目はない. ただし Athlon の高クロック化が予想以上に進んだことで, 消費電力の心配が再燃してきた. Athlon900 以上で,志田が個人的経験から危険ゾーンだと思っている 50W を 越える. FSB133MHz の SDR メモリサブシステムを使う限り, 消費電力(信頼性)と処理能力のバランスから Athlon は 800MHz 位まで にしておいた方が無難と思う. 2000 年 12 月現在 Athlon の主力は 1GHz 以上に移りつつあるが, そちらに行くより,むしろキャッシュ容量には目をつむっても Duron 800 辺りを検討した方が良いのでないか.

'99 秋〜'00 春: AMDAthlon 500〜700

AMD Athlon プロセサの性能比較があちこちで行なわれており, その高性能ぶりが明らかになっている. メモリアクセス性能は Slot 1 より高く,総合的にいって Athlon 500MHz で大体 PIII-550 と 600 の中間くらいの 性能があるらしい. '00 年三月現在のベストチョイスは 700MHz 版である. その理由は,700MHz までは CPU コアと二次キャッシュの 駆動周波数比が 2:1 なのに,750〜850MHz では 5:2, 1GHz では 3:1 と低く,処理能力の伸びが鈍るためである.

K7 と呼ばれる,0.25μm プロセスで作られた初期の Athlon は, 電源電流が極めて大きい. Athlon では電源ユニットに注意するようにと良くいわれるが, 数カ月稼働後にマザーボード破壊を5枚も経験した. AMD-750 チップセットを搭載したマザーボード (FIC SD11 や MSI K7Pro)に,最大 54W 消費する K7-650 や 50 W 消費する K7-700 (何故かクロックと電力が逆転している)を載せて 運用した場合,次第に不安定になり,最終的に起動しなくなる場合がある. 最大 42W の K7-500 や,0.18μm プロセスで作られた K75 と呼ばれる 改良型 Athlon では,一年くらいではマザーボード破壊まで至らない.

その正確な原因は不明だが,CPU のそばにある電解コンデンサや ノースブリッジチップが,CPU からの熱で劣化するのではないか. 対策としては,コンデンサの足を伸ばして CPU から離すとか, ノースブリッジのヒートシンクの放熱を良くする(シリコングリスを塗る, 電動ファンをつける)などが考えられるが, マザーボードそのものを加工するのもおっくうなので, 潰れたら,より性能の良い KX133 チップセットつきのマザーボードに 買い替える,という手もある. スロット A マザーの入手は 2000 年末がラストチャンスかも知れない. K75 や Thunderbird CPU を今から買う手はないが,手近にあれば, それを使えば良い.

'99 夏〜冬 IntelPentiumII 400〜PIII 600

下半期に入ると,Slot 1 PentiumII/III の買いどきが来た. このシリーズは二万円を割ったところで供給がなくなるので, 二万円台前半を買いどきと考えると, 毎月コンスタントに値段が下がっており, 7 月 PII-350,8 月 PII-400,9月 PIII-450 とかいどきになってきた. 2000 年三月現在では PIII-600 が買頃だが Plot 1 CPU の在庫が なくなってきた.

研究室では Gigabyte のデュアル CPU M/B GA-6BXD との組合せで PII400x2 ('99 年 7月)/Katmai PIII500x2 ('99 年 11 月)の二台, ASUS の AT マザー P2B-B で Katmai 450 ('99 年 10 月), Abit の Apollo Pro133 マザーVA6 との組合わせで CuMine 667E ('00 年 3月)を運用している.

ずっと複雑なアーキテクチャを持つ Athlon が PIII と比較されてしまう 程度の性能しかでないのはちょっと不思議だが,これは CPU というより Intel チップセットのできがよいせいらしい. あと PIII は Duron と比べても消費電力が低いという長所がある.

'99 上半期: AMD K6-2 400/450

年を越えると定格で FSB100MHz を実現する安価な選択として K6-2 が 現れた.僕の研究室では ASUSTeK P5A-B との組合せで K6-2 400 を '99 年 1 月に導入した. K6-2 の利点は Celeron と違い FSB100MHz 動作が保証されることである. K6-2 の不利な点は,二次キャッシュが FSB のスピード 100MHz 以下で動作するため,二次キャッシュを CPU 側に持たせた Intel CPU より ベンチマーク性能が低いということである.

'98 秋〜: Intel Celeron300A

この時期は Celeron 300A の 450MHz 駆動で決まりであった. 定格 66MHz の Front Side Bus (FSB: マザーボードのベースクロックのこと) を 1.5 倍の 100MHz に 上げることにより,PentiumII 450MHz に近い性能が得られた. CPU の価格は PII450 の六〜七万円に対して一万円台と圧倒的に安かった. もちろんオーバークロッキングできるという保障はなかったが, 成功率は十分高かった. 僕の研究室では 11 月から 12 月に掛けて Abit BH6 との 組合せを二組導入した. 負荷を掛けなければ 450MHz で何週間でも安定しているが, 浮動小数点シミュレーションプログラムを流すと約四時間後に OS が落ちることが判明した. 細川君も同じような理由で PentiumIII に買い替えているようだから, 長時間ジョブが目的なら SECC300A は避けた方がよいかも.

PPGA 版は高クロックに強く,FSB66MHz のままで 533MHz まで売られているが,ほとんど嬉しくない. 主記憶スループットが変わらない以上, 実力はほとんど上がっていないだろうからである. この点,Tom は英語版の単体アプリケーションのベンチマークが主のため, ワーキングセットが日本での実使用環境より小さく, 新 Celeron の二次キャッシュの効果を過大に評価しているという, tomoya の批判に留意すべきである.


Pentium マザーボードを流用するなら: Cyrix MII

個人的には,最新型との性能差が 3 倍に開いたらアップグレードの 時期だと考えている. 最新 CPU が 600MHz に達したので,200MHz クラスの Pentium CPU の 寿命はそろそろ尽きはじめている. よって,Super7 以外の Socket7 マザーボードを流用した CPU 交換は, 効果が薄く、もはや推奨できない.

第一に,マザーボードが流用できるかどうかは, そのボードが 2000 年問題をクリアできるかどうかにかかっている, ということを指摘する. ここでマザーボードのチェックポイントを述べよう. まずコンピュータの箱を開けて, マザーボードの型番とリビジョン番号を確認する. CPU ソケットが Socket5 か Socket7 かを確かめる. つぎに起動画面から BIOS のバージョンを確認する. そしてマザーボードメーカの Web Page を見る.

  1. もしマザーボードが Socket5 なら,流用はせず買い替える. Socket5 は 66x1.5= 100MHz 以下の設定しかできないし, 新型 CPU を載せるための下駄にお金を払うより新しい ボードを買った方が良い.
  2. Socket7 なら,そのマザーボードが対応しているコア電圧を 確かめる.
  3. 3.3V (std) または 3.45V (vre) の単一電圧を供給する マザーボードなら,流用せずに買い替える.
  4. 2.8V のコア電圧を供給できる MMX Pentium 対応ボードなら, タダで MMX 相当 CPU が手に入る場合に限り,次に進む. 2.2V のコア電圧を供給できる K6-2 対応ボードなら,次に進む.
  5. その BIOS が 2000 年問題をクリアしている版 (year2000 compliant) かを確認する. どのマザーボードメーカも 2000 年問題に関するページを 開設しているから,そこで確認できる.
  6. 今の BIOS が 2000 年問題をクリアしておらず, そのボード用の y2k compliant BIOS が Web から入手できないなら, 流用はせず買い替える.
  7. 新 BIOS があっても,自分で入れ替える知識,勇気がないなら, 流用はせず買い替える.
  8. そのボード用の新 BIOS を入れても,ボードのリビジョンや 固体差などによりハードディスクからブートしなくなることがある. そのときは,流用せず買い替える.
めでたく y2k compliant な BIOS で起動できたら, あなたのマザーボードは新 CPU と共に 2000 年の正月を迎える 準備ができる.

1. 2.8V (MMX Pentium) 対応ボード

'96 年後半から登場した MMX 対応ボードでありながら, Classic Pentium が載っているなら, MMX 対応複電圧 CPU で処理能力を向上できる. 知合いから MMX Pentium の不要品を回してもらえるなら, 同クロックの Classic Pentium に比べて 6 から 15% の 能力向上が見込める.この差は主に二次キャッシュが 32kBytes に 倍増したことによる.

この種類のボードに刺さる CPU でもっとも高性能なのは 64kBytes の 一次キャッシュをもつ Cyrix の MII である. 66x3.5=233MHz の MII-300 なら Celeron300 に近い性能を発揮する. P/I-P55T2P4 rev. 3.0 を MII-300 に交換して使用している. このマザーボードは FSB 75MHz の設定があるので,75x3=225 MHz で使う. 発熱は多いので,ファンはある程度いいものを付け, 増設スロットの化粧板を外すなど,通風に注意する必要がある. 今からこのクラスの CPU を買っても,一時しのぎにしかならないだろう.

3. 2.2V (K6-2) 対応ボード

これには FSB 66〜83MHz で 2.2V コア電圧とx4以上の倍率設定が 追加されているものと, '98 年春以降に登場した FSB 100MHz が可能な Super7 ボードがある. 前者の場合には,K6-2 を 66x6=400,75x6=450, 83x5=415 などの クロック周波数で使うこともできるが,倍率が高いため処理能力の 向上は Super7 ほどではない.

内部二次キャッシュを持つ K6-III/400 ならば,倍率が高くてもかなりの 性能向上が得られる.しかし、消費電流が大きい(電力では MII と 同じ程度だが電圧が低い)ので,この世代のマザーボードで装着可能な ものは少ないという. 電流を減らすため,6倍動作をあきらめクロックダウン (66x3.5=262.5MHz など)し,動作電圧も 2.3V や 2.2V に 落せば動くという. 研究室では,GA586ATX2 rev. 1.8 という K6-2 対応 430TX ボードに K6-2/400 = 66x6 を,VA503+ という Super7 ボードに MII-300 を入れている.

Super7 ボードなら,主記憶スループットを最大にするため FSB 100MHz に対応できる K6-2 400 以上を選ぶ. 最大の性能のためには K6-III/450 が良い. 研究室では P5A-B という Super7 ボードに K6-2/400, 450 を入れている.

CPU を流用してマザーボード交換

大きくいって二つの意味がある.
  1. 2000 年問題対応
  2. メモリ転送速度向上による性能向上
    1. 主記憶 SDRAM 化: 性能向上は 数 % から 10% といわれる.
    2. 二次キャッシュのキャッシャブルエリア拡大: 古いマザーボードではキャッシュ容量 256KBytes 程度, 64MBytes 以上の領域で二次キャッシュが効かないものが多い。 増設ソケットがあっても,現在では入手困難である. だが,新しい Super7 ボードでは、少なくとも容量 512KBytes/エリア 128MBytes は確保されている.20% 位性能向上する可能性がある.
    3. ベースクロックの切り上げ: MMX Pentium200 が 83x2.5=208[MHz] などで運用ができることは良く報告されており, SDRAM 化との相乗効果によりさらに速度向上する.
これらの効果により,同じ CPU でもレスポンスが明らかに向上する。 AT フォームの Super7 マザーとしては前述の ASUSTeK P5A-B, FIC VA-503+ などが使える.
Koichiro Shida <shida@cs.musashi-tech.ac.jp>
Last modified: Mon Mar 1 11:00:55 1999