Из Википедии, свободной энциклопедии
Перейти к навигации Перейти к поиску

Набор команд F16C [1] (ранее / неофициально известный как CVT16 ) представляет собой расширение архитектуры набора команд x86, которое обеспечивает поддержку преобразования между форматами с плавающей запятой половинной точности и стандартными форматами одинарной точности IEEE .

История [ править ]

Набор инструкций CVT16, анонсированный AMD 1 мая 2009 года, является расширением 128-битных инструкций ядра SSE в наборе инструкций x86 и AMD64 .

CVT16 - это пересмотр части предложения по набору инструкций SSE5, объявленного 30 августа 2007 г., которое дополняется наборами инструкций XOP и FMA4 . Этот пересмотр делает двоичное кодирование предлагаемых новых инструкций более совместимых с Intel «s AVX расширений команд, в то время как функциональные инструкции неизменна.

В последних документах название F16C формально используется в спецификациях архитектуры Intel и AMD x86-64 .

Техническая информация [ править ]

Существуют варианты, которые преобразуют четыре значения с плавающей запятой в регистре XMM или 8 значений с плавающей запятой в регистре YMM .

Инструкции представляют собой аббревиатуры для «векторного преобразования упакованной половины в упакованную единичную» и наоборот:

  • VCVTPH2PS xmmreg,xmmrm64 - преобразовать четыре значения с плавающей запятой половинной точности в памяти или нижнюю половину регистра XMM в четыре значения с плавающей запятой одинарной точности в регистре XMM.
  • VCVTPH2PS ymmreg,xmmrm128 - преобразовать восемь значений с плавающей запятой половинной точности в памяти или регистре XMM (нижняя половина регистра YMM) в восемь значений с плавающей запятой одинарной точности в регистре YMM.
  • VCVTPS2PH xmmrm64,xmmreg,imm8 - преобразовать четыре значения с плавающей запятой одинарной точности в регистре XMM в значения с плавающей запятой половинной точности в памяти или в нижнюю половину регистра XMM.
  • VCVTPS2PH xmmrm128,ymmreg,imm8 - преобразовать восемь значений с плавающей запятой одинарной точности в регистре YMM в значения с плавающей запятой половинной точности в памяти или регистре XMM.

8-битный непосредственный аргумент для VCVTPS2PHвыбора режима округления . Значения 0–4 выбирают ближайший, вниз, вверх, усечение и установленный режим MXCSR.RC.

Поддержка этих инструкций обозначается битом 29 ECX после CPUID с EAX = 1 .

Процессоры с F16C [ править ]

  • AMD :
    • Процессоры на базе Jaguar и новее
    • Процессоры на базе Puma и новее
    • Переработчики "тяжелого оборудования"
      • Процессоры на базе бульдозеров , 4 квартал 2011 г. [2]
      • Процессоры на базе Piledriver , 4 квартал 2012 г. [3]
      • Процессоры на базе Steamroller , первый квартал 2014 г.
      • Экскаваторные процессоры и новее, 2015 г.
    • Процессоры на базе Zen , первый квартал 2017 г.
    • Процессоры на базе Zen + , второй квартал 2018 г.
    • Процессоры на базе Zen2 , третий квартал 2019 г.
  • Intel :
    • Процессоры Ivy Bridge и новее

Ссылки [ править ]

  1. ^ Чак Walbourn (11 сентября 2012). «DirectXMath: F16C и FMA» .
  2. ^ Дэйв Кристи (2009-05-07) Достижение баланса , AMD Developer блоги, архивируются с оригинала на 2013-11-09 , извлекаться 2012-01-17
  3. Новые инструкции "Bulldozer" и "Piledriver" (PDF) , AMD, октябрь 2012 г.

Внешние ссылки [ править ]

  • Новые инструкции по работе с бульдозерами и погрузчиками [1]
  • Математика DirectX F16C и FMA [2]
  • Руководство программиста по архитектуре AMD64, том 1 [3]
  • Руководство программиста по архитектуре AMD64, том 2 [4]
  • Руководство программиста по архитектуре AMD64, том 3 [5]
  • Руководство программиста по архитектуре AMD64, том 4 [6]
  • Руководство программиста по архитектуре AMD64, том 5 [7]
  • Руководство разработчика программного обеспечения для архитектур IA32 [8]