コンピュータの中央処理装置

28/Dec/2000 (公開)
19/Jan/2001 SuperSPARC 追加
11/Oct/2001 PPC, Alpha 系追加
02/Oct/2002 microSPARC2 追加
24/Sep/2003 志田の撮った R3000 と superSPARC の写真が, CQ 出版社の Interface 誌 2003 年 11 月号の 5 頁に使われました.
K. Shida

ちょっと古い半導体のコレクションとして, 小松さんのページ があります.

intel x86 (IA32) CPU は こちら に独立させました.

1. マイクロプロセサ以前

1.1 Parametron

Parametron Logic Board from PC-2

1.2 Digital Equipment Corp. VAX11/750 (1981)

VAX11/750

電子計算機の発明から 1960 年代一杯は,大型機 (mainframe) 全勢であり, IBM 社UNIVAC 社, Control Data 社などが, 部屋一杯になるような何億円から何十億円もするマシンを, 大企業や政府の情報部門向けに売っていた. Digital Equipment 社 (DEC) は,1960 年代にミニコンピュータという ジャンルを開拓して,現在まで続くダウンサイジングの最初の動きを 作り出した. 1969 年から始まる 16bit ミニコンピュータ PDP11 シリーズは, 整理された命令体系を持ち,ミニコンの決定版となった. 最初の UNIX は 12bit の PDP8,それから PDP11 の上で開発が行なわれた.

1978 年に発売された VAX11/780 は,32bit のアドレス空間と命令体系を もつ「スーパーミニコンピュータ」であって,PDP11 を素直に拡張した 命令体系(互換性はない)を持ち,仮想記憶機構を備えたため Virtual Address eXtension と名付けられたといわれる. 32bit 化されたことで,性能はともかく,アーキテクチャ上は 大型機に劣らないどころか,後発だけにむしろ優れた点が多かった. DEC は VMS というオペレーティングシステムを提供していたが, UC Berkeley では,それとは別に,UNIX OS を VAX に移植し, Berkeley Software Distribution (4.xBSD) として非営利で配布した. メーカー提供のオペレーティングシステムは,融通が効かず 研究には向かないため,世界中の大学や研究所が,OS 抜きで VAX を 購入して BSD UNIX をインストールした.

780 の値段は一億円程度で,サイクルタイム 200ns,一秒間あたりの 実行命令数は約六十万命令程度だった. '81 年に発表された写真の VAX11/750 は サイクルタイム 320ns で, 780 の六割程度の能力を持つ廉価版である.値段は構成にもよるが 約三千万円と聞いている. 一つの学科にこれが一台あるのは,日本の大学では設備のいい方だった. 写真は 1987 年に矢上の 慶應義塾大学理工学部 21 棟の計算機室で撮影した. 左が 750 本体.体の後ろに隠れているのが,ハードディスク装置や Cypher と呼ばれたオープンリール磁気テープ装置である. 写真には写っていないが,さらに右側には PDP11/23 (メモリ 256kBytes, ハードディスク 10MBytes)も設置されている.

DEC は一時期 IBM に次ぐ世界第二位のコンピューターメーカーとなったものの, ワークステーションへ,さらにパーソナルコンピュータへ, というミニコンを越えるダウンサイジングの波に乗り遅れた. VAX の命令体系が複雑で性能向上に限度があったため, 1990 年代には Alpha と呼ばれる RISC CPU を搭載したワークステーションを 発売して高性能を誇ったものの,1998 年には新興の PC メーカ Compaq に 吸収されてしまった.


2. いろいろなマイクロプロセサ

Inmos Transputer T800 (1980s)

Transputer T800 top view Four T800s on C-bus board

Transputer は,1980年代に英国で開発されていた, 並列分散処理のためのマイクロプロセサである. T400 から始まって T9000 で終るシリーズである. マルチプロセサシステムの構成を容易にするため, ハイパーキューブ構成を考えた他のプロセサとの通信線をもち, メモリバスも含めてすべてシリアル通信としてピン数を減らしている.

Transputer でのプログラミングのため Occam という言語が提供されていた. Occam では,{} や begin-end の代わりに, インデントでブロックを定義する.

