Размещение карты регистров
В результате аппаратного сброса внутренние регистры контроллера 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 зарезервировала часть неиспользуемых адресов под будущие периферийные устройства.