[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: ZIP Chip Heartbreak
David Empson (dempson@atlantis.actrix.gen.nz) wrote:
: You hit the nail on the head with DMA being the problem, but you have
: the wrong idea about _why_ it is a problem.
: DMA compatibility has nothing to do with speed. The problem is that
: DMA works by controlling several signals available on the slots which
: cannot be detected by the microprocessor (they are handled by external
: circuitry). In a DMA cycle, a byte is transferred directly from
: memory to the slot peripheral (or vice versa) while the processor is
: disconnected from the bus.
: As a result of this, the ZIP doesn't see the memory access taking
: place, and cannot cache the data. If it has previously cached the
: memory area which you do a DMA READ into, subsequent accesses to that
: area will read the old (incorrect) data from the ZIP's cache. The end
: result is corrupted data, and usually a crash.
: To avoid this, you must either disable the ZIP or disable DMA on the
: SCSI card.
: This is only a problem with the ZIP Chip, Rocket Chip and Transwarp IIe
: (and probably older accelerators such as the Speed Demon).
: The ZIP GS and TransWarp GS are on a card, and have access to the slot
: signals that control DMA cycles, so they can detect and correctly
: handle them.
: In theory, the same could be said for IIe card-based accelerators such
: as the TransWarp IIe, but none of them implement DMA support.
I realize this is dreaming here but even though the CPU pins don't
receive the data accessed by a DMA device (I'm not so sure the thses
signals don't make it to the CPU pins, but never the less are not
supported by all //e accelerators) couldn't the CPU when it detects a DMA
signal (that I know makes it to the CPU!) just flush its cache? I know
you'ld have some speed loss. Just a thought.