Скачиваний:
57
Добавлен:
16.04.2013
Размер:
480.26 Кб
Скачать

6.2.3.3. Проверки целостности среды ia-32 во время выполнения

Процессоры в семействе процессоров Itanium, в процессе выполнения делают дополнительные проверки для верификации целостности среды. Эти проверки являются дополнительными к проверкам процесса выполнения определенным в процессорахIA-32 и выделены в табл. 6.4. Перечислены, но не выделены существующиеIA-32 проверки процесса выполнения. Дескрипторные поля не упомянутые в таблице не проверяются. Как задано в таблице, проверки процесса выполнения делаются либо при загрузках кода инструкцииIA-32, либо при обращении памяти данныхIA-32 к одному из заданных сегментных регистров. Эти проверки процесса выполнения не делаются при переключении из набора инструкций типаItaniumв набор инструкцийIA-32.

Табл.6.4. Проверки целостности среды IA-32 во время выполнения

Рекомендуется для …

Ресурс

Реальный режим

Защищенный режим

Режим VM86

Вызывается ошибка

… всех кодовых загрузок

PSR.spl

не 0

игнорируется

не 3

Ошибка загрузки кода (GPFault(0))A

EFLAG.vmC FLG.pe

EFLAG.vm равен 1, а CFLG.pe равно 0

EFLAG.vif EFLAG.vip

EFLAG.vip & EFLAG.vif & CFLG.pe & PSR.cpl==3 & (CFLG.pvi |

(EFLAG.vm & CFLG.pme))

… всех кодовых загрузок CS

dpl

игнорируется

не 3

Ошибка загрузки кода (GPFault(0))

d-бит

не 16 бит

type

Игнорируется (может быть типа execилиdata)

GPFault, если данные расширяются вниз

s, p, a-бит

Не равны 1

g-бит/limit

Нарушение границы сегмента

… обращений памяти данных к SS

dpl

dpl != PSR.cpl

Ошибка стека

d-бит

игнорируется

не 16 бит

type

игнорируется

расширение данных вниз

Чтение и недоступность чтения,

запись и недоступность записи

s, p, a-бит

Не равны 1

g-бит/limit

Нарушение границы сегмента

… обращений памяти данных к DS,ES,FSиGS

dpl

игнорируется

GPFault(0)

d-бит

игнорируется

не 16 бит

type

игнорируется

расширение данных вниз

Чтение и недоступность чтения,

запись и недоступность записи

s, p, a-бит

Не равны 1

g-бит/limit

Нарушение границы сегмента

… обращений памяти данных к CS

dpl

игнорируется

GPFault(0)

d-бит

игнорируется

не 16 бит

type

игнорируется

расширение данных вниз

Проверки чтения/записи игнорируются

Чтение и недоступность чтения, запись и недоступность записи

Проверки чтения/записи игнорируются

s, p, a-бит

Не равны 1

g-бит/limit

Нарушение границы сегмента

… обращений памяти к LDT,GDTилиTSS

dpl

игнорируется

GPFault(Селектор/0)B

type

игнорируется

s-бит

Не равен 0

a,d-бит

игнорируется

p-бит

Не равен 1

g-бит/limit

Нарушение границы сегмента

  1. Ошибки выборки кода вызываются как высокоприоритетные GPFault(0).

  2. При обращении к GDTилиLDT, код ошибки в вызовеGPFault– это значение селектора. В других случаях, код ошибки является нулем.