Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Orgevm_Ekzamen.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
998.59 Кб
Скачать

Билет №6 мп вм86. Сегментация памяти. Организация оперативной памяти.

Микропроцессор К1810ВМ86.

Зарубежный аналог этой микросхемы имеет обозначение i8086.

Данный микропроцессор (МП) относится к CISC типу. Он имеет 20 адресных линий (то есть может адресовать 220 =1 Мбайт ячеек ОП) и 16 линий данных. МП может работать в двух режимах: минимальном и максимальном.

Минимальный режим используется, когда на основе МП реализуется несложная однопроцес-сорная система. Для сложных однопроцессорных и многопроцессорных систем используется макси-мальный режим.

Сегментация памяти

Как уже отмечалось выше, МП 8086 имеет 20 адресных линий, то есть может адресовать ОП объемом 1 Мбайт. Эта память логическим образом разбивается на сегменты, объемом 64 Кбайт каж-дый, которые могут располагаться практически в любом месте памяти. Одновременно МП может ра-ботать с четырьмя такими сегментами. Они называются:

  • сегмент кода, в нем располагается программа, которую выполняет МП;

  • сегмент стека, в нем организуется стек;

  • сегмент данных, в нем располагаются данные;

  • дополнительный сегмент, обычно используется как дополнительный сегмент данных.

Каждому из этих сегментов ставится в соответствие находящийся внутри МП 16 разрядный сегментный регистр. Сегментный регистр cs соответствует сегменту кода, ss – стека, ds –данных и es – дополнительному сегменту.

Содержимое сегментного регистра задает начальный (базовый) адрес соответствующего сег-мента в ОП. Однако сегментный регистр 16 разрядный, а адрес ОП должен быть 20 разрядным. Чтобы из шестнадцати разрядов получить двадцать, содержимое сегментного регистра при формировании адреса ОП сдвигают на 4 разряда влево (умножают на 16). Например, пусть cs=2231h, тогда началь-ный адрес сегмента кода равен 22310h. Отсюда можно сделать вывод, что начальный адрес любого сегмента всегда кратен шестнадцати. Это единственное ограничение на расположение сегментов в памяти. Других ограничений не существует, то есть сегменты могут быть полностью независимы друг от друга, а могут частично и даже полностью перекрываться.

При выполнении команды, если в ней требуется обращение к памяти, МП формирует по адрес-ному коду, заданному в команде, так называемый эффективный адрес (Аэф).

Например, пусть

ds=2200h, bx=1000h, si=0770h

и выполняется команда

mov ax,[bx+si+2]

тогда

Аэф=(bx)+(si)+2=1000h+0770h+2=1772h

Сформированный Аэф рассматривается как внутрисегментное смещение, поэтому далее МП формирует физический адрес (Аф) по следующей формуле:

Аф = (сегментный регистр)×16 + Аэф.

Аф и является адресом ячейки ОП, к которой обращается МП. Для нашего примера (по умол-чанию здесь в качестве сегментного регистра берется сегментный регистр ds):

Аф = (ds)×16 + Аэф = 22000h + 1772h = 23772h.

В процессе формирования Аэф возможно возникновение переноса из старшего разряда. При этом данный перенос попросту отбрасывается. Таким образом, после Аэф = ffffh идет Аэф = 0000h. Иначе говоря, достигнув конца сегмента мы автоматически переходим на его начало. Это так назы-ваемая кольцевая организация сегмента. Таким образом, существует только один способ выйти за пределы текущего сегмента – сменить содержимое соответствующего сегментного регистра.

В процессе формирования Аф также возможно возникновение переноса из старшего разряда. Как и в предыдущем случае, этот перенос попросту отбрасывается, Получается кольцевая организа-ция памяти. Иначе говоря, никаким способом мы не можем сформировать адрес за пределами 1 Мбайта.

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

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

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

  • байт;

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

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

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

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

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]