[comp.protocols.tcp-ip.ibmpc] Western Digital board

phil@amdcad.AMD.COM (Phil Ngai) (05/10/88)

I was looking at the WD Ethernet literature and they make a big deal
out of NOT having DMA. They claim dual ported memory makes system
configuration easier (there are only a few DMA channels and allocating
them is hard), and that the strings instructions on ATs is faster
anyway. They point out the 286 on an AT beats the 186 in Excelan etc
style boards. 

Any comments on this?

I was quoted a price of $207...
-- 
Make Japan the 51st state!

I speak for myself, not the company.
Phil Ngai, {ucbvax,decwrl,allegra}!amdcad!phil or phil@amd.com

ROMKEY@XX.LCS.MIT.EDU (John Romkey) (05/10/88)

Western Digital's claims, re: speed on an AT and ease of configuration,
are basically correct.

The AT's DMA controller runs slower than the PC's, because (I think) it
loses some cycles since you've got a second controller cascaded with it.
The 286 string instructions are a lot faster. Plus, since it's memory mapped,
they're not JUST 286 string instructions; the whole 80x86 line has them.

On the other hand, it's also difficult to deal with mapping in memory when
you've got who knows what random EMS memory and EGA's and BIOS extensions and
whatever floating around in your physical address space.
					- john
-------

jas@proteon.COM ("John A. Shriver") (05/10/88)

Yes, AT DMA is slow as a dog.  The glue logic between the 8237 DMAC,
which is an 8 bit device, and the 16-bit bus, is a very slow kludge.
16-bit DMA using the second DMAC is somewhat better, and boards that
take over the bus and do their own DMA are much better.  However,
doing either of these limits your board to use in AT's, which dealers
don't like.

What is nice is that an AT can move memory from one place to anther
incredibly fast using string moves.  (These are 286-only
instructions).  It blows away most DMA implmentations (no arbitration
delays).  Since the CPU is essentially halted during DMA anyways, why
not let it do the copy.

The tradeoffs are probably different on the MicroChannel in PS/2's.

ddp+@ANDREW.CMU.EDU (Drew Daniel Perkins) (05/11/88)

Where did you get that price quote from?  Name, address, etc?  I'd like to get
a couple of the boards.

Drew

Philip Prindeville@UDEL.EDU, philipp@larry.mcrcim.mcgill.EDU (05/11/88)

Well, my experience on some of the memory mapped boards has been that
it is indeed efficient.  One of the very high performance serial boards
(1.5mbps) that I am working with has 512K of memory, of which the top
256k is reachable (as 4x16kb windows).  In the CMU PC/IP I keep the
packet buffers there, and never have to do any copying.  It is _very_
fast (almost 90% line utilization).  I was working with a few ARCNET
boards some months ago, and they were also memory mapped.  It does make
for faster copies (if they are 2 wait states or less) than DMA.  Problem
was that they could only hold 4 packets, so you had to build your packets
and then copy them.  Sigh.

-Philip

dougm@ico.ISC.COM (Doug McCallum) (05/11/88)

In article <21523@amdcad.AMD.COM> phil@amdcad.AMD.COM (Phil Ngai) writes:
>
>I was looking at the WD Ethernet literature and they make a big deal
>out of NOT having DMA. They claim dual ported memory makes system
...
>I was quoted a price of $207...

I've been using one for quite a while now and find it a nice, fast ethernet
interface.  The lack of DMA hasn't appeared to hurt performance any, but
then a 386/AT is pretty fast at moving the bytes off of the board.

The WD board is definitely one of the price/performance leaders in this
class of board.  Their ethernet board can frequently be found (as in the
price you quoted) in the same range as a lot of slow interfaces or other 
vendor's Starlan versions of an ethernet board.  WD also has Starlan for
what its worth.

There was some discussion some time back about the AT DMA controller being
slower than the string move instructions of a 286.  If that is the case,
the WD's approach would be better.  Several other AT ethernet controllers
also use the shared memory approach (MICOM/Interlan NI5210 for one).

		Doug McCallum
		Interactive Systems Corp.
		dougm@ico.isc.com

jbvb@VAX.FTP.COM (James Van Bokkelen) (05/11/88)

