テクニカルノート「コンピュータの歴史(2):コンピュータの世代」

4.2 MPUの処理能力向上

 MPUの処理能力、すなわちデータ精度の向上は、MPU進化の基本的な方策である。4ビット⇒8ビット⇒16ビット⇒32ビット⇒64ビットとデータ精度は向上する。それに伴ってメモリ所要量が増加しアドレスビット数も増加する。その進化を追うと次のようになる。

(1) 4ビット MPU

  1971年11月 インテル4004発表。4ビットMPUで、10進数一桁を表現する精度をもつ。アドレスビットは12ビット。
 このMPUが誕生した背景には、1960年代後半に日本で起こった電卓戦争と呼ばれる開発競争と爆発的に拡大した市場による需要があった。電卓戦争の中で4004は誕生した。
 一方で、この時代には既にメインフレーム(例えばSystem/360は1964年4月に発表)は32ビット、ミニコンピュータ(たとえばPDP-11は1970年1月に発表)でも16ビットであり、また当時のLSIに使われたMOSのテクノロジでは動作速度も遅かったことから、コンピュータのメインストリームにマイクロプロセッサの存在が影響を与え始めたのは、もっと後である52) 。

 なお、TI社のゲイリー・ブーンはシングルチップのマイクロプロセッサに関する特許を1973年9月に取得している53) 。

(2)8ビット MPU

  • 1972年4月 インテル8008発表。8ビットMPUで、アドレスは14ビット。高性能端末用に設計されたが性能不足で不採用52) 。
  • 1974年4月 インテル 8080 発表。従来のMPUは制御装置など組み込み用途を意識していたが、これはコンピュータ用途を意識した最初の8ビットMPUで、アドレスは16ビット52) 。初期のパーソナルコンピュータの多くに採用された54) 。
  • 1974年 モトローラ 6800発表。8ビットMPU。モトローラ初のマイクロプロセッサ52) 。ミニコンPDP-11のアーキテクチャを参考にしたといわれ、インテル8080と比べて、洗練された構成が評価されている55) 。
  • 1976年7月 ザイログ Z80 発表。命令体系の拡張、5V単一電源で動作など、8080よりは格段に使いやすかった。シャープのMZシリーズや NEC のPC-8000シリーズ、PC-8800シリーズなど、日本の代表的な 8ビットパソコンで採用された。また、家電製品のCPUとしても大量に使用された8ビットCPUの傑作でもある52) 。

(3) 16ビット MPU

  • 1973年 ナショナル・セミコンダクタ IMP-16発表。最初の16ビットMPU。ただし1チップではない52) 。
  • 1975年8月 PANAFACOM L-16A完成。最初のワンチップ16ビットMPU、16ビットアドレス?56) 。
  • 1978年6月 インテル 8086発表。16ビットMPU、20ビットアドレス(1MB)。DOSパソコン、現在の Windows パソコンのCPUの先祖にあたり、その命令セットはx86命令セットアーキテクチャとして現在でも使われている52) 。
  • 1982年3月 インテル 80286 発表。16ビットMPU。1980年代後半~1990年代初頭のパソコンの代表的なCPUとなった。メモリ空間を16MB(24ビット)に拡大した52) 。

(4) RISC MPUの登場

 MPUの開発が進むにつれて、従来の命令セットアーキテクチャに対してより単純化された命令セットアーキテクチャをもった新たなMPUが1980年代後半から登場した。そのMPUおよび命令セットアーキテクチャは、RISC(Reduced Instruction Set Computer、リスク)と呼ばれ、時期的には、32ビットMPUの時代である52) 。

 RISC MPU登場の先駆けとして、IBM 801とバークレーRISCの2つの研究プロジェクトが知られている。
