From: Gregory O. Harp (harp@netcom.com)
Date: 09/26/92


From: harp@netcom.com (Gregory O. Harp)
Subject: Re: High speed modems
Date: Sat, 26 Sep 1992 06:15:15 GMT

furnish@ccwf.cc.utexas.edu (Geoffrey Furnish) writes:

>I would like to know about this too, if anyone has answers. I called
>Gateway and they tell me the Telepath uses the "Dual 450" chip, not
>a 16550.

They're probably referring to an ASIC of some type with a couple of
16450 clones on it. You want a 16550A's if you get a choice.

>OS/2 does reliable serial comm up to 115 kilobaud. I can do 19200 under
>OS/2 on a 386sx-16 with a 16450 WITHOUT _EVER_ LOSING A SINGLE CHAR. It
>is b/c of one thing: Hardware Handshaking. Under OS/2 I tell OS/2 with
>the mode command that I want to use cts/rts handshaking. Then I tell the
>modem, and that's all there is to it--I never drop a char.

Having never played with OS/2 I haven't tested the above. Since you
say you were using a modem in the above, can you be sure you were
pulling a solid 19.2K? Few if any modems actually achieve a constant
throughput of this speed. Setting the DTE/DCE rate to 19.2K doesn't
count. In fact, my DTE/DCE rate is always 38.4K no matter how fast my
modem is going across the phone line (because I like it that way ;) ).

In my opinion, the only really good way to test this is using a
null-modem connection and a constantly streaming transfer protcol like
ZModem. Then you still need to transfer a few megs just to be sure (I
was transferring a 7MB file back and forth in my tests).

Anyway, I have tested Linux with 16450s. On my 486DX running at 50Mhz
I can pull a reliable 38.4Kbps with my two serial ports null-modemed
together. I can _almost_ pull 57.6Kbps but not quite (several
characters get dropped). Of course, I'm having to handle twice the
interrupts of a normal transfer (since I'm sending and receiving on
the same machine).

Anyway, IMO, to realistically do anything over 38.4K on a Linux system
you need 16550A's. Note that in my tests I was using one of the
fastest available PC's you can buy and I wasn't really running
anything else. However, I have heard of people going faster on slower
PC's with 16550A's. The FIFO really makes difference, since interrupt
handling is where you run into trouble. Using a 16550A and reducing
the interrupt frequency to one 14th of what it would be when using a
16450 is a _very_ _significant_ reduction in the amount of work that
has to be done to maintain that data rate.

>Now I'm not going to say the _throughput_ is always that high. That, after
>all, is the whole point of handshaking. If the computer can't keep up
>for some reason, the flow is stemmed momentarily, etc. But I can set the
>modem for 19200, and never worry that I'm going to lose characters.

Right, but you're not actually pulling the throughput of 19.2K.

>I sure would like to be able to do this under Linux--and I know darn well
>it doesn't depend on having a 16550. The FIFO buffer in the 16550 may help
>out a lot in terms of reducing interupt frequency, etc, I believe that,
>but I know it is possible to do reliable high speed comm if you use hardware
>handshaking. OS/2 does it, therefore surely Linux could do it, no?

No. ;)

I'd really like to see OS/2 doing _real_ 115.2Kbaud I/O. It sounds
like your tests were "cheating" by using RTS/CTS to slow down the
throughput. If you're doing 115.2Kbps you should be transferring
11,520 bytes per second. If not, you're not actually going that
fast...

>Anyone who actually knows about this matter under Linux, please speak up.
>Tons of us out there would like to know the hard facts, not just more
>of this silly speculation which has been the majority of this thread so
>far.

IMVSO (In My Very Strong Opinion) the 16550A's FIFO is not only the
best solution, it may be the only one. Hardware handshaking simply
reduces the data rate to a manageable level. The FIFO allows the OS
to handle the higher data rates with no delays.

>Geoff Furnish
>furnish@dino.ph.utexas.edu

-- 
=================Greg=Harp================harp@netcom.com==================
       "Wide mouths with narrow minds can't accept your difference.
     Open season on new ideas -- they call it bad influence." -- B52s