هم اینتل و هم ای ام دی در سال 2011 پردازنده های خود را با معماری تازه ای می سازند. در این مقاله تفاوت و اشتراک های Bulldozer محصول ای ام دی و Sandy Bridge ساخت اینتل را می بینند. ای ام دی یک پردازنده چند هسته ای ویژه و اینتل یک گذرگاه Ring عرضه کرده اند.

سال 2011 سال جالبی خواهد بود چون اینتل و ای ام دی یعنی دو سازنده اصلی پردازنده های x86 معماری های نوینی ارائه کرده اند. Sandy Bridge نخستین پردازنده اینتل برای تولید انبوه است که یک موتور گرافیکی با آن یکپارچه شد و ای ام دی با Bulldozer رسم کنار هم بودن واحدهای پردازش عدد صحیح و اعداد ممیزدار روی یک هسته که از پردازنده های 486 باب شده را شکسته.

اینتل نخستین جزئیات از Sandy Bridge را حدود 5 ماه پیش روی Intel Developer Forum منتشر کرد. این پردازنده که با 2 و 4 هسته و همراه با موتور گرافیکی برای استفاده در کامپیوترهای همراه و رومیزی ساخته می شود از آغاز سال 2011 به بازار می آید. Sandy Bridge از یک معماری ماجولار بهره می برد و بر پایه این معماری پردازنده هایی برای کامپیوترهای سرویس دهنده و ایستگاه های کاری قدرتمند نیز ساخته خواهد شد.

به این ترتیب، Sandy Bridge و دیگر اعضای این خانواده یکی از خط های اصلی اینتل برای حرکت در آینده خواهد بود. مسیر حرکت دیگر برای اینتل، خانواده Atom است. در این میان اگر چه هنوز پردازنده اینتانیوم وجود دارد اما می توان پیش بینی کرد که عمر آن به سر آمده و دیگر ساخته نخواهد شد.

در مقابل ، ای ام دی به دنبال ساخت پردازنده های ویژه است. Bulldozer پردازنده ای است که در ادامه راه Opteron برای کامپیوترهای سرویس دهنده و ایستگاه های کاری ساخته شده. برای کامپیوترهای همراه و رومیزی هم پردازنده Llano در نظر گرفته شده که یک پردازشگر گرافیکی با آن یکپارچه شده و با فناوری 32 نانومتری ساخته می شود. البته ای ام دی هسته این پردازنده را همچنان بر پایه معماری K10 می سازد. Bobcat هم پردازنده ای است که ای ام دی برای رقابت با Atom های اینتل می سازد. این پردازنده کم مصرف با دو هسته و یک موتور گرافیکی Radeon سریعتر، ساخته می شود.

چهارراه
اینتل از سال 2007 در ساخت پردازنده های تازه از راهبرد Tick-Tock استفاده می کند که در آن از شیوه های نوین ساخت با اجزای فشرده تر و یک معماری تازه استفاده می شود. Core-i7 یا همان Nehalem که در سال 2008 و با فناوری 45 نانومتری ساخته شد در سال گذشته با فناوری 32 نانومتری اما با یک معماری نوین ساخته شده و بزرگترین نوآوری آن وجود یک پردازشگر گرافیکی درون آن است. عضو پیشین خانواده پردازنده های اینتل یعنی Westmere از دو تراشه تشکیل شده بود که با QPI به هم وصل شده اند. یک هسته 32 نانومتری و یک تراشه 45 نانومتری که کنترل کننده حافظه و پردازشگر گرافیکی را در خود دارد.

اما در Sandy Bridge هر دو هسته و پردازشگر گرافیکی رو یک تراشه هستند و همگی از یک Last Level Cache مشترک استفاده می کنند. در این تراشه، کنترل کننده حافظه بخشی از System Agents است. ارتباط میان هسته ها که شمار آن ها به 4 نیز می رسد و ارتباط LLC و System Agents را گذرگاهی برقرار می کند که از چهار حلقه (Request,Snoop,Acknowledge,Data) تشکیل شده و به صورت کاملاً PipeLine و با بسامد هسته کار می کند. در این گذرگاه حلقوی یا Ring Bus برخلاف معماری Crossbar تعییر در طراحی(برای نمونه اضافه کردن یک هسته تازه) ساده تر است. البته اینتل Ring Bus را پیش از این در پردازنده های Nehalem-EX و ارتباط Westmere-EX و همچنین در تراشه گرافیکی Lattabee به کار برده بود که البته به تولید انبوه نرسیدند. در پردازنده های Cell نیز بخش های درونی با Ring Bus به هم متصل هستند.

 Last Level Cache که از نگاه هسته پردازنده همان Cache سطح سوم است در Sandy Bridge بسته به گونه آن تا 8 مگابایت گنجایش دارد. این Cache برخلاف Nehalem و Westmere یا همان بسامد هسته کار می کند. اگرچه هر یک از Segmentهای LLC به یک هسته منتسب شده است اما همه هسته ها و پردازشگر گرافیکی می توانند به همه فضای آن دسترسی داشته باشند. مهندسین اینتل توانسته اند که به کمک Segment بندی کردن LLC زمان درنگ (Latency Time) آن را به 26 تا 31 تپش کاهش دهند در حالیکه در Nehalem این زمان 35 تا 40 تپش است. Cache سطح دوم مانند پردازنده های پیشین 256 کیلوبایت گنجایش دارد و Cache سطح یکم نیز 32 کیلوبایت برای داده و 32 کیلوبایت برای دستورالعمل ها فضا دارد.

 

