Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
MProc / M9 / Системная архитектура часть 4..doc
Скачиваний:
41
Добавлен:
16.04.2013
Размер:
751.1 Кб
Скачать

4.1.8. Поиск трансляции

Общая последовательность поиска и VHPTпоказана на рис. 4.16. При неудачномTLBпоиске, если обходчикVHPTзапрещен для региона обращения, то вызывается ошибка «Альтернативный промахTLBинструкций/данных». Если обходчикVHPTразрешен для региона обращения, то следует обращение кVHPTдля локализации промахнувшейся трансляции. См. раздел 4.1.7 «СредаVHPT». Если дополнительные промахиTLBпроисходят в процессе обращений обходчикаVHPT, то вызывается ошибка «ТрансляцияVHPT». Если обходчикVHPTне находит требуемую трансляцию вVHPTили поиск завершается аварийно, то вызывается ошибка «ПромахTLBинструкций/данных». В противном случае элемент загружается вITCилиDTC. Если же упомянутые условия ошибки не обнаружены, то процессор может загрузить элемент вITCилиDTC, даже если порядок выполнения программы не требует трансляции.

Вставки обходчика VHPTвTC, следуют тем же самым правилам очистки перед выполнением, которым подчиняются программные вставки (см. табл. 4.1 «Поведение сброса инструкцийTLB»). Вставки обходчикаVHPTвDTC, ведут себя подобноitc.d; вставки обходчикаVHPTвITC, ведут себя подобноitc.i. Если обращение инструкции приводит в результате к обходуVHPT, который отсутствует в данныхTLB, то вставкаDTCдля трансляции дляVHPT, действует подобноitc.d. Вставки обходчикаVHPTв элементы, которые существуют в регистрахTR, не разрешены. Установлено, что обходчикVHPTможет искать любой виртуальный адрес, но если адрес отображаетсяTR, то он не вставляется вTC. Программное обеспечение не должно создавать накладывающиеся трансляции вVHPT, которые являются большими, чем текущие существующиеTRтрансляции. Вставка обходчикаVHPTможет привести к аварийному завершению «Машинная проверка», если существует наложение междуTRи вставляемым элементомVHPT.

После того как загружен элемент трансляции, проверяются дополнительные ошибки TLB; они включаются в приоритетном порядке: «Страница не представлена», «УпотреблениеNaT-страницы», «Промах ключа», «Разрешение ключа», «Права доступа», «Бит доступа» и «Бит мусора». Табл. 4.9 описывает ошибки связанные с обходчикомVHPTиTLB.

При неудачном поиске TLB/VHPT, процессор загружает регистры прерывания и трансляцию по умолчанию, как это описано в разделе 8.1 «Описания вектора прерывания» при описании параметров ошибки трансляции. Если операционная система принимает значения по умолчанию, то только часть физического адреса элементаTLB, нужна для вставкиTLB.

Virtual Address

found

Search TLB

not found

Alternate Instruction TLB Miss fault

no

Inst VHPT Walker Enabled

yes

VHPT walker TLB Miss

VHPT Instruction fault

Search VHPT

Instruction TLB Miss fault

failed search: tag mismatch or walker abort

found

Faults:

Page Not Present

NaT Page Consumption

Key Miss

Key Permission

Access Rights

Access Bit

Debug

TC Insert

fault checks

no fault

Access Memory

Instruction TLB VHPT Search

Virtual Address

Unimplemented Data Address fault

no

implemented VA?

yes

Data Nested TLB fault

Search TLB

0

PSR.ic

not

found

Alternate Data TLB Miss fault

Data VHPT Walker Enabled

Data Nested TLB fault

0

yes

PSR.ic

VHPTwalker

VHPTData

TLB Miss

fault

Search VHPT

Data Nested TLB fault

PSR.ic

failed search: tag mismatch

or walker abort

found

Data TLB Miss fault

Faults:

Page Not Present

NaT Page Consumption

Key Miss

Key Permission

Access Rights

Dirty Bit

Access Bit

Debug

Unaligned Data Reference

TC Insert

fault checks

no fault

Access Memory

Unsupported Data Reference

Data TLB VHPT Search

Рис. 4.16. Поиск TLB/VHPT

Табл. 4.9. Ошибки поиска TLBиVHPT

Ошибка

Описание

Инструкции/данные VHPT

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

Альтернативный промах TLBинструкций/данных

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

Промах TLBинструкций/данных

Вызывается, если обходчик VHPTразрешен, но:

  • Процессор не может локализовать требуемый элемент VHPT

  • Процессор аварийно прерывает поиск VHPT, по причинам, определяемым реализацией

  • Не реализован обходчик VHPT

  • Регион обращения определяет привилегированный размер страницы не поддерживающий VHPT

  • В трансляции используются зарезервированные или не реализованные PPNбиты

  • Хэш адрес попадает в не реализованное адресное пространство

  • Хэш адрес соответствует регистру отладки данных

По сути, обработчики промахов TLBинструкций/данных, являются программными обходчикамиVHPT.

Вложенные данные TLB

Вызывается, если произошла одна из ошибок «Промах TLBданных», «Альтернативный промахTLBданных», «Трансляция данныхVHPT» иPSR.ic=0 и нет летящего состояния (например, ошибка в обработчике промахаTLB). Ошибка вложенных данныхTLBразрешает программному обеспечению для того, чтобы избежать накладных расходов для потенциальных ошибок промахаTLBданных.

Не представлена страница инструкций/данных

Вызывается, если Р-бит вызываемой трансляции равен 0.

Употребление NaTстраницы инструкций/данных

Не спекулятивная загрузка, сохранение, принудительная RSEзагрузка, сохранение, выполнение, либо семафорная операция обращается к странице, которая помечена в физической памяти атрибутомNaTPage. Детальнее см. раздел 4.4.8 «Атрибут не вещь (NaTPage)».

Промах ключа инструкций/данных

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

Разрешение ключа инструкций/данных

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

Права доступа инструкций/данных

Отклонено, постранично гранулированное чтение, запись выполнение и обращения привилегированного уровня.

Бит мусора данных

При сохранении или семафорной операции бит мусора обращающейся трансляции, равен 0.

Бит доступа инструкций/данных

Бит доступа обращающейся трансляции, равен 0.