Помощничек
Главная | Обратная связь


Археология
Архитектура
Астрономия
Аудит
Биология
Ботаника
Бухгалтерский учёт
Войное дело
Генетика
География
Геология
Дизайн
Искусство
История
Кино
Кулинария
Культура
Литература
Математика
Медицина
Металлургия
Мифология
Музыка
Психология
Религия
Спорт
Строительство
Техника
Транспорт
Туризм
Усадьба
Физика
Фотография
Химия
Экология
Электричество
Электроника
Энергетика

Пространство ввода-вывода. Процессоры семейства х86 имеют раздельную адресацию памяти и портов вво­да-вывода



Процессоры семейства х86 имеют раздельную адресацию памяти и портов вво­да-вывода. Это разделение обеспечивается выделением специальных инструк­ций ввода-вывода, с помощью которых возможна передача данных между портами и регистрами процессора (или портами и памятью). Инструкции ввода-вывода порождают шинные циклы обмена, в которых вырабатываются сигналы чтения из порта и записи в порт. На шине ISA это сигналы IORD# и IOWR# соот­ветственно, они и отличают пространство ввода-вывода от пространства памя­ти, где соответствующие операции чтения и записи вырабатывают сигналы MEMRD# и MEMWR#. На шине PCI разделение памяти и пространства ввода-выво­да происходит иначе — здесь тип операции кодируется 4-байтной командой в зависимости от типа инструкции, выполняемой процессором.

В инструкциях ввода-вывода используется 16-битная адресация, что обуслав­ливает размер пространства ввода-вывода в 64 кбайт. Для дешифрации адресов портов в оригинальном ПК из 16 бит использовались только младшие 10 (А0-А9), что обеспечивает обращение к портам в диапазоне адресов 0-3FFh. Старшие биты адреса хотя и поступают на шину, но устройствами игнорируются. В результате обращения по адресам, к примеру, 378h, 778h, B78h и F78h, вос­принимаются устройствами одинаково. Это упрощение, нацеленное на сниже­ние стоимости как системной платы, так и схем плат адаптеров, для шины ISA никто не отменял. Устаревшие адаптеры {legacy card) для шины ISA для стар­ших битов адреса не имеют даже печатных ламелей на своем краевом разъеме. Впоследствии перешли к 12-битной адресации устройств шины ISA, но ее при­ходится применять с оглядкой на возможное присутствие устройств с 10-бит­ной адресацией. В адаптерах для шин МСА и PCI используются все 16 бит ад­реса, полная дешифрация адреса применяется и в современных системных платах. Карта распределения адресов ввода-вывода стандартных устройств PC приведена в табл. 4.1. Эта карта подразумевает 10-битную дешифрацию адреса. Естественно, что в конкретном компьютере реально присутствуют не все пере­численные устройства, но в то же время там могут оказаться другие, не попав­шие в таблицу. Выбор базовых адресов стандартных устройств (3F8h, 3F0h, 378h и т. п.) объяс­няется стремлением к экономии. Эти адреса выбирались так, чтобы в их де­шифрации участвовало максимальное количество единиц и минимальное — ну­лей (логические схемы «И-НЕ» применяются чаще, чем схемы «ИЛИ», а приме­нение более сложных схем для дешифрации было нежелательно).

Каждой шине назначается своя область адресов ввода, и дешифратор адресов, расположенный на системной плате, при чтении открывает соответствующие буферы данных, так что реально считываться будут данные только с одной шины. При записи в порты данные (и сигнал записи) могут распространяться и по всем шинам компьютера (широковещательно). В стандартном распределе­нии адреса Oh-OFFh отведены для устройств системной платы. При наличии (и разрешении работы) периферийных устройств на системной плате чтение по этим адресам не распространяется на шины расширения. Для современных плат со встроенной периферией и несколькими шинами (ISA, PCI) распределе­нием адресов управляет BIOS через регистры конфигурирования чипсета, а в иерархии шин PCI (и PCI-E) диапазоны адресов задаются программированием мостов (см. 14.6).

Аппаратные прерывания

Аппаратные прерывания обеспечивают реакцию процессора на события, проис­ходящие асинхронно по отношению к исполняемому программному коду. По возникновении такого события адаптер (контроллер) устройства формирует за­прос прерывания, который поступает на вход контроллера прерываний. Кон­троллер прерываний формирует общий запрос прерывания для процессора, а когда процессор подтверждает получение этого запроса, контроллер сообщает процессору вектор прерывания, по которому выбирается программная процеду­ра обработки прерываний. Процедура должна выполнить действия по обслужи­ванию данного устройства, включая сброс его запроса, и отправить команду за­вершения в контроллер прерываний, что дает возможность отреагировать на следующие события. Логика работы системы прерываний и программная мо­дель контроллера прерываний, совместимого с микросхемой i8259A, являются важной частью стандартизации архитектуры PC-совместимых компьютеров. Прерывания в процессорах х86 рассмотрены в 7.2.

 




Поиск по сайту:

©2015-2020 studopedya.ru Все права принадлежат авторам размещенных материалов.