Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Лекция №13




 

  • Сегментный способ

В таблице сегментов указывается базовый адрес сегмента в физической памяти (а не номер, как в случае страничного способа). Размер сегмента не фиксирован, в отличие от страничного способа адресации.

 

  • Сегментно-страничный способ

Схема преобразования адреса

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

Разделение программы на сегменты определяется программистом или компилятором. Атрибуты сегмента определяют способ его использования: для исполнения, чтения, записи. Сегментное распределение позволяет использовать общие сегменты.

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

При сегментно-страничной организации виртуальный адрес состоит из 3 частей: g, p, S. Номер сегмента преобразуется с использованием таблицы сегментов, а номер страницы – с использованием таблицы страниц. В результате линейный физический адрес состоит из 2 частей: номера физической страницы n и смещения S.

 

Свопинг

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

Чтобы загрузить процессор вычислительными задачами, задачи ввода/вывода целесообразно сбросить на диск.

 

Кэш-память

 

 

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

Цель: увеличить скорость, понизить стоимость за счет размещения часто используемой информации в более быстром ЗУ.

Механизм кэша прозрачен для пользователя.

 

 

Кэш одновременно с памятью «прослушивает» запрос ЦП, но ответить (если данные есть) успевает быстрее.

Тег – адрес нескольких последовательно расположенных ячеек.

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

Работа кэша основана на принципах пространственной и временной локальности, обеспечивающих высокий процент «попадания» в кэш.

 

tдоступа =p·tкэш + (1-p)·tпамяти; p~90%

 

Пространственная локальность: если обращение происходит по адресу At, то с большой долей вероятности в момент времени (t+1) происходит обращение по адресу (А±1).

 

Временная локальность: существует большая вероятность того, что в следующий момент времени (t+τ) произойдет обращение к этой же области с адресом А: Аt→A t+τ.

 

Средства аппаратной поддержки управления памятью Intel i386

Микропроцессоры семейства i386 имеют два режима работы: реальный (real mode) и защищенный (protected mode).

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

В реальном режиме процессор работает, как и 8086, с расширенным набором команд.

Для работы в адресном пространстве 1МБ надо сформировать адрес определенным образом:

 

Этот режим (реальный) устанавливается по сбросу и используется для начальной инициализации системы. Путем записи управляющих битов в регистры командой MOV процессор переводится в защищенный режим. В защищенном режиме всегда включен сегментный механизм, и может быть установлен режим v86 (virtual 86), при котором процессор работает как несколько процессоров 8086 с общей памятью. Кроме того, в защищенном режиме может быть включен режим страничной адресации.

 

Лекция №14

 

Сегментный механизм

Структуры данных

а) Селектор

GDT – глобальная дескрипторная таблица

LDT – локальная дескрипторная таблица

 

б) Регистр GDTR

 
 

 


в) Дескриптор сегмента (данных/кода)

 

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

Поскольку в сегментном регистре на указание индекса дескриптора сегмента отводится 13 бит, всего сегментов 213 = 8192.

Размер дескриптора 8 байт; с учетом 8192 возможных сегментов, размер дескрипторной таблицы составит 8·8192 = 216 = 64 КБ.

· Бит G определяет способ изменения размера сегмента (в байтах – G=0, или в страницах – G=1).

Если G=0, то размер сегмента 220 = 1 МБ (совместимость с 8086, используется в режиме v86).

Если G=1, то при 4КБ страницах, 4КБ·220 = 4 ГБ.

· Бит D определяет выравнивание сегментов по 32-битной (D=1) или 16-битной границе (D=0).

· Бит P – бит присутствия сегмента в физической памяти.

· Бит DPL – уровень привилегий дескриптора, определяет, можем ли мы пользоваться дескриптором. Если CPL≤DPL – доступ разрешен.

· Тип сегмента:

·S=0 – системные сегменты (LDT – локальная дескрипторная таблица; TSS – сегмент состояния задачи, в который отображается содержимое контекста при переключении задач; ловушки (шлюзы) вызова – специальные регистры, предназначенные для вызова высшего уровня привилегий с низшего, и т. д.).

·S=1 – пользовательские сегменты:

E=0 – сегмент данных;

Е=1 – сегмент кода;

ED – бит распространения сегмента:

ED=0 – в сторону старших адресов,

ED=1 – в сторону младших адресов (стек);

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

А – бит доступа к сегменту (А=1 – произошел доступ с момента загрузки);

С – бит подчинения (если C=1, то проверка CPL≤DPL игнорируется, и мы можем вызвать более привилегированный код);

R – возможность чтения кодового сегмента.

Если используется адресация из таблицы GDT, то индекс сдвигается влево на 3 разряда (т.к. дескриптор имеет размер 8 Б = 23), получается смещение в таблице GDT. Проверяем, не выходит ли смещение за границы таблицы (смотрим на младшие 16 разрядов GDTR, хранящих ее размер). Далее берем 32-битный адрес GDT и складываем с этими смещением. В итоге получается 32-битный адрес дескриптора в физической памяти. При этом определяется, присутствует ли сегмент в физической памяти и разрешен ли доступ к нему. Если доступ разрешен, то берется базовый адрес сегмента из дескриптора (“база”) и складывается со смещением из команды. Также на этой стадии производится контроль выхода за границу сегмента. Результатом является 32-битный адрес в физической памяти.

Если обращение идет через локальную дескрипторную таблицу LDT (см. соответствующий признак в селекторе), то используется регистр LDTR, который указывает на дескриптор LDT в глобальной дескрипторной таблице GDT. С использованием этого дескриптора вычисляется базовый адрес LDT в физической памяти. Далее преобразование происходит аналогичным способом.

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

Таким образом, для инициализации системы в защищенном режиме необходимо как минимум создать дескрипторную таблицу с одним входом и проинициализировать GDTR.

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

 




Поделиться с друзьями:


Дата добавления: 2014-12-07; Просмотров: 418; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.022 сек.