[comp.sys.amiga] Software-only network protocol standards, Again

bryan@geo-works.UUCP (Bryan Ford) (08/12/89)

In article <21047@cup.portal.com>, Thad P Floryan writes:
>Re: Bryan Ford's comments about UNIX "requiring" at least a 68020 ...
>
>Besides the Sun-2 (with a 68010 and custom MMU), we find:
>
>[several Unix machines with custom MMU's]

As I mentioned before, it was a bad assumption, I stand corrected, and I'm
sorry if it caused confusion.  However, this doesn't seem to have much to
do with my original question, about (relatively) high-speed networking in
software.  (By Relatively, I mean something that takes lots of the Amiga's
CPU time.) I've gotten more replies on my mostly unrelated folly than on
the networking thing itself.

Now, another question.  Which method would take the least amount of CPU (so
the local user doesn't 'lose' the system too much):  transmitting a packet
at a time, at the highest speed the hardware can handle (i.e.  280,000
bps), and disallowing multitasking in between characters, or transmitting
at a much slower speed, and using interrupts for each character?  Which
would provide better sustained throughput?

Thanks for your help,

				Bryan

--

     _______________________________________
   _/   Bryan Ford - bryan@geo-works.uucp   \_
 _/  ..!utah-cs!caeco!i-core!geo-works!bryan  \_
/ ..!uunet!iconsys!caeco!i-core!geo-works!bryan \
\_____________Author: Chroma Paint______________/

shadow@pawl.rpi.edu (Deven T. Corzine) (08/15/89)

On 11 Aug 89 18:48:49 GMT, bryan@geo-works.UUCP (Bryan Ford) said:

Bryan> Now, another question.  Which method would take the least
Bryan> amount of CPU (so the local user doesn't 'lose' the system too
Bryan> much): transmitting a packet at a time, at the highest speed
Bryan> the hardware can handle (i.e.  280,000 bps), and disallowing
Bryan> multitasking in between characters, or transmitting at a much
Bryan> slower speed, and using interrupts for each character?  Which
Bryan> would provide better sustained throughput?

My instinct is that the best solution is to disable multitasking, and
*maybe* interrupts, during a packet, and keeping the packet size
small.  If you disable interrupts, to keep near the recommended max of
250ms, you'd need to make the packet size about 10 bytes.  Too small
to be very useful, though you could do larger logical packets, and
send in bursts.  Assuming you can safely allow interrupts,
(questionable) you could Forbid() and send a 1K packet in about 1/30
of a second.  That, I see as reasonable.  In fact, just giving the
receiving task (if implemented as such) the highest priority in the
system, (say, 127) and the sending side a lower priority, but higher
than any compute-bound tasks, should get you reasonable performance.

Worth a try!  :-)

Deven
--
Deven T. Corzine        Internet:  deven@rpi.edu, shadow@pawl.rpi.edu
Snail:  2214 12th Street, Troy, NY 12180       Phone:  (518) 271-0750
Bitnet:  deven@rpitsmts, userfxb6@rpitsmts     UUCP:  uunet!rpi!deven
Simple things should be simple and complex things should be possible.