マイクロプロセッサ

マイクロチップに実装したプロセッサ

これはこのページの過去の版です。Melan (会話 | 投稿記録) による 2005年10月1日 (土) 21:28個人設定で未設定ならUTC)時点の版 (訂正Z8000→Z80000)であり、現在の版とは大きく異なる場合があります。

マイクロプロセッサとは、トランジスタや他の回路素子がひとつの大規模集積回路(LSI)に集積したもの。コンピュータの中枢部(CPU)を構成する。用途により入出力などの周辺回路や、メモリを内蔵するものもある。 マイクロプロセッサは複数のLSIから構成されるものもあるが、これに関してはビットスライスマイクロプロセッサを参照されたい。CPUはよく知られたマイクロプロセッサの一種であるが、コンピュータ内には他にもビデオカード上のGPUのようなマイクロプロセッサが数多く存在する。

マイクロプロセッサ

マイクロプロセッサが開発される以前はCPUはいくつかのトランジスタを利用した小規模な集積回路であったが、大規模集積回路が開発されると多くのトランジスタを収めることができるようになったため、性能が著しく向上し、価格も低下した。

マイクロプロセッサは、1971年インテルによって開発された。また同じくインテルによってマイクロプロセッサの性能は約18ヶ月で倍になるというムーアの法則も唱えられ、今日までこの法則に従い性能が向上し続けている。

現在ではマイクロプロセッサは大きなメインフレームから小さなハンドヘルドコンピュータまでさまざまなコンピュータに搭載されている。

歴史

最初のマイクロプロセッサ

様々な技術革新をベースとして、マイクロプロセッサが実現される要素がそろったのは1970年ごろのことである。三つのプロジェクトでほぼ同時に完全なマイクロプロセッサが生み出された。インテル4004テキサス・インスツルメンツのTMS1000、Garrett AiResearchのCentral Air Data Computer(CADC)である。

1968年Garrettは米海軍F-14トムキャット戦闘機向けのフライト制御用コンピュータとしてデジタルコンピュータの開発を要請された。設計は1970年に完了した。MOSベースの複数チップからなるCPUである。そのデザインは従来の機械システムに比較して小さくて信頼性が高く、初期のトムキャットで採用された。しかしその先進性ゆえ、米海軍はこれを商用として一般に売り出すことを禁止し、その措置は1997年まで続いた。そのため、CADCとMP944チップセットは最近までほとんど知られていなかった。

TIは4ビットのTMS 1000を開発。電卓向けプログラムを内蔵したTMS1802NCを登場させたのが1971年9月17日である。インテルが開発した4004型4ビットCPUは1971年11月15日にリリースされた。開発者は、テッド・ホフフェデリコ・ファジン、そして嶋正利らであった。

TIはマイクロプロセッサに関する特許を出願した。ゲイリー・ブーンはシングルチップのマイクロプロセッサアーキテクチャに関する特許を1973年9月4日に獲得した(米国特許番号:3,757,306)。どの企業が最初に研究所レベルでマイクロプロセッサを動作させたのかは定かではない。1971年と1976年、インテルとTIは包括的なクロスライセンス契約を締結し、インテルはTIの持つマイクロプロセッサの特許に対してロイヤリティを支払った。この間の経緯は、Cyrixとインテル間の訴訟に関する法廷文書に記述されている。この訴訟においてTIはマイクロプロセッサに関する特許の所有者および仲裁人として関与した。

チップ上のコンピュータという考え方はマイクロプロセッサのバリエーションである。マイクロプロセッサのコア(CPU)とメモリとI/O(入出力)をひとつのチップに詰め込むというこのアイデアに関する特許(当時はマイクロコンピュータ特許と呼ばれた)は、TIのゲイリー・ブーンとマイケル・J・コクランに与えられた(米国特許番号:4,074,351)。

インテルはComputer Terminals Corporation(後のDatapoint)から端末向けチップの設計を請け負った。Datapointは結局そのチップを使わないこと決め、インテルはそのチップを8008という名前で1972年4月に売り出した。これが世界最初の8ビットマイクロプロセッサである。これを使ってMark-8というコンピュータキットが販売された。8008とその後継である8080はマイクロプロセッサ市場を創造したのである。