当時のマイクロプロセサには珍しく FPU を内蔵していて 科学技術計算に向いていた. 写真は,PC9801 用のCバス拡張ボードで,四つの CPU と DRAM メモリを 載せている.一つの CPU は下に隠れている.

日本電気 μPD751 (μCOM-4) (1970s)

NEC uPD751 and family

NEC が 1970 年代に作った 4bit CPU である. ピン数は 28pin で, データバス 4bit とアドレスバス 12bit を別々に持っている. しかも命令空間とデータ空間を分離していて, 命令空間は 8bit/word,データ空間は 4bit/word でそれぞれ 4096words 持てるという.

集積度は 2500 ゲートで,55種類の命令を持ち,1MHz のクロックで動作し, 一命令 5〜10μS で実行したという. 以上,詳しくは小松さんのページを参考にしました. 下に写っている μPD412C は 2kbits の ROM である. μPD757C は不詳. NEC の Web サイトには,この時代の製品データは何もない.

Intel i8052AH-BASIC (1980)

Intel i8052AH-BASIC

1980 年に intel が作った組み込み用 8bit シングルチップ マイクロプロセサである. シングルチップ MPU とは,RAM や ROM,タイマー,シリアル I/O などを MPU 内部に取り込み,最小限の周辺回路でコンピュータとして動作するように 考えられた MPU で,パーソナルコンピュータとしてではなく, 機器に組み込んで制御のために使う. i8052 は MCS-51 と呼ばれるシリーズ製品の一つで, i8051 の強化版である. 内蔵 RAM 容量は 256Bytes,内蔵 ROM は不明だが, i8051 が 4kBytes なので同じかそれ以上と思われる. 外部にもバスが出ていて,メモリチップを外付けすれば命令・データ メモリをそれぞれ 64kBytes まで増やせる.

日立 HD46802 (1977)

Hitach HD46802

写真の上から二番目のサビサビのチップが HD46802 である. これは Motolora の 8bit マイクロプロセサ MC6802 を 日立が製造したものである. この当時は,プロセサ設計の知的所有権に関する考え方が今と 違っていて,むしろ安定供給のために複数のメーカーが供給する ほうが望ましいと考えられていた. この場合日立を「セカンドソース」と呼ぶ. モトローラ社は,インテル社の 8080A の後を追って 1975 年に 同社初のマイクロプロセサ MC6800 を発表した. 1977 年に発表された MC6802 は,MC6800 にクロックジェネレータと 128Bytes の RAM を集積して最小 2 チップ構成を可能にしたもの.
写真上より
型番機能
HD46508アナログデータ入力
HD468028bit MPU
HD46820パラレル入出力用 Peripheral Interface Adapter (PIA)
HD46850シリアル入出力用 Asynchronous Communications Interface Adapter (ACIA)
HD46821 パラレル入出力用 PIA (HD64820 の改良版)


Motorola MC68000G8 (1983)

68000 on FatMac digital board FatMac digital board FatMac

Motorola 社が開発した,かつての Intel x86 CPU のライバル. MC68000 から MC68060 まである. 初代の MC68000 は,32bit のレジスタと 24 ビットのアドレス空間, 16 ビットのデータバスを備えた,ミニコンピュータ並のアーキテクチャ をもつ優れた CPU である. 1981 年には Apple 社の Lisa, 1983 年には Macintosh が採用して, グラフィカルユーザーインターフェース (GUI) を持つ初めての パーソナルコンピュータを実現した. 日本では, シャープの X68000 が搭載して マニアの支持を集めた. MC68000 という型番は,トランジスタを 68000 個集積したことから 名付けられたという.

写真は,1985 年の Macintosh 512K (FatMac) である. 左の CPU の拡大写真を見ると DIP (Dual Inline Pakcage) としては, かなり大きいものであることが分かる.ピンは 64 本ある. 7.8MHz で動作した.

