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

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(CurrentPrivilegeLevelintheProcessorStatusRegister).

Если выполняются 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)

3.1.8.11. Регистр счетчика цикла (lc–ar65)

Loop Counter Register. LC– это 64-битный регистр используемый в счетных циклах. ЗначениеLCуменьшается при переходах типа счетный цикл.

3.1.8.12. Регистр счетчика эпилога (ec–ar66)

Epilog Counter Register. EC– это 6-битный регистр используемый для подсчета финальных стадий (эпилогов) в модульно- планируемых циклах. См. раздел 4.5.1 «Поддержка модульно планируемых циклов». На рис.3.8. показана схема регистраEC.

63

6

5

0

ignore

Счетчик эпилогов

58

6

Рис.3.5. Формат регистра счетчика эпилогов.

3.1.9. Регистры данных мониторинга производительности (pmd)

Performance Monitor Data Registers. Набор регистров данных мониторинга производительности может быть конфигурирован привилегированной программой так, чтобы стать доступным на всех уровнях привилегий. Данные мониторинга производительности могут быть получены прямо внутри приложения. Операционной системе разрешается защитить созданную пользователем конфигурацию мониторинга производительности. При чтении, защищенные счетчики производительности возвращают ноль, несмотря на текущий уровень привилегий. Мониторы производительности могут быть записаны только при большем уровне привилегий. Детальнее см. часть 7 «Отладка и мониторинг производительности» во втором томе. Мониторы производительности могут использоваться для сбора информации о производительности при выполнении любого набора инструкций иItanium, иIA-32.

3.1.10 Маска пользователя (um)

User Mask. Маска пользователя – это доступное для всех прикладных программ подмножество регистра состояния процессора (ProcessorStatusRegister). Маска пользователя управляет выравниванием доступной памяти, байтовым упорядочиванием и пользовательской конфигурацией мониторов производительности. Здесь также записывается модификация состояний регистров с плавающей точкой. На рис. 3.9 показан формат маски пользователя, а в табл. 3.6 описаны поля маски пользователя. Детальнее оPSRможно посмотреть в разделе 3.3.2 «Регистр Состояния Процессора (PSR)» во втором томе.

5

4

3

2

1

0

mfh

mfl

ac

up

be

reserv

1

1

1

1

1

1

Рис.3.9. Формат маски пользователя

Табл.3.6. Описание полей маски пользователя.

Поле

Бит

Описание

reserv

0

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

be

1

Возможность доступа к памяти по возрастанию (управляет загрузкой и восстановлением, но не доступом RSE памяти)

0: обращения делается по убыванию

1: обращения делается по возрастанию

Этот бит игнорируется при доступе к памяти данных типа IA-32. Ссылки данных IA-32 всегда выполняются по убыванию.

up

2

Доступ пользователя к мониторингу производительности (включая IA-32)

0: мониторинг производительности не доступен пользователю

1: мониторинг производительности доступен пользователю

ac

3

Проверка выравнивания для обращений к памяти данных (включая IA-32)

0: не выравненность обращений к памяти данных может вызвать ошибку «Ссылка на не выровненные данные»

1: все, не выровненные обращения к данным памяти, вызывают ошибку «Ссылка на не выровненные данные»

mfl

4

Запись младших (f2…f31) регистров с плавающей точкой. Этот бит устанавливается в 1, если завершена Itanium инструкция, которая использует регистр f2…f31 в качестве приемника. Этот бит замещается и просто очищается при явной записи маски пользователя. Об условиях, при которых этот бит устанавливается инструкциями IA-32, см. раздел 3.3.2 второго тома.

mfh

5

Запись старших (f32…f127) регистров с плавающей точкой. Этот бит устанавливается в 1, если Itanium инструкция, которая использует регистр f32…f127 в качестве приемника, завершена. Этот бит замещается и просто очищается при явной записи маски пользователя. Об условиях, при которых этот бит устанавливается инструкциями IA-32, см. раздел 3.3.2 второго тома.

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