8ビットマイクロプロセッサ

4004の後継である8008は世界初の8ビットマイクロプロセッサである。これらのプロセッサはインテル 8080ザイログ Z80、他のインテル製派生プロセッサの先駆者である。対抗するモトローラMC6800アーキテクチャをコピーして強化したのがモステクノロジー6502であり、Z80と覇を競った。1980年代のことである。

Z80も6502もシステム全体のコストを低減することに注力しており、パッケージを小さくし、要求されるバスを単純なものにし、それまで外部に別チップで持たなければならなかった回路(例えばZ80はメモリコントローラ)を内蔵した。これにより1980年初頭にホームコンピュータ市場が新たに生まれ、それなりに使えるマシンが、99USドルで売られるようになった。

モトローラが切り札としてリリースしたMC6809は最もパワフルで直交性があり美しい設計の8ビットマイクロプロセッサであり、製品化されたマイクロプロセッサの中で最も複雑な回路から成っていた。これ以降マイクロコードが複雑な回路に取って代わるようになる。よりパワフルなプロセッサを設計するにあたって、回路だけでは複雑になりすぎるようになってしまったためである。

他の初期の8ビットマイクロプロセッサとしてSigneticsの2650がある。その一風変わったパワフルな命令セットは一時関心を集めた。

航空宇宙分野での最初のマイクロプロセッサはRCAのRCA 1802(別名 CDP1802、RCA COSMAC)は、1970年代のNASAの宇宙探査機ボイジャーバイキングに使われた。木星探査機ガリレオにも搭載されている(1989年出発、1995年到着)。CDP1802が使われた理由は、消費電力が極めて小さいことと、製造プロセス(Silicon on Sapphire)が宇宙線放電に他のどんなプロセッサよりも強いからであった。したがって1802は最初の放射線耐性マイクロプロセッサと呼ぶにふさわしい。

16ビットマイクロプロセッサ

最初の複数チップで構成された16ビットマイクロプロセッサは1973年に登場したナショナル・セミコンダクタのIMP-16である。8ビット版のチップセットはIMP-8として1974年に登場した。1975年、ナショナル・セミコンダクタは最初の16ビットマイクロプロセッサPACEを開発、後にNMOS版のINS8900を開発した。

その他の初期のマルチチップ16ビットマイクロプロセッサとしてはDECOEM用ボードセットのLSI-11とミニコンピュータPDP 11/03、フェアチャイルド・セミコンダクタのMicroFlame 9440があり、これらは1975年から1976年に登場した。

最初のシングルチップの16ビットマイクロプロセッサはTIのTMS9900であり、これは同社のミニコンピュータTI 990シリーズと互換性があった。9900はミニコンピュータTI 990/4、ホームコンピュータTI-99/4A、OEM用マイコンボードTM990シリーズに使われた。チップは大型のセラミック製64ピンDIPパッケージで、当時の8ビットマイクロプロセッサIntel 8080はもっと一般的で小さくて安いプラスチック製40ピンDIPパッケージだった。後継のチップTMS9980はIntel 8080への対抗を意識して設計された。TI 990 の16ビット命令セットを持ち、プラスチック製40ピンパッケージで、データバスは8ビット、アドレス空間は16キロバイトしかなかった。三番目のチップTMS9995は新たに設計しなおされた。ファミリーはさらに99105、99110と進化していった。

インテルはエミュレートすべきミニコンピュータを持たなかったため、全く別の道をたどる。8080を拡張して16ビットのIntel 8086を設計したのである。このx86ファミリーの最初のメンバーはPCに広く採用される。Intelは8086を8080用ソフトウェアを最も簡単に移植できる方法として提案し、成功した。8086と8088に続いて、Intelは8018680286をリリースし、1985年に32ビットの80386をリリースするに及んで、下位互換を武器にPC市場での占有状態を強固なものにした。