初代 Macintosh のメモリは 128KBytes だったが,その 64kbits DRAM チップを 256kbit に変えることでメモリ容量を増加した. 中央の基盤 (digital board) の写真で,CPU の上に二列に十六個 ならんでいる(白い線で囲まれている)のが DRAM である. CPU の下にある二つの空のソケットは,マックをマックたらしめている ところの Toolbox routines を納めた 128kBytes の ROM である. これは,本体(写真右)を Macintosh Plus 相当にアップグレード したときに,新しい基盤に移植した.

○ Motorola MC68020FE16E

68020 on NCD19

68000 に仮想記憶機構を付加した 68010 は SUN Microsystems 社の 最初のモデル Sun-1 Workstation が採用し, 「ワークステーション」の先駆けとなった. 80486 と同世代の完全 32 ビット化された CPU である 68020 は Macintosh II や Sun-2 に, さらに SONY の作った UNIX ワークステーションである NEWS の初代モデル NWS-830 に採用された.

この写真は, Network Computing Device 社の X 端末 NCD19 に使われている 16MHz 品である. X 端末とは,ディスクレスワークステーションをさらに簡単に したもので,LAN 経由で UNIX ホスト計算機に接続し, 自分では X サーバを実行する CPU とメモリだけを持った 安価なビットマップ端末である.

68030 は Macintosh IIx,Sun-3,NEWS 1000 シリーズに使われ, またアップル社を追われたスティーブ・ジョブスが開発した NeXT Cube も 68030 を載 せて衝撃的にデビューした. 1993 年にデビューした 68040 (次で紹介)も Macintosh Quadra, NeXT Station Turbo に載るなど, 銘機と呼ばれるマシンには必ず 68000 シリーズが搭載されていた, といえる.

Motorola XC680LC40RC25 (1994)

68040 top view 68040 bottom view

しかし Intel CPU が PC の分野で圧倒的なシェアを握るにつれ, 売上で劣る Motorola は,Intel に対抗するだけの開発費を かけられなくなって,性能の優位が保てなくなっていった. 1980 年代末から '90 年代初期には RISC 全勢となり,SUN は SPARC を自主開発,Apple は PowerPC を採用するなど, パーソナルコンピュータには 68000 シリーズは使われなくなっていった.

写真の CPU は 1993 年頃 Apple Macintosh LC475 に搭載されて いた 25MHz 版である. 68040 は 8KBytes の一次キャッシュを内蔵し, マザーボードと等速で動作する. 型番の XC は,バグの残ったサンプル版であることを表すが, この頃すでにモトローラの 68K CPU の開発力は衰えており, 最後まで XC のまま,MC を冠した 68040 が Mac に載ることはなかった. LC は FPU を省いたローコスト版であることを示す. FPU つきの 68040 25MHz は 1993 年製の Macintosh Centris 650 に搭載されている.

Motorola PowerPC601-80 (1995)

PowerPC601

IBM が開発した RISC CPU は,Power チップであり, RS/6000 ワークステーションシステムに搭載された . これをもとにして,パーソナルコンピュータ向けに Motorola と 共同開発したのが PowerPC CPU である. 最初に登場したのが PPC601 CPU で,それを搭載したのが Apple の PowerMacintosh 6100, 7100, 8100 シリーズであった. 写真は PowerMac 7100/80AV に搭載された 80MHz の 601 で, 変わった形をしたヒートシンクを右の送風ファンで冷却している.

PPC601 は,クロックあたり最大三命令のスーパースカラーで, 32KBytes の一次キャッシュと 64bit データバスを持っていた. 0.6μm の CMOS で 280 万トランジスタを 120mm2 の ダイに集積し,3.6V 動作で消費電力は最大 10W となっている.

PPC603e は,データバスを 32bit にした廉価版で,Macintosh Performa シリーズに用いられた. PPC604 では,601 を拡張してクロックあたり最大四命令とし, マルチプロセサにも対応した. 1997 年に出た 0.27μm 配線に縮小した版は 604e と呼ばれ, 最大 300MHz で動作した(PowerMacintosh 9600/300). PowerPC には 400 シリーズなど,組み込み用途むけのモデルもある. プリンタやX端末などに使われている.

