Re: AP-67 82C37 Application Note




Bob Masta wrote:

OTOH, CPUs are usually much faster than the RAM, so DMA-cycles may
not be any faster than REP:MOVS and the CPU cannot do very much
during it anyway, so the question is: why ?

As I recall, the original 8237 and 82C37 were limited to 5 MHz, which
was fine on the 4.88 MHz IBM PC. But then the AT came out with a
faster bus (first 6, then 8 MHz) and DMA had to be throttled back to
half-speed in order to stay under 5 MHz. Data acquisition cards that
had previously used DMA for I/O now found that string instructions
were faster.

Yes, my first AT (rare but still used for 5.25"->3.5") got a 4.15 MHz
RAM+bus, while the CPU runs at the 'high rate' of 10/12 MHz :)
But all I/O-peripherals, except VGA seem to be limited to 1 MHz.

Don't know how the speeds of the 8237 family might have increased over
the intervening decades.

Dunno either, I think they became part of chip-sets now and may have
got the same speed as the rest of the chip.
Many time passed since I designed hardware with discrete ICs,
FPGA and ASIC become faster on an almost daily base ...
__
wolfgang


.



Relevant Pages

  • Re: A simple question about DMA, please help me.
    ... held by the DMA controller and the CPU is set idle until this transfer ... memory to fetch instructions while the DMA transfer is continuing. ... The PCI bus changed that -- it eliminated the separate lines for each ...
    (comp.lang.asm.x86)
  • Re: Volatile variables
    ... I/O methods ("DMA" and the like) that completely bypass the CPU. ... then DMA bypasses the on-chip cache. ... memory. ...
    (comp.lang.c)
  • Re: performance problem
    ... DMA is enabled on all drives. ... USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND ... > problematic daemon running. ...
    (Debian-User)
  • PROBLEM: DMA over CPU" memory leak in Kernel 2.6.8.1
    ... "DMA over CPU" memory leak if I burn Audio-CDs ... d0000000-dfffffff: PCI Bus #01 ...
    (Linux-Kernel)
  • Re: Understanding DMA
    ... > What I understand about DMA is that the CPU is idle during DMA cycles. ... > 'offloading' the data transfer to the DMA controller if the CPU cant ...
    (comp.arch.embedded)