
- •Развитие микропроцессорных архитектур
- •Введение ……………………………………………….........................................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
9.2 Арифметические команды
Арифметические команды SIMD выполняют сложение, вычитание, умножение и деление данных одинарной точности с плавающей запятой.
Второй операнд этих команд может располагаться либо в SIMD-регистре, либо в памяти. Первый операнд обязательно должен находиться в SIMD-регистре. Арифметические команды поддерживают как параллельные, так и скалярные операции.
9.2.1 Команды упакованного/скалярного сложения и вычитания
Команды ADDPS (Add packed, single-precision, floating-point - сложение упакованных данных с плавающей запятой с одинарной точностью) и SUBPS (Subtract packed, single-precision, floating-point – вычитание упакованных данных с плавающей запятой с одинарной точностью) складывают или вычитают четыре пары упакованных операндов одинарной точности с плавающей запятой.
Команды ADDSS (Add scalar single-precision, floating-point – сложение скалярных упакованных данных с плавающей запятой с одинарной точностью) и SUBSS (Subtract scalar single-precision, floating-point - вычитание упакованных данных с плавающей запятой с одинарной точностью) складывают или вычитают младшую пару упакованных операндов одинарной точности с плавающей точкой. Остальные элементы регистра не меняются.
9.2.2 Команды упакованного/скалярного умножения и деления
Команды MULPS (Multiply packed, single-precision, floating-point – умножение упакованных данных с плавающей запятой с одинарной точностью) и DIVPS (Divide packed, single-precision, floating-point – деление упакованных данных с плавающей запятой с одинарной точностью) умножают или делят четыре пары упакованных операндов одинарной точности с плавающей запятой.
Команды MULSS (Multiply scalar single-precision, floating-point – умножение скалярных данных с плавающей запятой с одинарной точностью) и DIVSS (Multiply scalar single-precision, floating-point – деление скалярных данных с плавающей запятой с одинарной точностью) умножают или делят младшую пару упакованных операндов одинарной точности с плавающей запятой. Остальные элементы регистра не меняются.
9.2.3 Команды упакованого/скалярного вычисления квадратных корней
Команды вычисления квадратных корней SQRTPS (Square root packed, single-precision, floating-point – вычисление квадратного корня из упакованных данных с плавающей запятой с одинарной точностью) и SQRTSS (Square root scalar single-precision, floating-point – вычисление квадратного корня из скалярных данных с плавающей запятой с одинарной точностью) определяют арифметические значения квадратного корня для чисел, упакованных во втором операнде, и записывают результаты в элементы первого операнда.
Входной операнд для этих команд может располагаться либо в регистре, либо в памяти. Выходной операнд должен обязательно находиться в SIMD-регистре.
9.2.4. Команды упакованного/скалярного нахождения максимума и минимума
Команды нахождения минимума и максимума производят попарное сравнение соответствующих элементов двух операндов и записывают минимальные или максимальные значения в выходной операнд.
Входной операнд для этих команд может располагаться либо в XMM-регистре, либо в памяти. Выходной операнд должен обязательно находиться в XMM-регистре. Поддерживаются как параллельные, так и скалярные операции (maxps (Maximum packed, single-precision, floating-point), maxss, minps и minss).