
Встроенные микропроцессорные системы / ВстроенныеСистемы / mps6
.docЛекция 6
2.5. Устройство управления памятью
Главная функция УУП(MMU) состоит в преобразовании (трансляции) логических (эффективных) адресов в физические (действительные) адреса для доступа к ОП и УВВ, отображенных на память. Дополнительно УУП обеспечивает различные уровни защиты доступа к блокам, сегментам и страницам. Рассмотрим организацию УУП на примере процессора с архитектурой PowerPC.
В случае реализации виртуальной памяти механизм трансляции адресов использует дескрипторы (описатели) сегментов и таблицы страниц. Информация о сегменте транслирует логический адрес во внутренний виртуальный адрес, а информация в таблице страниц транслирует виртуальный адрес в физический.
Дескрипторы сегментов размещаются в регистрах сегментов процессора или таблице сегментов в ОП. Буфер трансляции страниц (TLB) является кэш-памятью для недавно используемой страницы из таблицы страниц (PTE) расположенной в ОП.
В простом варианте (без виртуальной памяти) адресное пространство может быть разбито на четыре блока переменной длины, для каждого из которых назначается адресное пространство в ОП и выполняется трансляция адресов блоков (BAT). Информация о соответствии логических и физических адресов блоков сохраняется в регистрах специальных функций процессора - BAT-регистрах.
В самом простом варианте логический адрес один к одному преобразуется в физический – режим прямой адресации.
2.5.1.Трансляция адресов блоков
Под блоком понимается множество соседних ячеек памяти от 128 Кбайт до 256 Мбайт, выровненное по границе в 128 Кбайт. На рис.2.6. изображена структура BAT-регистра (всего таких регистров по 4 для адресов данных и команд).
Поле BEPI (индекс блока) сравнивается с 15 старшими разрядами эффективного адреса. Совпадение означает, что соответствующий регистр должен быть использован для трансляции адреса.
Поле BL определяет длину блока в виде маски .00…0 –маска блока в 128 Кбайт, …, 11…1- маска блока в 256 Мбайт.
Поле BRPN совместно с BL генерируют физический адрес памяти.
Поле WIMG определяет режимы доступа к памяти/кэш-памяти:
W – сквозная запись;
I – запрет кэширования блока;
M – когерентность памяти;
G – защита от доступа по чтению;
PP–биты защиты блока.
На рис.2.7 изображена организация массива BAT-регистров, являющегося полностью ассоциативным. Пятнадцать старших разрядов логического адреса одновременно сравниваются со значениями поля BEPI всех BAT-регистров. При совпадении остальные поля найденного регистра используются для формирования физического адреса, как показано на рис.2.8.
2.5.2. Трансляция адресов страниц
Трансляция адресов страниц использует дескрипторы сегментов, которые содержат виртуальный адрес и записи таблицы страниц (PTE), содержащие соответствие между виртуальным и физическим адресом.
PTE объединяются в группы PTEG по 8 записей. Дескрипторы сегментов и PTE настраиваются операционной системой. На рис.2.9 приведена структура таблицы страниц.
На рис.2.10. приведена схема трансляции адреса страницы, где:
SR – номер регистра сегмента;
PI – индекс страницы;
VSID - идентификатор виртуального сегмента;
VPN – номер виртуальной страницы;
PTE – запись таблицы страниц;
RPN – номер физической страницы.
На рис.2.11 приведена структура PTE, где:
V – бит достоверности записи;
H – признак алгоритма хеширования;
C – признак изменения страницы;
R – признак обращения к странице;
API – аббревиатура индекса страницы.
Поле VSID используется для идентификации записи при поиске в таблице страниц.
Биты C и R хранят историю обращения по записи и чтению и используются ОС для определения необходимости перезаписи страницы во вторичную память при необходимости освобождения места в ОП для новой страницы.
Таблица страниц размещается в ОП, но для повышения производительности ее недавно используемые записи кэшируется в TLB процессора. Это уменьшает время поиска нужной записи, необходимой для трансляции адресов страниц. Если требуемой PTE нет TLB, то поиск ведется в ОП и при попадании она копируется в TLB.
PTE может быть размещена в одном из двух PTEG, а внутри PTEG в одном из восьми возможных мест. Таким образом требуемая PTE может находится в 16 возможных местах и если ее там не окажется, то промах.
Физический адрес PTEG формируется конкатенацией базового адреса начала таблицы страниц, находящемся в специальном регистре процессора (SDR1) и хешированного VPN. Поиск внутри PTEG ведется на основании сравнения VSID из VPN с VSID PTE.