連載 IT管理者のためのPCエンサイクロペディア 第7回 PCのエンジン「プロセッサ」の歴史(1)〜i8088からIntel386までの道のり 元麻布春男 |
パーソナル・コンピュータとマイクロプロセッサは非常に密接な関係にある。恐らくマイクロプロセッサという半導体製品が誕生しなければ、パーソナル・コンピュータという商品も生まれなかったに違いない。マイクロプロセッサが登場したからこそ、個人向けの汎用計算機というアイデアが形になったのである。また逆に、日本の歴史を振り返れば、マイクロプロセッサ(当時は「マイコン」と呼んでいたが)という半導体製品を売るために誕生した製品こそ、最初のパーソナル・コンピュータ「TK-80」であるということさえ可能だ。このように重要なパーツであるマイクロプロセッサについて、今回から数回にわたって歴史と機能などを解説していく。
マイクロプロセッサはパーソナル・コンピュータとは切っても切れない関係にあるデバイスだが、それと同時に、最も進化の速いデバイスの1つでもある。マイクロプロセッサの分野で最大手であると同時に、世界最大の半導体メーカーであるIntelは、2002年内に動作クロック周波数が3GHzのプロセッサを出荷すると公言しているが、PCが内蔵するプロセッサの動作クロックが1GHzというマイルストーンに達したのは、2000年3月のこと。わずか2年半あまり前のことである。しかし、こうした激烈な進化は、ここ数年に限ったことではなく、その誕生以来、宿命付けられていたものでもある(その宿命を「ムーアの法則」と呼ぶ)。こうしたPC向けのマイクロプロセッサの歴史から、まずはひもといていこう。
i8088から始まったIBM PCシリーズのマイクロプロセッサの系譜
現在使われているPCの直接の祖先であるIBM PCが登場したのは、1981年8月のことである。IBM PCが採用したi8088プロセッサ(動作クロック周波数は4.77MHz)は、1978年6月に発表された16bitプロセッサであるi8086の外部データ・バス幅を、16bitから8bitに狭めたものだ。当時、自社技術に高い誇りを持っていたIBMが、外部企業からコンピュータの主要コンポーネントであるマイクロプロセッサを調達したこと、しかもそれがアーキテクチャとして必ずしも高い評価を受けていなかったi8086の、さらに廉価版ともいえるi8088であったことは、かなり意外なことではなかったかと記憶する。
i8088 |
IBM PCに搭載されたプロセッサで、i8086の外部データ・バスを8bitに狭めたものだ。3μmプロセスで製造され、2万9000個のトランジスタが集積されていた。動作クロック周波数は4.77MHzと8MHz。 |
この当時の16bitマイクロプロセッサは、大別するとIntelの86系とモトローラの68000系という2系統に分類することができた。このうち、メモリ空間が64Kbytes単位のセグメントに分割されるIntelの86系のアーキテクチャは、必ずしも高い評価を受けていなかった。それに対して、モトローラの68000系プロセッサの方が、コンピュータらしい「美しい」アーキテクチャを持つということで、高い評価を受けていた。口の悪い向きは、86系のルーツが電卓用に開発された4004であることを揶揄する意味で、86系プロセッサを「電卓上がりのプロセッサ」などといったものである。
4004 |
当初はDRAM製造メーカーだったIntelが初めて開発した4bitプロセッサ。動作クロック周波数は108KHz(!)でトランジスタ数は2300個、製造プロセスは10μmだった。 |
にもかかわらず、IBMがあえてi8088を選んだ理由として、さまざまな事柄が挙げられている。例えば、当時普及していた8bitプロセッサ「8080」と対応OSであるCP/M上には、表計算ソフトウェアのVisiCalcやワードプロセッサのWordStarなどといったアプリケーション資産が蓄積されつつあり、86系プロセッサならこれらの継承が容易であったこと。また86系プロセッサには、i8259やi8237、i8255*1といった安価で枯れた周辺チップが存在しており、これらを使用して開発期間の短縮などが可能だったことも、理由の1つだろう。しかし、IBM自身が正式に理由を述べたことはなく、開発責任者の事故死とあいまって、ハッキリとしたことは分からない。ただ、i8086ではなくi8088だったことからしても、価格をかなり意識していたことだけは間違いない。外部データ・バス幅の狭いi8088の方が、マザーボード上のデバイスの総数や回路基板のバス配線などが少なくて済み、製造コストを下げられるからだ。また、このようにi8088の採用で回路規模を抑えたことは、開発期間の短縮にも貢献したと思われる。
*1 i8259は割り込みコントローラ、i8237はDMAコントローラ、i8255はパラレル・インターフェイスのコントローラである。 |
このi8088プロセッサがリリースされたのは1979年6月のこと。i8086より1年あまり遅れてのことだが、IBM PCのリリースより2年以上前だ。もちろん、i8088はIBM PCに採用されることを前提に開発されたものではないから、プロセッサのリリースからそれを搭載したPCのリリースまで、ある程度時間がかかるのはやむを得ない。だが、現在、2年前にリリースされた半導体製品がそのまま通用するか、ということを考えると、いまに比べればまだこの当時は時間がゆっくりと流れていたといえるだろう。
OSが追従できなかったi80286プロセッサ
同様な時間差は、i80286にも該当する。1982年2月にリリースされたこのマイクロプロセッサを、IBM PCシリーズで初めて搭載したIBM PC/ATが登場するのは、2年半後の1984年8月のことである。i80286の最大の特徴は、i8086に対して大幅に性能が向上したことだ。いまとなってはベンチマーク・テストの具体的な数字を挙げることはできないが、i80286は同一の動作クロック周波数のi8086に対して、2.5倍ほどの性能を持っていた。この差は、ベンチマーク・テストなど行わなくても、当時のDOSアプリケーションでハッキリと性能向上が体感できるものである。もちろん、i80286の動作クロック周波数はi8086より高められていったので、性能差はさらに広がった。
i80286 |
IBM PC/ATやその互換機に搭載された16bitプロセッサ。1.5μmプロセスで製造され、トランジスタ数は13万4000個だった。 |
i80286のもう1つの特徴は、i8086/8088互換のリアル・モードに加え、プロテクト・モードをサポートしたことだ。リアル・モードがi8086同様、約1Mbytesの物理メモリ空間しか利用できない(20bitアドレス)のに対し、プロテクト・モードでは16Mbytesの物理メモリ空間をサポートできる(24bitアドレス)。ほかにも4段階の特権レベル*2によるメモリ保護機能、ディスクリプタ・テーブル*3によるメモリ管理機能など、当時としては近代的なマルチタスクOSのサポートに必要な機能を備えていた。
*2 i80286では、メモリの管理単位であるセグメントに0〜3までの特権レベル(リング番号)が割り当てられる。基本的には、あるリング番号を持つセグメントから、それより小さいリング番号のセグメントへアクセスすることが禁止される。これにより、セグメントをまたいだ不正なメモリ・アクセスを禁止できる。 *3 ディスクリプタ(descriptor、記述子)とは、セグメント・アークテクチャによって作られる論理アドレス空間と、実際の物理アドレス空間を対応付けるための情報。各セグメントに関するディスクリプタをテーブルにまとめたのがディスクリプタ・テーブルである。 |
実際、この機能を生かしたOSとして、1987年12月にOS/2がリリースされることになるのだが、マルチタスクOSをハードウェア・レベルでサポート可能なプロセッサとして、i80286が成功したとは到底いい難い。その理由はi80286を取り巻く環境と、i80286自身の機能的な制約の両方に求められる。まず前者だが、すでに述べたように、i80286が発表された1982年の時点ではもちろん、それを搭載したIBM PC/ATがリリースされた1984年の時点においても、プロテクト・モードをサポートしたi80286用の一般ユーザー向けのOSは存在しなかった。1987年末にOS/2が登場したときには、ハイエンド・システムのプロセッサはすでにIntel386に移行しており、Intel386対応でないi80286対応のマルチタスクOSというものに市場性はほとんどなかった。後にいわれたOS/2の失敗の1つとして、最初からIntel386対応ではなく、i80286をサポートしたことが挙げられているほどだ。結局、i80286対応のマルチタスクOSは、i80286の時代に間に合わなかったのである。
一方、i80286自身の機能的な制約の中で最も痛かったのは、新しい環境への移行について十分な配慮がなされていなかったことだろう。確かにi80286のプロテクト・モードは、近代的なOSのサポートを可能にするものだった。しかしそれは、同時にアプリケーションも新しいOSに合わせて作り直さなければならないことを意味する。ユーザーにとって、いきなり新しいOS上の新しいアプリケーション環境へ移行するのは容易なことではない。移行に際しては、新しいアプリケーションと、古いアプリケーションの両方が稼働する環境が望まれるのだが、i80286はこの能力が十分ではなかった。i80286には、その上で稼働するマルチタスクOSで、それまで使われてきたDOSアプリケーションと新しいアプリケーションを同時にサポートするための仕組みが欠けていたのである。
最初のリリースのOS/2が、市場で苦戦した理由の1つは、OS/2に移行すると同時に、新しいアプリケーションを用意しなければならなかったことだ。これは、i80286をサポートするという決定をした以上、やむを得なかったともいえる。またi80286がサポートする物理メモリ空間が16Mbytesという、当時でも上限としては低めだったこともあり、i80286は新しい環境への移行を促すのに十分ではなかった。結局i80286は、多くの場合、主にリアル・モードのプログラムの実行環境、つまり単なる高速なi8086として使われるにとどまったのである。
製品名 | i8086 | i8088 | i80286 | Intel386DX |
発表日 | 1978年6月 | 1979年6月 | 1982年2月 | 1985年10月 |
データ・バス幅 | 16bit | 外部8bit(内部16bit) | 16bit | 32bit |
物理メモリ空間 | 1Mbytes | 1Mbytes | 16Mbytes | 4Gbytes |
製造プロセス | 3μm | 3μm | 1.5μm | 1μm |
トランジスタ数 | 2万9000個 | 2万9000個 | 13万4000個 | 27万5000個 |
クロック周波数(最初) | 4.77MHz | 4.77MHz | 6MHz | 16MHz |
クロック周波数(最終) | 10MHz | 8MHz | 12.5MHz | 33MHz |
FPU(浮動小数点演算ユニット) | 外付け(i8087) | 外付け(i8087) | 外付け(i80287) | 外付け(Intel387) |
内蔵キャッシュ・メモリ | − | − | − | − |
SIMD命令 | − | − | − | − |
備考 | セカンド・ソースには、これより高いクロックの製品も存在した | 外部データ・バス幅を16bitにしたIntel386SXもある | ||
今回紹介した86系プロセッサの主な仕様 |
次ページでは、86系プロセッサ初の32bitプロセッサ「Intel386」について解説しよう。
INDEX | ||
第7回 PCのエンジン「プロセッサ」の歴史(1)〜i8088からIntel386までの道のり | ||
1.IBM PCシリーズに採用された86系16bitプロセッサたち | ||
2.Intel386の登場はx86アーキテクチャ隆盛の始まり | ||
「System Insiderの連載」 |
- Intelと互換プロセッサとの戦いの歴史を振り返る (2017/6/28)
Intelのx86が誕生して約40年たつという。x86プロセッサは、互換プロセッサとの戦いでもあった。その歴史を簡単に振り返ってみよう - 第204回 人工知能がFPGAに恋する理由 (2017/5/25)
最近、人工知能(AI)のアクセラレータとしてFPGAを活用する動きがある。なぜCPUやGPUに加えて、FPGAが人工知能に活用されるのだろうか。その理由は? - IoT実用化への号砲は鳴った (2017/4/27)
スタートの号砲が鳴ったようだ。多くのベンダーからIoTを使った実証実験の発表が相次いでいる。あと半年もすれば、実用化へのゴールも見えてくるのだろうか? - スパコンの新しい潮流は人工知能にあり? (2017/3/29)
スパコン関連の発表が続いている。多くが「人工知能」をターゲットにしているようだ。人工知能向けのスパコンとはどのようなものなのか、最近の発表から見ていこう
|
|