2016-08-13 23:34 — asano
Zilog Z80ファミリーのDMAコントローラです。
Z0841004PSC、DIPの4MHz版のZ80 DMAです。他ファミリーのDMAコントローラが大抵4ch内蔵しているのに対し、これはたったの1chしかない上に高価だったので、使われているところをあまり見ません。私も実際に回路設計やソフトウェア開発の経験はないです。
さてこれの資料を読んだとき(30年ぐらい前)はちょっと衝撃でした。それまで知っていたDMACというのはPC-8001にも使われていたIntel 8257で、DMA転送時にDMACはメモリアクセスのバスサイクルを発生し、同時にI/Oデバイスをこじ開けてメモリ-I/O間で直接転送する方式になっており、それが当然だと思っていたのです。それなのにこのZ80 DMAは2回のバスサイクル(リードとライト)を発生するなんてというわけです。この方式では転送レートは約半分になる代わりに、メモリ-メモリ間とかI/O-I/O間といった転送が可能になったり、I/OデバイスとDMACの結びつきを弱く出来るなどのメリットもあります。
この2つの方式、確か前者をシングルアドレスモード、後者をデュアルアドレスモードと呼んだと思います。有名な独立DMAC(CPU/MPU内蔵ではない)を表にしてみました。
Device | CH | SAM | DAM |
---|---|---|---|
Intel 8257 | 4 | Yes | No |
Intel 8237 | 4 | Yes | No |
Zilog Z80 DMA | 1 | No | Yes |
Motorola MC6844 | 4 | Yes | No |
Motorola MC68440 | 2 | Yes | Yes |
Motorola MC68450 | 4 | Yes | Yes |
参考文献・関連図書:
Z84C10データシート, Zilog.
"Z80 Family CPU Peripherals User Manual", Zilog.
関連項目:
広告:
コメントを追加