(a) IBM 801プロジェクト
 IBM 801は、1970年代に、IBMでの研究に基づき開発・設計されたプロセッサの命令セットアーキテクチャ及びその実装である。
 従来のコンピュータの命令セットは、アセンブリ言語でプログラムを記述することを前提にして開発されていたが、高水準言語で記述するようになって命令セットの使われ方がどのように変化したかについて調査が行われた。静的にはコンパイラが生成するコードを分析し、動的にはシステム/370メインフレーム上でのプログラムの動作をトレースし、静的にも動的にも、それらのうちのごく一部だけが多数使われている、ということを把握した。もしそれらの命令だけに命令セットを絞り込めば、その実装として、非常に高速で非常に小さいプロセッサコアを作ることが可能だということが分かった。

 プロジェクトは、それを801ミニコンピュータとして1977年に実装し、15MIPSという速さで動作させた。その結果は、RISCプロセッサに影響を与えた先行例となり、IBMのPOWERアーキテクチャ誕生の母体となった。
 プロジェクトを統括したジョン・コックは、その功績を認められ、チューリング賞(1987年)とアメリカ国家科学賞(1994年)を受賞し、RISCアーキテクチャの父と呼ばれる57) 58) 。
(b) バークレーRISCプロジェクト
 最も一般に知られているRISCは、DARPAのVLSI計画の一環として計画されたカリフォルニア大学バークレー校のRISCで、そのプロジェクトは、デイビッド・パターソンの指揮の下1980年に開始された。
 RISCという用語の提案は、ジョン・ヘネシーとデイビッド・パターソンによる論文”RISC I: A Reduced Instruction Set VLSI Computer”で、調査対象とした従来型の命令セットを持つプロセッサをCISC(Complex Instruction Set Computer、シスク)と呼び、その対比として提案された命令セットを持つプロセッサをRISCと呼んだ。

 バークレイーRISICの特徴は、下記の通りである。

  1. 単純な命令セットアーキテクチャの採用。
  2. 多数のレジスタを持つ。
  3. レジスタとメモリとのデータのやり取りは、ロード命令とストアー命令に限定する。
  4. データの演算はレジスタ同士で行う。(メモリアクセスする場合に比べて速い)。
  5. 性能の低下を補うために、多数のレジスタを採用し、高水準言語コンパイラによってコード生成の最適化を図る。
  6. また、命令パイプライン処理を行い高速化する。ここで、命令パイプライン処理とは、命令の処理を複数のステップに分割し、流れ作業のように、1つの命令は各ステップを順番に経由して処理すると同時に処理が終わったステップには、次の命令の処理が始まるように制御して、最大、分割したステップの数だけステップ処理を並行処理させる処理方式である。

 このプロジェクトは1982年にRISC-Iを完成させた。同時期のCISCプロセッサが10万個のトランジスタからなっていたのに対して、わずか44,420個のトランジスタからなるRISC-Iは32種類の命令しか持たなかったが、極めて高性能だった59) 。バークレーRISCはサンマイクロシステムズのSPARCアーキテクチャとして継承される。

 これらの結果から、小型で高性能のRISC MPUが市場に投入されることになるが、RISC MPUは新たなMPUであるため、ソフト資産を継承しにくいという問題がある。このため、2極化する52) 。

  • ソフト資産継承が重視されるパソコン分野では、従来のCPUと互換性を保ちつつRISC技術も取り入れていく折衷方式のインテルに軍配が上がった。
  • 業務用ワークステーション・サーバ分野では、RISC MPUメーカに軍配が上がった。