Cache هوشمندتر و Advanced Vector Extensions
گذرگاه حلقوی اگرچه انعطاف بیشتری برای اینتل به همراه دارد اما لزوماً باعث افزایش سرعت پردازنده ها نمی شود. افزایش سرعت در Sandy Bridge به دلیل برخی ویژگی های دیگر در معماری آن است. یکی از این نوآوری های μOP-Cache است. از زمان پنتیوم پرو تاکنون همه پردازنده های P6 اینتل در درون خود دستورالعمل های پیچیده IA-32 را اجرا نمی کنند. بلکه تنها Micro Operation یا μOPهای ساده را میان واحدهای پردازشگر پخش کرده و این ریزدستورالعمل ها در آنجا خارج از ترتیب اجرا می شوند(Out of Order Execution)، مشکل این روش در رمزگشایی دستورالعمل ها با سرعت زیاد است تا Pipeline پردازنده همواره پر باشد.

این کار در پردازنده های امروزی نیز کار ساده ای نیست. از همین رو، اینتل در Sandy Bridge یک Cache ویژه برای μOPها در نظر گرفته. بر پایه اعلام اینتل ضریب اصابت در این Cache حدود 80 درصد است که البته در بهبود کارکرد پیش بینی انشعاب (Branch Prediction) نیز تاثیر زیادی دارد.

μOP-Cache ما را بسرعت به یاد Trace Cache در پنتیوم 4 می اندازد که آن هم به عنوان حافظه میانی برای نگهداری μOPهای رمزگذاری شده به کار می رفت. اما در معماری NetBurst، Cahce دستورالعملها در سطح یکم جای Trace Cache را گرفت. به این ترتیب در صورت عدم اصابت به Cache ، Frontend بایستی دوباره دستورالعمل های IA32 را رمزگشایی می کرد. همین نکته باعث پائین آمدن بازدهی پنتیوم 4 بود.

اما Sandy Bridge یک Frontend قدرتمند و یک μOP-Cache دارد که از برتری های معماری های P6 و NetBurts هم بهره می برد.

یکی دیگر از نوآوزی های موثر در افزایش سرعت Advanced Vector Extension Sandy است که پهنای ثبات های Vector را از 128 به 256 بیت افزایش می دهد. البته پردازنده های AVX همچنان با مجموعه دستورالعمل های پیشین مانند SSE4 سازگار خواهند ماند. Sandy Bridge می تواند تقریباً همه دستورالعمل های 256 بینی AVX را در یک μOP رمزگذاری و اجرا کند. این ویژگی باعث می شود در برنامه هایی که به طور مناسب ساخته شده اند سرعت اجرا تا حدود دو برابر افزایش یابد.

برای تغذیه واحدهای محاسباتی مهندسین اینتل باید سیستم حافظه را بهبود می بخشیدند. Sandy Bridge مانند Nehalem و Westmere سه Load-Store Port دارد که البته دوتای آن ها به صورت Symmetric کار می کنند. به این ترتیب واحد حافظه می تواند در هر تپش به جای دوبار، سه بار به حافظه دسترسی داشته باشد. مانند Westmere دسترسی به حافظه اصلی از طریق یک کنترل کننده DDR3 با دو کانال حافظه انجام می گیرد.

 

توربو و پس سور
اینتل نگارش تصحیح شده ای از فناوری Turbo Boost را برای بالا بردن بسامد تک تک هسته ها به Sandy Bridge اضافه کرده. اکنون GPU نیز با همان بسامد پردازنده کار می کند.

پردازنده Arrendale که گونه ای از Westmere برای کامپیوترهای همراه است اگرچه فناوری Turbo را برای پردازشگر گرافیکی به کار می برد اما GPU و CPU به طور فیزیکی از هم جدا هستند.

Sandy Bridge در افزایش بسامد هر یک از هسته ها در مقایسه به پردازنده های پیشین تواناتر است و اینتل کنترل خوبی روی این پردازنده ساخته شده با فناوری 32 نانومتری دارد. Turbo Boost پیش از این برای افزایش سرعت اجرای برنامه های Single-Thread به کار می رفت در حالیکه این فناوری در Sandy Bridge سرعت اجرای برنامه های Multi-Thread را هم بخوبی بالا می برد.

 با این کار دمای پردازنده از میزان طراحی شده حدود 25 درصد بالاتر می رود.

