Geode GX1 の内部
GX1はCyrix時代に開発されたGX(紛らわしいですが、当時は単にGXでした。その後、GXI(1ではなく”I"です)、MediaGXを経てGeode GX1 となりました。 その間、プロセスの変更、MMX対応、グラフィックリゾリューションの追加、クロックアップなどを経て、現在に至っています。 GeodeファミリーCPUの重要でユニークな機能はGX1でほぼ確立されました。
内部には2本のバスがあります。 いわゆる386/486CPUで言うところのFSBに相当するC-BUSとノースブリッジを経由するX-BUSがあります。 C-BUSにはCPUの他にFPUやL1キャッシュが接続されています。X-BUSにはメモリーコントローラ、ディスプレーコントローラ、PCIバスブリッジが接続されています。 CPUコアはCyrixの5x86相当にMMX命令を追加したコアが用いられており、世代的には486とPentiumの間ぐらいの感覚です。 L1キャッシュは16Kありますが、インストラクション、データと共用であり、またキャッツシュメモリーの一部をグラフィック作業用のスクラッチメモリーとしても配分するのであまり効率の良いキャッシュとはいえません。したがってパフォーマンスを上げるにはCPUコアのスピードを上げるか、メインメモリーのスピードを上げて対処しています。  CPUコアは最大333MHzまでリリースされていますが、市販されているCPUボードで333MHzを保証しているものはほとんどありません。メモリークロックも設計次第で最大111MHz/CL2(333MHz時)まで動きますが、安定動作を得るにはかなりのノウハウが必要で、市販のCPUボードはCPUクロック=300Mhz、メモリー=66Mhz程度が多いようです。CPUクロックの設定と、メモリータイミングのチューニングによってはかなりの高速化が期待でき、同じCPUクロックでもボードメーカが異なるとに20%程度ものパフォーマンスの開きがあります。 GeodeGX1が遅いと感じる方は、一度、メーカーにこのあたりの設定がどうなっているか問い合わせて見るもの良いかも知れません。

ところで内蔵FPUのMMX命令ですが、測定するとインテルのPentiumMMXと比べて極端に遅くなります。 おそらく、Cyrixは5x86に無理やりMMX命令を追加して互換性を取ろうとしたものと思われます。 アプリケーションではMMX命令ではなく通常の8087命令を使用したほうがよさそうです。 AMDからはFPUの高速化に関するアプリケーションが出ています。次の機会に紹介します。