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

4.1.6.2. Длинно форматный vhpTхэш

Длинно форматный VHPT– это одна большая непрерывная хэш таблица, которая располагается в регионе определенномPTA.base. Как указано на рис. 4.15, обходчикVHPTиспользует виртуальный адрес, предпочтительный размер страницы для региона и полеPTA.sizeдля вычисления хэш индекса в длинном форматеVHPT. ПолеPTA.base{63:15} задает базовый адрес и регионVHPTдлинного формата. ПолеPTA.sizeотражает размер хэш таблицы и обычно устанавливается в значение существенно меньшее, чем 264; точное значение основывается на требованиях эффективности операционной системы.

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

HPN = VA{IMPL_VA_MSB:0} u>> RR[VA{63:61}].ps;

Hash_Index = tlb_vhpt_hash_long(HPN,RR[VA{63:61}].rid);

// model-specific hash function

VHPT_Offset = Hash_Index << 5;

VHPT_Addr = (PTA.base{63:61} << 61) |

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

& Mask{60:15})) << 15) | VHPT_Offset{14:0};

Рис. 4.15. Хэш-функция длинного формата VHPT

Длинно форматная хэш функция (tlb_vhpt_hash-long) и функция генерации тега длинного формата, являются зависимыми от реализации. Однако, во всех моделях процессоров функции хэша и тега должны исключить номер виртуального региона (биты виртуального адреса {63:61}) из вычислений хэша и тега. Это гарантирует, что уникальный 85-битный глобальный виртуальный адрес хэшируется в тот же самыйVHPTхэш адрес, независимо от региона адрес которого отображается. Все реализации процессоров гарантируют, что старший бит тега (битti) является нулевым для всех допустимых тегов. Хэш индекс и тег, вместе должны уникально идентифицировать трансляцию. Процессор должен гарантировать, что индексы в хэшированной таблице, предпочтительный размер таблицы страниц региона и тег, заданный в индексированном элементе, могут быт использованы в обратной хэш функции, для уникального восстановления идентификатора региона и виртуального адреса, использованных для генерации индекса и тега. Это должно быть возможно для всех поддерживаемых размеров страницы, реализаций виртуальных адресов и допустимых значений идентификаторов регионов. Хэш функция обратима, если использовать хэш результат и производит все исходные биты кроме одного в результате обратной хэш функции. Самая простая хэш функция и обратная хэш функция – это просто побитовая операцияXOR(исключающее ИЛИ). Чтобы гарантировать уникальность, программа должна следовать таким правилам:

  1. Программа должна использовать только один предпочтительный размер страниц для каждого уникального идентификатора региона в любой данный момент времени, в противном случае, работа процессора не определена.

  2. Все теги для трансляций в данном регионе, должны быть созданы с предпочтительным размером страниц, назначенным для региона, в противном случае, работа процессора не определена.

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

  4. Для повторного использования идентификатора региона с различающимся предпочтительным размером страницы, программа должна сначала убедиться, что VHPTне содержит доступных для вставки трансляций для этогоrid, сбросить все трансляции для этогоrid, от всех процессоров, которые возможно использовали его, а затем перезаписать регистр региона новым предпочтительным размером страницы.