Brute Force به جای Hyperthreading
Sandy Bridge نیز مانند پردازنده های پیش از خود یعنی Nehalem و Westmere از فناوری Hyperthreading برای افزایش توان پردازش استفاده می کند. پردازنده Atom هم به گونه ای است که سیستم عامل آن را در قالب دو هسته مستقل می بیند و threadها را میان هسته ها توزیع می کند. این روش که در اصل برای پردازنده پنتیوم 4 طراحی شده بود با کمی سخت افزار اضافی مراقب است تا هسته ها بیکار نبوده و همواره کاری برای انجام دادن داشته باشند. میزان افزایش سرعت با این روش در مقایسه با پردازنده ای که از Hyperthreading استفاده نمی کند بسته به نوع برنامه حدود 20 تا 50 درصد است. ای ام دی با Bulldozer برای افزایش توان پردازش راه دیگری را پیش گرفته. ای ام دی در این پردازنده ها هر دو واحد پردازش عدد صحیح را به یک واحد پردازش اعداد ممیز شناور وصل کرده. Frontend و Cache سطح دوم در این پردازنده از هر دو واحد عدد صحیح و واحد ممیز شناور استفاده می کنند. از آنجا که با اینکار مفهوم سنتی هسته از بین می رود، ای ام دی این مجموعه را در درون پردازنده Module می نامد. اما هنگامی که از ارتباط با محیط بیرون صحبت می شود دوباره همان هسته به میان می آید. در اینجا ای ام دی واحدهای پردازش عدد صحیح را هسته تلقی می کند زیرا نسل بعدی پردازنده های Opteron با نام Interlagos که هشت Module دارد به عنوان یک پردازنده 16 هسته ای معرفی می شود. Opteronهای Valencia و Zambezi چهار Module یا هشت هسته دارند. از آنجا که ای ام دی حداکثر هر چهار Module را روی یک Die قرار می دهد، Interlagos دو Die دارد که در بدنه پردازنده جای گرفته اند.

Bulldozer هم مانند Sandy Bridge یک Cache سطح دوم دارد که بیرون از Module است. ای ام دی هنوز جزئیاتی درباره گنجایش Cacheهای Bulldozer ارائه نکرده و تنها چیزی که می دانیم این است که Cache دستورالعمل ها در سطح یکم با گنجایش 64 کیلوبایت به طور مشترک از سوی هر دو واحد محاسبات عدد صحیح در Module به کار می رود و در هر Module یک Cache اختصاصی 16 کیلوبایتی برای Cache داده ها در سطح یکم وجود دارد.

می توان انتظار داشت که Cache سطح دوم در Bulldozer در مقایسه با Sandy Bridge گنجایش بیشتری داشته باشد چون باید دو واحد عدد صحیح و یک واحد عدد ممیزدار را تغذیه کند.

تکامل به جای انقلاب
اگر چه شکستن هسته پردازنده و تقسیم آن در نگاه نخست یک انقلاب و دگرگونی بزرگ به نظر می رسد اما خود ای ام دی آن را یکی از گام ها و مراحل تکامل می دادند. تا پیش از این واحدهای پردازشگر اعداد صحیح و اعداد ممیز شناور در پردازنده های ای ام دی با ثبات های مربوطه و Scheduler واحدهای جدایی بودند. اما در Bulldozer ، Moduleها با یک Crossbar به هم وصل هستند و Cache دستورالعمل ها در سطح یکم فرمان های IA32 را رمزگشایی می کند. Bulldozer از AVX نیز پشتیبانی می کند. البته ای ام دی در ساخت این پردازنده در مقایسه با اینتل راه دیگری را پیش گرفته. از آنجا که Bulldozer ثبات های 256 بیتی ندارد دستورالعمل های 256 بیتی به دو عملیات 128 بیتی تقسیم می شوند. از همن رو توان پردازش Bulldozer در اجرای برنامه های AVX در مقایسه با Sandy Bridge اندکی کمتر است. ای ام دی روشی مانند Turbo Boost اینتل را با نام Turbo Core همراه با پردازنده های Phenom II x6 معرفی کرد که البته کمی ساده تر است. این روش بجای تک تک هسته ها یکباره بسامد سه هسته را افزایش داده وهمزمان بسامد سه هسته دیگر را تا 800 مگاهرتز پائین می آورد تا مصرف انرژی پائین بیاید. ای ام دی وعده داده که Turbo Core در Bulldozer پیشرفت کرده اما هنوز جزئیاتی از آن اعلام نشده.

اگر چه تحولات معماری در Bulldozer مانند Sandy Bridge نیست اما در آن فناوری ساخت 32 نانومتری به جای 45 نانومتری به کار گرفته می شود. اگر Bulldozer با فناوری 45 نانومتری ساخته می شد پردازنده ای بزرگ و پرمصرف می بود در حالیکه Bulldozer 32 نانومتری به کمک یک Power Management مصرف انرژی را در این پردازنده هشت هسته ای کاهش می دهد. ای ام دی وارد بازی ای شده که ممکن است ریسک داشته باشد در حالیکه اینتل با سیاست Tick-Tack از چنین ریسک هایی جلوگیری می کند.