Apple は,68K コードのエミュレータを PowerMac に組み込んだため, 古いプログラムもそこそこの速度で新しいマシンで実行できた. これによって OS やアプリケーションの互換性を保ちながら, CPU の命令セットアーキテクチャを変更するという困難を 初めて克服できた.それまでは考えられなかったことである. この考え方は,後に Pentium Pro や Crusoe プロセサでも 応用されることになる.

Motorola PowerPC750-400 (1999)

PowerPC750 (G3) Apple Macintosh G3-400

PowerPC750 は MacOS に狙いを絞って高速化したモデルである. クロックあたりの最大命令数は三と PPC604 より少なく, シングルプロセサのみだが,「バックサイド」キャッシュ方式を採用した. これまでの「インライン」キャッシュでは, キャッシュメモリが CPU と主記憶の間に挟まっていたのに対して, 「バックサイド」方式では,主記憶インターフェースと 二次キャッシュインターフェースが分離されており, 両方へ同時にアクセスできる. 同時期の Pentium II プロセサもこの方式を採用している.

Apple は,この CPU を第三世代 PPC であるとして G3 と呼び, PowerMacintosh G3 (写真右:通称ポリタンク)や iMac に搭載した. PPC に限らず,RISC タイプの CPU が x86 より優れているのは, 絶対性能というより電力消費率である. 400MHz の G3 は 2.6V 駆動で 8W しか消費しないが, これは Katmai Pentium II の三分の一以下である.

CPU はサブボードごと ZIF ソケットにささっている. CPU の上に見えるのは 1MBytes のバックサイド 二次キャッシュのチップである. この上にヒートシンクが乗るが,CPU ファンはつかない.

Motorola PowerPC7400-400 (2000)

PowerPC7400 (G4)

intel のマルチメディア向け MMX 拡張命令セットや SSE 拡張命令セットに 対抗するため,Apple も何かを必要としていた. そこで AltiVec 拡張命令セットを組み込んだ PPC7400 を製品化するにあたり, AltiVec を Velocity Engine と呼び変え,CPU を PPC G4 と呼び変えた. Velocity Engine 命令セットを使わなければ,G4 のクロックあたりの 性能は G3 より数パーセント勝るだけである. IBM は AltiVec 拡張に賛同しなかったので,G4 はモトローラだけとなる.

クロックについても,x86 プロセサが 1GHz に達した 2000 年に, 400MHz では,絶対性能では負けなくても,商売上都合が悪い, 2001 年型の G4 では,整数パイプラインの段数を 4 段から 7 段に 増して高クロックを出しやすくした G4 改 (PPC7450) に積み変えて, 867MHz モデルまで発表できた. 同時に 256kBytes の二次キャッシュを CPU に統合した. しかしパイプラインを伸ばすと,分岐命令のペナルティが増えるので, クロックあたりの性能は低下した. それでも,Pentium III の 12 段,Athlon の 10 段よりは短い.


MIPS Technologies R3000-33

MIPS R3000

縮小命令セットコンピュータ (RISC) の考え方を提唱したのは, Stanford Univ. の John L. Hennessy 教授と UC Berkeley の David A. Patterson 教授である. 二人は,計算機アーキテクチャ教科書の決定版である "Computer Archtecture: A quantitative approach" および "Computer Organization & Design: The hardware/software interface" の共著者でもある.Hennessy 教授は 1984 年に MIPS プロセサを設計し, MIPS Technologies Inc. の共同設立者の一人となった. 一方の Patterson 教授は SPARC プロセサの原型となった RISC I を設計した.

MIPS の R3000 CPU は, コンピュータグラフィックスに強い Silicon Graphics 社 のワークステーションや,SONY の RISC NEWS NWS-3000 シリーズに 搭載されたほか,SONY の PlayStation,Nintendo 64 などのゲーム機, レーザープリンタなど組み込み用途にも使われた. 写真の CPU は X 端末 NCD19r に使われている 33MHz 品である.


SUN Microsystems SPARC (1991)

SPARC chip SS IPX Weitek SPARC Power uP

SUN は 1987 年発表の Sun-4 から SPARC アーキテクチャに移行した. はじめの頃のモデルはデスクサイド型だったが,やがて集積度が上がり, 1990 年に発表されたピザボックス型匡体(下の SparcStation10 がそれ) モデルから,シリーズ名も SparcStation となった. SparcStation1 (25MHz),SparcStation1+ (33MHz) を経て, SparcStation2 (40MHz) は,当時の標準機になって大いに売れた. これに使われていたのが写真左の SPARC チップである. Fマークから,製造は 富士通であることが分かる. 1992 年の SparcStation IPX は,SIMM メモリ を 30pin から 72pin に 変えたり,拡張性をなくしたりして小型化したモデルである (写真中.ただし写っているのは 富士ゼロックスが 販売した OEM モデル Argoss 5232 である. 価格はアカデミックディスカウントで約百五十万円.).

このように SPARC チップを搭載したマシンが出回ったので, アップグレード用に,より高速なピン互換 CPU が現れた. 当時,浮動小数点演算 LSI メーカとして有名だった Weitek 社の SPARC POWER uP (1993) である. 内部倍速の 80MHz で動作し,1.3〜1.6 倍の処理性能を発揮した. 価格は十五万円で,新型を買うよりはずっと安かった. 左の写真で SPARC チップの脇に写っているのは, アップグレードキットに附属の CPU 引き抜き工具である. SPARC チップにはファンもヒートシンクもついていないことに注意. Weitek チップでようやくヒートシンクがついた.

SUN Microsystems SuperSPARC-36 (1993)

SS10 SuperSPARC chip

SparcStation 2 の後継モデルは 1993 年の SparcStation 10 である. 写真右は OEM モデルの富士ゼロックス Argoss 5250 (SS10/30 相当)で, 当時のアカデミック価格は約二百六十万円. 搭載している次世代 SuperSPARC チップの特徴は,

  1. 36kBytes のオンチップ一次キャッシュ搭載.
  2. 最大三命令同時実行の「スーパースカラ機構」.
  3. SS10/30 は 36MHz CPU を搭載. SS10/40 は 40MHz CPU に加えて 1MBytes の二次「スーパーキャッシュ」 モジュールつき.
SuperSPARC は,黒くて丸いヒートシンクを載せた, 「コンバット」そっくりの格好をしている. SuperSPARC は,データパスの設計に問題があり, 三命令同時実行があまり生かされず,期待ほどの性能は出なかったといわれる. 三命令同時実行で複雑化したため, 改良型の SuperSPARC+ の最後のモデルでも 70MHz が限度で, クロックがあまり上げられなかった.

○ ROSS- Cypress Semiconductor hyperSPARC-125(1994)

hyperSPARC chip SS10

そこで,富士通肝入りの ROSS 社が開発し Cypress Semiconductor 社が製造 したのが,SuperSPARC より速いという触れ込みの,hyperSPARC である. これは同時実行を二命令に押える代わりにクロックを上げられる設計とし, 128kBytes の二次キャッシュも装備していた. 125MHz の hyperSPARC に交換した SS10/30 は,三倍近い性能を発揮した. このあたりから,SUN はロードマップで約束した通りに性能向上できなくなる. そして「SUN は実は CPU の設計が下手なんじゃないか」と噂される ようになって,現在の UltraSPARC に至る.

写真左は,SS10 の内部である.CPU のそばに取り付けられた三連 ファンがものものしい.

SUN Microsystems microSPARC-II 70 (1994)

microSPARCII

SPARCstation 5 に乗っていた 70MHz 版です. スーパースカラではありませんが,SS10/30 と比べても性能は遜色のなく, ずっと安かったので,なかなかお買い得でした. マザーボードのジャンパで 85MHz にオーバークロックできました. 解説はここにあります.


AMD Am29200 (1994)

AMD am29k

