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

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

hash

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, не должны привести к машинной проверке локального процессора.