متن اصلی

AMD-Polaris-GPU-Architecture

در ماه دسامبر سال گذشته بود که Radeon Technologies Group یا به اختصار گروه RTG به آهستگی برنامه های خود را در رابطه با تراشه جدید کمپانی AMD بر اساس فناوری ساخت نوین FinFET در اختیار رسانه ها قرار داد. تراشه گرافیکی مورد نظر که با اسم رمز Polaris شناخته می شود، در حقیقت بخشی از برنامه گسترده تر جهت توسعه معماری گرافیکی محصولات آینده کمپانی می باشد. AMD با طراحی Polaris در واقع بازار محصولات رده میانی را هدف قرار داده است، که در کنار آن به بخش راندمان انرژی مصرفی، توسعه فناوری HDR در نمایشگر ها و در نهایت افزایش عملکرد کلی تراشه گرافیکی نیز نیم نگاهی داشته است. در حال حاضر بعد از گذشت نزدیک به 9 ماه نتایج تلاش مهندسان RTG را در قالب کارت گرافیک جدید Radeon RX 480 شاهد هستیم که با قیمت تمام شده مناسب و عملکرد قابل قبول خود به گزینه ای ایده آل برای بازار میان رده و کاربران علاقه‌مند به بازی های کامپیوتری در وضوح تصویر 1080p تبدیل شده است. تراشه گرافیکی جدید AMD دارای دو مدل یا رویژن متفاوت با نام های Polaris 10 و Polaris 11 می باشد، که تراشه اصلی Polaris 10 قدرت پردازشی کارت های گرافیک Radeon RX 470 و Radeon RX 480 را فراهم می کند و در کنار آن نیز Polaris 11 به محصولات پایین رده نظیر Radeon RX 460 اختصاص داده شده است.

AMD Radeon RX 480

همانطور که گفته شد Polaris 10 اولین و اصلی ترین تراشه گرافیکی کمپانی AMD می باشد که بر اساس فناوری ساخت نوین 14nm FinFET پی ریزی شده است. در مجموع تعداد ترانزیستورهای Polaris 10 به رقم 5.7 میلیارد می رسد که در تراشه ای به ابعاد 232mm2 از طریق فناوری ساخت 14nm FinFET شرکت GlobalFoundries گنجانده شده است. برخلاف تمام انتظارات AMD امسال تغییرات زیادی را در برنامه های آینده تولید محصولات خود ایجاد کرده است، که قطع همکاری با شرکت TSMC و شروع رابطه کاری با GlobalFoundries از جمله این تمهیدات می باشد. AMD بعد از گذشت قریب به اتفاق 13 سال از توسعه محصولات با فناوری ساخت مشابه با کمپانی انویدیا، برخلاف پیش بینی ها طی سال گذشته همکاری خود را با شرکت GlobalFoundries آغاز کرده است و این در حالی است که انویدیا محصولات نسل جدید خود را بر پایه فناوری ساخت 16nm FinFET شرکت TSMC تولید می کند. برای توسعه بهتر تراشه های گرافیکی در مرحله اول معماری و شالوده اصلی آن ها مهم خواهد بود، اما در کنار این فناوری ساخت نیز نقش بسیار مهمی را در افزایش عملکرد تراشه های گرافیکی ایفا می کند، به بیان ساده تر می‌توان گفت که کمپانی های NVIDIA و AMD با استفاده از لیتوگرافی یا فناوری ساخت بهتر قادر خواهند بود تا از تعداد بیشتری از ترانزیستور ها در اندازه ای کوچکتر و همچنین انرژی مصرفی کمتر در سطح تراشه ها استفاده کنند. مصرف انرژی کمتر ترانزیستورها به علت بهینه سازی آن ها در حقیقت به معنای توانایی بهتر تراشه گرافیکی جهت دریافت فرکانس کاری بیشتر می باشد. در نتیجه گسترش چگالی ترانزیستورها همراه با افزایش فرکانس، صرف نظر از هر نوع معماری، تاثیر شگرفی در عملکرد نهایی تراشه های گرافیکی خواهد گذاشت. NVIDIA و AMD به خوبی از این مسئله آگاه هستند و تمام تلاش خود را برای توسعه لیتوگرافی تراشه های گرافیکی به واسطه همکاری با شرکت های فعال در زمینه نیمه هادی نظیر TSMC ،Samsung و GlobalFoundries به کار می گیرند.

