Keyboard Controller

The keyboard controller’s name describes what it does—it controls the keyboard. More specifically though, it controls the transfer of data from the keyboard to the PC. The keyboard controller on the motherboard interacts with a controller located inside the keyboard over a serial link built into the connecting cable and connector. When the keyboard controller receives data from the keyboard, it checks the data’s parity, translates the scan code, places the data in its output buffer, and notifies the processor that the data is in its buffer. The keyboard controller is quite common on most older PCs, but newer PCs either include this control function in the chipset or in the Super I/O chip.

The functions performed by the keyboard controller, or its equivalent, are as follows:

·         Keyboard control and translation When a key is pressed on the keyboard, a scan code is sent from the controller inside the keyboard to PC’s keyboard controller, which then signals the processor through IRQ1 (interrupt request 1). The keyboard controller then translates the scan code into the character it represents and places it on the bus to move it to the appropriate location in memory.

·         Support for the PS/2 mouse On those systems that have an integrated PS/2 connector on the motherboard, the keyboard controller supports its functions. This port is most commonly used to connect a PS/2-style mouse.

·         Access to the HMA Although the support for the High Memory Area of system memory (RAM) is now incorporated into the system chipset on most newer PCs, access to this part of memory is controlled through the keyboard controller. See Chapter 7 for more information on the High Memory Area.

 Super I/O Controller

The Super I/O (input/output) controller chip includes many controller functions that were previously performed by many separate chips. Combining these functions provides an economy of scale for similar activities and minimizes the space required on the motherboard and the cost of the chips used to support these activities.

The “super” in its name refers to the fact that the Super I/O controller combines many other chips and not what or how it carries out its functions. This chip controls the standard input/output peripheral devices and ports found on virtually every system. These functions can be combined onto a single chipbecause they control mature standardized devices that are virtually the same on every PC. Combining them on a single I/O chip frees the motherboard and system chipset to control other high-priority functions.

On some older PCs, many of the functions of the Super I/O controller were provided through I/O controller expansion cards, such as control for serial and parallel ports and the hard disk drive. Because these functions are common to every PC, incorporating them into a single chip placed on the motherboard has also freed up an expansion slot.

The major functions of the Super I/O controller chip are as follows:

·         Serial ports The UART (universal asynchronous receiver-transmitter) is used to drive the serial ports and the control functions of data transfer are included in the Super I/O chip.

·         Parallel ports The functions that drive the parallel ports, including the various parallel port standards, EPP (Enhanced Parallel Port) and ECP (Enhanced Capabilities Port), are included in the Super I/O controller.

·         Floppy disk drives Support for the floppy disk drive and floppy-disk type tape drives are included on the Super I/O chip.

·         Miscellaneous functions Newer versions of the Super I/O controller may also incorporate the keyboard controller’s functions, the real-time clock, and perhaps the IDE hard disk controller, although this is more commonly found in the system chipset.

Other Device Controllers

Each device added to the PC that wishes to interact with the data bus requires a controller. In general, peripheral devices have their controller chips either on an adapter card (expansion card) or built into their electronics. On older, pre-Pentium PCs, every device generally had their own or shared a controller card. For example, it was common for the floppy disk and hard disk drives to share an I/O controller card.

Each device controller must be matched to the bus interface with which it is to interact. An IDE (Integrated Drive Electronics) disk drive requires an IDE controller and a SCSI controller is needed to connect a device with a SCSI interface.

Most peripheral devices installed inside the system case of a current PC interface through an IDE controller. For the most part, an IDE controller is included in either the PC’s main chipset or the Super I/O controller. Most systems have the floppy disk controller (FDC) and the hard disk controller (HDC) built into the motherboard and, provided it is not a SCSI device, any tape drives, CD-ROM, or DVD devices added will share these controllers.