F16C
Эта статья включает список общих ссылок , но в ней отсутствуют достаточные соответствующие встроенные цитаты . ( декабрь 2013 г. ) |
F16C [1] (ранее/неофициально известный как CVT16 ) — это x86 расширение архитектуры набора команд , которое обеспечивает поддержку преобразования между форматами с плавающей запятой половинной точности и стандартными форматами IEEE с плавающей запятой одинарной точности .
История
[ редактировать ]Набор инструкций CVT16, анонсированный AMD 1 мая 2009 г., [2] является расширением 128-битных инструкций ядра SSE в наборе инструкций x86 и AMD64 .
CVT16 — это переработка части предложения набора инструкций SSE5 , анонсированного 30 августа 2007 г., которая дополнена наборами инструкций XOP и FMA4 . Эта версия делает двоичное кодирование предлагаемых новых инструкций более совместимым с Intel расширениями инструкций 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
[ редактировать ]- АМД :
- на базе Jaguar Процессоры
- на базе Puma Процессоры
- Процессоры «Тяжелое оборудование»
- Процессоры на базе Bulldozer , IV квартал 2011 г. [3]
- Процессоры на базе Piledriver , IV квартал 2012 г. [4]
- Процессоры на базе Steamroller , 1 квартал 2014 г.
- Процессоры на базе экскаваторов , 2 квартал 2015 г.
- Процессоры на базе Zen , первый квартал 2017 г. и новее
- Интел :
- Процессоры Ivy Bridge и новее
Ссылки
[ редактировать ]- ^ Чак Уолборн (11 сентября 2012 г.). «DirectXMath: F16C и FMA» .
- ^ «128-битные и 256-битные инструкции XOP, FMA4 и CVT16» (PDF) . Руководство программиста по архитектуре AMD64 . Том. 6. 01 мая 2009 г. Архивировано из оригинала (PDF) 20 мая 2009 г. Проверено 5 июля 2022 г.
- ^ Дэйв Кристи (07 мая 2009 г.), Поддерживая баланс , Блоги разработчиков AMD, заархивировано из оригинала 9 ноября 2013 г. , получено 17 января 2012 г.
- ^ Новые инструкции для «Бульдозера» и «Сваебойщика» (PDF) , AMD, октябрь 2012 г.
Внешние ссылки
[ редактировать ]- Новые инструкции для бульдозеров и сваебойщиков [1]. Архивировано 7 января 2013 г. в Wayback Machine.
- Математика DirectX F16C и FMA [2]
- Руководство программиста по архитектуре AMD64, том 1 [3]. Архивировано 14 декабря 2013 г. на Wayback Machine.
- Руководство программиста по архитектуре AMD64, том 2 [4]
- Руководство программиста по архитектуре AMD64, том 3 [5]. Архивировано 14 декабря 2013 г. на Wayback Machine.
- Руководство программиста по архитектуре AMD64, том 4 [6]. Архивировано 14 ноября 2021 г. на Wayback Machine.
- Руководство программиста по архитектуре AMD64, том 5 [7]. Архивировано 14 декабря 2013 г. на Wayback Machine.
- Руководство разработчика программного обеспечения для архитектуры IA32 [8]