Реферат: Форматы данных и команды их обработки процессоров Pentium III, Pentium IV

16-разрядные процессоры из приведенных типов данных не поддерживают учетверенные слова всех типов, битовые поля и строки, строки двойных слов, короткие и длинные указатели.

Числа в формате с плавающей точкой и упакованные 80-битные BCD-числа обрабатываются блоками FPU процессоров класса 486 и выше, а также сопроцессорами 8087/287/387. Упакованные 64-битные и 128-битные данные обрабатываются процессорами с ММХ и SSE. Форматы данных, обрабатываемых блоками FPU/MMX и ХММ, представлены на рис. 2.

• Действительные числа в формате с плавающей точкой:

• одинарной точности (Single Precision), 32 бит — 23 бит мантисса, 8 бит порядок;

• двойной точности (Double Precision), 64 бит — 52 бит мантисса, 11 бит порядок;

• повышенной точности (Extended Precision), 80 бит — 64 бит мантисса, 15 бит порядок.

• Двоично-десятичные 80-битные упакованные числа (18 десятичных разрядов и знак).

• Упакованные действительные числа одинарной точности в формате с плавающей точкой, обрабатываются блоком ХММ.

• Упакованные целые числа, знаковые и беззнаковые, обрабатываются блоком ММХ:

• упакованные байты (Packed byte) — восемь байт;

• упакованные слова (Packed word) — четыре слова;

• упакованные двойные слова (Packed doubleword) — два двойных слова;

• учетверенное слово (Quadword) — одно слово.

Для 16-разрядных процессоров, естественно, все форматы чисел для блоков ММХ и ХММ недоступны.

Рассмотрим более подробно блоки, упомянутые выше: блоки FPU, MMX, XMM, которые архитектуре процессоров IA-32 х86 держатся особняком. Они присутствуют не но всех процессорах и даже по схемотехнической реализации являются пристройками к центральному процессору с его набором обычных целочисленных регистров. Данные блоки предназначены для ускорения вычислений.

Математический сопроцессор (FPU) позволяет использовать несколько форматов чисел с плавающей точкой — FP-форматов. Операции с такими числами можно выполнять и программно средствами целочисленного процессора, но сопроцессор выполняет эти операции анпаратно во много раз быстрее. Блок ММХ дает ускорение целочисленных вычислений за счет одновременной обработки одной инструкцией целого пакета чисел (пар чисел). Блок ХММ комбинирует эти два приема — обрабатывает одной инструкцией пакет из четырех чисел в FP-формате. Исторически первым появился сопроцессор. Блок ММХ ради совместимости с операционными системами "спрятали" в то же оборудование, что и сопроцессор. Так появился комбинированный блок, называемый блоком FP/MMX, или FPU/ММХ. И толысо блок ХММ, используемый расширением SSE процессоров Pentium 3, стал полностью новым самостоятельным набором регистров.


Рис. 1. Типы данных, обрабатываемых целочисленным АЛУ


Рис. 2. Типы данных, обрабатываемых блоками FPU/MMX и ХММ


При отсутствии математического сопроцессора прикладная программа все-таки может использовать инструкции FPU, но для этого операционная система должна поддерживать эмуляцию сопроцессора. Эмулятор сопроцессора — это программа-обработчик прерывания от сопроцессора или исключения #NM, которая должна "выловить" код операции, сопроцессора, определить местонахождение данных и выполнить требуемые вычисления, используя целочисленную арифметику центрального процессора. Понятно, что эмуляция будет выполняться во много раз медленнее, чем те же действия, выполняемые настоящим сопроцессором. Тем не менее эмуляция позволяет все-таки пользоваться прикладными программами, требующими вычислений с плавающей точкой. Для этого в регистре CR0 должно быть установлено сочетание флагов ЕМ = 1, МР = 0. Для эмуляции в IBM PC обычно устанавливают значение NE = 0. Тогда каждая инструкция FPU автоматически будет вызывать эмулятор генерацией запроса прерывания (а не исключения #NM, как было бы при NE = 1).

Эмуляция для блоков ММХ и ХММ не предусматривается — эти блоки предназначены для ускорения вычислений в приложениях реального времени, и выполнять их с крайне низкой скоростью эмуляции было бы просто бессмысленно. Если установлен флаг эмуляции ЕМ = 1, то любая инструкция ММХ вызовет исключение #UD.

2. Математический сопроцессор x87

Математический сопроцессор предназначен для расширения вычислительных возможностей центрального процессора — выполнения арифметических операций, вычисления основных математических функции (тригонометрических, экспоненты, логарифма) и т. д. В разных поколениях процессоров он назывался по-разному — FPU (Floating Point Unit — блок чисел с плавающей точкой) или NPX (Numeric Processor eXtension — числовое расширение процессора).

Сопроцессор поддерживает семь типов данных: 16-, 32-, 64-битные целые числа; 32-, 64-, 80-битные числа с плавающей точкой и 18-разрядные числа в двоично-десятичном формате. Формат чисел с плавающей точкой соответствует стандартам IEEE 754 и 854. Применение сопроцессора повышает производительность вычислений в сотни раз. С программной точки зрения сопроцессор и процессор выглядят как единое целое. В современных (486+) процессорах FPU располагается на одном кристалле с центральным процессором. Для процессоров 386 и ниже сопроцессор был отдельной микросхемой, подключаемой к локальной нише основного процессора. В любом случае сопроцессор исполняет только свои специфические команды, а всю работу по декодированию инструкции и доставке данных осуществляет CPU. Сопроцессор может выполнять вычисления параллельно с центральным процессором, независимо от переключения задач в защищенном режиме. Как и основной процессор, сопроцессор может работать в реальном или защищенном режиме и переключать разрядность- 16 или 32. Переключение режимов влияет на формат отображения регистров сопроцессора в оперативной памяти, при этом формат используемых внутренних регистров не изменяется.

Форматы данных FPU

Сопроцессор оперирует данными в формате с плавающей точкой, который позволяет представлять существенно больше действительных чисел, чем целочисленное АЛУ центрального процессора. Арифметические операции (здесь под арифметическими понимаются операции, изменяющие значения операндов, а также операции сравнения) в FPU выполняются над 80-битными числами, преде га пленными во внутреннем формате расширенной точности (рис. 3). Формат позволяет представлять следующие категории чисел:

• нули (положительный и отрицательный) — оба значения эквивалентны;

• денормализованные конечные числа (положительные и отрицательные);

К-во Просмотров: 261
Бесплатно скачать Реферат: Форматы данных и команды их обработки процессоров Pentium III, Pentium IV