Am29k シリーズは AMD 社が 1990 年台前半に製造していた 32 ビット RISC プロセサである. 最初の Am29000 は,ワークステーション向けの CPU であったが, あまり採用されなかったため,後に組み込み用途に特化した Am29200/29205 などが開発された. このあたり MIPS R3000 シリーズと事情が似ている. 組み込み用途であれば,仮想記憶などは使わないので,Memory Mapping Unit (MMU) を省いたり,アドレス空間を 304MBytes に減らしたりしてある. 168pin の Quad Flat Package に納められている. 16MHz の駆動周波数で 8MIPS は大したことないようだが, これまでの 8 ビットや 16 ビットの組み込み用 CISC MPU に比べて, 32 ビットレジスタを 192 本も持っていることから格段に高性能であり, 計算量の多いレーザープリンタなどに良く採用された. 写真はゼロックスのレーザープリンタ 1040PS の基盤に搭載されているもの. 左下に PostScript ROM が見える.


Digital Equipment Corp. Alpha 21064A-266 (1995)

DEC AlphaStation 250/266 DEC AlphaStation 250/266

VAX が時代遅れになったあと, MIPS R3000 を使った DECstation で繋ぎながら開発したのが, Alpha アーキテクチャである. RISC CPU として最後発であるだけに,もっとも高クロックに振った 過激なアーキテクチャをもつ. バス幅,整数レジスタとも 64bit の完全 64bit アーキテクチャであり, データプリフェッチ命令があったり, 分岐命令にヒントと呼ばれる,確率の高い分岐方向をコンパイラが教える フィールドがあったりするのが珍しい. 1995 年頃,他の CPU はせいぜい 100MHz だったから, 266MHz は抜群だった.

その代わり,オブジェクトサイズは巨大であり,Digital UNIX の カーネルが約 8MBytes あるのには驚いた. その頃の 68k 系の SONY CISC NEWS のカーネルで 1MBytes 位, SPARC 用 SunOS が 2MBytes 超,Hewlett-Packard 社の PA-RISC 用 HP-UX9 だってせいぜい 4MBytesだった.

写真左は DEC 製の AlphaStation 250/266 の外観である. 右はその中身.左手前の銀色のヒートシンクが 21064A CPU であり, その下に黒く見えているのが送風ファンである. ヒートシンクは,CPU パッケージにボルトどめされている. ZIF ソケットには "431Socket" と書いてある. CPU の上に見える正方形のチップが DEC 特製のメモリコントローラで, 合計四つついている.その左に並ぶ小さい長方形がオンボード二次 キャッシュである. 拡張スロットは PCI で S3 社のビデオチップを載せた NumberNine ブランドの ビデオカードがささっている. この辺はかなり PC に近づいているが,電源のコネクタはまだ独自である. メモリはハードディスクの奥,フラットケーブルの下に隠れているが, 72pin の EDO SIMM を使う.64bit バス 2Way インターリーブなので, 四枚一組でささなければならない.

Digital Equipment Corp. Alpha 21164A-433 (1997)

Alpha 21164-433

Alpha CPU の性能は,他の RISC CPU を使ったワークステーション (HP の PA-RISC,Sun の SPARC シリーズなど)と比べても トップクラスであり,概ね intel CPU より二年先行していた. また PC と共通の ATX 規格に則った Alpha マザーボードが 作られたため,安価な科学技術用ワークステーションを 提供する会社が何社もできた. これらの Alpha 互換機は OS として Digital UNIX の他に Alpha 版 Windows NT や Linux を搭載することができた.

この写真は PC164 という ATX マザーを使った互換機で, 433MHz の 21164A を載せている. ZIF ソケットは "499 Socket". メモリまわりは 21064A とほとんど同じに見える.

DEC が Compaq に吸収された後に, 第三世代の 21264A が発売されたが, それも intel/AMD の怒涛のクロック競争の前に青息吐息. だんだん,価格差を正当化できるだけの性能差を保てなくなっていく. 遂に実クロックで抜かれてしまった 2001 年になって, Compaq は Alpha の自社開発を終了し, 知的財産を intel に売却すると発表した. intel は HP の PA-RISC の技 術を取り入れて IA64 アーキテクチャを 定め itanium CPU を開発したものの,期待どおりいかず, 今度は Alpha の命令レベルマルチタスキングの技術を求めたのだという.


感想,御意見は
shida@ac.cs.musashi-tech.ac.jp
へお願いします.