Михаил Гук - Аппаратные интерфейсы ПК. Энциклопедия
- Название:Аппаратные интерфейсы ПК. Энциклопедия
- Автор:
- Жанр:
- Издательство:Издательский дом «Питер»
- Год:2002
- Город:Санкт-Петербург
- ISBN:5-94723-180-8
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Михаил Гук - Аппаратные интерфейсы ПК. Энциклопедия краткое содержание
Книга посвящена аппаратным интерфейсам, использующимся в современных персональных компьютерах и окружающих их устройствах. В ней подробно рассмотрены универсальные внешние интерфейсы, специализированные интерфейсы периферийных устройств, интерфейсы устройств хранения данных, электронной памяти, шины расширения, аудио и видеоинтерфейсы, беспроводные интерфейсы, коммуникационные интерфейсы, вспомогательные последовательные интерфейсы. Сведения по интерфейсам включают состав, описание сигналов и их расположение на разъемах, временные диаграммы, регистровые модели интерфейсных адаптеров, способы использования в самостоятельно разрабатываемых устройствах. Книга адресована широкому кругу специалистов, связанных с эксплуатацией ПК, а также разработчикам аппаратных средств компьютеризированной аппаратуры и их программной поддержки.
Аппаратные интерфейсы ПК. Энциклопедия - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
Шина PCI имеет 32-разрядную шину адреса, так что ее ведущим устройствам доступна вся физическая память [5] Для пока еще экзотических вариантов системных плат с памятью более 4 Гбайт и 36-разрядной физической адресацией последних моделей процессоров PCI может использовать двухадресные циклы обращения с 64-битным адресом.
. Для устройств PCI могут выделяться любые области адресов, свободные от ОЗУ, ROM BIOS и устройств ISA. Области адресов памяти, используемые каждым устройством PCI, описаны в заголовках их конфигурационных пространств. Эти данные требуются при распределении ресурсов и настройке мостов PCI в процессе инициализации шины.
12.2. Пространство ввода-вывода
Пространство ввода-вывода в IBM PC, как и в процессорах х86, отделено от пространства памяти. У всех этих процессоров, в том числе и 32-разрядных, в пространстве ввода-вывода используется 16-разрядная адресация (диапазон адресов 0-FFFFh). Для дешифрации адресов портов в оригинальном PC из 16 бит использовались только младшие 10 ( А0
- А9
), что обеспечивает обращением портам в диапазоне адресов 0-3FFL Старшие биты адреса, хотя и поступают на шину, устройствами игнорируются. В результате обращения по адресам, к примеру 378h, 778h, B78h и F78h, будут восприниматься устройствами одинаково. Это упрощение, нацеленное на снижение стоимости как системной платы, так и схем плат адаптеров, для шины ISA никто не отменял. Традиционные адаптеры для шины ISA, называемые Legacy Card («наследие тяжелого прошлого»), для старших бит адреса не имеют даже печатных ламелей на своем краевом разъеме. Впоследствии перешли к 12-битной адресации устройств шины ISA, но ее приходится применять с оглядкой на возможное присутствие устройств с 10-битной адресацией. В адаптерах для шин MCA и PCI и во всех современных системных платах используются все 16 бит адреса. Карта распределения адресов ввода-вывода стандартных устройств PC приведена в табл. 12.1. Эта карта подразумевает 10-битную дешифрацию адреса. Естественно, что в конкретном компьютере реально присутствуют не все перечисленные устройства, но в то же время там могут оказаться другие, не попавшие в таблицу.
Таблица 12.1. Стандартная карта портов ввода-вывода
AT и PS/2 | PC/XT | Назначение |
---|---|---|
000-00F | 000-00F | Контроллер DMA #1 8237 |
010-01F | PS/2 — расширение DMA#1 | |
020-021 | 020-021 | Контроллер прерываний #1 — 8259A |
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 микроканал, арбитр | |
0А0 | Маска NMI | |
0A0-0BF | Контроллер прерываний #2 — 8259A | |
0C0-0DF | Контроллер DMA #2 8237A-5 | |
0F0-0FF | Сопроцессор 80287 | |
100-1EF | PS/2 управление микроканалом | |
170-177 | Контроллер НЖМД #2 (IDE#2) | |
1F0-1F7 | Контроллер НЖМД #1 (IDE#1) | |
200-207 | 200-20F | Игровой адаптер |
210-217 | Блок расширений | |
238-23F | COM4 | |
278-27F | 278-27F | Параллельный порт LPT2 (LPT3 при наличии MDA) |
2A2-2A3 | часы MSM48321RS | |
2C0-2DF | 2C0-2DF | EGA #2 |
2E0-2E7 | 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) |
380-38F | 380-38F | Синхронный адаптер SDLC/BSC #2 |
3A0-3AF | 3A0-3A9 | Синхронный адаптер BSC#1 |
3B0-3BB | 3B0-3BB | Монохромный адаптер (MDA) |
3B4-3C9 | PS/2 видеосистема | |
3BC-3BF | 3BC-3BF | Параллельный порт LPT1 платы MDA |
3C0-3CF | 3C0-3CF | EGA#1 |
3C0-3DF | 3C0-3DF | VGA |
3D0-3DF | 3D0-3DF | CGA/EGA |
3E0-3E7 | COM3 | |
3E8-3EF | COM3 | |
3F0-3F7 | 3F0-3F7 | Контроллер НГМД #1 |
3F6-3F7 | Порты команд IDE#1 | |
3F8-3FF | 3F8-3FF | COM1 |
Каждой шине назначается своя область адресов ввода, поэтому дешифратор адресов, расположенный на системной плате, при чтении открывает соответствующие буферы данных, так что реально считываться будут данные только с одной шины. При записи в порты данные (и сигнал записи) могут распространяться по всем шинам компьютера. В стандартном распределении адреса 0h-0FFh отведены для устройств системной платы. При наличии (и разрешении работы) периферийных устройств на системной плате чтение по этим адресам не распространяется на шины расширения. Для современных плат со встроенной периферией и несколькими шинами (ISA, PCI) распределением адресов управляет BIOS через регистры конфигурирования чипсета.
12.3. Аппаратные прерывания
Аппаратные прерывания обеспечивают реакцию процессора на события, происходящие асинхронно по отношению к исполняемому программному коду. Прерывания в процессорах х86 подробно рассмотрены в литературе [6, 7]. Здесь напомним, что аппаратные прерывания делятся на маскируемые и немаскируемые.
На немаскируемое прерывание (NMI) процессор реагирует всегда (если обслуживание предыдущего NMI завершено); этому прерыванию соответствует фиксированный вектор 2. Немаскируемые прерывания в PC используются для сигнализации о фатальных аппаратных ошибках. Сигнал на линию NMI
приходит от схем контроля паритета памяти, от линий контроля шины ISA ( IOCHK
) или шины PCI ( SERR#
). Сигнал NMI
блокируется до входа процессора установкой в 1 бита 7 порта 070h, отдельные источники разрешаются и идентифицируются битами порта 061h:
♦ бит 2 R/W — ERP
— разрешение контроля ОЗУ и сигнала SERR#
шины PCI;
♦ бит 3 R/W — EIC
— разрешение контроля шины ISA;
♦ бит 6 R — IOCHK
— ошибка контроля на шине ISA (сигнал IOCHK#
);
♦ бит 7 R — PCK
— ошибка четности ОЗУ или сигнал SERR#
на шине PCI.
Реакция процессора на маскируемые прерывания может быть задержана сбросом его внутреннего флага IF
(инструкции СLI
— запретить прерывания, STI
— разрешить). По возникновении события, требующего реакции, адаптер (контроллер) устройства формирует запрос прерывания, который поступает на вход контроллера прерываний. Контроллер прерываний формирует общий запрос маскируемого прерывания для процессора, а когда процессор подтверждает этот запрос, контроллер сообщает процессору вектор прерывания, по которому выбирается программная процедура обработки прерываний. Процедура должна выполнить действия по обслуживанию данного устройства, включая сброс его запроса для обеспечения возможности реакции на следующие события и посылку команды завершения в контроллер прерываний. Вызывая процедуру обработки, процессор автоматически сохраняет в стеке значение всех флагов и сбрасывает флаг IF
, что запрещает маскируемые прерывания. При возврате из процедуры (по инструкции IRET
) процессор восстанавливает сохраненные флаги, в том числе и установленный IF
, что снова разрешает прерывания. Если во время работы обработчика прерываний требуется реакция на иные прерывания (более приоритетные), то в обработчике должна присутствовать инструкция STI
. Особенно это касается длинных обработчиков; здесь инструкция STI
должна вводиться как можно раньше, сразу после критической (не допускающей прерываний) секции. Следующие прерывания того же или более низкого уровня приоритета контроллер прерываний будет обслуживать только после получения команды завершения прерывания EOI
(End Of Interrupt).
Интервал:
Закладка: