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

4.1.6. Хэширование vhpt

Для программного обеспечения, процессор обеспечивает два метода определения адреса элемента VHPT: инструкцияthash(TranslationHash– хэш трансляции) и регистрIHA(InterruptionHashAddress– хэш адрес прерывания) описанный в разделе 3.3.5.9. Виртуальный адрес элементаVHPTпомещается в регистрIHAпри активизации трансляцииVHPTили ошибкиTLB. В длинном формате,IHAможет быть использован как стартовый адрес для сканирования дополнительных конфликтных цепочек (ассоциативностей) определенных операционной системой, либо для выполнения программного поиска. Инструкцияthashиспользуется для генерации адреса элементаVHPTвне обработчиков прерываний и обеспечивает точно такую же хэш-функцию, которая используется при вычисленииIHA.

Инструкция thashпроизводит адрес элементаVHPTдля данного виртуального адреса и идентификатор региона, в зависимости от установки битаPTA.vf. ЕслиPTA.vf=0, то инструкцияthashвозвращает индекс короткого формата базирования региона, как описано в разделе 4.1.6.1 «Индекс короткого форматаVHPTбазирования региона». ЕслиPTA.vf=1, то инструкцияthashвозвращает хэш длинного формата , как описано в разделе 4.1.6.2 «Хэш длинного форматаVHPT». Инструкцияttagполезна только для хэширования длинного формата, она генерирует уникальный 64-битныйti/tagидентификатор, который будет проверен процессорнымVHPTобходчиком при просмотре данного виртуального адреса и идентификатора региона. Программное обеспечение должно использовать инструкциюttagи либо инструкцию thash, либо регистрIHA, при формировании тегов трансляции и хэш адресов для длинного форматаVHPT. Эти ресурсы включают в себя, задаваемые реализацией, функциональные возможности хэширования длинного формата и улучшают эффективность.

4.1.6.1 Индекс короткого формата vhpTбазирования региона

В коротком формате базирования региона, таблица линейных страниц для каждого региона находится непосредственно в упомянутом регионе. В результате, VHPTкороткого формата состоит из отдельных по-регионных таблиц страниц, которые закрепляются в каждой области с помощьюPTA.base{60:15}. Для регионов, в которыхVHPTразрешена, операционная система требуется для обслуживания по-регионных таблиц линейных страниц. Как определено на рис. 4.14, ОбходчикVHPTиспользует виртуальный адрес, предпочтительный размер страницы для региона и полеPTA.sizeдля вычисления линейного индекса в коротком форматеVHPT.

Mask = (1 << PTA.size) - 1;

VHPT_Offset = (VA{IMPL_VA_MSB:0} u>> RR[VA{63:61}].ps) << 3;

VHPT_Addr = (VA{63:61} << 61) |

(((PTA.base{60:15} & ~Mask{60:15}) | (VHPT_Offset{60:15} &

Mask{60:15})) << 15) |

VHPT_Offset{14:0};

Рис. 4.14. Функция индекса короткого форматаVHPTбазирования региона

Поле размера короткого формата VHPT(PTA.size) задает размер отображаемого виртуального адресного пространства. В коротком формате, максимальный архитектурный размер таблицы составляет 252байт на регион. Для отображения полного региона 261байт, при использовании 4К-байтных страниц, требуется 2(61-12)=249страниц. ЭлементVHPTкороткого формата занимает 8 байт = 23байт. В результате, максимальный размер таблицы составляет 2(61-12+3)=252байт на регион. Если короткий формат используется для отображения адресного пространства меньшего чем 261, то может быть использована меньшая таблица короткого формата (PTA.size< 52). Отображение адресного пространства 2n, с помощью 4К-байтных страниц, требует, как минимум,PTA.size=(n-9).

В коротком формате инструкция thashвозвращает индекс короткого форматаVHPTбазирования региона заданный на рис. 4.14. Инструкцияttagне используется с коротким форматом. Ошибки промахаTLBи трансляцииVHPTзаписывают регистрIHAиндекс короткого форматаVHPTбазирования региона заданный на рис. 4.14.