علت عدم رشد و افزایش فرکانس پردازنده ها چیست؟
علت عدم افزایش فرکانس پردازندهها
همه ما شاهد پیشرفت سریع فرکانس پردازنده ها در دهههای گذشته و ابتدای این قرن بودهایم. ده مگاهرتز تبدیل به صدها مگاهرتز و سپس صدها مگاهرتز نیز تبدیل به سرعت یک گیگاهرتز شد. در حال حاضر نیز حتی فرکانسهای پایه با سرعت پنج گیگاهرتز نیز وجود دارد.
با این حال در چندین سال گذشته، شاهد کاهش رشد فرکانس هسته اصلی پردازندهها بودهایم. دسترسی به سرعت 10 گیگاهرتز هم اکنون نیز به اندازه 5 سال پیش سخت و مشکل است. چرا این روند رو به کاهش است؟ چه مانعی برای توقف رشد و افزایش فرکانسها وجود دارد؟
گیگاهرتز “داغ”
در بین متخصصان یک نظریه وجود دارد که افزایش رشد فرکانس ، منجر به انتشار گرما در ابعاد قابل توجهی میشود. در واقع افراد عادی فکر میکنند که میزان فرکانس با “یک سوئیچ” تغییر کرده و به دلخواه آنها کار میکند و افزایش مییابد. اما نگرانیهای شدیدی هم وجود دارد که افزایش فرکانس ، باعث افزایش دمای پردازنده شده و امکان ذوب فیزیکی واقعی آن وجود دارد. البته توجه داشته باشید که بسیاری از تولیدکنندههای پردازنده را طوری میسازند که امکان وقوع این اتفاق نیست، چرا که پردازنده دارای مانیتور دمای داخلی بوده و قبل از بروز هرگونه خرابی فاجعه باری میتواند به طور خودکار CPU را خاموش کند.
این نظر توسط کاربران ارائه شده و حتی در فرآیندهای اورکلاک نیز ثابت شده است؛ زیرا در اورکلاک افراد سرعت پردازنده ها را دو برابر بیشتر کرده و در راستای آن نیز متوجه شدهاند که باید تا حد امکان سیستم خنک کننده قدرتمندی را به آن متصل کنند.
البته “سوئیچ” گفته شده در قسمت قبل نیز حائز اهمیت بوده و در انتشار گرما تاثیر دارد، اما اینها فقط بخشی از نبرد بشر برای توسعه و افزایش فرکانس میباشد.
علت و ترمز اصلی
پردازنده ها با طراحیهای مختلفی که دارند، مشکلات متنوعی را نیز حین فرآیند اورکلاک به وجود میآورند. در این مقاله ما در نظر داریم تا محبوب ترین نوع معماری پردازنده در بین محصولات اینتل، یعنی معماری سوپراسکالر (superscalar) را بررسی کنیم.
برای رسیدگی به مشکلات مربوط به فرکانس ها، مهم است که در مرحله بدانیم چه چیزی مانع از رشد آنها میشود. با توجه به تحقیقات و بررسیهای انجام شده روی معماری پردازنده ها، متوجه شدهایم انواع مختلفی از پارامترها وجود دارند که باعث محدود شدن این رشد و توسعه شدهاند. با این حال نتیجه این است که تنها یک محدودیت یا ترمز اصلی وجود دارد که باید برای افزایش فرکانس پردازنده ها حذف شود.
نقاله (conveyor)
بررسی های انجام شده نشان داد که محدودیت اصلی در سطح نقاله که بخش جدایی ناپذیر معماری سوپراسکالر است، میباشد. از لحاظ عملکردی اجرای هر دستورالعمل پردازنده، به چندین مرحله تقسیم میشود که در نمودار زیر نشان داده شده است.
این مراحل به ترتیب پشت سر هم قرار گرفته و هر یک از آنها، در یک دستگاه محاسباتی جداگانه اجرا میشوند.
هنگامیکه اجرای یک مرحله خاص به پایان رسید، میتوان از دستگاه محاسباتی برای اجرای دستورالعمل دیگر استفاده کرد.
همانطور که در نمودار بالا مشاهده میکنید اولین دستگاه محاسباتی، مرحله اول از اولین دستورالعمل را در دوره زمانی t1 اجرا میکند. با شروع دوره t2مرحله اول به پایان رسیده و مرحله دوم میتواند در دستگاه دوم آغاز شود. در این لحظه اولین دستگاه آزاد شده و آماده شروع مرحله اول دستورالعمل بعدی است. در طول دوره t4 میتوان مراحل مختلف چهار دستورالعمل را اجرا کرد.
این موضوع چه ارتباطی با فرکانس دارد؟ در واقع مراحل مختلف میتوانند از نظر زمان اجرا با یکدیگر متفاوت باشند. در همین زمان مراحل مختلف دستورالعملهای مشابه، در طول تیکهای مختلف ساعت اجرا میشوند. طول تیک ساعت (و همچنین فرکانس) پردازنده باید با طولانی ترین مرحله متناسب باشد. نمودار زیر نشان میدهد طولانی ترین مرحله، سومین مرحله است.
تنظیم طول تیک ساعت به صورتی که کوتاهتر از طولانیترین مرحله باشد نیز هیچ مزیتی ندارد، زیرا هیچ شتاب واقعی در پردازنده رخ نخواهد داد.
فرض کنید طولانی ترین مرحله برای اجرا به PS 500 (پیکو ثانیه) نیاز دارد. این طول تیک ساعت برای زمانی است که فرکانس کامپیوتر روی 2 گیگاهرتز میباشد. حالا اگر تیک ساعت را دو برابر کوتاهتر و روی 250 پیکسل تنظیم کنیم، همه چیز به جز فرکانس ثابت میماند. در این حالت طولانیترین مرحله شناخته طی دو تیک تاک ساعت اجرا میشود که با هم به PS 500 نیاز دارد. با ایجاد این تغییر نه تنها هیچ چیز مفیدی بدست نمی آید، بلکه معماری چنین تغییری بسیار پیچیدهتر شده و انتشار گرما افزایش مییابد.
البته شاید در نگاه کلی به نظر برسد که در این روش به دلیل کوتاه بودن تیک ساعت، مراحل سریعتر اجرا شده و در نهایت سرعت متوسط فرآیند افزایش مییابد. اما با این وجود نمودار زیر نشان میدهد که چنین نیست.
در ابتدا فرآیند بسیار سریعتر انجام خواهد شد. اما از تیک ساعت چهارم، مرحله سوم و باقی مراحل مثال ما به تأخیر میافتند. علت این اتفاق این است که دستگاه محاسباتی سوم بعد از هر دو تیک ساعت آزاد میشود (در حالت عادی دستگاه بعد از هر یک تیک آزاد میشوند). در نتیجه از آنجایی که مرحله سوم مشغول اجرا یک دستورالعمل است، نمی توان همان مرحله دستورالعمل دیگری را اجرا کرد. بنابراین پردازندهای که از تیک ساعت 250 ولت استفاده میکند، با همان سرعت پردازنده 500 پیکسلی کار خواهد کرد؛ هرچند که فرکانس آن دو برابر بیشتر است.
هرچه کوچکتر! بهتر!
بنابراین تنها راه افزایش فرکانس، کوتاه کردن طولانی ترین مرحله است. اگر بتوانیم طولانی ترین مرحله را کاهش دهیم، امکان کاهش اندازه تیک ساعت تا این مرحله وجود داشته و هرچه تیک ساعت کوچکتر باشد، فرکانس بالاتر خواهد بود.
روشهای زیادی برای تأثیر بر مدت زمان این مراحل با استفاده از فن آوریهای موجود وجود ندارد. یکی از این راهها، توسعه یک فرآیند پیشرفتهتر است. به این صورت که با کاهش اندازه فیزیکی اجزای پردازنده، میتوان سرعت اجرا مراحل را بالاتر برد. چرا که در این صورت قطعات الکتریکی باید مسافت کمتری را طی کنند، در نتیجه زمان سوئیچ ترانزیستور کاهش مییابد و باقی مراحل… به بیان ساده همه چیز به طور یکنواخت سرعت میگیرد. تمام مراحل از جمله طولانی ترین آن، به طور یکنواختی کوتاه شده و میتوان فرکانس را افزایش داد.
این موضوع کاملا ساده به نظر برسد، اما پایین آوردن و کاهش اندازه در مقیاس نانومتر بسیار پیچیده است. افزایش فرکانس به سطح فعلی فناوری وابسته بوده و در حال حاضر نمی توان از این محدودیتهای فیزیکی فراتر رفت. با این وجود سازندگان پردازنده به طور مداوم در حال بهبود فرآیندهای فناوری خود بوده و به افزایش تدریجی فرکانس هسته پردازنده امیدوار هستند.
یکم صبر کنید!
روش دیگر برای بالا بردن فرکانس در مثال بالا تقسیم طولانی ترین مرحله به چندین مرحله کوچکتر است. دستورالعمل و روش انجام این کار در گذشته مشخص شده و چندین بار نیز موفقیت آمیز بوده است. در واقع فعالیت زیادی توسط سازندگان پردازنده انجام شده تا مراحل را تا حد ممکن کارآمد و کوتاه کنند. اما تقسیم کردن مراحل به مراحل کوچکتر نه تنها یک چالش ایجاد میکند، بلکه میتواند بر کارایی کلی پردازنده تأثیر بسزایی بگذارد.
برای درک این مشکل مثال ساختن یک خانه را در نظر بگیرید. خانه طبقه به طبقه ساخته میشود. فرض کنید که هر دستورالعمل مشابه یک طبقه است. حالا میخواهیم هر طبقه ساختمان را به چند قسمت تقسیم کنیم. برای این کار به دو مرحله نیاز داریم: ساخت خود طبقه و اتمام آن. پس زمانی که کار در طبقه قبلی در حال تکمیل است، ما میتوانیم شروع به ساخت طبقه بعدی کنیم. البته فقط در صورتی که ساخت طبقه جدید و اتمام طبقه قبلی توسط تیمهای مختلف انجام شود.
سپس میخواهیم دو قسمت موجود را به اجزای کوچکتر مانند به نقاشی سقف و کاغذ دیواری تقسیم کنیم. اگر نقاش کار رنگ آمیزی یک طبقه را به پایان برساند میتواند به طبقه ساخته شده بعدی بروند، حتی اگر کار نصب کاغذ دیواری در آن طبقه به اتمام نرسیده باشد.
با این توصیفات اگر بخواهیم در ساختمانهای واقعی مراحل ساخت دیوار و سقف را تقسیم کنیم، به مشکل خواهیم خورد. اگر طبقه قبلی ساخته نشود، نمی توانیم دیوارهای طبقه بعدی را بسازیم. حتی اگر از نظر تئوری نیز این تقسیم بندی را انجام دهیم، باز هم نمی توانیم در عمل این کار را انجام دهیم، چرا که در هر زمان فقط یک تیم میتواند روی یک مرحله کار کند!
همین مشکل در پردازندهها نیز وجود دارد. برخی از مراحل وجود دارد که به مراحل دیگر وابسته بوده و تقسیم این مراحل بسیار دشوار است؛ زیرا این کار درست مانند ساخت چندین طبقه از یک خانه به طور همزمان، نیاز به تغییرات گستردهای دارد.
نتیجه گیری
تا به امروز مواردی وجود داشته که فرکانس پردازنده بدون تغییر ولتاژ، کمی افزایش یافته است. این اتفاق در شرایط بسیار محدودی امکان پذیر است، زیرا پردازندهها برای کار در شرایط بسیار متنوع طراحی شدهاند (که بر طول مرحله تأثیر میگذارد). به عنوان مثال طولانی ترین مرحله ممکن است فقط 95٪ از کل تیک ساعت را به خود اختصاص دهد. بنابرین این احتمال افزایش یافته است، اما به یاد داشته باشید اورکلاک اشتباه میتواند نه تنها به پردازنده، بلکه به خود شما آسیب برساند.
روشهای دیگری نیز برای تأثیرگذاری در طول گام وجود دارد که اهمیت آنها بسیار کمتر میباشد. به عنوان مثال عامل دما بر روی تمام قطعات الکترونیکی پردازنده تأثیر میگذارد، اما تغییرات جدی و کاربردی فقط در مواردی که دما بسیار کم بوده دیده شده است.
در نتیجه تلاش برای افزایش فرکانس بسیار چالش برانگیز است. با این وجود تلاش برای دستیابی به این موفقیت در حال انجام است، حتی اگر نتیجه آن افزایش فرکانس با سرعتی بسیار کند باشد. البته اکنون که پردازندههای چند هستهای وجود دارند، رایانهها باید سریعتر کار کنند؛ چه به دلیل فرکانس بالاتر یا چه به دلیل اجرای موازی چندین کار. در واقع با اجرای موازی کارها، قابلیت و انعطاف پذیری بیشتری نیز فراهم میشود!
بررسی و خرید مدلهای مختلف پردازنده سرور اچ پی