Команды 3dnow ( начиная с k6 2 )


Содержание

Команды 3dnow ( начиная с k6 2 )

Желатьено на русском. Что он вообще даёт, и нет ли каких нибудь программ, для компиляции паскалевского кода с использованием 3DNow! ?

В смысле можно проверить поддерживает ли процессор 3DNow!, и если да, то выполнять код под него, который вроде бы должен быть более быстрым.

Если бы была какая нибудь программа, которая бы могла переводить отдельные паскалевские функции в ассемблер с использованием 3DNow! . А?

Начиная с Дельфи 6 (если не ошибаюсь) 3DNow! команды можно использовать во встроенном ассамблере. Фрипаскаль их тоже понимает.

В интернете есть описание этих команд на русском языке, когда я интересовался всё нашёл, тебе тоже наверное не должно быть затруднительно поискать на Яндексе например.

Почитай Зубкова «Assembler для DOS, Windows, UNIX». Очень толковая книга. Там и про 3DNow!, и про SSE есть.


> cyborg © (27.04.06 08:33) [2]
>
> Начиная с Дельфи 6 (если не ошибаюсь) 3DNow! команды можно
> использовать во встроенном ассамблере. Фрипаскаль их тоже
> понимает.

Я и так знаю, что можно. А если и нельзя, то можно писать так :

db $0F,$6F,$00 /// movq mm0, [eax]

Но вопрос в том, откуда их взять.
У тебя есть программа, которая бы могла перевести нужную функцию написанную на паскале, в код с использованием 3DNow! ?


> Чапаев © (27.04.06 10:19) [3]
>
> Почитай Зубкова «Assembler для DOS, Windows, UNIX». Очень
> толковая книга. Там и про 3DNow!, и про SSE есть.

А где её скачать то можно?

[4] 3DNow! (28.04.06 01:34)
И так знаешь, а такие глупые вопросы задаёшь.


> А где её скачать то можно?

Знакомая отсюда вроде скачивала: http://foto.piter.com/book_about.phtml? >

Примеры реализации мат. функций с 3DNow есть во всеми ругаемом GLScene :)

Однако не очень понятно, зачем сейчас изучать именно 3DNow. SSE есть и у Intel»овских, и у новых AMD»шных процессоров (начиная с AthlonXP, вроде). 3DNow — только у AMD»шных.

По MMX/SSE неплохой сайт: http://www.tommesani.com/


> Чапаев © (28.04.06 10:24) [7]
>
>
> > А где её скачать то можно?
>
> Знакомая отсюда вроде скачивала: http://foto.piter.com/book_about.
> phtml? >

А-а-а. Так ты рекламируешь. А я думал помочь хочешь.


> cyborg © (28.04.06 08:45) [6]
>
> [4] 3DNow! (28.04.06 01:34)
> И так знаешь, а такие глупые вопросы задаёшь.

Да нет, просто это ты сам дурак. Но это ничего. Мало ли таких как ты на свете.

Всё-таки почитай сначала про SIMD-команды. Тогда поймешь, что так вот запросто перевести любой алгоритм на MMX/SSE/3DNow не получится.

Поэтому вопросы действительно глупые. Но это ничего. Я сам такие задавал пару лет назад :)

Хотя вроде читал где-то (на gamedev.ru?), что последние сишные компиляторы (главным образом Intel C++, надо полагать) умеют использовать SIMD, но чтобы они их правильно использовали, нужно многое указывать вручную. Т.е. опять-таки хорошо понимать, как эти SIMD работают. В той же степени и FreePascal умеет использовать MMX «почти без asm».

На tommesani есть утилита, которая, насколько я понял по описанию, позволяет коструировать asm-код неким визуальным образом. Не уверен, что в этом есть смысл — проще запомнить опкоды и написать вручную.

Что касается перевода в машинный код для D5 и более ранних, вроде
db $0F,$6F,$00 /// movq mm0, [eax]
то для этого есть эксперт (дополнение к IDE) MMXAsm wizard.


> А-а-а. Так ты рекламируешь. А я думал помочь хочешь.

Тыща пардонов. Это у меня спрашивали, «эту ли книжку скачивать», а я дал ссылку, не проверив. Вот правильная ссылка: http://www.soft32.ru/literature.shtml?topic=assembler&book=1


> А-а-а. Так ты рекламируешь. А я думал помочь хочешь.

Тыща пардонов. Это у меня спрашивали, «эту ли книжку скачивать», а я дал ссылку, не проверив. Вот правильная ссылка: http://www.soft32.ru/literature.shtml?topic=assembler&book=1

ЗЫ. А ещё меня попросили передать, что Гугль рулит.

[9] 3DNow! (29.04.06 01:32)
Тебя это взволновало? Хочешь об этом поговорить?

ru.knowledgr.com


3DNow! расширение к x86 набору команд, развитому Advanced Micro Devices (AMD). Это добавляет инструкции по единственной инструкции многократным данным (SIMD) к основе x86 набор команд, позволяя ему выполнить простую векторную обработку, которая улучшает исполнение многих графическо-интенсивных заявлений. Первым микропроцессором, который осуществит 3DNow, была AMD K6-2, которая была введена в 1998. Когда применение было соответствующим, это подняло скорость приблизительно к 2-4 разам.

Однако набор команд никогда не получал много популярности, и AMD объявила на августе 2010, что поддержка 3DNow будет пропущена в будущих процессорах AMD, за исключением двух инструкций (и инструкций).

История

3DNow был развит в то время, когда 3D графика становилась господствующей тенденцией в мультимедиа PC и играющем программном обеспечении. Показ в реальном времени 3D графики зависел в большой степени от единицы с плавающей запятой (FPU) центрального процессора хозяина, чтобы выполнить вычисления с плавающей запятой, задачу, в которой у процессора K6 AMD легко победил его конкурент, Intel Pentium II.

Как улучшение к набору команд MMX, 3DNow набор команд увеличил MMX SIMD, регистры, чтобы поддержать общие арифметические операции (добавляют/вычитают/умножают) на единственной точности (32-битные) данные с плавающей запятой. Программное обеспечение, написанное, чтобы использовать AMD 3DNow вместо более медленного x87 FPU, могло выполнить до 4x быстрее, в зависимости от соединения инструкции.

Версии

3DNow

Первое внедрение 3DNow технология содержит 21 новую инструкцию, которые поддерживают операции с плавающей запятой SIMD. 3DNow формат данных упакован, единственная точность, с плавающей запятой. 3DNow набор команд также включает операции для операций по целому числу SIMD, предварительного усилия данных, и быстрее MMX к переключению с плавающей запятой. Позже, Intel добавил бы подобный (но несовместимый) инструкции к Pentium III, известный как SSE (Текущий Расширения SIMD).

3DNow инструкции с плавающей запятой

  • Упакованное 32-битное целое число к преобразованию с плавающей запятой
  • Упакованный с плавающей запятой к 32-битному преобразованию целого числа
  • Упакованное сравнение с плавающей запятой, больший или равный
  • Упакованное сравнение с плавающей запятой, больший
  • Упакованное сравнение с плавающей запятой, равняйтесь
  • Упакованный с плавающей запятой накапливают
  • Упакованное дополнение с плавающей запятой

  • Упакованное вычитание с плавающей запятой
  • Упакованное обратное вычитание с плавающей запятой
  • Упакованный минимум с плавающей запятой
  • Упакованный максимум с плавающей запятой
  • Упакованное умножение с плавающей запятой
  • Упакованное взаимное приближение с плавающей запятой
  • Упакованное взаимное приближение квадратного корня с плавающей запятой
  • Упакованное взаимное, первое повторение с плавающей запятой ступает
  • Упакованный взаимный квадратный корень с плавающей запятой, первый итеративный шаг
  • Упакованный взаимный/взаимный квадратный корень с плавающей запятой, второй итеративный шаг

3DNow инструкции по целому числу


  • Упакованное 8-битное неподписанное целое число, составляющее в среднем
  • Упакованное 16-битное целое число умножается с округлением

