Курс лекций по вычислительной технике

       afrodite

Типы данных процессоров IA-


              

1. Бит - задаётся адресом слова и смещением  (номером  бита в слове).

2. Битовое поле - группа до 32-х смежных бит.

3. Байт - 8бит.

4.Целые числа без знака:  = 8/16/32/64/бит (байт/слово/двойное  слово/учетверённое слово). Диапазон:0 – 2N-1

5. Целые числа со знаком N = 8/16/32/64/бит (байт/слово/двойное слово/учетверённое слово). Знак - значение самого старшего бита. Диапазон: от -2N-1 до +2N-1-1}.

6. Строки (или цепочки) из байт, слов и двойных слов (до 4ГБ).

7. Указатели:

- короткий (ближний): смещение – 32(16)

- длинный (дальний): смещение – 32(16); селектор (сегмент)-16

8. Неупакованный двоично-десятичный тип (по одной цифре в каждом байте)    

9. Упакованный двоично-десятичный тип (по две цифры в байте).

10. Вещественные числа с плавающей точкой(для сопроцессора):

- одиночной точности - 32 разряда

- двойной точности - 64 разряда

-         повышенной точности - 80 разрядов (64/16).

Числа состоят из трёх полей  (знак мантиссы, характеристика, мантисса) и могут бать представлены в одном из трёх форматов: коротком (1+8+23=32) - dd, длинном (1+11+52=64) – dq и расширенном (1+15+64=80) - dt.

Поскольку вещественные числа являются нормализованными, то есть, старший разряд мантиссы всегда равен 1, то в  коротком и длинном форматах он не присутствует, а подразумевается. То есть в мантиссе на самом деле не 23 (52) бита, а 24(53). В процессоре они всегда представляются в расширенном формате (по этой причине другими форматами лучше не пользоваться).

11. Типы данных расширений: ММХ, SSE, SSE-2. 

–        8 упакованных байт

–        4 упакованных слова

–        2 упакованных двойных слова

–        учетверённое слово

Замечание. Данные – байты в словах -  размещаются  справа налево начиная  с младшего адреса (little-endian  в  отличие от  big- endian)                                                          


    Представление вещественных чисел в IA16/32.

Вещественные числа состоят из трёх полей  (знак мантиссы, характеристика, мантисса) и могут быть представлены в одном из трёх форматов: коротком (1+8+23=32) - dd, длинном (1+11+52=64) – dq и расширенном (1+15+64=80) - dt.

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

(52) бита, а 24(53). В процессоре они всегда представляются в расширенном формате (по этой причине другими форматами лучше не пользоваться).

  Характеристика связана с порядком посредством соотношения

                                               q=p+смещение

Т.о. характеристика есть смещённый порядок.

  

Имеется три формата.

 

 



s



    q



M



Формат



Фиксированное  смещение



31



30÷23



22÷0



dd



короткий



+127



63



62÷52



51÷0



dq



длинный



+1023



79



78÷64



63÷0



dt



расширенный



+16383

 

     где  s - знак мантиссы,  q -харктеристика  M - мантисса

 

      q = p + смещение(ФС)

 

       Диапазон вещественных чисел

 



     Формат



  Короткий



              Длинный



      Расширенный



     Размер  



  32



                   64



             80



     М



         24



                   53



             80



      Q



          8



                    11



              15



     Ф.С.



     +127



                  +1023



          +16383



   Диапазон q



 0...255



              ...2047



      ...32767



   Диапазон р



 -126...+127



     -1022...+1023



    -16382...+16383



 Диапазон  

Представимых чисел

 



10-38...10+38  



10-308...10308 



10-4932...104932

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



Все отрицательные значения порядка смещаются по числовой оси в область с нулём в старшем разряде, а положительные – в область с единицей в старшем разряде.

