افزونه‌بردار پیشرفته کیست؟ توضیح بده.
افزونه بردار پیشرفته (AVX، که همچنین به عنوان افزونه جدید Sandy Bridge خوانده می‌شود)، افزونه معماری مجموعه دستورالعمل‎های x86 برای ریزپردازنده‌های اینتل و AMD است که توسط اینتل در مارس ۲۰۰۸ پیشنهاد شده‌است و برای اولین بار توسط اینتل در پردازنده Sandy Bridge در Q1 2011 پشتیبانی شد؛ و بعد AMD با پردازنده بلدوزر در 2011 Q3 عرضه کرد. AVX ویژگی‌های جدید، دستورالعمل‌های جدید و طرح بندی جدید را فراهم می‌کند.AVX2 اکثر دستورهای عدد صحیح (int) را به ۲۵۶ بیت گسترش می‌دهد و عملیات را معرفی می‌کند. ، AVX را به پشتیبانی ۵۱۲ بیتی با استفاده از یک کدگذاری جدید پیشوندی که توسط اینتل در ماه ژوئیه ۲۰۱۳ ارائه شده، گسترش می‌دهد و اولین بار توسط اینتل در پردازنده Knights Landing در سال ۲۰۱۶ عرضه شد.افزونه بردار پیشرفته.AVX از ۱۶ ثبات YMM استفاده می‌کند. هر ثبات YMM شامل موارد زیر است:طول ثبات‌های SIMD از ۱۲۸ بیت به ۲۵۶ بیت افزایش یافت و از XMM 0-XMM7 به YMM0-YMM7 (در حالت x86-64، YMM0-YMM15) تغییر نام پیدا کردند. در پردازنده‌هایی با پشتیبانی AVX، دستورالعمل‌هایی با پشتوانه SSE (که قبلاً در ثبات‌های ۱۲۸ بیتی XMM استفاده می‌شده‌است) را می‌توان با استفاده از کدگذاری برای کار بر روی ۱۲۸ بیت پایین از ثبات YMM گسترش داد.AVX یک فرمت دستورالعمل SIMD با سه عملوند ارائه می‌دهد، بطوریکه ثبات مقصد از ثبات دو عملوند مرجع متمایز است. به عنوان مثال، یک دستور SSE با استفاده از فرم دو عاملی معمولی "a = a + b" را اکنون می‌توان با استفاده از یک فرم غیر مخرب سه عملوندی با حفظ هر دو عملوند مرجع به فرمc" = a + b"، جایگزین کرد. فرمت سه عملوندی AVX محدود به دستورالعمل‌های SIMD (YMM) است و شامل دستورالعمل‌هایی با استفاده از ثبات‌های همه منظوره نمی‌شود (مثلاً EAX). چنین پشتیبانی اولین بار در AVX2 ظاهر خواهد شد.تراز مورد نیاز از عملوند حافظه SIMD آرام است.شیوه جدید کدگذاری VEX () مجموعه ای جدید از کدهای پیشوندی را به وجود می‌آورد که فضای opcode را گسترش می‌دهد و این امکان را فراهم می‌سازد که دستورالعمل‌ها بیش از دو عملوند و ثبات‌های بردار SIMD طولانی‌تر از ۱۲۸ بیت باشد. پیشوند VEX همچنین می‌تواند بر روی دستورالعمل‌های SSE مورد استفاده قرار گیرد و آن‌ها را به شکل سه عملوندی درآورد و آن‌ها را با استفاده از دستورهای AVX بدون نیاز به VZEROUPPER و VZEROALL به صورت تعاملی بیشتری بسازد.دستورالعمل‌های AVX هر دو ثبات ۱۲۸ بیتی و ۲۵۶ بیتی SIMD را پشتیبانی می‌کنند. نسخه‌های ۱۲۸ بیتی می‌توانند برای بهبود کدهای قدیمی بدون نیاز به گسترش فشرده سازی، و با دوری از دشواری‌های رفتن از SSE به AVX، سریعتر از برخی از پیاده‌سازی‌های اولیه AMD برای AVX باشند. این حالت گاهی اوقات با نام AVX-128 شناخته می‌شود.دستورالعمل‌های جدید.این دستورالعمل‌های AVX علاوه بر آن‌هایی هستند که پسوندهای ۲۵۶ بیتی از دستورالعمل SSE 128 بیتی قدیمی را دارند؛ اکثر آن‌ها در هر دو حالت ۱۲۸ بیتی و ۲۵۶ بیتی قابل استفاده هستند.CPU با AVX.توجه: همه CPUهای خانواده‌های ذکر شده از AVX پشتیبانی نمی‌کنند. به‌طور کلی CPUها با نام تجاری Core i3 / i5 / i7 از آن‌ها پشتیبانی می‌کنند، در حالی که پردازنده‌های Pentium و Celeron پشتیبانی نمی‌کنند.مسائل مربوط به سازگاری بین پردازنده‌های آینده اینتل و AMD در مجموعه دستورالعمل XOP مورد بحث قرار می‌گیرد.پشتیبانی کامپایلر و اسمبلر.GCC با نسخه ۴٫۶ آغاز می‌شود (هرچند شاخه ۴٫۳ با پشتیبانی خاصی وجود دارد) و مجموعه کامپایلر اینتل با نسخه ۱۱٫۱ پشتیبانی از AVX آغاز کرد. کامپایلر ویژوال استودیو ۲۰۱۰ / ۲۰۱۲ پشتیبانی از AVX را از طریق توابع ذاتی و / قوس: سوئیچ AVX انجام می‌دهد. نسخه ۴٫۵٫۱ کامپایلر Open64 AVX را با پرچم mavx پشتیبانی می‌کند. Absoft از پرچم -mavx پشتیبانی می‌کند. از پرچم -mavx پشتیبانی می‌کند. کامپایلر رایگان پاسکال از AVX و AVX2 با استفاده از سوئیچ‌های -CfAVX و -CfAVX2 از نسخه ۲٫۷٫۱ پشتیبانی می‌کند. کامپایلر Vector Pascal از AVX از طریق پرچم -cpuAVX32 پشتیبانی می‌کند. توابع اجرایی مونتاژ ( - GAS) این دستورالعمل‌ها را در اینلاین اسمبلی پشتیبانی می‌کنند (از طریق GCC قابل دسترسی هستند)، همان‌طور که در دستورهای ابتدایی Intel و اسمبلر Inline اینتل این کار را انجام می‌دهند (نزدیک به سازگار با GAS، اگرچه بیشتر در اداره ارجاعات محلی درون اینلاین اسمبلی به کار می‌رود). اسمبلرهای دیگر مانند نسخه MASM VS2010، YASM , FASM، NASM و JWASM نیز از این امکان برخوردارند.پشتیبانی از سیستم عامل.AVX ثبات-وضعیت جدیدی را از طریق ثبات‌های YMM 256 بیتی اضافه می‌کند، بنابراین برای حفظ و بازگرداندن رجیسترهای AVX از میان سوئیچ‌های متنی، نیاز به پشتیبانی صحیح سیستم عامل وجود دارد. نسخه‌های سیستم عامل زیر از پشتیبانی از AVX برخوردارند:افزونه بردار پیشرفته ۲.Extensions Vector Advanced 2 (AVX2)، همچنین به عنوان دستورالعمل‌های جدید Haswell شناخته می‌شود، یک توسعه مجموعه دستورالعمل‌های AVX است که در میکرو آرشیو فناوری Haswell توسط اینتل معرفی شده‌است. AVX2 موارد زیر را اضافه می‌کند:گاهی اوقات فرمت دیگری با استفاده از یک پرچم پردازنده دیگر بخشی از AVX2 محسوب می‌شود؛ این دستورالعمل‌ها در صفحه مخصوص به خود و نه در زیر ذکر شده‌است:AVX-512."AVX-512" 512 بیتی برای ۲۵۶ بیت پیشرفته Extension Vector Extensions دستورالعمل SIMD برای معماری مجموعه دستورالعمل x86 ارائه شده توسط اینتل در ماه ژوئیه ۲۰۱۳ است و برنامه‌ریزی شده در سال ۲۰۱۵ با پردازشگر Knights Landing اینتل پشتیبانی می‌شود.دستورهای AVX-512 با پیشوند جدید EVEX رمزگذاری می‌شود. این شیوه ۴ عملوند، ۷ ثبات opmask جدید ۶۴ بیتی، حالت حافظه اسکالر با پخش خودکار، کنترل صحیح گرد کردن اعداد و حالت آدرس دهی حافظه جابجایی فشرده فراهم می‌کند. طول ثبات‌ها به ۵۱۲ بیت افزایش می‌یابد و تعداد کل ثبات‌ها در حالت x86-64 به ۳۲ عدد (ثبات‌های ZMM0-ZMM31) افزایش می‌یابد.AVX-512 شامل چندین افزونه است که به معنای آن نیست که همه آن‌ها توسط تمام پردازنده‌ها پشتیبانی می‌شوند. مجموعه دستورالعمل اضافه شده شامل موارد زیر است:تنها فرمت هسته AVX-512F (AVX-512 Foundation) مورد نیاز تمام پیاده‌سازی‌ها است، هرچند تمام پردازنده‌های فعلی نیز از CD پشتیبانی می‌کنند (شناسایی تعارض)؛ محاسبه پردازنده‌های کمکی و مجتمع علاوه بر این از ER, PF، 4VNNIW، 4FMAPS و VPOPCNTDQ نیز پشتیبانی خواهند کرد، در حالی که پردازنده‌های دسکتاپ از VL, DQ, BW, IFMA, VBMI, VPOPCNTDQ, VPCLMULQDQ و غیره پشتیبانی می‌کنند.دستورالعمل‌های SSE / AVX به روز شده در AVX-512F از همان روش‌هایی مانند نسخه‌های AVX استفاده می‌کنند؛ آن‌ها می‌توانند در ثبات ۵۱۲ بیتی ZMM عمل کنند و همچنین از ۱۲۸/۲۵۶ بیت ثبات XMM / YMM (با AVX-512VL) و بایت، کلمه، دو کلمه، چهار کلمه و اعداد صحیح (با AVX-512BW / DQ و VBMI) پشتیبانی خواهند کرد.