Открыть сервис

AltiVec

AltiVec — это торговая марка векторного расширения системы команд для микропроцессоров архитектуры PowerPC, разработанного консорциумом компаний Apple, IBM и Motorola (позднее Freescale Semiconductor, ныне NXP Semiconductors). AltiVec представляет собой набор SIMD-инструкций (Single Instruction, Multiple Data), предназначенных для параллельной обработки данных, что позволяет значительно ускорить выполнение задач, связанных с цифровой обработкой сигналов, мультимедиа, научными вычислениями и криптографией. Внедрённое в 1999 году, расширение стало ключевым элементом производительности компьютеров Macintosh на процессорах PowerPC G4 и G5, а также нашло применение в серверных, встраиваемых и встроенных системах, включая игровые консоли (Nintendo GameCube, Wii) и автомобильные информационно-развлекательные системы.

История

Разработка AltiVec началась в середине 1990-х годов, когда Apple, IBM и Motorola (альянс AIM) стремились создать конкурентоспособную платформу для персональных компьютеров, способную соперничать с архитектурой x86 от Intel и AMD. Основной целью было обеспечение высокой производительности в мультимедийных приложениях, которые становились всё более важными для рынка. В 1996 году Motorola представила концепцию векторного процессора, получившую название «AltiVec» (от слов «altitude» — высота и «vector» — вектор). Первая реализация была интегрирована в процессор PowerPC 7400 (G4), выпущенный в 1999 году.

Apple первой внедрила AltiVec в компьютеры Macintosh, начиная с Power Mac G4 (1999 год). Процессор G4 с AltiVec обеспечивал значительный прирост производительности в задачах, таких как обработка видео, аудио и изображений, что рекламировалось как «Velocity Engine». В 2003 году IBM выпустила процессор PowerPC 970 (G5), который также включал AltiVec, но с улучшенной реализацией, поддерживающей 64-битные вычисления. Однако в 2005 году Apple объявила о переходе на архитектуру x86-64 от Intel, что привело к постепенному снижению использования AltiVec в потребительских компьютерах.

После ухода Apple, AltiVec продолжал развиваться в сегменте встраиваемых и серверных систем. Freescale Semiconductor (дочерняя компания Motorola) выпускала процессоры на ядре e600 (PowerPC e600) с поддержкой AltiVec, которые использовались в автомобильной электронике, телекоммуникационном оборудовании и военных системах. IBM также применяла AltiVec в процессорах серии PowerPC 970 для серверов IBM BladeCenter и в высокопроизводительных вычислительных системах, таких как Blue Gene/L. В 2010-х годах развитие AltiVec продолжилось в рамках архитектуры Power ISA, где векторное расширение было стандартизировано как часть набора инструкций.

Архитектура и характеристики

AltiVec реализован как отдельный блок векторной обработки, работающий параллельно с основным целочисленным и вещественным конвейерами процессора. Он включает в себя 32 128-битных векторных регистра (VR0–VR31), которые могут хранить данные различных типов: 16 целых чисел (8-битных), 8 целых чисел (16-битных), 4 целых числа (32-битных) или 4 числа с плавающей запятой одинарной точности (32-битных). Векторные инструкции оперируют этими регистрами, выполняя одну и ту же операцию над всеми элементами одновременно (SIMD).

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

Набор инструкций AltiVec насчитывает около 160 команд, разделённых на несколько категорий:

  • Арифметические операции: сложение, вычитание, умножение, деление, умножение с накоплением (multiply-add) для целых и вещественных чисел.
  • Логические операции: AND, OR, XOR, NOT, сдвиги и повороты.
  • Операции сравнения: сравнение на равенство, больше/меньше, с возвратом маски результата.
  • Операции перестановки: перестановка байтов, слияние, упаковка/распаковка данных.
  • Специализированные операции: округление, насыщение (saturation) для целых чисел, вычисление среднего, минимальное/максимальное значение.

Производительность

AltiVec обеспечивает теоретический прирост производительности до 4–8 раз по сравнению с последовательным выполнением тех же операций на скалярном процессоре, в зависимости от типа данных и задачи. Например, при обработке видео с разрешением 720p (1280×720 пикселей) процессор PowerPC G4 с AltiVec мог выполнять фильтрацию и цветокоррекцию в реальном времени, что было недоступно для процессоров x86 того же поколения. В задачах цифровой обработки сигналов (например, БПФ — быстрое преобразование Фурье) ускорение достигало 3–5 раз.

Применение

