Z8000は特権モードを搭載するも主流になれず

1979年発表
Zilog Z8000
Zilog Z8000
AI生成コンテンツ / AI-generated contents
Z8000 は、ザイログ が1979年(昭和54年)に発表した16ビットCPUである。Z80 の設計に携わった 嶋正利 が論理・物理設計を担当したが、Z80とのバイナリレベルの互換性はない。
セグメント方式で8Mバイトまで拡張できるZ8001 と、組み込み向けで64Kバイトに限られるZ8002 の2種類があり、Intel 8086(1978年)とMC68000(1979年)のちょうど中間の時期に登場した。

目次

Z8000の開発

Z8000のダイ写真
Z8000のダイ写真
Z80 の大ヒットに続き、ザイログ は16ビットCPU「Z8000」の開発に着手した。アーキテクチャ設計をBernard Peuto が担当し、論理設計と物理設計は嶋正利 が数名のスタッフとともに行った。
Z8000シリーズは1979年(昭和54年)初めに登場し、Intel 8086(1978年4月)とMC68000(1979年9月)のちょうど中間にあたるタイミングでの発表となった。

Z80との対比

Z80 は8ビットのデータバスと64Kバイトのアドレス空間を持つCPUだった。これに対しZ8000は、16ビットのデータバスを備え、Z8001 ではセグメント方式により最大8Mバイトへとアドレス空間を大幅に拡張した。
Z80がインテル 8080 の上位互換として設計され、既存資産を活かして市場に浸透したのに対し、Z8000は新規設計のCPUとして、Z80とは別の市場(16ビット機・組み込み・UNIXサーバ)を切り拓こうとした点が対照的である。

レジスタ構成の柔軟さ

Z8000のレジスタ構成
Z8000のレジスタ構成
Z8000 のレジスタセットは、R0からR15までの16本の16ビット汎用レジスタからなる。これらは命令によって8・16・32・64ビットのレジスタとして柔軟に扱うことができ、32ビットとしては8個(RR0, RR2, RR4, RR6, RR8, RR10, RR12, RR14)、64ビットとしては4個(RQ0, RQ4, RQ8, RQ12)が利用できた。
レジスタは完全に汎用で直交性が高いが、R15はスタックポインタ、R14はスタックセグメントとして予約的に使われた。R8~R15はインデックスレジスタとしても使え、セグメントレジスタ+ポインタの意味を兼ねた。

Z8001とZ8002の違い

Z8001とZ8002
Z8001とZ8002
Z8001 は48ピンのパッケージで、7ビットのセグメント方式 レジスタを備え、64Kバイトのセグメントを最大128個、合計8Mバイトの論理アドレス空間を扱えた。コンピュータ本体向けの上位モデルである。
一方のZ8002 は40ピンで、セグメント機構を持たず、アドレス空間は64Kバイトに限られる。回路が単純で低コストなことから、組み込みシステムやゲーム基板向けに使われた。のちにCMOS版として、それぞれZ16C01Z16C02 も発売された。

Z80との互換性

Z8000はZ80 とバイナリレベルの互換性を持たず、命令セットも一新された。ただし、2本のレジスタを組み合わせて2倍幅のレジスタとして扱う考え方は、Z80の裏レジスタ構成などから着想を得ているとされる。
また、アセンブラレベルでの親しみやすさを保つため、R0~R7の8本の汎用レジスタは8ビット単位でも使用できるようにされていた。CP/M-80資産を活かすため、Z80エミュレーションを行う拡張カード(Trump Cardなど)も登場し、既存ソフトの延命に使われた。

MMUと特権モード

Z8010 MMU
Z8010 MMU
Z8001 は、外付けのZ8010(MMU)と組み合わせることで、セグメント方式の論理アドレスを実アドレスに変換し、アドレス空間を8Mバイトまで拡張できた。ただし、この専用チップが当初の発売時点では間に合わず、コストと複雑さの増加を招いた。
CPUにはユーザモードとスーパバイザモードからなる特権モード が備わり、OSのカーネルとアプリケーションを分離できた。国内の中央電子は、Z8010のバグを回避するためMMUを2個搭載したUNIXマシン「CEC8000」を1981年(昭和56年)に発売している。

DRAMリフレッシュ回路の内蔵

Z80 同様、Z8000もDRAM のリフレッシュ回路をCPU内部に内蔵していた。これにより、当時SRAM より安価なDRAM を周辺回路を追加せずに主記憶として使うことができ、設計者にとって魅力的な特徴のひとつだった。
しかし、こうした先進的な設計を備えていたにもかかわらず、Z8000は全体として十分な速度が出ず、エラッタ も散見されるなど、実装面での完成度の低さが後々まで足を引っ張ることになった。

採用例

