Multiport Serial Boards: A Buyer's Guide
Marcio Saito, - April 2000

About this document
    This document explains some factors to consider when selecting a multiport serial card.
    Choosing the best solution is not simple. There are several aspects of a product that define its "performance". Some of those may or may not be important for your particular application. Service, technical support and cost are also important factors to consider.
    Multiport serial cards connect to the expansion slots in the host system (typically a PC) and provide multiple (8 or more) asynchronous serial interfaces. Modems, terminal adapters, dumb terminals and printers are examples of devices that can be connected to serial ports. This document focuses on multiport serial cards for systems based on the ISA and/or PCI bus architecture.
    We have made an attempt to keep the analysis as objective and technical as possible. Our purpose is to help you to make a responsible choice when selecting the right product for your application.

Serial Communication
   Serial Communication is a method of data transmission in which the bits of a data character are sequentially transmitted over a single channel. Serial communication can be synchronous (with an associated clock being transmitted along with the data) or asynchronous. In this document, we are focusing on asynchronous serial communication.
    Serial communication runs over a physical layer defined by a set of specifications known as RS-232.
    The RS-232 specifications define the communication between a DTE (Data Terminal Equipment, normally a computer or terminal) and a DCE (Data Communication Equipment, normally a modem). It has traditionally been used to connect terminals, printers and other serial devices to a computer over either modem connections (remotely, over telephone lines) or direct cables (locally, with a null-modem adapter). Serial communication can be half-duplex (only in one direction at a time) or full-duplex (in both directions at a time). In the past, some modems and communication devices were limited to half-duplex communication. Nowadays, almost all devices support full-duplex.
    The RS-232 signals used in asynchronous communication are: TxD (Transmit Data), RxD (Receive Data), Gnd (Signal Ground), DCD (Data Carrier Detect, indicates that the modem connection is established), RTS (Request to Send, used for reception flow control), CTS (Clear to Send, used for transmission flow control), DTR (Data Terminal Ready, indicates that the data terminal is ready, used to enable/hang-up the modem), DSR (Data Set Ready, indicates that the modem is ready) and RI (Ring Indicator, indicates that someone is trying to dial-in).
    Local terminals and printers can operate using only TxD, RxD and Gnd. A CTS connection may be required for HW flow control.
    Most of the modem applications require TxD, RxD, Gnd, RTS (used as reverse flow control signal), CTS, DTR and DCD signals. Very specific applications may require RI and DSR.
    The RS-232 interface defines communication parameters such as parity, number of bits per character, number of stop-bits and the baud-rate (which determines the speed of the line in bits per second).
    In a serial connection, the throughput is the rate of data passing through the communication channel. The maximum throughput is not necessarily the same as the RS-232 serial speed. The actual throughput depends on factors such as the overhead imposed by the communication protocol, the ability of the system to fully utilize the bandwidth provided by the communication channel, the limitations imposed by the data communication equipment (modem) and/or the communication line (phone system).
    The piece of hardware in charge of handling serial communication is the serial controller. The simplest and most common serial controller device is the UART (Universal Asynchronous Receiver/Transmitter). It is used in most of the PC standard serial ports and is also known by its chip identification numbers (8250, 16450, 16550, etc.).
    A multiport serial card has multiple serial controllers (one for each channel) and interfaces with the system bus (ISA or PCI). Some cards have on-board co-processor and/or buffers.
    The piece of software executing in the host operating system and interfacing directly with the serial hardware is the device driver.

 Multiport Serial Cards - Typical Applications
    The applications for serial cards include remote access servers, BBS systems, multi-user systems and other special applications.
    Remote Access Servers and BBSs
With the broad availability of analog phone lines, RS-232 connections became the most popular media to remotely connect personal computers to the LAN or to the Internet.

Multiuser Host Systems
A Multiuser Host System runs a multi-user operating system (typically a version of UNIX) and the application (typically a database) allowing users to access the centralized data and share the system resources from terminals connected by serial cables or modem connections.
    Serial ports can also be used to connect printers and other serial devices. Because these systems normally use low-speed terminals and the volume of data on the serial lines is low, throughput per line is not an issue. The following features are important in this case: operating system compatibility, expandability and support for high number of ports.