AMD Polaris 10 GPU at a Glance

همانطور که اشاره کردیم Polaris 10 تراشه ای اصلی و کامل می باشد که تعداد 36 واحد پردازشی و محاسباتی (Compute Units یا به اختصار CU) را در خود جای داده است. این تعداد واحد محاسباتی در حقیقت Polaris 10 را از نظر تعداد پردازنده جریانی (Stream Processors یا به اختصار SP) بین محصولات Radeon R9 390 با تراشه Hawaii و Radeon R9 285 با تراشه Tonga قرار خواهد داد. کمپانی AMD معماری اصلی تراشه های گرافیکی خود را که با عنوان Graphics Core Next (GCN) شناخته می شود، ارتقاء داده و به کمک گروه RTG نسل چهارم این معماری (GCN 4.0) را همراه با تراشه Polaris 10 معرفی کرده است. مهندسان Radeon Technologies Group به کمک لیتوگرافی 14nm FinFET موفق شده اند تا تعداد واحدهای CU را در تراشه Polaris 10 گسترش دهند. (مشابه با افزایش تعداد واحد های SM در معماری پاسکال انویدیا)، هر یک از واحد های محاسباتی در معماری تراشه های گرافیکی کمپانی AMD دارای 64 پردازنده جریانی (SP) هستند، که برای تراشه Polaris 10 تعداد 2304 پردازنده جریانی را در مجموع فراهم می کنند.

AMD-Polaris-FinFET

با کاهش اندازه ترانزیستورها در مقیاس نانومتر کمتر، مقاومت و آستانه تحمل آن ها در برابر ولتاژ نیز کاهش می یابد، در نتیجه شرکت ها برای کاشت ترانزیستورها باید از روش های پیشرفته تری استفاده کنند. فناوری ساخت FinFET به شرکت هایی مانند TSMC و GlobalFoundries این امکان را می دهد تا به جای استفاده از طراحی سطحی (Palanar) از شیوه ترانزیستورهای سه بعدی (3D) یا نامسطح (Nonplanar) بهره ببرند، تا مقاوت و فرکانس پذیری ترانزیستورها را افزایش دهند. AMD از این ویژگی مثبت فرکانس پذیری نودهای 14nm FinFET استفاده کرده است و برای فرکانس پایه تراشه گرافیکی Polaris 10 رقم 1120MHz را در نظر گرفته است، که این فرکانس در حالت Boost به 1266MHz خواهد رسید. مجموعه تمام این منابع پردازشی همراه با فرکانس نهایی برای کارت گرافیک Radeon RX 480 پتانسیل پردازشی برابر با 5.8 ترافلاپس را در بخش پردازش های 32 بیتی یا Single-Precision فراهم خواهد کرد.

AMD Polaris Architecture

ساختار داخلی به ویژه اجزای کلیدی تشکیل دهنده واحد های پردازشی در معماری جدید GCN 4.0 چندان تغییری نکرده است و همانطور که گفته شد طبق نسل های گذشته هر Compute Unit به طور کلی دارای 64 پردازنده جریانی می باشد. وجود 36 واحد محاسباتی تعداد 144 واحد بافت نگاری یا پردازش بافت (TMU) را نیز برای تراشه Polaris 10 فراهم خواهد کرد، به عبارت دیگر هر Compute Unit دارای 4 واحد پردازش بافت می باشد. علاوه بر این موارد تراشه Polaris 10 برای ارتباط مناسب با سیستم کش و حافظه در کارت گرافیک Radeon RX 480 از 32 واحد پردازشگر پیکسل یا ROP استفاده می کند. تعداد ROP به نسبت تراشه گرافیکی Hawaii با مجموع 64 واحد پردازشگر پیکسل تا نصف کاهش داده شده است، پتانسیل عملکردی تراشه های گرافیکی در هر معماری جدید، رابطه مستقیم یا وابستگی چندان زیادی به تعداد واحدهای پردازشگر پیکسل ندارد، اما در کنار آن CU ها از اهمیت فوق العاده زیادی برخوردار هستند. گذشته از تمام این مسائل Polaris 10 تراشه ای میان رده محسوب می شود و با منابع پردازشی کمتری که نسبت به تراشه پرچمدار Hawaii همراه است، نیاز چندانی هم به تعداد ROP بالاتر نخواهد داشت. 32 واحد پردازشگر پیکسل در مقابل 2MB کش سطح L2 قرار گرفته اند که این میزان از L2 Cache در مقایسه با نسل گذشته به نسبت هر ROP تقریبا دو برابر افزایش یافته است. توسعه L2 Cache در طراحی Polaris 10 باعث گسترش عملکرد کلی و همچنین کاهش انرژی مصرفی به دلیل تقسیم بندی و ذخیره مناسب اطلاعات در سطح تراشه گرافیکی خواهد شد.

