home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #27 / NN_1992_27.iso / spool / comp / dcom / modems / 17054 < prev    next >
Encoding:
Text File  |  1992-11-19  |  2.7 KB  |  58 lines

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