Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛЗ-2-MMX_.doc
Скачиваний:
0
Добавлен:
02.01.2020
Размер:
295.94 Кб
Скачать

Севастопольский национальный университЕт ядерной энергии и промышленности инструктивно-методические указания для проведения лабораторного занятия №2

по дисциплине: «Компьютерные системы»

На тему: «Исследование эффективности применения команд блока MMX»

Севастополь

2008

«УТВЕРЖДАЮ»

Заведующий кафедрой кс

__________ /Н.Е. Сапожников/

«___» ______________ 20__ г.

Лабораторное занятие №2

по дисциплине «Компьютерные системы»

Время: 2 часа

Место проведения: компьютерный класс

Тема: «Исследование эффективности применения команд блока MMX»

Цель: 1. Закрепить знания по основным характеристикам параллелизма задач

по ярусно-параллельной форме.

  1. Привить практические навыки построения ярусно-параллельной формы алгоритма и оценки ее характеристик на примере вычисления арифметического выражения.

  2. Научится строить диаграммы Ганта, оптимизировать работу многопроцессорной системы.

  3. Получить знания по организации асинхронного режима работы.

Воспитать чувства дисциплинированности и исполнительности.

Цель работы: изучение дополнительных возможностей современных процессоров.

1Теоретический раздел

MMX-расширение микропроцессора Pentium предназначено для поддержки приложений, ориентированных на работу с большими массивами данных целого и вещественного типов, над которыми выполняются одинаковые операции. С данными такого типа обычно работают мультимедийные, графические, коммуникационные программы. По этой причине данное расширение архитектуры микропроцессоров Intel и названо MultiMedia extensions (MMX). С появлением микропроцессора Pentium III следует различать MMX-расширение двух типов — целочисленного устройства и устройства с плавающей точкой. Каждое из них имеет свою программную модель и является независимым от другого. Чтобы различать эти типы расширений, введем следующие условные обозначения: MMX-расширение целочисленного устройства будем называть MMX-расширением, а MMX-расширение устройства с плавающей точкой — ХММ-расширением.

Целочисленное MMX-расширение микропроцессора Pentium представляет собой программно-аппаратное решение, дополняющее архитектуру данного микропроцессора новыми свойствами. Впервые это расширение появилось в микропроцессоре Pentium MMX. В неизменном виде оно поддерживается микропроцессором Pentium. В микропроцессоре Pentium III целочисленное MMX-расширение бы-ло дополнено новыми командами. Знакомство с архитектурой целочисленного MMX-расширения удобно вести в рамках модели, основу которой составляют две компоненты — программная и аппаратная.

2.1 Модель целочисленного mmx-расширения

Основа программной компоненты — система команд MMX-расширения (57 команд) и четыре новых типа данных. ММХ-команды являются естественным дополнением основной системы команд микропроцессора. Основным принципом их работы является одновременная обработка нескольких единиц однотипных данных одной командой — Single Instruction Multiple Data (SIMD). На рис. 2.1 приведены новые типы данных MMX-расширения.

Рис. 2.1. Типы данных, поддерживаемые командами MMX-расширения

На рис. 2.1 видно, что размер поля, занимаемого данными любого из этих типов, одинаков и составляет 64 бита. В них упаковываются и затем используются, как отдельные объекты, данные размером байт, слово и двойное слово (их мы будем называть элементами операндов). Именно с такими объектами работают ММХ-команды. Данный подход приводит к существенному ускорению обработки данных, прежде всего за счет экономии тактов микропроцессора на передачу данных и выполнение самой команды. Кстати, здесь сказывается преимущество размерности шины данных микропроцессора Pentium, которая равна 64 бита. Основа аппаратной компоненты — восемь новых регистров. Слово «новые» не совсем корректно. На самом деле MMX-расширение использует регистры сопроцессора. Как известно, регистры сопроцессора стека имеют размерность 80 бит, что касается регистров MMX-расширения, то их размерность — 64 бита. Поэтому, когда регистры сопроцессора играют роль ММХ-регистров, то доступными являются лишь их младшие 64 бита. К тому же, при работе стека сопроцессора в режиме MMX-расширения, он рассматривается не как стек, а как обычный регистровый массив с произвольным доступом. Регистровый стек сопроцессора не может одновременно использоваться и по своему прямому назначению и как MMX-расширение. Забота о его разделении и корректной работе с ним ложится на программиста. Отображение ММХ-регистров на регистры стека сопроцессора показано на рис. 2.2.

Рис. 2.2. Отображение ММХ-регистров на регистры стека сопроцессора

При выполнении ММХ-команд сопроцессор переводится в состояние, которое характеризуется следующими признаками:

  • регистр тегов сопроцессора обнуляется;

  • все регистры стека сопроцессора в ММХ-режиме адресуются физически, вне зависимости от значений поля tos регистра состояния swr. Поле tos, кстати, тоже обнуляется;

  • ММХ-регистру rmmx0 соответствует физический регистр сопроцессора r0, ММХ-регистру rmmx1 — r1 и т. д. Логическая нумерация регистров сопроцессора не имеет никакого значения;

  • содержимое других регистров сопроцессора не изменяется (за исключением применения команды emms);

  • при записи в ММХ-регистр данных, в младшие 64 бита заносятся сами записываемые данные, а в биты 64-79 — единицы. Это делается для того, чтобы при попытке случайного или преднамеренного использования командой сопроцессора ММХ-данных, не возникло какого-либо исключения сопроцессора;

  • при чтении данных из ММХ-регистров их содержимое не изменяется.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]