PC I/O addressing(redirected from PC memory addressing)
PC I/O addressingThe 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, a little bit 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 a bunch of 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
|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.|
Copyright © 1981-2019 by The Computer Language Company Inc. All Rights reserved. THIS DEFINITION IS FOR PERSONAL USE ONLY. All other reproduction is strictly prohibited without permission from the publisher.