Порты ввода-вывода: распределение адресов и их назначение

Порты ввода-вывода (I/O) играют ключевую роль в обеспечении взаимодействия между центральным процессором и периферийными устройствами компьютера, такими как клавиатура, мышь, жесткие диски, сетевые адаптеры и другие компоненты. Каждое устройство взаимодействует с системой через определенные порты, которым присваиваются уникальные адреса в адресном пространстве ввода-вывода. Эти адреса позволяют процессору идентифицировать и обмениваться данными с конкретными устройствами, обеспечивая их корректную работу.

BIOS (Basic Input/Output System) отвечает за начальную инициализацию оборудования при запуске компьютера. Одной из его функций является назначение адресов портов ввода-вывода для различных устройств. Правильное распределение этих адресов критически важно для предотвращения конфликтов между устройствами, которые могут возникнуть, если два устройства пытаются использовать один и тот же адрес. Такие конфликты могут привести к нестабильной работе системы или даже к ее отказу.

Понимание структуры и назначения адресов портов ввода-вывода позволяет эффективно диагностировать и устранять проблемы, связанные с оборудованием. Например, если известно, что определенное устройство использует конкретный диапазон адресов, можно быстро определить источник проблемы при возникновении конфликта. Кроме того, это знание помогает при настройке системы, особенно при установке новых устройств или при модернизации существующих компонентов.

Ниже представлена таблица, содержащая информацию о стандартных адресах портов ввода-вывода, их размерах и назначении. Эта информация может быть полезна для системных администраторов, инженеров и энтузиастов, занимающихся настройкой и обслуживанием компьютерных систем.

адресаразмерназначение
0000 - 000F16 bytesPIIX4 - DMA 1
0020 - 00212 bytesPIIX4 - interrupt controller 1
002E - 002F2 bytesSuper I/O controller configuration registers
0040 - 00434 bytesPIIX4 - Counter/Timer 1
0048 - 004B4 bytesPIIX4 - Counter/Timer 2
00601 byteKeyboard Controller Byte - Reset IRQ
00611 bytePIIX4 - NMI, Speaker Control
00641 byteKeyboard controller, CMD/STAT Byte
0070bit 7, 1 bitPIIX4 - enable NMI
0070bits 0-6, 7 bitsPIIX4 - real time clock, address
00711 bytePIIX4 - real time clock, data
00781 byteReserved - system board configuration
00791 byteReserved - system board configuration
0080 - 008F16 bytesPIIX4 - DMA page registers
00A0 - 00A12 bytesPIIX4 - interrupt controller 2
00B2 - 00B32 bytesAPM control
00C0 - 00DE31 bytesPIIX4 - DMA 2
00F01 byteReset numeric error
0170 - 01778 bytesSecondary IDE channel
01F0 - 01F78 bytesPrimary IDE channel
0200 - 02078 bytesAudio/game port
0220 - 022F16 bytesAudio (Sound Blaster compatible)
0240 - 024F16 bytesAudio (Sound Blaster compatible)
0278 - 027F8 bytesLPT2
0290 - 02978 bytesHardware monitor
02E8 - 02EF8 bytesCOM4/Video (8514A)
02F8 - 02FF8 bytesCOM2
0300 - 03012 bytesMPU-401 (MIDI)
0330 - 03312 bytesMPU-401 (MIDI)
0332 - 03332 bytesMPU-401 (MIDI)
0334 - 03352 bytesMPU-401 (MIDI)
03761 byteSecondary IDE channel command port
03771 byteFloppy channel 2 command
0377bit 7, 1 bitFloppy disk change, channel 2
0377bits 0-6, 7 bitsSecondary IDE channel status port
0378 - 037F8 bytesLPT1
0388 - 038D6 bytesAdLib (FM synthesizer)
03B4 - 03B52 bytesVideo (VGA)
03BA1 byteVideo (VGA)
03BC - 03BF4 bytesLPT3
03C0 - 03CA11 bytesVideo (VGA)
03CC1 byteVideo (VGA)
03CE - 03CF2 bytesVideo (VGA)
03D4 - 03D52 bytesVideo (VGA)
03DA1 byteVideo (VGA)
03E8 - 03EF8 bytesCOM3
03F0 - 03F56 bytesFloppy Channel 1
03F61 bytePrimary IDE channel command port
03F7 (Write)1 byteFloppy channel 1 command
03F7bit 7, 1 bitFloppy disk change channel 1
03F7bits 0-6, 7 bitsPrimary IDE channel status port
03F8 - 03FF8 bytesCOM1
04D0 - 04D12 bytesEdge/level triggered PIC
0530 - 05378 bytesWindows Sound System
0604 - 060B8 bytesWindows Sound System
LPTn + 400h8 bytesECP port, LPTn base address + 400h
0CF8 - 0CFB (*)4 bytesPCI configuration address register
0CF9 (**)1 byteTurbo and reset control register
0CFC - 0CFF4 bytesPCI configuration data register
0E80 - 0E878 bytesWindows Sound System
0F40 - 0F478 bytesWindows Sound System
0FF0 - 0FF78 bytesCS4236B audio control
FF00 - FF078 bytesIDE bus master register
FFA0 - FFA78 bytesPrimary bus master IDE registers
FFA8 - FFAF8 bytesSecondary bus master IDE registers
007Cbits 4-5, 2 bitsChassis fan RPM sense selection

* Только доступ через DWORD
** Только доступ через Byte