マイクロプロセッサ

マイクロプロセッサ（英: microprocessor）は、広義には、プロセッサをマイクロチップに実装したものである。（狭義には）デジタルコンピューターの中央処理装置（CPU)の機能を実行するために必要な算術回路、論理回路、制御回路を含むきわめて小さな電子デバイスのこと。MPU（英: micro-processing unit）ともいう。 狭義の用法では「CPUに必要な"機能を備えている" 」ということが定義文にあり必要条件となっているが、必ずしもCPUとして使わなければならないわけではなく、実際の用途としては、その機能を活かしつつCPU以外の、周辺回路のために使われていることが遥かに多い。たとえばパーソナルコンピュータではCPU以外の、周辺の電源や各種入出力などの制御にマイクロコントローラが多く使われている。 汎用のマイクロプロセッサの他に、各種用途に特化したマイクロプロセッサも製品化されている。デジタル信号処理に特化したDSPや、画像処理用のGPUなどである。 世界初のマイクロプロセッサとされるのはIntel 4004であり、これは4ビットのもので、クロック周波数は740KHz（0.74MHz）であり、2300個のトランジスタを含んでいた。→#歴史 2022年時点で市販されているマイクロプロセッサで最速のものは、AMDの Ryzen™ Threadripper™ PRO 5995WX desktop PC processor（64コア、128スレッド）だと考えられている。この Ryzen™ Threadripper™ PRO 5995WXには、332億個のトランジスタが含まれていると言われている。 なおCPUの機能だけでなく、従来ならその周辺に配置されていたさまざまな機能を担う集積回路類（コントローラやメモリなど）までひとつにまとめて搭載し小さくしたものはSystem-on-a-chip (SoC）という。スマートフォンや組み込みシステムなどで使われている。 またマイクロプロセッサの中でも特に制御や組込みシステムに使うために開発され、メモリやI/Oポートなどもひとつの集積回路にまとめており、消費電力を抑えるためにクロック周波数を抑えたものはマイクロコントローラという。 IBM POWER10 インテルのCore i7 6700K AMDのRyzen 9 ARMのCortexシリーズ Cell Broadband Engine。ソニー・コンピュータエンタテインメント(SCE) 、ソニー、IBM、東芝により協同開発されたマイクロプロセッサであり、PlayStation 3に搭載された。 SoCの一例、Apple M1。 SoCの一例、Qualcomm社のSnapdragon マイクロコントローラの一例、Atmel社のen:ATmega328 1960年代頃まで、プロセッサは個別のトランジスタか、当時のせいぜい数百素子程度の集積度の集積回路（IC）を繋ぎ合わせて作られていた。製造技術の発達、設計ルールの微細化が進むにつれてチップ上に集積できる素子の数が増え、大規模集積回路（LSI）の1チップにプロセッサを実装できるようになった。1970年代初頭に現れた初期のマイクロプロセッサは電卓や機器制御、もしくはビデオ表示端末用であり、非常に限られた機能しか持たなかったが、従来のディスクリート半導体を使った回路に比べとても安価で利用しやすかったため、ほどなくして大量に使われるようになった。CPUというコンピュータの機能を実現する最も主要な部品がワンチップ化されたことで、個人でも容易に購入できるパーソナルコンピュータが実現可能となった。その後もムーアの法則に従い、マイクロプロセッサに集積される素子数は増加の一途をたどり、性能は目覚ましく向上し続けている（ただし、かつてはムーアの法則に従属していたデナード則によるクロック周波数の向上や消費電力の低下は、2000年代後半から頭打ちの傾向となり、2010年代後半からは微細化自体も鈍化が著しい）。今日ではマイクロプロセッサは、巨大なHPCサーバから小さなウェアラブル端末や家電に至るまで、さまざまな機器に搭載されている。 マイクロプロセッサを実現する様々な新しい基本技術は1970年頃に整い、1971年11月15日に発表された4004はテッド・ホフによる基本的なアイディアと、嶋正利による論理設計とフェデリコ・ファジンによる回路・マスク設計による、最初期のマイクロプロセッサとして周知のことだが、他複数のプロジェクトでほぼ同時期にCADC、TMS0100シリーズ、μPD707・708などのマイクロプロセッサと認められるLSIが開発されている。 1968年にギャレット・エアリサーチ（英語版）社がF-14飛行制御用デジタルコンピュータの開発を要請されてCADC（英語版）を設計する。これは1970年に設計を完了したMP944というMOSベースのチップセットから成るマイクロプロセッサで、従来の機械装置より小型で信頼性が高く、初期のF14 トムキャット戦闘機に採用された。米海軍は軍需用品として民間への商用販売などを1997年まで禁止していたため、CADC (MP944) は最近までほとんど知られていなかった。 TIのテキサス・インスツルメンツ TMS0100シリーズはマイクロコントローラに近い構成のLSIで、1971年9月17日に電卓向けプログラムを内蔵した TMS1802NC をリリースしている。 μPD707・708はNECが設計・製造したLSIで、半導体プロセスの製造効率から2チップ構成だが機能的にはマイクロプロセッサでμCOMシリーズの源流である。1971年12月にサンプル出荷され、シャープが日本コカ・コーラへ供給する仕向け機器に用いられている。 英語版では他に en:Gilbert Hyatt の特許、Pico と General Instrument の協業によるチップ、Four-Phase Systems の AL1 チップ、フェアチャイルドの PPS25、Viatron が端末装置用に開発したチップ、TIのTMX 1795なども記されている。 TIはマイクロプロセッサに関する特許を出願した。ゲイリー・ブーンはシングルチップのマイクロプロセッサに関する特許を1973年9月4日に取得した（米国特許第3,757,306号）。1971年と1976年、インテルとTIは包括的なクロスライセンス契約を締結し、インテルはTIの持つマイクロプロセッサの特許に対してロイヤリティを支払った。この間の経緯は、サイリックスとインテル間の訴訟に関する法廷文書に記述されている。この訴訟においてTIはマイクロプロセッサに関する特許の所有者および仲裁人として関与した。 マイクロプロセッサのコア（プロセッサコア）だけでなくメモリと入出力処理の回路も集積した、現代で言うマイクロコントローラの実現に関する特許は、TIのゲイリー・ブーンとマイケル・J・コクランに与えられた（米国特許第4,074,351号）。 4004の後継として1972年4月に発表された8008が世界初の8ビットマイクロプロセッサである。 4004や8008を発展・改良させる形で、1974年4月にインテルの8080が誕生、さらに1976年（の3月～7月ころ）には8080の上位互換品で速度・機能などを向上させたザイログのZ80が誕生し、またその後もインテル製の他の派生プロセッサ群が誕生してゆくことになった。その一方で同時期にそれらとは系統が異なるモトローラのMC6800というプロセッサも構想され1974年から製造、そのMC6800とバス互換としつつパイプライン処理の採用などの改良を加えたモステクノロジー社の6502が1975年に発表された。こうしてZ80と6502が覇を競うことになった（「80系と68系の戦い」などとも言われた）。1970年代後半から1980年代前半にかけてのことである。 Z80も6502もシステム全体のコストを低減することに注力しており、パッケージを小さくし、要求されるバスを単純なものにし、それまで外部に別チップで持たなければならなかった回路（例えばZ80はDRAMリフレッシュカウンタ）を内蔵した。これにより1980年初頭にホームコンピュータ（ホビーコンピュータ）市場が新たに生まれ、それなりに使えるマシンが、99USドルで売られるようになった。 モトローラが「切り札」として1979年に発売したMC6809は、命令セットに直交性があり美しい設計が特徴の、事実上最もパワフルな8ビットマイクロプロセッサであり、当時製品化されたマイクロプロセッサの中で最も複雑な回路から成っていた。 他の初期の8ビットマイクロプロセッサとしてはSigneticsの2650もある。PDP-8を機能縮小しワンチップ化したものであるが、PDP-8を知らない層からは一風変わったパワフルな命令セットと受け止められた。 航空宇宙分野での最初のマイクロプロセッサは、1976年に発表されたRCA社のRCA 1802（別名 CDP1802、RCA COSMAC）であり、1970年代のNASAの宇宙探査機ボイジャーとバイキングに使われた。木星探査機ガリレオにも搭載されている（1989年出発、1995年到着）。CDP1802が使われた理由は、消費電力が極めて小さいことと、非常に広い電源電圧範囲で動作すること、製造プロセス（Silicon on Sapphire）が宇宙線や放電に他のどんなプロセッサよりも強いからであった。したがって1802は「最初の放射線耐性マイクロプロセッサ」と呼ぶにふさわしい。 ここまでに登場したプロセッサのほとんどがマイクロプログラム方式による制御ではなく、ワイヤードロジック制御である。 最初の複数チップで構成された16ビットマイクロプロセッサは1973年に登場したナショナル セミコンダクターのIMP-16である。8ビット版のチップセットはIMP-8として1974年に登場した。1975年、ナショナル セミコンダクターは最初の16ビットマイクロプロセッサPACEを開発、後にNMOS版のINS8900を開発した。 その他の初期のマルチチップ16ビットマイクロプロセッサとしては、PDP-11をLSI化したLSI-11（PDP-11#LSI-11を参照）などがあり、LSI-11は1975年に登場した。 初期のシングルチップの16ビットマイクロプロセッサには、1975年4月に完成したPANAFACOM L-16A（MN1610）、1976年のTIのTMS9900や Data General の MicroNOVA (mN601) がある。いずれもミニコンピュータの影響を受けている。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と進化していった。当時の Data General NOVA 互換のマイクロプロセッサには、他にフェアチャイルド・セミコンダクタの F9440 (1977年) も挙げられる。 インテルは参考とすべきミニコンピュータを持たなかったため、全く別の道をたどる。8080を拡張して16ビットのIntel 8086を設計したのである。このx86ファミリの最初のメンバー8086はパーソナルコンピュータ（パソコン）に広く採用される。インテルは8086を8080用ソフトウェアを最も簡単に移植できる方法として提案し、成功した。8086と8088に続いて、インテルは80186、80286をリリースし、1985年に32ビットの80386をリリースするに及んで、既存のソフトウェア資産をそのまま使用できる下位互換性を武器にPC市場での占有状態を強固なものにした。 マイクロプロセッサ内蔵のメモリ管理機構（MMU）はChilds他（インテル）によって開発された（米国特許第4,442,484号）。 16ビット化によってさらに進んだ複雑化により、以前のワイヤードロジックから、マイクロプログラム方式を採用するプロセッサが増えた。Z8000はワイヤードロジックだが、68000や8086はマイクロプログラム制御である。 マイクロプロセッサでは一旦はマイクロプログラム方式が増えたが、RISC化のためと性能競争のために、32ビット化後はワイヤードロジックに戻っており、インテルでは486でワイヤードロジックを採用した。 市場では16ビットマイクロプロセッサに対してC言語が普及した。OSが16bitから32bitへの移行が可能なようにC言語が16bit と32bitの両方に対応するように設計された。 32ビットを実装したマイクロプロセッサが、16bitマイクロプロセッサと同価格で販売されるようになると、16bitマイクロプロセッサの利点は、省電力、省空間になった。ARMでは、32bitでも16bitと同程度の省電力、省空間、費用を目標に市場を拡大していった。 世界初のシングルチップの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ビットマイクロプロセッサは1981年に登場したiAPX432である。iAPX432は権限に基づくセキュリティ機構とオブジェクト指向という進んだアーキテクチャだったが、モトローラの68000などの対抗アーキテクチャ、ひいては自社のIntel 80286等に比較して性能が及ばず、商業的には失敗した。 モトローラは1985年にMC68020で、データバスもアドレスバスも完全32ビット化されたマイクロプロセッサを出荷した。68020はUNIX市場では非常に人気を博し、多くの小企業が68020を使ってデスクトップサイズのシステムを製品化した。日本でもソニーのNEWS、NECのEWS4800、住友電工のEstationなどが68020を使って製品化された。続くMC68030はチップにMMUを内蔵し、68KファミリーはMS-DOS以外のあらゆるものが動作するプロセッサとなった。さらにMC68040ではFPUを内蔵して浮動小数点演算性能を向上させた。68050は予定していた性能目標を達成できず、リリースされなかった。そしてMC68060が出荷されたころ、市場にはより高性能なRISCプロセッサがあふれていた。1990年代初頭、68Kファミリーはデスクトップ市場から消えていった。 他の多くの企業が68020やその後継プロセッサを組み込み機器用に使用した。特筆すべきは、機器に組み込まれた68020の個数は、これまでに出荷されたインテルのPentium搭載PCより多いのである。ColdFireのプロセッサコアは68020の正当な後継である。 1980年代中盤までに、ナショナル セミコンダクターは外部16ビットで内部アーキテクチャが32ビットであるマイクロプロセッサNS16032（後に32016と改称）と完全32ビット版のNS32032を開発。また、それを使用したOEM向け32ビット小型コンピュータシリーズをリリースしている。シークエント・コンピュータは1980年代中頃にNS32032を使った最初の対称型マルチプロセッサ (SMP) サーバコンピュータを開発した。これは設計という面では勝利と言えるものだったが、1980年代終盤には消えていった。 他にもザイログのZ80000などは興味深いが市場でチャンスを掴むには登場が遅すぎたため即座に消えていった。 インテルが発売した80386は、x86アーキテクチャでの最初の32ビットプロセッサであり、ここで採用されたIA-32アーキテクチャ上では多くの本格的OSが動作し、後のインテルや互換プロセッサの基礎となった。 1980年代終盤、いわゆる「マイクロプロセッサ戦争」が勃発しいくつかのマイクロプロセッサが「戦死」した。前述の唯一の設計上の勝利と称したSequentは、NS32032が消えるとともにインテルのマイクロプロセッサに切り替えた。 Alpha・MIPS・SPARCなどのRISCプロセッサでは、1990年代初頭から64ビット化が行われており、特にAlphaは32ビットアーテクチャが存在せず、当初から64ビットプロセッサとして登場した。PC（PC/AT互換機とMacintosh）向けマイクロプロセッサは21世紀に入ってから64ビット化が行われた。2003年4月にAMDのOpteronが、同年6月にはIBMのPowerPC G5が出荷開始され、AMDのAthlon64は2003年9月、インテルXeonは2004年である。 Power Mac G5が最初の64ビットデスクトップとして登場したあと、AMDが2003年9月にAthlon 64でx86（IA-32）アーキテクチャを拡張したAMD64アーキテクチャの64ビットチップを導入し、それに続いてインテルがAMD64互換のIA-32eアーキテクチャの64ビットマイクロプロセッサを登場させるに及んで、Windowsパソコンにも64ビットデスクトップ時代が到来した。AMD64は32ビットの従来のアプリケーションも使用できると同時に、64ビットに対応したオペレーティングシステムやアプリケーションで動作させることにより、プロセッサの性能と機能を発揮させることができる。AMD64における64ビット化では、レジスタのサイズとともにレジスタの数も倍増し性能の向上に貢献している。デスクトップ向けでは64ビットWindowsはドライバの非互換性からあまり普及していないので、デスクトップではIntel 64/AMD64プロセッサは高速な32ビットCPUとして使われていることが多い。 PowerPCの64ビットへの移行は1990年代前半のプロセッサ設計当時から意識されていたため、互換性は大きな問題を起さなかった。既存の整数レジスタはデータバス幅に合わせて拡張されている。IA-32と異なり、既に32本の汎用レジスタと32本の浮動小数点レジスタを持っていたのでレジスタの本数は増加していない。 またIBMメインフレームのz/Architectureも、64ビットマイクロプロセッサであり、IBM z10などがある。 1980年代中盤、複数の新たな高性能RISC（reduced instruction set computer）マイクロプロセッサが登場した。命令の種類を減らし、アドレッシングモードを制限し、全てをワイヤードロジック制御で構成する。多数のレジスタを備えてメモリへのアクセスを減らすとともに、すべての命令を固定長としパイプライン処理で高性能化を狙うものであった。それらは当初、特殊な用途のマシンやUNIXワークステーションに使われていたが、その後あらゆる分野で使われるようになった。 RISCの開発は1970年代のIBM 801に始まった。最初の商用のRISCマイクロプロセッサはミップス・テクノロジーズの32ビットプロセッサであるR2000である（1985年。R1000はリリースされなかった）。続くR3000は更に実用的な設計となり、R4000では世界初の64ビットアーキテクチャを採用した。それに対抗すべくIBMのRT PC（1986年）や後継のPOWER、サン・マイクロシステムズのSPARCシステム（1985年）が生み出され、間もなく各主要ベンダはRISCアーキテクチャを採用したプロセッサをリリースした。AT&TのCRISP、AMDの29000、インテルのi860とi960、モトローラの88000、DEC Alpha、ヒューレット・パッカードのPA-RISCなどである。 DEC Alphaは性能面では優秀と言われながら、ヒューレット・パッカードに買収された後に消滅した。ヒューレット・パッカードのPA-RISCは、インテルと共同開発のItaniumに移行した。MIPSアーキテクチャは組み込みシステム（シスコシステムズのルータなど）に広く使われている。POWER/PowerPCは、Macintoshにも採用されたが、現在はサーバーとスーパーコンピュータのほかは、組み込みシステムが中心である。 ARMアーキテクチャは当初ホームコンピュータ向けに開発されたが、その後は携帯電話・スマートフォンをはじめとした携帯機器や組み込みシステムで支配的となった。ARMv8-Aで64ビット化がなされて以降、ARMアーキテクチャはサーバー分野にも進出し、スーパーコンピュータやデスクトップ分野でも台頭が著しい。 現在のx86マイクロプロセッサは従来の（可変長の）命令セットとの互換性を保ちながら、内部的には固定長命令に変換して実行するなどRISCの技術を段階的に採用し、また各RISCマイクロプロセッサはコード効率の向上を意図して短縮命令モード（ARMのThumb命令など）を実装するなど命令セットの追加を重ねたため、現在ではRISCとCISCの技術的な分類は困難である。しかしRISCという用語は便宜上使われる場合が多い。 かつて世界で販売されたマイクロプロセッサのうち最も多かったのは安価な8ビット製品である。1997年には20億個以上が出荷され、組み込みシステムとして非常に様々な用途に利用されてきた。 しかし、その後は半導体製造技術の発達によりローエンドの32ビットプロセッサーと16ビット/8ビットプロセッサーの価格差は徐々に少なくなり、IoTなどの要求仕様の高度化や汎用開発ツールの援用要求により、16ビット命令（ARMのThumb命令など）を持つ32ビットRISCプロセッサ（主にARM互換製品）が組み込み用途にも広く使われるようになった。また、64ビットの高性能品もパソコンやサーバ、スマートフォンのほか、デジタル家電やネットワーク機器など大量のデータの処理が要求される分野で使われている。 マイクロプロセッサはその特性上小さく、軽いが価格が高価なことから、航空機での輸送が盛んである。日本においてマイクロプロセッサの取扱量が最も多い空港は、成田国際空港である。