Special Applications
    Serial communication is also the most common interface used by data acquisition and process control applications. A custom-developed application running in the host exchanges data with sensors and actuators, printers, readers, terminals and displays. If the system uses a standard operating system, you should verify the existence of the appropriated drivers. Performance is normally not an issue. If a customized driver/application is needed, you should evaluate the vendor's ability to provide the technical support, software library and tools.

Before Buying a Multiport Serial Card
    There are several aspects to be considered when selecting the right multiport serial card:

Operating System and Application Compatibility
    All modern operating systems standardize the methods the applications use to access serial ports. Once the device driver for a particular adapter is installed, the application sees the serial port as a standard device and can access it using system calls that are independent from the underlying hardware. This is true for all flavors of UNIX, Linux and Windows.
    On those operating systems, application compatibility should be a concern. If you are running a native application and you have a device driver for that particular adapter, they work together.
    If the application runs in Linux or one of the BSD-derivatives, verify that the vendor supports the operating system. If the driver is included in the standard kernel distribution, there is not need to download additional files or install patches. This saves you time and trouble during the installation.
    In UNIX or Windows, verify whether the serial hardware vendor supports the platform or not and if it provides the necessary drivers in standard format.
    In MS-DOS the situation is different. Most of the applications specifically developed for DOS access the serial hardware directly. Because different serial adapters have different hardware architectures, those applications work only with standard UART-based serial ports (COM1, COM2, etc.). Some MS-DOS applications access serial hardware using standard interfaces. The most important of these standards are the INT14 and Fossil (used by BBS software).
    If the application is MS-DOS native and accesses the serial hardware directly, chances are that you are stuck with a dumb serial card.
    Developers of application that uses serial communication should use the standard system calls to access the serial ports. This way, the application is hardware independent. If there are very specific needs that require the development of a custom application, verify that the vendor can provide a set of libraries to access the board.
    When selecting a serial solution vendor, make sure it gives you a path for future number of ports and performance upgrade. Verify that the vendor supports the driver and that you get unlimited and responsive technical support.
   Performance: Throughput and CPU Overhead
    When we consider serial communication in a PC host, performance is the composition of two factors:

    Throughput is the maximum rate at which the board sends/receives data with no data loss.
   One factor that limits the throughput is the maximum serial speed supported (measured in bps and normally within the range 38.4 - 460.8 Kbps). It is important to remember that support to a given serial speed does not mean that the serial card or the system can handle that throughput in a continuous data flow. When throughput is different from serial speed, flow control is needed and there could be data loss.
    Another factor that limits the throughput is the buffering capacity of the board. When the serial port receives characters, it generates a request to the host CPU. The host CPU takes some time (interrupt latency) to respond to the request. If the serial device does not have enough buffering space, its FIFOs overflow and there is data loss. It is easy to see that the maximum throughput of a serial device depends not only on the serial board itself, but also on the host CPU load, number of ports, etc.
    "How many serial ports can I safely install in a system?"
   It is very difficult to answer to this question precisely.
    The higher is the host CPU power and the buffering capacity of the serial interface, the higher is the number of serial ports you can install. A more "intelligent" board (the concept of "intelligent" is better explained later) allows more serial ports in the same system.
    Remember that each serial port in the system means a potential additional user. Memory, CPU, disk space and other system resources need to be dimensioned to support the extra users.
    "Is FIFO size the only parameter to evaluate the performance of a serial card?"
   Besides the buffering capacity, hardware architecture and efficiency of the device driver heavily affects the functionality and performance of a serial card.
    A few examples:

    "How much throughput do I need?"
   To help you to estimate, here are some directions:

    Intelligent and Dumb Serial Cards
    In asynchronous communication each character is processed individually. This requires a lot of processing and is very time consuming. An "intelligent" serial adapter can relieve the host CPU in two ways: (1) by buffering data and minimizing the number of host CPU interventions (interrupts or poll cycles) or (2) by executing some of the tasks that would otherwise be executed by the host (such as flow control, character processing and buffer copy).
    If the serial card has buffering capacity, the host CPU receives fewer interrupts (or has to execute fewer poll cycles) to receive/transmit the same amount of data. On-board buffering capacity (a.k.a. FIFO) ranges from none to a few Kbytes and is very important to minimize CPU overhead and sustain throughput without data loss.
    Character processing was very important when connecting terminals to UNIX systems. Because most of the applications today do all the character processing and use the serial ports as "raw" data paths, character processing capabilities are no longer a major issue. But, still, intelligent cards can perform flow control and other functions and relieve the host CPU from these tasks.
    Other features such as bus master DMA capability and efficient hardware interface (wider data bus, for example) can help to improve the performance of a serial adapter.
    The first IBM-PC used a 8250 chip to control the serial ports. 16450, 16550 and 16650 are improved versions of the same basic serial chip. All these chips are generically known as UARTs (Universal Asynchronous Receiver/Transmitter) and are still used in the standard serial ports of PCs and in several multiport serial products.
    Because they integrate only basic serial functionality, boards that use UARTs to control the serial ports without any on-board co-processor assistance are called "non-intelligent", "standard" or "dumb" cards. Their performance is acceptable in low-traffic systems, but degrades quickly as the number of serial ports grows.
    The buffering capacity of UARTs ranges from 1 (8250) to 16 (16550) to 32 (16650) bytes per channel.
    Besides the low cost, another advantage of using dumb cards is that you normally do not need special device drivers. Almost any operating system that runs in a PC supports UART-based card without additional software.
    Several multiport cards are based on "RISC processors" or "custom ASICs". These boards offer better performance. They normally use a small RISC engine with fixed microcode to control the serial ports, buffer the data and execute minimum character processing functions. Buffering capacities range from a few bytes to about 1k characters.
    The advantage of using RISC-based cards is the higher performance for a similar price when compared to dumb boards. Their performance is limited in very high-throughput systems because they still have relatively small buffers and because the custom ASICs available in the market today are 8-bit devices designed for the ISA bus.
    In the past few years, serial boards with a dedicated co-processor, RAM memory and downloadable firmware lost space in the market to the more affordable RISC-based serial cards. But now, with serial speeds reaching levels not imaginable before and the increasing demand for high throughput connections, using high-end intelligent cards may be the only solution for demanding users.
    A high-end intelligent card has a full blown CPU acting as a co-processor and large amounts of on-board RAM. It typically uses 32-bit bus interface and transfer data efficiently to avoid congestion on the system bus. The downloadable firmware assures that evolution is possible.
    Selecting the Right Product