AltiVec нашёл широкое применение в различных областях, где требовалась высокая производительность параллельных вычислений.

Персональные компьютеры

В компьютерах Macintosh на процессорах PowerPC G4 и G5 AltiVec использовался для ускорения мультимедийных приложений. Операционная система macOS (тогда Mac OS X) имела встроенную поддержку AltiVec через библиотеки Accelerate Framework, которые автоматически задействовали векторное расширение для задач, таких как обработка изображений (Core Image), видео (QuickTime), аудио (Core Audio) и 3D-графика (OpenGL). Многие приложения сторонних разработчиков, включая Adobe Photoshop, Final Cut Pro и Logic Pro, были оптимизированы для использования AltiVec, что давало им значительное преимущество в производительности.

Игровые консоли

AltiVec был реализован в процессорах IBM PowerPC, используемых в игровых консолях Nintendo GameCube (2001 год) и Wii (2006 год). В GameCube процессор «Gekko» (на базе PowerPC 750CXe) включал векторный блок, аналогичный AltiVec, что позволяло обрабатывать графику, физику и звук в реальном времени. В Wii процессор «Broadway» (на базе PowerPC 750CL) также поддерживал AltiVec, обеспечивая совместимость с играми GameCube и улучшенную производительность для новых проектов.

Встраиваемые системы

Freescale Semiconductor выпускала процессоры серии MPC7xxx (например, MPC7448) и QorIQ (например, P2020) с поддержкой AltiVec, которые использовались в автомобильных информационно-развлекательных системах, телекоммуникационных маршрутизаторах, системах управления двигателями и авионике. AltiVec позволял выполнять сложные алгоритмы обработки сигналов (например, шумоподавление, распознавание речи) на встраиваемых устройствах с ограниченным энергопотреблением.

Высокопроизводительные вычисления

IBM применяла AltiVec в суперкомпьютерах на базе процессоров PowerPC 970, таких как Blue Gene/L (2004 год), который занимал первое место в рейтинге TOP500 в 2004–2008 годах. В Blue Gene/L использовались процессоры PowerPC 440 с векторным расширением, что позволяло эффективно выполнять задачи молекулярного моделирования, климатических прогнозов и криптоанализа. Позднее, в процессорах POWER7 и POWER8, AltiVec был заменён на более современное расширение VSX (Vector Scalar Extension), но оставался обратно совместимым.

Сравнение с аналогами

AltiVec был одним из первых векторных расширений для массовых процессоров, наряду с MMX (1996 год) и SSE (1999 год) от Intel, а также 3DNow! от AMD (1998 год). По сравнению с MMX, AltiVec предлагал более широкие возможности: 128-битные регистры против 64-битных, поддержка чисел с плавающей запятой (MMX работал только с целыми числами) и более гибкие операции перестановки. SSE, представленный почти одновременно с AltiVec, также использовал 128-битные регистры, но AltiVec имел преимущество в операциях перестановки байтов (permute), которые были реализованы аппаратно, в то время как в SSE требовались несколько инструкций.

Однако AltiVec был привязан к архитектуре PowerPC, которая проиграла рыночную борьбу x86. В 2000-х годах SSE и его преемники (SSE2, SSE3, AVX) стали доминирующими векторными расширениями, а AltiVec остался нишевым решением для встраиваемых и специализированных систем.

Наследие

Несмотря на уход с рынка персональных компьютеров, AltiVec оказал значительное влияние на развитие векторных вычислений. Его архитектурные решения, такие как 128-битные регистры, операции перестановки и насыщение, были заимствованы или адаптированы в последующих расширениях, включая ARM NEON и Intel AVX. В современных процессорах архитектуры Power ISA (например, POWER9, POWER10) поддержка AltiVec сохранена для обратной совместимости, но основным векторным расширением является VSX, которое объединяет возможности AltiVec и традиционных инструкций с плавающей запятой.

Источники

  • Diefendorff, K., et al. «AltiVec Extension to PowerPC». Proceedings of the 32nd Annual International Symposium on Microarchitecture, 1999.
  • Apple Computer, Inc. «Velocity Engine: AltiVec Technology». Техническая документация, 2000.
  • IBM Corporation. «PowerPC 970 Microprocessor User Manual». 2003.
  • Freescale Semiconductor. «MPC7448 RISC Microprocessor Product Brief». 2005.
  • Hennessy, J. L., Patterson, D. A. Computer Architecture: A Quantitative Approach. 5th ed., Morgan Kaufmann, 2011.

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →