8ビットCPUの名機Z80の後継はなぜ失敗した? Zilog Z800/Z8000/Z80000の誕生と消滅(人知れず消えていったマイナーCPUを語ろう 第10回)

テクノロジー Other
大原雄介

猫に傅くために原稿を書いて日銭を稼いでいる毎日。元は組み込み系のエンジニアだったのに、もうずいぶん遠い所まで来てしまった。

特集

コンピュータの歴史を暗部も含めてていねいに掘り起こすことで定評のある大原雄介さんによる連載10回目。今回は、ZilogのZ80、ではなく、その後に作られた後継CPUについて。


ZilogといえばZ80で有名なメーカーであり、ご存じの方も多いかと思う。元々は Federico Faggin氏とRalph Ungermann氏という、Intelで4004/8008の設計に携わっていたエンジニアで、2人は1974年にIntelを辞してZilogを創業した(Photo01)。当初のCEOはFaggin氏が務めている。

▲Photo01:Computer History Museumの2009 Fellows Awardにおける撮影。出典はWikipedia。CC 4.0に従って引用

Z80の大成功

最初に設計したZ80は、Intel 8080とかなりの部分で命令互換ながら若干高速で、電源なども便利(+5Vの単一電源。8080は+5V/-5V/+12Vが必要だった)などの理由により、8080と同じくらい売れた(というか、生涯を通しての生産数をOEMやセカンドソース、デッドコピー類まで全部加味すれば恐らく8080を遥かに超えた)製品であり、Zilogを大きく飛躍させる原動力になった。

今でもZ80コアはASICの中に組み込まれる形で製造されており、今なおZilogにライセンス収入をもたらしている(流石に額は少なくなっているが)。ちなみにIntel 4004を設計した嶋正利氏も1975年にはZilogに参加、Z80の主任設計者として腕をふるった。

Zilogの紆余曲折

もっともその成功とは裏腹に、会社の経営そのものはあんまり順調とは言えなかった。1975年2月にZ80の設計を開始、1976年3月に完成して製造に廻し、しばらくはセカンドソース製品の検証などを行った後でZ8000の設計に取り掛かるのだが、この時期同社はまだ非上場企業であり、様々なファンドなどから資金を調達していた。

この時期に同社に出資して51%の株を獲得、同社の支配権を握ったのがExxon Enterprisesである。石油会社であるExxonの子会社で、この投資をきっかけに半導体業界に参入することを目論んでいた格好だ。

このExxonの支配下にあった時代はいろいろ大変だったらしい。Computer History Museumに、"Zilog Oral History Panel on the Founding of the Company and the Development of the Z80 Microprocessor"という記録が残っている。これはFaggin氏とUngermann氏、嶋氏の3人にZ80開発前後のインタビューを行ったもの(このインタビューアーが故Michael Slater氏という辺りがまた趣が深いのだが、それはともかくとして)であるが、Faggin氏とUngermann氏は共に会社経営の経験が無く、またZilogの取締役会は(当時Exxon EnterprisesのEVPだった)Ben Sykes氏の言いなりになっていたそうだ。

そしてExxon Enterprisesの興味は、「Zilogを如何にExxon帝国の一員として取り込むかだった」(Faggin氏の視点)のだそうで、これは自由にプロセッサを設計したいと思う2人の創業者の意向とはかなり異なるものだった。結果、Ungermann氏は自身の持ち株をExxon Enterprisesに売却、1978年にはZilogを去っている(Faggin氏は1984年に2つ目の会社であるCommunication CoSystemを創業するまでZilogに在籍していた)。

最終的に1980年、ZilogはExxonの子会社になった。ただその後1989年に、GI(General Instruments)から引き抜かれてZilogのCEOを務めていたEdgar Sack氏によりMBO(Management Buy Out)が行われ、Exxon子会社から脱却する。1991年にはIPOも果たした。

ところが1998年には今度はTPG(Texas Pacific Group)という投資会社に買収され、Sack氏は引退。代わりにLucent TechnologyでIP部門の社長を務めていたCurtis Crawford博士がCEOに就任する。Crawford博士は32bitのCommunication Processorに会社のフォーカスを変更するものの、途中でCEOがOn SemiconductorでCOOを務めていたJim Thorburn氏に代わる。

ただ2000年のインターネットバブル崩壊の影響もあり、2001年12月にChapter 11(会社更生法)リスト入りし、ここで会社の方針を再び8/16bit MCUのマーケットに切り替えて翌年4月にChapter 11から脱却。2007年には8200万ドルの売上を記録する程度まで復活する。