This item is a summarizes the aspects discussed in this chapter 2.
   For simplicity, we divide serial cards in three classes: "Dumb" (UART-based, without on-board co-processor), "RISC-based" (using chipsets or custom ASICs with embedded RISC engines) and "High-end intelligent" (on-board CPU and RAM memory, using a 32-bit interface). Of course there are variations within each of these classes and the border between them is not always clear.
    The following table gives some directions to select the right multiport serial card for you.

Board Type
Ports/
System
Serial Devices
Application
Typical User
Things to consider
Example
Dumb
4-8
Terminals, printers, low speed modems
TTY emulation, low to medium speed, highly interactive connections
Small multiuser systems, small ISPs or BBSes using low speed modems
Supported by the native standard serial driver?
UART-based serial product
RISC
8-64
Terminals and printers 28.8 and 33.6 Kbps modems
Medium to high speed, mixed (interactive and downloads) connections
Medium and large multiuser systems, ISPs and BBSes using high-speed modems
How to expand? Cost. Driver availability
High-end
8-128+
Terminal, printers, high speed modems, ISDN
Demanding users, high-traffic, extremely high number of users
Largest multiuser systems, ISP/BBSes with very demanding applications
True 32-bit interface? How to expand? Driver availability

About Cyclades and Cyclades Products
    With headquarters in Fremont, California, Cyclades Corporation designs, manufactures and markets connectivity products. The product line includes multiport serial cards, routers, communication adapters and remote access servers.
    The multiport serial solutions include the Cyclom-Y (RISC-based, for the ISA and PCI buses, expandable from 8 to 32 ports per slot) and the Cyclades-Z (intelligent PCI adapter, expandable from 8 to 128 ports per slot).
    Cyclades is known for its commitment to customer satisfaction. Technical support can be reached by e-mail, fax or phone and is free and unlimited to all customers. Software updates are also free and available at our ftp site. ISPs get special discounts purchasing Cyclades products.
    Always innovating, Cyclades was one of the first companies to announce a RISC-based multiport serial card in 1992. In 1994, we were the first company to invest in the then small Open Source market. In 1995 we were the first company to announce a multiport serial card for the PCI bus. In 1996, we announced the first 32-bit bus-master intelligent multiport serial card in the market, the Cyclom-Z.
    Cyclades traditionally supports the major UNIX flavors and was the first hardware company to officially support the Linux Operating System. With built-in kernel support (no need to install additional drivers), performance and best technical support, the Cyclades products are still the most popular solution for ISPs using this Operating System.
    Because of our large installed base in the ISP market, the Cyclom-Y penetration in the Windows NT and BSD-derived markets is also growing rapidly. Easy installation, great service and flawless operation are always mentioned by Cyclades users as the decisive factors to choose our products.


