Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
MProc / M8 / Исполнительная среда Itanium.doc
Скачиваний:
43
Добавлен:
16.04.2013
Размер:
340 Кб
Скачать

3.1.8.4. Указатель вспомогательной памяти для сохранений памяти (bspstore – ar18)

Backing Store Pointer for Memory Stores. Является 64 битным регистром (рис.3.5). Он содержит адрес места в памяти, куда RSE будет сливать следующее значение. См. раздел 6.1. «Обзор RSE и внешней памяти» во втором томе.

63

3

2

0

Указатель

ignore

61

3

Рис.3.5. Формат регистра BSPSTORE.

3.1.8.5. Сборный регистр NaT для rse (rnat – ar19)

RSE NaT Collection Register. Является 64 битным регистром (рис.3.6), который используется RSE для временного хранения NaT битов, когда он освобождает основные регистры. Бит 63 всегда читается как 0 и игнорируется при записи. См. раздел 6.1. «Обзор RSE и внешней памяти» во втором томе.

63

0

ign

RSE NaT Collection

1

63

Рис.3.6. Формат регистра RNAT

3.1.8.6. Регистр значения сравнения и обмена (CCV – AR32)

Compare and Exchange Value Register. Является 64 битным регистром, содержащим значение сравнения, которое используется как третий исходный операнд в Itanium инструкции cmpxchg.

3.1.8.7. Сборный регистр NaT пользователя (UNAT – AR36)

User NaT Collection Register. Является 64 битным регистром, используемым для временного хранения NaT битов при сохранении и восстановлении основных регистров с помощью инструкций ld8.fill и st8.spill.

3.1.8.8. Регистр состояния с плавающей точкой (FPSR – AR40)

Floating-point Status Register. Этот регистр управляет ловушками, режимами округления, точностью, флагами и другими управляющими битами для инструкций Itanium с плавающей точкой. Регистр FPSR не управляет и не отражает состояние инструкций IA-32 с плавающей точкой. Детальнее см. раздел «Регистр состояния с плавающей точкой».

3.1.8.9. Счетчик интервала времени (ITC –AR44)

Interval Time Counter. Это 64-битный регистр, который подсчитывает количество «тиков» частоты процессора. Приложения могут прямо считывать ITC для вычислений связанных со временем и для измерения производительности. Системные программы могут закрыть не привилегированный доступ к подсчету интервала времени. В случае такого закрытия, чтение ITC с уровнем привилегий ниже, чем был у закрывшей программы, вызовет ошибку «Привилегированный регистр». Регистр ITC может быть изменен только при большем уровне привилегий. Имеющийся в IA-32 регистр TSC (Time Stamp Counter), является эквивалентом ITC. Регистр ITC может быть прямо прочитан с помощью IA-32 инструкции rdtsc (read time stamp counter). Системные программы могут закрыть ITC для непривилегированного IA-32 доступа. В этом случае, IA-32 чтение ITC с уровнем привилегий ниже, чем был у закрывшей программы, вызовет IA-32 ошибку GP (General Protection).

3.1.8.10. Предыдущее функциональное состояние (pfs – ar64)

Previous Function State. Регистр PFS содержит несколько полей: маркер предыдущего окна (previous frame marker – pfm), счетчик предыдущего эпилога (previous epilog count – pec), предыдущий уровень привилегий (previous privilege level – ppl). На рис. 3.7 представлен формат PFS, а в табл.3.5 описаны поля PFS. Для ускорения процедурного вызова, при вызове, эти значения копируются автоматически из регистра CFM, из регистра EC, а также из поля PSR.cpl (Current Privilege Level in the Processor Status Register).

Если выполняются br.call или brl.call, то CFM, EC и PSR.cpl копируются в PFS, а старое содержимое PFS пропадает. Если выполняется br.ret, то PFS копируется в CFM и EC. Значение PFS.ppl копируется в PSR.cpl только в том случае, если при этом увеличится уровень привилегий. Подробнее о PSR можно посмотреть в главе 3 «Состояние системы и модель программирования» во втором томе.

Поле PFS.pfm имеет точно такую же структуру, как у CFM (см. раздел 3.1.7), а поле PFS.pec имеет точно такую же структуру, как у EC (см. раздел 3.1.8.12).

63

62

61

58

57

52

51

38

37

0

ppl

reserved

pec

reserved

pfm

2

4

6

14

38

Рис.3.7. Формат регистра PFS

Таблица 3.5. Описание полей регистра PFS

Поле

Биты

Описание

pfm

37:0

Маркер предыдущего окна (previous frame marker)

51:38

Резервировано

pec

57:52

Счетчик предыдущего эпилога (previous epilog count)

61:58

Резервировано

ppl

63:62

Предыдущий уровень привилегий (previous privilege level)

Соседние файлы в папке M8