Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
4семестр / Методичка л_р№6.doc
Скачиваний:
16
Добавлен:
30.04.2013
Размер:
2.27 Mб
Скачать

- 25-

ОБразования российской федерации

Московский Государственный институт электроники и математики

(Технический университет)

Кафедра вычислительных систем и сетей

Методические указания к лабораторной работе №6 на тему

Трансляция адресов в защищённом режиме работы 32-разрядного процессора Intel

по дисциплине «Организация ЭВМ, комплексов и систем»

Москва 2008

Составитель канд. техн. наук, доц. Е.М. Иванова

УДК 681.325

Методические указания являются составной частью методического обеспечения по дисциплине «Организация ЭВМ», изучаемой студентами групп С-31,41 С-32,42 С-33,43 СИ-31,41 и др. в рамках специальности 22.01 – «Вычислительные машины, комплексы, системы и сети» на втором курсе в третьем и четвёртом семестре.

Основным содержанием является изучение принципов организации работы 32-разрядных процессоров в защищенном режиме, исследование механизмов трансляции адресов памяти.

Защищённый режим работы 32-разрядного процессора Intel: Методические указания к лабораторной работе по дисциплине «Организация ЭВМ и систем» / Московский Государственный институт электроники и математики (Технический университет); Сост.: Е.М. Иванова, М., 2008 - 21с.

Цель работы

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

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

Теоретическая часть

  1. Типы адресов

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

Рис. 1. Преобразования адресных пространств

Логический адрескоманды или данных определяет сегмент, где они находятся и их местоположение внутри сегмента. Состоит из селектора сегмента и исполнительного адреса, называемого также смещением. Селектор сегмента хранится в сегментном регистре (CS,DS, …GS), участвующем в адресации конкретного элемента памяти. По значению селектора из таблиц дескрипторов, хранящихся в памяти, извлекается начальный адрес сегмента.

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

исполнительный адрес операнда – суммированием компонент base,index,displacementс учетом масштабаscale(см. рис.2).

ИА операнда [0÷31]= base + index  scale + displacement

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

ИА команды [0÷31]=EIP[0÷31]

исполнительный адрес вершины сегмента стека определяет положение начала команды внутри сегмента кода и хранится в регистре ESP – указателе стека.

ИА вершины стека[0÷31] =ESP[0÷31]

При вычислении исполнительного адреса происходит проверка на адресацию к элементам, выходящим за границу сегмента. Для этого проверяется условие - исполнительный адрес данных с учётом их размера должен быть меньше, чем число в поле limit дескриптора. Поле limit - размера сегмента, в дескрипторе указывает номер последнего байта в сегменте)

ИА операнда [31÷0] + ДЛИНА операнда = DS.LIMIT [31÷0]

возможно использование любого сегмента данных – ES, FS, GS

ИА команды [31÷0] + ДЛИНА команды = CS.LIMIT [31÷0]

ИА вершины стека [31÷0] + 4 = SS.LIMIT [31÷0]; исключений

Каждая задача может иметь до 16 Кбайт селекторов (214), т.к.14 разрядов из 16 сегментного регистра отвечают за выбор сегмента (битTI– для выбора локальной или глобальной таблицы дескрипторов сегментов и полеIndex[13÷0] - № строки в таблице дескрипторов). Смещение внутри сегмента задаётся 32-разрядным исполнительным адресом, а значит, максимальный размер сегмента - 4 Гбайт (232байт). Итого 214сегментов размером 232 байт каждый, 214*232=246=64Тб – объём доступной виртуальной памяти. Все это пространство виртуальной памяти в принципе доступно программисту (при условии поддержки со стороны ОС).

Блок сегментации преобразует логический адрес в 32-разрядный линейный адрес.

Линейный адресобразуется сложением базового адреса сегмента с исполнительным адресом.

В реальном режиме работы процессора базовый адрес сегмента (его старшие разряды) храниться в самом сегментном регистре. В этом случае базовый адрес сегмента образуется умножением содержимого используемого сегментного регистра на 16. Линейный адрес = физическому и является окончательным адресом ячейки ОП, как и в режиме виртуального процессора 8086.

ФА[19÷0] = ЛА [19÷0] = сегм_рег[15÷0] | 0000 + 0000 | ЭА [15÷0]

Рис.2. Вычисление линейного адреса в реальном режиме работы ЦП

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

ЛА [31÷0] = сегм_рег.SDC.БАсегмента[31÷0] + ИА [31÷0]

Рис. 3. Формирование физического адреса памяти 32-разрядных процессоров

Физический адреспамяти содержит точный адрес ячейки ОП, в которой находятся искомые данные (или команда) и формируется в защищённом режиме блоком страничной переадресации. Он выводится на внешнюю шину адреса процессора. При отключенном блоке страничной переадресации физический адрес совпадает с линейным (см. рис.3).

Включенный блок страничной переадресации осуществляет трансляцию линейного адреса в физический страницами размером 4 Кбайт (для старших поколений процессоров также возможны страницы размером 2 или 4 Мбайт). Блок обеспечивает расширение разрядности физического адреса процессоровIntelшестого поколения до 36 бит. Блок переадресации может включаться только в защищенном режиме работы процессора. Перед каждым доступом в физическую память (ОП) необходима проверка на наличие требуемой страницы в ОП.

Соседние файлы в папке 4семестр