Cyclom-Y
    The Cyclom-Y is the best alternative for users looking for a high-performance and low-cost multiport solution. It is based on CD1400 serial processors (embedded RISC engine and high-performance serial controllers). This card competes in the "RISC based" or "custom ASIC based" segment or serial solutions with the best price/performance ratio in the market.
    The expandable architecture allows you to start with 16 and later expand to 32 ports by just adding an external serial module. Differently from other solutions in the market, the initial investment is preserved when expanding the number of serial ports.
    The Cyclom-Y supports up to 115.2 Kbps in all ports and is available in 8-port and expandable models (8 to 32 ports). The expandable model supports both the ISA and PCI system buses. DB-25 and RJ-type connector options are available.
    Thanks to its efficient hardware interface, the Cyclom-Y requires fewer instructions to be executed by the host CPU to transfer data from the internal FIFOs to the host memory. This reduces the overhead and improves the global performance of the system.
    It has built-in kernel support for Linux, FreeBSD and BSDI operating systems. No need to download extra files or apply patches. Cyclades also provides device drivers for Microsoft Window NT, 95, SCO UNIX, Unixware.
    The Cyclom-Y/PCI is Plug&Play compatible. It means that the PCI BIOS allocates the resources for the board automatically. There are no dip-switches or jumpers to set.
    The Cyclom-Y/ISA requires only a 8kb window in the memory addressing space and one IRQ shared by all channels on the board. The small window means that you will always be able to install the board in your system without conflicting with other devices
Cyclades-Z
    The Cyclades-Z is the ultimate multiport solution for demanding users.
    It has an internal 32-bit co-processor (MIPS R3000) which is probably as powerful as the Pentium processor in your system. The on-board RAM (half Megabyte for the 8-port version) leaves plenty of space for buffers (several kilobytes of FIFO per channel).
    True, it uses the most advanced UARTs to support 460 Kbps in all serial ports, but the host CPU does not need to worry about that. The on-board co-processor takes care of all interrupts, handles flow control and passes the data to the operating system in the most efficient way using a 4kb buffer (FIFO).
    The Cyclades-Z is PCI Plug&Play compatible and does not take any interrupt or I/O address from the host system resources. It uses shared memory in the 32-bit address space (no ISA below-1Mb limitations). It means no conflicts and no installation headaches.
The Cyclades-Z is build based on a full blown 32-bit processor. Serial data is transferred from the board to host memory in 32-bit chunks. The board is also the only in the market with true bus mastering capabilities. All this makes the Cyclom-Z the most efficient and unique multiport serial card in the market today. The fastest serial communication does not take more than the minimum host CPU overhead and system bus bandwidth.
    Other PCI solutions in the market are based on RISC engines or "custom ASICs" designed with an 8-bit ISA I/O interface in mind. Because they are not built from ground up using 32-bit technology, they cannot use all the performance potential of the PCI bus.
    The Cyclades-Z is available today in an 8-port version and expandable version up to 64 ports per PCI slot. Drivers for Linux, FreeBSD, Windows and SCO UNIX are available.

Comments or suggestions to this document can be sent to Marcio Saito marcio@cyclades.com