3DNow инструкции исполнительного улучшения

  • Более быстрый вход/выход MMX или государства с плавающей запятой
  • Предварительно принесите, по крайней мере, 32-байтовую линию в тайник данных L1 (это — неосуждаемая инструкция)

,

3DNow расширения

Есть минимальные доказательства, что второй версии 3DNow когда-либо официально давали ее собственную торговую марку. Это привело к некоторому беспорядку в документации, которая относится к этому новому набору команд. Наиболее распространенные сроки Продлены 3DNow, Расширенный 3DNow и 3DNow +. Фраза, «Расширенная 3DNow», может быть найдена в нескольких местоположениях на веб-сайте AMD, но капитализация «Enhanced», кажется, или чисто грамматична или использоваться для акцента на процессоры, которые могут или могут не иметь этих расширений (самый известный из которых ссылается на эталонную страницу для K6-III-P, у которого нет этих расширений).

Это расширение к 3DNow набор команд было начато с процессоров Athlon первого поколения. Athlon добавил 5 новых 3DNow инструкции и 19 новых инструкций MMX. Позже, K6-2 + и K6-III + (оба предназначенные для рынка мобильной связи) включал 5, новые 3DNow инструкции, не учитывая 19 новых инструкций MMX. Новые 3DNow инструкции были добавлены, чтобы повысить DSP. Новые инструкции MMX были добавлены, чтобы повысить потоковые медиа.

3DNow или расширения MMX?

19 новых инструкций MMX — подмножество набора команд Intel SSE1. В AMD технические руководства AMD выделяет эти инструкции кроме 3DNow расширения. В литературе продукта клиента AMD, однако, эта сегрегация менее ясна, где выгода всех 24 новых инструкций зачислена на расширенный 3DNow технология. Это принудило программистов придумывать свое собственное имя для 19 новых инструкций MMX. Наиболее распространенное, кажется, Целое число SSE (ISSE). SSEMMX и MMX2 также найдены в видео документации фильтра от сектора общественного достояния. [Нужно также отметить, что ISSE мог также отослать к Интернету SSE, раннее название SSE.]

3DNow дополнительные инструкции DSP

  • Упакованный с плавающей запятой к преобразованию слова целого числа со знаком расширяют
  • Упакованное слово целого числа к преобразованию с плавающей запятой
  • Упакованное отрицание с плавающей запятой накапливает
  • Упакованный с плавающей запятой смешался положительно-отрицательный, накапливают
  • Упакованное двойное слово обмена

Инструкции по расширению MMX (Целое число SSE)

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

  • Слово извлечения в целое число регистрирует
  • Слово вставки от целого числа регистрирует
  • Двиньтесь маска байта к целому числу регистрируют
  • Предварительное усилие используя ссылку NTA
  • Предварительное усилие используя ссылку T0
  • Предварительное усилие используя ссылку T1
  • Предварительное усилие используя ссылку T2
  • Забор магазина

3DNow Профессионал

3DNow Профессионал — торговая марка, используемая, чтобы указать на процессоры, которые объединяются 3DNow технология с полным набором инструкций SSE (таким как SSE1, SSE2 или SSE3). Athlon хр был первым процессором, который будет нести 3DNow Профессиональная торговая марка и был первым продуктом в семье Athlon, который поддержит полный набор команд SSE1 (для общего количества: 21 оригинальный 3DNow инструкции; пять 3DNow дополнительные инструкции DSP; 19 дополнительных инструкций MMX; и 52 дополнительных инструкции SSE для полной совместимости SSE1).

3DNow и жеода GX/LX

GX Жеоды и Жеода LX добавили два новых 3DNow инструкции, которые в настоящее время отсутствуют во всех других процессорах.

3DNow Профессиональные инструкции, уникальные для Жеоды GX/LX


  • Взаимное приближение квадратного корня для пары 32-битных плаваний
  • Взаимное приближение для пары 32-битных плаваний

Преимущества и недостатки

Одно преимущество 3DNow состоит в том, что возможно добавить или умножить два числа, которые сохранены в том же самом регистре. С SSE каждое число может только быть объединено с числом в том же самом положении в другом регистре. Эта способность, известная как горизонтальная в терминологии Intel, была основным дополнением к набору команд SSE3.

Недостаток с 3DNow — то, что 3DNow инструкции и инструкции MMX разделяют тот же самый файл регистра, тогда как SSE добавляет 8 новых независимых регистров (-).

Поскольку регистры MMX/3DNow разделены стандартным x87 FPU, 3DNow, инструкции и x87 инструкции не могут быть выполнены одновременно. Однако, потому что это — aliased к x87 FPU, 3DNow, и государства регистра MMX могут быть спасены и восстановлены традиционным x87 и инструкциями. Эта договоренность позволила операционным системам поддерживать 3DNow без явных модификаций, тогда как регистры SSE потребовали, чтобы явная поддержка операционной системы должным образом сохранила и восстановила новые регистры XMM (через добавленное и инструкции.)

FX* инструкции — модернизация более старого x87, сохраняют и восстанавливают инструкции, потому что они могли спасти не только государства регистра SSE, но также и те государства регистра x87 (следовательно, который означал, что это могло спасти MMX и 3DNow регистры также).

На AMD ATHLON ХР и основанных на K8 ядрах (т.е. Athlon 64), программисты собрания отметили, что возможно объединиться 3DNow и инструкции SSE уменьшить давление регистра, но на практике трудно улучшить работу из-за выполнения инструкций на общих функциональных единицах.

Команды 3dnow ( начиная с k6 2 )

Набор команд 3DNow! — это разработка фирмы AMD, выпуском которой в свое время эта компания пыталась опередить Intel и обеспечить своим процессорам более широкое распространение в устройствах обработки мультимедийной информации.

Расширение 3DNow! функционирует совместно с MMX-расширением и использует данные в тех же регистрах процессора. Однако дополнительно поддерживаются некоторые новые форматы для данных. Эти форматы важны при обработке объемных моделей (3D-моделирование, редеринг и т.п.).

Помимо процессоров AMD систему 3DNow!-команд поддерживают и некоторые процессоры IBM, Cyrix и др. Команда CPUID позволяет определить наличие поддержки 3DNow! для любого из этих процессоров.

3DNow!

3DNow! — расширение MMX, предназначенное для AMD-процессоров. Введено в использование, начиная с AMD K6 3D. Созданием данного расширения занимались инженеры компании AMD. Цель разработки 3DNow! — получение технического превосходства над процессорами Intel по части обработки мультимедийных данных.

Расширение 3DNow! добавило 21 новую команду в работу процессора. Также, данной технологией предусмотрена возможность оперировать 32-битными вещественными типами в стандартных MMX-регистрах. Кроме того, были введены новые инструкции, оптимизирующие переключение в режим MMX/3DNow!, а также контролирующие взаимодействие с кэшем процессора.

Так, технология 3DNow! существенно дополнила возможности технологии MMX, при это минуя необходимость введения новых режимов работы процессора и регистров.

Процессора AMD, произведенные после августа 2010 года, обладают двух-функциональной поддержкой данной технологии.

Проверка поддержки

Перед тем как начать пользоваться расширением 3DNow!, необходимо убедиться в возможности поддержки данной технологии установленным центральным процессором. Для этого применяется инструкция CPUID.

Так выглядит общий порядок действий при проверке:

  1. Необходимо удостовериться, что процессор поддерживает инструкцию CPU > или =);
  2. PFCMPGT — сравнение вещественных чисел (>);
  3. PFCMPEQ — сравнение вещественных чисел (=);
  4. PFACC — накопление суммы вещественных чисел;
  5. PFADD — сложение вещественных чисел;
  6. PFSUB — вычитание вещественных чисел;
  7. PFSUBR — обратное вычитание вещественных чисел;
  8. PFMIN — нахождение минимума вещественных чисел;
  9. PFMAX — нахождение максимума вещественных чисел;
  10. PFMUL — умножение вещественных чисел;
  11. PFRCP — установление приближенного значения обратного (1/x) вещественных чисел;
  12. PFRSQRT — установление приближенного значения обратного от квадратного корня (1/sqrt(x)) вещественных чисел;
  13. PFRCPIT1 — первый шаг вычисления значения обратного (1/x) вещественных чисел;
  14. PFRSQIT1 — первый шаг вычисления значения обратного от квадратного корня (1/sqrt(x)) вещественных чисел;
  15. PFRCPIT2 — второй шаr вычисления значения обратного или обратного от квадратного корня вещественных чисел;
  16. PMULHRW — умножение 16-битных целых чисел с округлением
  17. FEMMS — быстрое переключение состояния FPU/MMX;
  18. PREFETCH/PREFETCHW — предвыборка строки кэша процессора из памяти.

