The original UART chip shipped with the IBM personal computer was the 8250. This chip was limited to 9600 bps maximum rate. It was replaced with the 16450 which had the same architecture as the 8250 but has a higher maximum bps specification. Both of the chips only have a one byte FIFO/buffer.
The 16550 has a 16-byte FIFO, 16650 has a 32-byte FIFO, 16750 has a 64-byte FIFO and the 16950 has a 128-byte FIFO. When operating under DOS at speeds below 9600 bps the 16450 should provide satisfactory performance. When operating under any Windows or other multitasking operating system, a 16450 will be limited to about 1200 or 2400 bps. Any of todays high-speed modems require more than a 16450 UART can offer even when running under DOS.
A quick look at the performance requirements at high bps rates shows why the 16, 32, 64 or 128 byte FIFO is a necessity. The Microsoft specification for a DOS system requires that interrupts not be disabled for more than 1 millisecond at a time. Some hard disk drives and video controllers violate this specification. 9600 bps will deliver a character approximately every millisecond, so a 1 byte FIFO should be sufficient at this rate on a DOS system which meets the maximum interrupt disable timing. Rates above this may receive a new character before the old one has been fetched, and thus the old character will be lost. This is referred to as an overrun error and results in one or more lost characters. (With error correcting modems, any lost characters will be retransmitted, so you won't see the lost characters, it will just slow the connection.)
A 16 byte FIFO may not sound like much, but it allows up to 16 characters to be received before the computer has to service the interrupt. This increases the maximum bps rate the computer can process reliably from 9600 to 153,000 bps if it has a 1 millisecond interrupt dead time. A 32 byte FIFO increases the maximum rate to over 300,000 bps. A second benefit to having a FIFO is that the computer only has to service about 8 to 12% as many interrupts, allowing more CPU time for updating the screen, or doing other chores. Thus the computer's responses will improve as well.
Please remember that whatever speed you wish to communicate, the peripheral
you are hooking up has to support it.
For technical specifications on the 16550 UART click here.