
- •ОБразования российской федерации
- •Цель работы
- •Теоретическая часть
- •Типы адресов
- •Механизмы страничной переадресации
- •Базовый механизм страничной переадресации
- •Режимы psEиPse-36
- •РежимPae
- •Буфер ассоциативной трансляции тlb
- •TlBс полностью ассоциативным распределением строк.
- •TlBс наборно-ассоциативным распределением строк
- •Порядок выполнения работы
- •Вопросы для самопроверки (защиты л/р)
- •TlBс полностью ассоциативным распределением строк.
- •TlBс наборно-ассоциативным распределением строк
- •Список литературы
-
ОБразования российской федерации
Московский Государственный институт электроники и математики
(Технический университет)
Кафедра вычислительных систем и сетей
Методические указания к лабораторной работе №6 на тему
Трансляция адресов в защищённом режиме работы 32-разрядного процессора Intel
по дисциплине «Организация ЭВМ, комплексов и систем»
Москва 2008
Составитель канд. техн. наук, доц. Е.М. Иванова
УДК 681.325
Методические указания являются составной частью методического обеспечения по дисциплине «Организация ЭВМ», изучаемой студентами групп С-31,41 С-32,42 С-33,43 СИ-31,41 и др. в рамках специальности 22.01 – «Вычислительные машины, комплексы, системы и сети» на втором курсе в третьем и четвёртом семестре.
Основным содержанием является изучение принципов организации работы 32-разрядных процессоров в защищенном режиме, исследование механизмов трансляции адресов памяти.
Защищённый режим работы 32-разрядного процессора Intel: Методические указания к лабораторной работе по дисциплине «Организация ЭВМ и систем» / Московский Государственный институт электроники и математики (Технический университет); Сост.: Е.М. Иванова, М., 2008 - 21с.
Цель работы
Целью работы является закрепление теоретических знаний по сегментной и страничной организации памяти для различных режимов работы 32-разрядных процессоров, приобретение практических навыков по составлению и моделированию алгоритмов выполнения команды в процессоре и их записи с использованием языка микроопераций.
В ходе лабораторной работы каждый студент должен составить алгоритм вычисления линейного и физического адресов для обращения за командой, операндами или в стек, с указанием пересылки данных между регистрами и устройствами процессора, установкой нужных признаков, проверкой всех необходимых условий и выработкой требуемых сигналов об ошибках.
Теоретическая часть
Типы адресов
Применительно к памяти различают два адресных пространства: логическое (виртуальное) или пространство логических имён, и физическое или пространство физических адресов. Основным режимом работы 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 бит. Блок переадресации может включаться только в защищенном режиме работы процессора. Перед каждым доступом в физическую память (ОП) необходима проверка на наличие требуемой страницы в ОП.