Национальная библиотека им. Н. Э. Баумана
Bauman National Library

Персональные инструменты

AMD K6

Авторство
Д.Б. Малышева
Согласовано: 08.04.2020
AMD K6
Производство: С 1997 по 1998
Производители:
Частота CPU: 166 MHz — 300 MHz
Технология производства: 0.35 µm to — 0.25 µm
ISA: MMX
Микроархитектура x86
Число ядер: K6,Little Foot
Разъемы:

Содержание

История создания


Долгое время Advanced Micro Devices пыталась сделать более мощный, чем у Intel аналог процессора Pentium, но все было безуспешно, поэтому фирма AMD выпускала центральные процессоры 286, 386 и 486, которые были основаны на разработках Intel. Первым x86 процессором, который был независимым от Intel, стал К5.

После того, как компания AMD купила NexGen, был представлен процессор AMD K6(первоначальное название Nx686) Это.следующее поколение семейства AMD K86 ™ процессоров x86. Процессор шестого поколения AMD-K6 MMX был выпущен в середине 1997 года. Центральный процессор обеспечивает передовую, шестикомандную RISC86R суперскалярную производительность для ПК общего профиля, работающих с 16-разрядными и 32-разрядными кодами. Таким образом, AMD-K6 обеспечивает превосходную производительность при работе в операционных системах Microsoft Windows 95 и Windows NT, а также с установленной базой программного обеспечения х86. Кроме того, благодаря совместимости процессора AMD-K6 с разъемом Socket 7, изготовители и торговцы ПК могли, опираясь на экономичную инфраструктуру (материнские платы, наборы микросхем, источники питания и температурные конструктивные решения), быстро выходить на рынки с системами ПК, обладающими превосходным соотношением цены и производительности.

Сделанный по 5-слойной 0.35-мкм технологии, К6 был почти на 20 % меньше, чем Pentium Pro и при этом у него было на 3.3 млн транзисторов больше (8.8 против 5.5 млн). Многие из этих дополнительных транзисторов располагались в кэше первого уровня на 64 Кбайт. Это эквивалентно четырем Pentium Pro или двум Pentium ММХ и Pentium 2.

Архитектура AMD K6

Технические особенности и свойства процессора AMD K6 MMX

  • Производительность шестого поколения, соперничающая с Pentium Pro
  • Высокая производительность при работе с операционными системами Windows 95 и Windows NT
  • Передовая, шестикомандная RISC86 суперскалярная микроархитектура
  • Семь параллельных исполнительных блоков
  • Множественные сложные дешифраторы команд x86/RISC86
  • Передовое двухуровневое предсказание ветвлений
  • Спекулятивное (по предположению) исполнение команд
  • Полное исполнение команд с изменением последовательности
  • Переименование регистров и передача данных
  • Крупные 64-Кбайт L1 кэши, размещенные на кристалле
  • 32-Кбайт кэш инструкций плюс кэш предварительного декодирования
  • 32-Кбайт двухпортовый кэш данных с обратной записью
  • Протокол MESI для согласования кэшей
  • Высокопроизводительное IEEE 754-совместимое устройство для вычислений с плавающей точкой (FPU)
  • Высокопроизводительные, ставшие промышленным стандартом мультимедийные расширения (ММХ)
  • Полностью совместимый режим управления системой (SMM)
  • Совместимость с разъемом Socket 7, позволяющая изготовителям и торговцам ПК использовать преимущества недорогой инфраструктуры и системных конструкций
  • Поступает в продажу в керамическом корпусе с матрицей штырьковых выводов CPGA (совместим с Socket 7) с применением новаторской технологии flip-chip С4
  • Производится с применением современной 0,35 мкм технологии обработки с пятью слоями металлизации на заводе AMD Fab 25

Дешифраторы

Декодирование х86 инструкций начинается еще до наполнения размещенного на кристалле кэша инструкций. Логика предварительного декодирования определяет длину х86 инструкции на побитовой основе. Информация предварительного декодирования хранится вместе с х86 инструкциями в кэше инструкций для последующего использования дешифраторами. Дешифраторы преобразуют до двух х86 инструкций в RISC86 операции за такт. Эти команды подразделяются на три категории согласно трем типам декодирования:

  1. Короткие дешифраторы — декодируют наиболее часто используемые х86 инструкции;
  2. Длинные дешифраторы — декодируют часто и менее часто используемые команды;
  3. Векторные дешифраторы — декодируют редко встречающиеся, сложные х86 инструкции;

Блок управления командами


Централизованный планировщик, или буфер, управляется блоком управления командами (ICU). Блок ICU служит буфером и управляет одновременно до 24 RISC86 операциями. Размеры буфера, вмещающего 24 операции, являются оптимальными для эффективного использования шестиступенчатого RISC86 конвейера и семи параллельных исполнительных блоков процессора. Планировщик принимает от дешифраторов до четырех RISC86 операций одновременно. Блок ICU может одновременно выдавать на исполнительные блоки до шести RISC86 операций за такт.

Регистры

Управляя упомянутыми 24 RISC86 операциями, планировщик использует 46 физических регистров, содержащихся в микроархитектуре RISC86. Эти регистры находятся в общем файле регистров и объединены в группы: 24 общих регистра плюс 24 регистра переименования.

Логика ветвлений

Процессор AMD K6 использует динамическую логику ветвлений, чтобы свести к минимуму задержки, связанные с инструкциями ветвлений, распространенными в программном обеспечении х86. Совершенная динамическая логика ветвлений процессора AMD-K6 содержит таблицу истории ветвлений, кэш адресатов ветвлений данных и обратный адресный стек. В процессоре воплощена двухуровневая схема предсказания ветвлений, основанная на таблице истории ветвлений (состоящей из 8192 записей), в которой хранится информация о предсказаниях, используемая для предсказания условных ветвлений. Поскольку таблица истории ветвлений не хранит предсказаний целевых адресов, специальные адресные арифметические логические устройства (ALU) вычисляют целевые адреса по ходу дела, во время декодирования инструкции. Кэш адресатов ветвлений обеспечивает еще более точное предсказание ветвлений, помогая избежать потери одного такта при выборке кэша. Этот специальный кэш адресатов поставляет на дешифраторы первые 16 байт инструкций адресатов при предсказании ветвлений.

Используемая в процессоре AMD K6 конструкция кэша имеет секторную организацию. Каждый сектор состоит из 64 байтов, сконфигурированных как две 32-байтовые строки кэша, у которых общий тег, но раздельные пары битов MESI (Modified,Exclusive, Shared, Invalid), отслеживающие состояние каждой строки кэша.

Случаи непопадания в кэш

В том случае, если команда или строка кэша данных, необходимые для исполнения, не попадают в кэш L1 процессора AMD K6, процессор производит пакетное наполнение строки кэша из памяти. Чтобы сделать эту операцию максимально эффективной, процессор определяет, какое из четырех учетверенных слов в строке кэша содержит необходимые данные или команду. Искомое учетверенное слово первым возвращается в кэш L1, что позволяет процессору как можно скорее продолжить выполнение команды. Благодаря этой технологии варьирования очередности пакетов, задержки в исполнении после непопадания в кэш L1 сводятся к минимуму, что дает выигрыш в производительности.

Предварительная выборка

AMD K6 осуществляет предварительную выборку кэшей лишь для замены секторов. В результате, первой заполняется необходимая строка кэша, после чего осуществляется предварительная выборка второй строки кэша. С точки зрения внешней шины, заполнение двух строк кэша обычно предстает в виде двух 32-битных циклов чтения пакета, примыкающих другу к другу, или, если это возможно, в виде конвейерных циклов.

