互換性とVSA
互換性の維持はシステムのどのレベルで行うかによって実現方法がかなり異なります。 PC互換機の場合、基本的にはマイクロソフトの定めたPCXX仕様があり、それに互換であることが望ましいのですが、もともとCPUと周辺LSIにアダプタで拡張するアーキテクチャのIBM-PCから進化してきており、拡張部分についてはもっとも広く使用された製品がデファクトスタンダードとして新しいPCには準じ取り入れられています。 Geodeにおいてはデファクトスタンダードに近づける努力が互換性を維持しています。 すなわち、特別なドライバーやBOOT時のコードを使用しなくとも、PCで動作するOSやアプリケーションが動くことを追求しています。

H/Wの限界
互換性を維持する最も確実な方法はH/Wをオリジナルと全く同じ様に設計することです。 一方このことはH/Wのコピーをすることになり好ましくありません。 そこで機能互換として新たにH/Wを開発しますが、残念ながら物理的な特性や論理的な機能を完全にオリジナルと同じにすることは集積度があがるにつれて難しくなりまし。 ある種のOSでは完全に問題なく動いていても他のOSでは動かない等の現象になります。 オリジナルのH/W開発者はそのH/Wがどのようにプログラミングされるか開発時には十分に把握できていません。互換機の開発者も同様です。

Geodeの互換性
GeodeではLSIの設計ルールがまだまだ未熟な時代からCPUと周辺機能を統合するという思い切った開発を行っていました。 この中で、互換性を維持するためにはそれなりの回路規模が必要であり、当時の技術レベルを超えてしまうことになります。そこで、CyrixのエンジニアはSMMコードに目をつけました。 SMMコードはインテルのCPUにもある特別なモードでBIOSやBIOS中のパワーマネジメントコードが使用するモードで、OSやアプリでは使用してはいけないという決まりになっていました。 このことはSMMコード内ではどのようなコードを記述してもOSやアプリケーションへの互換性については影響を及しません。 SMMへの移行にはいくつかの決まりがありますが、その中のひとつにH/Wトラップがあります。 ソフトウエアが本来存在しないH/WにアクセスしたときにシステムエラーとしてSMMコードを起動するものです。 本来この機能はソフトウエアの異常からシステムを保護するためにもいることを想定していましたが、Cyrixはこの機能を積極的に活用し、互換H/Wが存在しないところでは必ずSMMへ移行するようにしました。その結果OSなどのソフトウエアはH/Wをサクセス下にも課かわらず、SMMコードを実行していることになります。 このとき、SMMコードでH/Wの動作をエミュレーションしてやり、結果を返せばOSやアプリからはあたかもH/Wが存在したかのように見えます。Cyrixはこの機能をVSA(Vertal System Architecture)と名づけて後のGeodeシリ-ズの中心的な技術としました。VSAの威力は絶大で、フィールドで互換性に問題が生じるとBIOSを修正するのみであたかもH/Wを修正して互換性を維持したかのようになります。 そのためにCPUやコンパニオンのバグフィックスの回数をへらし、修正時間の短縮に成功しました。

VSAの功罪
上記のようにVSAはH/Wの問題を簡単に吸収し、あらたなH/Wの追加も短時間で行うことができます。MSとToshibaがACPIを発表したときもCyrixはVSAですぐに対応しました。一方、VSAはどんどん肥大し、そのオーバーヘッドが無視できなくなってしまいました。VSAがもっとも活躍したのはVGA互換のディスプレーコントローラです。 Windowsを動かす場合、ほとんどドライバーを使います。VGA互換モードは起動時の表示や、コマンド、DOS程度でしか使いません。そこでCyrixはディスプレーコントローラからVGA互換レジスタを削除し、VSAによってエミュレーションを行いました。 この考え方はドライバーを使用するWindowsのような特定の装置では問題ありませんでしたが、DOS上でのグラフィックやその後出てくるLinuxなどのVGA互換モードで動作するOSやアプリを動かした場合、きわめてパフォーマンスが悪いという結果になってしまいました。 また、コードの肥大化は、複雑さにも大きく影響し、H/Wの互換性の維持のためであったVSA自身にBUGが存在し、システムに不調をきたす原因となってしまいました。現在InsydeからリリースされているBIOSのVSAは当時のコードから全面的に書きけられており、エミュレーションによるパフォーマンスの低下を考えなければ十分に安定なシステムとなっています。GX1では現在にいたるまで、VGAのエミュレーションが用いられています。

つづく