Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Бит E – для отличия сегмента данных (0) от сегмента кода (1)
Для сегмента ДАННЫХ: · ED Expand Down– направление распространения сегмента: o 0 – к увеличению адресов o 1 – к уменьшению адресов · W – writeable – бит разрешения записи в сегмент (1 – можно, 0 - нельзя) · A – accessed – признак обращения (фиксация обращения к молю, может использоваться в алгоритме замещения сегментов в ОП)
Для сегмента КОДА: · С - conforming – бит подчинения сегмента: o 0 – неподчиненный сегмент, можно вызвать только при CPL = DPL o 1 – подчиненный сегмент, можно вызвать при CPL >= DPL · R – readable – бит разрешения чтения (1 – можно, 0 - нельзя) · A – accessed – признак обращения (фиксация обращения к молю, может использоваться в алгоритме замещения сегментов в ОП)
1) При попытке сделать какую-то операцию – проверка допустимости операции (при загрузке сегмента в регистр, чтобы не загружали сегменты данных в регистры кода и тд). 2) Проверка ссылок операндов чтобы не · Не читали данные из сегмента кода (он только выполняется) · Не писали данные в кодовые сегменты · Не писали данные в сегмент, откуда можно только читать
Привилегии подробнее: В процессоре Пентиум – МАНДАТНЫЙспособ определения прав доступа (механизм колец защиты): Есть 4 уровня привилений: 0 – ядро 1, 2 – системные утилиты 3 – прикладные проги
Для характеристики уровня привилегий есть несколько переменных: · DPL – Descripror Privilege Level – (DPL –поле в дескрипторе сегмента – в таблице дескрипторов) · RPL – Request Privilege Level – (RPL – поле в селекторе сегмента (то, с чем мы запрашиваем память)) · СPL – Current Privilege Level – (RPL – поле в селекторе кодового сегмента (то, что сейчас выполняется)) · EPL – Effective Privilege Level – эффективный уровень привилегий запроса. Что это? Уровни привилегий назначаются дескрипторам и селекторам. В любом случае это 2 бита: 00 01 10 11. Основное из чего оно вычисляются все переменные – DPL. При остановке процесса уровень привилегий процесса сохраняется в его контексте. В Процессоре Пентиум это записывается в системный сегмент TSS – task state segment
Контроль доступа: - к сегментам данных Сопоставление EPL запроса и DPL сегмента данных: EPL = max (RPL, CPL) - худшее CPL – привилегии выполняемого кода RPL – это привилегии, с которыми запрашиваем данные DPL – привилегии, с которыми данные могут быть запрошены
- к сегменту стека Предотвратить доступ низкоуровневого кода к данным, выработанным высокоуровневым кодом и помещенным в стек EPL кода = DPL сегмента стека, тогда разрешен доступ Т.е. для каждого уровня привилегий используется отдельный сегмент стека. - к сегменту кода CPL сравниваем с DPL, а как именно – все сложно. Смешанная сегментно-страничная организация памяти в системах на основе процессоров с архитектурой IA32. Трансляция адреса. Буфер ассоциативной трансляции (TLB). Для поддержки страничной организации – в управляющем регистре CR0 нужно старший бит PG установить в 1.
При этом сегментный механизм продолжает работать, но смысл его работы меняется. · ВАП процесса ограничивается размером 4 Гб · Оно делится на витруальные сегменты · Виртуальные сегмены могут накладываться друг на друга (процессор это не контролирует, это забота ОС) · ВАП и ФАП разбиты на страницы размером 4 кб · Всего страниц – 1 Мб, 2 20 степени Виртуальный адрес – это СЕЛЕКТОР + СМЕЩЕНИЕ. 1 этап преобразования: сегментный: · На основании индекса селектора берем нужный дескриптор из GDT или LDT · Из дескриптора добываем базовый адрес сегмента · Но! Базовый адрес дескриптора здесь – это базовый адрес сегмента в ВАП а не в ФАП как в сегментной организации. · Плюсуем к базовому адресу смещение = Линейный Виртуальный Адрес. ЛВА передаем страничному механизму.
2 этап – страничный. · ЛВА на основании размера страницы делим на номер страницы и смещение · Находим в таблице страниц нужный дескриптор · Находим номер физической страницы · Плюсуем смещение Вот как выглядит дескриптор страницы в таблице страниц
P – бит присутствия в физической памяти W – бит разрешения записи U – бит пользователь / супервизор A – к странице был доступ D – признак модификации PWT и PCD – управление механизмом кэширования AVL – резерв для нужд ОС
Страницы маленькие, их много, и таблица страниц занимает целых 4 метра. Это до фига, поэтому страницы группируются в разделы, с формированием таблиц раздела = размеру страницы.
Номер виртуальной страницы (20 разрядов) – делится на номер раздела и номер страницы в разделе. Ну и дальше все преобразуется как описано в страничном механизме.
Трансляция адреса. Буфер ассоциативной трансляции (TLB). Для ускорения преобразования адресов в блоке управления страницами используется ассоциативная память, где кэшируется 32 дескриптора активно используемых страниц. Это позволяет по номеру витруальной страницы быстро извлекать номер физической страницы без обращения к таблицам разделов и страниц.
Буфер ассоциативной трансляции (англ. Translation lookaside buffer, TLB) — это специализированный кэш центрального процессора, используемый для ускорения трансляции адреса виртуальной памяти в адрес физической памяти. TLB используется всеми современными процессорами с поддержкой страничной организации памяти. TLB содержит фиксированный набор записей (от 8 до 4096) и является ассоциативной памятью. Каждая запись содержит соответствие адреса страницы виртуальной памяти адресу физической памяти. Если адрес отсутствует в TLB, процессор обходит таблицы страниц и сохраняет полученный адрес в TLB, что занимает в 10—60 раз больше времени, чем получение адреса из записи, уже закешированной TLB. Вероятность промаха TLB невысока и составляет в среднем от 0,01 % до 1 %. В современных процессорах может быть реализовано несколько уровней TLB с разной скоростью работы и размером. Самый верхний уровень TLB будет содержать небольшое количество записей, но будет работать с очень высокой скоростью, вплоть до нескольких тактов. Последующие уровни становятся медленнее, но, вместе с тем и больше. Иногда верхний уровень TLB разделяется на 2 буфера, один для страниц, содержащих исполняемый код, и другой — для обрабатываемых данных.
Иерархия запоминающих устройств и кэширование данных. Принципы работы кэш - памяти. Детерминированный и случайный способы отображения основной памяти на кэш. Проблема согласования данных. Схемы выполнения запросов в схемах с двухуровневой кэш памятью. Иерархия запоминающих устройств: Память часто называют «узким местом» фон-Неймановских ВМ из-за ее серьезного отставания по быстродействию от процессоров, причем, разрыв этот неуклонно увеличивается.
Так, если производительность процессоров возрастает вдвое примерно каждые 1,5 года, то для микросхем памяти прирост быстродействия не превышает 9% в год (удвоение за 10 лет), что выражается в увеличении разрыва в быстродействии между процессором и памятью приблизительна на 50% в год.
При создании системы памяти постоянно приходится решать задачу обеспечения требуемой емкости и высокого быстродействия за приемлемую цену. Наиболее эффективным решением является создание иерархической памяти. Иерархическая память состоит из ЗУ различных типов (см. рисунок ниже), которые, в зависимости от характеристик, относят к определенному уровню иерархии.
Более высокий уровень меньше по емкости, быстрее и имеет большую стоимость в пересчете на бит, чем более низкий уровень. Уровни иерархии взаимосвязаны: все данные на одном уровне могут быть также найдены на более низком уровне, и все данные на этом более низком уровне могут быть найдены на следующем нижележащем уровне и т. д.
Фундамент пирамиды – внешняя память (жесткий и гибкий магнитный диск, магнитные ленты, оптические диски, флэшки):
6. Объем – десятки и сотни гигабайт 7. Время доступа – десятки миллисекунд Оперативная память: 8. Объем – гигабайты 9. Время доступа – 10-20 наносекунд 10. Реализуется на относительно медленной динамической памяти DRAM Быстродействующая память (ее же называют Кэш??) 11. На основе статической памяти SRAM 12. Объем – десятки-сотни килобайт 13. Время доступа – до 8 наносек Регистры процессора 14. Объем – десятки байт 15. Время доступа – 2-3 наносекунды (определяется быстродействием процессора)
Кэширование данных Чем быстрее память, тем она дороже. Но нам хотелось бы быструю и недорогую память. Для этого есть компромиссное решение – кэширование.
Кэширование – это способ совместного функционирования двух типов запоминающих устройств, отличающихся временем доступа и стоимостью хранения данных. При кэшировании за счет копирования наиболее часто использующихся фрагментов информации из медленного ЗУ в быстрое достигается уменьшение времени доступа к данным, но при этом экономится быстродействующая память.
При этом КЭШем называют не только способ организации памяти, но и само быстрое ЗУ, куда производится копирование информации. Более медленное ЗУ называют основной памятью.
Кэширование – универсальный метод, пригодный для ускорения доступа к: - оперативной памяти – роль КЭШа выполняет быстрая память - к данным, хранящимся на диске – роль КЭШа выполняют буферы в оперативной памяти - к другим видам ЗУ.
Виртуальная память по сути – тоже разновидность кэширования, где оперативная память выступает в роли КЭШа по отношению к диску. Правда здесь цель – не ускорение доступа, а увеличение объема и подмена оперативной памяти.
|
|||||||
Последнее изменение этой страницы: 2017-02-05; просмотров: 286; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.16.81.94 (0.026 с.) |