Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ТСвИС / (х) учебное пособие. организация Компьютеров и Систем.doc
Скачиваний:
95
Добавлен:
28.05.2015
Размер:
1.15 Mб
Скачать

2.7 Организация оперативной памяти.

С точки зрения программиста оперативная память для ВМ86 представляет собой линейный массив ячеек форматом 1 байт каждая, с адресами от 00000h до fffffh (рис. 8).

Информация, располагаемая в ОП, может иметь следующие форматы:

  • байт;

  • слово (2 байта);

  • двойное слово (4 байта).

При этом адресом слова или двойного слова считается адрес его младшего байта.

Физически память для МП86 организуется иначе. Память реализуется в виде 2-х банков: старшего и младшего. В младший банк входят все ячейки с четными адресами, в старший – все ячейки с нечетными адресами. Обращение к тому или иному банку (или к обоим сразу) определяется комбинацией сигналов на выходах BHE и A0 МП. Подключение банков к шине данных показано на рис. 9.

Банк подключается к ШД, когда на его вход CS приходит активный (нулевой) сигнал. При этом младший банк подключается к младшей половине ШД, а старший – к старшей половине ШД. Такая организация позволяет производить обмен между МП и ОП как по всей ШД, так и по отдельным ее половинам. Подобная архитектура приводит к следующему правилу: слова желательно располагать в памяти по четным адресам. Если слово располагается в ОП по четному адресу, то оно будет передаваться по ШД за один цикл шины, если же по нечетному – за два цикла шины. По той же причине двойные слова также желательно располагать по четным адресам.

Рис. 8.

2.8 Организация адресного пространства портов ву.

Существует два основных способа организации адресного пространства портов ВУ.

1) Раздельная организация адресных пространств ОП и портов ВУ. В этом случае к портам обращаются командами in и out, а к ОП – остальными командами. Соответственно МП выставляет единицу на выходе M/IO, если он обращается к ОП и ноль, если он обращается к порту. Таким образом сигнал на выходе M/IO позволяет различить ячейку памяти и порт, даже если они имеют одинаковые системные адреса.

В командах in и out можно использовать два типа адресации: прямую и косвенную. При прямой адресации адрес порта указывается в команде непосредственно (например, in al,60h) и имеет размер 1 байт. То есть таким способом мы можем задать 256 различных адресов портов. Учитывая, что МП вырабатывает сигналы RD и WR, мы можем считать, что при прямой адресации в системе можно использовать максимум 512 портов, половина из которых работает на ввод информации, а другая половина – на вывод.

При косвенной адресации адрес порта берется из регистра dx (например,

out [dx],al). Поскольку данный регистр шестнадцатиразрядный, то, исходя из тех же соображений, в систему максимально можно поставить 128К портов, половина из которых работает на ввод, а другая половина – на вывод.

2) Отображение адресного пространства портов на адресное пространство памяти. При таком способе порты рассматриваются как ячейки ОП. Соответственно обращение к таким портам производится командами обращения к памяти, а не командами in и out. Сигнал на выходе M/IO при обращении к таким портам будет равен единице. Следовательно такие порты и ячейки памяти не могут иметь одинаковые адреса. Такой способ позволяет наращивать число портов вплоть до 1М, правда за счет уменьшения объема ОП. В чистом виде на практике этот способ применения не находит, однако зачастую его используют в сочетании с первым способом.

Рис. 9