PowerMac G4/MDD用CPUアップグレードカードを考える
現在のメインマシンである PowerMac G4/MDD 1GHz Dual もバックアップ電池切れ、FireWire故障とガタが来たうえに
一眼デジカメのRAW現像+非破壊画像処理をやろうと思うと能力不足を露呈しはじめた感があるわけだ。メモリ増設、ビデオカード強化など色々やってきたけど、もう残っているのは心臓移植(CPUアップグレード)か買い替えかというところだ。
今入手可能な PowerMac G4/MDD用の CPUアップグレードカードは Sonnet Encore/MDX G4 DUET 1.8/1.6GHz Dualしかないわけだが、これでどの程度のパワーアップになるのだろうか?気になるのが使用されている CPUの型番とキャッシュ等のスペック。現在のPowerMac G4/MDDと SonnetのCPUアップグレードカードを比べてみよう。
| CPU型番 | クロック周波数 | L1 cache | L2 cache | L3 cache |
PowerMac G4/MDD | MPC7455 | 1GHz Dual | inst:32KB,data:32KB | 256KB | 外部1MB |
Sonnet Encore/MDX | MPC7447A | 1.6〜1.8GHz Dual | inst:32KB,data:32KB | 512KB | なし |
CPUクロック比で言えば 1.6〜1.8倍の性能向上が見込めるわけだが、気になるのが3次(L3)キャッシュが無くて変わりに2次(L2)キャッシュが 256KBから512KBに増やされている点だ。
キャッシュとは、メモリに比べるとCPUの方が大幅に速いために、良く使うデータや命令列をCPU近くの高速メモリ上に置いておくことで高速に処理するための物で、一般には容量が大きければ大きいほど良い。そして3次(L3)、2次(L2)、1次(L1)となるにしたがい CPUに近くなり、より高速にアクセスできる。特に L1, L2キャッシュあたりは CPUと同じダイ上に置かれて CPUと同じクロックで動作する非常に高速なメモリ素子が使われたりするのだが、当然ながら歩留まりが悪くなりその分高価になる。L3キャッシュは CPUオンダイにするには容量、速度の点からコスト高になるために CPUの外に付けるようにしたキャッシュで、CPUのクロックよりは低い速度で動作する(それでも普通のメモリよりは随分高速)が、容量がある程度大きいのが普通。PowerMac G4/MDD の MPC7455 では最大2MBまでの L3キャッシュをコントロールできるのだが、PowerMac G4/MDDでは 1MBの L3キャッシュを搭載している。
キャッシュ上に命令列、データがある(キャッシュヒットと言う)場合は CPU本来の性能が出せるわけだが、実行に必要な命令列、データがキャッシュ上にない(キャッシュミスヒット)場合にはペナルティが発生する。メモリから命令列、データを持ってくる必要があるわけで、この時は命令やデータが揃うまで CPUはストール(停止)するし、それら新しい命令列やデータをキャッシュ上に置くためにはキャッシュ上に空きを作る(キャッシュパージする)必要も生じる。この時はメモリ性能やバスクロック周波数が第1のネックになり、次に CPUクロック周波数で実行性能が決まるという傾向が強くなる。現代のCPUはキャッシュによっていかに低速なメモリ、バスの性能を隠蔽できるかが勝負であり、CPUクロック周波数はその次なのである。
つまりキャッシュとは、ある短時間に実行、アクセスする命令やデータには局所性があるという傾向を利用した高速化手法なので、キャッシュ溢れが頻繁に生じるような大きなデータを扱う処理では効果が薄れるためにキャッシュサイズの影響は小さくなると考えることができる。大きなデータを扱う処理とはビデオエンコードとか RAW現像とかで、まさにワタシがやろうとしている処理である。
と言うわけで、キャッシュサイズはひとまず置いといて、メモリ、バスクロック周波数そのままで CPUクロックが1.6〜1.8倍になる事で見込める性能向上分が投資に対してペイできるか否かが問題だろう。要するに CPUクロック比ほどの向上はなく、多分 1.2, 3倍とか良くて 1.5倍程度の向上に7〜8万円出しますか?ってことだな。投資する価値ナシと考えるなら暫く我慢して使い続けつつお金を貯め、新しいのに買い替えるのが得策という事になるわけだ。さて・・・
|