
- •Развитие микропроцессорных архитектур
- •Введение ……………………………………………….........................................4
- •С благодарностью
- •Введение
- •1. История развития микропроцессоров фирмы Intel
- •2. Микропроцессоры класса cisc
- •Можно отметить следующие основные черты архитектуры amd64:
- •4. Микропроцессоры класса risc
- •5. Повышение производительности микропроцессоров
- •6. Конвейерная работа микропроцессоров
- •7. Метод переименования регистров (регистровые окна)
- •8.Принцип обработки операндов simd
- •8.1. Архитектура mmx
- •8.2 Технология sse
- •8.3 Технология sse2
- •9. Обзор simd-команд
- •9.1. Команды передачи данных
- •9.2 Арифметические команды
- •9.2.2 Команды упакованного/скалярного умножения и деления
- •9.2.3 Команды упакованого/скалярного вычисления квадратных корней
- •9.2.4. Команды упакованного/скалярного нахождения максимума и минимума
- •9.2.5 Команды сравнения
- •9.3. Команды преобразования типов данных
- •9.4. Логические команды
- •9.5. Дополнительные команды simd над целочисленными операндами
- •9.6. Команды перестановки
- •9.7. Команды управления состоянием
- •9.8. Команды технологии sse3
- •1. Преобразование чисел с плавающей запятой в целые числа. В эту подгруппу входит одна-единственная инструкция, которая работает на уровне арифметического сопроцессора x87 fpu.
- •3. Загрузка невыровненных переменных. Данную подгруппу представляет инструкция lddqu.
- •Команда monitor устанавливает диапазон адресов памяти (обычно используется одна строка кэша), по которому будет осуществляться отслеживание записей по стандартному протоколу write-back.
- •10. Технология Hyper-Threading
- •11. Vliw (epic) микропроцессор
- •Литература
- •Замковец Сергей Всеволодович Развитие микропроцессорных архитектур
- •119333, Москва, ул. Вавилова, д. 44, кор. 2
8.2 Технология sse
Для того, чтобы устранить этот недостаток в микропроцессорах Pentium III была использована новая технология, получившая название SSE (Streaming SIMD Extensions – потоковое расширение SIMD). Технология SSE была направлена на реализацию принципа SIMD для вещественных чисел.
Для реализации этой технологии в микропроцессор были добавлены восемь новых 128-разрядных регистров, получивших название XMM. Т.е. команды обращаются к этим регистрам по именам XMM0, XMM1,…XMM7.
В каждом из регистров XMM помещаются четыре вещественных 32-разрядных числа. Каждое 32-разрядное число с плавающей запятой имеет 1 знаковый бит, 8 битов порядка и 23 бита мантиссы, что соответствует стандарту IEEE-754 на формат представления чисел одинарной точности с плавающей запятой.
Технология SSE включает 70 новых команд и позволяет выполнять векторные (пакетные) и скалярные инструкции, при этом векторные инструкции выполняют операции одновременно над четырьмя наборами операндов. В именах команд, выполняющих векторные операции, присутствует суффикс PS. Скалярные инструкции работают только с одним комплектом операндов - младшим 32-разрядным набором. В имени команд, выполняющих скалярные операции, присутствует суффикс SS.
8.3 Технология sse2
В микропроцессорах Pentium 4 была использована технология SSE2, которая улучшает возможности архитектуры MMX и технологии SSE. В технологии SSE2 используются те же самые регистры, которые были введены в технологии SSE, т.е. 128-разрядные регистры XMM. Однако, в отличие от SSE, где эти регистры использовались только для хранения и обработки вещественных чисел (32-разрядные операнды с плавающей запятой и одинарной точности) в технологии SSE2 эти регистры могут хранить и обрабатывать целочисленные операнды:
- 16 байт;
- 8 слов;
- 4 двойных слова;
- 2 четверных слова;
- 1 128-разрядное слово.
Кроме того, в этих регистрах может храниться и обрабатываться новый формат вещественных чисел – два 64-разрядных числа с плавающей запятой двойной точности.
Технология SSE2 включает в себя набор инструкций, который производит операции со скалярными и упакованными типами данных. Также SSE2 содержит инструкции для потоковой обработки целочисленных данных в тех же 128-битных XMM регистрах, что делает это расширение более предпочтительным для целочисленных вычислений, нежели использование набора инструкций MMX, появившегося гораздо раньше.
Эта технология предназначена для разработки приложений трехмерной графики, обработки сигналов, кодирования и декодирования, распознавания речи и т. п. Кроме того, SSE2-команды позволяют:
разрабатывать алгоритмы, в которых одновременно можно обрабатывать смешанные типы данных: упакованные числа с плавающей точкой с одинарной точностью, а также упакованные числа с плавающей запятой с двойной точностью, а также целые 64- и 128-разрядные числа;
работать с данными различной размерности: байтом, словом, двойным словом, учетверенным словом и двойным учетверенным словом.
В микропроцессор были введены новые команды для реализации функции целочисленной арифметики, 128-разрядные для регистров XMM и такие же 64-разрядные для регистров MMX; ряд старых инструкций MMX распространили на XMM (в 128-битном варианте); добавлены инструкции преобразования для новых форматов данных, а также расширены возможности "перемешивания" данных в блоке XMM. Кроме того, расширена поддержка управления кэшированием и порядком исполнения операций с памятью.
Набор SSE2 добавил 144 новые команды к SSE, в котором было только 70 команд.
Поскольку SSE2 предназначено и для замены архитектуры MMX, с использованием 128-разрядных регистров вместо 64-разрядных, то можно рекомпилировать код, используя следующую последовательность действий:
заменить имена MMX регистров на имена SSE2 регистров, например вместо регистра MM0 указать регистр XMM0;
заменить команду MOVD на команду MOVAPD или MOVUPD;
заменить команду PSHUFW на комбинацию следующих команд PSHUFHW, PSHUFLW, PSHUFD;
заменить команды PSLLQ и PSRLQ на команды PSLLDQ и PSRLDQ соответственно;
изменить счетчики циклов и величину смещения в памяти, поскольку теперь работа производится над 128 разрядами, а не 64.
Следующим шагом совершенствования SSE-технологи стало SSE3-расширение, которое появилось в микропроцессоре Pentium 4. SSE3 расширение добавило еще 13 новых команд. Все они, за исключением трех, используют ХММ-регистры и предназначены для повышения производительности при выполнении следующих операций:
• быстрое преобразование вещественного числа в целое (соответствующая команда fisttp заменяет семь «обычных» команд);
• сложные арифметические вычисления (команды addsubps, addsubpd, movsldup, movshdup, movddup);
• кодирование видео (команда 1ddqu);
• обработка графики (команды haddps, hsubps, haddpd, hsubpd);
• синхронизация потоков (команды monitor, mwait).
В микропроцессорах Intel Core была реализована технология SSE4. Эта технология использует 54 новых инструкций. Ни одна из этих инструкций не работает с 64-разрядными MMX регистрами, а только с 128-разрядными регистрами XMM0-15.