Модель целочисленного 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. Отображение ММХ-регистров на регистры стека сопроцессора

 

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