Intelが8086登場から40周年を祝っている。「偉大な」8086の番号を冠した「Core i7-8086K」などというプロセッサまで販売しているようだ(Intelのプレスリリース「8086プロセッサーが40周年:限定版の第8世代インテル Core i7-8086Kプロセッサーが最上のゲーミング体験を提供」)。関連のWebページ「Intel Celebrates 50 Years of Innovation」[英語]を見ると「歴史」が書かれている。
1978年のところに「8086革命」とある。この図からは「8086」が登場するや否や即座に革命を起こし、今に至るコンピュータへの本流を切り開いたかのようにも読める。
しかし、「ちょっと違うだろー」と年寄りはツッコミたくなるのだ。後に「x86」と呼ばれることになる一群のプロセッサが、本流を占めるに至るまでには、多くのチップが貢献している。8086の登場が全てではない。
それどころか、チップとしての存在感であるならば、8086は意外なほど影が薄いし、ソフトウェア的な足かせとしても登場直後から8086のセグメンテーションは揶揄(やゆ)されていたくらいで、これを何とかするのが急務であった。昔はみんな知っていたことだが、今ではPCを使っていても「x86って何」という若者もいる。昔を振り返り、少々勝手な意見を書き記しておきたい。
8086登場前夜
まずは16bitプロセッサである8086登場前夜を振り返りたい。当然ながら天下は8bitプロセッサのものだった。そこには80系と68系と呼ばれる2大陣営があり、東西冷戦の時代に熱く戦っていた。
68系の盟主はMotorola(モトローラ)。対する80系は、Intelの「8080」の大ブレーク(キャラクター端末と、その変種ともいえるゲーム機など)によって形成された陣営であったのだが、しかし当時のIntelはその中心にいるとは言い難かった。
8080の後継としてIntelが出した次世代の8bit機は「8085」。3種類の電源が必要で面倒くさい8080に対して、5V単一電源で動くハードウェア的には優れたものである。8085は組み込み用途にそれなりに売れたのだが、ソフトウェア的には8080とほとんど同じで代わり映えはしなかった。わずかに2命令ばかり追加しただけで「PC」向けではサッパリだったのだ。
これに対して、Intelからスピンアウトしたグループが作ったZilog(ザイログ)は、「Z80」と呼ぶ8080上位互換の次世代8bitプロセッサを出してきた。8080のソフトウェアがそのまま走るだけでなく、命令セットを大幅に拡張して強力になっていた。これが大受けして「PC」向けを席巻していた。人目に付く80系の中心は、Zilogに移っていたかの感があったのだ。当時の8bitパーソナルコンピュータというとZ80搭載機種と、Appleに代表される「6502」搭載機種が目立つ。Intelは蚊帳の外に追いやられていた。
そして8088がIBM PCのCPUになった
当然、次は16bitの戦い、と誰もが思った。各社が16bit機の開発を始める。Motorolaは「68000」、Zilogは「Z8000」、Intelは「8086(8085の次のチップだから8086……)」である。
ここで「巨人」がその戦いに参入してくるのだ。IBMである。当時のコンピュータ業界でIBMはずぬけた「メインフレーマー」(IBMと7人の小人と言われたくらい、コンピュータ業界では大きかった)であり、おもちゃのようなPCなどは最初相手にしていなかった。
しかし、さすがに無視できなくなってきて、早急にPC市場へ参入することを決意したのだった。多分、市場参入のスピードを重視したのだろう、メインフレームのように自社でCPUを作ることなく、ありものの半導体を買って作ることにしたようだ。当然、主要プロセッサベンダーを比較検討したはずだ。その中で「半歩」速かったのがIntelであった。他社が開発に手間取っている間にいち早く8086を完成させていたのだ。仕様的には8086が8bitの「延長」の雰囲気で一番軽くて小さかった、ということもある。
だが完成時期の早さだけでIBMが「うん」と言ったわけではなかった。IBMにしたら、他の「おもちゃ」のような8bit機に対するに、IBMは16bit機、と言いたかったのだと思う。が、コスト的にあまり高いものにするとその「おもちゃ」のような市場の中に入り込めないと思ったのじゃないか。要求は、8086のバスを8bitにしてくれ、というものだったようだ。8086は16bitプロセッサで16bitのデータバスを持っている。
そのころの主記憶用DRAM素子は1bit幅だから、16bit幅の主記憶を構成すると16個のDRAMチップが要る。しかし8bitデータバスならば8個で済む。システムコストは他の8bit機と同じ水準になるわけだ。「蚊帳の外」に押し出されて後がないIntelはこの要求に乗った。8086の16bitバスを8bitバスに切り詰めた8088と呼ぶチップを開発したのだ。
その変更作業をすぐ横で見ていた人物に聞いことがある。「変更はほとんど一瞬だった」と。もともとそういうことができるような回路構成だったのでプリフェッチバッファーを2バイト分削って回路を変更するだけだったらしい。8088はしょせん「チョイ変」でできた。ただ同じ人物がこうも言っていた「営業的には大成功、設計的には改悪」と。16bitバスを半分に削ったのだから当然スピードは落ちた。しかし、これこそ「IBM-PC」のプロセッサになったのだ。
IBM PC 5150
1981年8月にIBMが発表した「IBM Personal Computer(IBM5150)」。プロセッサにIntelの8088を搭載している。「IBM PC パーソナル・コンピューティングの発展」より。
IBMの市場参入のインパクトは大きかった。PCはホビーからビジネスの道具となり、Intelは8086とともに市場の中心にカムバックできた。ただプロセッサのアーキテクチャとしては8086ではあるが、IBMがその時点で主力機種に採用したチップは「8088」であって8086ではない。実はIBMの主力機ラインアップで8086が使われるのは、随分先のPS/2時代になってからの「model30」、言っちゃ悪いが下位機種である。チップとしての8086もあちらこちらで使われたものの、8088のようにエポックメイキングな機種に搭載されたというわけではないのだ。
80286そして80386の時代に
時々Intelはやる。せっかく当たっているCPUがあるのに、「別なもの」を後継に据えようとすることがある。このときもそうだった。16bit 8086の次は、当然32bit、ということで8086とは何の関係もない新アーキテクチャの32bit機の開発を始めたのだ。
名を「432」という。だが「幸いにも」この開発は失敗に終わった。しかし、432の失敗もただでは終わらない。432開発の過程でより強力なプロセッサを設計するためのお道具類が整備されていた。それらを活用して登場してくるのが、8086の後継機、「80286」であり、続いて「80386」である。
80286の時代は、PC産業が真に立ち上がった時代と言っていいだろう。IBMはPC/ATで高速でメモリ空間の広くなった80286をCPUに据え、前時代の8088のような8bitバスではなく16bitバスでシステムを作り上げていた。
今では考えられないが汎用の半導体のみで作られたPC/ATは、回路図も公開されていた。PC/ATの回路全てをワンチップ化したチップセットを作る半導体ベンダーが200社も立ち上がり、それを使ってPCを組み立てるメーカーも大量に出現してPC/AT互換機という一大市場が形成される。現在もこの市場で活躍している会社やM&Aされた部門の多くが、この時代にルーツがある。今に至るPC業界の源流が確立したのが、この時代といっていいだろう。
その時代のハードウェアは今では「レガシー」としてPCハードウェアの中の盲腸のような部分になってしまったもののあちらこちらに名残がある。ソフトウェアに目を転じれば、32bit版のWindows OSに限られるが、16bitプログラムを走らせるためのOS要素をアクティブにしてやれば、この時代のソフトウェアの一部はWindows 10でも実行可能なのである。
RISCやVLIWとの戦いに勝ち残ったx86
市場が急速に広がりを見せる中、IntelはIBMへの依存を減らす。Intelは「最後のN-MOS 16bitプロセッサ」80286の後、今度は80286との上位互換性をとった(当然8086とも互換性のある)C-MOS 32bitプロセッサ「80386(後に、i386と名称変更)」を開発する。
ところが、IBMは当面80286のままでよい、ということで80386を即座に採用しなかった(後日PS/2 model70で採用)。そこでIntelはあろうことか、当時、雨後の筍(たけのこ)のように現れてきたPC/AT互換機メーカーに最新のi386を持ち込んだのだ。ある日、ラボにCompaq(コンパック)という米国テキサス州の会社の作った80386の試作機がやってきたのを覚えている。
PC/ATを初めて見たときもスクロールスピードが速くて驚いたが、80386のCompaqは「目にも止まらぬ」速さだった。80386は32bitのリニアアドレスを実現した今に至るアーキテクチャの源流ではあるものの、実は16bitコード実行速度は80286とほぼ同じままだったので、クロック速度の差でしかなかったのだが……。しかし、Compaqなど「泡沫(ほうまつ)?」なところにチップを売って、巨人IBM相手の商売は大丈夫なのか? と不安に思ったことを覚えている。
この時のIntelの決断が正しかったことは、その後の歴史が示す。IBMは今も立派な会社だが、その大分後ではあるが、PCのハードウェアの製造からは手を引くことになる。IntelとMicrosoftが手を携えてPC市場を支配した時代「Wintel(Windows+IntelでWintel)」が始まる。80386が確立した32bitのソフトウェア世界はいまだに現役である。
しかし、その後もx86に波風が立たなかったわけではない。SPARCとMIPSに代表されるRISCマシンが攻勢をかけてきた時代、実はIntelもRISCに行きかけて、i860やi960などのRISCマシンを作っている。しかし、新たに設計したx86系の「i486」は、必死のクロックアップ作戦を繰り広げ、RISCの攻勢をしのぎ続けた。
そして、本当は「586」と呼ばれるはずであった初のスーパスカラチップは、x86互換チップとの戦いの中、「Pentium」と名付けられた。以降正式なチップの型番としてのx86は消滅したが、スーパスカラ化したx86は進化を続ける。性能でもRISCマシンを圧倒し、市場から駆逐していく(RISCについては「第27回 RISCの敗因、CISCの勝因」参照)。
しかし、クロック速度の限界がやってくる。また、32bit機の限界も見えてくる。386のころ無限とも思えた4GBの空間が狭くなってしまったのだ。ここで、またぞろインテルはx86を見限りかける。今度はHPと組んでVLIWの開発にまいしんするのだ。このままであれば、現在のようなx86がIntel Xeonでデータセンターを支配する状況はなく、x86は過去の石になっていたかもしれない(VLIWについては「第4回 VLIWは世界(プロセッサ)を救うか?」参照)。
これを引き戻したのは、ライバルのAMDによるx86の64bit化だった。これは、80386が80286の16bit環境を32bitに切り替えたときと同様に、x86的にはとても座りがよく、とても自然な拡張だった。これをIntelがやらず、AMDがやったのは、AMDにはx86しかなかったためだろう。しかし、小異を捨てて大同につく。IntelがAMD方式に乗ったのは決断であった。これにより、64bitでもx86の勝利は定まった。
源流である8086が8bit 8080とのアセンブラレベルの命令互換性(実際、Intelはアセンブラコンバーターを売っていた)を持っていたことを考えると、実に8bitから64bitに至るまで、拡張に拡張を重ねて進化してきたのがx86である。その歴史には何度もターニングポイントがあったが、x86を危機にさらしたのも、偉大にしたのもIntel自身の決断が大きかった。この先はどうか?
筆者紹介
Massa POP Izumida
日本では数少ないx86プロセッサのアーキテクト。某米国半導体メーカーで8bitと16bitの、日本のベンチャー企業でx86互換プロセッサの設計に従事する。その後、出版社の半導体事業部などを経て、現在は某半導体メーカーでヘテロジニアス マルチコアプロセッサを中心とした開発を行っている。
「頭脳放談」
Copyright© Digital Advantage Corp. All Rights Reserved.