Биты предварительного декодирования

Декодирование х86 инструкций является особенно сложным, так как длина этих инструкций может варьироваться от 1 до 15 байтов. Логика предварительного декодирования поставляет биты предварительного декодирования, относящиеся к каждому биту инструкций. Биты предварительного декодирования, помимо всего прочего, указывают на число байтов, отделяющих начало следующей х86 инструкции. Эти биты хранятся в расширенном кэше инструкций рядом с каждым байтом х86 инструкции. Биты предварительного декодирования пересылаются, вместе с байтами инструкций, на дешифраторы, где они помогают декодировать параллельные х86 инструкции, расширяя тем самым пропускную способность декодирования.

Выборка и декодирование инструкций

Выборка инструкций

Процессор AMD K6 может выбирать из кэша инструкций или кэша адресатов ветвлений до 16 байтов на такт. Выбранная информация поступает в 16 байт буфер инструкций, непосредственно питающий дешифраторы. Выборка может осуществляться по единому потоку исполнения и задействовать до семи ветвлений, ожидающих своей очереди. Логика выборки инструкций может вызывать любые 16 смежных байтов информации в границах 32 битов. Причем, если данные 16 байтов инструкций выходят за границы строки кэша, никакой дополнительной потери во времени не происходит. Байты инструкций загружаются в буфер инструкций по мере их потребления дешифраторами.

Декодирование инструкций

Логика декодирования призвана декодировать множественные х86 инструкции в пределах одного такта. Логика декодирования принимает байты х86 инструкций и их биты предварительного декодирования из буфера инструкций, устанавливает местонахождение действительных границ инструкций и преобразует эти х86 инструкции в RISC86 операции. RISC86 операции представляют собой внутренние инструкции фиксированного формата и, в большинстве своем, исполняются в пределах одного такта. Сочетание RISC86 операций позволяет выполнять любую функцию набора команд х86. Hекоторые х86 инструкции декодируются в ноль RISC86 операций или в одну RISC86 операцию. Более сложные х86 инструкции декодируются в несколько RISC86 операций. Процессор AMD K6 использует комбинацию дешифраторов для преобразования х86 инструкций в RISC86 операции. Аппаратное обеспечение включает четыре дешифратора:

  • Два параллельных коротких дешифратора — преобразуют наиболее часто используемые х86 инструкции в ноль, одну или две RISC86 операции. Причем они способны декодировать до двух х86 инструкций за такт.
  • Длинный дешифратор — работает с часто используемыми х86 инструкциями, которые могут быть представлены в виде четырех или менее RISC86 операций.
  • Векторный дешифратор — осуществляет все прочие преобразования в соответствии с последовательностями RISC86 операций, выбранными из памяти ROM, размещенной на кристалле.

Hа аппаратном уровне, все часто встречающиеся и некоторые из редко встречающихся инструкций, в том числе с плавающей точкой, декодируются короткими дешифраторами. При подобном декодировании образуется RISC86 операция с плавающей точкой и, факультативно, связанная с ней операция с плавающей точкой или операция по сохранению. Декодирование инструкций с плавающей точкой или ESC (Escape) допустимо лишь в первом коротком дешифраторе, тогда как инструкции, отличные от ESC (за исключением инструкций ММХ), могут быть одновременно декодированы вторым коротким дешифратором. Все инструкции ММХ декодируются, на аппаратном уровне, короткими дешифраторами. При подобном ММХ декодировании образуется RISC86 ММХ операция и, факультативно, связанная с ней операция по загрузке ММХ или сохранению. Декодирование инструкций ММХ допустимо лишь в первом коротком дешифраторе, однако инструкции, отличные от ММХ и ESC, могут одновременно декодироваться вторым коротким дешифратором.

Централизованный планировщик

Исполнительные блоки

Процессор AMD K6 содержит семь независимых исполнительных блоков, каждый из которых способен работать с RISC86 операциями:

  • Блок загрузки — осуществляет чтение памяти данных с помощью двухступенчатого конвейера; данные из этого блока поступают через два такта.
  • Блок хранения — осуществляет запись данных и вычисления регистров с помощью двухступенчатого конвейера;
  • Память данных и записи регистров поступают из блока хранения через один такт.
  • Целочисленный Х блок — выполняет все операции ALU, умножает, делит, передвигает и вращает. Блок мультимедиа — выполняет все инструкции ММХ.
  • Целочисленный Y блок — выполняет основные условные и двусловные ALU операции.
  • Блок вычислений с плавающей точкой — выполняет все команды с плавающей точкой.
  • Блок ветвлений — разрешает условные ветвления после того, как они получили соответствующую оценку.

Логика предсказания ветвлений

Совершенная логика ветвлений, используемая в процессоре AMD K6, призвана свести к минимуму или замаскировать последствия изменений в потоке программ. Ветвления в х86 коде бывают двух категорий: безусловные ветвления (всегда изменяют течение программы) и условные ветвления (могут изменять, а могут и не изменять течение программы). В том случае, если условное ветвление не состоялось, процессор продолжает декодировать и исполнять последующие команды в памяти. В типичных приложениях до 10 процентов приходится на безусловные ветвления и еще 10-20 процентов на условные ветвления. Логика ветвлений, используемая в процессоре AMD K6, призвана учитывать подобное поведение программ и его влияние на выполнение команд (например, заминки, связанные с задержанной выборкой команд и дренажем конвейера).

Таблица истории ветвлений

Процессор AMD K6 работает с безусловными ветвлениями без каких-либо потерь во времени, перенаправляя выборку инструкций на целевой адрес безусловного ветвления. Однако для условных ветвлений требуется использование встроенного в процессор AMD K6 механизма динамического предсказания ветвлений. Двухуровневый адаптивный алгоритм истории нашел свое воплощение в таблице истории ветвлений (8192 записей), которая хранит информацию об исполненных ветвлениях, предсказывает индивидуальные ветвления, а также предсказывает поведение групп ветвлений. Чтобы вместить эту крупную таблицу истории ветвлений, процессор AMD K6 не хранит предсказанные целевые адреса: вместо этого, целевые адреса ветвлений вычисляются по ходу дела, с использованием блоков ALU на этапе декодирования.

Кэш адресатов ветвлений

Чтобы избежать потерь во времени, связанных с однотактовой выборкой, при предсказании ветвления, встроенный кэш адресатов ветвлений поставляет первые 16 байтов инструкций непосредственно на буфер инструкций. Кэш адресатов ветвлений организован как 16 записей из 16 байтов. В общей сложности, логика предсказания ветвлений обеспечивает предсказание ветвлений с точностью, превышающей 95 процентов.


Обратный адресный стек

Обратный адресный стек призван оптимизировать пары CALL и RET. В интересах экономии пространства, программное обеспечение обычно компилируется с помощью подпрограмм, которые часто вызываются из различных участков в программе. Вход в подпрограмму осуществляется посредством выполнения команды CALL. В том случае, если процессор сталкивается с командой RET, логика ветвлений выдает адрес из стека и начинает выборку из указанного местонахождения. Во избежание задержек, связанных с запросами главной памяти во время операций CALL и RET, обратный адресный стек складирует адреса, помещенные в стек.

Блок исполнения ветвлений

Этот блок, обеспечивающий эффективное выполнение команд по предположению, позволяет процессору выполнять команды за пределами условных ветвлений прежде, чем тот убедится в правильности предсказанного ветвления. Процессор AMD K6 не обновляет на постоянной основе х86 регистры или местонахождения в памяти, пока не разрешены все инструкции условных ветвлений, исполненные по предположению. Процессор AMD K6 может поддерживать до семи ожидающих своей очереди ветвлений.

Модели процессора AMD K6

Первые модели были изготовлены с использованием 0,35 мкм процесса (K6 Model 6), а затем AMD перешла на 0.25 мкм на более высоких скоростях и мобильных версиях; это ядро было K6 Model 7 известный как «K6 «Little Foot» (Model 7)».

На то и AMD, чтобы Intel не дремала

