Zilog のZ80 は8ビットのパソコンで広く使われていて有名だ。Intel が8 ビットの8080 に対して16ビット8086 を用意したように、Zilog も16ビットのZ8000 を作っていたのだが、このチップはZ80 ほど色々な所で目にするとはいえない。

Z8000 シリーズはCPU と周辺回路のチップで構成されていて、CPU としては第1弾としてZ8001 とZ8002 がある。 Z8001 はセグメントに対応していて8 MBytes のアドレス空間が利用可能な48ピンのチップである一方、Z8002 はセグメント非対応なので64 KBytes のアドレス空間に制限される代わりにチップのピン数が40ピンで済むという機能の違いがある。 このページで紹介しているチップは、同機種のスペアナ2台が廃棄されているのを分解したところ出てきたもので、1台にZ8001 とZ8002 がペアで搭載されていた。 片方はAMD 製のZ8001ADC とZ8002ADC が搭載されていて、これらはセラミックパッケージで高級感がある。 もう片方は同じ基板にSHARP のLH8001AP, LH8002AP が載っていた。 これらはプラスチックパッケージで見つけたときの嬉しさはちょっと少ないかもしれない。 パソコンでは頻繁には見ないZ8000 シリーズのCPU だが、こういった組み込み系の装置を分解していれば出会えることもある。
Z8000 の中身はZ80 とか8080 とはあまり似ていなくて、その点なんとなく各所の雰囲気が8080 に似ている8086 とか、μPD8080AF互換モードを持っていたNEC V30 とは方向性が異なる。 無理にZ8000 がZ80 に似ている点を挙げるなら:
- I/Oアドレス空間がメモリアドレス空間と別。
- ビットセット、ビットクリアがある。あとBCDもある。
- DRAMリフレッシュに便利なカウンタがある。
くらいだろうか。
他の特徴は、
- GPR は16ビットが16本。 名前はR0, R1, ... R15。 アドレス指定にセグメントが要るときはRR14 でR14, R15 のペア、といった使い方になる。
- 命令形式は2オペランド。
- 命令長は1, 2, 3, または4ワード。
- System mode/Normal modeあり。
- 外部にコプロセッサ(Extended Processing Units; EPU) を接続する仕組みあり。
Z8001 はMMU を繋げられるようにはなっているものの、命令の途中から再開するような仕組みがなくて仮想メモリは実現できない。
たとえばZ8000 にはLoad Multiple (LDM) という最大16ワードをメモリとレジスタの間でやりとりする命令があるが、このLDM がページ境界を跨いでいたときに、ハンドラから戻る際常に次の命令から再開されてしまうので、うまく処理を戻せないという問題だ。
Z8001/Z8002 の後継のZ8003/Z8004 は仮想メモリのサポートが謳われていて、この点が改善されているようだ。