В расширенном формате смещение равно (214  - 1) = 16383, диапазон характеристик от 0 до 32767, соответственно,  диапазон порядков от -16383 до +16383.

     Специальные числа.

    Денормализовнные вещественные числа. Это числа с нулевой характеристикой (с минимальным порядком равным  - минус (214  - 1)) и ненулевой мантиссой.

         Нули. Это числа с нулевой характеристикой (с минимальным порядком равным  - минус (214  - 1)) и нулевой мантиссой. В зависимости от знака мантиссы различают положительный и отрицательный нуль..

         Бесконечность  имеет максимальное  значение  характеристики (а, значит, и порядка) и минимальную нормализованную ненулевую  мантиссу (с единственной единицей в старшем разряде). В зависимости от знака мантиссы различают плюс и минус бесконечность.

            Нечисла    имеют максимальное значение характеристики и любую неминимальную нормализованную мантиссу.

4.5. Набор регистров.

 

Они подразделяются на арифметические (логические), адресные и служебные.

В группе арифметических, по крайней мере, д. б. хотя б один регистр – накопитель или  аккумулятор,  но их м. б. и несколько.

В группе адресных д.б. регистр модификации (индексации) адреса.

Если арифметические (логические) регистры  совмещаются с адресными они носят название универсальных (general) или общих.

 

В качестве примера рассмотрим  набор регистров ИА-32.

 

 

Процессор имеет широкий набор регистров.

РОН - общие регистры данных и адресов с разрядностью 8-16-32

31…16

15…8

7…0

 

    AX

 

AH

AL

 

    BX

 

BH

BL

 

    CX

 

CH

CL

 

    DX

 

DH

DL

 

        

EАX

   



ЕВХ

 

ECX

 

EDX

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

AX – умножение, деление, ввод/вывод слова

 АL - умножение, деление, ввод/вывод байта

 АН - умножение, деление байта

 BX - регистр базы

 СХ - счётчик циклов и указатель длины строковых операций

 DX - умножение, деление слова, ввод/вывод с косвенной адресацией

 Регистры указателей и индексов.

 

31      16

15       0

 

SP

 

BP

 

SI

 

DI

  

 

ESP

EBP

ESI

EDI         

 

SP - Указатель стека (адрес вершины)       

BP - Регистр базы

SI - Индекс адреса источника операнда

DI- Индекс адреса результата

Вышеперечисленные регистры  адресуются  явно  и  могут  использоваться в любых арифметических и логических операциях

ССП включает указатель инструкций (ЕIP - смещение  следующей исполняемой команды относительно базового адреса из сегмента кода) и регистр флагов (ЕFLAGS, расширенного до 32 разрядов).

 

          Указатель инструкций и регистр флагов.

 

   31...16

15 …0

 

IP

 

ЕIP

 

IP - Адрес следующей команды, относительно базы сегмента кода (СS*16)

 

FLAGS   

 

15…12

11

10

9

8

7

6

5

4

3

2

1

0

 

OF

DF

IF

TF

SF

ZF

0

AF

0

PF

1

CF

 

S

c

x

X

s

s

 

S

 

s

 

s

 

 

 

 

 

 

 

 

 

 

 

 

 

      

 

CF – перенос (заем) из старшего разряда в арифметических  операциях.

    PF = 1  - чётное число единиц результата (в командах ввода-вывода).

 AF - перенос из (заём) старшего разряда  тетрады  в  операциях

десятичной арифметики

 

   SF =1 - результат отрицательный

    ZF = 1 - нулевой результат



    TF = 1 - режим трассировки ( прерывание разрешено  после  выполнения  каждой команды).

    IF = 1 - аппаратные прерывания разрешены.

    DF = 1 - декремент индексных регистров (0 – инкремент)

    OF = 1 - переполнение результата арифметической операции.

  В защищённом режиме регистр флагов также расширен до 32 разрядов.

                

EFLAGS

 

 

32…22

221

220

119

118

117

116

115

114

 

13…12

111

…10…0

 

IID

VVIP

VVIF

AAC

VVM

RRF

00

NNT

     IOPL

OOF

 

 

 

IOPL - уровень привилегий в/в

NT   -  флаг вложенной задачи

RF   - флаг возобновления после отладочного останова

VM   - включение режима виртуального 8086

AC   - контроль выравнивания операнда по соответствующей границе

VIF -  виртуальная маска прерываний для Р5+