Как утверждают в компании Jon Peddle Associates, рынок трехмерных (3D) приложений развивается наиболее быстрыми темпами в компьютерной отрасли. Специалисты компании прогнозируют его удвоение в ближайшие два года. В общем-то, это не удивительно.

ПК с мощными графическими ускорителями успешно вытесняют с рынка 3D-приложений «классические» рабочие станции с RISC-процессорами даже такого признанного гранда, как Silicon Graphics. Последняя, как известно, объявила о планах выпуска Visual PC — рабочей станции на базе Intel x86 (вероятно, в варианте Katmai).

Мультимедиа-расширение системы команд 3DNow!

Первые серьезные шаги в этом направлении сделала именно Intel, когда начала поставки микропроцессоров с расширением системы команд MMX, а затем предложила поддержку порта AGP для графических ускорителей. Однако эти нововведения еще не закрыли все потенциально узкие места архитектуры персональных компьютеров при работе с 3D-приложениями, и Intel планирует выпустить в 1999 году микропроцессоры с расширенной системой команд — Katmai. Новые команды будут ориентированы в первую очередь на поддержку 3D-приложений и работать с операндами с плавающей запятой одинарной точности.

Ответ на эту инициативу Intel от давнего конкурента — AMD прозвучал как гром среди ясного неба: ее просто-напросто опередили!

AMD не только анонсировала, но и начала выпуск х86-совместимых процессоров К6-2, cодержащих расширение системы команд х86 — 3Dnow!, способствующее кардинальному увеличению производительности 3D-приложений. Операндами этих команд выступают 32-разрядные числа с плавающей запятой. При работе с такими числами AMD K6-2 достигает пиковой производительности 1,4 GFLOPS для новейших 350-мегагерцевых процессоров (при увеличении тактовой частоты эта характеристика растет пропорционально). Это — уровень самых быстрых сегодня процессоров Alpha 21264. Воистину, на то и AMD на рынке, чтобы Intel не дремала.

В AMD исходят из того, что 3D-акселераторы развиваются сегодня быстрее, чем микропроцессоры, и поскольку увеличивается разрыв между их производительностью, процессоры не успевают «насытить» данными быстродействующие акселераторы. Мне это утверждение не представляется столь уж очевидным, хотя, если ограничиться х86-совместимыми процессорами, то прогресс их производительности в области данных с плавающей запятой не так впечатляет, как для целочисленных данных.

Вот как AMD представляет «графический конвейер» (см. рис. 1). На первой стадии происходит расчет физической модели реального мира и его объектов, выполняемый в процессоре. На второй стадии процессор осуществляет преобразование физико-математического представления модели в 3D-представление. В процессе этого преобразования интенсивно используются операции с плавающей запятой.

Для представления 32-разрядных чисел с плавающей запятой в командах 3DNow! используется стандарт IEEE-754, в котором мантисса имеет 23 разряда. Этот стандарт требует поддержки четырех режимов округления, в то время как 3DNow! поддерживает только один — или округление «до ближайшего», или округление «до нуля» (усечение, truncation в английском оригинале). В K6-2 поддерживается первый из этих режимов. В командах преобразования из целых в числа с плавающей запятой и обратно всегда используется режим усечения.

Максимальное представимое число в данном случае равно 2**127. При использовании 3DNow! все команды, выполнение которых приводит к переполнению, должны давать это самое «ольшое положительное число ли»о плюс «есконечность. То же справедливо для самого «ольшого по модулю отрицательного числа. Вы»ор варианта определяется реализацией 3DNow!; в K6-2 арифметическое переполнение генерирует максимально допустимое число с верным знаком.

Наименьшее по модулю представимое число равно 2-126. Все числа, меньшие его по модулю, представляются нулем. Операнды NaN («не число»), Inf и -Inf (плюс-минус бесконечность соответственно) в 3DNow! не поддерживаются.

Подо»но ММХ, команды 3DNow! не генерируют численных прерываний и не устанавливают никаких флагов состояния; вся проверка исходных операндов и результатов возложена на программиста.

На третьей стадии, которую AMD назвала «настройкой» (setup), процессор запускает процедуру создания «перспективы», требуемой для трехмерного изображения, а графический акселератор эту процедуру завершает. На последней, четвертой стадии, происходит рендеринг — когда графический акселератор применяет текстуры для «сгенерированного» объекта, для каждого пиксела проводит расчеты цвета, положения и т. д.

Следует различать 3DNow! как расширение архитектуры х86 и конкретную его реализацию в AMD K6-2. Рассмотрим сначала архитектурные аспекты.

Расширение 3DNow! содержит 21 команду. Эти команды включают в себя операцию предварительной выборки в кэш первого уровня; операцию переключения режима работы — между x87-командами и ММХ/3DNow!; 15 команд с плавающей запятой; две команды преобразования из целых чисел в числа с плавающей запятой и обратно; две специальные команды для работы с целочисленными операндами.

Конечно же, все эти команды являются не обычными, реализованными в большинстве микропроцессоров, а специализированными. Так, почти все команды с плавающей запятой являются векторными. Таким образом, архитектура SIMD, для которой типичными являются операции с векторами, из суперкомпьютеров перекочевала в графические ускорители, а затем добралась и до массовых x86-совместимых процессоров. Впрочем, впервые это произошло не в 3DNow!, а в ММХ, хотя в последней и используются целочисленные векторы. Формально команды 3DNow!, как и команды ММХ, имеют традиционный для x86 двухадресный формат «регистр-регистр» или «регистр-память».

Принципиально важным является то, что команды 3DNow! используют те же восемь регистров, что и ММХ. Эти регистры, как известно, отображаются в регистры с плавающей запятой, то есть являются их «алиасами». Таким образом, 3DNow! оказывается естественным расширением ММХ, и переключение между ними не требует дополнительными накладными расходами. Такая реализация делает расширение 3DNow! «безопасным»: при его внедрении не надо менять операционную систему — эти команды могут быть упрятаны в драйверах устройств, библиотеках ММХ и 3DNow! или в файлах DLL.

Команды 3DNow! работают с «упакованными» данными. Так, двухмерный вектор из двух чисел с плавающей запятой располагается либо в ММХ-регистре, либо в квадрослове оперативной памяти в соответствии с рис. 2, где D0 и D1 — 32-разрядные числа с плавающей запятой. Аналогичным образом в других командах 3DNow! упаковываются целочисленные операнды: 8-, 16- и 32-разрядные целые.

Для иллюстрации работы векторных команд рассмотрим команду сложения PFADD в регистровой форме:

PFADD mmr1, mmr2

После ее выполнения регистр mmr1 будет содержать следующий двухмерный вектор — пару чисел с плавающей запятой:

mmr1[31:0] = mmr1[31:0] + mmr2[31:0]

mmr1[63:32] = mmr1[63:32] + mmr2[63:32]

Кроме векторной команды сложения, в 3DNow! имеются аналогичные команды вычитания, умножения, сравнения, определения наибольшего и наименьшего из операндов и другие, также работающие с двухмерными векторами.

Cледует отметить также специальную команду, усредняющую восемь 8-разрядных целых без знака, предназначенную для усреднения пикселов при декодировании MPEG-2.

Что касается предварительной выборки, то она дает возможность выбрать из памяти строку в кэш первого уровня (32 байт для К6-2), не прерывая нормальную работу процессора. Это позволяет эффективнее организовать работу приложений, активно использующих оперативную память, что, в частности, типично для мультимедийных приложений с большими объемами данных. Подобные команды имеются и в других процессорах, например в Mips R10000.

В процессоре AMD K6-2, как и К6, два исполнительных устройства — Х и Y, при этом за один такт в каждое устройство может выдаваться одна команда; ею может быть и команда 3DNow!, причем все такие команды полностью конвейеризированы и выполняются за три такта.

Собственно исполнительные блоки нижнего уровня, например два умножителя, используемые командами 3DNow!, могут разделяться устройствами Х и Y (рис. 3). Это не мешает одновременному запуску в исполнительные устройства любой пары команд. Если между этими командами возникает конкуренция, например между двумя одновременно запускаемыми командами умножения, то одна из них задерживается на один такт в первой стадии выполнения.

