- •Архитектура эвм
- •Введение
- •Структура мпс
- •Основные понятия в архитектуре мпс
- •Архитектура фон Неймана
- •Гарвардская архитектура
- •Параллельная архитектура
- •Конвейерная архитектура
- •Суперскалярная архитектура
- •АрхитектурыCisc
- •Архитектуры risc
- •Архитектуры misc
- •Ассемблеры
- •Программа Ассемблер
- •Язык Ассемблер
- •Основы 32-битного программирования в Windows
- •Api функции
- •Сообщения Windows
- •Версии ассемблеров
- •Среды разработки
- •Представление данных в эвм
- •Системы счисления и преобразования между ними
- •Форматы представления чисел
- •Форматы представления двоичных чисел
- •Формат с плавающей точкой
- •Типы адресаций операндов
- •Интерфейсы
- •Последовательный интерфейс rs-232c
- •Интерфейс параллельного порта
- •Инфракрасный интерфейс
- •Интерфейс Bluetooth
- •Интерфейс usb
- •Интерфейс ieee 1394 - FireWire
- •Сопроцессоры
- •Система прерываний и исключений
- •Интерфейс jtag
- •Символы и строки
- •Архитектура cisc от Intel
- •Введение
- •Микроархитектура Intel
- •Микроархитектура р6
- •Микроархитектура NetBurst
- •Микроархитектура Pentium 4
- •Микроархитектура Intel Pentium Mobile
- •Микроархитектура Intel Core
- •Микроархитектура Intel Core Duo
- •Микроархитектура Intel Nehalem
- •Адресация памяти в ia_32
- •Наборырегистров
- •Целочисленныйпроцессор
- •Регистры общего назначения (рон)
- •Регистры флагов eflags
- •Регистр указателя команд
- •Сегментные регистры
- •Управляющие регистры
- •Системные адресные регистры
- •Прямой и обратный порядок следования байтов
- •Виды адресации операндов в памяти
- •Цикл выполнения команды
- •Распределение адресного простраства
- •Образ программы в памяти.
- •Математический сопроцессор
- •Xmm технология
- •Система команд
- •Формат команды
- •Классификация команд
- •Целочисленный процессор
- •Команды общего назначения
- •Команды ввода-вывода
- •Инструкции работы со стеком
- •Арифметико-логические инструкции
- •Цепочечные операции
- •Команды управления
- •Команды поддержки языков высокого уровня
- •Команды прерываний
- •Команды синхронизации процессора
- •Команды обработки цепочки бит
- •Команды управления защитой
- •Команды обмена с управляющими регистрами
- •Команды идентификации и управления архитектурой
- •Управление кэшированием
- •Команды управления кэшированием
- •Сопроцессор с плавающей точкой
- •Классификация команд
- •Команды управления сопроцессором
- •Команды передачи данных
- •Команды сравнения данных
- •Арифметические команды
- •Трансцендентные функции
- •Целочисленное mmx расширение
- •Синтаксис ммх-команд
- •Классификация команд
- •Инициализация
- •Передача данных
- •Упаковка данных
- •Распаковка данных
- •Арифметика
- •Сравнения
- •Дополнительные команды
- •XmMрасширение с плавающей точкой
- •Типы данных
- •Передача данных
- •Арифметика
- •Сравнения
- •Преобразования
- •Управление состоянием
- •Распаковка данных
- •Управление кэшированием
- •Дополнительные команды
- •Цикл трансляции, компоновки и выполнения
- •Ассемблер cisc
- •Введение
- •Средства программирования и отладки
- •Описание masm
- •Структура программы на ассемблере
- •Типы данных
- •Макросредства
- •Директивы
- •Архитектура risc
- •Система команд
- •Архитектура misc
- •Архитектура vliw
- •Архитектура вычислительных систем со сверхдлинными командами
- •Архитектура ia-64
- •Многоядерные архитектуры
- •Микроконтроллер avr от Atmel
- •Архитектура avr от Atmel
- •Ассемблер
- •Команды ассемблера
- •Директивы ассемблера
- •Выражения
- •Микроконтроллеры c28x
- •Архитектура c28x
- •Архитектура f28x
- •Инструментальные средства разработки по
- •Ассемблер
- •Команды ассемблера
- •Формат объектного файла
- •Директивы ассемблера
- •Макроязык и макрокоманды
- •Компоновщик
- •Архиватор
- •Абсолютный листер
- •Листер перекрестных ссылок
- •Утилита 16-ричного преобразования
- •Архитектура VelociTi
- •Структура и состав цсп с6x
- •Средства разработки цсп с6x
- •Ассемблер цсп с6x
- •Команды ассемблера
- •Выражения
- •Листинги
- •Листинги программ
- •Директивы ассемблера
- •Макроязык и макрокоманды
- •Компоновщик
- •Утилиты
- •Поддержка в matlab
- •Введение
- •Встроенные платы для цсп ‘c6x
XmMрасширение с плавающей точкой
Синтаксис XMM команд:
Мнемоника приемник, источник
Мнемоника приемник, источник, маска
Мнемоника приемник
Приемник – всегда регистр XMM, источник - регистр XMM или ячейка памяти,
Типы данных
XMM-расширение реализовано в виде аппаратно-программного модуля SSE, который включает дополнительные восемь регистров разрядностью в 128 бит, имеющих обозначение ХММО - ХММ7,
и 32-разрядный регистр управления/состояния MXCSR.
Программная часть XMM-расширения включает в себя набор команд для работы с данными в формате плавающей точки. Содержимое ХММ-регистра представляет собой четыре 32-разрядных операнда с плавающей точкой в коротком формате (SinglePrecisionFloatingPoint,SPFP). Представление данныхSSE-расширения соответствует стандартуIEEE-754, а сам формат данных показан на рисунке.
Здесь мантисса (mantissa) и порядок (exponent) формируют число в формате SPFP в соответствии с формулой
мантисса * 2порядок.
Этот формат данных несопоставим с тем, который принят для математического сопроцессора (число в 80-разрядном расширенном формате), поэтому в некоторых случаях при разных границах выравнивания результаты вычислений с использованием форматов FPU и SSE могут различаться.
Поскольку аппаратно модуль SSE-расширения реализован независимо от других модулей, то это позволяет выполнять XMM-комапды параллельно с командами математического сопроцессора и ММХ-командами. При этом для синхронизации вычислений инструкции наподобиеEMSSне требуются.
Структура полей регистра управления/состояния (MXCSR) во многом напоминает ту, что реализована в регистрах состояния (swr) и управления (cwr) математического сопроцессора. Состоянием вычислений можно управлять путем установки определенных значений в поля этого регистра.
Набор инструкций XMM-расширения включает 70 команд.
Значительная часть команд может выполняться в двух контекстах: скалярном и параллельном. Это относится к арифметическим командам, а также к командам сравнения. Команды обрабатывают:
В параллельном контексте одновременно 4 двойных слова и имеют в своей мнемонике суффикс ps.
В скалярном контексте только младшие 32-разрядные двойные слова упакованных операндов, не затрагивая при этом три старших двойных слова. Исключение составляют некоторые команды скалярной пересылки данных. Мнемоническое обозначение этих команд включает суффикс ss.
В процессе обработки данных команды XMM-расширения могут возбуждать исключительные ситуации, которые возникают, если происходит одно из следующих событий:
некорректная операция (invalid operation);
денормализованный операнд (denormalized operand);
деление на 0 (divide-by-zero);
арифметическое переполнение (numeric overflow);
потеря значащих разрядов (numeric underflow);
потеря точности (inexact result).
При возникновении исключительных ситуаций устанавливаются биты 0-5 в регистре управления/состояния (MXCSR). Каждая исключительная ситуация может быть замаскирована путем установки в 1 битов 7-12 регистра MXCSR. Если какое-либо исключение замаскировано, то оно обрабатывается процессором по стандартному алгоритму, после чего продолжается выполнение программного кода. Формат полей регистра MXCSR и их назначение показаны на рис. 13.5.
Биты 13-14 регистра MXCSR поля RC (или гс, что одно и то же) задают режим округления. По умолчанию устанавливается режим округления к ближайшему значению числа с плавающей точкой в коротком формате. Эти биты можно установить программно, причем возможны следующие комбинации:
00 — округление к ближайшему числу;
01 — округление к меньшему числу;
10 — округление к большему числу;
11 — округление с отбрасыванием дробной части.
Бит 15 используется, если результат операции близок к нулю. При этом процессор выполняет следующие действия:
возвращает значение 0 и знак результата;
устанавливает флаги Р (бит 5) и U (бит 4);
маскирует биты исключений.
Программная реализация SSE-расширения включает несколько десятков команд. Все их условно можно разделить на несколько групп:
команды передачи данных;
арифметические команды;
команды сравнения;
команды преобразования;
логические команды;
дополнительные команды.
Классификация команд
После обзора команды будут рассмотрены подробно.
Категория |
Подкатегория |
Команды |
Передачаданных |
|
|
Арифметика |
Скалярные |
|
|
Параллельные |
|
Сравнение |
|
|
|
|
|
Преобразования |
|
|
Логика |
|
|
Дополнительные |
Вычисления |
|
|
Извлечения |
|
|
Извлечения знака |
|