Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебник ОЭВМ Трусфус.doc
Скачиваний:
126
Добавлен:
12.03.2015
Размер:
4.82 Mб
Скачать

3.3.5. Структура данных

Архитектура IA-32 предполагает наличие не менее двух процессоров, даже если они интегрированы в одном блоке. В поздних моделях МП их называют не процессорами, а модулями обработки данных. Здесь речь идет, скорее, о множестве структур данных в зависимости от реализованных в процессоре "арифметик".

Основным модулем обработки данных является модуль обработки чисел с фиксированной запятой (точкой). В настоящее время – это целочисленная арифметика, обработка двоично-десятичных чисел и строк символов.

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

В МП, начиная с Pentium MMX, используется дополнительный мультимедийный модуль обработки векторных данных.

Модуль обработки чисел с фиксированной запятой использует основной набор регистров общего назначения (РОНы) и следующие форматы данных:

1. Целые числа без знака:

  • байт диапазон: от 0 до 255,

  • слово диапазон: от 0 до 65 535,

  • двойное слово диапазон: от 0 до 4 294 967 295.

2. Целые со знаком:

  • знак и 7 бит диапазон: от (–128) до 127,

  • знак и 15 бит диапазон: от (–32 768) до 32 767,

  • знак и 31 бит диапазон: от (–от 2 147109) до 2 147 109.

3. Двоично-десятичные числа.

  • неупакованный формат BCD – одна беззнаковая цифра в байте; цифровое значение определяется младшим полубайтом; старший полубайт должен быть нулевым при операциях умножения или деления; в других операциях старший полубайт может быть любым,

  • упакованный формат BCD – две цифры в байте; цифра в старшем полубайте является более значимой; диапазон – от 0 до 99.

4. Близкий указатель – 32-битное смещение в сегменте.

5. Дальний указатель – 48-битный логический адрес; содержит селектор сегмента (16 бит) и смещение в сегменте (32 бита).

6. Строка – непрерывная последовательность байт, слов или двойных слов длиной до 4 Гбайт.

7. Битовое поле – непрерывная последовательность бит, в которой каждый бит рассматривается как независимая переменная. Битовое поле может начинаться с любого бита в любом байте и быть длиной до 32 бит.

8. Битовая строка – непрерывная последовательность бит; может начинаться с любого бита в любом байте и быть длиной до 4 Гбайт.

Модуль обработки чисел с плавающей запятой использует свой набор регистров общего назначения (РОНы), свои команды, свои форматы данных и свой регистр слова состояния FGU модуля (аналог регистра EFLAGS) .

Особенностью модуля с плавающей запятой является то, что набор РОН (восемь 80-битных регистров) организован в виде стека. Указатель стека TOP расположен в регистре слова состояния FGU модуля. Стековая организация РОНов упрощает процедурное программирование, в частности передачу параметров через стек. Структура регистра общего назначения модуля FGU представлена на рис. 3.21.

Регистры содержат три поля: знака, порядка и мантиссы.

Знак – это знак числа и знак мантиссы. Для задания отрицательных значений мантиссы используется прямой код (0 – положительные значения, 1 – отрицательные).

Характеристика – это смещенный (нормализованный) порядок числа (10 бит), диапазон представления чисел: 21634 = 104932.

Мантисса – нормализованная дробь типа 1,a1,a2, ai…a63, где: аi – двоичная цифра, причем дробная часть мантиссы  0.

79

78

64

63

0

Знак

Характеристика

Мантисса

Рис.3.21. Структура регистра общего назначения FGU модуля

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

  • обычной точности: знак – 1 бит, порядок – 8 бит, мантисса – 24 бита, первая цифра мантиссы (всегда 1) в поле команды не пишется; всего фиксируются 32 бита.

  • двойной точности: знак – 1 бит, порядок – 11 бит, мантисса – 53 бита, первая цифра мантиссы (всегда 1) в поле команды не пишется.

  • расширенной точности: знак – 1 бит, порядок – 15 бит, мантисса – 64 бита, включая первую цифру.

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

Мультимедийный модуль

Мультимедийный модуль обработки векторных данных. Этот модуль, появившись в МП Pentium Pro в варианте 57 команд обработки векторных 64-битных данных с фиксированной запятой, в последующих моделях непрерывно совершенствовался.

В моделях МП Pentium 4 стало использоваться второе поколение потоковых команд расширения SSE2 (Streaming SIMD Extensions 2). Набор из 144 команд SSE2 поддерживает новые форматы упакованных данных с использованием 128-разрядных регистров (XMM-регистров) как при операциях с плавающей запятой, так и при операциях с фиксированной запятой.

Вопросы для самопроверки:

1. Диапазон представления чисел без знака в формате байта.

2. Диапазон представления чисел без знака в формате слова.

3. Диапазон представления чисел без знака в формате двойного слова.

4. Диапазон представления чисел со знаком в формате байта.

5. Диапазон представления чисел со знаком в формате слова.

6. Диапазон представления чисел со знаком в формате двойного слова.

7. Неупакованный формат представления двоично-десятичных чисел.

8. Упакованный формат представления двоично-десятичных чисел.

11. Понятие строка.

12. Понятие битовая строка.

13. Понятие битовое поле.

14. Количество и структура РОН для данных в форме с плавающей запятой.

15. Команды расширения SSE2.