Набор визуальных инструкций
Набор визуальных инструкций , или VIS , представляет собой расширение набора команд SIMD для SPARC V9, микропроцессоров разработанное Sun Microsystems . Существует пять версий VIS: VIS 1, VIS 2, VIS 2+, VIS 3 и VIS 4. [1]
История
[ редактировать ]VIS 1 был представлен в 1994 году и впервые был реализован Sun в микропроцессоре UltraSPARC (1995 г.) и Fujitsu в микропроцессорах SPARC64 GP (2000 г.).
VIS 2 был впервые реализован в UltraSPARC III . Все последующие микропроцессоры UltraSPARC и SPARC64 реализуют этот набор команд.
VIS 3 был впервые реализован в микропроцессоре SPARC T4 .
VIS 4 был впервые реализован в микропроцессоре SPARC M7 .
Отличия от x86
[ редактировать ]![]() | этой статьи Фактическая точность оспаривается . ( Ноябрь 2017 г. ) |
VIS не является набором инструментов для инструкций, подобным Intel MMX и SSE. MMX имеет только 8 регистров, совместно используемых со стеком FPU , в то время как процессоры SPARC имеют 32 регистра, которые также связаны с регистрами двойной точности (64 бита) с плавающей запятой.
Как и в случае с расширениями набора команд SIMD на других процессорах RISC , VIS строго соответствует основному принципу RISC: сохранять набор команд кратким и эффективным.
Этот дизайн сильно отличается от аналогичных расширений процессоров CISC , таких как MMX , SSE , SSE2 , SSE3 , SSE4 , 3DNow! .
Иногда программистам приходится использовать несколько инструкций VIS для выполнения операции, которую можно выполнить только с помощью одной инструкции MMX или SSE , но следует иметь в виду, что меньшее количество инструкций не приводит автоматически к повышению производительности.
Функциональность
[ редактировать ]VIS повторно использует существующие 64-битные регистры с плавающей запятой SPARC V9 для хранения нескольких 8, 16 или 32-битных целочисленных значений. В этом отношении VIS больше похож на конструкцию MMX, чем на другие архитектуры SIMD, такие как SSE / SSE2 / AltiVec .
VIS включает в себя ряд операций, в основном предназначенных для поддержки графики, поэтому большинство из них предназначены только для целых чисел. К ним относятся преобразование 3D в 2D, обработка краев и расстояние между пикселями.
Существует четыре способа использования VIS в коде:
- Опция GCC -mvis
- Используйте встроенную сборку
- Используйте встроенный шаблон в VSDK , аналогичный встроенным функциям компилятора , которые имеют функции C, подобные интерфейсам.
- Используйте мультимедийную библиотеку mediaLib , которая имеет интерфейсы функций C. Он использует VIS на платформах SPARC (и MMX/SSE/SSE2 на платформах x86/x64) для ускорения выполнения мультимедийных приложений.
Ссылки
[ редактировать ]- ^ Лян Хэ; Харлан МакГэн (май 2005 г.). «MT mediaLib для многопоточных (CMT) процессоров» (PDF) . Sun Microsystems, Inc. Архивировано из оригинала (PDF) 30 декабря 2006 года . Проверено 3 декабря 2007 г.
- Гвеннап, Линли (5 декабря 1995 г.). «UltraSparc добавляет мультимедийные инструкции». Отчет микропроцессора .
- Трембле, Марк и др. (август 1996 г.). «VIS ускоряет обработку новых медиа». IEEE микро .