AMD polaris-10 Block Diagram

با مشاهده نمودار شبیه سازی شده تراشه Polaris 10 متوجه می شوید، که L2 Cache سطح زیادی از تراشه را به خود اختصاص داده است. افزایش L2 Cache نیاز به سطح مقطع بیشتری خواهد داشت که خوشبختانه لیتوگرافی 14nm FinFET اینجا به کمک AMD آمده است. در مبحث خارج از تراشه گرافیکی به سراغ بخش حافظه اصلی می رویم، جایی که AMD برای کارت گرافیک Radeon RX 480 طبق معمول محصولات میان رده کمپانی از رابط حافظه 256 بیتی و ماژول های GDDR5 استفاده کرده است. Radeon RX 480 در دو مدل با حافظه اصلی متفاوت عرضه شده است که بسته به نوع کارت گرافیک با ماژول های 4GB و 8GB به رابط حافظه متصل خواهند شد. AMD برای افزایش عملکرد کلی نسخه 8 گیگابایتی Radeon RX 480 از حافظه های GDDR5 ویژه ای استفاده کرده است که پهنای باند آن ها نسبت به ماژول های حافظه در مدل های 4GB بیشتر خواهد بود. پهنای باند نهایی در نسخه 8GB کارت گرافیک RX 480 به رقم 256GB/s می رسد که این مقدار در مدل های 4GB به دلیل استفاده از ماژول های 7Gbps GDDR5 به جای 8Gbps GDDR5 به رقم 224GB/s کاهش یافته است. یکی از اهداف اصلی AMD با معرفی Polaris توسعه راندمان انرژی می باشد به طوریکه در اکثر کنفراس های خبری خود در سال گذشته به این ویژگی مثبت در محصولات آینده بر پایه تراشه پولاریس تاکید کرده است. AMD میزان TDP یا توان طراحی حرارتی را برای کارت گرافیک Radeon RX 480 رقم 150W اعلام کرده است، این میزان در واقع بیانگر کاهش 20 درصدی انرژی مصرفی نسبت به کارت گرافیک Radeon R9 380 و همچنین کاهش %45 در مقایسه با محصول همرده Radeon R9 390 می باشد. بهینه سازی انرژی مصرفی در Polaris 10 سرانجام به کاهش اتصال دهنده های تامین توان PCI-E در کارت گرافیک RX 480 به یک عدد شده است. طراحی Radeon RX 480 با یک اتصال دهنده 6 پین PCI-E باعث می شود تا این محصول در سبد خرید طیف گسترده ای از کاربران و علاقه‌مندان به بازی های کامپیوتری قرار بگیرد.

AMD polaris-compute units

AMD در کنفراس خبری مربوط به معرفی کارت گرافیک RX 480 به صورت اجمالی تغییرات ایجاد شده در معماری و همچنین سایر بخش های تراشه گرافیکی را در اختیار رسانه ها قرار داده بود که در ادامه به صورت خلاصه به آن ها نگاهی خواهیم داشت. تراشه Polaris نسبت به طراحی نسل های گذشته AMD محصولی کاملا جدید محسوب نمی شود، AMD با Polaris در صدد رسیدن به نقطه ای از عملکرد مناسب برای گیمر ها و همچنین در کنار آن کنترل و کاهش قابل توجه انرژی مصرفی بوده است، به بیان ساده تر Polaris ترکیبی از معماری قدیم و جدید AMD می باشد که بر روی راندمان انرژی تاکید بسیار زیادی داشته است. در بخش مرکزی همانطور که اشاره شد Polaris براساس نسل چهارم معماری GCN طراحی شده است. GCN 4.0 در مقایسه با معماری نسل گذشته GCN 1.2 (ساختار تراشه های Tonga و Fiji) چندان تفاوت زیادی نکرده است، در واقع می‌توان گفت که مجموعه دستورالعمل معماری در GCN 4.0 مشابه با GCN 1.2 می باشد، بنابراین معماری تراشه گرافیکی Polaris نمونه ای کاملا جدید و از شالوده تغییر کرده نمی باشد. AMD تصمیم گرفته است تا به جای تغییر زیربنای کلی معماری GCN، بخش سطح پایین و ریز معماری را بهبود دهد تا با صرف کمترین هزینه و نیروی کاری به نتیجه دلخواه برسد.

