كنترلر حافظه‌ي انقلابي


كنترلر حافظه‌ي انقلابي
اصلي‌ترين ويژگي و وجه تمايز معماري جديد پردازنده‌هاي گرافيكي ATI در كنترلر حافظه آن خلاصه شده است . شايد اگر بگوييم كه ATI با اين كنترلر حافظه، روش‌ «دستيابي به حافظه» را متحول نموده حرف گزافي نزده باشيم. روش‌هاي متعددي براي دستيابي به حافظه در GPU ها و CPU هاي مختلف ارائه شده اما اين بخش از پردازنده‌گرافيكي «رادئون» سري 1000هيچ شباهتي با آن‌ها ندارد. گفته مي‌شود طراحي همين كنترلر حافظه پيچيده دليل تاخير در عرضه اين پردازنده‌ها است. حال اجازه دهيد به بررسي كنترلر حافظه نوين بپردازيم.

«گذرگاه حافظه» در اغلب كارت‌گرافيك‌هاي ميان قيمت و گران قيمت امروزي داراي عرض 256 بيتي مي‌باشند به اين معني كه ميان تراشه‌هاي حافظه كارت‌گرافيك و GPU يك گذرگاه با 256 خط (سيم)، ويژه انتقال داده در نظر گرفته شده است. اين گذرگاه در جديدترين كارت گرافيك‌هاي امروزي مانند Geforce 7800GTX به 4 كانال 64 بيتي تقسيم مي‌گردد كه هر كانال توسط يك بخش مجزا از كنترلر حافظه راهبري مي‌گردد.

پياده سازي 4 كانال 64 بيتي بر روي «مدار چاپي» يا PCB چند لايه كارت‌گرافيك بسيار پيچيده و هزينه بر است علاوه بر اين در اغلب موارد كارآيي مطلوب را ارائه نمي‌نمايد چرا كه هنگام ارسال يا دريافت داده هايي با عرض كمتر از 64 بيت در يك كانال، تعدادي از خطوط آن كانال غير قابل استفاده مي‌گردد.

ATI راه حل ساده‌اي را در اين اتصالات به كار برده كه تا كنون عملي نشده بودند در اين نوآوري گذرگاه حافظه 256 بيتي به جاي 4 كانال 64 بيتي به 8 كانال 32 بيتي تقسيم شده است. اين ايده ساده موجب شده تا پهناي باند حافظه به صورت موثر‌تري به خدمت گرفته شود. در تصوير شماره (1) مي‌توانيد طرحي از 8 كانال حافظه متصل به GPU را مشاهده كنيد:


برای مشاهده این لینک/عکس می بایست عضو شوید ! برای عضویت اینجا کلیک کنید
تصوير شماره (1) : ارسال درخواست در معماري «حلقه»







يكي ديگر از ويژگي‌هاي جذاب اين كنترلر حافظه «معماري حقله» يا Ring Architecture نام دارد .

در GPU هاي امروزي براي اتصال اجزا GPU به تراشه حافظه از توپولوژي «ستاره»يا Starبا مركزيت كنترلر حافظه استفاده مي‌شود به اين معني كه هريك از بخش‌هاي GPU تمامي عمليات خواندن از حافظه محلي كارت‌گرافيك و نوشتن در آن را با واسطه‌گري مستقيم كنترلر حافظه انجام مي‌دهند. اين ساختار دستيابي به حافظه محلي در كارت‌گرافيك‌ها كه به CrossBar Memory Architecture معروف است در عمليات‌هاي پردازشي Multi Threading افت عملكرد زيادي را به دليل ناكارآمدي كنترلر حافظه مجتمع در داخل GPU و عدم بهره‌گيري موثر از پهناي باند حافظه ايجاد مي‌نمايد. به همين خاطر تعداد بخش هايGPU كه مي‌توانند به صورت همزمان با كنترلرحافظه ارتباط برقرار كنند براي حفظ حداقل كارايي محدود گشته است يا به زبان ساده‌تر GPU هاي امروزي پردازنده‌هاي Multi Thread تمام عيار به شمار نمي‌روند.

