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

4.1.1.1. Регистры трансляции (tr)

Секция регистров трансляции (TR) TLB, является полностью ассоциативным массивом, заданным для хранения трансляций, которые прямо управляются программным обеспечением. Программа может явно вставлять трансляцию в TR, с помощью указания номера слота регистра. Трансляция удаляется из TR, с помощью указания виртуального адреса, размера страницы и идентификатора региона. Регистры трансляции позволяют операционной системе «вставлять» (to pin) в TLB критические трансляции виртуальной памяти. Примеры включают пространства ввода/вывода, области ядерной памяти, буфера окон, таблицы страниц, коды чувствительных прерываний и т.п. Поскольку выборки инструкций для обработчиков прерываний выполняются с использованием виртуальной адресации, то диапазоны виртуальных адресов, содержащие программную трансляцию, пропускающую подпрограммы и критические последовательности прерываний, должны быть вставлены, либо, в противном случае, будут вызваны дополнительные ошибки TLB. Другие виртуальные отображения могут быть вставлены по соображениям эффективности.

Элементы помещаются в специальные TR-слоты, с помощью инструкции itr (Insert Translation Register – вставить регистр трансляции). Если трансляция вставлена, то процессор не будет заменять трансляцию для освобождения места для других трансляций. Локальные трансляции могут удаляться программно, запуском инструкции ptr (Purge Translation Register – сбросить регистр трансляции).

Вставки и сбросы TR могут явиться причиной удаления других TR и/или TC элементов (за деталями обратитесь к разделу 4.1.1.4). Перед вставкой элемента TR, программное обеспечение должно гарантировать, что для любых TR (включая записываемый TR) нет наложений трансляций, в противном случае, может быть вызван аварийный выход «Машинная проверка», либо процессор может продемонстрировать другое не определенное поведение. Элементы регистров трансляции могут быть удалены процессором из-за аппаратных или программных ошибок (errors). При обнаружении ошибок процессор может удалить элементы TR, а через аварийный выход «Машинная проверка» вызывается уведомление.

Имеется, по крайней мере, 8 инструкций и 8 TR-слотов данных, реализованных на всех моделях процессора. Дальнейшую информацию о количестве регистров трансляции реализованных в Itanium-процессоре следует посмотреть в документации специфицирующей процессор. Регистры трансляции поддерживают все реализованные размеры страниц и должны быть реализованы в одноуровневом, полностью ассоциативном массиве. Любой слот регистра может быть использован для указания отображения любого виртуального адреса. Регистры трансляции не доступны для прямого чтения.

В некоторых моделях процессора, регистры трансляции физически реализованы как подсекция массива кэша трансляции. TR-слоты, содержащие действительные (valid) значения, игнорируются процессором при вставке в TC. Однако, недействительные (invalid) TR-слоты (не использованные слоты) могут быть использованы процессором как TC элементы. В результате, программные вставки в предварительно недействительные элементы TR, могут сделать в том же слоте элемент TC недействительным.

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