Программная модель процессора IntelPentium (IA-32). Программная модель – Регистры. Прикладная модель CPU

Страницы работы

Содержание работы

Программная модель процессора IntelPentium (IA-32)

Intel Architecture – IA

Itanium IA-64

Программная модель – Регистры

SR    – Segment Register, СР (CS, SS, DS, ES, FS, GS)

DR    – Data Register, РД

TW    – Tag Word, РТ

FPSR – Float Point Status Register, РС

FPCR – Float Point Control Register, РУ

FIP    – Float … Point, УК (указатель команды)

FDP   – Float Data Point, УД (указатель данных)

XMM

РПД – регистр пакетированных данных

РУС – регистр управления состоянием

(16+64) Shadow Register

MSR          Module Specific Register

GDTR         Global Descriptor Table Register

LDT           Limit

TSS           Task Status Segment (селектор)

TR             Task Register



Прикладная модель CPU

ShadowRegister

Содержимое сегментных регистров трактуется по разному для реального и защищенного режима.

R (Real) – реальный режим

SR содержит базовый адрес соответствующего сегмента и участвует в формировании физического адреса, складываясь со смещением Offset (внутрисегментное смещение), будучи предварительно сдвинутым на 4 разряда влево (X16).

P (Protect) – защищенный режим

Содержимое SR трактуется, как селектор сегмента. С помощью поля индекса (13 бит) определяется относительный адрес дескриптора соответствующего сегмента в GDT (TI=0) или LDT (TI=1).

Каждый SR сопровождается программно недоступными (64 разрядным) расширением, которое называют «теневым регистром» (Shadow Register).

Использование Shadow Register: аппаратное средство увеличения производительности компьютера, т.к. позволяет обеспечить быстрый доступ к дескриптору сегмента.

EFLAGS     расширенный регистр флагов

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

VM – Virtual Mode

Переводит процессор в особый режим виртуального процессора 8086 (называют V86). Этот режим может иметь место только в рамках защищенного режима.

Protect Enable (PE=1) бит включения защищенного режима в регистре CR0.

AC – Alignment Check – бит контроля выравнивания

При установке (AC=1) и соответствующем разрешении (бит маски выравнивания, Bit Alignment Mask, BAM=1 установлен) реализуется контроль соблюдения целочисленной границы, но только в отношении данных (не команд) и только на наинизшем (прикладном) уровне привилегий.

PL=3 – номер уровня привилегий (кольца защиты).

IOPL – Input/Output Privilege Level

Двухбитное поле IOPL задает наинизший допустимый уровень привилегий для возможностей использования в программе с этим или более высоким уровнем команд I/O.

Т.к. уровень привилегий для команд I/O может изменяться, то они занимают промежуточное положение между привилегированными командами (выполнение допустимо только на наинизших уровнях привилегии CPL=0, Current Privilege Level) и непривилегированными.

Команды I/O иногда называют чувствительными командами. Кроме прямых команд I/O (IN, OUT, INS, OUTS) к чувствительным относятся команды манипуляций с флагом IF (Interrupt): STI и CLT (Set&Clean).

Программная модель FPU

  • 8 регистров данных
  • 1 регистр тегов
  • 2 16-битных регистра
  • 2 указателя

Регистры данных (числовые, арифметические) предназначены для хранения чисел представленных в формате с плавающей точкой в расширенном (80 бит) формате.

Структура формата включает в себя 3 поля:

1)  S (sign)                  – 1 бит        знак числа

2)  E (exponent)          – 15 бит      смещенный порядок (характеристика)

3)  M (significant)        – 64 бит      мантисса

В расширенном формате бит целой части представляется явно (скрытой единицы нет).

Не смотря на то, что внутренним форматом FPU является расширенный формат, FPU позволяет производить операции над следующими типами данных, представленных в следующих форматах:

  1. Целые числа

16 бит         (ЦС – целое слово)

32 бита        (КЦ – короткое слово)

64 бита        (ДЦ – длинное целое)

  1. Упакованные двоично-десятичные целые числа

BCD формат

80 бит (1 – знак числа, 18 цифр * 4 = 72 бита)

  1. Числа с плавающей запятой

32 бита        (одинарной точности, ОТ)        КФ – короткий формат

64 бита        (двойной точности, ДТ)            ДФ

80 бит         (расширенной точности, РТ)    РФ

Диапазон ЦСПЗ:

ОТ      -        

ДТ      -        

РТ      -        

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

Для указания операции с целочисленным операндом в мнемонику assembler команд вставляется префикс I (integer), например:

FADD – сложение 2х действительных чисел с плавающей точкой

FIADD – сложение целого числа с действительным

Целочисленные операнды предварительно преобразуются в формат с плавающей точкой.

Арифметические команды могут использовать целые операнды только в форматах 2 или 4 байта. Операнд 8 байт может использоваться только в командах загрузки FILD (из памяти в регистр данных FPU и записи в память) и FISTP (store, P – pop). В последней команде суффикс P означает, что завершение операции сопровождается выталкиванием пересылаемого в память операнда из регистрового стека.

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

Похожие материалы

Информация о работе