(5)32ビット MPU

  • 1979年 モトローラ 68000発表。内部は32ビット、外部バスは16ビットのCISC MPU、24ビットアドレス。初期の業務用ワークステーションで採用された代表的なMPU。また、1984年に登場したApple Macintosh でも採用された。日本ではX68000に採用された52)
  • 1984年 モトローラ MC68020発表。外部バスも32ビット化した本格的な 32ビットCISC MPU。業務用ワークステーションやMacintoshで採用された52)
  • 1985年10月 インテル 80386 発表。32ビットCISC MPU。1990年代前半のパソコンの代表的なCPUとなった52)
  • 1985年10月 インテル DRAM事業から撤退。インテルは日本の半導体メモリメーカの攻勢に押されてDRAM分野から撤退し、CPU事業に力を注ぐことになった。結果的に、この敗退が1990年代にはCPUメーカさらには半導体産業のリーダを生み出すこととなった52)
  • 1986年 MIPS R2000発表。ほぼ最初の商用 32ビットRISC MPU。DECやシリコングラフィックスのワークステーションで採用された。MIPSはスタンフォード大学のジョン・ヘネシーが設立した会社52)
  • 1986年 エイコーン・コンピュータ ARM2を開発。32ビットRISC MPU。低消費電力に注力したARMアーキテクチャは後に組み込みCPUとして圧倒的なシェアを誇るようになる52)
  • 1986年10月 ヒューレット・パッカード (HP) PA(ピーエー)-RISC発表。32ビットRISC MPU。HPのワークステーションで採用された52)
  • 1987年 モトローラ MC68030発表。32ビットCISC MPU。Macintosh、NeXTSTEPで採用された52)
  • 1987年 サン・マイクロシステムズ SPARC出荷。32ビットRISC CPU。サン・マイクロシステムズのワークステーションで採用された52)
  • 1988年 MIPS R3000発表。32ビットRISC MPU。通信機器やプリンタなどの組み込み機器で多く用いられるようになり、組み込みMPUの一角を築いている。ソニーのゲーム機 プレイステーション(1994年12月発売)でも採用された52)
  • 1989年4月 インテル i486発表。32ビットCISC MPU。80386 の後継CPUで、1990年代半ばのパソコンの代表的なCPUとなった。キャッシュ搭載により性能を向上させた52)
  • 1991年 AMD Am386発表。32ビットCISC MPU。AMDは独自に80386互換のMPUを作り上げた52)
  • 1992年10月 IBM/モトローラ PowerPC 601発表。32ビットRISC MPU。IBMのPowerアーキテクチャをベースにMC88000のMPUバスを組み合わせて開発された。IBMのオフコン RS/6000 やApple Power Macintosh (1994年発売)で採用された。アップルは、Macintoshに従来 CISC MPUであるモトローラ68000系を採用していたが、まったく新しい RISC MPUに変え、従来のソフトをMacOSのコード変換機構を通して動かす方法を選んだ52)
  • 1993年3月 インテル Pentium 発表。32ビットMPU。パイプラインやスーパースカラなどのRISC技術を導入し、CISCの86系のハンディを補う。インテルは、CISCとRISCを折衷し、従来のCPUの互換性を保つ方式を選んだ52)

(6)64ビット MPU

  • 1991年 10月MIPS R4000発表。64ビットRISC MPU。初の64ビットMPUである52)。アドレスも64ビット。R4000 はワークステーションやサーバなどの新市場で成功を収めた60)
  • 1994年 ヒューレット・パッカード (HP) PA-RISC7200。64ビットRISC MPU。なお、PA-RISC(ピーエ―リスク、Precision Architecture(精密なアーキテクチャ)‐RISC)は、HP社が開発したマイクロプロセッサの命令セットアーキテクチャである61)
  • 1995年 サン・マイクロシステムズ UltraSPARC発表。64ビットRISC CPU。SPARC(スパーク、Scalable Processor Architecture)は、サン・マイクロシステムズが開発・製造したRISCベースのマイクロプロセッサであり、その命令セットアーキテクチャの名称である。UltraSPARCは64ビット化されたSPARC仕様である62)
  • 1996年1月 HP PA-8000リリース。HP社が開発した64ビットRISC MPU52)
  • POWER3は、IBMが設計し、独占的に製造したPOWERアーキテクチャの64ビットマイクロプロセッサである。POWER3は1998年にリリースされた63)
  • 2001年5月 インテル Itanium 発売。初めてIA-64アーキテクチャを実装したMPU52) 。しかし、このアーキテクチャはItanium以外で使われることはなかった。なお、IA-64アーキテクチャとは、インテルとHPが1994年に共同発表した64ビットMPUの命令セットアーキテクチャ(ISA)である。
  • 2001年 IBM POWER4発表。サーバ/メインフレーム用CPU。業界に先駆けて対称型マルチコアを採用した64ビットプロセッサで、その設計は後のPowerPC 970のベースとなった52)
  • 2003年4月 AMD Opteron 発表。x86を独自に64ビットに拡張したアーキテクチャAMD64搭載。x86-64アーキテクチャはAMD社がx86命令セットアーキテクチャを64bitに拡張したものの総称52)

(6) メインフレームの31ビット/64ビット化

  • 1981年 IBM ミッドレンジの4300、9370の上位機としてS/370-XAアーキテクチャを発表。24ビットアドレスから31ビットアドレスに拡張。
  • 1990年 IBM ES/9000発表。ESA/390アーキテクチャでデータに対して64ビットアドレスを提供。
  • 2000年 IBM eServer zSeries発表。z/Architectureに至って64ビットアドレッシングとなった64) 。(System/370 – Wikipedia

Comments are closed.