Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Раздел 4 МП ЭВС.doc
Скачиваний:
35
Добавлен:
06.12.2018
Размер:
683.01 Кб
Скачать

Тема 4.7. Реальный режим работы мп

Основное отличие режимов работы микропроцессора заключается в объеме адресуемой памяти и способе адресации информации. Способы адресации определяют последовательность действий микропроцессора при вычислении физического адреса для выбора одной ячейки из всех возможных ячеек в адресном пространстве памяти. Организация размещения и обмена информацией, обеспечивающая решение задачи, называется распределением памяти. Цель распределения памяти состоит в установлении соответствия между массивом информации и ячейками памяти, при котором достигается максимальная производительность микропроцессорной системы. Основным в управлении памятью является процесс преобразования адресов, используемых программами, в адреса, приемлемые для аппаратуры памяти. Процесс преобразования скрыт от разработчика прикладных программ.

Функции ОС по управлению памятью:

  1. отслеживание свободной и занятой памяти,

  2. выделение памяти программам и освобождение памяти по завершению программ,

  3. перезапись команд и данных программ из оперативной памяти на диск (полное или частичное), когда размеры основной памяти не достаточны для размещения в ней всех программ, и возвращение их в оперативную память, когда в ней освобождается место,

  4. настройка адресов программы на конкретную область физической памяти,

  5. защита памяти.

Применительно к памяти различают три адресных пространства:

  • логическое,

  • линейное,

  • физическое.

Логический адрес (другое название – виртуальный адрес) – это адрес, которым обычно оперирует программное обеспечение. Он формируется из двух величин:

    1. 16-разрядного селектора сегмента,

    2. 32 (16) - разрядного смещения относительно начала сегмента.

Логический адрес существует лишь внутри процессора и используется для программного обеспечения. Преобразование логического адреса в физический для обращения к памяти зависит от текущего режима работы микропроцессора. Виртуальные или логические адреса вырабатывает транслятор, переводящий программу на машинный язык. Т. к. во время трансляции не известно, в какое место оперативной памяти будет загружена программа, то транслятор присваивает данным и командам виртуальные (условные) адреса, обычно считая по умолчанию, что начальным адресом программы будет нулевой адрес. Программы могут использовать различные методы формирования логического адреса. В общем случае эти методы разделяются на прямые и косвенные в зависимости от способа задания 32 (16) - разрядного смещения. При прямой адресации смещение является непосредственным 32 (16) – разрядным значением. При косвенной адресации команда указывает на регистр, значение в котором является смещением. Для формирования полного логического адреса смещение суммируется с селектором сегмента, который выбирается из одного из сегментных регистров (CS, DS, SS, ES, FS, GS).

Совокупность виртуальных адресов называется виртуальным адресным пространством. Максимальный размер виртуального адресного пространства ограничивается только разрядностью адреса, присущей данной архитектуре компьютера, и, как правило, не совпадает с объемом физической памяти, имеющимся в компьютере.

Для компьютеров универсального назначения типична ситуация, когда объем виртуального адресного пространства превышает доступный объем оперативной памяти. В таком случае ОС для хранения данных виртуального адресного пространства использует оперативную и внешнюю память на жестких дисках. Все действия по организации совместного использования диска и оперативной памяти осуществляются операционной системой и аппаратурой процессора автоматически, без участия программиста.

Линейный адрес формируется из логического адреса и предназначен для обращения к линейному (непрерывному и несегментированному) адресному пространству. При отключенном страничном механизме линейный адрес полностью совпадает с физическим, причем способ его формирования зависит от текущего режима работы микропроцессора (реальный, защищенный, 32- или 16-битная адресация).

Физические адреса соответствуют номерам ячеек оперативной памяти, где в действительности расположены или будут расположены данные и команды. Физический адрес передается на внешнюю шину для обращения к ячейкам памяти. Физический адрес образуется из линейного либо напрямую (полное совпадение), либо через механизм страничного преобразования.

Можно выделить следующие уровни при организации программ

  1. программа,

  2. сегмент,

  3. страница,

  4. байт

Этим уровням соответствует иерархия таблиц, служащих для перевода виртуальных адресов в физические. Программная таблица для каждой программы, загруженной в систему, указывает начальный адрес соответствующей сегментной таблицы. Сегментная таблица перечисляет сегменты данной программы с указанием начального адреса страничной таблицы, относящейся к данному сегменту. Страничная таблица определяет расположение каждой из страниц сегмента в памяти. Часть страниц данного сегмента может находиться в оперативной памяти, остальные – во внешней памяти.

В реальном режиме все современные процессоры действуют так же, как микропроцессор 8086. Некоторые различия состоят лишь в поддержке большего числа команд и во много раз более высокой скорости. Механизм формирования линейного адреса в реальном режиме работы позволяет получить доступ к адресному пространству объемом 1 Мбайт. Все сегменты памяти в реальном режиме имеют размер 64 Кбайт, и данные, находящиеся в них, могут быть использованы для чтения, записи и выполнения. Если операнды данных или команд «пересекут» границу сегмента, произойдет прерывание по исключительной ситуации. Если в реальном режиме информация, содержащаяся в сегменте, не использует все 64 Кбайт, то неиспользуемая часть сегмента может быть совмещена с другим сегментом для сокращения требуемой физической памяти.

Схема формирования физического адреса в реальном режиме работы микропроцессора:

15

0

15

0

Селектор сегмента

Смещение

Логический адрес

0

0

0

0

База сегмента

+

0

0

0

0

Смещение

=

19

0

20-р-ный линейный (физический) адрес

Рисунок 4.7.1 - Схема формирования физического адреса в реальном режиме работы микропроцессора

В реальном режиме логический адрес имеет длину 32 бит. Он состоит из 16-разрядного адреса начала сегмента (селектора сегмента) и 16-разрядного смещения в выбранном сегменте. Селектор находится в сегментном регистре, смещение либо находится в регистре, либо вычисляется в соответствии с типом адресации операнда.

В реальном режиме линейный адрес является эквивалентом физического адреса, так как в режиме реальных адресов страничная организация не используется.

Чтобы получить большее адресное пространство, допускаемое 32-разрядным логическим адресом, требуется другой способ преобразования адреса, который реализован в защищенном режиме работы микропроцессора.