マイクロプロセッサ内蔵のメモリ管理機構(MMU)はChilds他(インテル社)によって開発された(米国特許番号4,442,484)。

32ビットマイクロプロセッサ

市場では16ビットマイクロプロセッサは完全な32ビットを実装したマイクロプロセッサが現れるまでのつなぎでしかなかった。

世界初のシングルチップの32ビットマイクロプロセッサはAT&T ベル研究所のBELLMAC-32Aであり、最初のサンプル出荷は1980年で、正式出荷は1982年であった。1984年のAT&T分割の後、WE32000と改称され(WEはWestern Electricを意味する)、さらにWE32100、WE32200と続いた。これらのマイクロプロセッサはAT&Tのミニコンピュータ3B5や3B15、世界初のデスクトップコンピュータ3B2、世界初の32ビットラップトップコンピュータCompanion、世界初の(本程度のサイズの)超小型コンピュータAlexanderに使われた。AlexanderはROMカートリッジを装備しており、その点は現在のゲーム機に似ている。これらは全てベル研究所オリジナルのUNIXオペレーティングシステムが動作し、最初のウィンドウズ型ソフトウェアであるxt-layersを装備していた。

もっとも有名な32ビットマイクロプロセッサであるMC68000は1979年に出荷された。68000は広く知られているように32ビットレジスタを持ちながら、内部データパスは16ビット幅でありピン数を減らすために外部バスも16ビット幅だった。モトローラはこれを16ビットプロセッサと呼んだが、明らかに32ビットアーキテクチャを有していた。高速で大きなメモリ空間を持ち(16メガバイト)、低コストなこのプロセッサは、このクラスで最も人気を博した。アップルLisaMacintoshはこの68000を使用した。他にも1980年代中盤にはアタリのAtari STやコモドールAmigaなどが68000を使用した。日本ではシャープX68000がある。

インテルの最初の32ビットマイクロプロセッサはiAPX432である。1981年に登場したものの市場では失敗した。iAPX432は権限に基づくセキュリティ機構とオブジェクト指向という進んだアーキテクチャだったのだが、モトローラの68000などの対抗アーキテクチャに比較して性能が及ばなかったのである。

68000で成功したモトローラは仮想記憶機構を追加したMC68010を開発。1985年に出荷されたMC68020では、データバスもアドレスバスも完全32ビット化された。68020はUNIX市場では非常に人気を博し、多くの小企業が68020を使ってデスクトップサイズのシステムを製品化した。日本でもソニーのNEWS、NECのEWS4800、住友電工のEstationなどが68020を使って製品化された。続くMC68030はチップにMMUを内蔵し、68KファミリーはDOS以外のあらゆるものが動作するプロセッサとなった。さらにMC68040ではFPUを内蔵して浮動小数点演算性能を向上させた。68050は予定していた性能目標を達成できず、リリースされなかった。そしてMC68060が出荷されたころ、市場にはより高性能なRISCプロセッサがあふれていた。1990年代初頭、68Kファミリーはデストップ市場から消えていった。

他の多くの企業が68020やその後継プロセッサを組み込み機器用に使用した。特筆すべきは、機器に組み込まれた68020の個数は、これまでに出荷されたインテルのPentium搭載PCより多いのである。ColdFireプロセッサのコア(中核部)は68020の正当な後継である。

1980年代中盤までに、ナショナル・セミコンダクタは外部16ビットで内部アーキテクチャが32ビットであるマイクロプロセッサNS16032(後に32016と改称)と完全32ビット版のNS32032を開発。また、それを使用したOEM向け32ビット小型コンピュータシリーズをリリースしている。Sequentは1980年代中頃にNS32032を使った最初の対称型マルチプロセッサ(SMP)サーバコンピュータを開発した。これは設計という面では勝利と言えるものだったが、1980年代終盤には消えていった。

他にもザイログのZ80000などは興味深いが市場でチャンスを掴むには登場が遅すぎたため即座に消えていった。

