uk
мова
смартфони SoC процесори відеокарти ігри
українська русский
Архів | ПроцесорТехнології та інструкції, що використовуються в процесорах → AVX (Advanced Vector Extensions)
Стаття востаннє коригувалася 2016.11.08 та могла втратити свою актуальність !!!

AVX (Advanced Vector Extensions)

08.11.2016 р.

AVX (Advanced Vector Extensions) - розширення системи команд процесора, розроблене компанією Intel в 2008 році, яке, як і SSE, SSE2, SSE3, SSSE3, SSE4, стало подальшим розвитком технологій SIMD (Single Instruction - Multiple Data, тобто "одна інструкція - безліч даних").

На практиці розширення AVX вперше було використане в 2011 році в процесорах з архітектурою Sandy Bridge (Intel), а також Bulldozer (AMD), і внесло в їх роботу значні удосконалення.

Зокрема:


• у 2 рази було збільшено регістри SIMD (з 128 до 256 біт), а також додано набір додаткових 256-бітних інструкцій, які виконуються в цих регістрах. При цьому, збереглася підтримка існуючих 128-бітних SSE-інструкцій процесора, які тепер використовували тільки першу половину нових 256-бітних регістрів.

Завдяки розширенню регістрів, процесор з підтримкою AVX за кожен такт може обробляти до 2 разів більше інформації в інтенсивних обчисленнях з плаваючою точкою, зокрема, в різного роду мультимедійних програмах (робота з фото-, відеоконтентом), а також при вирішенні наукових завдань. У випадках, коли можлива більш висока ступінь паралелізму, AVX збільшує продуктивність з дійсними числами.

Але для цього, окрім підтримки AVX процесором, необхідним є також використання відповідної операційної системи і адаптованого програмного забезпечення. У Windows підтримка AVX з'явилася тільки в Windows 7 SP1.

• інструкції AVX замість двооперандного використовують так званий "неруйнівний" трьохоперандний синтаксис. Що це означає? Процесор замість A=A+B працює за схемою A+B=C, завдяки чому після операції регістр A залишається незміненим і може бути використаний в подальших обчисленнях. Як наслідок, відпадає необхідність зберігати регістр A (якщо він потрібний надалі) перед обчисленням і відновлювати його після завершення обчислення з іншого регістра чи пам'яті. Це позитивно позначається на швидкодії процесора.

• для інструкцій AVX відсутні суворі вимоги стосовно стосуються вирівнювання операндів в пам'яті, що трохи полегшує роботу програмістів. Проте, при розробці додатків, які використовують ці інструкції, все ж рекомендується стежити за вирівнюванням на розмір операнда щоб уникнути зниження продуктивності.

• у AVX введена нова схема кодування інструкцій процесора (VEX), яка надала можливість в перспективі вводити нові команди AVX (що важливо для подальшого розвитку SIMD).





вгору