МЕНЮ


Фестивали и конкурсы
Семинары
Издания
О МОДНТ
Приглашения
Поздравляем

НАУЧНЫЕ РАБОТЫ


  • Инновационный менеджмент
  • Инвестиции
  • ИГП
  • Земельное право
  • Журналистика
  • Жилищное право
  • Радиоэлектроника
  • Психология
  • Программирование и комп-ры
  • Предпринимательство
  • Право
  • Политология
  • Полиграфия
  • Педагогика
  • Оккультизм и уфология
  • Начертательная геометрия
  • Бухучет управленчучет
  • Биология
  • Бизнес-план
  • Безопасность жизнедеятельности
  • Банковское дело
  • АХД экпред финансы предприятий
  • Аудит
  • Ветеринария
  • Валютные отношения
  • Бухгалтерский учет и аудит
  • Ботаника и сельское хозяйство
  • Биржевое дело
  • Банковское дело
  • Астрономия
  • Архитектура
  • Арбитражный процесс
  • Безопасность жизнедеятельности
  • Административное право
  • Авиация и космонавтика
  • Кулинария
  • Наука и техника
  • Криминология
  • Криминалистика
  • Косметология
  • Коммуникации и связь
  • Кибернетика
  • Исторические личности
  • Информатика
  • Инвестиции
  • по Зоология
  • Журналистика
  • Карта сайта
  • Форматы данных и команды их обработки процессоров Pentium III, Pentium IV

    |ed) | | | | | |

    |Двоичные целые |

    |Слова |16 |15 |4 |[pic] |[pic] |

    |(word) | | | | | |

    |Коротки|32 |31 |9 |[pic] |[pic] |

    |е | | | | | |

    |(short)| | | | | |

    |Длинные|64 |63 |18 |[pic] |[pic] |

    |(long) | | | | | |

    |Упакованные двоично-десятичные |

    |BCD |80 |— |18 |— |[pic] |

    Сопроцессор контролирует числа, участвующие в арифметических

    операциях. При загрузке денормализованного операнда в регистр FPU и попытке

    выполнения арифметических инструкций хотя бы с одним денормализованным

    операндом сопроцессор фиксирует условие исключения #D. Денормализованные

    числа могут появляться при выполнении вычислений, в этом случае сопроцессор

    фиксирует факт исчезновения значащих разрядов и генерирует исключение #U.

    При попытке выполнения арифметических операций с нечислами, а также с

    недопустимыми значениями операндов (например, извлечение квадратного корня

    из отрицательного числа) вырабатывается исключение #I. При переполнении

    вырабатывается исключение #O, при попытке деления на нуль ненулевого

    операнда вырабатывается исключение #Z.

    Если результат вычисления невозможно представить точно в выбранном

    формате, сопроцессор выполняет округление результата в сторону соседнего

    допустимого значения. Правила округления программируются. Вместо

    автоматического выполнения округления сопроцессор может вырабатывать

    исключение #Р.

    3. Технология MMX

    Технология ММХ ориентирована на приложения мультимедиа, 2D/3D-графикy

    и коммуникации. Это расширение базовой архитектуры появилось только после

    выхода второго поколения процессоров Pentium. Основная идея ММХ заключается

    в одновременной обработке нескольких элементов данных за одну инструкцию —

    так называемая технология SIMD (Single Instruction — Multiple Data).

    Расширение ММХ использует новые типы упакованных 64-битных целочисленных

    данных:

    • упакованные байты (Packed byte) — восемь байт;

    • упакованные слова (Packed word) — четыре слова;

    • упакованные двойные слова (Packed doubleword) — два двойных слова;

    • учетверенное слово (Quadword) — одно слово.

    Эти типы данных могут специальным образом обрабатываться в 64-битных

    регистрах ММХ0-ММХ7, представляющих собой младшие биты стека 80-битных

    регистров FPU. Каждая инструкция ММХ выполняет действие сразу над всем

    комплектом операндов (8, 4, 2 или 1), размещенных в адресуемых регистрах.

    Как и регистры FPU, эти регистры ММХ не могут использоваться для адресации

    памяти. Совпадение регистров ММХ и FPU накладывает ограничения на

    чередование кодов FPU и ММХ — забота об этом лежит на программисте

    приложений с ММХ.

    Еще одна особенность технологии ММХ — поддержка арифметики с

    насыщением (saturating arithmetic). Ее отличие от обычной арифметики с

    циклическим переполнением (wraparound mode) заключается в том, что при

    возникновении переполнения в результате фиксируется максимально возможное

    значение для данного типа данных, а перенос игнорируется. В случае

    переполнения снизу в результате фиксируется минимально возможное значение.

    Граничные значения определяются типом (знаковый или беззнаковый) и

    разрядностью переменных. Такой режим вычислений удобен, например, для

    определения цветов.

    В систему команд введено 57 дополнительных инструкций для

    одновременной обработки нескольких единиц данных. Одновременно

    обрабатываемое 64-битное слово может содержать как одну единицу обработки,

    так и 8 однобайтных, 4 двухбайтных или 2 четырехбайтных операнда. Новые

    инструкции включают следующие группы:

    • арифметические (Arithmetic Instructions), куда входят сложение и

    вычитание в разных режимах, умножение и комбинация умножения и сложения;

    • сравнение (Comparison Instructions) элементов данных на равенство

    или по величине;

    • преобразование форматов (Conversion Instructions);

    • логические инструкции (Logical Instructions) — И, И-НЕ, ИЛИ и

    исключающее ИЛИ, выполняемые над 64-битными операндами;

    • сдвиги (Shift Instructions) — логические и арифметические;

    • пересылки данных (Data Transfer Instructions) между регистрами ММХ и

    целочисленными регистрами или памятью;

    • очистка ММХ (Empty ММХ State) — установка признаков пустых регистров

    в слове тегов.

    Инструкции ММХ не влияют на флаги условий в слове состояния FPU.

    Регистры ММХ в отличие от регистров FPU адресуются физически, а не

    относительно значения указателя стека ТОР. Более того, любая инструкция ММХ

    обнуляет поле ТОР регистра состояния FPU. В слове тегов свободному регистру

    соответствует комбинация 11, остальные комбинации указывают только на

    занятость регистра. После каждой операции ММХ биты тегов регистра

    назначения обнуляются. Неиспользуемые в ММХ биты [79:64] регистров FPU

    заполняются единицами, так что ошибочная обработка данных ММХ инструкцией

    FPU приведет к исключению.

    Инструкции ММХ не порождают новых исключений. Исключения при

    выполнении инструкций ММХ могут возникать только в случае нарушения границ

    в обращениях к памяти (как при обмене данными, так и при выборке

    инструкции). Однако если предшествующая инструкция FPU породила условие

    исключения, то оно произойдет при выполнении инструкции ММХ. После его

    обработки инструкция ММХ может исполнена.

    С инструкциями ММХ могут применяться префиксы замены сегмента и

    изменения разрядности адреса (влияют на инструкции, обращающиеся к памяти).

    Использование префиксов изменения разрядности операнда и повторов

    зарезервировано (может привести к непредсказуемым результатам). Префикс

    Lock вызывает исключение #UD.

    Инструкции ММХ доступны из любого режима процессора. При переключении

    задач необходимо следить за корректностью сохранения контекста, как и при

    работе с FPU.

    Любая инструкция ММХ вызывает обнуление полей тегов всех регистров

    FPU/ММХ, что для FPU означает наличие действительных данных во всех

    регистрах. Последующая инструкция для FPU над "неправильными" данными может

    привести к непредсказуемому результату, поскольку "входной контроль" данных

    осуществляется по состоянию тегов. Чтобы застраховаться от подобных

    неприятностей, после инструкций ММХ и перед инструкциями FPU в программный

    код вводят инструкцию EMMS, которая устанавливает в слове тегов значение

    FFFFh (все регистры пустые).

    Различие в способе адресации регистров (относительная для FPU и явная

    прямая в ММХ), обнуление тегов инструкциями ММХ и некоторые другие нюансы

    не позволяют чередовать инструкции FPU и ММХ. Блок FPU/MMX может работать

    либо в одном, либо в другом режиме. Если, к примеру, в цепочку инструкций

    FPU нужно вклинить инструкции ММХ, после чего продолжить вычисления FPU, то

    перед первой инструкцией ММХ приходится сохранять контекст (состояние

    регистров) FPU в памяти, а после этих инструкций снова загружать контекст.

    На эти сохранения и загрузки расходуется процессорное время, в результате

    возможна полная потеря выигрыша от реализации технологии SIMD. Совпадение

    регистров ММХ и FPU оправдывают тем, что для сохранения контекста ММХ при

    переключении задач не требуется доработок в операционной системе — контекст

    ММХ сохраняется тем же способом, что и FPU, с которым умели работать

    издавна. Таким образом, операционным системам было все равно, какой

    процессор установлен — с ММХ или без. Но для того чтобы реализовать

    преимущества SIMD, приложения должны "уметь" ими пользоваться (и не

    проиграть на переключениях).

    Частое чередование кодов FPU и ММХ может снизить производительность за

    счет необходимости сохранения и восстановления весьма объемного контекста

    FPU.

    4. Расширение SSE и SSE2 — блок XMM

    Процессоры Pentium 3 имеют так называемое потоковое расширение SSE

    (Streaming SIMD Extensions). В те времена, когда будущий Pentium III

    называли еще Kathmai, фирма Intel объявила о новых инструкциях KNI (Kathmai

    New Instruction), так что SSE — это синоним "староинтеловского" KNI. Новые

    процессоры имеют дополнительный независимый блок из восьми 128-битных

    регистров, названных ХММ0...ХММ7 (очевидно, eXtended MultiMedia), и регистр

    состояния/управления MXCSR. В каждый из регистров ХММ помещаются четыре 32-

    битных числа в формате с плавающей точкой одинарной точности. Блок

    позволяет выполнять векторные (они же пакетные) и скалярные инструкции.

    Векторные инструкции реализуют операции сразу над четырьмя комплектами

    операндов. Скалярные инструкции работают с одним комплектом операндов —

    младшим 32-битным словом. При выполнении инструкций с ХММ традиционное

    оборудование FPU/MMX не используется, что позволяет эффективно смешивать

    инструкции ММХ с инструкциями над операндами с плавающей точкой. Здесь

    блоки процессора меняются ролями — регистры ММХ, наложенные на регистры

    традиционного сопроцессора, используются для целочисленных потоковых

    вычислений, а вычисления с плавающей точкой (правда, только с одинарной

    точностью, но для мультимедийпых приложений ее хватает) возлагаются на

    новый блок ХММ. Кроме инструкций с новым блоком ХММ в расширение SSE входят

    и дополнительные целочисленные инструкции с регистрами ММХ, а также

    инструкции управления кэшированием. Новые инструкции с регистрами ММХ, как

    и их предшественники из "классического" ММХ, не допускают чередования с

    инструкциями FPU без переключения контекста FPU/MMX.

    С инструкциями SSE могут использоваться префиксы замены сегмента и

    изменения разрядности адреса (влияют на инструкции, обращающиеся к памяти).

    Использование префиксов изменения разрядности операнда зарезервировано

    (может привести к непредсказуемым результатам). Префикс Lock вызывает

    исключение #UD. Из префиксов повтора можно использовать только безусловный

    (REP) и только для "потоковых" инструкций (с ХММ), Остальные применения

    префиксов повтора могут привести к непредсказуемым результатам.

    В процессоре Pentium 4 набор инструкций получил очередное расширение —

    SSE2, в основном касающееся добавления новых типов 128-битных операндов для

    блока ХММ:

    • упакованная пара вещественных чисел двойной точности;

    • упакованные целые числа: 16 байт, 8 слов, 4 двойных слова или пара

    учетверенных (по 64 бита) слов.

    В процессор введены новые функции целочисленной арифметики SIMD, 128-

    разрядные для регистров ХММ и такие же 64-разрядные для регистров ММХ; ряд

    старых инструкций ММХ распространили и на ХММ (в 128-битном варианте);

    добавлены инструкции преобразований для новых форматов данных, а также

    расширены возможности "перемешивания" данных в блоке ХММ. Кроме того,

    расширена поддержка управления кэшированием и порядком исполнения операций

    с памятью. Инструкции SSE2 предназначены для ЗD-графики,

    кодирования/декодирования видео, а также шифрования данных.

    5. Команды обработки данных

    Система команд 32-разрядных процессоров является существенно

    расширенной системой команд процессоров 8086/80286. Расширения касаются

    увеличения разрядности адресов и операндов, более гибкой системы адресации,

    появления принципиально новых типов данных (битовые строки и поля) и

    команд.

    Команды (инструкции) содержат одно- или двухбайтный код инструкции, за

    которым может следовать несколько байт, определяющих режим исполнения

    команды, и операнды. Команды могут использовать до трех операндов (или ни

    одного). Операнды могут находиться в памяти, регистрах процессора или

    непосредственно в команде. Для 32-разрядных процессоров разрядность слова

    (word) по умолчанию может составлять 32, а не 16 бит. Это распространяется

    на многие инструкции, включая и строковые. В реальном режиме и режиме

    виртуального процессора 8086 по умолчанию используется 16-битная адресация

    и 16-битные операнды-слова. В защищенном режиме режим адресации и

    разрядность слов по умолчанию определяются дескриптором кодового сегмента.

    Перед любой инструкцией может быть указан префикс переключения разрядности

    адреса или слова. При адресации памяти использование сегментного регистра,

    предусмотренного командой, в ряде инструкций может подавляться префиксом

    изменения сегмента (Segment Override).

    В системе команд насчитывается несколько сотен инструкций, поэтому в

    данной работе обзорно рассмотрены все команды обработки данных (блоков

    процессора АЛУ, FPU, MMX, и XMM), а далее более подробно описаны

    инструкции, появившиеся в процессорах Pentium 3 (блок XMM — SSE) и Pentium

    4 (блок XMM — SSE2).

    Инструкции пересылки данных (см. табл) позволяют передавать константы

    или переменные между регистрами и памятью, а также портами ввода-вывода в

    различных комбинациях, но в памяти может находиться не более одного

    операнда. В эту группу отнесены и инструкции преобразования форматов —

    расширений и перестановки байт. Операции со стеком выполняются словами с

    разрядностью, определяемой текущим режимом. При помещении в стек слова

    указатель стека SP уменьшается на число байт слова (2 или 4), при

    извлечении — увеличивается. "Классические" (8086) инструкции пересылки не

    влияют на содержимое регистра флагов. Инструкции пересылки по результатам

    сравнения (CMPXCHG) модифицируют флаг ZF. Новые инструкции условной

    пересылки (CMOVxx) позволяют сократить число ветвлений в программе.

    Таблица. Инструкции пересылки данных

    Инструкция Описание

    BSWAP Перестановка байт из порядка младший-старший (L-H) в порядок старший-

    младший (H-L) (486+)

    CBW/CWDE Преобразование байта AL в слово АХ (расширение знака AL в АН:

    АН заполняется битом AL.7) или слова АХ в двойное

    слово ЕАХ

    CMOVA/CMOVNBE Пересылка, если выше "CF ИЛИ ZF)=0) (P6+)

    CMOVAE/CMOVNB Пересылка, если не ниже (CF=0) (P6+)

    CMOVB/CMOVNAE Пересылка, если ниже (CF=1) (P6+)

    CMOVBE/CMOVNA Пересылка, если не выше ((CF ИЛИ ZF)=1) (P6+)

    CMOVC Пересылка, если перенос (CF=1) (P6+)

    CMOVE/CMOVZ Пересылка, если равно (ZF=1) (P6+)

    CMOVG/CMOVNLE Пересылка, если больше (SF=(0F И ZF)) (P6+)

    CMOVGE/CMOVNL Пересылка, если больше или равно (SF=0F) (P6+)

    CMOVL/CMOVNGE Пересылка, если меньше (ZF0F) (P6+)

    CMOVLE/CMOVNG Пересылка, если меньше или равно (SF0F или ZF=0) (P6+)

    CMOVNC Пересылка, если нет переноса (CF=0) (P6+)

    CMOVNE/CMOVNZ Пересылка, если не равно (ZF=0) (P6+)

    CMOVNO Пересылка, если нет переполнения (0F=0) (P6+)

    CMOVNP/CMOVPO Пересылка, если нет паритета (нечетность) (P6+)

    CMOVNS Пересылка, если неотрицательно (SF=0) (P6+)

    CMOVO Пересылка, если переполнение (0F=1) (P6+)

    CMOVP/CMOVPE Пересылка, если паритет (четность) (Р6+)

    CMOVS Пересылка, если отрицательно (SF=1)(P6+)

    CMPXCHG r/in,r Обмен по результату сравнения байта, слова или двойного

    слова (486+)

    CMPXCHG8B m64 Обмен по результату сравнения учетверенного слова

    (5+)

    CWD/CDQ Преобразование слова АХ в двойное слово DX:AX (расширение

    знака, DX заполняется битом АХ. 15) или двойного

    слова ЕАХ в учетверенное EDX:EAX

    IN Ввод из порта ввода-вывода в AL/(E)AX

    MOV Пересылка(копирование)данных

    MOVSX Копирование байта/слова со знаковым расширением до слова/ двойного

    слова(386+)

    MOVZX Копирование байта/слова с нулевым расширением до слова/ двойного

    слова(386+)

    OUT Вывод в порт из AL/(E)AX

    POP Извлечение слова данных из стека в регистр или память, (E)SP

    инкрементируется

    POPA(POPAll) Извлечение данных из стека в регистры Dl, SI, ВР, ВХ, DX,

    CX, AX (286+)

    POPAD Извлечение данных из стека в регистры EDI, ESI, ЕВР, ЕВХ, EDX, ЕСХ,

    ЕАХ (386+)

    PUSH Помещение слова из регистра или памяти в стек после декремента (E)SP

    PUSHA (PUSH All) Помещение в стек регистров АХ, CX, DX, BX, SP (исходное

    значение), ВР, SI, Dl (286+)

    PUSHAD Помещение в стек регистров ЕАХ, ЕСХ, EDX, ЕВХ, ESP (исходное

    значение), ЕВР, ESI, EDI (386+)

    XCHG Обмен данными (взаимный) между регистрами или регистром и памятью

    Инструкции ввода-вывода позволяют пересылать как одиночный бант или

    слово между портом и регистром процессора (инструкции IN и OUT), так и блок

    байт (слов) между портом и группой смежных ячеек памяти (инструкции

    INSB/INSW и OUTSB/OUTSW с префиксом повтора, см. ниже). Непосредственная

    адресация порта в команде обеспечивает доступ только к первым 256 адресам

    портов, косвенная (через регистр DX) — ко всему пространству ввода-вывода

    (64 Кбайт). Разрядность операнда и адрес должны согласовываться с

    физическими возможностями и особенностями поведения адресуемого устройства.

    При работе с памятью такие нюансы во внимание принимать обычно не

    Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9


    Приглашения

    09.12.2013 - 16.12.2013

    Международный конкурс хореографического искусства в рамках Международного фестиваля искусств «РОЖДЕСТВЕНСКАЯ АНДОРРА»

    09.12.2013 - 16.12.2013

    Международный конкурс хорового искусства в АНДОРРЕ «РОЖДЕСТВЕНСКАЯ АНДОРРА»




    Copyright © 2012 г.
    При использовании материалов - ссылка на сайт обязательна.