Чтобы не было и этой задержки, нужно избегать одновременного запуска двух команд одной категории. Ко второй категории относятся команды умножения и шаги итераций Ньютона — Рафсона для расчета обратных величин и обратных корней, а к первой — все остальные.

Таким образом, в К6-2 могут одновременно выполняться две команды 3DNow!, каждая из которых может за один такт выдавать один вектор, то есть два результата с плавающей запятой за такт. Это дает четыре результата с плавающей запятой за такт.

По имеющимся данным, в будущем процессоре Intel Katmai также планируется поддержка новых команд, работающих с 32-разрядными числами с плавающей запятой и ориентированных на приложения трехмерной графики. Соответствующий конвейер будет выдавать четыре результата с плавающей запятой за такт, то есть будет иметь ту же пиковую производительность, что и 3DNow!. Однако неизвестно, будет ли такой конвейер один. В отличие от 3DNow!, команды Katmai работают с новыми регистрами и могут поэтому выполняться параллельно с командами x87. Интересно, что компания Hitachi недавно создала специальный микропроцессор SH-4 для графических ускорителей, в котором за один такт выполняется уже семь операций с плавающей запятой.

Безусловно, 3DNow! выглядит привлекательно. Хотя основной областью приложений 3DNow! считаются игры, данная технология ускоряет любые 3D-приложения и может использоваться при работе с моделями VRML, презентационной графикой, трехмерным звуком, при распознавании речи, при декодировании MPEG-2, в системах САПР и т. д.

Хотя большинство наиболее сложных научно-технических приложений требуют чисел с плавающей запятой удвоенной точности, в некоторых приложениях можно обойтись и 32-разрядными числами. Насколько известно автору, это справедливо, например, для некоторых геофизических задач разведки месторождений.

Микропроцессоры от AMD, более дешевые, нежели продукция Intel, в России привлекают, естественно, особое внимание. Прямое кодирование с использованием команд 3DNow! приведет, однако, к несовместимости с процессорами Intel. Стоит ли овчинка выделки — решать должны разработчики приложений.

Полагаю, что AMD не побоялась пойти на такую несовместимость в первую очередь потому, что надеется «спрятать» все команды 3DNow! за графическими API-интерфейсами. Как в Microsoft DirectX 6.0, так и в SGI Open GL 1.2 SDK обещана поддержка 3DNow!.

Вопрос в том, созрел ли плод. Пора ли всем браться за трехмерные приложения уже сегодня или стоит подождать Katmai? Плод (3DNow!) вкусен и дешев, но на грядках х86 уже созревают и другие экзотические фрукты, и за Katmai будет AMD K7 с новыми графическими возможностями. Гурманы — вперед! u

Михаил Кузьминский — старший научный сотрудник Центра компьютерного обеспечения Института химических исследований РАН. С ним можно связаться по телефону (095) 135-6388.

Поделитесь материалом с коллегами и друзьями

3DNow!

3DNow! — дополнительное расширение MMX для процессоров AMD, начиная с AMD K6 3D. Причиной создания 3DNow! послужило стремление завоевать превосходство над процессорами производства компании Intel в области обработки мультимедийных данных.

Технология 3DNow! ввела 21 новую команду процессора и возможность оперировать 32-битными вещественными типами в стандартных MMX-регистрах. Также были добавлены специальные инструкции, оптимизирующие переключение в режим MMX/3DNow! (femms, которая заменяла стандартную инструкцию emms) и работу с кэшем процессора. Таким образом технология 3DNow! расширяла возможности технологии MMX, не требуя введения новых режимов работы процессора и новых регистров.

Начиная с микроархитектуры Bulldozer расширение не поддерживается (за исключением команды prefetch). [1]

Проверка поддержки 3DNow! процессором

Перед началом работы с расширением 3DNow! следует убедиться, что ЦП их поддерживает. Для этого используется инструкция CPUID. Общий порядок действий при проверке выглядит следующим образом:

  • PAVGUSB — вычисление среднего 8-битовых целых значений
  • PI2FD — перевод 32-битных целых в вещественные числа
  • PF2 > Процессоры, поддерживающие 3DNow!
  • начиная с AMD K6-2 и до Phenom X6 включительно; из современных процессоров AMD инструкции 3DNow! не поддерживают процессоры с архитектурой Bulldozer, AMD Fusion и Zen.
  • National SemiconductorGeode GX2, AMD Geode GX/LX/NX
  • VIA C3/CoreFusion/Eden
  • > См. также
  • Инструкция CPU > Примечания
  1. ↑[1] page 207: «19 AMD Bulldozer, Piledriver, Steamroller and Excavator pipeline: The 3DNow instructions are no longer supported, except for the prefetch instructions.»

Ссылки

3D (3-D) (от англ. 3-dimensional) — англицизм. Может означать:

Что-либо, имеющее три измерения, см. размерность пространства;

Объёмный звук («3D-звук»);

3D-принтер.Также термин «3D» применяется к технологиям, использующим эффект стереоскопии:

The 3DO CompanyВ компьютерной индустрии:

3DNow! — дополнительное расширение MMX для процессоров AMD.

3DMark — серия компьютерных бенчмарков.

Autodesk 3ds Max, ранее «3D Studio MAX» — программа для редактирования трёхмерной графики.В медицине:

3D-диагностика — компьютерная томографияДругое:

3D/Биэлы — короткопериодическая комета, открытая в 1826 году.

3D-стекло — неофициальное обозначение технологии изготовления экрана смартфона, при которой края наружного слоя стекла плавно изогнуты, частично заходя на корпус. Используется для придания экрану оригинального внешнего вида и создания оптической иллюзии объемности изображения при взгляде под углом.

Advanced Micro Devices, Inc. (AMD, дословный перевод с англ. — «передовые микроустройства») — производитель интегральной микросхемной электроники. Один из крупнейших производителей центральных процессоров, графических процессоров и адаптеров (после приобретения ATI Technologies в 2006 году), материнских плат и чипсетов для них.

Компания с 2009 года не имеет собственного производства и размещает заказы на мощностях других компаний. В роли постоянного партнёра-производственного подрядчика для производства своих чипов AMD использует компании GlobalFoundries и TSMC. Доля AMD в уставном капитале GlobalFoundries по итогам четвёртого квартала 2011 года была равна 8,8 %.

Стратегическими партнёрами AMD на рынке персональных компьютеров являются такие компании как: HP Inc., Dell, Acer, Fujitsu, Fujitsu Technology Solutions и IBM. В сфере сетевых продуктов: Bay Networks, Cabletron Systems, Cisco. На рынке телекоммуникационных систем: Nokia, AT&T, Ericsson, NEC, Siemens, Sony. Главные конкуренты AMD: Intel (производство процессоров и чипсетов; при этом компании имеют не только разногласия, но и совместные проекты) и Nvidia (производство графических процессоров).

Athlon 64 — первый 64-битный процессор для домашних пользователей и мобильного применения компании AMD, который был представлен 23 сентября 2003 года. Процессор построен на архитектуре AMD64 и относится к восьмому поколению (K8).

О начале разработки архитектуры K8 впервые было заявлено в 1999 году. Процессоры, основанные на данном ядре, должны были стать первыми 64-битными процессорами AMD, полностью совместимыми со стандартом x86.

Процессор существует в 3 вариантах: Athlon 64, Athlon 64 FX и двухъядерный Athlon 64 X2. Athlon 64 FX позиционируется как продукт для компьютерных энтузиастов, всегда оставаясь на один шаг быстрее Athlon 64. Несмотря на то, что их частоты обычно выше, все процессоры Athlon 64 FX имеют одноядерный дизайн, за исключением моделей Athlon 64 FX-60 и Athlon FX-62. Они были доступны для Socket 939 и Socket AM2. Этот релиз аналогичен релизу Athlon 64 FX-53, который в начале был доступен только для высокопроизводительной платформы Socket 940, а версия для Socket 939 была представлена позже. Все процессоры Athlon 64 FX имеют разблокированый множитель для облегчения разгона процессора, в отличие от Athlon 64, у которых может быть установлен только множитель меньший или равный заданному на заводе. Так как все данные процессоры построенные на архитектуре AMD64, они способны работать с 32-битным x86, 16-битным и AMD64 кодом.