VIP -  виртуальный запрос прерываний  Р5+

ID  -  флаг доступности команды идентификации СРUID

 

       Регистры сегментов.

 

Они содержат 16 разрядные указатели сегментов (в реальном режиме) или селекторы дескрипторов (в защищенном режиме).

 

 

15                0

Регистр сегмента

 

                                                                  

 

CS - сегмент команд

SS - сегмент стека

DS - сегмент данных

ES - сегмент данных

GS - сегмент данных

FS - сегмент данных

 

       Формат селектора.

 

15       3

2

1 0

Индекс 

TI

RPL

 

TI определят тип таблицы дескрипторов: 0 - глобальная; 1  -  локальная (GDT и  LDT).

RPL - определяет уровень привилегий

Неиспользуемые регистры сегментов определяют нулевой  селектор сегмента - выбирается нулевой дескриптор глобальной таблицы.

Кроме этих двух таблиц имеется  таблица  дескрипторов  прерываний.

Ссылка на IDT происходит по командам вызова прерываний и по самим прерываниям и исключениям.

 

     Формат  дескриптора сегмента в таблице.

31                                                            16 15                                                            0



Базовый адрес сегмента               (15…0)

Размер сегмента (15…0)

63                         56  55                        48   47                        40   39                     32                 

БАС (31…24)

GDOU |РС(19…16)

Байт AR

БАС (23…16)

Разрывы между отдельными частями базового адреса сегмента (БАС) сложились исторически в процессе модернизации от 16 разрядных процессоров к 32 разрядным.

 

G – размерность размера сегмента (байты/страницы).

 

     Байт AR – байт управления доступом

7

6  5  

4

321

0

Р

D P L

S

Тип сегмента

А

 Р – бит присутствия сегмента в оперативной памяти.

DPL – уровень привилегированности сегмента

S = 1 - признак сегмента памяти;

Тип сегмента:

-         данных (только чтение);

-         данных (чтение и запись);

-         стека   (чтение и запись);

-         команд (только выполнение);

-         команд (чтение и выполнение).

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

Наконец, системные  регистры: 1) 4 регистра системных адресов;       

2) 4 регистров управления; 3) 8 регистров отладки;

Регистры системных адресов:

-         регистр таблицы глобальных дескрипторов GDTR для задания базового адреса (32р) таблицы (в пространстве линейных адресов, то есть в той же памяти) и размера (16р.) таблицы (от 8байт до 64Кб).

-         16 разрядный селектор дескриптора LDTR, определяющий местонахождение локальной дескрипторной таблицы в глобальной (аналогичен обычному сегменту)

-         регистр таблицы дескрипторов прерываний GDTR (по формату совпадает с ТГД);



-           16 разрядный селектор задачи указывает в ТГД местонахождение сегмента состояния текущей задачи, где запоминается состояние текущей задачи при переключении задач.

Эти регистры загружаются по  специальным командам, тогда как к  собственно  дескрипторам  программного доступа нет.

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

Регистры управления СR0 - CR4 (CR1 не используется)хранят признаки состояния  процессора, общие для всех задач (ССП и ССС). CR0 -  регистр  системных флагов:

-         разрешение защищенного режима

-         запрещение кэширования

-         страничного преобразования

-         режим 36 разрядной адресации

-         страниц размера страниц (4КБ/4МБ)

 

CR2 – служит для хранения линейного адреса которого не оказалось среди страниц.

CR3 -  регистр физического базового адреса каталога  страниц.

Регистры отладки предназначены для задания  и  управления  контрольными точками (впервые появились в 80486).

Регистры тестирования TR6 и TR7 используются при проверке преобразования линейных адресов в физические.

 

Регистры дополнительных устройств обработки.

 

Стек из восьми 80 разрядных регистров для сопроцессора с плавающей запятой. Эти же регистры (но с ограничением до 64 разрядов) в режиме произвольной выборки используются в качестве регистров целочисленного расширения ММХ.

Восемь 128 разрядных регистров используются в ММХ расширении с плавающей запятой (ХММ или SSE).

4.7. Форматы команд.

 

 

 


Содержание раздела