Пространство ввода-вывода
Пространство ввода-вывода в IBM PC, как и в процессорах х86, отделено от пространства памяти. У всех этих процессоров, в том числе и 32-разрядных, в пространстве ввода-вывода используется 16-разрядная адресация (диапазон адресов О-FFFFh). Для дешифрации адресов портов в оригинальном PC из 16 бит использовались только младшие 10 (А0-А9), что обеспечивает обращением портам в диапазоне адресов 0-3FFL Старшие биты адреса, хотя и поступают на шину, устройствами игнорируются. В результате обращения по адресам, к примеру 378h, 778h, B78h и F78h, будут восприниматься устройствами одинаково. Это упрощение, нацеленное на снижение стоимости как системной платы, так и схем плат адаптеров, для шины ISA никто не отменял. Традиционные адаптеры для шины ISA, называемые Legacy Card («наследие тяжелого прошлого»), для старших бит адреса не имеют

456
Глава 12. Архитектурные компоненты IBM PC-совместимого компьютера
1 даже печатных ламелей на своем краевом разъеме. Впоследствии перешли к 12-битной адресации устройств шины ISA, но ее приходится применять £ оглядкой на возможное присутствие устройств с 10-битной адресацией. В адаптерах для шин МСА и PCI и во всех современных системных платах используются все 16 бит адреса. Карта распределения адресов ввода-вывода стандартных устройств PC приведена в табл. 12.1. Эта карта подразумевает 10-битную дешифрацию адреса. Естественно, что в конкретном компьютере реально присутствуют не все перечисленные устройства, но в то же время там могут оказаться другие, не попавшие в таблицу.
Таблица 12.1. Стандартная карта портов ввода-вывода AT и PS/2 PC/XT Назначение
000-OOF | 000-OOF | Контроллер DMA #1 8237
| |||
010-01F | PS/2 — расширение DMA#1 | ||||
020-021 | 020-021 | Контроллер прерываний #1 — 8259А | |||
040-05F | 040-043 | Таймер (PC/XT: 8253, AT: 8254) | |||
060 | 060 | Диагностический регистр POST (только запись) | |||
060-063 | Системный интерфейс 8255 | ||||
060,064 | Контроллер клавиатуры AT 8042 | ||||
061 | Источники NMI и управление звуком | ||||
070-07F | Память CMOS и маска NMI | ||||
080 | Диагностический регистр- | ||||
080-08F | 080-083 | Регистры страниц DMA | |||
090-097 | PS/2 микроканал, арбитр | ||||
ОАО | Маска NMI | ||||
OAO-OBF | Контроллер прерываний #2 — 8259А | ||||
OCO-ODF | Контроллер DMA #2 8237А-5 | ||||
OFO-OFF | Сопроцессор 80287 | ||||
100-1EF | PS/2 управление микроканалом | ||||
170-177 | Контроллер НЖМД #2 (IDE#2) | ||||
1FO-1F7 | Контроллер НЖМД #1 (IDE#1) | ||||
200-207 | 200-20F | Игровой адаптер | |||
210-217 | Блок расширений | ||||
238-23F | COM4 | ||||
278-27F | 278-27F | Параллельный порт LPT2 (LPT3 при наличии MDA) | |||
2А2-2АЗ | 4acbiMSM48321RS | ||||
2CO-2DF | 2CO-2DF | EGA #2 | |||
2ЕО-2Е7 | COM4 | ||||
2E8-2EF | COM4 | ||||
2F8-2FF | 2F8-2FF | COM2 | |||
300-31F | ПлатЬ прототипа | ||||
320-32F | Жесткий диск XT | ||||
338-33F | COM3 <, | ||||
370-377 | Контроллер НГМД #2 | ||||
376-377 | Порты комайд IDE#2 | ||||
378-37F | 378-37F | Параллельный порт LPT1 (LPT2 при наличии MDA) |
12.3. Аппаратные прерывания
457
AT и PS/2 PC/XT
Назначение

3AO-3AF ЗАО-ЗА9 Синхронный адаптер BSC#1
ЗВО-ЗВВ ЗВО-ЗВВ Монохромный адаптер (MDA)
ЗВ4-ЗС9 PS/2 видеосистема
3BC--3BF 3BC-3BF Параллельный порт LPT1 платы MDA
3CO--3CF 3CO-3CF EGA#1
3CO-3DF 3CO-3DF VGA
3DO-3DF 3DO-3DF CGA/EGA
ЗЕО-ЗЕ7 COM3
3E8-3EF COM3
3FO-3F7 3FO-3F7 Контроллер НГМД #1
3F6-3F7 Порты команд IDE*1
3F8-3FF 3F8-3FF СОМ1