Оригинальное ядро Athlon 64 имеет кодовое имя «Clawhammer», несмотря на то, что первый Athlon 64 FX базировался на ядре первого Opteron под кодовым именем «Sledgehammer». Athlon 64 имел несколько ревизий ядра, их можно посмотреть в списке.

Athlon 64 имеет встроенную медную пластину — Integrated Heat Spreader (IHS) которая предотвращает повреждение ядра при монтаже и демонтаже системы охлаждения (распространённая проблема процессоров с открытым ядром, таких как Athlon XP).

В 2006 году AMD объявила о прекращении выпуска всех процессоров на Socket 939, всех одноядерных socket AM2 процессоров и всех 2×1 MB X2-процессоров (за исключением FX-62).

Athlon 64 FX — x86-совместимый процессор, разработанный компанией AMD и поддерживающий 64-битные расширения AMD64.

Является адаптированным вариантом процессора Opteron, ориентированного на серверы.

Athlon 64 X2 (произносится атло́н 64 икс 2) компании AMD является первым двухъядерным процессором для настольных компьютеров.

Этот процессор содержит два ядра Athlon 64, выполненных на одном кристалле. Ядра имеют в своём распоряжении общий двухканальный контроллер памяти / северный мост и дополнительную логику управления. Первоначальные версии основаны на Athlon 64 степпинга E и, в зависимости от модели, имеют 512 или 1024 КБ кэша второго уровня на каждое ядро. Athlon 64 X2 поддерживает набор инструкций SSE3 (которые ранее поддерживались только процессорами компании Intel), что позволило запускать с максимальной производительностью код, оптимизированный для процессоров Intel. Эти улучшения не уникальны для Athlon 64 X2 и также имеются в релизах процессоров Athlon 64, построенных на ядрах Venice, San Diego и Newark.

AMD официально начала поставки Athlon 64 X2 на выставке Computex 1 июня 2005 года.

Микропроцессор архитектуры IA-32 (x86-32) производства AMD. Развитие процессора AMD K6. Работал на частотах от 200 до 550 МГц. Также существовала версия 570 МГц. Впервые был представлен корпорацией AMD 28 мая 1998 года. Основным отличием от K6 было наличие нового набора SIMD-инструкций для вычислений с плавающей точкой 3DNow!™.

K6-III — микропроцессор архитектуры IA-32 (x86-32) производства AMD. Представляет собой развитие процессора AMD K6-2. Впервые представлен корпорацией AMD в феврале 1999 года. Позиционировался как прямой соперник процессора Pentium III при меньшей стоимости.

Является одним из самых производительных процессоров для Socket 7 / Super Socket 7 систем. Интегрированный полноскоростной, работающий на частоте ядра кэш второго уровня L2 позволял обойти ограничение чипсета на объём кэшируемой памяти (64Mб для i430TX). Единственный чипсет, который не кэшировал память в обход, так и остался «на бумаге» (ALI Aladdin 7 фирмы Acer Laboratories Incorporated).

K6-III+Аналог K6-III с технологией энергосбережения PowerNow! и более высокой частотой и расширенным набором инструкций. Изначально предназначался для ноутбуков. Устанавливался и в настольные системы

с процессорным разъёмом Super Socket 7. Применялся для

апгрейда настольных систем с процессорным разъёмом Socket 7

(Только на материнских платах которые подают на процессор два напряжения питания, первое для блоков ввода/вывода процессора и второе для ядра процессора. Не все изготовители обеспечивали двойное питание на первых моделях своих материнских плат с разъемом Socket 7).

K6-2+Аналог К6-III+ с уменьшенным до 128 Кбайт кэшем второго уровня.

K6-III+, K6-2+ являются наиболее производительными процессорами совместимыми с Socket 7.

Opteron (кодовое название Sledgehammer или K8) — первый микропроцессор фирмы AMD, основанный на 64-битной технологии AMD64 (также называемой x86-64). AMD создала этот процессор в основном для применения на рынке серверов, поэтому существуют варианты Opteron для использования в системах с 1-8 процессорами.

В июне 2004 года в Top500 суперкомпьютеров десятое место занял Dawning 4000A — китайский суперкомпьютер, построенный на процессорах Opteron. В ноябре 2005 он опустился на 42 место, в связи с появлением более производительных конкурентов. Тогда в ноябрьском Top500 10% суперкомпьютеров были построены на базе процессоров AMD64 Opteron. Для сравнения, на базе процессоров Intel EM64T Xeon были построены 16,2% суперкомпьютеров.

AMD Phenom II — семейство многоядерных процессоров фирмы AMD, основанных на обновленной архитектуре K10. Существуют процессоры с количеством ядер от двух до шести.

Процессоры Phenom II X4 входят в состав платформы AMD Dragon, с чипсетом 700-й серии и графической картой серии ATI Radeon HD 4800. Шестиядерные процессоры, основанные на чипах Thuban, входят в состав платформы AMD Leo.

SIMD (англ. single instruction, multiple data — одиночный поток команд, множественный поток данных, ОКМД) — принцип компьютерных вычислений, позволяющий обеспечить параллелизм на уровне данных. Один из классов вычислительных систем в классификации Флинна.

SIMD-компьютеры состоят из одного командного процессора (управляющего модуля), называемого контроллером, и нескольких модулей обработки данных, называемых процессорными элементами. Управляющий модуль принимает, анализирует и выполняет команды. Если в команде встречаются данные, контроллер рассылает на все процессорные элементы команду, и эта команда выполняется на нескольких или на всех процессорных элементах. Каждый процессорный элемент имеет свою собственную память для хранения данных. Одним из преимуществ данной архитектуры считается то, что в этом случае более эффективно реализована логика вычислений. До половины логических инструкций обычного процессора связано с управлением выполнением машинных команд, а остальная их часть относится к работе с внутренней памятью процессора и выполнению арифметических операций. В SIMD-компьютере управление выполняется контроллером, а «арифметика» отдана процессорным элементам.

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

SSE (англ. Streaming SIMD Extensions, потоковое SIMD-расширение процессора) — это SIMD (англ. Single Instruction, Multiple Data, Одна инструкция — множество данных) набор инструкций, разработанный Intel и впервые представленный в процессорах серии Pentium III как ответ на аналогичный набор инструкций 3DNow! от AMD, который был представлен годом раньше. Первоначально названием этих инструкций было KNI — Katmai New Instructions (Katmai — название первой версии ядра процессора Pentium III).

Технология SSE позволяла преодолеть две основные проблемы MMX: при использовании MMX невозможно было одновременно использовать инструкции сопроцессора, так как его регистры были общими с регистрами MMX, и возможность MMX работать только с целыми числами.

SSE включает в архитектуру процессора восемь 128-битных регистров и набор инструкций, работающих со скалярными и упакованными типами данных.

Преимущество в производительности достигается в том случае, когда необходимо произвести одну и ту же последовательность действий над разными данными. В таком случае блоком SSE осуществляется распараллеливание вычислительного процесса между данными.

Sempron, выпущенный в 2004 году компанией AMD — низкобюджетный настольный ЦП, пришедший на замену процессору Duron и являющийся прямым конкурентом процессорам Celeron компании Intel.

При разработке его названия AMD использовало латинское слово semper, обозначающее всегда/каждый день, намекая, что основной нишей данного процессора являются простые приложения для повседневной работы.

x86 (англ. Intel 80×86) — архитектура процессора и одноимённый набор команд, впервые реализованная в процессорах компании Intel.

Название образовано от двух цифр, которыми заканчивались названия процессоров Intel ранних моделей — 8086, 80186, 80286 (i286), 80386 (i386), 80486 (i486). За время своего существования набор команд постоянно расширялся, сохраняя совместимость с предыдущими поколениями.

