Размещение карты регистров

В результате аппаратного сброса внутренние регистры контроллера 82380 при­вязываются в пространстве ввода-вывода по адресу порта 0000Н. Размещение ре­гистров контроллера 82380 может быть изменено программным образом. По умол­чанию регистры располагаются между адресами 0000Н и 00DBH. С помощью ре­гистра размещения, входящего в состав контроллера 82380, карта внутренних ре­гистров может быть выровнена на любую 16-мегабайтную границу в пространстве 32-разрядных адресов памяти или на любую четную 256-байтную границу в про­странстве 16-разрядных адресов портов ввода-вывода.

Регистр размещения (Рис. 9.7) входит в состав внутренних регистров контрол­лера 82380; адрес соответствующего ему порта, доступного по чтению и по записи, равен 7FH. Регистр размещения определяет базовый адрес множества внутренних регистров 82380. С помощью этого регистра область 256 последовательных адресов может быть отображена либо на оперативную память системы, либо на адресное пространство ввода-вывода. Через указанные внутренние регистры осуществляется управление всеми периферийными устройствами, входящими в состав контроллера 82380.

Если разряд 0 регистра размещения установлен в 1, то контроллер 82380 на­строен на адреса памяти. При этом адресные сигналы А0 — А17 используются для выбора того внутреннего регистра, к которому должно осуществляться обращение. Линии А25 — А31 соответствуют разрядам 1 — 7 регистра размещения. Кроме того, линии А8 — А23 не используются, а сигнал на линии А24 предполагается всегда нулевым. Например, если в регистр размещения записано значение 10101000 (или 0А8Н), то контроллер отобразит карту регистров на область памяти с адреса­ми 0Ахххх00Н — 0AxxxxFFH.

При отображении на память: А31–А25

При отображении на пространство ввода/вывода А15–А9

 
 

A31

A15

A30 A14 A29 A13 A28 A12 A27 A11 A26 A10 A25 A9 M/ IO#
D7 D6 D5 D4 D3 D2 D1 D0

D0 = 0 – отображение на пространство ввода/вывода

D0 = 1 – отображение на память

Рис. 9.7. Регистр размещения

 

Если разряд 0 в регистре размещения сброшен, то регистры 82380 отобража­ются на пространство ввода-вывода. Адресные сигналы А0 — А7 используются так­же для выбора того внутреннего регистра, к которому должно быть выполнено обращение. Линии А9 – А15 соответствуют разрядам 1 – 7 регистра размещения. Контроллер 82380 декодирует сигналы с линий А15 – А8, причем А8 предпола­гается равным 0. Например, если в регистр размещения записано значение 10111110 (или 0ВЕН), то регистры 82380 отображены на пространство ввода-вы­вода между адресами 0ВЕ00Н и 0BEFFH.

Следует отметить, что под внутренние регистры 82380 отведены не все 256 по­следовательных адресов. В контроллере 82380 всегда выполняется декодирование значения сигналов А0 — А7 с целью выявить, имеется ли по данному адресу ка­кой-либо внутренний регистр. Если такого регистра не обнаруживается, контроллер игнорирует этот адрес. Поэтому представляется возможным размещать по таким неиспользуемым адресам адресного пространства контроллера 82380 другие внеш­ние устройства. Известно, что фирма Intel зарезервировала часть неиспользуемых адресов под будущие периферийные устройства.