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

4.1.1.3. Объединенные буфера трансляции адресов

Некоторые модели процессоров могут сливать ITC и DTC в объединенный кэш трансляции. Минимальное количество объединенных элементов равно 2 (1 для инструкций и 1 для данных). Процессоры могут обслуживать обращения к памяти для выборки инструкций с элементами TC, первоначально установленными в DTC и обслуживать обращения к памяти данных с трансляциями, первоначально установленными в ITC. Для гарантии непротиворечивости операции при разных реализациях процессоров, программному обеспечению рекомендуется не устанавливать различные трансляции в ITC или DTC для одного и того же виртуального региона и виртуального адреса. Вставки ITC могут удалять элементы DTC. Вставки DTC могут удалять элементы ITC. Сбросы TC удаляют элементы ITC и DTC.

Регистры трансляции инструкций и данных не могут быть объединены. Элементы DTR не могут быть использованы обращениями инструкций, а элементы ITR не могут быть использованы обращениями данных. Вставки и сбросы ITR не удаляют элементы DTR. Вставки и сбросы DTR не удаляют элементы ITR.

4.1.1.4. Сбрасывающее поведение вставок и сбросов tlb

Трансляции, содержащиеся в кэшах трансляции (TC) и регистрах трансляции (TR), поддерживаются в непротиворечивом состоянии с помощью того, что гарантируется, что вставки TLB удалят существующие перекрытия элементов до того, как будут установлены новые TR или TC. Аналогично, сбросы TLB, которые частично или полностью перекрываются с существующими трансляциями, могут удалить все перекрывающиеся элементы. В этом контексте термин «перекрытие» (overlap) означает, что есть две трансляции с одним и тем же идентификатором региона (но не обязательно идентичными номерами виртуальных регионов), и с частично или полностью накладывающимися диапазонами виртуальных адресов (определяемыми виртуальным адресом и размером страницы). Примеры: две 4К-байтных страницы с одним и тем же виртуальным адресом, либо 8К-байтная страница с виртуальным адресом 0х2000 и 4К-байтная страница с виртуальным адресом 0х3000.

region

virtual address

registers

63 61

60

0

rr0

rr1

rr2

region ID

3

virtual region number (VRN)

virtual page number (VPN)

rr7

h ash

24

search

search

search

region ID

key

VRN

virtual page num (VPN)

rights

physical page num (PPN)

Translation Lookaside Buffer (TLB)

Рис. 4.4. Схема поиска виртуального адреса для вставок и сбросов

Как описано в разделе 4.1, каждый TLB может содержать поле VRN, а биты виртуального адреса {63:61} могут использоваться как часть соответствия для обращений к памяти (обращений не являющихся вставками или сбросами). Такое связывание трансляции с VRN подразумевает, что поиск данного виртуального адреса (пара: идентификатор региона/VRN) либо в кэше трансляции, либо в регистрах трансляции, может привести к промаху TLB, если обращение к памяти делается через различные VRN (даже если идентификаторы региона в двух регистрах региона являются идентичными). Некоторые модели процессоров могут также пропускать в TLB поле VRN, вызывая TLB поиск при обращениях к памяти для поиска элемента не зависимого от битов VRN. Однако всем моделям процессора требуется, в процессе операций сброса и вставки кэша трансляции, сбросить все возможные трансляции, соответствующие идентификатору региона и виртуальному адресу, не зависимо от заданного VRN.

Процессор может перестараться в сбросе (overpurge) элементов кэша трансляции, т.е. он может произвести сброс большего диапазона виртуальных адресов, чем требует перекрытие. Так как размеры станицы равны 2 в степени “size” и выровнены при этом на границу 2 в той же самой степени, то сброшенные элементы могут быть либо надмножеством тождественных, либо подмножеством указанного диапазона сброса.

Табл. 4.1 определяет поведение сброса различных инструкций вставки и сброса TLB.

Табл. 4.1. Поведение сброса инструкций TLB

Инструкции TLB

Кэш трансляции

Регистры трансляции

инструкций

данных

инструкций

данных

itc.i

Нужно сброситьA

Можно сброситьB

Машинная проверкаC

Не нужно сбросаD

itr.i

Нужно сбросить

Можно сбросить

Машинная проверка

Не нужно сброса

itc.d

Можно сбросить

Нужно сбросить

Не нужно сброса

Машинная проверка

itr.d

Можно сбросить

Нужно сбросить

Не нужно сброса

Машинная проверка

ptc.l

Нужно сбросить

Нужно сбросить

Машинная проверка

Машинная проверка

ptc.g, ptc.ga (локальные)E

Нужно сбросить

Нужно сбросить

Машинная проверка

Машинная проверка

ptc.g, ptc.ga (удаленные)E

Нужно сбросить

Нужно сбросить

Не нужно сброса

Не нужно машинной проверкиF

Не нужно сброса

Не нужно машинной проверки

ptc.e

Нужно сбросить

Нужно сбросить

Не нужно сброса

Не нужно сброса

ptr.i

Нужно сбросить

Можно сбросить

Нужно сбросить

Не нужно сброса

ptr.d

Можно сбросить

Нужно сбросить

Не нужно сброса

Нужно сбросить

  1. Нужно сбросить: требуется, чтобы все частично или полностью перекрываю­щиеся трансляции были удалены до операции вставки или сброса.

  2. Можно сбросить: показывает, что процессор может удалить частично или полностью перекрывающиеся трансляции до операции вставки или сброса. Однако, программное обеспечение не должно полагаться на сброс.

  3. Машинная проверка: показывает, что процессор вызовет аварийный выход «Машинная проверка», если сделана попытка вставки или сброса частично или полностью перекрывающейся трансляции. Аварийный выход «Машинная проверка» не может возникнуть синхронно со своей операцией вставки или сброса TLB, но гарантированно возникнет не позднее операции сериализации последующей инструкции.

  4. Не нужно сброса: процессор не удалит (или не проверит) частично или полностью перекрывающиеся трансляции до операции вставки или сброса. Программное обеспечение не должно полагаться на сброс.

  5. ptc.g, ptc.ga: две формы глобальных TLB сбросов, существуют в разновидностях: локальная и удаленная. Локальная форма показывает, что ptc.g или ptc.ga были инициализированы на локальном процессоре. Удаленная форма показывает, что это является входным TLB сигналом выключения для удаленного процессора.

  6. Не нужно машинной проверки: Удаленные операции ptc.g или ptc.ga, не должны привести к сбросу локальных регистров трансляции. Удаленные операции ptc.g или ptc.ga, не должны привести к машинной проверке локального процессора.