その2007年にCEOがIntelのFlash Memory Businessの副社長兼General ManagerだったDarin Billerbeck氏に交代する。ただBillerbeck氏の時代に売り上げは再び減速。2009年2月にはIXYS Corporationに買収され、同社の子会社となる。

しかしそのIXYS Corporationは2017年にLittelfuse Inc.に買収されたことで、現在はLittelfuseの子会社として現存している( https://www.zilog.com )。

まぁそんな訳でZ80やその派生型コアは現在も愛されている(?)訳だが、そのZilogの足を引っ張ったのがZ8000とZ80000/Z800である。Z80000/Z800に至っては出荷する前にキャンセルされており、何れも失敗作として名前が轟いている(??)気もするので、「マイナー」の枠には当てはまらないかもしれないが、この3つをご紹介したいと思う。

Z8000の誕生

Z8000は、Z80の設計が終わった段階で開発が始まった16bitプロセッサである。

設計は1977年頃にスタートし、1979年8月に発表された。何でこの時点でZ800ではなくZ8000にしたのかは定かではない(Z800はもっと後に設計がスタートした)が、そもそも16bitコアを設計するにあたり、Faggin氏は次世代は16bitの時代になると考えており(これは8086の成功を見ても正しかった)、ただしZ80をそのまま16bit拡張することには否定的だった(これは結果から言えば間違っていたと思う)。

ただしFaggin氏は16bitプロセッサの設計を行う自信が無く、また当時Zilogは(自身らを含め)11人の会社だったので、他の人間に振ることもできなかった。そこでAmdahl(IBMのメインフレーム互換のシステムを提供していた会社:富士通がかなりテコ入れというか支援をしていた)で470/V6というシステムのアーキテクトをしていたBernard Peuto博士を招聘し、12番目の社員としてZ8000のアーキテクトを任せる。物理設計はZ80に続き嶋氏が担当した。

さてそのZ8000、実際には23bitの物理アドレスをサポートするZ8001と16bitのZ8002の2つがあるが、内部構造は実に素直というか、奇をてらったところのない構造である(Photo02)。

▲Photo02:ZilogのZ8000 CPU User's Reference Manualより。メモリのRefreshコントローラが内蔵されているのがあまり類を見ないが、これはZ80からの伝統というか、Z80で好評だったのでZ8000にも入れましたという感じだ

命令セットそのものは先に述べたようにZ80の16bit拡張にするつもりがそもそも無かった、ということでZ80との互換性はない。特に違うのがRegisterの構造で、Z80は8080上位互換ということでAF/BC/DE/HLという4つの16bit Registerと、これと同じ構造を持つAlternate Register(ここが8080に対するZ80の拡張ポイント)、それとIndex RegisterやPC、Status/Interrupt/Refresh Countの3種類の拡張レジスタ(これらは8bit)からなるが、Z8000ではR0~R15までの16個の汎用レジスタ(うちR14はStack Pointer Segment、R15はStack Pointer Offset)とStatus Register、PCから構成される。このうちPCだけは最初から32bit拡張である。

またR0~R15は単独だと16bit×16構成だが、これを組み合わせて32bit×8構成はまだしも、64bit×4として使うことも可能なのは(SIMD用のレジスタは兎も角汎用レジスタとしては)ちょっと珍しい。

Addressing Modeも、Z80は8080が持っていたRegister/Immediate/Indirect Registerの3つ(+Extend)にIndexを加えた程度で、あとはModified Page ZeroとかRelative、Bit Addressingなどが用意されるが、基本それほど多くない。これはZ8000にも引き継がれており、Extendという指定が無くなり、またModified Page ZeroやBit Addressingが省かれ、代わりにBase Address/Base Indexが追加されたが、大きく見ればそうZ80とは変わらない。

先にPCが32bitと書いたが、Z8001は23bit Addressになる関係で7bitのSegmentと16bitのOffsetから構成される(Z8002は16bit AddressなのでSegment無し)。Segmentといっても8086のように、4bitだけずらして重ねるという(後々まで恨まれることになった)実装ではなく、純粋に23bitを7bitと16bitに分けた格好だ。

このあたりの違いがあるので、Addressing Modeが概ね同じといってもプログラムそのものは明確に変わる格好になる。

命令セットも同じで、Z80の命令セットが大別して、

・Load and Exchange
・Block Transfer and Search
・Arithmetic and Logical
・Rotate and Shift
・Bit Manipulation (Set, Reset, Test)
・Jump, Call, and Return
・Input/Output
・Basic CPU Control

の8つに分類される(この分類はZilogのZ80 CPU Users Manualに拠った)が、Z8000はこれにExtended Instructionsが加わった程度だ。

命令グループは同じでも、命令そのものは大分違っており、高級言語はともかくアセンブラレベルでの移植はちょっと骨である。あとExtended InstructionsはZ80には全くない概念である。Z8000ではCPUの外部にEPU(Extended Processing Unit)を接続することができる。要するにアクセラレータで、後で登場する予定で結局出なかったFPUもその一つだが、他にもいろいろ計画はあった。

同社はこれをEPA(Extended Processing Architecture)と称している。で、特定のOp CodeがこのEPUの為に確保されており、CPU Flagの中のEPA bitを立てるとその特定のOp Codeから始まる命令は通常のFetchを行った後でEPUに転送される仕組みになっている。

ちなみにZ8000、内部のパイプライン化は実装されていないが、命令/データのFetchと実行をオーバーラップさせる仕組みは入っており、これで実効性能の強化を狙っている(Photo03)。

▲Photo03:オーバーラップといってもこんな感じで、なので毎サイクル実行が行われる訳では無いが、それでもオーバーラップしないよりはマシである

また物理実装ではMicrocodeを使わずに全てWired Logicで実装して性能向上を実現した。性能がどの程度か?というのは不明だが、1983年1月に出版されたByte Magazine Vol 08 Number 01での数字では、Byte Sieve(ふるい分けベンチマーク)の実行結果(P292~P326)を見ると、

Z8000 5.5MHz: 1.1sec(アセンブラ)/1.97sec(C)
Z80 4MHz: 6.8sec(アセンブラ)
MOS 6502 1MHz: 13.9sec(アセンブラ)
MC6809(動作周波数不明): 5.1sec(アセンブラ)
i8086 8MHz: 1.9sec(アセンブラ)/2.8sec(C)
i8088 5MHz: 4.0sec(アセンブラ)

となっており、かなり高速であることが示されている。ちなみにIBMの3033とかだと0.0078sec(アセンブラ)だからちょっと手が出ないが、VAX-11/780だと1.42sec(C)/1.45sec(Fortran)といった数字で、つまりZ8001はちょっとしたオフコン並みの性能ということになる。

こうした性能の高さも相まって、ZilogとしてはZ8001をMPUの、Z8002をMCUのマーケットでそれなりにシェアを取れると考えたようだ。

Z8002の方はそれほど細工をしなくてもそのまま市場に出しても行けるだろうが、Z8001の方はMPUのマーケットなのでOSのサポートを行えるようなハードウェアが必要になる。

まず最初に提供されたのはMMUであるZ8010で、これを利用することでメモリアドレスを24bit(16MB)まで拡張できた。ただこちらはZ8001のリリースから9カ月ほど遅れての提供開始となっている。

また、Z8001/Z8002に続いて、これに仮想記憶のサポートを追加したZ8003/Z8004もリリース。さらにこのZ8003/Z8004に合わせてMMUのZ8015もリリースされている。Z8015ではSegmentを7bitから12bit(つまりシステム全体では28bitアドレス)に拡張し、大規模なシステムも構築できるようにした。

それだけでなく、自身でZ8000をベースにしたSystem 8000というミニコンシステムを提供した(Photo04)。

▲Photo04:Zilog System 8000 Hardware Reference Manualより。外形寸法は173.6cm×56.6cm×70.9cmと、デスクサイドサイズ。重量はおよそ400lb(182Kg)だそうだ

最大で4台のHDDと4台のテープカートリッジドライブ、ECC保護付きのメモリ4MB、それとSSB(Secondary Serial Boards)経由で最大24のターミナルを接続可能で、ZEUS(ZilogバージョンのUNIX)が稼働した。他にもEAW(Elektro-Apparate-Werke)、Exxon、Olivetti、Onyx System、Plexus Industriesといったベンダーが1980年代にZ8000ベースのシステムを提供している。

ただこれが売れたか?というと、全然駄目だった。

最速16bit CPUだったはずが……

Z8001/Z8002は1979年に発売され、確かにこの時点では最速の16bit CPUであった。ただし1980年にはMotorolaがMC68000を発表。1982年にはIntelの80286も登場している。

先ほどのByte Sieveの結果で言えば、8MHz駆動のMC68000は0.49秒で、Z8000の倍の速度である。1982年には12.5MHz版も投入され、最終的には20MHzまで動作周波数が上がった。80286の方は先の記事には数字が入っていないが、Intelが1992年に出したiAPX 186, 286 Benchmark Report(Photo05)によれば8MHzの80286で0.517秒(アセンブラ)/1.14秒(C)とこちらもZ8000より遥かに高速で、しかも80286も最終的に25MHz駆動まで達している。

▲Photo05:昔はIntelもこういうデータを出していた。ちなみにこの次のページはEDN Benchmarkの結果が出ているが、7種類のベンチマークを実施し、いずれの結果も80286はZ8002よりも少ないClock数で処理できる、としている

すぐにより高速動作が可能なZ8000をZilogが市場投入できればまた話が変わったのだろうが、10MHz版のZ8001/Z8002がリリースされたのは1985年のことで、ここで致命的な遅れを取ることになったし、さらに高速化する競合製品には及ばなかった。

こうした状況は、既に1980年にある程度明確になっていた。Z8000はAMDやシャープなどがSecond Source契約を結んでいるが、そのAMDはZ8000の顧客を見つけることをほぼ放棄した。Tim Jackson著のInside Intelによれば、当時AMDのCEOだったJerry Sanders氏が1980年の秋、VPのTom Skornia氏に「I'm making the wrong part.」(我々は間違った製品を手に入れてしまった)と語ったとしている(Chapter 21の最後)。

性能もさることながら、ソフトウェアとハードウェアの両面で、Z8000はまるでZ80と互換性が無かったのが最大の理由である。このあたりは、Intel 8085とバスの互換性を保った上に、ソフトウェア互換性もあった8088を提供したことでIBM PCの採用を勝ち取ったIntelと対照的であった。

Zilogはこれに続き、Z8000を32bit拡張したZ80000を1984年に発表する。こちらはZ8000とソフトウェア互換性があるという触れ込みだったが、Z80との互換性は無く、最終的に開発は中止されてしまう。ただしそのZ80000の製造プロセスをCMOSに変更したのがZ320で、こちらは1988年に登場した(Photo06)。

▲Photo06:1988年に出されたPreliminary Product Specification。EPAをサポートするあたりもZ8000と同じ

ただその前年である1987年にIntelは80386を、MotorolaはMC68030をリリースしており、最大でも10MHz駆動だったZ320が性能で競合するのはあまりに厳しかった。あとZ8000/Z80000/Z320はいずれもFPUは搭載しておらず、これは外付けでZ8070というチップが提供される予定だった(Photo07)が、こちらも量産開始前に開発中止になっており、これもZ8000/Z80000/Z320が選ばれない一因となった。

▲Photo07:Zilogの1983-1984年のComponents Databook。この時点ではまだ生産予定だった。Z800/Z8000/Z80000の全てで利用可能。ただ32bitまでだし、動作周波数も10MHz止まりだった。量産しても、どの程度需要があったかは謎である

これらとは別に、ZilogはZ800を1983年に発表する(Photo08)。

▲Photo08:これも出典はPhoto07と同じく。ここでは1984年出荷予定とされていたが、後に1985年出荷予定となり、最後はキャンセルされた

Z80との互換性を切り捨てたのがZ8001/Z8002の敗因だと気が付いたのか、こちらはZ80とのバイナリ互換を保った形の製品で、しかも最大25MHzまで動作周波数を引き上げ可能だった。これを1979年に出していれば……というのはもはや意味のない仮定であろう。

こちらも1987年にCMOSベースでZ280として最終的に出荷されるが、この頃にはもう競合が山ほどあった&より高速なZ80を必要とするユーザーは既に他のソリューションに乗り換えていたから、やはり売れ行きは宜しくなかった。

ここで冒頭のExxonの話に戻る。1985年までにExxon(とExxon Enterprises)は合計で10億ドルの資金をZilogに投じ、ところがZ8000/Z80000の売れ行きはその投資を回収するには程遠かった。

結局Exxonは損切りを決断し、ZilogをSack氏及びWarburg Pincusという投資会社に売却してZilogから手を引く。そして2001年のChapter 11入りをきっかけにZ8000/Z80000の製品ラインは事実上放棄され、以後はZ80をベースとしたビジネスに転換することになった。

互換性の切り捨て、それと性能向上が進まなかった両方がZ8000とZ80000にとどめを刺した。Z800は出るのが遅すぎた。普通ならこれだけ失敗していればもう会社が無さそうなのに、ちゃんといまだに残っているあたりは、それだけZ80をはじめとするコアに価値があると認められ、実際に使われているからということだろう。

《大原雄介》

大原雄介

猫に傅くために原稿を書いて日銭を稼いでいる毎日。元は組み込み系のエンジニアだったのに、もうずいぶん遠い所まで来てしまった。

特集

BECOME A MEMBER

『テクノエッジ アルファ』会員募集中

最新テック・ガジェット情報コミュニティ『テクノエッジ アルファ』を開設しました。会員専用Discrodサーバ参加権やイベント招待、会員限定コンテンツなど特典多数です。