Помимо Intel, набор команд x86 также реализован в процессорах других производителей: AMD, VIA, Transmeta, IDT, Zhaoxin, МЦСТ (в процессорах Эльбрус) и др. В настоящее время для 32-разрядной версии архитектуры существует ещё одно название — IA-32 (Intel Architecture — 32).

Расширения архитектуры x86 (x86 extended features) — инженерные решения, разрабатываемые различными производителями микропроцессоров архитектуры x86 для собственных процессоров, которые, зачастую, присутствуют в одних моделях и отсутствуют в других. Разработчики программного обеспечения, прежде чем использовать их в собственных программах, должны выполнить специальную команду CPUID, которая сообщает о наличии тех или иных расширений. Если расширение не поддерживается, программа должна либо завершить работу, либо использовать другие алгоритмы, не использующие расширений.

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

Наиболее известные из расширений MMX, SSE, 3DNow!, Hyper-threading. В основном, новые расширения разрабатываются фирмой Intel и, затем, подхватываются другими производителями. Но иногда бывает так, что сама Intel включает в свои процессоры расширения, созданные иными фирмами. К примеру, так было с архитектурой x86-64, впервые разработанной компанией AMD, а уже впоследствии реализованная Intel как Intel64/EM64T.

Микропроцессоры Athlon 64 нацелены на потребительский рынок.

AMD Athlon XP — x86-совместимый микропроцессор, являющийся развитием процессоров архитектуры K7.

Sempron является low-end CPU, заменившим Duron.

3DNow!

3DNow! — дополнительное расширение MMX для процессоров AMD, начиная с AMD K6 3D. Причиной создания 3DNow! послужило стремление завоевать превосходство над процессорами производства компании Intel в области обработки мультимедийных данных.

Технология 3DNow! ввела 21 новую команду процессора и возможность оперировать 32-битными вещественными типами в стандартных MMX-регистрах. Также были добавлены специальные инструкции, оптимизирующие переключение в режим MMX/3DNow! (femms, которая заменяла стандартную инструкцию emms) и работу с кэшем процессора. Таким образом технология 3DNow! расширяла возможности технологии MMX, не требуя введения новых режимов работы процессора и новых регистров.

Начиная с микроархитектуры Bulldozer расширение не поддерживается (за исключением команды prefetch). [1]

Содержание

Проверка поддержки 3DNow! процессором [ править | править код ]

Перед началом работы с расширением 3DNow! следует убедиться, что ЦП их поддерживает. Для этого используется инструкция CPUID. Общий порядок действий при проверке выглядит следующим образом:

Tasker tutorials. Часть 1: Добавляем свои команды в Google Now

Первая статья из цикла, направленного на превращение обычного смартфона в настоящий продвинутый гаджет для истинного гика.
Цель этого цикла статей — научить максимально автоматизировать действия, связанные со смартфоном и показать интересные сферы применения смартфону.
Таскер-это мощнейший инструмент автоматизации действий телефона и его взаимодействия с окружающим миром.
Можно выполнять различные действия как реакцию на приложения (запуск/остановка), время, дату, смену местоположения, показателей датчиков телефона или событий (в том числе различных плагинов).
В первой части цикла будут рассмотрена возможность добавления своих команд в Google Now и выполнение различных действий после распознавания команды, что может вывести домашнюю автоматизацию на новый уроверь.

Google Now

На данный момент Google Now поддерживает ограниченный список голосовых команд, которые можно найти на официальной страничке поддержки. В одном из предыдущих обновлений включили поддержку распознавания фразы «OK, Google» на русском языке.

Затем добавили распознавание фразы на любом экране (раньше было только на рабочем столе и в карточках Google Now), хотя официально работает пока только на Английском. На хабре уже была статья с доступными командами да и на YouTube есть много видео с примерами.
С помощью голоса можно набирать смс, звонить, создавать заметки и ставить таймер/будильник и т.д… Но что делать, если этого не достаточно и хочется добавить свои команды? Например «Выключи вайфай» до сих пор не работает даже на английском. Просто отправляет в настройки.
Если интересно как добавить практически любую голосовую команду для Google Now без наличия рут прав (сразу оговорюсь, только на поддерживаемых аппаратах), прошу под кат. Это добавит практически безграничные возможности домашней автоматизации да и просто поможет облегчить жизнь и высвободить время.

Итак, функция активного прослушивания команд на рабочем столе доступна для андроида начиная с версии 4.2. На более низких версиях необходимо нажимать на значок микрофона принудительно.
Если произнести «Ок, гугл. Выключи вайфай», то нам сначала покажут карточку и через пару секунд откроется окно с настройками вайфай, где надо нажать кнопку для выключения.

Далее на примере той же самой команды я покажу как сделать, чтобы вайфай выключился сам. По аналогии можно настроить выполнение любых команд, которые только могут прийти в голову… ну почти.

AutoVoice

Основная программа, с помощью которой мы будем реагировать на голосовые команды и управлять окружающими предметами, устройствами, другими гаджетами да и просто совершать действия на самом смартфоне. Будет встречаться практически во всех последующих частях.

Для начала нам необходимо установить две замечательные программы: Tasker и AutoVoice. Программы платные, но стоят не дорого и я призываю поддержать разработчиков.
Затем в AutoVoice необходимо включить интеграцию с Google Now, или зайти в настройки — спец.возможности и активировать там.

Далее заходим в таскер. Создаем новый профиль. Нажимаем +, для условия выбираем событие/event, плагин/plugin, далее выбираем AutoVoice Recognized.

Нажимаем карандаш в правом верхнем углу, нажимаем Speak Filter и диктуем фразу, на которую мы хотим реагировать. Например «выключи вайфай». На выбор распознавание выдаст 5 вариантов, нажимаем на более правильный. Нажимаем кнопку назад и должны увидеть такую картинку:

Нажимаем еще раз назад. Для самого действия/Task выбираем Сеть/Net — WiFi- и смотрим чтобы вверху стояло Выкл/Off. Нажимаем 2 раза назад и видим такую картину (4й сверху профиль).

Выходим из таскера кнопкой назад (рекомендуется это делать всегда, чтобы обновленные профили заработали) и пробуем.
Должно получиться так: (следите за значком вайфая, звука на видео нет).

Вот в принципе и все. По аналогии можно настроить на каждую фразу любое действие или последовательность действий.
AutoVoice поддерживает распознавание regex, то-есть можно диктовать длинные фразы, часть слов из которых может выступать переменными, но об этом как-нибудь в другой раз, если тема вызовет интерес.

Напоследок видео от создателя многих интересных плагинов к таскеру — Joao Dias:

UPD1:
Небольшое дополнение для рутованных телефонов.
Если поставить xposed framework и мод Ok Google for 3rd party activities, то можно настроить срабатывание ключевой фразы из любого приложения уже сейчас (на самом деле уж месяца 2 назад, до того как гугл выкатил обнову для англоговорящих).
UPD2:
У кого не обеспечивается интеграция с Google Now: если есть рут, то можно перехватывать команды через модуль к xposed framework — Google Search / Now API, который поддерживает плагин AutoVoice. Для работы необходимо его ставить первым, т.к. если AutoVoice уже установлен, то удалить и поставить заново. И так делать после каждого обновления модуля.

AMD прощается с инструкциями 3DNow!

Собственный набор SIMD-инструкций AMD, известный с 1998 года как 3DNow! (начиная с процессоров AMD K6 3D), теперь отправится в отставку: производитель сообщил, что эти инструкции не будут поддерживаться рядом процессоров, находящихся сейчас в разработке.

Поддержка различных версий SSE, конечно, будет сохранена, так что вряд ли разработчики столкнутся с особыми проблемами в оптимизации своих программ — команды SSE эффективно заменяют 3DNow!

Данное решение не вызывает удивления — процессоры Intel занимаю 90% рынка и подавляющее число разработчиков давно не учитывает 3DNow!, используя аналогичные команды SSE, тем более, чипы AMD также их поддерживают. Тем не менее, производитель сохранит поддержку двух инструкций 3DNow! — PREFETCH и PREFETCHW.

Илон Маск рекомендует:  Goto - Ключевое слово Delphi
Понравилась статья? Поделиться с друзьями:
Кодинг, CSS и SQL