AltiVec: различия между версиями
[непроверенная версия] | [непроверенная версия] |
Содержимое удалено Содержимое добавлено
AVB (обсуждение | вклад) м уточнение ссылки |
Animist (обсуждение | вклад) Добавлена категория |
||
Строка 1:
'''AltiVec''' это набор [[SIMD]] (векторных) инструкций для работы с [[число с плавающей запятой|плавающей запятой]] и целочисленной арифметикой, разработанный и принадлежащий [[Apple Computer]], [[IBM]] и [[Motorola]] (известных, как [[AIM alliance]]). AltiVec реализован на различных версиях процессоров [[PowerPC]], как производства Motorola ([[PowerPC G4|G4]]), так и производства [[IBM]] ([[PowerPC G5|G5]]).
Само название AltiVec является зарегистрированной [[
Когда AltiVec появился в конце 90-х, это был самый мощный набор векторных инструкций в [[Центральный процессор|процессорах]] для настольных систем. AltiVec предлагает больше [[регистр]]ов и возможностей с ними работать в силу гораздо более гибкого набора команд, чем у его аналогов ([[MMX]], разработанный [[Intel]] для работы с целочисленной арифметикой, набор инструкций с плавающей точкой [[SSE]] и ряд разработок других производителей [[RISC]] процессоров).
Надо отметить, что 3-е и 4-е поколение SIMD наборов инструкций фирмы [[Intel]] ([[SSE2]] и [[SSE3]], изначально доступные в [[Pentium 4]], а позже реализованные [[AMD]] в архитектуре [[AMD64]]), имеют гораздо больший набор команд, чем AltiVec.
Как AltiVec, так и SSE оперируют 128-битными векторными регистрами, которыми можно пользоваться, как шестнадцатью 8-битными байтами, восемью 16-битными словами, четырьмя 32-битными целыми или четырьмя числами с плавающей запятой. Оба предоставляют механизм работы с [[кеш-память]]ю, таким образом программист может сам снизить количество промахов при работе с потоком данных.
Строка 13:
Существует специальный модификатор '''vector''' для спецификации типа переменной (например "vector unsigned char foo;" - вектор из шестнадцати 8-битных байтов). [[Полиморфизм в языках программирования|Перегруженные]] функции, такие как "vec_add" оперируют с векторными регистрами исходя из их содержимого, при этом проводя очень чёткий контроль типов. Векторные инструкции Intel-а никакого контроля за типами не производят и оперируют лишь размером вектора, не различая байты и слова. Такая халатность может привести к тому, что вектор слов будет сложен с вектором байт, полностью разрушив данные. Что бы такого не происходило, для архитектуры Intel, существует целая серия дублирующих друг друга инструкций вида: _mm_add_epi16 (x,y) - для сложения двух векторов слов, _mm_add_epi32 (x,y) для сложения двух векторов целых и т. п.
AltiVec разрабатывался в 1996—1998 годах [[Кейт Дифендорф|Кейтом Дифендорфом]], известным учёным и начальником отдела архитектуры микропроцессоров в [[Apple Computer]].
Apple была главным заказчиком AltiVec и использовала его для ускорения [[мультимедиа|мультимедийных]] приложений, таких как [[QuickTime]] или [[iTunes]]. AltiVec так же играет огромную роль в работе таких системных механизмов [[Mac OS X|Apple Mac OS X]], как [[Quartz|подсистема рендеринга изображений Quartz]]. Сторонние производители, например Adobe, так же используют AltiVec для ускорения работы своих программ, например [[Adobe Photoshop]]. Motorola первая начала продавать AltiVec, встроенным в процессоры серии G4 (сейчас AltiVec-м занимается отдельная компания [[Freescale]], выделенная из подразделения Motorola). AltiVec так же используется в некоторых встраиваемых системах, что бы обеспечить быструю работу [[АЦП|аналого-цифровых преобразователей]].
Строка 19:
IBM исключила VMX (другое название AltiVec-а) из своей серии [[POWER]], так как эти процессоры использовались в мейнфреймах и серверах, где векторные вычисления не очень нужны. Впрочем, в PowerPC G5, предназначенных для настольных компьютеров, IBM встраивает высокопроизводительный модуль AltiVec. На ядре находится модуль сложения/умножения и полная реализация VMX.
IBM так же заявляет, что часть инструкций VMX включена в процессор, используемый в игровой приставке Microsoft Xbox 360, который основан на PowerPC. Процессор [[Cell]] так же
Согласно [http://developer.apple.com/hardware/ve/summary.html
Несмотря на то, что Apple заявляет, что [[PowerPC
== Внешние ссылки ==
Строка 31:
[[Категория:Параллельная обработка данных]]
[[Категория:Параллельные вычисления]]
[[de:AltiVec]]
|