1980年代終盤、いわゆる「マイクロプロセッサ戦争」が勃発しいくつかのマイクロプロセッサが"戦死"した。前述の唯一の設計上の勝利と称したSequentは、NS32032が消えるとともにインテルのマイクロプロセッサに切り替えた。

64ビットマイクロプロセッサ

かなり早い時期にハイエンドのRISCプロセッサにおいて64ビットが実現したものの、現在のPC向け主流マイクロプロセッサでは64ビット化は始まったばかりである。2003年4月にはAMDのOpteronが、同年9月にはAMDのAthlon64が出荷開始された。PowerPC G5は2003年6月、インテルXeonは2004年である。

AMDが2003年9月にAthlon 64でIA-32互換の64ビットチップを導入し、それに続いてインテルが64ビットマイクロプロセッサを登場させるに及んで、64bitデスクトップ時代が到来したと言えよう。どちらのプロセッサも64ビットのソフトウェアを動作させることができると同時に32ビットの従来のアプリケーションを動作させることもできる。64bitのWindows XPLinuxを64ビットシステム上で動作させることにより、プロセッサのパワーを完全に発揮することができるようになる。

実際のところ、64ビット化で強化されたのはレジスタのサイズだけではなく、古いCISCの設計を引きずっているIA-32プロセッサのレジスタ数も若干増えている。

PowerPCの64ビットへの移行は90年代前半のプロセッサ設計当時から意識されていたため、大きな非互換問題にはならなかった。既存の整数レジスタはデータバス幅に合わせて拡張されている。ただし、一般にIA-32と同じように浮動小数点ユニットやベクタユニットは64bitかそれ以上の単位で設計されていた。IA-32とは違って、汎用レジスタは追加されなかったため、64bitモード以外での性能向上は見込めない。

RISC

1980年代中盤、複数の新たな高性能RISC(reduced instruction set computer)マイクロプロセッサが登場した。それらは当初、特殊な用途のマシンやUNIXワークステーションに使われていたが、その後Intel社のCPUを使ったデスクトップ以外のあらゆる分野で使われるようになった。

最初の商用のRISCマイクロプロセッサはMIPS Technologiesの32ビットプロセッサであるR2000である(R1000はリリースされなかった)。続くR3000は更に実用的な設計となり、R4000では世界初の64ビットアーキテクチャを採用した。それに対抗すべくIBMPOWERSunSPARCシステムが生み出され、間もなく各主要ベンダはRISCアーキテクチャを採用したプロセッサをリリースした。AT&TのCRISP、AMDの29000、インテルのi860とi960、モトローラの88000、DEC AlphaHPのPA-RISCなどである。

市場原理が働いてこれらのマイクロプロセッサは淘汰されていった。残ったものとしては、POWERとその後継であるPowerPCはデスクトップ(Mac)用RISCプロセッサ、SPARCはSunの設計するマシン用、MIPSはSGIのシステムにも供給されているがほとんどは組み込み制御用(たとえばCiscoのルータ)といったところである。他の各種RISCプロセッサは淘汰され消えていったか、消えようとしている。他の企業はニッチ市場に活路を求めた。例えばARMは当初ホームコンピュータ市場を目指していたが、現在は組み込み制御用プロセッサの市場に集中している。今日MIPS、ARMおよびPowerPCコアはコンピュータ組み込み機器の大きな部分を占めている。

もちろん、IBM互換PCの世界では、インテル、AMD、VIAは全てx86アーキテクチャのマイクロプロセッサを製造している。64ビットコンピューティングの世界では、2004年の段階ではDEC(-Intel)のALPHA、AMD64、そしてHP-IntelのItaniumなどが主要なアーキテクチャとなっている。

市場

世界で販売されたマイクロプロセッサのうち最も多いものは8ビットの製品であり、1997年には20億個以上が出荷され、様々な用途に利用されている。また、現在は32ビットがそれに次ぐが、32ビットのマイクロプロセッサの大部分はパソコンに使用されている。

マイクロプロセッサは小さく、軽いが価格が高価なことから、航空機での輸送が盛んである。日本においてマイクロプロセッサの取扱量が最も多い空港は、成田国際空港である。

関連項目