Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МПС2 Проектирование аппаратного и программного...doc
Скачиваний:
5
Добавлен:
26.09.2019
Размер:
2.77 Mб
Скачать

3.5.2. Схемотехническое проектирование памяти

Различная ширина внешней шины данных у МП ВМ86 и ВМ88 определяет различную схемотехническую организацию памяти в МПС на их основе. Основное различие заключается в организации и использовании банков памяти.

Банкирование памяти

В МПС на базе МП ВМ88 память организуется в виде одного банка объемом 1 Мбайт и подключается к системной шине стандартным образом (рис. 3.47,а). Обмен информацией с такой памятью осуществляется лишь побайтно.

Рис. 3.47. Банкирование памяти МПС:

а) для МП ВМ88; б) для МП ВМ86

В МПС на базе МП ВМ86 память представляется в виде двух банков по 512 Кбайт каждый. Один банк подключается к младшей половине D7D0 шины данных и называется младшим банком. Второй банк подключается к старшей половине D15D8 шины данных и называется старшим банком. Схема подключения банков к системной шине приведена на рис. 3.47,б.

Младший банк содержит байты с четными адресами, т. к. обращение к нему осуществляется при A0 = 0, а старший банк байты с нечетными адресами, т. к. обращение к нему происходит при A0 = 1 ( = 0). Конкретный байт в каждом банке выбирается по коду адреса на линиях A19A1.

Выбор банков памяти для обмена информацией осуществляется с помощью сигналов и A0 в соответствии с табл. 3.4.

Таблица 3.4

Обращение к банкам памяти МП ВМ86

Операция обмена

A0

Используемая шина данных

Запись/считывание слова по четному адресу

0

0

D15D0

Запись/считывание слова по нечётному адресу:

 младший байт слова

 старший байт слова

0

1

1

0

D15D8

D7D0

Запись/считывание байта по чётному адресу

1

0

D7D0

Запись/считывание байта по нечётному адресу

0

1

D15D8

Нет обращения

1

1

Из таблицы 3.4 следует, что МП ВМ86 может осуществлять обмен информацией с памятью как словами, так и байтами. При этом слова могут располагаться как по четным, так и нечетным адресам. Однако слова по четным адресам передаются за один цикл шины, а по нечетным адресам  за два цикла шины: сначала младший байт по линиям D15D8, а затем (после автоматического инкрементирования полного адреса A19A0) старший байт по линиям D7D0. Маршрутизация старших и младших байтов внутренних 16-битных регистров по соответствующим половинам шины данных выполняется автоматически и незаметна для программиста.

Для повышения производительности МПС на базе МП ВМ86 слова данных целесообразно располагать по четным адресам, что особенно актуально для стеков, оперирующих только словами. Для выравнивания адреса на четное значение в ассемблере предусмотрена директива EVEN, располагаемая перед описанием массива слов. Если текущий адрес трансляции является четным, то эта директива ничего не делает, а при нечетном адресе она увеличивает его на 1, превращая в четный. Для МП ВМ88 выравнивание на четный адрес не имеет смысла, т. к. обращение к любому слову требует два цикла шины независимо от его адреса.

МП ВМ86 считывает команды из памяти только словами по четному адресу. Если команда перехода передает управление на нечетный адрес, то в первом цикле выборки считывается один байт, что обеспечивает выравнивание адреса команд на четное значение.