Автор работы: Пользователь скрыл имя, 23 Октября 2011 в 17:51, лекция
Высокопроизводительный 32-х разрядный микропроцессор 80i86 ориентирован на эффективное выполнение программ в среде многозадачных ОС (типа Windows). Микропроцессор имеет 32-разрядные регистры и 32-х разрядные раздельные шины адреса и данных.
Линейный 32-ый
адрес при страничной организации памяти
является исходной информацией для формирования
физического адреса с помощью каталога
разделов и таблиц страниц. При этом линейный
адрес рассматривается как совокупность
трех полей.
TABLE – указывает относительный адрес таблицы страниц выбираемого раздела в каталоге.
PAGE – задает относительный адрес требуемой страницы данного раздела.
BYTE – содержит относительный адрес выбираемого на странице байта.
Каталог разделов занимает одну страницу памяти, где для каждого раздела содержатся 32-разрядные указатели входа в таблицу страниц этого раздела. Каждая из таблиц страниц также занимает одну страницу памяти, где для каждой страницы дается 32-хразрядный указатель входа в эту страницу.
Указатели входа в раздел и в страницу имеют одинаковый формат:
Каждый указатель содержит информацию, определяющую порядок использования страниц. Старшие 20 разрядов занимает базовый адрес. Остальные разряды имеют следующий смысл.
Р – бит присутствия. Если Р=1, то разрешается использование таблицы страниц, если Р=0, то такое использование запрещается. При Р=0 попытка обращения к соответствующему разделу или странице вызывает прерывание из-за отсутствия нужной страницы в оперативной памяти. После загрузки нужной страницы в память, бит Р устанавливается в «1» и в этом случае обращение к данной странице становится возможной. Это нужно для того, чтобы ОС знала, где находится страница.
R/W - бит чтения/записи.
U/S - бит пользователь/супервизор.
Эти два бита определяют право доступа к соответствующей странице или разделу для программ пользователя. Программа пользователя обычно имеет самый низкий уровень привилегий равный 3. Если осуществляется запрос с уровнем привилегий равным 3, то при значении U/S = 0 программе пользователя запрещается доступ к разделу или странице.
При U/S = 1 обращение разрешается, но при этом учитывается значение бита R/W.
Если R/W = 0, то программе пользователя разрешается только чтение раздела или страницы.
Если R/W = 1, то разрешается как чтение, так и запись. Если осуществляются запросы с большим уровнем привилегий (0, 1 и 2), то допускается запись и чтение разделов и страниц при любых значениях ‘1’ и ‘2’ разрядов.
Такие уровни привилегий имеет ОС.
А - бит доступа. Этот бит автоматически устанавливается в «1» микропроцессором при обращении к данному разделу или странице для записи или чтения.
D – бит «мусора». В указателе кадра страницы этот бит устанавливают в «1» при записи на данную страницу. Для указателей таблиц страниц значение бита D является неопределенной.
Биты D и A используются ОС, поддерживающей виртуальную память, для определения в ОЗУ тех разделов и страниц, которые подлежат удалению из ОЗУ, поскольку к ним долгое время не было обращения. Проверку и сброс этих разрядов выполняет ОС.
Алгоритм формирования физического адреса:
Содержимое CR3 (регистр управления) задает старшие 20 разрядов базового адреса для входа в каталог раздела. Для получения физического адреса строки каталога разделов к этим 20 разрядам добавляется 10-тиразрядное поле TABLE линейного адреса и 2 нулевых младших разрядов. По полученному таким образом адресу обращаются к каталогу разделов, откуда выбирают указатели входа в таблицу страниц. Этот указатель содержит 20-разрядный базовый адрес таблицы страниц. К этим 20 разрядам добавляется поле PAGE и 2 нулевых младших разряда. В результате получается адрес строки таблицы страниц. В этой строке находится указатель входа в страницу, содержащий 20-разрядный базовый адрес страницы. Добавление к этому базовому адресу 12-тиразрядного поля BYTE дает физический адрес байта.
Существенное
сокращение времени преобразования
адресов в микропроцессоре достигается
путем внутренней ассоциативной памяти,
которая называется «буфером ассоциативной
трансляции» и обозначается TLB.
Буфер с ассоциативной трансляцией TLB
Буфер с ассоциативной
TLB представляет собой память с ассоциативной выборкой, которая содержит 20-ти разрядные базовые адреса 32-х страниц, то есть, старшие 20 разрядов физического адреса страницы. Каждый из базовых адресов имеет свой признак (тег). В качестве тега используются старшие 20 разрядов линейного адреса, то есть поля TABLE и PAGE. Ускорение формирования физического адреса достигается за счет того, что старшие 20 разрядов физического адреса извлекаются из TLB за одно обращение к этой памяти и сразу же пересылает в регистр физического адреса. Таким образом, если старшие 20 разрядов физического адреса находятся в TLB, то не требуется запускать сложный универсальный алгоритм формирования физического адреса и за счет этого сэкономить время.
Формирование физического
При поступлении в блок управления страницами линейного адреса его старшие 20 разрядов сравниваются с тегами физических адресов, хранящихся в TLB. Если обнаруживается совпадение этих разрядов с каким-либо из тегов, то из TLB выбирается соответствующий этому тегу базовый адрес. Страничный диспетчер формирует 32-хразрядный физический адрес, в котором выбранный из TLB базовый адрес задает 20 старших разрядов, а поле BYTE линейного адреса – 12 младших разрядов.
В случае, когда базовый адрес страницы находится в TLB, называется КЭШ-попаданием. При этом не требуется обращаться к ОЗУ для выборки указателя входа в таблицу страниц и в саму страницу, т.е не требуется запускать универсальный алгоритм формирования физического адреса. В случае КЭШ попадания физический адрес формируется с помощью TLB, так как показано на рисунке.
Если базовый адрес нужной страницы отсутствует в TLB, то такое обращение называется КЭШ-промахом. При этом микропроцессор выполняет описанную выше процедуру формирования физического адреса с помощью каталога разделов и таблиц страниц. Полученный при этом из таблицы страниц 20 - разрядный базовый адрес вместе с соответствующими 20 разрядами старшей части адреса (тегом) записывается в свободную или дольше других занимаемую ячейку TLB. Таким образом, обеспечивается непрерывное обновление содержимого TLB, т.е. в TLB находится информация о начальных адресах тех 32 страниц, которые выполняются в данный момент времени.
Помимо
тега и начального адреса страницы в TLB
хранится дополнительная информация,
позволяющая в частности определить, какую
строку в TLB можно заменить на новую строку,
содержащую информацию о начальном адресе
той страницы, к которой произошло первое
обращение. Для этого каждая строка TLB
дополняется бит D, который установливается
в “1” при обращении к этой странице. Этот
бит D проверяется и сбрасывается в “0”
ОС при определении той строки TLB, которая
подлежит удалению, с тем чтобы освободить
место для новой строки. Т.к. TLB хранит адреса
только 32 страниц объемом 4 кб каждая, то
микропроцессор может непосредственно
формировать физический адрес только
для 128 кб памяти (4 х 32). При этом по статистике
вероятность КЭШ попадания равна 0,98. Таким
образом, только в 2-х случаях из 100 будут
промахи, которые требуют двухступенчатого
преобразования адресов с использованием
универсального алгоритма, т.е. с использованием
каталогов, разделов и страниц.
Организация виртуальной памяти
Рассмотренный механизм страничной организация памяти может быть легко использован для организации уже виртуальной памяти. Страничную виртуальную организацию памяти поддерживает бит Р (бит присутствия) это нулевой разряд указателя.
В системе с виртуальной памятью бит Р должен точно отображать месторасположение виртуальной страницы, которая может находиться либо в ОЗУ, либо на диске. ОС следит за состоянием бита Р. Микропроцессор автоматически проверяет состояние бита Р в каталоге таблиц страниц и в самой таблице станиц, при каждом обращении к памяти. Если Р=1, то это значит, что та страница к которой происходит обращение находится в ОЗУ. В этом случае производится трансляция адресов либо с универсальным алгоритмом, либо с TLB.
Если Р=0, то это значит, что нужной страницы в ОЗУ нет, а эта страница находится на диске, поэтому в случае Р=0 обращение к памяти не выполняется, ситуация квалифицируется как «ошибка страниц» и CPU генерирует исключительную ситуацию. В этом случае управление передается ОС, которая после анализа исключительной ситуации определяет, что произошла ошибка страниц, находит нужную страницу на диске, загружает ее в ОЗУ, устанавливает бит Р «1» и возвращает управление той программе, которая вызвала эту ситуацию.
Таким образом, происходит непрерывное обновление содержимого ОЗУ, т.е. в ОЗУ загружаются те страницы, которые нужны в данный момент времени и удаляются те, обращение к которым долго не производилось. Для определения тех страниц, которые подлежат удалению из ОЗУ, используют биты A и D, т.е. 5 и 6 разряды указателей.
Таким образом, страничная организация памяти используется при организации виртуальной памяти, когда ОС вместе с CPU непрерывно обновляет содержимое ОЗУ, удаляя долго не используемые страницы для записи на освободившееся место нужной в данный момент страницы.
Определим объем виртуальной памяти 32-х разрядного CPU, т.е. объем той памяти, который этот CPU может адресовать.
Объем виртуальной памяти равен максимальному объему сегмента (4 Гб), умноженному на количество этих сегментов.
Количество сегментов определяется объемом глобальной и локальной таблиц дескрипторов . В каждой из этих таблиц создается 213 дескрипторов, что позволяет адресовать 213 сегментов. Таким образом, максимальный объем виртуальной памяти равен:
Таким
образом, микропроцессор имеет технические
средства, которые позволяют адресовать
виртуальную память до 64 Тб, при условии
использования ОС поддерживающей виртуальную
память.
Встроенные средства защиты информации в МП фирмы Intel
Концепции и компоненты защищенного режима
Защищенный режим работы в МП Intel предусматривает аппаратную поддержку различных вариантов защиты информации от помех. Предусмотренные возможности и глубина защиты определяется использованными ОС. Необходимость в защите информации возникла при переходе на многопрограммный режим работы. ЭВМ, допускающие многопрограммный режим работы должны обеспечивать следующие требования:
Рассмотрим, как обеспечиваются перечисленные требования в МП Intel:
При разработке своей программы пользователь не должен учитывать взаимное расположение своей и других программ в оперативной памяти и могут рассчитывать на любое место в памяти. МП при этом предусматривает возможность локализации негативных последствий программных ошибок в пределах адресных пространств соответствующих программ. Это решается механизмом управления виртуальной памятью. Виртуальная память предусматривает гибкое программное распределение ресурсов в памяти, динамическую переадресацию и разделение адресных пространств совместно выполняемых программ. Виртуальная память допускает многопрограммное выполнение прикладных программ, но при этом программы изолируются друг от друга таким образом, что ошибки в одной из них не влияют на корректное выполнение других программ. Когда программа осуществляет некорректное обращение к памяти, то механизм виртуальной памяти блокирует это обращение и сообщает ОС о попытке нарушения защиты. В МП Intel реализованы два уровня виртуальной памяти: верхний и нижний.