- •Целочисленный процессор ia-32
- •Цикл выполнения команды
- •Распределение адресного пространства
- •Образ программы в памяти
- •Математический сопроцессор
- •Xmm технология
- •Система команд
- •Классификация команд
- •Команды передачи управления
- •Команды условного перехода
- •Программирование ветвлений
- •Программирование итерационных циклов (цикл-пока)
- •Пример итерационного цикла
- •1. Команда организации счетного цикла:
- •Пример счетного цикла
- •2. Команда перехода по обнуленному счетчику.
- •Обработка одномерных массивов
- •Обработка матриц
- •Команды обработки строк
Математический сопроцессор
Семейство процессоров IA-32 содержит так называемый модуль операций с ПТ {FPU - Floating-Point Unit), который используется исключительно для быстрого выполнения этого типа операций.
В модуле FPU содержится 8 внутренних регистров для хранения данных с ПТ, которые называются ST(0), ST(1), ST(2), ST(3), ST(4), ST(5), ST(6) и ST(7). Они образуют стек сопроцессора. Остальные регистры, выполняющие функции управления и хранящие указатели, показаны на рисунке.
Регистры FPU
MMX-технология
MMX = Multi-Media eXtension – мульти-медиа расширение.
В мультимедийных приложениях 80% времени выполнения программы приходится на 10-20% программного кода. Малая разрядность данных требует дополнительных действий при их обработке на 32-разрядном микропроцессоре, не позволяя в то же время использовать всю мощь 32-разрядной архитектуры.
Особенности программ, использующих ММХ-технологию :
использование данных целого типа небольшой разрядности, например, 8-разрядные графические пиксели и 16-разрядная оцифровка звука;
короткие циклы с высокими коэффициентами повторяемости;
большое количество операций умножения и суммирования, в том числе из-за широкого использования быстрого преобразования Фурье;
применение алгоритмов, требующих интенсивных вычислений;
широкое использование операций с высоким уровнем параллелизма.
Особенностью MMX-технологии является новый принцип обработки информации - обработка по схеме SIMD (Single Instruction Multiple Data) - один поток команд, много потоков данных.
Этот вид обработки подразумевает, что с помощью одной команды одна и та же операция выполняется сразу над несколькими операндами, например, производится суммирование нескольких пар слагаемых.
Такой подход требует поддержки как со стороны системы команд и форматов данных, так и на аппаратном уровне.
Расширение MMX ориентировано в основном на использование в мультимедийных приложениях.
Основная идея MMX заключается в одновременной обработке нескольких элементов данных за одну инструкцию. Для этого используются 64-битные регистры MMX, в которых размешается несколько данных меньшего размера.
Расширение MMX использует новые типы упакованных данных:
Packed byte - упакованные байты (восемь байт).
Packed word - упакованные слова (четыре слова).
Packed doubleword - упакованные двойные слова (два двойных слова).
Packed quadword - учетверенное слово.
Расширение MMX включает 8 регистров общего пользования (MM0-MM7). Размер регистров составляет 64 бита.
Команды ММХ работают непосредственно с регистрами сопроцессора, а не с указателями стека.
Xmm технология
Технология XММ получила свое развитие в микропроцессоре Pentium III с появлением специального аппаратного блока SSE (Streaming SIMD Extension - потоковое SIMD-расширение) обработки информации по схеме SIMD. Новая технология получила название XMM (eXtended Multi-Media).
Блок SSE содержит отдельный регистровый файл из восьми 128-разрядных регистров XMM, что позволяет обрабатывать по схеме SIMD числа с плавающей запятой (четыре 32-разрядных числа).
Числа с плавающей запятой имеют следующий формат:
знак: 1 разряд;
порядок (смещенный): 8 разрядов;
мантисса: 23 разряда.
Расширено и количество форматов чисел с фиксированной точкой, обрабатываемых в XMM по схеме SIMD:
16 операндов х 8 разрядов;
8 операндов х 16 разрядов;
4 операнда х 32 разряда;
2 операнда х 64 разряда.