Модель целочисленного MMX-расширения
Севастопольский национальный УНИВЕРСИТЕт ядерной энергии И промышленности
ИНСТРУКТИВНО-МЕТОДИЧЕСКИЕ УКАЗАНИЯ
ДЛЯ ПРОВЕДЕНИЯ ЛАБОРАТОРНОГО ЗАНЯТИЯ №2
по дисциплине: «Компьютерные системы»
На тему: «Исследование эффективности применения команд блока MMX»
Севастополь
«УТВЕРЖДАЮ»
Заведующий кафедрой КС
__________ /Н.Е. Сапожников/
«___» ______________ 20__ г.
Лабораторное занятие №2
по дисциплине «Компьютерные системы»
Время: 2 часа | Место проведения: компьютерный класс |
Тема: «Исследование эффективности применения команд блока MMX»
Цель:1.Закрепить знания по основным характеристикам параллелизма задач
по ярусно-параллельной форме.
2. Привить практические навыки построения ярусно-параллельной формы алгоритма и оценки ее характеристик на примере вычисления арифметического выражения.
3. Научится строить диаграммы Ганта, оптимизировать работу многопроцессорной системы.
4. Получить знания по организации асинхронного режима работы.
Воспитать чувства дисциплинированности и исполнительности.
Цель работы: изучение дополнительных возможностей современных процессоров.
Теоретический раздел
MMX-расширение микропроцессора Pentium предназначено для поддержки приложений, ориентированных на работу с большими массивами данных целого и вещественного типов, над которыми выполняются одинаковые операции. С данными такого типа обычно работают мультимедийные, графические, коммуникационные программы. По этой причине данное расширение архитектуры микропроцессоров Intel и названо MultiMedia extensions (MMX).
С появлением микропроцессора Pentium III следует различать MMX-расширение двух типов — целочисленного устройства и устройства с плавающей точкой. Каждое из них имеет свою программную модель и является независимым от другого. Чтобы различать эти типы расширений, введем следующие условные обозначения: MMX-расширение целочисленного устройства будем называть MMX-расширением, а MMX-расширение устройства с плавающей точкой — ХММ-расширением.
Целочисленное MMX-расширение микропроцессора Pentium представляет собой программно-аппаратное решение, дополняющее архитектуру данного микропроцессора новыми свойствами. Впервые это расширение появилось в микропроцессоре Pentium MMX. В неизменном виде оно поддерживается микропроцессором Pentium. В микропроцессоре Pentium III целочисленное MMX-расширение бы-ло дополнено новыми командами. Знакомство с архитектурой целочисленного MMX-расширения удобно вести в рамках модели, основу которой составляют две компоненты — программная и аппаратная.
Модель целочисленного 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. Отображение ММХ-регистров на регистры стека сопроцессора
При выполнении ММХ-команд сопроцессор переводится в состояние, которое характеризуется следующими признаками: