Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
АЭВМ(Ответы).doc
Скачиваний:
8
Добавлен:
01.04.2025
Размер:
9 Мб
Скачать
☆
  1. Технология mmx. Технология 3dnow!

Технология ММХ ориентирована на приложения мультимедиа, 2D/3D-гpафику и коммуникации. Это расширение базовой архитектуры появилось только после второго поколения процессоров Pentium. Основная идея ММХ заключается в одновременной обработке нескольких элементов данных за одну инструкцию — так называемая технология SIMD (Single Instruction — Multiple Data). Расширение ММХ использует новые типы упакованных 64-битных целочисленных данных:

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

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

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

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

Эти типы данных могут специальным образом обрабатываться в регистрах ММХ0-ММХ7, представляющих собой младшие биты стека 80-битных регистров FPU. Как и регистры FPU, эти регистры не могут использоваться для адресации памяти. Совпадение регистров ММХ и FPU накладывает ограничения на чередование кодов FPU и ММХ — забота об этом лежит на программисте приложений с ММХ.

Еще одна особенность технологии ММХ — поддержка арифметики с насыщением (saturating arithmetic). Ее отличие от обычной арифметики с циклическим переполнением (wraparound mode) заключается в том, что при возникновении переполнения в результате фиксируется максимально возможное значение для данного типа данных, а перенос игнорируется, В случае переполнения снизу в результате фиксируется минимально возможное значение. Граничные значения определяются типом (знаковый или беззнаковый) и разрядностью переменных. Такой режим вычислений удобен, например, для определения цветов.

В систему команд введено 57 дополнительных инструкций для одновременной обработки нескольких единиц данных. Одновременно обрабатываемое 64-битное слово может содержать как одну единицу обработки, так и 8 однобайтных, 4 двубайтных или 2 четырехбайтных операнда. Новые инструкции включают следующие группы:

  • арифметические (Arithmetic Instructions), включающие сложение и вычитание в разных режимах, умножение и комбинацию умножения и сложения;

  • сравнение (Comparison Instructions) элементов данных на равенство или по величине;

  • преобразование форматов (Conversion Instructions);

  • логические (Logical Instructions) - И, И-НЕ, ИЛИ и исключающее ИЛИ, выполняемые над 64-битными операндами;

  • сдвиги (Shift Instructions) — логические и арифметические;

  • пересылки данных (Data Transfer Instructions) между регистрами ММХ и целочисленными регистрами и памятью;

  • очистка ММХ (Empty MMX State) - установка признаков пустых регистров в слове тегов.

Инструкции ММХ не влияют на флаги условий.

Регистры ММХ в отличие от регистров FPU адресуются физически, а не относительно значения указателя стека ТОР. Более того, любая инструкция ММХ обнуляет поле ТОР регистра состояния FPU. В слове тегов свободному регистру соответствует комбинация 11, остальные комбинации указывают только на занятость регистра. После каждой операции ММХ биты тегов используемого регистра назначения обнуляются. Неиспользуемые в ММХ биты [79:64] регистров FPU заполняются единицами, так что ошибочное использование данных ММХ инструкцией FPU приведет к исключению.

Инструкции ММХ не порождают новых исключений. Исключения при выполнении инструкций ММХ могут возникать только в случае нарушения границ в обращениях к памяти (как при обмене данными, так и по выборке инструкции). Однако если предшествующая инструкция FPU породила условие исключения, то оно произойдет при выполнении инструкции ММХ. После его обработки инструкция ММХ может быть благополучно исполнена.

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

Частое чередование кодов FPU и ММХ может снизить производительность за счет необходимости сохранения и восстановления весьма объемного контекста FPU.

Наличие поддержки ММХ определяется по биту 23 регистра EDX после вызова инструкции CPUID(1).

Технология 3Dnow!, введенная фирмой AMD в процессорах К6-2, расширяет возможности ММХ. Она позволяет оперировать с новым типом данных — парой упакованных чисел в формате с плавающей точкой. Эти числа занимают по двойному слову в 64-битных регистрах ММХ. Процессор К6-2 имеет два исполнительных блока, которые способны одновременно выполнять операции с плавающей точкой над своими регистрами. Каждая такая операция занимает всего два такта, операции полностью конвейеризируются. Таким образом, с конвейеров процессора за каждый такт могут сходить четыре результата операций с плавающей точкой. В систему команд добавлена 21 новая инструкция ММХ, большая часть которых предназначена для обработки упакованных чисел с плавающей точкой. Имеется и новая целочисленная ММХ-инструкция усреднения восьми пар 8-битных чисел, предназначенная для декодеров MPEG-2. Кроме того, имеется команда быстрого переключения FPU-ММХ и предварительной выборки в первичный кэш данных. Технология 3DNow! дает заметный результат при обработке графики, хотя не претендует на вытеснение графических акселераторов, а призвана служить их мощным дополнением. При этом сохраняется программная совместимость с прежними процессорами и операционными системами (поскольку регистры ММХ отображаются на регистры FPU, для них работают механизмы сохранения контекста в многозадачных ОС). Поддержка 3DNow! определяется по биту 31 регистра EDX после вызова CPLHD(8000_000lh).