Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Архитектура компьютеров / 6_Ассемблер-IA-32.doc
Скачиваний:
62
Добавлен:
20.03.2015
Размер:
593.92 Кб
Скачать

6.5.3. Команды мультимедийного расширения

Двухмерные графические и видеоизображения можно представить массивом, со­стоящим из большого количества точек. Цвет и яркость каждой точки, называемой пикселом, могут быть закодированы 8-битовым элементом данных. Обработка та­ких данных имеет две особенности. Во-первых, при обработке отдельных пиксе­лов часто приходится выполнять очень простые арифметические и логические операции. Во-вторых, для некоторых приложений реального времени требуется исключительно высокая скорость вычислений. Сказанное касается и обработки ау­диосигналов и речи, представляемых последовательностью отсчетов непрерывного аналогового сигнала, генерируемых через фиксированные промежутки времени.

Ускорить процесс обработки данных в приложениях обоих типов можно за счет разделения последовательности элементов данных (как правило, байтов или 16-разрядных слов) на маленькие группы, которые можно обрабатывать парал­лельно. В наборе команд IA-32 имеется множество таких, которые параллельно обрабатывают данные группами по 64 бита, называемыми четверными словами. (Четверное слово содержит восемь байт или четыре 16-разрядных слова.) Эти ко­манды называются ММХ-командами или командами мультимедийного расшире­ния (multimedia extension). Их операнды могут располагаться в памяти или в ре­гистрах с плавающей запятой. Таким образом, эти регистры служат двойной цели:

в них могут храниться числа с плавающей запятой или операнды ММХ-команд. При использовании в командах ММХ регистры обозначаются как ММ0-ММ7.

Для пересылки 64-разрядных ММХ-операндов между памятью и регистрами ММХ используются специальные команды Move.

Команда

PADDB MMi,src

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

Типичной операцией, выполняемой в приложениях обработки сигналов, явля­ется свертка — умножение короткой последовательности отсчетов входных сиг­налов на константы, называемые весовыми коэффициентами, и сложение произ­ведений для получения значения выходного сигнала. Подобные операции осуще­ствляются с помощью специальной команды ММХ, объединяющей умножение и сложение. В ней используются 64-разрядные операнды ММХ, содержащие по четыре 16-разрядных элемента данных, представляющих отсчеты сигнала.

6.5.4. Векторные команды

В архитектуре IA-32 определен набор команд, предназначенных для выполнения арифметических операций над маленькими группами чисел с плавающей запятой. Команды SIMD (Single Instruction, Multiple Data — одиночный поток команд и множественный поток данных) полезны для векторных и матричных вычисле­ний в научных приложениях. В терминологии Intel они называются командами потокового расширения SIMD (Streaming SIMD Extension, SSE). Эти команды об­рабатывают составные операнды длиной 128 бит, состоящие из четырех 32-раз­рядных чисел с плавающей запятой. Для хранения этих операндов имеются 128-разрядные регистры (на рис. 5.1 не показаны). Двумя базовыми командами этой группы являются команды сложения и умножения. Они воздействуют на че­тыре соответствующие пары исходных 32-разрядных значений, которые находят­ся в составных 128-разрядных операндах, и помещают четыре отдельных резуль­тата в 128-разрядный операнд назначения.

Соседние файлы в папке Архитектура компьютеров