2018-06-17 22:25 — asano
昔のプロセッサ誌を調べていたらZ80の面白い周辺LSIの紹介記事「Z80 GLU と Z80 SPCT」を見つけましたので、今回はこれについて書きたいと思います。現物を持っていないので写真は無しです。
まずはZ84C80, Z84C81 Z80 GLU(General Logic Unit)です。
これはよく使われる以下の機能をまとめたものです。
- クロック発振器
- DRAMコントローラ(アドレスのマルチプレクサも含む)
- ROM用のアドレスデコーダ
- メモリあるいはI/O用のアドレスデコーダ
- リセット回路・ウォッチドッグタイマ
- WAIT挿入回路
- Z8500系デバイスとのインターフェイス(Z84C80のみ)
- パワーダウンモードへの移行(Z84C80のみ)
- GPIO
一部のピンは共有になっているので同時に全てが使えるわけではありません。
これ以外にZ84C80ではメモリアクセスがコードなのかデータなのかを分離する機能も持っています。Z80の信号でそんなことどうして可能なのかと思いますが、CPUとは別に独自に命令デコードをしているみたいです。
RETI
のデコードはしていましたが、コード/データの分離のためには全命令をデコードする必要があるはずです。どうせならついでにスタックも分離してくれれば(8080はできる)良いのに。
一緒に紹介されていたもう一つがZ84C90 SPCT(Serial Parallel Counter Timer)です。
なんか聞いたことのある型番だと思ったらZ80 KIOと同じです。データシートにも「Z84C90 KIO Serial/Parallel Counter/Timer」とあり、念のためブロック図とピン配置図を比べてみましたが同じもののようですね。愛称だけ変更したのでしょう。
ついでにもう一つ超マイナーなZ80周辺LSIを紹介しましょう。これも昔プロセッサ誌で紹介されていたものです。
それがZenicのZEN1011P、Z80用のMMU(Memory Management Unit)です。
まず1MBの物理メモリ空間を4kBのページに分割して管理します。64kBの論理メモリ空間にこのページを配置するわけですが、この配置の仕方をセグメントと呼び4つ同時に定義することが出来ます。ソフトウェアからはこの4つのセグメントのどれを使うかをレジスタで指定します。DMA時にもMMUを使用可能でその場合はセグメント3が自動的に使われます。
各ページにはアクセス禁止・書込み禁止が設定でき、違反時には割り込みを発生します。WR信号をマスクする機能はありますが、Z80にはバスエラーのような機能は無いので仮想記憶を実現することは難しいと思いますね。
面白そうな石ではあるのですが...
発売元の株式会社ジーニックは現存しますが、会社沿革にもこのZEN1011Pは登場しません(IC型番は結構載っているのですが...)。データシートもありません。
ネット検索してみてもデータシートは発見できませんでした。
コメントを追加