ポールポジション
ポールポジション
AI生成コンテンツ / AI-generated contents
アーケードゲームでは、ナムコが1982年(昭和57年)に稼動を開始した「ポールポジション」が、セグメントを持たないZ8002 を2個搭載したことで知られる。
1980年代初めには、Z8000はグラフィック端末を備えたワークステーションというより、多数のシリアルポートでディスクやプリンタを共有する小規模サーバとして、デスクトップ型UNIXマシンによく使われた。
Onyx C8000
Onyx C8000
AI生成コンテンツ / AI-generated contents
1980年(昭和55年)1月公開の Onyx Systems 「C8000」は、シリアルポートを8個備えた初期のUNIXマルチユーザーシステムで、価格は25,000ドルだった。イタリアのOlivetti もM20・M30・M40・M50・M60シリーズにZ8000系を採用した。
ザイログ 自身も「System 8000」シリーズを発売し、Version 7 UNIX派生のOS「ZEUS」を搭載、RM CobolによってビジネスアプリケーションをすばやくZ8000へ移植できた。米AMDとシャープはセカンドソースとして製造を担った。

なぜ主流になれなかったのか

MC68000 がセグメント方式を使わず最大16Mバイトのフラットなメモリ空間を実現したのに対し、Z8001 のセグメント方式は複雑で扱いにくく、しかもMMU「Z8010」の発売遅延により、当初18カ月間は実質64Kバイトの制約下での利用を強いられた。
また、インテルは8086 向けに豊富な周辺チップ群を揃えて設計者を囲い込んだ。

決定的だったのは1980年(昭和55年)、IBMIBM PC のCPUに8088 を選んだことである。フェデリコ・ファジン は、ザイログ の親会社がエクソン だったことをIBMが警戒したためだと見ている。エクソンはIT分野でIBMの競合になる野心を持っていたからだ。
インテルが展開した「Crush作戦」と呼ばれる強力な販売キャンペーンも功を奏し、優れたアーキテクチャを持ちながら市場投入が遅れたZ8000は、x86ファミリの陰に埋もれていった。

後継・派生

Z8000の後継として、32ビット版のZ80000 が投入されたが、市場への影響は限定的だった。CMOS化されたZ16C00 シリーズも発売され、Z16C01・Z16C02がそれぞれZ8001・Z8002に相当する製品として供給が続けられた。
Z8000系は、軍事 規格MIL-STD-883 Class Bにも対応しており、TTLレベルで動作する堅牢さから、航空機など耐ノイズ性が求められる機器にも採用された。

主要スペック

項目 仕様
メーカー ザイログ
発表 1979年
データバス 16ビット
アドレスバス Z8001:セグメント方式(最大8MB) / Z8002:非セグメント(64KB)
レジスタ 16ビット汎用レジスタ×16本(8/16/32/64ビットで柔軟に使用可)
MMU Z8010(Z8001用、外付け)
動作モード ユーザモード/スーパバイザモード
パッケージ Z8001:48ピンDIP / Z8002:40ピンDIP
動作電圧 5V単一

CPUの歴史

発表年 メーカー CPU名 ビット数 最大クロック
1970年Garrett
AiResearch
MP944 (軍用)20bit375KHz
1971年インテル40044bit750KHz
1974年インテル80808bit3.125MHz
1975年モステクノロジーMOS 65028bit3MHz
1976年ザイログZ808bit20MHz
1978年インテル808616bit10MHz
1979年モトローラMC68098bit2MHz
1979年ザイログZ800016bit10MHz
1980年モトローラMC6800016bit20MHz
1983年NECV3016bit16MHz
1984年インテル8028616bit12MHz
1985年インテル8038632bit40MHz
1985年インテルi96032bit100MHz
1985年サン・マイクロシステムズSPARC32bit150MHz
1985年エイコーンARM132bit6MHz
1986年MIPSR200032bit15MHz
1987年ザイログZ28016bit12MHz
1987年モトローラMC6803032bit50MHz
1988年MIPSR300032bit40MHz
1989年インテル8048632bit100MHz
1989年インテルi86032bit50MHz
1990年モトローラMC6804032bit40MHz
1991年MIPSR400064bit200MHz
1992年DECAlpha 2106464bit200MHz
1993年IBM, モトローラ, ApplePowerPC 60132bit120MHz
1993年インテルPentium32bit300MHz
1994年IBM, モトローラ, ApplePowerPC 60332bit300MHz
1995年サイリックスCyrix Cx5x8632bit133MHz
1995年AMDAm5x8632bit160MHz
1995年サン・マイクロシステムズUltraSPARC64bit200MHz
1999年IBM, モトローラPowerPC G432bit1.67GHz
1999年AMDAthlon32bit2.33GHz
2000年インテルPentium 432bit3.8GHz
2001年インテルItanium64bit800MHz
2003年AMDOpteron64bit3.5GHz
2003年インテルPentium M32bit2.26GHz
2006年SCE,ソニー,IBM,東芝Cell64bit3.2GHz
2006年インテルCore Duo32bit2.33GHz
2006年インテルCore 2 Duo64bit3.33GHz
2008年インテルCore i9/i7/i5/i364bit5.8GHz
2017年AMDRyzen64bit5.7GHz
2020年AppleM1/M2/M3/M4/M564bit3.49GHz
2023年インテルCore Ultra 9 / 7 / 564bit5.1GHz

参考サイト

(この項おわり)
header