در «معماري حلقه» همانطور كه از نام آن پيداست از توپولوژي «حلقه» يا Ring با مركزيت كنترلرحافظه به جاي توپولوژي «ستاره» استفاده مي‌گردد، در اين معماري يك «گذرگاه حافظه داخلي» در GPU در نظر گرفته شده كه به صورت يك حلقه دور هسته‌ي GPU قرار گرفته كه نقش واسطه‌گري در تبادل داده‌ها بين اجزا GPU و به خارج از آن را بر عهده دارد. اين گذرگاه داخلي (كه با فركانس هسته GPU داده ها را در طول خود منتقل مي‌كند) به صورت كاملا دوطرفه طراحي شده است همچنين به بهينه‌سازي و ساده‌تر نمودن اتصالات داخل تراشه كمك كرده است، به كمك آن اجزاي مهم پردازنده هم اكنون مي‌توانند از مسير كوتاه‌تر و مطمئن‌تري با يكديگر تبادل اطلاعات نمايند . علاوه بر اين ارتباط اجزاي GPU با حافظه محلي كارت‌گرافيك نيز با زمان تاخير و نرخ سيگنال تخريب شده كمتر صورت مي‌پذيرد . به عنوان مثال در تصوير شماره (1) يكي از اجزاي GPU -كه با مربع كوچك نشان داده شده- نياز به دسترسي خواندن داده‌هاي ذخيره شده در حافظه محلي را دارد. اين بخش ابتدا درخواست خود را به كنترلرحافظه كه در مركز GPU قرار دارد، ارسال مي‌كند و كنترلر حافظه به كمك الگوريتم‌هاي آدرس‌دهي از پيش تعيين شده، پس از محاسبه و مشخص كردن آدرس دقيق داده‌هاي خواستي و اولويت دهي به درخواست‌هاي حياتي، مستقيما با تراشه(ها)يي كه اين داده‌ها در آن ذخيره شده‌اند ارتباط بر قرار كرده و دستور ارسال اين داده‌ها را از تراشه(ها)ي مربوطه صادر مي‌كند. تا اين مرحله الگوريتم دستيابي به حافظه مشابه كنترلرهاي حافظه CrossBar امروزي مي‌باشد اما مراحل بعدي دستيابي منحصر به معماري «حلقه» شركتATI است كه در تصوير شماره (2) نشان داده شده است.



برای مشاهده این لینک/عکس می بایست عضو شوید ! برای عضویت اینجا کلیک کنید
تصوير شماره 2 : ارسال داده ها در معماري «حلقه»





پس از اينكه داده‌ها از تراشه حافظه خوانده و به درگاه كانال حافظه ارسال گرديد، محاسباتي براي تخمين زدن نزديك ترين مسير بين درگاه كانال حافظه فعلي و بخش درخواست كننده داده‌ها در GPU -همان مربع كوچك- صورت مي‌پذيرد و سر انجام بخشي از «حلقه» با پهناي باند وسيع خود داده ها را به مقصد مي‌رسانند.

بنابر اين بر خلاف كنترلرهاي حافظه CrossBar كه در آن كنترلر حافظه هم درخواست‌ها و هم داده‌ها را ميان درخواست كننده و تراشه حافظه ردوبدل مي‌كرد ، اين كنترلر حافظه جديد فقط دستورات را ردو بدل مي‌كند و داده ها از مسير ديگري جريان مي‌يابند.

با كنترلر حافظه مبتني بر معماري «حلقه» محدوديت پردازش هاي Multi-Thread ديگر مطرح نمي‌گردند چرا كه Radeon X1800 مي‌تواند حداكثر تا 512 Thread و ضعيف ترين عضو اين خانواده حداكثر تا 128 Thread را به صورت همزمان پردازش نمايند .

«حلقه» هاي بكاربرده شده در اعضاي اين خانواده با همديگر متفاوت مي‌باشد . R520 داراي دو حلقه 256 بيتي كه در خلاف جهت همديگر انتقال اطلاعات مي‌كنند، مي‌باشد و RV530 از دو حلقه 128 بيتي بهره مي‌برد و در پردازنده گرافيكي RV515 معماري «حلقه» پياده‌سازي نشده‌ است اما از توابع قابل برنامه‌ريزي حافظه بهره مي‌برد كه تكنيك‌هاي ديگري را جهت افزايش پهناي باند موثر حافظه ارائه مي‌كنند.

ويژگي ديگر كنترلر حافظه به كار گرفته شده در GPU هاي «رادئون» سري 1000 ، قابليت برنامه ريزي مجدد آن توسط «راه‌انداز» يا Driver كارت‌گرافيك است. به كمك اين ويژگي مي‌توان پردازنده گرافيكي را براي كاربردهاي خاص بهينه سازي نمود، علاوه بر اين تدابير لازمه براي پشتيباني از حافظه GDDR4 (نسل آينده حافظه‌هاي گرافيكي) نيز در كنترلر حافظه جديد گنجانده شده است.


شاد باشيد :83:
منبع سخت افزار