10/08/2012

x86アーキテクチャを語る 〜歴史編〜

 さて、まずはx86アーキテクチャの歴史から語るとします。
現在のCPUでも過去の互換性を維持するため、過去のCPUの非効率かつ回りくどい仕様が多くの残っています。
 そのおかげで、最新のCPUでもDOSとかの古いOSが動作するわけですが、その代償として複雑なアーキテクチャとなっています。
 これらは古いCPUの仕様を知らなければ理解に苦しむ部分が多々あるかと思います。そんなわけで、まずx86の歴史的経緯を知っておくことが重要だと思います故、ここから話を始めます。


歴史編



 まずx86はPCの歴史と密接に関わっています。x86の進化の大部分はPCの高性能化のためといっても過言ではありません。 そのルーツは1981年のIBM PCにIntel 8088が採用されたところから始まります。この意思決定は、その後のPCシリーズにx86を採用する第一歩として重要な出来事です。
 8088について簡単に紹介しますと、8086の廉価版で、8086では内部、外部共に16ビットですが、8088は内部16ビット、外部バスが8ビットになっています。

 ちなみに、8086以前は8ビットCPUの8080やその互換プロセッサのZ80とか神話の時代がありますが、まあ、それは主題に対してさほど重要ではないので、まあいっか。

そんで、1983年にIBM PCの後継機PC/XTが発表され、1984年に現在主流となっているパーソナルコンピュータのベースとなったPC/ATが発表されました。このマシンはIntel 80286を搭載していて、このCPUはフル16ビットでプロテクトモードが搭載されていました。(プロテクトモードについては、そのうち詳しく語ります)
 で、そんなことより、重要なのはPC/ATは、なんと仕様が公開されたのです。 これにより、他のベンダーが互換機を作ったり、拡張ボードが豊富になったりと素敵なことになりました。そう、今でもよくPCをPC/AT互換機といったりするのは、そんな経緯からなんですねえ。

 その後、IBMはPC/ATの後継機としてPS/2(プレイステーション2じゃないよ)を発表したんですが、IBMのおじさんたちは、ちょっと欲張ってしまったのか、PS/2では仕様を公開せずロイヤリティー戦略にしたのです。
 それが皮肉にも運命の分かれ道となりました。PS/2は残念ながら、あまり受け入れられず、世の中的にはPC/AT互換機をベースに進化していくこととなりました。

 というわけで、現在のPC、Corei7とかのやつでもなんと、30年も前のアーキテクチャがベースになっていて、PCI Expressだとか、64ビットだとかデュアルコアだとかを後付けして進化してきているのです。しかも互換性をほぼ維持したまま。もう、半端ない辻褄あわせが行われていることは想像に難くないと思います。


今回はここまでにしときます。ちょっとずつ掘り下げていきます。

0 件のコメント:

コメントを投稿