AMD Polaris Improved Shader

طبق گفته AMD در معماری GCN 4.0 بخش پردازنده های جریانی یا به اصطلاح شیدر های مرکزی نسبت به معماری GCN 1.1 (کارت گرافیک R9 290X) تا 15 درصد بهبود یافته اند. این تغییر از طریق توسعه بخش پیش واکشی دستورالعمل و استفاده از یک بافر دستورالعمل بزرگتر حاصل شده است. GCN 4.0 با کمک درایور می‌تواند پیش واکشی دستورالعمل های آینده را انجام دهد، مسئله ای که در معماری های نسل گذشه GCN امکان پذیر نبوده است. این مزیت باعث کاهش و محدود سازی نیاز به انتظار صف اطلاعات خواهد شد، در نتیجه واحد های محاسباتی (CU) به طور منظم اطلاعات را برای پردازش دریافت می کنند و در بیشتر مواقع فعال خواهند بود. در کنار این بخش بافر دستورالعمل نیز از 12DWORD به 16DWORD افزایش یافته است، که اجازه می دهد تا عملکرد پردازشی بخش تک رشته ای (Single-Thread) تراشه گرافیکی گسترش یابد. خارج از مبحث پردازنده های جریانی و واحد های محاسباتی بخش Front End تراشه Polaris نیز پیشرفت هایی را همراه خود داشته است.

AMD Polaris Enhanced Geometry

ضعف محصولات AMD در مبحث Tessellation مسئله چندان جدیدی نیست، در حالی که کمپانی رقیب از ابتدای ورود رابط برنامه نویسی DirectX 11 و Tessellation توانسته بود تا به خوبی عملکرد محصولات خود را تثبیت کند، این تراشه های گرافیکی کمپانی AMD بودند که در پردازش این بخش محدودیت های را همراه خود داشته اند. خوشبختانه AMD طی سال هایی که از معرفی معماری GCN گذشته است، تغییرات و تمهیدات زیادی را برای توسعه بخش Tessellation تدارک دیده است. مهم ترین اقدامات AMD برای توسعه Tessellation را می‌توان در معماری GCN 1.2 جستجو کرد، پس از آن نیز AMD با معرفی تراشه پولاریس و معماری GCN 4.0 تغییرات بنیادین زیادی را برای بهبود Tessellation و قسمت Geometry محصولات خود فراهم کرده است. معماری GCN 4.0 از ویژگی منحصر به فردی تحت عنوان Primative Discard Accelerator استفاده می کند. این ویژگی از پردازش ابعاد چند ضلعی که برای استفاده در بافت های گرافیکی بسیار کوچک هستند جلوگیری می کند و در نهایت نیز باعث پردازش بهتر داده های خروجی می شود. PDA به تراشه Polaris این امکان را می دهد تا بدون کوچکترین تغییری در کیفیت تصویر و جلوه های بصری از هدر دادن پتانسیل پردازشی خود برای رندر چند ضلعی های بی استفاده جلوگیری کند.

Polaris Delta Color Compression

علاوه بر این موارد AMD از سیستم کش شاخص (Index Cache) جدیدی استفاده کرده است تا بخش ژئومتری (پردازش هندسی) پولاریس را نیز جهت توسعه عملکرد Tessellation گسترش دهد. در پایان به قسمت حافظه، کش سطح دوم و واحد های پردازش پیکسل (ROP) در تراشه Polaris می رسیم که هر کدام به نسبت خود در معماری جدید ارتقاء یافته اند که در رأس تمام این ها اختلاف یا دلتا فشرده سازی رنگ ها قرار می گیرد. AMD در تراشه Polaris تکنولوژی جدیدی از فشرده سازی رنگ ها را به کار برده است که به واسطه تطبیق الگو های رنگی باعث کاهش سایز و حجم تصاویر متحرک در هر فریم جهت عبور از حافظه اصلی می شود و در نهایت نیز اشغال پهنای باند و مصرف کلی کارت گرافیک را کاهش خواهد داد.