home *** CD-ROM | disk | FTP | other *** search
- Path: sparky!uunet!zaphod.mps.ohio-state.edu!news.acns.nwu.edu!nucsrl!ddsw1!gagme!n5ial!jim
- From: jim@n5ial.chi.il.us (Jim Graham)
- Newsgroups: comp.dcom.modems
- Subject: 14400 modems and 16550 UARTS (Problem with higher trf
- Distribution: world
- Message-ID: <722129127snx@n5ial.chi.il.us>
- References: <Bxsnqn.B6z@mudos.ann-arbor.mi.us>
- Date: Wed, 18 Nov 92 23:25:27 GMT
- Organization: Me? Organized? Hah! :-)
- Lines: 46
-
- In article <Bxsnqn.B6z@mudos.ann-arbor.mi.us> mju@mudos.ann-arbor.mi.us
- writes:
-
- > Were you having problems before with lowered throughput due to dropped
- > incoming characters? If not, then the buffers on a 16550 UART will do
- > absolutely nothing to increase your transfer speed.
-
- taken literally, the above is true....but there is more to it than
- just the above (and this bit isn't talked about as much here). see,
- the buffers are only the first part of what the 16550 buys you. the
- second part is a little thing you can do *WITH* those buffers, that
- being reducing the number of interrupts generated. remember that every
- time an interrupt is issued, the CPU has to stop what it's doing to
- service the interrupt. this doesn't happen instantly...there is a
- certain amount of time wasted when the CPU is changing tasks (context
- switching overhead).
-
- the 16550 can help reduce the number of interrupts required (assuming
- your software goes along with this) by allowing more than one character
- to be handled per interrupt. basically, you can tell the 16550 not to
- issue an interrupt until a certain number of characters are in the Rx
- FIFO (1, 4, 8, or 14). let's assume we set this to 8 characters. now,
- instead of every single incoming character causing an interrupt, the
- UART waits around until EITHER their are 8 characters in the Rx FIFO
- *OR* a certain amount of time has passed w/o an interrupt being issued
- since there was at least one character in the FIFO (in other words, it
- doesn't sit there like an idiot and wait forever).
-
- along with this, of course, your software has to know that it might be
- taking more than just one character for any interrupt it services.
-
- btw, this information is adapted right out of the National Semiconductor
- data sheets (Application Note 491, ``The NS16550A: UART Design and
- Application Considerations'').
-
- type at y'all later --- gotta go meet someone ASAP.
- --jim
-
- --
- #include <std_disclaimer.h> 73 DE N5IAL (/9)
- ------------------------------------------------------------------------------
- INTERNET: jim@n5ial.chi.il.us | grahj@gagme.chi.il.us | j.graham@ieee.org
- ICBM: 41.70N 87.63W UUCP: gagme!n5ial!jim@clout.chi.il.us
- AMATEUR RADIO: (unstable...back after I've moved) AMTOR SELCAL: NIAL
- ------------------------------------------------------------------------------
-
-