Term of the Moment

Bitcoin transaction


Look Up Another Term


Redirected from: PC memory addressing

Definition: PC I/O addressing


The method used to pass signals from the CPU to the controller boards of peripheral devices on x86 machines. An I/O address, also called a "port address," references a separate memory space on PC peripheral boards, similar to memory-mapped peripherals that use blocks of memory. Peripherals often use both methods: an I/O address for passing control signals and memory for transferring data.

Tiny Scattered Memory Banks
There is a 64K address space for I/O addresses, although typically less than 1K is used. Each board that uses an I/O address contains a few bytes of memory (16, 32, etc.) set to a default address range. One or more alternate addresses is also provided to resolve conflicts with other boards. These I/O spaces are tiny memory banks scattered over different devices. As long as each one is set to a different address, the CPU can transmit signals to the appropriate boards without conflict.

The I/O Address Operation
If a program needs to send a byte to the serial port, it issues an OUT instruction to the CPU with the address of that serial port. The CPU notifies the address bus to activate the I/O space, not regular memory, and the address bus signals the appropriate byte location on the board. The CPU then sends the data character over the data bus to that memory location. Following are the default I/O addresses for the serial and parallel ports in a PC. See Plug and Play.

           Port     PC      PS/2

           COM1     3F8h
           COM2     2F8h
           COM3     2E8h
           COM4     2E0h
           LPT1     378h    3BCh
           LPT2     278h    378h
           LPT3     3BCh    278h






I/O Addresses
Windows provides ways to view the details of I/O addresses and other internal settings. This is a Windows 98 screen obtained from the Settings control panel. See Win Technical details.