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

4.1.7. Среда vhpt

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

  • Для данных и обращений без доступа (включая IA-32):PTA.ve=1, иRR[VA{63:61}].ve=1, иPSR.dt=1.

  • Для выборок инструкций (включая IA-32):PTA.ve=1, иRR[VA{63:61}].ve=1, иPSR.dt=1, иPSR.it=1, иPSR.ic=1.

  • Для обращений RSE:PTA.ve=1, иRR[VA{63:61}].ve=1, иPSR.dt=1, иPSR.rt=1.

Если обходчик не разрешен и делается попытка обращения к VHPT, то вызывается ошибка «Альтернативный промахTLBинструкций/данных». В остальной части этого раздела предполагается, чтоVHPTявляется разрешенной.

Регистры регионов должны поддерживать все реализованные размеры страниц, поэтому программа может использовать IHA,thashиttagдля управленияVHPT. Инструкцииthashиttagопределены для работы со всеми размерами страниц, поддерживаемыми кэшем трансляции, не зависимо от размеров страниц, поддерживаемых обходчикомVHPT. Программа должна гарантировать, чтоPTAинициализирован и сериализован до запускаttag и thash, до разрешения обходчикаVHPTили запуска обращения, которое может вызвать обходчикVHPT. Минимальный размерVHPTсоставляет 32К-байта (PTA.size=15), и операционная система должна гарантировать, чтоVHPTвыровнена на естественную границу структуры, в противном случае, работа процессора не определена. Например, 64К-байтная таблица должна быть выронена на 64К-байтную границу.

Обращения обходчика VHPTкVHPT, выполняются на уровне привилегий 0, не зависимо от состоянияPSR.cpl. Упорядочивание байтовVHPTопределяется состояниемDCR.be. ЕслиDCR.be=1, то обращения обходчикаVHPTвыполняются используя формат памяти по возрастанию, в противном случае, обращения обходчикаVHPTвыполняются по убыванию. ОбращениеVHPTдлинного формата, согласуется с регистрами контрольных точек данных, как 32-байтовое обращение.

Таблица VHPTявляется доступной для процессора, только еслиVHPTотображается виртуально в областях памяти доступных для кэширования. Обходчик может обратиться кVHPTспекулятивно, т.е. могут делаться ссылки, которые не требуются в порядке выполнения программы. ЛюбыеVHPTилиTLBошибки, которые встречаются при поиске обходчикомVHPT, не сигнализируются до тех пор, пока ошибочная трансляция не потребуется в порядке выполнения программы. ЕслиVHPTотображается в области не кэшируемой памяти, то не будет обращений кVHPTи всеTLBпромахи дадут в результате ошибку «ПромахTLBинструкций/данных».

Обходчик VHPTаварийно прервет поиск и выставит ошибку «ПромахTLBинструкций/данных», если делается попытка установить трансляции, которые имеют зарезервированные биты или коды, либо если трансляция отображающаяVHPT, сделала одну из следующих ошибок: «Не представленная страница данных», «Потребление страницыNaTданных», «Промах ключа данных», «Разрешение ключа данных», «Бит доступа к данным», «Отладка данных». В любое время, по определяемым реализацией соображениям, обходчикVHPTможет аварийно прервать поиск и выставить ошибку «ПромахTLBинструкций/данных».

Процессорный обходчик VHPTтребуется для чтения и вставки элементовVHPTиз памяти атомарно (8-байтовый атом чтения и вставки для короткого формата, и 32-байтовый атом чтения и вставки для длинного формата). Некоторые реализованные стратегии для достижения этой атомарности делают следующее:

  • Если обходчик выполняет чтение VHPTс многократными кэш обращениями, которые не сделаны как атомарный модуль, и если модификация части элемента, который устанавливается, сделана между этими множественными чтениями, то обходчик должен аварийно прервать вставку и выставить ошибку «ПромахTLBинструкций/данных».

  • Если обходчик выполняет чтение VHPTи вставку элемента вTLBкак отдельные действия, а не как атомарный модуль, и если модификация части элемента, который устанавливается, сделана между чтением и вставкой, то обходчик должен либо аварийно прервать вставку и выставить ошибку «ПромахTLBинструкций/данных», либо игнорировать модификацию и полностью восстановить старый элемент.

  • Если диапазон сбрасываемых адресов в операции сброса TLB(ptc.l, ptc.e, локальных или удаленныхptc.g илиptc.ga, ptr.i илиptc.d) накладывается на виртуальный адрес, который обходчик пытается вставить, то обходчик должен либо аварийно прервать вставку и выставить ошибку «ПромахTLBинструкций/данных», либо отложить операцию сброса до тех пор, пока либо обходчик завершит вставку, либо аварийно прервет обход.

Механизм RSEможет вызвать ошибкуVHPTтолько на принудительной операции сливания/заливанияRSE, как это определено для успешного выполнения инструкцийalloc, loadrs, br.ret, rfi. АктивныеRSEоперации могут генерировать спекулятивные обходыVHPT, если случившиеся ошибки не сообщены.

Ошибка «Промах TLBданных», произошедшая во время обходаVHPT, разрешена, но еслиPSR.ic=1, то она преобразуется в ошибку «ТрансляцииVHPT», как это определено в следующем разделе.