
- •Севастопольский национальный университЕт ядерной энергии и промышленности инструктивно-методические указания для проведения лабораторного занятия №2
- •Заведующий кафедрой кс
- •Лабораторное занятие №2
- •1Теоретический раздел
- •2.1 Модель целочисленного mmx-расширения
- •2.3 Особенности команд mmx-расширения
- •2.4 Команды пересылки
- •1.1Команды сложения и вычитания
- •1.2Команды умножения
- •1.3Команды сравнения
- •1.4 Команды логических операций
- •1.5Команды сдвига
- •1.6Команды упаковки и распаковки
- •2Порядок выполнения работы
- •4. Процедуры вычисления выражений.
- •3Содержание отчета
- •4Контрольные вопросы
Севастопольский национальный университЕт ядерной энергии и промышленности инструктивно-методические указания для проведения лабораторного занятия №2
по дисциплине: «Компьютерные системы»
На тему: «Исследование эффективности применения команд блока MMX»
Севастополь
2008
«УТВЕРЖДАЮ»
Заведующий кафедрой кс
__________ /Н.Е. Сапожников/
«___» ______________ 20__ г.
Лабораторное занятие №2
по дисциплине «Компьютерные системы»
Время: 2 часа |
Место проведения: компьютерный класс |
Тема: «Исследование эффективности применения команд блока MMX»
Цель: 1. Закрепить знания по основным характеристикам параллелизма задач
по ярусно-параллельной форме.
Привить практические навыки построения ярусно-параллельной формы алгоритма и оценки ее характеристик на примере вычисления арифметического выражения.
Научится строить диаграммы Ганта, оптимизировать работу многопроцессорной системы.
Получить знания по организации асинхронного режима работы.
Воспитать чувства дисциплинированности и исполнительности.
Цель работы: изучение дополнительных возможностей современных процессоров.
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 — единицы. Это делается для того, чтобы при попытке случайного или преднамеренного использования командой сопроцессора ММХ-данных, не возникло какого-либо исключения сопроцессора;
при чтении данных из ММХ-регистров их содержимое не изменяется.