In my experience, shared memory is a *lot* faster than DMA on an AT.  The
five fastest boards we support all use shared memory.  Of course, Excelan
uses shared memory, too, but the classic problem with outboard protocol
implementations is that they are complicated to talk to.  This is likely
to eat up all the gains from using two processors, and then some.

W-D does have a slight edge on some other cards, in that their shared memory
address is set by software: only the interrupt vector and I/O address are
set via jumpers.  With PC/TCP, the WD8003 is right up there with Interlan's
NI5210 and 3Com's 3C523 (Etherlink-MC) for speed.

James VanBokkelen
FTP Software Inc.

karl@trwind.ind.trw.COM (Karl Auerbach) (05/11/88)

One thing to watch out for with shared memory boards -- a number of
AT clones do not honor the I/O CH RDY line on the bus.  This signal
is used by the memory to hold-off the processor for a little while.
This is typically necessary when the on-board hardware is using its
port into the shared memory.  The consequence of not honoring I/O CH RDY
is that the AT processor can pick up bad data because it fails to
wait when told to do so.

To build a shared memory board that does not have sensitivity to 
machines with this "feature" requires that the shared memory be
essentially zero wait, which is increasingly difficult as machines
get faster and faster and as LAN controller chips become more like
I/O channels.  Zero wait tends to imply that the raw memory speed
is enough to satisfy both the LAN controller and the PC procesor
simultaneously -- in other words we're talking about expensive,
probably static, memory.

~I hope the folks who clone micro-channels do a better job than those
who built clone AT buses.

				--karl--

ROMKEY@XX.LCS.MIT.EDU (John Romkey) (05/12/88)

The Western Digital board only has 8K of memory on it; I think it uses a
single chip static RAM. I've heard from sources outside of WD, though, that
it's 2 wait state memory.
				- john
-------

karn@thumper.bellcore.com (Phil R. Karn) (05/12/88)

> I was looking at the WD Ethernet literature and they make a big deal
> out of NOT having DMA...

I agree. I haven't written a driver for the WD board, but I have for the
3C501, which provides a choice of using a "DMA" facility to load the
buffer or an auto-incrementing window into the board's buffer memory
that is accessed through an I/O port.  On the 286, the INS/OUTS
instructions really move data -- 4 clock cycles per byte (or word,
depending on the instruction), after an initial startup of 5 clocks. 
Some boards simply can't keep up with this instruction on the faster
ATs.

Note that even if you use DMA, it's not inherently "faster" than direct
I/O when dealing with very fast (bus speed) transfers. Even though the
CPU is theoretically able to do other things while the DMA operation
runs, it will be slowed by heavy bus contention. And just as it's
getting ready to do something else, it'll get the DMA completion
interrupt.  

So I've never seen any reason to bother with the 3C501's "DMA" feature.
(Needless to say, it's also harder to use than the I/O copy). Even
though the PC/XT lacks INS/OUTS, you can still move data pretty fast
through an I/O port with an unwound assembler loop. Or you can replace
your 8088 with a V20, which does have INS/OUTS.

As far as I'm concerned, the PC might as well not even have DMA.  It's a
shame, because it would be very useful with medium speed transfers
(e.g., with HDLC packet radio interfaces operating in the
tens-of-kilobits range).  These peripherals are too fast for
one-byte-per-interrupt operation, but are not so fast that the processor
can easily afford to busy wait with interrupts disabled (to prevent lost
data) during each transfer.  So once again people will have to circumvent
the PC's failings with yet more hardware (buffering, etc) on
specially-designed peripheral cards. Sigh.

Phil

jbvb@VAX.FTP.COM (James Van Bokkelen) (05/12/88)

The WD8003 has a jumper on it which sets how many wait states the board
generates.  They recommend one setting for 6Mhz machines, another for
anything faster.  I have not yet encountered a clone that either the
WD8003 or the NI5210 won't run in, although we do own a number on which
the I/O CH RDY line doesn't behave as it does on IBM machines.

James VanBokkelen
FTP Software Inc.

RAF@NIHCU.BITNET (Roger Fajman) (05/15/88)

> Note that even if you use DMA, it's not inherently "faster" than direct
> I/O when dealing with very fast (bus speed) transfers. Even though the
> CPU is theoretically able to do other things while the DMA operation
> runs, it will be slowed by heavy bus contention. And just as it's
> getting ready to do something else, it'll get the DMA completion
> interrupt.

Is this true of machines like the Compaq 386/20?