Лабораторная работа: Работа и устройство процессоров
Инструкции SSE и SSE2
В феврале 1999 года Intel
представила общественности процессор Pentium III, содержащий обновление
технологии MMX, получившей название SSE (Streaming SIMD Extensions — потоковые
расширения SIMD). До этого момента инструкции SSE носили имя Katmai New
Instructions (KNI), так как первоначально они были включены в процессор Pentium
III с кодовым именем Katmai. Процессоры Celeron 533A и выше, созданные на
основе ядра Pentium III, тоже поддерживают инструкции SSE. Более ранние версии
процессора Pentium II, а также Celeron 533 и ниже (созданные на основе ядра
Pentium II) SSE не поддерживают. Инструкции
SSE содержат 70 новых команд для работы с графикой и звуком в дополнение к
существующим командам MMX. Фактически этот набор инструкций кроме названия KNI
имел еще и второе название — MMX-2. Инструкции SSE позволяют выполнять операции
с плавающей запятой, реализуемые в отдельном модуле процессора. В технологиях
MMX для этого использовалось стандартное устройство с плавающей запятой. Инструкции SSE2, содержащие в себе 144 дополнительные команды
SIMD, были представлены в ноябре 2000 года вместе с процессором Pentium 4. В
SSE2 были включены все инструкции предыдущих наборов MMX и SSE. Потоковые расширения SIMD (SSE) содержат целый ряд новых
команд для выполнения операций с плавающей запятой и целыми числами, а также
команды управления кэш-памятью. Новые
технологии SSE позволяют более эффективно работать с трехмерной графикой,
потоками аудио- и видеоданных (DVD-воспроизведение), а также приложениями
распознавания речи. В целом SSE обеспечивает следующие преимущества: более высокое разрешение/качество при просмотре и обработке
графических изображений;
улучшенное качество
воспроизведения звуковых и видеофайлов в формате MPEG2, а также одновременное
кодирование и декодирование формата MPEG2 в мультимедийных приложениях; уменьшение загрузки процессора и повышение точности/скорости
реагирования при выполнении программного обеспечения для распознавания речи. Инструкции SSE и SSE2 особенно эффективны при декодировании
файлов формата MPEG2, который является стандартом сжатия звуковых и
видеоданных, используемым в DVD-дисках. Следовательно, SSE-оснащенные
процессоры позволяют достичь максимальной скорости декодирования MPEG2 без
использования дополнительных аппаратных средств (например, платы декодера
MPEG2). Кроме того, процессоры, содержащие набор инструкций SSE, значительно
превосходят предыдущие версии процессоров при распознавании речи. Одним из основных преимуществ SSE по отношению к MMX является
поддержка операций SIMD с плавающей запятой, что очень важно при обработке
трехмерных графических изображений. Технология SIMD, как и MMX, позволяет
выполнять сразу несколько операций при получении процессором одной команды. В
частности, SSE поддерживает выполнение до четырех операций с плавающей запятой
за цикл; одна инструкция может одновременно обрабатывать четыре блока данных.
Для выполнения операций с плавающей запятой инструкции SSE могут использоваться
вместе с командами MMX без заметного снижения быстродействия. SSE также
поддерживает упреждающую выборку данных
(prefetching), которая представляет собой механизм предварительного считывания
данных из кэш-памяти. Обратите внимание, что наилучший
результат использования новых инструкций процессора обеспечивается только при
их поддержке на уровне используемых приложений. Сегодня большинство компаний,
занимающихся разработкой программного обеспечения, модифицировали приложения,
связанные с обработкой графики и звука, что позволило в более полной мере
использовать возможности SSE. Например, графическое приложение Adobe Photoshop
поддерживает инструкции SSE, что значительно повышает эффективность
использования SSE-оснащенных процессоров. Поддержка инструкций SSE встроена в
DirectX 6.1 и в самые последние видео- и аудиодрайверы, поставляемые с операционными
системами Windows 98 Second Edition, Windows Me, Windows NT 4.0 (с пакетом
обновления 5 или более поздним) и Windows 2000.Инструкции SSE являются
расширением технологий MMX, а SSE2 — расширением инструкций SSE. Таким образом,
процессоры, поддерживающие SSE2, поддерживают также инструкции SSE, а
процессоры, поддерживающие инструкции SSE, в свою очередь, поддерживают
оригинальные команды MMX. Это означает, что стандартные MMX-приложения могут
выполняться практически на любых системах.
3DNow и Enhanced 3DNow
Технология 3DNow
разработана компанией AMD в ответ на реализацию поддержки инструкций SSE в
процессорах Intel. Впервые (май 1998 года) 3DNow реализована в процессорах AMD
K6, а дальнейшее развитие — Enhanced 3DNow — эта технология получила в процессорах
Athlon и Duron. Аналогично SSE, технологии 3DNow и Enhanced 3DNow предназначены
для ускорения обработки трехмерной графики, мультимедиа и других интенсивных
вычислений.3DNow представляет собой набор из 21 инструкции SIMD, которые
оперируют массивом данных в виде единичного элемента. В Enhanced 3DNow к
существующим добавлены еще 24 новых инструкции. Технологии обработки данных
3DNow и Enhanced 3DNow хотя и подобны SSE, но несовместимы на уровне
инструкций, поэтому производителям программного обеспечения необходимо отдельно
реализовать поддержку этих технологий. Технология
3DNow, как и SSE, поддерживает операции SIMD с плавающей запятой, а также
позволяет выполнять до четырех операций с плавающей запятой за один цикл.
Инструкции 3DNow для операций с плавающей запятой могут использоваться вместе с
командами MMX без заметного снижения быстродействия. Поддерживается и
упреждающая выборка данных — механизм предварительного считывания данных из
кэшпамяти. Все технологии ускорения обработки
данных компаний Intel и AMD реализованы на уровне операционных систем Windows
9x и Windows NT/2000. Кроме этого, все программные интерфейсы DirectX (с версии
6) компании Microsoft и Open GL компании SGI оптимизированы для технологии
3DNow, а практически все современные видеодрайверы 3Dfx, ATI, Matrox и nVidia
поддерживают 3DNow и Enhanced 3DNow. Несмотря на то что технология 3DNow
поддерживается многими компьютерными играми и драйверами видеоадаптеров,
существует ряд профессиональных графических приложений, к числу которых относится
и Adobe Photoshop, не поддерживающих 3DNow.
Supplemental Streaming SIMD Extension 3 (SSSE3) — это обозначение, данное Intel’ом 4-му расширению системы команд. Предыдущее имело обозначение SSE3 и
Intel добавил ещё один символ 'S' вместо того, чтобы увеличить номер
расширения, возможно потому, что они посчитали SSSE3 простым дополнением к
SSE3. Часто, до того как стало использоваться официальное обозначение SSSE3,
эти новые команды назывались SSE4. Также их называли кодовыми именами Tejas New
Instructions (TNI) и Merom New Instructions (MNI) по названию процессоров, где
впервые Intel намеревалась поддержать эти новые команды. Появившись в Intel
Core Microarchitecture, SSSE3 доступно в сериях процессоров Xeon 5100 (Server и
Workstation версии), а также в процессорах Intel Core 2 (Notebook и Desktop
версии).
EM64T (англ. Extended Memory 64
Technology) — реализация 64-битных расширений AMD64 процессорной архитектуры
IA-32 (архитектуры x86-совместимых процессоров) фирмы Intel. Основное
улучшение, обеспечиваемое EM64T — 64-битная адресация оперативной памяти, что
позволяет снять присущее 32-битным процессорам ограничение в 4 гигабайта
адресуемой напрямую памяти
Динамическое
выполнение
Этот метод впервые
использован в микросхемах P6 (процессорах шестого поколения) и позволяет
процессору параллельно обрабатывать сразу несколько команд, что приводит к
уменьшению времени, необходимого для выполнения той или иной задачи. Это
технологическое новшество включает в себя следующие элементы.
-Предсказание
множественного перехода (ветвления). Предсказание потока выполнения программы
через несколько ветвлений.
-Анализ потока команд.
Назначение выполнения команд по мере готовности, независимо от их порядка в
оригинальной программе.
-Упреждающее выполнение.
Увеличение скорости выполнения за счет опережающего просмотра счетчика команд и
выполнения тех команд, к которым, вероятно, потребуется обратиться позже.
Предсказание перехода
Функция предсказания
перехода, ранее применявшаяся только в универсальных процессорах старших моделей,
позволяет процессору при высокоскоростном выполнении команд сохранять конвейер
заполненным. Специальный модуль выборки/декодирования, включенный в процессор,
использует высоко оптимизированный алгоритм предсказания перехода, позволяющий
предсказывать направление и результат команд, выполняемых через несколько
уровней ветвлений, обращений и возвратов. Этот модуль напоминает шахматиста,
разрабатывающего несколько различных стратегий перед началом шахматной партии,
предсказывая ответные действия противника на несколько ходов вперед. Благодаря
предсказанию результатов выполнения команды инструкции могут выполняться
практически без задержек.
Анализ потока данных
Функция анализа потока
команд используется для исследования потока данных, проходящих через процессор,
и выявления любых возможностей выполнения команды с изменением заданной ранее
последовательности. Специальный процессорный модуль отправки/выполнения
контролирует команды и позволяет выполнять их в таком порядке, который
оптимизирует использование модулей множественного суперскалярного выполнения.
Возможность изменять последовательность выполнения команд позволяет сохранить
занятость модулей выполнения даже в случае промаха кэш-памяти или обработки
каких-либо информационно-зависимых команд.
Упреждающее выполнение
Способность процессора
выполнять команды с помощью опережающего просмотра существующего счетчика
команд называется упреждающим выполнением. Модуль отправки/выполнения,
включенный в процессор, анализирует поток данных для выполнения всех команд, существующих
в буфере (накопителе) команд, и сохранения результатов их выполнения в буферных
регистрах. После этого модуль изъятия анализирует содержимое пула команд на
предмет наличия завершенных команд, не зависящих от данных, получаемых при
выполнении других команд, или команд, имеющих неразрешенные предсказания
перехода. Результаты выполнения обнаруженных завершенных команд передаются в
память модулем изъятия или соответствующей стандартной архитектурой Intel в том
порядке, в котором они были получены. Затем команды удаляются из буфера.В
сущности, динамическое выполнение устраняет зависимость от линейной
последовательности команд. Выполнение команд с изменением их последовательности
позволяет максимально загрузить модуль выполнения и уменьшить время ожидания,
необходимое для получения данных из памяти. Несмотря на то что порядок
предсказания и выполнения команд может быть изменен, их результаты передаются в
исходном порядке, для того чтобы не прерывать и не изменять течение программы.
Это позволяет процессорам P6 выполнять существующее программное обеспечение
архитектуры Intel точно так же, как это делали P5 (Pentium) или процессоры
более ранних версий, но на целый порядок быстрее!
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17 |