
- •Развитие микропроцессорных архитектур
- •Введение ……………………………………………….........................................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.Принцип обработки операндов simd
8.1. Архитектура mmx
Для ускорения выполнения мультимедиа и коммуникационных программ была разработана и применена в микропроцессорах архитектура MMX (Multi Media eXtension). Эта архитектура включает в себя новые команды и типы данных, что позволяет создавать приложения нового уровня. При этом сохраняется полная совместимость с существующими операционными системами и программным обеспечением. Данная архитектура выполняет обработку операндов по принципу SIMD (Single Instruction Multiple Data, т.е. одна команда – много данных), т.е. одной командой можно обработать сразу несколько единиц информации.
Новые MMX-команды, реализованные в процессоре Pentium III, увеличивают производительность прикладных программ в следующих областях:
видео;
комбинирование графики и видео;
обработка изображений;
звуковой синтез;
распознавание и синтез речи;
телефония;
видео-конференции;
2D и 3D графика.
В MMX архитектуре вводятся новые типы данных:
- упакованные байты – 8 байт, упакованные в одно 64-разрядное число;
- упакованные слова – 4 слова, упакованные в одно 64-разрядное число;
- упакованные двойные слова – 2 двойных слова, упакованные в одно 64-разрядное число;
- учетверенное слово – одно 64-разрядное число.
MMX команды могут обрабатывать группы из 8 байт, 4 слов, двух двойных слов и одно учетверенное слово. Такие группы из 64 разрядов рассматриваются как упакованные данные и могут трактоваться как один из вышеперечисленных типов данных.
MMX-технология поддерживает новую арифметику, называемую арифметикой с насыщением. Эта арифметика работает не так, как обычная арифметика, которая называется арифметикой с циклическим переносом.
В арифметике с циклическим переносом в случае переполнения разрядной сетки в результате рассматриваются только младшие разряды результата, а старшие разряды игнорируются. Например, при сложении двух слов старший разряд теряется (или фиксируется в арифметическом флаге переноса CF):
FFFFh + 8000h = 7FFFh
В арифметике с насыщением результат операции, который выходит за границу размера данных, насыщается до предельно возможного значения для используемого типа данных, поэтому результат вышеприведенного примера при использовании арифметики с насыщением будет равняться FFFFh.
Если же результат получается меньше 0х80 (для знаковых байт) или меньше 0х00 (для беззнаковых байт), то результатом данной операции будет соответственно 0х80 или 0х00.
В первых микропроцессорах, в которых была реализована технология MMX, регистры, в которых происходит обработка операндов, отображены на регистры, используемые при вычислениях с плавающей запятой, т.е. всего имеется 8 64-разрядных MMX регистров, которые отображаются на поля мантиссы. Значения, записываемые в MMX-регистр, автоматически появляются в младших разрядах соответствующих FPU-регистров (FPU - Floating Point Unit). Обращение к этим регистрам команды выполняют, указывая непосредственно имена этих регистров от ММ0 до ММ7.
ММХ регистры могут использоваться только непосредственно для проведения обработки данных. Они не могут использоваться для адресации к памяти; адресация выполняется при помощи целочисленных регистров и стандартных режимов адресации.
Ниже представлен пример выполнения команды PADDSW mm,mm/m64 – сложение беззнаковых упакованных слов с насыщением – операнды располагаются следующим образом – один операнд, содержащий 4 упакованных слова, находится в регистре, второй операнд может располагаться в регистре или в памяти. Результат располагается в регистре. В представленном примере видно, что первое слово формируется с насыщением.
1010101010101010 |
1010101010101010 |
1101010101010101 |
1010100101000111 |
+ + + +
1000000000000000 |
0010101010101010 |
0000000000000000 |
1010100101000111 |
= = = =
1111111111111111 |
1101010011110100 |
1101010101010101 |
1010100101000111 |
Основной выигрыш в производительности обработки данных при использовании SIMD метода осуществляется за счет одновременной обработки нескольких операндов при помощи одной команды.
Набор MMX-команд состоит из команд пересылки данных, упаковки/распаковки, сложения/вычитания, умножения, сдвига, сравнения и поразрядных логических операций.
Команды упаковки и сложения/вычитания работают в двух режимах: обычном и специальном (в котором реализована арифметика с насыщением). В режиме насыщения особенно удобно выполнять смешивание цветов изображение или амплитуд звуковых сигналов, поскольку при обычном переполнении результат не имеет никакого смысла.
Команда умножения представлена тремя видами: первые два выполняют попарное умножение четырех слов с выбором либо старшей, либо младшей части результата, а третий выполняет операцию вида ab + cd для каждой пары из четырех слов операндов, что очень удобно при вычислении математических рядов.
Команды сдвига реализуют логический и арифметический сдвиги своих операндов. Логические поразрядные команды выполняют операции И (AND), ИЛИ (OR), Исключающее ИЛИ (XOR), а также комбинированную команду И с инверсией одного из операндов (AND NOT), удобную для реализации «обратного выбора» по битовой маске.
Команды сравнения работают несколько необычно по сравнению с общепринятой логикой: вместо установки признаков для последующих команд перехода они генерируют единичные битовые маски для тех операндов, которые удовлетворяют условию, и нулевые — для остальных операндов. Последующие логические поразрядные операции могут выделить, погасить или как-то иначе обработать отмеченные таким образом операнды, которые в этом случае могут представлять собой точки изображения или отсчеты звукового сигнала.
Недостатком данного вида реализации архитектуры MMX является то, что MMX регистры проецируются на регистры, которые используются для обработки операндов с плавающей запятой, т.е. в этих микропроцессорах невозможно одновременно обрабатывать такие операнды и обрабатывать операнды по технологии MMX.